www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 Daten nach Centronics wandeln


Autor: Michael Kirsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Kirsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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 ... ?

Autor: Michael Kirsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.