Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самопрограммировани Attiny25
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Vishv
Доброго всем времени суток!!
Суть вопроса - необходимо оперативно менять прошивку этого процессора в готовом устройстве. Тащить наружу 5 (SPI) проводов очень трудно, да и необходимо таскать с собой программатор. В тоже время можно организовать программный 1-wire интерфейс с использованием FTDI.
Таким образом физическая реализация трудностей не создаст.
Алгоритм самопрограммирования по datashit я вроде бы понял...
И вот тут я и уперся в следующие вопросы:
1. Где должна располагаться программа самопрограммирования и как в нее попадать? В процессорах Atmega для этого, как я понял из AN 109 (bootloader), выделяется специальная область, переход на которую происходит при запрограммированном fuse- BOOTRST при старте программы, В Attiny25 ни этой области, ни этого fuse - НЕТ!!!
2. Из анализа алгоритма самопрограммирования я сделал вывод - рабочая программа может изменять сама себя в процессе работы (мне нужно поменять пару констант несколько раз за время жизни устройства - бдительных прошу не напрягаться!!! biggrin.gif речь идет о периодической подкалибровке!!!). Так вопрос -я прав или нет?

У кого есть такой опыт - поделитесь, если не жалко,,,
abi
Для примера есть Atmel AVR112: TWI Bootloader for Devices without Boot Section
http://www.atmel.com/Images/doc8079.pdf
http://www.atmel.com/Images/AVR112.zip
_Артём_
Цитата(Vishv @ Sep 20 2012, 20:05) *
1. Где должна располагаться программа самопрограммирования и как в нее попадать? В процессорах Atmega для этого, как я понял из AN 109 (bootloader), выделяется специальная область, переход на которую происходит при запрограммированном fuse- BOOTRST при старте программы, В Attiny25 ни этой области, ни этого fuse - НЕТ!!!

Располагаться может где угодно, но нулевой вектор должен делать переход на точку входа bootloader-а.
При завершении программы boot-а нужно сделать переход на точку входа основной программы.
Цитата(Vishv @ Sep 20 2012, 20:05) *
2. Из анализа алгоритма самопрограммирования я сделал вывод - рабочая программа может изменять сама себя в процессе работы (мне нужно поменять пару констант несколько раз за время жизни устройства - бдительных прошу не напрягаться!!! biggrin.gif речь идет о периодической подкалибровке!!!). Так вопрос -я прав или нет?

Для этого eeprom обычно используется. Но в приципе можно, только есть недостаток - eeprom стирается по-байтно, а у flash нужно стереть страницу (32 или 64 байта - точно не помню).
ILYAUL
Цитата(_Артём_ @ Sep 21 2012, 01:42)
Но в приципе можно, только есть недостаток - eeprom стирается по байтно

Не факт
_Артём_
Цитата(ILYAUL @ Sep 21 2012, 09:43) *
Не факт

Почему?

Я пришёл к выводу, что факт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.