Вивід або канал даних процесора повівся неправильно
Що пише ArduPilot:
- Internal errors 0x2000000 (gpio_isr)
- Internal errors 0x8000000 (dma_fail)
gpio_isr: вхідний вивід, що дає переривання на кожен імпульс (датчик обертів, вхід PWM, вивід зворотного зв'язку камери), надіслав понад 10 000 переривань за 100 мс. ArduPilot вимикає переривання цього виводу й каже «ISR flood on pin N»; внутрішня помилка фіксується лише коли заармовано, а після дизармування вивід пробують знову кожні 10 секунд. dma_fail: DMA — апаратна частина, що пересилає байти до послідовних портів і виходів DShot та з них без участі процесора, — повідомила про помилку передачі на послідовному порту або на двонапрямному DShot.
Що робити: найімовірніше спершу
gpio_isr: вивід налаштовано як вхід, але до нього нічого не під'єднано, або його дріт ловить завади.
ПеревіртеНомер виводу є в «ISR flood on pin N» і в рядку перед армуванням «Pin N disabled (ISR flood)». Яка функція використовує цей вивід?
ВиправтеПід'єднайте датчик як слід — коротким екранованим чи скрученим дротом зі спільною землею — або зніміть функцію з цього виводу.
dma_fail при ввімкненому двонапрямному DShot.
Перевірте
SERVO_BLH_BDMASKне 0, а помилка з'являється, коли працюють мотори.ВиправтеПеревірте, що кожен ESC із маски підтримує двонапрямний DShot і що сигнальні землі з'єднані. Якщо при справному підключенні помилка лишається — повідомте про неї, вказавши плату й версію прошивки.
dma_fail на послідовному порту: апаратна несправність або прошивка для іншої плати.
ВиправтеПрошийте прошивку саме для своєї плати; якщо помилка лишається — плата під підозрою.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SERVO_BLH_BDMASK | BLHeli bitmask of bi-directional dshot channels |
Де це зробити:Планувальник плати й підключення