UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer nvenugop
Observer
847 Views
Registered: ‎02-05-2019

Read ADC and Visualise the data using Baremetal

Jump to solution

Hi Developers

I am using ZCU-111 Dev board for a radar simulation application. So far, we have successfully implemented a FPGA design which can generate sine wave from DAC ports using the SDK application. Requesting developers to let us on the methods we could use to read the generated DAC output at ADC side and visualize the same? When I enable the ADC port in board design GUI, the ADC clock is missing and when I run connection automation, the DAC is not generating sine wave but just a constant voltage output. board_Adc.PNG 

0 Kudos
1 Solution

Accepted Solutions
Community Manager
Community Manager
423 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi Nvenugop,

It is strange. I tested on the ZCU111 just now. It works as expected. Blew is my C code.

After running below code, I input a signal to the board from signal generator and adjust the signal level up. Then I can see the led lights to flag the threshold value reached.

You can have a look on my code and if you need the vivado project please let me know. thanks,

/*ThresholdSetting*****************************************************************************/
XRFdc_Threshold_Settings Threshold_Settings;
Threshold_Settings.UpdateThreshold = XRFDC_UPDATE_THRESHOLD_BOTH;
Threshold_Settings.ThresholdMode[0] = XRFDC_TRSHD_STICKY_OVER;
//Threshold_Settings.ThresholdUnderVal[0] = 164;
Threshold_Settings.ThresholdOverVal[0] = 15999;
//Threshold_Settings.ThresholdAvgVal[0] = 10;

Threshold_Settings.ThresholdMode[1] = XRFDC_TRSHD_STICKY_OVER; //using threshold1 to freeze the calibration
//Threshold_Settings.ThresholdUnderVal[1] = 50;//411;
Threshold_Settings.ThresholdOverVal[1] = 10000;//420;
//Threshold_Settings.ThresholdAvgVal[1] =50; //49152;
for(int Tile=0; Tile<4; Tile++){
for(int Block=0;Block<2;Block++){
XRFdc_SetThresholdSettings(RFdcInstPtr, Tile, Block, &Threshold_Settings);
XRFdc_SetThresholdClrMode(RFdcInstPtr,Tile,Block,XRFDC_UPDATE_THRESHOLD_BOTH, XRFDC_THRESHOLD_CLRMD_MANUAL_CLR);
}
}
XRFdc_Threshold_Settings GETThreshold_Settings;
XRFdc_GetThresholdSettings(RFdcInstPtr, 0, 0, &GETThreshold_Settings);
xil_printf("--------------------------------------------------------------------------------\r\n");
xil_printf("\r\n");
printf("TILE%1d BLOCK%1d : UpdateThreshold = %x\n", 0, 0, GETThreshold_Settings.UpdateThreshold);

printf("TILE%1d BLOCK%1d : ThresholdMode[0] = %x\n", 0, 0, GETThreshold_Settings.ThresholdMode[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdUnderVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdUnderVal[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdOverVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdOverVal[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdAvgVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdAvgVal[0]);

printf("TILE%1d BLOCK%1d : ThresholdMode[1] = %x\n", 0, 0, GETThreshold_Settings.ThresholdMode[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdUnderVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdUnderVal[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdOverVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdOverVal[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdAvgVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdAvgVal[1]);

xil_printf("\r\n");
xil_printf("--------------------------------------------------------------------------------\r\n");

for(int Tile=0; Tile<1; Tile++){
for(int Block=0;Block<2;Block++){
XRFdc_ThresholdStickyClear(RFdcInstPtr,Tile,Block,XRFDC_UPDATE_THRESHOLD_BOTH);
}

//The threshold flag will assert if you don't clear it at the first time even input signal level not exceed the upper threshold. So I clear the sticker here.
}

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
21 Replies
Community Manager
Community Manager
755 Views
Registered: ‎08-30-2011

Re: Read ADC and Visualise the data using Baremetal

Jump to solution

Hello

There is no internal loop back path between DAC output to ADC input. So the only way at the moment is to loop tha DAC output externally back to the ADC input.

I can confirm if next generation rfsoc has the loopback path as you required.

As for the visualization, what kind of visualization do you would like to have. We have TRD GUI and RF analyzer GUI for the customer to have the data visualized on the host machine.

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Observer nvenugop
Observer
732 Views
Registered: ‎02-05-2019

Re: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Thanks for the help. As of now, the objective for us is to read the properties such as amplitude,frequency, waveform, of the generated wave at the DAC, from the ADC port (external loop) using the SDK application. Subsequently, based on the properties, trigger any GPIO or LED pins to start with. I am aware of the RF analyzer GUI, but as per the requirement, I need to read the values of the generated wave and use it for triggering other components.

Appreciate the help.


Regards
Nanda

0 Kudos
Community Manager
Community Manager
723 Views
Registered: ‎08-30-2011

Re: Read ADC and Visualise the data using Baremetal

Jump to solution

@nvenugop  已写:

Hi @zhendon 

Thanks for the help. As of now, the objective for us is to read the properties such as amplitude,frequency, waveform, of the generated wave at the DAC, from the ADC port (external loop) using the SDK application. Subsequently, based on the properties, trigger any GPIO or LED pins to start with. I am aware of the RF analyzer GUI, but as per the requirement, I need to read the values of the generated wave and use it for triggering other components.

Appreciate the help.


Regards
Nanda


Hi Nanda,

Thanks for the clarification. I got much clear image of what you are going to do.

The amplitude would be a bit easier. You can enable the real time threshold flag output port in the "Advanced”tab when configure the wizard. And setting the threshold value and signal behaviour (stick high/low, hysterisis)  by API function " XRFdc_SetThresholdSettings"  with data structure " XRFdc_Threshold_Settings ".  You can have a check on PG269 pg#38 and see if it matches with your objective.

The frequency would be a bit harder. RFSoC itself cannot report the frequency point of the captured signals. You might need to add an FFT module connected to the ADC output or DMA controller to have the data transformed and then get the freqency information.

I am sorry that I am not an DSP expert so I would like to invite other DSP engineer to this thread in case you have further questions about FFT.

thanks,

Zhendong

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Scholar dgisselq
Scholar
703 Views
Registered: ‎05-21-2015

Re: Read ADC and Visualise the data using Baremetal

Jump to solution

@nvenugop,

There are several ways to measure the frequency of an output.  The FFT is perhaps the most expensive of them.

  1. Perhaps the simplest method of measuring frequency is to count zero crossings.  It's easy, it's simple, and it can be very accurate.  The problem with counting zero crossings is noise.  If there's ever a glitch of noise in the signal that might turn one zero crossing into two, then this metric might be distorted.  While you might use a filter of some type to help here, there is always the cost associated with the run-up and run-down of the filter--still, I've seen this technique work very well in the presence of noisy data.  On the other hand, if you a broadcasting a sine wave at full scale from a D/A straight into an A/D, then I would hope this would be a good measure--depending of course on the quality of the A/D.
  2. The next most complex method is to use a logic-based PLL of some type, such as this one for example.  Such a PLL if done well should do a better job tracking the frequency in noise than the zero crossing counter.  The PLL in the example above has a nice output indicating both the phase of the tracker, and should have no problems outputting a phase step.
  3. The third method of frequency estimation I'll mention is using an FFT.  If done properly, this method can achieve the Cramer-Rao lower bound of frequency estimation.  Achieving this requires squaring the output of the FFT and finding the maximum.  Once found, you'll need to do an interpolation about that point to find the true maximum.  It's quite easy to do in software, but you might find it a bit more challenging in hardware.  Look out for other peaks in the spectrum--whether they be unintended harmonics of the signal of interest or something else leaking through your circuit.  Even those such frequencies might be unintended, they could easily throw this measurement off.  (They'd tend to throw the other measurements off as well, the difference is that with the FFT you can actually see and analyze what's going on.)

If I understand your application properly, you are attempting to perform real-time quality assurance on your output.  That being the case, were I you I'd also want to measure the distortion on the output as well.  This could be done by running the PLL phase through a CORDIC rotator and measuring the squared difference--be sure to account for all of the delays along the way!  Using the FFT, this is a bit simpler--you'd then need to create a window of samples around your peak, and then sum the squares of all of the other samples.  The ratio between the squared, interpolated maximum amplitude and this sum of squares should provide a nice CNR that you can output.

Hope this helps,

Dan

Observer nvenugop
Observer
590 Views
Registered: ‎02-05-2019

Re: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Thanks for the help. As per your suggestion, I tried the  XRFdc_SetThresholdSettings, under Hysterisis mode. However, while setting the threshold, I am not sure, whats the value I should set the threshold to be. Is there a way to check what the system is reading to check against the threshold that is set from API? Also, I tried redirecting the threshold flag to some on-board led but I had no luck in getting them work. I have attached the design file for your reference. Also, if you could let me know how to use a timer or counter in the place of the LED, so that I can use the output of the threshold_flags to trigger the clock, which then, I can use to find the time period of each signal state, it would be of a great help. I really appreciate your support. 

Thank you

Nanda

RTL_LED_design.PNG
0 Kudos
Community Manager
Community Manager
563 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi

Despite the ADC's resolution is 12 bits, it turns to 14 bits resolution after the convertion. So the threshold level should be set as 14-bit unsigned value. The largest value should be 0x3FFF meant to be the full scale.

What is the ThresholdUpperVal set in your code? Did you input an signal after your set the value? What is the voltage level of the signal you input?

You can start with a small value set by the API and then input a relatively high voltage signal (near to the fullscale) to make sure it will be physically triggered.

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Observer nvenugop
Observer
533 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

@zhendon 
Greetings

I am generating a 10 Mhz sine wave with an amplitude of 1.4V, Max: 2.44V and Min: 1.04V from DAC0 and then looping it externally to the ADC0,
I tried setting the ThresholdUpperVal starting from 1000 - 15999. But I dont see its triggering the led. can I specify the threshold values in decimal or hexadecimal. Also, I created an external output port and tagged them to led package pins in the constraints file (AR13,AP13,AR16,AP16). Could you pls confirm if its the correct way to redirect the flag output to the led pins? 

 

these are the values I have set in the SDK.

Threshold_Settings.UpdateThreshold = XRFDC_UPDATE_THRESHOLD_0; // Setup values for threshold 0 and 1
Threshold_Settings.ThresholdMode[0] = XRFDC_TRSHD_HYSTERISIS; // Set threshold0 mode to Sticky Under
Threshold_Settings.ThresholdUnderVal[0] = 1000; // Measured in 14-bit unsigned LSBs
Threshold_Settings.ThresholdOverVal[0] = 15995;
Threshold_Settings.ThresholdAvgVal[0] = 10; // Data must be below lower threshold for 10*8 4 GSPS RF-ADC samples


Thanks for the help. 

regards
Nanda

RTL_LED_design_1.PNG
WhatsApp Image 2019-10-25 at 7.01.01 PM.jpeg
0 Kudos
Community Manager
Community Manager
497 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi

Greetings.

As per your SDK code, you choose the hysterisis mode and set the upper level =15999 and lower level =  1000. The threshold signal will be asserted when the upper level is exceed 1599 and desserted while  the signal level is under 1000. As you input the sine wave, so I am not sure if your threshold output is oscillating and the LED cannot reflect this fast on/off variation. Have you monitor the threshold output through a Oscilloscope?

Or your can set the threshold mode to " XRFDC_TRSHD_STICKY_OVER" then the threshold signal will output high as long as the signal level hit the upper level and will not go low ever.

THanks,

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Observer nvenugop
Observer
472 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Greetings...

I tried "XRFDC_TRSHD_STICKY_OVER" instead of hystersis but however, the state of the led didnt change. It continues to remain in off state. Also, you suggested me to check the threshold flag with Oscilloscope. I am finding it difficult to locate the hardware port for the threshold flag in the XM500 RFMC Balun Add-on Card and the ZCU-111 board. Could you kindly help me in locating the same, so that I can connect the oscilloscope.

Thanks for the help again.

Regards
Nanda

 

 

0 Kudos
Participant sarman_1998
Participant
460 Views
Registered: ‎05-16-2018

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @nvenugop,

   You should be able to probe the LED with the scope.  If the signal is changing very fast it can be hard to tell looking at the LED but it should be obvious with the scope.  Also, check the board schematic to see if the LED is on or off when the FPGA output is high.

For general debugging have a look at chapter 10 of UG908: Vivado programming and Debug.

You can use the ILA (logic analyzer core) to capture signals and values in real time, like the outputs of the ADC.  You can also use the VIO(virtual I/O core) to control internal signals in the design and see the current values of signals and when signals are toggling.  Vivado makes using both of these very convinient, there are IP wizards for both that will walk you through setting them up.

Good Luck,

Eric

Community Manager
Community Manager
424 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi Nvenugop,

It is strange. I tested on the ZCU111 just now. It works as expected. Blew is my C code.

After running below code, I input a signal to the board from signal generator and adjust the signal level up. Then I can see the led lights to flag the threshold value reached.

You can have a look on my code and if you need the vivado project please let me know. thanks,

/*ThresholdSetting*****************************************************************************/
XRFdc_Threshold_Settings Threshold_Settings;
Threshold_Settings.UpdateThreshold = XRFDC_UPDATE_THRESHOLD_BOTH;
Threshold_Settings.ThresholdMode[0] = XRFDC_TRSHD_STICKY_OVER;
//Threshold_Settings.ThresholdUnderVal[0] = 164;
Threshold_Settings.ThresholdOverVal[0] = 15999;
//Threshold_Settings.ThresholdAvgVal[0] = 10;

Threshold_Settings.ThresholdMode[1] = XRFDC_TRSHD_STICKY_OVER; //using threshold1 to freeze the calibration
//Threshold_Settings.ThresholdUnderVal[1] = 50;//411;
Threshold_Settings.ThresholdOverVal[1] = 10000;//420;
//Threshold_Settings.ThresholdAvgVal[1] =50; //49152;
for(int Tile=0; Tile<4; Tile++){
for(int Block=0;Block<2;Block++){
XRFdc_SetThresholdSettings(RFdcInstPtr, Tile, Block, &Threshold_Settings);
XRFdc_SetThresholdClrMode(RFdcInstPtr,Tile,Block,XRFDC_UPDATE_THRESHOLD_BOTH, XRFDC_THRESHOLD_CLRMD_MANUAL_CLR);
}
}
XRFdc_Threshold_Settings GETThreshold_Settings;
XRFdc_GetThresholdSettings(RFdcInstPtr, 0, 0, &GETThreshold_Settings);
xil_printf("--------------------------------------------------------------------------------\r\n");
xil_printf("\r\n");
printf("TILE%1d BLOCK%1d : UpdateThreshold = %x\n", 0, 0, GETThreshold_Settings.UpdateThreshold);

printf("TILE%1d BLOCK%1d : ThresholdMode[0] = %x\n", 0, 0, GETThreshold_Settings.ThresholdMode[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdUnderVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdUnderVal[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdOverVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdOverVal[0]);
xil_printf("TILE%1d BLOCK%1d : ThresholdAvgVal[0] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdAvgVal[0]);

printf("TILE%1d BLOCK%1d : ThresholdMode[1] = %x\n", 0, 0, GETThreshold_Settings.ThresholdMode[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdUnderVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdUnderVal[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdOverVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdOverVal[1]);
xil_printf("TILE%1d BLOCK%1d : ThresholdAvgVal[1] = %d\r\n", 0, 0, GETThreshold_Settings.ThresholdAvgVal[1]);

xil_printf("\r\n");
xil_printf("--------------------------------------------------------------------------------\r\n");

for(int Tile=0; Tile<1; Tile++){
for(int Block=0;Block<2;Block++){
XRFdc_ThresholdStickyClear(RFdcInstPtr,Tile,Block,XRFDC_UPDATE_THRESHOLD_BOTH);
}

//The threshold flag will assert if you don't clear it at the first time even input signal level not exceed the upper threshold. So I clear the sticker here.
}

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Observer nvenugop
Observer
400 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Tried using the code you shared. I am feeding a sine wave using a function generator and tried changing the amplitude. However, the Leds doesnt seem to trigger. Could you pls share the vivado project, so that I can check the FPGA design too.?

Thank you 

 

Nanda

0 Kudos
Community Manager
Community Manager
368 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hello Nanda,

I have sent the project through EZMOVE to your company mailbox.

By the way, have you pull out the over_range and over _voltage to the led? Can you see these two signals assert if you input a large signal to the ADC. These two signal should be able to work even without API settings.

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Observer nvenugop
Observer
239 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Greetings.. Thank you so much for the help. we tried adding a bram controller and block memory generator to the design, and finally able to read the state values in the SDK. However, the design doesn't generate any sine waves or any waveform in the DAC - hence, we tried adding a DDS compiler from our previous design. But unfortunately, its getting struck at configuring the clocks. Could you kindly help us in understanding the issue? or if possible can you help us generate a sine wave from DAC which I can loop back to ADC and use the threshold settings in the API to read the state?


Regards
Nanda

0 Kudos
Community Manager
Community Manager
180 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hello @nvenugop 

I will try it on my board and let you know the progress.

By the way,, would you please let me know your exact settings of DDS compiler?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Observer nvenugop
Observer
168 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 


Pls find attached the images of DDS compiler settings.

 

 

Thanks and Regards
Nanda

DDS_1.PNG
DDS_2.PNG
DDS_3.PNG
DDS_4.PNG
DDS_5.PNG
DDS_6.PNG
0 Kudos
Community Manager
Community Manager
105 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hello @nvenugop 

I built a similar project with yours and proved that DDS can work with DAC to output a sine wave.

I sent my project to you through EZMOVE. You need to feed 245.76Mhz on RFPLLC and no other clock need to be configured on board.

after you run it on your ZCU111, you should be able to see the sine wave through an Oscilloscope as below.

Screenshot.jpg

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Observer nvenugop
Observer
92 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi @zhendon 

Appreciate the effort.  However, I guess my query was misread.
We wanted to introduce the DDS compiler to the deisgn, you shared previously (the one with threshold flags enabled).So that when the DAC output is fed to the ADC port, the threshold flag can be high.we already have a design which has a DDS compiler working with DAC. However, in that specific design, the ADC part is not configured. When we enable the ADC, the threshold flags were not getting triggered. 

Regards
Nanda

0 Kudos
Community Manager
Community Manager
70 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

Hi Nanda,

OK. It seems that I had some misunderstanding on your issue. You mentioned you got the stuck on clock configuration. I got misunderstand that you failed to have DAC output Sine wave.

As per your last reply, my understanding is that now you can output Sine wave from DAC but failed to trigger the threshold flag after looping back to the ADC. Am I right?

Thanks,

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos
Observer nvenugop
Observer
49 Views
Registered: ‎02-05-2019

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

@zhendon Yes youre, right.
the MTS design which you shared with threshold settings and LED, works when signal is fed from external signal generator into ADC ports. We are trying to generate the source signal at one of the DAC ports (Sine wave) and loop it back to ADC and see the thresholds triggered.

regards
Nanda

0 Kudos
Community Manager
Community Manager
37 Views
Registered: ‎08-30-2011

回复: Read ADC and Visualise the data using Baremetal

Jump to solution

@nvenugop 

Thanks for the clarification.

It is strange. It should be no difference to have the ADC fed by the signal generator or a DAC output. Which ADC channel and DAC channel you tried on ZCU111 board?

I see your DDS compiler is configured to output a 10Mhz sine wave. Have you check it on oscilloscope?

Thanks,

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 Kudos