Witam,
szukałem po forum, ale niestety tematy głównie dotyczną klawiatur matrycowcyh. Czy ktoś próbował może podłączać klawiatury ps/2 do uC rodziny 8051. Protokuł jest opisany dobrze na stronie http://www.computer-engineering.org/ind ... d_Protocol. Chodzi mi o rozwiązanie sprzętowe, co z zegarem, jak go stworzyć.
Bardzo prosze o jakies porady
[ Dodano: 08-05-2007, 22:26 ]
może nie sprecyzowałem, chodzi mi o komunikacje pomiedzy klawkiaturą/myszą za pomoca wbudowanego UARTA w 8051 - czy to możliwe
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięPodłączenie klawiatury/myszy od PC do 8051
Moderatorzy:Jacek Bogusz, procesorowiec, robertw, tomasz_jablonski, r-mik, Moderatorzy
U nas na projekcie z FPGA ludzie obsługiwali klawiaturę. Podłączone to było do Spartana 2. W instrukcji do projektu mam schemat (strasznie nie czytelny, więc nie ma co wklejać), ale linie data i clk są po prostu podłączone do układu i podciągnięte do plusa przez rezystory 470 ohm. Cytuję "Linie te o nazwach DATA i CLOCK sterowane są w układzie open collector co onacza konieczność użycia oporników podciągających o małej wartości. Wewnętrzne rezystory typu pull-up mają zbyt dużą wartość dla tego zastosowania." Ogólnie ludzie mówili że obsługa tego była prosta. Jak to pisałem to dodałeś o uarcie. Teraz wiem skąd to pytanie o zegar;) A nie lepiej normalnie podłączyć do lini I/O data i clk i generować wszystko softwerowo?
Chyba tak własnie zrobie, poprtu podłącze do portów I/O. Wysyłanie da radę zrobić, a odbiór z myszki zrobie na zasadzie przerwań. Dziękuję za informację o tyhc rezystorach 470ohm - pewnie bez tego bym szukał po necie jak głupi i nic bym nie znalazł. Podłączenie Otwartego kolektora też jest na stronie.
Pozdrawiam
Pozdrawiam
Drobiazg.
No właśnie nie pod byle jakie I/O tylko pod przerwanie zewnętrzne.
Na zachętę;) jeszcze jeden cytat "Odbiór danych z klawiatury IBM PC jest prosty i wymaga jedynie rejestru przesuwnego. Obsługa myszy komputerowej jest bardzo trudnym zadaniem dla studentów. Dzieje się tak dlatego że działanie myszy wymaga sekwencji inicjującej bez której układ myszy nie produkuje sekwencji informującej o zmianach pozycji."
No ale to się dotyczy FPGA czyli rzeźbienia w VHDLu, na procku to nie powinno być wcale trudne. Powodzenia!
No właśnie nie pod byle jakie I/O tylko pod przerwanie zewnętrzne.
Na zachętę;) jeszcze jeden cytat "Odbiór danych z klawiatury IBM PC jest prosty i wymaga jedynie rejestru przesuwnego. Obsługa myszy komputerowej jest bardzo trudnym zadaniem dla studentów. Dzieje się tak dlatego że działanie myszy wymaga sekwencji inicjującej bez której układ myszy nie produkuje sekwencji informującej o zmianach pozycji."
No ale to się dotyczy FPGA czyli rzeźbienia w VHDLu, na procku to nie powinno być wcale trudne. Powodzenia!
"AVR313: Interfacing the PCAT Keyboard (13 pages, revision B, updated 5/02)Czy ktoś próbował może podłączać klawiatury ps/2 do uC rodziny 8051.
Most microcontrollers requires some kind of human interface. This Application Note describes one way of doing this using a standard PC AT Keyboard."
http://www.atmel.com/dyn/resources/prod ... oc1235.pdf
http://www.atmel.com/dyn/resources/prod ... AVR313.zip
Wprawdzie nie '51 a AVR, ale przykładowy kod i tak jest napisany w C więc nie powinno być problemów z adaptacją.
--
MDz
A co do zegara to jego źródłem jest klawiatura. Od strony procka sterujesz tą linią (ustawiasz w 0) tylko w kilku wyjątkowych sytuacjach, a przez resztę czasy to tę linię ustawiasz jako wejscie (w 51 wystarczy wpisac na wyjście 1) i podglądasz/podczytujesz (przydatne moż być jej podłaczenie na wejście przewania, wtedy łatwiej jest zorganizować program)
Z tego tez powodu (transmisja synchroniczna) UART'em tego nie odbierzesz.
bis
Z tego tez powodu (transmisja synchroniczna) UART'em tego nie odbierzesz.
bis
MDz - dzięki za te kody w języku C na AVRy - planuję się przestawić na AVRy, kupiłem już książkę, ale to po maturach będe miał dużo czasu .
Co do samego zegara w interfejsie SP/2 to już doczytałem i rozumiem - fajnie to wymyślił ktoś , chciałbym tylko abyście mi trochę jeszcze pomogli, jesli chodzi o przerwania w 8051. Czy macie może informacje o rejestrach IP i IE - bo nigdzie nie mogę znaleść tego. Czy da sie ustawić na jakie sygnały reagują nóżki INT0 i INT1 czy musi to zawsze być stan niski?
[ Dodano: 12-05-2007, 20:46 ]
Kolega już mi pomógł z informacjami o IE i IP. Zamieszczam kod ASM. Nie wiem dlaczego nie chce mi działać przerwawnie pochodzace z INT0, ustawiłem IE na 10000001B, a i tak w emulatorze proc nie reaguje na przerwanie z tej nóżki. Może mieliście podobne problemy?
IP jest nieruszony.
Chciałbym jeszcze się zapytać, czy jak stan niski na nóżce P3.2(INT0) wyzwoli procedurę przerwania, to czy w tej procedurze mogę sprawdzać jaki stan obecnie ma nóżka P3.2? Nie wiem może głupie pytanie, ale poważnie nie wiem czy mogę tak robić.
Proszę o jakąkolwiek pomoc
Co do samego zegara w interfejsie SP/2 to już doczytałem i rozumiem - fajnie to wymyślił ktoś , chciałbym tylko abyście mi trochę jeszcze pomogli, jesli chodzi o przerwania w 8051. Czy macie może informacje o rejestrach IP i IE - bo nigdzie nie mogę znaleść tego. Czy da sie ustawić na jakie sygnały reagują nóżki INT0 i INT1 czy musi to zawsze być stan niski?
[ Dodano: 12-05-2007, 20:46 ]
Kolega już mi pomógł z informacjami o IE i IP. Zamieszczam kod ASM. Nie wiem dlaczego nie chce mi działać przerwawnie pochodzace z INT0, ustawiłem IE na 10000001B, a i tak w emulatorze proc nie reaguje na przerwanie z tej nóżki. Może mieliście podobne problemy?
IP jest nieruszony.
Chciałbym jeszcze się zapytać, czy jak stan niski na nóżce P3.2(INT0) wyzwoli procedurę przerwania, to czy w tej procedurze mogę sprawdzać jaki stan obecnie ma nóżka P3.2? Nie wiem może głupie pytanie, ale poważnie nie wiem czy mogę tak robić.
Proszę o jakąkolwiek pomoc
- Załączniki
-
- mysz.zip
- (1.67KiB)Pobrany 509 razy
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 35 gości