Merge branch 'feature/pages-docs' of github.com:quartiq/stabilizer into feature/pages-docs

This commit is contained in:
Ryan Summers 2021-07-16 14:25:41 +02:00
commit 444e61b32b
4 changed files with 17 additions and 28 deletions

View File

@ -25,28 +25,30 @@ which allows for a wide variety of experimental uses, such as digital filter des
implementation of digital lockin schemes. implementation of digital lockin schemes.
This documentation is intended to bring a user up to speed on using Stabilizer and the firmware This documentation is intended to bring a user up to speed on using Stabilizer and the firmware
provided by Quartiq. provided by QUARTIQ and contributors.
## Hardware ## Hardware
The Stabilizer hardware is managed via a [separate repository](https://github.com/sinara-hw/Stabilizer). The Stabilizer hardware is managed via a [separate repository](https://github.com/sinara-hw/Stabilizer).
Some information about the hardware is gathered in the [Stabilizer wiki](https://github.com/sinara-hw/Stabilizer/wiki). More detailed data, measurements, discussions, and tests have been posted in the [Stabilizer issue tracker](https://github.com/sinara-hw/Stabilizer/issues?q=is%3Aissue).
[![Hardware](https://github.com/sinara-hw/Stabilizer/wiki/Stabilizer_v1.0_top_small.jpg)](https://github.com/sinara-hw/Stabilizer) [![Hardware](https://github.com/sinara-hw/Stabilizer/wiki/Stabilizer_v1.0_top_small.jpg)](https://github.com/sinara-hw/Stabilizer)
Stabilizer can be extended and coupled with a mezzanine board. One such mezzanine is the DDS upconversion/downconversion frontend Pounder. The Pounder hardware is managed via a [separate repository](https://github.com/sinara-hw/Pounder), again with [wiki](https://github.com/sinara-hw/Pounder/wiki) and [issue tracker](https://github.com/sinara-hw/Pounder/issues?q=is%3Aissue).
## Applications ## Applications
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. 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.
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). 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) in the [DSP crate]({{site.baseurl}}/firmware/dsp/index.html).
An application, which is the compiled firmware running on the device, can compose and configure these hardware and software components to implement different use cases. An application, which is the compiled firmware running on the device, can compose and configure these hardware and software components to implement different use cases.
Several applications are provided by default. Several applications are provided by default.
The following documentation links contain the application-specific settings and telemetry The following documentation links contain the application-specific settings and telemetry
information. information.
| Application | Documentation | Application Description | | Application | Description |
| :---: | :--: | :---- | | :---: | :---- |
| `dual-iir` | [Link]({{site.baseurl}}/firmware/dual_iir/index.html) | Two channel biquad IIR filter | [`dual-iir`]({{site.baseurl}}/firmware/dual_iir/index.html) | Two channel biquad IIR filter |
| `lockin` | [Link]({{site.baseurl}}/firmware/lockin/index.html) | Lockin amplifier support various various reference sources | | [`lockin`]({{site.baseurl}}/firmware/lockin/index.html) | Lockin amplifier support various various reference sources |
### Library Documentation ### Library Documentation
The Stabilizer library docs contain documentation for common components used in all Stabilizer The Stabilizer library docs contain documentation for common components used in all Stabilizer

View File

@ -14,18 +14,11 @@ nav_order: 2
# Getting Started # Getting Started
Getting started requires a few steps:
There are a number of steps that must be completed when first getting started with Stabilizer. There are a number of steps that must be completed when first getting started with Stabilizer.
1. Configure the firmware 1. Set parameters in the firmware source code, such as IP addresses and sampling rate.
* This requires updating any parameters, such as static IP addresses and 1. Build the application by compiling the source code.
sampling rate. 1. Upload the application and programming it onto the device.
1. Build the application 1. Set up MQTT for telemetry and configuration.
* This requires compiling the code after configuration parameters have been
updated.
1. Upload the application
* Once fimrware has been built, it needs to be programmed onto the device.
1. Set up MQTT
* Stabilizer utilizes MQTT for telemetry and configuration.
The following sections will walk you through completing each of these steps. The following sections will walk you through completing each of these steps.
@ -40,11 +33,11 @@ desired application.
Stabilizer firmware contains compile-time parameters that may need to be changed based on Stabilizer firmware contains compile-time parameters that may need to be changed based on
application requirements. Some examples of parameters that may require configuraton: application requirements. Some examples of parameters that may require configuraton:
* Sample frequency * Sampling interval.
* Sample batch size * Batch size.
* MQTT Broker IP address * MQTT Broker IP address
Parameters are configured by editing `src/configuration.rs`. Parameters are configured by editing the file `src/configuration.rs`.
Refer to the [documentation]({{site.baseurl}}/firmware/stabilizer/configuration/index.html) for more Refer to the [documentation]({{site.baseurl}}/firmware/stabilizer/configuration/index.html) for more
information on parameters. information on parameters.

View File

@ -42,7 +42,7 @@ pub type Vec5 = [f32; 5];
/// ///
/// # Miniconf /// # Miniconf
/// ///
/// `{"y_offset": y0, "y_min": ym, "y_max": yM, "ba": [b0, b1, b2, -a1, -a2]}` /// `{"y_offset": y_offset, "y_min": y_min, "y_max": y_max, "ba": [b0, b1, b2, a1, a2]}`
/// ///
/// * `y0` is the output offset code /// * `y0` is the output offset code
/// * `ym` is the lower saturation limit /// * `ym` is the lower saturation limit
@ -52,12 +52,6 @@ pub type Vec5 = [f32; 5];
/// new output is computed as `y0 = a1*y1 + a2*y2 + b0*x0 + b1*x1 + b2*x2`. /// new output is computed as `y0 = a1*y1 + a2*y2 + b0*x0 + b1*x1 + b2*x2`.
/// The IIR coefficients can be mapped to other transfer function /// The IIR coefficients can be mapped to other transfer function
/// representations, for example as described in <https://arxiv.org/abs/1508.06319> /// representations, for example as described in <https://arxiv.org/abs/1508.06319>
///
///
/// ## Notes
/// The units of the IIR utilize 16-bit signed integers for full-scale. saturation and offset
/// parameter are given in this scale, where full-scale represents an output amplitude of 10.24
/// V.
#[derive(Copy, Clone, Debug, Default, Deserialize, MiniconfAtomic)] #[derive(Copy, Clone, Debug, Default, Deserialize, MiniconfAtomic)]
pub struct IIR { pub struct IIR {
pub ba: Vec5, pub ba: Vec5,

View File

@ -11,7 +11,7 @@ pub const MQTT_BROKER: [u8; 4] = [10, 34, 16, 10];
/// ///
/// # Units /// # Units
/// The units of this parameter are specified as a logarithmic number of ticks of the internal /// The units of this parameter are specified as a logarithmic number of ticks of the internal
/// timer, which runs at 100MHz. /// timer, which runs at 100 MHz.
/// ///
/// ## Example /// ## Example
/// With a value of 7, this corresponds to 2^7 = 128 ticks. Each tick of the 100MHz timer requires /// With a value of 7, this corresponds to 2^7 = 128 ticks. Each tick of the 100MHz timer requires