Included lib for adg2128.

This commit is contained in:
2025-07-21 17:33:48 +02:00
parent ed49071ffa
commit 0c18664e48
5 changed files with 331 additions and 11 deletions

View File

@@ -4,13 +4,20 @@
use defmt::*;
use embassy_executor::Spawner;
use embassy_stm32::gpio::{Level, Output, Speed};
use embassy_stm32::{adc, spi, Config};
use embassy_stm32::{i2c, spi, Config};
use embassy_stm32::time::Hertz;
use embassy_time::Timer;
use {defmt_rtt as _, panic_probe as _};
mod ad5940;
use ad5940::AD5940;
mod adg2128;
use adg2128::State;
mod electrodes;
use electrodes::{Electrodes, Electrode, AD5940Pin};
mod ad5940_registers;
#[embassy_executor::main]
@@ -34,6 +41,7 @@ async fn main(_spawner: Spawner) {
// let mut led = Output::new(p.PA5, Level::High, Speed::Low);
// Set up SPI for AD5940
let cs = Output::new(p.PC9, Level::High, Speed::Low);
let spi = spi::Spi::new_blocking(
@@ -49,6 +57,21 @@ async fn main(_spawner: Spawner) {
ad5940.init_temperature().await.unwrap();
// Set up I2C for ADG2128
let i2c = i2c::I2c::new_blocking(
p.I2C1,
p.PB6,
p.PB7,
Hertz(400_000),
i2c::Config::default()
);
// Initialize electrodes
let mut electrodes = Electrodes::new(i2c);
electrodes.reset_all();
electrodes.set(Electrode::E11, AD5940Pin::CE0, State::ENABLED);
electrodes.set(Electrode::E12, AD5940Pin::RE0, State::ENABLED);
loop {
// Read chip id
// let chip_id = ad5940.get_chipid().await.unwrap();
@@ -58,6 +81,9 @@ async fn main(_spawner: Spawner) {
let temp = ad5940.get_temperature().await.unwrap();
info!("Temperature: {}°C", temp);
let result = electrodes.get_all();
info!("Electrodes states: {:?}", result);
// info!("high");
// led.set_high();
Timer::after_millis(500).await;