Commit Graph

186 Commits

Author SHA1 Message Date
Robert Jördens f514205f8d stabilizer: don't flatten namespace, renames 2021-06-04 17:02:09 +02:00
Robert Jördens 50ea2f360c Merge branch 'master' into rj/visibility-cleanup
* master: (34 commits)
  miniconf: update example usage
  apps: spi isrs are spi errors
  pounder/timestamp: docs updatew
  pll: update tests and benches
  pll: merge advance into update (like rpll)
  pll: add advance()
  pounder_timestamper: use input capture prescaler
  Revert "Revert "pounder timestmper: don't use DMA""
  miniconf: add some checks, simplify
  miniconf.py: make retain an option
  refactor flatten_closures
  clippy recursion
  fix a few clippy lints on files that are touched
  Revert "pounder timestmper: don't use DMA"
  pounder timestmper: don't use DMA
  lockin: dma fence
  lockin: port to fast double buffered DMA
  dma: implement overflow checking
  pounder: clippy
  pounder: add comment on channel enum
  ...
2021-06-04 11:59:54 +02:00
Robert Jördens 73491fcb75 pounder/timestamp: docs updatew 2021-06-04 10:45:22 +02:00
Robert Jördens 2ba9e9c2f7 pounder_timestamper: use input capture prescaler 2021-06-03 10:31:23 +02:00
Robert Jördens 35536c0623 Revert "Revert "pounder timestmper: don't use DMA""
This reverts commit d97ee3f0c4.
2021-06-03 10:31:11 +02:00
Robert Jördens 18b6e99b10 fix a few clippy lints on files that are touched 2021-06-01 17:32:06 +02:00
Robert Jördens d97ee3f0c4 Revert "pounder timestmper: don't use DMA"
This reverts commit 26b261364f.

First needs to reduce capture rate to batch interval. Otherwise it's
jittery due to polling alignment.
2021-06-01 16:57:51 +02:00
Robert Jördens 26b261364f pounder timestmper: don't use DMA
* One sample per batch is typical and sufficient.
* DMA has more overhead than direct read for one sample.
2021-06-01 16:33:47 +02:00
Robert Jördens c5a2704c41 dma: implement overflow checking 2021-06-01 13:11:16 +02:00
Robert Jördens 63716111df Merge branch 'master' into rj/fast-dbm
* master:
  pounder: clippy
  pounder: add comment on channel enum
  ad9959: refactor pad()
  pounder: enum for gpio ext pins
  pounder: fix attenuator indices (latch and shiftreg)
  pounder io extender: hack around some bug
  rf_power: fix measurement
  attenuators: use robust latching sequence
  deps: use mcp23017 release
  pounder: simplify attenuator spi interface
2021-06-01 12:52:58 +02:00
Robert Jördens 73187ba053 Merge branch 'master' into rj/fast-dbm
* master:
  adapt to new heapless/serde-json-core after const-generics
  Bump serde-json-core from 0.3.0 to 0.4.0
  build(deps): bump heapless from 0.6.1 to 0.7.1
  setup: cleanup
  itcm: add some comments, make it safe
  build(deps): bump ndarray from 0.15.1 to 0.15.2
  Updating dependencies
  Updating the embedded-nal
  Removing spurious settings updates
  deps: add rationales for git dependencies
  itcm: implement in rust and execute during setup()
  remove duplicate linker option
  gha: install gcc
  fmt
  dependencies: align with master
  bump cortex-m-rt to 0.6.13+git
  memory.x: remove comment about old cortex-m-rt
  enable itcm/dtcm explicitly
  load process into itcm
2021-06-01 12:52:05 +02:00
Robert Jördens 4c01a8f929 pounder: clippy 2021-05-31 20:41:18 +02:00
Robert Jördens da7fc08c15 pounder: add comment on channel enum 2021-05-31 18:25:34 +02:00
Ryan Summers 04f61db6f2 Adding functional prototype 2021-05-31 14:06:02 +02:00
Robert Jördens 8ccc2f2275 Merge branch 'master' into rj/visibility-cleanup
* master:
  adapt to new heapless/serde-json-core after const-generics
  Bump serde-json-core from 0.3.0 to 0.4.0
  build(deps): bump heapless from 0.6.1 to 0.7.1
  setup: cleanup
  itcm: add some comments, make it safe
  build(deps): bump ndarray from 0.15.1 to 0.15.2
  Updating dependencies
  Updating the embedded-nal
  deps: add rationales for git dependencies
  itcm: implement in rust and execute during setup()
  remove duplicate linker option
  gha: install gcc
  fmt
  dependencies: align with master
  bump cortex-m-rt to 0.6.13+git
  memory.x: remove comment about old cortex-m-rt
  enable itcm/dtcm explicitly
  load process into itcm
2021-05-28 21:50:53 +02:00
Robert Jördens 5ee7ef388e Merge branch 'master' into rj/pounder-fixes
* master:
  adapt to new heapless/serde-json-core after const-generics
  Bump serde-json-core from 0.3.0 to 0.4.0
  build(deps): bump heapless from 0.6.1 to 0.7.1
2021-05-28 21:44:07 +02:00
Ryan Summers 2edbcf1c92 Merge branch 'master' into feature/livestream 2021-05-28 19:01:24 +02:00
Robert Jördens b8da9961b8 adapt to new heapless/serde-json-core after const-generics 2021-05-28 18:34:25 +02:00
Robert Jördens 2368a4f6ed pounder: enum for gpio ext pins
This is currently unused but it's better to have enums than
a set of assorted constants.
2021-05-28 16:46:06 +02:00
Robert Jördens 3616f1fa5a pounder: fix attenuator indices (latch and shiftreg)
Before the discriminant was used despite being a compiler implementaiton
detail. This now fixes the discriminant to match byte index in the attenuator
shift register and latch-enable index of the gpio extender.
2021-05-28 16:44:58 +02:00
Robert Jördens 94f60c100c pounder io extender: hack around some bug 2021-05-28 16:44:11 +02:00
Robert Jördens 79f8838104 rf_power: fix measurement 2021-05-28 16:44:11 +02:00
Robert Jördens fc78b087ee attenuators: use robust latching sequence
To ensure that eatch call to latch() generates a rising edge, first
assert low, then high, not the other way round.
2021-05-28 16:43:29 +02:00
Robert Jördens f1a58b7811 pounder: simplify attenuator spi interface 2021-05-28 16:41:58 +02:00
Robert Jördens 79d30b4c6b setup: cleanup 2021-05-28 16:32:26 +02:00
Robert Jördens c5d3837745 itcm: add some comments, make it safe 2021-05-28 16:03:40 +02:00
Ryan Summers 97911c55f9 Unwrapping enqueue 2021-05-27 17:10:03 +02:00
Ryan Summers 3ce93b8fcd Adding WIP updates 2021-05-27 15:58:18 +02:00
Robert Jördens 3165c680d6 dma: don't swap buffers
* This uses a new closure-based method to the DMA HAL implementation which
  gives access to the inactive buffer directly.
* It removes changing addresses, the third buffer for DBM, the inactive
  address poisoning, and allows the cancellation of the redundant repeat
  memory barriers and compiler fences.
* This is now around 20 instructions per buffer down from about 100 cycles
  before.
* Also introduces a new `SampleBuffer` type alias.
* The required unpacking of the resources structure is a bit annoying
  but could probably abstraced away.

TODO:

* Test
* Adapt `lockin`
2021-05-24 20:56:11 +02:00
Ryan Summers 731513722f Updating after testing 2021-05-17 18:33:43 +02:00
Robert Jördens e58e7f179e clean up item visibility
* There isn't much API that would only be used accross modules within
  stabilizer/dsp but should not be pub beyond stabilizer/dsp.
* Therefore it's easier to let the definition determine visibility and
  the mod.rs/lib.rs determine location in the namesapce.
* Blanket use pub items in mod and lib.
2021-05-17 13:01:45 +02:00
Robert Jördens 4d5f1ab5e9 itcm: implement in rust and execute during setup() 2021-05-14 17:23:38 +02:00
Robert Jördens bd8b3cd6f3 Merge remote-tracking branch 'origin/master' into rj/itcm
* origin/master:
  deps: fix rtt-logger->rtt-target, cleanup, bump cortex-m
  build(deps): bump embedded-hal from 0.2.4 to 0.2.5
  Bump rtt-target from 0.2.2 to 0.3.1
  Bump serde from 1.0.125 to 1.0.126
  remove unused dependencies
  remove unused dependencies
2021-05-14 08:18:33 +02:00
Robert Jördens b9cee6345a deps: fix rtt-logger->rtt-target, cleanup, bump cortex-m 2021-05-14 07:16:47 +02:00
Robert Jördens 5d37963ec2 Merge remote-tracking branch 'origin/master' into rj/log
* origin/master:
  remove unused dependencies
  remove unused dependencies
2021-05-13 18:27:11 +02:00
Robert Jördens 8eef23da6b Merge branch 'rj/log' into rj/itcm
* rj/log:
  refine panic handler and add some logging info
  hitl: kill probe-run cleanly
  set target-cpu=cortex-m7, MSRV 1.52.0, use probe-run
  README: document lockin, cleanup instructions, use probe-run
  CHANGELOG: update
  README: streamline docs a bit, add probe-run
  update hitl script
  remove rtt feature
  use rtt logging
  dsp/lowpass,lockin: const generics
2021-05-13 15:20:20 +02:00
Robert Jördens 18a8053cab refine panic handler and add some logging info 2021-05-13 15:18:22 +02:00
Robert Jördens 401e1b0681 remove rtt feature 2021-05-13 11:14:03 +02:00
Robert Jördens 5b616a2874 use rtt logging 2021-05-13 10:55:43 +02:00
Robert Jördens 31332d220e remove unused dependencies 2021-05-12 12:59:58 +02:00
Robert Jördens 66184ca089 Merge remote-tracking branch 'origin/master' into rj/itcm
* origin/master: (34 commits)
  Simplifying unit conversions
  Cleaning up conversion + comments
  Addressing review feedback
  Update src/hardware/dac.rs
  Renaming AdcSample -> AdcCode
  Updating float conversion
  Adding adc/dac code conversion utilities
  Simplifying settings lock
  Updating after review
  Updating delay
  Fixing merge
  Formatting
  Updating dependencies
  Fixing clippy
  Finalizing merge
  Merging lockin app functions
  Fixing system timer
  Fixing build, formatting
  Adding documentation
  Renaming files
  ...
2021-05-10 17:00:57 +02:00
Ryan Summers 81bc569f0e Simplifying unit conversions 2021-05-10 11:40:36 +02:00
Ryan Summers fa886d2eac Cleaning up conversion + comments 2021-05-10 11:10:26 +02:00
Ryan Summers 65eb74b31e Merge branch 'feature/telemetry' of github.com:quartiq/stabilizer into feature/telemetry 2021-05-10 11:07:29 +02:00
Ryan Summers fcda2d5bd1 Addressing review feedback 2021-05-10 10:57:50 +02:00
Ryan Summers 6e94ffc138
Update src/hardware/dac.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-05-07 14:23:03 +02:00
Ryan Summers 60b1b112b1 Renaming AdcSample -> AdcCode 2021-05-07 14:11:25 +02:00
Ryan Summers 923790b0b9 Updating float conversion 2021-05-07 14:02:25 +02:00
Ryan Summers b73a4d9e59 Adding adc/dac code conversion utilities 2021-05-07 13:50:34 +02:00
Ryan Summers 7b76b1f14c Updating after review 2021-05-07 13:02:14 +02:00
Ryan Summers 89eaefd8d5 Updating delay 2021-05-06 17:14:17 +02:00
Ryan Summers 81a292a77e Fixing system timer 2021-05-06 12:45:13 +02:00
Ryan Summers 949ea9c1b3 Fixing build, formatting 2021-05-06 12:35:04 +02:00
Ryan Summers 4cbc826f00 Adding documentation 2021-05-06 12:33:07 +02:00
Ryan Summers 8efd7d4417 Fixing design parameters file 2021-05-05 16:49:11 +02:00
Ryan Summers 0c6935587e Adding updated telemetry implementation 2021-05-05 16:46:53 +02:00
Robert Jördens f0c50d9678 Merge branch 'master' into rj/itcm
* master: (70 commits)
  Updating JSON syntax
  Updating trigger
  Adding bors timeout
  dual-iir: add some mqtt parameter docs
  changelog: spelling
  update lock
  let bors handle hitl
  prepare v0.5.0 release
  Updating code after review
  Adding comment, reverting change
  Adding sleep to HITL run
  Updating ping deadline
  Reverting unintended change
  Updating dependency revision
  Renaming interface to avoid confusion
  dual-iir: use InputPin re-export, rename digital_input
  Updating dependency
  dual-iir: add enable_hold, force_hold
  fix bench
  hardware: add digital input support
  ...
2021-04-29 17:28:58 +02:00
Ryan Summers 4169cd8251 Adding AFE functions 2021-04-29 16:22:06 +02:00
Ryan Summers 1c9f30b4d5 Merge branch 'rs/issue-276/unique-identifiers' into feature/telemetry 2021-04-20 13:46:37 +02:00
Ryan Summers 65073d11b9 Updating code after review 2021-04-20 13:37:49 +02:00
Ryan Summers 060781f2b2 Merge branch 'master' into rs/issue-276/unique-identifiers 2021-04-20 13:32:41 +02:00
Ryan Summers dfda6b6d75 Reverting unintended change 2021-04-19 15:57:52 +02:00
Ryan Summers 065221e89f Merge branch 'master' into rs/issue-276/unique-identifiers 2021-04-19 15:52:29 +02:00
Ryan Summers 6be642d3d7 Merge branch 'feature/phy-reset' into feature/tcp-randomizer 2021-04-19 12:19:24 +02:00
Ryan Summers f32949ed17 Merge branch 'master' into feature/phy-reset 2021-04-19 12:10:37 +02:00
Ryan Summers 403ff16dde Resetting IP 2021-04-15 15:44:03 +02:00
Ryan Summers f442418f16 Merge branch 'master' into feature/telemetry 2021-04-15 15:43:40 +02:00
Ryan Summers 854f45ae15 Updating tick rates 2021-04-15 15:08:57 +02:00
Ryan Summers 330f67d3c8 Adding WIP telemetry implementation for dual-iir 2021-04-15 14:40:47 +02:00
Robert Jördens 8cc06d39c4 dual-iir: use InputPin re-export, rename digital_input 2021-04-15 13:47:10 +02:00
Ryan Summers cc3673d94f Merge branch 'master' into feature/tcp-randomizer 2021-04-15 12:13:58 +02:00
Robert Jördens 8954c94a20 hardware: add digital input support
* The inputs of the buffer are not pulled up/down. That might make them
  unusable if left floating.
2021-04-14 15:53:52 +02:00
Ryan Summers 033420b934 Adding custom identifier prefix calculations 2021-04-13 15:38:30 +02:00
Ryan Summers f96f49befa
Merge branch 'master' into feature/phy-reset 2021-04-13 14:45:20 +02:00
Ryan Summers 61e1a2a1c6 Correcting I2C MAC address read 2021-04-13 12:28:05 +02:00
Ryan Summers e4740ce1b5
Merge branch 'master' into feature/phy-reset 2021-04-09 11:04:18 +02:00
Ryan Summers 1b4d31dbd9 Updating NAL to support TCP port randomization 2021-04-08 15:28:11 +02:00
Ryan Summers bf3dae814d Updating ACR to 32-bit 2021-04-08 14:58:28 +02:00
Ryan Summers 885cc1fb27 Merge branch 'master' into feature/phy-reset 2021-04-08 13:35:59 +02:00
Ryan Summers e51336dc90
Merge branch 'master' into update-hal 2021-04-07 13:41:48 +02:00
Robert Jördens 14bae09935 load process into itcm
needs newer fixed cortex-m-rt 0.6.13+unreleased
relevant? https://reviews.llvm.org/D81986
2021-03-29 17:34:17 +02:00
Ryan Summers a717630c53 Adding prototype PHY reset detection 2021-03-17 20:16:39 +01:00
Ryan Summers 3fb2bafaaa Implementing safe net storage semantics 2021-03-17 15:08:56 +01:00
Ryan Summers e54a33797c Updating comment about time 2021-03-17 14:54:57 +01:00
Ryan Summers 3c574467a2 Updating dependencies 2021-03-15 12:29:03 +01:00
Ryan Summers e5505925a9 Merge branch 'master' into feature/dhcp-support 2021-03-15 11:38:28 +01:00
David Nadlinger 4606d93900 Update stm32h7xx-hal
I haven't done any runtime tests using Pounder, but it seems
like the API change is just a consequence of making the QSPI
address width runtime-configurable.
2021-03-07 16:48:55 +00:00
David Nadlinger 148a3c8281 hardware: Enable DEMCR TRCENA on boot for cycle counter
Previously, the cycle counter would only work correctly when
running in the debugger (which would also enable tracing).

GitHub: Fixes #299.
2021-03-05 18:14:39 +00:00
Ryan Summers c2cb9a440c Adding initial DHCP support prototype 2021-03-04 17:26:10 +01:00
Robert Jördens 059d4faf9f re-add DefaultHandler 2021-03-03 17:05:22 +01:00
Robert Jördens 475f2b3dd2 panic: fmt 2021-03-03 17:00:29 +01:00
Robert Jördens 843173f29d panic: always turn on red leds, and halt 2021-03-03 16:36:10 +01:00
Robert Jördens e2b54d0e53 binaries: move MQTT_ADDRESS to design_parameters
until some better design with DHCP and/or (m)DNS is implemented
2021-03-03 15:01:28 +01:00
Ryan Summers c553e72df4 Updating miniconf dependencies 2021-03-01 14:46:12 +01:00
Ryan Summers 90ef0836af Fixing style 2021-02-17 17:56:49 +01:00
Ryan Summers e8c4829790 Adding docs for the cycle counter 2021-02-17 17:26:54 +01:00
Ryan Summers 50476f68fd Adding settings support for lockin-external 2021-02-17 16:53:53 +01:00
Ryan Summers cb16e9a85f Updating settings update function 2021-02-17 12:59:24 +01:00
Ryan Summers 13e02710cd Adding simplified clocking semantics 2021-02-17 12:08:03 +01:00
Ryan Summers 9e1f4a864c Merge branch 'master' into feature/mqtt-convert 2021-02-17 11:44:10 +01:00