您的位置 首页 方案

Cortex-M3 (NXP LPC1788)之IIS控制器

I2S总线为数字音频应用提供了一个标准的通信接口。它是一条3线串行总线,包含串行数据SD、字选择WS、串行时钟SCK。LPC1788的I2S接…

I2S总线为数字音频使用供给了一个规范的通讯接口。它是一条3线串行总线,包括串行数据SD、字挑选WS、串行时钟SCK。LPC1788的I2S接口供给了互相独立的发送和接纳通道,每个通道能够作为主机或从机,还供给了可选的过采样主机时钟输出MCLK。因而发送和接纳通道各有四个引脚,关于发送为I2S_TX_CLK、I2S_TX_WS、I2S_TX_SDA、I2S_TX_MCLK。I2S的时序如图1。

图1:I2S时序

从图中能够看出每个串行时钟SCK传送一位音频信号,因而SCK的频率=声道数X采样频率X采样位数。如程序中44.1KHZ采样的16位立体音,对应的SCK频率为2X16X44100HZ。WS是字段挑选,也称为帧时钟,他的一个周期正好传输一帧数据。在WS改动后,数据字在发送时钟的下一个下降沿上开端。即图中MSB位在WS下降沿的下一个SCK时钟呈现。在立体声形式下,当WS为低电平时发送左声道数据,当WS为高电平时发送右声道数据。假如是单声道形式,相同的数据会在WS的凹凸电平各发送一次。因而,要正确的经过I2S总线进行音频信号的传送,要害要正确装备传输速率。关于LCP1778,咱们经过装备数字音频输出寄存器I2SDAO装备音频数据的宽度、声道数、和WS的周期。程序中的音频数据为44.1KHZ采样的16位立体音,因而I2SDAO中的WS_halfperiod字段装备成16-1,由于WS低电平和高电平各发送16位数据。装备SCK要设置2个寄存器,首要装备发送时钟速率寄存器I2STXRATE,经过它装备分数速率发生器以分频CCLK得到I2S TX_REF=CCLKX(X/Y)/2;假如咱们使能了MCLK输出时,RX_REF就发送到MCLK管脚。其次,装备位发送时钟位速率寄存器I2STXBITRATE,该寄存器的值加1用来分频TX_REF得到SCK频率。

对I2S操控器装备完成后,咱们能够酿制发送的音频数据写入发送FIFO,FIFO的巨细为8个字。并且发送和接纳通道仅接纳32位对齐的数据,因而对较短的数据咱们要进行扩展才干写入FIFO进行发送。

关于总线上的状况,将在状况反应寄存器I2SSTATE中进行指示,主要有中止和DMA恳求的指示以及FIFO的当时深度指示。关于中止咱们能够装备中止恳求操控寄存器I2SIRQ设置FIFO触发中止的深度。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/265731.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部