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
|
## Applications
|
||||||
|
|
||||||
The Stabilizer firmware offeres a library of hardware and software functionality
|
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.
|
||||||
exposing input/output, timing, and digital signal processing features.
|
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
|
An application can compose and configure these hardware and software components to implement different use cases.
|
||||||
to implement different use cases. Several applications are provides by default
|
Several applications are provides by default:
|
||||||
|
|
||||||
### Dual-IIR
|
### Dual-IIR
|
||||||
|
|
||||||
@ -31,28 +31,34 @@ to implement different use cases. Several applications are provides by default
|
|||||||
|
|
||||||
### Lockin
|
### 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
|
## Minimal bootstrapping documentation
|
||||||
|
|
||||||
* Clone or download this
|
* Clone or download this
|
||||||
* Get [rustup](https://rustup.rs/)
|
* Get [rustup](https://rustup.rs/)
|
||||||
* `rustup target add thumbv7em-none-eabihf`
|
* Minimum supported Rust version (MSRV) is 1.52.0
|
||||||
* `cargo build --release`
|
* Install target support: `rustup target add thumbv7em-none-eabihf`
|
||||||
* Minimum supported Rust version (MSRV) is 1.51.0
|
* Install `probe-run`: `cargo install probe-run`
|
||||||
|
* `cargo run --release --bin dual-iir`
|
||||||
* When using debug (non `--release`) mode, increase the sample interval significantly.
|
* When using debug (non `--release`) mode, increase the sample interval significantly.
|
||||||
The added error checking code and missing optimizations may lead to the code
|
The added error checking code and missing optimizations may lead to the code
|
||||||
missing deadlines and panicing.
|
missing deadlines and panicing.
|
||||||
|
|
||||||
### Using probe-run
|
## Alternative flashing tools
|
||||||
|
|
||||||
* Install `probe-run`: `cargo install probe-run`
|
### Cargo-embed
|
||||||
* Run it: `probe-run --chip STM32H743ZITx target/thumbv7em-none-eabihf/release/dual-iir`
|
|
||||||
|
|
||||||
### Using Cargo-embed
|
|
||||||
|
|
||||||
* Install `cargo-embed`: `cargo install cargo-embed`
|
* Install `cargo-embed`: `cargo install cargo-embed`
|
||||||
* Program the device: `cargo embed --bin dual-iir --release`
|
* 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
|
* Get a recent openocd, a JTAG adapter ("st-link" or some clone) and
|
||||||
everything connected and permissions setup. Most
|
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
|
* `openocd -f stabilizer.cfg` and leave it running
|
||||||
* `cargo run --release`
|
* `cargo run --release`
|
||||||
|
|
||||||
### Using USB-DFU
|
### USB-DFU
|
||||||
|
|
||||||
* Get [cargo-binutils](https://github.com/rust-embedded/cargo-binutils/)
|
* 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`
|
* `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
|
* Short JC2/BOOT
|
||||||
* `dfu-util -a 0 -s 0x08000000:leave -D dual-iir.bin`
|
* `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
|
* Prepare `dual-iir.bin` like above
|
||||||
* Connect the ST-Link debugger
|
* 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
|
Stabilizer can be configured via MQTT. Refer to
|
||||||
[`miniconf`](https://github.com/quartiq/miniconf) for more information about topics.
|
[`miniconf`](https://github.com/quartiq/miniconf) for more information about topics.
|
||||||
A basic command line interface is available in [`miniconf.py`](miniconf.py).
|
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