ATmega флэш-жадысына 10000 есе жазсаңыз не болады?

Мен әр 5 минут сайын кодты қотарып, салыстырмалы түрде қарқынды сынақ және қателіктерді дамытатынымды түсіндім және бұл әдетке жолдағы қиындықтар тудыруы мүмкін екенін түсіндім, әсіресе, мен тапсырыс тақтасында (Arduino емес) жұмыс істейтін болсам, чип оңай алмастырылмайды.

Не болады?

Мен avrdude жазылған флэшты тексеретінін байқадым. Мәселен, қателіктерді байқай бастайсыз және жаза алмайсыз ба?

Немесе ол кейде жұмыс істей ме, кейде емес?

Example of heavy use: A custom PCB where easy replacement of the MCU is not possible. 10,000 writes would equal 100 days, each 8 hours of development, with flash write every 5 minutes.

Менде жиі кездесетін әдеттегідей жазулар бар: Мен кодты кодқа енгіземін, шағын оңтайландырулардың сынау жылдамдығын жақсартады, бағдарламаның өлшемін оңтайландыру және тағы басқалар.

Қазір мен жиі жыпылықтап, тестілеуден бұрын кодты қайта қарап шығуды тоқтатуға тырысамын.

In conclusion: Yes, it's unlikely, and arguably, if you're working full-time on a board, less intensively, for, say, a year, you can probably afford to buy another board when the first one starts failing the flash-verification.

5
Шын мәнінде, бұл анықталмаған мінез-құлық болады. Іс жүзінде бәрі орын алуы мүмкін және бұған жол бермеу керек.
қосылды автор dotnetengineer, көзі
Сомның программалық тақтасы немесе IDE шын мәнінде мұны жасайды. Бірақ көбінесе микропроцессорды 10 000-нан астам рет бағдарламалауға болмайды.
қосылды автор dotnetengineer, көзі
Деректер кестелері консервативті болып келеді, ал олар берген нөмірлер әдетте кең температура ауқымына жарамды. Бөлме температурасында, 10 к цикл шегінен асып кетуге болады. Сіз тек 100% сенімді бола алмайсыз, өйткені Atmel 10K-дан асатын ешқандай уәде бермейді.
қосылды автор Sprogz, көзі
Менің білуімше, авред жазылған байтты тексереді. Сіз білмейсіз, ол сәтсіздікке ұшырады. Кейбіреулері EEPROM-мен сынақ өткізді, бірақ мен Flash-пен сынақты білмеймін. Ескі ATmega8 флэш (10к) және EEPROM (100к) үшін бірдей сандарға ие, бірақ жаңа чиптер жақсы. Менің болжауымша, бұл 10-нан астам жазудан кейін сәтсіздікке ұшырады.
қосылды автор Standback, көзі
@Jot, мен тағы да сенімдімін, нәтиже бүлінетін болады, егер avdude біртіндеп жиі жұмыс істемей қалады және қайталау керек, немесе егер жай ғана дұрыс жазуға қабілетсіз болады, мысалы: әрдайым дұрыс емес деректерді береді.
қосылды автор jmm, көзі
Мен өзімді қалай анықтауға тырысамын, бұл қалай жүзеге асады.
қосылды автор jmm, көзі
@Paul, Осылайша, төтенше жағдайларда, флэш жазу санауын бөлек қадағалауға болар ма еді? Себебі сәтсіздік режимі болжамды түрде әрекет етпейді ме? Мысалы: флэш жазу кезінде қайталанған қате
қосылды автор jmm, көзі

5 жауаптар

Не болады?

ол паритетті тексеруден өтуі мүмкін. сондықтан жүктеу коды мүмкін болмады.

Сонда төзімділікке байланысты бірде-бір флэш-негізделмеген мкж істемейді. бұл есімде есіме түсетіндіктен, сансыз көп.

Сіз дизайнерлік бөлменің кейбір мағынасын беру үшін, жаздым, содан кейін оқуға/жазуға бірнеше сағат @ 10 мс/сағ. бұл эпромды төзімділікте 1М деп бағалайды.

сондықтан сіз біртүрлі бөліктерге ие болмасаңыз немесе ұзақ уақыт бойы оған бірнеше рет жазсаңыз, жарқылдың сәтсіздігі практикалық мәселе болып табылмайды.

2
қосылды

This Wikipedia article about Flash memory discusses failure mechanisms including references to relevant papers. One point that surprised me was "Read Disturbance" of adjacent cells after a large number (>100,000) of reads from one cell since last erase, causing the adjacent cell(s) to read back erroneously. There's probably more there and in the referenced articles than you ever wanted to know about Flash failure mechanisms.

Алайда ...

Сынақ үшін 5 минутта 10000 сынақ сізге тәулік бойы жұмыс істейтін 35 тәулік немесе 100 сағат + 8 сағат/тәулікке дейін, сынақ мөлшерін сақтайды. Менің ойымша, сіз 10K циклына жете алмайтын боласыз. Бірақ сіз өрістегі қатты қолданылған чипті (және кейбір жағдайларда мен де болуы мүмкін) алаңдатып отырсаңыз, №1 сөрелік тақтай сіздің уақытқа тұрарлық болар еді.

1
қосылды
Менің ойымша, бұл функциялардың кез-келгенін жүйеден тыс реттеуге бола ма? Ал егер жоқ болса, өрістегі сәтсіздіктің құны біреудің алдын-алу үшін қажетті қадамдарға жатады? Ақаулық сәтсіздікке ұшырады ма? Ғаламдық қызмет қоңырауы ма? Клиенттермен қарым-қатынас? Науқасты өлтіру керек пе? Кейбір сценарийлер оларды болдырмау үшін үлкен қомақты инвестицияларды ақтайды. Ouch - рок туралы әңгімелесу қиын жерде ...
қосылды автор caryden, көзі
Әрине. Менің қамқорлығым негізінен, әдеттегідей, әдеттегідей PCB-де дамып келе жатқан ATmega2560-мен белсенді түрде дамыған, алайда қолмен алмастыру өте қызықты болмайды, бірақ дөңгелектер (100 пинз + көруге қиын көрінетін қысқа тұйықталу қаупі бар). Не болмаса, бірнеше тақтайшаларды сатып алу.
қосылды автор jmm, көзі
Жазбалардың көп болуының себебі - мен автоматтандыру, сезім және т.б. үшін әртүрлі функцияларды жақсы реттеп отырмын. Кейбіреулері EEPROM-қа сериялы және т.с.с. арқылы жазу арқылы жеңілдетуі мүмкін, бірақ бұл әлдеқайда күрделі жай ғана қалпына келтіру/көмескілеуден гөрі;)
қосылды автор jmm, көзі

Өндіруші AFAIK жазу циклдарының саны кепілдендірілген деп айтады. Әдетте чипте аздап көп шыдауға болады (өндірушінің кепілдікті сақтау үшін қауіпсіз болуы мүмкін), жеке чиптер кездейсоқ, көп шыдауға, әлдеқайда көп.

Сондай-ақ, сәтсіздік екі түрлі мәселелерге әкеп соғады - біріншісі жақсы жолмен - жазу сәтсіздікке ұшырайды, оқудан кейін «нәрсе» қайтарады (әдетте жазбаша мәннің бөлігі, бірақ кейбір биттер әрдайым бірдей 0/1 деп белгіленген). Екіншіден, киюдің жазу сенімді емес екендігін жазасыз, сіз оны оқыдыңыз, бірақ ол біраз уақыттан кейін (мысалы, күндер/айлар) мазмұн өзгеріп, қайтадан оқып жатсаңыз, «алдыңғы жағдайдағыдай.

Сіз «қалыпты пайдалануды» бастамас бұрын, чипті алмастыра алатыныңызға көз жеткізген дұрыс, одан кейін жаңа нұсқаны қойыңыз - розетканы қолданыңыз/жаңа тақтайшаны жасаңыз және ескі чипті және жаңа пішінді жасаңыз. Тағы да тестілеу/жетілдіру үшін қолданылған чипті қолданыңыз, бірақ өндіріс үшін жаңа циклды бірнеше рет айналдырып пайдаланыңыз. Сондай-ақ, бағдарламалық эмуляторлар сіздің дамуыңызды тездетіп, тақтадағы чиптің санын азайту қажеттілігін азайтуы мүмкін.

0
қосылды

Сіздің сұрағыңызға тікелей жауап болмаса да, бұл сіздің мәселеңізге жауап болуы мүмкін (қарқынды сынақ және қателікті жасау қажеттілігі).

Мүмкін сіз өзіңіздің аппараттық құралыңызды (өзгерістерді) емес, сіздің бағдарламаңызды (өзгерістерді) сынап көріңіз. Себебі, сіз өзіңіздің аппараттық құралдарыңызды әр 5 минут сайын өзгертпеңіз деп ойламаңыз.

Егер бағдарлама өте күрделі болса, мүмкін, белгілі бір off-line сынақ бағдарламасын жазу және оны Arduino орнына компьютерде іске қосу керек. Сіз қолданатын кейбір сабақтарды/кітапханаларды шығарып алуыңыз мүмкін, бірақ бұл сізге көп уақытты үнемдеуі мүмкін. Сондай-ақ, сізде жақсы IDE және басқа да көптеген қателердің ықтималдығы бар. Тестілеуден өтіп болғаннан кейін, сіз оны Arduino-да сынап көріңіз.

Осылайша, Arduino бағдарламасында тәулігіне бірнеше рет бағдарламаны жүктеу қажет болуы мүмкін.

0
қосылды
Бұл жақсы жауап, себебі 10к сынақтар тым көп, ал негізгі проблеманы шешу жақсы. Мүмкін, кідірістер пайдаланылуы мүмкін (миллис пайдаланудың орнына). Мүмкін, біреуден артық Arduino тақтасын қолдануға болады, немесе Arduino көптеген тапсырмалардың арқасында мүмкін. Меніңше, жұмыс кодын жасау үшін кездейсоқ генератор тек қана көптеген сынақтарды талап етеді.
қосылды автор Standback, көзі
Менің тәжірибемде, бұл жауап қарағанда жауап ретінде жақсы болады.
қосылды автор jmm, көзі
Менің ойымша, бұл маңызды нәрсеге байланысты: мәселенің өзі немесе оның проблемасын шешу.
қосылды автор Pat, көзі

Әрбір кеңесті әрқайсысы жеке күйге келтірудің қажеті жоқ деп есептесеңіз, өзіңіздің тестілеуді/«өрісті» реттейтін тақтаны жібермеңіз ..... оны үйде ұстаңыз және тек жаңа тақталарды ғана қолданыңыз. далалық пайдалану.

0
қосылды
Жазу циклдарының саны 10к-ға көп.
қосылды автор dotnetengineer, көзі