mirror of
https://github.com/hubaldv/bioz-firmware-rs.git
synced 2025-12-06 05:01:18 +00:00
Included setting dft number from gui.
This commit is contained in:
@@ -10,7 +10,8 @@ use static_cell::StaticCell;
|
||||
use crate::ad5940::*;
|
||||
use crate::ad5940_registers::*;
|
||||
|
||||
use bioz_icd_rs::ImpedanceOutput;
|
||||
use bioz_icd_rs::{ImpedanceOutput, IcdDftNum};
|
||||
use crate::icd_mapping::IntoDftnum;
|
||||
|
||||
pub static IMPEDANCE_CHANNEL: Channel<ThreadModeRawMutex, ImpedanceOutput, 2000> = Channel::new();
|
||||
|
||||
@@ -51,7 +52,8 @@ impl ImpedanceSetup {
|
||||
self.ad5940.apply_clk_config(&clk_config).await.unwrap();
|
||||
|
||||
// Set DSP configuration
|
||||
let dsp_config = DspConfig::default()
|
||||
let mut dsp_config = DspConfig::default();
|
||||
dsp_config
|
||||
.adc_mux_n(MUXSELN::HsTiaNeg)
|
||||
.adc_mux_p(MUXSELP::HsTiaPos)
|
||||
.ctiacon(CTIACON::C32)
|
||||
@@ -68,7 +70,8 @@ impl ImpedanceSetup {
|
||||
self.dsp_config = Some(dsp_config);
|
||||
|
||||
// Set SRAM configuration (cmd and data sram)
|
||||
let sram_config = SramConfig::default()
|
||||
let mut sram_config = SramConfig::default();
|
||||
sram_config
|
||||
.datafifosrcsel(DATAFIFOSRCSEL::DFT)
|
||||
.datafifoen(DATAFIFOEN::Normal)
|
||||
.data_size(DATA_MEM_SEL::Size2kB)
|
||||
@@ -83,9 +86,13 @@ impl ImpedanceSetup {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn init_single_frequency_measurement(&mut self, frequency: u32) {
|
||||
pub async fn init_single_frequency_measurement(&mut self, frequency: u32, dft_number: IcdDftNum) {
|
||||
// Set DFT number
|
||||
self.dsp_config.as_mut().unwrap().dftnum(dft_number.into_dftnum());
|
||||
self.ad5940.apply_dsp_config(self.dsp_config.as_ref().unwrap()).await.unwrap();
|
||||
|
||||
// Configure GPIOs
|
||||
self.ad5940.write_reg(Register::GP0CON, 0b10 << 4 | 0b10 << 2 | 0b10).await.unwrap();
|
||||
self.ad5940.write_reg(Register::GP0CON, 0b10 << 4 | 0b10 << 2 | 0b10).await.unwrap();
|
||||
self.ad5940.write_reg(Register::SYNCEXTDEVICE, 0b111).await.unwrap();
|
||||
|
||||
// Calculate wait time between measurement start and stop
|
||||
@@ -150,6 +157,8 @@ impl ImpedanceSetup {
|
||||
self.start_measurement().await;
|
||||
}
|
||||
|
||||
|
||||
|
||||
pub async fn start_measurement(&mut self) {
|
||||
self.ad5940.sequencer_trigger(0).await;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user