现将本人设计过程与最终遇到问题描述一下:
1,利用两个GPIO模拟CLK,DATA
2,传输速率定为推荐的15kHz,即CLK的高低电平宽度各约40us
3,实测PC上电后对于PS2端口的检测过程为:
a,整机上电后240ms过程中,CLK/DATA都为高,忽视任何数据动作
b,过240ms后,拉低CLK,收回权限
c,过一定时间,释放CLK权限,发送0xFF reset鼠标指令,假如接到0xFA反馈特
证字,则仍旧保持释放CLK权限状态,如无反馈字,则收回CLK权限,不再
检测
d,c步骤正常完成之后,立即收回CLK权限,等待一定时间后,重复c动作一次
e,完成c与d的动作时,恰逢系统进入windows系统检测,由此可推断,头两次检
测,是由BIOS完成
f,继续重复c动作
g,第三次重复c动作
h,紧接着进行参数配置,由pc逐个设置PS2鼠标参数
i,完成之后,PC正常放开CLK权限,整个配置过程结束。
本人的实验,在进行到“f”步骤时,就无法正常进行下去,实测波形发现,在第三次PC发来0xFF指令,我欲返回0xFA的确认信息时,PC就强行收回了CLK的权限,致使后续动作无法进展。
同样的四次动作,从第三次开始就无法正常进行,对此,我做了分析:
通常鼠标都是用PC 5V供电,我使用的开发板是利用PS2接口的5V再转3.3V供电,端口电平存在一定差异;
因电平存在差异,我就尝试适当拉宽CLK宽度,降低传输速率,无改善;
共地问题,我很小心的处理,可以排除;
arm的端口属性,OD,PP,我都进行尝试,结果都一样,实测波形在附件中。
对于此问题,我想请教有经验的达人,PC检测时,BIOS和WINDOWS检测是否存在差异?包括电源切换。拜谢!
用户237467 2010-3-2 14:43
用户195584 2010-3-1 09:13
用户224803 2010-2-28 19:31
朱玉龙 2010-2-26 21:48
用户195584 2010-2-26 10:55
用户1584993 2010-2-26 10:48