hallo, wie schon im betreff beschrieben würde es mich mal interessieren, einen drucker mit einem avr anzusteuern. ich habe bei mir noch einen alten drucker stehen (lexmark cjp 1000), der nur darauf wartet etw. zu tun. ich hab schon bei google geschaut, aber nichts brauchbares gefunden. vielleicht könnt ihr mir ja helfen??? mfg raoul4
mhh also soweit ich weiß kann man bei den alten druckern noch ASCII Zeichen direckt an die Datenleitungen hängen also Pin 2 bis 9 aber wie genau die kommunikation funktioniert weiß ich leider auch nicht.
Ich hab ne Anleitung, ist allerdings für nen 8051, aber das ganze ist alles andere als einfach: Ob der Drucker die Daten empfangen hat, lässt sich nur durch einen kurzen Impuls auf einer Leitung + den Pegel einer anderen Leitung erkennen. Für die ersten Versuche kann man es einfacher machen: Daten an Pin 2-9, für jedes Byte Pin 1 kurz auf High. Nach jedem Byte etwa 1ms Pause.
Mich würde das thema auch interessieren. Wäre es möglich, daß du mir die anleitung per mail zuschickst oder sie hier online stellst? Gruß René
ein Lexmark tausend ist aber kein alter drucker! natürlich kann man einen drucker ganz einfach per ascii-zeichensatz ansteuern. aber dann muß es natürlich auch ein wirklich alter drucker sein. aber es wäre mal interessant, ob es zu so welchen neuen druckern schon projekte gibt. denn ansonsten müßtest du über den drucker-treiber das drucker-protokoll analysieren und dies dann nochmal in den microcontroller einprogrammieren - und das kann natürlich dauern.
es gibt aber teilweisse immer noch endlosdrucker die mit parralelem druckerkabel funktionieren. frag doch einfach einmal bei einem druckerhersteller nach ob die sowas haben; oder ob sie dir das protokoll veröffentlichen; musste aber vielleicht etwas in die trickkiste greifen.
Zur Ansteuerung benötigt man die Datenleitungen, Busy und Ack\ und Strobe\. Das Senden eines Bytes: Daten anlegen, Strobe\ kurz auf Low takten (>1us). Beim Strobe Impuls setzt der Drucker die Busy Leitung auf High. Nun wartet man bis Busy auf Low geht. Hat der Drucker das Byte erfolgreich verarbeitet (oder im Puffer gespeichert), geht Ack\ für etwa 4us auf Low. Am besten verwendet man einen Interrupt, um die Ack\ Leitung zu überprüfen: Daten anlegen, Strobe\ takten, dann Interrupt (High->Low Flanke) aktivieren. Der uC kann nun andere Aufgaben erledigen. Kommt der Interrupt, überprüfen ob Busy Low ist. Wenn ja, dann nächstes Byte senden, wenn nein, dann max. 1ms warten, wenn immer noch High -> Drucker offline, Papier leer oder sonstiger Fehler. Ich würde mal behaupten, dass alle Parallelportdrucker (außer Laser ???) normale ASCII Zeichen direkt drucken.
Welche Schnittstelle hat der Drucker denn? Sofern nur USB vorhanden ist, wird es etwas anstrengender. Bei Vorhandensein einer parallelen (Centronics-)Schnittstelle ist es nur eine Frage des Timings. Prinzipiell müsste jeder Drucker den ASCII-Zeichensatz verstehen, da sämtliche Steuerbefehle von diesem abgeleitet sind. Früher waren in den Handbüchern zu den Druckern meist auch Protokolle und Timing-Diagramme angeben. Das bezweifle ich bei einem Lexmark. Es könnte höchstens sein, dass er entweder Epson-, HP- oder was auch immer kompatibel ist. Zu HP und Epson gibt es Unterlagen. Im Normalfall ist es so, dass man die Daten an die Datenleitungen legt, /Strobe für eine gewisse Zeit auf log. Null zieht und der Drucker die Daten übernimmt. Je nach Druckereinstellung wird das Zeichen (sofern druckbar) sofort gedruckt, oder erst wenn der Speicher voll ist. ---> Stimme also Benedikt zu. Laserdrucker machen das meistens auch so, warten aber auch gerne auf ein FormFeed (ASCII-Steuerzeichen). Wofür man an einem µC einen Drucker betreiben will verstehe ich jetzt zwar nicht ganz, aber vielleicht liegt das an diesen Betriebssytemen, die keinen direkten Port-Zugriff mehr ermöglichen, so wie es zu DOS-Zeiten möglich war. Gruß Rahul
Hallo, sobald der Drucker nach Eingabe des Dos-Befehls TYPE Dateiname > LPT1 sinnvolle Zeichen von sich gibt, müßte er für dieses Vorhaben geeignet sein. Das klappt mit HP-Lasern auch. Gruß
Es gibt sogar Drucker mit serieller Schnittstelle (für ältere Macs). Einfach an den UART hängen, einfacher gehts wohl nicht mehr. Wenn der Drucker dann noch Postscript kann, dann kannst du damit extrem komplexe Sachen anstellen (z.B. aufwendige Diagramme ausdrucken, wobei der Drucker dann die Datenaufbereitung übernehmen kann).
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.