diff options
Diffstat (limited to 'src/bringup')
| -rw-r--r-- | src/bringup/mod.rs | 54 |
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, |
