Zusammenfassung zum USB-Buch
"Steuern und Messen mit USB - FT232BL, FT245BL und FT2232L"
Steuern und Messen mit USB Hard- und Softwareentwicklung
mit dem FT232B/R, FT245B/R und FT2232L/D fasst auf über 200
Seiten alles zusammen, was man als Elektroniker, Dozent oder
Entwickler zu diesem Thema wissen muss.
Mit zahlreichen Abbildungen, Stromlaufplänen und Programmiercode
in C bietet es praktische Unterstützung zur Realisierung
eigener Projekte. Anspruchsvoll und dennoch leicht verständlich,
wird dieses Buch jedem, der sich mit den USB-Controllern von FTDI
beschäftigen muss oder möchte, eine große Hilfe sein.
Themenschwerpunkte u.a.:
Anwendung VCP-Treiber, Maus und Digitalmultimeter
Aufbau USB-Controller allgemein und speziell
Anwendung D2XX-Treiber; Programmierbeispiele in C
ChipID und CBUS beim FT232R
Zwei Projekte: I2C-Bus mit Temperatursensor und WEB Applikation
Grundlagen USB
Die verwendete Software, Treiber, Dokumente wie Datenblätter,
Applicationsheets und die Quellcodes sind auf der beiliegenden CD
enthalten. Zusätzlich kann ein USB-Starterkit mit allen notwendigen
Bauteilen, Kabeln und dem USB-Modul PML2232 erworben
werden. Das umfangreiche Paket bietet alles zum sofortigen
praktischen Arbeiten.
Der Autor ist Diplom-Ingenieur für technische Informatik mit dem
Schwerpunkt Elektronik. Derzeit übt er mehrere freiberufliche
Tätigkeiten, u.a. als Dozent an der Siemens Technik-Akademie, in
Berlin aus. Außerdem ist er als freier Projektingenieur im Bereich
Netzwerke / CISCO tätig.
Vorwort 2. Auflage
Als ich im Dezember 2005 den Druck für die erste Auflage dieses Buches beauftragte, konnte ich nicht ahnen, dass FTDI eine neue Chipserie im Janaur 2006 herausbringt: Die USB-Controller FT232R bzw. FT245R. Dadurch hat sich sehr viel geändert, allem voran die Treiberinstallation, die (zum Glück) nun durch das Combined Driver Model, siehe Kapitel 2 und 5, erheblich vereinfacht wurde. Obwohl sich diese neuen Controllertypen bezüglich ihrer Funktion nicht wesentlich von denen der alten BL/BM-Serie unterscheiden, gab es immer wieder kleine Anfragen zu diesen neuen Controllern. Also machte ich mich ans Werk und habe, dort wo es notwendig war, Hinweise zu den Controllern der R-Serie und des neuen FT2232D eingefügt.
Desweiteren sind drei Beispielprogramme, zum Ansteuern des CBUS (nur FT232R) und Auslesen der ChipID, für die neuen Controller hinzugekommen. Einige Texte und Bilder wurden geändert, Fehler habe ich, soweit ich sie gesehen habe, bereinigt. Last but not least wurde auch die CD mit den aktuellen Softwarereleases und Treibern ergänzt.
Vielen Dank möchte ich denjenigen Lesern aussprechen, die mich auf Fehler der ersten Ausgabe aufmerksam machten.
Ich wünsche allen, die sich mit diesem Thema beschäftigen weiterhin viel Erfolg und Spaß beim Einsatz dieser USB-Controller.
Bernhard Redemann, Oktober 2007
Vorwort (1. Auflage)
Bevor diese Version des Buches zum Thema Steuern und Messen mit den USB-Controllern von Future Technology Devices International Ltd. (kurz FTDI) vorlag, beschäftigte ich mich lange Zeit mit dessen Aufbau, ohne konkret an Inhalte zu denken.
Oft habe ich Fachbücher in der Hand gehabt, die von ihrem Titel her viel versprachen, aber letztendlich so kompliziert geschrieben wurden, dass ich sie beiseite legte, verkaufte oder mir die notwendigen Informationen aus dem Internet zusammensuchte. Der Grund lag und liegt meiner Meinung nach oftmals an der völlig unzureichenden Strukturierung ohne einen gewissen roten Faden. Dies ist jedoch bei praktisch orientierten Themen wichtig, damit der Spaß daran nicht verloren geht. Zu viel Theorie wiederum wird langweilig, wenn nicht zwischendurch etwas Praktisches erklärt wird.
Ich selbst möchte die Theorie jedoch nicht außen vor lassen, sondern diese durch die Praxis besser verständlich machen; die Praxis auf der anderen Seite wiederum sollte Spaß machen.
So entstand der hier dargestellte Aufbau des Buches:
Praxis Theorie Praxis Theorie usw.
Im Gegensatz zu vielen Büchern, die mit theoretischen Grundlagen beginnen, wird hier im zweiten Teil auf USB-Grundlagen eingegangen allerdings nur so weit, wie es im ersten, praktischen Teil erforderlich ist. Man nähert sich also von einem praktischen System an die Theorie an, man spricht dann auch von System Approach.
Ob man mit dem ersten oder zweiten Teil des Buches beginnt sollte egal sein. Wer sich allerdings in die tiefen Theorien von USB einlesen will, wird hier enttäuscht. Dazu kann man im USB- Standard viele Dinge nachlesen oder sich eine entsprechend andere Literatur zulegen.
Dieses Buch behandelt also praktische Themen wie den Aufbau einer Experimentierplatine, die Installation eines C-Compilers und das Testen von kleinen Beispielprogrammen. Man sollte daher auch nicht vor einem Lötkolben zurückschrecken, wenn es darum geht, die Experimentierplatine zu löten und zu bestücken. Praxis bedeutet aber auch, immer wieder mal in den Datenblättern nachzuschauen.
Was die C-Kenntnisse angeht, kann ich beruhigen: Die Beispiele sind sehr einfach gehalten, gut kommentiert und nachvollziehbar. Allerdings hier noch ein Hinweis: Sicherlich ist es einfacher, die auf der CD vorhandenen Programme mal eben schnell aufzurufen, allerdings kann ich empfehlen, den kompletten Quellcode selber per Hand einzutippen und die Programme dann selber zu testen. Nur so ist gewährleistet, dass man die Aufgaben versteht, die Zusammenhänge begreift und damit in der Lage ist, eigene Ideen zu verwirklichen.
Die beiden Projekte (Temperatursensor mit I2C-Bus und Webanwendung) bieten die Möglichkeit, sich gut in andere Aufgabenstellungen einzuarbeiten, so z.B. in den JTAG- oder SPI- Bus. Dazu bietet FTDI sogar eigene Funktionen an.
Eine Anmerkung noch zu der Typenbezeichnung der USB-Controller von FTDI: Der Einfachheit halber werden die Typen FT232BM/ BL/BQ, FT245BM/BL/BQ und FT2232C/L als FT232, FT245 oder FT2232 bezeichnet. Auf die älteren Typen mit der Endung AM wird nicht eingegangen.
Für mich ist wichtig, dass die ersten Schritte in das Thema USB-Controller von FTDI für den Leser nicht zur Qual werden, sondern dass der Spaßfaktor an allererster Stelle steht und sich ein Erfolgserlebnis einstellt.
Sollte es jedoch dennoch einmal irgendwo klemmen oder falls hier Fehler zu finden sind, würde ich mich über jeden Hinweis in Form einer E-Mail freuen.
Ich hoffe, dass ihnen dieses Buch Inspiration und Motivation für eigene zukünftige Projekte bietet. Viel Spaß!
Bernhard Redemann
Inhaltsverzeichnis (2., erweiterte Auflage)
Teil 1
Kapitel 1 Theorie Worum es geht: PC USB Steuerung
Kurzer Überblick
Kapitel 2 - Praxis Vorbereitungen und der Einstieg mit dem VCP-Treiber
Hardware - Aufbau der Lochrasterplatine - Hinweise zum Löten - Prüfen der Lochrasterplatine - Funktionsblöcke - Auswahl der USB-Controller Module -
Stromlaufplan Lochrasterplatine - Stromlaufplan USB-Modul PML232-45R -
Stromlaufplan USB-Modul PML2232 - Hinweise zu den Drahtbrücken bei den Beispielen - Etwas Theorie - der VCP-Treiber - VCP-Treiber - Hinweise - VCP-Treiber beim FT232, FT245 und FT2232 - VCP-Treiber installieren (Windows) - Hinweise bei der Installation unter XP - Erster Test mit VCP-Treiber und serieller Maus -
Beispiel Digitalmultimeter mit RS232-Schnittstelle - Grundsätzliches zu den Beispielen - VCP-Treiber (Linux)
Kapitel 3 Theorie Etwas zu USB-Controllern
Allgemeines - Taktgeber/PLL - Transceiver - Serial Interface Engine (SIE) -
Protocol Engine - UART - Mikrocontroller - UART/FIFO-Controller - FIFO - Hinweis
Kapitel 5 Praxis D2XX-Treiber und Programmieren in C
Allgemeines -
Etwas Theorie: Der D2XX-Treiber (Windows) -
Combined Driver Model (CDM)-
Mprog Installation und Einstellungen -
Probleme beim Installieren des Treibers (Windows) -
D2XX-Treiber installieren (Linux) -
Installation des C-Compilers bloodshed (Windows) -
Anlegen von Projekten in bloodshed -
Hinweise zum gcc unter Linux -
Zu den Beispielcodes -
Kapitel 7 Praxis I2C Bus Temperaturmessung mit dem LM75A
Grundprinzip des I2C-Busses -
Der I2C-Bus und der LM75A -
Pointerregister -
Konfigurationsregister -
Übertemperatur- und Hystereseregister Tos und Thyst -
Temperaturregister Temp -
Anschluss des LM75A an den FT2232 -
Treiber, DLL und Compilereinstellungen -
Zusätzliche Compiler-Library -
Programmstruktur -
I2C_Prepare -
I2C_Read() -
Temp_out() -
Umrechnung Wertigkeit und Addition -
2er-Komplement Auflösung und Ausgabe in echten °C -
Zusatz: TOS- und Thyst-Register -
Kontroll-Byte der beiden Register -
Funktion I2C_Write -
Kapitel 8 Praxis Projekt: WEB-CGI Anwendung
Allgemeines -
CGI Allgemein -
CGI Kommunikation zum USB-Controller -
Voraussetzungen -
Common Gateway Interface mit C -
Webserver Apache Installation (Windows) -
Erstes C-Beispielprogramm für CGI -
Zweites C-Beispielprogramm für CGI -
C und Parameterübergabe -
CGI und Parameterübergabe -
Etwas HTML Formular, um CGI zu starten -
Hinweise zu Formularen -
Struktur des CGI-Programms Daten ausgeben -
Wichtiger Hinweis -
Erweiterung des CGI-Programms: D/A Wandler -
CGI-Programm Daten einlesen -
Anmerkungen und Hinweise -
Am Ende -
Kapitel 9 Praxis Betriebsarten und Verschiedenes
Das Tool MProg -
Installation -
PID und andere Descriptoren ändern -
Beispiel PID, Strom und Product String -
Self-powered und bus-powered Modus -
Beispiel self-powered beim FT245 -
CBUS-Funktion CLK in Mprog (nur FT232R) einstellen -
Teil 2
Kapitel 10 Theorie Grundlagen USB
Allgemeines und Standard -
Einführung -
Hardware, Stecker und Leitungen -
Unterschiede zur RS232-Schnittstelle -
Parameter und Eigenschaften -
Geschwindigkeitsidentifikation in USB 1.1 und 2.0 -
Low-, full- und high-speed bei USB 1.1 und 2.0 -
Begriffserklärungen: Host, Hub, Device, usw. -
Host -
USB-Hub -
Function -
Endpoints, Endpoint-/Tansfertypen -
Device -
Kommunikation downstream, upstream -
Descriptoren (engl.= (Eigenschafts-) Beschreiber) -
Bus-Enumeration (engl.=Aufzählung) -
USB On-The-Go (OTG) -
Kapitel 11 Theorie Fragen und Antworten
Hinweise zu den Fragen
Anhang
Abmessungen Modul PML2232 -
Beschaltungsmöglichkeit USB-Modul PML2232 -
Hinweise zu den Beschaltungsmöglichkeiten des PML2232 -
Beschaltungsmöglichkeiten USB-Modul PML232-45RL -
Quellen, Webseiten und Bücher -
Auf der CD -
Sonstiges