Salta la barra di navigazione [1] - Vai alla barra di navigazione [3] - Scrivimi una mail [4]

Master SPI con le PLIB

PIC18 in C - Sommario - Novità - Tutorial - Progetti - Risorse - Non solo elettronica

SPI

Attenzione! Le PLIB sono dal luglio 2015 sconsigliate per nuovi progetti Attenzione!

In questa pagina non verrà spiegato cosa è e come si usa il bus SPI. Se serve, qui trovate qualche informazione.

In questa pagina viene mostrato come collegare una periferica SPI ad un PIC18, utilizzando le PLIB. Se siete interessati all'uso diretto degli SFR: PIC18 come master SPI

L'hardware

Il circuito è stato realizzato su breadboard utilizzando un PIC18F25K20, un ADC a 12 bit MAX 146 ed un DAC a 12 bit MCP4822.

La realizzazione del circuito, utilizzato anche per altre prove, non presenta particolari criticità. Le uniche avvertenze, utili soprattutto con le frequenza del bus SPI più elevate, sono quelle di inserire alcuni condensatori per disaccoppiare l'alimentazione e, ovviamente, realizzare collegamenti ordinati e non troppo lunghi.

Schema elettrico 

Lo schema mostra i collegamenti tra il PIC e le due periferiche:

Uso delle PLIB

Le due funzioni di riferimento sono:

I dettagli di queste e altre funzioni PLIB sono descritti nello specifico documento PDF fornito con il compilatore XC8.

Il codice di riferimento è disponibile a fondo pagina ed è relativo alla lettura di uno dei canali dell'ADC..

Di seguito il diagramma temporale. Dall'alto:

Codice

Esercizi

  1. Scrivere la funzione void Set_DAC(int mVoltage, int channel) il cui scopo è impostare la tensione in uscita ad uno dei canali del DAC MCP4288, con tensione in millivolt. In alternativa, la tensione potrebbe essere espressa come double... con qualche effetto negativo (quali?)
  2. Scrivere la funzione int Get_mV_ADC (int channel) il cui scopo è leggere la tensione applicata ad uno dei canali del MAX146

PIC18 in C

Appendici:

Qualche utile informazione integrativa: C per sistemi embedded

Licenza Creative Commons Attribuzione 4.0 Internazionale


EN - Pagina principale - Sommario - Accessibilità - Note legali e privacy policy - Posta elettronica

XHTML 1.0 Strict - CSS 3