DS28DG02用户指南

DS28DG02用户指南,第1张

摘要:DS28DG02是带有PIO、实时时钟(RTC)、复位、电池监控器和看门狗的2kb SPI™ EEPROM,它组合了便携式设备和嵌入式应用中需要的多种功能。本应用笔记对产品数据资料进行补充说明,给出SPI接口及其写保护方案的详细信息,阐述怎样使用器件的12个PIO和RTC闹钟功能。文档还包括电池选择指南、RTC晶振焊盘屏蔽,以及报警事件的软件响应等。

通信接口DS28DG02是从机EEPROM器件,通常由微控制器构成的主机利用它通过串行外设接口(SPI)来访问其资源。SPI最初由Motorola针对MC68HCxx系列微控制器而建立。表1列出了标准SPI信号名称以及它们的功能。

表1. SPI信号名称 Motorola名称 功能 其他名称
SCLK
串行时钟,推挽驱动,由主机产生。如果满足上升时间和下降时间规范,可以使用开漏驱动。 SCK, SK, C
MISO
从机至主机数据线,“主机输入,从机输出”。由从机驱动的高阻抗推挽输出连接至主机的串行输入。 SO, DO, Q
MOSI
主机至从机数据线,“主机输出,从机输入”。由主机驱动的高阻抗推挽输出连接至从机的串行输入。 SI, DI, D
低电平有效SS
从机选择,推挽输出,由主机产生。 CSZ, 低电平有效CS
基本的SPI通信在主机和从机同时采用了移位寄存器。移位寄存器的输入和输出相连,形成一个环回,如图1所示。时钟信号在主机驱动下,将8比特串行数据块由主机传送至从机,同时由从机传送至主机,从而实现了SPI全双工协议。但是,大部分SPI从机,包括DS28DG02,在接收或者发送数据前,首先需要一条命令。同样,在半双工模式下,数据由主机传送到从机或者由从机传送到主机。

DS28DG02用户指南,图1. SPI通信概念,第2张
图1. SPI通信概念

SPI规范定义了四种模式,由SPI主机中的控制位CPOL和CPHA进行选择。在怎样参考这些模式上还没有标准。表2列出了SPI文档中常用的模式定义。

表2. SPI模式定义 SPI模式 CPOL CPHA 说明 0或者(0,0)
0
0
时钟空闲状态为低电平。在时钟上升沿采集数据,在时钟下降沿移位输出。 1或者(0,1)
0
1
时钟空闲状态为低电平。在时钟下降沿采集数据,在时钟上升沿移位输出。 2或者(1,0)
1
0
时钟空闲状态为高电平。在时钟下降沿采集数据,在时钟上升沿移位输出。 3或者(1,1)
1
1
时钟空闲状态为高电平。在时钟上升沿采集数据,在时钟下降沿移位输出。
DS28DG02支持SPI模式(0,0)和(1,1)。这些模式中,在时钟上升沿采集(同步输入)数据,在时钟下降沿移位输出(可能会改变)。CSZ下降沿的时钟状态告诉DS28DG02主机使用了哪一SPI模式。如果试图在模式(1,0)或者(0,1)中进行通信,则无法确定器件的行为。

关于SPI协议以及时序的其他信息,请参考DS28DG02数据资料中的SPI接口一节,也可以在互联网上搜索关键词“SPI slave TIming”。通过网络搜索到的文档大部分是关于微控制器的,根据内部寄存器设置,这些微控制器能够实现SPI主机或者从机。第三方文档很好地介绍了SPI概念,解释了SPI主机的设置,这些文档有:

http://www.mct.net/faq/spi.html (一般信息)
http://www.atmel.com/dyn/resources/prod_documents/doc2585.pdf (主机设置)

写保护方案SPI存储器采用3级方案来保护存储器不会受到无意的或者未授权的改动:SPI状态寄存器中的WEN位;使用SPI状态寄存器中控制位的块写保护;使用引脚状态和SPI状态寄存器中使能位的硬件写保护。DS28DG02独有的寄存器写保护和块写保护在同一级上,但是采用了不同的存储器区。表3列出了控制位及其对存储器的影响。

表3. 写保护控制 级 控制位 受保护的存储器
1
WEN 所有的可写存储器地址以及SPI状态寄存器
2
BP1:BP0 地址000h至0FFh
2
RPROT 地址120h至135h
3
WPEN (结合WPZ引脚状态) SPI状态寄存器,仅非易失位。
1级:SPI状态寄存器中的WEN位
在上电,成功完成写功能命令后,或者通过SPI命令WRDI (写禁止),该位被清位。设置WEN位的唯一方法是通过SPI命令WREN(写使能)。注意:在SPI主机出现故障时,WEN位能够防止可写存储器失效。

2级:SPI状态寄存器中的BP1:BP0位
这一常用的写保护方法使用SPI状态寄存器(BP1:BP0)的两个非易失位对EEPROM的所有位、上半部分、上四分之一部分进行写保护,也可以不进行写保护。控制位在SPI状态寄存器中,可受到硬件写保护。没有硬件写保护时,可以通过软件控制来修改块写保护。注意:块写保护将某些EEPROM配置为只读,而将其他的EEPROM留给主机存储数据,在最终产品正常工作时可修改这些数据。

2级:SPI状态寄存器中的RPROT位
这是DS28DG02的一个特殊功能,该方法使用SPI状态寄存器的非易失RPROT位对地址120h以及更高地址范围的用户可写字节进行写保护。如果RPROT是1,对这些地址进行写保护。这保护了RTC、RTC闹钟寄存器、多功能控制/设置寄存器,以及报警/状态寄存器,防止对PIO进行写 *** 作。这一级写保护并不保护PIO相关寄存器的上电默认值,这些数值存储在10Ah至10Fh中。RPROT位在SPI状态寄存器中,可受到硬件写保护。没有硬件写保护时,可以通过软件控制来修改RPROT。注意:寄存器写保护可防止对RTC及其警报的意外改动,还可以防止对最终产品中定义DS28DG02功能的寄存器的改动(例如,看门狗、电池监控器、RTC)。

3级:SPI状态寄存器中的WPEN位
该方法使用WPZ引脚以及SPI状态寄存器中的WPEN位。该功能只保护SPI状态寄存器的非易失位,特别是块保护位BP1:BP0、RPROT和WPEN。WPEN位被置为1时,使能WPZ引脚来控制SPI状态寄存器中的所有非易失位,包括WPEN。对于出厂SPI存储器,WPEN位读0。这样,即使WPZ引脚连接至地,也可以对电路板测试仪上的存储器进行编程。在最后一步中,对存储器编程后,测试仪设置2级保护,将WPEN位写入1,从而激活硬件写保护。只要WPZ引脚的逻辑状态保持为0,SPI状态寄存器的非易失位将保持写保护不变。要修改任一非易失位,必须将WPZ引脚的逻辑状态改为1,例如,通过跳接器,将引脚临时连接至VCC。注意:硬件写保护对2级保护进行永久设置,但还是留有一个后门(WPZ引脚),以便今后的改正。

注意:寄存器写保护被永久使能后,清除看门狗、RTC和电池警报的唯一方法是VCC再次上电。不论VCC电源如何,换掉电池后,清除多功能控制/设置寄存器和RTC及其警报寄存器。如果硬件写保护和寄存器写保护都被激活(RPROT = 1,WPEN = 1,WPZ引脚连接至地GND),用户可能需要致电设备生产商,以重新配置设备,重新运行。

电池选择DS28DG02需要电池来维持存储在地址134h多功能控制/设置寄存器中的配置信息,并保持RTC运行。如果VCC可永久使用,则不需要电池,VBAT引脚连接至VCC。如果VCC中断,没有电池备份,多功能控制/设置寄存器上电时所有位都是0。这会停止RTC,禁止时钟闹钟、看门狗和电池监控器。这是正常设置,与不使用RTC和看门狗的应用无关。典型DS28DG02应用至少会使用RTC或者看门狗,因此需要电池,并对电池进行监控。

只有切断VCC,才能节省电池功耗。有两种情况需要注意:a) RTC振荡器停止时(关断,OSCE = 0);b) RTC振荡器接通时(运行,OSCE = 1)。理论上,还有第三种情况和电池监控器有关。但是,电池监控器(IMAX = 20µA)电池最大负载每小时只持续2秒时间,因此,平均负载电流为11nA (20µA x 2/3600),比RTC关断时的负载低两倍。电池监控器并没有缩短电池的使用时间,因为只有VCC工作时才进行监控,RTC和其他非易失存储器单元由VCC进行供电,而不是电池供电。

DS28DG02的典型电池电压为3V,由一块锂电池(Li+)或者两块串联的氧化银钮扣电池进行供电。通常以mAh (毫安时)来表示这些电池的容量。通过负载电阻测量电池电压下降到规定阈值的时间来获得性能指标,方法和某些应用相似。电池生产商的数据资料上有详细信息:

http://www.panasonic.com/industrial/battery/oem/chem/lith/coin1.htm
http://www.rayovac.com/technical/pdfs/pg_lithium.pdf
http://data.energizer.com/DataSheets.aspx

假设电池和电容类似,电池的放电时间为t = Q/I。例如,如果电池为1mAh,放电电流为1µA,那么放电时间为:

DS28DG02用户指南,第3张

按照下面公式,这一结果与电池容量和放电电流之比相乘:

DS28DG02用户指南,第4张

例如,如果负载电流是10µA,48mAh电池能够使RTC运行48/10 x 41.66,即200天。+25°C左右,RTC接通时的最大负载电流为4.7µA。因此,同样的电池可持续使用:

DS28DG02用户指南,第5张

两块电池串联可加倍电压和容量,但并不延长电池使用时间。为确定使用时间,必须将一块电池的容量带到公式2中,这是因为电流流过串联的每块电池,以同一速率对每块电池放电。

使用PIODS28DG02有12个PIO通道。在典型应用中,有的PIO被用作输入,其他的用作输出,而有的根本就没有使用。在存储器映射上“靠近”的PIO (PIO0至PIO7,PIO8至PIO11)在电路板上并不靠近。对于TSSOP,所有偶数PIO位于封装的左侧,奇数PIO位于封装的右侧。对于TQFN,3个偶数PIO位于封装西侧,3个奇数PIO位于封装东侧,剩余的6个PIO,包括奇数和偶数,位于封装的南侧。这样看起来虽然不太寻常,但是并不影响器件的使用。

如果输出模式中没有PIO需要吸收或者源出大电流,可以采用小电流输出模式。在小电流输出模式中,对于所有共享同一存储器地址的PIO,同时进行PIO读写。如果第5至第8个PIO需要同时读或者写,选择PIO通道0至通道7,以最适合电路板布板拓扑的方式,将它们分配给应用中的节点。由于大电流模式写并不是同时进行,因此,只有优化电路板布板时采用PIO。下面的例子介绍了分配PIO通道的一种方法。

配置实例 输出: 6 输出类型: 4路推挽,2路开漏 输出模式: 小电流(同时写) 输入: 4 反向读 无 没有使用: 2 PIO
以逆时针方向来看DS28DG02的PIO引脚分配,共享同一存储器地址的PIO顺序为0、4、6、2、3、7、5、1。这种顺序和封装类型无关。明显靠在一起的是第6、第2、第3和第7通道。对于其他的两路输出,由于引脚靠近,把第0通道和第4通道分配给它们。这一方法没有使用第1和第5通道。输出类型按4个PIO一组进行设置,0至3,4至7以及8至11;同一组中的PIO有同样的输出类型。实例中的4路输出需要采用推挽。对于刚进行的分配,这可以是第0至第3通道,或者第4至第7通道。由于没有使用第1通道,只有第0、第2和第3通道,因此,无法满足这种输出类型。

为满足输出类型的要求,必须改变通道分配。第4至第7通道现在被用于推挽(任意选择),第2和第3通道为开漏。这样,没有使用第0和第1通道。输入被分配给第8至第11通道,它们也共享同一存储器地址。

下一步,必须定义这一配置的上电默认寄存器值,并写入对应的存储器地址。下表使用以下颜色来解释所进行的选择。

  Value resulTIng from configuraTIon/applicaTIon requirements   Arbitrary assignment, "don't care" condition   (Not assigned, reserved)
PIO输出状态上电默认值
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
10Ah
0
0
1
1
1
1
0
0
3C
10Bh
0
0
0
0
0
0
0
0
00
注意:在这一例子中,假设应用程序需要第2至第5通道以逻辑1上电,第6和第7通道以逻辑0上电。

PIO方向的上电默认值
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
10Ch
0
0
0
0
0
0
1
1
03
10Dh
0
0
0
0
1
1
1
1
0F

PIO反向读的上电默认值(PIO0至PIO7)
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
10Eh
0
0
0
0
0
0
0
0
00

PIO反向读的上电默认值(PIO8至PIO11),PIO输出类型和输出模式
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
10Fh
0
0
0
1
0
0
0
0
10

利用数据资料中的通信实例定义,将定义为输出的PIO按下面序列进行更新:

SEL WREN DSEL SEL WRITEH <20h> <1 byte PIO data> DSEL
要在PIO产生波形模式,并不需要以不同的PIO数据来重复整个序列。而是发送需要的PIO数据字节;第1、第3和第5等字节被用于更新PIO。由于PIO 8至11被分配为输入,因此,其他字节(第2、第4和第6字节等)不起作用。

下面的序列读取被定义为输入的PIO:

SEL READH <27h> <1 bytes PIO data> DSEL
要快速从PIO重复读取,并不需要重复整个序列。而是使用起始地址126h,读取需要的字节。第1、第3和第5等字节返回被定义为输出的通道状态。其他字节(第2、第4和第6字节等)报告被分配为输入的PIO 8至11的数据。

PIO大电流模式对于写 *** 作,PIO可以工作在小电流模式或者大电流模式下。以同样的方式对所有的PIO线进行模式选择。在小电流模式中,共享同一字节地址的所有PIO同时开关。此外,如果以写入地址120h来开始访问PIO,对于DS28DG02接收到的每一数据字节,写地址在120h (PIO0至PIO7)和121h (PIO8至PIO11)之间切换。这种方法支持对PIO的快速写入,因此,不需要在下一次写访问之前执行WREN命令。

在大电流和小电流模式下,PIO有相同的电流吸收或者源出能力。然而,在大电流模式(OTM = 1)下,PIO每次一个通道连续切换;PIO电流摆率受到有源电路的限制。大电流模式并不采用地址切换。地址是从120h递增到121h,然后是122h,以此类推。要再次写入地址120h,则需要新的写序列。

如果DS28DG02有稳定的VCC供电,打开PIO后立即产生复位,感应电压尖峰进入VCC监控器,被错误地认为出现电源失效。在这种情况下,要么必须使用大电流模式,要么一次开关的通道数量小于8个,以软件模拟大电流模式,从而保证电流变化不会超过最大额定±50mA。

RTC晶振和PCB布板 各种封装类型和尺寸都提供了32kHz表晶振。DS28DG02数据资料中的PCB布板假设晶振引脚间距和封装(TSSOP—0.65mm;TQFN—0.50mm)引脚间距相匹配。这是非常紧凑的间距,可能不太容易获得这么小的晶振。为适应更大的晶振,需要对PCB布板进行改动,如图2所示。保持好保护环和局部地平面非常重要。晶振引脚X1和X2至晶振焊盘的走线应尽量对称。

DS28DG02用户指南,图2. 可供选择的另一种PCB布板,第6张
图2. 可供选择的另一种PCB布板

关于晶振选择的详细信息,请参考Maxim应用笔记#616,Considerations for Maxim Real-Time Clock Crystal Selection。该文档还包括SMD晶振的技术数据,以及其他供应商网站的链接。

时钟闹钟DS28DG02能够从每秒一次到每月一次产生RTC闹钟。通过ALMZ引脚发出报警,电池报警和看门狗报警也使用该引脚。作为时钟闹钟的前提条件,必须运行RTC,并使能时钟闹钟(OSCE = 1, CAE = 1)。

一般而言,要消除时钟闹钟,时钟状态必须与闹钟寄存器中的数值相匹配。有4个RTC闹钟寄存器:秒、分钟、小时、星期日期或者月日期。闹钟寄存器中的最高有效位是AM1至AM4,它们控制寄存器是否参与对比。地址133h的DY/DT位规定剩下的6个比特是否和RTC的星期日期或者月日期进行对比。在其他方面,闹钟寄存器和RTC的位分配相匹配。

定义好闹钟时间和频率后,将每个比特(BCD代码)写入模板,将结果转换为十六进制格式(“Hex”列),从而产生时钟闹钟寄存器数据。然后,通过SPI写序列,将获得的数据写入闹钟寄存器。下面的例子解释了这一过程。这里的颜色表示和上面PIO一节的相同。

实例1:每小时的25分钟30秒产生闹钟
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
130h
0
0
1
1
0
0
0
0
30
131h
0
0
1
0
0
1
0
1
25
132h
1
0
0
0
0
0
0
0
80
133h
0
0
0
0
0
0
0
0
00
注意:对于每小时、每分钟或者每秒产生闹钟,并不采用12/24位(地址132h和12Bh的第6位)。要在每分钟的30秒时产生闹钟,将地址131h的第7位改为1。这不包括来自对比的分钟。

实例2:24小时格式,每天在22:59:59产生闹钟
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
130h
0
1
0
1
1
0
0
1
59
131h
0
1
0
1
1
0
0
1
59
132h
0
0
1
0
0
0
1
0
22
133h
1
0
0
0
0
0
0
0
80

实例3:12小时格式,在每星期的第一天6:30:00PM产生闹钟
ADDR
b7
b6
b5
b4
b3
b2
b1
b0
 
Hex
130h
0
0
0
0
0
0
0
0
00
131h
0
0
1
1
0
0
0
0
30
132h
0
1
1
0
0
1
1
0
66
133h
0
1
0
0
0
0
0
1
41
注意:星期日期计数器使用代码1至7。星期日期的计数器值可任意分配。1一般分配给星期天(美国标准),也可以分配给星期一(欧洲标准)。

看门狗CPU监控电路中一般采用看门狗。技术上,看门狗可以解释为可重触发单稳态工作方式。在不稳定状态时,微控制器周期性地将正脉冲加到看门狗的触发输入WDI上,保持一次触发单稳态。如果微控制器做不到这一点,看门狗超时,复位微控制器。

通过SPI状态寄存器的WD1:WD0位来选择DS28DG02的看门狗超时。在寄存器的写访问没有被阻塞(RPROT = 0)时,向地址134h的WDE位写入1,激活看门狗。看门狗停止工作时,地址135h的报警和状态寄存器的WDA位置位;时钟闹钟和电池监控器共享的WDOZ引脚(默认)或者ALMZ引脚(另一选择),以及RSTZ引脚进入低电平状态。

装上电池(电池安装)或者上电复位(如果没有电池)时禁用了看门狗(WDE = 0)。向WDE位写入1,看门狗被激活后,即使VCC被切断,通过电池备用电源,看门狗可一直保持工作。当VCC增大,或者WDE位被置位之后,看门狗内部计数器被清零,这样,在看门狗需要重新触发前,微控制器有时间完成其上电。

报警响应在地址135h的DS28DG02报警和状态寄存器留有6个比特来指示重要事件。在出现这类事件时,微控制器应特别对待,分别进行响应,如下所示。如果RPROT = 0,向该寄存器写入0,所有报警被清除。

RST:复位标志 在RSTZ引脚上有脉冲时,该位被置位,例如,VCC增大时的上电复位,手动复位,或者看门狗报警等。控制器执行其正常上电来进行响应。 WDA:看门狗报警 看门狗报警复位微控制器,对RST也会有相同的响应。微控制器能够计数看门狗报警事件的次数。 CLKA:时钟闹钟 对于时钟闹钟,微控制器有专门的响应。 BOR:电池接通复位标志 连接电池后,多功能控制/设置寄存器、RTC以及RTC闹钟寄存器被清零。这是一种错误状态,需要进行初始化,例如,通过用户输入(时间)和存储在EEPROM中的备份数值来恢复丢失的数值。如果使能了硬件写保护,并且RPROT = 1,除非用户知道怎样禁用硬件写保护,否则需要将设备送回,以便进行维修服务。微控制器通过WPZV位来监视硬件写保护。 POR:上电复位标志 上电复位在RSTZ引脚产生一个脉冲。微控制器执行其正常上电来进行响应。 BATA:电池报警 该报警指示备用电池接近最终使用寿命。这一状态要求用户注意换电池。根据不同的应用,可以对电池报警事件进行计数,达到一定计数值后,在换电池之前,设备停止工作。
结论在需要存储器、RTC、PIO以及电源监控器和看门狗等CPU监控功能的便携式设备和其他应用中,DS28DG02是非常灵活并且使用方便的元件。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2520224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存