Forum: Mikrocontroller und Digitale Elektronik ATmega16U2 Signature ID read fail


von Micha W. (blackxiiv)


Angehängte Dateien:

Lesenswert?

Moin,

Für mein nächstes Projekt (Armband-Uhr) habe ich mir den ATmega16U2 
ausgesucht, weil mir der integrierte USB Controller mir gefallen hat. 
Mit 7,50€ bei hiesigen Verkäufern nicht ganz billig - aber was soll's. 
2x bestellt und einen auf ein 2,54mm Raster gezaubert zum Spielen.

Hier nun das Problem: Es geht nix :/

Ich nutze Atmel Studio 7 mit einem AVRMKII Clone (wird aber als AVRMKII 
von der Software erkannt), dazu mein Steckbrett und einen Mini-USB als 
externe Spannungsversorgung.
Erst wollte ich direkt das USB interface verwenden, aber ging halt nix. 
Habe das mit Atmel FLIP versucht.
Also alles abreißen und ISP verdrahten...
Anschließen - MKII-LED grün - Vorfreude....
Schon beim Auslesen der Signatur ID geht da gar nix :/ Wenn ich MISO und 
MOSI vertausche (manchmal ist man ja blöd) - keine Änderung. Ergo, die 
MCU macht nix?!
Allerdings bekommt die Software es mit, wenn ich den Reset abziehe und 
den MCU-/Reset (Pin 24) hart auf Masse packe. Die LED am Flachbandkabel 
wird dann auch orange.
Bei abgezogener ext-VCC wird die LED rot - also geht es nur mit 
Versorgung.
Die MCU habe ich in einer EPA aus der Verpackung genommen und verdrahtet 
und das ganze auch in ESD gerechtem Material wieder nach hause 
geschleift. Einen ESD Schaden schließe ich erstmal aus. Laut Datasheet 
ist die MCU mit internen 8MHz und 8-fachen Teiler ausgeliefert. ISP-CLK 
habe ich gedrosselt und auch aufgebohrt. Immer das selbe Ergebnis. Mit 
dem /SS rumzuspielen hat auch nichts geändert.

Also nehme ich mir meinen Nano-Clone und häng ihn dran - Read - Zack! 
"Falsche ID. Müsste ein ATmega328 sein..." Stimmt!

Hat sich irgendwer schonmal mit den ATmega**U* rumgeärgert?

Danke und Gruß,
Micha (:

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Du brauchst beim 16u2 doch keinen ISP! Usb reicht!

von Micha W. (blackxiiv)


Lesenswert?

Wie gesagt, da lief halt auch nix... aber ISP sollte halt immer laufen.

von Alex W. (a20q90)


Lesenswert?

Pins vertauscht? Zählrichtung richtig?

von H.Joachim S. (crazyhorse)


Lesenswert?

Auf jeden Fall solltest du einen 100nF an Gnd/Vcc hängen.

Soweit ich mich erinnere. kommen alle USB-Teile ohne programmierten 
internen Oszillator daher. D.h. du brauchst einen Takt bzw einen Quarz. 
Das wird auch der Grund sein, warum es mit USB auch nicht ging.

edit: ok, wird doch mit aktiviertem RC-clock geliefert.

: Bearbeitet durch User
von S. Landolt (Gast)


Lesenswert?

? Bei mir steht:
"The default setting of CKSEL3..0 results in External crystal Oscillator 
8MHz"

von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Lesenswert?

So hatte ich es auch in Erinnerung.
Zumindest in meinem Datenblatt steht es aber anders.

von S. Landolt (Gast)


Lesenswert?

Weiß nicht, meines ist noch von 09/2012.

von S. Landolt (Gast)


Lesenswert?

Ah - ha! Steht bei mir genauso unter 8.3 Clock sources, unter 25.2 Fuse 
bits steht es anders.

von H.Joachim S. (crazyhorse)


Lesenswert?

Das ist ja mal wieder geil :-)
Nun müsste man wissen was stimmt.
Also Quarz+Kondensaoren ran oder externen Takt. Lass uns nicht dumm 
sterben.

von S. Landolt (Gast)


Lesenswert?

> Nun müsste man wissen was stimmt.
Sehr wahrscheinlich die Angabe bei den Fuse-bits, ich wette mein Rennrad 
gegen einen Tretroller.

von Micha W. (blackxiiv)


Angehängte Dateien:

Lesenswert?

So, liebe Kinder (:

Ich hab's - leider mit 'ner Einschränkung - aber ich hab's!!!

Hier die Story dazu:
Nach wie beschrieben Maßnahmen (10uF in die 5V Rail, 100nF direkt an 
VCC/GND und Quarz+Caps) ging der 16U2 immer noch nicht. Habe mir aber 
'nen 168P aus der Bastelkiste genommen und auch auf so ein schönes 
Adapterboard geschweißt. Siehe da - der 168P wird mit aktiviertem 8MHz 
int RC geliefert und /8 div Fuse ist auch gesetzt. Jetzt habe ich meinen 
8MHz Quarz mit 18pF nach GND dran gehangen (Pin7/8) und die Clk Fuse auf 
"ext. 8MHz Crystal Oszillator" programmiert... - Ich Holzkopf...
Schön ausgesperrt... Jedenfalls reagiert er jetzt wie der 16U2...
kram-kram - Ha! - In der Bastelkiste noch 'nen 1Hz Generator gefunden 
(+2,3ppm hat der grins ), der mit 'nem 2.048MHz Oszillator betrieben 
wird! Also ran an Pin 7, ISP CLK auf 64kHz runter und ab die Post. 
Jaaaa, er lebt noch (:
Erstmal wieder int. 8MHz als Ref-CLK gesetzt, und verifiziert. Puh! - 
Urzustand wieder hergestellt. Und dann dachte ich so ganz tief in mir 
drin... "Moment, der hat vorhin das gleiche gemacht wie der 16U....!! - 
Ahhh!!!!"
Und was soll ich sagen...

S. Landolt schrieb:
>> Nun müsste man wissen was stimmt.
> Sehr wahrscheinlich die Angabe bei den Fuse-bits, ich wette mein Rennrad
> gegen einen Tretroller.

Nun noch die Einschränkung - es lässt sich nicht eine Fuse umstellen - 
halt auch nicht die für den int. RC Oszillator - dafür lässt sich die 
Offset-Calibration auslesen... Es kommt immer die Meldung "One or more 
registers differ". Also entweder hab ich das teil doch kaputt-ESD'd oder 
mal falsch verdrahtet?... ODER - kann das sein? - Der Bootloader hat 
damit was zu schaffen?

Gruß,
Micha (:

von S. Landolt (Gast)


Lesenswert?

Ich weiß nicht, was ein "AVRMKII Clone" macht; aber folgendes ist 
bekannt?
"The fuse values are latched when the device enters programming mode and 
changes of the fuse values will have no effect until the part leaves 
Programming mode."

von Micha W. (blackxiiv)


Lesenswert?

Ja, verstehe. Meinte "AVRISP MKII"-Nachbau.
Die Umstellung der CLK-Source ist doch auch ein Eingriff in die Fuses - 
das hat beim verfusen des 168P wunderbar geklappt! (:

von S. Landolt (Gast)


Lesenswert?

Weiß nicht. Es ist aber merkwürdig, dass der ATmega168P nicht mit dem 
Quarz lief. Ich würde einfach nochmal den ATmega16U2 auf 'int. RC-Osc.' 
programmieren, den AVRMKII Clone/Nachbau abziehen und die 
Betriebsspannung aus- und wieder einschalten, und vielleicht hat es ja 
geklappt.

von Micha W. (blackxiiv)


Lesenswert?

Wenn ich den 16U2 dran habe und nur die CLK-ource umstellen will kommt 
auch die Meldung "One or more registers differ". Als ob er mich da nicht 
ran lassen will. Den einzigen Grund den ich verstehen würde das Feature 
zu locken, wäre eine Gewährleistung damit das USB-Interface läuft.
"The USB controller requires a 48 MHz ±0.25% reference clock for USB 
Full-Speed compliance. This clock is generated by an internal PLL. The 
reference clock to the PLL must be provided from an external crystal or 
an external clock input." weil die int. CLK zu ungenau arbeitet? Aber 
warum gibt es dann ein Calibration Register dafür?

Meinst Du ich könnte ein leeres Programm flashen in dem ich einfach hart 
die Fuses so einstelle, dass er den int. RC Oszillator nehmen muss?

von S. Landolt (Gast)


Lesenswert?

Vielleicht geht es auch tatsächlich nicht, denn USB verlangt die 
Genauigkeit, s.a. '8.2 Clock Switch' und unter '20. USB Controller' "The 
USB controller requires a 48 MHz ±0.25% reference clock for USB 
Full-Speed compliance. This clock is generated by an internal PLL. The 
reference clock to the PLL must be provided from an external crystal or 
an external clock input."

von S. Landolt (Gast)


Lesenswert?

Jetzt muss ich passen, ich habe das Teil nicht hier, und noch mehr raten 
möchte ich nicht.

von Micha W. (blackxiiv)


Lesenswert?

und der 168P lief nicht mit dem Quarz, weil ich ext. Oszillator 
eingestellt habe - da erwartet er einen aktiven Oszillator, denke ich. 
Ging ja dann auch mit dem 2MHz Teil.

von S. Landolt (Gast)


Lesenswert?

Ich dachte, der ATmega168P wurde auf 'Quarz' umgestellt - warum sollte 
bei 'ext. Oscillator' eine Frequenz ("8MHz") angegeben sein?

von Micha W. (blackxiiv)


Lesenswert?

Ja, da hab ich mich recht dumm angestellt... Bei den 
Auswahlmöglichkeiten für ext. Quarze steht dann zB "3 - 8MHz". Das wäre 
es dann wahrscheinlich gewesen.

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.