Bonjour,
Je découvre votre site, votre forum. J'ai eu l'occasion, parfois de lire quelques une de vos réponses et j'aurais moi-même quelques questions à poser.
Je cherche à créer une fonction déporté. C'est un PIC qui sera piloté par I2C. Le pic ne sera pas maître mais exclave. Il doit donc recevoir une séquence d'information série. J'ai déjà étudié le protocole en maître. Mais là c'est autre chose. Devant le peu d'infos, je pense me calqué sur un code existant (maître) et voir comment faire pour le transformer en esclave. Je pense que c'est faisable.
L'I2C est régi par une séquence particulière du style : [Start] [numéro pic] [Ack] [Ordre vers Slave / Ordre vers Master] [Ack] [Ordre reçu / Ordre envoyé] [Stop].
Dans le cas présent, on voie parfaitement ce qui se passe. Ici je veux d'abord écrire des données sur un port. Donc la séquence serais:
M -> Start
M -> 11110000 //Num pic
S -> ACK
M -> 10000011 //Ici j'écris sur le port C car le Bit de poids fort est à 1 et les deux bits de poids faible sont dédié au port. 01 -> port A / 10 -> port B / 11 -> portC
S -> ACK
M -> 10110000 //Port C 10110000
M -> STOP
J'ai donc commandé le port C en lui disant que j'écrivais dessus. C'est le principe. Maintenant voyons ce d'ont je possède. Pas certains que ça fonctionne. Si je me base sur un code d'écriture existant, je remarque plusieurs fonctions.
//Prototype
void i2c_init(void) //Initialisation
void i2c_wait(void) //Attendre
void i2c_start(void) //Start bit
void i2c_restart(void) //Restart
void i2c_stop(void) //Stop bit
void i2c_write(unsigned char data) //Ecrire
Au quel j'ajouterais :
//Prototype
unsigned char i2c_read(void) //Lire
Maintenant, comment faire chacune des fonctions ? C'est là ou se situe ma question. En espérant que je trouve une piste approprié.
Quoi qu'il en est que ça soit avec ou sans réponses, je cherche encore voir si je trouve une piste... Mais bon, j'ai peut être pas tout vue encore. Il existe certaines choses sur CC5X mais je ne l'emploie pas. Je reste sous XC8 fourni par Microchip.
Merci pour votre aide.
-----