i2c

Librerie PIC10/12/16 » 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

Routine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.0 (545 download)

Download versione 1.2

Questa versione ha in più unicamente la funzione I2cBulkRead che permette la lettura sequenziale comunque  facile da implementare leggendo questo articolo.

Routine Hardware I2C per moduli MSSP - Modalità Master e Slave - Ver 1.2 (198 download)



Questa pagina ti è stata utile? Ti ha permesso di risolvere un problema o di migliorare le tue applicazioni? Ci lavori? Ti ha permesso di scrivere la tua tesina? Ti ha semplicemente fatto spendere un po' del tuo tempo in maniera costruttiva? Allora clicca il banner qui sotto:

Settorezero.com è un blog personale di Giovanni Bernardo aperto dal 25 Ottobre 2007. Non è una testata giornalistica né un sito a carattere commerciale.
Settorezero.com, il logo Zroid™ e la tagline "Play embedded electronics™" sono copyright ©2007÷2018 Giovanni Bernardo.
La navigazione su settorezero.com e la fruizione dei contenuti ivi presenti sono soggette ai seguenti Termini di utilizzo - Informativa sulla privacy - Utilizzo dei Cookie.
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 poter contattare il gestore del sito potete utilizzare la sezione contatti o inviare una email a gianni[at]settorezero[dot]com.
Per seguire gli aggiornamenti del blog Settorezero, oltre al feed RSS, puoi anche seguire la pagina Facebook o iscriverti al canale Telegram.
Su Twitter, invece, pubblico un po' di tutto e, quando mi va, uso anche Tumblr - Google+ - Blogspot - Youtube.