I've got a system with several ADS124S08 devices connected to a Kintex7 FPGA. SPI is running at 12.5MHz (slower makes no difference). Each device shares CS/DIN/SCK, but has its own dedicated DOUT pin connected to the FPGA. In the target application, single shot conversions are desired, though the speed of those conversions is not really important.
IOVDD=3.3V
DVDD=3.3V
CLK = 3.3V logic 4.096MHz clock from FPGA
RESET=3.3V
AVDD = +2.5V
AVSS = -2.5V
REFN0= 0V
REFP0 = 2.5V
START/SYNC = 0V
DRDY= floating
CS/DIN/SCK/DOUT connected to FPGA through resistor, 3.3v logic. DOUT has an on-fpga pullup resistor enabled.
As a basic test, I've configured the ADS124S08 to read the on die temperature sensor, with PGA enabled at gain of 1. This should give some data to read without caring about the inputs yet. Trying various sampling rates does change the behavior of DRDY/DOUT line, but always results in all-zero data.
Test register config:
constant ADS124S08_REGMAP_DEBUG_USING_INTERNAL_TEMPERATURE_SENSOR : ADS124S08_REGMAP_T:=(
X"00", -- ID
X"00", -- STATUS : Clear power-on-reset flag
X"01", -- INPMUX
X"C8", -- PGA : Maximum settling time, PGA enabled, 1x gain
X"EB", -- DATARATE : Global chop enabled, external clock, single shot, 1000samples/second
X"10", -- REF
X"00", -- IDACMAG
X"FF", -- IDACMUX
X"00", -- VBIAS
X"51", -- SYS : use internal temperature sensor as data source, 8 sample calbiration, no spi timeout, with crc, no status byte
X"00", -- OFCAL0
X"00", -- OFCAL1
X"00", -- OFCAL2
X"00", -- FSCAL0
X"00", -- FSCAL1
X"00", -- FSCAL2
X"00", -- GPIODAT
X"00" -- GPIOCON
);
Please see captured waveforms using saleae logic to open the file here:
https://drive.google.com/file/d/1j6fNTROt7RuhNDG9zIZKk6qooRoInuyI/view?usp=sharing
I can successfully read the power-on default register contents and verify against datasheet, so the SPI communication seems to be OK. I can also write to the registers and read back to verify the new contents. DOUT/DRDY combo pin transitions from high to low after some time which is dependent on sampling rate, but the subsequent toggling of CLK for a results in all-zero responses from ADS124S08.
Any input on this issue is welcome.
Thanks,
zis
