121025-130512
[<] [>] Модуль процессора и постоянной памяти



На первом модуле разместим только две микросхемы

1. Микропроцессор Z80A в корпусе DIP-40. Устанавливать его будем в цанговую панельку SCLM-40. Эти панельки более надежные, чем обычные
.

2. В качестве микросхемы постоянного запоминающего устройства ROM применим микросхему FLASH - памяти в корпусе DIP-32. Устанавливать ее будем в панельку ZIF-32 (Zero Insertion Force — нулевое усилие вставки). Эта панелька с рычажком позволит легко вынимать микросхему FLASH для смены программ (прошивок). Такие же панельки с нулевым усилием используются и в программаторах FLASH.

Краткое описание работы Z80A

Основное назначение микропроцессора Z80A - обрабатывать данные из памяти и/или из портов ввода в соответствии с программой. Стартовая программа расположена в постоянной памяти ROM. Результаты работы по программе Z80A записывает в оперативную память и/или выводит на устройства вывода. Также возможно, если это реализовано в программе ROM, загружать различные программы и данные в оперативную память RAM.

Внутри Z80A имеется программный счетчик PC (Program Counter). Он показывает, по какому адресу будет считываться очередная команда (операция) из памяти. После перезагрузки он указывает на ячейку с нулевым адресом (0000H). Содержимое этого счетчика выдается на шину адреса Z80A при чтении команды.

Также имеется несколько восьмибитных регистров между которыми возможен обмен данными в процессе выполнения команды. Чаще всего используется регистр A (Accumulator).

Регистр флагов F (flag registers) используется для ветвления программы в зависимости от результата операции. Он состоит из нескольких флагов. Чаще всего используются флаги Z (Zero Flag) и C (Carry Flag). Проверки этих двух флагов достаточно для реализации большинства ветвлений по условию в алгоритмах программ. Флаг Z устанавливается в 1, если в результате операции число стало равно нулю или при сравнении оказалось, что два числа равны.  Флаг С устанавливается 1, если при вычитании получается отрицательное число или при сравнении первое число меньше второго.

Назначение ROM

Постоянная память ROM содержит программу, с которой начинает работу Z80A после перезагрузки. Программа и данные в этой памяти, в отличии от оперативной памяти RAM, не стираются при выключении питания. Микропроцессор не может записывать данные в ROM - только читать. В качестве ROM используем FLASH.

Записывать (прошивать) программы и данные во FLASH будем с помощью программатора "DIP-32 FLASHER" или другого подходящего для этой микросхемы программатора.

На плате кроме микросхем разместим также конденсаторы по питанию, резистор и джампер/перемычку для выбора разных прошивок с помощью старшего адреса. Но пока перемычку установим и не будем переключать. Краевой разъем на печатной плате модуля (ZX-BUS CONNECTOR) предназначен для соединения сигналов с Z80A и ROM с другими модулями микропроцессорной системы.

Шина адреса Z80A

Адреса ячеек ROM, RAM и портов ввода-вывода указываются двумя байтами (16 бит). Для этого у Z80A имеется шина адреса - сигналы A0-A15. 16 битами можно адресовать 64 Кбайта памяти или портов (адреса от 0 до 65535). При чтении команды  на шину адреса выводится значение программного счетчика PC.

Шина данных Z80A

Данные из ROM, RAM и портов ввода считываются байтами (по 8 бит). Также байтами записываются данные в RAM и порты вывода. Для этого у Z80A имеется шина данных - сигналы D0-D7.

Шина управления Z80A
Основные входные сигналы

Сигнал низкого уровня /RESET предназначен для перезагрузки микропроцессорной системы. После того, как этот сигнал станет высокого уровня Z80A начинает выполнять программу из ROM с нулевого адреса.

Тактовый сигнал CLK управляет внутренними микропроцессами в микропроцессоре. Выполнение разных команд занимает различное количество тактов - минимум 4 такта.  

Подробнее по регистрам, флагам и тактам каждой команды можно посмотреть в документации на Z80A или в онлайн таблице.

Основные выходные сигналы

/MREQ - низкий уровень при обращении к ROM или RAM. При этом на шине адреса Z80A - адрес ячейки с командой или данными памяти.

/IORQ - низкий уровень при обращении к портам ввода или вывода. При этом на шине адреса Z80A - адрес порта.

/RD - низкий уровень при чтении из ячейки памяти или порта ввода.

/WR - в момент перехода из низкого уровня в высокий происходит запись в ячейку RAM или порт вывода.

Эти сигналы а также комбинация шины адреса Z80A используются для формирования сигналов управления памятью и устройствами (портами) ввода-вывода.