本文介绍如何将QCC5127的PIO2作为普通PIO口使用。猜测:该方法除了适用于PIO2,应该也同样适用于PIO32、PIO34、PIO35、PIO36、PIO37和PIO39,但这几个PIO口都没有验证测试,如果发生与PIO2类似的问题,可能就是同一个原因。
测试工具
MDE:MDE_WIN_2.3.2.126
Toolkit:NULL
QACT:NULL
Hardware:高通官方QCC5127开发板
Software:ADK QCC512X ROM V21 WIN 6.4.2.21,sink
问题来源
有小伙伴用QCC5127设计了一款耳机,把PIO2当做了一个按键。用ADK configuration tool将PIO2配置为按键,期望PIO2为内部上拉,当有按键按下时PIO2变为低电平。
实际测试,当上电后,PIO2确实输出高电平,感觉内部上拉没啥问题(实际上可能还是有问题),当power on后,PIO2直接变成了低电平。
猜测sink代码中有对PIO2的操作,查找代码未发现。
问题明朗
查看高通的开发板原理图发现PIO2、PIO32、PIO34、PIO35、PIO36、PIO37和PIO39,已经有重要任务在身了:
该芯片是一颗QSPI RAM,因为QCC5127支持外挂RAM,这个其他芯片,像QCC5121之类的,都是没有的,因此猜测在QCC5127代码中(也有可能是一些看不到的底层代码)有对这些PIO口有占用,导致无法正常使用PIO2。
进一步寻找,终于在sink工程的subsys0_config10.htf文件中看到了相关的配置:
这个正好与原理图吻合,证明了后台程序有对这些PIO口进行操作,将其关闭即可。
解决方法
设置EnableAudioSqif= false。
注释掉除了EnableAudioSqif= false以外的其他内容。
rebuild程序测试,将PIO2配置为一个按键,发现已经能正常工作了。
这样操作的前提条件是QCC5127在使用过程中没有用到外部的QSPI RAM,否则,就不要再折腾了,因为这几个PIO口需要用来控制RAM芯片。
责任编辑:xj
原文标题:QCC5127无法配置PIO2为button的解决方法
文章出处:【微信公众号:蓝牙】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !