Hi everyone,
First I want to write about 1MB data to DDR by PS over continuous address(0x40800000 to 0x408fffff),
then i want to read the data out and send to DAC,
is there any simple way to do this?
Include set the start address and end address to DDR for data read out。
I appreciate any help,
thanks a lot!
AdamS
Read data from DDR and send to DAC
-
- Posts: 15
- Joined: Mon May 04, 2020 4:46 pm
Re: Read data from DDR and send to DAC
Hello AdamS,
I did a similar project for someone in my lab. Here is the project on github : https://github.com/alex123go/RedPitaya_ ... mGenerator
Note : It's still in development, so please tell me if you see any bug.
It consist of a python script (or matlab) to create a binary waveform and a GUI to push the waveform into the Red Pitaya's internal DDR3.
Unlike your original post, data are written in the address range from 0x1E00_0000 to 0x1FFF_FFFF, which is mapped to the DDR.
With 2 bytes per points (14 bits round up to 16 bits), it can therefore play up to 16Msamples total. If dual channel is needed, please tell me: it would be 8 MSample per channel.
HOWEVER, the current version only allows to play up to 8'388'608 bytes (4'194'304 points). It's limited by the DataMover block in the FPGA, whose task is to read the DDR3 and stream it to the DAC. Tell me if you need to more points than that, it's easy to change with a simple state machine managing the commands sent to the DataMover block.
From the GUI, you can send a single pulse to play the waveform once or tie the tvalid line to '1' to play the waveform continuously.
Hope it helps you.
Alex
I did a similar project for someone in my lab. Here is the project on github : https://github.com/alex123go/RedPitaya_ ... mGenerator
Note : It's still in development, so please tell me if you see any bug.
It consist of a python script (or matlab) to create a binary waveform and a GUI to push the waveform into the Red Pitaya's internal DDR3.
Unlike your original post, data are written in the address range from 0x1E00_0000 to 0x1FFF_FFFF, which is mapped to the DDR.
With 2 bytes per points (14 bits round up to 16 bits), it can therefore play up to 16Msamples total. If dual channel is needed, please tell me: it would be 8 MSample per channel.
HOWEVER, the current version only allows to play up to 8'388'608 bytes (4'194'304 points). It's limited by the DataMover block in the FPGA, whose task is to read the DDR3 and stream it to the DAC. Tell me if you need to more points than that, it's easy to change with a simple state machine managing the commands sent to the DataMover block.
From the GUI, you can send a single pulse to play the waveform once or tie the tvalid line to '1' to play the waveform continuously.
Hope it helps you.
Alex
jadalnie klasyczne ekskluzywne meble wypoczynkowe do salonu ekskluzywne meble tapicerowane ekskluzywne meble do sypialni ekskluzywne meble włoskie
Who is online
Users browsing this forum: No registered users and 10 guests