I2S操作模式-docker部署python爬虫项目的方法步骤
20.6 I2S的发送和接收接口
I2S接口可发送和接收8、16或32位立体声道或单声道音频信息。I2S接口传输数据时的细节如下:
-
当FIFO为空时,发送通道将重复发送相同的数据直至有新数据写入FIFO;静音时,发送0;当禁能单声道时,连续的2个数据字分别是左声道和右声道的数据;数据字长度由配置寄存器中字宽度的值决定。接收通道和发送通道有单独的字宽度值;
-
0:认为字含有4个8位的数据字;
-
1:认为字含有2个16位的数据字;
-
3:认为字含有1个32位的数据字。
当发送FIFO数据不足时,发送通道将重复发送后一个数据直至有新数据可用。这种情况会在微处理器或DMA不能尽快提供新数据时出现。由于在新数据中存在这种延时,因此需要填充间隙(延时),可通过连续发送后的采样来实现填充。数据不能屏蔽,因为这将会在声音上产生明显而不合乎需要的效果。
发送通道和接收通道只处理32位对齐的字,较长的数据块必须要进行截取/较短的数据必须扩展为32位长才能发送和接收。在切换数据宽度或模式时,I2S必须通过控制寄存器中的复位位进行复位来确保正确的同步操作。建议同时置位停止位直至有足够的数据被写入发送FIFO。注意停止时数据输出被屏蔽。所有访问FIFO的数据为32位。图20.14所示为可能的数据序列。
一个FIFO数据采样包含:
-
1个8或16位立体声道模式的32位数据;
-
1个32位数据,单声道模式;
-
2个32位数据,第一个为左声道数据、第二个为右声道数据,32位立体声道模式。
数据在WS下降沿后从发送FIFO中读出,在WS上升沿后被传输到发送时钟域。在WS的下一个下降沿,左声道数据将被载入移位寄存器并发送,在WS的下一个上升沿,右声道数据被载入并发送。接收通道将在WS改变后开始接收数据。字选择(WS)变低时,期望接收数据为左声道数据,WS为高时,期望接收数据为右声道数据。当位计数器已到达字宽度设置的极限时停止接收数据。在WS的下一次改变时,接收的数据将保存到相应的保存寄存器中。当接受完所有数据时,它将被写入接收FIFO中。
20.7 I2S操作模式
I2S接口的时钟源和WS是可配置的。除了主机和从机模式(可独立配置用于发送器和接收器)以外,还以选择不同的时钟源,包括在发送器和接收器之间共用时钟和/或WS。时钟源和WS有多种配置,但是不是每种都有用。接下来会给出一些表和图,它们将对有用的配置进行详细描述。
想了解I2S音频接口的更多标准信息?可以参考这里!如果你对数字音频接口如I2S、PDM、PCM的细节感兴趣,可以点击此链接。用于音频数据传输的常见IC间数字接口也提供了更多技术细节。如果需要深入研究I2S音频中文标准,请访问这个页面。对于那些热衷于音频总线技术的朋友们,音频总线I2S BUS会是一个很好的资源。
您还可以查看基于I2S音频接口模块的FPGA设计与应用来了解更多关于FPGA设计的信息。如果需要配置I2S总线时钟生成设备和McBSP口WCLK,点击这里。I2S音频总线学习笔记也是一个很好的学习资源。
探索这些资源吧,它们会让你对I2S接口有更深入的理解和掌握!