Hallo, ich stelle mir folgendes vor: USB zu Parallel - Umsetzer. Ich stecke eine µC-Schaltung mit FTDI (USB) an einen USB-Port des PCs an. Dieser erkennt das ganze als virtuellen Parallelport (Programme sollen diesen auch als Parallelport nutzen können). Wenn nun das Programm eine Pegelkombination am LPT setzt, wird diese in einer Variable zwischengespeichert. Diese Variable wird zyklisch über USB an den µC gesendet, welcher dann das ganze "quasi-parallel" ausgibt. Mir ist bekannt, dass man hier natürlich mit gewissen Latenzzeiten klarkommen muss. folgendes Wissen ist vorhanden: gute E-Technik Kenntnisse (Student), besonders µC und FPGA/CPLD, Signalverarbeitung analog und digital (DSP), ausbaufähige Kenntnisse in C/C++, auch Win32API. Wie leicht/schwer ist es, so etwas zu realisieren? Gibt es evtl. viele Funktionen schon fertig? Natürlich kann man alles lernen wenn man möchte, aber ginge das auch in akzeptabler Zeit? Oder soll ich es besser gar nicht erst versuchen? Das ganze wäre nur ein kleiner Teil (etwa 1/6) meiner Diplomarbeit, d.h. der Zeitfaktor spielt auch irgendwie eine gewisse Rolle. mfg Michael PS: beispielsweise gibt es ja für den STM32 bereits eine fertige Virtual-COM-Port-Umgebung. Vielleicht kann man damit was anfangen?
Je nach dem was tatsächlich umgesetzt werden soll geht es 1. ohne virtuellen Parallelport, da die FTDIs von Haus aus einen BitBang-Modus unterstützen, der die Anforderungen erfüllt http://www.ftdichip.com/Support/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf 2. mit virtuellem Parallelport, je nach Anforderungen, gar nicht, da zum einen die Spezifikation des Protokolls von FTDI nicht (vollständig?) offen gelegt ist (Rest siehe Linux-Kerneltreiber), zum anderen dann ein Windows-Kernelmode-Treiber inkl. Signierung, falls x64 unterstützt werden muss, erstellt werden muss. 3. mit virtuellem Parallelport, falls z.B. kein FTDI, sondern z.B. was von Cypress genommen wird siehe http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/
Die BitBang-Sache hört sich interessant an. Doch das Problem dabei ist weiterhin, wie ein Programm, dass für LPT ausgelegt ist, mit dem FTDI Treiber kommunizieren kann. Wenn das noch irgendwie ginge, wäre es wohl lösbar.
Michael K. schrieb: > Doch das Problem dabei ist > weiterhin, wie ein Programm, dass für LPT ausgelegt ist, mit dem FTDI > Treiber kommunizieren kann. Wenn das noch irgendwie ginge, wäre es wohl > lösbar. Eine gute Anlaufstelle dafür ist der von Henrik Haftmann geschriebene Treiber, der per I/O-Traps die I/O-Zugriffe auf die Hardware-IO-Adressen der PC-Druckerschnittstelle abfängt und auf entsprechende Befehle umsetzt, die an den per USB angebundenen Controller gesendet werden. Das hat Henrik auf seiner Seite recht anständig dokumentiert. Mir scheint, daß Henrik schon einen Großteil dessen erreicht hat, was Du erzielen möchtest, und daher dürfte seine Arbeit einen guten Ausgangspunkt für weiteres darstellen. Allerdings müsstest Du dann auf den FTDI-Controller verzichten, aber was sollte dabei das Problem sein?
Hallo, das hört sich sehr interessant an. Ich habe auf der Homepage das Projekt "SPE" gefunden, welches allerdings genau das Gegenteil macht (seriell zu parallel). Meintest Du das? mfg Michael
Nein, ich meine das bereits von "Arc Net" in diesem Thread verlinkte Projekt USB2LPT: http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/
D.h. ich baue das Teil nach, schließe es an, stelle ganz normal den LPT in der Software ein und das ganze Problem ist damit erledigt? Das wäre natürlich was ;)
Genau. Bei vielen Programmen klappt das dann. Leider nicht bei allen, und offenbar leider nur bis Windows XP. Den LPT-Debugger für den MSP430 hab ich damit leider nicht zum Laufen bekommen....
Lt der FAQ funktioniert er sogar in Windows 7. Ich werd ihn einfach mal aufbauen und testen, die Kosten dafür sind jetzt nicht so gigantisch ;) mfg
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.