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.

[参考译文] TMS320F2.8375万S:16位ADC

Guru**** 2524460 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1098252/tms320f28375s-16-bit-adc

部件号:TMS320F2.8375万S

您好,

在我们的项目中,我们希望从12位ADC切换到16位ADC。 但是,我在从ADCRESULT获取16位值时遇到了一些问题。

在软件中,我发现变化发生在2个函数调用中:

 - ADC_setMode()需要将参数从ADC_Resolution 12位更改为*_16BIT,并将ADC_MODE_SINGLE_END_ENDLED更改为ADC_MODE_DIFFERENTIAL。

 ADC_setupSOC()需要更改采集周期,且通道已从ADC_CH_ADCIN0“更改”到ADC_CH_ADCIN0_ADCIN1。

在硬件中,更改包括连接:

ADCIN0至信号0-3V

ADCIN1至信号1.5V静态

VSSA至GND

VREFLE至GND

VREFHI至3.00V (参考)

在ADCRESULT0中,我仍在读取我们以前12位设置的典型值(在空闲时,值大约为2048,这意味着我仍在读取12位结果)。 我认为我的软件设置出现问题,而不是硬件连接出现问题(我的预期值约为3.2768万)。

我检查了上面提到的两个函数所接触的寄存器值,ADCCTL2.SIGNALMODE确实已更改为1,“解决方案”字段也已更改为1。 ADCSOC0CTL中的CHSEL为ADCIN0_ADCIN1正确设置为0。

我知道根据我的描述很难判断出什么可能是错误的,但您是否知道我可以进行一些测试来验证AD转换输出的比特率是否正确?

谢谢你

Jiri

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

    Jiri

    您是否可以将ADCINA0也固定为1.5V,并查看您是否获得中间代码3.2768万输出?  对于DE模式,您将无法始终将ADCINA1固定为1.5V,它需要在与ADCINA0等距的公共模式上移动,以获得所需的16位代码。

    我认为寄存器设置是正确的,只有setMODE和setSOC功能才会如您所述发生变化。

    最佳,

    Matthew

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

    Matthew,您好!

    感谢您的快速回答。 我尝试了您建议的操作并得到了类似的结果,所以我有点怀疑,在LaunchPad上尝试了我的软件,结果与预期一致(在空闲和连接到噪声发生器时)。 我猜毕竟是硬件问题。

    谢谢!

    Jiri

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

    Jiri

    我想澄清一点,我在最初的帖子中没有意识到这一点,但F2.8375万类器件没有启用16位ADC。  下图来自DS,由于LaunchPad是F2.8379万D,它包含16位ADC。  因此,即使您写入寄存器位以启用16位模式,也不会发生任何事情,它将保持在12位模式。

    从功能POV与价格来看,F2.8377万S器件具有16位ADC,但并不具备您可能不需要的F2.8379万的某些其他功能。

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

    啊,我明白了,非常感谢马修。 您帮我们省了很多麻烦x)

    我需要把这个桌子放在方便的地方,这不是第一次它解决问题。

    谢谢!