3213 Commits

Author SHA1 Message Date
Thomas Giesel
bfbecdf93a Use proper RCC clock enable for opamps
new() now resets the opamp and enables its clock. The clock is
disabled when the opamp is dropped. On families that use
SYSCFGEN (F3 and G4), this is not done because this
clock is always on in Embassy.

This change makes use of the RCC driver, which uses a reference
counter to prevent conflicts. The opamp itself is still disabled
when its output is dropped.
2025-07-05 22:47:24 +02:00
Gerzain Mata
51675e9bc7 Added STM32WBA6XXX devices as features
Added 2 wba6 features to cargo batch in ci.sh

WIP

Added default RTC rust version for undefined peripherals

Added missing generated RTC peripheral to be handled by rtc/v3.rs

Reordered cfg_attrs in rtc/mod.rs
2025-06-26 04:38:22 -07:00
Thomas Giesel
ef4faffcb5
Merge branch 'main' into generate_all_opamp_pins 2025-06-25 21:10:25 +02:00
Thomas Giesel
ca14f54529 Adapt opamp driver to new opamp IP version numbers 2025-06-25 21:06:39 +02:00
Thomas Giesel
cbf61765f1 Generate pins for new opamp pin naming scheme
The new code implements the corresponding traits for the
common opamp pin naming scheme of all families, which
is VINPx/VINMx.

The same pin must not be used for multiple channels for the
same opamp. For example, if VINM0 and VINM1 of the same opamp
were assigned to the same pin, the channel would not be unique,
meaning that the traits would be implemented in a conflicting
manner.
2025-06-25 08:27:44 +02:00
jake-taf
9cb5c6d001
Fix issues #4333
Allow configs to be used in this macro
2025-06-23 10:30:09 -04:00
Dario Nieuwenhuis
454a5e9044
Merge pull request #4272 from cschuhen/fdcan_refcounter_raii
Fdcan use RAII for reference counting.
2025-06-22 21:37:15 +00:00
Dario Nieuwenhuis
bf3170ed38
Merge pull request #4294 from AlanRosenthal/rtc_c0
Add RTC example for STM32C0
2025-06-22 21:22:10 +00:00
Dario Nieuwenhuis
699626ced7
Merge pull request #4324 from plorefice/hsem-fixes
embassy-stm32: fix HSEM initialization and core detection
2025-06-22 21:08:38 +00:00
Dario Nieuwenhuis
c9709cf19d
Merge pull request #4311 from antonok-edm/sdmmc-set-datatime-during-init
[sdmmc] Set `datatime` during initialization
2025-06-22 21:04:22 +00:00
Corey Schuhen
8b280688e1 FDCAN/BXCAN: Finish implementation of RAII instance counters.
- Use DeRef in all types
    - Change Name of internal_operation and its enum
    - move into Info to avoid macro code dup
2025-06-21 12:31:56 +10:00
Tobias Naumann
e75b344089 Add TxGuard and RxGuard which impl RAII for the STM32 CAN reference counting 2025-06-21 12:29:36 +10:00
Corey Schuhen
b2dcdad51d BXCAN: Put State inside a critical section mutex of RefCell. This removed unsound code that was giving out mut& to State
This change is equiverlent to f5658d6833cb140296a0b6f25b7eb6d16f06c520
that was already done for the FDCAN driver.
2025-06-21 11:58:53 +10:00
Pietro Lorefice
59228e2ab4 stm32: hsem: fix broken CPUID detection 2025-06-20 10:47:37 +02:00
Pietro Lorefice
be5b62bdd4 stm32: hsem: add missing RCC initialization 2025-06-20 10:46:33 +02:00
Anton Lazarev
e155d17328
sdmmc: set datatime during initialization 2025-06-16 17:55:29 -07:00
Alan Rosenthal
5534a36507 Add RTC example for STM32C0
Tested on STM32C0116F6

Requries: https://github.com/embassy-rs/stm32-data/pull/617
2025-06-10 18:46:41 -04:00
jrmoulton
fb71139522
fix name change 2025-06-10 15:53:06 -06:00
jrmoulton
3b2dd2bad8
fmt 2025-06-10 15:53:02 -06:00
jrmoulton
cfad9798ff
merge new embassy changes 2025-06-10 15:48:36 -06:00
David Lawrence
c10688cd40 Add public function to get current clock configuration 2025-06-06 13:05:35 -04:00
Dario Nieuwenhuis
141c170db4
Merge pull request #4277 from diondokter/fix-usb-race
STM32 USB: Read data before register update
2025-06-03 14:14:45 +00:00
Dion Dokter
9b3b6c5421 STM32 USB: Read data before register update 2025-06-03 16:08:55 +02:00
Frank Stevenson
011d7832f8 Use modify() for subsequent changes to RCC.cr() 2025-06-03 15:47:33 +02:00
Dario Nieuwenhuis
c637ee7d79
Merge pull request #4271 from cschuhen/fdcan_critical_section
Use a critical section mutex in CAN Fdcan driver.
2025-06-01 12:37:12 +00:00
Dario Nieuwenhuis
f3983328e0
Merge pull request #4231 from ROMemories/feat/stm32-rcc-const-constructors
feat(stm32): provide a `const` constructor on `rcc::Config`
2025-06-01 12:19:39 +00:00
Dario Nieuwenhuis
fc4139146f
Merge pull request #4251 from kpfleming/improve-stm32-ringbuffereduart-docs
stm32: Expand documentation of RingBufferedUartRx.
2025-06-01 12:15:19 +00:00
Corey Schuhen
010744802f Remove duplicate calc_timestamp and move to 'Registers' struct. 2025-05-31 09:09:12 +10:00
Corey Schuhen
f5658d6833 Put State inside a critical section mutex of RefCell. This removes the unsound code that was giving out mut&. to State 2025-05-31 08:20:03 +10:00
Corey Schuhen
eba9ddc805 Switch to SendDynamicSender for FDCAN. 2025-05-31 08:20:03 +10:00
Dario Nieuwenhuis
9b8d6d6f22
Merge pull request #4267 from melvdlin/stm32-qspi-from
convert embassy-stm32::qspi::enums `Into` impls into equivalant `From` impls
2025-05-30 11:15:54 +00:00
melvdl
86efdc9cc3 convert embassy-stm32::qspi::enums Into impls into equivalant From impls 2025-05-30 00:30:27 +02:00
Willdew
3d617007a2 fixed n in set_sq to be indexed correctly 2025-05-29 23:06:01 +02:00
Dario Nieuwenhuis
645883d874
Merge pull request #4223 from embedded-rust-iml/feature/drop-impl-for-stm32-fdcan
Cleanup Pins and RCC for FDCAN on STM32
2025-05-27 17:44:11 +00:00
Dario Nieuwenhuis
aab043b0f3
Merge pull request #4252 from kpfleming/assert-empty-buffer-buffereduart
stm32: Assert in BufferedUart that the buffers are not empty.
2025-05-27 15:17:29 +00:00
Ulf Lilleengen
5f3204f9c3
Merge pull request #4232 from RaulIQ/main
[embassy-stm32] add PWM multi channel waveform generation using DMA burst mode
2025-05-27 06:25:33 +00:00
Kevin P. Fleming
b9f7478ada stm32: Improvements to CRC HAL.
* Corrects spelling and grammar errors in documentation.

* Removes non-v1 code from v1-only source file.

* Adds 'read' operation for v2/v3, to be consistent with v1.

* Removes 'reset' from the v2/v3 'reconfigure' operation to match the
  documentation (the only user is the 'new' function which already
  issues a reset).
2025-05-26 18:43:09 -04:00
ROMemories
44c53365ad fixup! feat(stm32-l): provide a const constructor on rcc::Config 2025-05-26 14:44:48 +02:00
ROMemories
a5a27ef52b fixup! feat(stm32-wba): provide a const constructor on rcc::Config 2025-05-26 14:43:46 +02:00
ROMemories
5d6b51d910 fixup! feat(stm32-l): provide a const constructor on rcc::Config 2025-05-26 14:43:39 +02:00
ROMemories
fce84bd51b fixup! feat(stm32-g4): provide a const constructor on rcc::Config 2025-05-26 14:43:29 +02:00
ROMemories
ca17b41d0d fixup! feat(stm32-g0): provide a const constructor on rcc::Config 2025-05-26 14:43:21 +02:00
ROMemories
8fa07ac062 fixup! feat(stm32-c0): provide a const constructor on rcc::Config 2025-05-26 14:43:07 +02:00
Kevin P. Fleming
a860fea0a5 stm32: Assert in BufferedUart that the buffers are not empty. 2025-05-25 08:51:27 -04:00
Kevin P. Fleming
ca5fe2645d Move new documentation to RingBufferedUartRx struct. 2025-05-24 19:34:07 -04:00
Kevin P. Fleming
2ed5e04fd0 stm32: Expand documentation of RingBufferedUartRx.
Explain to users of this driver how 'waiting for bytes' actually
works, and what that may mean for latency introduced in their
application.

Also correct references to 'start' to be 'start_uart'.
2025-05-24 16:39:25 -04:00
Ulf Lilleengen
94f9b27074
Merge pull request #4228 from okhsunrog/adding_eeprom
Adding EEPROM support to embassy-stm32
2025-05-23 14:15:15 +02:00
RaulIQ
967ae161a0 doc: update documentation to pass test 2025-05-22 10:56:48 +03:00
RaulIQ
3c3c7877cd format simple_pwm.rs with rustfmt 2025-05-22 10:44:38 +03:00
Matt Johnston
5e49985ed6 embassy-sync: bump to 0.7.0 2025-05-22 13:29:55 +08:00