#battery #ic #bms #no-std

no-std ltc681x

LTC681X电池监控客户端家族

10个版本

0.5.0 2024年2月8日
0.4.2 2022年9月9日
0.3.3 2022年7月1日
0.3.2 2022年6月17日
0.1.0 2022年5月3日

#181 in 嵌入式开发

每月21次下载

MIT/Apache

215KB
4.5K SLoC

LTC681X电池堆栈监控客户端

License License Crates.io Actions Status

LTC681X家族的抽象。支持LTC681X家族的所有设备:LTC6813LTC6812LTC6811LTC6810

目前实现以下功能

示例

有关所有详细信息,请参阅monitor模块。

use ltc681x::example::{ExampleCSPin, ExampleSPIBus};
use ltc681x::ltc6813::{CellSelection, Channel, GPIOSelection, LTC6813};
use ltc681x::monitor::{ADCMode, LTC681X, LTC681XClient, PollClient};

let spi_bus = ExampleSPIBus::default();
let cs_pin = ExampleCSPin{};

// LTC6813 device
let mut client: LTC681X<_, _, _, LTC6813, 1> = LTC681X::ltc6813(spi_bus, cs_pin)
    .enable_sdo_polling();

// Starts conversion for cell group 1
client.start_conv_cells(ADCMode::Normal, CellSelection::Group1, true);

// Poll ADC status
while !client.adc_ready().unwrap() {
    // Conversion is not done yet
}

// Returns the value of cell group A. In case of LTC613: cell 1, 7 and 13
let voltages = client.read_voltages(CellSelection::Group1).unwrap();
assert_eq!(Channel::Cell1, voltages[0][0].channel);
assert_eq!(24979, voltages[0][0].voltage);

状态

⚠️ 该存储库仍然不完整,但正在积极开发中。

⚠️ 该存储库仅针对LTC6813变种进行了测试。尽管LTC681X家族的协议本质上是相同的,但仍可能存在某些变种的差异。因此,欢迎对其他变种进行实际测试和反馈。

开发

任何形式的支持都将非常感激。请随意创建问题和PR。有关更多详细信息,请参阅DEVELOPMENT

许可证

根据以下之一许可

每个贡献者都同意他的贡献涵盖这两个许可证。

依赖项

~3MB
~55K SLoC