请教:哪位大虾用过TI公司的AD采集芯片ADS1211

[复制链接]
3336|9
 楼主| kernel99 发表于 2008-1-21 12:24 | 显示全部楼层 |阅读模式
有哪位大虾用过TI公司的AD采集芯片ADS1211,能否提供开发资料或一些经验!<br /><br />我MSN:kernel21cn@sohu.com<br />现有的设计是参考网上一些资料:资料如下:<br /><br />将电路设置为从动方式,增益GAIN选为1,加速因子TMR为1,fXIN选择10MHz,抽取率(DR)为1952(即0011110100000),fDATA为10MHz并选择单极性输入和半自动校准方式,同时选择通道输入1,具体的测量程序和读写延时子程序如下:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;测量主程序:<br /><br />SDIO&nbsp;EQV&nbsp;P1.3<br /><br />SCLK&nbsp;EQV&nbsp;P1.2<br /><br />DRDY&nbsp;EQV&nbsp;P1.1<br /><br />SDOUT&nbsp;EQV&nbsp;P1.4<br /><br />ORG&nbsp;0000H<br /><br />CLR&nbsp;EA<br /><br />CLR&nbsp;SCLK<br /><br />LCALL&nbsp;TIME&nbsp;;延时子程序<br /><br />JB&nbsp;DRDY,$<br /><br />NOP<br /><br />NOP<br /><br />MOV&nbsp;A,#64H<br /><br />LCALL&nbsp;WRBYTE;WRITE-INSR<br /><br />NOP<br /><br />NOP<br /><br />MOV&nbsp;A,#52H<br /><br />LCALL&nbsp;WRBYTE;<br /><br />MOV&nbsp;A,#20H<br /><br />LCALL&nbsp;WRBYTE;<br /><br />MOV&nbsp;A,#70H<br /><br />LCALL&nbsp;WRGYTE;<br /><br />MOV&nbsp;A,#0AON<br /><br />LCALL&nbsp;WRBYTE;WRITE-CMR<br /><br />SETB&nbsp;DRDY<br /><br />JB&nbsp;DYDY,$<br /><br />NOP<br /><br />NOP<br /><br />MOV&nbsp;A,#0AON<br /><br />LCALL&nbsp;WRTYTE;WRITE-INSR<br /><br />NOP<br /><br />NOP<br /><br />LCALL&nbsp;RDBYTE<br /><br />MOV&nbsp;22H,A;<br /><br />LCALL&nbsp;RDBYTE<br /><br />MOV&nbsp;21H,A;<br /><br />LCALL&nbsp;RDBYTE<br /><br />MOV&nbsp;20H,A;READ-DOR<br /><br />SETB&nbsp;DRDY<br /><br />.<br /><br />.<br /><br />.<br /><br />读数据子程序;<br /><br />RDBYTE:MOV&nbsp;R7,#8<br /><br />RDBYTE1:SETB&nbsp;SCLK<br /><br />MOV&nbsp;C,SDOUT<br /><br />CLR&nbsp;SCLK<br /><br />RLC&nbsp;A<br /><br />DJNZ&nbsp;R7,RDBYTE1<br /><br />RET<br /><br />写数据子程序:<br /><br />WRBYTE:MOV&nbsp;R7,#8<br /><br />WRBYTE1:RLC&nbsp;A<br /><br />SETB&nbsp;SCLK<br /><br />MOV&nbsp;SDIO,C<br /><br />CLK&nbsp;SCLK<br /><br />DJZN&nbsp;R7,WRBYTE1<br /><br />RET<br /><br />延时子程序:<br /><br />TIME:MOV&nbsp;R6,#10<br /><br />TIME1:MOV&nbsp;R7,#OFFH<br /><br />DJNZ&nbsp;R7,$<br /><br />DJNZ&nbsp;R6,TIME1<br /><br />RET<br /><br />
 楼主| kernel99 发表于 2008-1-22 16:48 | 显示全部楼层

请教大虾

  
mxh0506 发表于 2008-1-22 22:02 | 显示全部楼层

应该是BB的吧?

抽取率(DR)为1952(即0011110100000),fDATA为10MHz?<br /><br />这样能输出几位有效数据啊?
 楼主| kernel99 发表于 2008-1-23 09:36 | 显示全部楼层

是BB公司,现在是TI公司的

根据fdata=(fxin*TuroMode)/512*抽取率),得到抽取率(DR)为1952(即0011110100000),哪位大虾用过ADS1211,我用的过程观察初始化时序都正确,就是读数时,SDOUT没有输出
mxh0506 发表于 2008-1-23 12:20 | 显示全部楼层

哦,原来fData是10Hz

我用在50Hz时能输出20位有效数据
 楼主| kernel99 发表于 2008-1-23 12:24 | 显示全部楼层

mxh0506您好

mxh0506,请问您在线吗?我现在遇到一个问题,就是SDOUT没有数据输出,您能提供关于ADS1211开发方面的一些经验,代码吗?不甚感激!&nbsp;&nbsp;我MSN:kernel21cn@sohu.com&nbsp;.&nbsp;&nbsp;&nbsp;邮箱:&nbsp;kernel21cn@sohu.com&nbsp;&nbsp;
mxh0506 发表于 2008-1-23 12:30 | 显示全部楼层

看看CMR寄存器的配置

默认SDOUT无输出,要置成SDL=1
mxh0506 发表于 2008-1-23 12:40 | 显示全部楼层

唉,我的MSN很久没用的,今天竟然告诉我

不升级就不能用
 楼主| kernel99 发表于 2008-1-23 13:32 | 显示全部楼层

已经设置了SDL为1

已经设置了SDL为1,在ARM7中初始化代码如下:&nbsp;您帮我看看有什么不对的地方<br /><br /><br />//2008年1月14号,先等待DRDY变高,再等它变低<br />&nbsp;&nbsp;&nbsp;&nbsp;while((IOPIN1&(1&lt&lt14))==0X00)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};&nbsp;&nbsp;//说明,DRDY接的是我用的ARM7芯片的P1.14脚<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((IOPIN1&(1&lt&lt14))!=0X00)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};//等待DRDY到由高电平跳变到低电平为止<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt300;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};//大概延时35us<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;write_byte_ads2(0x64);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置INSR&nbsp;指令寄存器,设置ADS1211芯片等会写&nbsp;CMR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//从第0X03个字节开始<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt300;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};//大概延时35us<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;write_byte_ads2(0x52);//设置写最高字节<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt300;&nbsp;i++)&nbsp;{};//大概延时35us<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;write_byte_ads2(0x20);//选择半自动校准模式,增益PGA为1,通道1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt300;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};//大概延时35us<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;write_byte_ads2(0x81);//根据&nbsp;抽取率=fxin*TMR/(Fdata*512);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;&nbsp;i&lt300;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{};//大概延时35us<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;write_byte_ads2(0x38);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TMR设置为为16;Fdata为1000;Fxin为10M,得到抽取率为312.5<br />&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| kernel99 发表于 2008-1-24 08:58 | 显示全部楼层

mxh0506 ,在线?

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

93

主题

177

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部