Commit Graph

641 Commits

Author SHA1 Message Date
9e083842ee Adding streaming to lockin app 2021-06-15 13:22:38 +02:00
2815d6d9e9 Updating docs 2021-06-15 13:18:16 +02:00
8d1f2cf9b6 Updating versions 2021-06-15 12:51:42 +02:00
b912f0c387 Merge branch 'feature/hal-update' into feature/livestream 2021-06-15 12:46:41 +02:00
c96999de52 Moving ownership of hardware cs 2021-06-14 18:51:49 +02:00
d6ccf1cc83 Utilize interleaved CSn 2021-06-14 18:49:46 +02:00
b8c0abcea2 Updating HAL SPI usage to master version 2021-06-14 18:47:37 +02:00
5a947e459c Finalizing updates after testing 2021-06-11 17:52:11 +02:00
b40ca17fea Updating stream methodology 2021-06-11 16:36:19 +02:00
b9284451e4 Fixing format 2021-06-09 15:31:00 +02:00
9bc351109c Reverting unintended changes 2021-06-09 15:30:33 +02:00
92c84a6bfe Allowing target to be runtime configurable 2021-06-09 15:25:59 +02:00
b5fdb31a02 Adding internal buffering to data stream blocks 2021-06-09 13:26:41 +02:00
b292cf45ab Fixing merge 2021-06-09 12:52:13 +02:00
e01d430e8e Merge branch 'master' into feature/livestream 2021-06-09 12:46:56 +02:00
f514205f8d stabilizer: don't flatten namespace, renames 2021-06-04 17:02:09 +02:00
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
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
d84c79af2e apps: spi isrs are spi errors 2021-06-04 10:50:09 +02:00
73491fcb75 pounder/timestamp: docs updatew 2021-06-04 10:45:22 +02:00
2ba9e9c2f7 pounder_timestamper: use input capture prescaler 2021-06-03 10:31:23 +02:00
35536c0623 Revert "Revert "pounder timestmper: don't use DMA""
This reverts commit d97ee3f0c4.
2021-06-03 10:31:11 +02:00
93081c25c2 refactor flatten_closures 2021-06-01 17:55:42 +02:00
3b73783635 clippy recursion 2021-06-01 17:45:14 +02:00
18b6e99b10 fix a few clippy lints on files that are touched 2021-06-01 17:32:06 +02:00
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
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
f8fa297b20 lockin: dma fence 2021-06-01 14:49:51 +02:00
b90f4ad185 lockin: port to fast double buffered DMA 2021-06-01 13:17:40 +02:00
c5a2704c41 dma: implement overflow checking 2021-06-01 13:11:16 +02:00
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
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
4c01a8f929 pounder: clippy 2021-05-31 20:41:18 +02:00
da7fc08c15 pounder: add comment on channel enum 2021-05-31 18:25:34 +02:00
14bfbbe2a1 Refactoring link status polling 2021-05-31 14:28:57 +02:00
04f61db6f2 Adding functional prototype 2021-05-31 14:06:02 +02:00
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
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
eb968fb503 Adding subsampling factor 2021-05-28 19:37:28 +02:00
2edbcf1c92 Merge branch 'master' into feature/livestream 2021-05-28 19:01:24 +02:00
72637bebc0 Updating stream 2021-05-28 18:57:23 +02:00
b8da9961b8 adapt to new heapless/serde-json-core after const-generics 2021-05-28 18:34:25 +02:00
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
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
94f60c100c pounder io extender: hack around some bug 2021-05-28 16:44:11 +02:00
79f8838104 rf_power: fix measurement 2021-05-28 16:44:11 +02:00
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
f1a58b7811 pounder: simplify attenuator spi interface 2021-05-28 16:41:58 +02:00
79d30b4c6b setup: cleanup 2021-05-28 16:32:26 +02:00
c5d3837745 itcm: add some comments, make it safe 2021-05-28 16:03:40 +02:00
441c81d135
Merge branch 'master' into rj/itcm 2021-05-27 18:22:22 +02:00
97911c55f9 Unwrapping enqueue 2021-05-27 17:10:03 +02:00
3ce93b8fcd Adding WIP updates 2021-05-27 15:58:18 +02:00
aaef0e9913 Merge branch 'feature/nal-update' into feature/livestream 2021-05-27 15:35:16 +02:00
f10bce709f Updating the embedded-nal 2021-05-27 13:42:52 +02:00
316dbb3d2e dual-iir: fmt 2021-05-26 17:59:30 +02:00
2dd1bb9ebf Adding WIP livestreaming implementation 2021-05-26 17:56:44 +02:00
24dd749da9 Merge branch 'master' into feature/livestream 2021-05-26 16:43:21 +02:00
bf92f6209a Merge branch 'master' into rj/visibility-cleanup
* master:
  Removing spurious settings updates
2021-05-26 16:04:18 +02:00
70be4c1c19 Adding WIP changes to streaming 2021-05-26 15:02:50 +02:00
23a93e9135 Removing spurious settings updates 2021-05-26 13:05:54 +02:00
c13859d486 dual-iir: add closure nesting helper macro 2021-05-25 12:05:19 +02:00
2a9657f98c dual-iir: destructure resources 2021-05-24 22:41:22 +02:00
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
731513722f Updating after testing 2021-05-17 18:33:43 +02:00
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
21ca8e1c8f Adding initial streaming implementation 2021-05-17 12:43:04 +02:00
4d5f1ab5e9 itcm: implement in rust and execute during setup() 2021-05-14 17:23:38 +02:00
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
b9cee6345a deps: fix rtt-logger->rtt-target, cleanup, bump cortex-m 2021-05-14 07:16:47 +02:00
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
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
18a8053cab refine panic handler and add some logging info 2021-05-13 15:18:22 +02:00
401e1b0681 remove rtt feature 2021-05-13 11:14:03 +02:00
5b616a2874 use rtt logging 2021-05-13 10:55:43 +02:00
31332d220e remove unused dependencies 2021-05-12 12:59:58 +02:00
bcdb5e3c0f dsp/lowpass,lockin: const generics 2021-05-10 17:31:53 +02:00
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
bd491cf584
Merge branch 'master' into rj/itcm 2021-05-10 12:09:01 +02:00
81bc569f0e Simplifying unit conversions 2021-05-10 11:40:36 +02:00
fa886d2eac Cleaning up conversion + comments 2021-05-10 11:10:26 +02:00
65eb74b31e Merge branch 'feature/telemetry' of github.com:quartiq/stabilizer into feature/telemetry 2021-05-10 11:07:29 +02:00
fcda2d5bd1 Addressing review feedback 2021-05-10 10:57:50 +02:00
6e94ffc138
Update src/hardware/dac.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-05-07 14:23:03 +02:00
60b1b112b1 Renaming AdcSample -> AdcCode 2021-05-07 14:11:25 +02:00
923790b0b9 Updating float conversion 2021-05-07 14:02:25 +02:00
b73a4d9e59 Adding adc/dac code conversion utilities 2021-05-07 13:50:34 +02:00
d68fa87fec Simplifying settings lock 2021-05-07 13:04:25 +02:00
7b76b1f14c Updating after review 2021-05-07 13:02:14 +02:00
89eaefd8d5 Updating delay 2021-05-06 17:14:17 +02:00
ff79e0a8ac Fixing merge 2021-05-06 17:10:38 +02:00
e07f0a4e2a Formatting 2021-05-06 16:37:36 +02:00
eeee5af296 Updating dependencies 2021-05-06 16:32:57 +02:00
03adb72aab Fixing clippy 2021-05-06 16:23:41 +02:00
97cca486b5 lockin: merge sample_phase/frequency computation 2021-05-06 16:22:42 +02:00
80b8716be4 Finalizing merge 2021-05-06 14:40:28 +02:00
4780a97528 Fixing modulation waveform scale 2021-05-06 14:36:57 +02:00
9569df9e82 Renaming power -> magnitude 2021-05-06 14:34:09 +02:00
0bb7c1fdb0 Finalizing names 2021-05-06 14:33:22 +02:00
19dd57c6a8 Satisfying clippy 2021-05-06 13:46:55 +02:00