4个版本
0.2.2 | 2021年7月29日 |
---|---|
0.2.1 | 2020年6月22日 |
0.2.0 | 2019年3月31日 |
0.1.0 | 2018年11月21日 |
在嵌入式开发中排名2022
每月下载量269次
用于 2 包
57KB
824 行
Rust ADS1x1x超小型、低功耗模拟数字转换器(ADC)驱动程序
这是一个基于embedded-hal
traits的平台无关Rust驱动程序,用于ADS1013、ADS1014、ADS1015、ADS1113、ADS1114和ADS1115超小型、低功耗模拟数字转换器(ADC)。
此驱动程序允许您
- 设置操作模式为单次或连续。见:
into_continuous()
。 - 在单次模式下进行测量。见:
read()
。 - 启动连续转换模式。见:
start()
。 - 读取在连续转换模式下进行的最后测量。见:
read()
。 - 设置数据速率。见:
set_data_rate()
。 - 设置全量程范围(增益放大器)。见
set_full_scale_range()
。 - 读取是否正在进行的测量。见:
is_measurement_in_progress()
。 - 设置ALERT/RDY引脚用作转换就绪引脚。见:
use_alert_rdy_pin_as_ready()
。 - 比较器
- 设置低和高阈值。见:
set_high_threshold_raw()
。 - 设置比较器模式。见:
set_comparator_mode()
。 - 设置比较器极性。参见:
set_comparator_polarity()
。 - 设置比较器保持。参见:
set_comparator_latching()
。 - 设置比较器队列。参见:
set_comparator_queue()
。 - 禁用比较器。参见:
disable_comparator()
。
- 设置低和高阈值。见:
设备
这些设备是精密、低功耗、12/16位模数转换器(ADC),提供超小封装中测量最常见的传感器信号所需的所有功能。根据设备的不同,这些设备集成了可编程增益放大器(PGA)、电压参考、振荡器和高精度温度传感器。
这些设备可以以高达每秒3300个样本(SPS)的数据速率进行转换。PGA提供从±256 mV到±6.144 V的输入范围,允许以高分辨率测量大信号和小信号。输入多路复用器(MUX)允许测量两个差分或四个单端输入。高精度温度传感器可用于系统级温度监控或热电偶的冷端补偿。
这些设备可以在连续转换模式下运行,或者在一个转换后自动关闭的单次模式下运行。单次模式显著降低了空闲期间的电流消耗。数据通过I2C传输。
以下是设备的特性比较
设备 | 分辨率 | 采样率 | 通道 | 多通道 | 特性 |
---|---|---|---|---|---|
ADS1013 | 12位 | 最大3300 SPS | 1 | 不适用 | |
ADS1014 | 12位 | 最大3300 SPS | 1 | 不适用 | 比较器、PGA |
ADS1015 | 12位 | 最大3300 SPS | 4 | 复用 | 比较器、PGA |
ADS1113 | 16位 | 最大860 SPS | 1 | 不适用 | |
ADS1114 | 16位 | 最大860 SPS | 1 | 不适用 | 比较器、PGA |
ADS1115 | 16位 | 最大860 SPS | 4 | 复用 | 比较器、PGA |
数据表
用法
要使用此驱动程序,导入此crate和embedded_hal
实现,然后实例化适当的设备。以下示例将创建ADS1013设备的实例作为示例。其他设备可以通过类似的方法创建,例如:Ads1x1x::new_ads1114(...)
。
请在此存储库中查找使用硬件的更多示例:driver-examples
use embedded_hal::adc::OneShot;
use linux_embedded_hal::I2cdev;
use nb::block;
use ads1x1x::{channel, Ads1x1x, SlaveAddr};
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let address = SlaveAddr::default();
let mut adc = Ads1x1x::new_ads1013(dev, address);
let value = block!(adc.read(&mut channel::DifferentialA0A1)).unwrap();
println!("Measurement: {}", value);
// get I2C device back
let _dev = adc.destroy_ads1013();
}
支持
有关问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可
根据您的要求,许可如下
- Apache许可证版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则您有意提交的任何贡献,根据Apache-2.0许可证的定义,应双重许可,上述许可,不附加任何额外条款或条件。
依赖关系
~71KB