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.

CCS/UCD3138: software protection

Part Number: UCD3138

Tool/software: Code Composer Studio

We would like to mask software protecion when conducting Highly accelerated life test.

Which part of the code should we mask?

We downloaded the code of this URL(www.ti.com/tool/ucd3138fw-psfb)to UCD3138.

  • The protection is not enabled as default.

    You can use the ROM backdoor PMBus command in order to go back to ROM. This way you can update the firmware.

    Alternatively you can choose the "Do not write checksum" when downloading the firmware. This way after a reset you will go back to ROM and stay there.

    Regards,

  • Thank you for your reply

    Sorry, I said it wrong. Exacctly, We wolud like to not work over_voltage protection, over_ current protection, over_temperture protection and under_voltage protection .

  • Oh, sorry I assumed you were referring to something else.

    We do not have a compilation flag that can disable all protections against faults.

    You will need to get into the code and disable those.

    Start with the file init_protection.c and standard_iterrupt.c, the protection code is in many places..

    Regards,

  • Thank for your reply

    Is it possible to disable the ADC of OC and OV. Which part of init_protection should I mask? In the current code, which set is EADC averaging and how can I change it?

    UCD3138 often stop through fault of OC and OV. But it is smaller than the threshold when actually measuring the voltage of feedback. Is this a malfunction of the IC due to noise etc?
    Also, please tell me the cause of IC reset.


    best regards,
  • To cancel the ADC of OC and OC, in system definitions.h modify:

    #define IOUT_FAULT         (0) //(adc_values.io_sense > IOUT_OC)

    #define IOUT_NO_FAULT (1)//(adc_values.io_sense < IOUT_NO_OC)

    #define VOUT_FAULT          (0)//(adc_values.vo_sense > VOUT_OV)

    #define VOUT_NO_FAULT (1)//(adc_values.vo_sense < VOUT_NO_OV)

    For EADC averaging please look at the following section inside the standard_interrupt.c :

    #if  defined(UCD3138A64) || defined(UCD3138128) || defined(UCD3138A64A) || defined(UCD3138128A)

    void enable_oversampling(void)

    {

      FeCtrl0Regs.EADCDAC.bit.DAC_DITHER_ON_SAMPLE = 1; //enable dither on sample

      FeCtrl0Regs.EADCDAC.bit.DAC_DITHER_EN = 1; //enable dither on sample

       Dpwm0Regs.DPWMCTRL2.bit.SAMPLE_TRIG1_OVERSAMPLE = 3; //set for maximum oversample

       FeCtrl0Regs.EADCCTRL.bit.SCFE_CLK_DIV_2 = 0; //make it convert in 64 ns.

       FeCtrl0Regs.EADCCTRL.bit.AVG_SPATIAL_EN = 1; //spatial averaging

       FeCtrl0Regs.EADCCTRL.bit.AVG_MODE_SEL = 0; //8X averaging

       FeCtrl0Regs.EADCCTRL.bit.EADC_MODE = 1; //averaging mode

    }

    #endif

    Are you seeing IC reset using TI's EVM or your own hardware? Please advise.

  • Thank you for your reply.

    What is the difference between EADC and ADC?

    I'm seeing IC reset using my hardware. IC reset often occurs when large current .
  • What is the exact part number of the UCD you are using?

    EADC is an Error-ADC, it is very fast but low resolution and normally does not measure the absolute value of voltage and it is not multiplexed. EADC is usually used to close the compensation loop.

    ADC-12 is a standard multiplexed ADC. Higher resolution than EADC, but slower. ADC-12 is mostly used for monitoring and fault detection.

    In order to prevent resetting at high load current you have to follow all the instruction in the following document and have a very careful PCB layout:

    http://www.ti.com/lit/an/slua779b/slua779b.pdf

    Regards,

  • Thank you for your reply

    I use UCD3138RGC.

    Previous question about "We wolud like to not work over_voltage protection, over_ current protection, over_temperture protection and under_voltage protection ."

    I modified code like below. 

    in system definitions.h

    #define IOUT_FAULT         (0) //(adc_values.io_sense > IOUT_OC)

    #define IOUT_NO_FAULT (1)//(adc_values.io_sense < IOUT_NO_OC)

    #define VOUT_FAULT          (0)//(adc_values.vo_sense > VOUT_OV)

    #define VOUT_NO_FAULT (1)//(adc_values.vo_sense < VOUT_NO_OV)

    in init_protection.c

    void init_ocp(void)

    {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;}

    void init_cbc(void)

    {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;}

    void init_ovp(void)

    {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;}

    Can this code stop the ADC?

    I have one more question. 

    Is there a way to interact outside of the TI E2ETM Community? For example, the opertor

    best regards

  • This can not stop ADC.

    You better comment out the calls to init_ocp(), init_cbc(), init_ovp() and not just comment out the {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;}

    If you need direct assistance please be so kind and contact your local TI office.

    Regards,

  • Thank you 

    I try that comment out the calls to init_ocp(), init_cbc(), init_ovp(). But why is this  comment out the {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;}  wrong?

    In case All "FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN" equal 0, can I stop tha ADC?

    best regards

  • In the EVM code commenting out all "FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN" equal 0, should not stop ADC-12.
    Are you referring to ADC-12 or EADC?

    Commenting out the calls to init_ocp(), init_cbc(), init_ovp() will prevent enabling faults also at the DPWM side. Therefore no other source of fault (other than analog comparators) can shutoff the DPWMs.

    Regards,

  • Commenting out the calls to init_ocp(), init_cbc(), init_ovp() also disables the faults at the DPWM side, this ways the DPWMs will not shut-off even is another source of fault triggers.

    Commenting out the {// FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_EN = 1;} should not stop ADC-12.
    Which ADC stops working? The ADC-12 or EADC?

    Regards,
  • Thank you for your reply.

    To begin with, I would like to stop both of them.

    Previous question about ' is there a way to interact outside of the TI E2ETM Community? '

    It was said that Japan TI did not have an engineer for this product.
    So please let me know the address of TI office that supports UCD3138.

    best regards,

  • Please send me your details including email address.
    One of us will contact you.
  • Thank you.
    email address: morioka-kyohei@sinfo-t.jp

    My details will be informed later.

    best regards,
  • An expert will contact you soon.

  • Thank you for your reply.

    The following is my details.

    My email address : morioka-kyohei@sinfo-t.jp

  • Can you communicate with one of you in a conference call ?
  • This conversation moved to an email thread, which seems to have resolved the issues, so I'm going to mark it as resolved