Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle от Thus

bobt

Вот тут у него как я понимаю код 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;

}

bobt

По поводу паузы между импульсами.
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 версию с другой паузой и вы попробуете.

server28

:)Размеры моих границ не будут иметь никакой благодарности!

Летать (планеры) все одно бессмысленно - дымка, инверсия и полный штиль, я бы и проверил сразу.

bobt

Поменял на 400 и собрал бинарник под линукс через MAKE файл от Thus. Бинарник по размеру один в один как у него, теперь точно можете пробовать. Сейчас перекину с линукс машины только прошивку. И вот еще что подумал. Я лучше код кину вам в личку.

bobt
server28:

Ща спробую, данке шён!

В личку аттачменты слать нельзя как оказалось. Выкладываю тут.

TH9X_400_linux.rar

server28

Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦

bobt
server28:

Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦

Отрицаиельный результат тоже результат. Значит поляк был прав, что не должно влиять.
Кидайте Томасу осцилограмму, может у Йозефа будет идея. По моему эту часть писал он, а он сейчас не в отпуске.

server28

Владимир, я проверил - не работает. Получилась действительно одинаковая пауза 400 мкс, но есть еще одно отличие, возможно я проморгал его вчера - это общая продолжительность пакета.
В прошивке Туса длительность пакета (от первого канального до первого канального) составляет 25-26 мс, а в оригинальной прошивке турниги - точно 20 мс, как того требует стандартный PPM. Попробуем?!😉


На первой - работает прошивка Туса, на второй - Турниги.
Других отличий не нашел.

bobt

Ну как скажите, установил пакет 20000 и вернул на родину 300. Давайте я вам в личку кину свой e-mail. Вы мне туда пишите и я буду в ответ вам слать версии 😉

th9x_20000.rar

server28

Владимир, мы его:) сделали! 20 милисекунд все решили - работает. Пойду микшировать. Вам - отдельное спасибо. Буду рад помочь при случае. Я в проекте открыл кейс, потом отпишу там. Вы, если будет возможность, опишите автору прошивки проблему и ее решение. Поклонники DSM2 будут благодарны.

ВитГо

для DM9 мне показалось более важным инвертированный сигнал PPM…
все остальное не сильно заметно.

server28

Виктор, Вы наверно запутались.
DSM2, DSM, DSMJ - проприетарныe форматы передачи команд радиоуправления. Используются в аппаратуре JR и Spectrum.
Spectrum DM8 - модуль для Futaba, требует инвертированного PPM.
Spectrum DM9 - модуль для аппаратуры JR. Работает от стандартного PPM. Инверсии не требует.

Что такое DSM9?

bobt

Дополнил 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…

DD

ребят, это не пауза между канальными импульсами, это поидее и есть канальный импульс, а вот расстояние от начала одного канального импульса до начала другого и кодирует положение сервы. то есть так сказать импус это 0,3 паузы + 1,7 = 2 либо - 0,4 + 1,6 = 2, так что 0.4 или 0.3 это действительно ни на что не влияет. А длинна фрейма действительно на сколько я читал бывает разная и 20 и 22.5, но 25-26 не видел. Пробовал так же на обычную не цифровую серву подавать импульсы с повышенной частотой - серва действительно двигается неадекватно, наверное если период фрейма сильно увеличить будет тоже самое, но как мне кажется между 20 и 22.5 разницы нет

server28

Это вопросы терминологии, нет документа, где эти понятия определены. Главное, что мы поняли, о чем речь и проблему решили.
Про разницу - ну не с тоски ведь я все это замутил? Читайте выше - там все написано.

bobt

AlexeyM сделал модель данного пульта для Proteus. Начальный пост можно найти тут.
rcopen.com/forum/f4/topic139588/1215
И на основе его модели уже парень из Эстонии сделали сборку:
www.rcgroups.com/forums/showpost.php?p=15368931&po…
Я связался с Алексеем и он общал немного подправить эмулятор LCD. Не всегда чисто отображает. Он прислал мне подправленный DLL эмулятора LCD и новый
DSN. Поменял шрифт на более читабельный, но пока немного мажет по краям, что вообщем то не мешает эмуляции. Мажет за пределами зоны экрана прошивки.

Краткий порядок действий :

  1. Страртуем Proteus.
  2. Загружаем файл appa.DSN
  3. Кликаем на процессоре и выбираем прошику ( в бинарной форме )
  4. Стартуем. Нажмаем MENU и форматируем EEPROM, если он был не от нашей версии прошивки или кладем свой, скаченный с аппы.
  5. Теперь можно кликнуть на виртуальный осцилограф и посмотреть PPM сигнал. Крутим резистор ( подводим мышку к RV1 и нажимаем +)
bobt

В предыдущем посте я был не точен.
3) Кликаем на процессоре и выбираем прошику ( в HEX формате )
На картинке общий вид протеуса с эмулятором аппы.

romushock

А если такое пишет ?
Мож поделитесь свеженьким, Володя ?

Syberian

Забить и все-таки заменить ДЛЛ-ку. Иначе на 7.6 пустой экран

romushock
Syberian:

Забить и все-таки заменить ДЛЛ-ку. Иначе на 7.6 пустой экран

А как пошагово (звиняйте селянина…) ?
Экран не пустой, а весь замазан рябью…

Syberian

Заходим в каталог C:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS и переименовываем файл avr2.dll в avr2.dl_
Из архива из папки PROTEUS вытаскиваем файл avr2.dll и копируем в папку C:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS
Все.
Протеус, разумеется, должен быть выключен на время замены.
Перед запуском файла аппы нужно извлечь ВСЕ файлы из архива.

romushock

Bcё нашёл…
В той же выкладке Алексей всё дал в папке MODELS. Как говорили в студенческом прошлом - читайте первоисточники… Спасибо, пошёл играться…

bobt

Cорры. Забыл выложить обновление от Алексея. Установка: выгрузить проект из протеус. Заменить одноименные файлы. Загрузить снова.

appa.zip