Forum: Mikrocontroller und Digitale Elektronik Daten für Drucker abfangen


von Elias B. (bouni)


Angehängte Dateien:

Lesenswert?

Hi @ all,

Ich hab vor mit einer kleinen Schaltung einen Drucker zu simulieren.

Die Schaltung soll einem Messstem das die Druckerdaten zu einem Uralten 
HP Thinkjet 2225C sendet (Parallel) die Daten ab nehmen und seriell an 
einen PC senden, der wiederum der Schaltung ein ACK Signal sendet 
nachdem er die Daten (8Bit) in ein File geschrieben hat. der µC in der 
schaltung soll dann die ACK BUSY und STROBE Leitungen der Parelellen 
Schnitstelle entsprechend schalten.

Meine Frage ist nun ob mein Schema grundsätzlich richtig ist.

Was für einen µC empfehlt ihr mir, was für einen Pegelwandler etc.

Vielen Dank im Voraus.

Elias

von Paul Baumann (Gast)


Lesenswert?

Das Schieberegister brauchst Du nicht unbedingt. Du kannst doch die 
Daten parallel über einen Port in den MC einlesen und seriell wieder 
herausschieben.

MfG paul

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Die Schaltung soll einem Messstem das die Druckerdaten zu einem Uralten
>HP Thinkjet 2225C sendet (Parallel) die Daten ab nehmen und seriell an

hatten wird das thema nicht gerade?

>einen PC senden, der wiederum der Schaltung ein ACK Signal sendet
>nachdem er die Daten (8Bit) in ein File geschrieben hat. der µC in der
>schaltung soll dann die ACK BUSY und STROBE Leitungen der Parelellen
>Schnitstelle entsprechend schalten.

Deinen PC nach JEDEM Zeichen ein ACK senden zu lassen ist Unsinn, das 
wird langsam wie Sau. RS232 in "echt" nimmt man heute nicht mehr, eher 
einen virtuellen COM-Port über USB. Dann kannst du sogar 3 Mbaud fahren.

>Meine Frage ist nun ob mein Schema grundsätzlich richtig ist.

Fast. Das Schieberegister ist völlig deplatziert. Ein kleiner uC (AVR 
tiny2313 oder so) reich völlig. der muss nur ein Byte parallel einlesen, 
in seinen UART schreiben und ACK zum Drucker senden. Der PC empfängt 
alles und schriebt es in eine Datei. Dazu braucht man kein grosse 
Handshake, USB ist schnell genug.

>Was für einen µC empfehlt ihr mir, was für einen Pegelwandler etc.

AVR, tiny2313 oder mega8. FTDI 232 RL

MfG
Falk

von Elias B. (bouni)


Lesenswert?

Danke erst mal für die Antworten,

Ja Ich hab schon mal n Thread gestartet aber da het keiner mehr 
zurückgeschrieben :)

Nicht desto Trotz:

"virtuellen COM-Port über USB" An was dachtest du da, an einen COM auf 
USB Adapter ??

Kann ich den Mit der PC Software bzw. Hyper Terminal ansprechen wie 
einen normalen Com Port ??

Hab mal den Editierten entwurf beigefügt.

http://bouni.owee.de/stuff/Schema2.jpg

Gruß und Danke für Alles :)


Elias

von Elias B. (bouni)


Lesenswert?

Oops :)

Habs grad geblickt mit dem Pegelwandler.

Also keinen Com - USB Adapter sondern den IC "FTDI 232 RL" und da dran 
direkt ein USB Kabel und auf dem PC den Virtuell USB Treiber :)


http://bouni.owee.de/stuff/Schema3.jpg

Gruß Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Hab mal den Editierten entwurf beigefügt.

Es fehlt noch dein STROBE vom Druckerport. Und der MAX232 ist ein 
FTDI232 RL ;-)

MfG
Falk

von Elias B. (bouni)


Lesenswert?

:)

Ist er im Schema3 Schon, aber hast recht der Strobe fehlt :)

Mfg Elias

von Elias B. (bouni)


Angehängte Dateien:

Lesenswert?

Ich komm mit dem Datenblatt nicht ganz zu streich,

PIN 20 VCC   -> Versorgungs spannung +5V vom USB !?
PIN 21 GND   -> Masse für die Versorgungs spannung vom USB

PIN 4 VCCIO  ->   ist das die spannung mit der die Signale an den UART 
des ATTIny gehen ??
PIN 7 GND    -> GND vom VCCIO

PIN 1 RXD -> zum UART
PIN 5 TXD -> zum UART

Brauch ich sonst noch was ??



Gruß Bouni

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>PIN 20 VCC   -> Versorgungs spannung +5V vom USB !?

Ja, siehe Figure 18 Seite 29

>PIN 21 GND   -> Masse für die Versorgungs spannung vom USB

>PIN 4 VCCIO  ->   ist das die spannung mit der die Signale an den UART
>des ATTIny gehen ??

Ja.

>PIN 1 RXD -> zum UART
>PIN 5 TXD -> zum UART

Nö.

MFG
Falk

von Elias B. (bouni)


Lesenswert?

Hi,

Nö.

:)

Sondern ??


Mfg Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Nö.

>:)

>Sondern ??

Arrrrr! Falsch zitiert. Eher so.

>Brauch ich sonst noch was ??

Nö.

MfG
Falk

von Elias B. (bouni)


Angehängte Dateien:

Lesenswert?

Also wars schon richtig ??

Hab mal die Bus Powerd Zeichnung angehängt.

Was ist dieser Ferite Bead ?? ein ringkern zm entstören nehm ich an.

Mfg Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Also wars schon richtig ??

Ja.

MfG
Falk

von Elias B. (bouni)


Lesenswert?

Ok,

Die Kondensatoren in dem letzten Bild, sind das normale Elkos ??
Gibt es da ne Faustregel bei der Auswahl der Kondensatoren welche man 
wofür nimmt?
Also Keramik, Tantal, Elko, Folien usw. ??


nun zum Attiny:

Ich hab gelesen das extern getaktet werden sollte wenn eine UART 
verbindung gemacht werden soll.

Hängt die spätere BAUD Rate vom Quarz Takt ab ??

Was für Kondensatoren nehm ich für den Quarz ??


Mfg Bouni

von Falk B. (falk)


Lesenswert?

@  Elias B. (bouni)

>Die Kondensatoren in dem letzten Bild, sind das normale Elkos ??

Nein. Die 100nF sind Keramik, der 4,7u kann ein Elko oder Tantal sein.

>Gibt es da ne Faustregel bei der Auswahl der Kondensatoren welche man
>wofür nimmt?
>Also Keramik, Tantal, Elko, Folien usw. ??

Ja. Die kleinen unter 1uF Keramik, darüber Tantal. Grösser als 200uF 
gibt es meist nur Elkos.

>Ich hab gelesen das extern getaktet werden sollte wenn eine UART
>verbindung gemacht werden soll.

Im Prinzip ja.

>Hängt die spätere BAUD Rate vom Quarz Takt ab ??

Und ob!

>Was für Kondensatoren nehm ich für den Quarz ??

Gar keine. Der FTDI kann einen 6 MHz Takt ausgeben, damit kannst du 
deinen AVR takten. Du musst ja keine Standardbaudraten nutzen. Bei 6 MHz 
erreichst du bis zu 750kBaud.

MfG
Falk

von Elias B. (bouni)


Lesenswert?

Ich hab mal einen Schaltplan in Target gemacht,

http://bouni.owee.de/stuff/Schema5.jpg

Ist das so ok ??

Die beschaltung vor dem FTDI hab ich aus dem Datenblatt und mal so 
interpretiert.

Was soll dieser "Ferrite Bead sein" ??

Welchen von den CBUS ich nehm für die 6Mhz ist egal oder ??

Mfg Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>http://bouni.owee.de/stuff/Schema5.jpg

>Ist das so ok ??

Fast.Schaltpläne sollten als PNG gespeichert werden. Warum, siehe 
Bildformate, das aber nur nebenbei.

>Die beschaltung vor dem FTDI hab ich aus dem Datenblatt und mal so
>interpretiert.

Du musst aber RXD und TXD kreuzen. RXD vom FTDI geht an TXD vom AVR.
Man sollte noch dem AVR 100nF spendieren.

>Was soll dieser "Ferrite Bead sein" ??

Eine kleine Ferritperle, quasi eine Induktivität, die aber besonders 
verlustbehalftet ist, um die HF-Energie zu schlucken.

>Welchen von den CBUS ich nehm für die 6Mhz ist egal oder ??

AFAIK ja.

Mfg
Falk

von Elias B. (bouni)


Lesenswert?

Danke Danke Danke,

An dieser Stelle meinen besten Dank FALK,

ohne dich wär das Projekt schon gestorben ^^

Wo kommt der 100nF ran ?? VCC ??

Mfg Elias

von Falk B. (falk)


Lesenswert?

@  Elias B. (bouni)

>Wo kommt der 100nF ran ?? VCC ??

Ja, Vcc/GND.

MFg
Falk

von Falk B. (falk)


Lesenswert?

Vergiss den ISP-Stecker für den AVR nicht.

MfG
Falk

von Elias B. (bouni)


Lesenswert?


von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Ist das so eine Ferritperle ??
>http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B512;...

Im Prinzip ja, aber die ist hier viel zu gross. Eher sowas.

http://www.reichelt.de/?;ACTION=3;ARTICLE=9006;
http://www.reichelt.de/?;ACTION=3;ARTICLE=18195;

MfG
Falk

von Εrnst B. (ernst)


Lesenswert?

Oder eine "echte" Ferrit-Perle, heissen bei Reichelt "Dämpfungsperlen", 
zu finden unter Passiv->Spulen->Ringkerne->Dämpfungsperlen.

Sind aber recht teuer dafür, dass es nur ein eck Ferrit mit nem Loch 
drinnen ist...

von Gast (Gast)


Lesenswert?

Wäre es nicht einfacher wenn der PC die Daten gleich parallel 
entgegennimmt? ECP/EPP-Druckerports gibt es ja schon ewig.

von Rupplyn (Gast)


Lesenswert?

Dafür brauchste doch nich mal nen µC. FT2232 im Bitbang-Mode asynchron 
reicht doch für die Aufgabe schon. Daten einlesen/ausgeben per D2XX von 
FTDI...

von Elias B. (bouni)


Lesenswert?

Hi,

Muss ich den dem Rechner nicht nach allen 8Bit die ich parallel bekomme
ein Ack Signal in definierter länge geben ??

Ich orientier mich grad an dem Bild:


http://www.goblack.de/desy/digitalt/par-schnittstelle/centronics/index.html


Mfg Bouni

von Rupplyn (Gast)


Lesenswert?

Und, kannste doch machen. Der FT2232 hat 2 Ports. Einen kannste als 
Datenport verwenden, den anderen für deine Steuersignale...

von Falk B. (falk)


Lesenswert?

@ Rupplyn (Gast)

>Und, kannste doch machen. Der FT2232 hat 2 Ports. Einen kannste als
>Datenport verwenden, den anderen für deine Steuersignale...

Im Prinzip ja, ABER

- mit AVR "vor Ort" wird das Ganze WESENLTICH schneller
- man braucht keinerlei spezielle Software, einfach nur die Daten mit 
einem beliebigen Terminalprogramm vom virtuellen COM-Port mitschneiden 
und fertig.

Der Tiny kostet 1,30 Euro, das ist es allemal wert.

MfG
Falk

von Bouni (Gast)


Lesenswert?

Hi:)

Muss ich denn nun nach jedem Byte auf dem Datenport ein Ack senden oder 
reicht es wenn ich den Ack Ausgang nach dem ersten Strobe auf dauer HIGH 
setze ??

Mfg Elias

von Falk B. (falk)


Lesenswert?

@  Bouni (Gast)

>Muss ich denn nun nach jedem Byte auf dem Datenport ein Ack senden oder

Ja klar.

>reicht es wenn ich den Ack Ausgang nach dem ersten Strobe auf dauer HIGH
>setze ??

Nein.

Siehe

http://www.beyondlogic.org/spp/parallel.htm

MfG
Falk

von Michael U. (amiga)


Lesenswert?

Hallo,

setze statt ACK Busy, alle mir bekannten Geräte kommen damit klar und 
das Timing ist sicherer. Es gab 2 Versionen, wann ACK kommen durfte, die 
nicht 100% kompatibel sind.

Mit der Folge Daten vom "PC" mit Strobe einlesen, dann sofort Busy 
setzen.
Wenn man die nächsten Daten haben will, Busy zurück und auf Strobe 
warten.

Gruß aus Berlin
Michael

von Falk B. (falk)


Lesenswert?

@  Michael U. (amiga)

>setze statt ACK Busy, alle mir bekannten Geräte kommen damit klar und
>das Timing ist sicherer. Es gab 2 Versionen, wann ACK kommen durfte, die
>nicht 100% kompatibel sind.

Hmm,ist wohl auch so im Link beschrieben. Aber wer ist denn so doof 
solchem Murks zusammenzubasteln? Da ist das EEP Handshake tausendmal 
solider!

Aber der AVR @12MHz wirds schon richten ;-)

MFG
Falk

von Elias B. (bouni)


Lesenswert?

Danke für die Antworten erstmal,

Ich versteh das jetzt so:

1. Ich bekomme 8Bit auf dem Parellel Port und direkt danach das strobe 
Signal vom PC.

2. Ich setze sofort Busy auf High.

3. Ich verarbeite die 8 Bit.

4. Ich setzte busy wieder auf Low und warte auf die nächsten 8Bit.

Hab ich das jetzt so richtig verstanden ?

Mfg aus dem sonnigen Baden

Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Hab ich das jetzt so richtig verstanden ?

Fast.

Auf Strobe=1 warten
Busy auf 1 setzen
Daten lesen und an den UART ausgeben
Busy auf 0 setzen

MfG
Falk


MFG
Falk

von Elias B. (bouni)


Lesenswert?

Ok,

jetzt blick sogar ich es :)

Ich denk das ich mir nachher noch das Material bestelle und euch 
demnächst wieder mit Fragen löchere :)


Mfg Elias

von Karl H. (kbuchegg)


Lesenswert?

Ich würde sicherheitshalber den ACK auch noch bedienen.
Kostet dir nichts und 'sicher ist sicher'.

von Elias B. (bouni)


Lesenswert?

Ok :)

Ich hoff ich pack das.

Wie sieht es denn mit den Zeiten aus,
in diesem Bild:
http://www.goblack.de/desy/digitalt/par-schnittstelle/centronics/zeitdiagr.gif

sind min und max Zeiten angegeben, wie kritisch ist die genaue 
einhaltung ??


Mfg Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>sind min und max Zeiten angegeben, wie kritisch ist die genaue
>einhaltung ??

Wenn dein AVR mit 12 MHz läuft ist ds alles kein Thema. Der macht dann 
12 Takte/Befehle pro us.

Mfg
Falk

von Elias B. (bouni)


Lesenswert?

Ok

Ich seh das ganze schon vor meinem geistigen Auge laufen ^^

Mfg Elias

von Michael U. (amiga)


Lesenswert?

Hallo,

hab gerade in meinen alten Sourcen geschaut: die kommenden Daten habe 
ich im IRQ INT1 geholt, dort hing Strobe vom Rechner dran.

Die vom Rechner "gedruckten" Daten wurden RAW auf eine MC-Card 
geschrieben und später vom AVR auf einen echten Drucker geschickt.

Busy wird in main zurückgesetzt, wenn es weitergehen durfte, alle 256 
Byte wurde auf die MC geschrieben, nach 2 solcher Blöcke der nächste 
Sektor adressiert.

Clock ist 8MHz.

Die IRQ bedient ACK:

;*********************************************************************
;  STB-IRQ
;  Holt Byte vom Par-Port nach PAR_BYTE
;*********************************************************************
1
irq_par_read:
2
        push    TEMP_A                      ; Temp retten
3
        in      TEMP_A,SREG                 ; Status-Register retten
4
        push    TEMP_A
5
        in      PAR_BYTE,PAR_D_PIN          ; Daten holen
6
        sbi     PAR_C_PORT,PAR_BUSY         ; auf nicht bereit setzen
7
8
irq_par_read_0:
9
        sbis    PAR_C_PIN,PAR_STB           ; auf Ende von Strobe warten
10
        rjmp    irq_par_read_0
11
        cbi     PAR_C_PORT,PAR_ACK          ; ACK senden
12
        sbr     FLAGS,(1<<F_PAR_BYTE)
13
        nop
14
        nop
15
        nop
16
        sbi     PAR_C_PORT,PAR_ACK
17
18
        pop     TEMP_A
19
        out     SREG,TEMP_A
20
        pop     TEMP_A
21
22
        reti

Gruß aus Berlin
Michael

von Elias B. (bouni)


Lesenswert?

Vielen Dank für den Code,

Ich wollte eigentlich in C programmieren, aber ist schon mal nicht 
schlecht um das Prinzip zu verstehen!!!

Mfg Elias

von Falk B. (falk)


Lesenswert?

@ Elias B. (bouni)

>Ich wollte eigentlich in C programmieren,

Mach das einfach, das Programm ist so einfach, das kann auch der 
C-Compiler nicht versauen.

> aber ist schon mal nicht
>schlecht um das Prinzip zu verstehen!!!

Aber Strobe würde ich nicht per ISR auswerten, sondern per Polling. Ist 
schneller und hier vollkommen auseichend.

MFg
Falk

von Falk B. (falk)


Lesenswert?

Wie ist denn der Stand bei dem Projekt?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Zur Zeit macht eine Firma für ihre Druck-Konverter viel Reklame:
http://www.ipcas.de/produkte/hardware.html
da kann man anscheinend z.B. auch von Centronics auf USB-Stick drucken

von Elias B. (bouni)


Lesenswert?

Hi,

Mein Thread zum Thema Laser Layout ist ein Teil Hiervon, damit will ich 
das Layout machen.

Die Teile Hierfür hab ich sch seit ein paar Tagen/ Wochen :)

Läuft also und ist nicht Tot!!!!


Mfg Bouni

von Falk B. (falk)


Lesenswert?

@ Christoph Kessler (Firma db1uq) (christoph_kessler)

>Zur Zeit macht eine Firma für ihre Druck-Konverter viel Reklame:
>http://www.ipcas.de/produkte/hardware.html
>da kann man anscheinend z.B. auch von Centronics auf USB-Stick drucken

Sieht ja recht schick aus. Dürfte aber nicht für paar Mark Fuffzig über 
den Ladentisch gehen. Bei dem Leistungsumfang und Industriequalität 
würde ich mal schätzen 300 Euro++
Ausserdem, kaufen kann doch jeder ;-)

MfG
Falk

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.