Commit Graph

666 Commits (323ed54989992b613d65a0bb9711728ac24cf22a)

Author SHA1 Message Date
Ryan Summers 661c3746af Updating docs on telemetry 2021-07-16 14:25:37 +02:00
Ryan Summers f67a56c2cd
Apply suggestions from code review
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-07-16 14:24:00 +02:00
Ryan Summers e1064bf403 Allowing signal generator to update any time 2021-07-16 12:58:59 +02:00
Ryan Summers b319fe2c6b Refactoring signal generation to utilize static tuning words 2021-07-16 12:55:11 +02:00
Ryan Summers f1947db6c9 Squashing manual changes 2021-07-15 13:28:19 +02:00
Ryan Summers 0884d84fea Merge branch 'feature/scan-mode' of github.com:quartiq/stabilizer into feature/scan-mode 2021-06-29 13:24:03 +02:00
Ryan Summers 386259bf6a Updating after review 2021-06-29 13:23:42 +02:00
Ryan Summers d911622645
Merge branch 'master' into feature/scan-mode 2021-06-28 15:02:25 +02:00
Ryan Summers 24c0075b7a Adding signal generator refactor 2021-06-28 14:11:52 +02:00
Ryan Summers 68859c387a Adding initial working proof of concept 2021-06-28 13:40:59 +02:00
Ryan Summers 9cca1497b7 Adding signal generator control to dual-iir 2021-06-28 13:16:54 +02:00
Robert Jördens c7bac73bde derive Defgault for StreamTarget 2021-06-25 09:46:03 +02:00
Robert Jördens 60ed1876b2 stream: redo socket management logic
* Make process only open and set_remote only close sockets
* Streamline queue flushing in all cases where we just opened the socket
* Streamline dequeuing using Option/Result API, removing a
  queue.ready() check
2021-06-25 09:45:50 +02:00
Robert Jördens 0ba3259374 network: add some useful log messages 2021-06-25 09:43:24 +02:00
Robert Jördens 0a162a8096 use mutex-trait instead of flatten_closures 2021-06-24 11:03:54 +00:00
Robert Jördens 2c5afe959b spelling, naming 2021-06-24 10:21:32 +02:00
Robert Jördens a3dd760aba setup: use a best-effort lock for rprintln
close #382
2021-06-24 10:16:31 +02:00
Ryan Summers 45638caa43 Simplifying and correcting triangle wave generation 2021-06-21 20:57:36 +02:00
Ryan Summers 986e7cc457 Adding initial take at scan mode signal generation 2021-06-21 16:59:38 +02:00
Ryan Summers 9d34e755d8 Fixing UDP reopening bug 2021-06-21 13:18:36 +02:00
Ryan Summers 260b0c7767 Updating comments 2021-06-15 14:19:28 +02:00
Ryan Summers d81e0c9323
Merge branch 'master' into feature/livestream 2021-06-15 14:15:16 +02:00
Ryan Summers 3cdef581b8 Removing interword-idle-delay 2021-06-15 14:10:15 +02:00
Ryan Summers 99114e3c9c Fixing clippy 2021-06-15 13:49:06 +02:00
Ryan Summers 7294a69b66 Fixing clippy 2021-06-15 13:46:39 +02:00
Ryan Summers 9e083842ee Adding streaming to lockin app 2021-06-15 13:22:38 +02:00
Ryan Summers 2815d6d9e9 Updating docs 2021-06-15 13:18:16 +02:00
Ryan Summers 8d1f2cf9b6 Updating versions 2021-06-15 12:51:42 +02:00
Ryan Summers b912f0c387 Merge branch 'feature/hal-update' into feature/livestream 2021-06-15 12:46:41 +02:00
Ryan Summers c96999de52 Moving ownership of hardware cs 2021-06-14 18:51:49 +02:00
Ryan Summers d6ccf1cc83 Utilize interleaved CSn 2021-06-14 18:49:46 +02:00
Ryan Summers b8c0abcea2 Updating HAL SPI usage to master version 2021-06-14 18:47:37 +02:00
Ryan Summers 5a947e459c Finalizing updates after testing 2021-06-11 17:52:11 +02:00
Ryan Summers b40ca17fea Updating stream methodology 2021-06-11 16:36:19 +02:00
Ryan Summers b9284451e4 Fixing format 2021-06-09 15:31:00 +02:00
Ryan Summers 9bc351109c Reverting unintended changes 2021-06-09 15:30:33 +02:00
Ryan Summers 92c84a6bfe Allowing target to be runtime configurable 2021-06-09 15:25:59 +02:00
Ryan Summers b5fdb31a02 Adding internal buffering to data stream blocks 2021-06-09 13:26:41 +02:00
Ryan Summers b292cf45ab Fixing merge 2021-06-09 12:52:13 +02:00
Ryan Summers e01d430e8e Merge branch 'master' into feature/livestream 2021-06-09 12:46:56 +02:00
Robert Jördens f514205f8d stabilizer: don't flatten namespace, renames 2021-06-04 17:02:09 +02:00
Robert Jördens f60827e59a lockin: remove SPI error ISR
Let them be handled by HardFault here.
Keep them in dual-iir for debugging and show-casing their usage.
2021-06-04 12:00:15 +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 d84c79af2e apps: spi isrs are spi errors 2021-06-04 10:50:09 +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 93081c25c2 refactor flatten_closures 2021-06-01 17:55:42 +02:00
Robert Jördens 3b73783635 clippy recursion 2021-06-01 17:45:14 +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 f8fa297b20 lockin: dma fence 2021-06-01 14:49:51 +02:00
Robert Jördens b90f4ad185 lockin: port to fast double buffered DMA 2021-06-01 13:17:40 +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 14bfbbe2a1 Refactoring link status polling 2021-05-31 14:28:57 +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 eb968fb503 Adding subsampling factor 2021-05-28 19:37:28 +02:00
Ryan Summers 2edbcf1c92 Merge branch 'master' into feature/livestream 2021-05-28 19:01:24 +02:00
Ryan Summers 72637bebc0 Updating stream 2021-05-28 18:57:23 +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
Robert Jördens 441c81d135
Merge branch 'master' into rj/itcm 2021-05-27 18:22:22 +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
Ryan Summers aaef0e9913 Merge branch 'feature/nal-update' into feature/livestream 2021-05-27 15:35:16 +02:00
Ryan Summers f10bce709f Updating the embedded-nal 2021-05-27 13:42:52 +02:00
Robert Jördens 316dbb3d2e dual-iir: fmt 2021-05-26 17:59:30 +02:00
Ryan Summers 2dd1bb9ebf Adding WIP livestreaming implementation 2021-05-26 17:56:44 +02:00
Ryan Summers 24dd749da9 Merge branch 'master' into feature/livestream 2021-05-26 16:43:21 +02:00
Robert Jördens bf92f6209a Merge branch 'master' into rj/visibility-cleanup
* master:
  Removing spurious settings updates
2021-05-26 16:04:18 +02:00
Ryan Summers 70be4c1c19 Adding WIP changes to streaming 2021-05-26 15:02:50 +02:00
Ryan Summers 23a93e9135 Removing spurious settings updates 2021-05-26 13:05:54 +02:00
Robert Jördens c13859d486 dual-iir: add closure nesting helper macro 2021-05-25 12:05:19 +02:00
Robert Jördens 2a9657f98c dual-iir: destructure resources 2021-05-24 22:41:22 +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
Ryan Summers 21ca8e1c8f Adding initial streaming implementation 2021-05-17 12:43:04 +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