#dac #i2c #microchip #driver #volatile #memory #mcp4726

no-std mcp47x6

Microchip MCP4725 DAC的驱动程序

1个不稳定版本

0.1.0 2023年5月24日

#11#volatile

MIT/Apache

24KB
533

与 embedded-hal 兼容的 MCP47x6 DAC 驱动程序

mcp47x6 仅支持7位地址,且地址必须以 0b1100 开头。每种芯片有8个版本,地址的最后3位不同。let mut dac = MCP4726::new(i2c, 0b_110_0010);

芯片具有非易失性内存,用于存储配置。在加电时,该内存将复制易失性配置寄存器。

所有内存都通过 read 方法读取,该方法返回 DacStatus 结构。请阅读 DacStatus 文档或代码以获取可用字段。let status = dac.read().unwrap(); let non_volatile_output = status.nv_output(); let volatile_output = status.output();

有几个命令可以更改配置寄存器。请阅读 MCP4726 文档或实现以查看所有命令。最简单的一个是 dac.set_volatile_fast(PowerState::On, 0x_fff);

数据手册: https://ww1.microchip.com/downloads/en/DeviceDoc/22272C.pdf

我还没有机会测试设备的8位和10位变体,数据手册中存在多个错误。如果您能确认某些功能确实可以工作或存在问题,请与我联系。

根据您的选择,受 Apache License 2.0、(LICENSE-APACHEhttp://www.apache.org/licenses/LICENSE-2.0) 或 MIT 许可 (LICENSE-MIThttp://opensource.org/licenses/MIT) 的许可。

除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证的定义,均应按上述方式双许可,不附加任何其他条款或条件。

依赖项

~71KB