Два різні пристрої CAN претендують на один номер вузла
Що пише ArduPilot:
- Duplicate Node …../N!
На шині DroneCAN кожен пристрій (GPS, компас, ESC, монітор батареї) — це вузол із номером, і кожен має власний апаратний ідентифікатор. Польотний контролер тримає в постійній пам'яті таблицю, якому ідентифікатору належить який номер, і запитує ідентифікатор у кожного вузла, якого чує. «Duplicate Node NAME../N» означає, що вузол N відповів не тим ідентифікатором, який записано в таблиці для N. Показано початок назви пристрою.
Що робити: найімовірніше спершу
Пристрій CAN замінили іншим із тим самим фіксованим номером вузла; у таблиці досі старий.
ПеревіртеЧи міняли ви GPS, ESC або інший пристрій CAN чи переставляли його з іншого апарата?
ВиправтеОчистіть таблицю: додайте 1 до
CAN_D1_UC_OPTION(біт 0, ClearDNADatabase) і перезавантажте. Біт знімається сам, «UC DNA database reset» це підтверджує, і пристрої реєструються наново.Два пристрої на шині справді мають однаковий номер вузла.
ПеревіртеВід'єднайте один із них — повідомлення зникне. Екран DroneCAN у наземній станції показує вузли, які вона бачить, і їхні номери.
ВиправтеЗадайте одному з пристроїв інший номер у його власних налаштуваннях або поставте номер 0, щоб польотний контролер призначив сам, потім очистіть таблицю, як описано вище.
Біт 1 у CAN_D1_UC_OPTION змушує ArduPilot ігнорувати конфлікт. Два пристрої на одному номері все одно плутають кожен драйвер, що слухає цей номер; виправляйте номери.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
CAN_D1_UC_OPTION | DroneCAN options |
CAN_D1_PROTOCOL | Enable use of specific protocol over virtual driver |
CAN_P1_DRIVER | Index of virtual driver to be used with physical CAN interface |
Де це зробити:Планувальник плати й підключенняНалаштування й тюнінг
Код, який це надсилає
Duplicate Node …../N!
libraries/AP_DroneCAN/AP_DroneCAN_DNA_Server.cpp AP_DroneCAN_DNA_Server::prearm_check() · Відкрити в ArduPilot Copter-4.7.1