AN1422

AN1422
采用 PIC32 的高质量音频应用
作者:
捕获的立体声音频流随后通过串行接口流到编解码器或
DAC 中。由于数字音频源种类繁多,而且并非所有源均
使用相同的采样率,该串行接口通常会调整采样频率以
适应音频源,或将采样数据流转换为常用的数据速率。
因此,音频坞系统或设备附件设计中的一项挑战是以尽
可能低的成本在不降低音质的情况下执行采样率转换。
为了应对这些挑战,设计人员通常使用专用的采样率转
换电路和 / 或集成了复杂锁相环(Phase-Locked Loop,
PLL)的高端音频 DAC,以确保为稳定传输采样音频数
据提供灵活的采样率。
Jayanth Murthy Madapura
Microchip Technology Inc.
在为便携式数字音频设备和其他数字音频源设计音频坞
站及附件时,设计人员虽受到成本的限制,但仍要设法
提供最高质量的音频回放。
在典型的音频坞站和设备附件中,插入相应装置的数
字音频源通过音频坞的数据传输接口 (例如 USB)发
送串行立体声音频数据流。音频坞捕获数据流,同时执
行其他重要任务,并以特定的采样率将数据流发送到音
频编解码器或数模转换器(Digital-to-Analog Converter,
DAC),如图 1 所示。
图 1:
典型音频应用
音频
放大器
数字
音频源
串行输入
连接器
单片机
显示屏,
前面板控制
© 2012 Microchip Technology Inc.
采样率
单片机
(可选)
左耳机/
扬声器
DAC 和
抗混叠
滤波器
音频
放大器
右耳机/
扬声器
DS01422A_CN 第 1 页
AN1422
USB 接口对于传送音频数据很方便。但是,为了满足专
业音频的要求,必须解决由于 USB 时钟与编解码器时
钟不匹配而产生的微小音质损失问题。
本应用笔记将探讨 PIC32 MCU 中可满足这些需求的音
频特定功能。 SPI 模块支持不同的标准音频通信模式,
并 提 供 适 用 于 高 质 量 音 频 应 用 的 较 高 的 位 分 辨 率。
PIC32 MCU 灵活的参考时钟输出功能可用于向模拟前
端提供主时钟,从而生成不同的采样率。该参考时钟输
出还消除了编解码器对外部晶振 / 振荡器的需求。同时
也消除了对编解码器上的 PLL 的需求。参考时钟输出可
以进行调整,以防止缓冲区由于时钟不匹配而出现下溢
和上溢。 PIC32 MCU 还提供具有灵活 PLL 时钟方案的
低功耗 USB 主机和设备模块。
数字音频数据基本原理
将模拟音频转换为离散数字格式后,以模拟信号中最高
频率分量的至少两倍的频率或奈奎斯特 (Nyquist)频
率对模拟信号进行采样。因此,频距为 0 至 20 kHz 的
音频信号可按 44.1 kHz 的数据速率 (在这种情况下为
合适的奈奎斯特频率)进行采样,以便在转换回模拟域
后可以重建信号而不会出现混叠。除采样率外,数据的
位分辨率可以是 16 位或 24 位立体声音频数据。对于光
盘 (CD)质量的音频,标准是 16 位分辨率,采样率为
44.1 kHz。但是,还有性能更高的 CD 音乐选项。其中
一个标准是以 24 位分辨率对数据进行编码,并将采样率
提高到 96 kHz。对于专业音频,以每次采样 24 位的分
辨率对音频文件进行编码,这可以提供动态余量,以便
对声音进行混音和处理。此外,分辨率选项还允许在音
质与文件大小 (甚至使用压缩文件)之间做出权衡。
DS01422A_CN 第 2 页
USB 接口可在同步传输中轻松处理高质量音频流。其提
供高质量音频的能力非常明显,颇受许多音频用户青
睐。由于 USB 接口普遍易于使用,将其用作灵活的音
频接口,可传送高分辨率和高采样率的音频,而抖动可
以忽略。同步数据传输功能是其他诸多用途之一,用来
以恒定速率实时将音频数据传入/传出音频源。
立体声音频数据包的大小取决于音频流的采样率,其作
为USB帧的一部分在USB全速链路上每毫秒传送一次。
和许多控制和处理装置一样,USB 音频装置也提供对音
量、音调、增益控制和均衡器等常见功能的控制。
比特率与采样率之间的差异要求回放系统或音频坞中的
硬件能够处理不同速率的数据流。为此,系统必须使用
可对每个采样率进行锁相并按每个回放选项自行调整的
更复杂的 DAC (成本较高),或配合使用低成本 DAC
和外部采样率转换器 IC,或者采用单片机上运行的算法
将所有数据流转换为简单的低成本 DAC 能够处理的标
准采样率和比特率。 PIC32 MCU 提供灵活的参考时钟
输出和音频模式来满足这些要求,从而在实现高质量音
频的同时保持低设计成本。后面几节将介绍带音频模式
的串行接口和灵活的参考时钟输出模块。
带音频模式的 PIC32 串行外设接口
(SPI)模块
大多数编解码器提供基于 4 线串行接口的串行通信功
能。在 MCU 和编解码器之间通过此串行接口发送和接
收立体声音频采样。典型的串行接口具有以下信号:
• 串行数据输出 (Serial Data Output, SDO),
用于向编解码器发送立体声音频数据
• 串行数据输入 (Serial Data Input, SDI),
用于从编解码器接收立体声音频数据
• 串行位时钟 (SCK/BCLK)是必需的位时钟,
由主器件提供
• 左/右时钟 (LRCK)是主器件为立体声数据提供
的相位时钟
 2012 Microchip Technology Inc.
AN1422
PIC32 器件具有一个带音频模式的 SPI 模块。音频模式
提供多种接口格式、位分辨率和主 / 从配置。支持的通信
模式包括以下几种:
• I2S 格式
在 I2S 模式中,最高有效字节 (Most Significant
Byte,MSB)出现在 LRCK 跳变后的 BCLK 的第二
个上升沿。有关I2S协议的更多信息,请参见Philips
Semiconductors 的 I2S 总线规范
(http://www.classic.nxp.com/acrobat_download2/
various/I2SBUS.pdf)。
图 2:
I2S 格式
1/fs
右通道
左通道
DACLRC/
ADCLRC(LRCK)
BCLK
1 BCLK
DACDAT/
ADCDAT
1
2
1 BCLK
3
n-2 n-1 n
MSB
1
LSB
2
3
n-2 n-1 n
MSB
LSB
• 左对齐格式
在左对齐模式中,MSB 出现在 LRCK 跳变后的 BCLK
的第一个上升沿。
图 3:
左对齐格式
1/fs
右通道
左通道
DACLRC/
ADCLRC(LRCK)
BCLK
DACDAT/
ADCDAT
1
2
3
MSB
© 2012 Microchip Technology Inc.
n-2 n-1 n
LSB
1
MSB
2
3
n-2 n-1 n
LSB
DS01422A_CN 第 3 页
AN1422
• 右对齐格式
在右对齐模式中,最低有效字节(Least Significant
Byte,LSB)出现在 LRCK 跳变前的 BCLK 的上升
沿, MSB 仍然最先发送。
图 4:
右对齐格式
1/fs
右通道
左通道
DACLRC/
ADCLRC(LRCK)
BCLK
DACDAT/
ADCDAT
1
2
3
n-2 n-1 n
MSB
1
LSB
2
MSB
3
n-2 n-1 n
LSB
• DSP/PCM 格式
在 DSP/PCM 模式中,左通道 MSB 出现在 LRC 上
升沿后的 BCLK 的第一个上升沿。右通道数据紧随
左通道数据。根据字长度、 BCLK 频率和采样率,
右通道数据的LSB和下一个采样之间可能有未使用
的 BCLK 周期。
图 5:
DSP/PCM 格式
1/fs
1 BCLK
LRC
BCLK
右通道
左通道
DACDAT/
ADCDAT
1
2
3
n-2 n-1 n
MSB
1
2
3
n-2 n-1 n
LSB
输入字长度(WL)
DS01422A_CN 第 4 页
© 2012 Microchip Technology Inc.
AN1422
PIC32 音频模式支持 16、24 和 32 位立体声音频数据。
还提供了支持接收上溢标志和发送下溢标志的高级错误
处理功能,以及可根据需要禁止这些标志的控制位。此
外,在 PIC32 MCU 作为串行主器件时,由 BCLK 和
LRC生成的时钟将自由运行,这对于在流应用中实现不
间断的音频数据传输至关重要。
置如图 6 所示。在 PIC32 SPI 音频模式从器件配置下,
编解码器为PIC32 MCU提供位时钟(BCLK)和立体声
相位时钟(LRCK)。此配置如图 7 所示。
PIC32 器件还提供一个基于 I2C™ 外设模块的控制接口
通道。该控制接口用于配置编解码器中的控制寄存器,
从而将编解码器配置为特定的工作模式。
音频编解码器和 DAC 允许以下两种配置或其中之一:
主器件或从器件。在 PIC32 SPI 音频模式主器件配置
下,PIC32 MCU 为编解码器提供 BCLK 和 LRCK。此配
图 6:
PIC32 SPI 为主器件、编解码器为从器件时的 PIC32 SPI- 编解码器配置
PIC32
[SPI 主器件]
图 7:
BCLK
BCLK
SSx/LRCK
LRCK
编解码器/DAC/ADC
[从器件]
SDOx
DACDAT
SDIx
ADCDAT
PIC32 SPI 为从器件、编解码器为主器件时的 PIC32 SPI- 编解码器配置
PIC32
[SPI 从器件]
© 2012 Microchip Technology Inc.
BCLK
BCLK
SSx/LRCK
LRCK
编解码器/DAC/ADC
[主器件]
SDOx
DACDAT
SDIx
ADCDAT
DS01422A_CN 第 5 页
AN1422
灵活的参考时钟输出
如果特定器件上允许外设引脚选择 (Peripheral Pin
Select, PPS)功能,则参考时钟可映射到该器件的任
何端口引脚。REFCLKO 可配置为 PIC32 MCU 上的 SPI
模块的源时钟,从而替代外设总线时钟。这可确保 USB
时钟与 SPI 通道时钟同步,最大程度地减少将 USB PLL
时钟选择为 REFCLKO 的源时钟时由于时钟抖动而产生
的影响。立体声字选择信号和位时钟将与参考时钟输出
同步,因为它们均以参考时钟输出作为时钟源。
PIC32 器件具有灵活的参考时钟输出。参考时钟输出模块
(REFCLKO)可用于生成分数时钟,音频编解码器 /DAC
可使用该分数时钟适应各种采样率。这些采样率和相关
主时钟的典型示例如表 1 所示。REFCLKO 模块可用于
生成这些音频特定的主时钟,并且并不仅限于此。
图 8:
显示参考时钟输出信号的 SPI 和编解码器配置
编解码器/DAC/ADC
[主器件]
PIC32
[SPI 从器件]
REFCLKO
表 1:
MCLKIN
BCLK
BCLK
SSx/LRCK
LRCK
SDOx
DACDAT
SDIx
ADCDAT
编解码器 /DAC/ADC 在不同音频采样率下所需的典型主时钟和位时钟
采样率
(kHz)
不同过采样率下的编解码器主时钟 / 时基 (MHz)
fs
128 fs
192 fs
32.0
—
44.1
—
位时钟 (MHz)
256 fs
384 fs
512 fs
768 fs
1152 fs
32 fs
64 fs
—
8.1920
12.2880
16.3840
24.5760
—
11.2896
16.9344
22.5792
33.8688
36.8640
1.024
2.0480
—
1.4112
2.8224
48.0
—
—
12.2880
18.4320
24.5760
36.8640
—
1.536
3.0720
88.2
11.2896
16.9344
22.5792
33.8688
—
—
—
2.8224
5.6448
96.0
12.2880
18.4320
24.5760
36.8640
—
—
—
3.072
6.1440
176.4
22.5792
33.8688
—
—
—
—
—
5.6448
11.2896
192.0
24.5760
36.8640
—
—
—
—
—
6.144
12.2880
DS01422A_CN 第 6 页
© 2012 Microchip Technology Inc.
AN1422
参考时钟输出模块的时钟源有多种选项。可以从 USBPLL、主 PLL、POSC、FRC、SOSC、LPRC、PBCLK 和
SYSCLK 时 钟 中 选 择。根 据 所 选 的 时 钟 源,需要为
REFCLKO 配置小数除数,以根据表 2 中列出的过采样
率生成所需的 MCLK。所需小数除数的整数部分和小数
部 分 分 别 由 REFOCON 寄 存 器 中 的 RODIV 和
REFOTRIM 位决定。图 9 显示了具有参考时钟输出的
PIC32 振荡器模块,并标明了参考时钟输出的不同数据
源以及微调方案的除数。
表 2 给出了 16 位和 24 位分辨率的立体声音频数据在音
频采样率为 32/44.1/48 kHz 时相应的 SPIxBRG 寄存器
值以及所需的 REFCLKO 频率。位时钟 BCLK 可以是
32 fs 或 64 fs。当 PIC32 SPI 为从器件时, BCLK 和
LRCK 由编解码器生成。参考时钟输出可为编解码器
/DAC 提供主时钟。
当 PIC32 SPI 为主器件时, BCLK 和 LRCK 由器件生
成。 REFCLKO 用作 SPI 模块的时钟源时,可通过在
SPI波特率发生器寄存器SPIxBRG中加载适当的值来配
置 BCLK。如果需要, REFCLKO 可为编解码器提供主
时钟输入。
SPIxBRG
位时钟 (MHz)
MCLK 采样率
64 fs
32 fs
64 fs
(MHz) (kHz) 32 fs
(16 位)(24 位)(16 位)(24 位)
表 2:
PIC32 SPI 配置为主器件时的
波特率值
11.2896
44.1
1.4112
2.8224
4
2
12.2880
48
1.536
3.072
4
2
32
1.024
2.048
6
3
32
1.024
2.048
4
2
8.1920
图 9:
显示参考时钟输出的 PIC32 振荡器框图
USB PLL
USB 时钟(48 MHz)
÷N
UFIN
÷2
PLL x24
UFRCEN
UPLLEN
UFIN = 4 MHz
UPLLIDIV<2:0>
参考时钟
REFCLKI
OE
POSC
FRC
LPRC
SOSC
PBCLK
SYSCLK
4 MHz ≤ FIN ≤ 5 MHz
FIN
N
PLL
÷
FPLLIDIV<2:0>
COSC<2:0>
© 2012 Microchip Technology Inc.
÷N
REFCLKO
至 SPI
RODIV<14:0>(表示 N)
ROTRIM<8:0>(表示 M)
XTPLL、HSPLL、
ECPLL、FRCPLL
PLLODIV<2:0>
PLLMULT<2:0>
÷ N.M
ROSEL<3:0>
XTPLL、HSPLL、
ECPLL、FRCPLL
DS01422A_CN 第 7 页
AN1422
我们来看一个生成 REFCLKO 信号的示例。如果所需
MCLK 为 12.288 MHz 并且使用 96 MHz 的 USB-PLL 时
钟作为参考时钟输出的时钟源,则所需除数为 7.8125。
该除数需要编程为半周期 3.90625,即 (7.8125/2)。
RODIV 位的值将配置为 3,ROTRIM 配置为 464/512 =
0.90625。
例 1:
12.288 MHz REFCLKO 的 RODIV 和 ROTRIM 值
时钟源
小数除数
N + (M/512)
MCLK
= 12.288 MHz
时钟源 USB-PLL
= 96 MHz
REFCLKO 除数
= (时钟源 /MCLK)/2
= (96 MHz/12.288 MHz)/2
= 3.90625
= 3(464/512)
RODIV
ROTRIM
DS01422A_CN 第 8 页
(N)
(M)
REFCLKO
=3
= 464
© 2012 Microchip Technology Inc.
AN1422
表 4 提供了先前在表 1 中列出的标准音频 MCLK 所需的
RODIV 和 ROTRIM 值。此处选择的时钟源是 USB-PLL
时钟。但是,也可以选择任何其他时钟源,并采用相似
的方式计算 RODIV 和 ROTRIM 值。
模拟前端,而且不必将外部晶振用作编解码器的时基。
这将节省音频设计的成本,同时提供与昂贵的编解码器
相同或更好的质量。
可以在高精度下对参考时钟输出进行更改。根据生成的
时钟频率,单位分辨率大约在 0.02 至 0.05% 之间。这
样可确保当参考时钟数据输出仅用作 SPI 时钟源而不是
编解码器的主时钟时,采样率偏差远低于编解码器要求
的限制。如果参考时钟输出用作编解码器的主时钟,该
偏差仅受限于编解码器的规范。
表 3:
表 3 列出了由昂贵的编解码器 (具有灵活的内部 PLL)
使用 12 MHz 标准外部晶振生成的音频主时钟,以及使
用参考时钟输出生成的音频主时钟。数据表明 PIC32 参
考时钟输出生成的主时钟非常接近于所需的主时钟。同
时也表明了参考时钟输出生成的主时钟与通过昂贵的编
解码器的内部 PLL 生成的主时钟一样好甚至更好。这将
消除对编解码器上的 PLL 的需求,也无需将 DAC 用作
表 4:
预期的
主时钟
(MHz)
使用编解码器 PLL 和使用 PIC32
器件上参考时钟输出生成的主时钟
的比较
使用外部晶振时
的平均主时钟
(MHz)
使用 REFCLKO
时的平均主时钟
(MHz)
8.192
8.192
8.192
11.2896
11.2889025
11.28893
12.288
12.288
12.288
不同主时钟的除数和微调值
MCLK (MHz)
96 MHz 的
USB-PLL 作为
时钟源时的除数
RODIV
(N)
ROTRIM
(M/512)
测得的 MCLK
(MHz)
偏差(%)
8.1920
5.859375
5
440
8.1920
0
11.2896
4.251701
4
128
11.28893
0.005937
12.2880
3.90625
3
464
12.2880
0
16.3840
2.929688
2
476
16.3840
0
16.9344
2.834467
2
427
16.93728
0.01703
18.4320
2.604167
2
309
18.43661
0.02501
22.5792
2.12585
2
64
22.58824
0.04002
24.5760
1.953125
1
488
24.5760
0
33.8688
1.417234
1
213
33.85124
0.051848
36.8640
1.302083
1
154
36.84558
0.049975
© 2012 Microchip Technology Inc.
DS01422A_CN 第 9 页
AN1422
的质量越好。 THD 指标 (即,总谐波)失真用于度量
由基波频率的谐波引起的谐波失真。THD 指标越低,所产
生信号的质量越好。下面的 SNR 和 THD 数据表明,相对
于非常昂贵的具有内部PLL的编解码器,使用参考时钟输
出作为时基的 AFE 所生成的音频信号的质量要更出色。
表 5、表 6 和表 7 列出了分别使用外部晶振结合编解码
器上的内部 PLL 以及在同一编解码器上使用参考时钟输
出生成的一组 (纯)音调的信号质量指标 (SNR 和
THD)示例。 SNR 指标 (即,信噪比)用于度量产生
的噪声相对于信号的强度。SNR 指标越高,所产生信号
表 5:
使用编解码器 PLL 和 PIC32 参考时钟输出时测得的 THD 和 SNR—— 采样率为 32 kHz,
预期的主时钟为 8.192 MHz
使用外部晶振作为时基
fs = 32 kHz
使用参考时钟输出作为时基
预期频率 (Hz)
平均测得频率
(Hz)
THD (%)
SINAD (dB)
平均测得频率
(Hz)
THD (%)
SINAD (dB)
500
499.9649
0.002
88.62
499.9668
0.00224
88.476
1000
999.9318
0.00224
88.752
999.9342
0.002
88.752
1500
1499.895
0.00208
88.308
1499.901
0.00192
88.308
10000
9999.318
0.002
82.212
9999.335
0.002
82.212
表 6:
使用编解码器 PLL 和 PIC32 参考时钟输出时测得的 THD 和 SNR—— 采样率为 44.1 kHz,
预期的主时钟为 11.2896 MHz
使用外部晶振作为时基
fs = 44.1 kHz
使用参考时钟输出作为时基
预期频率 (Hz)
平均测得频率
(Hz)
THD (%)
SINAD
(dB)
平均测得频率
(Hz)
THD (%)
SINAD (dB)
500
499.9649
0.00208
88.632
499.9668
0.00168
88.62
1000
999.9318
0.00184
88.332
999.9342
0.002
88.548
1500
1499.895
0.00168
88.38
1499.901
0.00176
88.212
10000
9999.318
0.00192
83.148
9999.335
0.00208
82.968
使用编解码器 PLL 和 PIC32 参考时钟输出时测得的 THD 和 SNR—— 采样率为 48 kHz,
预期的主时钟为 12.288 MHz
表 7:
使用外部晶振作为时基
fs = 48 kHz
使用参考时钟输出作为时基
预期频率 (Hz)
平均测得频率
(Hz)
THD (%)
SINAD
(dB)
平均测得频率
(Hz)
THD (%)
SINAD (dB)
500
499.9959
0.002
88.62
499.9965
0.00224
88.476
1000
999.9938
0.00224
88.368
999.9932
0.002
88.752
1500
1499.989
0.00208
88.332
1499.997
0.00192
88.308
10000
9999.915
0.002
82.164
9999.934
0.002
82.212
DS01422A_CN 第 10 页
© 2012 Microchip Technology Inc.
AN1422
调整参考时钟输出
参考时钟输出能够进行实时调整,也可以按照指定范围
内的步长进行调整。该范围应确保采样率的摆动范围
(通常在 ±0.2% 左右)远低于可能产生多余声音的范
围。例如,对于采样率为 48 kHz 的数据流的 ±0.2% 摆
动范围,需要在 12,263,424 Hz 至 12,312,576 Hz 的范
围内调整参考时钟输出。
表 8:
LRCK
(Hz)
表 8 列出了在 ±200 Hz 采样率范围内进行调整所需的
RODIV 和 ROTRIM 值。所需主时钟一列表明,采样率
的调整范围在 47.9 kHz 至 48.1 kHz, ROTRIM 的调整
范围在 459 至 468,所需的 RODIV 为 3。对于其他标
准音频采样率,可以确定相似的 RODIV 和 ROTRIM 调
整范围,以调整参考时钟输出。
REFCLKO 的调整功能可防止缓冲区下溢和上溢,并减
少可听见的咔嗒声,如 “USB 时钟不匹配”所述。
针对 48 kHz 音频流通过 RODIV 和 ROTRIM 值调整 REFCLKO 的示例
MCLK
(Hz)
除数
RODIV
ROTRIM
LRCK
(Hz)
MCLK
(Hz)
除数
RODIV
ROTRIM
47800
12236800 3.922594
3
472
48010
12290560 3.905436
3
463
47810
12239360 3.921774
3
471
48020
12293120 3.904623
3
463
47820
12241920 3.920954
3
471
48030
12295680
3.90381
3
462
47830
12244480 3.920134
3
471
48040
12298240 3.902998
3
462
47840
12247040 3.919314
3
470
48050
12300800 3.902185
3
461
47850
12249600 3.918495
3
470
48060
12303360 3.901373
3
461
47860
12252160 3.917677
3
469
48070
12305920 3.900562
3
461
47870
12254720 3.916858
3
469
48080
12308480
3.89975
3
460
47880
12257280 3.91604
3
469
48090
12311040 3.898939
3
460
47890
12259840 3.915222
3
468
48100
12313600 3.898129
3
459
47900
12262400 3.914405
3
468
48110
12316160 3.897319
3
459
47910
12264960 3.913588
3
467
48120
12318720 3.896509
3
459
47920
12267520 3.912771
3
467
48130
12321280 3.895699
3
458
47930
12270080 3.911955
3
466
48140
12323840
3.89489
3
458
47940
12272640 3.911139
3
466
48150
12326400 3.894081
3
457
47950
12275200 3.910323
3
466
48160
12328960 3.893272
3
457
47960
12277760 3.909508
3
465
48170
12331520 3.892464
3
456
47970
12280320 3.908693
3
465
48180
12334080 3.891656
3
456
47980
12282880 3.907878
3
464
48190
12336640 3.890849
3
456
47990
12285440 3.907064
3
464
48200
12339200 3.890041
3
455
48000
12288000 3.90625
3
464
图注: 阴影单元格表示采样率调整范围值。
© 2012 Microchip Technology Inc.
DS01422A_CN 第 11 页
AN1422
USB 时钟不匹配
针对会造成音频质量降低的音频数据下溢或上溢问题,
一个简单的解决方案是使用良好的异步采样率转换器
(Asynchronous Sample Rate Converter,ASRC),其
中的输入采样率按抖动衰减进行估算,内部滤波器可针
对新的采样率进行动态调整。但是,好的 ASRC 非常昂
贵,而且系统仍需要 DAC 以进行模拟转换。
USB 规范要求对 USB 时钟频率做出容差预算和限制,
作为实现抗无线干扰的方法。如果 USB 时钟不匹配,具
有允许容差预算的 USB 时钟会导致音质降低。
实时流音频采样必须以精确的固定时间间隔到达,以便
DAC 可按配置的预期恒定速率将数字采样转换为模拟
信号。预期并接收特定采样率音频采样的 DAC 时钟甚
至不能丢失一个采样。缺少采样表现为收听者听到微小
的咔嗒声,原因是 DAC 未能生成流音频信号的准确表
示。在具有嵌入式 USB 模块的单片机或微处理器上,
USB 时钟源自独立的时钟,如采用外部晶振 (具有特
定值)的片上 PLL。由于时钟不是源自 USB 接口,时
钟不匹配会引起缓冲区上溢或下溢,而导致咔嗒声,如
图 10 所示。
图 10:
一个有效的低成本解决方案是缓冲 USB 音频包,并可
调整编解码器或 DAC 的时钟,以通过反馈机制防止数
据下溢或上溢。反馈机制会监视缓冲区占用水平,并确
保其保持在可接受的范围内,同时使音质与采用昂贵的
ASRC 时相同。
将 USB-PLL 时钟作为时钟源的参考时钟输出可用于生
成和调整所需主时钟,如“调整参考时钟输出”中所述。
此功能可防止缓冲区下溢和上溢,同时保持摆动范围为
0.2% 的可接受 DAC 采样率。与其他两种解决方案相比,
这是成本最低但仍可实现高质量音频的解决方案。
表现为可听见的微小咔嗒声的时钟抖动 DAC 下溢或上溢
MCU
数字音频源
模拟音频
信号
I2S
USB 接口
USB
SPI
DAC
数据抖动
PLL
可听见的
咔嗒声
时钟
DS01422A_CN 第 12 页
时钟
© 2012 Microchip Technology Inc.
AN1422
PIC32 USB 数字音频配件板和应用演示
结论
作为示例,本应用笔记中介绍的所有功能都在适用于
PIC32 USB 数字音频配件板的 PIC32 USB 耳麦应用项
目中实现。有关该配件板和演示应用的更多信息,请访问
www.microchip.com/pic32tools,然后单击 “PIC32 USB
数字音频配件板”链接。
PIC32 器件中带音频模式的 SPI 模块和 USB On-The-Go
(OTG)模块可用于高质量音频应用。
利用 PIC32 32 位 MCU 功能的多样性和灵活性,可提供
专业的音质解决方案,同时保持低成本和低功耗。
PIC32 器件中支持高质量音频的主要特性包括:
• 具有 I2S 和其他数据格式模式的 SPI 模块
• 处理 16 和 24 位立体声音频数据流的能力
• 灵活的参考时钟输出,可用于生成标准音频主时钟
并可实时进行调整
• 由于 USB 时钟不匹配而导致的音质损失通过调整
采样率加以解决
• USB OTG 模块具有传输数字音频的能力
© 2012 Microchip Technology Inc.
DS01422A_CN 第 13 页
AN1422
附录 A:
源代码
软件许可协议
Microchip Technology Incorporated(以下简称“本公司”)在此提供的软件旨在向本公司客户提供专门用于本公司生产的产品的软件。
本软件为本公司和 / 或其供应商所有,并受到适用的版权法保护。版权所有。使用时违反前述约束的用户可能会依法受到刑事制裁,
并可能由于违背本许可的条款和条件而承担民事责任。
本软件是按 “现状”提供的。不附有任何形式的保证,无论是明示的、暗示的或法定的,包括 (但不限于)有关适销性和特定用途
的暗示保证。对于在任何情况下,因任何原因造成的特殊的、偶然的或间接的损害,本公司概不负责。
本应用笔记中提及的所有软件都以单个 WinZip 归档文
件的形式提供。可从 Microchip 公司网站下载此文件:
www.microchip.com
DS01422A_CN 第 14 页
© 2012 Microchip Technology Inc.
请注意以下有关 Microchip 器件代码保护功能的要点:
•
Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
•
Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
•
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
•
Microchip 愿与那些注重代码完整性的客户合作。
•
Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 dsPIC、
KEELOQ、 KEELOQ 徽标、 MPLAB、 PIC、 PICmicro、
PICSTART、 PIC32 徽标、 rfPIC 和 UNI/O 均为 Microchip
Technology Inc. 在美国和其他国家或地区的注册商标。
FilterLab、 Hampshire、 HI-TECH C、 Linear Active
Thermistor、MXDEV、MXLAB、SEEVAL 和 The Embedded
Control Solutions Company 均为 Microchip Technology Inc.
在美国的注册商标。
Analog-for-the-Digital Age、 Application Maestro、 chipKIT、
chipKIT 徽标、 CodeGuard、 dsPICDEM、 dsPICDEM.net、
dsPICworks、 dsSPEAK、 ECAN、 ECONOMONITOR、
FanSense、 HI-TIDE、 In-Circuit Serial Programming、
ICSP、 Mindi、 MiWi、 MPASM、 MPLAB Certified 徽标、
MPLIB、MPLINK、mTouch、Omniscient Code Generation、
PICC、 PICC-18、 PICDEM、 PICDEM.net、 PICkit、
PICtail、 REAL ICE、 rfLAB、 Select Mode、 Total
Endurance、 TSHARC、 UniWinDriver、 WiperLock 和
ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地
区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2012, Microchip Technology Inc. 版权所有。
ISBN:978-1-62076-333-9
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
© 2012 Microchip Technology Inc.
Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州
Gresham 的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
印度的设计中心均通过了 ISO/TS-16949:2009 认证。 Microchip 的
PIC® MCU 与 dsPIC® DSC、KEELOQ® 跳码器件、串行 EEPROM、单片
机外设、非易失性存储器和模拟产品严格遵守公司的质量体系流程。
此外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了
ISO 9001:2000 认证。
DS01422A_CN 第 15 页
全球销售及服务网点
美洲
亚太地区
亚太地区
欧洲
公司总部 Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 1-480-792-7200
Fax: 1-480-792-7277
技术支持:
http://www.microchip.com/
support
网址:www.microchip.com
亚太总部 Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel: 852-2401-1200
Fax: 852-2401-3431
台湾地区 - 高雄
Tel: 886-7-536-4818
Fax: 886-7-330-9305
奥地利 Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
台湾地区 - 台北
Tel: 886-2-2500-6610
Fax: 886-2-2508-0102
丹麦 Denmark-Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
台湾地区 - 新竹
Tel: 886-3-5778-366
Fax: 886-3-5770-955
法国 France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
澳大利亚 Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
德国 Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
印度 India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
意大利 Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
印度 India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
荷兰 Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
印度 India - Pune
Tel: 91-20-2566-1512
Fax: 91-20-2566-1513
日本 Japan - Osaka
Tel: 81-66-152-7160
西班牙 Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
亚特兰大 Atlanta
Duluth, GA
Tel: 1-678-957-9614
Fax:1-678-957-1455
波士顿 Boston
Westborough, MA
Tel: 1-774-760-0087
Fax: 1-774-760-0088
芝加哥 Chicago
Itasca, IL
Tel: 1-630-285-0071
Fax: 1-630-285-0075
克里夫兰 Cleveland
Independence, OH
Tel: 1-216-447-0464
Fax: 1-216-447-0643
达拉斯 Dallas
Addison, TX
Tel: 1-972-818-7423
Fax: 1-972-818-2924
底特律 Detroit
Farmington Hills, MI
Tel: 1-248-538-2250
Fax: 1-248-538-2260
印第安纳波利斯
Indianapolis
Noblesville, IN
Tel: 1-317-773-8323
Fax: 1-317-773-5453
洛杉矶 Los Angeles
Mission Viejo, CA
Tel: 1-949-462-9523
Fax: 1-949-462-9608
圣克拉拉 Santa Clara
Santa Clara, CA
Tel: 1-408-961-6444
Fax: 1-408-961-6445
加拿大多伦多 Toronto
Mississauga, Ontario,
Canada
Tel: 1-905-673-0699
Fax: 1-905-673-6509
中国 - 北京
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104
中国 - 成都
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
中国 - 重庆
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
中国 - 杭州
Tel: 86-571-2819-3187
Fax: 86-571-2819-3189
中国 - 香港特别行政区
Tel: 852-2401-1200
Fax: 852-2401-3431
中国 - 南京
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
中国 - 青岛
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
中国 - 上海
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
中国 - 沈阳
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
中国 - 深圳
Tel: 86-755-8203-2660
Fax: 86-755-8203-1760
中国 - 武汉
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
中国 - 西安
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
中国 - 厦门
Tel: 86-592-238-8138
Fax: 86-592-238-8130
中国 - 珠海
Tel: 86-756-321-0040
Fax: 86-756-321-0049
Fax: 81-66-152-9310
英国 UK - Wokingham
Tel: 44-118-921-5869
Fax: 44-118-921-5820
日本 Japan - Yokohama
Tel: 81-45-471- 6166
Fax: 81-45-471-6122
韩国 Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
韩国 Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 或
82-2-558-5934
马 来 西 亚 Malaysia - Kuala
Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
马来西亚 Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
菲律宾 Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
新加坡 Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
泰国 Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
11/29/11
DS01422A_CN 第 16 页
© 2012 Microchip Technology Inc.