PMK_2015_7 (1).pptx

25
PRIMENA MIKROKONTROLERA- MS1PMK 7. deo 2015 Nenad Jovičić

Transcript of PMK_2015_7 (1).pptx

Page 1: PMK_2015_7 (1).pptx

PRIMENA MIKROKONTROLERA- MS1PMK7. deo

2015Nenad Jovičić

Page 2: PMK_2015_7 (1).pptx

Nucleo stize verovatno do 16.4.

• 1660,00 dinara komad

Page 3: PMK_2015_7 (1).pptx

LPC17xx SPI modul• Osnovne karakteristike

– Kompatibilan sa SPI specifikacijom za sinhroni, serijski, pun dupleks– SPI master ili slave mod– Maksimalna brzina prenosa – 1/8 periferijskog takta– 8-16 bita po prenosu– Bez podrške za baferisanje podataka– Signaliziranje grešaka

• SPI prenos podržan i preko SSP (Synchronous Serial Port) modula

Page 4: PMK_2015_7 (1).pptx

SPI signali

Driving edge

Sampling edgeTransfer complete (SPIF=1) master

Transfer complete (prekidni fleg SPIF=1 na slave strani)

CPHA – kontrola faze, CPOL – kontrola polariteta taktnog signala

Page 5: PMK_2015_7 (1).pptx

SPI opis rada• Master mod rada

– Inicijalizacija registara SPI modula– Upis podatka u SPI data registar što

inicira slanje podatka– Čekanje na kraj slanja (SPIF=1)– Čitanje statusa i primljenog podatka u

SPI data registru.• Slave mod rada

– Inicijalizacija registara SPI modula– Upis padatka u SPI data registar

(opciono) što briše SPIF status bit– Čekanje na SPIF=1– Čitanje status i primljenog podatka

• Greške u prenosu– Read overrun (podaci prebrisani)– Write collision (prenos u toku)– Mode fault (dva mastera)– Slave abort (slave prekinuo prenos)

Page 6: PMK_2015_7 (1).pptx

Povezivanje više Slave-ova

Page 7: PMK_2015_7 (1).pptx

Klasa SPI

Page 8: PMK_2015_7 (1).pptx

Klasa SPISlave

Page 9: PMK_2015_7 (1).pptx

SPI povezivanje 2 MBED-a

• Povezati dva MBED-a preko SPI-ja.• Jedan MBED je SPI master a drugi je SPI slave• Svaki MBED ima komunikaciju sa PC-jem I

hiperterminalom.• Implementirati “chat” izmedju dva

hiperterminala.• Hint: Pogledati projakat

SPI_Slave_Master_8FIFO

Page 10: PMK_2015_7 (1).pptx

LPC17xx SSP (Synchronous Serial Port) modul

• Modul podržava tri tipa interfejsa za sinhronu serijsku komunikaciju– Motorola SPI– 4-wire Texas Instruments SSI– National Semiconductor Microwire

• Osnovne karakteristike– Implementirana dva nezavisna SSP modula (SSP0 i SSP1)– Rad u master ili slave modu– FIFO baferi sa 8 frejmova za prijem i slanje– 4-16 bita podataka po frejmu– Podrška za DMA prenos– Pun-dupleks/polu-dupleks komunikacija– Mana – nema ACK...

• Oblici signala moraju da zadovolje setup/hold timing u odnosu na aktivnu ivicu signala prema specifikacijama interfejsa

Page 11: PMK_2015_7 (1).pptx

LPC17xx SSP modulFu

nkci

je I/

O p

inov

a u

zavi

snos

ti od

se

lekt

ovan

e fu

nkci

je S

SP m

odul

a

Page 12: PMK_2015_7 (1).pptx

4-wire prenos frejmaPrihvat podataka preko DR(S) linije*

Podaci spremni u FIFOFrame sync signal

DX(S) linija od slave ka masteru nije posebno nacrtana

Slanje podataka preko DX(M) linije

Page 13: PMK_2015_7 (1).pptx

SPI prenos frejmaTclk/2Podaci spremni u

FIFO baferu Sampling edge

Setup time Hold time

Aktivna ivica

Page 14: PMK_2015_7 (1).pptx

Microwire prenos frejma• Microwire format je sličan SPI formatu, osim što je reč o polu-

dupleks komunikaciji - poruke se ne prenose istovremeno.• Svaki prenos započinje 8-bitnom kontrolnim podatkom.• Dužina celog frejma 13-25 bita.• Prenos započinje upisom kontrolnog bajta u predajni FIFO!• Mana – nema ACK...

Page 15: PMK_2015_7 (1).pptx

LPC17xx I2C modul• Implementirana tri nezavisna I2C modula (I2C0, I2C1 i I2C2)• Podržani master, slave i master/slave modovi rada• Arbitracija pristupa u multimaster modu rada• Mogućnost monitoringa I2C prenosa na magistrali • Programabilni takt• Podrška za prenos do 1Mb/s (fast mod)• Bidirekcioni prenos podataka• Sinhronizacija brzine prenosa• Podrška za 4 slave adrese• Monitoring mod rada

(nadgledanje saobraćaja)

Page 16: PMK_2015_7 (1).pptx

I2C protokol• Svaki transfer započinje i završava se

takozvanim START i STOP zaglavljima.• Ova zaglavlja definiše tj. drajvuje

master.• Master diktira takt na magistrali.• Ukoliko Slave iz nekog razloga ne

može da primi podatak, zadržavanjem linije takta na niskom nivou master se stavlja na čekanje.

Na magistrali se drajvuje nizak naponski nivo

Page 17: PMK_2015_7 (1).pptx

ACK i NACK• Uvek se prenosi podatak koji ima 8-bita, i nakon svakog transfera podatka dodaje

se još jedan bit za potvrdu koji može biti ACK i NACK.• Prijemnik izdaje ACK posle svakog korektno primljenog podatka, time što prilikom

devetog taktnog impulsa na SCL liniji SDA liniju drži nisko.• NACK se generiše tako što se prilikom devetog SCL impulsa SDA linija na drajvuje i

može da znači da:– Ne postoji slave na liniji.– Salve nije mogao da primi podatke– Slave ne razume podatke– Slave ne može da nastavi sa primanje podataka.– Master u slučaju da je prijemnik obaveštava Slave da je završeno sa prijemom.

Page 18: PMK_2015_7 (1).pptx

I2C frejm

• Predajni mod– Master šalje slave adresu (7

bita) i R/W bit (0)– Po prijemu svake 8-bitne

informacije slave generiše stanje potvrde prijema (A)

– Čita se sadržaj statusnog registra I2CSTAT

• Prijemni mod– Slično kao predajni mod osim

što je R/W bit (1)• Predajno/prijemni mod

– Koristi se stanje ponovljeni START da se inicira novi ciklus komunikacije

Master RX mode

Master RX,TX mode

Ponovljeni START

Master TX mode

Page 19: PMK_2015_7 (1).pptx

Multimaster – sinhronizacija takta

• Svi uređaji rade na istom taktu.• Kada master 1 obori SCL liniju na nizak nivo, master 2

sinhronizuje svoj interni brojač.• Trajanje niskog nivoa na SCL liniji jednako je maksimalnom

trajanju niskon nivoa takta svih mastera.• Trajanje visokog nivoa na SCL

liniji jednako je minimalnom trajanju visokog nivoa takta

svih mastera.

Page 20: PMK_2015_7 (1).pptx

Arbitracija• Nakon sinhornizacije takta i START zaglavlja svaki master emituje svoju

poruku sa podacima. • Na rastuću ivicu takva svaki master proveraava da li je stanje na SDA liniji

jednako onom koje je postavio.• U slučaju da nije taj master gubi arbitraciju.

Page 21: PMK_2015_7 (1).pptx

Arhitektura I2C modula• Adresni i registar maske određuju koje se

adrese (ili pojedinačni biti) porede sa primljenom adresom.

• Komparator vrši poređenje adresa kao i poređenje sa general call adresom (00h)

• Pomerački registar sadrži primljeni ili bajt spreman za slanje.

• Logika za sinhronizaciju i arbitraciju. Kod sinhronizacije stanje SCL linije određuje najkraće stanje koje se drajvuje (low) i najduže stanje koje se ne drajvuje (high).

• Generator takta – podešavanje takta• Logika za generisanje tajminga i kontrolnih

signala – generiše i detektuje stanja, vrši pomeranje, generiše prekid...

• Kontrolni i statusni registri i logika (dekoderi)

Page 22: PMK_2015_7 (1).pptx

I2C masterhttp://mbed.org/handbook/I2C

Page 23: PMK_2015_7 (1).pptx

I2C Slave

Page 24: PMK_2015_7 (1).pptx

I2C SENZOR

• Implementirati i istestirati projekat povezivanja digitalnog kompasa HMC5834 na MBED.

• Koristiti dizajn opisan na stranici:– http://mbed.org/cookbook/HMC5843-Digital-Com

pass• PAŽNJA! – PIN OZNAČEN CRVENOM BOJOM

JE 3.3V – TO SE DOBIJA SA PINA BROJ 40!!!

Page 25: PMK_2015_7 (1).pptx

I2C povezivanje 2 MBED-a

• Povezati dva MBED-a preko I2C-a.• Jedan MBED je I2C master a drugi je I2Cslave• Svaki MBED ima komunikaciju sa PC-jem I

hiperterminalom.• Implementirati “chat” izmedju dva

hiperterminala.