README: document lockin, cleanup instructions, use probe-run
This commit is contained in:
parent
74b52c6420
commit
ed2c048fdd
37
README.md
37
README.md
@ -10,10 +10,10 @@
|
||||
|
||||
## Applications
|
||||
|
||||
The Stabilizer firmware offeres a library of hardware and software functionality
|
||||
exposing input/output, timing, and digital signal processing features.
|
||||
An application can compose and configure these hardware and software components
|
||||
to implement different use cases. Several applications are provides by default
|
||||
This firmware offers a library of hardware and software functionality targeting the use of the Stabilizer hardware in various digital signal processing applications commonly occurring in Quantum Technology applications.
|
||||
It provides abstractions over the fast analog inputs and outputs, time stamping, Pounder DDS interfaces and a collection of tailored and optimized digital signal processing algorithms (IIR, FIR, Lockin, PLL, reciprocal PLL, Unwrapper, Lowpass, Cosine-Sine, Atan2).
|
||||
An application can compose and configure these hardware and software components to implement different use cases.
|
||||
Several applications are provides by default:
|
||||
|
||||
### Dual-IIR
|
||||
|
||||
@ -31,28 +31,34 @@ to implement different use cases. Several applications are provides by default
|
||||
|
||||
### Lockin
|
||||
|
||||
* Up to 800 kHz sampling
|
||||
* Up to 400 kHz modulation frequency
|
||||
* Reciprocal PLL for external reference
|
||||
* Internal reference
|
||||
* Adjustable PLL and locking time constants
|
||||
* Adjustable phase offset and harmonic index
|
||||
* Different output modes (in-phase, quadrature, magnitude, log2 power, phase, frequency)
|
||||
|
||||
## Minimal bootstrapping documentation
|
||||
|
||||
* Clone or download this
|
||||
* Get [rustup](https://rustup.rs/)
|
||||
* `rustup target add thumbv7em-none-eabihf`
|
||||
* `cargo build --release`
|
||||
* Minimum supported Rust version (MSRV) is 1.51.0
|
||||
* Minimum supported Rust version (MSRV) is 1.52.0
|
||||
* Install target support: `rustup target add thumbv7em-none-eabihf`
|
||||
* Install `probe-run`: `cargo install probe-run`
|
||||
* `cargo run --release --bin dual-iir`
|
||||
* When using debug (non `--release`) mode, increase the sample interval significantly.
|
||||
The added error checking code and missing optimizations may lead to the code
|
||||
missing deadlines and panicing.
|
||||
|
||||
### Using probe-run
|
||||
## Alternative flashing tools
|
||||
|
||||
* Install `probe-run`: `cargo install probe-run`
|
||||
* Run it: `probe-run --chip STM32H743ZITx target/thumbv7em-none-eabihf/release/dual-iir`
|
||||
|
||||
### Using Cargo-embed
|
||||
### Cargo-embed
|
||||
|
||||
* Install `cargo-embed`: `cargo install cargo-embed`
|
||||
* Program the device: `cargo embed --bin dual-iir --release`
|
||||
|
||||
### Using GDB/OpenOCD
|
||||
### GDB/OpenOCD
|
||||
|
||||
* Get a recent openocd, a JTAG adapter ("st-link" or some clone) and
|
||||
everything connected and permissions setup. Most
|
||||
@ -62,7 +68,7 @@ to implement different use cases. Several applications are provides by default
|
||||
* `openocd -f stabilizer.cfg` and leave it running
|
||||
* `cargo run --release`
|
||||
|
||||
### Using USB-DFU
|
||||
### USB-DFU
|
||||
|
||||
* Get [cargo-binutils](https://github.com/rust-embedded/cargo-binutils/)
|
||||
* `cargo objcopy --release --bin dual-iir -- -O binary dual-iir.bin` or `arm-none-eabi-objcopy -O binary target/thumbv7em-none-eabihf/release/dual-iir dual-iir.bin`
|
||||
@ -71,7 +77,7 @@ to implement different use cases. Several applications are provides by default
|
||||
* Short JC2/BOOT
|
||||
* `dfu-util -a 0 -s 0x08000000:leave -D dual-iir.bin`
|
||||
|
||||
### Using ST-Link virtual mass storage
|
||||
### ST-Link virtual mass storage
|
||||
|
||||
* Prepare `dual-iir.bin` like above
|
||||
* Connect the ST-Link debugger
|
||||
@ -82,3 +88,4 @@ to implement different use cases. Several applications are provides by default
|
||||
Stabilizer can be configured via MQTT. Refer to
|
||||
[`miniconf`](https://github.com/quartiq/miniconf) for more information about topics.
|
||||
A basic command line interface is available in [`miniconf.py`](miniconf.py).
|
||||
Telemetry is published via MQTT as well.
|
||||
|
Loading…
Reference in New Issue
Block a user