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.

[参考译文] TMS320F28335:使用 ADC 进行多电压感应的问题

Guru**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/686612/tms320f28335-issue-with-multiple-voltages-sensing-using-adc

器件型号:TMS320F28335

尊敬的团队:

我正在测量提供给 ADC 的经滤波的平均直流电压(浮点值)。 我正在向4个 ADC (A0、B0、A1、B1)发送4个电压。 当我开始时、所有值应该相同、并且我 得到的值相同。 但是、当我开始更改一个特定的电压时、相应的 ADC 计数应该会发生变化、但与之一起、ADC 引脚旁边的引脚也会缓慢变化。 我不知道其他 ADC 读数为何会受到一个 ADC 引脚输入变化的影响。

假设我改变 A0输入、A1缓慢漂移、与 B0和 B1相同。 但不介于 A0和 B0或 A1和 B1之间。 您能告诉我原因是什么吗? 我随附了与 ADC 相关的部分代码、如果有任何问题、请告知我。

谢谢、

void main (void)

.

AdcRegs.ADCTRL1.All = 0;
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x7;// ADC 模块周期中的 S/H 宽度= 8个 ADC 时钟
AdcRegs.ADCTRL1.bit.CONT_RUN = 1;//设置连续运行
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0x1;//级联模式

AdcRegs.ADCTRL3.bit.ADCCLKPS= 0x1;// ADCCLK (FCLK)=HSPCLK/(2*ADCCLKPS)=25.0MHz/(1*2)=12.5MHz 对于 ADCCLKPS=1
AdcRegs.ADCTRL3.bit.SMODE_SEL = 0x1;//同时采样模式

AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;//A0和 B0
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1;//A1和 B1

AdcRegs.ADCMAXCONV.ALL = 0x0001;//用于4个 ADC 输入

三、会议的报告
for (;;)

asm (" NOP");


中断空 CPU_timer0_ISR (空)

三、会议的结果

AdcRegs.ADCTRL2.all = 0x2000;

while (AdcRegs.ADCST.bit.INT_SEQ1=0){}
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

temp = AdcRegs.ADCRESULT0 >>4;
V1 =温度;

temp = AdcRegs.ADCRESULT1 >>4;
V2 =温度;

temp = AdcRegs.ADCRESULT2 >>4;
V3 =温度;

temp = AdcRegs.ADCRESULT3 >>4;
v4 =温度;

三、会议的报告

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

    提高 ACQ_PS 是否有帮助? 共享同一采样保持电容器的通道之间可能存在串扰。

    以下是一些类似的主题:
    e2e.ti.com/.../647338
    e2e.ti.com/.../542665

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

    尊敬的 Tommy:

    我尝试更改 ACQ_ps、但它没有帮助。 实际上、在3.3V 至0V 变化的方波信号之后、我将放置低通滤波器以获取平均直流值并将其提供给 ADC。

    低通滤波器值为 c=150pf、R=565k。 这是否与相位值有任何问题、那么解决方案是什么?

    2.我能否直接向 ADC 提供3.3V 方波信号、以便低通滤波器不会产生影响、并且我可以在 DSP 中实现数字低通滤波器。 或者、您能告诉我在3.3V 至0V 向 ADC 引脚传输的变化方波信号之间可以使用什么接口、这样它就不会受到影响吗?

    谢谢、

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

    [引用 USER="Siva Swami]1. 低通滤波器值为 c=150pf、R=565k。 该问题是否与相位值有关、那么解决方案是什么?[/引述]

    输入 R 非常大、会降低内部 ADC S/H 电容器的充电速度。  我怀疑您甚至可以使用示波器在 ADC 输入引脚上看到失真。  您可以通过使用较小的 R 和较大的 C (同时保持所需的 RC)来解决此问题、以便外部滤波电容器能够通过电荷共享为内部 ADC S/H 电容器快速充电。  我之前发布的第二个链接对此进行了大量讨论。

    [引用 user="Siva Swami"]2. 我能否直接向 ADC 提供3.3V 方波信号、以便低通滤波器不会出现问题、并且我可以在 DSP 中实现数字低通滤波器。 或者、您能否告诉我、在3.3V 至0V 向 ADC 引脚传输不同的方波信号之间可以完成什么接口、这样它就不会受到影响?

    F28335 ADC 的满量程范围为0至3V。  您可以直接将方波传递到 ADC 输入、但任何高于3V 的分辨率都将丢失。  数字方波表示的精度也将受到信号频率的影响。

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

    正如您提到的、我的问题是电阻值低、电容值大、但延迟增加。

    2.正如您提到的,我可以为 ADC 提供3.3V 方波,但分辨率会变小。 我想说的是、我想比较所有值我不想精确的值、但我想比较10个方波值。 因此、如果这种情况仅是我想要比较值的情况、我是否应该担心分辨率?

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

    Siva、

    您的应用似乎不接受相位滞后?

    如果您的输入是真正的数字方波、那么在超过3V 的分辨率下丢失是否真的很重要?  信号不是逻辑高电平还是逻辑低电平?

    我在 这里看到另一个讨论、也许是针对同一个项目。  我认为 eCAP 将是一个很好的数字选项

    否则、您也可以使用 ePWM 或计时器中断、使用 GPIO 对信号进行采样。

    Tommy

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

    自上次更新以来、已经过了大约两周。 我假设您能够解决您的问题。 如果情况并非如此,请拒绝此解决方案并回复此主题。 如果此主题已锁定、请制作一个描述问题当前状态的新主题。

    Tommy