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.

[参考译文] CCS/ADS1232:测量来自ADS1232的数据时出现问题

Guru**** 1131400 points
Other Parts Discussed in Thread: MSP430G2533, ADS1232, ADS1232REF
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/660399/ccs-ads1232-problem-in-measuring-data-from-ads1232

部件号:

工具/软件:Code Composer Studio

您好,

我有一个自定义板,带有与负载单元关联的ads1232,从ADS1232输出的数字值由MSP430G2533测量。现在我尝试使用MSP430提供的不同时钟来观察ADS1232中的数据

1. 有没有关于SCLK的建议(我在SCLK引脚中对一位数据使用1ms到10ms时钟,如果缩短时钟周期,我可以检测到小的变化,但不能获得常量值(167.7215万,16438215等1643.8215万等)。同样,也没有常量偏移值)

我们从 ads1232 (不施加重量)正常获得的偏移值是多少?

3.设计是否需要 XTAL2引脚的外部晶体连接?

4.如果数据准备就绪,我开始读取数据,数据是否进入时钟的上升沿?当我向SCLK引脚提供另一个高下限时,第二位数据是否接收(在SCLK的上升沿是否可用)?

5.我只为SCLK引脚提供了25个时钟,根据数据表,我们预期数据引脚必须高,但在这里我没有得到这种原因?,如何从ads1232读取连续数据(请解释)?

6.两组24位数据之间的必要延迟是多少?(有任何最小值还是最大值)。

7.是否有从ads1232获取数据的示例代码?

阿朱

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

    您好,Aju:

    请参阅下面的我的回答。

    此致,

    Bob B

    [报价用户="Aju s"]

    部件号: ADS1232

    工具/软件:Code Composer Studio

    您好,

    我有一个自定义板, 带有与 负载单元关联的ads1232, 从ADS1232输出的数字值MSP430G2533测量。现在我尝试使用 MSP430提供的不同时钟来观察ADS1232中的数据

    1. 有没有关于SCLK的建议(我在SCLK引脚中对一位数据使用1ms到10ms时钟,如果缩短时钟周期,我可以检测到小的变化,但不能获得常量值(167.7215万,16438215等1643.8215万等)。同样,也没有常量偏移值) [Bob B]注意ADS1232数据表第19页上的图34,该图显示了ADS1232的计时信息。  T3时间显示SCLK的最低上限或下限时间,必须至少为100ns,或在整个期间为200ns。 SCLK的最大频率为5MHz。 显然,SCLK可以是较低的频率,但SCLK频率必须足够快,以便在每个转换期间收集所有24位的数据。  SCLK频率也必须足够快,以便控制环路内的任何其他过程也可以发生。  如果时钟为1毫秒或10毫秒,则无法在 一个转换周期内收集所有24位的数据(10sps为100毫秒周期,80sps为12.5毫秒)。  我 不知道MSP430的工作频率,但如果您的目标是适合您的1至2 MHz SCLK频率。

    此外,您还提到数据不是常量值。  遗憾的是,由于噪声和量化错误,您永远不会看到有效输入电压的恒定输出。  请参阅ADS1232数据表第5页上的噪声表。  尽管ADS1232能够解析为24位级别,但噪声将阻止您看到此分辨率的无噪声。

    我们从 ads1232 ( 不施加重量)正常获得的偏移值是多少? [Bob B]偏移在ADS1232数据表第3页的电气特性表中给出。  不同部件的偏移量可能会有很大差异,因此建议使用26 SCLK启动的偏移校准。  如果将称重传感器连接到输入端,称重传感器也会出现偏移错误,也应考虑这一点。

    3.设计是否需要 XTAL2引脚的外部晶体连接? [Bob B] XTAL2引脚仅在使用外部晶体时使用。 通常,内部时钟振荡器与ADS1232一起使用,ADS1232是通过将XTAL1引脚连接到接地来实现的。  也可以使用外部时钟 并将其应用到XTAL1引脚。  在这两种情况下,XTAL2引脚都可以保持浮动状态。

    4.如果数据准备就绪,我开始读取数据,数据是否进入时钟的上升沿?当我向SCLK引脚提供另一个高下限时,第二位数据是否接收(在SCLK的上升沿是否可用)? [Bob B]我再次提到图34。  SPI操作模式为模式1,其中SCLK通常驻留为低,数据在SCLK的上升沿上更改(移出),并在 SCLK的下降沿上锁定(有效)。  数据以串行方式传输,MSB首先将每个时钟转换出一位数据。  需要24个SCLK才能捕获所有数据。

    5.我只为SCLK引脚提供了25个时钟,根据数据表,我们预期数据引脚必须高,但在这里我没有得到这种原因?,如何从 ads1232读取连续数据(请解释)? [Bob B] ADS1232数据表中的图35显示了第25个时钟的动作。  数据的LSB可以是高或低。  转换周期结束时的信号是DRDY\DOUT引脚上的从高到低的转换,DRDY\DOUT引脚是要放入输出移位寄存器的数据的更新周期。  这段时间大约为39 us,在轮询循环中很难捕获。  可以使用中断,但通常只使用pin的轮询。  假设您使用的是轮询方法,该方法通常定期查找DRDY\DOUT上的下限。   如果只使用24个SCLK读取数据,则最后一个位可以是高或低。   如果最后一位为高,则不会出现问题,但如果最后一位已为低,则可能 会完全错过新结果,或者捕获无效数据并开始偏移校准。  因此,最好始终强制DRDY\DOUT引脚高电平,然后轮询为低电平状态。

    6.两组24位数据之间的必要延迟是多少?(有任何最小值还是最大值)。 [Bob B]这与问题1中的答案有些关系。  根据速度引脚的状态(10sps或80sps),新数据可用。  只有在有新数据可用后,才应尝试读取数据,并且应确保在ADS1232使用 新结果更新输出移位寄存器之前,已完全读取所有数据。

    7.是否有从 ads1232获取数据的示例代码[Bob B]有一些ADS1232REF示例代码,可从我们的FTP站点下载。  此代码使用FreeRTOS,不使用单 个简单的过程循环,因此很难遵循。  代码也使用了许多可能有点难以理解的宏。  特别是,您可能会发现ADS1232.c和.h最有用。

    ftp://ftp.ti.com/pub/data_acquisition/ADS123xREF/ADS123x_CDROM/Firmware/Firmware_Source_Code/Source_for_123XREF_firmware-1.1.0d.zip

    阿朱

    [/引述]

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

    感谢您的大力支持和宝贵信息。

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

    Bob,您好!  
    在空载条件下,我们获得的值是多少?是最小值还是最大值?

    每次都从ads1232获得一个24位的值,当没有施加负载时,但前12位相同,但接下来的12位每次都完全改变了为什么?(我只提供时钟并通过DSO探测数据)

    3.当我施加载荷时,也会有相同的变化(当我们施加重量时,数值会下降,当我们释放时,数值会超过无载荷条件值,为什么会发生这种情况??

    阿朱

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

    您好,Aju:

    下面是我的回答。

    此致,

    Bob B

    [报价用户="Aju s"]

    Bob,您好!  
    在空载条件下,我们获得的值是多少?是最小值还是最大值? [Bob B]我假设,当您说没有负载时,您指的是由ADS1232供电并连接的负载传感器上的无负载。  称重传感器基本上是一个Wheatstone桥接器,没有负载 时将处于平衡状态。  桥在平衡状态下的输出为0V,中间激励电源处有共模电压。  但是,可能存在一些可以是负数或正数的偏移。  ADS1232以二进制2的补码形式输出代码,其中正值范围为0 (0x0万)到正满刻度(0x7FFFFFF),负值范围为-1 (0xFFFFFF)到负满刻度(0x80万)。

    每次都从 ads1232获得一个24位的值 ,当没有施加负载时,但前12位相同,但接下来的12位每次都完全改变了为什么?(我只提供时钟并通过DSO探测数据) [Bob B]我在第一个回复中谈到了这个问题。  这是噪音。  噪声表在数据表中给出。  您还可能会遇到来自EMI/RFI源的外部噪音。  底线是,尽管ADS1232可以解析为24位,但并不意味着输出将为24位无噪声。

    3.当我施加载荷时,也会有相同的变化(当我们施加重量时,数值会下降,当我们释放时,数值会超过无载荷条件值,为什么会发生这种情况?? [Bob B]如果没有更具体的信息,很难回答类似的问题。  您是否有显示数据的屏幕截图?  称重传感器的容量是多少?  称重传感器的灵敏度是多少?  您的期望是什么? 作为数据值,您会得到什么?
     
    阿朱

    [/引述]

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

    Bob,您好!

    感谢您提供宝贵的信息。在此,我发布了在无载荷条件下获得的数据。称重传感器的容量为0-25磅力。(FX1901)

    阿朱

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

    您不是将值从24位扩展到32位已签名值。 例如,1677.7215万实际上是0xFFFFFF24位值,但由于它是二进制2的补码,因此您必须对该值进行符号扩展,以便将其设置为0xFFFFFFFF,而不是将32位带符号整数设置为0x00FFFFFFFF。 如果位23是'1',那么您必须将最重要的8位也设为'1'。

    此致,
    Bob B