Probleme mit AT24C512C, nach mehrmaligem beschreiben Defekt

OP #4952848
Lesenswert?

Hallo Zusammen,

nach der Umstellung auf SMD (ich weiß, ich bin spät dran) habe ich mit 
den Atmel Speichermodulen AT24C512C folgendes Problem.

Nach 3 bis 6 maligem kompletten Beschreiben des Speichers und 
anschließendem Auslesen, sind einige wenige Speicherzellen defekt, d.h. 
nicht mehr beschreibbar.
In einem Speichertest beschreibe ich den kompletten Speicher abwechselnd 
mit 2 verschiedenen Muster und lese diese dann wieder aus.

Als Controller verwende ich einen ATMEGA 1284P-AU, 20MHz im 5V Betrieb.
Die 5V liegen auch stabil an, auf dem Scope kann ich auch keine 
Auffälligkeiten sehen.

Der Speicher ist für 5,5V Betrieb zugelassen und hat auch die richtige 
Kennung aufgedruckt. Mein erster Verdacht war, das ich da die 3,6V 
Variante erwischt habe, was aber nicht der Fall ist.

Von 6 verschiedenen Speicher ICs sind 4 Stück bereits defekt, nur 2 
Speicher haben bisher 30 mal den Speichertest komplett überstanden.

Die gleiche Schaltung und Software habe ich schon viele Jahre im Einsatz 
(allerdings mit bedrahteten Bauteile), bisher ohne Probleme.

Hat jemand einen Tip für mich ?

Gruß
Jan
OP #4952921
Lesenswert?

Zuerst schreibe ich 55(h) in den kompletten Speicher und lese ihn dann 
komplett aus und vergleiche.
Dann mache ich das gleiche mit AA(h).

Auslesen tue ich in den defekten Zellen dann immer den Wert, der beim 
letzen korrekten Schreiben dort drin war.

Die ersten 3-6 Mal ist alles in Ordnung und dann sind halt einge Zellen 
defekt und es steht dort immer der gleiche Wert drin.

Gruß
Jan
OP #4953015
Lesenswert?

Hallo Peter,


als I2C Takt verwende ich schon 100kHz.
Pullup verwende ich schon seit Jahren 1,5k  , bisher immer ohne 
Probleme.
Der Delay ist auf 5ms eingestellt.

Kann ich den durch die Ansteuerung den Chip wirklich kaput machen?
Die ersten 6 Mal klappt es ja, nur wenn der Fehler einmal auftritt, dann 
bei diesem Chip permanent.

Bin da wirklich ratlos.
Mir ist die mögliche Ursache noch nicht klar:
# Hardwarefehler in der Beschaltung ?
# Spikes in der Versorgung ?
# Fehler in der Ansteuerung ?
# defekte Charge ?


Habe mir jetzt Speicher von der Firma ON Semiconductor bestellt, mal 
sehen wie die sich verhalten.

Gruß
Jan
OP #4953123
Lesenswert?

Habe leider hier am Platz gerade kein Scope, also habe ich das delay auf 
20ms erhöht. Damit dauert der Speichertest erheblich länger, aber der 
bereits "defekte" Speicherbaustein macht die gleichen Fehler wie mit 
5ms.

Ob ein "neuer" Speicher dann nicht mehr zerstört wird, wird die Zeit 
zeigen.

Gruß
Jan
#4953332
Lesenswert?

spendiere mal dem 100nF Kerko nen Elko Bruder mit 10µF vielleicht geht 
die Spannung mit der Zeit in die Knie probiere mal ein anderes Muster 
beim Schreiben 0b00000001 und 0b01111111.

Aufjedenfall würde ich aufs ACK warten als eine feste Wartezeit 
verwenden, um das Programm unabhängig vom µC Takt zu machen.
OP #4954160
Lesenswert?

Hallo Peter,

ich versuche mich gerade am ACK-Polling, stehe da aber irgendwie auf dem 
Schlauch.

Schreibvorgang bisher:

i2c_start_wait(i2cEEPROM+I2C_WRITE);
i2c_write(EE_TX_Zeiger >> 8);
i2c_write(EE_TX_Zeiger);
i2c_write(wert_byte);
i2c_stop();

_delay_ms(5);

Anstelle des Delay muss man jetzt auf das Ack warten.
Hast du da evtl. ein Beispiel für mich ?

Gruß
Jan
Gast #4954611
Lesenswert?

Hallo

Jan M. schrieb:
> Schreibvorgang bisher:
>
> i2c_start_wait(i2cEEPROM+I2C_WRITE);
> i2c_write(EE_TX_Zeiger >> 8);
> i2c_write(EE_TX_Zeiger);
> i2c_write(wert_byte);
> i2c_stop();
>
> _delay_ms(5);
>
Oh, shit.

Dir ist schon klar das die 24C512 blockweise schreiben? D.h. wenn du nur 
ein Byte schreibst werden in Wirklichkeit 128 geschrieben.
Die Tatsächlichen Write-Cycles sind also in wirklichkeit 128 mal so 
viele wie du meinst.

da1l6
Gast #4954633
Lesenswert?

da1l6 schrieb:

> Dir ist schon klar das die 24C512 blockweise schreiben? D.h. wenn du nur
> ein Byte schreibst werden in Wirklichkeit 128 geschrieben.
> Die Tatsächlichen Write-Cycles sind also in wirklichkeit 128 mal so
> viele wie du meinst.

Wo steht das im Datenblatt?
(Firma: matzetronics) #4954646
Lesenswert?

Kiesel schrieb:
> Wo steht das im Datenblatt?

Nirgends. Sowohl der AT24C512 als auch der neuere AT24C512B und C Typ 
erlauben zwar auch PageWrite mit 128 Bytes, aber ein einzelnes Byte zu 
schreiben ist genauso erlaubt. Dabei wird auch nirgends erwähnt, das das 
immer einem PageWrite auslöst.
Wenn der TE alle Chips aus einer Charge bezieht, würde ich da einen 
Fehler vermuten und mal auf ein anderes Produkt ausweichen.
#4954745
Lesenswert?

Aus dem Datenblatt des 24LC1025:

When doing a write of less than 128 bytes
the data in the rest of the page is
refreshed along with the data bytes being
written. This will force the entire page to
endure a write cycle, for this reason
endurance is specified per page.
Gast #4954750
Lesenswert?

Georg G. schrieb:
> Aus dem Datenblatt des 24LC1025:
>
> When doing a write of less than 128 bytes
> the data in the rest of the page is
> refreshed along with the data bytes being
> written. This will force the entire page to
> endure a write cycle, for this reason
> endurance is specified per page.

Wenn man dies auf den AT24C512C übertragen kann, dann ist nach 3 - 
6maligen komplett beschreiben (siehe TO) jede Page mit dem 128fachen 
"belastet". Das erklärt aber noch lange nicht den Ausfall der Chips, da 
jede Page 10^6 Schreibzyklen verkraftet.
#4954797
Lesenswert?

Kiesel schrieb:
> Georg G. schrieb:
>> Aus dem Datenblatt des 24LC1025:
>>
>> When doing a write of less than 128 bytes
>> the data in the rest of the page is
>> refreshed along with the data bytes being
>> written. This will force the entire page to
>> endure a write cycle, for this reason
>> endurance is specified per page.
>
> Wenn man dies auf den AT24C512C übertragen kann, dann ist nach 3 -
> 6maligen komplett beschreiben (siehe TO) jede Page mit dem 128fachen
> "belastet". Das erklärt aber noch lange nicht den Ausfall der Chips, da
> jede Page 10^6 Schreibzyklen verkraftet.

Ich kann das bestätigen. Ich testet mal so einen Speicherbaustein und 
brachte es auf fast 14^6 Page Schreibzyklen bis sich Fehler zeigten. Das 
waren allerdings AT24C1024s. Pattern war 0x55 und 0xAA. Die Ratings 
scheinen also sehr konservativ zu sein. Busgeschwindigkeit war 400kb. 
3K3 PU bei 5V. Nach Ausfall waren auch viele benachbarte Zellen 
schadhaft.

Ein interner PIC EEPROM brachte es auf ähnliche Werte.

Ich würde denselben Test mit Bausteinen aus sicherer Quelle wiederholen.

mfg,
Gerhard
OP #4955278
Lesenswert?

Habe gestern endlich die alternativen Speicher von der Fa. ON 
Semiconductor(CAT24C512WI-GT3) bekommen und eingelötet. Diese sind 
deutlich günstiger als die Atmel.

Bisher laufen drei Platinen ohne Probleme im Dauertest.
Werde das weiter beobachten.

Habe da wohl eine "schlechte" Charge oder Fake Speicher erwischt.

Obwohl alle Speicher bisher von renomierten Lieferanten geliefert 
wurden.

Gruß
Jan
Gast #4955582
Lesenswert?

Gerhard O. schrieb:

> Ich kann das bestätigen. Ich testet mal so einen Speicherbaustein und
> brachte es auf fast 14^6 Page Schreibzyklen bis sich Fehler zeigten. Das
> waren allerdings AT24C1024s. Pattern war 0x55 und 0xAA. Die Ratings
> scheinen also sehr konservativ zu sein.

Eine Flash-Zelle gilt als defekt, wenn die spezifizierte Data Retention 
Time nicht mehr eingehalten wird. Du musst also nach dem letzten 
Schreibzugriff zehn Jahre warten, erst dann kannst Du beurteilen ob der 
Baustein defekt ist oder nicht.

Wenn der Baustein schon dermassen schrottreif ist, dass die Zellen 
direkt nach dem Schreiben einen Fehler liefern, dann wären Deine Daten 
darin auch schon etliche tausend Zyklen eher nich mehr sicher gewesen.
Gast #4955711
Lesenswert?

Jan M. schrieb:
> Obwohl alle Speicher bisher von renomierten Lieferanten geliefert
> wurden.

Von wem konkret? Sind diese offiziell als authorisiertrr Distributor bei 
microchip gelistet? Wenn ja dann sofort eine failure analyse forden, 
wenn nein draus lernen und nur bei authorisierten distis kaufen. 
Dasselbe könnte dir mit jedem Bauteil schnell passieren.

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