Dear All,
最近小弟在研究MT6223D上实现软USB功能。把这两天的研究心得体会写出来和大家一起分享。
首先使用软USB后必须要屏蔽RF功能即把RF Sleep掉,关闭一起不必要的器件。
第二进入软USB模式后在也无法退出到正常模式,即软USB应该是一个While(1){} + 中断模式,我想很多在裸机上开发过单板的工程师都知道这种模式吧。
第三GPIO27即可配成EINT5也可配成GPIO模式,理解这一点很重要,要明白什么时候配成EINT5,什么时候配成GPIO模式。
第四USB是差分信号,GPIO28也可侦听PC发过来的数据包。
第五要明白PC端接收手机发过来的数据,GPIO27\\GPIO28应该是何种信号,PC端才能准确无误的识别。
第六要能准确解析及发送USB协议数据包。建议使用一个精度很高的Timer,一个最小时钟到是则从GPIO27\\GPIO28读取或发送一个位。这个Timer应该使用硬件Timer,MTK平台共有三个Timer,GPT这个Timer暂未使用,可以使用GPT。
第七要不断的喂狗。
第八到USB拔出时要SHUTDOWN SYSTEM.
现在仅仅是初步的思考,请大家多提宝贵意见,谢谢。 |