Forum: Mikrocontroller und Digitale Elektronik UsartClock im Idle high mit AVR (wegen Ps2 über Usart)


von Daniel Schäfer (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>Geht das auch mit dem USART?

Das blöde am USART ist das der gar kein Clock Signal rausgibt !

von Daniel B. (und3rt4ker)


Lesenswert?

Hi,
USART-->Universal synchron....-->mit CLOCK
UART--->Universal asynchron...-->ohne CLOCK z.b RS232


Mfg
und3rt4ker

von Daniel Schäfer (Gast)


Lesenswert?

also im synchron kann er eine clock erzeugen - nur wie ich es vermute
nicht "high bei idle" - wenn ich das richtig lese ;)

von Daniel B. (und3rt4ker)


Lesenswert?

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

von Daniel Schäfer (Gast)


Lesenswert?

hm, hört sich gut an.
Dank dir - so kann ich mal weiterschaun

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Daniel B. (und3rt4ker)


Lesenswert?

Die Tastatur gibt das CLOCK-Signal an----immer!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Korrekt, und?

von Daniel B. (und3rt4ker)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Daniel B. (und3rt4ker)


Lesenswert?

Hm....das ist ein Argument. duck un wech

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.