目录
Csr iis接口简介
其iis有四根线:采样率(帧时钟)、位时钟、数据输出,数据输入。默认配置为,采样率(fs)为48k;时钟为256*fs,一般都用64*fs;一个时钟延时,即从第二个时钟脉冲开始传输数据;串行数据为每帧16位
用configuration tool设置iis模式
Configuration tool的界面如下图,在audio->i2s路径下配置好需要的参数
然后在audio->routing路径下enable 数字通道,如下图
最后配置数字通道属性,如下图
配置好之后即可实现audio的iis输出
程序运行中的iis与analog切换
在sink_configmannger.c中修改以下函数,要实现切换,所以必须初始化i2s配置,初始化参数参数确定之后,整个运行过程中不会变化,如果要修改请自行添加修改函数
在sink_multi_channel.c中添加如下两个接口,一个为配置通道为数字,一个为配置通道为模拟,具体参数请参考configuration tool中的配置描述以及sink_multi_channel.c中参数设置等。函数中的g_app_data变量为一个uint8类型的全局变量,防止重复配置
请注意AudioOutputInit_ex为自定义函数,函数实现为,如果不这样修改,在播放音乐过程拨打电话会导致卡死,AudioOutputInit_ex参考AudioOutputInit函数修改,在lib库中,所以修改完之后需要重新编译下库文件才能生效
最后把两个两个接口分别加入HFP和A2DP的初始化过程中,如下图所示:
添加好这些之后,基本能实现播放音乐走iis通道,打电话走模拟通道了,如果还有其他需求,可以参考做相应修改。
相关源码及相关的工具资料等,请到我的博客<csr867x入门笔记(序)>最下面的网盘链接或者github链接中下载。