首先,我遇到了与 以前的一张海报相同的问题, 我无法得到任何书面材料来生效。 然后我意识到必须使用SPI模式1进行写入,使用SPI模式0进行读取。
但现在,我只能写在寄存器0x8,0x9和0xA上。 如果我将reg 8写入到2以外的模式,然后通过写入0x9执行重置,则模式将恢复到2 (默认值)。 这证明软件重置已发生。
我无法将通道配置寄存器写入regs 0-3。例如。 这些始终读回为0。 与其他寄存器(如4,5,6)相同。
我已通过数据表中描述的寄存器8确保我处于空闲模式0。
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.
首先,我遇到了与 以前的一张海报相同的问题, 我无法得到任何书面材料来生效。 然后我意识到必须使用SPI模式1进行写入,使用SPI模式0进行读取。
但现在,我只能写在寄存器0x8,0x9和0xA上。 如果我将reg 8写入到2以外的模式,然后通过写入0x9执行重置,则模式将恢复到2 (默认值)。 这证明软件重置已发生。
我无法将通道配置寄存器写入regs 0-3。例如。 这些始终读回为0。 与其他寄存器(如4,5,6)相同。
我已通过数据表中描述的寄存器8确保我处于空闲模式0。
您好,Rahul,感谢您的快速回复。 我尝试过各种写测试来记录8个不同的值,它们都读回了良好的读数。
以下是您的特定测试的捕获。
如前所述,我还可以写信给reg 10,然后读回该值。 其他寄存器则不是这种情况。
不想在这里添加更多的问题,但是,由于我无法配置我想要的实际参数,我在重置后尝试在默认模式2中使用它,以查看我是否可以触发转换。
我将CONVST*线路负向脉冲约500ns,并在寄存器7上轮询任何已设置的状态位,而这种情况从未发生。
从不设置Done (完成)标志。
-比尔
所以寄存器写入问题似乎是因为我没有在所有需要的地方将SPI模式切换为0和1。 例如,在我的SPI_READ()中,我忘记了它先是一个write,然后是一个伪write/read。 我只是在调用SPI_write()之前更改模式。 所以我不得不在内部修改我的驱动程序代码。
让我感到失望的是,我可以写一些,但不是全部。 SPI模式的这种动态变化也使对范围的分析变得混乱。
SPI_READ():
SPI_write():