Commit Graph

552 Commits

Author SHA1 Message Date
3486d59d73 stm32: remove Dbgmcu from public API.
The use case is already covered by `config.enable_debug_during_sleep`.
2022-01-05 00:00:44 +01:00
2eb0cc5df7 stm32/rcc: remove Rcc struct, RccExt trait.
All the RCC configuration is executed in init().
2022-01-05 00:00:44 +01:00
c3fd9a0f44 stm32/rcc: f4/f7 cleanup and make a bit more consistent. 2022-01-04 21:17:17 +01:00
b06e705a73 stm32/rcc: change family-specific code from dirs to single files.
Consistent with how other peripherals handle their versions.
2022-01-04 19:28:15 +01:00
89b009b11d stm32h7/rcc: remove unneeded DMA enable settings.
These are automatically enabled by dma::init().
2022-01-04 13:31:30 +01:00
5d2f40b337 stm32wl/rcc: remove unneded gpio enables in RCC.
These are already done by gpio::init().
2022-01-04 13:31:30 +01:00
cdc66e110f stm32/rcc: remove builders on Config.
This makes API consistent with other Config structs in Embassy, where
the convention is to not use builders.
2022-01-04 13:31:30 +01:00
cdfd128185 Merge #545
545: Add adapter for implementing async traits for blocking types r=lulf a=lulf

This allows writing drivers relying on async traits, while still
functioning with implementations that already implement the embedded-hal
traits.

Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
2022-01-03 14:17:21 +00:00
c0e94a7042 Merge #563
563: Initial ADC support for on STM32F1xx  r=Dirbaio a=sjoerdsimons

Add an ADC implementation for F1 based chips. Primarily tested using ADC1, proper functionality for ADC2 probably needs some extra work as it's mainly a slave and can't e.g. measure vrefint by itself.

Needs https://github.com/embassy-rs/stm32-data/pull/115

Co-authored-by: Sjoerd Simons <sjoerd@collabora.com>
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-01-01 11:45:23 +00:00
c20ef419a6 Merge #558
558: Port buffered uart to v1 stm32 hardware r=Dirbaio a=DCNick3

#526 seems to suggest that it will be rewritten for DMA support, but I am not sure how to implement it and the port was quite straightforward, so here it is. It might be immediately useful before DMA version will be implemented

Note that I have not tested this on v2 hardware

Co-authored-by: Nikita Strygin <nikita6@bk.ru>
2022-01-01 10:51:14 +00:00
92f2c6d09c adc: Implement support for f1 ADC block
Add basic support for the STM32F1xx ADC blocks.
2021-12-30 10:51:54 +01:00
a93b1141e9 stm32f1: Store adc clock rate in Clocks struct 2021-12-30 10:50:28 +01:00
8da6471a50 stm32/dac: Fix disable_channel
Previously disable_channel enabled rather than disabled the requested
channel due to an apparent copy-paste error. Refactor to eliminate this
sort of issue by construction.
2021-12-28 23:27:59 -05:00
a94932be02 Mark clear_interrupt_flag as unsafe 2021-12-26 18:29:41 +03:00
6b08c70273 Port buffered uart to v1 stm32 hardware
- No DMA
- Create clear_interrupt_flag function to
    handle differences between v1 and v2 hardware
2021-12-26 18:13:19 +03:00
d1740b10f0 Lower some verbose logs to trace. 2021-12-23 13:43:14 +01:00
3811c0a401 Add adapter for implementing async traits for blocking types
This allows writing drivers relying on async traits, while still
functioning with implementations that already implement the embedded-hal
traits.

Add examples to stm32l4 for using this feature.
2021-12-17 12:54:51 +01:00
2bbd1ddb8a Remove unneeded rustfmt::skip 2021-12-16 11:37:53 +01:00
985c11fad5 Update rust-toolchain 2021-12-16 11:34:20 +01:00
d5a3064c2c Merge #540
540: Initial support for STM32F3 r=Dirbaio a=VasanthakumarV

The [companion PR](https://github.com/embassy-rs/stm32-data/pull/109) in `stm32-data` should be merged before this PR.
The examples were tested on an STM32F303VC MCU.

Co-authored-by: VasanthakumarV <vasanth260m12@gmail.com>
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2021-12-16 07:30:03 +00:00
6597e67036 Add finish_dma function 2021-12-14 17:46:25 -06:00
a13a7a6616 Replace wait_for_idle with spin_until_idle 2021-12-14 17:46:25 -06:00
e75cb1a564 Regs type alias 2021-12-14 15:39:00 -06:00
b06658c195 Refactor new 2021-12-14 15:39:00 -06:00
78c5d65ca9 [lint] Add newline in pwr file 2021-12-13 18:16:58 +05:30
3f33d307ff [feature] Add rcc register support for F3 2021-12-13 14:50:13 +05:30
e2c074d133 [feature] Add pwr register support for F3 2021-12-13 13:49:41 +05:30
7733d11f90 [generate] Add stm32f3 chips to the Cargo manifest 2021-12-13 13:49:41 +05:30
45ef944457 Stm flush required implementing also, along with std alloc split 2021-12-10 15:11:41 +11:00
1dd5a71c07 Add DCMI peripheral support. 2021-12-09 12:56:39 +01:00
4ddd23d623 stm32/usart: unify v1 and v2 2021-12-08 05:12:48 +01:00
022c4cb739 stm32/dma: simplify impls a bit. 2021-12-08 03:30:07 +01:00
b316d2620c stm32/dma: improve trait docs, seal Word. 2021-12-08 03:18:15 +01:00
6179da6b9c stm32/dma: eagerly start transfers when calling the functions.
`async fn`s do nothing until polled, but we want the DMA transfer to
immediately start in this case. Drivers rely on it. Some require special
orders, such as "start DMA, start SPI, then wait for DMA" which is awkward
to do without eager start.

Also use a manually-impl'd future, this allows getting rid of the "double"
Unborrow channel clone.
2021-12-08 03:04:39 +01:00
4e349d0f5d stm32/dma: use the right waker slot number for DMA2 (must add 8) 2021-12-08 01:54:31 +01:00
fd2fe62b5f stm32/dma: rename is_stopped to is_running.
Note that this does NOT invert the result of `en()` because it was
wrong before.
2021-12-08 01:51:39 +01:00
b2910558d3 Refactor DMA traits. 2021-12-07 21:43:47 +01:00
e2719aba10 Further extend the dma channel trait 2021-12-07 21:43:47 +01:00
93e047ede2 cargo fmt 2021-12-07 21:43:47 +01:00
3411039cb9 Implement extended Channel trait to bdma.rs 2021-12-07 21:43:47 +01:00
2d2c6d0e01 Implement extended Channel trait to dma.rs 2021-12-07 21:43:47 +01:00
3272987d92 Expand channel trait 2021-12-07 21:43:47 +01:00
f9ac0c8047 Add back MISO flush 2021-12-07 09:40:45 +01:00
79baa04118 Implement blocking traits with a macro 2021-12-07 00:03:52 -06:00
bf1f80afa1 Unify blocking trait impls 2021-12-07 00:03:52 -06:00
3a17e3a2a5 Move async trait impls to mod 2021-12-07 00:03:52 -06:00
20d2151b1d check_error_flags function 2021-12-07 00:03:52 -06:00
496579b48b Move Word trait to mod 2021-12-07 00:03:52 -06:00
7c78247be3 v2: set frxth and ds in new 2021-12-06 22:36:53 -06:00
d76bc45e30 Move Spi drop impl to mod 2021-12-06 17:19:55 -06:00