Activity

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

Интересно посмотреть реакцию на пульте при оригинальном PRM-02. А то может там фишка какая то есть. В общем по прежнему нужен лог с оригинала.

Так выходит можно по адресу 0х01 не отвечать, а просто подмешивать VOLT в ответ по адресу 0х04? Или пульт не будет показывать на главном экране это напряжение?

Может и есть, я уже думал над этим. Может какой-то установленный бит меняет скорость или порядок запросов. Надо пробовать или ждать пока кто-то снимет нормальный лог.

Конечно можно подмешивать, все красиво отображается.

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

Аааа… Понял. Я думал там всё укладывается в 1 ответ. Т.е. просто чередуем второй байт AB/CD. Не знаю когда руки дойдут. Надо ещё MavLink ковырнуть. Что там APM шлет.

Именно так. Ускорить бы как-то частоту запросов и все бы работало очень быстро, но это уже вне наших возможностей.
А я пока с UAVTalk разбираюсь.

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

Ничего подобного. После отклика по адресу 0х01, меняем адрес у нашего slave на 0х04 и ждем когда приемник обратится по этому адресу. Ответили, поменяли обратно на 0х01 и т.д. Будет как и в оригинале 1 раз в секунду.

Я не это имел ввиду. Чтобы передать всю телеметрию надо отправить два ответа по 16 байт, а это можно сделать только за два запроса мастера. Соответственно, если в первом запросе был ответ, например по yaw, то следующий ответ по yaw будет только через 2 секунды, потому что во втором запросе будет передаваться совершенно другая информация, там yaw не будет.
Будет вот так:
0x01-NACK -> 0x02-NACK -> 0x03-NACK -> 0x04-ACK(GPS,ALT,YAW,SPEED,ROLL,PITC,DIST) -> 0x05-NACK
0x01-NACK -> 0x02-NACK -> 0x03-NACK -> 0x04-ACK(GPS,RISE,VOLT,LONG,LATI) -> 0x05-NACK
0x01-NACK -> 0x02-NACK -> 0x03-NACK -> 0x04-ACK(GPS,ALT,YAW,SPEED,ROLL,PITC,DIST) -> 0x05-NACK
0x01-NACK -> 0x02-NACK -> 0x03-NACK -> 0x04-ACK(GPS,RISE,VOLT,LONG,LATI) -> 0x05-NACK
и т.д.

Так вот как раз между двумя ответами, например по YAW, пройдет 2 секунды.

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

Запросы идут с интервалом 200 мсек. На 5 адресов как раз 1 секунда и выходит. Плюс минус. Машину когда по K-Line диагностируешь, то большинство софта тоже с такой же частотой запросы шлет. Быстрее и не надо, медленнее тоже. Типа оптимально.

P.S. ashadow22, а вы какой контроллер используете?

Это все понятно. Но получается, что всех устраивает обновление телеметрии на передатчике с частотой раз в секунду? Или это особенность данного управления? А как на других с телеметрией?

Я использую Mini Pro, он на ATMega328(16MHz). Но в данном случае это никак не влияет, потому что сам обмен данными происходит очень быстро(0.88 ms) и без повторных передач, значит и master и slave справляются. Значит это в софте контроллера приемника задана такая частота опроса slave-устройств.

Аппаратура Radiolink AT 9 2,4 ГГц

Цикл опроса телеметрии приемником составляет 1.0243 секунды. Насколько вообще интересно обновление телеметрических данных с такой частотой?

Продолжительность передачи данных в приемник у меня пока получается 0.88 миллисекунд.

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

А первый байт?

Первый и последний байт можно поставить в ноль. Пока, я не заметил изменений связанных с их значением.

TheKing:

cc3d же посылает телеметрию мавлинком. Банально распознаем что cc3d послал на мк и отсылаем в приемник ))

Я пока делаю с прошивкой OpenPilot, там UAVTalk. А вот с прошивкой Cleanflight, на CC3D будет MAVLink.

Аппаратура Radiolink AT 9 2,4 ГГц

И так, при отсутствии у меня PRM-02, я все таки используя Pro Mini и логический анализатор методом перебора и методом “а как бы я сделал” нашел как работает передача телеметрии по I2C в передатчик.
Используется устройство с номером 0x04 и с установленным вторым байтом в 0xAB и 0xCD. Я так понимаю, что PRM-02 поочередно отправляет ответ, то с AB, то с CD установленным вторым байтом. При этом другие байты влияют на разные параметры телеметрии в зависимости от значения этого байта. Вот сводная таблица, что у меня получилось отследить:

data[0] | |
data[1] | 0xAB(171) | 0xCD(205)
data[2] | GPS | GPS
data[3] | ALT high byte | RISE high byte
data[4] | ALT low byte | RISE low byte
data[5] | YAW high byte | VOLT high byte
data[6] | YAW low byte | VOLT low byte
data[7] | SPEED high byte | LONG 1 byte
data[8] | SPEED low byte | LONG 2 byte
data[9] | ROLL high byte | LONG 3 byte
data[10] | ROLL low byte | LONG 4 byte
data[11] | PITC high byte | LATI 1 byte
data[12] | PITC low byte | LATI 2 byte
data[13] | DIST high byte | LATI 3 byte
data[14] | DIST low byte | LATI 4 byte
data[15] | |

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

p.s. Да, таблицу нарисовать здесь, это что-то с чем-то. 😵

p.s. Наверное, если radiolink захочет увеличить количество параметров телеметрии, то будут использовать EF для второго байта. 😃

Значения конечно из головы, эти параметры передает по i2c приемнику pro mini.

Аппаратура Radiolink AT 9 2,4 ГГц
TheKing:

Аналогично, подобрать кстати не удалось.

Пока удалось выяснить только количество байт в запросе от приемника:
0x01 - 3 bytes
0x02 - 2 bytes
0x03 - 3 bytes
0x04 - 16 bytes
0x05 - 3 bytes
Четвертый адрес похоже обмен с полетным контроллером, но простой подстановкой значений пока не удалось передать.

Аппаратура Radiolink AT 9 2,4 ГГц
mr_smit:

Нужен лог обмена PRM-02 с приемником через I2C. С PRM-01 разобрался. А вот с PRM-02 никак. Приемник опрашивает адреса 0х01 - 0х05. Что ему надо отвечать по адресам 0х02-0х05 ?

У кого есть PRM-02 и логический анализатор гляньте обмен. Написал kirbizz, он молчит.

Анализатор показывает, что приемник опрашивает адреса 0x01, 0x02, 0x03, 0x04 0x05(в десятичной 1, 2, 3, 4, 5). 0x01 это RPM-01.
К сожалению, RPM-02 у меня нет, так что можно только методом подбора через какой-нибудь контроллер(атмегу или стм) попытаться подобрать общение с приемником по другим адресам.
Да, kirbizz и мне не ответил по логам.