реклама на сайте
подробности

 
 
> Bootloader и радиоканал ->
Буратино
сообщение Jun 4 2011, 12:14
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Есть вот такая конфигурация: ПК, который по УСБ подключен к микросхеме моста USB-UART, далее процессор AVR (назовем его "X1"), к которому по шине SPI подключен трансивер CC1101 ("Х2"). На расстоянии 100 метров есть другой процессор AVR ("Y1") к которому подключен по SPI трансивер ("Y2").
Как с компьютера обновить прошивку на процессоре "Y1"?


PC -> USB-UART -> X1 ->X2 ............................................... Y2 -> Y1

Трансиверы работают в пакетном режиме, время от времени выпадают (принимаются с ошибкой) пакеты. приходится на уровне протокола "просить" их передать повторно. То есть канал "рваный"..
Спасибо!


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sergey_Aleksandr...
сообщение Jun 15 2011, 14:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



У AVR объём ПЗУ и ОЗУ очень сильно отличается, поэтому в оличие от каких-нибудь ARM невозможно положить принятую прошивку в буфер внутренней SRAM целиком, проверить её целостность и потом зашить во Flash. Тут либо как сказали выше ставить внешнюю память, либо пойти по другому пути. Например как я делал с обновлением прошивки через Wiznet W5100 (который по SPI к контроллеру прицеплен). Принимаемые данные пишутся напрямую во флэш (я их бил на пакеты равные объёму страницы памяти). Проверку целостности пакетов и потери пакетов при этом не проводил. На управляющей стороне по завершению прошивки ПО генерировала пакет "активация прошивки", сопровождаемый CRC всей области памяти приложений. Контроллер этот пакет принимал, считал CRC памяти, сверял с полученной и в случае удачи отсылал ответ "Всё ОК, перепрошивка удалась". Если CRC не совпадали, отсылал ответ "Прошивка повреждена, требуется повторная перепрошивка".
Плюсы: не надо дополнительных корпусов под буфера; можно шить сразу несколько устройств разом.
Минус: Область бутлодера крайне мала, а в неё надо втиснуть загрузчик, софт обслуживания канала данных, калькулятор CRC. Я свой Wiznet в Mega328 только на максимальном уровне оптимизации по объёму смог впихнуть.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016