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.

[参考译文] ADS1256:ADS1256

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/667295/ads1256-ads1256

部件号:ADS1256

我正在为ADS1256 A/D转换器编写代码。 我对数据表中表24和23中所描述的寄存器写入操作有点困惑。 我特别编写代码以初始化状态寄存器(表23)。 我的问题与ADCON有关。 按照表24的说明,我将CS降低,写入WREG (0101 rrrrr),其中rrrrr是要写入的寄存器标识符(表23)。 ADCON在表23中标识为地址02h。 因此,我将0x52写入命令寄存器,后面是0x00作为数据字节。

当我这样做时,我的读数都是5.0V。 这令人困惑,因为0x00应该是默认值。 我添加了一个REG行并读回ADCON寄存器,它读出了它应该读的0x00。

如果我对写在ADCON中的两行代码进行注释,则读数是正确的。 它看起来像是正在写入PGA位。

我正在向命令寄存器ORed发送WREG写,其中包含要寻址的寄存器地址,后跟一个配置数据字节。 然后,我向命令寄存器ORed发送另一个WREG写入,其中包含要寻址的下一个寄存器的地址,依此类推,直到所有所需的配置寄存器都已写入。 表24上方的文本表示:“在第一个命令字节之后,可以毫不延迟地传入其他命令和数据字节。” 这是否适用于将配置数据写入表23配置寄存器? 是否可以在不使用其他WREG命令的情况下编写这些命令? 如果是这样,也许我重复的WREG/DATA写入会以某种方式连接在一起,谁知道我要给谁写什么?

我是否应该在WREG命令之间生成CS? 请提供帮助...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    忽略,我明白了。 WREG命令后未写入第二个字节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Aubrey,

    没问题-很高兴您能解决您的问题!

    注:在命令之间切换/CS是可选的。 这样做的一个好处是切换/CS可重置SPI接口,并有助于纠正在SCLK上发生故障时可能出现的任何SPI通信错误,例如ADC在MCU之前为1 SCLK ...但是, 如果您正在对多个寄存器执行读写操作(即第二个命令字节不是零),则/CS必须保持低电平,直到您完成发送整个命令为止(然后才能切换/CS引脚)。 我认为提前将/CS设置为高将终止该命令并导致ADC忽略它。

    如果您有任何其他问题,请告知我们!

    此致,
    Chris