www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 Virtual COM Port


Autor: burnout2000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kay I. (imperator)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.