СХЕМЫ И ДОКУМЕНТАЦИЯ

Радиоконструктор AVR ZX Spectrum V2.0 (Описание, инструкция по сборке, инструкция по программированию)

1. Обзор

Описываемое устройство представляет собой дальнейшее развитие ZXSpectrum на микроконтроллерах AVRV1_0, уже представленное ранее. Как и ранее, это полноценный программно-аппаратный эмулятор всемирно известного и по сей день ПК ZX Spectrum.

Технические характеристики:

Как можно видеть из приведённых технических характеристик, отличается версия V2_0 от своего предшественника рядом конструктивных, аппаратных и программных усовершенствований.

  1. Наличие SDкарты и дисковой операционной системы SDDOS, работающей под файловой системой FAT32, позволяет удобно подготавливать файлы на IBM-совместимом ПК, записывая их на карту памяти, а также мгновенно запускать их в SDDOS;
  2. Клавиатура теперь значительно расширена. Полностью задействована дополнительная клавиатура, клавиши F1...F12, «-», «+», «[», «]», «:», «/», «<», «>», «”», что предоставляет значительные удобства;
  3. Предусмотрена возможность установки разъёма для подключения клавиатуры на плату. Что делает более удобным проектирование расположения платы внутри какого либо корпуса.
  4. Эмулятор музыкального сопроцессора AY8910(12) теперь не распаивается в переходные отверстия, а стыкуется к системной шине на разъёме;
  5. Выведены отдельные разъёмы для внешнего программирования микроконтроллеров ATMega128-16AU;
  6. Питание устройства теперь осуществляется через соединитель mini-USB, устанавливаемый на плату, что делает возможным использование для питания устройства обычных зарядных устройств и источников питания для многочисленных на сегодняшний день гаджетов;
  7. Центральный процессор теперь ориентирован правильным образом на плате;

2. Схема электрическая принципиальная

Схема устройства приведена на рисунке 1.

В устройстве можно выделить следующие функциональные блоки:

Рисунок 1 – схема электрическая принципиальная AVRZXSpectrumV2_0 (подробная схема в архиве внизу статьи)

 

Разъём XS4 предназначен для подключения micri-SD карты памяти.
 
Как видно из схемы, устройство реализовано на восьми микросхемах. Все восемь микросхем работают от напряжения питания +5 В, которое подводится через соединитель mini-USB XS5. Для питания micro-SD карты требуется напряжение 3,3 В, которое и формируется стабилизатором напряжения DA1 ZR78L033G (возможная замена – L78L33ACUTR, корпус SOT-89).
 
Рассмотрим по отдельности принцип работы каждого функционального узла.
 

Блок центрального процессора

 
Блок центрального процессора выполнен на микроконтроллере D2 ATMega128-16AU (корпус TQFP64). Он выполняет задачу эмуляции микропроцессора Z80 Zilog и портов ввода/вывода. Команды Z80, эмулируемые центральным процессором, расположены во FLASH памяти микроконтроллера с физического адреса 0X8000 страницами по 16 К каждая. Таким образом, с этого адреса при компиляции проекта следует располагать ROM файлы ПЗУ эмулируемых ZX-Spectrum совместимых машин. После подачи напряжения питания происходит инициализация внутренних устройств микроконтроллера, используемых им при работе, конфигурация портов ввода/вывода микроконтроллера, формирование в ОЗУ микроконтроллера таблиц, используемых при эмуляции команд Z80. Далее происходит циклический процесс проверки маскированного прерывания, выборки эмулируемой инструкции, инкремента программного счётчика, перехода и выполнения программы эмуляции выбранной инструкции и возврат в начало цикла. При наличии разрешённого маскированного прерывания происходит переход на программу его обработки.
 
Сигнал маскированного прерывания (сигнал MINT) приходит на ЦП от видеопроцессора D1 с частотой кадровой развёртки – 50 Гц. Для его обработки используется вход AIN аналогового компаратора контроллера, так как прерывание от аналогового компаратора можно быстро проверить перед началом выборки очередной инструкции. Также его легко можно разрешить и запретить, что используется при эмуляции команд EI и DI.
Обращение к внешнему ОЗУ ЦП производится стандартным образом через внешний интерфейс памяти. В начале цикла обращения к внешнему ОЗУ микроконтроллер выставляет сигнал RBBCP, адресуемый видеопроцессору (активный низкий уровень). Этот сигнал «предупреждает» видеопроцессор о том, что ЦП занял внешнее ОЗУ для операции чтения/записи. Далее ЦП открывает внешний интерфейс памяти и выполняет операцию чтения или записи. При этом физический адрес ОЗУ определён сигналами A15_CP, A14_CP, A13...A8, AD7...AD0, MUXA17...MUXA14. Младший байт адреса выставляется для регистра-защёлки младшего адреса D6 на линиях AD7...AD0 и переписываются в него по нарастающем фронту сигнала ALE контроллера. Далее происходит собственно операция чтения/записи ОЗУ, При чтении активируется сигнал ~RD, а при записи – сигнал ~WR контроллера. После выполнения операции чтения/записи контроллер закрывает интерфейс с внешней памятью и деактивирует (устанавливает в «1») сигнал RBBCP.
 
При эмуляции операции записи в порт 0xFE на линиях порта D микроконтроллера (сигналы BORDH:BORDM:BORDL) выставляется двоичный код цвета бордюра, который сохраняется на этих линиях до очередной операции записи в порт 0xFE. При этом сигнал TOTAPE устанавливается в соответствии с битом 3 числа, записываемого в порт, а сигнал BEEP (звук бипера) в соответствии с битом 4 этого числа. При эмуляции операции чтения из порта 0XFE происходит запрос клавиатурного контроллера D4. Запрос происходит формированием сигнала внешнего прерывания на линии KEYMH(по заднему фронту этого сигнала). При этом происходит активация сигнала RBBCP для запрещения операций чтения ОЗУ видеопроцессором на время выставления контроллеру клавиатуры кода опроса, установка кода опроса клавиатуры на линиях A15_CP, A14_CP, A13...A8. В ответ контроллер клавиатуры выставляет 5-битный код ответа на линиях KEYH:KEYMH:KEYML:KEYL порта F микроконтроллера. Этот код читается ЦП и участвует в формировании 8-бит данных операции чтения порта 0XFE. Биты 7 и 5 при этом устанавливаются в «1», а бит 6 определяется старшим битом данных кода аналого-цифрового преобразователя контроллера, подключенного к разряду 6 порта F. АЦП контроллера настроен на величину опорного напряжения, равного напряжению питания. Таким образом, если уровень сигнала FROMTAPE/ на выводе PF6 менее половины напряжения питания, то разряд 6 порта 0xFE при чтении сбросится в 0, в противном случае – установится в 1. Аппаратно напряжение на этом выводе установлено равным половине напряжения питания при помощи резистивного делителя R18, R19.
При эмуляции операции записи в порт адреса музыкального сопроцессора 0XFFFDкод адреса выставляется на шину A15_CP, A14_CP, A13...A8 при активном уровне (0) сигнала RBBCP, далее происходит активация (установка в «1») сигналов BC1 и BDIR, которые адресуются эмулятору музыкального сопроцессора на время, необходимое для его работы. После этого происходит деактивация сигналов RBBCP, BC1 и BDIR.
 
Аналогично происходит операция записи в порт данных музыкального сопроцессора 0XBFFD с той лишь разницей, что активация сигнала BC1 не происходит.
 
При операции записи в порт 0X7FFD (порт только для записи) три младших бита (2, 1, 0) байта участвуют в формировании номера страницы ОЗУ, подключаемую в область адресов 0XC000-0XFFFF. Номер страницы ОЗУ при этом определяется сигналами MUXA17...MUXA14, адресуемыми страничному мультиплексору D7. Бит 3 участвует в выборе обычного («0») или теневого «1») экрана. При этом при выборе режима «обычного экрана» сигналы A15_CP и A14_CP устанавливаются в «0» и «1» соответственно, а при выборе режима «теневой экран» - в нули. Бит 4 определяет выбор страницы ПЗУ. Значение «0» соответствует младшей странице ПЗУ, значение «2» - старшей. Запись в бит 5 значения «1» запрещает в дальнейшем возможность записи в этот порт.
 
Для внутрисхемного программирования ЦП в схеме предусмотрен разъём XP2. Сигналы PDI2, PDO2, SCK2 и ~RESET2 используются при внутрисхемном программировании и эквивалентны сигналам MOSI, MISO, SCKи ~RESET программатора. Также сигналы PDI2, PDO2, SCK2 вместе с сигналом ~CS_SD используются в качестве SPI интерфейса с micro-SD картой памяти, и эквивалентны сигналам SD_IN (вход), SD_OUT (выход), CLK (синхронизация данных) и CS (выбор карты) интерфейса micro-SD карты. Согласование уровней происходит программно, логическая «1» на выходах контроллера PDO2 и SCK2 формируется путём включения подтягивающего резистора.
 

Контроллер клавиатуры

 
Контроллер клавиатуры выполнен на микроконтроллере D4 ATTINY2313A-SU (возможная замена - ATTINY2313-20SU), корпус SOIC-20. Выполняет задачу эмуляции клавиатуры (порта 0XFE при операции чтения), реализует интерфейс PS/2 с клавиатурой, а также является источником тактовых импульсов для ЦП D2 и видеопроцессора D1.
 
Тактирование процессора происходит от внешнего кварцевого резонатора BQ1 частотой 20 МГц. Для контроллера это является предельной частотой работы в соответствии с его техническими характеристиками. Вывод PD2 сконфигурирован во fuse-битах при программировании как выход тактовой частоты для тактирования ЦП и видеопроцессора (сигнал MHz20), для которых эта частота выше гарантированной в соответствии с фирменным техническим описанием (datasheet), так что они работают в режиме overclock,и как показывает практика, вполне устойчиво.
 
При подачи питания происходит инициализация контроллера, конфигурация и начальная установка его портов ввода/вывода. Сигналы KEYDATA (данные) и KEYCLK (синхронизация данных) соответствуют интерфейсу PS/2 и являются входными для микроконтроллера. В основном режиме работы контроллер занят чтением скан-кодов клавиатуры и формированием в восьми о внутренних регистрах COLOMN7...COLOMN0 матрицы состояния клавиатуры. Также контроллер формирует эмуляцию дополнительных клавиш путём установкой в регистрах матрицы клавиатуры одновременного нажатия сразу двух клавиш, одна из которых Capsshift или Symbolshift. При этом контролер работает в режиме разрешённого внешнего прерывания INT1 (сигнал KEYMH) по спадающему фронту этого сигнала. В режиме прерывания от ЦП D2 уходит в подпрограмму обработки прерывания, читает с линий A15_CP, A14_CP, A13...A8 (PORTB) код опроса клавиатуры, формирует код ответа путём объединения (операция AND) данных соответствующих (опрашиваемых) регистров COLOMN7...COLOMN0). При этом в объединении данных участвует тот регистр, бит данных для которого сброшен в коде опроса клавиатуры. Сформированный код ответа выставляется в PORTB (линии KEYH:KEYMH:KEYML:KEYL) для ЦП.
 

Блок видеопроцессора

 
Блок видеопроцессора выполнен на микроконтроллере D1 ATMega128-16AU (корпус TQFP64). В его задачу входит чтение видеоданных из области видеоданных ОЗУ, чтение из ОЗУ атрибутов цвета, формировании видеосигнала, сигнала синхронизации, установке цвета бордюра, а также формировании эффекта мерцания (Flash) знакомест с единичным значением бита 7 атрибута.
После включения питания происходит инициализация внутренних устройств контроллера и конфигурация его портов ввода/вывода.
 
Формирование синхросмеси из строчных и кадровых импульсов синхронизации (сигнал SYNC) происходит методом ШИМ. Для этого используется внутренний 16-разрядныйсчётчик TCNT1.
 
Чтение видеоданных из ОЗУ для очередной видеостроки происходит во время прямого хода луча после вывода текущей видеостроки и установки цвета бордюра. При этом происходит анализ сигнала RBBCP, разрешающего чтение из ОЗУ. Если этот сигнал активен («0»), то происходит ожидание его деактивации. Сразу после этого происходит чтение байта данных из ОЗУ и завершающий анализ сигнала RBBCP. Если RBBCPснова оказался активным, то делается заключение, что байт данных может быть недостоверен, и весь цикл его чтения повторяется. Следует сказать, что видеопроцессор подключен к блоку ОЗУ через токоограничительные резисторы R1...R7, что предотвращает аппаратный конфликт ЦП и видеопроцессора в случае, если произойдёт одновременное обращение мх к внешнему ОЗУ.
 
Прочитанный байт видеоданных сохраняется в соответствующем регистре общего назначения и используется при выводе соответствующего знакоместа видеостроки.
 
Как делается понятным, достоверными будут только те прочтённые данные, которые были прочитаны в отсутствии операций чтения/записи ЦП внешнего ОЗУ. При этом интерфейс со стороны ЦП внешней памяти закрыт, и линии A15_cp и A14_CP установлены ЦП в соответствии с выбранным экраном (см. раздел о работе блока ЦП). При этом видеопроцессор всегда программно отключен от линий A15_CP и A14_CP, которые управляют работой страничного мультиплексора. Таким образом, в это время в режиме обычного экрана A15_CP=0, A14_CP=1, SCRA16=0, страничный мультиплексор скоммутирован на передачу на выход сигналов секции А, и, таким образом, сигналы A17...A14, определяющие старшие 4 бита адреса ОЗУ, установлены в значение «0010», чему соответствует область памяти ОЗУ, отведённая под обычный экран. В режиме теневого экрана A15_CP=0, A14_CP=0, SCRA16=0, страничный мультиплексор скоммутирован на передачу на выход сигналов секции А, и, таким образом, сигналы A17...A14, определяющие старшие 4 бита адреса ОЗУ, установлены в значение «0000», чему соответствует область памяти ОЗУ, отведённая под теневой экран.
 
Чтение атрибутов цвета происходит во время вывода строк нижнего и верхнего бордюров аналогично чтению видеоданных. При этом если бит 7 атрибута установлен, то есть включен режим мерцания знакоместа, происходит при необходимости его коррекция – биты цвета бумаги и биты цвета чернил меняются местами. Атрибуты сохраняются во внутреннем ОЗУ контроллера.
 
Во время прямого хода луча при формировании изображения происходит циклически вывод в порт B данных соответствующего регистра, сдвиг влево командой LSL данных этого регистра и один такт задержки. После последнего вывода (восьмого по счёту) видеоданных в порт цикл повторяется сначала до момента окончания вывода строки изображения. Байты атрибутов читаются из внутреннего ОЗУ при помощи команды POP после вывода предпоследнего бита каждого байта видеоданных, а их вывод в порт цвета атрибутов – PORTE – происходит непосредственно перед началом вывода очередного байта видеоданных. При этом в порте E контроллера на линиях Y/2:PG:PR:PB:IG:IR:IB присутствует код цвета бумаги (PG:PR:PB), код цвета чернил (IG:IR:IB) и сигнал градации яркости Y/2, которые предназначаются видеомультиплексору D3 74AC257D (корпус SOIC-16). Сигнал PIXEL при этом определяет какое значение цвета – цвета бумаги (PIXEL=0) или цвета чернил (PIXEL=1) участвует в формировании видеосигнала.
 
В начале каждого кадра (то есть с частотой 50 Гц) видеопроцессор вырабатывает сигнал MINT, активный уровень 0, который подаётся на вход аналогового компаратора ЦП для формирования маскированного прерывания.
 

Блок ОЗУ со страничной организацией

 
Блок ОЗУ со страничной организацией построен на микросхеме статического ОЗУ D5 CY7C1049D-10VXI (возможная замена - AS7C4096A-12JIN), корпус SOJ-36, объёмом 512 К, регистре-защёлке младшего адреса D6 74AC373MTC (возможная замена - MC74AC373DT), корпус TSSOP-20 и страничном мультиплексоре D7 74AC257D, корпус SOIC-16. Пространство, адресуемое ЦП, составляет диапазон от 0X0000 до 0XFFFF (64 К). Старшие 16 К этого пространства (с адреса 0XC000 по 0XFFFF) отведены под страничную память, и управляются страничным мультиплексором D7. Для этого сигналы A15_CP и A14_CP, являющиеся двумя старшими сигналами адресной шины, объединены логической схемой «ИЛИ», выполненной на резисторе R10 и диодах VD1, VD2. При обращении к старшей странице памяти оба сигнала A15_CP и A14_CP находятся в состоянии «1» и напряжение на управляющем входе страничного мультиплексора высокое, так что он скоммутирован в режим «B» и на его выходах (цепи A17, A16, A15, A14) присутствуют сигналы MUXA17, MUXA16, MUXA15, MUXA14, определяющие номер подключенной страницы памяти. При обращении к любой другой странице памяти страничный мультиплексор скоммутирован в режим «A» и на его выходах (цепи A17, A16, A15, A14) присутствует прямой адрес обращения к памяти (численно соответствует 0:0:A15_CP:A14_CP).
 
Значение младшего адреса при обращении к ОЗУ переписывается в регистр-защёлку младшего адреса D6 по переднему фронту сигнала ALE. Чтение происходит активацией сигнала ~RD, а запись – активацией сигнала ~WR.
 

Блок эмулятора музыкального сопроцессора

 
Блок эмулятора музыкального сопроцессора выполнен на микроконтроллере D8 ATTINY2313A-SU (возможная замена - ATTINY2313-20SU), корпус SOIC-20, и представляет из себя самостоятельное устройство, подсоединяемое к соединителю XP3 основной платы при помощи соединителя XS6.
 
Устройство имеет два выхода аудиосигнала – левого и правого канала. Аудиосигнал формируется методом широтно-импульсной модуляции (ШИМ). На элементах R44, R46 и C22 реализован ФНЧ правого, а на элементах R43, R45 и C21 – левого каналов. Кварцевый резонатор BQ2 обеспечивает частоту генерации на первой гармонике последовательного резонанса 28 МГц. При этом микроконтроллер работает в режиме «разгона», и, как показывает практика, абсолютно устойчиво. Питание устройства осуществляется от цепи +5В основной платы, конденсаторы С23 и С24 выступают в роли дополнительных фильтров питания.
 
Интерфейс управления эмулятором состоит из восьмибитной однонаправленной шины данных (сигналы A15_CP, A14_CP, A13...A8) и шины управления, включающей в себя цепи BC1 и BDIR, аналогичные по назначению одноимённым сигналам AY8910(12).
 
Несмотря на то, что реальный музыкальный сопроцессор AY8910(12) имеет 3 звуковых канала А, В, С, в эмуляторе их только два: L и R. Канал А подключен к левому L, канал С к правому R, а канал В программно разделяется и смешивается между каналами L и R. Также и сигнал бипера, подводимый на вход PD4 микроконтроллера (сигнал /BEEP), программно разделяется и смешивается между каналами L и R. Таким образом формируется готовый стерео выход.
 

3. Сборка

 
Хотя правильно собранное и запрограммированное устройство начинает работать сразу после включения питания, существует определённая последовательность сборки, которая поможет избежать возможные ошибки, связанные с монтажом и неисправностью элементов. При монтаже следует соблюдать ряд правил, которые помогут избежать выход элементов из строя:
  1. при пайке следует использовать припой с низкой температурой плавления, температура жала паяльника не должна превышать 300 °С;
  2. жало паяльника должно быть надёжно заземлено;
  3. при пайке должен использоваться антистатический браслет;
  4. Рабочее место должно быть хорошо освещено;
  5. После каждой сборочной операции необходимо при помощи тестера в режиме прозвонки проверить смонтированный узел на отсутствие коротких замыканий, в особенности между соседними выводами микросхем и между цепями питания;
  6. После каждой сборочной операции рекомендуется смыть следы флюса (канифоли) с платы спирто-бензиновой смесью и тщательно просушить плату;
  7. Работать с SMD монтажом следует на оборудованном соответствующим образом рабочем месте с хорошим освещением;
  8. При сборке пользуйтесь сборочным чертежом (см. рисунок 3).
Перед началом работы необходимо тщательно проверить печатную плату на предмет отсутствия технологических дефектов (обрывов и замыканий печатных проводников некачественной металлизации переходных отверстий), особенно в местах, которые при монтаже будут скрыты корпусами элементов, так после монтажа сделать это будет гораздо труднее. Печатная плата должна иметь вид в соответствии с рисунком 2
 
Рисунок 2 – вид печатной платы (верхняя и нижняя стороны)
 
 
Рис. 3.
 
 
Рисунок 3 – сборочный чертёж платы
 

Сборка блока контроллера клавиатуры

 
Установите на печатную плату элементы XS5, C16, C1, C4, C6, R11, R17, R26, BQ1, D4. При монтаже пользуйтесь сборочным чертежом (см. рисунок 3).
 
Примечание – микроконтроллер D4 перед установкой на плату должен быть запрограммирован. Указания по программированию см. в разделе «программирование».
 
Проверьте плату на отсутствие коротких замыканий и подведите к соединителю питания XS5 напряжение +5В. В качестве источника питания можно использовать зарядное устройство с кабельным разъёмом mini-USB. При помощи тестера проверьте напряжение питания на выводе 20 микроконтроллера D4 – оно должно быть в диапазоне от 4,8 до 5,2 В. Проверьте напряжение на выводе 6 микроконтроллера D4 (выход тактовой частоты) – оно должно быть в диапазоне от 2,3 до 2,7 В. При невыполнении этих требований необходимо отыскать и устранить неисправность.
 

Сборка блока видеопроцессора и блока формирования видеосигнала

 
Установите на печатную плату элементы R1...R9, R12...R15, R20...R24, R27...R33, R35...R41, C3, C5, D1, VD3...VD5, VT1...VT5, XP1. К контактам K7 (общий) и K6 (выход видео) подпаяйте технологический разъём RCA (Female) «Тюльпан». Проверьте плату на отсутствие коротких замыканий. Для дальнейшей работы потребуется видеоустройство со стандартным видеовходом (телевизор, TVтюнер, монитор со стандартным видеовходом) и программатор типа ByteBlaster MV (http://www.zx-kit.ru/katalog-1/zxkit-003-1). Подключите питание устройства и произведите программирование видеопроцессора (указания по программированию см. в разделе «программирование»). Настройте монитор на видеовход и подключите к нему видеовыход устройства. На экране должно наблюдаться чёрно-белое изображение, аналогичное рис. 4
 
Изображение должно быть чётко засинхронизировано, поле изображения должно иметь чётко выраженную прямоугольную форму, должны различаться градации серого цвета и бордюр. Также на изображении должны присутствовать поля с эффектом мерцания – сменой прямого изображения на инверсное и обратно с частотой порядка 4 Гц. Допускается изменение цвета бордюра и цвета логотипа разработчика «LISITSINDEVELOPMENT» в верхнем поле бордюра. Если эти требования не выполняются, следует отыскать и устранить неисправность.
 
Отключите устройство от монитора и источника питания.
 
Рисунок 4 – видеосигнал устройства без блока ОЗУ.
 
 

Сборка блока ОЗУ

 
Установите на печатную плату элементы R10, VD1, VD2, C7, D5, C8, C9, D6, D7.
 
Соедините при помощи коротких проводников вывод 1 и вывод 5 страничного мультиплексора D7 с общей шиной (GND). Это позволит вывести мультиплексор D7 из страничного режима и зафиксировать адрес A16 ОЗУ. Проверьте плату на отсутствие коротких замыканий.
 
Подключите устройство к монитору и источнику питания. На экране должно наблюдаться чёрно-белое изображение, аналогичное рис. 5
 
Рисунок 5 – видеосигнал устройства с блоком ОЗУ и без блока центрального процессора
 
 
Должны наблюдаться чётко выраженные прямоугольные границы видеополя и бордюр. Изображение должно иметь устойчивую строчную и кадровую синхронизацию. Присутствует разбивка изображения на знакоместа. В пределах каждого знакоместа должна существовать неизменная градация серого цвета бумаги и чернил, рисунок (заполнение знакоместа) должен быть неизменен. При этом допускается мерцание знакомест с частотой порядка 4 Гц. Должны различаться градации серого цвета. Допускается изменение цвета бордюра. При невыполнении данных условий необходимо произвести поиск и устранение неисправностей.
 
Отключите устройство от источника питания и монитора. Отпаяйте проводники, соединяющие выводы страничного мультиплексора с общей шиной.
 

Сборка блока центрального процессора

 
Установите на печатную плату элементы R18, R19, R42, C10...C15, D2, DA1, XP2, XP3, XS1 и XS3. Проверьте плату на отсутствие коротких замыканий.
 
Подключите устройство к программатору через разъём XP2 и произведите программирование ЦП (указания по программированию см. в разделе «программирование»).
 
После программирования, если не было допущено ошибок, устройство начинает работать. На экране после старта появится изображение в соответствии с выбранной моделью ZX Spectrum (см. рис. 6 – основное меню Pentagon 128). Для проверки работоспособности можно произвести загрузку тестов и другого программного обеспечения «с ленты» или micro-SD карты. Если тесты и программы исполняются корректно, можно переходить к сборку эмулятора музыкального сопроцессора AY8910.
 
 

Сборка блока эмулятора музыкального сопроцессора

 
Эмулятор музыкального сопроцессора AY8910(12) собирается на отдельной плате (см. рис. 3), которая идёт в комплекте с основной платой.
 
Установите на печатную плату элементы C17...C24, R44...R46, BQ2, D8, XS6. Проверьте плату на отсутствие коротких замыканий.
 
Примечание – микроконтроллер D4 перед установкой на плату должен быть запрограммирован. Указания по программированию см. в разделе «программирование».
 
Примечание 2 – в качестве кварцевого резонатора вместо указанного на схеме DSX321G 28 МГц возможно использование кварцевого резонатора HC49US 28 МГц (необходим кварцевый резонатор, работающий на основной частоте резонанса), который устанавливается в позицию BQ2* платы.
 
Подстыкуйте собранную плату к основной посредствам соединителя XS6 как показано на титульном рисунке.
 
Если блок эмулятора музыкального сопроцессора был собран без ошибок и все элементы исправны – он начинает работать сразу после включения питания и в настройке не нуждается.
 

4. Подключение устройства и проверка работоспособности

 
Для подключения AVRZXSpectrumV2_0 с получением цветного изображения требуется видеоустройство (монитор) с RGBвходом, либо видеоустройство со стандартным видеовходом и кодер цветности PAL (SECAM). Для подключения AVRZXSpectrumк VGA монитору необходим RGB-VGA конвертор (например, http://www.zx-kit.ru/katalog-1/zxkit-001).
 
Подключение AVRZXSpectrumV2_0 следует выполнять в соответствии с таблицей 1, пользуясь рис. 3
 
После подключения к видеоустройству подключите к соединителю XS1 клавиатуру. Для удобства работы можно наклеить на клавиши наклейки для клавиатуры ZXSpectrum, распечатанные на самоклеящейся бумаге (файл изображения находится в папке проекта).
 
Для подключения к устройству «магнитофона» потребуется аудиокабель «Джек 3,5 – Джек 3,5», при помощи которого соединитель XS3 стыкуется ко входу или выходу «магнитофона», в качестве которого может использоваться любое аудиоустройство с линейным выходом (входом). При работе с аудиоустройством следует отключать эквалайзер и все звуковые эффекты.
 
К соединителю XS2 (выход аудио) подключаются активные компьютерные колонки или вход усилителя НЧ, работающего на колонки. Можно также подключать высокоомные наушники.
 
Таблица 1
 
Контакт платы Назначение сигнала Контакт SCART Примечание
K1 RGB ON 16 Переключение видеоустройства в режим RGB (для SCART)или цепь питания +5 В (для кодеров PAL (SECAM)). При работе с кодером PAL(SECAM) установите вместо резистора R36 перемычку.
K2 SYNC 20* Сигнал синхронизации
K3 BLUE 7 Синий компонент цвета
K4 RED 15 Красный компонент цвета
K5 GREEN 11 Зелёный компонент цвета
K6 GND 4,5,9,13,17 Общая цепь
K7 VIDEO 20* Выход ЧБ видеосигнала
K8 LEFT 6 Выход левого канала аудио
K9 RIGHT 2 Выход правого канала аудио
 
* На вход синхронизации SCART (вывод 20) подаётся сигнал с выхода синхронизации SYNC устройства либо с его ЧБ видеовыхода, в зависимости от типа монитора.
 
В последнюю очередь к соединителю XS5 подключается внешний источник питания (например, зарядное устройство с кабельным соединителем mini-USB), чего происходит старт прошитой системы.
 
Работа с AVRZXSpectrumV2_0 ни чем не отличается от работы с обычным ZXSpectrum, поэтому на любые связанные с этим вопросы можно получить из многочисленных книг по ZXSpectum. Для проверки работоспособности устройства можно загрузить и пройти такие тесты, как TESTPROG, AUMT, Z80TESTS, ZEXALLи т. п. Загрузить эти тесты можно как с «магнитофонного» входа, так и с SDкарты (см. раздел «Работа в SDDOS»).
 

Работа в SD DOS.

 
Дисковая операционная система SD DOS предназначена для работы с картами памяти micro-SD в качестве внешнего накопителя. Карту памяти micro-SD для работы в SD DOS необходимо предварительно отформатировать в файловой система FAT32 и записать на неё файлы ZX Spectrum поддерживаемого формата. В настоящее время поддерживаются файлы формата .Z80 и .SNA. Список поддерживаемых форматов файлов расширяется.
 
Старт SD DOS происходит при нажатии на клавиатуре клавиши «F12». При этом если карта памяти не вставлена, на экране появляется сообщение «INSERT SD CARD» с просьбой вставить карту в соединитель. Как только карта вставлена, начинается диалог с ней на аппаратном уровне. Результат диалога отображается на экране. Так, например, можно видеть сообщение «SD CARD DETECTED», информирующее об обнаружении карты памяти, сообщение «INITIALISING ... OK» говорит о нормальном завершении процесса инициализации SD карты, сообщение «FAT32 DETECTED» говорит о том, что файловая система FAT32 обнаружена. В конце диалога системы с картой появляется сообщение «STARTING COMMANDER ... », предшествующее старту программы SD Commander, инструменту работы с файлами (см. рис. 7).
 
 
Рис. 7 – старт файлового менеджера SD Commander
 
SD Commander представляет из себя две панели навигации (левую и правую) по файловой системе (файлам и директориям). В панелях отображаются списки файлов в выбранной директории (по умолчанию – в корневом каталоге). Навигация по директориям и файлам осуществляется при помощи клавиш управления «вниз» (следующий файл), «вверх» (предыдущий файл или предыдущий уровень вложения), «вправо» (переход в правую панель), «влево» (переход в левую панель), «ENTER» (выбор файла или директории). Таким образом, для запуска файла необходимо пройти к нему по пути и выбрать его нажатием «ENTER».
 
Для сохранения файла на карту в формате .SNA необходимо в требуемый момент времени нажать и не отпускать клавишу F11, затем нажать F12. При запросе системы ввести имя файла с указанием расширения  .SNA. Сохранённый файл появится в текущей директории.
 
В SD DOS также доступны следующие операции над файлами/директориями: переименование (F4),  перемещение (F6), удаление (F8), создание ( F7 - для директорий).
 
Функции SD DOS расширяются, планируется поддержка самых распространённых форматов файлов для ZX Spectrum и всех стандартных операций работы с файлами, также планируется поддержка всех функций SD DOS на уровне команд Z80 типа EDхх, не занятых в микропроцессоре Z80. Также планируется функция смена программного обеспечения AVR ZX Spectrum с карты памяти, посредствам запуска ROM-файла, который будет записываться с карты памяти во внутреннюю FLASH память ЦП, что позволит не только обновлять ПО, но и загружать другие версии ZX Spectrum совместимых машин. О последних версиях программного обеспечения и новых функциях SD DOS можно узнавать у разработчика (контакты в конце статьи).
 

5. Программирование

 
В схеме устройства четыре микроконтроллера AVR, требующие программирования. Два из них – контроллер клавиатуры D4 и контроллер эмулятора музыкального сопроцессора D8 – программируются до монтажа на плату, а оставшиеся два – видеопроцессор D1 и центральный процессор D2 программируются после установки на плату через специально предусмотренные разъёмы для внутрисхемного программирования XP1 и XP2 соответственно.
 
При программировании потребуется внутрисхемный программатор, использующий ISP-интерфейс – сигналы MOSI? MISO, SCK и RESET. Возможная схема программатора, подключающегося к компьютеру через LPT порт, приведена на рисунке 8 (http://www.zx-kit.ru/katalog-1/zxkit-003-1).
 
Рисунок 8 - схема LPT программатора ByteBlaster MV
 
схема LPT программатора ByteBlaster MV
 

Схема программатора сделана на основе ALTERA ByteBlaster MV (http://www.altera.ru/cgi-bin/go?35)
и адаптеров для программы AVREAL (http://real.kiev.ua/old/avreal/ru/adapters.html).
Для прошивки микроконтроллера ATMEL выведен дополнительный разъем по стандарту ATMEL.
Применяется один и тот же десятижильный шлейф, который подключается к соответствующей паре разъемов.
Питание платы программатора берется с прошиваемой платы.

Для программирования будем подключаться через соединитель XP2 (ALTERA). В качестве ПО можно использовать программу Ponyprog или AVREAL. Программатор требует напряжения питания +5В, которое в случае программирования D4 и D8 подаётся от внешнего стабилизатора, а в случае программирования D1 и D2 подводится от платы AVR ZX Spectrum, подключенной к источнику питания.

Для прошивки контроллера клавиатуры D4 и контроллера эмулятора музыкального сопроцессора D8 будем использовать файлы …\\Soft\ Контроллер клавиатуры (D4)\ zxkeyboard_v2_0.hex и ... \\Soft\Эмулятор AY (D8)\ AY_Emul.bin соответственно. Эти модули прописываются во FLASH память микроконтроллеров и являются исполняемыми программами. Программирование EEPROM не требуется. Биты конфигурации должны быть установлены в соответствии с таблицей 2

Таблица 2 – биты конфигурации контроллеров D4 и D8

Бит конфигурации Для контроллера

 

D4 *

Комментарий Для контроллера

 

D8 *

Комментарий
LOCK1 ~ Защита ПО

 

на Ваше усмотрение

~ Защита ПО

 

на Ваше усмотрение

LOCK2 ~ ~
DWEN -   -  
EESAVE ~ EEPROM не используется ~ EEPROM не используется
SPIEN V По умолчанию SPI разрешён V По умолчанию SPI разрешён
WDTON - WDT не используется - WDT не используется
BODLEVEL2 - Сброс по снижению напряжения питания

 

включен

- Сброс по снижению напряжения питания

 

включен

BODLEVEL1 V V
BODLEVEL0 V V
RSTDISBL - По умолчанию - По умолчанию
CKDIV8 - Деление частоты выключено - Деление частоты выключено
CKOUT V Выход тактовой частоты разрешён -  
SUT1 -   -  
SUT0 -   V  
CKSEL3 -  

 

Сконфигурирован внешний кварцевый резонатор

-  

 

Сконфигурирован внешний кварцевый резонатор

CKSEL2 - -
CKSEL1 - -
CKSEL0 - V

* «V» означает активное (запрограммированное, «0»), «-» - неактивное (не запрограммированное, «1»), состояние бита конфигурации, «~» - на усмотрение пользователя.

При программировании видеопроцессора D1 и центрального процессора D2 программатор подключается к разъёму XP1 и XP2 соответствен6но и к устройству подводится питающее напряжение. Во FLASH память D1 зашивается файл …\\Soft\Видеопроцессор (D1)\videocpu.hex из папки проекта, во FLASH память D2 зашивается один из файлов …\\Soft\Центральный процессор (D2)\Pentagon128.hex (ZX_Spectrum_48K.hex, ZX_Spectrum_128K.hex, Open_se_basic 48 К.hex, Open_se_basic 128 К.hex) из папки проекта в зависимости от желаемой модели ZX Spectrum. Кроме того, в EEPROM память D2 зашивается файл ...\\ Центральный процессор (D2) \DAA_TABLE.hex из папки проекта, который является таблицей результатов и флагов для эмуляции команды DAA Z80.
 
При прошивке также устанавливаются (программируются, «0») следующие биты конфигурации (одинаково для D1 и D2): EESAVE, BOOTRST, CKSEL3, CKSEL2, CKSEL1, CKSEL0.
 
Примечание – при программировании D1 рекомендуется устанавливать D2 в режим сброса установкой джампера на контакты 5 и 6 разъёма XP2, а при программировании D2 рекомендуется устанавливать D1 в режим сброса установкой джампера на контакты 5 и 6 разъёма XP1.
 

6. Обратная связь

 
Если у Вас есть замечания, пожелания по усовершенствованию устройства или вопросы к разработчику, просьба писать на .
 
Приобрести готовое устройство или печатные платы для самостоятельной сборки AVR ZX Spectrum V2_0 можно у разработчика, электронная почта , ICQ 615692808, Василий Лисицын. Также у автора можно узнать о последних версиях ПО и новых функциях устройства, получить консультацию по сборке, программированию устройства и поиску неисправностей.
 
Автор выражает свою благодарность Ивану Косареву (Санкт-Петербург), Игорю Титарь (Магнитогорск) и участникам Zx.pk.ru за содействие при разработке проекта.
 

7. Фото готового устройства

 
 
 

Видео о  Радиоконструкторе AVR ZX Spectrum V2_0:

 
в AVR ZX Spectrum реализована поддержка TR-DOS. Последнюю версию прошивки можно взять здесь: http://zx-pk.ru/showthread.php?t=23671&page=8
Для открытия диска TR-DOS необходимо через дисковую операционную систему SD-DOS (которая также поддерживается) выбрать файл образа TR-DOS диска с расширением .TRD и на запрос SD-DOS указать один из 4 дисководов, в которые будет вставлен данный диск - A, B, C или D. Далее - запустить TR-DOS любым стандартным для ZX Spectrum образом (через главное меню или из бейсика). Далее дать команду TR-DOS. Например, List - для просмотра каталога диска, Load - для загрузки с диска, Load "Filename" - для запуска файла с именем Filename.

Скачать архив файлов к описанию


Комментарии

Отзывы читателей - Скажите свое мнение!
Пока еще нет ни одного отзыва. Станьте первым и опубликуйте свое мнение!

Отзывы читателей - Скажите свое мнение!