Настройка сети 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Ω | Включите с помощью перемычки или переключателя на плате. |
| Интерфейс CAN материнской платы | Требуется терминальный резистор 120Ω | Включите с помощью перемычки или переключателя на плате. |
| Модули преобразования типа UTOC | Встроенный резистор 120Ω | Дополнительные терминальные резисторы включать не нужно. |