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

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

3天内不再提示

基于ATmegal6单片机实现SD2200L的TWI接口设计

电子设计 来源:单片机与嵌入式系统应用 作者:李浩,谭超,卢舟 2020-07-10 07:59 次阅读

在提升机制动闸瓦间隙实时在线检测的设计中,需要保存故障时间和故障数据。大部分仪器仪表中都要使用时钟芯片,但是很多的实时时钟芯片(如PCF8563)没有掉电保护,须外接晶振和电池,比较麻烦。而深圳兴威帆电子技术有限公司生产的SD2200ELP是内置32 KBE2PROM的串行实时时钟芯片,不需要外接器件支持,连线简单、可靠,提供的数据精确,断电后也能继续工作。微控制器采用Atmel公司的ATmegal6单片机,利用AT-megai6的硬件TWI接口可直接对SD2200ELP进行操作,无需软件模拟I2C方式,使用方便、可靠。

1、SD2200L简介

SD2200L系列(包括SD2200B/C/D/E/FLP)是一种具有内置晶振、支持I2C总线的高精度实时时钟芯片。SD2200ELP是SD2200L系列中的一种,该芯片可保证时钟精度为5ppm(在-10~50℃下),即年误差小于2.5min。芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的偏差;内置32KB串行非易失性E2PROM;可在3.0~5.5V下工作,擦写次数可达100万次,数据保存时间为十年;内置一次性电池,可保证在外部掉电情况下时钟使用寿命超过五年。SD2200L系列内部结构如图1所示。

2、硬件设计

SD2200ELP既有实时芯片的功能,又可以存储数据到内置E2PRROM中。因为SD2200ELP是I2C总线接口方式,所以其硬件接口设计非常简单,可以大大简化单片机外围器件。AVR的TWI总线实质上就是I2C总线,只是名称不一样。图2中INTl脚为SD2200ELP的定时中断输出,与ATmegal6的外部中断INTl相连接(INTl配置为下降滑触发方式),SDA、SCL为两线式串行引脚,分别与ATmegal6的TWl(PCl、PCO)相连。

3、软件设计

如果外围器件是I2C接口类型,而单片机没有I2C接口,那么必须用软件模拟的方式来实现。AVR单片机功能很强,它带有TWI接口,可以直接利用ATmegal6的硬件I2C接口来对外围I2C器件进行操作,非常方便、有效。这样可以节省模拟I2C程序,为用户编程省去很多麻烦。下面是使用ATmegal6对内置E2PROM的实时时钟芯片SD2200ELP读/写的程序设计,均是在ICCAVR开发环境下编写。

3.1 ATrnegal6的TWI总线接口

两线接口TWI很适合于典型的处理器应用。TWI协议允许系统设计者只用两根双向传输线就可以将128个不同的设备互连到一起。这两根线是时钟线SCL和数据线SDA。外部硬件只需2个上拉电阻,每根线上1个。所有连接到总线上的设备都有自己的地址。TWI协议解决了总线仲裁的问题,TWI总线的连接如图3所示。

TWI总线可以工作于4种不同的模式:主机发送器(MT)、主机接收器(MR)、从机发送器(ST)以及从机接收器(SR)。在后面将介绍的连续读E2PROM操作中就使用了MT和MR模式。

3.2 实时时钟读取

实时时钟操作指令格式如下:

其中高4位称为“器件代码”,它代表实时时钟的器件地址,固定为“0110”。C2、C1、C0构成对实时时钟操作的8条指令。

实时数据寄存器是一个56位的存储器,它以BCD码方式存储,包括年、月、日、星期、时、分、秒的数据。实时数据的读/写操作都通过发送或接收年(实时数据读写方式1)数据的第一位“LSB”开始执行的。

3.3 E2PROM的读/写

SD2200ELP的E2PROM操作指令与实时时钟的器件代码是不一样的。当CPU要对SD12200L中的E2PROM进行操作时,首先发出开始信号给SD2200L,然后CPU发出包括4位器件代码10lO、3位页选码000、1位读/写指令的8位数据(即“从器件地址”)。一位读/写指令表明进行何种操作(读操作为1,写操作为O)。其格式如下:

3.3.1 对E2PROM的页写操作

写操作可分为:单字节写操作和页写操作。单字节写操作指每次只写入一个字节的数据;页写操作指一次可以写入多个字节的数据。值得注意的是,SD2200L是一个系列,不同类型对应着不同数量的E2PROM。例如在页写操作下,SD2200ELP单个写周期内E2PROM可以被写入64字节的数据。在某监测仪器应用中,需要保存故障值和故障发生时间,故采用页写方式。页写E2PROM程序流程图如图4所示。

3.3. 2 对E2PROM连续读操作

读操作有3种方式:立即地址读操作、随机地址读操作和连续读操作。ATmegal6为完成从SD2200ELP内置串行E2PROM中读取数据,必须将几种TWI模式组合起来。由于内置E2PPROM的存储容量大小不同,因此在进行读操作时,其操作方式有所不同。在查询故障值和故障时间时,需要读出保存在E2PRoM的数据,故采用连续读操作。与页写操作类似,SD2200ELP最多连续读64字节的数据。连续读操作程序流程图如图5所示。

读/写E2PROM需用到的5个公用函数:

4、总结

SD2200ELP可以方便地结合AVR单片机的TWI总线实现日期显示功能。并且因其内置32 KBE2PROM,可以保存时间和相应数据;具有电路简单、占用资源少、程序简洁、调试方便、功耗低等特点。经过实际的现场运行证实了该设计方法是可靠、有效的。对本文的设计方案和程序稍加修改后,可以用在各种需要此功能的数字控制和监控检测系统中。

责任编辑:gt


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

    关注

    446

    文章

    47705

    浏览量

    408873
  • 单片机
    +关注

    关注

    5998

    文章

    43948

    浏览量

    620562
  • 接口
    +关注

    关注

    33

    文章

    7616

    浏览量

    148377
收藏 人收藏

    评论

    相关推荐

    51单片机sd接口设计

    51单片机sd接口设计
    发表于 08-17 16:03

    单片机读写 SD卡模块 支持FAT32 UART接口 .TXT文件

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件随着电子技术的发展,SD卡作为大容量数据存储器越来越受到广大电子爱好者和客户的衷爱。但是由于
    发表于 02-27 09:38

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件随着电子技术的发展,SD卡作为大容量数据存储器越来越受到广大电子爱好者和客户的衷爱。但是由于
    发表于 03-22 16:50

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件随着电子技术的发展,SD卡作为大容量数据存储器越来越受到广大电子爱好者和客户的衷爱。但是由于
    发表于 03-26 09:04

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件

    单片机读写SD卡 模块 支持FAT32 UART接口 .TXT文件随着电子技术的发展,SD卡作为大容量数据存储器越来越受到广大电子爱好者和客户的衷爱。但是由于
    发表于 06-17 09:19

    【下载】《AVR单片机实用C语言程序设计与典型实例》

    AVR的性能特点 1.3 型号与编号意义 1.4 常见的AVR开发工具第2章 基本硬件资源 2.1 ATMEGAl6基本硬件结构 2.2 ATMEGA 16单片机总体结构 2.3 系统时钟及时钟选项
    发表于 09-04 17:17

    51单片机没有SD接口怎么操作SD卡方便?

    大部分51单片机都没有专门的SD接口,但是有时候我们又需要用到SD卡导出一些运行数据,该怎么实现更好?
    发表于 11-02 07:49

    基于ATmegal6和315射频模块的无线传感网络节点的设计

    摘要:介绍了一种基于ATmegal6和无线315模块的无线传感网络节点的设计。讨论了数据传输的基带编码方案,并比较了用ATmegal6实现基带编码的三种方法,同时给出了发射和接收的具体
    发表于 05-19 09:08 35次下载

    51单片机SD接口设计

    介绍51单片机SD卡的接口设计原理,以及FAT32文件系统的设计和应用程序控制SD卡读写操作的实现
    发表于 04-09 15:35 411次下载
    51<b class='flag-5'>单片机</b>与<b class='flag-5'>SD</b>卡<b class='flag-5'>接口</b>设计

    基于ATmegal6单片机的温度监测系统设计

    温度是工业生产中很重要的参数,它直接影响到产品的质量。本文提出了一种基于ATmegal6单片机的温度监测系统。该系统包括检测电路,数据显示电路、键盘接口电路、通信电路和报警电
    发表于 02-22 15:16 67次下载
    基于<b class='flag-5'>ATmegal6</b><b class='flag-5'>单片机</b>的温度监测系统设计

    基于AVR单片机的智能防火防盗系统设计

    摘要本文基于AVR单片机Atmegal6,通过自动拨号模块、无线收发模块、红外检测模块、烟雾检测模块的配合下,完成用户的智能防火防盗报警系统。整个系统1)2Atmegal6为核心,当通过无线收
    发表于 03-06 16:02 53次下载

    基于AVR单片机TWI总线原理分析(下)

    AVR单片机片内TWI总线的原理和使用
    的头像 发表于 07-04 10:51 3442次阅读

    AVR单片机:关于片内TWI总线的原理和使用介绍(1)

    AVR单片机片内TWI总线的原理和使用
    的头像 发表于 07-11 00:27 3073次阅读
    AVR<b class='flag-5'>单片机</b>:关于片内<b class='flag-5'>TWI</b>总线的原理和使用介绍(1)

    如何使用AVR单片机ATmegal6设计双电源自动切换控制器

    提出一种以AVR单片机ATmegal6为核心、以断路器为控制对象的双电源自动切换开关控制器的设计方案。充分利用高性能AVR单片机的片内资源,以其片内.VD转换器实现电源电压监测,以其输
    发表于 09-20 15:20 18次下载
    如何使用AVR<b class='flag-5'>单片机</b><b class='flag-5'>ATmegal6</b>设计双电源自动切换控制器

    如何使用Atmegal6单片机设计温度控制系统实现PID控制

    计了一种基于Atmegal6 单片机的温度控制系统。 该系统采用单片机作为控制器,温度传感器DS18B20 自动完成对温度信号的采集,同时将采集的信号送入单片机经处理实时显示温度值,根
    发表于 10-24 15:51 26次下载
    如何使用<b class='flag-5'>Atmegal6</b><b class='flag-5'>单片机</b>设计温度控制系统<b class='flag-5'>实现</b>PID控制