您好!
我的板有两个 DAC、SPI 以菊花链形式连接。 我们无法对链中的第2个 DAC 进行编程。 有3项相关信息:
- a) DAC 在3线 SPI 模式下加电(即禁用菊花链、 即 SDO 引脚被禁用)、这意味着它们 锁存前24个 SDI 位 保持高阻抗状态。
- b)我的目标是通过启用每个 DAC 上的 SDO 引脚将两个 DAC 配置为4线制 SPI 模式(即启用菊花链)。 启用 SDO 的命令为3个字节:[0x26、0x00、0x01]。
- c)德州仪器(TI)在2001年确认、 在 SS 变为低电平后、从 DAC SDO 传输的第一个位始终为1、并且我们已在 DAC53204上确认了这种行为。
因此、我们尝试在4线 SPI 模式下对 DAC 进行编程、并快速遇到对第二个 DAC 进行编程的问题、如下所述:
- 我们向第一个 DAC 发出 SPI 写入[0x26、0x00、0x01]。 这会成功启用第一个 DAC 上的 SDO 引脚。 到目前为止一切顺利。
- 然后、我们发出 NO-op SPI 写入[0x00、0x00、0x00]到第一个 DAC。 这将导致第一个 DAC 将其先前的命令[0x26、0x00、0x01]回显到 SDO 上、指向第二个 DAC。 但是、由于 SDO 上的第一个位替换为1、第一个 DAC 实际上会将命令[0xA6、0x00、0x01]回显到第二个 DAC、而第二个 DAC 由于接收到错误的命令而无法启用其 SDO 引脚。
您可能建议我们在单次传输中发送两次命令、即传输6个字节而不是3个字节、以便第二个 DAC 看到的最后24位正确、但第二个 DAC 将仅锁存 第一 因为它在3线 SPI 模式中加电。
如果第一个 DAC 始终在第一个 SDO 位上输出1、我们如何确保第二个 DAC 看到的前24位为[0x26、0x00、0x01]? (将0x26转换为0xA6)


