Hallo, ich bin gerade dabei mir ne PS2-Tastaturemulation (nur senden zu PC) zu überlegen, die ich in einem kleinen AVR realisieren wollte. Soweit ich es bishe sehe lässt sich die PS2 eigentlich schön einfach über den USART realisieren (Startbit, stopbit, Parity, clock-erzeugung). Was ich mit der Suchfunktion nicht gefunden habe: Beim Tastaturprotokoll muss ja im idle Zustand die Clock high sein. Geht das auch mit dem USART? Oder hab ich doch nichts überlesen und der Traum mit "einfach die USART Register nutzen und fertig" ist geplatz? ;) Wenn es nicht geht - gibts noch nen einfachen Trick das hinzubekommen, ich muss zugeben ich hab noch nie ne serielle Kommunikation "per Hand" programmiert. Weil bevor ich das in Software mache kann ich da gleich über nen Schieberegister mir das in Hardware zusammenstricken g. lg Daniel
>Geht das auch mit dem USART?
Das blöde am USART ist das der gar kein Clock Signal rausgibt !
Hi, USART-->Universal synchron....-->mit CLOCK UART--->Universal asynchron...-->ohne CLOCK z.b RS232 Mfg und3rt4ker
also im synchron kann er eine clock erzeugen - nur wie ich es vermute nicht "high bei idle" - wenn ich das richtig lese ;)
Hi, was ist denn mit den 2 Pins (TX und CLK), wenn das bit TXEN nicht gesetzt ist? Dann müsste man doch CLK auf high schalten können, oder nicht? Schau mal diesbezüglich im Datenblatt(siehe S122). Wenn TXEN gesetzt--->TX Pin wird zum seriellen senden benutzt. TXEN cleared-->TX Pin "normal Port operation" MfG und3rt4ker
hm, hört sich gut an. Dank dir - so kann ich mal weiterschaun
Das UART würde ich nicht für PS2 nehmen. Dafür kann man einen Interruptpin (Clock) und einen einfachen Portpin (Data) viel besser benutzen. Die Schnittstelle macht man in Software. Per DDRx-Register wechselt man am AVR zwischen logisch 0 als Ausgang und Eingang. Das betreffende Port-Register-Bit bleibt auf 0. Somit kann man wunderbar eine Open-Kollektor-Interface simulieren, welches in der PS2-Spezifikation gefordert ist.
Die Tastatur gibt das CLOCK-Signal an----immer!
Travel Rec. wrote: > Dafür kann man einen Interruptpin (Clock) und einen einfachen Portpin >(Data) viel besser benutzen. Die Schnittstelle macht man in Software. -->Der Interrupt Pin dient dann doch als Eingang, oder? Aber er will doch eine Tastaturemulation zum Computer und da die Tastatur immer den Takt angibt, sollte er doch auch einen normalen Portpin dafür benutzen. PS.: http://www.marjorie.de/ps2/ps2_protocol.htm
Ich kenne das Protokoll ;-) Der Host (PC) kann aber die laufende Übertragung unterbrechen, indem er die Clockleitung herunterzieht. Damit der sendende AVR das mitbekommt, muß er nach jedem seiner Low-Impulse die Leitung durch hochohmigschalten (Eingang) kontollieren und die Übertragung gegebenenfalls stoppen. Ein Interruptpin ist hier vielleicht übertrieben, bei einer Erweiterung mit echter Tastatur aber unerläßlich.
Kein Problem ;-) Schönen Abend noch, muß los.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.