Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle от Thus
Разобрался: в прошивке Туса укороченные паузы между канальными импульсами. В заводской прошивке Турниги пауза в пакете - 400 мкс, а у Туса - 300 или чуть меньше.
Владимир, как Вы думаете, эту проблемку можно как-то поправить?
Калибровка прошла без проблем как я понимаю.
До калибровки - дело не дошло. И микширование - ни причем.
Проверял работу серв на полностью сброшенных настройках - тоже самое.
Вот тут у него как я понимаю код PPM фрейма. Поправить то можно, вопрос надо ли.
void setupPulsesPPM()
{
//www.aerodesign.de/peter/2000/PCM/frame_ppm.gif
//22.5 ges 0.3low 8* (0.7-1.7 high 0.3low) high
//uint16_t rest=22500u*2;
uint16_t rest=22500u*2;
uint8_t j=0;
for(uint8_t i=0;i<8;i++){ //NUM_CHNOUT
int16_t v = g_chans512[i];
v = 2*v - v/21 + 1200*2; // 24/512 = 3/64 ~ 1/21
rest-=v;//chans[i];
pulses2MHz[j++]=300*2;
pulses2MHz[j++]=v;
}
pulses2MHz[j++]=300*2;
pulses2MHz[j++]=rest;
pulses2MHz[j++]=0;
}
По поводу паузы между импульсами.
code.google.com/p/th9x/issues/detail?id=4
My guess is that the “delay” timing between PPM pulses are too short for my Corona module.
Но в следующем коментарии, автор польской прошивки отвечает:
Space between signals is not critical, I use 300 ms and it is ok (I’m not remember if I check how low I can get with this).
То есть он тоже как и Томас использует 300ms и пишет, что время между сигналами
не критично. Так или иначе если хотите, пока Томас в отпуске, я могу компильнуть 133 версию с другой паузой и вы попробуете.
:)Размеры моих границ не будут иметь никакой благодарности!
Летать (планеры) все одно бессмысленно - дымка, инверсия и полный штиль, я бы и проверил сразу.
Поменял на 400 и собрал бинарник под линукс через MAKE файл от Thus. Бинарник по размеру один в один как у него, теперь точно можете пробовать. Сейчас перекину с линукс машины только прошивку. И вот еще что подумал. Я лучше код кину вам в личку.
Ща спробую, данке шён!
Ща спробую, данке шён!
В личку аттачменты слать нельзя как оказалось. Выкладываю тут.
Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦
Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦
Отрицаиельный результат тоже результат. Значит поляк был прав, что не должно влиять.
Кидайте Томасу осцилограмму, может у Йозефа будет идея. По моему эту часть писал он, а он сейчас не в отпуске.
Владимир, я проверил - не работает. Получилась действительно одинаковая пауза 400 мкс, но есть еще одно отличие, возможно я проморгал его вчера - это общая продолжительность пакета.
В прошивке Туса длительность пакета (от первого канального до первого канального) составляет 25-26 мс, а в оригинальной прошивке турниги - точно 20 мс, как того требует стандартный PPM. Попробуем?!😉
На первой - работает прошивка Туса, на второй - Турниги.
Других отличий не нашел.
Ну как скажите, установил пакет 20000 и вернул на родину 300. Давайте я вам в личку кину свой e-mail. Вы мне туда пишите и я буду в ответ вам слать версии 😉
Владимир, мы его:) сделали! 20 милисекунд все решили - работает. Пойду микшировать. Вам - отдельное спасибо. Буду рад помочь при случае. Я в проекте открыл кейс, потом отпишу там. Вы, если будет возможность, опишите автору прошивки проблему и ее решение. Поклонники DSM2 будут благодарны.
для DM9 мне показалось более важным инвертированный сигнал PPM…
все остальное не сильно заметно.
Виктор, Вы наверно запутались.
DSM2, DSM, DSMJ - проприетарныe форматы передачи команд радиоуправления. Используются в аппаратуре JR и Spectrum.
Spectrum DM8 - модуль для Futaba, требует инвертированного PPM.
Spectrum DM9 - модуль для аппаратуры JR. Работает от стандартного PPM. Инверсии не требует.
Что такое DSM9?
опс… DM9 конечно !
Дополнил 41 проблему и покополся в инете. Я понял почему у Томаса длинна фрейма 22.5 ms и пауза 300 микросек. Если в гугле ввести PPM Frame, то немецкие источники выдают именно такую информацию для 8 канальных передатчиков.
Вот примеры:
www.aerodesign.de/peter/2000/…/PCM_PPM_eng.html
или вот
www.mftech.de/ppm_en.htm
Однако иные источники приводят длинну фрейма 18-20 ms и паузу 250-400 микросек.
agert.homelinux.org/blog/index.php/PPM
Я вижу только один путь, если это критично. Выносить оба параметра в настройки.
В догонку. Нашел еще про Футабу и снова 22.5:
insecure.ws/…/control-rc-aircrafts-from-your-compu…
ребят, это не пауза между канальными импульсами, это поидее и есть канальный импульс, а вот расстояние от начала одного канального импульса до начала другого и кодирует положение сервы. то есть так сказать импус это 0,3 паузы + 1,7 = 2 либо - 0,4 + 1,6 = 2, так что 0.4 или 0.3 это действительно ни на что не влияет. А длинна фрейма действительно на сколько я читал бывает разная и 20 и 22.5, но 25-26 не видел. Пробовал так же на обычную не цифровую серву подавать импульсы с повышенной частотой - серва действительно двигается неадекватно, наверное если период фрейма сильно увеличить будет тоже самое, но как мне кажется между 20 и 22.5 разницы нет
Это вопросы терминологии, нет документа, где эти понятия определены. Главное, что мы поняли, о чем речь и проблему решили.
Про разницу - ну не с тоски ведь я все это замутил? Читайте выше - там все написано.
AlexeyM сделал модель данного пульта для Proteus. Начальный пост можно найти тут.
rcopen.com/forum/f4/topic139588/1215
И на основе его модели уже парень из Эстонии сделали сборку:
www.rcgroups.com/forums/showpost.php?p=15368931&po…
Я связался с Алексеем и он общал немного подправить эмулятор LCD. Не всегда чисто отображает. Он прислал мне подправленный DLL эмулятора LCD и новый
DSN. Поменял шрифт на более читабельный, но пока немного мажет по краям, что вообщем то не мешает эмуляции. Мажет за пределами зоны экрана прошивки.
Краткий порядок действий :
- Страртуем Proteus.
- Загружаем файл appa.DSN
- Кликаем на процессоре и выбираем прошику ( в бинарной форме )
- Стартуем. Нажмаем MENU и форматируем EEPROM, если он был не от нашей версии прошивки или кладем свой, скаченный с аппы.
- Теперь можно кликнуть на виртуальный осцилограф и посмотреть PPM сигнал. Крутим резистор ( подводим мышку к RV1 и нажимаем +)
А если такое пишет ?
Мож поделитесь свеженьким, Володя ?