Commit Graph

661 Commits

Author SHA1 Message Date
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
7a2f950667 Updating timer compare offsets 2021-01-18 13:41:23 +01:00
598a48b178 Merge branch 'master' into feature/io-docs 2021-01-18 13:25:03 +01:00
Matt Huszagh
f0eb58dfb2 swap sin and cos for demodulation
The in-phase component should be multiplied by the sin value and the
quadrature component should be multiplied by the cos value.
2021-01-14 14:51:07 -08:00
Matt Huszagh
9d0aa40ce8 Revert "revert changes in main.rs and server.rs"
This reverts commit e599977983.
2021-01-13 09:54:04 -08:00
Matt Huszagh
e599977983 revert changes in main.rs and server.rs 2021-01-13 08:59:27 -08:00
Matt Huszagh
76088efda5 dsp: add reciprocal_pll 2021-01-13 08:37:33 -08:00
Matt Huszagh
6aad92af43 fix bug in which real signal component is assigned twice 2021-01-12 18:36:18 -08:00
Matt Huszagh
07b7201b49 fix cargo fmt style 2021-01-12 17:26:42 -08:00
Matt Huszagh
a0d472b398 use only integer iir 2021-01-12 17:21:55 -08:00
Matt Huszagh
f974f4099c remove TODO note relating ADC_BATCHES and calculate_timestamp_timer_period
Having both is not really redundant.
2021-01-12 16:17:58 -08:00
Matt Huszagh
80ed715f5a shift sin/cos before demodulation product to avoid i64 2021-01-12 16:07:04 -08:00
Matt Huszagh
41ea2ebed4 use round up half integer rounding 2021-01-12 15:59:03 -08:00
Matt Huszagh
4c033c0f3e move timestamp handling into new TimestampHandler struct 2021-01-12 13:06:49 -08:00
Matt Huszagh
e14aa8b613 move lock-in code to main.rs 2021-01-12 10:45:34 -08:00
Matt Huszagh
028f4a1bb2 fix small typos 2021-01-12 07:36:56 -08:00
Ryan Summers
db3a42a7b9
Update src/adc.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-01-12 06:54:16 -08:00
bcf7a59993 Removing dac isr clear 2021-01-12 14:15:45 +01:00
09ecd3291a Merge branch 'rs/issue-219/adc-setup' into feature/io-docs 2021-01-12 14:02:19 +01:00
6b170c25ed Fixing timing synchronization 2021-01-12 13:29:15 +01:00
91975993cf Fixing docs 2021-01-11 12:38:20 +01:00
d5c21efc9d Adding extra DMA transfer to clear TXTF in ADC SPI transfers 2021-01-11 12:31:15 +01:00
5eab732d93 Adding information about DSP timing specifications 2021-01-06 15:38:04 +01:00
56366a013f Specifying consequences of failing to meet timing 2021-01-06 15:34:12 +01:00
4b3ceb0c0b Merge branch 'feature/io-docs' of github.com:vertigo-designs/stabilizer into feature/io-docs 2021-01-06 15:12:25 +01:00
eefb2acfda Updating dependencies 2021-01-06 15:12:03 +01:00
cd4721b506 Merge branch 'master' into feature/io-docs 2021-01-06 15:10:30 +01:00
Ryan Summers
f825f52785
Apply suggestions from code review
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-01-06 06:08:07 -08:00
18068082ac Fixing CI 2021-01-06 15:04:06 +01:00
e9cef7bbac Fixing after review 2021-01-06 14:59:01 +01:00
8a98428ed4 Adding documentation 2021-01-06 14:42:36 +01:00
37595405c3 Merge branch 'feature/digital-input-stamp' into feature/pounder-timestamping 2021-01-06 13:34:55 +01:00
da34756df7 Adding support for pounder v1.1 2021-01-06 13:29:19 +01:00
3332a8e927 Updating branch dependencies 2021-01-06 12:59:24 +01:00
9e7bfd4371 Adding updates after review 2021-01-06 12:24:09 +01:00
2b6e6f59a4 Adding comment about sample rate 2021-01-04 18:09:16 +01:00
7ecd08d86b More updates after PR review 2021-01-04 18:04:01 +01:00
67b6990fc0 Addressing PR review 2021-01-04 17:12:24 +01:00
ee8f4d849f Adding documentation about double-buffered mode to DACs 2020-12-17 14:32:53 +01:00
fb1ea765ce Updating DACs to utilize DBM 2020-12-17 14:27:47 +01:00
ec2aaecb48 Adding safety documentation 2020-12-17 14:11:28 +01:00
8fb37c2db9 Adding docs 2020-12-17 14:10:36 +01:00
438b291974 Updating DAC output format, adding DDS stream docs 2020-12-17 14:09:18 +01:00
8e4a7c8fa9 Adding documentation for ADCs and DACs 2020-12-15 16:46:12 +01:00
fc81f3d55d Removing DMA support from DI0 timestamping 2020-12-15 14:34:14 +01:00
352884ea06 Fixing pounder timestamps after manual testing 2020-12-15 13:13:05 +01:00
72d14adfbf Adding support for pounder ETR timestamping 2020-12-09 18:19:33 +01:00
e9d74ae6da Adding support for pounder DDS timestamping 2020-12-09 15:13:04 +01:00
f8cab17ffc Adding WIP for pounder timestamps 2020-12-09 13:44:26 +01:00
2e0681ebcc Fixing power-of-two calculation 2020-12-08 16:38:07 +01:00
645a1cd832 Updating timestamper after testing 2020-12-08 16:14:27 +01:00
Ryan Summers
3886dab961
Update src/digital_input_stamper.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-12-08 15:15:58 +01:00
Ryan Summers
4da892b8a2
Update src/digital_input_stamper.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-12-08 15:15:51 +01:00
1a1d8fd8b9 Adding precise control of timer periods and prescalers 2020-12-08 14:25:46 +01:00
a134340726 Adding direct and DMA collection support for DI0 timestamps 2020-12-08 13:53:34 +01:00
f2e4f497fa Removing DBM from input stamper 2020-12-08 11:29:59 +01:00
c00ac46c2c Merge branch 'master' into feature/qspi-stream 2020-12-07 18:51:32 +01:00
35b4287fe1 Merge branch 'feature/qspi-stream' into feature/digital-input-stamp 2020-12-07 18:49:35 +01:00
551cc5d742 Adding support for DBM 2020-12-07 18:44:45 +01:00
6eaf2cc073 Updating timestamp buffer logic 2020-12-07 18:19:20 +01:00
b191a3f01d Updating timestamp timer to be more precise 2020-12-07 18:11:46 +01:00
ec046bc42d Refactoring timer timestamping 2020-12-07 17:58:36 +01:00
fc81c8b5d8 Updating API 2020-12-07 17:29:36 +01:00
93ab3b7dfd Merge branch 'master' into feature/digital-input-stamp 2020-12-07 16:12:55 +01:00
14a647867a Updating after review 2020-12-07 10:55:09 +01:00
4f8bdb971b
main.rs: style 2020-12-04 18:22:53 +01:00
b23d5fa0dc
main.rs: whitespace 2020-12-04 18:22:38 +01:00
Niklas Kuhrmeyer
24222821b5 Added cascaded IIR with server commands for up to 2 cascaded IIRs per channel. 2020-12-03 14:10:28 +01:00
f4a4357396 Fixing semantics 2020-12-02 18:08:49 +01:00
677d017c3c Adding documentation 2020-12-02 17:40:24 +01:00
91f722f450 Fixing buffer size 2020-12-02 17:11:06 +01:00
d3bb5ab0e4 Merge branch 'master' into feature/qspi-stream 2020-12-02 17:08:33 +01:00
d93d0c7125 Adding updated QSPI stream writer 2020-12-02 17:01:40 +01:00
31fcdcc97d Merge branch 'master' into feature/adc-dac-io-macros
* master:
  cargo: add docs for target cpu/features
  iir: more generic math helpers, use core::intrinsics
  cargo fmt [nfc]
  iir: vminnm/vmaxnm
  iir: fmt [nfc]
  iir: fix comment [nfc]
  cargo-config: cm7 features
  iir: copy_within is better than rotate_right
  processing: use faster unsafe truncate
2020-12-02 14:56:52 +01:00
01a169ca69 Merge branch 'master' into feature/qspi-stream 2020-12-02 14:13:53 +01:00
34d59dac5d adc: merge acquire_buffer and release_buffer again 2020-11-30 15:38:23 +01:00
b1301a6184 dac,adc: spelling 2020-11-30 15:06:15 +01:00
c72f959933 Merge remote-tracking branch 'origin/master' into feature/adc-dac-io-macros
* origin/master:
  more nightly clippy lints
  clippy lints
  gha: clippy-check
  build(deps): bump paste from 1.0.2 to 1.0.3
  build(deps): bump panic-semihosting from 0.5.4 to 0.5.6
2020-11-30 15:03:42 +01:00
8769194166 Merge remote-tracking branch 'origin/master' into feature/iir-tweaks
* origin/master:
  more nightly clippy lints
  clippy lints
  gha: clippy-check
  build(deps): bump paste from 1.0.2 to 1.0.3
  build(deps): bump panic-semihosting from 0.5.4 to 0.5.6
2020-11-30 12:57:58 +01:00
128e7dd78e more nightly clippy lints 2020-11-26 16:45:57 +01:00
7fc6f5c4ad clippy lints 2020-11-26 16:41:09 +01:00
ab50f55062 adc/dac: docstrings 2020-11-26 15:42:33 +01:00
8cf380a488 dac/adc: doc cleanup [nfc] 2020-11-26 14:40:24 +01:00
468929690d iir: vminnm/vmaxnm 2020-11-26 14:26:44 +01:00
d8c6f39d0f adc/dac: make the buffer handling more symmetric 2020-11-26 13:51:39 +01:00
754ebed50d adc: transfer complete interrupt on Adc1 2020-11-26 11:55:15 +01:00
7189830896 main: put AFEs into a tuple 2020-11-26 11:34:43 +01:00
911fb66146 main: process() code duplication a bit 2020-11-26 11:34:43 +01:00
c04180635b dacs: macros 2020-11-26 11:34:43 +01:00
1906185286 adc: macro 2020-11-26 11:02:37 +01:00
38dfd48c14 iir: fix comment [nfc] 2020-11-25 17:57:24 +01:00
cf086abaed Merge remote-tracking branch 'origin/master' into fast-truncate
* origin/master:
  Adding comment about checking for flag pass completion
  Adding comments about execution hanging to transfer complete waits
  Removing default parameter settings
  Updating DAC SPI structures to own HAL SPI structure for safety guarantees
  Moving constants to a new file
  Removing copy to DAC buffers, adding in-place borrow of output buffers
  Marking AXISRAM as NOLOAD
  Refactoring timer channels to macros, adding safety notes
  Adding DMA support for DAC writes
  Adding sampling_timer file
  Adding compile-time management of TIM2 channels
  Reverting changeset
  Adding documentation
  Reverting openocd change
  Adding updated docs for adc file
  Combining ADC + DAC ISRs
  Adding WIP updates
  Formatting
  Adding ADC/DAC modules
  Adding WIP updates to using DMA
2020-11-25 17:38:03 +01:00
a07be010b6 Adding comment about checking for flag pass completion 2020-11-25 16:46:42 +01:00
88da225e4b Adding comments about execution hanging to transfer complete waits 2020-11-25 16:43:49 +01:00
7d13627a0c Removing default parameter settings 2020-11-25 16:30:06 +01:00
d236ea94c4 Updating DAC SPI structures to own HAL SPI structure for safety guarantees 2020-11-24 17:21:14 +01:00
bf8b950fe6 Moving constants to a new file 2020-11-24 17:09:36 +01:00
720e0291f5 Removing copy to DAC buffers, adding in-place borrow of output buffers 2020-11-24 16:57:36 +01:00
2b443f9334 Merge branch 'master' into feature/dma-updates 2020-11-24 16:49:11 +01:00
b0e0b5144f processing: use faster unsafe truncate 2020-11-24 09:27:47 +01:00
11e6688a14 Refactoring timer channels to macros, adding safety notes 2020-11-23 14:30:29 +01:00
Matt Huszagh
3eb43c6b99 move iir to new dsp crate 2020-11-22 07:59:12 -08:00
d2e8b30622 Increasing batch size 2020-11-17 14:27:17 +01:00
6c2bc22b7a Adding updates for QSPI streaming 2020-11-17 14:23:56 +01:00
055c92c684 Adding WIP refactor 2020-11-17 13:09:45 +01:00
84167c7f6f Updating DDS control 2020-11-17 11:28:45 +01:00
72db53ccd0 Removing pounder test, adding file 2020-11-17 10:51:31 +01:00
c518797d08 Removing unused code 2020-11-17 10:48:31 +01:00
585613f48f Refactoring DDS output control 2020-11-17 10:45:37 +01:00
1c8e385e6d Merge branch 'feature/dma-updates' into feature/qspi-stream 2020-11-17 10:29:03 +01:00
91809cf255 Adding DMA support for DAC writes 2020-11-13 10:47:44 +01:00
56bcf1e0aa Adding sampling_timer file 2020-11-11 18:44:28 +01:00
3b953e36aa Adding compile-time management of TIM2 channels 2020-11-11 18:42:34 +01:00
3a59f3e989 Adding WIP updates for digital input stamping 2020-11-11 18:28:48 +01:00
d06a350549 Merge branch 'feature/dma-updates' into feature/digital-input-stamp 2020-11-11 16:30:23 +01:00
da9ca81856 Reverting changeset 2020-11-11 12:12:19 +01:00
3088a002c0 Adding documentation 2020-11-11 12:09:27 +01:00
aa36446f95 Adding updated docs for adc file 2020-11-11 11:57:14 +01:00
db3bb511b4 Merge branch 'master' into feature/dma-updates 2020-11-10 16:55:25 +01:00
f164a1a89e Update PR 2020-11-10 15:31:19 +01:00
a32ca39ca0 Removing spaces 2020-11-10 15:19:44 +01:00
84e31ef036 Fixing directive position 2020-11-10 15:16:37 +01:00
7b86a2bc42 Adding comment about deprecation allowance 2020-11-10 15:14:49 +01:00
c804312e60 Fixing deprecation warnings 2020-11-10 15:13:57 +01:00
014137acf0 Updating QSPI frequency 2020-11-09 15:57:58 +01:00
fca38e5d63 Adding support for hardware IO_update 2020-11-09 15:16:44 +01:00
c97e4d9d20 Fixing merge issues 2020-11-09 12:33:18 +01:00
7e1a58f1f0 Merge branch 'feature/dma-updates' into feature/qspi-stream 2020-11-09 12:32:32 +01:00
8d807fa09b Adding WIP 2020-11-09 12:30:02 +01:00
28cb3906ac Adding WIP HRTimer 2020-11-07 11:01:48 +01:00
bab9fbf5ac Merge branch 'master' into rs/hal-update 2020-11-05 08:09:45 +01:00
5cc21cfde8 Combining ADC + DAC ISRs 2020-11-03 16:09:00 +01:00
e95cad5bde Adding WIP updates 2020-11-03 10:52:37 +01:00
4e5459433e Formatting 2020-11-03 09:41:45 +01:00
adaca88a50 Adding ADC/DAC modules 2020-11-03 09:41:14 +01:00
20e9b6543c Adding WIP updates to using DMA 2020-11-03 09:36:03 +01:00
Niklas Kuhrmeyer
2f5d26aeaa decreased routes_storage 2020-10-30 13:33:59 +01:00
Niklas Kuhrmeyer
32d5e4dfe1 format 2020-10-30 13:32:47 +01:00
Niklas Kuhrmeyer
dfe3ac877a added gateway 2020-10-30 12:16:28 +01:00
f56487401c Adding updates for PHY support 2020-10-28 16:14:48 +01:00
11ff93e6f0 Fixing diff 2020-10-28 15:57:14 +01:00
e36b853dc8 Renaming clocks to ccdr 2020-10-28 15:51:08 +01:00
b4eeeb2042 Reverting unneeded changes 2020-10-28 15:44:52 +01:00
c058d4bcde Adding updates for 0.8.0 of the HAL 2020-10-28 15:41:27 +01:00
17c8e4d2e1 Updating to new HAL 2020-10-26 16:58:29 +01:00
071ccd17dc Adding WIP experimental code 2020-10-22 16:16:38 +02:00
db182b923d Adding WIP QSPI streaming 2020-10-21 10:17:22 +02:00
dac6f73d5e WIP updates 2020-10-19 17:12:02 +02:00
a979bf94dc update syntax for taking core periphs (required since rtic v0.5.5) 2020-09-16 14:25:36 +08:00
d6de4b7028 fmt 2020-06-23 14:55:59 +02:00
5c4dec0870 dac clr/ldac: unwrap 2020-06-23 14:16:33 +02:00
c326623818 dacs: clr_n high, ldac_n low 2020-06-23 14:13:55 +02:00
0a4112eb02 spi nss: very high speed 2020-06-22 22:55:18 +02:00
093dca5928 Updating stabilizer devices to utilize 0-based indexing 2020-06-22 08:31:09 +02:00
a992d20414 Updating comment about debugging 2020-06-21 13:36:45 +02:00
7e279ed87c Re-enabling the HSE 2020-06-21 14:39:23 +02:00
78c9f6e686 Running rustfmt 2020-06-21 14:30:49 +02:00
c6859d956e Allowing pounder to not be present 2020-06-20 16:43:07 +02:00
f14f0e2ed1 style: implement a couple clippy suggestions [nfc] 2020-06-17 14:57:09 +02:00
f70612f1be rtfm: migrate to rtic 2020-06-17 12:20:45 +02:00
54f51f9484 cargo fmt --all 2020-06-16 16:56:30 +02:00
09298bd534 structure: move stabilizer back to top, drop submodules 2020-06-16 16:56:30 +02:00
4dcf2b57bd Updating project structure 2020-06-08 09:36:28 +02:00
ade06cbcb8 Updating AD9959 api 2020-06-04 16:56:04 +02:00
beecbe3efc Refactoring AFE code 2020-06-03 17:36:43 +02:00
b39de7f414 Adding support for QSPI operating continuously in 4-bit mode 2020-06-03 15:44:34 +02:00
13cd0ad636 Updating code after review feedback 2020-06-03 10:36:35 +02:00
6792ab5469 Adding input power measurement support 2020-04-29 13:00:29 +02:00
6f7bb0569c Adding stabilizer AFE gain amplifier controls 2020-04-29 11:59:04 +02:00
41f4960b93 Refactoring server into separate file 2020-04-28 19:26:43 +02:00
b49596c96c Adding JSON API 2020-04-28 19:15:00 +02:00
abf22676ce Adding refactor to support pounder hardware abstractions 2020-04-28 19:07:19 +02:00
87858a6e0a Fixing changes 2020-04-22 15:59:08 +02:00
c6eb4d1757 Adding functional baseline HAL conversion 2020-04-22 15:50:07 +02:00
3962f7eb68 Adding WIP updates to SPI functionality 2020-04-22 13:36:51 +02:00
d700935246 Adding WIP updates to HAL API 2020-04-21 19:02:52 +02:00
820a37a625 Refactoring branches 2020-04-19 13:37:03 +02:00
ce9ae48f2a Adding WIP update to use HAL 2020-04-18 10:54:55 +02:00
2001149eda fmt 2020-02-14 15:06:50 +01:00
75eb4954b1 board: dma documentation 2020-02-14 12:26:16 +01:00
8b26996ecf board: dma.st.ndtr.ndt.bits is safe 2020-02-14 09:44:09 +00:00
57c9f90f69 board: fix unicode 2019-11-24 15:11:53 +01:00
b34fdf7c48 rustfmt: run 2019-11-24 15:10:01 +01:00
8c2c0a2027 clippy: allow missing safety doc (rtfm) 2019-11-24 15:04:29 +01:00
bda0ca26fb i2c/eeprom: lint 2019-11-24 14:55:20 +01:00
bors[bot]
d2f8b60c27
Merge #65
65: Tim2 late enable r=jordens a=jordens

does this work for you @cjbe?

bors r+

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-24 13:33:50 +00:00
1140b4fb76 board: enable TIM2 late
This was triggered by moving log_init and adding i2c_init on top of
the existing ethernet setup/init after the timer setup and enable.
Thanks @cjbe for debugging.

Also move the RCC peripheral enable calls out of i2c and eth setup.

close #55
supersedes #62
2019-11-24 14:26:27 +01:00
bors[bot]
3cf4f2690c
Merge #64
64: boards.rs: dos2unix r=jordens a=jordens

bors r+

@cjbe heads up

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-24 13:25:08 +00:00
8e84e61ff3 boards.rs: dos2unix 2019-11-24 14:15:11 +01:00
bf65b5f14a default to k_p=1 on boot 2019-11-24 13:10:01 +00:00
ab1735950b fix memory safety issue in ethernet interface (closes #33)
The CPU is allowed to access normal memory writes out-of-order. Here
the write to the OWN flag in the DMA descriptor (normal memory) was
placed after the DMA tail pointer advance (in device memory, so not
reorderable). This meant the ethernet DMA engine stalled as it saw
a descriptor it did not own, and only restarted and sent the packet
when the next packet was released.

This fix will work as long as the CPU data cache is disabled. If we
want to enable the cache, the simplest method would be to mark SRAM3
as uncacheable via the MPU.
2019-11-16 03:25:42 +00:00
d7f46c1f12 factor CPU and board-specific initialisation out of main (NFC) 2019-11-13 22:13:04 +00:00
David Nadlinger
2297286360 Fix TCP command interface rx buffer wrapping
Previously, if a message spanned the end of the
receive ring buffer, the last byte in the buffer
would be missing from the to-be-decoded message,
leading to a parse error or panic.

With this commit, >3M commands were exchanged
over one socket without further issues.
2019-11-13 01:50:18 +00:00
bors[bot]
39cb1afcfd
Merge #48
48: remove unused code, deny warnings r=jordens a=jordens

bors r+

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-11 11:20:53 +00:00
0b4f7c9201 remove unused code, deny warnings 2019-11-11 12:04:50 +01:00
65cf0c1594 rcc: pac 0.9 renames 2019-11-11 11:46:07 +01:00
17012621dd use stable rust (1.38.0) 2019-10-22 13:43:49 +00:00
80052f089b fix Unix permissions 2019-09-13 13:52:24 +08:00
1f1e588744 fix system time counter
The CYCCNT module used to calculate the system
time counts every processor clock cycle =
400 MHz.
2019-09-12 00:35:00 +01:00
bors[bot]
7f295285da
Merge #28 #30
28: Read MAC address from EEPROM r=jordens a=cjbe

Try and read the unique MAC address from EEPROM.
If the EEPROM can not be read (e.g. on the unpatched hardware version 1.0 where the EEPROM is unpowered) a hardcoded default of 10:E2:D5:00:03:00 is used.

The MAC address found / used is logged. At the moment the only way of accessing this log is via semihosting.

Closes #23 

30: build(deps): bump serde from 1.0.99 to 1.0.100 r=jordens a=dependabot-preview[bot]

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.99 to 1.0.100.
<details>
<summary>Release notes</summary>

*Sourced from [serde's releases](https://github.com/serde-rs/serde/releases).*

> ## v1.0.100
> - Provide `serde::ser::StdError` and `serde:🇩🇪:StdError` which are either a re-export of `std::error::Error` (if Serde's "std" feature is enabled) or a new identical trait (otherwise).
> 
>     ```rust
>     #[cfg(feature = "std")]
>     pub use std::error::Error as StdError;
> 
>     #[cfg(not(feature = "std"))]
>     pub trait StdError: Debug + Display {
>         fn source(&self) -> Option<&(StdError + 'static)> { None }
>     }
>     ```
> 
>     Serde's error traits `serde::ser::Error` and `serde:🇩🇪:Error` require `std::error::Error` as a supertrait, but only when Serde is built with "std" enabled. Data formats that don't care about no\_std support should generally provide their error types with a `std::error::Error` impl directly:
> 
>     ```rust
>     #[derive(Debug)]
>     struct MySerError {...}
> 
>     impl serde::ser::Error for MySerError {...}
> 
>     impl std::fmt::Display for MySerError {...}
> 
>     // We don't support no_std!
>     impl std::error::Error for MySerError {}
>     ```
> 
>     Data formats that *do* support no\_std may either have a "std" feature of their own as has been required in the past:
> 
>     ```toml
>     [features]
>     std = ["serde/std"]
>     ```
> 
>     ```rust
>     #[cfg(feature = "std")]
>     impl std::error::Error for MySerError {}
>     ```
> 
>     ... or else now may provide the std Error impl unconditionally via Serde's re-export:
> 
>     ```rust
>     impl serde::ser::StdError for MySerError {}
>     ```
</details>
<details>
<summary>Commits</summary>

- [`b6a77c4`](b6a77c4413) Release 1.0.100
- [`3343885`](33438850a6) Merge pull request [#1620](https://github-redirect.dependabot.com/serde-rs/serde/issues/1620) from dtolnay/error
- [`c083cfd`](c083cfd65e) Export std error type so downstream doesn't need "std" feature
- [`4cea81f`](4cea81f93f) Merge pull request [#1615](https://github-redirect.dependabot.com/serde-rs/serde/issues/1615) from jamesmunns/patch-1
- [`2d36be7`](2d36be753a) Add Postcard to the list of Serde Data Formats
- [`738d29e`](738d29eaa9) Update serde_derive_internals to syn 1.0
- [`b536fb6`](b536fb67a4) Merge pull request [#1604](https://github-redirect.dependabot.com/serde-rs/serde/issues/1604) from UnHumbleBen/patch-1
- [`b10c23a`](b10c23a950) Fixed a typo
- [`85a5cf7`](85a5cf7cb1) Document serde_derive minimum rustc
- See full diff in [compare view](https://github.com/serde-rs/serde/compare/v1.0.99...v1.0.100)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.99&new-version=1.0.100)](https://dependabot.com/compatibility-score.html?dependency-name=serde&package-manager=cargo&previous-version=1.0.99&new-version=1.0.100)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: Chris Ballance <chris.ballance@physics.ox.ac.uk>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-09-11 14:18:18 +00:00
fc93de432d enable cycle counter
c.f. japaric/cortex-m-rtfm#184

Signed-off-by: Robert Jördens <rj@quartiq.de>
2019-09-11 15:35:06 +02:00
30faa5b703 read MAC address from EEPROM 2019-09-08 16:02:09 +01:00
12b06a0fa9 add I2C and 24xx EEPROM driver 2019-09-05 12:45:57 +01:00
ba5634fb31 smoltcp: bump 2019-08-27 13:19:03 +00:00
1405e62682 rtfm: 0.5 beta 2019-08-27 13:19:03 +00:00
61250a3e90 cargo: bump stm32h7, misc 2019-07-29 08:34:46 +00:00
dd981ed850 panic: abort, not halt 2019-06-10 00:29:20 +02:00
9b6ef68eac fix panic handler 2019-06-07 14:28:22 +00:00
8ee0950005 panic: turn red leds on 2019-06-07 11:26:24 +02:00
5204a3169b gpio: use odr variants 2019-06-04 09:26:28 +00:00
a8e1740759 parametrize poll return 2019-06-03 17:08:21 +00:00
ee15c27dd9 make json poll generic 2019-06-03 15:54:35 +00:00
6c973038b4 rtfm: command port 2019-06-03 15:06:11 +00:00
2b9a02d98e rtfm: status port 2019-05-30 21:52:01 +00:00
b646c44c1c rtfm: move ethernet into idle 2019-05-30 20:57:41 +00:00
6be0ccfc6a rtfm: continue work 2019-05-30 16:18:59 +00:00
7501ea1963 use rtfm [wip] 2019-05-30 16:03:48 +00:00
9dff71a0c4 Merge branch 'master' into new-pac
* master:
  refactor server
  cleanup, robustify
  iir: remove old setting
  frontend: cleanup
  cargo: use published serde-json-core
  cargo: drop lexical
2019-05-28 11:02:26 +00:00
b0921f67eb refactor server 2019-05-28 10:59:26 +00:00
1cff400d00 cleanup, robustify 2019-05-28 10:15:20 +00:00
a15b490b42 iir: remove old setting 2019-05-28 09:49:17 +00:00
d6b37e6c0e Merge branch 'master' into new-pac
* master:
  python configuration tool
  json command interface
  use serde-json-core [wip]
  README: try SVG again
  add Nix build files
  png
  README: diagram and photo
2019-05-27 18:49:51 +00:00
8e4fbaf80e json command interface
close #3
2019-05-27 18:44:52 +00:00
2746c2fe00 use serde-json-core [wip] 2019-05-23 16:57:08 +00:00
ef18eb38ca ethernet peripheral ownership, cs 2019-05-06 18:10:42 +00:00
bdb6955aa1 pac: rcc 2019-05-06 18:10:42 +00:00
f1c43c6492 pac updates (~0.8) 2019-05-06 17:09:49 +00:00
86dbdf98e2 stm32h7 svd and pac changes 2019-05-06 08:48:22 +00:00
23e262304b stm32h7 changes round 1 2019-05-06 08:47:49 +00:00
1494761f35 use atomics 2019-04-30 11:42:05 +00:00
0ebcd685c3 eth: remove counter 2019-04-29 20:00:53 +02:00
cd284d2c07 eth: mtu clarification 2019-04-29 17:55:24 +00:00
9863ba3a33 cleanup 2019-04-29 11:03:39 +00:00
0efd14aec8 ethernet: tweak 2019-04-28 14:06:56 +00:00
0fafd7aa42 eth: sketch
eth: rework

ethernet: wip

eth: simplify

cargo: bump stm32h7

ethmac: rework

ethmac: fixup

cargo: semihosting version bump

ethmac: fixup

eth: tweak

eth: cleanup

eth: tweaks

eth: more debug

eth: tweak

memory: rename for clarity

eth: tweak

eth: pings

eth: cleanup

eth: cleanup, use interrupts, tighten filter
2019-04-27 16:17:28 +00:00
8ff8a4ce31 main: work around spi stall erratum and debug 2019-04-17 14:04:05 +00:00
00a758ed12 iir: more tweaking 2019-04-16 14:55:26 +00:00
94a928200e iir: tweak 2019-04-16 11:27:11 +00:00
fac82b22ff cleanup 2019-04-15 15:14:02 +00:00
39214c8a26 dma: tim->dma->spi adc start 2019-04-15 13:29:46 +00:00
6b8473daad use unwrap() for simplicity 2019-04-12 16:13:18 +00:00
01ddb2bc77 cleanup, edition 2018 2019-04-12 15:44:09 +00:00
5369b928c1 add get_x_offset 2019-03-31 11:33:18 +00:00
293520e26e iir: tweak, add offset 2019-03-29 18:33:32 +00:00
3b895ead4b set afe1 gain 2019-03-29 08:37:40 +00:00
74f10a7ac4 cleanup iir 2019-03-28 15:10:04 +00:00
dc2e0f8b07 dual channel 2019-03-28 12:13:47 +00:00
7f378a3f3d clean dcache 2019-03-28 10:47:15 +00:00
9350f17ca3 calculate pi coefficients 2019-03-28 10:09:50 +00:00
ed663b536e add prelim iir 2019-03-27 21:45:43 +00:00
eff2dc6c4e led off 2019-03-27 18:24:58 +00:00
31264452a6 irq bypass for dma 2019-03-27 18:19:32 +00:00
2eeb00bb58 use tim2,dma1 to trigger cr1 2019-03-27 13:50:25 +00:00
f9e52928fd use irq 2019-03-25 09:08:27 +00:00
aa3feeb14e back to tsize=1 adc 2019-03-20 19:28:23 +00:00
a2265ab2d1 experiment with duplex adc xfers
problematic because:

* in tsize=1 there needs to be a cstart
* in tsize=0 there is no mssi
2019-03-20 19:08:31 +00:00
984cef6a4c readme, license 2019-03-20 18:33:35 +00:00
208980d94d refactor into functions 2019-03-20 18:06:13 +00:00
52a3f8c4b7 rxdr: 16 bit 2019-03-20 13:48:28 +00:00