Commit Graph

619 Commits

Author SHA1 Message Date
b35250efbf Fixing ADC/voltage conversion functions 2021-04-29 17:39:19 +02:00
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
4169cd8251 Adding AFE functions 2021-04-29 16:22:06 +02:00
e746e2a12c Adding WIP telemetry 2021-04-29 15:55:36 +02:00
f49ba30e2d Merge branch 'feature/mqtt-rework' into feature/telemetry 2021-04-29 12:26:46 +02:00
7ddf2271f3 Refactoring net module 2021-04-29 11:54:16 +02:00
aad026161f Refactoring to support DHCP 2021-04-29 11:28:35 +02:00
01349a39b3 Merge branch 'master' into feature/mqtt-rework 2021-04-29 11:07:00 +02:00
0922cc42af Adding new miniconf implementation 2021-04-28 21:03:38 +02:00
61dc6e340e dual-iir: add some mqtt parameter docs 2021-04-28 16:27:59 +02:00
f38e3b9608 Simplifying MQTT handling 2021-04-22 15:57:24 +02:00
36cc423f70 Refactoring MQTT to support telemetry 2021-04-22 15:16:33 +02:00
afcf058590 Refactoring telemetry to support binaries 2021-04-20 14:12:47 +02:00
1c9f30b4d5 Merge branch 'rs/issue-276/unique-identifiers' into feature/telemetry 2021-04-20 13:46:37 +02:00
65073d11b9 Updating code after review 2021-04-20 13:37:49 +02:00
060781f2b2 Merge branch 'master' into rs/issue-276/unique-identifiers 2021-04-20 13:32:41 +02:00
dfda6b6d75 Reverting unintended change 2021-04-19 15:57:52 +02:00
065221e89f Merge branch 'master' into rs/issue-276/unique-identifiers 2021-04-19 15:52:29 +02:00
6be642d3d7 Merge branch 'feature/phy-reset' into feature/tcp-randomizer 2021-04-19 12:19:24 +02:00
1a08634dcb Renaming interface to avoid confusion 2021-04-19 12:17:41 +02:00
f32949ed17 Merge branch 'master' into feature/phy-reset 2021-04-19 12:10:37 +02:00
403ff16dde Resetting IP 2021-04-15 15:44:03 +02:00
f442418f16 Merge branch 'master' into feature/telemetry 2021-04-15 15:43:40 +02:00
854f45ae15 Updating tick rates 2021-04-15 15:08:57 +02:00
330f67d3c8 Adding WIP telemetry implementation for dual-iir 2021-04-15 14:40:47 +02:00
8cc06d39c4 dual-iir: use InputPin re-export, rename digital_input 2021-04-15 13:47:10 +02:00
cc3673d94f Merge branch 'master' into feature/tcp-randomizer 2021-04-15 12:13:58 +02:00
2bfed7b669 dual-iir: add enable_hold, force_hold
* Also use Settings as resource directly and copy it bulk (like
  lockin-external)
2021-04-14 16:09:54 +02:00
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
033420b934 Adding custom identifier prefix calculations 2021-04-13 15:38:30 +02:00
f96f49befa
Merge branch 'master' into feature/phy-reset 2021-04-13 14:45:20 +02:00
61e1a2a1c6 Correcting I2C MAC address read 2021-04-13 12:28:05 +02:00
e4740ce1b5
Merge branch 'master' into feature/phy-reset 2021-04-09 11:04:18 +02:00
1b4d31dbd9 Updating NAL to support TCP port randomization 2021-04-08 15:28:11 +02:00
bf3dae814d Updating ACR to 32-bit 2021-04-08 14:58:28 +02:00
885cc1fb27 Merge branch 'master' into feature/phy-reset 2021-04-08 13:35:59 +02:00
e51336dc90
Merge branch 'master' into update-hal 2021-04-07 13:41:48 +02:00
fc7374424a enable itcm/dtcm explicitly 2021-03-29 18:51:50 +02:00
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
5e448f284b Updating net module 2021-03-24 13:48:34 +01:00
9459152f6f Updating dependencies 2021-03-24 13:40:17 +01:00
a717630c53 Adding prototype PHY reset detection 2021-03-17 20:16:39 +01:00
3fb2bafaaa Implementing safe net storage semantics 2021-03-17 15:08:56 +01:00
df2f122f84 Fixing sleep state on error 2021-03-17 14:56:31 +01:00
e54a33797c Updating comment about time 2021-03-17 14:54:57 +01:00
331e21b00a Updating dependencies 2021-03-17 14:47:14 +01:00
3c574467a2 Updating dependencies 2021-03-15 12:29:03 +01:00
4a9c2fe23a Updating after DHCP PR review 2021-03-15 11:41:13 +01:00
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
c2cb9a440c Adding initial DHCP support prototype 2021-03-04 17:26:10 +01:00
059d4faf9f re-add DefaultHandler 2021-03-03 17:05:22 +01:00
475f2b3dd2 panic: fmt 2021-03-03 17:00:29 +01:00
843173f29d panic: always turn on red leds, and halt 2021-03-03 16:36:10 +01:00
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
ca6596c7b8 cli: rework
* use plain json for argument format
* rename feedback -> response to match code
* reorganize args
* tweak variable names to be more in line with miniconf and mqtt
* use `mqtt` as broker
* remove traces of stabilizer from script, rename to miniconf.py
* add usage example

* dual-iir/lockin-external: update broker address (for HITL),
  change mqtt path to convention
2021-03-02 19:21:42 +01:00
1e411c1548 lockin-external: Miniconf changes 2021-03-02 17:33:53 +01:00
ca66894d51 Merge remote-tracking branch 'origin/feature/miniconf-update' into lockin-external-miniconf
* origin/feature/miniconf-update:
  Adjusting sleep semantics
  Fixing negation
  Restoring sleep semantics
  Updating dependencies
  Updating id semantics
  Updating dependencies
  Updating minimq/miniconf dependencies
  Updating miniconf dependencies
2021-03-02 17:24:58 +01:00
a9d16a1632 Adjusting sleep semantics 2021-03-02 17:20:31 +01:00
aca524ec85 Fixing negation 2021-03-02 17:17:51 +01:00
c13eaaba4c Restoring sleep semantics 2021-03-02 17:16:40 +01:00
4358d07dab Updating id semantics 2021-03-02 17:09:10 +01:00
c2b00db9e9 Updating minimq/miniconf dependencies 2021-03-02 16:43:19 +01:00
733d4243c3 lockin-external: expand output config 2021-03-02 11:46:19 +01:00
6a96160cd0 dual-iir: fix panic message 2021-03-01 19:49:21 +01:00
66536c9978 lockin-external: add miniconf 2021-03-01 19:48:45 +01:00
c553e72df4 Updating miniconf dependencies 2021-03-01 14:46:12 +01:00
41f6d971c3 avoid clippy better 2021-02-23 17:22:53 +01:00
016323c94d avoid clippy 2021-02-23 17:15:07 +01:00
e86f449dc0 lockin bins: remove stale todos, align and document [nfc] 2021-02-23 16:58:13 +01:00
6c6c2e64a7 lockin: make order generic 2021-02-23 16:58:13 +01:00
65a0831e2d Merge branch 'master' into feature/mqtt-convert 2021-02-19 10:30:51 +01:00
ccec9d7fed complex: rename extension trait, fix MulScaled 2021-02-19 09:29:38 +01:00
33b9b41405 lowpass: saturating math since it's free 2021-02-18 18:51:29 +01:00
c0457787bb lockin-external: use enum 2021-02-18 18:43:45 +01:00
f050ba8e9f lockin: let the lowpass do all filtering 2021-02-18 14:29:47 +01:00
07b7751dbc move lowpass gain outside lowpass/lockin 2021-02-18 14:25:54 +01:00
9983fad041 dsp: use num 2021-02-18 14:07:43 +01:00
90ef0836af Fixing style 2021-02-17 17:56:49 +01:00
63a2220fa0 Removing support for configuring IIR state 2021-02-17 17:56:18 +01:00
a55b30e6c4 Working around dependency injection bug 2021-02-17 17:50:17 +01:00
e8c4829790 Adding docs for the cycle counter 2021-02-17 17:26:54 +01:00
3c8cd58d6f Removing lockin-external changes 2021-02-17 17:22:43 +01:00
50476f68fd Adding settings support for lockin-external 2021-02-17 16:53:53 +01:00
b69131f5f5 impl trait on type alias instead of newtypes 2021-02-17 16:13:30 +01:00
cb16e9a85f Updating settings update function 2021-02-17 12:59:24 +01:00
13e02710cd Adding simplified clocking semantics 2021-02-17 12:08:03 +01:00
9e1f4a864c Merge branch 'master' into feature/mqtt-convert 2021-02-17 11:44:10 +01:00
aeaeac1f17 add comment on dma2 init 2021-02-16 15:58:16 +01:00
fdb0c40764 fmt 2021-02-16 15:22:58 +01:00
3abd47494b Fixing DMA2 instantiation issue 2021-02-16 15:10:00 +01:00
efbf750b20 Merge remote-tracking branch 'origin/master' into rj/misc
* origin/master:
  Upgrade to serde-json-core v0.2.0
2021-02-15 08:55:40 +01:00
5fc45a659b lockin-external: comment style [nfc] 2021-02-15 08:51:19 +01:00
b581a016ce lockin: redundant new 2021-02-14 17:55:01 +01:00
David Nadlinger
4130292706 Upgrade to serde-json-core v0.2.0
This also fixes the network interface for writing IIR coefficients.
2021-02-13 00:07:15 +00:00
a6d4099ed3 lowpass: expose natural gain, add bias 2021-02-12 11:06:59 +01:00
32b7058b47 lockin: 2nd order lowpass 2021-02-11 23:15:32 +01:00
b49f0a2eb9 complex: log2, update bins 2021-02-11 18:14:28 +01:00
3ae0b710bc lowpass: reimplement better 2021-02-11 14:30:05 +01:00
30c2c2aac2 lowpass: i32, no multiplies 2021-02-10 11:39:19 +01:00
208ba8379a dsp, lockin: use cascaded 1st order lowpasses 2021-02-09 20:37:46 +01:00
724768a72e Adding safety docs 2021-02-09 14:37:49 +01:00
2e358dea26 Adding support for input capture prefilter configuration 2021-02-09 14:36:50 +01:00
611bd3e855 ad9959/pounder: tweaks
* make a trait public
* use self-test
* this hasn't been tested
2021-02-08 15:24:52 +01:00
1b46f081c1 better formatting 2021-02-08 11:26:58 +01:00
deed11f110 lockin-external: simplify 2021-02-05 18:59:22 +01:00
0343e5d8ab pounder timer is u16 2021-02-04 16:51:34 +01:00
f19988a1bd up the sample rate 2021-02-04 15:42:45 +01:00
2d492055f3 pounder stamper: overflow at u32 boundary 2021-02-04 15:42:29 +01:00
8314844aeb pounder: moved SAMPLE_BUFFER_SIZE 2021-02-04 13:36:24 +01:00
d32378e6c4 lockin-external: ignore timestamps related to capture overflows 2021-02-04 12:48:58 +01:00
f47ee38d31 move sample ticks and buffer size to design parameters 2021-02-04 12:48:25 +01:00
7ce90c4d31 input stamper: add deglitching 2021-02-04 12:47:35 +01:00
91f16c2961 Adding working example 2021-02-03 19:55:58 +01:00
c557348523 core_intrinsics attr need to be in the lib crate 2021-02-03 15:26:13 +01:00
738516eedb Adding broken example 2021-02-03 15:13:37 +01:00
5945cfca75
Merge pull request #258 from vertigo-designs/feature/input-capture-fixes
Updating input capture for timers
2021-02-03 14:54:55 +01:00
ef22f5ab92 Fixing pounder input capture source 2021-02-03 14:11:00 +01:00
9e1a6ec4d5 Updating dependencies 2021-02-03 14:06:09 +01:00
913990d531 Merge remote-tracking branch 'origin/rj/bump-hal-smoltcp' into feature/mqtt-convert 2021-02-03 14:02:20 +01:00
4e6f65b3e0 Fixing spacing 2021-02-03 13:42:43 +01:00
672ddfa3c3 pounder: also adapt to new hal 2021-02-03 13:25:00 +01:00
c5fde8563c deps: bump hal and smoltcp, adapt 2021-02-03 13:16:22 +01:00
b57b666473 Updating input capture for timers 2021-02-03 13:03:17 +01:00
e423eff0e2 lockin-external: add doc 2021-02-02 15:50:31 +01:00
bd71136cdf hw/config: add TODO on synchronization 2021-02-02 15:46:50 +01:00
145b48074e timers: remove spurious tim2 reset 2021-02-02 15:42:51 +01:00
ddbfa9d988 timestamping: docs and naming 2021-02-02 14:34:48 +01:00
e1c87c149f timestamping_timer: also reset counter 2021-02-02 13:25:45 +01:00
854ed29b1a timestamp: pass overflows to the top and ignore them there 2021-02-02 12:34:20 +01:00
4475a2d040 timestamping: full u32 range
The sampling timer and the timestamping timer have the same period.
The sampling interval and the batch size are powers of two.
If the timestamping timer wraps at a power of two larger than the
batch period, it will wrap in sync with the batch period.

Even if it didn't the RPLL would handle that. But it requires that the
timer wraps at the u32/i32 boundary (or be shifted left to wrap there).
2021-02-02 11:36:10 +01:00
2144af5bcd configuration: update to HITL ips 2021-02-01 19:32:20 +01:00
24a4486847 lockin-internal: rotate samples 2021-02-01 19:31:57 +01:00
9ee60824d4 lockin-internal: align processing with lockin-external 2021-02-01 18:15:51 +01:00
f9b5d29450 lockin: de-nest processing flow 2021-02-01 18:14:09 +01:00
b6e22b576b iir: add const fn new() 2021-02-01 17:18:10 +01:00
656e3253ab lockin-internal: document, streamline sequence 2021-02-01 17:09:06 +01:00
65a3f839a0 lockin: remove feed() 2021-02-01 13:42:38 +01:00
2c60103696 dsp: accu: add, iir: rename IIRState to Vec5 2021-02-01 12:23:47 +01:00
46a7d67027 lockin-internal: rename, adapt 2021-01-31 19:26:11 +01:00
6e1444f070
Merge pull request #247 from quartiq/dsp-iir-benches
Dsp iir benches
2021-01-31 19:24:56 +01:00
8dc811da11
Merge pull request #240 from vertigo-designs/feature/lockin-app-refactor
Adding internal lock-in integration demo
2021-01-31 19:14:08 +01:00
47089c267c dsp: align iir and iir_int, add iir micro benches 2021-01-31 19:12:24 +01:00
80055076b8 lockin: scale output 2021-01-31 17:41:20 +01:00
82c8fa1a07 rpll: extend tests 2021-01-31 17:10:03 +01:00
ab20d67a07 rpll: remove redundant time tracking 2021-01-31 13:42:15 +01:00
096f786795 Expanding miniconf to lockin 2021-01-30 18:57:06 +01:00
411a847a88 Updating smoltcp-nal 2021-01-30 18:48:27 +01:00
0d1b237202 complex: richer API 2021-01-30 18:05:54 +01:00
9a1bb5da91 Fixing build 2021-01-30 15:07:26 +01:00
b73286c188 Removing MQTT interface 2021-01-30 15:00:58 +01:00
e954ba3c52 Merge branch 'master' into feature/mqtt-convert 2021-01-30 14:48:54 +01:00
8b46c3c768 Updating internal lockin demo 2021-01-29 18:55:54 +01:00
b152343aaf Style 2021-01-29 11:05:46 +01:00
ab7d725235 Updating lockin demo after testing 2021-01-29 11:01:21 +01:00
1ebbe0f6d7 Cleaning up demo 2021-01-29 10:11:56 +01:00
cf8b06be81 Merge branch 'master' into feature/lockin-app-refactor 2021-01-29 10:06:45 +01:00
Ryan Summers
c628b8d57a
Update src/bin/lockin-internal-demo.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-01-29 09:55:23 +01:00
c34e330663 lockin: fmt 2021-01-28 23:00:55 +01:00
36288225b3 rpll: extend to above-nyquist frequencies 2021-01-28 22:21:42 +01:00
702ccc231d Using custom branch of miniconf 2021-01-27 18:15:35 +01:00
1749d48ca3 Revert "rpll: auto-align counter"
This reverts commit dbacc5293e12f712fef7bd85848e1b0bd8fde823.
2021-01-27 09:01:07 +01:00
45e7d6de3c rpll: auto-align counter 2021-01-27 09:01:07 +01:00
a772ccc38a Adding WIP updates for StringSet 2021-01-26 19:14:23 +01:00
7b9fc3b2b3 iir_int: move lowpass coefficient calculation to iirstate 2021-01-26 18:51:20 +01:00
ea7b08fc64 rpll: refine 2021-01-26 14:40:44 +01:00
f0e7c153ba Adding WIP refactor for MQTT + settings 2021-01-26 14:28:06 +01:00
Ryan Summers
c030b97714
Apply suggestions from code review
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-01-26 12:49:45 +01:00
51085d175e Removing dead-code allowance 2021-01-26 12:23:17 +01:00
e161f49822 Adding WIP lockin demo 2021-01-26 12:21:44 +01:00
43ff186bc6 Merge branch 'master' into feature/lockin-app-refactor 2021-01-26 10:53:25 +01:00
7c5a74c35e Renaming internal lockin 2021-01-26 10:52:35 +01:00
9f9744b9e6 rpll: implement 2021-01-25 11:45:59 +01:00
df337f85b8 reciprocal_pll -> rpll 2021-01-25 09:54:56 +01:00
57a5c4ff9b make lockin a unittest, not integration test 2021-01-22 16:04:02 +01:00
d0d2c6352d lockin: refactor to use common lockin processing 2021-01-22 16:00:05 +01:00
0cd2140668 rafactor complex, cossin, atan2 2021-01-21 16:12:59 +01:00
948e58c910 lockin: refactor Lockin 2021-01-21 14:57:44 +01:00
5af2b9c63a fmt 2021-01-20 15:34:56 +01:00
c078de05cc lockin: fix adc value conversion 2021-01-20 15:31:46 +01:00
d014ed0fe0 add lockin bin 2021-01-20 14:29:29 +01:00
603d6df6a4 Merge branch 'master' into lockin-bin
* master:
  Reordering lib.rs
  Removing main.rs
  Adding support for multiple applications
  Fixing build
  Moving panic configuration
  Reordering
  Refactoring to support multiple apps
2021-01-20 14:19:28 +01:00
507e334ec5 lockin: tweak impl 2021-01-20 14:07:57 +01:00
4d0b1b5566 Reordering lib.rs 2021-01-20 13:44:53 +01:00
86355c9c5d Removing main.rs 2021-01-20 13:44:16 +01:00
26677063ea Adding support for multiple applications 2021-01-20 13:43:34 +01:00
2ef27b8187 Formatting 2021-01-20 12:55:55 +01:00
b2cbc6791d Restructuring 2021-01-20 12:55:45 +01:00
f1f15aca65 Refactoring app structure 2021-01-20 12:49:07 +01:00
a715680482 Merge branch 'master' into feature/lockin-app-refactor 2021-01-20 12:36:20 +01:00
778f4ac4d5 lockin: wrapping_neg 2021-01-19 11:30:12 +01:00
720b143132 Merge remote-tracking branch 'origin/master' into lockin-bin
* origin/master:
  Updating timer compare offsets
  Removing dac isr clear
  Adding information about DSP timing specifications
  Specifying consequences of failing to meet timing
  Updating dependencies
  Apply suggestions from code review
  Adding documentation about double-buffered mode to DACs
  Updating DACs to utilize DBM
  Adding safety documentation
  Adding docs
  Updating DAC output format, adding DDS stream docs
  Adding documentation for ADCs and DACs
2021-01-19 11:12:50 +01:00
20488ea3bc lockin: refine 2021-01-19 11:01:21 +01:00
ac06f811ab Adding framework for initial lockin demo 2021-01-18 18:02:00 +01:00
573189bdd9 Fixing build 2021-01-18 17:23:21 +01:00
9d90d7b0d2 Adding WIP apps 2021-01-18 17:20:33 +01:00
6618e921fe Moving panic configuration 2021-01-18 16:55:56 +01:00
8dd72ae75e Reordering 2021-01-18 16:52:09 +01:00
20535a721d Refactoring to support multiple apps 2021-01-18 16:47:47 +01:00