Hi community friends, I have a problem with the IIC inside the SDK of S32K144, can you help me out? I am using the I2C PAL of the SDK, S32K144 acts as the host of I2C to send data, because I need the WC pin to be controlled low when I write the EEPROM, so I pull down the WC before I write it, and call while(STATUS_SUCCESS ! = I2C_MasterSendDataBlocking( &I2C_Config_instance, &TxBuffer[0],3,true,100)); after transmitting 3 bytes and detecting the return status of STATUS_SUCCESS the WC pin will be pulled high, but the actual captured waveforms are pulled high at 0x99 ( Figure) on the pull high, according to the reason should be the transmission of 0x99 before the pull high it, this is why?
I tested your project and saw a similar phenomenon to the I2C waveform graph you provided. Looking at the I2C_MasterSendDataBlocking I found that it considers STATUS_SUCCESS when it transfers the last data to the transmit FIFO in LPI2C_DRV_MasterSendData. However, it takes some time from the time the data is written to LPI2C's transmit FIFO to the time when it is actually sent. But the LPI2C transmit FIFO needs some time from the time the data is written to it to the time it is actually sent.
LPI2C_DRV_MasterSendData only enables some interrupts, such as LPI2C_MASTER_FIFO_ERROR_INT, LPI2C_MASTER_ARBITRATION_LOST_INT, and LPI2C_MASTER_NACK_DETECT_INT, unfortunately. Also did not turn on or implement SDF (STOP Detect Flag) Master has transmitted a STOP condition interrupt event.
Hi, there:
Attached is the project I'm using, the SDK is using version 3.0.0
Hi.
Can you tell me which version of the SDK it is and if it would be convenient to send me the test project so I can test it on the S32K144EVB?
Best Regards,
Robin
Attached Waveforms