Commit graph

2088 commits

Author SHA1 Message Date
Dario Nieuwenhuis
3387ee7238 stm32/gpio: remove generics. 2024-01-22 21:31:06 +01:00
Dario Nieuwenhuis
43b6258a69
Merge pull request #2416 from andresv/stm32-fix-buffered-uart-flush
stm32: fix buffered uart flush
2024-01-20 01:50:55 +00:00
Dario Nieuwenhuis
67159d80bb
Merge pull request #2429 from jr-oss/stm32_simple_pwm_add_set_output_compare_mode
stm32/simple_pwm: add set_output_compare_mode
2024-01-20 01:33:49 +00:00
Dario Nieuwenhuis
326bff322e
Merge pull request #2415 from hdoordt/patch-1
Make adc::Resolution::to_max_count const
2024-01-20 01:31:22 +00:00
Andres Vahter
ec2e3de0f4 stm32 uart: fix buffered flush for usart_v1, usart_v2
There is one caveat. For some reason with first send using usart_v1/usart_v2 TC flag appears right after first byte from buffer is written to DR. Consecutive transfers work as expected - TC flag appears when last byte is fully transferred to wire.
2024-01-20 00:15:40 +01:00
Andres Vahter
534c53c901 stm32 uart: remove unwrap
unwraps take more space because of panics
2024-01-20 00:15:40 +01:00
Andres Vahter
c936d66934 stm32 uart: fix flush for non usart_v4 variants
Byte was written to TDR and right after that waker was called. This means `flush` would see that `tx_buf` is empty and can return Ready although actually hardware was still writing this last byte to the wire.
With this change non `usart_v4 ` variants would also use TC interrupt to check when last byte was sent out.
2024-01-20 00:15:39 +01:00
Andres Vahter
17d6e4eefe stm32 uart: do not wake after sending each byte
usart_v4 uses TC interrupt to see if all bytes are sent out from the FIFO and waker is called from this interrupt. This minimises unnecessary wakeups during sending.
2024-01-20 00:15:39 +01:00
Andres Vahter
ec47e931ac stm32: fix buffered uart flush
usart_v4 uses internal FIFO and therefore actually all bytes are not yet sent out although state.tx_buf.is_empty()
2024-01-20 00:15:39 +01:00
Harry Brooke
d781e231cd make usart::State private 2024-01-19 23:20:20 +01:00
Dario Nieuwenhuis
9cd0beaee3
Merge pull request #2450 from shufps/feat/timer-driver-tim22-tim23
adds timer-driver for tim21 and tim22 (on L0)
2024-01-15 12:01:22 +01:00
shufps
e969b88e5a fixed trailing white spaces 2024-01-15 11:23:41 +01:00
shufps
2b64913664 fixed tim21 2024-01-15 08:11:35 +01:00
shufps
4e2361c024 adds timer-driver for tim21 and tim22 (on L0) 2024-01-15 08:11:22 +01:00
Dario Nieuwenhuis
583555bc8a Suppress "unused" warnings. 2024-01-14 23:20:51 +01:00
shufps
018c48cf1c changes to get usb working on a L1. Adds a usb_serial example too 2024-01-14 22:43:22 +01:00
Dario Nieuwenhuis
4c23f197b3 Fix invalid "async" crates.io category. 2024-01-12 00:39:01 +01:00
Dario Nieuwenhuis
6a1c415a4c Complete cargo.tomls more. 2024-01-12 00:32:47 +01:00
Dario Nieuwenhuis
9f6517e408 stm32,nrf: add warning on docs.rs directing the user to docs.embassy.dev. 2024-01-11 23:43:17 +01:00
Dario Nieuwenhuis
5304994363 Add docs.rs metadata to all crates. 2024-01-11 23:17:02 +01:00
Dario Nieuwenhuis
22197320ff bump embassy-time 0.3, embassy-executor 0.5, embassy-net 0.4. 2024-01-11 23:01:24 +01:00
Dario Nieuwenhuis
b3ab2d91f7 stm32: use released metapac. 2024-01-11 22:05:01 +01:00
Dario Nieuwenhuis
e18d673721 More readme fixes. 2024-01-11 21:23:07 +01:00
Barnaby Walters
557399e2d6 Included README.md in docs 2024-01-11 20:00:33 +01:00
Barnaby Walters
1697386820 Correction from review 2024-01-11 19:57:24 +01:00
Barnaby Walters
ccf61f50fe Corrections from review 2024-01-11 19:55:15 +01:00
Barnaby Walters
4caafe10ae Expanded readme for crates release 2024-01-11 19:49:05 +01:00
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