Crate rp2040_hal
source ·Expand description
HAL for the RP2040 microcontroller
This is an implementation of the embedded-hal
traits for the RP2040 microcontroller
NOTE This HAL is still under active development. This API will remain volatile until 1.0.0
Crate features
- chrono - Modifies some RTC access functions to use chrono types instead of a rp2040-hal specific DateTime type
- critical-section-impl - critical section that is safe for multicore use
- defmt -
Implement
defmt::Format
for several types. - disable-intrinsics - Disable automatic mapping of language features (like floating point math) to ROM functions
- eh1_0_alpha - Support alpha release of embedded-hal
- rom-func-cache - Memoize(cache) ROM function pointers on first use to improve performance
- rt - Minimal startup / runtime for Cortex-M microcontrollers
- rom-v2-intrinsics - This enables ROM functions for f64 math that were not present in the earliest RP2040s
- rp2040-e5 - This enables a fix for USB errata 5: USB device fails to exit RESET state on busy USB bus. Only required for RP2040 B0 and RP2040 B1, but it also works for RP2040 B2 and above
- rtic-monotonic -
Implement
rtic_monotonic::Monotonic
based on the RP2040 timer peripheral
Re-exports
pub extern crate rp2040_pac as pac;
pub use paste;
pub use adc::Adc;
pub use clocks::Clock;
pub use i2c::I2C;
pub use sio::Sio;
pub use spi::Spi;
pub use timer::Timer;
pub use watchdog::Watchdog;
Modules
- Analog-Digital Converter (ADC)
- Clocks (CLOCKS)
- Direct memory access (DMA).
- General Purpose Input and Output (GPIO)
- Inter-Integrated Circuit (I2C) bus
- Multicore support
- Programmable IO (PIO) See Chapter 3 of the datasheet for more details.
- Phase-Locked Loops (PLL)
- Prelude
- Pulse Width Modulation (PWM)
- Subsystem Resets
- Functions and data from the RPI Bootrom.
- Ring Oscillator (ROSC)
- Real time clock functionality
- Single Cycle Input and Output (SIO)
- Serial Peripheral Interface (SPI)
- Synchronous Serial Interface (SSI)
- Timer Peripheral
- Module supporting type-level programming
- Universal Asynchronous Receiver Transmitter (UART)
- Universal Serial Bus (USB)
- Interrupt vector table utilities
- Watchdog
- Crystal Oscillator (XOSC)
Macros
- Helper macro to give meaningful names to GPIO pins
Attribute Macros
- Attribute to declare the entry point of the program