登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

ad676几个很棘手的问题(附图及程序)。

作者:worminight 栏目:测控之家
AD676.html">AD676几个很棘手的问题(附图及程序)。
用过AD676.html">AD676的大大请进,有几个很棘手的问题。

如图:
51控制AD6767404晶振1.8M

1把7474接成2分频(datasheet的参考图)。
multisim,仿真,波形符合预期。
按图接电路,共连了两个。不加AD676,在1端分别施加0V和5V,工作正常。
AD676后,busy为高,但clk无输出。怀疑是驱动问题,经过2个非门,现象依旧。
或者必须把busy的电平对7474没有用?没道理啊

最后没办法,用51的一条管脚给clk,但是很奇怪。不知道什么原因。


2一直没法正常采样,最后在SAMPLE输出加非门,让上电复位后SAMPLE为低(51默认高输出),同时在smple,busy并接104电容,能正常工作。
我在AD676板和控制板之间使用40PIN排线连接,是不是线太长了。


3关于误差。
使用51给clk脉冲,测试系统误差。
输入前接低通,AD426 16路模拟开关。

AD676.html">AD676经过自校准,但误差始终为50mv左右。

基准源调整至10.000V,观察使采样值溢出的输入电压,大约为10.050V,精度无法保证。

676的datasheet
http://www.analog.com/en/prod/0%2C2877%2CAD676%2C00.html

* - 本贴最后修改时间:2005-11-23 19:40:43 修改者:worminight

2楼: >>参与讨论
worminight
676的时序图
676的时序图 :如图

3楼: >>参与讨论
worminight
程序
//*******************************//
//********AD676初始化程序********
///*******************************//
//增加1级反相
void AD676_SelfCal(void)
{

AD676_CAL=1;


while(AD676_BUSY==0)
    {
    CLK=!CLK;
    AD676_CAL=0;
    }

AD676_CAL=0;

}



//*******************************//
//********AD676程序**************//
///******************************//
int AD676(unsigned CHAR channel)

{
unsigned int ad676data;
unsigned CHAR ad676datah,ad676datal;
//AD426 channel SELECT
SWITCH(channel)
    {
    //Ul
    case 1:
        {ADG426WR_Ul=0;}
        break;
    default:
        break;
    }
//AD676 SAMPLE
if((channel>=1) && (channel<=16))
    {
    //AD676 SAMPLE反向输入 7404
    //AD676 busy  反向输入 7404
    //AD676 get
    AD676_SAMPLE=0;
    AD676_SAMPLE=0;
    
    AD676_SAMPLE=1;
    while(AD676_BUSY==0)
        {
        CLK=!CLK;
    //    AD676_SAMPLE=1;
        }
    AD676_SAMPLE=1;

    //AD676_BUSY==0,data ready
    ad676datah=AD676H8_ADD;
    ad676datal=AD676L8_ADD;
    
ad676jk_h=ad676datah;  
ad676jk_l=ad676datal;
    
    ad676data= (int)(ad676datah<<8) + (int)(ad676datal) ;
    }    
//通道不正确可能返回不正确的值
return(ad676data);
}



//*******************************//
//********AD676绦?*******
///*******************************//
int AD676_contin(void)

{    
unsigned int ad676data;
unsigned CHAR ad676datah,ad676datal;
    //AD676 SAMPLE反向输入 7404
    //AD676 busy  反向输入 7404
    //AD676 get
AD676_SAMPLE=0;
AD676_SAMPLE=0;
AD676_SAMPLE=1;
while(AD676_BUSY=0)
    {
    CLK=!CLK;
//    AD676_SAMPLE=1;
    }
AD676_SAMPLE=1;
//AD676_SAMPLE=0;
//AD676_BUSY==0,data ready

//ad676datah=AD676H8_ADD;
//ad676datal=AD676L8_ADD;
//ad676data= (unsigned int)(ad676datah<<8) + (unsigned int)(ad676datal) ;
return(ad676data);
}


参与讨论
昵称:
讨论内容:
 
 
相关帖子
TLC2543遇到到头疼问题
做一个MP3大小的东东,有没有适合这种情况下使用的继电器呢?
三相电参数的测量
ADE7758奇怪现象!
要买台示波器,请各位指点一下
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号