Commit graph

2628 commits

Author SHA1 Message Date
David Flemström
2f750a82bf Swat some other occurrences of .unwrap() that pull in panicing infra 2024-06-28 22:52:21 +02:00
David Flemström
73d937dc33 Remove implicit bounds checking from rcc module 2024-06-28 22:52:10 +02:00
David Haig
6edf7b4688 Applied formatting 2024-06-28 18:17:17 +01:00
David Haig
79f00e54cc Moved ltdc example to its own crate 2024-06-28 18:11:34 +01:00
David Haig
1123e3fd41 Get dsi_bsp example to compile again 2024-06-28 15:12:17 +01:00
David Haig
47c7bb2bb5 Updated metapac dependency to latest for LTDC support 2024-06-28 11:35:38 +01:00
David Haig
0e84bd8a91 Add support for the stm32 ltdc display peripheral 2024-06-27 20:13:20 +01:00
Chen Yuheng
a0799bf270 Add adc oversampling support 2024-06-27 17:04:26 +08:00
seth
7056783fa2 second adc added to example + API todos completed 2024-06-24 17:53:59 -07:00
seth
f64dd8228b new PR, taking Dirbao's advice to make the DMA impl in a separate struct that consumes Adc<T> to make RingBufferedAdc<T>. Handling overrun similar to RingBufferedUart 2024-06-24 17:09:43 -07:00
Eekle
7eb605d116 fmt 2024-06-23 16:55:36 +02:00
Eekle
2655426cd8 Add async wait to TSC 2024-06-23 16:43:12 +02:00
Alexandros Liarokapis
3883a5b2de Enables adc v4 averaging support.
The Adc v4 peripheral includes a hardware oversampler.
This PR adds an averaging interface that keeps most of the current
interface backwards compatible while allowing for the common use-case
of hardware-averaging. A more comprehensive oversampler interface may
be exposed in the future.
2024-06-23 12:43:24 +03:00
Alexandros Liarokapis
00ff1409cd Enables half transfer ir when constructing a ReadableDmaRingBuffer
The half transfer irq needs to be enabled in order for the hardware to
notify the waker when the transfer is at half. This is needed to ensure
no overuns occur when using `ReadableDmaRingBuffer`'s `read_exact`.
Otherwise we are only notified when the DMA has completed its cycle and
is on its way to start overwriting the data. The docs in the dma_bdma
buf module also seem to imply that the half transfer irq must be enabled for
proper operation. The only consumers of the `ReadableDmaRingBuffer` api
are the sai module and the `RingBufferedUartRx`. The former enables the
irq manually when constructing the transfer options while the
latter does not. This may also be the cause for #1441.
2024-06-23 11:43:50 +03:00
Jamie Bird
18ba56534b Fix Formatting Issues 2024-06-21 15:29:02 +01:00
Jamie Bird
060d1f6e6f Fix: Ensure I2C bus is free before master-write operation
The I2C master-write function was failing when executed immediately after an I2C read operation, requiring manual delays to function correctly. This fix introduces a check to ensure the I2C bus is free before initiating the write operation.

According to the RM0399 manual for STM32H7 chips, the BUSY bit (Bit 15 in the I2C ISR register) indicates whether a communication is in progress on the bus. The BUSY bit is set by hardware when a START condition is detected and cleared when a STOP condition is detected or when PE = 0.

This fix prevents the write operation from starting until the BUSY bit is cleared.
2024-06-21 15:09:57 +01:00
ROMemories
4b0615957f
docs(gpio): fix a typo regarding GPIO speed 2024-06-20 12:09:30 +00:00
Fan Jiang
478cbc6a41
Update Cargo.toml to latest stm32-metapac 2024-06-17 14:09:53 -04:00
Dario Nieuwenhuis
6a4ac5bd60 Add collapse_debuginfo to fmt.rs macros.
This makes location info in defmt logs point to the code calling the macro,
instead of always to fmt.rs as before. Fix works with nightlies
starting with today's, and stable 1.81+.
2024-06-17 01:38:57 +02:00
Dario Nieuwenhuis
1e268a4d3d
Merge pull request #3084 from sjoerdsimons/ucpd-missing-packets
Improve stm32 ucpd packet reception
2024-06-16 19:57:14 +00:00
Jan Špaček
94007ce6e0 stm32/gpio: refactor AfType 2024-06-16 21:11:55 +02:00
Sjoerd Simons
9e8035cfb9 [USPD] clear interrupt flags right after reception
Clearing the interrupt flags at beginning of reception will masks
overruns and cause corrupted packets to be received. Instead clear the
flags right after disabling the interrupt/after reception, so overruns
on the next receive can be caught.

Tested by forcing overruns due to explicit sleeps

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2024-06-16 11:00:56 +02:00
Sjoerd Simons
84cbf1d198 [UCPD] Don't disable ucpd rx after each reception
When disabling the UCPD RX after every reception it's relatively easy to
drop packets. This seems to happen in particular with GoodCRC packets
which can be sent very quickly by a receiver. To avoid this enable
reception as soon as the pd phy get split out (preparing for packet
processing) and only disable again when the pd phy gets dropped.
2024-06-16 10:59:21 +02:00
Mark Szente
3cf94958c6 Add Format derive 2024-06-15 14:21:15 +02:00
Eekle
b64b555bbf
Update stm32 to latest generated data 2024-06-14 18:58:01 +02:00
Dario Nieuwenhuis
7ad76f5f60 Use raw slices .len() method instead of unsafe hacks.
Stabilized in 1.79.
2024-06-13 20:41:08 +02:00
Dario Nieuwenhuis
4d9115b3fb Update stable to Rust 1.79. 2024-06-13 20:40:04 +02:00
Dario Nieuwenhuis
72029ca0c6 stm32: update stm32-metapac, fixes memory.x for many families. 2024-06-12 21:39:39 +02:00
Dario Nieuwenhuis
ad7d739ddc
Merge pull request #3062 from kkrolczyk/kk/bootloader-typos
fix docu typos, linker addr example
2024-06-10 20:48:41 +00:00
Krzysztof Królczyk
268430bd9f
stm32/docs: correct typos, links
Signed-off-by: Krzysztof Królczyk <Krzysztof.Krolczyk@o2.pl>
2024-06-10 11:25:43 +02:00
Dario Nieuwenhuis
3e2b015dc4
Merge pull request #3054 from dvdsk/clonable-errors
Add Clone and Copy to Error types
2024-06-09 09:47:26 +00:00
dvdsk
871fe3a549
Add Clone and Copy to Error types
None of them are `non-exaustative`, they are all small enough to be copy
(I estimate none are larger than 4 bytes).
2024-06-06 23:19:07 +02:00
Ulf Lilleengen
30918c355b prepare for embassy-time 0.3.1 release 2024-06-04 09:02:41 +02:00
Dario Nieuwenhuis
9856d21693
Merge pull request #3006 from honzasp/harmonize-new
stm32: Make initialization of I2C and USART consistent with SPI
2024-06-03 21:26:43 +00:00
Jan Špaček
f3703ff6bf stm32/usart: set refcount even if initialization failed 2024-06-03 20:12:33 +02:00
Dario Nieuwenhuis
348c87fc2f stm32/spi: fix blocking_write on nosck spi.
Fixes #2902.
2024-06-03 00:57:53 +02:00
Corey Schuhen
900b104860 Remove generic argument from CanBuilder. 2024-06-02 21:47:14 +10:00
Corey Schuhen
367a22cc0e Remove more BXCAN generics. 2024-06-02 20:11:56 +10:00
Jan Špaček
664e4a5c03 stm32/usart: move init code to function that's not generic in T 2024-06-01 19:46:39 +02:00
Jan Špaček
44e4a2c9e9 stm32/buffered-usart: use new_pin! and disconnect pins on drop 2024-06-01 19:46:39 +02:00
Jan Špaček
ade27b7f21 stm32/usart: disconnect pins of RingBufferedUartRx on drop 2024-06-01 19:46:39 +02:00
Jan Špaček
41711195e3 stm32/i2c: use new_pin! macro 2024-06-01 19:46:39 +02:00
Jan Špaček
ca3c15658d stm32/spi: move init code to function that's not generic in T 2024-06-01 19:46:39 +02:00
Dario Nieuwenhuis
339dd85968 stm32/spi: restrict txonly_nosck to SPIv1, it hangs in other versions. 2024-05-31 22:58:53 +02:00
Dario Nieuwenhuis
da197b6016 stm32/spi: fix spiv1 rxonly hanging. 2024-05-31 21:54:42 +02:00
Dario Nieuwenhuis
ba940017ee
Merge pull request #3014 from brunob45/pwm_input
Add PWM Input for STM32
2024-05-31 18:09:27 +00:00
Jan Špaček
bfb380e8ca Copy build_common.rs into each crate, to make cargo publish happy 2024-05-31 08:07:51 +02:00
Bruno Bousquet
7d86919257 rust fmt really does not want blank space there 2024-05-30 17:54:49 -04:00
Bruno Bousquet
83b5797b8d fix fmt (again) 2024-05-30 17:53:38 -04:00
Bruno Bousquet
713d84f778 fix fmt 2024-05-30 17:51:48 -04:00