音频主机

主机  时间: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对其产品在任何特定用途方面的适用性不做任何担保、表示或保证,也不承担因为应用程序或者使用产品或电路所产生的任何责任,明确拒绝承担包括但不局限于后果性的或附带性的损害在内的所有责任.

hostkvm:7折优惠-香港VPS韩国VPS,8折优惠-日本软银、美国CN2 GIA、新加坡直连VPS

hostkvm本月对香港国际线路的VPS、韩国CN2+bgp线路的VPS正在做7折终身优惠,对日本软银线路、美国CN2 GIA线路、新加坡直连线路的VPS进行8折终身优惠促销。所有VPS从4G内存开始支持Windows系统,当然主流Linux发行版是绝对不会缺席的!官方网站:https://hostkvm.com香港国际线路、韩国,7折优惠码:2021summer日本、美国、新加坡,8折优惠码:2...

特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

Budgetvm12核心 16G 500 GB SSD 或者 2 TB SATA 10GB  20 TB  99美金

Budgetvm(原EZ机房),2005年成立的美国老品牌机房,主打美国4个机房(洛杉矶、芝加哥、达拉斯、迈阿密)和日本东京机房的独立服务器和VPS业务,而且不限制流量,默认提供免费的1800G DDoS防御服务,支持IPv6和IPMI,多种免费中文操作系统可供选择,独立服务器主打大硬盘,多硬盘,大内存,用户可以在后台自行安装系统等管理操作!内存可定制升级到1536G,多块硬盘随时加,14TBSA...

主机为你推荐
域名注册公司找家正规的中文域名注册公司国外虚拟空间哪里买的100m海外虚拟空间便宜稳定?ip代理地址ip代理有什么用?有图片..域名购买域名购买的流程是什么?海外域名我想了解一下“国内域名”,“国外域名”以及“海外服务器”这三个方面的一些知识免备案虚拟空间免备案的虚拟主机空间,买了以后会强制备案不?php虚拟空间php虚拟主机空间如何连接mysql网站空间购买购买网站空间需要注意什么免费网站空间申请需要一个免费的网站空间申请地址。网站空间免备案哪里能找到免费、免备案的空间?
naning9韩国官网 google电话 免备案cdn 轻量 php免费空间 一元域名 租空间 150邮箱 hkg 网站卫士 福建铁通 hkt 上海电信测速网站 我的世界服务器ip 美国盐湖城 免费asp空间申请 iki 免费个人主页 测速电信 广东主机托管 更多