原创 CS5532调试笔记

2010-1-20 18:24 4938 5 5 分类: MCU/ 嵌入式

                               CS5532调试笔记


Microsoft eMbedded Visual C++ 平台下调试CS5532,遇到些问题,做如下记录:


1.       CS5531/2/3/4通道的问题


两通道的是CS5531/2CS553116bit精度,CS553224bit精度);


四通道的是CS5533/4CS553316bit精度,CS553424bit精度)。




<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



Configuration Register(配置寄存器) Conversion Data Register (转换结果寄存器)只有一个。


 


Offset Registers Gain Registers 对两通道的CS5531/2来说是各2个,对四通道CS5533/4来说各4个,分别对应相应的物理通道,这个很好理解。


 


但是Channel Step Registers(通道设置寄存器,简称为CSR)对所有的CS5531/2/3/4


都是4个,它和物理通道不是一一对应的,这个和我们的理解不一样。并且    CSR中的setup **不是物理通道,否则的话就8个通道了,哈哈!


 


2.       对物理通道进行转换操作


由于CS5531/2/3/4不具有上电复位的功能,所以开始转换之前对AD进行初始化设置时必须先要对AD进行系统初始化,分两步:一:串口初始化,通过发送15SYNC1(0xffH),然后再一个SYNC0(0xfeH)就可以完成串口初始化,我的程序中为了更可靠给AD连续发了31SYNC1;二:系统初始化,通过给Configuration RegisterD29位的RS1,会引起AD复位,复位有效(成功)的提示标志是Configuration RegisterD28RV被自动置为1,当对Configuration Register进行读取时,AD会自动把RV0


       AD复位成功后,下列寄存器会变为如下的初值(左边):


      


如果不是上述初值,只能说明AD初始化没有成功。我的AD初始化之后出现上图右边的值,Gain Register寄存器的置为00000001,而不是01000000,初始化不成功!


初始化正确之后就可以对相应的通道进行设置。


①设置Configuration Register


②设置Channel Step Registers(CSR):有4CSR  <?xml:namespace prefix = st1 ns = "isiresearchsoft-com/cwyw" />{CSR1(Setup1Setup2)CSR2(Setup3Setup4)CSR1(Setup1Setup2)CSR2(Setup3Setup4)},每一个转换物理通道可以任意使用CSR,不用一一对应。在Setup中设置它是所于那个具体的物理通道即可。转换的时候只需告诉AD,用哪个setupAD会根据用的这个setup中的设置,按这个设置转换相应的通道。


比如我用的是CS5532,两个物理通道,我对CSR1(Setup1Setup2)进行设置,Setup1中告诉AD这是对第一个物理通道进行设置,并按这个设置进行转换第一个物理通道的信号;Setup2中告诉AD这是对第二个物理通道进行设置,并按这个设置进行转换第二个物理通道的信号。


CS5532_Write_Command(CMD_WRITE+CMD_CH1+REG_SETUP);


CS5532_Write_Dword(((CSR_CH1+PGA_1+DATARATE_6P25+BIPOLAR_MODE+START_NO_DELAY+CAL_DATA_CH1)<<16)+(CSR_CH2+PGA_1+DATARATE_6P25+BIPOLAR_MODE+START_NO_DELAY+CAL_DATA_CH2));


//选择物理通道1+增益1+数据传送率6.25+双极模式+立即开始+Offset / Gain Register Pointer Bits


黄的表示Setup1的设置,红的是Setup2的设置。


③进行相应的物理通道校正。


完成上述步骤就可以命令ADsetup**,进行转换。


 


3.       我的问题


上面初始化不成功的原因有点隐蔽,在单片机上运行正常的程序,挪到ARM上进行初始化不成功。单片机用的开发工具是KEILARM上用的是Microsoft eMbedded Visual C++


由于AD的寄存器中除命令寄存器外都是32位的,所以定义了这样的数据类型:


union {  unsigned long rlong;


                      struct {


unsigned char byte3;


                                     unsigned char byte2;    


                                    unsigned char byte1;  


                                     unsigned char byte0; 


                                    }bytes;


                 }tempdword;


32位的变量tempdword,KEIL编译器中认为byte332位中高的8位,byte0是最低的8位;对AD寄存器读数或写数据都是先操作byte3,然后byte2,byte1,最后byte0的(因为AD的时序要求是从高位到低位操作的)。


把上面的联合体的定义直接挪到EVC的环境中就出问题了,它认为byte032位中高的8位,byte3是最低的8位(不信,你可以在KEIL VC6中写个测试代码试试!),所以还按照byte3>byte2>byte1>byte0的顺序操作AD寄存器就不对了。


上面说到我的我初始化之后的Gain Register寄存器的置为00000001,倒过高低8为倒下就是01000000了哈!


我的AD根本就没有初始化:


一:串口初始化是成功的,因为它是给命令寄存器8bit的指令,这个没有问题


二:AD系统初始化是不成功的,32为的命令0x20,00,00,00(RS1)EVC这样是传送byte3(0x00)>byte2(0x00)>byte1(0x00)>byte0(0x02)AD的,显然就不能复位系统了。


就这样折腾了我很久!还怀疑是传感器坏了,把传感器寄还给厂家,现在才知道它是怎么死的我冤死的!


                                                            2010-1-20


                                                           


 

文章评论0条评论)

登录后参与讨论
相关推荐阅读
hongqi1029_800556847 2013-12-24 14:13
类似CR2032这样的型号的含义
类似CR2032这样的型号,其含义如下:LR——碱性锂-锰一次性纽扣电池,电压1.5V;CR——锂-二氧化锰一次性纽扣电池,电压3.0V,年平均容量降低不大于2%,储存寿命长;SR——锌-氧化银一...
hongqi1029_800556847 2013-06-14 09:25
4~20ma的压控电流源电路
4~20ma的压控电流源电路   利用输入电压Vi(0~5v)控制输出电流Io(4~2Oma),且当输入电压固定时,输出电流不随负载RL的变化而变化。        输出电流的最...
hongqi1029_800556847 2012-08-30 20:30
智慧之花---名言(自省二)
不要评价别人的家庭,因为那和你无关。   不要评价别人的学问,因为世上最不缺的就是学问。   总之,不要评价任何人,哪怕是你的家人。   不要乱花钱,因为明天你就可能失业。    不要趾高...
hongqi1029_800556847 2012-08-13 17:51
浅谈单片机应用程序架构(本文转载自我心永恒)
浅谈单片机应用程序架构(一) 本文转载自我心永恒《浅谈单片机应用程序架构(原创)》 对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,本人觉得架构...
hongqi1029_800556847 2012-07-21 11:37
我得生活提醒
1.与人交谈处事,注意表达和表情,好意别给人相反得理解!!! 2.与人相处不高兴时,先反着想,比如我对人家是否尊重,我是否态度好,因为别人的反映可能是我的反映的镜像  3.任何你今日的任性,疏忽,或者...
hongqi1029_800556847 2012-07-21 10:59
自省
        1.为什么和人相处久了,一产生矛盾,就总可能把他得缺点老想来想去呢?为什么不去记人家得好呢?和陌生人反而不会这样呢?朋友,你有什么方法,对付这种情绪呢,毕竟人都不是完人啊!说说你的...
广告
我要评论
0
5
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /5 下一条