Commit Graph

2776 Commits

Author SHA1 Message Date
Jan Špaček
368893c9cb Emit cargo:rustc-check-cfg instructions from build.rs 2024-05-30 18:28:29 +02:00
Dario Nieuwenhuis
694ac3a515
Merge pull request #2992 from liarokapisv/i2s-spi_v3
Add spi v3 & Full-duplex support to the I2S driver.
2024-05-30 12:31:59 +00:00
Dario Nieuwenhuis
d21e9caa80
Merge pull request #3021 from mat-kie/follower-opamp
Make OpAmp usable in follower configuration for internal DAC channel
2024-05-30 12:23:53 +00:00
Dario Nieuwenhuis
b378ec4558
Merge pull request #3020 from cschuhen/feature/bxcan_no_generics
Remove generics for BXCAN.
2024-05-30 12:16:17 +00:00
Corey Schuhen
b4a2f7fb70 Use phantom for lifetime holder instead of not used pointer to pointer. 2024-05-30 22:10:46 +10:00
Mattis Kieffer
28f5f0baba add dac buffer function 2024-05-30 14:07:47 +02:00
Dario Nieuwenhuis
39c5a6c3f7
Merge pull request #3002 from honzasp/rcc-info
stm32/rcc: replace generated enable/disable code with runtime info
2024-05-30 11:50:40 +00:00
Corey Schuhen
245c895d09 Remove generics for BXCAN. 2024-05-30 21:39:11 +10:00
Dario Nieuwenhuis
7bc71a8262
Merge pull request #3019 from embassy-rs/rtc-lowpower-mod
stm32/rtc: move lowpower stuff to a separate mod.
2024-05-30 11:34:46 +00:00
Dario Nieuwenhuis
2c691baadd stm32/rtc: move lowpower stuff to a separate mod. 2024-05-30 13:26:14 +02:00
Dario Nieuwenhuis
62f4b4ee1e
Merge pull request #3018 from embassy-rs/nopacpointer
stm32: remove pointer-to-pointer-to-registers.
2024-05-30 11:17:51 +00:00
Dario Nieuwenhuis
c46172acac stm32: remove pointer-to-pointer-to-registers.
in chiptool pacs the register block struct is already a pointer, so
using pointers to it is redundant.
2024-05-30 13:07:18 +02:00
Dario Nieuwenhuis
7532a06f67
Merge pull request #3007 from liarokapisv/spi_v3-fix-rx
Add proper rxonly support for spi_v3 and force tx dma stream requirem…
2024-05-30 10:44:48 +00:00
Dario Nieuwenhuis
e9cb9badf7
Merge pull request #3012 from cschuhen/feature/fdcan_no_generics
Remove generic argument for STM32 FDCAN.
2024-05-30 10:42:53 +00:00
Bruno Bousquet
292c1dd0b8 rename get_width_ticks and add info!() in examples 2024-05-29 09:59:00 -04:00
Bruno Bousquet
a23fa8dcb2
Apply suggestions from code review
Co-authored-by: Romain Reignier <romainreignier@users.noreply.github.com>
2024-05-29 09:14:05 -04:00
Lucas Granberg
b282edcc6e add set_as_analog to stm32 gpio Flex 2024-05-29 14:56:29 +03:00
Ulf Lilleengen
cf0d227cca Prepare for embassy-sync 0.6.0 release 2024-05-29 12:09:55 +02:00
Corey Schuhen
35feb1bf23 Remove generic argument for STM32 FDCAN. 2024-05-29 20:07:17 +10:00
Bruno Bousquet
521332bdd1 pwm_input is working on F446 2024-05-29 00:28:26 -04:00
Bruno Bousquet
f1d5f4ca21 undo minor changes 2024-05-28 22:43:23 -04:00
Bruno Bousquet
a52841041d use timer LL 2024-05-28 22:38:08 -04:00
Bruno Bousquet
7c1e1ee288 example is working now 2024-05-28 22:30:10 -04:00
Dario Nieuwenhuis
000b022ae2
Merge pull request #2988 from de-vri-es/bxcan-tx-fifo-scheduling
embassy_stm32: implement optional FIFO scheduling for outgoing frames
2024-05-28 11:12:37 +00:00
Alexandros Liarokapis
4d1fbcd9cd address review comments 2024-05-28 13:38:27 +03:00
Alexandros Liarokapis
46fc15783d add spi_v4 and spi_v5 support but block i2scfg rx-only configuration 2024-05-28 12:50:24 +03:00
Alexandros Liarokapis
9a6ed79ad1 remove rx-only support for new spi versions with missing I2SCFGR register 2024-05-27 20:51:50 +03:00
Alexandros Liarokapis
1d05015a1c broaden tsize read support to other spi versions 2024-05-27 20:47:24 +03:00
Alexandros Liarokapis
76fbec74da fix spi panic on read due to i2s configuration conversion check 2024-05-27 20:43:24 +03:00
Aurélien Jacobs
ec6cfc1f21 stm32: ensure the core runs on HSI clock while setting up rcc 2024-05-27 17:31:29 +02:00
Alexandros Liarokapis
25cc5241b1 Add i2s support for spi_v3. 2024-05-27 18:06:20 +03:00
Alexandros Liarokapis
f9324201b1 add proper rxonly support for spi_v3 and force tx dma stream requirement on others 2024-05-27 17:49:47 +03:00
Maarten de Vries
807e573994 embassy_stm32: allow scheduling lower priority frames in bxcan driver 2024-05-27 16:10:08 +02:00
Maarten de Vries
854ae5da8f embassy_stm32: implement optional FIFO scheduling for outgoing frames 2024-05-27 16:10:08 +02:00
Jan Špaček
081afca3f0 stm32/rcc: replace generated enable/disable code with runtime info 2024-05-25 18:44:55 +02:00
Dario Nieuwenhuis
a5763b4df4
Merge pull request #2943 from joelsa/add-miso-pullup
Add miso pullup to spi configuration
2024-05-24 15:01:18 +00:00
Joël Schulz-Andres
ac76a713e1 Remove wrong modulo 2024-05-24 16:54:04 +02:00
Joël Schulz-Andres
e1d2ba07a7 Formatting 2024-05-24 14:15:10 +02:00
Joël Schulz-Andres
c4b3488f7f Add body to match statement 2024-05-24 14:12:01 +02:00
Joël Schulz-Andres
fab434ae84 Use match instead of if 2024-05-24 14:09:29 +02:00
Joël Schulz-Andres
32a75cb764 Fix naming 2024-05-24 13:53:19 +02:00
Joël Schulz-Andres
bfc5929f50 gpiov1: Do not call set_speed for AFType::Input
Co-authored-by: Toby Fleming <tobywf@users.noreply.github.com>
2024-05-24 13:46:55 +02:00
Joël Schulz-Ansres
5cba97821f Naming: Change pullup to pull 2024-05-24 01:05:56 +02:00
Joël Schulz-Ansres
f285a545be Change bool to Pull 2024-05-23 23:52:59 +02:00
Jan Špaček
183f2f6913 stm32/usart: remove instance generic params 2024-05-23 16:32:15 +02:00
Joel Schulz-Andres
0a5820e3ed
Merge branch 'embassy-rs:main' into add-miso-pullup 2024-05-23 15:34:16 +02:00
Dario Nieuwenhuis
ded1f9d335
Merge pull request #2989 from MabezDev/ringbuf-reconfigure
stm32 ringbuffered usart: don't teardown during reconfigure
2024-05-23 10:10:57 +00:00
Dario Nieuwenhuis
e5c579d9fb
Merge pull request #2985 from rumcake-rs/stm32-adc-anyadcchannel
stm32/adc: add AnyAdcChannel type
2024-05-23 10:09:45 +00:00
Univa
4e9206efb8 remove InternalChannel and AdcPin 2024-05-22 19:00:48 -04:00
Joël Schulz-Ansres
27e8ef6e7e Remove Speed::Input in order to move it into separate PR 2024-05-22 23:49:48 +02:00
Joël Schulz-Ansres
89017d338f Cargo format 2024-05-22 23:45:26 +02:00
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