1 个不稳定版本

0.1.0 2023年9月16日

#1567 in 硬件支持

MIT/Apache

27KB
411

TLV320AIC23 编解码器驱动程序

这是德州仪器TLV320AIC23B音频编解码器/放大器的驱动程序。

变更日志

未发布变更

  • 第一个版本

许可

版权所有 © Neotron 开发者,2023

根据您的选择,在以下许可下提供:MITApache-2.0

贡献

除非您明确声明,否则您提交的任何有意包含在作品中的贡献将按照上述许可提供,不附加任何其他条款或条件。


lib.rs:

TLV230AIC23B 驱动程序

这是德州仪器TLV320AIC23B音频编解码器/放大器的驱动程序。

具体来说,此驱动程序用于通过I²C设置TLV230AIC23B的寄存器 - 此驱动程序不处理数字音频接口(I²S或类似)。

TLV230AIC23B具有以下输入和输出

  • 立体声模拟线路输入
  • 单声道模拟麦克风输入,可选+20dB增强
  • 立体声模拟线路输出
  • 立体声模拟放大耳机输出
  • 立体声数字输出
  • 立体声数字输入

Codec对象必须缓存寄存器内容,因为TLV320AIC23B只有写入接口,无法读取任何寄存器内容。

示例

您可能需要按如下方式设置编解码器

let mut codec = tlv320aic23::Codec::new(tlv320aic23::BusAddress::CsLow);
if let Err(e) = codec.reset(&mut i2c) {
    // Codec didn't respond
}
codec.set_digital_interface_enabled(true);
codec.set_dac_selected(true);
codec.set_dac_mute(false);
codec.set_bypass(false);
codec.set_line_input_mute(true, tlv320aic23::Channel::Both);
codec.set_powered_on(tlv320aic23::Subsystem::AnalogDigitalConverter, true);
codec.set_powered_on(tlv320aic23::Subsystem::MicrophoneInput, true);
codec.set_powered_on(tlv320aic23::Subsystem::LineInput, true);
codec.set_headphone_output_volume(50, tlv320aic23::Channel::Both);
codec.set_sample_rate(
    tlv320aic23::CONFIG_USB_44K1,
    tlv320aic23::LrSwap::Disabled,
    tlv320aic23::LrPhase::RightOnHigh,
    tlv320aic23::Mode::Controller,
    tlv320aic23::InputBitLength::B16,
    tlv320aic23::DataFormat::I2s,
);
if let Err(e) = codec.sync(&mut i2c) {
    // Codec didn't respond
}

依赖关系

~230KB