BL23F30 8 位 FLASH 微控制器用户手册 上海贝岭股份有限公司 上海市宜山路 810 号 2016 年 1 月 22 日 1 上海贝岭股份有限公司 BL23F30 1. 概述...............................................................................................................................................7 1.1. 简介..................................................................................................................................7 1.2. 开发工具..........................................................................................................................7 1.2.1. 编译器.................................................................................................................7 1.2.2. 仿真器.................................................................................................................7 1.2.3. 程序烧录器.........................................................................................................7 1.3. 特性..................................................................................................................................8 2. 引脚分配.....................................................................................................................................11 3. 中央处理器结构........................................................................................................................ 14 3.1. 性能................................................................................................................................14 3.2. 编程和调试支持............................................................................................................14 3.3. 指令集............................................................................................................................16 4. 存储器.........................................................................................................................................23 4.1. 程序存储器(Program Memory).............................................................................23 4.2. 数据存储器(Data Memory).................................................................................... 23 4.3. EEPROM.........................................................................................................................24 4.4. 特殊功能寄存器分布................................................................................................... 24 4.5. 特殊功能寄存器地址表............................................................................................... 24 4.6. 编译器兼容的 SFR....................................................................................................... 26 4.6.1. 累加器(Accumulator)- ACC................................................................ 26 4.6.2. B 寄存器 - B.................................................................................................26 4.6.3. 程序状态寄存器 - PSW................................................................................ 26 4.6.4. 堆栈指针寄存器 - SP...................................................................................27 4.6.5. 数据指针 – DPH, DPL................................................................................ 27 4.6.6. 数据指针 1 – DPH1, DPL1........................................................................28 4.6.7. 数据指针选择寄存器 – DPS........................................................................ 28 4.6.8. 数据指针控制寄存器 – DPC........................................................................ 28 4.6.9. 程序存储器页选寄存器 – PAGESEL...........................................................29 4.6.10. 数据存储器页选寄存器 – D_PAGESEL................................................... 29 5. 系统时钟.....................................................................................................................................31 5.1. 特性................................................................................................................................. 31 5.2. 系统时钟寄存器............................................................................................................31 6. 中断.............................................................................................................................................33 6.1. 中断向量表....................................................................................................................33 6.2. 中断控制寄存器............................................................................................................34 7. MDU............................................................................................................................................. 42 7.1. MDU 结构图................................................................................................................... 42 7.2. MDU 操作....................................................................................................................... 43 7.3. MDU 寄存器................................................................................................................... 44 7.3.1. 乘除寄存器 – MD0, MD1, MD2, MD3, MD4, MD5............................ 44 7.3.2. 运算控制寄存器 - ARCON............................................................................45 2 上海贝岭股份有限公司 BL23F30 7.3.3. 例程...................................................................................................................45 8. 输入输出端口.............................................................................................................................49 9. 定时/计数器.............................................................................................................................. 60 9.1. 定时/计数器 0..............................................................................................................60 9.1.1. 模式 0 和模式 1...............................................................................................60 9.1.2. 模式 2............................................................................................................... 60 9.1.3. 模式 3............................................................................................................... 61 9.2. 定时/计数器 1..............................................................................................................61 9.2.1. 模式 0 和模式 1...............................................................................................61 9.2.2. 模式 2............................................................................................................... 61 9.2.3. 模式 3............................................................................................................... 62 9.2.4. 定时器 0 和定时器 1 寄存器..........................................................................62 9.3. 定时/计数器 2..............................................................................................................65 9.3.1. 定时模式...........................................................................................................65 9.3.2. 事件计数模式...................................................................................................65 9.3.3. 门控定时模式...................................................................................................66 9.3.4. 定时器 2 重载.................................................................................................. 66 9.3.5. 比较功能...........................................................................................................66 9.3.6. 捕捉功能...........................................................................................................68 9.3.7. 定时器 2 寄存器.............................................................................................. 69 9.4. 独立脉冲宽度调制器 PWM0.........................................................................................72 9.4.1. PWM0 计数时钟.................................................................................................... 72 9.4.2. PWM0 工作模式.................................................................................................... 72 9.4.3. PWM0 计数模式.................................................................................................... 72 9.4.4. PWM0 更新方式.................................................................................................... 74 9.4.5. PWM0 中断............................................................................................................ 75 9.4.6. PWM0 控制寄存器............................................................................................76 9.5. 独立脉冲宽度调制器 PWM1、PWM2........................................................................... 79 9.5.1. PWM1 控制寄存器............................................................................................79 9.5.2. PWM2 控制寄存器............................................................................................81 9.6. 看门狗(Watch-dog)................................................................................................. 83 9.6.1. 看门狗寄存器...................................................................................................84 10. 变频马达控制功能.................................................................................................................. 86 10.1. 脉冲宽度调制定时器(MPWM)...................................................................................86 10.1.1. MPWM 计数时钟.................................................................................................86 10.1.2. MPWM 工作模式.................................................................................................87 10.1.3. MPWM 计数模式.................................................................................................87 10.1.4. MPWM 更新方式.................................................................................................88 10.1.5. MPWM 中断.........................................................................................................88 10.2. 消隐............................................................................................................................. 89 10.3. 死区插入电路............................................................................................................. 89 10.4. 极性电路..................................................................................................................... 90 10.5. MPWM 的控制寄存器.................................................................................................. 90 11. 线性模拟电路........................................................................................................................ 100 3 上海贝岭股份有限公司 BL23F30 11.1. 结构图....................................................................................................................... 100 11.2. 高速比较器............................................................................................................... 101 11.3. 可编程增益放大 PGA...............................................................................................102 11.3.1. 工作模式...................................................................................................... 102 11.4. 数模转换器 DAC....................................................................................................... 109 12. 模数(AD)转换器...................................................................................................................110 12.1. 自动扫描................................................................................................................... 110 12.2. 双通道采样............................................................................................................... 110 12.3. ADC 控制...................................................................................................................110 12.4. ADC 寄存器...............................................................................................................111 13. 异步串行通讯口(UART0、UART1)................................................................................... 115 13.1. UART0....................................................................................................................... 115 13.1.1. UART0 结构图............................................................................................. 115 13.1.2. 功能...............................................................................................................115 13.1.3. UART0 寄存器............................................................................................. 119 13.2. UART1.......................................................................................................................121 13.2.1. UART1 结构图.............................................................................................121 13.2.2. 功能.............................................................................................................. 122 13.2.3. 本地互连网络(LIN).................................................................................. 123 13.2.4. UART1 寄存器.............................................................................................126 14. 同步串行通讯口(SPI)...................................................................................................... 129 14.1. SPI 寄存器...............................................................................................................129 15. EEPROM和 FLASH 读写,程序加密...................................................................................... 133 15.1. EEPROM 编程寄存器............................................................................................... 133 15.2. FLASH 擦写..............................................................................................................134 15.3. 程序加密................................................................................................................... 134 15.4. EEPEOM 擦写例程................................................................................................... 134 15.5. FLASH 擦写例程......................................................................................................135 16. RESET....................................................................................................................................136 16.1. 复位说明................................................................................................................... 136 16.2. 上电复位................................................................................................................... 136 16.3. 掉电复位(LVR)....................................................................................................... 137 16.4. 外部复位................................................................................................................... 137 16.5. 看门狗复位............................................................................................................... 138 16.6. 软件复位................................................................................................................... 138 16.7. 软件复位寄存器....................................................................................................... 138 17. 电源模式................................................................................................................................ 140 17.1. 空闲模式................................................................................................................... 140 17.2. 停止模式................................................................................................................... 141 17.3. 电源模式控制寄存器............................................................................................... 141 18. 电气特性................................................................................................................................ 143 18.1. 极限值....................................................................................................................... 143 4 上海贝岭股份有限公司 BL23F30 18.2. 推荐操作参数........................................................................................................... 143 18.3. 直流特性................................................................................................................... 144 18.4. 交流特性................................................................................................................... 145 18.5. 模数(AD)转换器特性............................................................................................. 145 18.6. (LVR)低电压复位特性...........................................................................................146 18.7. 模拟比较器特性....................................................................................................... 146 18.8. 可编程增益放大器(PGA)特性...............................................................................147 18.9. DAC 特性...................................................................................................................148 18.10. 电压调节器.............................................................................................................148 18.11. 温度传感器.............................................................................................................148 18.12. 外部时钟振荡器特性.............................................................................................148 18.13. 外部时钟稳定特性...................................................................................................149 18.14. 内部 RC 振荡器特性..............................................................................................149 18.15. PLL 特性................................................................................................................ 149 18.16. UART 特性..............................................................................................................150 18.17. STOP 模式数据保持电压...................................................................................... 150 18.18. 内部 Flash Rom 特性........................................................................................ 150 19. 封装尺寸................................................................................................................................ 151 5 上海贝岭股份有限公司 BL23F30 修改记录 版本 1.05 日期 编制 2014 年 10 月 26 日 任浩然 新建或修改描述 寄存器调整 6 上海贝岭股份有限公司 BL23F30 1. 概述 1.1. 简介 主要应用: 电动自行车 抽油烟机变频马达控制 变频电风扇 工业设备的泵控制 洗衣机、干衣机 冰箱压缩泵、风机 空调压缩泵、风机 空气净化器风机 1.2. 开发工具 1.2.1. 编译器 BL23F30是基于8051内核的 MCU。同时,存储器大小≤64K 字节。开发人员可以使用 所有第三方各种标准8051编译器。如 KEIL,SDCC 等。 1.2.2. 仿真器 仿真器支持在线目标调试。可以直接下载软件到目标系统和调试前下载的软件。 1.2.3. 程序烧录器 程序烧录器支持批量脱机烧写。 7 上海贝岭股份有限公司 BL23F30 1.3. 特性 • CPU - 8 位CISC内核(兼容8051) - 1 时钟指令执行周期 - 时钟最高达到: 60MHz(运行RAM中程序) 20MHz(运行Flash中程序) • 存储器 - 32k 字节 单电源Flash - Flash 可用户程序编程、可禁止整个芯片擦除、禁止Flash块擦除、禁止写入 - 片上调试(OCDS) - 20,000 次擦除 - 256 字节内部RAM - 3072 字节外部 RAM(可执行用户程序) - 2048 字节(共16个扇区,每个扇区128个字节) EEPROM • 乘除功能 - 无符号16 x 16-bit (1个时钟周期) - 符号16 x 16-bit (1个时钟周期) - 无符号32/16 (8个时钟周期) - 32-bit 左右移位、规范化(1个时钟周期) • 通用输入输出端口(GPIO) - 43个通用I/O端口:P0[7:0]、P1[7:0]、P2[7:0]、P3[6,4:0]、P4[4:0]、P5[7:0] - 输入电平:斯密特触发器CMOS、TTL兼容 - P0有上拉电阻、下拉电阻、开漏选择 - P1、P2、P3、P4只有上拉电阻选择 - 输出驱动电流:ISource= 12 mA(0.8VDD); ISink= 12 mA(0.1VDD) • 通用定时器、计数器 - 2个兼容8051的16位定时器(T0、T1) - 一个16位定时器(T2),带CCU功能。 - 一路独立16位PWM,可设置占空比和周期,锯齿波调制(边沿对齐模式)、三角波调制(中 心对齐模式)。 - 两个8位PWM,可设置占空比和周期,锯齿波调制(边沿对齐模式)、三角波调制(中心对 齐模式)。 - 看门狗定时器(WDT) - 15Bit × 1ch • - 系统时钟,PLL输出时钟或内部RC振荡器500kHz。 三路互补输出PWM定时器 输入时钟频率最高:60MHz(500k PLL) 16位分辨率的PWM信号,可以设置周期、占空比。 可进行0% - 100%占空比输出 三角波调制(中心对齐模式) 死区时间设定 启动AD转换功能 8 上海贝岭股份有限公司 • - BL23F30 PWM一个周期启动同步消隐延时时间设定 模拟比较器输出可强制停止PWM,并把相应的IO口设置为高阻 互补输出每个端口可正反向设置 互补输出每个端口可设置高端PWM输出、低端PWM输出、高低端同时PWM输出 占空比带Buffer,Buffer可用户程序更新。 在PWM比较中可产生中断,可启动AD转换。 UART UART0: 同步模式,固定波特率 8-bit 传送模式, 可变波特率 9-bit 传送模式, 可变或固定波特率 - UART1: 8 位或 9 位传送模式, 可变波特率,带接收缓存 LIN • 12 Bit A/D Converter • - 12 输入通道外部引脚输入,两路PGA输入,内部基准 AD基准:VDD、片外AD_VREF 转换速度1us 可设置4个通道自动扫描转换把结果存入缓存,并设置完成标志。 双通道同时采样。 PWM采样信号启动,可软件启动 输出结果左、右对齐功能。 模拟外设 高速模拟比较器 1 个 输入负端可接外部输入电压、内部产生的基准电压( DAC 输出作为基准电压) 输入正端可接外部输入电压、可编程增益放大器输出端。 输出上升沿信号(有消隐延时)可以停止PWM并设置PWM互补输出端口为高阻、可产生中 断 - 2个可编程增益放大器 单端输出可连接到 ADC 输入或高速比较器的正输入端。 输入信号范围:GND ~ AVDD-1.2V 增益:×1、×2、×4、×6、×8、×10、×12、×14、×16 - 5位 DA输出提供给比较器作为基准输入。 • 上电复位(Power On Reset) - 复位响应电压 1.8 V Typical • 低电压复位(Low Voltage Reset) - 多档低电压检测: 2.5V - 4.5V 按0.25V分档 • 中断源 - 外部中断(EINT0~1) - Timer(0/1/2) - PWM0 - WDT - UART 9 上海贝岭股份有限公司 BL23F30 - ADC - MPWM - 比较器 - GPIO - SPI • 内部 RC 振荡器 - 内部 RC 振荡器频率: 内部500kHz通过PLL达到60MHz±2% (TA= -40℃ ~ +125℃) CPU:60MHz(运行RAM中程序) 20MHz(运行Flash中程序) 外围:60MHz - 低功耗模式(Power Down Mode) - STOP, IDLE mode • − − − • • • • - 片内OCDS 片内调试电路提供全速非侵入式的在系统调试不需仿真器 支持断点单步观察点堆栈监视器可以观察/修改存储器和寄存器 PGM引脚用于OCD模式和正常运行模式控制 廉价的开发工具 工作电压范围: 2.7 V ~ 5.5V 工作温度范围: – 40 ℃ ~ + 125 ℃ 振荡器类型 外部晶体振荡器或陶瓷振荡器:455kHz ~ 1MHz 内部 RC 振荡器 封装 LQFP48(7×7)、SSOP48 10 上海贝岭股份有限公司 BL23F30 2. 引脚分配 11 上海贝岭股份有限公司 VDD、VSS RESETB PMODE P0(7:0)、P1(7:0)、 P2(7:0)、P3(6、4:0)、 BL23F30 电源 复位,内部弱上拉 编程使能,内部弱上拉,低有效,建议外部接1k上拉。 12 上海贝岭股份有限公司 P4(4:0)、P5[7:0] BL23F30 数字端口,P0 可选择上拉电阻、下拉电阻、开漏输出;其 他端口只能选择上拉电阻。 其中 P02、P16、P17、P32、P33、P34、P40、P41、P54、 P57 可产生 GPIO 中断。 AN0-AN11 RXD0、TXD0、RXD1、TXD1 T0、T1、T2EX CCU0、CCU1、CCU2、CCU3 CMP+ CMPCMPO PGA0+、PGA0PGA0_O PGA1+、PGA1PGA1_O GAT、GBT、GCT GAB、GBB、GCB GOFF0,GOFF1 INT0、INT1 PWM0、PWM1、PWM2 MISO、MOSI、SCK、SS0 TDI、TMS、TCK、TDO ADC_VREF AD输入 UART0和UART1端口 Timer0~Timer2外部时钟输入端口 CCU输入、输出端口 模拟比较器正输入 模拟比较器负输入 模拟比较器输出 可编程增益放大器0正反输入 PGA0输出 可编程增益放大器1正反输入 PGA1输出 三相高边驱动输出端口 三相低边驱动输出端口 使三相高低边驱动输出端口高阻,高电平有效。 外部中断 独立PWM输出 SPI端口 JTAG 端口 ADC 基准输入 13 上海贝岭股份有限公司 BL23F30 3. 中央处理器结构 MCU系统控制器的内核是8051XC2, 微控制器8051XC2 与MCS-51TM 指令集完全 兼容可以使用标准803x/805x 的汇编器和编译器进行软件开发该系列MCU,8051XC2还 包含片内调试硬件和与MCU 直接接口的模拟和数字子系统在一个集成电路内提供了完整的 数据采集或控制系统解决方案。 8051XC2 微控制器内核除了具有标准8051 的组织结构和外设以外另有增加的定制外设 和功能,大大增强了它的处理能力。 3.1. 性能 8051XC2 采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高。 8051XC2内核70%的指令的执行时间为1或2个系统时钟周期,没有执行时间超过8个系统 时钟周期的指令。8051XC2CIP-51 工作在最大系统时钟频率60 MHz 时,它的峰值速度 达到60MIPS。8051XC2共有111条指令下表列出了指令条数与执行时所需的系统时钟周期 数的关系。 3.2. 编程和调试支持 本MCU提供了JTAG串行接口,通过该接口能对FLASH程序存储器进行在线编程,并可 与片内调试电路通信。应用程序可以使用MOVC和MOVX指令对可编程FLASH进行读写,每次 只能读写一个字节。这一特性允许将程序存储器用于非易失性数据存储,以及在软件控制下 更新程序代码。 片内 JTAG 调试电路支持全速在线调试,单步,全速,查看资源断点等操作。 14 上海贝岭股份有限公司 BL23F30 调试系统连接图 调试器JTAG连接器引脚分配 15 上海贝岭股份有限公司 BL23F30 3.3. 指令集 所有R8051XC2指令都是二进制码兼容,并执行与工业标准8051相同的功能,下面表格给出 了R8051XC2微控制器内核的指令周期。 数据寻址模式助记符 符号 说明 Rn 寄存器 R0-R7 direct 内部 128 字节 RAM 或任何的特殊功能寄存器(SFR) @Ri 通过 R0 或 R1 间接访问的内部 RAM 或外部 RAM #data 指令中 8 位立即操作数常量 #data 16 指令中 16 位立即操作数常量 bit 内部 RAM 中 128 个可位寻址的位或任何可位寻址的特殊寄存器(SFR)中的位, 包括 I/O 脚和状态寄存器中状态位。 A 累加器 程序寻址模式助记符 addr16 用于 LCALL or LJMP 的目标地址,能访问 64k 字节程序存储空间中的任何地 方。 addr11 用于 ACALL or AJMP 的目标地址,能访问 2k 字节程序存储空间内的地方,此 2k 程序空间是指这两个指令目标地址开始的空间。 SJMP 和所有条件转移指令(包括一个 8 位偏移量)寻址范围为相对于这些指令 rel 的 +127/-128。 下面表格显示指令的十六进制代码,字节和机器周期,每个指令需要被执行的周期数。注意 周期数指无程序存储器的等待状态时的值。 算术运算指令 助记符 ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data SUBB A,Rn SUBB A,direct SUBB A,@Ri 说明on 累加器加寄存器 累加器加直接寻址单元 累加器加寄存器间接寻址单元 累加器加立即数 累加器加寄存器和进位标志 累加器加直接寻址单元和进位标志 累加器加寄存器间接寻址单元和进位标志 累加器加立即数和进位标志 累加器减寄存器和进位标志 累加器减直接寻址单元和进位标 志 累加器减寄存器间接寻址单元和进 SUBB A,#data 位标志 累加器减立即数和进位标志 16 操作码 字节数 周期数 0x28-0x2F 1 1 0x25 2 2 0x26-0x27 1 2 0x24 2 2 0x38-0x3F 1 1 0x35 2 2 0x36-0x37 1 2 0x34 2 2 0x98-0x9F 1 1 0x95 2 2 0x96-0x97 1 2 0x94 2 2 上海贝岭股份有限公司 INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC direct DEC @Ri MUL AB DIV DA A BL23F30 0x04 0x08-0x0F 0x05 0x06-0x07 0xA3 0x14 0x18-0x1F 0x15 0x16-0x17 0xA4 0x84 0xD4 累加器加1 寄存器加1 直接寻址单元加1 寄存器间接寻址单元加1 数据指针加1 累加器减1 寄存器减1 直接寻址单元减1 寄存器间接寻址单元减1 累加器乘寄存器B 累加器除寄存器B 累加器十进制调整 1 1 2 1 1 1 1 2 1 1 1 1 1 1 2 2 1 1 1 2 2 4 4 1 逻辑运算 助记符 ANL A,Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ORL A,Rn ORL A,direct ORL A,@Ri ORL A,#data ORL direct,A ORL direct,#data XRL A,Rn XRL A,direct XRL A,@Ri XRL A,#data XRL direct,A XRL direct,#data CLR A CPL A RL A RLC A RR A RRC A SWAP A 说明 累加器与寄存器 累加器与直接寻址单元 累加器与寄存器间接寻址单元 累加器与立即数 直接寻址单元与累加器 直接寻址单元与立即数 累加器或寄存器 累加器或直接寻址单元 累加器或寄存器间接寻址单元 累加器或立即数 直接寻址单元或累加器 直接寻址单元或立即数 location 累加器异或寄存器 累加器异或直接寻址单元 清累加器 累加器取反 累加器循环左移 累加器带进位循环左移 累加器循环右移 累加器带进位循环右移 累加器高4位与低4位互换 操作码 字节数 周期数 0x58-0x5F 1 1 0x55 2 2 0x56-0x57 1 2 0x54 2 2 0x52 2 2 0x53 3 3 0x48-0x4F 1 1 0x45 2 2 0x46-0x47 1 2 0x44 2 2 0x42 2 2 0x43 3 3 0x68-0x6F 1 1 0x65 2 2 0x66-0x67 1 2 0x64 2 2 0x62 2 2 0x63 3 3 0xE4 1 1 0xF4 1 1 0x23 1 1 0x33 1 1 0x03 1 1 0x13 1 1 0xC4 1 1 说明on 寄存器送累加器 直接寻址单元送累加器 寄存器间接寻址单元送累加器 立即数送累加器 累加器送寄存器 直接寻址单元送寄存器 立即数送寄存器 累加器送直接寻址单元 寄存器送直接寻址单元 操作码 字节数 周期数 0xE8-0xEF 1 1 0xE5 2 2 0xE6-0xE7 1 2 0x74 2 2 0xF8-0xFF 1 1 0xA8-0xAF 2 2 0x78-0x7F 2 2 0xF5 2 2 0x88-0x8F 2 2 累加器异或寄存器间接寻址单元 累加器异或立即数 直接寻址单元异或累加器 直接寻址单元异或立即数 数据传送 助记符 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data MOV Rn,A MOV Rn,direct MOV Rn,#data MOV direct,A MOV direct,Rn 17 上海贝岭股份有限公司 BL23F30 MOV direct1,direct2 送直接寻址单元 0x85 3 3 0x86-0x87 2 2 0x75 3 3 MOV direct,@Ri 寄存器间接寻址单元送直接寻址单元 MOV direct,#data 立即数送直接寻址单元 MOV @Ri,A 累加器送寄存器间接寻址单元 0xF6-0xF7 1 1 MOV @Ri,direct 直接寻址单元送寄存器间接寻址单元 0xA6-0xA7 2 2 MOV @Ri,#data 立即数送寄存器间接寻址单元 0x76-0x77 2 2 MOV DPTR,#data16 16位立即数送数据指针 MOVC A,@A+DPTR 查表数据送累加器(DPTR为基址) 查表数据送累加器(PC为基址) MOVC A,@A+PC 1) 外部RAM单元送累加器(8位地址) MOVX A,@Ri 1) 外部RAM单元送累加器(16位地 MOVX A,@DPTR 0x90 0x93 0x83 0xE2-0xE3 0xE0 3 1 1 1 1 3 3 3 3-10 3-10 MOVX @Ri,A 0xF2-0xF3 1 3-12 0xF0 1 3-12 MOVX @DPTR,A 址) 1) 累加器送外部RAM单元(8位地址) 1) 累加器送外部RAM单元(16位地址) PUSH direct POP direct XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri 注意:1) 直接寻址单元进栈 0xC0 2 直接寻址单元出栈 0xD0 2 累加器和寄存器互换 0xC8-0xCF 1 累加器和直接寻址单元互换 0xC5 2 累加器和寄存器间接寻址单元互换 0xC6-0xC7 1 间接寻址寄存器低4位和累加器互换 0xD6-0xD7 1 MOVX 指令执行两种操作取决于“PMW”位(PCON.4)状态(PCON.4)。 2 2 1 2 2 2 跳转指令 助记符 ACALL addr11 LCALL addr16 RET RETI AJMP addr11 LJMP addr16 SJMP rel JMP @A+DPTR JZ rel JNZ rel JC rel JNC JB bit,rel JNB bit,rel JBC bit,rel CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel DJNZ Rn,rel 说明 2KB范围内绝对子程序调用 长子程序调用 子程序返回 中断返回 绝对跳转 长跳转 短相对寻址跳转 数据指针间接相对寻址跳转 累加器为零跳转 累加器非零跳转 进位为1跳转 进位为0跳转 直接位寻址为1跳转 直接位寻址为0跳转 间接位寻址为1跳转并且清 累加器与直接寻址数据不相等跳转 累加器与立即数不相等跳转 寄存器与立即数不相等跳转 寄存器间接寻址单元与立即数不相等跳转 寄存器减1不为零跳转 18 操作码 字节数 周期数 xxx10001b 2 2 0x12 3 3 0x22 1 4 0x32 1 4 xxx00001b 2 2 0x02 3 3 0x80 2 2 0x73 1 3 0x60 2 3 0x70 2 3 0x40 2 3 0x50 2 3 0x20 3 4 0x30 3 4 0x10 3 4 0xB5 3 4 0xB4 3 4 0xB8-0xBF 3 4 B6-B7 3 5 D8-DF 2 3 上海贝岭股份有限公司 DJNZ direct,rel NOP BL23F30 直接寻址单元减1不为零跳转 空操作 D 0 3 1 4 1 布尔操作 助记符 CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit MOV C,bit MOV bit,C 说明 清进位标志 清位寻址位标志 进位置1 位寻址位置1 进位取反 位寻址位取反 进位与位寻址位 进位与位寻址位的反码 进位或位寻址位 进位或位寻址位反码carry 位寻址位送进位 进位送位寻址位 操作码 0xC3 0xC2 0xD3 0xD2 0xB3 0xB2 0x82 0xB0 0x72 0xA0 0xA2 0x92 字节数周期数 1 1 2 2 1 1 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 每个指令的持续时间可以使用下面的公式来计算。 如果字节大于 1 或周期=1,那么 执行时间 = 周期数 +( 字节数 + R ) • P + X • D 其他情况 执行时间 = 周期数 +( 2 + R ) • P + X • D 其中: - 字节数为指令的字节数(见上表) - 周期数为无等待状态的周期数量(见上表) - 如果是 MOVC 指令,则 R =1,否则 R =0 - 如果是 MOVX 指令,则 X= 1,否则 x =0 - P = 程序存储器的等待状态数(=CKCON[6:4]) - D = 数据存储器的等待状态数(=CKCON[2:0])。 在程序存储器写入模式(PMW)时,MOVX 指令的执行时间如下: 执行时间 = 周期数 +( 2 + X )• P 操作码十六进制排序表 操作码 00 H 01 H 02 H 03 H 04 H 05 H 06 H 助记符 操作码 80 H 81 H 82 H 83 H 84 H 85 H 86 H NOP AJMP addr11 LJMP addr16 RR A INC A INC direct INC @R0 19 助记符 SJMP rel AJMP addr11 ANL C,bit MOVC A,@A+PC DIV AB MOV direct,direct MOV direct,@R0 上海贝岭股份有限公司 07 H 08 H 09 H 0A H 0B H 0C H 0D H 0E H 0F H 10 H 11 H 12 H 13 H 14 H 15 H 16 H 17 H 18 H 19 H 1A H 1B H 1C H 1D H 1E H 1F H 20 H 21 H 22 H 23 H 24 H 25 H 26 H 27 H 28 H 29 H 2A H 2B H 2C H 2D H 2E H 2F H 30 H 31 H 32 H 33 H 34 H 35 H 36 H 37 H 38 H 39 H 3A H 3B H 3C H BL23F30 INC @R1 INC R0 INC R1 INC R2 INC R3 INC R4 INC R5 INC R6 INC R7 JBC bit,rel ACALL addr11 LCALL addr16 RRC A DEC A DEC direct DEC @R0 DEC @R1 DEC R0 DEC R1 DEC R2 DEC R3 DEC R4 DEC R5 DEC R6 DEC R7 JB bit.rel AJMP addr11 RET RL A ADD A,#data ADD A,direct ADD A,@R0 ADD A,@R1 ADD A,R0 ADD A,R1 ADD A,R2 ADD A,R3 ADD A,R4 ADD A,R5 ADD A,R6 ADD A,R7 JNB bit,rel ACALL addr11 RETI RLC A ADDC A,#data ADDC A,direct ADDC A,@R0 ADDC A,@R1 ADDC A,R0 ADDC A,R1 ADDC A,R2 ADDC A,R3 ADDC A,R4 87 H 88 H 89 H 8A H 8B H 8C H 8D H 8E H 8F H 90 H 91 H 92 H 93 H 94 H 95 H 96 H 97 H 98 H 99 H 9A H 9B H 9C H 9D H 9E H 9F H A0 H A1 H A2 H A3 H A4 H A5 H A6 H A7 H A8 H A9 H AA H AB H AC H AD H AE H AF H B0 H B1 H B2 H B3 H B4 H B5 H B6 H B7 H B8 H B9 H BA H BB H BC H 20 MOV direct,@R1 MOV direct,R0 MOV direct,R1 MOV direct,R2 MOV direct,R3 MOV direct,R4 MOV direct,R5 MOV direct,R6 MOV direct,R7 MOV DPTR,#data16 ACALL addr11 MOV bit,C MOVC A,@A+DPTR SUBB A,#data SUBB A,direct SUBB A,@R0 SUBB A,@R1 SUBB A,R0 SUBB A,R1 SUBB A,R2 SUBB A,R3 SUBB A,R4 SUBB A,R5 SUBB A,R6 SUBB A,R7 ORL C,/bit AJMP addr11 MOV C,bit INC DPTR MUL AB MOV @R0,direct MOV @R1,direct MOV R0,direct MOV R1,direct MOV R2,direct MOV R3,direct MOV R4,direct MOV R5,direct MOV R6,direct MOV R7,direct ANL C,/bit ACALL addr11 CPL bit CPL C CJNE A,#data,rel CJNE A,direct,rel CJNE @R0,#data,rel CJNE @R1,#data,rel CJNE R0,#data,rel CJNE R1,#data,rel CJNE R2,#data,rel CJNE R3,#data,rel CJNE R4,#data,rel 上海贝岭股份有限公司 3D H 3E H 3F H 40 H 41 H 42 H 43 H 44 H 45 H 46 H 47 H 48 H 49 H 4A H 4B H 4C H 4D H 4E H 4F H 50 H 51 H 52 H 53 H 54 H 55 H 56 H 57 H 58 H 59 H 5A H 5B H 5C H 5D H 5E H 5F H 60 H 61 H 62 H 63 H 64 H 65 H 66 H 67 H 68 H 69 H 6A H 6B H 6C H 6D H 6E H 6F H 70 H 71 H 72 H BL23F30 ADDC A,R5 ADDC A,R6 ADDC A,R7 JC rel AJMP addr11 ORL direct,A ORL direct,#data ORL A,#data ORL A,direct ORL A,@R0 ORL A,@R1 ORL A,R0 ORL A,R1 ORL A,R2 ORL A,R3 ORL A,R4 ORL A,R5 ORL A,R6 ORL A,R7 JNC rel ACALL addr11 ANL direct,A ANL direct,#data ANL A,#data ANL A,direct ANL A,@R0 ANL A,@R1 ANL A,R0 ANL A,R1 ANL A,R2 ANL A,R3 ANL A,R4 ANL A,R5 ANL A,R6 ANL A,R7 JZ rel AJMP addr11 XRL direct,A XRL direct,#data XRL A,#data XRL A,direct XRL A,@R0 XRL A,@R1 XRL A,R0 XRL A,R1 XRL A,R2 XRL A,R3 XRL A,R4 XRL A,R5 XRL A,R6 XRL A,R7 JNZ rel ACALL addr11 ORL C,bit BD H BE H BF H C0 H C1 H C2 H C3 H C4 H C5 H C6 H C7 H C8 H C9 H CA H CB H CC H CD H CE H CF H D0 H D1 H D2 H D3 H D4 H D5 H D6 H D7 H D8 H D9 H DA H DB H DC H DD H DE H DF H E0 H E1 H E2 H E3 H E4 H E5 H E6 H E7 H E8 H E9 H EA H EB H EC H ED H EE H EF H F0 H F1 H F2 H 21 CJNE R5,#data,rel CJNE R6,#data,rel CJNE R7,#data,rel PUSH direct AJMP addr11 CLR bit CLR C SWAP A XCH A,direct XCH A,@R0 XCH A,@R1 XCH A,R0 XCH A,R1 XCH A,R2 XCH A,R3 XCH A,R4 XCH A,R5 XCH A,R6 XCH A,R7 POP direct ACALL addr11 SETB bit SETB C DA A DJNZ direct,rel XCHD A,@R0 XCHD A,@R1 DJNZ R0,rel DJNZ R1,rel DJNZ R2,rel DJNZ R3,rel DJNZ R4,rel DJNZ R5,rel DJNZ R6,rel DJNZ R7,rel MOVX A,@DPTR AJMP addr11 MOVX A,@R0 MOVX A,@R1 CLR A MOV A,direct MOV A,@R0 MOV A,@R1 MOV A,R0 MOV A,R1 MOV A,R2 MOV A,R3 MOV A,R4 MOV A,R5 MOV A,R6 MOV A,R7 MOVX @DPTR,A ACALL addr11 MOVX @R0,A 上海贝岭股份有限公司 73 H 74 H 75 H 76 H 77 H 78 H 79 H 7A H 7B H 7C H 7D H 7E H 7F H BL23F30 JMP @A+DPTR MOV A,#data MOV direct,#data MOV @R0,#data MOV @R1,#data MOV R0.#data MOV R1.#data MOV R2.#data MOV R3.#data MOV R4.#data MOV R5.#data MOV R6.#data MOV R7.#data F3 H F4 H F5 H F6 H F7 H F8 H F9 H FA H FB H FC H FD H FE H FF H MOVX @R1,A CPL A MOV direct,A MOV @R0,A MOV @R1,A MOV R0,A MOV R1,A MOV R2,A MOV R3,A MOV R4,A MOV R5,A MOV R6,A MOV R7,A 读-修改-写指令 从 SFR 或内部 RAM 中的读取字节、修改并重新回写指令称为“读-修改-写”指令(RMW 指令)。当操作 I/O 端口(P0-P4),或一个端口位,这些指令读取的是输出锁存内容,而 不是管脚。 RMW 指令 助记符c ANL direct,A ANL direct,#data ORL direct,A ORL direct,#data XRL direct,A XRL direct,#data JBC bit, rel CPL bit INC direct INC @Ri DEC direct DEC @Ri DJNZ direct,rel MOV bit,C CLR bit SETB bit 说明 直接寻址单元与累加器 直接寻址单元与立即数 直接寻址单元或累加器 直接寻址单元或立即数 直接寻址单元异或累加器 直接寻址单元异或立即数 位寻址位为1跳转并清 位寻址位取反 直接寻址单元加1 寄存器间接寻址单元加1 直接寻址单元减1 寄存器间接寻址单元减1 直接寻址单元减1为非零跳转 进位送位寻址位 清位寻址位 位寻址位置1 22 操作码 字节数 周期数 0x52 2 3 0x53 3 4 0x42 2 3 0x43 3 4 0x62 2 3 0x63 3 4 0x10 3 4 0xB2 2 3 0x05 2 3 0x06-0x07 1 3 0x15 2 3 0x16-0x17 1 3 0xD5 3 4 0x92 2 3 0xC2 2 3 0xD2 2 3 上海贝岭股份有限公司 BL23F30 4. 存储器 存储器的组织结构与标准的8051内存组织类似,它分为两个独立的内存空间:程序内 存和数据内存。程序和数据内存共享同一地址空间,但需经不同的指令类型存取。有32k 字 节可编程闪存,可用户程序编程。256字节IRAM,3072字节Extern RAM。 4.1. 程序存储器(Program Memory) 程序存储器有 30k 字节可编程闪存空间,可存储非易失性程序或数据,可用户程序编 程 。 地 址 0000H~77FFH 存 储 空 间 为 程 序 区 ; 地 址 7800H~83FFH 存 储 空 间 与 地 址 0000H~0BFFH XRAM 存储空间重合,MCON.3 为 1 时,XRAM 映射到程序区,可运行程序。 2k EEPROM 数据区映射到地址 1000H~17FFH XRAM 存储区。 4.2. 数据存储器(Data Memory) 有256字节内部数据RAM,从 0 到 127 有 128 字节内部 RAM 被映射到数据内存空 间用于通用寄存器及高速暂存器。不论直接或间接寻址均可用于存取。从 128 到 255字 节内部RAM可通过间接寻址存取。有四个通用寄存器组,每组包括4个8位寄存器,地址从 0 到 31。从 32 到 47 单元的 16 字节,可按字节寻址或 以直接寻址模式寻址 128 位。 高 128 字节区作为特殊功能寄存器 (SFR),使用直接寻址的指令将存取 SFR 空间。 3072字节XRAM可通过间接寻址读写。 23 上海贝岭股份有限公司 BL23F30 FFH 特殊功能寄存器128字节 (直接寻址) 80H 7FH 高128内部IRAM (间接寻址) 00H 低128字节IRAM (直接或间接寻址) 4.3. EEPROM EEPROM 擦写次数在 2 万次以上。可分为若干个扇区,每个扇区包含 128 字节,数据 存储器的擦除操作是按扇区进行的。 EEPROM 可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程 序中,可以对 EEPROM 进行字节读/字节编程/扇区擦除操作。 4.4. 特殊功能寄存器分布 4.5. 特殊功能寄存器地址表 ADDR (HEX ADDR 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F ) (HEX ) 80 P0 SP DPL DPH DPL1 DPH1 WDTREL PCON 87 88 TCON TMOD TL0 TL1 TH0 TH1 CKCON MCON 8F 90 P1 DACI DPS DPC PAGESEL DSAB 97 98 S0CON S0BUF IEN2 S1CON S1BUF S1RELL A0 P2 LINCON SBFTIG T0CKP A8 IEN0 B0 P3 LINRCBL LINRCBH IP0 S0RELL PROT_EN D_PAGESE PWM_INT_ L FLG PWM_INT_ PWM_CTR EN T1CKP L2 PWM_CTR L1 PROT_CTR PROT_CTR PROT_CTR TIME_BL L1 L2 L3 ANK RST_CTRL CLK_CTRL POL_CTRL LEV_BUF OUTPUT_M OUTPUT_U TIME_DE 24 9F A7 AF B7 上海贝岭股份有限公司 BL23F30 ODE PCTRL ADZONE GPIOIFR0 GPIOIFR1 GPIOIFR2 IRCON2 B8 IP/IEN1 IP1 S0RELH S1RELH C0 IRCON CCEN CCL1 CCH1 CCL2 CCH2 C8 T2CON AEN CRCL CRCH TL2 TH2 D0 PSW IEN4 SLCT_H SLCT_L ADC_D3L ADC_D3H ADC_D2L ADC_D2H D7 D8 ADCON ADC_D1L ADC_D1H ADC_D0L ADC_D0H DF E0 ACC SPSTA SPCON SPDAT SPSNN E8 P4 MD0 MD1 MD2 MD3 F0 B F8 P5 ADC_MOD ADC_CFG ADC_TRIG _EN CCL3 GPIOIFLG GPIOIFL 0 G1 PWM0_INT PWM0_INT CMP_CTR H L H C7 CF E7 _EN _FLG L MD4 MD5 ARCON EF SRST F7 PWM_DC1_ PWM_DC1_ PWM_DC2_ PWM_DC2_ PWM_DC3_ PWM_DC3_ L CCH3 BF L H PWM_CYC_ PWM_CYC_ PWM_CM1_ PWM_CM1_ PWM_CM2_ PWM_CM2_ PGA_GAI H N FF L H L H L 2000 P0IEN P1IEN P2IEN P3IEN P4IEN P5IEN 2007 2010 P0PUEN P1PUEN P2PUEN P3PUEN P4PUEN P5PUEN 2017 2020 P0ODEN 2027 2030 P0PDEN 2030 2040 P0FUN0 P0FUN1 P1FUN P2FUN P3FUN0 P3FUN1 P4FUN P5FUN 2050 GPIO_DS GPIO_SR 2100 2200 2300 3000 2057 PWM0_CY PWM0_CYC PWM0_DC_ PWM0_DC_ PWM0_CTR PWM0_CTR PWM0_INT PWM0_IN C_H PWM1_CY C PWM2_CY C _L PWM1_DC PWM2_DC H L L1 L2 _EN T_FLG PWM1_CTR PWM1_CTR PWM1_INT PWM1_INT L1 L2 _EN PWM2_CTR PWM2_CTR PWM2_INT PWM2_INT L1 L2 _EN 2107 2207 _FLG 2307 _FLG RSTB_LV 3007 R_CTRL ADDR (HEX 2047 ADDR 0/8 1/9 2/A 3/B 4/C ) 5/D 6/E 7/F (HEX ) 25 上海贝岭股份有限公司 BL23F30 4.6. 编译器兼容的 SFR 4.6.1. 累加器(Accumulator)- ACC 地址 – E0H 初始值 – 00H 该寄存器是算术操作累加器。 4.6.2. B 寄存器 - B 地址 – F0H 初始值 – 00H 该寄存器为某些算术操作的第二累加器。 4.6.3. 程序状态寄存器 - PSW 地址 – D0H 初始值 – 00H 7 6 5 4 3 2 1 0 CY AC F0 RS1 RS0 OV F1 P R/W R/W R/W R/W R/W R/W R/W R ——————————————————————————————————————— 7 CY 进位标志 当最后一次算术操作产生进位(加法)或借位(减法)时,该位被设置。 其它算术操作将其清为逻辑0。 ——————————————————————————————————————— 6 AC 辅助进位标志 当最后一次算术操作向高半字节有进位(加法)或借位(减法)时,该位 被设置。其它算术操作将其清为逻辑 0。 ——————————————————————————————————————— 5 F0 用户标志 0 这是一个可位寻址、受软件控制的通用标志位。 ——————————————————————————————————————— 4 RS1:RS0 寄存器区选择 ——————————————————————————————————————— 3 这些位在寄存器访问时用于选择寄存器区。 26 上海贝岭股份有限公司 BL23F30 00:寄存器区 0,地址 0x00-0x07 01:寄存器区 1,地址 0x08-0x0F 10:寄存器区 2,地址 0x10-0x17 11:寄存器区 3,地址 0x18-0x1F ——————————————————————————————————————— - 2 溢出标志 OV 在下列情况下,该位设置为 1: 一个 ADD、ADDC 或 SUBB 指令导致符号改变溢出。 一个 MUL 指令导致溢出(结果大于 255)。 一个 DIV 指令导致出现除以 0 的情况。 在所有其它情况下,OV 位被 ADD、ADDC、SUBB、MUL 和 DIV 指令 清0。 ——————————————————————————————————————— 用户标志 1 1 F1 这是一个可位寻址、受软件控制的通用标志位。 ——————————————————————————————————————— 奇偶标志 0 P 若累加器中八个位的和为奇数,则该位设置为逻辑 1,为偶数时则清零。 ——————————————————————————————————————— 4.6.4. 堆栈指针寄存器 - SP 地址 – 81H 初始值 – 07H 堆栈指针保持栈顶位置。在每次执行 PUSH 操作前,堆栈指针增加。SP 寄存器复位 后的默认值为 0x07。 4.6.5. 数据指针 – DPH, DPL DPL: 地址 – 82H 初始值 – 00H DPH: 地址 – 83H 初始值 – 00H 27 上海贝岭股份有限公司 BL23F30 4.6.6. 数据指针 1 – DPH1, DPL1 DPL1: 地址 – 84H 初始值 – 00H DPH1: 地址 – 85H 初始值 – 00H 4.6.7. 数据指针选择寄存器 – DPS DPS: 地址 – 92H 初始值 – 00H Rr8051XC2包含多达八个数据指针寄存器,取决于配置。这些寄存器可以作为16位间接寻 址的地址。DPS寄存器用于选择有效数据指针寄存器。 IP核心配置中,如果只选一个数据指针寄存器(DPTR),然后DPS寄存器分配不在SFR的内 存空间。然而,还有一种可能性,选择两个数据指针或八数据指针来分配。 7 6 5 4 3 2 1 0 - - - - BSE DPSEL2 DPSEL1 DPSEL0 R R R R R/W R/W R/W R/W ——————————————————————————————————————— 3 BSE 数据指针区开关使能 1 - 支持数据指针区,DPSEL2:DPSEL1变成只读,由PSW寄存器中RS1:RS0 取代。四组两字节数据指针建立于内部数据存储器(IRAM)R0~R7寄存器区。 DPSEL0位维持读写,并且由软件或DPTR自动开关正常控制。 ——————————————————————————————————————— 2:0 数据指针寄存器选择,指定活动数据指针寄存器的数量。 000 只有一个DPTR;DPSEL设置, xx1 两个到八个DPTRs选位) ——————————————————————————————————————— 4.6.8. 数据指针控制寄存器 – DPC DPS: 地址 – 93H 初始值 – 00H、08H、10H、18H、20H、28H、30H、38H R8051XC2包含一个可选的数据指针相关运算单元。它提供了自增(1)或递减(2),并且在有 效的数据寄存器之间自动开关。DPC寄存器控制这个功能。每个数据指针寄存器都有对应的DPC 寄存器提供高度灵活的数据传输操作。DPC内容指向DPS选择的数据指针寄存器。 28 上海贝岭股份有限公司 BL23F30 当IP核配置为两个数据指针寄存器时,DPC中位5核位4是不需要关心的。当只有一个数据指 针寄存器,DPC中位5、位4和位3是不需要关心的。 7 6 5 4 3 2 1 0 - - NDPS2 NDPS1 NDPS0 AMS AMD AME R R R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5:3 NDPSn 下一个数据指针选择 每个 MOVX @ DPTR 指令后,此字段的内容加载到DPS寄存器。请注意,此 功能总是启用。因此每个DPS寄存器此字段包含一个不同的值指向其自 身以便自动切换时不会出现被复位初始值代替。 ——————————————————————————————————————— 2 AMS 自动增减大小,DPS.0 = 1; 0 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动递增或递减 1。 1 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动递增或递减 2。 ——————————————————————————————————————— 1 AMD 自动增或减,DPS.0 = 1; 0 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动递增。 1 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动递减。 ——————————————————————————————————————— 0 AME 自动增减使能 0 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动增减禁止。 1 - 每个 MOVX @DPTR 指令执行后,当前的 DPTR 自动增减使能。 ——————————————————————————————————————— 4.6.9. 程序存储器页选寄存器 – PAGESEL DPS: 地址 – 94H 初始值 – 01H 此寄存器为程序存储器扩展提供了一个额外的地址空间。请注意,复位后不 写此寄存器,此寄存器初始值是 1,提供生成正常的地址(最大逻辑地址的 8000H 的物理空间地址)。对此寄存器写 0,会引发逻辑地址 8000H~ FFFFH 之间的程序 存储区覆盖逻辑地址 0000H~7FFFH 的公共程序存储区。 此寄存器用于程序存储器地址总线大于 16 位时,扩展程序存储器。 4.6.10. 数据存储器页选寄存器 – D_PAGESEL DPS: 地址 – 95H 初始值 – 01H 29 上海贝岭股份有限公司 BL23F30 此寄存器为数据存储器扩展提供了一个额外的地址空间。请注意,复位后不 写此寄存器,此寄存器初始值是 1,提供生成正常的地址(最大逻辑地址的 8000H 的物理空间地址)。对此寄存器写 0,会引发逻辑地址 8000H~ FFFFH 之间的数据 存储区覆盖逻辑地址 0000H~7FFFH 的公共数据存储区。 此寄存器用于数据存储器地址总线大于 16 位时,扩展数据存储器。 30 上海贝岭股份有限公司 BL23F30 5. 系统时钟 5.1. 特性 1. 内部 RC 振荡或外部晶体振荡器作为精确可调频率锁相环(PLL)时钟源,产生高频时钟 提供 CPU 和外围设备。最高 60MHz。 2. 内部 RC 振荡或外部晶体振荡器作为时钟源供 CPU 和外围设备。 3. RESET 后 MCU 使用内部 RC 振荡器作为时钟源 5.2. 系统时钟寄存器 初始值:71H CKCON 存储器读写时钟控制寄存器:8EH 7 6 5 4 3 - R/W 2 1 0 R/W R/W R - R/W R/W R/W R/W ——————————————————————————————————————— 6:4 程序存储器写等待状态控制数。 ——————————————————————————————————————— 2:0 外部数据存储器延展周期数 ——————————————————————————————————————— **CKCON使用需要小心,无特别需求使用默认值。CKCON设置为0,CPU以最快速度 运行。 初始值 – FCH CLK_CTRL 系统时钟控制寄存器:B2H 7 6 5 4 3 31 2 1 0 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W R/W R/W R ——————————————————————————————————————— 7:6 P41 时钟输出配置。 00 - RC 时钟输出。 01 - 输出 0。 10 - PLL 时钟 4 分频输出。 11 - 输出 0(P41)。 ——————————————————————————————————————— 5 ADC 时钟使能。 0 - 禁止。 1 - 使能。 ——————————————————————————————————————— 4 GPIO 时钟使能。 0 - 禁止。 1 - 使能。 ——————————————————————————————————————— 3 PWM 时钟使能。 0 - 禁止。 1 - 使能。 ——————————————————————————————————————— 2 锁相环(PLL)使能。 0 - 禁止。 1 - 使能。 ——————————————————————————————————————— 1 芯片主时钟选择。 0 - 内部 RC 低频时钟或外部低频晶振时钟。 1 - 内部 RC 或外部晶振经 PLL 产生高频时钟。 设置后读出是 1,确认高频时钟启动。设置前先使能 PLL。 ——————————————————————————————————————— 32 上海贝岭股份有限公司 BL23F30 6. 中断 6.1. 中断向量表 中断源 中断向 优先级 请求标志 位寻址 硬件清 使能标志 量 RESET 0x0000 最高 INT0 0x0003 0 IE0 (TCON.1) Y Y EX0 (IEN0.0) TIMER0 0x000B 1 TF0 (TCON.5) Y Y ET0 (IEN0.1) INT1 0x0013 2 IE1 (TCON.3) Y Y EX1 (IEN0.2) TIMER1 0x001B 3 TF1 (TCON.7) Y Y ET1 (IEN0.3) UART0 0x0023 4 RI0 (S0CON.0) Y N ES0 (IEN0.4) Y Y ET2 (IEN0.5) 无 TI0 (S0CON.1) TIMER2 0x002B 5 EXF2(IRCON.7) TF2(IRCON.6) EXEN2(IEN1.7) ADC 0x0043 8 IADC(ADC_CFG.0) N N IEN1.0 SPI 0x004B 9 ISPI(IRCON.1) Y Y IEN1.1 COM0 0x0053 10 ICC0(IRCON.2) Y Y IEN1.2 COM1 0x005B 11 ICC1(IRCON.3) Y Y IEN1.3 COM2 0x0063 12 ICC2(IRCON.4) Y Y IEN1.4 COM3 0x006B 13 ICC3(IRCON.5) Y Y IEN1.5 UART1 0x0083 16 TI1(S1CON.1) N N ES1(IEN2.0) N N IEN2.1 RI1(S1CON.0) MPWM 0x008B 17 CM2_INT_FLG(PWM_INT _FLG.6) CM2_INT_EN(PWM CM1_INT_FLG(PWM_INT _INT_EN.6) _FLG.5) CM1_INT_EN(PWM DC3_INT_FLG(PWM_INT _INT_EN.5) .FLG.4) DC3_INT_EN(PWM DC2_INT_FLG(PWM_INT _INT_EN.4) .FLG.3) DC2_INT_EN(PWM DC1_INT_FLG(PWM_INT _INT_EN.3) .FLG.2) DC1_INT_EN(PWM TOP_INT_FLG(PWM_INT _INT_EN.2) _FLG.1) TOP_INT_EN(PWM BOT_INT_FLG(PWM_INT _INT_EN.1) _FLG.0) BOT_INT_EN(PWM _INT_EN.0) MPWM_HIG HZ 0x0093 18 HIGHZ_INT_FLG(PROT_ CTRL2.4) N N IEN2.2 HIGHZ_INT_EN(P 33 上海贝岭股份有限公司 BL23F30 ROT_CTRL1.7) PWM0 0x009B 19 DC_INT_FLG(PWM0_FLG N N IEN2.3 .2) DC_INT_EN(PWM0 TOP_INT_FLG(PWM0_FL _INT.2) G.1) TOP_INT_EN(PWM BOT_INT_FLG(PWM0_FL 0_INT.1) G.0) BOT_INT_EN(PWM 0_INT.0) GPIO 0x00A3 20 IGPIO(IRCON2.4) Y Y IEN2.4 CMP 0x00AB 21 IRCON2.4 Y Y IEN2.5 6.2. 中断控制寄存器 IEN0 中断使能寄存器:A8H 初始值:00H 7 6 5 4 3 2 1 0 EA WDT ET2 ES0 ET1 EX1 ET0 EX0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 EA 全局中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 6 WDT 看门狗定时器刷新标志 启动一个看门狗定时器刷新。在 SWDT(IEN1.6)设置前,为防止意外 的看门狗定时器刷新,必须先设置此位。在设置此位的下一条指令后, WDT 位由硬件清零。依次设置 WDT 和 SWDT,看门狗被刷新。 ——————————————————————————————————————— 5 ET2 定时器 2 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 4 ES0 UART0 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 3 ET1 定时器 1 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 2 EX1 外部中断 1 中断使能 34 上海贝岭股份有限公司 BL23F30 0 – 禁止 1 – 使能 ——————————————————————————————————————— 定时器 0 中断使能 1 ET0 0 – 禁止 1 – 使能 ——————————————————————————————————————— 外部中断 0 中断使能 0 EX0 0 – 禁止 1 – 使能 ——————————————————————————————————————— IEN1 中断使能寄存器 1:B8H 初始值:00H 7 6 5 4 3 2 1 0 EXEN2 SWDT CC3_IN T CC2_IN T CC1_IN T CC0_INT SPI_IN T ADC_IN T R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 EXEN2 定时器 2 外部重载中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 6 SWDT 看门狗启动/刷新标志 当设置 WDT(IE.6)后,立即设置此位,刷新看门狗定时器。此位写 1 后 硬件自动清 0。 ——————————————————————————————————————— 5 CC3_INT 0 - 禁止 1 – 使能 CCU3 比较中断可以设定为上下沿触发(具体取决于 T2CON 中的 I3FR 位 )。上下电平变化的脉冲宽度必须大于 1 个时钟周期。 与此中断对应的标志位(IRCON.5)。当 CRC 寄存器设置为比较模式时 ,定时器 2 中的值与 CRC 的值相等产生中断。 CC3_INT 标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 4 CC2_INT 0 - 禁止 1 – 使能 CCU2 比较中断可以设定为上下沿触发(具体取决于 T2CON 中的 I3FR 位 )。上下电平变化的脉冲宽度必须大于 1 个时钟周期。 与此中断对应的标志位(IRCON.4)。当 CRC 寄存器设置为比较模式时 ,定时器 2 中的值与 CRC 的值相等产生中断。 CC2_INT 标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 3 CC1_INT 0 - 禁止 1 – 使能 35 上海贝岭股份有限公司 BL23F30 CCU1 比较中断可以设定为上下沿触发(具体取决于 T2CON 中的 I3FR 位 )。上下电平变化的脉冲宽度必须大于 1 个时钟周期。 与此中断对应的标志位(IRCON.3)。当 CRC 寄存器设置为比较模式时 ,定时器 2 中的值与 CRC 的值相等产生中断。 CC1_INT 标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 2 CC0_INT 0 - 禁止 1 – 使能 CCU0 比较中断可以设定为上下沿触发(具体取决于 T2CON 中的 I3FR 位 )。上下电平变化的脉冲宽度必须大于 1 个时钟周期。 与此中断对应的标志位(IRCON.2)。当 CRC 寄存器设置为比较模式时 ,定时器 2 中的值与 CRC 的值相等产生中断。 CC0_INT 标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 1 SPI_INT SPI 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 0 ADC_INT ADC 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— IEN2 中断使能寄存器 2:9AH 初始值:00H 7 6 5 4 3 2 1 0 - - CMP_IN T GPIO_I NT PWM0_I NT MPWM_HIG HZ_INT MPWM_I NT ES1 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5 CMP_INT 比较器中断使能,上升沿产生中断。 0 – 禁止 1 – 使能 ——————————————————————————————————————— 4 GPIO_INT 输入端口中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 3 PWM0_INT PWM0 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 2 MPWM_HIGHZ_INT MPWM 保护中断使能 0 – 禁止 1 – 使能 36 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— 1 MPWM_INT MPWM 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— 0 ES1 UART1 中断使能 0 – 禁止 1 – 使能 ——————————————————————————————————————— GPIOIFR0 GPIO 中断使能寄存器 0:BCH 7 6 5 P40IFR R/W 初始值:00H 4 3 2 P17IFR R/W R/W 1 P16IFR R/W R/W 0 P02IFR R/W R/W R/W ——————————————————————————————————————— 7:6 P40IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 5:4 P17IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 3:2 P16IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 1:0 P02IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— GPIOIFR1 GPIO 中断使能寄存器 1:BDH 7 6 P44IFR R/W R/W 5 初始值:00H 4 3 P43IFR R/W 2 P42IFR R/W R/W R/W 1 0 P41IFR R/W R/W ——————————————————————————————————————— 7:6 P44IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 37 上海贝岭股份有限公司 BL23F30 11 - 上升和下降沿中断 ——————————————————————————————————————— 5:4 P43IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 3:2 P42IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 1:0 P41IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— GPIOIFR2 GPIO 中断使能寄存器 2:BEH 7 6 P57IFR R/W R/W 5 初始值:00H 4 3 P56IFR R/W 2 P55IFR R/W R/W R/W 1 0 P54IFR R/W R/W ——————————————————————————————————————— 7:6 P57IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 5:4 P56IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 3:2 P55IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 1:0 P54IFR 00 – 禁止 01 – 上升沿中断 10 - 下降沿中断 11 - 上升和下降沿中断 ——————————————————————————————————————— 38 上海贝岭股份有限公司 BL23F30 GPIOIFLG0 GPIO 中断请求控制寄存器 0:CEH 初始值:00H 7 6 5 4 3 2 1 0 P44IFLG P43IFLG P42IFLG P41IFLG P40IFLG P17IFLG P16IFLG P02IFLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:0 1 – 有中断请求,软件清零 ——————————————————————————————————————— GPIOIFLG1 GPIO 中断请求控制寄存器 1:CFH 初始值:00H 7 6 5 4 3 2 1 0 - - - - P57IFLG P56IFLG P55IFLG P54IFLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:0 1 – 有中断请求,软件清零 ——————————————————————————————————————— IP 中断优先级寄存器:B8H 初始值:00H 7 6 5 4 3 2 1 0 EXEN2 SWDT PT2 PS PT1 PX1 PT0 PX0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 定时器2外部输入中断、重载使能。 7 EXEN2 EXEN2=0, T2EX(定时器2外部输入)中断2禁止,T2重载由T2溢出设定。 EXEN2=1并且EAL=1, T2EX中断使能,T2重载由T2EX设定。 ——————————————————————————————————————— 6 SWDT Watchdog定时器“启动/刷新”标志。 看门狗定时器“激活/刷新”标志。WDT(IEN0.6)写1,Watchdog定时器 清零,同时SWDT(IP.6)由硬件立即清零。 ——————————————————————————————————————— 定时器2中断优先级。 5 PT2 1:定时器2中断优先级高。 0:定时器2中断优先级低。 ——————————————————————————————————————— 4 PS UART0中断优先级。 1:UART0中断优先级高。 0:UART0中断优先级低。 ——————————————————————————————————————— 定时器1溢出中断优先级。 3 PT1 1:定时器1溢出中断优先级高。 0:定时器1溢出中断优先级低。 ——————————————————————————————————————— 外部中断1优先级。 2 PX1 39 上海贝岭股份有限公司 BL23F30 1:外部中断1优先级高。 0:外部中断1优先级低。 ——————————————————————————————————————— 定时器0溢出中断优先级。 1 PT0 1:定时器0溢出中断优先级高。 0:定时器0溢出中断优先级低。 ——————————————————————————————————————— 外部中断0优先级。 0 PX0 1:外部中断0优先级高。 0:外部中断0优先级低。 ——————————————————————————————————————— IP0 中断优先级寄存器 0:A9H 7 6 5 - R/W WDTS 初始值:00H 4 3 2 1 0 每一位与 IP1相应的位一起指定对应中断优先组的优先级 R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 6 WDTS 看门狗定时器中断请求标志 当看门狗定时器溢出时由硬件置位。 ——————————————————————————————————————— IP1 中断优先级寄存器 0:B9H 7 6 5 - R/W - R/W 初始值:00H 4 3 2 1 0 每一位与 IP0 相应的位一起指定对应中断优先组的优先级 R/W R/W R/W R/W R/W 中断优先组 组 0 中断位 IP1.0:IP0.0 中断 INT0,UART1 1 IP1.1:IP0.1 TIMER0,INT_MPWM 2 IP1.2:IP0.2 INT1,INT_MPWM_HIGHZ 3 IP1.3:IP0.3 TIMER1,INT_PWM0 4 IP1.4:IP0.4 UART0,INT_GPIO 5 IP1.5:IP0.5 TIMER2,INT_CMP 优先级表 IP1.x IP0.x 优先级 0 0 0 级(最低) 0 1 1级 1 0 2级 1 1 3 级(最高) 40 R/W 上海贝岭股份有限公司 BL23F30 IRCON 中断请求控制寄存器:C0H 初始值:00H 7 6 5 4 3 2 1 0 EXF2 TF2 ICC3 ICC2 ICC1 ICC0 ISPI - R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 EXF2 定时器 2 外部重载标志 ——————————————————————————————————————— 6 TF2 定时器 2 溢出标志 ——————————————————————————————————————— 5 ICC3 CCU3 中断标志 此标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 4 ICC2 CCU2 中断标志 此标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 3 ICC1 CCU1 中断标志 此标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 2 ICC0 CCU0 中断标志 此标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— 1 ISPI SPI 中断标志 此标志在被调用中断服务程序时,由硬件自动清除。 ——————————————————————————————————————— IRCON2 中断请求控制寄存器:BFH 初始值:00H 7 6 5 4 3 2 1 0 - R/W - R/W - R/W CMPFLG - - - - R/W R/W R/W R/W R/W ——————————————————————————————————————— 4 CMPFLG 比较器中断标志 ——————————————————————————————————————— 41 上海贝岭股份有限公司 BL23F30 7. MDU MDU 乘法除法器,是一个运算协处理器,支持 R8051XC2提供32位、16位乘法, 除法,移位和规格化等无符号整数运算。MDU 由7个特殊功能寄存器实现独立于 CPU 的运算操作。操作数和结果存储在 MD0~MD5寄存器中,该模块由 ARCON 特殊 寄存器控制。任何 MDU 的计算重写它的操作数。 7.1. MDU 结构图 42 上海贝岭股份有限公司 BL23F30 7.2. MDU 操作 MDU操作分为三个阶段: a) 加载MDX寄存器 MDU计算的类型,由写入”MDx”寄存器的顺序决定。 MDU 寄存器写入顺序 操作 32 bit/16 bit 符号16 bit×16 bit 无符号16 bit × shifting 16 bit normalizing 先写 md0 被除数[7:0] md0 被乘数[7:0] md0 被乘数[7:0] md0 [7:0] md1 被除数[15:8] md1 被乘数[15:8] md4 乘数[7:0] md1 [15:8] md1 被乘数[15:8] md2 [23:16] md2 被除数[23:16] md3 被除数[31:24] 最后写 md3 [31:24] md4 除数[7:0] md4 乘数[7:0] md5 除数[15:8] md5 乘数[15:8] md5 乘数[15:8] arcon 最先写入“md0”启动各类运算的数据传送动作,接着按上表顺序写入确定MDU运算,最 后写入启动运算。SFR控制检测上述某些序列,并将控制传递给算术运算FSM。 b) 执行计算, 在执行运算时,MDU与CPU并行工作。 运算 除法 32bit/16bit 时钟周期数 8 clock cycles 符号 16bit×16bit 1 clock cycles 无 符 号 16bit × 1 clock cycles 16bit 移位 1 clock cycles 规格化 1 clock cycles MDU 运算时间 c)从MDX寄存器读运算结果 MDU 寄存器读顺序 操作 32 bit/16 bit 符号16 bit×16 bit 16 bit x 16 bit shifting normalizing 先读 md0 商[7:0] md0 乘积[7:0] md0 乘积[7:0] md0 [7:0] md1 商[15:8] md1 乘积[15:8] Md1 乘积[15:8] md1 [15:8] md2 商[23:16] Md2 乘积[23:16] Md2 乘积[23:16] md2 [23:16] Md3 乘积[31:24] Md3 乘积[31:24] MD3 [31:24] md3 商[31:24] md4 余数[7:0] 最后读 md5 余数[15:8] 43 上海贝岭股份有限公司 BL23F30 d)规格化(Normalizing) 存储于MD0...MD3寄存器的32位整数左移操作删除前导零。整个操作完成 后,MD3寄存器最高有效位为“1”,ARCON寄存器后5位(ARCON.4:ARCON.0)包含左 移操作次数。 e)移 位 (Shift) 在移位操作中,存储在MD0...MD3寄存器的32位整数被左或右移动指定的位 数 。 ARCON 寄 存 器 中 SLR(ARCON.5) 位 ) 定 义 移 动 方 向 。 ARCON 寄 存 器 后 5 位 (ARCON.4:ARCON.0)包含移动次数。在移动操作中,零被填入移动的最后一位。 f) MDEF(ARCON.7)标志 MDEF(ARCON.7)标志指出不正确的操作(当一个算术运算已被重新启动或被新的 操作中断)。错误检测从第一次写入MD0寄存器自动启动到最终读MD3寄存器(乘法或移 动/规格化)或MD5(除法)停止。 错误标志被设置时: • 在MDU操作重新启动或计算中断期间,写访问MDx寄存器(任何MD0...MD5)和 ARCON寄存器 • 在MDU操作重新启动或计算中断期间,错误标志机制启用时,读访问一个MDx 寄存器。在这种情况下,错误标志设置但计算不中断。 读ARCON寄存器,错误标志被复位。 g) MDOV(ARCON.6)标志 MDOV溢出标志被设置时,出现下列情形: • 除以零 • 乘法的结果大于0000 FFFFH • 如果MD3最高位是1(MD3.7=1)时,启动规格化。 任何不符合上述条件的MDU操作,清除溢出标志。注意,溢出标志是由硬件专门控 制,不能被写入。 7.3. MDU 寄存器 7.3.1. 乘除寄存器 – MD0, MD1, MD2, MD3, MD4, MD5 名称 MD0 MD1 MD2 MD3 MD4 MD5 地址 E9H EAH EBH ECH EDH EEH 44 初始值 0 0 0 0 0 0 上海贝岭股份有限公司 BL23F30 7.3.2. 运算控制寄存器 - ARCON 初始值:00H ARCON寄存器:EEH 7 6 5 4 3 2 1 0 MDEF MDOV SLR SC4 SC3 SC2 SC1 SC0 R R R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 MDEF 指出不正确的操作(当一个算术运算已被重新启动或被新的操作中断)。 ——————————————————————————————————————— 6 MDOV MDU运算出现溢出。 ——————————————————————————————————————— 5 SLR 移位方向 0 : 左移 1 : 右移 ——————————————————————————————————————— 4 SC4:SC0 移位次数 3 当这些位都为0,执行规格化操作。规格化完成后,这些位储存移位的次 2 数。其他值执行移位操作,这些位指出移位次数,SC4是最高位。 1 0 ——————————————————————————————————————— 7.3.3. 例程 32 位数据除 16 位数据 MD0 MD1 MD2 MD3 = = = = T0; T1; T2; T3; // // // // 被除数[7:0] 被除数[15:8] 被除数[23:16] 被除数[31:24] MD4 = T4; // 除数[7:0] MD5 = T5; // 除数[15:8] _nop_(); _nop_(); _nop_(); _nop_(); // 等待 8 个时钟周期 45 上海贝岭股份有限公司 BL23F30 _nop_(); _nop_(); _nop_(); _nop_(); if ((ARCON&0xC0)!=0) { // 出错处理 } T0 T1 T2 T3 = = = = MD0; MD1; MD2; MD3; // // // // 商[7:0] 商[15:8] 商[23:16] 商[31:24] T4 = MD4; // 余数[7:0] T5 = MD5; // 余数[15:8] 有符号 16 位数据乘 16 位数据 MD0 = T0; // 被乘数[7:0] MD1 = T1; // 被乘数[15:8] MD4 = T4; // 乘数[7:0] MD5 = T5; // 乘数[15:8] _nop_(); // 等待 1 个时钟周期 if ((ARCON&0xC0)!=0) { // 出错处理 } T0 T1 T2 T3 = = = = MD0; MD1; MD2; MD3; // // // // 积[7:0] 积[15:8] 积[23:16] 积[31:24] 无符号 16 位数据乘 16 位数据 MD0 = T0; // 被乘数[7:0] MD4 = T4; // 乘数[15:8] 46 上海贝岭股份有限公司 BL23F30 MD1 = T1; // 被乘数[7:0] MD5 = T5; // 乘数[15:8] _nop_(); // 等待 1 个时钟周期 if ((ARCON&0xC0)!=0) { // 出错处理 } T0 T1 T2 T3 = = = = MD0; MD1; MD2; MD3; // // // // 积[7:0] 积[15:8] 积[23:16] 积[31:24] 移位操作(数据规范化) MD0 = MD1 = MD2 = MD3 = ARCON T0; T1; T2; T3; = 0; _nop_(); // // // // // 被移位数[7:0] 被移位数[15:8] 被移位数[7:0] 被移位数[15:8] 执行规范化操作 // 等待 1 个时钟周期 if ((ARCON&0xC0)!=0) { // 出错处理 } T0 T1 T2 T3 = = = = MD0; MD1; MD2; MD3; // // // // 积[7:0] 积[15:8] 积[23:16] 积[31:24] 移位操作 MD0 = MD1 = MD2 = MD3 = ARCON T0; T1; T2; T3; = 1; // // // // // 被移位数[7:0] 被移位数[15:8] 被移位数[7:0] 被移位数[15:8] 执行左移一位操作 47 上海贝岭股份有限公司 _nop_(); BL23F30 // 等待 1 个时钟周期 if ((ARCON&0xC0)!=0) { // 出错处理 } T0 T1 T2 T3 = = = = MD0; MD1; MD2; MD3; // // // // 积[7:0] 积[15:8] 积[23:16] 积[31:24] 48 上海贝岭股份有限公司 BL23F30 8. 输入输出端口 P0 输入输出数据寄存器:80H 7 6 5 4 3 2 1 0 P07 P06 P05 P04 P03 P02 P01 P00 R/W R/W R/W R/W R/W R/W R/W R/W P1 输入输出数据寄存器:90H 7 6 5 4 3 2 1 0 P17 P16 P15 P14 P13 P12 P11 P10 R/W R/W R/W R/W R/W R/W R/W R/W P2 输入输出数据寄存器:A0H 7 6 5 4 3 2 1 0 P27 P26 P25 P24 P23 P22 P21 P20 R/W R/W R/W R/W R/W R/W R/W R/W P3 输入输出数据寄存器:B0H 7 6 5 4 3 2 1 0 - P36 - P34 P33 P32 P31 P30 R/W R/W R/W R/W R/W R/W R/W R/W P4 输入输出数据寄存器:E8H 7 6 5 4 3 2 1 0 - - - P44 P43 P42 P41 P40 R/W R/W R/W R/W R/W R/W R/W R/W P5 输入输出数据寄存器:F8H 7 6 5 4 3 2 1 0 P57 P56 P55 P54 P53 P52 P51 P50 R/W R/W R/W R/W R/W R/W R/W R/W P0IEN P0 数据方向选择寄存器:2000H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 数据方向选择 0 - 输出 1 - 输入 49 上海贝岭股份有限公司 BL23F30 —————————————————————————————————————— P1IEN P1 数据方向选择寄存器:2001H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 数据方向选择 0 - 输出 1 - 输入 —————————————————————————————————————— P2IEN P2 数据方向选择寄存器:2002H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 数据方向选择 0 - 输出 1 - 输入 —————————————————————————————————————— P3IEN P3 数据方向选择寄存器:2003H 7 6 R/W 5 初始值:FFH 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 数据方向选择 7:0 0 - 输出 1 - 输入 —————————————————————————————————————— P4IEN P4 数据方向选择寄存器:2004H 7 6 5 - - - R/W R/W R/W 初始值:FFH 4 3 2 1 0 R/W R/W R/W R/W R/W —————————————————————————————————————— 4:0 数据方向选择 0 - 输出 1 - 输入 —————————————————————————————————————— P5IEN P5 数据方向选择寄存器:2005H 初始值:FFH 50 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 数据方向选择 0 - 输出 1 - 输入 —————————————————————————————————————— P0ODEN P0 开漏使能寄存器:2020H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 输出开漏使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P0PUEN P0 上拉电阻使能寄存器:2010H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 输入上拉电阻使能 7:0 0 - 禁止 1 - 使能 P07关闭上拉电阻时,注意必须把P0FUNC0.7设置成1以避免引起MCU复位。 —————————————————————————————————————— P1PUEN P1 上拉电阻使能寄存器:2011H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 输入上拉电阻使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P2PUEN P2 上拉电阻使能寄存器:2012H 7 6 5 初始值:00H 4 3 51 2 1 0 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 输入上拉电阻使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P3PUEN P3 上拉电阻使能寄存器:2013H 7 6 R/W 5 初始值:00H 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:0 输入上拉电阻使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P4PUEN P4 上拉电阻使能寄存器:2014H 7 6 5 - - - R/W R/W R/W 初始值:00H 4 3 2 1 0 R/W R/W R/W R/W R/W —————————————————————————————————————— 输入上拉电阻使能 4:0 0 - 禁止 1 - 使能 —————————————————————————————————————— P5PUEN P5 上拉电阻使能寄存器:2015H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 3:0 输入上拉电阻使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P0PDEN P0 下拉电阻使能寄存器:2030H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 52 上海贝岭股份有限公司 7:0 BL23F30 输入上拉电阻使能 0 - 禁止 1 - 使能 —————————————————————————————————————— P0FUN0 P0 特殊功能选择寄存器 0:2040H 初始值:FFH 7 6 5 4 3 2 1 0 - - - - - - P01FUN P00FUN R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 1 P01 功能选择 0 - CMP-(模拟) 1 - P01 —————————————————————————————————————— 0 P00 功能选择 0 - CMP+(模拟) 1 - P00 —————————————————————————————————————— P0FUN1 P0 特殊功能选择寄存器 1:2041H 7 6 5 4 P07FUN P06FUN P05FUN P04FUN R/W R/W R/W R/W 初始值:FFH 3 2 P03FUN R/W R/W 1 0 P02FUN R/W R/W —————————————————————————————————————— 7 P07功能选择(只有在LVR_CTRL[7](P07_RSTB_EN)配置为0,即P07脚不用做 RESE时,本寄存器才起作用。P07_RSTB_EN的优先级高于本寄存器的配置)。此 功能只在PMODE引脚悬空时有;PMODE接地,吃引脚为复位功能。 0 - ADC_PIN_TRIG 1 - P07 —————————————————————————————————————— 6 P06 功能选择 0 - TXD0 1 - P06 —————————————————————————————————————— 5 P05 功能选择 0 - RXD0 1 - P05 —————————————————————————————————————— 4 P04 功能选择 0 - T0 1 - P04 —————————————————————————————————————— 3:2 P03 功能选择 53 上海贝岭股份有限公司 BL23F30 00 - INT1 01 - GOFF1 1x - P03 —————————————————————————————————————— 1:0 P02 功能选择 00 - DAC 输出 01 - CMPO(比较器模拟输出) 1x - P02 —————————————————————————————————————— P1FUN P1 特殊功能选择寄存器:2042H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7 P17功能选择 0 - AN4(ADC CH4输入) 1 - P17 —————————————————————————————————————— 6 P16功能选择 0 - AN5(ADC CH5输入);或AEN.5(VCMEN=1),则输出模拟VCM电压。 1 - P16 —————————————————————————————————————— 5 P15 功能选择 0 - AN6(ADC CH6 输入) 1 - P15 —————————————————————————————————————— 4 P14 功能选择 0 - AN7(ADC CH7 输入) 1 - P14 —————————————————————————————————————— 3 P13 功能选择 0 - AN8(ADC CH8 输入) 1 - P13 —————————————————————————————————————— 2 P12 功能选择 0 - AN9(ADC CH9 输入) 1 - P12 —————————————————————————————————————— 1 P11 功能选择 0 - AN10(ADC CH10 输入) 1 - P11 —————————————————————————————————————— 0 P10 功能选择 54 上海贝岭股份有限公司 BL23F30 0 - AN11(ADC CH11 输入) 1 - P10 —————————————————————————————————————— P2FUN P2 特殊功能选择寄存器:2043H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7 P27功能选择 0 - GAT输出 1 - P27 —————————————————————————————————————— 6 P26 功能选择 0 - GAB 输出 1 - P26 —————————————————————————————————————— 5 P25 功能选择 0 - GBT 输出 1 - P25 —————————————————————————————————————— 4 P24 功能选择 0 - GBB 输出 1 - P24 —————————————————————————————————————— 3 P23 功能选择 0 - GCT 输出 1 - P23 —————————————————————————————————————— 2 P22 功能选择 0 - GCB 输出 1 - P22 —————————————————————————————————————— 1 P21 功能选择 0 - PWM0 输出 1 - P21 —————————————————————————————————————— 0 P20 功能选择 0 - INT0 1 - P20 —————————————————————————————————————— P3FUN0 P3 特殊功能选择寄存器 0:2044H 55 初始值:FFH 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7:6 P33功能选择 0x - AN0(ADC CH0输入) 10 - SS0(SPI) 11 - P33 —————————————————————————————————————— 5:4 P32功能选择 0x - AN1(ADC CH1输入) 10 - SCK(SPI) 11 - P32 —————————————————————————————————————— 3:2 P31功能选择 00 - PGA1O 01 - AN2(ADC CH2输入) 10 - MOSI(SPI) 11 - P31MOSI(SPI) —————————————————————————————————————— 1:0 P30 功能选择 00 - AN3(ADC CH3 输入) 01 - PGA0O 10 - MISO(SPI) 11 - P30 —————————————————————————————————————— P3FUN1 P3 特殊功能选择寄存器 1:2045H 7 6 5 4 R/W R/W R/W R/W 初始值:FFH 3 2 1 0 - - - - R/W R/W R/W R/W —————————————————————————————————————— 6 P36 功能选择 0 - PGA0+(模拟输入) 1 - P36 —————————————————————————————————————— 5:4 P34 功能选择 0x - PGA1+(模拟输入) 10 - T2EX 11 - P34 —————————————————————————————————————— P4FUN P4 特殊功能选择寄存器:2046H 7 6 5 初始值:FFH 4 3 56 2 1 0 上海贝岭股份有限公司 BL23F30 - - - R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 4 P44 功能选择 0 - ADC_VREF 1 - P44 —————————————————————————————————————— 3 P43功能选择 0 - T2 1 - P43 —————————————————————————————————————— 2 P42 功能选择 0 - T1 1 - P42 —————————————————————————————————————— 1 P41 功能选择 0 - GOFF0 1 - P41 —————————————————————————————————————— 0 P40 功能选择 0 - PWM2 1 - P40 —————————————————————————————————————— P5FUN P5 特殊功能选择寄存器:2047H 初始值:FFH 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 7 P57 功能选择 0 - CKOUT 1 - P57 —————————————————————————————————————— 6 P56 功能选择 0 - TXD1 1 - P56 —————————————————————————————————————— 5 P55 功能选择 0 - RXD1 1 - P55 —————————————————————————————————————— 4 P54 功能选择 57 上海贝岭股份有限公司 BL23F30 0 - PWM1 1 - P54 —————————————————————————————————————— 3 P53功能选择 0 - CCU3 1 - P53 —————————————————————————————————————— 2 P52 功能选择 0 - CCU2 1 - P52 —————————————————————————————————————— 1 P51 功能选择 0 - CCU1 1 - P51 —————————————————————————————————————— 0 P50 功能选择 0 - CCU0 1 - P50 —————————————————————————————————————— GPIO_DS GPIO 驱动强弱选择寄存器:205H 7 6 - - R/W R/W 初始值:FFH 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 5 P50-P57 摆动速率选择 0 - 强 1 - 弱 —————————————————————————————————————— 4 P44-P47 摆动速率选择 0 - 强 1 - 弱 —————————————————————————————————————— 3 P30-P34、P36 摆动速率选择 0 - 强 1 - 弱 —————————————————————————————————————— 2 P20-P27 摆动速率选择 0 - 强 1 - 弱 —————————————————————————————————————— 1 P10-P17 摆动速率选择 0 - 强 1 - 弱 58 上海贝岭股份有限公司 BL23F30 —————————————————————————————————————— 0 P00-P07 摆动速率选择 0 - 强 1 - 弱 —————————————————————————————————————— GPIO_SR GPIO 摆动速率选择寄存器:2051H 7 6 - - R/W R/W 初始值:FFH 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W —————————————————————————————————————— 5 P50-P57 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 4 P44-P47 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 3 P30-P34、P36 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 2 P20-P27 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 1 P10-P17 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 0 P00-P07 摆动速率选择 0 - 快 1 - 慢 —————————————————————————————————————— 59 上海贝岭股份有限公司 BL23F30 9. 定时/计数器 定时/计数器 0 和定时/计数器 1 是两个 16 位定时器,与传 8051 的定时器完全兼容。 两个 16 位定时器 T0 和 Tl 都具有计数方式和定时方式两种工作方式。 定时/计数器 0,有 4 种工作模式,定时/计数器 1 有三种工作模式。 9.1. 定时/计数器 0 9.1.1. 模式 0 和模式 1 定时器 0 处于模式 0 和模式 1 9.1.2. 模式 2 定时器 0 处于模式 2 60 上海贝岭股份有限公司 BL23F30 9.1.3. 模式 3 定时器 0 处于模式 3 9.2. 定时/计数器 1 9.2.1. 模式 0 和模式 1 定时器 1 处于模式 0 和模式 1 9.2.2. 模式 2 定时器 1 处于模式 2 61 上海贝岭股份有限公司 BL23F30 9.2.3. 模式 3 此模式定时器 1 停止工作。 9.2.4. 定时器 0 和定时器 1 寄存器 TCON 定时器控制寄存器:88H 初始值:00H 7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 TF1 定时器 1 溢出标志。 当定时器 1 溢出时由硬件设置为 1。该标志可通过软件清除,当 CPU 转 至定时器 1中断服务程序时,该标志被自动清除。 ——————————————————————————————————————— 6 TR1 定时器 1 运行控制。 通过将此位设置为 1 允许定时器 1工作。 ——————————————————————————————————————— 5 TF0 定时器 0 溢出标志。 当定时器 0 溢出时由硬件设置为 1。该标志可通过软件清除。当 CPU 转 至定时器 0中断服务程序时,该标志被自动清除。 ——————————————————————————————————————— 4 TR0 定时器 0 运行控制。 通过将此位设置为 1 允许定时器 0工作。 ——————————————————————————————————————— 3 IE1 外部中断 1 请求标志。 当检测到一个由 IT1(TCON.2) 定义的中断类型(边沿/电平)时,该 标志由硬件设置。该标志可通过软件清除,但当在边缘触发模式下 CPU 转至外部中断 1 服务程序时,该标志被自动清除。 ——————————————————————————————————————— 2 IT1 外部中断 1触发方式。 此位选择配置 /INT1 中断是下降沿触发还是电平触发。0:/INT1 为 电平触发。1:/INT1 为下降沿触发。 ——————————————————————————————————————— 1 IE0 外部中断 0 请求标志。 当检测到一个由 IT0(TCON.0) 定义的中断类型(边沿/电平)时,该 标志由硬件设置。该标志可通过软件清除,但当在边缘触发模式下 CPU 转至外部中断 0 服务程序时,该标志被自动清除。 ——————————————————————————————————————— 0 IT0 外部中断 0 触发方式。 此位选择配置 /INT0 中断是下降沿触发还是电平触发。0:/INT0 为 电平触发。1:/INT0 为下降沿触发。 62 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— TMOD 定时器模式寄存器:89H 初始值:00H 7 6 5 4 3 2 1 0 GATE1 C/T1 M1 M0 GATE0 C/T0 M1 M0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 GATE1 定时器 1 门控制。 0:当 TR1 = 1 时定时器 1 允许,与 INT1 的逻辑电平无关。 1:仅当 TR1 = 1 并且 INT1 为高,定时器 1 在T1输入脚信号的下降 沿加1。 ——————————————————————————————————————— 6 C/T1 计数器/定时器 1 选择。 0:定时器:定时器 1 由 CKCON 寄存器中的 T1M 位定义的时钟加 1。 1:计数器:定时器 1 由外部针脚 (T1) 的负变跳加 1。 ——————————————————————————————————————— 5 T1M[1:0] 定时器 1 模式选择。这些位选择定时器 1 的操作模式。 4 00:模式 0, 13 位计数器/定时器 01:模式 1, 16 位计数器/定时器 10:模式2, 8 位自动重载计数器/定时器 11:模式 3,定时器 1 停止运行 ——————————————————————————————————————— 3 GATE0 定时器 0 门控制。 0:当 TR0 = 1 时定时器 0 被允许,与 INT0 的逻辑电平无关。 1:仅当 TR0 = 1 并且 INT0 为高,定时器 0 在T0输入脚信号的下降 沿加1。 ——————————————————————————————————————— 2 C/T0 计数器/定时器 0 选择。 0:定时器:定时器 0 由 CKCON 寄存器中的 T0M 位定义的时钟加 1。 1:计数器:定时器 0 由外部针脚 (T0) 的负变跳加 1。 ——————————————————————————————————————— 1 T0M[1:0] 定时器 0 模式选择。这些位选择定时器 0 的操作模式。 0 00:模式 0, 13 位计数器/定时器 01:模式 1, 16 位计数器/定时器 10:模式2, 8 位自动重载计数器/定时器 11:模式 3,两个 8 位计数器/定时器 ——————————————————————————————————————— TL0 定时器 0 低 8 位数据寄存器:8AH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W TH0 定时器 0 高 8 位数据寄存器:8BH 初始值:00H 63 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W TL1 定时器 1 低 8 位数据寄存器:8CH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W TH1 定时器 1 高 8 位数据寄存器:8DH 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W 1 0 T0PSR 定时器 0 输入时钟预分频寄存器:A5H 7 6 5 4 初始值:00H 3 2 T0CKP R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2:0 T0CKP Timer0输入时钟预分频 000: Fosc/1 001: Fosc/2 010: Fosc/4 011: Fosc/8 100: Fosc/16 101: Fosc/32 110: Fosc/64 111: Fosc/128 ——————————————————————————————————————— T1PSR 定时器 1 输入时钟预分频寄存器:A6H 7 6 5 4 初始值:00H 3 2 1 0 T0CKP R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2:0 T1CKP Timer1输入时钟预分频 000: Fosc/1 001: Fosc/2 010: Fosc/4 011: Fosc/8 100: Fosc/16 101: Fosc/32 110: Fosc/64 64 上海贝岭股份有限公司 BL23F30 111: Fosc/128 ——————————————————————————————————————— IP - 中断优先级寄存器:B8H PT1(IP.3) 定时器1溢出中断优先级。 PX1(IP.2) 外部中断1优先级。 PT0(IP.1) 定时器0溢出中断优先级。 PX0(IP.0) 外部中断0优先级。 9.3. 定时/计数器 2 定时器 2 可以作为定时器、计数器或门控定时器。 定时器 2 包括比较/捕捉单元。 定时器 2 结构图 9.3.1. 定时模式 这种模式通过设置 T2CON 中标志位”T2I0=1”和”T2I1=0””建立。在此模式下,计数频率 由 T2CON 中的 T2PS 位决定。 9.3.2. 事件计数模式 这种模式通过设置 T2CON 中标志位“T2I0=0” 和“T2I1=1”建立。在此模式下,外 部信号“T2”从 1 变到 0,定时器 2 加 1。“T2”输入在每个时钟的上升沿采样,定时器 2 是在检测到下一个周期信号翻转后递增。最大计数速率是时钟频率的一半。 65 上海贝岭股份有限公司 BL23F30 9.3.3. 门控定时模式 此模式通过设置 T2CON 中“T2I0=1”和“T2I1=1”建立。在这种模式下,定时器 2 每 12 或 24 个时钟(取决于“T2PS”标志)递增。另一个,它是由外部信号“T2”选通,当“T2=0” 时,定时器 2 停止。 9.3.4. 定时器 2 重载 一个16位重载“CRC”寄存器(2.4.22)可以在两种模式下执行: 模式0:重载信号是定时器2溢出(自动重装) 模式1:重载信号是相应的输入脚T2EX“所产生的负跳变”。 定时器 2 重载模式 9.3.5. 比较功能 比较/捕捉单元由CRC、CC1、CC2、CC3四个寄存器组成。这些寄存器可以配 置为比较工作模式。在这种模式下,寄存器的值与定时器2的值比较。比较器的 输出驱动P1端口的低四位: P1.0比较输出与寄存器CRC对应。 P1.1比较输出与寄存器CC1对应。 P1.2比较输出与寄存器CC2对应。 P1.3比较输出与寄存器CC3对应。 T2CON寄存器中的T2CM选择两种比较模式。 66 上海贝岭股份有限公司 9.3.5.1. BL23F30 比较模式 0 “T2CM=0”设定比较模式0,在模式0中,当定时器2的值等于的比较寄存器 的值,比较器的输出电平从低变化到高;定时器2溢出恢复输出电平到低。在这 种模式下,写对应的端口(P1.0、P1.1、P1.2、P1.3)不影响端口的状态,因为从 内部总线与写入寄存器输入线断开。此模式可用于产生 PWM 输出。下图说明了功 能比较模式0。 定时器比较模式 0 定时器比较模式操作时序 9.3.5.2. 比较模式 1 “T2CM=1”设置比较模式 1。在比较模式 1,定时器 2 溢出不会引起输出变化。在这种模式 下的输出信号翻转可以由软件控制。下图显示了在一个寄存器端口配置功能图比较模式 1。 67 上海贝岭股份有限公司 BL23F30 在比较模式 1,输出值第一次写入“影子寄存器(与 CCU 口共用地址)”,当比较信 号有效,这个值被传送到输出寄存器。 定时器 2 处于比较模式 1 CCU 口结构图 9.3.6. 捕捉功能 每四个16位寄存器可以配置 CCU 工作于捕捉模式。在这种模式下,外部事 件(模式0)或软件写操作(模式1)把定时器/计数器的内容保存到 CCU 寄存器。 68 上海贝岭股份有限公司 BL23F30 定时器 2 处于捕捉模式 捕捉模式 0 9.3.6.1. 在模式 0,捕捉定时器 2 内容由以下条件执行: - 在输入端口 CC1 检测到上升沿跳变(CC1 工作于捕捉模式) - 在输入端口 CC2 检测到上升沿跳变(CC2 工作于捕捉模式) - 在输入端口 CC3 检测到上升沿跳变(CC3 工作于捕捉模式) - 根据 I3FR 设置,在输入端口 CC0 检测到上升或下降沿跳变(CC0CC3 工作于捕捉模式) 定时器 2 的内容将被锁定到相应的捕捉寄存器。在这种模式下,在这种模式下,无中断请 求产生。 捕捉模式 1 9.3.6.2. 在模式 1,任何写入专用捕捉寄存器的低位字节引起定时器 2 内容捕捉。这个功能与写入捕捉寄 存器的值无关。定时器 2 的内容将被锁定到专用捕捉寄存器。在这种模式下,无中断请求产生。 9.3.7. 定时器 2 寄存器 T2CON 定时器 2 控制寄存器:C8H 初始值:00H 7 6 5 4 3 2 1 0 T2PS I3FR - T2R1 T2R0 T2CM T2I1 T2I0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 定时器 2 预分频选择。 7 T2PS 0:定时器 2 时钟频率是主振的 12 分频。 1:定时器 2 时钟频率是主振的 24 分频。 ——————————————————————————————————————— 外部中断 3 有效边沿选择。也用于比较/捕捉信号。 6 I3FR 69 上海贝岭股份有限公司 BL23F30 0 – 下降沿 1 – 上升沿 ——————————————————————————————————————— 4 T2R1:T2R0 定时器 2 重载模式选择。 3 0X – 重载禁止 10 – 模式 0 11 – 模式 1 ——————————————————————————————————————— 定时器 2 比较模式选择。 2 T2CM 0 – 模式 0 1 – 模式 1 ——————————————————————————————————————— 1 T2I1:T2I0 定时器 2 输入选择。 0 00 定时器 2 停止 01 输入系统时钟的 12 分频或 24 分频 10 定时器 2 在 T2EX 输入的下降沿增 1 11 T2EX 输入频率的 12 分频或 24 分频 ——————————————————————————————————————— TL2 定时器 2 低 8 位数据寄存器:CCH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W TH2 定时器 2 高 8 位数据寄存器:CDH 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W CCEN 比较/捕捉使能存器:C1H 初始值:00H 7 6 5 4 3 2 1 0 COCAH3 COCAL3 COCAH2 COCAL2 COCAH1 COCAL1 COCAH0 COCAL0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 COCAH3:COCAL3 CC3 寄存器比较/捕捉模式。 6 00:比较/捕捉禁止。 01:CC0 上升沿产生捕捉。 10:比较使能。 11:写 CCL3 寄存器产生捕捉。 ——————————————————————————————————————— 5 COCAH2:COCAL2 CC2 寄存器比较/捕捉模式。 4 00:比较/捕捉禁止。 01:CC1 上升沿产生捕捉。 10:比较使能。 70 上海贝岭股份有限公司 BL23F30 11:写 CCL2 寄存器产生捕捉。 ——————————————————————————————————————— 3 COCAH1:COCAL1 CC1 寄存器比较/捕捉模式。 2 00:比较/捕捉禁止。 01:CC2 上升沿产生捕捉。 10:比较使能。 11:写 CCL1 寄存器产生捕捉。 ——————————————————————————————————————— 1 COCAH0:COCAL0 CRC 寄存器比较/捕捉模式。 0 00:比较/捕捉禁止。 01:CC3 上升沿产生捕捉。 10:比较使能。 11:写 CRCL 寄存器产生捕捉。 ——————————————————————————————————————— CCL1 比较/捕捉寄存器CC1低 8 位:C2H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W CCH1 比较/捕捉寄存器CC1高 8 位:C3H 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W CCL2 比较/捕捉寄存器CC2低 8 位:C4H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W CCH2 比较/捕捉寄存器CC2高 8 位:C5H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W CCL3 比较/捕捉寄存器CC3低 8 位:C6H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W CCH3 比较/捕捉寄存器CC3高 8 位:C7H 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 71 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W CRCL 定时器 2 重载数据寄存器低 8 位:CAH R/W R/W R/W 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W CRCH 定时器 2 重载数据寄存器高 8 位:CBH 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W IE 中断使能寄存器:A8H - ET2(IE.5) 定时器 2 中断使能 9.4. 独立脉冲宽度调制器 PWM0 16 位 PWM 定时器,可设置周期、占空比,可产生周期匹配中断和占空比匹配中断,可 连续工作或单次触发工作。脉冲调制信号通过 PWM0 端口输出。 可触发 AD 启动:PWM0 占空比中断触发,PWM0 顶部中断触发,PWM0 底部中断触发。 9.4.1.PWM0 计数时钟 PWM0 的计数时钟分两种,一种是 TIMER2 溢出(T2OV),一种是系统主时钟;计数 时钟的选择可以根据寄存器 PWM0_CTRL2.5 进行选择。 9.4.2.PWM0 工作模式 PWM0 的工作模式有单次模式和连续模式,根据 PWM0_CTRL2.4 进行设置。 单次模式 PWM0 只输出一个 PWM 周期;连续模式 PWM0 连续输出 PWM 波形。 9.4.3.PWM0 计数模式 PWM0 包含三角波计数和锯齿波计数两种方式,可根据 PWM0_CTRL2.3 进行设置。 72 上海贝岭股份有限公司 9.4.3.1. BL23F30 三角波计数方式:(假设周期设置为 M,占空比设置为 N)。 单次模式(PWM0_EN 使能后): 连续模式(PWM0_EN 使能后): 综上,三角波计数时的周期占空比 2 N N ; 下降部分(M-1~0)和上升部分(1~M), 2M M 占空比均为 N/M。 当 N=0 时,PWM 输出为 0;占空比为 0%。 当 N>= M 时,PWM 输出为 1;占空比为 100%。 9.4.3.2. 锯齿波计数方式:(假设周期设置为 M,占空比设置为 N) 单次模式(PWM0_EN 使能后): 73 上海贝岭股份有限公司 BL23F30 连续模式(PWM0_EN 使能后): 综上,锯齿波计数时的周期占空比= N/M; (同三角波计数时的下降部分(M-1~0)); 当 N=0 时,pwm 输出为 0;占空比为 0%。 当 N>= M 时,pwm 输出为 1;占空比为 100%。 9.4.4.PWM0 更新方式 PWM0 周期和占空比的更新方式有 2 种:计数顶部(Top)更新或者计数底部(Bottom)更新。 当三角波计数方式时,可以底部更新,也可以顶部更新;如下图: Update at top cycle2 Pwm_cnt cycle1 dc2 dc1 0 Pwm0 当锯齿波计数方式时,只能底部更新;如下图: 74 上海贝岭股份有限公司 BL23F30 9.4.5.PWM0 中断 PWM0 的中断根据计数方式的不同也有不同方式。 对于三角波计数方式:有计数顶部(Top),计数底部(Bottom)和占空比(DC)三种不同的中 断。如下图: 注: M 不可设置为 0 当 N>M 时,没有占空比中断; 当 N=M 时,则占空比中断和计数顶部中断在相同位置; 当 N=0 时,则占空比中断和计数底部中断在相同位置; 对于锯齿波计数方式:只有计数底部(Bottom)和占空比(DC)两种中断,没有计数顶部 (Top)中断。如下图: 75 上海贝岭股份有限公司 BL23F30 注: M 不可设置为 0 当 N>=M 时,没有占空比中断。 当 N=0 时,则占空比中断和计数底部中断在相同位置。 最终 PWM0 的中断为计数顶部(Top),计数底部(Bottom)和占空比(DC)三中断的相或。 所有中断均有相应的使能控制。硬件置位,软件清 0。 所有的中断产生条件中除了中断允许外,还必须 PWM0_EN=1。 对于计数暂停功能,正好在中断位置暂停,中断标志若清了,PWM 还在暂停处,则还 会产生同样的中断。 9.4.6. PWM0 控制寄存器 PWM0_CYC_H PWM0周期设置寄存器高 8 位:2100H 初值:FFH 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM0_CYC_L PWM0周期设置寄存器低 8 位:2101H 初值:FFH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 周期不能设置为 0000H。 PWM0_DC_H PWM0占空比设置寄存器高 8 位:2102H 初值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM0_DC_L PWM0占空比设置寄存器低 8 位:2103H 7 6 5 4 3 76 初值:00H 2 1 0 上海贝岭股份有限公司 BL23F30 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W PWM0 占空比设置。注意:当设置占空比 = 0 时,PWM0 输出为 0;当设置占空比≥周期 时,PWM0 输出 1。 初值:00H PWM0_CTRL1 PWM0控制寄存器1:2104H 7 6 5 4 3 2 1 0 PWM0_EN PWM0_PA - - - - - - R/W R/W R/W R/W R/W R/W USE R/W R/W ——————————————————————————————————————— 7 PWM0_EN PWM0 使能控制 1 - 使能, 开始 PWM 计数。 0 - 停止 PWM,计数器清 0。 对于单次触发,PWM 只计一个周期;对于连续 PWM,该位为 1 时, 连续 PWM 计数。 ——————————————————————————————————————— 6 PWM0_PAUSE PWM 暂停/继续控制。 1 - 暂停 PWM,计数器保持原有值。 0 - 继续 PWM,计数器继续计数。 ——————————————————————————————————————— 初值:00H PWM0_CTRL2 PWM0控制寄存器2:2105H 7 6 5 4 3 2 1 0 - - CLK_SE L WORK_ MODE CNT_M ODE UPDATE _AT_TO P UPDATE _AT_BO T - R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5 CLKSEL PWM0 时钟源选择;(必须在 PWM0_EN=0 时候配置) 0 - 主时钟,根据 CLK_CTRL 选择。 1 - 定时器 2 溢出作为时钟。 ——————————————————————————————————————— 工作模式选择:(必须在 PWM_EN=0 时候配置) 4 WORK_MODE 1 - 单次触发模式。 0 - 连续工作模式。 ——————————————————————————————————————— 计数模式:(必须在 PWM_EN=0 时候配置) 3 CNT_MODE 0 - 锯齿波模式。 1 - 三角波模式(与 MPWM 相同)。 ——————————————————————————————————————— 2 UPDATE_AT_TOP 计数顶部(TOP:计数值=当前周期设置值)时,更新(周期和占空比) 使能。 1 - 使能。 77 上海贝岭股份有限公司 BL23F30 0 - 禁止。 ——————————————————————————————————————— 1 UPDATE_AT_BOT 计数低部(BOT:计数值=0)时,更新(周期和占空比)使能; 1 - 使能。 0 - 禁止。 ——————————————————————————————————————— PWM0_INT_EN PWM0中断控制寄存器:E5H 初值:00H 7 6 5 4 3 2 1 0 - - - - - DC_INT _EN TOP_INT _EN BOT_IN T_EN R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_EN PWM0 占空比匹配(计数器值=占空比设置值)中断使能。 1-使能。 0-禁止。 ——————————————————————————————————————— 1 TOP_INT_EN PWM0 顶部(计数器值=周期值)中断使能控制 1-使能 0-禁止 ——————————————————————————————————————— 0 BOT_INT_EN PWM0 低部(计数器值=0)中断允许控制 1-使能 0-禁止 ——————————————————————————————————————— 注意:使用上面中断同时必须打开 IEN2.3 初值:00H PWM0_INT_FLG PWM0中断标志寄存器:E6H 7 6 5 4 3 2 1 0 - - - - - DC_INT _FLG TOP_INT _FLG BOT_IN T_FLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_FLG PWM0 占空比匹配中断标志,硬件置位,软件清 0。 ——————————————————————————————————————— 1 TOP_INT_FLG PWM0 顶部中断标志,硬件置位,软件清 0。对于锯齿波计数方式, 无顶部中断,因此该位无效,一直为 0。 ——————————————————————————————————————— 0 BOT_INT_FLG PWM0 底部中断标志(只有中心对齐模式才有效),硬件置位,软件清 0。 ——————————————————————————————————————— 78 上海贝岭股份有限公司 BL23F30 9.5. 独立脉冲宽度调制器 PWM1、PWM2 8 位 PWM 定时器,可设置周期、占空比,可产生周期匹配中断和占空比匹配中断,可 连续工作或单次触发工作。脉冲调制信号通过 PWM0、PWM1 端口输出。 9.5.1. PWM1 控制寄存器 初值:FFH PWM1_CYC PWM1周期设置寄存器:2200H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W 周期不能设置为 00H。 初值:00H PWM1_DC PWM1占空比设置寄存器:2201H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM1 占空比设置。注意:当设置占空比 = 0 时,PWM1 输出为 0;当设置占空比≥周期 时,PWM1 输出 1。 初值:00H PWM1_CTRL1 PWM1控制寄存器1:2202H 7 6 5 4 3 2 1 0 PWM1_EN PWM1_PA - - PREDIV3 PREDIV2 PREDIV1 PREDIV0 R/W R/W R/W R/W R/W R/W USE R/W R/W ——————————————————————————————————————— 7 PWM1_EN PWM 使能控制 1 - 使能, 开始 PWM 计数。 0 - 停止 PWM,计数器清 0。 对于单次触发,PWM 只计一个周期;对于连续 PWM,该位为 1 时, 连续 PWM 计数。 ——————————————————————————————————————— 6 PWM1_PAUSE PWM 暂停/继续控制。 1 - 暂停 PWM,计数器保持原有值。 0 - 继续 PWM,计数器继续计数。 ——————————————————————————————————————— 3:0 PREDIV PWM 计数 60MHz 时钟预分频控制。 1~12,2PREDIV 分频。 其他值没有预分频,用 60MHz 时钟。 ——————————————————————————————————————— 79 上海贝岭股份有限公司 BL23F30 初值:00H PWM1_CTRL2 PWM1控制寄存器2:2203H 7 6 5 4 3 2 1 0 - - - WORK_ MODE CNT_M ODE UPDATE _AT_TO P UPDATE _AT_BO T - R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 4 WORK_MODE 工作模式选择:(必须在 PWM_EN=0 时候配置) 1 - 单次触发模式。 0 - 连续工作模式。 ——————————————————————————————————————— 3 CNT_MODE 计数模式:(必须在 PWM_EN=0 时候配置) 0 - 锯齿波模式。 1 - 三角波模式(与 MPWM 相同)。 ——————————————————————————————————————— 2 UPDATE_AT_TOP 计数顶部(TOP:计数值=当前周期设置值)时,更新(周期和占空比) 使能。 1 - 使能。 0 - 禁止。 ——————————————————————————————————————— 1 UPDATE_AT_BOT 计数低部(BOT:计数值=0)时,更新(周期和占空比)使能; 1 - 使能。 0 - 禁止。 ——————————————————————————————————————— 初值:00H PWM1_INT_EN PWM1中断控制寄存器:2204H 7 6 5 4 3 2 1 0 - - - - - DC_INT _EN TOP_INT _EN BOT_IN T_EN R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_EN PWM1 占空比匹配(计数器值=占空比设置值)中断使能。 1-使能。 0-禁止。 ——————————————————————————————————————— 1 TOP_INT_EN PWM1 顶部(计数器值=周期值)中断使能控制 1-使能 0-禁止 ——————————————————————————————————————— 0 BOT_INT_EN PWM1 低部(计数器值=0)中断允许控制 1-使能 80 上海贝岭股份有限公司 BL23F30 0-禁止 ——————————————————————————————————————— 注意:使用上面中断同时必须打开 IEN2.3 初值:00H PWM1_INT_FLG PWM1中断标志寄存器:2205H 7 6 5 4 3 2 1 0 - - - - - DC_INT _FLG TOP_INT _FLG BOT_IN T_FLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_FLG PWM1 占空比匹配中断标志,硬件置位,软件清 0。 ——————————————————————————————————————— 1 TOP_INT_FLG PWM1 顶部中断标志,硬件置位,软件清 0。对于锯齿波计数方式, 无顶部中断,因此该位无效,一直为 0。 ——————————————————————————————————————— 0 BOT_INT_FLG PWM1 底部中断标志(只有中心对齐模式才有效),硬件置位,软件清 0。 ——————————————————————————————————————— 9.5.2. PWM2 控制寄存器 初值:FFH PWM2_CYC PWM2周期设置寄存器:2300H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W 周期不能设置为 00H。 初值:00H PWM2_DC PWM2占空比设置寄存器:2301H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM1 占空比设置。注意:当设置占空比 = 0 时,PWM1 输出为 0;当设置占空比≥周期 时,PWM1 输出 1。 初值:00H PWM2_CTRL1 PWM2控制寄存器1:2302H 7 6 5 4 3 2 1 0 PWM2_EN PWM2_PA - - PREDIV3 PREDIV2 PREDIV1 PREDIV0 R/W R/W R/W R/W R/W R/W USE R/W R/W ——————————————————————————————————————— 7 PWM2_EN PWM 使能控制 1 - 使能, 开始 PWM 计数。 81 上海贝岭股份有限公司 BL23F30 0 - 停止 PWM,计数器清 0。 对于单次触发,PWM 只计一个周期;对于连续 PWM,该位为 1 时, 连续 PWM 计数。 ——————————————————————————————————————— 6 PWM2_PAUSE PWM 暂停/继续控制。 1 - 暂停 PWM,计数器保持原有值。 0 - 继续 PWM,计数器继续计数。 ——————————————————————————————————————— 3:0 PREDIV PWM 计数 60MHz 时钟预分频控制。 1~12,2PREDIV 分频。 其他值没有预分频,用 60MHz 时钟。 ——————————————————————————————————————— 初值:00H PWM2_CTRL2 PWM2控制寄存器2:2303H 7 6 5 4 3 2 1 0 - - - WORK_ MODE CNT_M ODE UPDATE _AT_TO P UPDATE _AT_BO T - R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 4 WORK_MODE 工作模式选择:(必须在 PWM_EN=0 时候配置) 1 - 单次触发模式。 0 - 连续工作模式。 ——————————————————————————————————————— 3 CNT_MODE 计数模式:(必须在 PWM_EN=0 时候配置) 0 - 锯齿波模式。 1 - 三角波模式(与 MPWM 相同)。 ——————————————————————————————————————— 2 UPDATE_AT_TOP 计数顶部(TOP:计数值=当前周期设置值)时,更新(周期和占空比) 使能。 1 - 使能。 0 - 禁止。 ——————————————————————————————————————— 1 UPDATE_AT_BOT 计数低部(BOT:计数值=0)时,更新(周期和占空比)使能; 1 - 使能。 0 - 禁止。 ——————————————————————————————————————— 初值:00H PWM2_INT_EN PWM2中断控制寄存器:2304H 7 6 5 4 3 2 1 0 - - - - - DC_INT TOP_INT BOT_IN 82 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W _EN _EN T_EN R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_EN PWM2 占空比匹配(计数器值=占空比设置值)中断使能。 1-使能。 0-禁止。 ——————————————————————————————————————— 1 TOP_INT_EN PWM2 顶部(计数器值=周期值)中断使能控制 1-使能 0-禁止 ——————————————————————————————————————— 0 BOT_INT_EN PWM2 低部(计数器值=0)中断允许控制 1-使能 0-禁止 ——————————————————————————————————————— 注意:使用上面中断同时必须打开 IEN2.3 初值:00H PWM1_INT_FLG PWM1中断标志寄存器:2205H 7 6 5 4 3 2 1 0 - - - - - DC_INT _FLG TOP_INT _FLG BOT_IN T_FLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 2 DC_INT_FLG PWM2 占空比匹配中断标志,硬件置位,软件清 0。 ——————————————————————————————————————— 1 TOP_INT_FLG PWM2 顶部中断标志,硬件置位,软件清 0。对于锯齿波计数方式, 无顶部中断,因此该位无效,一直为 0。 ——————————————————————————————————————— 0 BOT_INT_FLG PWM2 底部中断标志(只有中心对齐模式才有效),硬件置位,软件清 0。 ——————————————————————————————————————— 9.6. 看门狗(Watch-dog) 看门狗定时器由 15 位计数器(非 SFR)、重载寄存器(WDTREL)、2/16 的预分频器 和控制逻辑组成。看门狗定时器的计数速率取决于 WDTREL 寄存器最高位。当 WDTREL 最 高位为 1,看门狗定时器每递增 1232 = 384 个时钟周期,这使得整个周期为 12×32× 256×128=12582912 个时钟周期长。当 WDTREL 为 0,看门狗定时器每递增 12×2=24 个时钟周期,这使得整个周期为 12×2×256×128=786432 个时钟周期长。当 WDT_TM 测试模式的输入设置为 1,看门狗定时器的输入时钟分频(所有分频 1/12、1/8、1/16) 被忽略,缩短看门狗溢出所需的时间。 83 上海贝岭股份有限公司 BL23F30 有两种方法来启动看门狗。一种方法,称为硬件自动启动,是基于对 SWD 输入信号电 平在外部有效复位信号。当 SWD 高直到复位信号变低,在复位后,看门狗定时器自动默认 启动(所有的寄存器设置为零)。启动看门狗定时器,另一种是由软件。设置 SWDT 标志 (IEN1.6,IEN1 寄存器的第六位)启动看门狗定时器。设置 SWDT 标志只启动看门狗定时 器,不重载看门狗定时器。一旦开始,看门狗定时器只能被 SWD 和复位引脚硬件复位强迫 停止。当看门狗计数器计从 7FFFH 溢出到 0000H,产生内部复位。WDTS 标志(IP0.6,IP0 寄存器第六位)被硬件设置,外部复位信号消失后清除。WDTS 信号不复位看门狗,它一直 维持。WDTS 标志是为了让软件判断复位是由外部引脚复位或看门狗超时复位。WDTS 标志 也可以由软件清除。 看门 狗开启后 ,必须定 期刷新防 止复位, 首先设置 WDTWDT(IEN0.6),然后 设置 SWDT(IEN1.6)。WDTEEL 值越小,超时复位时间越长;WDTREL 值 7FH,超时复位时间最 短。刷新看门狗 C 程序如下: sfr IEN0 = 0xA8; sfr IEN1 = 0xB8; sbit WDT = IEN0^6; sbit SWDT = IEN1^6; #define CLRWDT() { WDT = 1; SWDT = 1; } 如果单片机处于停止(STOP)模式,WDT 超时事件将唤醒单片机并使其继续执行 STOP 后 面 的 指 令 。 通 过 将 配 置 位 WDTE 清 0/ 置 1 , 可 关 闭 / 打 开 WDT 。 9.6.1. 看门狗寄存器 标识符 功能 地址 初始值 WDTREL 看门狗控制寄存器 86H 00H IE 中断使能寄存器 A8H 00H IEN1 中断使能寄存器 1 B8H 00H WDTREL 看门狗控制寄存器:86H 7 6 5 4 3 WDTPS WDTRV 84 2 1 0 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 看门狗定时器输入时钟分频选择 7 WDTPS 1 – 看门狗定时器输入时钟被 16 分频 0 – 无分频 ——————————————————————————————————————— 看门狗定时器重载值 6 WDTRV 看门狗最高 7 位的重载值。当 WDT(IE.6)=1 并且 WDT(IEN1.6)=1, 一个刷新出现重载值装载到看门狗定时器。 ——————————————————————————————————————— IEN0 中断使能寄存器 0:A8H - WDT(IEN0.6) 看门狗定时器刷新标志 IEN1 中断使能寄存器 1:B8H - SWDT(IP.6) Watchdog定时器“启动/刷新”标志。 PCON 电源控制寄存器:87H - WDTTM(PCON.6) 看门狗测试模式标志 85 上海贝岭股份有限公司 BL23F30 10. 变频马达控制功能 此功能内建一个 16 位电机控制 PWM 模块。PWM 模块由时基模块、波形发生模块、死区 和极性控制模块,故障检测以及输出控制模块组成。 时基模块中通过一个 16 位计数器对 PWM 时钟计数,用该计数器的值与周期寄存器比较 以产生周期匹配信号与周期重启信号、与占空比寄存器比较以产生占空比匹配信号,与 PWM_CM 寄存器比较以产生周期中任意点匹配信号,可产生 6 路原始 PWM 信号,该原始 PWM 信号经过死区和极性控制模块后产生带死区和极性的 PWM 信号,最后的输出控制模块和故障 检测模块决定是否将对应的信号输出至 PWM 引脚上。 保护模块可以使能或禁止,可以使能比较器保护、引脚 GOFF0、引脚 GOFF1 输入有效沿 触发六路 PWM 输出引脚高阻。 10.1. 脉冲宽度调制定时器(MPWM) 1.三路互补输出PWM定时器 2.输入时钟频率最高:60MHz 3.16位分辨率的PWM信号,可以设置周期、占空比。 4.可进行0% - 100%输出 5.三角波调制(中心对齐模式) 6.死区时间设定 7.启动AD转换功能,MPWM周期计数器值和PWM_CMx值匹配时中断触发ADC,MPWM占 空比中断触发,MPWM顶部中断触发,MPWM底部中断触发。 8.PWM一个周期启动同步消隐延时时间设定 9.模拟比较器输出高电平可强制IO口(GAT、GAB、GBT、GBB、GCT、GCB)为高阻 10.外部高电平信号加到GOFF端口,可强制IO口(GAT、GAB、GBT、GBB、GCT、GCB) 为高阻。 11.互补输出每个端口可正反向设置 12.互补输出每个端口可设置高端PWM输出、低端PWM输出、高低端同时PWM输出 13.Duty带Buffer,Buffer可用户程序更新。Duty Buffer内容在PWM开始中点(中 心对齐模式)写入Duty比较器。 14.在Duty中点产生中断;Duty 结束产生中断;这些信号可屏蔽,可启动AD转换。 15.可工作于连续输出模式或单次触发输出模式 10.1.1. MPWM 计数时钟 MPWM 的计数时钟分两种,一种是 TIMER2 溢出(T2OV),一种是系统主时钟;计 数时钟的选择可以根据寄存器 PWM_CTRL2.5 进行选择。 86 上海贝岭股份有限公司 10.1.2. BL23F30 MPWM 工作模式 MPWM 的工作模式有单次模式和连续模式,根据 PWM_CTRL2.4 进行设置。 单次模式 MPWM 只输出一个 PWM 周期;连续模式 MPWM 连续输出 PWM 波形。 10.1.3. MPWM 计数模式 MPWM 只有三角波计数方式。 10.1.3.1. 三角波计数方式:(假设周期设置为 M,占空比设置为 N)。 单次模式(PWM_EN 使能后): 连续模式(PWM_EN 使能后): 综上,三角波计数时的周期占空比 2 N N ; 下降部分(M-1~0)和上升部分(1~M), 2M M 占空比均为 N/M。 当 N=0 时,PWM 输出为 0;占空比为 0%。 当 N>= M 时,PWM 输出为 1;占空比为 100%。 87 上海贝岭股份有限公司 10.1.4. BL23F30 MPWM 更新方式 MPWM 周期和占空比的更新方式有 2 种:计数顶部(Top)更新或者计数底部(Bottom)更 新。如下图: Update at top cycle2 Pwm_cnt cycle1 dc2 dc1 0 Pwm0 10.1.5. MPWM 中断 MPWM 的中断有计数顶部(Top),计数底部(Bottom)和占空比(DC)三种不同的中断。如 下图: 88 上海贝岭股份有限公司 BL23F30 注: M 不可设置为 0 当 N>M 时,没有占空比中断; 当 N=M 时,则占空比中断和计数顶部中断在相同位置; 当 N=0 时,则占空比中断和计数底部中断在相同位置; 10.2. 消隐 10.3. 死区插入电路 死区插入设计的目的:死区插入电路确保外部门驱动电路晶体管对在转态时不会 瞬间导通( 上下臂MOS 都开启),产生短路电流。为了消除这种危险,设计了一段死区 时间,确保输出转态的过程中,两个晶体管都处于不导通的状态。死区时间要控制在 0.3μs ~ 5μs 左右。 在上升沿插入死区,下降沿不需要。 89 上海贝岭股份有限公司 BL23F30 10.4. 极性电路 利用PLC寄存器可决定GAT、GAB、GBT、GBB、GCT、GCB输出有效电平,以支持 外部门驱动电路多种接口电平选择。 GAT、GAB、GBT、GBB、GCT、GCB输出引脚复位默认值是高阻。 10.5. MPWM 的控制寄存器 PWM_CYC_H PWM 周期设置寄存器高 8 位:FAH 初始值:FFH 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM_CYC_L PWM 周期设置寄存器低 8 位:F9H 初始值:FFH 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 设置周期顺序是先高字节后低字节,也可只配置低字节。 PWM_DC1_H PWM 通道 1 占空比设置寄存器高 8 位:F2H 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 90 上海贝岭股份有限公司 R/W R/W BL23F30 R/W R/W R/W R/W PWM_DC1_L PWM 通道 1 占空比设置寄存器低 8 位:F1H R/W R/W 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 设置 PWM 通道 1 占空比。注意:当设置占空比 = 0 时,PWM 输出出为 0;当设置占空比 ≥ 周期时,PWM 输出。 PWM_DC2_H PWM 通道 2 占空比设置寄存器高 8 位:F4H 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM_DC2_L PWM 通道 2 占空比设置寄存器低 8 位:F3H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 设置 PWM 通道 2 占空比。注意:当设置占空比 = 0 时,PWM 输出出为 0;当设置占空比 ≥ 周期时,PWM 输出。 PWM_DC3_H PWM 通道 3 占空比设置寄存器高 8 位:F6H 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM_DC3_L PWM 通道 3 占空比设置寄存器低 8 位:F5H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 设置 PWM 通道 3 占空比。注意:当设置占空比 = 0 时,PWM 输出出为 0;当设置占空比 ≥ 周期时,PWM 输出。 PWM_CM1_H PWM 比较 1 设置寄存器高 8 位:FCH 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM_CM1_L PWM 比较 1 设置寄存器低 8 位:FBH 91 初始值:00H 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W PWM 比较值 1 设置,周期计数器值与比较值匹配,可触发 ADC。详见寄存器 PWM_CTRL2[7:6](TRIG_ADC_CTRL)说明。 PWM_CM2_H PWM 比较 2 设置寄存器高 8 位:FEH 初始值:00H 7 6 5 4 3 2 1 0 D15 D14 D13 D12 D11 D10 D9 D8 R/W R/W R/W R/W R/W R/W R/W R/W PWM_CM2_L PWM 比较 2 设置寄存器低 8 位:FDH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W PWM 比较值 1 设置,周期计数器值与比较值匹配,可触发 ADC。详见寄存器 PWM_CTRL2[7:6](TRIG_ADC_CTRL)说明。 PWM_CTRL1 PWM 控制寄存器 1:A7H 初始值:00H 7 6 5 4 3 2 1 0 PWM_EN PWM_PAUSE - - - - - - R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 PWM_EN PWM 使能控制 0 停止 PWM,计数器清零 1 使能 PWM,开始 PWM 计数 ——————————————————————————————————————— 6 PWM_PAUSE 0 PWM 继续工作,计数器继续计数 1 暂停 PWM 计数,计数器保持原有值,PWM 输出保持先前状态 ——————————————————————————————————————— PWM_CTRL2 PWM 控制寄存器 2:9FH 7 6 TRIG_ADC_CTRL R/W R/W 初始值:00H 5 4 3 2 1 0 CLK_SEL WORK_MO DE - UPDATE _AT_TO P UPDATE _AT_BO T - R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:6 TRIG_ADC_CTRL 00-不触发 ADC 01-周期计数器值和 PWM_CM1 值匹配时触发 ADC 10-周期计数器值和 PWM_CM2 值匹配时触发 ADC 11-PWM_CM1,PWM_CM2 匹配时均触发 ADC (注:触发 adc 的控制和 cm1,cm2 的中断无关;) 92 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— 5 CLK_SEL MPWM 时钟源选择;(必须在 PWM_EN=0 时候配置) 0-主时钟,根据 CLK_CTRL 控制 1-定时器 2 溢出作为时钟 ——————————————————————————————————————— 工作模式选择:(必须在 PWM_EN=0 时候配置) 4 WORK_MODE 1-单次触发 0-连续工作模式 ——————————————————————————————————————— 2 UPDATE_AT_TOP PWM 计数顶部( TOP:计数器值=周期设置值)时,更新(周期或者 占空比)使能 1-使能 0-禁止 ——————————————————————————————————————— 1 UPDATE_AT_BOT PWM 计数底部(Bot:计数器值=0)时,更新(周期或者占空比)使 能。 1-使能 0-禁止 ——————————————————————————————————————— PWM_INT_EN PWM 中断使能寄存器:9EH 初始值:00H 7 6 5 4 3 2 1 0 - CM2_IN T_EN CM1_IN T_EN DC3_IN T_EN DC2_IN T_EN DC1_IN T_EN TOP_IN T_EN BOT_IN T_EN R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 6 CM2_INT_EN PWM 比较值 2 匹配中断使能; 1-使能 0-禁止 ——————————————————————————————————————— 5 CM1_INT_EN PWM 比较值 1 匹配中断使能; 1-使能 0-禁止 ——————————————————————————————————————— 4 DC3_INT_EN PWM 通道 3 占空比匹配中断使能; 1-使能 0-禁止 ——————————————————————————————————————— 3 DC2_INT_EN PWM 通道 2 占空比匹配中断使能; 1-使能 0-禁止 ——————————————————————————————————————— 2 DC1_INT_EN PWM 通道 1 占空比匹配中断使能; 1-使能 93 上海贝岭股份有限公司 BL23F30 0-禁止 ——————————————————————————————————————— 顶部 中断允许控制(中心对齐模式)。 1 TOP_INT_EN 1-使能 0-禁止 ——————————————————————————————————————— 底部中断允许控制(中心对齐模式)。 0 BOT_INT_EN 1-使能 0-禁止 ——————————————————————————————————————— PWM_INT_FLG PWM 中断状态寄存器:96H 初始值:00H 7 6 5 4 3 2 1 0 — CM2_IN T_FLG CM1_IN T_FLG DC3_IN T_FLG DC2_IN T_FLG DC1_IN T_FLG TOP_IN T_FLG BOT_IN T_FLG R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 6 CM2_INT_FLG PWM 比较值 2 匹配中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 5 CM1_INT_FLG PWM 比较值 1 匹配中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 4 DC3_INT_FLG PWM 通道 3 占空比匹配中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 3 DC2_INT_FLG PWM 通道 2 占空比匹配中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 2 DC1_INT_FLG PWM 通道 1 占空比匹配中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 1 TOP_INT_FLG 顶部/周期中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— 0 BOT_INT_FLG 底部中断标志;硬件置位,软件清 0。 ——————————————————————————————————————— POL_CTRL PWM 输出极性控制寄存器:B3H 初始值:00H 7 6 5 4 3 2 1 0 — — GAT_POL GAB_POL GBT_POL GBB_POL GCT_POL GCB_POL R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5:0 GAT、GAB、GBT、GBB、GCT、GCB 输出极性控制。 0 - 正极性 1 - 负极性 ——————————————————————————————————————— LEV_BUF PWM 输出电平控制寄存器:B4H 初始值:00H 94 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 — — GAT_LEV GAB_LEV GBT_LEV GBB_LEV GCT_LEV GCB_LEV R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5:0 GAT、GAB、GBT、GBB、GCT、GCB 输出有效电平控制。 ——————————————————————————————————————— OUTPUT_MODE PWM 输出模式控制寄存器:B5H 初始值:00H 7 6 5 4 3 2 1 0 PWM_SE L CO_EN GAT_MD GAB_MD GBT_MD GBB_MD GCT_MD GCB_MD R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 PWM_SEL 0 - PWM 输出时,通道 PWM1-PWM3 均用到。 1 - PWM 输出时,只用 PWM1。 ——————————————————————————————————————— 6 CO_EN 互补输出使能。 0 - 非互补输出。 1 - GAT、GAB 互补,GBT、GBB 互补,GCT、GCB 互补输出。 ——————————————————————————————————————— 5 GAT_MD GAT 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.5 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GAT 和 GAB 互补。 若 CO_EN=0,则 GAT 和 GAB 有相同的波形。 ——————————————————————————————————————— 4 GAB_MD GAB 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.4 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GAT 和 GAB 互补。 若 CO_EN=0,则 GAT 和 GAB 有相同的波形。 ——————————————————————————————————————— 3 GBT_MD GBT 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.3 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GBT 和 GBB 互补。 若 CO_EN=0,则 GBT 和 GBB 有相同的波形。 ——————————————————————————————————————— 2 GBB_MD GBB 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.2 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GBT 和 GBB 互补。 若 CO_EN=0,则 GBT 和 GBB 有相同的波形。 ——————————————————————————————————————— 95 上海贝岭股份有限公司 1 BL23F30 GCT 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.1 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GCT 和 GCB 互补。 若 CO_EN=0,则 GCT 和 GCB 有相同的波形。 GCT_MD ——————————————————————————————————————— 0 GCB_MD GCB 电平输出或 PWM 调制输出控制。 0 - 电平输出(电平值由 LEV_BUF.0 控制)。 1 - PWM 输出。 若 CO_EN=1,则 GCT 和 GCB 互补。 若 CO_EN=0,则 GCT 和 GCB 有相同的波形。 ——————————————————————————————————————— OUTPUT_UPCTRL PWM 输出更新控制寄存器:B6H 7 6 5 4 3 SFTW_T RIG_UP DATE — — — — R/W R/W R/W R/W R/W 初始值:00H 2 1 0 UPDATE_CTRL R/W R/W R/W ——————————————————————————————————————— 7 SFTW_TRIG_UPDATE 软件触发更新。0->1,触发一次更新。硬件清 0;该位读为 0。 ——————————————————————————————————————— 2:0 当寄存器“LEV_BUF, 输出模式”配置有变化时(不包含 PWM_SEL 寄存器),GAT~GCB 输出更新控制: 001-MPWM 顶部(Top)更新; 010-MPWM 底部(Bottom)更新; 011-实时更新; 110-定时器 2 中断更新; 111-保留;(不更新) ——————————————————————————————————————— PROT_EN 保护模式使能寄存器:ABH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 保护模式使能控制。 A5H - 保护模式使能。 5AH - 保护模式禁止。寄存器“GOFF_CTRL_EN、CMP_CTRL_EN”无效,无 GOFF 和 CMP 的 保护机制。 其他值 - 保持原有状态。 96 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— PROT_CTRL1 MPWM 保护控制寄存器 1:ACH 初始值:00H 7 6 5 4 3 2 1 0 HIGHZ_ INT_EN CLEAR_ HIGHZ_ CTRL SFTW_ TRIG_H Z_EN GOFF1_ EN GOFF0_ EN CMP_EN GOFF1_ TRIG_C TRL GOFF0_ TRIG_C TRL R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 HIGHZ_INT_EN GAT~GCB 输出高阻中断使能; 1-使能,输出为高阻时,产生中断; 0-禁止,输出为高阻时,不产生中断; ——————————————————————————————————————— 6 CLEAR_HIGHZ_CTRL 保护释放控制,即从保护模式恢复正常输出的控制。 1 - 当比较器或者 GOFF 无效沿产生时,即恢复正常的输出。 0 - 由保护模式进入高阻后,由用户软件设置是否恢复正常输 出,即由 SFTW_TRIG_OUTPUT 寄存器控制。 ——————————————————————————————————————— 5 SFTW_TRIG_HZ_EN 软件触发高阻输出使能。 1 - 允许软件触发输出高阻;SFTW_TRIG_HIGHZ 寄存器有效。 0 - 禁止软件触发高阻;SFTW_TRIG_HIGHZ 寄存器无效。 ——————————————————————————————————————— 4 GOFF1_EN GOFF1 引脚保护使能。 1 - 当 GOFF1 有效沿时,停止 MPWM,6 路 MPWM 输出高阻。 0 - GOFF1 值不影响 MPWM。 ——————————————————————————————————————— 3 GOFF0_EN GOFF0 引脚保护使能。 1 - 当 GOFF0 有效沿时,停止 MPWM,6 路 MPWM 输出高阻。 0 - GOFF0 值不影响 MPWM。 ——————————————————————————————————————— 2 CMP_EN 比较器输出保护使能。 1 - 比较器有上升时,停止 MPWM,6 路 MPWM 输出高阻。 0 - MPWM 的输出不受比较器输出影响。 ——————————————————————————————————————— 1 GOFF1_TRIG_CTRL GOFF1 触发有效电平控制。 0-上升沿有效。 1-下降沿有效。 ——————————————————————————————————————— 0 GOFF0_TRIG_CTRL GOFF0 触发有效电平控制。 0 - 上升沿有效。 1 - 下降沿有效。 97 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— PROT_CTRL2 MPWM 保护控制寄存器 2:ADH 初始值:00H 7 6 5 4 3 2 1 0 SFTW_T RIG_OU TPUT SFTW_T RIG_HIG HZ - HIGHZ_I NT_FLG HIGHZ_ FLG GOFF1_ VAL GOFF0_ VAL COMP_V AL R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 SFTW_TRIG_OUTPUT 0->1,触发 MPWM 正常输出。硬件清 0,读这位总是 0 ——————————————————————————————————————— 6 SFTW_TRIG_HIGHZ 0->1,触发 GAT、GAB、GBT、GBB、GCT、GCB 输出高祖。 硬件清 0,读总是 0。 ——————————————————————————————————————— 4 HIGHZ_INT_FLG 由 GOFF、比较器或者软件引起的 GAT、GAB、GBT、GBB、 GCT、GCB 输出高阻保护中断指示。 硬件置位,软件清 0。 ——————————————————————————————————————— 3 HIGHZ_FLG 当前 GAT、GAB、GBT、GBB、GCT、GCB 高阻指示。 1 - 高阻。 0 - 正常输出。 ——————————————————————————————————————— 2 GOFF1_VAL GOFF1 值指示。 ——————————————————————————————————————— 1 GOFF0_VAL GOFF0 值指示。 ——————————————————————————————————————— 0 COMP_VAL 比较器输出指示。 ——————————————————————————————————————— PROT_CTRL3 MPWM 保护控制寄存器 3:AEH 7 6 5 4 - - - R/W R/W R/W R/W PROT_SIG_FIL R/W R/W 初始值:00H 3 2 1 0 DT_BT_CTRL R/W R/W ——————————————————————————————————————— 7:5 PROT_SIG_FIL 保护信号(goff0,goff1)滤波延时控制 0~7 - 滤波延迟为 0~7 主时钟周期; ——————————————————————————————————————— 4:2 COMPO_SIG_FIL 比较器输出滤波设置; 0~7 - 滤波延迟为 0~7 主时钟周期; ——————————————————————————————————————— 1:0 DT_BT_CTRL 死区和消隐时间扩展控制 00死区时间=TIME_DEADZONE×2 98 上海贝岭股份有限公司 BL23F30 消隐时间 = TIME_BLANK*2; 01死区时间=TIME_DEADZONE×4 消隐时间 = TIME_BLANK*4; 10死区时间=TIME_DEADZONE×8 消隐时间 = TIME_BLANK*8; 11死区时间=TIME_DEADZONE×16 消隐时间 = TIME_BLANK*16; ——————————————————————————————————————— TIME_DEADZONE 死区时间寄存器:B7H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 死区时间设置,范围 0.3μs ~ 5μs。上升沿插入死区,下降沿不用。 0 - 无死区。 其他值 - 死区时间和 DT_BT_CTRL 配置有关。 ——————————————————————————————————————— TIME_BLANK 消隐时间寄存器:AFH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 消隐延时控制,范围 0~5us(保护信号有效延时),消隐计数器时钟分频控制由寄存器 DT_BT_CTRL 控制。 0 - 无消隐时间。 其他值 - 消隐延时和 DT_BT_CTRL 配置有关 。 ——————————————————————————————————————— 99 上海贝岭股份有限公司 BL23F30 11. 线性模拟电路 11.1. 结构图 AEN 初始值 – 10H 模拟模块控制寄存器:C9H 7 6 5 4 3 2 1 0 - DAC_EN VCMEN - - PGA1_EN PGA0_EN CMP_EN R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 6 DAC使能 1-使能 0-禁止 ——————————————————————————————————————— 5 VCMEN输出使能,控制VCM在P16输出。 1-使能 0-禁止 ——————————————————————————————————————— 100 上海贝岭股份有限公司 BL23F30 可编程增益放大器PGA1使能 2 1-使能 0-禁止 ——————————————————————————————————————— 可编程增益放大器PGA0使能 1 1-使能 0-禁止 ——————————————————————————————————————— 比较器使能 0 1-使能 0-禁止 ——————————————————————————————————————— 11.2. 高速比较器 特性 1. 输入负端可接外部输入电压、内部 DAC 输出作为基准电压)。 2. 输入正端可接外部输入电压、可编程增益放大器输出端。 3. 比较器输出端信号产生可屏蔽中断。 4. 比较器输出信号可停止 MPWM 工作同时使 MPWM 输出端口为高阻状态。 5. 看比较器输出上升沿可触发 ADC。 AEN.CMP_EN(C9H.0)使能比较器。 CMP_CTRL.CMPP_SEL(E7H.7) 选 择 比 较 器 正 输 入 端 连 接 到 外 部 引 脚 P00,CMP_CTRL.CMPN_SEL(E7H.6)选择比较器负输入端连接到外部引脚 P01。 P0FUN0.2(2040H.2)选择比较器模拟输出到 P02,P0FUN0.1(2040H.1)选择比较 器输入负端到 P01,P0FUN0.0(2040H.0)选择比较器输入正端到 P00。 CMP_CTRL 寄存器选择比较器正输入端连接到 PGA0 或 P00,负输入连接到 DAC 或 P01。 CMP_CTRL 模拟控制寄存器:E7H 7 6 CMPP_SEL CMPN_SEL R/W R/W 初始值:00H 5 4 3 2 1 0 R/W R/W CMPFIL_CTRL R/W R/W R/W R/W ——————————————————————————————————————— 比较器正输入端连接控制 7 CMPP_SEL 0-PGA0输出 1-外部引脚P00 ——————————————————————————————————————— 比较器负输入端连接控制 6 CMPN_SEL 0-DAC输出 1-外部引脚P01 ——————————————————————————————————————— 4:0 CMPFIL_CTRL 比较器输出滤波控制 101 上海贝岭股份有限公司 BL23F30 1~20 滤波时间:100ns,200ns...2000ns。 其他值无滤波。 ——————————————————————————————————————— 11.3. 可编程增益放大 PGA 特性 1. 单端输出可连接到外部均值电路、ADC 输入或内部高速比较器的正输入端。 2. 增益:×1、×2、×4、×8、×10、×12、×16、×32。 11.3.1. 工作模式 通过外部配置,可编程增益放大器兼容单端输入模式和差分输入模式两种。 11.3.1.1. 单端输入 单端输入模式 可编程增益放大器单端输入模式如图 1 所示。配置方式:PGA 反向输入端接地,同向 输入端通过电阻连接到采样端和电源。通过改变 R1 和 R2 阻值,可以调节 PGA 直流偏置及 整个信号链的增益(1)。 gaintotal R1 gainPGA R1 R2 (1) 单端输入模式PGA增益设置如表1。 1000 X1 0000 X2 0001 X4 102 上海贝岭股份有限公司 BL23F30 0010 X6 0011 X 8 0100 X 10 0101 X 12 0110 X 14 0111 X 16 单端输入模式 PGA 增益设置 11.3.1.2. 全差分输入 差分输入配置方式 可编程增益放大器差分输入模式如图 2 所示,其可以抑制采样信号的共模干扰。配置 方式:PGA 同向输入端通过电阻可设置为差分输入正端,反向输入端可直接设置为差分输入 负端,通过改变 VCM 来调节 PGA 直流偏置。在差分模式下,PGA 增益设置如表 2,其中 R1 和 R2 需满足公式(1)。 R1 gainPGA R2 (2) 差分输入模式PGA增益设置如表2。 0000 X1 0001 X3 0010 X5 0011 X 7 0100 X 9 0101 X 11 0110 X 13 0111 X 15 差分输入模式 PGA 增益设置 103 上海贝岭股份有限公司 BL23F30 11.3.1.3. PGA 应用方案 方案一 外部电源电压提供 ADC reference; 片内集成两路 PGA(Programmable Gain Amplifier),其工作在单端输入模 式,片内集成 PGA 不仅提高了集成度,还大大降低了干扰,提高 I/O 的利用 效率; 过流保护信号链由片外滤波器,片内 PGA0,DAC 和高速比较器构成,其中 PGA0 增益和 DAC 输出电压可数字编程;(在过流保护信号链中,PGA0 增 益推荐使用单位增益(×1),PGA0 和高速比较器延时之和的典型值为 200nS)。 PGA0 的 SR≥15V/μs,过流信号经过 PGA0 能跟踪信号的变化,还可滤除信 号中叠加的毛刺。 平均电流检测信号链由片外滤波器,片内 PGA1 和 ADC 构成,其中 PGA1 的增益可数字编程(×1、×2、×4、×6、×8、×10、×12、×14、×16)。 104 上海贝岭股份有限公司 BL23F30 图 1、第一种应用方案工作原理图 方案二 相比于第一种应用方案,第二种应该方案在 PGA 和 ADC 之间插入一低通 滤波器,进行滤波。 105 上海贝岭股份有限公司 BL23F30 图 2、第二种应用方案工作原理图 此外,通过外部配置,可编程增益放大器兼容单端输入模式和差分输入模式 两种。 单端输入 图 3、单端输入模式 可编程增益放大器单端输入模式如图 3 所示。配置方式:PGA 反向输入端 接地,同向输入端通过电阻连接到采样端和电源。通过改变两个电阻阻值,可以 调节 PGA 直流偏置及整个信号链的增益(1)。 106 上海贝岭股份有限公司 BL23F30 gaintotal 200 K gainPGA 200 K 10 K (1) 单端输入模式PGA增益设置如表1。 1000 X1 0000 X2 0001 X4 0010 X6 0011 X8 0100 X 10 0101 X 12 0110 X 14 0111 X 16 单端输入模式 PGA 增益设置 全差分输入 图 4、差分输入配置方式 可编程增益放大器差分输入模式如图 4 所示,其可以抑制采样信号的共模干 扰。配置方式:PGA 同向输入端通过电阻可设置为差分输入正端,反向输入端 可直接设置为差分输入负端,通过改变 VCM 来调节 PGA 直流偏置。在差分模 式下,PGA 增益设置如表 2,其中 R1 和 R2 需满足公式(1)。 R1 gainPGA R2 (1) 差分输入模式PGA增益设置如表2。 0000 X1 0001 X3 0010 X5 107 上海贝岭股份有限公司 BL23F30 0011 X7 0100 X9 0101 X 11 0110 X 13 0111 X 15 差分输入模式 PGA 增益设置 AEN.PGA1_PD 使能 PGA1,AEN.PGA0_PD 使能 PGA0,PGA 增益由 PGA_GAIN 寄存 器控制。 PGA_GAIN可编程增益放大器增益设置寄存器:FFH 7 6 5 4 3 PGA1_GAIN R/W R/W R/W 初始值:00H 2 1 0 PGA0_GAIN R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:4 PGA1增益设置 1xxx-×1 0000-×2 0001-×4 0010-×6 0011-×8 0100-×10 0101-×12 0110-×14 0111-×16 ——————————————————————————————————————— 3:0 PGA0增益设置 1xxx-×1 0000-×2 0001-×4 0010-×6 0011-×8 0100-×10 0101-×12 0110-×14 0111-×16 ——————————————————————————————————————— ADC_SLCTH.PGA0 选择 PGA0 输出到 AD 输入,ADC_SLCTH.PGA1 选择 PGA1 输出到 AD 输入。P3FUN0 和 P3FUNC1 选择 PGA0 和 PGA1 输入输出引到 I/O 端口。 108 上海贝岭股份有限公司 BL23F30 11.4. 数模转换器 DAC 特性 工作电压范围:2.7V ~ 5.5V 5-bit 分辨率 可选基准源 输出可接到高速比较器的负输入端或ADC基准 DAC_I DAC输出电压设置寄存器:91H 7 6 5 - - - R/W R/W R/W 初始值:20H 4 3 2 1 0 R/W R/W DAC_I R/W R/W R/W ——————————————————————————————————————— 4:0 DAC数字输入值设置。输出电压 = VDD ( DAC _ I 1) 。 32 ——————————————————————————————————————— P0FUN1.0:P0FUN1.0 选择 P02 DAC 输出。AEN.6 使能 DAC。 109 上海贝岭股份有限公司 BL23F30 12. 模数(AD)转换器 1. 2. 3. 4. 5. 6. 7. 8. 9. 外部12 输入通道 片内温度传感器输入 模拟运放输出可作为AD输入 片内基准作为AD输入 AD基准:VDD和片外ADC_VREF 最快转换速度1us 4个数据缓存,可启动自动扫描把结果依次存入缓存,自动扫描通道可配置。 对两个PGA输出同时进行AD转换。 AD启动方式:软件触发,PWM0占空比中断触发,PWM0顶部中断触发,PWM0底部 中断触发,MPWM周期计数器值和PWM_CMx值匹配时中断触发ADC,MPWM占空比中 断触发,MPWM顶部中断触发,MPWM底部中断触发,比较器输出上升沿触发,P07 触发上升下降沿触发ADC。 10. 输出结果左、右对齐功能。 12.1. 自动扫描 ADC 的通道可配置为自动扫描序列,并设置自动扫描模式。当产生 PWM 中断启动 ADC、软 件启动 ADC 或其他源启动时,跟据设置的扫描序列自动扫描,每完成一次序列扫描,设置 完成标志,停止扫描,等待下一次 ADC 启动。从 ADC 得到的数据依据轮询通道个数和顺序 放入 ADC0_DATA、ADC1_DATA、ADC2_DATA、ADC3_DATA 中。 12.2. 双通道采样 在模式选择寄存器中置 MODE(ADC_MOD.2)位为 1,并选择 DC_SET(ADC_MOD.1:0) 的数据。此时不考虑通道选择寄存器中的数据。依据双通道模式工作,也可通过配置寄存器 选择连续采样、数据存放模式和轮询停止。从 ADC 中得到的数据依据 DC_SET,放入 ADC0_DATA、ADC1_DATA 寄存器中。 12.3. ADC 控制 ADC_MOD.ADC_EN ADC 使能,打开 ADC 电源,初始化 ADC。 ADC_CFG.S_C 控制 ADC 转换模式。为 0 选择单次模式,每个 AD 启动触发,只执行一 次 AD 转换,AD 转换完成设置完成标志(ADC_CFG.1);为 1 连续模式,触发启动 ADC 后, ADC 连 续 转 换 选 择 的 输 入 通 道 存 入 ADC 结 果 寄 存 器 , 连 续 转 换 可 以 软 件 设 置 ADC_CFG.STOP 停止。触发启动后,AD 转换根据设置的采样模式处理转换结果。 110 上海贝岭股份有限公司 BL23F30 ADC 采样模式:单通道、双通道。双通道有四种组合,分别是 CH0 和 CH1、CH0 和 PGA1OUT、CH1 和 PGA0OUT、PGA0OUT 和 PGA1OUT。 ADC转换启动可以由软件、PWM0占空比中断触发,PWM0顶部中断触发,PWM0底部中断 触发,MPWM周期计数器值和PWM_CMx值匹配时中断触发ADC,MPWM占空比中断触发,MPWM 顶部中断触发,MPWM底部中断触发,比较器输出上升沿触发,P07触发上升下降沿触发ADC。 还可进行 4 输入通道自动扫描转换,有四组寄存器存放扫描转换的结果。 ADC 输入通道选择: 0 - 11 外部引脚输入 PGAOUT 片内温度传感器 片内基准电压源 ADC 结果可以选择左右对齐格式。 ADC 使用中注意要设置 ANA_CFG 模拟控制寄存器(DAH)中 ADC_VCM_CTRL(7:5)位 控制 ADC VCM,用户使用 ADC 时,把它设置到接近 1 AVDD 。 2 12.4. ADC 寄存器 初始值:00H ADC_MOD ADC模式寄存器:D9H 7 6 5 4 3 2 - - - - ADCEN MODE R/W R/W R/W R/W R/W R/W 1 0 DC_SET R/W R/W ——————————————————————————————————————— 3 ADC_EN ADC使能控制 0-关闭ADC 1-使能ADC ——————————————————————————————————————— 2 MODE ADC工作模式 0-单通道模式 1-双通道模式 ——————————————————————————————————————— 当MODE=1时,双通道的选择:采样顺序按以下排列。 1:0 DC_SET 00-PGA0和PGA1 01-PGA0和CH0 10-PGA1和CH0 11-CH0和CH1 ——————————————————————————————————————— 初始值:00H ADC_CFG ADC配置寄存器:DAH 7 6 5 ADC_VCM_CTRL R/W R/W R/W 4 3 2 1 0 STOP P_MODE LEFT S_C IADC R/W R/W R/W R/W R/W ——————————————————————————————————————— 111 上海贝岭股份有限公司 7:5 ADC_VCM_CTRL BL23F30 ADC内部共模电压调节位,控制VCM电平。(根据外部参加电压 的不同而进行调节) 芯片5V供电电压变化时,可调整VCM = VDD/2; 000 - 1.4V 001 - 1.6V 010 - 1.8V 011 - 2.0V 100 - 2.2V 101 - 2.4V 110 - 2.6V 111 - 2.8V ——————————————————————————————————————— 4 STOP 1-停止连续转换 读时,一直为0 ——————————————————————————————————————— 外部引脚P07触发边沿选择 3 P_MODE 0-上升沿触发 1-下降沿触发 ——————————————————————————————————————— 2 LEFT ADC数据左右对齐控制 0-右对齐 1-左对齐 ——————————————————————————————————————— 1 S_C 0-每个AD转换启动触发,只进行一次转换 1-AD转换启动触发后,自动连续进行转换,STOP可以停止 ——————————————————————————————————————— 0 IADC AD转换结束中断标志, 硬件置位,软件清0。 ——————————————————————————————————————— 初始值:00H ADC_TRIGEN ADC触发模式寄存器:DBH 7 6 5 4 3 2 1 0 - - SOFT_T RIG MPWM_T GEN PWM0_T GEN TIMER1 _TGEN CMP_T GEN PIN_TGE N R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 5 SOFT_TRIG 软件触发ADC启动,1-启动ADC转换,硬件自动清零 ——————————————————————————————————————— 4 MPWM_TGEN MPWM 触发使能 1-使能 0-禁止 MPWM 底部中断触发,MPWM 顶部中断触发,MPWM 占空比匹配中断触 发,MPWM_CM1、MPWM_CM2 匹配中断触发。 ——————————————————————————————————————— 3 PWM0_TGEN PWM0 触发使能 112 上海贝岭股份有限公司 BL23F30 1-使能 0-禁止 在中心对齐模式,有 PWM0 底部中断触发,PWM0 顶部中断触发,PWM0 占空比匹配中断触发。 在边沿对齐模式,有 PWM0 占空比中断触发,PWM0 周期中断触发。 ——————————————————————————————————————— 比较器触发使能 1 CMP_TGEN 1-使能 0-禁止 比较器输出上升沿触发 AD. ——————————————————————————————————————— 0 PIN_TGEN P07 触发使能 1-使能 0-禁止 ADC_CFG.3 可选择上升或下降沿触发 AD。 ——————————————————————————————————————— 初始值:00H ADC_SLCTH ADC通道选择寄存器1:D2H 7 6 5 4 3 2 1 0 PGA0 PGA1 CH0 CH1 CH2 CH3 CH4 CH5 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:0 1 - 使能 0 - 禁止 PGA0_SEL优先级最高 ——————————————————————————————————————— SLCT_H和SLCT_L为ADC通道选择:最多可同时选择4个通道,优先级次序是SLCT_H.7、 SLCT_H.6...SLCT_L.1、SLCT_L.0,优先级最高SLCT_H.7(PGA0)最高,SCLT_L.0(BGAP)最 低。 初始值:00H ADC_SLCTL ADC通道选择寄存器2:D3H 7 6 5 4 3 2 1 0 CH6 CH7 CH8 CH9 CH10 CH11 TEMP. SENS BGAP R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:0 1 - 使能 0 - 禁止 BGAP优先级最低 ——————————————————————————————————————— 注:ADC 处于扫描模式时,只能最多选择四个通道,扫描优先级最高 ADC_SLCTH.7,依 次 ADC_SLCTH.6……ADC_SLCTH.0、ADC_SLCTL.7……ADC_SLCTL.0。双通道扫描时, 只能选择 2 通道或 4 通道。 113 上海贝岭股份有限公司 BL23F30 ADC_DATA0H ADC数据寄存器0高8位:DFH 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA0L ADC数据寄存器0低8位:DEH 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA1H ADC数据寄存器1高8位:DDH 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA1L ADC数据寄存器1低8位:DCH 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA2H ADC数据寄存器2高8位:D7H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA2L ADC数据寄存器2低8位:D6H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA3H ADC数据寄存器3高8位:D5H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W ADC_DATA3L ADC数据寄存器3低8位:D4H 初始值:00H 7 6 5 4 3 2 1 0 R/W R/W R/W R/W R/W R/W R/W R/W 114 上海贝岭股份有限公司 BL23F30 13. 异步串行通讯口(UART0、UART1) 13.1. UART0 UART0 可编程的双工串行通信接口。它可作为通用异步接收和发送器,也可作为同步移 位寄存。其帧格式可有 8 位、10 位和 11 位,并能设置各种波特率,给使用者带来很大的灵 活性。 13.1.1. 13.1.2. UART0 结构图 功能 通过引脚 RXD0 和引脚 TXD0 与外界进行通信。串行口内有一个可直接寻址的专用寄存器 S0BUF,在物理上 S0BUF 由二个 8 位寄存器组成一个是发送寄存路一个是接收寄存器。两者 共用一个地址,可同时发送、接收数据。CPU 写 S0BUF,就是修改发送寄存器;读 S0BUF,就 是读接收寄存器。接收寄存器是双级缓冲的,以避免在接收下一伙致据之前,CPU 未能及时 响应接收寄存器的中断.没有把上一帧数据读走,而产生两帧致据重叠的问题。对于发送寄 存器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时 CPU 是主动的,不会产生 写重叠的问题。 根据实际需要,串行口可设置四种工作方式。 115 上海贝岭股份有限公司 BL23F30 13.1.2.1. 波特率发生器 模式 0 和模式 2 的波特率是固定的,而模式 1 和模式 3 的波特率是可变的.由定时器 T1 的溢出率来决定。 四种工作模式对应着三种波特率。由于输入的移位时钟的来源不同,所以,各种模式的 波特率计算公式也不同. 13.1.2.2. 工作模式 13.1.2.2.1. 模式 0 模式 0 为同步移位寄存器发送/接收方式,常用于扩展 I/0 口。串行数据通过 RXD0 输 入或输出,而 TXD 用于输出移位时钟,作为外接部件的同步信号。在这种方式下,收/发的 数据为 8 位,低位在前无起始位、奇偶位及停止位。波特率固定为系统频率的 1/12。 模式 0 时序 116 上海贝岭股份有限公司 BL23F30 13.1.2.2.2. 模式 1 模式 1 真正用于串行发送或接收。为 10 位通用异步接口.TXD0 与 RXD0 分别用于发 送与接收数据,收发一帧教据的格式为 1 位起始位、8 位数据位(低位在前)、1 位停止位, 共 10 位。在接收时,停止位进人 S0CON 的 RB8,此方式的传送波特率可调。 模式 1 发送时.数据从引脚 TXD0 端输出,当执行数据写人发送级冲器 S0BUF 的命令时, 就启动了发送器开始发送.发送时的定时信号,也就是发送移位时钟,是由定时器 T1 送来 的溢出信号经过 16 分频或 32 分频(取决 PCON 寄存器中的 SMOD 值)而取得的, 时钟就是 内部产生的发送波特率.可见方式 1 波特率是可变的。 模式 1 接收时,数据从引脚 RXD0 端输人。接收是在 S0CON 寄存器中 REN0 位=1 的前提下.井 检测到起始位(RXD0 上检测到“1”→“0”的跳变,即起始位)而开始的。接收时,定时信 号有两仲:一种是接收移位时钟(RX 时钟〕,它的绷率和传送波特率相同,也是由定时器 T1 溢出信号经过 16 或 32 分频而得到的;另一种是位检测器采样脉冲,它的频率是 RX 时钟的 16 倍,即在一位数据的期间有 16 位检测器采样脉冲,为完成检测,以 16 倍于波特率的速 率对 RXD0 进行采样。为了接收准确无误在正式接收数据之前.还必须判定这个“1”→“0” 跳交是否由干扰引起。为此,在这位中间(即 1 位时间分成 16 等份,在第 7,8 及 9 等份) 连续对 RXD0 采样三次,取其中两次相同的值进行判断所检测的值。这样能较好地消除干扰 的影响。当确认是真正的起始位“0”后,就开始接收一帧数据。当一帧数据接收完毕后, 必须同时满足以下两个条件,这次接收才真正有效。 (1)RI0=0.即上一帧数据接收完成时.RI=1 发出的中断请求已被响应,S0BUF 中的数据 已被取走。由软件使 RI0=0,以便提供“接收 S0BUF 已空“的信息。 (2)SM20=0 或收到的停止位为 1(方式 1 时停止位进人 RB80),则将接收到的数据装人串 行口的 S0BUF 和 RB80(方式 1 RB80 装人停止位〕,并置位 RI0;如果不满足,接收到的数 据不能装人 S0BUF,这意味着该帧信息将会丢失 值得注意的是:在整个接收过粗中,保证 REN0=1 是一个先决条件,只有当 REN0=1,才 能对 RXD0 进行检测。 13.1.2.2.3. 模式 2 串行口工作在模式 2 为每帧 11 位异步通信格式,由 TXD0 和 RXD0 发送与接收。每帧 11 位,1 位起始位,8 位数据位(低位在前).1 位可偏程的第 9 数据位和 1 位停止位。发送时, 第 9 教据位(TB80)可以设置为 1 或 0,也可将奇偶位装人 TB80,从而进行奇偶校验;接收 时,第 9 数据位进人 S0CON 的 RB80。 发送前,先根招通信协议由软件设置 TB8(如作奇偶佼脸位或地址/数据标志位),然 后将要发送的数据写人 S0BUF 即能启动发送过程,串行口能自动把 TB80 取出,并装人到 第 9 位数据的位置.再逐一发送出去。发送完毕,使 TI0=1。 117 上海贝岭股份有限公司 BL23F30 接收时,使 S0CON 中的 REN0=1 允许接收,当检侧到 RXD0 端有“1”到“0”的跳变 (起始位)时,开始接收 9 位数据,送人移位寄存器(9 位).当满足 RI0=0 且 SM20=0 或 接收到的第 9 位为 1 时,前 8 位数据送人 S0BUF, .附加的第 9 位数据送人 S0CON 中的 RB80, 置 RI0 为 1;否则,这次接收无效,也不置位 RI。 模式 2 波特率固定到系统频率的 32 分频或系统频率的 64 分频,由 PCON 寄存器中的 SMOD 设置。 在模式 2 时序图 13.1.2.2.4. 模式 3 模式 3 与模式 2 数据收发操作是完全一样的.所不同的只是波特率。在模式 3,波特率 由内部波特率发生器或定时器 1 溢出速率决定。 在模式 3 时序 在模式 3,UART0 数据位是 9 位,并且波特率可编程。 根据 ADCON 寄存器中 BD 位(ADCON.7), 使用定时器 1 溢出或者 S0RELH、S0RELL 寄存器设定的波特率。此外波特率可以使用 PCON 寄存器中的 SMOD 位提高一倍。 通过写数据到 S0BUF 寄存器启动发送过程,在 TXD0 引脚输出数据。发送的第一位是起 始位 0,然后处理 9 位数据,其中第 9 位数据取自 S0CON 寄存器中的 TB80 位。最后,一个 停止位 1。 RXD0 引脚输入的数据。UART0 引脚 RXD0 下降沿启动数据检测。接收 8 位数据存于 S0BUF 寄存器中,第 9 位存于 S0CON 寄存器中的 RB80 位。期间 S0BUF 和 RB80 保持不变,直到一帧 数据接收完成。 13.1.2.3. UART0 多机通讯 模式 2 和模式 3 的 9 位数据收发功能可用于多机通讯。当 S0CON 寄存器中 SM20 位设 置并且 RB80 为 1,产生接收中断。 要使用多机通信功能,从机处理器 SM20 位设置为 1,主机处理器发送 9 位从 机地址(其中第 9 位设置为 1),可引起所有从机产生接收中断。从机处理器用接 收到的 8 位数据和它们的网络地址进行比较。如果有一个匹配,被寻址的从机将 清除它的 SM20 标志准备接收数据信息(RB80=0)。 118 上海贝岭股份有限公司 UART0 寄存器 13.1.3. ADCON BL23F30 UART0 波特率调试配置寄存器(内部调试用):D8H 初始值:00H 7 6 5 4 3 2 1 0 BD - R - R - R - R - R - R - R R/W ——————————————————————————————————————— 7 BD UART0 波特率选择(在模式 1 和模式 3) 1 – 使用内部波特率发生器。 0 – 使用定时器 1 溢出信号。 ——————————————————————————————————————— S0CON UART0 控制寄存器:98H 初始值:00H 7 6 5 4 3 2 1 0 SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7:6 SM0:SM1 UART0 模式选择 SM0 SM1 0 0 模式 0 移位寄存器模式 波特率 Fclk/12 0 1 1 8 位 UART 可变(详细在下说明) 1 0 2 9 位 UART 与 PCON 中 SMOD 位有关 SMOD 波特率 1 1 说明 3 9 位 UART 0 Fclk/64 1 Fclk/32 可变(详细在下说明) 模式 1 和模式 3 的波特率: BD(ADCON.7) = 0: 波特率= 2 SMOD Fclk (定时器1溢出速率) 32 BD(ADCON.7) = 1: 2 SMOD Fclk 波特率= 64 (210 S 0 REL) Fclk - 系统时钟频率 S0REL - S0RELH:S0RELL SMOD - PCON.7 ——————————————————————————————————————— 5 SM20 多机通讯使能 119 上海贝岭股份有限公司 BL23F30 主要用于模式 2 和模式 3。 0 - 禁止 1 - 允许多机通信 ——————————————————————————————————————— 允许接收控制位 4 REN0 由软件置 1 或清 0,只有当 REN0=1 时,才允许接收,相当于串行接收的 开关;若 REN0=0.则禁止接收。 在串行通信接收控制程序中,如果满足 RI0=0,置位 REN=1(允许接收) 的条件,就会启动一次接收过程一帧数据就装人 S0BUF 中。 ——————————————————————————————————————— 发送数据的第 9 位 3 TB80 在模式 2 或模式 3 中,根据发送数据的需要由软件置位或复位.在许多 通信协议中可作奇偶校验位.也可在多机通信中作为发送地址帧或数据帧 的标志.对于后者,TB80=1,说明发送该帧数据为地址;TB80=0,说明发 送该帧的数据为数据字节。在模式 0 和模式 1 中,该位未用。 ——————————————————————————————————————— 接收数据的第 9 位 2 RB80 在模式 2 或模式 3 中,接收到的第 9 位数据放在 RB80 位.它或是约定 的奇/偶校验位,或是约定的地址/数据标志位。 在模式 2 和模式 3 多机通信中,若 SM20=1,.如果 RB80=1,说明收到 的数据为地址帧。 在模式 1 中,若 SM20=0(即不是多机通信情况),RB80 中存放的是已接 收到的地址位。 在模式 0 中,该位未用。 ——————————————————————————————————————— 发送中断标志 1 TI0 在一帧数据发送完时被置位。在模式 0,串行发送第 8 位结束时,或其它 方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申 请中断,TI0 置位意味着向 CPU 提供“发送缓冲器 S0BUF 已空”的信息, CPU 可以准备发送下一帧数据。串行口发送中断被响应后,TI0 不会自 动清 0,必须由软件清 0。 ——————————————————————————————————————— 接收中断标志 0 RI0 在接收到一帧有效数据后由硬件置位。在方式 0 中,第 8 位数据发送结 束时,由硬件置位,在其它三种方式中,则在接收到停止位中间时由硬件 置位。 RI0=1,申请中断.表示一帧数据接收结束,并已装人接收 S0BUF 中,要求 CPU 响应中断,取走数据。RI0 也必须由软件清 0,解除中断 申请,并准备接收下一帧数据。 串行发送中断标志 TI0 和接收中断标志 RI0 是同一个中断源,CPU 事先 不知道是发送中断 TI0 还是接收中断 RI0 产生的中断请求,所以在全双 工通信时,必须由软件来识别。 ——————————————————————————————————————— S0BUF UART0 数据缓冲寄存器:99H 初始值:00H 120 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W S0RELH UART0 重载寄存器高 8 位:BAH 初始值:D9H 7 6 5 4 3 2 1 0 D15 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W S0RELL UART0 重载寄存器低 8 位:AAH 初始值:03H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W PCON 电源控制寄存器:87H IEN0 中断使能寄存器 0:A8H - ES0(IEN0.4) UART0 中断使能 13.2. UART1 UART1 提供一个灵活全双工异步收发器的功能。它可以工作在两种模式。它提供接收 缓存,即,第二帧数据接收完成前,不更新先前已接收存于缓存中数据。 13.2.1. UART1 结构图 结构图 121 上海贝岭股份有限公司 13.2.2. BL23F30 功能 13.2.2.1. 波特率发生器 波特率发生器 13.2.2.2. 工作模式 13.2.2.2.1. 模式 A 在模式 A,使用 9 个数据位和可编程的波特率收发数据。S1RELH 和 S1RELL 被用于产生波特率。 UART1 的波特率不能使用 SMOD(PCON.7)改变速率。 通过写数据到 S1BUF 寄存器启动发送过程,在 TXD1 引脚输出数据。发送的第一位是起 始位 0,然后处理 9 位数据,其中第 9 位数据取自 S1CON 寄存器中的 TB81 位。最后一个停 止位 1。 RXD1 引脚输入的数据。UART1 引脚 RXD1 下降沿启动数据检测。接收 8 位数据存于 S1BUF 寄存器中,第 9 位存于 S1CON 寄存器中的 RB81 位。期间 S1BUF 和 RB81 保持不变,直到一帧 数据接收完成。 模式 A 时序 13.2.2.2.2. 模式 B 在 B 模式下,UART1 使用 8 个数据位和可编程的波特率收发数据。S1RELH 和 S1RELL 被 用于产生波特率。UART1 的波特率不能使用 SMOD(PCON.7)改变速率。 通过写数据到 S1BUF 寄存器启动发送过程,在 TXD1 引脚输出数据。发送的第一位是起 始位 0,然后处理 8 位数据,最后一个停止位 1。 122 上海贝岭股份有限公司 BL23F30 RXD1 引脚输入的数据。UART1 引脚 RXD1 下降沿启动数据检测。接收 8 位数据存于 S1BUF 寄存器中,停止位存于 S1CON 寄存器中的 RB81 位。期间 S1BUF 和 RB81 保持不变,直到一帧 数据接收完成。 模式 B 时序 13.2.2.3. UART1 多机通讯 模式 A 的 9 位数据收发功能可用于多机通讯。当 S1CON 寄存器中 SM21 位设置并且 RB81 为 1,产生接收中断。 要使用多机通信功能,从机处理器 SM21 位设置为 1,主机处理器发送 9 位从 机地址(其中第 9 位设置为 1),可引起所有从机产生接收中断。从机处理器用接 收到的 8 位数据和它们的网络地址进行比较。如果有一个匹配,被寻址的从机将 清除它的 SM21 标志准备接收数据信息(RB81=0)。 13.2.3. 本地互连网络(LIN) UART1支持本地互连网络(LIN)协议的主机和从机操作。 13.2.3.1. LIN 协议 LIN是一种汽车内部网络互连的整体通信概念。该通信协议基于SCI(UART)数据格式、 单主控制器/多从设备模式、无需固定的时间基准即可实现各节点时钟同步。LIN具有吸引 力的一大特性是:从节点无需通过石英晶振或陶瓷晶振即可实现自同步,大大降低了硬件平 台的成本。因此,需要计算并返回每一个报文帧的波特率。 LIN的报文帧结构如图10-7所示。由以下部分组成: 报文头,由分隔域(13个位时间,低电平)、同步字节(55H)和ID标识符域 组成 回应时间 数据字节(根据UART协议) 校验和 123 上海贝岭股份有限公司 BL23F30 : LIN的帧结构 每个字节域串行发送,如下图所示。先发送LSB:最后发送MSB。起始位编码为值,“0”, 停止位编码为值“1”。 字节域结构 分割域用作新的一帧的起始标志。只有该域不遵循上图的字节域结构。分隔域始终由主 机任务(主机模式)产生,它必须至少保持包括起始位在内的13位显性值,随后为分隔符, 如下图所示。分隔符必须至少保持1位标称位时间。 从节点将使用的分隔域检测阈值为11个标称位时间。 分割域 同步了节延确定时间鉴准的特定序列,值为55H.如下圈所示。 即使从机希望接收到字节域(假定字节域相互分开),它始终要检测分隔切同步序列。 如果在检测阶段接收到字节域,分隔戈刃同步序列检测将中断正在进行的数据传送,开始新 一帧数据的处理。 同步字节域 124 上海贝岭股份有限公司 BL23F30 当主机发送了正确的ID标识符,相应的目标从机将接收和发送数据: 1.从机等待同步分隔 2.从机与同步字节同步 3.从机侦听标识符(ID) 4.从机根据ID标识符来确定接收或发送数据,或不做任何操作 5.发送数据时,从机发送2, 4或8个数据字节,随后是校验字节 13.2.3.2. LIN 报文头发送 LIN报文头发送只适用于主模式。在LIN通信中,主机任务决定在何时、将哪帧传送到 总线上;还决定由哪个从机来接收每帧数据。主机和从机之间所需的握手信息由主机的报文 头提供。 报文头由分隔序列、同步序列及随后的标识符组成。这三个域中,只有分隔域不能按正 常的8位UART数据格式传送。分隔域必须包含13位或更多的显性值以保证从机能正确同步。 在LIN通信中,开始传送被保护的标识符时要求从机己被同步。为了实现同步,每一帧 以分隔域开始、随后紧跟同步字节。该序列是唯一的,它为任何从机任务提供了足够的信息 来检测新帧的开始、并在标识符开始时使从机同步。 13.2.3.3. 和主机自动同步 讲入LIN通信,建立主从机连接,串行通信端(主机)的传拱谏度(波特率)按照下述 步骤自动同步: 步骤1:初始化接收接口用于接收,初始化定时器用于波特率测量 步骤2:等待来自主机的LIN帧 步骤3:和主机波特率同步 步骤4:进入主机请求帧或从机回应帧 注:每个主机请求报文头或从机回应报文头LIN帧都要进行重新同步和波特率建立操作。 注意: 1. 唤醒信号帧通过设置UART1 8位模式发送80H完成。 2. 同步分割域由硬件产生,输出宽度由控制寄存器LINCON(2:0)设置。 3. 同步域自动进行波特率校准,校准的的波特率分频值存于寄存器LINRCBH和 LINRCBL。 125 上海贝岭股份有限公司 BL23F30 UART1 寄存器 13.2.4. S1CON UART1 控制寄存器:9BH 7 6 SM R/W R 初始值:00H 5 4 3 2 1 0 SM21 REN1 TB81 RB81 TI1 RI1 R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 SM UART1 模式选择 0 - 9 位数据传送格式 1 - 8 位数据传送格式 ——————————————————————————————————————— 多机通讯使能 5 SM21 0 - 禁止 1 - 允许多机通信 ——————————————————————————————————————— 允许接收控制位 4 REN1 由软件置 1 或清 0,只有当 REN1=1 时,才允许接收,相当于串行接收的 开关; 若 REN1=0.则禁止接收。 在串行通信接收控制程序中,如果满足 RI1=0,置位 REN1=1(允许接收) 的条件,就会启动一次接收过程一帧数据就装人 S1BUF 中。 ——————————————————————————————————————— 发送数据的第 9 位 3 TB81 在模式 A 中,根据发送数据的需要由软件置位或复位.在许多通信协议 中可作奇偶校验位.也可在多机通信中作为发送地址帧或数据帧的标 志. 对于后者,TB81=1,说明发送该帧数据为地址;TB81=0,说明发送该 帧的 数据为数据字节。 ——————————————————————————————————————— 接收数据的第 9 位 2 RB81 在模式 A 中,接收到的第 9 位数据放在 RB81 位.它或是约定的奇/偶 校验位,或是约定的地址/数据标志位。 在模式 B 多机通信中,若 SM21=1,.如果 RB81=1,说明收到的数据为 地址帧。 在模式 B 中,若 SM21=0(即不是多机通信情况),RB81 中存放的是已接 收到的停止位。 ——————————————————————————————————————— 发送中断标志 1 TI1 在一帧数据发送完时被置位。串行发送第 8 位或第 9 位结束时,由硬件 置位,可用软件查询。TI1 不会自动清 0,必须由软件清 0。 126 上海贝岭股份有限公司 BL23F30 ——————————————————————————————————————— 接收中断标志 0 RI1 在接收到一帧有效数据后由硬件置位。在模式 A 和模式 B 中,在接收到 停止位中间时由硬件置位。 RI1 也必须由软件清 0。 ——————————————————————————————————————— S1BUF UART1 数据缓冲寄存器:9CH 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W S1RELH UART1 重载寄存器高 8 位:9DH 初始值:00H 7 6 5 4 3 2 1 0 D15 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W S1RELL UART1 重载寄存器低 8 位:BBH 初始值:03H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W UART1 波特率计算: baudrate Fclk 32 (210 s1rel ) s1rel 是 S1RELH:S1RELL 中的数值 IEN2 中断使能寄存器 2:9AH - ES1(IEN2.0) UART1 中断使能 LINRCBL 同步域重新计算波特率寄存器低 8 位:A1H 初始值:00H 7 6 5 4 3 2 1 0 D15 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W LINRCBH 同步域重新计算波特率寄存器高 8 位:A2H 初始值:03H 7 6 5 4 3 2 1 0 - - - - - - D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 127 上海贝岭股份有限公司 BL23F30 同步域重新计算波特率寄存器, 可变波特率 = Fclk/(32*(2^10-(LINRCBH:LINRCBL)))。 LINRCBH 只用低 2bit, 高 6bit 不用。 LINCON LIN 控制寄存器:A3H 初始值:00H 7 6 5 4 3 2 SBFRP SBFRLE S - - INTIS R/W R/W R/W R/W R/W 1 0 SBFTWID R/W R/W R/W ——————————————————————————————————————— 7 SBFRP 此位置 1 指示正在进行分割域(SBF)接收处理中。 ——————————————————————————————————————— 6 SBFRLE 此位置 1 指出分割域(SBF)宽度小于 11 位。当它由 LIN 置 1 后,通过 软件写 0 清除。 ——————————————————————————————————————— 3 INTIS 中断唤醒切换开关: 1 - LIN 通信中 RDX1(P15)引脚用作 INT1,可进行中断唤醒。 0 - 正常 INT1 中断 ——————————————————————————————————————— 2:0 SBFTWID 分割域(SBF)传输输出宽度控制。 000 - 13 位 001 - 14 位 010 - 15 位 011 - 16 位 100 - 17 位 101 - 18 位 110 - 19 位 111 - 20 位 ——————————————————————————————————————— SBFTIG 分割域(SBF)触发控制寄存器:A4H 初始值:00H 7 6 5 4 3 2 1 0 - - - - - - SBFRT SBFTT R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 1 SBFRT 分割域(SBF)接收触发,接收 SBF 后硬件自动清零。 ——————————————————————————————————————— 0 SBFTT 分割域(SBF)发送触发器,SBF 发送后硬件自动清零。 ——————————————————————————————————————— 128 上海贝岭股份有限公司 BL23F30 14. 同步串行通讯口(SPI) 同步串行通讯接口 (SPI) 是一种提供高速全双工同步串行通信的总线。SPI可作为主设 备或子设备在3线或4线模式中运作,并支持单个 SPI 总线上的多种主设备或子设备。 有如 下特点: • 全双工模式 • 三线同步传送 • 主从模式 • 七个 SPI 主波特率 • 从时钟达到系统时钟的1/8(Fclkper/8) • 串行时钟可进行极性和相位编程 • 主模式错误标志可产生中断 • 写冲突标志保护 • 8位数据发送时,最高位在前,最低位在后 • 1位从选择输出口控制外部从设备 • 特殊功能寄存器接口到主CPU • 非双向口,标准SPI引脚被连到外部三态缓冲器 14.1. SPI 寄存器 SPCON SPI 控制寄存器:E2H 初始值:14H 7 6 5 4 3 2 1 0 SPR2 SPEN SSDIS MSTR CPOL CPHA SPR1 SPR0 R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 129 上海贝岭股份有限公司 7 BL23F30 通信速率设置,与 SP1 和 SPR0 一起使用,看下面 SP1 和 SPR0 SPR2 说明。 ——————————————————————————————————————— 6 SPEN SPI 接口使能 0 - 禁止 1 - 使能 ——————————————————————————————————————— 5 SSDIS SS 禁止 在主从模式: 0 - 使能“SS”输入 1 - 禁止“SS”输入,SS 可以 在从模式,如果 CPHA=0,这个位没有影响;当 SSDIS=1,没 有“MODF”中断请求将产生 ——————————————————————————————————————— 主从设置 4 MSTR 0 - SPI 配置为从模式 1 - SPI 配置为主模式 ——————————————————————————————————————— 时钟极性 3 CPOL 0 - SCK 空闲时为低电平。SCK 的前时钟沿为上升沿而后沿为 下降沿。 1 - SCK 空闲时为高电平。SCK 的前时钟沿为下降沿而后沿为 上升沿。 ——————————————————————————————————————— 时钟相位 2 CPHA 1 - 数据在 SCK 的前时钟沿被改变,并在后时钟沿采样。 0 - 数据在 SCK 的后时钟沿被改变,并在前时钟沿被采样。 ——————————————————————————————————————— 通信速率设置 1:0 SPR1:SPR0 与 SPR2 一起使用,看下表: SPR2 SPR1 SPR0 0 0 0 Fclk / 2 0 0 1 Fclk / 4 0 1 0 Fclk / 8 0 1 1 Fclk / 16 1 0 0 Fclk / 32 1 0 1 Fclk / 64 1 1 0 Fclk / 128 1 1 1 无主时钟(当“CPOL” = ‘1’ ,“SCKO” 输 出高电平,否则输出低电平) SPI速率 ——————————————————————————————————————— 130 上海贝岭股份有限公司 BL23F30 主模式数据发送格式 从模式数据发送格式(CPHA=0) 131 上海贝岭股份有限公司 BL23F30 从模式数据发送格式(CPHA=1) SPSTA SPI 状态寄存器:E1H 初始值:00H 7 6 5 4 3 2 1 0 SPIF WCOL SSERR MODF R R R R - R - R - R - R ——————————————————————————————————————— 7 SPIF SPI 传输完成标志 当同步串行传输完成后,此位置 1。读 SPSTA,清此位。 ——————————————————————————————————————— 6 WCOL 写入冲突标志 写数据到SPIDAT引起冲突(发送数据寄存器未空),由硬件置1。读 SPSTA和SPDAT,清此位。 ——————————————————————————————————————— 5 SSERR 从错误标志 在接收序列结束前,“SS”输入无效,硬件置 1。禁止 SPI 功能清此 位(清 SPCON 中的 SPEN 位)。 ——————————————————————————————————————— 4 MODF 模式错误标志 当“SS”引脚的电平与 SPI 控制器实际的模式冲突时,由硬件置位。 当“SS”引脚在适当的电平由硬件清除,也可通过读 SPSTA 清除此 位。 ——————————————————————————————————————— SPDAT SPI 数据寄存器:E3H 初始值:00H 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W SPSSN SPI 从选择寄存器:E4H 初始值:FFH 7 6 5 4 3 2 1 0 - R/W - R/W - R/W - R/W - R/W - R/W - R/W SS0 132 R/W 上海贝岭股份有限公司 BL23F30 15. EEPROM 和 FLASH 读写,程序加密 EEPROM 擦写次数在 2 万次以上。可分为若干个扇区,每个扇区包含 128 字节,共 2k 字节,数据存储器的擦除操作是按扇区进行的。 EEPROM 可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程 序中,可以对 EEPROM 进行字节读/字节编程/扇区擦除操作。 EEPROM 数据区映射到地址 1000H~17FFH XRAM 存储区。 当设置 PCON.4(PMW)为 1,也可对程序 FLASH 区进行擦写操作。 15.1. EEPROM 编程寄存器 初始值:03H MCON EEPROM编程控制寄存器:8FH 7 6 5 4 3 2 1 - - - - XRAM_M ODE FLH_ACK R/W R/W R/W R/W R/W R/W 0 FLH_OP R/W R/W ——————————————————————————————————————— XRAM_MODE 为 1 时,000H - BFFH XRAM 映射到程序空间 7800H~83FFH,可移 动程序代码到此区域高速运行。 ——————————————————————————————————————— 2 FLH_ACK EEPROM 操作完成标志。 3 ——————————————————————————————————————— 1:0 FLH_OP EEPROM 操作控制 00-字节编程 01-扇区擦除 10-片擦除(用户禁止) 11-保持最后状态; 除字节编程,FLH_OP 操作后自动清为 0。需要继续相同操作,必须重置 这两位。 ——————————————————————————————————————— 设定扇区擦除后,写擦除扇区中任意一个字节,执行整个扇区擦除。 初始值:00H DSAB FLASH编程模式寄存器:97H 7 6 5 4 3 2 1 0 - - - - - - ER_DSAB WR_DSAB R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 1 ER_DSAB 0-EEPROM 擦除使能 1-EEPROM 擦除禁止 ——————————————————————————————————————— 133 上海贝岭股份有限公司 BL23F30 0-EEPROM 编程使能 1-EEPROM 编程禁止 ——————————————————————————————————————— 0 WR_DSAB 15.2. FLASH 擦写 当设置 PCON.4(PMW)为 1,也可对程序 FLASH 区进行擦写操作。此时用访问外部存 储器指令(MOVX),对 FLASH 擦写,操作方法同 EEPROM 擦写。 15.3. 程序加密 采用 EEPEOM 写字节方式,把外部存储器地址 0x1800 单元中最高位写 0,就完成程序 加密,整个 FLASH 不能读出正确的内容。加密后,可以用擦除整个 FLASH 来重写新程序。 PCON = 0x08; DSAB = 0x02; MCON = 0x00; ENCRYPTION = 0x00; DSAB = 0x03; // // // // 编程使能,擦除禁止 字节编程 写数据 编程禁止,擦除禁止 15.4. EEPEOM 擦写例程 #include "BL23F30.H" unsigned char xdata EEPROM[2048] _at_ 0x1000; main() { DSAB = 0x01; MCON = 0x01; EEPROM[0] = 0; EEPROM[128] = 0; EEPROM[256] = 0; // 擦除使能,编程禁止 // EEPROM 片擦除 // 写扇区中任意一个字节,执行整个扇区擦除 DSAB = 0x02; MCON = 0x00; EEPROM[0] = 0xA5; EEPROM[1] = 0x5A; // // // // 编程使能,擦除禁止 字节编程 写数据 写数据 134 上海贝岭股份有限公司 DSAB = 0x03; BL23F30 // 编程禁止,擦除禁止 } 15.5. FLASH 擦写例程 #include "BL23F30.H" unsigned char xdata XRAM[0x8000] _at_ 0x0000; main() { DSAB = 0x01; // 编程禁止,擦除使能 MCON = 0x01; // 扇区擦除 PCON |= 0x10; // 设置 PMW=1,使能 FLASH 读写 XRAM[0x4000] = 0xFF; Delay20ms(); DSAB = 0x02; // 编程使能,擦除禁止 MCON = 0x00; // 字节编程 XRAM[0x4000] = 0xA5; DSAB = 0x03; // 编程禁止,擦除禁止 PCON &= ~0x10; // PMW=0,使能 XRAM 读写 } 135 上海贝岭股份有限公司 BL23F30 16. RESET 16.1. 复位说明 在复位,MCU 所有的寄存器进入初始状态。初始值可看 SFR 复位值。程序存储器,外 部数据存储器,数据存储器芯片(内部数据存储器)和特殊功能寄存器接口控制输出设置无 效。程序计数器复零。 16.2. 上电复位 在上电期间,设备处于复位状态, RST 引脚处于低电平,直至 VDD 上升至 VRST 以 上时为止。设备从复位状态退出复位状态前会出现延时,延时随 VDD 上升时间的增加而减 少(VDD 上升时间被定义为 VDD 从 0 V上升到 VRST 的时间)。 由 于所 有复 位都 导致 程序 从同 一个 地址 (0x0000) 开 始执 行, 软件 可以 通过 读 SRSTREQ标志来确定是否为上电引起的复位。在一次启动复位后,内部数据内存中的内容 应被认为是 未定义 的。启动复 位后, VDD 监视器 被启用。 VDD POR 系统启动 tRSTD为上电复位延时时间,典型值为64ms 136 上海贝岭股份有限公司 BL23F30 16.3. 掉电复位(LVR) 当发生掉电或因电源波动导致VDD降到VLVR以下时,电源监视器将MCU保持复位状态。当 VDD又返回高于VLVR的电平时,MCU将退出复位状态。尽管内部数据内存的内容可能没有因掉 电复位而发生改变,但无法确定VDD是否降到了数据保持所要求的最低电平以下。启动复位 后,VDD监视器被启用。但其设定状态(启用/禁用)不受任何其他复位源影响。例如,在 VDD 监视器通过代码被禁用后执行一次软件复位,复位后 VDD 监视器仍然为禁用状态。 LVR电平有7种,用户可以根据使用的电源环境选用。 LVR_CTRL 低电压复位控制寄存器:3003H 7 6 5 4 P07SEL - - - R/W R R R 初始值:00H 3 2 1 LVR_VTH R R 0 - R/W R/W ——————————————————————————————————————— 7 P07SEL P07 复位或 GPIO 选择,可以参考 P0FUN1 说明。 0 - GPIO 1 - 复位 ——————————————————————————————————————— 3:1 LVR_VTH LVR 电压档位控制; 000-2.50V 001-2.75V 010-3.00V 011-3.25V 100-3.50V 101-3.75V 110-4.00V 111-4.25V ——————————————————————————————————————— 16.4. 外部复位 外部RST引脚提供了使用外部电路强制设备进入复位状态的手段。在RST引脚上加一个 低电平有效信号产生复位;可能需要外部上拉及/或对 RST 去耦以避免过强噪声引起复位。 137 上海贝岭股份有限公司 BL23F30 16.5. 看门狗复位 可编程看门狗 (Watchdog) 功能可用于在系统出现错误的情况下防止软件运行失控。 在每次复位后,看门狗必须被软件启动。如系统故障阻止用户软件更新看门狗定时器,将产 生一次复位。RST 引脚状态不受该复位影响。 16.6. 软件复位 详细说明看下面的软件复位寄存器解说。 16.7. 软件复位寄存器 SRST 软件复位寄存器:F7H 初始值:00H 7 6 5 4 3 2 1 0 - - - - - - - SRSTREQ R R R R R R R R/W ——————————————————————————————————————— 软件复位请求,通过写特殊寄存器 SRST 可产生软件复位。 0 SRSTREQ 此位写“0”无影响。 写一次“1”到此位也无影响。 双写“1”值(在两个连续的指令)将产生一个内部软件复位。 读此位可知复位源:如果 0–复位源不是软件复位(硬件、看门狗复位或调试器复位) 1–复位源是软件复位(由双写“1”值到“SRSTREQ”位引起)。 ——————————————————————————————————————— RST_CTRL 复位控制寄存器:B1H 初始值:00H 7 6 5 4 3 2 1 0 - - - - - PIN_RST BOR_RST POR_RST R R R R R R R R ——————————————————————————————————————— 2 外部引脚复位标志 0-无复位 1-复位 ——————————————————————————————————————— 1 BOR 复位标志 0-无复位 1-复位 ——————————————————————————————————————— 138 上海贝岭股份有限公司 BL23F30 POR 复位标志 0-无复位 1-复位 ——————————————————————————————————————— 0 139 上海贝岭股份有限公司 BL23F30 17. 电源模式 有三种软件可编程的省电模式:空闲(IDLE)、停止(STOP)。这两种模式是标准8051 结构的一部分。 空闲模式下,CPU 暂停而外围设备和时钟激活。停止模式下,CPU 暂停、所有中断处 理程序和定时器均处于非激活状态,内部振荡器停止(模拟外围设备依然处于所选状态;外 部振荡器不受影响)。由于时钟在空闲模式下运行,决定电耗的是系统时钟的频率和进出空 闲状态前处于激活状态的外围设备数目。 停止模式耗电最少,因为大多数设备都被关闭,且没有时钟处于激活状态。 17.1. 空闲模式 设置空闲模式选择位(PCON.0),硬件让 CPU 暂停并在设置位的指令执行完成后立 即进入空闲模式。所有内部寄存器和存储器均维持其原始数据。在空闲模式下,所有模拟和 数字外围设备均可保持激活状态。 允许中断事件出现或出现复位时,空闲模式即告终止。中断将引起空闲模式选择位 (PCON.0)被清除及 CPU 重新运行。中断将得到执行,而从中断中回复后要执行的下个 指令将是紧随设置空闲模式选择位之后的指令。如空闲模式是因内部或外部复位而终止,则 MCU执行正常的复位流程,并在 0x0000位置开始程序执行。 附注: 如写入空闲位之后的指令是一个单字节指令,且中断出现在设置空闲位的指令 的执行阶段,未来出现中断时CPU 可能无法从空闲模式中唤醒。因此,设置空闲位的指令 后面应该紧随一个两字节或更多字节的指令,例如: 140 上海贝岭股份有限公司 BL23F30 // 用 'C' 语言: PCON |= 0x01; // 设置 IDLE 位 PCON = PCON; // ... 跟随一条 3 周期伪指令 ; 用汇编语言: ORL PCON, #01h ; 设置 IDLE 位 MOV PCON, PCON ; ... 跟随一条 3 周期伪指令 如启用看门狗将最终引起内部看门狗复位,从而终止空闲模式。此特点保护系统在出现 不慎写入 PCON 寄存器事件时免于被意外永久关机。如不需要此行为,而 WDT 最初被配 置为允许此操作,可在进入空闲模式前通过软件禁用看门狗。这提供附加的省电机会,无限 期允许系统保持空闲模式,等待外部刺激将其唤醒。参见看门狗了解使用及配置方面的更多 资料。 17.2. 停止模式 设置停止模式选择位 (PCON.1),在设置位的指令执行完成后立即让控制器内核进入 停止模式。在停止模式下,内部振荡器、CPU 、Watchdog及所有数字外围设备均停止; 外部振荡器电路的状态不受影响。每一个模拟外围设备(包括外部振荡器电路)在进入停止 模式前可能分别关闭。停止模式能通过外部复位终止。复位时,设备执行正常的复位流程, 并在 0x0000 位置开始程序执行。INT0、INT1也能退出STOP模式,并执行STOP的下一 条指令。 17.3. 电源模式控制寄存器 PCON 电源模式控制寄存器:87H 初始值:08H 141 上海贝岭股份有限公司 BL23F30 7 6 5 4 3 2 1 0 SMOD WDTTM ISR_TM PMW P2SEL GF0 STOP IDLE R/W R/W R/W R/W R/W R/W R/W R/W ——————————————————————————————————————— 7 SMOD UART0 波特率选择 具体用法可看 UART0 中波特率设置说明。 ——————————————————————————————————————— 6 WDTTM 看门狗测试模式标志 1 - 看门狗输入时钟 12 预分频选择。 0 - 跳过预分频器。 ——————————————————————————————————————— 5 IR_TM 中断测试。 ——————————————————————————————————————— 4 PMW 程序存储器写使能 1 - 使能。 0 - 禁止。 当 PMW 为 0,MOVX 指令读写外部数据存储器空间(XRAM)。 当 PMW 为 1,MOVX 指令读写程序存储器空间(FLASH)。 ——————————————————————————————————————— 3 P2SEL 高地址字节配置位。当执行 MOVX @Ri, operations;指令时,高 8bits 地址选择控制。 0 - 高地址值为 P2 输出寄存器。 1 - 高地址值为 00H。 ——————————————————————————————————————— 2 GF0 通用标志位 ——————————————————————————————————————— 1 STOP 停止模式控制 设置此位进入停止模式,读此位总是为“0”。 ——————————————————————————————————————— 0 IDLE 空闲模式控制 设置此位进入空闲模式,读此位总是为“0”。 ——————————————————————————————————————— 142 上海贝岭股份有限公司 BL23F30 18. 电气特性 18.1. 极限值 参 数 符号 VDD 极限值 -0.3 ~ +6.5 单位 V 输入电压 VI -0.3~VDD+0.3 V 输出电压 Vo -0.3 ~ VDD+0.3 V 灌电流 IOH -6 mA 每个I/O端口最大的灌电流 总灌电流 ΣIOH mA 所有I/O汇总灌电流 拉电流 IOL mA 每个I/O端口最大拉电流 总拉电流 ΣIOL mA 所有I/O汇总拉电流 电源电压 正常电压 引脚 总功率消耗 储存温度 18.2. 20 备 注 相对于VSS,任何引脚电压 PT 600 mW TSTG -65 ~ +150 ℃ 推荐操作参数 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 工作电压 工作温度 符号 测试条件 VDD TOPR VDD=2.7V-5.5V 143 最小值 典型值 最大值 单位 2.7 - 5.5 V -40 - 85 ℃ 上海贝岭股份有限公司 BL23F30 18.3. 直流特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V, VSS= 0V, fXIN= 20MHz) 参数 输入高电压 符号 VIH 测试条件 所有输入脚 输入低电压 VIL 所有输入脚 输出高电压 VOH 最小值 0.8VDD 典型值 - 最大值 VDD 单位 V - 0.8VDD - 0.2VDD V V (5V) VDD-0.8 (3.3V) 输出低电压 VOL 0.1VDD V (5V) 0.5 (3.3V) 输入高漏电流 IIH 所有输入端口 输入低漏电流 IIL 所有输入端口 上拉电阻 RPU VDD=5.0,所有输入口 下拉电阻 RPD VDD=5.0,所有输入口 fPLL= 60MHz, VDD= IDD1 5V±10% (RUN) IDD2 供电电流 (IDLE ) IDD3 - -1 – fPLL= 60MHz, VDD= 5V±10% fPLL= 60MHz, VDD= 3V±10% STOP, VDD= 5V±10%, TA= – 25°C 144 - 1 μA - 20 - 100 μA 20 100 kΩ 20 mA 10 mA 8 mA 20 μA kΩ 上海贝岭股份有限公司 BL23F30 18.4. 交流特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 符号 RST输入低脉 宽 tRST 系统复位延时 时间(上电复 位) tRSTD 中断输入高、 低脉宽 tIWH, tIWL 计数器外部输 入高、低脉宽 tECWH,t 计数器外部输 入翻转时间 tREC, tFEC 18.5. 测试条件 输入,VDD=5V 所有中断,VDD=5V EXn(n=0、1、2),VDD=5V 最小值 典型值 最大值 单位 - - 100 μs - 64 - ms 6 - - 6 - - 6 - - 最小值 12 典型值 12 最大值 12 单位 bit 9.5 - bit ECWL EXn(n=0、1、2),VDD=5V Cloc k cycl es 模数(AD)转换器特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 分辨率 ENOB 符号 测试条件 - 积分线性误差 INL - - - 1 微分线性误差 DNL - - 1 零偏误差 ZOE 1 满刻度误差 FSE 1 转换时间 tCON 电源电压范围 VDD 2.7 模拟输入电压 VAN VSS 模拟基准电压 AVREF 2.0 模拟输入漏电流 IAN ADC工作电流 IADC 1 μS - 5.5 V - AVREF V VDD V - μA 15MHz时钟 AVREF=5V 使能 禁止 - - VDD=5V - 3 mA 0.1 145 LSB μA 上海贝岭股份有限公司 BL23F30 18.6. (LVR)低电压复位特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 符号 测试条件 最小值 典型值 2.50 最大值 单位 2.75 3.00 3.25 检测电压 VLVR 3.50 V 3.75 4.00 4.25 4.50 回差 ΔV mV 逻辑低电位 逻辑高电位 最小脉宽 tLW 电流消耗 ILVR 100 - 工作 - - 停止 - - 0.1 μA 最大值 单位 nA - μs μA 18.7. 模拟比较器特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 符号 IL 测试条件 VDD=5V,VIN=1/2VDD 最小值 - 典型值 1 电压偏移 Voffset VDD=5V,VIN=1/2VDD 工作电流 IOP CMP1EN=H - 0.125 - 0.15 0.25 mA 不工作电流 IPD CMP1EN=L — 4 — nA 响应时间 VRT CL=1pF,VDD=5V 45 55 75 ns 输入漏电流 146 - 10 mV 上海贝岭股份有限公司 BL23F30 18.8. 可编程增益放大器(PGA)特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 输入电压范围 VDIFFMAX 最小值 GND 输入偏移电压 VIo - 增益线性度 最大增益误差 符号 LV 测试条件 典型值 最大值 - AVDD-1.2V G=1 1 1 LSB 2 - 1 1 1 LSB 2 G=2 1 2 LSB 2 2 1 2 LSB 2 G=4 1 4 LSB 2 4 1 4 LSB 2 G=8 8 1 LSB 2 8 1 8 LSB 2 G=10 1 10 LSB 2 10 1 10 LSB 2 G=12 1 12 LSB 2 12 12 1 LSB 2 G=16 1 16 LSB 2 16 16 1 LSB 2 - 0 1 2 - 4 15 - V/μs μA EG 10 增益带宽 GBW 电压上升速率 SR 工作电流 IOP - - - 500 不工作电流 IPD - - 0.1 @CL=20pF 147 单位 V mV V/V % MHz μA 上海贝岭股份有限公司 BL23F30 18.9. DAC 特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 DAC基准输入 符号 VIN DAC步长 VSTEP 测试条件 最小值 AVSS 0.75 VIN 32 典型值 - VIN 32 最大值 AVDD 1.25 VIN 32 单位 nA mV 输出电压范围 VOUT VIN 32 积分线性误差 INL - - 1 LSB 微分线性误差 DNL - - 1 LSB 工作电流 IOP - - 100 nA 不工作电流 IPD - - 0.1 μA 最小值 2.7 典型值 - 最大值 5.5 单位 V - - 20 μA - VIN V 18.10. 电压调节器 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 输入电压范围 符号 VIN 测试条件 IOP 工作电流 18.11. 温度传感器 (TA= 25°C, VDD= 2.7V ~ 5.5V) 参数 符号 测试条件 工作电压范围 最小值 2.7 Temp.=-45 低温输出电压 ℃ Temp.=+13 高温输出电压 5℃ 温度系数(斜率) TC 误差 ETC 工作电流 IOP 不工作电流 IPD - 18.12. 外部时钟振荡器特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 148 典型值 最大值 5.5 单位 V 0.5 V 2.5 V 11 mV/℃ - ±8 200 μA 20 nA ℃ 上海贝岭股份有限公司 振荡器 BL23F30 参数 测试条件 晶振 主振频率 VDD = 2.7V ~5.5V 陶振 外部时钟 最小值 455 典型值 500 最大值 1000 主振频率 - 455 - Xin 输入频率 - 500 - 最小值 典型值 最大值 单位 kHz 18.13. 外部时钟稳定特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 符号 测试条件 晶振 - 陶振 - - ms - - 外部时钟 单位 ms ns 18.14. 内部 RC 振荡器特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 符号 fIRC VDD = 2.7V ~5.5V 占空比 稳定时间 频率 最大值 - 典型值 500 - 45 - 50 ±2 55 % TOD TA = -40°C ~ 125°C - THFS - - - 50 μs - 20 μA - - 0.1 μA 最小值 最大值 - 典型值 500 - 单位 kHz 误差 电流消耗 IIRC 测试条件 最小值 工作 - 停止 - 单位 kHz % 内部 1.8V 工作电压 18.15. PLL 特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V) 参数 输入时钟频率 符号 fIN 测试条件 输出时钟频率 fout - 60 - MHz VCO中心频率 fvco - 60 - MHz - 50 120 - - - 度 kHz - - 100 - 50 ps - - - 200 - 0.1 μA 分频比 相位裕度 带宽 JITTER 电流消耗 IOP 工作 停止 - 内部 1.8V 工作电压 149 μA 上海贝岭股份有限公司 BL23F30 18.16. UART 特性 (TA= -40°C ~ +125°C, VDD= 2.7V ~ 5.5V, fXIN=20MHz) 参数 符号 tsck 串口时钟周期时间 输出到时钟上升沿数据设置 时钟上升沿到输入数据有效 时钟上升沿后输出数据保持 时钟上升沿后输入数据保持 最小值 典型值 tCPU×1 6 最大值 tCPU×1 3 - - tCPU - 0 - - 最小值 1.8? 典型值 - 最大值 5.5 单位 V - - 1 μA 典型值 最大值 单位 - - - 6 ms tS1 tS2 - tH1 tH2 单位 - ns - 18.17. STOP 模式数据保持电压 (TA= -40°C ~ +125°C, VDD= 1.8V ~ 5.5V) 参数 数据保持电源电压 符号 VDDDR 数据保持电源电流 IDDDR 测试条件 VDD=3V,STOP模式 18.18. 内部 Flash Rom 特性 (TA= -40°C ~ +125°C, VDD= 1.8V ~ 5.5V, VSS= 0V) 参数 扇区写时间 符号 tFSW 测试条件 最小值 扇区擦除时间 tFSE 锁定时间 tFHL - - 页缓冲器复位时间 tFBR - 编程频率 fPGM - 60 MHz 擦写寿命 NFWE 20000 次 4 - 150 - μs 上海贝岭股份有限公司 BL23F30 19. 封装尺寸 LQFP48 PLASTIC QUAD FLATPACK Dimensions: mm SSOP48 PLASTIC SMALL-OUTLINE PACKAGE Dimensions: inch (mm) 151