Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Czas dostępu jest w zakresie od 3,1 do 6,8 ms w zależności od częstotliwości kalibrowanego oscylatora RC. Dostępna jest funkcja odmierzająca czas, która informuje program użytkownika, kiedy można zapisać kolejny bajt. Istnieje również specjalne przerwanie przy gotowości pamięci EEPROM (ang. EEPROM Ready interrupt), które jest wyzwalane w momencie, gdy pamięć EEPROM jest gotowa na przyjęcie nowych danych. Minimalne napięcie zasilania przy zapisach do EEPROM wynosi 2,2 V.
W celu zapobieżenia niezamierzonym zapisom do EEPROM musi być wykonywana dwukrokowa procedura. Szczegóły znajdziesz w opisie rejestru sterowania EEPROM, EECR.
Gdy pamięć EEPROM jest zapisywana, mikroprocesor zostaje wstrzymany przez dwa cykle zegarowe przed wykonaniem następnej instrukcji. Gdy pamięć EEPROM jest odczytywana, mikroprocesor jest wstrzymywany przez cztery cykle zegarowe, zanim następna instrukcja zostanie wykonana.
Czas dostępu jest w zakresie od 3,1 do 6,8 ms w zależności od częstotliwości kalibrowanego oscylatora RC. Dostępna jest funkcja odmierzająca czas, która informuje program użytkownika, kiedy można zapisać kolejny bajt. Istnieje również specjalne przerwanie przy gotowości pamięci EEPROM (ang. EEPROM Ready interrupt), które jest wyzwalane w momencie, gdy pamięć EEPROM jest gotowa na przyjęcie nowych danych. Minimalne napięcie zasilania przy zapisach do EEPROM wynosi 2,2 V.
W celu zapobieżenia niezamierzonym zapisom do EEPROM musi być wykonywana dwukrokowa procedura. Szczegóły znajdziesz w opisie rejestru sterowania EEPROM, EECR.
Gdy pamięć EEPROM jest zapisywana, mikroprocesor zostaje wstrzymany przez dwa cykle zegarowe przed wykonaniem następnej instrukcji. Gdy pamięć EEPROM jest odczytywana, mikroprocesor jest wstrzymywany przez cztery cykle zegarowe, zanim następna instrukcja zostanie wykonana.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1E | - | - | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | EEAR |
Zapis/Odczyt | O | O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | X | X | X | X | X | X |
Rejestr adresowy EEAR określa adres komórki w 64-bajtowej przestrzeni adresowej EEPROM. Bajty danych EEPROM są adresowane liniowo od 0 do 63.
Podczas resetu rejestr EEAR nie jest zerowany, lecz utrzymuje wpisany poprzednio adres.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | MSB | LSB | EEDR | ||||||
Zapis/Odczyt | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Przy operacji zapisu do pamięci EEPROM rejestr EEDR przechowuje dane do zapisania w komórce pamięci EEPROM pod adresem danym przez rejestr EEAR. Przy operacji odczytu z pamięci EEPROM, rejestr EEDR zawiera dane odczytane z komórki EEPROM o adresie danym przez EEAR.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1C | - | - | - | - | EERIE | EEMWE | EEWE | EERE | EECR |
Zapis/Odczyt | O | O | O | O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Te bity są zarezerwowane w ATtiny12 i przy odczycie dają zawsze wartość zero.
Gdy bity I w SREG EERIE są ustawione na 1, zostaje uaktywnione przerwanie od gotowości EEPROM (ang. EEPROM Ready interrupt). Gdy bit EERIE jest wyzerowany, przerwanie to jest wyłączone. Przerwanie od gotowości EEPROM generuje ciągłe przerwanie, gdy bit EEWE jest wyzerowany.
Bit EEMWE określa, czy ustawienie bitu EEWE spowoduje zapis do EEPROM. Gdy EEMWE jest ustawiony na 1, to ustawienie EEWE spowoduje zapis danych do EEPROM pod wybrany adres. Jeśli EEMWE jest wyzerowany, to ustawienie EEWE nie wywoła żadnego efektu. Gdy bit EEMWE został ustawiony na 1 przez oprogramowanie, to jest on sprzętowo zerowany po czterech cyklach zegarowych.
Sygnał uaktywnienia zapisu EEPROM jest strobem zapisu do pamięci EEPROM. Gdy adres i dane zostały poprawnie ustawione, bit EEWE musi być ustawiony w stan 1, aby dane zostały zapisane do pamięci EEPROM. Bit EEMWE musi mieć wartość logiczną 1, gdy jedynka jest wpisywana do EEWE, inaczej zapis do EEPROM nie odbędzie się. Należy stosować poniższą procedurę przy zapisywaniu danych do EEPROM (kolejność kroków 2 i 3 jest istotna):
Uwaga: Przerwanie pomiędzy krokami 4 a 5 uniemożliwi wykonanie zapisu, ponieważ bit EEMWE wróci do stanu zero po 4 cyklach zegara. Jeśli procedura przerwania wykonująca dostęp do EEPROM przerwie inny dostęp do EEPROM, to rejestr EEAR lub EEDR zostanie zmodyfikowany, co spowoduje niepowodzenie przerwanego dostępu do EEPROM. Zaleca się globalne wyłączenie przerwań podczas ostatnich czterech kroków w celu uniknięcia tych problemów.
Gdy upłynie czas dostępu zapisu, bit EEWE zostanie wyzerowany sprzętowo. Program użytkownika może sprawdzać stan tego bitu i czekać na zero przed zapisem następnego bajtu. Gdy bit EEWE został ustawiony, mikroprocesor jest wstrzymywany przez dwa cykle zegara, zanim zostanie wykonana następna instrukcja.
Sygnał EERE jest strobem odczytu z pamięci EEPROM. Gdy w rejestrze EEAR zostanie ustawiony poprawny adres, musi zostać ustawiony bit EERE. Gdy bit ten zostanie wyzerowany sprzętowo, zażądane dane znajdą się w rejestrze EEDR. Dostęp odczytu do EEPROM zajmuje jedną instrukcję i nie ma potrzeby badania stanu bitu EERE. Gdy bit EERE zostanie ustawiony, mikroprocesor jest wstrzymywany przez 4 cykle zegara przed wykonaniem następnej instrukcji.
Użytkownik powinien sprawdzać stan bitu EEWE przed rozpoczęciem operacji odczytu. Jeśli wykonywana jest operacja zapisu, gdy nowe dane lub adres są zapisywane do rejestrów we/wy EEPROM, to operacja zapisu zostanie przerwana, a wynik będzie nieokreślony.
Do odmierzania czasu dla EEPROM uzywany jest kalibrowany oscylator. Poniższa tablica przedstawia typowe czasy programowania przy dostępie do EEPROM z poziomu mikroprocesora:
Parametr | Liczba cykli kalibrowanego oscylatora RC | Minimalny czas programowania | Maksymalny czas programowania |
Zapis EEPROM (przez mikroprocesor) |
4096 | 3,1 ms | 6,8 ms |
Uszkodzenie danych EEPROM może wystąpić w dwóch sytuacjach, gdy napięcie jest za niskie. Po pierwsze, zwykła sekwencja zapisu do EEPROM wymaga minimalnego napięcia 2,2 V, aby zadziałała poprawnie. Po drugie, sam mikroprocesor może wykonywać instrukcje z błędami, jeśli napięcie zasilające jest zbyt niskie.
Uszkodzenia danych EEPROM można z łatwością uniknąć przez zastosowanie się do tych zaleceń projektowych (wystarcza jedno):
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.