Joël Schulz-Ansres
2f7bba4668
Use ODR register for Pull::Up or Down
2024-05-22 23:44:34 +02:00
Scott Mabin
94e559eba7
Don't teardown during reconfigure
2024-05-22 22:28:03 +01:00
Univa
41e11d86b9
make AdcChannel required for InternalChannel
2024-05-21 19:08:01 -04:00
Univa
ddbb6c8c31
add back InternalChannel and implement it where its missing
2024-05-21 19:03:14 -04:00
Dario Nieuwenhuis
e7161aa085
stm32/qspi: remove DMA generic param.
2024-05-22 00:23:42 +02:00
Dario Nieuwenhuis
6fa608f516
Merge pull request #2941 from nautd/kkoppul2/update_ospi
...
Remove OSPI generic DMA
2024-05-21 22:09:44 +00:00
Dario Nieuwenhuis
7a26cc3764
Merge pull request #2786 from andelf/fix/stm32wl-msi-crash
...
Fix crash caused by using higher MSI range as sysclk on STM32WL
2024-05-21 22:07:50 +00:00
Dario Nieuwenhuis
5ecc9b805d
Merge pull request #2829 from aurelj/stm32-rcc-hsi
...
stm32: ensure the core runs on HSI clock while setting up rcc
2024-05-21 22:06:24 +00:00
Dario Nieuwenhuis
ae49e58993
Merge pull request #2777 from taunusflieger/feature/HSEM
...
HSEM support for embassy-stm32
2024-05-21 21:34:50 +00:00
Dario Nieuwenhuis
4b5026e197
Merge pull request #2895 from qwerty19106/fix_uart_half_fifo_flush
...
Fix uart::flush with FIFO at Half-Duplex mode
2024-05-21 21:26:04 +00:00
Dario Nieuwenhuis
afd61ed610
stm32/hsem: misc fixes.
2024-05-21 23:22:47 +02:00
Michael Zill
7d350fb4c8
HSEM support for embassy-stm32
2024-05-21 23:08:44 +02:00
Dario Nieuwenhuis
2d8ec70f71
Merge pull request #2853 from nautd/kkoppul2/tsc
...
TSC implementation
2024-05-21 20:55:41 +00:00
Univa
7cdbae2a5d
add AnyAdcChannel
2024-05-20 21:29:20 -04:00
Dario Nieuwenhuis
45a12fd41f
stm32/i2c: remove peripheral generic param.
2024-05-21 01:25:49 +02:00
Dario Nieuwenhuis
6a508b3210
stm32: use funcs for info/state, const for ENABLE_BIT.
2024-05-21 01:24:10 +02:00
Dario Nieuwenhuis
ca2eef5387
stm32/spi: remove peripheral generic param.
2024-05-20 23:43:10 +02:00
Dario Nieuwenhuis
eeb6ffce4c
stm32/rcc: add ClockEnableBit struct.
2024-05-20 23:37:20 +02:00
Dario Nieuwenhuis
7f3872ab98
Merge pull request #2903 from joelsa/add-dsihost
...
Add stm32 dsihost driver
2024-05-20 10:49:27 +00:00
Dario Nieuwenhuis
621dbeceda
Merge pull request #2912 from brunob45/simple_capture
...
STM32 Input Capture
2024-05-20 08:49:12 +00:00
Joël Schulz-Ansres
cc6998be30
Cargo format
2024-05-15 14:12:44 +02:00
Joël Schulz-Ansres
db56c4fe6f
Add miso pullup to spi configuration, add input as field for speed
2024-05-15 12:54:30 +02:00
Karun
3e399a9690
update to remove dma generics
2024-05-14 12:45:07 -04:00
Joël Schulz-Ansres
620d182c5a
Use read_busy function
2024-05-14 13:53:02 +02:00
Joël Schulz-Ansres
663b5b094d
Add helper functions
2024-05-14 13:45:37 +02:00
Joël Schulz-Ansres
48719d742c
Add unwrap to write
2024-05-14 12:22:27 +02:00
Joël Schulz-Ansres
94cf606892
Improve write_cmd parameters
2024-05-14 12:16:43 +02:00
Joël Schulz-Ansres
9005d26fca
Remove comments, add some comments, minor fixes to dsihost.rs
2024-05-14 12:14:34 +02:00
Dario Nieuwenhuis
a14319f51e
stm32: allow some unused.
2024-05-13 00:00:36 +02:00
Dario Nieuwenhuis
623d3ec306
stm32/ospi: remove unused trait.
2024-05-12 23:41:46 +02:00
Timo Kröger
5c93e9dadd
[UCPD] Use ChannelAndRequest
helper
2024-05-10 10:37:56 +02:00
Dario Nieuwenhuis
b13ad7e80b
Fix PeripheralRef soundness issue allowing &T.
...
Fix soundness issue introduced in a previous soundness fix https://github.com/embassy-rs/embassy/pull/2602 .
PeripheralRef must not implement DerefMut itself, but the blanket impl must still require DerefMut. Otherwise
you can create two instances of a driver on the same uart by using `&my_uart`.
2024-05-07 23:26:15 +02:00
Bruno Bousquet
969933cb7b
fix fmt for ci
2024-05-06 02:52:22 -04:00
Bruno Bousquet
55c8d3f474
add async capture
2024-05-06 02:47:42 -04:00
Bruno Bousquet
b662dfb183
format timer/mod.rs
2024-05-05 23:15:00 -04:00
Bruno Bousquet
29d6fa0a4a
add get_input_interrupt
2024-05-05 23:00:48 -04:00
Bruno Bousquet
431a60ca63
formatting
2024-05-05 22:30:16 -04:00
Bruno Bousquet
ad66dc3aab
create input_capture
2024-05-05 21:58:54 -04:00
Jan Špaček
7b3939ca80
stm32/timer: add low_level::Timer::get_clock_frequency()
2024-05-04 19:44:03 +02:00
Karun
07c2f169f5
Add versioning for group checks
2024-05-03 19:47:42 -04:00
Karun
a91f686544
Check group configuration validity
2024-05-03 19:45:26 -04:00
Karun
8e92e8718d
Add example documentation
2024-05-03 19:45:26 -04:00
Karun
0f8b3b8c65
Functional touch sensing
2024-05-02 17:19:08 -04:00
Karun
3cd6232d43
update num groups definition
2024-05-02 17:19:08 -04:00
Karun
4bf2178de7
remove remaining warnings
2024-05-02 17:17:39 -04:00
Karun
253f6c42ee
Address versioning and format issues raised by CI
2024-05-02 17:17:39 -04:00
Karun
fd69247d70
hyperspecific constructor
2024-05-02 17:17:39 -04:00
Karun
af357d2ad0
Prevent invalid config sets
2024-05-02 17:17:39 -04:00
Karun
87d2c66ef4
Add io pin masking
2024-05-02 17:17:39 -04:00
Karun
0b606b57f1
Add crate documentation
2024-05-02 17:17:39 -04:00
Karun
bcd923a4b0
fix create build pin traits
2024-05-02 17:17:39 -04:00
Karun
bef76ee057
initial set of io changes
2024-05-02 17:17:38 -04:00
Karun
0febc24de7
Initial fill out of driver without IO considerations
2024-05-02 17:17:38 -04:00
Joël Schulz-Ansres
bcbb486311
Feature-gate u5
2024-05-02 15:57:52 +02:00
Joël Schulz-Ansres
f29deb2488
Add feature gate for f7
2024-05-02 15:39:53 +02:00
Joël Schulz-Ansres
4c55931b6a
Remove redundant dsi_phy: None from rcc
2024-05-02 14:58:38 +02:00
Роман Кривенков
d5f0bceb7c
Clear Receiver enable flag before write in Half-Duplex mode
2024-05-02 15:59:42 +04:00
Joël Schulz-Ansres
f468d84a5b
Cargo format
2024-05-02 13:50:07 +02:00
Joël Schulz-Ansres
9fe50a7639
Add stm32 dsihost driver
2024-05-02 13:43:42 +02:00
Dario Nieuwenhuis
366f6215c3
stm32/i2c: actually add h7rs support.
2024-05-01 17:00:02 +02:00
Dario Nieuwenhuis
b3ca42f8f9
stm32/i2c: add h7rs support.
2024-05-01 16:33:34 +02:00
Dario Nieuwenhuis
fb67fe0a6c
stm32: add support for STM32H7[RS] "bootflash line", add HIL tests.
2024-05-01 02:24:45 +02:00
Dario Nieuwenhuis
b3d94160b4
stm32: add support for H5[23], U5[FG], WBA5[045].
2024-04-30 00:09:49 +02:00
Dario Nieuwenhuis
1ed2a0504a
stm32/dma: add support for same channel with different req in different DMAs/DMAMUXes.
2024-04-29 23:56:15 +02:00
Dario Nieuwenhuis
7fb74ff756
stm32: rustfmt generated files in build.rs
2024-04-29 23:51:33 +02:00
Dario Nieuwenhuis
6f44d7a9df
stm32: update metapac. Adds U5 LPDMA, fixes ADC_COMMONs.
2024-04-29 20:52:27 +02:00
Dario Nieuwenhuis
679160a1c5
Merge pull request #2887 from jamesmunns/james/stm32-i2cv1-errata
...
stm32: Add workaround for STM32 i2cv1 errata
2024-04-29 12:06:08 +00:00
James Munns
5ce3a6b61e
Add workaround for STM32 i2cv1 errata
2024-04-29 12:32:33 +02:00
Adam Greig
cb60f06594
stm32: dac: fix new_internal not setting mode as documented
2024-04-29 02:28:20 +01:00
Dario Nieuwenhuis
14225eb3a0
Merge pull request #2876 from ftk/timer32fix
...
stm32 timer: fix 32bit timer off by one ARR error
2024-04-28 21:24:14 +02:00
Dario Nieuwenhuis
f60c094891
Merge pull request #2877 from eZioPan/h5-low-power
...
low power for h5
2024-04-28 18:39:35 +00:00
Dario Nieuwenhuis
bbedcf9b0b
Merge pull request #2874 from qwerty19106/patch-1
...
Improve Uart::new_half_duplex docs
2024-04-28 18:37:14 +00:00
eZio Pan
d9e59e8e42
low power for h5
2024-04-28 00:33:02 +08:00
Dániel Buga
887d7e1430
Configure MAX_EP_COUNT via const generics
2024-04-27 18:01:45 +02:00
ftk
e7bfd7bac9
stm32 timer: fix 32bit timer off by 1 ARR error
2024-04-27 15:49:30 +03:00
qwerty19106
c929ad226b
Improve Uart::new_half_duplex docs
2024-04-27 12:22:35 +04:00
Dario Nieuwenhuis
5732ee7ca9
Reduce use of the full futures
crate.
2024-04-26 23:22:25 +02:00
Dario Nieuwenhuis
a8401ec94e
stm32/usart: remove wildcard import.
2024-04-26 22:59:11 +02:00
Dario Nieuwenhuis
49b143ec6d
Merge pull request #2871 from bugadani/synopsys
...
Extract Synopsys USB OTG driver from embassy-stm32
2024-04-26 20:23:09 +00:00
Dániel Buga
bc0408dc4b
Remove extra disable call
2024-04-26 22:16:45 +02:00
Dániel Buga
7ce2594eb7
Reset inited flag to allow re-enabling
2024-04-26 18:18:08 +02:00
Dániel Buga
50aefb4174
Hide the Dir trait
2024-04-26 18:13:15 +02:00
Dániel Buga
91c42e0b9e
Extract synopsys otg driver
2024-04-26 17:58:23 +02:00
Michael de Silva
02bb85a791
Add trace logging for USART
2024-04-24 01:59:00 +05:30
Dario Nieuwenhuis
1de44e7086
Merge pull request #2840 from MaxiluxSystems/feature/fdcan-runtime-cfg
...
stm32: can: fd: Properties for common runtime get/set operations
2024-04-23 13:46:09 +00:00
Torin Cooper-Bennun
e15fd5895f
stm32: can: fd: Properties: simplify reg accesses
2024-04-23 12:46:42 +01:00
Torin Cooper-Bennun
521c132e34
stm32: can: fd: introduce BusErrorMode with docs and Properties getter
2024-04-23 12:34:17 +01:00
Torin Cooper-Bennun
6ca7e0feab
stm32: can: fd: fix a couple doc comments
2024-04-23 12:34:02 +01:00
Dario Nieuwenhuis
511bee7230
Merge pull request #2854 from ericyanush/feat/add-bxcan-sleep-wakeup
...
Add stm32 bxCAN sleep/wakeup functionality
2024-04-22 22:57:22 +00:00
Eric Yanush
5c56aff9c2
rustfmt fixes
2024-04-22 14:05:28 -06:00
Eric Yanush
e65503e255
Add sleep/wakeup handling for bxCAN peripherals
2024-04-22 14:04:39 -06:00
Eric Yanush
3e00c1ac52
rustfmt whitespace fixes
2024-04-22 14:01:48 -06:00
Torin Cooper-Bennun
263071d016
stm32: can: fd: Properties: rm &mut refs; make !Sync; rename getters
2024-04-22 13:14:32 +01:00
Torin Cooper-Bennun
7f55a28a50
stm32: can: fd: Properties for common runtime get/set operations
2024-04-22 13:14:32 +01:00
Eric Yanush
68a4fd8f4a
Enable LEC interrupt as well
2024-04-22 01:52:10 -06:00
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
Aurélien Jacobs
10ee1c1ae8
stm32: ensure the core runs on HSI clock while setting up rcc
2024-04-16 23:36:47 +02: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
Andelf
803b76df86
Fix crash caused by using higher MSI on STM32WL
2024-04-08 01:23:49 +08: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
Sebastian Goll
0885c102d3
Refactor async I2C transfers to use frame options
2024-03-26 22:53:14 +01:00
Sebastian Goll
746ded94b1
Fix minor typos
2024-03-26 22:53:14 +01:00
eZio Pan
cf11d28d62
stm32 H5: LSE low drive mode is not functional
2024-03-27 00:55:44 +08:00
Emilie Burgun
1acc34bfaa
Remove the need for TxDma to be a DMA channel in the blocking UartTx impl
2024-03-26 17:45:38 +01:00
Emilie Burgun
402def86ee
Remove ad-hoc fixes for setting the IOSV bit to true
2024-03-26 17:27:02 +01:00
Emilie Burgun
ca998c170f
Missing half of the implementation detail comment
2024-03-26 16:33:41 +01:00
Emilie Burgun
64964bd614
Add a config option to make the VDDIO2 supply line valid
...
On STM32L4[7-A]xx, STM32L5xxx and STM32U5xxx chips, the GPIOG[2..15] pins are only available
once the IOSV bit has been set in PWR->CR2 (U5 chips have the bit in a funkier register).
This is meant to allow the user to have control over this power supply, so the GPIOG pins
are initially insulated, until the user wishes to un-insulate them (or something like that?).
For most applications, though, the VDDIO2 is connected to the VDD line, and this behavior only
gets in the way and causes confusing issues.
This submission adds an option in `embassy_stm32::Config`, called `enable_independent_io_supply`,
which simply enables the IOSV bit. It is only available on chips for which I could find a mention
of IOSV (STM32L4 and STM32L5) or IO2SV (STM32U5).
2024-03-26 16:22:05 +01:00
eZio Pan
6b2e15e318
stm32 CORDIC: exclude stm32u5a
2024-03-26 15:06:06 +08:00
eZio Pan
8fa1d06a6a
stm32 CORDIC: use private_bounds for sealed traits.
2024-03-23 09:15:25 +08:00
eZio Pan
0abcccee96
stm32 CORDIC: re-design API
2024-03-23 09:15:25 +08:00
eZio Pan
fac4f9aa2f
stm32 CORDIC: typo fix
2024-03-23 09:15:25 +08:00
eZio Pan
0d065ab2d6
stm32 CORDIC: add HIL test
2024-03-23 09:15:25 +08:00
eZio Pan
c42d9f9eaa
stm32 CORDIC: bug fix
2024-03-23 09:15:25 +08:00
eZio Pan
641da3602e
stm32 CORDIC: error handle
2024-03-23 09:15:25 +08:00
eZio Pan
10a9cce855
stm32 CORDIC: DMA for q1.31 and q1.15
2024-03-23 09:15:25 +08:00
eZio Pan
2fa04d93ed
stm32 CORDIC: DMA for q1.31
2024-03-23 09:15:25 +08:00
eZio Pan
c9f759bb21
stm32 CORDIC: ZeroOverhead for q1.31 and q1.15
2024-03-23 09:15:25 +08:00
eZio Pan
5d12f59430
stm32 CORDIC: make use of "preload" feature
2024-03-23 09:15:25 +08:00
eZio Pan
a1ca9088b4
stm32 CORDIC: ZeroOverhead q1.31 mode
2024-03-23 09:15:25 +08:00
eZio Pan
b595d94244
stm32 CORDIC: split into multiple files
2024-03-23 09:15:25 +08:00
eZio Pan
cf065d439e
stm32 CORDIC: ZeroOverhead q1.31 1 arg 1 res mode
2024-03-23 09:15:25 +08:00
Dario Nieuwenhuis
2bca875b5f
stm32: use private_bounds for sealed traits.
2024-03-23 01:38:51 +01:00
Dario Nieuwenhuis
389cbc0a77
stm32/timer: simplify traits, convert from trait methods to struct.
2024-03-23 01:37:28 +01:00
Ralf
08e2ba9d74
STM32 BufferedUart: wake receive task for each received byte
...
Fixes https://github.com/embassy-rs/embassy/issues/2719
2024-03-21 08:35:41 +01:00
René van Dorst
92fa49f502
Also fix time_driver.rs
2024-03-20 20:42:03 +01:00
René van Dorst
ab7c767c46
Bump stm32-data to latest tag.
2024-03-20 20:31:02 +01:00
René van Dorst
fb9d42684b
stm32: Fix psc compile error with current stm32-data
...
Commit cc525f1b25
has changed the definition of the `psc` register.
Update timer/mod.rs to reflect the stm32-data change.
2024-03-20 19:59:17 +01:00
Dario Nieuwenhuis
eca9aac194
Fix warnings in recent nightly.
2024-03-20 16:39:09 +01:00
Dario Nieuwenhuis
3d842dac85
fmt: disable "unused" warnings.
2024-03-20 14:53:19 +01:00
Dario Nieuwenhuis
a2fd4d751e
stm32/gpio: add missing eh02 InputPin for OutputOpenDrain.
2024-03-20 13:49:19 +01:00
Sebastian Goll
cff665f2ec
Avoid unnecessary double-reference
2024-03-20 13:08:42 +01:00
Sebastian Goll
4eb4108952
Fix build for I2C v2 targets
2024-03-20 03:33:15 +01:00
Sebastian Goll
8f19a2b537
Avoid missing stop condition when write/read with empty read buffer
2024-03-20 02:59:30 +01:00
Sebastian Goll
c96062fbcd
Implement blocking transaction handling for I2C v1
2024-03-20 02:59:30 +01:00
Sebastian Goll
7c08616c02
Introduce frame options to control start/stop conditions
2024-03-20 02:55:49 +01:00
Dario Nieuwenhuis
d90abb8ac9
stm32/usb: assert usb clock is okay.
2024-03-19 22:10:59 +01:00
Dario Nieuwenhuis
daa64bd540
stm32/usb: extract common init code.
2024-03-19 22:10:59 +01:00
Dario Nieuwenhuis
530ff9d4d3
stm32/usb: merge usb and usb_otg into single module.
2024-03-19 22:07:16 +01:00
Adam Greig
5a879b3ed1
STM32: SAI: Fix MCKDIV for SAI v3/v4
2024-03-19 02:17:50 +00:00
Dario Nieuwenhuis
6d9f87356b
Merge pull request #2677 from ExplodingWaffle/peri-clock
...
stm32/rcc: wait for peripheral clock to be active. also, hold the peripheral reset while enabling the clock.
2024-03-18 16:23:28 +00:00
Harry Brooke
1f9ffbfb18
remove peripheral reads
2024-03-18 00:05:02 +00:00
Corey Schuhen
3f5c8784af
FDCAN: Fix offset issue preventing CAN2 and CAN3 from working.
...
Fix for not H7
2024-03-16 19:32:38 +10:00
Dario Nieuwenhuis
c580d4c490
Merge pull request #2701 from timokroeger/stm32-ucpd
...
STM32 UCPD CI Test
2024-03-15 18:51:09 +00:00
Timo Kröger
21e2499f35
[UCPD] Fix dead-battery disable for G0
...
Inverted flag got missed in the original PR.
2024-03-15 17:44:27 +01:00
Dario Nieuwenhuis
963fda2404
Merge pull request #2652 from timokroeger/stm32-ucpd
...
STM32 USB Type-C/USB Power Delivery Interface (UCPD)
2024-03-14 21:21:33 +00:00
Timo Kröger
57ca072dc3
[UCPD] Enable RX PHY only when receiving
2024-03-14 22:05:22 +01:00
Timo Kröger
62b0410e86
[UCPD] Set CC pins to analog mode
...
Example: On STM32G431 CC2 has a pull-up (default JTAG signal) which needs to be disabled.
2024-03-14 21:55:05 +01:00
Timo Kröger
88d1d38be7
[UCPD] RXORDSETEN can only be modified when disabled
2024-03-14 21:55:05 +01:00
Timo Kröger
b634f8f511
[UCPD] Fix hard reset interrupt disable flags
2024-03-14 21:55:05 +01:00
Timo Kröger
6e5bb8003a
[UCPD] Adjust TX clock divider
2024-03-14 21:55:05 +01:00
Timo Kröger
e95e95ac7a
[UCPD] Take interrupt in constructor and enable it
2024-03-14 21:55:05 +01:00
Corey Schuhen
535e4c20e8
Remove unused methods including incorrect #[must_use...
2024-03-14 08:21:45 +10:00
Corey Schuhen
242759a600
Use Result instead of Option for Frame creation.
2024-03-13 17:46:50 +10:00
Corey Schuhen
12a3af5043
Shared frame types.
...
Remove BXCAN speciffic id and frame modules
Remove SizedClassicData
2024-03-13 17:46:50 +10:00
Dario Nieuwenhuis
35f284ec22
Merge pull request #2691 from caleb-garrett/cryp-dma
...
STM32 CRYP DMA
2024-03-12 19:30:20 +00:00
Dario Nieuwenhuis
9101b9eb01
Merge pull request #2650 from cschuhen/feature/bxcan_pac
...
Use stm32-metapac for BXCAN.
2024-03-12 19:05:22 +00:00
Caleb Garrett
2634a57098
Correct cryp CI build issues.
2024-03-12 15:05:22 -04:00
Caleb Garrett
1ec9fc58f4
Add async CRYP to test.
2024-03-12 14:52:34 -04:00
Caleb Garrett
61050a16d5
Add CRYP DMA support. Updated example.
2024-03-12 12:01:14 -04:00
Timo Kröger
30cdc6c9c5
[UCPD] Disable dead-battery resistor for all families
...
Using the code from PR #2683 , thank you @ExplodingWaffle
Removes the dead-battery as selectable option because its unclear if
it can be re-enabled. Also there is no use case for it because the same
resistor can be configured with the sink option.
2024-03-12 08:49:27 +01:00
Timo Kröger
eeb033caf0
[UCPD] Disable RCC clock on drop
2024-03-12 08:14:42 +01:00
Timo Kröger
89504f5162
[UCPD] Split into CC and PD phy
...
PD3.0 spec requires concurrent control of CC resistors for collision avoidance.
Needed to introduce some "ref counting" (its just a bool) for drop code.
2024-03-12 08:14:42 +01:00
Timo Kröger
99854ff840
[UCPD] Fix build for devices with GPDMA
...
Do not use a flag that is DMA/BDMA only, not required anyway
the transfer should run in the background nevertheless
2024-03-12 08:14:42 +01:00
Timo Kröger
ff8129a6a6
[UCPD] Implement hard reset transmission
2024-03-12 08:14:42 +01:00
Timo Kröger
c1efcbba2d
[UCPD] Receive hard resets
2024-03-12 08:14:42 +01:00
Timo Kröger
b7972048a1
[UCPD] Improve example and defmt Format for enums
2024-03-12 08:14:42 +01:00
Timo Kröger
5e271ff31b
[UCPD] Combine RX and TX
...
`select(rx.receive(), tx.transmit()` had subtle interrupt enable race conditions.
Combine receiver and transmitter into one new `PdPhy` struct to disallow the
problematic pattern.
Scanning through the USB PD 2.0 specification there is no need to have RX and TX
running concurrently (after all the USB PD communication is half-duplex).
2024-03-12 08:14:42 +01:00
Timo Kröger
36a9918921
[UCPD] Implement PD transmitter
2024-03-12 08:14:42 +01:00
Timo Kröger
984d5bbc72
[UCPD] Implement PD receiver
2024-03-12 08:14:42 +01:00
Timo Kröger
4d0e383816
[UCPD] Prepare for PD communication implementation
2024-03-12 08:14:42 +01:00
Timo Kröger
a3b1222617
[UCPD] Improve Type-C CC handling
...
* Improved interrupt handling: Clear flags in ISR, check state change in future
* Disable pull-up/pull-down resistors and voltage monitor on drop
* nightly rustfmt
2024-03-12 08:14:42 +01:00
Timo Kröger
d99fcfd0c2
[UCPD] Configuration Channel (CC) handling
2024-03-12 08:14:42 +01:00
Timo Kröger
aa1411e2c7
[UCPD] Prepare interrupt handle
2024-03-12 08:14:41 +01:00
Timo Kröger
8a255b375b
[UCPD] Instance and Pin Traits
...
Skip FRSTX pin for now. Its available twice in the device JSON as
FRSTX1 and FRSTX2 both with the same pins as targets.
I don’t know enough about the FRS (fast role switch) feature to
understand if that is correct and how to handle the pins.
2024-03-12 08:14:41 +01:00
Dario Nieuwenhuis
1ef02e5384
Merge pull request #2683 from ExplodingWaffle/ucpd-dbdis
...
stm32: add disable_ucpdx_dead_battery
2024-03-11 23:36:15 +00:00
Harry Brooke
d4869b83fc
disable -> enable. also extracted to function for easy refactoring later
2024-03-11 23:03:09 +00:00
Dominic
b6a383811a
Improve panic message when requesting frequency higher than clock
...
Previously it would panic with message "unreachable", which isn't
particularly clear about what the problem is and how to fix it.
2024-03-11 17:52:18 +01:00
Caleb Garrett
6e9e8eeb5f
Refactored cryp din/dout into functions.
2024-03-11 11:08:02 -04:00
Harry Brooke
096d147dce
stm32: add disable_ucpdx_dead_battery
2024-03-11 11:42:04 +00:00
Harry Brooke
f761f721bc
fix ci
2024-03-10 22:51:42 +00:00
Caleb Garrett
4a5b6e05fb
Correct more CI build issues.
2024-03-10 17:33:40 -04:00
Caleb Garrett
50a7ada0bb
Fixed DMA CI build issues.
2024-03-10 17:28:53 -04:00
Caleb Garrett
e92094986d
Add DMA request priority as transfer option.
2024-03-10 16:53:37 -04:00
Adam Greig
b456addb2b
stm32: bump metapac version
2024-03-09 20:13:20 +00:00
Harry Brooke
2d7ec281e8
stm32/rcc: wait for peripheral clock to be active. also, hold the peripheral reset while enabling the clock.
2024-03-09 18:24:31 +00:00
Dominic
71179fa818
Check for CPU_FREQ_BOOST
2024-03-09 11:55:09 +01:00
Dominic
fadffc5061
Fix incorrect D1CPRE max for STM32H7 RM0468
2024-03-09 11:55:09 +01:00
Ralf
b7bb4b23f8
STM32 SimplePwm: Fix regression and re-enable output pin
...
PR #2499 implemented timer hierarchy, but removed enable_outputs()
from trait CaptureCompare16bitInstance and from SimplePwm.
This functions is required for advanced timers to set bit BDTR.MOE
and to enable the output signal.
2024-03-08 11:18:45 +01:00
Karun
fda6e3fb8c
Resolve rustfmt issue and unused import errors
2024-03-07 15:23:45 -05:00
Karun Koppula
54751b7a50
Merge branch 'main' into karun/main_octospi_implementation
2024-03-07 15:20:29 -05:00
Karun
3b1d87050e
Update trait definitions
...
Make operations generic against valid data widths
2024-03-07 14:41:27 -05:00
Karun
e163572bec
Add get and set config trait implementations
2024-03-07 14:41:26 -05:00
Karun
b86a1f0700
Add constructors
...
Add transfer configuration
Update command configuration
Add peripheral width consideration
Add drop impl
2024-03-07 14:41:04 -05:00
Karun
a0b7067205
Add user enums for transaction configuration
2024-03-07 14:30:53 -05:00
Karun
9ed8d01b11
Add transfer config, trait, functional initial configuration and read from memory
2024-03-07 14:30:53 -05:00
Karun
f3609f2842
Add initial octopsi module
2024-03-07 14:30:53 -05:00
Karun
9905bbe9f7
Update peripheral crate to updated octospi pac
2024-03-07 14:30:53 -05:00
Karun
2ab1b2ac9a
Update stm-32 build script to include ospi traits
2024-03-07 14:29:37 -05:00
Dario Nieuwenhuis
b2d236ee39
Merge pull request #2667 from timokroeger/stm32-anychannel-fix
...
stm32: Implement `Channel` trait for `AnyChannel`
2024-03-07 15:18:32 +00:00
Tomas Barton
bb3711bbf9
update stm32c0 HSI frequency
2024-03-07 06:51:32 -08:00
Timo Kröger
bbc06458a3
stm32: Implement Channel
trait for AnyChannel
2024-03-07 15:05:28 +01:00
Corey Schuhen
84d21e959d
Dummy
2024-03-07 17:45:01 +10:00
Corey Schuhen
98e7a0a423
Remove old PAC from bscan crate.
2024-03-07 17:45:01 +10:00