Beyond Basics

Kleine USB-Bibliothek mit dem AT90USBKEY (|||)

Beschreibung

Die USB-Bibliothek enstand aus dem Wunsch heraus USB zu verstehen. Ziel war es ein absolut minimalistisches und verständliches Programm zur Kommunikation über USB mit AVR-USB-Controllern zu schreiben. Um schnell zum Ziel zu gelangen wurde das Entwicklungsboard AT90USBKEY von ATMEL verwendet, das man für weniger als 50€ kaufen kann. Viele Anregungen zur Programmierung stammen aus der Software von Stefan Salewski.

Das AT90USBKEY-Board arbeitet mit dem AT90USB1287 und wird leider mit nicht quelloffener Software ausgeliefert. Die Bibliothek kann auch einfach an andere Controller angepasst werden, um zum Beispiel ein Teensy-Board anzusteuern.

Die Firmware (GPLv3) gibt es gleich in den drei Geschmacksrichtungen Assembler (3260 Byte), C (3998 Byte) und Bascom (7381 Byte). Neben dem Endpunkt 0 stehen ein IN- und ein OUT-Endpunkt zur Verfügung um den Temperatursensor des AT90USBKEY einzulesen und die vier vorhandenen LEDs zu schalten. Eine Erweiterung auf bis zu 6 Endpunkte ist nicht schwierig.

Die Software benutzt auf der PC Seite die freie Bibliothek "libusb", welche bei Linux-Rechnern meist schon installiert ist. Auf Windows-Rechnern wird eine "libusb"-Version beim Installieren der Flip-Programmiersoftware von ATMEL mitinstalliert, so dass meist keine spezielle Installation nötig wird. Benötigt man die "libusb-win32" trozdem, so findet man sie bei sourceforge.net. Praktisch ist bei dieser Version ein Tool um ".inf" Dateien zu erstellen.

PC-Programme in C (Konsole + QT (GUI)), und Visual Basic ermöglichen die Kommunikation mit dem AT90USBKEY. Für die VB-Software wird eine spezielle VB-Version der libusb (von Stephan Meyer) benötigt.

Die Bascom-Version wurde zusammen mit Jean-Claude FELTES erstellt. Die VB-PC-Software ist von Jean-Claude. Einen großen Dank an seine unermüdliche Hilfe.

Dokumentation zu USB und zur Firmware (pdf)

Die Dokumentation steht unter der Creative Commons Lizenz ( http://creativecommons.org)

Die Dokumentation zur PC-Software bezieht sich auf die Visual-Basic-Version. Sie ist aber leicht auf die C und Qt-Version übertragbar.

Firmware für den AT90USBKEY:

Der AT90USBKEY besitzt bei der Auslieferung einen Bootloader. Mit der FLIP- Software von ATMEL lässt die Firmware sich leicht ohne Programmiergerät auf den Chip spielen. Dies geht auch bequem aus Studio 4 oder Bascom heraus.

PC-Software zur Ansteuerung des AT90USBKEY:

Unter Linux wie unter Windows entwickelt man bequem mit dem QT-Creator von Nokia. Unter Windows kann auch Visual Basic benutzt werden. Wie oben erwähnt wird die "libusbvb0.dll" von Stehan Meyer im Verzeichnis der ausführbaren Datei oder in c:\windows\system32 benötigt. Die "libusbvb0.dll" und auch ihr Quellcode stehen unter keiner Lizenz und werden von Stephan Meyer frei zur Verfügung gestellt. Fehlt bei Windows die Visual Basic 5.0-Laufzeitdatei "msvbvm50.dll" zum Starten der ausführbaren Datei, so hilft dieser Link weiter.

INF-Datei für den Hardwaremanager unter Windows

Achtung! Poppt der Hardwareassistent auf, so ist die manuelle Installation zu wählen. Wurde dies versehentlich beim ersten Mal verpasst, so muss in der Systemsteuerung (Sytem_Hardware_Gerätemanager) der falsche Treiber (ev. gelbes Fragezeichen) wieder gelöscht werden. In der manuellen Installation ist der Pfad zur INF-Datei anzugeben. Wird die Datei libusb0.dll (c:\windows\system32) oder die Datei libusb0.sys (c:\windows\system32\drivers) Datei nicht gefunden, so muss ev. die libusb nachinstalliert werden. Die Dateien libusb0.dll und libusb0.sys können aber auch in das gleiche Verzeichnis wie die INF-Datei kopiert werden, damit der Hardwareassistent sie gleich findet.

Kleine USB-Bibliothek mit Teensy 2.0

Die Bibliothek wurde ebenfalls auf den Teensy 2.0 (ATmega32u4) übertragen.


zum Downloaden:

Rechtsklick auf den Hyperlink, dann "Save Link As... (Firefox) oder "Save Target As... (Explorer)