ATmega168PB device signature 0x000000

OP #4795908
Lesenswert?

Hi!

Ich habe eine Schaltung, auf der ich bisher den ATmega168PA verbaut 
hatte. Nun hat der Fertiger auf die gleiche Platine den ATmega168PB 
verlötet. Laut Datenblatt ist der ATmega168PB jedoch kein drop-in 
replacement für den ATmega168PA. Er hat nämlich auf Pin3 und Pin6 keine 
GND/VCC sondern neue Port-Pins PE0 und PE1.

Dennoch dachte ich, dass ich ihn zumindest mit einem ISP genauso 
ansprechen können muss, wie einen ATmega168PA. Leider gelingt mir das 
nicht. Ich bekomme immer eine device signature 0x000000 zurück 
geliefert. Was könnte da schief laufen?

Ich benutze keinen externen Quarz/Oszillator, 5V, AVR ISP mkII bzw. 
mySmartUSB light. Ich habe es schon mit avrdude (auch mit -F -B 22) und 
BASCOM probiert. Die Kommunikation klappt einfach nicht. Eigentlich 
müsste doch auch SCL über den ISP reichen, um den ATmega zu 
programmieren.

Mit einem 168PB-Xplained kann ich kommunizieren. Der ATmega ist werksneu 
verbaut. Es kann also auch kein debugWire vorher aktiv gewesen sein.

Kann es sein, dass dadurch, dass ich für den PA auf Pin3 GND und Pin6 
VCC hatte, dies bei dem PB zu (Zer-)Störungen führt und er deshalb nicht 
funktioniert? Irgendwie kann ich mir das nicht so recht vorstellen, da 
ich ja auch Taster gegen GND oder VCC an die Port Pins klemmen kann.

Ich habe auch schon probiert, VCC an Pin 6 wegzunehmen (Leiterzug 
weggekratzt). Das hat nix gebracht. Pin3 kann ich nicht wegnehmen, da 
das unter dem Chip weiter zu GND auf Pin5 und Pin 21 geleitet wird. 
Eigentlich dürfte das auch fast egal sein, da mit dem 
https://hobbyking.com/en_us/atmel-atmega-socket-firmware-flashing-tool.html 
ein Direktzugriff auf die Pins des Chips erfolgt. Nur leider 
funktioniert es eben mit diesem Kabel-Socket auch nicht.

Ich habe auch schon drei weitere Platinen getestet (und dabei 
möglicherweise zerstört). Nun bleibt mir fast nur noch, den ATmega mal 
runter zu löten und separat zu testen. Oder hat jemand noch eine Idee?

--
Viele Grüße,
Mathias
OP #4796332
Lesenswert?

Um mir nochmal Klarheit zu verschaffen:
> Kann es sein, dass dadurch, dass ich für den PA auf Pin3 GND und Pin6
> VCC hatte, dies bei dem PB zu (Zer-)Störungen führt und er deshalb nicht
> funktioniert? Irgendwie kann ich mir das nicht so recht vorstellen, da
> ich ja auch Taster gegen GND oder VCC an die Port Pins klemmen kann.

Das interessiert mich wirklich brennend.
OP #4796846
Lesenswert?

Also ich hab es probiert und es funktioniert nicht. Dann habe ich ein 
neues bisher spannungsfreies Board genommen, dort den ATmega168PB 
runtergelötet und probiert. Es geht auch nicht. Es kommt einfach keine 
Kommunikation zustande.

Ich kann mir nicht vorstellen, dass die Dinger werksseitig so gefused 
sind, dass man mit ISP nicht flashen kann. Bei 15 Chips könnte ja mal 
einer kaputt sein. Nur alle?
Für Plagiate ist es vermutlich auch noch zu früh, oder?

Hat jemand vielleicht noch eine Idee?
OP #4796981
Lesenswert?

Also wir haben jetzt sogar probiert, einen externen Takt an XTAL1 
anzulegen. Auch das hilft nix. Es kommt einfach keine Kommunikation 
zustande.

Seltsam ist nur, dass bei Verwendung von avrdude und verschiedenen 
Werten für die Parameter -B bzw. -i eine unterschiedliche device 
signature zurückgeliefert wird. Das ist dann mal 0x640000 oder 0x4c0000 
oder auch andere Werte für das höchste Byte. Die anderen beiden Bytes 
sind immer 0. Heißt das, dass da doch eine Kommunikation stattfindet, 
nur noch nicht mit der richtigen "Frequenz"?
Moderator Persönliche Seite #4796989
Lesenswert?

Mathias W. schrieb:

> Heißt das, dass da doch eine Kommunikation stattfindet,
> nur noch nicht mit der richtigen "Frequenz"?

Sieht mir irgendwie alles suspekt aus.

Es gibt auch keine „richtige“ Frequenz, sondern höchstens eine zu
hohe, und bei der reagiert das Target einfach nicht, weil es dann
die Initialisierungssequenz nicht richtig liest.  Langsamer werden
kann man ziemlich beliebig.
OP #4796993
Lesenswert?

Ich glaube mittlerweile auch, dass die Charge defekt ist. Im Datasheet 
steht ganz klar unter "10.2.1 Default Clock Source" drin:

"The device is shipped with internal RC oscillator at 8.0MHz and with 
the fuse CKDIV8 programmed, resulting in 1.0MHz system clock. The 
startup time is set to maximum and time-out period enabled. (CKSEL = 
"0010", SUT = "10", CKDIV8 = "0"). The default setting ensures that all 
users can make their desired clock source setting using any available 
programming interface."

Da das nicht funktioniert, müssen sie wohl defekt sein. So ein Mist!
Gast #4797111
Lesenswert?

An Stelle von Mega88 hatte ich testweise auch ein paar Mega88PB 
eingesetzt. Da gab es keine Probleme mit der Programmierung.
Was man nicht machen darf, ist die "full swing" Sicherung zu setzen. 
Aber Du nutzt ja nur den internen Oszillator.

Vielleicht zeigst Du Deine Schaltung, um zu sehen, was da die Ursache 
sein könnte.
OP #4797223
Lesenswert?

Ich konnte das Problem lösen. Es liegt daran, dass der 168PB ein anderes 
Startverhalten als der 168PA hat. Nach dem Anlegen einer Spannung ist er 
nämlich nicht sofort per ISP kommunikationsbereit. Muss mal nachschauen, 
wo das stand.

Ich verwende primär den "mySmartUSB light" zur Programmierung. Dieser 
liefert die Spannung beim Programmieren gleich mit. Entweder bricht die 
aus irgend einem Grund sofort zusammen oder wird wieder abgeschaltet, 
wenn keine Kommunikation mit dem Chip zustande kommt. Jedenfalls 
funktioniert es, nachdem ich eine feste externe Spannung anlege.
Mit ist das auch schon aufgefallen, als ich das Xplained-Board getestet 
hatte. Deshalb hatte ich vorgestern auch schon mal eine externe Spannung 
angelegt. Nur muss ich da was übersehen haben, sonst wäre ich früher auf 
die Lösung gestoßen.

Und bezüglich meiner Schaltung: Damit hat es überhaupt nichts zu tun, da 
ich einen Chip auch einzeln auf dem Tisch liegen habe und da das Problem 
auch auftritt.

Wie gesagt, das Problem ist spezifisch für den 168PB; mit dem 168PA 
funktioniert es.
Gast #4797281
Lesenswert?

Mathias W. schrieb:
> Und bezüglich meiner Schaltung: Damit hat es überhaupt nichts zu tun, da
> ich einen Chip auch einzeln auf dem Tisch liegen habe und da das Problem
> auch auftritt.

Ich habe auch einen Chip auf dem Tisch zu liegen: kein Problem!

> Wie gesagt, das Problem ist spezifisch für den 168PB; mit dem 168PA
> funktioniert es.

Du bist mit Deiner Fehleranalyse wohl noch nicht fertig.

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