AtMega32u4 -- erste Inbetriebnahme

OP (Firma: privat) #4434789
Lesenswert?

Hallo! Ich habe eine Leiterplatte mit AtMega32U4 und schaffe es nicht in 
den Bootloader modus zu kommen. Windows erkennt kein neues Gerät. Woran 
könnte das liegen? Einen Verdacht habe ich schon, ich habe einen Quarz 
angeschlossen, und AFAIK müssen erst die fuse bits umgestellt werden, 
damit der auch verwendet wird. Aber müßte Windows den AtMega nicht 
trotzdem (also selbst mit aktiviertem internen Zeitgeber)als neues Gerät 
erkennen?
#4434835
Lesenswert?

Philipp K. schrieb:
> Der TO meint bestimmt den integrierten DFU Bootloader.
>
> http://www.atmel.com/Images/doc7618.pdf

Wußte gar nicht, daß die schon einen Bootloader drauf haben.

TO:
Ich denke mal, die fuses müssen erst umgestellt werden.
Boot reset fuse und vermutlich auch der Takt.
Bin jetzt aber zu faul das DB zu lesen. Das überlasse ich dann Dir.

Gruß
Andreas
OP (Firma: privat) #4434841
Lesenswert?

Philipp K. schrieb:
> Der TO meint bestimmt den integrierten DFU Bootloader.
>
> http://www.atmel.com/Images/doc7618.pdf

Ganz genau! Und in dieser Application Note 
http://www.atmel.com/images/doc7769.pdf steht man soll den Pin "HWB" und 
den Pin "RST" nach Masse ziehen um in den bootloader modus zu kommen. 
Auch das habe ich versucht, leider ohne Erfolg. Ich habe schonmal die 
Spannung gemessen, die Schaltung hat korrekte Spannung (5.15 v von USB), 
also das ist schonmal in Ordnung.

@Andreas Ja, die Leiterplatte ist über USB an den PC angeschlossen. Und 
ja, die AtMega32U4 kommen ab Werk mit einem Bootloader und auch die HWBE 
fuse ist per default enabled, d.h. mittels oben beschriebener Methode 
sollte man in den bootloader modus zu kommen. Ich habe den Quarz im 
Verdacht, kann der den AtMega hindern einen Mucks von sich zu geben? USB 
soll ja mit dem ungenauen internen Taktgeber nicht gut zusammenarbeiten 
... Das ist auch der Grund weshalb ich überhaupt einen 16MhZ Quarz 
anschliessen muss ..
#4434861
Lesenswert?

Rein Schaltungstechnisch braucht es ja nur das die 22Ohm Widerstände am 
USB sitzen.

Wenn dann BOOTRST stimmt sollte das schon klappen, ist bei mir schon 
etwas her. Oder versuchst ein Sprung vom ausführenden Programm in den 
Bootloader.

Regular application execution:
A jump or call from the user application program. This may
be initiated by a trigger such as a command received via USB, USART or 
SPI and decoded by the application.
OP (Firma: privat) #4434867
Lesenswert?

Hallo Phillip! Ja, so habe ich es auch in Erinnung, daß die beiden data 
line termination resistors genügen um Windows mitzuteilen "hier hängt 
ein Gerät am USB-Port!". Leider tut sich in Windows nix. Ich möchte nur 
in den bootloader modus um eine Firmware aufzuspielen.
#4434957
Lesenswert?

Andreas B. schrieb:
> Bülent C. schrieb:
>> Was für einen Quarz hast Du denn dran?
>> Wenn Du keinen 8, oder 16MHz dran hast, dann löte den mal ab und
>> versuchs nochmal.
>
> Das bringt nichts. Wenn der auf externen Quarz steht und Du machst den
> weg, dann passiert nichts (und das meine ich auch so).

Da wäre ich mir nicht so sicher. Der To hat nicht angegeben welchen 
ATmega32U4 er nutzt, denn es gibt welche die als default den internen 
Taktgeber nutzen.
Ansonsten muss er einen 8 oder 16Mhz dran haben. Wenn das gegeben ist, 
dann hat er ein ganz anderes problem.
ISP und Fuses sind erstmal unwichtige Themen!
#4434989
Lesenswert?

Ist das ein Board was Du selbst gebaut hast oder ist das eins von den 
billigen China-Arduino-Pro-Micro-Clonen mit dem atmega32u4 oder sonst 
was von jemand anders gekauftes?

Ich frage, weil auf besagte Pro-Micros ein anderer Bootloader 
draufgeflasht wurde und insofern vielleicht nicht klar ist, ob HWB 
wirklich das tut was es soll...

Ansonsten wäre ein Schaltplan hilfreich.

Viele Grüße,
        Simon
#4434997
Lesenswert?

Bülent C. schrieb:
> Andreas B. schrieb:
>> Bülent C. schrieb:
>>> Was für einen Quarz hast Du denn dran?
>>> Wenn Du keinen 8, oder 16MHz dran hast, dann löte den mal ab und
>>> versuchs nochmal.
>>
>> Das bringt nichts. Wenn der auf externen Quarz steht und Du machst den
>> weg, dann passiert nichts (und das meine ich auch so).
>
> Da wäre ich mir nicht so sicher. Der To hat nicht angegeben welchen
> ATmega32U4 er nutzt, denn es gibt welche die als default den internen
> Taktgeber nutzen.
Dann stört der Quarz aber auch nicht.
Was default fuses betrifft, habe ich schon weiter oben meine Anmerkung 
dazu gemacht.

> Ansonsten muss er einen 8 oder 16Mhz dran haben. Wenn das gegeben ist,
> dann hat er ein ganz anderes problem.
8 Mhz macht der interne Oszillator auch.

> ISP und Fuses sind erstmal unwichtige Themen!
Nein, denn genau so stellt man ein, ob ein Quarz dranhängt oder der 
interne RC Oszillator verwendet wird.

Gruß
Andreas
OP (Firma: privat) #4435001
Lesenswert?

Hallo! langsam, langsam, so schnelle  komme ich kaum mit.

zum Thema ISP: through hole pads für ISP habe ich schon, leider noch 
keinen ISP programmer, bis ich den bekomme kann noch dauern!

Zum Thema Quarz: ich habe einen 16Mhz Quarz dran

zum Thema PCB: die habe ich selbst geschustert, qualität ist in ordnung 
denke ich

zum thema clock fuse: wenn ich mich nicht arg irre, dann ist beim 
AtMega32u4 per default der internen zeitgeber aktiviert, was ja auch 
sinn ergibt.

Soll ich den Quarz mal ablöten wie Bülent vorschlägt? Klingt mir 
plausibel, ausprobieren kann ich es ja mal!
#4435008
Lesenswert?

Andreas B. schrieb:
> Dann stört der Quarz aber auch nicht.
> Was default fuses betrifft, habe ich schon weiter oben meine Anmerkung
> dazu gemacht.

Richtig, dann weist er aber das er so einen uC besitzt, welches als 
Default den internen verwendet.

Andreas B. schrieb:
> 8 Mhz macht der interne Oszillator auch.
EBEN! Und wenn einen uC hat der als default einen externen taktgeber 
hat, bringt der interne 8MHz nichts, wenn er einen 12MHz dran hat!

Andreas B. schrieb:
> Nein, denn genau so stellt man ein, ob ein Quarz dranhängt oder der
> interne RC Oszillator verwendet wird.

Ja, wenn man was anderes beschaltet als der default es hergibt. Im 
Idealfall hält man sich an die Default's.
Gast #4435055
Lesenswert?

Guten Tag,

ich verwende mehrfach das Atmega32U4 Breakout-Board von Hannes.

http://www.ehajo.de/boards/atmega32u4-breakout-board.html
http://dokuwiki.ehajo.de/bausaetze:display-adapter

Der auf LOW zu legende Pin für den HW-Bootloader ist im Datenblatt des 
Atmega32U4 beschrieben.

/Hannes hat das nun auch in seinem Wiki hinterlegt:/
/Um den Chip in den Bootloader zu bekommen müssen vier Pins überbrückt 
werden./

/HWB-Pin (PE2) gegen GND brücken und gebrückt lassen/
Reset-Pin kurz gegen GND brücken und somit einen Reset auslösen
Chip startet im Bootloader und wird als Atmega32U4 angezeigt

Der Quarz und somit der AVR µC Takt muss zwingend 16MHz betragen, sonst 
funktioniert USB und somit der Bootloader nicht.

*USB Clock – clk USB*
/The USB hardware module needs for a 48 MHz clock. This clock is 
generated from the on-chip PLL./
/The output of the PLL passes through the PLL Postcaler where the 
frequency can be either divided by 2 or directly connected to the clk 
USB signal./

Die Testplatinen Atmega32U4 waren noch mit 8MHz bestückt.

Ich habe den Atmel Bootloader auf meinen Boards gegen einen anderen (aus 
dem Lufa Prohjekt) ausgetauscht, da ich zu dieser Zeit unter Linux 
keinen Zugriff auf einen Client hatte.
OP (Firma: privat) #4435147
Lesenswert?

Hallo! Die data line termination resistors sind 22 Ohm. Vielleicht 
sollte ich das "O" für Ohm besser weg lassen, weil es mit einer Null 
verwechselt wird. OK.

Die Kondensatoren sind 10 Picofarad für den Quarz. Ansonsten 1 
Microfarad und 0.1 Microfarad. Habe da das Zeichen "µ" genommen.

Die Grundschaltung mitsamt allen Werten für Widerstände und 
Kondensatoren habe ich komplett übernommen von dem bekannten 
Mikrocontroller-Board "Teensy2.0".
#4435159
Lesenswert?

Claudio S. schrieb:
> Hallo! Die data line termination resistors sind 22 Ohm. Vielleicht
> sollte ich das "O" für Ohm besser weg lassen, weil es mit einer Null
> verwechselt wird. OK.
>
> Die Kondensatoren sind 10 Picofarad für den Quarz. Ansonsten 1
> Microfarad und 0.1 Microfarad. Habe da das Zeichen "µ" genommen.
>
> Die Grundschaltung mitsamt allen Werten für Widerstände und
> Kondensatoren habe ich komplett übernommen von dem bekannten
> Mikrocontroller-Board "Teensy2.0".

Wie lautet die genaue Bezeichnung vom Quarz?
OP (Firma: privat) #4435202
Lesenswert?

Bülent C. schrieb:
> Dir ist klar, das Deine Schaltung immmer in den USB Bootloader gehen
> würde, oder?

Hallo Bülent. Ist mir leider nicht klar, woran liegt das? Der Quarz ist 
der hier: 
http://www.mouser.de/ProductDetail/ABRACON/ABL-16000MHZ-B2/?qs=%2fha2pyFaduhWDOxvOfdZuHIW%2fCAw6yjrzrIvW8EcuFcg%252bAF73ia6%252bA%3d%3d

Uwe S. schrieb:
> Schwingt der Quarz ?
Kann ich nicht sagen.
#4435206
Lesenswert?

Claudio S. schrieb:
> Bülent C. schrieb:
>> Dir ist klar, das Deine Schaltung immmer in den USB Bootloader gehen
>> würde, oder?
>
> Hallo Bülent. Ist mir leider nicht klar, woran liegt das? Der Quarz ist
> der hier:
> 
http://www.mouser.de/ProductDetail/ABRACON/ABL-16000MHZ-B2/?qs=%2fha2pyFaduhWDOxvOfdZuHIW%2fCAw6yjrzrIvW8EcuFcg%252bAF73ia6%252bA%3d%3d
>
> Uwe S. schrieb:
>> Schwingt der Quarz ?
> Kann ich nicht sagen.

Nun da ist ein Widerstand nach Masse (GND) eingezeichnet. So viel 
solltest Du schon Wissen.
#4435294
Lesenswert?

Claudio S. schrieb:
> Bülent, du meinst HWB mit 1k nach Masse? Ja, aber das ist hier
> auch so:
> http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev...
> Soweit ich das verstehe muß HWB und RST auf Masse gezogen werden um in
> den Bootloader zu kommen. HWB auf Masse tut da noch nix, oder?

Traue nicht jeder Schaltung die Du irgendwo im Internet findest.
Ziehe HWB mit 10k auf High und setzte einen 100nF Kerko nach Masse. Dann 
packst Du noch einen taster oder Jumper dazu, welches es dann auf Masse 
zieht.
Das gleiche machst Du am besten mit Reset auch, aber idealerweiser mit 
einem Taster.
#4435303
Lesenswert?

Claudio S. schrieb:
> Bülent C. schrieb:
>> Dir ist klar, das Deine Schaltung immmer in den USB Bootloader gehen
>> würde, oder?
>
> Hallo Bülent. Ist mir leider nicht klar, woran liegt das? Der Quarz ist
> der hier:
> http://www.mouser.de/ProductDetail/ABRACON/ABL-160...
>
> Uwe S. schrieb:
>> Schwingt der Quarz ?
> Kann ich nicht sagen.

Dann tausche mal die 10pF gegen 20-22pF aus.
OP (Firma: privat) #4435352
Lesenswert?

Hallo Bülent. Du hast recht, auf High ziehen wäre wohl besser. 
Allerdings wird RST und HWB durch einen internen Pull-Up auch 
hochgezogen, das geht zur Not auch. Bei einem Bekannten funktioniert es 
und er hat HWB floaten gelassen. (Aber ansonsten hat er auch nicht viel 
mehr Ahnung wie ich, also fragen kann ich den nix). Die 22pF muß ich 
erst besorgen bei Conrad Elektronik. Aber danke erstmal, hast mir schon 
einige wichtige Anstöße gegeben..
OP (Firma: privat) #4435604
Lesenswert?

Ja, Quarz ist wieder dran. Es wird auch kein fehlerhaftes Gerät erkannt. 
Die 5v Spannung hat er überall dort wo ich Stichproben gemacht habe. 
Müssten nach Adam Riese nicht schon die beiden 22 Ohm Widerstände an den 
USB data lines ausreichen, damit ein neues Gerät erkannt wird, ganz egal 
ob da noch ein AtMega32U4 dranhängt oder nicht? Das verstehe ich nicht 
...
Gast #4435703
Lesenswert?

Hallo Claudio,

schau dir mal den Schaltplan des Boards für das Atmeg32U4 Breakoutboard 
bei Watterott an:

http://www.watterott.com/de/ATMEGA8U2-Breakout

Ich habe damit mit vor Monaten mal gearbeitet und das Problem war, es 
gibt einen Bootloader aber leider sind die Fuses falsch gesetzt (Ich 
glaube auch nicht das der LUFA Bottloader drauf war). Ich kam um einen 
ISP Programmer nicht herum. Fuses korrigiert und es lief.

Gruß,

R.
OP (Firma: privat) #4436356
Lesenswert?

Hallo! Danke für die Tipps, genau das werde ich machen, ich muß darauf 
warten, daß der ISP programmer hier ankommt, denn sonst kann ich keine 
fuses setzen.

Übrigens, auf dem Schaltplan von dem Waterott-Board sind 8pF am Quarz, 
und HWB ist direkt an Masse angeschlossen. Ich dachte das soll nicht?
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/AVR/32U4_Breakout-v11.pdf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren