2024年3月21日发(作者:伦荣)
详细 可以参考datasheet的 23.0 CPU 的特殊功能
PIC18F2420/2520/4420/4520 器件具有几项特殊的功能
旨在最大限度地提高系统可靠性,并通过减少外部元件
把成本降到最低。这些功能包括:
• 振荡器选择
• 复位:
- 上电复位(POR)
- 上电延时定时器(PWRT)
- 振荡器起振定时器(OST)
- 欠压复位(BOR)
• 中断
• 看门狗定时器(WDT)
• 故障保护时钟监视器(FSCM)
• 双速启动
• 代码保护
• ID 单元
• 在线串行编程
选择振荡器时,要根据具体应用对频率、功耗、精度和
成本的要求。在第2.0 节“振荡器配置”中详细讨论了
所有的选项。
在本数据手册的前面几章中已经完整地讨论了器件的复
位和中断。
除了为复位提供了上电延迟定时器和振荡器起振定时器
之外,PIC18F2420/2520/4420/4520 器件还提供了一个
看门狗定时器,该定时器可配置成永久使能或用软件控
制(如果使能位被禁止的话)。
器件自带的RC 振荡器还提供了故障保护时钟监视器
(FSCM)和双速启动这两个额外的功能。FSCM 对外
设时钟进行后台监视,并在外设时钟发生故障时自动切
换时钟源。双速启动使得几乎可在起振发生时立即执行
代码,而此时主时钟源正在完成起振延时。
通过设置相应的配置寄存器位可以使能和配置所有这些
功能。
23.1 配置位
可以通过对配置位编程(读为0)或不编程(读为1)
来选择不同的器件配置。这些配置位被映射到程序存储
器从300000h 开始的单元中。
用户会注意到地址300000h 超出了用户程序存储空间的
范围。事实上,它属于配置存储空间(300000h-
3FFFFFh),该空间仅能通过表读和表写进行访问。
对配置寄存器编程类似于对闪存存储器编程。EECON1
寄存器中的WR 位可启动对配置寄存器的自定时写操
作。在正常工作模式下,采用TBLPTR 指向配置寄存器
的TBLWT 指令设置要用于写操作的地址和数据。将WR
位置1 可启动对配置寄存器的长写操作。每次往配置寄
存器写入1 个字节。要写入或擦除一配置单元,可用
TBLWT 指令向该单元写入1 或0。欲知更多信息,请参
见第6.5 节“写入闪存程序存储器”。
图注:
知, u = 不变,- = 未用, q = 取值依情况而定。
x = 未
阴影单元未用,读为0。
注1: PIC18F2420/4420 器件中不可用;保持该位置1。
2: 关于DEVID1 的值,请参见寄存器23-14。DEVID 寄存器为只读寄存器,用户不
能对其进行编程。
PIC18F2420/2520/4420/4520
DS39631A_CN 第250 页初稿2006 Microchip Technology Inc.
bit 7 IESO:内
部/ 外部振荡器切换位
1 = 使能振荡器切换模式
0 = 禁止振荡器切换模式
bit 6 FCMEN:故障保护时钟监视器使能位
1 = 使能故障保护时钟监视器
0 = 禁止故障保护时钟监视器
bit 5-4 未用位:读为0
bit 3-0 FOSC3:FOSC0:振荡器选择位
11xx = 外部RC 振荡器, RA6 用作CLKO 引脚
101x = 外部RC 振荡器, RA6 用作CLKO 引脚
1001 = 内部振荡电路, RA6 用作CLKO 引脚, RA7 用作端口引脚
1000 = 内部振荡电路, RA6 和RA7 均用作端口引脚
0111 = 外部RC 振荡器, RA6 用作端口引脚
0110 = PLL 使能的HS 振荡器(时钟频率 = 4 × FOSC1)
0101 = EC 振荡器, RA6 用作端口引脚
0100 = EC 振荡器, RA6 用作CLKO 引脚
0011 = 外部RC 振荡器, RA6 用作CLKO 引脚
0010 = HS 振荡器
0001 = XT 振荡器
0000 = LP 振荡器
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第251 页
PIC18F2420/2520/4420/4520
bit 7-5 未用
位:读为0
bit 4-3 BORV1:BORV0:欠压复位门限电压位(1)
11 = 最大设置
...
00 = 最小设置
bit 2-1 BOREN1:BOREN0:欠压复位使能位(2)
11 = 由硬件使能欠压复位(禁止SBOREN)
10 = 由硬件使能欠压复位,休眠模式下被禁止(禁止SBOREN)
01 = 由软件使能和控制欠压复位(使能SBOREN)
00 = 禁止使用硬件或软件使能欠压复位
bit 0 PWRTEN:上电延时定时器(PWRT)使能位(2)
1 = 禁止PWRT
0 = 使能PWRT
注1: 请参见第26.1 节“直流规范:供电电压”了解具体规范。
2: 上电延时定时器与欠压复位是相互独立的,这样可以分别控制两者的操作。
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第252 页初稿2006 Microchip Technology Inc.
bit 7-5 未用
位:读为0
bit 4-1 WDTPS3:WDTPS0:看门狗定时器后分频比选择位
1111 = 1:32,768
1110 = 1:16,384
1101 = 1:8,192
1100 = 1:4,096
1011 = 1:2,048
1010 = 1:1,024
1001 = 1:512
1000 = 1:256
0111 = 1:128
0110 = 1:64
0101 = 1:32
0100 = 1:16
0011 = 1:8
0010 = 1:4
0001 = 1:2
0000 = 1:1
bit 0 WDTEN:看门狗定时器使能位
1 = 使能WDT
0 = 禁止WDT (由SWDTEN 位控制)
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第253 页
PIC18F2420/2520/4420/4520
bit 7 MCLRE:
MCLR 引脚使能位
1 = 使能MCLR 引脚,禁止RE3 输入引脚
0 = 使能RE3 引脚,禁止MCLR 引脚
bit 6-3 未用位:读为0
bit 2 LPT1OSC:低功耗Timer1 振荡器使能位
1 = Timer1 配置为低功耗运行
0 = Timer1 配置为高功耗运行
bit 1 PBADEN:PORTB A/D 使能位
(影响ADCON1 复位状态。ADCON1 控制PORTB<4:0> 引脚配置。)
1 = 复位时PORTB<4:0> 引脚配置为模拟输入通道
0 = 复位时PORTB<4:0> 引脚配置为数字I/O
bit 0 CCP2MX:CCP2 复用位
1 = CCP2 输入/ 输出与RC1 复用
0 = CCP2 输入/ 输出与RB3 复用
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
:后台调试器使能位
1 = 禁止后台调试器, RB6 和RB7 被配置为通用I/O 引脚
0 = 使能后台调试器, RB6 和RB7 专用于在线调试
bit 6 XINST:扩展指令集使能位
1 = 使能指令集扩展和变址寻址模式
bit 7
DEBUG
0 = 禁止指令集扩展和变址寻址模式(传统模式)
bit 5-3 未用位:读为0
bit 2 LVP:单电源ICSP 使能位
1 = 使能单电源ICSP
0 = 禁止单电源ICSP
bit 1 未用位:读作0
bit 0 STVREN:堆栈满/ 下溢复位使能位
1 = 堆栈满/ 下溢导致复位
0 = 堆栈满/ 下溢不导致复位
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第254 页初稿2006 Microchip Technology Inc.
bit 7-4 未用
位:读作0
bit 3 CP3:代码保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无代码保护
0 = 程序存储块3 (006000-007FFFh)有代码保护
bit 2 CP2:代码保护位(1)
1 = 程序存储块2 (004000-005FFFh)无代码保护
0 = 程序存储块2 (004000-005FFFh)有代码保护
bit 1 CP1:代码保护位
1 = 程序存储块1 (002000-003FFFh)无代码保护
0 = 程序存储块1 (002000-003FFFh)有代码保护
bit 0 CP0:代码保护位
1 = 程序存储块0 (000800-000FFFh)无代码保护
0 = 程序存储块0 (000800-000FFFh)有代码保护
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
据EEPROM 代码保护位
1 = 数据EEPROM 无代码保护
0 = 数据EEPROM 有代码保护
bit 6 CPB:引导区代码保护位
1 = 引导区(000000-0007FFh)无代码保护
bit 7 CPD:数
0 = 引导区(000000-0007FFh)有代码保护
bit 5-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第255 页
PIC18F2420/2520/4420/4520
bit 7-4 未用
位:读为0
bit 3 WRT3:写保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无写保护
0 = 程序存储块3 (006000-007FFFh)有写保护
bit 2 WRT2:写保护位(1)
1 = 程序存储块2 (004000-005FFFh)无写保护
0 = 程序存储块2 (004000-005FFFh)有写保护
bit 1 WRT1:写保护位
1 = 程序存储块1 (002000-003FFFh)无写保护
0 = 程序存储块1 (002000-003FFFh)有写保护
bit 0 WRT0:写保护位
1 = 程序存储块0 (000800-001FFFh)无写保护
0 = 程序存储块0 (000800-001FFFh)有写保护
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
bit 7 WRTD:
数据EEPROM 写保护位
1 = 数据EEPROM 无写保护
0 = 数据EEPROM 有写保护
bit 6 WRTB:引导区写保护位
1 = 引导区(000000-0007FFh)无写保护
0 = 引导区(000000-0007FFh)有写保护
bit 5 WRTC:配置寄存器写保护位(1)
1 = 配置寄存器(300000-3000FFh)无写保护
0 = 配置寄存器(300000-3000FFh)有写保护
注1: 在正常执行模式下,该位只读;仅在编程模式下该位才可写。
bit 4-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第256 页初稿2006 Microchip Technology Inc.
bit 7-4 未用
位:读为0
bit 3 EBTR3:表读保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块3 (006000-007FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 2 EBTR2:表读保护位(1)
1 = 程序存储块2 (004000-005FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块2 (004000-005FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 1 EBTR1:表读保护位
1 = 程序存储块1 (002000-003FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块1 (002000-003FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 0 EBTR0:表读保护位
1 = 程序存储块0 (000800-001FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块0 (000800-001FFFh)有表读保护,不能从其他区块对其执行表读
操作
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
bit 7 未用位:
读为0
bit 6 EBTRB:引导区表读保护位
1 = 引导区(000000-0007FFh)无表读保护,可从其他区块对其执行表读操作
0 = 引导区(000000-0007FFh)有表读保护,不能从其他区块对其执行表读操作
bit 5-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第257 页
PIC18F2420/2520/4420/4520
DEV2:DEV0:器件ID 位
000 = PIC18F4520
010 = PIC18F4420
100 = PIC18F2520
110 = PIC18F2420
bit 4-0 REV4:REV0:版本ID 位
这些位用于表明器件的版本。
图注:
R = 只读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
DEV10:DEV3:器件ID 位
bit 7-5
bit 7-0
这些位与器件ID 寄存器1 中的DEV2:DEV0 一起用于标识器件号。
0000 1100 = PIC18F2420/2520/4420/4520 器件
注: DEV10:DEV3 的值可能会用于其他器件。特定器件是通过使用整个DEV10:DEV0
位序列来标识的。
图注:
R = 只读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第258 页初稿2006 Microchip Technology Inc.
23.2 看门狗定时器(WDT)
PIC18F2420/2520/4420/4520 器件的WDT 由INTRC
时钟源驱动。当使能WDT 时,也将同时使能时钟源。
WDT 超时溢出周期的标称值为4 ms,其稳定性与
INTRC 振荡器相同。
4 ms 的WDT 超时溢出周期将与16 位后分频器的值相
乘来得到更长的时钟周期。通过配置寄存器2H 来控制
一个多路开关以对WDT 后分频器的输出进行选择。因
此可获得的超时溢出周期范围为4 ms 至131.072 秒
(2.18 分钟)。当发生以下任一事件时,WDT 和后分频
器将被清零,这些事件包括 :执行SLEEP 或CLRWDT
指令、IRCF 位(OSCCON<6:4>)发生了改变或发生时
钟故障。
23.2.1 控制寄存器
寄存器23-14 所示为WDTCON 寄存器。这是一个可读
写的寄存器,它包含一个控制位,当WDT 被配置位禁
止时,该控制位允许使用软件来控制WDT。
注1: 当执行CLRWDT 和SLEEP 指令时, WDT
和后分频器的计数值将被清零。
2: 更改IRCF 位(OSCCON<6:4>)的设置
会清零WDT 和后分频器的计数值。
图23-1: WDT 原理框图
2024年3月21日发(作者:伦荣)
详细 可以参考datasheet的 23.0 CPU 的特殊功能
PIC18F2420/2520/4420/4520 器件具有几项特殊的功能
旨在最大限度地提高系统可靠性,并通过减少外部元件
把成本降到最低。这些功能包括:
• 振荡器选择
• 复位:
- 上电复位(POR)
- 上电延时定时器(PWRT)
- 振荡器起振定时器(OST)
- 欠压复位(BOR)
• 中断
• 看门狗定时器(WDT)
• 故障保护时钟监视器(FSCM)
• 双速启动
• 代码保护
• ID 单元
• 在线串行编程
选择振荡器时,要根据具体应用对频率、功耗、精度和
成本的要求。在第2.0 节“振荡器配置”中详细讨论了
所有的选项。
在本数据手册的前面几章中已经完整地讨论了器件的复
位和中断。
除了为复位提供了上电延迟定时器和振荡器起振定时器
之外,PIC18F2420/2520/4420/4520 器件还提供了一个
看门狗定时器,该定时器可配置成永久使能或用软件控
制(如果使能位被禁止的话)。
器件自带的RC 振荡器还提供了故障保护时钟监视器
(FSCM)和双速启动这两个额外的功能。FSCM 对外
设时钟进行后台监视,并在外设时钟发生故障时自动切
换时钟源。双速启动使得几乎可在起振发生时立即执行
代码,而此时主时钟源正在完成起振延时。
通过设置相应的配置寄存器位可以使能和配置所有这些
功能。
23.1 配置位
可以通过对配置位编程(读为0)或不编程(读为1)
来选择不同的器件配置。这些配置位被映射到程序存储
器从300000h 开始的单元中。
用户会注意到地址300000h 超出了用户程序存储空间的
范围。事实上,它属于配置存储空间(300000h-
3FFFFFh),该空间仅能通过表读和表写进行访问。
对配置寄存器编程类似于对闪存存储器编程。EECON1
寄存器中的WR 位可启动对配置寄存器的自定时写操
作。在正常工作模式下,采用TBLPTR 指向配置寄存器
的TBLWT 指令设置要用于写操作的地址和数据。将WR
位置1 可启动对配置寄存器的长写操作。每次往配置寄
存器写入1 个字节。要写入或擦除一配置单元,可用
TBLWT 指令向该单元写入1 或0。欲知更多信息,请参
见第6.5 节“写入闪存程序存储器”。
图注:
知, u = 不变,- = 未用, q = 取值依情况而定。
x = 未
阴影单元未用,读为0。
注1: PIC18F2420/4420 器件中不可用;保持该位置1。
2: 关于DEVID1 的值,请参见寄存器23-14。DEVID 寄存器为只读寄存器,用户不
能对其进行编程。
PIC18F2420/2520/4420/4520
DS39631A_CN 第250 页初稿2006 Microchip Technology Inc.
bit 7 IESO:内
部/ 外部振荡器切换位
1 = 使能振荡器切换模式
0 = 禁止振荡器切换模式
bit 6 FCMEN:故障保护时钟监视器使能位
1 = 使能故障保护时钟监视器
0 = 禁止故障保护时钟监视器
bit 5-4 未用位:读为0
bit 3-0 FOSC3:FOSC0:振荡器选择位
11xx = 外部RC 振荡器, RA6 用作CLKO 引脚
101x = 外部RC 振荡器, RA6 用作CLKO 引脚
1001 = 内部振荡电路, RA6 用作CLKO 引脚, RA7 用作端口引脚
1000 = 内部振荡电路, RA6 和RA7 均用作端口引脚
0111 = 外部RC 振荡器, RA6 用作端口引脚
0110 = PLL 使能的HS 振荡器(时钟频率 = 4 × FOSC1)
0101 = EC 振荡器, RA6 用作端口引脚
0100 = EC 振荡器, RA6 用作CLKO 引脚
0011 = 外部RC 振荡器, RA6 用作CLKO 引脚
0010 = HS 振荡器
0001 = XT 振荡器
0000 = LP 振荡器
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第251 页
PIC18F2420/2520/4420/4520
bit 7-5 未用
位:读为0
bit 4-3 BORV1:BORV0:欠压复位门限电压位(1)
11 = 最大设置
...
00 = 最小设置
bit 2-1 BOREN1:BOREN0:欠压复位使能位(2)
11 = 由硬件使能欠压复位(禁止SBOREN)
10 = 由硬件使能欠压复位,休眠模式下被禁止(禁止SBOREN)
01 = 由软件使能和控制欠压复位(使能SBOREN)
00 = 禁止使用硬件或软件使能欠压复位
bit 0 PWRTEN:上电延时定时器(PWRT)使能位(2)
1 = 禁止PWRT
0 = 使能PWRT
注1: 请参见第26.1 节“直流规范:供电电压”了解具体规范。
2: 上电延时定时器与欠压复位是相互独立的,这样可以分别控制两者的操作。
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第252 页初稿2006 Microchip Technology Inc.
bit 7-5 未用
位:读为0
bit 4-1 WDTPS3:WDTPS0:看门狗定时器后分频比选择位
1111 = 1:32,768
1110 = 1:16,384
1101 = 1:8,192
1100 = 1:4,096
1011 = 1:2,048
1010 = 1:1,024
1001 = 1:512
1000 = 1:256
0111 = 1:128
0110 = 1:64
0101 = 1:32
0100 = 1:16
0011 = 1:8
0010 = 1:4
0001 = 1:2
0000 = 1:1
bit 0 WDTEN:看门狗定时器使能位
1 = 使能WDT
0 = 禁止WDT (由SWDTEN 位控制)
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第253 页
PIC18F2420/2520/4420/4520
bit 7 MCLRE:
MCLR 引脚使能位
1 = 使能MCLR 引脚,禁止RE3 输入引脚
0 = 使能RE3 引脚,禁止MCLR 引脚
bit 6-3 未用位:读为0
bit 2 LPT1OSC:低功耗Timer1 振荡器使能位
1 = Timer1 配置为低功耗运行
0 = Timer1 配置为高功耗运行
bit 1 PBADEN:PORTB A/D 使能位
(影响ADCON1 复位状态。ADCON1 控制PORTB<4:0> 引脚配置。)
1 = 复位时PORTB<4:0> 引脚配置为模拟输入通道
0 = 复位时PORTB<4:0> 引脚配置为数字I/O
bit 0 CCP2MX:CCP2 复用位
1 = CCP2 输入/ 输出与RC1 复用
0 = CCP2 输入/ 输出与RB3 复用
图注:
R = 可读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
:后台调试器使能位
1 = 禁止后台调试器, RB6 和RB7 被配置为通用I/O 引脚
0 = 使能后台调试器, RB6 和RB7 专用于在线调试
bit 6 XINST:扩展指令集使能位
1 = 使能指令集扩展和变址寻址模式
bit 7
DEBUG
0 = 禁止指令集扩展和变址寻址模式(传统模式)
bit 5-3 未用位:读为0
bit 2 LVP:单电源ICSP 使能位
1 = 使能单电源ICSP
0 = 禁止单电源ICSP
bit 1 未用位:读作0
bit 0 STVREN:堆栈满/ 下溢复位使能位
1 = 堆栈满/ 下溢导致复位
0 = 堆栈满/ 下溢不导致复位
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第254 页初稿2006 Microchip Technology Inc.
bit 7-4 未用
位:读作0
bit 3 CP3:代码保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无代码保护
0 = 程序存储块3 (006000-007FFFh)有代码保护
bit 2 CP2:代码保护位(1)
1 = 程序存储块2 (004000-005FFFh)无代码保护
0 = 程序存储块2 (004000-005FFFh)有代码保护
bit 1 CP1:代码保护位
1 = 程序存储块1 (002000-003FFFh)无代码保护
0 = 程序存储块1 (002000-003FFFh)有代码保护
bit 0 CP0:代码保护位
1 = 程序存储块0 (000800-000FFFh)无代码保护
0 = 程序存储块0 (000800-000FFFh)有代码保护
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
据EEPROM 代码保护位
1 = 数据EEPROM 无代码保护
0 = 数据EEPROM 有代码保护
bit 6 CPB:引导区代码保护位
1 = 引导区(000000-0007FFh)无代码保护
bit 7 CPD:数
0 = 引导区(000000-0007FFh)有代码保护
bit 5-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第255 页
PIC18F2420/2520/4420/4520
bit 7-4 未用
位:读为0
bit 3 WRT3:写保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无写保护
0 = 程序存储块3 (006000-007FFFh)有写保护
bit 2 WRT2:写保护位(1)
1 = 程序存储块2 (004000-005FFFh)无写保护
0 = 程序存储块2 (004000-005FFFh)有写保护
bit 1 WRT1:写保护位
1 = 程序存储块1 (002000-003FFFh)无写保护
0 = 程序存储块1 (002000-003FFFh)有写保护
bit 0 WRT0:写保护位
1 = 程序存储块0 (000800-001FFFh)无写保护
0 = 程序存储块0 (000800-001FFFh)有写保护
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
bit 7 WRTD:
数据EEPROM 写保护位
1 = 数据EEPROM 无写保护
0 = 数据EEPROM 有写保护
bit 6 WRTB:引导区写保护位
1 = 引导区(000000-0007FFh)无写保护
0 = 引导区(000000-0007FFh)有写保护
bit 5 WRTC:配置寄存器写保护位(1)
1 = 配置寄存器(300000-3000FFh)无写保护
0 = 配置寄存器(300000-3000FFh)有写保护
注1: 在正常执行模式下,该位只读;仅在编程模式下该位才可写。
bit 4-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第256 页初稿2006 Microchip Technology Inc.
bit 7-4 未用
位:读为0
bit 3 EBTR3:表读保护位(1,2)
1 = 程序存储块3 (006000-007FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块3 (006000-007FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 2 EBTR2:表读保护位(1)
1 = 程序存储块2 (004000-005FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块2 (004000-005FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 1 EBTR1:表读保护位
1 = 程序存储块1 (002000-003FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块1 (002000-003FFFh)有表读保护,不能从其他区块对其执行表读
操作
bit 0 EBTR0:表读保护位
1 = 程序存储块0 (000800-001FFFh)无表读保护,可从其他区块对其执行表读操
作
0 = 程序存储块0 (000800-001FFFh)有表读保护,不能从其他区块对其执行表读
操作
注1: 在PIC18F2420/4420 器件中不可用;保持该位置1。
2: 在PIC18F2425/4425 器件中不可用;保持该位置1。
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
bit 7 未用位:
读为0
bit 6 EBTRB:引导区表读保护位
1 = 引导区(000000-0007FFh)无表读保护,可从其他区块对其执行表读操作
0 = 引导区(000000-0007FFh)有表读保护,不能从其他区块对其执行表读操作
bit 5-0 未用位:读为0
图注:
R = 可读位C = 可清零位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
2006 Microchip Technology Inc. 初稿DS39631A_CN 第257 页
PIC18F2420/2520/4420/4520
DEV2:DEV0:器件ID 位
000 = PIC18F4520
010 = PIC18F4420
100 = PIC18F2520
110 = PIC18F2420
bit 4-0 REV4:REV0:版本ID 位
这些位用于表明器件的版本。
图注:
R = 只读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
DEV10:DEV3:器件ID 位
bit 7-5
bit 7-0
这些位与器件ID 寄存器1 中的DEV2:DEV0 一起用于标识器件号。
0000 1100 = PIC18F2420/2520/4420/4520 器件
注: DEV10:DEV3 的值可能会用于其他器件。特定器件是通过使用整个DEV10:DEV0
位序列来标识的。
图注:
R = 只读位P = 可编程位U = 未用位,读为0
-n = 未对器件编程时的值u = 编程后状态不变
PIC18F2420/2520/4420/4520
DS39631A_CN 第258 页初稿2006 Microchip Technology Inc.
23.2 看门狗定时器(WDT)
PIC18F2420/2520/4420/4520 器件的WDT 由INTRC
时钟源驱动。当使能WDT 时,也将同时使能时钟源。
WDT 超时溢出周期的标称值为4 ms,其稳定性与
INTRC 振荡器相同。
4 ms 的WDT 超时溢出周期将与16 位后分频器的值相
乘来得到更长的时钟周期。通过配置寄存器2H 来控制
一个多路开关以对WDT 后分频器的输出进行选择。因
此可获得的超时溢出周期范围为4 ms 至131.072 秒
(2.18 分钟)。当发生以下任一事件时,WDT 和后分频
器将被清零,这些事件包括 :执行SLEEP 或CLRWDT
指令、IRCF 位(OSCCON<6:4>)发生了改变或发生时
钟故障。
23.2.1 控制寄存器
寄存器23-14 所示为WDTCON 寄存器。这是一个可读
写的寄存器,它包含一个控制位,当WDT 被配置位禁
止时,该控制位允许使用软件来控制WDT。
注1: 当执行CLRWDT 和SLEEP 指令时, WDT
和后分频器的计数值将被清零。
2: 更改IRCF 位(OSCCON<6:4>)的设置
会清零WDT 和后分频器的计数值。
图23-1: WDT 原理框图