Im 尝试确保我可以成功地更改输出电压。 我的程序如下:
- 将 common 配置设置为0x800
- 设置 dac0和 dac1 CMP 配置值(完全相同地设置为0x8000)
- 设置 DAC 输出值
所有写入与回读一起被立即确认以确保值已经生效。 最初、我在没有延迟的情况下执行该操作、并且正确回读了值。
我们注意到 dac0输出工作正常、但 dac1输出在两个相同的板上保持为0v。 在查询寄存器时、我们注意到值没有被保存。 下面的屏幕截图显示了 I2C 设置指令前后的寄存器、表明 dac1voutcmpconfig 值没有粘滞、我还通过测试知道 dac1data 值正在复位为0。
我实施了一些防御性编码、以确保 generalStatus 寄存器显示两个 DAC 都已为命令做好准备、并且在读取之前存在延迟、以考虑到可能的复位时间。 这张屏幕截图显示了我现在使用的写入过程:
如需了解更多相关信息、借助防御性编码、当尝试设置 DAC 值时、我实现的代码现在会卡在这一循环中。
在 PicoScope 示波器上、这将导致以下异常行为
任何人都可以对这种行为作出任何解释都是值得赞赏的。 如前所述、我们对其进行了测试、并且它在两个电路板上是相同的、在测试过程中还可以使用开发套件来查看其是否基于电子产品、但 Jack 向我保证这种可能性不大。