当前位置:首页 > 单片机 > 单片机
[导读]1.引言INTERSIL公司推出的ISL1208是一种I2C接口、低成本、低功耗实时时钟,它带有定时与晶体补偿、时钟/日历、电源失效指示器、周期或轮询报警、智能后备电池切换和后备电池供电的SRAM等功能。振荡器采用外部低成本3

1.引言

INTERSIL公司推出的ISL1208是一种I2C接口、低成本、低功耗实时时钟,它带有定时与晶体补偿、时钟/日历、电源失效指示器、周期或轮询报警、智能后备电池切换和后备电池供电的SRAM等功能。振荡器采用外部低成本32.768KHz晶振,日历可精确到2099 年,闰年自动修正。其强大的报警功能,可被设置成任意时间点报警或固定频率输出。若采用3.0V/3.6V锂电池供电,供电电流仅为400nA,最多可持续供电长达10年。另外,后备电源输入引脚Vbat还允许断电时使用大容量后备电容供电以保证正常工作几个月左右。

2. ISL1208简介

ISL1208引脚如图1所示:

其中:引脚X1、X2接外部晶振输入端,可直接以32. 768kHz的晶体源驱动;Vbat接后备电源/电容,该引脚不用时接地;SDA为串行数据输入输出端;SCL为串行时钟输入端;IRQ/Fout为中断 /频率输出端,可用作中断/频率输出;Vdd和GND为电源和接地端。

3. ISL1208内部结构及其工作原理

ISL1208内部结构框图如图2。由图可知,ISL1208主要包括:I2C接口控制单元、实时时钟控制逻辑、时钟分频器、电源管理单元和寄存器单元。其中寄存器单元被分成四段:实时时钟、控制与状态、报警寄存器和用户SRAM;这四段寄存器各自含有不同的功能:实时时钟和报警寄存器用于写入/读出时间值和报警值,其写入形式为BCD码;控制与状态寄存器可完成对其他寄存器读写控制、报警与频率输出控制、模拟与数字微调控制等功能,其存储映射图如表1。

控制与状态寄存器(Control and Status)

控制与状态寄存器包括状态寄存器、中断与报警寄存器、模拟微调与数字微调寄存器。

状态寄存器(SR):用来控制RTC失效、电池模式、报警触发、时钟计数器写保护、晶体振荡器使能以及状态位的自动复位或者提供相应的状态信息。在时钟上电时,需将写RTC使能位WRTC置“1”,以便启动时钟计数。

中断控制寄存器(INT):主要用于控制时钟的周期性和单事件报警。其中频率输出控制位FO3-FO0使能/禁止频率输出功能,并选择IRQ/FOUT引脚的输出频率(2-5Hz-215Hz)。在频率模式被激活时它将覆盖IRQ/FOUT引脚上的报警模式。报警使能位ALME使能/禁止报警功能,中断/报警模式位IM使能单周期定时事件(IM=0)/周期定时事件(IM=1)。

模拟微调寄存器(ATR):ATR0至ATR5为六位模拟微调位,可调整片内负载电容(CX1、CX2)的值,这一电容值用于RTC的频率补偿,其每一位都有不同的电容调节比重。有效的片内串联负载电容CLOAD 的范围从4.5pF至20.25pF,中间值为12.5pF(默认)。CLOAD可通过X1/X2引脚之间两个数字控制电容器CX1和CX2调节。

数字微调寄存器(DTR):数字微调位DTR0、DTR1和DTR2用来调整每秒钟的平均计数值和平均误差以获取更好的精度。其中DTR2为符号位(DTR2=0频率补偿>0,DTR2=1频率补偿<0),DTR1和DTR0为刻度位:DTR1提供40ppm 调整,DTR0提供20ppm调整。用以上三位可以表示-60ppm至+60ppm的补偿范围。

4. 应用举例

4.1 硬件结构

ISL1208具有I2C接口,使其便于与各类处理器连接且硬件结构十分简单,传输速率最高可达400Hz。硬件结构如图 3。其中时钟输入口SCL、数据输入输出口SDA分别与AT89C51的P1.6、P1.7腿相连,中断输出口IRQ/Fout接外部中断INT0。 AT89C51通过RS232口与计算机相连,通过计算机对实时时钟产生控制。Vbat引脚接后备电容器。

4.2 软件设计

由于ISL1208为I2C接口,因此其接口协议也满足I2C规范,这里不再累述。需要提到一点是:在每次访问寄存器时,应先输入一个有效的辨识字节。该字节高7位(1101111)为器件辨识符。辨识字节的最后一位定义进行读/写操作,当其为“1”时选择读,为“0”时选择写。图4为ISL1208读/写时序图。

对于ISL1208来说,由于其内部结构设计,可以很容易的实现2nHz中断输出和每分、每天至每年一次报警,但要求具体几分钟、几小时报警一次还需在程序的编制上要比较注意。以下程序为通过计算机、单片机来控制ISL1208每5秒钟产生一次中断程序,上位机程序由MATLAB编写[4],单片机程序由C语言编写,由于篇幅有限仅列出部分单片机程序:

 
#include <reg51.h>
 #define  ISLwr   0xde  /*写辨识字节*/
 #define  ISLrd   0xdf  /*读辨识字节*/
/*--------ISL1208管脚配置---------*/
 sbit ISLSCL=P1^6;               /*时钟*/
 sbit ISLSDA=P1^7;              /*数据*/
void  sdelay();                  /*短延时*/
 void  ISLstart();                 /*I2C起始位*/
 void  ISLstop();                 /*I2C停止位*/
 void  GetACK();             /*主机等待应答(GACK)*/
 void  OutACK();             /*主机应答(OACK)*/
/*--------读/写ISL1208函数--------*/
 unsigned char  readISL1208();  
 void  writeISL1208(unsigned char datas);
/*-----------读/写寄存器-------------*/
 void  writeREG(unsigned char adds,unsigned char datas);
 unsigned char  readREG(unsigned char adds);
 bit  flag=0;                /*启动时钟报警标志位*/
 unsigned char alarm=0;               /*报警时间参数*/
 main()
{    ………………..     /*初始化*/
      for(;;)           /*等待上位机发送命令*/
    {  if(flag = =1)
         break;   }
/*写状态寄存器,写RTC使能,报警自动复位*/
  writeREG(0x07,0x90);
/*写中断寄存器,单事件报警,中断使能*/
    writeREG(0x08,0x60);
/*写报警寄存器,报警使能*/
    writeREG(0x0c,0x81);
/*写时钟寄存器,启动RTC*/
    writeREG(0x00,0x00);
for(;;);           /*等待*/        }
void writeREG(unsigned char adds,unsigned char datas)
{    ISLstart();
    writeISL1208(ISLwr);
    GetACK();
    writeISL1208(adds);                /*写地址*/
    GetACK();
    writeISL1208(datas);        /*写命令/数据*/
    GetACK();
    ISLstop();         }
 unsigned char  readREG(unsigned char adds)
{   unsigned char reg;
    ISLstart();
    writeISL1208(ISLwr);
    GetACK();
    writeISL1208(adds);            /*写地址*/
    GetACK();
    ISLstart();
    writeISL1208(ISLrd);
    GetACK();
    reg=readISL1208();         /*读就寄存器值*/
    OutACK();
    ISLstop();
    return (reg);             }
 unsigned char  readISL1208()
{   unsigned char i,k=0;
    ISLSDA=1;
    for(i=0;i<8;i++)
    {   ISLSCL=1;
        k=k*2;
        if(ISLSDA==1)
            k=k+1;
        ISLSCL=0;   }
     return (k);              }
 void  writeISL1208(unsigned char datas)
{   unsigned char data i;
    ISLSCL=0;
    for(i=0;i<8;i++)
    {   ISLSDA=(bit)(datas&0x80);
        datas=datas<<1;
        sdelay();
        ISLSCL=1;
        sdelay();
        ISLSCL=0;    }      }
 void int0() interrupt 0 using 1       /*外部中断0处理函数*/
{   unsigned char temp=0,reg;
/*单报警模式,5秒/次报警时间算法*/
    alarm=(alarm+5)%60;
    temp=alarm/10;
    temp<<=4;
    temp=(temp+alarm%10)|0x80;
/*读状态寄存器清除报警标志*/
    reg=readREG(0x07);
/*写报警寄存器,确定下次报警时间*/
    writeREG(0x0c,temp);

 
    }

4.3 后背电容器的使用

具体电路结构如图3。电容器的大小通过计算得出:若后背电容供电时间为两个月且Vcc=5.0V,Vbat电压从4.7V下降到1.8V(时钟最低工作电压)。假定二极管漏电流ILKG很小并可忽略。则电容充电/放电方程为:IBAT=CBAT*dV/dT,整理后得后备供电时间:dT=CBAT*dV/ IBAT。由于IBAT随VBAT基本上呈线性变化,这样IBAT可近似取两点之间的平均值。IBAT与VBAT之间的典型线性关系方程式为:IBAT=1.031E-7* VBAT +1.036E-7  A

若已给出两点电压,则平均电流IBATAVG=5.155E-8*(VBAT2+VBAT1)+1.036E-7   A

结合以上方程整理后得后备供电时间TBACKUP=CBAT*(VBAT2 -VBAT1)/IBATAVG      s

将上述方程改写为:CBAT=TBACKUP* IBATAVG /(VBAT2 -VBAT1)

其中:TBACKUP=60天*86400秒/天=5.18E6 s,IBATAVG=4.387E -7 A,VBAT2=4.7V,VBAT1=1.8V.则CBAT=5.18E6* 4.387E-7 / 2.9 =0.784 F,如果要包括30%的容度,则最坏情况下的电容值应为CBAT=1.3*0.784=1.02 F.

5. 小结

ISL1208是一种小巧(SOIC封装)、低功耗、低成本的实时时钟芯片,集时钟、日历、RAM、电源故障检测、报警功能由于一身,硬件结构简单、编成简便、精度高,在多功能电表、HVAC设备、音频/视频元件、寻呼机/PDA、家用电器及其它工业/医疗/汽车电子产品中都有十分广泛的应用前景。

参考文献

1. INTERSIL I2C Real Time Clock/Calendar ISL1208 Data Sheet. October 29,2004.

2.徐爱钧,彭秀华. 单片机高级语言C51应用程序设计. 电子工业出版社,1998年6月.

3.张道明,郝继飞. 基于MATLAB的MCU串行通信. 信息技术与信息化,2004(5).
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭