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.

TPS65218D0: Reboot issue when STRICT is enabled

Part Number: TPS65218D0
Other Parts Discussed in Thread: TPS65910, TPS65217, TPS650250, TPS6521825, TPS6521815, BOOSTXL-TPS65218, MSP-EXP430F5529LP, IPG-UI, TPS65218

We have a custom board based heavily off of am437x-sk-evm.  The board is able to boot fine, except if the second ethernet port is not plugged in.  Plugging in the cable causes an immediate reboot, but only if the USB controller has not initialized.  De-initializing the USB controller at any time with the second ethernet port plugged in triggers the reboot.  See the original post here: https://e2e.ti.com/support/processors/f/791/t/902314

After a large amount of trial and error, we have been able to work around the issue by disabling STRICT mode on the PMIC.  After several days of probing, however, we are still unable to find any events on any of the voltage rails (DCDC1-4, LDO1).  Is there anything else that STRICT changes that could be the root issue? 

Also, it looks the like thresholds of STRICT changed between the EVM's B1 silicon and our D0 silicon.  Has the am437x-sk-evm ever been tested using a TPS65218D0?

  • Unless you have security requirements in the system, like in the case of an EPOS system, it is not necessary to set STRICT=1b. STRICT=1b is the default programming of the bit, but there are no issues with STRICT=0b in most systems.

    When STRICT=1b, all of the DCDC1-4 and LDO1 regulators have VPG (power-good threshold) enabled with tight requirements, and VOV (over-voltage threshold) is also enabled. Since the TPS65218D0 will detect a VPG or VOV fault within 50us, it is possible that such an event occurred but you were unable to trigger on an oscilloscope to capture the event.

    The -B1 silicon did not meet the original target values for when STRICT=1b so it was not satisfying the security requirements to detect tamper events on the EPOS system using chip cards. The -B1 datasheet was modified to accurately reflect the performance of the silicon.

    The values that are in the TPS65218D0 datasheet are the original target values for the device and it is within spec.

    I cannot say if the AM437x-SK-EVM was tested with TPS65218D0 silicon, only that it was originally built with -B0 silicon. The AM437x team would need to comment on if the EVM was re-tested using the -D0 silicon. However, there may still be minor differences between the AM437x-SK-EVM and your custom board that make your PCB more susceptible to VPG or VOV faults.

  • That explains alot--Thanks Brian!

    Out of curiosity, if STRICT isn't needed by most designs, why is it the default?

  • That's a fair question. It is because the TPS65218D0 was originally released for AM438x. Since AM438x requires Secure RTC and Tamper protection, the TPS65218D0 is available with STRICT=1b as the default.

    We did not release a variant of TPS65218xx specifically for AM335x and AM437x with STRICT=0b because at the time it was much more common to use TPS65217, TPS65910, or TPS650250 to power these processors.

    Newer programming variants of the TPS65218xx device (TPS6521815 and TPS6521825) do have STRICT=0b as the default option.

  • Is it possible to order the D0 pre-programmed with STRICT=0b? Or is it possible to buy sort sort of clamshell programmer for D0 to set STRICT to 0b prior to soldering?

  • Michael,

    We created the TPS6521815 and BOOSTXL-TPS65218 for anyone who is interested in custom EEPROM programming for the TPS65218xx PMIC.

    The TPS65218D0 and TPS6521815 use the same silicon, but the TPS65218D0 is pre-programmed for ideal implementation with AM438x whereas the TPS6521815 is programmed with "Blank EEPROM".

    In other words, the TPS6521815 has all voltage regulators, load switches, and GPIO disconnected from the power sequencer. When TPS6521815 samples are placed in the BOOSTXL-TPS65218 socket, USB power is applied to the MSP430 Launchpad (MSP-EXP430F5529LP), and the LaunchPad provides 5V/3.3V power to the TPS6521815 device for programming. All of the PMIC output voltages will be 0V when power is initially applied. You can then re-program the EEPROM memory using the IPG-UI software, and after power cycling the BOOSTXL-TPS65218 the PMIC will power-up with your custom settings.

  • Brian,

    To be clear, TI does not have a service to pre-program TPS6521815? Therefore, we have to figure out a way to program them prior to first boot up? 

    Thanks,

    Mike Jones

    P.S. I just heard that we are able to re-program the D0 parts using the BOOSTXL setup fine, but when they try to program TPS6521815, nothing gets saved to EEPROM... We can write values to RAM & read back, but after a power cycle, the EEPROM remains blank.  

  • Mike,

    Yes, we have partnered with ARROW to pre-program TPS6521815 units based on your requirements. If you refer to our DIY PMIC landing page there is a link to Arrow programming services that you can click to fill out a form and get started.

    Michael Jones3 said:
    P.S. I just heard that we are able to re-program the D0 parts using the BOOSTXL setup fine, but when they try to program TPS6521815, nothing gets saved to EEPROM... We can write values to RAM & read back, but after a power cycle, the EEPROM remains blank.  

    You want have to tell me more about your programming sequence for me to understand why you are able to re-program TPS65218D0 units but cannot re-program TPS6521815 units. Keep in mind, the EEPROM is never truly "blank", it just has the DCDCx and LDO1 rails disconnected from the sequencer. You need to set non-zero values in SEQ3-SEQ7 in order to have the output rails enabled by the sequencer.

  • I was able to program the blank PMIC with the values of the D0 part shown below.

     

    RegAddr         Value

    00                        15​

    01                        01​

    02                        00​

    03                        00​

    04                        00​

    05                        68​

    06                        00​

    07                        00​

    10                        CE​

    11                        3F​

    12                        13​

    13                        48​

    14                        C0​

    15                        00​

    16                        99​

    17                        99​

    18                        8C​

    19                        B2​

    1A                        06​

    1B                        1F​

    20                        00​

    21                        00​

    22                        98​

    23                        75​

    24                        12​

    25                        63​

    26                        03​

     

    However, when I open up the IPGUI and read the values, the CHIPID is not there. (See below)

    (Screenshots don't seem to copy)

    I am unsure on if this is an issue but just want to make sure. Because when I read the registers of the D0 PMIC I see the CHIPID to be the TPS65218. (see below)

    (Screenshots don't seem to copy)

  • Michael,

    This makes perfect sense to me :-)

    • TPS65218 devices will always have CHIPID = 0x03 (the '3' indicates silicon Rev. B1, NRND)
    • TPS65218D0 devices will always have CHIPID = 0x05 (the '5' indicates silicon Rev. D0, which is stated in the datasheet)
    • TPS6521815 devices will always have CHIPID = 0x15
    • TPS6521825 devices will always have CHIPID = 0x25

    Future pre-programmed variants would have CHIPID = 0x35, 0x45, etc.

    You cannot re-program the CHIPID register without entering Test Mode, which opens up other internal registers to be modified. This is not ideal and would introduce unnecessary risk into the programming flow.

    Based on checking a few registers in your RegDump, it looks like you have programmed you units similar to TPS65218D0 but with STRICT = 0b (CONFIG1, Register 0x13 = 0x48 vs. the TPS65218D0 default which is 0x4C with STRICT, bit 2 =1b)

    DCDC1, Reg. 0x16                        0x99 --> 1.1V​

    DCDC2, Reg. 0x17                        0x99​ --> 1.1V

    DCDC3, Reg. 0x18                        0x8C​ --> 1.2V

    DCDC4, Reg. 0x19                        0xB2​ --> 3.3V

    LDO1, Reg. 0x1B                         0x1F --> 1.8V