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.

[参考译文] TMS320F28379D:有关使用 ADC 校准偏移的问题

Guru**** 2558250 points
Other Parts Discussed in Thread: C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1276597/tms320f28379d-question-on-using-adc-calibration-offset

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

根据上图、我在 OffCal 寄存器中设置了'6b'。  ADCRESULT0将"6B"显示为 ADC 测量的原始值。  PPB1结果也显示为"6B"。  在本例中、我的预期是 PPB1结果为零。

我缺少什么?

设置过程很简单

  ADC_setupSOC (ADCB_BASE、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM6_SOCA、ADC_CH_ADCIN5、15);  

  ADC_setupPPB (ADCB_BASE、ADC_PPB_number1、ADC_SOC_NUMBER0);

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否看一下 C2000WARE 的 adc_EX7_ppb_offset 示例?  

    此致、

    本·科利尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ben:   

    我确实查看了偏移示例。  我没有看到任何不同的行为。  我在 ADCBBP1OFFCAL 中设置了一个值、我在 ADCPPB1RESULT 中看到的结果显示了原始结果、而不减去偏移:

    我仅在原来的帖子中发布了与 PPB/SOC 相关的配置、但更详细的设置如下所示:

      ADC_setPrescaler (ADCB_BASE、ADC_CLK_DIV_4_0);

      ADC_setInterruptPulseMode (ADCB_BASE、ADC_PULSE_END_OF_CONV);

      ADC_setSOCPriPriority (ADCB_BASE、ADC_PRI_ALL_HIPRI);

      ADC_enableConverter (ADCB_BASE);

      SYSCTL_DELAY (1500U);

      ADC_setupSOC (ADCB_BASE、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM6_SOCA、ADC_CH_ADCIN5、15);  

      ADC_setupPPB (ADCB_BASE、ADC_PPB_number1、ADC_SOC_NUMBER0);

      ADC_setPPBCalibrationOffset (ADCB_BASE、ADC_PPB_number1、0x6C); // 0x6C 作为示例

    ADC_setInterruptSource (ADCB_BASE、ADC_INT_NUMBER1、ADC_SOC_NUMBER0);
    ADC_enableInterrupt (ADCB_BASE、ADC_INT_NUMBER1);

    在 ADCB ISR 中:

      测量= ADC_readPPBResult (ADCBRESULT_base、ADC_PPB_number1);

      ADC_clearInterruptStatus (ADCB_BASE、ADC_INT_number1);

    if (true=ADC_getInterruptOverflowStatus (ADCB_BASE、ADC_INT_number1))
    {
    ADC_clearInterruptOverflowStatus (ADCB_BASE、ADC_INT_number1);
    ADC_clearInterruptStatus (ADCB_BASE、ADC_INT_number1);

      INTERRUPT_clearACKGROUP (INTERRUPT_ACK_GROUP1);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、请参阅 TRM 的第11.10.1节中的以下注释:

    我已尝试使用 SOC1、应用程序按预期运行。