Раздел: Документация
0 ... 164 165 166 167 168 169 170 ... 195 В процессе программирования могут выполняться следующие операции: •стирание кристалла (chip erase); •чтение/запись FLASH-памяти программ; •чтение/запись EEPROM-памяти данных; •чтение/запись конфигурационных ячеек; •чтение/запись ячеек защиты; •чтение ячеек идентификатора; •чтение калибровочного байта. Все модели микроконтроллеров поставляются со стертой памятью программ и памятью данных (во всех ячейках находится число $FF) и пригодны к немедленному программированию. 14.1.1. Защита кода и данных Содержимое FLASH-памяти программ, а также содержимое EEPROM-памяти данных может быть защищено от записи и/или чтения посредством программирования ячеек защиты (Lock Bits) LBl и LB2. Возможные режимы защиты, соответствующие различным состояниям этих ячеек, приведены в Табл. 14.2. Таблица 14.2. Режимы защиты
В режимах 2 и 3 запрещается также изменение конфигурационных ячеек (см. далее). Поэтому включение защиты следует выполнять в самую последнюю очередь, после программирования остальных областей памяти микроконтроллера. Во всех микроконтроллерах семейства, кроме ATmega48x, имеется четыре дополнительные ячейки защиты — BLB02, BLB01, BLB12 и BLB11. Ячейки BLB02:BLB01 определяют уровень доступа из секции загрузчика к коду, расположенному в секции прикладной программы, а ячейки BLB12:BLB11, наоборот, определяют уровень доступа из секции прикладной программы к коду, расположенному в секции загрузчика. Отсутствие указанных ячеек в модели ATmega48x обусловлено отсутствием у последней выделенной секции загрузчика. Возможные режимы защиты, соответствующие различным состояниям этих ячеек, приведены в Табл. 14.3 и Табл. 14.4 соответственно. Таблица 14.3. Режимы защиты секции прикладной программы
Все перечисленные ячейки защиты сгруппированы в одном байте. Расположение ячеек защиты в нем для разных моделей приведено на Рис. 14.1. 7 Начальное значение 1 7 Начальное значение 1 Рис. 14.1. Байт ячеек защиты В исходном (запрограммированном) состоянии во всех ячейках защиты содержится 1, после программирования — 0. Стирание ячеек (запись в них лог. 1) может быть произведено только при выполнении команды «Стирание кристалла», уничтожающей также содержимое FLASH- и EEPROM-памяти. 14.1.2. Конфигурационные ячейки Как следует из названия, конфигурационные ячейки (Fuse Bits) определяют различные параметры конфигурации микроконтроллера. Эти ячейки расположены в отдельном адресном пространстве, доступном только при программировании. Все конфигурационные ячейки сгруппированы в несколько байтов, а состав этих ячеек зависит от конкретной модели микроконтроллера. Наличие тех или иных ячеек в конкретном микроконтроллере можно определить по Табл. 14.5, где в столбцах, отмеченных «звездочкой», указаны состояния конфигурационных ячеек по умолчанию. Краткое назначение всех конфигурационных ячеек приведено в Табл. 14.6. Подробное описание их назначений было приведено в соответствующих главах книги. Для изменения содержимого конфигурационных ячеек используются специальные команды программирования. Команда «Стирание кристалла» на состояние этих ячеек не влияет. Напоминаю, что при запрограммированной ячейке защиты LB1 конфигурационные ячейки блокируются. Поэтому конфигурацию микроконтроллера необходимо задавать до программирования ячеек защиты. 1 5 BLB12 1 4 BLB11 1 3 BLB02 1 2 BLB01 LB2 J LB2 1 0 LB1 ATmega48x Остальные модели 0 ... 164 165 166 167 168 169 170 ... 195
|