Подключение ЖК-индикатора
В данном проекте в качестве индикатора на жидких кристаллах используется модуль ITM‑2002K2SR. Этот модуль состоит из БИС контроллера управления и ЖК-панели. Контроллер управления KS0066 фирмы SAMSUNG.
Модуль позволяет отображать 20 символов в одной строке при матрице символа 6х10 и курсор. Между символами имеются интервалы шириной в одну отображаемую точку. Каждому отображаемому на ЖКИ символу соответствует его код в ячейке ОЗУ модуля.
Для соединения ЖКИ-модуля с управляющей системой используются порты ввода / вывода микроконтроллера, на которых формируется 8‑разрядная (PD0‑PD7) шина «команды / данные». Управляющие сигналы P_RS (выбор регистра команды / данные), P_R/W (направление передачи данных: P_R/W =0 – запись в память индикатора, P_R/W =1 – считывание из памяти индикатора) и P_E (строб, сопровождающий сигналы на шине «команды / данные») формируются программно на обычных линиях ввода / вывода микроконтроллера. Запись информации в ЖКИ-модуль происходит по спаду сигнала P_E. Три вывода 14‑контактного разъема (VSS, VDD, V0) предназначены для подачи питающего напряжения и напряжения смещения, которое управляет контрастностью дисплея.
Контроллер ЖК-модуля после приема байта команды или байта данных требует некоторого времени для обработки полученной информации, в течение которого не может проводить передачу.
Подключение динамического ОЗУ
Для подключения динамической памяти объемом 16 Мбайт к микроконтроллеру используется контроллер динамической памяти KP8441–40 фирмы National Semiconductor. KP8441–40 позволяет подключать до 16 Мбайт ДОЗУ. Контроллер синхронизирован с MCS‑296 на тактовой частоте 40 МГц. В качестве ДОЗУ была найдена микросхема HYB 3165160AT(L) – 40/-50/-60 с организацией 4М х 16 фирмы SIEMENS.
|
Для начала работы с ДОЗУ необходимо сбросить контроллер KP8441–40. Для сброса сигнал RST должен быть активен не менее 16-ти положительных фронтов тактовой частоты (временная диаграмма, рисунок 1).
После включения ЭМ1 сигнал RST удерживается в состоянии 0 для сброса КДОЗУ. Программирование осуществляется при помощи сигналов ML, R0–12, C0–12, ECAS и RFIP (временная диаграмма, рисунок 2). По окончании программирования контроллер переходит в 40-миллисекундный период инициализации, после чего он будет доступен для работы.
Чтение/запись динамической памяти может проводиться в синхронном и асинхронном режимах. В данной работе будет использоваться асинхронный режим. Сигнал готовности – DTCK.
Карта адресного пространства микроконтроллера составляет 16 МБ и ДОЗУ 16МБ, поэтому её не хватит для других внешних устройств. Для решения этой проблемы запрограммируем сигнал CS0 который будет выбирать банк памяти, если он равен 0 – это означает, что идёт обращение к ДОЗУ, если 1 – к другим внешним устройствам.
Микроконтроллер устанавливает сигнал RD=0, говоря о том, что происходит цикл чтения, CS0 установкой в 0, КДОЗУ отвечает установкой RAS в 0 по первому же положительному фронту, на R0–12 – устанавливается адрес строки динамической памяти, в следующем такте устанавливается CAS =0, а на С0–12 – адрес столбца и устанавливается DTACK = 0.
Цикл записи (временная диаграмма, рисунок 4) аналогичен чтению, за исключением установки WR=0.
Регенерация динамической памяти производится автоматически самим контроллером. Каждый раз, когда требуется регенерация, контроллер ожидает завершения цикла обмена данными. По окончании цикла чтения / записи, контроллер формирует сигнал запроса регенерации RFRQ=0. В следующем такте выставляется сигнал RFIP=0 (идёт регенерация). В третьем такте устанавливается RAS=0. Через два такта сбрасывается запрос на регенерацию RFRQ=1, и потом сбрасываются RFIP и RAS (установкой в 1). Таким образом, цикл регенерации занимает 6 тактов (временная диаграмма, рис. 3). Может возникнуть такая ситуация, что контроллер начнёт регенерацию, а мы – цикл чтения / записи. Для исключения такой ситуации RFRQ заводится на вход EXTINT0 микроконтроллера. Таким образом, при появлении RFRQ=0 процессор прерывает выполнение программы чтения / записи и ожидает окончания регенерации. Признаком окончания цикла регенерации служит RFIP=1.
|
Подключение АЦП
С помощью сигналов A, B, C, D (поступающих на входы мультиплексора) микроконтроллер канал, далее информация из выбранного канала поступает на вход одноканального и 16 разрядного АЦП (для его запуска устанавливается сигнал convst = 0), когда данные готовы АЦП устанавливает сигнал NMI =0, что вызывает прерывание микроконтроллера и считывания их.
Подключение клавиатуры
Клавиатура построена для организации опроса значения клавиш методом сканирования. Клавиатура доступна при установке сигнала CSKEY=0. При CSRW=0 доступна старшая половина бит регистра клавиатуры на запись, при CSRD=0 доступен весь регистр клавиатуры на чтение.
Карта адресного пространства
Микроконтроллер MCS‑296
FFFFFFH Внешняя память FFF800H | |
FFF7FFH Внешнее ПЗУ FF2080H (адрес начального пуска) | |
FF207FH Внешнее SPM FF2000H | |
FF1FFFH Внешняя память FF0400H | |
FF03FFH Резерв 700000H | |
6FFFFFH АЦП 500000H | |
4FFFFFH Клавиатура 400000H | |
3FFFFFH ЖКИ 300000H | |
2FFFFFH ОЗУ ПЯ 200000H | |
1FFFFFH Резерв 010000H | |
00FFFFH Внешнее ОЗУ 00F800H | |
00F7FFH Внешняя память 00F000H | |
00EFFFH Внешняя память 002000H | |
001FFFH SFR 001F00H | |
001EFFH Резерв 001C00H | |
001BFFH Внешняя память 000400H | |
0003FFH Резерв 000200H | |
0001FFH Регистровый файл 000000H | |
FFFFFFH ДОЗУ 000000H |