eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaKontroler klawiatury 8042/8242 i translacja kodów › Kontroler klawiatury 8042/8242 i translacja kodów
  • Data: 2020-08-09 19:01:48
    Temat: Kontroler klawiatury 8042/8242 i translacja kodów
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Jakiś czas temu realizując równolegle dwa podobne projekty natrafiłem na
    pewien problem. Co prawda obydwa projekty chwilowo znajdują się w stanie
    zawieszenia z powodu braku czau, ale sprawa nie daje mi spokoju. Może
    ktoś będzie wiedział o co chodzi...

    Pierwszy projekt to komputerek retro na polskim mikroprocesorze MCY7880
    (dokładniej opisany tutaj:
    https://hackaday.io/project/161333-polon-7880). Drugi to komputerek
    oparty na MOS6502
    (https://hackaday.io/project/163714-6502-retro-compu
    ter). W obydwu
    wykorzystałem kontroler 8242, stosowany kiedyś powszechnie w pecetowych
    płytach głównych.

    Pisząc kod do obsługi tego kontrolera wzorowałem się głównie na tej
    stronie: https://wiki.osdev.org/%228042%22_PS/2_Controller.

    W komputerze na MCY7880 całość jest zmontowana na płytkach
    uniwersalnych, z połączeniami wykonanymi dużą ilością kynaru. MOS6502 to
    już projekt wykonany na płytkach drukowanych. Na pierwszym komputerku
    wszystko zadziałało właściwie od razu, po usunięciu jakichś drobnych
    bugów. Natomiast ten z MOS-em generował problemy - kontroler niby
    przechodził inicjalizację, reagował na naciśnięcia klawiszy ale
    przesyłał jakieś kompletne bzdury. Dopiero po chwili dotarło do mnie, że
    skan kody nie są przypadkowe, ale należą do starszego zestawu z czasów
    komputerów XT, który jest wykorzystywany po włączeniu translacji.

    Problem w tym, że ja translacji nie włączałem. Kod dla 6502 był
    właściwie tłumaczony z asemblera 8080 i wszystkie stałe pozostawiłem
    takimi, jakie były. Myślałem, że winę za to może ponosić jakiś mniej
    standardowy egzemplarz 8042, jednak próbowałem kilku różnych układów i
    zamieniałem je miedzy komputerami - zachowanie nie przenosiło się wraz z
    nimi.

    Czy jest jakaś sprzętowa przyczyna, która mogłaby to tłumaczyć? Jakiś
    pin podciągnięty do plusa/masy, który mógłbym pominąć w drugim projekcie?

    Kod procedury inicjującej kontroler pod 8080 wygląda następująco:
    https://pastebin.pl/view/7c42cd6f

    Ta sama procedura dla MOS6502:
    https://pastebin.pl/view/3da5e5d1

    Z ciekawości spróbowałem jeszcze przetestować z MC6802, przy pomocy
    innej płytki mojego autorstwa. Korzystałem z tego samego modułu z
    kontrolerem klawiatury co w MOS6502 i układ też zachowywał się tak samo,
    udostępniając skan kody XT.

    Kod dla MC6802 poniżej.
    https://pastebin.pl/view/5bfcecc1

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: