Dario Nieuwenhuis
976e9f7fba
Merge pull request #3104 from birdistheword96/main
...
Fix: Ensure I2C bus is free before master-write operation
2024-07-01 23:18:55 +00:00
Dario Nieuwenhuis
00babd2ec4
Merge pull request #3126 from ninjasource/stm32-ltdc
...
Add support for the stm32 LTDC display peripheral
2024-07-01 23:18:15 +00:00
seth
27652798c7
fix typo, add spaces after //
2024-07-01 06:44:47 -07:00
Eekle
1d1fc9afea
Add async and blocking variants
2024-06-30 11:03:29 +02:00
David Flemström
662e97f7b5
Panic on index-out-of-bounds when releasing RCC node
2024-06-29 01:37:35 +02:00
David Flemström
114dda2fd1
Avoid accidental copy of static var before creating mut ref
2024-06-29 01:34:07 +02:00
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
Bruno Bousquet
4d307b5a77
undo changes in input_capture
2024-05-30 17:49:20 -04:00
Bruno Bousquet
84707af5d7
create functions in inner to handle register modification
2024-05-30 17:43:53 -04:00
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