9. Память
9.1 AT91SAM7S256
- 256 кбайт внутренней флэш-памяти
- 1024 страницы по 256 байт каждая
- Быстрый доступ: 30МГц в предельном случае
- Время программирования одной страницы с предварительным авто-стиранием: 6 мс
- Время программирования одной страницы без предварительного авто-стирания: 3 мс
- Время стирания всей флэш-памяти: 15 мс
- 10 000 циклов стирании/записи, время хранения содержимого флэш-памяти: 10 лет
- 16 защитных битов с индивидуальной защита каждого из 16 секторов (по 64 страницы)
- Режим Секретности для защиты от копирования содержимого флэш-памяти
- 64 кбайт быстрой внутренней статической памяти
- Доступ для чтения/записи за один такт на максимальной частоте тактового генератора
9.2 AT91SAM7S128
- 128 кбайт внутренней флэш-памяти
- 512 страниц по 256 байт каждая
- Быстрый доступ: 30МГц в предельном случае
- Время программирования одной страницы с предварительным авто-стиранием: 6 мс
- Время программирования одной страницы без предварительного авто-стирания: 3 мс
- Время стирания всей флэш-памяти: 15 мс
- 10 000 циклов стирании/записи, время хранения содержимого флэш-памяти: 10 лет
- 8 защитных битов с индивидуальной защита каждого из 8 секторов (по 64 страницы)
- Режим Секретности для защиты от копирования содержимого флэш-памяти
- 32 кбайта быстрой внутренней статической памяти
- Доступ для чтения/записи за один такт на максимальной частоте тактового генератора
9.3 AT91SAM7S64
- 64 кбайта внутренней флэш-памяти
- 512 страниц по 128 байт каждая
- Быстрый доступ: 30МГц в предельном случае
- Время программирования одной страницы с предварительным авто-стиранием: 6 мс
- Время программирования одной страницы без предварительного авто-стирания: 3 мс
- Время стирания всей флэш-памяти: 15 мс
- 10 000 циклов стирании/записи, время хранения содержимого флэш-памяти: 10 лет
- 16 защитных битов с индивидуальной защита каждого из 16 секторов (по 32 страницы)
- Режим Секретности для защиты от копирования содержимого флэш-памяти
- 16 кбайт быстрой внутренней статической памяти
- Доступ для чтения/записи за один такт на максимальной частоте тактового генератора
9.4 AT91SAM7S321/32
- 64 кбайта внутренней флэш-памяти
- 256 страниц по 128 байт каждая
- Быстрый доступ: 30МГц в предельном случае
- Время программирования одной страницы с предварительным авто-стиранием: 6 мс
- Время программирования одной страницы без предварительного авто-стирания: 3 мс
- Время стирания всей флэш-памяти: 15 мс
- 10 000 циклов стирании/записи, время хранения содержимого флэш-памяти: 10 лет
- 8 защитных битов с индивидуальной защита каждого из 8 секторов (по 32 страницы)
- Режим Секретности для защиты от копирования содержимого флэш-памяти
- 8 кбайт быстрой внутренней статической памяти
- Доступ для чтения/записи за один такт на максимальной частоте тактового генератора
9.5 Распределение памяти
9.5.1 Внутренняя статическая память - СОЗУ (SRAM)
В состав каждого микроконтроллера AT91SAM7S256/128/64/321/32 встроена высокоскоростная статическая память размером 64/32/16/8/8 кбайт соответственно. Сразу после сброса статическая память доступна начиная с адреса 0x0020 0000, но до выполнения Remap SRAM (отображение статической памяти на область размещения флэш-памяти). После выполнения этой команды статическая память также становится доступной и по адресу 0x0000 0000.
9.5.2 Внутренняя однократно перезаписываемая память - ПЗУ (ROM)
В состав каждого микроконтроллера серии AT91SAM7S встроена внутренняя энергонезависимая однократно программируемая память - ПЗУ (ROM), в которой размещен интерфейс для быстрого программирования флэш-памяти (FFPI) и программа стартового бут-загрузчика SAM-BA, которая копируется в два первых сектора флэш-памяти, и оттуда же выполняется (прим. переводчика).
По умолчанию память ПЗУ не отображена в область памяти микроконтроллера.
9.5.3 Внутренняя флэш-память (FLASH)
В состав каждого микроконтроллера AT91SAM7S256/128/64/321/32 встроена быстрая флэш-память размером 256/128/64/32/32 кбайт соответственно и размещена в виде одного неделимого банка памяти. Флэш-память всегда отображена в память с начальным адресом 0x0100 0000. Также флэш-память доступна по адресу 0x0 сразу после сброса, но до выполнения команды Remap (см. выше).
Рисунок 9-1. Распределение памяти в микроконтроллерах семейства AT91SAM7S
9.6 Встроенная Флэш-память
9.6.1 Обзор по флэш-памяти
- Флэш-память микроконтроллера AT91SAM7S256 организована в виде 1024 страниц по 256 байт каждая. 262 144 байт памяти размещены в виде 65 536 32-битных слов.
- Флэш-память микроконтроллера AT91SAM7S128 организована в виде 512 страниц по 256 байт каждая. 131 072 байт памяти размещены в виде 32 758 32-битных слов.
- Флэш-память микроконтроллера AT91SAM7S64 организована в виде 512 страниц по 128 байт каждая. 65 526 байт памяти размещены в виде 16 384 32-битных слова.
- Флэш-память микроконтроллеров AT91SAM7S321/32 организована в виде 256 страниц по 128 байт каждая. 32 768 байт памяти размещены в виде 8192 32-битных слова.
- Флэш-память микроконтроллеров AT91SAM7S256/128 содержит в своем составе буфер для записи размером 256 байт, доступ к которому производится по 32-битному интерфейсу.
- Флэш-память микроконтроллеров AT91SAM7S64/321/32 содержит в своем составе буфер для записи размером 128 байт, доступ к которому производится по 32-битному интерфейсу.
С целью предотвращения сбоев в работе флэш-памяти во все микроконтроллеры семейства AT91SAM7S встроен очень полезный супервизор напряжения питания. Этот супервизор в случае недопустимых изменений питающего напряжения вызывает аппаратный сброс (фактически сброс выполняет контроллер сброса).
Если флэш-память не используется относительно продолжительное время (отсутствуют циклы записи или чтения), то она автоматически переключается в режим ожидания с резким уменьшением потребляемого ею тока.
9.6.2 Контроллер встроенной флэш-памяти
Контроллер встроенной флэш-памяти (EFC) предназначен для обработки и выполнения соответствующих запросов из главных модулей микроконтроллера. Контроллер позволяет выполнять непосредственное чтение данных из флэш-памяти или сохранение данных в буфере записи. Кроме того, EFC имеет в своем составе интерфейс пользователя, который наравне с контроллером памяти отображается на шине периферии (APB). Интерфейс пользователя позволяет следующее:
- программное изменение параметров доступа к флэш-памяти (число тактов ожидания, временные параметры и т.п.)
- выполнение таких команд, как полное стирание, постраничное стирание и программирование, установка/сброс NVM-битов и т.п.
- предоставление результата выполнения последней команды, в том числе ошибок выполнения
- программная настройка прерываний, возникающих сразу после успешного выполнения последней команды или при возникновении ошибок в работе флэш-памяти
Контроллер встроенной флэш-памяти также имеет в своем составе двойной 32-битный буфер предвыборки данных, который позволяет оптимизировать операции 16-битного доступа к флэш-памяти. Работа этого буфера особенно полезно во время работы ядра процессора в режиме Thumb.
9.6.3 Биты защиты флэш-памяти
Контроллер встроенной флэш-памяти имеет в своем составе 16/8 бит защиты от случайного выполнения команд стирания или записи 16/8 областей флэш-памяти. В таблице 9-1 приведен перечень числа бит защиты флэш-памяти (числа областей), числа станиц на один бит и размера одной страницы.
Таблица 9-1. Биты защиты флэш-памяти семейства AT91SAM7S
Микроконтроллер |
Число бит защиты / областей |
Число страниц в одной области |
Размер одной страницы |
AT91SAM7S256 |
16/16 |
64 |
256 байт |
AT91SAM7S128 |
8/8 |
64 |
256 байт |
AT91SAM7S64 |
16/16 |
32 |
128 байт |
AT91SAM7S321/32 |
8/8 |
32 |
128 байт |
При попытке выполнения команды стирания или записи защищенной области контроллер флэш-памяти (EFC) прервет выполнение этой команды и вызовет соответствующее прерывание.
Все биты защиты флэш-памяти (NVM-биты) программно доступны через пользовательский интерфейс EFC. Выполнение команды "Set Lock Bit" ("установить защиту") разрешит защиту соответствующей области. Выполнение команды "Clear Lock Bit" ("снять защиту") позволит вновь беспрепятственно стирать и записывать соответствующую область.
9.6.4 Особенности бита секретности
Особенностью семейства микроконтроллеров AT91SAM7S256/128/64/321/32 является наличие бита секретности, основанного на особом бите NVM. Если этот бит установлен, то игнорируется любой вид доступа к флэш-памяти (в том числе через интерфейс внутрисхемной отладки ICE и через интерфейс FFP). Таким способом производится защита содержимого флэш-памяти от нелегального копирования и дизассемблирования.
Установка быта секретности возможна только с помощью команды "Set Security Bit" ("установить бит секретности") через пользовательский интерфейс EFC. Однако, сброс бита секретности возможен лишь только при полной очистке всей флэш-памяти посредством подачи лог. "1" на внешний вывод ERASE. После того как бит секретности сброшен, вновь становиться возможным обычный доступ к содержимому флэш-памяти (имеются в виду команды стирания и записи).
Очень важно отметить тот факт, что время удержания лог. "1" на входе ERASE должно быть не менее 50 мс.
Поскольку к выводу ERASE подключен внутренний подтягивающий к земле резистор, то этот вывод допустимо оставлять неподключенным в обычно режиме работы. Однако, для более надежной работы окончательной версии устройства на базе семейства AT91SAM7S вывод ERASE следует непосредственно соединять с земляным полигоном схемы.
9.6.5 Контроллер супервизора напряжения питания
Для управления супервизором напряжения питания (BOD) предназначены два NVM бита (GPNVM), которые сохраняют свои состояния при отсутствии напряжения питания.
Оба этих GPNVM бита устанавливаются и сбрасываются соответственно командами "Set General-purpose NVM bit" ("Установить NVM бит общего назначения") и "Clear General-purpose NVM bit" ("Очистить NVM бит общего назначения ").
- GPNVM бит 0 используется для разрешения/запрета работы BOD. Установка этого бита разрешает работу BOD, сброс бита - запрещает. Полная очистка чипа (через вывод ERASE) сбрасывает GPNVM бит 0, тем самым, запрещая работу BOD.
- GPNVM бит 1 используется для разрешения/запрета формирования сигнала сброса при провале питающего напряжения, зафиксированного BOD. Установка этого бита разрешает формирование сигнала сброса от BOD, сброс бита - запрещает. Полная очистка чипа (через вывод ERASE) сбрасывает GPNVM бит 1, тем самым, запрещая формирование сигнала сброса от BOD.
9.6.6 Калибровочные биты
Восемь конфигурационных бит (NVM-биты) используются для калибровки BOD и стабилизатора напряжения. Эти биты записываются в кристалл на этапе производства, поэтому программно и аппаратно для изменения недоступны (в т.ч. через вывод ERASE).
Интерфейс для быстрого программирования встроенной флэш-памяти
Интерфейс быстрого программирования флэш-памяти (FFPI) позволяет программировать устройство либо через последовательный JTAG интерфейс, либо через параллельный специализированный порт, который позволяет выполнять программирование с помощью стандартных промышленных программаторов.
FFPI поддерживает команды чтения, записи, стирания страницы, полного стирания всей флэш-памяти, снятия и установки битов защиты.
Переход в режим быстрого программирования осуществляется в том случае, если на выводах TST, PA0 и PA1 присутствует высокий логический уровень, а на выводе PA2 - низкий.
9.7 Стартовый бут-загрузчик SAM-BA
Стартовый бут-загрузчик SAM-BATM размещен в двух первых секторах внутренней флэш-памяти. Восстановление к исходному состоянию SAM-BA происходит в том случае, если на выводах TST, PA0, PA1 и PA2 присутствует высокий логический уровень.
Стартовый бут-загрузчик SAM-BA является программой (записывается на этапе производстве кристалла), которая предоставляет простой способ изменения содержимого внутренней флэш-памяти.
Стартовый бут-загрузчик SAM-BA поддерживает обмен данными либо через последовательный порт DBGU, либо через встроенный порт USB (кроме AT91SAM7S32).
- Порт DBGU позволяет обмениваться данными с программным автоматическим определением скорости обмена только при использовании кварцевого резонатора частотой 3…20 МГц.
- Обмен данными через USB порт при работе SAM-BA возможен только с кварцевым резонатором частотой 18,432 Гц.
Для отладки приложения на персональном компьютере (отладочный порт SAM-BA подключается к COM или USB порту компьютера) может использоваться специально предназначенная для этого программа внутрисхемной отладки.
|