I2S操作模式-docker部署python爬虫项目的方法步骤

reality45165 3 0 pdf 2024-07-21 23:07:12

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中。

更多详细信息请参考 I2S音频接口标准STM32F2技术培训_数字音频接口_I2S

20.7 I2S操作模式

I2S接口的时钟源和WS是可配置的。除了主机和从机模式(可独立配置用于发送器和接收器)以外,还可以选择不同的时钟源,包括在发送器和接收器之间共用时钟和/或WS。时钟源和WS有多种配置,但是不是每种都有用。接下来会给出一些表和图,它们将对有用的配置进行详细描述。

如果您想了解更多关于异步FIFO跨时钟域处理,请访问 异步fifo跨时钟域处理 以及 基于多时钟域的异步FIFO设计。这些资源将帮助您更好地理解I2S接口的复杂操作模式和数据处理机制。

用户评论
请输入评论内容
评分:
暂无评论