AnsweredAssumed Answered

Issue with I2C Driver

Question asked by HARI KRISHNA KAPPARAPU on Sep 7, 2018
Latest reply on Oct 4, 2018 by Cristian Zamfirescu

Hi,

I am seeing a problem with I2C Driver of S32K148.

Driver is properly initialized and I could see that the peripherals connected on I2C bus are communicating. That gives me confidence that the interrupts are working and Hardware is correctly connected.

 

But here is the problem:

After sometime (may be after a minutes of continuous communication), the driver stops communicating with peripherals by hitting the break condition through DEV_ASSERT at master->rxBuff != NULL as highlighted in the source code below.

 

I modified this driver code with a microsecond resolution counter instead of OSIF calls for timeouts for these blocking calls. Modified Driver files are attached with this post for reference.

 

static void LPI2C_DRV_MasterHandleReceiveDataReadyEvent(uint32_t instance, LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
{
DEV_ASSERT(g_semI2cMasterFlag[instance] != FLAG_UNKNOWN);

/* Received data ready */
DEV_ASSERT(master->rxBuff != NULL);

 

FYI, I am working with S32K148EVB using S32DS.

 

Please suggest your recommendations to solve this issue.

 

Thanks,

Hari

Attachments

Outcomes