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
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....