Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti. Basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi : chi fa questo è solo un miserabile e un perdente. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni, come dovrebbe essere in un paese civile e acculturato, potete farlo tranquillamente.

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 - 279 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 - 15 downloads)
settorezero.com e il logo Zroid™ ©2007÷2013 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 a cui vanno aggiunte le condizioni d'uso 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.
Creative Commons BY-NC-ND 2.5
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.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.