Sunteți pe pagina 1din 4

Interfaa serial SPI

Interfa a seriala SPI (Serial Peripheral Interface) este o interfaa sincron standard de mare vitez, ce opereaz n mod full duplex. Numele ei a fost dat de Motorola. Ea e folosit ca sistem de magistral pentru sincron serial transmitere de date, unde circuite digitale pot s fie interconectate pe principiul master-slave. Aici, modul master/slave nseamn, c dispozitivul (circuitul) digital master iniiaza cuvntul de date. Mai multe dispozitive (circuite) digitale slave sunt permise cu slave select individual, adic cu selectare individual.

Interfaa
SPI-ul are patru semnale logice specifice.

SCLK - Ceas serial (output din master) MOSI/SIMO - Master Output, Salve Input (output din master) MISO/SOMI - Master Input, Slave Output (output din slave) SS - Slave Select (active low; output din master)

Operare
Interfaa SPI poate opera cu un singur dispozitiv master i unul sau mai multe dispozitive slave. Dac un singur dispozitiv slave este utilizat, pinul pentru SS poate fi setat pentru logic "low"/"jos" dac dispozitivul permite. Unele slave-uri necesit "falling edge" (nalt/highjoas/low tranziie) al slave-selectului pentru a iniia o aciune la fel ca Maxim MAX1242 ADC, care ncepe conversia la tranziia respectiv. Cu multiple slave-uri, un semnal SS independent este necesar de la master pentru fiecare dispozitiv (circuit) digital slave. Majoritatea dispozitivelor slave au trei stri logice, aa c semnalul MISO devine "deconectat" (ieire n gol) atunci cnd dispozitivul nu este selectat. Dispozitivele fra trei stri logice nu pot mpri (nu pot participa la) magistrala SPI cu alte dispozitive; doar acele slave-uri pot comunica cu master-ul i doar dac au activat chip-selectul.

Transmisia de date
Pentru a ncepe comunicarea, master-ul mai nti configureaz ceasul, folosind o frecven mai mic sau egal cu maximul frecvenei suportata de slave. Aceste frecvene sunt de obicei n intervalul 1-70 MHz. Atunci master-ul seteaza slave select-ul jos pentru chip-ul dorit. Dac este necesar o perioada de ateptare (ca la conversia analog-digital) atunci master-ul ateapt cel puin acea perioad de timp nainte de a ncepe ciclurile de ceas. n timpul fiecrui ciclu de ceas SPI, apare o transmisie full duplex: master-ul trimite un bit pe linia MOSI; slave-ul il citeste de pe aceeasi linie

slave-ul trimite un bit pe linia MISO; master-ul il citeste de pe aceeasi linie Nu toate transmisiile necesita toate aceste patru operatii pentru a putea fi intelese dar ele se petrec. In mod normal, transmisiile implica doi registrii schimbati de o lungime a cuvantului, cum ar fi opt biti, unul in master si unul in slave; ei sunt conectati intr-un inel. Informatia este de obicei intai schimbata cu cel mai semnificativ bit, in timp ce schimband cel mai putin semnificativ bit in acelasi registru. Dupa ce acel registru a fost transmis, master-ul si slave-ul si-au schimbat valorile din resgistrii. Atunci fiecare dispozitiv ia acea valoare si face ceva cu ea, cum ar fi scrierea in memorie. Daca mai sunt date de schimbat, registrii de schimb sunt incarcati cu noi date si procesul se repeta. Transmisiile pot include oricate cicluri de ceas. Cand nu mai sunt date de transmis, master-ul opreste comutarae ceasului. In mod normal, el atunci deselecteaza slave-ul. Adesea transmisiile sunt de cuvinte a opt biti, si master-ul poate initia multiple transmisii daca are nevoie. Cu toate astea, alte marimi ale cuvantului sunt obisnuite, cum ar fi cuvinte de 16 biti pentru controller-ul de touchscreen sau codecuri audio ca TSC2101 de la Texas Instruments; sau cuvinte de 12 biti pentru diverse convertoare digitale-analog sau convertoare analog-digitale. Fiecare slave de pe magistrala care nu a fost activat folosind slave select-ul nu trebuie sa ia in considerare semnalul de ceas si semnalul MOSI si sa nu transmita MISO. Master-ul trebuie sa selecteze doar un slave la un moment dat.

Polaritatea si faza ceasului


In plus fata de setarea frecventei ceasului, master-ul trebuie sa configureze polaritatea si faza ceasului respectand datele. Aceste doua optiuni a fost numite CPOL si CPHA in "Freescale's SPI Block Guide", iar cei mai multi producatori le-au adoptat.

Diagrama de timp este afisata in dreapta. Timpul este descris mai jos si se aplica atat dispozitivelor master cat si celor slave. La CPOL=0 valoarea ceasului este zero Pentru CPHA=0 data este capturata pe tranzitia jossus si este propagata pe tranzitia susjos a ceasului. Pentru CPHA=1, data e capturata pe tranzitia susjos si propagata pe tranzitia jossus. La CPOL=1 valoarea ceasului este unu Pentru CPHA=0 daca e capturata pe tranzitia susjos a ceasului si propagata pe tranzitia jossus. Pentru CPHA=1 data e capturata pe tranzitia jossus si propagata pe tranzitia susjos.

Cu valoarea CPHA=0 data trebuie sa fie stabila o jumatate de ciclu inainte de primul ciclu de ceas. Pentru toate modurile CPOL si CPHA, valoarea initiala a ceasului trebuie sa fie stabila inainte ca chipul sa selecteze linia activa.

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