eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Kontroler klawiatury 8042/8242 i translacja kodów
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2020-08-09 19:01:48
    Temat: Kontroler klawiatury 8042/8242 i translacja kodów
    Od: Atlantis <m...@w...pl>

    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


  • 2. Data: 2020-08-09 20:02:30
    Temat: Re: Kontroler klawiatury 8042/8242 i translacja kodów
    Od: Włodzimierz Wojtiuk <"WBodzimierz Wojtiuk">

    On 2020-08-09 19:01, Atlantis wrote:

    > 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?
    >
    W klawiaturze z przełącznikiem (AT/XT) z kontrolerem 8039
    widzę pin 1 do masy (przełącznika juz brak jak i obudowy - uczyniłem to
    dawno i własnoręcznie, co oznacza że nie powiem w jakim stanie jest tak
    spreparowana klawiatura, czy jest to XT czy AT).
    W pewnym okresie przełączane klawiatury były bardzo popularne.


  • 3. Data: 2020-08-09 23:42:58
    Temat: Re: Kontroler klawiatury 8042/8242 i translacja kodów
    Od: Atlantis <m...@w...pl>

    On 09.08.2020 20:02, Włodzimierz Wojtiuk wrote:

    > W pewnym okresie przełączane klawiatury były bardzo popularne.

    Klawiatura z którą testowałem wszystkie układy nie ma żadnego
    przełącznika. Standardowa klawiatura AT wyprodukowana w drugiej połowie
    lat dziewięćdziesiątych.

strony : [ 1 ]


Szukaj w grupach

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: