Forum: Mikrocontroller und Digitale Elektronik PC - USB - ATmega (ohne Extra-Treiber)


von TomTom (Gast)


Lesenswert?

Guten Abend,

ich suche eine Möglichkeit Daten vom PC über USB (CDC, HID???) auf den 
ATmega und zurück zu übertragen. Vor mir liegt aktuell ein ATMega32U4 
mit integrierter USB-Hardware, anderer AVR wäre möglich.

Wichtig ist mir:
- am besten keine Extra-Treiber (Windows) nötig, oder zumindest welche 
die "einfach funktionieren"
- Gerät eindeutig identifizierbar (das Gerät muss nicht meinen Namen 
tragen aber die verwendete Software/Script soll das USB-Gerät 
selbstständig finden können), wenn ich an mein USB-UART-Adapter (FTDI) 
denke, ist nach dem Anstecken mal COM7, oder COM8, wie's gerade Bock 
hat...
x Geschwindigkeit ist zweitrangig

Wenn ich Google und die Forum-Suche bemühe falle ich immer wieder über:
USB - FT232RL - ATMEGA
USB - ATMEGA mit Hardware-USB (Beispiel von Atmel)
USB - ATMEGA mit Firmware-USB (V-USB, LUFA)

Hier und da fällt noch libusb.

Zugegeben ich hab den Überblick verloren.
Was ist unkompliziert umzusetzen? Wie sind eure Erfahrungen?

von Timmo H. (masterfx)


Lesenswert?

Komplett ohne Treiber geht's nur mit HID. Ich finde dafür den CP2110 
(nicht 2102/4) ganz nett. Brauchst nur die mitgelieferte dll und dann 
kannst du ohne Treiber mit einfach read und write Funktionen damit 
kommunizieren. Für den uC ist es einfach nur ein uart

von Jim M. (turboj)


Lesenswert?

TomTom schrieb:
> - am besten keine Extra-Treiber (Windows) nötig, oder zumindest welche
> die "einfach funktionieren"

Entweder HID (wenn es langsam, <64kByte/sec sein darf) oder man schaut 
sich bei libwdi um. Dort ist IIRC auch der Teil dokumentiert wie man 
WinUSB.sys mit modernem Windows (8+) automagisch laden kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

TomTom schrieb:
> wenn ich an mein USB-UART-Adapter (FTDI) denke, ist nach dem Anstecken
> mal COM7, oder COM8, wie's gerade Bock hat...

Das liegt an der fehlenden Seriennummer. Wenn Du die nachrüstest 
(serielles EEPROM am FTDI-Baustein anschließen und mit ftprog 
programmieren), dann ist das Verhalten eindeutig.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Wenn 64 Bytes reichen:
HID verwenden

Gibt den USB4ALL dafür.


Du bist nicht rein zufälligerweise der Selbe?
Beitrag "Daten zwischen PC und USB-Device austauschen. Suche einfachen Weg."

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Timmo H. schrieb:
> Komplett ohne Treiber geht's nur mit HID.

Das sollte mit CDC-ACM aber auch problemlos funktionieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

S. R. schrieb:
> CDC-ACM

Ältere Windows-Versionen kommen zwar mit dem nötigen Treiber im Gepäck, 
benötigen aber aus welchen Gründen auch immer eine passende *.inf-Datei, 
um diesen Treiber zu installieren.

von S. R. (svenska)


Lesenswert?

Das ist richtig, aber ist das unter aktuellem Windows 10 noch immer ein 
Problem? Wenn ich mir so die Politik von Microsoft anschaue, sollte sich 
die weite Verbreitung von älteren Versionen doch bald erledigt haben...?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

S. R. schrieb:
> Das ist richtig, aber ist das unter aktuellem Windows 10 noch immer ein
> Problem?

Nein, Windows 10 hat dieses Problem nicht.

von TomTom (Gast)


Lesenswert?

Fred R. schrieb:
> Du bist nicht rein zufälligerweise der Selbe?
Nö, bin nicht ich.

S. R. schrieb:
> Timmo H. schrieb:
>> Komplett ohne Treiber geht's nur mit HID.
>
> Das sollte mit CDC-ACM aber auch problemlos funktionieren.

Ab Windows 7. CDC-ACM? Hab ich bisher noch nie was davon gehört, was ist 
das genau?

Selbst wenn nur ne *.inf installiert werden muss, das wäre ja super

Ich fasse mal schnell zusammen und guck's mir genauer an:
- CP2110 (ist der eindeutig adressierbar?)
- FT232RL mit EEPROM für Seriennummer (der Chip hat doch selbst ein 
bisschen speicher, braucht man den eeprom unbedingt?)
- ATMega32u4 mit CDC-ACM, libwdi

von S. R. (svenska)


Lesenswert?

TomTom schrieb:
> Ab Windows 7.

Wenn du bereit bist, eine INF-Datei beizulegen, dann ist das kein 
Problem.

> CDC-ACM?

Das sind Kommunikationsgeräte (Communications Device Class), speziell 
Modems. Da fallen normale USB-Seriell-Wandler drunter.

> Hab ich bisher noch nie was davon gehört, was ist
> das genau?

Genau das, was du brauchst, wenn du UART kannst und USB willst. ;-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

TomTom schrieb:
> - FT232RL mit EEPROM für Seriennummer

Der FT232R enthält ein EEPROM und hat eine Seriennummer. Wenn man 
wirklich den verwendet, muss man sich um nichts weiter kümmern.

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.