• 0
Sam Bergami

Zedboard Zynq 7000 XADC Header

Question

Is there a way to just input a voltage and read it through the terminal using the XADC Header on the Zynq 7000 Zedboard? If so can this be done using the VP VN pins?

Edited by Sam Bergami

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

Hi @Sam Bergami,

I did not see vp/vn in the xdc but vp is on pin L11 and vn in on M12 as shown on the schematic page 8 and page 2 here. Unfortunately i have not worked with the xadc on the zedboard. I have attached the project I have been trying to get to work based on the lab 3 I linked from your other forum thread. I will try to get this working tomorrow and will reach out to my co-workers to see if they have any other input. Also another place you could reach out for assistance for the zedboard is here

cheers,

Jon 

zedboard_xadc.zip

Share this post


Link to post
Share on other sites
  • 0

Hi @Sam Bergami,

I am still working on this issue and am currently unable to get any value change from external voltage on the XADC for Vaux0 and Vaux8. I have reached out to more experienced engineers for some input on this issue. While I are working through this issue I also wanted to ask if you had also reached out to Zedboard.org (here). They may have had a similar question and have a potential solution for you.  

thank you,

Jon

Share this post


Link to post
Share on other sites
  • 0

Hi @Sam Bergami,

I was able to get a voltage on Vaux8 using the project attached below. The thing I was initially missing was that the xadc header position is oriented differently than I thought which caused some issues. If you look above the xadc header on the right you will see a 1. This is where Vn is. If you look at the xdac header with 1 at the top left the the schematic here will reflect where the pins are. These pins are deferentially paired and you will get the difference between Vaux8p and Vaux8n. I had agnd and Vref connected to ground and i gave Vaux8p 500mV and Vaux8n 50mV and i got roughly 450mV shown in tera term for Vaux8. I believe this header was made to work with the xilinx daughter board here.

 

zedboard_xadc.zip

Share this post


Link to post
Share on other sites
  • 0

Thank you @jpeyron

Can you be more specific with the pins. We tried making the connections that you suggested above and received readings of 0 volts for all. We think this is because we aren't connected to the proper pins. Below we are attaching a picture of our xadc header pin connections.

Blue - Connected to Ground (AGND)

Yellow - Connected to Ground (AGND)

Green - Connected to Voltage : 0.5V (Vaux8N)

White - Connected to Voltage : 0.7V (Vaux8P)

Grey - Connected to Ground (AGND)

Black - Connected to Ground (Vref)

IMG_4862(1).JPG

Share this post


Link to post
Share on other sites
  • 0

Hi @Sam Bergami,

In your picture you have them attached incorrectly. They are connected to the following pins on the XADC Header: 

blue - Vaux0n,

yellow - Vaux8n,

green - DXP

white -AGND

grey - DXN 

Black - 5v0

On the screen shots I have attached and added the number 1 to reflect what is on the board and the orientation of the IC . I also attached a picture of the orientation you should be looking at the board to match the attached screen shots. Sorry the projects are the same. I did not see the project attached on my first post so I re-attached it. 

 

zedboard_xadc_1.jpg

zedboard_xadc.jpg

20170627_125405.zip

Share this post


Link to post
Share on other sites
  • 0

@jpeyron

We got it to work! We were off by one pin for each.

I'm attaching a picture of our terminal readings. We are inputting about 0.75 volts into Vaux8P and about 0.50 volts into vaux8n. We are unsure as to why the voltage jumps every other reading. Any ideas?

Thanks so much for your help!

XADCVoltages.png

Edited by Sam Bergami

Share this post


Link to post
Share on other sites
  • 0

Hello! I see you got it working @Sam Bergami and I would like to know if you only needed to connect the pins you mentioned here. What about the analog 1.8V supply? (VCCADC, which is pin number 14)

Also, I thought the pin number 11 (Vref) was an output pin that provided a reference of 1.25V from the board, so you're not supposed to connect it to GND or am I wrong?

Thanks in advance!

Share this post


Link to post
Share on other sites
  • 0

Hi @gutielo

The connections in my above picture are actually incorrect. But you want to connect two different Voltages to the Vaux8 pins. I used 0.75V for Vaux8P and 0.50V for Vaux8N. Then I connected the three AGNDs and Vref to ground. If you used the two diagrams above that jpeyron posted you can see the correct order of the pins. When looking at the Zedboard head on, the top right pin on the xadc header is Vn. As far as Vref goes I'm not sure. I haven't tried running the program without connecting Vref to ground, so I'm not sure how it will work out.

Perhaps @jpeyron can answer your Vref question?

 

Share this post


Link to post
Share on other sites
  • 0

Thanks for the heads up about the incorrect picture, @Sam Bergami

As soon as I can, I'll try to run some tests and I'll let you know if Vref can be left unconnected. But as you say, if @jpeyron can enlighten us, I'd appreciate that!

So you're not feeding it with 1.8V? That's something I'm surprised at. :o

Share this post


Link to post
Share on other sites
  • 0

Hi @gutielo and @Sam Bergami,

Looking at table 17 on page 26 of the reference manual here Vref is the 1.25V reference from the board So you do not need this Pin. When I was running the project I ended up only using one of the agnd and the Vaux8p and Vaux8n.

cheers,

Jon 

Share this post


Link to post
Share on other sites
  • 0

I'll try using only one of the AGND and VAUX8(P/N) then, and see if I can get it working, that should be good to start! Thanks for your help.

I have one last question, what frequency is the clock you're feeding the XADC with? I'm using the one provided by Xillybus (100 MHz), but I've read it shouldn't be higher than 26 MHz (I don't really think this is true, but just to make sure...)

Share this post


Link to post
Share on other sites
  • 0
On 6/28/2017 at 8:46 AM, Sam Bergami said:

@jpeyron

We got it to work! We were off by one pin for each.

I'm attaching a picture of our terminal readings. We are inputting about 0.75 volts into Vaux8P and about 0.50 volts into vaux8n. We are unsure as to why the voltage jumps every other reading. Any ideas?

Thanks so much for your help!

XADCVoltages.png

@jpeyron Any ideas as to why this is happening in my terminal?

Share this post


Link to post
Share on other sites
  • 1

Hi @Sam Bergami,

I am not sure why your voltage is jumping. Have you checked your voltage source? also remember that the xadx averaging is set at 16.  I just went through the project again and my voltage is not changing. I have attached screen shots. and a picture of my wiring. I have attached the three grounds as well as Vaux8p and Vaux8n.

 

20170705_160436.zip

zedboard_xadc_2.jpg

zedboard_xadc_3.jpg

Share this post


Link to post
Share on other sites
  • 0

Hi @gutielo,

Looking at the reference manual for the xadc here. On page 29 it discusses that the xadc's max conversion rate is 1 MSPS which implies the max ADCCLK frequency is 26 MHZ. I have attached a screen shot of the xadc wizard with the project I have set up.  The axi clock is running at 100 MHz but the IP core is only sampling at 1 MSPS. You can look at my working project above in Vivado 2016.4.

cheers,

Jon

zedboard_xadc_4.jpg

Share this post


Link to post
Share on other sites
  • 0

@jpeyron our issue must have stemmed from our voltage source. After switching to Waveforms like you suggested above, the readings in the terminal no longer jump randomly. They are now consistent and accurate with the difference between our input voltages.

Thanks so much for your help!

Share this post


Link to post
Share on other sites
  • 0

Sorry for bothering you again guys, but I haven't been able to make it work. I'll try to explain what I've done so far and I'd really appreciate if any of you could shed some light on the problem. This is what my project looks like:

conexiones.png.a28862c7072ca938cfbf041bb8a277c0.png

I have run separate tests on the XADC and Xillybus, meaning that I created a testbench for the XADC which worked correctly and I also used the loopback fifo (width: 8 bits) that comes installed by default with Xillybus. So I put it all together and created a new Xillybus using their website to include 2 new fifos (one of them I won't be using it but it was required to create 2) that were 16 bits wide. I use the drdy signal from XADC as wr_en for the fifo and the output from the XADC is the data_in of the FIFO.

I am writing the output of the fifo using the streamread C program included with Xillybus that let me read from the FIFOs. I edited it so it could write to a file so I'm saving all the data in binary mode then I open it using a hex editor. As long as it's running, the file being written increases its size but it's full of 0s, as if the XADC wasn't converting at all.

I'm not sure if you're familiar with Xillybus, if you are you might point out what I am doing wrong? If you're not, I'd appreciate it if you told me how to get some test readings from XADC as the one you @jpeyron or @Sam Bergami showed in your screenshots. What program are you running? The one that outputs the temperature and the Vaux8 voltage.

I tried running @jpeyron .bit (included in the zip you uploaded) but I wasn't successful on getting it working. I got a few erros when I opened it in Vivado and couldn't properly load the .bit file in the Zedboard.

Thank you!

Edited by gutielo

Share this post


Link to post
Share on other sites
  • 0

Hi @gutielo,

For my project and the screen shots I followed(for the most part) the lab 3 here with Vivado/SDK 2016.4. The progam that showed the data was tera term.  Unfortunately I do not have any experience with Xillybus. Hopefully others in the forum will have some input for you. 

Share this post


Link to post
Share on other sites
  • 0

Thank you @jpeyron

I followed that tutorial and I got it working, meaning I must be doing something wrong when using XADC+Xillybus. I'll make a thread so more people can see it and maybe they can help me. Thank you again!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now