Bonjour à tous.

Je vous explique le problème. Je veux communiquer en I2C entre un micro freescale MC1322 et une jauge Maxim DS2778.
Les fonctions de l'I2C appartiennent à une bibliothèque et je ne peux donc pas les consulter. Je n'ai accès qu'aux prototypes :

pour l'écriture :
I2cErr_t I2c_SendData(uint8_t slaveDestAddr, uint8_t* i2cBuffData, uint16_t dataLength, I2cTransferMode_t transferMode
pour la lecture :
I2cErr_t I2c_ReceiveData(uint8_t slaveDestAddr, uint8_t* i2cBuffData, uint16_t dataLength, I2cTransferMode_t transferMode)

De plus, afin de lire un registre de ma jauge je dois effectuer les opérations suivantes :
Start, SlaveAdd,W, Ack, RegAdd, Ack, Restart, SlaveAdd, R, Ack, Data, Nack, Stop.

Pour cela je fais donc (après avoir initialisé mon I2C) :
I2c_SendData(SlaveAdd, RegAdd, 1, MasterHoldBus)
puis
I2c_ReceiveData(SlaveAdd, DataStore, 1, MasterReleaseBus).

A l'oscillo, j'observe bien le premier Start, l'envoi de l'adresse de ma jauge, le bit d'écriture, l'acquittement de la jauge, l'envoi de l'adresse du registre que je veux lire mais le problème est que je reçois un NAck après. Du coup mon micro envoie un stop sur la ligne et la fonction de lecture d'après me renvoie n'importe quoi...

Je ne sais pas si quelqu'un a déjà utilisé l'un ou l'autre de ces composants, mais les idées sont les bienvenues... Si au moins je pouvais accéder aux fonctions de la bibliothèque !

Merci d'avance.

Houarcheneger.