Ing.-Büro Bernhard Redemann
Elektronikbausätze und Bücher
Das Bessere ist der Feind des Guten (Voltaire, 1694-1778)

 Dienstleistungen
   Dienstl. u. Referenzen

 Bestellmöglichkeiten
   Im Online Shop

 Produkte / Bausätze
   Fόr Kids / Anfδnger
   ENC28J60 Modul
   USB-Produkte
   Bluetooth-Produkte
   HV-ISP-Progr. (Atmel)
   Stepper/TMC222 V3.0

 Shop-Angebote
    usbasp: 8,00 €
    AVR910-USB-Prog: 15,00 €
    TMC222 Modul: 16,00 €

 Artikel/Veröffentlichungen
   Leiterplattenlayout (1)
   Leiterplattenlayout (2)
   DMM mit Bluetooth

 Projekte
   Projekt: Netzteil

   Arduino Clone

   HV-Programmer/Atmel µC
   NE555 präparieren
   Weitere kleine Projekte

 Know How
   Löten / Lochraster
   Fritzing
   Eagle 3D
   DCF77 (Pollin)
   Messgerät (RS232-USB)

 News und Aktuelles
   31.01.2012:
   Univ. Lauflicht
   23.11.2011:
   ENC28J60 Modul
   30.05.2011:
   Lagerräumung!
   09.05.2011:
   All-in-one USB Prog
   07.03.2011:
   All-in-one USB Prog

 Politisches
   Gegen Fluglärm (BBI)

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 4 – Theorie   USB-Controller von FTDI
Allgemeines - Gemeinsamkeiten - Unterschiede - Interner Aufbau - Spannungsversorgung - LDO-Regulator - USB-Transceiver - USB-Transceiver beim FT232/245R - RESET-Generator - USB DPLL - Oszillator / 8-fach PLL - Serial Interface Engine (SIE) - Baudraten-Generator (nur FT232/2232) - USB Protocol Engine - UART/FIFO-Controller - EEPROM-Interface - UART - Hinweise - Blockschaltbild FT2232C/L/D - Blockschaltbild FT232BM/BL/BQ - Blockschaltbild FT232RL/RQ - Blockschaltbild FT245BM/BL/BQ - Blockschaltbild FT245RL/RQ

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 6 – Praxis   Programmierbeispiele in C
Allgemeines - 1. Beispielprogramm – FT_ListDevices() (1) - 2. Beispielprogramm – FT_ListDevices() (2) - 3. Beispielprogramm – FT_ListDevices() (3) - Generelles zu den Funktionsaufrufen - 4. Beispielprogramm – GetDeviceInfo() - 5. Beispielprogramm – FT_Open(), FT_Close() - 6. Beispielprogramm – FT_OpenEx() - Weitere Möglichkeiten - 7. Beispielprogramm – FT_Write() (seriell) - 8. Beispielprogramm – FT_Read() (seriell) - 9. Beispielprogramm – Einlesen DMM Daten (seriell) - 10. Beispielprogramm – FT_Write (parallel) - 11. Beispielprogramm – FT_Read (parallel) (1) - 12. Beispielprogramm – FT_Read (parallel) (2) - 13. Beispielprogramm – Impulszähler - 14. Beispielprogramm – PWM - Grundsätzliches zu PWM - Programmstruktur - 15. Beispielprogramm – EEPROM lesen - 16. Beispielprogramm - EEPROM löschen und schreiben - 17. Beispielprogramm – EEPROM User Area - 18. Beispielprogramm – 3,3V Logik - 19. Beispielprogramm – Ausgabe am CBUS - 20. Beispielprogramm – E/A am CBUS - 21. Beispielprogramm – ChipID auswerten -

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