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.

AM2612:   AM2612:AM2612 and PMIC I2C0 address 0x60 conflict issue

Part Number: AM2612
Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH

Tool/software:

Hello,

I have some questions about AM2612 using PMIC. Our PMIC part number is TPS65360 .

However, the debug GUI we are using is like this. The program is kill down.

 

Our PMIC part number is TPS65360, and its I2C address is 0x60. But the address should not add into the sysconfig tool. It may be conflict with I2C0 address in the MCU driver program?

PMIC I2C use I2C2 channel in the following circuit diagram. But the app program cannot run normally. It will hang at the “  gPmicHandle[instCnt] = PMIC_open(instCnt, &gPmicParams[instCnt]);”.

If I delete the PMIC address 0x60 and delete the I2C0 configuration ,then the app will run successfully.

According to my current schematic design, how can I solve the I2C conflict problem? Please help provide solutions. Thank you.

Thanks.

  • Hi,

    Can you please share the screenshots of the I2C configurations done in syscfg for all 3 I2Cs (I2C0, I2C1, I2C2). 
    Also, just to make sure, you haven't set the PMIC Address (0x60) as own I2C slave address anywhere in the code right?

    Regards,
    Shaunak

  • sbl sysconfig picture is as below

      

    app  sysconfig picture is as below

    sbl jtag uniflash sysconfig is as below. I use jtag to program the flash.

  • Hi Susie,

    Let me check and get back

    Regards.
    Shaunak

  • Hi Susie,

    If I understand correctly, you are using I2C2 with PMIC right? And,

    The PMIC will communicate with AM261x (PMIC as slave, AM261x as master, AM261x I2C2 target address to communicate with PMIC = 0x60). Based on the screenshots shared above I2C0 is using 0x1C in SBL.

    sbl sysconfig picture is as below

    In case of SBL (I assume this is SBL OSPI), can you let me know why I2C2 slave address is set as 0x60 (the own target address is used by I2C for performing slave operations)

    app  sysconfig picture is as below

    In case of the application I believe the code fails (goes into some assert) when the I2C2 is over-written as 0x18. Would it be possible to share more details on where exactly it fails inside the pmic_open function? The pmic open function will map to the function table for TPS65360 and the open function will make some I2C transactions.

    Can you also share the function call-stack of the case when it fails?

    If you wish to consistently use 0x60 as the slave address (and it works), we can delete the config done in Application's Syscfg (or re-use the same). The driver does not have any dependency on blocking the address.

    Regards,
    Shaunak