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.

UCD90320U: "Ignore input during delay" LGPO feature issue

Part Number: UCD90320U
Other Parts Discussed in Thread: UCD90320

Hello,

I have detected an issue with the feature "Ignore Input during delay" of a LGPO.

I configure LGPO #1 = NOT ( GPI #2) with a 50 ms delay.

  • Delay when asserted = ON
  • Delay when de-asserted = ON
  • Ignore Input during delay = OFF

Here normally, we should have the following behaviour :

  • LGPO = 1 when GPI = 0 for more than 50 ms
  • LGPO = 0 when GPI = 1 for more than 50 ms

But I have tested it with the dev kit UCD90320UEVM and a LOW pulse on GPI during 5 ms every 50 ms.

Here is the result, the LGPO is toggling between HIGH and LOW every 50 ms.

It's not how it should behave.

In this conditions, LGPO should stay LOW.

 

Coud you please give an explanation ?

 

Here is the configuration screenshot :

config.png

Here are the measurement screeshots :

image19830.png

image8037.png

image2235.png

 

Thanks,

Regards,

  • Hello,

    I have made more investigations on this issue.
    I have simplified the configuration and change the pinout.
    LGPO = GPI with :
    - delay = 25 ms
    - delay when asserting = ON
    - delay when de-asserting = ON
    - ignore inputs during delay = OFF

    Issue is reproduced when GPI is :
    - positive pulse = 2 ms every 25 ms ==> LGPO toggling every 27 ms
    - negative pulse = 2 ms every 25 ms ==> LGPO toggling every 27 ms
    - positive pulse = 5 ms every 25 ms ==> LGPO toggling every 30 ms
    - positive pulse = 2 ms every 12.5 ms ==> LGPO toggling every 27 ms
    - positive pulse = 2 ms every 6.25 ms ==> LGPO toggling every 27 ms

    Issue is not reproduced when GPI is :
    - positive pulse = 2 ms every 20 ms ==> LGPO = 0V
    - positive pulse = 2 ms every 30 ms ==> LGPO = 3.3V

    I think that the LGPO is working like this :
    0/ LGPO = 0 and GPI = 0
    1/ detect a rising edge on GPI
    2/ activate the delay and don't check GPI during the delay
    3/ when the delay expire, check GPI again
    4/ if GPI = 1, then LGPO = 1 ; if GPI = 0, then LGPO = 0

    According to Ti documentations, LGPO is not supposed to work like this.
    Cf : slvuaw9c - UCD90320 Sequencer and System Health Controller PMBus Command Reference.pdf

    Any GPI activity that is below the delay should be filtered by LGPO.
    But according to my measurement, it does not filter.

    I would like to have a proper confirmation from Ti on how the LGPO is supposed to behave.
    Is it filtering or not ?


    Thanks,
    Regards,

  • Here are some screenshots.

    GPI positive pulse = 2 ms every 25 ms ==> LGPO toggling every 27 ms

    GPI positive pulse = 5 ms every 25 ms ==> LGPO toggling every 30 ms

    GPI positive pulse = 2 ms every 6.25 ms ==> LGPO toggling every 27 ms

    GPI positive pulse = 2 ms every 20 ms ==> LGPO = 0V

  • Hi, Julien,

    Can you share the project file (.xml) saved using Fusion GUI so we can have a look?

    Regards

    Anne Ngo

  • Hi, Julien,

    The feature is "Delay Time" when asserting/de-asserting, not asserting/de-asserting time. It works as:

    When GPI2 is low (0b), then GPO1 will delay a time specified by "Delay Time" which is 50 ms, then GPO1 goes high (1b). GPO1 stay a high as long as GPI2 is low. Whenever GPI2 is high, GPO1 will delay 50 ms, then goes low (0b). => It works as expected.

    Anne Ngo

  • Hi, Julien,

    The "Ignore Inputs during delay" does not mean LGPO1 will completely ignore GPI2 signal. LGPO1 still follow GPI2 signal, only ignore the signal during delay time. When GPI2 is low, LGPO1 delay 50 ms, during that 50 ms delay, if GPI2 is high, LGPO1 will ignore that. After the 50 ms delay LGPO1 will check GPI2 state and will output a High or Low based on GPI2 status.

    => Device works as your configuration. You probably misunderstand the "Ignore Inputs" feature. If you would like an output that will toggle every 50 ms, you should use PWM pin instead.

    Regards

    Anne Ngo

  • Hello,

    Ok, so indeed, this what I have suspected, when the option "ignore inputs during delay" = OFF, the LGPO ignores the change of states of GPI during the delay.

    It's only at the end of the Delay that the GPO checks the state of the GPI and, depending on the new status of GPI, GPO states will change or not.

    Because when I read the LGPO descriptions and Ti documentations, the function is not supposed to work like this.

    It is supposed to do the following : 

    1/ GPI changes state

    2/ GPO change state after the Delay only if GPI is stable

    3/ during the delay, if GPI is not stable, the Delay is reset

    It is supposed to work like a Timer Block LTC6994-2 in debouncer mode.

    Is it possible to fix this with a custom Firmware patch on the UCD60320U ?

    The way that Ti implements this feature today in UCD90320, I don't see the application.

    I don't see why customers would use this feature the way Ti is doing it instead of having a debouncer.

    Do Ti have example of applications ?

    Thanks,

    Regards,

  • Hi, Julien,

    Please contact TI sale representative or TI FAE to request the changes. Firmware team then will review the request. I will close the ticket here.

    Regards

    Anne Ngo