Важные моменты подключения прошивки 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→ Устройство распознано успешно - Сообщение "команда 'ls' не найдена" → Выполните:
sudo apt-get install usbutils - Нет никакой реакции → Возможно, проблема с системой, рекомендуется сменить систему
- Несколько устройств
1d50:606f→ Рекомендуется оставить только одно устройство (например, если используете UTOC, отключите другие устройства с прошивкой "USB-мост CAN")
⚠️ Важно: Продолжать поиск CAN ID можно только после того, как вы увидите
1d50:606f
Шаг 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
Обновление завершено!