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.

TDA4VEN-Q1: wakeup I2C0 HS mode waveform abnomaly

Part Number: TDA4VEN-Q1

hi teams,

I'm working on the SDK mcu_plus_sdk_j722s_11_00_00_12. I tried to change the WUKP I2C0 speed from 400kHz to 1MHz (HS mode). However, when I measured the waveform, I found something unexpected. 

According to the datasheet (Section 12.1.2.2.2.4.2, Figure 12-12), the first phase of HS mode transmission – the controller code – should be sent at F/S mode speed (400kHz). Then, after a repeated start (Sr), the target address and data are sent at HS mode speed (1MHz).

format.png

But in my measurement, the first phase runs at about 5MHz, while the second phase is correct at 1MHz. I used a logic analyzer to capture the waveform and decode it – the first phase is much faster than expected.

firstPhase.pngsecondPhase.png

I checked the I2C driver code. When the speed is set to 1MHz, the configuration registers for F/S mode clock are set to 0. This seems to cause the abnormal 5MHz on the first phase. code in function I2CmasterInitExpClk():

image.png  image.png

The datasheet also says that the low and high times of SCL during F/S mode and the first phase of HS mode are determined by the lower 8 bits of the SCLL and SCLH registers (I2C_SCLL[7:0] and I2C_SCLH[7:0]). The code doesn't seem to set these correctly.

clock.png

my questions:

  1. Is this a bug in the I2C driver?

  2. Does this issue affect normal I2C communication? (For example, will devices still work properly?)

Additional observation: Even without modifying the code, the communication do not report any errors, works well. However, looking at the waveform, the START bit itself does not meet the I2C standard. 

  • Hi Xie,

    Allow us some time.

    We will get back to you ASAP.

    Thanks for being pateint

    Vinit

  • Hi Xie,

    I checked on our side, This will not cause any issue with your task running at 1MHz as in the F/S mode it will be having unacknowledged address, so it won't get any ACK and eventually it will jump to HS mode which is in your case 1MHz - this will work fine.

    Regrading whether i2c should runt in F/S mode (<=400KHz) in the start of HS mode and then HS should start, i have created an internal request to take a look into that. So, if there is any Bug it will be fixed by Dev team.

    For now, this should not cause any issue with your task.

    Regards,

    Vinit