09-18-2018 05:43 AM
I am looking for a board/chip, that is able to so some things. But I am not so sure, if I will choose the right board so maybe someone has some experiences to say if I am right or not.
The requirement is that it is possible to send continously via Ethernet analog to digital converted signals (2 channels with minimum 160kHz) (convertion internal or external doesn't matter).
I thought about the Zybo Z7-20. Is it possible to do it here? Or did I forgot to look at any information?
Hoping for some help!
Greetings from the HelplessGuy
09-18-2018 06:03 AM
"the right board" is ambiguous as it is "to do some things", I'm afraid.
If you want to stream data over ethernet at 160 ksps x 2 channels, assuming 4 bytes/ sample that is 1.28 MB/s or 12.8 Mb/s, you can easily do that over 10/100 Ethernet.
To be honest, taking data and sending ethernet packets is something you can achieve with a processor board, Raspberry Pi, etc. If you are here, I assume you need/ like to do some extra stuff in programmable hardware.
you have two main options:
1 - Go for a Zynq board, that already has a dual-core ARM processor. I think that's a bit easier as you won't have to develop it yourself.
2 - Go for a pure FPGA (Spartan, Artix, etc.) if you want to make your own processor (Microblaze). It will take you longer, but you will learn more. You can also configure more things. Keep in mind with a Zynq you can always ignore the PS and put a Microblaze on the PL.
Once you have tossed your coin about that, look for a board with a 10/100 Ethernet port.
Yes, the Zybo Z7-20 has a 10/100/1000 Ethernet and is more than enough for that. I used the MYIR Z-turn, which is similar and cheaper.
09-18-2018 06:19 AM - edited 09-19-2018 06:53 AM
As @johnvivm has said, you don't really need an FPGA for this unless there are other FPGA-specific requirements. Even one of the cheap ST Nucleo development kits (quite a few have Ethernet) would do the job nicely - and the microcontrollers used there all have loads of fast ADC inputs and GPIO.
If you do need the programmable logic for something, Zybo is a good option - although if you're a student then the Pynq-Z1 offers some amazing discounts that make it very worthwhile.
09-18-2018 06:22 AM - edited 09-18-2018 06:30 AM
Yeah I will probably need the programmable hardware to do some transformations in real time.
I am having one more question about the XADC, because I didn't find something about this in the datasheet. Do you know how long the maximum fluctuation of the sampling rate is? Is it a lot changing, or can I really make the fluctuation going to zero in the case, that I am using one kernel only for the AD-conversation?
09-18-2018 06:39 AM
I haven't used the XADC that much but my educated guess is for a 1 Msps ADC any jitter below 1 ns is negligible, if you have concerns about noise.
I'm also guessing the jitter will depend not on the XADC itself but on your clock source, if external and you need very low jitter then you'll need such a good clock generator.
In case you are using a PLL/ Clock manager IP then you will have to look for that figure in its documentation, not the XADC.
But again, I don't think any jitter in the ps is going to be a trouble at 1 us sampling time...
09-19-2018 07:00 AM
With the XADC, you've got two things that can vary your sampling frequency. One is the XADC being used by different channels, the other is jitter in the input clock itself. Using a single input to the ADC should resolve the first one, as it then has no need to select channels. Jitter in the input clock probably can't be resolved easily, but it's probably also far smaller than you care about. Even if you've got 10ns jitter, 10ns is 1/625 of your sampling rate - it's unlikely to be noticeable.