Reading time: 3 – 4 minutes
Quan parlava de GPIO vaig parlar d’aquest protocol capaç de corre sobre ports d’aquest tipus. Doncs bé aquí en teniu una petita definició del que fa i com funciona aquest protocol.Un lloc on podem trobar sovint busos SPI són PDAs i en telèfons mòbils.
Definició
El bus SPI és del tipus serie i sincron, usa 4 cables i s’usa en molts microprocessadors de periferics. Els ports amb suport SPI suporten un ample de banda mitja/baix (1 megabaud) entre les seves CPUs i els altres dispositius que hi poden haver connectats al bus.
Com funciona
El bus SPI és relativament simple d’implementar per dispositius externs de poca velocitat i no ens calen gaire cables per establir la comunicació. L’interface d’aquest bus la va definir Motorola a l’estàndard de microcontroladors MC68HCxx. Usa un rellotge per marcar el sincronisme de la línia de dades tan d’entrada com de sortida del microcontrolador i la informació es mou en blocs de 8 bits.
El bus SPI usa una inteficie master/slave, com és normal en comunicacions serie síncrones és el master el que marca el rellotge. Un fet interessant en aquest tipus de busos és que podem rebre i enviar informació dels dispositius de forma simultanea, per tant es tracta d’un protocol full-duplex.
Una mica més endintre
Les senyals que usa el bus són:
- SLCK serial clock, sempre controlada pel master
- MISO master-in slave-out data
- MOSI master-out slave-in data
En una aplicació normal haurem de connectar la soritda de SCLK del microcontrolador a la entrada SLCK del convertidor. La MISO al pin DOUT del convertidor, la MOSI al pin DIN. Cada IC (circuit integrat) del bus SPI té una senyal CS (chip-select), cal activar la senyal per tal d’habilitar el dispositiu en el bus. Per tal de fer això podem usar qualsevol de les línies de sortida estàndard del microcontrolador. Cal però que pensem que si tenim n ICs connectats al bus, caldràn n senyals per activar els ICs. A més si compartime la senyal de rellotge i les línies de dades haurem d’habilitar la senyal de CS corresponent en cada cas.
Valoració
Com podeu veure el disseny del bus i el prtocol d’ús són molt senzills. Tan que si fem servir massa dispositius connectats a la mateixa línia de dades la cosa es fa una mica pesada de tractar. Malgrat això per moltíssimes aplicacions és una bona idea usar-lo.
Exemple d’ús
La gent de maxim tenen un document tècnic (local) molt bo on en poques ralles ens explique com comunicar un termometre digital, concretament el DS1620, només amb 3 cables a través d’un bus SPI. L’esquema del sistema és força senzill i us dona una idea de la simplicitat que suposa connectar aquest sensor de temperatura al bus SPI.