ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 64
Abonament PDF

Calificarea memoriilor în automotive

Dan Colceriu
Hardware Development Engineer @ Continental Sibiu



TESTARE

În general, atunci când ne gândim la un sistem digital, primul lucru care ne atrage atenția este viteza sau puterea sa de calcul. Abia după ce lămurim partea aceasta despre tipul de procesor, despre numărul de core-uri și frecvența de lucru, apar întrebările adiționale printre care cea dintâi ar fi despre memorie. Ce capacitate are memoria, de ce tip este și eventual alte aspecte legate de câte canale, modul de accesare, viteza de lucru ș.a.m.d. Însă este un lucru bine știut că nu ne punem neapărat, problema calității memoriei și a caracteristicilor date de producător în ceea ce privește retenția datelor, comportamentul în diverse condiții (ex. cu temperatura, variația tensiunii, …) și a fiabilității acesteia. Cu atât mai puțin încercăm să căutăm informații adiționale care să fie relevante în acest sens și care să ajute la o decizie în alegerea acesteia.

Pentru un sistem de calcul cu memorie externă, ușor accesibilă și configurabilă fizic, acest fapt nu este neobișnuit dacă prețul nu reprezintă o problemă, cu atât mai mult cu cât perioada de garanție pentru anumite tipuri de memorii poate ajunge chiar până la "life time". Chiar dacă între timp intervin probleme în funcționare sau apar blocaje date de locații defecte, să înlocuim un banc de memorie nu reprezintă o problemă majoră. Este simplu de îndepărtat plăcuța cu circuitele în cauză, acestea fiind în general foarte accesibile în cadrul sistemului sau al unei plăci de bază, tocmai pe considerentul că o reconfigurare trebuie să nu pună probleme majore utilizatorului.

Dar ce e de făcut atunci când ne raportăm la un sistem cu memorie internă, de tip SoC (Sistem on Chip) sau orice tip de microcontroller cu memorie integrată. În acest caz, dacă întâmpinăm probleme reale cu memoria, schimbarea acesteia deja nu mai este o opțiune fiind practic imposibilă. Mai mult, suntem în fața faptului de a schimba o parte majoră a sistemului ceea ce nu mai este defel simplu in comparație cu exemplul anterior. Lăsând la o parte costul care până la urmă e justificat de dorința de reabilitare a întregului sistem, problema schimbării poate duce la necesitatea înlocuirii unei plăci electronice întregi dacă nu avem acces la unelte specifice de lucru, de exemplu pentru lipirea/dezlipirea circuitelor integrate.

În acest caz, nu mai este de neglijat consultarea manualului producătorului și însușirea câtorva caracteristici funcționale despre memoria integrată. Cu atât mai mult, dacă microcontrollerul face parte dintr-un ansamblu electronic a cărui funcție sau rol este de foarte mare importanță sau e înglobat într-un sistem de siguranță/securitate, atunci este important să ne asiguram noi înșine de fiabilitatea memoriei și de caracteristicile pe care le fac remarcate producătorul. Această acțiune sau verificare se poate face printr-un așa zis proces de calificare a memoriei.

Dar ce înseamnă această metodă de validare ? Plecând de la specificațiile date de producător și ținând cont de modul de utilizare și solicitările cerute de propriul nostru sistem, trebuie să ne asigurăm că acestea sunt îndeplinite și eventual chiar depășite cu succes.

În speță, ne propunem să exemplificăm un proces de calificare a memoriei pentru un microcontroller folosit în cadrul sistemelor de frânare pentru automobile. ECU-ul (Electronic Control Unit) responsabil de acest lucru, este un safety system prin definiție. De aceea, defectele, pe lângă că trebuie detectate în procent de 100% și se cer prompt semnalate, sunt în fapt absolut nedorite. Așadar ECU-ul, respectiv MCU-ul (Micro Controller Unit) din cadrul sistemului nostru va face parte dintr-un automobil, iar în condiții normale de exploatare va avea parte de variații de tensiune, variații de temperatură majore în funcționare și mai puțin majore în staționare, necesitând în același timp intervenții externe de tip conectare pentru diagnoză, pentru actualizare, fără a mai aminti de accesele repetate de citire sau scrierile ocazionale efectuate de aplicația în sine.

Deci, dacă se impune verificarea memoriei, primul lucru de remarcat ar fi durata de viață specificată de producător în condițiile de lucru date de acesta. Ce putem face pe mai departe este să încercăm să reproducem condițiile reale de exploatare și în același timp să folosim la maxim capacitățile memoriei astfel încât să ducem uzura acesteia la extremul duratei de viață sau limita extrema de exploatare specificată și să determinăm cum anume este afectată pe termen lung.

Dacă producătorul unui MCU cu memorie flash integrată, garantează de exemplu 100.000 de cicluri de scriere/citire și ștergere pentru memorie, atunci mai trebuie să aproximăm câți dintre aceștia se vor efectua în anumite condiții de temperatură și variații eventuale de tensiune. Pentru determinarea metodei de lucru și a condițiilor de stres se impune luarea în calcul a documentelor interne specifice, a documentelor externe și oricăror informații relevante.

Drept urmare, pornind de la cerințele de calitate pentru memoriile nevolatile se identifică în cazul microcontrolerelor un număr necesar de > 100.000 de cicluri de programare/ștergere prin metoda echivalentă de emulare a EEPROM -ului.

Conform profilului operațional anual, un minim de 15 ani este cerut în oricare circumstanță, pentru timpul total de viață respectiv durată în serviciu.

Ca profil de temperatură ambientală și cel mai defavorabil caz de temperatură a joncțiunii, încadrarea se poate face în clasa C cu: 133h pe an la 125°C, respectiv 667h pe an la 100°C considerând totodată și 2000 de cicluri de start anual. Pentru toate aceste cazuri, memoria se consideră a fi alimentată (sub tensiune).

Extrapolând acum la cei >100.000 cicluri date de producător (ex. în cazul microcontrolerelor de la Freescale cu memorie flash C55) determinăm o balanță necesară de 20000 cicluri la 125°C respectiv 80000 cicluri la 100°C pentru simularea duratei de viață și/sau durata garantată în serviciu. Beneficiind de zone de memorie ale flashului ce permit operația de emulare a EEPROM-ului, putem aplica precondiționarea cu datele determinate mai sus, înainte de a trece efectiv la testele de scriere/citire/ștergere pe întreaga capacitate a flashului. Vom putea astfel să concluzionăm fiabilitatea memoriei în ceea ce privește programarea repetitivă, viteza și performanța, retenția datelor și anduranța. Metoda de testare astfel determinată poate fi departajată în următoarele etape distincte:

Precondiționarea precum și primele două etape sunt verificate intern cu ajutorul toolurilor specifice de programare și în condițiile date de către aplicație. Etapa a treia este verificată de către producător pe baza procesului de stres și îmbătrânire aplicat celulelor de memorie.

Testul de programare repetitivă și anduranță

Pentru această etapă se impune să cunoaștem istoricul unităților de testare și condițiile specifice. Pentru obținerea de rezultate consistente trebuie cunoscut numărul anterior de cicluri de programare / ștergere efectuați pe unitățile de testare.

Din punct de vedere al temperaturii se identifică un Tmax respectiv un Tmin de operare și variația tensiunilor de alimentare VDDmin, VDDmax și VPPmin respectiv VPPmax unde VDD este tensiunea aplicată ariei de celule de memorie și a celulei de referință la citire, iar VPP este tensiunea aplicată ariei de celule în cadrul operațiilor de scriere și ștergere.

Bucla de testare de bază va fi constituită astfel din repetarea a doi pași distincți. Pasul de Programare-Verificare: PV_step (VP1, VD1, T1, VD2, T2, VD3, T3) și pasul de Verificare: V_step (VD1, T1, VD2, T2) până când sunt atinse toate combinațiile posibile dorite prin variația parametrilor VP1, VD1, VD2, VD3 respectiv T1, T2, T3.

Pe scurt, diagramele pașilor de test vor arăta astfel:

Având practic cinci variabile (VP.scriere/ștergere, VD.scriere/ștergere, T.scriere/ștergere, VD.citire, T.citire) fiecare de câte două nivele (Min respectiv Max) putem determina un set de 32 de experimente aplicabile în cadrul buclei de testare. Dacă e să facem analiza consistenței acestor verificări/experimente și aplicăm diverse metode statistico-matematice (ex. metodele Taguchi) putem reduce bucla de test la acele experimente care reprezintă cel mai defavorabil caz din punct de vedere al interacțiunii dintre factori. Apoi prin combinația celor determinate, putem obține întregul flow de testare.

Ca patternuri de testare pentru memorie sunt alese combinațiile de all_0 (toate celulele pe 0 logic), all_1 (toate celulele in 1 logic), checkerboard (celulele vecine de nivele diferite), checkerboard inversat și random (valori aleatorii pe fiecare celulă). Fiecare dintre patternuri va fi supus aceluiași flow de test determinat mai sus.

Ca unități de test sunt selecționate 3 loturi diferite de testare a câte 10 unități fiecare.

Programarea patternului final în memorie

Popularea unităților de testare se face prin programare la Tmax în conformitate cu matricea de populare:

Cu mențiunea că, dacă un pattern nu poate fi testat, se va înlocui cu patternul checkerboard.

Testul de retenție a datelor

În acest scop, așa cum deja a fost menționat mai sus, celulele de memorie vor fi supuse la factori de stres și metode de îmbătrânire pentru a simula durata de viață a acestora.

Corespunzător se aplică metoda de "coacere" la temperatură înaltă cu citiri intermediare ale valorilor de tensiune pe fiecare dintre celule, nu înainte însă ca acestea să fie determinate și la momentul zero de timp adică imediat după flowul de calificare. Se va face astfel o statistică constând în numărul de celule existente pentru o anumită valoare de tensiune determinată.

Următoarele grafice exemplifică distribuția numărului de celule în raport cu valoarea nivelului de tensiune a acestora, pentru unități supuse procesului de calificare la scriere/citire/ștergere pentru momentele de timp T0, T500h și după T1000h ore de stres pentru retenția datelor.

Pentru o unitate fără precondiționare:

Pentru o unitate cu precondiționare:

Se poate observa modul în care au fost afectate locațiile stresate anterior cu flowul de precondiționare (X reprezintă patternul random, iar 5% e variația tensiunii de testare)

Ca aspect general se poate spune (pentru exemplul dat) că memoria a avut un comportament foarte bun în comparație cu specificațiile date. Chiar și după testele extinse, starea celulelor se încadrează în limitele nivelelor digitale acceptate.

După caz, conform necesitaților aplicației și totodată după conveniență, testarea poate fi extinsă (sau chiar mai restrânsă) urmărind a se determina parametrii de interes.

Cu atât mai mult, metodele de testare cât și datele devin mai interesante dacă e să ținem cont de avansul tehnologic în noile dimensiuni ale celulelor cât și a tendințelor pentru modurile de implementare de tip multi-chip, SiP (System in Package) sau procesoare de tip crossover, memorii în diferite tehnologii, de ex. PCM (Phase Change Memory) integrate sau chiar memorii externe.

Referințe:

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects