音频主机

主机  时间:2021-01-03  阅读:()

1概述本应用笔记介绍了FlexIO外设模块的一种典型用例,该模块最初是在FreescaleKinetisKL43MCU系列(ARMCM0+MCU)中作为I2S音频总线主机推出的.
FlexIO是一个高度可配置的模块,能够模拟多种串行/并行通信协议,包括UART、I2C、SPI、I2S等.
本应用笔记旨在展示FlexIO外设能够生成所有必需的I2S总线信号,也可用于取代传统I2S/SAI外设来传输音频数据流,而不会对功能或CPU资源造成任何明显限制.
为了验证I2S用例,本应用笔记中实现了一个简单的软件驱动程序.
本演示采用Freescale塔式系统.
音频记录存储在MCU的内部Flash存储器中.
音频记录采样率为8.
000kHz,单通道(单声道),采用16位分辨率.
I2S字大小设置为32位.
TWR-AUDIO卡上的SGTL5000音频编解码器IC用于重现音频.
FreescaleSemiconductorDocumentNumber:AN4955应用笔记Rev1,04/2015使用FlexIO模块模拟I2S总线主机作者:MichaelGalda2014–2015FreescaleSemiconductor,Inc.
内容1概述.
12所需硬件.
23I2S总线理论.
24使用FlexIO模拟I2S主机.
35软件描述.
45.
1初始软件设置.
45.
2软件中的I2S总线模拟.
46结语.
57参考资料.
58修订历史记录.
5TWR–音频SGTL5000音频数据TWR–KL43Z48MKL43MCUKL43驱动程序内部Flash存储器中的音频记录音频控制FlexIO模拟I2S缓冲区播放状态机I2S音频总线I2C控制语音输出图1.
塔式系统上的应用实现2所需硬件本文档介绍了基于Freescale塔式系统的应用,但其中的基本概念和思路也可以在定制硬件上轻松重现.

可使用以下塔式系统板构建本应用:TWR-KL43Z48MTWR-AUDIO-SGTL5000TWR-PROTO(带额外的布线连接—请参见表1)TWR-ELEV(主板和辅板)FlexIO模块模拟I2S总线主机产生所有必需的信号:主机时钟(MCLK=12MHz)字选择(WS/FSYNC/LRCLK=8kHz)连续串行时钟(SCK/SCLK=256kHz)串行数据(SD/DOUT)FlexIO输入频率为总线时钟=48.
000MHzKL43MCU可通过I2C总线初始化和控制SGTL5000编解码器的设置.
3I2S总线理论I2S是一种音频总线,使用三线连接来同步串行数据通信.
还可以使用第四根线,用于I2S从机外设的同步主机时钟的MCLK输出.
所需硬件使用FlexIO模块模拟I2S总线主机,Rev1,04/20152FreescaleSemiconductor,Inc.
以小端格式在SD(DOUT)线(MSB优先)上发送数据.
数据长度为16、24或32位.
发送器数据在SCK的上升沿同步,接收器数据在SCK的下降沿同步.
双通道音频信号由在同一根线上传送和多路复用的两个数据字表示,即右通道样本和左通道样本.
FSYNC控制信号决定数据字表示右通道还是左通道.
此信号还指示数据长度(字的开始和结束).
FSYNC可与SCK上升沿或下降沿同步,并先于MSB一个SCK周期,以便有足够时间将数据存储在接收器中.
TIMER_FSYNCKL43MCU(发送器)SGTL5000(接收器)I2S主机I2S从机BCLKFSYNC音频编解码器ICI2C控制TIMER_BCLKSHIFTER_DINDINTIMER_MCLKMCLK12.
0MHzSHIFTER_DOUTDOUTFlexIO模块图2.
主机—从机,带模拟I2S4使用FlexIO模拟I2S主机可使用两个定时器、两个移位器和四个引脚支持I2S主机模式.
一个定时器用于生成位时钟和控制移位器,另一个定时器用于生成帧同步.
FlexIO模块等待第一次写入到发送数据缓冲区,然后才会使能位时钟和FSYNC的产生.
可使用DMA控制器支持数据传送,如果有发送下溢或接收溢出,则移位器错误标志会置位.
此外,一个定时器和一个引脚用于生成MCLK输出.
位时钟频率是FlexIO时钟频率的偶整数商,初始帧同步置位与第一个位时钟边缘同时出现.
定时器使用起始位确保在第一个输出数据之前一个时钟周期生成FSYNC.
由于同步延迟,接收器输入的设置时间为1.
5个FlexIO时钟周期.
因此,最大波特率为FlexIO时钟频率除以4.
音频样本由TWR-AUDIO-SGTL卡上的SGTL5000音频编解码器IC重现.
SGTL5000以I2S从机模式工作.
任何其他I2S音频编解码器IC可用于在定制硬件上重建音频信号.
表1汇总了所需的有线连接,这些连接必须在TWR-PROTO板上单独建立.
必须将用粗体标注的TWR-PROTO信号互相连接.
使用FlexIO模拟I2S主机使用FlexIO模块模拟I2S总线主机,Rev1,04/2015FreescaleSemiconductor,Inc.
3表1.
用于I2S模拟的TWR-PROTO信号连接I2S功能TWR-KL43Z48TWR-AUDIOTWR-PROTO(需连接)I2STx数据PTD0ELEV_I2S0_DOUTA24B46I2SRx数据PTD1ELEV_I2S0_DINA25B48I2S位时钟PTD2ELEV_I2S0_SCLKA23B45I2SFSYNC/WSPTD3ELEV_I2S0_LRCLKA22B44I2S主机时钟PTD4ELEV_I2S0_MCLKA21B595软件描述本软件应用基于KL43外设裸机驱动程序.
注本软件编写为在TWR-TWR-KL43Z48M上工作,无需对MCU塔式卡进行额外的硬件修改.
面向塔式卡设计的一般用例会导致FlexIO时钟精度受限.
在塔式卡上,内核时钟派生自高频IRC48MHz,为系统和FlexIO模块输入48.
0MHz的频率.
考虑到这样的输入频率,很难通过FlexIO模块中提供的整数分频器实现标准音频采样率,如22.
050kHz或44.
100kHz.
为了获得最佳性能和兼容性,MCU时钟可由12.
288MHz、24.
576MHz或49.
152MHz(典型音频应用晶体频率)的外部晶体或振荡器提供.
5.
1初始软件设置在初始化期间,在SIM中使能所有必需的外围模块时钟,且选择48MHzHIRC作为时钟源.
然后将系统:总线:Flash之间的时钟比率设置为1:2:2.
PortD多路复用器切换为支持FlexIO功能.
FLEXIO_I2S_Init函数中将会初始化FlexIO移位器和定时器.
配置值由文件appconfig.
h提供.
这些值指示哪些定时器、移位器和引脚用于模拟I2S.
I2C总线用于对TWR-AUDIO卡上的SGTL5000音频编解码器IC进行初始配置,本应用的演示和测试即使用此卡进行.
音频记录存储在内部Flash存储器中.
开始时,必须使用音频数据初始化空的RAM缓冲区.
此后,将Flash存储器中的数据读取到RAM内的双缓冲区.
在FLexIOIRQ回调函数中将音频样本写入到移位器中.
每当选择空闲(未使用的)RAM缓冲区并提供新的音频样本时,填充的缓冲区将用于移位器输出.
5.
2软件中的I2S总线模拟可通过以下机制模拟I2S总线功能,其确保FlexIO输出平稳连续的音频数据流:1.
SHIFTER0用于采用32位帧的音频数据输出.
第一次移位时加载传送数据.
停止位被禁用.
数据传送由定时器0驱动.
在时钟上升沿通过Pin0移出数据.
2.
SHIFTBUF0:可将传送数据写入SHIFTBUFBBS.
移位器状态标志用于指示何时可以使用中断或DMA请求写入数据.
通过写入SHIFTBUF寄存器代替可支持第一种数据格式的LSB.
软件描述使用FlexIO模块模拟I2S总线主机,Rev1,04/20154FreescaleSemiconductor,Inc.
3.
SHIFTER1可用于音频数据输入.
该移位器配置用于接收,使用定时器0在时钟下降沿通过Pin1输入数据.
SHIFTER1起始/停止位被禁用(未使用).
4.
SHIFTBUF1:可从SHIFTBUFBBS读取接收的数据.
移位器状态标志用于指示何时可以使用中断或DMA请求读取数据.
通过写SHIFTBUF寄存器可支持LSB优先的数据格式.
5.
定时器0配置为使用引脚2输出(BCLK)的双8位计数器,移位器0标志作为反向触发.
PINPOL设置为将输出移位时钟反转.
使能起始位,且在触发高电平使能定时器.
初始时钟状态为1.
定时器0比较(TIMCMP)寄存器配置用于32位传输,波特率等于FlexIO时钟除以4.
设置TIMCMP[15:8]=(位数*2)–1.
设置TIMCMP[7:0]=(波特率分频系数÷2)–1.
6.
定时器1配置为16位计数器,使用反转的引脚3输出(作为FSYNC信号).
在定时器0使能时使能定时器1(并且永不禁用).
7.
定时器2配置为生成用于外部编解码器IC的MCLK(主机时钟)输出.
6结语本应用展示了FreescaleKL43MCU可用的FlexIO外设,以I2S主机传送器的角色模拟I2S音频总线.
音频记录存储在MCU的内部Flash存储器中,并由I2S从设备SGTL5000音频编解码器重现.
本应用使用Freescale塔式系统进行演示.
可使用本文档所述方法成功模拟I2S总线功能.
可从Freescale网站免费下载应用软件例程.
7参考资料1.
Freescale塔式系统模块化开发平台:www.
freescale.
com/tower2.
TWR-KL43Z48M:用于L4KS的TWR板:www.
freescale.
com/webapp/sps/site/prod_summary.
jspcode=TWR-KL43Z48M8修订历史记录本节记录了对本文档进行的改动.
表2.
修订历史记录修订版重要改动0最初公开版本1删除了外部引用结语使用FlexIO模块模拟I2S总线主机,Rev1,04/2015FreescaleSemiconductor,Inc.
5HowtoReachUs:HomePage:freescale.
comWebSupport:freescale.
com/support本文档中的信息仅供系统和软件实施方使用Freescale产品.
本文并未明示或者暗示授予利用本文档信息进行设计或者加工集成电路的版权许可.
Freescale保留对此处任何产品进行更改的权利,恕不另行通知.
Freescale对其产品在任何特定用途方面的适用性不做任何担保、表示或保证,也不承担因为应用程序或者使用产品或电路所产生的任何责任,明确拒绝承担包括但不局限于后果性的或附带性的损害在内的所有责任.

稳爱云(26元),香港云服务器 1核 1G 10M带宽

稳爱云(www.wenaiyun.com)是创建于2021年的国人IDC商家,主要目前要出售香港VPS、香港独立服务器、美国高防VPS、美国CERA VPS 等目前在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。机房采用业内口碑最好香港沙田机房,稳定,好用,数据安全。线路采用三网(电信,联通,移动)回程电信cn2、cn2 gia优质网络,延迟低,速度快。自行封装的...

DiyVM(50元起)老牌商家,香港沙田CN2直连vps/不限流量/五折终身优惠

diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...

618云上Go:腾讯云秒杀云服务器95元/年起,1C2G5M三年仅288元起

进入6月,各大网络平台都开启了618促销,腾讯云目前也正在开展618云上Go活动,上海/北京/广州/成都/香港/新加坡/硅谷等多个地区云服务器及轻量服务器秒杀,最低年付95元起,参与活动的产品还包括短信包、CDN流量包、MySQL数据库、云存储(标准存储)、直播/点播流量包等等,本轮秒杀活动每天5场,一直持续到7月中旬,感兴趣的朋友可以关注本页。活动页面:https://cloud.tencent...

主机为你推荐
国内域名注册国内最好的域名注册服务机构?免费com域名注册有没有完全免费的域名?免费云主机有永久的免费云主机么域名注册查询如何知道域名注册信息?美国vps主机听说美国vps主机性能不错,没用过,想听听各位的意见~免费vps服务器免费服务器有哪些asp虚拟空间asp视频聊天室系统支持虚拟空间网站空间商网站空间商怎么查询asp网站空间什么是ASP空间?深圳网站空间深圳宝安网站设计,深圳网站空间,哪里做的最好???
香港虚拟空间 鲨鱼机 12u机柜尺寸 2017年万圣节 云图标 html空间 域名转接 静态空间 世界测速 流媒体加速 空间登入 丽萨 中国联通宽带测速 双11促销 windowsserver2012r2 傲盾代理 神棍节 极域网 sockscap教程 万网主机代理 更多