码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 音频——I2S TDM 模式(六)


    • I2S 基本概念
    • 飞利浦(I2S)标准模式
    • 左(MSB)对齐标准模式
    • 右(LSB)对齐标准模式
    • DSP 模式
    • TDM 模式

      文章目录

      • TDM format
        • TDM format A
          • AP TX 配置
          • AP RX 配置
          • 效果
        • TDM format B
          • AP TX
          • AP TX
        • TDM format C
          • AP TX 配置
          • AP RX 配置
        • 总结

    TDM format

    TDM 一般有三种常用操作模式:TDM A mode ,TDM B mode 和 TDM C mode, 统称为TDM mode。

    基于 TDM mode,可以配置支持 TDM(Time Division Multiplexing)数据传输。可以支持传输多个声道的数据,允许多个设备同时使用总线。由于没有统一的标准,不同厂商在 TDM 实现的时序上略有差异。

    • 在 TDM 模式中 LRCLK 的高低不再代表不同通道的数据,它是一个比特宽的脉冲,标志着一帧的开始
    • TDM 只有⼀个起始信号,并且对数据进行对齐,使左通道数据紧跟着右通道数据。为剩余的位进行零填充
    • 数据和帧时钟可以配置为在 BCLK 的上升沿或下降沿有效

    TDM 和 I2S 的区别于数据相对于帧时钟(FSYNC/WS)的位置、时钟的极性和帧的长度。其实,I2S 上传输的也是 TDM 类型的数据,因此可以说 I2S 是 TDM 的特例。

    相比于 I2S ,TDM 应用更加灵活。通过时分复用(TDM, Time Division Multiplexing)方式,TDM 支持同时传输多达 N 个(N>8)声道的数据,减少了管脚数目

    TDM 不像 I2S 有统一的标准,不同的 IC 厂商在应用 TDM 时可能略有差异,这些差异表现在时钟的极性、声道配置的触发条件和对闲置声道的处理等

    TDM format A

    • TDM A:FSYNC 有效后,数据在 BCLK 的第 2 个上升沿有效(one bit clock delay)
      在这里插入图片描述

    AP TX 配置

    在这里插入图片描述

    AP RX 配置

    在这里插入图片描述

    效果

    在这里插入图片描述

    TDM format B

    • TDM B: FSYNC 有效后,数据在 BCLK 的第 1 个上升沿有效(no delay)
      在这里插入图片描述

    AP TX

    在这里插入图片描述

    AP TX

    在这里插入图片描述

    在DSP B 模式内,数据延迟一个bit clock 周期有效就是 DSP A 模式。可见 A 是 B 的特例。

    TDM format C

    AP TX 配置

    待补充。。。
    在这里插入图片描述

    AP RX 配置

    在这里插入图片描述
    在这里插入图片描述

    总结

    不同厂商对 A/B/C 定义可能有所差别,TDM 帧同步模式大致可以分为两种

    • 长帧模式 - long frame sync
      • FSYNC 脉冲宽度等于 1 个 slot 的长度,slot 在 TDM 中表示的是传输单个声道所占用的位数。注意,slot 的位数并不一定等于音频的量化深度。比如 slot 可能为 32 bit,其中包括 24 bit 有效数据位(Audio Word) + 8 bit 零填充(Zero Padding)

    在这里插入图片描述

    • 短帧模式 - short frame sync
      • FSYNC 脉冲宽度等于 1 个 BCLK 周期长度
        在这里插入图片描述
  • 相关阅读:
    【C++基础】13. 结构体
    TeeChart .NET 4.2023.10.25 Crack
    【2022杭电多校3】2022“杭电杯”中国大学生算法设计超级联赛(3)
    【位运算】leetcode 190. 颠倒二进制位
    动手写prometheus的exporter-01-Gauge(仪表盘)
    寒气逼人的 2023 届秋招
    Vue框架学习大纲
    互联网进入存量博弈时代,小程序技术创造移动应用新机遇
    Maven多模块版本统一管理
    如何从主机环境演变到云原生开发模式?
  • 原文地址:https://blog.csdn.net/tyustli/article/details/132638537
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号