DS28DG02用户指南

要: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,在接收或者发送数据前,首先需要一条命令。同样,在半双工模式下,数据由主机传送到从机或者由从机传送到主机。
图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,那么放电时间为:
按照下面公式,这一结果与电池容量和放电电流之比相乘:
例如,如果负载电流是10µa,48mah电池能够使rtc运行48/10 x 41.66,即200天。+25°c左右,rtc接通时的最大负载电流为4.7µa。因此,同样的电池可持续使用:
两块电池串联可加倍电压和容量,但并不延长电池使用时间。为确定使用时间,必须将一块电池的容量带到公式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 dsel
要在pio产生波形模式,并不需要以不同的pio数据来重复整个序列。而是发送需要的pio数据字节;第1、第3和第5等字节被用于更新pio。由于pio 8至11被分配为输入,因此,其他字节(第2、第4和第6字节等)不起作用。
下面的序列读取被定义为输入的pio:
sel readh 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至晶振焊盘的走线应尽量对称。
图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是非常灵活并且使用方便的元件。

分布式存储之 Raft概述介绍
荣耀Magic怎么样 一台很适合城市上班族的手机
5G毫米波商用成为趋势,未来能在众多行业中应用
如何使用蓝牙低功耗实现遥控器的语音命令
我国的人工智能芯片的市场规模及发展前景
DS28DG02用户指南
AD9838和AD9837:直接数字频率合成IC
深圳欧德蒙科技有限公司推出迅智H1心电带
弹片微针模组有效提高了手机触摸屏的测试效率
贸泽电子荣获2015年度电子元器件行业十大品牌企业大奖
全面屏iPhone已经在路上,苹果再曝新专利
BloombergNEF:预计2040年中国电动汽车销量占全球的25%
恩智浦推出可调光LED控制器,改善12V MR16灯的效率
工程师研发出可有效隐匿物体和人体的红外辐射的超薄轻量隐形板
红外测温仪能测体温吗
首尔半导体针对亿光提起的LED专利无效诉讼全部获胜
医疗记录将是苹果健康策略规划的关键因素
基于Arduino的音乐创作系统设计
回顾中信集团获IDC数字化转型综合领军者的介绍和分析
荣耀手机业务需要多少钱买下?