Commit Graph

2743 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
f0a2616dd6
Merge pull request #3468 from korken89/fix-can-hang
This fixes 2 issues where STM32 BXCAN would hang
2024-10-27 18:19:56 +00:00
Emil Fresk
917f1d1f4d This fixes 2 issues where STM32 BXCAN would hang
1. If one received frames under an `interrupt_free` section, in my case
   `init` in RTIC, the RX IRQ will fire and clear it's enable bit after
   `interrupt_free` is complete. There is no frame to read so RX is now
   unconditionally disabled forever.
2. On clearing of RX IRQ, TX stops silently. This happens due to the use
   of `write` instead of `modify` when modifying IRQ enable bits.

Solution 1: Enable RX IRQs on every call to `try_read` that return no
data. This solution also solves the issue of very delayed handling of
the RX IRQ which would cause the same issue.

Solution 2: Use `modify` instead of `write`.
2024-10-27 10:10:46 +01:00
Ulf Lilleengen
8803128707
Merge pull request #3317 from GrantM11235/simplepwmchannel
embassy-stm32: Add SimplePwmChannel
2024-10-23 10:30:13 +00:00
Dario Nieuwenhuis
8eb80c6816
Merge pull request #3444 from dnbln/main
feat: allow `bind_interrupts!` to accept conditional compilation attrs
2024-10-22 15:18:35 +00:00
Dinu Blanovschi
c797915525 fix: review comments 2024-10-22 16:56:05 +02:00
Dinu Blanovschi
e9f2e63796 fix 2024-10-22 16:50:10 +02:00
Dinu Blanovschi
5c23c789ee fix 2024-10-22 16:23:17 +02:00
Dinu Blanovschi
82a438a037 fix 2024-10-22 15:51:05 +02:00
Dinu Blanovschi
ccd635f0dc fix + allow both conditions on the irq and the handlers 2024-10-22 15:43:28 +02:00
Dinu Blanovschi
3279c19eee feat(stm32): allow bind_interrupts! to accept conditional compilation attrs 2024-10-22 12:30:37 +02:00
Lucas Martins
82772e3a8f
📝 fix wrong comment 2024-10-21 17:50:05 -03:00
Lucas Martins
2c9b528edd
fmt 2024-10-21 15:06:06 -03:00
Lucas Martins
c0addc005b
add uart permutations usefull for rs485 2024-10-21 14:48:57 -03:00
Lucas Martins
1d395fc2b6 stm32/flash: add stm32f2, stm32h5 flash driver 2024-10-21 02:21:53 +02:00
Dario Nieuwenhuis
34eeaa0787
Merge pull request #3435 from embassy-rs/octospim-fix
stm32: Fix build for chips with octospim but not octospi2.
2024-10-20 23:37:47 +00:00
Dario Nieuwenhuis
ecac24a1c7 stm32: Fix build for chips with octospim but not octospi2. 2024-10-21 01:30:21 +02:00
Dario Nieuwenhuis
1a24b4f018 Release embassy-executor v0.6.1, embassy-executor-macros v0.6.1 2024-10-21 01:26:02 +02:00
Christian Enderle
9cf75d7eac stm32/flash: add support for l5 2024-10-17 20:17:01 +02:00
Alexandros Liarokapis
9f1b6b4791 Revise I2S interface to ring-buffered. 2024-10-16 18:45:27 +03:00
Tu Nguyen
8af52488e7 add RTR flag if it is remote frame 2024-10-16 17:45:40 +07:00
Ulf Lilleengen
bcfbaaab95
Merge pull request #3336 from liarokapisv/stm32-alternative-ringbuffer-impl
stm32: Ringbuffer rewrite
2024-10-16 08:01:58 +00:00
Dion Dokter
e350ca836a
STM32 QSPI typo (#3418) 2024-10-15 13:23:57 +02:00
Alexandros Liarokapis
28d03537e9 stm32: Automatically clear on WritableRingBuffer start 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
d280b23428 fix adc/ringbuffered_v2.rs 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
2ec05da5dd simplify if/else handling on ringbuffer 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
f0d2ebdc7e stm32: fix ringbugger overrun errors due to bad dma wrap-around behavior 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
c991ddb766 use request_pause instead of request_stop at adc shutdown 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
9c7b296432 overrun at invalid diffs, rename clear to reset, simplify dma_sync method 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
8271225216 make len method take mut self and remove sync index calls 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
85fb890b00 add auto-clear functionality to ringbuffer 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
f4ec0cb4d4 simplify and rename ringbuffer methods, make len available 2024-10-15 12:29:12 +03:00
Alexandros Liarokapis
2b10caafd4 stm32: initial support for alternative ringbuffer implementation 2024-10-15 12:29:12 +03:00
Роман Кривенков
6862ac56cb Stm32: implement async flush for UART 2024-10-14 13:28:35 +04:00
Dario Nieuwenhuis
9a45d776d8 rustfmt for new nightly. 2024-10-14 00:12:45 +02:00
Dario Nieuwenhuis
ee669ee5c5 Update nighlty, fix warnings.
Fixes #2599
2024-10-14 00:11:16 +02:00
HaoboGu
0222faa8a1
Add octospim support for octospi (#3102)
* feat: add octospim to ospi

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* feat: make octospim behind feature gate

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* refactor: fix fmt issue

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* refactor: fix ci failure

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* feat: add octospim reg writing code

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* feat(octospi): enable rcc for octospim at the initialization

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* fix: add octospim feature gate

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* fix: fix cfg flag

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* fix: fix rcc register on stm32l4 and stm32u5

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* feat(ospi): support OCTOSPI2 in build.rs

Signed-off-by: Haobo Gu <haobogu@outlook.com>

* feat(ospi): add OCTOSPI2 pin impls

Signed-off-by: HaoboGu <haobogu@outlook.com>

* feat(ospi): support both ospi instances in stm32 OCTOSPIM

Signed-off-by: Haobo Gu <haobogu@outlook.com>

---------

Signed-off-by: Haobo Gu <haobogu@outlook.com>
Signed-off-by: HaoboGu <haobogu@outlook.com>
2024-10-13 22:32:22 +02:00
Dario Nieuwenhuis
2f6273bb5d
Merge pull request #3299 from badrbouslikhin/main
fix(stm32): disable transmitter during during half-duplex flush
2024-10-13 20:10:16 +00:00
Beat Küng
0bf99820f3
stm32: add RX Pull configuration option to USART 2024-10-12 13:47:26 +02:00
Fabian Viöl
3870411a4a stm32/i2c: disable pullup instead of pulldown 2024-10-10 16:12:51 +02:00
Dario Nieuwenhuis
456c226b29
Merge pull request #3404 from farmblox/fix-stm32-exti-low-power
stm32: fix low-power EXTI IRQ handler dropped edges
2024-10-08 20:48:26 +00:00
Lena Berlin
df0fc04198
fix: stm32l0 low-power EXTI IRQ handler wiped pending bits before they were checked 2024-10-08 11:18:59 -04:00
Ulf Lilleengen
81573b1a6d
Merge pull request #3364 from hansihe/fix-fdcan-preemption-dequeued-frame-return
Fix return value of `fdcan` `write`
2024-09-23 08:09:17 +00:00
Dario Nieuwenhuis
fb0afa8a0f stm32: update metapac. Fixes SPI version on L0. 2024-09-23 02:06:58 +02:00
Dario Nieuwenhuis
68b783aedf stm32/spi: fix hang/corruption of word sizes other than 8bit. 2024-09-23 02:06:58 +02:00
Dario Nieuwenhuis
59dcffbc60 stm32/gpdma: clear tr3 just in case. 2024-09-23 02:06:58 +02:00
Dario Nieuwenhuis
f2f96a731c stm32/gpdma: ensure bndt in bytes doesn't overflow. 2024-09-23 02:06:58 +02:00
Dario Nieuwenhuis
9705f3332b
Merge pull request #3337 from doesnotcompete/feature/h7rs-usb
Add OTG_HS support for STM32H7R/S
2024-09-22 23:56:17 +00:00
Hans Josephsen
e2d2b0f362 Currently the return value of write is broken, it never returns the
previous frame even when present.

This happens because a slice of length 64 is always passed to Frame::new
from within the `abort_pending_mailbox` function, causing `Frame::new`
to return None.

The fix is to take a subslice of length `data_length`.
2024-09-22 12:40:46 +02:00
Shaw Drastin
db31e36485 stm32/spi: issue correct DMA word length when reading
Currently, when calling read() of the SPI bus, DMA always transmits u8,
which will cause hang if SPI transfer size > 8bit. Use matching word
size for TX DMA instead.
2024-09-22 11:13:10 +02:00
Dario Nieuwenhuis
233905e18c
Merge pull request #3356 from peterkrull/ringbuffered-uartrx-deadlock
stm32: Fix RingBufferedUartRx hard-resetting DMA after initial error
2024-09-22 08:56:46 +00:00