Forum: Mikrocontroller und Digitale Elektronik RS232 Daten nach Centronics wandeln


von Michael Kirsten (Gast)


Lesenswert?

Hallo,

ich bin neu in der Materie AVR und wollte, nachdem ich gründlich
gegoogled habe, ein nutzbringendes Projekt anfangen.

Nur bin ich scheinbar zu blöd eine Centronics Schnittstelle zu
steuern.

Die Lage: Auerswald Telefonanlage mit RS 232-Ausgang 9600,8,N,1
          AT90S2313 mit Quartz und MAX 232 als Pegelwandler.
          EPSON LQ-1070 Nadeldrucker

Der 2313 soll am UART die Datensätze aus der Telefonanlage empfangen
und die Buchstaben und Zahlen kopiere ich dann auf den PB 0...7 die mit
den Datenleitungen der Centronics-Schnittstelle verbunden sind.

Für den Handshake wollte ich PD4 Busy und PD5 ACK nehmen.

Ich bin nur irgendwie zu blöd, Busy und ACK zu benutzen, damit der
Drucker die Daten ausgibt.

Kann mir jemand da mal jemand ein wenig auf die Beine Helfen ?

Danke im vorraus.

Michael

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Busy und ACK sind beides Signale, die der Drucker ausgibt. Du musst ihm
aber mitteilen, daß Du überhaupt Daten an die Datenleitungen angelegt
hast, und dazu dient die Signalleitung Strobe.

von Michael Kirsten (Gast)


Lesenswert?

Na dann wird mir einiges klarer ...

Ich hatte beim googlen einige Seiten in english erwischt und wohl
vollständig falsch verstanden.

Wenn ich STROBE dann richtig verstehe, muß ich den Inhalt aus dem UART
Eingangsregister auf PORTB kopieren und wenn der Pegel auf PD4 eine
Null ansteht, dann mit einem STROBE (Wird wohl PD6 werden) die Daten
übergeben. Wenn PD5 (ACK) dann Eins wird, kann ich das PORTB-Register
löschen und ein neues Zeichen aus dem UART-Register holen.

Ich hatte STROBE für jedes andere, nur nicht für das Übernahmesignal
gehalten. Hoffentlich habe ich den Drucker nicht beschädigt, wenn ich
dauernd Daten angelegt habe und auf ACK versucht habe eine
Datenübernahme zu erwirken.

Ich muß doch nochmal anfangen, English zu lernen um auch technische
Doku´s zu verstehen.

War die Beschreibung oben so ungefähr richtig oder ist da noch was
falsch dran ?

Danke für den Tipp

Michael

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

grundsätzlich richtig. Für ein "richtiges" Handshake ware ACK
(Acknowledgement, Bestätigung) das richtige Signal zum Bestätigen eines
Zeichens. BUSY würde der Drucker melden, wenn er "grade nicht kann",
also z.B. bei einem Nadeldrucker mit einfacher Druckrichtung (=nur von
links nach rechts wie eine alte Schreibmaschine) grade den
Wagen-Rücklauf durchführt.

Manche Drucker machen aber nicht STROBE/ACK + BUSY, sondern
vereinfachen auf STROBE/BUSY: Der Drucker erwartet/interpretiert Datn
bei Strobe Flanke oder Pegel, und wenn er nicht mag (Pufferüberlauf,
Blattvorschub) meldet er ein BUSY zurück.


Hinweis: War denn nicht ACK sogar NACK, also negatives ACK, d.h.
Standard High Pegel, und nur wenn ACK auf Low geht, dann ist das das
Acknowledgement ... ?

von Michael Kirsten (Gast)


Lesenswert?

Danke erst einmal.

Ich muß nun zunächst einmal erst wieder eine neue Platine entwerfen.

Denn ich hatte ja an der 25 Pol. Buchse auf meiner Platine kein Signal
an Strobe hingelegt. Dafür habe ich aber gerade festgestellt, das
Star-Drucker (LC-10) keine 5-Volt an der Centronics Buchse rausgeben.
Muß ich also dafür auch noch sorgen.

Außerdem steht die Software noch nicht so ganz. Habe bisher nur den
Centronicsteil erfolglos getestet (Klar, weil Protokollfehler).

Muß mal ausrechnen, was für ein Quartz denn für die 9600 Baud so
passt.

Wenn ich weiter bin, werde ich mich nochmal melden.

Michael

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.