1个不稳定版本
0.1.0 | 2023年5月24日 |
---|
#11 在 #volatile
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-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0) 或 MIT 许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT) 的许可。
除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证的定义,均应按上述方式双许可,不附加任何其他条款或条件。
依赖项
~71KB