OrangeRx Open LRS 433MHz TX Module
просто скорректил фюзы
Можно Ваши фьюзы ?
Так я поменял только Efuse, был ФФ поставил ФД и всё.Остальные не трогал.
а вот с ФТДИ 3,3В адаптером пытался перепрошить,приёмник ещё туда-сюда схавал прошивку,а передатчик нет
Тоже самое, передатчик не шьется через ФТДИ ни в какую…приемник уже не имею возможности попробовать… 😃
Господа, а кто может квалифицированно объяснить из-за чего сыр-бор?
Я попытаюсь изложить свое видение, поправьте, пожалуйста, где неправ.
В приемнике стоит LDO на 3.3V. Глядя в типовой даташит, я примерно прикидываю, что напряжение на меге упадет до 2.7V, только когда Uвх упадет до, примерно, 4-4.2V.
Причем на 2.7V сработает защита, а до какого падения будет жить сам кристалл, вообще никому не известно.
Правильно?
Далее, у нас еще один стабилизатор, в ESC или отдельный, не суть важно. Допустим, он тоже линейный.
Если у него на входе 3S, то срыв стабилизации наступит при разряде акка до ~ 6.5V. Тогда Uвых упадет ниже 5v, а до 4 еще и запас небольшой останется.
Для 3S акка 6.5V, это 2.16V на банку, что ниже минимального для LiPo. То есть летать на такой батарее уже не стоит.
ИМХО, правильный bodlevel это, конечно, хорошо, но не настолько, чтоб все бросились перешивать фьюзы и убивать приемники.
Поправьте меня где я ошибаюсь, плз.
Это было мое понимание теории, а теперь практика. 😃
Вчера летал FPV с апельсиновым OpenLRS. По неопытности не отследил разряд акка (на борту он был один на 3S) и допустил просадку до 7, а потом и до 6.6V.
От такого издевательства вырубилась камера (она на 12V), что, естественно, привело к морковке. Однако OpenLRS оставался жив и самолет, по словам очевидца (Эдик, подтверди 😃 ), рулился до самого конца.
А с “правильными” фьзами мог и не рулиться уже, да? 😃
Причем на 2.7V сработает защита, а до какого падения будет жить сам кристалл, вообще никому не известно. Правильно?
Правильно. Только под словом “жить” следует понимать не просто работать, а корректно работать, не разрушая настроек и прошивки.
Для 3S акка 6.5V, это 2.16V на банку, что ниже минимального для LiPo. То есть летать на такой батарее уже не стоит.
Дело совсем ни в Липо, BEC или экстремальном разряде акка. Дело в обычном отключении питания, которое не происходит мгновенно, а за неск. миллисекунд сошедшая с ума Мега может изменить пару байт в прошивке или настройках и этого будет достаточно, что-бы при следующем включении ничего не работало, или хуже того непредсказуемо глючило.
с “правильными” фьзами мог и не рулиться уже, да?
6.6 В - достаточно далеко до провала. Еще Вольт - полтора.
Не забывайте так-же что порог отключения по питанию, есть в приемнике (скорее всего те-же 2.7-2.9 В), и возможно в сервах. Так что кто сдохнет первым имеет мало значения.
А для себя можете проделать несложный эксперимент на земле с регулируемым БП, сразу узнаете в какой последовательности вырубается электроника. 😃
а за неск. миллисекунд сошедшая с ума Мега может изменить пару байт в прошивке или настройках
К сожалению, не силен в ассемблере AVR, но по моим воспоминаниям об ассемблере x86 - это крайне маловероятное событие. Возможно, сравнивать их и нельзя.
А разве мега может править собственную прошивку? Настройки в EEPROM, хоть и с трудом, но допускаю такую вероятность. Но изменять собственный код… Как-то это… странно.
А для себя можете проделать несложный эксперимент на земле с регулируемым БП, сразу узнаете в какой последовательности вырубается электроника.
Спасибо. Ценный совет, так и сделаю 😃
К сожалению, не силен в ассемблере AVR,
Ассемблер - он везде ассемблер. Только при чем он здесь? Это аппаратная проблема.
Ассемблер - он везде ассемблер. Только при чем он здесь? Это аппаратная проблема.
Хм. Поясните, пожалуйста. Флеш сам собой повреждается от бросков питания? Тогда при чем тут bodlevel на меге?
это крайне маловероятное событие.
Это очень даже вероятно. По моему опыту с другой Мегой AT90USB1287 (где похожая ситуация, BODLEVEL не соответствует частоте работы), все зависит от партии процов. На одних прошивка никогда не слетает, на других очень редко, а есть где чуть ли не через раз.
Судя по первым ласточкам: rcopen.com/forum/f90/topic302333/548 для Оанжджа это тоже справедливо.
А разве мега может править собственную прошивку?
А как она по Вашему перепрограммируется через FTDI? 😃
Флеш сам собой повреждается от бросков питания? Тогда при чем тут bodlevel на меге?
Читайте даташит. Там подробно расписанно, как предотвратить повреждение EEPROM и FLASH.
Не хотите менять BODLEVEL, ставьте аппаратный супервизор на 2.7-3В.
Это очень даже вероятно. По моему опыту с другой Мегой AT90USB1287 (где похожая ситуация, BODLEVEL не соответствует частоте работы), все зависит от партии процов. На одних прошивка никогда не слетает, на других очень редко, а есть где чуть ли не через раз.
ОК, почитал даташит и еще несколько источников.
Проблем две.
Первая для нас не актуальна: это повреждение флеша и EEPROM, когда в процессе записи напряжение падает ниже необходимого уровня. У нас, кроме бинда, ничего никуда не пишется, так что мимо.
Вторая - про нас, т.к. актуальна для приложений, использующих бутлоадер. Дело в том, что при проблемах с питанием, глючащая мега может выполнить прыжок в область загрузчика, где находится вызов SPM (Store Program Memory). Если мега случайно налетит на эту инструкцию, то затрет какую-то страницу во флеше (если силенок от подыхающего питания хватит 😃 ).
В общем, я бы оценил эту вероятность как довольно низкую и не стоящую запоротого приемника. Но все-таки у себя BOD включу 😃
Первая для нас не актуальна: это повреждение флеша и EEPROM, когда в процессе записи напряжение падает ниже необходимого уровня. У нас, кроме бинда, ничего никуда не пишется, так что мимо.
А вероятность прыжка в область своих подпрограмм, которые меняют EEPROM, Вы не рассматриваете?
Если мега случайно налетит на эту инструкцию, то затрет какую-то страницу во флеше (
Достаточно затереть пару байт.
я бы оценил эту вероятность как довольно низкую и не стоящую запоротого приемника
Если уже есть один явный прецедент, значит будут и другие. Дело, разумеется, хозяйское, но беда еще в том, что насколько мне известно, ни в прошивке Оранджа, ни в КНА, ни в Тини от Эксперта (в исходной нет точно, может хоть в адаптированной под Орандж автор добавил?) нет проверки целостности прошивки (да и настроек небось). И Вы даже не узнаете, что она слетела, пока не начнутся чудеса.
Как говорили раньше “страна непуганных идиотов”. 😃 Добваить 10 строк кода им лень… 😦
А вероятность прыжка в область своих подпрограмм, которые меняют EEPROM, Вы не рассматриваете?
Она сильно уж мала. Прыжок в начало или в конец адресного пространства, на загрузчик, гораздо более вероятен, имхо.
Да и вообще - хрен с ним, с EEPROMом. У KHA это лечится повторным биндом.
Если уже есть один явный прецедент, значит будут и другие. Дело, разумеется, хозяйское, но беда еще в том, что насколько мне известно, ни в прошивке Оранджа, ни в КНА, ни в Тини от Эксперта (в исходной нет точно, может хоть в адаптированной под Орандж автор добавил?) нет проверки целостности прошивки (да и настроек небось). И Вы даже не узнаете, что она слетела, пока не начнутся чудеса.
Как говорили раньше “страна непуганных идиотов”. Добваить 10 строк кода им лень…
KHA проверяет EEPROM. Ну как проверяет - читает magic и version 😃
От чего-то может и спасет.
avrdude: stk500_getsync(): not in sync: resp=0x00
Это что за ошибка - возникает при прошивке передатчика прошивкой от КХ4.
И что было сделано , если я нажал кнопку в Ардуино 1.04 сервис - записать загрузчик
значится так: прошивал загрузчик ардуиной - плата - Атмега 328 (без всего, та что наверху)
после чего уже залил прошивку фина
питал от 3.3 вольт с FTDI
все моргает все работает
до этого мои манипуляции под галимой виндой в экстрим бурне тупо портили загрузчик, даже просто чтение - не запись епрома флаша и фьюзов
причем на нескольких экземплярах 😃 те я поначалу растроился немного 😃 что “запорол” несколько приемников:) но упорство побеждает 😃
И еще когда подаю питание на передатчик - начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.
начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.
по идее это показывает что есть загрузчик
А что делать=то, передатчик не работает 😦
начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.
Теперь попробовать прошить прошивку для передатчика через FTDI (через ISP у меня после заливки бутлоадера ардуино не писалась прошивка)
Смтотрите, как вычислить произвольные значения:
- По опыту моего передатчика код F (максимальное значение) соответствует 1 Вт (+30 дБм), а код 0 (минимальное) - 85 мВт (+19 дБм).
Следовательно цена одного бита 0.687 дБ. Разумеется это весьма приблизительно, так как линейность данной шкалы и разброс между экземплярами не исследован.- Допустим Вы хотите получить 200 мВт (23 дБм). Значит код мощности будет K= 15 - (30-23)/0.687 = 5. То есть вместо байта 80h, надо писать 85h.
- Помимо изменений кода, надо изменить КС строчки (последний байт), так что-бы общая сумма не изменилась. Коль мы добавили 5 (относительно моей строчуи с кодом 0), надо последний байт уменьшить на 5.
Итого для 200 мВт получаем:
Строчка
:1021D0008EE0A42DB52D8C9381E00E94E7150E941E меняется на
:1021D00085E0A42DB52D8C9381E00E94E7150E9427а строчка
:102340000E94E7155A924A928DE0A42DB52D8C93E8 меняется на
:102340000E94E7155A924A9285E0A42DB52D8C93FAPS: Если после смены прошивки Вам удасться замерить реальную мощность, будет очень полезно.
Удачи!
Попробовал залить ваш вариант прошивки для tiny (85/1000)- все работает, а вот предложенный вариант с переключением мощности (200/1000) не заливается.
Просто бутлодер виснет и все. Пишет, кто критическая ошибка программы.
В последней строчке последний байт неверный: вместо FA должно быть F0. Загрузчик ругается на несовпадение КС строки.
Спасибо, исправлю!