Sunteți pe pagina 1din 34

Microcontrolere

Curs 11

Ș.l. dr. ing. Mihai Niculescu


Cuprins

 Caracteristici avansate ale arhitecturii AVR 8 bit


 Exemplificare pentru familia XMEGA

2
Definirea caracteristicilor avansate
 Se consideră că un uC are caracteristici avansate ale arhitecturii AVR 8 bit
dacă implementează cel puțin unul dintre următoarele elemente:

ATiny1 ATmega2 Xmega


Spațiu extins pentru regiștri I/O (mai mult de 64 locații)
Maparea memoriei EEPROM în spațiul de adrese SRAM
Modul pentru acces la memorii SRAM/SDRAM externe, mapate ca 3
extensie a spațiului de adrese SRAM intern
Modul DMAC – Direct Memory Access Controller
Sistem de comunicare directă și semnalizare a evenimentelor între
periferice
Controler de întreruperi multinivel
Module criptografice (de ex. AES, DES)
1 ATtiny20x/40x/80x/160x și ATtiny21x/41x/81x/161x/321x 3
2 ATmega1281/2561
3 Doar sub-familia A1U
ATmega 2561

4
ATmega 2561

 135 instrucțiuni, majoritatea  4 timere pe 16 biți


executate pe 1 ciclu  4 canale PWM pe 8 biți
 32 regiștri pe 8 biți  12 canale PWM pe 16 biți
 Flash 256 KBytes  16 canale A/D pe 10 biți
 EEPROM 4KByte  4 interfețe USART
 SRAM 8KBytes  Interfață SPI master/slave
 86 linii I/O de uz general  Interfață two-wire (TWI)
 2 timere pe 8-biti
5
ATmega 2561

6
ATXmega 64A1U

7
ATXmega 64A1U

 mai mult de 135 instrucțiuni,  78 linii I/O de uz general


majoritatea executate pe 1  8 timere pe 16 biți
ciclu
 1 interfață USB
 32 regiștri pe 8 biți
 controller DMA cu 4 canale
 Flash 64 KBytes
 sistem de comunicare directă și
 EEPROM 2KByte semnalizare a evenimentelor
 SRAM 4KBytes între periferice cu 8 canale
 Interfață de control pentru  8 interfețe USART
memorie externă: maxim 16MB  modul AES și modul DES
SRAM sau 128 Mb SDRAM
8
Spațiu extins pentru regiștri I/O

 Organizarea SRAM la ATmega 2561

9
Spațiu extins pentru regiștri I/O

 Organizarea SRAM la ATXmega 64A1U

10
Spațiu extins pentru regiștri I/O

 Numărul mare de periferice generează un număr


mare de regiștri I/O pentru comanda și controlul
lor
 Codul instrucțiunilor in și out conține și adresa
locației unde se află registrul I/O accesat pe o
dimensiune de 6 biți
 Instrucțiunile
nu pot accesa un spațiu de adrese
mai mare de 64 locații !
11
Spațiu extins pentru regiștri I/O

 Regiștrii I/O peste spațiul de 64 locații nu pot fi


accesați decât cu instrucțiuni pentru citire și
scriere din/în memoria RAM:
 LD / LDD / LDS
 ST / STD / STS

12
Spațiu extins pentru regiștri I/O

 Instrucțiunile LD / ST
 citește (LD) de la o locație de memorie cu adresa
indicată de pointerii X, Y sau Z într-un registru de uz
general
 scrie(ST) la o locație de memorie cu adresa indicată
de pointerii X, Y sau Z dintr-un registru de uz general
 accesul la un spațiu de memorie mai mare de 64KB
necesită utilizarea regiștrilor de tip I/O RAMPX, RAMPY
și RAMPZ
13
Spațiu extins pentru regiștri I/O
 Instrucțiunile LD / ST
 regiștri de tip I/O RAMPX, RAMPY și RAMPZ sunt automat concatenați cu
regiștri X, Y sau Z pentru a forma pointeri de 24 biți
 Instrucțiunile pot folosi post incrementare sau pre decrementare, inclusiv pe
24 biți

14
Spațiu extins pentru regiștri I/O

 Instrucțiunile LD / ST

clr r27 ; r27 este octetul superior X


ldi r26,$60 ; r26 este octetul inferior X
ld r0,X+ ; post incrementare

clr r27
ldi r26,0x63
ldi r17,0x4A
st -X,r17 ; se scrie valoarea 0x4A la adresa RAM 0x62 15
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDD / STD


 citește (LDD) de la o locație de memorie cu adresa
indicată de pointerii Y sau Z într-un registru de uz
general
 scrie(STD) la o locație de memorie cu adresa indicată
de pointerii Y sau Z dintr-un registru de uz general
 accesul la un spațiu de memorie mai mare de 64KB
necesită utilizarea regiștrilor de tip I/O RAMPY și
RAMPZ
16
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDD / STD


 regiștride tip I/O RAMPY și RAMPZ sunt automat
concatenați cu regiștri Y sau Z pentru a forma
pointeri de 24 biți
 Instrucțiunile includ un offset al pointerilor cu
valori în intervalul 0...63, inclusiv pe 24 biți

17
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDD / STD

clr r29 ; r29 este octetul superior Y


ldi r28,$60 ; r28 este octetul inferior Y
ldd r0,Y+5 ; copiază valoarea de la adresa RAM 0x0065 în registrul r0

clr r31 ; r31 este octetul superior Z


ldi r30,0x63 ; r30 este octetul inferior Z
ldi r17,0x4A
std Z+8,r17 ; se scrie valoarea 0x4A la adresa RAM 0x006B 18
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDS / STS


 citește (LDS) de la o locație de memorie cu adresa
indicată de o valoare de 16 biți într-un registru de
uz general
 scrie (STS) la o locație de memorie cu adresa
indicată de o valoare de 16 biți dintr-un registru de
uz general
 accesul la un spațiu de memorie mai mare de 64KB
necesită utilizarea registrului de tip I/O RAMPD
19
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDS / STS


 valoareadirectă de 16 biți este automat
concatenată cu registrul RAMPD

20
Spațiu extins pentru regiștri I/O

 Instrucțiunile LDS / STS

lds r2,0xFF00 ; copiază valoarea de la adresa RAM 0xFF00 în


; registrul r2
add r2,r1
sts 0xFF01,r2 ; se scrie noua valoare la adresa RAM 0xFF01
21
Exercițiu

 Pentru uC ATmega 2561, să se configureze pinii PL7...PL4


ca intrare cu rezistențe de pull-up active și pinii PL3...PL0
ca ieșire

REGISTER LOCATIONS

22
Exercițiu

 ASM C
ldi r16,0b00001111 unsigned char *r_port=(unsigned char*)0x010B;
unsigned char *r_ddr=(unsigned char*)0x010A;
sts 0x010A,r16
ldi r16,0b11110000 *r_port = 0b00001111;
sts 0x010B,r16 *r_ddr = 0b11110000;

23
Memorii externe RAM/SDRAM

 uC au un modul numit External Bus Interface –


EBI. Caracteristici principale:
 folosește porturile I/O pentru a comunica pe o
interfață paralelă cu o memorie RAM externă
 accesul este transparent pentru utilizator care
poate folosi aceleași instrucțiuni de tip LD/ST ca și
în cazul RAM intern
 posibilități multiple de configurare pentru a
asigura o utilizare eficientă a porturilor
24
Memorii externe RAM/SDRAM

 Spațiul de adrese intern are prioritate față de


memoria externă, astfel:
 adresa de început a memoriei RAM externe este
întotdeauna mai mare decât ultima adresă de RAM
intern
 ex: se folosește ATmega2561 cu 8KB RAM intern și o
memorie RAM externă de 64KB – în implementarea
obișnuită doar 56KB de RAM extern sunt disponibili
 în anumite situații se pot folosi soluții speciale de
implementare care permit accesarea integrală a
memoriei externe
25
Memorii externe RAM/SDRAM

 Exemplu de implementare specială pentru o


memorie externă RAM de 32KB:
 este suficientă o adresă de 15 biți, prin urmare
bitul de adresă A15 nu se conectează la modulul de
memorie
 adresele de la 0x8000 la 0xA1FF sunt vizibile în
exterior ca 0x0000 la 0x21FF
 tot spațiul de memorie poate fi adresat de la
0x22FF la 0xA1FF
26
Memorii externe RAM/SDRAM

 Exemplu de implementare specială pentru o


memorie externă RAM de 32KB

A15 A12 A8 A4 A0
0x8000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0x0000

27
Memorii externe RAM/SDRAM

 Exemplu de implementare specială pentru o


memorie externă RAM de 32KB

A15 A12 A8 A4 A0
0xA1FF 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1

0x21FF

28
Memorii externe RAM/SDRAM
0x0000 0x0000
 Exemplu de
0x21FF
implementare 0x2200
0x21FF
0x2200
specială pentru
o memorie
externă RAM de
32KB
0x7FFF
0x7FFF
0x8000

0xA1FF

29

0xFFFF
Memorii externe RAM/SDRAM

 Caracteristici principale privind multiplexarea


magistralelor de date/adrese:
 modulul EBI permite folosirea multiplexării doar pentru
memorii SRAM, nu pentru SDRAM
 permite reducerea numărului de pini necesari pentru
comanda modulului de memorie
 necesită circuite de tip latch paralel, de ex. 74HC573
 alegerea circuitului latch trebuie să țină cont de
frecvența de tact a uC și caracteristicile memoriei RAM

30
Memorii externe RAM/SDRAM
 Exemplu de utilizare a multiplexării
magistralelor de date/adrese pentru
ATmega2561:
 uC pune biții de adresă A15:8 pe
magistrala de adrese dedicată
 semnalul ALE comandă latchul în modul
transparent
 uC pune biții de adresă A7:0 pe
magistrala de adrese comună cu
magistrala de date
 semnalul ALE comandă latchul în modul
memorare
 pentru scriere, uC pune biții de date D7:0
pe magistrala de date comună cu
magistrala de adrese
 uC comandă citire sau scriere folosind 31
semnalul RD sau WR
Memorii externe RAM/SDRAM

 Exemplu de utilizare a multiplexării magistralelor de date/adrese pentru


ATXmega conectat la SRAM

32
Memorii externe RAM/SDRAM

 Exemplu de utilizare a magistralelor de date/adrese pentru ATXmega


conectat la SDRAM

33
Întrebări ?

34

S-ar putea să vă placă și