5次发布
0.1.0 |
|
---|---|
0.0.5 | 2024年7月15日 |
0.0.4 | 2022年2月27日 |
0.0.3 | 2021年5月19日 |
0.0.2 | 2021年2月28日 |
#655 in 嵌入式开发
每月26次下载
8KB
102 代码行
dac8564
适用于德州仪器DAC8564的平台无关库。
描述
DAC8564是一款低功耗、电压输出、四通道、16位数字到模拟转换器(DAC)。该设备包括一个2.5V、2ppm/°C的内部参考电压(默认启用),提供2.5V的全量程输出电压范围。内部参考电压初始精度为0.004%,在VREFH/VREFOUT引脚上可以提供高达20mA的电流。该设备单调,提供非常好的线性度,并最小化不希望的码到码瞬态电压(毛刺)。DAC8564使用一个灵活的3线串行接口,时钟速率高达50MHz。该接口与标准SPI™、QSPI™、Microwire™和数字信号处理器(DSP)接口兼容。
功能
- 也支持德州仪器的DAC7565、DAC7564、DAC8164
- 完全无需std支持
- 使用嵌入式-hal (https://docs.rs/embedded-hal/0.2.3/embedded_hal)实现
- 支持阻塞和非阻塞
示例
注意:示例基于stm32h7xx-hal
。
fn main() -> ! {
// SPI interface pins
let sck = sck.into_alternate_af5();
let mosi = mosi.into_alternate_af5();
// Control lines
let ldac = ldac.into_push_pull_output();
let enable = enable.into_push_pull_output();
let nss = nss.into_push_pull_output();
// Initialize SPI
let spi: Spi<SPI2, Enabled> = interface.spi(
(sck, NoMiso, mosi),
spi::MODE_0,
20.mhz(),
prec,
clocks,
);
// Initialize the struct
let mut dac = dac8564::Dac::new(spi, nss, ldac, enable);
// Enable the DAC8564
dac.enable();
// Blocking call. Set value to 1000 on the DAC
dac.write(Channel::A, 1000).unwrap();
}
贡献
我目前在我的任何原型设计中都没有积极使用DAC8564芯片。因此,开发、功能和错误修复可能进展缓慢,但我完全欢迎任何贡献。如果您有任何更改,请创建一个PR 🙏🏼
依赖项
~71KB