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.

[参考译文] UCD3138A:UCD3138A、并在 ADC12中启动连续转换

Guru**** 2553260 points
Other Parts Discussed in Thread: UCD3138A

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/870268/ucd3138a-ucd3138a-and-start-of-continuous-conversions-in-adc12

器件型号:UCD3138A

尊敬的 TI:

在基于 UCD3138A 的设计中、我们使用 ADC12的通道0、1和4来测量输入电压、输出电压和电流。 ADC12配置为由 DPWM0 EVENT1触发。 我观察到我不理解的奇怪行为。 请能帮我了解情况吗?

加电后、我的固件会初始化 UCD3138A 块。 具体而言、它会初始化 ADC12和 DPWM0、但会使 DPWM0保持禁用状态。
然后、固件等待启用 DPWM0的命令。 DPWM0启用后、ADC12会按预期执行转换。
然后、固件会侦听禁用 DPWM0的命令。 我不理解的是、在禁用 DPWM0 ADC12后、仍然会继续执行转换。

初始化后、寄存器中(我认为)的重要值为:

ADCCTRL: 0x0010C721
DPWMCTRL0:0x00000002
DPWMCTRL1:0x00018400
DPWMCTRL2:0x00000005

在启用 DPWM0的命令之后、固件更改如下:

DPWMCTRL1:0x00018000
DWPMCTRL0:0x00000003

在禁用 DPWM0寄存器的命令之后、DPWMCTRL1和 DWPMCTRL0会恢复为初始值。

我的问题是、我需要在初始化后读取这些值、但由于我不了解正在发生什么、我不确定什么是正确的解决方案。 请告诉我是否遗漏了某个东西、做了一些错误的事情、或者它是否就是这样工作的。

此致、
Adam

DPWMCTRL1:0x00018000
DWPMCTRL0:0x00000003

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

    我想您需要在 ADCCTRL 中设置位3。  它是单扫描位。  如果您未设置该参数、则在触发后、ADC 将连续运行。  如果您设置位3、则它将执行单次扫描并停止。   

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

    由于您拒绝了我的回答、但未提供任何更多信息、我将尝试猜测并提出一个问题:

    如果您在启动 DPWM0之前询问如何运行 ADC、这应该很简单-只需设置 ADCCTRL 寄存器中的 SW_START 位即可。  根据单次扫描位的状态、您将获得单次扫描或连续重复扫描。

    2.问题是-您是否尝试设置位3?

    我们通常不使用 DPWM 来触发 ADC、因为与典型的开关速度相比、ADC 速度不是特别快。  前端上的 EADC 速度快、并且具有非常精确的可调时序。   

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

    尊敬的 Ian:

    是的、您是对的、很抱歉过早拒绝了答案。 我在您的回答中误解了部分"它将执行单次扫描并停止"。 在您建议的设置中、ADC 将停止、但下次触发信号激活时将启动新的转换、这将重复。 这种工作模式非常不寻常、但看起来非常方便。

    在本例中、我不使用 ADC 来调节电压(此处使用 EADC)、而是用于监控运行条件。 ADC 应该可以满足这一要求。

    此致、
    Adam