Hello, I'm a beginner with AD-9361 and NO-OS, so i have some problem. First, I did read all problem in this area but I still don't understand how to create and how to transmit data. I have a module AD-FMCOMMS2 and Zedboard. I see another people ask the same thing like me, Dragos answer that go to config.h and uncoment to DDS generate data but i don't know what is DDS (Sorry!!). So if anybody who understand exactly about how to push or create data, and how to config, please help me step by step, thank you!
Did you go over the no-os example ? DDS is direct digital synthesis. Did you read all of :AD-FMCOMMS2-EBZ User Guide [Analog Devices Wiki] ?
What have you tried thus far and where did you get stuck ?
First thing that can be done is to run the pre-built example (it was created using the source files from the GitHub - only enabling XILINX_PLATFORM and CAPTURE_SCRIPT in config.h): no-OS/ad9361/scripts/zed at master · analogdevicesinc/no-OS · GitHub - just run capture.bat. The software initializes the AD9361 part, configures the DDS and captures some data. Captured data will be transferred to PC and stored into a file called rx.csv.
The captured data looks good (please note that it's in two's complement format).
Now you can build the project yourself, you can change the DAC source from DDS to DMA (define DAC_DMA), send your own data by replacing the original data (no-OS/dac_core.c at master · analogdevicesinc/no-OS · GitHub).
Thank you, I have already read the instruction in :AD-FMCOMMS2-EBZ User Guide [Analog Devices Wiki] . The section No-OS Setup and No-OS Application Programming Interface, I did create the project in SDK and typed commands in UART to configure AD9361, but I don't know how to push data to transfer and how to read DMA to verify whether the receive data true or fall. If ADI has some examples I think it will easy for approaching, so can you show me some example how to write, transfer and read data from AD9361 , thank you!
Thank you, I have finished this step, this is result ! Could you show me next step, thank you!
My suggestion is to do all those steps sequentially (do a test after each one). Use the .tcl script for transferring the captured data to PC.
Thank you for helping me. I added #define DAC_DMA in main.c in project sw in SDK. I thought it ran but i couldn't verify it. I thought if i defined CAPTURE_SCRIPT then adc will write the captured data to specified memory start at address ADC_DDR_BASEADDR so after define DAC_DMA and define CAPTURE_SCRIPT i create 1 while(1) to read continuously data from memory start at ADC_DDR_BASEADDR, but my data is wrong. In addition, i changed sinelut into a array sinelut include 10 elements 32 bits and all is 0x000 to check, but i fail, please explain this problem for me, if i misunderstand, please show me my wrong. I also included my code and result. I tried other ways to verify but all are fail, too. Could you help me, thank you
Sorry, i misunderstand some points, first, I think after #define DAC_DMA, data in sinelut will write to memory which start at DAC_DDR_BASEADDR. after #define CAPTURE_SCRIPT, adc will capture data and save in memory which start at ADC_DDR_BASEDDR, i tried to print some data which relate to adc or dac but all are fail!
Thank you, I used batch file to run and it create a rx.csv, but i don't know if I create my project with my data in SDK, then i run it, then i run batch file in order to capture data to PC, i wonder is this true sequential steps? if not, please show me how to capture my custom data exactly!
My recommendation was to do small changes in order to quickly identify your mistakes. Otherwise, it's hard to help.Build the project first without modifying it (only enable XILINX_PLATFORM and CAPTURE_SCRIPT in config.h) and program the board using the same script, but with your newly generated files. If everything is fine, go further.