commit
1310b7f0f6
@ -1,15 +1,25 @@
|
||||
# stmdsp
|
||||
This is the source code for an STM32-based DSP device. The primary goal of this device is to allow custom C++ algorithms to be applied to signals in real-time.
|
||||
|
||||
The firmware for the device is written in C++, on top of the [ChibiOS](https://www.chibios.org/dokuwiki/doku.php) real-time operating system.
|
||||
The `stmdsp` project enables certain STM32 development boards to be used as a digital signal processing (DSP) education tool.
|
||||
|
||||
**Features:**
|
||||
* Read in a signal from the ADC, and either pass-through or apply a filter to the signal before outputting it over the DAC.
|
||||
* Sampling rates of up to 96kS/s.
|
||||
* Measuring of algorithm performance in processor clock cycles.
|
||||
* Flexible signal generator for providing source signals.
|
||||
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.
|
||||
|
||||
See the wiki for more information about components of the device's software and hardware.
|
||||
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.
|
||||
|
||||
Source code for the device's firmware is in the `source` directory.
|
||||
Source code for the accompanying GUI is in `gui`.
|
||||
## 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
|
||||
|
||||
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.
|
||||
|
||||
At the moment, only the NUCLEO-L476RG board is fully supported.
|
||||
|
||||
## Programming instructions and more information
|
||||
|
||||
See the `doc` folder for further project documentation, including a PDF guide.
|
||||
|
Loading…
Reference in New Issue