#dac #embedded-hal #driver #8564

无需std dac8564

适用于德州仪器DAC8564的一个简单、平台无关的库

5次发布

0.1.0 2021年2月27日
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次下载

MIT许可协议

8KB
102 代码行

dac8564

适用于德州仪器DAC8564的平台无关库。

dac8564

描述

DAC8564是一款低功耗、电压输出、四通道、16位数字到模拟转换器(DAC)。该设备包括一个2.5V、2ppm/°C的内部参考电压(默认启用),提供2.5V的全量程输出电压范围。内部参考电压初始精度为0.004%,在VREFH/VREFOUT引脚上可以提供高达20mA的电流。该设备单调,提供非常好的线性度,并最小化不希望的码到码瞬态电压(毛刺)。DAC8564使用一个灵活的3线串行接口,时钟速率高达50MHz。该接口与标准SPI™、QSPI™、Microwire™和数字信号处理器(DSP)接口兼容。

功能

示例

注意:示例基于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