技术文章翻译 “使用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 月 (外部链接)
订阅
提醒
23 评论
Oldest
Newest Most Voted
内联反馈
查看所有评论
192kbps

拓品那个新功放不会还是D类吧?

192kbps

我以为你预热呢。

t x

HiFi商家们喜欢欺负消费者读书少

MoHa1s Mo

好的 今天我发现的 以为是什么新技术

threeleaves 2

看到做纯数字功放的不多啊,感觉大部分是车载用的

(不知道这么描述是否贴切)

最后于 6 月 之前 被 threeleaves 2编辑
走壬页

??asr上面排前面的不全都是D类吗?难道我理解错了??

★碧湖浩泉★

前十名中就第一名不是。

ال اله 吴

坐等吃瓜……

吃瓜.jpg
C S

瓜雨欲来风满楼

FE PT

据我猜测,是老窖的东西?

Χ Ξ Σ

这是哪家倒霉蛋子要被挂城门了(期待

🇰 🇮 🇵 🇦

教授不愧是老谜语人。

不过大体可以猜到,一定是谁家用这老技术,吹什么世界最新独门秘籍了。

threeleaves 2

不会是popu老窖吧不会吧不会吧(

wang xinjian

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

wang xinjian

老窖的纯数字功放不支持DSD直接放大(在USB模块上用AKM4137转成了PCM,再进DSP)。是因为那样无法调节音量,还是因为DSD信号和PCM转成的PWM区别很大、不能共用一个放大电路?我推测应该是前一个原因

最后于 5 月 之前 被 书声编辑
Music i

狼叔多发点这个,给我这种电路萌新科普科普🥵🥵🥵🥵🥵🥵🥵

araraki ۞

比起pwm很想做个dsp pdm解码,技术资料都查好了一直拖延症

23
0
喜欢这篇文章吗?请发表评论!x