打印

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

[复制链接]
2393|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kernel99|  楼主 | 2008-1-21 12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有哪位大虾用过TI公司的AD采集芯片ADS1211,能否提供开发资料或一些经验!

我MSN:kernel21cn@sohu.com
现有的设计是参考网上一些资料:资料如下:

将电路设置为从动方式,增益GAIN选为1,加速因子TMR为1,fXIN选择10MHz,抽取率(DR)为1952(即0011110100000),fDATA为10MHz并选择单极性输入和半自动校准方式,同时选择通道输入1,具体的测量程序和读写延时子程序如下:

    测量主程序:

SDIO EQV P1.3

SCLK EQV P1.2

DRDY EQV P1.1

SDOUT EQV P1.4

ORG 0000H

CLR EA

CLR SCLK

LCALL TIME ;延时子程序

JB DRDY,$

NOP

NOP

MOV A,#64H

LCALL WRBYTE;WRITE-INSR

NOP

NOP

MOV A,#52H

LCALL WRBYTE;

MOV A,#20H

LCALL WRBYTE;

MOV A,#70H

LCALL WRGYTE;

MOV A,#0AON

LCALL WRBYTE;WRITE-CMR

SETB DRDY

JB DYDY,$

NOP

NOP

MOV A,#0AON

LCALL WRTYTE;WRITE-INSR

NOP

NOP

LCALL RDBYTE

MOV 22H,A;

LCALL RDBYTE

MOV 21H,A;

LCALL RDBYTE

MOV 20H,A;READ-DOR

SETB DRDY

.

.

.

读数据子程序;

RDBYTE:MOV R7,#8

RDBYTE1:SETB SCLK

MOV C,SDOUT

CLR SCLK

RLC A

DJNZ R7,RDBYTE1

RET

写数据子程序:

WRBYTE:MOV R7,#8

WRBYTE1:RLC A

SETB SCLK

MOV SDIO,C

CLK SCLK

DJZN R7,WRBYTE1

RET

延时子程序:

TIME:MOV R6,#10

TIME1:MOV R7,#OFFH

DJNZ R7,$

DJNZ R6,TIME1

RET

相关帖子

沙发
kernel99|  楼主 | 2008-1-22 16:48 | 只看该作者

请教大虾

使用特权

评论回复
板凳
mxh0506| | 2008-1-22 22:02 | 只看该作者

应该是BB的吧?

抽取率(DR)为1952(即0011110100000),fDATA为10MHz?

这样能输出几位有效数据啊?

使用特权

评论回复
地板
kernel99|  楼主 | 2008-1-23 09:36 | 只看该作者

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

根据fdata=(fxin*TuroMode)/512*抽取率),得到抽取率(DR)为1952(即0011110100000),哪位大虾用过ADS1211,我用的过程观察初始化时序都正确,就是读数时,SDOUT没有输出

使用特权

评论回复
5
mxh0506| | 2008-1-23 12:20 | 只看该作者

哦,原来fData是10Hz

我用在50Hz时能输出20位有效数据

使用特权

评论回复
6
kernel99|  楼主 | 2008-1-23 12:24 | 只看该作者

mxh0506您好

mxh0506,请问您在线吗?我现在遇到一个问题,就是SDOUT没有数据输出,您能提供关于ADS1211开发方面的一些经验,代码吗?不甚感激!  我MSN:kernel21cn@sohu.com .   邮箱: kernel21cn@sohu.com  

使用特权

评论回复
7
mxh0506| | 2008-1-23 12:30 | 只看该作者

看看CMR寄存器的配置

默认SDOUT无输出,要置成SDL=1

使用特权

评论回复
8
mxh0506| | 2008-1-23 12:40 | 只看该作者

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

不升级就不能用

使用特权

评论回复
9
kernel99|  楼主 | 2008-1-23 13:32 | 只看该作者

已经设置了SDL为1

已经设置了SDL为1,在ARM7中初始化代码如下: 您帮我看看有什么不对的地方


//2008年1月14号,先等待DRDY变高,再等它变低
    while((IOPIN1&(1<<14))==0X00)
    {};  //说明,DRDY接的是我用的ARM7芯片的P1.14脚
    
    while((IOPIN1&(1<<14))!=0X00)
    {};//等待DRDY到由高电平跳变到低电平为止
    
         for (i=0; i<300; i++)
    {};//大概延时35us
    
    write_byte_ads2(0x64);
        //设置INSR 指令寄存器,设置ADS1211芯片等会写 CMR
          //从第0X03个字节开始
    
    
    for (i=0; i<300; i++)
    {};//大概延时35us
    
    
    write_byte_ads2(0x52);//设置写最高字节
    
    for (i=0; i<300; i++) {};//大概延时35us

    write_byte_ads2(0x20);//选择半自动校准模式,增益PGA为1,通道1
    
    for (i=0; i<300; i++)
    {};//大概延时35us
    
    write_byte_ads2(0x81);//根据 抽取率=fxin*TMR/(Fdata*512);  
    
    for (i=0; i<300; i++)
    {};//大概延时35us

    write_byte_ads2(0x38);    
                                                                         //TMR设置为为16;Fdata为1000;Fxin为10M,得到抽取率为312.5
    

使用特权

评论回复
10
kernel99|  楼主 | 2008-1-24 08:58 | 只看该作者

mxh0506 ,在线?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

93

主题

177

帖子

1

粉丝