RS232 Daten nach Centronics wandeln

Gast #214909
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
Gast #214911
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
#214912
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 ... ?
Gast #214913
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.