Сборник проблем CAN
Важные замечания перед поиском устройства
- Перед поиском CAN ID убедитесь, что вы подключились к SSH
- Обратите внимание, что необходимо подключаться к SSH через сеть, а не через последовательный порт
- Убедитесь, что вы правильно подключили UTOC или прошили CAN-мостовую прошивку на материнскую плату, и убедитесь, что соединительный кабель между ПК имеет функцию передачи данных
Определение наличия устройств
- Теперь вы успешно вошли в систему ПК и можете ввести команду
lsusb
, чтобы найти устройства. Возможны следующие варианты:- Если ввод команды
lsusb
показывает отсутствие командыls
, введите следующую команду для установки:sudo apt-get install usbutils
- Если после ввода команды
lsusb
ничего не происходит, это может быть связано с системой. Вы не сможете решить эту проблему самостоятельно, поэтому рекомендуется использовать другую операционную систему или систему, известную своей работоспособностью. - Если появляется информация из приведенного ниже изображения, обратите внимание, что это всего лишь пример. Вам нужно просто убедиться, что появился
1d50:606f
- Если ввод команды
1d50:606f
относится к устройству, которое вам нужно использовать. Последующие сообщения можно игнорировать, так как проблемы системы могут вызвать их частичное отсутствие или полное исчезновение.- Если имеется несколько устройств
1d50:606f
, рекомендуется исключить одно из них, чтобы избежать конфликтов при дальнейшей прошивке и подключении оборудования, например, при использовании настроенной материнской платы UTOC вместо других устройств CAN-моста. - Если устройства нет, проверьте правильность подключения кабеля и корректность прошивки.
Примечание
Начинайте поиск CAN ID только при наличии 1d50:606f
.
Определение проблемы по ошибкам
- Ниже приведены распространенные ошибки:
- OSError: [Errno 19] Нет такого устройства
- can.CanError: Не удалось передать: [Errno 100] Сеть недоступна
- can.CanError: Не удалось передать: [Errno 105] Недостаточно места в буфере
- Первая ошибка указывает на то, что ПК не может обнаружить устройство CAN (материнская плата с прошивкой USB-моста или UTOC).
- Вторая ошибка означает, что ПК не настроен или настроен неправильно для CAN0.
- Третья ошибка может быть вызвана недостатком буферной памяти ПК или системными проблемами, приводящими к сбою буфера.
- Для устранения второй и третьей ошибок см. ниже настройку CAN0 для устранения неполадок.
- Если не удается найти UUID, см. раздел внизу.
Проверка поддержки CAN на ПК
- Если используется FLY-ПК, выполнение этого шага не требуется.
- Если система Ubuntu, необходимо выполнить документацию по "Настройке CAN0" для Ubuntu (документ пока не обновлен).
- Введите следующую команду, чтобы определить поддерживает ли ядро системы CAN:
sudo modprobe can && echo "Ваше ядро поддерживает CAN" || echo "Ваше ядро не поддерживает CAN"
- После ввода команды, если ваше ядро поддерживает CAN, будет возвращено сообщение: «Ваше ядро поддерживает CAN». Если нет, будет возвращено сообщение: «Ваше ядро не поддерживает CAN».
- Если выводится «Ваше ядро поддерживает CAN», продолжайте настройку CAN0.
Настройка CAN0
- Данная команда перезаписывает предыдущую конфигурацию CAN0 системы. После ее выполнения потребуется перезагрузка системы.
- Выберите один из вариантов в зависимости от实际情况
- Для скорости 1 Мбит введите следующую команду:
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
- Для скорости 500 Кбит введите следующую команду:
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
, значит для использования требуется прошивка.