0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
SH79F1615P

SH79F1615P

  • 厂商:

    SINOWEALTH(中颖电子)

  • 封装:

    LQFP32_7X7MM

  • 描述:

    SH79F1615P

  • 数据手册
  • 价格&库存
SH79F1615P 数据手册
SH79F1615 集成ADC和PWM的增强型8051微控制器 1. 特性  基于8051指令流水线结构的8位单片机  Flash ROM:16K字节  RAM:1.5K字节  内建单输入模拟比较器CMP1  类EEPROM:2048字节  内建多输入模拟施密特比较器CMP2  工作电压: fOSC = 400k - 27MHz,VDD = 2.4V - 5.5V  内建1个模拟放大器OP1  增强型UART 高频振荡器(代码选项三选一): - 陶瓷谐振器:400k - 16MHz - 晶体谐振器:400k - 16MHz - 内部RC高频振荡器:27MHz  一路8bit无死区PWM3输出   10+1通道12位1M sps高速模数转换器(ADC), 自动触发ADC功能,16通道转换结果缓冲功能  蜂鸣音发生器  内建的低电压复位功能(代码选项) - LVR电压1:4.1V - LVR电压2:2.8V  CPU机器周期: - 1振荡周期  低频振荡器:内部RC低频振荡器:128KHz  30个CMOS双向I/O管脚  I/O内建上拉电阻  P2口可增强灌电流能力(代码选项可选增强或标准)  看门狗定时器(WDT)  P0/P3口可增强拉电流能力(代码选项可选增强或标准)  内建振荡器预热计数器  4个16位定时器/计数器T0/T1/T2/T3   三个16位带死区控制PWM通道,6路输出,并且具有故 障检测功能 低功耗工作模式: - 空闲模式 - 掉电模式  中断源: - 定时器0/1/2/3 - 外部中断0 - 1 - 外部中断4:8输入 - ADC - EUART - PWM周期和占空比中断 - 模拟比较器1/2  Flash型  40位可读MCU识别码   工作环境温度-40 ~ +105℃ 封装: - LQFP32 - QFN32 2. 概述 SH79F1615是一种高速高效率8051兼容单片机。在同样振荡频率下,较之传统的8051芯片具有运行更快速,性能更优越的 特性。 SH79F1615保留了标准8051芯片的大部分特性,包括内置256字节RAM和2个16位定时器/计数器。此外,SH79F1615还集 成了1280字节外部扩展RAM,以及存储程序的16K字节flash,此外还集成2K类EEPROM,用于在系统掉电后保存数据。 SH79F1615还集成了两个多输入模拟比较器,一路放大器,12位集成数字比较功能的高速ADC,以及6输出带死区时间控 制的电机控制PWM模块,非常适合于直流无刷电机/永磁同步电机控制。 此外,SH79F1615集成了看门狗定时器,上电复位和低电压复位等功能,提供了2种低功耗省电模式。 1 V2.1 SH79F1615 3. 方框图 VDD Reset circuit Power RST Pipelined 8051 architecture Watch Dog 16K Bytes Flash ROM Port 0 Configuration/IO P0.0 - P0.7 Internal 256 Bytes External 1280 Bytes Data RAM Port 1 Configuration/IO P1.0 - P1.7 Timer 0 (16bit) Timer 1 (16bit) Timer 2 (16bit) Timer 3 (16bit) Port 2 Configuration/IO P2.0 - P2.7 Port 3 Configuration/IO P3.0 - P3.5 External Interrupt 2 Analog COMPARATOR 16-bit PWM module 3 channel 6 output 1 Op Amplifier EUART 12-bit ADC 8bit PWM Internal Oscillator XTAL1 Jtag ports (for debug) Oscillator XTAL2 BUZZER 2 SH79F1615 4. 引脚配置 21 P3.2/INT41/TXD P2.1/PWM1 22 P3.1/INT40/RXD P2.2/PWM2 23 P2.0/PWM0 P2.3/PWM01 24 P3.0/PWM3 P2.4/PWM11 32脚LQFP封装 20 19 18 17 PWM21/P2.5 25 16 FLT/T0/P2.6 26 15 P3.4/INT43/XTAL2 T1/P2.7 27 14 P3.5/INT44/XTAL1 13 GND 31 C2P1/AN1/INT46/P0.3 32 2 3 C1N/P0.1 C2P0/AN0/INT45/P0.2 1 4 5 6 7 12 VDD 11 P1.7 10 P1.6/AN10 9 P1.5/RST/TCK 8 TDI/BUZ/P1.4 C2P2/AN2/INT47/P0.4 TMS/AN9/INT1/P1.3 30 TDO/AN8/INT0/P1.2 VREF/AN3/P0.5 SH79F1615P C1P/OP1P/P1.1 29 OP1N/P1.0 28 OP1OUT/P0.0 AN5/P0.7 C2N/AN4/P0.6 P3.3/INT42 P2.4/PWM11 P2.3/PWM01 P2.2/PWM2 P2.1/PWM1 P2.0/PWM0 P3.0/PWM3 P3.1/INT40/RXD P3.2/INT41/TXD 32脚QFN封装 24 23 22 21 20 19 18 17 PWM21/P2.5 25 16 FLT/T0/P2.6 26 15 P3.4/INT43/XTAL2 T1/P2.7 27 14 P3.5/INT44/XTAL1 13 GND P3.3/INT42 AN5/P0.7 28 C2N/AN4/P0.6 29 12 VDD VREF/AN3/P0.5 30 11 P1.7 C2P2/AN2/INT47/P0.4 31 10 P1.6/AN10 C2P1/AN1/INT46/P0.3 32 9 P1.5/RST/TCK 5 6 7 8 TMS/AN9/INT1/P1.3 TDI/BUZ/P1.4 C1N/P0.1 OP1OUT/P0.0 4 TDO/AN8/INT0/P1.2 3 C1P/OP1P/P1.1 2 OP1N/P1.0 1 C2P0/AN0/INT45/P0.2 SH79F1615Q 注意: 引脚命名中,写在最外侧的引脚功能具有最高优先级,最内侧的引脚功能具有最低优先级(参见引脚配置图)。当一个引 脚被高优先级的功能占用时,即使低优先级功能被允许,也不能作为低优先级功能的引脚。只有当软件禁止引脚的高优先级功 能,相应引脚才能被释放作为低优先级端口使用。 但也有同优先级情况,比如P0.2 - P0.4,它们可以同时用作AD输入通道和比较器同相输入端,具体端口共用请参考7.6.4“端 口共用”章节。 3 SH79F1615 引脚功能 引脚编号 引脚命名 默认功能 1 C2P0/AN0/INT45/P0.2 P0.2 2 C1N/P0.1 P0.1 3 OP1OUT/P0.0 P0.0 4 OP1N/P1.0 P1.0 5 C1P/OP1P/P1.1 P1.1 6 TDO/AN8/INT0/P1.2 P1.2 7 TMS/AN9/INT1/P1.3 P1.3 8 TDI/BUZ/P1.4 P1.4 9 _________ _________ TCK/RST /P1.5 RST 10 AN10/P1.6 P1.6 11 P1.7 P1.7 12 VDD ---- 13 GND ---- 14 XTAL1/INT44/P3.5 P3.5 15 XTAL2/INT43/P3.4 P3.4 16 INT42/P3.3 P3.3 17 TXD/INT41/P3.2 P3.2 18 RXD/INT40/P3.1 P3.1 19 PWM3/P3.0 P3.0 20 PWM0/P2.0 P2.0 21 PWM1/P2.1 P2.1 22 PWM2/P2.2 P2.2 23 PWM01/P2.3 P2.3 24 PWM11/P2.4 P2.4 25 PWM21/P2.5 P2.5 26 P2.6/T0/FLT P2.6 27 T1/P2.7 P2.7 28 AN5/P0.7 P0.7 29 C2N/AN4/P0.6 P0.6 30 VREF/AN3/P0.5 P0.5 31 C2P2/AN2/INT47/P0.4 P0.4 32 C2P1/AN1/INT46/P0.3 P0.3 4 SH79F1615 5. 引脚描述 引脚编号 类型 说明 P0.0 - P0.7 I/O 8位双向I/O端口 P1.0 - P1.7 I/O 8位双向I/O端口 P2.0 - P2.7 I/O 8位双向I/O端口 P3.0 - P3.5 I/O 6位双向I/O端口 T0 I/O 定时器0外部输入/比较功能输出 T1 I/O 定时器1外部输入/比较功能输出 PWM01,11,21 O 16BIT PWM互补输出 PWM0,1,2 O 16BIT PWM输出 PWM3 O 8BIT PWM独立输出 FLT I 16BIT PWM模块故障输入信号 AN0 - ANx I ADC输入通道 VREF I ADC参考电压输入 INT0,1 I 外部中断输入 INT40 - INT47 I/O I/O端口 定时器 PWM 模数转换器 中断,复位,时钟,电源 外部中断4输入源 RST I 该引脚上保持10µs以上的低电平,CPU将复位。由于有内建30kΩ上拉电阻连接到VDD, 所以仅接一个外部电容即可实现上电复位。 注意:在使用JTAG功能(仿真或工具烧写)时,外接电容不能大于0.01µF,否则就 应将外接电容断开。 XTAL1 I 谐振器输入 XTAL2 O 谐振器输出 GND P 接地 VDD P 电源(2.4 - 5.5V) RXD I/O 串口数据输入 TXD O 串口数据输出 BUZ O 蜂鸣器输出 ———— EUART 蜂鸣器 5 SH79F1615 续上表 内部模拟比較器 C1N I 比较器1反相输入端(比较器1同相输入端和放大器1同相输入端OPP共用) C2N I 比较器2反相输入端 C2P0 - 2 I 比较器2同相多路输入端 I 放大器1同相输入端 内部模拟放大器 OP1P O1PN I 放大器1反相输入端 OP1OUT O 放大器1输出端 TDO O 调试接口:测试数据输出 TMS I 调试接口:测试模式选择 TDI I 调试接口:测试数据输入 TCK I 调试接口:测试时钟输入 编程器接口 注意: 当P1.2-1.5作为调试接口时,P1.2-1.5的原有功能被禁止 6 SH79F1615 6. SFR映像 SH79F1615内置256字节的直接寻址寄存器,包括通用数据存储器和特殊功能寄存器(SFR),SH79F1615的SFR有以下 几种: CPU内核寄存器: ACC,B,PSW,SP,DPL,DPH CPU内核增强寄存器: AUXC,DPL1,DPH1,INSCON,XPAGE 电源时钟控制寄存器: PCON,SUSLO Flash寄存器: IB_OFFSET,IB_DATA,IB_CON1,IB_CON2,IB_CON3,IB_CON4,IB_CON5 数据页面控制寄存器: XPAGE 看门狗定时器寄存器: RSTSTAT 系统时钟控制寄存器: CLKCON 中断寄存器: IEN0,IEN1,IENC,IPH0,IPL0,IPH1,IPL1,EXF1 I/O端口寄存器: P0,P1,P2,P3,P0CR,P1CR,P2CR,P3CR, P0PCR,P1PCR,P2PCR,P3PCR 定时器寄存器: TCON , TMOD , TH0 , TH1 , TL0 , TL1 , T2CON , T2MOD , TH2 , TL2 , RCAP2L , RCAP2H,TCON1,T3CON,TL3,TH3 EUART寄存器: SCON,SBUF,SADEN,SADDR,PCON,SBRTL,SBRTH,BFINE ADC寄存器: ADCON1 , ADCON2 , ADT , SEQCON , ADCH1 , ADCH2 , SEQCHX , ADDXL , ADDXH,ADDGTL,ADDGTH,ADDLTL,ADDLTH,ADCMPCON PWM3寄存器: PWM3CON,PWM3P,PWM3D OP&CMP寄存器: CMP1CON,CMP2CON0,CMP2CON1,CMP2CON2 MCM寄存器: PWMCON1 , PWMCON2 , PTCON , PWMOE , PMANUALCON1 , PMANUALCON2 , FLTCON , PWMINTEN , PWMINTF , PWMRLDEN , PWMPL , PWMPH , PWM0DL , PWM0DH , PWM1DL , PWM1DH , PWM2DL , PWM2DH , PWM01DL/PWMDTOL , PWM01DH/PWMDTOH , PWM11DL/PWMDT1L , PWM11DH/PWMDT1H , PWM21DL , PWM21DH BUZZER寄存器: BUZCON 7 SH79F1615 Table 6.1 C51核SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ACC E0H 累加器 00000000 ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 B F0H B寄存器 00000000 B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 AUXC F1H C寄存器 00000000 C.7 C.6 C.5 C.4 C.3 C.2 C.1 C.0 PSW D0H 程序状态字 00000000 CY AC F0 RS1 RS0 OV F1 P SP 81H 堆栈指针 00000111 SP.7 SP.6 SP.5 SP.4 SP.3 SP.2 SP.1 SP.0 DPL 82H 数据指针低位字节 00000000 DPL0.7 DPL0.6 DPL0.5 DPL0.4 DPL0.3 DPL0.2 DPL0.1 DPL0.0 DPH 83H 数据指针高位字节 00000000 DPH0.7 DPH0.6 DPH0.5 DPH0.4 DPH0.3 DPH0.2 DPH0.1 DPH0.0 DPL1 84H 数据指针1低位字节 00000000 DPL1.7 DPL1.6 DPL1.5 DPL1.4 DPL1.3 DPL1.2 DPL1.1 DPL1.0 DPH1 85H 数据指针1高位字节 00000000 DPH1.7 DPH1.6 DPH1.5 DPH1.4 DPH1.3 DPH1.2 DPH1.1 DPH1.0 INSCON 86H 数据指针选择 ----00-0 - - - - DIV MUL - DPS POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 Table 6.2 电源时钟控制SFRs 符号 地址 名称 PCON 87H 电源控制 00000000 SMOD SSTAT IT41 IT40 GF1 GF0 PD IDL SUSLO 8EH 电源控制保护字 00000000 SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 8 SH79F1615 Table 6.3 Flash控制SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IB_OFF SET FBH 可编程flash低位字节偏移 00000000 IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 IB_DATA FCH 可编程flash数据寄存器 00000000 IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 IB_CON1 F2H flash控制寄存器1 00000000 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 IB_CON2 F3H flash控制寄存器2 ----0000 - - - - IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 IB_CON3 F4H flash控制寄存器3 ----0000 - - - - IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 IB_CON4 F5H flash控制寄存器4 ----0000 - - - - IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 IB_CON5 F6H flash控制寄存器5 ----0000 - - - - IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 XPAGE F7H FLASHCON A7H flash页寄存器 00000000 XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 访问控制寄存器 -------0 - - - - - - - FAC Table 6.4 WDT SFR 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 RSTSTAT B1H 看门狗定时器控制寄存器 *-***000 WDOF - PORF LVRF CLRF WDT.2 WDT.1 WDT.0 注意:*表示不同情况的复位决定RSTSTAT寄存器中的复位值,详见WDT章节 Table 6.5 时钟控制SFR 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CLKCON B2H 系统时钟选择 -11000-- - CLKS1 CLKS0 SCMIF OSCXON FS - - 9 SH79F1615 Table 6.6 中断 SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 IEN0 A8H 中断允许控制0 00000000 EA EADC ET2 ES ET1 IEN1 A9H 中断允许控制1 0000000- ESCM EPWM3 EMCM ET3 EX4 IENC BAH 外部中断4通道允许控制 00000000 EXS47 EXS46 EXS45 EXS44 EXS43 IPH0 B4H 中断优先权控制高位0 -0000000 - PADCH PT2H PSH PT1H IPL0 B8H 中断优先权控制低位0 -0000000 - PADCL PT2L PSL IPH1 B5H 中断优先权控制高位1 0000000- PSCMH PPWMH PMCMH IPL1 B9H 中断优先权控制低位1 0000000- PSCML PPWML PMCML EXF1 D8H 外部中断寄存器1 00000000 IF47 IF46 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 EX1 ET0 EX0 ECMP2 ECMP1 - EXS42 EXS41 EXS40 PX1H PT0H PX0H PT1L PX1L PT0L PX0L PT3H PX4H PCMP2H PCMP1H - PT3L PX4L PCMP2L PCMP1L - IF45 IF44 IF43 IF42 IF41 IF40 Table 6.7 端口 SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 P0 80H 8位端口0 00000000 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1 90H 8位端口1 00000000 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2 A0H 8位端口2 00000000 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P3 B0H 8位端口3 --000000 - - P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P0CR E1H 端口0输入/输出方向控制 00000000 P0CR.7 P0CR.6 P0CR.5 P0CR.4 P0CR.3 P0CR.2 P0CR.1 P0CR.0 P1CR E2H 端口1输入/输出方向控制 00000000 P1CR.7 P1CR.6 P1CR.5 P1CR.4 P1CR.3 P1CR.2 P1CR.1 P1CR.0 P2CR E3H 端口2输入/输出方向控制 00000000 P2CR.7 P2CR.6 P2CR.5 P2CR.4 P2CR.3 P2CR.2 P2CR.1 P2CR.0 P3CR E4H 端口3输入/输出方向控制 --000000 - - P3CR.5 P3CR.4 P3CR.3 P3CR.2 P3CR.1 P3CR.0 P0PCR E9H 端口0内部上拉允许 00000000 P0PCR.7 P0PCR.6 P0PCR.5 P0PCR.4 P0PCR.3 P0PCR.2 P0PCR.1 P0PCR.0 P1PCR EAH 端口1内部上拉允许 00000000 P1PCR.7 P1PCR.6 P1PCR.5 P1PCR.4 P1PCR.3 P1PCR.2 P1PCR.1 P1PCR.0 P2PCR EBH 端口2内部上拉允许 00000000 P2PCR.7 P2PCR.6 P2PCR.5 P2PCR.4 P2PCR.3 P2PCR.2 P2PCR.1 P2PCR.0 P3PCR ECH 端口3内部上拉允许 --000000 - - P3PCR.5 P3PCR.4 P3PCR.3 P3PCR.2 P3PCR.1 P3PCR.0 10 SH79F1615 Table 6.8 定时器 SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TCON 88H 定时器/计数器0和1控制寄存器 00000000 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 —— —— TMOD 89H 定时器/计数器0和1模式寄存器 00000000 GATE1 C/T1 M11 M10 GATE0 C/T0 M01 M00 TL0 8AH 定时器/计数器0低位字节 00000000 TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0 8CH 定时器/计数器0高位字节 00000000 TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1 8BH 定时器/计数器1低位字节 00000000 TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 TH1 8DH 定时器/计数器1高位字节 00000000 TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 T2CON C8H 定时器/计数器2控制寄存器 000-0000 TF2 - TRG - - TR2 - - T2MOD C9H 定时器/计数器2模式寄存器 0-----00 TCLKP2 - - - - - - - RCAP2L CAH 定时器/计数器2重载/截获低位字节 00000000 RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCAP2H CBH 定时器/计数器2重载/截获高位字节 00000000 RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0 TL2 CCH 定时器/计数器2低位字节 00000000 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 CDH 定时器/计数器2高位字节 00000000 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 TCON1 CEH 定时器0/1比较功能允许 -00-0000 - TCLK_S1 TCLK_S0 - TCLK_P1 TCLK_P0 TC1 TC0 T3CON ACH 定时器/计数器3控制寄存器 0-00-000 TF3 - T3PS.1 T3PS.0 - TR3 T3CLKS.1 T3CLKS.0 TL3 AAH 定时器/计数器3低位字节 00000000 TL3.7 TL3.6 TL3.5 TL3.4 TL3.3 TL3.2 TL3.1 TL3.0 TH3 ABH 定时器/计数器3高位字节 00000000 TH3.7 TH3.6 TH3.5 TH3.4 TH3.3 TH3.2 TH3.1 TH3.0 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 Table 6.9 EUART SFRs 符号 地址 名称 SCON 98H 串行控制 00000000 SM0/FE SBUF 99H 串行数据缓冲器 00000000 SBUF.7 SADEN 9BH 从属地址掩码 00000000 SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 SADDR 9AH 从属地址 00000000 SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SM1/RXOV SM2/TXCOL SBUF.6 SBUF.5 REN TB8 RB8 TI RI SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 PCON 87H 电源和串行控制 00—0000 SMOD SSTAT IT41 IT40 GF1 GF0 PD IDL SBRTL FDH 波特率发生器寄存器 00000000 SBRT.7 SBRT.6 SBRT.5 SBRT.4 SBRT.3 SBRT.2 SBRT.1 SBRT.0 SBRTH FEH 波特率发生器寄存器 00000000 SBRTEN SBRT.14 SBRT.13 SBRT.12 SBRT.11 SBRT.10 SBRT.9 SBRT.8 11 SH79F1615 Table 6.10 ADC SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 ADCON1 93H ADC控制寄存器1 00000000 ADON ADCIF SC REFC ADCIE ADCON2 92H ADC控制寄存器2 00000000 GRP3 GRP2 GRP1 GRP0 MODE ADT 94H ADC时钟控制寄存器 00000000 TADC3 TADC2 TADC1 TADC0 TS3 TS2 TS1 TS0 SEQCON A6H 映射控制寄存器 0--00000 ALR - - REGSEL REG3 REG2 REG1 REG0 ADCH1 95H ADC通道配置寄存器1 00000000 - - CH5 CH4 CH3 CH2 CH1 CH0 第2位 第1位 第0位 ----------------- PWMTRGEN TIMTRGEN GO/ D ON E TGAP2 TGAP1 TGAP0 ADCH2 A5H ADC通道配置寄存器2 0000---0 - CH10 CH9 CH8 - - - BGCHOP SEQCHx 96H 通道寄存器 ----0000 - - - - SEQx3 SEQx2 SEQx1 SEQx0 ADDxL 96H ADC结果寄存器低位 00000000 A7 A6 A5 A4 A3 A2 A1 A0 ADDxH 97H ADC结果寄存器高位 00000000 A15 A14 A13 A12 A11 A10 A9 A8 ADDGTL 9EH ADC上限比较寄存器低位 00000000 GT7 GT6 GT5 GT4 GT3 GT2 GT1 GT0 ADDGTH 9FH ADC上限比较寄存器高位 00000000 GT15 GT14 GT13 GT12 GT11 GT10 GT9 GT8 ADDLTL 9CH ADC下限比较寄存器低位 ----0000 LT7 LT6 LT5 LT4 LT3 LT2 LT1 LT0 ADDLTH 9DH ADC下限比较寄存器高位 00000000 LT15 LT14 LT13 LT12 LT11 LT10 LT9 LT8 比较寄存器 00000000 ADLIE ADGIE ADLIF ADGIF CSEL3 CSEL2 CSEL1 CSEL0 ADCMPCON 91H 12 SH79F1615 Table 6.11 PWM3 SFRs 符号 地址 PWM3CON ADH 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM3控制寄存器 00000000 PWM3EN PWM3S PWM3CK1 PWM3CK0 FLT3EN PWM3IE PWM3IF PWM3OE PWM3P AEH PWM3周期寄存器 00000000 PWM3P.7 PWM3P.6 PWM3P.5 PWM3P.4 PWM3P.3 PWM3P.2 PWM3P.1 PWM3P.0 PWM3D AFH PWM3占空比寄存器 00000000 PWM3D.7 PWM3D.6 PWM3D.5 PWM3D.4 PWM3D.3 PWM3D.2 PWM3D.1 PWM3D.0 Table 6.12 OP & CMP SFRs 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CMP1CON B3H 放大器 比较器1控制寄存器 0000-000 CMP1EN C1NCHS C1OUT C1IF - C1PCHS C1DEB1 C1DEB0 CMP2CON0 BBH 放大器 比较器2控制寄存器0 00000000 CMP2EN C2NCHS C2PCHS1 C2PCHS0 C2SMT1 C2SMT0 C2OUT C2IF CMP2CON1 BCH 放大器 比较器2控制寄存器1 00000000 TRGPOL BGEN AMP1EN - C2IFS1 C2IFS0 CMP2CON2 8FH 放大器 比较器2控制寄存器2 00000000 C2FT1EN C2FT1S2 C2FT1S1 C2FT1S0 C2FT2EN C2FT2S2 C2FT2S1 C2FT2S0 PWMTRGS1 PWMTRGS0 Table 6.13 BUZZER SFR 符号 地址 名称 POR/WDT/LVR /PIN复位值 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 BUZCON BDH 蜂鸣器输出控制 ----0000 - - - BCA3 BCA2 BCA1 BCA0 BZEN 13 SH79F1615 Table 6.14 MCM SFRs 名称 POR/WDT/LVR /PIN复位值 第7位 PWMCON1 D9H PWM模块控制寄存器1 0-000000 PWMCON2 BFH PWM模块控制寄存器2 -0000-00 符号 地址 第6位 第5位 第4位 第3位 第2位 第1位 第0位 POUTMOD - PWM21S PWM11S PWM01S PWM2S PWM1S PWM0S - ZETIM PEAD ZEAD PDLDEN - DT1 DT0 PTCON CFH PWM时基控制寄存器 --000000 - - PTMOD1 PTMOD0 PTCLK1 PTCLK0 POSTPS1 POSTPS0 PWMOE EFH PWM输出使能寄存器 0-000000 PWMEN - PWM21OE PWM11OE PWM01OE PWM2OE PWM1OE PWM0OE B6H PWM手动输出寄存器1 --000000 - - PMANUAL21 PMANUAL11 PMANUAL01 PMANUAL2 PMANUAL1 PMANUAL0 B7H PWM手动输出寄存器2 --000000 - - POUT21 POUT11 POUT01 POUT2 POUT1 POUT0 D1H PWM故障检测保护寄存器 00000000 FLT1EN FLT1SEL FLT2EN FLT2S FLT2DEB1 FLT2DEB0 FLTM FLTSTAT PMANUAL CON1 PMANUAL CON2 FLTCON PWMINTEN BEH PWMINTF E8H PWMRLDEN E7H PWMPL DAH PWM中断使能寄存器 00000000 PWMPIE PWMZIE PTDD2IE PTUD2IE PTDD1IE PTUD1IE PTDD0IE PTUD0IE PWM中断标志寄存器 00000000 PWMPIF PWMZIF PTDD2IF PTUD2IF PTDD1IF PTUD1IF PTDD0IF PTUD0IF PWM定时器锁定寄存器 00000000 RLDEN.7 RLDEN.6 RLDEN.5 RLDEN.4 RLDEN.3 RLDEN.2 RLDEN.1 RLDEN.0 PWM周期寄存器低位 00000000 PP.7 PP.6 PP.5 PP.4 PP.3 PP.2 PP.1 PP.0 PWMPH DBH PWM周期寄存器高位 00000000 PP.15 PP.14 PP.13 PP.12 PP.11 PP.10 PP.9 PP.8 PWM0DL DCH PWM0占空比控制寄存器低位 00000000 PD0.7 PD0.6 PD0.5 PD0.4 PD0.3 PD0.2 PD0.1 PD0.0 PWM0DH DDH PWM0占空比控制寄存器高位 00000000 PD0.15 PD0.14 PD0.13 PD0.12 PD0.11 PD0.10 PD0.9 PD0.8 PWM1DL DEH PWM1占空比控制寄存器低位 00000000 PD1.7 PD1.6 PD1.5 PD1.4 PD1.3 PD1.2 PD1.1 PD1.0 PWM1DH DFH PWM1占空比控制寄存器高位 00000000 PD1.15 PD1.14 PD1.13 PD1.12 PD1.11 PD1.10 PD1.9 PD1.8 PWM2DL D2H PWM2占空比控制寄存器低位 00000000 PD2.7 PD2.6 PD2.5 PD2.4 PD2.3 PD2.2 PD2.1 PD2.0 PWM2DH D3H PWM2占空比控制寄存器高位 00000000 PD2.15 PD2.14 PD2.13 PD2.12 PD2.11 PD2.10 PD2.9 PD2.8 PD01.6 /DT0.6 PD01.5 /DT0.5 PD01.4 /DT0.4 PD01.3 /DT0.3 PD01.11 /DT0.11 PD11.3 /DT1.3 PD11.11 /DT1.11 PD01.2 /DT0.2 PD01.10 /DT0.10 PD11.2 /DT1.2 PD11.10 /DT1.10 PD01.1 /DT0.1 PD01.9 /DT0.9 PD11.1 /DT1.1 PD11.9 /DT1.9 PD01.0 /DT0.0 PD01.8 /DT0.8 PD11.0 /DT1.0 PD11.8 /DT1.8 PWM01DL /PWMDTOL PWM01DH /PWMDTOH PWM11DL /PWMDT1L PWM11DH /PWMDT1H D4H PWM死区控制寄存器0低位 00000000 PD01.7 /DT0.7 D5H PWM死区控制寄存器0高位 ----0000 PD01.15/- PD01.14/- PD01.13/- PD01.12/- D6H PWM死区控制寄存器1低位 00000000 PD11.7 /DT1.7 PD11.6 /DT1.6 PD11.5 /DT1.5 PD11.4 /DT1.4 D7H PWM死区控制寄存器1高位 ----0000 PD11.15/- PD11.14/- PD11.13/- PD11.12/- PWM21DL F9H PWM21占空比控制寄存器低位 00000000 PD21.7 PD21.6 PD21.5 PD21.4 PD21.3 PD21.2 PD21.1 PD21.0 PWM21DH FAH PWM21占空比控制寄存器高位 00000000 PD21.15 PD21.14 PD21.13 PD21.12 PD21.11 PD21.10 PD21.9 PD21.8 注意:- :保留位。 14 SH79F1615 SFR映像图 可按位寻址 不可按位寻址 0/8 1/9 2/A F8H P5 PWM21DL F0H B AUXC IB_CON1 E8H PWMINTF P0PCR E0H ACC D8H 3/B 4/C 5/D 6/E IB_DATA SBRTL SBRTH IB_CON2 IB_CON3 IB_CON4 IB_CON5 P1PCR P2PCR P3PCR P0CR P1CR P2CR P3CR EXF1 PWMCON1 PWMPL PWMPH PWM0DL D0H PSW FLTCON PWM2DL PWM2DH C8H T2CON T2MOD RCAP2L RCAP2H PWM21DH IB_OFFSET 7/F FFH XPAGE F7H PWMOE EFH PWMRLDEN E7H PWM0DH PWM1DL PWM1DH PWMDT0L/ PWMDT0H/ PWMDT1L/ PWMDT1H/ PWM01DL PWM01DH PWM11DL PWM11DH TL2 TH2 TCON1 PTCON C0H DFH D7H CFH C7H B8H IPL0 IPL1 IENC B0H P3 RSTSTAT CLKCON CMP1CON IPH0 IPH1 PMANUAL CON1 PMANUAL CON2 B7H A8H IEN0 IEN1 TL3 TH3 T3CON PWM3CON PWM3P PWM3D AFH A0H P2 BFINE ADCH2 SEQCON FLASHCON A7H 98H SCON SADEN ADDLTL ADDLTH ADDGTL ADDGTH 9FH 90H P1 ADCON1 ADT ADCH1 ADDxL/ SEQCHx ADDxH 97H 88H TCON TMOD TL0 TL1 TH0 TH1 SUSLO 80H P0 SP DPL DPH DPL1 DPH1 INSCON PCON 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F SBUF SADDR ADCMPCON ADCON2 CMP2CON0 CMP2CON1 注意:未使用的SFR地址禁止读写。 15 BUZCON PWMINTEN PWMCON2 BFH CMP2CON2 8FH 87H SH79F1615 7. 标准功能 7.1 CPU 7.1.1 内核特殊功能寄存器 特性  CPU内核寄存器:ACC,B,PSW,SP,DPL,DPH 累加器 累加器ACC是一个常用的专用寄存器,指令系统中采用A作为累加器的助记符。 B寄存器 在乘除法指令中,会用到B寄存器。在其它指令中,B寄存器可作为暂存器来使用。 栈指针(SP) 栈指针SP是一个8位专用寄存器,在执行PUSH、各种子程序调用、中断响应等指令时,SP先加1,再将数据压栈;执行POP、 RET、RETI等指令时,数据退出堆栈后SP再减1。堆栈栈顶可以是片上内部RAM(00H-FFH)的任意地址,系统复位后,SP 初始化为07H,使得堆栈事实上由08H地址开始。 程序状态字(PSW)寄存器 程序状态字(PSW)寄存器包含了程序状态信息。 Table 7.1 PSW寄存器 D0H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PSW C AC F0 RS1 RS0 OV F1 P 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7 C 6 AC 辅助进位标志位 0:算数逻辑运算中,没有辅助进位或借位发生 1:算数逻辑运算中,有辅助进位或借位发生 5 F0 F0标志位 用户自定义标志位 进位标志位 0:算术或逻辑运算中,没有进位或借位发生 1:算术或逻辑运算中,有进位或借位发生 R0-R7寄存器页选择位 00:页0(映射到00H-07H) 01:页1(映射到08H-0FH) 10:页2(映射到10H-17H) 11:页3(映射到18H-1FH) 4-3 RS[1:0] 2 OV 溢出标志位 0:没有溢出发生 1:有溢出发生 1 F1 F1标志位 用户自定义标志位 0 P 奇偶校验位 0:累加器A中值为1的位数为偶数 1:累加器A中值为1的位数为奇数 数据指针(DPTR) 数据指针DPTR是一个16位专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。它们既可以作为一个 16位寄存器DPTR来处理,也可以作为2个独立的8位寄存器DPH和DPL来处理。 16 SH79F1615 7.1.2 CPU增强内核特殊功能寄存器  扩展的'MUL'和'DIV'指令:16位*8位,16位/8位  双数据指针  CPU增强内核寄存器:AUXC,DPL1,DPH1,INSCON SH79F1615 cpu核扩展了'MUL'和'DIV'的指令,使用一个新寄存器-AUXC寄存器保存运算数据的高8位,以实现16位运算。 在16位乘除法指令中,会用到AUXC寄存器。在其它指令中,AUXC寄存器可作为暂存器来使用。 CPU在复位后进入标准模式,'MUL'和'DIV'的指令操作和标准8051指令操作一致。当INSCON寄存器的相应位置1后,'MUL' 和'DIV'指令的16位操作功能被打开。 操作 MUL DIV 结果 B 高位字节 AUXC --- INSCON.2 = 0;8位模式 (A)*(B) A 低位字节 INSCON.2 = 1;16位模式 (AUXC A)*(B) 低位字节 中位字节 高位字节 INSCON.3 = 0;8位模式 (A)/(B) 商低位字节 余数 --- INSCON.3 = 1;16位模式 (AUXC A)/(B) 商低位字节 余数 商高位字节 双数据指针 使用双数据指针能加速数据存储移动。标准数据指针被命名为DPTR而新型数据指针命名为DPTR1。 数据指针DPTR1与DPTR类似,是一个16位专用寄存器,其高位字节寄存器用DPH1表示,低位字节寄存器用DPL1表示。 它们既可以作为一个16位寄存器DPTR1来处理,也可以作为2个独立的8位寄存器DPH1和DPL1来处理。 通过对INSCON寄存器中的DPS位置1或清0选择两个数据指针中的一个。所有读取或操作DPTR的相关指令将会选择最近一 次选择的数据指针。 寄存器 Table 7.2 数据指针选择寄存器 86H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 INSCON - - - - DIV MUL - DPS 读/写 - - - - 读/写 读/写 - 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 - 0 位编号 位符号 说明 3 DIV 16位/8位除法选择位 0:8位除法 1:16位除法 2 MUL 16位/8位乘法选择位 0:8位乘法 1:16位乘法 0 DPS 数据指针选择位 0:数据指针 1:数据指针1 17 SH79F1615 7.2 RAM 为了提高系统数据变量的处理能力,支持高级语言,SH79F1615提供了额外的RAM空间。 SH79F1615除内部RAM 256字节外,还扩展了外部1280字节的RAM,分为以下四个独立的空间:  低位128字节的RAM(地址从00H到7FH)可直接或间接寻址。  高位128字节的RAM(地址从80H到FFH)只能间接寻址。  特殊功能寄存器(SFR,地址从80H到FFH)只能直接寻址。  外部RAM可通过MOVX指令间接访问。 高位128字节的RAM占用的地址空间和SFR相同,但在物理上与SFR的空间是分离的。当一个指令访问高于地址7FH的内部 位置时,CPU可以根据访问的指令类型来区分是访问高位128字节数据RAM还是访问SFR。 注意:未使用的SFR地址禁止读写。 4FFh 0FFh 0FFh Upper 128 bytes Internal Ram indirect accesses Extenal RAM 80h 80h 7Fh 00 Special Function Register direct accesses Lower 128 bytes Internal Ram direct or indirect accesses 00 RAM地址 SH79F1615支持传统的访问外部RAM方法。可以使用MOVXA,@Ri或MOVX@Ri,A;来访问外部低256字节RAM;使用 MOVX A,@DPTR或MOVX@DPTR,A来访问外部1280字节RAM。 用户也能用XPAGE寄存器来访问外部RAM,仅用MOVX A,@Ri或MOVX@Ri,A指令即可。用户能用XPAGE来表示高于 256字节的RAM地址。 在Flash SSP模式下,XPAGE也能用作分段选择器(详见SSP章节)。 Table 7.3 数据存储页寄存器(XPAGE) F7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 XPAGE[7:0] 说明 RAM页选择控制位 18 SH79F1615 7.3 Flash程序存储器 7.3.1 特性        Flash 存储器包括 16 X 1KByte,总共 16KB 集成类 EEPROM 存储器 8 X 256B,总共 2KB 在工作电压范围内都能进行编程和擦除操作 支持 4 种代码保护模式 在线编程(ICP)操作支持写入、读取和擦除操作 支持整体/扇区擦除和编程 编程/擦除次数: 程序区:至少10,000次 类 EEPROM 区:至少 100,000 次  数据保存年限:至少 10 年  低功耗 0FFFFH Reserved 3FFFH Program Rom (16K) 07FFH 0000H EEPROM Like Data 2048 bytes 0000H 0000H Information Block 1FFFH SH79F1615 SH79F1615为存储程序代码内置16K可编程Flash程序存储区(Program Memory Block),支持在线编程(ICP)模式和扇 区自编程(SSP)模式对Flash存储器操作。每个扇区1024字节。 SH79F1615还内置2048字节的类EEPROM存储区用于存放用户数据。每个扇区256字节,总共8个扇区。 Flash操作定义: 在线编程(ICP)模式:通过Flash编程器对Flash存储器进行擦、读、写操作。 扇区自编程(SSP)模式:用户程序代码在Flash代码区中运行,对Flash存储器(包括Flash代码区和类EEPROM区)进行 擦、读、写操作,但无法擦除代码自身所在的扇区。 Flash存储器支持以下操作: (1) 代码保护控制模式编程 SH79F1615的代码保护功能为用户代码提供了高性能的安全措施。共提供4种保护模式。 代码保护模式0:对烧写器加密,允许/禁止任何编程器的写入/读取操作(不包括整体擦除),以4K(4个扇区)为单位,可 以分开保护。 代码保护模式1:对MOVC指令加密,允许/禁止在其他扇区中通过MOVC指令进行读取操作,或通过SSP模式进行擦除/写 入操作,以4K(4个扇区)为单位,可以分开保护。 代码保护模式2:SSP功能允许/禁止控制,选中后,芯片对code区域的SSP操作(擦除或者写入,不包括读取)是禁止的, 但是不会禁止芯片对类EEPROM的操作。 代码保护模式 3:客户密码保护,可由客户自设密码,密码由 6 字节组成。如果将此功能开启,表示在烧写器或仿真器工具 对芯片做任何操作(读出,写入,擦除或者仿真)之前先输入这个密码,如果这个密码正确,则芯片允许烧写器或仿真器工具 进行相应的操作,反之则报错,无法执行相应操作。 用户必须使用下列方式才能完成代码保护控制模式的设定: Flash编程器在ICP模式设置相应的保护位,以进入所需的保护模式,SSP模式不支持代码保护控制模式编程。 19 SH79F1615 (2) 整体擦除 无论代码保护控制模式的状态如何,整体擦除操作都将会擦除所有程序,代码选项,代码保护位,但是不会擦除类EEPROM 存储区。 用户必须使用下列方式才能完成整体擦除: Flash编程器在ICP模式发出整体擦除指令,进行整体擦除。 SSP模式不支持整体擦除。 (3) 扇区擦除 扇区擦除操作将会擦除所选扇区中内容。用户程式(SSP)和Flash编程器都能执行该操作。 若需用户程式执行该操作,必须禁止所选扇区的代码保护控制模式1和保护模式2。 若需编程器执行该操作,必须禁止所选扇区的代码保护控制模式0,如果保护模式3使能,必须输入正确密码。 用户必须使用下列2种方式之一才能完成扇区擦除: 1. Flash编程器在ICP模式发出扇区擦除指令,进行扇区擦除。 2. 通过SSP功能发出扇区擦除指令,进行扇区擦除(详见在扇区自编程章节)。 (4) 类EEPROM存储区擦除 类EEPROM存储区擦除操作将会擦除类EEPROM存储区中的内容。用户程式(SSP)和Flash编程器都能执行该操作。 用户必须使用下列2种方式之一才能完成类EEPROM存储区擦除: 1. Flash编程器在ICP模式发出类EEPROM存储区擦除指令,进行类EEPROM存储区擦除。 2. 通过SSP功能发出类EEPROM存储区擦除指令,进行类EEPROM存储区擦除(详见在扇区自编程章节)。 (5) 写/读代码 读/写代码操作可以将代码从Flash存储器中读出或写入。用户程式(SSP)和编程器都能执行该操作。 若需用户程式执行读代码操作,必须禁止所选扇区的代码保护控制模式1。但不管保护位如何设置,用户程序都能读程式自 身所在扇区(1K为单位)。 若需用户程式执行写代码操作,必须禁止所选扇区的代码保护控制模式1和代码保护模式2。 注:若只使能扇区的代码保护控制模式1,用户程序不能写其它扇区,但能写程式自身所在扇区(1K为单位), 若需编程器执行该操作,必须禁止所选扇区的代码保护控制模式0。 用户必须使用下列2种方式之一才能完成写/读代码: 1. Flash编程器在ICP模式发出写/读代码指令,进行写/读代码。 2. 通过SSP功能发出写代码指令,进行写代码操作;通过MOVC指令执行读代码操作。 (6) 写/读类EEPROM存储区 读/写类EEPROM存储区操作可以将数据从类EEPROM存储区中读出或写入。用户程式(SSP)和Flash编程器都能执行该 操作。 用户必须使用下列2方式之一才能完成写/读类EEPROM存储区: 1. Flash编程器在ICP模式发出写/读类EEPROM存储区指令,进行写/读类EEPROM存储区。 2. 过SSP功能发出写类EEPROM存储区指令,进行写类EEPROM操作;通过MOVC指令执行读类EEPROM操作。 Flash存储器操作汇总 操作 ICP SSP 代码保护 支持 支持 扇区擦除 支持(无安全位) 支持(无安全位) 整体擦除 支持 不支持 类EEPROM擦除 支持 支持 写/读代码 支持(无安全位) 支持(无安全位) 读/写类EEPROM 支持 支持 代码保护 支持 不支持 20 SH79F1615 7.3.2 ICP模式下的Flash操作 ICP模式为通过Flash编程器对MCU进行编程,可以在MCU焊在用户板上以后编程。ICP模式下,用户系统必须关机后Flash 编程器才能通过ICP编程接口刷新Flash存储器。ICP编程接口包括6个引脚(VDD,GND,TCK,TDI,TMS,TDO)。 编程器使用4个JTAG引脚(TDO,TDI,TCK,TMS)进入编程模式。只有将特定波形输入4个引脚后,CPU才能进入编程 模式。如需详细说明请参考Flash编程器用户指南。 在ICP模式中,通过6线接口编程器能完成所有Flash操作。因为编程信号非常敏感,用户需要用5个跳线将编程引脚(VDD, TDO,TDI,TCK,TMS)从应用电路中分离出来,如下图所示。 Flash Programmer MCU VDD TMS TCK TDI TDO GND To Application Circuit Jumper 当采用ICP模式进行操作时,建议按照如下步骤进行操作: 1. 在开始编程前断开跳线(jumper),从应用电路中分离编程引脚; 2. 将芯片编程引脚连接至 Flash 编程器编程接口,开始编程; 3. 编程结束后断开 Flash 编程器接口,连接跳线恢复应用电路。 如果不加跳线,需保证电源线上的电容负载不超过100uF,4根信号线上的电容负载不超过0.01uf,电阻负载不小于1K阻值。 21 SH79F1615 7.4 SSP 7.4.1 寄存器 擦除/编程用扇区选择和编程用地址偏移量寄存器 此寄存器用来选择待擦除或者待编程扇区的区号,配合IB_OFFSET寄存器来表示待编程字节在扇区内的地址偏移量。 对于程序存储区,一个扇区为1024字节,寄存器定义如下: Table 7.4 编程用地址选择寄存器 F7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7-2 XPAGE[7:2] 被编程的存储单元扇区号,000000代表扇区0,以此类推 1-0 XPAGE[1:0] 被编程的存储单元高2位地址 Table 7.5 编程用地址偏移寄存器 FBH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IB_OFFSET IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 IB_OFFSET[7:0] 被编程的存储单元低8位地址 XPAGE[1:0]和IB_OFFSET[7:0]共10位,可以表示1个程序存储扇区内全部1024个字节的偏移量。 类 EEPROM 扇区,一个扇区为 256 字节,共 8 个扇区,寄存器定义如下: Table 7.6 擦除/编程用扇区选择寄存器 F7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 XPAGE XPAGE.7 XPAGE.6 XPAGE.5 XPAGE.4 XPAGE.3 XPAGE.2 XPAGE.1 XPAGE.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-3 XPAGE[7:3] 在擦除/编程扇区时无意义 XPAGE[2:0] 被擦除/编程的扇区选择位 000:扇区0 001:扇区1 … 111: 扇区7 2-0 说明 类EEPROM块区的访问可通过指令“MOVC A,@A+DPTR”或“MOVC A,@A+PC”实现。 注意:需要将FLASHCON寄存器中的FAC位置1。 22 SH79F1615 Table 7.7 编程用地址偏移寄存器 FBH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IB_OFFSET IB_OFF SET.7 IB_OFF SET.6 IB_OFF SET.5 IB_OFF SET.4 IB_OFF SET.3 IB_OFF SET.2 IB_OFF SET.1 IB_OFF SET.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 第2位 第1位 第0位 位编号 7-0 位符号 说明 IB_OFFSET[7:0] 被编程的存储单元低8位地址 IB_OFFSET[7:0]共8位,可以表示1个块区内全部256个字节的偏移量。 Table 7.8 编程用数据寄存器 第7位 FCH 第6位 第5位 第4位 第3位 IB_DATA.7 IB_DATA.6 IB_DATA.5 IB_DATA.4 IB_DATA.3 IB_DATA.2 IB_DATA.1 IB_DATA.0 IB_DATA 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 第2位 第1位 第0位 位编号 位符号 7-0 IB_DATA[7:0] 说明 待编程数据 Table 7.9 SSP型选择寄存器 第7位 F2H 第6位 第5位 第4位 第3位 IB_CON1.7 IB_CON1.6 IB_CON1.5 IB_CON1.4 IB_CON1.3 IB_CON1.2 IB_CON1.1 IB_CON1.0 IB_CON1 读/写 - - - 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - 0 0 0 0 0 第2位 第1位 第0位 位编号 7-0 位符号 IB_CON1[7:0] 说明 SSP操作选择 0xE6:扇区擦除 0x6E:存储单元编程 Table 7.10 SSP流程控制寄存器1 F3H 第7位 第6位 第5位 第4位 IB_CON2 - - - - 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 位符号 3-0 IB_CON2[3:0] 第3位 IB_CON2.3 IB_CON2.2 IB_CON2.1 IB_CON2.0 说明 必须为05H,否则Flash编程将会终止 23 SH79F1615 Table 7.11 SSP流程控制寄存器2 第7位 F4H 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IB_CON3 - - - - 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 第2位 第1位 第0位 位编号 位符号 3-0 IB_CON3[3:0] IB_CON3.3 IB_CON3.2 IB_CON3.1 IB_CON3.0 说明 必须为0AH,否则Flash编程将会终止 Table 7.12 SSP流程控制寄存器3 F5H 第7位 第6位 第5位 第4位 IB_CON4 - - - - 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 第2位 第1位 第0位 位编号 位符号 3-0 IB_CON4[3:0] 第3位 IB_CON4.3 IB_CON4.2 IB_CON4.1 IB_CON4.0 说明 必须为09H,否则Flash编程将会终止 Table 7.13 SSP流程控制寄存器4 第7位 F6H 第6位 第5位 第4位 第3位 IB_CON5 - - - - 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 位符号 3-0 IB_CON5[3:0] IB_CON5.3 IB_CON5.2 IB_CON5.1 IB_CON5.0 说明 必须为06H,否则Flash编程将会终止 24 SH79F1615 7.4.2 Flash控制流程图 Set IB_OFFSET Set XPAGE Set IB_DATA Set IB_CON1 S0 IB_CON2[3:0]≠5H IB_CON2≠5H Set IB_CON2[3:0]=5H S1 IB_CON3≠AH IB_CON2≠5H Set IB_CON3=AH ELSE S2 IB_CON3≠AH Set IB_CON4=9H Reset IB_CON1-5 IB_CON4≠9H S3 Set IB_CON5=6H S4 Sector Erase IB_CON1=E6H &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H IB_CON1=6EH &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H Programming 25 SH79F1615 7.4.3 SSP编程注意事项 为确保顺利完成SSP编程,用户软件必须按以下步骤设置: (1) 用于代码/数据编程: 1. 关闭中断; 2. 根据地址设置XPAGE,IB_OFFSET; 3. 按编程需要,设置IB_DATA; 4. 按照顺序设置IB_CON1 - 5; 5. 添加4个NOP指令; 6. 开始编程,CPU将进入IDLE模式;编程完成后自动退出IDLE模式; 7. 如需继续写入数据,跳转至第2步; 8. XPAGE寄存器清0;恢复中断设置。 (2) 用于扇区擦除: 1. 关闭中断; 2. 按相应的扇区设置XPAGE; 3. 按照顺序设置IB_CON1 - 5; 4. 添加4个NOP指令; 5. 开始擦除,CPU将进入IDLE模式;擦除完成后自动退出IDLE模式; 6. 如需继续擦除数据,跳转至第2步; 7. XPAGE寄存器清0;恢复中断设置。 (3) 读取: 使用“MOVC A,@A+DPTR”或者“MOVC A,@A+PC”。 7.4.4 可读识别码 SH79F1615每颗芯片出厂后都固化有一个40位的可读识别码,它的值为0 - 0xffffffffff的随机值,它是无法擦除的(存放在地 址信息存储区0x127b - 127f),可以由程序或编程工具读出。 程序读出示例: Unsigned char Temp1,Temp2,Temp3,Temp4,Temp5; FLASHCON = 0x01; Temp1 = CBYTE[0x127b]; Temp2 = CBYTE[0x127c]; Temp3 = CBYTE[0x127d]; Temp4 = CBYTE[0x127e]; Temp5 = CBYTE[0x127f]; FLASHCON = 0x00; FLASHCON寄存器的描述如下: Table 7.14 Flash访问控制寄存器 A7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 FLASHCON - - - - - - - FAC 读/写 - - - - - - - 读/写 复位值 (POR/WDT/LVR/PIN) - - - - - - - 0 位编号 位符号 0 FAC 说明 访问控制 0:MOVC指令或者SSP功能访问主程序区域 1:MOVC指令或者SSP功能访问类EEPROM区域 26 SH79F1615 7.5 系统时钟和振荡器 7.5.1 特性     高低频双振荡器系统 支持3种高频振荡器类型:晶体谐振器、陶瓷谐振器和内部27M RC振荡器 内建128k低频RC振荡器 内建系统时钟分频器 7.5.2 时钟定义 SH79F1615几个内部时钟定义如下: OSCCLK:低频时钟源,SH79F1615低频时钟源为内部的128K低频振荡器时钟。fOSC定义为OSCCLK的频率。tOSC定义为 OSCCLK的周期。 OSCXCLK:高频时钟源,可从3个可选高频振荡器类型中(晶体谐振器,陶瓷谐振器以及内部27MHz高频RC振荡器)选 中的那个振荡器的时钟。fOSCX定义为OSCXCLK的频率。tOSCX定义为OSCXCLK的周期。 OSCSCLK:系统时钟频率分频器的输入时钟。这个时钟可能为OSCCLK或者OSCXCLK。fOSCS定义为OSCSCLK的频率。 tOSCS定义为OSCSCLK的周期。 SYSCLK:系统时钟,系统频率分频器的输出时钟。这个时钟为CPU指令周期的时钟。fSYS定义为SYSCLK的频率。tSYS定 义为SYSCLK的周期。 概述 SH79F1615采用双振荡器系统架构,高频振荡器支持3种振荡器类型:晶体谐振器(400kHz-16MHz),陶瓷谐振器 (400kHz-16MHz)和内部RC振荡器(27MHz),振荡器类型的选择由代码选项OP_OSC决定(详见代码选项章节)。低频振 荡器采用内置的128KRC振荡器。由振荡器产生的基本时钟脉冲提供系统时钟支持CPU及片上外围设备。 Table 7.15 系统时钟控制寄存器 B2H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CLKCON - CLKS1 CLKS0 SCMIF OSCXON FS - - 读/写 - 读/写 读/写 只读 读/写 读/写 - - 复位值 (POR/WDT/LVR/PIN) - 1 1 0 0 0 - - 位编号 6-5 位符号 CLKS[1:0] 说明 系统时钟预分频器 00:fSYS = fOSC 01:fSYS = fOSC/2 10:fSYS = fOSC/4 11:fSYS = fOSC/12 注意:系统复位后此寄存器默认为11,即初始化默认系统时钟12分频 4 3 2 SCMIF OSCXON FS 系统时钟监控标志位 0:表示系统时钟正常运行 1:表示系统时钟故障,硬件自动切换到内部2M RC振荡器 高频时钟源开关控制位 0:关闭高频系统时钟源 1:开启高频系统时钟源 只有代码选项选择为双振荡器模式时,此控制位才有效 系统时钟切换控制位 0:系统时钟选择从低频时钟源分频,即OSCSCLK = OSCCLK 1:系统时钟选择从高频时钟源分频,即OSCSCLK = OSCXCLK 只有代码选项选择为双振荡器模式时,此控制位才有效 27 SH79F1615 注意: 1. 当 OSCXCLK 作为 OSCSCLK 时(也就是说 FS = 1),OSCXON 不能软件清0 2. 当 OSCSCLK 从128K 切换到 OSCXCLK 时,假如当时 OSCXCLK 为关闭状态,则必须按以下步骤依次设置: a.设置 OSCXON = 1,打开 OSCXCLK b.至少等待振荡器预热时间(详见振荡器预热章节) c.设置 FS = 1,选择 OSCXCLK 作为 OSCSCLK 3. 当 OSCSCLK 从 OSCXCLK 切回到128K 时,则必须按以下步骤依次设置: a. FS 位清 0,选择128K 作为 OSCSCLK b.添加1个 NOP 指令 c. OSCXON 位清0(降低功耗) 7.5.3 系统时钟监控(SCM) 为了增强系统的可靠性,SH79f1615含有一个系统时钟监控(SCM)模块。在系统选择高频时钟时(不管是单时钟模式还 是双时钟模式),如果系统时钟出现故障(例如:高频振荡器停振等),内建SCM模块会将OSCCLK自动切换到内部2M振荡器, 同时系统时钟监控标志位(SCMIF)被置1。如果EA和ESCM位均为1,SCM模块将会产生中断。如果高频振荡器恢复工作,SCM 会将OSCCLK自动切换回高频振荡器,然后SCMIF位自动清0。 注意: SCMIF为只读位,只能由硬件清0或者置1。 如果SCMIF清0,SCM将系统时钟自动切换到系统时钟出故障前的状态。 双时钟模式下,如果FS = 0,系统工作在128K低频振荡器,则系统时钟监控功能不可用。 7.5.4 振荡器类型 (1) 陶瓷谐振器:400kHz - 16MHz C1 XTAL1 Ceramic XTAL2 C2 (2) 晶体谐振器:400k - 16MHz C1 XTAL1 Crystal XTAL2 C2 (3) 内部RC振荡器:27MHz(不需要外部电路) XTAL1 XTAL2 28 SH79F1615 7.5.5 谐振器负载电容选择 陶瓷谐振器 频率 C1 C2 455kHz 47 - 100pF 47 - 100pF 11.0592MHz 8 - 15pF 8 - 15pF * 表示已经内建负载电容。 注意: 1. 表中负载电容仅供参考! 2. 以上电容值可通过谐振器基本的起振和运行测试,并非最优值。 3. 请注意印制板上的杂散电容,用户应在超过应用电压和温度的条件下测试谐振器的性能。 在应用陶瓷谐振器/晶体谐振器之前,用户需向谐振器生产厂要求相关应用参数以获得最佳性能。 请登陆http://www.sinowealth.com以取得更多的推荐谐振器生产厂。 29 SH79F1615 7.6 I/O端口 7.6.1 特性  30个双向I/O端口  I/O端口可与其他功能共用 SH79F1615提供30个可编程双向I/O端口。端口数据在寄存器Px中。端口控制寄存器(PxCRy)控制端口是作为输入或者 输出。当端口作为输入时,每个I/O端口带有由PxPCRy控制的内部上拉电阻(x = 0-3,y = 0-7)。 SH79F1615的有些I/O引脚能与选择功能共享。当所有功能都允许时,在CPU中存在优先权以避免功能冲突。(详见端口共 享章节)。 7.6.2 寄存器 Table 7.16 端口控制寄存器 E1H - E6H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 P0CR (E1H) P0CR.7 P0CR.6 P0CR.5 P0CR.4 P0CR.3 P0CR.2 P0CR.1 P0CR.0 P1CR (E2H) P1CR.7 P1CR.6 P1CR.5 P1CR.4 P1CR.3 P1CR.2 P1CR.1 P1CR.0 P2CR (E3H) P2CR.7 P2CR.6 P2CR.5 P2CR.4 P2CR.3 P2CR.2 P2CR.1 P2CR.0 P3CR (E4H) - - P3CR.5 P3CR.4 P3CR.3 P3CR.2 P3CR.1 P3CR.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PxCR.y x = 0-3, y = 0-7 说明 端口输入/输出控制 0:输入模式 1:输出模式 Table 7.17 端口上拉电阻控制寄存器 E9H- EEH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 P0PCR (E9H) P0PCR.7 P0PCR.6 P0PCR.5 P0PCR.4 P0PCR.3 P0PCR.2 P0PCR.1 P0PCR.0 P1PCR (EAH) P1PCR.7 P1PCR.6 P1PCR.5 P1PCR.4 P1PCR.3 P1PCR.2 P1PCR.1 P1PCR.0 P2PCR (EBH) P2PCR.7 P2PCR.6 P2PCR.5 P2PCR.4 P2PCR.3 P2PCR.2 P2PCR.1 P2PCR.0 P3PCR (ECH) - - P3PCR.5 P3PCR.4 P3PCR.3 P3PCR.2 P3PCR.1 P3PCR.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PxPCR.y x = 0-3, y = 0-7 说明 输入端口内部上拉电阻控制 0:内部上拉电阻关闭 1:内部上拉电阻开启 30 SH79F1615 Table 7.18 端口数据寄存器 80H - F8H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1 (90H) P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2 (A0H) P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P3 (B0H) - - P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 Px.y x = 0-3, y = 0-7 说明 端口数据寄存器 7.6.3 端口模块图 SFEN PxPCRy Output Mode VDD Input Mode VDD 0 = ON 1 = OFF (Pull-up) PxCRy I/O Pad Write Data Bus Data Register Read Port Data Register Read Read Data Register/Pad Selection 0: From Pad 1: From data register 0 = OFF 1 = ON Second Function Read Port Pad 注意: 1. 输入端口读操作直接读引脚电平。 2. 输出端口读操作的输入源有两种,一种是从端口数据寄存器读取,另一种是直接读引脚电平。用读取指令来区分: 读-改写指令是读寄存器,而其它指令读引脚电平。 3. 不管端口是否共用为其他功能,对端口写操作都是针对端口数据寄存器。 31 SH79F1615 7.6.4 端口共用 30个双向I/O端口也能共享作为第二或第三种特殊功能。共享优先级按照外部最高内部最低的规则: 在引脚配置图中引脚最外边标注功能享有最高优先级,最里边标注功能享有最低优先级。这意味着一个引脚已经使用较高 优先级功能(如果被允许的话),就不能用作较低优先级功能,即使较低优先级功能被允许。只有较高优先级功能由硬件或软 件关闭后,相应的引脚才能用作较低优先级功能。上拉电阻也由相同规则控制。 当允许端口复用为其它功能时,用户可以修改PxCR﹑PxPCR(x = 0 - 3),但在复用的其它功能被禁止前,这些操作不会 影响端口状态。 当允许端口复用为其它功能时,任何写入端口操作只会影响到数据寄存器;而对于读操作,如果I/O复用为中断功能,则返 回引脚电平,而复用为其它功能时,返回端口寄存器的值。 PORT0: - OP1OUT(P0.0):OP1输出 - C1N-C2N(P0.1,P0.6):比较器1,2输入负端 - AN0-AN5(P0.2 - P0.7):ADC 输入通道 - C2P0-C2P2(P0.2 - P0.4):比较器2的三个同相输入端 - INT45-INT47(P0.2 - P0.4):外部中断4的三个输入端 - VREF(P0.5):ADC 基准电压输入 Table 7.19 PORT0共用列表 引脚编号 3 2 1, 32, 31 30 29 28 优先级 功能 1 OP1OUT 2 P0.0 允许位 CMP2CON1寄存器的AMP1EN位置1 CMP2CON1寄存器的AMP1EN清0 1 C1N CMP1CON寄存器的CMP1EN位置1,且C1NCHS = 0时 2 P0.1 不满足上述情况 1 C2P0-C2P2/ AN0-AN2 ADCH1寄存器的CH0,CH1,CH2位置1作C2P0-C2P2或AN0-AN2的模拟端口 注:比较器功能与ADC功能可以同时实现 2 INT45-INT47 不满足优先级1的情况下,IEN1寄存器的EX4置1,IENC寄存器EXS45 - EXS47置1, 且IO为输入。此时I/O口的输入功能仍然有效。 3 P0.2-P0.4 1 VREF ADCON1寄存器的REFC位置1 2 AN3 ADCON1寄存器的REFC清位0且ADCH1寄存器的CH3位置1 3 P0.5 ADCON1寄存器的相应位REFC清0,ADCH1寄存器的CH3位清0 1 C2N/ AN4 ADCH1寄存器的CH4 = 1作C2N或AN4的模拟端口 注:比较器功能与ADC功能可以同时实现 2 P0.6 ADCH1寄存器的CH4位清0 1 AN5 ADCH1寄存器的CH5位置1 2 P0.7 ADCH1寄存器的CH5位清0 不满足优先级1的情况下都作I/O口 32 SH79F1615 PORT1: - OP1N(P1.0):OP1输入负端 - OP1P(P1.1):OP1输入正端 -C1P(P1.1):比较器1输入正端 - TDO,TMS,TDI,TCK(P1.2 - P1.5):JTAG 接口 - AN8-AN10(P1.2,P1.3,P1.6):ADC 模拟输入口 - INT0,INT1(P1.2,P1.3):外部中断0,1 - BUZ(P1.4):BUZZER 输出 - RST(P1.5):PIN 复位输入 Table 7.20 PORT1共用列表 引脚编号 4 5 6 7 8 9 10 优先级 功能 允许位 1 OP1N CMP2CON1寄存器的AMP1EN位置1 2 P1.0 CMP2CON1寄存器的AMP1EN位清0 1 C1P/OP1P CMP1CON寄存器的CMP1EN位置1且C1PCHS清0或CMP2CON1寄存器的 AMP1EN位置1。 注:比较器功能与放大器功能可同时实现(CMP1EN=1&C1PCHS=0且AMP1EN=1) 2 P1.1 CMP1CON寄存器的CMP1EN位清0,CMP1CON寄存器的AMP1EN位清0 1 TDO 进入仿真模式 2 AN8 非仿真模式下,ADCH2寄存器的CH8位置1 3 INT0 非仿真模式下,ADCH2寄存器的CH8位清0,IEN0寄存器的EA位和EX0位置1, 且IO为输入作中断口功能INT0或T0的GATE=1时,作T0定时计数器控制输入端 INT0。此时外中断功能仍然有效。 4 P1.2 不满足优先级1、2的情况下始终作为I/O。 1 TMS 进入仿真模式 2 AN9 非仿真模式下,ADCH2寄存器的CH9位置1 3 INT1 非仿真模式下,ADCH2寄存器的CH9位清0,IEN0寄存器的EA位和EX1位置1, 且IO为输入,作中断口功能INT1或T1的GATE=1时,作T1定时计数器控制输入端 INT1。此时外中断功能仍然有效。 4 P1.3 不满足优先级1、2的情况下始终作为I/O。 1 TDI 进入仿真模式 2 BUZ 非仿真模式下,BUZCON寄存器的BZEN位置1 3 P1.4 非仿真模式下,BUZCON寄存器的BZEN位清0 1 TCK 进入仿真模式 2 _________ 非仿真模式下,代码选项选择OP_RST作为reset pin 3 RST P1.5 非仿真模式下,代码选项选择OP_RST作为IO 1 AN10 ADCH2寄存器的CH10位置1 2 P1.6 ADCH2寄存器的CH10位清0 33 SH79F1615 PORT2: - PWMn(n = 0.1.2),PWMn1(n = 0.1.2)(P2.0-P2.5):PWM输出 - T0,T1(P2.6,P2.7):定时器0,1输入或比较功能输出 - FLT(P2.6):故障检测输入 Table 7.21 PORT2共用列表 引脚编号 优先级 功能 1 PWMn PWMn1 (n = 0.1.2) PWMOE寄存器的PWMnOE(n = 0.1.2),PWMn1OE(n = 0.1.2)位置1 2 P2.0-P2.5 PWMOE寄存器的PWMnOE(n = 0.1.2),PWMn1OE(n = 0.1.2)位清0 1 FLT 2 T0 FLTCON寄存器的FLT2EN位清0, ——— TCON寄存器的TR0位置1,且TMOD寄存器的C/T0 位或TCON1寄存器的TC0位 其中一个置1 3 P2.6 FLTCON寄存器的FLT2EN位清0, ——— TCON寄存器的TR0位清0,或TMOD寄存器的C/T0 位和TCON1寄存器的TC0位 都为0 1 T1 TCON寄存器的TR1位置1,且TMOD寄存器的C/T1 位或TCON1寄存器的TC1位 其中一个置1 2 P2.7 TCON寄存器的TR1位清0,或TMOD寄存器的C/T1 位和TCON1寄存器的TC1位 都为0 20-25 26 允许位 PWM0/1/2模块的FLTCON寄存器的FLT2EN位置1 ——— 27 ——— 34 SH79F1615 PORT3: - PWM3(P3.0):PWM3的输出 - RXD(P3.1):EUART的输入 - TXD(P3.2):EUART的输出 - INT40,41,42,43,44(P3.1- P3.5):外部中断4的5个输入 - XTAL1,XTAL2(P3.4,P3.5):振荡器输入输出 Table 7.22 PORT3共用列表 引脚编号 19 18 17 16 15, 14 优先级 功能 1 PWM3 PWM3寄存器PWM3CON的PWM3OE位置1 2 P3.0 PWM3寄存器PWM3CON的PWM3OE位清0 1 RXD SCON寄存器的REN位置1(自动上拉) 2 INT40 3 P3.1 SCON寄存器的REN位清0,始终作为I/O 1 TXD 对SBUF寄存器写操作 2 INT41 3 P3.2 1 INT42 2 P3.3 1 XTAL1, XTAL2 2 INT43, INT44 3 P3.4, P3.5 允许位 SCON寄存器的REN位清0,IEN0的EA置1,IEN1寄存器的EX4置1, IENC寄存器EXS40置1,且IO为输入 UART非传输过程中,IEN0的EA置1,IEN1寄存器的EX4置1, IENC寄存器EXS41置1,且IO为输入 对SBUF寄存器无操作,始终作为I/O IEN0的EA置1,IEN1寄存器的EX4置1,IENC寄存器EXS42置1,且IO为输入 不满足上述情况 代码选项OP_OSC选为晶振或陶振 代码选项OP_OSC选为内部RC且IEN0的EA置1,IEN1寄存器的EX4置1。 IENC寄存器EXS43,EXS44置1,且IO为输入 代码选项OP_OSC选为内部RC 35 SH79F1615 7.7 定时器 7.7.1 特性      SH79F1615有4个定时器(定时器0,1,2,3) 定时器0兼容标准的8051 定时器1兼容标准的8051 定时器2有递增递减计数和可编程输出功能,兼有硬件自动单次触发功能 定时器3是16位自动重载定时器,且可以工作在掉电模式 7.7.2 定时器0和定时器1 每个定时器的两个数据寄存器(THx & TLx(x = 0,1))可作为一个16位寄存器来访问。它们由寄存器TCON和TMOD控 制。IEN0寄存器的ET0和ET1位置1能允许定时器0和定时器1中断。(详见中断章节) 定时器x的方式(x = 0,1) 通过计数器/定时器方式寄存器(TMOD)的方式选择位Mx1-Mx0,选择定时器工作方式。 方式0:13位计数器/定时器 在方式0中,定时器x为13位计数器/定时器。THx寄存器存放13位计数器/定时器的高8位,TLx存放低5位(TLx.4-TLx.0)。 TLx的高三位(TLx.7-TLx.5)是不确定的,在读取时应该被忽略。当13位定时器寄存器递增,溢出时,系统置起定时器溢出标 ——— 志TFx。如果定时器x中断被允许,将会产生一个中断。C/ Tx 位选择计数器/定时器的时钟源。 ——— ——— 如果C/ Tx = 1,定时器x输入引脚(Tx)的电平从高到低跳变,使定时器x数据寄存器加1。如果C/ Tx = 0,选择系统时钟为 定时器x的时钟源。 ———— ———— 当GATEx = 0或GATEx = 1且输入信号INTx有效时,TRx置1打开定时器。GATEx置1允许定时器由外部输入信号INTx控制, ———— 便于测量INTx的正脉冲宽度。TRx位置1不强行复位定时器,这意味着如果TRx置1,定时器寄存器将从上次TRx清0时的值开始 计数。所以在允许定时器之前,应该设定定时器寄存器的初始值。 当作为定时器应用时,可配置寄存器TCON1中的TCLKSx(x = 0,1)位选择系统时钟或低频128kHz的8分频作为定时器x (x = 0,1)的时钟源。 可配置寄存器TCON1中的TCLKPx(x = 0,1)位选择系统时钟或系统时钟的1/12作为定时器x(x = 0,1)的时钟源。 当作为定时器应用时,可配置寄存器TCON1中的TC0/1位使定时器0/1溢出时T0/T1脚自动翻转。如果TC0/1被置1,T0/T1 引脚自动设置为输出。 System Clock 1/12 128kHz RC Clock Overflow TCLKPx =0 TCLKSx /8 TLx (5bits) C/Tx =1 Tx 0:Switch Off 1:Switch On GATEx + INTx THx (8bits) TFx Interrupt Request Overflow Flag Tx C/Tx=0 and TCx=1 & TRx The Block Diagram of mode0 of Timerx ( x=0,1 ) 36 SH79F1615 方式1:16位计数器/定时器 除了使用16位定时器/计数器之外,方式1的运行与方式0一致。打开和配置计数器/定时器也如同方式0。 System Clock 1/12 128kHz RC Clock Overflow TCLKPx =0 TCLKSx /8 TLx (8bits) C/Tx =1 Tx THx (8bits) TFx Overflow Flag 0:Switch Off 1:Switch On GATEx + INTx Interrupt Request Tx C/Tx=0 and TCx=1 & TRx The Block Diagram of mode0 of Timerx ( x=0,1 ) 方式2:8位自动重载计数器/定时器 方式2中,定时器x是8位自动重载计数器/定时器。TLx存放计数值,THx存放重载值。当在TLx中的计数器溢出至0x00时, 置起定时器溢出标志TFx,寄存器THx的值被重载入寄存器TLx中。如果定时器中断使能,当TFx置1时将产生一个中断。而在THx 中的重载值不会改变。在允许定时器正确计数开始之前,TLx必须初始化为所需的值。 除了自动重载功能外,方式2中的计数器/定时器的使能和配置与方式1和0是一致的。 当作为定时器应用时,可配置寄存器TCON1中的TCLKSx(x = 0,1)位选择系统时钟或128kHz的8分频作为定时器x(x = 0,1)的时钟源。 可配置寄存器TCON1中的TCLKPx(x = 0,1)位选择系统时钟或系统时钟的1/12作为定时器x(x = 0,1)的时钟源。 当作为定时器应用时,可配置寄存器TCON1中的TC0/1位使定时器0/1溢出时T0/T1脚自动翻转。如果TC0/1被置1,T0/T1 引脚自动设置为输出。 TH0 (8bits) System Clock 1/12 Reload 128kHz RC Clock TCLKPx TCLKSx /8 =0 C/Tx TL0 (8bits) =1 Tx 0:Switch Off 1:Switch On GATEx INTx + overflow TFx Interrupt Request Overflow Flag Tx C/Tx=0 and TCx=1 & The Block Diagram of mode2 of Timerx (x=0,1) TRx 37 SH79F1615 方式3:两个8位计数器/定时器(只限于定时器0) 在方式3中,定时器0用作两个独立的8位计数器/定时器,分别由TL0和TH0控制。TL0使用定时器0的控制(在TCON中)和 ——— 状态(在TMOD中)位:TR0,C/T0 ,GATE0和TF0。TL0能用系统时钟或128kHz的8分频或外部输入信号作为时钟源。 TH0只能用作定时器功能,时钟源来自系统时钟。TH0由定时器1的控制位TR1控制使能,溢出时定时器1溢出标志TF1置1, 控制定时器1中断。 定时器0工作在方式3时,定时器1可以工作在方式0、1或2,但是不能置1 TF1标志和产生中断。TH1和TL1只能用作定时器 功能,时钟源来自系统时钟,GATE1位无效。T1输入脚的上拉电阻也无效。定时器1由方式控制使能与否,因为TR1被定时器0 占用。定时器1在方式0、1或2时使能,在方式3时被关闭。 当作为定时器应用时,可配置寄存器TCON1中的TCLKSx(x = 0,1)位选择系统时钟或128kHz的8分频作为定时器x(x = 0,1)的时钟源。 可配置寄存器TCON1中的TCLKPx(x = 0,1)位选择系统时钟或系统时钟的1/12作为定时器x(x = 0,1)的时钟源。 当作为定时器应用时,可配置寄存器TCON1中的TC0/1位使定时器0/1溢出时T0/T1脚自动翻转。如果TC0/1被置1,T0/T1 引脚自动设置为输出。 System Clock 1/12 128kHz RC Clock =0 TCLKP0 /8 TL0 (8bits) TCLKS0 C/T0 =1 T0 Overflow TF0 Overflow Flag 0:Switch Off 1:Switch On GATE0 Interrupt Request + INT0 T0 C/T0=0 and TC0=1 & TR0 System Clock TH0 (8bits) 1/12 128kHz RC Clock TCLKP0 TCLKS0 /8 0:Switch Off 1:Switch On TR1 Overflow TF1 Interrupt Request Overflow Flag The Block Diagram of mode3 of Timer0 注意:此时定时器 1 溢出率不作为波特率发生器,此功能仅作屏蔽,SH79F1615 芯片的可变波特率仅由寄存器 SBRTL/H 设置。 38 SH79F1615 寄存器 Table 7.23 定时器/计数器x控制寄存器(x = 0,1) 88H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 第1位 第0位 位编号 位符号 说明 7,5 TFx x = 0,1 定时器x溢出标志位 0:定时器x无溢出,可由软件清0 1:定时器x溢出,由硬件置1;若由软件置1将会引起定时器中断 6,4 TRx x = 0,1 定时器x启动,停止控制位 0:停止定时器x 1:启动定时器x 3,1 IEx x = 0,1 外部中断x请求标志位 2,0 Itx x = 0,1 外部中断x触发方式选择位 Table 7.24 定时器/计数器x方式寄存器(x = 0,1) 第7位 89H 第6位 ——— 第5位 第4位 第3位 第2位 ——— TMOD GATE1 M10 GATE0 M00 读/写 读/写 读/写 C/T0 读/写 M01 读/写 C/T1 读/写 M11 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7,3 GATEx x = 0,1 6,2 C/Tx x = 0,1 定时器/计数器方式选择位 0:定时器方式 1:计数器方式 Mx[1:0] x = 0,1 定时器x定时器方式选择位 00:方式0,13位向上计数计数器/定时器,忽略TLx的第7-5位 01:方式1,16位向上计数计数器/定时器 10:方式2,8位自动重载向上计数计数器/定时器 11:方式3(只用于定时器0),两个8位向上计数定时器 ——— 5-4 1-0 说明 定时器x门控位 0:TRx置1,定时器x即被允许 ———— 1:只有INTx在高电平期间TRx置1,定时器x才被允许 39 SH79F1615 Table 7.25 定时器/计数器x数据寄存器1(x = 0,1) 第7位 8AH-8DH 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TL0 (8AH) TL0.7 TL0.6 TL0.5 TL0.4 TL0.3 TL0.2 TL0.1 TL0.0 TH0 (8CH) TH0.7 TH0.6 TH0.5 TH0.4 TH0.3 TH0.2 TH0.1 TH0.0 TL1 (8BH) TL1.7 TL1.6 TL1.5 TL1.4 TL1.3 TL1.2 TL1.1 TL1.0 TH1 (8DH) TH1.7 TH1.6 TH1.5 TH1.4 TH1.3 TH1.2 TH1.1 TH1.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 TLx.y,THx.y 定时器x低及高字节计数器 x = 0-1,y = 0-7 Table 7.26 定时器/计数器x控制寄存器1(x = 0,1) CEH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TCON1 - TCLK_S1 TCLK_S0 - TCLKP1 TCLKP0 TC1 TC0 读/写 - 读/写 读/写 - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - 0 0 - 0 0 0 0 位编号 位符号 说明 6-5 TCLK_Sx x = 0,1 定时器x时钟源控制位 0:系统时钟作为定时器x的时钟源 1:选择128kHz RC时钟的8分频作为定时器x的时钟源 3-2 TCLKPx x = 0,1 定时器x时钟源预分频控制位 0:选择系统时钟的1/12作为定时器x的时钟源 1:选择系统时钟作为定时器x的时钟源 1-0 TCx x = 0,1 比较输出功能允许位 0:禁止定时器x比较输出功能 1:允许定时器x比较输出功能 40 SH79F1615 7.7.3 定时器2 两个数据寄存器(TH2和TL2)串联后可作为一个16位寄存器来访问,由寄存器T2CON和T2MOD控制。设置IEN0寄存器中 的ET2位能允许定时器2中断。(详见中断章节) 定时器2方式 定时器2有4种工作方式:自动重载方式、单次触发。通过设置寄存器T2CON和T2MOD选择这些方式。 定时器2方式选择 TR2 TRG 方式 1 0 1 16位自动重载定时器 1 1 2 单次触发模式 方式1:16位自动重载定时器 在16位自动重载方式下,定時器2为递增计数。定时器2递增到0FFFFH,在溢出后置起TF2位,同时定时器自动将用户软件 写好的寄存器RCAP2H和RCAP2L的16位值装入TH2和TL2寄存器。 System Clock 1/12 Increment Mode TCLKP2 TL2 TH2 Overflow Flag 0:Switch Off 1:Switch On TR2 Interrupt Request TF2 RCAP2L RCAP2H The Block Diagram of Auto Relode Mode (Mode 1)of Timer2 方式2:单次触发模式 TRG = 1,进入此模式。在此模式下,TR2 = 1会引起Timer2自动重载并启动Timer2,将寄存器RCAP2H和RCAP2L的16位 值装入TH2和TL2寄存器,然后开始计数,当计数溢出时,置位TF2,同时触发ADC模块并自动清0 TR2停止Timer2计数。 在此模式下,TR2可以由软件置1也可以硬件置1。硬件置1通过MCPWM模块实现,将PWMCON2寄存器的ZETIM置1,则 MCPWM模块会送出硬件触发信号给Timer2(详见MCPWM模块),硬件置起TR2。 System clock 1/12 TCLKP 2 Interrupt Request TL2 TH2 TF2 Overflow Flag MCPWM Period match + S ADC Block Trig signal D R TR2 0:Switch Off 1:Switch On RCAP2L RCAP2H Clear TR2 The Block Diagram of outo Trig Mode ( Mode 2 ) of Timer2 注意: 当在软件启动Timer2时,又有MCPWM硬件触发信号进来,定时器会停止先前的计数并重载数据,进行新的计数;相反, 由MCPWM硬件信号触发启动Timer2时,软件再置位TR2会当成是无效操作,不会再重载定时器。 41 SH79F1615 寄存器 Table 7.27 定时器2重载/捕获和数据寄存器 第7位 CAH-CDH 第6位 第5位 第4位 第3位 第2位 第1位 第0位 RCAP2L RCAP2L.7 RCAP2L.6 RCAP2L.5 RCAP2L.4 RCAP2L.3 RCAP2L.2 RCAP2L.1 RCAP2L.0 RCAP2H RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H.3 RCAP2H.2 RCAP2H.1 RCAP2H.0 TL2 TL2.7 TL2.6 TL2.5 TL2.4 TL2.3 TL2.2 TL2.1 TL2.0 TH2 TH2.7 TH2.6 TH2.5 TH2.4 TH2.3 TH2.2 TH2.1 TH2.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 第2位 第1位 第0位 位编号 7-0 位符号 RCAP2L.x RCAP2H.x TL2.x 7-0 说明 定时器2重载/捕获数据低位高位,x = 0 - 7 定时器2低位/高位计数器,x = 0 - 7 TH2.x Table 7.28 定时器2控制寄存器 第7位 C8H 第6位 第5位 第4位 第3位 T2CON TF2 - TRG - - TR2 - - 读/写 读/写 - 读/写 - - 读/写 - - 复位值 (POR/WDT/LVR/PIN) 0 - 0 - - 0 - - 位编号 位符号 说明 7 TF2 定时器2溢出标志位 0:无溢出(必须由软件清0) 1:溢出,由硬件设1 5 TRG 单次触发控制位 0:关闭单次触发功能 1:开启单次触发功能 2 TR2 定时器2开始/停止控制位 0:停止定时器2 1:开始定时器2 Table 7.29 定时器2方式控制寄存器 C9H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 T2MOD TCLKP2 - - - - - - - 读/写 读/写 - - - - - - - 复位值 (POR/WDT/LVR/PIN) 0 - - - - - - - 位编号 位符号 7 TCLKP2 说明 分频选择控制位 0:选择系统时钟的1/12作为定时器2的时钟源 1:系统时钟作为定时器2的时钟源 42 SH79F1615 7.7.4 定时器3 定时器3是16位自动重载定时器,通过两个数据寄存器TH3和TL3访问,由T3CON寄存器控制。IEN1寄存器的ET3位置1允 许定时器3中断(详见中断章节)。 定时器3只有一个工作方式:16位自动重载计数器/定时器,可以设置预分频比,并可以工作在CPU掉电模式。 定时器3有一个16位计数器/定时器寄存器(TH3,TL3)。当TH3和TL3被写时,用作定时器重载寄存器,当被读时,被用做 计数寄存器。TR3位置1使定时器3开始递增计数。定时器在0xFFFF到0x0000溢出并置TF3位为1。溢出同时,定时器重载寄存 器的16位数据被重新载入计数寄存器中,TH3写操作也导致重载寄存器的数据重新载入计数寄存器。 由于对TL3和TH3的读写操作需要2条指令才能完成。为保证精确计数,对TL3和TH3寄存器组的读写操作都以对TH3寄存器 的读写操作作为基准。也就是说,写TL3寄存器不会立即生效,而是暂存在一个缓冲寄存器中,只有对TH3寄存器的写操作才会 使TL3和TH3寄存器同时生效。 因此,TH3和TL3读写操作遵循以下顺序: 写操作:先低位后高位 读操作:先高位后低位 注意:虽然TH3和TL3寄存器地址相连,而且TL3地址在前,但由于上述限制,因此在C语言编程时,不能将此2个寄存器定 义为SFR16。 System Clock T3PS[1:0] 128kHzRC 10 Interrupt Request Increment Mode 00 Prescaler 1,8,64,256 16-bit Counter TF3 Overflow Flag T3CLKS[1:0] TR3 0:Switch Off 1:Switch On TL3 TH3 The Block Diagram of Timer3 定时器3可以工作在掉电模式。 但如果T3CLKS[1:0]为00,定时器3不能工作在掉电模式下。当T3CLKS[1:0]为10时(必须工作在双时钟源的高频模式, customer option中选择)定时器3可以工作在普通模式或掉电模式。 注意: 在读或写TH3和TL3时,如果时钟源不是系统时钟,要确保TR3 = 0。 43 SH79F1615 寄存器 Table 7.30 定时器3控制寄存器 ACH 第7位 第6位 第5位 第4位 第3位 第2位 T3CON TF3 - T3PS.1 T3PS.0 - TR3 读/写 读/写 - 读/写 读/写 - 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 - 0 0 - 0 0 0 位编号 位符号 7 第0位 说明 定时器3溢出标志位 0:无溢出(硬件清0) 1:溢出(硬件置1) TF3 5-4 T3PS[1:0] 2 TR3 1-0 第1位 T3CLKS.1 T3CLKS.0 定时器3预分频比选择位 00:1/1 01:1/8 10:1/64 11:1/256 定时器3允许控制位 0:关闭定时器3 1:打开定时器3 T3CLKS[1:0] 定时器3时钟源选择位 00:系统时钟,T3端口作为I/O口 01:T3端口输入外部时钟,自动上拉 10:内部128KHz RC振荡器 11:保留 Table 7.31 定时器3重载/计数数据寄存器 AAH - ABH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TL3 (AAH) TL3.7 TL3.6 TL3.5 TL3.4 TL3.3 TL3.2 TL3.1 TL3.0 TH3 (ABH) TH3.7 TH3.6 TH3.5 TH3.4 TH3.3 TH3.2 TH3.1 TH3.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 TL3.x TH3.x 说明 定时器3低位高位计数器,x = 0 - 7 44 SH79F1615 7.8 8bit脉冲宽度调制模块(PWM3) 7.8.1 特性  8位分辨率PWM模块,提供预分频功能  提供每个PWM周期溢出中断  输出极性可选择,带输出独立允许位,允许位为0时可做通用定时器使用 SH79F1615内建1个8位PWM模块。PWM模块可以产生周期和占空比分别可以调整的脉宽调制波形。寄存器PWM3CON用 于控制PWM模块的时钟源,寄存器PWMP用于设置PWM模块的周期,寄存器PWMD用于设置PWM模块的占空比。 7.8.2 寄存器 Table 7.32 PWM3控制寄存器 ADH 第7位 第6位 PWM3CON PWM3EN PWM3S 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 位编号 位符号 7 PWM3EN 6 PWM3S 5-4 PWM3CK[1:0] 第5位 第4位 第3位 第2位 第1位 第0位 FLT3EN PWM3IE PWM3IF PWM3OE 读/写 读/写 读/写 读/写 读/写 0 0 0 0 0 PWM3CK1 PWM3CK0 说明 PWM3模块控制位 0:关闭PWM3模块 1:打开PWM3模块 PWM3输出模式 0:高电平有效,PWM3占空比有效期间输出高电平,其余时间输出低电平 1:低电平有效,PWM3占空比有效期间输出低电平,其余时间输出高电平 PWM3时钟选择位 00:系统时钟/1 01:系统时钟/8 10:系统时钟/64 11:系统时钟/256 3 FLT3EN PWM3故障检测使能位 0:故障检测功能禁止 1:故障检测功能允许,比较器1的输出信号作为PWM3的故障检测输入信号, 如果检测到比较器1的输出变高,将立即关闭PWM输出,当比较器输出变低 后,不会立即恢复输出,需要与PWM3周期溢出信号同步,然后PWM3才会 恢复输出 2 PWM3IE PWM3中断允许位(只有当IEN1中的EPWM3位也为1时,功能才有效) 0:禁止PWM3周期溢出中断 1:允许PWM3周期溢出中断 1 PWM3IF PWM3中断标志位 0:PWM3周期计数器没有溢出 1:PWM3周期计数器溢出,由硬件置1 0 PWM3OE PWM3输出控制位 0:PWM3输出禁止,用作I/O功能 注:如果此位为0而PWM3EN = 1,则整个PWM3模块仍然正常运行,只是波形 输出被禁止,PWM3模块可以做一个定时器来使用。 1:PWM3输出允许 注:如果此位设为1而PWM3EN位为0,则PWM3输出非选电平(选为高电平有 效则出低电平,低电平有效则出高电平) 45 SH79F1615 Table 7.33 PWM3周期控制寄存器 AEH 第7位 第6位 第5位 第4位 第3位 第2位 PWM3P PWM3P.7 PWM3P.6 PWM3P.5 PWM3P.4 PWM3P.3 PWM3P.2 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 第1位 第0位 位编号 位符号 7-0 PWM3P.7-0 第1位 第0位 PWM3P.1 PWM3P.0 说明 PWM3输出周期 = PWM3P * PWM时钟 当PWM3P = 00H时,如果PWM3S = 0,PWM3引脚输出低 当PWM3P = 00H时,如果 PWM3S = 1,PWM3引脚输出高 Table 7.34 PWM3占空比控制寄存器 第7位 AFH 第6位 第5位 第4位 第3位 第2位 PWM3D.7 PWM3D.6 PWM3D.5 PWM3D.4 PWM3D.3 PWM3D.2 PWM3D.1 PWM3D.0 PWM3D 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 PWM3D.7-0 说明 PWM3占空比控制,控制PWM波形占空比的输出时间 特殊情况: 1. 当PWM3P ≤ PWM3D时 如果PWM3S = 0,则PWM3引脚输出高电平 如果PWM3S = 1,则PWM3引脚输出低电平 2. 当PWM3D = 00H时 如果PWM3S = 0,则PWM3引脚输出低电平 如果PWM3S = 1,则PWM3引脚输出高电平 注意事项: 1. PWM3EN位控制PWM3模块打开。 2. PWM3OE位能选择P3.0端口是作为I/O端口还是PWM3输出端口。 3. 在IEN1寄存器中的EPWM3位能允许/禁止PWM3中断。 4. 如果 PWM3EN 置 1,PWM3 模块打开,但 PWM3OE = 0,PWM3 输出关闭,此时 PWM3 模块可以用作一个 8bit timer, 此时如果中断控制寄存器 IEN1 的 EPWM3 位置 1,PWM3 中断照样发生。 46 SH79F1615 02 01 03 04 05 7D 7E 7F 80 EF F0 01 02 03 04 PWM3 clock tPWM PWM3 output (PWM3S=0) PWM3 output (PWM3S=1) PWM3P = F0H PWM3D = 7FH PWM3 output duty cycle = 7FH x t PWM PWM3 output period cycle = F0H x t PWM PWM3 输出范例 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 01 02 03 04 05 06 07 08 PWM3 clock tPWM Write PWM3P = 0DH Write PWM3D = 07H PWM3 output (PWM3S=0) Duty cycle = 06H X tPWM Duty cycle = 06H X tPWM Period cycle = 0FH X tPWM Period cycle = 0DH X tPWM PWM3 输出周期或者占空比改变范例 47 Duty cycle = 07H X tPWM SH79F1615 7.9 中断 7.9.1 特性  14个中断源  4层中断优先级 SH79F1615有14个中断源:3个外部中断(INT0,INT1和INT4,INT4共8个中断源INT40-47共享一个向量地址),4个定 时器中断(定时器0 - 3),1个EUART中断,系统时钟监控中断, ADC中断和PWM3中断,电机控制PWM模块中断和2个模拟 比较器中断。SH79F1615中断采用4级优先级结构,为处理14个中断源提供了极大的灵活性。 另外,SH79F1615为INT4提供了4种外部中断触发方式,可以通过寄存器选择。 7.9.2 中断允许控制 任何一个中断源均可通过对寄存器IEN0和IEN1中相应的位置位或清零,实现单独允许或禁止此中断功能。IEN0寄存器中还 包含了一个全局使能位EA,它可以禁止所有的中断。如果要打开某个中断源,必须将EA控制位和IEN0/1中相应的控制位都设置 为1。在复位后,所有中断允许位被清0,所有中断被禁止。 Table 7.35 初级中断允许寄存器 A8H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IEN0 EA EADC ET2 ES ET1 EX1 ET0 EX0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7 EA 所有中断允许位 0:禁止所有中断 1:允许所有中断 6 EADC ADC中断允许位 0:禁止ADC中断 1:允许ADC中断 5 ET2 定时器2溢出中断允许位 0:禁止定时器2溢出中断 1:允许定时器2溢出中断 4 ES EUART中断允许位 0:禁止EUART中断 1:允许EUART中断 3 ET1 定时器1溢出中断允许位 0:禁止定时器1溢出中断 1:允许定时器1溢出中断 2 EX1 外部中断1允许位 0:禁止外部中断1 1:允许外部中断1 1 ET0 定时器0溢出中断允许位 0:禁止定时器0溢出中断 1:允许定时器0溢出中断 0 EX0 外部中断0允许位 0:禁止外部中断0 1:允许外部中断0 48 SH79F1615 Table 7.36 中断允许寄存器1 A9H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IEN1 ESCM EPWM3 EMCM ET3 EX4 ECMP2 ECMP1 - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 - 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 - 位编号 位符号 说明 7 ESCM 6 EPWM3 5 EMCM 4 ET3 定时器3溢出中断允许位 0:禁止定时器3溢出中断 1:允许定时器3溢出中断 3 EX4 外部中断4允许位 0:禁止外部中断4 1:允许外部中断4 2 ECMP2 模拟比较器2中断允许位 0:禁止模拟比较器2中断 1:允许模拟比较器2中断 1 ECMP1 模拟比较器1中断允许位 0:禁止模拟比较器1中断 1:允许模拟比较器1中断 SCM中断允许位 0:禁止SCM中断 1:允许SCM中断 PWM3中断允许位 0:禁止PWM3中断 1:允许PWM3中断 电机控制模块MCM(Motor Control Module)2中断允许位 0:禁止电机控制模块所有中断 1:允许电机控制模块中断(和PWM0/1/2中断独立允许控制位配合) 注意: 1. 打开外部中断0/1/4时,相应的端口必须设置为输入状态。 2. 若要打开PWM定时器中断,EPWM位和PWM中断控制寄存器中的PWMxIE(x = 0,1,2)和PWMPIE相应中断允许位 必须同时置1。 3. 若要打开外部中断4,EX4和IENC中的EXS4x(x = 0 - 7)相应位必须同时置1。 Table 7.37 中断通道允许寄存器 BAH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IENC EXS47 EXS46 EXS45 EXS44 EXS43 EXS42 EXS41 EXS40 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 EXS4x x=0-7 说明 外部中断4通道选择位(x = 0 - 7) 0:禁止外部中断4x 1:允许外部中断4x 49 SH79F1615 7.9.3 中断标志 每个中断源都有自己的中断标志,当产生中断时,硬件会置起相应的标志位,在中断汇总表中会列出中断标志位。 外部中断INT0/1产生外部中断INTx(x = 0,1)时,如果中断为边沿触发,CPU在响应中断后,标志IEx(x = 0,1)被硬 件清零;如果中断是电平触发,外部中断源直接控制中断标志,如果是高电平,此标志位保持为1,否则清0。 外部中断INT4产生中断时,EXF1寄存器中的IF4x(x = 0 - 7)标志位置位,INT4共8个中断源共享一个中断向量地址,标 志位需要用户软件清除。但是如果INT4为电平触发时,标志位不能被用户软件清除,只受INT4中断源引脚所接信号电平直接控 制。 注意尽管外部中断被禁止,但是中断标志位仍然受外部中断源输入状态变化而改变,除非该输入引脚配置为其它功能。 定时器0/1中断,当定时器中断产生,中断标志位产生,当进入中断服务程序后中断标志位由硬件清除。 定时器2中断,T2CON寄存器的TF2或EXF2标志位置1时,产生定时器2中断,CPU在响应中断后,标志不能被硬件自动清 0。事实上,中断服务程序必须决定是由TF2或是EXF2产生中断,因此标志必须由软件清0。 定时器3中断,定时器3的计数器溢出时,T3CON寄存器的TF3中断标志位置1,产生定时器3中断请求,CPU在响应中断后, TF3标志被硬件自动清0。 串行通讯中断,SCON寄存器的标志RI或TI置1时,产生EUART中断,CPU在响应中断后,标志不会被硬件自动清0。事实 上,中断服务程序必须判断是收中断还是发中断,标志必须由软件清零。 系统时钟监控中断,SCM寄存器的SCMIF标志位置1时,产生SCM中断,标志由硬件清0。 ADC中断,ADCON寄存器的ADCIF标志位置1时,产生ADC中断。在每次转换中,如果转换结果小于比较值时,ADCIF标 志位为0;如果转换结果大于等于比较值时,上限比较标志位ADGIF标志位置1,同理,还有下限比较标志位。因此ADC模块有3 个中断标志位,分别有各自独立的中断允许位,中断标志必须由软件清0。 电机控制模块MCM中断,当PWMxIF0-2置起,中断产生,中断标志位由软件清零(PWM中断标志请参考PWM电机模块部 分)。 PWM3中断,PWM3是一个独立的8bit PWM模块,独占一个中断矢量入口地址,此标志位在中断响应时由硬件清0。 Table 7.38 外部中断标志寄存器 88H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 3,1 IEx (x = 0,1) 外部中断x请求标志 0:无中断挂起 1:中断挂起 2,0 ITx (x = 0,1) 外部中断x触发方式 0:低电平触发 1:下降沿触发 50 SH79F1615 Table 7.39 外部中断4设置寄存器 87H 第7位 第6位 第5位 第4位 第3位 第2位 PCON SMOD SSTAT IT41 IT40 GF1 GF0 PD IDL 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7 SMOD UART波特率加倍器 6 SSTAT UART SCON[7:5]功能选择 5-4 IT4 [1:0] 外部中断4触发模式位 00:低电平触发 01:下降沿触发 10:上升沿触发 11:双沿触发 IT4[1:0]控制外部中断4各中断源采用同一触发方式 3-2 GF[1:0] 用于软件的通用标志位 1 PD 掉电模式控制位 0 IDL 空闲模式控制位 第1位 第0位 说明 Table 7.40 外部中断4标志寄存器 D8H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 EXF1 IF47 IF46 IF45 IF44 IF43 IF42 IF41 IF40 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 IF4x (x = 0 - 7) 说明 外部中断4请求标志,IF4x须被软件清0 0:无中断请求 1:有中断请求 51 SH79F1615 7.9.4 中断向量 当一个中断产生时,程序计数器内容被压栈,相应的中断向量地址被载入程序计数器。中断向量的地址在中断摘要表中详 细列出。 7.9.5 中断优先级 每个中断源都可被单独设置为4个中断优先级之一,分别通过清0或置1 IPL0,IPH0,IPL1,IPH1中相应位来实现。但OVL 不可屏蔽中断无需IPH/IPL控制,在所有中断源中享有最高优先级(除复位外)。中断优先级服务程序描述如下: 响应一个中断服务程序时,可响应更高优先级的中断,但不能响应同优先级或低优先级的另一个中断。 响应最高级中断服务程序时,不响应其它任何中断。如果不同中断优先级的中断源同时申请中断时,响应较高优先级的中 断申请。 如果同优先级的中断源在指令周期开始时同时申请中断,那么内部查询序列确定中断请求响应顺序。 中断优先级 优先位 中断优先级 IPHx IPLx 0 0 等级0(最低优先级) 0 1 等级1 1 0 等级2 1 1 等级3(最高优先级) Table 7.41 中断优先级控制寄存器 B8H,B4H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IPL0 - PADCL PT2L PSL PT1L PX1L PT0L PX0L IPH0 - PADCH PT2H PSH PT1H PX1H PT0H PX0H 读/写 - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - 0 0 0 0 0 0 0 B9H,B5H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 IPL1 PSCML PPWML PMCML PT3L PX4L PCMP2L PCMP1L - IPH1 PSCMH PPWMH PMCMH PT3H PX4H PCMP2H PCMP1H - 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 - 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 - 位编号 位符号 - PxxxL/H 说明 相应中断源xxx优先级选择 52 SH79F1615 7.9.6 中断处理 中断标志在每个机器周期都会被采样获取。所有中断都在时钟的上升沿被采样。如果一个标志被置起,那么CPU捕获到后 中断系统调用一个长转移指令(LCALL)调用其中断服务程序,但由硬件产生的LCALL会被下列任何条件阻止: 同级或更高级的优先级中断在运行中。 当前的周期不是执行中指令的最后一个周期。换言之,正在执行的指令完成前,任何中断请求都得不到响应。 正在执行的是一条RETI或者访问专用寄存器IEN0\1或是IPL\H的指令。换言之,在RETI或者读写IEN0\1或是IPL\H之后,不 会马上响应中断请求,而至少在执行一条其它指令之后才会响应。 注意:因为更改优先级通常需要2条指令,在此期间,建议关闭相应的中断以避免在修改优先级过程中产生中断。如果当模 块状态改变而中断标志不再有效时,将不会响应此中断。每一个轮询周期只查询有效的中断请求。 轮询周期/LCALL次序如下图所示: C1 C2 Interrupt Polled C3 C3~Cn Interrupt Signal Generated Interrupt Pending Cn~Cn+7 Long Call to Interrupt Vector Service Cn+8 Interrupt service Interrupt Latched 中断响应时间 由硬件产生的LCALL把程序计数器中的内容压入堆栈(但不保存PSW),然后将相应中断源的向量地址(参照中断向量表) 存入程序计数器。 中断服务程序从指定地址开始,到RETI指令结束。RETI指令通知处理器中断服务程序结束,然后把堆栈顶部两字节弹出, 重载入程序计数器中,执行完中断服务程序后程序回到原来停止的地方。RET指令也可以返回到原来地址继续执行,但是中断 优先级控制系统仍然认为一个同一优先级的中断被响应,这种情况下,当同一优先级或低优先级中断将不会被响应。 7.9.7 中断响应时间 如果检测出一个中断,这个中断的请求标志位就会在被检测后的每个机器周期被置起。内部电路会保持这个值直到下一个 机器周期,CPU会在第三个机器周期产生中断。如果响应有效,条件允许,在下一个指令执行的时候硬件LCALL指令将调用请 求中断的服务程序,否则中断被挂起。LCALL指令调用程序需要7个机器周期。因而,从外部中断请求到开始执行中断程序中的 第一条指令至少需要3+7个完整的机器周期。 当请求因前述的的三个情况受阻时,中断响应时间会加长。如果同级或更高优先级的中断正在执行,额外的等待时间取决 于正执行的中断服务程序的长度。 如果正在执行的指令还没有进行到最后一个周期,假如正在执行RETI指令,则完成正在执行的RETI指令,需要8个周期, 加上为完成下一条指令所需的最长时间20个机器周期(如果该指令是16位操作数的DIV,MUL指令),若系统中只有一个中断 源,再加上LCALL调用指令7个机器周期,则最长的响应时间是2+8+20+7个机器周期。 所以,中断响应时间一般大于10个机器周期小于37个机器周期。 53 SH79F1615 7.9.8 外部中断输入 SH79F1615有3个外部中断输入。外部中断0-1分别有一个独立的中断源,外部中断4有8个中断源共用一个中断矢量地址。 外部中断0/1可以通过设置TCON寄存器的IT1,IT0位来选择是电平触发或是边沿触发。当ITx = 0(x = 0,1)时,外部中断INTx (x = 0,1)引脚为低电平触发;当ITx(x = 0,1)= 1,外部中断INTx(x = 0,1)为沿触发,在这个模式中,如果采样到一 个系统时钟周期内INTx(x = 0,1)引脚上采样为高电平而下个系统时钟周期采样为低电平,TCON寄存器的中断请求标志位置 1,发出一个中断请求。由于外部中断引脚每个机器周期采样一次,输入高或低电平应当保持至少1个机器周期以确保能够被正 确采样到。 如果外部中断为下降沿触发,外部中断源应当将中断脚至少保持1个机器周期高电平,然后至少保持1个机器周期低电平。 这样就确保了边沿能够被检测到以使IEx置1。当调用中断服务程序后,CPU自动将IEx清0。 如果外部中断为低电平触发,外部中断源必须一直保持请求有效,直到产生所请求的中断为止,此过程需要2个系统时钟周 期。如果中断服务完成后而外部中断仍旧维持,则会产生下一次中断。当中断为电平触发时不必清除中断标志IEx(x = 0,1), 因为中断只与输入口电平有关。 外部中断4除了具有更多的中断触发方式外,与外部中断0,1操作类似。 当SH79F1615进入空闲或是掉电模式,中断会唤醒处理器继续工作,详见电源管理章节。 注意:外部中断0-1的中断标志位在执行中断服务程序时被自动硬件清0,但外部中断4标志位IF40-47必须要软件清0。 >1 machine Cycle High-Level Threshold Low-Level Threshold >1 machine Cycle Low-Level Threshold >1 machine Cycle 外部中断探测 7.9.9 中断汇总 中断源 向量地址 允许位 标志位 轮询优先级 Reset 0000H - - 0(最高级) 中断号(c 语言) INT0 0003H EX0 IE0 1 0 Timer0 000BH ET0 TF0 2 1 INT1 0013H EX1 IE1 3 2 Timer1 001BH ET1 TF1 4 3 EUART 0023H ES RI+TI 5 4 Timer2 002BH ET2 TF2 6 5 ADC 0033H EADC ADCIF/ADGIF/ADLIF 7 6 CMP1 0043H ECMP1 C1IF 8 8 CMP2 004BH ECMP2 C2IF 9 9 INT4 0053H EX4+IENC IF4X 10 10 Timer3 005BH ET3 TF3 11 11 MCM 0063H EMCM+PWMP/0/1/2IE PWMP/0/1/2IF 12 12 PWM3 006BH EPWM3+PWM3IE PWM3IF 13 13 SCM 0073H ESCM SCMIF 14 14 54 SH79F1615 8. 增强功能 8.1 电机控制模块MCM(Motor Control Module)PWM0/1/2 8.1.1 特性            重要寄存器受保护寄存器PWMRLDEN控制 16位时基计数器 三种时基计数模式:边沿对齐计数、中心对齐计数和单次计数模式 两种波形输出模式:互补模式与独立模式 提供PWM周期匹配、归零匹配和占空比比较匹配中断 3路互补PWM输出或6路独立PWM输出,输出极性可选择 提供故障检测功能可紧急关闭PWM输出 提供寄存器重载使能位以保证寄存器重载同步 4档预分频/后分频功能 可切换手动控制PWM输出 可选择自动触发Timer或ADC转换 SH79F1615内建一个16位电机控制PWM模块。PWM模块由时基模块(PWM Time Base Block)、波形发生模块(Wave Generator)、死区&极性控制模块(Dead&Polarity Logic)、故障检测(Fault Detect Logic)以及输出控制模块(Output Control Logic)组成,如图8-1-1所示。 时基模块中通过一个16位计数器(PWM Counter)对PWM时钟(PWM Clock)计数,用该计数器的值与周期寄存器和0比 较以产生周期匹配信号与归零信号、与占空比寄存器比较以产生占空比匹配信号,结合波形发生模块产生原始的六路PWM信号 Px_O/Px1_O,该原始PWM信号经过死区&极性控制模块后产生带死区和极性的PWM信号Px_D/Px1_D,最后的输出控制模块 和故障检测模块决定是否将Px_D/Px1_D信号输出至PWM引脚PWMx/PWMx1上。 System Clock PTCON[PTCLK] Pre-Counter Logic BUFFER x=0,1,2 PWMP BUFFER PTCON[PTMOD] FLTCON Output of Comparator PWM0/01 Wave Generator PWMCON2[PMODx] PWM0D/PWM01D PWM Counter Fault Detect Logic PWMCON1[PWMx/x1S] BUFFER 16 Period Compare Fault_Signal P0_D P0_O Duty Compare Duty Compare BUFFER FLT PWM0/01 Dead &Polarity Logic P01_O PWM0 P01_D PWM01 PWMP P1_D P1_O Gated&Scaled Reload Signal PWM1/11 Wave Generator PWM1/11 Dead &Polarity Logic P11_O P11_D Output Control Logic Period Match Zero Match P2_D P2_O Post Counter Scaled Period Match Scaled Zero Match PWM2/21 Wave Generator 6 PWM2/21 Dead &Polarity Logic P21_O PWM21 Duty Match Interrupt Control PWMINT1/2/3 PTCON[POSTPS] ADC Triger Logic PWMOE PMANUALCON1/2 PWMDT0&1 图8-1-1 PWM模块简图 55 PWMCON2[OSYNC] ADC Trigger Signal TIM Triger Logic PWM11 PWM2 P21_D BUFFER PWM Time Base Block PWM1 Timer Trigger Signal SH79F1615 8.1.2 寄存器 MCM模块所使用寄存器如下: 功能 PWM计数器时钟 (时基)设置 PWM控制寄存器 PWM输出控制 名称 PTCON PWMCON1 设置PWM波形的输出极性及输出模式(互补/独立) PWMCON2 PWM触发事件的使能以及死区方式选择 PWMOE 设置PWM引脚输出PWM模块产生的信号或者作为普通IO口 PMANUALCON1 设置PWM模块输出PWM波形或直接输出PMANUALCON2中定义的电平 PMANUALCON2 定义PWM模块直接输出的电平 PWMDT0L PWM死区控制 PWMDT0H PWMDT1L PWMDT1H 故障检测保护 PWM中断 寄存器重载使能控制 PWM周期寄存器 设置PWM原始波形上升沿触发死区时间(注1) 设置PWM原始波形下降沿触发死区时间(注1) FLTCON 设置故障保护功能 PWMINTEN PWM中断使能位控制 PWMINTF PWM中断标志位 PWMRLDEN 禁止/使能占空比寄存器/周期寄存器/PWM时基预分频的重载 PWMPL PWMPH PWM0DL PWM0DH PWM01DL PWM01DH PWM1DL PWM占空比寄存器 寄存器描述 设置PWM时基的预分频、PWM模块中控制信号的后分频以及PWM计数器 的运行模式 PWM1DH PWM11DL PWM11DH PWM2DL PWM2DH PWM21DL PWM21DH 16位周期寄存器 16位占空比寄存器,用于产生通道0的原始PWM波形 16位占空比寄存器,只在独立模式下用到,用于产生独立模式下通道01 (注1) 的原始PWM波形 16位占空比寄存器用于产生通道1的原始PWM波形 16位占空比寄存器,只在独立模式下用到,用于产生独立模式下通道11 (注1) 的原始PWM波形 16位占空比寄存器用于产生通道2的原始PWM波形 16位占空比寄存器,只在独立模式下用到,用于产生独立模式下通道21 的原始PWM波形 注 1 : 由 于 独 立 模 式 下 不 需 要 死 区 , 因 此 PWM01DL/PWM01DH 和 PWMDT0L/PWMDT0H 共 用 寄 存 器 地 址 , PWM11DL/PWM11DH和PWMDT1L/PWMDT1H共用寄存器地址。 56 SH79F1615 Table 8.1 PWM时基控制寄存器 CFH 第7位 第6位 第5位 第4位 第3位 第2位 PTCON - - PTMOD1 PTMOD0 PTCLK1 PTCLK0 读/写 - - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - 0 0 0 0 0 0 位编号 5-4 3-2 1-0 位符号 第1位 第0位 POSTPS1 POSTPS0 说明 PTMOD[1:0] PWM0/1/2时基模块中PWM计数器工作模式选择位段 00:边沿对齐计数模式,在此模式下,时基计数器只会发生归零匹配 01:中心对齐计数模式,在此模式下,时基计数器会发生归零匹配和周期匹配 1x:单次计数模式,在此模式下,时基计数器只会发生归零匹配 PTCLK[1:0] PWM时基预分频系数选择位段 00:PWM计数器时钟 = 系统时钟/1 01:PWM计数器时钟 = 系统时钟/2 10:PWM计数器时钟 = 系统时钟/4 11:PWM计数器时钟 = 系统时钟/8 POSTPS[1:0] 后分频系数选择位段 00:无后分频功能 01:中断、重载信号与事件触发信号将2分频 10:中断、重载信号与事件触发信号将4分频 11:中断、重载信号与事件触发信号将8分频 Table 8.2 PWM周期寄存器低位 第7位 DAH 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMPL PP.7 PP.6 PP.5 PP.4 PP.3 PP.2 PP.1 PP.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PP.7 - PP.0 说明 PWM周期控制寄存器低8位 Table 8.3 PWM周期寄存器高位 DBH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMPH PP.15 PP.14 PP.13 PP.12 PP.11 PP.10 PP.9 PP.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PP.15 - PP.8 说明 PWM周期控制寄存器高8位 57 SH79F1615 Table 8.4 PWM模块控制寄存器1 D9H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMCON1 POUTMOD - PWM21S PWM11S PWM01S PWM2S PWM1S PWM0S 读/写 读/写 - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 - 0 0 0 0 0 0 位编号 位符号 说明 7 POUTMOD 5 PWM21S PWM21输出有效电平(Active Polar)选择位 0:PWM21占空比期间输出低电平,其余时间输出高电平 1:PWM21占空比期间输出高电平,其余时间输出低电平 4 PWM11S PWM11输出有效电平(Active Polar)选择位 0:PWM11占空比期间输出低电平,其余时间输出高电平 1:PWM11占空比期间输出高电平,其余时间输出低电平 3 PWM01S PWM01输出有效电平(Active Polar)选择位 0:PWM01占空比期间输出低电平,其余时间输出高电平 1:PWM01占空比期间输出高电平,其余时间输出低电平 2 PWM2S PWM2输出有效电平(Active Polar)选择位 0:PWM2占空比期间输出高电平,其余时间输出低电平 1:PWM2占空比期间输出低电平,其余时间输出高电平 1 PWM1S PWM1输出有效电平(Active Polar)选择位 0:PWM1占空比期间输出高电平,其余时间输出低电平 1:PWM1占空比期间输出低电平,其余时间输出高电平 0 PWM0S PWM0输出有效电平(Active Polar)选择位 0:PWM0占空比期间输出高电平,其余时间输出低电平 1:PWM0占空比期间输出低电平,其余时间输出高电平 PWM0/1/2输出模式(独立/互补)控制位 0:整个模块配置为3通道互补输出 1:整个模块配置为6路独立输出 58 SH79F1615 Table 8.5 PWM模块控制寄存器2 BFH 第7位 第6位 第5位 第4位 第3位 PWMCON2 - ZETIM PEAD ZEAD PDLDEN - DT1 DT0 读/写 - 读/写 读/写 读/写 读/写 - 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - 0 0 0 0 - 0 0 位编号 6 5 4 3 1-0 位符号 第2位 第1位 说明 ZETIM PWM时基计数器启动Timer2使能位 0:PWM模块不会触发启动Timer2 1:中心对齐模式下,PWM时基计数器周期匹配时启动Timer2 边沿对齐或单次模式下,PWM时基计数器归零时刻启动Timer2 (Timer2工作在单次触发模式下,上述设置才有效) PEAD PWM时基计数器与周期寄存器匹配时刻启动AD转换使能位 (只在中心对齐模式下有效) 0:PWM模块周期匹配时刻不会触发启动AD 1:PWM时基计数器与周期寄存器匹配时刻启动AD (ADC的ADON和PWMTRGEN位置1的情况下) ZEAD PWM时基计数器归0时刻启动AD转换使能位 0:PWM模块归0时刻不会触发启动AD 1:PWM时基计数器归0时刻启动AD (ADC的ADON和PWMTRGEN位置1的情况下) PDLDEN DT[1:0] 第0位 PWM计数器周期匹配时重载占空比死区寄存器使能位(只在中心对齐模式下有效) 0:周期匹配时刻不允许重载占空比寄存器和死区寄存器 以及死区方式选择位段DT[1:0] 1:周期匹配时刻允许重载占空比寄存器和死区寄存器 以及死区方式选择位段DT[1:0] 注:1. 无论寄存器如何设置,周期匹配时不会重载PWM周期寄存器 2. 归0匹配时会自动重载周期寄存器、占空比寄存器、死区寄存器以及死区方式 选择位段DT[1:0],此重载动作不受任何寄存器控制 死区寄存器方式选择位段① 00:PWM0/1/2的前死区由PWMDT0设置; PWM0/1/2的后死区由PWMDT1设置 01:PWM1/2的前死区和后死区都由寄存器PWMDT0设置; PWM0的前死区和后死区都由寄存器PWMDT1设置 10:PWM0/2的前死区和后死区都由寄存器PWMDT0设置; PWM1的前死区和后死区都由寄存器PWMDT1设置 11:PWM0/1的前死区和后死区都由寄存器PWMDT0设置; PWM2的前死区和后死区都由寄存器PWMDT1设置 注①:DT[1:0]只在互补模式下有效,因为在独立模式下无死区。PWM0/1/2的前死区只会影响PWM0、PWM1、PWM2的 输出波形;PWM0/1/2的后死区只会影响PWM01、PWM11、PWM21的输出波形,具体参见死区章节。 59 SH79F1615 Table 8.6 PWM0占空比控制寄存器低位 DCH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM0DL PD0.7 PD0.6 PD0.5 PD0.4 PD0.3 PD0.2 PD0.1 PD0.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD0.7-PD0.0 说明 PWM0占空比寄存器低8位 Table 8.7 PWM0占空比控制寄存器高位 DDH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM0DH PD0.15 PD0.14 PD0.13 PD0.12 PD0.11 PD0.10 PD0.9 PD0.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD0.15-PD0.8 说明 PWM0占空比寄存器高8位 Table 8.8 PWM1占空比控制寄存器低位 DEH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM1DL PD1.7 PD1.6 PD1.5 PD1.4 PD1.3 PD1.2 PD1.1 PD1.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD1.7-PD1.0 说明 PWM1占空比寄存器低8位 Table 8.9 PWM1占空比控制寄存器高位 DFH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM1DH PD1.15 PD1.14 PD1.13 PD1.12 PD1.11 PD1.10 PD1.9 PD1.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD1.15-PD1.8 说明 PWM1占空比寄存器高8位 Table 8.10 PWM2占空比控制寄存器低位 D2H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM2DL PD2.7 PD2.6 PD2.5 PD2.4 PD2.3 PD2.2 PD2.1 PD2.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD2.7-PD2.0 说明 PWM2占空比寄存器低8位 60 SH79F1615 Table 8.11 PWM2占空比控制寄存器高位 D3H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM2DH PD2.15 PD2.14 PD2.13 PD2.12 PD2.11 PD2.10 PD2.9 PD2.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 PD2.15-PD2.8 说明 PWM2占空比寄存器高8位 Table 8.12 PWM01占空比控制寄存器低位 D4H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM01DL PD01.7 PD01.6 PD01.5 PD01.4 PD01.3 PD01.2 PD01.1 PD01.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD01.7-PD01.0 PWM01占空比寄存器低8位 Table 8.13 PWM01占空比控制寄存器高位 D5H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM01DH PD01.15 PD01.14 PD01.13 PD01.12 PD01.11 PD01.10 PD01.9 PD01.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD01.15-PD01.8 PWM01占空比寄存器高8位 Table 8.14 PWM11占空比控制寄存器低位 D6H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM11DL PD11.7 PD11.6 PD11.5 PD11.4 PD11.3 PD11.2 PD11.1 PD11.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD11.7-PD11.0 PWM11占空比寄存器低8位 Table 8.15 PWM11占空比控制寄存器高位 D7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM11DH PD11.15 PD11.14 PD11.13 PD11.12 PD11.11 PD11.10 PD11.9 PD11.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD11.15-PD11.8 PWM11占空比寄存器高8位 61 SH79F1615 Table 8.16 PWM21占空比控制寄存器低位 F9H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM21DL PD21.7 PD21.6 PD21.5 PD21.4 PD21.3 PD21.2 PD21.1 PD21.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD21.7- PD21.0 PWM21占空比寄存器低8位 Table 8.17 PWM21占空比控制寄存器高位 FAH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWM21DH PD21.15 PD21.14 PD21.13 PD21.12 PD21.11 PD21.10 PD21.9 PD21.8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 说明 PD21.15-PD21.8 PWM21占空比寄存器高8位 Table 8.18 PWM输出使能寄存器 EFH 第7位 第6位 PWMOE PWMEN - 读/写 读/写 - 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 - 0 0 0 位编号 第5位 第4位 第3位 第2位 第1位 第0位 PWM1OE PWM0OE 读/写 读/写 读/写 0 0 0 PWM21OE PWM11OE PWM01OE PWM2OE 位符号 说明 MCM时基使能控制位(注:PWM0/1/2共用一个时基) 0:关闭MCM(PWM0/1/2)时基 1:打开MCM(PWM0/1/2)时基 7 PWMEN 5 PWM21OE PWM21输出使能位 0:PWM21引脚作为普通I/O口 1:PWM21引脚作为PWM输出口,输出PWM波形或POUT21定义的电平 4 PWM11OE PWM11输出使能位 0:PWM11引脚作为普通I/O口 1:PWM11引脚作为PWM输出口,输出PWM波形或POUT11定义的电平 3 PWM01OE PWM01输出使能位 0:PWM01引脚作为普通I/O口 1:PWM01引脚作为PWM输出口,输出PWM波形或POUT01定义的电平 2 PWM2OE PWM2输出使能位 0:PWM2引脚作为普通I/O口 1:PWM2引脚作为PWM输出口,输出PWM波形或POUT2定义的电平 1 PWM1OE PWM1输出使能位 0:PWM1引脚作为普通I/O口 1:PWM1引脚作为PWM输出口,输出PWM波形或POUT1定义的电平 0 PWM0OE PWM0输出使能位 0:PWM0引脚作为普通I/O口 1:PWM0引脚作为PWM输出口,输出PWM波形或POUT0定义的电平 62 SH79F1615 Table 8.19 PWM0/1/2手动输出设置寄存器1 第7位 B6H 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PMANUAL PMANUAL PMANUAL PMANUAL PMANUAL PMANUAL 11 01 2 1 0 21 PMANUALCON1 - - 读/写 - - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - 0 0 0 0 0 0 位编号 位符号 说明 2-0 PMANUALx x = 0-2 PWMx口输出控制位(只有当PWMxOE = 1时有效,修改立即生效) 0:PWMx口输出PWM波形 1:PWMx口输出由PMANUALCON2寄存器中的POUTx位控制 5-3 PMANUALx1 x = 0-2 PWMx1口输出控制位(只有当PWMx1OE = 1时有效,修改立即生效) 0:PWMx1口输出PWM波形 1:PWMx1口输出由PMANUALCON2寄存器中的POUTx1位控制 Table 8.20 PWM0/1/2手动输出设置寄存器2 B7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PMANUALCON2 - - POUT21 POUT11 POUT01 POUT2 POUT1 POUT0 读/写 - - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - 0 0 0 0 0 0 位编号 位符号 说明 5-3 POUTx1 x = 0-2 PMANUALx1 = 1时,决定PWMx1口的输出电平(修改立即生效) 0:输出0 1:输出1 2-0 POUTx x = 0-2 PMANUALx = 1时,决定PWMx口的输出电平(修改立即生效) 0:输出0 1:输出1 注意:必须先写PMANUALCON2寄存器,后写PMANUALCON1寄存器。 63 SH79F1615 Table 8.21 PWM0/1/2故障检测保护寄存器 D1H 第7位 第6位 第5位 第4位 第3位 第2位 FLTCON FLT1EN FLT1SEL FLT2EN FLT2S 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 FLT2DEB1 FLT2DEB0 第1位 第0位 FLTM FLTSTAT 读/写 读/写 0 0 位编号 位符号 7 FLT1EN 故障检测1功能控制位(注1) 0:故障检测1功能禁止 1:故障检测1功能打开,输入源可以选择比较器1或比较器2 6 FLT1SEL 故障检测1输入源选择控制位 0:比较器1滤波后的输出作为PWM故障检测1输入源,高电平有效 1:比较器2滤波后的输出作为PWM故障检测1输入源,高电平有效 5 FLT2EN 故障检测2功能控制位(注1) 0:故障检测2功能禁止 1:故障检测2功能打开,输入源为FLT引脚 4 FLT2S 3-2 FLT2DEB[1:0] 说明 故障检测2有效电平选择位 0:故障检测2 FLT输入高电平有效 1:故障检测2 FLT输入低电平有效 故障检测2输入滤波参数选择 00:无滤波 01:滤波时间常数为1us 10:滤波时间常数为4us 11:滤波时间常数为16us 注:上述滤波常数时间不是精确值,仅供参考 1 0 FLTM FLTSTAT 检测功能模式选择 0:锁存模式,当检测到故障输入有效,FLTSTAT 被硬件置1,PWM将立即停止 输出,当故障输入变为无效时状态保持不变,只有当FLTSTAT被软件清零后, PWM波形才会在PWM时基计数器归0时刻恢复输出。(当故障输入一直有效 时FLTSTAT无法被软件清除) 1:逐次模式,PWM输出直接由故障检测输入端来控制,如果故障输入有效, FLTSTAT被硬件置1,立即关闭PWM输出。如果故障输入变为无效,FLTSTAT 自动清0,PWM0/1/2波形将在PWM时基计数器归0时刻自动恢复输出 故障检测标志位 0:PWM0/1/2模块处于正常输出状态 1:出现过流,PWM0/1/2模块处于停止输出状态,如果在锁存模式, 可软件清0,恢复PWM输出 注1:故障检测输入1和2可同时打开,任一信号有效都会关闭PWM0/1/2模块输出。 64 SH79F1615 Table 8.22 PWM中断使能控制寄存器 BEH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMINTEN PWMPIE PWMZIE PTDD2IE PTUD2IE PTDD1IE PTUD1IE PTDD0IE PTUD0IE 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7 PWMPIE PWM时基周期匹配中断允许位(只在中心对齐模式下有效) 0:禁止PWM时基周期匹配中断 1:允许PWM时基周期匹配中断 6 PWMZIE PWM时基归零中断允许位 0:禁止PWM时基归零中断 1:允许PWM时基归零中断 5 PTDD2IE PWM时基计数器减计数时与占空比寄存器PWM2DL/H匹配时中断使能位 (只在中心对齐模式下有效) 0:禁止PWM计数器减计数时与PWM2DL/H匹配时触发中断 1:允许PWM计数器减计数时与PWM2DL/H匹配时触发中断 4 PTUD2IE PWM时基计数器增计数时与占空比寄存器PWM2DL/H匹配时中断使能位 0:禁止PWM计数器增计数时与PWM2DL/H匹配时触发中断 1:允许PWM计数器增计数时与PWM2DL/H匹配时触发中断 3 PTDD1IE PWM时基计数器减计数时与占空比寄存器PWM1DL/H匹配时中断使能位 (只在中心对齐模式下有效) 0:禁止PWM计数器减计数时与PWM1DL/H匹配时触发中断 1:允许PWM计数器减计数时与PWM1DL/H匹配时触发中断 2 PTUD1IE PWM时基计数器增计数时与占空比寄存器PWM1DL/H匹配时中断使能位 0:禁止PWM计数器增计数时与PWM1DL/H匹配时触发中断 1:允许PWM计数器增计数时与PWM1DL/H匹配时触发中断 1 PTDD0IE PWM时基计数器减计数时与占空比寄存器PWM0DL/H匹配时中断使能位 (只在中心对齐模式下有效) 0:禁止PWM计数器减计数时与PWM0DL/H匹配时触发中断 1:允许PWM计数器减计数时与PWM0DL/H匹配时触发中断 0 PTUD0IE PWM时基计数器增计数时与占空比寄存器PWM0DL/H匹配时中断使能位 0:禁止PWM计数器增计数时与PWM0DL/H匹配时触发中断 1:允许PWM计数器增计数时与PWM0DL/H匹配时触发中断 65 SH79F1615 Table 8.23 PWM中断标志寄存器 E8H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMINTF PWMPIF PWMZIF PTDD2IF PTUD2IF PTDD1IF PTUD1IF PTDD0IF PTUD0IF 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7 PWMPIF 6 PWMZIF 说明 PWM时基周期匹配中断标志位(只在中心对齐模式下有效) 0:无PWM周期匹配中断 1:发生PWM周期匹配中断 PWM时基归零中断标志位 0:无PWM时基归零中断 1:发生PWM时基归零中断 5 PTDD2IF PWM时基计数器减计数时与占空比寄存器PWM2DL/H匹配时中断标志位 (只在中心对齐模式下有效) 0:未发生中断或发生过但被PTUD2IF信号清0. 1:发生中断 4 PTUD2IF PWM时基计数器增计数时与占空比寄存器PWM2DL/H匹配时中断标志位 0:未发生中断或发生过但被PTDD2IF信号清0. 1:发生中断 3 PTDD1IF PWM时基计数器减计数时与占空比寄存器PWM1DL/H匹配时中断标志位 (只在中心对齐模式下有效) 0:未发生中断或发生过但被PTUD1IF信号清0. 1:发生中断 2 PTUD1IF PWM时基计数器增计数时与占空比寄存器PWM1DL/H匹配时中断标志位 0:未发生中断或发生过但被PTDD1IF信号清0. 1:发生中断 1 PTDD0IF PWM时基计数器减计数时与占空比寄存器PWM0DL/H匹配时中断标志位 (只在中心对齐模式下有效) 0:未发生中断或发生过但被PTUD0IF信号清0. 1:发生中断 0 PTUD0IF PWM时基计数器增计数时与占空比寄存器PWM0DL/H匹配时中断标志位 0:未发生中断或发生过但被PTDD0IF信号清0. 1:发生中断 注意: 1. 即使PWM中断允许位为0,中断标志位也会置1,但中断不会响应。 2. PTDDxIF置1时,硬件会自动将PTUDxIF清零;同样,PTUDxIF置1时,硬件会自动将PTDDxIF清零;因此通过判断这两 个标志位可以判断目前PWM波形处在有效状态还是无效状态。 Table 8.24 PWM死区控制寄存器0的低位 D4H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMDT0L DT0.7 DT0.6 DT0.5 DT0.4 DT0.3 DT0.2 DT0.1 DT0.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 DT0.7-DT0.0 说明 PWM死区0控制寄存器低位 66 SH79F1615 Table 8.25 PWM死区控制寄存器0的高位 D5H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMDT0H - - - - DT0.11 DT0.10 DT0.9 DT0.8 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 位符号 3-0 DT0.11-DT0.8 说明 PWM死区0控制寄存器高位 Table 8.26 PWM死区控制寄存器1的低位 D6H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMDT1L DT1.7 DT1.6 DT1.5 DT1.4 DT1.3 DT1.2 DT1.1 DT1.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 DT1.7-DT1.0 说明 PWM死区1控制寄存器低位 Table 8.27 PWM死区控制寄存器1的高位 D7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMDT1H - - - - DT1.11 DT1.10 DT1.9 DT1.8 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 位符号 3-0 DT1.11-DT1.8 说明 PWM死区1控制寄存器高位 Table 8.28 PWM定时器锁定寄存器 E7H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PWMRLDEN RLDEN.7 RLDEN.6 RLDEN.5 RLDEN.4 RLDEN.3 RLDEN.2 RLDEN.1 RLDEN.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 寄存器修改和重载控制寄存器 0x55:允许软件对模块寄存器的修改 0xAA:允许模块带缓冲的寄存器的重载 注: 7-0 RLDEN.7-0 1. PWM 模 块 的 寄 存 器 , 除 了 中 断 标 志 寄 存 器 PWMINTF 和 手 动 控 制 寄 存 器 PMANUALCON2外,其它寄存器的修改有限制条件,只有当PWMRLDEN = 0x55 时才允许软件修改,否则修改无效 2. PWM模块中有一些寄存器带有缓冲寄存器,包括占空比寄存器、周期寄存器和 PWM时钟预分频寄存器位段PTCLK[1:0]、死区寄存器、以及死区模式选择位段 DT[1:0]。这些寄存器在软件修改后不会立即生效,只有在归零或周期溢出时硬件 重载,才会真正生效。是否允许这些寄存器重载同样受控制,只有当PWMRLDEN = 0xAA时才允许重载 67 SH79F1615 8.1.3 PWM0/1/2时基模块(PWM Time Base Block) PWM模块中的时基模块(Time Base Block)主要由一个16位的计数器结合一个预分频器和一个后分频器组成。如图8-1-1 所示,波形发生器(Wave Generator)用时基模块中16位计数器的值与占空比寄存器比较并结合死区/极性逻辑(Dead&Polarity Logic)和输出控制逻辑(Output Control)最终产生PWM波形。图8-1-2给出了时基模块的逻辑简图。 PTMOD1/0 PWMEN PWM Time Base Block Clock Control PWM Clock System Clock Zero Match Zero Detection Reset Signal Pre-Counter 1:1,1:2,1:4,1:8 16-Bit PWM Counter BUFFER Comparator PTCON[PTCLK] BUFFER Dir Signal PWM Counter Control Period Match POSTPS Post-Counter 1:1,1:2,1:4,1:8 PWMP Scaled Zero Match Gated Reload Scaled Period Match PWMRLDEN==0xAA Scaled Zero Match Scaled Period Match Duty Resgiters Reload Signal PWMCON2[PDLDEN] 图8-1-2 PWM时基逻辑简图 PWM工作时钟 PWM时钟(PWM Clock)由系统时钟(System Clock)分频而来,通过预分频器(Pre-Counter)由寄存器PTCON中的位 段[PTCLK1:PTCLK0]决定PWM模块时钟是系统时钟的1/1、1/2、1/4或1/8分频。 通过软件置位/清零PWMOE寄存器中的PWMEN位可以使能/禁止PWM时基模块。PWMEN位从0置1时,PWM计数器(PWM Counter)开始对PWM时钟从0开始向上计数。PWMEN位清0时,预分频计数器和PWM计数器都将清0。 注意:任何器件复位都将导致PWM时钟预分频计数器和PWM计数器清零。 68 SH79F1615 PWM时基工作方式 PWM时基中16位的PWM计数器有3种工作方式,由PTCON寄存器中的[PMOD1:PMOD0]位段确定。 边沿对齐计数模式 设置PTCON中PMOD位段为00,时基模块中的PWM计数器将工作在边沿对齐计数模式下。此模式下,软件令PWMEN位置 1,PWM计数器将从0开始向上计数,直到与PWM周期寄存器PWMPL/H匹配,然后PWM计数器复位为0并继续向上计数,如此 往复。PWM计数器复位为0的时刻即归零时刻(Zero Match)。软件令PWMEN位清0,PWM Counter将停止计数并在下一个系 统时钟边沿复位为0并停止计数。如设置PWMPL/H = 5,则PWM计数器在此模式下的工作如图8-1-3所示。 4 PWMP = 5 3 3 2 2 1 PWM Counter Tsys 4 2 1 0 1 0 0 0 PWM Clock PWMEN Zero Match PWMP represents PWMPH:PWMPL Zero Match 图8-1-3 边沿对齐计数模式 中心对齐计数模式 设置PTCON中PMOD位段为01,时基模块中的PWM计数器将工作在中心对齐计数模式下。此模式下,软件令PWMEN位置 1,PWM计数器将从0开始向上计数,直到与PWM周期寄存器PWMPL/H匹配,然后PWM计数器开始向下计数直至归0,如此往 复。PWM计数器向下计数至零的时刻即归零时刻(Zero Match),PWM计数器与周期寄存器匹配时刻为周期匹配时刻(Period Match)。软件令PWMEN位清0,PWM Counter将停止计数并在下一个系统时钟边沿复位为0并停止计数。如设置PWMPL/H = 5,则PWM计数器在此模式下的工作如图8-1-4所示。 Tsys 5 5 4 PWMP=5 3 4 4 3 2 1 0 3 2 2 1 PWM Counter 3 1 0 0 PWM Clock PWMEN PWMP represents PWMPH:PWMPL Peirod Match Zero Match 图8-1-4 中心对齐计数模式 69 4 Period Match SH79F1615 单次计数模式 设置PTCON中PMOD位段为10或11,时基模块中的PWM计数器将工作在单次计数模式下。此模式下,软件令PWMEN位 置1,PWM计数器将从0开始向上计数,直到与PWM周期寄存器PWMPL/H匹配时,PWM计数器复位为0,同时PWMEN位将由 硬件清0,PWM输出高阻状态。PWM计数器复位为0的时刻即归零时刻(Zero Match)。 PWM计数器向上计数过程中若软件令PWMEN位清0,则PWM Counter将在下一个系统时钟边沿复位为0并停止计数。如设 置PWMPL/H = 5,则PWM计数器在此模式下的工作如图8-1-5所示。 Tsys 4 PWMP = 5 3 2 2 1 PWM Counter 1 0 0 PWM Clock PWMEN PWMP represents PWMPH:PWMPL Zero Match 图8-1-5 单次计数模式 70 0 SH79F1615 后分频 当不需要每个周期更新PWM的占空比时,后分频将非常有用。如图8-1-2所示,PWM计数器运行时产生的周期匹配信号 (Period Match)和归零信号(Zero Match)经过后分频计数器(Post-Counter),可以实现1/1、1/2、1/4和1/8分频。通过寄 存器PTCON中的POSTPS位段可以选择以上四档后分频。令POSTPS = 0则禁止后分频,周期匹配信号和归零信号不会被分频。 首先,分频后的周期匹配信号(Scaled Period Match)和归零信号(Scaled Zero Match)结合PWMRLDEN寄存器值用于 控制周期寄存器PWMPL/H、预分频系数PTCON[PTCLK1:PTCLK0]以及占空比寄存器的重载。 其次,分频后的周期匹配信号(Scaled Period Match)和归零信号(Scaled Zero Match)可用于产生归零中断和周期匹配 中断,如图8-1-1所示。详见“时基中断”章节。 最后,分频后的周期匹配信号(Scaled Period Match)和归零信号(Scaled Zero Match)可用于触发ADC,Timer2。但在 中心对齐模式下触发timer2,只能用分频后的周期匹配信号触发;中心对其模式触发ADC,可以选择在分频后的周期匹配信号触 发,或分频后的归零信号触发,也可以同时选择两者。而在边沿对齐模式下,只能用分频后的归零信号触发。 但是,后分频只对周期匹配信号和归零信号有效,对占空比匹配时刻无效,比如,允许占空比中断和归零信号中断的情况 下,设置后分频为8分频时,归零信号进中断会在8个PWM周期后才进一次中断,而占空比匹配信号则任然会在每个PWM周期 触发中断。 时基中断 时基中断包括分频后的周期匹配信号所触发的周期中断和分频后的归零信号所触发的归零中断。分频后的周期匹配信号发 生时将令寄存器PWMINTF中的PWMPIF位置1,此时若PWMINTEN中的PWMPIE位为1则将触发周期中断;分频后的归零信号 发生时将令寄存器PWMINTF中的PWMZIF位置1,此时若PWMINTEN中的PWMZIE位为1则将触发归零中断。PWMPIF位和 PWMZIF位需由软件写0清除。 PTCON中POSTPS段等于0时,PWM计数器的周期匹配信号和归零信号不会被分频,故周期匹配信号每次发生时都将令 PWMPIF位置1,归零信号每次发生时都将令PWMZIF位置1。 PWM周期寄存器与预分频系数的自动重载 周期寄存器PWMPL和PWMPH都有一个缓存寄存器(BUFFER),用户能够读写PWMPL/H但不能操作其缓存寄存器,如 图8-1-2所示。PWM时基计数器运行时实际上是与周期寄存器的BUFFER进行比较以产生周期匹配信号。 PTCON寄存器中的PTCLK位段也有一个缓存寄存器(BUFFER),用户能够读写PTCLK位段但不能操作其缓存寄存器, 如图8-1-2所示。系统时钟实际上是利用预分频系数位段PTCLK的BUFFER进行分频以产生PWM时钟(PWM Clock)。 由于存在缓冲寄存器,因此对周期寄存器和分频比寄存器位的读写有特殊规定: 当PWMRLDEN寄存器的值设为0x55时,才允许对这些寄存器进行修改,然后只有当PWMRLDEN寄存器中的值设为0xAA 时,分频后的归零信号发生时才会将PWMPL和PWMPH寄存器和PTCLK位段锁存至对应的缓存寄存器(BUFFER)中,这样可 以避免寄存器修改过程中发生重载,也避免寄存器修改立即生效可能会出现毛刺。因此对上述寄存器的修改,必须要有对 PWMRLDEN寄存器的配合操作才能完成。 71 SH79F1615 8.1.4 PWM0/1/2波形发生模块 PWM波形发生模块指图8-1-1中的Wave Generator模块。波形发生模块使用PWM时基模块中PWM计数器的值与6个16位占 空比值进行比较,从而产生原始的6路PWM波形:P0_O、P01_O、P1_O、P11_O、P2_O和P21_O。该原始6路PWM波形信 号经过死区&极性逻辑和输出控制逻辑最终反映在6个PWM输出引脚上,如图8-1-1所示。 波形发生器的逻辑简图如图8-1-6所示。 PWMxD PWMx/PWMx1 Wave Generator PWMINTF[PTUDxIF] x = 0~2 PWMINTF[PTDDxIF] BUFFER 16 Bits data from PWM Counter Duty Compare Px_O Duty Compare Px1_O 16 0 1 BUFFER Duty Registers Reload Signal PWMCON2[PMODx] PWMx1D 图8-1-6 波形发生器逻辑简图 PWM0/1/2输出模式 PWM模块中包含有3个波形发生模块,对应于3对PWM输出:PWM0/PWM01、PWM1/PWM11和PWM2/PWM21,如图8-1-1 所示。对于每对PWM输出可以分别配置为互补模式或独立模式。 互补输出模式 令PWMCON1寄存器中POUTMOD位为0,PWMx/PWMx1工作在互补状态,16位PWM计数器与占空比寄存器PWMxDL/H 比较以产生Px_O和Px1_O波形,因此PWMx和PWMx1引脚上最终输出的PWM波形使用的是同一占空比寄存器PWMxDL/H。在 互 补 输 出 模 式 下 , 可 由 寄 存 器 PWMCON1 设 置 PWMx/PWMx1 引 脚 上 输 出 波 形 的 极 性 、 并 可 由 寄 存 器 PWMDT0L/H 和 PWMDT1L/H设置死区(详见8.1.5节“PWM死区与极性控制模块”)。(x = 0 - 2) 独立输出模式 令PWMCON1寄存器中POUTMOD位为1,PWMx/PWMx1工作在独立状态,16位PWM计数器与占空比寄存器PWMxDL/H 比较以产生Px_O波形,16位PWM计数器与占空比寄存器PWMx1DL/H的值比较以产生Px1_O波形,因此PWMx和PWMx1引脚 上最终输出的PWM波形使用的是不同的占空比寄存器PWMxDL/H与PWMx1DL/H。在独立输出模式下,可由寄存器PWMCON1 设置PWMx/PWMx1引脚上输出波形的极性、但是寄存器PWMDT0L/H和PWMDT1L/H将无效,即独立输出模式下PWM的输出 无死区(详见8.1.5节“PWM死区与极性控制模块”)。(x = 0 - 2) 72 SH79F1615 边沿对齐计数模式下的PWM0/1/2原始波形 令PTCON中PTMOD = 00,将PWM时基设置为边沿对齐计数模式。在互补输出模式下,PWM原始输出波形Px_O和Px1_O 如图8-1-7所示。PWMEN置1后,Px_O和Px1_O波形变高,PWM计数器与占空比寄存器PWMxDL/H匹配后Px_O和Px1_O波形 将变低直至PWM计数器归零,如此往复。 4 PWMP = 5 Tsys 4 3 3 PWMxD = 4 2 PWMx1D = 2 2 1 PWM Counter 2 1 0 1 0 0 0 PWM Clock PWMEN None-Duty Zone Px_O/Px1_O Duty Zone PTUDxIF = 1 PTDDxIF= 0 PTUDxIF = 1 PTDDxIF= 0 PWMP represents PWMPH:PWMPL PWMxD represents PWMxDH:PWMxDL PWMx1D represents PWMx1DH:PWMx1DL 图8-1-7 边沿对齐计数、互补输出模式下的PWM原始波形 在独立输出模式下,PWM原始输出波形Px_O和Px1_O如图8-1-8所示。PWMEN置1后,Px_O和Px1_O波形变高,PWM计 数器与占空比寄存器PWMxDL/H匹配后Px_O波形将变低直至PWM计数器归零;PWM计数器与占空比寄存器PWMx1DL/H匹配 后Px1_O波形将变低直至PWM计数器归零,如此往复。 Tsys 4 4 PWMP = 5 3 3 PWMxD = 4 2 2 PWMx1D = 2 1 1 PWM Counter 2 1 0 0 0 PWM Clock PWMEN Px_O Duty Zone None-Duty Zone Px1_O PTUDxIF = 1 PTDDxIF= 0 PTUDxIF = 1 PTDDxIF= 0 PWMP represents PWMPH:PWMPL PWMxD represents PWMxDH:PWMxDL PWMx1D represents PWMx1DH:PWMx1DL 图8-1-8 边沿对齐计数、独立输出模式下的PWM原始波形 73 0 SH79F1615 中心对齐计数模式下的PWM0/1/2原始波形 Tsys 5 5 4 PWMP=5 PWMxD = 4 4 3 2 2 3 2 1 1 PWM Counter 4 4 3 3 1 0 0 0 PWM Clock PWMEN Px_O/Px1_O None-Duty Zone None-Duty Zone Duty Zone PTUDxIF = 0 PTDDxIF = 1 PTUDxIF = 1 PTDDxIF = 0 PTUDxIF = 1 PTDDxIF = 0 PWMP represents PWMPH:PWMPL PWMxD represents PWMxDH:PWMxDL PTUDxIF = 0 PTDDxIF = 1 图8-1-9 中心对齐计数、互补输出模式下的PWM原始波形 令PTCON中PTMOD = 01,将PWM时基设置为中心对齐计数模式。 在互补输出模式下,PWM原始输出波形Px_O和Px1_O如图8-1-9所示。PWMEN置1后,Px_O和Px1_O波形保持为高,PWM 计数器增计数时与PWMxDL/H匹配后Px_O和Px1_O波形将变低直至PWM计数器减计数时再次与PWMxDL/H匹配,如此往复。 Tsys 5 5 4 PWMP=5 PWMxD = 4 4 4 PWMx1D = 2 2 2 3 2 1 1 1 PWM Counter 4 3 3 3 0 0 0 PWM Clock PWMEN Px_O None-Duty Zone Duty Zone Px1_O PTUDxIF = 1 PTDDxIF = 0 PTUDxIF = 0 PTDDxIF = 1 PTUDxIF = 1 PTDDxIF = 0 PTUDxIF = 0 PTDDxIF = 1 PWMP represents PWMPH:PWMPL PWMxD represents PWMxDH:PWMxDL PWMx1D represents PWMx1DH:PWMx1DL 图8-1-10 中心对齐计数、独立输出模式下的PWM原始波形 独立输出模式下,PWM原始输出波形Px_O和Px1_O如图8-1-10所示。PWMEN置1后,Px_O和Px1_O波形变高,PWM计 数器增计数时与PWMxDL/H匹配后Px_O波形将变低直至PWM计数器减计数时再次与PWMxDL/H匹配;PWM计数器增计数时与 PWMx1DL/H匹配后Px1_O波形将变低直至PWM计数器减计数时再次与PWMx1DL/H匹配,如此往复。 74 SH79F1615 单次计数模式下的PWM0/1/2原始波形 令PTCON中PTMOD = 10或11,将PWM时基设置为单次计数模式。在互补输出模式下,PWM原始输出波形Px_O和Px1_O 如图8-1-11所示。PWMEN置1后,Px_O和Px1_O波形变高,PWM计数器增计数时与PWMxDL/H匹配后Px_O和Px1_O波形将 变低。 Tsys 4 PWMP = 5 3 PWMxD = 4 2 PWMx1D = 2 2 1 PWM Counter 1 0 0 0 PWM Clock PWMEN None-Duty Zone Px_O/Px1_O Duty Zone PTUDxIF = 1 PTDDxIF= 0 PWMP represents PWMPH:PWMPL PWMxD represents PWMxDH:PWMxDL PWMx1D represents PWMx1DH:PWMx1DL 图8-1-11 单次计数、互补输出模式下的PWM原始波形 在独立输出模式下,PWMEN置1后,Px_O和Px1_O波形变高,PWM计数器增计数时与PWMxDL/H匹配后Px_O波形将变 低;PWM计数器增计数时与PWMx1DL/H匹配后Px1_O波形将变低。 占空比寄存器的自动重载 如图8-1-6所示,6个占空比寄存器都带有对应的缓存寄存器(BUFFER),16位的PWM计数器实际上是与BUFFER比较从而 控制PWM原始波形的变化。用户能够读写6个占空比寄存器,却不能操作其对应的缓存寄存器。结合图8-1-2和图8-1-6可以看出。 由于存在缓冲寄存器,和周期寄存器一样,对占空比寄存器的读写有特殊规定: 当PWMRLDEN寄存器的值设为0x55时,才允许对占空比寄存器进行修改,然后只有当PWMRLDEN寄存器中中的值设为 0xAA时,分频后的归零信号发生时才会将占空比寄存器锁存至对应的缓存寄存器(BUFFER)中,这样可以避免寄存器修改过 程中发生重载,也避免寄存器修改立即生效可能会出现毛刺。因此对上述寄存器的修改,必须要有对PWMRLDEN寄存器的配合 操作才能完成。 另外,在中心对齐模式下,和周期寄存器不同,占空比寄存器除了可以用归零信号重载外,还可以用周期匹配信号重载, 如果将PWMCON2中PDLDEN位为1,则分频后的周期匹配信号也会将硬件自动将6个占空比寄存器锁存至对应的缓存寄存器中 (称之为重载)。 因此在边沿计数模式和单次计数模式下,由于时基模块只有归零匹配信号,故PWM计数器每次复位为0时都将发生一次占 空比寄存器的重载;中心对齐计数模式下,时基模块能产生归零匹配以及周期匹配信号,故PWM计数器每次复位为0以及与周 期寄存器匹配时都可以重载占空比寄存器。 占空比中断 PWM0/1/2时基计数器向上计数时,不论在何种模式,当计数值与占空比寄存器PWMxDL/H匹配时能够令PWMINTF寄存器 中PTUDxIF位置1,同时令PTDDxIF位清0,此时若PWMINTEN寄存器中的PTUDxIE位为1,则能够触发占空比中断,如图8-1-7/ 图8-1-9所示。在中心对齐计数模式中,PWM时基计数器向下计数时,当计数值与PWMxDL/H匹配时能够令PWMINTF寄存器中 PTDDxIF位置1,同时令PTUDxIF位清0,此时若PWMINTEN寄存器中的PTDDxIE位为1,则能够触发占空比中断,如图8-1-9 所示。 注意:不论互补输出模式还是独立输出模式,占空比中断只是在 PWM 计数器与 PWMxDL/H 相关的比较时产生,与 PWMx1DL/H相关比较匹配时不会改变占空比中断标志。 75 SH79F1615 8.1.5 PWM死区与极性控制模块 如图8-1-1所示,波形发生器(Wave Generator)产生的PWM原始波形Px_O/Px1_O经过死区与极性控制模块(Dead&Polarity Logic)产生最终的PWM波形Px_D/Px1_D。带有死区与极性的PWM信号Px_D/Px1_D由输出控制模块(Output Control Logic) 和故障检测模块(Fault Detect Logic)决定是否由引脚PWMx/PWMx1送出,(x = 0 - 2)。 当寄存器PWNCON2中的DT[1:0] = 00时死区与极性控制模块的逻辑简图如图8-1-12所示。 PWMDT0 PWMx/x1Dead & Polarity Logic BUFFER PWMCON1[PWMxS] 1 Px_O Rising Edge Delay 1 Px_D 0 0 PWMCON1[POUTMOD] Px1_O Falling Edge Delay 0 1 1 Px1_D 0 PWMCON1[PWMxS] BUFFER PWMDT1 图8-1-12 死区与极性控制逻辑简图 PWM死区的实现 如图8-1-12所示,死区逻辑通过将PWM原始信号Px_O的上升和Px1_O的下降沿延迟一段时间而实现。PWMCON1寄存器 中POUTMOD位为1时,PWM原始信号Px_O/Px1_O不会经过死区逻辑,即PWMx/PWMx1引脚输出为独立模式时,无死区; PWMCON1寄存器中POUTMOD位为0时,PWM原始信号Px_O/Px1_O将经过死区逻辑,即PWMx/PWMx1引脚为互补模式时, 将引入死区。死区时间由寄存器PWMDT0/1决定: 上升沿延迟时间(Rising Edge Delay)= PWMDT0 * TPWM CLOCK 下降沿延迟时间(Falling Edge Delay)= PWMDT1 * TPWM CLOCK 注意:只在PWMCON2中的DT[1:0] = 00的情况如此,其他情况请参照PWMCON2寄存器部分的描述。 在不同的极性设置下,插入死区后的PWM波形也将不同,详见“不同极性设置下带死区的PWM波”章节。 注意:PWMDT0 = 0时,原始PWM波形Px_O的上升沿不会触发延时;PWMDT1 = 0时,原始PWM波形Px1_O的下降沿也 不会触发延时。 PWM极性设置 为了有效说明PWM引脚上波形的极性,将一个PWM周期划分为“占空比时区(Duty Zone)”与“非占空比时区(None-Duty Zone)”,各种时基计数模式下,占空比时区和非占空比时区的划分如图8-1-7 - 图8-1-11所示。由寄存器PWMCON1中的位 PWMxS/PWMx1S来决定占空比时区期间Px_D和Px1_D的电平。 PWMxS控制Px_D的极性。PWMxS = 0时,Px_D的占空比时区期间为高电平,非占空比时区期间为低电平;PWMxS = 1 时,Px_D的占空比时区期间为低电平,非占空比时区期间为高电平。 PWMx1S控制Px1_D的极性。PWMx1S = 0时,Px1_D的占空比时区期间为低电平,非占空比时区期间为高电平;PWMx1S = 1时,Px1_D的占空比时区期间为高电平,非占空比时区期间为低电平。 结合图8-1-7 - 图8-1-11所示的PWM原始波形Px_O/Px1_O和图8-1-12可以清晰的反映死区与极性的实现。 76 SH79F1615 PWM死区和死区方式选择位段的自动重载 PWM死区也和占空比、周期一样,有自己的缓冲寄存器(BUFFER),自动重载功能类似于占空比的自动重载,可以在周 期匹配和归零信号发生时重载。对死区寄存器的修改也必须PWMRLDEN寄存器的值设为0x55时,然后只有当PWMRLDEN寄存 器中的值设为0xAA时,重载生效。 死区的方式选择位段DT[1:0]同样也有缓冲寄存器(BUFFER),自动重载功能类似于占空比的自动重载,可以在周期匹配 和归零信号发生时重载。对死区寄存器的修改也必须PWMRLDEN寄存器的值设为0x55时,然后只有当PWMRLDEN寄存器中的 值设为0xAA时,重载生效。 不同极性设置下带死区的PWM波形 图8-1-13给出了一对在DT[1:0] = 00时的PWM输出Px_D/Px1_D设置为互补输出模式,所有的极性组合下带有死区的波形。 One PWM Period None-Duty Zone Duty Zone None-Duty Zone Px_O Px1_O Px_O with Rising Edge Delayed DR Px1_O with Falling Edge Delayed DF CASE1:Default Px_D,PWMxS=0 Px1_D,PWMx1S=0 CASE2 Px_D,PWMxS=0 Px1_D,PWMx1S=1 CASE3 Px_D,PWMxS=1 Px1_D,PWMx1S=0 CASE4 Px_D,PWMxS=1 Px1_D,PWMx1S=1 图8-1-13 不同极性设置下的死区波形 注:图中的DR表示前死区,DF表示后死区。上图是DT[1:0] = 00时的情况,DT[1:0]为其他值时的情况,可参考PWMCON2 寄存器部分的说明,这里就不再多阐述。 77 SH79F1615 PWM0/1/2输出控制与故障检测 PWM输出控制与故障检测模块(Output Control Logic & Fault Detect Logic)用于决定最终的PWM波形Px_D是否在PWMx 引脚上输出、Px1_D是否在PWMx1引脚上输出。输出控制与故障检测模块的逻辑简图如图8-1-14所示。 Fault Detect logic Output of Comparator1 FLTCON[FLT1EN] FLTCON[FLT1SEL] 0 0 Output of Comparator2 FLTCON[FLTM] 0 1 1 Fault Dealing logic FLTCON[FLT2EN] 0 FLT PIN FLTCON[FLTSTAT] 0 1 Fault_Signal PTCON[PWMEN] PWMOE[PWMyOE] High Impedance PMANUALCON2[POUTy] Py_D 1 1 0 0 I/O Output Control logic PMANUALCON1[PMANUALy] x stands for 0,1,2 y stands for 0 or 01 when x=0 y stands for 1 or 11 when x=1 y stands for 2 or 21 when x=2 图8-1-14 输出控制与故障检测逻辑简图 78 1 0 PWMy SH79F1615 8.1.6 故障检测模块 PWM模块中有一个故障检测模块(Fault Detection logic),当FLTCON寄存器中FLT1EN位或FLT2EN位为1时,使能该模 块功能,若FLT1EN和FLT2EN都为0,则禁止该模块功能。PWM故障检测主要目的是:当故障发生时(比如过流)可以切断PWM 的输出,进入无效驱动状态(输出高阻态),进而达到保护外部功率器件的目的,由于它是由硬件控制,因此响应速度非常快。 故障检测模块的逻辑简图如图8-1-14所示,结合输出控制模块(Output Control Logic)能够实现前述的保护功能。 故障信号输入源的选择 可以选择比较器(1/2)的输出或FLT引脚输入作为故障检测输入信号,如图8-1-14所示。无论故障信号来自比较器1/2输出 或FLT,高电平为有效故障信号,即比较器输出由低变高时将自动切断PWM的输出。 如图8-1-14所示,若FLT1EN = 1,则比较器1或2的输出会作为故障检测输入信号。一旦比较器的输出变高,并保持滤波时 间(下节介绍),则六路PWM引脚PWMx/PWMx1立即输出高阻态(x = 0 - 2)。同理,若FLT2EN = 1,则FLT引脚输入作为 故障检测输入信号,一旦FLT引脚输入变高(FLT2S = 0时),并保持滤波时间,则六路PWM引脚PWMx/PWMx1立即输出高阻 态(x = 0 - 2)。如果FLT2EN = 0,则禁止FLT引脚的故障检测功能,FLT引脚作为普通IO使用(但比较器的故障检测功能不受 影响)。 当使用PWM模块来控制图8-1-15所示的逆变桥,六个管子为高电平驱动的功率管:设置PWMxS/PWMx1S = 0(x = 0 - 2), 则PWM0/1/2的输出在占空比时区期间为高电平,PWM01/11/21的输出在占空比时区期间为低电平(见“PWM极性的设置”章节), 设置PWMCON1寄存器中POUTMOD位为0,,即PWM0与PWM01互补输出、PWM1与PWM11互补输出、PWM2与PWM21互 补输出。使能故障检测后,若发生故障,则六路PWM立即输出高阻态。 PWM0 + PWM1 PWM2 PWM11 PWM21 VDC PWM01 图8-1-15 PWM控制逆变桥示例图 79 SH79F1615 FLT引脚上的信号与比较器输出信号的滤波 当 FLT2EN = 1 时 , FLT 引 脚 的 输 入 信 号 会 作 为 故 障 检 测 输 入 信 号 使 用 , 此 时 可 以 通 过 设 置 寄 存 器 FLTCON 中 的 FLT2DEB[1:0]位段来调整对此信号的滤波时间。FLT2DEB[1:0] = 0时,无滤波作用。当FLT2S = 1时,故障检测输入信号的电 平由低变高时立即触发保护;FLT2DEB[1:0] = 1 - 3时,可以将滤波时间设置为1us、4us、16us共3档,故障检测输入信号由低 变高时,高电平需要至少保持FLT2DEB[1:0]定义的时间长度,故障检测模块才认为故障检测输入信号的电平变高了,从而触发 保护;故障检测输入信号的电平由高变低时,低电平需要至少保持FLT2DEB[1:0]定义的时间长度,故障检测模块才认为FLT引 脚上的有效故障电平消失了,六路PWM的输出根据保护模式(下节介绍)动作。当FLT2S = 0时,FLT故障检测信号变为低电 平有效,情况与FLT2S = 1时相反。根据功率管的特性,恰当的设置滤波时间可以滤除故障检测输入信号上的噪声。 FLT1EN = 1时,可选比较器1、2的输出信号作为故障检测输入信号使用,当比较器输出由0变1时触发保护,此时比较器1、 2的输出滤波时间和算法分别在寄存器CMP1CON和CMP2CON2中设置。(详见运算放大器和比较器模块章节) 保护模式 有两种故障检测模式:锁存模式与逐次模式。 (1) 锁存模式 设置FLTCON寄存器中FLTM位为0将使能锁存模式。当故障检测模块探测到有效故障信号,六路PWM引脚PWMx/PWMx1 立即切换为高阻态。 若有效故障信号没有消失,六路PWM引脚PWMx/PWMx1将保持输出高阻态(x = 0 - 2),软件无法清除FLTSTAT标志位, 六路PWM引脚无法恢复正常输出。 当有效故障信号消失后,六路PWM引脚PWMx/PWMx1(x = 0 - 2)亦不会恢复正常输出,只有软件将FLTSTAT位清0后, PWMx/PWMx1才会在FLTSTAT被清零之后的最近一次PWM计数器归0或与周期寄存器PWMPL/H的值匹配时恢复正常输出(边 沿对齐模式中,在PWM计数器归0时恢复输出;中心对齐模式中,在PWM计数器与周期寄存器PWMPL/H匹配或归0时恢复输出)。 (2) 逐次模式 设置FLTCON寄存器中FLTM位为1将使能逐次模式。在逐次模式下,PWMx/PWMx1引脚是否输出PWM波形直接由比较器 滤波后的输出信号控制。FLTSTAT位也都由滤波之后的故障信号直接控制,若滤波之后的故障信号为高,则FLTSTAT位为1; 若滤波之后的故障信号为低,则FLTSTAT位为0。 当故障检测模块探测到有效故障信号,六路PWM引脚PWMx/PWMx1立即输出高阻态(x = 0 - 2),FLTSTAT位亦会被硬 件置1。 若有效故障信号没有消失,六路PWM引脚PWMx/PWMx1将保持输出高阻态(x = 0 - 2),软件无法使得六路PWM引脚恢 复正常输出。 当有效故障信号消失后,六路PWM引脚PWMx/PWMx1(x = 0 - 2)会在有效故障信号消失后的最近一次PWM计数器归0 或与周期寄存器PWMPL/H的值匹配时自动恢复正常输出,FLTSTAT位也将归0。 80 SH79F1615 8.1.7 PWM输出控制模块 PWM输出引脚与IO功能复用 PWM引脚PWMx/PWMx1与IO功能复用(x = 0 - 2),由寄存器PWMOE控制。令PWMOE中的PWMxOE位为1,可以将PWMx 引脚设置为PWM输出功能,反之为IO功能;令PWMOE中的PWMx1OE位为1,可以将PWMx1引脚设置为PWM输出功能,反之 为IO功能。具体如图8-1-14所示。 手动控制PWM输出 当PWMxOE/PWMx1OE位为1,且PWMEN位为1时,若PMANUALCON1寄存器中的PMANUALx/PMANUALx1位为1,则 PWMx/PWMx1 引 脚 将 输 出 PMANUALCON2 寄 存 器 中 POUTx/POUTx1 位 的 值 ; 若 PMANUALCON1 寄 存 器 中 的 PMANUALx/PMANUALx1位为0,则PWMx/PWMx1引脚将输出PWM波形Px_D/Px1_D。此功能和PORT口的输出功能类似,唯 一的区别是,在手动控制PWM输出模式下,其输出会受到PWM故障检测输入信号控制,而在I/O输出模式下,不受该信号控制。 具体如图8-1-14所示。 更改PMANUALCON1和PMANUALCON2寄存器时,PWMx/PWMx1引脚输出的改变与系统时钟同步,输出状态改变立即生 效。 注意:无论PMANUALx/PMANUALx1是否为1,当寄存器PWMOE中的PWMxOE/PWMx1OE为0时,PWMx/PWMx1引脚都 将成为普通IO口。 时基停止时PWM引脚的输出 PTCON中PWMEN位为0时,时基模块将停止工作,同时若PWMOE中PWMxOE/PWMx1OE位为1,则PWMx/PWMx1引脚 将输出高阻态。具体如图8-1-14所示。 8.1.8 事件触发功能 PWM时基模块产生的分频后的归零信号(Scaled Zero Match)和分频后的周期匹配信号(Scaled Period Match)可以用 来触发启动ADC或者Timer2。 PWM计数器触发Timer2 若寄存器PWMCON2中的ZETIM位为1且Timer2工作在自动触发模式(TRG = 1),如果是中心对齐模式,则分频后的周期 匹配信号可以自动启动Timer2,如果是边沿对齐模式或单次模式,则是分频后的归零信号启动Timer2;若ZETIM = 0,则PWM 模块不会自动启动Timer2。见图8-1-1。 PWM0/1/2计数器触发ADC 若寄存器PWMCON2中的ZEAD = 1,则分频后的归零信号可以自动触发一次ADC序列的转换(如果ADC模块中的ADCON1 寄存器的ADON位和PWMTRGEN位被允许,将会启动一次序列转换);若ZEAD = 0,则归零信号不会自动触发ADC序列。若 寄存器PWMCON2中的PEAD = 1,则分频后的周期匹配信号可以自动触发一次ADC序列的转换(如果ADC模块中的ADCON1 寄存器的ADON位和PWMTRGEN位被允许,将会启动一次序列转换);若PEAD = 0,则周期匹配信号不会自动触发ADC序列。 PWM模块的中断总汇 PWM模块的中断包括时基模块产生的PWM计数器归零中断、PWM计数器值与周期寄存器匹配产生的周期中断(详见“时基 中断”章节)以及PWM计数器值与占空比寄存器PWMxDL/H(x = 0 - 2)匹配时产生的占空比中断(详见“占空比中断”章节)。 这些中断共享一个位于0063H地址的中断向量。 81 SH79F1615 8.1.9 注意事项 边沿对齐计数模式中占空比寄存器值为0或周期值 边沿对齐计数模式中,若占空比寄存器为0或周期值,则根据不同的极性设置,PWMx/PWMx1应输出占空比为0%或100% 的波形。令PWMOE = 0xBF、PWMDT0L/H = 0、PWMDT1L/H = 0在边沿对齐时基计数、互补输出模式下,不同占空比值的PWM 引脚输出的波形、中断标志触发位置、事件触发位置、寄存器重载位置如图8-1-16 - 图8-1-18所示。 注意:PWM时基Enable时刻,虽然时基计数器为0,但不会产生归零(zero match)信号,因此不会置PWMZIF标志,也 不会产生事件触发信号,而寄存器重载信号在PWMEN = 0时是立即发生的。 4 PWMP = 5 4 3 PWMOE = 0x3F 2 3 2 1 PWM Counter 4 3 2 1 0 1 0 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance PWMxD = 3 PWMx1(PWMx1S=0) PWMx(PWMxS=1) None-Duty Zone PWMxD PWMxD PWMxD PWMxD PWMxD PWMxD PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC High Impedance High Impedance PWMxD = 3 PWMx1(PWMx1S=1) Duty Zone High Impedance PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 PTUDxIF = 1 PTDDxIF = 0 PTUDxIF = 1 PTDDxIF = 0 图8-1-16 边沿对齐计数、互补输出模式 82 PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PTUDxIF = 1 PTDDxIF = 0 SH79F1615 4 4 PWMP = 5 PWMOE = 0x3F 3 2 2 2 1 1 1 PWM Counter 4 3 3 0 0 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance PWMxD = 0 PWMx1(PWMx1S=0) None-Duty Zone PWMx outputs 0 None-Duty Zone PWMx1 outputs 1 High Impedance PWMZIF = 1 PWMZIF = 1 Reload PWMP& Reload PWMP& PWMx/x1D PWMx/x1D &DT[1:0]&PWMDT0/ &DT[1:0]&PWMDT0/ 1&PTCLK1/0 1&PTCLK1/0 Triger Timer&ADC Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 图8-1-17 边沿对齐计数、互补输出模式,占空比 = 0 4 PWMP = 5 4 3 PWMOE = 0x3F 2 3 2 1 PWM Counter 4 3 2 1 0 1 0 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance PWMxD = PWMP PWMx1(PWMx1S=0) Duty Zone PWMx outputs 1 Duty Zone High Impedance PWMx1 outputs 0 PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 图8-1-18 边沿对齐计数、互补输出模式,占空比 = 周期寄存器 83 SH79F1615 中心对齐计数模式中占空比寄存器值为0或周期值 中心对齐计数模式中,若占空比寄存器为0或周期值,则根据不同的极性设置,PWMx/PWMx1应输出占空比为0%或100% 的波形。令PWMOE = 0xBF、PWMDT0L/H = 0、PWMDT1L/H = 0在边沿对齐时基计数、互补输出模式下,不同占空比值的PWM 引脚输出的波形、中断标志触发位置、事件触发位置、寄存器重载位置如图8-1-19 - 图8-1-21所示。 特别注意:在中心对齐计数模式中,当占空比寄存器为0或周期值时,占空比比较匹配中断标志不会置起。 5 5 4 4 PWMP=5 3 3 PWMOE = 0x3F 3 3 2 2 2 1 1 PWM Counter 4 4 2 1 1 0 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance PWMxD = 2 None-Duty Zone PWMxD PWMxD PWMxD PWMx1(PWMx1S=0) High Impedance PWMx(PWMxS=1) High Impedance None-Duty Zone Duty Zone PWMxD PWMxD = 2 PWMx1(PWMx1S=1) High Impedance PWMPIF=1 if(PDLDEN==1) {Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/1} &PTCLK1/0 Triger Timer&ADC PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 PTUDxIF = 1 PTDDxIF = 0 PWMPIF=1 if(PDLDEN==1) {Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/1} &PTCLK1/0 Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT 0/1&PTCLK1/0 Triger Timer&ADC PTUDxIF = 0 PTDDxIF = 1 PTUDxIF = 1 PTDDxIF = 0 PTUDxIF = 0 PTDDxIF = 1 PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMD T0/1&PTCLK1/0 Triger Timer&ADC 图8-1-19 中心对齐计数、互补输出模式 5 5 4 PWMP=5 4 4 PWMOE = 0x3F 2 2 3 2 2 1 1 1 PWM Counter 4 3 3 3 1 0 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance PWMxD = 0 PWMx1(PWMx1S=0) Duty Zone, PWMx outputs 0 Duty Zone, PWMx1 outputs 1 High Impedance PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 PWMPIF=1 if(PDLDEN==1) {Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/1} &PTCLK1/0 Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC PWMPIF=1 if(PDLDEN==1) {Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/1} &PTCLK1/0 Triger Timer&ADC 图8-1-20 中心对齐计数、互补输出模式、占空比 = 0 84 PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC SH79F1615 5 4 PWMP=5 5 4 4 3 PWMOE = 0x3F 3 2 2 1 PWM Counter 4 3 2 1 0 1 3 2 1 0 PWM Clock PWMEN PWMx(PWMxS=0) High Impedance Duty Zone, PWMx outputs 1 High Impedance Duty Zone, PWMx1 outputs 0 PWMxD = PWMP PWMx1(PWMx1S=0) PWMxD represents PWMxDH:PWMxDL PWMP represents PWMPH:PWMPL x = 0~2 PWMPIF=1 if(PDLDEN==1) {Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/1} &PTCLK1/0 Triger Timer&ADC PWMPIF=1 PWMZIF = 1 if(PDLDEN==1) Reload PWMP& {Reload PWMP& PWMx/x1D PWMx/x1D &DT[1:0]&PWMDT0/ &DT[1:0]&PWMDT0/1} 1&PTCLK1/0 &PTCLK1/0 Triger Timer&ADC Triger Timer&ADC PWMZIF = 1 Reload PWMP& PWMx/x1D &DT[1:0]&PWMDT0/ 1&PTCLK1/0 Triger Timer&ADC 图8-1-21 中心对齐计数、互补输出模式、占空比 = 周期 周期寄存器值为0 不管时基计数器在何种模式,若周期寄存器为0,则根据不同的极性设置,PWMx/PWMx1应输出占空比为0%的波形。此时, 所有中断标志都不会产生,也不会产生事件触发信号,但重载信号会产生。 仿真状态的PWM输出 SH79F1615支持在线仿真,在仿真状态运行和正常状态运行没有区别,如果在仿真状态停止运行或单步运行,PWM输出会 切换为高阻态,保证不会误触发外部功率管。 进人IDLE模式,PWM0/1/2的波形输出状态 进入IDLE模式后,PWM输出口不受影响,比如PWM0口原先输出1K的方波,进入IDLE模式后会继续输出1K的方波,但是 如果设置了PWM0/1/2中断,会唤醒IDLE模式,继续执行IDLE后面的程序。 进人STOP模式,PWM0/1/2的波形输出状态 进入STOP模式后,PWM输出口会输出高阻状态,即使设置了PWM0/1/2中断,也不能唤醒掉电模式,掉电模式必须通过其 他方式唤醒,具体参考电源管理章节。 85 SH79F1615 8.1.10 代码示例 以下是输出PWM波形的一个简单示例程序: #include "SH79f1615.h"/*代码选项选取单时钟源内部27MHZRC*/ void Pwm_Isr(void) interrupt 12 using 1 { PWMINTF = 0; PWMRLDEN = 0x55; //每次中断将PWM0占空比加1. PWM0D16++; PWMRLDEN = 0xAA; } void System_Initial() { CLKCON=0x00; EA=1; IEN1=0x20; } void Pwm_Initial() { PWMRLDEN=0x55; //允许修改PWM受保护寄存器 PWMOE=0x3f; //将6个I/O口设置为PWM输出口 PTCON=0x00; //PWM输出为边沿对齐模式,且无分频 PWMCON1=0x00; //PWM输出互补模式(PWM0与PWM01波形互补) PWMP16=6000; //PWM的周期设为6000sysclock PWM0D16=0; //PWM0占空比设置为0sysclock PWM1D16=1000; //PWM1占空比设置为1000sysclock PWM2D16=3000; //PWM2占空比设置为3000sysclock PWMINTEN=0x40; //PWM归零中断允许 PWMOE|=0x80; //打开PWM总时基 PWMRLDEN=0xaa; //将PWM带缓存的寄存器值载入(周期,占空比,死区等) } void main() { System_Initial(); Pwm_Initial(); while(1); } 86 SH79F1615 8.2 运算放大器和比较器模块 8.2.1 特性  集成 1 个通用运算放大器,放大器的输入输出端都开放,放大器输出可直接作为 ADC 转换模块的输入或者做比较器的 同相输入端  比较器 2 为多输入比较器,并集成 PWM0/1/2 同步比较功能  比较器输出结果滤波后可以用作 PWM 故障检测输入信号  比较器 1/2 反相输入端参考信号可以从外部输入,也可以采用内部 1.20V 电源基准  比较器 2 内置施密特窗口和数字滤波电路,输出可触发不同类型中断 8.2.2 寄存器 Table 8.29 比较器1控制寄存器 B3H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CMP1CON CMP1EN C1NCHS C1OUT C1IF - C1PCHS C1DEB1 C1DEB0 读/写 读/写 读/写 读 读/写 - 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 - 0 0 0 位编号 位符号 7 CMP1EN 比较器1使能控制位 0:比较器1关闭 1:比较器1开启 6 C1NCHS 比较器1反相输入端选择位 0:选择C1N作为比较器1反相输入端 1:选择VBG内部1.20V基准源作为比较器1反相输入端 注:需提前100us将1.20V基准源打开,即将寄存器[CMP2CON1:BGEN]位置1, 详情参见CMP2CON1寄存器描述 5 C1OUT 4 C1IF 2 C1PCHS 1-0 C1DEB[1:0] 说明 比较器1输出状态标志位(表示经过滤波器以后的状态,只读) 0:比较器1输出低 1:比较器1输出高 比较器1输出上升沿中断标志位(经过滤波器以后) 0:比较器1输出无上升沿,没有产生中断 1:比较器1输出产生上升沿,发生中断请求 比较器1同相输入端选择位 0:选择C1P作为比较器1同相输入端 1:选择OP1OUT作为比较器1的同相输入端 比较器1输出信号滤波时间 00:无滤波 01:滤波时间常数为1us 10:滤波时间常数为4us 11:滤波时间常数为16us 注:上述滤波常数时间不是精确值,仅供参考 87 SH79F1615 Table 8.30 比较器2控制寄存器0 BBH 第7位 第6位 第5位 第4位 CMP2CON0 CMP2EN C2NCHS 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 C2PCHS1 C2PCHS0 第3位 第2位 第1位 第0位 C2SMT1 C2SMT0 C2OUT C2IF 读/写 读/写 读 读/写 0 0 0 0 位编号 位符号 7 CMP2EN 比较器2使能控制位 0:比较器2关闭 1:比较器2开启 C2NCHS 比较器2反相输入端选择位 0:选择C2N作为比较器2反相输入端 1:选择VBG内部1.20V基准源作为比较器2反相输入端 注:需提前100us将1.20V基准源打开,即将寄存器[CMP2CON1:BGEN]位置1, 详情参见CMP2CON1寄存器描述 6 5-4 C2PCHS[1:0] 3-2 C2SMT[1:0] 1 C2OUT 0 C2IF 说明 比较器2同相输入端选择位 00:选择C2P0作为比较器2同相输入端 01:选择C2P1作为比较器2同相输入端 10:选择C2P2作为比较器2同相输入端 11:保留 比较器2施密特电压选择位 00:没有施密特窗口特性 01:施密特窗口为5mv 10:施密特窗口为10mv 11:施密特窗口为20mv 比较器2输出状态标志位(表示经过滤波器以后的状态,只读) 0:比较器2输出低 1:比较器2输出高 比较器2中断标志位 0:比较器2没有产生中断请求标志 1:比较器2产生中断请求标志 注意:因为模拟比较器2有3个同相输入端外部端口,实际应用时,任意时刻只有一个输入端被选中,但另外2个输入端外接 的是模拟电平。此时需要将3个模拟输入端都配置为模拟输入口状态,否则会漏电;因为比较器2的同相输入端C2P0-2、负向输 入端C2N是和ADC的输入通道AN0-AN2、AN4是共享的,因此这四个端口配置为模拟通道或I/O必須并且只能在ADC模块中的寄 存器ADCH1配置,分别受CH0-CH2、CH4控制。 88 SH79F1615 Table 8.31 ADC通道配置寄存器1 第7位 95H 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADCH1 - - - CH4 - CH2 CH1 CH0 读/写 - - - 读/写 - 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - 0 - 0 0 0 位编号 位符号 4,2-0 CH4,CH[2:0] 说明 通道配置 1:Pxy配置为模拟输入口(ADC输入或比较器2同相输入) 0:Pxy作为I/O口 注:此控制位只是用来配置相应PORT口是否做模擬口用,具体选中那一个输入 做比较,由寄存器C2PCHS[1:0]控制 Table 8.32 放大器 & 比较器2控制寄存器1 第7位 BCH 第6位 第5位 PWMTRGS1 PWMTRGS0 TRGPOL CMP2CON1 第4位 第3位 第2位 第1位 第0位 BGEN AMP1EN - C2IFS1 C2IFS0 读/写 读/写 读/写 读/写 读/写 读/写 - 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 - 0 0 位编号 7-6 5 4 位符号 说明 比较器2同步比较控制位 00:连续比较模式,无同步比较功能 01:和PWM0输出同步 PWMTRGS[1:0] 10:和PWM1输出同步 11:和PWM2输出同步 TRGPOL BGEN 同步比较功能控制位 0:仅在PWM输出有效期间比较 1:仅在PWM输出无效期间比较 基准源(1.20V)功能控制位 0:关闭1.20V基准源VBG 1:开启1.20V基准源VBG 注:基准源开启需要建立时间,最长不超过100us,因此当需要用到1.20V基准源 时,需要提前100us将此标志位置1 3 1-0 AMP1EN C2IFS[1:0] 运算放大器1使能控制位 0:运算放大器1关闭 1:运算放大器1开启 运算放大器开启时,相应的输入输出引脚I/O功能关闭,而做为模拟引脚使用 比较器2中断模式选择位 00:不触发中断标志 01:下降沿触发,比较器2输出由高变低时触发中断标志 10:上升沿触发,比较器2输出由低变高时触发中断标志 11:双沿触发,比较器2输出由高变低时和由低变高时都触发中断标志 89 SH79F1615 Table 8.33 比较器2控制寄存器2 8FH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CMP2CON2 C2FT1EN C2FT1S2 C2FT1S1 C2FT1S0 C2FT2EN C2FT2S2 C2FT2S1 C2FT2S0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7 位符号 C2FT1EN 说明 比较器2滤波器1使能位 0:比较器2滤波器1关闭 1:比较器2滤波器1开启 滤波器1算法说明:用系统时钟采样滤波器输入 采用数字积分,如果采样结果为高电平,计数器加1,否则计数器减1;计数器结果超出 C2FT1S[2:0]设定的常数,则滤波器输出1,否则输出0 注:1.计数器上限设置为常数的2倍,下限为0,超出上下限,不执行加减动作 2. 滤波计数器初值设定:若比较器2中断设为上升沿触发,计数器初始值为0;若设为下 降沿触发,则滤波计数器初值设为滤波常数x2。若设为双沿触发或不触发,则滤波计 数器初值设为滤波常数 3. 滤波器输出稳定需要一个建立时间,大致为滤波常数设置的时间,如滤波常数设置 为256,则在256个系统时钟后,滤波器输出稳定,在这之前,滤波器输出不确定,中 断标志C2IF可能会被误置1,因此,刚打开滤波器时,需要在滤波器输出稳定后软件 清除此中断标志位 6-4 3 C2FT1S[2:0] C2FT2EN 比较器2滤波器1参数设置 000:滤波器常数为8 001:滤波器常数为16 010:滤波器常数为32 011:滤波器常数为64 100:滤波器常数为128 101:滤波器常数为256 110:滤波器常数为512 111:滤波器常数为1024 比较器2滤波器2使能位 0:比较器2滤波器2关闭 1:比较器2滤波器2开启 滤波器2算法说明:用系统时钟采样滤波器输入 当滤波器2当前输出为0时,若输入采样为1,计数器加1;若输入采样为0,则将计数器清0; 当计数器超过C2FT2S[2:0]设定的滤波常数时,滤波器输出翻转为1,同时计数器清0 同理,当滤波器2当前输出为1时,若输入采样为0,计数器加1,若输入采样为1,则将计数器 清0,当计数器超过C2FT2S[2:0]设定的滤波常数时,滤波器输出翻转为0,同时计数器清0 注:1. 计数器初始值为0 2. 滤波器输出稳定需要一个建立时间,大致为滤波常数设置的时间,如滤波常数设置为 256,则在256个系统时钟后,滤波器输出稳定,在这之前,滤波器输出不确定,中断标 志C2IF可能会被误置1,因此,刚打开滤波器时,需要在滤波器输出稳定后软件清除此 中断标志位 2-0 C2FT2S[2:0] 比较器2滤波器2参数设置 000:滤波器常数为2 001:滤波器常数为4 010:滤波器常数为8 011:滤波器常数为16 100:滤波器常数为32 101:滤波器常数为64 110:滤波器常数为128 111:滤波器常数为256 注:1. 滤波器1和滤波器2可单独有效,也可同时有效,同时有效时比较器2输出先经过滤波器1滤波,再经过滤波器2滤波。 2. 滤波器1/2打开前,需先设置好比较器2中断模式控制位C2IFS[1:0]。 90 SH79F1615 8.2.3 比较器用法 SH79F1615内置2个比较器,比较器1和比较器2,比较器1的输出可以作为PWM3模块的故障输入检测信号,自动迅速关闭 PWM3输出,从而实现快速保护,也可以用在某些电压/电流闭环中。比较器2内置有可编程的施密特窗口,同时集成滤波常数可 编程的数字滤波电路,同时提供中断功能,比较适合用作需要精确比较的应用场合,比如直流无刷电机的反电动势过零点检测。 比较器2集成同步比较功能,可以和PWM0/PWM1/PWM2输出同步,如果TRGPOL设为0,那么只有当MCPWM输出为有效 电平期间,比较器2的输出结果才被采样,给到后级滤波电路,在MCPWM输出无效期间,不采样比较器输出,此时比较器2的 输出会保持,同时滤波器也停止计数,当MCPWM输出再次有效时,恢复对比较器2的采样和滤波计数。参见下图(PWMTRGS[1:0] = 01,TRGPOL = 0)。比较器2的滤波是先经过滤波器1再经过滤波器2,如果只想用其中的一种滤波,可以将另一种屏蔽,也 可以将两种都屏蔽。 PWM0 C2N C2P0 orginal output output after synchrous output after synchrous & filter t1 t2 t3 t1+t2 = Filter Constant t4 t3+t4 = Filter Constant 比较器2同步比较示意图,(C2PCHS[1:0] = 0,PWMTRGS[1:0] = 01,TRGPOL = 0) 上图中的orginal out信号线为比较器2不滤波也不和PWM0信号同步时的C2OUT; 上图中的output after synchrous信号线为比较器2不滤波但是和PWM0信号同步时的C2OUT; 上图中的output after synchrous & filter信号线为先和PWM0同步再经滤波后的C2OUT。 91 SH79F1615 比较器1和2的输出波形的产生流程具体可参考下图: C1PCHS VDD C1P MUX CMP1EN OP1OUT C1DEB[1:0] C1OUT + C1N PWM 0/1/2Fault Debounce MUX - BANDGAP Reference=1.20V PWM 3 Fault C1IF C1NCHS CMP1 多通道输入模拟比较器1 C2PCHS[1:0] PWM0/1/2 VDD C2P0 C2P1 MU MU X X MU MUX X PWMTRGS[1:0] CMP2EN C2P2 + 1 - 0 C2FT2S[2:0] C2IFS[1:0] Filter1 Filter2 EDGE Detect C2IF C2N MUX C2FT1S[2:0] BANDGAP Reference=1.20V C2OUT C2SMT[1:0] C2FT1EN C2NCHS CMP2 多通道输入模拟比较器2 92 C2FT2EN SH79F1615 比较器2可以通过设置寄存器C2SMT[1:0]设置施密特比较器窗口(迟滞比较器),如下图所示: Schmit-Triger window C2N INTPUT Schmit-Triger window C2P VOH OUTPUT VOL C2SMT[1:0] = 0 C2SMT[1:0] != 0 93 C2SMT[1:0] = 0 C2SMT[1:0] != 0 SH79F1615 8.3 增强型通用异步收发器(EUART) 8.3.1 特性     自带波特率发生器的EUART 波特率发生器就是一个15位向上计数器 增强功能包括帧出错检测及自动地址识别 EUART有四种工作方式 8.3.2 工作方式 EUART有4种工作方式。在通信之前用户必须先初始化SCON,选择方式和波特率。 在所有四种方式中,任何将SBUF作为目标寄存器的写操作都会启动发送。在方式0中由条件RI = 0和REN = 1初始化接收。 这会在TXD引脚上产生一个时钟信号,然后在RXD引脚上移8位数据。在其它方式中由输入的起始位初始化接收(如果RI = 0和 REN = 1)。外部发送器通信以发送起始位开始。 EUART工作方式列表 SM0 SM1 方式 类型 波特率 帧长度 起始位 停止位 第9位 0 0 0 同步 fSYS/(4或12) 8位 无 无 无 0 1 1 异步 自带波特率发生器的溢出率/16 10位 1 1 无 1 0 2 异步 fSYS/(32或64) 11位 1 1 0,1 1 1 3 异步 自带波特率发生器的溢出率/16 11位 1 1 0,1 方式0:同步,半双工通讯 方式0支持与外部设备的同步通信。在RXD引脚上收发串行数据,TXD引脚发送移位时钟。SH79F1615提供TXD引脚上的 移位时钟,因此这种方式是串行通信的半双工方式。在这个方式中,每帧收发8位,低位先接收或发送。 通过置SM2位(SCON.5)为0或1,波特率固定为系统时钟的1/12或1/4。当SM2位等于0时,串行端口以系统时钟的1/12 运行。当SM2位等于1时,串行端口以系统时钟的1/4运行。与标准8051唯一不同的是,SH79F1615在方式0中有2种波特率可选。 功能块框图如下图所示。数据通过RXD引脚移入和移出串行端口,移位时钟由TXD引脚输出。 Transmit Shift Register Internal Data Bus System Clock PARIN Write to SBUF SOUT RXD LOAD CLOCK ÷ 12 ÷4 TX START TX SHIFT TX CLOCK 0 SM2 TI SERIAL CONTROLLER 1 Serial Port Interrupt RI RX CLOCK SHIFT CLOCK TXD LOAD SBUF RI RX START REN RX SHIFT Read SBUF CLOCK PAROUT RXD SIN Receive Shift Register 94 SBUF SBUF SH79F1615 任何将SBUF作为目标寄存器的写操作都会启动发送。下一个系统时钟TX控制块开始发送。数据转换发生在移位时钟的下 降沿,移位寄存器的内容逐次从左往右移位,空位置0。当移位寄存器中的所有8位都发送后,TX控制模块停止发送操作,然后 在下一个系统时钟的上升沿将TI置位(SCON.1)。 Write to SBUF RxD D0 D1 D2 D3 D5 D4 D6 D7 TxD TI Send Timing of Mode 0 REN(SCON.4)置1和RI(SCON.0)清0初始化接收。下一个系统时钟启动接收,在移位时钟的上升沿锁存数据,接收转 换寄存器的内容逐次向左移位。当所有8位数据都移到移位寄存器中后,RX控制块停止接收,在下一个系统时钟的上升沿RI置 位,直到被软件清零才允许下一次接收。 RxD D0 D1 D2 D4 D3 D5 D6 D7 TxD RI Receive Timing of Mode 0 方式1:8位EUART,可变波特率,异步全双工 方式1提供10位全双工异步通信,10位由一个起始位(逻辑0),8个数据位(低位为第一位)和一个停止位(逻辑1)组成。 在接收时,这8个数据位存储在SBUF中而停止位储存在RB8(SCON.2)中。方式1中的波特率固定为自带波特率发生器溢出率 的1/16。功能块框图如下图所示: Transmit Shift Register STOP Internal PARIN Data Bus Baud rate Generator START Write to SBUF SOUT TXD LOAD overflow From 7FFF to 0000 ÷ 16 CLOCK TX START TX SHIFT TX CLOCK TI SERIAL CONTROLLER ÷16 Serial Port Interrupt RI RX CLOCK LOAD SBUF SAMPLE 1-TO-0 RX START Read SBUF RX SHIFT DETECTOR CLOCK PAROUT RXD BIT SIN DETECTOR D8 Receive Shift Register 95 SBUF RB8 Internal Data Bus SH79F1615 任何将SBUF作为目标寄存器的写操作都会启动发送,实际上发送是从16分频计数器中的下一次跳变之后的系统时钟开始 的,因此位时间与16分频计数器是同步的,与对SBUF的写操作不同步。起始位首先在TXD引脚上移出,然后是8位数据位。在 发送移位寄存器中的所有8位数据都发送完后,停止位在TXD引脚上移出,在停止位发出的同时TI标志置位。 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 D6 D7 Stop Shift CLK TI Send Timing of Mode 1 只有REN置位时才允许接收。当RXD引脚检测到下降沿时串行口开始接收串行数据。为此,CPU对RXD不断采样,采样速 率为波特率的16倍。当检测下降沿时,16分频计数器立即复位,这有助于16分频计数器与RXD引脚上的串行数据位同步。16分 频计数器把每一位的时间分为16个状态,在第7、8、9状态时,位检测器对RXD端的电平进行采样。为抑制噪声,在这3个状态 采样中至少有2次采样值一致数据才被接收。如果所接收的第一位不是0,说明这位不是一帧数据的起始位,该位被忽略,接收 电路被复位,等待RXD引脚上另一个下降沿的到来。若起始位有效,则移入移位寄存器,并接着移入其它位到移位寄存器。8个 数据位和1个停止位移入之后,移位寄存器的内容被分别装入SBUF和RB8中,RI置位,但必须满足下列条件: 1. RI = 0 2. SM2 = 0或者接收的停止位 = 1 如果这些条件被满足,那么停止位装入RB8,8个数据位装入SBUF,RI被置位。否则接收的帧会丢失。这时,接收器将重 新去探测RXD端是否另一个下降沿。用户必须用软件清零RI,然后才能再次接收。 RxD Start D0 D1 D2 D3 D4 D5 Bit Sample Shift CLK RI Receive Timing of Mode 1 96 D6 D7 Stop SH79F1615 方式2:9位EUART,固定波特率,异步全双工 这个方式使用异步全双工通信中的11位。一帧由一个起始位(逻辑0),8个数据位(低位为第一位),一个可编程的第9 数据位和一个停止位(逻辑1)组成。方式2支持多机通信和硬件地址识别(详见多机通讯章节)。在数据传送时,第9数据位(SCON 中的TB8)可以写0或1,例如,可写入PSW中的奇偶位P,或用作多机通信中的数据/地址标志位。当接收到数据时,第9数据位 移入RB8而停止位不保存。PCON中的SMOD位选择波特率为系统工作频率的1/32或1/64。功能块框图如下所示: Transmit Shift Register System Clock TB8 D8 STOP ÷ Internal Data Bus PARIN 2 START Write to SBUF TXD SOUT LOAD CLOCK SMOD 0 1 TX START ÷ 32 TX SHIFT TX CLOCK TI SERIAL CONTROLLER ÷ 32 Serial Port Interrupt RI RX CLOCK LOAD SBUF SAMPLE 1-TO-0 DETECTOR Read SBUF RX SHIFT RX START CLOCK SBUF PAROUT BIT DETECTOR RXD SIN Internal Data Bus RB8 D8 Receive Shift Register 任何将SBUF作为目标寄存器的写操作都会启动发送,同时也将TB8载入到发送移位寄存器的第9位中。实际上发送是从16 分频计数器中的下一次跳变之后的系统时钟开始的,因此位时间与16分频计数器是同步的,与对SBUF的写操作不同步。起始位 首先在TXD引脚上移出,然后是9位数据。在发送转换寄存器中的所有9位数据都发送完后,停止位在TXD引脚上移出,在停止 位开始发送时TI标志置位。 Write to SBUF TxD Start D0 D1 D2 D3 D4 D5 Shift CLK TI Send Timing of Mode 2 97 D6 D7 D8 Stop SH79F1615 只有REN置位时才允许接收。当RXD引脚检测到下降沿时串行口开始接收串行数据。为此,CPU对RXD不断采样,采样速 率为波特率的16倍。当检测下降沿时,16分频计数器立即复位。这有助于16分频计数器与RXD引脚上的串行数据位同步。16分 频计数器把每一位的时间分为16个状态,在第7、8、9状态时,位检测器对RXD端的电平进行采样。为抑制噪声,在这3个状态 采样中至少有2次采样值一致数据才被接收。如果所接收的第一位不是0,说明这位不是一帧数据的起始位,该位被忽略,接收 电路被复位,等待RXD引脚上另一个下降沿的到来。若起始位有效,则移入移位寄存器,并接着移入其它位到移位寄存器。9个 数据位和1个停止位移入之后,移位寄存器的内容被分别装入SBUF和RB8中,RI置位,但必须满足下列条件: 1. RI = 0 2. SM2 = 0或者接收的第9位 = 1,且接收的字节符合约定从机地址 如果这些条件被满足,那么第9位移入RB8,8位数据移入SBUF,RI被置位。否则接收的数据帧会丢失。 在停止位的当中,接收器回到寻找RXD引脚上的另一个下降沿。用户必须用软件清除RI,然后才能再次接收。 RxD Start D0 D1 D2 D3 D4 D5 D6 D7 D8 Stop Bit Sample Shift CLK RI Receive Timing of Mode 2 方式3:9位EUART,可变波特率,异步全双工 方式3使用方式2的传输协议以及方式1的波特率产生方式。 Transmit Shift Register STOP TB8 D8 Internal Data Bus Baud rate Generator PARIN SOUT TXD START Write to SBUF LOAD overflow CLOCK From 7FFF to 0000 ÷ 16 TX START TX SHIFT TX CLOCK TI SERIAL CONTROLLER ÷ 16 Serial Port Interrupt RI RX CLOCK LOAD SBUF SAMPLE 1-TO-0 DETECTOR RX START Read SBUF RX SHIFT CLOCK PAROUT RXD BIT DETECTOR SIN D8 Receive Shift Register 98 SBUF RB8 Internal Data Bus SH79F1615 8.3.3 可微调波特率 EUART自带一个波特率发生器,它实质上就是一个15位递增计数器。 Overflow ` 15-bit timer To EUART Fsys From 7FFFH to 0000H SBRTEN=1 SBRTH[14:8],SBRTL7:0] Baudrate Generator for EUART 由图得到,波特率发生器的溢出率为 SBRToverflowrate = Fsys , SBRT = [ SBRTH , SBRTL] 32768 − SBRT 因此,EUART在各模式下的波特率计算公式如下。 在方式0中,波特率可编程为系统时钟的1/12或1/4,由SM2位决定。当SM2为0时,串行端口在系统时钟的1/12下运行。当 SM2为1时,串行端口在系统时钟的1/4下运行。 在方式1和方式3中,波特率可微调,精度为一个系统时钟,公式如下: BaudRate = Fsys 16 × (32768 - SBRT ) + BFINE 例如:Fsys = 8MHz,需要得到115200Hz的波特率,SBRT和SFINE值计算方法如下: 8000000/16/115200 = 4.34 SBRT = 32768 - 4 = 32764 由BaudRate计算公式:115200 = 8000000/(16 X 4 + BFINE) 得到:BFINE = 5.4 ≈ 5 此微调方式计算出的实际波特率为115942,误差为0.64%;以往方式计算出的波特率误差为8.5%。 在方式2中,波特率固定为系统时钟的1/32或1/64,由SMOD位(PCON.7)中决定。当SMOD位为0时,EUART以系统时 钟的1/64运行。当SMOD位为1时,EUART以系统时钟的1/32运行。 BaudRate = 2 SMOD × ( f SYS ) 64 99 SH79F1615 8.3.4 多机通讯 软件地址识别 方式2和方式3具有适用于多机通讯功能。在这两个方式下,接收的是9位数据,第9位移入RB8中,之后是停止位。可以这 样设定EUART:当接收到停止位,且RB8 = 1时,串行口中断有效(请求标志RI置位)。此时置位SCON寄存器的SM2,EUART 工作在多机通讯模式。 在多机通讯系统中,按如下所述来使用这一功能。当主机要发送一数据块给几个从机中的一个时,先发送一地址字节,以 寻址目标从机。地址字节与数据字节可用第9数据位来区别,地址字节的第9位为1,数据字节的第9位为0。 如果从机SM2为1,则不会响应数据字节中断。地址字节可以使所有从机产生中断,每一个从机都检查所接收到的地址字节, 以判别本机是不是目标从机。被寻到的从机对SM2位执行清零操作,并准备接收即将到来的数据字节。当接收完毕时,从机再 一次将SM2置位。没有被寻址的从机,则保持SM2位为1,不响应数据字节。 注意:在方式0中,SM2用来2倍频波特率。在方式1中,SM2用来检测停止位是否有效,如果SM2 = 1,接收中断不会响应 直到接收到一个有效的停止位。 自动(硬件)地址识别 在方式2和方式3中,SM2置位,EUART运行状态如下:接收到停止位,RB8的第9位为1(地址字节),且接收到的数据字 节符合EUART的从机地址,EUART产生一个中断。从机将SM2清零,接收后续数据字节。 第9位为1表明该字节是地址而非数据。当主机要发送一组数据给几个从机中的一个时,必须先发送目标从机地址。所有从 机等待接收地址字节,为了确保仅在接收地址字节时产生中断,SM2位必须置位。自动地址识别的特点是只有地址匹配的从机 才能产生中断,硬件完成地址比较。 中断产生后,地址匹配的从机清零SM2,继续接收数据字节。地址不匹配的从机不受影响,将继续等待接收和它匹配的地 址字节。全部信息接收完毕后,地址匹配的从机应该再次把SM2置位,忽略所有传送的非地址字节,直到接收到下一个地址字 节。 使用自动地址识别功能时,主机可以通过调用给定的从机地址选择与一个或多个从机通信。主机使用广播地址可以寻址所 有从机。有两个特殊功能寄存器,从机地址(SADDR)和地址屏蔽(SADEN)。从机地址是一个8位的字节,存于SADDR寄 存器中。SADEN用于定义SADDR各位的有效与否,如果SADEN中某一位为0,则SADDR中相应位被忽略,如果SADEN中某一 位置位,则SADDR中相应位将用于产生约定地址。这可以使用户在不改变SADDR寄存器中的从机地址的情况下灵活地寻址多 个从机。 从机1 从机2 SADDR 10100100 10100111 SADEN(为0的位被忽略) 11111010 11111001 约定地址 10100x0x 10100xx1 广播地址(SADDR或SADEN) 1111111x 11111111 从机1和从机2的约定地址最低位是不同的。从机1忽略了最低位,而从机2的最低位是1。因此只与从机1通讯时,主机必须 发送最低位为0的地址(10100000)。类似地,从机1的第1位为0,从机2的第1位被忽略。因此,只与从机2通讯时,主机必须 发送第1位为1的地址(10100011)。如果主机需要同时与两从机通讯,则第0位为1,第1位为0,第2位被两从机都忽略,两个 不同的地址用于选定两个从机(1010 0001和1010 0101)。 主机可以通过广播地址与所有从机同时通讯。这个地址等于SADDR和SADEN的位或,结果中的0表示该位被忽略。多数情 况下,广播地址为0xFFh,该地址可被所有从机应答。 系统复位后,SADDR和SADEN两个寄存器初始化为0,这两个结果设定了约定地址和广播地址为XXXXXXXX(所有位都被 忽略)。这有效地去除了多从机通讯的特性,禁止了自动寻址方式。这样的EUART将对任何地址都产生应答,兼容了不支持自 动地址识别的8051控制器。用户可以按照上面提到的方法实现软件地址识别的多机通讯。 100 SH79F1615 8.3.5 帧出错检测 当寄存器PCON中的SSTAT位为逻辑1时,帧出错检测功能才有效。3个错误标志位被置位后,只能通过软件清零,尽管后 续接收的帧没有任何错误也不会自动清零。 注意:SSTAT位必须为逻辑1是访问状态位(FE,RXOVR和TXCOL),SSTAT位为逻辑0时是访问方式选择位(SM0, SM1和SM2)。 发送冲突 如果在一个发送正在进行时,用户软件写数据到SBUF寄存器时,发送冲突位(SCON寄存器中的TXCOL位)置位。如果发 生了冲突,新数据会被忽略,不能被写入发送缓冲器。 接收溢出 如果在接收缓冲器中的数据未被读取之前,RI清零,又有新的数据存入接收缓冲器,那么接收溢出位(SCON寄存器中的 RXOV位)置位。如果发生了接收溢出,接收缓冲器中原来的数据将丢失。 帧出错 如果检测到一个无效(低)停止位,那么帧出错位(寄存器SCON中的FE)置位。 注意:在发送之前TXD,引脚必须被设置为输出高电平。 8.3.6 寄存器 Table 8.34 电源控制寄存器 87H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PCON SMOD SSTAT IT41 IT40 GF1 GF0 PD IDL 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7 SMOD 波特率加倍器 0:在方式2中,波特率为系统时钟的1/64 1:在方式2中,波特率为系统时钟的1/32 6 SSTAT SCON[7:5]功能选择 0:SCON[7:5]工作方式作为SM0,SM1,SM2 1:SCON[7:5]工作方式作为FE,RXOV,TXCOL 5-4 IT4[1:0] 外部中断4模式设置位 3-2 GF[1:0] 用于软件的通用标志位 1 PD 掉电模式控制位 0 IDL 空闲模式控制位 Table 8.35 EUART数据缓冲器寄存器 99H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SBUF SBUF.7 SBUF.6 SBUF.5 SBUF.4 SBUF.3 SBUF.2 SBUF.1 SBUF.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 7-0 位符号 SBUF[7:0] 说明 这个寄存器寻址两个寄存器:一个移位寄存器和一个接收锁存寄存器 SBUF的写入将发送字节到移位寄存器中,然后开始传输 SBUF的读取返回接收锁存器中的内容 101 SH79F1615 Table 8.36 EUART控制及状态寄存器 98H 第7位 SCON SM0/FE REN TB8 RB8 TI RI 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 第6位 第5位 第4位 SM1/RXOV SM2/TXCOL 位符号 7-6 SM[0:1] 7 FE 6 RXOV 第3位 第2位 第1位 说明 EUART串行方式控制位,SSTAT = 0 00:方式0,同步方式,固定波特率 01:方式1,8位异步方式,可变波特率 10:方式2,9位异步方式,固定波特率 11:方式3,9位异步方式,可变波特率 EUART帧出错标志位,当FE位被读时,SSTAT位必须被置位 0:无帧出错,由软件清零 1:帧出错,由硬件置位 EUART接收溢出标志位,当RXOV位被读时,SSTAT位必须被置位 0:无接收溢出,由软件清零 1:接收溢出,由硬件置位 EUART多处理机通讯允许位(第9位“1”校验器),SSTAT = 0 0:在方式0下,波特率是系统时钟的1/12 在方式1下,禁止停止位确认检验,任何停止位都会置位RI 在方式2和3下,任何字节都会置位RI 1:在方式0下,波特率是系统时钟的1/4 在方式1下,允许停止位确认检验,只有有效的停止位(1)才能置位RI 在方式2和3下,只有地址字节(第9位 = 1)才能置位RI 5 SM2 5 TXCOL 4 REN EUART接收器允许位 0:接收禁止 1:接收允许 3 TB8 在EUART的方式2和3下发送的第9位,由软件置位或清零 2 RB8 在EUART的方式1,2和3下接收的第9位 在方式0下,不使用RB8 在方式1下,如果接收中断发生,停止位移入RB8 在方式2和3下,接收第9位 1 TI EUART的传送中断标志位 0:由软件清零 1:由硬件置位 0 RI EUART的接收中断标志位 0:由软件清零 1:由硬件置位 EUART发送冲突标志位,当TXCOL位被读时,SSTAT位必须被置位 0:无发送冲突,由软件清零 1:发送冲突,由硬件置位 102 第0位 SH79F1615 Table 8.37 EUART从机地址及地址屏蔽寄存器 9AH-9BH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SADDR (9AH) SADDR.7 SADDR.6 SADDR.5 SADDR.4 SADDR.3 SADDR.2 SADDR.1 SADDR.0 SADEN (9BH) SADEN.7 SADEN.6 SADEN.5 SADEN.4 SADEN.3 SADEN.2 SADEN.1 SADEN.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7-0 SADDR[7:0] 寄存器SADDR定义了EUART的从机地址 7-0 SADEN[7:0] 寄存器SADEN是一个位屏蔽寄存器,决定SADDR的哪些位被检验 0:SADDR中的相应位被忽略 1:SADDR中的相应位对照接收到的地址被检验 Table 8.38 EUART波特率发生器寄存器 FDH-FEH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SBRTH (FEH) SBRTEN SBRT.14 SBRT.13 SBRT.12 SBRT.11 SBRT.10 SBRT.9 SBRT.8 SBRTL (FDH) SBRT.7 SBRT.6 SBRT.5 SBRT.4 SBRT.3 SBRT.2 SBRT.1 SBRT.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7 SBRTEN 6-0 7-0 SBRT[14:0] 说明 EUART波特率发生器使能控制位 0:关闭(默认) 1:打开 EUART波特率发生器计数器高7位和低8位寄存器 Table 8.39 EUART波特率发生器微调寄存器 A4H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 BFINE - - - - BFINE.3 BFINE.2 BFINE.1 BFINE.0 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 位符号 3-0 BFINE[3:0] 说明 EUART波特率发生器微调数据寄存器 103 SH79F1615 8.4 模/数转换模块(ADC) 8.4.1 特性           12位分辨率/10位分辨率可选 参考电压可选外接VREF或VDD 最多11路模拟输入 启动一次ADC可以自动完成多通道转换(序列),而且每个通道都可以配置为多路模拟输入中的任意一路 序列可配置为单通道或多通道,一个序列最多可包含16个通道,转换结果保存在16个结果寄存器中 存在两种工作模式:序列转换模式和连续转换模式 序列转换时相邻通道转换之间的时间间隔可由软件设定 可由PWM或Timer2的溢出信号自动触发AD转换 单通道转换速率最高可达1MSPS 序列转换模式和连续转换模式都带比较功能 SH79F1615包含一个单端型、12位逐次逼近型模数转换器(ADC,Analog-to-Digit Converter),模块图如图8-4-1所示。 ADC基准电压在芯片复位后默认使用VDD,用户也可以选择外部VREF端口的输入作为基准电压。 该模块中有11路模拟输入通道(CH0 - CH5,CH8 - CH10,OP1OUT,VBG),都可以编入序列中自动进行转换。结果储 存在对应的结果寄存器ADDxH,ADDxL(x = 0 - 15)中,每转换一次序列,结果寄存器的值更新一次,并作一次比较。结果寄 存器和模拟输入通道之间的映射关系可以随意编程,从而组成一个转换序列,而且可以将某一模拟输入通道在序列中重复编程, 从而在结果寄存器中获得此模拟输入通道连续多次转换的结果。 当启动连续转换功能时,序列自动循环启动转换,结果寄存器也不断更新,并将每次的更新值与极限值作比较。 对于单个通道,转换速率最高可达1MSPS,可由寄存器设置ADC时钟速率以及采样时间。序列中相邻通道之间的时间间隔 亦可通过寄存器设置(TGAP[2:0])。 104 SH79F1615 8.4.2 ADC模块图 Software Trigger Event Trigger sequence mode SEQCH0 + State pointer GRP[3:0] SEQCHn + ADDLTL/H ADDGTL/H + SEQCH15 12 12 Compare Logic 12 4 SOC EOC MUX MUX ... Mode Arbiter 4 ADD0L/H ... ADD15L/H 4 CH0 SOC EOC CH5 CH8 12-Bits 12 ADC MUX CH10 OP1OUT VBG MUX 12 0 CH3/VREF 1 AVDD 4 ADC_Clk 1 0 ADCON1[REFC] Refc ADD0L/H Time Gap Logic Pre-Counter for ADC clock,4-bit SOC Stands for Start of Convertion System Clock EOC Stands for End of Convertion n = ADCH2[GRP] ADGIF ADLIF ADT[TADC] 图8-4-1 ADC模块图 105 REG MUX ADDnL/H ADD15L/H SH79F1615 8.4.3 ADC寄存器 ADC模块所使用寄存器如下: 功能 名称 寄存器描述 ADT 设置ADC时钟与采样时间、ADC精度模式选择 ADCON1 AD模块使能、启动、参考电压的选择、及序列转换完成中断标志、事件 触发设置、转换完成中断允许、连续转换功能使能位 ADCON2 序列通道总数设置、相邻通道之间时间间隔设置 映像控制及部分AD通道 配置 SEQCON 通道映像控制 AD通道配置1 ADCH1 设置AD通道引脚为AD通道功能或I/O功能 AD通道配置2 ADCH2 设置AD通道引脚为AD通道功能或I/O功能 通道和转换顺序设置 SEQCHx 指定序列中的通道以及转换顺序,x = 0 - 15 ADDxL SEQCHx中指定通道转换值的低位,x = 0 - 15 ADDxH SEQCHx中指定通道转换值的高位,x = 0 - 15 ADDGTL 上限比较寄存器的低位 ADDGTH 上限比较寄存器的高位 ADDLTL 下限比较寄存器的低位 ADDLTH 下限比较寄存器的高位 ADCMPCON 设置比较中断以及用于比较的结果寄存器 ADC时钟设置 ADC控制 ADC结果寄存器 上限比较寄存器 下限比较寄存器 比较控制寄存器 106 SH79F1615 Table 8.40 ADC时钟控制寄存器 94H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADT TADC3 TADC2 TADC1 TADC0 TS3 TS2 TS1 TS0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-4 TADC [3:0] 3-0 TS [3:0] 说明 ADC时钟周期选择 0000:ADC时钟周期tAD = 1 tSYS 0001:ADC时钟周期tAD = 2 tSYS 0010:ADC时钟周期tAD = 3 tSYS 0011:ADC时钟周期tAD = 4 tSYS 0100:ADC时钟周期tAD = 6 tSYS 0101:ADC时钟周期tAD = 8 tSYS 0110:ADC时钟周期tAD = 12 tSYS 0111:ADC时钟周期tAD = 16 tSYS 1000:ADC时钟周期tAD = 24 tSYS 1001:ADC时钟周期tAD = 32 tSYS 1010:ADC时钟周期tAD = 48 tSYS 1011:ADC时钟周期tAD = 64 tSYS 1100:ADC时钟周期tAD = 96 tSYS 1101:ADC时钟周期tAD = 128 tSYS 1110:ADC时钟周期tAD = 192 tSYS 1111:ADC时钟周期tAD = 1.5 tSYS 采样时间选择 2 tAD ≤ 采样时间 = (TS [3:0]+1) * tAD ≤ 15 tAD 注意: 1. 即使TS[3:0] = 0000,最小采样时间为2tAD;即使TS[3:0] = 1111,最大采样时间为15tAD; 2. 在设置TS[3:0]前,请估算连接到ADC输入引脚的串联电阻; 3. 选择2 * tAD为采样时间时,请确保连接到ADC输入引脚的串联电阻小于10kΩ; 4. 12bit模式下一个通道的总共转换时间 = 14tAD + 采样时间;10bit模式下一个通道的总共转换时间 = 12tAD + 采样时间; 5. ADC工作在10BIT模式下,可以提高ADC的转换效率,在10BIT模式下一个通道的转换时间比12BIT模式下能节省2个tAD。 107 SH79F1615 Table 8.41 ADC控制寄存器1 第7位 93H 第6位 第5位 第4位 第3位 第2位 第1位 第0位 TIM TRGEN GO/DONE ADCON1 ADON ADCIF SC REFC ADCIE PWM TRGEN 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 —---—-----— 位编号 位符号 说明 7 ADON ADC允许位 0:禁止ADC模块 1:允许ADC模块 6 ADCIF 序列转换完成中断标志位 0:无序列转换完成标志,软件清0 1:由硬件置1表示已完成序列转换(在连续转换时,每次序列转换完成都会置1) 连续转换控制位 —---—-----— 0:连续转换功能禁止,将GO/DONE置1启动一次序列转换并自动将制定结果进 行比较 5 SC 4 REFC 基准电压选位 0:选择VDD为基准电压 1:选择外部VREF端口输入为基准电压 3 ADCIE 序列转换完成中断允许位 0:禁止ADC转换中断,但是ADCIF标志不受影响 1:允许ADC转换中断 2 PWMTRGEN 1 TIMTRGEN 0 —---—-----— GO/DONE —---—-----— 1:连续转换功能打开,将GO/DONE置1后,完成一次序列转换后自动启动下一 次序列转换。两次序列转换的间隔时间也受TGAP[2:0]控制,并且自动将转换 结果进行比较,参见ADC比较章节 PWM0/1/2模块溢出信号启动序列转换控制位 0:不允许此功能 1:允许PWM0/1/2模块的触发信号启动一次AD转换序列 TIMER2溢出信号启动序列转换控制位 0:不允许此功能 1:允许Timer2溢出信号会启动一次AD转换序列 序列转换启动控制/状态标志位 0:未进行序列转换/连续转换或已完成 1:SC = 0时,置1开始序列转换,在转换过程中保持为1,转换完成后硬件自动 清0(若转换期间清0此位会立即终止序列转换。) SC = 1时,置1开始连续转换,则该位不会由硬件清0,可以由软件清0立即终 止转换 注意:当选择外部VREF端口作为基准电压时(REFC = 1),P0.5作为VREF输入引脚而非AN3输入口。 108 SH79F1615 Table 8.42 ADC控制寄存器2 92H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADCON2 GRP3 GRP2 GRP1 GRP0 MODE TGAP2 TGAP1 TGAP0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-4 GRP[3:0] 3 MODE 2-0 TGAP[2:0] 说明 ADC序列的通道数量设置位 0:待转换序列的通道总数为1,所选的通道寄存器为SEQCH0 1:待转换序列的通道总数为2,所选的通道寄存器为SEQCH0 - SEQCH1 2:待转换序列的通道总数为3,所选的通道寄存器为SEQCH0 - SEQCH2 3:待转换序列的通道总数为4,所选的通道寄存器为SEQCH0 - SEQCH3 4:待转换序列的通道总数为5,所选的通道寄存器为SEQCH0 - SEQCH4 5:待转换序列的通道总数为6,所选的通道寄存器为SEQCH0 - EQCH5 6:待转换序列的通道总数为7,所选的通道寄存器为SEQCH0 - SEQCH6 7:待转换序列的通道总数为8,所选的通道寄存器为SEQCH0 - SEQCH7 8:待转换序列的通道总数为9,所选的通道寄存器为SEQCH0 - SEQCH8 9:待转换序列的通道总数为10,所选的通道寄存器为SEQCH0 - SEQCH9 10:待转换序列的通道总数为11,所选的通道寄存器为SEQCH0 - SEQCH10 11:待转换序列的通道总数为12,所选的通道寄存器为SEQCH0 - SEQCH11 12:待转换序列的通道总数为13,所选的通道寄存器为SEQCH0 - SEQCH12 13:待转换序列的通道总数为14,所选的通道寄存器为SEQCH0 - SEQCH13 14:待转换序列的通道总数为15,所选的通道寄存器为SEQCH0 - SEQCH14 15:待转换序列的通道总数为16,所选的通道寄存器为SEQCH0 - SEQCH15 ADC转换模式选择 0:12BIT 模式 1:10BIT 模式 序列中时相邻通道之间时间间隔设置位段 TGAP[2:0]位段定义了在一次序列转换中,一个通道转换完毕到下一个通道开始采样 之间的时间间隔,同时在连续转换模式中,一次序列转换完成到启动下一次序列的 等待时间也受此寄存器控制 000:无等待时间 001:2ADC时钟周期 010:4ADC时钟周期 011:8ADC时钟周期 100:16ADC时钟周期 101:32ADC时钟周期 110:64ADC时钟周期 111:128ADC时钟周期 109 SH79F1615 Table 8.43 映射控制寄存器 A6H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SEQCON ALR - - REGSEL REG3 REG2 REG1 REG0 读/写 读/写 - - 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 - - 0 0 0 0 0 位编号 7 位符号 ALR 说明 ADC结果左右对齐选择位 0:结果寄存器ADDxL/H(x = 0 - 15)中存储的12-bit结果按照左对齐存放,高8位存放在 ADDxH中,低4位存放在ADDxL中的高4位 1:结果寄存器ADDxL/H(x = 0 - 15)中存储的12-bit结果按照右对齐存放,高4位存放在 ADDxH的低4位中,低8位存放在ADDxL中 —---—-----— —---—-----— 注意:此标志位只能在GO/DONE为0时修改,GO/DONE为1(也即ADC在转换中或连续转 换功能开启)时,此标志位无法修改 4 3-0 REGSEL ADC结果寄存器与通道寄存器映射切换控制位 0:直接寻址区中96H地址和97H地址作为ADC结果寄存器使用,软件读写该地址即操作寄 存器ADDxL/H(x = 0 - 15) 1:直接寻址区中96H地址作为通道寄存器使用,软件读写该地址即操作寄存器SEQCHx(x = 0 - 15) REG[3:0] 结果寄存器/通道寄存器选择位 当REGSEL = 0时: 0:直接寻址区中96H和97H地址映射为ADD0L和ADD0H 1:直接寻址区中96H和97H地址映射为ADD1L和ADD1H 2:直接寻址区中96H和97H地址映射为ADD2L和ADD2H 3:直接寻址区中96H和97H地址映射为ADD3L和ADD3H 4:直接寻址区中96H和97H地址映射为ADD4L和ADD4H 5:直接寻址区中96H和97H地址映射为ADD5L和ADD5H 6:直接寻址区中96H和97H地址映射为ADD6L和ADD6H 7:直接寻址区中96H和97H地址映射为ADD7L和ADD7H 8:直接寻址区中96H和97H地址映射为ADD8L和ADD8H 9:直接寻址区中96H和97H地址映射为ADD9L和ADD9H 10:直接寻址区中96H和97H地址映射为ADD10L和ADD10H 11:直接寻址区中96H和97H地址映射为ADD11L和ADD11H 12:直接寻址区中96H和97H地址映射为ADD12L和ADD12H 13:直接寻址区中96H和97H地址映射为ADD13L和ADD13H 14:直接寻址区中96H和97H地址映射为ADD14L和ADD14H 15:直接寻址区中96H和97H地址映射为ADD15L和ADD15H 当REGSEL = 1时: 0:直接寻址区中96H地址映射为SEQCH0 1:直接寻址区中96H地址映射为SEQCH1 2:直接寻址区中96H地址映射为SEQCH2 3:直接寻址区中96H地址映射为SEQCH3 4:直接寻址区中96H地址映射为SEQCH4 5:直接寻址区中96H地址映射为SEQCH5 6:直接寻址区中96H地址映射为SEQCH6 7:直接寻址区中96H地址映射为SEQCH7 8:直接寻址区中96H地址映射为SEQCH8 9:直接寻址区中96H地址映射为SEQCH9 10:直接寻址区中96H地址映射为SEQCH10 11:直接寻址区中96H地址映射为SEQCH11 12:直接寻址区中96H地址映射为SEQCH12 13:直接寻址区中96H地址映射为SEQCH13 14:直接寻址区中96H地址映射为SEQCH14 15:直接寻址区中96H地址映射为SEQCH15 110 SH79F1615 Table 8.44 ADC通道配置寄存器1 第7位 95H 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADCH1 - - CH5 CH4 CH3 CH2 CH1 CH0 读/写 - - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - 0 0 0 0 0 0 位编号 7-0 位符号 CH[7:0] 说明 通道配置 1:P0x(x = 2 - 7)配置为模拟输入口 (ADC输入或比较器2同相输入) 0:P0x(x = 2 - 7)作为I/O口 Table 8.45 ADC通道配置寄存器2 A5H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADCH2 - CH10 CH9 CH8 - - - BGCHOP 读/写 - 读/写 读/写 读/写 - - - 读/写 复位值 (POR/WDT/LVR/PIN) - 0 0 0 - - - 0 位编号 位符号 说明 7-4 CH[11:8] 通道配置 1:P1x(x = 2 - 3,6)配置为模拟输入口 0:P1x(x = 2 - 3,6)作为I/O口 0 BGCHOP 基准源CHOP功能开关 0:基准源VBG CHOP功能关闭 1:基准源VBG CHOP功能开启 注意: VBG为内部基准源,电平为1.20V,误差+/-20mV。 VBG的开关控制位BGEN在运放和比较器模块的CMP2CON1寄存器中设置,如下表所示。 当AD通路选取VBG为待转换值时,由于VBG驱动能力有限,需要加一级CHOP开关才能精确转换,即AD转换VBG时,需要同 时打开VBG和BGCHOP。 VBG主要是查看外部VDD稳定否,VBG为内部基准电源,即使芯片供电VDD有抖动,VBG电压也很稳定,所以当ADC选取VDD 作为参考源VREF转换VBG时,用抖动的VDD参考源去采样稳定的VBG,得到的转换值也是抖动,由此可以判断此时的VDD供电不稳 定。 下面是利用VBG电压倒推出目前VREF电压的公式:(VBG = 1.20V;DVBG为VBG的AD出码值) VREF = 1.20V*4096/DVBG; 如果选择VREF为VDD,则可推算出当前的VDD电压。由于VBG精度±1.67%,所以得出的VDD精度也是±1.67%。 111 SH79F1615 Table 8.46 放大器 & 比较器2控制寄存器1 第7位 BCH 第6位 第5位 第4位 第3位 第2位 第1位 第0位 CMP2CON1 - - - BGEN - - - - 读/写 - - - 读/写 - - - - 复位值 (POR/WDT/LVR/PIN) - - - 0 - - - - 位编号 位符号 4 说明 基准源(1.20V)功能控制位 0:关闭1.20V基准源VBG 1:开启1.20V基准源VBG BGEN 注意:基准源开启需要建立时间,最长不超过100us,因此当需要用到1.20V基准 源时,需要提前100us将此标志位置1 Table 8.47 通道寄存器x(x = 0 - 15) 96H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SEQCHx - - - - SEQx3 SEQx2 SEQx1 SEQx0 读/写 - - - - 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 位编号 3-0 位符号 SEQx[3:0] 说明 通道选择位段 0000:通道0(CH0) 0001:通道1(CH1) 0010:通道2(CH2) 0011:通道3(CH3) 0100:通道4(CH4) 0101:通道5(CH5) 1000:通道8(CH8) 1001:通道9(CH9) 1010:通道10(CH10) 1100:通道选择OP1OUT 1110:VBG (其它值则无效) 注意:若转换通道选中 VBG ,需提前 100us 将 1.20V 基准源打开,即将寄存器 [CMP2CON1:BGEN]位置1,详情参见CMP2CON1寄存器描述 若转换OPOUT,也需要提前打开OP功能,OP需要一定的建立时间(约100us) 才能输出稳定的结果。 注意:SEQCH0 - SEQCH15都映像在同一个地址96H上。令SEQCON寄存器中REGSEL位等于1,同时改变SEQCON寄存 器中的位段REG[3:0]的值,可以由软件读写SEQCH0 - SEQCH15。如令REGSEL = 1,REG[3:0] = 3,则读写直接寻址区中96H 地址即读写寄存器SEQCH3。 112 SH79F1615 Table 8.48 ADC结果寄存器x(x = 0 - 15) 左对齐模式: 96H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDxL A3 A2 A1 A0 - - - - 读/写 只读 只读 只读 只读 - - - - 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 - - - - 97H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDxH A11 A10 A9 A8 A7 A6 A5 A4 读/写 只读 只读 只读 只读 只读 只读 只读 只读 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 96H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDxL A7 A6 A5 A4 A3 A2 A1 A0 读/写 只读 只读 只读 只读 只读 只读 只读 只读 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 97H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDxH - - - - A11 A10 A9 A8 读/写 - - - - 只读 只读 只读 只读 复位值 (POR/WDT/LVR/PIN) - - - - 0 0 0 0 右对齐模式: 位编号 7-0,7-4/ 3-0,7-0 位符号 A11-A0 说明 左对齐方式(ALR = 0) 一个通道转换完毕后,数据立即更新并存放在ADDxL/H(x = 0 - 15)中 高8位存放在ADDxH中,低4位存放在ADDxL的高4位,序列转换一次所有结果寄 存器也都更新了一次 右对齐方式(ALR = 1) 一个通道转换完毕后,数据立即更新并存放在ADDxL/H(x = 0 - 15)中 高4位存放在ADDxH的低4位,低8位存放在ADDxL中,序列转换一次所有结果寄 存器也都更新了一次 注意: ADD0L - ADD15L都映像在同一个地址96H上;ADD0H - ADD15H也都映像在同一个地址97H上,并且都为只读寄存器。令 SEQCON寄存器中REGSEL位等于0,同时改变SEQCON寄存器中的位段REG[3:0]的值,可以由软件读ADD0L/H - ADD15L/H。 如令 REGSEL = 0, REG[3:0] = 5,则读直接寻址区中 96H 地址即对读寄存器 ADD5L,读直接寻址区中97H地址即读寄存器 ADD5H。 在10BIT模式下,结果的存储也是按上表的方式存储,但有效位为A11 - A2,而A1 - A0自动填充为0,这样做主要是考虑ADC 的转换速率的提高,10bit模式下一个通道转换时间比12BIT模式下节省2个ADC时间周期。 113 SH79F1615 Table 8.49 比较控制寄存器 91H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADCMPCON ADLIE ADGIE ADLIF ADGIF CSEL3 CSEL2 CSEL1 CSEL0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7 ADLIE 下限比较中断使能位 0:禁止下限比较中断 1:使能下限比较中断 6 ADGIE 上限比较中断使能位 0:禁止上限比较中断 1:使能上限比较中断 ADLIF 下限比较中断标志位 0:无下限中断发生,CSEL位段所指定结果寄存器中的最近一次更新值大于 ADDLTH/L中的值 1:发生下限中断,CSEL位段所指定结果寄存器中的最近一次更新值小于等于 ADDLTH/L中的值 该标志置起后需由软件清0 ADGIF 上限比较中断标志位 0:无上限中断发生,CSEL位段所指定结果寄存器中的最近一次更新值小于 ADDGTH/L中的值 1:发生上限中断,CSEL位段所指定结果寄存器中的最近一次更新值大于等于 ADDGTH/L中的值 该标志置起后需由软件清0 5 4 3-0 CSEL[3:0] 说明 用于比较的结果寄存器选择位段 0:选择ADD0L/H中的值与ADDGTL/H、ADDLTL/H比较 1:选择ADD1L/H中的值与ADDGTL/H、ADDLTL/H比较 2:选择ADD2L/H中的值与ADDGTL/H、ADDLTL/H比较 3:选择ADD3L/H中的值与ADDGTL/H、ADDLTL/H比较 4:选择ADD4L/H中的值与ADDGTL/H、ADDLTL/H比较 5:选择ADD5L/H中的值与ADDGTL/H、ADDLTL/H比较 6:选择ADD6L/H中的值与ADDGTL/H、ADDLTL/H比较 7:选择ADD7L/H中的值与ADDGTL/H、ADDLTL/H比较 8:选择ADD8L/H中的值与ADDGTL/H、ADDLTL/H比较 9:选择ADD9L/H中的值与ADDGTL/H、ADDLTL/H比较 10:选择ADD10L/H中的值与ADDGTL/H、ADDLTL/H比较 11:选择ADD11L/H中的值与ADDGTL/H、ADDLTL/H比较 12:选择ADD12L/H中的值与ADDGTL/H、ADDLTL/H比较 13:选择ADD13L/H中的值与ADDGTL/H、ADDLTL/H比较 14:选择ADD14L/H中的值与ADDGTL/H、ADDLTL/H比较 15:选择ADD15L/H中的值与ADDGTL/H、ADDLTL/H比较 114 SH79F1615 Table 8.50 ADC上限比较寄存器 第7位 9EH 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDGTL GT7 GT6 GT5 GT4 GT3 GT2 GT1 GT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 9FH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDGTH GT15 GT14 GT13 GT12 GT11 GT10 GT9 GT8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 7-0 GT15 - GT0 说明 当一次序列转换完成时,ADCMPCON寄存器中CSEL位段指定结果寄存器的值立刻 与ADDGTL/H中的值比较,若大于等于ADDGTL/H中的值则令ADCMPCON中的 ADGIF位置1,ADGIF位将保持为1直到软件将其清除 Table 8.51 ADC下限比较寄存器 9CH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDLTL LT7 LT6 LT5 LT4 LT3 LT2 LT1 LT0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 9DH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 ADDLTH LT15 LT14 LT13 LT12 LT11 LT10 LT9 LT8 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 7-0 LT15- LT0 说明 当一次序列转换完成时,ADCMPCON寄存器中CSEL位段指定结果寄存器的值立刻 与ADDLTL/H中的值比较,若小于等于ADDLTL/H中的值则令ADCMPCON中的 ADLIF位置1,ADLIF位将保持为1直到软件将其清除 115 SH79F1615 8.4.4 序列转换工作模式 SC = 0,ADC配置为序列转换模式,一次转换一个序列。序列由单个通道或多个通道组成,对序列进行转换即对序列中的 通道进行逐个转换。在硬件上,使得多个信号在同一时间点上转换得以实现(2通道间最短采样间隔1us,可近似看作同时)。 转换的结果储存在对应的结果寄存器中,序列转换完成的同时,把指定的某个结果寄存器的值与ADDGTL/H和ADDLTL/H 的值比较,并以标志指示比较的结果。 序列转换中通道的选择设置 一个序列可包含单个或多个通道,将待转换的通道号分别存放在通道寄存器SEQCHx中(x = 0 - 15),寄存器SEQCHx有 16组,所以序列转换时,一次最多可转换16路通道。而每次转换的通道数量由寄存器ADCH2中的GRP[3:0]的值决定。例:GRP[3:0] = 0,即单通道转换,将SEQCH0中存放的通道进行转换;GRP[3:0] = 3,则序列中有4路通道,将SEQCH0到SEQCH3中存放 的通道依次转换。 通道寄存器SEQCHx(x = 0 - 15)中存放的即是待转换的通道号。例:有3路通道需要转换,按优先级排序为OP1OUT, CH2,CH9,则设置为GRP[3:0] = 2,SEQCH0 = 12,SEQCH1 = 2,SEQCH2 = 9,将依次转换。(注意:需要转换的通道必 须配置为AD通道功能。SEQCHx中也可设置相同的通道号,比如将SEQCHx中的值全设置为CH3,结果寄存器中储存的将是不 同时间段的CH3的转换值。) 寄存器SEQCHx(x = 0 - 15)与ADDxL共享一个地址96H,访问时需要由SEQCON寄存器中的REGSEL位和REG[3:0]位区 分,REGSEL = 1时,读写直接寻址寄存器96H即访问通道转换寄存器SEQCHx,而REG[3:0]的值确定x的值。这里REG[3:0] = 0 即访问SEQCH0寄存器,依次类推,可设置SEQCH0 - SEQCH15中的通道号。 序列转换模式ADC结果寄存器 序列转换的结果依次储存在结果寄存器ADDxL/H(x = 0 - 15)中,结果寄存器为只读寄存器。由寄存器SEQCON中的ALR 位决定转换结果的存储方式,ALR = 0(默认)时结果按左对齐存储在ADDxL/H中,ALR = 1时结果按右对齐存储在ADDxL/H中, 如图8-4-2。一个序列转换完毕,结果寄存器ADDxL/H中的值也更新了一次。由于ADDxL和SEQCHX(通道寄存器)共享一个地 址96H,需要由SEQCON寄存器中的REGSEL位和REG[3:0]位区分。REGSEL = 0时,读直接寻址区的97H,96H即访问结果寄 存器ADDxL/H,而REG[3:0]的值确定x的值。比如REG[3:0] = 0,访问直接寻址区97H,96H即访问ADD0L/H。以上节中的3路 通道转换为例,按优先级排序为OP1OUT,CH2,CH9,结果依次储存在ADDxL/H(x = 0 - 2),如图8-4-3。(注意:如果想转 换上述的3个通道,而GRP[3:0] = 1,则最后一个SEQCH2中的通道9则不转换,读取ADD2L/H的值是无效值;相反如果设置了 GRP[3:0] = 3,则多转换了一路通道,第4路通道是SEQCH3中的值对应的通道。) MSB LSB ADDHx(97H) A11 A10 A9 A8 ADDLx(96H) A3 A2 A1 A0 A7 A6 A5 A4 ALR=0 MSB ADDHx(97H) ADDLx(96H) A7 LSB A6 A5 A4 ALR=1 图8-4-2 116 A11 A10 A9 A8 A3 A2 A1 A0 SH79F1615 GRP[3:0]=2 Result OP1OUT SEQCH0 =12 CH2 SEQCH1= 2 CH9 SEQCH2 = 9 sequencer CHx SEQCH3 = x CHx SEQCH14 = x ADD0L/H ADD1L/H ADD2L/H ADD3L/H ADD14L/H CHx SEQCH15 = x ADD15L/H 图8-4-3 序列转换时通道之间时间间隔(Gap Time)的设置 序列转换时,从上一个通道转换完毕时刻到下一个通道开始采样时刻之间的时间可以通过寄存器ADCON2中的TGAP位段来 设置。当TGAP[2:0] = 0时,一个通道转换完毕后立即开始下一个通道的采样,之间没有等待时间。 序列转换模式的启动和停止 序列转换模式的启动可以分为软件启动和硬件启动。 软件启动,通过将ADCON1中的ADON位置1,这样可以使能ADC模块的时钟ADC_CLK,同时令ADON位置1可以令ADC —---—-----— —---—-----— 模块中的模拟电路上电。当ADCON1寄存器中的GO/DONE位置1,则启动序列转换。当一次序列转换完成,由硬件将GO/DONE —---—-----— —---—-----— 清0,同时进行比较(在8.4.6节中详细阐述)。当读取GO/DONE为1时,则标志转换进行未完成。如果在转换过程中清0 GO/DONE 位,则终止转换。 硬件启动有2种方式,TIMER2的溢出触发启动一次序列转换和PWM0/1/2模块触发信号启动一次序列转换。具体通过设置 ADCON1寄存器中的PWMTRGEN位和TIMETRGEN位以及PWM0/1/2模块的相关寄存器。 硬件触发信号优先于软件触发信号。当软件已经处于序列转换中时,硬件触发会终止先前的序列转换而重新启动一次序列 转换,转换值将会覆盖先前的结果。另外如果在连续转换期间,有硬件触发信号过来,会清0SC位终止连续转换,并重新触发 一次序列转换。建议在使用硬件触发功能时,将SC清0。 PWM0/1/2模块的触发序列转换过程中,又进来一次TIMER2的触发信号,则序列将会终止先前的转换重新启动一次,转换 值将覆盖先前的结果;反之TIMER2触发序列的转换过程中,又进来一次PWM0/1/2的触发信号,则也会终止先前的转换,重新 启动一次序列,转换值覆盖先前的结果。 —---—-----— 注意:在序列转换过程中,即GO/DONE为1时,对除了ADCON1、ADCMPCON、SEQCON、ADDGTL/H、ADDLTL/H以 外的所有ADC寄存器的写入都将视为无效操作。 序列转换完成中断 序列转换完毕后,ADCON1中的ADCIF位将由硬件置起,此时若ADCON1中ADCIE位为1,同时IEN0寄存器中的EADC和 EA位为1,则将触发序列转换完成中断,ADCIF位只能由软件清除。 比较中断 序列转换完的同时,会将指定结果寄存器的值去比较,若超限,也可以产生一个比较中断,因为比较和序列转换完成是同 时发生的,所以中断的产生也是同时,并且共用一个中断入口。(在8.4.6节中详细阐述) 117 SH79F1615 8.4.5 连续转换工作模式 SC = 1选择连续转换工作模式,序列循环转换,转换完一个序列便进行此序列的下一次转换。连续转换的一些寄存器设置 可参考“序列转换工作模式”,和序列转换不同的是该模式将循环转换序列,一个序列转换完成到下个序列开始转换的时间也是由 TGAP[2:0]控制的。每次序列转换完成的同时,把指定的某个结果寄存器的值与ADDGTL/H和ADDLTL/H的值比较,并以标志指 示比较的结果。 连续转换模式的转换结果,也会时时更新,会在每个通道转换完成后第一时间更新入对应的结果寄存器。 连续转换功能的启动和停止 —---—-----— 连续转换功能只有通过软件启动,在SC = 1时,通过置位GO/DONE来启动,通过软件清0 SC位来终止。当清0SC位时, —---—-----— —---—-----— AD转换将在当前序列转换结束时停止,并且GO/DONE自动清0,同时进行比较;而手动清GO/DONE会立刻终止转换。 启动连续转换功能后,ADCIF会在每次序列转换完成时置起,比较功能也会在每次序列转换完成时进行。如果发生指定的 结果寄存器值超限,会置位相应的标志位ADGIF、ADLIF,如果相应的中断允许位开启,则会产生中断。 —---—-----— 注意:在连续转换过程中,即GO/DONE为1时,对除了ADCON1、SEQCON、ADCMPCON、ADDGTL/H、ADDLTL/H以 外的所有ADC寄存器的写入都将视为无效操作。 序列转换完成中断 每次序列转换完毕后,ADCON1中的ADCIF位都会置起,此时若ADCON1中ADCIE位为1,同时IEN0寄存器中的EADC和 EA位为1,则将触发序列转换完成中断,此时ADCIF位必须在中断程序中由软件清除。 比较中断 每次序列转换完成时,都会将指定结果寄存器的值去作比较,如果超限,也可以产生一个比较中断。因为比较和序列转换 完成是同时发生的,所以中断的产生也是同时,并且共用一个中断入口。(在8.4.6节中详细阐述) 8.4.6 比较功能 比较用结果寄存器的指定 由寄存器ADCMPCON中的CSEL位段来指定被比较的结果寄存器,若CSEL = n,则结果寄存器ADDnL/H将与ADDGTL/H 和ADDLTL/H的值比较。以图8-4-3的配置为例,若设置CSEL = 2,每次序列转换完成的同时将ADD2L/H的值与ADDGTL/H和 ADDLTL/H的值比较。 需要注意的是,若指定一个序列转换不使用的结果寄存器,则不会发生任何比较动作。如上例中令CSEL = 3,转换后未使 用结果寄存器ADD3L/H,故没有任何比较动作发生,标志位ADGIF和ADLIF的值不会发生变化。 注意:在写入比较值ADDGTL/H和ADDTL/H时,应注意结果寄存器的存储方式是左对齐还是右对齐,数据写入格式应和结 果寄存器的存储格式一致,如果是在10BIT模式下比较,则写入的值只比较A11 - A2前10位,剩下2位不作比较。ADDGTL/H和 ADDTL/H写入值有即时生效性,比较时会采用ADDGTL/H和ADDTL/H最近一次的更新值。 比较过程 设CSEL = n,ADDGTL/H = Max,ADDLTL/H = Min,当序列转换完成时,立即将指定结果寄存器ADDnL/H的值与Max和 Min比较。若ADDnL/H >= Max,则ADCMPCON寄存器中ADGIF位将置1,若ADGIE位为1,则可以触发一个比较中断(与序列 转换完成共享一个中断向量),ADGIF位将保持为1直到软件将其清除;若ADDnL/H VLVR或VDD < VLVR,但持续时间 < TLVR时不会产生系统复位。 通过代码选项,可以选择LVR功能的打开与关闭。 在交流电或大容量电池应用中,接通大负载后容易导致MCU供电暂时低于定义的工作电压。低电压复位可以应用于此,保 护系统在低于设定电压下产生有效复位。 123 SH79F1615 8.7 看门狗定时器(WDT),程式超范围溢出(OVL)复位及其它复位状态 8.7.1 特性  程式超范围溢出后硬件自动检测,并产生 OVL 复位  看门狗可以工作在掉电模式下  看门狗溢出频率可选 程序超范围溢出复位 SH79F1615为进一步增强CPU运行可靠性,内建程式超范围溢出检测电路,一旦检测到程式计数器的值超出ROM最大值, 或者发现指令操作码(不检测操作数)为8051指令集中不存在的A5H,便认为程式跑飞,产生CPU复位信号,同时将WDOF标 志位置1。为应用这个特性,用户应该将未使用的Flash ROM用0xA5填满。 看门狗 看门狗定时器是一个递减计数器,独立内建RC振荡器作为其时钟源,因此可以通过代码选项选择在掉电模式下仍持续运行。 当定时器溢出时,将芯片复位。通过代码选项可以打开或关闭该功能。 WDT控制位(第2 - 0位)用来选择不同的溢出时间。定时器溢出后,WDT溢出标志(WDOF)将由硬件自动置1。通过读 写RSTSTAT寄存器,看门狗定时器在溢出前重新开始计数。 其它一些复位标志列举如下: 124 SH79F1615 8.7.2 寄存器 Table 8.53 复位状态寄存器 B1H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 RSTSTAT WDOF - PORF LVRF CLRF WDT.2 WDT.1 WDT.0 读/写 读/写 - 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR) 0 - 1 0 0 0 0 0 复位值 (WDT) 1 - u u u 0 0 0 复位值 (LVR) u - u 1 u 0 0 0 复位值 (PIN) u - u u 1 0 0 0 位编号 7 5 4 3 2-0 位符号 说明 WDOF 看门狗溢出或程式超范围溢出标志位 看门狗溢出时由硬件置1,可由软件或上电复位清0 0:未发生WDT溢出或程式超范围溢出 1:发生WDT溢出或程式超范围溢出 PORF 上电复位标志位 上电复位后硬件置1,只能由软件清0 0:没有发生上电复位 1:发生过上电复位 LVRF 低压复位标志位 低压复位后置1,可由软件或上电复位清0 0:没有发生低压复位 1:发生过低压复位 CLRF Reset引脚复位标志位 引脚复位后置1,由软件或上电复位清0 0:没有发生引脚复位 1:发生过引脚复位 WDT[2:0] WDT溢出周期控制位 000:溢出周期最小值 = 4096ms(此档特殊,溢出产生的是上电复位标志PORF) 001:溢出周期最小值 = 1024ms 010:溢出周期最小值 = 256ms 011:溢出周期最小值 = 128ms 100:溢出周期最小值 = 64ms 101:溢出周期最小值 = 16ms 110:溢出周期最小值 = 4ms 111:溢出周期最小值 = 1ms 注意:应用中如果看门狗打开,程式清看门狗的最大间隔时间不能大于以上所列 最小值 125 SH79F1615 8.8 电源管理 8.8.1 特性  空闲模式和掉电模式两种省电模式  发生中断和复位可退出空闲(Idle)、掉电(Power-Down)模式 为减少功耗,SH79F1615提供两种低功耗省电模式:空闲模式和掉电模式,这两种模式都由PCON和SUSLO寄存器控制。 8.8.2 空闲模式 空闲模式能够降低系统功耗,在此模式下,程序中止运行,CPU时钟停止,但外部设备时钟继续运行。空闲模式下,CPU 在确定的状态下停止,并在进入空闲模式前所有CPU的状态都被保存,如PC,PSW,SFR,RAM等。 两条连续指令:先设置SUSLO寄存器为55H,随即将PCON寄存器中的IDL位置1,使SH79F1615进入空闲模式。如果按顺 序要求的连续指令不被满足,CPU在下一个机器周期清除SUSLO寄存器或IDL位,CPU也不会进入空闲模式。 IDL位置1是CPU进入空闲模式之前执行的最后一条指令。 两种方式可以退出空闲模式: (1) 产生一个中断。立即恢复CPU时钟,硬件清除SUSLO寄存器和PCON寄存器的IDL位。然后执行中断服务程序,随后跳 转到进入空闲模式指令之后的指令。 (2) 复位信号产生后(复位引脚上出现低电平,WDT复位,LVR复位)。在预热定时结束之后,CPU恢复时钟,SUSLO寄 存器和在PCON寄存器中的IDL位被硬件清除,最后SH79F1615复位。然后程序从地址位0000H开始执行。RAM保持不变而SFR 的值根据不同功能模块改变。 8.8.3 掉电模式 掉电模式可以使SH79F1615进入功耗非常低的状态。掉电模式将停止CPU和外围设备的所有时钟信号(掉电模式会自动关闭 内部ADC模块供电,但不会关闭OP和CMP模块供电,如需切断相应模块供电,须软件手动关闭该模块)。如果WDT使能,WDT 模块将继续工作。在进入掉电模式前所有CPU的状态都被保存,如PC,PSW,SFR,RAM等。 两条连续指令:先设置SUSLO寄存器为55H,随即将PCON寄存器中的PD位置1,使SH79F1615进入掉电模式。如果按顺 序要求的连续指令不被满足,CPU在下一个机器周期清除SUSLO寄存器或的IDL位,CPU也不会进入掉电模式。 PD位置1是CPU进入掉电模式之前执行的最后一条指令。 注意:如果同时设置IDL位和PD位,SH79F1615进入掉电模式。退出掉电模式后,CPU也不会进入空闲模式,从掉电模式 退出后硬件会清除IDL及PD位。 有两种方式可以退出掉电模式: (1) 有效外部中断(如INT0,INT1,INT4)和一定情况下的Timer3中断(详见定时器3章节)能使SH79F1615退出掉电模 式。在中断发生后振荡器启动,CPU时钟和外部设备时钟立即恢复,SUSLO寄存器和PCON寄存器中的PD位会被硬件清除,然 后程序运行中断服务程序。在完成中断服务程序之后,跳转到进入掉电模式之后的指令继续运行。 (2) 复位信号(复位引脚上出现低电平,WDT复位如果被允许,LVR复位如果被允许)。在预热计时之后会恢复CPU时钟, SUSLO寄存器和PCON寄存器中的PD位会被硬件清除,最后SH79F1615会被复位。然后程序会从0000H地址位开始运行。RAM 将保持不变,而根据不同功能模块SFR的值可能改变。 注意:如要进入这两种低功耗模式,必须在置位PCON中的IDL/PD位后增加3个空操作指令。 126 SH79F1615 8.8.4 寄存器 Table 8.54 电源控制寄存器 87H 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 PCON SMOD SSTAT IT41 IT40 GF1 GF0 PD IDL 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 说明 7 SMOD UART波特率加倍器 6 SSTAT SCON[7:5]功能选择位 5-4 IT4[1:0] 外部中断4模式选择控制位 3-2 GF[1:0] 用于软件的通用标志 1 PD 掉电模式控制位 0:当一个中断或复位产生时由硬件清0 1:由软件置1激活掉电模式 0 IDL 空闲模式控制位 0:当一个中断或复位产生时由硬件清0 1:由软件置1激活空闲模式 Table 8.55 省电模式控制寄存器 8EH 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 SUSLO SUSLO.7 SUSLO.6 SUSLO.5 SUSLO.4 SUSLO.3 SUSLO.2 SUSLO.1 SUSLO.0 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 读/写 复位值 (POR/WDT/LVR/PIN) 0 0 0 0 0 0 0 0 位编号 位符号 7-0 SUSLO[7:0] 说明 此寄存器用来控制CPU进入省电模式(空闲或掉电)。只有像下面的连续指令才能使 CPU进入省电模式,否则在下个周期中SUSLO,IDL或PD位将被硬件清0 程序举例: IDLE_MODE: MOV ORL NOP NOP NOP SUSLO,#55H PCON,#01H POWERDOWN_MODE: MOV SUSLO,#55H ORL PCON,#02H NOP NOP NOP 127 SH79F1615 8.9 预热计数器 8.9.1 特性  内建电源预热计数器消除电源的上电的不稳定状态  内建振荡器预热计数器消除振荡器起振时的不稳定状态 SH79F1615内建有电源上电预热计数器,主要是用来消除上电电压建立时的不稳定态,同时完成内部一些初始化序列,如 读取内部客户代码选项等。 SH79F1615还内建振荡器预热计数器,它能消除振荡器在下列情况下起振时的不稳定状态:上电复位,引脚复位,从低功 耗模式中唤醒,看门狗复位和LVR复位。 上电后,SH79F1615会先经过电源上电预热计数过程,等待溢出后再进行振荡器的预热计数过程过程,溢出后开始运行程 式。 电源上电预热计数时间 上电复位/ 按键复位/低压复位 WDT复位 (不在掉电情况下) WDT复位 (从掉电情况唤醒) 从掉电情况下唤醒 (只是中断唤醒) 电源上电 预热计数时间 振荡器上电 预热计数 电源上电 预热计数时间 振荡器上电 预热计数 电源上电 预热计数时间 振荡器上电 预热计数 电源上电 预热计数时间 振荡器上电 预热计数 11ms 有 ≈1ms 无 ≈1ms 有 ≈800us 有 振荡器上电预热计数时间 Option: OP_WMT 00 01 10 11 217 X Tosc 214 X Tosc 211 X Tosc 28 X Tosc 振荡器类型 陶振/晶振 27 X Tosc 内部RC 128 SH79F1615 8.10 代码选项 OP_LVREN: 0:禁止低电压复位功能(默认) 1:允许低电压复位功能 OP_LVRLE: 0:低电压复位设定电压为4.1V(默认) 1:低电压复位设定电压为2.8V OP_RST: 0:引脚P1.5用作复位引脚(默认) 1:引脚P1.5用作I/O口 OP_WDT: 0:允许WDT功能 1:禁止WDT功能(默认) OP_WDTPD: 0:禁止掉电模式下WDT功能(默认) 1:允许掉电模式下WDT功能 OP_WMT:(除了RC) 00:振荡器采用最长预热计数时间(默认) 01:振荡器采用比较长预热计数时间 10:振荡器采用比较短预热计数时间 11:振荡器采用最短预热计数时间 OP_SCM: 0:在预热期间禁止时钟单元检测功能(默认) 1:在预热期间允许时钟单元检测功能 OP_OSC: 0000:单振荡器模式,选中内部27MHz RC振荡器(默认) 0011:双振荡器模式,内部128KHz RC振荡器作为振荡器1,27MHz 内部RC作为振荡器2 0110:双振荡器模式,内部128KHz RC振荡器作为振荡器1,400k-16MHz晶体/陶瓷谐振器作为振荡器2 1110:单振荡器模式,选中400k-16MHz晶体/陶瓷谐振器 P2 N buffer enlarge Sink current: 0:P2口灌电流能力增强功能关闭(默认) 1:P2口灌电流能力增强功能开启 P3/P0 P buffer enlarge Driving current: 0:P3/P0口拉电流能力增强功能关闭(默认) 1:P3/P0口拉电流能力增强功能开启 OP_CRMC: 0:振荡源为晶振时选取(默认) 1:振荡源为陶振时选取 OP_OSCDRV: 11:400k-16MHz晶体/陶瓷谐振器的驱动能力选择最高档(默认) 10:400k-16MHz晶体/陶瓷谐振器的驱动能力选择较高档 01:400k-16MHz晶体/陶瓷谐振器的驱动能力选择较低档 00:400k-16MHz晶体/陶瓷谐振器的驱动能力选择最低档 129 SH79F1615 9. 指令集 算术操作指令 指令 功能描述 代码 字节 周期 ADD A,Rn 累加器加寄存器 0x28-0x2F 1 1 ADD A,direct 累加器加直接寻址字节 0x25 2 2 ADD A,@Ri 累加器加内部RAM 0x26-0x27 1 2 ADD A,#data 累加器加立即数 0x24 2 2 ADDC A,Rn 累加器加寄存器和进位位 0x38-0x3F 1 1 ADDC A,direct 累加器加直接寻址字节和进位位 0x35 2 2 ADDC A,@Ri 累加器加内部RAM和进位位 0x36-0x37 1 2 ADDC A,#data 累加器加立即数和进位位 0x34 2 2 SUBB A,Rn 累加器减寄存器和借位位 0x98-0x9F 1 1 SUBB A,direct 累加器减直接寻址字节和借位位 0x95 2 2 SUBB A,@Ri 累加器减内部RAM和借位位 0x96-0x97 1 2 SUBB A,#data 累加器减立即数和借位位 0x94 2 2 INC A 累加器加1 0x04 1 1 INC Rn 寄存器加1 0x08-0x0F 1 2 INC direct 直接寻址字节加1 0x05 2 3 INC @Ri 内部RAM加1 0x06-0x07 1 3 DEC A 累加器减1 0x14 1 1 DEC Rn 寄存器减1 0x18-0x1F 1 2 DEC direct 直接寻址字节减1 0x15 2 3 DEC @Ri 内部RAM减1 0x16-0x17 1 3 数据指针加1 0xA3 1 累加器乘寄存器B 0xA4 1 累加器除以寄存器B 0x84 1 4 11 20 11 20 十进制调整 0xD4 1 INC DPTR MUL AB DIV AB DA A 8X8 16 X 8 8/8 16 / 8 130 1 SH79F1615 逻辑操作指令 指令 功能描述 代码 字节 周期 累加器与寄存器 0x58-0x5F 1 1 ANL A,direct 累加器与直接寻址字节 0x55 2 2 ANL A,@Ri 累加器与内部RAM 0x56-0x57 1 2 ANL A,#data 累加器与立即数 0x54 2 2 ANL direct,A 直接寻址字节与累加器 0x52 2 3 ANL direct,#data 直接寻址字节与立即数 0x53 3 3 ORL A,Rn 累加器或寄存器 0x48-0x4F 1 1 ORL A,direct 累加器或直接寻址字节 0x45 2 2 ORL A,@Ri 累加器或内部RAM 0x46-0x47 1 2 ORL A,#data 累加器或立即数 0x44 2 2 ORL direct,A 直接寻址字节或累加器 0x42 2 3 ORL direct,#data 直接寻址字节或立即数 0x43 3 3 XRL A,Rn 累加器异或寄存器 0x68-0x6F 1 1 XRL A,direct 累加器异或直接寻址字节 0x65 2 2 XRL A,@Ri 累加器异或内部RAM 0x66-0x67 1 2 XRL A,#data 累加器异或立即数 0x64 2 2 XRL direct,A 直接寻址字节异或累加器 0x62 2 3 XRL direct,#data 直接寻址字节异或立即数 0x63 3 3 CLR A 累加器清零 0xE4 1 1 CPL A 累加器取反 0xF4 1 1 RL A 累加器左环移位 0x23 1 1 RLC A 累加器连进位标志左环移位 0x33 1 1 RR A 累加器右环移位 0x03 1 1 RRC A 累加器连进位标志右环移位 0x13 1 1 SWAP A 累加器高4位与低4位交换 0xC4 1 4 ANL A,Rn 131 SH79F1615 数据传送指令 指令 功能描述 代码 字节 周期 MOV A,Rn 寄存器送累加器 0xE8-0xEf 1 1 MOV A,direct 直接寻址字节送累加器 0xE5 2 2 MOV A,@Ri 内部RAM送累加器 0xE6-0xE7 1 2 MOV A,#data 立即数送累加器 0x74 2 2 MOV Rn,A 累加器送寄存器 0xF8-0xFF 1 2 MOV Rn,direct 直接寻址字节送寄存器 0xA8-0xAF 2 3 MOV Rn,#data 立即数送寄存器 0x78-0x7F 2 2 MOV direct,A 累加器送直接寻址字节 0xF5 2 2 MOV direct,Rn 寄存器送直接寻址字节 0x88-0x8F 2 2 MOV direct1,direct2 直接寻址字节送直接寻址字节 0x85 3 3 MOV direct,@Ri 内部RAM送直接寻址字节 0x86-0x87 2 3 MOV direct,#data 立即数送直接寻址字节 0x75 3 3 MOV @Ri,A 累加器送内部RAM 0xF6-0xF7 1 2 MOV @Ri,direct 直接寻址字节送内部RAM 0xA6-0xA7 2 3 MOV @Ri,#data 立即数送内部RAM 0x76-0x77 2 2 MOV DPTR,#data16 16位立即数送数据指针 0x90 3 3 MOVC A,@A+DPTR 程序代码送累加器(相对数据指针) 0x93 1 7 MOVC A,@A+PC 程序代码送累加器(相对程序计数器) 0x83 1 8 MOVX A,@Ri 外部RAM送累加器(8位地址) 0xE2-0xE3 1 5 MOVX A,@DPTR 外部RAM送累加器(16位地址) 0xE0 1 6 MOVX @Ri,A 累加器送外部RAM(8位地址) 0xF2-F3 1 4 MOVX @DPTR,A 累加器送外部RAM(16位地址) 0xF0 1 5 PUSH direct 直接寻址字节压入栈顶 0xC0 2 5 POP direct 栈顶弹至直接寻址字节 0xD0 2 4 XCH A,Rn 累加器与寄存器交换 0xC8-0xCF 1 3 XCH A,direct 累加器与直接寻址字节交换 0xC5 2 4 XCH A,@Ri 累加器与内部RAM交换 0xC6-0xC7 1 4 XCHD A,@Ri 累加器低4位与内部RAM低4位交换 0xD6-0xD7 1 4 132 SH79F1615 控制程序转移指令 指令 功能描述 代码 字节 周期 ACALL addr11 2KB内绝对调用 0x11-0xF1 2 7 LCALL addr16 64KB内长调用 0x12 3 7 RET 子程序返回 0x22 1 8 RETI 中断返回 0x32 1 8 AJMP addr11 2KB内绝对转移 0x01-0xE1 2 4 LJMP addr16 64KB内长转移 0x02 3 5 SJMP rel 相对短转移 0x80 2 4 JMP @A+DPTR 相对长转移 0x73 1 6 累加器为零转移 0x60 2 3 5 累加器为非零转移 0x70 2 3 5 C置位转移 0x40 2 2 4 C清零转移 0x50 2 2 4 直接寻址位置位转移 0x20 3 4 6 直接寻址位清零转移 0x30 3 4 6 直接寻址位置位转移并清该位 0x10 3 4 6 累加器与直接寻址字节不等转移 0xB5 3 4 6 累加器与立即数不等转移 0xB4 3 4 6 寄存器与立即数不等转移 0xB8-0xBf 3 4 6 内部RAM与立即数不等转移 0xB6-0xB7 3 4 6 寄存器减1不为零转移 0xD8-0xDf 2 3 5 直接寻址字节减1不为零转移 0xD5 3 4 6 空操作 0 1 1 JZ rel (不发生转移) (发生转移) JNZ rel (不发生转移) (发生转移) JC rel (不发生转移) (发生转移) JNC rel (不发生转移) (发生转移) 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 (不发生转移) (发生转移) DJNZ direct,rel (不发生转移) (发生转移) NOP 133 SH79F1615 位操作指令 指令 CLR C 功能描述 代码 字节 周期 C清零 0xC3 1 1 CLR bit 直接寻址位清零 0xC2 2 3 SETB C C置位 0xD3 1 1 SETB bit 直接寻址位置位 0xD2 2 3 CPL C C取反 0xB3 1 1 CPL bit 直接寻址位取反 0xB2 2 3 ANL C,bit C逻辑与直接寻址位 0x82 2 2 ANL C,/bit C逻辑与直接寻址位的反 0xB0 2 2 ORL C,bit C逻辑或直接寻址位 0x72 2 2 ORL C,/bit C逻辑或直接寻址位的反 0xA0 2 2 MOV C,bit 直接寻址位送C 0xA2 2 2 MOV bit,C C送直接寻址位 0x92 2 3 134 SH79F1615 10. 电气特性 极限参数* *注释 直流供电电压. . . . . . . . . . . . . . . . . . . . . . . . -0.3V to +6.0V 输入/输出电压. . . . . . . . . . . . . . . . .GND-0.3V to VDD+0.3V 工作环境温度. . . . . . . . . . . . . . . . . . . . . . . -40°C to +105°C 存储温度 . . . . . . . . . .. . . . . . . . . . . . . . . . .-55°C to +125°C FLASH存储器写/擦除操作. . . . . . . . . . . . . . . . 0°C to +85°C 如 果 器 件 的 工 作 条 件 超 过 左 列“ 极 限 参 数 ” 的 范 围 ,将 造 成 器 件 永 久 性 破 坏 。只 有 当 器 件 工 作 在 说 明 书 所 规 定 的 范 围 内 时 功 能 才 能 得 到 保 障 。器 件 在 极 限 参 数 列 举 的 条件下工作将会影响到器件工作的可靠性。 直流电气特性(VDD = 2.4 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 参数 工作电压 符号 VDD IOP1 最小值 典型值∗ 最大值 2.4 - 5.0 8 5.5 单位 V 15 ISB1 - - 40 5 80 10 400k ≤ fOSC ≤ 27MHz mA fOSC = 27MHz,VDD = 5.0V 所有输出引脚无负载(所有数字输入引脚不浮动); CPU打开(执行NOP指令);WDT打开; 所有功能模块关闭 µA fOSC = 128kHz,VDD = 5.0V 所有输出引脚无负载(所有数字输入引脚不浮动); CPU打开(执行NOP指令);WDT打开; 所有功能模块关闭 mA fOSC = 27MHz,VDD = 5.0V 所有输出引脚无负载(所有数字输入引脚不浮动); CPU停止工作(IDLE);WDT关; LVR打开,关闭其它所有功能 工作电流 IOP2 条件 待机电流 (空闲模式) ISB2 - 20 40 µA fOSC = 128KHz,VDD = 5.0V 所有输出引脚无负载(所有数字输入引脚不浮动); CPU停止工作(IDLE);WDT关; LVR打开,关闭其它所有功能 待机电流 (掉电模式) ISB3 - 15 30 µA Osc off,VDD = 5.0V 所有输出引脚无负载;CPU停止(掉电模式); WDT关闭;LVR关闭;关闭其它所有功能 LVR电流 ILVR1 - 1 - µA LVR打开,LVR电平 = 4.1V/2.8V WDT电流 IWDT - 1 3 µA 所有输出引脚无负载;看门狗打开VDD = 5.0V 输入低电压1 VIL1 GND - 0.3 X VDD V I/O端口 输入高电压1 VIH1 0.7 X VDD - VDD V I/O端口 输入低电压2 VIL2 - 0.2 X VDD V 输入高电压2 输入漏电流 上拉电阻 GND VIH2 0.8 X VDD - VDD V ——-------—— RST ,T0,T1,T2,T3,INT0/1/4,RXD ——-------—— RST ,T0,T1,T2,T3,INT0/1/4,RXD IIL -1 - 1 µA 输入口,VIN = VDD或者GND RPH1 - 30 - kΩ VDD = 5.0V,VIN = GND 135 SH79F1615 续上表 输出高电压 VOH1 VDD - 0.7 - - V I/O端口,IOH = -10mA, VDD = 5.0V除P3,P0端口以外 输出高电压 VOH2 VDD - 0.7 - - V I/O端口,IOH = -20mA, VDD = 5.0V,P3,P0端口(Note 4) 输出低电压1 VOL1 - - GND + 0.6 V I/O端口,IOL = 15mA, VDD = 5.0V,除P2端口以外 输出低电压2 VOL2 - - GND + 1.5 V I/O端口,IOL = 120mA, VDD = 5.0V,P2端口(Note 4) 电压基准源精度 VBG 1.18 1.20 1.22 V TA = -40 ~ +85°C(Note 3) 注意: 1. “∗”表示典型值下的数据是在5.0V,25°C下测得的,除非另有说明。 2. 流过VDD的最大电流值须小于150mA。流过GND的最大电流值须小于200mA。 3. 设计保证,实际测试时未包含温度. 4. 驱动口能力加大受代码选项控制。 高速转换模式下10BIT模/数转换器电气特性1(1LSB = VDD/1024) 转换速率为1M sps。(VDD = 2.7 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 符号 最小值 典型值 最大值 单位 工作电压范围 参数 VAD 2.7 5.0 5.5 V 精度 NR - 10 - bit A/D输入电压 VAIN GND - VREF V A/D输入电阻 RAIN 2 - - MΩ 外部模拟参考电压 VREF 2.5 - VDD V 模拟输入电压源推荐阻抗 ZAIN - - 10 kΩ A/D转换电流 IAD - 1.5 3 mA ADC模块工作,VDD = 5.0V 微分非线性误差 DLE - - ±1 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 27MHz 积分非线性误差 ILE - - ±2 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 27MHz 满刻度误差 EF - - ±3 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 27MHz 偏移量误差 EZ - - ±3 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 27MHz 总绝对误差 EAD - - ±3 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 27MHz ADC时钟周期 tAD 0.03 - 80 µs ADC采样时间 tSAMP 0.35 0.5 - µs 总转换时间 TCON 14 - 27 tAD 136 条件 VREF = 5.0V VIN = 5.0V SH79F1615 低速转换模式下12BIT模/数转换器电气特性2(1LSB = VDD/4096) 转换速率为100K sps。(VDD = 2.7 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 符号 最小值 典型值 最大值 单位 工作电压范围 参数 VAD 2.7 5.0 5.5 V 条件 精度 NR - 12 - bit A/D输入电压 VAIN GND - VREF V A/D输入电阻 RAIN 2 - - MΩ 外部模拟参考电压 VREF 2.5 - VDD V 模拟电压源推荐阻抗 ZAIN - - 5 kΩ A/D转换电流 IAD - 1.5 3 mA ADC模块工作,VDD = 5.0V 微分非线性误差 DLE - - ±1 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 2.7MHz 积分非线性误差 ILE - - ±2 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 2.7MHz 满刻度误差 EF - - ±8 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 2.7MHz 偏移量误差 EZ - - ±8 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 2.7MHz 总绝对误差 EAD - - ±8 LSB VDD = 5.0V,VREF = 5.0V,ADC CLK ≤ 2.7MHz ADC时钟周期 tAD 0.3 - 80 µs ADC采样时间 tSAMP 2 4 - µs 总转换时间 TCON 16 - 29 tAD VREF = 5.0V VIN = 5.0V 比较器1电气特性(VDD = 2.7 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 参数 符号 最小值 典型值 最大值 单位 条件 输入失调电压 VIO - 2 3 mV 输入共模电压范围 VICM 0 - VDD - 1.2 V 小信号响应时间 TRS1 - 1 2 µs VDD = 5V,C1P = 1.25V,C1N = 1.20V 大信号响应时间 TRS2 - 0.3 0.5 µs VDD = 5V,C1P = 3V,C1N = 1V 比较器2电气特性(VDD = 2.7 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 符号 最小值 典型值 最大值 单位 输入失调电压 参数 VIO - 2 3 mV 输入共模电压范围 VICM 0 - VDD - 1.2 V 小信号响应时间 TRS1 - 1 2 µs VDD = 5V,C2P = 1.25V,C2N = 1.20V 大信号响应时间 TRS2 - 0.3 0.5 µs VDD = 5V,C2P = 3V,C2N = 1V 比较器施密特窗口1 VSMT1 - 0 - mv VDD = 5V,C2SMT[1:0] = 00 比较器施密特窗口2 VSMT2 - 5 8 mv VDD = 5V,C2SMT[1:0] = 01 比较器施密特窗口3 VSMT3 - 10 16 mv VDD = 5V,C2SMT[1:0] = 10 比较器施密特窗口4 VSMT4 - 20 30 mv VDD = 5V,C2SMT[1:0] = 11 137 条件 SH79F1615 放大器1电气特性(VDD = 2.7 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 参数 符号 最小值 典型值 最大值 单位 输入失调电压 VIO - 2 3 mV 输入共模电压 VICM 0 - VDD - 1.2 V - 0.015% - SR 5 - - V/us 输出电压范围 VOUR 0.1 - VDD - 0.5 V 电压抑制比 SVR - 65 - dB 直流特性 共模抑制比 CMRR - 80 - dB 直流特性 IO 30 - - mA VDD = 5V,VOUT =1.0V (灌电流) or 4V (拉电流) BW 2 8 - MHz 电压跟随器模式 温度系数 转换速率 输出能力 (灌电流和拉电流能力) 增益带宽 条件 TA = 25°C VOUT = 2.5V,温度变每化1°C,输出电压的变化率 电压跟随器模式 交流电气特性(VDD = 2.4 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 参数 符号 最小值 复位脉冲宽度 tRESET 典型值 最大值 单位 复位引脚上拉电阻 RRPH 10 - - µs 低电平有效 - 30 - kΩ VDD = 5.0V,VIN = GND | ∆ F|/ F - 0.5 ±1 % 内部RC振荡器频率精度:(1024个周期求平均值) |FRC - 27MHz|/27MHz X 100% (VDD = 2.4 - 5.5V,TA = 25°C) | ∆ F|/ F - - ±3 % 内部RC振荡器频率精度:(1024个周期求平均值) |FRC - 27MHz|/27MHz X 100% (VDD = 2.4 - 5.5V,TA = -40°C至+105°C) 频率稳定性 (RC) 条件 低电压复位电气特性(VDD = 2.4 - 5.5V,GND = 0V,TA = +25°C,除非另有说明) 参数 符号 最小值 典型值 最大值 单位 LVR电压1 VLVR1 4.0 4.1 4.2 V LVR1使能 LVR电压2 VLVR2 2.7 2.8 2.9 V LVR2使能 辅助LVR VLVR 2.2 2.3 2.4 V 内部辅助LVR(始终有效) VSMTLV - 50 - mv TLVR - 30 - µs LVR电压检测迟滞窗口 LVR低电压复位宽度 138 条件 SH79F1615 11. 订购信息 产品编号 封装 SH79F1615P/032PR LQFP32 SH79F1615Q/032QA QFN32 139 SH79F1615 12. 封装信息 LQFP32 Outline Dimensions unit: inches/mm HD D 25 24 8 17 E 1 HE 32 e b 16 See Detail F Symbol A θ L L1 A1 A2 c 9 DETAIL F Dimensions in inches Dimensions in mm MIN MAX MIN MAX A 0.057 0.065 1.45 1.65 A1 0.000 0.008 0.01 0.21 A2 0.051 0.059 1.30 1.50 D 0.268 0.281 6.80 7.15 E 0.268 0.281 6.80 7.15 HD 0.346 0.362 8.80 9.20 HE 0.346 0.362 8.80 9.20 b 0.010 0.017 0.25 0.44 e 0.031 TYP 0.8 TYP c 0.005 TYP 0.127 TYP L 0.016 0.031 0.40 0.78 L1 0.035 0.043 0.90 1.10 θ 0° 10° 0° 10° 140 SH79F1615 QFN32L (4 X 4) 外形尺寸 单位: 英寸/毫米 e D L1 k E E1 D1 b Top View A1 Bottom View A2 A Side View Dimensions in inches Dimensions in mm Symbol MIN MAX MIN MAX A 0.028 0.031 0.700 0.900 A1 0.000 0.002 0.000 0.050 0.008REF A2 0.203REF D 0.154 0.160 3.924 4.076 E 0.154 0.160 3.924 4.076 D1 0.098 0.106 2.500 2.700 E1 0.098 0.106 2.500 2.700 k 0.008 --- 0.200 --- b 0.006 0.010 0.150 e L1 0.016TYP 0.013 0.250 0.400TYP 0.019 141 0.324 0.476 SH79F1615 13. 规格更改记录 版本 记录 日期 2.1 删除了24pin封装,增加了32pinQFN封装 2017年9月 2.0 更新封裝信息并新增了24 pin封裝 2015年7月 1.0 初始版本 2013年12月 142 SH79F1615 目录 特性 ................................................................................................................................................................................. 1 概述 ................................................................................................................................................................................. 1 方框图.............................................................................................................................................................................. 2 引脚配置 .......................................................................................................................................................................... 3 引脚描述 .......................................................................................................................................................................... 5 SFR映像 .......................................................................................................................................................................... 7 标准功能 ........................................................................................................................................................................ 16 7.1 CPU .................................................................................................................................................................................................... 16 7.1.1 内核特殊功能寄存器 ................................................................................................................................................................. 16 7.1.2 CPU增强内核特殊功能寄存器.................................................................................................................................................. 17 7.2 RAM ................................................................................................................................................................................................... 18 7.3 FLASH程序存储器 .............................................................................................................................................................................. 19 7.3.1 特性 ............................................................................................................................................................................................. 19 7.3.2 ICP模式下的Flash操作 .............................................................................................................................................................. 21 7.4 SSP ..................................................................................................................................................................................................... 22 7.4.1 寄存器 ......................................................................................................................................................................................... 22 7.4.2 Flash控制流程图 ........................................................................................................................................................................ 25 7.4.3 SSP编程注意事项 ....................................................................................................................................................................... 26 7.4.4 可读识别码 ................................................................................................................................................................................. 26 7.5 系统时钟和振荡器 ............................................................................................................................................................................ 27 7.5.1 特性 ............................................................................................................................................................................................. 27 7.5.2 时钟定义 ..................................................................................................................................................................................... 27 7.5.3 系统时钟监控(SCM) ............................................................................................................................................................. 28 7.5.4 振荡器类型 ................................................................................................................................................................................. 28 7.5.5 谐振器负载电容选择 ................................................................................................................................................................. 29 7.6 I/O端口 ............................................................................................................................................................................................... 30 7.6.1 特性 ............................................................................................................................................................................................. 30 7.6.2 寄存器 ......................................................................................................................................................................................... 30 7.6.3 端口模块图 ................................................................................................................................................................................. 31 7.6.4 端口共用 ..................................................................................................................................................................................... 32 7.7 定时器 ................................................................................................................................................................................................ 36 7.7.1 特性 ............................................................................................................................................................................................. 36 7.7.2 定时器0和定时器1 ..................................................................................................................................................................... 36 7.7.3 定时器2 ....................................................................................................................................................................................... 41 7.7.4 定时器3 ....................................................................................................................................................................................... 43 7.8 8BIT脉冲宽度调制模块(PWM3) .................................................................................................................................................. 45 7.8.1 特性 ............................................................................................................................................................................................. 45 7.8.2 寄存器 ......................................................................................................................................................................................... 45 7.9 中断 .................................................................................................................................................................................................... 48 7.9.1 特性 ............................................................................................................................................................................................. 48 7.9.2 中断允许控制 ............................................................................................................................................................................. 48 7.9.3 中断标志 ..................................................................................................................................................................................... 50 7.9.4 中断向量 ..................................................................................................................................................................................... 52 7.9.5 中断优先级 ................................................................................................................................................................................. 52 7.9.6 中断处理 ..................................................................................................................................................................................... 53 7.9.7 中断响应时间 ............................................................................................................................................................................. 53 7.9.8 外部中断输入 ............................................................................................................................................................................. 54 7.9.9 中断汇总 ..................................................................................................................................................................................... 54 8. 增强功能 ........................................................................................................................................................................ 55 8.1 电机控制模块MCM(MOTOR CONTROL MODULE)PWM0/1/2 ....................................................................................................... 55 8.1.1 特性 ............................................................................................................................................................................................. 55 8.1.2 寄存器 ......................................................................................................................................................................................... 56 8.1.3 PWM0/1/2时基模块(PWM Time Base Block) ....................................................................................................................... 68 1. 2. 3. 4. 5. 6. 7. 143 SH79F1615 8.1.4 PWM0/1/2波形发生模块 ............................................................................................................................................................ 72 8.1.5 PWM死区与极性控制模块 ........................................................................................................................................................ 76 8.1.6 故障检测模块 ............................................................................................................................................................................. 79 8.1.7 PWM输出控制模块 .................................................................................................................................................................... 81 8.1.8 事件触发功能 ............................................................................................................................................................................. 81 8.1.9 注意事项 ..................................................................................................................................................................................... 82 8.1.10 代码示例 ................................................................................................................................................................................... 86 8.2 运算放大器和比较器模块................................................................................................................................................................. 87 8.2.1 特性 ............................................................................................................................................................................................. 87 8.2.2 寄存器 ......................................................................................................................................................................................... 87 8.2.3 比较器用法 ................................................................................................................................................................................. 91 8.3 增强型通用异步收发器(EUART) ............................................................................................................................................... 94 8.3.1 特性 ............................................................................................................................................................................................. 94 8.3.2 工作方式 ..................................................................................................................................................................................... 94 8.3.3 可微调波特率 ............................................................................................................................................................................. 99 8.3.4 多机通讯 ................................................................................................................................................................................... 100 8.3.5 帧出错检测 ............................................................................................................................................................................... 101 8.3.6 寄存器 ....................................................................................................................................................................................... 101 8.4 模/数转换模块(ADC) ................................................................................................................................................................. 104 8.4.1 特性 ........................................................................................................................................................................................... 104 8.4.2 ADC模块图 ............................................................................................................................................................................... 105 8.4.3 ADC寄存器 ............................................................................................................................................................................... 106 8.4.4 序列转换工作模式 ................................................................................................................................................................... 116 8.4.5 连续转换工作模式 ................................................................................................................................................................... 118 8.4.6 比较功能 ................................................................................................................................................................................... 118 8.4.7 ADC转换时间设置 ................................................................................................................................................................... 119 8.4.8 ADC模块参考电压的设置 ....................................................................................................................................................... 119 8.4.9 ADC通道与IO口功能设置 ....................................................................................................................................................... 119 8.4.10 ADC结果寄存器/通道寄存器之间的映射关系 ..................................................................................................................... 119 8.4.11 AD转换时对传感器输出阻抗的要求 .................................................................................................................................... 120 8.4.12 注意事项 ................................................................................................................................................................................. 120 8.4.13 程序示例 ................................................................................................................................................................................. 121 8.5 蜂鸣音发生器 .................................................................................................................................................................................. 122 8.5.1 特性 ........................................................................................................................................................................................... 122 8.5.2 寄存器 ....................................................................................................................................................................................... 122 8.6 电压复位 (LVR) ............................................................................................................................................................................... 123 8.6.1 特性 ........................................................................................................................................................................................... 123 8.7 看门狗定时器(WDT),程式超范围溢出(OVL)复位及其它复位状态 .............................................................................. 124 8.7.1 特性 ........................................................................................................................................................................................... 124 8.7.2 寄存器 ....................................................................................................................................................................................... 125 8.8 电源管理 .......................................................................................................................................................................................... 126 8.8.1 特性 ........................................................................................................................................................................................... 126 8.8.2 空闲模式 ................................................................................................................................................................................... 126 8.8.3 掉电模式 ................................................................................................................................................................................... 126 8.8.4 寄存器 ....................................................................................................................................................................................... 127 8.9 预热计数器 ...................................................................................................................................................................................... 128 8.9.1 特性 ........................................................................................................................................................................................... 128 8.10 代码选项 ........................................................................................................................................................................................ 129 9. 指令集.......................................................................................................................................................................... 130 10. 电气特性 ...................................................................................................................................................................... 135 11. 订购信息 ...................................................................................................................................................................... 139 12. 封装信息 ...................................................................................................................................................................... 140 13. 规格更改记录 ............................................................................................................................................................... 142 144
SH79F1615P 价格&库存

很抱歉,暂时无法提供与“SH79F1615P”相匹配的价格&库存,您可以联系我们找货

免费人工找货