SAI 串行音频接口学习

2023-05-16

SAI 简介


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


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


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


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






FS_A   :通道识别信号,连接I2S的左/右对齐时钟信号(LRC)
SCK_A  :位时钟信号,连接I2S的位时钟信号(BLCK), SCK = FS*slot个数*单个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)























本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAI 串行音频接口学习 的相关文章

  • 49.在ROS中实现local planner(2)- 实现Purepersuit(纯跟踪)算法

    48 在ROS中实现local planner xff08 1 xff09 实现一个可以用的模板实现了一个模板 xff0c 接下来我们将实现一个简单的纯跟踪控制 xff0c 也就是沿着固定的路径运动 xff0c 全局规划已经规划出路径点 x
  • Hadoop学习之web查看HADOOP以及文件的上传和下载

    Hadoop学习之web查看HADOOP 1 web端查看HDFS的NameNode 浏览器输入 xff1a http hadoop1002 9870 查看HDFS上储存的数据信息 2 Web端查看YARN的ResourceManager
  • 【编译原理】实验三 NFA 确定化和 DFA 最小化

    一 实验标题 xff1a NFA确定化和 DFA 最小化 二 实验目的 xff1a 1 学习和掌握将NFA转为 DFA 的 子集构造法 2 学会编程实现等价划分法最小化DFA 三 实验内容 xff1a xff08 一 xff09 NFA确定
  • 【网络协议】openR调研

    OpenR 是 Facebook 内部设计和开发的路由协议 平台 最初于 2016 年发布 xff0c 作为所有运行于 Terragraph 上的硬件的软件基础 xff0c 提供了一个测试更快 更有效的新型路由程序的框架 xff0c 引导数
  • Linux下安装docker详细操作步骤

    Docker的几个核心概念 xff1a Docker主机 xff08 host xff09 安装了docker程序的机器Docker客户端 xff08 client xff09 连接docker主机进行操作Docker仓库 xff08 Re
  • 相对熵 KL散度 (KullbackLeibler divergence)

    这个属于香农信息论中的东西 xff0c 在 PRML 书中1 6 信息论小节中有具体说明 真正碰到应用还是在洛桑联邦理工的POM文章中 xff08 概率占用图 xff09 作者使用自己产生的估计Q来去逼近未知分布P xff0c 其中P是一个
  • Python虚拟环境——virtualenv

    林野哥推荐的虚拟环境 xff0c 这个跟Conda虚拟环境有点像 xff0c 但是和conda最大的区别就是virtualenv会创建一个单独的文件夹存放python环境 xff0c 感觉隔离程度更高 使用方法如下 xff1a 1 安装vi
  • 洛桑联邦理工 TPAMI-2008 MTMC 概率占用图POM建模过程推导 笔记

    一切都要从2019年9月的那个秋天讲起 xff0c 林野哥向我推荐了这篇洛桑联邦理工的2008年TPAMI论文 xff0c 于是一个半月的时间都花在了这上面 Multi Camera People Tracking with a Proba
  • 知识图谱笔记(小象学院课程)

    2018年寒假看小象学院课程的时候写的笔记 xff0c 一共写了10页 xff0c 记得比较乱 因为纸质笔记不容易保存 xff0c 所以把它扫成了PDF以备后用 希望大家能够指出不足和错误
  • 隐马尔可夫模型HHM重要公式推导

    我终于把HMM看完了 xff0c 这些笔记都是看的过程中自己对推导过程写的注释 xff0c 还有知识框架 原来卡尔曼和粒子滤波都是属于HMM模型里面的 笔记结构如下 xff1a 1 HMM简介 xff1a 知识体系 43 一个模型 43 两
  • MOT指标笔记《CLEAR Metrics-MOTA&MOTP》2008年·卡尔斯鲁厄大学

    搞了这么久的MOT xff0c 到头来发现最基本的MOTA和MOTP还没有搞懂 xff0c 实在有点说不过去 今天花了一上午的时间阅读2008年卡尔斯鲁厄大学的 Evaluating Multiple Object Tracking Per
  • 概率图模型-知识结构

    两周多 xff0c 终于把概率图模型这一章看完了 xff0c 由于只是看了知识框架 xff0c 很多具体细节都还不理解 内容真的是好多啊 xff0c 而且都是理论 xff0c 没有实践 希望日后用到的时候能回忆的起来这些内容吧
  • 软件工程概论-课后作业1

    需要网站系统开发需要掌握的技术 1 网页设计 xff1a Photoshop Flash max Dreamweaver 2 网站程序 xff1a Dreamweaver Visual Studio NET 会asp asp net php
  • 《强化学习》——CH2 多臂赌博机 笔记

随机推荐

  • 相机几何学——投影矩阵P的构成(实验报告版)

    最近在可视化WildTrack数据集 xff0c 由于要对棋盘格点进行映射和绘制 xff0c 涉及到了P矩阵的计算 现在对P的来源进行了系统的整理 xff0c 以备后忘 在最后对场地端点映射产生的问题进行了讨论 xff08 事情开始变得有意
  • 约束优化方法_2_——Frank-Wolfe方法

    Frank Wolfe方法属于约束优化中可行方向法的一种 上一篇博文对同类型的Zoutendijk可行性方法进行了介绍 xff0c 这一部分着重关注Frank Wolfe方法 Frank Wolfe方法的基本思想是 xff1a 每次迭代中使
  • 二次规划_1_——Lagrange方法

    二次规化是非线性规化中的一种特殊情形 xff0c 其目标函数是二次实函数 xff0c 约束是线性的 考试中会考到四种方法 xff0c 分别为 xff1a Lagrange方法 起作用集方法 直接消去法和广义消去法 前两种在教材上有详细描述
  • 二次规划_2_——起作用集方法

    这个算法很反人类 xff0c 迭代过程相当复杂 xff0c 最优化老师说 xff1a 明确地告诉你要考的 起作用集方法适用于消元法和Lagrange方法无法处理的不等式约束二次规化问题 其主要思想是 xff1a 以已知点为可行点 xff0c
  • 约束非线性优化:几何意义&对偶形式

    借助老师的PPT对约束非线性优化问题的几何意义 和对偶形式 进行阐述 一 几何意义 xff08 1 xff09 等式约束 考虑只有等式约束h x 的非线性优化问题 xff0c 形式为 xff1a 可视化结果如下图所示 xff0c 红色曲线为
  • 转载篇:优秀博文汇总

    1 Pytorch中堆网络语法 xff1a nn moduleList 和Sequential由来 用法和实例 写网络模型 https blog csdn net e01528 article details 84397174 2 CNN中
  • 批量归一化:Batch Normalization层 原理+Pytorch实现

    一 BN层概念明晰 BN层存在的意义 xff1a 让较深的神经网络的训练变得更加容易 BN层的工作内容 xff1a 利用小批量数据样本的均值和标准差 xff0c 不断调整神经网络中间输出 xff0c 使整个神经网络在各层的中间输出的数值更加
  • 模型量化——基础知识 & LSQ论文阅读

    感谢陈老师给的机会 xff0c 有幸能够参加2020年的DAC比赛 我在其中负责目标检测器的调试和量化 自己第一次接触量化这个任务 xff0c 很多东西都是一点一点学 一 量化基础 对于一个全精度的值 v v v xff0c 若量化步长为
  • python3安装tensorflow遇到的问题

    1 使用命令 xff1a sudo pip3 install upgrade https storage googleapis com tensorflow linux cpu tensorflow 1 1 0rc2 cp35 cp35m
  • argparse模块使用说明

    深度学习的工程中 xff0c py文件中的main函数一开始总会有大量的参数传入 xff0c 而通常使用的方法就是使用argparse通过命令行传入 xff0c 这篇博文旨在记录argparse的常用方法 一 语句简介 1 载入argpar
  • Tensorboard在网络训练中的Logger使用方法

    做为神经网络训练中最常用的可视化工具 xff0c Tensorboard经常在Pytorch和Tensorflow框架中做为可视化工具 但是其使用的确是有点繁琐 xff0c 所以开设了一个这样的专题 xff0c 用于总结见过的工程里面的数据
  • Pytorch训练流程

    调试了很久YOLO的标准Pytorch实现 xff0c 将Train代码进行了重新整理 xff0c 抽出了标准的Pytorch训练框架 现在整理下来 xff0c 以备后用 整理后的代码分为三个大部分 xff0c 每个大部分分为三个小部分 x
  • 初识Vulkan渲染管线

    目前参考 Vulkan规范 和 Vulkan开发实战详解 对渲染管线有了一个初步的认识 现结合中英文的渲染管线图进行笔记整理 中英文的渲染管线图分别如下所示 xff1a 绘制命令送入设备队列执行后 xff0c Vulkan将原始的物体顶点坐
  • Vulkan着色器的GLSL创建、编译、加载、创建流程

    Vulkan没有指定官方的着色器编程语言 xff0c 而是采用SPIR V二进制中间格式进行表示 开发人员一般需要基于某种着色器编程语言开发着色器 xff0c 之后再编译为SPIR V格式 可以选用GLSL着色器编程语言进行开发 大型游戏场
  • 神经网络运算量&参数量估计——FLOPS和FLOPs辨析

    一 概念明晰 首先要明确 运算量 和 参数量 两个概念 xff1a 参数量 xff1a 这个比较好理解 xff0c 例如卷积层中的卷积核c i k k n o xff0c 其参数量就是相乘的结果 而且 xff0c 无论输入图像的尺寸怎么变
  • 机器学习基础——彻底搞懂Precision\Recall\F1\P-R\ROC

    一直以为自己理解这些概念 xff0c 但是其实只是听说过而已 这些概念的释义来自于周志华教授的 机器学习 xff0c 都属于对机器学习算法的性能度量 一 错误率与精度 还是使用书上的定义写的明确 xff0c test set中所有样本预测对
  • [交叉熵损失函数的由来:KL散度] & [softmax+交叉熵损失函数求梯度 推导]

  • SSH基础操作

    这里写自定义目录标题 SSH基础操作SSH免密登录客户端 快捷登录服务器端 sshd配置配置完成后重启服务器端sshd服务 SSH基础操作 span class token function ssh span span class toke
  • Linux下screen的使用

    关掉xshell之后网站也随着关闭 xff0c 我们可以使用screen命令 xff0c 来让保证退出ssh之后程序继续在后台跑 利用SSH远程连接服务器 xff0c 运行程序需要保证在此期间窗口不能关闭并且连接不能断开 xff0c 否则当
  • SAI 串行音频接口学习

    SAI 简介 串行音频接口 xff08 SAI xff09 xff0c SAI具有灵活性高 配置多样的特点 SAI 通过两个完全独立的音频子模块来实现这种灵活性与可配置型 xff0c 每个音频子模块与多达4个引脚 xff08 SD SCK