1、W78E58B ? 8 ? ?: December 22, 2004 - 1 - ?: SC1 目 录 : 1. 概述 3 2. 特性 3 3. 管脚配置 .4 4. 管脚描述 .5 5. 方块图 7 6. 功能描述 .8 6.1 RAM8 6.2 定时器 0, 1, 28 6.3 时钟 .9 6.4 晶体振荡器 9 6.5 外部时钟 9 6.6 电源管理 9 6.7 减少 EMI辐射 .9 6.8 复位 .9 6.9 I/O口 4 .11 6.10 INT2 /INT3 12 6.11 P4口基地址 寄存器 .14 6.12 在线编程( ISP)模式 15 6.13 在线编程控制寄存器( C
2、HPCON) 17 6.14 F04KBOOT 模式 (从 LDROM启动) .18 7. 保密位 22 7.1 锁止位 .22 7.2 MOVC 禁止 22 7.3 加密 .22 8. 电气特性 .23 8.1 绝对最大额定值 .23 8.2 DC特性 23 W78E58B - 2 - 8.3 AC特性 25 8.3.1 时钟输入波形 25 8.3.2 程序读取周期 26 8.3.3 数据读取周期 26 8.3.4 数据写周期 27 8.3.5 端口访问周期 27 9. 时序波形图 .28 9.1 程序读取周期 .28 9.2 数据读周期 28 9.3 数据写周期 29 9.4 端口访问周期
3、 .29 10. 典型应用电路 30 10.1 扩展的外部程序存储器和石英晶体 .30 10.2 扩展的外部程序存储器和振荡器 .31 11. 封装尺寸 .32 11.1 DIP4032 11.2 44 管脚 PLCC33 11.3 44 管脚 PQFP .34 12. 应用指南 .35 12.1 ISP 软件编程示例: 35 13. 文件版本描述 42 W78E58B ?: December 22, 2004 - 3 - ?: SC1 1. 概述 W78E58B 是具有带 ISP 功能的 Flash EPROM 的低功耗 8 位微控制器; ISP 功能的 Flash EPROM可用于固件升级
4、。它的指令集同标准 8052 指令集完全兼容。 W78E58B 包含 32K 字节的主 ROM、 4K 字 节的辅助 ROM。(位于 4K 字节辅助 ROM 中的装载( loader)程序,可以让用户更新位于 32K 主 ROM 中的程序内容。) 512 字节片内 RAM; 4 个 8 位双向、可位寻址的 I/O 口;一个附加的 4 位 I/O 口 P4; 3个 16 位定时 /计数器及一个串行口。这些外围设备都由有 8 个中断源和 2 级中断能力的中断系统支持。为了方便用户进行编程和验证, W78E58B 内含的 ROM允许电编程和电读写。一旦代码确定后,用户就可以对代码进行保护。 W78E
5、58B 有 2 种节电模式,空闲模式和掉电模式, 2 种模式均可由软件来控制选择。空闲模式下,处理器时钟被关闭,但外设仍继续工作。在掉电模式下晶体振荡器停止工作,以将功耗降至最低。外部时钟可以在任何时间及状态下被关闭,而不影响处理器运行。 2. 特性 ? 全静态设计的 CMOS 8位微处理器 ? 32K 字节片内 应用程序 ISP Flash EPROM(APROM) ? 4K 字节 辅助 ROM,装载程序存储器 (LDROM) ? 512 字节片内暂存 RAM(包括 256 字节辅助 RAM,软件可选 ) ? 64KB 程序存储器地址空间 , 64KB 数据存储器地址空间 ? 4 个 8 位
6、 双向 I/O口 ? 一个 4 位 可编程 I/O 口 ? 3 个 16 位定时 /计数器 ? 一个全双工串行口( UART) ? 看门狗定时器 ? 8 个中断源, 2 级中断能力 ? 内建电源管理 ? 降低 EMI 模式 ? 代码保护机制 ? 封装 : ? DIP40: W78E58B-40 ? PLCC44: W78E58BP-40 ? PQFP44: W78E58BF-40 ?无铅封装 DIP40: W78E058B40DL ?无铅封装 PLCC44: W78E058B40PL ?无铅封装 PQFP44: W78E058B40FL W78E58B - 4 - 3. 管 脚配置 VDD12
7、345678910111213141516171819203940343536373830313233262728292122232425P0.0, AD0P0.1, AD1P0.2, AD2P0.3, AD3P0.4, AD4P0.5, AD5P0.6, AD6P0.7, AD7EAALEPSENP2.5, A13P2.6, A14P2.7, A15P2.0, A8P2.1, A9P2.2, A10P2.3, A11P2.4, A12T2, P1.040-Pin DIP (W78E58B)P1.2P1.3P1.4P1.5P1.6RXD, P3.0TXD, P3.1P1.7RSTINT0, P
8、3.2INT1, P3.3T0, P3.4T1, P3.5WR, P3.6RD, P3.7XTAL1XTAL2VSST2EX, P1.144-Pin PLCC (W78E58BP) 44-Pin QFP (W78E58BF)402 1 44 43 42 416 5 4 3393837363534333231302928272625242322212019181710987141312111615P1.5P1.6P1.7RSTRXD, P3.0TXD, P3.1INT0, P3.2INT1, P3.3T0, P3.4T1, P3.5AD3,P0.3T2,P1.0P1.2VDDAD2,P0.2AD
9、1,P0.1AD0,P0.0T2EX,P1.1P1.3P1.4XTAL1VSSP2.4,A12P2.3,A11P2.2,A10P2.1,A9P2.0,A8XTAL2P3.7,/RDP3.6,/WRP0.4, AD4P0.5, AD5P0.6, AD6P0.7, AD7EAALEPSENP2.7, A15P2.6, A14P2.5, A13P4.1P4.0INT2, P4.3/INT3,P4.23440 39 38 37 36 3544 43 42 413332313029282726252423P0.4, AD4P0.5, AD5P0.6, AD6P0.7, AD7EAALEPSENP2.7,
10、 A15P2.6, A14P2.5, A1322212019181716151413121143218765109P1.5P1.6P1.7RSTRXD, P3.0TXD, P3.1INT0, P3.2INT1, P3.3T0, P3.4T1, P3.5XTAL1VSSP2.4,A12P2.3,A11P2.2,A10P2.1,A9P2.0,A8XTAL2P3.7,/RDP3.6,/WRAD3,P0.3T2,P1.0P1.2VDDAD2,P0.2AD1,P0.1AD0,P0.0T2EX,P1.1P1.3P1.4P4.0/INT3,P4.2P4.1INT2, P4.3W78E58B ?: Decem
11、ber 22, 2004 - 5 - ?: SC1 4. 管脚描述 符号 描述 EA 外部访问使能:此管脚使处理器访问外部 ROM。当 EA 保持高电平时, ROM的地址和数据就不会出现在总线上。 PSEN 程序存储使能:此管脚允许外部 ROM 数据出现在 P0 口的地址 /数据总线上。 当访问内部 ROM 时,此管脚上不输出 PSEN信号。 ALE 地址锁存使能: ALE 用于将 P0 口地址锁存,使其和数据分离。 RST 复位: 振荡器运行时,此管脚上出现两个机器周期的 高电平将使器件复位。 XTAL1 石英晶体 1:晶体振荡器的输入。此管脚可由一个外部时钟驱动。 XTAL2 石英晶体 2
12、:晶体振荡器的输出。 XTAL2 是 XTAL1 的反相端。 VSS 地: 地电位 VDD 电源:电源工作电压 P0.0-P0.7 端口 0:端口 0 是一个双向 I/O 口,在访问外部存储器时,端口 0 可用作低位地址 /数据总线。端口 0 是一个开漏极端口,在进行编程时需要连接一个外部上拉电路。 P1.0-P1.7 端口 1:端口 1是一个具有内部上拉电路的双向 I/O 口。有复用功能位,如下: T2( P1.0):定时 /计数器 2的外部计数输入 T2EX( P1.1)定时 /计数器 2 的重装载 /捕获控制 P2.0-P2.7 端口 2:端口 2 是一个具有内部上拉电路的双向 I/O
13、口。此端口提供访问外部存储器的高位地址。 W78E58B - 6 - 管脚描述 ( 续 ) 符号 描述 P3.0-P3.7 端口 3:端口 3是一个具有内部上拉电路的双向 I/O 口。所有位都有复用功能, 如下: RXD( P3.0):串行口接收器输入 TXD( P3.1):串行口发送器输出 0INT ( P3.2):外部中断 0 1INT ( P3.3):外部中断 1 T0( P3.4):定时器 0外部输入 T1( P3.5):定时器 1外部输入 WR ( P3.6):外部数据存储器写选通 RD ( P3.7):外部数据存储器读选通 P4.0-P4.3 端口 4:可位寻址的双向 I/O 口
14、P4。 P4.3 和 P4.2 为功能复用管脚。它们既可以作为通用的 I/O 口,也可以作为外部中断源的输入( 2INT / 3INT ) W78E58B ?: December 22, 2004 - 7 - ?: SC1 5. 方块图 P3.0P3.7P1.0P1.7ALUPort 0LatchPort 1LatchTimer1Timer0Port1UARTXTAL1 PSENALE VssVccRSTXTAL2OscillatorInterruptPSWInstructionDecoder&SequencerReset BlockBus & ClockControllerSFR RAMAd
15、dressPower control128 bytesRAM & SFRStackPointerBAddr. Reg.IncrementorPCDPTRTemp Reg.T2T1ACCPort 3LatchPort 4LatchPort3Port 2LatchP4.0P4.3Port4Port0Port2 P2.0P2.7P0.0P0.7INT2INT3WatchdogTimerROMW78E58B - 8 - 6. 功能描述 W78E58B 的体系 结构包括一个外围有多个寄存器的核心控制器, 4 个通用 I/O口,一个 4 位可编程特殊功能 I/O 口, 512 字节的 RAM, 3 个定时
16、器 /计数器和一个串行口。处理器支持 111 条 不同的操作码,并可访问 64k 的程序地址空间和 64k 的数据存储空间 。 6.1 RAM W78E58B有 512字节的片内 RAM,它被分成了 2个区,一个 256字节的暂存 RAM区,和一个 256字节的辅助 RAM区。这些 RAM通过不同的方式 寻址。 ? 地址为 0H-7FH的 RAM 这些 RAM可以用与 8051相同的直接或间接寻址方式来寻址。在选定的 RAM区内,寻址指针是 R0和 R1。 ? 地址为 80H-FFH的 RAM 只能以与 8051相同的间接寻址方式来寻址,在选定的 RAM区内,寻址指针是 R0和 R1。 ? A
17、UX-RAM 地址范围为 0H-FFH的 AUX-RAM的寻址方式与用 MOVX指令反复问外部数据存储器的寻址方式相同。在选定的 RAM区内,寻址指针是 R0、 R1和 DPTR。对于地址高于 FFH的外部数据存贮器的访问,寻址方式与 8051下的 MOVX指令相同。在复位 以后, AUX-RAM是被关闭的。把 CHPCON寄存器中的 bit 4 置位 ,可以使能对 AUX-RAM的访问。在使能 AUX-RAM后指令 “MOVX RI”将始终访问片内AUX-RAM。当执行的指令来自于内部程序存储器时,对 AUX-RAM的访问不会影响 P0, P2口以及WR、 RD 。 例程: CHPENR E
18、QU F6H CHPCON EQU BFH MOV CHPENR, #87H MOV CHPENR, #59H ORL CHPCON, #00010000B ;打开 AUX-RAM MOV CHPENR, #00H MOV R0, #12H MOV A, #34H MOVX R0,A ;向 12h 写入 34h 6.2 定时器 0, 1, 2 定时器 0, 1, 2 分别 包含 2 个 8 位数据寄存器。 它们 是定时器 0 下的 TL0、 TH0,定时器 1 下的 TL1、TH1,定时器 2 下的 TL2、 TH2。 TCON 和 TMOD 控制 定时器 0, 1。 T2CON寄存器对定时器
19、 2 进行控制。 RCAP2H, RCAP2L 是定时 器 2 的重装 /捕捉寄存器。 定时器 0 , 1 的工作方式与 W78C51 一样。定时器 2 是 W78E52 的新增特性。它是一个由 T2CON 寄存器控制的 16 位定时器 / 计数器。同定时器 0 , 1 一样,W78E58B ?: December 22, 2004 - 9 - ?: SC1 定时器 2 可以用作外部时间计数器和内部时钟。定时器 2 有 3 种运行方式:捕捉,自动重装,波特率发生器。在捕捉和自动重装模式下时钟速度与定时器 0 , 1 相同 。 6.3 时钟 W78E58B 设计 为 既可以使用一个晶体振荡器,也
20、可以使用一个外部时钟。在使用时钟之前,时钟频率由内部二分频。这使得 W78E58B 对时钟占空比变化相对不敏感。 6.4 晶体振荡器 W78E58B包含一个内置的晶体振荡器。为使振荡器工作,必须在 XTAL1和 XTAL2 管脚之间连接一个石英晶体。另外,必须分别在这两个管脚和地之间连一个负载电容。 6.5 外部时钟 外部时钟源连接到管脚 XTAL1上,管脚 XTAL2悬空。晶体振荡器要求 XTAL1上的输入是一个 CMOS型输入。 6.6 电源管理 空闲模式 通过将 PCON寄存器的 IDL位置位,系统进入空闲模式。在空闲模式下,连接到处理器的内部时钟被关闭。外设和中断逻辑继续工作。当有中断
21、或复位发生时,处理器退出空闲模式。 掉电模式 通过将 PCON寄存器的 PD位置位,处理 器进入掉电模式。在这种模式下,包括振荡器在内的所有时钟被关闭。退出掉电模式的方法是产生复位 或外部中断 INT0 或 INT1 。 6.7 减少 EMI辐射 为了减少振荡电路中的 EMI 辐射, W78E58B 允许用户通过编程将安全寄存器的 B7 位清零,来减少片内振荡放大器的增益。一旦 B7 置为 0,放大器就会减少一半的增益。用户在试图减少晶振放大器增益时,必须注意:在高于 24MHZ的高频下运行时,减少一半的增益也许会使外部晶振工作不正常。当在较低的增益下运行时,应适当调整 R, C1和 C2的值
22、 。 6.8 复位 外部 RESET 信号在 S5P2 期间被采样。为使复位有效,在振荡器运行时,复位信号至少要保持两个机器周期的高电平。当 W78E58B 应用一个外部 RC 网络时,复位线上的内部触发电路用来防止尖峰脉冲。复位逻辑电路也带有一个专用的消除尖峰脉冲的电路,同样可以消除复位线上的尖峰脉冲。在复位 时 ,端口地址被初始化为 FFH,堆栈指针为 07H, PCON( PCON.4除外)为 00H, W78E58B - 10 - 除 SBUF 之外的所有 SFR 寄存器为 00H, SBUF 不被复位。 W78E58 特殊功能寄存器及其复位值 F8 FF F0 +B 00000000
23、 CHPENR 00000000 F7 EB EF E0 +ACC 00000000 E7 D8 +P4 XXXX1111 DF D0 +PSW 00000000 D7 C8 +T2CON 00000000 RCAP2L 00000000 RCAP2H 00000000 TL2 00000000 TH2 00000000 CF C0 XICON 00000000 P4CONA 00000000 P4CONB 00000000 SFRAL 00000000 SFRAH 00000000 SFRFD 00000000 SFRCN 00000000 C7 B8 +IP 00000000 CHPCON
24、 0XX00000 BF B0 +P3 00000000 P43AL 00000000 P43AH 00000000 B7 W78E58B ?: December 22, 2004 - 11 - ?: SC1 W78E58 特殊功能寄存器及其复位值(续) A8 +IE 00000000 P42AL 00000000 P42AH 00000000 P2ECON 0000XX00 AF A0 +P2 11111111 A7 98 +SCON 00000000 SBUF XXXXXXXX 9F 90 +P1 11111111 P41AL 00000000 P41AH 00000000 97 88 +
25、TCON 00000000 TMOD 00000000 TL0 00000000 TL1 00000000 TH0 00000000 TH1 00000000 8F 80 +P0 00000000 SP 00000111 DPL 00000000 DPH 00000000 P40AL 00000000 P40AH 00000000 PCON 00110000 注释: 1. SFR前有( +)的表示该 SFR可字节寻址也可位寻址 2. 用粗体字表示的 SFR是扩展功能寄存器 6.9 I/O口 4 I/O 口 4的地址为 D8H,是一个 4位多功能可编程 I/O口。每个管脚都可以通过软件来单独设置
26、 。 I/O口 4有 4种工作方式。 模式 0: P4.0-P4.3是与 P1口功能相同的双向 I/O口。 如果外部中断 2INT / 3INT 使能, P4.2、 P4.3复用为2INT / 3INT 输入口。 模式 1: P4.0-P4.3是在指定地址单元处与 RD信号同步的读信号。 这些信号可用做外部设备的片选信号。 模式 2: P4.0-P4.3是在 指定地址单元处与 WR 信号同步的读信号。 这些信号可用做外部设备的片选信号。 模式 3: P4.0-P4.3是在指定地址单元处与 RD或 WR信号同步的读、写信号。 这些信号可用做外部设备的片选信号。 当端口 4 倍设置为 片选信号时,
27、片选信号的地址范围与特殊寄存器 P4xAH、 P4xAL、 P4CONA 和 P4CONB的直有关 。 寄存器 P4xAH和 P4xAL 存放 16-位 P4.x的基址。 寄存器 P4CONA 和 P4CONB 包含端口的操作模式控制位。 W78E58B - 12 - 6.10 INT2 /INT3 两个附加的外部中断 2INT / 3INT ,与标准的 80C52中的外部中断 0和 1的功能相似。这些中断的功能 /状态由 XICON(外部中断控制)寄存器中的位设置 /表示。 XICON寄存器是可位寻址的,但不是标准的 80C52中的标准寄存器。其地址为 0C0H。可用 “SETB( /CLR
28、) bit” 指令来置位 /清零 XICON寄存器中的各个位。例如, “SETB 0C2H”指令可将 XICON的 EX2位置位。 XICON - 外部中断控制 (C0H) PX3 EX3 IE3 IT3 PX2 EX2 IE2 IT2 PX3:置位表明外部中断 3的优先级为高 EX3:置位表明外部中断 3有效 IE3:如果 IT3 1,当中断被检测 /响应时, IE3可由硬件自动置位 /清零 IT3:当此位由软件置位 /清零时,外部中断 3为下降沿 /低电平触发 PX2:置位表明外部中断 2的优先级为高 EX2:置位表明外部中断 2有效 IE2:如果 IT2 1,当中 断被检测 /响应时,
29、IE2可由硬件自动置位 /清零 IT2:当此位由软件置位 /清零时,外部中断 2为下降沿 /低电平触发 8 个中断源 中断源 矢量地址 同级内的优先权 使能设置位 中断类型边沿 /电平 外部中断 0 03H 0(最高) IE.0 TCON.0 定时 /计数器 0 0BH 1 IE.1 - 外部中断 1 13H 2 IE.2 TCON.2 定时 /计数器 1 1BH 3 IE.3 - 串行端口 23H 4 IE.4 - 定时 /计数器 2 2BH 5 IE.5 - 外部中断 2 33H 6 XICON.2 XICON.0 外部中断 3 3BH 7(最低 ) XICON.6 XICON.3 P4C
30、ONB( C3H) 位 名称 功能 7, 6 P43FUN1 P43FUN0 00:模式 0. P4.3是与 P1口功能相同的通用 I/O口 01:模式 1. p4.3是用作读片选信号,地址范围由 P43AH, P43AL, P43CMP1和 P43CMP0决定 W78E58B ?: December 22, 2004 - 13 - ?: SC1 10:模式 2. p4.3是用作写片选信号,地址范围由 P43AH, P43AL, P43CMP1和 P43CMP0决定 11:模式 3. p4.3是用作读 /写片选信号,地址范围由 P43AH, P43AL,P43CMP1和 P43CMP0决定 P
31、4CONB (C3H) (续 ) 位 名称 功能 5, 4 P43CMP1 P43CMP0 片选信号地址比较: 00:与基址寄存器 P43AH和 P43AL进行全址( 16位长度)比较 01:与基址寄存器 P43AH和 P43AL进行高 15位( A15-A1)地址比较 10:与基址寄存器 P43AH和 P43AL进行高 14位( A15-A2)地址比较 11:与基址寄存器 P43AH和 P43AL进行高 8位( A15-A2)地址比较 3, 2 P42FUN1 P42FUN0 功能与 P43FUN1, P43FUN0相同 1, 0 P42CMP1 P42CMP0 功能与 P43CMP1, P
32、43CMP0相同 P4CONA( C2H) 位 名称 功能 7, 6 P41FUN1 P41FUN0 功能与 P43FUN1, P43FUN0相同 5, 4 P41CMP1 P41CMP0 功能与 P43CMP1, P43CMP0相同 3, 2 P40FUN1 P40FUN0 功能与 P43FUN1, P43FUN0相同 1, 0 P40CMP1 P40CMP0 功能与 P43CMP1, P43CMP0相同 P2ECON( AEH) 位 名称 功能 7 P43CSINV P4.3用作片选信号时,片选信号的极性 1: P4.3用作片选信号时 , 信号高有效 0: P4.3用作片选信号时 , 信号
33、低有效 6 P42CSINV 功能与 P43CSINV相同 5 P41CSINV 功能与 P43CSINV相同 4 P40CSINV 功能与 P43CSINV相同 W78E58B - 14 - 3 - 保留 2 - 保留 1 - 保留 0 - 保留 6.11 P4口基地址寄存器 P40AH, P40AL 用于与 P4.0进行比较的基址寄存器。 P40AH包含地址的 高位字节, P40AL包含地址的低位字节。 P41AH, P41AL 用于与 P4.1进行比较的基址寄存器。 P41AH包含地址的高位字节, P41AL包含地址的低位字节。 P42AH, P42AL 用于与 P4.2进行比较的基址寄
34、存器。 P42AH包含地址的高位字节, P42AL包含地址的低位字节。 P43AH, P43AL 用于与 P4.3进行比较的基址寄存器。 P43AH包含地址的高位字节, P43AL包含地址的低位字节。 P4( D8H) 位 名称 功能 7 - 保留 6 - 保留 5 - 保留 4 - 保留 3 P43 模式 0下 P4口在 P4.3上输出的数据 2 P42 模式 0下 P4口在 P4.2上输出的数据 1 P41 模式 0下 P4口在 P4.1上输出的数据 0 P40 模式 0下 P4口在 P4.0上输出的数据 下面的例程将 P4.0 编程为一个写信号,该信号的地址范围是 1234H - 123
35、7H ,高电平有效。 P4.1 - P4.3 为通用 I/O 口。 MOV P40AH, #12H MOV P40AL, #34H ; 1234H是 P4.0的 I/O起始地址 MOV P4CONA, #00001010B ; P4.0用作写信号,地址线 A0和 A1被屏蔽 MOV P4CONB, #00H ; P4.1-P4.3用做与 P1口功能相同的 I/O口 MOV P2ECON, #10H ;将 P40SINV设为 1,改变 P4.0信号的极性,默认有效电平为低 W78E58B ?: December 22, 2004 - 15 - ?: SC1 任何 DPTR值为 1234H-123
36、7H的 MOVX DPTR, A指令都会在 P4.0上产生,高电平有效的写信号。而 MOV P4, #XX指令会在 P4.3-P4.1上输出数据 #XX的位 3到 位 1。 ADDRESS BUSBit LengthSelectablecomparatorREGISTERP4xALP4xAHEQUALP4.x MUX 4-1P4 REGISTERP4.xREADWRITEDATA I/ORD_CSWR_CSRD/WR_CSP4xCMP0P4xCMP1P4xFUN0P4xFUN1P4xCSINVP4.x INPUT DATA BUSREGISTERPIN6.12 在线编程( ISP)模式 W78
37、E58B内建一个 32K字节的主 ROM区,来存储应用 程序( APROM),和一个 4K的辅助 ROM区用于存储装载程序( LDROM)。在正常运作方式下,控制器执行 APROM中的代码。如果要更改 APROM中的代码, W78E58B允许用户通过设置 CHPCON寄存器,来使控制器进入在线编程状态。 在默认状态下CHPCON寄存器是只读的,软件必须将 87H然后是 59H这 2个特殊值顺序写入 CHPENR寄存器,来启动对 CHPCON寄存器的写操作。对 CHPENR寄存器写入其他的数值,将会关闭对 CHPCON寄存器的写操作。 W78E58B在 IDLE(空闲)模式下,实现全部 ISP功
38、能,包 括:进入 /退出 ISP模式,编程,擦除,读等操作。将 CHPCON.0设为 1,控制器在从空闲模式退出后进入 ISP模式。由于设备在退出空闲模式前需要一定的时间来完成 ISP操作,软件可以使用定时器来控制这个周期。要执行修改 APROM内容的 ISP功能, APROM中的软件设置 CHPCON寄存器并使设备进入 IDLE模式 ,从 IDLE模式退出后设备将执行LDROM中相应的中断服务程序。当从 APROM切换到 LDROM的时候,设备将清除程序计数器,那么在中断服务程序中第一次执行 RETI指令以后,程序将跳转到 LDROM中的 00H处 。在 APROM的内容更新完以后,设备还提
39、供一个软件复位指令,用于将程序计数器切换回 APROM中。向 CHPCON的位 0、位 1、位 7置为逻辑 1,将会引起一个软件复位。软件复位的作用等同于外部复位之作用。在需要不断更新应用程序的场合, ISP功能使这种工作变得简单而高效。在某些应用场合, ISP功能使得用户不用打开机盒就W78E58B - 16 - 能方便的进行固件升级。 W78E58B ?: December 22, 2004 - 17 - ?: SC1 SFRAH, SFRAL: ISP模式下,片上 ROM的目标地址。 SFRAH中为高位地址, SFRAL中为低位地址。 SFRFD: ISP编程模式下,用于保存片上 ROM
40、的编程数 据。 SFRCN: ISP编程模式下,用于对片上 ROM进行控制的寄存器。 SFRCN( C7) 位 名称 功能 7 - 保留 6 WFWIN ISP编程片内 ROM区选择 0:选定 32K字节 ROM区为再编程目标区 1:选定 4K字节 ROM区为再编程目标区 5 OEN ROM输出使能 4 CEN ROM CHIP 使能 3, 2, 1,0 CTRL3:0 Flash 控制信号 模式 WFWIN CTRL OEN CEN SFRAH,SFRAL SFRFD 擦除 32KB APROM 0 0010 1 0 X X 对 32KB APROM编程 0 0001 1 0 读入地址 数据
41、输入 读 32KB APROM 0 0000 0 0 读入地址 数据输出 擦除 4KB LDROM 1 0010 1 0 X X 对 4KB LDROM编程 1 0001 1 0 读入地址 数据输入 读 4KB LDROM 1 0000 0 0 读入地址 数据输出 6.13 在线编程控制寄存器( CHPCON) 位 名称 功能 7 SWRESET ( F04KMODE) 该位置 1后, FBOOTSL和 FPROGEN也被置为 1。这将使控制器进入如同上电复位后的出世状态。这个操作将重启微控制器并开始正常运行。如果读到该位为逻辑 1,则可判断系统在 F04KBOOT模式下。 6 - 保留 5
42、- 保留 4 ENAUXRAM 1:使能片上 AUX-ROM 0:关闭片上 AUX-ROM W78E58B - 18 - 在线编程控制寄存器( CHPCON) (续 ) 位 名称 功能 3 0 必须设为 0 2 0 必须设为 0 1 FBOOTSL 编程区域选择 0: Loader程序位于 32KB APROM中, 4KB LDROM是重编程的区域。 1: Loader程序位于 4KB 内存区中, 32KB ADROM是重编程的区域。 0 FPROGEN ROM 编程使能 1:使能。控制器在进入 IDEL模式,并由中断使其从 IDLE模式退出后进入 ISP模式。在 ISP模式下,是在 IDEL
43、模式下完成擦除、编程、读等操作。 0:关闭。片上 FLASH处于只读模式, ISP功能被关闭。 6.14 F04KBOOT 模式 (从 LDROM启动) 默认条件下, W78E58B在上电复位后从 APROM中启动。在某些条件下,用户可以通过下列设定迫使W78E58B从 LDROM中的程序启动。可能要进入 F04KBOOT模式的 情况是, APROM中的程序无法正常运行并且设备无法切回至 LDROM来执行 ISP功能。用户可以使用 F04KBOOT模式迫使 W78E58B进入LDROM,来执行 ISP功能。在进行系统设计时,用户可以将 P2.6、 P2.7接到按键或跳线开关。比如在一个 CD-
44、ROM系统中,用户可以将 P2.6、 P2.7联到 PLAY和 EJECT按钮上 。 当 APROM中程序无法执行时,用户可以同时按住这 2个键,然后打开 PC的电源,来迫使 W78E58B进入 F04KBOOT模式。在 PC上电之后,用户可以放开那 2个按钮并完成 ISP过程,来更新 APROM中的程序。 在应用系统设计中,用和必须注意复位时 P2、 P3、 ALE、 EA 、 PSEN 的状态防止系统误入编程模式或者 F04KBOOT模式。 F04KBOOT模式 P4.3 P2.7 P2.6 模式 X L L F04KBOOT L X X F04KBOOT W78E58B ?: Decem
45、ber 22, 2004 - 19 - ?: SC1 P2.7P2.6RST 30 mSHi-ZThe Reset Timing For EnteringF04KBOOT Mode10 mSHi-ZW78E58B - 20 - 第一步:32KB APROM进入ISP模式的过程开始进入ISP编程模式?(条件取决于用户的应用设计)设置控制寄存器MOV CHPENR,#87HMOV CHPENR,#59HMOV CHPCON,#03H是设置定时器(约1.5微秒)并打开定时器中断打开定时器,并进入IDEL 模式(CPU,将会被时钟中断唤醒,然后进入ISP编程模式)CPU被中断唤醒,从4KB LDROM
46、处启动执行装载程序GO否执行正常应用程序结束ISP 编程算法W78E58B ?: December 22, 2004 - 21 - ?: SC1 Go定时器中断服务程序关闭定时器关闭中断是F04KBOOT模式吗?(CHPCON.7=1)设置定时器打开定时器用以唤醒CPU(擦除操作需15MS)设置擦除运行模式:MOV SFRCN,#22H(擦除32KB APROM )打开定时器进入IDLE模式(擦除)擦除操作完成CPU将被时钟中断唤醒编程结束?设置定时器打开定时器中断用以唤醒设备(编程操作需50uS)从I/O口,UART,或其他接口获取新代码的参数(地址及数据字节)为编程设置控制字节MOV SF
47、RAH,#ADDRESS_HMOV SFRAL,#ADDRESS_LMOV SFRFD, #DATAMOV SFRCN, # 21H复位CHPCON寄存器MOV CHPENR,#87HMOV CHPENR,#59HMOV CHOCON,#03H当前是F04KBOOT模式?软件复位CPU,并从32KBAPROM处启动MOV CHPENR,#87HMOV CHPENR,#59HMOV CHOCON,#83H硬件复位,从32KB APROM处重启(软件复位在F04KBOOT模式中无效)结束从32KB APROM的00H处执行新代码PGMPGM否是否是否是第二步:4KB LDROM更新32KAPROM
48、的过程W78E58B - 22 - 7. 保密位 在片内 Flash EPROM操作模式下, Flash EPROM可被反复地编程和校验。直到 Flash EPROM 中的代码被确认为 OK,代码就可以被保护起来。 Flash EPROM 的保护及其操作描述如下: W78E58B 具有一个安全寄存器,在正常模式下无法进行访问。只有在 Flash EPROM 操作模式下,对其进行访问。一旦安全寄存器各位由高设为低时,就不能再改变。只有通过全擦除操作才可将其全部复位。 Flash EPROM 操作模式下,安全寄存器的地址为 LDROM 的 #0FFFFh。 7.1 锁止位 此位是用来保护用户在 W
49、78E58B 中的程序代码。在完成编程和校验操作后,设置此位。一旦该位设置为 0 ,就无法再对 Flas h EPROM 的数据和特殊设置寄存器进行访问。 7.2 MOVC 禁止 此位用来限制 MOVC 指令的可访问区域。它可防止外部程序存储器的 MOVC 指令读取内部程序代码。当此位被设置为 0 ,外部程序存储器的 MOVC 指令只可以访问外部存储器代码,而不能访问内部存储器。内部程序存储器的 MOVC 指令可以访问内部和外部存储器中的 ROM 数据。如果此位设置为 1 ,则对 MOVC 指令没有限制。 7.3 加密 此位用于代码保护中加密逻辑的使能 / 非使能。一旦加密有效,端口 0 上的数据就会通过加密逻辑进行编W78E58B ?: December 22, 2004 - 23 - ?: SC1 码。只有擦除整个芯片,才会使此位复位。 8. 电气特性 8.1 绝对最大额定值 参数 符号 最小值 最大值 单位 直流电源电压 VDD-VSS -0.3 +6.0 V 输入电压 VIN VSS -0.3 VDD +0.3 V 工作温度 TA 0 70 ?C 贮