Wprowadzenie do architektury
mikrokontrolera
TMS320F2812
●
Rodzina mikrokontrolerów C2000 firmy Texas Instruments jest rodziną
ogólnego przeznaczenia, ze wskazaniem na zastosowania w układach
przemysłowych
●
Flagowym modelem rodziny C2000 jest mikrokontroler TMS320F2812
opracowany w roku 2001
●
Rdzeń mikrokontrolera TMS320F2812 jest wydajnym 32 bitowym
procesorem sygnałowym pracującym z częstotliwością do 150MHz
●
Mikrokontroler TMS320F2812 wyposażony jest bardzo dużą liczbę
układów peryferyjnych. W większości projektów nie występuje
konieczność stosowania układów zewnętrznych
●
Najnowszym modelem rodziny C2000 jest opracowany w 2007 roku
bezpośredni następca TMS320F2812, mikrokontroler TMS320F2833x
wyposażony w dodatkową jednostkę zmiennoprzecinkową FPU i układ
bezpośredniego dostępu do pamięci DMA
●
TMS320F2833x jest w pełni kompatybilny z mikrokotrolerem TMS320F2812
z wyłączeniem topologii wyprowadzeń obu układów
Charakterystyka układu TMS32028F12:
1. Jednostka centralna - CPU
●
architektura Harwardzka
●
32 bitowa szyna danych
●
zegar do 150MHz (6,67 ns na cykl rozkazowy)
●
przetwarzanie potokowe instrukcji
●
operacje MAC 16bitx16bit i 32bitx32bit
●
podwójne operacje MAC 16bitx16bit
●
wsparcie dla operacji 64 bitowych
2. Kontroler przerwań - PIE
●
45 priorytetyzowanch przerwań
●
zewnętrzne źródła przerwań - XINT1, XINT2, XNMI
3.Porty wejścia/wyjścia - GPIO
●
56 pinów wjścia/wyjścia
●
kwalifikator sygnałów wejściowych
●
selektywne ustawianie, kasowanie i zmiana stanu wyjść
4.Interfejs pamięci zewnętrznej - XINTF
●
trzy sygnały CS (chip select)
●
dostęp do ciągłego obszaru pamięci 1M słów
●
programowalne opóźnienia - Wait States
●
programowalne charakterystyki sygnałów odczytu i zapisu
5.Pamięć wewnętrzna
●
128K x 16 Flash
●
18K x 16 SRAM
●
1K x 16 OTP
6.Trzy liczniki procesora - T0, T1, T2
●
Liczniki 32 bitowe
●
16 bitowe preskalery dla każdego licznika
●
Liczniki T1 i T2 dedykowane systemom czasu rzeczywistego RTOS
7.Dwa menadżery zdarzeń - EVA, EVB
●
Cztery 16 bitowe liczniki
●
4 proste wyjścia PWM
●
12 komplementarnych wyjść PWM, z czasami martwymi
●
2 układy SVPWM
●
2 układy typu "Capture"
●
2 enkodery kwadraturowe
8.Przetwornik analogowo cyfrowy - ADC
●
16 kanałów analogowych
●
12 bitowa rozdzielczość pomiaru
●
2 układy próbkująco-pamiętające
●
Czas konwersji na poziomie 80ns
9.Interfejsy komunikacyjne
●
SCIA, SCIB
●
SPI
●
eCAN
●
McBSP
1. Jednostka centralna - CPU
●
architektura Harwardzka - 4 szyny pamięci danych i 2 szyny pamięci
programu
●
rejestry arytmetyczne i pomocnicze procesora są 32 bitowe
ACC - rejestr akumulatora
P - rejestr wyniku mnożenia
XT - rejestr mnożnej
XARn - rejestry pomocnicze (XAR0-XAR7)
●
do rejestrów arytmetycznych i pomocniczych możliwy jest dostęp poprzez
ich młodsze i starsze słowa
●
ST0, ST1, IER, DBGIER, IFR są rejestrami sterującymi pracą CPU
●
pozostałe rejestry jednostki centralnej
SP - rejestr stosu
DP - rejestr wskaźnika danych
PC - licznik programu
RPC - wskaźnik powrotu z procedury
16 bitów
16 bitów
ACC
AH
AL
16 bitów
ST0
P
ST1
PH
PL
IER
XT
DBGIER
T
TL
IFR
SP
DP
PC
RPC
22 bity
XARn
ARnH
ARn
Rys. 11.2. Rejestry jednostki centralnej.
●
przetwarzanie instrukcji następuje w potoku
●
potok składa się z 8 etapów
F1 (Fetch 1) - Pierwszy etap pobrania instrukcji procesora - wystawienie
adresu na szynie adresowej programu (PAB)
F2 (Fetch 2) - Odczyt kodu instrukcji z pamięci programu poprzez szynę
odczytu pamięci programu (PRDB)
D1 (Decode 1) - Dekodowanie instrukcji
D2 (Decode 2) - Generowanie adresów źródłowych i docelowych zawartych w
instrukcji i przeprowadzenie operacji arytmetycznych na rejestrach
pomocniczych XARn i stosie SP
R1 (Read 1) - Wystawienie adresu danej do odczytania na szynie odczytu
danych (DRAB)
R2 (Read 2) - Odczytanie danej poprzez szynę odczytu danych (DRDB)
E (Execute) - Wykonanie operacji arytmetyczno logicznych.
W (Write) - Wystawienie adresu danej na szynie adresowej zapisu danej
(DWAB) i zapis danej poprzez szynę zapisu danych (DWDB)
F1
F2
D1
D2
R1
R2
E
W
INSTRUKCJA
Rys. 11.3. Etapy potoku w jednostce centralnej.
●
każdy etap potoku trwa jeden cykl zegarowy procesora
●
czas trwania pojedynczej instrukcji procesora wynosi 8 cykli zegarowych
●
efektywny czas wykonywania instrukcji w programie wynosi 1 cykl (w
przypadku braku kolizji w potoku, braku skoków i przerwań)
●
najczęstsze konflikty w potoku występują między etapami D2-E oraz R1-W
●
akumulator i rejestr P nie mogą być źródłem konfliktów w potoku
(wszystkie operacje na nich wykonywane są w etapie E)
●
wykonanie skoku przez procesor skutkuje opróżnieniem potoku
●
w jednostce centralnej występują dwa rejestry statusowe procesora ST0 i
ST1
●
rejestr ST0 składa się z bitów
OVC/O
VCU - 6 bitowy licznik nadmiaru
PM - 3 bity określające tryb logicznego przesunięcia wyniku mnożenia
000 w lewo o 1 bit
011 w prawo o 2 bity
110 w prawo o 5 bitów
001 bez przesunięcia
100 w prawo o 3 bity
111 w prawo o 6 bitów
010 w prawo o 1 bit
101 w prawo o 4 bity lub dla AMODE=1 w lewo o 4 bity
V - bit nadmiaru
N - bit znaku
Z - bit zera
C - bit przeniesienia
TC - bit testowy
OVM - bit trybu nadmiaru (1 - nasycenie liczb ze znakiem)
SXM - bit rozszerzenia znaku liczby (przy operacjach z mniejszego rozmiaru
na większy)
Rys. 11.4. Rejestr ST0.
15
14
13
12
11
10
9
8
7
OVC/OVCU
PM
6
5
4
3
2
1
0
V
N
Z
C
TC
OVM
SXM
●
rejestr ST1 składa się z bitów
ARP - numer domyślnego rejestru pomocniczego XAR0-XAR7
XF - bit statusu wyprowadzony na zewnątrz mikrokontrolera
M0M1MAP - zamienia mapowanie obszarów M0 z M1
OBJMODE - tryb kompatybilności adresowania (0-c27x, 1-c28x)
AMODE - w połączeniu z bitem PAGE0 ustala tryb adresowania procesora
IDLESTAT - bit ustawiany przez polecenie IDLE. Kasowany jest przez:
wystąpienie przerwania, pobranie prawidłowej instrukcji na etapie jej
dekodowania
EALLOW - bit zezwalający na dostęp do rejestrów zabezpieczonych przed
przypadkowym zapisem
LOOP - bit statusu instrukcji LOOPZ i LOOPNZ
SPA - bit wyrównania wskaźnika stosu (1 - wyrównanie do adresów
parzystych)
VMAP - mapowanie obszaru tablicy wektorów przerwań
PAGE0 - w połączeniu z bitem AMODE ustala tryb adresowania procesora
DBGM - globalna maska przerwania przy debugowaniu
INTM - globalna maska przerwania
Rys. 11.5. Rejestr ST1.
●
mikrokontroler zawiera 128K x 16 pamięci FLASH i 18K x 16 SRAM
●
pamięć wewnętrzna mapowana jest w przestrzeni adresowej w taki
sposób, aby zapewnić wsteczną kompatybilność mikrokontrolerów
●
wewnętrzna pamięć SRAM może pracować z pełną szybkością procesora
(150MHz)
●
pamięć FLASH można zabezpieczyć przed nieautoryzowanym odczytem
(128 bitowe hasło)
15
14
13
12
11
10
9
8
ARP
XF
M0M1MAP
-
OBJMODE
AMODE
7
6
5
4
3
2
1
0
IDLESTAT
EALLOW
LOOP
SPA
VMAP
PAGE0
DBGM
INTM
●
mikrokontroler posiada 56 portów wejściowo-wyjściowych
●
sterowanie portami odbywa się poprzez użytkownika lub układ
peryferyjny podłączony do danego portu
●
sterownie przez użytkownika realizowane jest poprzez zapis lub
selektywne ustawianie, kasowanie i zmianę stanu wyjść
(GPxDAT/SET/CLEAR/TOGGLE)
●
większość portów wyposażona jest w programowalny kwalifikator
sygnału
●
kwalifikator sygnału jest filtrem statystycznym, który przyjmuje ustala
wartość sygnału wyjściowego jeśli 100% próbek wejściowych ma tą samą
wartość
●
kwalifikator sygnału eliminuje przypadkowe zmiany sygnału wejściowego
(np. zakłócenia impulsowe, drżenia styków, itp.)
●
po sygnale RESET, wszystkie porty wejścia-wyjścia skonfigurowane są
jako wejścia
●
w mikrokontrolrze występują dwa bliźniacze układy czasowe nazwane
menadżerami zdarzeń EVA i EVB
●
każdy menadżer zdarzeń posiada po dwa 16 bitowe liczniki, na których
zbudowana jest ich cała funkcjonalność
●
źródłem zegarowym liczników jest sygnał HSPCLK po przejściu przez
dodatkowy preskaler
●
z każdym z liczników skojarzony jest bezpośrednio moduł komparatora i
modulatora PWM
●
menadżery zdarzeń mogą generować do 12 komplementarnych sygnałów
PWM, w tym do dwóch modulatorów SVPWM
●
komplementarne sygnały PWM (PWM1-PWM12) uwzględniają
programowalny czas martwy między kluczami górnymi a dolnymi
●
EVA i EVB posiadają po jednym układzie „capture” do rejestrowania
cyfrowych sygnałów zewnętrznych
●
moduł „capture” wyposażony jest dwupoziomową kolejkę FIFO
●
w miejsce funkcjonalności układów „capture” można wykorzystać
enkoder kwadraturowy wbudowany w każdym menadżerze zdarzeń
●
mikrokontroler zawiera jeden 12 bitowy przetwornik analogowo-cyfrowy
●
moduł przetwornika zawiera dwa ośmiokanałowe multipleksery
analogowe oraz układy próbkująco-pamiętające
●
zakres napięć pomiarowych zawiera się w przedziale 0V-3V
●
czas konwersji na poziomie 80ns
●
możliwe jest wykonanie serii pomiarów tzw. auto konwersji z
wykorzystaniem sekwencera pomiaru
●
sekwencer pomiaru posiada dwa tryby pracy: pojedynczy lub podwójny
●
możliwe jest symultaniczne lub sekwencyjne próbkowanie w obu
układach S/H
●
pomiar może być inicjowany przez wiele źródeł: ręcznie, EVA, EVB,
sygnałem zewnętrznym
●
wyniki pomiarów przechowywane są w 16 rejestrach zapisywanych w
kolejności dokonywanego pomiaru
PIE
INTX.8
INTX.7
INTX.6
INTX.5
INTX.4
INTX.3
INTX.2
INTX.1
EV-A
INT1.Y
/WAKEINT
TINT0
ADCINT
XINT2
XINT1
-
PDPINTB
PDPINTA
EV-B
INT2.Y
-
T1OFINT
T1UFINT
T1CINT
T1PINT
CMP3INT
CMP2INT
CMP1INT
INT3.Y
-
CAPINT3
CAPINT2
CAPINT1
T2OFINT
T2UFINT
T2CINT
T2PINT
SPI
INT4.Y
-
T3OFINT
T3UFINT
T3CINT
T3PINT
CMP6INT
CMP5INT
CMP4INT
CAN
INT5.Y
-
CAPINT6
CAPINT5
CAPINT4
T4OFINT
T4UFINT
T4CINT
T4PINT
SCI
INT6.Y
-
-
MXINT
MRINT
-
-
SPITXINTA
SPIRXINTA
ZAREZERWOWANE
INT7.Y
-
-
-
-
-
-
-
-
INT8.Y
-
-
-
-
-
-
-
-
INT9.Y
-
-
ECAN1INT
ECAN0INT
SCITXINTB SCIRXINTB SCITXINTA SCIRXINTA
INT10.Y
-
-
-
-
-
-
-
-
INT11.Y
-
-
-
-
-
-
-
-
INT12.Y
-
-
-
-
-
-
-
-
McBSP
Rys. 12.14 Przerwania peryferyjne w mikrokontrolerze TMS320F2812.