OrangeRx Open LRS 433MHz TX Module

тигромух
baychi:

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

К сожалению, не силен в ассемблере AVR, но по моим воспоминаниям об ассемблере x86 - это крайне маловероятное событие. Возможно, сравнивать их и нельзя.
А разве мега может править собственную прошивку? Настройки в EEPROM, хоть и с трудом, но допускаю такую вероятность. Но изменять собственный код… Как-то это… странно.

baychi:

А для себя можете проделать несложный эксперимент на земле с регулируемым БП, сразу узнаете в какой последовательности вырубается электроника.

Спасибо. Ценный совет, так и сделаю 😃

Voldemaar
тигромух:

К сожалению, не силен в ассемблере AVR,

Ассемблер - он везде ассемблер. Только при чем он здесь? Это аппаратная проблема.

тигромух
Voldemaar:

Ассемблер - он везде ассемблер. Только при чем он здесь? Это аппаратная проблема.

Хм. Поясните, пожалуйста. Флеш сам собой повреждается от бросков питания? Тогда при чем тут bodlevel на меге?

baychi
тигромух:

это крайне маловероятное событие.

Это очень даже вероятно. По моему опыту с другой Мегой AT90USB1287 (где похожая ситуация, BODLEVEL не соответствует частоте работы), все зависит от партии процов. На одних прошивка никогда не слетает, на других очень редко, а есть где чуть ли не через раз.
Судя по первым ласточкам: rcopen.com/forum/f90/topic302333/548 для Оанжджа это тоже справедливо.

тигромух:

А разве мега может править собственную прошивку?

А как она по Вашему перепрограммируется через FTDI? 😃

тигромух:

Флеш сам собой повреждается от бросков питания? Тогда при чем тут bodlevel на меге?

Читайте даташит. Там подробно расписанно, как предотвратить повреждение EEPROM и FLASH.
Не хотите менять BODLEVEL, ставьте аппаратный супервизор на 2.7-3В.

тигромух
baychi:

Это очень даже вероятно. По моему опыту с другой Мегой AT90USB1287 (где похожая ситуация, BODLEVEL не соответствует частоте работы), все зависит от партии процов. На одних прошивка никогда не слетает, на других очень редко, а есть где чуть ли не через раз.

ОК, почитал даташит и еще несколько источников.
Проблем две.
Первая для нас не актуальна: это повреждение флеша и EEPROM, когда в процессе записи напряжение падает ниже необходимого уровня. У нас, кроме бинда, ничего никуда не пишется, так что мимо.

Вторая - про нас, т.к. актуальна для приложений, использующих бутлоадер. Дело в том, что при проблемах с питанием, глючащая мега может выполнить прыжок в область загрузчика, где находится вызов SPM (Store Program Memory). Если мега случайно налетит на эту инструкцию, то затрет какую-то страницу во флеше (если силенок от подыхающего питания хватит 😃 ).

В общем, я бы оценил эту вероятность как довольно низкую и не стоящую запоротого приемника. Но все-таки у себя BOD включу 😃

baychi
тигромух:

Первая для нас не актуальна: это повреждение флеша и EEPROM, когда в процессе записи напряжение падает ниже необходимого уровня. У нас, кроме бинда, ничего никуда не пишется, так что мимо.

А вероятность прыжка в область своих подпрограмм, которые меняют EEPROM, Вы не рассматриваете?

тигромух:

Если мега случайно налетит на эту инструкцию, то затрет какую-то страницу во флеше (

Достаточно затереть пару байт.

тигромух:

я бы оценил эту вероятность как довольно низкую и не стоящую запоротого приемника

Если уже есть один явный прецедент, значит будут и другие. Дело, разумеется, хозяйское, но беда еще в том, что насколько мне известно, ни в прошивке Оранджа, ни в КНА, ни в Тини от Эксперта (в исходной нет точно, может хоть в адаптированной под Орандж автор добавил?) нет проверки целостности прошивки (да и настроек небось). И Вы даже не узнаете, что она слетела, пока не начнутся чудеса.
Как говорили раньше “страна непуганных идиотов”. 😃 Добваить 10 строк кода им лень… 😦

тигромух
baychi:

А вероятность прыжка в область своих подпрограмм, которые меняют EEPROM, Вы не рассматриваете?

Она сильно уж мала. Прыжок в начало или в конец адресного пространства, на загрузчик, гораздо более вероятен, имхо.
Да и вообще - хрен с ним, с EEPROMом. У KHA это лечится повторным биндом.

baychi:

Если уже есть один явный прецедент, значит будут и другие. Дело, разумеется, хозяйское, но беда еще в том, что насколько мне известно, ни в прошивке Оранджа, ни в КНА, ни в Тини от Эксперта (в исходной нет точно, может хоть в адаптированной под Орандж автор добавил?) нет проверки целостности прошивки (да и настроек небось). И Вы даже не узнаете, что она слетела, пока не начнутся чудеса.
Как говорили раньше “страна непуганных идиотов”. Добваить 10 строк кода им лень…

KHA проверяет EEPROM. Ну как проверяет - читает magic и version 😃
От чего-то может и спасет.

pol81

avrdude: stk500_getsync(): not in sync: resp=0x00
Это что за ошибка - возникает при прошивке передатчика прошивкой от КХ4.
И что было сделано , если я нажал кнопку в Ардуино 1.04 сервис - записать загрузчик

Adekamer

значится так: прошивал загрузчик ардуиной - плата - Атмега 328 (без всего, та что наверху)
после чего уже залил прошивку фина
питал от 3.3 вольт с FTDI
все моргает все работает
до этого мои манипуляции под галимой виндой в экстрим бурне тупо портили загрузчик, даже просто чтение - не запись епрома флаша и фьюзов
причем на нескольких экземплярах 😃 те я поначалу растроился немного 😃 что “запорол” несколько приемников:) но упорство побеждает 😃

pol81

И еще когда подаю питание на передатчик - начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.

Adekamer
pol81:

начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.

по идее это показывает что есть загрузчик

pol81

А что делать=то, передатчик не работает 😦

karabasus
pol81:

начинает моргать красная лампа раз в 1 сек. и без разницы подключен программатор или нет.

Теперь попробовать прошить прошивку для передатчика через FTDI (через ISP у меня после заливки бутлоадера ардуино не писалась прошивка)

Andruhapes
baychi:

Смтотрите, как вычислить произвольные значения:

  1. По опыту моего передатчика код F (максимальное значение) соответствует 1 Вт (+30 дБм), а код 0 (минимальное) - 85 мВт (+19 дБм).
    Следовательно цена одного бита 0.687 дБ. Разумеется это весьма приблизительно, так как линейность данной шкалы и разброс между экземплярами не исследован.
  2. Допустим Вы хотите получить 200 мВт (23 дБм). Значит код мощности будет K= 15 - (30-23)/0.687 = 5. То есть вместо байта 80h, надо писать 85h.
  3. Помимо изменений кода, надо изменить КС строчки (последний байт), так что-бы общая сумма не изменилась. Коль мы добавили 5 (относительно моей строчуи с кодом 0), надо последний байт уменьшить на 5.

Итого для 200 мВт получаем:
Строчка
:1021D0008EE0A42DB52D8C9381E00E94E7150E941E меняется на
:1021D00085E0A42DB52D8C9381E00E94E7150E9427

а строчка
:102340000E94E7155A924A928DE0A42DB52D8C93E8 меняется на
:102340000E94E7155A924A9285E0A42DB52D8C93FA

PS: Если после смены прошивки Вам удасться замерить реальную мощность, будет очень полезно.
Удачи!

Попробовал залить ваш вариант прошивки для tiny (85/1000)- все работает, а вот предложенный вариант с переключением мощности (200/1000) не заливается.
Просто бутлодер виснет и все. Пишет, кто критическая ошибка программы.

baychi

В последней строчке последний байт неверный: вместо FA должно быть F0. Загрузчик ругается на несовпадение КС строки.

pol81
karabasus:

Теперь попробовать прошить прошивку для передатчика через FTDI (через ISP у меня после заливки бутлоадера ардуино не писалась прошивка)

Этот hobbyking.com/…/__21321__USBasp_AVR_Programming_De… программатор с хоббикинга пишет через ISP? или как это правильно сказать?
А FTDI вот такой подойдет www.ebay.com/itm/230820610037 ? или что-то другое надо?
А вот этот проводок с хоббикинга hobbyking.com/…/__27195__Atmel_Atmega_Socket_Firmw… для чего нужен?

Baron
  1. Да, через ISP.
  2. Подойдет. Переключите перемычку на 3,3 Вольта (проверяется тестером на выходе).
  3. Чтобы шить меги, если не выведен разъем ISP.
couger
pol81:

Этот www.hobbyking.com/hobbyking/s...occessors.html программатор с хоббикинга пишет через ISP? или как это правильно сказать?

Да, только он 5 вольтовый, если правильно рассмотрел на картинке- на нем есть перемычка отключающая подачу 5в на пин VCC. Для прошивки ее надо убрать , а питание подать на гребенку разъемов для серв, подадите туда 5в от любого ВЕС-а.
про остальное уже ответил предыдущий оратор 😃

pol81

Я так и не понял? чем отличается прошивка через ISP и FTDI. Где можно про ардуину почитать подробно на русском?
То есть если я забыл убрать перемычку, передатчик можно выкидывать?

Shuricus

Я тоже не понял - при заливке прошивки через ИСП бутлоадер всегда трется? Его потом нужно каждый раз заливать снова?
И есть ли разница какой бутлоадер - родной или ардуиновский?