6 releases

0.2.4 Apr 15, 2023
0.2.3 Mar 3, 2023
0.2.2 Jan 7, 2023
0.2.1 Dec 11, 2022
0.1.0 Dec 6, 2022

#268 in Embedded development

MIT license

215KB
3.5K SLoC

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();

Dependencies

~3MB
~61K SLoC