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.

[参考译文] ADS1232REF:Refboard 上的 SCLK 为低电平? 如何使用 STM32读取 DATAOUT 引脚

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/738923/ads1232ref-sclk-low-on-refboard-how-to-read-dataout-pin-with-stm32

器件型号:ADS1232REF
主题中讨论的其他器件: ADS1232MSP430F449ADS1234

大家好、我有关于 ADS1232REF 板的问题。

我尝试通过位移将 DOUT 读取到尽可能简单的 STM32 uController 中。
1个引脚用作时钟的数字输入、1个引脚用作数字输出。


在 ads1232.pdf ->"data retrieving"部分是一个示例。

但在 ADS1232REF 板上、O 引脚("SCLK"或"EXTCLK")为低电平。
那么、我可以在哪里读取时钟呢?
我的问题是"MSP430F449 uController"如何在没有 SCLK 的情况下从 ADS1232读取数据?

此致
易卜拉欣

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

    欢迎来到 E2E 论坛! ADS1232通信遵循模式1 SPI、其中 SCLK 空闲(非时钟)并在 SCLK 的上升沿移位数据、在下降沿读取数据。 如何将信号连接到 ADS1232REF 尚不清楚、但无法将两个时钟连接在一起、因为输出驱动器将争用。

    要回答您的特定问题、MSP430必须在 ADS1232REF 上提供 SCLK、否则无法从 ADS1232读取数据。 它将在转换读数之间空闲低电平。 如果您将示波器或逻辑分析仪连接到 ADS1232REF 上用于 SCLK 和 DOUT 的测试点位置、您将能够监控通信。

    如果要将自己的控制器连接到 ADS1232REF、则需要断开或切断 MSP430和 SCLK 测试点之间 SCLK 的布线、然后在 SCLK 测试点提供您自己的 SCLK (或 SCLK 的 GPIO 输出)。 DOUT 测试点可连接到微型输入引脚。 您还需要将微控制器的接地端连接到 ADS1232REF 上的接地点。

    我建议您首先监控 SCLK 和 DOUT 测试点、以了解使用示波器或逻辑分析仪进行通信的情况。 然后进行修改、并验证您的通信是否以相同的方式工作。

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

    这是一个快速响应。 谢谢 Bob。
     真的很感谢:)

    好的、我还有一个单独的 ADS1232、但这将像您所说的那样在稍后出现、我已经为我的一些问题找到了一个主题:
    [CCS/ADS1232:测量 ADS1232中的数据时出现问题]
    https://e2e.ti.com/support/data-converters/f/73/t/660399#

    但是的、我仍然坚持用示波器监控或测试 SCLK 测试点。 我不知道为什么它这么低。
    正如您所说的、MSP430必须提供 SCLK、可能我缺少了一些东西。  

    如果要将自己的控制器连接到 ADS1232REF、则需要断开或切断 MSP430和 SCLK 测试点之间 SCLK 的布线、然后在 SCLK 测试点提供您自己的 SCLK (或 SCLK 的 GPIO 输出)。 DOUT 测试点可连接到微型输入引脚。 您还需要将微控制器的接地端连接到 ADS1232REF 上的接地点

    感谢您的回答、我将考虑这一点。


    DOUT 测试点工作正常、因为我可以通过示波器看到数据输出。
    因此、我希望在 SCLK 测试点使用示波器。 [(图34。 数据检索时序)]

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

    我不确定要告诉您什么。 如果您看到 DOUT 切换、则可能是转换结束(DRDY 部分)、而不是实际读取的数据。 这是转换准备好读取的信号。 如果您已经按照上一篇文章中的说明切割 SCLK 线、则这就是原因。 必须有一个 SCLK 才能读取转换数据。

    如果您看到 LCD 显示屏切换、则有一个 SCLK。 如果显示屏未改变、MSP430 SCLK 将不会到达 ADS1232。 您必须提供外部电源。 除了对器件进行编程外、USB 不为器件供电。 SW9必须处于 JTAG 位置。

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

    谢谢 Bob :)

    我不确定要告诉您什么。 如果您看到 DOUT 切换、则可能是转换结束(DRDY 部分)、而不是实际读取的数据。 这是转换准备好读取的信号。 如果您已经按照上一篇文章中的说明切割 SCLK 线、则这就是原因。 必须有一个 SCLK 才能读取转换数据。

    -是的,你说对了,我看到的 是100ms 时间/DIV,所以我看到的可能是就绪信号。 :/
    -当我将其更改为4us 时间/ DIV 时、我从示波器和 LCD 上获得了类似的东西。  FFFFEBh (更改最后一个值、以便我确定其工作和测量)
    -i 将 IN1+和 IN1-引脚连接到 GND (J7和 J8上无跳线)如果 IN1+未连接到 GND LCD 显示004FFh、因此其工作正常。
    -是的,我提供的是外部电源,不是很好的直流电源,而是正常的6V 直流电源。  
    不,我没有切开任何东西。


    我认为 t7大约为100ms、但这意味着 f_clk 不同于4.915MHz?
    -在我看来、24位信号被分成3个8位、所以它是 SPI 标准吗? [MOTOROLA、8位、MSB 优先]因为稍后使用 STM32时,我认为标准 SPI 配置不起作用。 (在仅接收主机模式下)
    这就是我尝试理解 Refboard 上的 SCLK 信号和 DOUT 信号的原因。
    因此、如果 SCLK 的  T2 = 5.7us、如果 T3接近 T3则 T3=250ns ->  

    T3=100ns ->  4.915MHz
    T3=250ns -> 12.288MHz





    那么、我的下一步是使该代码正常工作。
    t2= 100ms 是否太长?
    T3 = 1ms ->这是否太大?

    数据= 0;
    DATA_STALL = HAL_GPIO_ReadPin (GPIOB、Data_in_Pin);//SCL/D15引脚
    
    switch (state){
    案例-1://start
    HAL_GPIO_WritePin (GPIOA、GPIO_PIN_5、1);//将 SCLK 设置为高电平
    HAL_DELAY (100);// T2、等待 MSB
    STATE = 0;
    中断;
    情况0://IDLE
    if (data_state==1){
    HAL_GPIO_WritePin (GPIOA、GPIO_PIN_5、0);//将 SCLK 设置为低电平
    State=1;
    }
    中断;
    案例1://等待数据就绪
    if (data_state=0){
    State=2;
    }
    中断;
    案例2://读取数据
    HAL_DELAY (1);// T2、等待 MSB
    for (int i =0;i<25;i++){
    HAL_GPIO_WritePin (GPIOA、GPIO_PIN_5、1);//将 SCLK 设置为高电平
    HAL_DELAY (1);
    if (i<24){
    Data += HAL_GPIO_ReadPin (GPIOB、Data_in_Pin)< 
    

    此致

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

    MSP430使用内置 SPI 外设。 要启动 SCLK、您需要向 TX 缓冲区写入一个字节的数据以启动时钟。 发送8个时钟(整个 TX 缓冲区写入)后、您将读取 RX 缓冲区的内容。 对于任何微型 SPI 外设、此过程都非常相似。 要读取整个转换结果、您需要对缓冲区进行3次写入/读取(24位)。

    既然我们已经确定微控制器按预期发送 SCLK、那么我们需要清除一些问题。 ADS1232是一款 Δ-Σ 过采样 ADC。 请勿将 fclk 与 SCLK 混淆。 fclk 是 ADS1232的主时钟、用于器件的内部时序以进行模数转换。 该器件的采样频率为256kHz、抽取率为10sps。 这与使用 SCLK 进行转换的典型 SAR 器件不同。 在 ADS1232的 CLK 引脚连接到 GND 的情况下、使用与 fclk = 49152MHz 时钟相关的内部振荡器。 这会导致转换完成、速度位为低电平、每100ms 执行一次。 您必须在一次转换结束到下一次转换结束之间完全读出数据结果。

    T2时间是指 ADS1232输出通信的建立时间。 由于该最短时间指定为0、因此一旦 DOUT/DRDY 完成从高电平到低电平的转换、您就可以开始读取数据。 我们通常倾向于使用 GPIO 中断来确定此转换。 如果您等待100ms、则会丢失数据并读取下一个数据结果(转换每100ms 完成一次)。

    T3时间是指 SCLK 的最短低电平时间和高电平时间。 占空比为50%时、这将是一个100ns 高电平和100ns 低电平的时钟周期。 最小时钟周期为200ns、或 SCLK 频率最大值为5MHz。 我建议将 SCLK 频率定位在1MHz 至2MHz 左右。 您可以使用1ms 周期(1kHz)、即24+ms 的数据检索时间、但该时间长度不允许您通过平均、显示或操作转换结果之间的数据来执行许多其他操作。

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

    谢谢 Bob :)

    只想更新:-正如您所建议的、我没有管理1ms 周期、而是2ms (HAL_DELAY (1)->给出2ms 延迟、HAL_DELAY (0)->给出1ms 延迟)
    因此、1ms 高电平和1ms 低电平、因此我处于48ms 数据检索时间。 只需使用简单的位移函数即可。

    实际上、我的目标是收集一些权重(测量值)、求平均值并将其保存到 SD 卡中。



    #Picture1:AINP1、AINN1连接至 GND。 这就是我使用增益获得的结果:128。

    在具有理想输出代码的表(8)上、我不理解与我的输出的连接。
    输出 FF FE16是否与(-0.5Vref/128)/(2^23 -1)有关?  
    那么、GND - GND =负? 为什么不为0?





    #Picture3:使用 Loadcell 输出。


    对我来说、它看起来是正常工作的。 因此、我可以添加一些权重、而不是进行一些计算、以获得...

    我有一个一般性问题、当称重传感器连续装载时、ads1234是否可能会发生漂移?
    还是应该保持稳定?

    我尝试测量1周、但每次我检查时、refBoard ads1232都会停止(怠速、不会查询)。 (不知道原因,但是打开和关闭指示灯会重新启动 USB 连接,因为我看到记录停止。 现在我正在尝试使用另一个电源)

    此致  
    易卜拉欣·E

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


    Bob 本周不在办公室、因此我想发布一份回复。

    当您将输入接地时看到的输出可能只是失调电压、也可能是负电压。 因为偏移电压相当小。 您可以将输出代码转换为电压(假设您有5V 电源和基准)、您将得到:

    FFFE16h =-1EAh =-490d

    (-490/2^23)*(2 * 5V/128)=-1.1uV

    对于 ADS1232和 ADS1234的长期稳定性、不应存在漂移、因为称重传感器是连续加载的。 由于器件正常运行、特性不应出现任何漂移或变化、并且读数应保持稳定。

    我不确定是什么导致您的参考板停止收集数据、但我对该板的长期收集没有任何经验。 Bob 返回时可能对这一点有更深入的了解。


    吴约瑟