Patrick Oppenlander
aabc275186
stm32/spi: fix occasional data corruption
...
Need to clear the rx fifo before enabling rx dma.
2023-03-01 12:24:22 +11:00
Ralf
e3174d7a99
STM32 SPI: Set clk-pin pull-up/-down to match spi clock polarity
...
RM0394:
40.4.6
Communication formats
...
The idle state of SCK must correspond to the polarity selected in the SPIx_CR1 register (by
pulling up SCK if CPOL=1 or pulling down SCK if CPOL=0).
2023-02-06 13:23:35 +01:00
Rasmus Melchior Jacobsen
47a0769fc2
Let repeated clock byte be singular pointer and not array pointer
2022-12-23 15:49:22 +01:00
Rasmus Melchior Jacobsen
662bb5797f
fix(stm32): Ensure that gpio speed is VeryHigh for all spi versions
...
This fixes #1095
2022-12-23 09:34:42 +01:00
Rasmus Melchior Jacobsen
2457fcaa35
fix(stm32): Align with updated dma::write_repeated signature
2022-12-23 09:33:34 +01:00
Guillaume MICHEL
e0ea5dfdb2
embassy-stm32: Allow SPI with DMA to implement blocking embbeded-hal traits
2022-11-30 09:26:16 +01:00
Dario Nieuwenhuis
1e2fb0459d
Switch to async-fn-in-trait
2022-11-25 21:02:06 +01:00
Ulf Lilleengen
72c2e985bb
Update embedded-hal versions and explicitly pin
2022-09-29 11:27:46 +02:00
Dario Nieuwenhuis
10d1ad2343
Replace futures::future::join -> embassy_futures::join::join.
2022-09-22 16:48:35 +02:00
bors[bot]
6264fe39a5
Merge #839
...
839: Misc LoRaWAN improvements r=lulf a=timokroeger
Trying too get `embassy-lora` running on a [LoRa-E5 Dev Board](https://wiki.seeedstudio.com/LoRa_E5_Dev_Board/ ).
I can see the join message arriving in the The Things Network console but the device does not receive the accept message yet.
Opening this PR anyway because I think there are some nice things to decouple the lora crate from the nucleo board.
`@lulf` Could you test if this PR breaks your LoRa setup? Marking as draft for the time being.
Co-authored-by: Timo Kröger <timokroeger93@gmail.com>
Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
2022-09-04 07:17:23 +00:00
Dario Nieuwenhuis
8ba421f324
Do not use cfg_if for embedded-hal-async feature gates.
...
Old code used `cfg_if!` because rustc still parses code inside disabled cfg's, and Rust stable at that time couldn't parse the new GAT where-clause location. This is not the case anymore.
2022-08-31 03:11:21 +02:00
Timo Kröger
308ca4b8e3
Use pub(crate)
visibility for internal SPI
...
SubGhz provides a public interface for the radio connected to internal SPI
`#[allow(dead_code)]` is required for CI to succeed
2022-08-26 15:44:58 +02:00
Timo Kröger
61c666212f
stm32wl: Do not require external SPI pins for SUBGHZ
...
For the Seeed Studio Lora-E5 those pins conflict with the radio frontend control GPIOS (PA4 and PA5).
2022-08-26 15:42:25 +02:00
Dario Nieuwenhuis
4901c34d9c
Rename Unborrowed -> PeripheralRef, Unborrow -> Peripheral
2022-07-23 14:00:19 +02:00
Dario Nieuwenhuis
8a9d2f59af
Update embassy-stm32
2022-07-23 02:40:13 +02:00
Grant Miller
5ecbe5c918
embassy-stm32: Simplify time
...
- Remove unused `MilliSeconds`, `MicroSeconds`, and `NanoSeconds` types
- Remove `Bps`, `KiloHertz`, and `MegaHertz` types that were only used
for converting to `Hertz`
- Replace all instances of `impl Into<Hertz>` with `Hertz`
- Add `hz`, `khz`, and `mhz` methods to `Hertz`, as well as
free function shortcuts
- Remove `U32Ext` extension trait
2022-07-10 21:46:45 -05:00
Henrik Alsér
880b71a1e8
impl SetConfig for stm32 i2c and SPI
2022-07-09 02:28:05 +02:00
Dario Nieuwenhuis
a8703b7598
Run rustfmt.
2022-06-12 22:22:31 +02:00
Dario Nieuwenhuis
5085100df2
Add embassy-cortex-m crate.
...
- Move Interrupt and InterruptExecutor from `embassy` to `embassy-cortex-m`.
- Move Unborrow from `embassy` to `embassy-hal-common` (nothing in `embassy` requires it anymore)
- Move PeripheralMutex from `embassy-hal-common` to `embassy-cortex-m`.
2022-06-12 21:45:38 +02:00
Dario Nieuwenhuis
009bb8e4e1
stm32: add stm32u5 GPDMA, SPIv4 support, add HIL tests.
2022-04-27 01:16:14 +02:00
chemicstry
6d547b1143
SDIO working on stm32f4
2022-03-16 18:52:27 +02:00
Dario Nieuwenhuis
1dc618f0e4
stm32/spi: fix blocking transfer hanging after async.
2022-03-15 04:13:33 +01:00
Grant Miller
49ef19c0b2
stm32/spi: Clear rx fifo in blocking methods
2022-03-14 21:55:37 -05:00
Dario Nieuwenhuis
059b164234
stm32/spi: do not clear rxfifo in SPIv3, the hw already does it.
2022-03-15 02:37:08 +01:00
Dario Nieuwenhuis
4579192832
stm32/spi: fix hang in SPIv3 by not waiting for rxfifo empty in finish_dma.
2022-03-15 02:36:34 +01:00
Dario Nieuwenhuis
306110f56e
stm32/spi: implement async trasnfer_in_place
2022-03-15 00:40:48 +01:00
Grant Miller
f1d6c95205
rustfmt
2022-03-14 18:22:41 -05:00
Grant Miller
71632648c7
Fix zero-length-slice bugs
2022-03-14 18:14:55 -05:00
Grant Miller
15c533fe2a
Fix async write
bug
2022-03-14 18:04:31 -05:00
Grant Miller
6e00c58854
Make all functions generic over word size
2022-03-14 16:53:50 -05:00
Grant Miller
f0b62bc8e0
Use const REGS
2022-03-14 15:56:08 -05:00
Grant Miller
482ffea4dd
Finish unification
2022-03-14 15:56:08 -05:00
Grant Miller
406b1b3dd2
Finish matching versions
2022-03-14 15:56:08 -05:00
Grant Miller
7cd6f00a90
Add set_txdmaen
and set_rxdmaen
functions
2022-03-14 15:56:08 -05:00
Grant Miller
444b37fcdf
Add flush_rx_fifo
function
2022-03-14 15:56:08 -05:00
Grant Miller
683c11f399
Call set_word_size
before disabling SPE
2022-03-14 15:56:08 -05:00
Dario Nieuwenhuis
9bad9365dc
Update rust nightly, embedded-hal 1.0, embedded-hal-async.
2022-03-11 00:38:07 +01:00
Dario Nieuwenhuis
dd828a7a92
stm32: move macrotables to embassy-stm32 build.rs
2022-02-26 03:23:09 +01:00
Dario Nieuwenhuis
bf80504ac7
stm32: centralize gpio reg access in the gpio module.
2022-02-24 02:49:20 +01:00
Dario Nieuwenhuis
1e69a8c484
stm32: move pin trait impls from macrotables to build.rs
2022-02-23 19:54:46 +01:00
Dario Nieuwenhuis
b4abb1f5c2
stm32: move dma trait impls from macrotables to build.rs
2022-02-23 19:16:37 +01:00
Dario Nieuwenhuis
340eb4eead
stm32: add rust stable support
2022-02-12 02:45:52 +01:00
Dario Nieuwenhuis
b99ab3d5d9
stm32: Add standard crate-wide macros for pin/dma traits, switch all drivers to use them.
2022-02-10 21:38:03 +01:00
Dario Nieuwenhuis
a8bd3ab952
Add missing + 'd
on unborrows.
2022-02-10 16:06:42 +01:00
Dario Nieuwenhuis
550da471be
stm32: Remove OptionalPin
...
The idea behind OptionalPin has a few problems:
- you need to impl the signal traits for NoPin which is a bit weird https://github.com/embassy-rs/embassy/blob/master/embassy-stm32/src/dcmi.rs#L413-L416
- you can pass any combination of set/unset pins, which needs checking at runtime https://github.com/embassy-rs/embassy/blob/master/embassy-stm32/src/dcmi.rs#L130
The replacement is to do multiple `new` constructors for each combination of pins you want to take.
2022-02-10 02:38:10 +01:00
Ulf Lilleengen
4032fc0655
Support unstable-trait feature for stm32
2022-01-26 22:39:06 +01:00
Dario Nieuwenhuis
889d757ab8
stm32/spi: expose all functionality as inherent methods.
2022-01-19 17:59:55 +01:00
Matous Hybl
66e46d8012
Add the possibility to reconfigure Spi mode and bit order configuration on the fly.
2022-01-14 12:50:58 +01:00
Ulf Lilleengen
2bbd1ddb8a
Remove unneeded rustfmt::skip
2021-12-16 11:37:53 +01:00
Grant Miller
6597e67036
Add finish_dma function
2021-12-14 17:46:25 -06:00