Перейти к основному содержимому

Сборник проблем 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, значит для использования требуется прошивка.