我有一个系统、其中有多个 ADS124S08器件连接到 Kintex7 FPGA。 SPI 以12.5MHz 的频率运行(速度较慢不会产生任何影响)。 每个器件共享 CS/DIN/SCK、但有自己的专用 DOUT 引脚连接到 FPGA。 在目标应用中、需要单次转换、但这些转换的速度并不是很重要。
IOVdd=3.3V
DVDD = 3.3V
CLK =来自 FPGA 的3.3V 逻辑4.096MHz 时钟
RESET=3.3V
AVDD =+2.5V
AVSS =-2.5V
REFN0= 0V
REFP0 = 2.5V
启动/同步= 0V
DRDY =悬空
CS/DIN/SCK/DOUT 通过电阻器3.3V 逻辑连接到 FPGA。 DOUT 有一个启用的 ON-FPGA 上拉电阻器。
作为基本测试、我已将 ADS124S08配置为读取裸片温度传感器、并以增益1启用 PGA。 这将提供一些数据以供读取、而无需考虑输入。 尝试各种采样率确实会改变 DRDY/DOUT 线路的行为、但始终会导致全零数据。
测试寄存器配置:
常量 ADS124S08_REGMAP_debug_using_internal_temperature 传感器:ADS124S08_REGMAP_T:=(
x"00",--标识号
x"00",--状态 :清除上电复位标志
X"01"、-- INPMUX
X"C8",-- PGA :最长稳定时间,PGA 启用,1倍增益
x"eb",-- datarate:启用全局斩波,外部时钟,单冲,1000个样本/秒
x"10"、--基准
x"00",-- IDACMAG
X"FF",-- IDACMUX
x"00"、-- VBIAS
x"51",-- SYS :使用内部温度传感器作为数据源,8个样本计算,无 SPI 超时,带 CRC,无状态字节
X"00"、-- OFCAL0
X"00"、-- OFCAL1
x"00"、-- OFCAL2
X"00"、-- FSCAL0
X"00"、-- FSCAL1
X"00"、-- FSCAL2
x"00"、-- GPIODAT
X"00" -- GPIOCON
);
请参阅使用 saleae 逻辑捕获的波形以打开此处的文件:
我可以成功读取加电默认寄存器内容并根据数据表进行验证、因此 SPI 通信似乎正常。 我还可以对寄存器进行写操作和回读、以验证新内容。 DOUT/DRDY 组合引脚在一段时间后从高电平转换为低电平、这取决于采样率、但后续切换 CLK 以获得 ADS124S08的全零响应。
欢迎就此问题提供任何意见。
谢谢、
Zis
