- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2S本应用笔记只讨论时序如图所示。I2SInter-ICSound总线规范)模式。I2SInter
1 简介
本应用笔记是针对新用户的快速指南,旨在说明如何将
Kinetis上的 I2S模块用作 Inter-IC音频总线。
另外,还将讨论基于 DMA和中断的乒乓缓冲区方案,该
方案旨在降低用于处理音频数据流的 CPU开销。最后将
举例说明如何在每个通道上播放频率不同的两个正弦波,
以供大家参考。
2 概述
Kinetis上的 I2S模块有下列五种基本工作模式:
? 常规模式
? 网络模式
? 门控时钟模式
? I2S模式
? AC97模式
本应用笔记只讨论 I2S(Inter-IC Sound总线规范)模式。
I2S时序如图 1 所示。
Freescale Semiconductor Document Number: AN4520
应用笔记 Rev 0, 5/2012
I2S(Inter-IC Sound总线)在 Kinetis
上的应用
面向 K60的 I2S驱动器
作者: Guo Jia
Automotive and Industrial Solutions Group
? 2012 Freescale Semiconductor, Inc.
Freescale Confidential Proprietary
内容
1 简介 1
2 概述 1
3 I2S模块配置 3
3.1 选择时钟源 3
3.2 根据应用要求设置时钟 3
3.3 I2S的 FIFO特性 4
4 DMA和中断配置5
5 正弦波播放示例 7
5.1 正弦波生成 7
5.2 I2S初始化 7
5.3 DMA初始化 9
5.4 中断服务例程 9
6 结语 10
串行时钟
帧同步
串行数据
字(n-1)
右通道
字(n)
左通道
字(n-1)
右通道
最高有效位 最低有效位 最高有效位
图 1. I2S协议时序
从应用角度来看,由于采样率一般在 8 KHz至 48 KHz之间,因此,如果 CPU需要直接处理每个中断,则系统效率
将非常低。另一方面,多数音频算法会处理数据块,即系统会累积音频流中的数据采样以形成缓冲数据块。随后这
些数据块会作为输入或输出供音频算法处理。请参见图 2 。
算法
流程
缓冲区 DMA I2S
R_TX1
L_TX1
L_TX0
R_TX0
DMA
通道0
I2S TX0
I2S TX1
I2S总线
外部
编解码器
多
路
复
用
器
图 2. 基于 DMA和中断的乒乓缓冲区设计
注
在缓冲区名称中:
? R/L表示右通道/左通道
? TX表示发送
? 0/1表示乒乓缓冲区变址
共有四个缓冲区数据块,建议使所有数据块处于连续的物理空间中以便实现。
I2S接口中有两个通道——左通道和右通道。每个通道都具有作为乒乓缓冲区的两个数据块。DMA处理其中一个数
据块时,CPU处理另一个数据块。当前数据块处理完成时,DMA和 CPU将交换刚处理过的缓冲区。在图 2 中,四
个数据块分成标为红色和黑色的两组。DMA使用红色数据块时,CPU使用黑色数据块。类似地,如果 DMA使用黑
色数据块,则 CPU使用红色数据块。
系统运行时,DMA传送数据。根据应用要求,假设 N为某个缓冲区数据块中的采样数。传送了 N个采样后,DMA
将向 CPU生成一个中断。
由于所有这些传送都是同步进行的,或者在某个中断期间发生,因此,可以操作两个数据块。在该中断中,CPU必
须完成下列任务:
1. 执行音频解码算法以获得输出数据。
2. 将输出数据填入传送数据块。依据当前乒乓缓冲区变址的不同,可能是 BLOCK0 + BLOCK1,也可能是
BLOCK1 + BLOCK3。
概述
I2S(Inter-IC Sound总线)在 Kinetis上的应用, Rev 0, 5/2012
2 Freescale Semiconductor, Inc.
Freescale Confidential Proprietary
注
由于音频信号具有较强的实时性要求,因此,所有计算都必须在下个中断发生之前
完成,否则会导致系统故障。
I2S模块配置
3.1 选择时钟源
为使用 I2S模块,首先需为该模块配置时钟。如果 I2S充当主机,则该模块的时钟源必须通过设置 SIM_SOPT2寄存
器中的 I2SSRC字段(或 SOPT2[I2SSRC])来决定。可能的选项包括:
? 内核/系统时钟除以 I2S小数时钟分频器
? MCGPLLCLK/MCGFLLCLK时钟除以 I2S小数时钟分频器
? OSCERCLK时钟
? 外部旁路时钟(I2S_CLK_IN)
用户可根据需要从上述列表中选择一项。
3.2 根据应用要求设置时钟
假设将内核/系统时钟用作 I2S模块时钟源,则可通过下列公式计算 I2S模块的时钟:
注
在上面给出的公式中,I2SFRAC和 I2SDIV在寄存器 S
文档评论(0)