Hello,
I'm implementing a SMBus slave device with the libraries provided for SMBus communication (SMBus.h and SMBus.c). I'm using an interrupt based approach and I'm using the base code provided in the SW-TM4C-UTILS-UG document as a template for my code. When the communication starts, the slave device is able to send the data correctly only on the first word. In subsequent read word operations, the slave is not sending the intended data and it's only sending 0xFF in every byte. I've been trying to figure it out, but so far no luck. I'd appreciate some help on this. Check the Slave ISR code below and a screenshoot of a piece of the SMBus capture.
struct battData {
uint8_t voltage[2];
uint8_t current[2];
uint8_t relsoc[2];
uint8_t remCap[2];
uint8_t fullCap[2];
uint8_t time2empty[2];
uint8_t status[2];
uint8_t temperature[2];
};
struct battData battery = {{0x01,0x02},{0x03,0x04},{0x05,0x06},{0x07,0x08},{0x09,0x0A},{0x0B,0x0C},{0x0D,0x0E},{0x0F,0x10}};