Autonomiczna klawiatura do systemów prockowych

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
gaweł
Geek
Geek
Posty: 1290
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Autonomiczna klawiatura do systemów prockowych

Postautor: gaweł » niedziela 02 cze 2024, 22:39

autokl00.jpg


Autonomiczna klawiatura do
systemów prockowych


Tworzę pewne urządzenie bazujące na „starożytnych” prockach, które będzie wymagało sporej liczby klawiszy. Dzisiaj to bierze się procka i w przerwaniach od czasu realizuje się obsługę takiej klawiatury. Jednak jak procek nie wyciąga 1 miliona instrukcji na sekundę, to takie podejście nosi znamiona nieliczenia się z jego możliwościami. Jak „nie kijem, to pałką” – można zrealizować obsługę sprzętową takowej klawiatury, gdzie układ jest w pełni autonomiczny i jedynie zgłasza przerwanie we właściwym momencie. Schemat to:
autokl01.png

Generator na 555 stymuluje wszystko do pracy. Jego częstotliwość to około 5 kHz, która wstępnie jest podzielona przez 16 (U408 – 74LS161). Uzyskany sygnał taktujący (KCLK jako 5kHz / 16 = 312Hz) jest zliczany w dwóch licznikach synchronicznych (U402 i U403 – 72LS161) i służy do adresowania wierszy i kolumn w matrycowej klawiaturze (U404 – 74LS151 i U405 – 74LS138 i P401 jako przyłącze do matrycy przycisków). Adresowanie wierszy i kolumn „zużywa” kolejnych 64 impulsów, czyli 312Hz/64=4.8Hz – cała matryca jest obleciana około 5 razy na sekundę. W najgorszym przypadku może minąć 0.2 sek od naciśnięcia by ten fakt został wykryty.
Stan klawiszy jest skanowany przez 74LS151 (U404) i wchodzi on do rejestru przesuwającego o wejściu szeregowym i wyjściu równoległym 74LS164 (U406). Służy to do usuwania dzwonienia styków: jeżeli jest wciśnięty klawisz i zostanie on „namierzony” przez 74LS151 w parze z 74LS138, to na wyjściu 74LS151 będzie zero logiczne. Jeżeli stan naciśnięcia jest stabilny (przez 8 taktów zegarowych o F=5kHz), to na wyjściu 74LS164 będą same zera i ten stan jest wykrywany przez 8-bitowy komparator 74HCT521 (U407). Jeżeli stan jest zgodny (jest osiem zer), to na wyjściu komparatora jest zero i blokuje ono zliczanie dla licznika synchronicznego (U402 – 74LS161). Jak licznik U402 stoi, to U403 również nie liczy. Jednocześnie wyjście komparatora uruchamia wygenerowanie impulsu strobu (U410 – 74LS132 i okolice) dla rejestru wyjściowego 8212 (U401). Wpis do 8212 generuje sygnał przerwania ze stanem aktywnym jako zero logiczne. Jeżeli zachodzi potrzeba zastosowania w prockach intelowych, to niezbędny jest negator, gdyż intelki mają przerwanie stanem jedynki. Odczyt przez procka gasi przerwanie a sam układ czeka na zwolnienie przycisku. Zwolnienie przycisku to jedynki na wyjściu 74LS151, które wchodząc do rejestru przesuwającego 74LS164 poprzez komparator 74HCT521 „odpuszczą” licznikowi 74LS161 i ten będzie poszukiwał kolejnych naciśniętych klawiszy.
Całość „obejrzałem” 8-bitowym analizatorem logicznym,
autokl02.png

gdzie pierwsze 4 sygnały to stan liczników obiegu (nie koniecznie w rosnącej kolejności bitów licznika). Kolejne to określone punkty układu kształtowania strobu.
autokl03.png

Po rozciągnięciu czasowym:
autokl04.png

i dokładniej, mamy impuls strobu do 8212 o długości 280µs.
autokl05.png

W stanie poszukiwania naciśniętego klawisza, na wyświetlaczu „Data bus” jest lekka mgiełka.
autokl06.jpg

Wciśnięcie przycisku, zatrzymuje zliczanie i wynik jest wyraźny:
autokl07.jpg

i zgodny z operacją odczytu rejestru 8212.
autokl08.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Wróć do „Retro”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość