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.

[参考译文] DAC63202:如何通过 SPI SDO 线路读取寄存器。 数据表中没有足够的数据

Guru**** 2490525 points
Other Parts Discussed in Thread: DAC63202

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1539225/dac63202-how-to-read-a-register-through-spi-sdo-line-datasheet-doesn-t-contain-enough-data

器件型号:DAC63202

工具/软件:

您好团队:

我正在 SPI 模式下使用 DAC63202。 我希望设置寄存器中的特定位(例如 COMMON-CONFIG 寄存器中的 DEV-LOCK 位)、而不干扰该寄存器中的其他位。 为此、正常方法是首先读取该寄存器并屏蔽其他位、然后写入所需的位字段。 由于、器件默认为 3 线 SPI、但未启用 SDO 线路、因此我想知道是否有任何方法或命令可以直接设置/复位寄存器的特定位/位、而无需先读取该寄存器。 您能否确认? 如果没有任何直接命令来修改位级、我看不到默认禁用 SDO 的任何原因。 如果我的理解有误、请纠正我。

此外、通过 SDO 读取寄存器时存在混淆。 根据我的理解、具体步骤如下:

1.通过设置  INTERFACE-CONFIG 寄存器中的 SDO-EN 位来启用 SDO 线路。

2.发送读取访问周期。 因此、D23 = 1、D22-D16 是寄存器的地址(例如: 0x80 | 0x1F 读取 COMMON-CONFIG 寄存器)。 但是、要发送的剩余两个字节 (D15 - D0) 的值是多少? 我是否可以发送虚拟两个字节、如 0x0000 或 0xFFFF? 因为我只想读取寄存器、而不修改任何位。 数据表中未提到这一点。 上面显示的是 24 个时钟的读取命令访问周期。 您能否确认?

3.切换芯片选择。 然后、 读取访问周期后跟一个“第二个访问周期“。 数据表仅提到了“第二个访问周期“。 在这种情况下、我是否需要将 D23 设为高电平(读取)还是低电平(写入)。 我的理解很高,但请确认。 因为我手头没有用于测试的器件。 此外、在“第二个访问周期“中、 我是否可以在 D15-D0 的 MOSI 行中发送任意两个虚拟字节 (例如 0x0000 或 0xFFFF) 

谢谢。此致、

Bhargav

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

    尊敬 的 Bhargav:

    我想知道是否有任何方法或命令可以直接设置/复位寄存器的特定位/位而无需先读取该寄存器。

    这里没有电容器。  

    我能否发送虚拟两个字节、如 0x0000 或 0xFFFF?

    是的。 该表提到了这些数据位在读取命令中是无关位。  

    因此、我需要将 D23 设为高(读)还是低(写)。

    这可以是任何命令。 对另一个寄存器执行读取/写入命令、也可以不想发生任何事情而对 NOP 寄存器进行写入。 此命令与在上一周期中启动的读取无关。 SDO 引脚仅使用 第二个周期的时钟脉冲来在时钟沿输出读取命令中获取的数据。  

    此致、

    凯蒂恩·琼斯