Tool/software:
Hi TI team,
I'm currently bringing up the TLA2518 with a Cyclone V E FPGA via SPI. I’m operating in SPI Mode 0 (CPOL = 0, CPHA = 0), using On-the-Fly mode, and following the recommended frame format.
My SPI Setup:
-
Clock frequency: 31.25 MHz (generated from 125 MHz system clock ÷ 4)
-
SPI Mode: Mode 0 (clock idles low, data sampled on rising edge, data driven on falling edge)
-
Command frames: Always 24 bits long during CS low (e.g.,
0x08 0x10 0x02
to set SEQ_MODE) -
Readback: Occurs in the next SPI frame, CS held HIGH between frames for >3.6 μs (450 system clocks) to allow conversion
-
MOSI (SDO): Driven on falling edge of SCK
-
MISO (SDI): Sampled on rising edge of SCK
-
After initialization, I’m sending the 12-bit on-the-fly channel select frame: 12'b
100100000000
(to select channel 2)
Behavior:
-
When I connect AVDD to AIN2, I get expected results (e.g.,
0xFFF
). -
When I connect other voltages (e.g., 1.2 V, 2.0 V) or leave AIN2 floating, I receive random values such as: 0x820, 0xC08, 0x408, 0x402, 0x000
- SignalTap waveform shows:
sdo
transitions correctly on falling edgesdi
is not stable for a full SCK period — it appears to change mid-bit- MISO values look corrupted even though CS, clock, and timing all match datasheet spec
Questions:
- Should each SDI bit remain valid for one full SCK cycle at 31.25 MHz?
- Is SPI Mode 0 supported for continuous readout, or is Mode 1 required for stable SDI timing?
- Could unstable
sdi
be due to ADC output tri-stating or signal integrity? - Do you recommend adding a pull-up/down or series resistor on SDI?
I’ve attached:
SignalTap waveform screenshots
Connection schematic