Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
R
redpitaya-MCPHA
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Günter Quast
redpitaya-MCPHA
Commits
1a7024ff
Commit
1a7024ff
authored
9 months ago
by
Günter Quast
Browse files
Options
Downloads
Patches
Plain Diff
included redP_mimoCoRB
parent
1f5e0c02
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+37
-22
37 additions, 22 deletions
README.md
with
37 additions
and
22 deletions
README.md
+
37
−
22
View file @
1a7024ff
...
...
@@ -15,7 +15,7 @@ applications running on the board.
Many laboratory instruments like oscilloscopes, logic analyzers, Bode plotters or a multi-channel pulse-height
analyzer can be realized on this board by simply changing the FPGA image and the Linux application.


{width=800px}
The MCPHA application for the RedPitaya by Pavel Demin provides a multi-channel pulse-height analyzer and
consists of an FPGA image and a server process running on the RedPitaya board. A client script controls
...
...
@@ -24,16 +24,20 @@ the server and pulls the data to the client computer.
### Files:
-
*README.md*
this documentation
-
*mchpa.py*
the client program
-
*mcpha.ui*
qt5 graphical user interface for
*mcpha*
application
-
*mcpha_gen.ui*
qt5 tab for generator
-
*mcpha_osc.ui*
qt5 tab for oscilloscope
-
*mcpha_hst.ui*
qt5 tab for histogram display
-
*mcpha_log.ui*
qt5 tab for message display
-
*rePosci.py*
a simple oscilloscope and daq client using the mcpha server
-
*rpControl.ui*
qt5 tab for
*redPosci*
application
-
*mcpha_daq.ui*
qt5 tab for oscilloscope with daq mode
-
*README.md*
this documentation
-
*mchpa.py*
client program
-
*rePosci.py*
a simple oscilloscope and daq client using the mcpha server
-
*rpControl.ui*
qt5 tab for
*redPosci*
application
-
*mcpha_daq.ui*
qt5 tab for oscilloscope with daq mode
-
*redP_mimocorb.py*
runs
*redPoscdaq*
as a client of the buffer manager
*mimoCoRB*
-
*setup.yaml*
coniguration script defining the
*mimoCoRB*
application
-
*run_daq.py*
script to strat the
*mimoCoRB*
application
-
*modules/*
and
*config/*
contain code and configuration files for the
*redP_mimoCoRB*
application
-
*mcpha.ui*
qt5 graphical user interface for
*mcpha*
application
-
*mcpha_gen.ui*
qt5 tab for generator
-
*mcpha_osc.ui*
qt5 tab for oscilloscope
-
*mcpha_hst.ui*
qt5 tab for histogram display
-
*mcpha_log.ui*
qt5 tab for message display
-
RP-image directory with all files necessary to boot a RedPitaya and start the server
application based on the "small, simple and secure" linux distribution
[
alpine-3.18-armv7-20240204
](
https://github.com/pavel-demin/red-pitaya-notes/releases/tag/20240204
)
...
...
@@ -72,20 +76,20 @@ the performance.
An oscilloscope with very basic functionality to set the trigger level and direction is also provided.
The timing is controlled by the so-called decimation factor that can be adjusted using the control
in the upper right corner of the graphical window. The RedPitaya samples data at a constant rate
of 125
MHz, and the decimation factor determines how many samples are averaged over and stored
of 125
MHz, and the decimation factor determines how many samples are averaged over and stored
in the internal ring buffer. This reduces the effective sampling rate accordingly. Only decimation
factors corresponding to powers of two are allowed.
An example of randomly occurring exponential
signal pulses at an average rate of 10 kHz with a fall time of 10
µs is shown below; there is significant
factors corresponding to powers of two are allowed. An example of randomly occurring exponential
signal pulses at an average rate of 10 kHz with a fall time of 10
µs is shown below; there is significant
signal overlap in this case, making pulse-height detection more complex.


{width=800px}
A spectrum of such pulses is shown below for input pulses at multiples of 62.5 mV between 62.5 mV
and 500 mV. The overlap of signal pulses leads to wrong pulse-height assignments below the actual
voltage and to entries above 500 mV when pulses become indistinguishable and therefore add up
to a single detected pulse.


{width=800px}
Note that spectra and waveforms are plotted with a very large number of channels, well exceeding
the resolution of a computer display. It is therefore possible to use the looking-glass button
...
...
@@ -95,13 +99,24 @@ of the *matplotlib*window to mark regions to zoom in for a detailed inspection o
The script
*redPosci.py*
relies on the same server and FPGA image as the pulse-height analyzer.
The
*oscilloscope*
and
*generator*
tabs provide the same functionality as in
*mcpha.py*
.
In addition, however, there is a button "
*Start DAQ*
" to run the data acquisition for the the
oscilloscope independently of the Qt timing loop, i. e. in continuous mode. As soon as data is
received by the client, the oscilloscope is restarted. A dummy routine
*processData()*
ist provided as an illustration; right now, it shows a graphical display once
per second and calculates and displays the trigger and data rates.
In addition, however, there is a button "
*Start DAQ*
" to run the oscilloscope in data acquisition
mode, i.e. continuously. A subset of the data is shown in the oscilloscope display,together with
information on the trigger rate and the transferred data volume. A configurable user-defined function
may also be called to analyse and store the recorded waveforms.
It is possible to transfer data over a one-Gbit network from the RedPitaya with a rate of 50 MB/s
or about 500 waveforms/s.
Two examples of call-back functions callable by redPoscdaq are provided with the package
-
redP_consumer()
calculates and displays statistics on trigger rate and data volume
-
redP_mimocorb()
provides an interface to the buffer manager
*mimiCoRB*
for more advanced data analysis tasks
requiring multiple processes running in parallel. A simple
*mimoCoRB*
setup is also provided
and can be started by
*./run_daq setup.yaml*
; modules and configuration files for a pulse-height
analysis of signals are contained in the subdirectories
*modules/*
and
*config/*
, respectively.
It is possible to transfer data over a 1Gbit network with a rate of 50 MB/s or about 500 waveforms/s.
## Installation
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment