Forum: Mikrocontroller und Digitale Elektronik Drucker per paralleler Schnittstelle ansteuern


von Micha (Gast)


Lesenswert?

ich möchte mit einem Atmega (z.B. Atmega88 weil ich davon einige in der 
Bastelkiste hab) einen einfachen Thermodrucker ansteuern. Ohne viel 
Klimbim, nur Zeichensatz und Zeilenschaltung.

Habe hier im Forum bereits einen Thread gefunden mit Code-Beispielen wie 
man das auf die ganz einfache Art machen kann (mit delays):
Beitrag "Mit dem ATmega8 Text auf einen Drucker ausgeben klappt nicht."

Wenn ich es aber per handshake (busy, paper out) machen möchte bin ich 
nicht sicher - ist es ganz "straightforward" einfach nur die Abfrage 
jener Status-Pins oder steckt da mehr dahinter? Hab leider bisher noch 
nix gefunden wo die Status- und Controlregister der parallelen 
Schnittstelle wirklich verständlich beschrieben werden.

Vielen Dank im Voraus für Antworten!

von Karl H. (kbuchegg)


Lesenswert?

Micha schrieb:
> ich möchte mit einem Atmega (z.B. Atmega88 weil ich davon einige in der
> Bastelkiste hab) einen einfachen Thermodrucker ansteuern. Ohne viel
> Klimbim, nur Zeichensatz und Zeilenschaltung.
>
> Habe hier im Forum bereits einen Thread gefunden mit Code-Beispielen wie
> man das auf die ganz einfache Art machen kann (mit delays):
> Beitrag "Mit dem ATmega8 Text auf einen Drucker ausgeben klappt nicht."
>
> Wenn ich es aber per handshake (busy, paper out) machen möchte bin ich
> nicht sicher - ist es ganz "straightforward" einfach nur die Abfrage
> jener Status-Pins oder steckt da mehr dahinter?

No. Da steckt nicht mehr dahinter.

busy abfragen, und nur wenn nicht busy:
  8 Datenbits an die Datenleitung anlegen.
  Strobe Puls nachschieben.

> Hab leider bisher noch
> nix gefunden wo die Status- und Controlregister

Da gibts auch keine Status oder Controlregister.
Das sind einfach nur ein paar Leitungen. Denk dir die einfachst mögliche 
Vorgehensweise die dir mit 8 Datenleitungen, Strobe und Busy Leitung 
einfallen aus und du hast es.

von MaWin (Gast)


Lesenswert?

> einen einfachen Thermodrucker

Ja welchen denn ?

(isses denn so schwer vernünftige Fragen zu stellen ?)

Die ganz einfachen haben ja eher keine Elektronik.

von Micha (Gast)


Lesenswert?

einen celectronic card star. Der versteht ASCII, mehr will ich auch 
garnicht: darstellbare Zeichen und Zeilenvorschub. Dachte ich hätte das 
im ersten Beitrag verständlich ausgedrückt.

von Karl H. (kbuchegg)


Lesenswert?

Micha schrieb:
> einen celectronic card star. Der versteht ASCII, mehr will ich auch
> garnicht: darstellbare Zeichen und Zeilenvorschub. Dachte ich hätte das
> im ersten Beitrag verständlich ausgedrückt.

Jein.
Dachte ich auch. Aber MaWin hat mich auch zum Nachdenken angeregt. Wer 
benutzt schon einen Mega88 um einen Drucker anzusteuern, nur weil er 
einen Haufen Mega88 in der Schublade hat? :-)

Deine Frage kann man auf 2 Arten lesen
* Ich hab einen Drucker, der prinizpiell funktioniert und der soweit
  vollständig ist, dass man ihm was schickt und er druckt es dann
* Ich hab ein nacktes Druckwerk und möchte mit dem Mega88 eine
  Steuerung des Druckerwerks machen, so dass man ihn an einen PC
  anschliessen kann.

von oszi40 (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Da steckt nicht mehr dahinter.

http://de.wikipedia.org/wiki/IEEE_1284

Bidirektionale oder unidirektionale Ansteuerung? Die Ausgabe sollte zum 
Drucker passen und die richtigen Steuerbefehle kennen.

von MaWin (Gast)


Lesenswert?

> celectronic card star

Na der ist einfach.
ASCI an CD..D7, STB takten, Wartezeit abwarten.
Dazu kann man eine langdauernde Zeitschleife nehmen,
oder ACK auswerten

von amateur (Gast)


Lesenswert?

Irgendwo in den Tiefen der "Application Notes" von Atmel gibts einen 
Treiber für den "EPP PARALLEL PORT".
Ein weiteres Stichwort währe: "Centronics".

von Micha (Gast)


Angehängte Dateien:

Lesenswert?

Soll noch mal einer sagen das Thema "Drucker ansteuern" sei trivial ;)

Codemäßig stellt sich das Problem tatsächlich einfach dar. Hatte hier im 
Forum aus einigen diesbezüglichen Threads schnell ein kleines 
Testprogrämmchen zusammengeschustert. Dann hab ich mir ein paar 
Breadboard-Drähte an eine D-Sub 25 Buchse gelötet und los konnte es 
gehen mit dem experimentieren (siehe Foto). Allerdings kam dann zum 
Drucker nur unreproduzierbarer Müll raus. Ich hab dann alles mögliche 
probiert, mit der Zeitkonstante für Strobe experimentiert, lange Delays 
überall dazwischen gesetzt.. nix. Immer wieder wirrer Zeichensalat am 
Drucker. Welche Signale low-aktiv sind hatte ich dann auch schon 
hundertmal nachgeguckt.
Schliesslich hab ich vor lauter Verzweiflung irgendwann mal den 100uF 
Elko vom Breadboard abgezogen, der gleich hinter der Stromversorgung 
steckte - und plötzlich funktioniert der ganze Zirkus tadellos!

von Fiete (Gast)


Lesenswert?

Micha schrieb:
> Soll noch mal einer sagen das Thema "Drucker ansteuern" sei trivial ;)

Ich bekomme Appetit auf Erdbeeren...

von Micha (Gast)


Lesenswert?

Hihi :)
Aber im Ernst: es war wohl ein müder Breadboard-Kontakt. Jemand hat mir 
inzwischen den klugen Rat gegeben, es mal mit einem anderen Elko zu 
probieren: funktionierte astrein. Danach wieder das erste Exemplar 
eingesteckt - wieder wirrer Zeichensalat. Und dann hab ich mal bisschen 
an den Beinchen vom "Problem-Elko" herumgebogen und den wieder in das 
Breadboard gesteckt - und seitdem funktioniert es mit diesem Elko auch 
wie es soll. War also wohl ein Wackler im Breadboard-Aufbau. Ich hatte 
der Breadboard-Bastelei bisher bedingungslos vertraut da ich sowas noch 
nicht erlebt hatte...

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.