Commit Graph

171 Commits

Author SHA1 Message Date
Björn Quentin
9b3e644e30
Detangle I2C clock calculation (#263)
* Detangle I2C clock calculation

- fixes ESP32-C2 in release mode
- fixes the MPU6050 init problem

* Converted NOTE to FIXME
2022-11-16 11:31:04 +00:00
Josh Weberruss
5523a7b8b9 Fix UART unlisten calls so they clear the interrupt enable bit instead of setting it 2022-11-13 12:30:13 +11:00
Jesse Braham
86049a53de
Update all PACs (#259) 2022-11-10 09:02:18 -08:00
Scott Mabin
9064177e99
Initial embassy support (#225)
* wip: timg embassy driver

- read_raw on timg renamed to now()
- timg initialized and stored in static for use in the embassy driver
- timg sets alarm value
- untested whether alarms actually trigger

* TIMG timer driver for esp32, esp32s3

- Adds the timg timer block as a time driver for embassy
- Not enabled on the C3 as it only has one timer block, better to use
  systimer
- s2 example added but can't build due to atomic requirements in
  futures-core

* Add S2 atomic support with emulation, fixup embassy support for the S2

* Move executor & static-cell to dev deps. Make eha optional

* Add c2 support, run fmt

* Update to crates.io embassy releases

* Update eha

* update timg time driver to new trait

* Remove exception feature of esp-backtrace and use the user handler for backtracing

* Add async testing workflow

* Update systick example

* Fix S2 examples

* Update xtensa-toolchain

* set rustflags for s2 target

* Disable systick for esp32s2 until we can fix the noted issues

* review improvements

- Fix intr prio array being off by one
- emabssy time prio interrupt set to max prio
- use cfg instead of feature for systick detection

* Update example time delays
2022-11-09 08:04:38 -08:00
Björn Quentin
8bdf11b287
I2C Driver Refactoring (#233)
* I2C Driver Refactoring

* Improve I2C error handling and robustness
2022-11-09 06:34:55 -08:00
dimi
ece70e99a4 Add Mcpwm0 and Mcpwm1 to system::Peripheral 2022-11-07 13:24:17 -08:00
Björn Quentin
da3cbca61e
Merge pull request #251 from dimpolo/outputsignal
add/correct docs for gpio::OutputSignal and add PWM output signal to ESP32-S3
2022-11-07 10:21:58 +01:00
dimi
7df93cb359 add/correct docs for gpio::OutputSignal and add PWM output signal to ESP32-S3 2022-11-07 02:13:53 +01:00
Jesse Braham
ced5941871 Add LEDC support for ESP32-C2 2022-11-04 08:19:53 -07:00
Jesse Braham
251e60c20f Update to newest PACs for C2/C3/S3 and clean up GDMA implementation 2022-11-03 11:17:51 -07:00
Juraj Sadel
f6ba237e76
ADC: Refactor, join S2 and S3 together and C2 and C3 as well (#245)
* ADC: Refactor, join S2 and S3 together and C2 and C3 as well

* S3: Update PAC version
2022-11-02 10:38:03 -07:00
bjoernQ
a876d8d344 Support USB-DEVICE on ESP32-S3 and ESP32-S2 2022-11-02 07:14:50 -07:00
Björn Quentin
fae2f1add3
Merge pull request #244 from bjoernQ/fix-esp32c2-apbclock
ESP32-C2 APB clock is 40MHz, not 80MHz
2022-11-02 13:59:26 +01:00
bjoernQ
ec60c4b5fe ESP32-C2 APB clock is 40MHz, not 80MHz 2022-11-02 13:11:00 +01:00
icedrocket
e28a7d1ba0 Fix typo 2022-11-01 20:32:55 +09:00
bjoernQ
ad1970c6b7 Offer DMA channel 3 and 4 on ESP32-S3 2022-10-31 07:09:15 -07:00
dimi
2f3b6c843c remove lifetime annotations from cpu_control::start_app_core 2022-10-31 14:46:31 +01:00
dimi
5cf6079054 cpu_control::start_app_core improvements
* add `Send` bound
* move `#[must_use]` to `AppCoreGuard`
* remove redundant `-> ()`
* document guard behaviour
2022-10-31 13:28:56 +01:00
Björn Quentin
8ec46df825
Merge pull request #234 from jessebraham/feature/dma
Add DMA support for ESP32-C2 and ESP32-S3
2022-10-28 16:15:28 +02:00
Jesse Braham
4f18e2c846 Update the priority enum and add missing channels for ESP32-S3 2022-10-28 06:51:10 -07:00
JCF
a7d561ec26 Added method to change bus frequency to Spi struct 2022-10-28 11:15:39 +02:00
Jesse Braham
c642c79297 Add DMA support for ESP32-S3 2022-10-27 12:08:23 -07:00
Jesse Braham
e2df98da52 Add DMA support for ESP32-C2 2022-10-27 11:22:30 -07:00
bjoernQ
3e4710b822 Add DMA support for ESP32-S2 2022-10-25 07:38:45 -07:00
Gustavo Henrique Nihei
3ff5da5aa7 esp-hal-common: Remove unnecessary unsafe block
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-10-24 09:52:46 -03:00
playfulFence
4fb77df6ce Fix lifetime error 2022-10-24 13:09:06 +02:00
Björn Quentin
9744d12484
SPI-DMA for ESP32 (#216)
* SPI-DMA for ESP32

* MSRV Fix
2022-10-20 09:12:31 -07:00
Juraj Sadel
d850b76246 ESP32S3: Add ADC support 2022-10-20 17:44:08 +02:00
Jesse Braham
00cba4485c Update esp-hal-common to use the newest PACs 2022-10-19 07:00:20 -07:00
bjoernQ
9cb24bb79f Basic DMA for ESP32-C3 2022-10-13 10:14:51 -07:00
Jesse Braham
f13c47f28f
Merge pull request #211 from jessebraham/feature/esp32c2
Add support for the ESP32-C2/ESP8684
2022-10-13 08:52:44 -07:00
Jesse Braham
908fb48e6c Remove some unused constants 2022-10-13 07:34:02 -07:00
Jesse Braham
e2b2d55bf8 Fix a bunch of cfg gates, use published version of PAC 2022-10-12 12:25:15 -07:00
Jesse Braham
2880ca4ca0 More corrections to clocks 2022-10-12 09:28:34 -07:00
Jesse Braham
d3f92db2ec Get the ADC example building, clean up some cfg gates
Note that this example still doesn't seem to be working correctly
2022-10-12 09:28:34 -07:00
Jesse Braham
312c41cee2 All examples building, many still have issues at runtime 2022-10-12 09:28:34 -07:00
Andreas Hartmann
159fe3b29b common/spi: Use constructor in add_device
to create a new `SpiBusDevice` instead of directly instantiating the
struct. `SpiBusDevice::new` takes care of setting up the CS line to be a
default-high output, too, which the raw struct doesn't.
2022-10-12 08:52:02 +02:00
Jesse Braham
76f803ae63 Make some corrections to clock/RTC_CNTL (still not working) 2022-10-11 10:12:42 -07:00
Jesse Braham
05fd5a64de Update dependencies, fix some errors after rebase, add RTC_CNTL 2022-10-11 10:12:42 -07:00
Jesse Braham
3019b78d6a Fix clock and GPIO drivers, add analog GPIO pins 2022-10-11 10:11:36 -07:00
Jesse Braham
f5f475923f Add startup code and build/linker scripts, add ADC, eFuse, GPIO, and TIMG 2022-10-11 10:11:36 -07:00
Jesse Braham
455965d471 Create the esp32c2-hal package and add it to the workspace
Add a feature for the ESP32-C2 to`esp-hal-common` and update some `cfg`s


Organize the `esp-hal-common` imports and exports and update to include the ESP32-C2
2022-10-11 08:03:43 -07:00
Andreas Hartmann
2b98932028 common/spi: Implement hardware CS
Removes a lot of generic arguments and hard-codes the `SpiBusController`
and `SpiBusDevice` to work with the `Spi<T>` defined in the HAL instead.
This allows us to access the `cs_signal()` trait function from `T:
Instance`, which we need to connect/disconnect the CS I/O as
appropriate.
2022-10-11 16:06:45 +02:00
Björn Quentin
af745ac7b0
Fix ESP32-C3 interrupt/exception handling (#207)
* Fix ESP32-C3 interrupt/exception handling

* Use riscv-atomic-emulation-trap 0.2.0
2022-10-05 14:15:17 +01:00
Jesse Braham
5054681ba3 Update to newest embedded-hal alpha and add embedded-hal-nb 2022-09-29 16:07:49 +02:00
Jesse Braham
7889a992d7 Add cfg symbols for SYSTIMER and USB_SERIAL_JTAG peripherals 2022-09-20 16:41:39 +02:00
Juraj Sadel
0f9fdb7c15 RMT: Shouldn't be possible to assign pins multiple times into channel 2022-09-20 12:33:17 +02:00
Jesse Braham
5ca771a12e
Inject configuration symbols in build script, simplify cfg gating (#187)
* Update the build script to inject a configuration value for the enabled chip

* Update all cfg gates to use the new symbols instead of the chip features

* Inject architecture and core count symbols as well, update as needed

* Organize the imports and exports of `esp-hal-common`
2022-09-14 07:46:23 -07:00
Jesse Braham
ee7e9bd0a1 Bump version numbers and update dependencies 2022-09-13 21:01:08 +02:00
Jesse Braham
252fa27c2e Change target_arch cfgs to chip features
This hopefully will allow the documentation's build to succeed on docs.rs, as it uses the `x86_64-unknown-linux-gnu` target by default
2022-09-13 19:46:41 +02:00