您好!
你好。
我们的客户正在使用 ADS8166、他们有以下问题。
"使用数据表中描述的寄存器读取程序。 我无法读取任何寄存器。 我将 Raspberry Pi 与 spidev 搭配使用。 寄存器地址0x00的读数如下所示:
SPI.xfer2 ([0b00010000;29;0x00])#read 命令
DATA=SPI.xfer2 ([0b00010000;29;0x00])#根据数据表、无论要在此处发送什么
我所期望的是8位寄存器数据后跟两个零字节。
我得到的是两个字节(ADC 值)后跟一个零字节。
但是、我可以使用 spi.xfer2 ([0b00001000、29、1])更改 ADC 通道
我通过将其中一个输入固定到 GND、另一个输入固定到固定电压并从这两个输入之间交替获取数据来进行测试。 -> MOSI 线路也正常工作、MISO 也正常工作
我将逻辑分析仪连接到系统、但它只是验证我通过 RPI 获得的数据。
由于这个写入命令起作用、我试图盲目地将器件置于调试模式。 (在寄存器访问寄存器中写入 REG_ACCESS_BIits、并将0x01写入 Data_CNTL_Reg 0x10以启用调试模式)但这也失败了、并且 ADC 只为我提供了更多16位数据、这些数据与调试值不同。
我也使用逻辑分析仪检查了第二个 SDO 线路、但它始终保持低电平、因此会按预期停用。
我是否缺少对寄存器进行读取访问的内容?
是否缺少对写访问寄存器或除 Chan ID 寄存器之外的任何其他寄存器的写访问权限?
在读取寄存器值之前、我是否需要停止16位 ADC 数据输出?
如果是、如何停止输出? 我已经尝试关闭 ADC 模块的电源、但也失败了。
我是否需要使用某些特殊频率? 我已经尝试过400000Hz 800000Hz 1600000Hz
我是否需要一些特殊的中断/读取更多字节? 已经尝试 过 bburstread 6字节 SPI.xfer2 ([0b00010000,290x00,0b00010000,290x00])得到[ADC_MSB;ADC_LSB;0x00,16,29-0]->刚刚在正常帧之后返回我的前三个字节的消息。"
我们感谢你就此问题提出意见。 谢谢你。
此致、
Cedrick