内容发布更新时间 : 2024/11/5 13:08:22星期一 下面是文章的全部内容请认真阅读。
SPI接口
STM32F10xxx参考手册
发送方在时钟信号(CK)的下降沿改变数据,接收方在上升沿读取数据。WS信号也在时钟信号的下降沿变化。 图I2S飞利浦协议标准波形(24位帧,CPOL =0) 223
此模式需要对寄存器SPI_DR进行2次读或写操作。 ●在发送模式下:如果需要发送0x8EAA33(24位): 图224 发送0x8EAA33
●在接收模式下:如果接收0x8EAA33: 图225 接收0x8EAA33
图226
I2S飞利浦协议标准波形(16位扩展至32位包帧,CPOL =0)
476/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本
SPI接口 STM32F10xxx参考手册
477/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本
SPI接口
STM32F10xxx参考手册 2
在IS配置阶段,如果选择将16位数据扩展到32位声道帧,只需要访问一次寄存器SPI_DR。用来扩展到32位的低16位被硬件置为0x0000。
如果待传输或者接收的数据是0x76A3(扩展到32位是0x76A30000),需要的操作如下图所示。图227 示例
在发送时需要将MSB写入寄存器SPI_DR;标志位TXE为’1’表示可以写入新的数据,如果允许了相应的中断,则可以产生中断。发送是由硬件完成的,即使还未发送出后16位的0x0000,也会设置TXE并产生相应的中断。
接收时,每次收到高16位半字(MSB)后,标志位RXNE置’1’,如果允许了相应的中断,则可以产生中断。
这样,在2次读和写之间有更多的时间,可以防止下溢或者上溢的情况发生。
MSB对齐标准在此标准下,WS信号和第一个数据位,即最高位(MSB)同时
产生。
图228 MSB对齐16位或32位全精度,CPOL =0
发送方在时钟信号的下降沿改变数据;接收方是在上升沿读取数据。 图229 MSB对齐24位数据,CPOL =0
478/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本
SPI接口
图230 MSB对齐16位数据扩展到32位包帧,CPOL =0
STM32F10xxx参考手册
LSB对齐标准此标准与MSB对齐标准类似(在16位或32位全精
度帧格式下无区别)。 图231 CPOL =0
LSB对齐16位或32位全精度,
图232 LSB对齐24位数据,CPOL =0
●在发送模式下
如果要发送数据0x3478AE,需要通过软件或者DMA对寄存器SPI_DR进行2次写操作。操作流程如下图所示。
479/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本
SPI接口
图233 要求发送0x3478AE的操作
STM32F10xxx参考手册
●在接收模式下
如果要接收数据0x3478AE,需要在2个连续的RXNE事件发生时,分别对寄存器SPI_DR进行1次读操作。
图234 要求接收0x3478AE的操作
图235 LSB对齐16位数据扩展到32位包帧,CPOL =0
在I2S配置阶段,如果选择将16位数据扩展到32声道帧,只需要访问一次寄存器SPI_DR。此时,扩展到32位后的高半字(16位MSB)被硬件置为0x0000。
如果待传输或者接收的数据是0x76A3(扩展到32位是0x000076A3),需要的操作如下图所示。 图236 示例
在发送时,如果TXE为’1’,用户需要写入待发送的数据(即0x76A3)。用来扩展到32位的
0x0000部分由硬件首先发送出去,一旦有效数据开始从SD引脚送出,即发生下一次TXE事件。 在接收时,一旦接收到有效数据(而不是0x0000部分),即发生RXNE事件。 这样,在2次读和写之间有更多的时间,可以防止下溢或者上溢的情况发生。
PCM标准
在PCM标准下,不存在声道选择的信息。PCM标准有2种可用的帧结构,短帧或者长帧,可以通过设置寄存器SPI_I2SCFGR的PCMSYNC位来选择。
480/754
参照2009年12月RM0008ReferenceManual英文第10
版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新
版本