Bus I2C...

Nov 09, 2003 4 Replies

Su un bus I2C, devo inviare lo start e lo stop a ogni inizio e fine trasmissione? Ad esempio, avendo un integrato che mi pilota 8 uscite comandato da I2C e uno che legge lo stato di 8 ingressi e invia il byte letto su I2C, se voglio visualizzare su 8 led lo stato di 8 interruttori devo:


-invio start



-invio indirizzo dell'integrato di input



-leggo byte contenente lo stato degli ingressi



-invio stop


-invio start



-invio indirizzo dell'integrato di output



-scrivo byte da visualizzare sui led



-invio stop


-ricomincio



Quei stop e start a metà devo inviarli per forza mi pare di capire...


Mandi e grasie.


voglio

Quei due sicuramente si, cmq a volte può essere più complessa la cosa:

Start, indirizzo, comando, bit R/W, stop Start, indirizzo, xxxx, bitW/R, stop a questo punto il chip incriminato ti manda i bit

Fai riferimento al data sheet dell'IC con il quale devi comunicare

Ciao

Uhm, varia a seconda della periferica da quel che ho visto. Dovrò anche rivedere le routine di lettura perchè a volta il master deve mandare l'ACK, altre no. Io lo mandavo sempre...

Che balle però...

:-) e poi è uno standard!

Se usi PBASIC con I2CREAD e I2CWRITE risolvi tutto

L'ACK serve quando devi leggere più byte senza ripetere tutta la storia, se la periferica ha un solo byte non mi sembra sia necessario ma male non fa (Di queste due righe ho un ricordo vago, non vorrei sbagliarmi) Ciao

No, vaderetro basic, me le son fatte da me in c, stavo appunto cercando di ottimizzare un po' la cosa. Eppoi PBASIC n'è per i PIC? Preferisco gli 8051...

se

Sui dispositivi di cui ho esaminato il funzionamento, il nack lo si invia alla fine dell'ultimo byte che si vuole ricevere. Così lo slave capisce che il master s'è stufato e gli manderà uno stop. Combinato comunque, messo una variabile a bit che se settata spara l'ack, se no no. Meglio così che fare 2 funzioni di lettura una con e una senza ack credo.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required