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 |
©2023 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Mikrokontrolery ATtiny4/5/9/10 zawierają 512/1024 bajtów wewnętrznej, reprogramowalnej w układzie pamięci FLASH do przechowywania programu. Ponieważ wszystkie instrukcje AVR mają długość 16 lub 32 bitów, pamięć FLASH zorganizowana jest jako 256/512 x 16 bitów.
Pamięć FLASH wytrzymuje co najmniej 10.000 cykli zapisu/kasowania. Rejestr licznika rozkazów (PC) w ATtiny4/5/9/10 ma długość 9 bitów, co pozwala mu adresować 256/512 komórek pamięci, począwszy od 0x000. W rozdziale "Programowanie pamięci" znajduje się szczegółowy opis ładowania zawartości pamięci FLASH poprzez interfejs szeregowy TPI.
Tablice stałych można umieszczać w obrębie całej przestrzeni adresowej pamięci programu. Ponieważ dostęp do tej pamięci nie jest bezpośredni, została odwzorowana w pamięci danych. Odwzorowanie pamięci programu rozpoczyna się od adresu bajtowego 0x4000 w pamięci danych. Chociaż programy są wykonywane poczynając od adresu 0x000 w pamięci programu, to musi być ona adresowana od 0x4000, gdy dostęp do niej odbywa się poprzez pamięć danych.
Wewnętrzne operacje zapisu do pamięci programu FLASH zostały zablokowane i dlatego pamięć programu wygląda jak pamięć tylko do odczytu. Pamięć FLASH może wciąż być zapisana zewnętrznie, lecz wewnętrzne próby zapisu do pamięci programu nie odniosą żadnego skutku. Wykresy czasowe pobierania i wykonywania instrukcji znajdziesz tutaj.
Pierwsze 64 adresy są zarezerwowane dla pamięci we/wy, natomiast następne 32 adresy odnoszą się do wewnętrznej pamięci danych SRAM.
Bity blokowania pamięci nieulotnej oraz cała pamięć FLASH są odwzorowane w przestrzeni pamięci danych. Dla programów komórki te są widoczne jako tylko do odczytu.
Cztery różne tryby adresowania pamięci danych to: bezpośredni (ang. direct), pośredni (ang. indirect), pośredni z wczesnym zmniejszaniem adresu (ang. indirect with pre-decrement) oraz pośredni z późnym zwiększaniem adresu (ang. indirect with post-increment). W zestawie rejestrów rejestry od R26 do R31 pełnią dodatkową rolę rejestrów indeksowych do adresowania pośredniego.
Instrukcje IN i
OUT mają dostęp do wszystkich 64
adresów pamięci we/wy. Adresowanie bezpośrednie przy użyciu
instrukcji LDS i
STS osiąga 128 komórek o adresach
pomiędzy 0x0040 i 0x00BF.
Adresowanie pośrednie obejmuje zasięgiem całą przestrzeń pamięci
danych. Gdy jest używane adresowanie pośrednie z automatyczną
predekrementacją i postinkrementacją, zwiększane lub zmniejszane
są rejestry adresowe X, Y lub Z.
Mapa pamięci danych
Dostęp do pamięci SRAM wykonywany jest w dwóch taktach clkCPU, co pokazuje poniższy rysunek:
Wszystkie składniki we/wy mikrokontrolerów ATtiny4/5/9/10 są umieszczone w przestrzeni we/wy. Wszystkie komórki we/wy mogą być użyte w rozkazach LD i ST, co pozwala na przesył danych pomiędzy 16 rejestrami ogólnego przeznaczenia a przestrzenią we/wy. Poszczególne bity rejestry we/wy w zakresie adresów 0x00 - 0x1F są bezpośrednio dostępne za pomocą instrukcji SBI i CBI. W rejestrach tych wartość pojedynczych bitów można sprawdzać używając instrukcji SBIS i SBIC. Zobacz do rozdziałów "Instrukcje AVR" oraz "Zestaw instrukcji". Gdy używane są specyficzne instrukcje we/wy IN i OUT, muszą z nimi być używane adresy 0x00 - 0x3F.
Dla kompatybilności z przyszłymi mikrokontrolerami zarezerwowane bity należy zapisywać zerem, jeśli jest do nich dostęp. Zarezerwowane obszary pamięci we/wy nie powinny nigdy być zapisywane.
Niektóre znaczniki stanu są zerowane przez zapis do nich logicznej jedynki. Zwróć uwagę, iż instrukcje CBI i SBI będą zmieniały tylko określony bit i z tego powodu mogą być stosowane dla rejestrów zawierających takie znaczniki stanu. Instrukcje CBI i SBI pracują na rejestrach w zakresie adresów jedynie od 0x00 do 0x1F.
Rejestry sterujące modułami peryferyjnymi mikrokontrolera są wyjaśnione w dalszych rozdziałach.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 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: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.