Forum: Mikrocontroller und Digitale Elektronik Mega32U4-Fragen


von H.Joachim S. (crazyhorse)


Lesenswert?

Habe noch nie was mit USB-AVRs gemacht...
Ein bestehendes Gerät muss redesignt werden, u.a soll ein grösserer MC 
drauf (im Moment Mega168), da ein paar zusätzliche Funktionen rein 
sollen, wofür Speicher und Pins fehlen.
Zusätzlich ist zur Zeit ein FT232R drauf, um per USB Parameter zu 
setzen/lesen, normale RS232 kann man ja heute nicht mehr anbieten :-), 
die Dinger sind durchaus ein Kostenfaktor. Der Mega32U4 kostet nur 
unwesentlich mehr als der "normale" ATMega32. Rund 1000 Stk/Jahr.
Bleib ich bei der FTDI-Lösung, kann ich die Software mehr oder weniger 
übernehmen und muss nur die neuen Funktionen rein packen.
Die Frage ist: wie aufwändig ist die USB-on-Chip-Geschichte? Ich erwarte 
natürlich keine exakten Schätzungen, sondern nur ein paar Erfahrungen 
damit.
Ach ja: Software-update muss auch über USB gemacht werden können.

von Floh (Gast)


Lesenswert?

H.joachim Seifert schrieb:
> Die Frage ist: wie aufwändig ist die USB-on-Chip-Geschichte? Ich erwarte
>
> natürlich keine exakten Schätzungen, sondern nur ein paar Erfahrungen
>
> damit.
>
> Ach ja: Software-update muss auch über USB gemacht werden können.

Für Software-Update gäbe es direkt von Atmel einen USB-Bootloader.

Die Basis der USB-Geschichte auf dem Controller lässt sich anhand von 
Beispielen recht schnell implementieren.

Fraglich ist nur, auf welchen Zug man dann aufspringt:
- eigene USB-Klasse und eigenen Treiber generieren
- USB-CDC Klasse und einen virtuellen COM-Port erzeugen
- ...

Vor allem Treiber können nervig sein bezüglich Support für mehrere 
Betriebssysteme, 32/64-bit.

von H.Joachim S. (crazyhorse)


Lesenswert?

mit eigenen Treibern will ich mich garantiert nicht rumärgern, dass muss 
schon als Standardgerät laufen. Dachte an CDC oder HID.
Allzuviel Zeit will ich natürlich auch nicht in die Software stecken. 
Beim FTDI zu bleiben, ist auf jeden Fall der sichere Weg, nicht in eine 
Falle zu stolpern.

Wollte mir das bestellen und mal ein wenig spielen, um die Sache 
abschätzen zu können:
http://www.watterott.com/de/Atmega32u4-Breakout-Board

Nicht lieferbar :-(

von Potter (Gast)


Lesenswert?

Bei wenigen kByte/s empfiehlt sich HID, da keine .inf-Datei notwendig 
wird und Du keinerlei Treiber mit ausliefern musst.
Am besten fängst Du mit einem Generic HID-Beispiel von Atmel an und 
baust es für Deine Bedürfnisse aus.
PS: Die PIC sind auch einen Blick wert.

Gruß Potter

von Roland H. (batchman)


Lesenswert?

Verglichen mit UART finde ich - trotz vorhandener Beispiele - die 
USB-Geschichte aufwändig zum programmieren. Mir macht das wenig Spaß, da 
es mir recht "bürokratisch" vorkommt. Wie Floh schon geschrieben hat, 
muss man sich noch überlegen, ob CDC oder "user device class", im 
letzten Falle braucht es Host-seitig ebenso speziellen Treiber.

Positiv ist natürlich der gesparte Chip/Platinenfläche.

Die Frage ist: Tut es nicht auch ein USB-Seriall-Adapter?

> Dachte an CDC oder HID.

Microchip lässt sogar den "boot loader" im HID-Modus laufen. Der 
Hintergrund ist mir nicht bekannt, vermutlich liegt es daran, dass dann 
der Treiber schon vorhanden ist.

H.joachim Seifert schrieb:
> Nicht lieferbar :-(

Alternativ: Reusch Elektronik, liegen in der gleichen Preisklasse.

> Allzuviel Zeit will ich natürlich auch nicht in die Software stecken.

Dann schau Dir vorher die SW an. Ich bin auf der Basis der SW 
eingestiegen, welche den Reusch-Modulen beilagen. Die Alternativen von 
Atmel direkt oder LUFA habe ich mir noch nicht angesehen.

von Roland H. (batchman)


Lesenswert?

> PS: Die PIC sind auch einen Blick wert.

Selbst PIC32 gibt es in DIP mit USB. In der Tat war mein schnellster 
Einstieg in USB mit Pinguino auf PIC32: CDC ging einfach "sofort" 
(Watterott, PIC32 Pinguino Micro). M. W. verwenden die den USB-Stack von 
Microchip.

von H.Joachim S. (crazyhorse)


Lesenswert?

Roland H. schrieb:
> Verglichen mit UART finde ich - trotz vorhandener Beispiele - die
> USB-Geschichte aufwändig zum programmieren. Mir macht das wenig Spaß, da
> es mir recht "bürokratisch" vorkommt. Wie Floh schon geschrieben hat,
> muss man sich noch überlegen, ob CDC oder "user device class", im
> letzten Falle braucht es Host-seitig ebenso speziellen Treiber.
>
> Positiv ist natürlich der gesparte Chip/Platinenfläche.
Das ist in dem Fall kein Argument, da die Platinengrösse sich eh nicht 
ändern wird.
>
> Die Frage ist: Tut es nicht auch ein USB-Seriall-Adapter?
Damit hätt ich dann die Lösung, die ich im Moment auch habe, nur teurer 
und umständlicher (für die Kunden) - FTDI-Chip im Kabel.
>> Dachte an CDC oder HID.
>
> Microchip lässt sogar den "boot loader" im HID-Modus laufen. Der
> Hintergrund ist mir nicht bekannt, vermutlich liegt es daran, dass dann
> der Treiber schon vorhanden ist.
>
> H.joachim Seifert schrieb:
>> Nicht lieferbar :-(
>
> Alternativ: Reusch Elektronik, liegen in der gleichen Preisklasse.
>
Jo, habe gerade gesehen, gibts auch von anderen Anbietern.

>> Allzuviel Zeit will ich natürlich auch nicht in die Software stecken.
>
> Dann schau Dir vorher die SW an. Ich bin auf der Basis der SW
> eingestiegen, welche den Reusch-Modulen beilagen. Die Alternativen von
> Atmel direkt oder LUFA habe ich mir noch nicht angesehen.

Genau das versuche ich gerade mit diesem trööt :-), zumindest erst mal 
grundsätzlich.

An der bisherigen Lösung ist nichts zu bemänglen, funktioniert tadellos.
Die Frage ist: lohnt es sich, für 2000€/Jahr gesparte Materialkosten 
evtl. sehr viel Zeit mit der Software zu verplempern, die PC-Seite muss 
ja auch angepasst werden. In 5 Jahren sind es dann aber schon 10.000€.
Allerdings wird es sicher in der ersten Zeit Reklamationen von Kunden 
geben, bei denen eben irgendwas nicht wie erwartet funktioniert, auch 
nicht schön.
Bleibt als weiterer schöner Nebeneffekt: hat man es einmal sauber 
hinbekommen, ist das natürlich auch für andere Projekte nutzbar.

von Tim (Gast)


Lesenswert?

Habe vor einiger Zeit auch begonnen mich beim Thema USB mit AVR 
(ATMEGA32U4) einzuarbeiten. Mein Ziel war es Daten zwischen uC und PC 
über USB zu übertragen. Keine großen Timing Ansprüche und die 
Übertragung läuft nach Request/Response.
Nach einigen Tagen intensiver Beschäftigung habes ich es nun 
hinbekommen.
Mit hilfe von Datenblatt, USB Spezifikationen und Beispielen aus dem 
Internet konnte ich Schritt für Schritt das Gerät nach meinen 
Vorstellungen zum Laufen zu bringen.
Sehe bei meiner Umsetzung folgende Vorteile:
- Keinen Treiber für den PC unter WIN/MAC/Linux notwendig!
- DLL für eine HID Kommunikation PC <-> uC gibt es (z.B AtUsbHid.dll)
- Firmware über USB Bootloader aktualisierbar
- Alles in einem Chip (kein zusätzlicher FTDI), was Platz und Geld spart

von Oliver J. (skriptkiddy)


Lesenswert?

@H.joachim Seifert:

Schau dir mal das RAWHID-Projekt für den teensy an.

Gruß Oliver

von H.Joachim S. (crazyhorse)


Lesenswert?

Ja, das sieht doch ganz vielversprechend aus....
Ich glaube, ich werde zweigleisig fahren und beide Varianten auf der 
Platine vorsehen, das passt locker drauf.
Dann erst mal die Software mit dem FTDI fertigstellen, das wird schnell 
gehen und ich hab im Fall der Fälle was lieferfertiges. Und dann hab ich 
noch rund 1 Monat Zeit bis zum tatsächlichen Bestückungsstart, da werde 
ich dann abschätzen können, ob das mit der 32U4-Variante zeitgerecht 
fertig werden kann.

Vielen Dank erstmal.

von Ro R. (rond_es)


Lesenswert?

H.joachim Seifert schrieb:
> Wollte mir das bestellen und mal ein wenig spielen, um die Sache
> abschätzen zu können:
> http://www.watterott.com/de/Atmega32u4-Breakout-Board


Hier gibt es noch etwas ähnliches:
http://www.mattairtech.com/index.php/development-boards/mt-db-u4.html
Habe es mir über die Bucht gekauft für $21 inkl. Versand. War in etwa 
einer Woche da.
Hatte erst kurz Zeit damit zu spielen, finde es bis jetzt aber nicht 
schlecht. Kommt mit Bootloader (DFU oder CDC wählbar).

von gnubbl (Gast)


Lesenswert?

Grad gesehen: schon sehr spartanisch, aber wenn man sowieso selber eine 
Schaltung konstruieren will, ziemlich praktisch für Breadboards.

https://guloshop.de/shop/Mikrocontroller/ATmega32U4-DIP::11.html

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.