Sunteți pe pagina 1din 25

Microcontrolere

Curs 7

Ș.l. dr. ing. Mihai Niculescu


Cuprins

 Modulul comparator analogic


 Modulul de comunicație SPI
 Noțiuni generale
 Configurarea

 Modulul de comunicație TWI


 Noțiuni generale
 Configurarea
2
Modulul comparator analogic

 Când tensiunea
pe AIN0 este
mai mare decât
cea de pe AIN1, PB2
ieșirea
comparatorului
devine 1 logic PB3

3
Modulul comparator analogic

4
Modulul comparator analogic

1 activează ieșirea 1 activează declanșarea unității de


modulul comparatorului captură a Timer/Counter1 de către
ieșirea comparatorului
1 activează flagul de
folosirea bandgap întrerupere 5

pentru V+
Modulul comparator analogic

1 activează întreruperea

6
Caracteristici principale modul SPI

 SPI = Serial Peripheral Interface


 Full duplex, sincronă
 Este de tip master/slave
 Conexiuni:
 SCLK – Serial clock, generat de Master
 MOSI – Master Output, Slave Input, date transmise de
Master
 MISO – Master Input, Slave Output, date recepționate de
Master
 SS – Slave select – activarea dispozitivului Slave de către
Master, activ pe zero 7
Principiul de funcționare modul SPI

 Master inițiază comunicația prin activarea SS


 Master generează semnalul de ceas SCLK
 Pe fiecare perioadă de ceas un bit se transmite de la
master la slave și un bit de la slave la master
 După fiecare pachet de date SS poate fi dezactivat
pentru sincronizarea Slave

SCLK SCLK
SPI MOSI MOSI SPI
Master MISO MISO Slave
8
SS SS
Principiul de funcționare modul SPI

 Pentru un dispozitiv Slave, SS este semnal de intrare


 SS cu valoare 0 înseamnă activarea dispozitivului slave. O
tranziție din 0 în 1 înseamnă resetarea ciclului de transfer
(marchează sfârșitul unui pachet)
 SS cu valoare 1 – dispozitiv Slave inactiv

 Pentru un dispozitiv Master, SS poate fi:


 Ieșire– prin el activează dispozitivul Slave pentru
comunicare
 Intrare – dacă se permit mai multe dispozitive master, o
valoare 0 la intrarea SS trece dispozitivul curent în modul
Slave 9
Principiul de funcționare modul SPI

 Configurații cu mai multe dispozitive: semnale SS


independente sau “daisy chain”

10
PB6
REGISTRU DEPLASARE
Modulul SPI PB5

 PB4 are rol de


SS doar când PB7
ATmega32 este
CEAS PB4 / ?
Slave
 Când ATmega32 CONTROL
este Master,
orice pin poate
fi folosit ca
semnal SS

11
Controlul pinilor pentru modulul SPI

12
Registrul de date SPDR

 Registrul SPDR este folosit și pentru recepție și


pentru emisie
 Când se citește din SPDR, valoarea citită
reprezintă datele recepționate
 in r16, SPDR

 Când se scrie în SPDR, valoarea respectivă este


transmisă
 out SPDR, r18 13
Regiștrii modulului SPI

valoarea 1 activează 1 – mod Master


întreruperea la finalizarea 0 – mod Slave
unui transfer
valoarea 1 activează 1 – LSB first
modulul SPI 0 – MSB first 14
Regiștrii modulului SPI

15
Regiștrii modulului SPI

Registrul
SPSR

16
Regiștrii modulului SPI

devine 1 la finalizarea
unui transfer

devine 1 dacă se încearcă scrierea în


17
SPDR în timpul unui transfer de date
Exemplu configurare SPI ca master

SPI_MasterInit: void SPI_MasterInit ()


ldi r17,0b10100000 {
out DDRB,r17 DDRB = (1<<PB7) | (1<<PB5);
ldi r17,0b01010001 SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR0);
out SPCR,r17 }
ret

18
Exemplu transmitere date master

SPI_MasterTx: void SPI_MasterTx (uint8_t data)


out SPDR,r16 {
Wait_Tx: SPDR = data;
sbis SPSR,SPIF while ( !(SPSR & (1<<SPIF) ) );
rjmp Wait_Tx SPIF=1 }
ret

19
Exemplu configurare SPI ca slave

SPI_SlaveInit: void SPI_SlaveInit ()


ldi r17,0b01000000 {
out DDRB,r17 DDRB = (1<<PB6);
ldi r17,0b01000000 SPCR = (1<<SPE);
out SPCR,r17 }
ret

20
Exemplu recepție date slave

SPI_SlaveRx: uint8_t SPI_SlaveRx ()


sbis SPSR,SPIF {
rjmp SPI_SlaveRx SPIF=1 while ( !(SPSR & (1<<SPIF) ) );
in r16,SPDR return SPDR;
ret }

21
Caracteristici principale modul TWI

 TWI = Two-wire Serial Interface


 Este o variantă de implementare a I2C – Inter-integrated
Circuit
 Half duplex, sincronă
 Este de tip master/slave
 Conexiuni:
 SCL – Serial Clock, generat de Master
 SDA – Serial Data
 Fiecare dispozitiv are o adresă
 7 biți de adresă
 16 adrese rezervate
 112 adrese disponibile – 112 dispozitive pe un bus 22
Caracteristici principale modul TWI
 SDA, SCL sunt conectate “open collector” sau “open drain”
 Rezistențe “pull up” țin linia la Vcc
 Wired-AND: o linie poate fi ”trasă” la 0 de orice dispozitiv – ea va
deveni 0 dacă cel puțin un dispozitiv scrie 0, altfel este 1

23
Caracteristici principale modul TWI

 Dispozitivele pot avea 2 roluri:


 Master – generează semnalul de ceas și adresele
 Slave – primește semnal de ceas și adresa
 Rolurile se pot schimba pentru același dispozitiv
 Moduri de operare:
 master transmit — dispozitiv master trimite date la slave
 master receive — dispozitiv master recepționează date de la slave
 slave transmit — dispozitiv slave trimite date la master
 slave receive — dispozitiv slave primește date de la master
24
Întrebări ?

25

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