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
这是什么?
这是X-Powers电源管理IC AXP173 的embedded-hal 驱动程序。
它是设备无关的,并使用嵌入式hal的 Write
/WriteRead
进行I2C通信。
用法
-
将依赖项添加到
Cargo.toml
cargo add axp173
-
实例化和初始化设备
// ... declare and configure your I2c peripheral ... // Init AXP173 PMIC let axp173 = axp173::Axp173::new(i2c); axp173.init()?; Ok(axp173)
-
配置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)?;
-
处理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设置
- 温度传感器读取
- 瞬时电池功率读取