Конфигурация сети CAN и поиск ID
Примечания перед использованием
- Подключите UTOR или материнскую плату с прошивкой CAN-моста к главному компьютеру через USB.
- Пожалуйста, входите в систему главного компьютера через сеть, не используйте последовательный порт.
- При использовании системы FlyOS-FAST настройка CAN не требуется (система уже предустановлена на скорость 1M, кэш 1024).
Проверка поддержки CAN главным компьютером
Если вы используете FLY главный компьютер, этот шаг можно пропустить.
Выполните следующую команду для проверки поддержки CAN ядром:
sudo modprobe can && echo "Ядро поддерживает CAN" || echo "Ядро не поддерживает CAN"
Если отображается "Ядро поддерживает CAN", можно продолжить настройку.
Настройка CAN0
⚠️ Это действие перезапишет существующую конфигурацию CAN0, после завершения потребуется перезагрузка системы.
Система FAST не требует выполнения!
Выберите соответствующий метод настройки в зависимости от типа системы:
- Обычная система Linux
- Система Raspberry Pi
Обычная система Linux
Конфигурация для скорости 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:
Замените 1000000 в приведенной выше команде на 500000.
Система Raspberry Pi
Создайте файл сетевой конфигурации (можно изменить значение BitRate):
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF
Создайте файл конфигурации соединения (кэш изменять не рекомендуется):
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
В конце перезагрузите устройство:
sudo reboot
Команды для поиска CAN ID
- Команда поиска для обычного главного компьютера
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- Команда поиска для FLY главного компьютера
python3 ~/klipper/scripts/canbus_query.py can0
- Если отображается ID и в конце в
Application:указаноKlipper, это означает, что этот ID можно использовать напрямую. - Если отображается ID и в конце в
Application:указаноCANBOOTилиKatapult, это означает, что требуется прошивка.Loading...
Сообщения об ошибках
- Ниже приведены распространенные ошибки
- 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 инструментальной платы и устранению неисправностей
1. Проверка и настройка скорости CAN
Скорость связи CAN в прошивке инструментальной платы должна полностью совпадать с конфигурацией главного компьютера (хоста), иначе устройство не будет обнаружено.
Шаги:
- Выполните следующую команду в терминале хоста для просмотра текущего состояния интерфейса CAN0:
ip -details link show can0
- В выводе проверьте два ключевых параметра:
bitrate: Текущая скорость связи CAN (например,1000000означает 1 Мбит/с).TxQueueLength: Длина очереди отправки / размер кэша (например,1024).
Ниже приведен пример вывода команды, обратите внимание на параметр bitrate в красной рамке, он должен соответствовать настройкам вашего устройства:
2. Исключение занятости ID системой
Если инструментальная плата уже прошита прошивкой Klipper и ее ID уже записан в конфигурационный файл хоста (printer.cfg), этот ID будет занят системой и не будет отображаться при поиске.
Решение:
- Временно закомментируйте или удалите все разделы конфигурации, относящиеся к этой инструментальной плате, в
printer.cfg. - После внесения изменений необходимо полностью выключить машину и отключить ее от питания примерно на 10 секунд, затем снова включить.
3. Проверка оконечных резисторов шины CAN
- Стабильная сеть CAN должна иметь оконечные резисторы
120Ωна обоих концах физической линии. - Необходимо убедиться, что при отключенном питании сопротивление между CAN-H и CAN-L, измеренное мультиметром, составляет около
60Ω.
Метод проверки:
- Обязательно выполняйте операции при полностью отключенном питании всего устройства.
- Используйте режим измерения сопротивления на мультиметре и измерьте сопротивление между выводами CAN-H и CAN-L на CAN-разъеме материнской платы или инструментальной плате.
- Правильное сопротивление шины должно составлять примерно 60Ω (результат параллельного соединения двух резисторов
120Ω). Если измеренное значение сильно отличается (например, обрыв или всего120Ω), это указывает на ошибку в подключении или конфигурации оконечных резисторов.
Правила конфигурации для каждого устройства:
| Тип устройства | Требование к оконечному резистору | Инструкция по эксплуатации |
|---|---|---|
| CAN инструментальная плата | Требуется оконечный резистор 120Ω | Включите с помощью перемычки или DIP-переключателя на плате. |
| CAN интерфейс материнской платы | Требуется оконечный резистор 120Ω | Включите с помощью перемычки или DIP-переключателя на плате. |
| Модуль-адаптер UTOC | Уже встроен резистор 120Ω | Дополнительно включать оконечные резисторы не требуется. |