调试AKM4432 DAC驱动问题记录

本周在调试AK4432 DAC芯片的过程中踩了几个小坑,记录一下:

1.选择IIC总线配置芯片寄存器,要注意该芯片IIC特有的格式,并不是从地址 + 寄存器地址 +数据,而是有其特定的格式,如下图:

 

需要注意在从地址发送之后,若是写操作还要再发送0xC0 0x00,然后再接上寄存器地址 + 数据。同理,读操作需要发送0x40 0x00 + 寄存器起始地址。

但是最让我疑惑的是,为什么没有按照datasheet上的格式发送,IIC还是能收到ACK,这个问题导致我一直坚信IIC写操作是没有问题的,全力在研究其寄存器的配置(其实也就6个寄存器QAQ),后面在添加读操作的接口时才发现问题所在,因为读不到数据啊~~

2.该DAC芯片的工作需要DSP给出LRCLK BCLK DATA以及MCLK。一开始看芯片手册的时候以为只有配置为Manual setting/normal mode/标准I2S 32bit格式(mode 7)/ unmuted 就完事了,等着BCLK/LRCLK/DATA信号过来就能量测到输出电压了,只能怪我太naive,竟然会认为MCLK是芯片内部自己倍频的(看了电路图设计MCLK的输入是DSP MCLK | DSP BCLK),然而结果可想而知,输出的电压0.47V并且数据变化电压不随着改变,GG,后面仔细阅读芯片手册内容,发现了这一句话:

之前竟然脑补成setting automatically ,其实是detected!!只能说是眼拙了,以后做类似外设芯片驱动一定要仔细看芯片手册,切记~之后更改了硬件电阻的连接,改为MCLK输入,一切都顺理成章啦~

完结撒花

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值