Update register names

This commit is contained in:
2025-07-30 12:04:46 +02:00
parent f0e9fbc52c
commit d04f457c9f
2 changed files with 53 additions and 49 deletions

View File

@@ -127,25 +127,25 @@ impl AD5940 {
Ok(()) Ok(())
} }
pub async fn afecon(&mut self, ctr: ConfigurationRegister, state: bool) { pub async fn afecon(&mut self, ctr: AFECON, state: bool) {
let reg = self.read_reg_32(Register::AFECON).await.unwrap(); let reg = self.read_reg_32(Register::AFECON).await.unwrap();
let mut reg = ConfigurationRegister::from_bits_truncate(reg); let mut reg = AFECON::from_bits_truncate(reg);
let flags = [ let flags = [
ConfigurationRegister::DACBUFEN, AFECON::DACBUFEN,
ConfigurationRegister::DACREFEN, AFECON::DACREFEN,
ConfigurationRegister::SINC2EN, AFECON::SINC2EN,
ConfigurationRegister::DFTEN, AFECON::DFTEN,
ConfigurationRegister::WAVEGENEN, AFECON::WAVEGENEN,
ConfigurationRegister::TEMPCONVEN, AFECON::TEMPCONVEN,
ConfigurationRegister::TEMPSENSEN, AFECON::TEMPSENSEN,
ConfigurationRegister::TIAEN, AFECON::TIAEN,
ConfigurationRegister::INAMPEN, AFECON::INAMPEN,
ConfigurationRegister::EXBUFEN, AFECON::EXBUFEN,
ConfigurationRegister::ADCCONVEN, AFECON::ADCCONVEN,
ConfigurationRegister::ADCEN, AFECON::ADCEN,
ConfigurationRegister::DACEN, AFECON::DACEN,
ConfigurationRegister::HSREFDIS, AFECON::HSREFDIS,
]; ];
for &flag in flags.iter() { for &flag in flags.iter() {
@@ -161,32 +161,32 @@ impl AD5940 {
self.write_reg_32(Register::AFECON, reg.bits()).await.unwrap(); self.write_reg_32(Register::AFECON, reg.bits()).await.unwrap();
} }
pub async fn swcon(&mut self, ctr: SwitchMatrixConfigurationRegister) { pub async fn swcon(&mut self, ctr: SWCON) {
let reg = self.read_reg_32(Register::SWCON).await.unwrap(); let reg = self.read_reg_32(Register::SWCON).await.unwrap();
let mut reg = SwitchMatrixConfigurationRegister::from_bits_truncate(reg); let mut reg = SWCON::from_bits_truncate(reg);
// NMUXCON // NMUXCON
if (ctr & SwitchMatrixConfigurationRegister::NMUXCON_MSK) == SwitchMatrixConfigurationRegister::NMUXCON_N2 { if (ctr & SWCON::NMUXCON_MSK) == SWCON::NMUXCON_N2 {
reg &= !SwitchMatrixConfigurationRegister::NMUXCON_MSK; reg &= !SWCON::NMUXCON_MSK;
reg |= SwitchMatrixConfigurationRegister::NMUXCON_N2; reg |= SWCON::NMUXCON_N2;
} else if (ctr & SwitchMatrixConfigurationRegister::NMUXCON_MSK) == SwitchMatrixConfigurationRegister::NMUXCON_N5 { } else if (ctr & SWCON::NMUXCON_MSK) == SWCON::NMUXCON_N5 {
reg &= !SwitchMatrixConfigurationRegister::NMUXCON_MSK; reg &= !SWCON::NMUXCON_MSK;
reg |= SwitchMatrixConfigurationRegister::NMUXCON_N5; reg |= SWCON::NMUXCON_N5;
}; };
// PMUXCON // PMUXCON
if (ctr & SwitchMatrixConfigurationRegister::PMUXCON_MSK) == SwitchMatrixConfigurationRegister::PMUXCON_P2 { if (ctr & SWCON::PMUXCON_MSK) == SWCON::PMUXCON_P2 {
reg &= !SwitchMatrixConfigurationRegister::PMUXCON_MSK; reg &= !SWCON::PMUXCON_MSK;
reg |= SwitchMatrixConfigurationRegister::PMUXCON_P2; reg |= SWCON::PMUXCON_P2;
} else if (ctr & SwitchMatrixConfigurationRegister::PMUXCON_MSK) == SwitchMatrixConfigurationRegister::PMUXCON_P11 { } else if (ctr & SWCON::PMUXCON_MSK) == SWCON::PMUXCON_P11 {
reg &= !SwitchMatrixConfigurationRegister::PMUXCON_MSK; reg &= !SWCON::PMUXCON_MSK;
reg |= SwitchMatrixConfigurationRegister::PMUXCON_P11; reg |= SWCON::PMUXCON_P11;
} }
// DMUXCON // DMUXCON
if ctr.contains(SwitchMatrixConfigurationRegister::DMUXCON_D5) { if ctr.contains(SWCON::DMUXCON_D5) {
reg &= !SwitchMatrixConfigurationRegister::DMUXCON_MSK; reg &= !SWCON::DMUXCON_MSK;
reg |= SwitchMatrixConfigurationRegister::DMUXCON_D5; reg |= SWCON::DMUXCON_D5;
} }
self.write_reg_32(Register::SWCON, reg.bits()).await.unwrap(); self.write_reg_32(Register::SWCON, reg.bits()).await.unwrap();
@@ -208,14 +208,14 @@ impl AD5940 {
pub async fn init_temperature(&mut self) -> Result<(), Error> { pub async fn init_temperature(&mut self) -> Result<(), Error> {
// AFECON: // AFECON:
self.afecon(ConfigurationRegister::TEMPSENSEN | ConfigurationRegister::ADCEN, true).await; self.afecon(AFECON::TEMPSENSEN | AFECON::ADCEN, true).await;
// ADCCON // ADCCON
let config_adccon = ADCConfigurationRegister::GNPGA_1_5.bits() | ADCConfigurationRegister::MUXSELN_TEMP.bits() | ADCConfigurationRegister::MUXSELP_TEMP.bits(); let config_adccon = ADCCON::GNPGA_1_5.bits() | ADCCON::MUXSELN_TEMP.bits() | ADCCON::MUXSELP_TEMP.bits();
self.write_reg_32(Register::ADCCON, config_adccon).await?; self.write_reg_32(Register::ADCCON, config_adccon).await?;
// AFECON - start conversion // AFECON - start conversion
self.afecon(ConfigurationRegister::TEMPCONVEN | ConfigurationRegister::ADCCONVEN, true).await; self.afecon(AFECON::TEMPCONVEN | AFECON::ADCCONVEN, true).await;
Ok(()) Ok(())
} }
@@ -241,22 +241,22 @@ impl AD5940 {
self.write_reg_32(Register::WGAMPLITUDE, wg_amplitude).await?; self.write_reg_32(Register::WGAMPLITUDE, wg_amplitude).await?;
// WGCON, enable waveform generator and set to sinusoidal, NO DACCAL // WGCON, enable waveform generator and set to sinusoidal, NO DACCAL
let config_wgcon = WaveformGeneratorConfigurationRegister::TYPESEL_SIN.bits(); let config_wgcon = WGCON::TYPESEL_SIN.bits();
self.write_reg_32(Register::WGCON, config_wgcon).await?; self.write_reg_32(Register::WGCON, config_wgcon).await?;
// SWCON - set up switch matrix // SWCON - set up switch matrix
self.swcon( self.swcon(
SwitchMatrixConfigurationRegister::NMUXCON_N2 SWCON::NMUXCON_N2
| SwitchMatrixConfigurationRegister::PMUXCON_P11 | SWCON::PMUXCON_P11
| SwitchMatrixConfigurationRegister::DMUXCON_D5).await; | SWCON::DMUXCON_D5).await;
// AFECON: // AFECON:
self.afecon( self.afecon(
ConfigurationRegister::DACREFEN AFECON::DACREFEN
| ConfigurationRegister::EXBUFEN | AFECON::EXBUFEN
| ConfigurationRegister::INAMPEN | AFECON::INAMPEN
| ConfigurationRegister::DACEN | AFECON::DACEN
| ConfigurationRegister::WAVEGENEN, | AFECON::WAVEGENEN,
true, true,
) )
.await; .await;

View File

@@ -1,9 +1,10 @@
use bitflags::bitflags; use bitflags::bitflags;
bitflags! { bitflags! {
// Configuration Register
// Address 0x00002000, Reset: 0x00080000, Name: AFECON // Address 0x00002000, Reset: 0x00080000, Name: AFECON
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
pub struct ConfigurationRegister: u32 { pub struct AFECON: u32 {
const DACBUFEN = 1 << 21; const DACBUFEN = 1 << 21;
const DACREFEN = 1 << 20; const DACREFEN = 1 << 20;
const SINC2EN = 1 << 16; const SINC2EN = 1 << 16;
@@ -22,10 +23,11 @@ bitflags! {
} }
bitflags! { bitflags! {
// Switch Matrix Configuration Register
// Address 0x0000200C, Reset: 0x00000000, Name: SWCON // Address 0x0000200C, Reset: 0x00000000, Name: SWCON
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
#[derive(PartialEq)] #[derive(PartialEq)]
pub struct SwitchMatrixConfigurationRegister: u32 { pub struct SWCON: u32 {
const NMUXCON_MSK = 0b1111 << 8; const NMUXCON_MSK = 0b1111 << 8;
const NMUXCON_N2 = 0b0010 << 8; // N2 switch const NMUXCON_N2 = 0b0010 << 8; // N2 switch
const NMUXCON_N5 = 0b0101 << 8; // N5 switch const NMUXCON_N5 = 0b0101 << 8; // N5 switch
@@ -38,8 +40,9 @@ bitflags! {
} }
bitflags! { bitflags! {
// Waveform Generator Configuration Register
// Address 0x00002014, Reset: 0x00000030, Name: WGCON // Address 0x00002014, Reset: 0x00000030, Name: WGCON
pub struct WaveformGeneratorConfigurationRegister: u32 { pub struct WGCON: u32 {
const reset = 0x00000030; const reset = 0x00000030;
const DACGAINCAL = 1 << 5; const DACGAINCAL = 1 << 5;
const DACOFFSETCAL = 1 << 4; const DACOFFSETCAL = 1 << 4;
@@ -51,8 +54,9 @@ bitflags! {
} }
bitflags! { bitflags! {
// ADC Configuration Register,
// Address 0x000021A8, Reset: 0x00000000, Name: ADCCON // Address 0x000021A8, Reset: 0x00000000, Name: ADCCON
pub struct ADCConfigurationRegister: u32 { pub struct ADCCON: u32 {
const GNPGA_1_5 = 1 << 16; const GNPGA_1_5 = 1 << 16;
const MUXSELN_TEMP = 0b01011 << 8; const MUXSELN_TEMP = 0b01011 << 8;
const MUXSELP_TEMP = 0b01011; const MUXSELP_TEMP = 0b01011;