Jump to content
  • 0

Analog Discovery 3 & Raspberry Pi & Python


matde

Question

Hello,

I want to use two AD3 in sync mode with an RPI4 as hardware configuration and WF SDK for programming the test and measurement sequences in Python. Here are the main requirements:

- 4 channels with sampling rates ranging from 1 MS/s up to 5 MS/s per channel.
- Triggering with 1 MS/s up to 5 MS/s sampling rate simultaneously for all channels.
- Measuring and transferring data for all channels to RPI4 for each trigger event. Can I therefore use the complete buffer for each channel (32.768 samples)?
- Data acquisition procedure programmable in Python (trigger, measurement, data transfer).
- Additionally: Signal generation (sine, sine sweep) up to 50 kHz with one channel and analog signal measurement with 3 channels simultaneously.

Is that possible with AD3 and WF SDK? Where can I find an overview for Python commands for AD3?

Thanks and best regards!

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Hi @matde

With AD3 you can capture up to 32k samples /channel at up to 125MHz.
The triggering can be synchronized, but the at lower frequencies than the maximum expect jitter between captures since the sampling can't be synchronized.
With my computer 64k sample capture rate for 1 device is about 200/s and with 2 devices 100/s. With RPi4 expect significantly lower performance.

The manual and examples can be found in the WaveForms installation.

image.png

See the following post for a device synchronization example:

 

Link to comment
Share on other sites

  • 0
Posted (edited)

Ok, so your advice is to always use the max. sampling rate to avoid jitter? But this drops also the capture rate, right? But everything is possible with python?

Edited by matde
Link to comment
Share on other sites

  • 0

Hi @matde

Yes, if you want to avoid jitter. At lower rate device one may sample 0us, 1us.... and the other one at 0.99us, 1.99us...
High sampling rate (and less samples) provide higher capture rate. At lower sample rate the capture will take longer (if it takes more than 0.125-1ms) lowering the capture rate.
Yes, it is possible, although it would be easier with a 4 channel device like ADP3450

Link to comment
Share on other sites

  • 0
Posted (edited)

Hi attila,

I understand - with the ADP3450 it would be a lot easier. With this device, I can trigger also with all channels simultaneously at lower sample rates (e.g. 5 MS/s) without jitter problem? Can I also define the amount of samples in python with number of samples after and before the trigger event? Can I let the trigger condition run indefinitely (e.g. over days and weeks) and with each trigger event the data is saved accordingly?

Edited by matde
Link to comment
Share on other sites

  • 0

Hi @matde

3x yes
The ADP3450 has embedded Linux mode for standalone operation. So you could develop custom script/application on the computer, where it is easier to debug, then port and run it on the device.

Link to comment
Share on other sites

  • 0

Hi @matde

Yes, you can configure arbitrary (custom) waveform as carrier and AM/SUM and FM/PM
With AD3 up to 32k samples for signal/carrier and ADP3X50 64k samples or 64M device buffered in play mode.
The custom mode is intended for waveforms. Frequency is give for the entire waveform. It uses device BRAM and as carrier support FM/PM even negative increment/jump.
The play mode is intended for slower data streaming, so this can't go reverse. For ADP3000 play is buffered in device DDR-RAM up to 64M samples, so it can run at up to 125Ms/s. The play can also be used as AM/SUM and FM/PM.

image.png

 

image.png

image.png

 

Link to comment
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
×
×
  • Create New...