Микро-80/Радио 1983-04/Отладочный модуль

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Автор: Г. ЗЕЛЕНКО, В. ПАНОВ, С. ПОПОВ

Источник: http://retro.h1.ru/MK80/Io/M80Otldm.php

После изготовления процессорного модуля и модуля памяти, описанных в предыдущих статьях, уже можно построить из них простейшую микро-ЭВМ. Для этого надо соединить между собой соответствующие разъемы обоих модулей и подключить источники питания.

Для отладки такой микро-ЭВМ дополнительно к процессорному модулю и модулю ОЗУ—ПЗУ необходим еще один модуль — отладочный, с техническим пультом микро-ЭВМ. Надо заметить, что все модули, описываемые в наших статьях, если они собраны из исправных микросхем и не содержат ошибок в монтаже, практически не требуют дополнительной наладки. Однако выявление и устранение случайных ошибок в монтаже и неисправности отдельных микросхем без отладочного модуля могут оказаться неразрешимой задачей.

Работа с техническим пультом позволит радиолюбителям ощутить все «тонкости» функционирования микроЭВМ. С пульта отладочного модуля Вы сможете записать в ОЗУ, а затем и в ППЗУ свои первые программы, «оживляющие» микро-ЭВМ. В дальнейшем отладочный модуль понадобится нам для отладки и других модулей микро-ЭВМ. Отладочный модуль так же, как, например, осциллограф, является лишь инструментом, используемым только при отладке и ремонте микро-ЭВМ.

Примерное расположение органов управления и индикации технического пульта отладочною модуля и его принципиальная схема показаны на рис.1, находящегося в альбоме. Причем расположение элементов на схеме соответствует их размещению на передней панели технического пульта, то есть светодиод V1 расположен под надписью ША[15], V16 — под ША[0], тумблер S1 — под А15 и т. д.

Отладочный модуль позволяет микро ЭВМ выполнять программы в двух режимах — автоматическом и поцикловом. В автоматическом режиме (тумблер ЦКЛ/АВТ на пульте в нижнем положении) выполнение программы происходит непрерывно, в поцикловом — микропроцессор переходит в состояние ожидания после выполнения такта Т2 каждого цикла очередной команды. При этом на техническом пульте светодиоды ШД0 — ШД7 и ША0 — ША15 отображают наличие сигналов на шинах данных и адресов. Другая группа светодиодов отражает наличие сигналов Ml, ЗПЗУ. ЧТЗУ, ЗПВВ, ЧТВВ на шине управления, сигналов ОЖ, РПР на выводах микропроцессора и сигнала ОСТ в отладочном модуле. Для завершения текущего и выполнения каждого последующего цикла в поцикловом режиме необходимо нажать кнопку ГТВ на пульте. Выполняя программу и контролируя значения данных, адресов и управляющих сигналов в каждом цикле, можно обнаружить ошибки в работе микро-ЭВМ.

При начальном запуске микро-ЭВМ, если тумблер АПЕР находится в верхнем положении, будет выполнена команда безусловной передачи управления по адресу, заданному на тумблерном регистре А0 — А15 технического пульта. Код операции этой команды формируется в отладочном модуле. Этот же тумблерный регистр будет использоваться и для других целей. С его помощью при установленном в верхнее положение тумблере АОСТ задается адрес ячейки памяти, при обращении к которой микропроцессор переходит в состояние ожидания, а следовательно, выполнение программы приостанавливается. При этом на пульте зажжется светодиод OCT. Перевод тумблера АОСТ в нижнее положение или изменение адреса на тумблерном регистре А0 — А15 ведет к продолжению выполнения программы.

При отладке микропроцессорной аппаратуры зачастую требуется детальный просмотр временных соотношений сигналов в микро-ЭВМ с помощью осциллографа. Для его синхронизации в отладочном модуле вырабатывается импульс в момент обращения по адресу, набранному на тумблерном регистре А0—А15 пульта.

Важной особенностью нашего отладочного модуля является возможность записи информации в память или порты ввода-вывода микро-ЭВМ непосредственно с тумблерного регистра Д0—Д7 пульта. Запись информации в ОЗУ и порты микро-ЭВМ возможна как программным путем, так и методом прямого доступа к памяти или портам. Для реализации прямого доступа тумблер ПДП устанавливают в верхнее положение. Это переводит шины процессорного модуля в высокоимпедансное состояние. Теперь на тумблерном регистре Д0—Д7 набирают байт, который необходимо записать в ячейку памяти или порт, а на тумблерном регистре А0—А15 — адрес записи. Затем при установленном в верхнее положение тумблере ЗП/ЧТ и нажатии на кнопку ГТВ байт данных запишется по заданному адресу. Для контроля записанные в память или порты данные можно вывести на светодиоды ШД0— ШД7, проделав аналогичные операции, но при опущенном тумблере ЗП/ЧТ. Положение тумблера ЗУ/ВВ определяет при этих операциях, проводится ли обмен информации с портами ввода-вывода или с ячейками ЗУ.

При программном вводе (выводе) информации в ОЗУ микро-ЭВМ предварительно методом прямого доступа к памяти в нее заносят небольшую программу — загрузчик. При выполнении этой программы в автоматическом режиме тумблерный регистр Д0—Д7 подключен к порту ввода с номером 00, а светодиоды ШД0—ШД7 — к порту вывода с таким же номером.

Соответственно для обмена данными между этими портами и аккумулятором микропроцессора в программе-загрузчике используют команды IN 00 и OUT 00. Попробуйте самостоятельно составить программу — загрузчик.

Схема отладочного модуля построена таким образом, что при выполнении этих команд программы микропроцессор переходит в состояние ожидания, и только после нажатия на кнопку ГТВ происходит обмен данными между аккумулятором и портами и затем уже продолжение выполнения программы. На кнопку ГТВ оператор нажимает при вводе только тогда, когда будет правильно набран требуемый байт информации на тумблерном регистре Д0—Д7, а при выводе,— когда им будет прочитана информация со светодиодов ШД0—ШД7.

В отладочном модуле, схема которого приведена на рис.2, находящегося в альбоме, предусмотрена возможность отладки процессорного модуля и без модуля памяти. Для этого надо установить проволочную перемычку S1. В этом случае процессорный модуль будет считывать данные с тумблерного регистра Д0—Д7 независимо от кода на адресной шине и сигналов ЧТЗУ или ЧТВВ на шине управления. Таким образом, при отладке можно вводить коды команд и операнды непосредственно с пульта.

Отладку микро-ЭВМ следует начать с проверки работоспособности процессорного модуля. При этом остальные периферийные модули, кроме модуля отладки, можно не подключать, а все тумблеры технического пульта, кроме тумблера ЦКЛ/АВТ, должны быть установлены в нижнее положение.

Прежде всего проверяют напряжение питания на плате процессорного модуля и на выводах микропроцессора, затем — соответствие синхроимпульсов на выводах С1 и С2 временной диаграмме. приведенной при описании процессорного модуля. Амплитуда этих импульсов должна быть не менее 10 В при длительности фронта не более 50 нС.

Так как тумблер ЦКЛ/АВТ установлен в верхнее положение, то микропроцессор должен находиться в состоянии ожидания и светодиод ОЖ будет светиться. При этом сигналы на всех выводах микропроцессора, кроме С1 и С2, должны оставаться неизменными.

Нажатие и удержание кнопки СБР вызывает появление уровня 1 на входе СБР микропроцессора, что переводит адресные выходы микропроцессора в высокоимпедансное состояние. При этом зажигаются светодиоды ША[0]—ША[15]. Появление уровня 0 на входе СБР микропроцессора после отпускания кнопки инициирует выполнение части первого машинного цикла команды, код которой набран на тумблерах Д0—Д7. При этом на адресных шинах микропроцессора устанавливается код 0000Н. светодиоды ША[0]— ША[15] гаснут и в процессорном модуле произойдет запись в регистр состояния байта состояния с шины данных микропроцессора, а на техническом пульте, кроме светодиода ОЖ зажгутся также светодиоды Ml и ЧТЗУ.

Поочередное включение тумблеров Д0Д7 вызывает свечение соответствующих светодиодов ШД0—ШД7 и изменения сигналов на соответствующих выводах шины данных микропроцессора, в чем следует убедиться с помощью осциллографа или авометра.

Если опять установить тумблеры Д0—Д7 в нижнее положение, соответствующее коду команды NOP и вновь нажать кнопку ГТВ, то мы заставим микропроцессор прочитать и выполнить эту команду. Команда NOP выполняется за один машинный цикл, а следовательно, и только за одно нажатие кнопки. Повторное нажатие приведет к выполнению микропроцессором следующей команды, код которой будет вновь считан с тумблерного регистра Д0— Д7. Если оставить эти тумблеры в том же состоянии то микропроцессор при каждом нажатии на кнопку ГТВ будет выполнять команду NOP. При этом адрес, индицируемый светодиодами ША0— ША15, будет увеличиваться каждый раз на 1.

Для проверки работы всех 16 линий шины адресов процессорного модуля его надо перевести в режим автоматического выполнения команд, для чего тумблер ЦКЛ/АВТ устанавливают в нижнее положение. При этом на техническом пульте должны начать равномерно мерцать все светодиоды ША0— ША15. Частота мерцания светодиодов, связанных со старшими разрядами шины адресов должна быть меньше, чем светодиодов, связанных с младшими разрядами.

Если теперь тумблер АОСТ перевести в верхнее положение, то при обращении к ячейке памяти, адрес которой набран на тумблерном регистре А0— А15, микропроцессор приостановит выполнение последовательности команд NOP и перейдет в состояние ожидания. На техническом пульте при этом включатся светодиоды ОЖ и ОСТ, а светодиоды ША0ША15 отобразят адрес останова. Поочередная установка в верхнее положение тумблеров А0— А15 обеспечивает автоматическое выполнение команды NOP каждый раз до достижения соответствующего адреса останова, что позволяет быстро проверить правильность работы всех 16 линий адресной шины процессорного модуля. По окончании проверки переведем тумблер ЦКЛ/АВТ в верхнее положение.

Установим теперь тумблер АПЕР в верхнее положение. После нажатия на кнопку СБР на светодиодах ШД0— ШД7 должен индицироваться код операции С3Н команды безусловного перехода JMP ADR. Для выполнения этой команды требуется три машинных цикла. Поэтому при двух последующих нажатиях на кнопку ГТВ будет выполнен второй и часть третьего цикла команды, а светодиоды ШД0—ШД7 будут индицировать сначала младший, а затем старший байт адреса перехода, набранного на тумблерном регистре А0А15. При следующем нажатии на кнопку ГТВ на шине адресов появится адрес набранный на тумблерном регистре.

Чтобы окончательно убедиться в работоспособности процессорного модуля, надо выполнить в поцикловом режиме разные команды или последовательности команд, коды которых в процессе выполнения устанавливают на тумблерах Д0—Д7. За ходом выполнения команд следят по индикаторам технического пульта. Так, например выполнение команд разрешения прерывания ЕI и запрещения прерывания DI ведет соответственно к включению и выключению светодиода РПР. Выполняя другие команды, проверьте своевременность появления сигналов ЧТВВ, ЗПЗУ, ЗПВВ.

В завершение проверки работоспособности процессорного модуля надо убедиться в том, что обеспечивается доступ к периферийным модулям в режиме прямого доступа. Для этого тумблер ПДП переводим в верхнее положение. При этом светодиоды ША0— ША15 должны отразить положение тумблеров А0—А15. Ни один из светодиодов РПР, ОСТ, ЗПЗУ, ЧТЗУ, ЗПВВ, ЧТВВ при этом светиться не должен. О переводе процессорного модуля в режим прямого доступа к периферийным модулям будет свидетельствовать уровень 0 на его выходе ПЗХ.

Закончив отладку процессорного модуля, можно приступать к отладке модуля памяти. Для этого проволочную перемычку S1 в модуле отладки нужно снять. Затем к микро-ЭВМ подключают модуль ОЗУ—ПЗУ с перемычкам. установленными в соответствии с принципиальной схемой приведенной в прошлом номере журнала. БИС ППЗУ в модуль не устанавливают.

Первоначальную проверку работоспособности ОЗУ модуля проводят в режиме прямого доступа, записывая в его ячейки произвольную информацию с технического пульта с последующим контролем их содержимого. При этом тумблеры ПДП и ЗУ/ВВ должны быть установлены в верхнее положение, что соответствует режиму прямого доступа к памяти. Выполнение операции записи пли чтения информации проводят в соответствии с положением тумблера ЗП/ЧТ при нажатии на кнопку ГТВ Несовпадение записанной и считанной информации в какой-либо ячейке свидетельствует о неисправности либо БИС памяти либо других моментов модуля ОЗУ—ПЗУ. Конечно такая процедура неприемлема для проверки большого количества ячеек памяти. Поэтому для проверки ОЗУ лучше воспользоваться специальной программой тестирования, машинные коды которой приведены в таблице. Так как тест-программа в нашем случае размещается в ОЗУ, то для ее работы необходимо, чтобы те ячейки ОЗУ. которые она занимает и использует для хранения промежуточных данных, были бы исправны. Адреса этих ячеек памяти — с F000H не F066H. Ввести программу и проконтролировать правильность ее записи в ОЗУ можно методом прямого доступа, как это было описано выше. Контроль вводимой программы надо проводить как в процессе записи байтов в ячейки, так и полностью — после ее окончательного ввода. После полного просмотра содержимого памяти нужно исправить ошибки, которые могут возникнуть или из-за неправильной манипуляции тумблерами, или из-за технических неисправностей.

F000 31 66 F0 21 00 F1 01 00 FB 22 54 F0 16 55 CD 24
F010 F0 CD 2D F0 2A 54 F0 16 AA CD 24 F0 CD 2D F0 3E
F020 81 D3 00 76 72 23 CD 3D F0 C8 C3 24 F0 2A 54 F0
F030 7A BE C4 43 F0 23 CD 3D F0 C6 C3 30 F0 78 BC C0
F040 79 BD C9 3E OF D3 00 7D D3 00 7C D3 00 7A D3 00 
F050 7E D3 00 C9

Теперь переведем тумблеры ЦКЛ/АВТ в нижнее, а АПЕР в верхнее положение и наберем на тумблерном регистре АО—А15 адрес первой команды тест — программы — F000H. После нажатия на кнопку СБР переведем тумблер ПДП в нижнее положение — с этого момента начинает работать тест-программа, проверяй ячейки памяти с адреса F100H по F7FFH.

Чтобы задать другие начальный и конечный адреса проверяемой области памяти. необходимо изменить содержимое следующих четырех ячеек памяти в программе: в ячейку F004H записать младший бант начального адреса, в ячейку F005H — старший байт начального адреса, в F007H — младший бант конечного адреса, а в F008H --старший байт конечного адреса.

Не забудьте, что значение конечного адреса в таблице на единицу больше реального.

Если тест-программа обнаружит ошибку, то светодиоды ШД0—ШД7 будут индицировать код признака ошибки — 00001111. При последующих нажатиях па кнопку ГТВ будут индицироваться последовательно коды младших и старших байтов адреса «неисправной» ячейки, ее содержимое и байт, который должен быть записан. Затем тест-программа продолжит проверку следующих ячеек памяти. Об окончании проверки всей области памяти программа сигнализирует выводом на светодиоды в ШД0—ШД7 комбинации 10000001.

Анализируя полученную информацию, можно определить неисправную микросхему. Например, если адрес неисправной ячейки равен F432H, ее содержимое — 10101011, а должно быть 10101010, то, вероятно, неисправна микросхема D25 (по схеме модуля ОЗУ—ПЗУ в предыдущем номере журнала).

Неисправные микросхемы следует заменить и вновь повторить процедуру тестирования, ч так до тех нор, пока не будет достигнута безошибочность работы ОЗУ. Аналогичным образом могут быть проверены и все остальные блоки памяти в других модулях ОЗУ.

Поясним теперь особенности принципиальных электрических схем отладочного модуля и технического пульта микро-ЭВМ. Положение всех переключателей на схеме соответствуют нижнему положению тумблеров на пульте.

На элементах D5.1—D5.4, D6.1 — D6.4, D7.1 — D7.4, D8.1 — D8.4, D11.2, D12.3, D13 и D14 выполнен узел сравнения кодов, поступающих с шины адресов микро-ЭВМ и тумблеров S1—S16 (А15—А0). При совпадении этих кодов на выходе элемента D11.2 вырабатывается сигнал СИНХР., необходимый для запуска развертки осциллографа. Если при этом тумблер S20 (АОСТ) находится в верхнем положении, то зажжется светодиод V20 (ОСТ) и микропроцессор перейдет в состояние ожидания.

В режиме прямого доступа к памяти и портам ввода-вывода формирователь на элементах D15—D18 подключает тумблеры S1—S16 (А15—А0) к шине адресов при нулевом уровне на входах ВМ и ВШ. Сигнал на вход ВШ поступает с элемента D9.2 при переводе тумблера S21 (ПДП) в верхнее положение.

На элементах D19—D22. D25 и D26 выполнен формирователь, обеспечивающий передачу сигналов с тумблеров S25- S32 (Д7—Д0) на шину данных и формирование кода команды безусловного перехода JMP ADR при начальном запуске микро-ЭВМ по нажатию кнопки S17 (СБР). При этом уровень 0 на выходе БЛК отладочного модуля блокирует считывание содержимого ячеек 0000Н, 0001 Н и 0002Н модуля памяти (если модуль с такими адресами имеется в микро-ЭВМ).

Передача сигналов с входов D11— D14 на выходы DB1—DB4 формирователя возможна только при нулевом уровне на входах ВШ и ВМ элементов D25 и D26.

Формирование колов команды перехода происходит по управляющим сигналам на входах А и В элементов D19—D22, поступающим с двоичного счетчика D30. Счетчик устанавливается в исходное состояние при нажатии на кнопку S17 (СБР). Если тумблер S 19 (АПЕР) установлен в верхнее положение, то первый синхроимпульс СИН, формируемый микропроцессором в начале машинного цикла, переведет счетчик D30 в состояние, когда па входах А и В элементов D19 D22 возникнет комбинация 01. Такай комбинация сигналов разрешит прохождение кода С3Н (код операции команды JMP ADR) с входов D2 и D6 элементов D19—D22 на шину данных микро -ЭВМ.

Второй импульс СИН вызовет появление на управляющих входах А и В кода 10. Поэтому на шину данных с входов D3 и D7. связанных с тумблерами S9—S16 (А7 -А0), поступит младший бант адреса перехода.

После третьего импульса СИН на входах А и В образуется комбинация 11 и на шину данных с тумблеров S1— S8 (А15—А8) поступит старший байт адреса перехода. Очередной импульс СИН переведет счетчик в состояние, когда на входах А и В появится комбинации 00. При этом станет возможным прохождение сигналов с входов D1 и D5 элементов D19-D22 на шину данных. Уровень 1 на третьем выходе счетчика блокирует прохождение последующих импульсов СИН на вход счетчика.

Сигнал с инверсного выхода триггера D35.2 определяет состояние линии ГТ шины управления микро-ЭВМ. Отсутствие сигнала на входе ОЖ микропроцессора устанавливает выход этого триггера в 1. что определяет переход микропроцессора после такта Т2 в состояние ожидания. В поцикловом режиме работы, а также при обращении к портам ввода или вывода с номерами (X) или по сигналу с выхода узла сравнения кодов на входах S и D триггера устанавливается уровень 1 что вызывает появление нулевого уровня из его инверсном выходе при нажатии на кнопку S24 (ГТВ) и переход микропроцессора к выполнению следующего машинного такта Т3. Элементы D39.1, R9 и С1 включены для устранения дребезга контактов кнопки S24 (ГТВ). Ток. потребляемый отладочным модулем и техническим пультом не превышает 1,3А.

Объем журнальной статьи не позволяет рассмотреть вес возможные способы использования отладочного модуля и технического пульта для отладки микроЭВМ. Детальное изучение принципов работы описываемых в наших статьях модулей поможет радиолюбителям в конкретных случаях самостоятельно разработать способы обнаружения ошибок.

Г. ЗЕЛЕНКО, В. ПАНОВ, С. ПОПОВ

Отсканировано с журнала Радио № 4 1983 г.
Отредактировано Лесных Ю. И. 1999 г.