Skip to content

pulse-loop/AFE4404

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AFE4404 Rust driver

crates.io build docs.rs crates.io crates.io

This is a AFE4404 driver for Rust embedded-hal. It allows a high level interaction with the AFE.

Usage

Initialise the AFE:

let mut frontend = AFE4404::with_three_leds(i2c, 0x58u8, Frequency::new::<megahertz>(4.0));

Set the LEDs current:

frontend
    .set_leds_current(&LedCurrentConfiguration::<ThreeLedsMode>::new(
        ElectricCurrent::new::<milliampere>(60.0),
        ElectricCurrent::new::<milliampere>(10.0),
        ElectricCurrent::new::<milliampere>(10.0),
    ))
    .expect("Cannot set leds current");

Set the TIA resistors:

frontend
    .set_tia_resistors(&ResistorConfiguration::<ThreeLedsMode>::new(
        ElectricalResistance::new::<kiloohm>(250.0),
        ElectricalResistance::new::<kiloohm>(100.0),
    ))
    .expect("Cannot set tia resistors");

Set the clock source:

frontend
    .set_clock_source(ClockConfiguration::Internal)
    .expect("Cannot set clock source");

Read the sampled values:

let sample = frontend.read();