Jeremy Fitzhardinge
4fd831e4a8
rp async i2c: raise the tx_empty threshold
...
Assert "tx_empty" interrupt a little early so there's time to wake up
and start refilling the fifo before it drains. This avoids stalling the
i2c bus if the tx fifo completely drains.
2022-10-03 18:50:03 -07:00
Jeremy Fitzhardinge
cae8499179
rp i2c: clean up tx_abrt handling
...
Make sure we always wait for the stop bit if there's a reason to -
either because we sent one, or because there was a hardware tx abort.
2022-10-03 01:18:26 -07:00
Jeremy Fitzhardinge
e8bb8faa23
rp i2c: allow blocking ops on async contexts
2022-10-02 15:09:14 -07:00
Jeremy Fitzhardinge
09afece93d
make I2c::write_async take an iterator
...
There's no other iterator async API right now.
2022-10-01 19:28:27 -07:00
Jeremy Fitzhardinge
5e2c52ee5b
embassy-rp: async i2c implementation
...
This is an interrupt-driven async i2c master implementation. It makes as
best use of the RP2040's i2c block's fifos as possible to minimize
interrupts.
It implements embedded_hal_async::i2c for easy interop.
WIP async impl
2022-10-01 13:43:37 -07:00
Jeremy Fitzhardinge
72b645b0c9
rp i2c: make blocking only for Mode=Blocking
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
8d38eacae4
rp i2c: remove vestiges of DMA
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
90d392205f
embassy-rp: inline I2c::regs
...
It just returns a literal constant, so there's no reason not to always inline it.
2022-10-01 13:26:13 -07:00
Ulf Lilleengen
72c2e985bb
Update embedded-hal versions and explicitly pin
2022-09-29 11:27:46 +02:00
Mathias
bf1da0497c
Allow unused fields temporarily in i2c
2022-09-27 22:08:49 +02:00
Mathias
44c46e3c93
Move async i2c implementation to new PR, to merge working blocking implementation faster
2022-09-27 22:08:49 +02:00
Mathias Koch
b0d91e9f31
Apply suggestions from code review
...
Co-authored-by: Jacob Gonzalez <jacobgonzalez5252@gmail.com>
2022-09-27 22:08:49 +02:00
Mathias
53c34ccc39
Add async API for I2C
2022-09-27 22:08:49 +02:00
Mathias
be68d8ebb7
Add further i2c error types
2022-09-27 22:08:49 +02:00
Mathias
603513e76e
Fix blocking I2C
2022-09-27 22:08:49 +02:00
Mathias
bcd3ab4ba1
Add blocking read & write for I2C
2022-09-27 22:08:49 +02:00
Mathias
820e6462b6
Add preliminary I2C implementation for RP2040
2022-09-27 22:08:49 +02:00
Dario Nieuwenhuis
17d8d11f73
usb: make HALs depend only on embassy-usb-driver.
2022-09-27 13:16:49 +02:00
Mathias
e129a97d48
Fix bufferedUart read and write tests
2022-09-27 07:45:10 +02:00
Mathias
65907204d6
Rename from {Rx,Tx}BufferedUart to BufferedUart{Rx,Tx} to be compliant with stm32 and nrf implementations
2022-09-27 05:51:31 +02:00
Mathias
f76444bdc4
Add HIL test for bufferedUart
2022-09-26 20:34:55 +02:00
Mathias
b3dfd06dd6
Remove code-duplication in async bufferedUart implementations
2022-09-26 20:34:55 +02:00
Mathias
1db9e464ff
Enable embedded-io on nightly
2022-09-26 20:34:55 +02:00
Mathias
d6af0f6286
Formatting
2022-09-26 20:34:55 +02:00
Mathias
f2239d34cc
Add bufferedUart, including a split version for only Rx or Tx
2022-09-26 20:34:55 +02:00
Mathias
ee76831f93
Add BufferedUart implementation, and feature-guard time-driver initialization, to free up TIMER peripheral if not used with embassy executor
2022-09-26 20:34:55 +02:00
Dario Nieuwenhuis
1e95c4fcff
rp: Disable intrinsics by default.
2022-09-26 19:53:22 +02:00
bors[bot]
49070c75b6
Merge #972
...
972: Restructure USB crates r=Dirbaio a=Dirbaio
- Split driver from `embassy-usb` to a separate crate. This allows making breaking changes to `embassy-usb` without having to bump all the crates with driver impls, such as HALs.
- Merge classes into `embassy-usb`. Now that breaking changes to `embassy-usb` aren't that bad, having everything in a single crate is much easier.
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-09-26 11:32:41 +00:00
Dario Nieuwenhuis
7f7c14b7bc
usb: split driver trait to separate crate.
2022-09-26 12:29:27 +02:00
Dario Nieuwenhuis
fa7781c48d
Add credits to rp-hal
2022-09-26 11:57:26 +02:00
Mathias
2e7916c5fe
Add RP2040 ROM functions and intrinsics aliases
2022-09-23 06:45:44 +02:00
Dario Nieuwenhuis
10d1ad2343
Replace futures::future::join -> embassy_futures::join::join.
2022-09-22 16:48:35 +02:00
Dario Nieuwenhuis
a0487380da
Replace futures::future::poll_fn -> core::future::poll_fn.
2022-09-22 16:42:49 +02:00
Dario Nieuwenhuis
897b72c872
Update Rust nightly.
...
Removes feature(generic_associated_types)
2022-09-22 16:38:14 +02:00
bors[bot]
3b58ac1bf8
Merge #949
...
949: (embassy-rp): Implement RealTimeClock r=lulf a=MathiasKoch
Basically a 1:1 port of the great implementation effort made by `rp-hal`
Co-authored-by: Mathias <mk@blackbird.online>
2022-09-21 07:19:23 +00:00
bors[bot]
6663390224
Merge #954
...
954: rp: fix async SPI read and write r=lulf a=newAM
Closes #953
Co-authored-by: Alex Martens <alex@thinglab.org>
2022-09-19 07:26:10 +00:00
Alex Martens
0c6933fefb
rp: remove extraneous newlines in logs
2022-09-18 14:54:24 -07:00
Alex Martens
295cc997ae
rp: let SPI RX overflow during async write
2022-09-18 12:23:17 -07:00
Alex Martens
ab1a6889a6
rp: fix async SPI read and write
2022-09-18 12:02:05 -07:00
Mathias
1c657d2d55
Add time-driver feature to docs
2022-09-16 16:45:59 +02:00
Mathias
feead3ae89
Implement RealTimeClock for embassy-rp
2022-09-16 13:18:23 +02:00
Mathias
f7267d493f
Feature-gate time-driver in embassy-rp
2022-09-16 12:54:26 +02:00
Dario Nieuwenhuis
5327b9c289
time: add more tick rates, use 1mhz as default.
2022-09-02 00:59:34 +02:00
Henrik Alsér
efe456ab14
Fix dma
2022-09-01 15:50:08 +02:00
Henrik Alsér
71c130488b
Reorder args
2022-09-01 15:12:44 +02:00
Henrik Alsér
e2181cb439
rustfmt
2022-09-01 15:12:44 +02:00
Henrik Alsér
b934f3f12e
Remove cfg_if
2022-09-01 15:12:44 +02:00
Henrik Alsér
3fce6ec649
Rearrange new:s
2022-09-01 15:12:44 +02:00
Henrik Alsér
27905f1be1
Change DMA write/read to use raw pointers
2022-09-01 15:12:44 +02:00
Henrik Alsér
99dd2a9386
Reorder args
2022-09-01 15:12:44 +02:00