精华内容
下载资源
问答
  • WANPLL时钟芯片

    千次阅读 2010-12-07 18:23:00
    Ps: 记录WANPLL广域网锁相环 时钟芯片一些知识   WANPLL时钟芯片 <br /> 时钟同步和时钟分配的设计在电信产品设计中一向居于核心地位。时钟设计的优劣,往往关系到产品的能否正常开通业务、...

    Ps: 记录WANPLL广域网锁相环 时钟芯片一些知识

     

    WANPLL时钟芯片

      时钟同步和时钟分配的设计在电信产品设计中一向居于核心地位。时钟设计的优劣,往往关系到产品的能否正常开通业务、能否连结极低的误码率等,也关系到产品自己所体现的设计水准和产品的市场竞争力。

      在电信产品中,差别类另外产品所需要的时钟种类很多。下面列举一些典型应用的时钟(表1)。

      设计孕育发生上述时钟源的时钟板卡时,设计工程师往往要动用大量的元件, 包括FPGA, AD/DA转换,模仿锁相环, 鉴相器,VCXO/OCXO等。 而且每一种详细应用电路都单独设计,直接增加管理多个时钟板卡的开销。 图1就是一个系统时钟板卡的例子。

      在图1所示的电路中, 主时钟从OCXO输出, 其他每个相关时钟都由一个单独的锁相环路,经过VCXO输出。 从这个典型方案我们可以看到,传统时钟板设计非常复杂,涉及模仿和高频布线问题,输出指标对电源干扰和噪声敏感问题,输出抖动指标欠好等问题。生产过程中PCB面积大,元器件多,采购维护困难,本钱居高不下等等, 有诸多倒霉因素阻碍设计和应用。

      IDT公司最新推出的WANPLL时钟芯片系列能很好地解决了时钟设计的这些问题。这个系列的时钟芯片支持锁定, 自由振荡,连结等功能,最高支持达2级钟。该系列时钟芯片涵盖了表1所列出的所有时钟频率。 用同一芯片可以容易完成上述SONET/SDH、3G/CDMA2000、GSM、PDH、BITS等应用的要求。

      以图1的方案所实现的功能作为对照,使用IDT的WANPLL时钟芯片实现的电路方案如图2。

      可以看出这个方案非常简洁,输出时钟频率等完全可通过软件设置,能适应大多数通信产品的应用。

      IDT的WANPLL芯片为确保时钟宁静, 支持主从模式, 提供专用信号线, 从而很方便地设计主/从结构时钟源。图3示出一个主从结构的时钟。

      这个例子示出IDT的WANPLL系列时钟芯片能容易构造通信系统的绝大多数时钟应用。其范围从四级钟、三级钟直到二级钟,特别适用于构造3G的NodeB、RNC,SONET/SDH 的622、2.5G, 媒体网关,GSM应用等。

      Super JET收发器、ULIU线路接口芯片

      IDT J1/E1/T1收发器芯片系列包括4款芯片,分别提供单片集成的8/4/2/1路线路接口单元和成帧器。其中单芯片8通道密度是业界首个高密度收发器芯片。由于接纳0.18mm的技术, 从低功耗到高密度都比传统产品有很大的改进。

      ULIU线路接口芯片系列包括4款芯片,分别提供单片集成的8/4/2/1路线路接口单元。

      这些芯片具有十分优秀的性能,能很好地适应厂家对产品、维护和市场的要求。这些性能主要归纳为以下三项。

      %26middot;软件匹配功能

      拥有按通道用软件设置E1/J1/T1的功能。这种功能包管只需设计单一硬件平台,就能根据国际市场的差别需要灵活选择制式。

      拥有按通道用软件进行阻抗匹配和线路建立功能。这种功能可以根据安顿现场实施时的需求用软件灵活配置,例如用软件选择120欧姆/75欧姆的接口阻抗。

      拥有按通道可编程传输脉冲成形功能,这种功能可进行差别线路条件下的脉冲屏蔽优化。

      这些功能的重要性在于它有助于客户根据差别变革的市场情况和应用进行通信设备的调整。

      %26middot;通道错误计数器功能

      所有IDT的收发器和 ULIU都具有通道错误计数器,紧密跟踪并记录双极性例外、过多的零和PRBS/QRSS模式错误等。计数器的容量应在误差率低于10-2时进行一秒钟检测不出现饱和。在高密度应用领域,集成错误计数器为FPGA和ASIC中节省可贵的引脚和寄存器资源。

      安顿和测试由8个内置PRBS/QRSS模式发生器完成,并配有内部回路设备、模式生成器、错误计数器和远程诊断等功能。这样一来,即便没有任何现场设备也能进行离线性能检测。

      %26middot;方便工程师的设计考虑

      在8/4/2/1路芯片系列中, 所有的寄存器的定义是一致的, 软件工程师只需要对一种芯片设计软件, 就很容易移植到对全系列的芯片的软件应用中。 硬件工程师则发现IDT的芯片在背板接口方面, J1/E1/T1是统一的,这极大地简化了设计。

    该系列还支持没有延迟的立即掩护切换1+1冗余,并具有符合ITU标准服务中的G.772监测功能。

      IDT收发器/ULIU系列产品都支持或凌驾现行的网络规范,包括ANSI(T1.102, T1.403,T1.408)、 ITU (I.431, CRT12/13, G.703, G.736, G.775, G.823)、ETSI (300-166, 300-233)和AT%26amp;T (Pub 62411)。

      具有高接收敏捷度, 在772KHz凌驾-36dB, 1024KHz凌驾-43dB, 这十分有利于设计长距离应用。

      Super JET收发器、ULIU线路接口芯片集众多优点于一身, 使得他们在通信产品中得到大量的应用。例如在3G的RNC和NodeB中, 需要IMA通过高密度的收发器传送ATM信元。普通低密度器件则很难做到容量和面积的兼顾。

     

     

                         Karen

    展开全文
  • 时钟芯片DS1302的原理及使用

    万次阅读 多人点赞 2019-12-14 23:26:12
    DS1302时钟芯片是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302芯片包含一个用于存储实时时钟/日历的 31 字节...
    一.描述

    DS1302时钟芯片是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302芯片包含一个用于存储实时时钟/日历的 31 字节的静态 RAM,可通过简单的串行接口与微处理器通讯,将当前的是时钟存于RAM。DS1302芯片对于少于 31 天的月份月末会自动调整,并会自动对闰年进行校正。由于有一个 AM/PM 指示器,时钟可以工作在 12 小时制或者 24小时制。

    二.芯片参数
    1.芯片特点
    • 实时时钟计算年、月、日、时、分、秒、星 期,直到 2100 年,并有闰年调节功能
    • 31 x 8 位 通用暂存 RAM
    • 串行输入输出,使管脚数最少
    • 2.0V 至 5.5V 宽电压范围操作
    • 在 2.0V 时工作电流小于 300nA
    • 读写时钟或 RAM 数据时有单字节或多字节(脉冲串模式)数据传送方式
    • 8 管脚 DIP 封装或可选的 8 管脚表面安装 SO 封装
    • 简单的 3 线接口
    • 与 TTL 兼容 (VCC = 5V)
    • 可选的工业温度范围:-40°C to +85°C
    2.引脚说明

    在这里插入图片描述
    DS1302采用的是三线接口的双向数据通信接口,RST是片引脚,低电平有效;SCLK是时钟芯片,为通信提供时钟源;I/O为数据输入输出引脚,用于传输及接收数据;
    DS1302还采用了双电源供电模式,VCC1 连接到备用电源,在VCC2主电源失效时保持时间和日期数据.

    三.参考电路

    在这里插入图片描述
    DS1302芯片基本电路如上图,其中Y2为32.768k外部晶振,为芯片提供时钟源;P2为备用电池,以保证在主电源掉电后,芯片仍可继续运行;D1为二极管,保证电压的单向导通,防止主电源电压过高烧坏备用电池;R6为上拉电阻,增强信号传输的稳定性。

    四.控制程序
    1.时钟数据的读写地址

    在这里插入图片描述
    如上图,为DS1302芯片的时钟数据的读和写的地址,也就是说要实现对芯片控制,就是往这些地址上写入或读出数据。其中:
    读地址为0x81(秒), 0x83(分), 0x85(时), 0x87(日), 0x89(月), 0x8b(星期), 0x8d(年);
    写地址为0x80(秒), 0x82(分), 0x84(时), 0x86(日), 0x88(月), 0x8a(星期), 0x8c(年)

    2.控制时序

    DS1302控制软件最基本的操作为写函数和读函数,其次就是实现初始化函数。

    (1)读时序

    在这里插入图片描述

    /*******************************************************************************
    * 函数功能		   : 读取一个地址的数据
    *******************************************************************************/
    uchar Ds1302Read(uchar addr)
    {
    	uchar n,dat,dat1;
    	RST = 0;
    	_nop_();
    
    	SCLK = 0;//先将SCLK置低电平。
    	_nop_();
    	RST = 1;//然后将RST(CE)置高电平。
    	_nop_();
    
    	for(n=0; n<8; n++)//开始传送八位地址命令
    	{
    		DSIO = addr & 0x01;//数据从低位开始传送
    		addr >>= 1;
    		SCLK = 1;//数据在上升沿时,DS1302读取数据
    		_nop_();
    		SCLK = 0;//DS1302下降沿时,放置数据
    		_nop_();
    	}
    	_nop_();
    	for(n=0; n<8; n++)//读取8位数据
    	{
    		dat1 = DSIO;//从最低位开始接收
    		dat = (dat>>1) | (dat1<<7);
    		SCLK = 1;
    		_nop_();
    		SCLK = 0;//DS1302下降沿时,放置数据
    		_nop_();
    	}
    
    	RST = 0;
    	_nop_();	//以下为DS1302复位的稳定时间,必须的。
    	SCLK = 1;
    	_nop_();
    	DSIO = 0;
    	_nop_();
    	DSIO = 1;
    	_nop_();
    	return dat;	
    }
    
    (2)写时序

    在这里插入图片描述

    /*******************************************************************************
    * 函数功能		   : 向DS1302命令(地址+数据)
    *******************************************************************************/
    void Ds1302Write(uchar addr, uchar dat)
    {
    	uchar n;
    	RST = 0;
    	_nop_();
    	SCLK = 0;//先将SCLK置低电平。
    	_nop_();
    	RST = 1; //然后将RST(CE)置高电平。
    	_nop_();
    
    	for (n=0; n<8; n++)//开始传送八位地址命令
    	{
    		DSIO = addr & 0x01;//数据从低位开始传送
    		addr >>= 1;
    		SCLK = 1;//数据在上升沿时,DS1302读取数据
    		_nop_();
    		SCLK = 0;
    		_nop_();
    	}
    	for (n=0; n<8; n++)//写入8位数据
    	{
    		DSIO = dat & 0x01;
    		dat >>= 1;
    		SCLK = 1;//数据在上升沿时,DS1302读取数据
    		_nop_();
    		SCLK = 0;
    		_nop_();	
    	}	
    		 
    	RST = 0;//传送数据结束
    	_nop_();
    }
    
    (3)初始化
    /*******************************************************************************
    * 函数功能		   : 初始化DS1302.
    *******************************************************************************/
    void Ds1302Init()
    {
    	uchar n;
    	Ds1302Write(0x8E,0X00);		 //禁止写保护,就是关闭写保护功能
    	for (n=0; n<7; n++)//写入7个字节的时钟信号:分秒时日月周年
    	{
    		Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);	
    	}
    	Ds1302Write(0x8E,0x80);		 //打开写保护功能
    }
    
    3.参考例程

    实现了DS1302的驱动程序,接下来就可以实现DS1302的报时功能了。

    //---DS1302写入和读取时分秒的地址命令---//
    //---秒分时日月周年 最低位读写位;-------//
    uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; 
    uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
    
    //---DS1302时钟初始化2013年1月1日星期二12点00分00秒。---//
    //---存储顺序是秒分时日月周年,存储格式是用BCD码---//
    uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13};
    
    /*******************************************************************************
    * 函数功能		   : 读取时钟信息
    *******************************************************************************/
    void Ds1302ReadTime()
    {
    	uchar n;
    	for (n=0; n<7; n++)//读取7个字节的时钟信号:分秒时日月周年
    	{
    		TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);
    	}	
    }
    
    void main()
    {
    	LcdInit();
    	Ds1302Init();
    	while(1)
    	{	
    		Ds1302ReadTime();       //读取此时的时间
    		LcdDisplay();	               //显示时间
    	}
    	
    }
    

    如需DS1302相关资料及例程, 请关注公众号,首页回复DS1302获取资料
    在这里插入图片描述

    展开全文
  • STM32与DS1302设计时钟芯片,超详细

    万次阅读 多人点赞 2017-12-19 16:08:51
    DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数...

    DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES 复位(2)I/O 数据线(3)SCLK串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW

    DS1302 是由DS1202 改进而来增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1 为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。将主要的性能指标作一综合:
    ★ 实时时钟具有能计算2100 年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力
    ★ 31 8 位暂存数据存储RAM
    ★ 串行 I/O 口方式使得管脚数量最少
    ★ 宽范围工作电压2.0 5.5V
    ★ 工作电流 2.0V 时,小于300nA
    ★ 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式
    ★ 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配
    ★ 简单 3 线接口
    ★ 与 TTL 兼容Vcc=5V
    ★ 可选工业级温度范围-40 +85
    ★ 双电源管用于主电源和备份电源供应
    以上是DS1302的一些全面的预览,以下为DS1302管脚图:

     


    VCC2:主用电源引脚
    X1、X2:DS1302外部晶振引脚
    GND:地
    RST:复位引脚
    I/O:串行数据引脚,数据输出或者输入都从这个引脚
    SCLK:串行时钟引脚
    VCC1:备用电源
    我们来看看DS1302的典型外围电路,下面是CEPARK AVR的DS1302模块原理图:

     


    我们看到:
    1、 VCC为主电源接5V,C1为滤波电容
    2、 X1、X2外接32.768K的晶振
    3、 5、6、7脚分别与控制器相联,注意外部4.7K上拉电阻
    4、 备用电源脚,注意是3.3V,DS1302要求备用电源电压稍微低于主用电源
    下面讲讲DS1302的具体操作。
    操作DS1302的大致过程,就是将各种数据写入DS1302的寄存器,以设置它当前的时间已经格式。然后使DS1302开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出。再用液晶显示,就是我们常说的简易电子钟。
    所以总的来说DS1302的操作分2步(显示部分属于液晶显示的内容,不属于DS1302本身的内容)但是在讲述操作时序之前,我们要先看看寄存器:

     


    上图是DS1302的寄存器样式,我们看到:
    1、 第7位永远都是1
    2、 第6位,1表示RAM,寻址内部存储器地址;0表示CK,寻址内部寄存器;
    第5到第1位,为RAM或者寄存器的地址;最低位,高电平表示RD:即下一步操作将要“读”;低电平表示W:即下一步操作将要“写”。(与AT24C02寄存器类似,这点要理解好)。下面是DS1302的内部寄存器和RAM:

     


    上图左边为寄存器和RAM的地址,右边为具体内容。各个寄存器的最高位都是1,最低位都是“RD/W”,比如要读秒寄存器则命令为1000 0101,反之写为1000 0100,要注意其含义。(图片不是很清楚,看不清楚的朋友用软件放大)我们一个一个看:
    SEC:秒寄存器,注意具体右边内容:低四位为SEC,高的次三位为10SEC。最高位CH为DS1302的运行标志,当CH=0时,DS1302内部时钟运行,反之CH=1时停止;
    MIN:分寄存器;
    HR:时寄存器,最高位为12/24小时的格式选择位,该位为1时表示12小时格式。当设置为12小时显示格式时,第5位的高电平表示下午(PM);而当设置为24小时格式时,第5位位具体的时间数据。
    DATE:日寄存器;
    MONTH:月寄存器;
    DAY:周寄存器,注意一周只有7天,所以该寄存器只有低三位有效;
    YEAR:年寄存器;
    CONTROL:写保护寄存器,当该寄存器最高位WP为1时,DS1302只读不写,所以要在往DS1302写数据之前确保WP为0;
    TRICKLE CHARGE REGISTER:涓细电流充电设置寄存器,我们知道,当DS1302掉电时,可以马上调用外部电源保护时间数据。该寄存器就是配置备用电源的充电选项的。其中高四位(4个TCS)只有在1010的情况下才能使用充电选项;低四位的情况,与DS1302内部电路有关,有点意思,下文详细讲述。
    CLOCK BURST:批量读写操作设置寄存器,设置该寄存器后,可以对DS1302的各个寄存器进行连续写入。DS1302的另外一种读写方式。笔者还没用过,感兴趣的朋友可以尝试。
    最后还有一点,前文说过,DS1302有31个字节的存储空间,但是大家要看到的是,这31个存储空间,最后一个是RAM BURST的寄存器,设置该寄存器可以达到对RAM连续读写的作用。所以DS1302的可用存储空间实际上为30个字节。
    现在我们来看看DS1302的涓细电流充电的设置:
    以下来自英文原版PDF:
    The trickle charge select (TCS) bits (bits4 -7) control the selection of the trickle charger. In order to prevent accidental enabling, only a pattern of 1010 will enable the trickle charger. All other patterns will disable the trickle charger. The DS1302 powers up with the trickle charger disabled. The diode select (DS) bits (bits 2 – 3)select whether onediode or two diodes are connected between VCC2 and VCC1.If DS is 01, one diode is selected or if DS is10, two diodes are selected. If DS is 00 or 11, the trickle charger is disabled independently of TCS. TheRS bits (bits 0 -1) select the resistor that is connected between VCC2 and VCC1. The resistor selected by the resistor select (RS) bits is as follows:

     


    好,英文水平不好也没关系:
    看到这句“The trickle charge select (TCS) bits (bits4 -7) control the selection of the trickle charger. In order to prevent accidental enabling, only a pattern of 1010 will enable the trickle charger”,这句话是说“TCS为用以控制涓细电流充电功能,为了防止意外产生,只当TCS位(四位)为1010时涓细电流充电功能才会生效”所以刚才提到“其中高四位(4个TCS)只有在1010的情况下才能使用充电选项”。
    那DS呢?“If DS is 01, one diode is selected or if DS is10, two diodes are selected. If DS is 00 or 11, the trickle charger is disabled independently of TCS”,既是说,如果两个DS位为01,则只有1个二极管接入电路,如果DS为10则表示有2个二极管接入,如果DS为00或者11,则充电功能由TCS单独控制”。看到上部电路三个二极管处,DS为01时接入1个二极管,对应上面的开关闭合,为10时表示2个二极管接入,对应下面的开关闭合为00或者11时笔者认为两个开关都不闭合,充电电流不经过二极管。


    对应的,RS的设置也相仿:“The RS bits (bits 0 -1) select the resistor that is connected between VCC2 and VCC1. The resistor selected by the resistor select (RS) bits is as follows: 
    意思是:RS位用以选择在VCC1和VCC2直接接入什么样的电阻:
    当RS为00时,不接入电阻;
    当RS为01时,接入典型值为2K电阻,对应电路图中的R1;
    当RS为10时,接入典型值为4K电阻,对应电路图中的R2;
    当RS为11时,接入典型值为8K电阻,对应电路图中的R3;
    好了,至此我们知道了,DS和RS的作用是配置接入电路中的二极管和电阻,有什么用呢?
    笔者认为这些二极管和电阻是分压和限流用的,以调整涓细充电电流的大小。
    我们可以看看DS1302的读写时序了:

     


    上图就是DS1302的三个时序:复位时序,单字节写时序,单字节读时序;
    RST:复位时序,即在RST引脚产生一个正脉冲,在整个读写器件,RST要保持高电平,一次字节读写完毕之后,要注意把RST返回低电平准备下次读写周期;
    SINGLE BYTE READ:单字节读,注意读之前还是要先对寄存器写命令,从最低位开始写;大家细心看可以看到,写数据是在SCLK的上升沿实现,而读数据在SCLK的下降沿实现,所以,在单字节读时序中,写命令的第八个上升沿结束后紧接着的第八个下降沿就将要读寄存器的第一位数据读到数据线上了!这个就是DS1302操作中最特别的地方。当然读出来的数据也是最低位开始。
    SINGLE BUTE WRITE:单字节写,两个字节的数据配合16个上升沿将数据写入即可。

    解析内容:

     DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。 

    1.DS1302的寄存器和控制命令 

    对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等,如表3-79、表3-80所列。时钟突发寄存器可一次性顺序读/写除充电寄存器以外的寄存器。

    表3-79 日历时钟相关寄

    寄存器名

    命令字节

    范围

    位内容

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    80H

    81H

    00~59

    CH

    秒的十位

    秒的个位

    82H

    83H

    00~59

    0

    分的十位

    分的个位

    84H

    85H

    01~12或00~23

    12/24

    0

    1/P

    HR

    小时个位

    86H

    87H

    01~31

    0

    0

    日的十位

    日的个位

    88H

    89H

    01~12

    0

    0

    0

    0/1

    月的个位

    星期

    8AH

    8BH

    01~07

    0

    0

    0

    0

    0

    星期几

    8CH

    8DH

    00~99

    年的十位

    年的个位

        注意:

        ①秒寄存器的CH位:

        置1,时钟停振,进入低功耗态;

       置0,时钟工作。

     

       ②小时寄存器的D7位:

       置1,12小时制(D5置1表示上午,置0表示下午);

       置0,24小时制(此时D5、D4组成小时的十位)。

    表3-80其它寄存器及RAM

    寄存器名

    命令字节

    范围

    位内容

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    写保护

    8EH

    8FH

    00H~80H

    WP

     

    涓流充电

    90H

    91H

    -

    TCS

    DS

    RS

    时钟突发

    8EH

    BFH

    -

    -

    RAM突发

    BEH

    FFH

    -

    -

    RAMO

    C0H

    C1H

    00H~FFH

    RAM数据

    00H~FFH

    RAM30

    FCH

    FDH

    00H~FFH

        注意:

        ①WP:写保护位。置为1时,写保护;置为0时,未写保护。

        ②TCS:1010时慢充电。DS为01,选1个二极管;为10,选2个二极管;11或00,禁止充电。

        ③RS:与二极管串联电阻选择。00,不充电;01,2KΩ电阻;10,4KΩ电阻;11,8KΩ电阻。

    2.DS1302内部主要寄存器分布表 

        DS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM,此方式下可一次性读/写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 

        我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行方式与DS1302通信的,每次通信都必须由单片机发起。无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表3-77所列,最高位BIT7固定为1。BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。

    表3-81 命令帧格式

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    1

    R/C

    A4

    A3

    A2

    A1

    A0

    R/W

        D7位: 固定为1 ;

        R/C位: 为0时选择操作时钟,为1时选择操作RAM;

        A4A3A2A1A0: 操作地址; 

        R/W位: 为0时进行写操作,为1时进行读操作。 

        物理上,DS1302的通信接口由3个口线组成,即RST,SCLK,I/O。其中RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。请注意数据是对时钟信号敏感的,而且一般数据是在下降沿写入,上升沿读出。本次使用51单片机的I/O模拟协议实现通信。平时SCLK保持低电平。当需要写命令或者写数据时,在时钟输出变为高电平之前先输出数据;当需要读数据时,在时钟输出变为高电平之前采样读取数据。

    图3-123 读写操作时序

    程序工程,已测试,放心使用

    源码传送门:https://download.csdn.net/download/u013184273/10936204


    程序注意事项:
    ★要记得在操作DS1302之前关闭写保护;
    ★注意用延时来降低单片机的速度以配合器件时序
    ★DS1302读出来的数据是BCD码形式,要转换成我们习惯的10进制,转换方法在源程序里;
    ★读取字节之前,将IO设置为输入口,读取完之后,要将其改回输出口;
    ★在写程序的时候,建议实现开辟数组(内存空间)来集中放置DS1302的一系列数据,方便以后扩展键盘输入;
    希望能给有需要的朋友一点帮助

     

    很多初次用DS1302搞时钟的朋友都碰都过装好后时钟不走的问题,结合自己的实践,初步分析如下:
    不走时,既可能是软件的问题也可能是硬件的问题。
    一、硬件方面可能存在的问题
    1、电路焊接错误,有虚焊,接错线。
    2、DS1302是坏的,假的,这种可能性不是太大,我试过多种国产的芯片,完全不能用的是少数,但有些只是不稳定,误差大而已。
    3、这一条是最重要的,就是32.768K的晶振用的不对,DS1302要使用专用的晶振,即内部的电容是6P的。世面上有多种32.768K的晶振,但内部电容有12P、20P等,这些晶振用在DS1302上是不能起振的,我就为这个问题折腾过很长时间,代码检查无数遍,电路检查无数遍,DS1302换过多个,就是不走,最后仔细看DS1302的规格书,才发现要6P的晶振,化几毛钱换了个6P的(淘宝上有的是),立马走起来了。如果不走时,也可以试用手指按住电路板上晶振的两个焊点,有时就会走起来,那可以肯定是晶振问题了。
    二、软件问题
    1、有不少朋友的代码是从书上或网上下的,经过改编来用的,这里面要特别注意一个问题,就是各个函数里的延时函数,如有一个延时函数delay_ms(5); 要求延时5MS,但是原来的程序的使用条件是单片机用4M晶振,你移植后用在8M单片机环境中,那延时时间肯定不够了,这时DS1302就可能不走。这种情况也经常出现在LCD显示屏中,轻则出乱码,重则不显示,还有在红外遥控中也有这样的情况,插在代码中的延时时间不对,也会不能接收到遥控信号,所以提醒大家,在进行代码移植时,一定要注意晶振的大小,如和自己的晶振不同时,要尝试修改延时函数的延时时间。
    2、首次使用DS1302 时,要先按下面的步骤检查:先设置好分、秒,然后看显示的时间和自己设置的时间是否一致,如果一致,说明时序等没有问题,再看是否走时,不走时,用手按住晶振的焊点看有没有变化,或用万用表的交流毫伏档量晶振两脚,应有2V以上的读数,否则换6P的晶振。
    3、一定要开启时钟,DS1302的秒寄存器,在程序初始化时一定要有l类似write_ds 1302(0x80,0x00)的语句,其中0x80是秒寄存器的地址,0x00 是写入的数据,这个数据的最高位一定要是0,是0 才能开启时钟走时。

     

    展开全文
  • 时钟芯片RX8025T的电源设计

    万次阅读 2017-06-12 14:30:05
    EPSON的RX-8025T实时时钟芯片具有极低的功耗,内置高稳定度的32.768KHz的晶振,并自带温度补偿功能,通过相应的设置可以提高时钟精度。由于其强大的功能以及极简化的外围电路,得到电表厂商的青睐,成为了智能四表...

    转:http://www.sekorm.com/news/4392.html

    EPSON的RX-8025T实时时钟芯片具有极低的功耗,内置高稳定度的32.768KHz的晶振,并自带温度补偿功能,通过相应的设置可以提高时钟精度。由于其强大的功能以及极简化的外围电路,得到电表厂商的青睐,成为了智能四表领域应用比较广泛的一款时钟芯片。下面以“时钟在电池供电的情况下工作5年”为目标,结合笔者的项目谈一谈RX-8025T电源的设计经验。


    RX-8025T的电源方案一般如图1所示。时钟芯片供电采用二极管隔离,设计思路为节约时钟电池损耗,采取系统电源优先供电原则。设计时需要注意如下几点:

    1)两个二极管的压降不同

    从RX-8025T芯片的数据手册上我们可以看到,其工作电压范围比较宽:从2.2V到5.5V,这就使得我们可以在系统电源V3P3和电池供电VBAT_RTC(一般为3.6V)上使用具有正向压降的二极管,实际输入到时钟芯片的RTC在3V~3.3V之间。


    需要注意的是,电池的二极管V23和系统电源的二极管V20选型必须不一样(如图2所示),这是因为一般的锂电池电压为3.6V,而系统电压为3.3V,同样压降的二极管之后,电池电压依然是偏高的。这样一来,即使在外部电源供电时,时钟也会消耗电池的电量。如果系统电压线路上的二极管选用SS14降低0.2V左右,那么时钟电路上的二极管选择管压降较大的LL4148降低0.6V左右则可以很好的解决这个问题。当外部供电时,系统电源经过LDO转出的3.3V电压在经过SS14后得到大于电池经过LL4148后的电压,此时RX-8025T由主电源供电;外部停电后系统电源无电时,切换到锂电池供电状态。

    2)电池电源采用储能电容以防止电压滞后

    锂电池在业内主流的选择为1200mAh容量的锂亚硫酰氯电池,供电电压为3.66V,自身容量年损耗极小,可以忽略。即使电表一直不上电,以整体长时间待机的最大电流20μA计算,电池的供电时长也可以达到6.85年。


    但在实际应用中,笔者发现影响到时钟不能稳定工作五年以上的原因,往往并不是发生在电池供电的情况下,而主要是在外部电池长期供电后,切换到电池供电时发生的电压不足,其根本原因是电池钝化现象。


    当电表由系统电源供电时,锂电池相当于闲置开路,其内部会产生钝化膜,而切换到锂电池电池供电时,如果滞后的电压低于时钟芯片的工作电压,那么时钟芯片就会完全“失压”,系统时钟会恢复到初始时间,导致时钟工作异常。为了消除这种现象的影响,我们可以通过在时钟芯片的电源上增加储能电容,以消除这种影响,如图2所示。

    由于电压滞后的时间比较长,电解电容无法对时钟电池持续很长时间的供电,但是我们可以避免实际电网线路中的瞬间失压,一般在一分钟以内。从RX-8025T的数据手册上可以看到,最大功耗不超过6.5uA,我们按照平均5uA估算,当我们需要电解电容在V3P3跌落后继续供电60秒以上时,我们需要的容量为:

    C=I*t/(Uo-Umin)=5uA*60s/(3V-2.2V)=375uF


    我们知道电解电容在低温下会损失一部分的放电能力,不大于20%,那么按照80%容量估算,375uF/80%=468.75uF,我们选择的电解电容参数如图2中的C57所示,容值为470uF,耐压10V,电解电容必须要采用长寿命的。

    3)电池电压采样电路控制钝化生成

    在钝化膜生成之后,除了通过储能电容抵消影响之外,还可以使时钟芯片维持一个较小的电流放电,阻止钝化层过厚。通常这个任务由电池电压采样电路来完成:通过选择合适的电阻值,使电池放电电流控制在20uA左右,电池容量足够支撑6.85年,同时也不会使钝化膜过厚而出现电压滞后导致RX-8025T完全掉电现象。


    实测时钟芯片及电池内阻自放电的电流为8uA左右,那么我们需要控制的采样电阻阻值为3.6V/(20-8)uA=300k,最终我们得到的设计原理图如图3所示,其中R1+R2=300k。

    4)其他

    除了上述电源设计之外,实际上RX-8025T的I2C总线与CPU之间的接口电路设计也很重要,一旦设计不慎,会产生很大的电流消耗,导致时钟电池供电不足。


    首先在I2C总线上需要注意电压匹配。由于大部分MCU均支持3.3V供电,所以一般不需要转换。当系统电压为5V时,需要特别注意RX8025T的I2C总线电压要求。另外,若在I2C总线上有多个器件时,应注意软件设计,防止对RX8025T的误操作。 


    其次,在PCB layout的时候需要注意RX-8025T与MCU的I2C走线应该越短越好,并且远离高频、高电流的信号线。同时旁路电容也应该靠近RX-8025T的电源端,并增加地线敷铜的面积,以防止干扰的产生。


    最后,在生产制程方面,由于内置晶振的影响,对RX-8025T进行贴片时,炉温不宜随意设置,需要参考数据手册中的焊接温度虚线。手工焊接时,需要按照焊接晶振的加热温度和时间进行控制。


    综上所述,通过上述三种电路措施,以及软件、PCB、生产制程的控制,在常规环境下,完全可以使时钟芯片满足“且在不更换电池且电表断电的情况下,维持电表时钟正确工作的时间不少于5年。”

    展开全文
  • DS1302时钟芯片的使用

    千次阅读 2021-04-25 22:51:50
    DS1302时钟芯片的使用 带你写一个小时钟 DS1302地址字节 控制字节逻辑有效位必须是逻辑1,若为0,则数据就写不进去1302中。 位6如果是0,则表示存取日历时钟数据 位6如果是0,则表示存取RAM数据。 一到五位则为操作...
  • 基于Arduino的多功能数字时钟

    万次阅读 多人点赞 2017-05-08 22:07:57
    实现功能: 1. 显示时间、日期和星期 2. 断电保存时间 3. 通过按钮设置时间、日期 4. 整点响铃 5. 自定义闹钟 6. 显示温度 7. 自定义报警温度 8. 按键功能:按选择键进入设置时间功能;同时按 + - 键进入...
  • 时钟芯片AD9523-1数据手册阅读

    千次阅读 2019-02-22 16:31:28
    像我属于使用芯片配置编程的,前面很参数略过,只需注意关心的时钟频率范围。因此要有目的性的看,而不是通篇读。 我是对照着AD9523-1的英文数据手册看的。 芯片特点: 两级PLL 14个差分输出时钟 通过串行...
  • 事无巨细,时钟芯片DS1302

    千次阅读 2012-03-23 09:40:04
    第13/15原创:事无巨细,时钟芯片DS1302 原文地址:: http://bbs.eeworld.com.cn/thread-99612-1-1.html 事无巨细,时钟芯片DS1302 我们继续向CEPARK AVR的第一个终点跨进,今天是倒数第二个内容,时钟芯片DS...
  • 【51单片机】DS1302时钟芯片

    千次阅读 2020-09-25 10:29:33
    DS1302是一个时钟芯片,可以记录时间日历,包括年、月、日、时、分、秒、星期,并能自动计算闰年,很对时间敏感的设备都有该设备,该设备可以有主备两个电源输入,主电源用外接电源供电,备电源接电池,保证在断电...
  • 芯片时钟理解

    2020-03-26 15:02:04
    芯片有很多时钟名词。 fih fex fmx fxt fexs fsub fmain fclk 1.fclk 表示CPU和外设的时钟 2.fmain 主时钟,粗浅理解为高速度的时钟,外部的20M左右的晶振,和内部的高速晶振。 3.fhoco 就是内部的高速时钟...
  • 前言 小编在校工作室无聊,参加了篮桥杯中的51单片机,看到资料的时候,那个写法,都是大神写法,主要我是看不懂啊,幸好...(大神忽略这文章)给大家看一个截图:以上截图只是让你明白 时钟芯片只有三个引脚操作...
  • 15.3 实时时钟芯片DS1302介绍

    千次阅读 2016-07-08 06:30:24
    DS1302 是个实时时钟芯片,我们可以用单片机写入时间或者读取当前的时间数据,下面带着大家通过阅读这个芯片的数据手册来学习和掌握这个器件。 由于 IT 技术国际化比较强,因此数据手册绝大多数都是英文的,导致...
  • 高级时钟芯片DS12887的应用

    千次阅读 2008-01-21 15:46:00
    2007-12-24 13:15:21 时钟芯片的应用: RTC时钟在很系统中广泛的被应用,因为人们对于实时时钟要求越来越大,而很数据的记录需要提供数据对应的时间等信息。时钟芯片能在即使没有系统电源的情况下保持...
  • stm32操作时钟芯片ds1390

    千次阅读 2015-07-18 13:02:39
    某个时间码定时装置需要精准的时间,因此选择了DS1390作为时钟芯片,因为他支持毫秒级别的时间校准。 平台:STM32F103T8u6+DS1390 以下是其源程序: void SPI_init() { GPIO_InitTypeDef GPIO_InitStructure; ...
  • 嵌入式:基于51单片机的多功能时钟设计

    千次阅读 多人点赞 2019-12-21 17:18:15
    基于51单片机的时钟设计 此文章为某年某月某次单片机作业 首先:再keil上写下代码,用protues调试(不懂得百度搜索“keil与protues联机调试”) 这次没有使用38译码器,直接将数码管引脚全部放在单片机上 不说,...
  • 如何 通过用 74160芯片制作电子数字时钟。 可能的话, 带整点报时, 闹钟等功能!! 求 电路图?
  • 时钟芯片DS1302可靠起振的方法

    千次阅读 2012-03-21 18:07:55
     DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和...
  • 选择适合目标应用的正确时钟芯片

    千次阅读 2008-01-17 15:49:00
    2006-04-28 09:16:56 选择适合目标应用的正确时钟芯片作者:Gary Giust0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" onmousewheel="return ...
  • 项目实现功能: 使 用开发板板扩展时钟芯片 DS12C887 设计一个时钟, 要求如下: ( 1 ) 在 1602 液晶上显示年、月、日、星期、时、分、秒, 并且按秒实时更新显示。 ( 2 ) 具有闹铃设定及到时报警功能, 报警响起时...
  • STM32之时钟输出功能

    千次阅读 2018-12-31 12:44:28
    时候,我们想让ARM发出固定频率的脉冲,作为另一个芯片时钟时,有两个方法一个是定时器或者时钟输出功能,利用定时器输出会吃中断源并且不利于发出高频率脉冲,所以选择第二个方法对应时钟源的时钟,并且可以...
  • 24.模拟多时钟定时器

    千次阅读 2018-11-28 21:00:40
    上节实现了时钟定时器功能,但是系统的时钟定时器只有一个,电脑中有处需要用到定时器的功能,但是硬件只有一个。要实现个定时器的功能我们需要使用软件模拟硬件的功能。 目标 使用软件模拟时钟定时器的功能...
  • 前言: ...STM32L151C8T6 功能特点: (1)Flash:64k (2)RAM:10k (3)EEPROM:4k (4)USART:3 (5)SPI:2。 了解一个CPU,时钟也是非常重要的,如下图所示:    从图中可知:共有5 ...
  • 【STM32】系统时钟RCC详解(超详细,超全面)

    万次阅读 多人点赞 2019-08-08 15:42:35
    1什么是时钟 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,...为什么 STM32 要有时钟源呢? STM32本身十分复杂,外设非常 但我们实际使用的时候只会用到有...
  • 1. RT-Thread Studio ...RT-Thread主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率...
  • FPGA基础知识6(FPGA时钟系统及多时钟系统处理)

    万次阅读 多人点赞 2016-06-25 09:49:50
    需求说明:FPGA基本知识 内容 :第一部分 FPGA各个时钟说明  第二部分 FPGA时钟... 第三部分 异步时钟同步化及门控时钟 来自 :时间的诗 第一部分 FPGA各个时钟说明 来自:http://blog.chinaunix.net/uid-
  • 关于时钟

    千次阅读 2014-06-09 22:32:03
    关于时钟 无沦是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度...多时钟系统能够包括上述四种时钟类型的任意组合。
  • STM32之时钟

    千次阅读 2016-05-07 09:59:25
    STM32的时钟构成
  • AFIO时钟

    千次阅读 2017-12-15 15:24:23
    STM32芯片为了实现低功耗,设计了一个功能完善但是非常复杂的时钟系统。相比于普通的MCU配置好GPIO的寄存器既可以使用,STM32的GPIO在使用之前开需要开启外设时钟。而GPIO对应的各个外设均配置了时钟开关,为减少STM...
  • DS1302时钟

    千次阅读 2018-12-01 10:10:10
    STM32与DS1302设计时钟芯片,超详细 2017年12月19日 16:08:51 验精护士 阅读数:5510 DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行...
  • FPGA异步时序和多时钟模块

    千次阅读 2018-04-13 13:26:52
    虽然这样可以简化时序分析以及减少很多时钟域有关的问题,但是由于FPG**外各种系统限制,只使用一个时钟常常又不现实。FPGA时常需要在两个不同时钟频率系统之间交换数据,在系统之间通过I/O接口接收和发送数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,314
精华内容 18,125
关键字:

多功能时钟芯片