Сборник вопросов по CAN
Перед поиском устройства
- Перед поиском CAN ID, сначала подключитесь по SSH
- Обратите внимание, что вы должны войти в систему через сеть, а не через последовательный порт
- Убедитесь, что вы подключили UTOC или установили прошивку CAN-моста на основную плату и что кабель, подключенный к хост-компьютеру, поддерживает передачу данных
Определение наличия устройства
- После того, как вы успешно вошли в систему хост-компьютера, введите
lsusb
для поиска устройств. Возможны следующие ситуации:- Если при вводе
lsusb
появляется сообщение о том, что командаls
не найдена, установите утилиты с помощью следующей команды:sudo apt-get install usbutils
- Если после ввода
lsusb
ничего не происходит, это проблема системы, мы не можем с этим ничего поделать. Вам нужно изменить систему или использовать заведомо исправную систему - Появится информация, как показано на изображении ниже (только для справки). Вам нужно убедиться, что отображается
1d50:606f
- Если при вводе
1d50:606f
— это устройство, которое вы будете использовать. Дополнительные примечания можно игнорировать, поскольку проблема системы может привести к неполному отображению или его отсутствию- Если отображается несколько
1d50:606f
, рекомендуется удалить одно устройство, так как это может повлиять на последующую прошивку и подключение. Например, дляFLY MINI PAD
рекомендуется использовать встроенный UTOC, а не другие устройства CAN-моста - Если устройство не отображается, проверьте, правильно ли подключен кабель, и установлена ли правильная прошивка
Примечание
Поиск CAN ID возможен только при наличии 1d50:606f
Определение проблемы по ошибке
- Ниже приведены распространенные ошибки:
- OSError: [Errno 19] No such device
- can.CanError: Failed to transmit: [Errno 100] Network is down
- can.CanError: Failed to transmit: [Errno 105] No buffer space available
- Первая ошибка означает, что хост-компьютер не может найти устройство CAN (основная плата с установленной прошивкой USB-моста или UTOC)
- Вторая ошибка указывает, что CAN0 не настроен или настроен неправильно
- Третья ошибка связана с переполнением буфера из-за нехватки памяти или проблем с системой
- См. раздел ниже по настройке CAN0 для диагностики второй и третьей ошибок
- Если ID не найден, см. раздел ниже
Проверка поддержки CAN хост-компьютером
- Для хост-компьютера FLY эта операция не требуется
- Если ваша система
Ubuntu
, требуется настройкаUbuntu для CAN0
, документ еще не обновлен - Введите следующую команду, чтобы определить, поддерживает ли система CAN
sudo modprobe can && echo "Ваше ядро поддерживает CAN" || echo "Ваше ядро не поддерживает CAN"
- После ввода вышеуказанной команды, если ядро поддерживает CAN, будет возвращено:
Ваше ядро поддерживает CAN
; если нет, тоВаше ядро не поддерживает CAN
. - Если возвращено
Ваше ядро поддерживает CAN
, можно продолжить настройку CAN0
Настройка CAN0
- Эта команда перезаписывает текущую конфигурацию CAN0. После выполнения необходимо перезагрузить систему
- Для системы
FAST
эта операция не требуется !!!!!! - Выберите соответствующую команду в зависимости от вашей скорости:
- Для скорости 1M введите следующую команду
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF
- Для скорости 500K введите следующую команду
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
- Перезагрузите устройство
sudo reboot
Что делать, если ID не найден
- Если в Klipper настроен соответствующий ID, вам нужно сначала отключить ID в настройках системы, выключить питание и снова включить или нажать кнопку сброса на плате
- Совпадает ли скорость CAN хост-компьютера со скоростью основной платы, платы инструментов и т.д.
- Вы можете использовать следующий код для определения скорости CAN хост-компьютера
- Проверьте, нет ли обрыва провода
- Установлен ли между платой инструментов и устройством (основная плата с установленной прошивкой USB-моста или UTOC) перемычка
120Ω
- Если установлена перемычка
120Ω
, необходимо использовать мультиметр для измерения сопротивления между CAN H и CAN L при полном отключении питания устройства, должно быть около60Ω
- Проверьте, нет ли обрыва провода
ip -details link show can0
- В выделенной области на изображении ниже отображается скорость и буфер CAN хост-компьютера
1024
— текущий буфер CAN01000000
— текущая скорость CAN0

-
Если UUID все еще не найден, внимательно проверьте следующие моменты:
- Правильно ли подключены основная плата или плата CAN-инструментов
- Правильно ли подано питание, рекомендуется подключить VCC при использовании основной платы
- Поддерживает ли хост-компьютер CAN-сеть
- Составляет ли сопротивление CAN около
60Ω
- Правильно ли скомпилирована прошивка
Поиск ID
- Введите следующую команду для поиска ID:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- Если ID найден и в конце отображается
Application:
, указывающееKlipper
, это означает, что данный ID можно использовать напрямую - Если ID найден и в конце отображается
Application:
, указывающееCANBOOT
илиKatapult
, это означает, что необходимо установить прошивку для использования
Loading...