Other Parts Discussed in Thread: TMP1075
Hi Experts,
We are facing some issue with I2C ACK/NACK we are sending 3 byte in i2c line but it is sending only two byte:
second byte missing.
MAP_I2CMasterDataPut(I2C2_BASE, 0x00); //0x10
MAP_I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_BURST_SEND_START);
while(MAP_I2CMasterBusy(I2C2_BASE));
// while(!(MAP_I2CSlaveStatus(I2C2_BASE) & I2C_SLAVE_ACT_RREQ_FBR))
{
}
MAP_I2CMasterDataPut(I2C2_BASE, Dpot_Resistance_Todecimal); // value N
MAP_I2CMasterControl(I2C2_BASE, I2C_MASTER_CMD_BURST_SEND_FINISH); //I2C_MASTER_CMD_BURST_SEND_CONT
while(MAP_I2CMasterBusy(I2C2_BASE));
void init_i2c_init(void)
{
MAP_SysCtlPeripheralDisable(SYSCTL_PERIPH_I2C2);
MAP_SysCtlPeripheralReset(SYSCTL_PERIPH_I2C2);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C2);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL); //system enable gpio port L
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C2); // I2C2 system enable
MAP_GPIOPinConfigure(GPIO_PL1_I2C2SCL); //I2C2 clk gpio config port PL1
MAP_GPIOPinConfigure(GPIO_PL0_I2C2SDA); //I2C2 data PORT PL0
MAP_GPIOPinTypeI2C(GPIO_PORTL_BASE, GPIO_PIN_0); // PL0 is data
MAP_GPIOPinTypeI2CSCL(GPIO_PORTL_BASE,GPIO_PIN_1); // PL1 is clock
while(!MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_I2C2)) // I2C2 peripheral ready
{
}
MAP_I2CMasterInitExpClk(I2C2_BASE, ui32SysClock, true); // I2C2 clock setup //false = 100KHZ ,true = 400khz
// MAP_I2CMasterSlaveAddrSet(I2C2_BASE, 0x29, false); /
MAP_I2CMasterSlaveAddrSet(I2C2_BASE, 0x29, false); // I2C2 address setup for write to slave
MAP_I2CMasterEnable(I2C2_BASE);
}
{
}
I2C bytes : 82 ,0,253
82(0x29) is the address of the slave device, It is not sending 0(Zero).
It is sending 82 and 253 only, Why?
Am i doing some mistake?
***
Thank you.
Regards,
Archie A.