Forum: Mikrocontroller und Digitale Elektronik Welcher ATXMEGA hat kein EEPROM Bug


von Johann (Gast)


Lesenswert?

Hallo Jungs,

ich verwende den ATXMEGA 128A3. Dieser hat leider einen BUG im EEPROM so 
das ich nur Daten in den EEPROM mit Hilfe eines umständlichen Workaround 
schreiben kann.

Hat jemand Erfahrung ob bei einigen XMEGA µC dieser Bug behoben wurde?


Dieses Workaround ist nicht wirklich eine schöne Lösung so das sonst nur 
ein externer EEPROM bleiben würde.

von Johann (Gast)


Lesenswert?

Benutzt keiner einen ATXMEGA ^^

von source (Gast)


Lesenswert?

> Benutzt keiner einen ATXMEGA ^^

Denke ich nicht dran, schließlich benutze ich PICs.

von Jens (Gast)


Lesenswert?

Wenn du bei Atmel in die Erata schaust, werden nur der A3/D3 und 256A3B 
aufgeführt.
Verwende doch den A1. Bei mir auf dem XPLAIN Board ist der A1 drauf. Der 
scheint das Problem nicht zu haben

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Johann schrieb:
> ich verwende den ATXMEGA 128A3. Dieser hat leider einen BUG im EEPROM so
> das ich nur Daten in den EEPROM mit Hilfe eines umständlichen Workaround
> schreiben kann.

Welchen Bug meinst du? Diesen wahrscheinlich:

http://www.atmel.com/Images/doc8241.pdf

> Hat jemand Erfahrung ob bei einigen XMEGA µC dieser Bug behoben wurde?

Betrifft nur Revision B, sollte daher eigentlich kein Problem mehr sein.

von Krapao (Gast)


Lesenswert?

Welchen Bug meinst du?

Rev.E (aktuelle Revision)
EEPROM page buffer always written when NVM DATA0 is written

Rev.B
EEPROM page buffer always written when NVM DATA0 is written
Writing EEPROM or Flash while reading any of them will not work

Den Workaround für Rev.E Bug würde ich nicht als umständlich bezeichnen. 
Und den für Rev.B... der ist nicht gerade schön, aber kein Beinbruch.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Johann schrieb:
> Dieses Workaround ist nicht wirklich eine schöne Lösung so das sonst nur
> ein externer EEPROM bleiben würde.

So hab ichs dann gemacht. Ein externer 93C46, da ich mir einfach nicht 
leisten konnte, die Kiste in den Sleep zu schicken.
Der Bug betrifft auch aktuelle A3 - die Revision scheint dabei egal zu 
sein, zumal ich noch keinen Weg gefunden habe, diese im Chip zu lesen. 
Angeblich haben die U Typen nahezu alle Errata beseitigt, könnte also 
auch fürs EEPROM zutreffen.

von Carsten W. (eagle38106)


Lesenswert?

Ich benutze ATxmega256A3s. Da habe ich keine Probleme, weder mit FLASH, 
noch mit EEPROM. Mit den 64A3s geht das nur mit dem Workaround.

Carsten

von Mischmasch (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Der Bug betrifft auch aktuelle A3 - die Revision scheint dabei egal zu
> sein, zumal ich noch keinen Weg gefunden habe, diese im Chip zu lesen.

Enthält die Signature Row nicht diese Information?

von Johann (Gast)


Lesenswert?

Ich hatte mich mal vor 1 Jahr damit genauer beschäftigt. Ich hatte mit 
dem JTAGICE MKII und den AVR Studio das Register der Revision 
ausgelesen.

Im Degugmodus kann man ja in den µC alle Register aulesen und ich hatte 
die Revision B

Wenn ich richtig informiert bin, dann muss man bei der aktuellen 
Revision auch noch das Workaround druchführen.

Den µC in den Sleep setzen und nur 1 Interrupt aktivieren und die 
anderen deaktivieren halte ich schon für sehr viel mehr als einen 
kleinen Workaround, zumal ich auch nich in den Sleep Modus schalten 
möchte.


ich bin der Meinung das der A1 auch von diesem Problem betroffen ist, 
aber ich kann noch mals ins Errata schauen.

Ich verstehe leider nicht warum Atmel dieses Problem mit der Revision E 
nicht behoben hat. Zwischen Revision B und E gibt es so gut wie keine 
Verbesserungen.


Ich werde mir mal die neuen U Typen anschauen. Hoffentlich sind da die 
Bugs weniger geworden.

von Johann (Gast)


Lesenswert?

Beim A1 steht das im Datenblatt unter Errata

EEPROM page buffer always written when NVM DATA0 is written
If the EEPROM is memory mapped, writing to NVM DATA0 will corrupt data 
in the EEPROM page buffer.

Problem fix/Workaround
Before writing to NVM DATA0, for example when doing software CRC or 
flash page buffer write, check if EEPROM page buffer active loading flag 
(EELOAD) is set. Do not write NVM DATA0 when EELOAD is set

Ich weis nicht ob dies das gleich Problem ist wie bei den A3 Revision B

Wenn ich dort einen Wert in den EEPROM schreiben will hängt sich der µC 
auf

von Johann (Gast)


Lesenswert?

Revision G vom A1 macht es auch nicht gerade besser. Da muss ich extra 
den Clock von 32MHz auf 2MHz umstellen um in den EEPROM zu schreiben 
oder ich muss das Workaround mit dem Sleep Modus benutzen.

Also stimmt es nicht das der A1 keine Probleme mit EEPROM hat.

EEPROM erase and write does not work with all System Clock sources
When doing EEPROM erase or Write operations with other clock sources 
than the 2 MHz RCOSC, Flash will be read wrongly for one or two clock 
cycles at the end of the EEPROM operation.

Problem fix/Workaround
Alt 1: Use the internal 2 MHz RCOSC when doing erase or write operations 
on EEPROM.

Alt 2: Ensure to be in sleep mode while completing erase or write on 
EEPROM. After starting erase or write operations on EEPROM, other 
interrupts should be disabled and the device put to sleep.

von Krapao (Gast)


Lesenswert?

Doch der Bug aus Rev. B für den es den Sleep Workaround gibt ("Writing 
EEPROM or Flash while reading any of them will not work"), der ist in 
Rev. E behoben.

Der Workaround für den Bug in Rev. B und E ("EEPROM page buffer always 
written when NVM DATA0 is written") ist wesentlich einfacher.

von Krapao (Gast)


Lesenswert?

> Doch der Bug aus Rev. B
> Der Workaround für den Bug in Rev. B und E

Alles auf A3 aus deinem Erstposting bezogen.
Mit dem A1 bringst du weitere Spieler aufs Feld :)

von Johann (Gast)


Lesenswert?

Ich habe mal mal der ATXMEGA U Serie mit den USB Full Speed Serie 
geschaut. Dort wird ja nur über 1 Bug im Errata beschrieben.

Somit ist dies der µC mit den wenigsten Bugs auf der Welt ^^

Hat einer mit der U Serie bereits Erfahrung gemacht? Gibt es dort 
Nachteile gegenüber der A3 ohne U Serie?

von Falko J. (spacefrog)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe hier gerade einen AtxMega128a1u. Mein Bootloader der mit dem 
alten xmega128A1 funktioniert hatte, hat nicht mehr funktioniert. Und 
zwar ist er irgendwo beim beschreiben des Flash hängen geblieben. Dann 
habe ich mal den 2 Mhz statt  den 32Mhz Osz. eingestellt und es läuft. 
Die Ursache ist mir aber nicht klar... Hat da jemand eine Idee? Der 
Bootloader basiert auf eine ältere version von avr-xboot... hab mal in 
den Anhang gehängt...


Ansonsten läuft er bis jetzt ganz gut, ADC scheint besser zu sein, bin 
aber auch erst einen Tag am testen...
Gruß
Falko

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der XMEGA128-A3U-AU hat keine der o.g. Probleme und läuft auch sonst 
sehr stabil. Sind gerade durch FCC und CE durch ;-)

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.