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.

[参考译文] ADS131M08EVM:ADS131M08EVM通道的偏移计算

Guru**** 2810855 points

Other Parts Discussed in Thread: ADS131M08EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1089861/ads131m08evm-offset-calculation-of-ads131m08evm-channels

部件号:ADS131M08EVM

您好,

I´m在我的应用中使用带有MCU STM32的ADS131M08EVM。 SPI通信已正确进行,
n´t由于通道校准不足,读数不精确。
我想知道,我必须使用哪个方程来计算通道的偏移量?
CHN_CFG的哪个设置用于计算偏移量?
在下图中,可以知道软件计算的偏移量?

此致

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

    您好Rafael:

    测量偏移, "我想知道,我必须使用哪个方程来计算通道的偏移?"和"在下图中,可以知道软件计算的偏移?"

    首先,我们需要确保设备处于输出偏移的配置中。 由于您在通道0上,我建议将MUX0[1:0]=0b01更改为内部短接输入。 您还可以在没有连接输入的情况下覆盖JP1的引脚1-2和5-6,以便从外部接地输入,但这是一个可选步骤。 这将确保ADC检测到的来自PGA的输出是PGA的偏移。 更多信息可在以下网址找到: https://training.ti.com/ti-precision-labs-op-amps-vos-and-ib-specifications 

    假设您已经为这张图片执行了此操作,我可以说您的偏移量相当于平均值或1928.18 代码。  方程式应为AVERAGE = sum_of_Codes/n_samples。 这是因为偏移是直流,如果我们将所有数据都计算出平均值,我们可以提出这样的论点:“直线,水平线”可以代表偏移,即直流信号。 如果您不知道公式,请告诉我,但是,我假设您可以将代码转换为电压,并查看数据表以确保它在输入参考偏移误差(+/-32uV)的范围内。

    改进偏移测量并开发您自己的:

    不过,我有一些意见。  您的图是一小幅波浪,如果您在频谱分析选项卡上进行转换,我确信您会看到其他一些频率内容。 您的数据速率为32kSPS。 您不需要~32kHz BW来测量直流信号,我会增加您的OSR,因此我们缩小BW和SPS ,以消除影响测量的更高频率噪声(即平均值)。 另外,你在这里采集了4096个样本,如果你采集更多的样本,你的平均值就会更准确。

    现在,对于一个真正的系统,我看到了为校准而采集的超大样本数据,我只看到 了5个样本来确定偏移量。 有些人不能为校准切换OSR,有些人可以。 这完全取决于您的实际使用案例以及您想要的精确度。 如果您获得了非常准确的信道值,您可以将实际偏移值与您实际开发的任何方法进行比较。  

    "CHN_CFG的哪个设置用于计算偏移量?" 和直流块

    我已经谈到过MUX,阶段不相关,因此DCBLKn_DIS就不存在了。 理论上,DCBLK是数字领域中的高通滤波器,可以消除偏移,您无需进行校准,请单击下图以了解更多详细信息:

     

    权衡是信号的延迟,沉降和衰减。  表8-4.显示了高通滤波器的角频率和许多其他有用的参数,具体取决于DCBLOCK值。 有些用户选择启用过滤器,有些用户则在过程或MCU上启用偏移校准,因为这种权衡是不值得的。

    希望这会有所帮助。

    最佳,

    -Cole

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

    您好,非常感谢您提供有关校准过程的信息,这非常有帮助。 我对数据的大小和响应框架的索引存有疑虑,因为我将在调整步骤之前回答几个问题。

    为´m我的SPI通信正常,我将列出ADS主寄存器的读数值,您可以在下面看到我的代码的日志消息。

    使用Uart4进行调试!

    时钟寄存器默认值= FFFF
    设置时钟寄存器。
    时钟寄存器= FF02
    读取芯片ID寄存器= 2801
    模式寄存器= 0510
    状态寄存器= 05FF

    在数据表的“Item SPI.SPI 1.8 8.5 通信字”中,您可以看到:

    "命令,响应,CRC和寄存器始终包含16位的实际数据。 这些单词始终是最重要的位(MSB)对齐,因此最不重要的位(LSB)是零填充的,以容纳24或32位的单词大小。"

    响应帧的格式如下:

    |回复| Ch0Data | Ch1Data | Ch2Data | Ch3Data | Ch4Data | Ch5Data | Ch6Data | Ch7Data |

    为了更好地理解响应数据帧格式,我进行了以下配置:

    模式= 0x0610 - WLENGTH[1:0]= 10b "32 bits: LSB zero padding"(32位:LSB零填充)

    然后我声明了我的接收缓冲区如下所示:

    UINT8_t adsRawBuffer[34];(响应=2字节+(8通道*4字节))。

    但是在一读之后,我不得不将缓冲区的大小增加到36,并且使用LSB零填充作为指南,我得出了以下结果:

    06FF-0000-FFEC9F00-FFC64700-FFF24500-FFCF5900-0020E700-000DD000-000A7900-FFFAD900</s>6.47万 2.45万590000207900

    响应帧的前16位是否正确?

    帧上接下来的16位"0000"是什么?

    我是否可以假定通道0的值从adsRawBuffer[4]开始,并在adsRawBuffer[7]结束,包括零填充?

    对于模式= 0x0510 - WLENGTH[1:0]= 01B "24位(默认)"

    我声明我的接收缓冲区如下所示:

    UINT8_t adsRawBuffer[28];(响应=4字节+(8通道*3字节))。

    我的读数是:

    05FF-00FF-F0BFFF-C16AFF-F3E1FF-C9.54万-277F00-0E7900-0B57FF-F93D77</s>7900

    现在考虑16位"00FF"的未知值作为帧的一部分。

    我可以假定通道0的值从adsRawBuffer[4]开始,到adsRawBuffer[6]结束吗?

    通道0的内容是否由adsRawBuffer[4]= MSB,adsRawBuffer[5]= Middle和adsRawBuffer[6] LSB组织?

    我还可以假定通道1的值从adsRawBuffer[7]开始,到adsRawBuffer[9]结束吗?

    此致

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

    您好Rafael:  

    我很难遵循逻辑,但我假设您最感兴趣的是SPI帧格式,因为您已更改为不同的格式(32位零填充和24位),您获得了一个您没想到的值。

    通常,每个"单词"都是24或32位,图片显示有9个单词(或CRC有10个单词)。  这9个词代表:

    Frame = | Response | Ch0Data | Ch1Data | Ch2Data | Ch3Data | Ch4Data | Ch5Data | Ch6Data | Ch7Data |

    因此,mode = 0x0610,或选择的帧长度为32,应为帧= 4字节响应+(8通道* 4字节)  

    对于其他模式设置,32位将变为24位(或3字节)。  收集完该帧后, 您将对该帧进行后期处理,方法是在每个通道数据之后切断最后一个字节(剩余3个字节),并切断响应的最后2个字节。

    总之,您似乎没有格式化或考虑足够的位来获取整个框架。 我会重新计算您的缓冲区大小,然后重试。

    此外 ,我们还有ADS131M0x系列示例代码。 以下是有关链接的常见问题解答: https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/81.1864万/faq-ads131m04-ads131m04-example-code 

    最佳,

    -Cole

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

    您好,Cole:

    感谢您的快速回答,非常有帮助。

    现在,我和我的同事将根据第一个答案实施校准。

    ´ll有什么疑问,我会告诉你,我什么时候会成功。

    此致

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

    拉斐尔听起来不错! 让我保持在循环中。

    谢谢!

    -Cole