AN-1139: 了解并行编程协议 (Rev. 0) PDF

AN-1139
应用笔记
One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
了解并行编程协议
作者:Eckart Hartmann
简介
ADuC8xx系列器件编程的主要方法是通过串行编程,详细
说明请参阅ADI公司网站(www.analog.com)上的相关数据
手册以及应用笔记AN-1074。
本应用笔记将说明该并行编程协议。此协议与市场上许多
独立EPROM和EEPROM器件所用的协议本质上相同,但有
一些额外考虑必须注意。
然而,对于某些用户来说,通过标准器件编程器对这些器
件进行编程可能更为方便。ADuC8xx系列支持并行编程,
因此标准化编程器供应商会支持该系列器件。
本应用笔记的内容适用于所有ADuC83x和ADuC84x器件。
Rev. 0 | Page 1 of 12
AN-1139
目录
简介....................................................................................................1
擦除全部......................................................................................8
存储器映射.......................................................................................3
写入字节......................................................................................9
引脚配置 ...........................................................................................4
页编程 ........................................................................................10
进入并行编程模式 .........................................................................5
读取字节....................................................................................11
命令功能 ...........................................................................................6
字节写入/字节读取程序流....................................................12
写入地址寄存器.........................................................................6
读取地址寄存器.........................................................................7
2012年1月—修订版0:初始版
Rev. 0 | Page 2 of 12
AN-1139
存储器映射
在并行编程模式下,存储器的各区域映射到可用可寻址空
间的各部分。图1所示为小存储器器件ADuC834/ADuC836
的映射,图2所示为大存储器器件ADuC831/ADuC832/
ADuC841/ADuC842/ADuC843/ADuC845/ADuC847/ADuC848
的映射。MS位(详见“命令功能”部分所述)决定是对程序存
储器寻址(MS = 1),还是对数据存储器寻址(MS = 0)。
EMBEDDED DOWNLOAD/DEBUG KERNEL
PERMANENTLY EMBEDDED FIRMWARE ALLOWS CODE TO
BE DOWNLOADED TO ANY OF THE 8kB OF ON-CHIP
MEMORY VIA SERIAL DOWNLOAD MODE.
THE KERNEL SPACE APPEARS AS NOP
INSTRUCTIONS TO USER CODE.
0x27FF
2kB
0x2000
0x1FFF
6kB OF CODE MEMORY ADDRESSABLE
IN PARALLEL PROGRAMMING MODE.
8kB
0x27F
0x0000
MS = 1
0x000
MS = 0
10457-001
640B
ON-CHIP
FLASH/EE
DATA MEMORY
图1. 小存储器器件的并行编程存储器映射
EMBEDDED DOWNLOAD/DEBUG KERNAL
PERMANENTLY EMBEDDED FIRMWARE ALLOWS CODE TO
BE DOWNLOADED TO ANY OF THE 62kB OF ON-CHIP
MEMORY VIA SERIAL DOWNLOAD MODE.
THE KERNAL SPACE APPEARS AS NOP
INSTRUCTIONS TO USER CODE.
0xFFFF
2kB
0xF800
0xF7FF
32 BYTES OR 62kB OF CODE MEMORY
ADDRESSABLE IN PARALLEL PROGRAMMING MODE.
62kB
0xFFF
0x0000
MS = 1
图2. 大存储器器件的并行编程存储器映射
Rev. 0 | Page 3 of 12
0x000
MS = 0
10457-002
4kB
ON-CHIP
FLASH/EE
DATA MEMORY
AN-1139
引脚配置
并行编程是利用图3所示信号向器件发送一个命令序列而
实现的。先是一个特殊的输入序列,然后是“命令功能”部
分所述的不同命令。
•
•
•
•
•
•
端口3是用于写入和读取字节的8位双向数据总线。
P1.1至P1.4是用于指定擦除、编程和读取操作的4位命
令输入。
P1.5至P1.7为并行编程提供时序。
P1.0是低电平有效使能输入,用于选通P1.1至P1.4上
的命令。
EA用于进入并行编程模式。
为了进入并行编程模式,PSEN必须通过图中所示晶体
管基极的1 kΩ电阻接地。
DD
V
ADuC83x/ADuC84x
P3.0 TO P3.7
COMMAND
DATA
P1.1 TO P1.4
EA
ENABLE
P1.5 TO P1.7
P1.0
RESET
PSEN
1kΩ
图3. 用于并行编程的引脚配置
Rev. 0 | Page 4 of 12
10457-003
TIMING
AN-1139
进入并行编程模式
•
•
•
•
为了进入并行编程模式,P3.1至P3.4须设置为0b1101。
进入并行模式时,为确保将一个安全命令放在端口1上,
请使用0xCD命令,因为它对应于读取地址寄存器命令。
PSEN必须通过一个1 kΩ电阻驱动,如图3所示。
必须将接地引脚(DGND和AGND)视为一个节点。
必须将VDD引脚(AVDD和DVDD)视为一个节点。
施加于任何引脚的电压不得大于VDD或小于地。
在整个编程过程中,VDD必须保持稳定并且处于额定范
围内。
关于电源,应注意以下几点:
150ms MIN
VDD (I)
1µs MIN
0µs MIN
RESET (I)
PSEN (I)
50µs + 10µs
EA (I)
0µs MIN
P3.4 TO P3.1(I) (I)
0b1101
0µs MIN
P1.7 TO P1.0 (I)
0xCD
100µs MIN
100µs MIN
图4. 用于并行编程的进入序列
Rev. 0 | Page 5 of 12
10457-004
P3.0 (I)
AN-1139
命令功能
表1列出了执行各种并行编程功能的命令。
写入地址寄存器
表1. 并行编程命令
EADRH和EADRL是用于微控制器产品的地址寄存器。为
了写入地址进行字节编程,请使用图5所示的命令和时序
序列。
P1.4
0
MS
MS
0
1
1
P1.3
0
0
0
1
1
1
P1.2
0
1
1
1
1
1
P1.1
0
0
1
0
0
1
功能
擦除全部(代码/数据加安全位)
写入字节
读取字节
读取地址寄存器
写入地址寄存器
默认上拉,无操作
表2. 写入地址寄存器命令密钥
P1.4
1
P1.3
1
P1.2
1
P1.1
0
功能
写入地址寄存器
注意,完成字节或页编程命令后,EADRL会自动递增,因
此对于后续的顺序编程命令,无需手动递增EADRL。
在写入字节功能和读取字节功能中,表1中的MS位用于选
择程序存储器(P1.4 = 1)或数据存储器(P1.4 = 0)。
P1.4 TO P1.1(I)
COMMAND (0b1110)
P3 (I)
PROGRAM DATA IN
P1.6 (I)
ADDRESS: (0 = EADRL/1 = EADRH)
P1.7 (I)
P1.5 (I)
P1.0 (I)
1µs MIN
1µs MIN
1µs MIN
10457-005
NOTES
1. IF P1.6 = 1, THEN EADRH IS SELECTED.
2. IF P1.6 = 0, THEN EADRL IS SELECTED.
图5. 写入地址寄存器
Rev. 0 | Page 6 of 12
AN-1139
读取地址寄存器
表3. 读取地址寄存器命令密钥
EADRH和EADRL是用于微控制器产品的地址寄存器。为
了读取当前地址,请使用图6所示的命令和时序序列。
P1.4
0
P1.4 TO P1.1(I)
P1.3
1
P1.2
1
P1.1
0
功能
读取地址寄存器
COMMAND (0b0110)
DATA OUT
P3 (O)
P1.7 (I)
0µs MIN
ADDRESS: (0 = EADRL / 1 = EADRH)
P1.6 (I)
P1.5 (I)
P1.0 (I)
1µs MIN
200ns MAX
10457-006
NOTES
1. IF P1.6 = 1, THEN EADRH IS SELECTED.
2. IF P1.6 = 0, THEN EADRL IS SELECTED.
图6. 读取地址寄存器
Rev. 0 | Page 7 of 12
AN-1139
擦除全部
为了擦除NV数据和程序闪存,请使用图7所示的命令和时序序列。
表4. 擦除全部命令密钥
P1.3
0
P1.2
0
P1.1
0
P1.4 TO P1.1(I)
功能
擦除全部(代码/数据加安全位)
COMMAND (0b0000)
P1.6 (I)
P1.7 (I)
P1.5 (I)
ERASE 20ms ± 10µs
P1.0 (I)
10µs MIN
30µs MIN
1µs MIN
0µs MIN
图7. 擦除全部
Rev. 0 | Page 8 of 12
10457-007
P1.4
0
AN-1139
写入字节
为了在EADRH和EADRL(已通过写入地址寄存器操作编
程,见图5)所确定的位置写入一个字节,请使用图8所示的
命令和时序序列。
表5. 写入字节命令密钥
P1.4
MS
P1.3
0
P1.2
1
P1.1
0
功能
写入字节
关于MS位的说明,请参阅“命令功能”部分和表1。
COMMAND (0b0010 = DATA MEMORY/0b1010 = PROGRAM MEMORY)
P1.4 TO P1.1 (I)
PROGRAM DATA IN
P3 (I)
0µs MIN
1µs MIN
P1.7 (I)
P1.6 (I)
P1.5 (I)
P1.0 (I)
30µs ± 5µs
10µs ± 1µs
图8. 写入字节
Rev. 0 | Page 9 of 12
10µs
± 1µs
10µs
MIN
1µs MIN
10457-008
60µs ± 10µs
10µs MIN
AN-1139
页编程
除了一次写入一个字节外,还可以使用页编程功能,该功
能可以按照图9所示的时序图选择。注意,其命令字节与
字节编程功能相同。事实上,页编程功能就是在严格的时
序限制内连续快速写入一系列单字节。如果因为某种原因
无法满足所有时序要求,请使用字节编程。
表7. 程序存储器的一页
地址
地址0
地址1
地址2
...
地址31
表6. 页编程命令密钥
P1.3
0
P1.2
1
P1.1
0
功能
写入字节
表8. 数据存储器的一页 1
地址
地址0
地址1
关于MS位的说明,请参阅“命令功能”部分和表1。
一页程序存储器的大小为32字节,一页数据存储器的大小
仅两字节。对于程序存储器,一页的第一个地址结束于
0b00000,最后一个地址结束于0b11111。对于数据存储
器,一页的第一个地址结束于0,最后一个地址结束于1。
详见表7和表8所示。页编程要求页中的所有地址在一个序
列内依次写入,从地址0开始,结束于地址31(数据存储器
则是地址1)。
在并行编程模式下,一页数据存储器为2字节,但在用户模式下,
每页为4字节。
COMMAND (0b0010 = DATA MEMORY/0b1010 = PROGRAM MEMORY)
P1.4 TO P1.1 (I)
P3 (I)
1
值
XXXXXXXXXXXXXXX0
XXXXXXXXXXXXXXX1
DATA0
DATA1
DATA2
DATA3
DATA31
P1.5 (I)
10µs MIN
60µs
±10µs
5µs ±1µs
P1.0 (I)
1µs MIN
10µs ±1µs
P1.6 (I)
30µs
±5µs
30µs
±5µs
P1.7 (I)
1µs MIN
10µs MIN
1µs MIN
1µs MIN
10µs MIN
1µs MIN
5µs
±1µs
1µs MIN
REPEAT FOR 32 ADDRESSES FOR PROGRAM MEMORY
REPEAT FOR 2 ADDRESSES FOR DATA MEMORY
图9. 页编程
Rev. 0 | Page 10 of 12
10457-009
P1.4
MS
值
XXXXXXXXXX00000
XXXXXXXXXX00001
XXXXXXXXXX00010
...
XXXXXXXXXX11111
AN-1139
读取字节
为了读取地址(EADRH:EADRL)处的字节,请使用图10所
示的命令和时序序列。
表9. 读取字节命令密钥
P1.4
MS
P1.3
0
P1.2
1
P1.1
1
功能
读取字节
关于MS位的说明,请参阅“命令功能”部分和表1。
P1.4 TO P1.1(I)
COMMAND (0b0011 = DATA MEMORY / 0b1011 = PROGRAM MEMORY)
P3 (O)
DATA OUT
0µs MIN
P1.7 (I)
P1.6 (I)
P1.5 (I)
P1.0 (I)
10457-010
1µs MIN
200µs MAX
图10. 读取字节
Rev. 0 | Page 11 of 12
AN-1139
字节写入/字节读取程序流
图11所示的序列假设器件已被完全擦除。如果字节位置不是处于已擦除状态,可能无法正确编程。
PROG ADDRESS
BYTE PROG/READ
1
图11. 字节写入/读取序列
©2012 Analog Devices, Inc. All rights reserved. Trademarks and
registered trademarks are the property of their respective owners.
AN10457sc-0-1/12(0)
Rev. 0 | Page 12 of 12
≥2
10457-011
IF
NEXT ADDRESS – OLD ADDRESS