#embedded-hal-driver #instrument #amplifier #texas #i2c #tpa2016 #class-d

无std tpa2016d2

德州仪器TPA2016D2类D放大器的嵌入式-hal驱动程序

3个不稳定版本

0.2.0 2019年5月17日
0.1.1 2019年5月1日
0.1.0 2019年5月1日

#10#texas

每月 26次下载
用于 nucleo-f401re

MIT/Apache

15KB
371

TPA2016D2

TI TPA2016D2立体声类D放大器的嵌入式-hal驱动程序。

注意

示例

#![no_main]
#![no_std]

use cortex_m_rt::entry;
use cortex_m_semihosting::hprintln;
use panic_semihosting as _;

use nucleo_f401re::{i2c::I2c, prelude::*, stm32};
use tpa2016d2::Tpa2016d2;

#[entry]
fn main() -> ! {
    // The Stm32 peripherals
    let device = stm32::Peripherals::take().unwrap();

    let rcc = device.RCC.constrain();
    let clocks = rcc.cfgr.sysclk(84.mhz()).freeze();

    let gpiob = device.GPIOB.split();
    let scl = gpiob
        .pb8
        .into_alternate_af4()
        .internal_pull_up(true)
        .set_open_drain();

    let sda = gpiob
        .pb9
        .into_alternate_af4()
        .internal_pull_up(true)
        .set_open_drain();

    let i2c = I2c::i2c1(device.I2C1, (scl, sda), 200.khz(), clocks);

    let mut tpa = Tpa2016d2::new(i2c);

    // Read all registers
    tpa.sync().unwrap();

    // Get and print  the registers
    for i in 1..=7 {
        let v = tpa.device_reg(i).unwrap();
        hprintln!("{}: {}", i, v).unwrap();
    }

    // Update the gain
    tpa.gain(32).unwrap();

    // Should print 32
    hprintln!("gain: {}", tpa.device_reg(5).unwrap()).unwrap();

    loop {}
}

待办事项

  • Agc预设
  • 功能

依赖项

~71KB