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.

TMS320F280041: TMS320F28004x - Opens/Shorts Detection Circuit (OSDETECT)

Part Number: TMS320F280041


Tool/software:

Hello,

After testing the example code "adc_ex15_open_shorts_detection.c", I would like to know more details about the following topics:


OP_01: osDetectStatusVal can be ADC_OSDETECT_STATUS_UNDETERMINED (value 16) at the end of the test, which can be considered wrongly as good/ valid state.


" Due to high drive impedance, a S+H duration much longer than the ADC minimum will be needed."

OP_02: Is this the reason why a sample window of 640ns was chosen? I would like to know more details regarding "high drive impedance" and "ADC minimum"? 


OP_03: I would like to know why "open/shorts detection" action is performed 7 times.

OP_04: I would like to know why ADC_CLK_DIV_4_0 was chosen.
OP_05: I would like to know why ADC_PULSE_END_OF_CONV was chosen.

ADC_enableConverter(adcBase);
DEVICE_DELAY_US(1000);
OP_06: I would like to know why additional delay is necessary, since the previous function call introduces at least a 500us delay before sampling:

In addition, we need to understand why we have different results on different channels. Shall we test all the channels, or is enough to test one (or a limited number)?

 

Channel

Status test 1

Status test 2

[0]   

0

8

[1]   

0

8

[2]   

8

8

[3]   

0

8

[4]   

8

8

[5]   

0

8

[6]   

0

0

[7]   

0

0

[8]   

8

8

[9]   

8

8

[10]  

0

8

[11]  

2

2

[12]  

2

2

[13]  

2

2

[14]  

2

2

[15]  

2

2

  

Note:

Status == 1, means pin is OPEN

Status == 2, means pin is shorted to VREFLO

Status == 4, means pin is shorted to VREFHI

Status == 8, means pin is in GOOD/VALID state

Status == 0, means pin with ADC_OSDETECT_STATUS_UNDETERMINED - here I have used 0 instead of 16

  • Hi,

    I apologize for the delay, but I will have to get back to you in a day or two.

    Best Regards,

    Ben Collier

  • Hi,

    I apologize for the delay.

    ADC_enableConverter(adcBase);
    DEVICE_DELAY_US(1000);
    OP_06: I would like to know why additional delay is necessary, since the previous function call introduces at least a 500us delay before sampling:

    This delay is probably not necessary, it is just trying to allow time for the ADC input to settle, even in the worst case. 

    In addition, we need to understand why we have different results on different channels. Shall we test all the channels, or is enough to test one (or a limited number)?

    I think it is good to test every channel. This circuit is meant to check every channel for an unexpected open or short. 

    Best Regards,

    Ben Collier