70149B.book

Size: px
Start display at page:

Download "70149B.book"

Transcription

1 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70149B_CN

2 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏代码保护功能的行为 就我们所知, 所有这些行为都不是以 Microchip 数据手册中规定的操作规范来使用 Microchip 产品的 这样做的人极可能侵犯了知识产权 Microchip 愿与那些注重代码完整性的客户合作 Microchip 或任何其他半导体厂商均无法保证其代码的安全性 代码保护并不意味着我们保证产品是 牢不可破 的 代码保护功能处于持续发展中 Microchip 承诺将不断改进产品的代码保护功能 任何试图破坏 Microchip 代码保护功能的行为均可视为违反了 数字器件千年版权法案 (Digital Millennium Copyright Act) 如果这种行为导致他人在未经授权的情况下, 能访问您的软件或其他受版权保护的成果, 您有权依据该法案提起诉讼, 从而制止这种行为 提供本文档的中文版本仅为了便于理解 请勿忽视文档中包含的英文部分, 因为其中提供了有关 Microchip 产品性能和使用情况的有用信息 Microchip Technology Inc. 及其分公司和相关公司 各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任 建议参考 Microchip Technology Inc. 的英文原版文档 本出版物中所述的器件应用信息及其他类似内容仅为您提供便利, 它们可能由更新之信息所替代 确保应用符合技术规范, 是您自身应负的责任 Microchip 对这些信息不作任何明示或暗示 书面或口头 法定或其他形式的声明或担保, 包括但不限于针对其使用情况 质量 性能 适销性或特定用途的适用性的声明或担保 Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任 如果将 Microchip 器件用于生命维持和 / 或生命安全应用, 一切风险由买方自负 买方同意在由此引发任何一切伤害 索赔 诉讼或费用时, 会维护和保障 Microchip 免于承担法律责任, 并加以赔偿 在 Microchip 知识产权保护下, 不得暗中或以其他方式转让任何许可证 商标 Microchip 的名称和徽标组合 Microchip 徽标 Accuron dspic KEELOQ KEELOQ 徽标 microid MPLAB PIC PICmicro PICSTART PRO MATE rfpic 和 SmartShunt 均为 Microchip Technology Inc. 在美国和其他国家或地区的注册商标 AmpLab FilterLab Linear Active Thermistor Migratable Memory MXDEV MXLAB SEEVAL SmartSensor 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标 Analog-for-the-Digital Age Application Maestro CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense FlexROM fuzzylab In-Circuit Serial Programming ICSP ICEPIC Mindi MiWi MPASM MPLAB Certified 徽标 MPLIB MPLINK PICkit PICDEM PICDEM.net PICLAB PICtail PowerCal PowerInfo PowerMate PowerTool REAL ICE rflab Select Mode Smart Serial SmartTel Total Endurance UNI/O WiperLock 和 ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地区的商标 SQTP 是 Microchip Technology Inc. 在美国的服务标记 在此提及的所有其他商标均为各持有公司所有 2007, Microchip Technology Inc. 版权所有 Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州 Gresham 的全球总部 设计和晶圆生产厂及位于美国加利福尼亚州和印度的设计中心均通过了 ISO/TS-16949:2002 认证 公司在 PIC MCU 与 dspic DSC KEELOQ 跳码器件 串行 EEPROM 单片机外设 非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS :2002 此外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了 ISO 9001:2000 认证 DS70149B_CN 第 ii 页 2007 Microchip Technology Inc.

3 dspic30f5015/5016 增强型闪存 16 位数字信号控制器 注 : 本数据手册总结了 dspic30f 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 高性能改进型 RISC CPU: 改进型哈佛架构 带灵活寻址模式的 C 编译器优化指令集架构 83 条基本指令 24 位宽指令, 16 位宽数据路径 66 KB 片上闪存存储空间 ( 指令字 ) 2 KB 片上数据 RAM 1 KB 非易失性数据 EEPROM 高达 30 MIPS 的工作速度 : - DC 至 40 MHz 外部时钟输入 - 4 MHz-10 MHz 振荡器输入, 带 PLL(4 倍频 8 倍频和 16 倍频 ) 36 个中断源 : - 5 个外部中断源 - 8 个用户可选择的中断源优先级 - 4 个处理器陷阱源 16 x 16 位工作寄存器阵列 DSP 引擎特性 : 双数据取 DSP 操作的累加器回写 模寻址和位反转寻址模式 两个 40 位宽累加器, 具有可选的饱和逻辑 17 位 x 17 位单周期硬件小数 / 整数乘法器 所有 DSP 指令都是单周期的 单周期 ±16 位移位 外设特性 : 高灌 / 拉电流 I/O 引脚 :25 ma/25 ma 带可编程预分频器的定时器模块 : - 5 个 16 位定时器 / 计数器 ; 可以把 16 位定时器配对形成 32 位定时器模块 16 位捕捉输入功能 16 位比较 /PWM 输出功能 3 线 SPI 模块 ( 支持 4 帧模式 ) I 2 C 模块支持多主器件 / 从器件模式, 支持 7 位 /10 位寻址 1 个带 FIFO 缓冲器的 UART 模块 1 个 CAN 模块, 与 2.0B 标准兼容 电机控制 PWM 模块特性 : 8 路 PWM 输出通道 - 互补或独立输出模式 - 边沿和中心对齐模式 4 个占空比发生器 专用时基 可编程输出极性 互补模式的死区控制 手动输出控制 A/D 转换触发器 正交编码器接口模块特性 : A 相 B 相和索引脉冲输入 16 位向上 / 向下位置计数器 计数方向状态 位置测量 (x2 和 x4) 模式 输入端具有可编程数字噪声滤波器 备用 16 位定时器 / 计数器模式 位置计数器发生计满返回 / 下溢时产生中断 2007 Microchip Technology Inc. DS70149B_CN 第 1 页

4 模拟特性 : 带 4 个 S/H 输入的 10 位模数转换器 (Analog-to- Digital Converter, ADC): - 1 Msps 转换速率 - 16 路输入通道 - 在休眠和空闲期间进行转换 可编程欠压复位 单片机特性 : 增强型闪存程序存储器 : - 对于工业级温度范围, 最少擦写次数 1 万次, 典型擦写次数 10 万次 数据 EEPROM 存储器 : - 对于工业级温度范围, 最少擦写次数 10 万次, 典型擦写次数 100 万次 可在软件控制下自行再编程 上电复位 (Power-on Reset, POR) 上电延时 定时器 (Power-up Timer, PWRT) 和振荡器起振定时器 (Oscillator Start-up Timer, OST) 灵活的看门狗定时器 (Watchdog Timer,WDT), 带片上低功耗 RC 振荡器以便可靠地工作 故障保护时钟监视器操作可检测时钟故障, 并切换到片上低功耗 RC 振荡器 可编程代码保护 在线串行编程 (In-Circuit Serial Programming, ICSP ) 可选择的功耗管理模式 : - 休眠 空闲和备用时钟模式 CMOS 技术 : 低功耗高速闪存技术 宽工作电压范围 (2.5V 至 5.5V) 工业级和扩展级温度范围 低功耗 dspic30f 电机控制和电源转换系列 * 器件 引脚 程序存储器字节 / 指令 SRAM 字节 EEPROM 字节 16 位定时器 输入捕捉 输出比较 / 标准 PWM 电机控制 PWM A/D 10 位 1 Msps 正交编码器 UART SPI I 2 C TM CAN dspic30f K/4K 通道 6 通道有 dspic30f K/8K 通道 6 通道有 dspic30f K/16K 通道 6 通道有 dspic30f /44 24K/8K 通道 9 通道有 dspic30f /44 48K/16K 通道 9 通道有 dspic30f K/22K 通道 16 通道有 dspic30f K/22K 通道 16 通道有 dspic30f K/48K 通道 16 通道有 * 此表提供了 dspic30f5015/5016 外设特性的汇总 同时给出了 dspic30f 电机控制和功率转换系列中的其他可用器件, 以便进行特性比较 DS70149B_CN 第 2 页 2007 Microchip Technology Inc.

5 2007 Microchip Technology Inc. DS70149B_CN 第 3 页 dspic30f5015/5016 引脚示意图 dspic30f RD12 OC4/RD3 OC3/RD2 EMUD2/OC2/RD1 PWM2L/RE2 PWM1H/RE1 PWM1L/RE0 RG0 RG1 C1TX/RF1 C1RX/RF0 PWM3L/RE4 PWM2H/RE3 CN16/UPDN/RD7 CN14/RD5 EMUC2/OC1/RD0 IC4/RD11 IC2/RD9 IC1/RD8 INT4/RA15 IC3/RD10 INT3/RA14 VSS OSC1/CLKI VDD SCL/RG2 U1RX/RF2 U1TX/RF3 EMUC1/SOSCO/T1CK/CN0/RC14 EMUD1/SOSCI/CN1/RC13 VREF+/RA10 VREF-/RA9 AVDD AVSS AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 VDD CN17/RF4 CN21/RD15 CN18/RF5 AN6/OCFA/RB6 AN7/RB7 PWM4H/RE7 T2CK/RC1 T4CK/RC3 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 MCLR SS2/CN11/RG9 AN4/QEA/CN6/RB4 AN3/INDX/CN5/RB3 AN2/SS1/CN4/RB2 PGC/EMUC/AN1/CN3/RB1 PGD/EMUD/AN0/CN2/RB0 Vss VDD PWM3H/RE5 PWM4L/RE6 FLTB/INT2/RE9 FLTA/INT1/RE8 AN12/RB12 AN13/RB13 AN14/RB14 AN15/CN12/RB15 VDD VSS CN13/RD4 CN19/RD13 SDA/RG3 SDI1/RF7 EMUD3/SDO1/RF8 AN5/QEB/CN7/RB5 VSS OSC2/CLKO/RC15 CN15/RD6 EMUC3/SCK1/INT0/RF6 CN20/RD14 80 引脚 TQFP.

6 DS70149B_CN 第 4 页 2007 Microchip Technology Inc. 引脚示意图 dspic30f 引脚 TQFP EMUC1/SOSCO/T1CK/CN0/RC14 EMUD1/SOSCI/T4CK/CN1/RC13 EMUC2/OC1/RD0 IC4/INT4/RD11 IC2/FLTB/INT2/RD9 IC1/FLTA/INT1/RD8 VSS OSC2/CLKO/RC15 OSC1/CLKI VDD SCL/RG2 EMUC3/SCK1/INT0/RF6 U1RX/SDI1/RF2 EMUD3/U1TX/SDO1/RF3 PWM3H/RE5 PWM4L/RE6 PWM4H/RE7 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 MCLR VSS VDD AN3/INDX/CN5/RB3 AN2/SS1/CN4/RB2 AN1/VREF-/CN3/RB1 AN0/VREF+/CN2/RB0 UPDN/CN16/RD7 PWM3L/RE4 PWM2H/RE3 PWM2L/RE2 VSS PWM1L/RE0 C1TX/RF1 PWM1H/RE1 EMUD2/OC2/RD1 OC3/RD2 PGC/EMUC/AN6/OCFA/RB6 PGD/EMUD/AN7/RB7 AVDD AVSS AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 VSS VDD AN12/RB12 AN13/RB13 AN14/RB14 AN15/CN12/RB15 CN18/RF5 CN17/RF4 SDA/RG SS2/CN11/RG9 AN5/QEB/CN7/RB5 AN4/QEA/CN6/RB4 IC3/INT3/RD10 VDD C1RX/RF0 OC4/RD3 CN15/RD6 IC6/CN14/RD5 IC5/CN13/RD4

7 目录 1.0 器件概述 CPU 架构概述 存储器构成 地址发生器单元 中断 闪存程序存储器 数据 EEPROM 存储器 I/O 端口 Timer1 模块 Timer2/3 模块 Timer4/5 模块 输入捕捉模块 输出比较模块 正交编码器接口 (QEI) 模块 电机控制 PWM 模块 SPI 模块 I2C 模块 通用异步收发器 (UART) 模块 CAN 模块 系统集成 位高速模数转换器 (ADC) 模块 指令集汇总 开发支持 电气特性 封装信息 附录 A: 索引 Microchip 网站 变更通知客户服务 客户支持 读者反馈表 产品标识体系 致客户 我们旨在提供最佳文档供客户正确使用 Microchip 产品 为此, 我们将不断改进出版物的内容和质量, 使之更好地满足您的要求 出版物的质量将随新文档及更新版本的推出而得到提升 如果您对本出版物有任何问题和建议, 请通过电子邮件联系我公司 TRC 经理, 电子邮件地址为 CTRC@microchip.com, 或将本数据手册后附的 读者反馈表 传真到 我们期待您的反馈 最新数据手册 欲获得本数据手册的最新版本, 请查询我公司的网站 : 查看数据手册中任意一页下边角处的文献编号即可确定其版本 文献编号中数字串后的字母是版本号, 例如 :DS30000A 是 DS30000 的 A 版本 勘误表 现有器件可能带有一份勘误表, 描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法 一旦我们了解到器件 / 文档存在某些差异时, 就会发布勘误表 勘误表上将注明其所适用的硅片版本和文件版本 欲了解某一器件是否存在勘误表, 请通过以下方式之一查询 : Microchip 网站 当地 Microchip 销售办事处 ( 见最后一页 ) 在联络销售办事处时, 请说明您所使用的器件型号 硅片版本和数据手册版本 ( 包括文献编号 ) 客户通知系统欲及时获知 Microchip 产品的最新信息, 请到我公司网站 上注册 2007 Microchip Technology Inc. DS70149B_CN 第 5 页

8 注 : DS70149B_CN 第 6 页 2007 Microchip Technology Inc.

9 1.0 器件概述 注 : 本数据手册总结了 dspic30f 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 图 1-1 给出了 dspic30f5015 器件的框图 框图后面的表 1-1 简要说明了器件的 I/O 引脚排列以及 dspic30f5015 上端口引脚的复用功能 图 1-2 给出了 dspic30f5016 器件的框图 框图后面的表 1-2 简要说明了器件的 I/O 引脚排列以及 dspic30f5016 上端口引脚的复用功能 本文档给出了 dspic30f5015 和 dspic30f5016 器件的特定信息 dspic30f 器件在其高性能 16 位单片机 (MCU) 架构中, 融合了丰富的数字信号处理器 (Digital Signal Processor, DSP) 功能 2007 Microchip Technology Inc. DS70149B_CN 第 7 页

10 图 1-1: dspic30f5015 框图 Y 数据总线 X 数据总线 中断控制器 24 地址锁存器 程序存储器 (66 KB) 数据 EEPROM (1 KB) 数据锁存器 PSV 与表数据存取控制块 PCU PCH PCL 程序计数器堆栈循环控制控制逻辑逻辑 ROM 锁存器 数据锁存器 数据锁存器 Y 数据 X 数据 RAM RAM (1 KB) (1 KB) 地址 地址 锁存器 锁存器 16 Y AGU 有效地址 X RAGU X WAGU PORTB AN0/VREF+/CN2/RB0 AN1/VREF-/CN3/RB1 AN2/SS1/CN4/RB2 AN3/INDX/CN5/RB3 AN4/QEA/CN6/RB4 AN5/QEB/CN7/RB5 PGC/EMUC/AN6/OCFA/RB6 PGD/EMUD/AN7/RB7 AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 AN12/RB12 AN13/RB13 AN14/RB14 AN15/CN12/RB15 至各块的控制信号 OSC1/CLKI 16 指令译码与控制 时序发生 MCLR VDD,VSS AVDD,AVSS IR 上电延时定时器振荡器起振定时器 POR/BOR 复位看门狗定时器低压检测 译码 16 DSP 引擎 x 16 W 寄存器阵列 16 除法单元 ALU<16> PORTC PORTD EMUD1/SOSCI/T4CK/CN1/RC13 EMUC1/SOSCO/T1CK/CN0/RC14 OSC2/CLKO/RC15 EMUC2/OC1/RD0 EMUD2/OC2/RD1 OC3/RD2 OC4/RD3 IC5/CN13/RD4 IC6/CN14/RD5 CN15/RD6 UPDN/CN16/RD7 IC1/FLTA/INT1/RD8 IC2/FLTB/INT2/RD9 IC3/INT3/RD10 IC4/INT4/RD11 CAN1 SPI1, SPI2 10 位 ADC 定时器 输入捕捉模块 QEI 输出比较模块 电机控制 PWM I 2 C UART1 PORTE PWM1L/RE0 PWM1H/RE1 PWM2L/RE2 PWM2H/RE3 PWM3L/RE4 PWM3H/RE5 PWM4L/RE6 PWM4H/RE7 SCL/RG2 SDA/RG3 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 SS2/CN11/RG9 C1RX/RF0 C1TX/RF1 U1RX/SDI1/RF2 EMUD3/U1TX/SDO1/RF3 CN17/RF4 CN18/RF5 EMUC3/SCK1/INT0/RF6 PORTG PORTF DS70149B_CN 第 8 页 2007 Microchip Technology Inc.

11 表 1-1 简要说明了器件的 I/O 引脚排列以及 dspic30f5015 器件上端口引脚的复用功能 一个端口引脚上可能存在多种功能 出现复用时, 外设模块的功能要求可能会强制改写端口引脚的数据方向 表 1-1: dspic30f5015 的 I/O 引脚说明 引脚名称 引脚类型 缓冲器类型 说明 AN0-AN15 I 模拟 模拟输入通道 AN6 和 AN7 还分别用于器件编程数据和时钟输入 AVDD P P 模拟模块的正电源 AVSS P P 模拟模块的参考地 CLKI CLKO I O ST/CMOS 外部时钟源输入 总是与 OSC1 引脚功能关联 晶振输出 在晶振模式下, 连接到晶体或谐振器 也可在 RC 和 EC 模式下用作 CLKO 总是与 OSC2 引脚功能关联 CN0-CN18 I ST 输入电平变化通知输入 在所有输入端均可软件编程为内部弱上拉 C1RX C1TX EMUD EMUC EMUD1 EMUC1 EMUD2 EMUC2 EMUD3 EMUC3 I O I/O I/O I/O I/O I/O I/O I/O I/O ST ST ST ST ST ST ST ST ST CAN1 总线接收引脚 CAN1 总线发送引脚 IC1-IC4 I ST 捕捉输入 1 至 4 INDX QEA QEB UPDN INT0 INT1 INT2 INT3 INT4 FLTA FLTB PWM1L PWM1H PWM2L PWM2H PWM3L PWM3H PWM4L PWM4H I I I O I I I I I I I O O O O O O O O ST ST ST CMOS ST ST ST ST ST ST ST ICD 主通信通道数据输入 / 输出引脚 ICD 主通信通道时钟输入 / 输出引脚 ICD 辅助通信通道数据输入 / 输出引脚 ICD 辅助通信通道时钟输入 / 输出引脚 ICD 第三通信通道数据输入 / 输出引脚 ICD 第三通信通道时钟输入 / 输出引脚 ICD 第四通信通道数据输入 / 输出引脚 ICD 第四通信通道时钟输入 / 输出引脚 正交编码器索引脉冲输入 QEI 模式下正交编码器 A 相输入 定时器模式下辅助定时器外部时钟 / 门控输入 QEI 模式下正交编码器 B 相输入 定时器模式下辅助定时器外部时钟 / 门控输入 位置向上 / 向下计数器方向状态 外部中断 0 外部中断 1 外部中断 2 外部中断 3 外部中断 4 PWM 故障 A 输入 PWM 故障 B 输入 PWM 1 低电平输出 PWM 1 高电平输出 PWM 2 低电平输出 PWM 2 高电平输出 PWM 3 低电平输出 PWM 3 高电平输出 PWM 4 低电平输出 PWM 4 高电平输出 图注 : CMOS = CMOS 兼容输入或输出 模拟 = 模拟输入 ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入 P = 电源 2007 Microchip Technology Inc. DS70149B_CN 第 9 页

12 表 1-1: dspic30f5015 的 I/O 引脚说明 ( 续 ) MCLR I/P ST 主复位输入或编程电压输入 此引脚是器件的复位引脚, 低电平有效 OCFA OC1-OC4 OSC1 OSC2 PGD PGC 引脚名称引脚类型缓冲器类型说明 I O I I/O I/O I ST ST/CMOS ST ST 比较故障 A 输入 ( 对于比较通道 和 4) 比较输出 1 至 4 晶振输入 配置在 RC 模式时为 ST 缓冲器输入 ; 否则为 CMOS 输入 晶振输出 在晶振模式下, 连接到晶体或谐振器 也可在 RC 和 EC 模式下用作 CLKO 在线串行编程数据输入 / 输出引脚 在线串行编程时钟输入引脚 RB0-RB15 I/O ST PORTB 是双向 I/O 端口 RC13-RC15 I/O ST PORTC 是双向 I/O 端口 RD0-RD11 I/O ST PORTD 是双向 I/O 端口 RE0-RE7 I/O ST PORTE 是双向 I/O 端口 RF0-RF6 I/O ST PORTF 是双向 I/O 端口 RG2-RG3 RG6-RG9 SCK1 SDI1 SDO1 SS1 SCK2 SDI2 SDO2 SS2 SCL SDA SOSCO SOSCI T1CK T4CK U1RX U1TX I/O I/O I/O I O I I/O I O I I/O I/O O I I I I O ST ST ST ST ST ST ST ST ST ST ST/CMOS ST ST ST PORTG 是双向 I/O 端口 SPI #1 的同步串行时钟输入 / 输出 SPI #1 数据输入 SPI #1 数据输出 SPI #1 同步从动模式 SPI #2 的同步串行时钟输入 / 输出 SPI #2 数据输入 SPI #2 数据输出 SPI #2 同步从动模式 I 2 C 的同步串行时钟输入 / 输出 I 2 C 的同步串行数据输入 / 输出 32 khz 低功耗晶振输出 32 khz 低功耗晶振输入 配置在 RC 模式时为 ST 缓冲器输入 ; 否则为 CMOS 输入 Timer1 外部时钟输入 Timer4 外部时钟输入 UART1 接收 UART1 发送 VDD P 逻辑和 I/O 引脚的正电源 VSS P 逻辑和 I/O 引脚的参考地 VREF+ I 模拟 模拟参考电压 ( 高 ) 输入 VREF- I 模拟 模拟参考电压 ( 低 ) 输入 图注 : CMOS = CMOS 兼容输入或输出 模拟 = 模拟输入 ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入 P = 电源 DS70149B_CN 第 10 页 2007 Microchip Technology Inc.

13 图 1-2: dspic30f5016 框图 Y 数据总线 X 数据总线 中断控制器 24 地址锁存器 程序存储器 (66 KB) 数据 EEPROM (1 KB) 数据锁存器 PSV 与表数据存取控制块 PCU PCH PCL 程序计数器堆栈循环控制控制逻辑逻辑 ROM 锁存器 数据锁存器 数据锁存器 Y 数据 X 数据 RAM RAM (1 KB) (1 KB) 地址 地址 锁存器 锁存器 16 Y AGU 有效地址 X RAGU X WAGU PORTA PORTB VREF-/RA9 VREF+/RA10 INT3/RA14 INT4/RA15 PGD/EMUD/AN0/CN2/RB0 PGC/EMUC/AN1/CN3/RB1 AN2/SS1/CN4/RB2 AN3/INDX/CN5/RB3 AN4/QEA/CN6/RB4 AN5/QEB/CN7/RB5 AN6/OCFA/RB6 AN7/RB7 AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 AN12/RB12 AN13/RB13 AN14/RB14 AN15/CN12/RB15 至各块的控制信号 OSC1/CLKI 16 指令译码与控制 时序发生 MCLR VDD,VSS AVDD,AVSS IR 上电延时定时器振荡器起振定时器 POR/BOR 复位看门狗定时器低压检测 译码 16 DSP 引擎 x 16 W 寄存器阵列 16 除法单元 ALU<16> PORTC PORTD T2CK/RC1 T4CK/RC3 EMUD1/SOSCI/CN1/RC13 EMUC1/SOSCO/T1CK/CN0/RC14 OSC2/CLKO/RC15 EMUC2/OC1/RD0 EMUD2/OC2/RD1 OC3/RD2 OC4/RD3 CN13/RD4 CN14/RD5 CN15/RD6 CN16/UPDN/RD7 IC1/RD8 IC2/RD9 IC3/RD10 IC4/RD11 RD12 CN19/RD13 CN20/RD14 CN21/RD15 CAN1 SPI1, SPI2 10 位 ADC 定时器 输入捕捉模块 QEI 输出比较模块 电机控制 PWM I 2 C UART1 PORTE PWM1L/RE0 PWM1H/RE1 PWM2L/RE2 PWM2H/RE3 PWM3L/RE4 PWM3H/RE5 PWM4L/RE6 PWM4H/RE7 FLTA/INT1/RE8 FLTB/INT2/RE9 RG0 RG1 SCL/RG2 SDA/RG3 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 SS2/CN11/RG9 PORTG PORTF C1RX/RF0 C1TX/RF1 U1RX/RF2 U1TX/RF3 CN17/RF4 CN18/RF5 EMUC3/SCK1/INT0/RF6 SDI1/RF7 EMUD3/SDO1/RF Microchip Technology Inc. DS70149B_CN 第 11 页

14 表 1-2 简要说明了器件的 I/O 引脚排列以及 dspic30f5016 上端口引脚的复用功能 一个端口引脚上可能存在多种功能 出现复用时, 外设模块的功能要求可能会强制改写端口引脚的数据方向 表 1-2: dspic30f5016 的 I/O 引脚说明 引脚名称 引脚类型 缓冲器类型 说明 AN0-AN15 I 模拟 模拟输入通道 AN0 和 AN1 也分别用于器件编程数据和时钟输入 AVDD P P 模拟模块的正电源 AVSS P P 模拟模块的参考地 CLKI CLKO I O ST/CMOS 外部时钟源输入 总是与 OSC1 引脚功能关联 晶振输出 在晶振模式下, 连接到晶体或谐振器 也可在 RC 和 EC 模式下用作 CLKO 总是与 OSC2 引脚功能关联 CN0-CN21 I ST 输入电平变化通知输入 在所有输入端均可软件编程为内部弱上拉 C1RX C1TX EMUD EMUC EMUD1 EMUC1 EMUD2 EMUC2 EMUD3 EMUC3 I O I/O I/O I/O I/O I/O I/O I/O I/O ST ST ST ST ST ST ST ST ST CAN1 总线接收引脚 CAN1 总线发送引脚 IC1-IC4 I ST 捕捉输入 1 至 8 INDX QEA QEB UPDN INT0 INT1 INT2 INT3 INT4 FLTA FLTB PWM1L PWM1H PWM2L PWM2H PWM3L PWM3H PWM4L PWM4H I I I O I I I I I I I O O O O O O O O ST ST ST CMOS ST ST ST ST ST ST ST ICD 主通信通道数据输入 / 输出引脚 ICD 主通信通道时钟输入 / 输出引脚 ICD 辅助通信通道数据输入 / 输出引脚 ICD 辅助通信通道时钟输入 / 输出引脚 ICD 第三通信通道数据输入 / 输出引脚 ICD 第三通信通道时钟输入 / 输出引脚 ICD 第四通信通道数据输入 / 输出引脚 ICD 第四通信通道时钟输入 / 输出引脚 正交编码器索引脉冲输入 QEI 模式下正交编码器 A 相输入 定时器模式下辅助定时器外部时钟 / 门控输入 QEI 模式下正交编码器 B 相输入 定时器模式下辅助定时器外部时钟 / 门控输入 位置向上 / 向下计数器方向状态 外部中断 0 外部中断 1 外部中断 2 外部中断 3 外部中断 4 PWM 故障 A 输入 PWM 故障 B 输入 PWM 1 低电平输出 PWM 1 高电平输出 PWM 2 低电平输出 PWM 2 高电平输出 PWM 3 低电平输出 PWM 3 高电平输出 PWM 4 低电平输出 PWM 4 高电平输出 图注 : CMOS = CMOS 兼容输入或输出 模拟 = 模拟输入 ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入 P = 电源 DS70149B_CN 第 12 页 2007 Microchip Technology Inc.

15 表 1-2: dspic30f5016 的 I/O 引脚说明 ( 续 ) 引脚名称引脚类型缓冲器类型说明 MCLR I/P ST 主复位输入或编程电压输入 此引脚是器件的复位引脚, 低电平有效 OCFA OCFB OC1-OC4 I I O ST ST 比较故障 A 输入 ( 对于比较通道 和 4) 比较故障 B 输入 ( 对于比较通道 和 8) 比较输出 1 至 4 OSC1 OSC2 I I/O ST/CMOS 晶振输入 配置在 RC 模式时为 ST 缓冲器输入 ; 否则为 CMOS 输入 晶振输出 在晶振模式下, 连接到晶体或谐振器 也可在 RC 和 EC 模式下用作 CLKO PGD PGC I/O I ST ST 在线串行编程数据输入 / 输出引脚 在线串行编程时钟输入引脚 RA9-RA10 RA14-RA15 I/O I/O ST ST PORTA 是双向 I/O 端口 RB0-RB15 I/O ST PORTB 是双向 I/O 端口 RC1 RC3 RC13-RC15 I/O I/O I/O ST ST ST PORTC 是双向 I/O 端口 RD0-RD15 I/O ST PORTD 是双向 I/O 端口 RE0-RE9 I/O ST PORTE 是双向 I/O 端口 RF0-RF8 I/O ST PORTF 是双向 I/O 端口 RG0-RG3 RG6-RG9 SCK1 SDI1 SDO1 SS1 SCK2 SDI2 SDO2 SS2 SCL SDA SOSCO SOSCI T1CK T2CK T4CK U1RX U1TX I/O I/O I/O I O I I/O I O I I/O I/O O I I I I I O ST ST ST ST ST ST ST ST ST ST ST/CMOS ST ST ST ST PORTG 是双向 I/O 端口 SPI #1 的同步串行时钟输入 / 输出 SPI #1 数据输入 SPI #1 数据输出 SPI #1 同步从动模式 SPI #2 的同步串行时钟输入 / 输出 SPI #2 数据输入 SPI #2 数据输出 SPI #2 同步从动模式 I 2 C 的同步串行时钟输入 / 输出 I 2 C 的同步串行数据输入 / 输出 32 khz 低功耗晶振输出 32 khz 低功耗晶振输入 配置在 RC 模式时为 ST 缓冲器输入 ; 否则为 CMOS 输入 Timer1 外部时钟输入 Timer2 外部时钟输入 Timer4 外部时钟输入 UART1 接收 UART1 发送 VDD P 逻辑和 I/O 引脚的正电源 VSS P 逻辑和 I/O 引脚的参考地 VREF+ I 模拟 模拟参考电压 ( 高 ) 输入 VREF- I 模拟 模拟参考电压 ( 低 ) 输入 图注 : CMOS = CMOS 兼容输入或输出 模拟 = 模拟输入 ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入 P = 电源 2007 Microchip Technology Inc. DS70149B_CN 第 13 页

16 注 : DS70149B_CN 第 14 页 2007 Microchip Technology Inc.

17 2.0 CPU 架构概述 注 : 本数据手册总结了 dspic30f 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 本文档提供了对 dspic30f5015/5016 CPU 和外设功能的汇总 关于此功能的完整说明, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 2.1 内核概述 内核的指令字长为 24 位 程序计数器 (Program Counter, PC) 为 23 位宽, 其最低有效位 (Least Significant bit, LSb) 始终清零 ( 见第 3.1 节 程序地址空间 ), 最高有效位 (Most Significant bit, MSb) 在正常的程序执行期间被忽略, 某些专用指令除外 因此,PC 能够寻址最大为 4M 指令字的用户程序空间 使用指令预取机制来帮助维持吞吐量 使用 DO 和 REPEAT 指令, 支持无循环计数管理开销的程序循环结构, 并且这两条指令在任何时候都可被中断 工作寄存器阵列由 16 个 16 位寄存器组成, 每个寄存器均可作为数据 地址或偏移量寄存器 一个工作寄存器 (W15) 用作中断和调用时的软件堆栈指针 数据空间为 64 KB (32K 字 ), 被分为两块, 称为 X 和 Y 数据存储器 每个存储块有各自独立的地址发生单元 (Address Generation Unit, AGU) 大多数指令只通过 X 存储空间 AGU 进行操作, 这样对外界而言数据空间就是单独而统一的 乘法 - 累加 (MAC) 类双源操作数 DSP 指令, 通过 X 和 Y 的 AGU 进行操作, 这将数据地址空间分成两个部分 ( 见第 3.2 节 数据地址空间 ) X 和 Y 数据空间边界视具体器件而定, 用户不能改变它们 每个数据字由 2 个字节组成, 大多数指令可以把数据当作字或字节来进行寻址 对于存储在程序存储器中的数据, 有两种存取方法 : 数据存储空间的高 32 KB 可以映射到程序空间的下半部分 ( 用户空间 ), 映射的边界可以是任何 16K 程序字边界, 边界由 8 位程序空间可视性页 (Program Space Visibility Page, PSVPAG) 寄存器定义 这使得任何指令都能像存取数据空间那样存取程序空间, 但存取需要一个额外的周期 此外, 使用这个方法, 只能存取每个指令字的低 16 位 使用任何工作寄存器, 通过表读和表写指令, 也可以对程序空间内的 32K 字页进行线性间接存取 表读和表写指令能够用来存取一个指令字的全部 24 位 X 和 Y 地址空间都支持无开销循环缓冲区 ( 模寻址 ) 模寻址的主要目的是要消除 DSP 算法的循环开销 X AGU 还支持对目标有效地址进行位反转寻址, 对于基 -2 FFT 算法, 这极大地简化了输入或输出数据的重新排序 关于模寻址和位反转寻址的详细信息, 请参见第 4.0 节 地址发生器单元 内核支持固有 ( 无操作数 ) 寻址 相对寻址 立即数寻址 存储器直接寻址 寄存器直接寻址 寄存器间接寻址 寄存器偏移量寻址和立即数偏移量寻址模式 指令与预定义的寻址模式相关联, 这取决于其功能需求 对于大多数指令, 内核能够在每个指令周期内执行数据 ( 或程序数据 ) 存储器读取 工作寄存器 ( 数据 ) 读取 数据存储器写入以及程序 ( 指令 ) 存储器读取操作 因此, 支持 3 操作数指令, 允许在单个周期内执行 C=A + B 这样的操作 内核包含 DSP 引擎, 这极大地提高了内核的运算能力和吞吐量 它具有一个高速 17 位 x17 位乘法器 一个 40 位 ALU 两个 40 位饱和累加器和一个 40 位双向桶形移位寄存器 累加器或任何工作寄存器中的数据可以在单个周期内右移 16 位或左移 16 位 DSP 指令可以无缝地与所有其他指令一起操作, 且设计为能获得最佳实时性能 在把两个 W 寄存器相乘时,MAC 类指令能够从存储器中同时取出两个操作数 为了能够同时取数据操作数, 对于 MAC 类指令, 数据空间拆分为两块, 对所有其他指令数据空间则是线性的 对于 MAC 类指令, 这是通过将某些工作寄存器专用于每个地址空间, 以透明而灵活的方式实现的 2007 Microchip Technology Inc. DS70149B_CN 第 15 页

18 内核不支持多级指令流水线 但是, 为了最大限度地获得可用的执行时间, 使用了单级指令预取机制, 在指令执行的前一个周期存取并部分译码指令 除了一些特例外, 大部分指令都在单个周期内执行 内核具有用于陷阱和中断的向量异常处理结构, 具有 62 个独立的向量 异常包括最多 8 个陷阱 ( 其中有 4 个是保留的 ) 和 54 个中断 根据用户指定的 1 到 7 之间的优先级 (1 为最低优先级, 7 为最高优先级 ), 以及预定义的 自然顺序, 决定每个中断的优先级 陷阱的优先级是固定的, 其范围从 8 到 编程模型 编程模型如图 2-1 所示, 它包括 16x16 位工作寄存器 (W0 至 W15) 2x40 位累加器 (ACCA 和 ACCB) 状态寄存器 (SR) 数据表页寄存器 (TBLPAG) 程序空间可视性页寄存器 (PSVPAG) DO 和 REPEAT 寄存器 (DOSTART DOEND DCOUNT 和 RCOUNT) 以及程序计数器 (PC) 工作寄存器可作为数据 地址或偏移量寄存器 所有寄存器都是存储器映射的 W0 用作文件寄存器寻址的 W 寄存器 这些寄存器中, 一些寄存器有与之相关的影子寄存器, 如图 2-1 所示 影子寄存器用作临时保持寄存器, 事件发生时可在影子寄存器和主机寄存器之间传递内容 所有影子寄存器均不能直接存取 寄存器与其影子寄存器之间的数据传递遵循以下规则 : PUSH.S 和 POP.S W0 W1 W2 W3 和 SR( 仅限 DC N OV Z 和 C 位 ) 与对应的影子寄存器之间进行内容传递 DO 指令循环开始时, DOSTART DOEND 和 DCOUNT 寄存器的内容压入影子寄存器, 循环结束时其内容从各自的影子寄存器中弹出 对工作寄存器进行字节操作时, 只影响到目标寄存器的最低有效字节 (LSB) 但是, 存储器映射工作寄存器的一个好处是, 可以通过字节宽数据存储空间存取来处理最低和最高有效字节 软件堆栈指针 / 帧指针 dspic DSC 器件具有一个软件堆栈 W15 专用于软件堆栈指针 (Stack Pointer,SP), 异常处理 子程序调用与返回时将自动修改 W15 但是, W15 可以被任何指令所引用, 引用方式与引用所有其他 W 寄存器相同 这简化了堆栈指针的读 写和处理 ( 例如, 创建堆栈帧 ) 注 : 为了防止出现不对齐的堆栈访问, W15<0> 始终清零 复位时 W15 初始化为 0x0800 在初始化过程中, 用户可以重新设定 SP, 使它指向数据空间内的任何单元 W14 专用于 LNK 和 ULNK 指令中所定义的堆栈帧指针 但是,W14 可以被任何指令所引用, 引用方式与引用所有其他 W 寄存器相同 状态寄存器 dspic DSC 内核有一个 16 位状态寄存器 (SR), 其低有效字节 (LSB) 称为 SR 低字节 (SRL), 其高有效字节 (MSB) 称为 SR 高字节 (SRH) SR 寄存器的组成见图 2-1 SRL 包含所有的 MCU ALU 运算状态标志位 ( 包括 Z 位 ), 以及 CPU 中断优先级状态位 IPL<2:0> 和重复有效状态位 RA 在异常处理期间,SRL 与 PC 的 MSB 连接起来形成一个完整的字值, 然后被压入堆栈 SR 寄存器的高字节包含 DSP 加法器 / 减法器状态位 DO 循环有效位 (DA) 和半进位 (DC) 状态位 程序计数器 程序计数器为 23 位宽,bit 0 始终清零 因此,PC 能够最多寻址 4M 指令字 DS70149B_CN 第 16 页 2007 Microchip Technology Inc.

19 图 2-1: dspic30f5015/5016 编程模型 D15 D0 W0/WREG W1 W2 PUSH.S 影子寄存器 DO 影子寄存器 W3 W4 图注 DSP 操作数寄存器 W5 W6 W7 W8 工作寄存器 DSP 地址寄存器 W9 W10 W11 W12/DSP 偏移量 W13/DSP 回写 W14/ 帧指针 W15/ 堆栈指针 SPLIM 堆栈指针限制寄存器 AD39 AD31 AD15 AD0 DSP 累加器 ACCA ACCB PC22 PC0 0 程序计数器 7 0 TBLPAG TABPAG 数据表页地址 7 0 PSVPAG 程序空间可视性页地址 15 0 RCOUNT 15 0 DCOUNT REPEAT 循环计数器 DO 循环计数器 22 0 DOSTART DO 循环起始地址 22 DOEND DO 循环结束地址 15 0 CORCON 内核配置寄存器 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C 状态寄存器 SRH SRL 2007 Microchip Technology Inc. DS70149B_CN 第 17 页

20 2.3 除法支持 dspic DSC 支持 16/16 位有符号小数除法运算, 以及 32/16 位 16/16 位有符号和无符号整数除法运算, 除法形式均为单指令迭代除法 支持以下指令和数据长度 : 1. DIVF 16/16 有符号小数除法 2. DIV.sd 32/16 有符号除法 3. DIV.ud 32/16 无符号除法 4. DIV.sw 16/16 有符号除法 5. DIV.uw 16/16 无符号除法 除法指令必须在一个 REPEAT 循环内执行 任何其他执行方式 ( 例如, 一系列不连续的除法指令 ) 都不会正常运行, 因为指令流取决于 RCOUNT 除法指令不会自动设置 RCOUNT 值, 因此 RCOUNT 必须明确 REPEAT 指令中正确指定, 如表 2-1 所示 (REPEAT 将执行目标指令 { 操作数的值 +1} 次 ) 必须为 DIV/DIVF 指令的 18 次迭代设置 REPEAT 循环计数 因此, 完整的除法操作需要 19 个周期 注 : 除法流可以被中断 但是, 用户需正确保存中断现场 表 2-1: DIVF DIV.sd DIV.ud DIV.sw DIV.uw 除法指令指令 功能有符号小数除法 :Wm/Wn W0 ; Rem W1 有符号除法 :(Wm+1:Wm)/Wn W0 ; Rem W1 无符号除法 :(Wm+1:Wm)/Wn W0 ; Rem W1 有符号除法 :Wm/Wn W0 ; Rem W1 无符号除法 :Wm/Wn W0 ; Rem W1 2.4 DSP 引擎 DSP 引擎由一个高速 17 位 x17 位乘法器 一个桶形移位寄存器和一个 40 位加法器 / 减法器 ( 两个目标累加器 舍入逻辑和饱和逻辑 ) 组成 dspic30f 器件采用单周期指令流, 可以执行 DSP 指令或 MCU 指令 许多硬件资源可以在 DSP 和 MCU 指令之间共用 例如, 指令集具有 DSP 和 MCU 乘法指令, 它们使用相同的硬件乘法器 DSP 引擎还能够执行固有的不需要其他数据的累加器至累加器操作 这些指令是 ADD SUB 和 NEG 通过 CPU 内核配置寄存器 (CORCON) 中的各个位, 可以有多种 DSP 引擎选择, 这些选择如下 : 1. 小数或整数 DSP 乘法 (IF) 2. 有符号或无符号 DSP 乘法 (US) 3. 常规或收敛舍入 (RND) 4. ACCA 自动饱和使能 / 禁止 (SATA) 5. ACCB 自动饱和使能 / 禁止 (SATB) 6. 对于写数据存储器的自动饱和使能 / 禁止 (SATDW) 7. 累加器饱和模式选择 (ACCSAT) 注 : CORCON 的组成见表 3-3 DSP 引擎的框图如图 2-2 所示 表 2-2: DSP 指令汇总 指令 代数运算 CLR A = 0 ED A = (x y) 2 EDAC A = A + (x y) 2 MAC A = A + (x * y) MOVSAC A 不变 MPY A = x * y MPY.N A = x * y MSC A = A x * y DS70149B_CN 第 18 页 2007 Microchip Technology Inc.

21 图 2-2: DSP 引擎框图 位累加器 A 位累加器 B 进位 / 借位输出 进位 / 借位输入 饱和 加法器 舍入逻辑 饱 16 和 取补 桶形移位寄存器 符号扩展 X 数据总线 Y 数据总线 补零 位乘法器 / 定标器 至 / 来自 W 阵列 2007 Microchip Technology Inc. DS70149B_CN 第 19 页

22 2.4.1 乘法器 该 17x17 位乘法器可以进行有符号或无符号的运算, 其输出经过定标器进行换算后可支持 1.31 小数 (Q31) 或 32 位整数结果 无符号操作数经过零扩展后, 送入乘法器输入值的第 17 位 有符号操作数经过符号扩展后, 送入乘法器输入值的第 17 位 17x17 位乘法器 / 定标器的输出是 33 位值, 它将被符号扩展为 40 位 整数数据的固有表示形式为有符号的二进制补码值, 其中 MSB 定义为符号位 一般来说,N 位二进制补码整数的范围为 -2 N-1 到 2 N-1 1 对于 16 位整数, 数据范围为 (0x8000) 到 (0x7FFF), 包括 0 在内 对于 32 位整数, 数据范围为 -2,147,483,648(0x ) 到 2,147,483,645 (0x7FFF FFFF) 当乘法器配置为小数乘法时, 数据表示为二进制补码小数, 其中 MSB 定义为符号位, 小数点暗含在符号位之后 (QX 格式 ) 暗含小数点的 N 位二进制补码小数的范围为 -1.0 到 (1 2 1-N ) 对于 16 位小数,Q15 数据范围为 -1.0 (0x8000) 到 (0x7FFF), 包括 0 在内, 其精度为 x10-5 在小数模式下, 16x16 乘法运算将产生 1.31 乘积, 其精度为 x10-10 同一个乘法器还用于支持 MCU 乘法指令, 包括整数的 16 位有符号 无符号和混合符号乘法 可以指示 MUL 指令使用字节或字长度的操作数 字节操作数将产生 16 位结果, 而字操作数将产生 32 位结果, 结果存放在 W 寄存器阵列的指定寄存器中 数据累加器和加法器 / 减法器 数据累加器包含一个 40 位加法器 / 减法器, 它带有自动符号扩展逻辑 它可以选择两个累加器 (A 或 B) 之一作为其预累加的源累加器和后累加的目标累加器 对于 ADD 和 LAC 指令, 将被累加或装入的数据可选择通过桶形移位寄存器在累加之前进行换算 加法器 / 减法器, 溢出和饱和加法器 / 减法器是一个 40 位加法器, 一个输入可以选择为零, 而另一个输入可以是原数据或求补后的数据 对于加法, 进位 / 借位输入为高电平有效, 另一个输入是原数据 ( 没有求补的 ); 对于减法, 进位 / 借位输入为低电平有效, 另一个输入是求补后的数据 加法器 / 减法器产生溢出状态位 SA/SB 和 OA/OB, 状态位被锁存在状态寄存器中并在其中得到反映 从 bit 39 溢出 : 这是灾难性溢出, 会破坏累加器的符号 溢出到警戒位 (bit 32 到 bit 39): 这是可恢复的溢出 每当警戒位有任何不一致, 就将把这个状态位置 1 加法器有一个额外的饱和模块, 如果选取的话, 饱和模块将控制累加器的数据饱和 饱和模块使用加法器的结果 上述溢出状态位 SATA/B (CORCON<7:6>) 和 ACCSAT(CORCON<4>) 模式控制位, 来确定何时饱和以及达到何值为饱和 状态寄存器中有 6 个支持饱和和溢出的位, 它们是 : 1. OA: ACCA 溢出到警戒位 2. OB: ACCB 溢出到警戒位 3. SA: ACCA 已饱和 (bit 31 溢出并饱和 ) 或 ACCA 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) 4. SB: ACCB 已饱和 (bit 31 溢出并饱和 ) 或 ACCB 溢出到警戒位并饱和 (bit 39 溢出并饱和 ) 5. OAB: OA 和 OB 的逻辑或 (OR) 6. SAB: SA 和 SB 的逻辑或 (OR) 每次数据通过加法器 / 减法器, 就会修改 OA 和 OB 位 这两位置 1 时, 表明最近的操作已溢出到累加器警戒位 (bit 32 到 bit 39) 如果 OA 和 OB 位置 1 且 INTCON1 寄存器中相应的溢出陷阱标志使能位 (OVATE 和 OVBTE) 也置 1, 则还可选择用 OA 和 OB 位产生算术警告陷阱 ( 见第 5.0 节 中断 ) 这使得用户能够立即采取措施, 例如, 校正系统增益 DS70149B_CN 第 20 页 2007 Microchip Technology Inc.

23 每次数据通加法器 / 减法器, 就会修改 SA 和 SB 位, 但用户只能对它们进行清零 这两位置 1 时, 表明累加器已溢出其最大范围 ( 对于 32 位饱和是 bit 31, 而 40 位饱和是 bit 39), 将发生饱和 ( 如果饱和使能的话 ) 如果没有使能饱和,SA 和 SB 置 1 默认为 bit 39 溢出, 以此指示产生了灾难性溢出 如果 INTCON1 寄存器中的 COVTE 位置 1, 当饱和被禁止时, SA 和 SB 位将产生算术警告陷阱 在状态寄存器 (SR) 中, 对于溢出和饱和状态位, 可以将 OA 和 OB 的逻辑或形成 OAB 位, 将 SA 和 SB 的逻辑或形成 SAB 位 这样, 只需检查状态寄存器中的一个位, 程序就能判断是否有累加器溢出 ; 检查状态寄存器中的另一个位, 就可以判断是否有累加器饱和 对于通常要使用两个累加器的复数运算而言, 这很有用 器件支持三种饱和和溢出模式 : 1. bit 39 溢出和饱和 : 当发生 bit 39 溢出和饱和时, 饱和逻辑将最大的正 9.31 值 (0x7FFFFFFFFF) 或最大的负 9.31 值 (0x ) 装入目标累加器 SA 或 SB 位置 1 并保持置 1 状态直到被用户清零 这称为 超饱和 (super saturation), 为错误数据或不可预期的算法问题 ( 例如, 增益计算 ) 提供了保护机制 2. bit 31 溢出和饱和 : 当发生 bit 31 溢出和饱和时, 饱和逻辑将最大的正 1.31 值 (0x007FFFFFFF) 或最大的负 1.31 值 (0x ) 装入目标累加器 SA 或 SB 位置 1 并保持置 1 直到被用户清零 当这种饱和模式生效时, 不使用警戒位 ( 因此 OA OB 或 OAB 位不会被置 1) 3. bit 39 灾难性溢出 : 来自加法器的 bit 39 溢出状态位用来将 SA 或 SB 位置 1 ; 这两位置 1 后, 将保持置 1 状态直到被用户清零 此时不发生饱和操作, 且允许累加器溢出 ( 破坏其符号 ) 如果 INTCON1 寄存器中的 COVTE 位置 1, 灾难性溢出会导致一个陷阱异常 累加器 回写 MAC 类指令 (MPY MPY.N ED 和 EDAC 除外 ) 可以选择将累加器高字 (bit 16 到 bit 31) 的舍入形式写入数据存储空间, 前提是当前指令不对该累加器进行操作 通过 X 总线寻址组合的 X 和 Y 地址空间, 执行回写操作 支持以下寻址模式 : 1. W13, 寄存器直接寻址 : 非操作目标的累加器的舍入内容以 1.15 小数形式写入 W13 2. [W13]+ = 2, 执行后递增的寄存器间接寻址 : 非操作目标的累加器的舍入内容以 1.15 小数形式写入 W13 指向的地址 然后 W13 递增 2 ( 对于字写入 ) 舍入逻辑 舍入逻辑是一个组合模块, 在累加器写 ( 存储 ) 过程中执行常规的 ( 有偏 ) 或收敛的 ( 无偏 ) 舍入功能 舍入模式由 CORCON 寄存器中 RND 位的状态决定 它会产生一个 16 位的 1.15 数据值, 该值被送到数据空间写饱和逻辑 如果指令不指明舍入, 就会存储一个截取的 1.15 数据值, 简单地丢弃最低有效字 (lsw) 常规舍入取累加器的 bit 15, 对它进行零扩展并将扩展后的值加到 ACCxH 字 ( 累加器的 bit 16 到 bit 31) 如果 ACCxL 字 ( 累加器的 bit 0 到 bit 15) 在 0x8000 和 0xFFFF 之间 ( 包括 0x8000), 则 ACCxH 递增 1 如果 ACCxL 在 0x0000 和 0x7FFF 之间, 则 ACCxH 不变 此算法的结果经过一系列随机舍入操作, 值将稍稍偏大 ( 正偏 ) 除非 ACCxL 等于 0x8000, 否则收敛的 ( 或无偏 ) 舍入操作方式与常规舍入相同 ACCxL 等于 0x8000 时, 要对 ACCxH 的 LSb ( 累加器的 bit 16) 进行检测 如果它为 1, ACCxH 递增 1 如果它为 0, ACCxH 不变 假设 bit 16 本身是随机的, 这样的机制将消除任何可能累加的舍入偏移 通过 X 总线, SAC 和 SAC.R 指令将目标累加器内容的截取 (SAC) 或舍入 (SAC.R) 形式存入数据存储空间 ( 这受数据饱和的影响, 请参见第 节 数据空间写饱和 ) 注意, 对于 MAC 类指令, 累加器回写操作将以同样的方式进行, 通过 X 总线寻址组合的 MCU (X 和 Y) 数据空间 对于此类指令, 数据始终要进行舍入 2007 Microchip Technology Inc. DS70149B_CN 第 21 页

24 数据空间写饱和 除了加法器 / 减法器饱和, 对数据空间进行写操作也会饱和, 但不会影响源累加器的内容 数据空间写饱和逻辑块接受来自舍入逻辑块的一个 16 位的 1.15 小数值作为输入, 还接受来自源 ( 累加器 ) 和 16 位舍入加法器的溢出状态 这些经过组合用来选择适当的 1.15 小数值作为输出, 写入数据存储空间 如果 CORCON 寄存器中的 SATDW 位置 1, 将检测 ( 经过舍入或截取后的 ) 数据是否溢出, 并进行相应的调整 如果输入数据大于 0x007FFF, 则写入存储器中的数据被强制为最大的正 1.15 值, 0x7FFF 如果输入数据小于 0x007FFF, 则写入存储器中的数据被强制为最大的负 1.15 值, 0x8000 源累加器的 MSb (bit 39) 用于确定被检测的操作数的符号 如果 CORCON 寄存器中的 SATDW 位没有置 1, 则输入数据都将通过, 在任何情况下都不会被修改 桶形移位寄存器 桶形移位寄存器在单个周期内最多可算术或逻辑右移 16 位或左移 16 位 源寄存器可以是两个 DSP 累加器中的任何一个或 X 总线 ( 支持寄存器或存储器数据的多位移位 ) 移位寄存器需要一个有符号二进制值, 用来确定移位操作的幅度 ( 位数 ) 和方向 正值将操作数右移 负值则将操作数左移 值为 0 则不改变操作数 桶形移位寄存器为 40 位宽, 因此, 它为 DSP 移位操作提供 40 位的结果, 而为 MCU 移位操作提供了 16 位的结果 来自 X 总线的数据在桶形移位寄存器中的存放方式是 : 右移则数据存放在 bit 16 到 bit 31, 左移则存放在 bit 0 到 bit 15 DS70149B_CN 第 22 页 2007 Microchip Technology Inc.

25 3.0 存储器构成 注 : 本数据手册总结了 dspic30f 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 3.1 程序地址空间 程序地址空间为 4M 指令字 当程序空间映射到数据空间 ( 如表 3-1 定义 ) 时, 可以通过 23 位 PC 表指令有效地址 (Effective Address,EA) 或数据空间 EA 来寻址 请注意, 为了提供与数据空间寻址的兼容性, 程序空间地址在两个连续的程序字之间递增 2 对于除 TBLRD/TBLWT 外的所有访问, 用户程序空间访问限制在低 4M 指令字地址范围 (0x 至 0x7FFFFE); TBLRD/TBLWT 使用 TBLPAG<7> 来决定用户或配置空间访问 在表 3-1 中, bit 23 允许访问器件 ID 用户 ID 和配置位 对于其他情形,bit 23 始终清零 图 3-1: 用户存储空间 dspic30f5015/5016 的程序存储空间映射 复位 GOTO 指令复位 目标地址 中断向量表 保留 备用向量表 用户闪存程序存储器 (22K 指令 ) 保留 ( 读为 0) 数据 EEPROM (1 KB) E FE AFFE 00B000 7FFBFE 7FFC00 7FFFFE 向量表 保留 配置存储空间 UNITID(32 指令 ) 保留器件配置寄存器 8005BE 8005C0 8005FE F7FFFE F80000 F8000E F80010 保留 DEVID (2) FEFFFE FF0000 FFFFFE 2007 Microchip Technology Inc. DS70149B_CN 第 23 页

26 表 3-1: 程序空间地址构成 访问类型 访问空间 程序空间地址 <23> <22:16> <15> <14:1> <0> 指令访问 用户 0 PC<22:1> 0 TBLRD/TBLWT 用户 TBLPAG<7:0> 数据 EA<15:0> (TBLPAG<7> = 0) TBLRD/TBLWT 配置 TBLPAG<7:0> 数据 EA<15:0> (TBLPAG<7> = 1) 程序空间可视性 用户 0 PSVPAG<7:0> 数据 EA<14:0> 图 3-2: 访问程序空间中数据的地址生成 23 位 使用程序计数器 0 程序计数器 0 选择 1 EA 使用程序空间可视性 0 PSVPAG 寄存器 8 位 15 位 EA 使用表指令 1/0 TBLPAG 寄存器 8 位 16 位 用户 / 配置空间选择 24 位 EA 字节选择 注 : 不能使用程序空间可视性访问程序存储器中任何字的 bit <23:16> DS70149B_CN 第 24 页 2007 Microchip Technology Inc.

27 3.1.1 使用表指令访问程序存储器中的数据 本器件架构取指令时是取 24 位宽的程序存储器 因此, 指令始终是对齐的 但是, 由于器件架构是改进型哈佛架构, 数据也可以出现在程序空间中 有两种方法可以访问程序空间 : 通过特殊的表指令, 或通过把 16K 字程序空间页重新映射到数据空间的上半部分 ( 见第 节 使用程序空间可视性访问程序存储器中的数据 ) TBLRDL 和 TBLWTL 指令提供了读或写程序空间内任何地址的最低有效字的直接方法, 无需通过数据空间 TBLRDH 和 TBLWTH 指令是可以把一个程序空间字的高 8 位作为数据存取的惟一方法 对于每个连续的 24 位程序字,PC 将递增 2 这使得程序存储器地址能够直接映射到数据空间地址 因此, 程序存储器可以看作是两个 16 位字宽的地址空间, 它们并排放置, 具有相同的地址范围 TBLRDL 和 TBLWTL 访问存有最低有效字的空间, 而 TBLRDH 和 TBLWTH 则访问存有最高有效字的空间 图 3-2 显示如何为表操作和数据空间访问 (PSV = 1) 创建 EA 这里, P<23:0> 指程序空间字 ; 而 D<15:0> 指数据空间字 器件提供了一组表指令, 用来在程序空间和数据空间之间传送字节或字大小的数据 1. TBLRDL: 表读低位字 : 读程序地址的最低有效字 ; P<15:0> 映射到 D<15:0> 字节 : 读程序地址的 LSB 中的一个 ; 当字节选择 = 0 时, P<7:0> 映射到目标字节 ; 当字节选择 = 1 时, P<15:8> 映射到目标字节 ; 2. TBLWTL: 表写低位 ( 关于闪存编程的详细信息, 请参见第 6.0 节 闪存程序存储器 ) 3. TBLRDH: 表读高位字 : 读程序地址的最高有效字 ; P<23:16> 映射到 D<7:0> ; D<15:8> 始终 = 0 字节 : 读程序地址的 MSB 中的一个 ; 当字节选择 = 0 时, P<23:16> 映射到目标字节 ; 当字节选择 = 1 时, 目标字节始终 = 0 4. TBLWTH: 表写高位 ( 关于闪存编程的详细信息, 请参见第 6.0 节 闪存程序存储器 ) 图 3-3: 表访问程序数据 ( 最低有效字 ) PC 地址 0x x x x 程序存储器 虚拟 字节 ( 读为 0) TBLRDL.W TBLRDL.B (Wn<0> = 0) TBLRDL.B(Wn<0> = 1) 2007 Microchip Technology Inc. DS70149B_CN 第 25 页

28 图 3-4: 表访问程序数据 (MSB) TBLRDH.W PC 地址 0x x x x TBLRDH.B (Wn<0> = 0) 程序存储器 虚拟 (Phantom) 字节 ( 读为 0) TBLRDH.B(Wn<0> = 1) 使用程序空间可视性访问程序存储器中的数据可选择将数据空间的高 32 KB 映射到任何 16K 字程序空间页 这提供了从 X 数据空间对存储的常量数据的透明访问, 而无需使用特殊指令 ( 即 TBLRDL/H 和 TBLWTL/H 指令 ) 如果数据空间 EA 的 MSb 置 1, 并且程序空间可视性使能 ( 方法是在内核控制寄存器 CORCON 中把 PSV 位置 1) 时, 就能通过数据空间访问程序空间 CORCON 功能的讨论请参见第 2.4 节 DSP 引擎 正在执行的指令, 如果要对这个区域进行数据访问, 就需要增加一个额外的指令周期, 因为需要进行两次程序存储空间读取操作 注意, 可寻址数据空间的上半部分始终是 X 数据空间的一部分 因此, 当 DSP 操作使用程序空间映射来访问此存储区域时,Y 数据空间通常应该存放 DSP 操作的状态 ( 可变 ) 数据, 而 X 数据空间通常应该存放系数 ( 常量 ) 数据 尽管每个数据空间地址 (0x8000 及更高 ) 直接映射到对应的程序存储器地址 ( 见图 3-5), 但只使用 24 位程序字的低 16 位来存放数据 应该进行适当的设置, 使得对高 8 位进行访问的指令都成为非法指令, 以维持器件的可靠性 关于指令编码的详细信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) 注意, 对于每个程序存储字,PC 都将递增 2, 数据空间地址的最低有效 15 位将直接映射到相应程序空间地址的最低有效 15 位 剩下的位由程序空间可视性页寄存器 (PSVPAG<7:0>) 提供, 如图 3-5 所示 注 : 在表读 / 写期间, 暂时禁止 PSV 访问 对于使用 PSV 且在 REPEAT 循环之外执行的指令 : 以下指令都需要在规定的执行时间之外额外增加一个指令周期 : - 带数据操作数预取的 MAC 类指令 - MOV 指令 - MOV.D 指令 其他所有指令都需要在规定的指令执行时间之外额外增加两个指令周期 对于使用 PSV 且在 REPEAT 循环之内执行的指令 : 以下情况都需要在规定的指令执行时间之外额外增加两个指令周期 : - 在第一次迭代中执行的指令 - 在最后一次迭代中执行的指令 - 由于中断而退出循环之前执行的指令 - 中断得到处理后再次进入循环时执行的指令 REPEAT 循环的所有其他各次迭代, 都允许使用 PSV 访问数据的指令在一个周期内执行 DS70149B_CN 第 26 页 2007 Microchip Technology Inc.

29 图 3-5: 数据空间通过程序空间可视性页映射到程序空间的操作 数据空间 0x0000 程序空间 0x EA<15> = 0 PSVPAG (1) 0x00 8 数据空间 EA EA<15> = 1 0x 地址连接 x 数据空间的上半部分映射到程序空间 0xFFFF 0x017FFE BSET CORCON,#2 ; PSV bit set MOV #0x00, W0 ; Set PSVPAG register MOV W0, PSVPAG MOV 0x9200, W0 ; Access program memory location ; using a data space access 数据读 注 :PSVPAG 是 8 位寄存器, 包含程序空间地址的 bit <22:15> ( 即, 它定义了数据空间的上半部分要映射到的程序空间页 ) 3.2 数据地址空间 内核具有两个数据空间 数据空间可以看作是独立的 ( 对于某些 DSP 指令而言 ), 或者看作是统一的线性地址范围 ( 对于某些 MCU 指令而言 ) 使用两个地址发生单元 (AGU) 和独立的数据路径访问数据空间 数据存储空间映射 数据存储空间分为两块,X 和 Y 数据空间 此架构的关键之处在于,Y 空间是 X 空间的子集,Y 空间完全包含在 X 空间中 为了提供外在的线性寻址空间,X 和 Y 空间要有连续的地址 当执行除 MAC 类指令之外的任何指令时,X 块由 64 KB 数据地址空间 ( 包括所有 Y 地址 ) 组成 在执行一条 MAC 类指令时,X 块由 64 KB 数据地址空间组成, 但不包括 Y 地址块 ( 只用来读数据 ) 换句话说, 所有其他指令把整个数据存储空间当作一个复合的地址空间 MAC 类指令把 Y 地址空间从数据空间中抽取出来, 使用源自 W10 和 W11 的 EA 对其进行寻址 剩下的 X 数据空间则使用 W8 和 W9 来寻址 只有 MAC 类指令才能同时访问两个地址空间 数据存储空间映射如图 3-6 所示 图 3-7 给出了对 MCU 和 DSP 指令如何访问 X 和 Y 数据空间的图形汇总 2007 Microchip Technology Inc. DS70149B_CN 第 27 页

30 图 3-6: dspic30f5015/5016 的数据存储空间映射 MSB 地址 16 位 LSB 地址 2 KB SFR 空间 0x0001 0x07FF 0x0801 MSB SFR 空间 LSB 0x0000 0x07FE 0x0800 X 数据 RAM(X) 2 KB SRAM 空间 0x0BFF 0x0C01 0x0BFE 0x0C00 8 KB Near 数据空间 Y 数据 RAM(Y) 0x0FFF 0x1001 0x1FFF 0x8001 未实现 未实现 0x0FFE 0x1000 0x1FFE 0x8000 X 数据未实现 (X) 可以被映射到程序存储器 0xFFFF 0xFFFE DS70149B_CN 第 28 页 2007 Microchip Technology Inc.

31 图 3-7: 用于 MCU 和 DSP (MAC 类 ) 指令的数据空间示例 SFR 空间 SFR 空间 未用 X 空间 (Y 空间 ) Y 空间 未用 X 空间 未用 X 空间 非 MAC 类操作 ( 读 / 写 ) MAC 类操作 ( 只读 ) MAC 类操作 ( 写 ) 使用任何 W 寄存器的间接 EA 使用 W10 和 W11 的间接 EA 使用 W8 和 W9 的间接 EA 2007 Microchip Technology Inc. DS70149B_CN 第 29 页

32 3.2.2 数据空间 X 数据空间可用于所有指令, 并且支持所有寻址模式 读数据总线和写数据总线是独立的 X 读数据总线是所有指令的返回数据路径, 它把数据空间视为组合的 X 和 Y 地址空间 对于双操作数读指令 (MAC 类 ), 它还是 X 地址空间的数据路径 对于所有指令而言, X 写数据总线是到数据空间的只写路径 X 数据空间还支持所有指令的模寻址, 不过要受到寻址模式的限制 位反转寻址只是在写 X 数据空间时才支持 MAC 类指令 (CLR ED EDAC MAC MOVSAC MPY MPY.N 和 MSC) 将 Y 数据空间与 X 数据空间配合使用, 提供了两条并行的数据读取路径 Y 总线上不会出现写操作 此类指令使用两个专用的 W 寄存器指针 W10 和 W11, 它们始终寻址 Y 数据空间, 与 X 数据空间独立 ; 而 W8 和 W9 则始终寻址 X 数据空间 注意, 在累加器回写期间, 数据地址空间被视为 X 和 Y 数据空间的组合, 从而写操作通过 X 总线进行 因此, 可以写整个数据空间中的任何地址 Y 数据空间仅用于与 MAC 类指令相关的数据预取操作 它也支持自动循环缓冲区的模寻址 当然, 所有其他指令可以通过 X 数据路径把 Y 数据地址空间作为复合线性空间的一部分来进行访问 图 3-6 给出了 X 和 Y 数据空间之间的边界定义, 用户不能设定改变边界 如果 EA 指向其所在地址空间之外的数据, 或者指向物理存储器之外的存储单元, 将返回全零的字 / 字节 例如, 尽管 Y 地址空间对于使用任何寻址模式的所有非 MAC 指令都是可见的, 但如果一条 MAC 指令试图使用 W8 或 W9 (X 空间指针 ) 从该空间取数据, 则将返回 0x0000 表 3-2: 无效存储器访问的结果 试图进行的操作 返回数据 EA = 未实现的地址 0x0000 在 MAC 指令中, 使用 W8 或 W9 访 0x0000 问 Y 数据空间 在 MAC 指令中, 使用 W10 或 W11 0x0000 访问 X 数据空间 所有有效地址均为 16 位宽, 并且指向数据空间内的字节 因此, 数据空间地址范围为 64 KB 或 32K 字 数据空间宽度 内核数据宽度为 16 位 所有内部寄存器均按 16 位宽的字来组织 数据存储空间以字节可寻址的 16 位宽的块来组织 数据对齐 为了维持与 PIC 器件的后向兼容性, 并提高数据存储空间的使用效率, dspic30f 指令集既支持字操作, 也支持字节操作 数据在数据存储器和寄存器中按字对齐, 而所有数据空间 EA 都将解析为字节 数据字节读取将读取包含字节的整个字, 使用任何 EA 的 LSb 来确定要选取的字节 选取的字节将存放到 X 数据路径的 LSB 中 ( 不可能出现来自 Y 数据路径的字节访问, 因为 MAC 类指令只能取整字 ) 也就是说, 数据存储器和寄存器被组织为两个并行的字节宽的实体, 它们共享 ( 字 ) 地址译码, 但写入线独立 数据字节写操作只写阵列或寄存器中与字节地址匹配的那一侧 这种字节可访问性的结果是, 所有的有效地址计算 ( 包括那些由 DSP 操作产生的有效地址, 它们只能是字长度的数据 ) 均将在内部进行转换, 以适应字对齐的存储空间 例如, 内核将识别执行后修改寄存器间接寻址模式 [Ws++] 的结果, 对于字节操作产生的值是 Ws + 1, 而对于字操作产生的值是 Ws + 2 所有字访问必须按偶数地址对齐 不支持没有对齐的字数据取, 因此在混合字节和字操作时, 或者从 8 位 MCU 代码进行转换时, 必须要小心 如果试图进行未对齐的读或写, 将产生地址错误陷阱 如果在读操作时产生错误, 正在执行的指令将完成 ; 而如果在写操作时产生错误, 指令仍将执行, 但不会进行写入 无论是哪种情况, 都会产生陷阱, 从而系统和 / 或用户能够检查地址错误发生之前的机器状态 图 3-8: 数据对齐 MSB LSB 字节 1 字节 字节 3 字节 2 字节 5 字节 DS70149B_CN 第 30 页 2007 Microchip Technology Inc.

33 所有装入 W 寄存器的字节都将被装入相应的 LSB 中 相应的 MSB 不变 提供了一条符号扩展 (SE) 指令, 允许用户把 8 位有符号数据转换为 16 位有符号值 或者, 对于 16 位无符号数据, 用户可以通过在适当地址处执行一条零扩展 (ZE) 指令清零任何 W 寄存器的 MSB 尽管大多数指令能够对字或字节大小的数据进行操作, 但要注意的是, 部分指令 ( 包括 DSP 指令 ) 只对字大小的数据进行操作 NEAR 数据空间 X 地址存储空间中, 在 0x0000 和 0x1FFF 之间保留了一个 8 KB 的 near 数据空间, 在所有存储器直接寻址指令中可以通过一个 13 位绝对地址字段来直接访问这个数据空间 其余的 X 地址空间和所有 Y 地址空间都是间接寻址的 此外, 使用 MOV 指令可以寻址整个 X 数据空间, 这支持通过 16 位地址字段进行存储器直接寻址 堆栈指针限制寄存器 (SPLIM) 与堆栈指针相关 复位时 SPLIM 未被初始化 与堆栈指针的情况一样, SPLIM<0> 被强制为 0, 这是因为所有堆栈操作必须是字对齐的 每当使用 W15 作为源指针或目标指针产生有效地址 (EA) 时, 都会将它与 SPLIM 中的值进行比较 如果堆栈指针 (W15) 的内容与 SPLIM 寄存器的内容相等, 则执行压栈操作时不产生堆栈错误陷阱 但在随后的压栈操作时将会产生错误陷阱 因此, 当堆栈增长超过 RAM 中地址 0x2000 时, 如果要想产生堆栈错误陷阱, 用值 0x1FFE 来初始化 SPLIM 即可 类似地, 当堆栈指针地址小于 0x0800 时, 就会产生堆栈指针下溢 ( 堆栈错误 ) 陷阱, 从而避免了堆栈干扰特殊功能寄存器 (Special Function Register, SFR) 空间 在对 SPLIM 寄存器进行写操作之后, 不应紧跟着使用 W15 进行间接读操作的指令 图 3-9: CALL 堆栈帧 软件堆栈 0x dspic DSC 器件具备一个软件堆栈 W15 用作堆栈指针 堆栈指针总是指向第一个可用的空字, 并且从低地址向高地址方向增长 它在弹出堆栈之前预递减, 而在压入堆栈之后后递增, 如图 3-9 所示 注意, 对于任何 CALL 指令时的 PC 压栈, 在压入堆栈之前,PC 的 MSB 要进行零扩展, 从而确保了 MSB 始终是清零的 注 : 在异常处理期间, 在 PC 压入堆栈之前, 要先将 PC 的 MSB 与 SRL 寄存器组合在一起 堆栈向高地址方向增长 PC<15:0> PC<22:16> < 空字 > W15(CALL 前 ) W15(CALL 后 ) POP :[--W15] PUSH :[W15++] 2007 Microchip Technology Inc. DS70149B_CN 第 31 页

34 表 3-3: 内核寄存器映射 SFR 名称 地址 ( 首地址 ) Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位状态 W W0/WREG W W W W W W W W W5 000A W W6 000C W W7 000E W W W W W W W W W W W W13 001A W W14 001C W W15 001E W SPLIM 0020 SPLIM ACCAL 0022 ACCAL ACCAH 0024 ACCAH ACCAU 0026 符号扩展 (ACCA<39>) ACCAU ACCBL 0028 ACCBL ACCBH 002A ACCBH ACCBU 002C 符号扩展 (ACCB<39>) ACCBU PCL 002E PCL PCH 0030 PCH TBLPAG 0032 TBLPAG PSVPAG 0034 PSVPAG RCOUNT 0036 RCOUNT uuuu uuuu uuuu uuuu DCOUNT 0038 DCOUNT uuuu uuuu uuuu uuuu DOSTARTL 003A DOSTARTL 0 uuuu uuuu uuuu uuu0 DOSTARTH 003C DOSTARTH uuu uuuu DOENDL 003E DOENDL 0 uuuu uuuu uuuu uuu0 DOENDH 0040 DOENDH uuu uuuu SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C CORCON 0044 US EDT DL2 DL1 DL0 SATA SATB SATDW ACCSAT IPL3 PSV RND IF 图注 : u = 未初始化位 注 : 寄存器中各位的说明, 请参见 dspic30f 系列参考手册 (DS70046E_CN) DS70149B_CN 第 32 页 2007 Microchip Technology Inc.

35 表 3-3: 内核寄存器映射 ( 续 ) SFR 名称 地址 ( 首地址 ) Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位状态 MODCON 0046 XMODEN YMODEN BWM<3:0> YWM<3:0> XWM<3:0> XMODSRT 0048 XS<15:1> 0 uuuu uuuu uuuu uuu0 XMODEND 004A XE<15:1> 1 uuuu uuuu uuuu uuu1 YMODSRT 004C YS<15:1> 0 uuuu uuuu uuuu uuu0 YMODEND 004E YE<15:1> 1 uuuu uuuu uuuu uuu1 XBREV 0050 BREN XB<14:0> uuuu uuuu uuuu uuuu DISICNT 0052 DISICNT<13:0> 图注 : u = 未初始化位 注 : 寄存器中各位的说明, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 2007 Microchip Technology Inc. DS70149B_CN 第 33 页

36 注 : DS70149B_CN 第 34 页 2007 Microchip Technology Inc.

37 DSPIC30F5015/ 地址发生器单元 注 : 本数据手册总结了 DSPIC30F 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 DSPIC30F 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 DSPIC30F/33F 程序员参考手册 (DS70157B_CN) DSPIC DSC 内核包含两个独立的地址发生器单元 (AGU):X AGU 和 Y AGU Y AGU 仅支持 DSP MAC 类指令的字大小的数据读取 DSPIC DSC AGU 支持三种类型的数据寻址 : 线性寻址 模 ( 循环 ) 寻址 位反转寻址线性和模数据寻址模式可应用于数据空间或程序空间 位反转寻址只能用于数据空间地址 4.1 指令寻址模式 表 4-1 给出了基本的寻址模式, 这些寻址模式经过优化可支持各指令的具体功能 MAC 类指令中提供的寻址模式与其他指令类型中的寻址模式略有不同 文件寄存器指令 大多数文件寄存器指令使用一个 13 位地址字段 (f) 来直接寻址数据存储器中的前 8192 字节 (NEAR 数据空间 ) 大多数文件寄存器指令使用工作寄存器 W0, 它在这些指令中表示为 WREG 目标寄存器通常是同一个文件寄存器或 WREG (MUL 指令除外 ), 它把结果写入寄存器或寄存器对 使用 MOV 指令能够获得更大的灵活性, 可以在文件寄存器操作中访问整个数据空间 MCU 指令 三操作数 MCU 指令的形式如下 : 操作数 3 = 操作数 1< 功能 > 操作数 2 其中, 操作数 1 始终是工作寄存器 ( 即, 寻址模式只能是寄存器直接寻址 ), 称为 WB 操作数 2 可以是一个 W 寄存器, 取自数据存储器或一个 5 位立即数 结果位置可以是 W 寄存器或地址存储单元 MCU 指令支持以下寻址模式 : 寄存器直接寻址 寄存器间接寻址 执行后修改的寄存器间接寻址 执行前修改的寄存器间接寻址 5 位或 10 位立即数寻址 注 : 并非所有指令都支持上述所有的寻址模式 各条指令可能支持这些寻址模式中的某些模式 表 4-1: 支持的基本寻址模式 寻址模式 说明 文件寄存器直接寻址 显式地指定文件寄存器的地址 寄存器直接寻址 直接访问寄存器的内容 寄存器间接寻址 WN 的内容形成 EA 执行后修改的寄存器间接寻址 WN 的内容形成 EA 然后用一个常量值来修改 WN ( 递增或递减 ) 执行前修改的寄存器间接寻址 先用一个有符号常量值修改 WN ( 递增或递减 ), WN 的内容形成 EA 带寄存器偏移量的寄存器间接寻址 WN 和 WB 的和形成 EA 带立即数偏移量的寄存器间接寻址 WN 和立即数的和形成 EA 2007 Microchip Technology Inc. DS70149B_CN 第 35 页

38 DSPIC30F5015/ 传送指令和累加器指令 与其他指令相比, 传送指令和 DSP 累加器类指令提供了更灵活的寻址模式 除了大多数 MCU 指令支持的寻址模式以外, 传送和累加器指令还支持带寄存器偏移量的寄存器间接寻址模式, 这也称为寄存器变址寻址模式 注 : 概括地说, 传送和累加器指令支持以下寻址模式 : 寄存器直接寻址 寄存器间接寻址 执行后修改的寄存器间接寻址 执行前修改的寄存器间接寻址 带寄存器偏移量的寄存器间接寻址 ( 变址寻址 ) 带立即数偏移量的寄存器间接寻址 8 位立即数寻址 16 位立即数寻址 注 : MAC 指令 双源操作数 DSP 指令 (CLR ED EDAC MAC MPY MPY.N MOVSAC 和 MSC), 也称为 MAC 指令, 它们使用一组简化的寻址模式, 允许用户通过寄存器间接寻址表高效地对数据指针进行操作 双源操作数预取寄存器必须是集合 {W8, W9, W10, W11} 的成员 对于数据读取,W8 和 W9 总是分配给 X RAGU, 而 W10 和 W11 则始终用于 Y AGU 因此, 产生的有效地址 ( 无论是在修改之前还是之后 ), 对于 W8 和 W9 必须是 X 数据空间中的有效地址, 对于 W10 和 W11 则必须是 Y 数据空间中的有效地址 注 : 对于 MOV 指令, 指令中指定的寻址模式对于源寄存器和目标寄存器 EA, 可以是不同的 然而,4 位 WB( 寄存器偏移量 ) 字段为源寄存器和目标寄存器所共用 ( 但通常只由其中之一使用 ) 并非所有指令都支持上述所有的寻址模式 各条指令可能支持这些寻址模式中的某些模式 带寄存器偏移量的寄存器间接寻址仅可用于 W9 ( 在 X 空间中 ) 和 W11 ( 在 Y 空间中 ) 概括地说, MAC 类指令支持以下寻址模式 : 寄存器间接寻址 执行后修改 ( 修改量为 2) 的寄存器间接寻址 执行后修改 ( 修改量为 4) 的寄存器间接寻址 执行后修改 ( 修改量为 6) 的寄存器间接寻址 带寄存器偏移量的寄存器间接寻址 ( 变址寻址 ) 其他指令 除了上述的各种寻址模式之外, 一些指令使用各种大小的立即数 例如, BRA ( 转移 ) 指令使用 16 位有符号立即数来直接指定转移的目标, 而 DISI 指令则使用一个 14 位无符号立即数字段 在一些指令中, 例如 ADD ACC, 操作数的来源和运算结果已经暗含在操作码中 某些操作, 如 NOP, 不含任何操作数 4.2 模寻址 模寻址是一种使用硬件来自动支持循环数据缓冲区的方法 目的是在执行紧密循环代码时 ( 这在许多 DSP 算法中很常见 ), 不需要用软件来执行数据地址边界检查 可以在数据空间或程序空间中进行模寻址 ( 因为这两种空间的数据指针机制本质上是相同的 ) 每个 X ( 也提供指向程序空间的指针 ) 和 Y 数据空间中都可支持一个循环缓冲区 模寻址可以对任何 W 寄存器指针进行操作 但是, 最好不要将 W14 或 W15 用于模寻址, 因为这两个寄存器分别用作堆栈帧指针和堆栈指针 总的来说, 任何特定的循环缓冲区只能配置为单向工作, 因为根据缓冲区的方向, 对缓冲区起始地址 ( 对于递增缓冲区 ) 或结束地址 ( 对于递减缓冲区 ) 有某些限制 使用限制的惟一例外是那些长度为 2 的幂的缓冲区 这些缓冲区满足起始和结束地址条件, 它们可以双向工作 ( 即, 在低地址边界和高地址边界上都将进行地址边界检查 ) DS70149B_CN 第 36 页 2007 Microchip Technology Inc.

39 DSPIC30F5015/ 起始地址和结束地址 模寻址机制要求指定起始和结束地址, 并把它们装入 16 位模缓冲区地址寄存器 :XMODSRT XMODEND YMODSRT 和 YMODEND ( 见表 3-3) 注 : Y 空间模寻址的 EA 计算使用字长度的数据 ( 每个 EA 的 LSB 始终清零 ) 循环缓冲区的长度没有直接指定 它由相应的起始和结 束地址之差决定 循环缓冲区最大长度为 32K 字 (64 KB) W 地址寄存器选择 模寻址和位反转寻址控制寄存器 MODCON<15:0> 包含使能标志以及指定 W 地址寄存器的 W 寄存器字段 XWM 和 YWM 字段选择对哪些寄存器进行模寻址 如果 XWM = 15, 则禁止 XRAGU 和 X WAGU 模寻址 类似地, 如果 YWM = 15, 则禁止 Y AGU 模寻址 要对其进行模寻址的 X 地址空间指针 W 寄存器 (XWM) 存储在 MODCON<3:0> 中 ( 见表 3-3) 当 XWM 被设置为除 15 之外的任何值且 XMODEN 位 (MODCON<15>) 置 1 时, X 数据空间的模寻址被使能 要对其进行模寻址的 Y 地址空间指针 W 寄存器 (YWM) 存储在 MODCON<7:4> 中 当 YWM 被设置为除 15 之外的任何值且 YMODEN 位 (MODCON<14>) 置 1 时, Y 数据空间的模寻址被使能 图 4-1: 模寻址操作示例 字节 地址 MOV #0X1100,W0 MOV W0, XMODSRT ;SET MODULO START ADDRESS MOV #0X1163,W0 MOV W0,MODEND ;SET MODULO END ADDRESS 0X1100 MOV #0X8001,W0 MOV W0,MODCON ;ENABLE W1, X AGU FOR MODULO MOV #0X0000,W0 ;W0 HOLDS BUFFER FILL VALUE MOV #0X1110,W1 ;POINT W1 TO BUFFER DO AGAIN,#0X31 ;FILL THE 50 BUFFER LOCATIONS MOV W0, [W1++] ;FILL THE NEXT LOCATION AGAIN: INC W0,W0 ;INCREMENT THE FILL VALUE 0X1163 起始地址 = 0X1100 结束地址 = 0X1163 长度 = 0X0032 字 2007 Microchip Technology Inc. DS70149B_CN 第 37 页

40 DSPIC30F5015/ 模寻址的应用 模寻址可以应用于任何与 W 寄存器相关的有效地址 (EA) 计算 重要的是要意识到, 地址边界检查功能不仅会检查地址是否正好处于边界上, 而且会检查地址是否小于或大于上限 ( 对于递增缓冲区 ) 地址 是否低于下限 ( 对于递减缓冲区 ) 因此, 地址变化可能会越过边界, 但仍然可以正确调整 注 : 只有在使用执行前修改或执行后修改寻址模式来计算有效地址时, 模修正有效地址才被写回寄存器 如果使用了地址偏移量 ( 例如,[W7 + W2]), 会进行模地址修正, 但寄存器的内容保持不变 4.3 位反转寻址 位反转寻址用于简化基 2 FFT 算法的数据重新排序 它为 X AGU 所支持, 仅限于数据写入 地址修改量可以是常数或寄存器的内容, 可视为将其位顺序反转 地址源和目标仍然是正常的顺序 因此, 惟一需要反转的操作数就是地址修改量 位反转寻址的实现 位反转寻址的使能方式如下 : 1. MODCON 寄存器中 BWM(W 寄存器选择 ) 的值是除 15 以外的任何值 ( 不能使用位反转寻址访问堆栈 ), 且 2. XBREV 寄存器中 BREN 位置 1, 且 3. 使用的寻址模式是预递增或后递增的寄存器间接寻址模式 如果位反转缓冲区的长度为 M = 2 N 字节, 则数据缓冲区起始地址的最后 N 位必须为零 XB<14:0> 是位反转地址修改量或 中心点 (PIVOT POINT), 通常是一个常数 对于 FFT 计算中, 其值等于 FFT 数据缓冲区长度的一半 注 : 使能位反转寻址时, 仅对预递增或后递增的寄存器间接寻址 且仅对字大小的数据写入, 才会进行位反转寻址 对于任何其他寻址模式或对于字节大小的数据, 不会进行位反转寻址, 而是生成正常的地址 在进行位反转寻址时, W 地址指针的增量将始终加上地址修改量 (XB), 与寄存器间接寻址模式相关的偏移量将被忽略 此外, 由于要求的是字大小的数据, EA 的 LSB 被忽略 ( 且始终清零 ) 注 : 所有位反转 EA 的计算都使用字大小的数据 ( 每个 EA 的 LSB 始终清零 ) 为了产生兼容地址, 要相应地调整 XB 的值 不应同时使能模寻址和位反转寻址 如果用户试图这么做的话, 对于 X WAGU, 位反转寻址将优先, X WAGU 模寻址将被禁止 但是, 模寻址继续在 X RAGU 中起作用 如果通过将 BREN 位 (XBREV<15>) 置 1 使能了位反转寻址, 那么, 在写 XBREV 寄存器之后, 不应立即进行要使用被指定为位反转指针的 W 寄存器的间接读操作 图 4-2: 位反转地址示例 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 正常顺序的地址 b3 b2 b1 0 围绕二进制值的中心左右交换位位置 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b1 b2 b3 b4 0 位反转地址 中心点 对于 16 字位反转缓冲区,XB = 0X0008 DS70149B_CN 第 38 页 2007 Microchip Technology Inc.

41 DSPIC30F5015/5016 表 4-2: 位反转地址序列 (16 项 ) 正常地址 位反转地址 A3 A2 A1 A0 十进制 A3 A2 A1 A0 十进制 表 4-3: XBREV 寄存器的位反转地址修改量 缓冲区大小 ( 字 ) XB<14:0> 位反转地址修改量 x x x x x x x x x x x x Microchip Technology Inc. DS70149B_CN 第 39 页

42 DSPIC30F5015/5016 注 : DS70149B_CN 第 40 页 2007 Microchip Technology Inc.

43 5.0 中断 注 : 本数据手册总结了 dspic30f 系列器件的功能, 但并不作为参考大全使用 关于 CPU 外设 寄存器说明和一般器件功能的更多信息, 请参见 dspic30f 系列参考手册 (DS70046E_CN) 关于器件指令集和编程的更多信息, 请参见 dspic30f/33f 程序员参考手册 (DS70157B_CN) dspic30f5015/5016 有 36 个中断源和 4 个处理器异常 ( 陷阱 ), 它们必须按照优先级机制来进行仲裁 CPU 负责读取中断向量表 (Interrupt Vector Table, IVT), 并把中断向量中的地址传送给程序计数器 中断向量从程序数据总线向程序计数器的传送, 是经由程序计数器输入端的 24 位宽多路开关来进行的 中断向量表 (IVT) 和备用中断向量表 (AIVT) 的位置靠近程序存储器的开始 (0x000004) IVT 和 AIVT 如图 5-1 所示 在中断和处理器异常提交给处理器内核之前, 中断控制器负责它们的预处理 使用集中式的特殊功能寄存器对外设中断和陷阱进行允许 优先级分配和控制 : IFS0<15:0> IFS1<15:0> 和 IFS2<15:0> 这三个寄存器中保存所有的中断请求标志 这些标志由其对应的外设或外部信号置 1, 标志的清除则通过软件完成 IEC0<15:0> IEC1<15:0> 和 IEC2<15:0> 这三个寄存器中保存所有的中断允许控制位 这些控制位用来单独允许来自外设或外部信号的中断 IPC0<15:0>...IPC11<7:0> 与 44 个中断中的每一个中断有关的用户可分配优先级, 集中存放在这 12 个寄存器中 IPL<3:0> 当前 CPU 优先级显式地存放在 IPL 位中 IPL<3> 在 CORCON 寄存器中, 而 IPL<2:0> 则存放在处理器内核的状态寄存器 (SR) 中 INTCON1<15:0> 和 INTCON2<15:0> 全局中断控制功能由这两个寄存器提供 INTCON1 包含处理器异常的控制和状态标志 INTCON2 寄存器控制外部中断请求信号的操作以及备用中断向量表的使用 注 : 用户可以通过 IPCx 寄存器, 为所有中断源分配 7 个优先级中的一个, 优先级从 1 到 7 每个中断源都与一个中断向量相关, 如表 5-1 所示 优先级 7 和 1 分别代表最高和最低的可屏蔽优先级 注 : 如果 NSTDIS 位 (INTCON1<15>) 置 1, 则禁止中断嵌套 因此, 如果正在处理一个中断, 将禁止处理新的中断, 即使新中断的优先级比当前正在处理的中断优先级高 注 : 当中断条件产生时, 不管相应的中断允许位状态如何, 中断标志位都将置 1 用户程序应确保在重新允许中断之前, 相应的中断标志位已被清零 中断源优先级指定为 0, 等同于禁止该中断 一旦 NSTDIS 位置为 1,IPL 位就变为只读 某些中断具有专门的控制位, 用于控制诸如边沿或电平触发中断 电平变化中断这样的功能 这些功能的控制仍然由产生中断的外设模块负责 在执行某些指令期间, 如果 DISI 位 (INTCON2<14>) 保持置 1 的话, 那么可以用 DISI 指令来禁止优先级为 6 或更低的中断的处理 处理中断时, PC 中装入存放在程序存储器中相应中断向量存储单元中的地址 IVT 中有 63 个不同的向量 ( 见图 5-2) 这些向量存放在程序存储器从 0x 到 0x0000FE 的存储单元中 ( 见图 5-2) 这些存储单元中存有 24 位地址, 为了保持鲁棒性 (robustness), 在正常执行期间当 PC 试图取任何这些字的话, 就会产生地址错误陷阱 这避免了执行随机数据 ; PC 递减时意外进入向量空间 意外地把数据空间地址映射到了向量空间, 或者 PC 到达可用程序存储空间的末尾继而返回到 0x000000, 都将执行随机数据 执行 GOTO 指令跳转到向量空间, 也将产生地址错误陷阱 2007 Microchip Technology Inc. DS70149B_CN 第 41 页

44 5.1 中断优先级 每个中断源的用户可分配中断优先级位 (IP<2:0>) 均位于 IPCx 寄存器中每个半字节的最低 3 位中 每个半字节的 bit 3 未使用, 读为 0 这些位定义了用户分配给特定中断的优先级 注 : 用户可选择的优先级为从 0 到 7,0 是最低优先级, 7 是最高优先级 由于可能会有多个中断请求源被分配了同一个特定的用户指定优先级, 所以提供了一种方法在给定优先级内指定优先级 这种方法称为 自然顺序优先级 自然顺序优先级由中断在向量表中的位置决定 ; 只有在具有相同用户分配优先级的多个中断同时等待处理时, 才会影响中断操作 表 5-1 列出了 dspic DSC 器件的中断编号和中断源, 以及相关的向量编号 注 1: 自然顺序优先级机制以 0 为最高优先级, 以 53 为最低优先级 2: 自然顺序优先级编号与 INT 编号相同 用户可以为每个中断分配 7 个优先级之一, 这意味着用户可以为具有较低自然顺序优先级的中断分配一个极高的总优先级 表 5-1: 中断向量表 INT 编号 向量编号 中断源 最高自然顺序优先级 0 8 INT0 外部中断 IC1 输入捕捉 OC1 输出比较 T1 Timer IC2 输入捕捉 OC2 输出比较 T2 Timer T3 Timer SPI U1RX UART1 接收器 U1TX UART1 发送器 ADC ADC 转换完成 NVM NVM 写入完成 SI2C I 2 C 从中断 MI2C I 2 C 主中断 输入电平变化中断 INT1 外部中断 保留 保留 OC3 输出比较 OC4 输出比较 T4 Timer T5 Timer INT2 外部中断 保留 保留 SPI C1 CAN1 的组合 IRQ IC3 输入捕捉 IC4 输入捕捉 保留 保留 OC5 输出比较 OC6 输出比较 OC7 输出比较 OC8 输出比较 INT3 外部中断 INT4 外部中断 保留 PWM PWM 周期匹配 QEI QEI 中断 保留 保留 FLTA PWM 故障 A FLTB PWM 故障 B 保留 最低自然顺序优先级 DS70149B_CN 第 42 页 2007 Microchip Technology Inc.

45 5.2 复位过程 复位不是真正的异常, 因为复位过程中并不涉及中断控制器 在响应强制清零 PC 的复位时, 处理器初始化其寄存器 然后, 处理器从单元 0x 开始执行程序 一条 GOTO 指令存放在第一个程序存储单元中, 紧跟着的是 GOTO 指令的地址目标 处理器执行 GOTO, 跳转到指定地址, 然后开始指定目标 ( 起始 ) 地址处的操作 复位的来源 有 6 种错误来源会导致器件复位 看门狗定时器超时 : 看门狗定时器已超时, 表明处理器不再执行正确的代码流 未初始化的 W 寄存器陷阱 : 试图把未初始化的 W 寄存器用作地址指针将导致复位 非法指令陷阱 : 试图执行任何未使用的操作码, 将产生非法指令陷阱 注意, 如果由于指令流改变而在非法指令执行之前就被从指令流中舍弃的话, 取非法指令并不产生非法指令陷阱 欠压复位 (BOR): 检测到可能导致器件故障的电源电压短暂降低 陷阱锁定 : 多个并发的陷阱条件将导致复位 5.3 陷阱 可以将陷阱看作不可屏蔽中断, 表明出现软件或硬件错误, 陷阱遵循预定义的优先级, 如图 5-1 所示 陷阱旨在为用户提供一种方法, 修正在调试和在应用中工作时的错误操作 注 : 如果用户不想在出现陷阱错误条件时采取纠正措施, 则必须在这些向量中装入只包含 RESET 指令的默认陷阱处理程序的地址 否则, 如果调用了包含非法地址的向量, 将产生地址错误陷阱 注意, 很多陷阱条件只有在发生时才能检测到 因此, 在陷阱异常处理之前允许有问题的指令完成执行 如果用户选择从错误中恢复, 可能不得不修正导致陷阱的错误操作的结果 陷阱有 8 个固定的优先级 : 优先级 8 到优先级 15, 这意味着在陷阱处理期间, IPL3 始终置 1 如果用户当前不在执行陷阱, 而将 IPL<3:0> 位设置为 0111 ( 优先级 7), 这样就禁止了所有中断, 但仍然能够处理陷阱 陷阱的来源 以下陷阱的优先级依次递增 但是, 由于所有陷阱都可以嵌套, 优先级的作用很小 数学错误陷阱 : 在以下四种情况下, 产生数学错误陷阱 : 1. 如果试图进行以零作除数的除法操作, 它将在周期边界处中止, 并产生陷阱 2. 如果使能的话, 当对累加器 A 或 B 进行的算术操作导致 bit 31 溢出且没有使用累加器警戒位时, 将产生数学错误陷阱 3. 如果使能的话, 当对累加器 A 或 B 进行的算术操作导致 bit 39 灾难性溢出且所有饱和被禁止时, 将产生数学错误陷阱 4. 如果移位指令中指定的移位位数大于允许的最大移位位数, 将产生陷阱 2007 Microchip Technology Inc. DS70149B_CN 第 43 页

46 地址错误陷阱 : 当发生任何下列情形时, 将产生陷阱 : 1. 试图访问不对齐的数据字 2. 试图从未实现的数据存储单元取数据 3. 试图从未实现的程序存储单元取数据 4. 试图从向量空间取指令 注 : 5. 执行 BRA #literal 指令或 GOTO #literal 指令, 其中 literal 是未实现的程序存储器地址 6. 在将 PC 修改为指向未实现的程序存储器地址后执行指令 通过将值装入堆栈并执行 RETURN 指令可以修改 PC 堆栈错误陷阱 : 该陷阱在以下条件下产生 : 1. 在堆栈指针中装入了一个大于堆栈限制的值 ( 堆栈溢出 ); 堆栈限制值用户可编程, 存放在 SPLIM 寄存器中 2. 堆栈指针装入了一个小于 0x0800 的值 ( 简单堆栈下溢 ) 振荡器故障陷阱 : 在 MAC 类指令中, 数据空间被分为 X 数据空间和 Y 数据空间, 未实现的 X 空间包括所有 Y 空间, 而未实现的 Y 空间包括所有 X 空间 如果外部振荡器出现故障, 器件使用备用的内部 RC 振荡器工作, 就会产生振荡器故障陷阱 硬陷阱和软陷阱 在同一周期内可能会产生多个陷阱 ( 例如, 把不对齐的字写入堆栈中的溢出地址 ) 这时, 图 5-2 所示的固定优先级就会起作用 ; 为了完全纠正错误, 这可能需要用户检查是否有其他等待处理的陷阱 软 陷阱包括优先级 8 到 11 的异常 ( 含 ) 算术错误陷阱 ( 优先级 11) 就属于这一类陷阱 硬 陷阱包括优先级 12 到 15 的异常 ( 含 ) 地址错误 ( 优先级 12) 堆栈错误 ( 优先级 13) 和振荡器错误 ( 优先级 14) 陷阱就属于这一类 每个硬陷阱产生时, 在执行任何代码之前, 必须先对它进行响应 在优先级较高的陷阱正在等待处理 被响应或正在处理过程中时, 如果产生了优先级较低的硬陷阱, 就会产生硬陷阱冲突 器件在硬陷阱冲突时自动复位 复位发生时, 把 TRAPR 状态位 (RCON<15>) 置 1, 从而在软件中可以检测到该条件 图 5-1: 递减优先级 IVT AIVT 陷阱向量 复位 GOTO 指令复位 GOTO 地址保留振荡器故障陷阱向量地址错误陷阱向量堆栈错误陷阱向量数学错误陷阱向量保留向量保留向量保留向量中断 0 向量中断 1 向量 中断 52 向量中断 53 向量保留保留保留振荡器故障陷阱向量堆栈错误陷阱向量地址错误陷阱向量数学错误陷阱向量保留向量保留向量保留向量中断 0 向量中断 1 向量 中断 52 向量中断 53 向量 0x x x x x00007E 0x x x x x0000FE DS70149B_CN 第 44 页 2007 Microchip Technology Inc.

47 5.4 中断过程 在每个指令周期的开始,IFSx 寄存器都会采样所有的中断事件标志 在 IFSx 寄存器中标志位等于 1, 表明有等待处理的中断请求 (IRQ) 如果中断允许 (IECx) 寄存器中相应的位置 1, 则 IRQ 会导致中断产生 在余下的指令周期中, 将评估所有待处理中断请求的优先级 如果有待处理的 IRQ, 它的优先级比 IPL 位中当前处理器优先级高, 则处理器将被中断 随即, 处理器将把当前程序计数器和处理器状态寄存器 (SRL) 的低字节压入堆栈, 如图 5-2 所示 状态寄存器低字节包含中断周期开始之前的处理器优先级 然后, 处理器把中断的优先级装入状态寄存器 这将禁止所有低优先级的中断, 直到中断服务程序完成为止 图 5-2: 0x 中断堆栈帧 备用向量表 在程序存储器中, 中断向量表 (IVT) 之后是备用中断向量表 (AIVT), 如图 5-1 所示 INTCON2 寄存器中的 ALTIVT 位控制对备用向量表的访问 如果 ALTIVT 位置 1, 则所有的中断和异常处理将使用备用向量, 而不是默认向量 备用向量与默认向量的组织方式相同 AIVT 提供了一种在应用和支持环境之间切换的方法, 从而支持仿真和调试功能, 而无需重新设定中断向量 该功能还使得可以在运行时在用于评估不同软件算法的应用之间切换 如果不需要 AIVT, 分配给 AIVT 的程序存储空间可以作其他用途 AIVT 不是受保护的区域, 用户可以对其自由编程 5.6 快速现场保护 可以使用影子寄存器来保存现场 为 SR 中的 DC N OV Z 和 C 位, 以及寄存器 W0 到 W3 提供了影子寄存器 影子寄存器深度仅为一级 只能使用 PUSH.S 和 POP.S 指令来访问影子寄存器 堆栈向高位地址增长 PC<15:0> SRL IPL3 PC<22:16> < 空字 > W15(CALL 前 ) W15(CALL 后 ) POP :[--W15] PUSH :[W15++] 当处理器转移到中断向量开始处理中断时, 可以使用 PUSH.S 指令, 把上述寄存器的当前值保存到它们对应的影子寄存器中去 如果某个优先级的 ISR 使用 PUSH.S 和 POP.S 指令来快速保存现场, 那么优先级更高的 ISR 就不应再使用这两条指令 如果优先级较高的 ISR 使用了快速现场保护, 那么在优先级较低的中断处理期间, 用户必须保存关键寄存器 注 1: 通过把一个新值写入 SR, 用户始终能降低优先级 在降低处理器中断优先级之前, 为了避免递归中断, 中断服务程序必须把 IFSx 寄存器中的中断标志位清零 2: 在处理中断时,IPL3 位 (CORCON<3>) 始终被清零 它仅在陷阱执行期间置 1 RETFIE ( 从中断返回 ) 指令将把程序计数器和状态寄存器弹出堆栈, 使处理器返回到中断处理之前的状态 5.7 外部中断请求 中断控制器支持 5 个外部中断请求信号, INT0-INT4 这些输入是边沿敏感的 ; 它们需要从低至高或从高至低的跳变来产生中断请求 INTCON2 寄存器的 5 个位 (INT0EP-INT4EP) 用于选择边沿检测电路的极性 5.8 从休眠和空闲模式唤醒 如果产生中断时器件处于休眠或空闲模式, 中断控制器可以用来把处理器从休眠或空闲模式中唤醒 如果中断控制器收到已允许的中断请求, 且中断请求优先级足够高的话, 则标准中断请求将提交给处理器 同时, 处理器将从休眠或空闲中唤醒, 开始执行处理中断请求所需的中断服务程序 (ISR) 2007 Microchip Technology Inc. DS70149B_CN 第 45 页

00872a.book

00872a.book 从 MCP2510 升 级 至 MCP2515 作 者 : 介 绍 Pat Richards Microchip Technology Inc. 开 发 MCP2510 独 立 CAN 控 制 器 的 初 衷 是 赋 予 CAN 系 统 和 模 块 设 计 人 员 更 多 的 灵 活 性, 允 许 他 们 为 自 己 的 应 用 选 择 最 好 的 处 理 器 使 用 MCP2510 不 会 使 设

More information

Section1_16bit Arc.ppt

Section1_16bit Arc.ppt 16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data

More information

70178C.book

70178C.book 数 据 手 册 28/44 引 脚 高 性 能 开 关 电 源 数 字 信 号 控 制 器 2007 Microchip Technology Inc. 初 稿 DS70178C_CN 请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 : Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 Microchip

More information

untitled

untitled C 8051 MCU SPI EEPROM Alexandru Valeanu Microchip Technology Inc. Microchip Technology 25XXX EEPROM SPI 25XXX EEPROM SO 25XXX EEPROM 3MHz 20 MHz SPI HOLD 25XXX EEPROM EEPROM MCU HOLD 25XXX EEPROM SPI EEPROM

More information

70135e_cn.book

70135e_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70135E_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN

查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic30f6010a/6015 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 查询 DSPIC30F3010( 汉 ) 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70150B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

70116g_cn.book

70116g_cn.book 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70116G_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意

More information

dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2

dspic33f 系列参考手册 2.1 简介 dspic33f CPU 采用 16 位 ( 数据 ) 的改进型哈佛架构, 具有增强指令集, 其中包括对数字信号处理的强大支持 CPU 具有 24 位指令字, 指令字带有长度可变的操作码字段 程序计数器 (Program Counter, PC) 为 2 第 2 章 CPU 目录 本章包括下列主题 : 2 2.1 简介...2-2 2.2 编程模型... 2-5 2.3 软件堆栈指针 (SSP)... 2-9 2.4 CPU 寄存器说明... 2-12 2.5 算术逻辑单元 (ALU)... 2-18 2.6 DSP 引擎... 2-19 2.7 除法支持... 2-29 2.8 指令流类型... 2-30 2.9 循环结构... 2-33 2.10

More information

01262B.book

01262B.book 使用 C30 编译器实现单片机与片外串行 SRAM 的通信 作者 : 引言 Martin Bowman Microchip Technology Inc. 适用于 Microchip 的 dspic DSC 和 PIC24 系列单片机的 C30 编译器为寻址外部存储器提供了一个解决方案 该编译器支持这样的功能, 即允许用户按照访问 MCU 的片内存储器的方式来访问外部存储器 本应用笔记主要介绍如何使用

More information

PIC24 MSSP FRM Rev A.book

PIC24 MSSP FRM Rev A.book 58 MSSP 58.1... 58-2 58.2... 58-2 58.3... 58-12 58.4 SPI... 58-13 58.5 I2C... 58-22 58.6 /... 58-58 58.7... 58-58 58.8... 58-59 58.9... 58-60 58.10... 58-61 58 MSSP 2012 Microchip Technology Inc. DS30627A_CN

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

61146A.book

61146A.book PIC32 2008 Microchip Technology Inc. DS61146A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip

More information

dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件

dspic33e/pic24e 系列参考手册 2.1 简介 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 dspic33e/pic24e 器件 请参见当前器件数据手册中 CPU 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件 第 2 章 CPU 目录 本章包括下列主题 : 2 2.1 简介...2-2 2.2 编程模型... 2-5 2.3 软件堆栈指针... 2-9 2.4 CPU 寄存器说明... 2-13 2.5 算术逻辑单元 (ALU)... 2-19 2.6 DSP 引擎... 2-20 2.7 除法支持... 2-30 2.8 指令流类型... 2-31 2.9 循环结构... 2-34 2.10 地址寄存器相依性...

More information

untitled

untitled MCP3421 SOT23-6 DS51793A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology

More information

untitled

untitled PICkit MCP3422 DS51781A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology

More information

PIC18F65J90/85J90 Product Brief

PIC18F65J90/85J90 Product Brief 采用纳瓦技术内置 LCD 驱动器的 64/80 引脚高性能单片机 单片机的特殊性能 : 闪存程序存储器可承受 1000 次擦写 ( 典型值 ) 闪存数据保存时间为 20 年 ( 典型值 ) 软件控制下可自编程 中断具有优先级 8 x 8 单周期硬件乘法器 扩展的看门狗定时器 (Watchdog Timer, WDT): - 周期从 4 ms 到 131s, 可编程设定 通过两个引脚可进行在线串行编程

More information

dsPIC Architecture Overview

dsPIC Architecture Overview Digital Signal Control 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 1 dspic30f MCU P P MCU 2004 Microchip Technology dspic30f 16-bit Architecture Workshop 2 dspic30f dspic 1. 2. 3. dspic30f:

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 数据手册 高性能 16 位数字信号控制器 2010 Microchip Technology Inc. 初稿 DS70594B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

39733a_cn.book

39733a_cn.book 第 45 章具有扩展数据空间 (EDS) 的数据存储器 目录 本章包括下列主题 : 45.1 简介... 45-2 45.2 数据存储器构成... 45-3 45.3 扩展数据空间... 45-7 45.4 数据对齐... 45-14 45.5 软件堆栈... 45-15 45.6 程序存储空间与数据存储空间的连接... 45-15 45.7 相关应用笔记... 45-16 45.8 版本历史...

More information

MCP47x6_DaughterBoard.book

MCP47x6_DaughterBoard.book MCP47X6 PICtail Plus 子 板 用 户 指 南 DS51932B_CN 请 注 意 以 下 有 关 Microchip 器 件 代 码 保 护 功 能 的 要 点 : Microchip 的 产 品 均 达 到 Microchip 数 据 手 册 中 所 述 的 技 术 指 标 Microchip 确 信 : 在 正 常 使 用 的 情 况 下, Microchip 系 列 产 品

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 数据手册 高性能 16 位数字信号控制器 2010 Microchip Technology Inc. 初稿 DS70593B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前,

More information

39697b.book

39697b.book 第 9 章看门狗定时器 (WDT) 目录 本章包括下列主题 : 9.1 简介...9-2 9.2 WDT 工作原理... 9-3 9.3 寄存器映射... 9-7 9.4 设计技巧... 9-8 9.5 相关应用笔记... 9-9 9.6 版本历史... 9-10 9 看门狗定时器 (WDT) 2010 Microchip Technology Inc. DS39697B_CN 第 9-1 页 PIC24F

More information

文件名

文件名 MICROCHIP PIC10F200/202/204/206 6 8 FLASH PIC10F200 PIC10F202 PIC10F204 PIC10F206 RISC CPU 33 12 8 8 4MHz 1 s 4MHz 1% TM ICSP TM ICD POR DRT WDT RC MCLR I/O /CMOS < 350 A @ 2V 4 MHz 100 na @ 2V FLASH 10000

More information

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚

dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 产品系列 表 1 中列出了每款器件的器件名称 引脚数 存储容量和可用的外设, 表后还附有它们的引脚图 表 1: dspic33fj16(gp/mc)101/102 器件特性 器件 引脚 dspic33fj16(gp/mc)101/102 和 dspic33fj32(gp/mc)101/102/104 16 位数字信号控制器 ( 最多 32 KB 闪存和 2 KB SRAM) 工作条件 3.0V 至 3.6V, -40 C 至 +125 C, DC 至 16 MIPS 内核 :16 位 dspic33f CPU 高效代码 (C 和汇编 ) 架构 两个 40 位宽累加器 带双数据取操作的单周期

More information

21999a_cn.book

21999a_cn.book 1.5A 低 电 压 低 静 态 电 流 LDO 稳 压 器 MCP1727 特 性 输 出 电 流 能 力 为 1.5A 输 入 工 作 电 压 范 围 :2.3V 至 6.0V 可 调 输 出 电 压 范 围 :0.8V 至 5.0V 标 准 固 定 输 入 电 压 : - 0.8V 1.2V 1.8V 2.5V 3.0V 3.3V 和 5.0V 可 根 据 需 要 提 供 其 他 固 定 输

More information

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi MICROCHIP EVM Board : APP001 1-1. APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pin 16 I/O Extension Interface 1-2. APP001 Block_A Block_B

More information

33023A.book(31001A_cn.fm)

33023A.book(31001A_cn.fm) 1 第 1 章 简 介 简 介 目 录 本 章 包 括 下 面 一 些 主 要 内 容 : 1.1 简 介...1-2 1.2 本 手 册 的 宗 旨... 1-3 1.3 器 件 结 构... 1-4 1.4 开 发 支 持... 1-6 1.5 器 件 种 类... 1-7 1.6 格 式 和 符 号 的 约 定... 1-12 1.7 相 关 文 档... 1-14 1.8 相 关 应 用 笔

More information

21928a.book

21928a.book PS080, PowerTool 800 开发软件用户指南 2005 Microchip Technology Inc. DS21928A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN

查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN 查询 DSPIC33FJ256MC710 供应商 捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxmcx06/x08/x10 电机控制系列数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70287A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip

More information

01018A.book

01018A.book 使用 C18 编译器进行 SPI 串行 EEPROM 与 PIC18 单片机的接口设计 作者 : 引言 Chris Parris Microchip Technology Inc. Microchip Technology 生产的 25XXX 系列串行 EEPROM 兼容 SPI 通信标准, 最大时钟频率范围从 3MHz 到 20 MHz 许多时候, 在设计利用串行 EEPROM 器件的应用时, 使用非专用

More information

CTMU Temperature Measurement AN.book

CTMU Temperature Measurement AN.book 利用 PIC MCU 中的 CTMU 测量温度 TB3016 作者 : 最新一代 PIC24F 和 PIC18F 器件包含的充电时间测量单元 (Charge Time Measurement Unit,CTMU) 使用恒流源来计算电容值的变化以及事件的间隔时间 运用半导体物理学的基本原理, 同样的电流源也可用来测量温度 这允许使用普通而廉价的二极管来取代相对昂贵的热敏电阻和温度传感器 本技术简介描述了使用

More information

01277A_cn.book

01277A_cn.book 使用 C32 编译器进行串行 SRAM 器件与 PIC32 MCU 的接口设计 作者 : 引言 Pinakin K Makwana Microchip Technology Inc. Microchip 的串行 SRAM 产品线提供了向应用添加附加 RAM 的一种新方法 这些器件采用 8 引脚小型封装以及 SPI 接口, 使设计人员提升系统的灵活性 Microchip Technology 的 23XXXX

More information

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏

请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏 查询 DSPIC33FJ64GP706( 汉 ) 供应商捷多邦, 专业 PCB 打样工厂,24 小时加急出货 dspic33fjxxxgpx06/x08/x10 数据手册 高性能 16 位数字信号控制器 2007 Microchip Technology Inc. DS70286A_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip

More information

00966A.book

00966A.book SPI 串行 EEPROM 与 PICmicro 单片机的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 目前市场上有许多种单片机用在嵌入式控制系统设计中, 这些嵌入式控制系统中的很大一部分都要用到非易失性存储器 由于串行 EEPROM 具有封装尺寸小, 存储容量灵活, 对 I/O 引脚要求低, 和低功耗低成本等特点, 已成为非易失性存储器的首选

More information

00975A.book

00975A.book 使用 MSSP 模块进行 Microwire 串行 EEPROM 与 PIC16 器件的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 目前市场上有许多种单片机用在嵌入式控制系统设计中, 这些嵌入式控制系统中的很大一部分都要用到非易失性存储器 由于串行 EEPROM 具有封装尺寸小, 存储容量灵活, 对 I/O 引脚要求低, 和低功耗低成本等特点,

More information

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378> 第一章第二章 Q2 1: 高序 : 最低位字节存储在字的最低位 ; 低序 : 最低位字节存储在字的最高位 ; Q2 2: 冯. 诺依曼结构 : 数据和指令都存储在同一存储器中 ; 哈佛结构 : 数据和程序存储在各自独立的存储器中 Q2 3: a) ARM 有 16 个通用寄存器,r0 r15, 其中 r15 还被用作程序计数器 b) CPSR 是程序状态寄存器, 包含了条件码标识 中断禁止位 当前处理器模式和其他状态

More information

21498c_cn.book

21498c_cn.book 精密温度 - 电压转换器 特性 工作电压范围 : - TC147:2.7V 至 4.4V - TC147A:2.5V 至 5.5V 宽温度测量范围 : - -4 C 至 +125 C 温度转换精度高 : - 在 25 C 时为 ±2 C ( 最大值 ) 线性温度斜率 :1 mv/ C ( 典型值 ) 提供 3 引脚 SOT-23B 封装 低工作电流 : - 35 µa 典型值 应用 移动电话 电源过热关断控制

More information

01096B.book

01096B.book 使用 C30 编译器进行 SPI 串行 EEPROM 与 dspic33f 和 PIC24F 的接口设计 AN1096 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. Microchip 的 25XXX 系列串行 EEPROM 均与 SPI 兼容, 其最大时钟频率在 3 MHz 到 20 MHz 的范围内 许多时候, 当设计利用串行 EEPROM

More information

PIC24 intro.fm

PIC24 intro.fm 1 第 1 章简介 简介 目录 本章包括下列主题 : 1.1 简介... 1-2 1.2 手册目标... 1-2 1.3 器件结构... 1-2 1.4 开发支持... 1-4 1.5 样式和符号约定... 1-4 1.6 相关文档... 1-6 1.7 版本历史... 1-7 2008 Microchip Technology Inc. 超前信息 DS39718A_CN 第 1-1 页 PIC24F

More information

61127c_cn.book

61127c_cn.book 1 第 1 章 简 介 简 介 目 录 本 章 包 括 下 列 主 题 : 1.1 简 介... 1-2 1.2 本 手 册 的 目 标... 1-2 1.3 器 件 结 构... 1-2 1.4 开 发 支 持... 1-4 1.5 样 式 和 符 号 约 定... 1-4 1.6 相 关 文 档... 1-6 1.7 版 本 历 史... 1-7 2010 Microchip Technology

More information

93002A.book

93002A.book 使用 QEI 模块测量速度和位置 GS002 作者 : 引言 本文档给出了电机控制系列 dspic30f 数字信号控制器中正交编码器 (Quadrature Encoder Interface, QEI) 模块的概述 还提供了一个需要测量转子速度和位置的典型电机控制应用的代码示例 QEI 模块 Jorge Zambada Microchip Technology Inc. 正交编码器 ( 又称增量式编码器或光电式编码器

More information

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知

M8Rxxx 指令集说明 Version 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 M8Rxxx 指令集说明 Version 1.04 2014 年 11 月 上海磐芯电子有限公司 SHANGHAI MASSES ELECTRONIC Co., Ltd. 本公司保留对产品在可靠性, 功能和设计方面的改进作进一步说明的权利 说明文档的更改, 恕不另行通知 修正记录 版本 日期 描述 Ver1.02 2014-5-15 补全指令说明 Ver1.03 2014-10-8 勘误 Ver1.04

More information

00513D_CN.FM

00513D_CN.FM 使用 PIC16C54 实现模数转换 AN513 作者 : 简介 本应用笔记介绍了一种使用 PIC16C5X 系列单片机实现模数转换 (Analog to Digital,A/D) 的方法 仅需 5 个外部元件即可实现该转换器, 且可通过软硬件配置使转换分辩率达到 6 到 10 位且转换时间不短于 250 µs 这一方法可用于电压和电流转换且使用软件校准技术来补偿由于时间和温度漂移以及元件误差造成的精度误差

More information

CH559指令周期.doc

CH559指令周期.doc CH55X 汇编指令周期表 CH55X 汇编指令概述 : 型号包含 : a. 指令单周期型号 :CH557 CH558 CH559; b. 指令 4 周期型号 :CH551 CH552 CH553 CH554; c. 非跳转指令的指令周期数与指令字节数相同 ; d. 跳转指令含 MOVC/RET/CALL 通常比字节数多若干个周期 ; e.movc 指令多 4 或 5 个周期 ( 下条指令地址为奇数时多

More information

01020B.book

01020B.book 使用 MSSP 进行 Microwire 串行 EEPROM 与 PIC18 器件的接口设计 作者 : 引言 Martin Kvasnicka Microchip Technology Inc. 当前市场上有许多不同的单片机用于嵌入式控制应用领域 许多这种嵌入式控制系统都需要非易失性存储器 由于外形小巧 提供字节级灵活性 I/O 引脚要求低 低功耗和低成本等特点, 串行 EEPROM 成为非易失性存储器的流行选择

More information

01236B.book

01236B.book 使用 C3 和定时器连接 dspic33 DSC 和 PIC24 MCU 与兼容 UNI/O 总线的串行 EEPROM 作者 : 简介 Martin Kvasnicka Microchip Technology Inc. 随着嵌入式系统小型化的趋势, 市场对于减少器件间通信所用 I/O 引脚数的需求也与日俱增 Microchip 开发的 UNI/O 总线正满足了这一需求, 这一个低成本且易于实现的解决方案,

More information

33023A.book(31005A_cn.fm)

33023A.book(31005A_cn.fm) 第 5 章 CPU 和 ALU 目录 本章包括下面一些主要内容 : 5. 简介...5-2 5.2 指令的一般格式... 5-4 5.3 中央处理单元 (CPU)... 5-4 5.4 指令时钟... 5-4 5.5 算术逻辑单元 (ALU)... 5-5 5.6 状态寄存器... 5-6 5.7 OPTION_REG 寄存器... 5-8 5.8 电源控制寄存器... 5-9 5.9 设计技巧...

More information

TB3109 PIC32MX 器件中与 USB 模块相关的更改 USB 模块中断位 ( 即 USBIF USBIE USBIP 和 USBIS 位 ) 的位置变化会影响 PIC32MX 器件上的 USB 协议栈操作 表 1 给出了所列 PIC32MX 器件系列中 USBIF USBIE USBIP

TB3109 PIC32MX 器件中与 USB 模块相关的更改 USB 模块中断位 ( 即 USBIF USBIE USBIP 和 USBIS 位 ) 的位置变化会影响 PIC32MX 器件上的 USB 协议栈操作 表 1 给出了所列 PIC32MX 器件系列中 USBIF USBIE USBIP 在 v2013-06-15 MLA USB 设备和主机协议栈中更新 PIC32MX 支持 TB3109 简介 我们提供适合 PIC32MX MCU 的 Microchip 应用程序库 (Microchip Libraries for Applications,MLA), 但未计划向 MLA 添加新功能 v2013-06-15 MLA USB 协议栈本质上支持所有适用的 PIC32MX MCU 器件

More information

0507A_Auto Tech_Microchip

0507A_Auto Tech_Microchip 汽 车 无 线 安 全 接 入 技 术 解 决 方 案 Youbok Lee 主 任 工 程 师 Willie Fitzgerald 产 品 营 销 总 监 Microchip Technology Inc. 引 言 全 球 汽 车 半 导 体 面 临 极 大 的 市 场 机 会, 而 汽 车 设 计 工 程 师 正 在 应 对 高 性 价 比 的 性 能 增 强 功 耗 小 尺 寸 和 安 全 性

More information

SPMC75F2413A_EVM_使用说明_V1.2.doc

SPMC75F2413A_EVM_使用说明_V1.2.doc SPMCFA EVM V. - Jan 0, 00 http://www.sunplusmcu.com ................ SPMCFA........... EEPROM.... I/O............ LED.... LED.... RS-........0............ EVM................ 0.....0..... SPMCFA EVM SPMCFA

More information

,,, PCB, AR M VxWorks DSP,,,,,,,,,,, (CIP) /,,.:,2005 ISBN TP36 CIP (2005) : ( 10 ) : : (010 ) : (010)

,,, PCB, AR M VxWorks DSP,,,,,,,,,,, (CIP) /,,.:,2005 ISBN TP36 CIP (2005) : ( 10 ) : : (010 ) : (010) ,,, PCB, AR M VxWorks DSP,,,,,,,,,,, (CIP) /,,.:,2005 ISBN 7-5635-1099-0...............TP36 CIP (2005)076733 : ( 10 ) :100876 : (010 )62282185 : (010)62283578 : publish@bupt.edu.cn : : : 787 mm960 mm 1/

More information

93004A.book

93004A.book 用 dspic DSC MCPWM 模块驱动交流感应电机 作者 : Jorge Zambada Microchip Technology Inc. 如图 1 所示, 电机绕组的电感对 PWM 电压源的电流进行滤波 正如下文即将介绍的, 基于该原理我们可利用 PWM 信号产生正弦波来对三相 ACIM 进行通电 引言 本文档概括介绍了采用 dspic3f 电机控制数字信号控制器系列芯片实现的电机控制 PWM

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介 复位时的时钟源选择 上电复位 (POR) MCLR 复位 软件 RESET 指令 (SWR)

第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介 复位时的时钟源选择 上电复位 (POR) MCLR 复位 软件 RESET 指令 (SWR) 第 40 章包括可编程欠压复位在内的复位机制 目录 本章包括下列主题 : 40.1 简介... 40-2 40.2 复位时的时钟源选择... 40-5 40.3 上电复位 (POR)... 40-5 40.4 MCLR 复位... 40-7 40.5 软件 RESET 指令 (SWR)... 40-7 40.6 看门狗定时器复位 (WDTR)... 40-7 40.7 欠压复位 (BOR)... 40-8

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM3316/3315 MCU 2017.06 FM3316/3315 MCU 2.21 (http://www.fmsh.com/) FM3316/3315 MCU 2.22 ... 3 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.3.1... 6 2.3.2... 6 2.4... 9 2.5... 10 2.5.1 LQFP64... 10 2.5.2

More information

70046d_cn.book(70055c_cn.fm)

70046d_cn.book(70055c_cn.fm) 第 8 章复位 目录 本章包括下列主题 : 8.1 简介...8-2 8.2 复位时的时钟源选择... 8-5 8.3 POR: 上电复位... 8-5 8.4 外部复位 (EXTR)... 8-7 8.5 软件复位指令 (SWR)... 8-7 8.6 看门狗超时复位 (WDTR)... 8-7 8.7 欠压复位 (BOR)... 8-8 8.8 使用 RCON 状态位... 8-10 8.9 器件复位时间...

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet

dsPIC33FJ32MC202/2024 and dsPIC33FJ16MC304 Data Sheet dspic33fj32mc202/204 和 dspic33fj16mc304 数据手册高性能 16 位数字信号控制器 2007 Microchip Technology Inc. 初稿 DS70283B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下,

More information

TB3098 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc. 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到

TB3098 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc. 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到 PIC16F170X 外设引脚选择 (PPS) 技术简介 作者 : 简介 Stephen Allen Microchip Technology Inc 外设引脚选择 (Peripheral Pin Select,PPS) 可以使数字外设灵活地映射到各种外部引脚 在过去, 外设硬接线到特定引脚 ( 例如 : 引脚 RC5 上的 PWM1 输出 ) PPS 允许开发人员从大量输出引脚中进行选择, 这提供了以下优势

More information

dsPIC30F Programmer’s Reference Manual

dsPIC30F Programmer’s Reference Manual dspic30f/33f 程序员 参考手册 高性能数字信号控制器 2006 Microchip Technology Inc. 初稿 DS70157B_CN 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一

More information

untitled

untitled MCP3421 DS51683A_CN Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Microchip Digital Millennium Copyright Act Microchip Microchip Technology Inc. Microchip

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

untitled

untitled N1113 8051MU I 2 EEPROM lexandru Valeanu Microchip Technology Inc. Microchip Technology 24XXX EEPROM 2 SL 24XXX EEPROM 24XXX EEPROM I 2 100 khz 1MHz 24XXX EEPROM 2 I 2 EEPROM 128 512 b 100 khz 1MHz 1.7V

More information

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

00686A.Book

00686A.Book 理解和使用监控电路 AN686 概要 本应用笔记讨论了什么是单片机监控器件, 为什么需要这些器件以及在选择这些器件时需要考虑的一些因素 监控器件属于一个很广的范畴, 它涵盖了上电复位 (Power on Reset,POR) 器件 欠压检测 (Brown-Out Detect,BOD) 器件和看门狗定时器器件 本应用笔记将仅讨论具有 POR 和 BOD 功能的监控器件 监控电路的工作 监控电路可用于几种不同的应用,

More information

Microsoft Word - Ö¸Á.doc

Microsoft Word - Ö¸Á.doc 指令集说明 注 由于资源大小问题 其中以下几款 MCU 只有 62 条指令 其余均为 63 条指令 HT48CA0/HT48RA0A 无 RETI 指令 HT48R05A-1 无 TABRDL 指令 指令寻址方式有下面 5 种 立即寻址 此一寻址法是将立即的常数值紧跟在运算码 (opcode) 后 例如 MOV A, 33H ADD A, 33H 直接寻址 直接寻址的情況只允许在存储器之间作数据传送

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax) 2018 9 29 龙芯 版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) 010-62546668 (Fax) 010-62600826 阅读指南 龙芯 1C101 处理器数据手册 龙芯 1C101 修订历史 序号 更新日期 版本号

More information

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x 115 AVR W.V. Awdrey ATMEL AVR PIC AVR PIC AVR RISC AVR PIC AVR AVR AVR AVR AVR ATtiny15 AVR AVR AVR RAM ROM 121 116 122 ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r31 3 16 X Y Z 6-1 118 7 0

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

More information

33023A.book(31026A_cn.fm)

33023A.book(31026A_cn.fm) 26 第 26 章看门狗定时器与休眠模式 目录 看门狗定时器与休眠模式 本章包括下面一些主要内容 : 26.1 简介... 26-2 26.2 控制寄存器... 26-3 26.3 看门狗定时器 (WDT) 的操作... 26-4 26.4 休眠省电模式... 26-7 26.5 初始化... 26-9 26.6 设计技巧... 26-10 26.7 相关应用笔记... 26-11 26.8 版本历史...

More information

33023A.book(31006A_cn.fm)

33023A.book(31006A_cn.fm) 6 第 6 章存储器构成 存储器构成 目录 本章包括下面一些主要内容 : 6.1 简介...6-2 6.2 程序存储器构成... 6-2 6.3 数据存储器构成... 6-8 6.4 初始化... 6-14 6.5 设计技巧... 6-16 6.6 相关应用笔记... 6-17 6.7 版本历史... 6-18 2004 Microchip Technology Inc. DS31006A_CN 第

More information

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD Leica MC170 HD Leica MC190 HD 5 6 7 8 11 12 13 14 16 HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD 22 23 24 26 Leica MC170 HD Leica MC190 HD ( ) 28

More information

Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE

Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE Arduino 01 02 03 04 05 06 07 08 1-1 Arduino 2005 Massimo Banzi David Cuartielles David Mellis Arduino Arduino Arduino CC Arduino Arduino Arduino Arduino

More information

41632B.book

41632B.book 互 补 波 形 发 生 器 (CWG) 可 配 置 逻 辑 单 元 (CLC) 和 数 控 振 荡 器 (NCO) 外 设 技 巧 与 诀 窍 简 介 Microchip 致 力 于 不 断 向 客 户 提 供 体 积 更 小 速 度 更 快 使 用 更 简 便 与 运 行 更 可 靠 的 创 新 产 品 我 们 的 闪 存 PIC MCU 已 广 泛 应 用 于 日 常 生 活 中 从 烟 雾 探

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 第 3 章 8086 的寻址方式和指令系统 (1) 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 1 主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2 3.1 8086 的寻址方式 两种不同的类型 : 一类是程序地址 ( 在代码段中 ) 的寻址方式 ; 另一类是操作数地址的寻址方式

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

工作原理 脉冲血氧仪基于氧合血红蛋白 (HbO 2 ) 和脱氧血红蛋白 (Hb) 的红光 ( 波长为 nm) 和红外光 ( 波长为 nm) 吸收特性来监测人体血液的氧饱和度 (SpO 2 ) 脉冲血氧仪会交替地闪烁红光和红外光, 光线穿过手指到达光电二极管 HbO

工作原理 脉冲血氧仪基于氧合血红蛋白 (HbO 2 ) 和脱氧血红蛋白 (Hb) 的红光 ( 波长为 nm) 和红外光 ( 波长为 nm) 吸收特性来监测人体血液的氧饱和度 (SpO 2 ) 脉冲血氧仪会交替地闪烁红光和红外光, 光线穿过手指到达光电二极管 HbO 使用 Microchip 的 dspic 数字信号控制器 (DSC) 和模拟器件实现脉冲血氧仪设计 作者 : Zhang Feng Microchip Technology Inc. 简介 脉冲血氧仪是一种用于监测患者血氧饱和度和心率的非侵入式医疗设备 本应用笔记演示了如何使用 Microchip 的 dspic 数字信号控制器 (Digital Signal Controller, DSC) 和模拟器件来实现高精度脉冲血氧仪

More information

模拟外设 : 10 位模数转换器 (Analog-to-Digital Converter, ): - 最多 17 路外部通道 - 可在休眠模式下进行转换 : - 最多 2 个 - 低功耗 / 高速模式 - ( 同相 ) 反相输入上的固定电压参考 - 可从外部访问输出 5 位数模转换器 (Digit

模拟外设 : 10 位模数转换器 (Analog-to-Digital Converter, ): - 最多 17 路外部通道 - 可在休眠模式下进行转换 : - 最多 2 个 - 低功耗 / 高速模式 - ( 同相 ) 反相输入上的固定电压参考 - 可从外部访问输出 5 位数模转换器 (Digit 采用 XLP 技术的全功能低引脚数单片机产品简介 说明 : 单片机具有模拟 内核独立外设以及通信外设特性, 并结合了超低功耗 (extreme Low Power,XLP) 技术, 适用于一系列广泛的通用和低功耗应用 外设引脚选择 (Peripheral Pin Select, PPS) 功能可以在使用数字外设 ( 和通信 ) 时进行引脚映射, 以增加应用设计的灵活性 内核特性 : 优化的 C 编译器

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

21666b.book

21666b.book 具 有 关 断 功 能 的 80 ma 小 型 CMOS LDO TC1016 特 性 节 省 空 间 的 5 引 脚 SC-70 和 SOT-23 封 装 极 低 的 工 作 电 流, 利 于 延 长 电 池 寿 命 : 典 型 值 53 µa 很 低 的 电 压 差 (Dropout Voltage) 额 定 输 出 电 流 :80 ma 仅 需 一 个 1µF 的 陶 瓷 输 出 电 容 高

More information

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8

GW2A 系列 FPGA 产品 GW2A-18 器件 Pinout Version History 日期 版本 2016/8/ /9/ /11/ /2/ /6/ /6/ /8 Version History 日期 版本 2016/8/4 1.00 2016/9/2 1.01 2016/11/29 1.02 2017/2/16 1.03 2017/6/9 1.04 2018/6/27 1.05 2018/8/8 1.06 新增 MG196 PBGA256S 封装信息 ; 修改 SSPI 模式的配置功能 ; 增加 QN88 封装信息 2019/3/27 1.07 增加电源供电要求

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

Real-Time Clock and Calendar (RTCC)

Real-Time Clock and Calendar (RTCC) 第 7 章复位 目录 本章包括下列主题 : 7 7.1 简介...7-2 7.2 复位时的时钟源选择... 7-4 7.3 上电复位 (POR)... 7-4 7.4 MCLR 复位... 7-6 7.5 软件 RESET 指令 (SWR)... 7-6 7.6 看门狗超时复位 (WDTR)... 7-6 7.7 欠压复位 (BOR)... 7-7 7.8 配置不匹配复位... 7-7 7.9 陷阱冲突复位...

More information

Microsoft PowerPoint - 第01章 基础知识.pptx

Microsoft PowerPoint - 第01章 基础知识.pptx 微处理器与微计算机系统 教材 : 单片机原理与应用及 C51 程序设计 ( 第 3 版 ) 清华大学出版社 主讲 : 谢维成 http://xweicheng.ys168.com scxweicheng@mail.xhu.edu.cn 西华大学电气与电子信息学院 第 1 章计算机基础知识 主要内容 : 1 有符号数的表示 2 微型计算机工作原理 3 单片机的概念及特点 A Historical Background

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P

HT46R47 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 13 位双向输入 / 输出口 1 个与输入 / 输出共用引脚的外部中断输入 8 位带溢出中断的可编程定时 / 计数器 具有 7 级预分频器 石英晶体或 RC 振荡器 位的程序存储器 P HT46R/47R/48R/49R 系列 选型指南 HT46R22 f SYS =4MHz 3.3~5.5V f SYS =8MHz 4.5~5.5V 19 位双向输入 / 输出口 1 个与输入 / 输出口线共用的外部输入 16 位具有 7 级预分频带溢出中断的可编程定时 / 计数器 内置石英晶体或 RC 振荡器 2048 14 位的程序存储器 PROM 64 8 位的数据存储器 RAM 支持发声的

More information

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D 控制器 thert thert thert 接下一个电机驱动模块 () 接下一个电机驱动模块 () 电机驱动模块 电机驱动模块 电源模块 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () 接下一个电机驱动模块 () X 0 X 0 4 /RK /RK 注 注 制动电阻阻值 Ω Φ 80: 适用电机驱动模块型号 8-M-XXXX--XX Φ : 适用电机驱动模块型号

More information

MCP1630

MCP1630 可 用 单 片 机 控 制 的 高 速 脉 宽 调 制 器 特 性 高 速 PWM 操 作 ( 电 流 检 测 至 输 出 有 12 ns 延 时 ) 工 作 温 度 范 围 : - -4 C 至 125 C 精 确 峰 值 电 流 限 制 (±5%)(MCP163) 电 压 模 式 和 平 均 电 流 模 式 控 制 (MCP163V) CMOS 输 出 驱 动 器 ( 直 接 驱 动 MOSFET

More information