This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C123BH6PZ, I2C burst read 4 bytes

Hi All,

Here is code of I2C reading (4bytes):

while (1){
//[2]
// Delay
//
 ROM_SysCtlDelay(26*10000);


//[4]
// Read 4 bytes of data
//
 I2CMasterSlaveAddrSet(HIH8120_I2C_BASE, SENSOR_I2C_ADDRESS, true);


 I2CMasterControl(HIH8120_I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START);
 while(I2CMasterBusBusy(HIH8120_I2C_BASE)){};
 ui8RxBytes[0]=I2CMasterDataGet(HIH8120_I2C_BASE);


 I2CMasterControl(HIH8120_I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_CONT);
 while(I2CMasterBusBusy(HIH8120_I2C_BASE)){};
 ui8RxBytes[1]=I2CMasterDataGet(HIH8120_I2C_BASE);

 I2CMasterControl(HIH8120_I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_CONT);
 while(I2CMasterBusBusy(HIH8120_I2C_BASE)){};
 ui8RxBytes[2]=I2CMasterDataGet(HIH8120_I2C_BASE);


 I2CMasterControl(HIH8120_I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH);
 while(I2CMasterBusBusy(HIH8120_I2C_BASE)){};
 ui8RxBytes[3]=I2CMasterDataGet(HIH8120_I2C_BASE);

  }

in the code SENSOR_I2C_ADDRESS = 0x27

So, here is what I see on oscilloscope:

withing green vertical lines is 1 first byte of a the transaction on the bus, the firs byte is address and it is correct 0x27 (7 bits) + 1 last bit shows read operation. After the 1 byte I see only two bytes are read. So, the question is:

Why I see on oscilloscope only adress and reading of two bytes, as in the code above I read 4 bytes?