电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

ADS1110

来源:-- 作者:-- 浏览:448

标签:

摘要: 【用 途】 串行A/D转换器 【性能 参数】 小型SOT23-6封装;采用6引脚贴片封装。电源电压2.7 V~5.5 V;低电流消耗240 μA。由带有可调增益的△-∑型转换器内核、2.048 V的电压基准、时钟振荡器和I2C总线接口组成。为精密、可连续自校准的串行A/D转换器。带有差分输入和高达16位的分辨率,其串行接口为IIC总线。

【用 途】     串行A/D转换器 【性能 参数】

小型SOT23-6封装;采用6引脚贴片封装。电源电压2.7 V~5.5 V;低电流消耗240 μA。由带有可调增益的△-∑型转换器内核、2.048 V的电压基准、时钟振荡器和I2C总线接口组成。为精密、可连续自校准的串行A/D转换器。带有差分输入和高达16位的分辨率,其串行接口为IIC总线。具有完整的数据采集系统和片内基准电压:精度2.048 V+0.05%;片内含可编程增益放大器PGA;片内振荡器;16位分辨率;可编程的转换速率15次/秒~240次/秒;I2C总线接口(8个有效地址)。 

    A/D转换器内核是由差分开关电容△-∑调节器和数字滤波器组成。调节器测量正模拟输入和负模拟输入的压差,并将其与基准电压相比较。数字滤波器接收高速数据流并输出代码,该代码是一个与输入电压成比例的数字,即A/D转换后的数据。 ADS1110片内电压基准是2.048 V。ADS1110只能采用内部电压基准该基准,不能测量,也不用于外部电路。ADS1110片内集成时钟振荡器用于驱动△-∑调节器和数字滤波器。ADS1110的信号输入端设有可编程增益放大器PGA,其输入阻抗在差分输入时的典型值为2.8 MΩ。

ADS1110的使用

    I2C总线接口 ADS1110通过I2C总线(内部集成电路)接口通信,AT89C51单片机的2个I/O接口最多可挂接8个ADS1110,单片机对ADS1110的识别通过I2C地址实现。ADS1110只能作为从机。 ADS1110的I2C地址是1001aaa,其中aaa是出厂时默认设置。ADS1110有8种不同类型,每种类型都有不同的I2C地址。封装上,ADS1110的每种类型都以EDx为标识,其中x表示地址变量。

    寄存器  ADS1110含有输出寄存器和配置寄存器,可通过I2C端口进行访问。输出寄存器存储A/D转换结果,而配置寄存器用于设置ADS1110的工作方式,数据速率和可编程增益放大器,也可用于查询器件状态。

    ADS1110的读写  读操作 若从ADS1110中读取输出寄存器和配置寄存器的内容,需对ADS1110寻址。从ADS1110中读取3个字节,前2个字节是输出寄存器的内容,第3个字节是配置寄存器的内容。读操作时,只读前2个字节而不读第3个字节。ADS1110的读操作时序如图3所示。 3.3.2写操作 为了对配置寄存器写操作,要对ADS1110寻址,并向配置寄存器写入1个字节,但不能向输出寄存器写人字节。

    ADS1110在AT89C51系统应用   硬件设计 由于AT89C51单片机没有I2C总线接口,可通过软件模拟实现与I2C总线器件的连接。具体方法是将单片机的I/O接口连接至I2C的数据线SDA和时钟线SCL。通过软件控制时钟和数据传输,系统灵活性强。 数据采集显示系统,采集工业现场的4路模拟信号并轮询显示。采用4个ADS1110作为A/D转换器,地址为ED0~ED3。具有I2C总线接口的EEPROM AT24C16作为存储器。本系统有4位LED数码显示管和4个参数设定按键。采集数据经数字滤波、16进制→工程值转换后,送至数码管轮询显示。ADS1110和AT24C16的I2C接口连ADSl110数据线SDA至单片机的P1.0,时钟线SCL连接单片机的P1.1,上拉电阻阻值选10 kΩ。

    软件设计 按照硬件电路,编写A/D转换子程序为ADS0,其中嵌套调用了START,为起始命令子程序,FSDZ1为向ADS1110发送单个字节命令的子程序,ADREAD是读取输出寄存器和配置寄存器的子程序,STOP是停止命令子程序。ADS0只对地址为ED0的ADS1110读数,如果要读取其他ADS1110,只需更改地址即可。系统中ADS1110的工作方式选用默认设置,即配置寄存器内容为#8CH,所以程序未向配置寄存器写入数据。程序代码如下:

  结束语   ADS1110是一款高性价比具有I2C总线接口的串行A/D转换器。ADS1110已在单片机系统中应用,并用于现场。实践证明,ADS1110和单片机组成的数据采集系统,占用I/O端口少、功耗低,适用无电源场合。


【互换 兼容】

//本程序采用IIC通信方式,4兆PIC16F877
 //是ADS1100,ADS1110的通用程序。
 刚通过。
 
 
 # include<pic.h>
 # define uch unsigned char
 # define unint unsigned int
 # define SDA  RD1
 # define SCL  RD0
 uch ACK;
 unint j;
 void delay()            //延时
 {
 for(j=5535;--j;) continue;
 }
 void start (void)       //开始
 {
    TRISD0=0;
    TRISD1=0;
    SDA=1;
    asm("nop");
    SCL=1;
    asm("nop");
    asm("nop");
    asm("nop");
    SDA=0;
    asm("nop");
    asm("nop");
    asm("nop");
    SCL=0;
    asm("nop");
    asm("nop");
 }
 
 void stop(void)             //结束
    {
     TRISD0=0;
     TRISD1=0;
     SDA=0;
     asm("nop");
     SCL=1;
     asm("nop");
     asm("nop");
     asm("nop");
     SDA=1;
     asm("nop");
     asm("nop");
     asm("nop");
     SCL=0;
     asm("nop");
     asm("nop");
     }
   
     uch  check(void)    //  检查应答信号
      {  
         TRISD1=1;
         SCL=0;
         SCL=1;
    
         if (SDA )
         {
             ACK = 1;
         }
        else
         {
             ACK = 0;
          }
        SCL=0;
       return(ACK);
      }
      
       void sendBYTE(uch data)   //  发送一个字节
 {
      uch bitcount=8;               //发送8位
 
           do
           {
             TRISD0=0;
             TRISD1=0;            //置输出
            
             if((data&0x80)==0x80)   
                 {
                  SDA=1;         //写 1
                  }
             else  
                 {
                  SDA=0;        //写 0
                 }
             SCL=0;              //在时钟大于4u秒期间写数据
             SCL=1;
            asm("nop");
            asm("nop");
            asm("nop");
            asm("nop");
            asm("nop");
             SCL=0;
           data=data<<1;
           bitcount--;
           } while(bitcount);
            TRISD1=1 ;                  //释放总线等待应答
            asm("nop");
            asm("nop");
            asm("nop");
            asm("nop");
            asm("nop");         
 }   
 
 uch reciveBYTE(void)             //接受一个字节
   {
     uch temp1=0;
     uch bitcount1=8;
     TRISD0=0;
     TRISD1=1;               //置输入
    do
    { SCL=0;              //在时钟大于4u秒期间读数据
      SCL=1;
      asm("nop");
      asm("nop");
   
     if(SDA)                //读 1
        {
         temp1=temp1|0x01;    
        }
     else                     //读 0
       {
         temp1=temp1&0xfe;
       }
      SCL=0;
      if(bitcount1-1)
       {
          temp1=temp1<<1;
          
       }
        bitcount1--;  
       }while(bitcount1);
        return(temp1);
   }  
   
    void ack(void)          //  发送连续读信号
 {
     TRISD0=0;
     TRISD1=0;
     SDA=0;
     SCL=0;
     SCL=1;
    asm("nop");
    asm("nop");
    asm("nop");
    asm("nop");
    asm("nop");
     SCL=0;
 }
     
   void nack(void)        //  发送不连续读信号
   {
     TRISD0=0;
     TRISD1=0;
     SDA=1;
     SCL=0;
     SCL=1;
     asm("nop");
     asm("nop");
     asm("nop");
     asm("nop");
     asm("nop");
     SCL=0;
   }  
   
    void wrtoIIC(uch data)     //写器件地址和配置字
 
   {
 
     
      start();               //开始写
      sendBYTE(0x90);         //写器件地址(写)
          
      do{
           ;
         }while(check());       //等待应答
          sendBYTE(data);      //写配置字
     do{;
         }while(check());
         
      stop();            //结束写
     
     
      
 }     
 
    void rdfromIIC(void)       //从ADS1100中读出数据
 {  
 
   
      start();                  //开始读
      sendBYTE(0x91);           //写器件地址(读)
       do{
          ;
          }while(check());      //等待应答
       
      
       TMR1H=reciveBYTE();     // 读高8位
        ack();                  //连续读
       TMR1L=reciveBYTE();     //读低8位
       ack();                  //连续读
       TMR2=reciveBYTE();      //读配置字
       nack();
       stop();                  //结束读
   //    delay();
    
 }
      
 
 main()
 {
    
 
    
    while(1)
     {
      di();
      wrtoIIC( 0x8c);
      rdfromIIC();
   
     }
 }  
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67