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.

[参考译文] ADS8201:ADS8201问题

Guru**** 2516170 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/569361/ads8201-ads8201-problems

部件号:ADS8201

首先,我遇到了与 以前的一张海报相同的问题, 我无法得到任何书面材料来生效。 然后我意识到必须使用SPI模式1进行写入,使用SPI模式0进行读取。

但现在,我只能写在寄存器0x8,0x9和0xA上。 如果我将reg 8写入到2以外的模式,然后通过写入0x9执行重置,则模式将恢复到2 (默认值)。 这证明软件重置已发生。

我无法将通道配置寄存器写入regs 0-3。例如。 这些始终读回为0。  与其他寄存器(如4,5,6)相同。

我已通过数据表中描述的寄存器8确保我处于空闲模式0。

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

    您似乎已使寄存器读取协议正常工作,因为您能够读回寄存器8。
    但是,请确认您是否能够写入和读回非零值以注册8而无需重置设备。

    您可以尝试以下步骤-

    1)设备通电。
    2)读取寄存器8 ->应返回值2。
    3)将值3写入寄存器8。
    4)读取寄存器8 ->应返回值3。
    5)将值0xAA写入寄存器9 ->将导致软件重置。
    6)读取寄存器8 ->应返回值2。

    这将有助于确定读写在我们实际读回写值的位置是否有效。

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

    您好,Rahul,感谢您的快速回复。  我尝试过各种写测试来记录8个不同的值,它们都读回了良好的读数。

    以下是您的特定测试的捕获。

    如前所述,我还可以写信给reg 10,然后读回该值。 其他寄存器则不是这种情况。

    不想在这里添加更多的问题,但是,由于我无法配置我想要的实际参数,我在重置后尝试在默认模式2中使用它,以查看我是否可以触发转换。

    我将CONVST*线路负向脉冲约500ns,并在寄存器7上轮询任何已设置的状态位,而这种情况从未发生。

    从不设置Done (完成)标志。

    -比尔

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

    所以寄存器写入问题似乎是因为我没有在所有需要的地方将SPI模式切换为0和1。 例如,在我的SPI_READ()中,我忘记了它先是一个write,然后是一个伪write/read。 我只是在调用SPI_write()之前更改模式。 所以我不得不在内部修改我的驱动程序代码。  

    让我感到失望的是,我可以写一些,但不是全部。 SPI模式的这种动态变化也使对范围的分析变得混乱。

    SPI_READ():

    • 等待SPI不忙
    • 设置SPI模式1
    • 写入地址
    • 等待SPI不忙
    • 设置SPI模式0
    • 写入虚拟/读取数据

    SPI_write():

    • 等待SPI不忙
    • 设置SPI模式1
    • 写入地址字节
    • 写入数据字节

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

    感谢您发布问题的解决方案。 您现在的界面工作了吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的,现在似乎都在工作。

    账单