OSD на ATmega1281
Как бы это стандарт. Читайте что такое РРМ сигнал.
Да, действительно, подзабыл.
А какие допуски по длительности 3 и 5 каналов при старте системы?
Смотрим код из #1090
gCTRL_InBuff[gCTRL.Ch_AP_control] < -((CTRL100*80)/100)
Значение управляющего канала должно быть меньше 1,5мс(соответствует середине, те нулю)-0.5мс(определяется CTRL100)*80/100=1,5-0.4=1,1мс ( это соответствует команде MNL)
gCTRL_InBuff[gThr.Ch] < -((CTRL100*95)/100)
Значение газа должно быть меньше 1,5- ((0,5*95)/100)=1,025мс.
Сергей (MSV) можно Вас попросить исправить код под РРМ Эксперта
Для начала вопрос- а у эксперта нельзя настроить количество каналов в sum_ppm до 8? Там же что-то, как то настраивается?
В принципе у PPM к сожалению нет жестких стандартов, но есть значения, определяемые здравым смыслом…
Если задаться исходной задачей передать 8 каналов с периодом 20мс с минимальным спектром то неизбежно приходим:
Длина межканального интервала >2.5мсек.
Длина канального импульса 0.8-2,2мсек. Из них 0.4 мс на строб.
Уговорил (точнее просто попросил) Дмитрия на 8-ми канальный РРМ на выходе. Залил, в конфигураторе поставил 8 - работает. Заливаю обратно 10-ти канальную, выставляю 10 - не работает. Внешне и тот и другой РРМ идентичны (ну кроме количества каналов). Блин как так то?
Ну не поддерживает 10 каналов АП.
Так заработало всё при 8ми каналах?
Вон оно что оказывается… Я то чего то подумал, что если есть настройка количества каналов, то как бы и 12-ть модно подать - как бы это тоже обычный РРМ. Да и на большее количество есть. Ну да ладно… Буду дальше разбираться что к чему. Всем откликнувшимся спасибо!!!
P.S. Да, 8 каналов работает.
Так заработало? не понятно…
Да, с восьмиканальным РРМ все заработало.
Блин весь мозг вынес. Там же к конфигураторе не зря указывается кол-во каналов…
Там же к конфигураторе не зря указывается кол-во каналов…
Да это все понятно. Нигде не было сказано (ну или я этого не заметил), что поддерживается максимум 8 каналов.
Да это все понятно. Нигде не было сказано (ну или я этого не заметил), что поддерживается максимум 8 каналов.
в конфигураторе только для 8ми каналов доступна настройка… 😉
Спокойно 10 сохраняется. Версия 2.7.3 с индикацией второго напряжения и РССИ по напряжению.
Я честно в доке предупредил, что контроля за допустимыми значениями пока нет и они не всегда очевидны…
Кстати, было бы интересно, если эксперт сделал бы выход по uart, поддержав мой протокол (там кстати и RSSI, и статус для определения FS передается) или разработал бы свой…
Dacor, побазарь на эту тему с Экспертом?
Кстати, было бы интересно, если эксперт сделал бы выход по uart, поддержав мой протокол (там кстати и RSSI, и статус для определения FS передается) или разработал бы свой…
Сергей, а ты подготовь доку, где расписан твой протокол.
Может Эксперт сделает? Закинем удочку, а там посмотрим…
Он сразу спросит про поробности, а мне как бы и ответить нечего… Вот если Сергей (MSV) распишет в подробностях про протокол, тогда можно будет начинать конструктивную беседу.
Физический уровень: RS-232, TTL, 19200,8,1,n
Канальный уровень относительно стандартен:
#define SYN_UART1 0xaf
#define SYN_UART2 0x50
enum { UART_READ_CNF=0x1, UART_WRITE_CNF=0x2, UART_MAIN_DATA=0x3};
//----------------------------------------------------------------------
void send_UART(u_char type, u_char *buff, u_char cnt)
//type - тип данных (для данных=UART_MAIN_DATA)
//buff - буфер с данными
//cnt - количество байт
{
u_char crc, i;
u_char *p;
while(gSendUartCnt!=0) sending_UART();
gSendUartCnt=0;
gSendUartInd=0;
p=gSendUartBuff;
*p++=SYN_UART1; // байт1 поточной синхронизации
*p++=SYN_UART2; // байт2 поточной синхронизации
*p++=cnt; // количество байт с данными
crc=cnt;
*p++=type; // тип пакета
crc^=type;
for(i=0; i<cnt; i++)
{
crc^=buff[i];
*p++=buff[i]; // данные
}
*p=crc; // 1 байт crc
gSendUartCnt=2+1+1+cnt+1;
}
Данные ответствуют структуре
typedef struct
{
u_char ChVal[8]; // значения по каналам
u_char RSSI; // RSSI
u_char DropCnt; // счетчик дропов
u_char Valid; // флаг валидности данных
}MAIN_DATA;
Данные передаются приемником постоянно либо по готовности принятых данных, либо по тайм-ауту с периодом ~20ms.
Я честно в доке предупредил, что контроля за допустимыми значениями пока нет и они не всегда очевидны…
Про это знаю. Но вроде как другие АП без проблем хавают РРМ 10 и более каналов, поэтому даже не задумывался на этот счет. Ну да ладно - все работает.
Уговорил (точнее просто попросил) Дмитрия на 8-ми канальный РРМ на выходе. Залил, в конфигураторе поставил 8 - работает. Заливаю обратно 10-ти канальную, выставляю 10 - не работает. Внешне и тот и другой РРМ идентичны (ну кроме количества каналов). Блин как так то?
А можешь кинуть мне эту прошивку на 8 каналов для Эксперта. А то у меня тут есть человек, который будет использовать Эксперта на нашем АП.
Мыло в личку кинул.
Дмитрий на сайте у себя выложил эту прошивку (в прошивках для Тини)
Что то я его сайт найти не могу. Ткни носом.
Нужно ещё узнать тини у человека или нет.
У него передатчик большой, с усилком 7 ватным. Это какая версия?
Это 2G. Наверняка у него приемник 12-тиканальный. А у этого приемника скорее всего и РРМ на выходе 12 каналов (ну или те же 10-ть). Я приемник от Тини отдельно докупал.
Да простят меня за оффтоп…
Народ, кто нибудь, кроме меня пользует последнюю прошивку? Ту которая с доп. батареей и РССИ.