Примечания по подключению CAN-прошивки
Описание подключения
Выполните следующие три шага по порядку:
Шаг 1: Настройка DIP-переключателей
- Сначала обесточьте: отключите все источники питания.
- Найдите DIP-переключатели: переверните плату инструмента. Найдите группу DIP-переключателей на обратной стороне.
- Переключите в нужное положение: для использования режима CAN необходимо перевести все переключатели в положение, как показано на примере ниже.
Loading...
Важное примечание: после изменения положения DIP-переключателей необходимо заново прошить соответствующую прошивку (в данном руководстве используется прошивка CAN).
Шаг 2: Подключение линий
- Оставайтесь обесточенным: не подавайте питание во время всего процесса подключения.
- Подготовьте кабель: используйте четырехжильный кабель
XT30(2+2)-F. Определение цветов:- Красный (VCC): подключите к плюсу источника питания 12В-24В
- Черный (GND): подключите к минусу источника питания
- Желтый (CAN-H): подключите к H расширенного CAN-порта
- Белый/Зеленый (CAN-L): подключите к L расширенного CAN-порта
- Подключите устройства:
- Вставьте разъем
XT30(2+2)-Fкабеля в плату инструмента. - Подключите клеммы кабеля к модулю UTOC или к главной плате, на которую уже прошита прошивка "USB-мост CAN".
- Наконец, подключите модуль UTOC или главную плату к вашему верхнему компьютеру (например, FLY Pi или Raspberry Pi) через USB-кабель.
- Вставьте разъем
Шаг 3: Настройка и проверка оконечных резисторов
Для обеспечения стабильности сигнала необходимо правильно подключить оконечные резисторы. Настройте их в соответствии с таблицей ниже и измерьте в обесточенном состоянии:
| Устройство | Инструкция по эксплуатации |
|---|---|
| Плата инструмента | Найдите и установите перемычку с маркировкой 120Ω. |
| Главная плата | Если подключаетесь к главной плате, также установите ее перемычку 120Ω. |
| Модуль UTOC | Имеет встроенный резистор*. |
Как проверить:
- Обесточьте устройство полностью.
- С помощью мультиметра измерьте сопротивление между CAN-H и CAN-L на CAN-порте платы инструмента.
- Интерпретация результата:
- Около 60 Ом: нормально, оба оконечных резистора подключены правильно.
- Около 140 Ом: возможно, CAN-H и CAN-L перепутаны.
- Около 120 Ом: не установлен резистор
120 Омили обрыв линии. - Около 40 Ом: возможно, присутствует лишний резистор. Проверьте промежуточные узлы.
Краткое резюме: сначала обесточьте. Переключите DIP-переключатели. Правильно подсоедините провода. Затем установите перемычки 120 Ом на обоих концах. В конце измерьте сопротивление – должно быть около 60 Ом.
Контрольный список:
- Все операции выполнялись при обесточенном устройстве
- Все DIP-переключатели переведены вниз (режим CAN)
- Перемычка
120 Омна плате инструмента установлена - Перемычка
120 Омна главной плате (если применимо) установлена - Кабель CAN-данных надежно закреплен
- Измеренное значение сопротивления около 60 Ом
Настройка и устранение неисправностей CAN-сети
Шаг 1: Проверка распознавания CAN-устройства верхним компьютером
- Войдите в верхний компьютер. Введите команду:
lsusb
- Проанализируйте результат:
- Видите
1d50:606f→ Устройство успешно распознано - Сообщение об ошибке
команда ls не найдена→ Выполните:sudo apt-get install usbutils - Нет никакой реакции → Возможно, проблема с системой, рекомендуется переустановить систему
- Несколько записей
1d50:606f→ Рекомендуется оставить только одно устройство (например, при использовании UTOC отключите другие устройства с прошивкой USB-мост CAN)
⚠️ Важно: Только при наличии
1d50:606fможно продолжать поиск CAN ID
Шаг 2: Настройка CAN-сети
Выбор метода настройки в зависимости от типа системы:
Если уже настроено или используется система FlyOS-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:
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
Примечание: Для системы FAST выполнять эту операцию не требуется!
Метод настройки для системы Raspberry Pi
- Создайте сетевую конфигурацию (можно изменить BitRate на 500000):
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF
- Создайте конфигурацию подключения (TxQueueLength не рекомендуется изменять):
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
- Перезагрузите систему для применения изменений:
sudo reboot
Шаг 3: Поиск CAN ID
Проверка состояния CAN:
ip -details link show can0
- Обведенные на рисунке места показывают скорость и буфер CAN верхнего компьютера
- Верхнее значение
1024– текущий буфер CAN0 - Нижнее значение
1000000– текущая скорость CAN0
Поиск устройства:
- Fly-Armbian и обычный верхний компьютер: команда поиска
- Fly-FAST: команда поиска
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
В норме должно отобразиться: Found canbus_uuid=xxxx...
Решение распространенных ошибок
| Сообщение об ошибке | Причина | Метод решения |
|---|---|---|
OSError: [Errno 19] No such device | CAN-устройство не найдено | 1. Проверьте USB-подключение 2. Убедитесь в правильности прошивки 3. Выполните lsusb для проверки |
can.CanError: Failed to transmit: [Errno 100] Network is down | CAN-сеть не настроена | 1. Выполните шаги настройки выше 2. Перезагрузите систему |
can.CanError: Failed to transmit: [Errno 105] No buffer space available | Недостаточно буфера | 1. Убедитесь, что буфер CAN равен 10242. Перезагрузите систему |
Шаги проверки, если CAN ID не найден
Шаг 1: Базовая проверка
- При выполнении
lsusbвидно1d50:606f - CAN-устройство и плата инструмента включены
- Кабель данных надежно закреплен
Шаг 2: Проверка конфигурации
- CAN-сеть настроена правильно
- Скорость CAN верхнего компьютера совпадает со скоростью прошивки платы инструмента (по умолчанию 1M)
- Система перезагружена
Шаг 3: Проверка аппаратной части
- На обоих концах CAN-шины установлены оконечные резисторы 120 Ом
- В обесточенном состоянии измеренное сопротивление между CAN-H и CAN-L ≈ 60 Ом
- Проверьте линии на отсутствие обрывов
- CAN-H и CAN-L не перепутаны
Шаг 4: Обработка особых ситуаций
-
Если ID занят Klipper:
- Закомментируйте соответствующую конфигурацию в Klipper
- Полностью обесточьте на 1 минуту
- Снова подайте питание и выполните поиск
-
Значения измерений оконечных резисторов:
- ≈60 Ом: норма
- ≈120 Ом: резистор только на одном конце
- ≈40 Ом: резисторы на трех концах
- ≈140 Ом: возможно, провода перепутаны
Быстрый порядок устранения неисправностей
- Сначала проверьте устройство:
lsusb→ есть1d50:606f? - Затем проверьте конфигурацию:
ip -details link show can0→ скорость правильная? - В конце проверьте аппаратную часть: измерьте сопротивление в обесточенном состоянии → около 60 Ом?
Если после всех проверок проблема не решена: попробуйте заменить кабель данных или устройство. Или обратитесь в техническую поддержку.
Шаги обновления прошивки платы инструмента
Шаг 1: Подготовка
- Скомпилируйте новый файл прошивки в соответствии с инструкцией
- Остановите службу Klipper:
sudo systemctl stop klipper
Шаг 2: Получение ID платы инструмента
Найдите CAN UUID соответствующей платы инструмента в конфигурационном файле Klipper (например: 241696050c56)
Шаг 3: Выполнение обновления прошивки
Используйте следующую команду для прошивки (замените 241696050c56 на ваш фактический CAN UUID):
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
Шаг 4: Проверка результата
- Видите сообщение
CAN Flash Success→ Прошивка успешно записана - Видите другие сообщения об ошибках → Ошибка прошивки. Проверьте UUID и подключение
Примечание: После
-uобязательно должен быть пробел. Затем следует CAN UUID вашей платы инструмента.
Шаг 5: Запуск службы
sudo systemctl start klipper
Обновление завершено!