Сборник вопросов по CAN
Перед началом поиска устройства
- Перед поиском CAN ID, сначала подключитесь к SSH
- Убедитесь, что вы вошли в 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
, необходимо выполнить настройку CAN0 вUbuntu
. Документ еще не обновлен - Введите следующую команду, чтобы определить, поддерживает ли система 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
сверху — текущий буфер CAN0 - Значение
1000000
снизу — текущая скорость 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...