Post Go back to editing

AD9680 zeros after decimation

Category: Software
Product Number: AD9680

I'm working with AD9680 connected to Artix-7 FPGA through 4 lane JESD. AD clock is 500 MHz, FPGA clock is 125 MHz, subclass 0
All works well on full data rate

But when I set decimation 2 it becomes strange - I've got lot of zeros in output data

I've try set decimation only in 0x201, and with DDC - got slightly visual changes, but zeros in data still present


Here's my decimation setup:

# standby_adc
reg_write_adc 0x003F 0x0
reg_write_adc 0x0040 0x7F
sleep 0.1

# set decimation
case $D in
    1)
    reg_write_adc 0x0200 0x00
    reg_write_adc 0x0201 0x00
  ;;
    2)
    reg_write_adc 0x0200 0x01
    reg_write_adc 0x0201 0x01
    reg_write_adc 0x0310 0x83
    reg_write_adc 0x0311 0x04
    reg_write_adc 0x0314 0x00
    reg_write_adc 0x0315 0x00
    reg_write_adc 0x0320 0x00
    reg_write_adc 0x0321 0x00
  ;;
    4)
    reg_write_adc 0x0201 0x02
  ;;
    8)
    reg_write_adc 0x0201 0x03
  ;;
    16)
    reg_write_adc 0x0201 0x04
  ;;
    *)
    echo "Invalid decimation -$OPTARG" >&2; exit 1 ;;
esac

# JESD power down
reg_write_adc 0x0571 0x15
sleep 0.1

# JESD quick config
log2_f=$(log2 $F)
log2_m=$(log2 $M)
log2_l=$(log2 $L)

# echo $log2_f
# echo $log2_m
# echo $log2_l

val_L=$(((log2_l)<< 6))
val_M=$(((log2_m)<< 3))
val_F=$((log2_f))

val=$((val_L+val_M+val_F))
reg_write_adc 0x0570 $val

# CS = 2, N = 14
val_n=0x80+$N-1
reg_write_adc 0x058F $val_n
# set n' to 16
reg_write_adc 0x0590 0x0F

case $L in
    1)
    reg_write_adc 0x05B0 0xFE
  ;;
    2)
    reg_write_adc 0x05B0 0xFA
  ;;
    4)
    reg_write_adc 0x05B0 0xAA
  ;;
    *)
    echo "Invalid decimation -$OPTARG" >&2; exit 1 ;;
esac

# JESD power up
reg_write_adc 0x0571 0x14

# disable STDBY
reg_write_adc 0x003F 0x80
reg_write_adc 0x0040 0xBF
sleep 0.1

reg_write_adc 0x01 0x02

Am i missing some important config step?

  • Hi  

    Thanks for using AD9680.

    To help diagnose the issue more precisely, could you please share the SPI configuration you're using for the AD9680? Specifically:

    • The register values you're writing via SPI (besides the ones you've already shared).
    • Any initialization sequence or reset steps.
    • The JESD204B link parameters (e.g., lanes, converters, octets per frame, etc.) as configured on both the ADC and FPGA.

    This will help us verify if there's any mismatch or missing configuration that could be causing the zeroed output during decimation.

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.