3247 Commits

Author SHA1 Message Date
Michael Gomez
f1feedf190 BufferedUart initialization
This change modifies UART initialization throughout Embassy to take pins
before interrupts.

Related to #1304.
2025-04-04 21:54:36 -07:00
Gabriel Smith
f8e5c90266 stm32/timer: Support one pulse mode
Currently does not support output pins so it really is only useful to
create delayed interrupts based on external signals.
2025-04-04 17:40:22 +00:00
Gabriel Smith
eee2d8c84d stm32/timer: Merge channel typestate structs 2025-04-04 17:40:15 +00:00
Matt Johnston
5f7da4cfc8 stm32: xspi fixes and consistency
Fix some incorrect DTR flags, fix _bit vs _Bit inconsistency (copied
from qspi and ospi).

Use the same NCS pullup for all constructors.

xspi is now enabled in PWR register
2025-04-04 17:41:53 +08:00
Matt Johnston
6b80f3bada stm32: xspi: rework switching between ncs1 and ncs2 2025-04-04 17:41:53 +08:00
Matt Johnston
e22fe7cbcf stm32: xspi wait for prescaler change
This is documented as being required (and is done by stm32cube),
hasn't been observed as a problem though.
2025-04-04 17:41:53 +08:00
Matt Johnston
65f849a589 stm32: xspi update for Peri 2025-04-04 17:41:53 +08:00
Matt Johnston
36a5b02774 stm32: Update xspi for stm32-metapac changes
This is now closer to the original ospi, using more idiomatic naming.

Some dead code is removed (previously was hidden by [allow(dead_code)]).
2025-04-04 17:41:52 +08:00
Rick Rogers
6d384a1a39 introduce stm32h7rs xspi 2025-04-04 15:36:33 +08:00
Matt Johnston
b2d9203af7 Bump stm32-data 2025-04-04 15:22:32 +08:00
Fredrik Reinholdsen
47869d122a fix: Fix for #3888 async I2C read bug for introduced in #3887 in STM32 I2C v2 driver
In fixing a different timing related bug, #3887, a new bug was introduced causing I2C reads longer than 255 bytes to timeout for some I2C devices, #3888.
The issue was caused by incorrect branch order, and poll function being called unnecessarily.

Async I2C read poll function now only looks for I2C transfer complete reload (TCR) interrupts, intead of TCR and transfer complete (TC) interrupts,
since TC interrupts are not raised when AUTOEND bit is set.
2025-04-01 21:28:07 +02:00
Anton Lazarev
dc31bfd829
refactor to reduce code duplication 2025-03-31 12:47:41 -07:00
Anton Lazarev
0a231505d8
support 8 lane data bus 2025-03-31 12:47:41 -07:00
Anton Lazarev
b92eb948b5
fix d6->d7 typo from build.rs 2025-03-31 12:47:41 -07:00
Anton Lazarev
57731a7896
support eMMC 2025-03-31 12:47:41 -07:00
Anton Lazarev
5325f1d911
scaffold eMMC support 2025-03-31 12:47:41 -07:00
Anton Lazarev
14bb4ee9e4
use ready_for_data status to determine when write has finished
`read_sd_status` works, but it's somewhat of a hack, but also won't work
on eMMC devices. The official spec for both SD and eMMC recommends using
this method.
2025-03-31 12:47:41 -07:00
Anton Lazarev
5d01712d84
use upstream command definitions 2025-03-31 12:47:41 -07:00
Anton Lazarev
d22a7a3a96
update sdio-host to 0.9 2025-03-31 12:47:41 -07:00
Anton Lazarev
280d21a6b4
update sdio-host to 0.6 2025-03-31 12:47:41 -07:00
Tobias Naumann
c29fc3532b Merge branch 'main' into fix/ringbuffered-error-handling to resolve merge conflicts 2025-03-31 16:48:13 +02:00
Ulf Lilleengen
aadd4e5513
Merge pull request #3968 from embedded-rust-iml/feature/ringbuffered-embedded-hal-nb
Add embedded_hal_nb::serial::Read impl for RingBufferedUartRx
2025-03-31 07:05:19 +00:00
elagil
ca8be1c976 fix: stm32g4 calibration delays 2025-03-29 22:01:54 +01:00
Dario Nieuwenhuis
3a3ab6cded
Merge pull request #3928 from agrif/stm32-i2c-set-config
Fix SetConfig implementation for STM32 I2C v2
2025-03-28 15:17:21 +00:00
techmccat
ce578b62b8 stm32: run cargo fmt 2025-03-28 10:45:14 +01:00
techmccat
0621087f6f stm32: allow using LSI/LSE as SYSCLK on g0/c0 2025-03-28 10:35:05 +01:00
Dario Nieuwenhuis
d41eeeae79 Remove Peripheral trait, rename PeripheralRef->Peri. 2025-03-27 15:18:06 +01:00
Tobias Naumann
14d079ae84 Cleanup stm32_metapac register usage in usart module 2025-03-27 12:03:52 +01:00
Tobias Naumann
9e31a45134 Fix unused imports 2025-03-27 11:58:51 +01:00
Dario Nieuwenhuis
a592acb806 stm32/cryp: remove DMA generic param. 2025-03-25 22:18:21 +01:00
Dario Nieuwenhuis
db86aba841 stm32/hash: remove DMA generic param. 2025-03-25 21:57:37 +01:00
Dario Nieuwenhuis
9a0afa7bf4 stm32/sdmmc: remove DMA generic param. 2025-03-25 21:43:47 +01:00
Dario Nieuwenhuis
73ec3a7506 stm32/dac: remove DMA generic params. 2025-03-25 21:31:28 +01:00
Dario Nieuwenhuis
f007b53db3 stm32/dac: dedup pin and DMA traits, demacrofify. 2025-03-25 20:49:09 +01:00
Dario Nieuwenhuis
17cce79807
Merge pull request #3992 from elagil/usb_fixes
Small USB-related fixes
2025-03-25 11:03:53 +00:00
John Kjellberg
3e63a2e5df Clarified ADC API documentation for some STM32s. 2025-03-25 11:10:51 +01:00
elagil
15394ae5fa fix(usb): blocking wait 2025-03-24 19:49:44 +01:00
elagil
e34b4d69ee fix: build 2025-03-22 11:58:50 +01:00
elagil
07387ea405 fix: apply STM32H5 USB errata (OUT transfer delay) 2025-03-22 11:47:36 +01:00
Tobias Naumann
402b78138b Check and clear idle and error flags together 2025-03-21 14:23:25 +01:00
Tobias Naumann
ac7c44c1d1 Use write closure to clear idle flag, only read rdr on usart versions which need it 2025-03-21 14:22:26 +01:00
Tobias Naumann
1e6192ffa5 Add embedded_hal_nb::serial::Read impl for RingBufferedUartRx 2025-03-21 11:20:28 +01:00
Rasmus Melchior Jacobsen
5e762e8cf4 Fix compile error in ospi 2025-03-20 01:58:44 +01:00
Rasmus Melchior Jacobsen
97ed7f085a feat(stm32): Add OTP flash region (again) 2025-03-20 01:58:44 +01:00
Timofei Korostelev
8c6fa83006 Added ADC support for STM32C0. 2025-03-20 01:58:44 +01:00
Dario Nieuwenhuis
9407ac67d3 Update stm32-data. 2025-03-20 01:58:44 +01:00
Tobias Naumann
71d94ad5e7 Recover from errors in ringbuffered usart 2025-03-20 00:43:38 +01:00
dimi
e9b842082d embassy-stm32::hspi: gate derive(defmt::Format) behind feature flag 2025-03-18 17:19:11 +01:00
Dario Nieuwenhuis
86572bf009
Merge pull request #3964 from elagil/sof_out_usb
Add optional USB driver SOF output
2025-03-16 21:10:27 +00:00
elagil
63f7a5da09 fix: disable new_with_sof for STM32L1 2025-03-16 22:02:43 +01:00