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
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
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
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?
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
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!
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.
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.