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
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
@ 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
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
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
@ 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
:) Ist er im Schema3 Schon, aber hast recht der Strobe fehlt :) Mfg Elias
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
@ 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
@ Elias B. (bouni) >Nö. >:) >Sondern ?? Arrrrr! Falsch zitiert. Eher so. >Brauch ich sonst noch was ?? Nö. MfG Falk
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
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
@ 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
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
@ 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
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
@ Elias B. (bouni)
>Wo kommt der 100nF ran ?? VCC ??
Ja, Vcc/GND.
MFg
Falk
Hi @ all, Ist das so eine Ferritperle ?? http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B512;GROUPID=3179;ARTICLE=1103;START=0;SORT=artnr;OFFSET=16;SID=27ko9RtawQARsAAFamF9w3ee25cc160105ebd816e145211c48ab3 Reichelt: 06H-75 Mfg Elias
@ 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
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...
Wäre es nicht einfacher wenn der PC die Daten gleich parallel entgegennimmt? ECP/EPP-Druckerports gibt es ja schon ewig.
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...
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
Und, kannste doch machen. Der FT2232 hat 2 Ports. Einen kannste als Datenport verwenden, den anderen für deine Steuersignale...
@ 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
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
@ 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
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
@ 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
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
@ 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
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
Ich würde sicherheitshalber den ACK auch noch bedienen. Kostet dir nichts und 'sicher ist sicher'.
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
@ 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
Ok Ich seh das ganze schon vor meinem geistigen Auge laufen ^^ Mfg Elias
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
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
@ 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
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
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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.