Ich habe ein Softwarepaket für die Vinculum USB-Host-Controller geschrieben. Bei mir kommt ein fertig gekauftes Vinculum-Modul zum Einsatz. Die Kommunikation läuft seriell, da sich SPI als zu fehleranfällig und aufwändig herausgestellt hat.
Das Paket besteht aus mehreren Include-Files, wovon nur eines (Vinculum_package.inc) eingebunden werden muss (die anderen werden dann automatisch eingebunden). Zu beachten ist: Nach Einbindung der Vinculum-Software wird der Submode auf "New" gesetzt (siehe Bascom-Hilfe: "Config Submode") - ich glaube aber kaum, dass noch jemand den alten Submode nutzt also sollte das nicht stören.
Eckdaten:
- Kommunikation über UART mit 9600baud (änderbar)
- kurze Laufzeit der einzelnen Module
- bis zu 64 Zeichen pro einzelner Schreiboperation
- Fehlerbehandlung
- Code-Beispiel zur einfachen Verwendung
Einführung zur einfachen Verwendung:
Es müssen alle *.inc-Dateien im Verzeichnis deiner Main liegen! Eingebunden wird nur Vinculum_package.inc (&include = "vinculum_package.inc"). Es muss regelmäßig "Vinculum_process_serialin" und "Vinculum_process_write" aufgerufen werden - am besten in der Hauptschleife, oder eben in bestimmten Zeitabständen (je öfters, desto schneller wird auf das USB-Device geschrieben).
Sollen Daten auf as USB-Device (USB-Stick oder USB-Festplatte) geschrieben werden, dann ist dies mittels Call Vinculum_do_writedata( "Filename.txt" , String_write) möglich. Es können nur Strings übergeben werden! Die maximalen Längen sind 16 Zeichen für den Dateinamen (inklusive Dateierweiterung!) und 64 Zeichen für die Daten, die auf das Device geschrieben werden sollen. Es empfiehlt sich diesen Prozess nur dann aufzurufen, wenn Global_vinculum_ready gesetzt ist. Anschließend kann man Global_vinculum_error (Byte) auswerten um zu sehen, ob alles glatt gelaufen ist.
Durch die Verwendung der beiden Prozesse "Vinculum_process_serialin" und "Vinculum_process_write" bleibt der AVR an keiner Stelle stehen und dadurch ist eine effizente Verwendung dieses Software-Pakets möglich.
Es wird noch der "Extended-Command-Set" des Vinculum-Moduls verwendet, da dieser ein wenig einfacher ist. In späteren Versionen soll der kürzere Command-Set verwendet und dadurch die Größe des Codes entsprechend reduziert werden.
Eine Erklärung der Globalen Variablen liegt in Form eines Text-Files bei.
Lesezeichen