本帖最后由 t待鸿 于 2015-4-26 12:31 编辑
CS5532出现的异常
异常描述:
我用CS5532测试压力,借用的是以前的旧板子,板子采用的单5V供电,即VA+、VD+均采用的是5V供电,如下图
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg
通信接口是通过一个5V转3.3V的电平转换芯片连接到ARM7的,在之前的应用中是可以正常工作的;
这次我把就把电平转换芯片去掉,把通信接口直接连接到STM32上的,由于是借用之前的旧板子就忘记考虑电平匹配,结果出现了一怪现象:通信接口的线材在一个长度时可以正常读取相应的压力值,系统程序也可以正常刷新运行;但如果把线材缩短(如1/2),则不能读取到压力值,系统程序也不能刷新,感觉像整个系统卡住了,换回长线材后立即正常;
于是用示波器测量两种情况下的信号波形,正常情况下CS和SCLK等都会按时序出现高低电平,不能读取压力值的情况下,CS和SCLK的时序完全乱了;
注:以上两种情况用的是同一片CPU板相同程序,唯一不同的就改变了线材长度;很是纳闷,这和线材有啥关系呢,没想明白???
为了解决问题又回去查阅CS5532的数据手册,如下图,SCLK应该在VD+-0.45,我的VD+用的是5V,那至少应该是4.5V,我看了我的测试结果,两种情况下我的SCLK都是3.3V左右;
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpgfile:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg
更纳闷了,长线材的情况下,即使SCLK是3.3V也能正常显示压力值;
于是请同事帮忙,同事看了数据手册后发现VD+范围是+3V~+5V,也就是说为了和STM32电平匹配,可以把VD+改为3.3V
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg
于是死马当活马医,把电路修改,+D+接3.3V,如下:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg
结果测试发现无论线材长短都可以了,问题是解决了,但貌似真正原因并没有找到。
所以想请大家帮忙分析,这两个问题可能是什么原因:
问题:
1. 电平不匹配的情况下,长线材的可以正常读取压力值,短线材不能读取; 2. VD+电平改为3.3V可以正常读取,用5V即不能读取,数据手册上也看不出3V和5V有区别呀。
|