PTBO232XXS/C,carry怎么读

carry 0
PTBO232XXS/C 数据手册 带12位ADC、采用FPPATM技术双核心8位单片机 第0.03版 2017年3月27日 -1- 2017-3-27 PTBO232XXS/C 重要声明 迪浦电子保留权利在任何时候变更或终止产品,建议客户在使用或下单前与迪浦电子或代理商联系以取得最新、最正确的产品信息。
迪浦电子不担保本产品适用于保障生命安全或紧急安全的应用,迪浦电子不为此类应用产品承担任何责任。
关键应用产品包括,但不仅限于,可能涉及的潜在风险的死亡,人身伤害,火灾或严重财产损失。
迪浦电子不承担任何责任来自于因客户的产品设计所造成的任何损失。
在迪浦电子所保障的规格范围内,客户应设计和验证他们的产品。
为了尽量减少风险,客户设计产品时,应保留适当的产品工作范围安全保障。
提供本文档的中文简体版是为了便于了解,请勿忽视文中英文的部份,因为其中提供有关产品性能以及产品使用的有用信息,迪浦电子暨代理商对于文中可能存在的差错不承担任何责任,建议参考本文件英文版。
-2- 2017-3-27 PTBO232XXS/C 目录
1.

单片机特点..............................................................................................................................


8 1.1.系列特点...................................................................................................................................8
1.2.高性能RISCCPU架构.............................................................................................................8
1.3.系统功能...................................................................................................................................8
1.4.封装信息

...................................................................................................................................9
2.

系统概述和方框图

.................................................................................................................

10
3.PTBO232XXC系列引脚功能描述.........................................................................................11
4.PTBO232XXS系列引脚功能描述.........................................................................................12
5.器件电气特性

........................................................................................................................

15 5.1.5.2.5.3.5.4.5.5.5.6.5.7.5.8.5.9.5.10.5.11.5.12.5.13. 直流/交流特性.........................................................................................................................15
最大范围.................................................................................................................................17
ILRC频率与VDD、温度关系的曲线图....................................................................................18IHRC频率与VDD、温度关系的曲线图...................................................................................19工作电流量测值@系统时钟=ILRC÷N.....................................................................................20
工作电流量测值@系统时钟=IHRC÷N....................................................................................20工作电流量测值@系统时钟=4MHZ晶振EOSC÷N.................................................................21工作电流量测值@系统时钟=32KHZ晶振EOSC÷N................................................................21IO引脚输出驱动电流(IOH)和灌电流(IOL)曲线图.........................................................................22测量的IO输入阈值电压(VIH/VIL)..............................................................................................22
IO引脚拉高阻抗曲线图...........................................................................................................22
输出(VDD/2)偏置电压与VDD关系的曲线图............................................................................23开机时序图

..............................................................................................................................23
6.

功能概述

...............................................................................................................................

24 6.1.处理单元.................................................................................................................................24
6.1.1程序计数器......................................................................................................................25
6.1.2堆栈指针.......................................................................................................................25
6.1.3

一个处理单元工作模式....................................................................................................26 6.2.

OTP程序存储器......................................................................................................................27
6.2.1程序存储器分配............................................................................................................27
6.2.2两个处理单元工作模式下程序存储器分配例子..............................................................276.2.3一个处理单元工作模式下程序存储器分配例子..............................................................28 6.3程序结构.................................................................................................................................29
6.3.1两个处理单元工作模式下程序结构................................................................................296.3.2一个处理单元工作模式下程序结构................................................................................29 6.4启动程序.................................................................................................................................30
6.5数据存储器..............................................................................................................................31
6.6算术和逻辑单元.......................................................................................................................31
6.7振荡器和时钟..........................................................................................................................32 6.7.1
内部高频振荡器(IHRC)和低频振荡器(ILRC)........................................................32 -3- 2017-3-27 PTBO232XXS/C 6.7.2单片机校准...................................................................................................................32
6.7.3IHRC频率校准和系统时钟............................................................................................32
6.7.4晶体振荡器...................................................................................................................34
6.7.5系统时钟和LVR水平....................................................................................................35
6.7.6系统时钟切换................................................................................................................36
6.816位定时器(TIMER16)...........................................................................................................37
6.98位PWM定时器(TIMER2)......................................................................................................39
6.9.1使用Timer2产生定期波形............................................................................................40
6.9.2使用Timer2产生8位PWM波形.................................................................................416.9.3使用Timer2产生6位PWM波形.................................................................................436.10看门狗定时器..........................................................................................................................44
6.11中断........................................................................................................................................45
6.12掉电模式.................................................................................................................................47
6.12.1省电模式(exe)...................................................................................................47
6.12.2掉电模式(sys)....................................................................................................48
6.12.3唤醒..............................................................................................................................49
6.13IO端口...................................................................................................................................50
6.14复位和LVR.............................................................................................................................51
6.14.1复位..............................................................................................................................51
6.14.2LVR..............................................................................................................................51
6.15VDD/2偏置电压......................................................................................................................51
6.16数字转换(ADC)模块............................................................................................................52
6.16.1AD转换的输入要求......................................................................................................53
6.16.2ADC分辨率选择...........................................................................................................54
6.16.3ADC时钟选择..............................................................................................................54
6.16.4AD转换........................................................................................................................54
6.16.5模拟引脚的配置............................................................................................................54
6.16.6使用

ADC......................................................................................................................54
7.

IO寄存器

..............................................................................................................................

55 7.1算术逻辑状态寄存器(FLAG),IO地址=0X00.....................................................................557.2FPP单元允许寄存器(FPPEN),IO地址=0X01...................................................................557.3堆栈指针寄存器(SP),IO地址=0X02.................................................................................557.4时钟控制寄存器(CLKMD),IO地址=0X03..........................................................................567.5中断允许寄存器(INTEN),IO地址=0X04............................................................................567.6中断请求寄存器(INTRQ),IO地址=0X05...........................................................................567.7TIMER16控制寄存器(T16M),IO地址=0X06.....................................................................577.8通用数据输入/输出寄存器(GDIO),IO地址=0X07..............................................................577.9外部晶体振荡器控制寄存器(EOSCR),IO地址=0X0A.........................................................577.10内部高频RC振荡器控制寄存器(IHRCR,只写),IO地址=0X0B........................................587.11中断边沿选择寄存器(INTEGS,只写),IO地址=0X0C........................................................587.12端口A数字输入禁止寄存器(PADIER,只写),IO地址=0X0D.............................................587.13端口B数字输入禁止寄存器(PBDIER,只写),IO地址=0X0E.............................................597.14端口A数据寄存器(PA),IO地址=0X10.............................................................................597.15端口A控制寄存器(PAC),IO地址=0X11..........................................................................597.16端口A上拉控制寄存器(PAPH),IO地址=0X12.................................................................597.17端口B数据寄存器(PB),IO地址=0X14..............................................................................597.18端口B控制寄存器(PBC),IO地址=0X15............................................................................597.19端口B上拉控制寄存器(PBPH),IO地址=0X16.................................................................60 -4- 2017-3-27 PTBO232XXS/C 7.20端口C数据寄存器(PC),IO地址=0X17............................................................................607.21端口C控制寄存器(PCC),IO地址=0X18..........................................................................607.22端口C上拉控制寄存器(PCPH),IO地址=0X19.................................................................607.23ADC控制寄存器(ADCC),IO地址=0X20..........................................................................607.24ADC模式控制寄存器(ADCM,只写),IO地址=0X21..........................................................617.25ADC数据高位寄存器(ADCRH,只读),IO地址=0X22.......................................................617.26ADC数据低位寄存器(ADCRL,只读),IO地址=0X23.......................................................617.27杂项寄存器(MISC),IO地址=0X3B.......................................................................................627.28TIMER2控制寄存器(TM2C),IO地址=0X3C............................................................................637.29TIMER2计数寄存器(TM2CT),IO地址=0X3D..........................................................................637.30TIMER2分频器寄存器(TM2S),IO地址=0X37........................................................................637.31TIMER2上限寄存器(TM2B),IO地址=0X09..............................................................................64
8.指令

......................................................................................................................................

65 8.1数据传输类指令.......................................................................................................................65
8.2算术运算类指令.......................................................................................................................69
8.3移位运算类指令.......................................................................................................................71
8.4逻辑运算类指令.......................................................................................................................72
8.5位运算类指令..........................................................................................................................74
8.6条件运算类指令.......................................................................................................................75
8.7系统控制类指令.......................................................................................................................77
8.8指令执行周期综述...................................................................................................................79
8.9

指令影响标志的综述................................................................................................................80
9.

特别注意事项

........................................................................................................................

81 9.1警告........................................................................................................................................81
9.2使用IC时................................................................................................................................81 9.2.1
IO使用与设定...............................................................................................................81
9.2.2中断..............................................................................................................................82
9.2.3切换系统时钟................................................................................................................82
9.2.4掉电模式、唤醒以及看门狗...........................................................................................83
9.2.5TIMER溢出时间...........................................................................................................84
9.2.6ADC使用注意事项.......................................................................................................84
9.2.7LVR..............................................................................................................................84
9.2.8IHRC............................................................................................................................84
9.2.9单/双核模式下指令周期差异..........................................................................................85
9.3使用ICE时.............................................................................................................................85
9.3.1PTBO232XXS/C系列于仿真器PDK3S-I-001/002/003上仿真时................................859.3.2使用PDK3S-I-001/002/003仿真PTBO232XXS/C系列功能時注意事項........................86 -5- 2017-3-27 PTBO232XXS/C 修订历史: 修订0.010.02 0.03 日期2015/8/12015/10/30 2017/3/27 描述初版。

1.增加1.4.封装信息:PTBO232XXC-Y24A。

2.增加
3.PTBO232XXC-Y24A系列引脚功能描述。

1.增加5.1.**Under_20ms_Vdd_ok说明。

2.增加9.1警告描述。

3.增加9.2.8.IHRC描述。
-6- 2017-3-27 PTBO232XXS/C P232C和PTBO232XXS/C主要差异列表 P232C与PTBO232XXS/C系列之间存在众多的差异。
下表只列出了其中的主要差异: 项目12345678 9 101112 功能IO输出电流SRAMBand-gapLVR单一处理器模式LCDVDD/2偏置电压ADC参考高电压ADC分辨率端口数字/模拟输入编译寄存器IHRC选择性指令看门狗定时器溢时硬件比较器 P232C12mA@5.0V200bytes+/-200mV(@1.20V)4段LVR设定支持没有VDD与PB18bit到12bit可供选择 padidr,pbdidr,pcdidr .ADJUST_OTP_IHRCR512ILRC时钟周期有 PTBO232XXS/C10mA@5.0V160bytes+/-60mV(@1.20V)校准后8段LVR设定不支持有VDD只有12bit padier,pbdier .ADJUST_IIC4个周期可供选择没有 从原P232C的程序转换至PTBO232XXS/C之步骤 要从原P232C的程序转换至PTBO232XXS/C,请跟从下列步骤:
1.将PTBO232XXS/C的数据手册和使用手册阅览一遍。

2.把源程序中的工程文件“.pre”中的“.chipP232CXXX”直接修改为“.chipPTBO232XXC”或“.chipPTBO232XXS”。

3.按下“Build”键后,IDE会出现一些错误和警告信息。

4.逐一修改源程序中的对应部分,以至令所有错误信息不再出现。

5.再次储存程序档案以及“Build”。

6.烧录真实芯片(realchip)并详细测试其功能。

7.如有需要,回到步骤3重新操作。

8.如果您仍有任何问题,请联络我们的FAE:fae@ -7- 2017-3-27 PTBO232XXS/C
1.单片机特点 1.1.系列特点 PTBO232XXC系列:高抗干扰(HighEFT)系列工作温度范围:-40°C~85°
C PTBO232XXS系列:通用系列请勿使用于AC阻容降压供电,强电源纹波,或高EFT要求之应用工作温度范围:-20°C~70°C 1.2.高性能RISCCPU架构 工作模式:2个FPPATM处理单元运作模式或传统单一处理单元运作模式2Kx16bitsOTP程序存储器160Bytes数据存储器提供100条指令大部份指令都是单周期(1T)指令弹性化的堆栈深度,可程序设定提供数据与指令的直接、间接寻址模式所有的数据存储器都可当数据指针(indexpointer)独立的IO地址以及存储地址,方便程序开发 1.3.系统功能 时钟源:内部高频RC振荡器(IHRC)、内部低频RC振荡器(ILRC)、外部晶振 内置Band-gap硬件模块输出1.20V参考电压 内置一个硬件16位定时器 内置一个硬件8位定时器并可提供PWM模式输出 内置一个10通道12位分辨率A/D转换器,其中1通道是Band-gap参考电压输入 内置VDD/2偏置电压产生器供液晶显示应用 最多提供4x13点LCD显示 提供快速唤醒模式 8段LVR设定~4.1V,3.6V,3.1V,2.8V,2.5V,2.2V,2.0V,1.8V 18个IO引脚,每一IO引脚具有10mA电流驱动能力 两个外部中断引脚 每一IO引脚都可以单独设置系统唤醒功能 工作电压:2.2V~5.5V 工作频率(合并2个FPP处理单元) DC~8MHz@VDD≧3.0V;DC~4MHz@VDD≧2.5V;DC~2MHz@VDD≧2.2V 功耗特性: Ioperating~1.7mA@1MIPS,VDD=5.0V; Ioperating~15uA@VDD=3.3V,ILRC~12kHz Ipowerdown~1uA@VDD=5.0V; Ipowerdown~0.5uA@VDD=3.3V -8- 2017-3-27 PTBO232XXS/C 1.4.封装信息 PTBO232XXC系列: PTBO232XXC-S20:SOP20(300mil);PTBO232XXC-D20:DIP20(300mil);PTBO232XXC-S16A:SOP16TypeA(150mil);PTBO232XXC-S18:SOP18(300mil);PTBO232XXC-Y24A:SSOP(150mil); PTBO232XXC-S14:SOP14(150mil);PTBO232XXC-D14:DIP14(300mil);PTBO232XXC-S16B:SOP16TypeB(150mil);PTBO232XXC-D18:DIP18(300mil); PTBO232XXS系列: PTBO232XXS-S20:SOP20(300mil);PTBO232XXS-D20:DIP20(300mil);PTBO232XXS-S16A:SOP16TypeA(150mil);PTBO232XXS-S18:SOP18(300mil); PTBO232XXS-S14:SOP14(150mil);PTBO232XXS-D14:DIP14(300mil);PTBO232XXS-S16B:SOP16TypeB(150mil);PTBO232XXS-D18:DIP18(300mil); -9- 2017-3-27 PTBO232XXS/C
2.系统概述和方框图 PTBO232XXS/C系列是一个带ADC、并行处理、完全静态,以OTP为程序存储基础的处理器,此处理器具有两个处理单元。
它基于RISC架构,获得(FieldProgrammableProcessorArray现场可编程处理器阵列)技术专利,大多数的指令执行时间都是一个指令周期。
在PTBO232XXS/C内部有2KX16bitOTP程序存储器以及160Bytes数据存储器供两个FPP处理单元运算使用,芯片内部还设置有10通道12位分辨率A/D转换器,其中1通道为内置的Band-gap参考电压生成器,它可以提供于绝对电压的测量;另外,PTBO232XXS/C提供2组硬件时钟,一个为16位时钟,第二个为8位时钟并且可产生PWM波形。
2KWOTP程序存储器 PWM功能 I2C功能 SPI功能UART功能按键扫瞄 功能LCD功能 FPP0FPP1 功耗控制 中断控制器 16位时钟 IO端口 160bytes数据存储器 12位分辨率AD& Band-gap 8位时钟/PWM 上电复位/低电压检测器 看门狗时钟 -10- 2017-3-27 PTBO232XXS/C
3.PTBO232XXC系列引脚功能描述 PTBO232XXC-S14(SOP14-150mil)PTBO232XXC-D14(DIP14-300mil) PC01PB0/AD0/INT12 PB1/AD13PB2/AD24 GND5PB3/AD36PA0/INT0/COM07 14PC5/COM113PA4/AD812PA7/X111PA6/X210VDD9PA3/AD7/PWM/COM38PA5/RESET# PTBO232XXC-S14(SOP14-150mil)PTBO232XXC-D14(DIP14-300mil) PTBO232XXC-Y24A(SSOP24-150mil) NC1PC12PC03 24NC23PC422PC5/COM1 PB0/AD0/INT14 21PA4/AD8 PB1/AD15 20PA7/X1 PB2/AD26 19PA6/X2 GND7 18VDD PB3/AD38 17PA3/AD7/PWM/COM3 PB4/AD49PB5/AD510PB6/AD611 NC12 16PA2/PWM/COM215NC14PA5/RESET#13PA0/INT0/COM0 PTBO232XXC-Y24A(SSOP24-150mil) PTBO232XXC-S16A(SOP16-150mil) PTBO232XXC-S16B(SOP16-150mil) PC01PB0/AD0/INT12 PB1/AD13PB2/AD24 GND5PB3/AD36PB4/AD47PA0/INT0/COM08 16PC5/COM115PA4/AD814PA7/X113PA6/X212VDD11PA3/AD7/PWM/COM310PA2/PWM/COM29PA5/RESET# PTBO232XXC-S16A(SOP16-150mil) PB0/AD0/INT11PB1/AD12PB2/AD23GND4PB3/AD35PB4/AD46PB5/AD57PB6/AD68 16PA4/AD815PA7/X114PA6/X213VDD12PA3/AD7/PWM/COM311PA2/PWM/COM210PA5/RESET#9PA0/INT0/COM0 PTBO232XXC-S16B(SOP16-150mil) PTBO232XXC-S18(SOP18-300mil)PTBO232XXC-D18(DIP18-300mil) PTBO232XXC-S20(SOP20-300mil)PTBO232XXC-D20(DIP20-300mil) PC01PB0/AD0/INT12 PB1/AD13PB2/AD24 GND5PB3/AD36PB4/AD47PB5/AD58PB6/AD69 18PC5/COM117PA4/AD816PA7/X115PA6/X214VDD13PA3/AD7/PWM/COM312PA2/PWM/COM211PA5/RESET#10PA0/INT0/COM0 PTBO232XXC-S18(SOP18-300mil)PTBO232XXC-D18(DIP18-300mil) PC11PC02PB0/AD0/INT13PB1/AD14PB2/AD25GND6PB3/AD37PB4/AD48PB5/AD59PB6/AD610 20PC419PC5/COM118PA4/AD817PA7/X116PA6/X215VDD14PA3/AD7/PWM/COM313PA2/PWM/COM212PA5/PRESET#11PA0/INT0/COM0 PTBO232XXC-S20(SOP20-300mil)PTBO232XXC-D20(DIP20-300mil) -11- 2017-3-27 PTBO232XXS/C
4.PTBO232XXS系列引脚功能描述 PTBO232XXS-S14(SOP14-150mil)PTBO232XXS-D14(DIP14-300mil) PTBO232XXS-S16A(SOP16-150mil) PTBO232XXS-S16B(SOP16-150mil) PTBO232XXS-S18(SOP18-300mil)PTBO232XXS-D18(DIP18-300mil) PTBO232XXS-S20(SOP20-300mil)PTBO232XXS-D20(DIP20-300mil) -12- 2017-3-27 PTBO232XXS/C 引脚功能说明 引脚名称电器型态 PA7/X1 IOST/CMOS PA6/X2 IOST/CMOS PA5/RESET# IO(OC)ST/ CMOS PA4/AD8 IOST/CMOS/Analog PA3/AD7/PWM/COM3 IOST/CMOS/Analog PA2/PWM/COM2 IOST/CMOS 功能描述 此引脚可用作:
1.当使用内部IHRC振荡器时,它可以当PortA位
7,并可编程设定为数字输入/输出,弱上拉电阻。

2.使用晶体振荡器时,作X1用。
当此引脚设定为晶体振荡功能时,请用寄存器padier位7关闭(”0”)此引脚的数字输入以减少漏电流。
当此引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
此引脚可用作:
1.当使用内部振荡器IHRC或ILRC时,它可以当PortA位
6,可编程设定为数字输入/输出,弱上拉电阻。

2.使用晶体振荡器时,作X2用。
当此引脚设定为晶体振荡功能时,请用寄存器padier位6关闭(”0”)此引脚的数字输入以减少漏电流。
当此引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
此引脚可用作:
1.当单片机的硬件外部复位。

2.当PortA位5;此引脚没有上拉或下拉电阻,当设定为输出时,只能输出低电位(开漏输出opendrain),输出高电位需要外加上拉电阻。
如果此引脚没有用的话,请外加上拉电阻(输入模式)或将它驱动低(输出),以防止漏电流。
另外,可以用寄存器padier位5来关闭(”0”)此引脚在掉电时的唤醒功能。
当做为输入时,请在靠近I/O端串接33Ω电阻用来抗干扰此引脚可用作:
1.PortA位
4,这个引脚可编程设定为数字输入/输出,弱上拉电阻。

2.ADC模拟输入通道
8。
当此引脚设定为模拟输入时,请用寄存器padier位4关闭(”0”)此引脚的数字输入以减少漏电流。
当此引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
此引脚可用作:
1.PortA位
3,这个引脚可编程设定为数字输入/输出,弱上拉电阻。

2.ADC模拟输入通道73.Timer2的PWM输出
4.产生COM3的(VDD/2)偏置电压供给LCD应用。
当此引脚设定为模拟输入时,请用寄存器padier位3关闭(”0”)此引脚的数字输入以减少漏电流。
当此引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
此引脚可用作:
1.PortA位
2,这个引脚可编程设定为数字输入/输出,弱上拉电阻。

2.Timer2的PWM输出。

3.产生COM2的(VDD/2)偏置电压给LCD应用。
另外,可以用寄存器padier位2来关闭(”0”)此引脚在掉电时的唤醒功能。
-13- 2017-3-27 PTBO232XXS/C 引脚名称电器型态 功能描述 PA0/INT0/COM0 IOST/CMOS 此引脚可用作:
1.PortA位
0,这个引脚可编程设定为数字输入/输出,弱上拉电阻。

2.外部中断输入,中断服务可发生在上升沿或下降沿。

3.产生COM0的(VDD/2)偏置电压给LCD应用。
另外,可以用寄存器padier位0来关闭(”0”)此引脚在掉电时的唤醒功能。
PB6/AD6PB5/AD5PB4/AD4PB3/AD3PB2/AD2PB1/AD1 IOST/CMOS/Analog 此引脚可用作:
1.PortB位6~
1,这6个引脚可以编程设定为数字输入、高低电位输出,弱上拉电阻也可独立设定。

2.ADC模拟输入通道6~
1。
当此6个引脚设定为模拟输入时,请用寄存器pbdier关闭(”0”)此引脚的数字输入以减少漏电流。
当引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
当PB2做为ADC输入时,请加一个0.1uF电容在上面。
PB0/AD0/INT1 IOST/CMOS/Analog 此引脚可用作:
1.PortB位
0,这个引脚可以编程设定为数字输入、高低电位输出,弱上拉电阻也可独立设定。

2.ADC模拟输入通道03.外部中断输入,中断服务可靠寄存器设定选择在上升沿或下降沿。
当此引脚设定为模拟输入时,请用寄存器pbdier关闭(”0”)此引脚的数字输入以减少漏电流。
当此引脚设定禁用数字输入,在掉电模式的唤醒功能将同时被禁用。
PC5/COM1 IOST/CMOS 此引脚可用作:
1.PortC位
5,这个引脚可以编程设定为数字输入、高低电位输出,弱上拉电阻也可独立设定。

2.产生COM1的(VDD/2)偏置电压给LCD应用。
IO PortC位4,
1。
这2个引脚可以编程设定为数字输入、高低电位输出,弱上拉电阻也 PC4 ST/ 可独立设定。
CMOS PC1 IO 此引脚可用作: PC0 ST/ PortC位
0,这个引脚可以编程设定为数字输入、高低电位输出,弱上拉电阻也可独立 CMOS设定。
VDD 正电源 GND 地 注意:IO:输入/输出;ST:施密特触发;OC:开漏输出;Analog:模拟输入CMOS:CMOS电压准位 -14- 2017-3-27 PTBO232XXS/C
5.器件电气特性 5.1.直流/交流特性 下列所有数据除特别列明外,皆于Ta=-40oC~85oC,Vdd=5.0V,fSYS=2MHz之条件下获得。
符号 特性 最小值典型值最大值单位 条件(Ta=25oC) VDD 工作电压 2.2 5.0 5.5
V 系统时钟* IHRC/2 fSYS IHRC/4 IHRC/8 ILRC Under_20ms_Vdd_ok**=
Y/N
0 8M VDD≧3.0V
0 4M HzVDD≧2.5V
0 2M VDD≧2.2V 24K VDD=5.0V IOP 工作电流 1.7 mAfSYS=IHRC/16=1MIPS@5.0V 15 uAfSYS=ILRC=12kHz@3.3V 掉电电流IPD(使用sys指令) 1.0 uAfSYS=0Hz,VDD=5.0V 0.5 uAfSYS=0Hz,VDD=3.3V 省电电流IPS(使用exe指令) VDD=5.0V; 0.3 mABand-gap,LVR,IHRC,ILRC, Timer16硬件模块启用. VIL 输入低电压
0 0.3VDDV VIH 输入高电压 0.7VDD VDD
V IOL IO引脚灌电流
7 10 13 mAVDD=5.0V,VOL=0.5V IOH IO引脚驱动电流 -
5 -
7 -
9 mAVDD=5.0V,VOH=4.5V VIN 输入电压 -0.3 VDD+0.3V IINJ(PIN) 脚位的引入电流
1 mAVDD+0.3≧VIN≧-0.3 RPH 上拉阻抗 62 VDD=5.0V 100 KΩVDD=3.3V 210 VDD=2.2V VLVR 低电压复位电压 3.86 4.15 4.44 3.35 3.60 3.85 2.84 3.05 3.26 2.61 2.80 3.00
V 2.37 2.55 2.73 2.04 2.20 2.35 1.86 2.00 2.14 1.67 1.80 1.93 Band-gap
参考电压(校准前) 1.11 1.20 1.29 VDD=5V,25oC VBGBand-gap参考电压(校准后) 1.140*1.145* 1.20*1.20* 1.260*1.255* VVDD=2.2V~5.5V,-40oC系统时钟为IHRC。
STOPSYS掉电模式下,切换IO引脚的快速唤醒。
系统时钟为ILRC。
STOPEXE省电模式和STOPSYS掉电模式下,切换IO引脚的普通唤醒 典型值16* 16*16*24*24*24*12*7*7* 0.90.8217±2*±4*3 5±1%2048409616384256 最大值16.24*17.28*16.96*27.6*32.4*31.2*13.8*9.45*9.10*5.0VDD 12 10±3% 单位 MHz kHz nsVVbitmAus TADCLK LSBLSBmV VKΩ ILR时钟周期 条件(Ta=25℃)25oC,VDD=2.2V~5.5VVDD=2.2V~5.5V,-40oC **Under_20ms_Vdd_ok为对VDD能否于20ms内从0V上升到指定电压的一个检查条件。
5.2.最大范围 电源电压………………………………......2.2V~5.5V输入电压…………………………………....-0.3V~VDD+0.3V工作温度………………..…………………PTBO232XXC系列:-40°C~85°
C PTBO232XXS系列:-20°C~70°C节点温度………………………………..…..150°C储藏温度……………………………..……-50°C~125°
C -17- 2017-3-27 PTBO232XXS/C 5.3.ILRC频率与VDD、温度关系的曲线图 ILRC(KHz) 353025201510 50 -40-30-20-100 ILRCvs.Temperature VDD=5VVDD=4.2VVDD=3.3VVDD=2.8VVDD=2.2V 102030405060708090Temperature(degreeC) ILRCFrequency(KHz) ILRCFrequencyvs.VDD35 30 25 20 15 10
5 0
2 2.5
3 3.5
4 4.5
5 5.5
6 VDD(Volt) -18- 2017-3-27 PTBO232XXS/C 5.4.IHRC频率与VDD、温度关系的曲线图 Drift(%) IHRCDriftvs.Temperature 6%VDD=5V VDD=4.2V 4% VDD=3.3V VDD=2.8V 2% VDD=2.2V 0% -2% -4% -6% -40-30-20-10
0 10 20 30 40 50 60 70 80 90 Temperature(degreeC) Deviation(%) IHRCFrequencyDeviationvs.VDD 0.3 0.2 0.1
0 -0.1 -0.2 -0.3 -0.4 -0.5
2 2.5
3 3.5
4 4.5
5 5.5
6 VDD
(Volt) 注意:IHRC校准到16MHz -19- 2017-3-27 PTBO232XXS/C 5.5.工作电流量测值@系统时钟=ILRC÷n 量测条件:2-FPPA(FPPA0:切换PA0,FPPA1:闲置)启用:ILRC;禁用:Band-gap,LVR,IHRC,EOSC,T16,TM2,ADC等模块;IO引脚:PA0:0.5Hz输出切换而且没负载,其它脚位:输入而且不浮接。
OperatingCurrent(uA) ILRC/nOperatingCurrentvs.VDD30 ILRC/1 25 ILRC/4 20 15 10 52.02.53.03.54.04.55.05.56.0VDD(Volt) 5.6.工作电流量测值@系统时钟=IHRC÷n 量测条件:2-FPPA(FPPA0:切换PA0,FPPA1:闲置)启用:Band-gap,LVR,IHRC;禁用:ILRC,EOSC,T16,TM2,ADC等模块;IO引脚:PA0:0.5Hz输出切换而且没负载,其它脚位:输入而且不浮接 OperatingCurrent(mA) IHRC/nOperatingCurrentvs.VDD3.53.02.52.01.51.00.50.0 2.02.53.03.54.04.55.05.56.0VDD(Volt) IHRC/2IHRC/4IHRC/8IHRC/16IHRC/32IHRC/64 -20- 2017-3-27 PTBO232XXS/C 5.7.工作电流量测值@系统时钟=4MHz晶振EOSC÷n 量测条件:2-FPPA(FPPA0:切换PA0,FPPA1:闲置)启用:EOSC,MISC.6=1;禁用:Band-gap,LVR,IHRC,ILRC,T16,TM2,ADC,等模块;IO引脚:PA0:0.5Hz输出切换而且没负载,其它脚位:输入而且不浮接。
OperatingCurrent(mA) EOSC(4MHz)OperatingCurrentvs.VDD3.0 EOSC/1 2.5 EOSC/2 EOSC/4 2.0 EOSC/8 1.5 1.0 0.5 0.0 2.0 3.0 4.0 5.0 6.0 VDD
(Volt) 5.8.工作电流量测值@系统时钟=32kHz晶振EOSC÷n 量测条件:2-FPPA(FPPA0:切换PA0,FPPA1:闲置)启用:EOSC,MISC.6=1;禁用:Band-gap,LVR,IHRC,ILRC,T16,TM2,ADC等模块;IO引脚:PA0:0.5Hz输出切换而且没负载,其它脚位:输入而且不浮接。
OperatingCurrent(uA) EOSC(32KHz)OperatingCurrentvs.VDD45 40 EOSC/1 35 EOSC/2 EOSC/4 30 EOSC/8 25 20 15 10
5 0 2.0 3.0 4.0 5.0 6.0 VDD
(Volt) -21- 2017-3-27 PTBO232XXS/C 5.9.IO引脚输出驱动电流(IOH)和灌电流(IOL)曲线图 Ioh(mA) Ioh@Voh=0.9*VDD10 Iol@Vol=0.1*VDD12
8 10 Iol(mA) 86 64 4 22
0 0 2.0 3.0 4.0 5.0 6.0 2.0 3.0 4.0 5.0 6.0 VDD(Volt) VDD(Volt) 5.10.测量的IO输入阈值电压(VIH/VIL) Vih(Volt) Vihvs.VDD32.521.51 Vil(Volt) Vilvs.VDD32.521.51 0.5 0.5
0 0 2.0 3.0 4.0 5.0 6.0 2.0 3.0 4.0 5.0 6.0 VDD(Volt) VDD(Volt) 5.11.IO引脚拉高阻抗曲线图 Rph(Kohm) Rphvs.VDD250 200 150 100 50
0 2.0 3.0 4.0 5.0 6.0 VDD(Volt) -22- 2017-3-27 PTBO232XXS/C 5.12.输出(VDD/2)偏置电压与VDD关系的曲线图 BiasVoltage(Volt) VDD/2BiasVoltagevs.VDD 3.5
3 2.5
2 1.5
1 0.5
0 2
3 4
5 6 VDD(Volt) 5.13.开机时序图 VDD tSBP POR 执行程序 上电复位开机 VDDLVR执行程序 LVRlevel tSBP LVR低电压侦测复位开机 VDD 看门狗定时器 tSBP 超时溢出 执行程序 看门狗定时器超时溢出复位开机 VDD Reset# tSBP 执行程序 Reset#
引脚复位开机 -23- 2017-3-27 PTBO232XXS/C
6.功能概述 6.1.处理单元 PTBO232XXS/C内有两个处理单元:FPP0和FPP1,在每一个处理单元中包括:
(1)其本身的程序计数器来控制程序执行的顺序
(2)自己的堆栈指针用来存储或恢复程序计数器的程序执行
(3)自己的累加器
(4)状态标志以记录程序执行的状态。
在上电复位后只有FPP0是启用的,系统初始化将从FPP0开始,而FPP1可以由使用者的程序来决定是否使用。
FPP0和FPP1都有自己的程序计数器和累加器用以执行程序,标志寄存器以记录程序状态,堆栈指针做为跳跃操作。
基于这样的架构,FPP0和FPP1可以独立执行自己程序,达到并行处理效能。
FPP0和FPP1共享2Kx16bitsOTP程序存储器,160bytes数据SRAM以及所有的IO口,这两个FPP单元是各自独立运作在相斥的时钟周期,以避免干扰。
芯片内部有一个工作切换硬件模块以决定FPP0和FPP1相对应的周期。
图1所示为FPP0和FPP1硬件框图以及基本时序图。
对于FPP0而言,其程序将按顺序每两个系统时钟执行一次,如图:FPP0在第(M-1),第M和第(M+1)时钟周期执行程序。
对于FPP1而言,其程序将按顺序每两个系统时钟执行一次,如图:FPP1在第(N-1),第N和第(N+1)时钟周期执行程序。
任务切换 2KWOTP程序存储器 160bytes数据SRAM IO端口 FPP0程序计数器
0 堆栈指针0累加器0状态标志
0 FPP1程序计数器
1 堆栈指针1累加器1状态标志
1 系统时钟 (M-1)th Mth (M+1)th 时序 (N-1)th FPP0执行程序Nth (N+1)th FPP1执行程序 图1:FPP单元架构以及基本时序 每个FPP单元具有整个系统一半的计算能力,例如,如果系统时钟为8MHz,FPP0和FPP1将分别在4MHz时钟下工作。
FPP单元可以通过允许寄存器编程来启用或禁用;上电复位后,只有FPP0是被启用的。
系统初始化将从FPP0开始,FPP1可以由用户的程序来决定是否启用。
FPP0和FPP1可以被FPP0或FPP1中任一个禁用,包括禁用本身这一FPP单元。
-24- 2017-3-27 PTBO232XXS/C 6.1.1程序计数器 程序计数器(PC)记录下一个执行指令的地址,在每个指令周期后程序计数器会自动递增,以便指令码按顺序从程序存储器取出。
某些指令,如分支指令和子程序调用都会改变顺序并放入一个新值到程序计数器。
PTBO232XXS/C程序计数器的位长度是12。
在硬件复位后,FPP0的程序计数器为
0、FPP1为
1。
当中断发生时,程序计数器会跳转到'h10的中断服务程序处。
FPP0和FPP1都具有各自独立的程序计数器来控制其程序执行顺序。
6.1.2堆栈指针 在每个处理单元的堆栈指针是用来指引堆栈存储器的顶部,该处是用来存储子程序的局部变量和参数的地方;堆栈指针寄存器(SP)的地址是IO0x02h。
堆栈指针的位数是8位,堆栈存储器是与数据SRAM共享,所以堆栈存储器的使用从地址0x00h开始,并在208字节以内。
FPP0和FPP1使用的堆栈存储器都可以由用户通过指定堆栈指针寄存器来调整,意味着FPP0和FPP1的堆栈指针单位深度是可调的,以优化系统性能。
下面的示例显示了如何在ASM汇编语言下定义堆栈: ﹒ROMADR GOTO GOTO ... ﹒RAMADR WORD WORD ... FPPA0: SP= Stack0; 0FPPA0FPPA1 0Stack0[1]Stack1[2] ...call...FPPA1:SP= function1Stack1; ... call function2 ... //地址必需小于0x100//1个WORD//2个WORD //指定Stack0给FPPA0使用,//只能有一层呼叫,因为Stack0[1] //指定Stack1给FPPA1使用,//可以有2层呼叫,因为Stack1[2] 在使用Mini-C汇编语言下,由系统软件计算堆栈的深度,使用者不需特别花时间计算,主程序如下: void{...} FPPA0(void) -25- 2017-3-27 PTBO232XXS/C 使用者可以在程序分解的窗口里检查堆栈的设定,图2表示在FPP0执行前的堆栈状态,系统计算出所需的堆栈空间,并保留该空间给程序使用。
图2:使用Mini-C的堆栈设定 6.1.3一个处理单元工作模式 传统的单片机使用者如果不需要有并行处理能力的单片机,PTBO232XXS/C除了具有平行处理能力的双处理单元工作模式外,还提供单处理单元工作模式,它的表现就如同传统的单片机。
当一个处理单元工作模式被选中后,FPP1始终禁用,只有FPP0是使能的。
图3显示了每个FPP单元的时序图,FPP1总是禁用,只FPP0活跃。
请注意在一个处理单元工作模式下,是不支持等待(wait)和延时(delay)指令。
任务切换 2KWOTP程序存储器 160bytes数据SRAM IO端口 FPP0程序计数器
0 堆栈指针0累加器0状态标志
0 FPP1程序计数器
1 堆栈指针1累加器1状态标志
1 系统时钟 (M-1)th Mth (M+1)th 时序 (N-1)th FPP0执行程序Nth (N+1)th FPP1执行程序 图3:一个处理单元工作模式下的时序 -26- 2017-3-27 PTBO232XXS/C 6.2.OTP程序存储器 6.2.1程序存储器分配 OTP(一次性可编程)程序存储器用来存放要执行的程序指令。
FPP0和FPP1的所有程序代码都存储在这个OTP存储器。
OTP程序存储器可以储存数据,包含:数据,表格和中断入口。
复位之后,FPP0的初始地址为0x0,FPP1的初始地址为0x1。
中断入口是0x10,只有FPP0能使用中断功;OTP程序存储器最后8个地址空间是被保留给系统使用,如:校验,序列号等。
PTBO232XXS/C的OTP程序存储器结构是2Kx16位,如表1所示。
OTP存储器从地址“hFF8~hFFF”供系统使用,从“h002~h00F”和“h011~hFF7”地址空间是使用者的程序空间。
地址0x001是FPP1的初始地址;另外,两个处理单元工作模式或一个处理单元工作模式,FPP0的初始地址都是0x000。
地址 功能 0x000 FPP0起始地址–goto指令 0x001 FPP1起始地址–goto指令 0x002 使用者程序区 • • 0x00F 使用者程序区 0x010 中断入口地址 0x011 使用者程序区 • • 0x7F7 使用者程序区 0x7F8 系统使用 • • 0x7FF 系统使用 表
1:PTBO232XXS/C程序存储器结构 6.2.2两个处理单元工作模式下程序存储器分配例子表2显示了一个例子,使用两个处理单元工作模式下,程序存储器分配情形: 地址000001•00F010•01F020•1A01A1•7F77F8•7FF 功能FPP0起始地址–goto指令(goto0x020)FPP1程序开始•goto0x1A1继续FPP1程序中断入口地址(只给FPP0)•中断程序结束FPP0程序开始•FPP0程序结束继续FPP1程序•FPP1程序结束系统使用•系统使用 表2:两个处理单元工作模式之程序存储器分配案例 -27- 2017-3-27 PTBO232XXS/C 6.2.3一个处理单元工作模式下程序存储器分配例子 表3显示了一个例子,使用一个处理单元工作模式下,程序存储器分配情形,整个使用者程序存储器都可以被分配到FPP0。
地址000001002•00F010011•01F020••7F77F8•7FF 功能FPP0起始地址FPP0程序开始使用者程序区•Goto指令(goto0x020)中断入口地址中断程序•中断程序结束使用者程序区••使用者程序区系统使用•系统使用 表3:一个处理单元工作模式之程序存储器分配案例 -28- 2017-3-27 PTBO232XXS/C 6.3程序结构 6.3.1两个处理单元工作模式下程序结构 开机后,FPP0和FPP1的程序开始地址分别是0x000和0x001。
中断服务程序的入口地址是0x010,而且只有FPP0才能接受中断服务。
PTBO232XXS/C的基本软件结构如图4所示。
两个FPP的处理单元的程序代码是被放置在同一个程序空间。
除了初始地址和中断入口地址外,处理单元的程序代码可以放在程序存储器任何位置,并没有在特定的地址;开机后,将首先执行fpp0Boot,其中将包括系统初始化和启用其它FPP的单元。
.romadr0x00 //ProgramBegin goto fpp0Boot; goto fpp1Boot; //------中断服务程序---------------- .romadr0x010 pushaf; t0snintrq.0;//PA.0ISR gotoISR_PA0; t0snintrq.1;//PB.0ISR … gotoISR_PB0; //------中断服务程序结束-------- //------FPP0程序开始---------- fpp0Boot: //---FPP0初始化… … fpp0Loop: … gotofpp0Loop: //------FPP0程序结束-------- //------FPP1程序开始---------- fpp1Boot: //---FPP1初始化… … fpp1Loop: … gotofpp1Loop: //---------FPP1程序结束-------- 图4:两个处理单元工作模式之程序结构 6.3.2一个处理单元工作模式下程序结构 开机后,FPP0的程序开始地址是0x000,中断服务程序的入口地址是0x010,一个处理单元工作模式下的程序结构与传统的单片机软件结构相同,开机后,程序将从地址0x000然后继续程序的顺序。
-29- 2017-3-27 PTBO232XXS/C 6.4启动程序 开机时,POR(上电复位)是用于复位PTBO232XXS/C;但是,上电后电源电压可能不太稳定,为确保单片机是工作在电压稳定的状态,在执行第一条指令之前,PTBO232XXS/C会延迟1024个ILRC时钟周期,这时间就是tSBP,如图5所示。
VDD tSBP POR上电复位 程序执行 图5:上电复位时序 开机后,使用者需要初始化系统,设定使用情形,图6显示的是典型开机流程。
请注意,上电复位后FPP1是禁用,建议不要在FPP0以及系统初始化完成前,启用FPP1。
FPP0 开始初始化系统初始化I/O初始化共享的资源FPP0堆栈设定启用FPP1FPP0程序碼 FPP1堆栈设定FPP1程序码 FPP1 图6:开机流程 -30- 2017-3-27 PTBO232XXS/C 6.5数据存储器 图7显示了PTBO232XXS/C内置160Bytes数据存储器的结构以及使用,所有的SRAM数据存储器可以透过FPP0和FPP1在1个时钟周期内直接读取或写入,存取方式可以字节或位操作。
此外SRAM数据存储器还充当间接存取方法的数据指针和FPP0、FPP1的堆栈记忆体。
FPP0和FPP1的堆栈记忆体使用是独立互不影响的,并定义在数据存储器中。
FPP0和FPP1处理单元的堆栈指针通过指针寄存器各自定义,FPP0和FPP1所需要的存储器深度是由使用者来定,堆栈记忆体的调整可完全灵活安排,可以由用户动态调整。
对于间接存取指令而言,数据存储器用作数据指针来当数据地址,所有的数据存储器都可以当做数据指针,这对于间接存取指令是相当灵活和有用的。
由于数据宽度为8位,间接存取记忆体大小必需在256字节以内,PTBO232XXS/C内置的160个字节数据存储器都可以利用间接存取指令来存取。
地址000h ˙˙˙ 9Fh ˙ 数据 ˙ 索引 ˙ 数据 ˙ FPP0堆栈 ˙ 数据 ˙ FPP1堆栈 ˙˙˙˙ 数据 ˙˙˙˙˙˙ FPP0FPP1 图7:数据存储器结构和使用 6.6算术和逻辑单元 算术和逻辑单元(ALU)是用来作整数算术、逻辑、转移和其它特殊运算的单元。
运算的数据来源可以从指令、累加器或SRAM数据存储器,计算结果可写入累加器或SRAM。
FPP0和FPP1在其相应的操作周期分享ALU的使用。
-31- 2017-3-27 PTBO232XXS/C 6.7振荡器和时钟 PTBO232XXS/C内置3个振荡器电路:晶体振荡器、内部高频RC振荡器(IHRC)和内部低频RC振荡器(ILRC),这3个振荡器电路可以分别透过寄存器eoscr.7,clkmd.4以及clkmd.2来启用或禁用。
使用者可以选择不同的振荡器以及clkmd寄存器产生不同的系统频率,以满足不同的应用。
振荡器硬件模块 启用或禁用 开机后默认值 EOSC eoscr.7 禁用 IHRC clkmd.4 启用 ILRC clkmd.2 启用 6.7.1
内部高频振荡器(IHRC)和低频振荡器(ILRC) 开机后,IHRC是自动被启用的,可以通过clkmd寄存器位4禁用它,IHRC的频率是可以透过ihrcr寄存器校准,通常它被校准至16MHz以消除工艺生产所产生的变化,校准后的频率偏差,正常情况下可在1%以内。
IHRC频率校准是在用户程序编译时选择,并在芯片烧录OTP程序码时,一个个校准。
IHRC的频率会因电源电压和工作温度而漂移,在VDD电压为2.2V~5.5V以及温度40oC~85oC条件下,总频率漂移约为±8%,请参考IHRC频率与VDD、温度关系的曲线图。
开机后,ILRC是自动被启用的,并可以通过clkmd寄存器位2禁用它,ILRC的频率固定为24kHz。
但是,因为工厂生产的过程会有所不同,使用时电源电压和温度的差异等因素,都可能影响频率漂移。
请参考直流电气特性规格数据。
6.7.2单片机校准 在芯片生产制造时,每一颗的IHRC频率和Bandgap参考电位可能都有稍微的不同,PTBO232XXS/C提供了IHRC频率校准以及Bandgap参考电压校准,以消除芯片生产制造时的漂移,校准功能选项是在用户程序编译时选择,IDE软件在编译用户的程序时会自动插入用户程序,校准的命令如下: .ADJUST_ICSYSCLK=IHRC/(p1),IHRC=(p2)MHz,VDD=(p3)
V,Bandgap=(p4);这里,p1=2,4,8,16,32;提供系统时钟不同的频率。
p2=14~18;提供芯片IHRC校准到不同的频率,通常选16MHz。
p3=2.5~5.5;提供芯片在不同的电压校准。
p4=On或Off;Band-gap参考电压校准是On或Off。
6.7.3IHRC频率校准和系统时钟 IHRC频率校准选项是在用户程序编译时选择,IDE软件在编译用户的程序时会自动插入用户程序,提供的选项 是如表4所示: SYSCLK CLKMD IHRCR 描述 ○SetIHRC/2=34h(IHRC/2)有校准IHRC校准到16MHz,系统时钟CLK=8MHz(IHRC/2) ○SetIHRC/4=14h(IHRC/4)有校准IHRC校准到16MHz,系统时钟CLK=4MHz(IHRC/4) ○SetIHRC/8=3Ch(IHRC/8)有校准IHRC校准到16MHz,系统时钟CLK=2MHz(IHRC/8) ○SetIHRC/16=1Ch(IHRC/ 有校准IHRC校准到16MHz,系统时钟CLK=1MHz(IHRC/16) 16) ○SetIHRC/32=7Ch(IHRC/32)有校准IHRC校准到16MHz,系统时钟CLK=0.5MHz(IHRC/32) ○SetILRC =E4h(ILRC/1)有校准IHRC校准到16MHz,系统时钟CLK=ILRC ○Disable 没改变 没改变IHRC没有校准,系统时钟CLK也没有改变,Bandgap没有校准 表4IHRC频率校准选项 -32- 2017-3-27 PTBO232XXS/C 通常,.ADJUST_IC命令是摆在程序启动后的第1个动作,以便开机后能够设立所要的工作频率。
IHRC频率校准只会进行一次,是在烧录OTP程序码时进行,烧录后就不会再重复执行了。
假如使用者选择不同的频率校准选项,PTBO232XXS/C在开机后的状态也将不同,下面所示为不同选项在开机后,PTBO232XXS/C执行此命令后的状态:
(1).ADJUST_ICSYSCLK=IHRC/2,IHRC=16MHz,VDD=5V,Bandgap=On开机后,CLKMD=0x34:IHRC频率在VDD=5V下,校准到16MHz并且是启用的系统时钟CLK=IHRC/2=8MHz看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap校准到1.2V
(2).ADJUST_ICSYSCLK=IHRC/4,IHRC=16MHz,VDD=3.3V,Bandgap=On开机后,CLKMD=0x14:IHRC频率在VDD=3.3V下,校准到16MHz并且是启用的系统时钟CLK=IHRC/4=4MHz看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap校准到1.2V
(3).ADJUST_ICSYSCLK=IHRC/8,IHRC=16MHz,VDD=2.5V,Bandgap=On开机后,CLKMD=0x3C:IHRC频率在VDD=2.5V下,校准到16MHz并且是启用的系统时钟CLK=IHRC/8=2MHz看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap校准到1.2V
(4).ADJUST_ICSYSCLK=IHRC/16,IHRC=16MHz,VDD=2.5V,Bandgap=On开机后,CLKMD=0x1C:IHRC频率在VDD=2.5V下,校准到16MHz并且是启用的系统时钟CLK=IHRC/16=1MHz看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap校准到1.2V
(5).ADJUST_ICSYSCLK=IHRC/32,IHRC=16MHz,VDD=5V,Bandgap=Off开机后,CLKMD=0x7C:IHRC频率在VDD=5V下,校准到16MHz并且是启用的系统时钟CLK=IHRC/32=500kHz看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap没校准
(6).ADJUST_ICSYSCLK=ILRC,IHRC=16MHz,VDD=5V,Bandgap=Off开机后,CLKMD=0XE4:IHRC频率在VDD=5V下,校准到16MHz并且是禁用的系统时钟CLK=ILRC看门狗定时器是禁用,ILRC是启用的,PA5引脚设为输入,Bandgap没校准
(7).ADJUST_ICDISABLE 开机后,CLKMD寄存器没被改变(没任何动作)IHRC频率没有校准并且是禁用的,Band-gap没有校准系统时钟CLK=ILRC看门狗定时器是启用,ILRC是启用的,PA5引脚设为输入 -33- 2017-3-27 PTBO232XXS/C 6.7.4晶体振荡器 如果使用晶体振荡器,X1和X2之间需要晶体或谐振器。
其应用线路如图8所示;晶体振荡器的工作频率可以从32kHz到4MHz,超过4MHz是不支持的。
寄存器eoscr(0x0b)位7是用来启用晶体振荡器,另外,寄存器eoscr(0x0b)位6~5提供不同的驱动电流能力,以配合不同的晶体振荡器频率: eoscr.[6:5]=01:低驱动电流,适用于较低频率,例如:32kHz晶体振荡器eoscr.[6:5]=10:中驱动电流,适用于中间频率,例如:1MHz晶体振荡器eoscr.[6:5]=11:高驱动电流,适用于较高频率,例如:4MHz晶体振荡器 为了得到良好的正弦波形,外部电容C1和C2也需调整,表5显示不同的晶体或谐振器,C1和C2的建议值以及在对应条件下所测量到的起振时间。
因为晶体或谐振器都有其不同的特性,所需要的C1、C2以及起振时间也会因不同的晶体或谐振器而有些差异,使用时请参考晶体或谐振器规格并选择合适的C1和C2。
频率4MHz1MHz32kHz C14.7pF10pF22pF C24.7pF10pF22pF 测量起振时间6ms11ms 450ms 条件(eoscr[6:5]=11,misc.6=0)(eoscr[6:5]=10,misc.6=0)(eoscr[6:5]=01,misc.6=0) 表5:不同的晶体或谐振器所需C1和C2的建议值 EOSCR[6:5]EOSCR.7 选择晶振频率启用晶体振荡 C1C2 PA7/X1 PTBO232XXS/C 系统时钟=EOSC PA6/X2 C1和C2的值应取决于晶体的规范图8:晶体振荡器使用接法 为了优化晶体振荡器的功耗和起振时间,misc寄存器第6位提供选项以提高晶体振荡器的电流驱动能力。
在晶体振荡器开始启动时,启用misc寄存器的第6位以加快振荡;当振荡器稳定后,这位是可以被禁用的以达到节电的目的。
当使用外部晶体振荡器时,padier寄存器的位7和位6应设置为高,以防止漏电流。
-34- 2017-3-27 PTBO232XXS/C 另外,使用晶体振荡器要特别注意启用之后所需要的稳定时间,它会依频率、晶体或谐振器型号、外部电容、工作电压而不同,在将系统时钟源切换成晶体振荡器之前,必需确保晶体振荡器已经稳定,参考程序如下: voidFPPA0(void) { .ADJUST_ICSYSCLK=IHRC/16,IHRC=16MHz,VDD=5V,Bandgap=On //如果Bandgap不需要校准,可以写成“.ADJUST_ICDISABLE”... ... $EOSCREnable,4MHz;//EOSCR=0b110_00000; $T16MEOSC,/1,BIT13;//T16收到2^14=16384个晶体振荡器时钟, //Intrq.T16=>
1,晶体振荡器已经稳定 WORDcount=0; stt16count; Intrq.T16=0; wait1Intrq.T16; //计数从0x0000到0x2000,然后设置INTRQ.T16 clkmd=0xA4; //将系统时钟切换成EOSC; ... 进入掉电模式之前,请先将晶体振荡器关闭以避免不可预期的唤醒发生;假如使用32kHz晶体振荡器而且又需要非常的省电,当晶体振荡器稳定后,设置misc.6为1以降低电流。
6.7.5系统时钟和LVR水平系统时钟可以来自EOSC,IHRC和ILRC,图9显示为PTBO232XXS/C中的系统时钟选项的硬件框图。
clkmd[7:5] IHRC时钟EOSC时钟ILRC时钟 ÷
2,÷4,÷
8,÷16,÷32,÷64÷
1,÷2,÷
4,÷8,÷1(默认),÷
4 系统时钟 多 CLK 任 务 器 图9:系统时钟选项 使用者可以依照不同的需求选择不同的工作系统时钟,选定的工作系统时钟应与电源电压和LVR水平结合起来,才能使系统稳定运作。
低电压水平将在编译过程中选择,以下是工作频率和LVR水平的建议: 当系统时钟=8MHz,LVR=3.1V当系统时钟=4MHz,LVR=2.5V当系统时钟=2MHz,LVR=2.2V -35- 2017-3-27 PTBO232XXS/C 6.7.6系统时钟切换 IHRC校准后,用户可能希望系统时钟切换到新的频率或可随时切换系统时钟来优化系统性能和功耗。
基本上,PTBO232XXS/C系统时钟可以随意在IHRC,ILRC和EOSC之间切换,只要透过clkmd寄存器设定,;系统时钟可以立即的转换成新的频率。
请注意,在下命令给寄存器clkmd切换频率时,不能同时关闭原来的时钟模块。
下面这些例子显示更多时钟切换需知道的信息,请参阅“求助”“使用手册”“IC介绍”“缓存器介绍”“CLKMD”。
例1:系统时钟从ILRC切换到IHRC/2 …CLKMDCLKMD.2… //系统时钟为ILRC=0x34;//切换为IHRC/2,ILRC不能在这里禁用=0;//ILRC可以在这里禁用 例2:系统时钟从ILRC切换到EOSC …CLKMD=0xA6;CLKMD.2=0;… //系统时钟为ILRC//切换为IHRC,ILRC不能在这里禁用//ILRC可以在这里禁用 例3:系统时钟从IHRC/2切换到ILRC …CLKMD=0xF4;CLKMD.4=0;… //系统时钟为IHRC/2//切换为ILRC,IHRC不能在这里禁用//IHRC可以在这里禁用 例4:系统时钟从IHRC/2切换到EOSC …CLKMD=0XB0;CLKMD.4=0;… //系统时钟为IHRC/2//切换为EOSC,IHRC不能在这里禁用//IHRC可以在这里禁用 例5:系统时钟从IHRC/2切换到IHRC/4 …CLKMD… //系统时钟为IHRC/2,ILRC为启用=0X14;//切换为IHRC/4 例6:系统可能当机,如果同时切换时钟和关闭原来的振荡器 …CLKMD… //系统时钟为ILRC=0x30;//不能从ILRC切换到IHRC/2,同时又关闭ILRC振荡器 -36- 2017-3-27 PTBO232XXS/C 6.816位定时器(Timer16) PTBO232XXS/C内含一个16位定时器,定时器时钟可来自于系统时钟(CLK)、外部晶体振荡器时钟、内部高频振荡时钟(IHRC)、内部低频振荡时钟(ILRC),或PortA位0,1个多任务器用于选择时钟输出的时钟来源,在送到16位定时器之前,1个可软件编程的预分频器提供÷
1、÷4、÷16、÷64选择,让计数范围更大。
16位定时器只能向上计数,定时器初始值可以使用stt16指令来设定,而定时器的数值也可以利用ldt16指令存储到SRAM数据存储器。
可软件编程的选择器用于选择timer16的中断条件,当定时器溢出时,Timer16可以触发中断。
Timer16模块框图如图10。
中断源是来自16位定时器的位8到位15,中断类型可以上升沿触发或下降沿触发,定义在intensr寄存器位4(IO地址0x0C)。
CLKIHRCEOSCILRCPA0 t16m[7:5]t16m[4:3] stt16命令ldt16命令 多Pre- 任 scalar 16位 务 ÷ 计数器 器 1,
4, 16,64 多 位15~位
8 任 务 器 t16m[2:0] 数据存储器数据总线 or 设置中断请 求标志 integs.4 图10:Timer16模块框图 当使用Timer16时,Timer16的使用语法已定义在.INC文件中。
有三个参数来定义Timer16的使用;第一参数是用来定义Timer16时钟源,第二参数是用来定义预分频器,最后一个是定义中断源。
详细如下: T16M $7~5:$4~3:$2~0: IO_RW 0x06 STOP,SYSCLK,
X,PA0_
R,IHRC,EOSC,ILRC,PA0_
F /1,/4,/16,/64 BIT8,BIT9,BIT10,BIT11,BIT12,BIT13,BIT14,BIT15 //第一参数//第二参数//第三参数 使用者可以依照系统的要求来定义T16M参数,例子如下: $T16MSYSCLK,/64,BIT15;//选择(SYSCLK/64)当Timer16时钟源,每2^16个时钟周期产生一次INTRQ.2=1//假如系统时钟SystemClock=IHRC/2=8MHz//SYSCLK/64=8MHz/64=8uS,约每524mS产生一次INTRQ.2=
1 -37- 2017-3-27 PTBO232XXS/C $T16MEOSC,/1,BIT13;//选择(EOSC/1)当Timer16时钟源,每2^14个时钟周期产生一次INTRQ.2=1//假如EOSC=32768Hz,32768Hz/(2^14)=2Hz,约每0.5S产生一次INTRQ.2=
1 $T16MPA0_F,/1,BIT8;//选择PA0当Timer16时钟源,每2^9个时钟周期产生一次INTRQ.2=1//每接收512个PA0个时钟周期产生一次INTRQ.2=
1 $T16MSTOP;//停止Timer16计数 假如Timer16是不受干扰的自由运行,中断发生的频率可以用下列式子描述: FINTRQ_T16M=Fclocksource÷P÷2n+
1 这里,F是Timer16的时钟源频率,P是寄存器t16m[4:3]的选择(可以为1,4,16,64),N是中断要求所选择的位,例如:选择位10,n=10. -38- 2017-3-27 PTBO232XXS/C 6.98位PWM定时器(Timer2) PTBO232XXS/C内置一个8位PWM硬件定时器,硬件框图请参考图11,定时器的时钟源可能来自系统时钟(CLK),内部高频RC振荡器时钟(IHRC),内部低频RC振荡器时钟(ILRC),PA0,PA3,PA4,寄存器tm2c的位[7:4]用来选择定时器时钟。
请注意,外部晶体振荡器是不能当做Timer2的时钟,因为它可能有突波。
另外,在执行仿真器(ICE)时,若内部高频RC振荡器时钟(IHRC)被选择当做Timer2的时钟,当仿真器停住时,IHRC时钟仍继续送到Timer2,所以Timer2在仿真器停住时仍然会继续计数。
依据寄存器tm2c的设定,Timer2的输出可以是PA2或PA3.利用软件编程寄存器tm2s位[6:5],时钟预分频器的模块提供了÷
1,÷4,÷16和÷64的选择,另外,利用软件编程寄存器tm2s位[4:0],时钟分频器的模块提供了÷1~÷31的功能。
在结合预分频器以及分频器,Timer2时钟(TM2_CLK)频率可以广泛和灵活,以提供不同产品应用。
TM2_CLK也可以被选定为系统时钟,以提供特殊的系统时钟频率,请参阅clkmd寄存器。
8位PWM定时器只能执行8位上升计数操作,经由寄存器tm2ct,定时器的值可以设置或读取。
当8位定时器计数值达到上限寄存器设定的范围时,定时器将自动清除为零,上限寄存器用来定义定时器产生波形的周期或PWM占空比。
8位PWM定时器有两个工作模式:周期模式和PWM模式;周期模式用于输出固定周期波形或中断事件;PWM模式是用来产生PWM输出波形,PWM分辨率可以为6位或8位。
图12显示出Timer2周期模式和PWM模式的时序图。
tm2c[7:4] CLK,IHRC,ILRC,PA0,~PA0,PA3,~PA3,PA4,~PA4 tm2s[6:5]tm2s[4:0] tm2s.7tm2c.1 TM2_CLK 多 边缘触发 任 预分频分频器 8位 中断 务 器 向上 tm2ct[7:0] 器 ÷ 计数器 ÷1,4,16,64 1~31 异 多 或 任PA2 务 分 上限 解PA3 寄存器tm2b[7:0]tm2c.0器 图11.Timer2模块框图 tm2c[3:2] -39- 2017-3-27 PTBO232XXS/C 超时溢出和中断要求计数值 0xFF上限寄存器值 输出引脚 事件触发 超时溢出和中断要求计数值0xFF 上限寄存器值时间 输出引脚 事件触发 超时溢出和中断要求计数值0x3F 上限寄存器值时间 输出引脚 事件触发 时间 模式0–周期模式 时间 时间 模式1–8位分辨率PWM模式 图12.Timer2周期模式和PWM模式的时序图 时间 模式1–6位分辨率PWM模式 6.9.1使用Timer2产生定期波形 如果选择周期模式的输出,输出波形的占空比总是50%,其输出频率与寄存器设定,可以概括如下: 输出信号频率=Y÷[2×(K+1)×S1×(S2+1)] 这里,Y=tm2c[7:4]:Timer2所选择的时钟源频率K=tm2b[7:0]:上限寄存器设定的值(十进制)S1=tm2s[6:5]:预分频器设定值(1,4,16,64)S2=tm2s[4:0]:分频器值(十进制,1~31) 例1:tm2c=0b0001_1000,Y=8MHztm2b=0b0111_1111,K=127tm2s=0b0_00_00000,S1=
1,S2=
0 输出信号频率=8MHz÷[2×(127+1)×1×(0+1)]=31.25kHz 例2:tm2c=0b0001_1000,Y=8MHztm2b=0b0111_1111,K=127tm2s[7:0]=0b0_11_11111,S1=64,S2=31 输出信号频率=8MHz÷(2×(127+1)×64×(31+1))=15.25Hz 例3:tm2c=0b0001_1000,Y=8MHztm2b=0b0000_1111,K=15tm2s=0b0_00_00000,S1=
1,S2=
0 输出信号频率=8MHz÷(2×(15+1)×1×(0+1))=250kHz -40- 2017-3-27 PTBO232XXS/C 例4:tm2c=0b0001_1000,Y=8MHztm2b=0b0000_0001,K=1tm2s=0b0_00_00000,S1=
1,S2=
0 输出信号频率=8MHz÷(2×(1+1)×1×(0+1))=2MHz 使用Timer2定时器产生定期波形的示例程序如下所示: voidFPPA0(void){ .ADJUST_OTP_IHRCR8MIPS…tm2ct=0x0;tm2b=0x7f;tm2s=0b0_00_00001;//8位pwm,预分频=
1,分频=2tm2c=0b0001_01_0_0;//系统时钟,输出=PA2,周期模式while
(1){ nop;}} 6.9.2使用Timer2产生8位PWM波形如果选择8位PWM的模式,应设立tm2c[1]=1,tm2s[7]=
0,输出波形的频率和占空比可以概括如下: 输出频率=Y÷[256×S1×(S2+1)]输出空占比=(K+1)÷256 这里,Y=tm2c[7:4]:Timer2所选择的时钟源频率K=tm2b[7:0]:上限寄存器设定的值(十进制)S1=tm2s[6:5]:预分频器设定值(1,4,16,64)S2=tm2s[4:0]:分频器值(十进制,1~31) 例1:tm2c=0b0001_1010,Y=8MHztm2b=0b0111_1111,K=127tm2s=0b0_00_00000,S1=
1,S2=
0 输出频率=8MHz÷(256×1×(0+1))=31.25kHz 输出空占比=[(127+1)÷256]×100%=50% -41- 2017-3-27 PTBO232XXS/C 例2:tm2c=0b0001_1010,Y=8MHztm2b=0b0111_1111,K=127tm2s=0b0_11_11111,S1=64,S2=31 输出频率=8MHz÷(256×64×(31+1))=15.25Hz输出空占比=[(127+1)÷256]×100%=50% 例3:tm2c=0b0001_1010,Y=8MHztm2b=0b1111_1111,K=255tm2s=0b0_00_00000,S1=
1,S2=
0 输出频率=8MHz÷(256×1×(0+1))=31.25kHz 输出空占比=[(255+1)÷256]×100%=100% 例4:tm2c=0b0001_1010,Y=8MHztm2b=0b0000_1001,K=9tm2s=0b0_00_00000,S1=
1,S2=
0 输出频率=8MHz÷(256×1×(0+1))=31.25kHz 输出空占比=[(9+1)÷256]×100%=3.9% 使用Timer2定时器产生PWM波形的示例程序如下所示: voidFPPA0(void){ .ADJUST_OTP_IHRCR8MIPSwdreset;tm2ct=0x0;tm2b=0x7f;tm2s=0b0_00_00001;//8位pwm,预分频=
1,分频=2tm2c=0b0001_01_1_0;//系统时钟,输出=PA2,PWM模式while
(1){nop;}} -42- 2017-3-27 PTBO232XXS/C 6.9.3使用Timer2产生6位PWM波形 如果选择6位PWM的模式,应设立tm2c[1]=1,tm2s[7]=
1,输出波形的频率和占空比可以概括如下: 输出频率=Y÷[64×S1×(S2+1)]输出空占比=[(K+1)÷64]×100% 这里,Y=tm2c[7:4]:Timer2所选择的时钟源频率K=tm2b[7:0]:上限寄存器设定的值(十进制)S1=tm2s[6:5]:预分频器设定值(1,4,16,64)S2=tm2s[4:0]:分频器值(十进制,1~31) 例1:tm2c=0b0001_1010,Y=8MHztm2b=0b0001_1111,K=31tm2s=0b1_00_00000,S1=
1,S2=
0 输出频率=8MHz÷(64×1×(0+1))=125kHz 输出空占比=[(31+1)÷64]×100%=50% 例2:tm2c=0b0001_1010,Y=8MHztm2b=0b0001_1111,K=31tm2s=0b1_11_11111,S1=64,S2=31输出频率=8MHz÷(64×64×(31+1))=61.03Hz输出空占比=[(31+1)÷64]×100%=50% 例3:tm2c=0b0001_1010,Y=8MHztm2b=0b0011_1111,K=63tm2s=0b1_00_00000,S1=
1,S2=0输出频率=8MHz÷(64×1×(0+1))=125kHz输出空占比=[(63+1)÷64]×100%=100% 例4:tm2c=0b0001_1010,Y=8MHztm2b=0b0000_0000,K=0tm2s=0b1_00_00000,S1=
1,S2=
0 输出频率=8MHz÷(64×1×(0+1))=125kHz输出空占比=[(0+1)÷64]×100%=1.5% -43- 2017-3-27 PTBO232XXS/C 6.10看门狗定时器 看门狗定时器是一个定时器,其时钟源来自内部低频振荡器(ILRC),频率大约是24kHz。
利用misc寄存器的选择,可以设定四种不同的看门狗定时器超时时间,它是: 当misc[1:0]=11时:256个ILRC时钟周期当misc[1:0]=10时:16384ILRC时钟周期当misc[1:0]=01时:4096ILRC时钟周期当misc[1:0]=01时:2048ILRC时钟周期 为确保看门狗定时器在超时溢出周期之前被清零,在安全时间内,用指令“wdreset”清零看门狗定时器。
在上电复位或任何时候使用wdreset指令,看门狗定时器都会被清零。
当看门狗定时器超时溢出时,PTBO232XXS/C将复位并重新运行程序。
请特别注意,由于生产制程会引起ILRC频率相当大的漂移,上面的数据仅供设计参考用,还是需要以各个单片机测量到的数据为准。
请注意:当启用快速唤醒时,看门狗时钟源会切换到系统时钟(例如:4MHz),所以,建议打开快速唤醒功能时,在进入掉电模式前关闭看门狗定时器,等系统被唤醒后,在关闭快速唤醒之后再打开看门狗定时器。
VDD 看门狗超时触发 tSBP 程序执行 看门狗超时复位开机时序图13:看门狗定时器超时溢出的相关时序 -44- 2017-3-27 PTBO232XXS/C 6.11中断 PTBO232XXS/C有5个中断源:两个外部中断源(PA0,PB0,边缘触发形态可以由integsr寄存器选择),Timer16中断源,Timer2中断源,ADC中断源。
每个中断请求源都有自己的中断控制位启用或禁用它。
硬件框图请参考图14,所有的中断请求标志位是由硬件置位并且必须用软件清零的。
所有的中断请求源最后都需由engint指令控制(启用全局中断)使中断运行,以及使用disgint指令(禁用全局中断)停用它。
只FPP0可以接受中断请求,其它的FPP的单元不会受到中断干扰。
中断堆栈是共享数据存储器,其地址由堆栈寄存器sp指定。
由于程序计数器是16位宽度,堆栈寄存器sp位0应保持
0。
此外,用户可以使用pushaf指令存储ACC和标志寄存器的值到堆栈,以及使用popaf指令将值从堆栈恢复到ACC和标志寄存器中。
当PTBO232XXS/C执行到中断入口地址处,全局中断会自动停止;到reti指令被执行时自动恢复启用。

标签: #文件 #率高 #文件 #矩形 #mini #怎么看 #文件格式 #文件