|
|
|
@ -1,25 +1,26 @@
|
|
|
|
|
# stmdsp
|
|
|
|
|
|
|
|
|
|
The `stmdsp` project enables certain STM32 development boards to be used as a digital signal processing (DSP) education tool.
|
|
|
|
|
The *stmdsp* project enables certain [NUCLEO development boards](https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html) to be used as an educational tool for digital signal processing (DSP). The solution is portable, and can be used without any external tools or lab equipment.
|
|
|
|
|
|
|
|
|
|
The project consists of two parts: the firmware, which allows users to upload custom DSP algorithms to process signals in real-time; and the GUI currently named [stmdspgui](https://code.bitgloo.com/clyne/stmdspgui), which facilitates algorithm design, upload, and execution, while also providing numerous analysis features.
|
|
|
|
|
|
|
|
|
|
The firmware for the device is written in C++, building on top of the [ChibiOS](https://www.chibios.org/dokuwiki/doku.php) real-time operating system.
|
|
|
|
|
The project consists of three parts:
|
|
|
|
|
1. Firmware that allows users to upload custom DSP algorithms to process signals in real-time.
|
|
|
|
|
2. A [custom add-on board](https://code.bitgloo.com/clyne/stmdsp/wiki/DSP-add-on-board) which provides the necessary circuitry for interfacing with signals and the host computer.
|
|
|
|
|
3. [Computer software](https://code.bitgloo.com/clyne/stmdspgui) that facilitates algorithm design and execution while also providing numerous analysis features.
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
* Real-time signal processing: the input channel is read from the ADC, and the processed output is sent out over the DAC.
|
|
|
|
|
* Signal sampling rates from 8kS/s up to 96kS/s.
|
|
|
|
|
* Custom algorithms, uploaded over USB at run-time, can be applied to the input signal.
|
|
|
|
|
* The second DAC channel can act as a signal generator, should no other input be available.
|
|
|
|
|
* Analysis features, including measuring algorithm execution time and logging input and output samples.
|
|
|
|
|
|
|
|
|
|
## Supported development boards
|
|
|
|
|
* Real-time signal processing: signal readings from the ADC are streamed through the loaded algorithm binary and out the DAC.
|
|
|
|
|
* Custom algorithms are uploaded to the hardware at run-time, enabling a fast design and test process.
|
|
|
|
|
* Supports signal sampling rates from 8kS/s up to 96kS/s, with buffer size of up to 4,096 samples.
|
|
|
|
|
* Supports signals between -3.3V and +3.3V, with adequate protection for the development board.
|
|
|
|
|
* Two parameter knobs allow for algorithm adjustments while the algorithm is running.
|
|
|
|
|
* An on-board signal generator eliminates the need for inputs from external hardware.
|
|
|
|
|
* Numerous analysis features, including signal visualization and algorithm execution time measurement, eliminate the need of other equipment such as oscilloscopes.
|
|
|
|
|
|
|
|
|
|
This project is aided by a custom add-on board, which is designed to stack on top of STMicroelectronic's NUCLEO line of dev boards.
|
|
|
|
|
## Learn more
|
|
|
|
|
|
|
|
|
|
At the moment, only the NUCLEO-L476RG board is fully supported.
|
|
|
|
|
See the [project's wiki](https://code.bitgloo.com/clyne/stmdsp/wiki/Home) for more details. The `doc` folder also contains add-on board schematics and a work-in-progress PDF guide (which may later be abandoned in favor of the wiki).
|
|
|
|
|
|
|
|
|
|
## Programming instructions and more information
|
|
|
|
|
### Licensing
|
|
|
|
|
|
|
|
|
|
See the `doc` folder for further project documentation, including a PDF guide.
|
|
|
|
|
The *stmdsp*, *stmdspgui*, and ChibiOS projects are all licensed under version three of the GNU General Public License.
|
|
|
|
|