Сборник проблем CAN
Внимание перед поиском устройства
- Перед поиском CAN ID, пожалуйста, подключитесь к SSH
- Обратите внимание, что нужно использовать сетевое подключение к SSH, а не последовательное
- Убедитесь, что подключены UTOC или материнская плата с прошивкой CAN bridge, и что кабель, подключенный к верхнему компьютеру, имеет возможность передачи данных
Определение наличия устройства
- Теперь, когда вы успешно вошли в верхний компьютер, вы можете ввести
lsusb
для поиска устройства, и будут возможны следующие ситуации:- Если при вводе
lsusb
система выдает ошибку, что не найдена командаls
, тогда введите следующую команду для установки:sudo apt-get install usbutils
- Если после ввода
lsusb
ничего не происходит, это проблема системы, которую мы не можем решить; вам нужно сменить систему или использовать проверенную - Если появляется информация, как на изображении ниже, обратите внимание, что это только пример. Вам нужно убедиться, что присутствует
1d50:606f
- Если при вводе
1d50:606f
относится к устройству, которое вы собираетесь использовать. Остальная информация не важна, так как из-за проблем с системой она может не отображаться полностью или вообще не отображаться- Если есть несколько
1d50:606f
, рекомендуется исключить одно, иначе это может повлиять на последующую прошивку и подключение к прошивке, например,FLY MINI PAD
следует использовать встроенный UTOC, а не другие устройства CAN bridge - Если нет, проверьте, правильно ли подключен кабель данных, правильно ли прошита прошивка
Внимание
Только когда есть 1d50:606f
, можно искать CAN ID
Определение проблемы по ошибкам
- Ниже приведены распространенные ошибки:
- 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 bridge плату или UTOC)
- Вторая ошибка означает, что верхний компьютер не настроил или неправильно настроил CAN0
- Третья ошибка происходит из-за нехватки буфера или системных проблем, что приводит к сбою буфера
- Для второй и третьей ошибок можно посмотреть ниже на настройку CAN0 для выявления проблем
- Если ID не находится, смотрите ниже
Проверка поддержки CAN верхним компьютером
- Если это верхний компьютер FLY, то эту операцию выполнять не нужно
- Если ваша система
Ubuntu
, вам нужноUbuntu настройка CAN0
, этот документ еще не обновлен - Введите следующую команду для определения поддержки CAN системой:
sudo modprobe can && echo "Ваша система поддерживает CAN" || echo "Ваша система не поддерживает CAN"
- После ввода вышеуказанной команды, если ваша система поддерживает CAN, будет возвращено:
Ваша система поддерживает CAN
; если нет, то:Ваша система не поддерживает CAN
. - Если возвращается
Ваша система поддерживает CAN
, тогда можно перейти к следующему шагу настройки CAN0
Настройка CAN0
- Эта команда перезаписывает текущую конфигурацию CAN0 в системе, после выполнения необходимо перезагрузить систему
- Нужно выбрать один из вариантов в зависимости от ситуации
- Для скорости 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 bridge платы или 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
, то для использования нужна прошивка