Thema: Delphi USB Programmieren

Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#9

AW: USB Programmieren

  Alt 4. Dez 2013, 21:36
Wenn der USB-Stick intern einen FT232 hat, kannst du ihn in Delphi mit jeder Seriell-Komponente ansprechen (oder sogar, wenn du es auf die "harte Tour" willst, eine eigene RS232-Komponente mit Windows- / Delphi-Boardmitteln schreiben ).

Von FTDI gibt es für den FT232 einen generischen COM-Treiber, nach der Installation hast du einen neuen seriellen Port in deinem System, den du z.B. über Async Pro o.Ä. in Delphi ansprechen kannst.

Der Treiber von FTDI ist im übrigen, wie auch der Chip selbst, ziemlich gut.
Die FT232-basierten Adapter haben im Treiber viel mehr Einstellmöglichkeiten als die meisten billig-USB-zu-RS232-Adapter und der Chip hält sich an die USB- und RS232-Spezifikationen, was viele Adapter nicht tun.

Der bei dir verbaute FT232R hat übrigens noch zwei nette Features, die die anderen FT232-varianten nicht haben:
- Du kannst den Takt des internen Oszillators nach außen führen und damit externe Peripherie wie z.B. eine MCU takten, ohne dass sie selbst einen eigenen Quartzoszi braucht.
- Der Chip hat intern eine festgebrannte, nicht veränderbare ID / Seriennummer, die man auslesen kann, so dass du mit deiner Software einen Chip identifizieren und ihn z.B. als Hardware-Dongle nutzen kannst. Damit ist wohl auch das "USB-Dongle" Experiment aus dem Kasten realisiert. Allerdings geschieht das Auslesen der Chip-ID nicht über einen Befehl an die serielle Schnittstelle (wäre auch irgendwie sinnlos, da man es leicht emulieren könnte), sondern über eine eigene FTDI-DLL, deren Export Functions Header aber auch auf der FTDI-Seite als Delphi-Code vorliegt.

Mit USB-Programmierung an sich hat das Alles allerdings gar nichts zu tun, da man im Endeffekt mit der Software nur einen seriellen COM-Port mit RS232 oder RS485 ansteuert, sich um das komplizierte USB-Protokoll jedoch überhaupt nicht kümmert. (und folgedessen auch nichts über USB lernt)

So einen FT232-basierten Adapter kann man sich im übrigen auch ziemlich leicht selbst zusammenlöten, den Chip bekommst du bei jedem größeren Elektronik-Bauteilladen und als externe Peripherie brauchst du nur die beiden Buchsen, ein paar Widerstände und Kondensatoren.
Man muss nur aufpassen, dass man sich nicht die BGA-Variante kauft, denn die kann man dann doch schlecht daheim löten, ausser man hat ne alte Friteuse

P.S.
Zitat:
Als ich damals 11 oder 12 war, hatte ich von meinem Vater den Kosmos 3000 bekommen
Haaa, den hatte ich damals auch. Allerdings sah der Kosmos-Baukasten von mir irgendwie doch etwas anders aus damals, etwas größer, orange und mit einem transparenten Deckel wie manche Plattenspieler. Weisst du zufällig, was das für ein Modell war?
Das Teil fand ich damals faszinierend und ich hatte höllischen Respekt vor den großen Transistoren.
(von denen ich nun ja weiss, dass es Pfennigartikel sind, die im Kosmos nur auf riesige Leiterplatten gelötet wurden, damit man sie besser stecken kann )
Der Phototransistor war auch ned schlecht...

Geändert von blackfin ( 5. Dez 2013 um 01:09 Uhr)
  Mit Zitat antworten Zitat