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?
