PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drucker mit ESC/P2 ansteuern



Mehto
25.06.2005, 16:23
Ich habe vor mit einem Atmega einen Epson Drucker mit ESC/P2 anzusteuern.

Leider fehlen mir noch die nötigen Informationen.

Kennt vieleicht jemand eine gute seite über ESC/P2 ?

Kontaktbellegung der Paralelen Schnittstelle habe ich schon aus dem Handbuch entnehmen können, wer die also brauchen sollte, einfach mailen.

Mir fehlen noch ein paar Informationen wie ich die Daten über die 8 Bit Leitung rüber bekomme und die Bits richtig setze.

Ich möchte natürlich nur Zeichen aufs Papier brigen, keine Grafiken.
Und natürlich Druckbefehle senden können.

Sollten die Anschlusse vom Atmega 8 nicht reichen werde ich wohl die Serielle Schnitstelle vom Drucker benutzen müssen.
(Die Parallele hat 36 wovon aber ja nicht alle an die Pins vom Atmega müssen.)

Ich hab bei Google auch schon gründlich gesucht konnte aber leider nichts finden.

linux_80
25.06.2005, 16:55
Hallo,

in sachen ESC/P2 guckst Du hier :
http://support.epson.ru/products/manuals/000350/part1.pdf
\:D/

ich hab auch so ein altes Epson-teil rumstehen, find aber grad ned was das für eine serielle Schnittstelle sein soll, ist für'n MAC.
Was hat MAC bei Seriellem Drucker für eine Schnittstelle, schaut fast so aus wie PS/2 oder s-video ? :-k

Was hast Du genau für einen Drucker ?

Mehto
25.06.2005, 17:11
Hallo,
danke für den Link.
Die Serielle Schnittstelle ist für den Mac die auf RS-423 basierd mit ienem Mini-DIN 8 Steckverbinder.

Meine Fage ist jetzt eigentlich nur wie es möglich ist einen Text zu drucken?
Daher, was für Daten oder Bitfolgen ich senden muss damit der Drucker einfach nur ein "a" Druckt?

Mein zweites wichtege Problem ist wie ich Druckbefehle (erst mal mit dem PC) an den Drucker senden kann? Geht das mit Windos oder brauche ich ein Programm?
Konnte leider bis jetzt kein Programm bei Google finden. :-(

Danke für deine Hilfe!

Mehto
25.06.2005, 17:20
Ach, vergessen:

Drucker habe ich verschiedene rumstehen ( Epson 1520, Photo 790 und Pro 5000) würde mich aber gerne mehr auf den 1520 konzentrieren.

linux_80
25.06.2005, 17:25
IIRC sendet man einfach die Zeichen die mal auf Papier haben will,
und zum Schluss ein FormFeed das dürfte char 12 sein, damit das Blatt dann rauskommt.

Mehto
25.06.2005, 17:40
Jetzt sollte man nur wissen was IIRC ist...?

linux_80
25.06.2005, 18:27
IIRC -> If I Remember Correctly
soll heissen: wenn ich noch nicht ganz deppert bin und mein Biologischer Cache das richtige von sich gegeben hat :-)
ich wollte einfach nur Zeichen sparen zu tippen ;-)

Das hab ich gelernt, als man sich noch per Modem in diverse Mailboxen eingewählt hat um Infos auszutauschen, da war man froh wenn alle Zeichern heil angekommen sind, und es nicht allzuviele waren. Zum Glück kam dann TCPIP [-o<
TCPIP -> Internet ;-)

recycle
25.06.2005, 21:04
Mein zweites wichtege Problem ist wie ich Druckbefehle (erst mal mit dem PC) an den Drucker senden kann? Geht das mit Windos oder brauche ich ein Programm?


Vor gaaanz langer Zeit unter DOS funktionierte das unter anderem mal mal mit:

echo blabababa > lpt1
bzw.
echo blabababa > com1
wenn der Drucher an der seriellen Schnittstelle hängt.

Eine andere Variante war:

copy con lpt1
bzw.
copy con com1
wenn der Drucher an der seriellen Schnittstelle hängt.

Anschliessend den zu druckenden Text eingeben und Strg+Z wenn fertig.

Könnte beides in einer DOS-Box unter Windows immer noch funktionieren.

linux_80
25.06.2005, 21:27
Vor gaaanz langer Zeit unter DOS funktionierte das unter anderem mal mal mit:
Es sollte ja aber mit einem Mega8 realisiert werden!

Da muss man entweder eine parallele Schnittstelle nachbauen, da bleiben dann aber nicht mehr viele Ports frei für was anderes,
oder man versucht die serielle hinzukriegen, ist aber keine RS232 wie wir inzwischen wissen!

@Mehto,
von den 36 Pins die Du oben genannt hast, können max. 25 verwendet werden, weil ein PC hier nicht mehr Pins hat.
von den 25 Pins sind 8 auf GND.
hab hier noch eine schönes Bild gefunden:
http://www.doc.ic.ac.uk/~ih/doc/par/
und hier steht wie die Pins zusammengehören sollen:
http://www.luberth.com/cstep/parallel.htm

Mehto
25.06.2005, 21:48
Hey danke!
das mit dem IIRC las ich mal lieber.
Unter Dos Druckt es mir leider die Befehle nur aus anstatt sie auszuführen.
Das Klappt aber nur bein Epson 1520 der schon ein bischen älter ist (1997)
beim Epson 790 blinkt nur das Lämpchen und sonst nichts.

Die Befehle wollte ich erst einmal mit dem PC realisieren da dies ja selbst mit Win nicht so ohne weiteres klappt.

Die Pinbelegung vom Drucker ist hier ab Seite 256 abgebildet.
http://www.epson.co.uk/support/manuals/pdf/Inkjet/Stylus_Color_1520_User_Guide.pdf

Ich denk das der Platz für Parallel nicht reicht, leider hat halt nur der 1520 einen Seriellen anschluss.

Kennt jemand vileicht ein ähnliches Projekt wo ich mir ein paar Infos holen könnte?


Das ganze soll nacher da sein um Daten schnell und einfach auf Paipier bringen zu können. Soltte später dann auch die Reinigunsfunktion aktivieren können.

Danke fürs helfen.

linux_80
25.06.2005, 22:34
Es kann sein das hier noch was umgewandelt wird, vor allem bei Zeichen < chr(32),
Am besten die 2. Methode von recycle verwenden, vorher das zu druckende in einen Datei, dann mit copy datei.dat LPT1
Evtl. mit einem Hexeditor die Datei erstellen, damit auch alle Codes passen, denn die ESC-Codes kann man nicht per Tastatur eingeben.

Mehto
25.06.2005, 22:37
Stimmt hast recht, wenn ich die Zahlen so eingebe it es ja ASCII

Werde morgen mal ausprobieren obs klappt.

Trabukh
25.06.2005, 23:29
Hmm, ich hätte noch eine Idee... Bei Windows kann man beim Drucken einen Haken vor "Ausgabe in Datei umleiten" oder so machen... Anschließend kommt der Text raus, den der Drucker normalerweise braucht, der kann dann z.b. wie oben beschrieben mit "copy druck1.prn lpt1" gesendet werden. Eventuell könnte man mit einem einfach "a" anfangen und gucken, wie so eine Datei aussieht...

Gruß vom Klugscheißer Trabukh ;-)

EDIT: Vorraussetzung ist natürlich der richtige Druckertreiber! :-) (Hab's selbst schon mal falsch gemacht, daher...)

Mehto
26.06.2005, 00:42
Hallo,
habs gemach kommt aber mit dem Notepad nur unleserliche Ziffer raus, werd mir das ganze mal mit einem Hex Editor anschauen.
Kennt jemand vieleicht gerdade einen guten?

Ich nehme dann an das ich genau diese hex zahlen nacheinander an die 8 Pins anlegen muss.

Das mit den Befehlen mit Win müste dann auch klappen.
Danke!

linux_80
26.06.2005, 00:59
beim drucken unter Win aufpassen, denn Win druckt standardmässig nur im Grafikmodus, da wird man nicht viel brauchbares finden,
wenn man den Druckertreiber umstellen kann auf Textmodus, könnte es gehen, weiss nicht ob das noch geht, ging früher mal vom Notapad aus.

recycle
26.06.2005, 01:12
Das Klappt aber nur bein Epson 1520 der schon ein bischen älter ist (1997)
beim Epson 790 blinkt nur das Lämpchen und sonst nichts.


Kann gut sein, dass das bei "neueren" Druckern nicht mehr klappt.
Früher hatten Drucker ein eigenes Betriebssystem, eigene interne Fonts, Zeichensätze usw.
Da konnte man dann Schriftart, Schriftgrösse usw. entweder über Escape-Sequenzen festlegen oder über Schalter am Drucker direkt einstellen und dann einfach ASCII Zeichen an den Drucker senden.
Mit Windows kamen dann aber irgendwann die GDI Drucker (ich glaube jedenfalls, dass die so heissen).
Die haben jedenfalls keine eigene "Intelligenz" mehr und können mit ASCII Zeichen usw. nichts mehr anfangen. Bei einem GDI Drucker muss der PC, bzw der Druckertreiber dem Drucker sagen wo er seine Punkte setzen soll, der Drucker selber kann gar nicht mehr unterscheiden ob er es mit einem Text oder einem Bild zu tun hat.
Deswegen kommt bei den meisten Druckern heute auch absoluter Schrott raus, wenn man einen falschen Druckertreiber verwendet. Früher kam dann meist noch der richtige Text und nur die Schriftart, Formatierung usw. war falsch.

So einen GDI Drucker mit einem ATMega anzusteuern dürfte relativ schwierig sein, weil der ATMega dann die Aufgabe des Druckertreibers übernehmen muss.

Bei teureren Postscript-Druckern müsste es eigentlich noch funktioneren, wenn man einach Ascii-Zeichen sendet.

Zum Thema GDI Drucker findet man im Netz aber bestimmt auch genauere Infos.



Am besten die 2. Methode von recycle verwenden, vorher das zu druckende in einen Datei, dann mit copy datei.dat LPT1
copy con lpt1 bedeutet übrigens "Kopiere von der Console (Tastatur) zum Anschluss LPT1". Also ohne Umweg über eine Datei.

Mehto
26.06.2005, 11:39
So, hab jetzt mal ein wenig herumprobiert.
Das mit dem Ausdruck in Datei war eine gute Idee, danke.

Ich hab jetz mal meinen alten Epson Nadeldrucker wieder in Betrieb genommen. Mit dem klappt das einwandfrei, einfach die gewünschte Hex Zahl an den Drucker senden und er spuckt sie aus. :-)

Das dürfte also kein Problem sein mit dem Mikrocontroller.
Ich muss jetzt nur schauen ob das mit der Parallelen Schnittstelle klapt.
Vieleicht klappt das ja mit der Seriellen Schnittstelle und einem MAX.
Werds mal ausproboieren. ( Obwohl, am Max ist das ja RS232 und am Drucker RS423 ?)

Mehto
27.06.2005, 10:58
ES FUNKTIONIERT!
Ich brauch jetzt gerade mal 9 Pins am Atmega und es funktioniert einwandfrei.

Sogar mit dem Epson 790 klappt das Ausdruckem mit dem Atmega.

Texte sind gar kein Problem sogar Garfik ist recht einfach möglich, man muss sich halt nur gut überlegen wo ein Punkt hin kommt und den Hex code dazu schreiben.

Wenn Interesse besteht kann ich eine kleine Anleitung dazu schreiben.

Pragrammcode ist im Anhang. (Für Atmega8 mit 1MHZ)

Die Datenübertragung ist bewust noch ein wenig langsammer als möglich da der Atmega mit nur neun Pins von Drucker nicht weiß ob der schon bereit für die nächsten Daten sind.
Ich werde aber den Programmcode noch verbessern damit der Atmega auch über den Drucker bescheid weiß was der gerade tut und ob dieser auch bereit ist. O:)

Mehto
23.07.2005, 20:29
Bin gerade dabei eine Anleitung und Einführung zum dem Thema" Mit dem µC Drucken" zu machen.

Wenn jemand noch spezielle Ideen oder anregungen zu dem Thema hat soll er sich melden.


P.s.: Nochmal vielen Dank für eure Hilfe, Informationen und Tips.

Mehto
23.07.2005, 20:54
P.s.: Vorläufige Ergebnisse gibt es hier unter Drucker ansteuern:
http://home.arcor.de/sven.lissel/homepage/index.html