Ардупилот на платах OpenPilot Revolution / RevoMini (записей: 1756)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    • Исправлена последняя (надеюсь) бага семафоров
    • починен SBUS на входах PPM

    А вот с перезагрузкой в DFU что-то не сложилось :( При этом в загрузчик заходит, а вот к USB у меня он почему-то не подключается, в DMESG я вижу следующее

    [652411.769973] usb 4-1.5.7: new full-speed USB device number 103 using ehci-pci
    [652426.831196] usb 4-1.5.7: device descriptor read/64, error -110
    [652441.983232] usb 4-1.5.7: device descriptor read/64, error -110
    [652442.146107] usb 4-1.5.7: new full-speed USB device number 104 using ehci-pci
    [652457.196344] usb 4-1.5.7: device descriptor read/64, error -110
    [652472.347513] usb 4-1.5.7: device descriptor read/64, error -110
    [652472.639279] usb 4-1.5.7: new full-speed USB device number 106 using ehci-pci
    [652487.689393] usb 4-1.5.7: device descriptor read/64, error -110
    [652502.840554] usb 4-1.5.7: device descriptor read/64, error -110
    [652503.003470] usb 4-1.5.7: new full-speed USB device number 107 using ehci-pci
    [652518.053716] usb 4-1.5.7: device descriptor read/64, error -110
    [652533.204704] usb 4-1.5.7: device descriptor read/64, error -110
    [652533.367605] usb 4-1.5.7: new full-speed USB device number 108 using ehci-pci
    [652543.761367] usb 4-1.5.7: device not accepting address 108, error -110
    [652543.823511] usb 4-1.5.7: new full-speed USB device number 109 using ehci-pci
    [652554.217167] usb 4-1.5.7: device not accepting address 109, error -110
    [652554.217244] usb 4-1.5-port7: unable to enumerate USB device

     

    При этом я практически полностью восстанавливаю контекст проца... ST не публикует исходников з агрузчика, так что что ему не хватает - загадка.

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-24 09:39:12] night_ghost писал(а): При этом в загрузчик заходит, а вот к USB у меня он почему-то не подключается

    Такое бывает если на uart1 что-то подключено.

    Впрочем, если через boot заходит , то дело не в этом

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    [2017-10-24 09:53:33] m-s писал(а): Такое бывает если на uart1 что-то подключено.

    Да? вот уж не знал, в настоящем РевоМини  такой завязки нет, а проверял как раз на плате Аирбота, а там сильно намудрено с коммутацией UART1 и PPM_In

    И естественно через кнопу не проверял и не подключал - без надобности, для отладки все равно ST-Link цеплять, а шить и через него можно, хоть и медленнее.

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад

    https://github.com/betaflight/betaflight/issues/4122

    Вообщем это фича stm32, если с uart1 идут данные, то бутлоадер начинает его слушать.

    Просто на рево мало кто на main port приёмник вешает. А вот на airbot и sbus разъём и dsmx разъём к uart1 подключены. 

     

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    [2017-10-24 10:37:51] m-s писал(а): Вообщем это фича stm32, если с uart1 идут данные, то бутлоадер начинает его слушать.

    Нда, ну и косорукие программеры в ST :-/ Ну вот кто мешал слушать все интерфейсы и защелкнуться на том где пошел корректный протокол?

    Спасибо, очень похоже что таки да, в этом дело. Тогда и перезагрузка в DFU должна работать

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-24 11:00:38] night_ghost писал(а): Ну вот кто мешал слушать все интерфейсы и защелкнуться на том где пошел корректный протокол?

    ROM наверное экономили )

    На f405 бутлоадером слушается uart1 и uart3. На omnibus f4 v3 "профиксили" эту проблему разведя пин sbus на uart6. 

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    [2017-10-24 11:23:19] m-s писал(а): На omnibus f4 v3 "профиксили" эту проблему разведя пин sbus на uart6.

    Ох уж этот SBUS... Зачем УАРТ под него занимать, когда софтверное декодирование занимает ~1.5% проца при свободных ~70? ;-) На оригинальной Революшн получается использовать все УАРТы кроме УАРТ2, а на Омнибусах и так с ними напряженка а еще под SBUS отдавать зачем-то

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад

    В последних бинарниках был небольшой баг, отчего они вовсе не работали, исправленные выложены

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад

    И в этих был баг, собираются следующие

    UPD. готово. И вроде это была последняя крупная бага.

    UPD2. Зато новая завелась. починил, собирается

    UPD3. Собралась. На глаз все работает просто замечательно

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    • исправлен баг, когда задача может быть завершена не отдав семафора.
    • теперь задача, начавшая DMA IO, становится на паузу и возобновляется в IO_Completion ISR, не используя напрасно процессорное время
    • настроено время ожидания I2C дабы успеть перезапустить шину в случае ошибки без потери данных

    бинарники собираются готовы

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад

    еще новые бинарники:

    • добавлен контроль за достоверностью данных компаса по длине вектора поля
    • в случае ошибок файловой системы на набортном чипе, форматированном в FAT, будет произведено прозрачное реформатирование
  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад
    [2017-10-26 18:47:35] night_ghost писал(а): еще новые бинарники:

     

    Прошил, посмотрел. Вроде все работает , каких - то проблем не заметил. 

    По-прежнему иногда не грузятся параметры в qgc через uart1 на скорости 9600. Посколько в micro pix такой проблемы нет, подозреваю, что это бага в драйвере uart.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад
    [2017-10-27 11:11:06] m-s писал(а): подозреваю, что это бага в драйвере uart.

    воспроизводимый тесткейс?

  • Аватар профиля m--s s s6 пунктов в 7 г., 1 мес. назад

    Airbot v2(uart 1) -> bluetooth hc-06 @9600 -> телефон с qgc . Пару тройку раз обновляется список параметров. В определённый момент перестают передаваться параметры.

    Возможно также воспроизведется если использовать десктопный qgc  и usb-uart на низкой скорости.  Попробую точнее вычислить в выходные.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 1 мес. назад

    и как это отлаживать? И самое главное - кого, прошивку или qgc? :)  Воспроизводимый тесткейс это способ ГАРАНТИРОВАННО получить ошибку при пошаговом проходе.

    Ардуинский Serial, на коий этот весьма похож, ранее имел баг, иногда дублируя символы когда прерывание невовремя случалось, но таки ж там 8-битный проц а тут 32, и обращение к указателям атомарны. Могу сделать версию где вся работа с очередью будет делаться при запрещенных прерываниях. Если пройдет то дело в этом - но у меня нет проблем с загрузкой параметров в МП по радиомодему, так что в качестве workaround-а  могу предложить использовать МП

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru