Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 Virtual COM Port


von burnout2000 (Gast)


Lesenswert?

Hallo zusammen.

Ich versuche gerade meinem AT90USB1287 beizubringen dass er über seinen 
integrierten USB Controller einen virtuellen COM zur Verfügung stellen 
soll.
Hab mich da mal durch verschiedene Seiten im Inetz gelesen und diverses 
ausprobiert. Unteranderem die CDC Demo von Atmel.
Aber es läuft nicht.
Erst mal grundlegende Fragen :-)
- Was muss auf dem µC vorhanden sein, damit CDC funktioniert?
- Muss auf dem µC der USB Bootloader drauf sein?
- Gibt es Treiber für den "AT90USB128 DFU" für Win 7 64bit ?

Fragen über Fragen
Hoffe mir kann geholfen werden

Vielen Dank im Vorraus

von Kay I. (imperator)


Lesenswert?

Moin!

Den Bootloader "merkt" man im normalen Betriebs-Modul überhaupt nicht 
... er ist nur das allererste, was an Programm-Code abgearbeitet wird, 
wenn der uC des Reset-Zustand verlässt.
Du kannst Ihn für die ersten Geh-Versuche getrost überschreiben.

Den brauchst Du also nicht, um USB-Verbindung zu bekommen.

Wenn Du das Applikationsveispiel von Atmel genommen hast ... die haben 
da eins, das gibt die USB-Daten auf dem UART aus und umgekehrt.
Das hat bei mir relativ schnell funktioniert.

Nutzt Du Windows oder Linux als Host-PC?
Unter Windows musst Du noch eine *Inf-Datei an Win weitergeben, damit 
dieses weiß, dass es den Standard-CDC-Treiber für dieses USB-Device 
verwenden soll.

Linux erkennt sofort unter /dev ein neues Gerät. Hier kann man auch mit 
lsusb anzeigen lassen, was gerade alles an USB-Geräten gefunden wird - 
selbst wenn dafür keine Treiber installiert sind.

Ansonsten geht die App-Note von Atmel davon aus, dass Du einen 
12MHz-Quartz verbaut hast und stellt die PLL entsprechend ein ... wenn 
das bei Dir nicht so ist, bau einen 12 oder 16MHz Quartz ein. Bei 16 
musst natürlich nochmal das PLL-Verhältnis einstellen.

Atmel liefert zu seiner App-Note so eine Art Mini-Betriebssystem, bei 
dem der Reihe nach Tasks Rechenzeit bekommen. Das musst Du nicht 
unbedingt übernehmen, es reicht, die jeweiligen USB  Watchdog  etc. 
Routinen immer mal zyklisch aus Deinem Hauptpogramm aufzurufen.

Für die ersten Schritte würd ich es aber einfach so machen:
- App-Note 1:1 übernehmen
- eventuell alles, was nicht STK500-kompatibel ist, auskommentieren 
(z.B. LED-Ansteuerung an IO-Ports)
- und draufspielen

Wie sieht denn Deine Hardware aus? Selbst gebaut oder ein Eval-Board?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.