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.

[参考译文] TMS320F28377S:使用差动模式 ADA#39s 与 DriverLib 时出现问题

Guru**** 2439710 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1071021/tms320f28377s-problem-using-differential-mode-adc-s-with-driverlib

部件号:TMS320F28377S

我正在使用28377s Delfino 启动一个新项目,我们设计该项目的目的是利用差动模式 ADC (16位)。 模拟前端经过测试,以所需规格显示 IN+和 IN-信号与正确引脚的差分,共模范围为。

我面临的问题是,当使用 DriverLib 函数读取 ADC 值时,DriverLib 提供了 ADC_readResult (ADCDRESULT_BASE,ADC_SOC_NUMBER0)函数返回 uint16_t 号。 对于差分模式信号,我们应该接收一个带符号的整数,并简单地传递结果,因为 Int16_t 无法修复此问题。 如果我们确实将其转换为 Int16-T 并读取一些操作点的数据(包括模拟前端的增益),我们将获得以下关系:-

有一些噪音等,但线性关系是关于正确的增益。 问题在于,当差分输入为零时,ADC 本机报告的值约为-32767,这是错误的。 DriverLib 中是否有另一个函数允许我以本机 Int16_t 的形式读取差分 ADC 输出?

谢谢,

伊恩

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

    你好,Lain,

    如果您查看 TRM 中“预期转换结果”和“解释转换结果”的部分,您将看到差分 ADC 输出的范围是0到65535,其中 Vin+= Vin-= Vincm (零差动电压)对应32768,因此本机格式为无符号16位。   

    如果您希望零差分电压与“0”输出对应,则可以从结果中减去32768 (小心先转换为32位带符号整数)。  或者,您可以使用“OFFREF”字段在后处理块(PPB)中自动进行此计算。  我认为返回 PPB 结果的驱动程序应该是32位签名。   

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

    太棒了,谢谢德文,这一点现在很有意义了。 我将使用 PPB 添加此偏移量。  
    非常感谢您花时间做出回应-非常感谢。

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

    当然,没问题!  如果您有其他问题或在准备过程中遇到我们可以帮助的问题,请随时发布新帖子。