3个版本 (重大更改)
0.3.0 | 2022年6月13日 |
---|---|
0.2.0 | 2021年9月16日 |
0.1.0 | 2019年2月17日 |
在嵌入式开发中排名2053
每月下载量345
27KB
413 行
Rust MCP49xx和MCP48xx数字到模拟转换器(DAC)驱动程序
这是一个基于embedded-hal
trait的MCP49xx和MCP48xx SPI数字到模拟转换器(DAC)的跨平台Rust驱动程序。
此驱动程序允许您
- 将通道设置为某个值。
- 关闭通道。
- 在命令上使用缓冲。
- 选择增益。
设备
Microchip Technology Inc. 的MCP49xx设备是单/双通道8位、10位和12位缓冲电压输出的数字到模拟转换器(DAC)。这些设备从单个2.7V到5.5V电源运行,具有与SPI兼容的串行外围接口。用户可以通过设置增益选择选项位(增益为1或2)来配置设备的全量程范围为Vref或2*Vref。
用户可以通过设置配置寄存器位来关闭设备。在关闭模式下,大多数内部电路关闭以节省电源,并且输出放大器配置为提供已知的高阻性输出负载(500 kΩ,典型)。
这些设备包括双缓冲寄存器,允许通过LDAC引脚同步更新DAC输出。这些设备还集成了上电复位(POR)电路,以确保可靠的电源启动。
这些设备利用电阻串架构,具有低差分非线性(DNL)误差和快速建立时间的固有优势。这些设备在扩展温度范围(+125°C)内指定。
这些设备为需要校准或补偿信号(如温度、压力和湿度)的消费者和工业应用提供了高精度和低噪声性能。
此驱动程序与以下设备兼容
设备 | 分辨率 | 通道 | 缓冲 |
---|---|---|---|
MCP4801 | 8位 | 1 | 不可用 |
MCP4802 | 8位 | 2 | 不可用 |
MCP4811 | 10位 | 1 | 不可用 |
MCP4812 | 10位 | 2 | 不可用 |
MCP4821 | 12位 | 1 | 不可用 |
MCP4822 | 12位 | 2 | 不可用 |
MCP4901 | 8位 | 1 | 可用 |
MCP4902 | 8位 | 2 | 可用 |
MCP4911 | 10位 | 1 | 可用 |
MCP4912 | 10位 | 2 | 可用 |
MCP4921 | 12位 | 1 | 可用 |
MCP4922 | 12位 | 2 | 可用 |
数据表
用法
要使用此驱动程序,请导入此包和一个 嵌入式HAL
实现,然后创建适当的设备实例。以下示例将创建MCP4921设备的实例作为示例。其他设备可以使用类似的方法创建,例如:Mcp49xx::new_mcp4822(...)
。
请在此存储库中找到使用硬件的更多示例:driver-examples
use linux_embedded_hal::{Pin, Spidev};
use mcp49xx::{Command, Mcp49xx};
fn main() {
let spi = Spidev::open("/dev/spidev0.0").unwrap();
let cs = Pin::new(25);
let mut mcp4921 = Mcp49xx::new_mcp4921(cs);
let cmd = Command::default();
let cmd = cmd.double_gain().value(50);
// enable double gain and set value
mcp4921.send(&mut spi, cmd).unwrap();
// keeps double gain enabled but changes value
mcp4921.send(&mut spi, cmd.value(100)).unwrap();
// Get CS pin back
let _chip_select = mcp4921.destroy();
}
支持
有关问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可
以下任一许可下授权:
- Apache许可证第2版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任您选择。
贡献
除非您明确声明,否则您提交的任何贡献,根据Apache-2.0许可证的定义,将按上述方式双重许可,不附加任何额外条款或条件。
依赖
~71KB