Commit graph

2428 commits

Author SHA1 Message Date
Eric Yanush
6e1290b3f1 Ensure bus errors are forwarded only once, enable bus off/passive/warning interrupts 2024-04-22 01:46:24 -06:00
Joël Schulz-Ansres
152d514f52 Fix spelling in vbus_detection doc comment 2024-04-22 00:39:59 +02:00
Dario Nieuwenhuis
00708d8c27
Merge pull request #2833 from qwerty19106/stm32_fix_half_duplex_uart
Allow Uart::new_half_duplex for any usart version
2024-04-18 14:49:11 +00:00
qwerty19106
ce58cd0f1c Allow Uart::new_half_duplex for all usart_vx 2024-04-18 10:34:52 +04:00
Torin Cooper-Bennun
80b3db4ea6 stm32: can: fd: implement bus-off recovery
as per RM0492 and other relevant RMs, bus-off recovery is not automatic.
CCCR.INIT is set by the device upon bus-off; the CPU must reset
CCCR.INIT to initiate the recovery.
2024-04-17 14:58:08 +01:00
Torin Cooper-Bennun
901bdfc7b8 stm32: can: fd: on_interrupt: simplify, rm redundant code
PED, PEA are never enabled in the interrupt enable code in
peripheral.rs; no need to process the flags here
2024-04-17 14:57:58 +01:00
Dario Nieuwenhuis
bab4affe7c
Merge pull request #2813 from diondokter/u0-dion
More U0 support
2024-04-16 18:45:09 +00:00
Dario Nieuwenhuis
2bd5095991 stm32/usb: enable USV for U0. 2024-04-16 20:37:42 +02:00
Dario Nieuwenhuis
e5e9fb78af update stm32-metapac. 2024-04-16 20:37:10 +02:00
Daniel Igaz
32b1b4067f Bug: There are at most 18 channels for the ADC. 2024-04-16 20:27:12 +02:00
Dario Nieuwenhuis
b3710a31f0
Merge pull request #2825 from MaxiluxSystems/fix/adc-blocking-delay-overflow
stm32: adc: fix blocking_delay_us() overflowing when sys freq is high
2024-04-16 14:22:39 +00:00
Torin Cooper-Bennun
d928663bae stm32: adc: fix blocking_delay_us() overflowing when sys freq is high
e.g. H503 running at 250 MHz resulted in an upper bound of 17 us here.
casting up to u64 for intermediate calc allows the upper bound to be
increased by a factor of 1e6
2024-04-16 15:13:31 +01:00
Dion Dokter
c8c7c718f3 Merge branch 'master' into u0-dion 2024-04-16 13:48:18 +02:00
James Munns
2315a39293 Remove nested CS 2024-04-16 13:39:00 +02:00
James Munns
75352d181c Add critical sections to avoid USB OTG Errata 2024-04-16 12:07:40 +02:00
Dario Nieuwenhuis
d6b1233f16 stm32/usart: remove DMA generic params. 2024-04-16 02:00:55 +02:00
Dario Nieuwenhuis
524c24c8b3
Merge pull request #2808 from MaxiluxSystems/feature/stm32h50-flash-swap-banks
stm32: flash: h50: implement bank swapping
2024-04-15 22:35:07 +00:00
Dario Nieuwenhuis
6d122c274f
Merge pull request #2792 from wagcampbell/wgc/u5-flash-non-secure
Support non-secure flash operations on STM32U5
2024-04-15 22:28:34 +00:00
Warren Campbell
c5119c6318 Add support for using secure registers 2024-04-15 18:02:29 -04:00
Dario Nieuwenhuis
913bb19a34 stm32/i2c: remove DMA generic params. 2024-04-15 23:40:12 +02:00
Dario Nieuwenhuis
2eab099b85 stm32/spi: rename rxdma, txdma -> rx_dma, tx_dma. 2024-04-15 21:56:08 +02:00
Dario Nieuwenhuis
09a284e959 stm32: rename mod traits to macros. 2024-04-15 21:52:40 +02:00
Dario Nieuwenhuis
02da66aec8 stm32/dma: add ChannelAndRequest helper. 2024-04-15 21:52:40 +02:00
Dario Nieuwenhuis
be087e5d43 stm32/spi: remove DMA generic params. 2024-04-15 21:23:49 +02:00
Warren Campbell
2fa0bb7d6e Use non-secure registers for u5 flash 2024-04-15 14:59:31 -04:00
Torin Cooper-Bennun
f66b63017c stm32: flash: h50: implement bank swapping 2024-04-15 11:37:40 +01:00
Dario Nieuwenhuis
fcaa7de87e stm32/rcc: make ClockMux non_exhasutive. 2024-04-15 01:12:28 +02:00
Dario Nieuwenhuis
65c085ce91 Add stm32u0 support. 2024-04-14 22:29:07 +02:00
Dario Nieuwenhuis
87b79d4499
Merge pull request #2807 from chemicstry/rcc_methods
Expose RCC enable and disable methods
2024-04-14 20:14:46 +00:00
Dario Nieuwenhuis
4079a8acf8 stm32/adc: update g4 for new pac. 2024-04-14 22:06:41 +02:00
Dario Nieuwenhuis
1f3b690f76 stm32/flash: remove otp flash regions (removed in newer metapacs). 2024-04-14 22:06:41 +02:00
Michael Zill
ffc61f78b0 stm32/spi,crc: update for new PAC 2024-04-14 22:06:41 +02:00
Dion Dokter
e224e6cef4 Add CRC 2024-04-14 01:10:20 +02:00
Dion Dokter
ca84be80bc Add wdt and flash 2024-04-14 00:45:53 +02:00
Dion Dokter
b659e3d529 Add ADC 2024-04-14 00:04:13 +02:00
Dion Dokter
5f23e39052 Add some examples.
- usart works
- dac works
- rng gets stuck on while loop
- usb_serial works, but cannot test due to lack of user usb port
- adc needs work and does not work yet
2024-04-13 18:40:46 +02:00
Dario Nieuwenhuis
ec6ff217ca Add stm32u0 support. 2024-04-13 03:57:21 +02:00
Dario Nieuwenhuis
52bd24499c stm32/adc: update g4 for new pac. 2024-04-13 03:34:28 +02:00
Dario Nieuwenhuis
d9426549c3 stm32/flash: remove otp flash regions (removed in newer metapacs). 2024-04-13 03:33:16 +02:00
Michael Zill
9f4d320d67 stm32/spi,crc: update for new PAC 2024-04-13 03:33:04 +02:00
chemicstry
64b806db0b Expose RCC enable and disable methods 2024-04-12 18:07:44 +03:00
Dario Nieuwenhuis
499c6e84a3 stm32/otg: fix OTG_HS in FS mode. 2024-04-12 03:33:20 +02:00
Boris Faure
98b4eb4491 stm32: fix typo in doc 2024-04-11 22:51:34 +02:00
Andres Vahter
6e24dc58c6 stm32 adc: use fn blocking_delay_us(us: u32) 2024-04-10 22:23:49 +03:00
Andres Vahter
68b1a840c6 stm32 adc: remove DelayNs 2024-04-10 10:33:15 +03:00
Andres Vahter
fd802ffdfd stm32: use embedded_hal_1::delay::DelayNs
This makes delay compatible with https://lib.rs/crates/rtic-monotonics.
2024-04-09 22:32:09 +03:00
Dillon McEwan
2ad82c2adf Fix 'clocok' typo in RCC docs 2024-04-05 10:07:15 -07:00
Torin Cooper-Bennun
c953b9045b stm32: adc: v3: [h5] set OR.OP0 to 1 when ADCx_INP0 is selected, per RM 2024-04-05 13:00:33 +01:00
Dario Nieuwenhuis
c2b8ddaa83 stm32/qspi: autodeduce transfer len from buffer len.
mirrors change made in #2672.
2024-04-05 01:41:47 +02:00
Dario Nieuwenhuis
3d7d3e0286 stm32/time-driver: always use CC interrupt.
This avoids cfg's, because it works both for timers that have a a dedicated CC interrupt
line, and timers where all interrupts go to a single interrupt line.
2024-04-05 00:56:21 +02:00
eZio Pan
5dc3738bc2 add missing interrupt for timer 2024-04-05 00:51:20 +02:00
eZio Pan
78b9cb98d4 "separate CC interrupt" is for AdvCh4 only 2024-04-05 00:51:20 +02:00
eZio Pan
348a46b110 move enable_outputs to private trait ...
... to avoid API leaking.
2024-04-05 00:51:20 +02:00
Dario Nieuwenhuis
d597815c9a stm32: remove last few mod sealed's. 2024-04-05 00:48:46 +02:00
Dario Nieuwenhuis
a0439479f7
Merge pull request #2742 from sgoll/i2c-async-transaction
stm32/i2c(v1): Implement asynchronous transactions
2024-04-04 21:43:21 +00:00
Dario Nieuwenhuis
921fa9af80
Merge pull request #2672 from nautd/karun/main_octospi_implementation
Octospi implementation
2024-04-04 21:41:34 +00:00
Dario Nieuwenhuis
6c35a1769d
Merge pull request #2697 from eZioPan/stm32-cordic
stm32 CORDIC driver
2024-04-04 21:32:27 +00:00
Karun
330a3b0488 Fix passing of dual quad param to inner constructor 2024-04-03 16:42:16 -04:00
Karun
4ea7dfce17 Fix build errors
Add empty checks/peripheral busy waits
2024-04-03 16:36:02 -04:00
Karun
80aeea93fd Configure dual-quad setting by constructor 2024-04-03 16:05:23 -04:00
Karun
b3bbf42b8b Remove data length from transfer config
Remove non hal traits
Fix function comments
2024-04-03 15:58:20 -04:00
Karun
630fd90d26 Address PR comments 2024-04-03 14:01:40 -04:00
Karun
a031b3b79e Update metapac 2024-04-03 13:42:38 -04:00
Sebastian Goll
6efac5562a Merge remote-tracking branch 'upstream/main' into i2c-async-transaction 2024-04-03 16:53:45 +02:00
Karun
66a7b62909 Add octospi version dependency for max transfer support 2024-04-02 16:24:31 -04:00
Boris Faure
1e399fbf9d stm32: fix typo in doc 2024-04-02 22:16:11 +02:00
Karun
166c95be6c Update to use private supertrait, following PR#2730 2024-04-02 16:14:10 -04:00
Karun Koppula
9344f55ff3
Merge branch 'main' into karun/main_octospi_implementation 2024-04-02 15:51:50 -04:00
Karun
2caea89b6a Update build dependency as well 2024-04-02 15:50:57 -04:00
Karun
d62615b536 Update metapac to use PR #442 with octospi rcc updates 2024-04-02 15:48:39 -04:00
Sebastian Goll
804b19b116 Merge remote-tracking branch 'upstream/main' into i2c-async-transaction 2024-04-02 16:06:15 +02:00
Dario Nieuwenhuis
c8936edb6c stm32/can: simplify bxcan api, merging bx::* into the main structs.
The bx::* separate structs (Can, Rx, Tx) and separate `Instance` trait
are a relic from the `bxcan` crate. Remove them, move the functionality
into the main structs.
2024-04-02 11:08:03 +02:00
Tyler Gilbert
cb01d03835 Add async stop() function to stm32 bdma_dma 2024-03-31 16:31:47 -05:00
Sebastian Goll
1b505bf18e Merge remote-tracking branch 'upstream/main' into i2c-async-transaction 2024-03-28 22:39:52 +01:00
Corey Schuhen
25618cd93d RTR fix. 2024-03-28 09:53:30 +10:00
Corey Schuhen
a9f0c8c3a9 Fixes for no-time. 2024-03-28 09:32:13 +10:00
Corey Schuhen
2217b80278 CAN: Unify API's between BXCAN and FDCAN. Use Envelope for all read methods instead of a tuple sometimes. 2024-03-28 09:32:13 +10:00
Corey Schuhen
f5daa50a7b BXCAN: Add struct that combines Buffered RX and Buffered TX. 2024-03-28 09:32:13 +10:00
Corey Schuhen
41b7e4a434 BXCAN: Create TxMode in order to support buffered TX. 2024-03-28 09:32:13 +10:00
Corey Schuhen
26c739c2f9 BXCAN: Create RxMode enum and move reader methods into it, laying foundations for different Rx buffering modes. 2024-03-28 09:32:13 +10:00
Corey Schuhen
3bdaad39e8 BXCAN: Register access into new Registers struct. 2024-03-28 09:32:13 +10:00
Corey Schuhen
32065d7719 BXCAN: Cut out more that wasn't required from BXCAN crate. 2024-03-28 09:32:08 +10:00
Corey Schuhen
fcfcfce400 CAN: Move some FDCAN definitions into a module to share with BXCAN. 2024-03-28 09:30:58 +10:00
Dario Nieuwenhuis
8f6c07c775
Merge pull request #2745 from de-vri-es/bxcan-keep-rtr-flag
embassy_stm32: Preseve the RTR flag in messages.
2024-03-27 22:35:43 +00:00
Sebastian Goll
3133201724 Merge remote-tracking branch 'upstream/main' into i2c-async-transaction 2024-03-27 18:58:59 +01:00
Maarten de Vries
c059062627 embassy_stm32: Preseve the RTR flag in messages. 2024-03-27 16:10:37 +01:00
Dario Nieuwenhuis
a678b4850c
Merge pull request #2739 from adri326/adri326/nodma-embedded-io
Provide embedded_io impls for Uart with and without Dma
2024-03-27 14:47:19 +00:00
Dario Nieuwenhuis
289c5edb9b
Merge pull request #2738 from eZioPan/h5-lse-low-drive
stm32 H5: LSE low drive mode is not functional
2024-03-27 14:34:22 +00:00
Emilie Burgun
e3ef7cd99f Document why embedded_io::Read cannot be implemented for the base Uart 2024-03-27 11:10:16 +01:00
Sebastian Goll
bb5fcce0a0 Use named imports within function to make code easier to read 2024-03-27 10:42:38 +01:00
Sebastian Goll
b52e9a60eb Add missing check for empty buffer in asynchronous read_write() 2024-03-27 10:39:33 +01:00
Sebastian Goll
13636556d9 Mark shared data structure as dead_code for I2C v2 branch 2024-03-27 01:41:13 +01:00
Sebastian Goll
0cfb65abc2 Add transaction stub to I2C v2 2024-03-27 01:36:06 +01:00
Sebastian Goll
54d7d49513 Refactor DMA implementation of I2C v1, clarify flow of code 2024-03-27 01:07:42 +01:00
Sebastian Goll
7e44db099c Move FrameOptions and related function to module itself 2024-03-27 00:35:30 +01:00
Sebastian Goll
b299266cd2 It is not necessary to enable interrupts before registering waker 2024-03-27 00:32:06 +01:00
Sebastian Goll
2e2986c67b It is not necessary to wait for SB and MSL sequentially 2024-03-27 00:32:06 +01:00
Sebastian Goll
c1175bf7d8 It is not necessary to wait for STOP to be fully generated 2024-03-27 00:32:06 +01:00
Sebastian Goll
accec7a840 Implement asynchronous transaction for I2C v1 2024-03-27 00:32:06 +01:00
Sebastian Goll
9c00a40e73 Extract frame options generation into iterator to reuse in async 2024-03-26 22:53:14 +01:00