Wykorzystanie zaawansowanych możliwosci pamięci EEPROM w mikrokontrolerach Kinetis

Istnieje kilka dostępnych konfiguracji, które mogą być wykorzystane w połączeniu z opcją EEE. Na rys. 3 zaprezentowano przykład, w którym cała FlexNVM jest wykorzystana jako pamięć E-Flash. FlexRAM staje się przestrzenią pamięci EEE (do 4 kB). Każdy odczyt i zapis danych EEE korzysta z tej przestrzeni 4 kB, ponieważ E-Flash nie jest dostępny bezpośrednio. Automat EEE samodzielnie zarządza wszystkimi zapisami do obszaru EEE i wywołuje operacje programowania i odczytu E-Flash wtedy, gdy zajdzie taka potrzeba.


FlexMemory udostępnia cały szereg opcji konfiguracyjnych dla pamięci. Rozmiar przestrzeni EEE i wielkość pamięci E-Flash używanej do zabezpieczenia danych EEE są całkowicie programowalne. Pozwala to na wymianę rozmiaru pamięci na zwiększoną trwałość EEE.


Istnieją trzy programowalne opcje wykorzystywane do dokładnego określenia wykorzystania pamięci przez system. Te parametry to:



  1. Rozmiar EEE – to całkowita wielkość wymaganych danych EEE. Rozmiar ten może zawierać się w przedziale od 32 bajtów do 4 kB, programowany jako kolejne potęgi dwójki (32, 64, 128…).

  2. Podział EEE – automat kontrolujący pamięć EEE traktuje ją jako dwa niezależne podsystemy (podsystem A i podsystem B). Każdy podsystem jest zawsze zabezpieczany przez taką samą ilość pamięci E-Flash, ale rozmiar pamięci EEE nie musi być jednakowy. Podsystem A może zostać zaprogramowany jako 1/8, ¼ lub ½ całkowitego rozmiaru EEE, a pozostała część jest przypisywana do podsystemu B. Jeśli podział EEE jest zaprogramowany jako ½, pamięć EEE jest dzielona na dwie równe części pomiędzy oba podsystemy, zatem ta sama wielkość pamięci jest wykorzystywana do przechowywania tej samej ilości danych EEE. W ten sposób powstają dwa podsystemy o równej trwałości. Jeśli podział EEE zostanie zaprogramowany jako ¼ lub 1/8, wówczas podsystem A będzie wykorzystywał tą samą wielkość pamięci E-Flash, co podsystem B, jednak będzie zabezpieczał mniej danych EEE. Zmiana proporcji pomiędzy ilością danych EEE a przestrzenią buforową oznacza, że podsystem A będzie miał większą trwałość, niż podsystem B. Parametr określający podział EEE pozwala na rozdzielenie danych do obszarów o dużej i umiarkowanej żywotności, w których normalna przestrzeń Flash (P-Flash lub D-Flash) będzie używana jak obszary o zwykłej trwałości.

  3. Partycja FlexNVM – ten parametr określa, jaka część FlexNVM jest używana jako normalna pamięć Flash (D-Flash), a jaka wykorzystywana jako pamięć bufora EEE (E-Flash). Jeśli EEE jest włączona, co najmniej 32 kB FlexNVM muszą zostać zaalokowane jako E-Flash. W celu uzyskania maksymalnej żywotności EEE, cała dostępna FlexNVM może być używana jako E-Flash.

W wielu zastosowaniach, wymagania dotyczące żywotności pamięci EEE decydują o sposobie konfiguracji FlexMemory. Zrozumienie, w jaki sposób parametry wpływają na trwałość jest potrzebne, aby określić odpowiednią konfigurację EEE.


Minimalną oczekiwaną żywotność EEE można wyznaczyć ze wzoru na żywotność:


 


<BR data-src=


Gdzie:



  • E-Flash to ilość pamięci FlexNVM zaalokowanej jako bufor EEE dla podsystemu

  • SPLIT – parametr ten określa stosunek wielkości podsystemów, decydując o tym, ile bajtów EEE znajduje się w podsystemie.

  • Rozmiar EEE – całkowita pojemność EEE, liczba bajtów wykorzystywaną przez FlexRAM w obu podsystemach.

  • Wydajność zapisu – 0,5 dla zapisów 32- i 16-bitowych; 0,25 dla zapisów 8-bitowych.

  • Podstawowa trwałość – oczekiwana żywotność typowej pamięci Flash (10 tysięcy cykli)

Powyższy wzór określa minimalną liczbę gwarantowanych zapisów dozwolonych dla każdej komórki danych EEE przy założeniu, że cały obszar EEE jest wykorzystywany i poszczególne komórki są zapisywane równomiernie i nie mają różnych rozmiarów. Jeśli niektóre z obszarów są zapisywane częściej, wyznaczona minimalna liczba zapisów pozwala na więcej zapisów w innych obszarach.


Przedstawiony wzór może być też użyty w celu oszacowania ilości pamięci E-Flash wymaganej przez system. Jednakże zależność ta jest uproszczona i powinna być stosowana jedynie jako ogólna wskazówka. Freescale oferuje także kalkulator wyliczający żywotność EEE – ta aplikacja  bierze pod uwagę także szczegóły, takie jak sposób odświeżania danych EEE zamiast przyjęcia założenia, że wszystkie dane są uaktualniane jednocześnie z użyciem tej samej długości słowa. Kalkulator wykorzystuje także bardziej złożone i dokładne narzędzie do modelowania trwałości. Do zastosowań o bardzo specyficznych wymaganiach odnośnie żywotności EEE silnie zalecane jest wykorzystanie narzędzia kalkulatora. Aplikację można pobrać ze strony Freescale, wpisując „C90TFS_FLEXMEM_CALC” w wyszukiwarce.


Różne sposoby użycia pamięci można przedstawić poprzez przykłady. W pierwszym przykładzie omówiono konfigurację EEE, która zapewnia maksymalną możliwą trwałość danych EEE. Aby uzyskać maksymalną żywotność, potrzebna jest jak największa ilość pamięci E-Flash buforująca najmniejszą możliwą ilość danych EEE. Aby uzyskać maksymalną ilość danych dla układu Kinetis 256 kB, wykorzystano całe 256 kB FlexNVM jako pamięć E-Flash. Połowa E-Flash (pierwsze 128 kB) jest używana do przechowywania kopii danych EEE podsystemu A, a drugą część E-Flash (kolejne 128 kB) wykorzystano do buforowania pamięci EEE podsystemu B. Najmniejszą możliwą ilość danych EEE można uzyskać, ustawiając rozmiar EEE na najmniejszą dostępną wartość – 32 bajty. Podział pamięci można ustawić na 1/8. Oznacza to, że podsystem A ma 4 bajty pamięci (jest to najmniejszy osiągalny rozmiar pojedynczego podsystemu EEE). Podsystem B ma rozmiar 28 bajtów.


Korzystając z przedstawionego wcześniej wzoru na żywotność można obliczyć przewidywaną trwałość obu podsystemów EEE.


Dla podsystemu A, zakładając dostęp 16- i 32-bitowy, żywotność ta wynosi:


 


<BR data-src=


Z kolei dla podsystemu B, także przy dostępie 16- i 32-bitowym, żywotność wynosi:


 


<BR data-src=


Na rysunku 4 pokazano w jaki sposób w tej konfiguracji wykorzystywane są bloki FlexNVM i FlexRAM.


 


Rys. 4. Konfiguracja EEE z E-Flash = 256 kB, podsystem A = 4 bajty, podsystem B = 28 bajtów

Rys. 4. Konfiguracja EEE z E-Flash = 256 kB, podsystem A = 4 bajty, podsystem B = 28 bajtów


 

O autorze