Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADC reading reading is too small #170

Open
TinaHsing opened this issue Jul 31, 2023 · 1 comment
Open

ADC reading reading is too small #170

TinaHsing opened this issue Jul 31, 2023 · 1 comment

Comments

@TinaHsing
Copy link

Hi Dear developer
I used the zcu216 image download from google drive
Then I used the demo program in 00_Send_receive_pulse without any modification in LoopbackProgram.
my configure input is like below, I changed the pulse_gain to 30000
length to 100
readout length to 300

config={"res_ch":6, # --Fixed
"ro_chs":[0], # --Fixed
"reps":1, # --Fixed
"relax_delay":1.0, # --us
"res_phase":0, # --degrees
"pulse_style": "const", # --Fixed

    "length":100, # [Clock ticks]
    # Try varying length from 10-100 clock ticks
    
    "readout_length":300, # [Clock ticks]
    # Try varying readout_length from 50-1000 clock ticks

    "pulse_gain":30000, # [DAC units]
    # Try varying pulse_gain from 500 to 30000 DAC units

    "pulse_freq": 100, # [MHz]
    # In this program the signal is up and downconverted digitally so you won't see any frequency
    # components in the I/Q traces below. But since the signal gain depends on frequency, 
    # if you lower pulse_freq you will see an increased gain.

    "adc_trig_offset": 0, # [Clock ticks]
    # Try varying adc_trig_offset from 100 to 220 clock ticks

    "soft_avgs":100
    # Try varying soft_avgs from 1 to 200 averages

   }

###################

Try it yourself !

###################

prog = LoopbackProgram(soccfg, config)
iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)

I found :
A. the ADC reading is very small. and the rising edge is at t = 60(+100)
image
I double check the ouput waveform in scope, ch6 had around 800mVpp output. and I used xm655 card acompany with zcu216.
the balum selection is 10M~1G.
when I changed the pulse_freq to 800 MHz, the reading is bigger but still small.
image

B. when i change the adc_trig_offset from 100 to 180
image
we still can see the rising edge of output wavefrom at t = 0(+180)

Did I do anything wrong so that my adc reading is so small?
the adc_trig_delay seems didn't have a good match to real waveform?

@meeg
Copy link
Collaborator

meeg commented Aug 1, 2023

Let me repeat to maike sure I understand correctly:
A. You're seeing very little signal in loopback, you have checked that your baluns are appropriate for the frequency and the output is visible on a scope.
B. You changed adc_trig_offset by 80 units, but the pulse did not shift by 80 units - more like 60.

and answers:
A. I agree you should be seeing a bigger pulse. You should double-check that you're connected to the correct ADC and that you have no loose connections there. You could also connect a signal generator to the ADC instead of the loopback cable, and play a constant sine wave at your readout frequency: since the generator will not be synchronized to the QICK you will not see a coherent constant value, but you should see something.
B. This is OK. adc_trig_offset is in units of the tProcessor clock, which is 430.08 MHz; the decimated data is sampled at the readout fabric clock, which is 307.2 MHz. So it makes sense that changing adc_trig_offset by 80 would shift the decimated data by 80*(307.2/430.08) = 57.1 ticks. (soccfg.us2cycles(soccfg.cycles2us(80), ro_ch=0) is a way to do this conversion in code.) If you look at the "Clocks and durations" section in the 00 demo you will see some more explanation of this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants