二线制串行EEPROM应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计 应用
APPLICATION DESIGN
二线制串行EEPROM应用
滕云 大连东显电子有限公司
摘 要: 本文介绍了AT24C01系列二线制串行EEPROM的使用方法及串行EEPROM与单片机的软件接口,简要说明其在电机控制中 保存控制参数的应用
关键词: 串行EEPROM,二线制总线,参数保存
data setup
setb SCL ; raise clock
nop
; enforce SCL high
nop
;
nop
;
nop
;
clr
SCL ; drop clock
djnz b, x42 ; next bit
setb SDA
nop
3.3 应答信号查询检测 因为在内部定时写周期期间EEPROM的输入无效,这 就可以被用来决定写周期何时完成(这个特性可以被用 来提高总线传输率以达到最大化)。一旦写命令的“停 止”信号从微处理器发出,EEPROM就开始内部定时的写 周期。应答信号的查询检测可以立即开始,微处理器发出 “启动”信号后,紧跟着是含有写命令(R/W=0)的控制 字节(即EEPROM芯片地址)。如果EEPROM写周期仍然 在忙状态,那么就不会有应答信号。如果写周期结束,那 么EEPROM将给出应答信号,并且微处理器可以发送下一 个读或写命令。 各种读写格式如图2、图3、图4、图5、图6所示。
71 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
参考文献 [1] 窦振中.单片机外围器件手册.北京航空航天出版社,1998
(上接P67)
3. 结论
与其它低功率(1W和3W)LED方案相比,大功率、 5WMR16 LED参考设计能够显著提高亮度。因此,该设计 省去了为了满足MR16需求,在10W卤素灯方案中所需的 多个辐射源。
图7. 在5W MR16 LED灯驱动器的PCB丝网印刷层(顶层)上可以 看到直流电源的连接焊盘LED+和LED-。
5. 结语
二线制串行EEPROM操作简单,可以方便的在线写入 或读出。而它又有占用资源少,保存数据可靠的特点。我 们在电机速度控制中EEPROM的应用极大地方便了控制操 作,减少了控制难度。而用它在线保存测试参数,可以消 除产品初装时系统参数差异的影响,也可以消除因产品使 用一段时间后系统参数变化可能带来的控制性能下降。
其接电源时,芯片就具有数据写保护功能。被保护部分的 读操作不受影响,实际上这时被保护部分就可以作为串行 只读存储器使用。
A0,A1,A2:片选或页面选择地址输入。 SCL和SDA是基本的总线操作端,操作要根据串行总 线协议进行,启动位和停止位控制总线是否激活,操作总 是从启动位开始,在停止位结束。串行总线协议定义只有 在总线处于“非忙”状态时,数据传输才能被初始化。在 数据传输期间,只要时钟线为高电平,数据线都必须保持 稳定,否则数据线上的任何变化都被当作“启动”或“停 止”信号。 串行总线状态定义如下图:
图1 串行总线状态定义
① 总线非忙状态(A段) 数据线SDA和时钟线SCL都保持高电平。 ② 启动数据传输(B段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由高电平变为低电平的下降沿被认为是“启动”信号。只 有出现“启动”信号以后,其他的命令才有效。 ③ 停止数据传输(C段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由低电平变为高电平的上升沿被认为是“停止”信号。随
作的程序,晶振频率12MHz。
写一个字节:shout: push b
mov b, #8 ; bit counter
x42:rlc
a
; move bit into CY
mov SDA, c ; output bit
nop
; enforce SCL low and
nop
mov c, SDA
rlc
a
clr
SCLHale Waihona Puke Baidu
djnz b, x43
pop b
ret
; enforce SCL low and data setup ; ; ; raise clock ; enforce SCL high ; ; input bit ; move bit into byte ; drop clock ; next bit
号。这个“停止”信号就激活内部定时编程周期,把接收 到的8位数据写入指定的EEPROM存储单元。在内部定时 写入期间所有的输入都无效,一直到写入操作完成以后才 能再进入新的编程周期。
3.2 读指定地址存储单元的数据
这种方式需要通过用“哑”字节写操作形式对要寻址 的EEPROM存储单元进行定位。微处理器先发送EEPROM 芯片地址(其中R/W=0)和EEPROM存储单元地址,并得 到EEPROM的应答信号后,微处理器就应该再发送一个 “启动”信号,通过发送带有R/W=l的EEPROM芯片地址 进入“读当前地址存储单元数据”的方式,EEPROM产生 相应的应答信号,并串行输出数据。同样在读完一帧数据 后,发送非应答信号,即输入逻辑1,接着需要发送一个 “停止”信号。
2 二线制总线
二线制串行EEPROM通常为8脚器件,其管脚如下: SCL:串行时钟端。这个信号用于对输入和输出数据 的同步,写入串行EEPROM的数据用其上升沿同步,输出 数据用其下降沿同步。 SDA:串行数据(/地址)输入/输出端。这是串行双向 数据输入/输出线,这个引脚是漏极开路驱动,可以与任何 数目的其他漏极开路或集电极开路的器件"线或"连接。 WP:写保护。这个引脚用于硬件数据保护功能,当 其接地时,可以对整个存储器进行正常的读/写操作;当
68 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
应用 APPLICATION DESIGN
设计
着“停止”信号的出现,所有的外部操作都结束。 ④ 数据有效(D段) 在出现“启动”信号以后,在时钟线为高电平状态
时数据线是稳定的,这时数据线的状态就表示要传送的数 据。数据线上数据的改变必须在时钟线为低电平期间完 成,每位数据占一个时钟脉冲。每个数据的传输都是由 “启动”信号开始,结束于“停止”信号。在“启动”与 “停止”信号之间传输的数据字节数由微处理器确定,并 且从理论上说字节数没有限制。
图2 字节写入格式
69 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
设计 应用
APPLICATION DESIGN
图3 页写入格式
图4 读当前地址单元数据格式 图5 读指定单元数据格式
图6 读连续单元数据格式
面是用MCS-51单片机汇编语言编写的几个对EEPROM操
3 串行EEPROM读写操作
EEPROM读写操作有多种方式,下面说明几个主要操作。
3.1 字节编程方式 在这种方式下,微处理器发送EEPROM存储单元地址 和一个字节数据至EEPROM。微处理器发出“启动”信号 后,紧跟着送4位总线器件恃征编码l010和3位EEPROM芯 片地址/页地址XXX以及写状态的R/W位(=0)到总线上。 这表示在接收到被寻址的EEPROM产生的一个应答位后, 微处理器将跟着送1个字节的EEPROM存储单元地址和要 写入的l个字节数据。所以由微处理器发送的下1个字节是 EEPROM存储单元的地址,并将被写入EEPROM片内的地 址指针。微处理器在接收到EEPROM收到存储单元地址后 又一次产生的应答位之后,微处理器才发送数据字节,并 把数据写入被寻址的存储单元。EEPROM再一次发出应答 信号,微处理器收到此应答信号后,便产生“停止”信
⑤ 应答信号 每个正在接收数据的EEPROM在接到一个字节的数据 后,通常需要发出一个应答信号。微处理器必须产生一个 与这个应答位相联系的额外的时钟脉冲。在应答时钟脉冲 周期内,时钟脉冲为高电平、数据线是稳定的低电平时, 数据线必须被下拉。微处理器对EEPROM完成的最后一个 字节不产生应答位,但是应该给EEPROM一个结束信号。 在这种情况下,EEPROM应该结束数据线的高电平状态, 而使微处理器能够产生“停止”信号。注意,如果正在进 行内部定时编程周期,那么将不产生应答位。
1 引言
EEPROM是一种可以用电气方法在线擦除和在线编程 的只读存储器,写入的数据在常温下可以保持十年,一般 其擦写周期可达1万次以上。EEPROM芯片有两类接口: 并行接口和串行接口。并行EEPROM相对容量大、速度 快、功耗大、价格贵,但读写方法简单;串行EEPROM体 积小、功耗低、价格便宜,使用中占用系统信号线少,但 相对工作速度慢,读写方法稍复杂一些。对于那些需要存 放有时需要改变特征代码或参数的系统,通常所需要的字 节数和写入的次数不会很多,写入速度也没有太高要求, 这种情况下采用串行EEPROM是非常合适的。因此串行 EEPROM作为性价比比较理想的非易失存储器,在很多领 域得到应用,如消费类电子产品、汽车类电子产品、办公 自动化产品、通讯类电子产品、工业类电子产品等。下面 以AT24C01系列为例介绍二线制串行EEPROM的使用方法。
4 EEPROM与单片机的连接
可以将串行EEPROM的控制线通过上拉电阻直接与单 片机双向I/O口线相连,仅占用两个口线。我们在一个电 机速度控制中使用AT24C02保存控制参数,包括不同速度 对应的PWM脉冲宽度、电机的比例调节系数等。这样这 些参数在断电时也不会丢失。而且也可以对参数进行在线 测试修正后保存到EEPROM中,来适应电机参数差异。下
; make SDA an input
; bit count
70 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
应用 APPLICATION DESIGN
设计
x43: nop
nop
nop
setb SCL
nop
nop
setb SCL
nop
nop
nop
nop
mov c, SDA
clr
SCL
pop b
ret
读一个字节:shin: setb SDA
push b
mov b, #8
; release SDA for ACK ; enforce SCL low and tAA ; ; raise ACK clock ; enforce SCL high ; ; ; ; get ACK bit ; drop ACK clock
APPLICATION DESIGN
二线制串行EEPROM应用
滕云 大连东显电子有限公司
摘 要: 本文介绍了AT24C01系列二线制串行EEPROM的使用方法及串行EEPROM与单片机的软件接口,简要说明其在电机控制中 保存控制参数的应用
关键词: 串行EEPROM,二线制总线,参数保存
data setup
setb SCL ; raise clock
nop
; enforce SCL high
nop
;
nop
;
nop
;
clr
SCL ; drop clock
djnz b, x42 ; next bit
setb SDA
nop
3.3 应答信号查询检测 因为在内部定时写周期期间EEPROM的输入无效,这 就可以被用来决定写周期何时完成(这个特性可以被用 来提高总线传输率以达到最大化)。一旦写命令的“停 止”信号从微处理器发出,EEPROM就开始内部定时的写 周期。应答信号的查询检测可以立即开始,微处理器发出 “启动”信号后,紧跟着是含有写命令(R/W=0)的控制 字节(即EEPROM芯片地址)。如果EEPROM写周期仍然 在忙状态,那么就不会有应答信号。如果写周期结束,那 么EEPROM将给出应答信号,并且微处理器可以发送下一 个读或写命令。 各种读写格式如图2、图3、图4、图5、图6所示。
71 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
参考文献 [1] 窦振中.单片机外围器件手册.北京航空航天出版社,1998
(上接P67)
3. 结论
与其它低功率(1W和3W)LED方案相比,大功率、 5WMR16 LED参考设计能够显著提高亮度。因此,该设计 省去了为了满足MR16需求,在10W卤素灯方案中所需的 多个辐射源。
图7. 在5W MR16 LED灯驱动器的PCB丝网印刷层(顶层)上可以 看到直流电源的连接焊盘LED+和LED-。
5. 结语
二线制串行EEPROM操作简单,可以方便的在线写入 或读出。而它又有占用资源少,保存数据可靠的特点。我 们在电机速度控制中EEPROM的应用极大地方便了控制操 作,减少了控制难度。而用它在线保存测试参数,可以消 除产品初装时系统参数差异的影响,也可以消除因产品使 用一段时间后系统参数变化可能带来的控制性能下降。
其接电源时,芯片就具有数据写保护功能。被保护部分的 读操作不受影响,实际上这时被保护部分就可以作为串行 只读存储器使用。
A0,A1,A2:片选或页面选择地址输入。 SCL和SDA是基本的总线操作端,操作要根据串行总 线协议进行,启动位和停止位控制总线是否激活,操作总 是从启动位开始,在停止位结束。串行总线协议定义只有 在总线处于“非忙”状态时,数据传输才能被初始化。在 数据传输期间,只要时钟线为高电平,数据线都必须保持 稳定,否则数据线上的任何变化都被当作“启动”或“停 止”信号。 串行总线状态定义如下图:
图1 串行总线状态定义
① 总线非忙状态(A段) 数据线SDA和时钟线SCL都保持高电平。 ② 启动数据传输(B段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由高电平变为低电平的下降沿被认为是“启动”信号。只 有出现“启动”信号以后,其他的命令才有效。 ③ 停止数据传输(C段) 当时钟线(SCL)为高电平状态时,数据线(SDA) 由低电平变为高电平的上升沿被认为是“停止”信号。随
作的程序,晶振频率12MHz。
写一个字节:shout: push b
mov b, #8 ; bit counter
x42:rlc
a
; move bit into CY
mov SDA, c ; output bit
nop
; enforce SCL low and
nop
mov c, SDA
rlc
a
clr
SCLHale Waihona Puke Baidu
djnz b, x43
pop b
ret
; enforce SCL low and data setup ; ; ; raise clock ; enforce SCL high ; ; input bit ; move bit into byte ; drop clock ; next bit
号。这个“停止”信号就激活内部定时编程周期,把接收 到的8位数据写入指定的EEPROM存储单元。在内部定时 写入期间所有的输入都无效,一直到写入操作完成以后才 能再进入新的编程周期。
3.2 读指定地址存储单元的数据
这种方式需要通过用“哑”字节写操作形式对要寻址 的EEPROM存储单元进行定位。微处理器先发送EEPROM 芯片地址(其中R/W=0)和EEPROM存储单元地址,并得 到EEPROM的应答信号后,微处理器就应该再发送一个 “启动”信号,通过发送带有R/W=l的EEPROM芯片地址 进入“读当前地址存储单元数据”的方式,EEPROM产生 相应的应答信号,并串行输出数据。同样在读完一帧数据 后,发送非应答信号,即输入逻辑1,接着需要发送一个 “停止”信号。
2 二线制总线
二线制串行EEPROM通常为8脚器件,其管脚如下: SCL:串行时钟端。这个信号用于对输入和输出数据 的同步,写入串行EEPROM的数据用其上升沿同步,输出 数据用其下降沿同步。 SDA:串行数据(/地址)输入/输出端。这是串行双向 数据输入/输出线,这个引脚是漏极开路驱动,可以与任何 数目的其他漏极开路或集电极开路的器件"线或"连接。 WP:写保护。这个引脚用于硬件数据保护功能,当 其接地时,可以对整个存储器进行正常的读/写操作;当
68 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
应用 APPLICATION DESIGN
设计
着“停止”信号的出现,所有的外部操作都结束。 ④ 数据有效(D段) 在出现“启动”信号以后,在时钟线为高电平状态
时数据线是稳定的,这时数据线的状态就表示要传送的数 据。数据线上数据的改变必须在时钟线为低电平期间完 成,每位数据占一个时钟脉冲。每个数据的传输都是由 “启动”信号开始,结束于“停止”信号。在“启动”与 “停止”信号之间传输的数据字节数由微处理器确定,并 且从理论上说字节数没有限制。
图2 字节写入格式
69 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
设计 应用
APPLICATION DESIGN
图3 页写入格式
图4 读当前地址单元数据格式 图5 读指定单元数据格式
图6 读连续单元数据格式
面是用MCS-51单片机汇编语言编写的几个对EEPROM操
3 串行EEPROM读写操作
EEPROM读写操作有多种方式,下面说明几个主要操作。
3.1 字节编程方式 在这种方式下,微处理器发送EEPROM存储单元地址 和一个字节数据至EEPROM。微处理器发出“启动”信号 后,紧跟着送4位总线器件恃征编码l010和3位EEPROM芯 片地址/页地址XXX以及写状态的R/W位(=0)到总线上。 这表示在接收到被寻址的EEPROM产生的一个应答位后, 微处理器将跟着送1个字节的EEPROM存储单元地址和要 写入的l个字节数据。所以由微处理器发送的下1个字节是 EEPROM存储单元的地址,并将被写入EEPROM片内的地 址指针。微处理器在接收到EEPROM收到存储单元地址后 又一次产生的应答位之后,微处理器才发送数据字节,并 把数据写入被寻址的存储单元。EEPROM再一次发出应答 信号,微处理器收到此应答信号后,便产生“停止”信
⑤ 应答信号 每个正在接收数据的EEPROM在接到一个字节的数据 后,通常需要发出一个应答信号。微处理器必须产生一个 与这个应答位相联系的额外的时钟脉冲。在应答时钟脉冲 周期内,时钟脉冲为高电平、数据线是稳定的低电平时, 数据线必须被下拉。微处理器对EEPROM完成的最后一个 字节不产生应答位,但是应该给EEPROM一个结束信号。 在这种情况下,EEPROM应该结束数据线的高电平状态, 而使微处理器能够产生“停止”信号。注意,如果正在进 行内部定时编程周期,那么将不产生应答位。
1 引言
EEPROM是一种可以用电气方法在线擦除和在线编程 的只读存储器,写入的数据在常温下可以保持十年,一般 其擦写周期可达1万次以上。EEPROM芯片有两类接口: 并行接口和串行接口。并行EEPROM相对容量大、速度 快、功耗大、价格贵,但读写方法简单;串行EEPROM体 积小、功耗低、价格便宜,使用中占用系统信号线少,但 相对工作速度慢,读写方法稍复杂一些。对于那些需要存 放有时需要改变特征代码或参数的系统,通常所需要的字 节数和写入的次数不会很多,写入速度也没有太高要求, 这种情况下采用串行EEPROM是非常合适的。因此串行 EEPROM作为性价比比较理想的非易失存储器,在很多领 域得到应用,如消费类电子产品、汽车类电子产品、办公 自动化产品、通讯类电子产品、工业类电子产品等。下面 以AT24C01系列为例介绍二线制串行EEPROM的使用方法。
4 EEPROM与单片机的连接
可以将串行EEPROM的控制线通过上拉电阻直接与单 片机双向I/O口线相连,仅占用两个口线。我们在一个电 机速度控制中使用AT24C02保存控制参数,包括不同速度 对应的PWM脉冲宽度、电机的比例调节系数等。这样这 些参数在断电时也不会丢失。而且也可以对参数进行在线 测试修正后保存到EEPROM中,来适应电机参数差异。下
; make SDA an input
; bit count
70 SEMICONDUCTOR COMPONENTS APPLICATION 2008年03月
应用 APPLICATION DESIGN
设计
x43: nop
nop
nop
setb SCL
nop
nop
setb SCL
nop
nop
nop
nop
mov c, SDA
clr
SCL
pop b
ret
读一个字节:shin: setb SDA
push b
mov b, #8
; release SDA for ACK ; enforce SCL low and tAA ; ; raise ACK clock ; enforce SCL high ; ; ; ; get ACK bit ; drop ACK clock