Tool/software: Code Composer Studio
We would like to mask software protecion when conducting Highly accelerated life test.
We downloaded the code of this URL(www.ti.com/tool/ucd3138fw-psfb)to UCD3138.
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.
Tool/software: Code Composer Studio
We would like to mask software protecion when conducting Highly accelerated life test.
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,
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.
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,
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? '
best regards,