Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle (Кодер Fokus-a - MSV)

ВитГо

в конце выдал ошибку…

что напрягает снова прочитать не могу!!! и не понимаю от чего зависит прочитает он или нет 😦((

msv

Кстати, забыл приложить к архиву ТХТ файлик Сергея МСВ, тем самым нарушил его авторские права.

Да ладно… Не в копирайте счастье… 😃
Странно, именно в этой ветке так много недовольных звуком, хотя давно ждал подобных вопросов в основной ветке…
Все звуки определены в файле menu.c в структурах BEEP_TRACK_DEF. Формат массива: нота (0-ля первой октавы), длительность (мсек). Можете записать первый концерт Чайковского или что-нибудь из AC/DC. 😃
Запускаются проигрывание звуков функцией:
void beep_start(BEEP_TRACK_DEF flash *notes, unsigned char cnt, unsigned char rep);
notes- трек;
cnt - кол-во нот в треке;
rep- кол-во повторов трека.
Персонилизируйте свои пульты!

Stepan_M
ВитГо:

у меня программатор так и не заработал 😦(

пишет что не может войти в режим программирования…

диоды на входе перемыкал - после этого не стартует программа avrprog - пишет что нет совместимой платы 😦(

пробовал запитать передатчик при программировании через усб - тоже фиг…

перемкнул резистор по линии резет программатора - тоже нет…

у кого еще есть какие идеи?

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

Согласно рекомендации каждый сигнальный провод должен чередоваться с земляным.

У меня получился кабель на LPT длиной 35 см и еще внутри передатчика 12 см. Максимальная длина при таком подключении составляет 50 см.

Второй раз прошивал с помощью программы Ponyprog 2.07с, в шнурке у меня резисторы по 110 ом.

Удачи.

Aleksey_Gorelikov
msv:

Странно, именно в этой ветке так много недовольных звуком, хотя давно ждал подобных вопросов в основной ветке…

Есть еще одна вещь, которую я не афишшировал. Я не корректировал работу таймера, генерирующего звук, а тактируется то он теперь другой частотой. 😉 Отчасти звук хуже из-за этого. Ноты то уплыли…

EagleB3
Aleksey_Gorelikov:

Еще раз, посмотри про PEN !

Да грабли были, и были они у меня.
Причина - плохая пайка или на конденсаторах обвески кварца, или на “земляной” ноге МЕГИ, что рядом с цепями генератора.
Камень не читался без шаманства с ногой PEN. Но и с ногой PEN он еле ворочался (как будто кварц не на 12МГц, а на 12КГц в лучшем случае. Точнее не считал).

Stepan_M
Aleksey_Gorelikov:

Есть еще одна вещь, которую я не афишшировал. Я не корректировал работу таймера, генерирующего звук, а тактируется то он теперь другой частотой. 😉 Отчасти звук хуже из-за этого. Ноты то уплыли…

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

А также чем потом его компилировать в хекс.

Заранее благодарю.

Aleksey_Gorelikov

Компилировать в хекс - нужен CjdevisionAVR. Искать в инете ( прямую ссылку не дам, правила форума запрещают). Нужна версия не ниже 2.х.х. Иначе не откомпилирует.

Со шнурком - до смешного. Я все порты меги назначил на ввод, потом нужные переназначил на вывод. Собственно, чтобы шнурок заработал, надо было с вывода что по схеме simcontrol (управление коммутатором ППМ) выдать логический 0.

Для этого надо в файле coder.c найти строки, где задаются регистры управления порта ввода-вывода G,можно по комментариям:
// Port G initialization
// Func4=In Func3=In Func2=In Func1=In Func0=In
// State4=P State3=P State2=P State1=P State0=P

И плставить значения:
PORTG=0x0F;
DDRG=0x10;

Не буду ради этого исходники перевыкладывать, надеюсь разберетесь.

Stepan_M

Алексей! По совету MSV снова обращаюсь к вам по поводу включения на второй раз.

Оказалось что не включается только дисплей.

Можете подсказать где в исходнике описана процедура инициализации дисплея.

Похоже надо удлинить сигнал сброса.

Это оно?

void LCD_init(void) // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
//int i;

PORTC &= 0x04;
delay_us (100);
PORTC |= 0x04;

flysky_LCD_command(0xA1);
flysky_LCD_command(0xC0);

flysky_LCD_command(0xA2);
flysky_LCD_command(0x1D);
delay_us (100);
flysky_LCD_command(0x2B-);
delay_us (100);
flysky_LCD_command(0x2F);
flysky_LCD_command(0x25);
flysky_LCD_command(0x81);
flysky_LCD_command(CONTRAST);
delay_us (100);
flysky_LCD_command(0xAF);

Aleksey_Gorelikov
Stepan_M:

Похоже надо удлинить сигнал сброса.

Это оно?

Да.

void LCD_init(void) // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
//int i;

PORTC &= 0x04; // подняли сброс
delay_us (100); // ширина импулься
PORTC |= 0x04; // опустили сброс
// вот тут можно задержку поставить.

Stepan_M

delay_us (200)

Так правильно? Столько должно хватить?

Aleksey_Gorelikov

Попробуйте. Практически правильно. “;” забыли. Можно еще ширину сброса попробовать поменять, а может перед сбросом еще паузу поставить.

druksel

Степан, ну чем кончилась история с увеличением времени сброса???

Stepan_M
druksel:

Степан, ну чем кончилась история с увеличением времени сброса???

Не было времени разобраться. Компилятор установил - проект нормально загрузился.

Потом начальство столько работы накидало что только вот к концу недели разобрался.

Планирую исправлять поэтапно - сначала - тренерский разъем

Потом дисплей

Потом рингтоны:)

druksel

понятно… а то прочитав в другой ветке про то что залили ерлуговскую прошивку малость подрасстроился - подумал что решили забить на это…

Aleksey_Gorelikov
Stepan_M:

Планирую исправлять поэтапно - сначала - тренерский разъем

Тренерский разъем яж уже поправил (только на выход ппм). На вход - вряд ли буду делать. Там давольно много писать придется, а я не хочу от авторского варианта MSV отходить, т.к. вижу данный проект как подветку “кодера фокуса”. Перед отпуском заказал себе эту “игрушку”. Вернусь с отпуска - получу (если почта тормозить не будет) - попробую памяти моделей прибавить, да лишние крутилки задействовать. Скорее всего, будетут варианты:

  1. с двумя крутилками и доп. трехпозиционным тумблером вместо “верхней крутилки”
  2. с тремя крутилками.

По первому варианту - для упрощения модификации тумблер будет сажаться вместо крутилки на АЦП (теже провода). Необходимо будет допаять навесным монтажем на тумблер два одинаковых резистора практически любого номинала. Крутила, если не менять на тумблер тоже будет работать, но как тумблер (край- центр- край.).

Stepan_M

Наша благодарность не будет иметь границ, в пределах разумного!😒

Вячеслав_Михеев
Aleksey_Gorelikov:

Тренерский разъем яж уже поправил (только на выход ппм). На вход - вряд ли буду делать. Там давольно много писать придется, а я не хочу от авторского варианта MSV отходить, т.к. вижу данный проект как подветку “кодера фокуса”. Перед отпуском заказал себе эту “игрушку”. Вернусь с отпуска - получу (если почта тормозить не будет) - попробую памяти моделей прибавить, да лишние крутилки задействовать. Скорее всего, будетут варианты:

  1. с двумя крутилками и доп. трехпозиционным тумблером вместо “верхней крутилки”
  2. с тремя крутилками.

По первому варианту - для упрощения модификации тумблер будет сажаться вместо крутилки на АЦП (теже провода). Необходимо будет допаять навесным монтажем на тумблер два одинаковых резистора практически любого номинала. Крутила, если не менять на тумблер тоже будет работать, но как тумблер (край- центр- край.).

а может одной крутилкой и 2 трех позиционными тумблерами обойдемся

druksel

самое интересное что на главном экране крутилки отображаются и реагируют на ручки…😃, то бишь как я понимаю процессором они обрабатываются…

Aleksey_Gorelikov

Да, вертелки опрашиваются и больше ничего. в прошивеке используется только одна, остальные даже не нормализуются. Привязывать их - надо менять меню и структуру епром. Однако, в кодере МСВ у тумблеров весьма приятная функция - плавное замедление. Я пока не решаюсь выкидывать из программы SW2 и внедрять вместо него крутилку, т.к. считаю задержку более удобной. Крутилка полезна для подстройки каких-либо параметров, и практически бесполезна в том виде, в котором есть. А 3 крутилки - имхо изврат, продиктованный ничем иначе, как наличием свободных каналов АЦП. Использовались бы они как в мультиплексе… Но увы. Переписывать кодер целиком я не буду. Хочу максимально оставить совместимость с МСВ, он то свой проект бериодически обновляет.