技术文章翻译 “使用DSP构造一台D类功放”

原文链接:“A dsp based class d audio amplifier

介绍

D 类放大器已证明比 A、B 和 AB 类等线性类具有更高的功率效率性能。D类放大器的功率损耗主要是由于输出晶体管的非理想性,作为开关操作,由脉冲宽度调制器控制。

此示例描述了将 TMS320F2808™ 数字信号控制器的增强型脉宽调制器 (ePWM) 和模数转换器 (ADC) 用作 D 类音频放大器的方法。该方法涉及模拟全桥D级功率放大器和模拟低通滤波放大的PWM信号以去除高频分量,只留下音频内容。

硬件和软件要求

此示例最初是使用以下硬件和软件开发的:

  • MatLab R2008a
  • Code Composer Studio (CCS) v3.3
  • eZDSP-F2808 板。

工作原理

该放大器包括三个主要模块(如图 1 所示):

%title插图%num
D 类音频放大器

输入电路:

该模块与音频源连接,衰减其直流分量并将 ADC 的输入电压限制在 0 – 3.3V 范围内。该电路还包含一个 DC-DC 转换器,用于 DSP 输入缓冲器。

%title插图%num
输入电路原理图

数字信号控制器

TMS320F2808 将模拟信号转换为一对 PWM 信号,馈送到输出级(请参阅章节)。它以 100 MHz 运行。ADC 以 97.656.25 Ksps 的速率对输入信号进行采样。ePWM 生成周期为 102.4 μs 且占空比与输入信号电平成比例的 PWM 信号。ePWM 与 D 级输出级和二阶无源 RLC 滤波器相结合,可提供等效的 DAC。

对模拟输入进行采样

模拟信号被转换为 PCM 值,如图所示。转换如表 1 所述执行。ADC 以 97.656 KHz (100 MHz/1024) 的采样率运行。

%title插图%num
模数 (PCM) 转换

表 1:模数转换

Input Voltage (Vin)Digital Value(ADCRESULT)
Vin<0VVin<0V0
0≤Vin<3V0≤Vin<3V4096∗Vin34096∗Vin3 ,
Vin≥3VVin≥3V4095

Pcm → Pwm

PCM 值转换为 PWM,如图 4 所示。选择了 102.4 毫秒(1024 个时钟周期)的周期。PCM 值/全范围的关系被转换为 PWM 的占空比。例如,512 (50 %) 的占空比对应于全范围的 50%。在此示例中,0-4095 范围内的样本值将通过除以 4(右移 2 位)映射到 0-1023 范围内的占空比值 (CMPA),如图 5 所示。

%title插图%num
基于 PWM 的数模转换

基于 PWM 的数模转换

%title插图%num
PCM 到占空比的转换

中断服务程序

上一节中描述的过程在中断服务程序 (ISR) 中执行。ADC 转换由 ePWM 模块在 PWM 周期开始时触发(每 102.4 毫秒)。ADC 在转换结束时产生中断。中断服务程序根据该样本的值更新 PWM 占空比(CMPA 值)。新的占空比将在下一个 PWM 周期开始时加载。该过程在图 6 中进行了描述。

%title插图%num
时序图

输出级:

该模块包含 H 桥和一个低通滤波器,用于去除高频分量,只留下音频内容。该模块使用 PWM 信号发生器和低通滤波器基本上实现了数模转换器,如图所示。此方法在 中进行了描述。

%title插图%num
基于 PWM 的数模转换

D 类放大器的基本配置是半桥(H 桥)配置。两个输出晶体管作为开关工作,由互补的 PWM 信号驱动。其中一个晶体管处于关闭状态(通过它的电流接近于零),而其余一个处于开启状态(其两端的电压接近于零),从而使功耗保持在非常低的水平。

%title插图%num
H桥电源拓扑

全桥 D 类放大器由两个半桥组成,由同步的 PWM 信号驱动,有两条通过负载的交替传导路径,每条都有一对晶体管导通,而另一对则关闭。

%title插图%num
输出级原理图

执行

本节将根据第 1 章的描述来描述构建 Simulink 模型以进行代码生成的过程。

在第一部分中,将创建中断处理框架。第二部分将描述中断服务程序的创建。

打断

  1. 创建新的 Simulink 模型
  2. 从目标支持包 TC2 添加“F2808 eZDSP”块。%title插图%num“F2808 eZDSP”块
  3. 从目标支持包 TC2 的 C2808 DSP 芯片支持组中添加“硬件中断”块。%title插图%num“硬件中断”块中断应在 A 组转换结束时生成(CPU 值 = 1 和 PIE 值 = 1),如图 12 所示。%title插图%num“硬件中断”选择表
  4. 双击 Hardware Interrupt 模块并进行如下配置:%title插图%num硬件中断配置
  5. 从 Simulink 模块集的 Ports and Subsystems 组中添加“Function-Call Subsystem”模块。%title插图%num“函数调用子系统”块
  6. 如图 15 所示连接模块。将模型保存为“eZDSPF2808ClassD”。 您还可以更改颜色,并按此处所示命名块。%title插图%numD类放大器模型

Pcm 到 Pwm 的转换

  1. 双击 Function-Call Subsystem 模块并删除“In1”和 Out1 模块。%title插图%num
  2. 从目标支持包 TC2 的 C2808 DSP 芯片支持组中添加“ADC”块。%title插图%num“ADC”块该模块应配置为使用模块 A 的通道 0,由 ePWMxA 触发,并在转换结束时发布中断,如下所示:%title插图%num %title插图%num“ADC”配置
  3. 添加来自目标支持包 TC2 的 C2808 DSP 芯片支持组的“ePWM”块的两个副本。将它们命名为 ePWM1 和 ePWM2。%title插图%num“ePWM”块块的配置应如下图所示:%title插图%num %title插图%num %title插图%num“ePWM1”块配置%title插图%num %title插图%num %title插图%num“ePWM2”块配置
  4. 从 Simulink 模块集的 Logic and Bit Operations 组中添加“Shift Arithmetic”模块,并将其配置为右移 2 位。%title插图%num“移位算术”块%title插图%num“移位算术”模块配置
  5. 如图 22 所示连接模块。%title插图%numD类放大器模型

运行模型:

  1. 如下图所示连接系统:%title插图%num系统%title插图%num电压供应
  2. 构建并运行模型“CTRL-B”。
  3. 放大器应该开始工作,连接您的音频源并享受音乐。

要尝试的事情

此示例的目的是展示 F2808 模块的使用,它当然不是最好的实现,但它可以作为附加功能和增强功能的基础,例如:

  • 使用过采样
  • 使用高分辨率 PWM
  • 为放大器添加信号处理(滤波、均衡、增益控制)功能

参考

  1. “eZdspTM F2808 技术参考”,Spectrum Digital,2005 年 (外部链接)
  2. David M. Alter,“在 TMS320F280x 上使用 PWM 输出作为数模转换器”,TI 应用报告 SPRAA88,2008 年 9 月 (外部链接)

《技术文章翻译 “使用DSP构造一台D类功放”》有23条评论

  1. popu老窖的新品,主打数字输入,而不是这里的模拟输入。
    我倒是好奇,有哪位大神解释一下,这里是PCM转换成PWM信号,为什么DSD不能直接转换成PWM信号?按说,DSD与PWM更接近啊

发表评论