Skip to content

Latest commit

 

History

History

014

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

1801ВП1-014

Фотографии кристалла высокого разрешения

1801ВП1-014, 161M

Условное графическое обозначение

Symbol

Назначение выводов

Номер Название Конфигурация Назначение
5-1, 41-40 Y1-Y7 Вход, Выход ОК Матрица клавиатуры, в режиме ожидания нажатия работают как входы, при нажатой клавише активируется один из выходов ОК
15-6 nX0-nX9 Вход Матрица клавиатуры
16 nSHIFT Вход Модификатор нижнего регистра
17 nEC1 Вход Модификатор алфавита РУС/ЛАТ
18 nCTRL Вход Модификатор управляющего символа УС (Ctrl)
19 nINIT Вход Аппаратный сброс, приводит микросхему в исходное состояние, бит разрешения прерываний сбрасывается
20 RP1 Вход, Выход ОК Времязадающий конденсатор подавления дребезга нажатия клавиш
21 GND Питание Нулевой потенциал (земля)
22 nRP2 Вход, Выход ОК Времязадающий конденсатор подавления дребезга отжатия клавиш
23 nIRQ Выход OK Запрос на прерывание
24 nIAKO Выход Выход цепочки подтверждения прерывания
25 nIAKI Вход Вход цепочки подтверждения прерывания
26 nDIN Вход Строб чтения данных МПИ
27 nDOUT Вход Строб записи данных МПИ
28 nRPLY Выход ОК Строб подтверждения транзакции МПИ
29 nSYNC Вход Строб адреса МПИ
30 nCS Вход Выбор внутренних регистров микросхемы (регистр данных и управления), микросхема не декодирует самостоятельно nAD0-nAD7. Данный вход защелкивается по ниспадающему фронту nSYNC, низкий уровень разрешает обмен с внутренними регистрами и формирование nRPLY
31 EC2 Вход Модификатор АР2
39 nAD0 Вход, Выход-3 Линия 0 шины данных/адреса МПИ, выдает вектор прерывания и регистры данных и управления при чтении
32 nAD1 Вход, Выход-3 Линия 1 шины данных/адреса МПИ, выдает вектор прерывания и регистры данных и управления при чтении
37-33, 38 nAD2-nAD7 Вход, Выход-3 Линии 2-7 шины данных/адреса МПИ, выдает вектор прерывания и регистры данных и управления при чтении
42 VCC Питание Потенциал +5В (источник питания)

Структурная схема 1801ВП1-014

Struct

Описание

Микросхема 1801ВП1-014 представляет собой контроллер клавиатуры с интерфейсом МПИ. Из широкоизвестных изделий применялся в домашних компьютерах серии БК-001x. Особенностью 1801ВП1-014 является отсутствие динамического сканирования матрицы клавиатуры. Рассмотрим процесс взаимодействия контроллера с матрицей подробнее.

Контроллер имеет набор входов "линейки" - условно называются X0-X9. И набор входов-выходов "столбцов" - условно называются Y1-Y7. Роль "столбца" Y0 играет шина "земли". Также имеется две времязадающих схемы, представляющих собой внешние кондесаторы, подключенные к выводам RP1 и RP2. Конденсаторы могут независисмо разряжаться на "землю" внутренним ключом контроллера (выводы RP1 и RP2 являются как входами так и выходами по схеме "открытый коллектор"), заряд конденсторов осуществляется через внешние резисторы от источника питания. Номиналы RC определяют характерное время, в схеме БК-001х сопротивление R обычно порядка 200 килоом, емкость С порядка 300 нанофарад и характерное время составляет примерно 60 миллисекунд. Схема на RP1 отвечает за фильтрацию дребезга механических контактов при нажатии клавиш, схема на RP2 отвечает за фильтрацию дребезга при отжатии клавиш.

В исходном состоянии все клавиши отжаты, на входах X0-X9 присутствует высокий уровень, задаваемый внешними резисторами, в схеме БК-001х используется номинал 22 килоом. При этом на внутренней цепи ~XANY сформирован высокий уровень, сигнал на внутренней цепи LOCK также имеет высокий уровень. Ключ RP1 открыт и соответствующий конденсатор разряжен. Ключ RP2 закрыт и его конденсатор заряжен. Выводы Y1-Y7 в этот момент работают как входы, выходные транзисторы "открытых коллекторов" закрыты. Через внешние резисторы на входы Y1-Y7 подается низкий уровень, в схеме БК-001х используется номинал 180 килоом.

При нажатии клавиши в некотором столбце Yi происходит следующее - на соответствующем входе Yi появляется высокий уровень через делитель 22/180 килоом. На каждом входе Yi имеется отдельный RS-триггер, который сбрасывается при обнаружении высокого уровня на входе Yi и устанавливается низким уровнем сигнала LOCK (уже после того как клавиши будут обработаны). При сбросе триггера соответстующий выход типа "открытый коллектор" переходит в состояние низкого уровня и вывод Yi начинает работать как выход. Через замкнутую клавишу генерируемый выходом Yi низкий уровень поступает на соответствующий вход Xj. Если же клавиша замкнута в столбце Y0 (который виртуальный, вместо выхода Yn используется "земля") то низкий уровень на вход Xj поступает немедленно, а ни один из триггеров Yi не переходит в сброшенное состояние. Таким образом контроллер по номеру сброшенного триггера Yi (или ни одному не сброшенному) может определеть номер столбца, а по номеру входа Xj может определить номер линии замкнутой клавиши.

По обнаружению низкого уровня на любом из входов Xj ключ на RP1 закрывается и конденсатор начинает заряжаться. Простая комбинационная схема формирует код клавиши в зависимости от номера столбца, линейки и состояния управляющих входов SHIFT, CTRL, EC2, EC1. Любопытно что формируемый код можно в этот момент наблюдать в регистре данных, но бит готовности еще не установлен. В момент окончания заряда конденсатора вычисленный код клавиши фиксируется во внутреннем регистре и выставляется запрос на векторное прерывание. В зависимости от кода клавиши при подтверждении прерывания формируется вектор 060 или 274 (восьмеричный). Любопытно что сформированный запрос на прерывание фиксируется во внутреннем триггере и может быть сброшен только циклом подтверждения прерывания.

После считывания кода центральным процессором контроллер ожидает отпускания клавиши - пропадания низкого уровня на входах Xj. Когда клавиша отпущена, ключ RP2 закрывается и конденсатор начинает заряжаться. До момента окончания заряда контроллер игнорирует изменения состояний матрицы клавиатуры - таким нехитрым образом фильтруется дребезг при размыкании контактов.

Базовый адрес внутренних регистров контроллера на шине МПИ формируется внешней схемой (в БК-001х это чип-компаньон 1801ВП1-037), сам контроллер 1801ВП1-014 анализирует только низкий уровень на входе nCS. Для внутреннего декодирования адреса, видимо, оказалось недостаточно выводов в стандартном для 1801-ой серии 42-выводном корпусе - банально некуда было завести выводы ненужные собственно для работы контроллера входы nAD15-nAD8.

Также стоит отметить полное отсутствие тактирования микросхемы - нет никаких тактовых сигналов. Внутри обнаружился рудиментарный триггер переключателя регистров РУС-ЛАТ, который явно неработоспособен и в схеме БК-001х применяется аналогичный внешний триггер. Сложно сказать, это ошибка схемы или по каким-то соображениям разработчики намерено отказались от этого внутреннего триггера.

Несмотря на то что контроллер 1801ВП1-014 является достаточно простым, использует несколько необычный в наши дни алгоритм обработки клавиатурной матрицы и поддерживает одновременное нажатие только одной клавиши, основную свою задачу он выполнил - разгрузил и так не очень быстрый центральный процессор от функций непрерывного сканирования клавиатуры.