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

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