在调试nt11003电容屏时,碰到这个奇奇怪怪的问题,纠结了好久好久。
这个问题是:将电容TP接到主板上去,开机,测试i2c通信失败,纳闷啊。
TP没有工作无外乎以下几个原因:
1、设备地址不对。
2、i2c通信读写函数不对。
3、i2c控制器正常,而i2c设备没有工作起来。
经过几经波折,排除了以上1/2种情况,测试出是TP的IC没有工作起来(通过测量tp的中断脚有没有发出中断,或者测量IC上的电源是否正确)。既然tp的IC没有工作起来,其原因无外乎也就以下几种情况:
1、上电时序不对。
2、主板供给TP的电源电压不正常
又是经过几经波折,测试得出一下结论:
上电时序完全符合datasheet上给出的波形,用万用表测得主板给过去的电源电压也都正常,而且这主板提供的电源同样也能供别的电容屏使用。那这真的让人无语了啊~~
于是直接将TP外接到别的转接板,用独立的DC电源来单独给这个TP供电,结果TP却能正常工作了啊,这样可以看出,好像是主板供给TP的电源电压有问题啊,导致tp不能正常工作啊。这样能排除问题是出在主板上还是TP上吗???回答是:不能。
分析:1、有可能主板供给TP的电源电压纹波太大(但是纹波电压用示波器测得只有100mv左右),导致TP无法工作。
2、有可能是TP上哪里器件贴的有问题,导致TP对纹波的容错极限下降。
查看TP的Layout,有如下的图:
从图上可以看出,VDD是有VDDIN而来的,VDDIN是主板给过来的电源,在VDD与VDDIN之间有个磁珠,这个磁珠用来过滤掉高频纹波电压。以下是网上给出对磁珠的解释:
磁珠专用于抑制信号线、电源线上的高频噪声和尖峰干扰,还具有吸收静电脉冲的能力。磁珠是用来吸收超高频信号,象一些RF电路,PLL,振荡电路,含超高频存储器电路(DDRSDRAM,RAMBUS等)都需要在电源输入部分加磁珠,而电感是一种蓄能元件,用在LC振荡电路,中低频的滤波电路等,其应用频率范围很少超过50MHZ。 磁珠有很高的电阻率和磁导率,等效于电阻和电感串联,但电阻值和电感值都随频率变化。
再查看下TP上贴的器件,居然是个0R的电阻。就是这个0R的电阻导致了TP无法工作。My god~~