Forum: Mikrocontroller und Digitale Elektronik kann man mit einem avr drucker ansteuern?


von raoul4 (Gast)


Lesenswert?

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

von Bjoern (Gast)


Lesenswert?

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.

von Benedikt (Gast)


Lesenswert?

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.

von ICEbAIR (Gast)


Lesenswert?

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é

von fksystems (Gast)


Lesenswert?

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.

von ulrich strobel (Gast)


Lesenswert?

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.

von Benedikt (Gast)


Lesenswert?

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.

von raoul4 (Gast)


Lesenswert?

vielen dank für euere antworten!

mfg raoul4

von Rahul (Gast)


Lesenswert?

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

von Chris (Gast)


Lesenswert?

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ß

von Marko B. (Gast)


Lesenswert?

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