网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  AD7705使用两点注意事项(附初始化程序)         ★★★ 【字体:
AD7705使用两点注意事项(附初始化程序)
作者:佚名    文章来源:Internet    点击数:    更新时间:2006-11-22    
近日项目中应用了AD7705,作为一款16位的AD,非常适合应用在高精度慢速采集的场合。我在项目中实现温度分辨率0.01度,给PID控制精度提高提供了条件。
但开始调试时,也遇到了一些麻烦,主要有两点:
1,初始化:
       如果AD7705复位引脚直连VCC,最好在初始化程序中加入初始化序列,不然ready信号不会输出。
2,输入范围
      如果AD7705采集单端信号,则输入必须在0到VDD之间,而不可以超出或为负,如果一个输入为负,则另一个输入会有灌入电流的现象,芯片无法正常运行。
 
 
附初始化程序:
/*
*********************************************************************************************************
*                                    InitAD7705
*
* Description : init ad7705
*              
* Arguments   : none
*********************************************************************************************************
*/
void InitAD7705 (void) {
 INT8U i;
 INT8U temp;
 OS_CPU_SR cpu_sr;
 DDRB |= 0x07;// Mosi, sck, ss
 DDRB &= ~(1 << 3);//Miso
 
 PORTB |= 1 << 1;//sck high
 PORTB |= 1 << 2;//mosi high
 PORTB &= ~ (1 << 0); // ss low
 for (i=0;i<50;i++) // AD7705复位
 {
  PORTB &= ~(1 << 1);
  PORTB |= 1 << 1;
 }
 SpiInit();

 //PutChar1(0x5a);
 temp = PutCharSpi(0x20);//next is clock
 temp = PutCharSpi(0x05);//60hz
 temp = PutCharSpi(0x10);//next is setup
 temp = PutCharSpi(0x44);//
 while ((PIND & 0x01) == 1);
 temp = PutCharSpi(0x21);//next is clock
 temp = PutCharSpi(0x05);//60hz
 temp = PutCharSpi(0x11);//next is setup
 temp = PutCharSpi(0x44);//0x44比0x46要准确一些,可能是因为缓冲
 //不适合于变化的输入。比如模拟开关,以及通道切换
 //带来的影响,如果只有一路
 //稳定的输入,可以就不会有问题
 //FSYNC 不能为1,不然,似乎rdy线不会变低
 while ((PIND & 0x01) == 1);
 //PutChar1(0xA5);
 
}
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    AD9958用ADuC845控制的keil源
    AD5933做的简易网络分析仪(改
    AD5302  8位DAC
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号