刚拿到这个片子的时候,就感觉又是个一个坑,果不其然的事情也随之发生了(哈哈哈,预测准确。。。)
这款芯片的话存在一些问题,就是参考资料比较少,最大的关键点是厂家没有技术支持,也没有给出任何完整的底层驱动例程,有的只是两个PDF,不算很全面的介绍,也只能凑合着看了(上传不了附件。。。呜呜呜。。。)。
接下来就是万能的度娘,开始看看有没有道友之前用过并把例程分享出来,一搜网上还真是有,但是大体看了看,能直接拿来用的基本没有,我的基本构架是应用自己的模拟IIC进行使用的,自己用比较放心,结合众多前辈们的经验,我只总结两点。
1.一定要注意这个芯片的设备地址:厂家PDF给出的是0x50,如果你真按这个地址去查询她,你会发现她根本不屌你,实际地址应该是0xA0,你发这个这货认识到是她了,原因是0x50是bit7~bit1这七位的定义,并不是八位,bit0:为读写位,也就是你真正组合起来 发送的地址是0xA0或者0xA1,看你的操作是读还是写了,这真是个神坑的槽点,幸亏有大神用过,不然我估计在这个点上要耗不知道多少青春。。。
2.这个大哥在读写时序图上的ACK信号,一定要注意,首先厂家的PDF中给出的描述是:一笔数据 (8bit +ACK) 完成后, 从机开始处理数据 (从机忙碌 ), 无法接收下一笔数据,此时从机将 SCL 拉低, 主机需等待 SCL 变为高电平时才可以继续进行数据传送。首先这段文字我就看不懂了,从机设备能够控制SCL总线的我是第一次见过,后来又详细查了查IIC协议,发现只有主机能控制SCL总线,从机的ACK只能是拉低SDA数据线,不知道是厂家的PDF文字叙述有错误,还是真就是这样,这个就BUG了。我查了相关道友做的例程分享,发现大家跟我一样,等待这个哥们儿的ACK一直都不给,建议大家如果项目不紧急,还是查一下时序,看看这个ACK到底是个什么鬼,如果比较着急可以采取那个道友的方式,主机主动给从机发个ACK意思意思就完了,先能用,别跟时间和项目过不去,不然领导又要怀疑我的能力了。哎。
说了这么多,总共用了一天的时间算是调通了通讯,换了换CT电容也能有5个按键好用(总共六个按键,又一个死活没输出,就一天的时间还想怎么样,我忍了),其实说这么多的槽点,不是说国产芯片有多差,其实国产芯片做的一点都不差,只是希望后续能有技术支持跟上,扫遍官网没发现,更别指望代理商了,再就是技术文档不够详细,上面的槽点也希望以后能够改进和解决。
最后祝道友们用片愉快~!!!(反正项目总是急急急,一款芯片说换就换降成本嘛,耗费精力研究也没有任何意义,出问题再讲,工程师的悲哀)