OrangeRx Open LRS 433MHz TX Module
а за неск. миллисекунд сошедшая с ума Мега может изменить пару байт в прошивке или настройках
К сожалению, не силен в ассемблере 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. Загрузчик ругается на несовпадение КС строки.
Спасибо, исправлю!
Теперь попробовать прошить прошивку для передатчика через FTDI (через ISP у меня после заливки бутлоадера ардуино не писалась прошивка)
Этот hobbyking.com/…/__21321__USBasp_AVR_Programming_De… программатор с хоббикинга пишет через ISP? или как это правильно сказать?
А FTDI вот такой подойдет www.ebay.com/itm/230820610037 ? или что-то другое надо?
А вот этот проводок с хоббикинга hobbyking.com/…/__27195__Atmel_Atmega_Socket_Firmw… для чего нужен?
- Да, через ISP.
- Подойдет. Переключите перемычку на 3,3 Вольта (проверяется тестером на выходе).
- Чтобы шить меги, если не выведен разъем ISP.
Этот www.hobbyking.com/hobbyking/s...occessors.html программатор с хоббикинга пишет через ISP? или как это правильно сказать?
Да, только он 5 вольтовый, если правильно рассмотрел на картинке- на нем есть перемычка отключающая подачу 5в на пин VCC. Для прошивки ее надо убрать , а питание подать на гребенку разъемов для серв, подадите туда 5в от любого ВЕС-а.
про остальное уже ответил предыдущий оратор 😃
Я так и не понял? чем отличается прошивка через ISP и FTDI. Где можно про ардуину почитать подробно на русском?
То есть если я забыл убрать перемычку, передатчик можно выкидывать?
Я тоже не понял - при заливке прошивки через ИСП бутлоадер всегда трется? Его потом нужно каждый раз заливать снова?
И есть ли разница какой бутлоадер - родной или ардуиновский?