EEPROM의 실제 수명은 얼마입니까?


21

ATMEL에 따르면 EEPROM 셀의 셀 수명은 약 100,000 쓰기 사이클 / 셀이다. 실제로 EEPROM이 실제로 어떻게 작동합니까?

셀 값을 변경하지 않으면 수명이 단축됩니까? I의 값이 기입 예를 들어, 0xFF또 다시 동일한 셀을,이 모든 상이한 기입이고 0x00, 0xFF, 0x00

답변:


19

상태에 따라 내부 EEPROM의 수명은 100,000 쓰기주기입니다. 이것은 추측이 아닙니다. ATmega328의 상당 부분이 문제없이이 숫자에 도달 할 것입니다. 나는 전에 세 개의 프로세서를 테스트했으며 모두 문제없이 150,000 사이클에 도달했습니다.

EEPROM의 실패 모드를 기록하는 것이 중요합니다. 대부분의 "EEPROM destroyer"프로젝트는 데이터가 전혀 쓰여지지 않을 때까지 반복적으로 읽기 / 쓰기를합니다. 이 시점 이전에는 EEPROM이 여전히 손상됩니다. 이는 합리적인 기간 동안 데이터가 유지되지 않는 것으로 나타납니다. 이런 이유로 쓰기주기가 10 만회 이상인 것은 현명하지 않습니다.

EEPROM은 ATmega의 RAM과 다릅니다. 간단하게 작성하는 것은 아니지만 친숙한 Arduino 라이브러리 에 싸여 있어 사용자에게 이러한 복잡성을 숨길 수 있습니다.

간접적 인 수준의 첫 번째 수준은 EEPROM 라이브러리 인데, 이는 간단하고 읽기와 쓰기를 위해 두 개의 다른 함수를 호출합니다. 여기서 eeprom_write_byte를 호출 합니다 .

이 함수는 인라인 어셈블리를 사용하므로 쉽게 이해할 수 없습니다. 이해하기 쉬운 주석이 있습니다.

프로그래밍 모드 설정 : 지우기 및 쓰기

이것은 EEPROM을 다루는 복잡성 중 하나를 암시합니다-쓰기 위해서는 먼저 지워야합니다. 즉, EEPROM.write ()를 호출하면 쓰고있는 값에 관계없이 쓰기주기가 수행됩니다.

이것은 0xFF를 반복해서 쓰는 것은 0xFF, 0x00,0xFF, 0x00 등을 쓰는 것과 같은 효과를 가질 것임을 의미합니다.

이 문제를 해결할 수있는 방법이 있습니다. EEPROM.write () 전에 EEPROM.read ()를 호출하여 값이 이미 같은지 확인할 수 있지만 시간이 더 걸립니다.

과도한 EEPROM 마모를 피하는 다른 기술이 있지만 사용 방법은 응용 프로그램에 따라 다릅니다.



9

한 번 최대 백만 번의 정격 주기로 외부 EEPROM에서 실험을 실행했습니다. 크게 손상되기까지 약 6 백만주기가 걸렸으며, 그 전에 산발적 인 부패가 발생하기 전에 진행되었습니다.

값을 변경하지 않는다고 말하면 동일한 데이터를 주소에 여러 번 쓰고 있다고 가정합니다. 아마도 주변 세포에 스트레스를주지는 않지만 거의 확실하게 생명에 스트레스를 줄 것입니다.


2

http://hackaday.com/2011/05/16/destroying-an-arduinos-eeprom/

Arduino는 벽 사마귀에 꽂혀“두 달 동안 소파 뒤에”앉아있었습니다. EEPROM은 47 일과 1,230,163주기 후에 첫 번째 쓰기 오류를 발견했습니다. 이는 atmel 데이터 시트의 사양보다 훨씬 우수하지만 유사한 실험 결과와 유사합니다.


이것은 너무 높은 것 같습니다. 내가 전에 200K에 150K 들어,하지만 결코이 있었다 : 오
asheeshr

5
문제는 이것이 모든 실패 모드를 감지하지 못한다는 것입니다. EEPROM이 손상되면 데이터 보유 시간이 점차 줄어 듭니다. 100,000주기에서 Atmel은 20 년 간의 데이터 보존을 보장합니다. 이 외에도 데이터 보존이 줄어 듭니다. 1.2m 사이클에 도달하고 오류가 표시되면 이는 즉시 오류입니다. 1,230,160 사이클에서 즉각적인 오류는 없었지만 데이터는 며칠 동안 만 유지되었을 수 있습니다.
Cybergibbons

0

매직 솔루션-쓰기 전에 Cybergibbons가 말한 내용을 코딩하지 않으려면 EEPROM.update () 함수입니다. 정확히 그렇게합니다 :

EEPROM.update (주소, 값);

값이 이미 저장된 값과 다른 경우에만 메모리를 쓰고 스트레스합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.