Forum: Mikrocontroller und Digitale Elektronik In Datei Druckn und diese auf der Arbeit vom AVR auf Drucker


von Thomas (kosmos)


Lesenswert?

Ich würde gerne mit dem gleichen Drucktreiber wie auf der Arbeit in eine 
Datei drucken und das ganze dann auf der Arbeit ohne Laptop an einen 
Parallelport-Drucker schicken.

Kann mir vielleicht jemand kurz was zur Übermittlung sagen. Also was 
muss ich nach anlegen der ersten 8bits machen ACK oder Strobe antakten 
und dann warscheinlich auf Busy warten. Da die Druckdaten ja schon 
aufbereitet sind. Müsste ich Sie nur zum Drucker bekommen, speichern 
könnte ich sie in ein EEPROM.

Der IEEE1284 Beitrag im Wikipedia scheint kastriert worden zu sein da 
ist nur noch die Pinbelegung aufgeführt.

von Karl H. (kbuchegg)


Lesenswert?

> IEEE1284 Beitrag im Wikipedia

Wikipedia ist ja nicht die einzige Quelle.
Als Stichwort für Google würde ich mal
"Centronics" benutzen.

von Karl H. (kbuchegg)


Lesenswert?

Thomas O. wrote:
>
> Der IEEE1284 Beitrag im Wikipedia scheint kastriert worden zu sein da
> ist nur noch die Pinbelegung aufgeführt.

Wovon sprichst du?
http://de.wikipedia.org/wiki/IEEE_1284#Technische_Beschreibung_IEEE_1284_Schnittstelle

einwandfrei

von Michael U. (Gast)


Lesenswert?

Hallo,

vergiß alle Parallelportprotokolle außer Standard...

Busy abfragen
Wenn Drucker frei -> daten ran, Strobe-Impuls.

Kurze Pause und wieder zur Busy-Abfrage.

Damit kommen alle mir bekannten Paralleportdrucker klar.

Das Verhalten zwischen ACK und Busy ist dagegen etwas unsicher, Epson 
hat es anders implemetiert als IBM und mangels Unterlagen weiß man heute 
meist nicht mehr, was der Drucker will...

Auf Busy testen klappt immer, Die Zeiten beachten, ist alles ziemlich 
lahm für einen AVR, nach dem senden von Strobe evtl. etwas warten, bis 
man Busy wieder testet.
1
;******************************** Sub-Parallel *****************************
2
; Sub: Sendet 256 Byte an Parallel-Port aus MINI_BUF ab aktueller Card-Adresse
3
; Parameter:   -
4
; Return:      - 
5
; Scratch-Reg: -
6
;***************************************************************************
7
par_write_data:
8
        sbrc    FLAGS,F_LASTBLOCK           ; alles schon gesendet?
9
    ret                                 ; ja 
10
     
11
        ldi     ZL,low(MINI_BUF)
12
    ldi     ZH,high(MINI_BUF)           ; Zeiger auf Sendepuffer 
13
        clr     COUNTER_1
14
             
15
par_byte_loop:
16
        ld      TEMP_A,Z+                   ; Byte holen     
17
18
par_busy0:
19
        sbic    PAR_C_PIN,PAR_BUSY          ; auf bereit warten (Busy = 0)
20
    rjmp    par_busy0
21
    out     PAR_D_PORT,TEMP_A           ; Byte raus
22
    cbi     PAR_C_PORT,PAR_STB          ; Strobe aktiv
23
    ldi     COUNTER_2,STB_TIME
24
par_stb0:
25
        dec     COUNTER_2                   ; Länge Strobe-Impuls
26
    brne    par_stb0                           
27
28
        sbi     PAR_C_PORT,PAR_STB          ; Strobe wieder inaktiv
29
30
        ldi     TEMP_B,1
31
    clr     TEMP_A
32
    sub     DAT_LEN0,TEMP_B             ; Länge - 1
33
    sbc     DAT_LEN1,TEMP_A
34
    sbc     DAT_LEN2,TEMP_A
35
    sbc     DAT_LEN3,TEMP_A
36
        brcc    par_byte_loop_1 
37
        sbr     FLAGS,(1<<F_LASTBLOCK)      ; letzter Block
38
        ret
39
40
par_byte_loop_1:      
41
        dec     COUNTER_1
42
    brne    par_byte_loop   
43
    
44
        ret

Source ist aus einer Druckertest-Geschichte von mir, wurde statt Drucker 
an den Rechner gesteckt und "drauf gedruckt", konnte max. 16 Dateien 
speichern. Dann an den Drucker stecken, Dateinummer auswählen und Taste 
drücken. 2 oder 3 von den Schachteln sind wohl sogar noch im Einsatz.

Gruß aus Berlin
Michael

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn ein Drucker auf Arbeit steht, gibt es doch auch einen PC da dran?

Zuhause den Treiber installieren, als Ausgabe File einstellen.

Datei irgendwie nach Arbeit tragen,
DOS-Eingabe öffnen und
copy /B dateiname LPT1

/B (binär) ist wichtig, sonst kann es die Steuerzeichen versauen

das wars.

Gruß aus Berlin
Michael

von STK500-Besitzer (Gast)


Lesenswert?

Man könnte natürlich auch die Sachen als PDF "ausdrucken" (www.shbox.de) 
und dann per USB-Stick o.dergl. in die Firma tragen. Damit wäre man 
ziemlich treiberunabhängig.
Ob ein AVR überhaupt die Datenmenge verträgt, die bei einem Ausdruck 
zustandekommt (da ist nichts komprimiert, ausser man benutzt einen 
Postscript-Drucker), bezweifle ich mal recht stark. Sowas ging zu 
Zeiten, als man noch Endlospapier in Nadeldruckern verarbeitete...

von Thomas (kosmos)


Lesenswert?

Hallo,

danke scheint ja wirklich so einfach zu sein wie ichs mir gedacht habe.

Ich hatte heute früh diesen Link probiert 
http://de.wikipedia.org/wiki/IEEE_1284 und da war mehr oder weniger nur 
dieses Bild 
http://de.wikipedia.org/wiki/Bild:IEEE1284-PrinterCableAB_pinout.jpg zu 
sehen, jetzt scheint es wieder zu gehen.

Ohne Rechte kann man am dem Rechner nichts machen ist alles gesperrt. 
Ich könnte natürlich den Laptop mitnehmen, aber so eine kleine Schaltung 
mit einem 4er Akkublock-Block wäre doch um einiges handlicher, denka 
aber mal das die Datenmenge einen anderen Speicher benötigt ne kleine 
SD-Karte oder sowas in diese Richtung.

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.