Peter Krull
907d55ea82
stm32: Added request_pause to DMA, and use it for RingBufferedUartRx
2024-09-19 18:14:09 +02:00
Dario Nieuwenhuis
ae8caf3f55
Merge pull request #3314 from elagil/add_iso_endpoint_support
...
Add ISO endpoint support
2024-09-16 19:51:52 +00:00
Dario Nieuwenhuis
c739091085
Update stm32-metapac.
2024-09-11 01:19:46 +02:00
Romain Goyet
d69f68b8c0
stm32: Use a GLOBAL interrupt for lptim
2024-09-11 01:18:52 +02:00
Romain Goyet
69208daf6d
stm32: Fixing stupid typo (thanks @dirbaio)
2024-09-11 01:18:52 +02:00
Romain Goyet
ac319970b8
stm32: Work around LPTIM4
2024-09-11 01:18:52 +02:00
Romain Goyet
652133bce4
stm32: Support LPTIM v1 and v2
2024-09-11 01:18:52 +02:00
Romain Goyet
37130f45e4
stm32: Use the updated LPTIM pac
2024-09-11 01:18:52 +02:00
Romain Goyet
b449e04a88
stm32: Temporary fix around incomplete stm32-metapac
2024-09-11 01:18:52 +02:00
Romain Goyet
3b8859653e
stm32: Clean up the lptim driver
2024-09-11 01:18:52 +02:00
Romain Goyet
a1c9a2e8bd
First working draft of a lptim driver
...
This driver is able to PWM a pin
2024-09-11 01:18:52 +02:00
Dario Nieuwenhuis
1ea29f1d2e
Merge pull request #3169 from Adancurusul/g4_dev
...
Add adc oversampling and adc differential for g4
2024-09-10 23:07:11 +00:00
Dario Nieuwenhuis
fac71e594e
Merge pull request #3271 from sjoerdsimons/ucpd-sop-filters
...
[UCPD] Add support for non-SOP packets
2024-09-10 23:03:58 +00:00
Dario Nieuwenhuis
609b1b0355
Merge pull request #3286 from trnila/stm32_usart_break
...
stm32/usart: sending break character
2024-09-10 21:33:27 +00:00
Dario Nieuwenhuis
1058afd5fd
Merge pull request #3303 from maximevince/stm32f2-flash-support-blocking
...
stm32: add f2 flash support (blocking)
2024-09-10 21:30:54 +00:00
Dario Nieuwenhuis
d5e77f69c1
Merge pull request #3319 from badrbouslikhin/buffered-uart-rx-fix
...
fix(stm32): fix dma and idle line detection in ringbuffereduartrx
2024-09-10 21:30:22 +00:00
elagil
e698fbe598
fix: pull-down clock/data lines for receive
2024-09-10 21:38:05 +02:00
Grant Miller
df06c2bbfe
wip: split by value
2024-09-07 11:17:13 -05:00
Grant Miller
b8beaba6df
last oops I promise
2024-09-06 15:08:58 -05:00
Grant Miller
d24c47a3ff
Missing docs
2024-09-06 14:08:22 -05:00
Grant Miller
f571ab9d60
oops again
2024-09-06 14:04:58 -05:00
Grant Miller
71e49839fc
oops
2024-09-06 14:01:10 -05:00
Grant Miller
cfc76cec71
Match embedded-hal api
2024-09-06 13:29:54 -05:00
Badr Bouslikhin
0e477a4df5
fix(stm32): enable dma half transfer interrupt for buffereduart
2024-09-06 18:55:33 +02:00
Badr Bouslikhin
ee25f14b20
fix(stm32): reorder dma and idle futures
2024-09-06 18:55:33 +02:00
Grant Miller
f7f062e0a3
Deduplicate SimplePwm's channel methods
2024-09-06 10:25:29 -05:00
Grant Miller
8ac758bdee
embassy-stm32: Add SimplePwmChannel
2024-09-06 09:09:09 -05:00
elagil
ccf68d7391
feat(usb): add support for ISO endpoints
2024-09-05 21:29:04 +02:00
Maxime Vincent
82f274ea09
stm32: add f2 flash support (blocking)
2024-09-02 12:25:42 +02:00
Badr Bouslikhin
f6d92b7611
fix(stm32): disable transmitter during half-duplex read
2024-08-30 18:52:23 +02:00
Daniel Trnka
22f4459ae2
stm32/usart: sending break character in buffered usart
2024-08-28 21:55:08 +02:00
Scott Mabin
f0a8607051
Add block-device-driver impl for use with embedded-fatfs ( #2607 )
2024-08-26 20:45:57 +02:00
Daniel Trnka
bea1f34440
stm32/usart: sending break character
2024-08-25 21:49:43 +02:00
Ulf Lilleengen
1ff1f00d5a
Merge pull request #3282 from elagil/add_sai_is_muted
...
feat: add function to check if SAI is muted
2024-08-25 13:59:27 +00:00
Ulf Lilleengen
1cfd5370ac
Merge pull request #3281 from elagil/ulpi_add_fs_support
...
feat: Add support for a full-speed ULPI mode
2024-08-25 06:05:41 +00:00
Emil Fresk
41e162541a
stm32: Fix log storm when no CAN is connected
...
Running the bxcan driver without having it connected
to a CAN bus causes the `info` logs to bombard.
This removes the logging statements as they looked
like remnants from the development of the driver.
2024-08-25 07:14:19 +02:00
elagil
557cff7085
feat: Add support for a full-speed ULPI mode
2024-08-24 20:23:10 +02:00
elagil
87e97fb69d
feat: add function to check if SAI is muted
2024-08-24 20:16:00 +02:00
Dario Nieuwenhuis
1c466b81e6
Merge pull request #3233 from nautd/uart_half_duplex_fix
...
Convert uart half_duplex to use user configurable IO
2024-08-19 20:20:20 +00:00
Karun
bbc06035c1
make half duplex fn private
2024-08-19 12:15:39 -04:00
Karun
fcf9b3239e
remove duplication
2024-08-19 11:27:18 -04:00
Sjoerd Simons
1b0661ebb1
[UCPD] Add support for non-SOP packets
...
Allow capturing (and distinguishing) non-SOP packets as well. The
default configuration will just configure SOP packets. For ease of use
the default receive function signature is unchanged as for PD sinks
(which is likely the common usage) just SOP is enough so no need to
differentiate.
2024-08-18 21:19:16 +02:00
Dario Nieuwenhuis
8884766450
stm32: update metapac
2024-08-17 21:57:40 +02:00
Alexandros Liarokapis
2b7e76efe9
Fix dma nvic issues on dual core lines
...
This commit addresses #3256 by disabling dma NVIC interrupt enablement at startup.
Instead, per-channel NVIC interrupt enablement is now done with the rest of the dma channel configuration.
This ensures that each core will only handle the interrupts of the DMA channels that it uses.
2024-08-17 16:54:41 +03:00
Dario Nieuwenhuis
55c01818cf
Merge pull request #3213 from embedded-rust-iml/stm32l4-low-power
...
Implement low-power feature for STM32L4 MCUs
2024-08-13 16:43:23 +00:00
Karun
446169b2c1
Add gpio version dependency
...
Add configurable output type for half-duplex
2024-08-06 11:52:16 -04:00
Karun
a725892720
Convert uart half_duplex to use open-drain pull-up
2024-08-05 15:37:03 -04:00
Dion Dokter
ab4d378dda
Merge branch 'master' into stm-dualcore
2024-08-05 11:21:21 +02:00
Dion Dokter
2a7fe16ceb
Improve shared data placement, require less atomic support and use unsafecell for the clocks
2024-08-05 11:18:16 +02:00
Ulf Lilleengen
37d7b0cd06
prepare release embassy-executor
2024-08-05 08:56:29 +02:00
Ulf Lilleengen
44282b18fa
Prepare embassy-time release
2024-08-05 08:56:29 +02:00
Ulf Lilleengen
fb0ab1e42a
Prepare release of embassy-hal-internal
2024-08-05 08:56:29 +02:00
Ulf Lilleengen
5767c003cc
Prepare release of embassy-embedded-hal 0.2.0
2024-08-05 08:56:29 +02:00
Ulf Lilleengen
91f135e25b
Merge pull request #3161 from diondokter/hsem
...
Add function to get the active HSEM interrupt
2024-07-31 14:34:11 +00:00
Samuel Tardieu
8680c86894
embassy-stm32: wait for BSY flag to clear before flashing
...
While not waiting for the BSY flag to clear works on STM32F103C8T6, it
does not on APM32F103C8T6. Only one half-word gets written while the
other one gets lost.
2024-07-27 15:07:04 +02:00
Tobias Naumann
60aa9c15a8
Implement low-power feature for stm32l4 MCUs
2024-07-26 14:25:10 +02:00
Dario Nieuwenhuis
8c4f044ae7
Merge pull request #3207 from diondokter/fix-opamp-lifetimes
...
Add extra lifetime to opamp-using structs
2024-07-25 15:14:10 +00:00
Dion Dokter
4a8abe8028
Relax lifetimes again
2024-07-25 16:01:27 +02:00
Dario Nieuwenhuis
2d678d6956
Update to Rust 1.80, make check-cfg unconditional.
2024-07-25 15:53:00 +02:00
Dion Dokter
6ef9e564ca
Add extra lifetime to opamp-using structs
2024-07-25 12:22:55 +02:00
Dario Nieuwenhuis
2537fc6f4f
Merge pull request #3188 from ninjasource/sdmmc-dma-buffers
...
embassy-stm32: Allow cmd block to be passed in for sdmmc dma transfers
2024-07-22 19:44:00 +00:00
David Haig
e7270e00f6
Added set_cmd_block for dma memory compatibility
2024-07-19 02:03:53 +01:00
Dario Nieuwenhuis
024097d833
Merge pull request #3163 from michelrandahl/f303-tsc-example
...
add TSC examples
2024-07-18 12:10:02 +00:00
Dario Nieuwenhuis
2e4374df1b
Merge pull request #3189 from kalkyl/fmc-a13
...
stm32: Add 13bit address sdram constructors
2024-07-18 11:38:19 +00:00
Tarun Singh
a716a3f006
Reduced define for 'unreachable!' to a single macro rule
2024-07-17 17:05:52 -04:00
kalkyl
a4ca71bc23
stm32: Add 13bit address sdram constructors
2024-07-17 18:16:56 +02:00
David Haig
32019ed9b7
Allow cmd buffer to be passed in for dma memory
2024-07-17 17:12:37 +01:00
rafael
d9ea5cb015
stm after cargo fix
2024-07-14 17:56:56 +02:00
rafael
c7f775dc20
stm
2024-07-14 16:42:54 +02:00
Chen Yuheng
fd5501d455
delete unused "info!" and fmt
2024-07-11 15:34:34 +08:00
Chen Yuheng
f01ffbcc12
Add oversampling and differential for g4
2024-07-11 10:33:43 +08:00
michel
52f40b9c9d
add blocking TSC examples
2024-07-10 13:26:18 +02:00
Dion Dokter
4972dbd91b
Add function to get the active HSEM interrupt
2024-07-09 11:49:16 +02:00
Dion Dokter
e39e93ead4
Improve use of CS
2024-07-09 09:56:15 +02:00
Dion Dokter
6db0daf79b
Fix errors
2024-07-09 09:53:01 +02:00
Dion Dokter
f6f312270f
fmt
2024-07-09 09:37:49 +02:00
Dion Dokter
203297b569
Make clocks repr C.
...
Add shared data.
Modify freq functions to use shared data.
Modify examples to use new init/
2024-07-08 16:54:06 +02:00
Ulf Lilleengen
e2f9a48457
Merge pull request #3148 from andresv/stm32-adc-blocking_read
...
stm32 adc: introduce blocking_read
2024-07-03 12:45:58 +00:00
Andres Vahter
f851081e09
stm32 adc: introduce blocking_read
2024-07-03 15:20:31 +03:00
Dario Nieuwenhuis
ac5b7edb05
Merge pull request #3144 from Stupremee/better-clock-messages
...
Better panic message when peripheral clock is not enabled
2024-07-03 09:30:24 +00:00
Ulf Lilleengen
914d7c7919
Merge pull request #3128 from andresv/stm32-adc-dma-v3
...
STM32 ADC v3 and V4 DMA support
2024-07-03 08:13:26 +00:00
Ulf Lilleengen
ef78e3283b
Merge pull request #3143 from andresv/stm32-ringbuffered-adc-docs
...
stm32 ringbuffered adc docs
2024-07-03 07:33:10 +00:00
Ulf Lilleengen
b6f76b5ab2
Merge pull request #3110 from liarokapisv/adc_v4_averaging
...
stm32 - Adc v4 - Add averaging support.
2024-07-03 07:22:34 +00:00
Ulf Lilleengen
3e70601fc7
Merge pull request #3124 from Adancurusul/dev
...
Add adc oversampling support
2024-07-03 07:22:03 +00:00
Justus K
9e4e536769
Better panic message when peripheral clock is not enabled
2024-07-03 08:32:00 +02:00
Ulf Lilleengen
5223923bd2
Merge pull request #3111 from Eekle/feature/async_tsc
...
Add async API to TSC
2024-07-02 18:51:50 +00:00
Eekle
d3f8905e93
Use crate level PeriMode
2024-07-02 20:46:05 +02:00
Andres Vahter
d4ff7616f9
stm32 ringbuffered adc docs improvements
2024-07-02 17:35:15 +03:00
Andres Vahter
a4e62314af
stm32: adc v3: fix for newest pac
2024-07-02 17:15:22 +03:00
Andres Vahter
c120efad5b
stm32 adc read_async: add asserts for buf len
2024-07-02 17:07:18 +03:00
Andres Vahter
5e2fd8623a
stm32 adc v3 read_async
2024-07-02 17:07:18 +03:00
Alexandros Liarokapis
02b096915f
add asynchrous sequence read support to adc v4
2024-07-02 17:07:18 +03:00
Andres Vahter
dd69efe708
stm32 ringbuffered adc: add buf size assert
2024-07-02 16:56:19 +03:00
Andres Vahter
b88e1a5d71
stm32 ringbuffered adc docs
2024-07-02 16:53:49 +03:00
Andres Vahter
1f30ad595b
stm32 ringbuffered adc: fix for metapac changes
2024-07-02 09:21:27 +03:00
Andres Vahter
8cbb64226b
update stm32-metapac
2024-07-02 09:15:01 +03:00
Dario Nieuwenhuis
6f21d5e478
Merge pull request #3116 from sethkrie/adc-v2-ringbuf
...
ring buffered adc v2
2024-07-02 01:05:49 +00:00
Dario Nieuwenhuis
d6e4086a15
Merge pull request #3089 from qwerty19106/stm32_uart_half_fix_sequential_read_write
...
WIP: STM32 Half-Duplex: fix sequential reads and writes
2024-07-02 00:58:54 +00:00
Dario Nieuwenhuis
c0cd851fb9
Merge pull request #3093 from liarokapisv/circular_half_transfer_ir
...
Enables half transfer ir when constructing a ReadableDmaRingBuffer
2024-07-02 00:51:05 +00:00
Роман Кривенков
a862334dae
STM32 Half-Duplex: fix sequential reads and writes
2024-07-02 02:45:06 +02:00
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