基于AVR单片机与串行时钟器件DS3231的应用设计

发布者:JoyfulHarmony最新更新时间:2013-10-11 来源: eefocus关键字:AVR单片机  串行时钟  DS3231 手机看文章 扫描二维码
随时随地手机看文章

1引言

由单片机构成的测控系统或智能显示屏经常需要用到实时日历或时钟信号。为节省CPU资源,本文介绍了串行时钟器件DS3231的应用及其与AVR单片机ATmega8的接口,该系统具有抗干扰能力强,计时准确且不随季节变化产生误差的特点。
2 DS3231的结构及工作原理
DS3231是低成本、高精度I2C实时时钟(RTC)器件,具有集成的温度补偿晶体振荡器(TCXO)。该器件包含电池输入端,断开主电源时仍可保持精确计时。集成的晶体振荡器可提高器件的长期精确度。DS3231的寄存器能保存秒、分、时、星期、日期、月、年和闹钟设置等信息。少于31天的月份,可自动调整月末日期,包括闰年补偿。时钟的工作格式为24小时或带AM/PM指示的12小时格式。DS3231提供两个可编程日历闹钟和一路可编程方波输出。地址与数据通过I2C双向串行总线传输。
2.1 DS3231的组成及工作原理
如图1所示,DS3231的主要组成部分有8个模块,划分为4个功能组:TCXO、电源控制、按钮复位和RTC。

2.1.1 32 kHz的TCXO
TCXO包括温度传感器、振荡器和控制逻辑。控制器读取片上温度传感器输出,使用查表法确定所需的电容,加上AGE寄存器的老化修正。然后设置电容选择寄存器。仅在温度变化或者用户启动的温度转换完成时,才加载包括AGE寄存器变化的新值。VCC初次上电时就会读取温度值,然后每隔64 s读取一次。
2.1.2 电源控制
电源控制功能由温度补偿电压基准(VPF)和监视VCC电平的比较器电路提供。当VCC高于VPF时,DS3231由VCC供电,当VCC低于VPF但高于VBAT时,DS3231由VCC供电;当VCC低于VPF并低于VBAT时,DS3231由VBAT供电。为保护电池,VBAT首次加到器件时振荡器并不启动,除非加载VCC,或者向器件写入一个有效的I2C地址。典型的振荡器启动时间在1 s以内。在VCC加电后或者有效的I2C地址写入后大约2 s,器件会测量一次温度,并使用计算的修正值校准振荡器。一旦振荡器运行,只要电源(VCC或者VBAT)有效就会一直保持工作状态。器件每隔64 s进行一次温度测量并校准振荡器频率。
2.1.3 按钮复位
DS3231具有连接至RST输出引脚的按钮开关功能。若DS3231不在复位周期,会持续监视RST信号的下降沿。如果检测到一个边沿转换,DS3231通过拉低RST完成开关去抖。内部定时器定时结束后,DS3231继续监视RST信号。如果信号依旧保持低电平,DS3231持续监视信号线以检测上升沿。一旦检测到按钮释放,DS3231强制RST为低电平并保持tRST。RST还可用于指示电源故障报警情况。当VCC低于VPF时,产生内部电源故障报警信号,并强制拉低RST引脚。当VCC返回至超过VPF电平时。RST保持低电平大约250 ms(tREC),使供电电源达到稳定。如果在VCC加载时,振荡器不工作,将跳过tREC,RST立刻变为高电平。
2.1.4 时钟和日历RTC
可以通过读取适当的寄存器字节获得时钟和日历信息。通过写入适当的寄存器字节设定或者初始化时钟和日历数据。时钟和日历寄存器的内容采用二-十进制编码(BCD)格式。DS3231运行于12小时或者24小时模式。小时寄存器的第6位定义为12或24小时模式选择位。该位为高时,选择12小时模式。在12小时模式下,第5位为AM/PM指示位,逻辑高时为PM。
2.1.5 闹钟
DS3231包含2个定时/日期闹钟。闹钟1可通过写入寄存器07h~0Ah设定。闹钟2可通过写入寄存器0Bh~0Dh设定。可对闹钟进行编程(通过控制寄存器的闹钟使能位和INTCN位),从而在闹钟匹配条件下触发INT/SQW输出。每个定时/日期闹钟寄存器的第7位是屏蔽位。当每个闹钟的屏蔽位均为逻辑0时,只有当计时寄存器中的值与存储于定时/日期闹钟寄存器中的对应值相匹配时才会告警。闹钟也可以编程为每秒、分、时、星期或日期重复告警。当RTC寄存器值与闹钟寄存器的设定值相匹配时,相应的闹钟标志位A1F或A2F置为逻辑1。如果对应的闹钟中断使能位A1IE或A2IE也置为逻辑1,并且INTCN位置为逻辑1,闹钟条件将会触发INT/SQW信号。RTC在时间和日期寄存器每秒更新时都会检测匹配情况。
2.2 DS3231的内部寄存器及功能
DS3231寄存器地址为00h~12h,分别用于存放秒、分、时、星期、日期及闹钟设置信息。在多字节访问期间,如果地址达到RAM空间的结尾12h处,将发生卷绕,此时定位到开始位置即00h单元。DS3231的时间和日历信息通过读取相应的寄存器来设置和初始化。辅助(用户)缓冲区用于防止内部寄存器更新时可能出现的错误。读取时间和日历寄存器时,用户缓冲区在任何START条件下或者寄存器指针返回到零时与内部寄存器同步。时间信息从这些辅助寄存器读取,此时时钟继续保持运行状态。这样在读操作期间发生主寄存器更新时可以避免重新读取寄存器。以控制寄存器(地址为0EH)为例,可以控制实时时钟、闹钟和方波输出。其各位定义如表1。

BIT7位:使能振荡器(EOEC)。设定为逻辑0时,启动振荡器。如果设定为逻辑1,在DS3231电源切换至VBAT时,振荡器停止。初次上电时该位清零(逻辑0)。当DS3231由VCC供电时,振荡器与EOSC位的状态无关,始终保持工作状态。

BIT6位:电池备份的方波使能(BBSOW)。当设定为逻辑1并且DS3231由VBAT引脚供电时,在没有加载VCC的情况下,该位使能方波输出。当BB-SQW设定为逻辑0时,若VCC降至低于电源故障门限值,则INT/SQW引脚变为高阻抗。初次上电时,该位清零(逻辑0)。
BIT5位:转换温度(CONV)。该位置为1时,强制温度传感器将温度转换成数字,并执行TCXO算法更新振荡器的电容阵列。只在空闲期间有效。状态位BSY=1时,禁止设定转换温度位。用户在强制控制器开始新的TCXO操作之前。应检查状态位BSY。用户启动的温度转换不影响内部64 s更新周期。用户启动的温度转换在大约2 ms内不会影响BSY位。CONV位从写入开始直到转换完成一直保持为1,转换完后,CONV和BSY均变为0。在监视用户启动转换状态时,应使用CONV位。
BIT4和BIT3位:频率选择(RS2和RS1),初次上电时,BIT4和BIT3设置为逻辑1。方波使能时用于控制方波输出的频率。RS1、RS2的逻辑值与方波输出频率的关系如表2所列。[page]

BIT2位:中断控制(INTCN)。该位控制INT/SQW信号。INTCN置为0时,INT/SQW引脚输出方波;INTCN置为1时,若计时寄存器与任一个闹钟寄存器相匹配,则会触发INT/SQW信号(如果也使能闹钟的话)。匹配时相应的闹钟标志总是置位,而与INTCN位的状态无关。初次上电时,INTCN位置为逻辑1。
BIT1位:闹钟2中断使能(A2IE)。该位置为逻辑1时,允许状态寄存器中的闹钟2标志位(A2F)触发INT/SQW信号(当INTCN=1时)。当A2IE位置为0或者INTCN置为0时,A2F位不启动中断信号。初次上电时,A2IE位清零(逻辑0)。
BIT0位:闹钟1中断使能(A1IE)。该位置为逻辑1时,允许状态寄存器中的闹钟1标志位(A1F)触发INT/SQW信号(当INTCN=1时)。当A1IE位置为0或者INTCN置为0时,A1F位不启动INT/SQW信号。初次上电时,A1IE位清零(逻辑0)。
2.3 DS3231的数据交换及其格式
DS3231在I2C总线上作为从器件。通过执行START命令并且在验证器件地址后才可以访问。然后寄存器可以被访问直到执行一个STOP命令为止。
所有在I2C总线上传输的地址包长度均为9位,它包括7个地址位,1个R/W控制位和1个应答位ACK,如果R/W为1,则执行读操作;如果R/W为0,则执行写操作。从机寻址后,必须在第9个SCL(ACK)周期通过拉低SDA做出应答,若从机忙或者无法响应主机,则应在ACK周期内保持SDA为高。然后主机发出STOP状态或者REP START状态重新开始发送。地址包包括从机地址和称为SLA+R或者SLA+W的READ或者WRITE位。地址字节的MSB首先被发送。所有1111xxxx的地址均保留。以便将来使用。
所有在I2C总线上传送的数据包长度均为9位,它包括8个数据位和1个应答位。在数据传送中,主机产生时钟及START与STOP状态,而接收器响应接收。应答是由ACK在第9个SCL周期拉低SDA实现的。如果接收器拉高SDA,则发送NACK信号。如果接收器由于某种原因不能接收更多数据,应在最后一个数据字节后发出NACK信号告诉发送器停止发送,首先发送数据的MSB。
DS3231通过双向数据线SDA和时钟线SCL与外界进行数据交换,从其时序关系可看出,DS3231有两种操作方式:
(1) 写操作:把SDA数据线上的数据按RAM指定的首地址(Word Address)依次写入N个字节数据。主器件首先传输从器件的地址字节,紧跟着是一系列数据字节。从器件每收到一个字节后返回一个应答位ACK。其格式如图2所示。

(2) 读操作:按RAM指定的首地址依次读取N个字节数据,主器件首先传送从器件地址。从器件返回一个应答位。随后是从器件传输的一系列数据字节。主器件收到除最后一个字节外的所有字节后返回一个应答位。在收到最后一个字节后,返回一个“非应答位”NACK。其格式如图3所示。

上述读写操作信号中:S为起始信号(START),1101 000为DS1307的口地址,A为应答信号ACK,A为非应答信号NACK,P为停止信号(STOP)。主器件产生所有的串行时钟和START、STOP条件,通过传输STOP和重发START条件使其停止。
3 DS3231与AVR单片机的硬件接口
ATmega系列单片机片内集成2线制串行接口模块。Atmel称其为TWI接口。事实上,TWI与Philips的I2C总线是一回事。AVR硬件实现的TWI接口是面向字节和基于中断的,相对软件模拟I2C总线有更好的实时性和代码效率,引脚输入部分还具有毛刺抑制单元,可去除高频干扰。图4是DS3231与AVR单片机ATmega8的硬件接口电路原理图。

4 DS3231与AVR单片机的软件接口
软件设计中,首先要对AVR单片机ATMega8与实时钟器件DS3231进行初始化。给DS3231准确的日期和时间。不论主控模式还是被控模式,都应当将TWI控制寄存器TWCR的TWEN位置为1,从而使能TWI模块。TWEN位被置位后,I/O引脚 PC5和PC4转换成SCL和SDA,对TWI 控制寄存器TWCR的操作可在总线上产生START和STOP信号,从START到STOP认为是主控模式的行为。将TWI地址寄存器TWAR的第一位TWGCE置为有效,同时将TWI控制寄存器TWCR的TWEA(应答允许)位置1,TWI模块就可以在总线上对其寻址做出应答,并置状态字。对TWI模块的操作均为寄存器的读写操作,Avr-libc没有提供专门的API,可以利用基于US-ART的标准I/O实现对DS3231读写日历和时钟的操作。

5 结束语

选用实时时钟器件DS3231和AVR单片机ATmega8设计了一个日历时钟系统,该系统体积小,通用性强。DS3231具有集成的温度补偿晶体振荡器(TCXO),计时准确且不随季节的变化而产生误差。该系统适用于智能显示屏以及实时测控系统。

关键字:AVR单片机  串行时钟  DS3231 引用地址:基于AVR单片机与串行时钟器件DS3231的应用设计

上一篇:AVR单片机与CF卡的接口的电路图和编程实例
下一篇:基于AVR单片机设计的加热控制系统

推荐阅读最新更新时间:2024-03-16 13:28

AVR单片机简介
什么是AVR单片机?AVR单片机是什么意思? 单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机。单片机技术是计算机技术的一个分支,是简易机器人的核心元件。 1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术, 共同研发出RISC精简指令集的高速8位单片机,简称AVR。 AVR单片机的优势特征 单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高,成本低廉。单片机种类很多,在简易机器人制作和创新中,为什么选用A
[单片机]
AVR单片机实现智能电冰箱控制系统方法
简介:现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。 现今,电冰箱已经普及家家户户,人们对电冰箱的性能和控制功能特别是智能程度的要求是越来越高,本方所讲述的AVR单片机智能电冰箱控制系统,具有功能齐全、操作简单、使用方便等优点,在国内同类产品中处于较高水平,具有较高的实用和推广价值。并且该系统在设计完成之后进行了多次试验,试验数据表明该系统的各项性能指标和功能达到了预期的设计目的。 多年来电冰箱在国内市场上一直作为储物、保鲜的空间,人们对于电
[单片机]
<font color='red'>AVR单片机</font>实现智能电冰箱控制系统方法
AVR单片机Atmega16电子时钟程序+仿真,内部定时器实现
Atmega16电子时钟,内部定时器,有可调闹钟。 仿真原理图如下 单片机源程序如下: #include iom16v.h #include macros.h #define key_bz 0b00000111 char smg_zx ={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f};// 全局变量 char hour=12; char min; char sec; char nz_hour=12; char nz_min=1; char mode=0; char set; void delay_ms(unsigned int k)
[单片机]
<font color='red'>AVR单片机</font>Atmega16电子时钟程序+仿真,内部定时器实现
基于AVR单片机的空气检测器设计
一、项目概述 1.1 引言 健康的生活离不开清新的空气,我们利用AVR单片机设计一部空气检测器,随时随地测量空气质量。 1.2 项目背景/选题动机 现在空气污染越来越严重,每个公民都应该有权利来监督工厂企业污染情况,来保护我们的环境。我们就想设计一个搭载气体传感器的无线空气检测仪,检测CO、粉尘等若干成分,监督我们的污染源(当然也可以作为室内空气检测器),使我们的家园越来越好。 二、需求分析 2.1 功能要求 无线收发,模数转换,LCD显示,蜂鸣器报警。 2.2 性能要求 气体检测器需要实时进行数据采集,实时显示,主频要求不能低,考虑其他未知因数(如外界干扰强导致发送多次),一次显示需要100次时钟周期,对于12M的主
[单片机]
基于<font color='red'>AVR单片机</font>的空气检测器设计
基于AVR单片机的船载中小型信息监控终端的设计方案
目前,随着信息产业的迅猛发展,各类船舶亟需配备更多质优价廉的中小型信息监控终端,用于监控气象状况、获取导航信息以便保证航行安全。以ARM、MIPS等领衔的32位处理器在信息监控终端应用中,显示出极大优势,但是一般以32位处理器构建的嵌入式系统往往需要配置外部FLASH和SDRAM,这样就使得开发和维护整个系统的成本较高,本设计采用高性能低功耗的AVR单片机和LCD液晶模块来设计信息监控终端,具有价格低廉、性能稳定、显示清晰、人机界面良好等优点,能够满足船舶对中小型信息监控终端的需求。 1 总体设计 信息监控终端主要由显示控制板、键盘、通信接口和液晶显示模块构成,具有数据收发、数据显示、人机交互和屏幕亮度调整等功能,其组
[单片机]
基于<font color='red'>AVR单片机</font>的船载中小型信息监控终端的设计方案
基于AVR单片机的简易灭火机器人设计
引言 近年来,随着石化等基础工业的飞速发展,在生产过程中的易燃易爆和剧毒化学制品的使用急剧增长,由于设备和管理方面的原因,导致化学危险品和放射性物质泄漏、燃烧爆炸的事故增多。消防机器人作为特种消防设备可代替消防队员接近火场实施有效的灭火救援、化学检验和火场侦察。它的应用将提高消防部队扑灭特大恶性火灾的实战能力,对减少国家财产损失和灭火救援人员的伤亡将产生重要的作用。 1 设计要求 制作一个由计算机程序控制的机器人,在一间模拟平面结构的房间里运动,找到一根燃烧的蜡烛并尽快将它扑灭。 灭火要求:机器人不能运用任何破坏性的或危险的方法来扑灭蜡烛火焰。它可以运用类似水、空气等物质,或者使用机械方式,但是禁止使用任何危险的或可能破坏灭
[单片机]
基于<font color='red'>AVR单片机</font>的简易灭火机器人设计
AVR单片机JTAG接口的使用方法
AVR的JTAG 仿真器特别好用,在此特别推荐,它可以对所有含JTAG接口的mega系列进行下载和软件硬件仿真。 刚开始使用AVR JTAG仿真器时,不是很清楚它的使用方法。看完AVR JTAG仿真器的英文说明和中文说明,也不很明确它的具体使用。经过自己的摸索,才清楚如何使用这种仿真器。其实这种仿真器的使用方法很简单,就是说明太罗索,让人越搞越糊涂。不过,使用这种仿真器,确实方便了很多,可实现硬件仿真与软件仿真,步调程序,发现程序漏洞,是较好的辅助调试工具。 下面是摸索出来的较简明的使用方法: (1) AVR JTAG的使用环境是:AVR Studio 4.07以上版本,9-15DC电源,PC与RS232口。 (2) 安装AVR S
[单片机]
AVR单片机在跳频系统数字信号处理中的应用
ATmega103单片机是ATMEL公司推出的精简指令集(RISC)AVR(ADVANCE RISC)系列单片机产品,这是一种增强型RISC结构,采用了CMOS技术的8位微控制器?该结构能有效支持高级语言以及密集度极大的汇编器代码程序。 跳频系统(FH)是指载波频率按某种跳频图案(跳频序列)在很宽的频带范围内跳变的通信系统,由于该系统具有抗干扰、抗多径和抗衰落性等能力,故在军用和民用领域都得到了广泛的应用。本系统方案中,信号处理模块主要完成跳频模式(FH)下有关数字信号的处理,包括话音编解码、话音组织及与同步有关的操作等,这些技术目前是跳频系统的关键技术之一。 本文介绍ATmega103单片机的特点及其在FH系统数字信号处
[单片机]
<font color='red'>AVR单片机</font>在跳频系统数字信号处理中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved