Get data from AD (parallel), is possible?
9 views (last 30 days)
Show older comments
Jonis Maurin Ceará
on 14 Nov 2019
Answered: arash arash
on 4 Mar 2020
Hi. I'm new to matlab. I'm a hobbyst, not a company or anything like this. I brought MATLAB personal with some modules and I'll use to learn FPGA with ZedBoard + AD9361. I know that this board (both) are supported by simulink and I'll test/learn using simulink and block-design. My plan is to make an FM transmitter (for start) when my boards arrive (already brought, still waiting delivery). After that, my plan is to make an receiver and then, do the same receiver, but using another frontend (including ADC). So my question is: imagine that I have plugged in another ADC into my ZedBoard (let's say AD9226), is possible to read this ADC in simulink, like AD9361 does? If yes, how? Where can I find any article or tutorial about this?
Even further: if I want to generate HDL code in the future (using HDL Coder), how can I integrate this 'custom' AD for code generation?
PS: I know that I can't buy HDL Coder for personal. My plan is to use trial for testing, since I'm using just for learning.
Thank you.
0 Comments
Accepted Answer
Noam Levine
on 14 Nov 2019
Edited: Noam Levine
on 14 Nov 2019
Jonis - To start, the Communications Toolbox™ Support Package for Xilinx® Zynq®-Based Radio supports the ZedBoard+AD-FMComms2/3/4 hardware combination for both Radio I/O and Targeting. We have a streaming FM Receiver example that can likely be adapted to that platform (try replacing the ADALM-PLUTO receive System object with the AD936x receiver).
To use other converters with ZedBoard, there are several parts to the equation - the HDL for the Zynq programmable logic to physically build the connection between the devices, the Linux drivers running on the Zynq processing system to control the converter, and a Vivado reference design to tell HDL Coder what the hardware looks like. Is the converter you want to use available on a standard FMC, or PMOD card for evaluation?
Analog Devices has built a library of HDL refernce designs for Xilinx devices available on their Wiki. Also on their Wiki are a variety of Linux drivers for many of their products. If they don't have interface, or driver code, for the partiuclar device you want to use, their Engineer Zone community (either the FPGA Reference Design, or Linux Software Driver forums) should be able to generate a solution. Information on how to build a custom reference design for HDL Coder can be found in the MathWorks examples.
MATLAB and Simulink support for other ADI converters can also be found in their High Speed Converter Toolbox.
More Answers (2)
Noam Levine
on 15 Nov 2019
With the Zedboard (and likely other Zynq-based systems), the converter may be connected to pins tied to programmable logic (PL), but the host interface is typically connected through the processing system (PS) on Zynq, through an Ethernet link to the PC, so something needs to manage the data flow to the host, and the data flow over the AXI interface in the Zynq between the PL and PS. That something is typically Linux, and if you plan to use MATLAB and Simulink to generate code for the Zynq, eventually, the IP core generation workflow assumes that there is a Linux OS running on the PS. Even for just data I/O into MATLAB and Simulink, our hardware support packages use a Linux libIIO framework to manage hardware-to-host communications. Check-out the Analog Devices Wiki for an good intorduction to libIIO.
If there's no PMOD board, or FMC card for the ADC you want to use, how do you plan to connect it to the ZedBoard, or are you planning to build your own board? Do you have already have an HDL design from which you can generate a bitstream for the Zynq to configure it to talk to the ADC (generate the right clocks, ensure it meets timing, etc)?
See Also
Categories
Find more on Analog Devices ADALM1000 Support from Data Acquisition Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!