Важные моменты подключения прошивки CAN
Инструкция по подключению
Выполните следующие три шага по порядку:
Шаг 1: Установка переключателей DIP
- Сначала отключите питание: Отсоедините все источники питания.
- Найдите переключатели: Переверните плату инструментов. Найдите группу переключателей DIP на обратной стороне.
- Установите в нужное положение: Для использования режима CAN необходимо установить все переключатели в положение, показанное на примере ниже.
Loading...
Важное примечание: После изменения положения переключателей DIP необходимо перепрошить соответствующую прошивку (в данном руководстве используется прошивка CAN).
Шаг 2: Подключение проводов
- Питание отключено: Не подавайте питание в течение всего процесса подключения.
- Подготовьте кабель: Используйте 4-жильный кабель данных
XT30(2+2)-F. Цветовая маркировка следующая:- Красный (VCC): Подключите к плюсу источника питания 12V-24V
- Черный (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→ Устройство распознано успешно - Сообщение "command not found: 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: Обработка особых случаев
-
Если Klipper уже использует ID:
- Отключите соответствующую конфигурацию в Klipper
- Полностью отключите питание на 1 минуту
- Включите питание и выполните поиск заново
-
Измеренное значение терминального сопротивления:
- ≈60Ω: Нормально
- ≈120Ω: Резистор только на одном конце
- ≈40Ω: Резисторы на трех концах
- ≈140Ω: Возможно, провода перепутаны
Порядок быстрой диагностики
- Сначала проверьте устройство:
lsusb→ Есть1d50:606f? - Затем проверьте конфигурацию:
ip -details link show can0→ Скорость правильная? - Наконец, аппаратная часть: Измерьте сопротивление при отключенном питании → Около 60Ω?
Если после всех проверок проблема не решена: Попробуйте заменить кабель данных или устройство, или обратитесь в техническую поддержку.
Шаги обновления прошивки платы инструментов
Шаг 1: Подготовка
- Скомпилируйте новый файл прошивки согласно руководству
- Остановите службу Klipper:
sudo systemctl stop klipper
Шаг 2: Получение ID платы инструментов
В файле конфигурации Klipper найдите CAN UUID соответствующей платы инструментов (например: 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
Обновление завершено!