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.

[参考译文] TMS320F280039C:是否可以将 ADC PPB 过零用于正范围值

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1301035/tms320f280039c-is-it-possible-to-use-adc-ppb-zero-crossing-for-positive-range-values

器件型号:TMS320F280039C

大家好!
我尝试通过将 TRIPHI 设置为3V、将 TRIPLOW 设置为1V 来配置 ADC PPB 限制、其中 VREF 为3.3V、我尝试将过零设置为2V、 其中 OFFREF =(2000/3300)* 4096 = 2482 LSB (根据此计算) ADCEVTSTAT 寄存器 PPB1ZERO 被设置为高电平(1)、但即使在通过(ADC_clearPPBEventStatus (MCA_ADCA_BASE、ADC_PPB_number1、ADC_EVT_ZERO)清除寄存器之后、该寄存器也未被清除。 请澄清此概念。

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

    您好 Tejas:

    如果在您写入 ADCEVTCLR 时 ADCEVTSTAT 位没有被清除、有两种可能的原因:

    1. 写入操作发生在硬件尝试设置它的同一周期(用于新事件)。 硬件具有优先级。
    2. 该位实际上会被清除、但新的 ADC 转换导致它再次被设置、然后您才能读取它。

    如果您是在 ISR 代码内运行此代码(并且您的 PWM 触发周期足够长、足以容纳 ISR 处理)、那么 应该不会出现问题。 更可能的原因是您尝试从调试器中读取此值、而 PWM/ADC 的后台操作会阻止您观察到寄存器被清除。

    此致、
    伊袋