IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> I2S协议和hisi3520/3521音频调试TLV320AIC3101IRHBR(一) -> 正文阅读

[嵌入式]I2S协议和hisi3520/3521音频调试TLV320AIC3101IRHBR(一)

一、I2S引脚介绍
I2S是全双工,即同时接收和发送。重要有三个时钟信号(主时钟MCLK,帧同步时钟左右切换时钟WS,数据时钟BCLK),和一个数据接收SD_RX,一个数据发SD_TX送。可设置主从模式,主控是主模式的话,由主控参数所有用到的时钟,ad芯片即是从模式。主控是从模式的话,由ad芯片外接27mhz晶振,产生时钟。接收和发送可以共用时钟,如果只接一个ad芯片。数据精度可用16/32/24位来表示。
MCLK = 256 * WS
BCLK = WS * 左右通道数 * 位宽 如; 2 * 16 * WS
WS = 1 / 采样频率

在这里插入图片描述
单通道,左右声道,示意图,16/24/位数据
在这里插入图片描述
hisi的多通道示意图,可以接多路输入,ktv可以多个话筒一个意思。不是左右声道的意思,不要搞混了。
在这里插入图片描述
声音是模拟信号,通过ad芯片,对输入的模拟量进行数字化,根据设置的采样频率,抽样采集电压信号,转化为数字信号,最终保存文件,编码,然后解码,由数字信号,转化还原模拟信号,由喇叭播放声音
在这里插入图片描述

一、hisi的音频采集播放原理图
ad就是音频芯片,i2s与hisi主控连接,hisi的采集和输出为ai和ao设备,通过内部的dma,将数据进行保存,不需我们关心。
在这里插入图片描述

二、hisi的I2S文档介绍
在介绍之前,先介绍hisi文档关于音频的说明,多媒体开发文档
在这里插入图片描述
在这里插入图片描述

2、编解码处理器指南介绍
在这里插入图片描述
根据文档,对讲只用一个ad芯片时的引脚设计。ad芯片作为主模式可以外接晶振,供芯片输出时钟,我选择ad芯片作为从模式,hisi就是主模式,提供时钟给ad芯片,输入和输出共用时钟。如下图,WS_TX,BCLK_TX,MCLK是时钟,SD_TX,SD_RX是数据
在这里插入图片描述
三、hisi的I2S引脚和tl芯片引脚介绍**
I2S有四个比较重要的脚
如下原理图,我接的音频芯片是TL3101,主控是海思的3520/3521DV400,hisi的主控,有两个输入,两个输出,文档说明,规定两组混合使用,我使用的是I2S2和I2S1。
I2S2作为发送,提供主时钟MCLK,同步时钟,BCLK,WS,和输出SD_TX。I2S1仅提供接收SD_RX,同步时钟和I2S2共用。和一组I2C用于控制芯片,设置参数。

hisi主控引脚图,注意i2s1的ws,原理图是没用到的。
在这里插入图片描述
音频芯片是TL3101,引脚图如下。
在这里插入图片描述
咪头,是标准的3mm接口,插入耳机,连线如下图。
在这里插入图片描述
在这里插入图片描述

四、驱动调试
1、准备ko驱动文件,根据hisi文档,demo使用的是tl3101芯片,接的也是这款芯片,所以不要从新写驱动,如果其他芯片,就要自己写驱动,调试内核,对于没搞过驱动开发的同志,这是困难,老衲懂驱动和系统,所以简单,直接用hisi的sdk下ko下tl3101下的ko文件,在启动时加在,插断题外话,ko,可以在内核启动时加载,可以在根文件系统挂载后,脚本命令加载或收到加载。
在这里插入图片描述
根据驱动源码,芯片默认是从模式,48k采样率,16位,i2s,这个很重要,下面设置时钟时,就知道设置多少,刚开时调试,就按默认设置
在这里插入图片描述

1、根据多媒体文档调试指南。
在这里插入图片描述
*i2s的时序图如下,WS,是左右声道切换时钟,fs就是采样率,1/fs就是ws但我时钟,bclk就是数据时钟,sd的时钟,bclk = fs * 位宽*通道数,我们是左右声道,选择16位的位宽,所以是 fs * 2 16。那主时钟mclk 就是256 * fs。
在这里插入图片描述

2、根据原理图,先将hisi的引脚,复用为I2S,和i2c。找到hisi的文档Hi3520DV400_PINOUT_CN.xlsx在这里插入图片描述

3、将I2S和I2C_管脚复用,
在load自启动脚本加如下命令。

himm 0x120F00AC 0x2;   #GPIO9_3  I2S1_BCLK_RX  I2S2_MCLK	
himm 0x120F00B8 0x1;   #GPIO9_6  I2S2_BCLK_RX
himm 0x120F00BC 0x1;   #GPIO9_7  I2S2_WS_RX
himm 0x120F00C0 0x1;   #GPIO5_4  I2S2_SD_RX
himm 0x120F00B4 0x1;   #GPIO9_5  I2S1_SD_RX

himm 0x120F00E0 0x1;   #GPIO12_6  I2C_SDA
himm 0x120F00E4 0x1;   #GPIO12_7  I2C_SCL

4、加载驱动,
上面的管脚设置好后,加载ko文件,把hisi默认加载nv6134屏蔽掉,加载音频ko要放在hisi系统system驱动后,否则打开ai,ao失败。

insert_audio()
{
	insmod tlv_320aic31.ko
	insmod hi3521d_aio.ko
	insmod hi3521d_ai.ko
	insmod hi3521d_ao.ko
	insmod hi3521d_aenc.ko
	insmod hi3521d_adec.ko
}

remove_audio()
{	
	rmmod hi3521d_adec
	rmmod hi3521d_aenc
	rmmod hi3521d_ao
	rmmod hi3521d_ai
	rmmod hi3521d_aio
	rmmod tlv_320aic31
}

启动系统后,启动时会看到ai,ao,之类的,tl32031驱动加载成功的信息,看看是否有这个设备,ls /dev 可以看到有tlv320aic31这个设备,没有的话,就是驱动未加载成功,i2c有问题或,编译的ko有问题,看调试打印是什么情况,确定是否i2c没有通,还是ko的问题,和i2s没关,这一步,还没到i2s。

4、时钟设置

//rg8
himm 0x13140140 0x003254E7;  #I2S2MCLK 12.288MHZ 
himm 0x13140144 0x00000133;  #I2S2CLK 12.288/4MHZ

//rg1
himm 0x13140108 0x003254E7;  #I2S1MCLK 12.288MHZ
himm 0x1314010C 0x00000133;  #I2S1CLK 12.288/4MHZ

在这里插入图片描述

****设置时钟,这里去设置时钟,tl芯片驱动源码,默认是48khz采样率,所以主时钟mclk是256* bck(48k)= 12MHZ,上图hisi文档介绍了,48k采样率时,输出主时钟是12.288mhz。

这里根据实际操作感觉不需,hisi加载ai,ao,驱动时,自动设置了时钟,量了主时钟是12.2mhz。
后面启动应用层demo后,启动ai和ao设备,设置是主模式,48k采样率,后面量时钟,bclk是1.5mhz,wclk是48khz,这里很重要,可以确定我们的管脚设置没有错,应用设置也没有错,否则是不会有数据的,调试驱动时,一定要确保时钟是正确的,用示波器量时钟,再调试应用。****

应用层设置,采集音频,在下章节讲。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:25:42  更:2021-09-13 09:26:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:16:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计