По высокому уровню сигнала на контакте ALE микроконтроллера в регистр 74НСТ573 (DD3) производится запись младшего байта адреса, сформированного микроконтроллером на линиях A/D0…A/D7. Записанный в регистр младший байт адреса появляется на выходах регистра, соединенных с адресными входами микросхемы памяти (линии А0…А7).
На контактах порта С микроконтроллера формируется старший байт адреса (линии А8…А15).
Регистр 1533HP33 является функциональным аналогом регистра 74НСТ573, однако они выполнены по разной технологии. Опыт использования регистра 1533ИРЗЗ для фиксации младшего байта при работе микроконтроллера с внешней памятью показал, что при записи — считывании массива (0, 1…., 254, 255) появляются сбои, число которых сокращается при подключении конденсатора (десятки пикофарад) между контактом С регистра и общим проводом, использование же регистра 74НСТ573 полностью решало проблему и без конденсатора. Поэтому следует аккуратно относиться к заменен регистра.
Для качественного тестирования памяти удобно использовать подключение контроллера к компьютеру, используя UART микроконтроллера (Universal asynchronous receiver-transmitter — универсальный асинхронный приемопередатчик).
Считывание данных из внешней памяти
Если производится считывание данных из внешней памяти, то после того, как адрес установлен, линии порта А переводятся в режим ввода данных в микроконтроллер, на линии RD микроконтроллер формирует импульс отрицательной полярности. По сигналу RD шина данных D0…D7 микросхемы памяти DD5 переводится в режим вывода данных, и по линиям A/D0…A/D7 из адресуемой ячейки в порт А микроконтроллера передаются хранимые данные.
Запись данных во внешнюю память
Для записи данных во внешнюю память, после того, как адрес установлен, линии порта А переводятся в режим вывода данных из микроконтроллера, на линии WR микроконтроллер формирует импульс отрицательной полярности. По сигналу WR шина данных D0…D7 микросхемы памяти DD5 переводится в режим ввода данных, и по линиям A/D0…A/D7 из порта А микроконтроллера в адресуемую ячейку внешней памяти передаются данные для хранения.
Программный доступ к оперативной памяти
Начнем с простой программы обращения к оперативной памяти. Для этого необходимо, чтобы на вашем компьютере была установлена среда разработки AVR Studio корпорации Atmel (http://www.atmel.com), в которой создаются и отлаживаются программы для микроконтроллеров AVR.
Кроме того, в любую программу обязательно включается файл, определяющий регистры и имена битов микроконтроллера, для которого пишется программа. Для микроконтроллера AT90S8515 — это файл 8515def.inc, для AT90S4433 — файл 4433def.inc. Все файлы с расширением. inc на момент написания главы хранились в самораспаковывающемся файле avr000.exe.
Найти ссылки на файл для установки AVR Studio 3.хх и на файл avr000.exe можно по адресу: http://www.atmel.com/atmel/products/prod203.htm.
Инструкции и картинки, размещенные далее, соответствуют версии AVR Studio 3.51.
Создайте директорию, в которой будут размещаться файлы вашего проекта, например, C: \Avr\Try. Запустите скачанный файл avr000.exe, а появившийся в результате распаковки файл 8515def.inc скопируйте в созданную директорию C: \Avr\Try.
Запустите AVR Studio, на экране появится окно AVR Studio (обрамленное сверху синей полосой окно с надписью AVR Studio).
Создадим новый проект: Project | New.
Запись вида «Project | New» обозначает, что надо установить указатель мышки на меню Project, расположенном в первой строке окна AVR Studio, в открывшемся окне установить указатель мышки на слове New и нажать левую клавишу мышки. Далее вместо слов «нажать левую клавишу мышки» будем употреблять слова «щелкнуть» или «выбрать»; если требуется нажатие правой клавиши мышки — будем использовать слова «щелкнуть правой клавишей мышки».
Начальная строка окна содержит его наименование (AVR Studio…), только следующая строка доступна при работе, ее будем считать первой строкой окна.
В появившемся окне Select new project (рис. 6.21):
• введите имя проекта в строке ввода Project name (например, Memory);
• впишите вручную созданную в Windows директорию для проекта C: \Avr\Try в строку ввода Location или найдите эту директорию в дереве каталога, щелкнув по кнопке справа от строки ввода;
• выберите строку AVR Assembler для определения типа проекта в окне Project type;
• щелкните мышкой по кнопке ОК.
Рис. 6.21.
Теперь на экране активно окно Project: Memory (рис. 6.22).
Рис. 6.22.
Создадим новый файл, который будет содержать программу на Ассемблере:
• щелкните правой клавишей мышки в окне Project: Memory;
• в появившемся окне выберите строку Create New File;
• в строку Name открывшегося окна Create new file (рис. 6.23) введите имя файла программы, например, SRAM.asm, затем щелкните по кнопке ОК.