Files
bioz-firmware-rs/src/ad5940_registers.rs
2025-07-30 12:04:46 +02:00

65 lines
1.9 KiB
Rust

use bitflags::bitflags;
bitflags! {
// Configuration Register
// Address 0x00002000, Reset: 0x00080000, Name: AFECON
#[derive(Clone, Copy)]
pub struct AFECON: u32 {
const DACBUFEN = 1 << 21;
const DACREFEN = 1 << 20;
const SINC2EN = 1 << 16;
const DFTEN = 1 << 15;
const WAVEGENEN = 1 << 14;
const TEMPCONVEN = 1 << 13;
const TEMPSENSEN = 1 << 12;
const TIAEN = 1 << 11;
const INAMPEN = 1 << 10;
const EXBUFEN = 1 << 9;
const ADCCONVEN = 1 << 8;
const ADCEN = 1 << 7;
const DACEN = 1 << 6;
const HSREFDIS = 1 << 5;
}
}
bitflags! {
// Switch Matrix Configuration Register
// Address 0x0000200C, Reset: 0x00000000, Name: SWCON
#[derive(Clone, Copy)]
#[derive(PartialEq)]
pub struct SWCON: u32 {
const NMUXCON_MSK = 0b1111 << 8;
const NMUXCON_N2 = 0b0010 << 8; // N2 switch
const NMUXCON_N5 = 0b0101 << 8; // N5 switch
const PMUXCON_MSK = 0b1111 << 4;
const PMUXCON_P2 = 0b0010 << 4; // P2 switch
const PMUXCON_P11 = 0b1011 << 4; // P11 switch
const DMUXCON_MSK = 0b1111;
const DMUXCON_D5 = 0b0101; // D5 switch
}
}
bitflags! {
// Waveform Generator Configuration Register
// Address 0x00002014, Reset: 0x00000030, Name: WGCON
pub struct WGCON: u32 {
const reset = 0x00000030;
const DACGAINCAL = 1 << 5;
const DACOFFSETCAL = 1 << 4;
const TYPESEL_DAC = 0b00 << 1; // Direct DAC
const TYPESEL_SIN = 0b10 << 1; // Sinusoidal
const TYPESEL_TRA = 0b11 << 1; // Trapezoidal
const TRAPRSTEN = 1;
}
}
bitflags! {
// ADC Configuration Register,
// Address 0x000021A8, Reset: 0x00000000, Name: ADCCON
pub struct ADCCON: u32 {
const GNPGA_1_5 = 1 << 16;
const MUXSELN_TEMP = 0b01011 << 8;
const MUXSELP_TEMP = 0b01011;
}
}