Forum: Mikrocontroller und Digitale Elektronik ATmega16U2 Signature ID read fail


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Micha W. (blackxiiv)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Du brauchst beim 16u2 doch keinen ISP! Usb reicht!

von Micha W. (blackxiiv)


Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, da lief halt auch nix... aber ISP sollte halt immer laufen.

von Alex W. (a20q90)


Bewertung
0 lesenswert
nicht lesenswert
Pins vertauscht? Zählrichtung richtig?

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht 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)


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

von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hatte ich es auch in Erinnerung.
Zumindest in meinem Datenblatt steht es aber anders.

von S. Landolt (Gast)


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

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Micha W. (blackxiiv)


Bewertung
0 lesenswert
nicht 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)


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

von Micha W. (blackxiiv)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.