Moin,
ich habe hier eine kommerzielle "Linie" von Prototypen einer Hardware
für die ich Firmware zu schreiben habe. Aus Elektronischer Sicht nichts
Besonderes, es ist jeweils ein AtXMega(128A3,256BU) der ein paar
Sensoren abfragt, rechnet und auf unterschiedliche Arten auf Displays
was anzeigt.
Gestern habe ich einen neuen Branch der SW anfangen wollen, habe mir
u.A.
Makefiles "um die Ecke" kopiert und modifiziert..und damit einen
AtXMega128A3 erfolgreich "erschossen".
Ich benutze zum programmieren ein Jtag Ice MKII und avrdude 6.3.
Was hab ich gemacht? Ich habe make jtagdis eingehebelt:
Das hat auch funktioniert..nur war hinterher der Chip tot. Ich habe über
ein evtl. defektes FFC Kabel am Jtag Ice philosophiert, einen Xmega
woanders runter und auf die betreffende Hardware wieder drauf gelötet.
Danach habe ich mir die Fuses im funktionierenden Prozessor angesehen:
1
$ avrdude -p atxmega128a3 -c jtag2pdi -P usb -t
2
3
avrdude: AVR device initialized and ready to accept instructions
avrdude: verification error, first mismatch at byte 0x0000
66
0x00 != 0xe8
67
avrdude: verification error; content mismatch
68
avrdude: jtagmkII_program_disable(): bad response to leave progmode
69
command: RSP_FAILED
70
71
avrdude done. Thank you.
72
73
*** Error code 1
74
75
Stop.
76
make: stopped in /usr/home/holm/....O-NET/src
77
$
78
$ avrdude -p atxmega128a3 -c jtag2pdi -P usb -e
79
avrdude: jtagmkII_setparm(): bad response to set parameter command:
80
RSP_FAILED
81
82
avrdude done. Thank you.
83
84
$
...hmmm :-|
Ich habe damit möglicherweise als Letztes AtXmega256A3BU erfolgreich
programmiert..aber die 128A3 kann man damit wohl abschießen.
Lt. AtXmega-A Manual ist fusebyte 5 definiert aus BODACT
[5..4],EESAVE[3] und BODLEVEL[2..0]. Davon sollte Nichts den Prozessor
abschießen...
Ich habe Jörg (Tm) angerufen, konnte er sich auch nicht erklären und hat
abends experimentiert für mich:
>As Holm Tiffe wrote:>>> ..damit hat der sich nun auf die selbe Art und Weise abgemeldet wie>> der Andere.>>Ich habe meinen hier auch erstmal tot gelegt.>
(Sorry für das nicht authorisierte Zitat Jörg)
Was zur Hölle ist denn hier los? Probleme mit dem Kabel meines JTAG Ice
kann ich wohl erst mal ausschließen..
Hat das Problem schon mal Jemand gesehen und weiß evtl. wie man die
Prozessoren wieder zum Leben erweckt? Jörg wird heute probieren seinen
Proz. mit Amtel-Studio wieder zu erwecken...ich bin gespannt.
Ich setze mit 0xe8 eigentlich nur den BOD in Betrieb und den Level auf
3,2V ..sollte der Prozessor sich irren und die Speisung als zu niedrig
ansehen? ...bei Jörg auch?
Gruß,
Holm
Ist dir ein Zugriff über PDI möglich? Man kann JTAG erfolgreich abhängen
wie bei den AVR-8, PDI müsste aber weiterhin funktionieren.
Die XMega sollten bis zu 3,6V vetragen, wenn du den BOD in Verdacht
hast.
...das Ganze lief über PDI mit dem JTAG Ice. (jtag2pdi). Ich brauche
Port B
für andere Dinger als JTAG, deswegen auch jtag disable.
Die Betriebsspannung hoch zu nehmen war auch meine Idee, das mache ich
als Nächstes.
Gruß,
Holm
...ab 3,8V ist meiner hier wieder erwacht.
Die Toleranzen des Brownoutdetector-Levels liegen wahrscheinlich so hoch
das man sich bei einem Setting von 3,2V erfolgreich vor die Türe setzen
kann und nicht mal PDI das Ding wieder zu wecken in der Lage ist. (..bei
gemessenen 3,32V Ub)
Ich habe jetzt statt 3,2V (0xE8) 2,7V (0xEA) programmiert und der Proz
tut wieder was er soll...
Scheiße, ich hätte mir die blöde Umlöterei kneifen können...
Gruß,
Holm
confirmed
Habe hier einen ATxmega256A3 auf gleiche Weise wie Holm ins Nirvana
schicken können. Kann sein, dass er bei mir auch bei geringerer
Spannung schon wieder lebendig geworden wäre. Der Grund dafür, dass
der BOD auch dann wirksam ist, wenn er eigentlich gar nicht sein
sollte, steht im Datenblatt unter Errata #10. :( Damit waren dann
meine 2 x LR03 zu wenig. Habe ihn jetzt kurzzeitig mit einer 18650
malträtiert (die dürfte „ein wenig“ über dem offiziellen Limit gewesen
sein :), die Fuse zurück gesetzt, geht wieder.
Tja, und da es im Datenblatt lediglich für BOD level 0 Garantiewerte
gibt, für alle anderen nur typische, ist das sogar noch komplett in
der Spec. :}
Jörg W. schrieb:> confirmed>> Habe hier einen ATxmega256A3 auf gleiche Weise wie Holm ins Nirvana> schicken können. Kann sein, dass er bei mir auch bei geringerer> Spannung schon wieder lebendig geworden wäre. Der Grund dafür, dass> der BOD auch dann wirksam ist, wenn er eigentlich gar nicht sein> sollte, steht im Datenblatt unter Errata #10. :(
[..]
Zeig mir das mal für den AtXmega128A3 :-)) bei mir steht da nur 256 und
192
Gruß,
Holm
Ja, ich habe offensichtlich hier ne andere Revision von dem PDF.
Egal. Der Fix ist interessant: "Do not set the BOD Level higher then VCC
even if the BOD is not used."
..hab ich nicht gemacht...und das hat das Problem nicht gefixt.
Gruß,
Holm
die 3,2V sind ja auch nur der typische Wert, und der Hersteller schweigt
sich geschickt über die Toleranzen aus. Ebenso spielt wohl zusätzlich
noch die Anstiegsgeschwindigkeit der Vcc eine Rolle, da ist man
allerdings auch sehr zurückhaltend mit entsprechenden Angaben. Zumindest
2,4V BOD arbeitet hier bei vielen Geräten problemlos, nachdem ich auch
mal böse auf 3,2V hereingefallen bin.