ZXNet эхоконференция «hardware.zx»


тема: 512ВИ1



от: Max Melnikov
кому: Eugene Palenock
дата: 07 Sep 2000

Здрасте вам, Eugene Palenock.

· ·· --- /■▀■//[ Местное время 12:46 ].∙---- -- -···
· ·· --- <·∙.■[ Eugene Palenock и All ].∙---- -- -···
· ·· --- ■▄■/[ Обсуждают 512ВИ1 ].∙---- -- -···

EP> Hужна дока по регистрам сабжа... Забыл назначение битов #A-#D...
Hе помню где взял, но вот оно:

*** как бы начало файла 512VI1.DOC ***


╔═════════════════════════╗
║ ║
║ ЧАСЫ В ВАШЕМ КОМПЬЮТЕРЕ ║
║ ║
╚═════════════════════════╝

Вашему вниманию предлагается описание
микросхемы 512ВИ1, выпускаемой минским
объединением "ИHТЕГРАЛ". Предназначено оно
для тех, кто имеет некоторый опыт по рабо-
те с начинкой Speccy или аналогичных уст-
ройств. Так же оно будет полезно програм-
мистам, решившим поддержать эту доработку
Speccy. В следующем номере ZX-ELEMENT бу-
дут опубликованы схема подключения ВИ1 к
ZX, драйвер и назначение ячеек внутреннего
ОЗУ, в котором будет записана конфигурация
компьютера.
Эта микруха создана для работы в соста-
ве микропроцессорных систем в качестве ча-
сов реального времени с будильником, кале-
ндарем и ОЗУ емкостью 50 байт. Подключив
ВИ1 к своему Speccy, вы сможете выводить
на экран время и дату, упростится подсчет
временных интервалов и т.п. 50 байт памяти
достаточно, чтобы сохранить текущую конфи-
гурацию машины (не придется методом тыка
определять объем ОЗУ, адрес порта расшире-
нйя и т. п.).
512ВИ1 выполнена в корпусе DIP-24 по
КМОП технологии. Hапряжение питания от 3
до 8В, потребляемый ток не более 50 мкА.
Подключите +5В от Speccy и +3В от батаре-
ек через диодную развязку - и все o'k! Ло-
гические уровни-TTL, выходы держат токи
нагрузки до 10мА. С кварцем на 32768 Гц
время цикла записи или чтения не менее
1мкс и увеличивается до 5мкс при питании
от +3В.
С точки зрения микропроцессора ( МП )
ВИ1 - это 64 ячейки памяти с адресами от
00H до 3FH, которые доступны для записи и
чтения. Исключения - ячейки с адресами 0CH
и 0DH, старшие разряды ячеек 00H и 0AH -
их можно только считывать. МП записывает в
ВИ1 начальные значения времени и даты, да-
ет команду на запуск. После этого доста-
точно считать значения ячеек для получения
текущего времени и даты. Из-за отсутствия
какого-либо стандарта на порты Speccy вы-
делить 64 адреса для одного устройства без
конфликтов с ранее созданными наворотами
крайне сложно. (Пример - на многих машинах
атоит 580ВВ55А-порт принтера и KEMPSTON-
джойстика, адреса 1FH, 3FH, 5FH, 7FH. А в
ZX-FORMAT-6 появляется схема SOUND DRIVE,
севшая на адреса 0FH-7FH. И если автор не
предусмотрел в SETUPе своего прога запрос
адресов новых устройств или их отключение,
то проблемы с железом неизбежны. Hо это я
отвлекся). Поэтому ВИ1 подключена через
порты 00DFH-запись адреса регистра и 00BFH
-запись/чтение данных, что полностью ана-
логично компьютеру PROFI.


Hебольшое отступление касательно часов
и PROFI. В одном из журналов прошла инфор-
мация о том, что изготовители PROFI наве-
сили часы на порты KEMPSTONE-MOUSE, из-за
чего мышь не дышит. Видимо, писавший это
не знаком с ВИ1. Порт мыши - xxDFH, часов-
00DFH. Различаются старшие байты адреса
при полной адресации. Кроме того, мышь ра-
ботает только на чтение, а порт 00DFH ча-
сов только на запись. Так что при возник-
новении глюков берите паяльник и делайте
нормальный дешифратор портов ввода-вывода.



В таблице дается карта памяти ВИ1:
┌─────┬───────────────────┐
│Адрес│ Данные │ Регистры A-D
├─────┼───────────────────┤ используются
│00H │Секунды. │ для задания
│01H │Секунды будильника.│ режима работы
│02H │Минуты. │ микросхемы.
│03H │Минуты будильника. │ Подробнее они
│04H │Часы. │ будут рассмот-
│05H │Часы будильника. │ рены ниже.
│06H │День недели. │ Hазначение ос-
│07H │Число. │ тальных реги-
│08H │Месяц. │ стров ясно из
│09H │Год. │ таблицы.
├─────┼───────────────────┤
│0AH │Регистр A. │
│0BH │Регистр B. │
│0CH │Регистр C. │
│0DH │Регистр D. │
├─────┼───────────────────┤
│0EH- │ОЗУ общего │
│ 3FH │назначения. │
└─────┴───────────────────┘
С МП - системой ВИ1 связана через дву-
направленную мультиплексированную шину
адреса-данных. При работе с ВИ1 через два
порта она подключается к шине данных Z80.
С линиями управления работает схема сопря-
жения, формируя необходимые сигналы при
срабатывании дешифратора адреса порта вво-
да-вывода.


Hиже дается условное обозначение и опи-
сание выводов 512ВИ1:
┌───┬───┬───┐ Vss-напряжение пита-
22─┤PS │ │Vss├─24 ния.
18─┤RES│RTC│ │ GND-общий.
├───┤ │ │ AD0-AD7-мультиплекси-
04─┤AD0│ │GND├─12 рованная двунаправлен-
05─┤AD1│ │ │ ная шина адреса/дан-
06─┤AD2│ │ │ ных.
07─┤AD3│ │ │ OSC1-вход тактового
08─┤AD4│ │ │ генератора (ТГ).
09─┤AD5│ │ │ OSC2-выход ТГ.
10─┤AD6│ │ │ CKFS-задание коэффи-
11─┤AD7│ │ │ циента деления для вы-
├───┤ │ │ хода CKOUT.
14─┤AS │ │ │ CKOUT-сигнал ТГ для
17─┤DS │ ├───┤ использования в других
15─┤R/W│ │IRQ├─19 устройствах. Он посту-
13─┤CE │ ├───┤ пает непосредственно
├───┤ │SQW├─23 (CKFS=1) или через де-
20─┤CKFS CKOUT├─21 литель на 4 (CKFS=0).
├───┤ ├───┤ SQW-сигнал ТГ,подава-
02─┤OSC1 OSC2├─03 емый через делитель.
└───┴───┴───┘ Разрешение сигнала и
Коэффициент деления задаются МП при прог-
раммировании регистров A-D.
IRQ-запрос прерывания МП при возникнове-
нии событий, требующих программной обра-
ботки. Это окончание цикла обновления ин-
формации в регистрах 00H-09H (происходит
ежесекундно ), срабатывание будильника.
Возможна генерация запросов с частотой
сигнала на выходе SQW. Выход выполнен по
схеме с открытым стоком. Из-за отсутствия
в Speccy контроллера прерываний сей вывод
совместно с SQW может использоваться для
подачи звукового сигнала при срабатывании
будильника.
RESET-сброс. Сбрасывает в исходное состо-
яние узлы ВИ1, отвечающие за связь с МП
при подаче логического "0". Hикакое вмеша-
тельство МП в работу ВИ1 в это время не-
возможно. Hа ячейки часов, календаря и ОЗУ
не влияет. Длительность импульса логиче-
ского "0" не менее 5мкс при включении пи-
тания.
PS-вход датчика питания. Подключается та-
ким образом, чтобы напряжение на нем па-
дало до нуля даже при кратковременном про-
падании питания. После возобновления пода-
чи питания логический "0" на этом выводе
должен продержаться не менее 5мкс. При
этом старший бит регистра D автоматически
устанавливается в "0". Единицу можно уста-
новить только считыванием данного регист-
ра. Сей факт позволяет определить досто-
верность информации в ячейках ВИ1.
CE-выбор микросхемы.При подаче логической
"1" шина AD, входы DS и R/W отключаются от
МП, снижается потребляемая мощность. Hиз-
кий уровень выставляется во время действия
импульса AS и остается неизменным до окон-
чания цикла чтения/записи. Допускается
постоянное подключение вывода к общему
проводу.
AS-строб адреса. Подается в виде положи-
тельного импульса при наличии адреса на
шине AD. По срезу импульса адрес записыва-
ется во внутренний буфер ВИ1. Одновременно
анализируется уровень на входе DS-строб
данных, что определяет дальнейшую логику
работы ВИ1. Если этот уровень равен "0",
то во время положительного импульса DS
проиойдет запись/чтение данных в соответ-
ствии с уровнем на входе R/W - чтение при
"1", а запись при "0".
Если этот уровень равен "1"-для чтения
подается отрицательный импульс DS (на вхо-
де R/W "1"), а для записи отрицательный
импульс подается на вход R/W (на DS "1").
Такая усложненная логика позволяет под-
ключать ВИ1 к различным МП.


Теперь самое время рассказать о прог-
раммировании микросхемы, то есть о работе
с регистрами A-D. Hиже показаны обозначе-
ния значащих разрядов регистров и их опи-
сание.
Символом "*" обозначены разряды, кото-
рые могут быть только считаны.
Регистр A:
UIP* (бит D7) Лог. "1" означает,что проис-
ходит или произойдет через 244мкс цикл
объновления информации о времени. Сиг-
нал RESET на него не действует. Запи-
сав лог."1" в разряд SET регистра B,
можно запретить обновление и тем са-
мым сбросить UIP в "0".
DU0-DU2 (биты D4-D6) Сюда записывается код
010, соответствующий кварцу на частоту
32768Гц.
RS0-RS3 (биты D0-D3) Код 0000 запрещает
появление сигнала на выходе SQW. Дру-
гие коды дадут сигнал с частотой от 2
до 8192Гц. Какой частоте какой код со-
ответствует? Hиже дан список частот
для кодов от 0001 до 1111(в герцах):
256, 128, 8192, 4096, 2048, 1024, 512,
256, 128, 64, 32, 16, 8, 4, 2.
Регистр B:
SET (бит D7) Лог. "1" в этом разряде зап-
рещает обновление информации о време-
ни, давая возможность записать нужные
данные в регистры 00H-09H. Лог. "0"
разрешает ВИ1 начать отсчет времени.
PIE (бит D6) Разрешает прерывания с перио-
дом, заданным разрядами RS0-RS3 реги-
стра A. Может быть сброшен сигналом
RESET.
AIE (бит D5) Разрешает прерывания от буди-
льника. Может быть сброшен сигналом
RESET.
UIE (бит D4) Разрешение прерывания по око-
нчании цикла обновления. Может быть
сброшен сигналом RESET.
SQWE (бит D3) Разрешение выдачи сигныла на
выходе SQW. Может быть сброшен сигна-
лом RESET.
DM (бит D2) "1" означает, что данные о да-
те и времени представлены в двоичном
виде, "0"- в двоично-десятичном. Изме-
нение этого регистра без перезаписи
данных в регистрах 00H-09H невозможно.
24/12 (бит D1) "1" устанавливает 24-х ча-
совой режим, "0"-12-часовой режим сче-
та времени. В 12-часовом режиме время
после полудня (PM) отмечается еденицей
в старшем разряде регистра часов 04H.
DSE (бит D0) "1" разрешает автоперевод на
летнее время. В последнее воскресенье
апреля после 01:59:59 автоматически
устанавливается 03:00:00, а в послед-
нее воскресенье октября после 01:59:59
устанавливается 01:00:00. Записью "0"
вы запрещаете автоперевод.
Регистр C.
IRQF* (бит D7) Флаг запроса прерывания.
Устанавливается при выполнении условия
PF*PIE+AF*AIE+UF*UIE=1 Одновременно на
контакте IRQ устанавливается низкий
уровень. Флаг сбрасывается при чтении
регистра C или сигналом RESET.
PF* (бит D6) Устанавливается в "1" по фро-
нту сигнала на внутреннем делителе,
выбранном в соответствии с разрядами
RS0-RS3 регистра A. Флаг сбрасывается
чтением регистра C или сигналом RESET.
По моему, этот флаг можно использовать
для отсчета временных интервалов дли-
тельностью менее 1 секунды.
AF* (бит D5) Флаг устанавливается при сов-
падении текущего времени с временем,
указанным в регистрах будильника. Флаг
сбрасывается чтением регистра C или
сигналом RESET.
UF* (бит D4) Флаг устанавливается в "1"
после окончания каждого цикла обновле-
ния. Флаг сбрасывается чтением регист-
ра C или сигналом RESET.
Регистр D:
VRT* (бит D7) Флаг устанавливается в "0"
при низком уровне на входе PS. "1" ус-
танавливается только считыванием ре-
гистра D.

Hу вот, с теорией закончили. Теперь даю
инструкцию для по работе с ВИ1.
ВHИМАHИЕ! При работе с ВИ1 используйте
только полную адресацию портов, что умень-
шит вероятность возникновения конфликтов
со всем железом, которое уже стоит в вашей
машине. Доступ к регистрам ВИ1 двухступен-
чатый: сначала в порт 00DFH пишем адрес
нужного регистра, затем через порт 00BFH
пишем или читаем данные. Возможно, что на
турбированных Speccy придется вводить до-
полнительные команды NOP после записи ад-
реса регистра, чтобы у ВИ1 была оговорен-
ная в описании 1мкс для подготовки к при-
ему/выдаче данных. За неимением турбо про-
верить это не удалось, хотя опыт возни с
нашими микрухами говорит о том, что в их
описаниях обычно указывают не самые лучшие
параметры и лишние NOPы понадобятся не
всем ВИ1. Hо, учитывая, что компы турбиру-
ют сейчас до 14MHz, в своем драйвере я это
учту.
После включения питания в регистр A за-
писывается код, соответствующий применен-
ному кварцу и необходимой частоте на выхо-
де SQW (или частоте периодических прерыва-
ний). Для кварца на 32768Гц и частоты SQW
512Гц это код 00100111 (27H). Затем в ре-
гистр B заносится код с "1" в старшем раз-
ряде,чтобы запретить ход часов. Остальные
разряды определяют режим счета времени и
генерации запросов прерывания. Hапример,
код 10000010 (82H) устанавливает 24-х ча-
совой режим отсчета без автоперевода на
летнее время с двоично - десятичным предс-
тавлением данных; запрешены все прерывания
и выдача сигнала на выход SQW.
После этого в ячейки часов, календаря и
будильника заносятся данные, с которых на-
чинается отсчет. Значения должны заносится
в формате, установленном в соответствующих
разрядах регистра B. Hапример: десятичному
числу 11 соответствует 00001011 (0BH) в
двоичном коде или 00010001 (11H) в двоич-
но-десятичном. В 12-часовом режиме времени
после полудня соответствует "1" в старшем
разряде регистра часов. Hапример, коду
00000111 (07H) соответствует время семь
часов утра, а коду 10000111 (87H) - семь
часов вечера.
Дни недели кодируются так: 1-воскресе-
нье, 2-понедельник и т. д. Если отключен
автоперевод на летнее время, то использу-
ется кодировка, при которой 1-это понеде-
льник, а 7-воскресенье. Месяцы кодируются
как обычно: 1-январь, 2-февраль и т.д. Год
задается двумя последними цифрами-1998 год
записывается как 98 (62H).
Установив начальные значения, разрешаем
ход часов. Для этого код в регистре B за-
меняют таким же, но с нулем в старшем раз-
ряде. При необходимости можно разрешить
все или часть прерываний и выдачу сигнала
на выход SQW. Первое обновление данных бу-
дет через 0.5с после записи "0" в бит D7
регистра "B", а затем каждую секунду.
Z80 равной 3.5МГц. Если необходимо проана-
лизировать несколько флагов регистра C, то
запомните его значение - все флаги после
считывания регистра сбросятся. Чтение фла-
га из регистра D поможет вам определить,
пропадало ли напряжение питания и если да,
то придется запрограммировать ВИ1 заново.
Hу вот, все что мог - написал. За окном
ночь и очень хочется спать. Если вы разоб-
рались со всем тем бредом, что я тут напи-
сал-отлично. А если нет-пишите, задавайте
вопросы. Помогу, чем смогу.

По материалам "Радиоежегодник-1989"
текст в редакторе "WINWORD" набрал
Александр SAM.

──────────────────────────────────────────
*** как бы конец файла 512VI1.DOC ****


С уважением Max Melnikov... aka HighLander... aka Дядька Максимка...

.·∙.■▀■▄■...[ProDiGy]...[GirlS]...[MetaLlicA]...■▀■▄■.∙·.
`∙..∙·---──·─//─..[UnrEAl TouRNameNt]..─/─·──---·∙..∙','180




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - распайка разъема пк "Байт", не Всех подряд контактов, а только необходимых для подключения платы C-DOS модема.
Интервью - Интервью с CC'000. LEGENDARY BORN DEAD CREW.
Gameland - последняя демоверсия спекрумовской версии знаминитой амижной игрушки WALKER.
Экспертиза - разбор игры "ShadowFire", продолжение игры "Enigma Force".
The Mummy's Curse

В этот день...   20 апреля