TI论坛
直播中

吴湛

10年用户 977经验值
擅长:417804
私信 关注
[问答]

ADS8568使用SPI通信无法正常访问配置寄存器怎么解决?


  •   我调试的ADS8568使用的是SPI与mcu进行通信,仅通过SDO_A作为数据输出:
    1、测量电压功能的功能很正常,16bit的数据能够从SPI总线收取到,并且结果正确。
    2、读取和设置内部的Configuration (CONFIG) Register存在问题,按照datasheet上所述,更新或读取寄存器需将对应的bit设置为1,但按此配置读取寄存器内容为随机数值,明显与默认值0x000003FF不符。

    在代码中读取的时序为:
    spi.write([0xC0, 0x00, 0x3F, 0xFF])
    data = spi.read(4)
    请帮忙看下读取的时序是否有问题,或者配置是否有问题

回帖(3)

刘京

2024-12-3 11:23:39
HW/SW(pin41)管脚是高电平还是低电平,这个管脚是用来设置 Hardware Mode和 Software Mode的,在Hardware 模式下WRITE_EN无效。
举报

陈小艳

2024-12-3 11:23:53
  您现在的问题是serial mode下读取和设置内部的Configuration (CONFIG) Register有问题?您是按照数据手册FIgure 40进行操作的吗,可以示波器看下时序吗
举报

洒下墨色

2024-12-3 18:16:31
从您提供的信息来看,您在使用ADS8568时遇到了配置寄存器读取和设置的问题。以下是一些建议和可能的解决方案:

1. 检查SPI通信参数:确保您的SPI通信参数(如时钟频率、CPOL、CPHA等)与ADS8568的数据手册中推荐的参数相匹配。不正确的SPI参数可能导致通信问题。

2. 检查SPI引脚连接:确保您的SPI引脚连接正确,包括MISO、MOSI、SCK和CS。错误的引脚连接可能导致通信问题。

3. 检查代码时序:您的代码时序看起来是正确的,但是您可以尝试以下时序来读取配置寄存器:

   ```
   spi.write([0x80, 0x00, 0x00, 0x00])
   data = spi.read(4)
   ```

   这个时序中,0x80是读取配置寄存器的命令,后面三个0x00是用于读取数据的。

4. 检查ADS8568的电源和地连接:确保ADS8568的电源和地连接正确,以避免电源问题导致的通信问题。

5. 检查ADS8568的复位引脚:确保ADS8568的复位引脚已正确连接,并在初始化时将复位引脚拉低以复位设备。

6. 检查ADS8568的固件版本:确保您的ADS8568固件版本与您使用的代码兼容。如果固件版本不兼容,可能会导致通信问题。

7. 使用示波器检查SPI总线上的信号:使用示波器检查SPI总线上的信号,以确保SPI通信正常。您可以检查MISO、MOSI和SCK信号,以确保它们在正确的时序下传输。

如果以上建议都无法解决问题,您可以尝试联系ADS8568的制造商或技术支持,以获取更多帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分