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