Bus I2C...

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.

Reply to
Roby P.I. ®
Loading thread data ...

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

Reply to
Marnic

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ò...

Reply to
Roby P.I. ®

:-) 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

Reply to
Marnic

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.

Reply to
Roby P.I. ®

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.