Abraham Hamidi
987009df7b
feat(nrf/spim): erase Instance type from Spim
2025-09-24 15:58:33 -05:00
Dario Nieuwenhuis
d41eeeae79
Remove Peripheral trait, rename PeripheralRef->Peri.
2025-03-27 15:18:06 +01:00
Dario Nieuwenhuis
a8d7a5eb1e
nrf: add nrf54l base: gpio and time driver.
2024-11-17 14:42:06 +01:00
Dario Nieuwenhuis
51f6b813e1
nrf: port to chiptool-based nrf-pac
.
2024-11-04 00:47:31 +01: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
ab85eb4b60
nrf: remove mod sealed.
2024-04-05 00:48:46 +02:00
Priit Laes
0bcbca9e5b
nrf: spim: Hide the "Copying SPIM tx buffer into RAM for DMA" traces
...
Now that SPIM driver seems to be properly working, hide the trace logs
which occur whenever tx buffer needs to be copied into RAM.
2024-02-27 10:37:45 +02:00
Dario Nieuwenhuis
280f60654b
Merge pull request #2596 from NBonaparte/nrf-spi-drive
...
feat(nrf/spim): allow specifying drive of SPI pins
2024-02-20 13:48:50 +00:00
NBonaparte
ba2b4aad81
fix(nrf/spim): use OutputDrive
to set pin drives
2024-02-19 17:46:25 -08:00
NBonaparte
6ecac3bc95
feat(nrf/spim): allow specifying drive of SPI pins
2024-02-18 19:37:35 -08:00
Priit Laes
50b8100fd3
nrf: Implement chunked DMA transfers for SPIM peripheral
...
On some chips (notably nrf52832), the maximum DMA transfer is 255
bytes, which has caused subtle issues while interfacing with various
devices over SPI bus.
2024-02-15 12:34:51 +02:00
Priit Laes
27411658d9
nrf: spim/spis: Add size checks for EasyDMA buffer
...
On most nRF chips, maximum buffer size for EasyDMA is 255, thus
we never got any data when attempting to use 256 bytes as RX/TX buffer.
2024-02-08 21:48:41 +02:00
Matthew Tran
6efb5fd284
nrf/spi: add bit order config
2024-01-26 22:38:03 -06:00
swanandx
bdaf722cb8
fix: check if sck is some before setting high or low
2024-01-03 19:35:30 +05:30
swanandx
8352d13cfd
feat: new_txonly_nosck in spim
2024-01-03 19:25:39 +05:30
Dario Nieuwenhuis
c6989dfbca
Remove nightly and unstable-traits features in preparation for 1.75.
2023-11-29 17:26:33 +01:00
xoviat
d2a2734752
nrf, rp: update set_config
2023-10-01 09:37:42 -05:00
Priit Laes
6f83acc010
Add separate work-around specific flag for DMA errata on NRF52832
2023-09-22 17:02:21 +02:00
Nils Fitinghoff
2b7b7a917d
spim: Fix SPIM with polling executors
...
Co-authored-by: Priit Laes <plaes@plaes.org>
2023-09-22 17:02:21 +02:00
Priit Laes
8413a89752
nrf: spim: Use SetConfig trait internally to reduce duplication
2023-09-10 23:17:30 +02:00
Priit Laes
9de08d56a0
nrf: spim: Anomaly 109 workaround for SPIM peripheral ( #460 )
...
This implements SPIM TX workaround suggested from section 3.8.1
from Anomaly 109 addendum.
In workaround case we first keep track of original maxcnt values,
then initiate "fake" transfer with zero-length maxcnt values.
Once the "fake" transfer is triggered, we handle it, fill in the
original maxcnt values and restart the transmission.
2023-09-07 18:58:22 +03:00
Ulf Lilleengen
7d8e3951ba
fix: ensure spi irq is disabled when dropped
2023-08-10 22:26:56 +02:00
Dario Nieuwenhuis
036e6ae30c
Rename embassy-hal-common to embassy-hal-internal, document it's for internal use only. ( #1700 )
2023-07-28 13:23:22 +02:00
Dario Nieuwenhuis
a101d9078d
update embedded-hal crates.
2023-07-04 19:59:36 +02:00
Dion Dokter
582c721aec
Add lifetimes to the functions
2023-07-04 11:48:59 +02:00
Dario Nieuwenhuis
921780e6bf
Make interrupt module more standard.
...
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.
This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
- It works with `cortex-m` functions for manipulating interrupts, for example.
- It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
2023-06-08 18:00:48 +02:00
Dario Nieuwenhuis
404aa29289
cortex-m: remove owned interrupts.
2023-06-01 03:25:19 +02:00
Dario Nieuwenhuis
a32e82029a
nrf/spim: switch to new interrupt binding.
2023-03-06 00:17:51 +01:00
Dario Nieuwenhuis
b5cf332cc0
nrf: docs.
2023-02-01 01:17:41 +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
a0487380da
Replace futures::future::poll_fn -> core::future::poll_fn.
2022-09-22 16:42:49 +02: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
Dario Nieuwenhuis
21072bee48
split embassy-util
into embassy-futures
, embassy-sync
.
2022-08-22 22:18:13 +02:00
Dario Nieuwenhuis
a0f1b0ee01
Split embassy crate into embassy-executor, embassy-util.
2022-07-29 23:40:36 +02:00
Dario Nieuwenhuis
709df0dc1d
nrf: replace PhantomData usages with PeripheralRef.
2022-07-23 15:13:47 +02:00
Dario Nieuwenhuis
f02ba35482
Remove PeripheralRef::into_inner()
2022-07-23 14:27:45 +02:00
Dario Nieuwenhuis
4901c34d9c
Rename Unborrowed -> PeripheralRef, Unborrow -> Peripheral
2022-07-23 14:00:19 +02:00
Grant Miller
65a82d02d1
WIP: Make unborrow safe to use
2022-07-23 01:33:22 +02:00
Henrik Alsér
d637510b44
Associated type
2022-07-09 00:00:55 +02:00
Henrik Alsér
f30ff9cadc
Shared buses with SetConfig
2022-07-08 15:47:47 +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
9bad9365dc
Update rust nightly, embedded-hal 1.0, embedded-hal-async.
2022-03-11 00:38:07 +01:00
Til Blechschmidt
63030bf998
Move EasyDMA documentation to module level
2022-03-08 17:49:15 +01:00
Til Blechschmidt
993428e2d4
Refactor _from_ram methods to use more readable copy operation
2022-03-02 22:48:58 +01:00
Til Blechschmidt
62407da29b
Fix EasyDMA slice copying not actually copying data
2022-02-23 23:38:18 +01:00
Til Blechschmidt
66fdec7abe
Add defmt log outputs for SPIM memcpy
2022-02-23 23:27:12 +01:00
Til Blechschmidt
e96dd3654a
Change SPIM methods to copy slice if required and add non-copying variants
2022-02-23 22:51:59 +01:00
bors[bot]
f2eb438905
Merge #615
...
615: rp: remove OptionalPin r=Dirbaio a=Dirbaio
Mirror of https://github.com/embassy-rs/embassy/pull/605 for rp2040
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-02-12 00:46:40 +00:00