8个版本

0.1.7 2021年1月24日
0.1.6 2021年1月7日
0.1.5 2020年12月26日
0.1.4 2020年3月22日
0.1.3 2020年2月8日

1684嵌入式开发相关

每月下载量29

自定义许可

1MB
908

axp173

CI

这是什么?

这是X-Powers电源管理IC AXP173embedded-hal 驱动程序。

它是设备无关的,并使用嵌入式hal的 Write/WriteRead 进行I2C通信。

用法

  1. 将依赖项添加到 Cargo.toml

    cargo add axp173
    
  2. 实例化和初始化设备

    // ... declare and configure your I2c peripheral ...
    
    // Init AXP173 PMIC
    let axp173 = axp173::Axp173::new(i2c);
    axp173.init()?;
    Ok(axp173)
    
  3. 配置PMIC

    // Set charging current to 100mA
    axp173
        .set_charging_current(ChargingCurrent::CURRENT_100MA)?;
    
    // Enable internal ADCs
    // 25Hz sample rate, Disable TS, enable current sensing ADC
    axp173
        .set_adc_settings(
            AdcSettings::default()
                .set_adc_sample_rate(AdcSampleRate::RATE_25HZ)
                .ts_adc(false)
                .set_ts_pin_mode(TsPinMode::SHUT_DOWN)
                .vbus_voltage_adc(true)
                .vbus_current_adc(true)
                .batt_voltage_adc(true)
                .batt_current_adc(true),
        )?;
    
    // Enable battery gas gauge
    axp173.set_coulomb_counter(true)?;
    axp173.resume_coulomb_counter()?;
    
    // Power-off the device after 4 seconds of
    // long press of power button
    axp173.set_shutdown_long_press_time(ShutdownLongPressTime::SEC_4)?;
    
    // Clear pending IRQs and enable some interesting IRQs
    axp173.clear_all_irq()?;
    axp173.set_irq(axp173::Irq::ButtonShortPress, true)?;
    axp173.set_irq(axp173::Irq::BatteryCharged, true)?;
    axp173.set_irq(axp173::Irq::VbusPluggedIn, true)?;
    
  4. 处理PMIC中断

    // Inside an IRQ ISR:
    if axp173.check_irq(Irq::ButtonShortPress)? {
        axp173.clear_irq(Irq::ButtonShortPress)?;
        defmt::info!("Button pressed");
    }
    axp173.clear_all_irq()?; // Clear everything else
    

状态

已完成的测试和未完成的任务

  • 库仑计数器读取
  • 库仑计数器控制
  • 中断
  • 电池电压和电流读取
  • VBUS电压和电流读取
  • AXP173片上缓冲区
    • 读取
    • 检查默认值
    • 写入
  • AXP173 LDO2、LDO3、LDO4启用/禁用
  • LDO电压设置
  • VBUS存在
  • 电池存在
  • 电池充电状态
  • 充电电流设置
  • 充电调节电压设置
  • 内部ADC设置
    • 采样率
    • 启用/禁用各种ADC通道(电池电压、电流等)
  • 按钮设置
  • DC/DC设置
  • 温度传感器读取
  • 瞬时电池功率读取

依赖项