i2c

Librerie PIC12 e PIC16 » I2C hardware per moduli MSSP (modalità master/slave)

Prerequisiti

PicMicro con modulo MSSP. Non è supportato il modulo SSP. Hitech C versione > 9.81

Utilizzo

Definire in i2c.h la frequenza del clock da utilizzare espressa in KHz, valori ammessi: 100, 400 e 1000:

#define	CLOCK	400 // 400KHz

Definire in i2c.h la frequenza dell’oscillatore espressa in Hertz:

#define FOSC	32000000UL // 32MHz

Definire in i2c.h i due pin del modulo MSSP utilizzati come C:

#define SCL_PIN	TRISA1
#define SDA_PIN	TRISA2

Includere nel programma principale la chiamata a i2c.c:

#include "i2c.c"

Inizializzare nel main il modulo:

I2cInitMaster(); // inizializzo il modulo MSSP in modalità master

Funzioni disponibili

void I2cInitMaster (void); // Init MSSP in Master mode
void I2cInitSlave (const unsigned char address); // Init MSSP in Slave mode (indirizzo a 7 bit)
void I2cWait(void); // Attesa flag interrupt su modulo MSSP
void I2cWaitForIdle(void); // Attesa bus in stato idle
void I2cStart(void); // Sequenza di start
void I2cRepStart(void); // Sequenza di start ripetuto
void I2cStop(void); // Sequenza di stop
unsigned char I2cReadMaster(unsigned char ack); // Lettura in modalità Master
unsigned char I2cWriteMaster(unsigned char I2cWriteData); // Scrittura in modalità Master
unsigned char I2cReadSlave(); // Lettura in modalità Slave
void I2cWriteSlave(unsigned char data); // Scrittura in modalità Slave

Nella versione 1.2 della libreria è disponibile la funzione aggiuntiva:

void I2cBulkRead(unsigned char devAddress, unsigned char regAddress, unsigned char numReads, unsigned char *buffer); // lettura bulk

La lettura bulk consente di eseguire la lettura di più registri del dispositivo slave in sequenza a partire dal registro definito da regAddress, vengono eseguite numReads letture consecutive e i risultati delle letture vengono memorizzate nell’array *buffer. L’indirizzo del dispositivo slave, devAddress, va definito come indirizzo a 7 bit

Download versione 1.0

PDFRoutine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.0 (5.88 kB - 396 downloads)

Download versione 1.2

Questo download è riservato esclusivamente ai collaboratori. Questa versione ha in più unicamente la funzione I2cBulkRead che permette la lettura sequenziale comunque  facile da implementare leggendo questo articolo.

PDFRoutine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.2 (6.29 kB - 34 downloads)
Settorezero.com e il logo Zroid™ ©2007÷2017 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore. I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia e sono soggetti alle condizioni definite nel disclaimer. Settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa. Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti. Siamo presenti anche su Facebook e, meno assiduamente, anche su Twitter - Tumblr - Google+ - Blogspot - Youtube.
Creative Commons BY-NC-ND 2.5