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

  • Аватар профиля justason justason в 7 г., 3 мес. назад

    C последними бинарниками от 1.08ю2017 для моего комплекта revomini-airbot + GY652 ничего не поменялось.

    Выглядит это так:

    Плата после прошивки создает в диспетчере 2 нерабочих устройства, к missionplanner-у не коннектится, постоянно горит зеленый LED, а синий пишет букву "М" через секунду (морзе - -)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-01 20:22:11] justason писал(а): постоянно горит зеленый LED, а синий пишет букву "М" через секунду (морзе - -)

    Зеленый просто к питанию подключен и горит всегда, а синий... это не морзе а надо считать вспышки. 2 вспышки - HardFault, что есть странно. Придется подключать модуль и смотреть. 

    PS. Что в терминале на этом порту выводится?

    UPD. А может и не HardFault а нормальный цикл работы. Включается синий плавно или как? Видево бы...

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

    Удалось ужать участок, необходимый быть оптимизированным -O0, до единственной функции. Ею оказалась... сама bool SPIDevice::transfer(const uint8_t *send, uint32_t send_len, uint8_t *recv, uint32_t recv_len), а вовсе не какая-то низкоуорвневая мелочевка. Ничего не понима...

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

    Может быть delay_ns100 криво работает?

  • Аватар профиля justason justason в 7 г., 3 мес. назад

    PS. Что в терминале на этом порту выводится?

    На каком порту?

    Видео:

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 11:53:40] m-s писал(а): elay_ns100 криво работает

    Но она-то сама находится в зоне, оптимизируемой по O2! И ее таки вызывают, проверял отладчиком. Собственно и вызовы ее появились при борьбе с этим багом, в попытках привести циклограмму в соответствие даташиту. Заменю на _delay_us(1) для пробы, наверное...

    Самое забавное что в Клинфлае это выглядит просто, без всяческих задержек:

    #define DISABLE_MPU6000 IOHi(mpuSpi6000CsPin)
    #define ENABLE_MPU6000 IOLo(mpuSpi6000CsPin)

    static IO_t mpuSpi6000CsPin = IO_NONE;

    bool mpu6000WriteRegister(uint8_t reg, uint8_t data)
    {
    ENABLE_MPU6000;
    spiTransferByte(MPU6000_SPI_INSTANCE, reg);
    spiTransferByte(MPU6000_SPI_INSTANCE, data);
    DISABLE_MPU6000;

    return true;
    }

    bool mpu6000ReadRegister(uint8_t reg, uint8_t length, uint8_t *data)
    {
    ENABLE_MPU6000;
    spiTransferByte(MPU6000_SPI_INSTANCE, reg | 0x80); // read transaction
    spiTransfer(MPU6000_SPI_INSTANCE, data, NULL, length);
    DISABLE_MPU6000;

    return true;
    }

    и вроде бы работает...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:11:25] justason писал(а): На каком порту?

    на том виртуальном КОМ-порту что создает подключенный контроллер. Можно например Ардуиной послушать (инструменты - монитор порта). У меня это /dev/ACM0 например, в виндах не знаю

  • Аватар профиля m--s s s6 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:16:28] night_ghost писал(а): Но она-то сама находится в зоне, оптимизируемой по O2!

    Там же все inline. Оптимизирует же наверное после разворачивания inline...

  • Аватар профиля justason justason в 7 г., 3 мес. назад

    на том виртуальном КОМ-порту что создает подключенный контроллер. Можно например Ардуиной послушать (инструменты - монитор порта). У меня это /dev/ACM0 например, в виндах не знаю

    В Винде девайс нерабочий. А линукса под рукой нету.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:37:55] m-s писал(а): Там же все inline

    накласть GCC хотел на все эти inline. Как и на атрибуты ALWAYS_INLINE - функция __WFE() объявленная с ним так и остается функцией, не превращаясь в единственную инструкцию. А что вы хотели - свободный софт :-/

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:41:10] justason писал(а): В Винде девайс не рабочий.

    Как это - не рабочий? Ну ладно мавлинка нет, но ведь компорт создается? 

    И видео мигания бы в студию.

  • Аватар профиля justason justason в 7 г., 3 мес. назад
    [2017-08-02 13:43:48] night_ghost писал(а): И видео мигания бы в студию.

    уже в студии:

    http://www.ykoctpa.ru/groups/eye-in-a-sky/forum/topic/ardupilot-na-platax-openpilot-revolution-revomini/?topic_page=28&num=15#post-12495

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:46:50] justason писал(а): уже в студии:

    Это нормальная работа, у меня он в точности так же мигает. Ошибки отображаются плавным изменением яркости, чтобы не перепутать. Так что должно коннектиться.

    Создаваемый компорт это не только мавлинк, но еще и консоль, у меня там например такое

    MS5611 found on bus 0 address 0x00
    Failed to create log directory 0:/: file exists
    DataFlash_File: buffer size=16384
    HMC5843 found on bus 0x1

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-08-02 13:49:51] night_ghost писал(а): Это нормальная работа

    Э нет, не совсем нормальная: мигает вдвое медленнее чем у меня. Что есть очень странно - неужто кварц другой китайцы припаяли?

    Есть чем частоту померять? Что за контроллер?

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

    Если есть usb-uart переходник можно к uart1 приконнектиться 

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

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

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

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