Commit graph

2061 commits

Author SHA1 Message Date
Dario Nieuwenhuis
15f94fb0fc time: split driver into a separate embassy-time-driver crate. 2024-01-11 16:56:08 +01:00
Ralf
db776c9623 stm32/simple_pwm: add set_output_compare_mode 2024-01-10 18:48:26 +01:00
Dario Nieuwenhuis
3bc6e414f7 stm32: update metapac. 2024-01-10 18:06:47 +01:00
Dario Nieuwenhuis
495b8b739a Change GPIO inherent methods back to &self.
With the embedded-hal rc3 update I changed them to require `&mut self`, but
in retrospect I think `&self` is better, for extra flexibility.

This PR reverts the changes from the rc3 update to inherent methods.
2024-01-10 00:00:10 +01:00
Dario Nieuwenhuis
c9ac39df94 Update embedded-hal to v1.0 2024-01-09 23:37:14 +01:00
Henk Oordt
45b7645525
Make adc::Resolution::to_max_count const 2024-01-08 13:56:21 +01:00
eZio Pan
b16cc04036 bug fix 2024-01-08 19:18:24 +08:00
eZio Pan
890a1269d0 refactor with clippy 2024-01-06 22:48:21 +08:00
eZio Pan
424ddaf3d9 impl waveform with TIM Channel 2024-01-06 22:22:38 +08:00
Dario Nieuwenhuis
294046cddb
Merge pull request #2405 from Sizurka/stm32g0-usb
stm32: Add G0 USB RCC and example
2024-01-06 00:03:54 +00:00
Dario Nieuwenhuis
208ad8fbfc stm32/flash: add support for f1. 2024-01-05 23:49:10 +01:00
Derek Hageman
801a36c7b4 stm32: Add G0 USB RCC
Add configuration for STM32G0 USB clock.
2024-01-05 07:56:22 -07:00
Dario Nieuwenhuis
03ba4ae386 stm32: update metapac. 2024-01-03 18:39:22 +01:00
Tyler Gilbert
7944e854dd Fix formatting of comments 2024-01-03 11:07:57 -06:00
Tyler Gilbert
994b77e684 Add write_immediate() function to STM32 DMA ringbuffer API to pre-fill the buffer before starting the DMA 2024-01-03 11:06:03 -06:00
Tyler
727906fa04
Update u5.rs
Update comments on p and q divider values to correctly describe what the clock outputs are used for.
2024-01-03 11:04:48 -06:00
Tyler Gilbert
31bf127807 Update STM32 RCC U5 to support P and Q dividers 2024-01-03 10:46:45 -06:00
Dario Nieuwenhuis
5fb6ad9a6a update stm32data, fixes missing interrupts. 2024-01-03 02:10:42 +01:00
Adin Ackerman
d372cba266 additional chip variants required more clocks 2024-01-02 16:25:51 -08:00
Adin Ackerman
34713b4910 fix g0 being left out of some clock controls 2024-01-02 16:03:23 -08:00
Christian Enderle
7f00d7aa0c allow unused variable 2024-01-02 23:29:33 +01:00
Christian Enderle
6da3db1190 low-power: add feature for stm32l5 2024-01-02 23:07:16 +01:00
Christian Enderle
f1c077ed2e low-power: add stop support for stm32l5 2024-01-02 23:05:47 +01:00
Christian Enderle
cbdd570ad5 dbgmcu: add stm32l5 support 2024-01-02 22:21:59 +01:00
Christian Enderle
92995e8bb1 update metapac to stm32-data PR 333 2024-01-02 22:13:06 +01:00
Dario Nieuwenhuis
79ce34931d
Merge pull request #2367 from eZioPan/simplepwm-dma
implement PWM waveform generating with DMA
2024-01-02 16:32:06 +00:00
Dario Nieuwenhuis
638aa313d4 stm32/pwm: simplify impl blocks. 2024-01-02 17:28:23 +01:00
Dario Nieuwenhuis
cad4efe57f stm32/timer: add missing supertrait bounds. 2024-01-02 17:28:08 +01:00
eZio Pan
c276da5fcb ask a DMA Channel only when use .gen_waveform() 2024-01-02 14:01:09 +08:00
Ben V. Brown
26c0e5d439 Extend RTC low power mode for STM32G0 2024-01-02 16:15:11 +11:00
eZio Pan
f5a218a018
Merge branch 'embassy-rs:main' into simplepwm-dma 2024-01-02 11:55:09 +08:00
Dario Nieuwenhuis
9c2d2ff64d
Merge pull request #2358 from lights0123/half-duplex
stm32: add half duplex USART driver
2024-01-01 22:55:06 +00:00
eZio Pan
873ee06151 some trivial fix
use less #[cfg] macro; reuse same variable
2023-12-30 12:01:08 +08:00
eZio Pan
24f569821c record&restore TIM OC to it's earlier state 2023-12-29 23:22:10 +08:00
Dario Nieuwenhuis
90e96d281f
Merge pull request #2373 from embassy-rs/jamesmunns-patch-2
stm32: Add breadcrumb to i2cv1 investigation
2023-12-28 23:58:19 +01:00
James Munns
a780339103
stm32: Add breadcrumb to i2cv1 investigation
Adds an in-code breadcrumb for https://github.com/embassy-rs/embassy/issues/2372
2023-12-28 23:57:10 +01:00
Dario Nieuwenhuis
a2faa9e14a
Merge pull request #2364 from embassy-rs/james/reenable-stm32-i2cv1-ints
STM32: Re-enable I2Cv1 Interrupts if poll-fn is not ready
2023-12-28 23:56:40 +01:00
Dario Nieuwenhuis
750aa3ceec
Merge pull request #2368 from chrenderle/l5-rtc
Add low-power support for stm32l5
2023-12-28 12:44:46 +00:00
Dario Nieuwenhuis
551c864012
Merge pull request #2369 from chrenderle/dbgmcu
dbgmcu: set bits to false when disabled
2023-12-28 12:38:24 +00:00
eZio Pan
8c2a6df03b implement PWM waveform generating with DMA 2023-12-28 20:09:12 +08:00
Christian Enderle
da31aa44c0 dbgmcu: set bits to false when disabled 2023-12-28 10:52:23 +01:00
James Munns
a142be8bb8 Seems to help 2023-12-27 19:12:44 +01:00
Ben Schattinger
87b23f9037
stm32: fix USB wait_enabled IN messages 2023-12-26 18:26:01 -05:00
Ben Schattinger
211f3357b7
stm32: USB IN endpoints use IN wakers
fixes #2360
2023-12-26 18:22:54 -05:00
lights0123
dc295fa1db
stm32: add half duplex USART driver 2023-12-26 16:35:36 -05:00
Christian Enderle
30023c3bcc Add low-power support for stm32l5 2023-12-26 11:58:38 +01:00
eZio Pan
d90a97aa4c update metapac after stm32-data PR323
and refactor a few code with cargo clippy
2023-12-25 22:03:32 +08:00
Scott Mabin
487a6324ef stm32: make time provider public again 2023-12-23 00:14:10 +00:00
Ulf Lilleengen
530ead5fde
Merge pull request #2339 from embassy-rs/make-static-remove
Replace make_static! macro usage with non-macro version
2023-12-21 10:02:11 +00:00
Ulf Lilleengen
0acf7b09c3 chore: replace make_static! macro usage with non-macro version 2023-12-21 10:29:57 +01:00
eZio Pan
745d618ab7 note on circular mode DMA 2023-12-21 17:03:10 +08:00
Ulf Lilleengen
1c3cf347cb remove embedded-sdmmc
Remove support for embedded-sdmmc due to lack of maintainership. Bring
it back once the upstream includes the async functionality.
2023-12-20 13:25:36 +01:00
dragonn
871ed538b1 fix stm32 rtc year from 1970 base 2000 2023-12-19 21:17:42 +01:00
Dario Nieuwenhuis
c8c8b89104 stm32: doc everything else. 2023-12-19 18:03:20 +01:00
Dario Nieuwenhuis
189b15c426 stm32/timer: docs. 2023-12-19 17:35:38 +01:00
Dario Nieuwenhuis
7ec1ed4de3
Merge pull request #2324 from barnabywalters/stm32-usart-docs
stm32: Documented usart public API
2023-12-19 16:58:27 +01:00
Barnaby Walters
f97ef61ef8 Documented usart public API 2023-12-19 16:41:00 +01:00
Dario Nieuwenhuis
71584409d9
Merge pull request #2321 from embassy-rs/stm32-docs
stm32: document hrtim, qspi, sdmmc, spi.
2023-12-19 15:29:26 +00:00
Dario Nieuwenhuis
1ea87ec6e7 stm32: document hrtim, qspi, sdmmc, spi. 2023-12-19 16:21:51 +01:00
Dario Nieuwenhuis
7d9a76da00
Merge pull request #2313 from eZioPan/update-metapac6
match up with "DMA cleanup" metapac change
2023-12-19 15:20:15 +00:00
eZio Pan
3e2e109437 update metapac dep 2023-12-19 19:09:06 +08:00
Priit Laes
fc724dd707 stm32: i2c: Clean up conditional code a bit
By moving conditional code inside the functions, we can
reduce duplication and in one case we can even eliminate one...
2023-12-19 11:48:58 +02:00
eZio Pan
254d587385 match up with metapac change 2023-12-19 17:12:34 +08:00
Dario Nieuwenhuis
e1f588f520 stm32/sai: fix typo. 2023-12-19 00:36:50 +01:00
Dario Nieuwenhuis
49534cd405 stm32: more docs. 2023-12-19 00:10:36 +01:00
Dario Nieuwenhuis
138318f611 stm32/sai: docs, remove unused enums. 2023-12-19 00:06:30 +01:00
Dario Nieuwenhuis
c45418787c stm32/sai: remove unused Word trait. 2023-12-19 00:06:30 +01:00
Dario Nieuwenhuis
4deae51e65 stm32/sai: deduplicate code for subblocks A/B. 2023-12-19 00:06:30 +01:00
Dario Nieuwenhuis
c952ae0f49 stm32/sai: remove unimplemented SetConfig. 2023-12-19 00:06:30 +01:00
Dario Nieuwenhuis
124478c5e9 stm32: more docs. 2023-12-18 19:11:23 +01:00
Dario Nieuwenhuis
87c8d9df94 stm32/can: docs. 2023-12-18 18:44:51 +01:00
Dario Nieuwenhuis
21fce1e195 stm32/can: cleanup interrupt traits. 2023-12-18 18:44:51 +01:00
Dario Nieuwenhuis
7044e53af4 stm32/i2c: remove _timeout public API, share more code between v1/v2. 2023-12-18 18:24:55 +01:00
Dario Nieuwenhuis
c0cfd68c0c
Merge pull request #2297 from embassy-rs/stm32-docs
stm32: add some docs.
2023-12-17 23:59:29 +00:00
Dario Nieuwenhuis
80c9d04bbd stm32: add some docs. 2023-12-18 00:53:18 +01:00
RobertTDowling
b857334f92 STM32: Fix race in alarm setting, which impacted scheduling.
Detect potential race condition (should be rare) and return false back
to caller, allowing them to handle the possibility that either the
alarm was never set because it was in the past (old meaning of false),
or that in fact the alarm was set and may have fired within the race
window (new meaning of false). In either case, the caller needs to
make sure the callback got called.
2023-12-17 15:35:35 -08:00
Adam Greig
f6bc96dfbd
STM32: Enable flash support for STM32G4 2023-12-16 03:50:34 +00:00
Piotr Esden-Tempski
3568e4a5ff STM32 QSPI: Fix flash selection. 2023-12-15 16:47:56 -08:00
Oliver Rockstedt
560e728132 STM32H7: adjust flash latency and programming delay for series in RM0468 2023-12-15 14:14:30 +01:00
Oliver Rockstedt
c17fee27bb STM32H7: limit max frequency to 520MHz until cpu frequency boost option is implemented 2023-12-15 13:53:06 +01:00
Oliver Rockstedt
a8d0da91dc STM32H7: adjust frequency limits for series in RM0468 2023-12-15 12:22:17 +01:00
Oliver Rockstedt
e5e85ba02b STM32H7: Allow PLL1 DIVP of 1 for certain series 2023-12-15 11:42:58 +01:00
Dario Nieuwenhuis
138ed87b95
Merge pull request #2287 from embassy-rs/eh-rc3
Update embedded-hal to 1.0.0-rc.3
2023-12-14 15:29:48 +00:00
Dario Nieuwenhuis
d81395fab3 Update embedded-hal to 1.0.0-rc.3 2023-12-14 16:19:32 +01:00
eZio Pan
879c0ad989 after stm32-metapac update, TIM CR1 ARPE enum to bool 2023-12-14 21:33:35 +08:00
lights0123
dfba51d3f2
stm32: usart pin inversion 2023-12-10 18:39:45 -05:00
Carlos Barrales Ruiz
78f709a362 * Add GP TIM9 and TIM11 to be used as time_driver 2023-12-09 14:14:34 +01:00
Dario Nieuwenhuis
e99649e37d
Merge pull request #2271 from embassy-rs/update-metapac4
stm32: update stm32-metapac. Fixes USB on STM32WB.
2023-12-08 23:01:26 +00:00
Dario Nieuwenhuis
4051aead0f stm32: update stm32-metapac. Fixes USB on STM32WB. 2023-12-08 23:45:12 +01:00
Kaitlyn Kenwell
5973e69244
Conditionally compile line for all stm32wb chips 2023-12-08 17:20:23 -05:00
Kaitlyn Kenwell
4d3fcd8d2d Assert CR2.USV on stm32wb55, wb35 series chips
ref RM0434 p. 175
2023-12-08 17:06:37 -05:00
Dario Nieuwenhuis
6c746dcf39 Document how to bind multiple interrupts and handlers in bind_interrupts!. 2023-12-08 21:26:28 +01:00
Dario Nieuwenhuis
a9ec623622
Merge pull request #2246 from CaptainMaso/adc_f3_v1_1
stm32: add ADC f3_v1_1
2023-12-08 19:30:50 +00:00
Dario Nieuwenhuis
c27459c052 Update stm32-metapac. 2023-12-08 20:07:59 +01:00
Dario Nieuwenhuis
881cb16d28 stm32/adc: move convert resolution from PAC to version-specific mod. 2023-12-08 20:07:06 +01:00
Jesse Braham
925f5cbc26 Update all references to embasy-executor to the latest version 2023-12-06 12:05:47 +01:00
James Munns
18e89d7410
Add implementation note for embassy-stm32's time-driver
This is a detail I didn't originally understand when hoping to use TIM16/17 as alternative embassy-time driver providers.

Adding my note here to hopefully save the next person a little time.
2023-12-04 15:57:46 +01:00
Dario Nieuwenhuis
5f7cd821b5
Merge pull request #2249 from MathiasKoch/embassy-stm32/revert-day-of-week-fix
fix(embassy-stm32): Revert "fix day of the week conversion"
2023-12-04 13:35:27 +00:00
Mathias
e9fa79bd77 Revert "fix day of the week conversion"
This reverts commit 59a5e84df5.
2023-12-04 14:19:30 +01:00
Scott Mabin
334900752a update release version in examples and other crates 2023-12-04 13:15:10 +00:00
Dario Nieuwenhuis
03325ea81b update embedded-storage{,-async}, remove patch. 2023-12-04 13:48:36 +01:00
Carlos Barrales Ruiz
09592ffa6a stm32/rcc: Add support for HSE Oscillator in stm32g0 2023-12-04 13:28:00 +01:00
Sam Mason
35f16c6003 stm32: add ADC f3_v1_1 2023-12-04 14:03:31 +11:00
Dario Nieuwenhuis
b867f9b5b6
Merge pull request #2241 from adamgreig/stm32-uid
STM32: Add UID driver
2023-12-03 23:22:57 +00:00
Adam Greig
198ef8183e
STM32: Add UID driver 2023-12-03 23:17:49 +00:00
Dario Nieuwenhuis
696c703b8c
Merge pull request #2237 from badrbouslikhin/main
stm32/rcc: make h7 rm0399 power supply configurable
2023-12-03 22:47:34 +00:00
Badr Bouslikhin
ea43d74780
stm32/rcc: add missing h7 power config 2023-12-02 14:55:00 +01:00
Badr Bouslikhin
22c39fd697
stm32/rcc: refactor h7 rm0455,rm0468 and rm0468 power management 2023-12-02 14:47:36 +01:00
Badr Bouslikhin
87c0f1525d
stm32/rcc: enable power supply configurability for rm0455 and rm0468 2023-12-02 14:45:36 +01:00
Grant Miller
8c0e2748db stm32/timer: Fix frequency off-by-one 2023-12-01 22:09:15 -06:00
Badr Bouslikhin
c97f65ac60
stm32/rcc: make h7 rm0399 power supply configurable 2023-12-01 15:05:31 +01:00
Dario Nieuwenhuis
c6989dfbca Remove nightly and unstable-traits features in preparation for 1.75. 2023-11-29 17:26:33 +01:00
Dario Nieuwenhuis
4634316749 Update embedded-(hal,io,nal). 2023-11-29 17:01:36 +01:00
Dario Nieuwenhuis
6bdacb4f69 stm32/sdmmc: use unwrap to ensure panics get printed to defmt. 2023-11-27 00:35:41 +01:00
Dario Nieuwenhuis
a3ea01473a stm32: fix dac trait 2023-11-25 00:30:30 +01:00
Adam Greig
cf84c8bfd1 WIP: use generated metapac from corresponding PR for CI 2023-11-25 00:30:29 +01:00
Adam Greig
09d7950313 STM32 DAC: Rework DAC driver, support all families. 2023-11-25 00:29:45 +01:00
Adam Greig
267cbaebe6 STM32 DAC: Disable circular writes with GPDMA as it doesn't yet support circular transfers 2023-11-25 00:29:45 +01:00
Adam Greig
31fc337e2f STM32 DAC: Swap to new TSEL enum entirely in-HAL 2023-11-25 00:29:45 +01:00
Adam Greig
135f350020 STM32 DAC: Use new Mode enum for setting channel mode 2023-11-25 00:29:45 +01:00
Adam Greig
897663e023 STM32: Add cfg to differentiate L4 and L4+ families 2023-11-25 00:29:45 +01:00
Adam Greig
2218d30c80 STM32: Remove vestigal build.rs cfgs, add new flashsize_X and package_X cfgs, use in F3 RCC 2023-11-25 00:29:45 +01:00
Barnaby Walters
3efc3eee57 stm32/i2c: implement async i2c v1. 2023-11-24 23:55:46 +01:00
Dario Nieuwenhuis
bc65b8f7ec stm32/i2c: add async, dual interrupt scaffolding. 2023-11-24 23:55:45 +01:00
Andres Vahter
4f8c79c911 stm32 i2c: allow EHA traits without time feature 2023-11-24 15:56:19 +02:00
Mick van Gelderen
88f893da45
Format 2023-11-21 15:40:07 +01:00
Mick van Gelderen
19ba7da3fd
Rename _flush* methods 2023-11-21 15:37:38 +01:00
Tommas Bakker
06a83c0f89
Refactor bxcan split. 2023-11-21 15:34:34 +01:00
Dario Nieuwenhuis
766ec77ec5
Merge pull request #2198 from adamgreig/stm32-opamp
STM32: Don't enable opamps in new(), wait until configured
2023-11-20 22:47:19 +00:00
Adam Greig
d1af696605
STM32 opamp: use impl Peripheral instead of directly taking pins 2023-11-20 21:35:05 +00:00
Adam Greig
2386619f1f
STM32: Disable opamp when OpAmpOutput is dropped, not when the parent OpAmp is dropped 2023-11-20 21:17:09 +00:00
Dario Nieuwenhuis
cf82fa687c
Merge pull request #2192 from RobertTDowling/stm32h7-adc-clock
stm32h7 ADC: Fix stalled clock in default h7 config
2023-11-20 00:00:25 +00:00
RobertTDowling
7f258cd3c4 PR feedback 2023-11-19 15:56:34 -08:00
Dario Nieuwenhuis
5221705495 stm32/sai: fix build on chips with only SAI4 (like stm32h725re), improve sync config. 2023-11-19 22:06:05 +01:00
Adam Greig
814e096d22
STM32: Don't enable opamps in new(), wait until configured. 2023-11-18 19:37:56 +00:00
Dario Nieuwenhuis
5bc7557826
Merge pull request #2173 from andresv/expose-i2c-async-api-without-time
STM32 I2C: expose async API without needing "time" feature.
2023-11-17 23:47:46 +00:00
RobertTDowling
4947b13615 stm32h7 ADC: Fix stalled clock in default h7 config 2023-11-15 17:11:16 -08:00
Dario Nieuwenhuis
1f9b649f80 executor: release v0.3.3 2023-11-15 18:44:01 +01:00
Dario Nieuwenhuis
ea99671729
Merge pull request #2180 from MaxiluxSystems/gpdma-drop-fix
stm32/gpdma: fix drop() to use documented method for aborting transfer
2023-11-13 16:53:50 +00:00
Torin Cooper-Bennun
8eff749823 stm32/gpdma: fix drop() to use RM's method for aborting transfer
see e.g. STM32H503 RM section 15.4.4...

1. Write 1 into GPDMA_CxCR.SUSP
2. Poll GPDMA_CxSR.SUSPF until it is 1
3. Write 1 into GPDMA_CxCR.RESET (occurs upon next init, in new_inner())
2023-11-13 16:41:09 +00:00
Dario Nieuwenhuis
ace5221080 stm32/rcc: unify f2 into f4/f7. 2023-11-13 01:59:33 +01:00
Dario Nieuwenhuis
2376b3bdfa stm32/rcc: fix pll enum naming on f4, f7. 2023-11-13 01:56:50 +01:00
Dario Nieuwenhuis
066dc297ed stm32/rcc: unify l0l1 and l4l5. 2023-11-13 01:05:07 +01:00
Dario Nieuwenhuis
4fe344ebc0 stm32/rcc: consistent casing and naming for PLL enums. 2023-11-13 00:52:01 +01:00
Andres Vahter
0f2208c0af stm32 i2c: remove mod dummy_time 2023-11-11 14:29:24 +02:00
Andres Vahter
6c42885d4a stm32 i2c: remove pub _timeout api 2023-11-11 14:05:58 +02:00
Andres Vahter
3b33cc4691 i2c: expose async api without needing time
This exposes I2C async API without needing "time" feature. With "time" feature additional async API with timeouts is exposed.
2023-11-10 16:04:25 +02:00
xoviat
05a4bb3a4a rustfmt 2023-11-08 19:06:29 -06:00
xoviat
4b4c28d875 stm32: add low power for g4 2023-11-08 19:04:20 -06:00
xoviat
553f0158c0 stm32: resolve eth/v2 security bug
fixes #2129
2023-11-07 15:39:06 -06:00