0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTCC芯片的选择与在嵌入式系统的设计应用

电子设计 来源:郭婷 作者:电子设计 2019-02-06 09:45 次阅读

许多嵌入式应用需要知道时间,以便在特定的时间和日期,或针对时间戳事件,或同时依据两者执行特定的任务。执行此功能的 RTCC(实时时钟和日历)芯片问世已有数十年,但设计人员在缩减元件数目和基底面,同时最大限度减少功耗和设计时间方面一直面临着挑战。

集成式 RTCC 器件和创新式模块如今可以应对这些挑战。

本文将讨论如何选择 RTCC 芯片,并快速应用于嵌入式系统的设计中,同时最大限度减小空间,降低功耗。文中还会讨论具有内置 RTCC 的 MCU,以及将可用的 RTCC 模块与表面贴装 RTC 及其他元件一同使用,协助原型开发。

整合到模块中的 RTCC 芯片通常由 Arduino 库和 Raspberry Pi Raspbian 驱动程序覆盖层提供支持,利用它们可以更轻松地使用上述器件开展嵌入式实验和原型开发。

RTCC 的角色

许多嵌入式应用需要以极低的功耗跟踪相对于真实世界的时间,同时减少在主处理器中所占用的空间,便与其处理其他任务。

然而,就其本身而言,RTCC 芯片能力有限。它需要一个用于计时的精确晶体(可能为可实现极精确计时的温度补偿型晶体),还需要备用电池电源,以便在嵌入式系统断电时仍能继续跟踪时间。这些辅助元件决定了 RTCC 执行其两项主要任务的能力:

在所有条件下持续记录精确的时间和日期

在嵌入式系统的其余部分断电后消耗极少的功率

部分微控制器采用 RTCC

一些微控制器,例如 Microchip Technology 的 32 位 PIC32MZ2064DAA288 微控制器,采用了内部 RTCC 块。将此类器件用于设计需要精确计时的系统似乎是个不错的主意,尤其是,PIC32MZ2064DAA288 微控制器在其用于为器件供电的正常电源引脚(VDDCORE 和 VDDIO)电压不足时,会自动将内部电源切换至其电池输入引脚 (VBAT)。

但是,这类与 RTCC 以上所列两项关键任务(即精确计时和低功耗运行)直接相关的器件,还存在一些其他挑战。

首先,PIC32MZ2064DAA288 微控制器的 RTCC 块需要在其两个次级振荡器引脚上连接一个 32768 赫兹 (Hz) 晶体,以便在微控制器断电时维持精确的时间。虽然可以使用微控制器的主时钟振荡器来运行 RTCC 块,但当微控制器处于深度睡眠模式时,该振荡器会停止运行。

片载 RTCC 采用了一个校准寄存器,Microchip 也提供了一个校准程序,可在晶体振荡器频率偏移最多 260 ppm 时将计时误差减小至每个月 0.66 秒。但固定校准无法计入温度波动,而这也会影响振荡器的频率,进而影响计时精度。

其次,除 RTCC 块之外,微控制器在切换至电池电源后并未完全断电。根据软件控制,微控制器中的其他块在电池运行期间可能启用也可能未启用。这样带来的挑战是,电池的消耗和寿命变得高度依赖软件。

这一挑战并非 PIC32MZ2064DAA288 微控制器所独有。任何采用 RTCC 块的微控制器都会出现此问题。使用单独的 RTCC 芯片可以克服该问题,将计时功能与微控制器明确隔离,而且,在微控制器不含内部 RTCC 时,这也是唯一的设计选择。

RTCC 芯片和模块

数十年来,设计工程师一直使用单独的 RTCC 芯片,在各种嵌入式和计算应用中计时。尽管现在有多家 IC 供应商提供此类芯片,但表面贴装技术 (SMT) 让 RTCC 芯片的评估变得非常复杂,因为这些器件无法轻松进行手动焊接或插入插座。

一种有效的解决方案是使用基于这些 RTCC 芯片的低成本模块,消除与小型表面贴装 IC 相关的原型开发挑战。这些模块还包含电池(通常为纽扣电池),以便在主系统断电时保持电力。

Adafruit 的 255 Chronodot(图 1)便是此类模块一个很好的例子。此类模块便于评估试验板和原型开发中的 RTCC 芯片,许多情况下甚至适用于评估批量制造中的 RTCC 芯片。

图 1:Adafruit 的 255 Chronodot 在一个通孔式模块中整合了 RTCC 芯片和电池。(图片来源:Adafruit)

表 1 列出了基于两家 IC 供应商的三款不同 RTCC 芯片的六个不同 RTCC 模块。

RTCC 模块 RTCC 芯片 接口 电池 电池寿命最小值(典型值) DFRobot DFR0151 Maxim DS1307 I²C CR1225 9 (17) 年 SparkFun BOB-12708 Maxim DS1307 I²C CR1225 9 (17) 年 Adafruit 3103 Maxim DS3231 I²C CR1220 不适用 Adafruit 255 Chronodot Maxim DS3231 I²C CR1632 8 年 Maxim DS3231MPMB1# Maxim DS3231 I²C CR1025 不适用 STM STEVAL-FET001V1 STMicro M41T62 I²C 外置 不适用

表 1:六个 RTCC 模块诠释了 RTCC 模块的广泛适用性和多样性。(数据来源:Digi-Key Electronics)

利用类似表 1 所列的六款 RTCC 模块,可以轻松地在原型系统中增加计时功能。在开发整合了底层 RTCC 芯片的电路板时,如果仔细观察这些模块的设计方法,就能发现一些有用的信息

表 1 中需要注意的第一点是,所有这些 RTCC 模块都有一个共同点,即 I2C 接口。上世纪 70 年代的早期 RTCC 芯片使用并行地址和数据总线来模拟小型 SRAM。在那个年代,并行微处理器总线非常普遍,而板载串行协议则尚未广泛应用。

如今,芯片到芯片串行协议,尤其是 I2C,已成为带宽要求相对较低的外设的首选。RTCC 芯片绝对符合条件,因为它只需要很少的字节便能传输日期和时间信息。

表 1 中显示的前两个 RTCC 模块,即 DFRobot 的 DFR0151 和 SparkFun 的 BOB-12708,均基于 Maxim Integrated 的 8 引脚器件 DS1307 RTCC 芯片。由于它的普及程度,人们针对基于此芯片的模块提供了各种 Arduino 库和一个 Raspberry Pi Raspbian 驱动程序覆盖层。

DS1307 RTCC 具有单独的电源轨和电池引脚,可在系统电源出现故障时,在嵌入式系统的电源轨与备用电池之间提供自动切换(图 2)。

RTCC芯片的选择与在嵌入式系统的设计应用

图 2:Maxim Integrated 的 DS1307 RTCC 芯片在 VCC 引脚电压降至约 4.5 V 以下时,会自动从 VCC 切换至 VBAT。(图片来源:Maxim Integrated)

图 2 还显示了 DS1307 RTCC 芯片与晶体之间的连接。对于 RTCC 芯片,此晶体几乎总是便宜的 32768 Hz 钟表晶体,例如 IQD Frequency Products 的 WATCH-2X6。此晶体引入了使用 RTCC 芯片开展设计时需要考虑的两个新的方面。

第一个因素是晶体的温度稳定性。大多数 RTCC 使用最初为腕表而设计的“音叉”晶体。这些晶体会随着温度变化而偏离其额定频率(图 3)。

RTCC芯片的选择与在嵌入式系统的设计应用

图 3:32768 Hz 晶体的共振频率随温度变化,这会影响 RTCC 的计时精度。(图片来源:IQD Frequency Products)

IQD WATCH-2X6 晶体的共振频率随温度变化,这会改变振荡器的频率,导致计时误差。请注意,振荡器频率发生 20 ppm 的偏移对应每月大约 1 分钟的计时误差。

第二个因素被图 2 中晶体与 RTCC 芯片之间过度简化的连接所隐藏。RTCC 芯片的晶体输入引脚通常具有极高的阻抗,导致钟表晶体的引线和 PC 板的印制线起到类似天线的作用。此“天线”可以将系统其余部分的高频信号和噪声耦合到 RTCC 的内部晶体振荡器。

任何通过钟表晶体与 RTCC 芯片之间的印制线耦合的噪声,都可能导致 RTCC 芯片的振荡器电路中出现额外转换,进而导致时钟运行加快。解决方案是采用细致的 PC 板布局。这包括将晶体置于尽可能接近 RTCC 芯片的振荡器引脚的位置,以及在晶体输入引脚和整个钟表晶体主体的下面放置一个接地平面(图 4)。

RTCC芯片的选择与在嵌入式系统的设计应用

图 4:接地平面上细致的 PC 板布局可预防有害的噪声影响 RTCC 芯片的计时精度。(图片来源:Maxim Integrated)

此外,图 4 显示的 RTCC 封装下面用阴影线表示的禁布区,可以防止间距很近的印制线将噪声耦合到 RTCC 芯片的晶体输入引脚。如果可能,在 PC 板的元件层上增加一个环绕晶体和 RTCC 芯片晶体输入引脚的保护环,也有助于防止噪声对计时精度产生影响。

从 PC 板取下钟表晶体并插入芯片中

为了规避外部晶体面临的一些与 PC 板布局相关的挑战,可选择采用 STMicroelectronics 提供的带有内置晶体的 M41T62 RTCC。具有 24 引脚 DIP 基底面的 STMicroelectronics STEVAL-FET001V1 评估板上提供了此 RTCC 芯片。图 5 显示了此电路板的示意图。其中有一个 Arduino 库和一个 Raspberry Pi Raspbian 驱动程序覆盖层可供 M41T62 使用。

RTCC芯片的选择与在嵌入式系统的设计应用

图 5:采用 24 引脚 DIP 封装的 STEVAL-FET001V1 评估板上提供了 STMicroelectronics M41T62 RTCC 芯片(中央)。(图片来源:STMicroelectronics)

如示意图所示,M41T62 只有一个 VCC 引脚。它没有在主电源轨出现故障时可选择切换的单独 VBAT 引脚,因为该器件的尺寸仅为 1.5 x 3.2 毫米,专门用于可穿戴设备和数码相机。在这些嵌入式应用中,电池往往是唯一的电源,而且空间非常宝贵。

请注意,也可以使用一个超级电容器作为 M41T62 的电源。在嵌入式系统中,系统电源或充电器可通过阻流二极管 D1,连接到 M41T62 的 VCC 引脚(图 6)。

该二极管必须是与以上图 5 中显示的 1N4148WS 相似的低漏电类型,以防止超级电容器在系统的其余部分断电时,通过系统电源反向放电。

RTCC芯片的选择与在嵌入式系统的设计应用

图 6:可使用可充电超级电容器为 M41T62 RTCC 芯片供电。(图片来源:STMicroelectronics)

温度补偿可满足晶体要求

表 1 中所列的三种 RTCC 模块(Adafruit 3013、Adafruit 255 Chronodot 和 Maxim DS3231MPMB1#)均基于 Maxim 的 DS3231 RTCC 芯片(图 7)。除集成式晶体之外,该器件还包括一个温度传感器,这也是该器件拥有较长正式名称“超精准 I²C 集成式 RTC/TCXO/晶体”的原因所在。

RTCC芯片的选择与在嵌入式系统的设计应用

图 7:DS3231 RTCC 芯片集成了 32768 Hz 钟表晶体、一个温度传感器和一个开关式电容器阵列,以便将器件的计时精度保持在每年 ±2 分钟以内。(图片来源:Maxim Integrated)

如方框图中所示,DS3231 的温度补偿型晶体振荡器 (TCXO) 由内部晶体、一个温度传感器和一个开关式电容器阵列构成。与 DS1307 RTCC 类似,DS3231 也有单独的主电源 (VCC) 和备用电池 (VBAT) 引脚。

与 STMicroelectronics M41T62 RTCC 芯片一样,DS3231 RTCC 芯片消除了外部晶体存在的布局挑战。它的 TCXO 减少了温度摆动造成的计时精度波动。DS3231 的内部 TCXO 能在极宽的工作温度范围(-40°C 至 +85°C),将器件的计时精度保持在每年正负 2 分钟以内。

由于它的普及程度,人们针对基于 DS3231 RTCC 芯片的模块还提供了多个 Arduino 库和一个 Raspberry Pi Raspbian 驱动程序覆盖层。

电池能持续使用多长时间?

电池需保养维护,无法永久续航。在将 RTCC 添加至嵌入式设计时,务必注意 RTCC 芯片所需的电池电流,以适当调整备用电池的大小。

RTCC 应用中的电池寿命将取决于 RTCC 芯片在计时时的漏极电流、RTCC 芯片所需的最低工作电压,以及电池在其输出电压降至低于该最小工作电压之前能够供应所需电流的时间量(图 2)。

RTCC 芯片 电池电流 (nA) 典型值(最大值) Maxim DS1307 300 (500) Maxim DS3231 840 (3000) STMicro M41T62 5000 (7000)

表 2:RTCC 芯片的电池供电电流额定值有助于调整合适的备用电池大小。(数据来源:Digi-Key Electronics)

之前表 1 中显示的 RTCC 模块均已选定备用电池。一些模块供应商在模块的规格书上包含了电池寿命数字,此数字同样显示在表 1 中。锂纽扣电池目前是这些模块首选的电池类型。表中所列器件的电池直径不外乎 10、12 和 16 毫米。当然,电池容量越大,增加的空间和重量往往也更多,但显而易见的好处是,给定电流下的电池寿命更长。

总结

在选择 RTTC 器件、选择配套的晶体和电池以确保精准操作,以及为 PC 板布局时,都应格外小心。另一方面,基于 RTCC 芯片的可用模块为试验板和原型开发提供了捷径,大幅缩短了开发时间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7542

    浏览量

    151316
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17123

    浏览量

    350994
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304822
收藏 人收藏

    评论

    相关推荐

    嵌入式linux培训之嵌入式微处理器的选择

    的性能等。  3、操作系统支持嵌入式系统越来越复杂,所以采用嵌入式操作系统来管理整个系统也越来越
    发表于 07-03 18:30

    嵌入式系统知识系统讲解

    知识体系的建立,应该重视自身实践,全面地理解嵌入式系统的知识体系。  2.4 入门芯片选择的困惑  嵌入式
    发表于 08-29 14:16

    FPGA嵌入式系统设计的应用

    消费电子、物联网等领域的不断发展,用户需求也越来越复杂和多样,因此我们嵌入式系统设计中必须选择合适的处理器(SoC)系统,当然我们也需要考
    发表于 08-05 06:24

    什么是嵌入式系统 嵌入式系统定义

    。通常,嵌入式系统是一个控制程序存储ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式
    发表于 09-23 15:57

    嵌入式操作系统怎么选择

    要的是嵌入式操作系统对应用程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于不同的arm核的嵌入式处理器上移植。 
    发表于 04-07 07:13

    嵌入式系统开发要素的选择原则是什么

    本文详细阐述了嵌入式系统开发中嵌入式处理器、嵌入式操作系统、调试器、仿真器以及开发人员的技术水
    发表于 04-28 06:26

    如何选择嵌入式硬件和芯片

    如何选择嵌入式硬件?如何选择嵌入式芯片
    发表于 10-25 07:13

    如何选择嵌入式最小系统的主要芯片及操作系统

    摘要:嵌入式系统工业控制领域得到了广泛应用,然而,嵌入式最小系统作为嵌入式
    发表于 11-09 07:07

    嵌入式芯片系统设计应用

    嵌入式芯片暨智能互联创新大赛为了加强全国高校学生在嵌入式芯片系统设计应用领域的创新设计与工程实践能力,使学生能够全面掌握
    发表于 12-23 06:55

    嵌入式系统开发要素的选择分析

    主要讨论嵌入式系统开发中,设计人员如何考虑和选择嵌入式处理器。嵌入式操作
    发表于 11-07 16:10 41次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>开发要素的<b class='flag-5'>选择</b>分析

    为什么要在嵌入式系统选择嵌入式Linux?

    系统越来越大、应用越来越多,使用操作系统很有必要。操作系统的作用有:统一管理系统资源、为用户提供访问硬件的接口、调度多个应用程序、管理文件系统
    发表于 05-06 17:19 2073次阅读

    实时时钟芯片DS1302DSP嵌入式系统中的应用总结

    实时时钟芯片DS1302DSP嵌入式系统中的应用总结(嵌入式开发设计小游戏)-该文档为实时时钟芯片
    发表于 07-30 11:31 6次下载
    实时时钟<b class='flag-5'>芯片</b>DS1302<b class='flag-5'>在</b>DSP<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中的应用总结

    嵌入式系统

    我们的日常生活中,我们经常使用许多使用嵌入式系统技术设计的电气和电子电路和套件。计算机,手机,平板,笔记本电脑,数字电子系统以及其他电子和电子设备都是使用
    发表于 10-21 10:51 1次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    什么是嵌入式系统

    我们的日常生活中,我们经常使用许多使用嵌入式系统技术设计的电气和电子电路和套件。计算机,手机,平板,笔记本电脑,数字电子系统以及其他电子和电子设备都是使用
    发表于 10-21 11:36 3次下载
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    嵌入式系统的外设器件选择

    ,都可视系统的实际需求来进行选择。本文将为您介绍上述外设器件的类型与选择的考虑要素。 存储器的种类众多且特性不同 存储器 嵌入式
    的头像 发表于 05-05 09:38 897次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的外设器件<b class='flag-5'>选择</b>