pdm 协议

PDM接口只有两根信号线:
PDM_CLK 时钟信号。
PDM_DATA 数据信号。

I2S协议

数据发送规格
I2S在BCLK的下降沿发送数据(发送),在上升沿进行数据采样(接收)。每次是先发送最高位,最后发送最低位。MSB在WS变化的下一个时钟周期有效。因此,最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。也就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位(常补足为零)。
I2S发送数据:发送是在每个时钟周期的下降沿发送数据,这样在WS沿变化开始后的第二个下降沿发送数据的最高位。接着在每个下降沿依次发送数据,直到发送完最低位。
I2S接收数据:在每个时钟周期的上升沿接收数据,在WS沿变化开始后的第二个上升沿接收数据的最高位。接着在每个位时钟上升沿依次接收数据,直到接收完最低位。
比如如下的一个ws高电平内,在每个clock上升沿采集数据,可以读到ws为高时data电平为10010100 11011001 01010011 01010100
对应data数据为0x94 D9 53 54

![在这里插入图片描述](https://img-blog.csdnimg.cn/5a01cd6b01e2451d99b4825b797af533.png

驱动配置

  1. pdm data输出接 I2S data数据输入线,pdm clk由I2S clk提供,所用规格需clk在1M-3.5M之间,故设定clk=1.024M.
  2. 配置I2S clk时钟树(配置I2S 时钟控制寄存器)查看时钟树方法,cat /sys/kernel/debug/clk/clk_summary
  3. 使能I2S clk时钟;
  4. 配置I2S 接受寄存器的采样深度为32bits
  5. 配置和I2S关联的dma

pdm data 转 pcm data

采用抽取滤波器将pdm 的频谱数据转为pcm的模拟数据

sample

(待写。。。)

硅麦驱动开发及调试(pdm>>I2S>>pcm)相关推荐

  1. 驱动开发 - WDK 调试及 SVN 环境搭建[转]

    由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...

  2. 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植

    驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...

  3. ADI最新基带处理芯片 ADRV9026 FPGA 驱动开发及调试记录分享

    最近要驱动ADRV9026,ADRV9026为9009下一代,支持4收4发,但是高速JESD接口还是4X,同时支持JESD204B及204C协议,相对之前的9009官方会提供一个相对完整的工程,ADR ...

  4. linux设备驱动之PCIE驱动开发

    PCIE(PCI Express)是INTEL提出的新一代的总线接口,目前普及的PCIE 3.0的传输速率为8GT/s,下一代PCIE 4.0将翻番为16GT/S,因为传输速率快广泛应用于数据中心.云 ...

  5. 图漾科技招聘|机器视觉算法、嵌入式驱动开发高级工程师等岗位

    嵌入式驱动开发高级工程师 工作地点:上海 薪资:20-40K 岗位职责: 1. 负责嵌入式系统(usb\ethernet\spi\Camera sensor等)驱动开发和调试: 2. 负责评估核心系统 ...

  6. WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建

    为什么80%的码农都做不了架构师?>>>    一.准备工作 1 系统环境:Win10系统 2 开发工具:VS2015 3 驱动开发工具:WDK10 4 Windows SDK:SD ...

  7. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  8. Linux驱动开发(外传)---驱动开发调试方法

    前文回顾 <Linux驱动开发(一)-环境搭建与hello world> <Linux驱动开发(二)-驱动与设备的分离设计> <Linux驱动开发(三)-设备树> ...

  9. Android GPS中间层驱动开发调试

    ~.Android GPS中间层驱动开发调试小结  // rkeclair_v1.02_sdkdemo , ublox芯片       调通GPS功能,用串口可打印出位置数据,并可在gpslogger ...

最新文章

  1. -bash: git: command not found
  2. php采集百度推荐词,php抓取百度快照、百度收录、百度热词程序代码_PHP教程
  3. Appium对app的基本操作
  4. 注意Hibernate4在开发当中的一些改变
  5. 升序排列python_Python3基础 sort 将一个列表中的值升序排列
  6. 2021HDU多校10 - 7084 Pty loves string(KMPnext树+主席树+dfs序)
  7. 电机驱动板连线_伺服驱动器的工作原理和内部结构是什么?
  8. Java clone() 浅克隆与深度克隆(转)
  9. 母子盗打电话竟为获取游戏Q币
  10. 二分查找离左边元素最近的(可以等于)
  11. 对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器
  12. ORA-00911:无效字符 错误及解决
  13. Html TextArea 长度限制
  14. 2016计算机知识点,2016年计算机一级考试知识点
  15. keepalived原理和安装
  16. java操作mysql数据库实例_jdbc操作mysql数据库实例
  17. 解决方案】VMware无法从主机向虚拟机跨系统复制粘贴拖动文件/文本
  18. db9针232接口波特率标准_RS-232串口使用的DB9螺钉,螺纹规格是什么?
  19. Second copy 的增量备份
  20. 十进制转换为其他进制(c语言)

热门文章

  1. 电子商务系统的运维与评价(十三)
  2. 使用SharePoint中的Move To功能将一个文档转移到其他位置
  3. python3 爬虫日记(三) 爬取堆糖动态加载网页
  4. 掌握真正科学的学习方法——学会如何学习(Learning How to Learn)课程笔记
  5. Python关键字大全
  6. 【Windows + Linux】专业级:安装操作系统 + 多系统 + GhostCast Server PXE 网刻基础坑精通详解
  7. 分析器错误 在分析向此请求提供服务所需资源时出错 请检查下列特定分析错误详细信息并适当地修改源文件未能加载类型XXXX
  8. “五年饮冰,难凉热血”,一名专科生的求学历程
  9. [深度学习] OpenVINO开发:Win 10 安装及卸载
  10. Ubuntu20.4下打开WPS提示缺失字体“Symbol、Wingdings、Wingdings 2...“的解决办法