Commit Graph

231 Commits

Author SHA1 Message Date
dimpolo
ba43157c5a
enable TWAI on ESP32-S3 (#325)
* enable TWAI on ESP32-S3

* add esp32-s3 TWAI example
2023-01-03 10:02:01 -08:00
Alex Bohm
1f6803776c
Initial TWAI Driver Implementation (#192)
* wip: initial implementation of transmission only.

* Moved TWAI to its own directory and added initial reception of packets.

* Added extended id transmit and receive.

* Added maybe better code for making packet filters.

* Fixed bug with ids and improved methods of copying data to the peripheral.

* Added some guards against Bus Off

* Added reception of remote frames.

* Clean up of comments, etc

* Updated TWAI naming and cleaned up example a bit.

* Updated bitselector to include better unpacking methods.

* Add embedded-can and limit initial TWAI implementation to esp32c3.

* Added embedded-can to esp32c3 twai example.

* Switched twai filter to using bytestrings.

Co-authored-by: dimi <dimi.polonski@gmail.com>

* Implemented new() for twai filters.

* Clean up TWAI docs and example.

* Fix filter constructors and add examples.

* pre driver PeripheralRef update.

* PeripheralRef/twai

* Format comments with nightly rustfmt.

* Add gpio PeripheralRef and use volatile for direct register access.

Co-authored-by: dimi <dimi.polonski@gmail.com>
2022-12-22 00:54:06 +00:00
Scott Mabin
452fde2c12
Peripheral ref/gpio (#323)
* Implement Peripheral for all GPIO pins

* Update i2c & i2s to use the new gpio peripherals ref

* gpio pref: usb

* gpio pref: pulse control (RMT)

* gpio pref: spi

* gpio pref: uart

* gpio pref: ledc

* gpio pref: mcpwm

* fixup smartleds to use new pulse controller traits

* dump msrv

* bump rust-version in cargo tomls
2022-12-19 14:40:29 +00:00
Juraj Sadel
4598df6ed6
Peripheral ref/adc (#321)
* PeripheralRef: ADC

* PeripheralRef: DAC
2022-12-15 16:03:38 +01:00
Björn Quentin
4a780bd1f5
PeripheralRef: TIMG (#320) 2022-12-15 14:03:41 +01:00
Björn Quentin
5ebd800d0e
PeripheralRef: RTC (#319) 2022-12-15 11:21:13 +01:00
Björn Quentin
945a0d66c1
PeripheralRef: USB_OTG (#318) 2022-12-15 09:29:01 +01:00
Björn Quentin
a90aa3a2cc
PeripheralRef: DMA (#317) 2022-12-15 08:12:43 +01:00
Scott Mabin
c6a6010443
PeripheralRef: MCPWM (#314) 2022-12-14 16:42:30 +01:00
Björn Quentin
42f6f8ac4a
PeripheralRef for ClockControl (#316) 2022-12-14 15:09:46 +00:00
Juraj Sadel
ca4c573660 PeripheralRef: I2S 2022-12-14 15:09:19 +01:00
Scott Mabin
3a57eb98fe
Completely remove pac references in hal drivers (#309)
* Peripheral ref/sha (#312)

* Add SHA to list of peripherals to be created

* Refactor SHA peripheral to use PeripheralRef

* Update SHA examples to get them building again

* Fix async time drivers

* Fix usb otg

* Fix s3

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2022-12-14 13:15:45 +00:00
Jesse Braham
220f812625
Peripheral ref/sha (#312)
* Add SHA to list of peripherals to be created

* Refactor SHA peripheral to use PeripheralRef

* Update SHA examples to get them building again
2022-12-14 12:19:53 +00:00
Juraj Sadel
7817e270c2
PeripheralRef: RMT (#310) 2022-12-14 11:47:50 +00:00
Scott Mabin
a9661e68be
Peripheral ref/rng (#306) (#307)
* Add RNG to list of peripherals to be created

* Refactor RNG driver to use PeripheralRef

Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2022-12-14 09:34:43 +00:00
Jesse Braham
f2b59538df
Peripheral ref/rng (#306)
* Add RNG to list of peripherals to be created

* Refactor RNG driver to use PeripheralRef
2022-12-14 09:20:01 +00:00
Björn Quentin
39c5a04d05
PeripheralRef for SYSTEM/DPORT (#305) 2022-12-14 08:40:50 +00:00
Sergio Gasquez
0774018df5 revert: ️ impl Peripheral only for USB_DEVICE 2022-12-13 17:19:11 +01:00
Sergio Gasquez
7d4cfa2070 refactor: ♻️ impl Peripheral for USB_DEVICE, USB0, and USB_WARP 2022-12-13 17:17:24 +01:00
Sergio Gasquez
76afaa3692 refactor: ♻️ PeripheralRef usb serial 2022-12-13 17:13:47 +01:00
Jesse Braham
d7babe6ef6
Peripheral ref/i2c (#303)
* Add I2C to list of peripherals to be created

* Refactor I2C driver to use PeripheralRef
2022-12-13 07:06:27 -08:00
Scott Mabin
c7f420199e
Peripheral ref/systimer (#302)
* impl Peripheral for SYSTIMER

* PeripheralRef the Systimer driver
2022-12-13 06:52:51 -08:00
bjoernQ
dc8963c0a8 Support ESP32-C2 with 26MHz Xtal 2022-12-13 05:15:10 -08:00
Scott Mabin
cfe83827cf
PeripheralRef/spi (#299)
* Add missing UART instances

* Add SPI to list of peripherals to be created

* Refactor SPI driver to use PeripheralRef
2022-12-13 00:36:18 -08:00
Scott Mabin
248fb356f8
PeripheralRef init: uart (#272)
* Add the peripheral module plus some helper macros in preparation

* peripheral macro

* Add peripheral generation macro

* Fixes after rebase

* Update the signature of Peripherals::take

* syncronise hello world example

* fmt the entire repo

Co-authored-by: Jesse Braham <jesse@beta7.io>
2022-12-12 14:45:33 +00:00
Jesse Braham
03d94a0ba2 New releases for all HALs 2022-12-12 01:29:49 -08:00
IsaacDynamo
66b757847f Missed some changes 2022-12-10 01:51:14 +01:00
IsaacDynamo
7d985dc36a Added start_duty_without_fade() and update_channel() to set_duty() in order for the new duty-cycle to take effect 2022-12-10 01:06:02 +01:00
IsaacDynamo
2aa26863dd Allow a duty-cycle of 0% 2022-12-09 21:50:51 +01:00
Scott Mabin
0a5947c7f9 Correct Systimer delay implementation
Closes #229
2022-12-09 05:34:53 -08:00
Scott Mabin
0000d46ac5 Embassy init updates:
- Rename timg feature to timg0 to better refect which TG is being used
- Use the time_driver::TimerType in the signature of init to fix #268
- Update examples
- Fix CI features
- Add timg0 cfg to build.rs
2022-12-08 06:36:42 -08:00
Jesse Braham
91f18c882d Add cfg symbols for i2s and mcpwm 2022-12-07 15:38:52 +01:00
bjoernQ
4ab05e8923 Pass trap frame to CPU interrupt handlers (Xtensa) 2022-12-06 02:07:49 -08:00
Josh Weberruss
bc39cdae86 Add Rx and interrupts to UsbSerialJtag
Add non-blocking Write
2022-12-01 22:02:47 +11:00
Björn Quentin
c46719e112
Merge pull request #255 from dimpolo/mcpwm
MCPWM MVP implementation
2022-12-01 08:34:16 +01:00
Jesse Braham
5d48e77d5e
Fix clippy warnings, update READMEs (#284)
* Fix a couple clippy warnings

* Create features for architecture-specific depdendencies

* README updates
2022-11-30 10:13:40 -08:00
Björn Quentin
bc4e180a1a
Merge pull request #280 from bjoernQ/gpio-refactoring
GPIO module refactoring
2022-11-30 08:15:13 +01:00
dimi
0a75d3c64a resolve mcpwm FIXME 2022-11-30 00:55:58 +01:00
dimi
1369943710 resolve TODO 2022-11-30 00:55:39 +01:00
dimi
e1a812bc59 add SAFETY comments 2022-11-30 00:55:39 +01:00
dimi
257664da74 add direction to Timer::set_counter 2022-11-30 00:55:39 +01:00
dimi
ab74fc47fd rename const generics 2022-11-30 00:55:39 +01:00
dimi
f0876952b7 implement Timer::set_counter 2022-11-30 00:55:39 +01:00
dimi
89535a26dd WIP docs 2022-11-30 00:55:39 +01:00
dimi
2d81313475 add PeripheralClockConfig and TimerClockConfig 2022-11-30 00:55:39 +01:00
dimi
4327506bb2 use Clocks.pwm_clock on ESP32 2022-11-30 00:55:38 +01:00
dimi
408243d7e1 improve mcpwm::operator, add PwmPinConfig 2022-11-30 00:55:38 +01:00
dimi
6d2b8a6718 PwmClock changes 2022-11-30 00:55:38 +01:00
dimi
18c7ef7802 WIP MCPWM implementation 2022-11-30 00:55:38 +01:00
dimi
7a51433944 remove i2c::SetupError and make i2c::I2C::new infallible 2022-11-29 14:19:45 +01:00