aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNathan Perry <np@npry.dev>2024-10-07 15:24:15 -0400
committerNathan Perry <np@npry.dev>2024-10-07 15:24:15 -0400
commit99399316358fa7c48b258e899d225d51a6e8b209 (patch)
tree7a9ff5831745513b0991c29841a69bfdb1a0c18c /src
parent851fc2dcf74b1fecdffdc9e8c8bf4e26cfc58cdc (diff)
hopefully fix spi register addressing
Diffstat (limited to 'src')
-rw-r--r--src/bringup/mod.rs54
-rw-r--r--src/main.rs9
2 files changed, 32 insertions, 31 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,
diff --git a/src/main.rs b/src/main.rs
index 0c8b5d8..86f4975 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -5,7 +5,10 @@
extern crate alloc;
use molybdos::{
- embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice,
+ embassy_embedded_hal::shared_bus::asynch::{
+ i2c::I2cDevice,
+ spi::SpiDevice,
+ },
embassy_executor,
embassy_rp,
embassy_rp::{
@@ -48,7 +51,6 @@ use molybdos::{
heapless,
pal::StaticOutput,
};
-
use ocularium_common::{
Downlink,
Sensor,
@@ -111,12 +113,15 @@ async fn main(spawner: embassy_executor::Spawner) {
&usb::COBS_DOWNLINK
);
+ // let mut vemldev = I2cDevice::new(&);
+
let mut spidev = SpiDevice::new(bme_spi, bme_cs);
manually_check_bme_id(&mut spidev).await;
let config = drogue_bme680_async::Configuration::default();
let bme = drogue_bme680_async::Sensor::new_spi(spidev).await.unwrap();
+
let mut bme = drogue_bme680_async::Controller::new(
bme,
molybdos::embassy_time::Delay,