Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

Самопрограммирование микроконтроллеров AVR

Самопрограммирование микроконтроллеров AVR

В этой главе будет рассмотрена такая интересная особенность AVR, как самопрограммирование (имеется у многих моделей ATtiny и во всех моделях ATmega). Суть ее заключается в возможности изменять содержимое FLASH-памяти непосредственно из пользовательской программы. Микроконтроллеры Atmel были одними из первых в мире, в которых появилось это новшество. В разделе приведен пример загрузчика, использующего аппаратный интерфейс USART, и управляющей программы высокого уровня на языке Delphi.

Область применения

Какие же выгоды предоставляет способность самопрограммирования? Сначала может показаться, что такая возможность дает AVR такие же преимущества, какими, например, обладает любой процессор с Принстонской архитектурой. Это, во-первых, способность изменять собственные алгоритмы работы и, во-вторых, возможность вести отладку приложения, не прибегая к дополнительным аппаратным средствам. Но на практике ресурсов 8-разрядного микроконтроллера совершенно недостаточно для построения “самообучающихся” интеллектуальных систем. А что касается отладки, то сама структура FLASH-памяти здесь сводит на нет все достоинства самопрограммирования (возможность размещать коды программ в быстрой памяти SRAM у AVR отсутствует). Кроме того, переписывать на ходу секцию рабочего кода, что раньше делалось только с помощью программаторов, – довольно рискованное дело. Любая неточность здесь сразу приведет к сбою. И даже наличие самого аппаратного узла, отвечающего за смену “прошивки”, потенциально снижает надежность устройства. Если прикладная программа может изменять FLASH-память, то это может случиться и непроизвольно в результате какой-либо ошибки.

Однако, со временем оказалось, что все не так уж и плохо. Самопрограммирование позволяет успешно использовать FLASH-память, как альтернативу EEPROM. Рабочий ресурс FLASH, производимой по современной технологии, составляет ≈10000 циклов стирания/записи. Это показатель хоть и на порядок меньше, чем у EEPROM, но все равно очень высокий. Благодаря этому во FLASH-памяти можно хранить таблицы, списки, поправочные коэффициенты, а также любую другую информацию, требующую периодического не слишком частого обновления.

Но, наверное, самым главным достоинством самопрограммирования, является возможность создания практически любого интерфейса, для обновления программного обеспечения. Наибольшее практическое значение имеют компьютерные COM и USB. Последний из них в упрощенном виде может быть реализован программным способом. Процессом программирования со стороны AVR должна при этом управлять специальная программа-загрузчик boot-loader. Многие современные микроконтроллеры (а также новые модели AVR) поставляются с изначально “зашитым” на заводе загрузчиком, что дает возможность использовать очень простые программаторы, лишь немного потеряв в скорости программирования.


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 3 + 5

Добавить изображение

Последние статьи