Forum: Mikrocontroller und Digitale Elektronik ATMEGA32U4 scheint nicht anzuschwingen, was tun?


von NewBie20140506 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

nach mehreren kleinen Projekten mit AVR Prozessoren in fertig gekaufter 
Grundschaltung wollte ich nun mal einen atmega32u4 (der mit USB) auf 
einem Breakout Board zum Laufen bringen, d.h.

1) er sollte mit 8 MHz schwingen mit dem internen Oszillator
2) er solte sich beim Anschluß an einen PC als unbekanntes USB device 
melden. Alles weitere dann mit FLIP.

Aber er scheint gar nicht anzuschwingen. Während bei einem fertigen 
Board mit 16 MHz Takt gleich nach dem Einschalten der Stromversorgung 
auf Kurzwelle 16 MHz ein Trägersignal zu hören ist, höre ich bei meiner 
eigenen Schaltung bei 8 MHz nichts.

Ich könnte mir jetzt einen Oszi kaufen und das Ergebnis bestätigen, 
scheue jedoch das Invest, weil ich nicht glaube, dass ich den dann in 
den nä. 12 Monaten nochmal brauchen kann.

Weiterhin habe ich folgendes geprüft:

- Die Checkliste AVR 
(http://www.mikrocontroller.net/articles/AVR_Checkliste) hier aus der 
Site wurde abgearbeitet, soweit zutreffend
- alle Spannungsversorgungsanschlüsse am Chip (Vcc, AVCC, GND) 
sorgfältig angeschlossen,
- Abblockkondensator 100nF Keramik direkt am Chip, sowie weitere in den 
Zuleitungen
- Grundschaltung entspricht den Anforderungen
- Stromverbrauch des Atmega32u4: 10 mA bei 5V, bei RESET gegen GND 9mA, 
d.h. bei RESET tut sich etwas
- Spannungsversorgung über Labornetzteil mit Strombegrenzung

Meine Einschätzung: Selbst wenn die Grundschaltung bzgl USB nicht ganz 
der empfohlenen Art entsprechen würde, so müsste der Prozessor mit dem 
internen Oszillator wenigsten anschwingen, oder?

Wie könnte man noch prüfen, ob der AVR schwingt?

und

Habt Ihr eine Idee, wie man weiter vorgehen könnte?

besten Dank für Tipps

NewBie20140506

von John B. (craftsman)


Lesenswert?

Hallo,

da verwende ich manchmal ein Kurzwellen Radio.

Viel Erfolg
JB

von Rudolph (Gast)


Lesenswert?

Vielleicht mal einen Programmier-Adapter dran anschliessen und benutzen?

von Paul B. (paul_baumann)


Lesenswert?

NewBie schrub:
>Ich könnte mir jetzt einen Oszi kaufen und das Ergebnis bestätigen,
>scheue jedoch das Invest, weil ich nicht glaube, dass ich den dann in
>den nä. 12 Monaten nochmal brauchen kann.

Einen Oszi kann man immer gebrauchen, bei jedem Wetter.

>Wie könnte man noch prüfen, ob der AVR schwingt?

Kommst Du noch mittels Programmiergerät auf den Kontroller "drauf"?
Falls ja, dann muß irgendjemand den Takt erzeugen, sonst kämst Du
nicht dran. Du kannst dann anhand der gesetzten Fusebits sehen, ob
der Takt intern erzeugt wird, oder ob er den Quarz draußen dran benutzt.


Mach doch dann probeweise einen Leuchtidioten mit Vorwiderstand an einen
der Portpins und laß ihn blinken. Da siehst Du ja mit bloßem Auge, ob 
der
Takt der erwartete ist.

MfG Paul

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Hallo NewBie20140506,

Du musst immer einen 16MHz Quarz verwenden/ verbauen, steht so im 
Datenblatt.
Sonst kommst Du per USB-Bootlader nicht an den atMega32U4 - das ist der 
Defaultmode.

Verwendest Du den "Zugang" per ISP, dann ist auch ein Quarz+ 2Cs 
anzuschließen und noch einige Klimmzüge mit den Fuses notwendig, um den 
HWD-Bootloader zu deaktivieren.

Wieso stören Dich die 16MHz ? Dort liegt doch kein AFU Band.

Sonst verbaue einen CLC-Filter für Gleichtakt- und einen für 
Gegentaktstörungen.

Was das ist ? --> www.dg0sa.de

: Bearbeitet durch User
von Peter R. (pnu)


Lesenswert?

NewBie20140506 schrieb:
> 1) er sollte mit 8 MHz schwingen mit dem internen Oszillator
> 2) er solte sich beim Anschluß an einen PC als unbekanntes USB device
> melden. Alles weitere dann mit FLIP.

USB läuft meist mit 12MHz-Quarz. Mit internem Oszillator, ohne Quarz, 
möglich???

Wenn ein noch so primitives Programm läuft (LED-blink) braucht es den 
Takt dazu. Oszi ist nicht unbedingt nötig, um rauszukriegen, ob Takt da 
ist.

Bei laufendem Programm an die Quarzanschlüsse  tasten (mit Pfote an 
Messpitze) der Quarz hört vor Schreck auf zu schwingen, das zeigt ob der 
Quarz dran beteiligt ist.

im oberen Schaltbild ist anscheinend ein Keramikresonator gemeint. Mit 
einem Quarz braucht man noch zwei 22pF-Kondensatoren für die 
Schwingschaltung an X1 und X2, siehe Datenblatt.

Da Du andre Kontroller hast, mit denen an einem Pin Takt ausgeben, den 
als externen Takt an Deinen atmega32U4 weitergeben. Also mit Fremdtakt 
erst mal klären obs am Takt liegt.

Da Du eine funktionierende Schaltung hast, dort den Quarz anschließen, 
evtl. dazu nötige fuses einstellen, gehts dann?

Schon mal geschaut, ob Die fuses überhaupt für Quarz passen?

von Uwe (de0508)


Lesenswert?

Ach ja,

hier noch ein Nachtrag, wie man es richtig macht:

Atmega32U4-Breakout-Board
http://dokuwiki.ehajo.de/bausaetze:display-adapter

von Uwe (de0508)


Lesenswert?

Immer dieses Rumraten!

der atMega32u4 läuft per Default nur mit einem 16MHt Quarz und 
unterstützt dadurch den HWD USB Bootloader.
Ist halt anders, als die normalen atMega - RTFM .
1
Um den Chip in den Bootloader zu bekommen müssen vier Pins überbrückt werden.
2
* HWB-Pin (PE2) gegen GND brücken und gebrückt lassen
3
* Reset-Pin kurz gegen GND brücken und somit einen Reset auslösen
4
* Chip startet im Bootloader und wird als Atmega32U4 angezeigt

von NewBie20140506 (Gast)


Lesenswert?

Dank an alle,

ich habe - während ich auf Eure Antworten gewartet habe - noch ein wenig 
an der Schaltung gearbeitet, aber keinen Erfolg gehabt. Die 
Stromaufnahme der Schaltung schwankte je nach dem, wo ich meine Hand 
hielt, ohne je ein metalliasches Teil zu berühren, also kapazitive 
Effekte. Das bedeutet, dass da schon etwas schwingt, aber ungleichmäßig 
und ungewollt.

Ich glaube, dass der Hinweis von der Küste (Uwe S.) der am meisten 
zielführende ist, also ich meine jetzt nich RTFM (der auch :-)) sondern 
der auf Seite 28 des ATMEGA32u4 Handbuches:

6.2.1 Default Clock Source ATmega16U4 and ATmega32U4
The device is shipped with Low Power Crystal Oscillator (8.0MHz-16MHz) 
enabled and with the fuse CKDIV8 programmed, resulting in 1.0MHz system 
clock with an 8 MHz crystal. (...)

Der Chip wird mit einer Einstellung ausgeliefert, die an XTAL1/2 einen 
Quarz zzgl. Beschaltung erwartet. Und weiter schließe ich aus Uwe S. 
Bemerkung, dass es ein 16 MHz Quarz sein muß wegen der USB Taktung. Ich 
werde also einen 16 MHz Quarz anschließen und weiter testen.

PS: der Grund den Quarz wegzulassen war, dass es dann drei Bauteile 
weniger sind und weil es in meiner Anwendung nicht auf zeitliche 
Konstanz und nicht auf übermäßige Geschwindigkeit ankommen wird. Naja, 
dazugelernt.

Beste Grüße
aus Mitteldeutschland
NewBie20140506


PS Die Idee mit dem externen Takt fand ich auch gut, wäre dann der 
nächste Schritt, wenn das mit dem Quarz allein nicht klappt. ...Aber an 
die Fuses zur Einstellung von external Clock komme ich ja nur, wenn der 
Quarz schwingt...
trotzdem Dank!

von Hannes J. (Firma: eHaJo.de) (joggl) Benutzerseite Flattr this


Lesenswert?

Die Atmel-Controller mit USB-Controller laufen mit 8 und 16MHz an. Ohne 
den Quarz kommst du auch nicht per ISP auf den Chip drauf um ihn auf den 
internen Quarz umzuprogrammieren. Das hat Atmel ganz toll gemacht.

Du kannst ihn dann aber (wenn der Chip mal anläuft) per FLIP und USB 
programmieren.

von NewBie20140506 (Gast)


Lesenswert?

Hi!

Feedback: Nach dem Anschluß eines Keramik Resonators mit 16 MHz lief der 
Prozessor, und ich konnte per FLIP auf ihn zugreifen und erste 
compilierte Programme laufen lassen, indem ich das beim Kompilieren 
erzeugte *.hex File mit dem Bootloader hochgeladen habe.

Steht zwar gelegentlich hier im Formu, aber zur Hilfe für andere:

Um den Chip in den Bootmodus zu bekommen, muß man den PIN PE2 (HWB), HWB 
- HardWareBoot auf Masse setzen, dann den Chip mit Reset kurz 
zurücksetzen. Alles weiter dann mit Flip.
Leider klappt das Hochladen eines HEX Files (d.h. des kompilierten 
Codes) nur beim ersten Mal. Danach meldet FLIP Device Protection Set, 
ich habe mich so beholfen, dass ich den ganzen Flash Speicher mit FLIP 
gelöscht habe und dann erst das neue Programm geladen habe. Ist sicher 
nicht im Sinne des Erfinders.. aber es funktioniert.

Dank an Alle für die Unterstützung.


PS Es gibt es neues Problem, dass ich gerne unter "Fuse Bits lesen/ 
setzen beim atmega32u4 ohne Programmer?" diskutieren möchte.

von Uwe S. (Gast)


Lesenswert?

Guten Morgen,

NewBie20140506 schrieb:
> PS Es gibt es neues Problem, dass ich gerne unter "Fuse Bits lesen/
> setzen beim atmega32u4 ohne Programmer?" diskutieren möchte.

Ein ISP Programmer ist dein Freund.
http://www.ehajo.de/baus%C3%A4tze/programmieradapter

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.