После детального изучения вопроса, а именно разбора Мониторных процедур опроса стандартной РК86-клавиатуры и некоторого мыслительного процесса по оптимизации, родилась вторая версия схемы подключения PS/2-клавиатуры и часов DS1307 "поверх" родной матрицы, а также добавился интерфейс для SDHC-карты:
В случае полного отказа от РК'шной клавиатуры, схема ощутимо упрощается:
схема
[свернуть]
Идеологически изменён узел обработки сигнала PS2_CLK. Дело в том, что процедуры Монитора сканирования матрицы оставляют линию порта A в состоянии 11111110 (FEh), т.е. младший бит установлен в "0". Это как раз можно использовать для "придавливания" клока к земле для блокировки передачи данных PS/2-клавиатурой, пока исполняется код вне процедуры её обслуживания (на Орионе мы работаем с клавиатурой не по прерываниям, как на писи, а по факту опроса). При этом линия PA4 выступает в роли гейта прохождения данных на вход порта PB0.
Принцип дешифрации сигналов управления новыми устройствами сохранён, но изменены некоторые линии порта A - выполнено перемежение т.о., чтобы сигналы не складывались из соседних битов.
К сожалению, подключиться непосредственно "поверх" реализации стандартной РК-клавиатуры на МК (от Caro), без доработки последней, не получится, т.к. выходы МК работают не в режиме ОК с подтяжкой к питанию, как это сделано в аппаратной реализации матрицы, т.о. завести внешние сигналы PBx напрямую не получится, придётся делать развязку на диодах/резисторах.
Часть схемы относящаяся к SDHC (ниже волнистой линии) - полностью самостоятельная, и может быть опущена. В варианте "поверх РК-матрицы" преобразование 5-вольтовых лог. уровней в 3,3-вольтовые делается неявно с помощью микросхемы серии 74AC (74HC), соответственно питание последней производится не от основного питания ПРК (5в), а берётся с выхода 3,3-вольтового преобразователя!
В отдельном варианте схемы преобразование уровней выполнено на пассивных элементах.





Ответить с цитированием
