Forum: Mikrocontroller und Digitale Elektronik AtXmega256A3BU probleme mit Chip erase?


von Holm T. (Gast)


Lesenswert?

Moin,

Ich habe hier Prototypen neuer Hardware auf dem Tisch, habe Firmware zu 
portieren die ich vorher für ein Board mit AtXmega128A3 geschrieben habe 
und die nun auf einem AtXmega256A3BU laufen soll. Damit habe ich soweit 
kein Problem, aber mich ärgert die Programmiererei..

Ich benutze ein JtagIce MKII mit PDI Adapter und avrdude.
Einer der Prozessoren ließ sich genau 1 Mal löschen und reagiert auf 
jeden weitern Versuch von Chip erase mit einem Fehler:
1
avrdude -p atxmega256a3bu -c jtag2pdi -P usb  -e
2
3
avrdude: AVR device initialized and ready to accept instructions
4
5
Reading | ################################################## | 100% 0.02s
6
7
avrdude: Device signature = 0x1e9843
8
avrdude: erasing chip
9
avrdude: jtagmkII_chip_erase(): bad response to chip erase command: RSP_FAILED
10
11
avrdude done.  Thank you.
12
13
*** Error code 255
14
15
Stop.

mit vielen -v ist nicht viel mehr heraus zu bekommen als das das Löschen 
fehl schlägt, ich habe deswegen schon mit Jörg telefoniert dem dazu auch 
nicht viel einfiel.
Lustig daran ist das der Chip sich trotzdem programmieren läßt:
1
$ make -f Makefile.mmc program
2
avrdude -p atxmega256a3bu -c jtag2pdi -P usb -U flash:w:fs4.hex:i
3
4
avrdude: AVR device initialized and ready to accept instructions
5
6
Reading | ################################################## | 100% 0.01s
7
8
avrdude: Device signature = 0x1e9843
9
avrdude: NOTE: Programmer supports page erase for Xmega devices.
10
         Each page will be erased before programming it, but no chip erase is performed.
11
         To disable page erases, specify the -D option; for a chip-erase, use the -e option.
12
avrdude: reading input file "fs4.hex"
13
avrdude: writing flash (28186 bytes):
14
15
Writing | ################################################## | 100% 6.27s
16
17
avrdude: 28186 bytes of flash written
18
avrdude: verifying flash memory against fs4.hex:
19
avrdude: load data flash data from input file fs4.hex:
20
avrdude: input file fs4.hex contains 28186 bytes
21
avrdude: reading on-chip flash data:
22
23
Reading | ################################################## | 100% 1.39s
24
25
avrdude: verifying ...
26
avrdude: 28186 bytes of flash verified
27
28
avrdude done.  Thank you.
29
30
$

..und avrdude wohl jeweils die einzelnen Memory Blöcke implizit vor dem 
Programmieren löscht und dazu der selbe Befehl wie beim Chiperase, aber 
mit anderen Parametern benutzt wird.

Ich habe vorgestern dann eine andere Platine genommen und mit der weiter 
gemacht. Gestern Nachmittag fing aber der neue Chip auch an zu stänkern 
und wollte manchmal erst nach dem 3. Versuch löschen..

Ist das hier schon mal Jemandem begegnet?

Gruß,

Holm

von Arduinoquäler (Gast)


Lesenswert?

Unscharfe Fehler zu denen ich jetzt deinen zähle führe ich
immer auf Probleme im Aufbau zurück.

Deswegen: zeig deine Platine damit wir (vielleicht) sehen ob
der Designer/ Layouter alles richtig gemacht hat.

Beschaltung (herzuzeigen) wäre natürlich auch nicht schlecht .....

von Holm T. (Gast)


Angehängte Dateien:

Lesenswert?

Arduinoquäler schrieb:
> Unscharfe Fehler zu denen ich jetzt deinen zähle führe ich
> immer auf Probleme im Aufbau zurück.
>
Na dann mach das mal.. (rechts waren 2 Tanten verkehrt herum bestückt)

> Deswegen: zeig deine Platine damit wir (vielleicht) sehen ob
> der Designer/ Layouter alles richtig gemacht hat.

Hmm...

>
> Beschaltung (herzuzeigen) wäre natürlich auch nicht schlecht .....

Vergiß es, kommerziell.
Es ist die selbe Standardbeschaltung wie beim AtXmega12A3.

Gruß,

Holm

von Arduinoquäler (Gast)


Lesenswert?

Holm T. schrieb:
> Na dann mach das mal..

Quarz oder Quarzoszillator?
Welche Frequenz?

Der schwarze ist ein Uhrenquarz?

von Holm T. (Gast)


Lesenswert?

8Mhz Quarz, PLL auf 32Mhz.
Und ja, das Schwarze ist einer 32,768Khz Quarz für die RTC (momentan 
noch außer Betrieb).

Gruß,

Holm

von Arduinoquäler (Gast)


Lesenswert?

Holm T. schrieb:
> 8Mhz Quarz, PLL auf 32Mhz.

Dann sind vermutlich die Lastkapazitäten schlecht plaziert,
(evtl falsch dimensioniert?) oder nicht vorhanden .... um
mal auf die Schnelle was zu meckern ....

Welchen Wert haben die Lastkapazitäten wenn vorhanden?

von Arduinoquäler (Gast)


Lesenswert?

Holm T. schrieb:
> Und ja, das Schwarze ist einer 32,768Khz Quarz für die RTC

Wenn du die PLL mal temporär umstellen kannst auf diesen
Quarz könntest du einen Fehler mit dem 8MHz Quarz
bestätigen/ausschliessen.

von Jim M. (turboj)


Lesenswert?

Holm T. schrieb:
>> Deswegen: zeig deine Platine damit wir (vielleicht) sehen ob
>> der Designer/ Layouter alles richtig gemacht hat.
>
> Hmm...

Hat er nicht. Da sind viel zuviele nicht angeschlossene Kupferflächen 
drin, die wie Antennen wirken können. Und das dürfte eher nicht der 
einzigste Fehler sein.

von Holm T. (Gast)


Lesenswert?

Die Firmware läuft wie erwartet, serielle Schnitten und ADCs laufen, 
Digitalsensoren wie DS18B20 und AM2302 werden problemlos gelesen,
EEPROM funzt, SD-Karte kommuniziert, programmieren sowie im Terminalmode 
den Flash lesen und Fuses anzeigen geht, nur Bulk Erase geht nicht.
Lastkapazität ist 2x15pf wie auf dem Vorgängerboard.

Eher ich die PLL auf den 32er Quarz drehe würde ich erst mal einen Pin 
toggeln und einen Zähler da ranhängen.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Jim M. schrieb:
> Holm T. schrieb:
>>> Deswegen: zeig deine Platine damit wir (vielleicht) sehen ob
>>> der Designer/ Layouter alles richtig gemacht hat.
>>
>> Hmm...
>
> Hat er nicht. Da sind viel zuviele nicht angeschlossene Kupferflächen
> drin, die wie Antennen wirken können. Und das dürfte eher nicht der
> einzigste Fehler sein.

Reality Check please.

Das Ding macht außen herum im Wesentlichen Gleichstrom. Ich werde Deinen 
Hinweis zwar weiter geben weil ich auch kein Fan "herumliegender" 
Kupferflächen bin, aber das ist mit Sicherheit nicht das Problem weil 
viel "zuviele" auch nicht richtig ist, in Fakt sehe ich (mit der Platine 
in der Hand) genau 3 solche Flächelchen in der relevanten Gegend die 
nirgends dran hängen und keine Via haben.

Vielleicht laß ich mich rumkriegen und löte den Quarz runter, speise den 
Takt extern vom Generator ein. Ich bin mir aber sicher das der Clock 
nicht die Ursache ist.

Gruß,

Holm

von Peter D. (peda)


Lesenswert?

Ich sehe da keine schweren Layoutfehler.
Ich hätten den 8MHz-Quarz und die beiden Kondis aber vertauscht, d.h. 
den GND der Kondis näher am MC.
Und beim nächsten mal "Remove Dead Copper" anwählen.

Hast Du mal den Programmer des AVR-Studio probiert, ob der auch Probleme 
macht?

von Arduinoquäler (Gast)


Lesenswert?

Holm T. schrieb:
> Lastkapazität ist 2x15pf wie auf dem Vorgängerboard.

Eher zu wenig pF (aus der "gemittelten" Erfahrung).
Aber bedenklich stimmt mich die Platzierung (sollte nahe
der Prozessor-Masse sein), und ob die überhaupt eine direkte
Masseverbindung haben ....  du hast dich nicht dazu geäussert.

Man kann diesen Sachverhalt so aus dem Layout leider nicht
genau erkennen.

von Holm T. (Gast)


Lesenswert?

Ich habe das Layout nicht gemacht und weiß nicht sehr viel darüber, die 
Schaltung habe ich freilich.
Ich kann nur sagen das die Platine nur an sehr wenigen Stellen 
durchscheinend ist, d.h. die hat nicht nur 2 Lagen.

>"Eher zu wenig pF"

Atmel gibt 10 bis 40pf im Bereich von 2-9Mhz an, da ich auch den Quarz 
und dessen Datenblatt nicht kenne...

Die Last-Cs sind über eine Via mit einer der inneren Lagen verbunden,
auf der Rückseite kommt keine VIA wieder raus.
Ich denke nicht das der Layouter unerfahren ist, die Fa. macht sonst 
eher Hybrid-ICs und das Cad Programm ist nicht Eagle...

Gruß,

Holm

von Kunz (Gast)


Lesenswert?

Die XMegas lassen sich komplett ohne externen Takt oder Quarz 
programmieren - bevor hier noch weiter ´rumvermutet wird.

@TO: Flashe mal mit dem ATMEL-Studio7, vielleicht geht´s ja dann. Den 
Fehler, den Du da beschreibst, hatte ich mit noch keinem XMega...
Und prüfe mal die Spannungen an allen VCC/AVCC/GND-Pins.

von Holm T. (Gast)


Lesenswert?

Kunz schrieb:
> Die XMegas lassen sich komplett ohne externen Takt oder Quarz
> programmieren - bevor hier noch weiter ´rumvermutet wird.

Ok.
>
> @TO: Flashe mal mit dem ATMEL-Studio7,

Das macht mir Schwierigkeiten..Ich habe hier hier nuch Dachliegefenster 
von Velux....ok, ein Notebook mit Vista treibt sich noch rum...

> vielleicht geht´s ja dann. Den
> Fehler, den Du da beschreibst, hatte ich mit noch keinem XMega...
> Und prüfe mal die Spannungen an allen VCC/AVCC/GND-Pins.

Das werde ich mal tun.

Gruß,

Holm

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.