Forum: Mikrocontroller und Digitale Elektronik Bootloader des Atmega32U4


von stefanus (Gast)


Lesenswert?

Ich verstehe die Doku von Atmel so, dass der ATmega32u4 mit 
vorinstalliertem Bootloader geliefert wird, mit dem ich wiederum 
Firmware flashen kann.

Wenn meine Firmware drauf ist, möchte ich den USB Port gerne wie einen 
FT232 benutzen. Das kann der Bootloader bar nicht, oder doch?

Kann mir jemand helfen, einzuschätzen, wie Aufwändig die Programmierung 
ist? Muss ich dazu nur ein paar Register initialisieren, oder steckt da 
mehr hinter?

von sebi707 (Gast)


Lesenswert?

Nein das kann der Bootloader nicht und warum sollte er auch? Wenn du 
dein Programm geflashed hast willst du doch sicher, dass dein Programm 
ausgeführt wird und nicht weiterhin der Bootloader. Es kann immer nur 
eines von beidem gleichzeitig laufen.

Was du wohl willst ist ein CDC Device/Virtual COM Port, welches sich 
z.B. mit der LUFA Library bewerkstelligen lässt. Nehm einfach das 
entsprechende Beispielprojekt, lösche das Zeug was du nicht brauchst und 
bau deinen Code drumherum.

von Stefan F. (Gast)


Lesenswert?

Danke für die Stichworte, nun wieß ich wonach ich suchen muss.

Ich hatte mir das so vorgestellt, dass die USB Schnittstelle des AVR 
möglicherweise ganz alleine arbeiten kann (wie ein externer USB-UART), 
wenn sie erstmal entsprechend initialisiert ist. Und diese 
Initialisierung könnte ggf. der Bootloader erledigen.

Naja, schön wärs. Träumen darf man doch noch, oder?

von chbalnuweit (Gast)


Lesenswert?

am einfachsten gehts mit der usb_serial lib von PRJC:

https://www.pjrc.com/teensy/usb_serial.html

damit musste nur usb_init() aufrufen und kannst dann Ddten senden und 
empfangen.

gruß christian

von chbalnuweit (Gast)


Lesenswert?

wenn der AVR wie ein usb-uart wandler arbeiten soll, dann musst du 
natürlich auch noch die serielle schnittstelle des AVR initialisieren 
und die daten durchreichen
in etwa so:
usb_put_char( uart_get_char() );

von Stefan F. (Gast)


Lesenswert?

Dass ich separate Funktionen zum Senden und Empfangen aufrufen muss war 
schon klar. Ich will ja nicht einen der "echten" seriellen Ports 
ansprechen. Es sollte nur prinzipiell genau so einfach sein.

Dir von Dir genannte Library sieht auf den ersten Blick vielversprechend 
aus, scheint genau das zu tun, was ich mir so vorgestellt hatte.

Dann werde ich mir mal einen Arduino Micro Clone besorgen und es 
ausprobieren.

Besten Dank dafür

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.