PIC32MX Flash Programming Specification

Size: px
Start display at page:

Download "PIC32MX Flash Programming Specification"

Transcription

1 闪存编程规范 1.0 器件概述 本文档定义了 系列 32 位单片机的编程规范 本编程规范旨在用于指导开发人员使用外部编程器工具 对于正在开发 器件应用程序的客户应使用已提供器件编程支持的开发工具 主要讨论的主题包括 : 图 2-1: 外部编程器 编程系统设置 目标 器件 CPU 第 1.0 节 器件概述 第 2.0 节 编程概述 第 3.0 节 编程步骤 第 4.0 节 连接至器件 第 5.0 节 EJTAG 与 ICSP 第 6.0 节 伪操作 第 7.0 节 进入 2 线增强型 ICSP 模式 第 8.0 节 检查器件状态 第 9.0 节 擦除器件 第 10.0 节 进入串行执行模式 第 11.0 节 下载编程执行程序 (PE) 第 12.0 节 下载数据块 第 13.0 节 初始化闪存行写操作 第 14.0 节 校验器件存储器 第 15.0 节 退出编程模式 第 16.0 节 编程执行程序 第 17.0 节 校验和 第 18.0 节 配置存储器和器件 ID 第 19.0 节 TAP 控制器 第 20.0 节 交流 / 直流特性和时序要求 附录 A: 闪存映射 附录 B: Hex 文件格式 附录 C: 版本历史 2.0 编程概述 当开发编程工具时, 有必要了解目标器件的内部闪存的编程操作和用于控制闪存编程的特殊功能寄存器 (Special Function Register, SFR), 因为同样这些操作和寄存器会由外部编程工具及其软件使用 这些操作和控制寄存器在具体器件数据手册的 闪存程序存储器 章节和 系列参考手册 的相关章节中进行了说明 强烈推荐将这些文档与本编程规范结合使用 外部工具编程设置由外部编程器工具和目标 器件组成 图 2-1 描绘了一个典型的编程设置 编程器工具负责执行所需的编程步骤并完成编程操作 片上存储器 2.1 具有双闪存分区和双引导区域的器件 MZ 嵌入式连接 (EC) 系列器件集成了多个用于器件现场 ( 自 ) 编程的实用特性 这些特性包括具有双引导区域的双闪存分区 用于引导区域的别名机制 ( 允许在启动时自动选择引导代码 ) 和用于程序闪存的分区交换特性 两个闪存分区及其相关的引导区域均可分别擦除和编程 关于这些特性的详细说明, 请参见 系列参考手册 的第 48 章 存储器构成和权限 (DS ) 用于量产编程的开发工具将不用考虑大部分特性, 但是以下内容除外 : 确保 SWAP (NVMCON<7>) 位设置正确 默认设置为 0, 无分区交换 在生成用于编程工具的源文件时, 开发工具应假设为默认设置 正确处理校验和计算中的引导存储器别名 别名部分将与固定部分一致 关于别名区域校验和计算的更多信息, 请参见第 17.0 节 校验和 DS M_CN 第 1 页

2 2.2 编程接口 所有 器件都为外部编程器工具提供了两种物理接口 : 2 线在线串行编程 (In-Circuit Serial Programming, ICSP ) 4 线联合测试行动组织 (Joint Test Action Group, JTAG) 更多信息, 请参见第 4.0 节 连接至器件 这两种方法都可以使用可下载的编程执行程序 (Programming Executive,PE) PE 可以从目标器件 RAM 中执行, 并对于编程器隐藏器件编程细节 它还可以消除与数据传输相关的开销, 提高整体数据吞吐量 Microchip 开发了可用于任意外部编程器的 PE( 更多信息请参见第 16.0 节 编程执行程序 ) 第 3.0 节 编程步骤 介绍了一些高级编程步骤, 并随后给出了每个步骤的简要说明 本文档的相应章节中则提供了详细的说明 以下章节中提供了关于编程命令 EJTAG 和直流规范的更多详细信息 : 第 18.0 节 配置存储器和器件 ID 第 19.0 节 TAP 控制器 第 20.0 节 交流 / 直流特性和时序要求 2.3 增强型 JTAG (EJTAG) 2 线和 4 线接口都使用 EJTAG 协议来与编程器交换数据 虽然本文档根据需要提供了该协议的工作描述, 还是建议高级用户访问 Imagination Technologies Limited 网站 ( 以获取更多信息 2.4 数据大小 数据大小定义如下 : 1 个字 :32 位 1/2 个字 :16 位 1/4 个字 :8 位 1 个字节 :2 位 DS M_CN 第 2 页

3 3.0 编程步骤 无论所使用的实际方法如何, 所有工具编程器都必须执行一组公共的步骤 图 3-1 显示了这组用于对 器件进行编程的步骤 图 3-1: 编程流程图 开始 进入增强型 ICSP 模式 ( 仅在使用 2 线时需要 ) 检查器件状态 擦除器件 进入串行执行模式 下载 PE( 可选 ) 下载数据块 初始化闪存写操作 以下序列列出了这些步骤, 并给出了每个步骤的简要说明 后续章节中提供了关于这些步骤更详细的信息 1. 连接到目标器件 为了确保成功编程, 所需引脚都必须与相应的信号连接 更多信息, 请参见本文档中的第 4.0 节 连接至器件 2. 将目标器件置为编程模式 对于 2 线编程方法, 必须在执行任何其他步骤之前, 先将目标器件置为一种特殊的编程模式 ( 增强型 ICSP ) 注 : 对于 4 线编程方法, 不需要步骤 2 更多信息, 请参见第 7.0 节 进入 2 线增强型 ICSP 模式 3. 检查器件的状态 步骤 3 用于检查器件的状态, 确保它准备好接收来自编程器的信息 更多信息, 请参见第 8.0 节 检查器件状态 4. 擦除目标器件 如果器件中的目标存储器块不为空, 或者如果器件被代码保护, 则在烧写任意新数据之前, 必须先执行一个擦除步骤 更多信息, 请参见第 9.0 节 擦除器件 5. 进入编程模式 步骤 5 用于验证器件未被代码保护, 并引导 TAP 控制器, 使之开始与 CPU 进行数据发送和接收 更多信息, 请参见第 10.0 节 进入串行执行模式 6. 下载编程执行程序 (PE) PE 是下载到目标器件 RAM 中的一小块可执行代码 它将接收并烧写实际数据 注 : 如果所使用的编程方法不需要 PE, 则不需要步骤 6 更多信息, 请参见第 11.0 节 下载编程执行程序 (PE) 否 完成 是 校验器件 退出编程模式 完成 DS M_CN 第 3 页

4 7. 下载要烧写的数据块 所有方法 ( 无论是否使用 PE) 都必须将所需烧写的数据下载到 RAM 中的一个存储器块中 更多信息, 请参见第 12.0 节 下载数据块 8. 启动闪存写操作 将每个数据块下载到 RAM 中之后, 必须启动编程序列, 将数据烧写到目标器件的闪存中 更多信息, 请参见第 13.0 节 初始化闪存行写操作 9. 重复步骤 7 和 8, 直到下载并烧写完所有数据块为止 10. 校验程序存储器 烧写所有编程数据和配置位之后, 应回读目标器件存储器, 验证内容是否匹配 更多信息, 请参见第 14.0 节 校验器件存储器 11. 退出编程模式 只有对目标器件断电并重新加电, 或者执行退出编程序列之后, 新烧写的数据才会生效 更多信息, 请参见第 15.0 节 退出编程模式 DS M_CN 第 4 页

5 4.0 连接至器件 系列提供了两种可供选择的物理接口, 用于进行连接和存储器内容编程 ( 见图 4-1) 对于所有编程接口, 都必须为目标器件供电, 并且连接所有必需的信号 此外, 接口必须使能, 可以通过其配置位 ( 作为 JTAG 4 线接口 ), 或通过专门的初始化序列 ( 作为 2 线 ICSP 接口 ) 实现 JTAG 接口在空白器件出厂时默认为使能 在第 7.0 节 进入 2 线增强型 ICSP 模式 中对使能 ICSP 进行了说明 线接口 一种可供选择的接口是 4 线 JTAG (IEEE ) 端口 表 4-1 列出了所需的引脚连接 该接口使用 4 条通信线, 用于与要编程的 器件进行数据传输 : TCK 测试时钟输入 TMS 测试模式选择输入 TDI 测试数据输入 TDO 测试数据输出关于信号与器件引脚的连接, 请参见具体器件数据手册 图 4-1: 编程接口 测试时钟输入 (TCK) 编程器 2 线 ICSP 或 4 线 JTAG TCK 是时钟信号, 它控制 TAP 控制器的更新和通过指令或选定数据寄存器的数据移位 TCK 的频率和相位均独立于处理器时钟 测试模式选择输入 (TMS) TMS 是 TAP 控制器的控制信号 该信号在 TCK 上升沿进行采样 + MCLR,VDD,VSS 测试数据输入 (TDI) TDI 是指令或选定数据寄存器的测试数据输入 该信号在某些 TAP 控制器状态的 TCK 上升沿进行采样 测试数据输出 (TDO) TDO 是指令或数据寄存器的测试数据输出 该信号在 TCK 下降沿发生变化 只有在移出数据时才会驱动 TDO, 否则 TDO 为三态 表 4-1: 4 线接口引脚 器件引脚名称 引脚类型 引脚说明 MCLR I 编程使能 ENVREG (2) I 片上稳压器使能 VDD 和 AVDD (1) P 电源 VSS 和 AVSS (1) P 地 VCAP P CPU 逻辑滤波器的电容连接 TDI I 测试数据输入 TDO O 测试数据输出 TCK I 测试时钟 TMS I 测试模式状态 图注 : I = 输入 O = 输出 P = 电源 注 1: 所有电源和地引脚都必须连接, 包括模拟电源 (AVDD) 和模拟地 (AVSS) 2: 不是所有器件都有 ENVREG 引脚 请参见具体器件数据手册中的 引脚图 章节以确定 可用性 DS M_CN 第 5 页

6 4.2 2 线接口 另一种可供选择的接口是 2 线 ICSP 端口 表 4-2 列出了所需的引脚连接 该接口使用 2 条通信线, 用于与要编程的 器件进行数据传输 : PGECx 串行编程时钟 PGEDx 串行编程数据以下两节介绍了这些信号 关于信号与芯片引脚的连接, 请参见具体器件数据手册 串行编程时钟 (PGECX) PGECx 是时钟信号, 它控制 TAP 控制器的更新和通过指令或选定数据寄存器的数据移位 PGECx 的频率和相位均独立于处理器时钟 串行编程数据 (PGEDX) PGEDx 是指令或选定数据寄存器的输入 / 输出, 另外它也是 TAP 控制器的控制信号 该信号在某些 TAP 控制器状态的 PGECx 下降沿进行采样 表 4-2: 2 线接口引脚 器件引脚名称 编程器引脚名称 引脚类型 引脚说明 MCLR MCLR P 编程使能 ENVREG (2) N/A I 片上稳压器使能 VDD 和 AVDD (1) VDD P 电源 VSS 和 AVSS (1) VSS P 地 VCAP N/A P CPU 逻辑滤波器电容连接 PGEC1 PGEC I 主编程引脚对 : 串行时钟 PGED1 PGED I/O 主编程引脚对 : 串行数据 PGEC2 PGEC I 辅助编程引脚对 : 串行时钟 PGED2 PGED I/O 辅助编程引脚对 : 串行数据 图注 : I = 输入 O = 输出 P = 电源 注 1: 所有电源和地引脚都必须连接, 包括模拟电源 (AVDD) 和模拟地 (AVSS) 2: 不是所有器件都有 ENVREG 引脚 请参见具体器件数据手册中的 引脚图 或 引脚表 章节以确定可 用性 DS M_CN 第 6 页

7 4.3 电源要求 系列中的器件均采用双电源设计 一个电源为内核供电, 而另一个电源为外设和 I/O 引脚供电 所有器件均包含一个用于较低电压内核电源的片上稳压器, 从而无需外部稳压器 片上稳压器有三种实现方式 : 第一个版本具有一个内部稳压器, 可通过 ENVREG 引脚禁止 禁止时, 必须使用外部电源为内核供电 如果使能, 必须连接一个低 ESR 滤波电容到 VCAP 引脚, 见图 4-2 第二个版本具有一个不能被禁止的内部稳压器 必须始终连接一个低 ESR 滤波电容到 VCAP 引脚 第三个版本具有一个不能被禁止的内部稳压器, 且无需滤波电容 请参见第 20.0 节 交流 / 直流特性和时序要求 和具体器件数据手册中的 电气特性 章节, 以了解您器件的电源要求 图 4-2: CEFC (10 F 典型值 ) 1.8V (1) 内部稳压器使能 / 禁止选项 (2) 稳压器使能 (ENVREG 连接到 VDD) 3.3V VDD ENVREG VCAP VSS (2) 稳压器禁止 (ENVREG 接地 ) 3.3V (1) VDD ENVREG VCAP VSS 注 1: 这些是典型的工作电压 请参见第 20.0 节 交流 / 直流特性和时序要求 了解 VDD 和 VCAP 的完整工作范围 2: 不是所有器件都有稳压器使能和稳压器禁止模式 请参见具体器件的数据手册, 以确定可用性 DS M_CN 第 7 页

8 5.0 EJTAG 与 ICSP 编程通过 CPU 内核中的 EJTAG 模块来完成 EJTAG 与一组完整的 JTAG 引脚连接, 或者与用于 ICSP 模式的精简的 2 线 /4 线转换 EJTAG 接口连接 在两种模式下, 闪存的编程都通过 ETAP 控制器来完成 TAP 控制器使用 TMS 引脚来确定是否应访问移位路径中 TDI 和 TDO 之间的指令或数据寄存器 ( 见图 5-1) EJTAG 用于编程的基本概念是使用一个称为 DMSEG (0xFF 至 0xFF2FFFFF) 的特殊存储器区域, 该区域仅在处理器以调试模式运行时可用 首先, 所有指令会串行移入内部缓冲区, 然后装入指令寄存器并由 CPU 执行 指令按 32 位一组的形式送入 ETAP 状态机 图 5-1: TAP 控制器 TAP 控制器 TMS TCK TDO TDI 指令 数据和控制寄存器 DS M_CN 第 8 页

9 5.1 编程接口 图 5-2 显示了 器件中的基本编程接口 以下子章节将对每个接口模块进行说明 图 5-2: 基本 编程接口框图 TMS 公共 TCK TDI ETAP CPU VDD VSS TDO 或 MTAP 闪存控制器 MCLR PGECx PGEDx 2 线至 4 线 闪存 ETAP 该模块将指令和数据串行送入 CPU MTAP 除了 EJTAG TAP(ETAP) 控制器之外, 器件还使用第二个专有的 TAP 控制器来进行附加操作 Microchip TAP (MTAP) 控制器支持两条与编程有关的指令 : MTAP_COMMAND 和 TAP 切换指令 请参见表 19-1 以获取指令的完整列表 MTAP_COMMAND 指令为 JTAG 探针提供了通过其数据寄存器向器件发送命令的机制 编程器发送命令的方式是 : 通过 SendCommand 伪操作移入 MTAP_COMMAND 指令, 然后通过 XferData 伪操作发送 MTAP_COMMAND DR 命令 关于具体命令, 请参见表 19-2 探针不需要针对移入数据寄存器的每条命令都发出 MTAP_COMMAND 指令 线 /4 线转换 该模块将 2 线 ICSP 接口转换为 4 线 JTAG 接口 CPU CPU 通过内部振荡器以 8 MHz 的速率执行指令 闪存控制器 闪存控制器用于控制器件上闪存的擦除和编程 闪存 器件闪存分为两个逻辑闪存分区, 包括引导闪存 (Boot Flash Memory, BFM) 和程序闪存 (Program Flash Memory,PFM) BFM 从地址 0x1FC00000 开始, 而 PFM 从地址 0x1D 开始 每个闪存分区细分为多个页, 这是可擦除的最小存储器区块 根据不同的器件型号, 页大小可以为 256 字 (1024 字节 ) 1024 字 (4096 字节 ) 或 4096 字 (16,384 字节 ) 行大小指示行编程命令可以编程的字数 每页都为 8 行, 因此页大小为 和 4096 字的器件, 其行大小分别为 和 512 字 表 5-1 显示了每款器件系列的 PFM BFM 行和页大小 BFM 的存储单元保留用作器件配置寄存器, 更多信息请参见第 18.0 节 配置存储器和器件 ID DS M_CN 第 9 页

10 表 5-1: 器件 MX 110/120/130/150/170 MX 210/220/230/250/270 MX 330/350/370/430/450/ 470 MX 320/340/360/420/440/ 460 MX 534/564/664/764 MX 575/675/695/795 MZ 0256/0512/1024/2048 代码存储区容量 行大小 ( 字 ) 页大小 ( 字 ) 引导闪存地址 ( 字节 ) ( 见注 1) 编程执行程序 ( 见注 2 和 3) x1FC x1FC00BFF (3 KB) RIPE_11_aabbcc.hex x1FC x1FC02FFF (12 KB) RIPE_06_aabbcc.hex x1FC x1FC13FFF (80 KB) RIPE_15_aabbcc.hex 注 1: 程序闪存地址范围基于程序闪存大小, 如下所示 : 0x1D x1D003FFF (16 KB) 0x1D x1D007FFF (32 KB) 0x1D x1D00FFFF (64 KB) 0x1D x1D01FFFF (128 KB) 0x1D x1D03FFFF (256 KB) 0x1D x1D07FFFF (512 KB) 0x1D x1D0FFFFF (1024 KB) 0x1D x1D1FFFFF (2048 KB) 不是每款系列均支持所有程序闪存大小 2: 编程执行程序可从 Microchip 网站的相关产品页面上获取, 或者位于下列 MPLAB X IDE 安装文件夹中 :...\Microchip\MPLABX\mplab_ide\mdbcore\modules\RI_ICD3Common 3: 文件名的最后几个字符 ( 即, aabbcc) 因文件版本而异 DS M_CN 第 10 页

11 5.2 4 线 JTAG 细节 4 线接口使用标准的 JTAG (IEEE ) 接口信号 TCK: 测试时钟 驱动数据输入 / 输出 TMS: 测试模式选择 选择工作模式 TDI: 测试数据输入 数据移入器件 TDO: 测试数据输出 数据移出器件 由于只有一条数据线可用, 所以协议必须采用串行传输方式 ( 类似于 SPI) 时钟输入位于 TCK 引脚上 执行配置的方法是通过 TMS 引脚来逐位操控状态机 在每个 TCK 时钟脉冲,TDI 和 TDO 引脚上会传入和传出一位数据 通过装入不同的指令模式, 可以读取芯片 ID 或操控芯片功能 送到 TDI 上的数据必须在 TCK 上升沿之前 ( 建立时间 ) 和之后 ( 保持时间 ) 保持一定的有效时间, 具体时间取决于芯片 TDO 数据在 TCK 下降沿之后会保持一定的有效时间, 具体时间取决于芯片, 见图 5-3 图 5-3: 4 线 JTAG 接口 TCK TMS TDI ilsb imsb TDO olsb omsb DS M_CN 第 11 页

12 5.3 2 线 ICSP 细节 在 ICSP 模式下,2 线 ICSP 信号通过时间复用的方式移入 2 线 /4 线转换模块 然后, 2 线 /4 线转换模块会对信号进行转换, 使之对于 TAP 控制器相当于一个 4 线 JTAG 端口 下列为两种可能的工作模式 : 4 相 ICSP 2 相 ICSP 相 ICSP 在 4 相 ICSP 模式下,TDI TDO 和 TMS 器件引脚在 4 个时钟内在 PGEDx 上进行复用, 请参见图 5-4 最低有效位 (Least Significant bit, LSb) 先移 ; TDI 和 TMS 在 PGECx 下降沿进行采样, 而 TDO 同时在 PGECx 下降沿进行驱动 4 相 ICSP 模式同时用于读写数据传输 相 ICSP 在 2 相 ICSP 模式下,TMS 和 TDI 器件引脚在 2 个时钟内在 PGEDx 上进行复用, 请参见图 5-5 LSb 先移 ; TDI 和 TMS 在 PGECx 下降沿进行采样 该模式下不提供 TDO 输出 2 相 ICSP 模式旨在用于加快 2 线只写事务的速度 注 : 只有到下一个数据包的第一个时钟时, 才会实际执行数据包 要进入 2 线 2 相 ICSP 模式, TDOEN 位 (DDPCON<0>) 必须设置为 0 图 5-4: 2 线 4 相 TCK TMS TDI IR0 IR4 TDO 1 X PGECx PGEDx ptdo = 1 TDI = IR0 TMS = 0 ntdo = 0 图 5-5: 2 线 2 相 TCK TMS TDI IR0 IR4 TDO 1 X PGECx PGEDx TDI = IR0 TMS = 0 DS M_CN 第 12 页

13 6.0 伪操作 为了简化编程细节的描述, 所有操作都将使用伪操作进行描述 伪代码描述中使用了几个函数 使用这些函数是为了提高伪代码的可读性 抽象出特定于实现的行为, 或者两者兼有 向伪操作传递参数时, 将使用以下语法 : 5 h0x03 发送 5 位十六进制值 3 6 b 发送 6 位二进制值 31 本节定义了这些函数, 包括以下操作 : SetMode (mode) SendCommand (command) odata = XferData (idata) odata = XferFastData (idata) odata = XferInstruction (instruction) 6.1 SetMode 伪操作 格式 : SetMode (mode) 目的 : 将 EJTAG 状态机设置为特定状态 说明 : 模式值在信号 TMS 上移入器件 TDI 设置为 0,TDO 会被忽略 限制 : 无 示例 : SetMode (6 b011111) 图 6-1: SetMode 4 线 模式 = 6 b TCK TMS TDI TDO 图 6-2: SetMode 2 线 模式 = 6 b PGECx PGEDx TDI = 0 TMS = 1 TDO = 1 TDI = 0 TMS = 0 TDO = X DS M_CN 第 13 页

14 6.2 SendCommand 伪操作 格式 : SendCommand (command) 目的 : 发送一条命令来选择特定 TAP 寄存器 说明 ( 按顺序 ): 1. 将 TMS 头部移入器件, 用于选择移位 IR 状态 2. 在将信号 TMS 保持为低电平时, 在 TDI 上将命令移入器件 3. 在将 TMS 设置为高电平时, 移入命令的最后一个最高有效位 (Most Significant bit,msb) 4. 在 TMS 上移入 TMS 尾部, 使 TAP 控制器恢复为运行 / 测试空闲状态 限制 : 无 示例 : SendCommand (5 h0x07) 图 6-3: SendCommand 4 线 TMS 头部 = 1100 命令 = 5 h0x07 命令 (MSb) + TMS = 1 TMS 尾部 = 10 TCK TMS TDI ilsb imsb TDO 1 X 图 6-4: SendCommand 2 线 (4 相 ) TMS 头部 = 1100 命令 (5 h0x07)+ TMS = 0 命令 (MSb)+ TMS = 1 TMS 尾部 = 10 PGECx PGEDx TDI = 0 TMS = 1 TDO = X TDI=iLSb TMS = 0 TDO = X TDI=iMSb TMS = 1 TDO = X TDI = 0 TMS = 1 TDO = X DS M_CN 第 14 页

15 6.3 XferData 伪操作 格式 : odata = XferData (idata) 目的 : 与通过命令选择的寄存器进行数据传输 说明 ( 按顺序 ): 1. 将 TMS 头部移入器件, 用于选择移位 DR 状态 2. 在将信号 TMS 保持为低电平时, 在 TDI/TDO 上将数据移入 / 移出器件 3. 在将 TMS 设置为高电平时, 移入 / 移出数据的最后一个 MSb 4. 在 TMS 上移入 TMS 尾部, 使 TAP 控制器恢复为运行 / 测试空闲状态 限制 : 无 示例 : odata = XferData (32 h0x12) 图 6-5: XferData 4 线 TMS 头部 = 100 数据 (32 h0x12) 数据 (MSb) + TMS = 1 TMS 尾部 = 10 TCK TMS TDI ilsb imsb TDO olsb omsb 图 6-6: XferData 2 线 (4 相 ) TMS 头部 = 100 PGECx PGEDx TDI = 0 TMS = 1 TDO = X TDI = 0 TMS = 0 TDO = X TDI = 0 TMS = 0 TDO = olsb 数据 (32 h0x12)+ TMS = 0 数据 (MSb)+ TMS 尾部 = 1 TDI = ilsb TMS = 0 TDO =... olsb+1 TDI = imsb TMS = 1 TDO = X TMS 尾部 = 10 TDI = 0 TMS = 1 TDO = X TDI = 0 TMS = 0 TDO = X DS M_CN 第 15 页

16 6.4 XferFastData 伪操作 格式 : odata = XferFastData (idata) 目的 : 从器件快速移入 / 移出 32 位的数据 说明 ( 按顺序 ): 1. 将 TMS 头部移入器件, 用于选择移位 DR 状态 注 : 对于 2 线 (4 相 ) 在最后一个时钟, 在移入 TMS 头部的同时,oPrAcc 位在 TDO 上移出 如果 opracc 的值不是 1, 则必须重复整个操作 2. 移入 PrAcc 位的输入值 ( 为 0) 注 : 对于 2 线 (4 相 ) 在该操作期间,TDO 将为输出数据的 LSb 移入输入数据的其余 31 位, 并移出输出数据的 31 位 对于输入数据的最后一位, 将设置 TMS 尾部 = 1 3. 移入 TMS 尾部 = 10, 使 TAP 控制器恢复为运行 / 测试空闲状态 限制 : 必须先发送 SendCommand (ETAP_FASTDATA) 来选择 Fastdata 寄存器, 如例 6-1 中所示 关于命令的详细说明, 请参见表 19-4 注 : 例 6-1: 只有在与 PE 进行通信时, 才使用 2 相 XferData 更多信息, 请参见第 16.0 节 编程执行程序 SendCommand // Select the Fastdata Register SendCommand(ETAP_FASTDATA) // Send/Receive 32-bit Data odata = XferFastData(32 h0x12) 图 6-7: XferFastData 4 线 TMS 头部 = 100 PrAcc 数据 (32 h0x12) 数据 (MSb)+ TMS = 1 TMS 尾部 = 10 TCK TMS TDI 0 ilsb imsb TDO 1 OLSB OMSB 图 6-8: XferFastData 2 线 (2 相 ) TMS 头部 = 100 PRACC 数据 (32 h0x12) 数据 (MSb)TMS = 1 TMS 尾部 = 10 PGECx PGEDx TDI = X TMS = 1 TDI = TDI = 0 TMS = 0 TDI= ILSB TMS = 0 MSb TMS = 1 TDI = X TMS = 1 DS M_CN 第 16 页

17 图 6-9: XferFastData 2 线 (4 相 ) TMS 头部 = 100 PGECx PGEDx TDI = 0 TMS = 1 TDO = X TDI = 0 TMS = 0 TDO = X TDI = 0 TMS = 0 TDO = opracc PrAcc 数据 (32 h0x12)+ TMS = 0 数据 (MSb)+ TMS 尾部 = 1 TDI = 0 TMS = 0 TDO = olsb TDI = ilsb TMS = 0 TDO = olsb+1 TDI = imsb TMS = 1 TDO = X TMS 尾部 = 10 TDI = 0 TMS = 1 TDO = X TDI = 0 TMS = 0 TDO = X DS M_CN 第 17 页

18 6.5 XferInstruction 伪操作 格式 : XferInstruction (instruction) 目的 : 发送由器件执行的 32 位数据 说明 : 先将指令移入器件, 然后由 CPU 执行 限制 : 器件必须处于调试模式 例 6-2: XferInstruction XferInstruction (instruction) { // Select Control Register SendCommand(ETAP_CONTROL); // Wait until CPU is ready // Check if Processor Access bit (bit 18) is set do { controlval = XferData(32 h0x0004c000); } while( PrAcc(contorlVal<18>) is not 1 ); // Select Data Register SendCommand(ETAP_DATA); // Send the instruction XferData(instruction); } // Tell CPU to execute instruction SendCommand(ETAP_CONTROL); XferData(32 h0x0000c000); DS M_CN 第 18 页

19 7.0 进入 2 线增强型 ICSP 模式 为了使用 2 线 PGEDx 和 PGECx 引脚进行编程, 必须将其使能 请注意, 可能会使用到特定器件上的可用编程引脚对, 而且它们必须成对使用 例如 PGED1 必须与 PGEC1 一起使用, 以此类推 注 : 如果使用 4 线 JTAG 接口, 则以下步骤不是必需的 进入 2 线增强型 ICSP 模式需要执行以下步骤 : 1. 将 MCLR 引脚短暂地驱动为高电平, 然后再驱动为低电平 2. 将 32 位的密钥序列在时钟控制下移入到 PGEDx 引脚 3. 然后将 MCLR 驱动为高电平并保持一段指定的时间 时序要求请参见第 20.0 节 交流 / 直流特性和时序要求 施加到 MCLR 引脚上的编程电压为 VIH, 对于 器件, 该电压实际就是 VDD 对于 VIH 没有最短保持时间的要求 在 VIH 移除后, 必须经过至少 P18 个时间间隔才能将密钥序列移入到 PGEDx 引脚 密钥序列为一个特定的 32 位模式 : ( 首字母缩写词 MCHP, 以 ASCII 表示 ) 只有在密钥序列有效时, 器件才能进入编程 / 校验模式 首先必须移入高 4 位的 MSb 一旦密钥序列完全移入, 只要继续保持为 2 线增强型 ICSP 接口, 就必须将 VIH 施加到 MCLR 上并保持该电平 必须经过至少 P19 和 P7 个时间间隔才能将数据移入到 PGEDx 引脚 在 P7 之前出现在 PGEDx 引脚上的信号被认定为无效 一旦成功进入, 就可以执行本文档后面各节中描述的编程操作了 在 2 线增强型 ICSP 模式下, 所有未用的 I/ O 引脚都被置于高阻态 注 : 进入 ICSP 模式会将器件复位, 以防止指令执行 欲释放复位, 必须执行 MCHP_DE_ASSERT_RST 命令 图 7-1: 进入增强型 ICSP 模式 MCLR P6 P14 P20 VIH VIH P19 P7 VDD PGEDx PGECx P18 编程 / 校验进入码 = 0x4D b31 b30 b29 b28 b27 b3 b2 b1 b0 P1A P1B DS M_CN 第 19 页

20 8.0 检查器件状态 在对器件进行编程之前, 编程器必须先检查器件的状态, 确保它准备好接收信息 图 8-1: 检查器件状态 SetMode (6 b011111) SendCommand (MTAP_SW_MTAP) SendCommand (MTAP_COMMAND) statusval = XferData (MCHP_STATUS) 否 将 MCLR 设置为低电平 FCBUSY = 0 CFGRDY = 1 完成 是 4 线 线接口 4 线 JTAG 编程是一种任务模式操作, 因此用于开始编程的设置序列应当在 MCLR 置为有效时执行 将器件保持在复位状态可以防止处理器执行指令或驱动端口 使用 4 线接口检查器件状态需要执行以下步骤 : 1. 将 MCLR 引脚设置为低电平 2. 通过 SetMode (6 b011111) 强制芯片 TAP 控制器进入运行测试 / 空闲状态 3. SendCommand (MTAP_SW_MTAP) 4. SendCommand (MTAP_COMMAND) 5. statusval = XferData (MCHP_STATUS) 6. 如果 CFGRDY(statusVal<3>) 不为 1 且 FCBUSY (statusval<2>) 不为 0, 则转到步骤 5 注 : 线接口 使用 2 线接口检查器件状态需要执行以下步骤 : 1. 通过 SetMode (6 b011111) 强制芯片 TAP 控制 器进入运行测试 / 空闲状态 2. SendCommand (MTAP_SW_MTAP) 3. SendCommand (MTAP_COMMAND) 4. statusval = XferData (MCHP_STATUS) 5. 如果 CFGRDY(statusVal<3>) 不为 1 且 FCBUSY (statusval<2>) 不为 0, 则转到步骤 4 注 : 如果使用 4 线接口, 则由配置字选择的振荡器源必须存在以访问闪存 在未编程器件中, 振荡器源为内部 FRC, 允许进行闪存访问 如果配置字被重新设置为选择外部振荡器源, 则其必须存在以进行闪存访问 关于使用配置字设定来选择振荡器的更多详情, 请参见具体器件数据手册的 特殊功能 章节 如果 CFGRDY 和 FCBUSY 未在 10 ms 内变为正确状态, 则说明执行的序列可能不正确或器件已损坏 DS M_CN 第 20 页

21 9.0 擦除器件 在对器件进行编程之前, 必须先进行擦除 擦除操作会向闪存中写入全 1, 并使之准备好烧写一组新数据 擦除器件之后, 可以通过执行 空白检查 操作来进行校验 更多信息, 请参见第 9.1 节 空白检查 擦除程序存储器 ( 程序 引导和配置存储区 ) 的过程包括选择 MTAP 和发送 MCHP_ERASE 命令 然后, 编程器必须通过读取并校验 MCHP_STATUS 值中的位, 等待擦除操作完成 图 9-1 显示了执行芯片擦除操作的过程 注 : 图 9-1: 器件 ID 存储单元是只读的, 不能擦除 因此, 芯片擦除对这些存储单元没有影响 擦除器件 选择 MTAP SendCommand (MTAP_SW_MTAP) 将 MTAP 置为命令模式 SendCommand (MTAP_COMMAND) 擦除目标器件需要执行以下步骤 : 1. SendCommand (MTAP_SW_MTAP) 2. SendCommand (MTAP_COMMAND) 3. XferData (MCHP_ERASE) 4. XferData (MCHP_DE_ASSERT_RST), 仅 MZ 器件 5. 延时 1 ms 6. statusval = XferData (MCHP_STATUS) 7. 如果 CFGRDY(statusVal<3>) 不为 1 且 FCBUSY (statusval<2>) 不为 0, 则转到步骤 5 注 : 9.1 空白检查 芯片擦除操作是自定时操作 如果 FCBUSY 和 CFGRDY 位未在规定的芯片擦除时间内正确设置, 则说明执行的序列可能不正确或器件已损坏 术语 空白检查 的含义是校验器件是否已被成功擦除且没有已编程的存储单元 空白或已擦除的存储单元总是读为 1 器件配置寄存器会被空白检查忽略 另外, 所有未实现的存储空间都应该被空白检查忽略 发出芯片擦除命令 XferData (MCHP_ERASE) XferData (MCHP_DE_ASSERT_RST) 仅 MZ 器件 1 ms 延时 读取擦除状态 statusval = XferData (MCHP_STATUS) 否 FCBUSY = 0 CFGRDY = 1 是 完成 DS M_CN 第 21 页

22 10.0 进入串行执行模式 在对器件进行编程之前, 必须先将器件置为串行执行模式 进入串行执行模式的过程包括验证器件未被写保护 如果器件被写保护, 则必须执行芯片擦除操作 详情请参见第 9.0 节 擦除器件 图 10-1: 进入串行执行模式 选择 MTAP SendCommand (MTAP_SW_MTAP) 将 MTAP 置为命令模式 SendCommand (MTAP_COMMAND) 读取代码保护状态 statusval = XferData (MCHP_STATUS) CPS = 1 是 否 复位置为有效 XferData (MCHP_ASSERT_RST) 选择 ETAP SendCommand (MTAP_SW_ETAP) 将 CPU 置为串行执行模式 SendCommand (ETAP_EJTAGBOOT) 无法进入必须先擦除 2 线 线接口 进入串行执行模式需要执行以下步骤 : 注 : 1. SendCommand (MTAP_SW_MTAP) 2. SendCommand (MTAP_COMMAND) 3. statusval = XferData (MCHP_STATUS) 4. 如果 CPS (statusval<7>) 不为 1, 则必须先擦 除器件 5. SendCommand (MTAP_SW_ETAP) 6. SendCommand (ETAP_EJTAGBOOT) 7. 将 MCLR 设置为高电平 线接口 假设之前的检查器件状态步骤将 MCLR 驱动为低电平 ( 见图 8-1) 进入串行执行模式需要执行以下步骤 : 1. SendCommand (MTAP_SW_MTAP) 2. SendCommand (MTAP_COMMAND) 3. statusval = XferData (MCHP_STATUS) 4. 如果 CPS (statusval<7>) 不为 1, 则必须先擦 除器件 5. XferData (MCHP_ASSERT_RST) 6. SendCommand (MTAP_SW_ETAP) 7. SendCommand (ETAP_EJTAGBOOT) 8. SendCommand (MTAP_SW_MTAP) 9. SendCommand (MTAP_COMMAND) 10. XferData (MCHP_DE_ASSERT_RST) 11. XferData (MCHP_FLASH_ENABLE) MZ EC 系列器件无需该步骤 12. SendCommand (MTAP_SW_ETAP) 选择 MTAP SendCommand (MTAP_SW_MTAP) 将 MCLR 设置为高电平 4 线 将 MTAP 置为命令模式 SendCommand (MTAP_COMMAND) 释放复位 XferData (MCHP_DE_ASSERT_RST) 使能闪存 XferData (MCHP_FLASH_EN) MZ EC 系列器件无需该步骤 选择 ETAP SendCommand (MCHP_SW_ETAP) 2 线 DS M_CN 第 22 页

23 11.0 下载编程执行程序 (PE) PE 驻留在 RAM 存储器中, CPU 通过执行它来对器件进行编程 PE 为编程器提供了一种使用简单命令集和通信协议来编程和校验 器件的机制 PE 可提供以下几项基本功能 : 读存储器 擦除存储器 对存储器编程 空白检查 读执行程序固件版本 获取闪存单元的循环冗余校验 (Cyclic Redundancy Check, CRC) PE 执行编程和校验器件所需的低级任务 这允许编程器通过发出相应的命令和数据来对器件编程 关于每条命令的详细说明, 请参见第 16.2 节 PE 命令集 PE 使用器件的数据 RAM 来存放变量和编程执行程序 运行 PE 之后, 数据 RAM 中的内容就无法确定了 将 PE 装入数据 RAM 中之后, 可以使用表 16-1 中列出的命令集对 系列进行编程 图 11-1: 下载 PE 将 PE 加载程序写入 RAM 装入 PE 将 PE 装入存储器是一个分为两步的过程 : 1. 将 PE 加载程序装入数据 RAM (PE 加载程序会将 PE 二进制文件装入数据 RAM 的适当位置, 并在完成时跳转到编程执行程序处, 并开始执行它 ) 2. 将 PE 二进制数据送到 PE 加载程序 表 11-1 列出了下载 PE 所需的步骤 表 11-1: 操作 下载 PE 操作数 步骤 1: 仅 MX 器件 : 将 BMXCON 初始化为 0x1F0040 由 内核执行的指令序列 如下 : lui a0,0xbf88 ori a0,a0,0x2000 /* address of BMXCON */ lui a1,0x1f ori a1,a1,0x40 /* $a1 has 0x1f0040 */ sw a1,0(a0) /* BMXCON initialized */ XferInstruction 0x3c04bf88 XferInstruction 0x XferInstruction 0x3c05001f XferInstruction 0x34a50040 XferInstruction 0xac 步骤 2: 仅 MX 器件 : 将 BMXDKPBA 初始化 为 0x800 由 内核执行的指令序列如 下 : li a1,0x800 sw a1,16(a0) XferInstruction 0x XferInstruction 0xac 步骤 3: 仅 MX 器件 : 将 BMXDUDBA 和 BMXDUPBA 初始化为 BMXDRMSZ 的值 由 内核执行的指令序列如下 : lw a1,64(a0) /* load BMXDMSZ */ sw a1,32(a0) sw a1,48(a0) XferInstruction 0x8C XferInstruction 0xac XferInstruction 0xac 步骤 4: 设置 PE 的 RAM 地址 由 内 核执行的指令序列如下 : lui a0,0xa000 ori a0,a0,0x800 XferInstruction 0x3c04a000 XferInstruction 0x 步骤 5: 装入 PE_Loader 重复该步骤 ( 步骤 5), 直到整个 PE_Loader 都装入 存储器为止 在操作数字段中, <PE_loader hi++> 代表表 11-2 中所列 PE 加载程序操作码的 MSb 31 至 16 类似地, <PE_loader lo++> 代表表 11-2 中所列 PE 加载程序操作码的 LSb 15 至 0 ++ 符号指示在连续执行这些操作时, 需要从表 11-2 中所列的 PE 加载程序操作码列表中传输新的字 由 内核执行的指令序列如下 : lui a2, <PE_loader hi++> ori a2,a2, <PE_loader lo++> sw a2,0(a0) addiu a0,a0,4 XferInstruction (0x3c06 <PE_loader hi++> ) DS M_CN 第 23 页

24 表 11-1: 下载 PE ( 续 ) 操作 XferInstruction (0x34c6 <PE_loader lo++> ) XferInstruction XferInstruction 0xac x 步骤 6: 跳转到 PE_Loader 由 内核执行的指令序列如下 : lui t9,0xa000 ori t9,t9,0x800 jr t9 nop XferInstruction 0x3c19a000 XferInstruction 0x XferInstruction 0x XferInstruction 0x 步骤 7: 使用 PE_Loader 装入 PE 重复该步骤 ( 步骤 7) 的最后一条指令, 直到整个 PE 都装入 存储器为止 在该步骤中, 将会提供一个 Intel Hex 格式的 PE 文件, 您需要每次分析一定数量的 32 位字并将它们传输到 存储器 ( 见附录 B: Hex 文件格式 ) 表 11-2 中列出了由 执行的指令序列 SendCommand ETAP_FASTDATA XferFastData PE_ADDRESS ( 来自 PE Hex 文件的 PE 程序块地址 ) XferFastData PE_SIZE ( 来自 PE Hex 文件的程序块 32 位字的数量 ) XferFastData 来自 PE Hex 文件的 PE 软件操作码 (PE 指令 ) 步骤 8: 跳转到 PE 幻数 (0xDEAD0000) 指示 PE_Loader, PE 已完全装入存储器中 当 PE_Loader 发现幻数时, 它会跳转到 PE XferFastData XferFastData 0x xDEAD0000 操作数 表 11-2: 操作码 PE 加载程序操作码 指令 0x3c07dead lui a3, 0xdead 0x3c06ff20 lui a2, 0xff20 0x3c05ff20 lui al, 0xff20 herel: 0x8cc40000 lw a0, 0 (a2) 0x8cc30000 lw v1, 0 (a2) 0x b beq v1, a3, <here3> 0x nop 0x1060fffb beqz v1, <here1> 0x nop here2: 0x8ca20000 lw v0, 0 (a1) 0x2463ffff addiu v1, v1, -1 0xac sw v0, 0 (a0) 0x addiu a0, a0, 4 0x1460fffb bnez v1, <here2> 0x nop 0x1000fff3 b <here1> 0x nop here3: 0x3c02a000 lui v0, 0xa000 0x ori v0, v0, 0x900 0x jr v0 0x nop DS M_CN 第 24 页

25 12.0 下载数据块 要将数据块烧写到 器件中, 必须将它装入 SRAM 12.1 不使用 PE 要在不使用 PE 的情况下烧写存储器块, 必须先将数据块写入 RAM 这种方法要求编程器传输带有嵌入 ( 立即数 ) 数据的实际机器指令, 用于将数据块写入器件内部 RAM 存储器 图 12-1: 不使用 PE 的情况下下载数据 bufaddr = RAM 缓冲区地址 下载数据块需要执行以下步骤 : 1. XferInstruction (op code) 2. 重复步骤 1, 直到最后一条指令传输到 CPU 为止 表 12-1: 操作码 下载数据操作码指令 步骤 1: 将 SRAM 基址初始化为 0xA c10a000 lui $s0, 0xA000; 步骤 2: 将要编程的整行数据写入系统 SRAM 3c08<DATA> 3508<DATA> ae08<offset> lui $t0, <DATA(31:16)>; ori $t0, <DATA(15:0)>; sw $t0, <OFFSET>($s0); // OFFSET increments by 4 步骤 3: 重复步骤 2, 直到装入一行数据为止 12.2 使用 PE 将 32 位立即数数据写入 bufaddr 递增 bufaddr 当使用 PE 时, 第 12.0 节 下载数据块 和第 13.0 节 初始化闪存行写操作 中的步骤由两条单命令处理 : ROW_PROGRAM 和 PROGRAM ROW_PROGRAM 命令对一行闪存数据进行编程, 而 PROGRAM 命令可对多行闪存数据进行编程 这两条命令都位于第 16.0 节 编程执行程序 中 否 完成 DS M_CN 第 25 页

26 13.0 初始化闪存行写操作 注 : 将一行数据下载到器件 SRAM 中之后, 必须启动编程序列来将数据块写入闪存中 关于启动闪存行写操作的操作码和指令, 请参见表 使用 PE 一些 器件提供 ECC 存储器 当使用 ECC 特性时, 闪存必须以 4 个 32 位字为一组进行编程, 且使用 4 个 32 位字对齐 如果 ECC 为动态使用, 则编程方法决定了何时使用该特性 在使用单字编程命令对字进行编程时, 不使能 ECC ECC 在以 4 字为一组进行编程或使用四字或行编程命令时使能 未遵循这些方法将在运行时导致 ECC DED 错误 关于使用和配置 ECC 的详细信息, 请参见具体器件的数据手册 当使用 PE 时, 数据会立即从 SRAM 写入闪存中 无需任何其他操作 13.2 不使用 PE 闪存写操作通过 NVMCON 寄存器进行控制 编程的执行过程如下 : 设置 NVMCON 选择写操作的类型, 并通过将 WR 控制位 (NVMCON<15>) 置 1 启动编程序列 图 13-1: 不使用 PE 的情况下启动闪存写操作 取消控制寄存器保护 选择写操作 将地址装入 NVM 寄存器 解锁闪存控制器 启动操作 完成 DS M_CN 第 26 页

27 在闪存写序列中 ( 见表 13-1), 行编程作为最合适的方法用于编程闪存 根据所用器件, 字和四字方法也适用, 并且根据您的应用程序可能会使用或需要这两种方法 更多信息, 请参见具体器件数据手册中的 闪存程序存储器 章节和 系列参考手册 中的相关章节 启动闪存写操作需要执行以下步骤 : 1. XferInstruction (op code) 2. 重复步骤 1, 直到最后一条指令传输到 CPU 为止 表 13-1: 启动用于 器件的闪存行写操作码操作码指令步骤 1: 所有 器件 : 初始化常量 寄存器 a1 a2 和 a3 分别设置为 WREN = 1 或 NVMOP<3:0> = 0011 WR = 1 和 WREN = 1 寄存器 s1 和 s2 设置为解锁数据值, s0 初始化为 c11aa c aa 3c ori a1,$0,0x4003 ori a2,$0,0x8000 ori a3,$0,0x4000 lui s1,0xaa99 ori s1,s1,0x6655 lui s2,0x5566 ori s2,s2,0x99aa lui s0,0x0000 步骤 2: 仅 MX 器件 : 设置寄存器 a0 为 NVM 寄存器的基地址 (0xBF80_F400) 3c04bf f400 lui a0,0xbf80 ori a0,a0,0xf400 步骤 2: 仅 MZ EC 器件 : 设置寄存器 a0 为 NVM 寄存器的基地址 (0xBF80_0600) 寄存器 s3 设置为用于禁止 NVMBPB 写保护的值 3c04bf lui a0,0xbf80 ori a0,a0,0x0600 ori s3,$0,0x8080 步骤 3: 仅 MZ EC 器件 : 解锁并禁止引导闪存写保护 ac ac ac sw s1,16(a0) sw s2,16(a0) sw s3,144(a0) nop 步骤 4: 所有 器件 : 使用要编程的闪存行地址设置 NVMADDR 寄存器 3c08<ADDR> 3508<ADDR> ac lui t0,<flash_row_addr(31:16)> ori t0,t0, <FLASH_ROW_ADDR(15:0)> sw t0,32(a0) 表 13-1: 启动用于 器件的闪存行写操作码 ( 续 ) 操作码指令步骤 5: 仅 MX 器件 : 使用物理源 SRAM 地址设置 NVMSRCADDR 寄存器 ( 偏移量为 64) 3610<ADDR> ac ori s0,s0,<ram_addr(15:0)> sw s0,64(a0) 步骤 5: 仅 MZ EC 器件 : 使用物理源 SRAM 地址设置 NVMSRCADDR 寄存器 ( 偏移量为 112) 3610<ADDR> ac ori s0,s0,<ram_addr(15:0)> sw s0,112(a0) 步骤 6: 所有 器件 : 为进行写操作设置 NVMCON 寄存器 ac sw a1,0(a0) delay (6 s) 步骤 7: 仅 MX 器件 : 查询 LVDSTAT 寄存器 8C fffd here1: lw t0,0(a0) andi t0,t0,0x0800 bne t0,$0,here1 nop 步骤 8: 所有 器件 : 解锁 NVMCON 寄存器并启动写操作 ac ac ac sw s1,16(a0) sw s2,16(a0) sw a2,8(a0) 步骤 9: 所有 器件 : 循环直到 WR (NVMCON<15>) 位清零 8c fffd here2: lw t0,0(a0) and t0,t0,a2 bne t0,$0,here2 nop 步骤 10: 所有 器件 : 在看到 WR (NVMCON<15>) 位为 0 后, 在写入 NVM 寄存器之前, 等待至少 500 ns 这需要在执行中插入 NOP 下列示例假设内核执行速度为 8MHz, 因此 4 条 NOP 指令等于 500 ns nop nop nop nop 步骤 11: 所有 器件 : 清零 WREN (NVMCONM<14>) 位 ac sw a3,4(a0) 步骤 12: 所有 器件 : 检查 WRERR (NVMCON<13>) 位以确定编程序列成功完成 如果发生任何错误, 将跳转到错误处理程序 8c lw t0,0(a0) andi t0,zero,0x <ERR_PROC> bne t0, $0, <err_proc_offset> nop DS M_CN 第 27 页

28 14.0 校验器件存储器 校验的步骤涉及回读代码存储空间并将读到的值与存储在编程器缓冲区中的副本作比较 使用其余代码校验配置寄存器 14.2 不使用 PE 的情况下校验存储器 读取闪存的方法是通过 Fastdata 寄存器执行一系列读访问 表 19-4 列出了 EJTAG 编程细节, 包括用于执行处理器访问操作的地址和操作码数据 注 : 由于配置寄存器包含器件代码保护位, 应在写入代码存储区后立即对其进行校验 ( 如果使能代码保护 ) 这是因为, 如果在代码保护位清零之后发生器件复位, 器件将不可读取和不可校验 图 14-2: 不使用 PE 的情况下校验存储器 读取存储单元 14.1 使用 PE 的情况下校验存储器 存储器校验使用 GET_CRC 命令来执行 表 16-2 列出了操作码和指令 校验存储单元 图 14-1: 使用 PE 的情况下校验存储器 发出校验命令 否 完成 接收响应 使用 PE 校验存储器需要执行以下步骤 : 1. XferFastData (GET_CRC) 2. XferFastData (start_address) 3. XferFastData (length) 4. valcksum = XferFastData (32 h0x00) 验证 valcksum 是否与编程器缓冲区中所保存副本的校验和匹配 校验存储器需要执行以下步骤 : 1. XferInstruction (op code) 2. 重复步骤 1, 直到最后一条指令传输到 CPU 为止 3. 验证 valread 是否与编程器缓冲区中保存的副本 匹配 4. 对于每个存储单元重复步骤 1-3 表 14-1: 校验器件操作码 操作码 指令 步骤 1: 初始化一些常量 3c13ff20 lui $s3, 0xFF20 步骤 2: 读取存储单元 3c08<ADDR> 3508<ADDR> lui $t0,<flash_word_addr(31:16)> ori $t0,<flash_word_addr(15:0)> 步骤 3: 写入 Fastdata 单元 8d ae lw $t1, 0($t0) sw $t1, 0($s3) 步骤 4: 从 Fastdata 寄存器 0xFF 读取数据 步骤 5: 重复步骤 2-4, 直到读取所有配置单元为止 DS M_CN 第 28 页

29 15.0 退出编程模式 对器件进行编程之后, 必须使器件退出编程模式, 以便开始正常执行新的程序存储器内容 线接口 通过将 VIH 从 MCLR 引脚移除可退出编程模式, 如图 15-1 所示 退出操作的惟一要求是移除 VIH 要在最后一个时钟和编程信号后的 P16 个时间间隔后进行 图 15-1: 4 线退出编程模式 线接口 通过将 VIH 从 MCLR 引脚移除可退出编程模式, 如图 15-2 所示 退出操作的惟一要求是移除 VIH 要在 PGECx 和 PGEDx 引脚上最后一个时钟和编程信号后的 P16 时间间隔后进行 图 15-2: MCLR 2 线退出编程模式 P16 P17 VIH MCLR VDD P16 VDD PGEDx PGECx VIH TCK TMS TDI TDO 退出编程模式需要执行以下步骤 : 1. SetMode (5 b11111) 2. 将 MCLR 置为有效 3. 断电 ( 如果器件已加电 ) PGEDx = 输入 使用以下步骤来退出编程模式 : 1. SetMode (5 b11111) 2. 将 MCLR 置为有效 3. 在 PGECx 上发出时钟脉冲 4. 断电 ( 如果器件已供电 ) DS M_CN 第 29 页

30 16.0 编程执行程序 注 : 编程执行 (PE) 程序包含在 MPLAB IDE 的安装中 欲下载适合您器件的 PE 文件, 请访问 Microchip 网站的相关产品页面 16.1 PE 通信 编程器和 PE 存在主从关系, 其中编程器是主编程器件, 而 PE 处于从动地位 所有通信都是由编程器以命令形式发起的 PE 每次只能接收一条命令 相应地, 在接收并处理一条命令之后, PE 会向编程器发送单个响应 线 ICSP EJTAG 速率 在增强型 ICSP 模式下, 系列器件使用内部快速 RC 振荡器作为时钟源工作, 其标称频率为 8 MHz 通信概述 编程器和 PE 使用 EJTAG 地址 数据和 Fastdata 寄存器进行通信 特别是, 编程器通过使用 Fastdata 寄存器来向 PE 传输命令和数据 编程器使用地址和数据寄存器来接收来自 PE 的响应 下面的 GetPEResponse 伪操作中显示了接收一个响应的伪操作 : 格式 : response = GetPEResponse() 目的 : 使编程器从 PE 接收 32 位的响应值 例 16-1: GetPEResponse 示例 WORD GetPEResponse() { WORD response; // Wait until CPU is ready SendCommand(ETAP_CONTROL); // Check if Processor Access bit (bit 18) is set do { controlval=xferdata(32 h0x0004c000 ); } while( PrAcc(contorlVal<18>) is not 1 ); // Select Data Register SendCommand(ETAP_DATA); // Receive Response response = XferData(0); // Tell CPU to execute instruction SendCommand(ETAP_CONTROL); XferData(32 h0x0000c000); // return 32-bit response return response; 表 16-1 中列出了编程器和 PE 之间的典型通信序列 序列在编程器向 PE 发送命令和可选的附加数据时开始, 而 PE 会执行命令 当 PE 完成命令执行时, 它会向编程器回送响应 响应中可能包含更多内容 例如, 如果编程器发送了一条 READ 命令, 则响应中将包含所读取的数据 表 16-1: PE 的通信序列 操作 操作数 步骤 1: 从编程器向 PE 发送命令和可选数据 XferFastData XferFastData.. (Command data len) optional data.. 步骤 2: 编程器读取来自 PE 的响应 GetPEResponse GetPEResponse... response response... DS M_CN 第 30 页

31 16.2 PE 命令集 表 16-2 给出了 PE 命令集的详细信息, 如每条命令的操作码 助记符和简短说明 在第 节 ROW_PROGRAM 命令 至第 节 CHANGE_CFG 命令 中详细说明了每条命令的功能 每接收到一条命令,PE 就会向编程器发送一个响应 该响应指示命令是否已被正确处理, 其中包含任何必需的响应数据或错误数据 命令格式 所有 PE 命令都具有由 32 位头和该命令所需的所有数据组成的通用格式, 请参见图 位头由用于标识命令的 16 位操作码字段和 16 位命令操作数字段组成 所使用的操作数字段因命令而异 注 : 但是, 一些命令没有操作数信息, 而操作数字段是必须发送的, 此时编程执行程序会忽略该数据 图 16-1: 命令格式 操作码 操作数 ( 可选 ) 命令数据高位字 ( 如果需要 ) 命令数据低位字 ( 如果需要 ) 操作码字段中的命令必须与表 16-2 中所列命令集中的命令匹配 如果接收到的命令与列表中的任何命令都不匹配, 则会返回 NACK 响应, 如表 16-3 中所示 PE 使用命令操作数字段来确定要读取或写入的字节数 如果该字段的值不正确, PE 将无法正确地接收命令 表 16-2: PE 命令集 操作码 助记符 说明 0x0 ROW_PROGRAM (1) 对闪存指定地址处的一行进行编程 0x1 READ 从指定地址开始读取存储器的 N 个 32 位字 (N < 65,536) 0x2 PROGRAM 从指定地址开始对闪存进行编程 0x3 WORD_PROGRAM (3) 对闪存指定地址处的一个字进行编程 0x4 CHIP_ERASE 对整个芯片进行芯片擦除 0x5 PAGE_ERASE 从指定地址开始擦除代码存储区中的页 0x6 BLANK_CHECK 空白检查代码 0x7 EXEC_VERSION 读取 PE 软件版本 0x8 GET_CRC 获取闪存的 CRC 0x9 PROGRAM_CLUSTER 对指定地址编程指定的字节数 0xA GET_DEVICEID 返回器件的硬件 ID 0xB CHANGE_CFG (2) 由探针用来为 PE 设置不同的配置设定 0xC GET_CHECKSUM 获取闪存的校验和 0xD QUAD_WORD_PGRM (4) 在指定地址对闪存进行 4 字编程 注 1: 关于每个器件的行大小, 请参见表 5-1 2: MX1XX/2XX 系列器件上不具备该命令 3: MZ EC 系列器件上集成了 ECC, WORD_PROGRAM 命令将不会生成 ECC 奇偶校验位 在 ECC 使能 时, 读取由 WORD_PROGRAM 命令编程的存储单元将导致 DED 故障 4: 该命令仅在 MZ EC 系列器件上可用 DS M_CN 第 31 页

32 响应格式 表 16-3 给出了 PE 响应集 所有 PE 响应都具有由 32 位头和该响应所需的所有数据组成的通用格式 ( 见图 16-2) 图 16-2: 响应格式 上一条命令 响应码 Data_High_1 Data_Low_1 Data_High_N Data_Low_N Last_Cmd 字段 Last_Cmd 是响应的第一个字中的 16 位字段, 该字段指示 PE 处理的命令 它可用于验证 PE 是否正确接收到编程器发送的命令 响应码 响应码指示上一条命令是成功还是失败, 还是命令为无法识别的值 表 16-3 中列出了响应码的值 表 16-3: 响应值 操作码 助记符 说明 0x0 PASS 命令已成功处理 0x2 FAIL 命令未成功处理 0x3 NACK 命令未知 可选数据 对于某些命令 ( 例如读操作 ), 响应头后面可能会跟随可选数据 可选数据的 32 位字的数量会因上一个命令操作及其参数而不同 ROW_PROGRAM 命令 ROW_PROGRAM 命令指示 PE 对位于指定地址的一行数据进行编程 要编程到存储区中的数据位于命令字 Data_1 至 Data_N 中, 且必须使用表 16-4 给出的指令字打包格式对它们进行编排 ( 该命令预期一整行数据 ) 图 16-3: ROW_PROGRAM 命令 操作码 操作数 Addr_High Addr_Low Data_High_1 Data_Low_1 Data_High_N Data_Low_N 表 16-4: ROW_PROGRAM 格式 字段 说明 操作码 0x0 操作数 未使用 Addr_High 32 位目标地址的高 16 位 Addr_Low 32 位目标地址的低 16 位 Data_High_1 高 16 位数据字 1 Data_Low_1 低 16 位数据字 1 Data_High_N 高 16 位数据字 2 至 N Data_Low_N 低 16 位数据字 2 至 N 预期的响应 ( 单字 ): 图 16-4: ROW_PROGRAM 响应 上一条命令 响应码 DS M_CN 第 32 页

33 READ 命令 READ 命令指示 PE 读取存储器中从 Addr_Low 和 Addr_High 字段指定的 32 位地址开始的多个 32 位字 ( 字数由操作数字段指定 ) 该命令可用于读取闪存和配置字 作为对该命令的响应, 返回的所有数据使用表 16-5 中所示的数据打包格式 图 16-5: READ 命令 操作码 操作数 Addr_High Addr_Low 表 16-5: 字段操作码操作数 Addr_Low Addr_High READ 格式 说明 0x1 要读取的 32 位字的数量 N ( 最大为 65,535) 32 位源地址的低 16 位 32 位源地址的高 16 位 预期的响应 : 图 16-6: READ 响应 上一条命令 响应码 Data_High_1 Data_Low_1 Data_High_N Data_Low_N 注 : 读取未实现存储区将导致 PE 复位 请确保只访问在特定器件中存在的存储单元 DS M_CN 第 33 页

34 PROGRAM 命令 PROGRAM 命令指示 PE 对由 Addr_Low 和 Addr_High 字段指定的 32 位地址开始的程序闪存 ( 包括配置字 ) 进行编程 32 位的长度字段指定要编程的字节数 地址必须与闪存行大小边界对齐, 且长度必须为闪存行大小的倍数 闪存行大小为 32 字 (128 字节 ) 或 128 字 (512 字节 ), 请参见表 5-1 图 16-7: PROGRAM 命令 操作码 操作数 Addr_High Addr_Low Length_High Length_Low Data_High_1 Data_Low_1 Data_High_N Data_Low_N 表 16-6: 字段 操作码操作数 Addr_Low Addr_High Length_Low Length_High Data_Low_N Data_High_N PROGRAM 格式 0x2 未使用 说明 32 位目标地址的低 16 位 32 位目标地址的高 16 位 长度的低 16 位 长度的高 16 位 低 16 位数据字 2 至 N 高 16 位数据字 2 至 N 存在以下三种编程情形 : 编程数据的长度为闪存单行大小 编程数据的长度为闪存两行大小 编程数据的长度大于闪存两行大小 当数据长度等于 512 字节时,PE 会接收来自探针的 512 字节数据块, 并立即将该命令的响应回送给探针 PE 将响应其接收到的每行数据 如果命令的数据长度等于单行, 会产生单个 PE 响应 如果数据长度等于两行, 则 PE 会等待两行数据都接收到后, 为每个数据行发送背对背响应 如果数据长度大于两行, PE 将在接收到前两行数据后为第一行发送响应 后续响应将在接收到后续数据行数据包后发出 响应将使数据滞后一行 当接收到最后一行数据后, PE 将依次对倒数第二行数据和最后一行数据发出背对背响应 如果 PE 在烧写任意数据块时遇到错误, 它会向探针发送失败状态并中止 PROGRAM 命令 在接收到失败状态时, 探针必须停止发送数据 PE 将不会处理来自探针的 对应于该命令的任何其他数据 图 16-9 给出了该过程的图示 注 : 如果 PROGRAM 命令失败, 编程器应使用 READ 命令从闪存中读取发生失败的行 接着, 编程器应将从闪存中接收到的行与其本地副本逐字进行比较, 以确定闪存编程发生失败的地址 该命令的响应与其他命令的响应稍有不同 响应的 16 个 MSb 中将包含目标地址 ( 最后一个数据块的编程位置 ) 的 16 个 LSb 这可以帮助探针和 PE 维持发送和接收数据及响应的正确同步 预期的响应 ( 单字 ): 图 16-8: PROGRAM 响应 最后一个数据块的目标地址的低 16 位 响应码 DS M_CN 第 34 页

35 图 16-9: PROGRAM 命令算法 开始 数据长度等于单行 数据长度等于两行 数据长度大于两行 发送一行数据 发送第一行数据 发送第一行数据 接收状态 ( 目标地址状态值的低 16 位 ) 发送第二行数据 发送第二行数据 接收行 1 的状态 接收行 1 的状态 接收行 2 的状态 发送第三行数据 接收行 2 的状态 发送第 N 行数据 接收行 N-1 的状态 接收行 N 的状态 完成 DS M_CN 第 35 页

36 WORD_PROGRAM 命令 WORD_PROGRAM 命令指示 PE 对位于指定地址的一个 32 位数据字进行编程 图 16-10: WORD_PROGRAM 命令 操作码 操作数 Addr_High Addr_Low Data_High Data_Low 表 16-7: 字段 操作码操作数 Addr_High Addr_Low Data_High Data_Low WORD_PROGRAM 格式 0x3 未使用 说明 32 位目标地址的高 16 位 32 位目标地址的低 16 位 高 16 位数据字 低 16 位数据字 CHIP_ERASE 命令 CHIP_ERASE 命令用于擦除整个芯片, 包括配置块 执行擦除操作之后, 整个闪存将包含 0xFFFFFFFF 图 16-12: CHIP_ERASE 命令 操作码 操作数 表 16-8: 字段 操作码操作数 Addr_Low Addr_High 预期的响应 ( 单字 ): CHIP_ERASE 格式 0x4 未使用 说明 32 位目标地址的低 16 位 32 位目标地址的高 16 位 图 16-13: CHIP_ERASE 响应 上一条命令 响应码 预期的响应 ( 单字 ): 图 16-11: WORD_PROGRAM 响应 上一条命令 响应码 DS M_CN 第 36 页

37 PAGE_ERASE 命令 PAGE_ERASE 命令用于从指定基址开始, 擦除代码存储区的指定页数 根据不同的器件, 所指定的基址必须为 0x400 或 0x100 的倍数 执行擦除操作之后, 代码存储区的所有目标字将包含 0xFFFFFFFF 图 16-14: PAGE_ERASE 命令 操作码 操作数 Addr_High Addr_Low 表 16-9: 字段 操作码操作数 Addr_Low Addr_High 预期的响应 ( 单字 ): PAGE_ERASE 格式 0x5 要擦除的页数 说明 32 位目标地址的低 16 位 32 位目标地址的高 16 位 图 16-15: PAGE_ERASE 响应 上一条命令 响应码 BLANK_CHECK 命令 BLANK_CHECK 命令查询 PE 以确定代码存储区和代码保护配置位 (GCP 和 GWRP) 的内容是否为空白 ( 包含全 1) 图 16-16: BLANK_CHECK 命令 操作码 操作数 Addr_High Addr_Low Length_High Length_Low 表 16-10: 字段 操作码操作数地址长度 BLANK_CHECK 格式 预期的响应 ( 空白器件的单字 ): 说明 0x6 未使用空白检查的起始地址要检查的程序存储单元数量 ( 以字节为单位 ) 图 16-17: BLANK_CHECK 响应 上一条命令 响应码 DS M_CN 第 37 页

38 EXEC_VERSION 命令 EXEC_VERSION 查询存储在 RAM 中的 PE 软件的版本 图 16-18: EXEC_VERSION 命令 操作码 操作数 表 16-11: EXEC_VERSION 格式 字段 说明 操作码 0x7 操作数 未使用 预期的响应 ( 单字 ): 图 16-19: EXEC_VERSION 响应 上一条命令 版本号 GET_CRC 命令 GET_CRC 使用表查询方法, 计算从指定地址开始 大小等于指定长度的缓冲区的 CRC CRC 细节如下 : CRC-CCITT, 16 位 多项式 :X^16+X^12+X^5+1, 十六进制 0x 种子 :0xFFFF 最高有效字节 (Most Significant Byte,MSB) 先移入注 1: 在响应中, 只有 CRC 的低 16 位是有效的 2: PE 将自动确定硬件 CRC 是否可用并默认使用它 MX1XX/2XX 系列器件不使用硬件 CRC 图 16-20: GET_CRC 命令 操作码 操作数 Addr_High Addr_Low Length_High Length_Low 表 16-12: 字段操作码操作数地址长度 GET_CRC 格式 0x8 未使用 说明 计算 CRC 的起始地址计算 CRC 的缓冲区的长度 ( 以字节为单位 ) 预期的响应 ( 双字 ): 图 16-21: GET_CRC 响应 上一条命令 响应码 CRC_High CRC_Low DS M_CN 第 38 页

39 PROGRAM_CLUSTER 命令 PROGRAM_CLUSTER 用于向指定地址烧写指定的字节数 地址必须 32 位对齐, 并且字节数必须为 32 位字的倍数 图 16-22: PROGRAM_CLUSTER 命令 操作码 操作数 Addr_High Addr_Low Length_High Length_Low 表 16-13: PROGRAM_CLUSTER 格式 字段 说明 操作码 0x9 操作数 未使用 地址 编程的起始地址 长度 编程的区域长度 ( 以字节为单位 ) GET_DEVICEID 命令 GET_DEVICEID 命令返回器件的硬件 ID 图 16-24: GET_DEVICEID 命令 操作码 操作数 表 16-14: GET_DEVICEID 格式 字段 说明 操作码 0xA 操作数 未使用 预期的响应 ( 单字 ): 图 16-25: GET_DEVICEID 响应 上一条命令 器件 ID 注 : 如果 PROGRAM_CLUSTER 命令失败, 编程器应使用 READ 命令从闪存中读取发生失败的行 接着, 编程器应将从闪存中接收到的行与其本地副本逐字进行比较, 以确定闪存编程发生失败的地址 预期的响应 ( 单字 ): 图 16-23: PROGRAM_CLUSTER 响应 上一条命令 响应码 DS M_CN 第 39 页

40 CHANGE_CFG 命令 CHANGE_CFG 供探针用于设置 PE 的各种配置设置 当前, 单个配置设置决定 PE 应使用以下何种计算方法 : 软件 CRC 计算方法 硬件计算方法 图 16-26: CHANGE_CFG 命令 操作码 操作数 CRCFlag_High CRCFlag_Low 表 16-15: 字段 操作码操作数 CRCFlag 预期的响应 ( 单字 ): CHANGE_CFG 格式 0xB 未使用 说明 如果值为 0, 则 PE 使用软件 CRC 计算方法 如果值为 1, 则 PE 使用硬件 CRC 单元来计算 CRC 图 16-27: CHANGE_CFG 响应 上一条命令 响应码 GET_CHECKSUM 命令 GET_CHECKSUM 返回所有从地址参数开始到长度参数结束的所有字节之和 结果为一个 32 位字 图 16-28: CHANGE_CFG 命令 操作码 操作数 Addr_High Addr_Low Length_High Length_Low 表 16-16: 字段 操作码操作数 Addr_High Addr_Low Length_High Length_Low 预期的响应 ( 单字 ): GET_CHECKSUM 格式 0x0C 未使用 说明 用于计算校验和的 32 位数据起始地址的高 16 位 用于计算校验和的 32 位数据起始地址的低 16 位 用于计算校验和的 32 位数据长度的高 16 位 ( 以字节为单位 ) 用于计算校验和的 32 位数据长度的低 16 位 ( 以字节为单位 ) 注 : MX1XX/2XX 器件不具有 CHANGE_CFG 命令 图 16-29: GET_CHECKSUM 响应 上一条命令 响应码 Checksum_High Checksum_Low DS M_CN 第 40 页

41 QUAD_WORD_PROGRAM 命令 QUAD_WORD_PROGRAM 指示 PE 在指定地址编程 4 个 32 位字 地址必须在四字边界对齐 (bit 0-1 必须为 0) 否则, 命令将返回一个失败 (FAIL) 响应值且不会编程数据 图 16-30: QUAD_WORD_PROGRAM 命令 操作码 操作数 Addr_High Addr_Low Data0_High Data0_Low Data1_High Data1_Low Data2_High Data2_Low Data3_High Data3_Low 表 16-17: QUAD_WORD_PROGRAM 格式 字段 说明 操作码 0x0D 操作数 未使用 Addr_High 32 位起始地址的高 16 位 Addr_Low 32 位起始地址的低 16 位 Data0_High 数据字 0 的高 16 位 Data0_Low 数据字 0 的低 16 位 Data1_High 数据字 1 的高 16 位 Data1_Low 数据字 1 的低 16 位 Data2_High 数据字 2 的高 16 位 Data2_Low 数据字 2 的低 16 位 Data3_High 数据字 3 的高 16 位 Data3_Low 数据字 3 的低 16 位 预期的响应 ( 单字 ): 图 16-31: QUAD_WORD_PROGRAM 响应 上一条命令 响应码 DS M_CN 第 41 页

42 17.0 校验和 17.1 原理 校验和的计算方式为 : 将程序闪存 引导闪存 ( 器件配置字除外 ) 带适用掩码的器件 ID 寄存器, 以及带适用掩码的器件配置字中的所有字节 (8 位量 ) 相加, 得到一个 32 位的相加和 然后, 计算该相加和的二进制补码 这个最终的 32 位数字就是校验和 17.2 掩码值 器件配置的掩码值通过将所有未实现位设置为 0, 所有已实现位设置为 1 而计算得到 例如, 寄存器 17-1 显示了 MX360F512L 器件的 DEVCFG0 寄存器 该寄存器的掩码值为 : mask_value_devcfg0 = 0x110FF00B 表 17-1 列出了要在校验和计算中使用的 4 个器件配置寄存器和器件 ID 寄存器的掩码值 寄存器 17-1: 位范围 31:24 23:16 15:8 7:0 Bit 31/23/15/7 MX360F512L 的 DEVCFG0 寄存器 Bit 30/22/14/6 Bit 29/21/13/5 Bit 28/20/12/4 Bit 27/19/11/3 Bit 26/18/10/2 Bit 25/17/9/1 Bit 24/16/8/0 r-0 r-1 r-1 R/P-1 r-1 r-1 r-1 R/P-1 CP BWP r-1 r-1 r-1 r-1 R/P-1 R/P-1 R/P-1 R/P-1 PWP19 PWP18 PWP17 PWP16 R/P-1 R/P-1 R/P-1 R/P-1 r-1 r-1 r-1 r-1 PWP15 PWP14 PWP13 PWP12 r-1 r-1 r-1 r-1 R/P-1 r-1 R/P-1 R/P-1 ICESEL DEBUG<1:0> 图注 : P = 可编程位 r = 保留位 R = 可读位 W = 可写位 U = 未实现位, 读为 0 -n =POR 时的值 1 = 置 1 0 = 清零 x = 未知 DS M_CN 第 42 页

43 表 17-1: 当前支持的 器件的器件配置寄存器的掩码值 器件系列闪存大小 (KB) DEVCFG0 DEVCFG1 DEVCFG2 DEVCFG3 DEVID MX 110/120/130/150 MX 170 MX 210/220/230/250 MX 270 MX 320/340/360 MX 330/350/370 MX 420/440/460 MX 430/450/470 MZ 0256/0512/1024/2048 MX 534/564 MX 575 MX 664 MX 675/695 MX 764 MX 775/795 16, 32, 64, 128 0x1100FC1F 0x03DFF7A7 0x xF x0FFFFFFF 256 0x1107FC1F 0x03DFF7A7 0x xF xFFFFFFFF 16, 32, 64, 128 0x1100FC1F 0x03DFF7A7 0x xF x0FFFFFFF 256 0x1107FC1F 0x03DFF7A7 0x xF xFFFFFFFF 32, 64, 128, 256, 512 0x110FF00B 0x009FF7A7 0x x x000FF000 64, 128, 256, 512 0x110FF01F 0x03DFF7A7 0x x x0FFFFFFF 32, 64, 128, 256, 512 0x110FF00B 0x009FF7A7 0x x x000FF000 64, 128, 256, 512 0x110FF01F 0x03DFF7A7 0x xF x0FFFFFFF 256, 512, 1024, x7FFFFFFF 0xFFFFFFFF 0xFFFFFFF F 0xFFFF0000 0x0FFFFFFF 64, 128 0x110FF00F 0x009FF7A7 0x xC x0FFFF , 512 0x110FF00F 0x009FF7A7 0x xC x000FF000 64, 128 0x110FF00F 0x009FF7A7 0x xC x0FFFF , 512 0x110FF00F 0x009FF7A7 0x xC x000FF x110FF00F 0x009FF7A7 0x xC x0FFFF , 512 0x110FF00F 0x009FF7A7 0x xC x000FF000 DS M_CN 第 43 页

44 17.3 算法 图 17-1 给出了计算 器件校验和的高级算法的示例, 以说明一种用于得到校验和的方法 这只是一个说明可以如何实现实际计算的示例, 最终使用的方法由软件开发人员自行决定 如前面所述, 校验和的计算方式为 : 将程序闪存 引导闪存 ( 器件配置字除外 ) 带适用掩码的器件 ID 寄存器, 以及带适用掩码的器件配置字中的所有字节 (8 位量 ) 相加, 得到一个 32 位的相加和 然后, 计算该相加和的补码 这个最终的 32 位数字就是校验和 器件配置和器件 ID 寄存器的掩码值根据前一节第 17.2 节 掩码值 中介绍的方式得到 在将这些寄存器的字节加到校验和之前, 需要使用相应的掩码值对这些器件配置寄存器值执行算术与运算 类似地, 在将器件 ID 寄存器的字节加到校验和之前, 需要使用相应的掩码值对器件 ID 寄存器值执行算术与运算, 更多信息请参见第 18.0 节 配置存储器和器件 ID 图 17-1: 校验和计算的高级算法 pic32_checksum 在 tempbuffer 中读取程序闪存 引导闪存 ( 包括 DEVCFG 寄存器 ) 和 DEVID 寄存器 对 tempbuffer 中的相应单元应用 DEVCFG 和 DEVID 掩码 tmpchecksum (32 位量 ) = 0 完成 tempbuffer 中所有字节 (8 位量 ) 的处理? 否 tmpchecksum = tempchecksum + tmpbuffer 中的当前字节值 (8 位量 ) 是 校验和 (32 位量 ) = tmpchecksum 的补码 完成 DS M_CN 第 44 页

45 公式 17-1 给出了用于计算 器件校验和的公式 公式 17-1: 校验和公式 DCR DIR = Checksum 校验和 = PF + BF + DCR + DIR 的二进制补码 其中, PF = 程序闪存中所有字节的 32 位相加和 BF = 引导闪存 ( 器件配置寄存器除外 ) 中所有字节的 32 位相加和 3 字节的 Þ ¾ µƒ32œªœ º ½Õ 位相加和 MASK DEVCFGX & DEVCFGx X = 0 = 字节的 Þ ¾ µƒ32œªœ º ½Õ 位相加和 (MASK DEVID && DEVID) MASK DEVCFGX = 来自表 17-1 的掩码值 MASK DEVID = 来自表 17-1 的掩码值 17.4 校验和计算示例 以下 5 节说明了如何使用公式 17-1 来计算 MX360F512L 器件的校验和 对于该校验和计算示例, 进行了以下假设 : 程序闪存和引导闪存处于已擦除状态 ( 所有字节均为 0xFF) 器件配置处于器件的默认状态 ( 未进行任何配置更改 ) 需要单独计算公式右侧的每一项 (PF BF DCR 和 DIR) 得到这些值之后, 可以计算校验和的最终值 计算校验和公式中的 PF 程序闪存的大小为 512 KB, 等于 字节 由于假设程序闪存处于已擦除状态, 所以 PF 的值可以通过以下算式求解 : PF = 0xFF + 0xFF 次 PF = 0x7F80000 (32 位数字 ) 计算校验和公式中的 BF 引导闪存的大小为 12 KB, 等于 字节 但是, 最后 16 字节是器件配置寄存器, 需要对它们单独进行处理 因此, 在此步骤中考虑的引导闪存字节数为 由于假设引导闪存处于已擦除状态, 所以 BF 的值可以通过以下算式求解 : BF = 0xFF + 0xFF 次 BF = 0x002FC010 (32 位数字 ) 计算校验和公式中的 DCR 由于器件配置寄存器处于它们的默认状态, 所以基于相应的 DEVCFG 寄存器的值 ( 由 内核读取 ) 它相应的掩码值 应用掩码之后得到的值, 以及字节的 32 位相加和 ( 表 17-2 中列出了全部这些值 ), 可以得到字节的 32 位相加和的总和 根据表 17-2, DCR 的值为 : DCR = 0x000003D6 (32 位数字 ) 表 17-2: DCR 计算示例 寄存器 POR 默认值 掩码 POR 默认值和掩码 字节的 32 位相加和 DEVCFG0 0x7FFFFFFF 0x110FF00B 0x110FF00B 0x B DEVCFG1 0xFFFFFFFF 0x009FF7A7 0x009FF7A7 0x D DEVCFG2 0xFFFFFFFF 0x x x E DEVCFG3 0xFFFFFFFF 0x x x 字节 32 位相加和的总和 = 0x000003D6 DS M_CN 第 45 页

46 计算校验和公式中的 DIR 表 17-3 中列出了器件 ID 寄存器的值 其掩码值 应用掩码之后得到的值, 以及字节的 32 位相加和 根据表 17-3, DIR 的值为 : DIR = 0x (32 位数字 ) 表 17-3: DIR 计算示例 寄存器 POR 默认值 掩码 POR 默认值和掩码 字节的 32 位相加和 DEVID 0x x000FF000 0x x 完成 校验和计算 在前面几节中得到的值 (PF BF DCR 和 DIR) 用于计算校验和值 对前面几节中得到的 PF BF DCR 和 DIR 执行 32 位加法, 并将结果存储到名为 temp 的变量中, 如例 17-1 中所示 例 17-1: 校验和计算过程 1. 首先, temp = PF + BF + DCR + DIR, 它转换为 : temp = 0x7F x002FC x000003D6 + 0x 全部 4 个值相加得到 temp 等于 0x0827C 接着, 计算 temp 的反码, 命名为 temp1: temp1 = (temp) 的反码, 现在它等于 0xF7D83B96 4. 最后, temp 的补码为校验和 : 校验和 = (temp) 的补码 ; 即, 校验和 = temp1 + 1, 得到 0xF7D83B 器件被代码保护时的校验和值 由于在 器件处于代码保护状态时, 器件配置字不可读, 所以校验和对于所有器件均为 0 DS M_CN 第 46 页

47 18.0 配置存储器和器件 ID 器件具有几项特殊的功能旨在最大限度地提高应用的灵活性和可靠性, 并通过减少外部元件将成本降至最低 这些功能可通过特定的配置位对每个器件进行配置 关于功能可用性 配置位和器件 ID 寄存器的完整列表, 请参见具体器件数据手册中的 特殊功能 章节 关于具体器件的器件 ID 和版本号的完整列表, 请见表 器件配置 在 器件中, 配置字可用于选择各种器件配置, 这些配置字在器件复位时在执行任何代码之前设置 这些值位于引导闪存 (BFM) 的最高单元, 由于它们是程序存储器的一部分, 因而他们与可执行代码和程序常量一起包含在编程文件中 这些配置字的名称和单元列于表 18-1 至表 18-3 中 在编程期间, 配置字最多可以编程两次 ( 针对 MX 器件 ) 和一次 ( 针对 MZ EC 器件 ), 之后就必须执行页擦除操作 编程配置字之后, 器件复位将使新值加载到配置寄存器中 因此, 编程器应在 器件之前编程配置字 最后一步是编程代码保护配置字 这些配置字确定振荡器源 如果使用 2 线增强型 ICSP 模式, 将忽略配置字且器件将始终使用 FRC ; 然而 4 线模式不同 如果复位后配置字选择的振荡器源在器件上不存在, 则编程器在复位后将不能够在器件上执行闪存操作 关于使用配置字选择振荡器的详细信息, 请参见具体器件数据手册的 特殊功能 章节 此外, 表 18-3 包含了用于具有双引导和双分区闪存的 MZ EC 系列器件的配置字 关于双引导区域的详细说明, 请参见 系列参考手册 中的第 48 章 存储器构成和权限 (DS ) 表 18-1: DEVCFG 单元配置字 DEVCFG0 DEVCFG1 DEVCFG2 DEVCFG3 物理地址 0x1FC02FFC 0x1FC02FF8 0x1FC02FF4 0x1FC02FF0 表 18-2: 仅针对 MX1X0 和 MX20X 器件的 DEVCFG 单元 配置字 物理地址 DEVCFG0 0x1FC00BFC DEVCFG1 0x1FC00BF8 DEVCFG2 0x1FC00BF4 DEVCFG3 0x1FC00BF0 在发生上电复位 (Power-on Reset, POR) 或任意复位时, 这些配置字将从引导闪存复制到相应的配置寄存器中 配置位只能编程为 = 0 ( 未编程状态 = 1) DS M_CN 第 47 页

48 表 18-3: 配置字 ( 见注 1) 针对 MZ EC 系列器件的配置字单元 固定引导区域 1 固定引导区域 2 寄存器物理地址 活动引导别名区域 ( 见注 2) 非活动引导别名区域 ( 见注 2) 引导序号 0x1FC4FFF0 0x1FC6FFF0 0x1FC0FFF0 0x1FC2FFF0 代码保护 0x1FC4FFD0 0x1FC6FFD0 0x1FC0FFD0 0x1FC2FFD0 DEVCFG0 0x1FC4FFCC 0x1FC6FFCC 0x1FC0FFCC 0x1FC2FFCC DEVCFG1 0x1FC4FFC8 0x1FC6FFC8 0x1FC0FFC8 0x1FC2FFC8 DEVCFG2 0x1FC4FFC4 0x1FC6FFC4 0x1FC0FFC4 0x1FC2FFC4 DEVCFG3 0x1FC4FFC0 0x1FC6FFC0 0x1FC0FFC0 0x1FC2FFC0 备用引导序号 0x1FC4FF70 0x1FC6FF70 0x1FC0FF70 0x1FC2FF70 备用代码保护 0x1FC4FF50 0x1FC6FF50 0x1FC0FF50 0x1FC2FF50 备用 DEVCFG0 0x1FC4FF4C 0x1FC6FF4C 0x1FC0FF4C 0x1FC2FF4C 备用 DEVCFG1 0x1FC4FF48 0x1FC6FF48 0x1FC0FF48 0x1FC2FF48 备用 DEVCFG2 0x1FC4FF44 0x1FC6FF44 0x1FC0FF44 0x1FC2FF44 备用 DEVCFG3 0x1FC4FF40 0x1FC6FF40 0x1FC0FF40 0x1FC2FF40 注 1: 下列配置字组均须采用 QUAD_WORD_PROGRAM 命令进行编程, 以确保正确的 ECC 配置 : 引导序号 ( 单四字编程操作 ) 代码保护 ( 单四字编程操作 ) DEVCFG3 DEVCFG2 DEVCFG1 和 DEVCFG0 ( 单四字编程操作 ) 备用引导序号 ( 单四字编程操作 ) 备用代码保护 ( 单四字编程操作 ) 备用 DEVCFG3 备用 DEVCFG2 备用 DEVCFG1 和备用 DEVCFG0 ( 单四字编程操作 ) 2: 活动 / 非活动引导别名选择假设用于未编程器件, 其中固定区域 1 为活动, 固定区域 2 为非活动 关于别 名引导区域的详细说明, 请参见 系列参考手册 中的第 48 章 存储器构成和权限 (DS ) DS M_CN 第 48 页

49 配置寄存器保护 为了防止在代码执行期间配置位被意外更改, 所有的可编程配置位只可被写入一次 在上电周期内对一个位进行初始化编程之后就不能再次写该位了 更改器件配置时, 需要先更改引导闪存中的配置数据, 然后关闭再打开器件电源 为了确保 128 位数据的完整性, 器件会不断在每个配置位和其存储补码之间进行比较 如果检测到不匹配, 将会产生配置不匹配复位, 导致器件复位 DS M_CN 第 49 页

50 表 18-4: 器件 ID 和版本 器件 DEVID 寄存器值 版本 ID 和硅片版本 MX110F016B 0x04A07053 MX110F016C 0x04A09053 MX110F016D 0x04A0B053 MX120F032B 0x04A06053 MX120F032C 0x04A08053 MX120F032D 0x04A0A053 MX130F064B 0x04D07053 MX130F064C 0x04D09053 MX130F064D 0x04D0B053 MX150F128B 0x04D06053 MX150F128C 0x04D08053 MX150F128D 0x04D0A053 MX210F016B 0x04A01053 MX210F016C 0x04A03053 MX210F016D 0x04A05053 MX220F032B 0x04A00053 MX220F032C 0x04A02053 MX220F032D 0x04A04053 MX230F064B 0x04D01053 MX230F064C 0x04D03053 MX230F064D 0x04D x0 A0 版本 MX250F128B 0x04D00053 MX250F128C 0x04D02053 MX250F128D 0x04D04053 MX330F064H 0x MX330F064L 0x MX430F064H 0x MX430F064L 0x MX350F128H 0x0570C053 MX350F128L 0x0570D053 MX450F128H 0x0570E053 MX450F128L 0x0570F053 MX350F256H 0x MX350F256L 0x MX450F256H 0x MX450F256L 0x MX370F512H 0x MX370F512L 0x MX470F512H 0x0580A053 MX470F512L 0x0580B053 DS M_CN 第 50 页

51 表 18-4: 器件 ID 和版本 ( 续 ) MX360F512L MX360F256L MX340F128L MX320F128L MX340F512H MX340F256H MX340F128H MX320F128H MX320F064H MX320F032H MX460F512L MX460F256L MX440F128L MX440F256H MX440F512H MX440F128H MX420F032H MX534F064H MX534F064L MX564F064H MX564F064L MX564F128H MX564F128L MX575F256H MX575F256L MX575F512H MX575F512L MX664F064H MX664F064L MX664F128H MX664F128L MX675F256H MX675F256L MX675F512H MX675F512L MX695F512H MX695F512L MX764F128H MX764F128L MX775F256H MX775F256L MX775F512H MX775F512L MX795F512H MX795F512L 器件 DEVID 寄存器值版本 ID 和硅片版本 0x x x092D053 0x092A053 0x x x090D053 0x090A053 0x x x x x096D053 0x x x094D053 0x x x440C053 0x x440D053 0x x440F053 0x x x x430F053 0x x x x x430B053 0x x430C053 0x x x x440B053 0x x x x430D053 0x x430E053 0x x3 B2 版本 0x4 B3 版本 0x5 B4 版本 0x5 B6 版本 0x0 A0 版本 0x1 A1 版本 DS M_CN 第 51 页

52 表 18-4: 器件 ID 和版本 ( 续 ) 器件 DEVID 寄存器值 版本 ID 和硅片版本 MZ1024ECG064 0x MZ1024ECG100 0x0510D053 MZ1024ECG124 0x MZ1024ECG144 0x MZ1024ECH064 0x MZ1024ECH100 0x MZ1024ECH124 0x0511C053 MZ1024ECH144 0x MZ2048ECG064 0x MZ2048ECG100 0x0510E053 MZ2048ECG124 0x MZ2048ECG144 0x MZ2048ECH064 0x x3 A3 版本 MZ2048ECH100 0x MZ2048ECH124 0x0511D053 MZ2048ECH144 0x MZ1024ECM064 0x MZ2048ECM064 0x MZ1024ECM100 0x0513A053 MZ2048ECM100 0x0513B053 MZ1024ECM124 0x MZ2048ECM124 0x MZ1024ECM144 0x0514E053 MZ2048ECM144 0x0514F053 DS M_CN 第 52 页

53 18.2 器件代码保护位 (CP) 系列器件具有代码保护功能, 使能时可防止外部编程设备读取闪存 一旦使能代码保护, 只能通过芯片擦除命令 (MCHP_ERASE) 擦除器件来禁止 当编程器件选择使用代码保护时, 编程器件必须在使能代码保护之前执行校验 使能代码保护应该是编程流程的最后一个步骤 代码保护使能位位置因器件而异 详情请参见具体器件数据手册的 特殊功能 章节 注 : 一旦使能代码保护, 就不能再读取闪存, 并且只能通过芯片擦除命令 (MCHP_ERASE) 由外部编程器禁止 18.3 程序写保护位 (PWP) 系列器件包含写保护功能, 可以在程序执行期间防止擦除或写入指定的引导和程序闪存区域 在 MX 器件中, 写保护通过器件配置字在配置存储器中实现, 而在 MZ EC 器件中, 该功能通过特殊功能寄存器 (Special Function Register,SFR) 在闪存控制器中实现 当通过器件配置字实现写保护时, 写保护寄存器只有在所有引导和编程闪存编程后才能写入 详情请参见具体器件数据手册的 特殊功能 章节 如果通过 SFR 实现写保护, 则在编程闪存区域前, 可能需要通过外部编程器在器件初始化期间执行一些步骤 详情请参见具体器件数据手册的 闪存程序存储器 章节 DS M_CN 第 53 页

54 19.0 TAP 控制器 表 19-1: MCHP TAP 指令 命令 值 说明 MTAP_COMMAND 5 h0x07 TDI 和 TDO 与 MCHP 命令移位寄存器连接 ( 见表 19-2) MTAP_SW_MTAP 5 h0x04 将 TAP 控制器切换为 MCHP TAP 控制器 MTAP_SW_ETAP 5 h0x05 将 TAP 控制器切换为 EJTAG TAP 控制器 MTAP_IDCODE 5 h0x01 选择芯片标识数据寄存器 19.1 Microchip TAP 控制器 (MTAP) MTAP_COMMAND 指令 MTAP_COMMAND 用于选择 MCHP 命令移位寄存器 关于可用的命令, 请参见表 MCHP_STATUS 指令 MCHP_STATUS 用于返回 Microchip TAP 控制器的 8 位状态值 表 19-3 列出了所返回状态值的格式 MCHP_ASSERT_RST 指令 MCHP_ASSERT_RST 用于执行持久性器件复位 它类似于将 MCLR 置为有效并保持有效 它关联的状态位为 DEVRST MCHP_DE_ASSERT_RST 指令 MCHP_DE_ASSERT_RST 用于去除持久性器件复位 它 类似于将 MCLR 置为无效 它关联的状态位为 DEVRST MCHP_FLASH_DISABLE 指令 MCHP_FLASH_DISABLE 用于将 FAEN 位清零, 该位控制对闪存的处理器访问 FAEN 位的状态在同名字段中返回 该命令在 CPS = 0 时没有任何作用 该命令需要一条 NOP 指令来完成 注 : MZ EC 系列器件无需该命令 MTAP_SW_MTAP 指令 MTAP_SW_MTAP 用于将 TAP 指令集切换为 MCHP TAP 指令集 MTAP_SW_ETAP 指令 MTAP_SW_ETAP 用于将 TAP 指令集切换为 EJTAG TAP 指令集 它的实现方式是, 将 EJTAG TAP 控制器保持在运行测试 / 空闲状态, 直到 MCHP TAP 控制器解码 MTAP_SW_ETAP 指令为止 MTAP_IDCODE 指令 MTAP_IDCODE 的返回值存放于 DEVID 寄存器中 MCHP_ERASE 指令 MCHP_ERASE 用于执行芯片擦除 CHIP_ ERASE 命令会将内部某个用于请求闪存控制器执行擦除操作的位置 1 在控制器正忙时 ( 由 FCBUSY 状态位指示 ), 该内部位会清零 MCHP_FLASH_ENABLE 指令 MCHP_FLASH_ENABLE 用于将 FAEN 位置 1, 该位控制对闪存的处理器访问 FAEN 位的状态在同名字段中返回 该命令在 CPS = 0 时没有任何作用 该命令需要一条 NOP 指令来完成 注 : MZ EC 系列器件无需该命令 DS M_CN 第 54 页

55 表 19-2: 表 19-3: MTAP_COMMAND DR 命令 命令 值 说明 MCHP_STATUS 8 h0x00 执行 NOP 指令并返回状态 MCHP_ASSERT_RST 8 h0xd1 请求复位控制器将器件复位置为有效 MCHP_DE_ASSERT_RST 8 h0xd0 去除器件复位请求, 如果没有其他请求复位的源 ( 即, MCLR), 这会导致复位控制器将器件复位置为无效 MCHP_ERASE 8 h0xfc 导致闪存控制器执行芯片擦除 MCHP_FLASH_ENABLE (1) 8 h0xfe 使能取数据并装入闪存 ( 从处理器中 ) MCHP_FLASH_DISABLE (1) 8 h0xfd 禁止取数据并装入闪存 ( 从处理器中 ) 注 1: MZ EC 系列器件无需该命令 MCHP 状态值 位范围 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 7:0 CPS 0 NVMERR (1) 0 CFGRDY FCBUSY FAEN (2) DEVRST bit 7 CPS: 代码保护状态位 1 = 器件不被代码保护 0 = 器件被代码保护 bit 6 未实现 : 读为 0 bit 5 (1) NVMERR:NVMCON 状态位 1 = 在 NVM 工作期间发生错误 0 = 在 NVM 工作期间未发生错误 bit 4 未实现 : 读为 0 bit 3 CFGRDY: 代码保护状态位 1 = 已读取配置, 并且 CP 有效 0 = 未读取配置 bit 2 FCBUSY: 闪存控制器忙状态位 1 = 闪存控制器正忙 ( 正在进行擦除操作 ) 0 = 闪存控制器不忙 ( 擦除尚未开始或已完成 ) bit 1 FAEN: 闪存访问使能位 (2) 该位反映 CFGCON.FAEN 的状态 1 = 使能闪存访问 0 = 禁止闪存访问 ( 即, 阻止处理器访问 ) bit 0 DEVRST: 器件复位状态位 1 = 器件复位有效 0 = 器件复位无效 注 1: 该位在 MX320/340/360/420/440/460 器件上未实现 2: 该位在 MZ EC 系列器件上未实现 表 19-4: EJTAG TAP 指令 命令 值 说明 ETAP_ADDRESS 5 h0x08 选择地址寄存器 ETAP_DATA 5 h0x09 选择数据寄存器 ETAP_CONTROL 5 h0x0a 选择 EJTAG 控制寄存器 ETAP_EJTAGBOOT 5 h0x0c 将 EjtagBrk ProbEn 和 ProbTrap 设置为 1, 作为复位值 ETAP_FASTDATA 5 h0x0e 选择数据寄存器和 Fastdata 寄存器 DS M_CN 第 55 页

56 19.2 EJTAG TAP 控制器 ETAP_ADDRESS 命令 ETAP_ADDRESS 用于选择地址寄存器 只读的地址寄存器提供用于处理器访问的地址 如果存在待完成的处理器访问, 则在该寄存器中读取的值有效, 否则该值处于未定义状态 寄存器的 2 或 3 个最低有效字节 (Least Significant Byte, LSB) 与 EJTAG 控制器寄存器的 Psz 字段一起用于指示待完成的处理器访问传输的大小和数据位置 这些位不是直接取自装入 / 存储操作引用的地址 ETAP_DATA 命令 ETAP_DATA 用于选择数据寄存器 在处理器访问期间, 读 / 写数据寄存器用于操作码和数据传输 只有存在待完成的处理器访问, 并且它用于写操作时, 在数据寄存器中读取的值才有效 ; 这种情况下, 数据寄存器保存存储值 对于向数据寄存器中写入的值, 只有之后完成待完成读操作的处理器访问时, 才会使用该值 ; 这种情况下, 写入的数据值是用于取数据或装入操作的值 这种行为意味着数据寄存器不是一个可以在写入之后读取先前写入值的存储单元 ETAP_CONTROL 命令 ETAP_CONTROL 用于选择控制寄存器 EJTAG 控制器寄存器 (ECR) 可以处理 : 处理器复位和软复位指示 调试模式指示 访问开始 完成与大小, 以及读 / 写指示 ECR 还提供了以下功能 : 控制所处理的处理器访问的调试向量位置和指示 允许调试中断请求 指示处理器低功耗模式 支持取决于实现的处理器和外设复位 EJTAG 控制寄存器 (ECR) 在更新 DR 状态下, 除非发生复位, 否则 EJTAG 控制器 ( 见寄存器 19-1) 寄存器不会被更新 / 写入 ; 即, 除非此时 ROCC (bit 31) 已经为 0 或被写入 0 这种条件可以确保在复位之后正确地进行处理器访问 为了在处理器时钟域和 TCK 时钟域之间正确进行同步, 在处理器时钟域中处理器复位后的一定 TCK 周期之后, 可通过 ROCC 位在 TCK 时钟域中指示处理器复位 除非定义了其他行为, 否则在随后发生读操作时, 寄存器中的读 / 写 (R/W) 位会返回它们的写入值 内部同步可以确保, 即使在 TAP 控制器采用从更新 DR 到捕捉 DR 状态的最短路径时, 也可以更新写入值, 供之后立即读取 DS M_CN 第 56 页

57 寄存器 19-1: 位范围 31:24 23:16 15:8 7:0 Bit 31/23/15/7 ECR:EJTAG 控制寄存器 Bit 30/22/14/6 Bit 29/21/13/5 Bit 28/20/12/4 Bit 27/19/11/3 Bit 26/18/10/2 Bit 25/17/9/1 Bit 24/16/8/0 R/W-0 R-0 R-0 U-0 U-0 U-0 U-0 U-0 Rocc Psz<1:0> R-0 R-0 R-0 R/W-0 R-0 R/W-0 U-0 R/W-0 VPED Doze Halt PerRst PrnW PrACC PrRst R/W-0 R/W-0 U-0 R/W-0 U-0 U-0 U-0 U-0 ProbEn ProbTrap EjtagBrk U-0 U-0 U-0 U-0 R-0 U-0 U-0 U-0 DM 图注 : R = 可读位 W = 可写位 U = 未实现位, 读为 0 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 bit 见注 1 bit 未实现 : 读为 0 bit 见注 1 bit 18 PrACC: 等待处理器访问和控制位该位指示等待处理器访问并控制等待处理器访问的完成 写入 0 会完成正在等待的处理器访问 写入 1 会被忽略 成功的 FASTDATA 访问将清零该位 1 = 等待处理器访问 0 = 没有等待的处理器访问 bit 17 未实现 : 读为 0 bit 16 见注 1 bit 15 ProbEn: 处理器访问服务控制位该位控制探针通过处理器访问服务处理对 DMSEG 段的访问 1 = 探针服务处理器访问 0 = 探针不服务处理器访问 bit 14 ProbTrap: 调试异常向量控制单元位该位控制调试异常向量的位置 1 = 0xFF = 0xBFC00480 bit 13 未实现 : 读为 0 bit 12 EjtagBrk: 调试中断异常请求位当该位写为 1 时, 该位向处理器请求调试中断异常 写为 0 则忽略 1 = 调试中断异常请求正在等待 0 = 没有等待的调试中断异常请求 bit 11-4 未实现 : 读为 0 bit 3 见注 1 bit 2-0 未实现 : 读为 0 注 1: 关于这些位的说明, 请参见 Imagination Technologies Limited 网站 ( DS M_CN 第 57 页

PIC32MX Flash Programming Specification

PIC32MX Flash Programming Specification 闪存编程规范 1.0 器件概述 本文档定义了 系列 32 位单片机的编程规范 本编程规范旨在用于指导开发人员使用外部编程器工具 对于正在开发 器件应用程序的客户应使用已提供器件编程支持的开发工具 主要讨论的主题包括 : 图 2-1: 外部编程器 编程系统设置 目标 器件 CPU 第 1.0 节 器件概述 第 2.0 节 编程概述 第 3.0 节 编程步骤 第 4.0 节 连接至器件 第 5.0 节

More information

PIC32 Flash Programming Specification

PIC32 Flash Programming Specification 闪存编程规范 1.0 器件概述 本文档定义了 32 位单片机的编程规范 本编程规范旨在为外部编程工具的开发人员提供指导 为 PIC32MM 器件开发应用的客户应该使用已支持器件编程的开发工具 本文档包含以下器件的编程规范 : PIC32MM0016GPL020 PIC32MM0256GPM028 PIC32MM0032GPL020 PIC32MM0064GPM036 PIC32MM0064GPL020

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

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

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

61115f_cn.book

61115f_cn.book 第 3 章存储器构成 目录 本章包括下列主题 : 3.1 简介... 3-2 3.2 控制寄存器... 3-2 3.3 存储器布局... 3-12 3.4 地址映射... 3-14 3.5 总线矩阵... 3-27 3.6 I/O 引脚控制... 3-31 3.7 节能和调试模式下的操作... 3-31 3.8 代码示例... 3-31 3.9 相关应用笔记... 3-32 3.10 版本历史...

More information

Section 5. Flash Programming

Section 5. Flash  Programming 第 5 章闪存编程 目录 本章包括下列主题 : 5.1 简介...5-2 5.2 表指令操作... 5-2 5.3 控制寄存器... 5-5 5.4 运行时自编程 (RTSP)... 5-8 5.5 寄存器映射... 5-16 5.6 相关应用笔记... 5-17 5.7 版本历史... 5-18 5 闪存编程 2011 Microchip Technology Inc. DS70609C_CN 第

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

(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

33023A.book(31027A_cn.fm)

33023A.book(31027A_cn.fm) 第 27 章器件配置位 目录 本章包括以下一些主要内容 : 27.1 简介... 27-2 27.2 配置字位... 27-4 27.3 编程校验 / 代码保护... 27-8 27.4 识别码 ID 的位置... 27-9 27.5 设计技巧... 27-10 27.6 相关应用笔记... 27-11 27.7 版本历史... 27-12 27 器件配置位 2004 Microchip Technology

More information

* r p . 4 6 12 3 5 7 8 9bk bm btbsbrbqbp bo bn bl [ ] [ ] [ ] [ ] [SET] 1 2 3 4 5 6 7. cmcl ck 8 9 0 bk bl bm bn bo 1 2 1 2+ - bp bq 8 2 4 6 br r bs p bt ck cl cm 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

Microsoft Word - AVR32 UC3 isp下载.doc

Microsoft Word - AVR32 UC3 isp下载.doc AVR32 UC3 ISP 下载 2008 年 4 月 1 AVR32 UC3 系列控制器在出厂时在内部 Flash 里已经固化了一个 USB DFU bootloader, 可以通过 AVR32 UC3 系列控制器的 USB 接口, 利用内部固化的 USB bootloader 进行 ISP(In-System Programming) 下载 一 Bootloader 环境 图 1 Bootloader

More information

+00DE _01EN.book

+00DE _01EN.book TCS-NET MODBUS TCS-NET Modbus TCB-IFMB640TLE 1...... 2 2 RS 485... 3 3... 3 4... 4 5... 4 6... 5 7... 6 8... 16 TCS-NET Modbus 1 http://www.modbus-ida.org/ >=3.5 8 8 N*8 ( N = 252.) 16 >= 3.5 Modbus-Master

More information

MUGI Ver Copyright c 2001, 2002 Hitachi, Ltd. All rights reserved. 1

MUGI Ver Copyright c 2001, 2002 Hitachi, Ltd. All rights reserved. 1 MUGI Ver. 1.3 2002 5 8 1 1 3 2 3 2.1 Panama... 4 2.2... 5 3 5 3.1... 5 3.2... 5 3.3... 6 3.3.1... 6 3.3.2... 6 3.3.3... 7 3.3.4... 7 4 8 4.1... 8 4.2... 8 4.3... 9 4.3.1... 9 4.3.2... 9 4.4... 9 4.4.1

More information

61115e_cn.book

61115e_cn.book 第 3 章存储器构成 目录 本章包括下列主题 : 3.1 简介... 3-2 3.2 控制寄存器... 3-2 3.3 PIC32MX 存储器布局... 3-13 3.4 PIC32MX 地址映射... 3-15 3.5 总线矩阵... 3-29 3.6 I/O 引脚控制... 3-33 3.7 节能和调试模式下的操作... 3-33 3.8 代码示例... 3-34 3.9 设计技巧... 3-35

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

N79A8211系列单片机内部NVM

N79A8211系列单片机内部NVM 南京立超电子科技有限公司 N79A8211 之 NVM FLASH E 2 PROM 应用笔记 2009 年 03 月 15 中国南京市和燕路 251 号金港大厦 A 幢 2406 室 Room 2406,Tower A,Jingang mansion,251 Heyan Road,Nanjing 210028,P.R.China Tel: 0086-25-83306839/83310926 Fax:

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

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

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

Microsoft Word - Delta Controller ASCII_RTU_SC

Microsoft Word - Delta Controller ASCII_RTU_SC Delta Controller ASCII/RTU ( 适用台达变频器 伺服驱动器 PLC 温度控制器 ) 人机默认值通讯速率 :9600, 7, None, 2 (ASCII); 9600, 8, None, 2 (RTU) 控制器站号 :1 控制区 / 状态区 :None/None 控制器接线的说明 Delta Servo a. RS-232(DOP-A/AE/AS, DOP-B 系列适用 )

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

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

PIC32 系列参考手册 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 PIC32 器件 请参见当前器件数据手册中 存储器构成 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件数据手册和系列参考手册章节可从 Microchip

PIC32 系列参考手册 注 : 本系列参考手册章节旨在用作对器件数据手册的补充 根据不同的器件型号, 本手册章节可能并不适用于所有 PIC32 器件 请参见当前器件数据手册中 存储器构成 章节开头部分的注, 以检查本文档是否支持您所使用的器件 器件数据手册和系列参考手册章节可从 Microchip 第 48 章存储器构成和权限 目录 本章包括下列主题 : 48.1 简介... 48-2 48.2 控制寄存器... 48-3 48.3 存储器布局... 48-13 48.4 系统总线... 48-16 48.5 系统总线仲裁... 48-18 48.6 访问权限... 48-19 48.7 复位的影响... 48-21 48.8 节能模式下的操作... 48-21 48.9 调试模式... 48-21

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

ARM JTAG实时仿真器安装使用指南

ARM JTAG实时仿真器安装使用指南 ARM JTAG Version 1.31 2003. 11. 12 ARM JTAG ARM JTAG.3 ARM 2.1.4 2.2.4 ARM JTAG 3.1 18 3.2 18 3.2.1 Multi-ICE Server.18 3.2.2 ADS..21 ARM JTAG 4.1 Multi-ICE Server 33 4.1.1 Multi-ICE Server..... 33 4.1.2

More information

T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma = 25 = 3V) VDD

T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma = 25 = 3V) VDD 1/16 T stg -40 to 125 C V cc 3.8V V dc RH 0 to 100 %RH T a -40 to +125 C -0.3 to 3.6V V -0.3 to VDD+0.3 V -10 to +10 ma (@T = 25 C, @Vdd = 3V) VDD 1.8 3.0 3.6 V (1) 0.08 0.3 µa Idd 300 450 500 µa 0.25

More information

第 卷 第 期 年 月 半 导 体 学 报! " # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% )

第 卷 第 期 年 月 半 导 体 学 报!  # $%&'%' $!&' #% #$1 /#1 $'! / ?/ ?/ / 3 0,?/ ) * +!!! '!,!! -. & ' $! '! 4% %&1)/1(7%&)03 (% ) 第 卷 第 期 年 月!"# $%&'%' $!&'#%#$1/#1 $'! /18103 2?/03101?/18103 /3 0,?/0301.13 )*+!!! '!,!! -.&' $!'! 4%%&1)/1(7%&)03(%)%&,%*(1&0)%$-0*,%30)17*1*)0(+1(1+&1*+*),)1; &113(%44(10&.0701&0-&00*/)%;()1%-1+%&0)0*1*)%

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

STM32™ I²C

STM32™  I²C 应用笔记 STM32 在应用中编程通过 I²C 总线 简介 对于大多数基于 Flash 的系统而言, 在最终产品安装之后, 能够对固件进行更新, 这一点非常重要 这称为在应用中编程 (IAP) 此应用笔记的目的就是为创建 IAP 应用程序提供通用指南 STM32F10x 微控制器能够运行用户指定的固件, 从而执行微控制器内置 Flash 的 IAP 借助这一特性, 在重新编程过程中可以使用任意类型的通信协议

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

目录 简介... 1 修订历史... 2 运行微转换器加载器... 3 物理接口... 3 定义数据传输包格式... 3 命令... 4 命令示例... 5 LFSR 代码示例... 6 修订历史 2013 年 1 月 修订版 0 至修订版 A 更改 简介 部分 年 9 月 修订

目录 简介... 1 修订历史... 2 运行微转换器加载器... 3 物理接口... 3 定义数据传输包格式... 3 命令... 4 命令示例... 5 LFSR 代码示例... 6 修订历史 2013 年 1 月 修订版 0 至修订版 A 更改 简介 部分 年 9 月 修订 应用笔记 One Technology Way P.O. Box 9106 Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 Fax: 781.461.3113 www.analog.com 基于 Cortex-M3 的 ADuCxxx 串行下载协议 简介基于 Cortex-M3 的 ADuCxxx 的一个关键特性是可以在线下载代码到片内 FLASH/EE

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

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

dsPIC30F SMPS Flash Programming Specification

dsPIC30F SMPS Flash Programming Specification dspic30f SMPS 闪存编程规范 1.0 概述与适用范围 本文档定义了 dspic30f 开关电源 (Switched Mode Power Supply,SMPS) 和数字电源转换系列数字信号控制器 (Digital Signal Controller, DSC) 器件的编程规范 本编程规范仅供使用第三方工具对 dspic30f SMPS 器件进行编程的开发人员使用 使用 dspic30f

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

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

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

LETD型LED灯炮规格的更改

LETD型LED灯炮规格的更改 2018 十二月 1/10 页 软件错误问题软件错误 1 Automation Organizer(WindLDR) 软件之修复 针对版本 : WindLDR 版本 8.2.0 至版本 8.9.1 (Automation Organizer 版本 3.20 至 版本 3.12.1) 注 : 包括由官网下载的版本 当使用以上版本软件, 软件错误 1 将会出现在以下型号 : FC6A CPU 模块 -

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

untitled

untitled EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

untitled

untitled XILINX Platform Cbale USB www.hseda.com ...... Platform Cable USB Compatible.................. impact.........1 platform Cable USB Compatible.........1...1...1...1...1...1 Platform Cable USB Compatible

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

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-12 9.4 DMT 工作原理... 9-16 9.5 中断和复位产生... 9-18 9.6 I/O 引脚... 9-21 9.7 调试和节能模式下的操作... 9-21

More information

《计算机应用基础》学习材料(讲义)

《计算机应用基础》学习材料(讲义) 计 算 机 应 用 基 础 学 习 材 料 ( 讲 义 ) Fundamentals of Computer Application 2014-3-22 JIANGSU OPEN UNIVERSITY 第 二 学 习 周 计 算 机 基 础 知 识 ( 一 ) 导 学 在 本 学 习 周, 我 们 主 要 的 任 务 是 认 识 计 算 机 你 将 知 道 计 算 机 是 什 么 时 候 产 生 的,

More information

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结!

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! 以下是串口的时序 : 在设计中, 耽误时间最长的问题就是数据老是出错, 为了找出问题的所在, 用示波器观察了

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

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

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20% 38 11 2013 11 GeomaticsandInformationScienceofWuhanUniversity Vol.38No.11 Nov.2013 :1671-8860(2013)11-1339-05 :A GIS Key-value 1 1 1 1 (1 129 430079) : 设计了一种基于 Key-value 结构的缓存 KV-cache 旨在简化数据结构 高效管理缓存数据

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

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

Microsoft Word - LMB402CBC-AppNote-V0.1.doc LMB402CBC 液晶显示模块应用参考 深圳市拓普微科技开发有限公司 版本描述日期编者 0.1 新版本 2006-02-09 杨军 http://www.topwaysz.com 1 / 1 目录 1 概述 3 2 硬件接口 3 3 软件特性 3 3.1 控制器接口信号说明 3 3.2 模块指令系统 4 4 显示数据存储器的地址 4 5 字符发生器 CGRAM 的地址 5 6 应用举例 5 6.1

More information

杭州言曼科技有限公司 CB01 子卡说明文档 ( 对外发布 ) CB01 子卡说明文档 ( 对外发布 ) 版本 (1.0) 目录 1. CB01 单机版和系统版区别 CB01 标配版本和低成本区别 CB01 结构信息

杭州言曼科技有限公司 CB01 子卡说明文档 ( 对外发布 )   CB01 子卡说明文档 ( 对外发布 ) 版本 (1.0) 目录 1. CB01 单机版和系统版区别 CB01 标配版本和低成本区别 CB01 结构信息 CB01 子卡说明文档 ( 对外发布 ) 版本 (1.0) 目录 1. CB01 单机版和系统版区别... 2 2. CB01 标配版本和低成本区别... 2 3. CB01 结构信息... 3 4. CB01 功耗信息... 3 5. LED 显示... 3 6. 按键... 4 7. 拨码开关... 4 8. USB 串口 - 型号 :CP2102... 4 9. 输入时钟... 4 10. I2C

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

Microsoft Word - AN3259C

Microsoft Word - AN3259C www.maxim-ic.com.cn 应用笔记 3259 DS31256 Envoy - 寄存器转储列程 概述本应用笔记提供了将 DS31256 的寄存器 排队程序 描述符和 FIFO RAM 的内容转储到一个文件的程序代码 这些数据在 DS31256 无法正常工作时非常关键, 为进一步的研究和调试提供了重要信息 例如, 寄存器数据经过转储后可以显示每个 DS31256 寄存器的设置 为了保证正确地设置器件,

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

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

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

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

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

untitled

untitled FBC0409 V1.0 1.0 05.06.22 SIA 2005 SIA SIA SIA SIA SIA 114 86-24-23970133 HTTP://WWW.SIA.CN YANG@SIA.CN 2 ...5...5...6 PIN...6...7 1 CPU...8 2...8 4...8 5 DMA...9 7....9 8...9 9...10 A...10 B...10...11.

More information

Section 9. Watchdog, Deadman, and Power-up Timers

Section 9. Watchdog, Deadman, and Power-up Timers 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-13 9.4 DMT 工作原理... 9-17 9.5 中断和复位产生... 9-19 9.6 I/O 引脚... 9-22 9.7 调试和节能模式下的操作... 9-22

More information

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode] 的架构 ADS 的通讯机制 ADS-Client Request -> Confirmation Indication

More information

目 录 1. 简介 概览 连接概述 软件运行概述 快速操作 硬件连接 软件操作 操作描述 MCU 设置 MCU Flash 信息

目 录 1. 简介 概览 连接概述 软件运行概述 快速操作 硬件连接 软件操作 操作描述 MCU 设置 MCU Flash 信息 Cortex-M 在线编程器用户手册 适用产品 本产品支持芯片型号如下 系列型号系列型号 HC32L150KATA HC32L150K8TA HC32M140F8TA HC32L150JATA HC32M140J8TA HC32M140 HC32L150J8TA HC32M140J8UA HC32L150FAUA HC32M140KATA HC32L150F8UA HC32L156KATA HC32L15

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

燃烧器电子控制系统 目录 2

燃烧器电子控制系统 目录 2 聚焦 REC27 燃烧器电子控制系统 燃烧器电子控制系统 目录 2 REC27 燃烧器电子控制系统 2 概述 燃烧器电子控制系统 2 2 2 2 2 A B1 B2 C D E 22 2 2 系统图示 2 2 2 2 2 2 主要特征及优点 燃烧器电子控制系统 2 2 集成控制 2 2 节能 安全运行 运行模式 远程锁定复位 可根据需求提供特殊机型 无接合间隙及机械迟滞 简单的试运行及燃烧器设定 2

More information

吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with

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

93C46串行EEPROM数据读写

93C46串行EEPROM数据读写 一 \ 实验目的 93C46 串行 EEPROM 数据读写 1 学会 93C46 的操作指令, 掌握 93C46 读 / 写程序的编写 2 掌握 93C46 与单片机的接口方式二 实验说明 93C46/56/66 是 1K/2K/4K 位的串行电可擦写的 EPROM 93C46 的 1K 位 EPROM, 可以按 128 字节排列, 也可以 64 字节排列 93C46 芯片有 8 脚, 当 ORG

More information

TD

TD *TD-000212-05* 20- 应用实例 4 本例显示的是使用两个亚低 音扬声器和多个顶箱的双声 道 立体声 设置 除了各声道都增加了一个顶 箱外 也可以增加更多的顶 箱 本例和例 3 的情况一 致 声道 2 或 右声道 声道 1 或 左声道 要接到更多的顶箱 将最后 一个顶箱的全幅线路输出接 头处的线缆接到下一个顶箱 的全幅线路输入接头 在不 降低信号质量的情况下 最

More information

Microsoft Word - AN3521_ColdFire MCF521x 微控制器的Flash模块的使用.doc

Microsoft Word - AN3521_ColdFire MCF521x 微控制器的Flash模块的使用.doc 飞思卡尔应用笔记 AN3521 ColdFire MCF521x 微控制器的 Flash 模块的使用 文件编号 :AN3521 版本 :0,09/2007 苏州大学飞思卡尔嵌入式教学与应用培训中心译 2008 年 5 月 目录 1 引言... 1 2 MCF521x Flash 的特点... 1 2.1 描述... 1 3 FLASH 模块的解释... 1 3.1 实例 :CFM 模块的案例学习...

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

MEGAWIN

MEGAWIN Megawin 8051 ISP via COM Port 用户手册 By Vincent Y. C. Yu July(avenbbs) 译 This document information is the intellectual property of Megawin Technology Co., Ltd. 1 目 录 1 什么是 ISP...3 2 用于 ISP 的芯片配置...4 2.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

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

50-FB23-24_BES_V_ z1_ b

50-FB23-24_BES_V_ z1_ b CPX CPX-FB23, CPX-FB23-24 CC-Link 1411b [8042126] CPX-FB23, CPX-FB23-24 P.BE-CPX-FB23-24-ZH CC-Link Mitsubishi TORX : : : 1. 2 Festo P.BE-CPX-FB23-24-ZH 1411b CPX-FB23, CPX-FB23-24 CPX-FB23, CPX-FB23-24

More information

untitled

untitled CPU!! 00-11-8 Liping zhang, Tsinghua 1 : ADD(r1, r, r) CMPLEC(r, 5, r0) MUL(r1, r, r) SUB(r1, r, r5) ADD r, ( ) r CMP. CMP r.. t t + 1 t + t + t + t + 5 t + 6 IF( ) ADD CMP MUL SUB RF NOP ADD CMP MUL SUB

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

WF512_0x0-A-DS.fm

WF512_0x0-A-DS.fm 是串行闪存 25 系列的成员, 采用四线 兼容 SPI 的接口, 从而实现占用较少电路板空间的低引脚数封装, 并最终降低总系统成本 SPI 串行闪存采用 SST 专有的高性能 CMOS SuperFlash 技术制造 与其他方法相比, 分离栅极单元设计 (Split-gate cell design) 和厚氧化层隧穿注入器 (Thick-oxide tunneling injector) 可实现更高的可靠性和可制造性

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

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

电子缝纫机 了解缝纫机 缝制基础知识 产品型号 : 885-V60/V61/V62/V63/V64/V65 实用针迹 附录 欢迎访问 常见问题解答 (FAQs) 在这里可以得到产品的支持和

电子缝纫机 了解缝纫机 缝制基础知识 产品型号 : 885-V60/V61/V62/V63/V64/V65 实用针迹 附录 欢迎访问   常见问题解答 (FAQs) 在这里可以得到产品的支持和 电子缝纫机 了解缝纫机 缝制基础知识 产品型号 : 885-V60/V61/V62/V63/V64/V65 实用针迹 附录 欢迎访问 http://solutions.brother.com 常见问题解答 (FAQs) 在这里可以得到产品的支持和 1 2 3 1 4 5 6 7 2 8 3 ...1 1.... 6... 6... 6... 7... 7... 8... 8... 9... 9...

More information

mdt1030

mdt1030 深圳市英锐恩科技有限公司 第 1 页 单片机集成方案全方位解决服务商 优质智能电子产品 芯 方案解决商 Micon MDT1030 产品用户参考手册 全球销售及服务联系信息 : 深圳市英锐恩科技有限公司 ENROO-TECH(SHENZHEN)CO.,LTD 中国 深圳市福田区福华路嘉汇新城汇商中心 27 楼 2701 室 Enroo-Tech Technologies CO., Limited Light-Tech

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请 加热器用固态继电器 单相 CSM_-Single-phase_DS_C 带纤细型散热器的一体式小型 SSR 备有无过零触发型号, 用途广泛 符合 RoHS 标准 包含无过零触发型号, 产品线齐全 输出回路的抗浪涌电压性能进一步提高 根据本公司的试验条件 小型 纤细形状 除了 DIN 导轨安装, 还可进行螺钉安装 获取 UL CSA EN 标准 TÜV 认证 请参见 共通注意事项 种类 关于标准认证机型的最新信息,

More information

第 16 章 SPI 串行同步通讯接口模式 这个 5 系列通用串行通信接口支持一个硬件模块下的多通道串行通信模式 本章节主要讨论同步外围接口的运行或称 SPI 模式的运行 16.1 USCI 的概述通用串行通信接口模块支持多道串行通信模式 不同的 USCI 支持不同的模式 每一个不同的 USCI 模

第 16 章 SPI 串行同步通讯接口模式 这个 5 系列通用串行通信接口支持一个硬件模块下的多通道串行通信模式 本章节主要讨论同步外围接口的运行或称 SPI 模式的运行 16.1 USCI 的概述通用串行通信接口模块支持多道串行通信模式 不同的 USCI 支持不同的模式 每一个不同的 USCI 模 MSP430F5 系列 16 位超低功耗单片机模块原理 第 16 章 SPI 串行同步通讯接口模式 版本 : 1.1 发布日期 : 2008.9. 最后更新日期 :2010.8. 原文 : TI slau208.pdf (5xxfamily User's Guide) 翻译 : 张桂兴西北工业大学 编辑 : DC 微控网总版主 注 : 以下文章是翻译 TI slau208.pdf 文件中的部分内容

More information

untitled

untitled EDM12864-03 : 25-1 : 116600 : (0411)7612956 7632020 7612955 : (0411)7612958 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得 翻 印 修 改 或 引 用 警 告 : 请 专 业 人 员 检 测 和 维 修 本 设 备! 警 告 : 本 仪 表 使 用 24V 直 流 电 源, 请 务 必 正 确

SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得 翻 印 修 改 或 引 用 警 告 : 请 专 业 人 员 检 测 和 维 修 本 设 备! 警 告 : 本 仪 表 使 用 24V 直 流 电 源, 请 务 必 正 确 SeTAQ R HMCA 系 列 高 速 多 通 道 数 字 称 重 接 线 盒 使 用 说 明 书 山 东 西 泰 克 仪 器 有 限 公 司 山 东 济 南 高 新 区 天 辰 大 街 1251 号 www.setaq.com setaq@setaq.com V1..2 SeTAQ 是 山 东 西 泰 克 仪 器 有 限 公 司 的 注 册 商 标 本 说 明 书 未 经 书 面 许 可 不 得

More information

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总 目 录 数 学 高 分 的 展 望... 1 第 一 篇 大 纲 解 析 篇... 1 一 管 理 类 联 考 分 析... 1 二 最 新 大 纲 解 析... 1 三 考 前 复 习 资 料 及 方 法... 第 二 篇 总 结 篇... 4 1 应 用 题 考 点 总 结 与 技 巧 归 纳... 4 代 数 模 块 题 型 归 纳 及 考 点 总 结... 9 3 数 列 模 块 题 型 归

More information

untitled

untitled http://www.embedded-soc.com/ J-LINK J-Link Rev2.1 http://www.embedded-soc.com/ 2007-11-11 http://www.embedded-soc.com/ J-LINK J-Link ARM JTAG J-LINK J-LINKJLINK J-FLASH ARM F.A.Q jlink GDBserver J-Flash

More information

untitled

untitled : 36 236 : (025)52121888 : (025)52121555/800 8289722 : 211100 h t t p://www.phoenixcontact.com.cn e-mail: phoenix@phoenixcontact.com.cn MNR 52005577/07.04.2010-01 Printed in China PHOENIX CONTACT 2010

More information

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA

2 14 PORTC.1 PORTB.3 PORTA.2/T0 GND PORTB.2 PORTA.0 PORTC.3 PORB.0/OSCO PORTB.1/OSCI PORTC.0 PORTC.2 SH69P21 /SOP PORTA 1K 4 SH6610C 4 OTP ROM 1K X 16 RAM 88 X 4-24 - 64 2.4V-5.5V - fosc = 30kHz - 4MHz, = 2.4V - 5.5V - fosc = 4MHz - 8MHz, = 4.5V - 5.5V 11 CMOS I/O 4 ( ) 8 / - 0 PORTA.0 ( / / ) - 0 - PORTB ( ) ( ) - 32.768kHz,

More information

Microsoft Word - Data IO CS Calculate Method AppNote.doc

Microsoft Word - Data IO CS Calculate Method AppNote.doc Data I/O Checksum Calculation Methods Application Note (Chinese translation follows this English text.) General Description and Scope This document describes common checksum calculation methods for devices

More information

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63>

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63> SL-1356MOD-SU 射 频 卡 读 写 模 块 使 用 说 明 一. 概 述 双 龙 公 司 针 对 支 付 系 统 公 共 交 通 门 禁 锁 具 设 备 管 理 二 代 身 份 证 等 行 业 推 出 SL-1356MOD-SU 射 频 卡 读 写 模 块 该 模 块 全 面 支 持 ISO14443 A/B -1-2 -3-4 标 准, 适 用 于 读 写 各 种 符 合 ISO14443

More information

JLX

JLX PRODUCT:LCD MODULE. Model No.: JLX177-006 Product Type: 1.77 inch QVGA TFT Modoule. 产品规格书 晶联讯研发研发部 : Written By Checked By Approved By 客户名称 : 结构电子核准 地址 : 深圳市宝安区西乡宝安大道东华工业区 A3 栋 6 楼电话 :0755-29784961 Http://www.jlxlcd.cn

More information

Modbus 协议

Modbus 协议 Modbus 协议 工业控制已从单机控制走向集中监控 集散控制, 如今已进入网络时代, 工业控制器连网也为网络管理提供了方便 Modbus 就是工业控制器的网络协议中的一种 一 Modbus 协议简介 Modbus 协议是应用于电子控制器上的一种通用语言 通过此协议, 控制器相互之间 控制器经由网络 ( 例如以太网 ) 和其它设备之间可以通信 它已经成为一通用工业标准 有了它, 不同厂商生产的控制设备可以连成工业网络,

More information