BELLING CM5001B

8位OTP单片机芯片CM5001
8 位 OTP 单片机芯片 CM5001
1.概述
CM5001 是一个 8 位 OTP 单片机。该芯片采用 RISC 结构,可以替代 PIC16C54/56 及 CF745。该芯
片具备管脚唤醒、可动态配置管脚拉电阻、低电压复位等硬件电路,较 PIC16C54/56 功能有所增强,大
大提高了芯片使用的灵活性。另外,该芯片强化了可靠性设计,ESD 性能可以达到 3000V 以上。
2.主要特点
● 采用精简指令集(RISC),35 条指令
● 指令字长 12 位,全部指令都是单字节指令
● 除涉及 PC 值改变的指令外(如跳转指令等),其余指令都是单周期指令
● 哈佛结构,数据总线和指令总线各自独立分开,数据总线宽度为 8 位,指令总线宽度为 12 位
● 一次可编程(OTP)ROM 1K,内部普通寄存器组(RAM)为 25 个
● 6 个特殊功能寄存器
● 2 级子程序堆栈
● 内部自振式看门狗计数器(WDT)
● 增强型的内部上电复位电路(POR)及掉电复位电路(LVR,转换电压 2.1V±0.2V,增强功能)
● 内带一个 8 位定时器/计数器(RTCC)
● RC/LP/XT/HS 四种振荡模式
● 12 根可独立编程 I/O 口
● 工作电压 2.4V~5.5V(实测最低工作电压可以达到 1.8V)
,编程电压 12V
● 工作频率 DC~20MHz
● 具有节电 sleep 模式,并可选择由看门狗或 port B 口的变化唤醒(增强功能)
● 可通过指令配置管脚内部上下拉电阻(增强功能)
● 在 ESD、EMC、抗栓锁等方面高可靠性设计
● 低功耗设计,静态功耗低至 1uA 以下
● 工作温度:-40℃~85℃
● PDIP18/SOP20 封装(SOP20 封装形式第 1 和 20 脚为 NC)
3.管脚排列
定货信息
CM5001A:不带 LVR 功能,
最低工作电压可达 1.8V(板
上有大电容时可能不复位)
CM5001B:带 LVR 功能,最
低工作电压由 LVR 转换电压
决定(2.1V±0.2V)
http://www.belling.com.cn
-1Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
4.管脚功能说明
编号
引脚名
方向
功能描述
1
PA2
I/O
PORT A 位 2,双向 I/O
2
PA3
I/O
PORT A 位 3,双向 I/O
3
T0CKI
I
计数器时钟输入
4
VPP/MCLR
I
编程时 12V 高压/平时的复位脚,低电平有效
5
VSS
-
地
6
PB0
I/O
PORT B 位 0,双向 I/O,可动态配置上下拉电阻
7
PB1
I/O
PORT B 位 1,双向 I/O,可动态配置上下拉电阻
8
PB2
I/O
PORT B 位 2,双向 I/O,可动态配置上下拉电阻
9
PB3
I/O
PORT B 位 3,双向 I/O,可动态配置上下拉电阻
10
PB4
I/O
PORT B 位 4,双向 I/O,可动态配置上下拉电阻
11
PB5
I/O
PORT B 位 5,双向 I/O,可动态配置上下拉电阻
12
PB6
I/O
PORT B 位 6,双向 I/O,可动态配置上下拉电阻
13
PB7
I/O
PORT B 位 7,双向 I/O,可动态配置上下拉电阻
14
VDD
-
5V 电源
15
OSC2
O
振荡输出端
16
OSC1
I
振荡输入端
17
PA0
I/O
PORT A 位 0,双向 I/O
18
PA1
I/O
PORT A 位 1,双向 I/O
5.功能详述
http://www.belling.com.cn
-2Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
CM5001 系统框图
CM5001在功能上与PIC16C56兼容,但两者在以下方面有所不同:一,CM5001的sleep模式可由port B
的变化唤醒;二,CM5001的port B端口设计有可由程序控制的内部上、下拉电阻;三,CM5001具有低电
压复位功能,电压低于一定电压即发生复位;四,二者指令系统不同,但PIC16C56的程序可以通过专用
编程器内部的转换器转换成CM5001的程序(程序移植唯一需要注意的地方:由于CM5001规定OPTION的
bit6写0时watch dog关闭,所以需要使用看门狗时务必对程序转化时要对OPTION的bit6置1,否则看门
狗不会工作);五,CM5001有独有的程序烧写方式和CONFIG BIT定义。
由于寄存器及管脚兼容,CM2004 的程序开发可参照 PIC16C56 执行,下面仅对一些特殊地方做介
绍。
5.1 Port B 上下拉电阻
CM5001较PIC16C56增加了两个不占用地址空间的控制寄存器PULLUPR、PULLDOWNR。在执行“PULLUP”
或“PULLDOWN”指令时,MCU会把W的值写入相应的寄存器,从而使port B相应的位内置上拉或下拉电阻
有效。
PULLUPR(pullup control register)
W
W
W
BIT 7
BIT 6
BIT 5
W
W
W
W
W
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
BIT7~0:port B口上拉电阻控制位
1:port B口相应位内部60K上拉电阻有效
0:port B口相应位内部60K上拉电阻无效
上电复位后的初始值:“0 0 0 0 0 0 0 0”
注意:W代表只写,R代表只读,R/W代表可读可写。
PULLDOWN
PULLDOWNR(pull
DOWNR(pulldown
R(pulldown control register)
W
W
W
W
W
W
W
W
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
BIT7~0:port B口下拉电阻控制位
1:port B口相应位内部50K下拉电阻有效
0:port B口相应位内部50K下拉电阻无效
上电复位后的初始值:“0 0 0 0 0 0 0 0”
使用上述寄存器需要用到两条新增特殊指令:pullup(对应指令代码001)和pulldown(对应指令
代码007)。使用方法是将数据放入W寄存器,然后使用pullup或pulldown指令,数据就会被载入相应寄
存器。注意PIC系列没有此两条指令,故如使用PIC系列的开发环境进行开发,需要手工编辑代码输入,
经过转化后即可使用。
5.2 睡眠
睡眠(
(SLEEP)
SLEEP)模式及唤醒
执行一条“SLEEP”指令即可进入睡眠模式。此时:WDT被清零,然后重新开始计数;状态寄存器F3
的PD位被清为‘0’,TO位置成‘1’;振荡停止;所有I/O口保持原来的状态。这种工作模式功耗最低。
SLEEP可被WDT溢出唤醒,或由在VPP/MCLR端加低电平唤醒,还可由port B的变化唤醒。其中VPP/MCLR
端加低电平唤醒是绝对的,而其余两种模式只能选择一种。CM5001较PIC16C54/56在OPTION寄存器中增
加了一位WAKEUP位,可以选择MCU被唤醒的方式。选择由port B的变化唤醒时,注意必须先执行一条指
令 MOVF PORTB,1(特别注意用MOVF PORTB,0 是不行的),然后进sleep。这样能使port B口记住当
前的值,以便与sleep后的端口状态进行比较。
http://www.belling.com.cn
-3Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
OPTION(
OPTION(option register)
W
W
-
WAKEUP
W
W
W
W
W
W
T0CS
TOSE
PSA
PS2
PS1
PS0
WAKEUP:sleep唤醒选择位
1:WDT溢出唤醒
0:port B管脚变化唤醒(注意此时watch dog溢出不会引起复位)
本寄存器中其他位定义与PIC16C54/56相同。
上电复位后的初始值:“- 1 1 1 1 1 1 1”
5.3 振荡器
CM5001 可以通过 OTP 设置使用4种类型振荡方式:标准晶体/陶瓷振荡 XT、高速晶体振荡 HS(4MHZ
以上)、低频晶体振荡 LP(32KHz 以下)以及阻容振荡 RC,请参见“程序烧写和 config bit 定义”部分。
(1)使用晶体/陶瓷振荡
这种振荡包括XT、HS和LP。其电路是在OSC1和OSC2两端加一晶体/陶瓷振荡。Rs是在发现振荡波形
出现削顶畸变是用来减小激励的,取值范围是0<Rs<10KΩ。
晶体//陶瓷振荡电路
晶体
以下列出了使用陶瓷振荡器时所需的电容值和使用晶体振荡器时所需的电容值。电容值取大有利于
振荡的稳定,但却延长了起振时间。
使用陶瓷振荡器时所需的电容值
http://www.belling.com.cn
使用晶体振荡时所需的电容值表
-4Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
(2)使用 RC 振荡
这种振荡类型成本最低,但频率的精确性较差,适用于时间精确度要求不高的应用场合。RC振荡
是在OSC1端连接一个串联的电阻电容。这个电阻如果过低,振荡不稳定,甚至不能振荡。但是电阻过高
时,则振荡又易受干扰,故取值应在数K到数十K之间。尽管电容C值为0时,电路也能振荡,但易受干扰
且不稳定,所以电容值应取10P以上。 RC振荡时OSC2端输出OSC1的4分频脉冲(f=1/4 OSC1)。
RC 振荡的频率是 VDD、RC 值以及环境温度的函数,请参考后面参数性能的表格,但使用时应以实际
试验结果为准。
RC 振荡电路
(3)使用外部振荡
CM5001可以接受外部振荡源(仅适合于HS、XT和LP类型振荡)。连接时将外部振荡接入OSC1,OSC2
则开路,如图所示。
外部振荡电路
5.4
5.4 复位电路
CM5001内藏上电和低电压复位电路,另外芯片上还设计有一个外部复位端VPP/MCLR。芯片复位可由
以下原因引发:1 芯片上电;2 看门狗超时溢出;3 VPP/MCLR被拉低;4 芯片电压低于2.1V±0.2V。当
芯片复位期间,所有I/O口都被置成高阻态,PC值被置为全‘1’,OPTION被置为全‘1’,WDT和预分频
器被清零,F3寄存器的PA0~PA2位被清‘0’。出于稳定信号的考虑,芯片内部专门设置了一个复位延时
电路。当芯片上电或VPP/MCLR变低结束后,复位状态将持续18ms左右才进入运行。
5.5 指令系统
指令集
二进制码
名称
助记符,操作数
操作
影响状态位
注
面向字节操作类指令
空操作
NOP
W 送到 f
MOVWF f
Wf
无
清W
CLRW
0W
Z
http://www.belling.com.cn
-5Total 10 Pages
无
1,4
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
f 清零
CLRF f
0f
Z
4
f 减去 W
SUBWF f,d
f-Wd
C,DC,Z
1,2,4,7
f 递减
DECF f,d
f-1d
Z
2,4,7
W 和 f 或运
算
IORWF f,d
Wˇfd
Z
2,4,7
W 和 f 与运
算
ANDWF f,d
W∧fd
Z
2,4,7
W 和 f 异或
运算
XORWF f,d
W⊕fd
Z
2,4,7
W加f
ADDWF f,d
W+fd
C,DC,Z
1,2,4,7
传送 f 到 d
MOVF f,d
fd
Z
2,4,7
f 取补
COMF f,d
complement fd
Z
2,4,7
f 递增
INCF f,d
f+1d
Z
2,4,7
f 递减,为 0
则跳
DECFSZ f,d
f-1d,skip if zero
无
2,4,7
f 循环右移
RRF f,d
f(n)d(n-1),f C
(0)C,Cd(7)
2,4,7
f 循环左移
RLF f,d
f(n)d(n+1),f C
(7)C,Cd(0)
2,4,7
f 半字节交
换
SWAPF f,d
F(0-3)f(4-7) 无
d
2,4,7
f 递增,为 0
则跳
INCFSZ f,d
f+1d,skip if zero
无
2,4,7
面向位操作类指令
清除 f 的位
b
BCF f,b
0f(b)
无
2,4,
设置 f 的位
b
BSF f,b
1f(b)
无
2,4,
测试 f 的位
b,为 0 则跳
BTFSC f,b
Test
bit(b)
file(f):skip
clear
in
if
无
测试 f 的位
b,为 1 则跳
BTFSS f,b
Test
bit(b)
in
file(f):skip if set
无
常数操作和控制操作类指令
写 OPTION
寄存器
OPTION
WOPTION register
无
写 pullup
寄存器
PULLUP
Wpullup
register
control
无
6
写 pulldown
寄存器
PULLDOWN
Wpulldown control
register
无
6
进入睡眠状
态
SLEEP
0WDT
,
oscillator
TO,PD
清除 WDT 计
CLRWDT
0WDT(and
http://www.belling.com.cn
-6Total 10 Pages
stop
TO,PD
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
时器
prescaler,if
assigned)
设置 I/O 状
态
TRIS f
WI/O
control
register f
无
子程序带参
数返回
RETLW k
kW,StackPC
无
调用子程序
CALL k
PC+1Stack,KPC
无
跳转(K 为 9
位)
GOTO k
kPC(9 bits)
无
常数置入 W
MOVLW k
kW
无
常数和 W 做
或运算
IORLW k
kˇWW
Z
常数和 W 做
与运算
ANDLW k
k∧WW
Z
常数和 W 做
异或运算
XORLW k
k⊕WW
Z
3
1,
注释:
注释: 1 除 GOTO 指令外,任何有关写 PC(F2)的指令都会把 PC 寄存器的第 9 位清零。
2 若对一 I/O 口寄存器进行操作,如 SUBWF 6,1 ,则使用的 F6 的值是当前 B 口上的状态值,
而非 B 口输出锁存器里的值。
3 指令“TRIS f”(f=5 或 6)将 W 寄存器中的内容写入 f 的 I/O 口控制寄存器中。‘1’关断对
应端口的输出 BUF,使其为高阻状态。
4 当预分频器分配给 RTCC 后,任何对 RTCC 寄存器(F1)写操作的指令都将使预分频器清零。
6 比 PIC16C54/56 多出的指令。
7 d 取 1 表示寄存器,取 0 表示 W。
8 CM5001 的指令集(35 条)与 PIC16C56 的指令级(33 条)不完全相同,更重要的是指令代码
不一致。本公司初于保密的原因不公开 CM5001 指令集代码,不过这不影响客户使用。因为
本公司提供的编程器可以自动的把 PIC16C56 的指令代码翻译成 CM5001 的代码,100%兼容。
5.6 程序烧写和 config bit 定义
程序烧录采用本公司提供的专用编程器,具体编程时序略。Config bit 定义如下:
CP: Code Protection Bit
1 = Code Protection off
0 = Code Protection on
WDTE: Watchdog timer enable bit
1 = WDT enabled
0 = WDT disabled
FOSC1、FOSC0: Oscillator Selection Bit
11 = LP oscillator(低速晶体振荡模式)
10 = XT oscillator(中速晶体振荡模式)
01 = HS oscillator(高速晶体振荡模式)
00 = RC oscillator(阻容振荡模式)
6.电路特性参数
http://www.belling.com.cn
-7Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
6.1 极限参数
工作电压-------------------------------------工作温度-------------------------------------IO 的输入范围------------------------------IO 输出范围----------------------------------6.2 直流参数
符号 参数
2.4~5.5V
-40~85℃
-0.6~VDD+0.6
0~VDD
条件
最小
典型
最大
单位
FXT1
XTAL(3V)
稳定工作最高频率
11
MHz
FXT2
XTAL(5V)
稳定工作最高频率
20
MHz
ISB1
静态电流(5V)
所有输入接 VDD,输出悬浮,
WDT 关
1
uA
ISB2
静态电流(5V)
所有输入接 VDD,输出悬浮,
WDT 开
10.5
uA
ISB3
静态电流(3V)
所有输入接 VDD,输出悬浮,
WDT 开
2.9
uA
IOC1
工作电流(5v)
XT 模式 4M
4.7
5.5
mA
IOC2
工作电流(5v)
LP 模式 32K
4.4
5
mA
IOC3
工作电流(3v)
XT 模式 4M
1.2
1.4
mA
IOC4
工作电流(3v)
LP 模式 32K
0.85
1
mA
IOC5
工作电流(5v)
RC 模式 4M(10P,2.2K)
6.5
mA
IOC6
工作电流(3v)
RC 模式 4M(10P,2.2K)
2.15
mA
振荡范围
HS 模式
4M
20M
Hz
XT 模式
455K
11.092M
Hz
LP 模式
32K
455K
Hz
10P 1.5K
4.3M
10P 2.2K
4M
10P 2.4K
3.6M
10P 3.6K
3M
10P 5.6K
2M
100P 5.6K
384K
RC 振荡(5V)
VIH1
输入高电压(5v)
I/O
2
V
VIH2
输入高电压(3v)
I/O
2
V
VIL1
输入低电压(5v)
I/O
1
V
VIL2
输入低电压(3v)
I/O
0.6
V
VIL3
输入低电压(5v)
MRB
2
V
VIL4
输入低电压(3v)
MRB
1
V
IOH1
输出高电流(电压 5v) 输出接 0.7VDD
13.5
mA
IOH2
输出高电流(电压 3v) 输出接 0.7VDD
7.0
mA
IOL1
输出低电流(电压 5v) 输出接 0.3VDD
55
mA
IOL2
输出低电流(电压 3v) 输出接 0.3VDD
23
mA
上拉电阻
61K
Ω
下拉电阻
60K
Ω
http://www.belling.com.cn
-8Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
看门狗复位时间(5v)
19
mS
看门狗复位时间(3v)
24
mS
6.3 交流参数
CM5001 在 LP 模式下(32.768K 晶振,使用 5.1p 电容)晶振起振时间:
(1)3V 时典型值为 480mS,最低为 480mS,最高为 560mS。
(2)5V 时典型值为 170mS,最低为 160mS,最高为 250mS。
7.典型应用
略。
8.封装尺寸
http://www.belling.com.cn
-9Total 10 Pages
8/24/2006
Wrote by dipeng
8位OTP单片机芯片CM5001
http://www.belling.com.cn
- 10 Total 10 Pages
8/24/2006
Wrote by dipeng