aboutsummaryrefslogtreecommitdiff
path: root/src/bringup/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bringup/mod.rs')
-rw-r--r--src/bringup/mod.rs54
1 files changed, 25 insertions, 29 deletions
diff --git a/src/bringup/mod.rs b/src/bringup/mod.rs
index e59e8c3..e1f0278 100644
--- a/src/bringup/mod.rs
+++ b/src/bringup/mod.rs
@@ -46,8 +46,8 @@ use molybdos::pal::StaticOutput;
pub mod i2s;
pub use i2s::{
- StaticI2S,
I2S,
+ StaticI2S,
};
embassy_rp::bind_interrupts! {
@@ -69,28 +69,22 @@ static SENSOR_I2C: StaticCell<Mutex<CriticalSectionRawMutex, SensorI2c>> = Stati
static PIO0: StaticCell<embassy_rp::pio::Pio<'static, PIO0>> = StaticCell::new();
-pub struct Split<
- BmeSpi,
- BmeSpiMutex,
- SdSpi,
- SdSpiMutex,
- // SensorI2c,
- // SensorI2cMutex,
-> where
+pub struct Split<BmeSpi, BmeSpiMutex, SdSpi, SdSpiMutex, SensorI2c, SensorI2cMutex>
+where
SdSpiMutex: RawMutex + 'static,
SdSpi: 'static,
BmeSpiMutex: RawMutex + 'static,
BmeSpi: 'static,
- // SensorI2cMutex: RawMutex + 'static,
- // SensorI2c: 'static,
+ SensorI2cMutex: RawMutex + 'static,
+ SensorI2c: 'static,
{
- pub sd_spi: &'static Mutex<SdSpiMutex, SdSpi>,
- pub sd_cs: StaticOutput,
- pub bme_spi: &'static Mutex<BmeSpiMutex, BmeSpi>,
- pub bme_cs: StaticOutput,
- // pub sensor_i2c: &'static Mutex<SensorI2cMutex, SensorI2c>,
- pub wdt: Watchdog,
- pub usb: molybdos::pal::UsbDriver,
+ pub sd_spi: &'static Mutex<SdSpiMutex, SdSpi>,
+ pub sd_cs: StaticOutput,
+ pub bme_spi: &'static Mutex<BmeSpiMutex, BmeSpi>,
+ pub bme_cs: StaticOutput,
+ pub sensor_i2c: &'static Mutex<SensorI2cMutex, SensorI2c>,
+ pub wdt: Watchdog,
+ pub usb: molybdos::pal::UsbDriver,
pub i2s: i2s::I2S<'static, 'static, embassy_rp::peripherals::PIO0, 0>,
pub i2s_dma: DMA_CH5,
@@ -105,8 +99,8 @@ pub fn split(
CriticalSectionRawMutex,
crate::SdSpi,
CriticalSectionRawMutex,
- // crate::SensorI2c,
- // CriticalSectionRawMutex,
+ crate::SensorI2c,
+ CriticalSectionRawMutex,
> {
let mut periphs = embassy_rp::init(config);
@@ -143,14 +137,16 @@ pub fn split(
SD_SPI.init(sd_spi)
};
- // let i2c = {
- // let mut conf = i2c::Config::default();
- // conf.frequency = 400_000;
- //
- // let i2c = SensorI2c::new_async(periphs.I2C1, periphs.PIN_23, periphs.PIN_22, Irqs, conf)
- // .pipe(Mutex::new);
- // SENSOR_I2C.init(i2c)
- // };
+ let i2c = {
+ let mut conf = i2c::Config::default();
+ conf.frequency = 400_000;
+
+ let (dummy_scl, dummy_sda) = (periphs.PIN_15, periphs.PIN_14);
+
+ let i2c =
+ SensorI2c::new_async(periphs.I2C1, dummy_scl, dummy_sda, Irqs, conf).pipe(Mutex::new);
+ SENSOR_I2C.init(i2c)
+ };
let usb_driver = embassy_rp::usb::Driver::new(periphs.USB, Irqs);
@@ -172,7 +168,7 @@ pub fn split(
bme_spi,
bme_cs,
wdt,
- // sensor_i2c: i2c,
+ sensor_i2c: i2c,
usb: usb_driver,
i2s,
i2s_dma: periphs.DMA_CH5,