tlv320aic3110在Freescale Mx6q上的调试

这个芯片调试过程中最主要的是要搞清楚几个芯片的协作状态

CPU与tlv320aic3110的连接有三个,时钟源,I2C控制信号和IIS的数据通路。
tlv320aic3110的时钟源是由CPU提供的
I2C通信传递的是对芯片的控制信号,用于管理芯片的工作状态,音量,耳机状态等
IIS是数据通路,通过DMA的方式传送音频数据。

在数据传送中,DMA是由tlv320aic3110发起的,CPU端的IIS只要配置好,进入数据传输阶段后,会由芯片产生时钟,将CPU端的数据取走,而CPU的任务是准备好IIS的buffer数据,向芯片设置正确的数据位率。因此在SSI的驱动初始化时,需要正确的配置SSI的状态。这里源码中的标识有些怪异,源码所描述的master模式,实际上是芯片为主,CPU为slave,而slave模式下,CPU的SSI控制器才是主。这里的主从是针对芯片的,不是对CPU的,不能搞反了。

在驱动设计的过程中,注意系统中dpm的管理,驱动中会通过set_bias_level来改变芯片的工作状态,通过set_hw_param对播放参数进行设置,因此同时,上层也需要查看必要的状态来完成后续的逻辑,因此,每次的状态变化需要同时改变硬件状态和由上层传来的数据结构。

最后,还有一个耳机的中断处理。耳机中断处理当中,需要改变对应的标志位,才能够让系统知道现在的播放源是什么,这样在界面上才能有正确的提示。同时,也需要发送对应的uevent,让上层知道当前耳机的状态,在收音机等功能工作时才能达到需要的效果
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值