Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Энергозависимая память AVR
Микроконтроллеры / Для начинающих / Архитектура /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
SRAM Data Memory в микроконтроллерах AVR - это энергозависимая статическая память с произвольным доступом (Static Random Access Memory). То есть данные в этой памяти сохраняются только пока есть питание.
Память данных используется для временного хранения данных, получаемых в ходе работы микроконтроллера.
Одна ячейка памяти данных содержит восемь разрядов (один байт). Размер памяти данных отличается в зависимости от модели микроконтроллера.
На рисунке ниже показана организация памяти данных SRAM AVR для модели ATtiny13A.
Память данных | Адрес |
32 регистра | 0х0000 … 0х001F |
64 регистра ввода-вывода | 0х0020 … 0х005F |
Внутренняя SRAM (внутренняя статическая память) 64 х 8 бит |
0х0060 … 0х009F |
Нижние 160 мест (ячеек по одному байту) памяти данных содержат массив регистров, память ввода-вывода (I/O) и внутреннюю память данных SRAM. Первые 32 места содержат регистры, следующие 64 места - это стандартная память ввода-вывода, а последние 64 места - это внутренняя память данных SRAM.
Существует пять различных способов адресации для охвата всей памяти:
- Прямая адресация
- Косвенная адресация со смещением
- Косвенная адресация
- Косвенная адресация с предварительным декрементом
- Косвенная адресация с последующим инкрементом
В массиве регистров регистры R26...R31 содержат регистры указателей косвенной адресации.
Прямая адресация охватывает всё пространство данных.
Косвенная адресация со смещением охватывает 63 места в памяти от наименьшего базового адреса, полученного из Y- или Z-регистра.
При использовании регистра косвенной адресации с предварительным декрементом и последующим инкрементом, адреса регистров Х, Y и Z уменьшаются или увеличиваются.
Все 32 рабочих регистра общего назначения, 64 регистра ввода-вывода, и 64 байта внутренних данных SRAM в ATtiny13A доступны через все эти способы адресации. Массив регистров описан в разделе Регистры общего назначения.
Таким образом, адрес байта при обращении к SRAM может быть указан в коде команды обращения к памяти (прямая адресация), или предварительно записан в пару регистров Х, Y и Z (косвенная адресация). Обращение к SRAM может выполняться с использованием адреса, хранящегося в регистре-указателе стека.
Байт для записи в SRAM поступает из регистра общего назначения (РОН). При считывании байта из SRAM, этот байт также поступает в РОН.
Как видно из таблицы выше, в адресное пространство SRAM также включены 32 адреса (от 0х0000 до 0х001F) для обращения к РОН, и 64 адреса для обращения к регистрам ввода-вывода (0х0020 … 0х005F). Таким образом, адрес первой ячейки непосредственно памяти данных SRAM - это адрес 0х0060.
Адрес для обращения к РОН по команде обращения к SRAM совпадает с номером регистра (0...31 = 0х0000...0х001F).
Адрес для обращения к регистру ввода-вывода по команде обращения к SRAM равен его номеру, умноженному на 32 (0х0020).
Время доступа к памяти данных
В этом разделе описываются общие понятия синхронизации доступа для доступа к внутренней памяти. Доступ к внутренним данным SRAM выполняется за два такта процессора, как показано на рис. 2.
Рис. 2. Циклы доступа к внутренней памяти данных SRAM
Вступить в группу "Основы программирования"
Подписаться на RUTUBE-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |