SAI 简介

串行音频接口(SAI),SAI具有灵活性高、配置多样的特点。

SAI 通过两个完全独立的音频子模块来实现这种灵活性与可配置型,
每个音频子模块与多达4个引脚(SD、SCK、FS和MCLK)相连。

如果将两个字模块声明为同步模块,则其中一些引脚可以共用,从而可释放
一些引脚用作通用I/O。

音频子模块既可以作为接收器,又可作为发送器;既可与另一个模块同步,又可以不同步。

FS_A :通道识别信号,连接I2S的左/右对齐时钟信号(LRC)
SCK_A :位时钟信号,连接I2S的位时钟信号(BLCK), SCK = FSslot个数单个slot大小
SD_A :数据输入/输出脚,
MCLK_A :主时钟信号,连接I2S的MCLK脚,固定输出频率为256*fs,fs即音频信号采样频率(fs)。

FS_B
SCK_B
SD_B
MCLK_B

SAI slot简介
slot是SAI音频帧中的基本元素,音频帧中slot的数目通过SAI_xSLOTR寄存器配置,每个音频帧
的slot数,最大是16。在I2S模式下,SAI中slot的传输方式

每个slot可以传输一个声道的 音频数据,这样,6个slot就可以传输6个声道的音频数据。一般
音频文件都是立体声,所以只需要2个slot即可,每个半帧一个slot。

STM32的SAI最多可以实现16声道数据传输(16个slot)。

每个slot的大小是可以配置的。

Each audio block in the SAI has its own FIFO

FIFO depth is 8 words

CPU or DMA access to the FIFOs

Data is right-aligned into the FIFO.

FIFO FLUSH bit to reinitialized the FIFO pointers
FIFO FLUSH位用于重新初始化FIFO指针

Each access in read from the FIFO will return a word (32-
bit) equivalent to one data
从FIFO读取的每个访问都会返回一个字(32位字)
位)相当于一个数据

Each write into the DR will correspond to the FIFO to one
data.
每次写入DR都会将FIFO对应一个
数据。

Programmable FIFO threshold to manage data transfert:
– FIFO FULL, ¾ FIFO, ½ FIFO, ¼ FIFO, FIFO EMPTY
可编程FIFO阈值管理数据传输:

  • FIFO满,¾FIFO,½FIFO,¼FIFO,FIFO空

The clock generators are used only in MASTER mode.

Slave mode:
FS transitions are automatically monitored in order to detect a wrong
placement of the start of frame by generating either an anticipated or late
frame synchronization detection.
自动监视FS转换以检测错误
通过生成预期或迟到来放置帧的开始
帧同步检测。

The maximum number of slots per audio frame is fixed to 16
Configured through bits “NBSLOT[3:0] in the SAI_xSLOTR register +1”.

Each slot can be defined as an active slot, or not
– By setting bit SLOTEN[15:0] in the SAI_xSLOTR register.

The size of the slots is selected by setting bit SLOTSZ in the
SAI_xSLOTR register
插槽的大小通过设置位SLOTSZ来选择
SAI_xSLOTR寄存器

It is possible to define the data position into the slot (FBOFF)
可以将数据位置定义到插槽(FBOFF)

SAI 串行音频接口学习相关推荐

  1. SWD是一种串行调试接口

    1.SWD是一种串行调试接口,与JTAG相比,SWD只要两根线,分别为:SWCLK和SWDIO.减少了对单片机GPIO口的占用,SWD方式可以在线调试的. SWDIO–串行数据线,用于数据的读出和写入 ...

  2. SSI(串行同步接口)协议如何工作

    SSI(串行同步接口)是连接绝对位置传感器和控制器的广泛应用的串行接口.SSI利用控制器发出一个时钟脉冲序列,初始化传感器的门限输出. 传感器不断更新位置数据,并传送到移位寄存器中.在每一个时钟脉冲序 ...

  3. SPI串行外围设备接口

    一.要知道SPI总线是什么,首先要知道具体的通信时序是怎样的? 串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口. ...

  4. 嵌入式硬件协议: SPI串行外设接口 Serial Peripheral Interface

    简介 SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是 一种高速全双工的通信总线.它被广泛地使用在ADC.LCD 等设备与M ...

  5. 谈谈SPI (Serial Peripheral Interface,串行外设接口)

    今天我们来一起聊聊谈谈SPI (Serial Peripheral Interface,串行外设接口): 什么是SPI SPI (Serial Peripheral Interface,串行外设接口) ...

  6. 微雪树莓派PICO笔记——7. SPI(串行外设接口)

    文章目录 SPI简介 硬件连接 通讯协议详解 RP2040 SPI 主要参数 RP2040 SPI 逻辑框图 machine.SPI类函数详解 例程地址 代码示例 代码实现 SPI简介 SPI全称为串 ...

  7. 串行 RapidIO接口介绍

    串行 RapidIO: 高性能嵌入式互连技术 作者: 德州仪器技术应用工程师 冯华亮/ Brighton Feng/ bf@ti.com 摘要 串行RapidIO针对高性能嵌入式系统芯片间和板间互连而 ...

  8. 串行数字接口(SDI)

    BT.656-2中建议,采用smpte 259M中定义的新型串行数字接口,在传送BT.601 422的视频信号时,时钟速率为270Mbit/s,比特深度为10bit,这就是普遍使用的数字视频的串行数字 ...

  9. DSP SPI串行外设接口

    1.SPI介绍 1.1 SPI简介 SPI的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器 ...

  10. 同步和串行的区别_谈谈SPI (Serial Peripheral Interface,串行外设接口)

    什么是SPI SPI (Serial Peripheral Interface,串行外设接口)是Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线: 它以主从方式 ...

最新文章

  1. 链表倒置 (不额外开辟另一块空间)
  2. 姍姍遲來的iPhone文檔處理功能
  3. javaconfig配置mysql_spring cloud config使用mysql存储配置文件
  4. sandy引擎学习笔记: 创建一个立方体
  5. 查找字段 如何 过滤
  6. sperling指标 matlab,sperling指标计算实验报告
  7. java重写的代码_java tostring方法重写代码示例
  8. php 常用正则表达式汇总
  9. 百家cms v4.1.4漏洞
  10. 记录一道有意思的题目:ArrayList的add(int index, E e)时间复杂度小于O(n)吗?
  11. [无忧网络验证]代理使用教程
  12. iexplore出错
  13. 如何提升公众号的阅读量?提高公众号阅读量的方法介绍
  14. 数据结构实验-稀疏一元多项式计算
  15. JavaScript+Regex 身份证号码的正则表达式及验证详解
  16. 【K哥爬虫普法】蓄意突破反爬虫技术,爬取牌照信息
  17. 百度离线地图开发教程?
  18. Linux/Android——input_handler之evdev (四)
  19. MATLAB-一维插值运算
  20. 一个屌丝程序员的青春(十三)

热门文章

  1. java读取properties配置文件路径
  2. Java常用算法手册-01算法概述
  3. U盘刻录方式安装CentOS 7
  4. java 生成pdf 分页_java根据模板动态生成PDF实例
  5. 康托尔、哥德尔、图灵——永恒的金色对角线(转)
  6. 16进制储存的农历信息的正确打开方式
  7. Could not find artifact com.oracle:ojdbc7:pom:12.1.0.2 in central (https://r......的解决方案
  8. 【十次方】Springboot中使用Redis做缓存
  9. 详解如何设计一套健康体检信息管理系统
  10. SHELL脚本学习指南--学习心得20110924