首页资源分类嵌入式开发嵌入式系统 > LM3S9B92_datasheet_cn

LM3S9B92_datasheet_cn

已有 458895个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

上传者其他资源

文档信息举报收藏

标    签: LM3S9B92_datasheet_cn

分    享:

文档简介

 LM3S9B92_datasheet_cn

文档预览

TEXAS INSTRUMENTS-生产数据 Stellaris® LM3S9B92 微控制器 数据手册 DS-LM3S9B92-9970 版权 © 2007-2011 Te xa s In stru me n ts In co rporated 版权 版权 © 2007-2011 Texas Instruments Incorporated 保留所有权利。 Stellaris 和 StellarisWare® 是德州仪器股份有限公司的注册商标。ARM 和 Thumb 是 ARM 公司的注册商标,Cortex 是 ARM 公司的商标。其它名称和商标均为其所有者的财产。 预告信息涉及样品阶段和产品试制阶段的新产品。特征数据和其他规格都可能在没有预先通告的情况下改变。 请留意,此手册最后包含可行性、标准保修期和德州仪器半导体的关键任务应用的重要信息的通告以及相关的负责声明。 德州仪器公司 108 Wild Basin, Suite 350 Austin, TX 78746 http://www.ti.com/stellaris http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm 2 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 目录 修订历史 ........................................................................................................................................... 40 关于本文档 ....................................................................................................................................... 49 受众 ..................................................................................................................................................... 49 关于本手册 ........................................................................................................................................... 49 相关文档 ............................................................................................................................................... 49 文档约定 ............................................................................................................................................... 50 1 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2 1.3 1.4 结构概述 ................................................................................................................... 52 功能概述 ....................................................................................................................... 54 ARM Cortex-M3 ............................................................................................................ 54 片上存储器 ................................................................................................................... 56 片外设备接口 ................................................................................................................ 56 串行通讯外设 ................................................................................................................ 58 系统集成 ....................................................................................................................... 63 高级运动控制 ................................................................................................................ 68 模拟 ............................................................................................................................. 69 JTAG 和 ARM 串行线调试 ............................................................................................. 71 封装和温度 ................................................................................................................... 71 目标应用 ....................................................................................................................... 72 高级结构图 ................................................................................................................... 72 硬件细节 ....................................................................................................................... 74 2 2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5 2.5.1 2.5.2 Cortex-M3 处理器 .................................................................................................... 75 结构图 .......................................................................................................................... 76 概述 ............................................................................................................................. 76 系统级接口 ................................................................................................................... 76 集成的可配置调试 ......................................................................................................... 77 跟踪端口接口单元 (TPIU) ............................................................................................... 77 Cortex-M3 系统组件细节 ............................................................................................... 77 编程模型 ....................................................................................................................... 78 处理器模式和软件执行的权限级别 .................................................................................. 78 堆栈 ............................................................................................................................. 78 寄存器映射 ................................................................................................................... 79 寄存器描述 ................................................................................................................... 80 异常和中断 ................................................................................................................... 93 数据类型 ....................................................................................................................... 93 存储模型 ....................................................................................................................... 93 存储器区、类型和属性 ................................................................................................... 95 存储器访问存储系统顺序 ............................................................................................... 95 存储器访问行为 ............................................................................................................. 96 存储器访问的软件顺序 ................................................................................................... 96 位带区 .......................................................................................................................... 97 数据保存 ....................................................................................................................... 99 同步原语 ..................................................................................................................... 100 异常模式 ..................................................................................................................... 101 异常状态 ..................................................................................................................... 101 异常类型 ..................................................................................................................... 101 一月 06, 2012 3 Texas Instruments-生产数据 目录 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.7.1 2.7.2 2.8 3 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.4 4.5 4.5.1 4.5.2 5 5.1 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.3 5.4 异常处理程序 .............................................................................................................. 105 向量表 ........................................................................................................................ 105 异常优先级 ................................................................................................................. 106 中断优先级分组 ........................................................................................................... 106 异常进入和返回 ........................................................................................................... 106 故障处理 ..................................................................................................................... 108 故障类型 ..................................................................................................................... 108 故障扩大和硬件故障 .................................................................................................... 109 故障状态寄存器和故障地址寄存器 ................................................................................ 109 死锁 ........................................................................................................................... 110 电源管理 ..................................................................................................................... 110 进入睡眠模式 .............................................................................................................. 110 从睡眠模式唤醒 ........................................................................................................... 110 指令集总结 ................................................................................................................. 111 Cortex-M3 外设 ..................................................................................................... 115 功能描述 ..................................................................................................................... 115 系统定时器(SysTick) ............................................................................................... 115 嵌套向量中断控制器(NVIC) ..................................................................................... 116 系统控制模块(SCB) ................................................................................................. 117 存储器保护单元(MPU) ............................................................................................. 117 寄存器映射 ................................................................................................................. 122 系统定时器(SysTick)寄存器描述 ............................................................................... 124 NVIC寄存器描述 ......................................................................................................... 128 系统控制模块(SCB)寄存器描述 ................................................................................ 141 存储器保护单元(MPU)寄存器描述 ............................................................................ 168 JTAG 接口 .............................................................................................................. 177 结构图 ........................................................................................................................ 178 信号描述 ..................................................................................................................... 178 功能描述 ..................................................................................................................... 179 JTAG 接口管脚 ............................................................................................................ 179 JTAG TAP 控制器 ........................................................................................................ 180 移位寄存器 ................................................................................................................. 181 操作注意事项 .............................................................................................................. 181 初始化及配置 .............................................................................................................. 184 寄存器描述 ................................................................................................................. 184 指令寄存器 (IR) ........................................................................................................... 184 数据寄存器 ................................................................................................................. 185 系统控制 ................................................................................................................. 188 信号描述 ..................................................................................................................... 188 功能描述 ..................................................................................................................... 188 器件标识 ..................................................................................................................... 188 复位控制 ..................................................................................................................... 189 不可屏蔽的中断 ........................................................................................................... 193 功率控制 ..................................................................................................................... 193 时钟控制 ..................................................................................................................... 194 系统控制 ..................................................................................................................... 200 初始化和配置 .............................................................................................................. 201 寄存器映射 ................................................................................................................. 201 4 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.5 寄存器描述 ................................................................................................................. 203 6 6.1 6.2 6.2.1 6.2.2 6.2.3 6.3 6.4 6.5 内部存储器 ............................................................................................................. 284 结构图 ........................................................................................................................ 284 功能描述 ..................................................................................................................... 284 SRAM ........................................................................................................................ 285 ROM .......................................................................................................................... 285 Flash 存储器 ............................................................................................................... 287 寄存器映射 ................................................................................................................. 291 Flash 存储器寄存器描述(Flash 控制偏移量) .............................................................. 292 存储器寄存器描述(系统控制偏移量) ......................................................................... 303 7 微型直接存储器访问 (μDMA) ................................................................................. 319 7.1 结构图 ........................................................................................................................ 320 7.2 功能描述 ..................................................................................................................... 320 7.2.1 通道分配 ..................................................................................................................... 320 7.2.2 优先级 ........................................................................................................................ 322 7.2.3 仲裁数目 ..................................................................................................................... 322 7.2.4 请求类型 ..................................................................................................................... 322 7.2.5 通道配置 ..................................................................................................................... 323 7.2.6 传输模式 ..................................................................................................................... 324 7.2.7 待传输数目及增量 ....................................................................................................... 333 7.2.8 外设接口 ..................................................................................................................... 333 7.2.9 软件请求 ..................................................................................................................... 333 7.2.10 中断及错误 ................................................................................................................. 333 7.3 初始化及配置 .............................................................................................................. 334 7.3.1 模块初始化 ................................................................................................................. 334 7.3.2 存储器到存储器传输的配置 .......................................................................................... 334 7.3.3 外设简单发送的配置 .................................................................................................... 335 7.3.4 外设乒乓接收的配置 .................................................................................................... 337 7.3.5 通道分配的配置 ........................................................................................................... 339 7.4 寄存器映射 ................................................................................................................. 339 7.5 μDMA 通道控制结构体 ................................................................................................. 341 7.6 μDMA 寄存器描述 ....................................................................................................... 348 8 8.1 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.4 8.5 通用输入/输出端口 (GPIO) ..................................................................................... 377 信号描述 ..................................................................................................................... 377 功能描述 ..................................................................................................................... 382 数据控制 ..................................................................................................................... 383 中断控制 ..................................................................................................................... 384 模式控制 ..................................................................................................................... 385 提交控制 ..................................................................................................................... 385 管脚 (Pad) 控制 ........................................................................................................... 385 标识 ........................................................................................................................... 385 初始化及配置 .............................................................................................................. 386 寄存器映射 ................................................................................................................. 387 寄存器描述 ................................................................................................................. 389 9 片外设备接口 (EPI) ................................................................................................ 430 9.1 EPI 结构图 .................................................................................................................. 431 9.2 信号描述 ..................................................................................................................... 432 一月 06, 2012 5 Texas Instruments-生产数据 目录 9.3 9.3.1 9.3.2 9.4 9.4.1 9.4.2 9.4.3 9.5 9.6 功能描述 ..................................................................................................................... 434 非阻塞式读操作 ........................................................................................................... 435 DMA 操作 ................................................................................................................... 435 初始化及配置 .............................................................................................................. 436 SDRAM 模式 .............................................................................................................. 436 主机总线模式 .............................................................................................................. 440 通用模式 ..................................................................................................................... 450 寄存器映射 ................................................................................................................. 458 寄存器描述 ................................................................................................................. 459 10 通用定时器 ............................................................................................................. 498 10.1 结构图 ........................................................................................................................ 498 10.2 信号描述 ..................................................................................................................... 499 10.3 功能描述 ..................................................................................................................... 502 10.3.1 GPTM 复位条件 .......................................................................................................... 503 10.3.2 定时器模式 ................................................................................................................. 503 10.3.3 DMA 操作 ................................................................................................................... 508 10.3.4 访问连接的 寄存器值 ................................................................................................... 508 10.4 初始化和配置 .............................................................................................................. 509 10.4.1 单次触发/周期定时器模式 ............................................................................................. 509 10.4.2 实时时钟 (RTC) 模式 ................................................................................................... 510 10.4.3 输入边沿计数模式 ....................................................................................................... 510 10.4.4 输入边沿定时模式 ....................................................................................................... 510 10.4.5 PWM 模式 .................................................................................................................. 511 10.5 寄存器映射 ................................................................................................................. 511 10.6 寄存器描述 ................................................................................................................. 512 11 11.1 11.2 11.2.1 11.3 11.4 11.5 看门狗定时器 (WDT) .............................................................................................. 542 结构图 ........................................................................................................................ 543 功能说明 ..................................................................................................................... 543 寄存器访问时序 ........................................................................................................... 544 初始化及配置 .............................................................................................................. 544 寄存器映射 ................................................................................................................. 544 寄存器描述 ................................................................................................................. 545 12 模数转换器 (ADC) .................................................................................................. 567 12.1 结构图 ........................................................................................................................ 568 12.2 信号描述 ..................................................................................................................... 568 12.3 功能描述 ..................................................................................................................... 570 12.3.1 采样序列发生器 ........................................................................................................... 570 12.3.2 模块控制 ..................................................................................................................... 571 12.3.3 硬件采样平均电路 ....................................................................................................... 573 12.3.4 模数转换器 ................................................................................................................. 574 12.3.5 差分采样 ..................................................................................................................... 576 12.3.6 内部温度传感器 ........................................................................................................... 578 12.3.7 数字比较器 ................................................................................................................. 579 12.4 初始化及配置 .............................................................................................................. 583 12.4.1 模块初始化 ................................................................................................................. 583 12.4.2 采样序列发生器的配置 ................................................................................................. 584 12.5 寄存器映射 ................................................................................................................. 584 12.6 寄存器描述 ................................................................................................................. 586 6 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 13 通用异步收发器 (UART) ......................................................................................... 640 13.1 结构图 ........................................................................................................................ 641 13.2 信号描述 ..................................................................................................................... 641 13.3 功能描述 ..................................................................................................................... 643 13.3.1 发送/接收逻辑 ............................................................................................................. 643 13.3.2 波特率的产生 .............................................................................................................. 644 13.3.3 数据传输 ..................................................................................................................... 644 13.3.4 串行红外(SIR) ......................................................................................................... 645 13.3.5 对 ISO 7816 的支持 ..................................................................................................... 646 13.3.6 对调制解调器握手信号的支持 ....................................................................................... 646 13.3.7 对 LIN 的支持 .............................................................................................................. 647 13.3.8 FIFO 操作 ................................................................................................................... 648 13.3.9 中断 ........................................................................................................................... 649 13.3.10 回送操作 ..................................................................................................................... 649 13.3.11 DMA 操作 ................................................................................................................... 649 13.4 初始化及配置 .............................................................................................................. 650 13.5 寄存器映射 ................................................................................................................. 651 13.6 寄存器描述 ................................................................................................................. 652 14 同步串行接口 (SSI) ................................................................................................ 698 14.1 结构图 ........................................................................................................................ 699 14.2 信号描述 ..................................................................................................................... 699 14.3 功能描述 ..................................................................................................................... 700 14.3.1 位速率的产生 .............................................................................................................. 701 14.3.2 FIFO 操作 ................................................................................................................... 701 14.3.3 中断 ........................................................................................................................... 701 14.3.4 帧格式 ........................................................................................................................ 702 14.3.5 DMA 操作 ................................................................................................................... 709 14.4 初始化及配置 .............................................................................................................. 709 14.5 寄存器映射 ................................................................................................................. 710 14.6 寄存器描述 ................................................................................................................. 711 15 内部集成电路 (I2C) 接口 ......................................................................................... 738 15.1 结构图 ........................................................................................................................ 738 15.2 信号描述 ..................................................................................................................... 739 15.3 功能描述 ..................................................................................................................... 739 15.3.1 I2C 总线功能概览 ........................................................................................................ 740 15.3.2 可用的速度模式 ........................................................................................................... 742 15.3.3 中断 ........................................................................................................................... 743 15.3.4 回送操作 ..................................................................................................................... 743 15.3.5 指令序列流程图 ........................................................................................................... 743 15.4 初始化及配置 .............................................................................................................. 751 15.5 寄存器映射 ................................................................................................................. 752 15.6 寄存器描述(I2C 主机) .............................................................................................. 753 15.7 寄存器描述(I2C 从机) .............................................................................................. 765 16 内部集成电路音频 (I2S) 接口 .................................................................................. 774 16.1 结构图 ........................................................................................................................ 775 16.2 信号描述 ..................................................................................................................... 775 16.3 功能描述 ..................................................................................................................... 776 一月 06, 2012 7 Texas Instruments-生产数据 目录 16.3.1 发送 ........................................................................................................................... 778 16.3.2 接收 ........................................................................................................................... 782 16.4 初始化及配置 .............................................................................................................. 783 16.5 寄存器映射 ................................................................................................................. 785 16.6 寄存器描述 ................................................................................................................. 785 17 控制器局域网 (CAN) 模块 ...................................................................................... 807 17.1 结构图 ........................................................................................................................ 808 17.2 信号描述 ..................................................................................................................... 808 17.3 功能描述 ..................................................................................................................... 809 17.3.1 初始化 ........................................................................................................................ 810 17.3.2 基本操作 ..................................................................................................................... 811 17.3.3 报文对象的发送 ........................................................................................................... 811 17.3.4 待发送报文对象的配置 ................................................................................................. 812 17.3.5 待发送报文对象的刷新 ................................................................................................. 813 17.3.6 已接收报文对象的验收 ................................................................................................. 813 17.3.7 接收数据帧 ................................................................................................................. 813 17.3.8 接收远程帧 ................................................................................................................. 813 17.3.9 接收/发送优先级 .......................................................................................................... 814 17.3.10 接收报文对象的配置 .................................................................................................... 814 17.3.11 已接收报文对象的处理 ................................................................................................. 815 17.3.12 中断的处理 ................................................................................................................. 817 17.3.13 测试模式 ..................................................................................................................... 818 17.3.14 位时序配置错误的注意事项 .......................................................................................... 819 17.3.15 位时间与位速率 ........................................................................................................... 819 17.3.16 位时序参数的计算 ....................................................................................................... 821 17.4 寄存器映射 ................................................................................................................. 824 17.5 CAN 寄存器描述 ......................................................................................................... 826 18 以太网控制器 .......................................................................................................... 855 18.1 结构图 ........................................................................................................................ 856 18.2 信号描述 ..................................................................................................................... 856 18.3 功能描述 ..................................................................................................................... 857 18.3.1 MAC 操作 ................................................................................................................... 857 18.3.2 内部 MII 操作 .............................................................................................................. 860 18.3.3 PHY 配置/操作 ............................................................................................................ 861 18.3.4 中断 ........................................................................................................................... 863 18.3.5 DMA 操作 ................................................................................................................... 863 18.4 初始化及配置 .............................................................................................................. 864 18.4.1 硬件配置 ..................................................................................................................... 864 18.4.2 软件配置 ..................................................................................................................... 865 18.5 寄存器映射 ................................................................................................................. 865 18.6 以太网 MAC 寄存器描述 .............................................................................................. 866 18.7 MII 管理寄存器描述 ..................................................................................................... 887 19 通用串行总线 (USB) 控制器 ................................................................................... 907 19.1 结构图 ........................................................................................................................ 908 19.2 信号描述 ..................................................................................................................... 908 19.3 功能描述 ..................................................................................................................... 909 19.3.1 用作设备时的操作 ....................................................................................................... 910 19.3.2 用作主机时的操作 ....................................................................................................... 914 8 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 19.3.3 OTG 模式 ................................................................................................................... 916 19.3.4 DMA 操作 ................................................................................................................... 918 19.4 初始化及配置 .............................................................................................................. 919 19.4.1 管脚配置 ..................................................................................................................... 919 19.4.2 端点配置 ..................................................................................................................... 919 19.5 寄存器映射 ................................................................................................................. 919 19.6 寄存器描述 ................................................................................................................. 930 20 模拟比较器 ........................................................................................................... 1039 20.1 结构图 ...................................................................................................................... 1040 20.2 信号描述 ................................................................................................................... 1040 20.3 功能描述 ................................................................................................................... 1041 20.3.1 内部参考电压编程 ...................................................................................................... 1042 20.4 初始化及配置 ............................................................................................................ 1043 20.5 寄存器映射 ................................................................................................................ 1044 20.6 寄存器描述 ................................................................................................................ 1044 21 脉宽调制器 (PWM) ............................................................................................... 1052 21.1 结构图 ...................................................................................................................... 1053 21.2 信号描述 ................................................................................................................... 1054 21.3 功能描述 ................................................................................................................... 1056 21.3.1 PWM 定时器 ............................................................................................................. 1056 21.3.2 PWM 比较器 ............................................................................................................. 1057 21.3.3 PWM 信号发生器 ....................................................................................................... 1058 21.3.4 死区发生器 ................................................................................................................ 1059 21.3.5 中断 / ADC- 触发选择器 ............................................................................................. 1059 21.3.6 同步方法 .................................................................................................................. 1059 21.3.7 故障条件 ................................................................................................................... 1060 21.3.8 输出控制块 ................................................................................................................ 1061 21.4 初始化及配置 ............................................................................................................ 1061 21.5 寄存器映射 ................................................................................................................ 1062 21.6 寄存器描述 ................................................................................................................ 1065 22 正交编码器接口 (QEI) .......................................................................................... 1124 22.1 结构图 ...................................................................................................................... 1124 22.2 信号描述 ................................................................................................................... 1125 22.3 功能描述 ................................................................................................................... 1126 22.4 初始化及配置 ............................................................................................................ 1128 22.5 寄存器映射 ................................................................................................................ 1129 22.6 寄存器描述 ................................................................................................................ 1129 23 管脚图 ................................................................................................................... 1144 24 信号表 ................................................................................................................... 1146 24.1 100 管脚 LQFP 封装管脚表 ........................................................................................ 1147 24.2 108 焊珠 BGA 封装管脚表 .......................................................................................... 1184 24.3 未用信号的连接 ......................................................................................................... 1221 25 工作特性 ............................................................................................................... 1223 26 电气特性 ............................................................................................................... 1224 26.1 最大额定值 ................................................................................................................ 1224 26.2 推荐的工作参数 ......................................................................................................... 1224 26.3 负载条件 ................................................................................................................... 1225 一月 06, 2012 9 Texas Instruments-生产数据 目录 26.4 JTAG 和边界扫描 ...................................................................................................... 1225 26.5 上电和掉电 ................................................................................................................ 1227 26.6 复位 .......................................................................................................................... 1228 26.7 片上低压差(Low Drop-Out,简写为 LDO)稳压器 ..................................................... 1229 26.8 时钟 .......................................................................................................................... 1229 26.8.1 PLL 规格 ................................................................................................................... 1229 26.8.2 PIOSC 规格 .............................................................................................................. 1230 26.8.3 内部 30 KHz 振荡器规格 ............................................................................................ 1230 26.8.4 主振荡器规格 ............................................................................................................ 1230 26.8.5 ADC 工作时的系统时钟规格 ....................................................................................... 1231 26.9 休眠模式 ................................................................................................................... 1232 26.10 闪存 .......................................................................................................................... 1232 26.11 GPIO 模块 ................................................................................................................ 1232 26.12 片外设备接口 (EPI) .................................................................................................... 1233 26.13 模-数转换器 (ADC) .................................................................................................... 1238 26.14 同步串行接口 (SSI) .................................................................................................... 1239 26.15 内部集成电路 (I2C) 接口 ............................................................................................. 1241 26.16 内部集成电路音频 (I2S) 接口 ...................................................................................... 1241 26.17 以太网控制器 ............................................................................................................ 1243 26.18 通用串行总线 (USB) 控制器 ....................................................................................... 1245 26.19 模拟比较器 ................................................................................................................ 1246 26.20 USB 模块 .................................................................................................................. 1246 26.21 电流消耗 ................................................................................................................... 1246 26.21.1 额度功率消耗 ............................................................................................................ 1246 26.21.2 最大的电流消耗 ......................................................................................................... 1247 A 寄存器快速参考 .................................................................................................... 1248 B 订购和联系信息 .................................................................................................... 1301 B.1 订购信息 ................................................................................................................... 1301 B.2 器件标记 ................................................................................................................... 1301 B.3 套件 .......................................................................................................................... 1302 B.4 支持信息 ................................................................................................................... 1302 C C.1 C.1.1 C.1.2 C.1.3 C.2 C.2.1 C.2.2 C.2.3 封装信息 ............................................................................................................... 1303 100 管脚 LQFP 封装 .................................................................................................. 1303 封装尺寸 ................................................................................................................... 1303 托盘尺寸 ................................................................................................................... 1305 卷带尺寸 ................................................................................................................... 1305 108 球 BGA 封装 ....................................................................................................... 1307 封装尺寸 ................................................................................................................... 1307 托盘尺寸 ................................................................................................................... 1309 卷带尺寸 ................................................................................................................... 1310 10 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 插图清单 图 1-1. 图 2-1. 图 2-2. 图 2-3. 图 2-4. 图 2-5. 图 2-6. 图 2-7. 图 3-1. 图 4-1. 图 4-2. 图 4-3. 图 4-4. 图 4-5. 图 5-1. 图 5-2. 图 5-3. 图 5-4. 图 5-5. 图 6-1. 图 7-1. 图 7-2. 图 7-3. 图 7-4. 图 7-5. 图 7-6. 图 8-1. 图 8-2. 图 8-3. 图 8-4. 图 9-1. 图 9-2. 图 9-3. 图 9-4. 图 9-5. 图 9-6. 图 9-7. 图 9-8. 图 9-9. 图 9-10. 图 9-11. 图 9-12. 图 9-13. 图 9-14. 图 9-15. Stellaris LM3S9B92 微控制器高级框图 .................................................................. 73 CPU 结构图 ........................................................................................................ 76 TPIU 结构图 ........................................................................................................ 77 Cortex-M3 的寄存器组。 ...................................................................................... 79 位带映射 ............................................................................................................. 99 数据保存 ........................................................................................................... 100 向量表 .............................................................................................................. 105 异常堆栈框 ........................................................................................................ 107 SRD 使用示例 ................................................................................................... 120 JTAG 模块结构图 ............................................................................................... 178 测试访问端口状态机 .......................................................................................... 181 IDCODE 寄存器格式 .......................................................................................... 186 BYPASS 寄存器格式 .......................................................................................... 186 边界扫描寄存器格式 .......................................................................................... 186 基本 RST 配置 ................................................................................................... 190 延长上电复位时间的外部电路 ............................................................................. 191 复位电路由开关控制 .......................................................................................... 191 功率结构 ........................................................................................................... 194 主时钟树 ........................................................................................................... 196 内部存储器结构图 .............................................................................................. 284 μDMA 结构图 .................................................................................................... 320 乒乓式 μDMA 数据会话的示例 ............................................................................ 326 存储器散聚模式:创建及配置 ............................................................................. 328 存储器散聚模式:μDMA 复制序列 ...................................................................... 329 外设散聚模式:创建及配置 ................................................................................ 331 外设散聚模式:μDMA 复制序列 .......................................................................... 332 数字 I/O 口 ........................................................................................................ 382 模拟/数字 I/O 口 ................................................................................................. 383 GPIODATA 写入实例 .......................................................................................... 384 GPIODATA 读取实例 .......................................................................................... 384 EPI 结构图 ........................................................................................................ 432 SDRAM 非阻塞式读操作时序 .............................................................................. 439 SDRAM 标准读操作时序 .................................................................................... 439 SDRAM 写操作时序 ........................................................................................... 440 HB16 复用模式的示意图 ..................................................................................... 446 主机总线读操作时序,MODE = 0x1,WRHIGH = 0,RDHIGH = 0 ....................... 448 主机总线写操作时序,MODE = 0x1,WRHIGH = 0,RDHIGH = 0 ....................... 448 地址/数据总线复用子模式写操作时序。MODE = 0x0,WRHIGH = 0,RDHIGH = 0 ....................................................................................................................... 449 主机总线写操作时序(地址和数据复用;ALE + 双 CSn 配置) ............................. 449 连续读模式访问时序 .......................................................................................... 449 对片外 FIFO 先写后读操作 ................................................................................. 450 两个数据的 FIFO ............................................................................................... 450 单周期写访问,FRM50= 0;FRMCNT= 0;WRCYC= 0 ....................................... 454 双周期读写访问,FRM50= 0;FRMCNT= 0;RDCYC= 1;WRCYC=1 ................ 454 读访问,FRM50 = 0, FRMCNT = 0, RDCYC = 1 .................................................. 454 一月 06, 2012 11 Texas Instruments-生产数据 目录 图 9-16. 图 9-17. 图 9-18. 图 9-19. 图 9-20. 图 9-21. 图 9-22. 图 9-23. 图 9-24. 图 10-1. 图 10-2. 图 10-3. 图 10-4. 图 10-5. 图 11-1. 图 12-1. 图 12-2. 图 12-3. 图 12-4. 图 12-5. 图 12-6. 图 12-7. 图 12-8. 图 12-9. 图 12-10. 图 12-11. 图 12-12. 图 12-13. 图 12-14. 图 12-15. 图 13-1. 图 13-2. 图 13-3. 图 13-4. 图 13-5. 图 14-1. 图 14-2. 图 14-3. 图 14-4. 图 14-5. 图 14-6. 图 14-7. 图 14-8. 图 14-9. 图 14-10. 图 14-11. 图 14-12. 图 15-1. FRAME 信号时序,FRM50 = 0 且 FRMCNT= 0 ................................................... 455 FRAME 信号时序,FRM50 = 0 且 FRMCNT= 1 ................................................... 455 FRAME 信号时序,FRM50 = 0 且 FRMCNT= 2 ................................................... 455 FRAME 信号时序,FRM50 = 1 且 FRMCNT= 0 ................................................... 456 FRAME 信号时序,FRM50 = 1 且 FRMCNT= 1 ................................................... 456 FRAME 信号时序,FRM50 = 1 且 FRMCNT= 2 ................................................... 456 iRDY 信号操作,FRM50 = 0;FRMCNT= 0 且 RD2CYC= 1 ................................. 457 EPI 时钟时序,CLKGATE = 1;WR2CYC= 0 ...................................................... 457 EPI 时钟时序,CLKGATE = 1;WR2CYC= 1 ...................................................... 457 GPTM 模块的结构图 .......................................................................................... 499 定时器菊花链 .................................................................................................... 504 输入边沿计数模式实例 ....................................................................................... 506 16 位输入边沿计时模式实例 ............................................................................... 507 16 位 PWM 模式实例 ......................................................................................... 508 WDT 模块的结构图 ............................................................................................ 543 两个 ADC 模块的连接结构图 .............................................................................. 568 ADC 模块结构图 ................................................................................................ 568 ADC 采样相位 ................................................................................................... 572 ADC 采样率倍增 ................................................................................................ 572 交错采样 ........................................................................................................... 573 采样平均的实例 ................................................................................................. 574 内部电压转换结果 .............................................................................................. 575 外部电源时的转换结果 ....................................................................................... 576 差分采样范围:VIN_ODD = 1.5 V .......................................................................... 577 差分采样范围:VIN_ODD = 0.75 V ........................................................................ 578 差分采样范围:VIN_ODD = 2.25 V ........................................................................ 578 内部温度传感器特性 .......................................................................................... 579 低值带工作(CIC = 0x0 和/或 CTC = 0x0) ......................................................... 581 中值带工作(CIC = 0x1 和/或 CTC = 0x1) ......................................................... 582 高值带工作(CIC = 0x3 和/或 CTC = 0x3) ......................................................... 583 UART 模块的结构图 ........................................................................................... 641 UART 字符帧 ..................................................................................................... 644 IrDA 数据调制 .................................................................................................... 645 LIN 报文 ............................................................................................................ 647 LIN 同步域 ........................................................................................................ 648 SSI 模块的结构图 .............................................................................................. 699 TI 同步串行帧格式(单次传输) ......................................................................... 703 TI 同步串行的帧格式(连续传输) ...................................................................... 703 SPO = 0 和 SPH = 0 时 Freescale SPI 帧格式(单次传输) ................................. 704 SPO = 0 和 SPH = 0时 Freescale SPI 的帧格式(连续传输) ............................... 704 SPO = 0 和 SPH = 1 时的 Freescale SPI 帧格式 .................................................. 705 SPO = 1 和 SPH = 0 时 Freescale SPI 的帧格式(单次传输) .............................. 706 SPO = 1 和 SPH = 0 时 Freescale SPI 的帧格式(连续传输) .............................. 706 SPO = 1 和 SPH = 1 时的 Freescale SPI 帧格式 .................................................. 707 MICROWIRE 帧格式(单帧) ............................................................................ 707 MICROWIRE 帧格式(连续传输) ...................................................................... 708 MICROWIRE 帧格式,SSIFss 输入建立和保持时间要求 ...................................... 709 I2C 结构图 ......................................................................................................... 738 12 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 15-2. 图 15-3. 图 15-4. 图 15-5. 图 15-6. 图 15-7. 图 15-8. 图 15-9. 图 15-10. 图 15-11. 图 15-12. 图 15-13. 图 16-1. 图 16-2. 图 16-3. 图 16-4. 图 17-1. 图 17-2. 图 17-3. 图 17-4. 图 18-1. 图 18-2. 图 18-3. 图 18-4. 图 19-1. 图 20-1. 图 20-2. 图 20-3. 图 21-1. 图 21-2. 图 21-3. 图 21-4. 图 21-5. 图 21-6. 图 22-1. 图 22-2. 图 23-1. 图 23-2. 图 26-1. 图 26-2. 图 26-3. 图 26-4. 图 26-5. 图 26-6. 图 26-7. 图 26-8. 图 26-9. 图 26-10. I2C 总线配置 ...................................................................................................... 740 开始和停止条件 ................................................................................................. 740 带 7 位地址的完整数据传输 ................................................................................ 741 第一字节中的 R/S 位 .......................................................................................... 741 I2C 总线位传输过程中的数据有效性 .................................................................... 741 主机单次传输 .................................................................................................... 745 主机单次接收 .................................................................................................... 746 多次重复开始条件下的主机传输 .......................................................................... 747 多次重复开始条件下的主机接收 .......................................................................... 748 多次重复开始条件下的主机传输之后多次重复开始条件下的主机接收 .................... 749 多次重复开始条件下的主机接收之后多次重复开始条件下的主机传输 .................... 750 从机指令序列 .................................................................................................... 751 I2S 结构图 ......................................................................................................... 775 I2S 数据传输 ...................................................................................................... 777 左对齐数据传输 ................................................................................................. 778 右对齐数据传输 ................................................................................................. 778 CAN 控制器结构图 ............................................................................................. 808 CAN 数据帧/远程帧 ............................................................................................ 810 FIFO 缓冲区中的报文对象 .................................................................................. 817 CAN 位时间 ....................................................................................................... 820 以太网控制器 .................................................................................................... 856 以太网控制器 结构图 .......................................................................................... 856 以太网帧 ........................................................................................................... 858 以太网接口 ........................................................................................................ 864 USB 模块结构图 ................................................................................................ 908 模拟比较器模块的结构图 .................................................................................. 1040 比较单元的结构 ............................................................................................... 1042 比较器内部参考结构 ......................................................................................... 1042 PWM 模块结构图 ............................................................................................. 1053 PWM 发生器模块结构图 ................................................................................... 1054 PWM 递减计数模式 .......................................................................................... 1057 PWM 递增/递减计数模式 .................................................................................. 1058 递增/递减计数模式产生 PWM 信号的例子 .......................................................... 1058 PWM 死区发生器 ............................................................................................. 1059 QEI结构图 ....................................................................................................... 1125 正交编码器和速度预分频器的操作 ..................................................................... 1127 100 管脚 LQFP 封装管脚图 .............................................................................. 1144 108 焊珠 BGA 封装管脚图(俯视图) ............................................................... 1145 负载条件 ......................................................................................................... 1225 JTAG 测试时钟输入时序 ................................................................................... 1226 JTAG 测试访问端口 (TAP) 时序 ........................................................................ 1226 上电复位时序 ................................................................................................... 1227 掉电复位时序 ................................................................................................... 1227 上电复位和电压参数 ......................................................................................... 1228 外部复位时序 (RST) ......................................................................................... 1228 软件复位时序 ................................................................................................... 1228 看门狗复位时序 ............................................................................................... 1229 MOSC 故障复位时序 ........................................................................................ 1229 一月 06, 2012 13 Texas Instruments-生产数据 目录 图 26-11. 图 26-12. 图 26-13. 图 26-14. 图 26-15. 图 26-16. 图 26-17. 图 26-18. 图 26-19. 图 26-20. 图 26-21. 图 26-22. 图 26-23. 图 26-24. 图 26-25. 图 26-26. 图 26-27. 图 26-28. 图 26-29. 图 C-1. 图 C-2. 图 C-3. 图 C-4. 图 C-5. 图 C-6. SDRAM 初始化及装载模式寄存器的时序 ........................................................... 1233 SDRAM 读时序 ................................................................................................ 1234 SDRAM 写时序 ................................................................................................ 1234 HB8/HB16 模式读操作时序 ............................................................................... 1235 HB8/HB16 模式写操作时序 ............................................................................... 1235 HB8/HB16 模式复用读定时 ............................................................................... 1236 HB8/HB16 模式复用写定时 ............................................................................... 1236 通用模式下读写操作时序 .................................................................................. 1237 通用模式下的 iRDY 时序 .................................................................................. 1237 ADC 输入端等效框图 ....................................................................................... 1239 TI 帧格式 (FRF = 01) 的 SSI 时序,单次传输时序量程 ........................................ 1240 MICROWIRE 帧格式 (FRF = 10) 的 SSI 时序,单次传输 .................................... 1240 SPI帧 格式 (FRF = 00) 的 SSI 时序,SPH = 1 ................................................... 1240 I2C 时序 .......................................................................................................... 1241 I2S 主机模式发送时序 ....................................................................................... 1242 I2S 主机模式接收时序 ....................................................................................... 1242 I2S 从机模式发送时序 ....................................................................................... 1243 I2S 从机模式接收时序 ....................................................................................... 1243 以太网 XTLP 振荡器特性 .................................................................................. 1245 100 管脚 LQFP 封装尺寸 .................................................................................. 1303 100 管脚 LQFP 托盘尺寸 .................................................................................. 1305 100 管脚 LQFP 卷带尺寸 .................................................................................. 1306 108 球 BGA 封装尺寸 ....................................................................................... 1307 108 焊珠 BGA 托盘尺寸 ................................................................................... 1309 108 焊珠 BGA 卷带尺寸 ................................................................................... 1310 14 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表格清单 表 1. 表 2. 表 2-1. 表 2-2. 表 2-3. 表 2-4. 表 2-5. 表 2-6. 表 2-7. 表 2-8. 表 2-9. 表 2-10. 表 2-11. 表 2-12. 表 2-13. 表 3-1. 表 3-2. 表 3-3. 表 3-4. 表 3-5. 表 3-6. 表 3-7. 表 3-8. 表 3-9. 表 4-1. 表 4-2. 表 4-3. 表 4-4. 表 5-1. 表 5-2. 表 5-3. 表 5-4. 表 5-5. 表 5-6. 表 5-7. 表 5-8. 表 5-9. 表 6-1. 表 6-2. 表 6-3. 表 7-1. 表 7-2. 表 7-3. 表 7-4. 表 7-5. 表 7-6. 修订历史 ............................................................................................................. 40 文档约定 ............................................................................................................. 50 处理器模式、特权等级和堆栈使用摘要 .................................................................. 79 处理器 寄存器映射 ............................................................................................... 79 PSR 寄存器组合 .................................................................................................. 85 存储器映射 .......................................................................................................... 93 存储器访问行为 ................................................................................................... 96 SRAM 存储器位带区 ............................................................................................ 97 外设存储器位带区 ................................................................................................ 98 异常类型 ........................................................................................................... 103 中断 .................................................................................................................. 103 异常返回行为 .................................................................................................... 108 故障 .................................................................................................................. 108 故障状态寄存器和故障地址寄存器 ...................................................................... 109 Cortex-M3 指令摘要 ........................................................................................... 111 内核外设寄存器区域 .......................................................................................... 115 存储器属性摘要 ................................................................................................. 118 TEX、S、C 和 B 位域编码 ................................................................................. 120 存储器属性编码对应的高速缓存策略 ................................................................... 121 AP 位域编码 ...................................................................................................... 121 Stellaris 微控制器的存储器区属性 ....................................................................... 122 外设 寄存器映射 ................................................................................................ 122 中断优先级分组 ................................................................................................. 148 SIZE 域数值示例 ................................................................................................ 175 JTAG_SWD_SWO 信号 (100LQFP) .................................................................... 178 JTAG_SWD_SWO 信号 (108BGA) ..................................................................... 179 上电复位或 RST 置位后的 JTAG 端口管脚状态 .................................................... 179 JTAG 指令寄存器命令 ........................................................................................ 184 System Control & Clocks(系统控制及时钟) 信号 (100LQFP) ............................. 188 System Control & Clocks(系统控制及时钟) 信号 (108BGA) .............................. 188 复位源 .............................................................................................................. 189 时钟源选项 ........................................................................................................ 195 使用 SYSDIV域的可能的系统时钟频率 ................................................................ 197 使用 SYSDIV2 域的可能的系统时钟频率 ............................................................. 197 当 DIV400=1 时可能的系统时钟频率示例 ............................................................ 198 系统控制 寄存器映射 .......................................................................................... 202 替代 RCC 域的 RCC2 域 .................................................................................... 222 Flash 存储器保护策略组合 ................................................................................. 287 用户可编程的 Flash 存储器驻留寄存器 ................................................................ 290 Flash 寄存器映射 ............................................................................................... 291 μDMA 通道分配 ................................................................................................. 321 所支持的请求类型 .............................................................................................. 322 控制结构体的存储器映射 .................................................................................... 323 通道控制结构体 ................................................................................................. 324 μDMA 读操作实例:8 位外设 ............................................................................. 333 μDMA 中断分配 ................................................................................................. 334 一月 06, 2012 15 Texas Instruments-生产数据 目录 表 7-7. 表 7-8. 表 7-9. 表 7-10. 表 7-11. 表 7-12. 表 7-13. 表 8-1. 表 8-2. 表 8-3. 表 8-4. 表 8-5. 表 8-6. 表 8-7. 表 8-8. 表 8-9. 表 8-10. 表 8-11. 表 8-12. 表 9-1. 表 9-2. 表 9-3. 表 9-4. 表 9-5. 表 9-6. 表 9-7. 表 9-8. 表 10-1. 表 10-2. 表 10-3. 表 10-4. 表 10-5. 表 10-6. 表 11-1. 表 12-1. 表 12-2. 表 12-3. 表 12-4. 表 12-5. 表 13-1. 表 13-2. 表 13-3. 表 13-4. 表 14-1. 表 14-2. 表 14-3. 表 15-1. 表 15-2. 第 30 号通道的通道控制结构体偏移量 ................................................................. 335 存储器传输示例的通道控制字配置 ...................................................................... 335 第 7 号通道的通道控制结构体偏移量 ................................................................... 336 外设传输示例的通道控制字配置 .......................................................................... 336 第 8 号通道的主控制结构体及副控制结构体偏移量 ............................................... 337 外设乒乓接收示例的通道控制字配置 ................................................................... 338 μDMA 寄存器映射 .............................................................................................. 340 具有非 0 复位值的 GPIO 管脚 ............................................................................. 378 GPIO 管脚和复用功能 (100LQFP) ....................................................................... 378 GPIO 管脚和复用功能 (108BGA) ........................................................................ 380 GPIO 端口配置示例 ........................................................................................... 386 GPIO 中断配置示例 ........................................................................................... 386 具有非 0 复位值的 GPIO 管脚 ............................................................................. 387 GPIO 寄存器映射 ............................................................................................... 388 具有非 0 复位值的 GPIO 管脚 ............................................................................. 399 具有非 0 复位值的 GPIO 管脚 ............................................................................. 405 具有非 0 复位值的 GPIO 管脚 ............................................................................. 407 具有非 0 复位值的 GPIO 管脚 ............................................................................. 410 具有非 0 复位值的 GPIO 管脚 ............................................................................. 416 EPI(片外设备接口) 信号 (100LQFP) ............................................................... 432 EPI(片外设备接口) 信号 (108BGA) ................................................................. 433 EPI SDRAM 信号连接 ........................................................................................ 437 HB8/HB16 模式的地址容量 ................................................................................. 441 EPI HB8 信号连接 ............................................................................................. 442 EPI HB16 信号连接 ............................................................................................ 443 EPI 通用模式的信号连接 .................................................................................... 452 片外设备接口 (EPI) 寄存器映射 .......................................................................... 458 可用的 CCP 管脚 ............................................................................................... 499 General-Purpose Timers(通用定时器) 信号 (100LQFP) .................................... 500 General-Purpose Timers(通用定时器) 信号 (108BGA) ..................................... 501 通用定时器功能 ................................................................................................. 502 带预分频器的 16 位定时器配置 ........................................................................... 504 定时器 寄存器映射 ............................................................................................. 512 看门狗定时器 (WDT) 寄存器映射 ........................................................................ 544 ADC 信号 (100LQFP) ........................................................................................ 569 ADC 信号 (108BGA) .......................................................................................... 569 采样序列发生器的采样数和 FIFO 深度 ................................................................ 570 差分采样对 ........................................................................................................ 576 ADC 寄存器映射 ................................................................................................ 584 UART 信号 (100LQFP) ...................................................................................... 641 UART 信号 (108BGA) ........................................................................................ 642 流控模式 ........................................................................................................... 647 UART 寄存器映射 .............................................................................................. 651 SSI 信号 (100LQFP) .......................................................................................... 700 SSI 信号 (108BGA) ............................................................................................ 700 SSI 寄存器映射 .................................................................................................. 711 I2C 信号 (100LQFP) .......................................................................................... 739 I2C 信号 (108BGA) ............................................................................................ 739 16 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 15-3. 表 15-4. 表 15-5. 表 16-1. 表 16-2. 表 16-3. 表 16-4. 表 16-5. 表 16-6. 表 16-7. 表 16-8. 表 16-9. 表 16-10. 表 17-1. 表 17-2. 表 17-3. 表 17-4. 表 17-5. 表 17-6. 表 18-1. 表 18-2. 表 18-3. 表 18-4. 表 19-1. 表 19-2. 表 19-3. 表 19-4. 表 19-5. 表 19-6. 表 20-1. 表 20-2. 表 20-3. 表 20-4. 表 21-1. 表 21-2. 表 21-3. 表 22-1. 表 22-2. 表 22-3. 表 24-1. 表 24-2. 表 24-3. 表 24-4. 表 24-5. 表 24-6. 表 24-7. 表 24-8. 表 24-9. I2C 主机定时器周期与速度模式示例 .................................................................... 742 内部集成电路 (I2C) 接口 寄存器映射 ................................................................... 752 为 I2CMCS[3:0] 域写入域解码 ............................................................................ 757 I2S 信号 (100LQFP) ........................................................................................... 775 I2S 信号 (108BGA) ............................................................................................ 776 I2S 发送 FIFO 接口 ............................................................................................ 778 晶振频率(从 3.5795 MHz 到 5 MHz) ............................................................... 779 晶振频率(从 5.12 MHz 到 8.192 MHz) ............................................................. 780 晶振频率(从 10 MHz 到 14.3181 MHz) ............................................................ 780 晶振频率(从 16 MHz 到 16.384 MHz) .............................................................. 781 I2S 接收 FIFO 接口 ............................................................................................ 782 音频格式配置 .................................................................................................... 784 内部集成电路音频 (I2S) 接口 寄存器映射 ............................................................. 785 CAN(控制器局域网) 信号 (100LQFP) .............................................................. 808 CAN(控制器局域网) 信号 (108BGA) ............................................................... 809 报文对象的配置 ................................................................................................. 814 CAN 协议范围 ................................................................................................... 820 CANBIT 寄存器值 .............................................................................................. 821 CAN 寄存器映射 ................................................................................................ 824 Ethernet(以太网) 信号 (100LQFP) .................................................................. 857 Ethernet(以太网) 信号 (108BGA) .................................................................... 857 TX 和 RX FIFO 的组织结构 ................................................................................ 859 以太网 寄存器映射 ............................................................................................. 865 USB 信号 (100LQFP) ......................................................................................... 908 USB 信号 (108BGA) .......................................................................................... 909 余数 (MAXLOAD/4) ............................................................................................ 918 实际读出的字节 ................................................................................................. 918 清除 RXRDY 的数据包大小 ................................................................................ 918 通用串行总线 (USB) 控制器 寄存器映射 .............................................................. 920 Analog Comparators(模拟比较器) 信号 (100LQFP) ........................................ 1040 Analog Comparators(模拟比较器) 信号 (108BGA) ......................................... 1041 内部参考电压和 ACREFCTL 域值 ..................................................................... 1043 模拟比较器 寄存器映射 .................................................................................... 1044 PWM 信号 (100LQFP) ...................................................................................... 1054 PWM 信号 (108BGA) ....................................................................................... 1055 PWM 寄存器映射 ............................................................................................. 1062 QEI 信号 (100LQFP) ........................................................................................ 1125 QEI 信号 (108BGA) .......................................................................................... 1126 QEI 寄存器映射 ............................................................................................... 1129 默认为复用功能的 GPIO 管脚 ........................................................................... 1146 按管脚编号分类的信号 ..................................................................................... 1147 按信号名称分类的信号 ..................................................................................... 1158 按功能分类的信号(GPIO 除外) ..................................................................... 1168 GPIO 管脚和复用功能 ...................................................................................... 1178 复用功能的可能的管脚赋值 ............................................................................... 1181 按管脚编号分类的信号 ..................................................................................... 1184 按信号名称分类的信号 ..................................................................................... 1196 按功能分类的信号(GPIO 除外) ..................................................................... 1205 一月 06, 2012 17 Texas Instruments-生产数据 目录 表 24-10. 表 24-11. 表 24-12. 表 24-13. 表 25-1. 表 25-2. 表 25-3. 表 26-1. 表 26-2. 表 26-3. 表 26-4. 表 26-5. 表 26-6. 表 26-7. 表 26-8. 表 26-9. 表 26-10. 表 26-11. 表 26-12. 表 26-13. 表 26-14. 表 26-15. 表 26-16. 表 26-17. 表 26-18. 表 26-19. 表 26-20. 表 26-21. 表 26-22. 表 26-23. 表 26-24. 表 26-25. 表 26-26. 表 26-27. 表 26-28. 表 26-29. 表 26-30. 表 26-31. 表 26-32. 表 26-33. 表 26-34. 表 26-35. 表 26-36. 表 26-37. 表 26-38. 表 26-39. 表 26-40. 表 26-41. GPIO 管脚和复用功能 ...................................................................................... 1215 复用功能的可能的管脚赋值 ............................................................................... 1218 未用信号的连接(100 管脚 LQFP) .................................................................. 1221 未用信号的连接(108 焊珠 BGA) .................................................................... 1222 温度特性 ......................................................................................................... 1223 热学特性 ......................................................................................................... 1223 ESD 最大额定速率 ........................................................................................... 1223 最大额定值 ...................................................................................................... 1224 推荐的 DC 工作参数 ......................................................................................... 1224 JTAG 特性 ....................................................................................................... 1225 电源特性 ......................................................................................................... 1227 复位特性 ......................................................................................................... 1228 LDO 稳压器特性 .............................................................................................. 1229 锁相环 (PLL) 特性 ............................................................................................ 1229 实际的 PLL 频率 .............................................................................................. 1230 PIOSC 时钟特性 .............................................................................................. 1230 30 kHz 时钟特性 .............................................................................................. 1230 主振荡器时钟特性 ............................................................................................ 1230 支持的 MOSC 晶振频率 ................................................................................... 1231 ADC 工作时的系统时钟特性 ............................................................................. 1231 休眠模式交流特性 ............................................................................................ 1232 闪存特性 ......................................................................................................... 1232 GPIO 模块特性 ................................................................................................ 1232 EPI SDRAM 特性 ............................................................................................. 1233 EPI SDRAM 接口特性 ...................................................................................... 1233 EPI 8 位/16 位主机总线模式下接口特性 ............................................................. 1234 EPI 通用接口特性 ............................................................................................ 1236 ADC 特性 ........................................................................................................ 1238 ADC 模块外部参考特性 .................................................................................... 1239 ADC 模块内部参考特性 .................................................................................... 1239 SS 特性 ........................................................................................................... 1239 I2C 特性 .......................................................................................................... 1241 I2S 主机时钟(接收及发送) ............................................................................. 1241 I2S 从机时钟(接收及发送) ............................................................................. 1241 I2S 主机模式 .................................................................................................... 1242 I2S 从机模式 .................................................................................................... 1242 以太网控制器直流特性 ..................................................................................... 1243 100BASE-TX 发送器特性 ................................................................................. 1243 100BASE-TX 发送器特性(供参考) ................................................................. 1243 100BASE-TX 接收器特性 ................................................................................. 1243 10BASE-T 发送器特性 ..................................................................................... 1244 10BASE-T 发送器特性(供参考) ..................................................................... 1244 10BASE-T 接收器特性 ..................................................................................... 1244 隔离变压器 ...................................................................................................... 1244 以太网参考晶振 ............................................................................................... 1245 以太网 XTLP 振荡器特性 .................................................................................. 1245 USB 控制器模块特性 ........................................................................................ 1245 模拟比较器特性 ............................................................................................... 1246 18 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 26-42. 表 26-43. 表 26-44. 表 26-45. 表 26-46. 表 B-1. 模拟比较器电压参考特性 .................................................................................. 1246 USB 控制器的直流特性 .................................................................................... 1246 额度功率消耗 ................................................................................................... 1246 详细的电流规格 ............................................................................................... 1247 外部的 VDDC 源电流规格 .................................................................................. 1247 器件订购信息 ................................................................................................... 1301 一月 06, 2012 19 Texas Instruments-生产数据 目录 寄存器列表 Cortex-M3 处理器 ............................................................................................................................ 75 寄存器 1: Cortex 通用寄存器 0(R0) ............................................................................................. 81 寄存器 2: Cortex 通用寄存器 1(R1) ............................................................................................. 81 寄存器 3: Cortex 通用寄存器 2(R2) ............................................................................................. 81 寄存器 4: Cortex 通用寄存器 3(R3) ............................................................................................. 81 寄存器 5: Cortex 通用寄存器 4(R4) ............................................................................................. 81 寄存器 6: Cortex 通用寄存器 5(R5) ............................................................................................. 81 寄存器 7: Cortex 通用寄存器 6(R6) ............................................................................................. 81 寄存器 8: Cortex 通用寄存器 7(R7) ............................................................................................. 81 寄存器 9: Cortex 通用寄存器 8(R8) ............................................................................................. 81 寄存器 10: Cortex 通用寄存器 9(R9) ............................................................................................. 81 寄存器 11: Cortex 通用寄存器 10(R10) .......................................................................................... 81 寄存器 12: Cortex 通用寄存器 11(R11) .......................................................................................... 81 寄存器 13: Cortex 通用寄存器 12(R12) .......................................................................................... 81 寄存器 14: 堆栈指针寄存器(SP) .................................................................................................... 82 寄存器 15: 链接寄存器(LR) ........................................................................................................... 83 寄存器 16: 程序计数器寄存器(PC) ................................................................................................ 84 寄存器 17: 程序状态寄存器(PSR) .................................................................................................. 85 寄存器 18: 优先级屏蔽寄存器(PRIMASK) ...................................................................................... 89 寄存器 19: 故障屏蔽寄存器(FAULTMASK) ..................................................................................... 90 寄存器 20: 基本优先级屏蔽寄存器(BASEPRI) ................................................................................ 91 寄存器 21: 控制寄存器(CONTROL) ............................................................................................... 92 Cortex-M3 外设 ............................................................................................................................. 115 寄存器 1: SysTick 控制及状态寄存器(STCTRL),偏移量 0x010 .................................................. 125 寄存器 2: SysTick 重载值寄存器(STRELOAD),偏移量 0x014 .................................................... 127 寄存器 3: SysTick 当前值寄存器(STCURRENT),偏移量 0x018 ................................................. 128 寄存器 4: 中断 0-31 集启用寄存器(EN0),偏移量 0x100 ............................................................. 129 寄存器 5: 中断 32-54 设置启用寄存器(EN1),偏移量 0x104 ........................................................ 130 寄存器 6: 中断 0-31 清除启用寄存器(DIS0),偏移量 0x180 ......................................................... 131 寄存器 7: 中断 32-54 清除启用寄存器(DIS1),偏移量 0x184 ....................................................... 132 寄存器 8: 中断 0-31 置位暂挂寄存器(PEND0),偏移量 0x200 ..................................................... 133 寄存器 9: 中断 32-54 置位暂挂寄存器(PEND1),偏移量 0x204 ................................................... 134 寄存器 10: 中断 0-31 清除暂挂寄存器(UNPEND0),偏移量 0x280 ................................................ 135 寄存器 11: 中断 32-54 清除暂挂寄存器(UNPEND1),偏移量 0x284 .............................................. 136 寄存器 12: 中断 0-31 活动位寄存器(ACTIVE0),偏移量 0x300 ..................................................... 137 寄存器 13: 中断 32-54 活动位寄存器(ACTIVE1),偏移量 0x304 .................................................... 138 寄存器 14: 中断 0-3 优先级寄存器(PRI0),偏移量 0x400 .............................................................. 139 寄存器 15: 中断4-7 优先级寄存器(PRI1),偏移量 0x404 ............................................................... 139 寄存器 16: 中断 8-11 优先级寄存器(PRI2),偏移量 0x408 ............................................................ 139 寄存器 17: 中断 12-15 优先级寄存器(PRI3),偏移量 0x40C ......................................................... 139 寄存器 18: 中断 16-19 优先级寄存器(PRI4),偏移量 0x410 .......................................................... 139 寄存器 19: 中断 20-23 优先级寄存器(PRI5),偏移量 0x414 .......................................................... 139 寄存器 20: 中断 24-27 优先级寄存器(PRI6),偏移量 0x418 .......................................................... 139 寄存器 21: 中断 28-31 优先级寄存器(PRI7),偏移量 0x41C ......................................................... 139 寄存器 22: 中断 32-35 优先级寄存器(PRI8),偏移量 0x420 .......................................................... 139 20 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: 寄存器 38: 寄存器 39: 寄存器 40: 寄存器 41: 寄存器 42: 寄存器 43: 寄存器 44: 寄存器 45: 寄存器 46: 寄存器 47: 寄存器 48: 寄存器 49: 寄存器 50: 寄存器 51: 寄存器 52: 寄存器 53: 寄存器 54: 中断 36-39 优先级寄存器(PRI9),偏移量 0x424 .......................................................... 139 中断 40-43 优先级寄存器(PRI10),偏移量 0x428 ........................................................ 139 中断 44-47 优先级寄存器(PRI11),偏移量 0x42C ........................................................ 139 中断 48-51 优先级寄存器(PRI12),偏移量 0x430 ........................................................ 139 中断 52-54 优先级寄存器(PRI13),偏移量 0x434 ........................................................ 139 软件触发中断寄存器(SWTRIG),偏移量 0xF00 ........................................................... 141 辅助控制寄存器(ACTLR),偏移量 0x008 .................................................................... 142 CPU ID 基础寄存器(CPUID),偏移量 0xD00 ............................................................... 143 中断控制及状态寄存器(INTCTRL),偏移量 0xD04 ....................................................... 144 向量表寄存器(VTABLE),偏移量 0xD08 ..................................................................... 147 应用程序中断及复位控制寄存器(APINT),偏移量 0xD0C ............................................. 148 系统控制寄存器(SYSCTRL),偏移量 0xD10 ............................................................... 150 配置及控制寄存器(CFGCTRL),偏移量 0xD14 ............................................................ 152 系统处理程序优先级寄存器 1(SYSPRI1),偏移量 0xD18 ............................................. 154 系统处理程序优先级寄存器 2(SYSPRI2),偏移量 0xD1C ............................................. 155 系统处理程序优先级寄存器 3(SYSPRI3),偏移量 0xD20 ............................................. 156 系统处理程序控制及状态寄存器(SYSHNDCTRL),偏移量 0xD24 ................................. 157 可配置故障状态寄存器(FAULTSTAT),偏移量 0xD28 .................................................. 160 硬故障状态寄存器(HFAULTSTAT),偏移量 0xD2C ...................................................... 166 存储器管理故障地址寄存器(MMADDR),偏移量 0xD34 ............................................... 167 总线故障地址寄存器(FAULTADDR),偏移量 0xD38 ..................................................... 168 MPU 类型寄存器(MPUTYPE),偏移量 0xD90 ............................................................. 169 MPU 控制寄存器(MPUCTRL),偏移量 0xD94 ............................................................. 170 MPU 区编号寄存器(MPUNUMBER),偏移量 0xD98 .................................................... 172 MPU 区基地址寄存器(MPUBASE),偏移量 0xD9C ..................................................... 173 MPU 区基地址别名寄存器 1(MPUBASE1),偏移量 0xDA4 .......................................... 173 MPU 区基地址别名寄存器 2(MPUBASE2),偏移量 0xDAC .......................................... 173 MPU 区基地址别名寄存器 3(MPUBASE3),偏移量 0xDB4 .......................................... 173 MPU 区属性和大小寄存器(MPUATTR),偏移量 0xDA0 ............................................... 175 MPU 区属性和大小别名寄存器 1(MPUATTR1),偏移量 0xDA8 .................................... 175 MPU 区属性和大小别名寄存器 2(MPUATTR2),偏移量 0xDB0 .................................... 175 MPU 区属性和大小别名寄存器 3(MPUATTR3),偏移量 0xDB8 .................................... 175 系统控制 ......................................................................................................................................... 188 寄存器 1: 器件标识寄存器 0(DID0),偏移量 0x000 ..................................................................... 204 寄存器 2: 掉电复位控制寄存器(PBORCTL),偏移量 0x030 ......................................................... 206 寄存器 3: 原始中断状态寄存器(RIS),偏移量 0x050 ................................................................... 207 寄存器 4: 中断屏蔽控制寄存器(IMC),偏移量 0x054 .................................................................. 209 寄存器 5: 屏蔽的中断状态和清除寄存器(MISC),偏移量 0x058 ................................................... 211 寄存器 6: 复位原因寄存器(RESC),偏移量 0x05C ..................................................................... 213 寄存器 7: 运行模式时钟配置寄存器(RCC),偏移量 0x060 ........................................................... 215 寄存器 8: XTAL 到 PLL 转换寄存器(PLLCFG),偏移量 0x064 ..................................................... 219 寄存器 9: GPIO 高性能总线控制寄存器(GPIOHBCTL),偏移量 0x06C ........................................ 220 寄存器 10: 运行模式时钟配置寄存器 2(RCC2),偏移量 0x070 ...................................................... 222 寄存器 11: 主振荡器控制寄存器(MOSCCTL),偏移量 0x07C ........................................................ 225 寄存器 12: 深度睡眠时钟配置寄存器(DSLPCLKCFG),偏移量 0x144 ............................................ 226 寄存器 13: 精确内部振荡器校准寄存器(PIOSCCAL),偏移量 0x150 .............................................. 228 寄存器 14: I2S MCLK 配置寄存器(2SMCLKCFG),偏移量 0x170 .................................................. 229 寄存器 15: 器件标识寄存器 1(DID1),偏移量 0x004 ..................................................................... 231 一月 06, 2012 21 Texas Instruments-生产数据 目录 寄存器 16: 寄存器 17: 寄存器 18: 寄存器 19: 寄存器 20: 寄存器 21: 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: 寄存器 38: 器件功能寄存器 0(DC0),偏移量 0x008 ...................................................................... 233 器件功能寄存器 1(DC1),偏移量 0x010 ...................................................................... 234 器件功能寄存器 2(DC2),偏移量 0x014 ...................................................................... 236 器件功能寄存器 3(DC3),偏移量 0x018 ...................................................................... 238 器件功能寄存器 4(DC4),偏移量 0x01C ..................................................................... 241 器件功能寄存器 5(DC5),偏移量 0x020 ...................................................................... 243 器件功能寄存器 6(DC6),偏移量 0x024 ...................................................................... 245 器件功能寄存器 7(DC7),偏移量 0x028 ...................................................................... 246 器件功能 8 ADC 通道(DC8),偏移量 0x02C ................................................................ 250 器件功能 9 ADC 数字比较器(DC9),偏移量 0x190 ...................................................... 253 非易失性存储器信息寄存器(NVMSTAT),偏移量 0x1A0 ............................................... 255 运行模式时钟门控控制寄存器 0(RCGC0),偏移量 0x100 ............................................. 256 睡眠模式时钟门控控制寄存器 0(SCGC0),偏移量 0x110 ............................................. 258 深度睡眠模式时钟门控控制寄存器 0(DCGC0),偏移量 0x120 ...................................... 260 运行模式时钟门控控制寄存器 1(RCGC1),偏移量 0x104 ............................................. 262 睡眠模式时钟门控控制寄存器 1(SCGC1),偏移量 0x114 ............................................. 265 深度睡眠模式时钟门控控制寄存器 1(DCGC1),偏移量 0x124 ...................................... 268 运行模式时钟门控控制寄存器 2(RCGC2),偏移量 0x108 ............................................. 271 睡眠模式时钟门控控制寄存器 2(SCGC2),偏移量 0x118 ............................................. 273 深度睡眠模式时钟门控控制寄存器 2(DCGC2),偏移量 0x128 ...................................... 275 软件复位控制寄存器 0(SRCR0),偏移量 0x040 .......................................................... 277 软件复位控制寄存器 1(SRCR1),偏移量 0x044 .......................................................... 279 软件复位控制寄存器 2(SRCR2),偏移量 0x048 .......................................................... 282 内部存储器 ..................................................................................................................................... 284 寄存器 1: Flash 存储器地址寄存器(FMA),偏移量 0x000 ............................................................ 293 寄存器 2: Flash 存储器数据寄存器(FMD),偏移量 0x004 ............................................................ 294 寄存器 3: Flash 存储器控制寄存器(FMC),偏移量 0x008 ............................................................ 295 寄存器 4: Flash 控制器原始中断状态寄存器(FCRIS),偏移量 0x00C ........................................... 297 寄存器 5: Flash 控制器中断屏蔽寄存器(FCIM),偏移量 0x010 .................................................... 298 寄存器 6: Flash 控制器屏蔽中断状态和清除寄存器(FCMISC),偏移量 0x014 ............................... 299 寄存器 7: Flash 存储器控制寄存器 2(FMC2),偏移量 0x020 ....................................................... 300 寄存器 8: Flash 写缓冲器有效寄存器(FWBVAL),偏移量 0x030 .................................................. 301 寄存器 9: Flash 控制寄存器(FCTL),偏移量 0x0F8 .................................................................... 302 寄存器 10: Flash 写入缓冲区寄存器 n(FWBn),偏移量 0x100 - 0x17C .......................................... 303 寄存器 11: ROM 控制寄存器(RMCTL),偏移量 0x0F0 ................................................................. 304 寄存器 12: Flash 存储器保护读取启用寄存器 0(FMPRE0),偏移量 0x130 和 0x200 ....................... 305 寄存器 13: Flash 存储器保护编程启用寄存器 0(FMPPE0),偏移量 0x134 和 0x400 ....................... 306 寄存器 14: 启动配置寄存器(BOOTCFG),偏移量 0x1D0 .............................................................. 307 寄存器 15: 用户寄存器 0(USER_REG0),偏移量 0x1E0 ............................................................... 309 寄存器 16: 用户寄存器 1(USER_REG1),偏移量 0x1E4 ............................................................... 310 寄存器 17: 用户寄存器 2(USER_REG2),偏移量 0x1E8 ............................................................... 311 寄存器 18: 用户寄存器 3(USER_REG3),偏移量 0x1EC .............................................................. 312 寄存器 19: Flash 存储器保护读启用寄存器 1(FMPRE1),偏移量 0x204 ........................................ 313 寄存器 20: Flash 存储器保护读启用寄存器 2(FMPRE2),偏移量 0x208 ........................................ 314 寄存器 21: Flash 存储器保护读启用寄存器 3(FMPRE3),偏移量 0x20C ........................................ 315 寄存器 22: Flash 存储器保护编程启用寄存器 1(FMPPE1),偏移量 0x404 ..................................... 316 寄存器 23: Flash 存储器保护编程启用寄存器 2(FMPPE2),偏移量 0x408 ..................................... 317 寄存器 24: Flash 存储器保护编程启用寄存器 3(FMPPE3),偏移量 0x40C ..................................... 318 22 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 微型直接存储器访问 (μDMA) ......................................................................................................... 319 寄存器 1: DMA 通道源地址末指针寄存器(DMASRCENDP),偏移量 0x000 .................................. 342 寄存器 2: DMA 通道目的地址末指针寄存器(DMADSTENDP),偏移量 0x004 ............................... 343 寄存器 3: DMA 通道控制字寄存器(DMACHCTL),偏移量 0x008 ................................................. 344 寄存器 4: DMA 状态寄存器(DMASTAT),偏移量 0x000 .............................................................. 349 寄存器 5: DMA 配置寄存器(DMACFG),偏移量 0x004 ............................................................... 351 寄存器 6: DMA 通道控制基指针寄存器(DMACTLBASE),偏移量 0x008 ...................................... 352 寄存器 7: DMA 副通道控制基指针寄存器(DMAALTBASE),偏移量 0x00C ................................... 353 寄存器 8: DMA 通道等待请求状态寄存器(DMAWAITSTAT),偏移量 0x010 .................................. 354 寄存器 9: DMA 通道软件请求寄存器(DMASWREQ),偏移量 0x014 ............................................ 355 寄存器 10: DMA 通道采用猝发置位寄存器(DMAUSEBURSTSET),偏移量 0x018 ......................... 356 寄存器 11: DMA 通道采用猝发清除寄存器(DMAUSEBURSTCLR),偏移量 0x01C ......................... 357 寄存器 12: DMA 通道请求屏蔽置位寄存器(DMAREQMASKSET),偏移量 0x020 ........................... 358 寄存器 13: DMA 通道请求屏蔽清零寄存器(DMAREQMASKCLR),偏移量 0x024 ........................... 359 寄存器 14: DMA 通道启用置位寄存器(DMAENASET),偏移量 0x028 ........................................... 360 寄存器 15: DMA 通道启用清除寄存器(DMAENACLR),偏移量 0x02C ........................................... 361 寄存器 16: DMA 通道主副置位寄存器(DMAALTSET),偏移量 0x030 ............................................ 362 寄存器 17: DMA 通道主副清除寄存器(DMAALTCLR),偏移量 0x030 ............................................ 363 寄存器 18: DMA 通道优先置位寄存器(DMAPRIOSET),偏移量 0x038 .......................................... 364 寄存器 19: DMA 通道优先清零寄存器(DMAPRIOCLR),偏移量 0x03C ......................................... 365 寄存器 20: DMA 总线错误清除寄存器(DMAERRCLR),偏移量 0x04C ........................................... 366 寄存器 21: DMA 通道分配寄存器(DMACHASGN),偏移量 0x500 ................................................. 367 寄存器 22: DMA 外设标识寄存器 0(DMAPeriphID0),偏移量 0xFE0 ............................................. 368 寄存器 23: DMA 外设标识寄存器 1(DMAPeriphID1),偏移量 0xFE4 ............................................. 369 寄存器 24: DMA 外设标识寄存器 2(DMAPeriphID2),偏移量 0xFE8 ............................................. 370 寄存器 25: DMA 外设标识寄存器 3(DMAPeriphID3),偏移量 0xFEC ............................................. 371 寄存器 26: DMA 外设标识寄存器 4(DMAPeriphID4),偏移量 0xFD0 ............................................. 372 寄存器 27: DMA PrimeCell 标识寄存器 0(DMAPCellID0),偏移量 0xFF0 ...................................... 373 寄存器 28: DMA PrimeCell 标识寄存器 1(DMAPCellID1),偏移量 0xFF4 ...................................... 374 寄存器 29: DMA PrimeCell 标识寄存器 2(DMAPCellID2),偏移量 0xFF8 ...................................... 375 寄存器 30: DMA PrimeCell 标识寄存器 3(DMAPCellID3),偏移量 0xFFC ...................................... 376 通用输入/输出端口 (GPIO) ............................................................................................................. 377 寄存器 1: GPIO 数据寄存器(GPIODATA),偏移量 0x000 ............................................................ 390 寄存器 2: GPIO 方向寄存器(GPIODIR),偏移量 0x400 ............................................................... 391 寄存器 3: GPIO 中断检测寄存器(GPIOIS),偏移量 0x404 .......................................................... 392 寄存器 4: GPIO 中断双边沿(GPIOIBE),偏移量 0x408 ............................................................... 393 寄存器 5: GPIO 中断事件寄存器(GPIOIEV),偏移量 0x40C ........................................................ 394 寄存器 6: GPIO 中断屏蔽寄存器(GPIOIM),偏移量 0x410 .......................................................... 395 寄存器 7: GPIO 原始中断状态寄存器(GPIORIS),偏移量 0x414 ................................................. 396 寄存器 8: GPIO 屏蔽中断状态寄存器(GPIOMIS),偏移量 0x418 ................................................. 397 寄存器 9: GPIO 中断清除寄存器(GPIOICR),偏移量 0x41C ....................................................... 398 寄存器 10: GPIO 备用功能选择寄存器(GPIOAFSEL),偏移量 0x420 ............................................ 399 寄存器 11: GPIO 2-mA 驱动选择寄存器(GPIODR2R),偏移量 0x500 ............................................ 401 寄存器 12: GPIO 4-mA 驱动选择寄存器(GPIODR4R),偏移量 0x504 ............................................ 402 寄存器 13: GPIO 8-mA 驱动选择寄存器(GPIODR8R),偏移量 0x508 ............................................ 403 寄存器 14: GPIO 开漏选择寄存器(GPIOODR),偏移量 0x50C ...................................................... 404 寄存器 15: GPIO 上拉电阻选择寄存器(GPIOPUR),偏移量 0x510 ................................................ 405 寄存器 16: GPIO 下拉电阻选择寄存器(GPIOPDR),偏移量 0x514 ................................................ 407 一月 06, 2012 23 Texas Instruments-生产数据 目录 寄存器 17: 寄存器 18: 寄存器 19: 寄存器 20: 寄存器 21: 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: GPIO 斜率控制选择寄存器(GPIOSLR),偏移量 0x518 ................................................ 409 GPIO 数字使能寄存器(GPIODEN),偏移量 0x51C ...................................................... 410 GPIO 锁定寄存器(GPIOLOCK),偏移量 0x520 ........................................................... 412 GPIO 确认寄存器(GPIOCR),偏移量 0x524 ............................................................... 413 GPIO 模拟选择寄存器(GPIOAMSEL),偏移量 0x528 .................................................. 415 GPIO 端口控制寄存器(GPIOPCTL),偏移量 0x52C ..................................................... 416 GPIO 外设标识寄存器 4(GPIOPeriphID4),偏移量 0xFD0 ........................................... 418 GPIO 外设标识寄存器 5(GPIOPeriphID5),偏移量 0xFD4 ........................................... 419 GPIO 外设标识寄存器 6(GPIOPeriphID6),偏移量0xFD8 ............................................ 420 GPIO 外设标识寄存器 7(GPIOPeriphID7),偏移量 0xFDC ........................................... 421 GPIO 外设标识寄存器 0(GPIOPeriphID0),偏移量 0xFE0 ........................................... 422 GPIO 外设标识寄存器 1(GPIOPeriphID1),偏移量 0xFE4 ........................................... 423 GPIO 外设标识寄存器 2(GPIOPeriphID2),偏移量 0xFE8 ........................................... 424 GPIO 外设标识寄存器 3(GPIOPeriphID3),偏移量 0xFEC ........................................... 425 GPIO PrimeCell 标识寄存器 0(GPIOPCellID0),偏移量 0xFF0 ..................................... 426 GPIO PrimeCell 标识寄存器 1(GPIOPCellID1),偏移量 0xFF4 ..................................... 427 GPIO PrimeCell 标识寄存器 2(GPIOPCellID2),偏移量 0xFF8 ..................................... 428 GPIO PrimeCell 标识寄存器 3(GPIOPCellID3),偏移量 0xFFC .................................... 429 片外设备接口 (EPI) ........................................................................................................................ 430 寄存器 1: EPI 配置寄存器(EPICFG),偏移量 0x000 ................................................................... 460 寄存器 2: EPI 主波特率寄存器(EPIBAUD),偏移量 0x004 .......................................................... 461 寄存器 3: EPI SDRAM 配置寄存器(EPISDRAMCFG),偏移量 0x010 .......................................... 462 寄存器 4: EPI HB8 配置寄存器(EPIHB8CFG),偏移量 0x010 ..................................................... 464 寄存器 5: EPI HB16 配置寄存器(EPIHB16CFG),偏移量 0x010 .................................................. 467 寄存器 6: EPI 通用模式配置寄存器(EPIGPCFG),偏移量 0x010 ................................................. 471 寄存器 7: EPI HB8 配置寄存器 2(EPIHB8CFG2),偏移量 0x014 ................................................. 475 寄存器 8: EPI HB16 配置寄存器 2(EPIHB16CFG2),偏移量 0x014 ............................................. 477 寄存器 9: EPI 通用模式配置寄存器 2(EPIGPCFG2),偏移量 0x014 ............................................ 479 寄存器 10: EPI 地址映射寄存器(EPIADDRMAP),偏移量 0x01C .................................................. 480 寄存器 11: EPI 读取地址大小寄存器 0(EPIRSIZE0),偏移量 0x020 .............................................. 482 寄存器 12: EPI 读取地址大小寄存器 1(EPIRSIZE0),偏移量 0x030 .............................................. 482 寄存器 13: EPI 读地址寄存器 0(EPIRADDR0),偏移量 0x024 ...................................................... 483 寄存器 14: EPI 读地址寄存器 1(EPIRADDR1),偏移量 0x034 ...................................................... 483 寄存器 15: EPI 非堵塞读数据寄存器 0(EPIRPSTD0),偏移量 0x028 ............................................. 484 寄存器 16: EPI 非堵塞读数据寄存器 1(EPIRPSTD1),偏移量 0x038 ............................................. 484 寄存器 17: EPI 状态寄存器(EPISTAT),偏移量 0x060 .................................................................. 486 寄存器 18: EPI 读 FIFO 计数寄存器(EPIRFIFOCNT),偏移量 0x06C ............................................ 488 寄存器 19: EPI 读 FIFO 寄存器(EPIREADFIFO),偏移量 0x070 ................................................... 489 寄存器 20: EPI 读 FIFO 别名寄存器 1(EPIREADFIFO1),偏移量 0x074 ........................................ 489 寄存器 21: EPI 读 FIFO 别名寄存器 2(EPIREADFIFO2),偏移量 0x078 ........................................ 489 寄存器 22: EPI 读 FIFO 别名寄存器 3(EPIREADFIFO3),偏移量 0x07C ....................................... 489 寄存器 23: EPI 读 FIFO 别名寄存器 4(EPIREADFIFO4),偏移量 0x080 ........................................ 489 寄存器 24: EPI 读 FIFO 别名寄存器 5(EPIREADFIFO5),偏移量 0x084 ........................................ 489 寄存器 25: EPI 读 FIFO 别名寄存器 6(EPIREADFIFO6),偏移量 0x088 ........................................ 489 寄存器 26: EPI 读 FIFO 别名寄存器 7(EPIREADFIFO7),偏移量 0x08C ....................................... 489 寄存器 27: EPI FIFO 深度选择寄存器(EPIFIFOLVL),偏移量 0x200 .............................................. 490 寄存器 28: EPI 写 FIFO 计数寄存器(EPIWFIFOCNT),偏移量 0x204 ............................................ 492 寄存器 29: EPI 中断屏蔽寄存器(EPIIM),偏移量 0x210 ................................................................ 493 24 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 30: 寄存器 31: 寄存器 32: EPI 原始中断状态寄存器(EPIRIS),偏移量 0x214 ....................................................... 494 EPI 掩码后中断状态寄存器(EPIMIS),偏移量 0x218 .................................................... 496 EPI 错误中断状态及清除寄存器(EPIEISC),偏移量0x21C ........................................... 497 通用定时器 ..................................................................................................................................... 498 寄存器 1: GPTM 配置寄存器(GPTMCFG),偏移量 0x000 ........................................................... 513 寄存器 2: GPTM Timer A 模式寄存器(GPTMTAMR),偏移量 0x004 ............................................ 514 寄存器 3: GPTM Timer B 模式寄存器(GPTMTBMR),偏移量 0x008 ............................................ 516 寄存器 4: GPTM 控制寄存器(GPTMCTL),偏移量 0x00C ........................................................... 518 寄存器 5: GPTM 中断屏蔽寄存器(GPTMIMR),偏移量 0x018 ..................................................... 521 寄存器 6: GPTM 原始中断状态寄存器(GPTMRIS),偏移量 0x01C .............................................. 523 寄存器 7: GPTM 屏蔽的中断状态寄存器(GPTMMIS),偏移量 0x020 ........................................... 525 寄存器 8: GPTM 中断清除寄存器(GPTMICR),偏移量 0x024 ..................................................... 528 寄存器 9: GPTM Timer A 间隔加载寄存器(GPTMTAILR),偏移量 0x028 ..................................... 530 寄存器 10: GPTM Timer B 间隔加载寄存器(GPTMTBILR),偏移量 0x02C ..................................... 531 寄存器 11: GPTM Timer A 匹配寄存器(GPTMTAMATCHR),偏移量 0x030 ................................... 532 寄存器 12: GPTM Timer B 匹配寄存器(GPTMTBMATCHR),偏移量 0x034 ................................... 533 寄存器 13: GPTM Timer A 预分频寄存器(GPTMTAPR),偏移量 0x038 ......................................... 534 寄存器 14: GPTM Timer B 预分频寄存器(GPTMTBPR),偏移量 0x03C ........................................ 535 寄存器 15: GPTM TimerA 预分频匹配寄存器(GPTMTAPMR),偏移量 0x040 ................................. 536 寄存器 16: GPTM TimerB 预分频匹配寄存器(GPTMTBPMR),偏移量 0x044 ................................ 537 寄存器 17: GPTM Timer A 寄存器(GPTMTAPR),偏移量 0x048 ................................................... 538 寄存器 18: GPTM Timer B 寄存器(GPTMTBPR),偏移量 0x04C .................................................. 539 寄存器 19: GPTM Timer A 值寄存器(GPTMTAV),偏移量 0x050 ................................................... 540 寄存器 20: GPTM Timer B 值寄存器(GPTMTBV),偏移量 0x054 .................................................. 541 看门狗定时器 (WDT) ...................................................................................................................... 542 寄存器 1: 看门狗加载寄存器(WDTLOAD),偏移量 0x000 ........................................................... 546 寄存器 2: 看门狗当前值寄存器(WDTVALUE),偏移量 0x004 ...................................................... 547 寄存器 3: 看门狗控制寄存器(WDTCTL),偏移量 0x008 .............................................................. 548 寄存器 4: 看门狗中断清除寄存器(WDTICR),偏移量 0x00C ....................................................... 550 寄存器 5: 看门狗原始中断状态寄存器(WDTRIS),偏移量 0x010 ................................................. 551 寄存器 6: 看门狗可屏蔽中断状态寄存器(WDTMIS),偏移量 0x014 .............................................. 552 寄存器 7: 看门狗测试寄存器(WDTTEST),偏移量 0x418 ............................................................ 553 寄存器 8: 看门狗锁定寄存器(WDTLOCK),偏移量 0xC00 ........................................................... 554 寄存器 9: 看门狗外设标识寄存器 4(WDTPeriphID4),偏移量 0xFD0 ........................................... 555 寄存器 10: 看门狗外设标识寄存器 5(WDTPeriphID5),偏移量 0xFD4 ........................................... 556 寄存器 11: 看门狗外设标识寄存器 6(WDTPeriphID6),偏移量 0xFD8 ........................................... 557 寄存器 12: 看门狗外设标识寄存器 7(WDTPeriphID7),偏移量 0xFDC ........................................... 558 寄存器 13: 看门狗外设标识寄存器 0(WDTPeriphID0),偏移量 0xFE0 ........................................... 559 寄存器 14: 看门狗外设标识寄存器 1(WDTPeriphID1),偏移量 0xFE4 ........................................... 560 寄存器 15: 看门狗外设标识寄存器 2(WDTPeriphID2),偏移量 0xFE8 ........................................... 561 寄存器 16: 看门狗外设标识寄存器 3(WDTPeriphID3),偏移量 0xFEC ........................................... 562 寄存器 17: 看门狗 PrimeCell 标识寄存器 0(WDTPCellID0),偏移量 0xFF0 .................................... 563 寄存器 18: 看门狗 PrimeCell 标识寄存器 1(WDTPCellID1),偏移量 0xFF4 .................................... 564 寄存器 19: 看门狗 PrimeCell 标识寄存器 2(WDTPCellID2),偏移量 0xFF8 .................................... 565 寄存器 20: 看门狗 PrimeCell 标识寄存器 3(WDTPCellID3),偏移量 0xFFC ................................... 566 模数转换器 (ADC) .......................................................................................................................... 567 寄存器 1: ADC 有效采样序列发生器寄存器(ADCACTSS),偏移量 0x000 .................................... 587 寄存器 2: ADC原始中断状态寄存器(ADCRIS),偏移量 0x004 ..................................................... 588 一月 06, 2012 25 Texas Instruments-生产数据 目录 寄存器 3: 寄存器 4: 寄存器 5: 寄存器 6: 寄存器 7: 寄存器 8: 寄存器 9: 寄存器 10: 寄存器 11: 寄存器 12: 寄存器 13: 寄存器 14: 寄存器 15: 寄存器 16: 寄存器 17: 寄存器 18: 寄存器 19: 寄存器 20: 寄存器 21: 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: 寄存器 38: 寄存器 39: 寄存器 40: 寄存器 41: 寄存器 42: 寄存器 43: 寄存器 44: 寄存器 45: 寄存器 46: 寄存器 47: 寄存器 48: 寄存器 49: 寄存器 50: ADC 中断屏蔽寄存器(ADCIM),偏移量 0x008 ............................................................ 590 ADC 中断状态及清除寄存器(ADCISC),偏移量 0x00C ................................................ 592 ADC 上溢状态寄存器(ADCOSTAT),偏移量 0x010 ...................................................... 595 ADC 事件复用选择寄存器(ADCEMUX),偏移量 0x014 ................................................ 597 ADC 下溢状态寄存器(ADCUSTAT),偏移量 0x018 ...................................................... 602 ADC 采样序列发生器优先级寄存器(ADCSSPRI),偏移量 0x020 .................................. 603 ADC 采样相位控制寄存器(ADCSPC),偏移量 0x024 ................................................... 605 ADC 处理器采样序列启动寄存器(ADCPSSI),偏移量 0x028 ........................................ 606 ADC 采样平均控制寄存器(ADCSAC),偏移量 0x030 ................................................... 608 ADC 数字比较器中断状态及清除寄存器(ADCDCISC),偏移量 0x034 ........................... 609 ADC 控制寄存器(ADCCTL),偏移量 0x038 ................................................................. 611 ADC 采样序列输入复用选择寄存器 0(ADCSSMUX0),偏移量 0x040 ............................ 612 ADC 采样序列控制寄存器 0(ADCSSCTL0),偏移量 0x044 .......................................... 613 ADC 采样序列结果 FIFO 寄存器 0(ADCSSFIFO0),偏移量 0x048 ............................... 616 ADC 采样序列结果 FIFO 寄存器 1(ADCSSFIFO1),偏移量 0x068 ............................... 616 ADC 采样序列结果 FIFO 寄存器 2(ADCSSFIFO2),偏移量 0x088 ............................... 616 ADC 采样序列结果 FIFO 寄存器 3(ADCSSFIFO3),偏移量 0x0A8 ............................... 616 ADC 采样序列 FIFO 0 状态寄存器(ADCSSFSTAT0),偏移量 0x04C ............................ 617 ADC 采样序列 FIFO 1 状态寄存器(ADCSSFSTAT1),偏移量 0x06C ............................ 617 ADC 采样序列 FIFO 2 状态寄存器(ADCSSFSTAT2),偏移量 0x08C ............................ 617 ADC 采样序列 FIFO 3 状态寄存器(ADCSSFSTAT3),偏移量 0x0AC ............................ 617 ADC 采样序列寄存器 0(ADCSSOP0),偏移量 0x050 .................................................. 619 ADC 采样序列数字比较器选择寄存器 0(ADCSSDC0),偏移量 0x054 ........................... 621 ADC 采样序列输入复用选择寄存器 1(ADCSSMUX1),偏移量 0x060 ............................ 623 ADC 采样序列输入复用选择寄存器 2(ADCSSMUX2),偏移量 0x080 ............................ 623 ADC 采样序列控制寄存器 1(ADCSSCTL1),偏移量 0x064 .......................................... 624 ADC 采样序列控制寄存器 2(ADCSSCTL2),偏移量 0x084 .......................................... 624 ADC 采样序列 1 工作寄存器(ADCSSOP1),偏移量0x070 ............................................ 626 ADC 采样序列 2 工作寄存器(ADCSSOP2),偏移量0x090 ........................................... 626 ADC 采样序列数字比较器选择寄存器 1(ADCSSDC1),偏移量 0x074 ........................... 627 ADC 采样序列数字比较器选择寄存器 2(ADCSSDC2),偏移量 0x094 ........................... 627 ADC 采样序列输入复用选择寄存器 3(ADCSSMUX3),偏移量 0x0A0 ........................... 628 ADC 采样序列控制寄存器 3(ADCSSCTL3),偏移量 0x0A4 .......................................... 629 ADC 采样序列器 3 工作寄存器(ADCSSOP3),偏移量 0x0B0 ....................................... 630 ADC 采样序列 3 数字比较器选择寄存器(ADCSSDC3),偏移量 0x0B4 .......................... 631 ADC 数字比较器复位启动条件寄存器(ADCDCRIC),偏移量 0xD00 .............................. 632 ADC 数字比较器控制寄存器 0(ADCDCCTL0),偏移量 0xE00 ...................................... 636 ADC 数字比较器控制寄存器 1(ADCDCCTL1),偏移量 0xE04 ...................................... 636 ADC 数字比较器控制寄存器 2(ADCDCCTL2),偏移量 0xE08 ...................................... 636 ADC 数字比较器控制寄存器 3(ADCDCCTL3),偏移量 0xE0C ...................................... 636 ADC 数字比较器控制寄存器 4(ADCDCCTL4),偏移量 0xE10 ...................................... 636 ADC 数字比较器控制寄存器 5(ADCDCCTL5),偏移量 0xE14 ...................................... 636 ADC 数字比较器控制寄存器 6(ADCDCCTL6),偏移量 0xE18 ...................................... 636 ADC 数字比较器控制寄存器 7(ADCDCCTL7),偏移量 0xE1C ...................................... 636 ADC 数字比较器范围寄存器 0(ADCDCCMP0),偏移量 0xE40 ..................................... 639 ADC 数字比较器范围寄存器 1(ADCDCCMP1),偏移量 0xE44 ..................................... 639 ADC 数字比较器范围寄存器 2(ADCDCCMP2),偏移量 0xE48 ..................................... 639 ADC 数字比较器范围寄存器 3(ADCDCCMP3),偏移量 0xE4C .................................... 639 26 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 51: 寄存器 52: 寄存器 53: 寄存器 54: ADC 数字比较器范围寄存器 4(ADCDCCMP4),偏移量 0xE50 ..................................... 639 ADC 数字比较器范围寄存器 5(ADCDCCMP5),偏移量 0xE54 ..................................... 639 ADC 数字比较器范围寄存器 6(ADCDCCMP6),偏移量 0xE58 ..................................... 639 ADC 数字比较器范围寄存器 7(ADCDCCMP7),偏移量 0xE5C .................................... 639 通用异步收发器 (UART) ................................................................................................................ 640 寄存器 1: UART 数据寄存器(UARTDR),偏移量 0x000 .............................................................. 653 寄存器 2: UART 接收状态/错误清除寄存器(UARTRSR/UARTECR),偏移量 0x004 ...................... 655 寄存器 3: UART 标志寄存器(UARTFR),偏移量 0x018 .............................................................. 658 寄存器 4: UART IrDA 低功耗寄存器(UARTILPR),偏移量 0x020 ................................................. 660 寄存器 5: UART 波特率分频值整数寄存器(UARTIBRD),偏移量 0x024 ....................................... 661 寄存器 6: UART 波特率分频值小数寄存器(UARTFBRD),偏移量 0x028 ...................................... 662 寄存器 7: UART 线控寄存器(UARTLCRH),偏移量 0x02C ......................................................... 663 寄存器 8: UART 控制寄存器(UARTCTL),偏移量 0x030 ............................................................. 665 寄存器 9: UART 中断 FIFO 深度选择寄存器(UARTIFLS),偏移量 0x034 ..................................... 669 寄存器 10: UART 中断屏蔽寄存器(UARTIM),偏移量 0x038 ......................................................... 671 寄存器 11: UART 原始中断状态寄存器(UARTRIS),偏移量 0x03C ............................................... 674 寄存器 12: UART 屏蔽中断状态寄存器(UARTMIS),偏移量 0x040 ................................................ 677 寄存器 13: UART 中断清除寄存器(UARTICR),偏移量 0x044 ...................................................... 680 寄存器 14: UART DMA 控制寄存器(UARTDMACTL),偏移量 0x048 ............................................. 682 寄存器 15: UART LIN 控制寄存器(UARTLCTL),偏移量 0x090 ..................................................... 683 寄存器 16: UART LIN 快照寄存器(UARTLSS),偏移量 0x094 ...................................................... 684 寄存器 17: UART LIN 定时寄存器(UARTLTIM),偏移量 0x098 ..................................................... 685 寄存器 18: UART 外设标识寄存器 4(UARTPeriphID4),偏移量 0xFD0 .......................................... 686 寄存器 19: UART 外设标识寄存器 5(UARTPeriphID5),偏移量 0xFD4 .......................................... 687 寄存器 20: UART 外设标识寄存器 6(UARTPeriphID6),偏移量 0xFD8 .......................................... 688 寄存器 21: UART 外设标识寄存器 7(UARTPeriphID7),偏移量 0xFDC ......................................... 689 寄存器 22: UART 外设标识寄存器 0(UARTPeriphID0),偏移量 0xFE0 .......................................... 690 寄存器 23: UART 外设标识寄存器 1(UARTPeriphID1),偏移量 0xFE4 .......................................... 691 寄存器 24: UART 外设标识寄存器 2(UARTPeriphID2),偏移量 0xFE8 .......................................... 692 寄存器 25: UART 外设标识寄存器 3(UARTPeriphID3),偏移量 0xFEC .......................................... 693 寄存器 26: UART PrimeCell 标识寄存器 0(UARTPCellID0),偏移量 0xFF0 ................................... 694 寄存器 27: UART PrimeCell 标识寄存器 1(UARTPCellID1),偏移量 0xFF4 ................................... 695 寄存器 28: UART PrimeCell 标识寄存器 2(UARTPCellID2),偏移量 0xFF8 ................................... 696 寄存器 29: UART PrimeCell 标识寄存器 3(UARTPCellID3),偏移量 0xFFC ................................... 697 同步串行接口 (SSI) ........................................................................................................................ 698 寄存器 1: SSI 控制寄存器0(SSICR0),偏移量 0x000 .................................................................. 712 寄存器 2: SSI 控制寄存器1(SSICR1),偏移量 0x004 .................................................................. 714 寄存器 3: SSI 数据寄存器(SSIDR),偏移量 0x008 ..................................................................... 716 寄存器 4: SSI 状态寄存器(SSISR),偏移量 0x00C ..................................................................... 717 寄存器 5: SSI 时钟预分频寄存器(SSICPSR),偏移量 0x010 ....................................................... 718 寄存器 6: SSI 中断屏蔽寄存器(SSIIM),偏移量 0x014 ................................................................ 719 寄存器 7: SSI 原始中断状态寄存器(SSIRIS),偏移量 0x018 ....................................................... 720 寄存器 8: SSI 屏蔽中断状态寄存器(SSIMIS),偏移量 0x01C ...................................................... 722 寄存器 9: SSI 中断清除寄存器(SSIICR),偏移量 0x020 .............................................................. 724 寄存器 10: SSI DMA 控制寄存器(SSIDMACTL),偏移量 0x024 .................................................... 725 寄存器 11: SSI 外设标识寄存器 4(SSIPeriphID4),偏移量 0xFD0 ................................................. 726 寄存器 12: SSI 外设标识寄存器 5(SSIPeriphID5),偏移量 0xFD4 ................................................. 727 寄存器 13: SSI 外设标识寄存器 6(SSIPeriphID6),偏移量 0xFD8 ................................................. 728 一月 06, 2012 27 Texas Instruments-生产数据 目录 寄存器 14: SSI 外设标识寄存器 7(SSIPeriphID7),偏移量 0xFDC ................................................. 729 寄存器 15: SSI 外设标识寄存器 0(SSIPeriphID0),偏移量 0xFE0 ................................................. 730 寄存器 16: SSI 外设标识寄存器 1(SSIPeriphID1),偏移量 0xFE4 ................................................. 731 寄存器 17: SSI 外设标识寄存器 2(SSIPeriphID2),偏移量 0xFE8 ................................................. 732 寄存器 18: SSI 外设标识寄存器 3(SSIPeriphID3),偏移量 0xFEC ................................................. 733 寄存器 19: SSI PrimeCell 标识寄存器 0(SSIPCellID0),偏移量 0xFF0 ........................................... 734 寄存器 20: SSI PrimeCell 标识寄存器 1(SSIPCellID1),偏移量 0xFF4 ........................................... 735 寄存器 21: SSI PrimeCell 标识寄存器 2(SSIPCellID2),偏移量 0xFF8 ........................................... 736 寄存器 22: SSI PrimeCell 标识寄存器 3(SSIPCellID3),偏移量 0xFFC .......................................... 737 内部集成电路 (I2C) 接口 ................................................................................................................. 738 寄存器 1: I2C 主机从机地址寄存器(I2CMSA),偏移量 0x000 ...................................................... 754 寄存器 2: I2C 主机控制/状态寄存器(I2CMCS),偏移量 0x004 ..................................................... 755 寄存器 3: I2C 主机数据寄存器(I2CMDR),偏移量 0x008 ............................................................. 759 寄存器 4: I2C 主机定时器周期寄存器(I2CMTPR),偏移量 0x00C ................................................ 760 寄存器 5: I2C 主机中断屏蔽寄存器(I2CMIMR),偏移量 0x010 ..................................................... 761 寄存器 6: 寄存器 7: 寄存器 8: 寄存器 9: 寄存器 10: I2C 主机原始中断状态寄存器(I2CMRIS),偏移量 0x014 ............................................... 762 I2C 主机屏蔽中断状态寄存器(I2CMMIS),偏移量 0x018 .............................................. 763 I2C 主机中断清除寄存器(I2CMICR),偏移量 0x01C ..................................................... 764 I2C 主机配置寄存器(I2CMCR),偏移量 0x020 ............................................................. 765 I2C 从机本身地址寄存器(I2CSOAR),偏移量 0x800 .................................................... 766 寄存器 11: 寄存器 12: 寄存器 13: 寄存器 14: 寄存器 15: I2C 从机控制/状态寄存器(I2CSCSR),偏移量 0x804 ................................................... 767 I2C 从机数据寄存器(I2CSDR),偏移量 0x808 ............................................................. 769 I2C 从机中断屏蔽(I2CSIMR),偏移量 0x80C ............................................................... 770 I2C 从机原始中断状态寄存器(I2CSRIS),偏移量 0x810 ............................................... 771 I2C 从机屏蔽中断状态寄存器(I2CSMIS),偏移量 0x814 ............................................... 772 寄存器 16: I2C 从机中断清除寄存器(I2CSICR),偏移量 0x818 ...................................................... 773 内部集成电路音频 (I2S) 接口 .......................................................................................................... 774 寄存器 1: I2S 发送 FIFO 数据寄存器(I2STXFIFO),偏移量 0x000 ............................................... 786 寄存器 2: I2S 发送 FIFO 配置寄存器(I2STXFIFOCFG),偏移量 0x004 ........................................ 787 寄存器 3: I2S 发送模块配置寄存器(I2STXCFG),偏移量 0x008 ................................................... 788 寄存器 4: I2S 发送 FIFO 门限寄存器(I2STXLIMIT),偏移量 0x00C .............................................. 790 寄存器 5: I2S 发送中断状态和屏蔽寄存器(I2STXISM),偏移量 0x010 .......................................... 791 寄存器 6: I2S 发送 FIFO 深度寄存器(I2STXLEV),偏移量 0x018 ................................................. 792 寄存器 7: I2S 接收 FIFO 数据寄存器(I2SRXFIFO),偏移量 0x800 ............................................... 793 寄存器 8: I2S 接收 FIFO 配置寄存器(I2SRXFIFOCFG),偏移量 0x804 ........................................ 794 寄存器 9: I2S 接收模式配置寄存器(I2SRXCFG),偏移量 0x808 .................................................. 795 寄存器 10: I2S 接收 FIFO 门限寄存器(I2SRXLIMIT),偏移量 0x80C .............................................. 797 寄存器 11: I2S 接收中断状态和屏蔽寄存器(I2SRXISM),偏移量 0x810 ......................................... 798 寄存器 12: I2S 接收 FIFO 深度寄存器(I2SRXLEV),偏移量 0x818 ................................................ 799 寄存器 13: I2S 模块配置寄存器(I2SCFG),偏移量 0xC00 ............................................................. 800 寄存器 14: I2S 中断屏蔽寄存器(I2SIM),偏移量 0xC10 ................................................................ 801 寄存器 15: I2S 原始中断状态寄存器(I2SRIS),偏移量 0xC14 ........................................................ 802 寄存器 16: I2S 屏蔽中断状态寄存器(I2SMIS),偏移量 0xC18 ........................................................ 804 寄存器 17: I2S 中断清除寄存器(I2SIC),偏移量 0xC1C ................................................................ 806 控制器局域网 (CAN) 模块 .............................................................................................................. 807 寄存器 1: CAN 控制寄存器(CANCTL),偏移量 0x000 ................................................................. 827 28 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 2: 寄存器 3: 寄存器 4: 寄存器 5: 寄存器 6: 寄存器 7: 寄存器 8: 寄存器 9: 寄存器 10: 寄存器 11: 寄存器 12: 寄存器 13: 寄存器 14: 寄存器 15: 寄存器 16: 寄存器 17: 寄存器 18: 寄存器 19: 寄存器 20: 寄存器 21: 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: CAN 状态寄存器(CANSTS),偏移量0x004 ................................................................. 829 CAN 错误计数寄存器(CANERR),偏移量 0x008 ......................................................... 832 CAN 位时序寄存器(CANBIT),偏移量 0x00C .............................................................. 833 CAN 中断寄存器(CANINT),偏移量 0x010 ................................................................. 834 CAN 测试寄存器(CANTST),偏移量 0x014 ................................................................. 835 CAN 波特率预分频器扩展寄存器(CANBRPE),偏移量 0x018 ...................................... 837 CAN IF1 指令请求寄存器(CANIF1CRQ),偏移量 0x020 .............................................. 838 CAN IF2 指令请求寄存器(CANIF2CRQ),偏移量 0x080 .............................................. 838 CAN IF1 指令屏蔽寄存器(CANIF1CMSK),偏移量 0x024 ............................................ 839 CAN IF2 指令屏蔽寄存器(CANIF2CMSK),偏移量 0x084 ............................................ 839 CAN IF1 屏蔽寄存器 1(CANIF1MSK1),偏移量 0x028 ................................................ 842 CAN IF2 屏蔽寄存器 1(CANIF2MSK1),偏移量 0x088 ................................................ 842 CAN IF1 屏蔽寄存器 2(CANIF1MSK2),偏移量 0x02C ................................................ 843 CAN IF2 屏蔽寄存器 2(CANIF2MSK2),偏移量 0x08C ................................................ 843 CAN IF1 仲裁寄存器 1(CANIF1ARB1),偏移量 0x030 ................................................. 844 CAN IF2 仲裁寄存器 1(CANIF2ARB1),偏移量 0x090 ................................................. 844 CAN IF1 仲裁寄存器 2(CANIF1ARB2),偏移量 0x034 ................................................. 845 CAN IF2 仲裁寄存器 2(CANIF2ARB2),偏移量 0x094 ................................................. 845 CAN IF1 报文控制寄存器(CANIF1MCTL),偏移量 0x038 ............................................. 847 CAN IF2 报文控制寄存器(CANIF2MCTL),偏移量 0x098 ............................................. 847 CAN IF1 数据寄存器 A1(CANIF1DA1),偏移量 0x03C ................................................ 850 CAN IF1 数据寄存器 A2(CANIF1DA2),偏移量 0x040 ................................................. 850 CAN IF1 数据寄存器 B1(CANIF1DB1),偏移量 0x044 ................................................. 850 CAN IF1 数据寄存器 B2(CANIF1DB2),偏移量 0x048 ................................................. 850 CAN IF2 数据寄存器 A1(CANIF2DA1),偏移量 0x09C ................................................ 850 CAN IF2 数据寄存器 A2(CANIF2DA2),偏移量 0x0A0 ................................................ 850 CAN IF2 数据寄存器 B1(CANIF2DB1),偏移量 0x0A4 ................................................ 850 CAN IF2 数据寄存器 B2(CANIF2DB2),偏移量 0x0A8 ................................................ 850 CAN 传输请求寄存器 1(CANTXRQ1),偏移量 0x100 .................................................. 851 CAN 传输请求寄存器 2(CANTXRQ2),偏移量 0x104 .................................................. 851 CAN 新数据寄存器 1(CANNWDA1),偏移量 0x120 ..................................................... 852 CAN 新数据寄存器 2(CANNWDA2),偏移量 0x124 ..................................................... 852 CAN 报文 1 中断挂起寄存器(CANMSG1INT),偏移量 0x140 ....................................... 853 CAN 报文 2 中断挂起寄存器(CANMSG2INT),偏移量 0x144 ....................................... 853 CAN 报文 1 有效寄存器(CANMSG1VAL),偏移量 0x160 ............................................. 854 CAN 报文 2 有效寄存器(CANMSG2VAL),偏移量 0x164 ............................................. 854 以太网控制器 ................................................................................................................................. 855 寄存器 1: 以太网 MAC 原始中断状态/应答寄存器(MACRIS/MACIACK),偏移量 0x000 ................. 867 寄存器 2: 以太网 MAC 中断屏蔽寄存器(MACIM),偏移量 0x004 ................................................. 869 寄存器 3: 以太网 MAC 接收控制寄存器(MACRCTL),偏移量 0x008 ............................................ 871 寄存器 4: 以太网 MAC 发送控制寄存器(MACTCTL),偏移量 0x00C ............................................ 873 寄存器 5: 以太网 MAC 数据寄存器(MACDATA),偏移量 0x010 ................................................... 874 寄存器 6: 以太网 MAC 单个地址寄存器 0(MACIA0),偏移量 0x014 ............................................. 876 寄存器 7: 以太网 MAC 单个地址寄存器 1(MACIA1),偏移量 0x018 ............................................. 877 寄存器 8: 以太网 MAC 阈值寄存器(MACTHR),偏移量 0x01C .................................................... 878 寄存器 9: 以太网 MAC 管理控制寄存器(MACMCTL),偏移量 0x020 ........................................... 879 寄存器 10: 以太网 MAC 管理分频器寄存器(MACMDV),偏移量 0x024 .......................................... 880 寄存器 11: 以太网 MAC 管理发送数据寄存器(MACMTXD),偏移量 0x02C .................................... 881 一月 06, 2012 29 Texas Instruments-生产数据 目录 寄存器 12: 寄存器 13: 寄存器 14: 寄存器 15: 寄存器 16: 寄存器 17: 寄存器 18: 寄存器 19: 寄存器 20: 寄存器 21: 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 以太网 MAC 管理接收数据寄存器(MACMRXD),偏移量 0x030 .................................... 882 以太网 MAC 的包数目寄存器(MACNP),偏移量 0x034 ................................................ 883 以太网 MAC 发送请求寄存器(MACTR),偏移量 0x038 ................................................ 884 以太网 MAC LED 编码寄存器(MACLED),偏移量 0x040 ............................................. 885 以太网 PHY MDIX 寄存器(MDIX),偏移量 0x044 ........................................................ 887 以太网 PHY 管理寄存器 0 – 控制(MR0),地址 0x00 .................................................... 888 以太网 PHY 管理寄存器 1 – 状态(MR1),地址 0x01 .................................................... 890 以太网 PHY 管理寄存器 2 – PHY 标识符 1(MR2),地址0x02 ....................................... 892 以太网 PHY 管理寄存器 3 – PHY 标识符 2(MR3),地址 0x03 ...................................... 893 以太网 PHY 管理寄存器 4 – 自协商通告(MR4),地址 0x04 .......................................... 894 以太网 PHY 管理寄存器 5 –自协商连接方基页能力(MR5),地址 0x05 .......................... 896 以太网 PHY 管理寄存器 6 –自协商扩展(MR6),地址 0x06 ........................................... 897 以太网 PHY 管理寄存器 16 –厂商特定(MR16),地址 0x10 ........................................... 898 以太网 PHY 管理寄存器 17 – 模式控制/状态(MR17),地址 0x11 .................................. 899 以太网 PHY 管理寄存器 27 – 特殊控制/状态(MR27),地址 0x1B .................................. 901 以太网 PHY 管理寄存器 29 – 中断状态(MR29),地址 0x1D ......................................... 902 以太网 PHY 管理寄存器 30 – 中断屏蔽(MR30),地址 0x1E ......................................... 904 以太网 PHY 管理寄存器 31 – PHY 特殊控制/状态(MR31),地址 0x1F .......................... 906 通用串行总线 (USB) 控制器 .......................................................................................................... 907 寄存器 1: USB 设备功能地址寄存器(USBFADDR),偏移量 0x000 ............................................... 931 寄存器 2: USB 电源寄存器(USBPOWER),偏移量 0x001 ........................................................... 932 寄存器 3: USB 发送中断状态寄存器(USBTXIS),偏移量 0x002 .................................................. 935 寄存器 4: USB 接收中断状态寄存器(USBRXIS),偏移量 0x004 .................................................. 937 寄存器 5: USB 发送中断启用寄存器(USBTXIE),偏移量 0x006 .................................................. 939 寄存器 6: USB 接收中断启用寄存器(USBRXIE),偏移量 0x008 .................................................. 941 寄存器 7: USB 通用中断状态寄存器(USBIS),偏移量 0x00A ...................................................... 943 寄存器 8: USB 中断启用(USBIE),偏移量 0x00B ....................................................................... 946 寄存器 9: USB 帧值寄存器(USBFRAME),偏移量 0x00C ........................................................... 949 寄存器 10: USB 端点索引寄存器(USBEPIDX),偏移量 0x00E ...................................................... 950 寄存器 11: USB 测试模式寄存器(USBTEST),偏移量 0x00F ........................................................ 951 寄存器 12: USB FIFO 端点 0 寄存器(USBFIFO0),偏移量 0x020 .................................................. 953 寄存器 13: USB FIFO 端点 1 寄存器(USBFIFO1),偏移量 0x024 .................................................. 953 寄存器 14: USB FIFO 端点 2 寄存器(USBFIFO2),偏移量 0x028 .................................................. 953 寄存器 15: USB FIFO 端点 3 寄存器(USBFIFO3),偏移量 0x02C ................................................. 953 寄存器 16: USB FIFO 端点 4 寄存器(USBFIFO4),偏移量 0x030 .................................................. 953 寄存器 17: USB FIFO 端点 5 寄存器(USBFIFO5),偏移量 0x034 .................................................. 953 寄存器 18: USB FIFO 端点 6 寄存器(USBFIFO6),偏移量 0x038 .................................................. 953 寄存器 19: USB FIFO 端点 7 寄存器(USBFIFO7),偏移量 0x03C ................................................. 953 寄存器 20: USB FIFO 端点 8 寄存器(USBFIFO8),偏移量 0x040 .................................................. 953 寄存器 21: USB FIFO 端点 9 寄存器(USBFIFO9),偏移量 0x044 .................................................. 953 寄存器 22: USB FIFO 端点 10 寄存器(USBFIFO10),偏移量 0x048 .............................................. 953 寄存器 23: USB FIFO 端点 11 寄存器(USBFIFO11),偏移量 0x04C .............................................. 953 寄存器 24: USB FIFO 端点 12 寄存器(USBFIFO12),偏移量 0x050 .............................................. 953 寄存器 25: USB FIFO 端点 13 寄存器(USBFIFO13),偏移量 0x054 .............................................. 953 寄存器 26: USB FIFO 端点 14 寄存器(USBFIFO14),偏移量 0x058 .............................................. 953 寄存器 27: USB FIFO 端点 15 寄存器(USBFIFO15),偏移量 0x05C ............................................. 953 寄存器 28: USB 设备控制寄存器(USBDEVCTL),偏移量 0x060 ................................................... 955 寄存器 29: USB 发送动态 FIFO 大小寄存器(USBTXFIFOSZ),偏移量 0x062 ................................ 957 30 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: 寄存器 38: 寄存器 39: 寄存器 40: 寄存器 41: 寄存器 42: 寄存器 43: 寄存器 44: 寄存器 45: 寄存器 46: 寄存器 47: 寄存器 48: 寄存器 49: 寄存器 50: 寄存器 51: 寄存器 52: 寄存器 53: 寄存器 54: 寄存器 55: 寄存器 56: 寄存器 57: 寄存器 58: 寄存器 59: 寄存器 60: 寄存器 61: 寄存器 62: 寄存器 63: 寄存器 64: 寄存器 65: 寄存器 66: 寄存器 67: 寄存器 68: 寄存器 69: 寄存器 70: 寄存器 71: 寄存器 72: 寄存器 73: 寄存器 74: 寄存器 75: 寄存器 76: 寄存器 77: USB 接收动态 FIFO 大小寄存器(USBRXFIFOSZ),偏移量 0x063 ................................ 957 USB 发送 FIFO 起始地址寄存器(USBTXFIFOADD),偏移量 0x064 .............................. 958 USB 接收 FIFO 起始地址寄存器(USBRXFIFOSZ),偏移量 0x066 ................................ 958 USB 连接时序寄存器(USBCONTIM),偏移量 0x07A ................................................... 959 USB OTG VBUS 脉冲时序寄存器(USBVPLEN),偏移量 0x07B ................................... 960 USB 全速模式下最后的传输与帧结束时序寄存器(USBFSEOF),偏移量 0x07D ............. 961 USB 低速模式下最后的传输与帧结束时序寄存器(USBLSEOF),偏移量 0x07E ............. 962 USB 端点 0 发送功能地址寄存器(USBTXFUNCADDR0),偏移量 0x080 ....................... 963 USB 端点 1 发送功能地址寄存器(USBTXFUNCADDR1),偏移量 0x088 ....................... 963 USB 端点 2 发送功能地址寄存器(USBTXFUNCADDR2),偏移量 0x090 ....................... 963 USB 端点 3 发送功能地址寄存器(USBTXFUNCADDR3),偏移量 0x098 ....................... 963 USB 端点 4 发送功能地址寄存器(USBTXFUNCADDR4),偏移量 0x0A0 ...................... 963 USB 端点 5 发送功能地址寄存器(USBTXFUNCADDR5),偏移量 0x0A8 ...................... 963 USB 端点 6 发送功能地址寄存器(USBTXFUNCADDR6),偏移量 0x0B0 ...................... 963 USB 端点 7 发送功能地址寄存器(USBTXFUNCADDR7),偏移量 0x0B8 ...................... 963 USB 端点 8 发送功能地址寄存器(USBTXFUNCADDR8),偏移量 0x0C0 ...................... 963 USB 端点 9 发送功能地址寄存器(USBTXFUNCADDR9),偏移量 0x0C8 ...................... 963 USB 端点 10 发送功能地址寄存器(USBTXFUNCADDR10),偏移量 0x0D0 .................. 963 USB 端点 11 发送功能地址寄存器(USBTXFUNCADDR11),偏移量 0x0D8 ................... 963 USB 端点 12 发送功能地址寄存器(USBTXFUNCADDR12),偏移量 0x0E0 ................... 963 USB 端点 13 发送功能地址寄存器(USBTXFUNCADDR13),偏移量 0x0E8 ................... 963 USB 端点 14 发送功能地址寄存器(USBTXFUNCADDR14),偏移量 0x0F0 ................... 963 USB 端点 15 发送功能地址寄存器(USBTXFUNCADDR15),偏移量 0x0F8 ................... 963 USB 端点 0 发送集线器地址寄存器(USBTXHUBADDR0),偏移量 0x082 ...................... 965 USB 端点 1 发送集线器地址寄存器(USBTXHUBADDR1),偏移量 0x08A ..................... 965 USB 端点 2 发送集线器地址寄存器(USBTXHUBADDR2),偏移量 0x092 ...................... 965 USB 端点 3 发送集线器地址寄存器(USBTXHUBADDR3),偏移量 0x09A ..................... 965 USB 端点 4 发送集线器地址寄存器(USBTXHUBADDR4),偏移量 0x0A2 ..................... 965 USB 端点 5 发送集线器地址寄存器(USBTXHUBADDR5),偏移量 0x0AA ..................... 965 USB 端点 6 发送集线器地址寄存器(USBTXHUBADDR6),偏移量 0x0B2 ..................... 965 USB 端点 7 发送集线器地址寄存器(USBTXHUBADDR7),偏移量 0x0BA ..................... 965 USB 端点 8 发送集线器地址寄存器(USBTXHUBADDR8),偏移量 0x0C2 ..................... 965 USB 端点 9 发送集线器地址寄存器(USBTXHUBADDR9),偏移量 0x0CA ..................... 965 USB 端点 10 发送集线器地址寄存器(USBTXHUBADDR10),偏移量 0x0D2 ................. 965 USB 端点 11 发送集线器地址寄存器(USBTXHUBADDR11),偏移量 0x0DA ................. 965 USB 端点 12 发送集线器地址寄存器(USBTXHUBADDR12),偏移量 0x0E2 .................. 965 USB 端点 13 发送集线器地址寄存器(USBTXHUBADDR13),偏移量 0x0EA ................. 965 USB 端点 14 发送集线器地址寄存器(USBTXHUBADDR14),偏移量 0x0F2 .................. 965 USB 端点 15 发送集线器地址寄存器(USBTXHUBADDR15),偏移量 0x0FA .................. 965 USB 端点 0 发送集线器端口寄存器(USBTXHUBPORT0),偏移量 0x083 ...................... 967 USB 端点 1 发送集线器端口寄存器(USBTXHUBPORT1),偏移量 0x08B ..................... 967 USB 端点 2 发送集线器端口寄存器(USBTXHUBPORT2),偏移量 0x093 ...................... 967 USB 端点 3 发送集线器端口寄存器(USBTXHUBPORT3),偏移量 0x09B ..................... 967 USB 端点 4 发送集线器端口寄存器(USBTXHUBPORT4),偏移量 0x0A3 ..................... 967 USB 端点 5 发送集线器端口 5寄存器(USBTXHUBPORT5),偏移量 0x0AB .................. 967 USB 端点 6 发送集线器端口寄存器(USBTXHUBPORT6),偏移量 0x0B3 ..................... 967 USB 端点 7 发送集线器端口寄存器(USBTXHUBPORT7),偏移量 0x0BB ..................... 967 USB 端点 8 发送集线器端口寄存器(USBTXHUBPORT8),偏移量 0x0C3 ..................... 967 一月 06, 2012 31 Texas Instruments-生产数据 目录 寄存器 78: 寄存器 79: 寄存器 80: 寄存器 81: 寄存器 82: 寄存器 83: 寄存器 84: 寄存器 85: 寄存器 86: 寄存器 87: 寄存器 88: 寄存器 89: 寄存器 90: 寄存器 91: 寄存器 92: 寄存器 93: 寄存器 94: 寄存器 95: 寄存器 96: 寄存器 97: 寄存器 98: 寄存器 99: 寄存器 100: 寄存器 101: 寄存器 102: 寄存器 103: 寄存器 104: 寄存器 105: 寄存器 106: 寄存器 107: 寄存器 108: 寄存器 109: 寄存器 110: 寄存器 111: 寄存器 112: 寄存器 113: 寄存器 114: 寄存器 115: 寄存器 116: 寄存器 117: 寄存器 118: 寄存器 119: 寄存器 120: 寄存器 121: 寄存器 122: 寄存器 123: 寄存器 124: 寄存器 125: USB 端点 9 发送集线器端口寄存器(USBTXHUBPORT9),偏移量 0x0CB ..................... 967 USB 端点 10 发送集线器端口寄存器(USBTXHUBPORT10),偏移量 0x0D3 .................. 967 USB 端点 11 发送集线器端口寄存器(USBTXHUBPORT11),偏移量 0x0DB .................. 967 USB 端点 12 发送集线器端口寄存器(USBTXHUBPORT12),偏移量 0x0E3 .................. 967 USB 端点 13 发送集线器端口寄存器(USBTXHUBPORT13),偏移量 0x0EB ................. 967 USB 端点 14 发送集线器端口寄存器(USBTXHUBPORT14),偏移量 0x0F3 .................. 967 USB 端点 15 发送集线器端口寄存器(USBTXHUBPORT15),偏移量 0x0FB .................. 967 USB 端点 1 接收功能地址寄存器(USBRXFUNCADDR1),偏移量 0x08C ...................... 969 USB 端点 2 接收功能地址寄存器(USBRXFUNCADDR2),偏移量 0x094 ...................... 969 USB 端点 3 接收功能地址寄存器(USBRXFUNCADDR3),偏移量 0x09C ...................... 969 USB 端点 4 接收功能地址寄存器(USBRXFUNCADDR4),偏移量 0x0A4 ...................... 969 USB 端点 5 接收功能地址寄存器(USBRXFUNCADDR5),偏移量 0x0AC ..................... 969 USB 端点 6 接收功能地址寄存器(USBRXFUNCADDR6),偏移量 0x0B4 ...................... 969 USB 端点 7 接收功能地址寄存器(USBRXFUNCADDR7),偏移量 0x0BC ..................... 969 USB 端点 8 接收功能地址寄存器(USBRXFUNCADDR8),偏移量 0x0C4 ...................... 969 USB 端点 9 接收功能地址寄存器(USBRXFUNCADDR9),偏移量 0x0CC ..................... 969 USB 端点 10 接收功能地址寄存器(USBRXFUNCADDR10),偏移量 0x0D4 .................. 969 USB 端点 11 接收功能地址寄存器(USBRXFUNCADDR11),偏移量 0x0DC .................. 969 USB 端点 12 接收功能地址寄存器(USBRXFUNCADDR12),偏移量 0x0E4 .................. 969 USB 端点 13 接收功能地址寄存器(USBRXFUNCADDR13),偏移量 0x0EC .................. 969 USB 端点 14 接收功能地址寄存器(USBRXFUNCADDR14),偏移量 0x0F4 .................. 969 USB 端点 15 接收功能地址寄存器(USBRXFUNCADDR15),偏移量 0x0FC .................. 969 USB 端点 1 接收集线器地址寄存器(USBRXHUBADDR1),偏移量 0x08E ..................... 971 USB 端点 2 接收集线器地址寄存器(USBRXHUBADDR2),偏移量 0x096 ..................... 971 USB 端点 3 接收集线器地址寄存器(USBRXHUBADDR3),偏移量 0x09E ..................... 971 USB 端点 4 接收集线器地址寄存器(USBRXHUBADDR4),偏移量 0x0A6 ..................... 971 USB 端点 5 接收集线器地址寄存器(USBRXHUBADDR5),偏移量 0x0AE .................... 971 USB 端点 6 接收集线器地址寄存器(USBRXHUBADDR6),偏移量 0x0B6 ..................... 971 USB 端点 7 接收集线器地址寄存器(USBRXHUBADDR7),偏移量 0x0BE .................... 971 USB 端点 8 接收集线器地址寄存器(USBRXHUBADDR8),偏移量 0x0C6 ..................... 971 USB 端点 9 接收集线器地址寄存器(USBRXHUBADDR9),偏移量 0x0CE .................... 971 USB 端点 10 接收集线器地址寄存器(USBRXHUBADDR10),偏移量 0x0D6 ................. 971 USB 端点 11 接收集线器地址寄存器(USBRXHUBADDR11),偏移量 0x0DE ................. 971 USB 端点 12 接收集线器地址寄存器(USBRXHUBADDR12),偏移量 0x0E6 ................. 971 USB 端点 13 接收集线器地址寄存器(USBRXHUBADDR13),偏移量 0x0EE ................. 971 USB 端点 14 接收集线器地址寄存器(USBRXHUBADDR14),偏移量 0x0F6 ................. 971 USB 端点 15 接收集线器地址寄存器(USBRXHUBADDR15),偏移量 0x0FE ................. 971 USB 端点 1 接收集线器端口寄存器(USBRXHUBPORT1),偏移量 0x08F ..................... 973 USB 端点 2 接收集线器端口寄存器(USBRXHUBPORT2),偏移量 0x097 ..................... 973 USB 端点 3 接收集线器端口寄存器(USBRXHUBPORT3),偏移量 0x09F ..................... 973 USB 端点 4 接收集线器端口寄存器(USBRXHUBPORT4),偏移量 0x0A7 ..................... 973 USB 端点 5 接收集线器端口寄存器(USBRXHUBPORT5),偏移量 0x0AF ..................... 973 USB 端点 6 接收集线器端口 寄存器(USBRXHUBPORT6),偏移量 0x0B7 .................... 973 USB 端点 7 接收集线器端口寄存器(USBRXHUBPORT7),偏移量 0x0BF ..................... 973 USB 端点 8 接收集线器端口寄存器(USBRXHUBPORT8),偏移量 0x0C7 ..................... 973 USB 端点 9 接收集线器端口寄存器(USBRXHUBPORT9),偏移量 0x0CF ..................... 973 USB 端点 10 接收集线器端口寄存器(USBRXHUBPORT10),偏移量 0x0D7 ................. 973 USB 端点 11 接收集线器端口寄存器(USBRXHUBPORT11),偏移量 0x0DF .................. 973 32 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 126: 寄存器 127: 寄存器 128: 寄存器 129: 寄存器 130: 寄存器 131: 寄存器 132: 寄存器 133: 寄存器 134: 寄存器 135: 寄存器 136: 寄存器 137: 寄存器 138: 寄存器 139: 寄存器 140: 寄存器 141: 寄存器 142: 寄存器 143: 寄存器 144: 寄存器 145: 寄存器 146: 寄存器 147: 寄存器 148: 寄存器 149: 寄存器 150: 寄存器 151: 寄存器 152: 寄存器 153: 寄存器 154: 寄存器 155: 寄存器 156: 寄存器 157: 寄存器 158: 寄存器 159: 寄存器 160: 寄存器 161: 寄存器 162: 寄存器 163: 寄存器 164: 寄存器 165: 寄存器 166: 寄存器 167: 寄存器 168: 寄存器 169: 寄存器 170: 寄存器 171: 寄存器 172: 寄存器 173: USB 端点 12 接收集线器端口寄存器(USBRXHUBPORT12),偏移量 0x0E7 ................. 973 USB 端点 13 接收集线器端口寄存器(USBRXHUBPORT13),偏移量 0x0EF ................. 973 USB 端点 14 接收集线器端口寄存器(USBRXHUBPORT14),偏移量 0x0F7 .................. 973 USB 端点 15 接收集线器端口寄存器(USBRXHUBPORT15),偏移量 0x0FF ................. 973 USB 端点 1 发送最大传输数据寄存器(USBTXMAXP1),偏移量 0x110 .......................... 975 USB 端点 2 发送最大传输数据寄存器(USBTXMAXP2),偏移量 0x120 ......................... 975 USB 端点 3 发送最大传输数据寄存器(USBTXMAXP3),偏移量 0x130 ......................... 975 USB 端点 4 发送最大传输数据寄存器(USBTXMAXP4),偏移量 0x140 ......................... 975 USB 端点 5 发送最大传输数据寄存器(USBTXMAXP5),偏移量 0x150 ......................... 975 USB 端点 6 发送最大传输数据寄存器(USBTXMAXP6),偏移量 0x160 ......................... 975 USB 端点 7 发送最大传输数据寄存器(USBTXMAXP7),偏移量 0x170 ......................... 975 USB 端点 8 发送最大传输数据寄存器(USBTXMAXP8),偏移量 0x180 ......................... 975 USB 端点 9 发送最大传输数据寄存器(USBTXMAXP9),偏移量 0x190 ......................... 975 USB 端点 10 发送最大传输数据寄存器(USBTXMAXP10),偏移量 0x1A0 ..................... 975 USB 端点 11 发送最大传输数据寄存器(USBTXMAXP11),偏移量 0x1B0 ...................... 975 USB 端点 12 发送最大传输数据寄存器(USBTXMAXP12),偏移量 0x1C0 ..................... 975 USB 端点 13 发送最大传输数据寄存器(USBTXMAXP13),偏移量 0x1D0 ..................... 975 USB 端点 14 发送最大传输数据寄存器(USBTXMAXP14),偏移量 0x1E0 ..................... 975 USB 端点 15 发送最大传输数据寄存器(USBTXMAXP15),偏移量 0x1F0 ..................... 975 USB 端点 0 控制和状态低字节寄存器(USBCSRL0),偏移量 0x102 .............................. 977 USB 端点 0 控制和状态高字节寄存器(USBCSRH0),偏移量 0x103 .............................. 981 USB 端点 0 接收字节数量寄存器(USBCOUNT0),偏移量 0x108 .................................. 983 USB 端点 0 类型寄存器(USBTYPE0),偏移量 0x10A .................................................. 984 USB NAK 限制寄存器(USBNAKLMT),偏移量 0x10B .................................................. 985 USB 端点 1 发送控制和状态低字节寄存器(USBTXCSRL1),偏移量 0x112 ................... 986 USB 端点 2 发送控制和状态低字节寄存器(USBTXCSRL2),偏移量 0x122 ................... 986 USB 端点 3 发送控制和状态低字节寄存器(USBTXCSRL3),偏移量 0x132 ................... 986 USB 端点 4 发送控制和状态低字节寄存器(USBTXCSRL4),偏移量 0x142 ................... 986 USB 端点 5 发送控制和状态低字节寄存器(USBTXCSRL5),偏移量 0x152 ................... 986 USB 端点 6 发送控制和状态低字节寄存器(USBTXCSRL6),偏移量 0x162 ................... 986 USB 端点 7 发送控制和状态低字节寄存器(USBTXCSRL7),偏移量 0x172 ................... 986 USB 端点 8 发送控制和状态低字节寄存器(USBTXCSRL8),偏移量 0x182 ................... 986 USB 端点 9 发送控制和状态低字节寄存器(USBTXCSRL9),偏移量 0x192 ................... 986 USB 端点 10 发送控制和状态低字节寄存器(USBTXCSRL10),发送偏移量 0x1A2 ........ 986 USB 发送端点 11 控制和状态低字节寄存器(USBTXCSRL11),偏移量 0x1B2 ................ 986 USB 端点 12 发送控制和状态低字节寄存器(USBTXCSRL12),偏移量 0x1C2 ............... 986 USB 端点 13 发送控制和状态低字节寄存器(USBTXCSRL13),偏移量 0x1D2 ............... 986 USB 端点 14 发送发送控制和状态低字节寄存器(USBTXCSRL14),偏移量 0x1E2 ........ 986 USB 端点 15 发送控制和状态低字节寄存器(USBTXCSRL15),偏移量 0x1F2 ............... 986 USB 端点 1 发送控制和状态高字节寄存器(USBTXCSRH1),偏移量 0x113 ................... 990 USB 端点 2 发送控制和状态高字节寄存器(USBTXCSRH2),偏移量 0x123 ................... 990 USB 端点 3 发送控制和状态高字节寄存器(USBTXCSRH3),偏移量 0x133 ................... 990 USB 端点 4 发送控制和状态高字节寄存器(USBTXCSRH4),偏移量 0x143 ................... 990 USB 端点 5 发送控制和状态高字节寄存器(USBTXCSRH5),偏移量 0x153 ................... 990 USB 端点 6 发送控制和状态高字节寄存器(USBTXCSRH6),偏移量 0x163 ................... 990 USB 端点 7 发送控制和状态高字节寄存器(USBTXCSRH7),偏移量 0x173 ................... 990 USB 端点 8 发送控制和状态高字节寄存器(USBTXCSRH8),偏移量 0x183 ................... 990 USB 端点 9 发送控制和状态高字节寄存器(USBTXCSRH9),偏移量 0x193 ................... 990 一月 06, 2012 33 Texas Instruments-生产数据 目录 寄存器 174: 寄存器 175: 寄存器 176: 寄存器 177: 寄存器 178: 寄存器 179: 寄存器 180: 寄存器 181: 寄存器 182: 寄存器 183: 寄存器 184: 寄存器 185: 寄存器 186: 寄存器 187: 寄存器 188: 寄存器 189: 寄存器 190: 寄存器 191: 寄存器 192: 寄存器 193: 寄存器 194: 寄存器 195: 寄存器 196: 寄存器 197: 寄存器 198: 寄存器 199: 寄存器 200: 寄存器 201: 寄存器 202: 寄存器 203: 寄存器 204: 寄存器 205: 寄存器 206: 寄存器 207: 寄存器 208: 寄存器 209: 寄存器 210: 寄存器 211: 寄存器 212: 寄存器 213: 寄存器 214: 寄存器 215: 寄存器 216: 寄存器 217: 寄存器 218: 寄存器 219: 寄存器 220: 寄存器 221: USB 端点 10 发送控制和状态高字节寄存器(USBTXCSRH10),偏移量 0x1A3 ............... 990 USB 端点 11 发送控制和状态高字节寄存器(USBTXCSRH11),偏移量 0x1B3 ............... 990 USB 端点 12 发送控制和状态高字节寄存器(USBTXCSRH12),偏移量 0x1C3 .............. 990 USB 端点 13 发送控制和状态高字节寄存器(USBTXCSRH13),偏移量 0x1D3 .............. 990 USB 发送端点 14 发送控制和状态高字节寄存器(USBTXCSRH14),偏移量 0x1E3 ........ 990 USB 端点 15 发送控制和状态高字节寄存器(USBTXCSRH15),偏移量 0x1F3 ............... 990 USB 端点 1 接收最大传输数据寄存器(USBRXMAXP1),偏移量 0x114 ......................... 994 USB 端点 2 接收最大传输数据寄存器(USBRXMAXP2),偏移量 0x124 ......................... 994 USB 端点 3 接收最大传输数据寄存器(USBRXMAXP3),偏移量 0x134 ......................... 994 USB 端点 4 接收最大传输数据寄存器(USBRXMAXP4),偏移量 0x144 ......................... 994 USB 端点 5 接收最大传输数据寄存器(USBRXMAXP5),偏移量 0x154 ......................... 994 USB 端点 6 接收最大传输数据寄存器(USBRXMAXP6),偏移量 0x164 ......................... 994 USB 端点 7 接收最大传输数据寄存器(USBRXMAXP7),偏移量 0x174 ......................... 994 USB 端点 8 接收最大传输数据寄存器(USBRXMAXP8),偏移量 0x184 ......................... 994 USB 端点 9 接收最大传输数据寄存器(USBRXMAXP9),偏移量 0x194 ......................... 994 USB 端点 10 接收最大传输数据寄存器(USBRXMAXP10),偏移量 0x1A4 ..................... 994 USB 端点 11 接收最大传输数据寄存器(USBRXMAXP11),偏移量 0x1B4 ..................... 994 USB 端点 12 接收最大传输数据寄存器(USBRXMAXP12),偏移量 0x1C4 ..................... 994 USB 端点 13 接收最大传输数据寄存器(USBRXMAXP13),偏移量 0x1D4 ..................... 994 USB 端点 14 接收最大传输数据寄存器(USBRXMAXP14),偏移量 0x1E4 ..................... 994 USB 端点 15 接收最大传输数据寄存器(USBRXMAXP15),偏移量 0x1F4 ..................... 994 USB 端点 1 接收控制和状态低字节寄存器(USBRXCSRL1),偏移量 0x116 ................... 996 USB 端点 2 接收控制和状态低字节寄存器(USBRXCSRL2),偏移量 0x126 ................... 996 USB 端点 3 接收控制和状态低字节寄存器(USBRXCSRL3),偏移量 0x136 ................... 996 USB 端点 4 接收控制和状态低字节寄存器(USBRXCSRL4),偏移量 0x146 ................... 996 USB 端点 5 接收控制和状态低字节寄存器(USBRXCSRL5),偏移量 0x156 ................... 996 USB 端点 6 接收控制和状态低字节寄存器(USBRXCSRL6),偏移量 0x166 ................... 996 USB 端点 7 接收控制和状态低字节寄存器(USBRXCSRL7),偏移量 0x176 ................... 996 USB 端点 8 接收控制和状态低字节寄存器(USBRXCSRL8),偏移量 0x186 ................... 996 USB 端点 9 接收控制和状态低字节寄存器(USBRXCSRL9),偏移量 0x196 ................... 996 USB 端点 10 接收控制和状态低字节寄存器(USBRXCSRL10),偏移量 0x1A6 ............... 996 USB 端点 11 接收控制和状态低字节寄存器(USBRXCSRL11),偏移量 0x1B6 ............... 996 USB 端点 12 接收控制和状态低字节寄存器(USBRXCSRL12),偏移量 0x1C6 ............... 996 USB 端点 13 接收控制和状态低字节寄存器(USBRXCSRL13),偏移量 0x1D6 ............... 996 USB 端点 14 接收控制和状态低字节寄存器(USBRXCSRL14),偏移量 0x1E6 ............... 996 USB 端点 15 接收控制和状态低字节寄存器(USBRXCSRL15),偏移量 0x1F6 ............... 996 USB 端点 1 接收控制和状态高字节寄存器(USBRXCSRH1),偏移量 0x117 ................. 1001 USB 端点 2 接收控制和状态高字节寄存器(USBRXCSRH2),偏移量 0x127 ................ 1001 USB 端点 3 接收控制和状态高字节寄存器(USBRXCSRH3),偏移量 0x137 ................ 1001 USB 端点 4 接收控制和状态高字节寄存器(USBRXCSRH4),偏移量 0x147 ................ 1001 USB 端点 5 接收控制和状态高字节寄存器(USBRXCSRH5),偏移量 0x157 ................ 1001 USB 端点 6 接收控制和状态高字节寄存器(USBRXCSRH6),偏移量 0x167 ................ 1001 USB 端点 7 接收控制和状态高字节寄存器(USBRXCSRH7),偏移量 0x177 ................ 1001 USB 端点 8 接收控制和状态高字节寄存器(USBRXCSRH8),偏移量 0x187 ................ 1001 USB 端点 9 接收控制和状态高字节寄存器(USBRXCSRH9),偏移量 0x197 ................ 1001 USB 端点 10 接收控制和状态高字节寄存器(USBRXCSRH10),偏移量 0x1A7 ............ 1001 USB 端点 11 接收控制和状态高字节寄存器(USBRXCSRH11),偏移量 0x1B7 ............. 1001 USB 端点 12 接收控制和状态高字节寄存器(USBRXCSRH12),偏移量 0x1C7 ............ 1001 34 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 222: 寄存器 223: 寄存器 224: 寄存器 225: 寄存器 226: 寄存器 227: 寄存器 228: 寄存器 229: 寄存器 230: 寄存器 231: 寄存器 232: 寄存器 233: 寄存器 234: 寄存器 235: 寄存器 236: 寄存器 237: 寄存器 238: 寄存器 239: 寄存器 240: 寄存器 241: 寄存器 242: 寄存器 243: 寄存器 244: 寄存器 245: 寄存器 246: 寄存器 247: 寄存器 248: 寄存器 249: 寄存器 250: 寄存器 251: 寄存器 252: 寄存器 253: 寄存器 254: 寄存器 255: 寄存器 256: 寄存器 257: 寄存器 258: 寄存器 259: 寄存器 260: 寄存器 261: 寄存器 262: 寄存器 263: 寄存器 264: 寄存器 265: 寄存器 266: 寄存器 267: 寄存器 268: 寄存器 269: USB 端点 13 接收控制和状态高字节寄存器(USBRXCSRH13),偏移量 0x1D7 ............ 1001 USB 端点 14 接收控制和状态高字节寄存器(USBRXCSRH14),偏移量 0x1E7 ............ 1001 USB 端点 15 接收控制和状态高字节寄存器(USBRXCSRH15),偏移量 0x1F7 ............. 1001 USB 端点 1 接收字节数量寄存器(USBRXCOUNT1),偏移量 0x118 ............................ 1005 USB 端点 2 接收字节数量寄存器(USBRXCOUNT2),偏移量 0x128 ........................... 1005 USB 端点 3 接收字节数量寄存器(USBRXCOUNT3),偏移量 0x138 ........................... 1005 USB 端点 4 接收字节数量寄存器(USBRXCOUNT4),偏移量 0x148 ........................... 1005 USB 端点 5 接收字节数量寄存器(USBRXCOUNT5),偏移量 0x158 ........................... 1005 USB 端点 6 接收字节数量寄存器(USBRXCOUNT6),偏移量 0x168 ........................... 1005 USB 端点 7 接收字节数量寄存器(USBRXCOUNT7),偏移量 0x178 ........................... 1005 USB 端点 8 接收字节数量寄存器(USBRXCOUNT8),偏移量 0x188 ........................... 1005 USB 端点 9 接收字节数量寄存器(USBRXCOUNT9),偏移量 0x198 ........................... 1005 USB 端点 10 接收字节数量寄存器(USBRXCOUNT10),偏移量 0x1A8 ....................... 1005 USB 端点 11 接收字节数量寄存器(USBRXCOUNT11),偏移量 0x1B8 ........................ 1005 USB 端点 12 接收字节数量寄存器(USBRXCOUNT12),偏移量 0x1C8 ....................... 1005 USB 端点 13 接收字节数量寄存器(USBRXCOUNT13),偏移量 0x1D8 ....................... 1005 USB 端点 14 接收字节数量寄存器(USBRXCOUNT14),偏移量 0x1E8 ....................... 1005 USB 端点 15 接收字节数量寄存器(USBRXCOUNT15),偏移量 0x1F8 ....................... 1005 USB 端点 1 主机发送配置类型寄存器(USBTXTYPE1),偏移量 0x11A ........................ 1006 USB 端点 2 主机发送配置类型寄存器(USBTXTYPE2),偏移量 0x12A ........................ 1006 USB 端点 3 主机发送配置类型寄存器(USBTXTYPE3),偏移量 0x13A ........................ 1006 USB 端点 4 主机发送配置类型寄存器(USBTXTYPE4),偏移量 0x14A ........................ 1006 USB 端点 5 主机发送配置类型寄存器(USBTXTYPE5),偏移量 0x15A ........................ 1006 USB 端点 6 主机发送配置类型寄存器(USBTXTYPE6),偏移量 0x16A ........................ 1006 USB 端点 7 主机发送配置类型寄存器(USBTXTYPE7),偏移量 0x17A ........................ 1006 USB 端点 8 主机发送配置类型寄存器(USBTXTYPE8),偏移量 0x18A ........................ 1006 USB 端点 9 主机发送配置类型寄存器(USBTXTYPE9),偏移量 0x19A ........................ 1006 USB 端点 10 主机发送配置类型寄存器(USBTXTYPE10),偏移量 0x1AA .................... 1006 USB 端点 11 主机发送配置类型寄存器(USBTXTYPE11),偏移量 0x1BA .................... 1006 USB 端点 12 主机发送配置类型寄存器(USBTXTYPE12),偏移量 0x1CA .................... 1006 USB 端点 13 主机发送配置类型寄存器(USBTXTYPE13),偏移量 0x1DA .................... 1006 USB 端点 14 主机发送配置类型寄存器(USBTXTYPE14),偏移量 0x1EA .................... 1006 USB 端点 15 主机发送配置类型寄存器(USBTXTYPE15),偏移量 0x1FA .................... 1006 USB 端点 1 主机发送间隔寄存器(USBTXINTERVAL1),偏移量 0x11B ....................... 1008 USB 端点 2 主机发送间隔寄存器(USBTXINTERVAL2),偏移量 0x12B ....................... 1008 USB 端点 3 主机发送间隔寄存器(USBTXINTERVAL3),偏移量 0x13B ....................... 1008 USB 端点 4 主机发送间隔寄存器(USBTXINTERVAL4),偏移量 0x14B ....................... 1008 USB 端点 5 主机发送间隔寄存器(USBTXINTERVAL5),偏移量 0x15B ....................... 1008 USB 端点 6 主机发送间隔寄存器(USBTXINTERVAL6),偏移量 0x16B ....................... 1008 USB 端点 7 主机发送间隔寄存器(USBTXINTERVAL7),偏移量 0x17B ....................... 1008 USB 端点 8 主机发送间隔寄存器(USBTXINTERVAL8),偏移量 0x18B ....................... 1008 USB 端点 9 主机发送间隔寄存器(USBTXINTERVAL9),偏移量 0x19B ....................... 1008 USB 端点 10 主机发送间隔寄存器(USBTXINTERVAL10),偏移量 0x1AB ................... 1008 USB 端点 11 主机发送间隔寄存器(USBTXINTERVAL11),偏移量 0x1BB .................... 1008 USB 端点 12 主机发送间隔寄存器(USBTXINTERVAL12),偏移量 0x1CB ................... 1008 USB 端点 13 主机发送间隔寄存器(USBTXINTERVAL13),偏移量 0x1DB ................... 1008 USB 端点 14 主机发送间隔寄存器(USBTXINTERVAL14),偏移量 0x1EB ................... 1008 USB 端点 15 主机发送间隔寄存器(USBTXINTERVAL15),偏移量 0x1FB ................... 1008 一月 06, 2012 35 Texas Instruments-生产数据 目录 寄存器 270: 寄存器 271: 寄存器 272: 寄存器 273: 寄存器 274: 寄存器 275: 寄存器 276: 寄存器 277: 寄存器 278: 寄存器 279: 寄存器 280: 寄存器 281: 寄存器 282: 寄存器 283: 寄存器 284: 寄存器 285: 寄存器 286: 寄存器 287: 寄存器 288: 寄存器 289: 寄存器 290: 寄存器 291: 寄存器 292: 寄存器 293: 寄存器 294: 寄存器 295: 寄存器 296: 寄存器 297: 寄存器 298: 寄存器 299: 寄存器 300: 寄存器 301: 寄存器 302: 寄存器 303: 寄存器 304: 寄存器 305: 寄存器 306: 寄存器 307: 寄存器 308: 寄存器 309: 寄存器 310: 寄存器 311: 寄存器 312: 寄存器 313: 寄存器 314: 寄存器 315: 寄存器 316: 寄存器 317: USB 端点 1 主机配置接收类型寄存器(USBRXTYPE1),偏移量 0x11C ........................ 1010 USB 端点 2 主机配置接收类型寄存器(USBRXTYPE2),偏移量 0x12C ....................... 1010 USB 端点 3 主机配置接收类型寄存器(USBRXTYPE3),偏移量 0x13C ....................... 1010 USB 端点 4 主机配置接收类型寄存器(USBRXTYPE4),偏移量 0x14C ....................... 1010 USB 端点 5 主机配置接收类型寄存器(USBRXTYPE5),偏移量 0x15C ....................... 1010 USB 端点 6 主机配置接收类型寄存器(USBRXTYPE6),偏移量 0x16C ....................... 1010 USB 端点 7 主机配置接收类型寄存器(USBRXTYPE7),偏移量 0x17C ....................... 1010 USB 端点 8 主机配置接收类型寄存器(USBRXTYPE8),偏移量 0x18C ....................... 1010 USB 端点 9 主机配置接收类型寄存器(USBRXTYPE9),偏移量 0x19C ....................... 1010 USB 端点 10 主机配置接收类型寄存器(USBRXTYPE10),偏移量 0x1AC ................... 1010 USB 端点 11 主机配置接收类型寄存器(USBRXTYPE11),偏移量 0x1BC .................... 1010 USB 端点 12 主机配置接收类型寄存器(USBRXTYPE12),偏移量 0x1CC ................... 1010 USB 端点 13 主机配置接收类型寄存器(USBRXTYPE13),偏移量 0x1DC ................... 1010 USB 端点 14 主机配置接收类型寄存器(USBRXTYPE14),偏移量 0x1EC ................... 1010 USB 端点 15 主机配置接收类型寄存器(USBRXTYPE15),偏移量 0x1FC ................... 1010 USB 端点 1 主机接收轮询间隔寄存器(USBRXINTERVAL1),偏移量 0x11D ................ 1012 USB 端点 2 主机接收轮询间隔寄存器(USBRXINTERVAL2),偏移量 0x12D ................ 1012 USB 端点 3 主机接收轮询间隔寄存器(USBRXINTERVAL3),偏移量 0x13D ................ 1012 USB 端点 4 主机接收轮询间隔寄存器(USBRXINTERVAL4),偏移量 0x14D ................ 1012 USB 端点 5 主机接收轮询间隔寄存器(USBRXINTERVAL5),偏移量 0x15D ................ 1012 USB 端点 6 主机接收轮询间隔寄存器(USBRXINTERVAL6),偏移量 0x16D ................ 1012 USB 端点 7 主机接收轮询间隔寄存器(USBRXINTERVAL7),偏移量 0x17D ................ 1012 USB 端点 8 主机接收轮询间隔寄存器(USBRXINTERVAL8),偏移量 0x18D ................ 1012 USB 端点 9 主机接收轮询间隔寄存器(USBRXINTERVAL9),偏移量 0x19D ................ 1012 USB 端点 10 主机接收轮询间隔寄存器(USBRXINTERVAL10),偏移量 0x1AD ............ 1012 USB 端点 11 主机接收轮询间隔寄存器(USBRXINTERVAL11),偏移量 0x1BD ............ 1012 USB 端点 12 主机接收轮询间隔寄存器(USBRXINTERVAL12),偏移量 0x1CD ............ 1012 USB 端点 13 主机接收轮询间隔寄存器(USBRXINTERVAL13),偏移量 0x1DD ............ 1012 USB 端点 14 主机接收轮询间隔寄存器(USBRXINTERVAL14),偏移量 0x1ED ............ 1012 USB 端点 15 主机接收轮询间隔寄存器(USBRXINTERVAL15),偏移量 0x1FD ............ 1012 USB 端点 1 块传输中请求包数量寄存器(USBRQPKTCOUNT1),偏移量 0x304 .......... 1014 USB 端点 2 块传输中请求包数量寄存器(USBRQPKTCOUNT2),偏移量 0x308 .......... 1014 USB 端点 3 块传输中请求包数量寄存器(USBRQPKTCOUNT3),偏移量 0x30C .......... 1014 USB 端点 4 块传输中请求包数量寄存器(USBRQPKTCOUNT4),偏移量 0x310 .......... 1014 USB 端点 5 块传输中请求包数量寄存器(USBRQPKTCOUNT5),偏移量 0x314 .......... 1014 USB 端点 6 块传输中请求包数量寄存器(USBRQPKTCOUNT6),偏移量 0x318 .......... 1014 USB 端点 7 块传输中请求包数量寄存器(USBRQPKTCOUNT7),偏移量 0x31C .......... 1014 USB 端点 8 块传输中请求包数量寄存器(USBRQPKTCOUNT8),偏移量 0x320 .......... 1014 USB 端点 9 块传输中请求包数量寄存器(USBRQPKTCOUNT9),偏移量 0x324 .......... 1014 USB 端点 10 块传输中请求包数量寄存器(USBRQPKTCOUNT10),偏移量 0x328 ....... 1014 USB 端点 11 块传输中请求包数量寄存器(USBRQPKTCOUNT11),偏移量 0x32C ....... 1014 USB 端点 12 块传输中请求包数量寄存器(USBRQPKTCOUNT12),偏移量 0x330 ....... 1014 USB 端点 13 块传输中请求包数量寄存器(USBRQPKTCOUNT13),偏移量 0x334 ....... 1014 USB 端点 14 块传输中请求包数量寄存器(USBRQPKTCOUNT14),偏移量 0x338 ....... 1014 USB 端点 15 块传输中请求包数量寄存器(USBRQPKTCOUNT15),偏移量 0x33C ...... 1014 USB 接收双包缓存禁用寄存器(USBRXDPKTBUFDIS),偏移量 0x340 ........................ 1016 USB 发送双包缓存禁用寄存器(USBTXDPKTBUFDIS),偏移量 0x342 ........................ 1018 USB 外部电源控制寄存器(USBEPC),偏移量 0x400 ................................................. 1020 36 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 318: 寄存器 319: 寄存器 320: 寄存器 321: 寄存器 322: 寄存器 323: 寄存器 324: 寄存器 325: 寄存器 326: 寄存器 327: 寄存器 328: 寄存器 329: 寄存器 330: 寄存器 331: 寄存器 332: USB 外部电源控制原始中断状态寄存器(USBEPCRIS),偏移量 0x404 ........................ 1023 USB 外部电源控制中断屏蔽寄存器(USBEPCIM),偏移量 0x408 ................................ 1024 USB 外部电源控制中断状态和清除寄存器(USBEPCISC),偏移量 0x40C .................... 1025 USB 设备恢复原始中断状态寄存器(USBDRRIS),偏移量 0x410 ................................ 1026 USB 设备恢复中断屏蔽寄存器(USBDRIM),偏移量 0x414 ......................................... 1027 USB 设备恢复中断状态和清除寄存器(USBDRISC),偏移量 0x418 ............................. 1028 USB 通用控制和状态寄存器(USBGPCS),偏移量 0x41C ........................................... 1029 USB VBUS 浮动控制寄存器(USBVDC),偏移量 0x430 .............................................. 1030 USB VBUS 浮动控制原始中断状态寄存器(USBVDCRIS),偏移量 0x434 .................... 1031 USB VBUS 浮动控制中断屏蔽寄存器(USBVDCIM),偏移量 0x438 ............................. 1032 USB VBUS 浮动控制中断状态和清除寄存器(USBVDCISC),偏移量 0x43C ................ 1033 USB ID 有效检测原始中断状态寄存器(USBIDVRIS),偏移量 0x444 ........................... 1034 USB ID 有效检测中断屏蔽寄存器(USBIDVIM),偏移量 0x448 .................................... 1035 USB ID 有效检测中断状态与清除寄存器(USBIDVISC),偏移量 0x44C ....................... 1036 USB DMA 选择寄存器(USBDMASEL),偏移量 0x450 ............................................... 1037 模拟比较器 ................................................................................................................................... 1039 寄存器 1: 模拟比较器屏蔽中断状态寄存器(ACMIS),偏移量 0x000 ........................................... 1045 寄存器 2: 模拟比较器原始中断状态寄存器(ACRIS),偏移量 0x004 ............................................ 1046 寄存器 3: 模拟比较器中断启用寄存器(ACINTEN),偏移量 0x008 .............................................. 1047 寄存器 4: 模拟比较器参考电压控制寄存器(ACREFCTL),偏移量 0x010 .................................... 1048 寄存器 5: 模拟比较器状态寄存器 0(ACSTAT0),偏移量 0x020 .................................................. 1049 寄存器 6: 模拟比较器状态寄存器 1(ACSTAT1),偏移量 0x040 .................................................. 1049 寄存器 7: 模拟比较器状态寄存器 2(ACSTAT2),偏移量 0x060 .................................................. 1049 寄存器 8: 模拟比较器控制寄存器 0(ACCTL0),偏移量 0x024 .................................................... 1050 寄存器 9: 模拟比较器控制寄存器 1(ACCTL1),偏移量 0x044 .................................................... 1050 寄存器 10: 模拟比较器控制寄存器 2(ACCTL2),偏移量 0x064 .................................................... 1050 脉宽调制器 (PWM) ....................................................................................................................... 1052 寄存器 1: PWM 主机控制寄存器(PWMCTL),偏移量 0x000 ...................................................... 1066 寄存器 2: PWM 时间基准同步寄存器(PWMSYNC),偏移量 0x004 ............................................ 1068 寄存器 3: PWM 输出使能寄存器(PWMENABLE),偏移量 0x008 ............................................... 1069 寄存器 4: PWM 输出反相寄存器(PWMINVERT),偏移量 0x00C ............................................... 1071 寄存器 5: PWM 输出故障寄存器(PWMFAULT),偏移量 0x010 .................................................. 1073 寄存器 6: PWM 中断使能寄存器(PWMINTEN),偏移量 0x014 .................................................. 1075 寄存器 7: PWM 原始中断状态寄存器(PWMRIS),偏移量 0x018 ................................................ 1077 寄存器 8: PWM 中断状态和清除寄存器(PWMISC),偏移量 0x01C ............................................ 1079 寄存器 9: PWM 状态寄存器(PWMSTATUS),偏移量 0x020 ...................................................... 1081 寄存器 10: PWM 故障条件值寄存器(PWMFAULTVAL),偏移量 0x024 ......................................... 1083 寄存器 11: PWM 使能更新寄存器(PWMENUPD),偏移量 0x028 ................................................ 1085 寄存器 12: PWM0 控制寄存器(PWM0CTL),偏移量 0x040 ......................................................... 1088 寄存器 13: PWM1 控制寄存器(PWM1CTL),偏移量 0x080 ......................................................... 1088 寄存器 14: PWM2 控制寄存器(PWM2CTL),偏移量 0x0C0 ........................................................ 1088 寄存器 15: PWM3 控制寄存器(PWM3CTL),偏移量 0x100 ......................................................... 1088 寄存器 16: PWM0 中断和触发启用寄存器(PWM0INTEN),偏移量 0x044 .................................... 1093 寄存器 17: PWM1 中断和触发启用寄存器(PWM1INTEN),偏移量 0x084 .................................... 1093 寄存器 18: PWM2 中断和触发启用寄存器(PWM2INTEN),偏移量 0x0C4 .................................... 1093 寄存器 19: PWM3 中断和触发启用寄存器(PWM3INTEN),偏移量 0x104 .................................... 1093 寄存器 20: PWM0 原始中断状态寄存器(PWM0RIS),偏移量 0x048 ............................................ 1096 寄存器 21: PWM1 原始中断状态寄存器(PWM1RIS),偏移量 0x088 ............................................ 1096 一月 06, 2012 37 Texas Instruments-生产数据 目录 寄存器 22: 寄存器 23: 寄存器 24: 寄存器 25: 寄存器 26: 寄存器 27: 寄存器 28: 寄存器 29: 寄存器 30: 寄存器 31: 寄存器 32: 寄存器 33: 寄存器 34: 寄存器 35: 寄存器 36: 寄存器 37: 寄存器 38: 寄存器 39: 寄存器 40: 寄存器 41: 寄存器 42: 寄存器 43: 寄存器 44: 寄存器 45: 寄存器 46: 寄存器 47: 寄存器 48: 寄存器 49: 寄存器 50: 寄存器 51: 寄存器 52: 寄存器 53: 寄存器 54: 寄存器 55: 寄存器 56: 寄存器 57: 寄存器 58: 寄存器 59: 寄存器 60: 寄存器 61: 寄存器 62: 寄存器 63: 寄存器 64: 寄存器 65: 寄存器 66: 寄存器 67: 寄存器 68: 寄存器 69: PWM2 原始中断状态寄存器(PWM2RIS),偏移量 0x0C8 ............................................ 1096 PWM3 原始中断状态寄存器(PWM3RIS),偏移量 0x108 ............................................ 1096 PWM0 中断状态和清除寄存器(PWM0ISC),偏移量 0x04C ........................................ 1098 PWM1 中断状态和清除寄存器(PWM1ISC),偏移量 0x08C ........................................ 1098 PWM2 中断状态和清除寄存器(PWM2ISC),偏移量 0x0CC ........................................ 1098 PWM3 中断状态和清除寄存器(PWM3ISC),偏移量 0x10C ........................................ 1098 PWM0 装载寄存器(PWM0LOAD),偏移量 0x050 ...................................................... 1100 PWM1 装载寄存器(PWM1LOAD),偏移量 0x090 ...................................................... 1100 PWM2 装载寄存器(PWM2LOAD),偏移量 0x0D0 ..................................................... 1100 PWM3 装载寄存器(PWM3LOAD),偏移量 0x110 ...................................................... 1100 PWM0 计数寄存器(PWM0COUNT),偏移量 0x054 ................................................... 1101 PWM1 计数寄存器(PWM1COUNT),偏移量 0x094 ................................................... 1101 PWM2 计数寄存器(PWM2COUNT),偏移量 0x0D4 ................................................... 1101 PWM3 计数寄存器(PWM3COUNT),偏移量 0x114 ................................................... 1101 PWM0 比较寄存器 A(PWM0CMPA),偏移量 0x058 ................................................... 1102 PWM1 比较寄存器 A(PWM1CMPA),偏移量 0x098 ................................................... 1102 PWM2 比较寄存器 A(PWM2CMPA),偏移量 0x0D8 .................................................. 1102 PWM3 比较寄存器 A(PWM3CMPA),偏移量 0x118 ................................................... 1102 PWM0 比较寄存器 B(PWM0CMPB),偏移量 0x05C .................................................. 1103 PWM1 比较寄存器 B(PWM1CMPB),偏移量 0x09C .................................................. 1103 PWM2 比较寄存器 B(PWM2CMPB),偏移量 0x0DC ................................................. 1103 PWM3 比较寄存器 B(PWM3CMPB),偏移量 0x11C .................................................. 1103 PWM0 发生器 A 控制寄存器(PWM0GENA),偏移量 0x060 ........................................ 1104 PWM1 发生器 A 控制寄存器(PWM1GENA),偏移量 0x0A0 ....................................... 1104 PWM2 发生器 A 控制寄存器(PWM2GENA),偏移量 0x0E0 ....................................... 1104 PWM3 发生器 A 控制寄存器(PWM3GENA),偏移量 0x120 ........................................ 1104 PWM0 发生器 B 控制寄存器(PWM0GENB),偏移量 0x064 ........................................ 1107 PWM1 发生器 B 控制寄存器(PWM1GENB),偏移量 0x0A4 ....................................... 1107 PWM2 发生器 B 控制寄存器(PWM2GENB),偏移量 0x0E4 ....................................... 1107 PWM3 发生器 B 控制寄存器(PWM3GENB),偏移量 0x124 ........................................ 1107 PWM0 死区控制寄存器(PWM0DBCTL),偏移量 0x068 ............................................. 1109 PWM1 死区控制寄存器(PWM1DBCTL),偏移量 0x0A8 ............................................. 1109 PWM2 死区控制寄存器(PWM2DBCTL),偏移量 0x0E8 ............................................. 1109 PWM3 死区控制寄存器(PWM3DBCTL),偏移量 0x128 ............................................. 1109 PWM0 死区上升沿延迟寄存器(PWM0DBRISE),偏移量 0x06C ................................. 1110 PWM1 死区上升沿延迟寄存器(PWM1DBRISE),偏移量 0x0AC ................................. 1110 PWM2 死区上升沿延迟寄存器(PWM2DBRISE),偏移量 0x0EC ................................. 1110 PWM3 死区上升沿延迟寄存器(PWM3DBRISE),偏移量 0x12C ................................. 1110 PWM0 死区下降沿延迟寄存器(PWM0DBFALL),偏移量 0x070 .................................. 1111 PWM1 死区下降沿延迟寄存器(PWM1DBFALL),偏移量 0x0B0 .................................. 1111 PWM2 死区下降沿延迟寄存器(PWM2DBFALL),偏移量 0x0F0 .................................. 1111 PWM3 死区下降沿延迟寄存器(PWM3DBFALL),偏移量 0x130 .................................. 1111 PWM0 故障源寄存器 0(PWM0FLTSRC0),偏移量 0x074 .......................................... 1112 PWM1 故障源寄存器 0(PWM1FLTSRC0),偏移量 0x0B4 .......................................... 1112 PWM2 故障源寄存器 0(PWM2FLTSRC0),偏移量 0x0F4 .......................................... 1112 PWM3 故障源寄存器 0(PWM3FLTSRC0),偏移量 0x134 .......................................... 1112 PWM0 故障源寄存器 1(PWM0FLTSRC1),偏移量 0x078 .......................................... 1114 PWM1 故障源寄存器 1(PWM1FLTSRC1),偏移量 0x0B8 .......................................... 1114 38 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 70: 寄存器 71: 寄存器 72: 寄存器 73: 寄存器 74: 寄存器 75: 寄存器 76: 寄存器 77: 寄存器 78: 寄存器 79: 寄存器 80: 寄存器 81: 寄存器 82: 寄存器 83: 寄存器 84: 寄存器 85: 寄存器 86: 寄存器 87: PWM2 故障源寄存器 1(PWM2FLTSRC1),偏移量 0x0F8 .......................................... 1114 PWM3 故障源寄存器 1(PWM3FLTSRC1),偏移量 0x138 .......................................... 1114 PWM0 最小故障时间寄存器(PWM0MINFLTPER),偏移量 0x07C ............................... 1117 PWM1 最小故障时间寄存器(PWM1MINFLTPER),偏移量 0x0BC .............................. 1117 PWM2 最小故障时间寄存器(PWM2MINFLTPER),偏移量 0x0FC .............................. 1117 PWM3 最小故障时间寄存器(PWM3MINFLTPER),偏移量 0x13C ............................... 1117 PWM0 故障管脚逻辑感知寄存器(PWM0FLTSEN),偏移量 0x800 ............................... 1118 PWM1 故障管脚逻辑感知寄存器(PWM1FLTSEN),偏移量 0x880 ............................... 1118 PWM2 故障管脚逻辑感知寄存器(PWM2FLTSEN),偏移量 0x900 ............................... 1118 PWM3 故障管脚逻辑感知寄存器(PWM3FLTSEN),偏移量 0x980 ............................... 1118 PWM0 故障状态寄存器 0(PWM0FLTSTAT0),偏移量 0x804 ...................................... 1119 PWM1 故障状态寄存器 0(PWM1FLTSTAT0),偏移量 0x884 ...................................... 1119 PWM2 故障状态寄存器 0(PWM2FLTSTAT0),偏移量 0x904 ...................................... 1119 PWM3 故障状态寄存器 0(PWM3FLTSTAT0),偏移量 0x984 ...................................... 1119 PWM0 故障状态寄存器 1(PWM0FLTSTAT1),偏移量 0x808 ...................................... 1121 PWM1 故障状态寄存器 1(PWM1FLTSTAT1),偏移量 0x888 ...................................... 1121 PWM2 故障状态寄存器 1(PWM2FLTSTAT1),偏移量 0x908 ...................................... 1121 PWM3 故障状态寄存器 1(PWM3FLTSTAT1),偏移量 0x988 ...................................... 1121 正交编码器接口 (QEI) .................................................................................................................. 1124 寄存器 1: QEI 控制寄存器(QEICTL),偏移量 0x000 ................................................................. 1130 寄存器 2: QEI 状态寄存器(QEISTAT),偏移量 0x004 ................................................................ 1133 寄存器 3: QEI 位置寄存器(QEIPOS),偏移量 0x008 ................................................................. 1134 寄存器 4: QEI 最大位置寄存器(QEIMAXPOS),偏移量 0x00C .................................................. 1135 寄存器 5: QEI 定时器加载寄存器(QEILOAD),偏移量 0x010 ..................................................... 1136 寄存器 6: QEI 定时器寄存器(QEITIME),偏移量 0x014 ............................................................ 1137 寄存器 7: QEI 速度计数寄存器(QEICOUNT),偏移量 0x018 ..................................................... 1138 寄存器 8: QEI 速度寄存器(QEISPEED),偏移量 0x01C ............................................................ 1139 寄存器 9: QEI 中断启用寄存器(QEIINTEN),偏移量 0x020 ....................................................... 1140 寄存器 10: QEI 原始中断状态寄存器(QEIRIS),偏移量 0x024 ..................................................... 1141 寄存器 11: QEI 中断状态和清除寄存器(QEIISC),偏移量 0x028 ................................................. 1142 一月 06, 2012 39 Texas Instruments-生产数据 修订历史 修订历史 修订历史列表列出 LM3S9B92 数据手册各个版本之间的区别。 表 1. 修订历史 日期 2011年7月 版本号 9970 描述 ■ 修正“复位源”列表。 ■ 将缺失的 PICAL 位(PIOSC 校正)添加到 DC4 寄存器中。 ■ 添加重要的注意事项:RCC 寄存器必须要在 RCC2 寄存器之前写入值。 ■ 在休眠模块章节,删除“当使用 4.194304 MHz 晶振所需的特别注意事项”部分,因为该部分会添 加到勘误文档中。 ■ 添加注意事项:除 PB0 和 PB1 外(其仅可耐 3.6 V 电压)的所有的 GPIO 管脚在配置为输入管脚时 都可耐 5 V 电压。 ■ 注意:在 ISO 7816 智能卡模式中(当 UARTCTL 寄存器中的 SMART 位置位时)UARTCTL 寄存器 中的 HSE 位状态对时钟的产生无影响。 ■ 修正 UART 中断清除 (UARTICR) 寄存器中的 LIN 模式位的名称。 ■ 修正在表“未用信号的连接”中 RST 的管脚编号(其它的管脚列表已修正)。 ■ 在“工作特性”一章中: – 在“热学特性”表中,修改了热阻值。 – 在“ESD 最大额定参数”表中,修改了参数 VESDCDM;删除了参数 VESDMM。 ■ 按模块对“电气特性”章节进行了整理。此外,某些推荐的直流工作条件、LDO 稳压器、时钟、 GPIO、EPI、ADC 和 SSI 特性都已定稿。 ■ 增添了缺失的次序表。 ■ 其它几处小的增补及改动。 40 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 1. 修订历史(续) 日期 2011年3月 版本号 9538 描述 ■ 对“系统控制”一章中的“复位控制”部分进行说明。 ■ 修正了在“主时钟树”表中的 USB PLL 速率。 ■ 修正了 DMA 通道等待请求状态 (DMAWAITSTAT) 寄存器的复位值。 ■ 修正了“具有非 0 复位值的 GPIO”表。 ■ 将“主机总线写操作时序(地址和数据复用;ALE + 双 CSn 配置)”图表添加到 EPI 章节中。 ■ 说明了定时器重载仅用于周期模式。 ■ 说明了在看门狗控制 (WDTCTL) 寄存器中,置位后,只有位 0 不可进行写操作。 ■ 将“采样平均实例”图添加到 ADC 章节中。 ■ 修正了“SPI 帧格式的 SSI 时序图”中的错误。 ■ 在《电气特性》一章中: – 从“电源特性”表中删除了参数 TPORMIN,并删除了其对应的图。 – 修正了在“EPI 通用模式下接口特性”表中的参数 tRDYSU;并对“通用模式下iRDY信号时序 图”进行了修正。 – 将 tADCSAMP 采样时间参数添加到“ADC 特性”表中。 ■ 其它几处小的增补及改动。 2011年1月 9161 ■ 说明主振荡器校验电路时序。 ■ 添加了注意事项:模块时钟启用后,必须等待至少 3 个系统时钟才可访问该模块寄存器。另一个增 加的注意事项:以太网 PHY 上电和对其访问之间需设置一段时间的延迟。 ■ 将“HB16 复用模式的示意图”添加到外设接口章节 (EPI) 中。 ■ 修正了在 USB 通用控制和状态 (USBGPCS) 寄存器中的 Device Mode (DEVMOD) 位域的复位值。 ■ 对“模拟比较器”章节中的初始化和配置程序进行了说明。 ■ 在《电气特性》一章中: – 增加了当微处理器未上电时(在最大额定参数表中的参数 VNON),非上电管脚上的最大输入电 压规格。 – 将“耗电电流规格(初版)”部分用“额度功率消耗”、“最大电流规格”和“典型的电流损 耗及频率”替代。 – 对“复位”和“上电和掉电”特性进行了说明;并对电源备份前的掉电操作增加了新的规定。 – 增添了使用外部稳压器为 VDDC 供电时所需的特性。 ■ 其它几处小的增补及改动。 一月 06, 2012 41 Texas Instruments-生产数据 修订历史 表 1. 修订历史(续) 日期 2010年12月 版本号 8832 描述 ■ 某些数据手册中意外遗漏了关于高级加密标准 (AES) 密码表和循环冗余检验 (CRC) 错误检测功能的 信息。现已添加。 ■ 在 APINT 寄存器中,位名称从 SYSRESETREQ 变为 SYSRESREQ。 ■ 将 DEBUG 位域(调试优先级)添加到 SYSPRI3 寄存器中。 ■ 对 Flash 存储器警告进行了说明。 ■ 重新组织“通用定时器”一章,整合了重复的文本。 ■ 组合了 GPTMTAILR、GPTMTAMATCHR、GPTMTAR、GPTMTAV、GPTMTBILR、 GPTMTAMATCHR、GPTMTBR 和 GPTMTBV 寄存器中的高和低位域,以兼容未来的版本。 ■ 移除在 UART 章节中提及的假启动位的检测。不支持该特性。 ■ 添加对 SSI 主机时钟的限制,SSICLK 不能超过 25 MHz。 ■ 修改 I2C 主机和从机寄存器基地址并且将偏移量修改为相对于 I2C 模块基地址的偏移量,因此对于 所有的 I2C 从机寄存器而言,寄存器基地址和偏移量都变化了。 ■ 在《电气特性》一章中: – 将单端时钟源输入电压值添加到“建议的直流工作条件”表中。 – 从“MOSC 振荡器输入特性”表中删除了振荡器模式值。 – 将 TVDD2_3 电源电压参数添加到“复位特性”表中。 – 增添了“上电复位和电压参数”时序图。 – 将 tALEADD 参数添加到了“EPI 8 位/16 位主机总线模式下的接口特性”表中。 – 增添了“HB8/HB16 模式复用读时序”图和“HB8/HB16 模式复用写时序”图。 42 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 1. 修订历史(续) 日期 2010年9月 版本号 7794 描述 ■ 将原《ARM Cortex-M3处理器内核》、《存储器映射》、《中断》这几章的内容进行重新编排,整 理形成《Cortex-M3处理器内核》与《Cortex-M3内核级外设》两章,并添加了包括所有 Cortex-M3 寄存器在内的大量内容。 ■ 将寄存器的名称修改一致: StellarisWare® Cortex-M3 中断控制和状态 (ICSR) 寄存器名称修改为中 断控制及状态 (INTCTRL) 寄存器;Cortex-M3 中断设置使能 (SETNA) 寄存器名称修改为中断 0~31 设置使能 (EN0) 寄存器。 ■ 在《系统控制》一章中: – 修正了“复位源”列表(参见 表 5-3 在 189页)。 – 增添“复位的特别注意事项”一节。 ■ 在《内部存储器》一章中: – 添加了Flash操作期间指令执行情况的说明; – 删除了已不再使用的 ROM 版本 (RMVER) 寄存器。 ■ 修改 图 8-1 在 382页 以及 图 8-2 在 383页,说明了 GPIO 输入端作为复用功能使用时的工作情况。 ■ 将 GPIO 模拟模块选择寄存器 (GPIOAMSEL) 寄存器中的 GPIOAMSEL 位域修正为 8 位宽,即第 [7:0] 位。 ■ 在《通用定时器》一章中,说明32位RTC模式下的工作情况。 ■ 在《CAN》一章中,举例说明CAN位时序。 ■ 在《工作特性》一章中,将热阻(结-环境)值修正为 32。 ■ 在《电气特性》一章中: – 将“GPIO 配置为模拟输入端时的输入电压值”添加到 表 26-1 在 1224页。 – 将 ILKG 参数(GPIO 输入漏电流)添加到 表 26-16 在 1232页。 – 修正了在 表 26-5 在 1228页 中的复位时序。 – 修正了 表 26-22 在 1239页 中 VREFA 的最大值。 – 修正了 表 26-24 在 1239页 中的 tCLKRF(SSIClk 上升/下降时间)值。 – 增添了 I2C 特性表(参见 表 26-25 在 1241页)。 ■ 增加运输贮藏物(托盘、卷带)的尺寸。 2010年6月 7413 ■ 在“热特性”表中将热阻值由34修正为32。 2010年6月 7299 ■ 将通过EPI0连接的外设及RAM在寻址空间内的最高映射地址由0xCFFF FFFF更改为0xDFFF FFFF。 ■ 不再将4.194304MHz晶体作为系统时钟及PLL的时钟源。 ■ 在《内部存储器》一章中将 ROM 描述内容进行了精简,并删除了与 ROM 相关的若干附录。 ■ DMA 通道术语变更:将 DMA 通道备用选择 (DMACHALT) 寄存器更名为 DMA 通道分配 (DMACHASGN) 寄存器;将 CHALT 位域更名为 CHASGN 位域;并不再称“DMA 通道的主、副功 能”而改称“DMA 通道的主、次功能”,以免与“主/副通道”混淆。 ■ 对 EPI 主波特率 (EPIBAUD) 等式进行了说明。 ■ 在《信号表》一章添加了“未用管脚的处理”一节。 ■ 在《电气特性》一章中: – 修正了“复位特性”表中电源电压(VDD)的上升时间; – 添加“SDRAM初始化及装载模式寄存器时序图”; – 在EPI时序图中添加BSEL0n/BSEL1n。 一月 06, 2012 43 Texas Instruments-生产数据 修订历史 表 1. 修订历史(续) 日期 2010年5月 版本号 7164 描述 ■ 为五个新的 Stellaris® Tempest-class部件增添了数据手册:LM3S1R26、LM3S1621、LM3S1B21、 LM3S9781 和 LM3S9B81。 ■ 其它几处小的增补及改动。 2010年5月 7101 ■ 添加“按可配置的管脚数列出的备选功能表”,将信号按照可赋的管脚数目依次列出。此表格宜用 于根据特定功能来规划管脚的配置。 ■ 其它几处小的增补及改动。 2010年3月 6983 ■ 修正了 EPIHB8CFG、EPI_HB16CFG 和 EPIGPCFG 寄存器的复位值。 ■ 在 GPTMTBR 寄存器中扩展了 TBRL 位域。 ■ 其它几处小的增补及改动。 2010年3月 6912 ■ 在《内部存储器》一章中将 USER_DBG 寄存器更名为 BOOTCFG 寄存器。添加说明,描述如何 在复位后利用GPIO管脚强制执行ROM的Boot Loader。 ■ 在《ADC》一章中添加了采样相位控制相关的3个图。 ■ 对在 OTG 模式中的 USB0VBUS 及 USB0ID 配置进行了说明。 44 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 1. 修订历史(续) 日期 2010年2月 版本号 6790 描述 ■ 添加BGA108封装。 ■ 在《系统控制》一章中: – 添加外部复位及掉电复位的功能性说明; – 添加睡眠模式后调试访问端口的工作说明; – 修正了运行模式时钟配置 2 (RCC2) 寄存器的复位值。 ■ 在《内部存储器》一章中,添加关于Flash存储器访问错误的说明,并增加一节专用于描述Flash存 储器的中断。 ■ 在《外部设备接口》一章中: – 添加关于字节选择以及双片选的说明; – 添加连续读模式(即之前的SRAM模式)的时序图; – 修正了 EPI 写 FIFO 计数 (EPIWFIFOCNT) 和 EPI 原始中断状态 (EPIRIS) 寄存器的复位值。 ■ 添加关于定时器工作模式的说明,添加关于 GPTM 定时器 n 预分频匹配值 (GPTMTnPMR) 寄存器 说明。 ■ 对 GPTM Timer A 值 (GPTMTAV) 和 GPTM Timer B 值 (GPTMTBV) 寄存器描述进行了说明。 ■ 修正了 ADC 采样序列结果 FIFO n (ADCSSFIFOn) 寄存器的复位值。 ■ 增添了 ADC采样相位控制 (ADCSPC) 寄存器(偏移量 0x24)。 ■ 添加关于 I2C 主机定时器周期 (I2CMTPR) 的重要提示,并将位域宽度更改为 7 位。 ■ 在《控制器局域网》一章中,添加从 CAN FIFO 缓冲区中读出报文的说明,并添加关于报文时间戳 功能的说明。 ■ 在《以太网控制器》一章中: – 修正了以太网 MAC LED 编码 (MACLED) 寄存器的复位值,并调整 LED1 位的位偏移; – 添加了以太网 MAC 的包数目 (MACNP) 寄存器中 NPR 位域的使用说明。 – 修正了以太网 PHY 管理寄存器 0 – 控制 (MR0) 和以太网 PHY 管理寄存器 5 – 自协商连接方基 页能力 (MR5) 寄存器的复位值。 ■ 将会话断开 (DISCON) 位添加到 USB 通用中断状态( (USBIS) 和 USB 中断使能 (USBIE) 寄存器 中。 ■ 在《工作特性》一章进行以下更改: – 在“温度特性”表中添加贮存温度范围; – 添加“ESD最大额定参数”表。 ■ 在《电气特性》一章进行以下更改: – 在“Flash存储器特性”表中修正片擦除时间; – 添加睡眠及深度睡眠的唤醒时间(“睡眠模式AC特性”表); – 在“复位特性”表中修正供电电压(VDD)上升时间的单位; – 修改初版耗电电流规格中运行模式1以及深度睡眠模式的参数; – 在 表 26-44 在 1246页 中添加 VDD3ON 功耗的表项。 ■ 在附录中添加其它的DriverLib函数。 一月 06, 2012 45 Texas Instruments-生产数据 修订历史 表 1. 修订历史(续) 日期 2009年10月 版本号 6458 描述 ■ 发布全新的 1000、3000、5000 及 9000 系列Stellaris® 器件。 ■ IDCODE值修改为0x4BA0.0477。 ■ 说明:NVIC 中的 ICSR 寄存器的 NMISET 位也能作为 NMI 的来源。 ■ 添加关于LDO的使用说明。 ■ 为了阐明时钟系统的工作特性,重新组织时钟相关章节,将 RCC2 寄存器中的 USEFRACT 位更名为 DIV400 位;FRACT 位更名为 SYSDIV2LSB 位,添加表格并重新编写相关说明。 ■ 修正 DSLPCLKCFG 寄存器中 DSDIVORIDE 位域的描述。 ■ 因 DSFLASHCFG 寄存器(位于系统控制偏移 0x14C)工作不正常,将之移除。 ■ 因 DCGC0 寄存器的 MAXADC1SPD 及 MAXADC0SPD 位域在深度睡眠模式下无功能,将之移除。 ■ 修正了 Flash 写缓冲器 (FWBn) 寄存器的地址偏移量。 ■ 增加 Flash 控制 (FCTL) 寄存器(位于内部存储器偏移 0x0F8处),以应对非休眠模式时需要进行 频繁重启电源的控制需求。 ■ 为清晰起见,更改 EPI 通道名称:EPI0_TX 更名为 EPI0_WFIFO;EPI0_RX 更名为 EPI0_NBRFIFO。此变更同样作用于对DC7位的描述。 ■ 因 DMACHIS 寄存器(位于 DMA 模块偏移 0x504 处)工作不正常,将之移除。 ■ 修正¦ΜDMA控制器副通道的分配。 ■ 对EPI一章内容进行大幅改动。 ■ EPISDRAMCFG2 寄存器因不再使用,将之移除。 ■ 添加CAN位时序的说明,并修正示例。 ■ 添加MDI/MDX操作的伪代码。 ■ 将 MR1 寄存器的复位值修正为 0x7809。 ■ 添加以PWM作为触发ADC来源的说明。 ■ 将 USBTXFIFOADD 寄存器中 ADDR 位域由 13 位修正为 9 位。 ■ 更改SSI建立时间及保持时间的单位,按系统时钟计,而不是按ns计。 ■ 更新《电气特性》一章到最新数据。更改了ADC 及 EPI 的相关内容。 ■ 其它几处小的增补及改动。 46 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 1. 修订历史(续) 日期 2009年7月 版本号 5930 描述 ■ 在EPI一章中添加了“非阻塞式读操作流程”、“标准读操作流程”、“写操作流程”3节。 ■ 修正了 DC1、RCGC0、SCGC0 和 DCGC0 寄存器中 MAXADC0SPD 及 MAXADC1SPD 位的值。 ■ 修正了“TI同步串行接口帧格式(单次传输)”图。 ■ 添加了关于以太网PHY节电模式的说明。 ■ 在《电气特性》一章中作出多处修正: – 从“建议的直流工作条件”表中删除 VBAT 和 VREFA 参数,并添加脚注; – 删去“额定及最大电流规格”一节; – 修改EPI SDRAM特性表: • 将 tEPIR 更名为 tSDRAMR,并删除 2 mA 和 4 mA 驱动值。 • 将 tEPIF 更名为 tSDRAMF,并删除 2 mA 和 4 mA 驱动值。 – 更改“EPI SDRAM 接口特性表”中的参数 tCOV、tCOI 和 tCOT。 – 删除SDRAM读指令时序图、SDRAM写指令时序图、SDRAM写猝发时序图、SDRAM预充电时 序图以及SDRAM CAS延迟时序图,代之以SDRAM读操作时序图以及SDRAM写操作时序图。 – 修改HB8/HB16模式写操作时序图。 – 修改通用模式下读写操作时序图。 – 在“EPI通用模式接口特性图”中修改 tDV 和 tDI 参数,并删除 tOD 参数; – 对ADC特性表进行大幅改动,添加了表格及图。 ■ 在ROM DriverLib函数附录中添加缺少的ROM_I2SIntStatus函数。 ■ 修正订货器件代号。 ■ 其它几处小的增补及改动。 一月 06, 2012 47 Texas Instruments-生产数据 修订历史 表 1. 修订历史(续) 日期 2009年6月 版本号 5779 描述 ■ 在《系统控制》一章的“复位源”一节中,添加上电复位及外部复位。 ■ 在 DC3 寄存器中添加缺失的比较器输出脚相关位,并修正复位值。 ■ 在《内部存储器》一章中添加对非易失寄存器编程的解释说明。 ■ 增添了 FMPRE0/1/2/3、FMPPE0/1/2/3、USER_DBG 和 USER_REG0 寄存器的复位值描述。 ■ 在DMA一章的“各外设对请求类型的支持情况”表中,修正通用定时器所在列。 ■ 在“通用定时器”章节中,对 DMA 操作进行了说明。 ■ 添加“耗电电流(初版)”表。 ■ 在EPI特性表中修正额定值及最大值。 ■ 在“EPI 8 位/16 位主机总线模式下接口特性”表及“HB8/HB16 模式读操作时序图”中添加“自 CSn 上升沿到输出无效的时间”参数。 ■ 在ADC特性表中修正INL、DNL、OFF及GAIN的数值。 ■ 更新ROM DriverLib附录,以C0版函数。 ■ 修正订货器件代号。 ■ 其它几处小的增补及改动。 2009年5月 5285 开始记录修订历史。 48 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 关于本文档 该数据手册提供 LM3S9B92 微控制器的参考信息,描述了围绕 ARM® Cortex™-M3 内核设计的片 上系统 (SoC) 器件的功能模块。 受众 本手册的受众是系统软件开发人员、硬件设计人员和应用设计人员。 关于本手册 本文档分成若干章节,每个章节与主要功能相对应。 相关文档 相关文档可从以下网站获取: Stellaris® www.ti.com/stellaris: ■ “Stellaris® Errata” ■ “ARM® Cortex™-M3 Errata” ■ “Cortex™-M3 Instruction Set Technical User's Manual” ■ “Stellaris® Boot Loader User's Guide” ■ “Stellaris® Graphics Library User's Guide” ■ “Stellaris® Peripheral Driver Library User's Guide” ■ “Stellaris® ROM User’s Guide” ■ “Stellaris® USB Library User's Guide” 本数据手册也可参考下列相关文档: ■ “ARM® Debug Interface V5 Architecture Specification” ■ “IEEE Standard 1149.1-Test Access Port and Boundary-Scan Architecture” 这个文献列表的实时性根据发布的日期来判断。其他文献(包括应用说明和白皮书),请访问网站 获取。 一月 06, 2012 49 Texas Instruments-生产数据 关于本文档 文档约定 本文档使用的约定如 表 2 在 50页 所示。 表 2. 文档约定 表示法 通用寄存器的表示法 REGISTER 位 位域 偏移量 0xnnn 寄存器 N 保留 yy:xx 寄存器 位/域 类型 RC RO R/W R/WC R/W1C R/W1S W1C WO 寄存器位/域复位值 0 1 管脚/信号表示法 [] 管脚 信号 使一个信号有效 使一个信号无效 SIGNAL SIGNAL 含义 APB 寄存器用大写的粗体表示。例如,PBORCTL 是上电和掉电复位控制寄存器。如果一个寄 存器名称包含一个小写的 n,它就代表了多个寄存器。例如,SRCRn 代表了下面三个软件复位 控制寄存器的任何一个或全部:SRCR0、SRCR1 和 SRCR2。 寄存器的一个位。 两个或更多连续和相关联的位。 寄存器地址的一个十六进制增量,增量是相对 表 2-4 在 93页 中指定的模块基址而言的。 为了方便引用,在整篇文档中,寄存器被顺序编号。寄存器编号对软件没有意义。 标注为“保留”的寄存器位保留下来供将来使用在大多数情况下,保留位被设置成0;但是,用 户软件不应当依赖保留位的值。为了使软件兼容未来的器件,保留位的值应当在读-修改-写过程 中保留下来。 寄存器位的范围从 xx 到 yy(xx 和 yy 包括在内)。例如,31:15 表示相应寄存器的位 15 到 31。 寄存器位框图中的这个值指明了在控制器上运行的软件是否能改变位域的值。 软件可以读取这个域。位/域在被读取之后由硬件清零。 软件可以读取这个域。始终写入芯片复位值。 软件可以读或写此域。 软件可以读或写此域。向该寄存器写入任意值都会将寄存器清零。 软件可以读或写此域。向 W1C 位写入 0 不影响寄存器中的位值。写 1 清零寄存器中位的值;剩 余的位保持变。 此寄存器类型主要用来清零中断状态位,执行读操作来提供中断状态,写入读取的值只清除在读 寄存器时被报告的中断。 软件可以读或向此域写 1。向 R/W1S 位写 0 不影响寄存器中的位值。 软件可以写这个域。向 W1C 位写入 0 不影响寄存器中的位值。写 1 清零寄存器中位的值;剩余 的位保持变。读寄存器返回的数据没有意义。 此寄存器通常用来清零中断寄存器中相应的位。 只有软件的写操作才有效;读寄存器返回的数据没有意义。 寄存器位框图中的这个值是任何复位后的位/域值,但特别注明的除外。 芯片复位时位被清零。 芯片复位时位被置位。 不确定。 管脚复用功能;管脚默认用作不带方括号的信号。 参考封装上的物理连接。 参考管脚的电气信号编码。 将信号的值从逻辑假状态变为逻辑真状态对于高电平有效的信号,有效的信号值为 1(高);对 于低电平有效的信号,有效的信号值为0(低)。有效极性(高或低)由信号名称来定义(见下 面的 SIGNAL 和 SIGNAL)。 将信号的值从逻辑真状态变为逻辑假状态。 信号名称采用大写字母,使用 Courier 字体。信号名称带有上横线表示该信号低有效。使 SIGNAL 有效就将其驱动为低电平;使 SIGNAL 无效就将其驱动为高电平。 信号名称采用大写字母,使用 Courier 字体。高有效的信号没有上横线。使 SIGNAL 有效就将其 驱动为高电平;使 SIGNAL 无效就将其驱动为低电平。 50 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 2. 文档约定(续) 表示法 数值 X 0x 含义 大写的 X 表示几个值都是可取的,此处的 X 可以是任何合法的样式。例如,二进制值 0X00 可 以是 0100 或 0000,十六进制值 0xX 可以是 0x0 或 0x1,等等。 十六进制值带有前缀 0x。例如,0x00FF 是十六进制值 FF。 寄存器表中的所有其它数假设为二进制。在概念信息中,二进制数用一个 b 后缀表示,例如, 1011b,写十进制数无需前缀或后缀。 一月 06, 2012 51 Texas Instruments-生产数据 结构概述 1 结构概述 Texas Instruments 作为行业领导者,为微控制器市场带来了 32 位功能的基于 ARM® Cortex™-M3 的微控制器。对于当前 8 位和 16 位 MCU 的用户而言,配合使用 Stellaris® 和 Cortex-M3 即可获得 业界功能最强大的开发工具、软件和知识生态系统。迁移到 Stellaris后,设计者将受益于其强大的 工具、简洁的代码编写方式以及突出的性能。更重要的是,设计者完全有信心进入具有从 1 美金到 1 GHz 的兼容产品的 ARM 生态系统。针对当前 32 位 MCU 用户, Stellaris 产品系列率先在业内整 合了 Cortex-M3 和 Thumb-2 指令集。Thumb-2 技术可以使 16 位和 32 位指令并存,带来了代码密 度和性能的最佳平衡。Thumb-2 比纯 32 位代码占用少 26%,同时带来了 25% 的性能提升,可有 效降低系统成本。该 Texas Instruments Stellaris 微控制器系列是第一款基于 ARM Cortex-M3 的控 制器,为注重成本的嵌入式微控制器应用提供了高性能的 32 位运算能力。这些具备领先技术的芯片 使用户能够以传统的 8 位和 16 位器件的价位来享受 32 位的性能,而且所有型号都是以小占位面积 的封装形式提供。 LM3S9B92 微控制器具有如下特性: ■ ARM Cortex-M3 处理器内核 – 80-MHz 运行速度;100 DMIPS 性能 – ARM Cortex SysTick 定时器 – 嵌套向量中断控制器 (NVIC) ■ 片上存储器 – 256 KB 单周期 Flash 存储器,速度可达 50 MHz;50 MHz 以上采用预取缓冲技术改善性能。 – 96 KB 单周期访问的 SRAM – 装有 StellarisWare® 软件包的内部 ROM: • Stellaris 外设驱动库 • Stellaris 引导加载程序 • 高级加密标准 (AES) 密码表 • 循环冗余检验 (CRC) 错误检测功能 ■ 片外设备接口 (EPI) – 8/16/32 位外部设备专用并行总线 – 支持 SDRAM、SRAM/Flash 存储器、FPGA 和 CPLD ■ 高级串行通讯集成 – 10/100 以太网 MAC 和 PHY,支持符合 – 两个 CAN 2.0 A/B 控制器 – USB 2.0 OTG/主机/设备 – 三个支持 IrDA、9 位以及 ISO 7816 的 UART(其中一个带调制解调器流量控制和状态的 UART) – 两个 I2C 模块 52 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 – 两个同步串行接口模块 (SSI) – 内部集成的音频 (I2S) 模块 ■ 系统集成 – 直接存储器访问控制器 (DMA) – 系统控制和时钟,包括片上 16-M 高精度振荡器 – 四个 32 位定时器(最多可达 8 16 位定时器),具有实时时钟功能 – 八个捕捉比较 PWM 管脚 (CCP) – 两个看门狗定时器 • 一个定时器使用主时钟振荡器 • 一个定时器使用内部时钟振荡器 – 高达 65 个 GPIO,具体取决于外设的配置 • 高度灵活的复用管脚,可以用作 GPIO 或是一种或多种的外设功能 • 可独立配置的 2、4 或 8 mA 端口驱动能力 • 高达 4 个 GPIO 具有 18 mA 驱动能力 ■ 高级运动控制 – 8 路高级 PWM 输出,用于运动和能源应用 – 四路故障输入,可用于低延迟关机 – 两路正交编码器输入 (QEI) ■ 模拟 – 210 位模数转换器 (ADC),带有 16 个模拟输入通道;采样速率为 1M 采样/秒 – 三个模拟比较器 – 16 个数字比较器 – 片上电压稳压器 ■ JTAG 和 ARM 串行线调试 (SWD) ■ 100 脚LQFP 封装 ■ 108 焊珠 BGA 封装 ■ 工业 (-40°C 到 85°C) 温度范围 LM3S9B92 微控制器针对工业应用设计,包括远程监控、电子贩售机、测试和测量设备、网络设备 和交换机、工厂自动化、HVAC 和建筑控制、游戏设备、运动控制、医疗器械、电力及能源、运输 以及火警安防。 另外,LM3S9B92 微控制器的优势还在于能够方便的运用多种 ARM 的开发工具和片上系统(SoC) 的底层 IP 应用方案,以及广大的用户群体。另外,该微控制器使用了兼容 ARM的Thumb® 指令集 的 Thumb2 指令集来减少存储容量的需求,并以此达到降低成本的目的。最后,LM3S9B92 微控制 一月 06, 2012 53 Texas Instruments-生产数据 结构概述 1.1 1.1.1 1.1.1.1 器与各个 Stellaris 系列的所有成员是代码兼容的,这为用户提供了灵活性,能够适应各种精确的需 求。 Texas Instruments 为了能够帮助用户产品快速的上市,提供了一整套的解决方案,包括评估和开发 用的板卡、白皮书和应用笔记 、方便使用的外设驱动程序库、以及强劲的支持、销售和分销网络。 请参见 “订购和联系信息” 在 1301页了解 Stellaris 系列芯片的订购信息。 功能概述 下面的小节给出了 LM3S9B92 微控制器特性的概述。括号中的页码指出该特性将在哪一章中详细描 述。订购和支持信息可在 “订购和联系信息” 在 1301页 中找到。 ARM Cortex-M3 以下章节中会概述 ARM Cortex-M3 处理器内核以及指令集、集成的系统时钟 (SysTick) 和嵌套向量 中断控制器。 处理器内核 (见第 75 页) Stellaris 产品系列的所有成员(包括 LM3S9B92 微控制器)都是围绕 ARM Cortex-M3 处理器内核 设计的。该 ARM Cortex-M3 处理器为高性能、低成本的平台提供一个满足小存储要求解决方案、 简化管脚数、以及低功耗三方面要求的内核,与此同时,它还提供出色的计算性能和优越的系统中 断响应能力。 ■ 32 位的 ARM Cortex-M3 架构优化了小封装嵌入式应用方案。 ■ 优越的处理性能和更快的中断处理。 ■ 混合 16 位/32 位的 Thumb-2 指令集提供与 32 位 ARM 内核所期望的高性能而采用了更紧凑的 内存大小,而这通常在 8 位和 16 位设备相关的存储容量中,特别是在微控制器级应用的几千字 节存储中。 – 单周期乘法指令和硬件除法器 – 精确的位操作(bit-banding),不仅最大限度的利用了存储器空间而且还改良了对外设的控 制 – 非对齐式数据访问,使数据能够更为有效的安置到存储器中 ■ 快速代码执行允许更低的处理器时钟和增加休眠模式时间 ■ Harvard 结构 - 将数据和指令所使用的总线进行了分离 ■ 高效的处理器内核,系统和存储器 ■ 硬件触发器和快速乘法运算 ■ 对时间苛刻的应用提供可确定的, 高性能的中断处理 ■ 存储器保护单元为操作系统机能提供特权操作模式 ■ 增强的系统调试提供全方位的断点和跟踪能力 ■ 串行线调试和串行线跟踪减少调试和跟踪过程中需求的管脚数 ■ 从 ARM7 处理器系列中移植过来,以获得更好的性能和电源效率 54 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.1.2 1.1.1.3 1.1.1.4 1.1.1.5 1.1.1.6 ■ 优化的单周期 Flash 存储器使用 ■ 集成多种休眠模式,更低功耗 ■ 工作频率为 80 MHz ■ 1.25 DMIPS/MHz 存储器映射 (见第 93 页) 存储器映射列出了指令和数据在存储器中的位置。LM3S9B92 控制器的存储器映射可以在 “存储模 型” 在 93页 中找到。寄存器地址相对于存储器映射中所示的模块基址,以十六进制递增的方式给 出。 系统定时器 (SysTick) (见第 115 页) ARM Cortex-M3 含有集成的系统定时器 SysTick。SysTick 提供了一种简单的、24 位写 1 清 0 (clear-on-write)、递减的、自加载 (wrap-on-zero) 的计数器,同时具有灵活的控制机制。该计数器 可以在几种不同的场合中使用,例如: ■ 用作 RTOS 的节拍定时器,按照可编程的频率(例如,100Hz)定时触发,调用系统定时器服务 子程序 ■ 用作高速报警定时器,采用系统时钟作为时钟源 ■ 用作频率可变的报警或信号定时器——其周期取决于所采用的参考时钟源以及计数器的动态范围 ■ 用作简单计数器,测量任务的完成时刻、总体耗时等等 ■ 基于未到达/到达时间的内部时钟源控制。 嵌套向量中断控制器(NVIC) (见第 116 页) LM3S9B92 控制器包含 ARM 嵌套矢量中断控制器 (NVIC)。NVIC 和 Cortex-M3 可以在处理模式中 对所有的异常进行优先级划分并进行处理异常发生时处理器状态被自动存储到堆栈,中断服务程序 (ISR) 结束时又自动被恢复。向量的读取与状态保存并行,高效率进入中断。处理器支持尾链 (tail-chaining),这样使得执行背靠背中断不需要重叠的状态保存和恢复。软件可设置 7 个异常(系统 处理)和 53 个中断的 8 级优先级。 ■ 确定性的,快速中断处理:总是 12 周期或尾链时 6 周期 ■ 外部不可屏蔽中断信号 (NMI) 可用于安全关键应用 ■ 动态优先级中断 ■ 通过硬件实现所需的寄存器可灵活的处理特殊的中断 系统控制模块(SCB) (见第 117 页) 系统控制块(SCB)提供系统实现信息和系统控制,包括系统异常的配置,控制和报告。 存储器保护单元(MPU) (见第 117 页) MPU 支持标准的 ARM7 受保护的内存系统架构(PMSA)模型。MPU 提供保护区支持,重叠保护 区,访问权限和导出存储属性到系统。 一月 06, 2012 55 Texas Instruments-生产数据 结构概述 1.1.2 1.1.2.1 1.1.2.2 1.1.2.3 1.1.3 片上存储器 下面的章节描述片上存储器模块。 SRAM (见第 285 页) LM3S9B92 微控制器提供 96 KB 的单周期片上 SRAM。Stellaris 器件的内部 SRAM 位于器件存储 器映射中,偏移量为 0x2000.0000。 由于读-修改-写 (RMW) 操作是很耗时的,因此 ARM 引入了位带 (bit-banding) 技术(在 Cortex-M3 处理器中)。在位带启用的处理器中,存储器映射的特定区域 (SRAM 和外设空间) 能够使用地址别 名,在单个原子操作中访问各个位。 使用微直接内存访问控制器 (µDMA) 可以向片上 SRAM 传输数据,也可以从片上 SRAM 接收数据。 Flash 存储器 (见第 287 页) LM3S9B92 微控制器提供 256 KB 单周期片上 Flash 存储器(在 50 MHz 以上,如果代码是顺序执 行的,Flash 存储器可以单周期访问;遇到分支会产生 1 周期的等待)。Flash 存储器由一系列 1 KB 的块组织在一起,这些块可以被单独擦除。擦除一个块将使块中的所有位变为 1。这些区块配对后 便组成了一组可分别进行保护的 2 KB 区块。该保护允许块被标记为只读或只执行,以提供不同等 级的代码保护。只读块不能被擦除或编程,块的内容受保护不能修改。只执行块不能被擦除或编程, 只能通过控制器取指机制来读取它的内容,块的内容受保护不能被控制器或调试器读取。 ROM (见第 285 页) LM3S9B92 的 ROM 出厂时预编程,包含了下面的软件和程序: ■ Stellaris 外设驱动库 ■ Stellaris 引导加载程序 ■ 高级加密标准 (AES) 密码表 ■ 循环冗余检验 (CRC) 错误检测功能 该 Stellaris 外设驱动库是具有引导加载能力的用于控制片上外设的免版税的软件库。该库可用于外 设初始化和控制功能,可选择轮询式和中断驱动式外设支持。另外,驱动库充分利用 ARM Cortex-M3 内核的中断性能的全部优点。不需要特殊的程序或者用户汇编代码开端/收尾功能。在需要现场编程 能力的应用中,免版税的 Stellaris 引导加载程序可用于应用程序加载,支持现场固件升级。 高级加密标准 (AES) 是美国政府使用的公开定义的加密标准。AES 是一种强大的加密方法,拥有不 错的性能和大小。AES 在硬件和软件方面都很快,它非常容易使用,并且只需要很少的存储空间。 该 Texas Instruments 加密数据包开放了所有源代码,建立在宽通用许可证 (LGPL) 源代码基础之 上。LGPL 是指可在应用中使用,但不受任何 copyleft 的影响的代码(代码并不会自动变成开源代 码)。然而对于该数据包源的修改必须是开源的。 循环冗余检查 (CRC) 是一项用来确认一段数据的内容与先前检验的数据是否相同的技术。CRC 技 术可用来确认信息的正确接收 (在传送中没有丢失或改变) ,用来确认解压后的数据,用来证实 Flash 存储器的内容没有更改,以及其它数据需要被确认的情况。CRC 优于简单的校验和 (例如异或所有 的位) ,因为它更容易捕捉到变化。 片外设备接口 (见第 430 页) 片外设备接口 (EPI) 是一种用于连接片外设备或存储器的高速并行总线接口。与例如 SSI、UART 和 I2C 等通讯外设不同,片外设备接口实际上与普通微控制器的地址/数据总线非常相似。 EPI模块具有以下特性: 56 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 ■ 8 位/16 位/32 位专用并行总线,用于连接片外设备或存储器 ■ 存储器接口支持自动步进式连续访问,且不受数据总线宽度的影响,因此能够实现直接从 SDRAM、SRAM 或 Flash存储器中运行程序代码 ■ 阻塞式/非阻塞式读操作 ■ 内置写 FIFO,因而处理器无需锱铢计较时序细节 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的读通道和写通道 – 当片内非阻塞式读 FIFO(Non-Blocking Read FIFO,简写为 NBRFIFO)达到预设深度时, 自动产生读通道请求信号 – 当片内写 FIFO(WFIFO)空时,自动产生写通道请求信号 EPI 支持三种主要功能模式:同步动态随机访问存储器 (SDRAM) 模式、传统的主机总线 (Host Bus) 模式以及通用模式。EPI模块也可以将其管脚用作自定义的 GPIO,但其用法有别于标准 GPIO,而 是像通信外设的机制一样需经过 FIFO 访问端口数据,并且 I/O 速度由时钟信号决定。 ■ 同步动态随机访问存储器 (SDRAM) 模式 – 支持 16 位宽的 SDR (单数据率) SDRAM,频率最高 50 MHz – 支持低成本的 SDRAM,最大可达 64 MB(512 Mb) – 内置自动刷新功能,可访问任意体 (bank) 或任意行 – 支持休眠/待机模式,在保持内容不丢失的前提下尽量节省功耗 – 复用的地址/数据管脚,竭力控制管脚数目 ■ 主机总线模式 – 传统的 8 位/16 位微控制器总线接口 – 可兼容许多常见的微控制器总线,如 PIC、ATMega、8051 或其它单片机 – 可访问 SRAM、NOR Flash 以及其它类型的并行总线设备。非复用模式下寻址能力为 1 MB; 复用模式下寻址能力为 256MB(HB16 模式下若不使用字节选择信号,则实际可达 512 MB) – 支持复用和非复用模式的地址/数据总线 – 可用于访问各种集成了无地址 FIFO 的 8 位/16 位接口外设。支持片外 FIFO(External FIFO, 简写为 XFIFO)的 EMPTY 和 FULL 信号 – 访问速度可控,读/写数据时可添加等待态 – 支持多种片选模式,如 ALE、CSn、双 CSn、ALE+ 双 CSn 等 – 手动控制片启用信号(也可使用多余的地址管脚控制) ■ 通用模式 一月 06, 2012 57 Texas Instruments-生产数据 结构概述 1.1.4 1.1.4.1 – 可用于同 CPLD 或 FPGA 进行快速数据交换 – 数据宽度可达 32 位 – 数据传输率可达150MB/s – 可选配置:4~20位“地址” – 可选配置:时钟输出信号、读/写选通信号、帧信号(基于计数的长度)、时钟启用输入信号 ■ 并行 GPIO – 1 到 32 位,必须经由 FIFO 输入输出,速度可控 – 适用于自定义的外设器件、数字化数据采集装置、执行机构控制等应用场合 串行通讯外设 LM3S9B92 控制器支持同步和异步串行通讯: ■ 10/100 以太网 MAC 和 PHY,支持符合 ■ 两个 CAN 2.0 A/B 控制器 ■ USB 2.0 OTG/主机/设备 ■ 三个支持 IrDA、9 位以及 ISO 7816 的 UART(其中一个带调制解调器流量控制和状态的 UART) ■ 两个 I2C 模块 ■ 两个同步串行接口模块 (SSI) ■ 内部集成的音频 (I2S) 模块 下面的章节各个通讯功能的提供更多细节。 以太网控制器 (见第 855 页) 以太网是局域网内基于帧的计算机网络技术。以太网已经标准化为 IEEE 802.3 标准它遵循 IEEE 802.3 规范,此规范定义了物理层的线和信号标准,媒体访问控制 (MAC) 数据链路层的两种网络访 问方式,以及公共寻址格式。 该 Stellaris 以太网控制器由一个完全集成的媒体访问控制器 (MAC) 和网络物理 (PHY) 接口器件组 成,具有以下特性: ■ 遵循 IEEE 802.3-2002 规范 – 遵循 10 BASE-T/100BASE-TX IEEE-802.3。只需要一个双路 1:1 隔离变压器就能与线路相 连 – 10BASE-T/100BASE-TX ENDEC,100BASE-TX 扰码器/解扰器 – 全功能的自协商 ■ 多种工作模式 – 全双工和半双工 100 Mbps 58 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.4.2 – 全双工和半双工 10 Mbps – 节电和掉电模式 ■ 高度可配置 – 可编程 MAC 地址 – LED 活动选择 – 支持混杂模式 – CRC 错误拒绝控制 – 用户可配置中断 ■ 物理媒体操作 – 自动 MDI/MDI-X 交叉校验 – 寄存器可编程的发送幅度 – 自动极性校正和 10 BASE-T 型号接收 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的发送通道和接收通道 – 当接收到包时接收通道请求 – 当发送 FIFO 为空时发送通道请求 控制器局域网 (见第 807 页) 控制器局域网 (CAN) 是一种用于连接电子控制设备(Electronic Control Unit,简写为ECU)的多播 共享型串行总线标准。CAN 总线针对抗电磁干扰进行了专门设计,适用于具有较强电磁干扰的环 境,不但可以使用与 RS-485 类似的差分平衡传输线,也可以使用更加可靠的双绞线。CAN 总线最 初是针对汽车应用而研发的,不过时至今日已经广泛应用于各种嵌入式控制领域(例如工业方面和 医疗方面)。CAN 总线在总线长度小于 40 米时最高可达 1 Mbps 位速率。位速率越低则有效通讯 距离越远(例如125 kbps 时通讯距离可达 500 米)。 发送器向所有 CAN 结点发送一条报文(广播)。每个节点根据接收到的标识符来判断是否处理该报 文。标识符还决定了总线访问竞争中报文享有的优先级。每个CAN 报文都能够传输0到8个字节的用 户信息。 LM3S9B92 微控制器包括 2 个 CAN 单元,有如下特性: ■ 支持 CAN 总线协议 2.0 A/B ■ 位速率最高可达 1 Mbps ■ 32 个报文对象,每个报文对象都具有独立的标识符掩码 ■ 可屏蔽中断 ■ 支持禁用自动重新发送(Disable Automatic Retransmission,简写为 DAR)模式,因此可用于 时间触发 CAN(Time Triggered CAN,简写为 TTCAN)应用 一月 06, 2012 59 Texas Instruments-生产数据 结构概述 1.1.4.3 1.1.4.4 ■ 自测试操作具有可编程的回送模式 ■ 可编程的 FIFO 模式,能存储多个报文对象 ■ 提供 CANnTX、CANnRX 管脚,可无缝连接片外 CAN 收发器。 USB (见第 907 页) 通用串行总线 (USB) 是一种串行总线标准,可以在不重启系统的情况下,通过标准接口连接和断开 外设。 LM3S9B92 微处理器在 USB 2.0 全速和低速模式时支持三种配置:USB 设备、USB 主机和 USB OTG(当连接到其它已启用 USB 的系统上时,协商决定用作主机还是设备)。 USB 模块特性: ■ 符合 USB-IF 认证标准 ■ 支持 USB 2.0 全速模式 (12 Mbps) 和低速模式 (1.5 Mbps) ■ 四种传输类型:控制传输、中断传输、批次传输和等时传输 ■ 32 端点 – 一个专用的输入控制端点和一个专用输出控制端点 – 15 个可配置的输入端点和 15 个可配置的输出端点 ■ 4 KB 专用端点内存空间:一个端点可定义为双缓存 1023 字节的等时传输 ■ 支持 VBUS 电压浮动 (droop) 和有效 ID 检测,并产生中断信号 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 用于发送和接收的独立通道多达 3 个输入端点和 3 个输出端点 – 当发送 FIFO 中包含所需数量的数据后,可产生通道请求 UART (见第 640 页) 通用异步收发器 (UART) 用于 RS-232C 串行通讯的集成电路。包含可异步工作的发送器(并转串) 和接收器(串转并) 。 LM3S9B92 微控制器包含三个完全可编程的 16C550 型 UART.虽然其功能与 16C550 UART相似, 但并不是寄存器兼容的。UART 能够根据 RX、TX、调制解调器流量控制、调制解调器状态和错误 条件产生独立可屏蔽的中断。如果任何中断发生并且未被屏蔽,那么模块将生成一个组合的中断。 这三个 UART 如下特性: ■ 可编程的波特率发生器,在常规模式(16 分频)下最高可达 5 Mbps,在高速模式(8分频)下 最高可达 10 Mbps ■ 相互独立的 16×8 发送 (TX) FIFO和接收 (RX) FIFO,可降低中断服务对 CPU 的占用 ■ FIFO 长度可编程,包括提供传统双缓冲接口的 1 字节深的操作 ■ FIFO 触发水平可设为1/8, 1/4, 1/2, 3/4 和 7/8 60 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.4.5 ■ 标准的异步通信位:起始位、停止位和奇偶校验位 ■ 行中止的产生和检测 ■ 完全可编程的串行接口特性 – 5、6、7 或 8 个数据位 – 偶校验、奇校验、粘着或无奇偶校验位的产生/检测 – 产生 1 或 2 个停止位 ■ IrDA串行红外(SIR)编解码器 – 可选择采用 IrDA 串行红外 (SIR) 输入输出或普通 UART 输入输出 – 支持 IrDA SAR 编解码功能,半双工时数据传输率最高 115.2 Kbps – 支持标准的 3/16 位时间以及低功耗位时间(1.41~2.23 μs) – 可编程的内部时钟发生器,允许对参考时钟进行 1 到 256 分频以得到低功耗模式的位持续时 间。 ■ 支持与 ISO 7816 智能卡的通讯 ■ 完善支持调制解调器握手信号(在 UART1 模块上) ■ 支持 LIN 协议 ■ 提供标准的基于 FIFO 深度的中断以及发送结束中断 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的发送通道和接收通道 – 当接收 FIFO 中有数据时产生单次请求;当接收 FIFO 到达预设的触发深度时产生猝发请求 – 当发送 FIFO 中有空闲单元时产生单次请求;当发送 FIFO 到达预设的触发深度时产生猝发请 求 I2C (见第 738 页) 内部集成电路 (I2C) 总线通过一个两线设计(串行数据线 SDA 和串行时钟线 SCL)来提供双向数据 传输。I2C 总线可与诸如串行存储器(RAM 和 ROM)、网络设备、LCD、音频发生器等外部 I2C 器件相连。I2C 总线也可在产品的开发和生产过程中用于系统的测试和诊断。 I2C 总线上的设备可被指定为主机或从机。每个 I2C 支持作为主机或从机来发送和接收数据,也支持 既用作主机又用作从机的同步操作。I2C 主机和从机都能够产生中断。 LM3S9B92 微控制器包含两个具有以下特性的 I2C 模块: ■ I2C 总线上的设备可被指定为主机或从机 – 在主机或从机模式下都支持发送和接受数据 – 支持它们作为主机和从机的同步操作 一月 06, 2012 61 Texas Instruments-生产数据 结构概述 1.1.4.6 ■ 四种 I2C 模式: – 主机传送 – 主机接收 – 从机传送 – 从机接收 ■ 两种传输速度:标准 (100 Kbps) 和快速 (400 Kbps) ■ 主机和从机产生中断 – 主机因为传送或接收数据结束(或者是因为错误而取消)产生中断 – 从机在主机向其发送数据或发出请求时,或检测到 START 或 STOP 信号时产生中断 ■ 主机带有仲裁和时钟同步功能,支持多主机以及 7 位寻址模式 SSI (见第 698 页) 同步串行接口 (SSI) 是一个将数据并转串的 4 线双向的通信接口。此 SSI 模块对从外围器件接收到 的数据执行串并转换,对发送到外围设备的数据执行并串转换。这个 SSI 模块可以配置用作主设备 或从设备。作为从机设备的时候,还可以通过配置将 SSI 模块的输出禁能,从而使一个主设备可以 与多个从设备相连。TX 和 RX 的通路都有内部 FIFO 负责缓冲。 此 SSI 模块还包含一个可编程的位速率时钟分频器和预分频器,SSI 模块输入的时钟信号将通过它 们来生成 SSI 输出的串行时钟信号。位速率根据输入时钟产生,最大位速率取决于连接的外设。 LM3S9B92 微控制器包含两个具有以下特性的 SSI 模块: ■ 提供可编程控制的接口,可与 Freescale 的 SPI 接口、MICROWIRE 或者 Texas Instruments 同 步串行接口相连 ■ 主机或者从机方式 ■ 可编程的时钟位速率以及预分频器 ■ 相互独立的发送 FIFO 和接收 FIFO,二者均为 16 位宽、8 个单元深 ■ 可编程决定数据帧大小,范围为 4 到 16 位 ■ 内部回送测试 (loopback test) 模式,可进行诊断/调试测试 ■ 标准 FIFO 中断以及发送结束中断 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的发送通道和接收通道 – 当接收 FIFO 中有数据时产生单次请求;当接收 FIFO 中包含 4 个数据单元时产生猝发请求 – 当发送 FIFO 中有空闲单元时产生单次请求;当发送 FIFO 中包含 4 个空闲单元时产生猝发请 求 62 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.4.7 1.1.5 内部集成的电路音频 (I2S) 接口 (见第 774 页) I2S 接口是一种可配置的串行数字音频内核,由发送部分和接收部分组成。I2S 模块支持 3 种常见的 串行数字音频格式:I2S、左对齐(Left-Justified)、右对齐(Right-Justified)。数据为以下四种模 式之一:立体声、单通道、16 位压缩立体声以及 8 位压缩立体声。 发送模块和接收模块各自具有 8 个单元深的 FIFO,用于保存音频采样值。每个音频采样值可能是立 体声的左通道采样值或右通道采样值,也可能是单通道采样值,还可能是左右通道数据拼装在一起 的压缩立体声采样值。在 16 位压缩立体声模式中,每个 FIFO 单元中包含 16 位的左通道采样值以 及 16 位的右通道采样值,因此能够提高传输效率、减小存储空间占用。而在 8 位压缩立体声模式 中,每个 FIFO 单元中包含 8 位的左通道采样值和 8 位的右通道采样值,可进一步减少存储空间占 用。 发送模块和接收模块分别能够作为串行通讯的主机或从机工作。 该 StellarisI2S 接口具有如下特性: ■ 可配置的数字音频格式:支持 I2S 格式、左对齐格式、右对齐格式 ■ 可配置的采样值宽度:8~32位 ■ 支持单通道或立体声 ■ 提供 8/16/32 位的 FIFO 接口,支持左右通道数据拼装存储 ■ 收/发模块各自具有 8 个单元深的 FIFO ■ 可基于 FIFO 深度产生中断及 μDMA 请求,触发深度可配置 ■ 相互独立的发送和接收的 MCLK 方向控制 ■ 发送及接收模块均可采用片内 MCLK 时钟源 ■ 发送和接收模块各自可配置其串行时钟和字选择信号 ■ MCLK 和 SCLK 可分别设置为主机模式或从机模式 ■ 当发送 FIFO 空时,可配置为始终发送 0 或最后一个采样值 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的发送通道和接收通道 – 猝发请求 – 当发送 FIFO 中包含所需数量的数据后,可产生通道请求 系统集成 LM3S9B92 控制器将各种标准系统功能集成到芯片中,包括: ■ 直接存储器访问控制器 (DMA) ■ 系统控制和时钟,包括片上 16-M 高精度振荡器 ■ 四个 32 位定时器(最多可达 8 16 位定时器),具有实时时钟功能 ■ 八个捕捉比较 PWM 管脚 (CCP) 一月 06, 2012 63 Texas Instruments-生产数据 结构概述 1.1.5.1 ■ 两个看门狗定时器 – 一个定时器使用主时钟振荡器 – 一个定时器使用内部时钟振荡器 ■ 高达 65 个 GPIO,具体取决于外设的配置 – 高度灵活的复用管脚,可以用作 GPIO 或是一种或多种的外设功能 – 可独立配置的 2、4 或 8 mA 端口驱动能力 – 高达 4 个 GPIO 具有 18 mA 驱动能力 下面的章节提供这些功能的更多信息。 直接内存访问 (见第 319 页) LM3S9B92 微控制器内置一个直接存储器访问(Direct Memory Access,简写为DMA)控制器,我 们称之为微型 DMA (μDMA) 控制器。µDMA 控制器所提供的工作方式能够分载Cortex-M3 处理器参 与的数据传输任务,从而更加高效地使用内核以及总线带宽。µDMA 控制器能够自动执行存储器与 外设之间的数据传输。片上每个支持 µDMA 功能的外设都有专用的 µDMA 通道,通过合理的编程 配置,当外设需要时能够自动在外设和存储器之间传输数据。μDMA 控制器具有以下特性: ■ ARM PrimeCell® 32 通道的可配置 µDMA 控制器 ■ 支持存储器到存储器、存储器到外设、外设到存储器的 μDMA 传输,包括: – 基本模式,用于简单的传输需求 – 乒乓模式,用于实现持续数据流 – 散聚模式,借助一个可编程的任务列表,由单个请求触发一连串的指定传输 ■ 高度灵活的可配置的通道配置 – 各通道均可独立配置、独立操作 – 每个支持 μDMA 功能的片上模块都有其专用通道 – 每个通道有主选功能及备选功能 – 对于双向模块,为其接收和发送各提供一个通道 – 专用的软件通道,可由软件启动 μDMA 传输 – 每通道都可分别配置优先级 – 可选配置:任一通道均可用作软件启动传输 ■ 优先级分为两级 ■ 通过优化设计,改进了 μDMA 控制器与处理器内核之间的总线访问性能: – 当内核不访问总线时,μDMA 控制器即可占用总线 – RAM条带处理 – 外设总线分段 ■ 支持 8 位、16 位或 32 位数据宽度 64 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.5.2 1.1.5.3 ■ 待传输数目可编程为 2 的整数幂,有效范围 1 到 1024 ■ 源地址及目的地址可自动递增,递增单位可以是字节、半字、字、不递增 ■ 可屏蔽的外设请求 系统控制及时钟 (见第 188 页) 系统控制决定了器件的所有操作它不但提供了有关器件的信息,控制节能特性、对器件和单个外设 的时钟进行控制,还处理复位的检测和报告。 ■ 设备识别信息:版本、型号、SRAM 大小、Flash 存储器大小等 ■ 功率控制 – 片上低压差线性稳压器 (LDO) – 微控制器的低功耗选项:带有时钟门控的休眠和深度休眠模式 – 片上模块的低功耗选择:软件控制各独立外设和存储器的掉电 – 3.3-V 电源掉电检测,可通过中断或复位来报告 ■ 在微控制器中有多个时钟源可以使用 – 精确内部振荡器 (PIOSC):片上时钟源提供一个室温 16 MHz ±1% 的时钟。 • 整个温度范围16 MHz ±3% • 可使用 7 位的调整分辨率进行校准 • 低功耗模式可软件控制掉电 – 主振荡器 (MOSC):主振荡器可通过两种方式提供一个频率精确的时钟源:外部单端时钟源 连接到 OSC0 输入管脚,或者外部晶振串接在 OSC0 输入管脚和 OSC1 输出管脚间。 • 可配合/不配合片上 PLL 使用的外部振荡器:支持从 1 MHz 到 16.384 MHz 的频率 • 外部晶振:支持从直流到最大芯片速度的频率 – 内部 30 KHz 晶振:提供一个 30 kHz ± 50% 的工作频率。它是为在深度休眠省电模式期间使 用的 ■ 灵活的复位源 – 上电复位 (POR) – 复位管脚有效 – 欠压 (BOR) 警告系统电源掉电 – 软件复位 – 看门狗定时器复位 – 主振荡器 (MOSC) 故障 可编程定时器 (见第 498 页) 可编程定时器可对驱动定时器输入管脚的外部事件进行计数或定时。每个 GPTM 模块包含两个 16 位的定时器/计数器(称作 TimerA 和 TimerB),用户可以将它们配置成独立运行的定时器或事件计 一月 06, 2012 65 Texas Instruments-生产数据 结构概述 1.1.5.4 1.1.5.5 数器或将它们配置成一个 32 位定时器或一个 32 位实时时钟 (RTC)。定时器也可以用来触发模数转 换 (ADC)。 通用定时器模块 (GPTM) 包含四个 GPTM 时钟,有以下功能选项: ■ 运行模式: – 16 位或 32 位可编程的单次定时器 – 16 位或 32 位可编程的周期定时器 – 具有 8 位预分频的 16 位通用定时器 – 当有 32.768 KHz 的外部时钟源时可作为 32 位的实时时钟 – 16 位输入沿计数或定时捕获模式, – 带 位 PWM 模式以及软件编程实现的 PWM 信号反相输出 ■ 可以向上或向下计数 ■ 八个捕捉比较 PWM 管脚 (CCP) ■ 菊花链式的定时器模块允许一个定时器开始计时多路时钟事件 ■ ADC 事件触发器 ■ 当调试时,CPU 出现暂停标识时,用户可以停止定时器事件(包括 RTC 模式) ■ 可以确定从产生中断到进入中断服务程序所经过的时间 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 每个定时器具有专用通道 – 定时器中断响应突发请求 CCP 管脚 (见第 505 页) 捕获/比较/PWM 管脚 (CCP) 可以被通用定时器模块使用,通过将 CCP 管脚作为输入,可定时/计数 外部事件。此外,GPTM 模块可以在 CCP 管脚上产生一个简单的 PWM 输出。 LM3S9B92 微控制器包括八个捕捉比较 PWM 管脚 (CCP),通过编程,这些管脚可运行于以下模 式: ■ 捕捉:通用定时器根据 CCP 输入的编程事件递增/递减。当编程事件发生时,它捕获和存储当前 定时器的值。 ■ 比较:通用定时器根据 CCP 输入的编程事件递增/递减。它将当前定时器的值和存储的值相比 较,当匹配时,产生中断信号。 ■ PWM:通用定时器根据系统时钟递增/递减。PWM信号的产生基于计数值和存储值的匹配,并输 出到 CCP 脚。 看门狗定时器 (见第 542 页) 当系统由于软件错误或是由于因外部设备故障而无法按预期的方式响应的时候,使用看门狗定时器 可以重新获得控制权。该 Stellaris 看门狗定时器在到达超时值时,可能会产生不可屏蔽的中断或复 66 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.5.6 位此外,看门狗定时器兼容 ARM FIRM,其可被配置成在第一次超时时产生到微控制器的中断,并 在第二次超时时产生复位信号。一旦看门狗定时器被配置,锁定寄存器可以写入,防止定时器的配 置被意外更改。 LM3S9B92 微控制器含有两个看门狗定时器模块:看门狗定时器 0 使用系统时钟计时;看门狗定时 器 1 由 PIOSC 定时器时钟驱动。该 Stellaris 看门狗定时器模块有如下特性: ■ 32 位递减计数器,带可编程的加载寄存器 ■ 带启用功能的独立看门狗时钟 ■ 带中断屏蔽功能和 ■ 软件跑飞时可锁定寄存器以提供保护 ■ 带启用/禁能的复位产生逻辑 ■ 调试期间,微控制器的 CPU 暂停时,用户可启用的停滞 可编程的 GPIO (见第 377 页) 通用输入/输出 (GPIO) 管脚为各种连接方式带来了灵活性。该 Stellaris GPIO 模块包含 9 个物理 GPIO 块,每个对应一个独立的 GPIO 端口。GPIO 模块遵循 FiRM 规范(遵循 ARM 实时微控制器 底层 IP 规范)并支持高达 0-65 个可编程的输入/输出管脚。可用的 GPIO 数目取决于正在使用的外 设(有关每个 GPIO 管脚可用的信号见 “信号表” 在 1146页) ■ 高达 65 个 GPIO,具体取决于外设的配置 ■ 高度灵活的复用管脚,可以用作 GPIO 或是一种或多种的外设功能 ■ 配置为输入模式可承受 5 V 电压 ■ 每两个时钟周期的快速切换能力 ■ 两种方式访问 GPIO 端口:或者通过具有更好连续访问性能的高级高性能总线 (AHB);或者通过 传统的高级外设总线 (APB),使用现有的代码来实现向后兼容能力。 ■ 可编程控制 GPIO 中断 – 屏蔽中断发生 – 边沿触发(上升沿和/或下降沿) – (高或低)电平触发 ■ 在读和写操作中通过地址线进行位屏蔽 ■ 可用于启动一个 ADC 采样序列或 ■ 配置为数字输入的管脚均为施密特触发 ■ 可编程控制 GPIO 管脚配置 – 弱上拉或下拉电阻 – 数字通信时可配置为 2 mA、4 mA 或 8 mA 驱动电流;对于需要大电流的应用,最多四个管 脚承载 18 mA 一月 06, 2012 67 Texas Instruments-生产数据 结构概述 1.1.6 1.1.6.1 – 8 mA 驱动的斜率控制 – 开漏启用 – 数字输入启用 高级运动控制 LM3S9B92 微控制器将运动控制功能集成到芯片中,包括: ■ 8 路高级 PWM 输出,用于运动和能源应用 ■ 四路故障输入,可用于低延迟关机 ■ 两路正交编码器输入 (QEI) 下面章节提供运动控制功能的更多详细信息。 PWM (见第 1052 页) 脉宽调制 (PWM) 是一项功能强大的技术,它是一种对模拟信号电平进行数字化编码的方法。在脉宽 调制中使用高分辨率计数器来产生方波,并且可以通过调整方波的占空比来对模拟信号电平进行编 码。PWM 通常使用在开关电源和运动控制中。 LM3S9B92 PWM 模块包含 4 PWM 发生器模块和 一个控制模块每个 PWM 发生器模块包括 1 个定时器(16 位递减或递增/递减计数器)、2 个比较 器、1 个 PWM 信号发生器、1 个死区发生器和中断/ADC触发选择器。每个 PWM 发生器模块产生 两个 PWM 信号,这两个信号基于同一个定时器和频率和也可以是编程产生独立的信号,如插入了 死区延时互补信号。 每个 PWM 发生模块具有以下特性: ■ 4 个故障条件处理输入,能快速实现低延迟关闭,避免马达在被可控之前产生破坏。 ■ 1 个 16 位的计数器 – 运行在递减或递增/递减模式 – 输出频率由一个 16 位的加载值控制 – 可同步更新加载值 – 当计数器的值到达零或者加载值的时候生成输出信号 ■ 2 个 PWM 比较器 – 比较器值的更新可以同步 – 在匹配的时候产生输出信号 ■ PWM 信号发生器 – 根据计数器和 PWM 比较器的输出信号来产生 PWM 输出信号 – 可产生两个独立的 PWM 信号 ■ 死区发生器 – 产生 2 个带有可编程死区延时的 PWM 信号,适合驱动半 H 桥(half-H bridge) 68 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.6.2 1.1.7 – 可以被旁路,不修改输入的 PWM 信号 ■ 可启动一个 ADC 采样序列 控制模块决定了 PWM 信号的极性,以及将哪个信号传递到管脚。PWM 发生器模块的输出在传递 到器件管脚之前由输出控制模块管理PWM 控制模块具有以下特性: ■ 每个 PWM 信号都具有 PWM 输出启用 ■ 每个 PWM 信号都可以选择将输出反相(极性控制) ■ 每个 PWM 信号都可以选择进行故障处理 ■ PWM 发生器模块的定时器同步 ■ PWM 发生器模块的定时器/比较器更新同步 ■ PWM 发生模块之间的 PWM 输出启用同步 ■ PWM 发生器模块中断状态被汇总 ■ 多路故障信号,可编程极性和过滤的扩展故障处理 ■ PWM 发生器可独立操作或者与其它发生器同步操作 QEI (见第 1124 页) 正交编码器(又名双通道增量式编码器),用于将线性位移转换成脉冲信号。通过监控脉冲的数目 和两个信号的相对相位,用户可以跟踪旋转的位置、方向和速度。此外还有第三个通道,称为索引 信号,可用来对位置计数器进行复位,以确定绝对位置。该 Stellaris 带有索引脉冲的正交编码器 (QEI) 模块对由正交编码器转轮所产生的编码进行解码,从而计算位置对时间的积分,并确定旋转的 方向。另外,该接口还能捕获编码器转轮的运行速率。QEI 输入的频率高达 1/4 处理器频率(例如, 80 MHz 系统可达 20 MHz)。 该 LM3S9B92 微控制器包含两个 QEI 模块,可同时控制两个运动,并具有以下特性: ■ 使用位置积分器来跟踪编码器的位置 ■ 输入可编程噪音过滤 ■ 使用内置定时器来捕获速度 ■ QEI 输入的频率高达 1/4 处理器频率(例如,50 MHz 系统可达 12.5 MHz)。 ■ 以下情况下产生中断: – 检测到索引脉冲 – 速度定时器发生计满返回事件 – 旋转方向发生改变 – 检测到正交错误 模拟 LM3S9B92 将模拟功能集成到芯片中,包括: 一月 06, 2012 69 Texas Instruments-生产数据 结构概述 1.1.7.1 ■ 210 位模数转换器 (ADC),带有 16 个模拟输入通道;采样速率为 1M 采样/秒 ■ 三个模拟比较器 ■ 16 个数字比较器 ■ 片上电压稳压器 下面的章节提供模拟功能的更多信息。 ADC (见第 567 页) 模数转换器 (ADC) 外设用于将连续的模拟电压转换成离散的数字量。该Stellaris ADC 模块具有 10 位转换精度并支持 16个输入通道;同时还内置温度传感器。4 个带缓冲的采样序列无需使用控制 器,就可以对最多 16 个模拟输入源进行快速采样。每个采样序列发生器都可灵活配置其输入源、触 发事件、中断的产生、序列发生器的优先级等内容。每个 ADC 块内置数字比较器功能,采样转换结 果可移交给数字比较器模块,该数字比较器模块内置 8 路数字比较器。 LM3S9B92 微控制器内置 2个 ADC 模块,具有以下特性: ■ 16 个共用模拟输入通道 ■ 单端和差分输入配置 ■ 片上内置温度传感器 ■ 1M 次/秒的采样率 ■ 可选的移相器,采样点以采样周期计可延后 22.5° 到 337.5° ■ 4 个可编程的采样转换序列发生器,序列长度 1 到 8 个单元不等,且各自带有相应长度的转换结 果 FIFO ■ 灵活的触发控制 – 控制器(软件) – 定时器 – 模拟比较器 – PWM – GPIO ■ 硬件可对多达 64 个采样值进行平均计算 ■ 数字比较器模块提供 8 路数字比较器 ■ 转换器可使用片内 3 V 参考电压,或使用片外参考电压 ■ 模拟部分的电源/地与数字部分的电源/地相互独立 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 每个采样序列发生器各自有专用的通道 70 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 1.1.7.2 1.1.8 1.1.9 – ADC 模块的 DMA 操作均采用猝发请求 模拟比较器 (见第 1039 页) 模拟比较器是一个外设,它能比较两个模拟电压的大小,并通过自身提供的逻辑输出端将比较结果 以信号的形式输出。该 LM3S9B92 微控制器提供三个独立集成的模拟比较器,这些模拟比较器可配 置为驱动输出或产生中断或 ADC 事件。 比较器可以向器件管脚提供输出,以替换板上的模拟比较器。比较器也可以通过中断或触发 ADC 通 知应用让它开始捕获采样序列。中断产生逻辑和 ADC 触发是各自独立的。这就意味着,中断可以在 上升沿产生,而 ADC 在下降沿触发。 该 LM3S9B92 微控制器提供三个独立集成的模拟比较器,具有如下功能: ■ 可以比较外部输入管脚和外部输入管脚或内部可编程的参考电压 ■ 比较器可将测试电压与下面的其中一种电压相比较 – 单个外部独立的参考电压 – 共用的外部参考电压 – 公用的内部参考电压 JTAG 和 ARM 串行线调试 (见第 177 页) 联合测试行动组 (JTAG) 是一个 IEEE 标准,它定义了数字集成电路的测试访问端口和边界扫描结 构,并且提供了一个标准化的串行接口来控制关联的测试逻辑。TAP,指令寄存器 (IR) 和数据寄存 器 (DR) 可用来测试组合印制线路板的互连并获取组件的制造信息。JTAG 端口还提供了方法来访问 和控制可测性设计的特性,如 I/O 管脚的观察和控制,扫描测试以及调试。Texas Instruments 实现 了通过 ARM 串行线 JTAG 调试端口 (SWJ-DP) 接口取代 ARM SW-DP 和 JTAG-DP 的功能。SWJ-DP 接口将 SWD 和 JTAG 调试端口集成到一个模块中,提供所有的正常 JTAG 调试和测试功能,可实 时访问系统存储器而不停止内核,且不需要任何目标寄居代码。SWJ-DP 接口具有如下特性: ■ IEEE 1149.1-1990 兼容的测试访问端口 (TAP) 控制器 ■ 4 位指令寄存器 (IR) 链,用于存储 JTAG 指令 ■ IEEE 标准指令:BYPASS、IDCODE、SAMPLE/PRELOAD、EXTEST 和 INTEST ■ ARM 附加指令:APACC、DPACC 和 ABORT ■ 集成的 ARM 串行线调试 (SWD) – 串行线 JTAG 调试端口 (SWJ-DP) – Flash 修补和断点 (FPB) 单元,用于实现断点操作 – 数据观察点和触发 (DWT) 单元,用于执行观察点、触发源和系统性能分析 – 仪表跟踪宏单元 (ITM),用于支持 printf 型调试 – 跟踪端口接口单元 (TPIU) 用作跟踪端口分析仪的桥接 封装和温度 ■ 工业温度范围 100 管脚符合 RoHS 标准的 LQFP 封装 一月 06, 2012 71 Texas Instruments-生产数据 结构概述 ■ 工业温度范围 108 焊珠符合 RoHS 标准的 BGA 封装 1.2 目标应用 该 Stellaris 系列定位于成本敏感而又需要大量控制和连接能力的应用,例如: ■ 远程监控 ■ 电子销售点 (POS) 机器 ■ 测试和测量仪器 ■ 网络应用 ■ 工厂自动化 ■ HVAC 和楼宇控制 ■ 游戏设备 ■ 运动控制 ■ 医疗器械 ■ 火警和安防用具 ■ 电力和能源 ■ 运输业 1.3 高级结构图 图 1-1 在 73页 描述了Stellaris LM3S9B92 微控制器。请注意有两条片内总线连接内核和外设。高 级外设总线 (APB) 是旧系统的总线,高级高性能总线 (AHB) 提供比 APB 总线更好的背靠背的访问 性能。 72 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 1-1. Stellaris LM3S9B92 微控制器高级框图 LM3S9B92 JTAG/SWD 系统 控制 和 时钟 (带精确振荡器) ARM® Cortex™-M3 (80MHz) ROM NVIC MPU DCode 总线 Flash (256KB) ICode 总线 系统总线 启用加载程序 DriverLib AES & CRC 以太网启用加载程序 总线矩阵 SRAM (96KB) DMA GPIO (65) USB OTG (FS PHY) SSI (2) CAN 控制器 (2) 模拟 比较器 (3) PWM (8) 高级高性能总线 (AHB) 高级外设总线 (APB) 系统外设 看门狗定时器 定时器 (2) 通 用 定时器 (4) 外 设 接口 UART (3) 串行外设 I2C (2) 以太网 MAC/PHY I2S 模拟外设 10- 位 ADC 通道 (16) 电机控制外设 QEI (2) 一月 06, 2012 73 Texas Instruments-生产数据 结构概述 1.4 硬件细节 有关管脚和封装的详细信息可在下一节中找到: ■ “管脚图” 在 1144页 ■ “信号表” 在 1146页 ■ “工作特性” 在 1223页 ■ “电气特性” 在 1224页 ■ “封装信息” 在 1303页 74 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2 Cortex-M3 处理器 ARM® Cortex™-M3 处理器提供了一个高性能、低成本的平台,可满足系统对降低存储需求、简化 管脚数以及降低功耗三方面的要求,与此同时,它还提供出色的计算性能和优越的系统中断响应能 力。特性包括: ■ 32 位的 ARM® Cortex™-M3 架构优化了小封装嵌入式应用方案。 ■ 优越的处理性能和更快的中断处理。 ■ 混合 16 位/32 位的 Thumb-2 指令集提供与 32 位 ARM 内核所期望的高性能而采用了更紧凑的 内存大小,而这通常在 8 位和 16 位设备相关的存储容量中,特别是在微控制器级应用的几千字 节存储中。 – 单周期乘法指令和硬件除法器 – 精确的位操作(bit-banding),不仅最大限度的利用了存储器空间而且还改良了对外设的控 制 – 非对齐式数据访问,使数据能够更为有效的安置到存储器中 ■ 快速代码执行允许更低的处理器时钟和增加休眠模式时间 ■ Harvard 结构 - 将数据和指令所使用的总线进行了分离 ■ 高效的处理器内核,系统和存储器 ■ 硬件触发器和快速乘法运算 ■ 对时间苛刻的应用提供可确定的, 高性能的中断处理 ■ 存储器保护单元为操作系统机能提供特权操作模式 ■ 增强的系统调试提供全方位的断点和跟踪能力 ■ 串行线调试和串行线跟踪减少调试和跟踪过程中需求的管脚数 ■ 从 ARM7 处理器系列中移植过来,以获得更好的性能和电源效率 ■ 优化的单周期 Flash 存储器使用 ■ 集成多种休眠模式,更低功耗 ■ 工作频率为 80 MHz ■ 1.25 DMIPS/MHz 该 Stellaris®系列微控制器基于 Cortex-M3 内核,为注重成本的嵌入式微控制器应用,如工厂自动化 与控制、工业控制电源设备、楼宇自动化和步进电机提供了高性能的 32 位运算能力。 本章描述 Stellaris Cortex-M3 处理器的执行信息,包括编程模模块、存储器模块、异常模块、故障 处理和电源管理。 关于指令集的技术细节,请参考 “Cortex™-M3 Instruction Set Technical User's Manual”。 一月 06, 2012 75 Texas Instruments-生产数据 Cortex-M3 处理器 2.1 结构图 Cortex-M3 处理器基于高性能的处理器内核,采用三级流水线的哈佛架构,是满足嵌入式应用的理 想的处理器。该处理器带有高效的指令集和特别优化的设计,具有优异的能耗效率,并提供单周期 32x32 乘法器和专用的硬件除法器等高端处理硬件。 为促进成本敏感型设备的设计,Cortex-M3 处理器实现了紧耦合的系统部件以降低处理尺寸,同时 提高了中断处理能力和系统调试能力。Cortex-M3 处理器采用了 Thumb® 指令集,确保高代码密度 和降低程序存储需求。Cortex-M3 采用现代 32 位架构和 8 位、16 位微处理器的高密度指令集,提 供了优异的性能。 Cortex-M3 处理器集成了嵌入中断处理器 (NVIC),达到业界领先的中断性能。该 Stellaris NVIC 包 括一个不可屏蔽中断 (NMI) 并提供 8 个中断优先级。紧密集成的处理器内核和NVIC提供快速的中断 服务程序和显著的降低了中断延迟。硬件入栈和停止多步装载和存储操作进一步降低了中断延迟。 中断处理不需要任何的汇编从何减少了ISR的代码开销。尾链优化同样显著地降低了ISR切换时的开 销。为优化低功耗设计,NVIC集成了睡眠模式,包括深度睡眠模式,该模式可使整个芯片迅速地降 低功耗。 图 2-1. CPU 结构图 嵌套的 向量中断 控制器 中断 睡眠 调试 CM3 内核 指令 数据 内存保护 单元 ARM Cortex-M3 串行线 输出 追踪端口 追踪 (SWO) 端口的 接口 单元 串行线 JTAG 调试端口 Flash 修补和 断点 专用外设总线 (内部) 调试访问端口 数据监视点 设备追踪宏单元 及追踪 ROM 表 总线 矩阵 Adv.外设总线 I-code 总线 D-code 总线 系统总线 2.2 2.2.1 概述 系统级接口 Cortex-M3 处理器采用 AMBA® 技术实现多接口来提供高速、低延迟的存储器访问。内核支持非对 齐的数据访问和原子位操作,使得外设的控制,系统自旋锁和线程安全布尔数据处理更快。 Cortex-M3 处理器内有一个存储器保护单元 (MPU),可提供细粒度的存储器控制,使应用可以实现 安全特权级别和隔离代码、数据和基于多任务的堆栈。 76 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.2.2 2.2.3 集成的可配置调试 Cortex-M3 处理器实现了一个完整的硬件调试方案,通过一个传统的 JTAG 端口或者适合于微控制 器和其他小封装的 2 脚的 SWD 来提供处理器和存储器的高度的系统可观测。该 Stellaris 通过兼容 ARM CoreSight™ 的串行线 JTAG 调试端口 (SWJ-DP) 接口取代了 ARM SW-DP 和 JTAG—DP。 SWJ-DP 接口将 SWD 和 JTAG 调试端口组合到一个模块中。参见 “ARM® Debug Interface V5 Architecture Specification” 获取关于 SWJ-DP 的更多信息。 对于系统跟踪,处理器集成了一个仪表跟踪宏单元(ITM),具有数据断点和分析单元。能够简单 地低成本的系统跟踪事件,串行线观测器(SWV)通过一个单引脚能导出软件产生的信息、数据跟 踪和分析信息的数据流。 Flash 补丁和断点单元(FPB)提供高达8个硬件断点比较仪,这些可被调试器使用。在FPB中比较 仪提供在程序代码中的CODE存储器区多达8个字的重映射功能。这允许存储在只读Flash中应用可 以拼接到片上SRAM或Flash的另一个区。当需要拼接时,应用编程FPB来重映射一组地址。当这些 地址被访问时,访问被重定位到FPB配置中指定的重映射表中。 有关 Cortex-M3 处理器调试功能的更多信息,参见“ARM® Debug Interface V5 Architecture Specification”。 跟踪端口接口单元 (TPIU) TPIU 充当来自 ITM 的 Cortex-M3 跟踪数据以及片外跟踪端口分析仪之间的桥接器,如 图 2-2 在 77页 中所示。 图 2-2. TPIU 结构图 调试 ATB 从机 端口 ATB 接口 异步 FIFO 追踪 (串行化) 串行线 追踪端口 (SWO) APB 从机 端口 APB 接口 2.2.4 Cortex-M3 系统组件细节 Cortex-M3 包含以下系统组件: ■ SysTick 24 位的递减定时器,可被用作实时操作系统 (RTOS) 的节拍定时器,或者作为一个简单的计数 器,参见 “系统定时器(SysTick)” 在 115页。 一月 06, 2012 77 Texas Instruments-生产数据 Cortex-M3 处理器 2.3 2.3.1 2.3.2 ■ 嵌套式向量化中断控制器 (NVIC) 一个嵌入的中断控制器,支持低延迟中断处理,参见 “嵌套向量中断控制器(NVIC)” 在 116页。 ■ 系统控制模块 (SCB) 处理器的编程模型接口。系统控制块 (SCB) 提供系统实现信息和系统控制,包括系统异常的配 置,控制和报告(参见 “系统控制模块(SCB)” 在 117页)。 ■ 存储器保护单元 (MPU) 通过为不同的存储器区定义存储器属性来提高系统的稳定性。MPU 提供多达 8 个不同区和一个 可选的预定义的背景区,参见 “存储器保护单元(MPU)” 在 117页。 编程模型 这部分描述了 Cortex-M3 的编程模型。另外还有单个的内核寄存器描述,处理器模式的信息和软件 执行、堆栈的权限级别。 处理器模式和软件执行的权限级别 Cortex-M3 具有两种工作模式: ■ 线程模式 用于执行应用程序软件。处理器复位后,进入线程模式。 ■ 处理器模式 用于处理异常。当处理器完成异常的处理之后返回到线程模式。 另外,Cortex-M3 有两个权限级别: ■ 无特权级 在此模式下,软件有如下限制: – 限制访问 MSR 和 MRS 指令且不能使用 CPS 指令 – 不能访问系统定时器、NVIC 或者系统控制块 – 限制对某些存储器和外设的访问 ■ 特权级 在此模式下,软件可以使用所有的指令和访问所有的资源。 在线程模式下,CONTROL 寄存器(参见 92页)控制软件是在特权级还是非特权级。在处理器模 式下,软件执行总是在特权级下。 在线程模式下,只有在特权级下软件在可以写 CONTROL 寄存器来改变软件的特权级。非特权模式 下,软件可以使用 SVC 指令来产生一个系统调用把控制权转移到特权下的软件。 堆栈 该处理器使用向下的满栈,意味着在堆存储器中堆栈指针指向的是最后入栈项目。当处理器推入一 个新的项目入栈时,先递减堆栈指针,再把新项目写入到存储器中。处理器实现了两个堆栈:主堆 栈和处理堆栈,它们是独立的堆栈指针的副本(参见在 82页 上的 SP 寄存器)。 78 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.3.3 在线程模式,CONTROL 寄存器(见 92页)控制处理器是使用主堆栈还是处理堆栈。在处理器模 式下,处理器总是使用主堆栈。处理器操作选项如 表 2-1 在 79页 所示: 表 2-1. 处理器模式、特权等级和堆栈使用摘要 处理器模式 用途 线程模式 应用程序 处理器模式 异常处理程序 a. 参见 CONTROL ( 92页)。 特权等级 特权级或非特权级 a 总是特权级 使用的堆栈 主堆栈或进程堆栈 a 主堆栈 寄存器映射 图 2-3 在 79页 描述了 Cortex-M3 的寄存器组。表 2-2 在 79页 列出了内核寄存器。核心寄存器并 没有映射存储器且可以通过寄存器访问,所以基址是 n/a(不适用)且没有偏移。 图 2-3. Cortex-M3 的寄存器组。 低位寄存器 高位寄存器 堆栈指针 链接寄存器 程序计数器 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 SP (R13) LR (R14) PC (R15) PSR PRIMASK FAULTMASK BASEPRI CONTROL 通用寄存器 PSP‡ MSP‡ ‡SP 的分组版本 程序状态寄存器 异常屏蔽寄存器 控制寄存器 特殊寄存器 表 2-2. 处理器 寄存器映射 偏移量 名称 类型 - R0 R/W - R1 R/W - R2 R/W 复位 - 描述 Cortex 通用寄存器 0 Cortex 通用寄存器 1 Cortex 通用寄存器 2 见页面 81 81 81 一月 06, 2012 79 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-2. 处理器 寄存器映射(续) 偏移量 名称 类型 - R3 R/W - R4 R/W - R5 R/W - R6 R/W - R7 R/W - R8 R/W - R9 R/W - R10 R/W - R11 R/W - R12 R/W - SP R/W - LR R/W - PC R/W - PSR R/W - PRIMASK R/W - FAULTMASK R/W - BASEPRI R/W - CONTROL R/W 复位 - 0xFFFF.FFFF - 0x0100.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 描述 Cortex 通用寄存器 3 Cortex 通用寄存器 4 Cortex 通用寄存器 5 Cortex 通用寄存器 6 Cortex 通用寄存器 7 Cortex 通用寄存器 8 Cortex 通用寄存器 9 Cortex 通用寄存器 10 Cortex 通用寄存器 11 Cortex 通用寄存器 12 堆栈指针寄存器 链接寄存器 程序计数器寄存器 程序状态寄存器 优先级屏蔽寄存器 故障屏蔽寄存器 基本优先级屏蔽寄存器 控制寄存器 见页面 81 81 81 81 81 81 81 81 81 81 82 83 84 85 89 90 91 92 2.3.4 寄存器描述 本章列出(以 图 2-3 在 79页 中所示的顺序)并描述了 Cortex-M3 寄存器。内核寄存器地地址不是 存储器映射的,因此只能通过寄存器名称访问,而不能通过使用偏移量的方式访问。 注意: 在寄存器描述栏中,描述了程序在线程模式和处理器模式执行时的类型。调试访问可能不 同。 80 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 1: Cortex 通用寄存器 0(R0) 寄存器 2: Cortex 通用寄存器 1(R1) 寄存器 3: Cortex 通用寄存器 2(R2) 寄存器 4: Cortex 通用寄存器 3(R3) 寄存器 5: Cortex 通用寄存器 4(R4) 寄存器 6: Cortex 通用寄存器 5(R5) 寄存器 7: Cortex 通用寄存器 6(R6) 寄存器 8: Cortex 通用寄存器 7(R7) 寄存器 9: Cortex 通用寄存器 8(R8) 寄存器 10: Cortex 通用寄存器 9(R9) 寄存器 11: Cortex 通用寄存器 10(R10) 寄存器 12: Cortex 通用寄存器 11(R11) 寄存器 13: Cortex 通用寄存器 12(R12) Rn 寄存器是供数据操作的 32 位通用寄存器,既可在特权模式下访问,也可在在非特权模式下访 问。 Cortex 通用寄存器 0 (R0) 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 DATA 类型 R/W 复位 - 描述 寄存器数据。 一月 06, 2012 81 Texas Instruments-生产数据 Cortex-M3 处理器 寄存器 14: 堆栈指针寄存器(SP) 堆栈指针 (SP) 即寄存器 R13。在线程模式下,该寄存器功能取决于控制寄存器 (CONTROL) 寄存 器中的 ASP 位。当将 ASP 位清零时,此寄存器是主堆栈指针 (MSP)。当将 ASP 位置位时,此寄存 器是处理堆栈指针 (PSP)。复位时,ASP 清零,同时处理器将地址 0x0000.0000 处的值载入 MSP。 仅可在特权级模式下才可访问 MSP 寄存器;在特权级和非特权级模式都可访问 PSP 寄存器。 堆栈指针寄存器 (SP) 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SP 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SP 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 SP 类型 R/W 复位 - 描述 该域是堆栈指针的地址。 82 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 15: 链接寄存器(LR) R14是链接寄存器 (LR)。它存储子程序、函数调用和异常的返回信息。LR 在特权和非特权模式下 均可访问。 EXC_RETURN 被载入到 LR(在异常入口处)。其值及相关描述参见 表 2-10 在 108页。 链接寄存器 (LR) 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 LINK 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LINK 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 LINK 类型 复位 描述 R/W 0xFFFF.FFFF 此域是返回地址。 一月 06, 2012 83 Texas Instruments-生产数据 Cortex-M3 处理器 寄存器 16: 程序计数器寄存器(PC) R15 是程序计数器 (PC),用于保存的是当前程序的地址。复位时,处理器将地址 0x0000.0004 处 的复位向量载入到 PC 寄存器。复位时,该复位向量的位 0 载入到 EPSR 寄存器中的THUMB 位, 此时该位必须是 1。在特权和非特权模式下均可访问 PC 寄存器。 程序计数器寄存器 (PC) 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PC 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PC 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 PC 类型 R/W 复位 - 描述 此域是当前程序的地址。 84 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 17: 程序状态寄存器(PSR) 注意: 此寄存器也被称为 xPSR 寄存器。 程序状态寄存器 (PSR) 有三个功能,且寄存器中的位被分配为不同的功能: ■ 应用程序状态寄存器 (APSR) 位域 31:27, ■ 运行程序状态寄存器 (EPSR),位域 26:24,15:10 ■ 中断程序状态寄存器 (IPSR),位域 6:0 仅可在特权级模式下才可访问 PSR、IPSR 和 EPSR 寄存器;特权级和非特权级模式都可访问 APSR 寄存器。 APSR 保存之前指令执行的状态标记的当前状态。 EPSR 保存 Thumb 状态位和 If-Then 指令 (IT) 或者 Interruptible-Continuable 指令 (ICI) 域或者被 中断的多周期载入和存储指令的执行状态。尝试通过应用软件使用 MSR 指令直接读取 EPSR 的操 作,其返回值总是为零;尝试在应用程序软件中使用 MSR 指令对 EPSR 进行写操作,将始终被忽 略。故障处理器可通过检查堆栈式的 PSR 中的 EPSR 值来确定该故障操作(见 “异常进入和返 回” 在 106页)。 IPSR 包含的是当前中断服务程序 (ISR) 的异常类型号。 这些寄存器可以单独访问或者是任何两三个一起访问,访问时使用寄存器的名字作为 MSR 或者 MRS 的参数。例如,可以使用 PSR 寄存器 + MRS 指令的组合对所有的寄存器进行读操作;APSR 寄存 器 + MSR 指令的组合仅可以对 APSR 寄存器进行写操作。 85页 列出了 PSR 所有可能的寄存器组 合。也请参见 MRS 和 MSR 指令的描述(在“Cortex™-M3 Instruction Set Technical User's Manual” 中),了解关于如何访问程序状态寄存器的更多信息。 表 2-3. PSR 寄存器组合 寄存器 PSR 类型 R/Wa, b IEPSR IAPSR EAPSR RO R/Wa R/Wb a. 处理器忽略对 IPSR 位的写操作。 b. 读 EPSR 位返回零,处理器忽略这些位的写操作。 组合 APSR、EPSR 和 IPSR EPSR 和 IPSR APSR 和 IPSR APSR 和 EPSR 程序状态寄存器 (PSR) 类型 R/W, 复位 0x0100.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 N Z C V Q ICI / IT THUMB 保留 类型 R/W R/W R/W R/W R/W RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ICI / IT 保留 ISRNUM 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 一月 06, 2012 85 Texas Instruments-生产数据 Cortex-M3 处理器 位/域 31 30 29 28 27 26:25 名称 N Z C V Q ICI / IT 类型 R/W R/W R/W R/W R/W RO 复位 0 0 0 0 0 0x0 描述 APSR 负数或小于标志 值 描述 1 先前操作的结果是负数或小于。 0 先前操作的结果是整数、零、大于或相等。 当访问 PSR 或 APSR 时该位才有意义。 APSR 零标志 值 描述 1 先前操作结果为0。 0 先前操作结果非0。 当访问 PSR 或 APSR 时该位才有意义。 APSR 进位或借位标志 值 描述 1 先前加法操作导致进位或者先前的减法操作没有产生借位。 0 先前的加法操作没有导致进位或者先前的减法操作导致了借位。 当访问 PSR 或 APSR 时该位才有意义。 APSR 溢出标志 值 描述 1 先前的操作导致了溢出。 0 先前的操作没导致溢出。 当访问 PSR 或 APSR 时该位才有意义。 APSR DSP 溢出和饱和标志 值 描述 1 产生了DSP 溢出或饱和。 0 自从复位或自从该位上次清零以来没有发生DSP溢出或饱和。 当访问 PSR 或 APSR 时该位才有意义。 该位可由软件使用 MRS 指令清零。 EPSR ICI / IT 状态 这些位以及位 15:10 都包含可用于中断的多指令载入操作和多指令存储 操作的“中断的-继续的指令” (ICI) 域,以及 IT 指令的执行状态位。 当 EPSR 保存 ICI 执行状态时,位 26:25 都是零。 If-Then 模块在 16 位的 IT 指令之后最多包含四条指令。该模块中的每 条指令都是带有条件的。这些指令的条件有可能都一样,其中一些也可 能和其它相反。参见 “Cortex™-M3 Instruction Set Technical User's Manual” 以获得更多信息。 当访问 PSR 或 EPSR 时该位域才有意义。 86 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 24 23:16 15:10 9:7 名称 THUMB 保留 ICI / IT 保留 类型 RO RO RO RO 复位 1 0x00 0x0 0x0 描述 EPSR Thumb 状态 该位指示 Thumb 的状态且应该一直为1。 下面的情况可清除 THUMB 位: ■ BLX、BX 和 POP{PC} 指令 ■ 从异常返回上的堆栈式 xPSR 值恢复 ■ 异常进入时的向量值的位 0 当该位清零时,尝试执行指令会导致出错或锁定。参见 “死锁” 在 110页。 当访问 PSR 或 EPSR 时该位才有意义。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 EPSR ICI / IT 状态 这些位和 26:25 位一起包含了被中断的载入和存储多字节指令的 ICI 域 或者是 IT指令的执行状态位。 在执行 LDM、STM、PUSH 或 POP、VLDM、VSTM、VPUSH 或 VPOP 指令过程中有中断出现时,处理器将暂时停止多指令载入/多指令存储操 作,并将多指令操作中的下一个寄存器的操作对象存储到位域 15:12 中。处理完中断后,处理器返回到位 15:12 指向的寄存器,然后恢复多 指令载入和存储操作。当 EPSR 保持 ICI 执行状态时,位 11:10 都是 零。 If-Then 模块在 16 位的 IT 指令之后最多包含四条指令。该模块中的每 条指令都是带有条件的。这些指令的条件有可能都一样,其中一些也可 能和其它相反。参见 “Cortex™-M3 Instruction Set Technical User's Manual” 以获得更多信息。 当访问 PSR 或 EPSR 时该位域才有意义。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 87 Texas Instruments-生产数据 Cortex-M3 处理器 位/域 6:0 名称 ISRNUM 类型 RO 复位 0x00 描述 IPSR ISR 编号 该域包含的是当前中断服务程序 (ISR) 的异常类型号。 值 描述 0x00 线程模式 0x01 保留 0x02 NMI 0x03 硬故障 0x04 存储器管理故障 0x05 总线故障 0x06 用法故障 0x07-0x0A 保留 0x0B SVCall 0x0C 保留用于调试 0x0D 保留 0x0E PendSV 0x0F SysTick 0x10 中断向量 0 0x11 中断向量 1 ... ... 0x46 中断向量 54 0x47-0x7F 保留 参见 “异常类型” 在 101页。 当访问 PSR 或 IPSR 时该位域才有意义。 88 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 18: 优先级屏蔽寄存器(PRIMASK) PRIMASK 寄存器可屏蔽所有优先级可编程的异常。只有固定优先级的复位、NMI 和硬故障是例外 的。当异常可能影响到关键任务执行时间时应该被禁止。该寄存器只能在特权模式下访问。MSR 和 MRS 指令用于访问 PRIMASK 寄存器,且 CPS 指令可用来改变 PRIMASK 寄存器中的值。参见 “Cortex™-M3 Instruction Set Technical User's Manual” 了解这些指令的更多信息。有关异常优 先级的更多信息,请参考 “异常类型” 在 101页。 优先级屏蔽寄存器 (PRIMASK) 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PRIMASK 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:1 0 名称 保留 PRIMASK 类型 RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 优先级屏蔽 值 描述 1 禁止所有可配置优先级的异常。 0 无影响。 一月 06, 2012 89 Texas Instruments-生产数据 Cortex-M3 处理器 寄存器 19: 故障屏蔽寄存器(FAULTMASK) FAULTMASK 寄存器可屏蔽除 NMI 外的所有异常。当异常可能影响到关键任务执行时间时应该被 禁止。该寄存器只能在特权模式下访问。MSR 和 MRS 指令用于访问 FAULTMASK 寄存器,且 CPS 指令可用来改变 FAULTMASK 寄存器中的值。参见 “Cortex™-M3 Instruction Set Technical User's Manual” 了解这些指令的更多信息。有关异常优先级的更多信息,请参考 “异常类型” 在 101页。 故障屏蔽寄存器 (FAULTMASK) 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 FAULTMASK 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:1 0 名称 保留 FAULTMASK 类型 RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 故障屏蔽 值 描述 1 禁止除了NMI的所有异常。 0 无影响。 处理器从除了 NMI 外的任何异常返回时将 FAULTMASK 位清零。 90 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 20: 基本优先级屏蔽寄存器(BASEPRI) BASEPRI 寄存器定义了异常处理的最小优先级。当 BASEPRI 寄存器是非零值时,它将会禁止所 有异常优先级比 BASEPRI 寄存器低或相等的异常。当异常可能影响到关键任务执行时间时应该被 禁止。该寄存器只能在特权模式下访问。有关异常优先级的更多信息,请参考 “异常类型” 在 101页。 基本优先级屏蔽寄存器 (BASEPRI) 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 BASEPRI 保留 类型 RO RO RO RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:5 名称 保留 BASEPRI 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0 基本优先级 任何可编程优先级的异常的优先级低于或等于该域的值时将被屏蔽。 PRIMASK 寄存器可用来屏蔽所有优先级可编程的异常。优先级越高, 优先级别越低。 值 描述 0x0 所有异常都不屏蔽。 0x1 所有优先级别在 1-7 的异常都将屏蔽。 0x2 所有优先级别在 2-7 的异常都将屏蔽。 0x3 所有优先级别在 3-7 的异常都将屏蔽。 0x4 所有优先级别在 4-7 的异常都将屏蔽。 0x5 所有优先级别在 5-7 的异常都将屏蔽。 0x6 所有优先级别在 6-7 的异常都将屏蔽。 0x7 所有优先级别为 7 的异常都将屏蔽。 4:0 保留 RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 91 Texas Instruments-生产数据 Cortex-M3 处理器 寄存器 21: 控制寄存器(CONTROL) CONTROL 寄存器控制在线程模式下使用的堆栈和软件权限级别。该寄存器只能在特权模式下访 问。 处理器模式总是使用 MSP,处理器将忽略在处理器模式下对 CONTROL 寄存器的 ASP 写入的值。 异常进入和返回机制自动采用 EXC_RETURN(参见 表 2-10 在 108页)的值来更新 CONTROL 寄 存器。在带操作系统环境下,线程在线程模式下运行应该使用进程堆栈,而内核和异常处理应该使 用主堆栈。默认情况下,线程模式使用 MSP。在线程模式中切换堆栈指针到 PSP,既可使用 MSR 指令来设置 ASP 位(在 “Cortex™-M3 Instruction Set Technical User's Manual”中会详细介绍), 也可在异常返回线程模式时返回相应的 EXC_RETURN 值,参见 表 2-10 在 108页。 注意: 当改变堆栈指针时,软件必须在 MSR 指令之后紧接一条 ISB 指令,确保 ISB 指令执行之后 使用新的堆栈。参见 “Cortex™-M3 Instruction Set Technical User's Manual”。 控制寄存器 (CONTROL) 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 ASP TMPL 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:2 1 0 名称 保留 ASP TMPL 类型 RO R/W R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 活动堆栈指针 值 描述 1 PSP 是当前堆栈指针。 0 MSP 是当前堆栈指针。 在处理器模式下,该位读出零写会忽略。当异常返回时,Cortex-M3 自 动更新该位。 0 线程模式特权级 值 描述 1 非特权级软件可以在线程模式被执行。 0 只有特权级的软件才能在线程模式下被执行。 92 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.3.5 2.3.6 异常和中断 Cortex-M3 处理器支持中断和系统异常。处理器和嵌入向量中断控制器分级和处理所有异常。异常 改变了软件控制流。处理器使用处理器模式处理除了复位之外的所有异常。参见 “异常进入和返 回” 在 106页。 NVIC寄存器控制中断处理。参见 “嵌套向量中断控制器(NVIC)” 在 116页。 数据类型 Cortex-M3 支持 32 位字、16 位半字和 8 位字节。处理器也支持 64 位数据传输指令。所有指令和 数据访问都是小端模式。参见 “存储器区、类型和属性” 在 95页。 2.4 存储模型 本节描述处理器存储映射、存储器访问和位带特征。处理器提供4GB的寻址空间和混合的存储映射。 LM3S9B92 控制器的存储器映射在 表 2-4 在 93页 中给出。在本手册中,寄存器地址将采用十六进 制递增的形式给出,并与存储器映射表中模块的基址一一对应 在SRAM和外设区包含位带区。位带区对位数据提供原子操作,参见 “位带区” 在 97页。 处理器为核心外设寄存器保留了相应范围的专用外设总线 (PPB) 地址区(参见 “Cortex-M3 外 设” 在 115页)。 注意: 在存储器映射,当读写所有保留空间时返回一个总线故障。 表 2-4. 存储器映射 起始 存储器 0x0000.0000 0x0004.0000 0x0100.0000 0x2000.0000 0x2001.8000 0x2200.0000 0x2230.0000 FiRM 外设 0x4000.0000 0x4000.1000 0x4000.2000 0x4000.4000 0x4000.5000 0x4000.6000 0x4000.7000 0x4000.8000 0x4000.9000 0x4000.A000 0x4000.C000 0x4000.D000 0x4000.E000 结束 0x0003.FFFF 0x00FF.FFFF 0x1FFF.FFFF 0x2001.7FFF 0x21FF.FFFF 0x222F.FFFF 0x3FFF.FFFF 0x4000.0FFF 0x4000.1FFF 0x4000.3FFF 0x4000.4FFF 0x4000.5FFF 0x4000.6FFF 0x4000.7FFF 0x4000.8FFF 0x4000.9FFF 0x4000.BFFF 0x4000.CFFF 0x4000.DFFF 0x4000.EFFF 描述 片上Flash 保留 为 ROM 保留 片上 SRAM 位带 保留 片上 SRAM 的位带别名区,起始地址为 0x2000.0000 保留 看门狗定时器0 看门狗定时器1 保留 GPIO 端口 A GPIO 端口 B GPIO 端口 C GPIO 端口 D SSI0 SSI1 保留 UART0 UART1 UART2 详见页 287 285 285 285 - 545 545 389 389 389 389 711 711 652 652 652 一月 06, 2012 93 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-4. 存储器映射(续) 起始 0x4000.F000 外设 0x4002.0000 0x4002.1000 0x4002.2000 0x4002.4000 0x4002.5000 0x4002.6000 0x4002.7000 0x4002.8000 0x4002.9000 0x4002.C000 0x4002.D000 0x4002.E000 0x4003.0000 0x4003.1000 0x4003.2000 0x4003.3000 0x4003.4000 0x4003.8000 0x4003.9000 0x4003.A000 0x4003.C000 0x4003.D000 0x4003.E000 0x4004.0000 0x4004.1000 0x4004.2000 0x4004.8000 0x4004.9000 0x4005.0000 0x4005.1000 0x4005.4000 0x4005.5000 0x4005.8000 0x4005.9000 0x4005.A000 0x4005.B000 0x4005.C000 0x4005.D000 0x4005.E000 0x4005.F000 结束 0x4001.FFFF 0x4002.0FFF 0x4002.1FFF 0x4002.3FFF 0x4002.4FFF 0x4002.5FFF 0x4002.6FFF 0x4002.7FFF 0x4002.8FFF 0x4002.BFFF 0x4002.CFFF 0x4002.DFFF 0x4002.FFFF 0x4003.0FFF 0x4003.1FFF 0x4003.2FFF 0x4003.3FFF 0x4003.7FFF 0x4003.8FFF 0x4003.9FFF 0x4003.BFFF 0x4003.CFFF 0x4003.DFFF 0x4003.FFFF 0x4004.0FFF 0x4004.1FFF 0x4004.7FFF 0x4004.8FFF 0x4004.FFFF 0x4005.0FFF 0x4005.3FFF 0x4005.4FFF 0x4005.7FFF 0x4005.8FFF 0x4005.9FFF 0x4005.AFFF 0x4005.BFFF 0x4005.CFFF 0x4005.DFFF 0x4005.EFFF 0x4005.FFFF 描述 保留 I2C 0 I2C 1 保留 GPIO 端口 E GPIO 端口 F GPIO 端口 G GPIO 端口 H PWM 保留 QEI0 QEI1 保留 定时器 0 定时器 1 定时器 2 定时器 3 保留 ADC0 ADC1 保留 模拟比较器 GPIO 端口 J 保留 CAN0 控制器 CAN1 控制器 保留 以太网控制器 保留 USB 保留 I2S0 保留 GPIO 端口 A(AHB 槽) GPIO 端口 B(AHB 槽) GPIO 端口 C(AHB 槽) GPIO 端口 D(AHB 槽) GPIO 端口 E(AHB 槽) GPIO 端口 F(AHB 槽) GPIO 端口 G(AHB 槽) GPIO 端口 H(AHB 槽) 94 Texas Instruments-生产数据 详见页 - 753 753 389 389 389 389 1065 1129 1129 512 512 512 512 586 586 1039 389 826 826 866 930 785 389 389 389 389 389 389 389 389 一月 06, 2012 Stellaris® LM3S9B92 微控制器 表 2-4. 存储器映射(续) 起始 0x4006.0000 0x4006.1000 0x400D.0000 0x400D.1000 0x400F.D000 0x400F.E000 0x400F.F000 0x4010.0000 0x4200.0000 0x4400.0000 0x6000.0000 专用的外设总线 0xE000.0000 0xE000.1000 0xE000.2000 0xE000.3000 0xE000.E000 0xE000.F000 0xE004.0000 0xE004.1000 结束 0x4006.0FFF 0x400C.FFFF 0x400D.0FFF 0x400F.CFFF 0x400F.DFFF 0x400F.EFFF 0x400F.FFFF 0x41FF.FFFF 0x43FF.FFFF 0x5FFF.FFFF 0xDFFF.FFFF 0xE000.0FFF 0xE000.1FFF 0xE000.2FFF 0xE000.DFFF 0xE000.EFFF 0xE003.FFFF 0xE004.0FFF 0xFFFF.FFFF 描述 GPIO 端口 J(AHB 槽) 保留 EPI 0 保留 Flash 存储器控制 系统控制 µDMA 保留 0x4000.0000 到 0x400F.FFFF 的位带别名 保留 EPI0 映射的外设和 RAM 仪表跟踪宏单元(ITM) 数据观察点和跟踪(DWT) Flash 修补和断点(FPB) 保留 Cortex-M3 外设(SysTick、NVIC、 以及 MPU) 保留 跟踪端口接口单元 (TPIU) 保留 详见页 389 459 292 203 339 - 77 77 77 101 77 - 2.4.1 2.4.2 存储器区、类型和属性 存储器映射和 MPU 的编程将存储器映射分割成几个区域。每个区被定义了存储类型且有些区有附 件的存储器属性。存储类型和属性决定访问该区的行为。 存储类型: ■ 普通:处理器为了效率可重新排序和不确定的读操作。 ■ 设备:处理器保存传送顺序并严格依照顺序和其它设备或严格排序存储器交换信息。 ■ 严格排序处理器保存传送顺序并严格依照顺序和其它设备交换信息。 设备和严格排序存储器的顺序要求不同,这就意味着,存储系统可以将写操作缓冲到设备存储器, 而不可缓冲到严格排序存储器。 附件的存储属性是永不执行区 (XN)。意味着处理器阻止指令访问。只要在 XN 区执行指令就会产生 故障异常。 存储器访问存储系统顺序 大多数的存储器访问时通过具体的存储器访问指令,存储系统并不能保证访问的顺序和指令的编程 顺序一致,提供的顺序不影响指令序列的行为。通常,如果程序的正常执行依赖于两次存储器访问 依照编程顺序,则软件要在两次存储器访问指令之间设置存储器阻碍指令。(参见 “存储器访问的软 件顺序” 在 96页)。 一月 06, 2012 95 Texas Instruments-生产数据 Cortex-M3 处理器 2.4.3 2.4.4 然而,存储器系统保证设备和严格顺序存储之间的访问顺序。两条存储器访问指A1和A 2,如果A1 和A2都访问设备或者严格顺序存储器,并且在编程顺序上A1在A2前边,则A1将一直在A2前边被获 取。 存储器访问行为 表 2-5 在 96页 示出存储器映射中每个区的访问行为。关于存储器类型和 XN 属性的具体信息,参见 “存储器区、类型和属性” 在 95页。 Stellaris 设备保留如下表所示的地址范围。更多信息,参见 表 2-4 在 93页。 表 2-5. 存储器访问行为 地址范围 存储器区域 0x0000.0000 - 0x1FFF.FFFF 代码 0x2000.0000 - 0x3FFF.FFFF SRAM 0x4000.0000 - 0x5FFF.FFFF 外设 0x6000.0000 - 0x9FFF.FFFF 0xA000.0000 - 0xDFFF.FFFF 0xE000.0000- 0xE00F.FFFF 外部 RAM 外部设备 专用外设总线 0xE010.0000- 0xFFFF.FFFF 保留 存储器类型 正常 正常 设备 正常 设备 严格排序 - 从不执行 描述 (XN) - 这个可执行区域用于存放程序代码。数据也 可以保存到这里。 - 这个可执行区域用于存放数据。代码也可以 保存在这里。这个区域包括了位带和位带别 名区(参见 表 2-6 在 97页)。 XN 这个区域包括了位带和位带别名区(参见 表 2-7 在 98页)。 - 这个可执行区域用于存放数据。 XN 这个区域用作外部器件存储器。 XN 这个区域包括 NVIC、系统定时器和系统控 制模块。 - - CODE、SRAM 和外部 RAM 可以保存程序。然而,推荐在 CODE 区保存程序,因为 Cortex-M3 分 离总线可以同时读取和访问数据。 MPU 可以不理会默认存储器访问。更多信息,参见 “存储器保护单元(MPU)” 在 117页。 Cortex-M3 会在执行前预取指令,并且它会以推测的方式从分支目标地址进行预取。 存储器访问的软件顺序 程序流中的指令顺序并不总能保证相应的存储器传送顺序,有以下几个原因: ■ 为提高效率,处理器能够记录一些存储器访问,提供这些并不影响指令序列的行为。 ■ 处理器有多个总线接口。 ■ 存储器映射中的存储器或设备有不同的等待状态。 ■ 有些存储器访问被缓冲或者是不确定的。 “存储器访问存储系统顺序” 在 95页 描述了存储系统保证存储器访问顺序的几种情况。然而,如果存 储器访问顺序是关键的,软件必须包含存储器边界指令强制顺序。Cortex-M3 包含以下存储器边界 指令: ■ 数据存储器边界指令 (DMB) 确保后来的存储器传送指令到来之前未完成的存储器传送指令完成。 ■ 数据同步边界 (DSB) 确保后来的指令执行之前未完成的指令传送完成。 ■ 指令同步边界 (ISB) 确保所有完成了的存储器传送的影响能被后来的指令识别。 96 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.4.5 存储器边界指令可被用在下面的情况: ■ MPU 编程 – MPU 设置改变了并且改变必须在下条指令时有效。使用 DSB 指令确保 MPU 的影响在上下文 切换时立即生效。 – 使用 ISB 指令确保新的 MPU 设置在编程 MPU 区后立即生效,如果使用分支或者调用进入 MPU 配置代码。如果MPU配置代码是使用异常机制进入的,就不需要 ISB 指令。 ■ 向量表 如果程序改变改变了向量表的入口,在两次操作之间使用 DMB 指令启用相应的异常。DMB 指令 确保异常在启用后能够立即发生,处理器使用新的异常表。 ■ 自修改代码 如果程序包含自修改代码,在程序修改后立即使用 ISB 指令。ISB 指令确保后来的指令执行更 新的程序。 ■ 存储器映射切换 如果系统包含存储器映射切换机制,在程序中切换存储器映射之后使用 DSB 指令。DSB 指令确 保后面指令的执行使用新的存储器映射。 ■ 动态异常优先级改变 当一个异常在挂起或者活动的时其优先级需要改变,在改变之后使用 DSB 指令。在 DSB 指令执 行之后改变开始发生作用。 存储器访问严格顺序存储器,如系统控制块,不需要 DMB 指令。 关于存储器边界指令的更多信息,参见“Cortex™-M3 Instruction Set Technical User's Manual”。 位带区 位带区映在位带别名区中的每个字到位带区中的单个位。位带区占用SRAM和外设存储器区中最少 1MB空间。对 32-MBSRAM 别名区的访问映射到 SRAM 中 1-MB 的位带区,如 表 2-6 在 97页 所 示。对 32-MB 外设别名区的访问映射到 1-MB 的外设位带区,如 表 2-7 在 98页 所示。关于位带区 的特定地址范围,参见 表 2-4 在 93页。 注意: 对在SRAM或外设位带别名区中一个字的访问映射到SRAM或外设位带区中的一个位。 对位带区的一个字访问结果是对相应存储器的一个字访问,类似半字或字节访问。这样就与 相应外设的访问要求相符合。 表 2-6. SRAM 存储器位带区 地址范围 0x2000.0000 - 0x200F.FFFF 存储器区域 SRAM 位带区 0x2200.0000 - 0x23FF.FFFF SRAM 位带别名 指令和数据访问 对这个存储器范围的直接访问行为如同对SRAM存储器的访问。 但是该区域也可通过位带别名进行位寻址。 对这个区域的数据访问被重新映射到位带区。一个写操作被执 行为读-修改-写。指令访问没有重新映射。 一月 06, 2012 97 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-7. 外设存储器位带区 地址范围 0x4000.0000 - 0x400F.FFFF 存储器区域 外设位带区 0x4200.0000 - 0x43FF.FFFF 外设位带别名 指令和数据访问 对这个存储器范围的直接访问行为如同对外设存储器的访问。 但是该区域也可通过位带别名进行位寻址。 对这个区域的数据访问被重新映射到位带区。一个写操作被执 行为读-修改-写。指令访问不被允许。 下面的公式演示了别名区和位带区的映射关系: bit_word_offset = (byte_offset x 32) + (bit_number x 4) bit_word_addr = bit_band_base + bit_word_offset 其中: bit_word_offset 在位带区中的目标位的位置。 bit_word_addr 在别名区中雨目标位映射的字的地址。 bit_band_base 别名区的起始地址。 byte_offset 字节在包含目标位的位带区中的编号。 bit_number 目标位的位置,0-7。 图 2-4 在 99页 示出了 SRAM 位带别名区和 SRAM 位带区映射的例子: ■ 在 0x23FF.FFE0 处的别名字映射到了位带区中的 0x200F.FFFF 的第 0 位: 0x23FF.FFE0 = 0x2200.0000 + (0x000F.FFFF*32) + (0*4) ■ 在 0x23FF.FFFC 处的别名字映射到了位带区中的 0x200F.FFFF 的第 7 位: 0x23FF.FFFC = 0x2200.0000 + (0x000F.FFFF*32) + (7*4) ■ 在 0x2200.0000 处的别名字映射到了位带区中的 0x2000.0000 的第 0 位: 0x2200.0000 = 0x2200.0000 + (0*32) + (0*4) ■ 在 0x2200.001C 处的别名字映射到了位带区中的 0x2000.0000 的第 7 位: 0x2200.001C = 0x2200.0000+ (0*32) + (7*4) 98 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 2-4. 位带映射 32 MB 的别名区 0x23FF.FFFC 0x23FF.FFF8 0x23FF.FFF4 0x23FF.FFF0 0x23FF.FFEC 0x23FF.FFE8 0x23FF.FFE4 0x23FF.FFE0 0x2200.001C 0x2200.0018 0x2200.0014 0x2200.0010 0x2200.000C 0x2200.0008 0x2200.0004 0x2200.0000 1 MB SRAM 位带区 76543210765432107654321076543210 0x200F.FFFF 0x200F.FFFE 0x200F.FFFD 0x200F.FFFC 76543210765432107654321076543210 0x2000.0003 0x2000.0002 0x2000.0001 0x2000.0000 2.4.5.1 2.4.5.2 2.4.6 直接访问别名区 在别名区写一个字会更新位带区的一个位。 在别名区写入的字,其值的第0位决定了位带区对应位的值。写入值的第0位置位使位带位为1,写入 值的第0位清零使位带位为0。 别名区字的位 31:1 对位带区对应位没有影响。写入0x01和写入0xFF的影响是一样的。写入0x00和 写入0x0E的影响是一样的。 当在别名区写入一个字时,0x0000.0000 表示位带区中的对应位清零,0x0000.0001 表示位带区中 的对应位置位。 直接访问位带区 “存储器访问行为” 在 96页 描述了对位带区的字节、半字或字进行直接访问的行为。 数据保存 处理器将存储器看做一个从零开始按增加顺序编号的线性字节集合。例如,字节0-3占据第一个存储 字,字节4-7占据第二个存储字。数据以小端法 (little-endian) 格式存储,字的最不重要字节 (lsbyte) 存储在最低编号字节,最重要字节 (msbyte) 存储在最高编号字节。图 2-5 在 100页 示出了数据是如 何存储的。 一月 06, 2012 99 Texas Instruments-生产数据 Cortex-M3 处理器 图 2-5. 数据保存 存储器 7 0 地址 A B0 lsbyte A+1 B1 A+2 B2 A+3 B3 msbyte 寄存器 31 24 23 16 15 8 7 0 B3 B2 B1 B0 2.4.7 同步原语 Cortex-M3 指令集包含一对同步原语,可以提供一个没有阻碍的机制,使一个线程或进程能用于获 取对存储位置的专有访问。软件可以使用这些原语执行有保证的读-修改-写存储器更新序列,或者用 作信号量机制。 一对同步原语包括: ■ 一个下载专用指令,用于读取一个存储器位置的值并请求对该位置的专有访问。 ■ 一个保存专用指令,用于尝试写入相同的存储器位置并想一个寄存器返回一个状态位。如果这个 状态位为0,表示该线程或进程获得了对存储器的专有访问,写入成功;如果这个状态位为1,表 示该线程或进程没有获得对存储器的专有访问,写入没有执行。 这对下载专用和保存专用指令是: ■ 字指令 LDREX 和 STREX ■ 半字指令 LDREXH 和 STREXH ■ 字节指令 LDREXB 和 STREXB 软件必须使用对应的下载专用指令和保存专用指令。 对存储器位置执行一次有保证的读-修改-写,软件必须: 1. 使用一个下载专用指令读取该位置的值。 2. 按照需要更新该值。 3. 使用保存专用指令来尝试将新值写入存储器位置,测试返回的状态位。如果状态位为0,读-修改 -写成功完成;如果状态位为1,写入没有执行,表示第1步返回的值可能是过时的。软件必须重 新尝试读-修改-写序列。 软件可以使用同步原语来实现信号量,如下: 1. 使用一个下载专用指令读取信号量地址,检测信号量是否自由。 2. 如果信号量是自由的,使用保存专用指令向信号量地址写入获取值。 3. 如果第2步返回的状态位表示保存成功,那么软件已经获取了信号量。但是,如果保存失败,那 么可能在软件执行第1步后另外的进程已经获取了信号量。 100 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.5 2.5.1 2.5.2 Cortex-M3 包含一个专用的访问监视器,处理器执行一个下载专用指令后,监视器会对这个事件做 一个标签。如果发生下列情况,处理器会移除这个专用访问标签。 ■ 执行一条 CLREX 指令。 ■ 执行一条 Store-Exclusive 指令,不管是否写成功。 ■ 发生异常时,表示处理器可以在不同线程间解决信号量冲突。 关于同步原语指令的更多信息,参见 “Cortex™-M3 Instruction Set Technical User's Manual”。 异常模式 ARM Cortex-M3 处理器和嵌套矢量中断控制器 (NVIC) 在处理器模式对所有的异常进行优先级划分 和处理。异常发生时处理器状态被自动存储到堆栈,中断服务程序 (ISR) 结束时又自动被恢复。向 量的读取与状态保存并行,高效率进入中断。处理器支持尾链 (tail-chaining),这样使得执行背靠背 中断不需要重叠的状态保存和恢复。 表 2-8 在 103页 列出了所有的异常类型。软件可在七个异常(系统处理程序)以及 53 中断上设置 8 个优先级(在 表 2-9 在 103页 中列出)。 系统处理程序的优先级是通过 NVIC 系统处理程序优先级 n (SYSPRIn) 寄存器来设置的。中断是通 过 NVIC 中断设置使能 n (ENn) 寄存器来启用的,并且由 NVIC 中断优先级 n (PRIn) 寄存器来区分 其优先等级。优先级可以被分组为先发优先级和子优先级。在 “嵌套向量中断控制器(NVIC)” 在 116页 中描述了所有中断寄存器。 在内部用户可编程的最高优先级 (0) 是第4优先级,按顺序在复位、非屏蔽中断 (NMI) 和硬件故障之 后。注意 0 是所有可编程优先级的默认优先级。 重要: 在一次写操作清除中断源后,对于NVIC来说,需要花费几个处理器周期才能看到中断 源被禁止。所以如果在中断处理程序中最后清除中断,有可能中断处理程序结束了但是 NVIC看到中断仍然有效,导致错误的重新进入中断处理程序。这种情况可以避免,或 者通过在中断处理程序开始时清除中断源,或者在写操作清除中断源后执行一个读或写 操作 (刷新写缓冲器)。 关于异常和中断的具体信息,参见 “嵌套向量中断控制器(NVIC)” 在 116页。 异常状态 每种异常都处于下列状态之一: ■ 不活动的. 异常是不活动的,也不是挂起的。 ■ 挂起的. 异常正在等待处理器处理。来自外设或软件的中断请求可以将相应的中断变为挂起状态。 ■ 活动的. 处理器正在处理的异常,并且异常没有结束。 注意: 一个异常处理程序可以中断另一个异常处理程序的执行。就此来说,两个异常都处于活 动状态。 ■ 活动的和挂起的. 异常正被处理器处理,并且有一个挂起的异常来自相同的源。 异常类型 异常类型有: 一月 06, 2012 101 Texas Instruments-生产数据 Cortex-M3 处理器 ■ 复位. 上电或热复位会引起复位。异常模式将复位看做一种特殊形式的异常。当复位有效时,在 指令的任何时刻,处理器的操作都会停止。当复位不再有效时,从向量表中复位入口的地址重新 开始执行。在线程模式中该执行是特权执行。 ■ NMI. 一个非屏蔽中断 (NMI) 可以使用 NMI 信号来发出通知或者使用中断控制及状态 (INTCTRL) 寄存器由软件触发。除了复位,该异常有最高的优先级。NMI 永久启用并拥有一个固定的优先级 -2。NMI 的激活不能被其他任何异常屏蔽或阻止,也不能被除复位外的其他任何异常抢占。 ■ 硬故障. 硬故障是一个异常,它的发生是由于异常处理期间有错误,或者异常不能被任何异常机 制管理。硬故障拥有一个固定的优先级 -1,表明它的优先级高于任何可配置的优先级。 ■ 存储器管理故障. 存储器管理故障是一个异常,它的发生是由于存在与存储器保护相关的故障(包 括访问冲突和不匹配)。在处理指令存储器和数据存储器时,MPU 或固定存储器保护限制决定 了该故障。该故障用来取消指令对不执行 (XN) 存储区域的访问,即使 MPU 是禁止的。 ■ 总线故障. 总线故障是一个异常,它的发生是由于在处理指令或数据存储器时发生了与存储器相 关的故障,如预取错误或存储器访问故障。该故障可以被启用或禁止。 ■ 使用故障. 使用故障是一个异常,它的发生是由于指令执行的相关故障,如: – 一个未定义的指令 – 一次非法的未对齐访问 – 指令执行时的无效状态 – 异常返回错误 当内核被正确配置后,在字或半字存储器访问未对齐的地址或除以0都会引起一个使用故障。 ■ SVCall. 系统调用 (SVC) 是一个异常,它由 SVC 指令触发。在OS环境,应用程序可以使用SVC 指令来访问OS内核函数和器件驱动。 ■ 调试监视器. 这个异常是由于调试监视器(没有停止时)引起的。该异常只有在启用时才激活。 如果该异常的优先级低于当前的动作,那么它不会激活。 ■ PendSV. PendSV 是一个对系统级服务发出的请求,它可以挂起,并由中断驱动。在OS环境, 当没有其它异常活动时,可使用PendSV作为背景切换。PendSV 使用中断控制及状态 (INTCTRL) 触发。 ■ SysTick. SysTick 异常是在系统定时器启用中断时,系统定时器达到 0 时产生的。软件也可以通 过中断控制及状态 (INTCTRL) 寄存器来产生一个 SysTick 异常。在OS环境,处理器可以使用该 异常作为系统时标。 ■ 中断 (IRQ). 中断(即 IRO)是一个异常,它由外设标记,或者通过软件请求并由 NVIC(划分优 先顺序的)反馈产生。所有的中断与指令执行都是异步的。在系统中,外设使用中断与处理器通 信。表 2-9 在 103页 列出了 LM3S9B92 控制器上的中断。 对于异步异常,除复位外,处理器可以在异常触发和处理器进入异常处理程序之间执行其他指令。 特权软件可以禁止 表 2-8 在 103页 上显示的可配置优先级的异常(参见 157页 上的 SYSHNDCTRL 寄存器和 131页 上的 DIS0 寄存器)。 关于硬故障、存储器管理故障、总线故障和使用故障的更多信息,参见 “故障处理” 在 108页。 102 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 2-8. 异常类型 异常类型 - 向量号 0 优先级a - 向量地址或偏移量b 0x0000.0000 复位 1 不可屏蔽的中断 (NMI) 2 硬故障 3 存储器管理 4 总线故障 5 -3 (最高) -2 -1 可编程c 可编程c 0x0000.0004 0x0000.0008 0x0000.000C 0x0000.0010 0x0000.0014 使用故障 6 - 7-10 SVCall 11 调试监视器 12 - 13 PendSV 14 SysTick 15 中断 16及其以上 a. 0 是所有可编程优先级的默认优先级。 b. 见 “向量表” 在 105页。 c. 参见 154页 上的 SYSPRI1 寄存器。 d. 参见 139页 上的 PRIn 寄存器。 可编程c 可编程c 可编程c 可编程c 可编程c 可编程d 0x0000.0018 - 0x0000.002C 0x0000.0030 0x0000.0038 0x0000.003C 0x0000.0040 及其以上 表 2-9. 中断 向量号 0-15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 中断编号(在中断寄存 器中的位) - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 向量地址或偏移量 0x0000.0000 0x0000.003C 0x0000.0040 0x0000.0044 0x0000.0048 0x0000.004C 0x0000.0050 0x0000.0054 0x0000.0058 0x0000.005C 0x0000.0060 0x0000.0064 0x0000.0068 0x0000.006C 0x0000.0070 0x0000.0074 0x0000.0078 0x0000.007C 0x0000.0080 描述 处理器异常 GPIO 端口 A GPIO 端口 B GPIO 端口 C GPIO 端口 D GPIO 端口 E UART0 UART1 SSI0 I2C0 PWM 故障 PWM 发生器 0 PWM 发生器 1 PWM 发生器 2 QEI0 ADC0 序列 0 ADC0 序列 1 ADC0 序列 2 激活 栈顶在复位时通过向量表 的首入口加载。 异步 异步 同步 精确时同步,不精确时异 步 同步 保留 同步 同步 保留 异步 异步 异步 一月 06, 2012 103 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-9. 中断(续) 向量号 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 63 中断编号(在中断寄存 器中的位) 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 47 向量地址或偏移量 0x0000.0084 0x0000.0088 0x0000.008C 0x0000.0090 0x0000.0094 0x0000.0098 0x0000.009C 0x0000.00A0 0x0000.00A4 0x0000.00A8 0x0000.00AC 0x0000.00B0 0x0000.00B4 0x0000.00B8 0x0000.00BC 0x0000.00C0 0x0000.00C4 0x0000.00C8 0x0000.00CC 0x0000.00D0 0x0000.00D4 0x0000.00D8 0x0000.00DC 0x0000.00E0 0x0000.00E8 0x0000.00F0 0x0000.00F4 0x0000.00F8 0x0000.00FC 0x0000.0100 0x0000.0104 0x0000.0108 0x0000.010C 0x0000.0110 0x0000.0114 0x0000.0118 - 描述 ADC0 序列 3 看门狗定时器 0 和 1 定时器 0A 定时器 0B 定时器 1A 定时器 1B 定时器 2A 定时器 2B 模拟比较器 0 模拟比较器 1 模拟比较器 2 系统控制 Flash 存储器控制 GPIO 端口 F GPIO 端口 G GPIO 端口 H UART2 SSI1 定时器 3A 定时器 3B I2C1 QEI1 CAN0 CAN1 保留 以太网控制器 保留 USB PWM 发生器 3 µDMA 软件 μDMA 出错 ADC1 序列 0 ADC1 序列 1 ADC1 序列 2 ADC1 序列 3 I2S0 EPI GPIO 端口 J 保留 104 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.5.3 2.5.4 异常处理程序 处理器处理异常是通过使用: ■ 中断服务程序 (ISR). 中断 (IRQx) 是由 ISR 处理的异常。 ■ 故障处理程序. 硬件障、存储器管理故障、使用故障以及总线故障都是故障异常,由故障处理程 序处理。 ■ 系统处理程序. NMI、PendSV、SVCall、SysTick 和故障异常都是系统异常,由系统处理程序处 理。 向量表 向量表包含了堆栈指针的复位值和开始地址,对于所有的异常处理程序也可称作异常向量。向量表 由 表 2-8 在 103页 中示出的向量地址或偏移量组成。图 2-6 在 105页 示出向量表中异常向量的次序。 每个向量的最低位必须为1,表示异常处理程序是Thumb码。 图 2-6. 向量表 异常号 70 . . . 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 IRQ 号 54 2 1 0 -1 -2 偏移量 0x0118 . . . 0x004C 0x0048 0x0044 0x0040 0x003C 0x0038 -5 0x002C -10 0x0018 -11 0x0014 -12 0x0010 -13 0x000C -14 0x0008 0x0004 0x0000 向量 IRQ54 . . . IRQ2 IRQ1 IRQ0 SysTick PendSV 保留 保留用于调试 SVCall 保留 用法故障 总线故障 存储器管理故障 硬故障 NMI 复位 初始的 SP 值 系统复位时,向量表固定在地址 0x0000.0000。特权软件可以通过向向量表偏移量 (VTABLE) 寄存 器进行写操作,来对向量表的开始地址重新定位,范围是0x0000.0200 到 0x3FFF.FE00 (参见 “向 量表” 在 105页)。注意:在配置 VTABLE 寄存器时,偏移量必须在 512- 字节的边界对齐。 一月 06, 2012 105 Texas Instruments-生产数据 Cortex-M3 处理器 2.5.5 2.5.6 2.5.7 异常优先级 如 表 2-8 在 103页 所示,所有的异常都有其相关的优先级,优先级的值低表示其优先级高,除复位、 硬件复位和 NM I 外的所有异常都可以配置优先级。如果软件没有配置任何优先级,那么可配置优先 级的所有异常的优先级值为 0。关于配置异常优先级的更多信息,参见 154页 和 139页。 注意: 对于 Stellaris 的可配置优先级值的范围是 0-7。这就意味着带有负的优先级值的复位、硬故 障和 NMI 等异常,总是比其他异常有更高的优先级。 例如,分配一个较高的优先级值给 IRQ[0] 同时分配一个较低的优先级值给 IRQ[1],表示 IRQ[1] 比 IRQ[0] 有更高的优先级。如果 IRQ[1] 和 IRQ[0] 都有效,那么 IRQ[1] 先于 IRQ[0] 被处理。 如果多个挂起的异常有相同的优先级,那么异常号最低的优先。例如,如果 IRQ[1] 和 IRQ[0] 都挂 起并且它们有相同的优先级,那么 IRQ[0] 优先于 IRQ[1] 。 当处理程序正在执行一个异常处理程序时,如果有个更高优先级的异常发生,那么它将取代当前的 异常处理程序。如果有一个同样优先级的异常发生,那么不管其异常号如何都不会取代当前的异常 处理程序。但是,新中断的状态变为挂起。 中断优先级分组 为提高系统中对中断优先级的控制,NVIC支持优先级分组。这个分组将中断优先级寄存器入口分为 两个区域。 ■ 高区域定义组的优先级 ■ 低区域定义在同一组内的子优先级 只有组的优先级可以决定中断异常的取代。当处理器正在执行一个中断异常处理程序时,同优先级 组的另一个中断不能取代当前的处理程序。 如果多个挂起的中断处于相同的优先级组,那么子优先级决定处理的顺序。如果多个挂起的中断有 相同的组优先级和子优先级,那么最低IRQ编号的中断先被处理。 关于将中断优先级域分为组优先级和子优先级的更多信息,参见 148页。 异常进入和返回 异常处理的描述使用以下术语: ■ 抢占式. 当处理器正在执行一个异常处理程序时,如果另一个异常的优先级更高,那么它可以抢 占当前正在执行的异常处理程序。关于中断抢占的更多信息,参见 “中断优先级分组” 在 106页。 当一个异常抢占另一个异常时,它们称为嵌套异常。更多信息参见 “异常进入” 在 107页。 ■ 返回. 当异常处理程序完成,并且没有挂起的有足够优先级的异常被服务,并且完成的异常处理 程序不是一个后到的异常时,发生返回。处理器弹出堆栈并恢复到中断发生前的状态。更多信息 参见 “异常返回” 在 107页。 ■ 尾链. 使用尾链机制可加速异常处理。当一个异常处理程序完成时,如果有一个挂起的异常满足 进入的要求,堆栈弹出将被跳过并且控制权直接转移到新的异常处理程序。 ■ 后到. 使用后到机制可加速抢占。如果在先前的异常正在保存状态期间有一个更高优先级的异常 发生,那么处理器会切换到处理更高优先级的异常并开始为该异常取出向量。后到不会影响状态 保存,因为对于前后两个异常来说,要保存的状态是一样的。所以,状态保存会没有中断的持续 进行。处理器可以在直到先前异常处理程序的第一条指令进入到执行阶段时再接受后到的异常。 从后到的异常处理程序返回时,正常的尾链规则有效。 106 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.5.7.1 2.5.7.2 异常进入 异常进入发生的条件是:有一个挂起的有足够优先级的异常,同时处理器处于线程模式,或者新的 异常优先级高于正在处理的异常,这种情况新的异常将取代原先的异常。 当一个异常取代另一个异常时,它们是嵌套的。 足够的优先级表示异常比屏蔽寄存器设置的任何限制都要更优先 (参见 89页 上的 PRIMASK; 90 页 上的 FAULTMASK;以及 91页 上 的 BASEPRI)。比它的优先级低的异常会挂起而不是由处理 器处理。 当处理器取得一个异常时,除非该异常是尾链的或后到的异常,否则处理器会将信息压入当前堆栈 中。这个操作即 堆栈,8 个数据字的结构即 堆栈框。 图 2-7. 异常堆栈框 ... {定位} xPSR PC LR R12 R3 R2 R1 R0 堆栈的 Pre-IRQ 顶 堆栈的 IRQ 顶 入栈操作完成后,堆栈指针立即指向堆栈框的最低地址。 堆栈框包含返回地址,它是被中断程序的下一条指令的地址。当异常返回时这个地址重新载入 PC 以便被中断的程序重新开始。 当入栈操作进行时,处理器并行从向量表读取异常处理程序的开始地址。当入栈操作完成时,处理 器开始执行异常处理程序。同时,处理器将 EXC_RETURN 值写入 LR,表明哪个堆栈指针与堆栈 框相对应,以及处理器在进入异常前处于何种操作模式。 如果在异常进入期间没有更高优先级的异常发生,处理器开始执行异常处理程序并自动将相应挂起 的中断状态更改为活动的。 如果在异常进入期间有另一个更优先的异常发生,即后到,处理器开始执行后到的异常处理程序, 并且不改变先前异常的挂起状态。 异常返回 异常返回发生在处理器的处理器模式,处理器执行下列指令之一,将 EXC_RETURN 值装载到 PC。 ■ LDM 或 POP 指令将加载到 PC 中 ■ 使用任意寄存器的 BX 指令 ■ 将 PC 作为目标的 LDR 指令 EXC_RETURN 是异常进入时载入 LR 的值。异常机制依赖这个值来检测处理器什么时候完成异常 处理程序。这个值的低 4 位提供了有关返回堆栈和处理器模式的信息。表 2-10 在 108页 示出了 EXC_RETURN 值,包括其异常返回行为的描述。 EXC_RETURN 的位 31:4 都将置位。当这个值载入 PC 时,它表示对于处理器异常已经完成,处理 器开始执行适合的异常返回序列。 一月 06, 2012 107 Texas Instruments-生产数据 Cortex-M3 处理器 2.6 2.6.1 表 2-10. 异常返回行为 EXC_RETURN[31:0] 0xFFFF.FFF0 0xFFFF.FFF1 0xFFFF.FFF2 - 0xFFFF.FFF8 0xFFFF.FFF9 0xFFFF.FFFA - 0xFFFF.FFFC 0xFFFF.FFFD 0xFFFF.FFFE - 0xFFFF.FFFF 描述 保留 返回到处理器模式。 异常返回使用来自 MSP 的状态。 返回后执行操作使用 MSP。 保留 返回到线程模式。 异常返回使用来自 MSP 的状态。 返回后执行操作使用 MSP。 保留 返回到线程模式。 异常返回使用来自 PSP 的状态。 返回后执行操作使用 PSP。 保留 故障处理 故障是异常的一个子集(见 “异常模式” 在 101页)。下面的条件产生一个故障: ■ 在取指或载入向量表或访问数据时的总线错误。 ■ 内部检测出的错误,如没有定义的指令或尝试用一个 BX 指令更改状态。 ■ 尝试从一个标记为不可执行 (XN) 的存储区域执行指令。 ■ 由于权限冲突或尝试访问未管理区域而产生的 MPU 错误。 故障类型 表 2-11 在 108页 示出了故障类型、用于处理故障的处理程序、相应的故障状态寄存器和指示故障发 生的寄存器位。关于故障状态寄存器的更多信息,参见 160页。 表 2-11. 故障 故障 处理程序 读向量时的总线错误 硬故障 故障扩大到硬件故障 硬故障 存取指令时,MPU 或默认的存储器不 存储器管理故障 匹配 存取数据时,MPU或默认的存储器不 存储器管理故障 匹配 异常堆栈时,MPU或默认的存储器不 存储器管理故障 匹配 异常退出堆栈时,MPU或默认的存储 存储器管理故障 器不匹配 异常堆栈时的总线错误 总线故障 异常退出堆栈时的总线错误 总线故障 预取指令时的总线错误 总线故障 精确数据总线错误 总线故障 故障状态寄存器 硬件故障状态 (HFAULTSTAT) 硬件故障状态 (HFAULTSTAT) 存储器管理故障状态 (MFAULTSTAT) 位名字 VECT FORCED IERR a 存储器管理故障状态 (MFAULTSTAT) DERR 存储器管理故障状态 (MFAULTSTAT) MSTKE 存储器管理故障状态 (MFAULTSTAT) MUSTKE 总线故障状态 (BFAULTSTAT) 总线故障状态 (BFAULTSTAT) 总线故障状态 (BFAULTSTAT) 总线故障状态 (BFAULTSTAT) BSTKE BUSTKE IBUS PRECISE 108 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.6.2 2.6.3 表 2-11. 故障(续) 故障 处理程序 故障状态寄存器 位名字 非精确数据总线错误 总线故障 总线故障状态 (BFAULTSTAT) IMPRE 尝试访问协处理器 用法故障 使用故障状态 (UFAULTSTAT) NOCP 没有定义的指令 尝试进入无效指令集状态 b 用法故障 用法故障 使用故障状态 (UFAULTSTAT) 使用故障状态 (UFAULTSTAT) UNDEF INVSTAT 无效的 EXC_RETURN 值 用法故障 使用故障状态 (UFAULTSTAT) INVPC 非法的未对齐下载或存储 用法故障 使用故障状态 (UFAULTSTAT) UNALIGN 除以0 用法故障 使用故障状态 (UFAULTSTAT) DIV0 a. 此故障出现在对 XN 区访问时(即使禁用了 MPU)。 b. 尝试使用一个不是 Thumb 指令集的其他指令集,或者在 ICI 持续进行时返回到一个非下载存储复合指令。 故障扩大和硬件故障 除硬件故障外的所有故障异常都有可配置的异常优先级(参见 154页 上的 SYSPRI1)。软件可以禁 止执行这些故障的处理程序(参见 157页 上的 SYSHNDCTRL)。 通常,异常优先级和异常屏蔽寄存器的值决定了处理器是否可以进入故障处理程序,一个故障处理 程序是否可以取代另外一个故障处理程序,参见 “异常模式” 在 101页。 在某些状况下,一个带有可配置优先级的故障可被看做一个硬件故障。该处理称为优先级扩大,该 故障被描述为 扩大到硬故障。扩大到硬件故障发生在: ■ 故障处理程序引起了与它所服务的故障类型相同的故障。这种扩大到硬件故障的发生是因为故障 处理程序不能取代自身,因为它的优先级与当前优先级一样。 ■ 故障处理程序引起了与它所服务的故障优先级相同或更低的故障。这种情况的发生是因为新的故 障处理程序不能取代当前正在执行的故障程序。 ■ 一个异常引起了故障,该故障的的优先级等于或低于当前正在执行的异常。 ■ 一个故障发生了,但是该故障的处理程序没有启用。 当进入一个总线故障处理程序时,如果在堆栈入栈期间发生了一个总线故障,该总线故障不会扩大 到硬件故障。因此如果一个损坏的堆栈引起了一个故障,即使该处理程序的入栈失败,故障处理程 序依然会执行。故障处理程序运行,但是堆栈内容是损坏的。 注意: 只有复位和 NMI 可以取代固定优先级的硬件故障。硬件故障可以取代除复位、NMI或另外 硬件故障之外的任何异常。 故障状态寄存器和故障地址寄存器 故障状态寄存器显示了故障原因。对于总线故障和存储器管理故障,故障地址寄存器显示了造成故 障的操作要访问的地址,参见 表 2-12 在 109页。 表 2-12. 故障状态寄存器和故障地址寄存器 处理程序 硬故障 存储器管理故障 状态寄存器名称 硬件故障状态 (HFAULTSTAT) 存储器管理故障状态 (MFAULTSTAT) 总线故障 总线故障状态 (BFAULTSTAT) 地址寄存器名称 寄存器描述 - 166页 存储器管理故障地址 (MMADDR) 160页 167页 总线故障地址 (FAULTADDR) 160页 168页 一月 06, 2012 109 Texas Instruments-生产数据 Cortex-M3 处理器 2.6.4 2.7 2.7.1 2.7.1.1 2.7.1.2 2.7.1.3 2.7.2 表 2-12. 故障状态寄存器和故障地址寄存器(续) 处理程序 用法故障 状态寄存器名称 使用故障状态 (UFAULTSTAT) 地址寄存器名称 - 寄存器描述 160页 死锁 当处理器执行NMI或硬件故障处理程序时,如果一个硬件故障发生,那么处理器进入死锁状态。当 处理器处于死锁状态时,它不执行任何指令。处理器将保持在死锁状态直到它被复位或NMI发生。 注意: 如果死锁状态从NMI处理程序引发,那么随后的NMI不会使处理器离开死锁状态。 电源管理 Cortex-M3 处理器可使用睡眠模式来减少功耗: ■ 睡眠模式停止处理器时钟。 ■ 深度睡眠模式停止系统时钟并关闭 PLL 和 Flash 存储器。 系统控制 (SYSCTRL) 寄存器中的 SLEEPDEEP 位用于选择睡眠模式(参见 150页)。关于睡眠模 式行为的更多信息,参见 “系统控制” 在 200页。 本节描述进入睡眠模式的机制和从睡眠模式唤醒的条件,它们对与睡眠模式和深度睡眠模式都适用。 进入睡眠模式 本节描述使用软件将处理器进入一种睡眠模式的机制。 系统可以产生假造的唤醒事件,如调试操作可唤醒处理器。所以软件必须能够在该事件后将处理器 返回到睡眠模式。一段程序可能有一个空循环来将处理器返回到睡眠模式。 等待中断 等待中断指令 WFI 会导致立即进入睡眠模式,除非唤醒条件为真(参见 “从WFI或睡眠中退出 (Sleep-on-Exit) 唤醒” 在 111页)。当处理器执行一条 WFI 指令时,它停止执行指令并进入睡眠模 式。参见 “Cortex™-M3 Instruction Set Technical User's Manual” 以获得更多信息。 等待事件 等待事件指令,WFE,进入睡眠模式依赖于一位事件寄存器的值。当处理器执行一条 WFE 指令时, 它将检测事件寄存器。如果寄存器为0,处理器停止执行指令并进入睡眠模式。如果寄存器为1,处 理器清零寄存器,接着继续执行指令而不进入睡眠模式。 如果事件寄存器为 1,处理器执行一条 WFE 指令时一定不会 睡眠模式。执行 SEV 指令之后,通常 会发生这种情况。软件不能直接访问这个寄存器。 参见 “Cortex™-M3 Instruction Set Technical User's Manual” 以获得更多信息。 睡眠中退出 (Sleep-on-Exit) 如果 SYSCTRL 寄存器中的 SLEEPEXIT 位置位,当处理器执行完一段异常处理器程序后,它返回 线程模式并立即进入睡眠模式。这种机制可用于异常发生时需要处理器运行的情况。 从睡眠模式唤醒 处理器唤醒的条件依赖于促使其进入睡眠模式的机制。 110 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 2.7.2.1 2.7.2.2 2.8 从WFI或睡眠中退出 (Sleep-on-Exit) 唤醒 通常,处理器只有在检测到一个异常,并且该异常足够优先执行时才唤醒。有些嵌入式系统可能会 在处理器唤醒后执行中断处理程序前必须执行系统恢复任务。将 PRIMASK 位置位并将 FAULTMASK 位清零可推延进入中断处理程序。如果一个中断启用并且比当前异常的优先级高,该中断到来时处 理器唤醒但直到处理器将 PRIMASK 清零后才执行中断处理程序。关于 PRIMASK 和 FAULTMASK 的更多信息,参见 89页 和 90页。 从WFE 唤醒 处理器如果检测到一个足够优先执行的异常,处理器会唤醒。 另外,如果 SYSCTRL 寄存器的 SEVONPEND 位置位,任何新挂起的中断,即使该中断被禁止或没 有足够的优先级执行,都会触发一个事件并唤醒处理器。关于 SYSCTRL 的更多信息,参见 150页。 指令集总结 该处理器执行一个 Thumb 指令集版本。表 2-13 在 111页 列出了所支持的指令。 注意: 在 表 2-13 在 111页 中: ■ 尖括号 <> 包含了操作数的复用形式 ■ 大括号 {} 包含了可选的操作数 ■ 操作数列是不全面的 ■ Op2 是第二操作数,它可以是一个寄存器,也可以是一个常数。 ■ 大部分指令可以使用一个可选的状态码后缀 关于指令和操作数的更多信息,参见 “Cortex™-M3 Instruction Set Technical User's Manual”。 表 2-13. Cortex-M3 指令摘要 助记符 ADC, ADCS ADD, ADDS ADD, ADDW ADR AND, ANDS ASR, ASRS B BFC BFI BIC, BICS BKPT BL BLX BX CBNZ CBZ CLREX CLZ 操作数 {Rd,} Rn, Op2 {Rd,} Rn, Op2 {Rd,} Rn , #imm12 Rd, label {Rd,} Rn, Op2 Rd, Rm, label Rd, #lsb, #width Rd, Rn, #lsb, #width {Rd,} Rn, Op2 #imm label Rm Rm Rn, label Rn, label Rd, Rm 简要描述 带进位加法 加法 加法 载入PC相对地址 逻辑与 算术右移 转移 位域清零 位域插入 位清零 断点 带连接转移 带连接的间接转移 间接转移 比较非零转移 比较为零转移 清除互斥 计算前导0的数目 标志 N,Z,C,V N,Z,C,V N,Z,C,V N,Z,C N,Z,C N,Z,C - 一月 06, 2012 111 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-13. Cortex-M3 指令摘要(续) 助记符 CMN CMP CPSID CPSIE DMB DSB EOR, EORS ISB IT LDM LDMDB, LDMEA LDMFD, LDMIA LDR LDRB, LDRBT LDRD LDREX LDREXB LDREXH LDRH, LDRHT LDRSB, LDRSBT LDRSH, LDRSHT LDRT LSL, LSLS LSR, LSRS MLA MLS MOV, MOVS MOV, MOVW MOVT MRS MSR MUL, MULS MVN, MVNS NOP ORN, ORNS ORR, ORRS POP PUSH RBIT REV REV16 操作数 Rn, Op2 Rn, Op2 i i {Rd,} Rn, Op2 Rn{!}, reglist Rn{!}, reglist Rn{!}, reglist Rt, [Rn, #offset] Rt, [Rn, #offset] Rt, Rt2, [Rn, #offset] Rt, [Rn, #offset] Rt, [Rn] Rt, [Rn] Rt, [Rn, #offset] Rt, [Rn, #offset] Rt, [Rn, #offset] Rt, [Rn, #offset] Rd, Rm, Rd, Rm, Rd, Rn, Rm, Ra Rd, Rn, Rm, Ra Rd, Op2 Rd, #imm16 Rd, #imm16 Rd, spec_reg spec_reg, Rm {Rd,} Rn, Rm Rd, Op2 {Rd,} Rn, Op2 {Rd,} Rn, Op2 reglist reglist Rd, Rn Rd, Rn Rd, Rn 简要描述 负向比较 比较 改变处理器状态,禁止中断 改变处理器状态,启用中断 数据存储隔离 数据同步隔离 近位异或 指令同步隔离 If-Then 条件块 加载多个寄存器,加载后自增加 加载多个寄存器,加载前自减 加载多个寄存器,加载后自增加 从寄存器加载字 从寄存器中加载字节 从寄存器中加载双字节 加载寄存器,标记互斥 从寄存器加载字节,标记互斥 从寄存器加载半字,标记互斥 从寄存器加载半字 从寄存器加载带符号的字节 从寄存器加载带符号的半字 从寄存器加载字 逻辑左移 逻辑右移 乘加,32位结果 乘减,32位结果 加载 加载16位常数 加载高位 从特殊寄存器加载到通用寄存器 从通用寄存器加载到特殊寄存器 乘法,32位结果 取反加载 无操作 逻辑或取反 逻辑或 从堆栈中弹出到寄存器 将寄存器值压入堆栈 位反转 在一个字中反转字节顺序 在每个半字中反转字节顺序 标志 N,Z,C,V N,Z,C,V N,Z,C N,Z,C N,Z,C N,Z,C N,Z,C N,Z,C,V N,Z N,Z,C N,Z,C N,Z,C - 112 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 2-13. Cortex-M3 指令摘要(续) 助记符 REVSH ROR, RORS RRX, RRXS RSB, RSBS SBC, SBCS SBFX SDIV SEV SMLAL SMULL SSAT STM STMDB, STMEA STMFD, STMIA STR STRB, STRBT STRD STREX STREXB STREXH STRH, STRHT STRSB, STRSBT STRSH, STRSHT STRT SUB, SUBS SUB, SUBW SVC SXTB SXTH TBB TBH TEQ TST UBFX UDIV UMLAL 操作数 Rd, Rn Rd, Rm, Rd, Rm {Rd,} Rn, Op2 {Rd,} Rn, Op2 Rd, Rn, #lsb, #width {Rd,} Rn, Rm RdLo, RdHi, Rn, Rm RdLo, RdHi, Rn, Rm Rd, #n, Rm {,shift #s} Rn{!}, reglist Rn{!}, reglist Rn{!}, reglist Rt, [Rn {, #offset}] Rt, [Rn {, #offset}] Rt, Rt2, [Rn {, #offset}] Rt, Rt, [Rn {, #offset}] Rd, Rt, [Rn] Rd, Rt, [Rn] Rt, [Rn {, #offset}] Rt, [Rn {, #offset}] Rt, [Rn {, #offset}] Rt, [Rn {, #offset}] {Rd,} Rn, Op2 {Rd,} Rn, #imm12 #imm {Rd,} Rm {,ROR #n} {Rd,} Rm {,ROR #n} [Rn, Rm] [Rn, Rm, LSL #1] Rn, Op2 Rn, Op2 Rd, Rn, #lsb, #width {Rd,} Rn, Rm RdLo, RdHi, Rn, Rm UMULL USAT UXTB UXTH USAT RdLo, RdHi, Rn, Rm Rd, #n, Rm {,shift #s} {Rd,} Rm, {,ROR #n} {Rd,} Rm, {,ROR #n} Rd, #n, Rm {,shift #s} 简要描述 标志 反转低半字的字节顺序,带符号扩展 - 循环右移 N,Z,C 带进位的循环右移 N,Z,C 反向减法 N,Z,C,V 带借位的减法 N,Z,C,V 带符号位域扩展 - 带符号除法 - 发送事件 - 带符号乘加 (32 x 32 + 64), 64 位结果 - 带符号乘法 (32x32), 64位结果 - 带符号的饱和运算 Q 保存多个寄存器,保存后自增加 - 保存多个寄存器,保存前自减 - 保存多个寄存器,保存后自增加 - 保存寄存器字 - 保存寄存器字节 - 保存寄存器双字 - 在互斥状态保存寄存器 - 在互斥状态保存寄存器字节 - 在互斥状态保存寄存器半字 - 保存寄存器半字 - 保存寄存器带符号字节 - 保存寄存器带符号半字 - 保存寄存器字 - 减法 N,Z,C,V 减12位常数 N,Z,C,V 系统服务调用 - 带符号扩展一个字节 - 带符号扩展一个半字 - 查表转移字节 - 查表转移半字 - 测试是否相等 N,Z,C 测试 N,Z,C 无符号位域扩展 - 无符号除法 - 无符号乘加 (32 x 32 + 32 + 32), 64 位结 果 无符号乘法 (32x32), 64位结果 - 无符号饱和操作 Q 使用零扩展一个字节 - 使用零扩展一个半字 - 无符号饱和操作 Q 一月 06, 2012 113 Texas Instruments-生产数据 Cortex-M3 处理器 表 2-13. Cortex-M3 指令摘要(续) 助记符 UXTB UXTH WFE WFI 操作数 {Rd,} Rm {,ROR #n} {Rd,} Rm {,ROR #n} - 简要描述 无符号扩展一个字节 无符号扩展一个半字 等待事件 等待中断 标志 - 114 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 3 3.1 3.1.1 Cortex-M3 外设 本章描述实施 Stellaris® (Cortex-M3 处理器外设)的信息,包括: ■ SysTick (见第 115 页) 提供一个简单易用、配置灵活的24位单调递减计数器。该计数器具有写入即清零、过零自动重载 等特性。 ■ 嵌套式向量化中断控制器 (NVIC) (见第 116 页) – 实现异常及中断的快速响应处理 – 控制电源管理 – 实现系统控制寄存器 ■ 系统控制模块(SCB) (见第 117 页) 可提供系统构成信息,并进行系统控制,包括系统异常的配置、控制以及上报。 ■ 存储器保护单元(MPU) (见第 117 页) 支持标准的ARMv7受保护存储器系统架构(PMSA)模型。MPU提供保护区支持,重叠保护区, 访问权限和导出存储属性到系统。 表 3-1 在 115页 显示专用外设总线(PPB)的地址映射。某些外设寄存器空间还会进一步划分为两 个区,在表中分别列为两组地址。 表 3-1. 内核外设寄存器区域 地址 0xE000.E010-0xE000.E01F 0xE000.E100-0xE000.E4EF 0xE000.EF00-0xE000.EF03 0xE000.E008-0xE000.E00F 0xE000.ED00-0xE000.ED3F 0xE000.ED90-0xE000.EDB8 内核外设 系统定时器 嵌套向量中断控制器 系统控制模块 存储器保护单元 描述(参见第 ... 页) 115 116 117 117 功能描述 本章提供关于 Stellaris 实施(Cortex-M3 处理器外设)的信息:SysTick、NVIC、SCB 和 MPU。 系统定时器(SysTick) Cortex-M3 包括一个集成的系统定时器 SysTick。该定时器提供简单易用、控制灵活的 24 位递减计 数器,具有写入即清零、过零自动重载等功能。该计数器的用途广泛,举例来说,可以: ■ 用作RTOS的节拍定时器,按照可编程的频率(例如100Hz)定时触发,调用系统定时器服务子 程序。 ■ 用作高速报警定时器,采用系统时钟作为时钟源。 ■ 用作频率可变的报警或信号定时器 - 其持续时间取决于所采用的参考时钟源以及计数器的动态 范围。 ■ 用作简单计数器,测量任务的完成时刻、总体耗时等等。 一月 06, 2012 115 Texas Instruments-生产数据 Cortex-M3 外设 3.1.2 3.1.2.1 ■ 用于实现基于失配/匹配周期的内部时钟源控制。STCTRL 控制及状态寄存器的 COUNT 标志位 可以用于判定某个动作是否在指定的时间内完成,以此作为动态时钟管理控制循环的一部分。 定时器包含以下 3 个寄存器: ■ SysTick 控制和状态 (STCTRL):控制和状态计数器用来配置其时钟、启用计数器、启用 SysTick 中断以及确定计数器状态。 ■ SysTick 重载值 (STRELOAD):计数器的重载值,用来提供计数器的重载值。 ■ SysTick 当前值 (STCURRENT):计数器的当前值。 启用定时器后,计数器将在每个时钟递减一次,从重载值逐个递减到 0,之后在下一个时钟沿重新 装入 STRELOAD 寄存器中的值,然后在后续时钟上递减。清空 STRELOAD 寄存器将在下次重载 时禁用计数器。计数器达到 0 时,已设置 COUNT 状态位。读取后,COUNT 位将清零。 写入 STCURRENT 寄存器将清除此寄存器以及 COUNT 状态位。这个写操作并不会触发 SysTick 异 常逻辑。读取该寄存器时,当前值是访问该寄存器时寄存器的值。 SysTick 计数器是按照系统时钟运行的。如果在低功耗模式下停止提供该时钟信号,则 SysTick 计 数器将停止。确保软件使用字对齐访问来访问 SysTick 寄存器。 注意: 在调试过程中处理器暂停时,此计数器不会递减。 嵌套向量中断控制器(NVIC) 本节描述嵌套向量中断控制器(NVIC)及其使用的寄存器。NVIC 支持: ■ 53 中断。 ■ 每个中断的优先级均可编程,取值范围0~7。优先级数字越大则其优先级越低,也就是说0代表最 高优先级; ■ 可实现异常及中断的快速响应处理; ■ 中断信号可以是电平检测或脉冲检测; ■ 动态重设中断优先级; ■ 优先级可分组,划分为分组优先级域以及子优先级域; ■ 支持咬尾中断; ■ 提供一个外部的不可屏蔽中断(NMI)。 处理器在异常入口处能够自动将状态入栈,在退出异常时能够自动将状态出栈。这个过程是处理器 自行完成的、无需多余的指令开销,因此可快速响应异常并进行处理。 电平式中断及脉冲式中断 处理器支持电平式中断及脉冲式中断。脉冲式中断通常又称为边沿触发中断。 对于电平式中断而言,只要外设产生中断信号就会始终保持处于触发状态,直到外设中断信号复原 后才不再触发。一般来说这需要ISR(中断服务子程序)对外设进行操作,使得外设不再产生中断请 求信号。脉冲中断是在处理器时钟的上升沿同步采样的中断信号。为了确保 NVIC 能够检测到中断, 外设所产生的中断信号必须保持至少一个时钟周期,在此期间 NVIC 可检测到脉冲并锁存中断。 116 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 3.1.2.2 3.1.3 3.1.4 处理器进入 ISR 后,将自动清除该中断的挂起状态(参见 “中断的硬件控制及软件控制” 在 117页以 了解更多信息)。对于电平式中断,如果处理器从 ISR 返回后,中断信号仍未复原,则中断将再次 挂起,于是处理器必须再次运行其 ISR。因此,外设可以像这样保持中断信号持续享用服务,直到 其不再需要服务为止。 中断的硬件控制及软件控制 Cortex-M3 锁存所有中断。当满足以下条件之一,外设中断即变为挂起状态: ■ NVIC检测到某个中断信号为高电平,并且该中断为未激活状态; ■ NVIC检测到某个中断信号的上升沿; ■ 软件写入相应的中断设置暂挂寄存器位,或者写入软件触发中断 (SWTRIG) 寄存器使软件产生的 中断变为暂挂状态。请参阅 133页 上 PEND0 寄存器中的 INT 位或 141页 上的 SWTRIG。 中断挂起后将保持挂起状态,直到满足以下条件之一: ■ 处理器进入该中断的 ISR,将中断状态由挂起改为已激活。然后: – 对于电平式中断,当处理器从ISR返回后,NVIC将再次采样中断信号。假如仍然检测到中断 信号,那么中断状态将再次变为挂起,使得处理器立即重新进入该ISR。否则,中断状态将变 为未激活。 – 对于脉冲式中断,处理器时刻监视着中断信号的状态。只要检测到中断脉冲信号就会将中断 状态改为挂起并激活。在此情况下,当处理器从ISR返回后,中断状态将再次变为挂起,使得 处理器立即重新进入该ISR。 如果当处理器在ISR内期间并未产生中断脉冲信号,那么当处理器从ISR返回后,中断状态将 变为未激活。 ■ 软件对中断清除挂起寄存器中的相应标志位执行写操作 – 对于电平式中断,若仍旧产生中断信号,那么中断状态将保持不变。否则,中断状态将变为 未激活。 – 对于脉冲式中断,假如中断状态是挂起并激活,则将变为未激活。 系统控制模块(SCB) 系统控制模块提供系统构成信息,并能实现系统控制功能,包括系统异常的配置、控制以及上报。 存储器保护单元(MPU) 本节介绍存储器保护单元(MPU)。MPU将存储器映射空间划分为若干个存储器区,并分别规定每 一个存储器区的起始地址、大小、访问权限以及存储属性。MPU支持为每一个存储器区分别定义其 属性设置,支持重叠区的设置,此外还能将存储属性导出到系统。 存储属性影响对该存储器区进行访问时的表现。Cortex-M3 MPU 定义八个单独存储器区(0-7)以 及背景区。 存储器区出现重叠时,存储器访问将由编号最大存储器区的属性决定。例如,第7存储器区始终优先 于其它存储器区,因此一旦与其它区发生重叠时,都将以第7区的存储属性为准。 背景区的存储器访问属性与默认的存储器映射相同,但只允许特权级软件依此进行访问。 Cortex-M3 MPU 存储器映射是统一的,表示指令访问和数据访问都是共用相同的存储器区设置。 一月 06, 2012 117 Texas Instruments-生产数据 Cortex-M3 外设 3.1.4.1 假如程序试图访问某个地址,而该地址被MPU设置为禁止访问,那么处理器将产生一个存储管理故 障,并由此触发故障异常。这个异常可能会导致操作系统环境下某个进程终止运行。在操作系统环 境下,操作系统内核能够按照进程的实际需求来动态更新MPU区的设置。一般来说,嵌入式操作系 统都需要通过MPU实现存储器保护。 MPU 区的配置是基于存储器类型的(参见 “存储器区、类型和属性” 在 95页以了解更多信息)。 表 3-2 在 118页 显示 MPU 区的可能属性。请参阅 “一个 Stellaris微控制器的 MPU 配置”一节 在 122页 以了解关于将微控制器实施编程的准则。 表 3-2. 存储器属性摘要 存储器类型 严格顺序 设备 普通 描述 对严格顺序存储器的所有访问必须按照程序顺序进行。 存储器映射外部设备 普通存储器 为避免出现无法预料的执行结果,如果某些中断的处理函数可能访问某存储器区,那么在更新该存 储器区的属性之前,应当先关闭这些中断。 在访问MPU寄存器时,应确保软件按照正确的宽度进行对齐访问: ■ 除了 MPU 区属性及大小 (MPUATTR) 寄存器,必须以字对齐访问来访问所有 MPU 寄存器。 ■ MPUATTR 寄存器可按字节对齐、半字对齐或字对齐进行访问。 处理器不支持对MPU寄存器进行未对齐访问。 在配置MPU时,由于MPU可能曾经被编程过,因此所有当前不用的存储器区都应当禁用,防止存储 器区的旧设置对当前更新后的MPU设置产生不良影响。 更新单个MPU区 为了更新 MPU 区域的属性,必须更新 MPU 区编号 (MPUNUMBER)、MPU 区基地址 (MPUBASE) 和 MPUATTR 寄存器。用户可以分别编程各个寄存器,也可以利用多字写操作来同时编程所有寄存 器。您可以使用 MPUBASEx 和 MPUATTRx 别名,通过使用 STM 指令同时编程最多 4 个区。 采用单字写操作,更新单个MPU区 下面的例程可以完成单个MPU区的配置: ; R1 = region number ; R2 = size/enable ; R3 = attributes ; R4 = address LDR R0,=MPUNUMBER STR R1, [R0, #0x0] STR R4, [R0, #0x4] STRH R2, [R0, #0x8] STRH R3, [R0, #0xA] ; 0xE000ED98, MPU region number register ; Region Number ; Region Base Address ; Region Size and Enable ; Region Attribute 假如之前启用了某个存储器区,又需要更改其设置,那么在向MPU写入新的设置之前应当先将此存 储器区禁用。例如: ; R1 = region number ; R2 = size/enable ; R3 = attributes 118 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 ; R4 = address LDR R0,=MPUNUMBER STR R1, [R0, #0x0] BIC R2, R2, #1 STRH R2, [R0, #0x8] STR R4, [R0, #0x4] STRH R3, [R0, #0xA] ORR R2, #1 STRH R2, [R0, #0x8] ; 0xE000ED98, MPU region number register ; Region Number ; Disable ; Region Size and Enable ; Region Base Address ; Region Attribute ; Enable ; Region Size and Enable 在以下情况下,软件中必须采用存储器隔离指令: ■ 假如在修改MPU配置时,可能存在某些仍在进行中的存储器传输过程(例如缓冲式写操作),则 该操作将可能受到MPU配置改变的影响。 ■ 此时在配置MPU之前必须采用存储器隔离指令。 假如进入异常处理程序后立即开始配置MPU,或配置完MPU后立即从异常中返回,那么可以不采用 存储器隔离指令,因为异常入口和异常出口已经能够实现相当于存储器隔离指令的保护机制。 在配置MPU期间,并不需要软件再增加存储器隔离指令,这是因为访问MPU时必须通过私有外设总 线(PPB),而PPB是严格顺序存储器区。 例如,如果所有存储器访问行为应该在编程顺序后立即生效,则应该使用 DSB 指令和 ISB 指令。 更改 MPU 设置后需要 DSB,例如上下文切换的结尾。如果对 MPU 存储器区编程的代码是通过分支 语句或调用语句输入的,那么需要 ISB。如果编程序列是从异常返回之前或进入异常之后输入的, 那么无需 ISB。 采用多字写操作,更新单个MPU区 取决于写入信息如何分割,MPU也可以直接采用多字写操作进行编程。考虑以下重新编程: ; R1 = region number ; R2 = address ; R3 = size, attributes in one LDR R0, =MPUNUMBER ; 0xE000ED98, MPU region number register STR R1, [R0, #0x0] ; Region Number STR R2, [R0, #0x4] ; Region Base Address STR R3, [R0, #0x8] ; Region Attribute, Size and Enable STM 指令可以用于优化以下项: ; R1 = region number ; R2 = address ; R3 = size, attributes in one LDR R0, =MPUNUMBER ; 0xE000ED98, MPU region number register STM R0, {R1-R3} ; Region number, address, attribute, size and enable 此操作可以按预整合信息的两个字来完成,表示 MPU 区基地址 (MPUBASE) 寄存器(请参阅 173 页)包含所需区域号且具有 VALID 位集。这种方式比较适合静态配置数据的应用场合,例如对于 Bootloader,就能够进一步精简其大小。 ; R1 = address and region number in one ; R2 = size and attributes in one LDR R0, =MPUBASE ; 0xE000ED9C, MPU Region Base register 一月 06, 2012 119 Texas Instruments-生产数据 Cortex-M3 外设 3.1.4.2 STR R1, [R0, #0x0] ; Region base address and region number combined ; with VALID (bit 4) set STR R2, [R0, #0x4] ; Region Attribute, Size and Enable STM 指令可以用于优化: ; R1 = address and region number in one ; R2 = size and attributes in one LDR R0,=MPUBASE ; 0xE000ED9C, MPU Region Base register STM R0, {R1-R2} ; Region base address, region number and VALID bit, ; and Region Attribute, Size and Enable 存储子区 任何不小于256字节的存储器区还能进一步均分为8个存储子区。在 MPU 区属性及大小 (MPUATTR) 寄存器的 SRD 域中设置相应位(请参阅 175页)以禁用存储子区。SRD 域的最低位控制首个子区, 最高位控制最后子区。禁用某个子区表示另一区域重叠禁用的范围匹配。如果禁用某个子区后,也 没有其它已启用的存储器区重叠在该区域上,那么MPU会产生一个故障。 如果存储器区的大小为32、64或128字节,是无法再划分为子区的。对于这些大小的区域,SRD 域 必须配置为 0x00,否则 MPU 行为将无法预测。 SRD的用法示例 在下面的例子中,两个存储器区具有相同的基地址,因此它们相互重叠。第1个区的大小为128kB, 第2个区的大小为512kB。为了确保来自第一个区域的属性应用于第一个 128 KB 区域,请将第二个 区域的 SRD 域配置为 0x03 以禁用前两个子区域,如 图 3-1 在 120页 所示。 图 3-1. SRD 使用示例 两个区的基地址 区域 1 带有子区域的 区域 2 禁用的子区域 禁用的子区域 从基地址的 偏移量 512 KB 448 KB 384 KB 320 KB 256 KB 192 KB 128 KB 64 KB 0 MPU访问权限属性 MPUATTR 寄存器的访问权限位 TEX、S、C、B、AP 和 XN 控制对相应存储器区域的访问。假如试 图访问某个区域,而该区域并未开放相关权限,那么MPU将会产生一个访问权限故障。 表 3-3 在 120页 显示 TEX、C、B, 和 S 访问权限位的编码。出于完整方面的考虑,显示所有编码, 不过目前的 Cortex-M3 实施不支持高速缓存或可共享性的概念。请参阅 “一个 Stellaris微控制器的 MPU 配置”一节 在 122页 以了解关于将 MPU 编程以实施Stellaris 。 表 3-3. TEX、S、C 和 B 位域编码 TEX 000b 000 S C B xa 0 0 xa 0 1 存储器类型 严格顺序 设备 可共享性 可共享 可共享 其他属性 - 120 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 3-3. TEX、S、C 和 B 位域编码(续) TEX S C B 存储器类型 000 0 1 0 普通 000 1 1 0 普通 000 0 1 1 普通 000 1 1 1 普通 001 0 0 0 普通 001 1 0 0 普通 001 xa 0 1 保留的编码 001 xa 1 0 保留的编码 001 0 1 1 普通 001 1 1 1 普通 010 xa 0 0 设备 010 xa 0 1 保留的编码 010 xa 1 xa 保留的编码 1BB 0 A A 普通 1BB 1 A A 普通 a. MPU 将忽略此位的值。 可共享性 不可共享 可共享 不可共享 可共享 不可共享 可共享 不可共享 可共享 不可共享 不可共享 可共享 其他属性 外部及内部均为完全写 入式。无写分配。 外部及内部均不可高速 缓冲。 外部及内部均为回写 式。写及读均分配 不可共享的设备。 高速缓存存储器(BB 代 表外部策略,AA 代表内 部策略)。 关于 AA 和 BB 位的编 码,参见 表 3-4。 表 3-4 在 121页 显示存储器属性编码(TEX 值在范围 0x4-0x7 中)的高速缓存策略。 表 3-4. 存储器属性编码对应的高速缓存策略 编码(AA 或 BB) 00 01 10 11 相应的高速缓存策略 不可高速缓存 回写式,写及读均分配 完全写入式,无写分配 回写式,无写分配 表 3-5 在 121页 显示 MPUATTR 寄存器中的 AP 编码,这些编码定义特权软件和非特权软件的访问权 限。 表 3-5. AP 位域编码 AP 位域 000 001 010 011 100 101 110 111 特权权限 无访问权 R/W R/W R/W 无法预测 RO RO RO 非特权权限 无访问权 无访问权 RO R/W 无法预测 无访问权 RO RO 描述 任何访问操作都会产生权限故障。 仅特权级软件才拥有访问权限。 非特权级软件的写操作会导致产生一个访问权限故障。 完全访问权 保留。 仅特权级软件才拥有读取权限。 特权级软件或非特权级软件均拥有只读权限。 特权级软件或非特权级软件均拥有只读权限。 一月 06, 2012 121 Texas Instruments-生产数据 Cortex-M3 外设 一个 Stellaris微控制器的 MPU 配置 Stellaris 微控制器只有一个处理器,并且不带高速缓存。因此,应按 表 3-6 在 122页 中所示将 MPU 编程。 表 3-6. Stellaris 微控制器的存储器区属性 存储器区 Flash 存储器 内部 SRAM 外部 SRAM 外设 TEX 000b 000b 000b 000b S C B 存储器类型和属性 0 1 0 普通存储器,不可共享,完全写入式 1 1 0 普通存储器,可共享,完全写入式 1 1 1 普通存储器,可共享,回写式,写分配 1 0 1 设备存储器,可共享 3.1.4.3 在当前的 Stellaris 微控制器的实施中,可共享性和高速缓冲策略属性对系统行为并无影响。不过, 如果正确配置这些MPU区属性,有益于充分保障代码的可移植性。上表给出的都是常见配置的参考 值。 MPU不匹配 若某个访问操作违反了 MPU 权限,处理器将会产生存储器管理故障(请参阅 “异常和中断” 在 93页 以了解更多信息)。MFAULTSTAT 寄存器指示故障原因。请参阅 160页 以了解更多信息。 3.2 寄存器映射 表 3-7 在 122页 列出 Cortex-M3 外设 SysTick、NVICSCB 和 MPU 寄存器。下表中的“偏移量”一 列代表该寄存器相对于内核级外设基础地址的十六进制地址增量: 0xE000.E000。 注意: 未使用的寄存器空间都是为将来或内部使用保留的。软件不应该调整任何保留的存储器地 址。 表 3-7. 外设 寄存器映射 偏移量 名称 类型 系统定时器(SysTick)寄存器 0x010 STCTRL R/W 0x014 STRELOAD R/W 0x018 STCURRENT R/WC 嵌套向量中断控制器(NVIC)寄存器 0x100 EN0 R/W 0x104 EN1 R/W 0x180 DIS0 R/W 0x184 DIS1 R/W 0x200 PEND0 R/W 0x204 PEND1 R/W 0x280 UNPEND0 R/W 0x284 UNPEND1 R/W 0x300 ACTIVE0 RO 复位 描述 0x0000.0004 0x0000.0000 0x0000.0000 SysTick 控制及状态寄存器 SysTick 重载值寄存器 SysTick 当前值寄存器 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 中断 0-31 集启用寄存器 中断 32-54 设置启用寄存器 中断 0-31 清除启用寄存器 中断 32-54 清除启用寄存器 中断 0-31 置位暂挂寄存器 中断 32-54 置位暂挂寄存器 中断 0-31 清除暂挂寄存器 中断 32-54 清除暂挂寄存器 中断 0-31 活动位寄存器 见页面 125 127 128 129 130 131 132 133 134 135 136 137 122 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 3-7. 外设 寄存器映射(续) 偏移量 名称 类型 0x304 ACTIVE1 RO 0x400 PRI0 R/W 0x404 PRI1 R/W 0x408 PRI2 R/W 0x40C PRI3 R/W 0x410 PRI4 R/W 0x414 PRI5 R/W 0x418 PRI6 R/W 0x41C PRI7 R/W 0x420 PRI8 R/W 0x424 PRI9 R/W 0x428 PRI10 R/W 0x42C PRI11 R/W 0x430 PRI12 R/W 0x434 PRI13 R/W 0xF00 SWTRIG WO 系统控制模块(SCB)寄存器 0x008 ACTLR R/W 0xD00 CPUID RO 0xD04 INTCTRL R/W 0xD08 VTABLE R/W 0xD0C APINT R/W 0xD10 SYSCTRL R/W 0xD14 CFGCTRL R/W 0xD18 SYSPRI1 R/W 0xD1C SYSPRI2 R/W 0xD20 SYSPRI3 R/W 0xD24 SYSHNDCTRL R/W 0xD28 FAULTSTAT R/W1C 0xD2C HFAULTSTAT R/W1C 0xD34 MMADDR R/W 0xD38 FAULTADDR R/W 复位 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x412F.C230 0x0000.0000 0x0000.0000 0xFA05.0000 0x0000.0000 0x0000.0200 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 - 描述 中断 32-54 活动位寄存器 中断 0-3 优先级寄存器 中断4-7 优先级寄存器 中断 8-11 优先级寄存器 中断 12-15 优先级寄存器 中断 16-19 优先级寄存器 中断 20-23 优先级寄存器 中断 24-27 优先级寄存器 中断 28-31 优先级寄存器 中断 32-35 优先级寄存器 中断 36-39 优先级寄存器 中断 40-43 优先级寄存器 中断 44-47 优先级寄存器 中断 48-51 优先级寄存器 中断 52-54 优先级寄存器 软件触发中断寄存器 辅助控制寄存器 CPU ID 基础寄存器 中断控制及状态寄存器 向量表寄存器 应用程序中断及复位控制寄存器 系统控制寄存器 配置及控制寄存器 系统处理程序优先级寄存器 1 系统处理程序优先级寄存器 2 系统处理程序优先级寄存器 3 系统处理程序控制及状态寄存器 可配置故障状态寄存器 硬故障状态寄存器 存储器管理故障地址寄存器 总线故障地址寄存器 见页面 138 139 139 139 139 139 139 139 139 139 139 139 139 139 139 141 142 143 144 147 148 150 152 154 155 156 157 160 166 167 168 一月 06, 2012 123 Texas Instruments-生产数据 Cortex-M3 外设 表 3-7. 外设 寄存器映射(续) 偏移量 名称 类型 存储器保护单元(MPU)寄存器 0xD90 MPUTYPE RO 0xD94 MPUCTRL R/W 0xD98 MPUNUMBER R/W 0xD9C MPUBASE R/W 0xDA0 MPUATTR R/W 0xDA4 MPUBASE1 R/W 0xDA8 MPUATTR1 R/W 0xDAC MPUBASE2 R/W 0xDB0 MPUATTR2 R/W 0xDB4 MPUBASE3 R/W 0xDB8 MPUATTR3 R/W 复位 描述 0x0000.0800 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 MPU 类型寄存器 MPU 控制寄存器 MPU 区编号寄存器 MPU 区基地址寄存器 MPU 区属性和大小寄存器 MPU 区基地址别名寄存器 1 MPU 区属性和大小别名寄存器 1 MPU 区基地址别名寄存器 2 MPU 区属性和大小别名寄存器 2 MPU 区基地址别名寄存器 3 MPU 区属性和大小别名寄存器 3 3.3 系统定时器(SysTick)寄存器描述 本节按照地址偏移量由小到大的顺序依次详细介绍系统定时器的各寄存器。 见页面 169 170 172 173 175 173 175 173 175 173 175 124 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 1: SysTick 控制及状态寄存器(STCTRL),偏移量 0x010 注意: 本寄存器只能在特权模式下访问。 SysTick STCTRL 寄存器启用 SysTick 功能。 SysTick 控制及状态寄存器 (STCTRL) 基址 0xE000.E000 偏移量 0x010 类型 R/W, 复位 0x0000.0004 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 COUNT 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CLK_SRC INTEN ENABLE 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 位/域 31:17 16 15:3 2 1 名称 保留 COUNT 保留 CLK_SRC INTEN 类型 RO RO RO R/W R/W 复位 0x000 0 0x000 1 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 计数标志 值 描述 0 自上一次读取此位之后,SysTick 定时器尚未计数到 0。 1 自上一次读取本标志位之后,系统定时器已计数到 0。 读取寄存器或者如果向 STCURRENT 寄存器写入任何值,会清空该位。 如果调试器使用 DAP 读取,仅在 AHB-AP 控制寄存器中的 MasterType 位清零时,该位才清零。否则,COUNT 位不会因为调试器的读操作而改 变。请参阅 “ARM® Debug Interface V5 Architecture Specification” 以了解关于 MasterType 的更多信息。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 时钟源 值 描述 0 外部参考时钟。(没有为 Stellaris微控制器实施。) 1 系统时钟。 因为尚未实施外部参考时钟,所以必须设置该位,SysTick 才能运作。 中断启用 值 描述 0 禁用中断产生软件可以使用 COUNT 位来确定计数器是否曾 达到 0。 1 SysTick 计数到 0 时,向 NVIC 产生一个中断。 一月 06, 2012 125 Texas Instruments-生产数据 Cortex-M3 外设 位/域 0 名称 ENABLE 类型 R/W 复位 0 描述 启用 值 0 1 描述 禁用计数器。 使 SysTick 以多次触发方式进行操作。即,计数器装入 RELOAD 值并开始递减计数。达到 0 时,COUNT 位将置位, 如果由 INTEN 启用,将生成一个中断。然后,计数器重新装 入 RELOAD 值并开始计数。 126 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 2: SysTick 重载值寄存器(STRELOAD),偏移量 0x014 注意: 本寄存器只能在特权模式下访问。 STRELOAD 寄存器指定在计数器达到 0 的时候要装入 SysTick 当前值 (STCURRENT) 寄存器的开 始值。开始值可以在 0x1 和 0x00FF.FFFF 之间。因为从 1 计数到 0 时激活了 SysTick 中断和 COUNT 位,所以开始值 0 是可能的,但是没有效果。 系统定时器按照自动重载方式工作,每N+1个时钟动作一次(N的取值范围为0x0000 0001~0x00FF FFFF),如是周而复始、永不停歇。例如,如果每 100 次时钟脉冲就需要一次节拍中断,则必须将 99 写入 RELOAD 域。 SysTick 重载值寄存器 (STRELOAD) 基址 0xE000.E000 偏移量 0x014 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 RELOAD 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RELOAD 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:24 23:0 名称 保留 RELOAD 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 重载值 在计数器达到 0 时要装入 SysTick 当前值 (STCURRENT) 寄存器的值。 一月 06, 2012 127 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 3: SysTick 当前值寄存器(STCURRENT),偏移量 0x018 注意: 本寄存器只能在特权模式下访问。 STCURRENT 寄存器包含 SysTick 计数器的当前值。 SysTick 当前值寄存器 (STCURRENT) 基址 0xE000.E000 偏移量 0x018 类型 R/WC, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 CURRENT 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CURRENT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:24 23:0 名称 保留 CURRENT 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 当前值 该域包含访问寄存器时的当前值。没有提供读-修改-写保护,所以在更 改时要特别注意。 该寄存器是写清零。向该寄存器写入任意值都会将寄存器清零。清空此 寄存器还会清零 STCTRL 寄存器的 COUNT 位。 3.4 NVIC寄存器描述 本节按照地址偏移量由小到大的顺序依次详细介绍NVIC的各寄存器。 NVIC 寄存器只能在特权模式下才能完全访问,在非特权模式下启用配置和控制 (CFGCTRL) 寄存器 来暂挂中断。对其它NVIC寄存器的访问都会导致产生总线故障。 软件访问寄存器时应确保其对齐正确。处理器不支持对NVIC寄存器执行非对齐访问。 即使某个中断已被禁用,该中断也能够进入挂起状态。 在对 VTABLE 寄存器编程以重定位向量表之前,应确保已经为故障处理程序 NMI 以及所有已启用 的异常(例如中断)设置了新向量表的向量表条目。关于更多信息,请参阅 147页。 128 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 4: 中断 0-31 集启用寄存器(EN0),偏移量 0x100 注意: 本寄存器只能在特权模式下访问。 EN0 寄存器启用中断并显示启用了哪些中断。第 0 位对应于中断 0;第 31 位对应于中断 31。 请参阅 表 2-9 在 103页 以了解中断分配。 假如某个已挂起的中断被启用,NVIC将按照其优先级激活中断。假如某个中断未启用,那么当中断 源产生中断信号后,虽然该中断状态变为挂起,但NVIC永远不会按照其优先级将其激活。 中断 0-31 集启用寄存器 (EN0) 基址 0xE000.E000 偏移量 0x100 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 INT 类型 复位 描述 R/W 0x0000.0000 中断启用 值 描述 0 读出为0,代表该中断已被禁用。 写入0时,无意义。 1 读出为1,代表该中断已经启用。 写入1时,将启用对应中断。 只能通过在 DISn 寄存器中设置相应的 INT[n] 位来清除某个位。 一月 06, 2012 129 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 5: 中断 32-54 设置启用寄存器(EN1),偏移量 0x104 注意: 本寄存器只能在特权模式下访问。 EN1 寄存器启用中断并显示启用了哪些中断。第 0 位对应于中断 32;第 22 位对应于中断 54。请 参阅 表 2-9 在 103页 以了解中断分配。 假如某个已挂起的中断被启用,NVIC将按照其优先级激活中断。假如某个中断未启用,那么当中断 源产生中断信号后,虽然该中断状态变为挂起,但NVIC永远不会按照其优先级将其激活。 中断 32-54 设置启用寄存器 (EN1) 基址 0xE000.E000 偏移量 0x104 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 INT 类型 RO RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:23 22:0 名称 保留 INT 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 中断启用 值 描述 0 读出为0,代表该中断已被禁用。 写入0时,无意义。 1 读出为1,代表该中断已经启用。 写入1时,将启用对应中断。 只能通过在 DIS1 寄存器中设置相应的 INT[n] 位来清除某个位。 130 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 6: 中断 0-31 清除启用寄存器(DIS0),偏移量 0x180 注意: 本寄存器只能在特权模式下访问。 DIS0 寄存器禁用中断。第 0 位对应于中断 0;第 31 位对应于中断 31。 请参阅 表 2-9 在 103页 以了解中断分配。 中断 0-31 清除启用寄存器 (DIS0) 基址 0xE000.E000 偏移量 0x180 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 INT 类型 复位 描述 R/W 0x0000.0000 中断禁用 值 描述 0 读出为0,代表该中断已被禁用。 写入0时,无意义。 1 读出为1,代表该中断已经启用。 写入时,清除 EN0 寄存器中相应的 INT[n] 位即可禁用中断 [n]。 一月 06, 2012 131 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 7: 中断 32-54 清除启用寄存器(DIS1),偏移量 0x184 注意: 本寄存器只能在特权模式下访问。 DIS1 寄存器禁用中断。第 0 位对应于中断 32;第 22 位对应于中断 54。请参阅 表 2-9 在 103页 以 了解中断分配。 中断 32-54 清除启用寄存器 (DIS1) 基址 0xE000.E000 偏移量 0x184 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 INT 类型 RO RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:23 22:0 名称 保留 INT 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 中断禁用 值 描述 0 读出为0,代表该中断已被禁用。 写入0时,无意义。 1 读出为1,代表该中断已经启用。 写入时,清除 EN1 寄存器中相应的 INT[n] 位即可禁用中断 [n]。 132 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 8: 中断 0-31 置位暂挂寄存器(PEND0),偏移量 0x200 注意: 本寄存器只能在特权模式下访问。 PEND0 寄存器用于强制将中断置为暂挂状态,并显示哪些中断处于暂挂状态。第 0 位对应于中断 0;第 31 位对应于中断 31。 请参阅 表 2-9 在 103页 以了解中断分配。 中断 0-31 置位暂挂寄存器 (PEND0) 基址 0xE000.E000 偏移量 0x200 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 INT 类型 复位 描述 R/W 0x0000.0000 中断置位暂挂 值 描述 0 读出为0,代表该中断未挂起。 写入0时,无意义。 1 读出为1,代表该中断已挂起。 写入1时,对应中断的状态将变为挂起,即使该中断已被禁 用也是如此。 如果对应的中断已经暂挂,那么该位置位将没有效果。 只能将 UNPEND0 寄存器中的相应 INT[n] 位置位来清除该位。 一月 06, 2012 133 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 9: 中断 32-54 置位暂挂寄存器(PEND1),偏移量 0x204 注意: 本寄存器只能在特权模式下访问。 PEND1 寄存器强制将中断置为暂挂状态并显示哪些中断处于暂挂状态。第 0 位对应于中断 32;第 22 位对应于中断 54。请参阅 表 2-9 在 103页 以了解中断分配。 中断 32-54 置位暂挂寄存器 (PEND1) 基址 0xE000.E000 偏移量 0x204 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 INT 类型 RO RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:23 22:0 名称 保留 INT 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 中断置位暂挂 值 描述 0 读出为0,代表该中断未挂起。 写入0时,无意义。 1 读出为1,代表该中断已挂起。 写入1时,对应中断的状态将变为挂起,即使该中断已被禁 用也是如此。 如果对应的中断已经暂挂,那么该位置位将没有效果。 只能将 UNPEND1 寄存器中的相应 INT[n] 位置位来清除该位。 134 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 10: 中断 0-31 清除暂挂寄存器(UNPEND0),偏移量 0x280 注意: 本寄存器只能在特权模式下访问。 UNPEND0 寄存器显示哪些中断处于暂挂状态并清除中断的暂挂状态。第 0 位对应于中断 0;第 31 位对应于中断 31。 请参阅 表 2-9 在 103页 以了解中断分配。 中断 0-31 清除暂挂寄存器 (UNPEND0) 基址 0xE000.E000 偏移量 0x280 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 INT 类型 复位 描述 R/W 0x0000.0000 中断清除暂挂 值 描述 0 读出为0,代表该中断未挂起。 写入0时,无意义。 1 读出为1,代表该中断已挂起。 写入时,清除 PEND0 寄存器中的相应 INT[n] 位,以便使中断 [n] 不再处于暂挂状态 如果某个中断已激活,那么写1将失去实际意义。 一月 06, 2012 135 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 11: 中断 32-54 清除暂挂寄存器(UNPEND1),偏移量 0x284 注意: 本寄存器只能在特权模式下访问。 UNPEND1 寄存器显示哪些中断处于暂挂状态,并清除中断的暂挂状态。第 0 位对应于中断 32;第 22 位对应于中断 54。请参阅 表 2-9 在 103页 以了解中断分配。 中断 32-54 清除暂挂寄存器 (UNPEND1) 基址 0xE000.E000 偏移量 0x284 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 INT 类型 RO RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:23 22:0 名称 保留 INT 类型 RO R/W 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 中断清除暂挂 值 描述 0 读出为0,代表该中断未挂起。 写入0时,无意义。 1 读出为1,代表该中断已挂起。 写入时,清除 PEND1 寄存器中的相应 INT[n] 位,以便使中断 [n] 不再处于暂挂状态 如果某个中断已激活,那么写1将失去实际意义。 136 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 12: 中断 0-31 活动位寄存器(ACTIVE0),偏移量 0x300 注意: 本寄存器只能在特权模式下访问。 ACTIVE0 寄存器指示哪些中断处于激活状态。第 0 位对应于中断 0;第 31 位对应于中断 31。 请参阅 表 2-9 在 103页 以了解中断分配。 小心 – 切勿手动将本寄存器中的位置位或清零。 中断 0-31 活动位寄存器 (ACTIVE0) 基址 0xE000.E000 偏移量 0x300 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INT 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 INT 类型 复位 描述 RO 0x0000.0000 中断激活 值 描述 0 对应中断未激活。 1 对应中断已激活,或处于激活并等待状态。 一月 06, 2012 137 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 13: 中断 32-54 活动位寄存器(ACTIVE1),偏移量 0x304 注意: 本寄存器只能在特权模式下访问。 ACTIVE1 寄存器指示哪些中断处于激活状态。第 0 位对应于中断 32;第 22 位对应于中断 54。请 参阅 表 2-9 在 103页 以了解中断分配。 小心 – 切勿手动将本寄存器中的位置位或清零。 中断 32-54 活动位寄存器 (ACTIVE1) 基址 0xE000.E000 偏移量 0x304 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 INT 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INT 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:23 22:0 名称 保留 INT 类型 RO RO 复位 描述 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00.0000 中断激活 值 描述 0 对应中断未激活。 1 对应中断已激活,或处于激活并等待状态。 138 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 14: 中断 0-3 优先级寄存器(PRI0),偏移量 0x400 寄存器 15: 中断4-7 优先级寄存器(PRI1),偏移量 0x404 寄存器 16: 中断 8-11 优先级寄存器(PRI2),偏移量 0x408 寄存器 17: 中断 12-15 优先级寄存器(PRI3),偏移量 0x40C 寄存器 18: 中断 16-19 优先级寄存器(PRI4),偏移量 0x410 寄存器 19: 中断 20-23 优先级寄存器(PRI5),偏移量 0x414 寄存器 20: 中断 24-27 优先级寄存器(PRI6),偏移量 0x418 寄存器 21: 中断 28-31 优先级寄存器(PRI7),偏移量 0x41C 寄存器 22: 中断 32-35 优先级寄存器(PRI8),偏移量 0x420 寄存器 23: 中断 36-39 优先级寄存器(PRI9),偏移量 0x424 寄存器 24: 中断 40-43 优先级寄存器(PRI10),偏移量 0x428 寄存器 25: 中断 44-47 优先级寄存器(PRI11),偏移量 0x42C 寄存器 26: 中断 48-51 优先级寄存器(PRI12),偏移量 0x430 寄存器 27: 中断 52-54 优先级寄存器(PRI13),偏移量 0x434 注意: 本寄存器只能在特权模式下访问。 PRIn 寄存器为每个中断提供 3 位的优先级域。所有PRIn寄存器都是可字节访问的。每个寄存器中 包含4个中断的优先级位域,如下所示: PRIn 寄存器位域 位 31:29 位 23:21 位 15:13 位 7:5 中断 中断 [4n+3] 中断 [4n+2] 中断 [4n+1] 中断 [4n] 请参阅 表 2-9 在 103页 以了解中断分配。 优先级位域还可以进一步划分为组优先级位域以及子优先级位域。应用程序中断及复位控制 (APINT) 寄存器中的 PRIGROUP 域(请参阅 148页)指示划分优先级和亚优先级域的二进制点的位置。 这些寄存器只能在特权模式下访问。 中断 0-3 优先级寄存器 (PRI0) 基址 0xE000.E000 偏移量 0x400 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 INTD 保留 INTC 保留 类型 R/W R/W R/W RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 INTB 保留 INTA 保留 类型 R/W R/W R/W RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 一月 06, 2012 139 Texas Instruments-生产数据 Cortex-M3 外设 位/域 31:29 28:24 23:21 20:16 15:13 12:8 7:5 4:0 名称 INTD 保留 INTC 保留 INTB 保留 INTA 保留 类型 R/W RO R/W RO R/W RO R/W RO 复位 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 描述 中断[4n+3]的中断优先级 此域为编号 [4n+3] 的中断保留优先级值 0-7,其中 n 是中断优先级寄存 器的编号(n=0 表示 PRI0,依此类推)。该值越低,相应中断的优先级 越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 中断[4n+2]的中断优先级 此域为编号 [4n+2] 的中断保留优先级值 0-7,其中 n 是中断优先级寄存 器的编号(n=0 表示 PRI0,依此类推)。该值越低,相应中断的优先级 越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 中断[4n+1]的中断优先级 此域为编号 [4n+1] 的中断保留优先级值 0-7,其中 n 是中断优先级寄存 器的编号(n=0 表示 PRI0,依此类推)。该值越低,相应中断的优先级 越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 中断[4n] 的中断优先级 此域为编号 [4n] 的中断保留优先级值 0-7,其中 n 是中断优先级寄存器 的编号(n=0 表示 PRI0,依此类推)。该值越低,相应中断的优先级越 高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 140 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 28: 软件触发中断寄存器(SWTRIG),偏移量 0xF00 注意: 只有特权软件可以启用对 SWTRIG 寄存器的非特权访问。 向 SWTRIG 寄存器写入中断编号会产生“软件生成的中断” (SGI)。请参阅 表 2-9 在 103页 以了解 中断分配。 将配置和控制 (CFGCTRL) 中的 MAINPEND 位置位时(请参阅 152页),非特权软件可以访问 SWTRIG 寄存器。 软件触发中断寄存器 (SWTRIG) 基址 0xE000.E000 偏移量 0xF00 类型 WO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 INTID 类型 RO RO RO RO RO RO RO RO RO RO WO WO WO WO WO WO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:6 5:0 名称 保留 INTID 类型 RO WO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 中断标识 此域保留所需 SGI 的中断标识。例如,写入值 0x3 会在 IRQ3 上生成中 断。 3.5 系统控制模块(SCB)寄存器描述 本节按照地址偏移量由小到大的顺序依次详细介绍系统控制模块(SCB)的各寄存器。SCB寄存器 只能在特权模式下访问。 所有寄存器必须以对齐字访问进行访问,除了 FAULTSTAT 和 SYSPRI1-SYSPRI3 寄存器,这两 个寄存器可以使用字节或对齐半字或字访问进行访问。处理器不支持对SCB寄存器执行非对齐访问。 一月 06, 2012 141 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 29: 辅助控制寄存器(ACTLR),偏移量 0x008 注意: 本寄存器只能在特权模式下访问。 ACTLR 寄存器为禁用以下功能提供控制位:IT 堆叠;访问默认的存储器映射时的写缓冲;对多周 期指令的中断。本寄存器的默认配置已经为 Cortex-M3 处理器内核实现了优化的性能,一般来说无 需修改。 辅助控制寄存器 (ACTLR) 基址 0xE000.E000 偏移量 0x008 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DISFOLD DISWBUF DISMCYC 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:3 2 1 名称 保留 DISFOLD DISWBUF 类型 RO R/W R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 禁用 IT 堆叠。 值 描述 0 无影响。 1 禁用 IT 堆叠。 有些情况下,处理器可以在执行 IT 模块中第一个指令的同时执行 IT 指令。这叫做 IT 堆叠,可以提高性能,但是,IT 堆叠会引起循环的不 稳定(抖动)。如果某项任务禁止产生抖动,那么必须在执行任务之前 将 DISFOLD 位置位,以禁用 IT 堆叠功能。 0 禁用写入缓冲 值 描述 0 无影响。 1 在访问默认的存储空间时禁用写入缓冲。在此情况下,一旦产生总 线故障,则必然是精确总线故障;但处理器性能将会有所下降,因 为处理器要等待对存储器的存贮操作完全结束后才会执行下一条指 令。 注意: 该位只影响 Cortex-M3 处理器中执行的写入缓冲。 0 DISMCYC R/W 0 禁用多周期指令的中断 值 描述 0 无影响。 1 禁止在多周期装载指令以及多周期存贮指令执行期间产生中断。此 时,由于处理器必须等待 LDM 或 STM 指令执行完成后才将状态入 栈并进入中断处理程序,因此处理器的中断延时将会增加。 142 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 30: CPU ID 基础寄存器(CPUID),偏移量 0xD00 注意: 本寄存器只能在特权模式下访问。 CPUID 寄存器中包含 ARM® Cortex™-M3 处理器的芯片编号、版本以及其它实施信息。 CPU ID 基础寄存器 (CPUID) 基址 0xE000.E000 偏移量 0xD00 类型 RO, 复位 0x412F.C230 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 IMP VAR CON 类型 R0 R0 R0 R0 R0 R0 R0 R0 RO RO RO RO RO RO RO RO 复位 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PARTNO REV 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 位/域 31:24 名称 IMP 类型 R0 复位 0x41 描述 标准制订商代码 值 描述 0x41 ARM 23:20 VAR RO 0x2 变化版本编号 值 描述 0x2 rnpn 产品版本识别号中的 rn 值,比如 r2p0 里面的 2。 19:16 CON RO 0xF 常量 值 描述 0xF 始终读取为 0xF。 15:4 PARTNO RO 0xC23 芯片型号 值 描述 0xC23 Cortex-M3 处理器。 3:0 REV RO 0x0 版本号 值 描述 0x0 rnpn 产品版本识别号中的 pn 值,比如 r2p0 里面的 0。 一月 06, 2012 143 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 31: 中断控制及状态寄存器(INTCTRL),偏移量 0xD04 注意: 本寄存器只能在特权模式下访问。 INCTRL 寄存器为 NMI 异常提供了设置挂起位,为 PendSV 以及 SysTick 异常提供了设置挂起位以 及清除挂起位。此外,本寄存器还能指示出正在处理的异常序号、是否存在抢占式激活的异常、挂 起异常中优先级最高的异常序号,以及是否有中断正在挂起。 若对 INCTRL 寄存器执行写操作时,对 PENDSV 和 UNPENDSV 同时写 1 或对 PENDSTSET 和 PENDSTCLR 同时写 1,可能产生不确定的结果。 中断控制及状态寄存器 (INTCTRL) 基址 0xE000.E000 偏移量 0xD04 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 NMISET 保留 PENDSV UNPENDSV PENDSTSET PENDSTCLR 保留 ISRPRE ISRPEND 类型 R/W RO RO R/W WO R/W WO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 VECPEND RETBASE 保留 类型 RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 20 19 保留 RO RO 0 0 4 3 VECACT RO RO 0 0 18 17 16 VECPEND RO RO RO 0 0 0 2 1 0 RO RO RO 0 0 0 位/域 31 30:29 28 名称 NMISET 保留 PENDSV 类型 R/W RO R/W 复位 0 0x0 0 描述 NMI 置位挂起 值 描述 0 读取为 0,表示 NMI 异常并未挂起。 写入0时,无意义。 1 读出为 1,代表 NMI 异常正在挂起。 写入 1 时,NMI 异常的状态将变为挂起。 由于 NMI 是最高优先级的异常,因此一般来说,处理器只要检测到此标 志置位就会立即进入 NMI 异常处理程序,并在进入中断处理程序后即刻 清除此标志位。只有当处理器执行 NMI 异常处理程序期间又再度产生了 NMI 信号,该位为 1。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 PendSV 置位挂起 值 描述 0 读出为 0,代表 PendSV 异常并未挂起。 写入0时,无意义。 1 读出为 1,代表 PendSV 异常挂起。 写入 1 时,PendSV 异常的状态将变为挂起。 将该位置位是把 PendSV 的异常状态设置成挂起的唯一方法。向 UNPENDSV 位写 1 可以将该位清零。 144 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 27 26 25 24 23 22 21:19 名称 UNPENDSV PENDSTSET PENDSTCLR 保留 ISRPRE ISRPEND 保留 类型 WO R/W WO RO RO RO RO 复位 0 0 0 0 0 0 0x0 描述 PendSV 清除挂起 值 描述 0 写入0时,无意义。 1 写入 1 时,清除 PendSV 异常的挂起状态。 该位为只写。读本寄存器时该位的值不定。 SysTick 置位挂起 值 描述 0 读出为 0,代表 SysTick 异常并未挂起。 写入0时,无意义。 1 读出为 1,代表 SysTick 异常挂起。 写入 1 时,SysTick 异常的状态将变为挂起。 对 PENDSTCLR 位写 1 即可将该位清零。 PendSV 清除挂起 值 描述 0 写入0时,无意义。 1 写入 1 时,清除 SysTick 异常的挂起状态。 该位为只写。读本寄存器时该位的值不定。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 调试中断处理 值 描述 0 处理器从暂停状态恢复运行并非基于中断。 1 处理器从暂停状态恢复运行是基于中断。 该位只有在调试模式下才有意义,当处理器不是调试模式时,该位读取 为零。 中断挂起 值 描述 0 无中断挂起。 1 有中断正在挂起。 该位反映除 NMI 及故障之外的所有中断状态。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 145 Texas Instruments-生产数据 Cortex-M3 外设 位/域 18:12 11 10:7 6:0 名称 VECPEND RETBASE 保留 VECACT 类型 RO RO RO RO 复位 0x00 描述 挂起中断的向量序号 该域包含了最高优先级挂起启用异常的序号。该域的数值与 BASEPRI 和 FAULTMASK 寄存器有关,但是与 PRIMASK 寄存器无关。 值 描述 0x00 无正在挂起的异常 0x01 保留 0x02 NMI 0x03 硬故障 0x04 存储器管理故障 0x05 总线故障 0x06 用法故障 0x07-0x0A 保留 0x0B SVCall 0x0C 保留用于调试 0x0D 保留 0x0E PendSV 0x0F SysTick 0x10 中断向量 0 0x11 中断向量 1 ... ... 0x46 中断向量 54 0x47-0x7F 保留 0 0x0 0x00 返回基地址 值 描述 0 有其它抢占式激活异常等待处理。 1 当前无激活的异常,或当前正在处理的异常是唯一激活的异常。 该位反映除 NMI 及故障之外的所有中断状态。只有当处理器正在执行某 个 ISR 时(即中断程序状态 (IPSR) 寄存器非 0),该位才有意义。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 挂起中断的向量序号 该域包含当前激活的异常的序号。各异常的序号请参见 VECPEND 域的 介绍。假如该域为 0,则处理器将进入线程模式。该域的值与 IPSR 寄 存器的 ISRNUM 域相同。 从该值减去 16 以获取编制索引到中断置位启用 (ENn)、中断清除启用 (DISn)、中断置位挂起 (PENDn)、中断清除挂起 (UNPENDn) 和中断优 先级 (PRIn) 寄存器中所需的 IRQ 编号(请参阅 85页)。 146 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 32: 向量表寄存器(VTABLE),偏移量 0xD08 注意: 本寄存器只能在特权模式下访问。 VTABLE 寄存器中包含向量表基地址相对于存储器地址 0x0000.0000 的偏移量。 向量表寄存器 (VTABLE) 基址 0xE000.E000 偏移量 0xD08 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 BASE OFFSET 类型 RO 复位 0 RO R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OFFSET 保留 类型 R/W R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:30 29 名称 保留 BASE 类型 RO R/W 复位 0x0 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 向量表基地址 值 描述 0 向量表位于代码存储器区。 1 向量表位于 SRAM 存储器区。 28:9 OFFSET R/W 0x000.00 向量表偏移量 配置 OFFSET 域时,该偏移量必须与向量表中的异常编号对齐。因为有 54 个中断,所以最小对齐是 128 个字。 8:0 保留 RO 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 147 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 33: 应用程序中断及复位控制寄存器(APINT),偏移量 0xD0C 注意: 本寄存器只能在特权模式下访问。 APINT 寄存器为异常模型提供分组优先级控制,提供数据访问的端状态,并提供系统的复位控制。 要想对本寄存器执行写操作,必须对 VECTKEY 域写入 0x05FA,否则写操作将被忽略。 PRIGROUP 域用于设置二进制小数点的位置,该小数点将中断优先级 (PRIx) 寄存器中的的 INTx 域 划分为组优先级域以及子优先级域。表 3-8 在 148页 列出了 PRIGROUP 的值与该划分的关系。表中 “组优先级域”以及“子优先级域”两列内容的位序号指的是 INTA 域中的位。对于 INTB 域来说, 相应的位是 15:13;对于 INTC 域来说,相应的位是 23:21;对于 INTD 域来说,相应的位是 31:29。 注意: 在判定异常的抢占优先级时,只考虑组优先级域。 表 3-8. 中断优先级分组 PRIGROUP 位域 二进制小数点a 组优先级域 子优先级域 组优先级数目 0x0 - 0x4 bxxx. [7:5] 无 8 0x5 bxx.y [7:6] [5] 4 0x6 bx.yy [7] [6:5] 2 0x7 b.yyy 无 [7:5] 1 a. INTx 域显示了二进制小数点的位置。表中 x 代表分组优先级位,y 代表子优先级位。 子优先级数目 1 2 4 8 应用程序中断及复位控制寄存器 (APINT) 基址 0xE000.E000 偏移量 0xD0C 类型 R/W, 复位 0xFA05.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VECTKEY 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 15 14 ENDIANESS 类型 RO RO 复位 0 0 13 12 保留 RO RO 0 0 11 10 9 8 7 PRIGROUP RO R/W R/W R/W RO 0 0 0 0 0 6 5 4 保留 RO RO RO 0 0 0 3 2 1 0 SYSRESREQ VECTCLRACT VECTRESET RO WO WO WO 0 0 0 0 位/域 31:16 15 14:11 10:8 7:3 名称 VECTKEY ENDIANESS 保留 PRIGROUP 保留 类型 R/W RO RO R/W RO 复位 0xFA05 0 0x0 0x0 0x0 描述 寄存器密钥 该域用来防止对该寄存器的意外写入操作。改变该寄存器的位之前必须 将 0x05FA 写入该域。读取返回 0x05FA。 数据端模式 该Stellaris 系列仅支持小端模式,因此该位被清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 中断优先级分组 该域确定分组优先级与子优先级的分隔界限(更多信息请参考 表 3-8 在 148页)。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 148 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 2 1 0 名称 SYSRESREQ VECTCLRACT VECTRESET 类型 WO WO WO 复位 0 0 0 描述 系统复位请求 值 描述 0 无影响。 1 复位处理器内核以及所有片上外设(调试接口除外)。 此标志位在处理器内核复位期间自动清零。此标志位的回读值始终为0。 清除已激活的 NMI/故障 该位保留用于调试功能,读取为 0。平时此标志位必须写入 0,否则可 能产生无法预料的结果。 系统复位 该位保留用于调试功能,读取为 0。平时此标志位必须写入 0,否则可 能产生无法预料的结果。 一月 06, 2012 149 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 34: 系统控制寄存器(SYSCTRL),偏移量 0xD10 注意: 本寄存器只能在特权模式下访问。 SYSCTRL 寄存器负责控制进入/退出低功耗模式。 系统控制寄存器 (SYSCTRL) 基址 0xE000.E000 偏移量 0xD10 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 SEVONPEND 保留 SLEEPDEEP SLEEPEXIT 保留 类型 RO RO RO RO RO RO RO RO RO RO RO R/W RO R/W R/W RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:5 4 3 2 名称 保留 SEVONPEND 保留 SLEEPDEEP 类型 RO R/W RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 挂起时唤醒 值 描述 0 只有已启用的中断或事件才能唤醒处理器;如果某中断已禁用,则 不能唤醒处理器。 1 已启用的事件以及所有中断(包括已禁用的中断)都能唤醒处理 器。 当一个事件或中断进入挂起状态时,该事件信号会从 WFE 唤醒处理器。 如果处理器没有等待事件,那么该事件被登记,会影响下个 WFE。 处理器也可以在执行 SEV 指令时唤醒,或通过外部事件唤醒。 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 深度睡眠启用 值 描述 0 以睡眠模式作为低功耗模式。 1 以深度睡眠模式作为低功耗模式。 1 SLEEPEXIT R/W 0 在退出 ISR 后睡眠 值 描述 0 当从处理模式返回到线程模式后,并不进入睡眠状态。 1 当从处理模式返回到线程模式后,一退出ISR则立即进入睡眠或深 度睡眠状态。 此功能适用于中断驱动型的应用程序。若此标志位置位,可避免处理器 返回到无内容的主函数。 150 一月 06, 2012 Texas Instruments-生产数据 位/域 0 Stellaris® LM3S9B92 微控制器 名称 保留 类型 RO 复位 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 151 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 35: 配置及控制寄存器(CFGCTRL),偏移量 0xD14 注意: 本寄存器只能在特权模式下访问。 CFGCTRL 寄存器负责控制线程模式的入口,此外还能够启用:NMI 处理程序、硬故障处理程序以 及 FAULTMASK 寄存器升级后的故障处理程序忽略总线故障;被零除以及未对齐访问的额外处理; 非特权级软件对 SWTRIG 寄存器的访问(见 141页)。 配置及控制寄存器 (CFGCTRL) 基址 0xE000.E000 偏移量 0xD14 类型 R/W, 复位 0x0000.0200 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 STKALIGN BFHFNMIGN 保留 DIV0 UNALIGNED 保留 MAINPEND BASETHR 类型 RO RO RO RO RO RO R/W R/W RO RO RO R/W R/W RO R/W R/W 复位 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 位/域 31:10 9 8 7:5 名称 保留 STKALIGN BFHFNMIGN 保留 类型 RO R/W R/W RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 1 异常入口的堆栈对齐 值 描述 0 堆栈按 4 字节对齐。 1 堆栈按 8 字节对齐。 在异常的入口处,处理器利用 PSR 寄存器的第 9 位保存栈对齐状态。 当从异常中返回时,处理器根据出栈后的此标志位恢复栈对齐状态。 0 在 NMI 及故障中忽略总线故障 通过此标志位可以使得优先级为 -1 和 -2 的异常处理程序忽略由装载指 令和存贮指令产生的数据总线故障。该位的设置适用于 NMI、硬故障以 及经 FAULTMASK 寄存器升级后的处理程序。 值 描述 0 由装载指令及存贮指令产生的数据总线故障都会导致错误锁定。 1 优先级为 -1 和 -2 的处理程序均忽略装载指令及存贮指令产生的数 据总线故障。 只有当处理程序及其数据均位于绝对安全的存储器中时,才允许将此标 志位置位。该位通常用于检测系统设备及总线桥有无控制通道隐患,并 予以修复。 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 152 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 4 3 2 1 0 名称 DIV0 UNALIGNED 保留 MAINPEND BASETHR 类型 R/W R/W RO R/W R/W 复位 0 描述 被零除的额外处理 若处理器执行 SDIV 或 UDIV 指令时遭遇除数为零的状况,该位将决定 是否产生故障或暂停运行。 值 描述 0 当遇到被零除的状况时,不进行额外处理。被零除返回的商为 0。 1 当遇到被零除的状况时,进行额外处理。 0 未对齐访问的额外处理 值 描述 0 当遇到未对齐的半字访问或字访问时,不进行额外处理。 1 当遇到未对齐的半字访问或字访问时,进行额外处理。未对齐的访 问会产生一个用法错误。 未对齐的 LDM、STM、LDRD 以及 STRD 指令始终产生故障,不管 UNALIGNED 是否置位。 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 允许主中断触发 值 描述 0 禁止非特权级软件访问 SWTRIG 寄存器。 1 允许非特权级软件访问 SWTRIG 寄存器(请参考 141页)。 0 线程状态控制 值 描述 0 仅当异常激活后才允许处理器进入线程模式。 1 取决于对 EXC_RETURN 值的控制,处理器随时都可进入线程模式 (详情请参考 “异常返回” 在 107页)。 一月 06, 2012 153 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 36: 系统处理程序优先级寄存器 1(SYSPRI1),偏移量 0xD18 注意: 本寄存器只能在特权模式下访问。 SYSPRI1 寄存器用于配置用法故障、总线故障、存储器管理故障的异常处理程序的优先级,取值范 围为 0~7。本寄存器可以按字节访问。 系统处理程序优先级寄存器 1 (SYSPRI1) 基址 0xE000.E000 偏移量 0xD18 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 USAGE 保留 类型 RO RO RO RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BUS 保留 MEM 保留 类型 R/W R/W R/W RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:24 23:21 20:16 15:13 12:8 7:5 4:0 名称 保留 USAGE 保留 BUS 保留 MEM 保留 类型 RO R/W RO R/W RO R/W RO 复位 0x00 0x0 0x0 0x0 0x0 0x0 0x0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 用法故障优先级 该域用于配置用法故障的优先级。优先级的取值范围为 0~7,其中数值 越小、所代表的优先级越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 总线故障优先级 该域用于配置总线故障的优先级。优先级的取值范围为 0~7,其中数值 越小、所代表的优先级越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 存储器管理故障优先级 本域用于配置存储器管理故障的优先级。优先级的取值范围为 0~7,其 中数值越小、所代表的优先级越高。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 154 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 37: 系统处理程序优先级寄存器 2(SYSPRI2),偏移量 0xD1C 注意: 本寄存器只能在特权模式下访问。 SYSPRI2 寄存器用于配置 SVCall 处理程序的优先级,取值范围为 0~7。本寄存器可以按字节访问。 系统处理程序优先级寄存器 2 (SYSPRI2) 基址 0xE000.E000 偏移量 0xD1C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SVC 保留 类型 R/W R/W R/W RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:29 28:0 名称 SVC 保留 类型 R/W RO 复位 描述 0x0 SVCall 优先级 该域用于配置 SVCall 的优先级。优先级的取值范围为 0~7,其中数值 越小、所代表的优先级越高。 0x000.0000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 155 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 38: 系统处理程序优先级寄存器 3(SYSPRI3),偏移量 0xD20 注意: 本寄存器只能在特权模式下访问。 SYSPRI3 寄存器用于配置 SysTick 异常处理程序、PendSV 处理程序的优先级,取值范围为 0~7。 本寄存器可以按字节访问。 系统处理程序优先级寄存器 3 (SYSPRI3) 基址 0xE000.E000 偏移量 0xD20 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TICK 保留 PENDSV 保留 类型 R/W R/W R/W RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DEBUG 保留 类型 RO RO RO RO RO RO RO RO R/W R/W R/W RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:29 28:24 23:21 20:8 7:5 4:0 名称 TICK 保留 PENDSV 保留 DEBUG 保留 类型 R/W RO R/W RO R/W RO 复位 描述 0x0 SysTick异常优先级 该域用于配置 SysTick 异常的优先级。优先级的取值范围为 0~7,其中 数值越小、所代表的优先级越高。 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0 PendSV 优先级 本位域用于配置 PendSV 的优先级。优先级的取值范围为 0~7,其中数 值越小、所代表的优先级越高。 0x000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0 调试优先级 该域用于配置调试的优先级。优先级的取值范围为 0~7,其中数值越小、 所代表的优先级越高。 0x0.0000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 156 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 39: 系统处理程序控制及状态寄存器(SYSHNDCTRL),偏移量 0xD24 注意: 本寄存器只能在特权模式下访问。 SYSHNDCTRL 寄存器用于启用系统处理程序,并且能够指示用法故障、总线故障、存储器管理故 障、SVC 异常的状态,以及系统处理程序的激活状态。 假如禁用了某个系统处理程序,又产生了相应故障,那么处理器会按照硬故障对其进行处理。 通过修改本寄存器可以改变系统异常的挂起状态或激活状态。操作系统内核可以通过写激活标志位 来进行上下文切换,以这种方式更改当前的异常类型。 小心 – 软件在更改本寄存器中某个激活标志位时,如果并未对已入栈内容进行正确的修正,则可能 导致处理器产生故障异常。应确保写本寄存器的软件保存当前激活状态,并在之后复原。 启用系统处理程序后,假如必须修改本寄存器中的某个标志位,则必须通过读-修改-写流程予以操 作,确保只修改所需的位。 系统处理程序控制及状态寄存器 (SYSHNDCTRL) 基址 0xE000.E000 偏移量 0xD24 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 USAGE BUS MEM 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 SVC BUSP MEMP USAGEP TICK PNDSV 保留 MON SVCA 类型 R/W R/W R/W R/W R/W R/W RO R/W R/W RO 复位 0 0 0 0 0 0 0 0 0 0 5 保留 RO 0 4 3 2 1 0 USGA 保留 BUSA MEMA RO R/W RO R/W R/W 0 0 0 0 0 位/域 31:19 18 名称 保留 USAGE 类型 RO R/W 复位 0x000 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 用法故障启用 值 描述 0 禁用用法故障异常。 1 启用用法故障异常。 17 BUS R/W 0 总线故障启用 值 描述 0 禁用总线故障异常。 1 启用总线故障异常。 16 MEM R/W 0 存储器管理故障启用 值 描述 0 禁用存储器管理故障异常。 1 启用存储器管理故障异常。 一月 06, 2012 157 Texas Instruments-生产数据 Cortex-M3 外设 位/域 15 14 13 12 11 10 9 名称 SVC BUSP MEMP USAGEP TICK PNDSV 保留 类型 R/W R/W R/W R/W R/W R/W RO 复位 0 0 0 0 0 0 0 描述 SVC 调用挂起 值 描述 0 当前无挂起的 SVC 调用异常。 1 当前有挂起的 SVC 调用异常。 通过该位可修改 SVC 调用异常的挂起状态。 总线故障挂起 值 描述 0 当前无正在挂起的总线故障异常。 1 当前有正在挂起的总线故障异常。 通过该位可修改总线故障异常的挂起状态。 存储器管理故障挂起 值 描述 0 当前无正在挂起的存储器管理故障异常。 1 当前有正在挂起的存储器管理故障异常。 通过该位可修改存储器管理故障异常的挂起状态。 用法故障挂起 值 描述 0 当前无正在挂起的用法故障异常。 1 当前有正在挂起的用法故障异常。 通过该位可修改用法故障异常的挂起状态。 SysTick 异常激活取值 值 描述 0 SysTick 异常未激活。 1 SysTick 异常已激活。 通过本标志位可修改 SysTick 异常的激活状态,不过在修改本标志位之 前,务必仔细阅读本寄存器的“Caution 重要提示”部分内容。 PendSV 异常激活 值 描述 0 PendSV 异常未激活。 1 PendSV 异常已激活。 通过本标志位可修改 PendSV 异常的激活状态,不过在修改本标志位之 前,务必仔细阅读本寄存器的“重要提示”部分内容。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 158 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 8 7 6:4 3 2 1 0 名称 MON SVCA 保留 USGA 保留 BUSA MEMA 类型 R/W R/W RO R/W RO R/W R/W 复位 0 描述 调试监视器激活 值 描述 0 调试监视器未激活。 1 调试监视器已激活。 0 SVC 调用激活 值 描述 0 SVC 调用未激活。 1 SVC调用已激活。 通过本标志位可修改SVC调用异常的激活状态,不过在修改本标志位之 前,务必仔细阅读本寄存器的“重要提示”部分内容。 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 用法故障激活 值 描述 0 用法故障未激活。 1 用法故障已激活。 通过本标志位可修改用法故障异常的激活状态,不过在修改本标志位之 前,务必仔细阅读本寄存器的“重要提示”部分内容。 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 总线故障激活 值 描述 0 总线故障未激活。 1 总线故障已激活。 通过本标志位可修改总线故障异常的激活状态,不过在修改本标志位之 前,务必仔细阅读本寄存器的“重要提示”部分内容。 0 存储器管理故障激活 值 描述 0 存储器管理故障未激活。 1 存储器管理故障已激活。 通过本标志位可修改存储器管理故障异常的激活状态,不过在修改本标 志位之前,务必仔细阅读本寄存器的“重要提示”部分内容。 一月 06, 2012 159 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 40: 可配置故障状态寄存器(FAULTSTAT),偏移量 0xD28 注意: 本寄存器只能在特权模式下访问。 FAULTSTAT 寄存器能够指示产生存储器管理故障、总线故障、用法故障的原因。这些功能可以进 一步划分为子寄存器,如下所示: ■ 用法故障状态 (UFAULTSTAT),即位 31:16 ■ 总线故障状态 (BFAULTSTAT),即位 15:8 ■ 存储器管理故障状态 (MFAULTSTAT),即位 7:0 FAULTSTAT 寄存器可按字节访问。FAULTSTAT 寄存器及其子寄存器可按如下方式访问: ■ 对偏移量 0xD28 按字访问,即可访问整个的 FAULTSTAT 寄存器; ■ 对偏移量 0xD28 按字节访问,即可访问 MFAULTSTAT 子寄存器; ■ 对偏移量 0xD28 按半字访问,即可访问 MFAULTSTAT 和 BFAULTSTAT 子寄存器; ■ 对偏移量 0xD29 按字节访问,即可访问 BFAULTSTAT 子寄存器; ■ 对偏移量 0xD2A 按半字访问,即可访问 UFAULTSTAT 子寄存器。 本寄存器中的位写 1 清零。 在故障处理程序中,发生故障的实际地址可按如下方法确定: 1. 读取并保存存储器管理故障地址 (MMADDR) 或总线故障地址 (FAULTADDR) 的值; 2. 读取 MFAULTSTAT 子寄存器的 MMARV 位,或 BFAULTSTAT 子寄存器的 BFARV 标志位,以 确定 MMADDR 或 FAULTADDR 中的内容是否有效。 软件必须按照此序列操作,因为另一个优先级更高的异常有可能会更改 MMADDR 或 FAULTADDR 的值。例如,如果某个优先级更高的处理程序抢占了当前的处理程序,那么另一个故障可能会改变 MMADDR 或 FAULTADDR 的内容。 可配置故障状态寄存器 (FAULTSTAT) 基址 0xE000.E000 偏移量 0xD28 类型 R/W1C, 复位 0x0000.0000 31 30 29 28 27 保留 类型 RO RO RO RO RO 复位 0 0 0 0 0 26 25 24 23 DIV0 UNALIGN RO R/W1C R/W1C RO 0 0 0 0 15 BFARV 类型 R/W1C 复位 0 14 13 保留 RO RO 0 0 12 11 10 9 8 7 BSTKE BUSTKE IMPRE PRECISE IBUS MMARV R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C 0 0 0 0 0 0 22 21 保留 RO RO 0 0 6 5 保留 RO RO 0 0 20 19 18 17 16 NOCP INVPC INVSTAT UNDEF RO R/W1C R/W1C R/W1C R/W1C 0 0 0 0 0 4 3 MSTKE MUSTKE R/W1C R/W1C 0 0 2 保留 RO 0 1 0 DERR IERR R/W1C R/W1C 0 0 位/域 31:26 名称 保留 类型 RO 复位 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 160 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 25 24 23:20 19 18 名称 DIV0 UNALIGN 保留 NOCP INVPC 类型 R/W1C R/W1C RO R/W1C R/W1C 复位 0 0 0x00 0 0 描述 被零除用法故障 值 描述 0 未发生被零除故障,或并未启用被零除的额外处理。 1 处理器执行 SDIV 或 UDIV 指令时,除数为 0。 若该位置位,原本用于异常返回的已入栈 PC 值将指向出现被零除现象 的那条指令。 如果需要对被零除进行额外处理,应将配置和控制 (CFGCTRL) 寄存器 (请参考 152页)中的 DIV0 位置位。 该位写 1 清零。 未对齐访问用法故障 值 描述 0 未发生未对齐访问故障,或并未启用未对齐访问的额外处理。 1 处理器企图执行未对齐访问操作。 未对齐的 LDM、STM、LDRD 以及 STRD 指令总会产生故障,与该位的 配置无关。 如果需要对未对齐访问进行额外处理,应将CFGCTRL 寄存器(请参考 152页)中的 UNALIGNED 位置位。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 无协处理器用法故障 值 描述 0 未发生企图访问协处理器的用法故障。 1 处理器企图访问协处理器。 该位写 1 清零。 装载无效 PC 值用法故障 值 描述 0 未发生企图装载无效 PC 值的用法故障。 1 处理器企图把非法的 EXC_RETURN 装载到 PC。这可能是由于环 境无效,或由于 EXC_RETURN 值无效。 若该位置位,原本用于异常返回的已入栈 PC 值将指向企图装载无效 PC 值的那条指令。 该位写 1 清零。 一月 06, 2012 161 Texas Instruments-生产数据 Cortex-M3 外设 位/域 17 16 15 14:13 12 名称 INVSTAT UNDEF BFARV 保留 BSTKE 类型 R/W1C R/W1C R/W1C RO R/W1C 复位 0 0 0 0 0 描述 无效状态用法故障 值 描述 0 未发生无效状态的用法故障。 1 处理器执行了某条指令,该指令企图非法使用 EPSR 寄存器。 若该位置位,原本用于异常返回的已入栈 PC 值将指向企图非法使用执 行程序状态寄存器 (EPSR) 寄存器的那条指令。 如果某条未定义的指令使用了 EPSR 寄存器,该位不会置位。 该位写 1 清零。 未定义指令用法故障 值 描述 0 未发生未定义指令的用法故障。 1 处理器企图执行一条未定义指令。 若该位置位,原本用于异常返回的已入栈 PC 值将指向那条未定义指令。 所谓未定义指令,就是指处理器内核无法对其正确解码的指令。 该位写 1 清零。 总线故障地址寄存器有效 值 描述 0 总线故障地址 (FAULTADDR) 寄存器中未包含有效的故障地址。 1 FAULTADDR 寄存器中包含有效的故障地址。 当出现总线故障后,若故障地址已知,则该位将置位。其它故障有可能 清零本标志位,例如之后若发生存储器管理故障,即会清零该位。 若产生总线故障,并且由于优先级而升级为硬故障,那么硬故障处理程 序必须清零本标志位。当程序返回到已入栈的总线故障处理程序时,该 操作防止 FAULTADDR 寄存器的内容被覆盖。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 入栈总线故障 值 描述 0 在异常入口入栈操作时为发生总线故障。 1 在异常入口处进行入栈操作时产生一个或多个总线故障。 若该位置位,SP 寄存器的值仍然会正常变更,但是栈内上下文的内容 可能包含错误内容。此类总线故障并不向 FAULTADDR 寄存器写入故 障地址。 该位写 1 清零。 162 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 11 10 9 8 名称 BUSTKE IMPRE PRECISE IBUS 类型 R/W1C R/W1C R/W1C R/W1C 复位 0 0 0 0 描述 出栈总线故障 值 描述 0 异常返回出栈操作时没有发生总线故障。 1 异常返回时的出栈操作时产生一个或多个总线故障。 此故障将使得处理器再次返回到异常处理程序。因此,若此标志位置 位,原始的返回栈并不会被破坏。前一次返回失败,因此 SP 寄存器的 值不变,也不会进行入栈操作。此类总线故障并不向 FAULTADDR 寄 存器写入故障地址。 该位写 1 清零。 不精确数据总线错误 值 描述 0 未产生不精确数据总线错误。 1 产生了数据总线错误,但栈中的返回地址未必指向导致错误产生的 那条指令。 若该位置位,不会向 FAULTADDR 寄存器写入故障地址。 此故障是异步故障。因此,当检测到故障发生时,当前进程的优先级高 于总线故障优先级,总线故障将保持挂起状态,只有等到处理器完成所 有高优先级的进程后,才会转入激活状态。如果某个精确故障在处理器 进入处理程序之前发生,原因是不精确的总线故障,那么处理程序可以 查询到 IMPRE 位与某个精确故障状态位同时置位。 该位写 1 清零。 精确数据总线错误 值 描述 0 未产生精确数据总线错误。 1 产生了数据总线错误,并且原本用于异常返回的已入栈 PC 值指向 导致错误发生的那条指令。 若该位置位,将会向 FAULTADDR 寄存器写入故障地址。 该位写 1 清零。 指令总线错误 值 描述 0 未发生指令总线错误。 1 发生了指令总线错误。 处理器在预取指时就已经检测指令总线是否出错,不过只有在试图执行 错误指令时才会置位本标志位。 若该位置位,不会向 FAULTADDR 寄存器写入故障地址。 该位写 1 清零。 一月 06, 2012 163 Texas Instruments-生产数据 Cortex-M3 外设 位/域 7 6:5 4 3 2 1 名称 MMARV 保留 MSTKE MUSTKE 保留 DERR 类型 R/W1C RO R/W1C R/W1C RO R/W1C 复位 0 0 0 0 0 0 描述 存储器管理故障地址寄存器有效 值 描述 0 存储器管理故障地址 (MMADDR) 寄存器中未包含有效的故障地址。 1 MMADDR 寄存器中包含有效的故障地址。 若产生存储器管理故障,并且由于优先级而升级为硬故障,那么硬故障 处理程序必须清零该位。当程序返回到已入栈的活动存储器管理故障处 理程序时,该操作防止 MMADDR 寄存的内容被覆盖。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 入栈访问违规 值 描述 0 当在异常入口处进行入栈操作时为发生存储器管理故障。 1 当在异常入口处进行入栈操作时产生一个或多个访问违规。 若该位置位,SP 寄存器的值仍然会正常变更,但是栈内上下文的内容 可能包含错误内容。此类故障并不向 MMADDR 寄存器写入故障地址。 该位写 1 清零。 出栈操作时的访问违规 值 描述 0 异常返回出栈操作时没有发生存储器管理故障。 1 异常返回出栈操作时产生一个或多个访问违规。 此故障将使得处理器再次返回到异常处理程序。因此,若该位置位,原 始的返回栈并不会被破坏。前一次返回失败,因此 SP 寄存器的值不变, 也不会进行入栈操作。此类故障并不向 MMADDR 存器写入故障地址。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 数据访问违规 值 描述 0 未发生数据访问违规。 1 处理器试图对某个地址进行装载或存贮操作,但该地址并不允许执 行该操作。 若该位置位,原本用于异常返回的已入栈 PC 值将指向出错的那条指令, 并且企图访问的地址将写入 MMADDR 寄存器中。 该位写 1 清零。 164 一月 06, 2012 Texas Instruments-生产数据 位/域 0 Stellaris® LM3S9B92 微控制器 名称 IERR 类型 R/W1C 复位 0 描述 指令访问违规 值 描述 0 未发生指令访问违规。 1 处理器试图从某个地址取指令,但该地址并不允许执行指令。 当对任何 XN 存储器区访问时,均会产生此故障,即使 MPU 被禁用、 甚至未集成 MPU 也是如此。 若该位置位,原本用于异常返回的已入栈 PC 值将指向出错的那条指令, 而且企图访问的地址不会写入 MMADDR 寄存器中。 该位写 1 清零。 一月 06, 2012 165 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 41: 硬故障状态寄存器(HFAULTSTAT),偏移量 0xD2C 注意: 本寄存器只能在特权模式下访问。 HFAULTSTAT 寄存器提供触发硬故障处理程序的事件的相关信息。 本寄存器中的位写 1 清零。 硬故障状态寄存器 (HFAULTSTAT) 基址 0xE000.E000 偏移量 0xD2C 类型 R/W1C, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DBG FORCED 保留 类型 R/W1C R/W1C RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 VECT 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W1C RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31 30 29:2 1 0 名称 DBG FORCED 保留 VECT 保留 类型 R/W1C R/W1C RO R/W1C RO 复位 0 0 0x00 0 0 描述 调试事件 此标志位保留用于调试。平时此标志位必须写入 0,否则可能产生无法 预料的结果。 强制硬故障 值 描述 0 未发生强制硬故障。 1 发生了强制硬故障。其原因可能是某个优先级可配置的故障无法得 到及时处理(可能是因为优先级较低或被禁用)导致其升级。 若该位置位,则硬故障处理程序必须读取其它故障状态寄存器,找出故 障原因。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 向量表读取故障 值 描述 0 在读取向量表时未发生总线故障。 1 在读取向量表时发生总线故障。 此错误始终由硬故障处理程序处理。 若该位置位,原本用于异常返回的已入栈 PC 值将指向被异常抢占使用 权的那条指令。 该位写 1 清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 166 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 42: 存储器管理故障地址寄存器(MMADDR),偏移量 0xD34 注意: 本寄存器只能在特权模式下访问。 MMADDR 寄存器中包含产生存储器管理故障的地址。当发生未对齐访问故障时,MMADDR 寄存器 中包含的是产生故障的实际地址。对于其它类型故障,由于单条读写指令还可能进一步分割为多个 对齐操作,因此故障地址可能是被请求访问范围内的任一地址。存储器管理故障状态 (MFAULTSTAT) 中的位能够指示出故障原因以及 MMADDR 寄存器中的值是否有效(请参考 160页)。 存储器管理故障地址寄存器 (MMADDR) 基址 0xE000.E000 偏移量 0xD34 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 ADDR 类型 R/W 复位 - 描述 故障地址 若MFAULTSTAT 寄存器的 MMARV 位置位,那么该域包含产生存储器 管理故障的地址。 一月 06, 2012 167 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 43: 总线故障地址寄存器(FAULTADDR),偏移量 0xD38 注意: 本寄存器只能在特权模式下访问。 FAULTADDR 寄存器包含产生总线故障的地址。当发生未对齐访问故障时,FAULTADDR 寄存器 中包含的是错误指令所请求的地址,并非产生故障的实际地址。总线故障状态 (BFAULTSTAT) 寄 存器中的状态位能够指示出故障原因以及 FAULTADDR 寄存器中的值是否有效(请参考 160页)。 总线故障地址寄存器 (FAULTADDR) 基址 0xE000.E000 偏移量 0xD38 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 ADDR 类型 R/W 复位 - 描述 故障地址 若 BFAULTSTAT 寄存器中的 FAULTADDRV 位置位,那么该域包含产 生总线故障的地址。 3.6 存储器保护单元(MPU)寄存器描述 本节按照地址偏移量由小到大的顺序依次详细介绍存储器保护单元(MPU)的各寄存器。 MPU寄存器只能在特权模式下访问。 168 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 44: MPU 类型寄存器(MPUTYPE),偏移量 0xD90 注意: 本寄存器只能在特权模式下访问。 MPUTYPE 寄存器用于指示本芯片是否包含 MPU,若包含 MPU 还指示出其支持多少个存储器区。 MPU 类型寄存器 (MPUTYPE) 基址 0xE000.E000 偏移量 0xD90 类型 RO, 复位 0x0000.0800 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 IREGION 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DREGION 保留 SEPARATE 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 位/域 31:24 23:16 15:8 名称 保留 IREGION DREGION 类型 RO RO RO 复位 0x00 0x00 0x08 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 I 区数目 此域可显示出芯片所支持的 MPU 指令区数目。此域位域始终包含 0x00。 MPU存储器映射是统一的,可以用 DREGION 域设置。 D 区数目 值 描述 0x08 表示总共支持 8 个 MPU 数据区。 7:1 保留 RO 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 SEPARATE RO 0 MPU 分立还是统一 值 描述 0 表示 MPU 是统一管理的。 一月 06, 2012 169 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 45: MPU 控制寄存器(MPUCTRL),偏移量 0xD94 注意: 本寄存器只能在特权模式下访问。 MPUCTRL 寄存器能够启用 MPU、启用默认存储器映射背景区,此外还能选择在硬故障、不可屏蔽 中断(NMI)、故障屏蔽寄存器 (FAULTMASK) 升级后的处理程序中是否允许使用 MPU。 当 ENABLE 和 PRIVDEFEN 位同时置位: ■ 对于特权级访问,默认的存储器映射参见 “存储模型” 在 93页。若某存储器区并未启用,则特权 级软件的任何访问特性将与默认的存储器映射相同。 ■ 若某存储器区并未启用,则非特权级软件的任何访问都将产生存储器管理故障。 不论 ENABLE 位的值是多少,Execute Never(XN,不执行)以及 Strongly Ordered(严格排序) 规则总适用于系统控制空间。 若 ENABLE 置位,一般来说存储器映射中必须至少启用一个存储器区,这样才能保障系统工作正常, 除非 PRIVDEFEN 位置位。若没有启用的存储器区,如果 PRIVDEFEN 也置位,那么只有特权级软 件才能正常操作。 若 ENABLE 清零,系统将采用默认的存储器映射,其存储器属性与未采用 MPU 之前的属性相同(请 参考 表 2-5 在 96页)。此时无论特权级软件还是非特权级软件均按照默认的存储器映射进行访问。 当启用 MPU 后,将始终允许对系统控制空间以及向量表的访问。对其它区域的访问权限则取决于 区属性设置以及 PRIVDEFEN 是否置位。 除非 HFNMIENA 置位,否则当处理器执行优先级为 -1 或 -2 的异常处理程序时不能启用 MPU。当 处理硬故障或者 NMI 异常或者当 FAULTMASK 启用时,这些优先级才可用。若 HFNMIENA 位置 位,则在这两个优先级下工作时,也将启用 MPU。 MPU 控制寄存器 (MPUCTRL) 基址 0xE000.E000 偏移量 0xD94 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PRIVDEFEN HFNMIENA ENABLE 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:3 名称 保留 类型 RO 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 170 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 2 1 0 名称 PRIVDEFEN HFNMIENA ENABLE 类型 R/W R/W R/W 复位 0 0 0 描述 MPU 默认区 此标志位用于选择是否允许特权级软件按照默认的存储器映射进行访 问。 值 描述 0 若 MPU 已经启用,此标志位为 0 代表禁用默认存储器映射。对某 个地址进行访问时,若该地址不处于任一启用的区中,则会产生故 障。 1 若 MPU 已经启用,此标志位为 1 代表允许特权级软件按照默认存 储器映射作为背景区进行访问。 若此标志位置位,背景区将作为编号为 -1 的存储器区。任何已定义、已 启用区的优先级都高于背景区。 若 MPU 未启用,处理器将忽略本标志位。 故障期间启用 MPU 该位控制 MPU 在硬故障、NMI 以及 FAULTMASK 处理程序期间的操 作。 值 描述 0 不管 ENABLE 位的状态如何,在硬故障、NMI 以及 FAULTMASK 处理程序期间都将自动禁用 MPU。 1 在硬故障、NMI 以及 FAULTMASK 处理程序期间,仍然启用 MPU。 若此位置位,而 MPU 又没有启用,那么其结果将无法预料。 MPU启用 值 描述 0 禁用 MPU。 1 启用 MPU。 若 HFNMIENA 位置位,而 MPU 又没有启用,那么其结果将无法预料。 一月 06, 2012 171 Texas Instruments-生产数据 Cortex-M3 外设 寄存器 46: MPU 区编号寄存器(MPUNUMBER),偏移量 0xD98 注意: 本寄存器只能在特权模式下访问。 MPUNUMBER 寄存器用于选择 MPU 区基地址 (MPUBASE) 和 MPU 区属性及大小 (MPUATTR) 寄存器所参考的存储器区编号。一般在访问 MPUBASE 或 MPUATTR 寄存器之前,应将需要操作 的存储器区编号写入本寄存器。但是,该区编号可以通过写入 MPUBASE 寄存器的 VALID 位设置 (请参考 173页)来改变。该写入操作会更新 REGION 域的值。 MPU 区编号寄存器 (MPUNUMBER) 基址 0xE000.E000 偏移量 0xD98 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 NUMBER 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:3 2:0 名称 保留 NUMBER 类型 RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0 可访问的 MPU 区 该域用于指定 MPUBASE 和 MPUATTR 寄存器参考的 MPU 区。MPU 支持 8 个存储器区。 172 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 47: MPU 区基地址寄存器(MPUBASE),偏移量 0xD9C 寄存器 48: MPU 区基地址别名寄存器 1(MPUBASE1),偏移量 0xDA4 寄存器 49: MPU 区基地址别名寄存器 2(MPUBASE2),偏移量 0xDAC 寄存器 50: MPU 区基地址别名寄存器 3(MPUBASE3),偏移量 0xDB4 注意: 本寄存器只能在特权模式下访问。 MPUBASE 寄存器用于定义由 MPU 区编号 (MPUNUMBER) 所选择的 MPU 区的基地址,此外也能 够直接更新 MPUNUMBER 寄存器的内容。如果想修改当前的存储器区编号并更新 MPUNUMBER 寄存器内容,VALID 位置位 并对 MPUBASE 寄存器执行写入操作。 ADDR 域是指 MPUBASE 寄存器的 31:N 位。(N-1):5 位保留。由 MPU 区属性及大小 (MPUATTR) 寄存器中 SIZE 域指定的区大小决定了 N 的值: N = Log2(区大小,以比特计) 若在 MPUATTR 寄存器中配置区大小为 4 GB,那就没有可用的 ADDR 域了。此时,该存储器区将 占据处理器的全部寻址空间,其基地址为 0x0000.0000。 基地址必须按照存储器区的大小对齐。例如,定义某个区大小为 64 kB,则其基地址必须按照 64 kB 的倍数对齐,例如可以是 0x0001.0000 或 0x0002.0000。 MPU 区基地址寄存器 (MPUBASE) 基址 0xE000.E000 偏移量 0xD9C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR VALID 保留 REGION 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W WO RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:5 4 3 名称 ADDR VALID 保留 类型 R/W WO RO 复位 描述 0x0000.000 基地址掩码 该域中的 31:N 包含存储器区的基地址。N 的值取决于区大小,如上所 述。其余的 (N-1):5 位保留。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 区编号有效 值 描述 0 MPUNUMBER 寄存器不变,处理器按照 MPUNUMBER 寄存器的 设置更新存储器区的基地址,忽略 REGION 域的设置。 1 MPUNUMBER 寄存器将更新为 REGION 域的值,并依此 REGION 域更新相应存储器区的基地址。 该位读取始终返回 0。 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 173 Texas Instruments-生产数据 Cortex-M3 外设 位/域 2:0 名称 REGION 类型 R/W 复位 0x0 描述 区编号 写入本域时,其包含将要写入 MPUNUMBER 寄存器的值。读取本域 时,将返回 MPUNUMBER 寄存器中的当前区编号。 174 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 51: MPU 区属性和大小寄存器(MPUATTR),偏移量 0xDA0 寄存器 52: MPU 区属性和大小别名寄存器 1(MPUATTR1),偏移量 0xDA8 寄存器 53: MPU 区属性和大小别名寄存器 2(MPUATTR2),偏移量 0xDB0 寄存器 54: MPU 区属性和大小别名寄存器 3(MPUATTR3),偏移量 0xDB8 注意: 本寄存器只能在特权模式下访问。 MPUATTR 寄存器用于定义由 MPU 区编号 (MPUNUMBER) 寄存器所指定的 MPU 区的大小以及存 储器属性,并且能够启用该 MPU 区及其子区。 MPUATTR 寄存器可按字或半字对齐访问,其高半字保存区属性,低半字保存区大小、区启用标志 以及各子区的启用位。 MPU 访问权限属性位:XN、AP、TEX、S、C 以及 B,用于控制对相应存储器区的访问。假如试图 访问某个区域,而该区域并未开放相关权限,那么MPU将会产生一个访问权限故障。 SIZE 域用于定义由 MPUNUMBER 寄存器所指定的存储器区的大小,如下所示: (区大小,以字节为单位) = 2(SIZE+1) 存储器区最小允许为 32 字节,即SIZE 域最小允许为 4。表 3-9 在 175页 列出了 SIZE 域与区大小 相关的一些示例值,同时列出了 MPU 区基地址 (MPUBASE) 中对应的 N 值。 表 3-9. SIZE 域数值示例 SIZE 域编码 区大小 N 的值a 注: 00100b (0x4) 32 B 5 允许的最小区大小 01001b (0x9) 1 KB 10 - 10011b (0x13) 1 MB 20 - 11101b (0x1D) 1 GB 30 - 11111b (0x1F) 4 GB MPUBASE 寄存器中没有有效的 ADDR 最大可能的大小 域;该区已经占据全部寻址空间。 a. 表示 MPUBASE 寄存器(请参考 173页)中的 N 参数。 MPU 区属性和大小寄存器 (MPUATTR) 基址 0xE000.E000 偏移量 0xDA0 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 保留 XN 保留 AP 类型 RO RO RO R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 SRD 类型 R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 23 22 保留 RO RO 0 0 7 6 保留 RO RO 0 0 21 20 19 18 17 16 TEX S C B R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 5 4 3 2 1 0 SIZE ENABLE R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 位/域 31:29 名称 保留 类型 RO 复位 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 175 Texas Instruments-生产数据 Cortex-M3 外设 位/域 28 27 26:24 23:22 21:19 18 17 16 15:8 7:6 5:1 0 名称 XN 保留 AP 保留 TEX S C B SRD 保留 SIZE ENABLE 类型 R/W RO R/W RO R/W R/W R/W R/W R/W RO R/W R/W 复位 0 描述 禁止指令访问 值 描述 0 启用指令存取操作。 1 禁止指令存取操作。 0 0 0x0 0x0 0 0 0 0x00 0x0 0x0 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 访问权限 该域的更多使用信息请参考 表 3-5 在 121页。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 类型扩展掩码 该域的更多使用信息请参考 表 3-3 在 120页。 可共享 该位的更多使用信息请参考 表 3-3 在 120页。 可高速缓存 该位的更多使用信息请参考 表 3-3 在 120页。 可缓冲 该位的更多使用信息请参考 表 3-3 在 120页。 子区禁用位 值 描述 0 启用相应子区。 1 禁用相应子区。 存储器区小于等于 128 字节时,将无法再分割为子区。此时写入存储器 区属性时,应将 SRD 域配置为 0x00。请参阅 “存储子区”一节 在 120页 以了解更多信息。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 区大小掩码 SIZE 域用于定义由 MPUNUMBER 寄存器指定的 MPU 存储器区的大 小。请参阅 表 3-9 在 175页 以了解更多信息。 区启用 值 描述 0 禁用此存储器区。 1 启用此存储器区。 176 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 4 JTAG 接口 联合测试行动组 (JTAG) 是一项 IEEE 标准,它定义了数字集成电路的测试访问端口和边界扫描结 构,并且提供了一个标准化的串行接口来控制相关的测试逻辑。TAP、指令寄存器 (IR) 和数据寄存 器 (DR) 可用来测试组装好的印刷电路板的互连性,并获取元件的制造信息。JTAG 端口还可用于访 问和控制测试用设计的特性,如 I/O 管脚的观察和控制、扫描测试以及调试。 JTAG 接口由四个管脚组成:TCK、TMS、TDI 和 TDO。数据通过 TDI 串行发送至控制器,然后通 过 TDO 从控制器串行输出。该数据的解析取决于 TAP 控制器的当前状态。有关 JTAG 端口和 TAP 控制器的详细操作信息,请参阅“IEEE Standard 1149.1-Test Access Port and Boundary-Scan Architecture”。 该 Stellaris®JTAG 控制器与植入 Cortex-M3 内核的 ARM JTAG 控制器协同工作,可复用这两个 JTAG 控制器的 TDO 输出。ARM JTAG 指令选择 ARM TDO 输出,而 Stellaris JTAG 指令选择Stellaris TDO 输出。多路复用器由Stellaris JTAG 控制器控制,该控制器拥有 ARM 的全面编程信息 Stellaris 以及未执行的 JTAG 指令。 该 StellarisJTAG 模块具有以下特性: ■ IEEE 1149.1-1990 兼容的测试访问端口 (TAP) 控制器 ■ 4 位指令寄存器 (IR) 链,用于存储 JTAG 指令 ■ IEEE 标准指令:BYPASS、IDCODE、SAMPLE/PRELOAD、EXTEST 和 INTEST ■ ARM 附加指令:APACC、DPACC 和 ABORT ■ 集成的 ARM 串行线调试 (SWD) – 串行线 JTAG 调试端口 (SWJ-DP) – Flash 修补和断点 (FPB) 单元,用于实现断点操作 – 数据观察点和触发 (DWT) 单元,用于执行观察点、触发源和系统性能分析 – 仪表跟踪宏单元 (ITM),用于支持 printf 型调试 – 跟踪端口接口单元 (TPIU) 用作跟踪端口分析仪的桥接 请参阅 “ARM® Debug Interface V5 Architecture Specification” 了解有关 ARM JTAG控制器的详 细信息。 一月 06, 2012 177 Texas Instruments-生产数据 JTAG 接口 4.1 结构图 图 4-1. JTAG 模块结构图 TCK TMS TAP 控制器 TDI 指令寄存器 (IR) BYPASS 数据寄存器 边界扫描数据寄存器 IDCODE 数据寄存器 ABORT 数据寄存器 DPACC 数据寄存器 APACC 数据寄存器 TDO Cortex-M3 调试 端口 4.2 信号描述 下表列出了 JTAG/SWD 控制器的外部信号及其功能。JTAG/SWD 控制器信号是某些 GPIO 信号的 复用功能,但是请注意,这些管脚的复位状态是 JTAG/SWD 功能。JTAG/SWD 控制器信号处于保 护状态,要配置成 GPIO,即需要进行特殊处理,请参阅 “提交控制” 在 385页。表中的“复用管脚/ 赋值”一栏列出了 JTAG/SWD 控制器信号的 GPIO 管脚布局。将 GPIO 备用功能选择 (GPIOAFSEL) 寄存器( 399页)中的 AFSEL 位置位以选择 JTAG/SWD 功能。必须将括号中的数字写入 GPIO 端 口控制 (GPIOPCTL) 寄存器( 416页)中的 PMCn 域,以便将 JTAG/SWD 信号分配给指定的 GPIO 端口管脚。有关如何配置 GPIO,请参阅 “通用输入/输出端口 (GPIO)” 在 377页。 表 4-1. JTAG_SWD_SWO 信号 (100LQFP) 管脚名称 管脚编号 管脚复用/管脚 赋值 SWCLK 80 PC0 (3) SWDIO 79 PC1 (3) SWO 77 PC3 (3) TCK 80 PC0 (3) TDI 78 PC2 (3) TDO 77 PC3 (3) TMS 79 PC1 (3) a. TTL 表示管脚的电压水平与 TTL 一致。 管脚类型 I I/O O I I O I 缓冲区类型a 描述 TTL JTAG/SWD CLK 信号。 TTL JTAG TMS 及 SWDIO 信号。 TTL JTAG TDO 及 SWO 信号。 TTL JTAG/SWD CLK 信号。 TTL JTAG TDI 信号。 TTL JTAG TDO 及 SWO 信号。 TTL JTAG TMS 及 SWDIO 信号。 178 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 4-2. JTAG_SWD_SWO 信号 (108BGA) 管脚名称 管脚编号 管脚复用/管脚 赋值 SWCLK A9 PC0 (3) SWDIO B9 PC1 (3) SWO A10 PC3 (3) TCK A9 PC0 (3) TDI B8 PC2 (3) TDO A10 PC3 (3) TMS B9 PC1 (3) a. TTL 表示管脚的电压水平与 TTL 一致。 管脚类型 I I/O O I I O I 缓冲区类型a 描述 TTL JTAG/SWD CLK 信号。 TTL JTAG TMS 及 SWDIO 信号。 TTL JTAG TDO 及 SWO 信号。 TTL JTAG/SWD CLK 信号。 TTL JTAG TDI 信号。 TTL JTAG TDO 及 SWO 信号。 TTL JTAG TMS 及 SWDIO 信号。 4.3 功能描述 JTAG 模块的高级概念图如 图 4-1 在 178页 所示。JTAG 模块由测试访问端口 (TAP) 控制器和带有 并行更新寄存器的串行移位链组成。TAP 控制器是一个简单的状态机,由 TCK 和 TMS 输入控制。 TAP 控制器的当前状态取决于在 TCK 上升沿时在 TMS 管脚所捕获的值的序列。TAP 控制器决定了 串行移位链何时捕获新数据,何时将数据从 TDI 移位到 TDO 以及何时更新并行加载寄存器。TAP 控制器的当前状态还决定了当前是要访问指令寄存器 (IR) 链还是某个数据寄存器 (DR) 链。 带有并行加载寄存器的串行移位链由一个指令寄存器 (IR) 链和多个数据寄存器 (DR) 链组成。加载 在并行加载寄存器中的当前指令决定了哪个 DR 链在 TAP 控制器排序过程中被捕捉、移位或更新。 某些指令(如 EXTEST 和 INTEST)会对当前位于 DR 链的数据进行操作,但不会捕捉、移动或更 新任何链。为了确保 TDI 和 TDO 之间的串行通道一直连接,未被执行的指令将会译码成旁路 (BYPASS) 指令(有关已执行指令的列表,请参参阅 表 4-4 在 184页)。 有关 JTAG 时序图,请参阅 “JTAG 和边界扫描” 在 1225页。 注意: 在所有可能的复位源中,只有上电复位 (POR) 和确定的 RST 输入不对 JTAG 模块产生影 响。管脚配置由 RST 输入和 POR 来复位,但是内部的 JTAG 逻辑只能由 POR 来复位。更 多复位信息,请参阅 “复位源” 在 189页。 4.3.1 JTAG 接口管脚 JTAG 接口由四个标准管脚组成:TCK、TMS、TDI 和 TDO。有关这些管脚的信息,以及它们在上电 复位或者 RST 输入导致复位之后的相关状态,请参阅 表 4-3。下面接着详细介绍各个管脚的信息。 有关如何重新编程配置这些管脚,请参阅 “通用输入/输出端口 (GPIO)” 在 377页。 表 4-3. 上电复位或 RST 置位后的 JTAG 端口管脚状态 管脚名称 TCK TMS TDI TDO 数据方向 输入 输入 输入 输出 内部上拉 启用 启用 启用 启用 内部下拉 禁用 禁用 禁用 禁用 驱动强度 N/A N/A N/A 2-mA 驱动器 驱动值 N/A N/A N/A 高阻 4.3.1.1 测试时钟输入 (TCK) TCK 管脚是 JTAG 模块的时钟。借助该时钟,测试逻辑可以独立于其它系统时钟而单独运行。该时 钟还确保以菊链连接的多个 JTAG TAP 控制器可以在元件之间同步传送串行测试数据。正常工作期 间,TCK 通过一个自由运行的时钟(额定占空比为 50%)来驱动。必要时,TCK 可以在 0 或 1 停止 一月 06, 2012 179 Texas Instruments-生产数据 JTAG 接口 4.3.1.2 4.3.1.3 4.3.1.4 4.3.2 一段时间。当 TCK 保持为 0 或 1 时,TAP 控制器的状态不发生改变,且 JTAG 指令和数据寄存器 中的数据不会丢失。 默认情况下,TCK 管脚的内部上拉电阻在复位后将启用,以确保管脚在没有外部源驱动的情况下不 进行计时。只要 TCK 管脚连续被外部源驱动,我们就可以通过关闭内部上拉和下拉电阻来节省内部 功耗(请参阅 405页 和 407页)。 测试模式选择 (TMS) TMS 管脚用于选择 JTAG TAP 控制器的下一个状态。根据当前的 TAP 状态和 TMS 的采样值,系统 将进入下一个状态。因为 TMS 管脚在 TCK 的上升沿被采样,根据 “IEEE Standard 1149.1” ,TMS 的值将在 TCK 下降沿发生变化。 保持 TMS 高电平持续 5 个连续的 TCK 周期,将驱使 TAP 控制器状态机进入测试-逻辑-复位 (Test-Logic-Reset) 状态。当 TAP 控制器进入测试-逻辑-复位 (Test-Logic-Reset) 状态时,JTAG 模 块和相关寄存器都将复位为默认值。该过程可用于初始化 JTAG 控制器。图 4-2 在 181页 中列出了 所有 JTAG 测试访问端口状态机。 默认情况下,TMS 管脚的内部上拉电阻在复位后将启用。GPIO 端口 C 变为上拉电阻设置时,应该 确保 PC1/TMS 上的内部上拉电阻保持启用;否则可能会丢失 JTAG 通信(请参阅 405页)。 测试数据输入 (TDI) TDI 管脚将串行信息流传送给 IR 链和 DR 链。TDI 在 TCK 的上升沿被采样,根据当前 TAP 状态和 当前指令,它将这个数据传递给相应的移位寄存器链。因为 TDI 管脚在 TCK 的上升沿被采样,根 据 “IEEE Standard 1149.1” ,TDI 的值将在 TCK 下降沿发生变化。 默认情况下,TDI 管脚的内部上拉电阻在复位后将启用。GPIO 端口 C 变为上拉电阻设置时,应该 确保 PC2/TDI 上的内部上拉电阻保持启用;否则可能会丢失 JTAG 通信(请参阅 405页)。 测试数据输出 (TDO) TDO 管脚将串行信息流从 IR 链或 DR 链输出。TDO 的值取决于当前的 TAP 状态、当前指令以及正 在访问的数据链中的数据。要在不使用 JTAG 端口时节省功耗,若当前并没有移出数据的活动,TDO 管脚可处于非激活驱动状态。因为在菊链配置中,TDO 可以连接另一个控制器的 TDI,根据 “IEEE Standard 1149.1” ,TDO 的值将在 TCK 下降沿发生变化。 默认情况下,TDO 管脚的内部上拉电阻在复位后将启用,这样确保了在 JTAG 端口闲置时,该管脚 依然保持恒定的逻辑电平。在特定的 TAP 控制状态中,如果高阻输出值尚可接受,那么可以通过关 闭内部上拉和内部下拉电阻来节省内部功耗(请参阅 405页 和 407页)。 JTAG TAP 控制器 JTAG TAP 控制器状态机如 图 4-2 所示。TAP 控制器状态机在上电复位 (POR) 时将重置为测试-逻 辑-复位 (Test-Logic-Reset) 状态。要在微控制器上电后复位 JTAG 模块,TMS 输入必须保持高电平 并持续 5 个 TCK 时钟周期,以复位 TAP 控制器和所有相关的 JTAG 链。在 TMS 管脚上发出正确的 序列,即可使 JTAG 模块在扩展测试序列期间移入新指令、移入数据或变为空闲。关 TAP 控制器的 功能以及每种状态发生时的操作信息,请参阅 “IEEE Standard 1149.1”。 180 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 4-2. 测试访问端口状态机 测试逻辑复位 1 0 运行测试闲置 1 0 选择 DR 扫描 1 0 捕获 DR 1 0 移位 DR 1 0 退出 1 DR 1 0 暂停 DR 1 0 退出 2 DR 0 1 刷新 DR 10 选择 IR 扫描 1 0 捕获 IR 1 0 移位 IR 1 0 退出 1 IR 1 0 暂停 IR 1 0 退出 2 IR 0 1 刷新 IR 10 4.3.3 4.3.4 4.3.4.1 移位寄存器 移位寄存器由串行移位寄存器链和并行加载寄存器组成。当 TAP 控制器处于捕获 (CAPTURE) 状态 时,串行移位寄存器链将对特定信息进行采样;当 TAP 控制器处于移位 (SHIFT) 状态时,它将允许 该信息通过 TDO 管脚移出。当采样数据正从 TDO 管脚移出链时,新的数据将从 TDI 管脚移入串行 移位寄存器。当 TAP 控制器处于更新 (UPDATE) 状态时,这些新数据将加载到并行加载寄存器。 有关各移位寄存器的详细信息,请参阅 “寄存器描述” 在 184页。 操作注意事项 在使用 JTAG 模块时必须考虑某些操作参数。由于 JTAG 管脚可被编程为 GPIO,所以必须考虑这 些管脚的电路板配置和复位条件。另外,JTAG 模块已经集成了 ARM 串行线调试器。这两种操作模 式的切换方法如下所述。 GPIO 功能 当微控制器因 POR 或者 RST 而复位时,JTAG/SWD 端口管脚将重置为默认的 JTAG/SWD 配置。 默认配置包括启用数字功能(在端口 C 的 GPIO 数字使能 (GPIODEN) 寄存器中的 DEN[3:0] 置 位)、启用上拉电阻(在端口 C 的 GPIO上拉电阻选择 (GPIOPUR) 寄存器中的 PUE[3:0] 置 位)、禁用下拉电阻(在端口 C 的 GPIO 下拉电阻选择 (GPIOPDR) 寄存器中的 PDE[3:0] 清 零)以及启用 JTAG/SWD 管脚的复用硬件功能(在端口 C 的 GPIO 备用功能选择 (GPIOAFSEL) 寄存器中的 AFSEL[3:0] 置位)。请参阅 399页、 405页、 407页 以及 410页。 一月 06, 2012 181 Texas Instruments-生产数据 JTAG 接口 4.3.4.2 4.3.4.3 复位后软件可以通过将 Port C GPIOAFSEL 寄存器的 AFSEL[3:0] 清零来把这些管脚配置为 GPIO。 当用户不需要将 JTAG/SWD 端口用于调试或电路板级测试时,这一功能就能多提供 4 个 GPIO,以 便在设计中使用。 小心 – 用户可以建立一个软件序列来阻止调试器连接到 Stellaris 微控制器。如果将程序代码加载到 Flash 中会立即将 JTAG 管脚变成其 GPIO 功能,那么在 JTAG 管脚功能切换之前,调试器将没有 足够的时间去连接和终止控制器。结果调试器可能被锁定在该部分外。为了避免这个问题,可以使 用一个基于外部或软件触发器的软件程序来恢复 JTAG 功能。 GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请 参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使能 (GPIODEN) 寄存器(请参阅 410页)中 受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有 被锁定,同时 GPIO 确认 (GPIOCR) 寄存器(请参阅 413页)中相应的位被置位。 JTAG/SWD 通信 由于调试时钟和系统时钟可以在不同的频率运行,所以必须注意保持与 JTAG/SWD 接口的可靠通 信。处于捕获-DR (Capture-DR) 状态时,将被返回先前处理的结果(如果有),同时伴随一个 3 位 的应答响应。软件应该检测这个应答响应,以查看在初始化一个新的通信前,先前的操作是否已经 完成。或者,如果系统时钟至少比调试时钟(TCK 或 SWCLK)快 8 倍,那么先前的操作将有足够的 时间来完成,应答 (ACK) 位也无需检查。 恢复“锁定的”微控制器 注意: 执行以下序列将会把 “非易失性寄存器编程” 在 290页 中列出的非易失性寄存器恢复为出厂默 认值。执行以下序列将先对闪存进行整体擦除,然后恢复非易失性寄存器。 如果软件将任意一个 JTAG/SWD 管脚配置为 GPIO,并且失去与调试器进行通信的能力,那么可以 用调试端口解锁序列来恢复微控制器。当微控制器保持在复位时,执行总共 10 次的 JTAG 到 SWD 和 SWD 到 JTAG 的切换序列,将会整体擦除闪存。调试端口解锁序列为: 1. 发出并保持 RST 信号。 2. 执行“JTAG 到 SWD 切换”一节 在 183页 中 JTAG 到 SWD 切换序列的第 1 步和第 2 步。 3. 执行“SWD 到 JTAG 切换”一节 在 183页 中 SWD 到 JTAG 切换序列的第 1 步和第 2 步。 4. 执行 JTAG 到 SWD 切换序列的第 1 步和第 2 步。 5. 执行 SWD 到 JTAG 切换序列的第 1 步和第 2 步。 6. 执行 JTAG 到 SWD 切换序列的第 1 步和第 2 步。 7. 执行 SWD 到 JTAG 切换序列的第 1 步和第 2 步。 8. 执行 JTAG 到 SWD 切换序列的第 1 步和第 2 步。 9. 执行 SWD 到 JTAG 切换序列的第 1 步和第 2 步。 10. 执行 JTAG 到 SWD 切换序列的第 1 步和第 2 步。 11. 执行 SWD 到 JTAG 切换序列的第 1 步和第 2 步。 12. 释放 RST 信号。 182 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 4.3.4.4 13. 等待 400 ms。 14. 微控制器将重启电源。 ARM 串行线调试 (SWD) 要无缝集成 ARM 串行线调试 (SWD) 功能,串行线调试器必须能够与 Cortex-M3 内核相连,而无需 执行或者了解 JTAG 运行周期。该集成可以通过一个在 SWD 会话开始前发出 SWD 前导码来实现。 用来启用 SWJ-DP 模块 SWD 接口的切换前导码将在 TAP 控制器处于 Test-Logic-Reset 状态时开 启。此后,前导码会使 TAP 控制器依次进入以下状态:运行-测试-闲置 (Run Test Idle)、选择 DR (Select DR)、选择 IR (Select IR)、测试-逻辑-复位 (Test Logic Reset)、测试-逻辑-复位 (Test Logic Reset)、运行-测试-闲置 (Run Test Idle)、运行-测试-闲置 (Run Test Idle)、选择 DR (Select DR)、选择 IR (Select IR)、测试-逻辑-复位 (Test Logic Reset)、测试-逻辑-复位 (Test Logic Reset)、运行-测试-闲置 (Run Test Idle)、运行-测试-闲置 (Run Test Idle)、选择 DR (Select DR)、 选择 IR (Select IR) 以及测试-逻辑-复位 (Test Logic Reset) 状态。 依次进入 TAP 状态机的此序列将启用 SWD 接口并禁用 JTAG 接口。有关该操作和 SWD 接口方面 的详细信息,请参阅“ARM® Debug Interface V5 Architecture Specification”。 因为上述序列是一系列有效的 JTAG 操作,所以 ARM JTAG TAP 控制器不能完全兼容 “IEEE Standard 1149.1”。这是 ARM JTAG TAP 控制器唯一不完全符合规范的地方。由于 TAP 控制器 在正常操作中出现该序列的可能性很低,所以应该不会影响 JTAG 接口的正常运行。 JTAG 到 SWD 切换 为了将调试访问端口 (DAP) 的操作模式由 JTAG 切换到 SWD,外部调试硬件必须向微控制器发送 切换前导码。用于切换到 SWD 模式的 16 位 TMS 命令为 b1110.0111.1001.1110,先发送最低有 效位 (LSB)。当先发送最低有效位 (LSB) 时,该命令也可以表示为 0xE79E。完整的切换序列应该 包含 TCK/SWCLK 以及 TMS/SWDIO 信号上的以下操作: 1. TMS/SWDIO 为高电平时,发送至少 50 个 TCK/SWCLK 周期,以确保 JTAG 和 SWD 都处于复位/ 空闲状态。 2. 在 TMS 上发送 JTAG 到 SWD 的 16 位切换命令 0xE79E。 3. TMS/SWDIO 为高电平时,发送至少 50 个 TCK/SWCLK 周期,以确保当 SWJ-DP 已经处于 SWD 模式时,SWD 将在发送切换序列之前进入线复位状态。 SWD 到 JTAG 切换 要将调试访问端口 (DAP) 的操作模式由 SWD 切换到 JTAG,外部调试硬件必须向微控制器发送切 换前导码。切换到 JTAG 模式的 16 位 TMS 命令为 b1110.0111.0011.1100,先发送最低有效位 (LSB)。当先发送最低有效位 (LSB) 时,这个命令也可以表示为 0xE73C。完整的切换序列应该包含 TCK/SWCLK 以及 TMS/SWDIO 信号上的以下操作: 1. TMS/SWDIO 为高电平时,发送至少 50 个 TCK/SWCLK 周期,以确保 JTAG 和 SWD 都处于复位/ 空闲状态。 2. 在 TMS 上发送 SWD 到 JTAG 的 16 位切换命令 0xE73C。 3. TMS/SWDIO 为高电平时,发送至少 50 个 TCK/SWCLK 周期,以确保当 SWJ-DP 已经处于 JTAG 模式时,JTAG 将在发送切换序列之前进入测试-逻辑-复位 (Test Logic Reset) 状态。 一月 06, 2012 183 Texas Instruments-生产数据 JTAG 接口 4.4 4.5 4.5.1 4.5.1.1 4.5.1.2 初始化及配置 在上电复位或外部复位 (RST) 后,JTAG 管脚将被自动配置为 JTAG 通信功能。不需要执行用户自 定义的初始化或配置。但是,如果用户应用程序将这些管脚变成 GPIO 功能,那么在恢复 JTAG 通 信前,这些管脚必须恢复 JTAG 功能。要使管脚恢复 JTAG 功能,请通过 GPIOAFSEL 寄存器将 4 个 JTAG 管脚 (PC[3:0]) 设置为其复用功能。另外,要启用复用功能,应将 4 个 JTAG 管脚 (PC[3:0]) 上的 GPIO 管脚配置的任何其他更改都恢复为默认设置。 寄存器描述 JTAG TAP 控制器或移位寄存器链中的寄存器都没有进行存储器映射,它们不能通过芯片中的高级 外设总线 (APB) 访问。但是,这些 JTAG 控制器里的寄存器都可以通过 TAP 控制器进行串行访问。 这些寄存器包括指令寄存器和 6 个数据寄存器。 指令寄存器 (IR) JTAG TAP 指令寄存器 (IR) 是一个 4 位串行扫描链。它连接在 JTAG 的 TDI 和 TDO 管脚之间,并 且带有一个并行加载寄存器。当 TAP 控制器处于正确的状态时,相应的位便可移入指令寄存器 (IR)。 这些位一旦移入链中并且更新后,就会被解析成当前指令。有关指令寄存器 (IR) 位的译码,请参阅 表 4-4。下面对每条指令及其相关的数据寄存器进行了详细解释。 表 4-4. JTAG 指令寄存器命令 IR[3:0] 0x0 指令 EXTEST 0x1 INTEST 0x2 SAMPLE/PRELOAD 0x8 0xA 0xB 0xE 0xF 其它 ABORT DPACC APACC IDCODE BYPASS 保留 描述 通过采样/预加载 (SAMPLE/PRELOAD) 指令将预加载到边界扫描链的值 驱动到管脚上。 通过采样/预加载 (SAMPLE/PRELOAD) 指令将预加载到边界扫描链的值 驱动到控制器里。 捕获当前的 I/O 值,并在新的预加载数据移入时将采样的值移出边界扫描 链。 将数据移入 ARM 调试端口中止寄存器 将数据移入和移出 ARM DP 访问寄存器。 将数据移入和移出 ARM AC 访问寄存器。 将“IEEE Standard 1149.1” 定义的制造信息装载到 IDCODE 链并移出。 通过一个移位寄存器链将 TDI 连接到 TDO。 默认为 BYPASS 指令,以确保 TDI 总是连接到 TDO。 EXTEST 指令 EXTEST 指令与本身的数据寄存器链没有联系。EXTEST 指令使用的是通过采样/预加载 (SAMPLE/PRELOAD) 指令预加载到边界扫描数据寄存器里的数据。当指令寄存器收到 EXTEST 指 令时,边界扫描数据寄存器中预加的与输出和输出启用相关的载数据将用于驱动 GPIO 管脚,而不 用于驱动来自内核的信号。通过将已知的值驱动到控制器外的测试,该指令可用于验证联通性。当 指令寄存器收到 EXTEST 指令时,将访问边界扫描数据寄存器以对当前数据采样,然后将其移出, 同时将新的数据加载到边界扫描数据寄存器。 INTEST 指令 INTEST 指令与本身的数据寄存器链没有关联。INTEST 指令使用的是通过采样/预加载 (SAMPLE/PRELOAD) 指令预加载到边界扫描数据寄存器里的数据。当指令寄存器收到 INTEST 指 令时,边界扫描数据寄存器里预加载的与输入相关的数据将用于驱动进入内核的信号,而不用于驱 动来自 GPIO 管脚的信号。通过将已知的值驱动进控制器,该指令可以用于测试。特别需要注意的 是,虽然 RST 输入管脚在边界扫描数据寄存器链上,但它只供观察。当指令寄存器收到 INTEST 指 184 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 4.5.1.3 4.5.1.4 4.5.1.5 4.5.1.6 4.5.1.7 4.5.1.8 4.5.2 令时,将访问边界扫描数据寄存器以对当前数据采样,然后将其移出,同时将新的数据加载到边界 扫描数据寄存器。 SAMPLE/PRELOAD 指令 采样/预加载 (SAMPLE/PRELOAD) 指令用于连接 TDI 和 TDO 之间的边界扫描数据寄存器链。该指 令将对当前管脚的状态采样以供观察,并且预加载新的测试数据。每个 GPIO 管脚都有一个相关的 输入、输出和输出启用信号。在该指令执行期间,当 TAP 控制器进入捕获 DR (Capture DR) 状态 时,每个 GPIO 管脚的输入、输出和输出启用信号都会被捕获。当 TAP 控制器处于位移, DR (Shift DR) 状态时这些采样通过 TDO 被串行移出,它们可以在各种测试中用于观察和比较。 在这些输入、输出和输出启用信号的采样值被移出边界扫描数据寄存器的同时,新的数据也正通过 TDI 管脚移入边界扫描数据寄存器。一旦新数据被移入边界扫描数据寄存器,当 TAP 控制器进入更 新 DR (Update DR) 状态时,数据将被保存在并行加载寄存器中。这种并行加载寄存器的更新可以将 数据预加载到每个与输入、输出和输出启用相关的边界扫描数据寄存器中。预加载数据可以配合 EXTEST 与 INTEST 指令使用,以将数据驱动进入内核或将数据驱动到内核外。更多信息请参阅 “边界扫描数据寄存器” 在 186页。 ABORT 指令 终止 (ABORT) 指令用于连接 TDI 和 TDO 之间相关的中止数据寄存器链。该指令提供对 ARM 调试 访问端口 (DAP) 的中止寄存器的读取和写入访问。将相应数据移入这个数据寄存器即可将各种错误 位清零,或对之前的请求启动 DAP 中止。更多信息请参阅 “ABORT 数据寄存器” 在 187页。 DPACC 指令 DPACC 指令用于连接 TDI 和 TDO之间相关的 DPACC 数据寄存器链。该指令提供对 ARM 调试访 问端口 (DAP) 的 DPACC 寄存器的读取和写入访问。将相应数据移入该寄存器并且从该寄存器读取 输出数据,便可以对 ARM 调试和状态寄存器进行读取和写入访问。更多信息请参阅 “DPACC 数据 寄存器” 在 187页。 APACC 指令 APACC 指令用于连接 TDI 和 TDO 之间相关的 APACC 数据寄存器链。该指令提供对 ARM 调试访 问端口 (DAP) 的 APACC 寄存器的读和写访问。将数据移入该寄存器并且从该寄存器读取输出数 据,便可以通过调试端口对内部组件和总线进行读和写访问。更多信息请参阅 “APACC 数据寄存 器” 在 186页。 IDCODE 指令 IDCODE 指令用于连接 TDI 和 TDO 之间相关的 IDCODE 数据寄存器链。该指令提供了有关制造 商,器件编号和 ARM 内核版本等信息。测试设备和调试器可以使用这些信息来自动配置输入和输 出数据流。当上电复位 (POR) 或者进入 Test-Logic-Reset 状态时,IDCODE 指令被默认加载到 JTAG 的指令寄存器。更多信息请参阅 “IDCODE 数据寄存器” 在 186页。 BYPASS 指令 BYPASS 指令用于连接TDI 和 TDO 之间相关的 BYPASS 数据寄存器链。该指令用来在 TDI 和 TDO 端口之间创建一条长度最短的串行路径。BYPASS 数据寄存器是个 1 位移位寄存器。对于不需要特 别测试的组件,通过加载 BYPASS 指令可以在 JTAG 扫描链中将它们旁路掉,由此提高了测试效 率。更多信息请参阅 “BYPASS 数据寄存器” 在 186页。 数据寄存器 JTAG 模块包含 6 个数据寄存器。串行数据寄存器链包括:IDCODE、BYPASS、边界扫描、APACC、 DPACC 和 ABORT。它们将在下面的小节中进行讨论。 一月 06, 2012 185 Texas Instruments-生产数据 JTAG 接口 4.5.2.1 IDCODE 数据寄存器 由“IEEE Standard 1149.1” 定义的 32 位 IDCODE 数据寄存器的格式如 图 4-3 所示。该标准要求 每个与 JTAG 兼容的设备都将 IDCODE 指令或者 BYPASS 指令当作默认指令来执行。IDCODE 数 据寄存器的 LSB (最低位)被定义成 1,以将它和 LSB 为 0 的 BYPASS 指令区分开来。这使得自动 配置测试工具可以决定哪个指令是默认指令。 JTAG 端口主要用于制造商测试组件以及编程开发和调试。为了便于使用自动配置调试工具,IDCODE 指令将输出 0x4BA00477 值。这样,调试器就可以自动进行配置以便在调试过程中正确配合 Cortex-M3 工作。 图 4-3. IDCODE 寄存器格式 31 28 27 TDI 版本 芯片型号 12 11 制造商 ID 10 1 TDO 4.5.2.2 BYPASS 数据寄存器 由“IEEE Standard 1149.1” 定义的 1 位 BYPASS 数据寄存器的格式如 图 4-4 所示。该标准要求 每个与 JTAG 兼容的器件将 BYPASS 指令或者 IDCODE 指令当作默认指令来执行。BYPASS 数据 寄存器的 LSB 被定义成 0,以便将它与 LSB 为 1 的 IDCODE 指令区分开来。这使得自动配置测试 工具可以决定哪个指令是默认指令。 图 4-4. BYPASS 寄存器格式 0 TDI 0 TDO 4.5.2.3 边界扫描数据寄存器 边界扫描数据寄存器的格式如 图 4-5 所示。每个 GPIO 管脚都包含在边界扫描数据寄存器中,这些 管脚的顺序为 JTAG 端口管脚排列的逆时针方向。每个 GPIO 管脚有 3 个相关的数字信号包含在链 中。这些信号是输入,输出和输出启用,它们按照图示顺序排列。 当 SAMPLE/PRELOAD 指令访问边界扫描数据寄存器时,每个数字管脚的输入,输出和输出启用被 采样并且移出链供校验。这些值的采样发生在 TCK 上升沿,TAP 控制器处于 Capture DR 状态。当 TAP 控制器在 Shift DR 状态下采样数据被移出边界扫描链时,新的数据可以预加载入链以便 和 EXTEST 指令和 INTEST 指令一起使用。EXTEST 指令强制将数据移出控制器,INTEST 指令强制 将数据移入控制器。 图 4-5. 边界扫描寄存器格式 TDI 输 入 输 出 O ... 输 E 入 输 出 O E 输 入 输 出 O E ... 输 入 输 出 O TDO E 4.5.2.4 第1 个 GPIO 第m 个 GPIO 第(m+1) 个 GPIO GPIO 第n 个 APACC 数据寄存器 由 ARM 定义的 35 位 APACC 数据寄存器的格式请参阅 “ARM® Debug Interface V5 Architecture Specification”。 186 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 4.5.2.5 4.5.2.6 DPACC 数据寄存器 由 ARM 定义的 35 位 DPACC 数据寄存器的格式请参阅 “ARM® Debug Interface V5 Architecture Specification”。 ABORT 数据寄存器 由 ARM 定义的 35 位 ABORT 数据寄存器的格式请参阅 “ARM® Debug Interface V5 Architecture Specification”。 一月 06, 2012 187 Texas Instruments-生产数据 系统控制 5 系统控制 系统控制配置整个器件的操作,并提供器件信息。可配置的特性包括复位控制、NMI操作、功率控 制、时钟控制和低功耗模式。 5.1 信号描述 以下表格列出了系统控制模块的外部信号,并描述了各自的功能。NMI 信号是 GPIOPB7 信号的复 用功能,复位时用作 GPIO 功能。PB7 具备提交保护,并需要特定的处理过程才能被配置为任意复 用功能或者随后返回 GPIO 功能,见 “提交控制” 在 385页。下表中“管脚复用/赋值”栏给出了 NMI 信号的 GPIO 管脚位置。GPIO 备选功能选择 (GPIOAFSEL) 寄存器 ( 399页) 里的 AFSEL 位应被置 位以选择 NMI 功能。括号中的数字是必须写入 GPIO 端口控制 (GPIOPCTL) 寄存器 ( 416页) 里的 PMCn 域的编码,以便将 NMI 信号分配给指定的 GPIO 端口管脚。更多关于 GPIO 配置的问题,请 参考 “通用输入/输出端口 (GPIO)” 在 377页。剩下的信号(在“管脚复用/分配”栏中标记为“固定”) 有一个固定的管脚分配和功能。 表 5-1. System Control & Clocks(系统控制及时钟) 信号 (100LQFP) 管脚名称 管脚编号 管脚复用/管脚 管脚类型 赋值 缓冲区类型a 描述 NMI 89 PB7 (4) I TTL 不可屏蔽的中断。 OSC0 48 固定 I 模拟 晶体主振荡器输入或外部时钟参考输入。 OSC1 49 固定 O 模拟 晶体主振荡器输出。使用单端时钟源时不连接。 RST 64 固定 I TTL 系统复位输入。 a. TTL 表示管脚的电压水平与 TTL 一致。 表 5-2. System Control & Clocks(系统控制及时钟) 信号 (108BGA) 管脚名称 管脚编号 管脚复用/管脚 管脚类型 赋值 缓冲区类型a 描述 NMI A8 PB7 (4) I TTL 不可屏蔽的中断。 OSC0 L11 固定 I 模拟 晶体主振荡器输入或外部时钟参考输入。 OSC1 M11 固定 O 模拟 晶体主振荡器输出。使用单端时钟源时不连接。 RST H11 固定 I TTL 系统复位输入。 a. TTL 表示管脚的电压水平与 TTL 一致。 5.2 功能描述 系统控制模块提供以下功能: ■ 器件标识,见 “器件标识” 在 188页 ■ 本地控制,例如复位(见 “复位控制” 在 189页),电源(见 “功率控制” 在 193页)和时钟控制(见 “时钟控制” 在 194页) ■ 系统控制(运行、睡眠和深度睡眠模式),见 “系统控制” 在 200页 5.2.1 器件标识 有些只读寄存器可以向软件提供关于微控制器的信息,比如版本、器件编号、SRAM大小、Flash存 储器大小以及其它特性。见 DID0 ( 204页)、DID1 ( 231页)、DC0-DC9 ( 233页) 和 NVMSTAT ( 255页) 寄存器。 188 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.2.2 5.2.2.1 复位控制 本小节论述复位过程中硬件方面的功能和复位序列之后的系统软件要求。 复位源 LM3S9B92 微控制器有六个复位源: 1. 上电复位 (POR) (见第 190 页)。 2. 外部复位输入管脚 (RST) 有效 (见第 190 页)。 3. 内部掉电 (BOR) 检测器 (见第 191 页)。 4. 软件启动的复位(利用软件复位寄存器) (见第 192 页)。 5. 违反看门狗定时器复位条件 (见第 192 页)。 6. MOSC 故障 (见第 193 页)。 表 5-3 提供了不同复位操作结果的摘要。 表 5-3. 复位源 复位源 内核复位? 上电复位 是 RST 是 掉电复位 是 使用 APINT 寄存器中的 是 SYSRESREQ 位进行软件系统 请求复位。 使用 APINT 寄存器中的 是 VECTRESET 位进行软件系统 请求复位。 软件外设复位 否 看门狗复位 是 MOSC 故障复位 是 a. 使用软件复位控制寄存器可在在模块基础上进行编程。 JTAG 复位? 是 是 是 是 否 是 是 是 片上外设复位? 是 是 是 是 否 是a 是 是 复位后,复位原因 (RESC) 寄存器根据复位原因置位。该寄存器中的位具有粘着特性 (sticky),经过 多个复位序列后仍能保持其状态,内部POR复位除外。内部POR复位后,RESC寄存器中除POR指 示器对应位之外的所有位都清零。RESC寄存器的位可以通过写0来清零。 任何复位内核的复位中,通过使用启动配置 (BOOTCFG) 寄存器中配置好的GPIO信号,用户可以 选择让内核直接执行 ROM 的 Boot Loader 或 Flash 存储器上的应用程序。 复位时,ROM被映射到Flash存储器以便ROM启动序列始终可以被执行。从ROM执行的启动序列如 下: 1. 清 BA 位以使 ROM 映射在 0x01xx.xxxx,同时Flash存储器映射在0x0。 2. 读取 BOOTCFG 寄存器。如果EN位被清零,那么将指定的GPIO管脚的状态与规定的极性相比 较,如果管脚状态与规定的极性匹配,那么将 ROM 映射到地址 0x0000.0000 并继续执行 ROM 的 Boot Loader。 一月 06, 2012 189 Texas Instruments-生产数据 系统控制 5.2.2.2 5.2.2.3 3. 如果管脚状态与规定的极性不匹配,那么读取地址 0x0000.0004 的数据。如果该地址的数据是 0xFFFF.FFFF,那么将 ROM 映射到地址 0x0000.0000 并继续执行 ROM 的 Boot Loader。 4. 如果地址0x0000.0004的数据是有效的,堆栈指针 (SP) 装载Flash存储器地址0x0000.0000的数 据,程序计数器 (PC) 装载地址0x0000.0004的数据。用户应用程序开始执行。 例如,如果 BOOTCFG 寄存器写入值0x0000.3C01并提交,那么复位时将检查PB7来决定是否执行 ROM的Boot Loader。如果PB7是低电平,内核无条件的开始执行ROM的Boot Loader。如果PB7是 高电平,若0x0000.0004位置的复位向量不是0xFFFF.FFFF,那么执行Flash存储器的应用程序,若 复位向量是0xFFFF.FFFF,则执行ROM的Boot Loader。 上电复位 (POR) 内部上电复位 (POR) 电路监测电源电压 (VDD),并且在电源达到阈值 (VTH) 时向包括 JTAG 在内的 所有内部逻辑产生复位信号。当片上上电复位脉冲结束时,微控制器必须工作在规定的参数范围内 (见 “上电和掉电” 在 1227页)。对于一些应用,要求使用外部复位信号使微控制器保持在复位状态比 内部POR更长的时间,这时可以使用RST输入,如 “外部 RST 管脚” 在 190页 所讨论的。 上电复位序列如下: 1. 微控制器等待内部POR变为无效。 2. 内部复位释放,内核从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第 一条指令,然后开始执行。 内部 POR 只在微控制器最初上电激活。上电复位时序如图 26-4 在 1227页所示。 外部 RST 管脚 注意: 建议对RST信号的跟踪线路越短越好。确保将连接RST信号的任何元件放置得尽可能靠近微 控制器。 如果应用中只使用内部 POR 电路,那么 RST 输入必须通过一个可选的上拉电阻(0 到 100K Ω)连 接到电源 (VDD),如 图 5-1 在 190页 所示。 图 5-1. 基本 RST 配置 VDD Stellaris® RPU RST RPU = 0 至 100 kΩ 外部复位管脚 (RST) 复位微控制器,包括内核和除JTAG TAP控制器外的所有片上外设(查看 “JTAG 接口” 在 177页)。外部复位序列如下: 1. 外部复位管脚 (RST) 在 TMIN 规定的时间持续有效,然后失效(查看 “复位” 在 1228页)。 2. 内部复位释放,内核从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第 一条指令,然后开始执行。 190 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 为提高噪声免疫和/或延迟上电复位,RST输入可以连接一个RC网络,如 图 5-2 在 191页所示。 图 5-2. 延长上电复位时间的外部电路 VDD Stellaris® RPU RST C1 RPU = 1 kΩ 至 100 kΩ C1 = 1 nF 至 10 µF 如果应用中需要使用外部复位开关,图 5-3 在 191页 显示了适当的电路来使用。 图 5-3. 复位电路由开关控制 VDD Stellaris® RPU RST Rs C1 5.2.2.4 典型 RPU = 10 kΩ 典型 RS = 470 Ω C1 = 10 nF RPU 和 C1 元件确定了上电延时。 外部复位时序如 图 26-7 在 1228页所示。 掉电复位 (BOR) 微控制器提供的掉电检测电路在电源(VDD)降至低于掉电阈值电压(VBTH)时触发。如果检测到 一个掉电条件,系统会产生一个中断或系统复位。默认条件是产生一个中断,所以BOR必须启用。 掉电复位由上电和掉电复位控 (PBORCTL)寄存器控制。为了使掉电条件触发一次复位,PBORCTL 寄存器的BORIOR位必须被置位;如果BORIOR位被清零,将会产生一个中断。如果在Flash编程或擦 除期间产生了掉电条件,不管PBORCTL寄存器如何设置都会产生一次完全的系统复位。 掉电复位序列如下: 1. 当 VDD 降至低于 VBTH 时,设置内部BOR条件。 2. 如果BOR条件存在,内部复位有效。 一月 06, 2012 191 Texas Instruments-生产数据 系统控制 5.2.2.5 5.2.2.6 3. 内部复位释放,微控制器获取并加载初始堆栈指针、初始程序计数器以及由程序计数器指定的 第一条指令,然后开始执行。 4. 在软件有机会查询初始原因之前,内部BOR条件会保持500µs后复位,以阻止又一个BOR条件 有效。 上电复位的效果等同于一次有效的外部RST输入,并且该复位将会保持有效直到VDD恢复到正确的电 压级别。在复位中断处理中可以检查RESC寄存器来确定掉电条件是否是复位的原因,这就允许软 件决定恢复何种操作。 内部掉电复位时序如 图 26-5 在 1227页 所示。 软件复位 软件可以复位一个特别的外设或者对整个微控制器产生一个复位 通过用于控制各个片上外设的复位信号的三个寄存器(可查看 SRCRn 寄存器,见 277页),软件可 以单独复位各个外设。如果外设对应的位被置位随后清零,那么该外设被复位。复位寄存器的编码 与外设和片内功能的时钟门控的编码是一致的(见 “系统控制” 在 200页)。 软件可以通过置位应用中断和复位控制 (APINT)寄存器的 SYSRESREQ 位来复位包括内核在内的整 个微控制器。软件启动的系统复位序列如下: 1. 通过置位 SYSRESREQ 位即可产生软件微控制器复位。 2. 内部复位有效。 3. 内部复位失效,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定 的第一条指令,然后开始执行。 软件可以通过置位 APINT 寄存器的 VECTRESET 位来复位内核。软件启动的内核复位序列如下: 1. 通过置位 VECTRESET 位来启动内核复位。 2. 内部复位有效。 3. 内部复位失效,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定 的第一条指令,然后开始执行。 软件启动的系统复位时序如 图 26-8 在 1228页 所示。 看门狗定时器复位 看门狗定时器模块的功能是阻止系统挂起。LM3S9B92 微控制器有两个看门狗定时器模块以防其中 一个看门狗时钟源失效。一个看门狗脱离系统时钟运行,另一个脱离精确内部振荡器 (PIOSC) 运 行。除了由于PIOSC看门狗定时器模块处于不同的时钟域,在两次访问寄存器时必须要有一个时间 延迟外,每个模块以相同的方式工作。看门狗定时器可被配置为第一次溢出对微控制器产生一个中 断,第二次溢出产生一个复位。 在看门狗第一次溢出发生后,32位看门狗计数器会重新加载看门狗定时器加载 (WDTLOAD)寄存器 的值并从这个值继续递减计数。如果在第一次溢出中断清除之前定时器再次递减计数到零,并且复 位信号已启用,那么看门狗定时器将其复位信号发送给微控制器。看门狗定时器复位序列如下: 1. 看门狗定时器第二次溢出时不需要被服务。 2. 内部复位有效。 192 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.2.3 5.2.3.1 5.2.3.2 5.2.4 3. 内部复位释放,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定 的第一条指令,然后开始执行。 关于看门狗定时器模块的更多信息,可查看 “看门狗定时器 (WDT)” 在 542页。 看门狗复位时序如 图 26-9 在 1229页 所示。 不可屏蔽的中断 微控制器有三个不可屏蔽的中断源 (NMI): ■ NMI信号有效 ■ 主振荡器校验错误 ■ 中断控制和状态 (INTCTRL) 寄存器的 NMISET 位( Cortex™M3 中,[查看 144页])。 为辨认出中断源,软件必须检查中断原因。 NMI 管脚 NMI 信号是 GPIO 端口管脚 PB7 的备用功能。如 “通用输入/输出端口 (GPIO)” 在 377页 所描述的那 样,在GPIO中该信号若想用于中断,其复用功能必须启用。注意启用NMI复用功能需要使用GPIO 锁和提交功能,正如与JTAG/SWD功能相关的GPIO端口管脚那样,见 413页。高电平激活NMI信 号;启用的NMI信号高于VIH会启动NMI中断序列。 主振荡器校验失败 LM3S9B92 微控制器提供了一个主振荡器校验电路。如果振荡器运行得太快或太慢,该电路会产生 一个错误条件。如果主振荡器校验电路被启用并产生一个错误,此时会产生一个上电复位并将控制 权交给NMI处理程序。NMI 处理程序用于解决主振荡器检验故障,因为可以从通用复位处理程序移 除必要代码,加速复位处理过程。通过将主振荡器控制 (MOSCCTL)寄存器的CVAL位置位来启用检 测电路。主振荡器校验错误在复位原因 (RESC)寄存器的主振荡器失败状态位(MOSCFAIL)显示。主 振荡器校验电路动作的详细描述在 “主振荡器校验电路” 在 199页。 功率控制 该 Stellaris® 微控制器提供了一个集成的LDO调节器,它用来对大多数微控制器的内部逻辑提供电 源。图 5-4 显示了功率结构。外部稳压器可以代替片上LDO使用,但是必须符合 表 26-4 在 1227页 中 的要求。不它LDO如何实施,内部LDO需要根据 “片上低压差(Low Drop-Out,简写为 LDO)稳压 器” 在 1229页 中的规定使用去耦电容。 注意: VDDA必须用3.3V供电,否则微控制器不能正常工作。VDDA为设备的所有模拟电路供电,包 括时钟电路。 一月 06, 2012 193 Texas Instruments-生产数据 系统控制 图 5-4. 功率结构 VDDC VDDC LDO +3.3V VDD VDD 内部 逻辑和 PLL 低噪声 LDO I/O 缓冲区 GND GND GND GND VDDA VDDA 模拟电路 GNDA GNDA 5.2.5 5.2.5.1 时钟控制 系统控制决定了该部分的时钟控制。 基础时钟源 在微控制器中有多个时钟源可以使用。 ■ 精确内部振荡器 (PIOSC). 精确内部振荡器是一个片上时钟源,在POR期间和之后,微控制器使 用该时钟源。它不需要使用任何外部元件,可以提供一个室温16 MHz ±1%、整个温度范围±3% 的时钟。PIOSC 是为需要精确时钟源并减少系统开销的应用而考虑的。如果需要主振荡器,软 件必须在复位后启用主振荡器,并在改变时钟参考前让主振荡器达到稳定。 ■ 主振荡器 (MOSC). 主振荡器可通过两种方式提供一个频率精确的时钟源:外部单端时钟源连接 到OSC0输入管脚,或者外部晶振串接在OSC0输入管脚和OSC1输出管脚间。如果PLL正在使用, 晶振的值必须是 3.579545 MHz 到 16.384 MHz(包括)之间的一个支持的频率。如果PLL不使 用,晶振可以是 1 MHz 到 16.384 MHz 之间的任何一个支持的频率。单端时钟源的范围从DC到 微控制器规定的速度。支持的晶振在RCC寄存器(见 215页)的XTAL位域列出。注意 MOSC 必 须为USB PLL提供一个时钟源,并且必须连接到晶体或振荡器。 ■ 内部30KHz振荡器. 内部 30-kHz 振荡器提供30 kHz ± 50%的工作频率。它是为在深度睡眠省电 模式期间使用的。该省电模式受益于精简的内部配电系统,同时也允许MOSC关闭。 194 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.2.5.2 内部系统时钟(SysClk) 源于上述任一时钟源,同时增加两项:主内部PLL输出和四分频的精确内部 振荡器 (4 MHz ± 1%)。PLL时钟参考频率必须在范围3.579545 MHz 到 16.384 MHz(包含其本身)。 表 5-4 在 195页 显示了不同的时钟源如何在系统中使用。 表 5-4. 时钟源选项 时钟源 精确内部振荡器 4分频的精确内部振荡器 (4MHz±1%) 主振荡器 内部30KHz振荡器 驱动PLL? 用作SysClk? 是 BYPASS = 0,OSCSRC = 是 0x1 BYPASS = 1,OSCSRC = 0x1 否 - 是 BYPASS = 1,OSCSRC = 0x2 是 BYPASS = 0,OSCSRC = 是 0x0 否 - 是 BYPASS = 1,OSCSRC = 0x0 BYPASS = 1,OSCSRC = 0x3 时钟配置 运行模式时钟配置 (RCC) 和运行模式时钟配置 2 (RCC2) 寄存器提供对系统时钟的控制。RCC2寄 存器用来扩充域,提供了RCC寄存器包含之外的其它编码。使用时,RCC2寄存器中域的值被RCC 寄存器相应域的逻辑使用。特别的,RCC2提供了更多种类的时钟配置选项。这些寄存器控制下面 的时钟功能: ■ 睡眠和深度睡眠模式中的时钟源 ■ 源自PLL或其它时钟源的系统时钟 ■ 振荡器和PLL的启用/禁用 ■ 时钟分频 ■ 晶振输入选择 重要: 写 RCC 寄存器后再写 RCC2 寄存器。如果需要对 RCC 寄存器进行后续写操作,则应 在写 RCC 寄存器之后和写 RCC2 寄存器之前安排另一次寄存器访问。 图 5-5 所示为主时钟树逻辑。外设框图由系统时钟信号驱动并且可以独立启用/禁用。PLL 启用时, ADC 时钟信号为了进行合适的 ADC 操作自动从 PLL 输出分频到 16MHz。PWM 时钟信号是系统时 钟的同步分频,这样可以向 PWM 电路提供更宽的范围(通过设置 RCC 中的 PWMDIV)。 注意: 当ADC模块运行时,系统时钟必须最少16MHz。USB 模块运行时,必须为 MOSC 提供时 钟源,并且系统时钟必须最少 20 MHz。 一月 06, 2012 195 Texas Instruments-生产数据 系统控制 图 5-5. 主时钟树 XTALa USBPWRDNc USB PLL (480 MHz) ÷4 RXINT RXFRAC TXINT TXFRAC USEPWMDIV a USB 时钟 I2S 接收 MCLK I2S 发送 MCLK MOSCDIS a 主 OSC XTALa PWRDN b PLL (400 MHz) IOSCDISa 精确 内部 OSC (16 MHz) ÷4 内部 OSC (30 kHz) 休眠 OSC (32.768 kHz) OSCSRC b,d PWMDW a PWM 时钟 DIV400 c ÷2 USESYSDIV a,d SYSDIV e BYPASS b,d PWRDN 系统时钟 ADC 时钟 ÷ 25 a. 由 RCC 寄存器的位/域控制。 b.由 RCC 寄存器的位/域或者 RCC2 寄存器位域控制(如果被 RCC2 寄存器位 USERCC2置取代)。 c.由 RCC2 寄存器的位/域控制。 d.在深度睡眠模式中,也可以被 DSLPCLKCFG 控制。 e.由 RCC 寄存器的 SYSDIV 域以及 RCC2 寄存器的 SYSDIV2 域控制(如果被 USERCC2 位取代);或者由 [SYSDIV2以及SYSDIV2LSB] 控制(如果 USERCC2 以及 DIV400 都置位)。 注意: 上图所示的是所有 Stellaris® Tempest-class微控制器上可用的功能。并非所有的外设都在此器件上。 使用 SYSDIV 和 SYSDIV2 域 在RCC寄存器中,SYSDIV域规定了哪个分频用于产生系统时钟,该系统时钟源自PLL输出或振荡器 源 (取决于该寄存器中BYPASS位的配置)。当使用PLL时,在应用分频前400MHz的VCO频率先被2 196 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 分频。表 5-5 显示了使用 PLL (BYPASS=0) 或另一个时钟源 (BYPASS=1) 时,SYSDIV 编码如何影 响系统时钟频率。分频值等于SYSDIV编码加1。表 5-4 在 195页 列出了可能的时钟源。 表 5-5. 使用 SYSDIV域的可能的系统时钟频率 SYSDIV 0x0 分频系数 频率 (BYPASS=0) /1 保留 频率 (BYPASS=1) 时钟源频率/2 StellarisWare®参数a SYSCTL_SYSDIV_1b 0x1 /2 保留 时钟源频率/2 SYSCTL_SYSDIV_2 0x2 /3 66.67 MHz 时钟源频率/3 SYSCTL_SYSDIV_3 0x3 /4 50 MHz 时钟源频率/4 SYSCTL_SYSDIV_4 0x4 /5 40 MHz 时钟源频率/5 SYSCTL_SYSDIV_5 0x5 /6 33.33 MHz 时钟源频率/6 SYSCTL_SYSDIV_6 0x6 /7 28.57 MHz 时钟源频率/7 SYSCTL_SYSDIV_7 0x7 /8 25 MHz 时钟源频率/8 SYSCTL_SYSDIV_8 0x8 /9 22.22 MHz 时钟源频率/9 SYSCTL_SYSDIV_9 0x9 /10 20 MHz 时钟源频率/10 SYSCTL_SYSDIV_10 0xA /11 18.18 MHz 时钟源频率/11 SYSCTL_SYSDIV_11 0xB /12 16.67 MHz 时钟源频率/12 SYSCTL_SYSDIV_12 0xC /13 15.38 MHz 时钟源频率/13 SYSCTL_SYSDIV_13 0xD /14 14.29 MHz 时钟源频率/14 SYSCTL_SYSDIV_14 0xE /15 13.33 MHz 时钟源频率/15 SYSCTL_SYSDIV_15 0xF /16 12.5 MHz(默认) 时钟源频率/16 SYSCTL_SYSDIV_16 a. 该参数在函数中使用,例如 Stellaris 外设驱动库中的 SysCtlClockSet()。 b. SYSCTL_SYSDIV_1 不会置位 USESYSDIV 位。所以不启用PLL而使用该参数的结果是系统时钟与时钟源频率相同。 RCC2寄存器中的SYSDIV2域比RCC寄存器中的SYSDIV域多2位,这样使更大的分频——直到64分 频成为可能,同时深度睡眠功耗也因允许有更低的系统时钟频率而被改善。当使用PLL时,在应用 分频前400MHz的VCO频率先被2分频。分频值等于SYSDIV2编码加1。表 5-6 显示了使用 PLL(BYPASS2=0)或另一个时钟源(BYPASS2=1)时,SYSDIV2编码如何影响系统时钟频率。表 5-4 在 195页 列出了可能的时钟源。 表 5-6. 使用 SYSDIV2 域的可能的系统时钟频率 SYSDIV2 0x00 分频系数 频率 (BYPASS2=0) /1 保留 频率 (BYPASS2=1) 时钟源频率/2 StellarisWare参数a SYSCTL_SYSDIV_1b 0x01 /2 保留 时钟源频率/2 SYSCTL_SYSDIV_2 0x02 /3 66.67 MHz 时钟源频率/3 SYSCTL_SYSDIV_3 0x03 /4 50 MHz 时钟源频率/4 SYSCTL_SYSDIV_4 0x04 /5 40 MHz 时钟源频率/5 SYSCTL_SYSDIV_5 ... ... ... ... ... 0x09 /10 20 MHz 时钟源频率/10 SYSCTL_SYSDIV_10 ... ... ... ... ... 0x3F /64 3.125 MHz 时钟源频率/64 SYSCTL_SYSDIV_64 a. 该参数在函数中使用,例如 Stellaris 外设驱动库中的 SysCtlClockSet()。 b. SYSCTL_SYSDIV_1 不会置位 USESYSDIV 位。所以不启用PLL而使用该参数的结果是系统时钟与时钟源频率相同。 为了使用PLL时能有更多的频率选择,提供了DIV400位和SYSDIV2LSB位。当DIV400位置位时, 第22位变成了SYSDIV2的LSB。此时,分频值等于SYSDIV2编码附带SYSDIV2LSB再加1。表 5-7 一月 06, 2012 197 Texas Instruments-生产数据 系统控制 5.2.5.3 5.2.5.4 5.2.5.5 显示了DIV400置位后的频率选择。当DIV400被清零后,SYSDIV2LSB将被忽略,系统时钟频率仍 然取决于 表 5-6 在 197页 所示的频率值。 表 5-7. 当 DIV400=1 时可能的系统时钟频率示例 SYSDIV2 SYSDIV2LSB 分频系数 频率 (BYPASS2=0)a 0x00 保留 /2 保留 0 0x01 1 /3 保留 /4 保留 0 0x02 1 /5 80 MHz /6 66.67 MHz 0 0x03 1 /7 保留 /8 50 MHz 0 0x04 1 /9 44.44 MHz /10 40 MHz ... ... ... ... 0 0x3F 1 /127 3.15 MHz /128 3.125 MHz a. 注意 DIV400 和 SYSDIV2LSB 只有当BYPASS2=0时才有效。 b. 该参数在函数中使用,例如 Stellaris 外设驱动库中的 SysCtlClockSet()。 StellarisWare参数b SYSCTL_SYSDIV_2_5 SYSCTL_SYSDIV_3 SYSCTL_SYSDIV_4 SYSCTL_SYSDIV_4_5 SYSCTL_SYSDIV_5 ... SYSCTL_SYSDIV_63_5 SYSCTL_SYSDIV_64 精确内部振荡器操作 (PIOSC) 微控制器上电后运行 PIOSC。如果希望运行其它时钟源,PIOSC 在用于内部功能时必须保持启用。 仅可以在深度睡眠模式期间禁用 PIOSC。它可以通过置位RCC寄存器中的IOSCDIS位掉电。 在室温环境下,PIOSC 可以产生一个 ±1% 精度的16 MHz 时钟。在整个扩展温度范围内,精度是 ±3%。在工厂,PIOSC 被设置为室温16 MHz。但是,在其它的电压或温度条件下,该频率可以通 过使用软件用下面的两种方法来调整。 ■ 默认校准:在精确内部振荡器校准 (PIOSCCAL)寄存器中清零UTEN位并置位UPDATE位。 ■ 用户自定义校准:用户可以编程UT值来调整PIOSC频率。随着UT值的增加,生成的周期也增加。 为了提交一个新的UT值,首先要置位UTEN位,接着编程UT域,然后置位UPDATE位。该调整在 几个时钟周期内完成,然后频率突变。 用于主振荡器的晶振配置 (MOSC) 主振荡器支持使用选择的晶振值。如果主振荡器被PLL用作参考时钟,那么支持的晶振范围是 3.579545 到 16.384 MHz,否则支持的晶振范围是1到 16.384 MHz。 RCC 寄存器中的 XTAL 位(见 215页)描述了可用的晶体选择和默认的编程值。 软件根据晶振值来配置RCC寄存器的XTAL域。如果设计中使用PLL,那么XTAL域中的值会从内部 转换到PLL设置中。 主 PLL 频率配置 主PLL在上电复位期间默认为禁用,如果需要可在稍后通过软件启用。软件指定输出分频来设置系 统时钟频率同时启用主PLL来驱动输出。PLL 以 400MHz 的频率工作,但是在输出分频应用前将先 被二分频,除非 RCC2 寄存器中的 DIV400 位置位。 要把 PIOSC 配置为主 PLL 的时钟源,可将运行模式时钟配置 2 (RCC2) 寄存器的 OSCRC2 域编程 为 0x1。 198 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.2.5.6 5.2.5.7 5.2.5.8 5.2.5.9 如果主振荡器给主PLL提供了时钟基准,软件可以从XTAL 到 PLL 转换 (PLLCFG)寄存器中使用硬 件提供的用来编程PLL的转换(见 219页)。内部转换可提供± 1% 的目标PLL VCO 频率。表 26-8 在 1230页 显示了实际的PLL频率和给定晶振选择的误差。 在运行模式时钟配置 (RCC)寄存器(见 215页)中的晶振值域(XTAL)描述了可用的晶振选择和默认 的PLLCFG寄存器编程。只要XTAL域改变,新的设置就会被转换同时内部PLL设置被更新。 USB PLL 频率配置 USB PLL在上电复位期间默认为禁用,可在稍后通过软件启用。为实现适当的USB功能,USB PLL 必须被启用运行。主振荡器是USB PLL的唯一时钟参考。通过清零RCC2寄存器的USBPWRDN位来启 用USB PLL。RCC寄存器的XTAL位域 (晶振值) 描述了可用的晶振选择。为了正确的生成USB时钟, 主振荡器必须连接到下面的晶振值:4、5、6、8、10、12 或 16 MHz。只有这些晶振能提供与USB 时序规范一致的USB PLL VCO 频率。 PLL 模式 每种 PLL 都有两种操作模式:正常模式和掉电模式 ■ 正常模式:PLL 倍频输入时钟参考并驱动输出。 ■ 掉电模式:大部分PLL内部电路被禁用并且PLL不再驱动输出。 使用RCC/RCC2寄存器的域来编程PLL模式(见 215页 和 222页)。 PLL 操作 如果 PLL 配置改变,PLL输出频率是不稳定的,直到重新集中(重新锁定)到一个新的设定为止。配 置改变和重新锁定之间的时间是TREADY(见 表 26-7 在 1229页)。在重新锁定期间,受影响的PLL不 可用作时钟参考。 PLL通过下面的其中一种方法来改变: ■ 更改为RCC寄存器的XTAL值 - 写入同样的值不会引起重新锁定。 ■ PLL从掉电模式变为正常模式。 使用根据系统时钟计时的计数器测量TREADY的要求。如果系统时钟是主振荡器,并且它以 8.192 MHz 或较低的外部振荡器时钟频率运行,递减计数器初值设为 0x1200(也就是说,在 8.192 MHz 时大约 600 μs)。如果系统时钟根据 PIOSC 或频率高于 8.192 MHz 的外部振荡器时钟运行,递减 计数器初值设为 0x2400。此时要提供硬件来保持PLL不被用作系统时钟,直到上述更改完成后TREADY 条件被满足为止。用户要确保在RCC/RCC2寄存器切换到使用PLL之前必须有一个稳定的时钟源 (像 主振荡器那样)。 如果主PLL启用并且系统时钟一步切换到使用PLL,系统控制硬件会继续使用RCC/RCC2寄存器选 择的振荡器作为微控制器的时钟,直到主PLL稳定(满足TREADY时间)为止才更改到PLL。软件可以使 用很多方法来确保系统由主PLL提供时钟,包括周期性的检测原始中断状态 (RIS)寄存器的PLLLRIS 位,并且启用PLL锁定中断。 USB PLL 在锁定(TREADY)期间是不受保护的,软件必须确保在使用该接口前USB PLL已经锁定。软 件可以使用很多方法来确保TREADY周期已经过去,包括周期性的检测原始中断状态 (RIS)寄存器的 USBPLLLRIS位,并且启用USB PLL锁定中断。 主振荡器校验电路 时钟控制包括能确保主振荡器工作在合适频率的电路。如果频率在相连晶振允许的频带范围外,该 电路会监测主振荡器频率和信号。 一月 06, 2012 199 Texas Instruments-生产数据 系统控制 5.2.6 5.2.6.1 检测电路通过使用主振荡器控制 (MOSCCTL)寄存器的CVAL位来启用。如果该电路启用并且检测到 错误,那么硬件会执行下面的序列: 1. 复位原因 (RESC)寄存器的MOSCFAIL位被置位。 2. 如果内部振荡器 (PIOSC) 被禁用,那么现在启用。 3. 系统时钟由主振荡器切换到PIOSC。 4. 一个内部上电复位被启动,它将持续32个PIOSC周期。 5. 复位不再有效,处理器在复位序列期间直接执行NMI处理程序。 如果MOSCCTL寄存器中的MOSCIM位置位,那么硬件会执行下面的序列: 1. 系统时钟由主振荡器切换到PIOSC。 2. RIS寄存器中的MOFRIS位置位以指示MOSC故障。 系统控制 为了节省功耗,RCGCn、SCGCn和DCGCn寄存器分别控制着微控制器在运行模式、睡眠模式和深 度睡眠模式时系统每个外设或模块的时钟门控逻辑。这些寄存器位于系统控制寄存器映射中,分别 从偏移量 0x600、0x700 和 0x800 处开始。在访问任何模块寄存器前,在 RCGC 寄存器中启用外 设模块时钟后必须有 3 个系统时钟的延迟。 对于微控制器有三种级别的操作,定义如下: ■ 运行模式 ■ 睡眠模式 ■ 深度睡眠模式 下面章节将详细描述不同的模式。 小心 – 如果 CortexM3 调试访问端口 (DAP) 已经启用,并且设备从低功耗睡眠或深度睡眠模式中唤 醒,内核可能会在所有外设的时钟恢复到运行模式配置前开始执行代码。DAP通常由软件工具启用, 以便在调试或Flash编程时访问JTAG或SWD接口。如果这种情况发生,当软件访问一个带有无效时 钟的外设时会触发一次硬件错误。 软件延时循环可用在从WFI指令(等待中断)唤醒系统的中断程序开始处。这样可以延迟执行可能会产 生错误的访问外设寄存器的指令。对于产品软件来说,该循环可以去除,因为在正常执行期间DAP 几乎不可能被启用。 由于DAP默认为禁用 (上电复位) ,所以用户也可以让设备按上电周期运行。DAP 只有通过 JTAG 或 SWD 接口才能启用。 运行模式 在运行模式,微控制器主动执行代码。运行模式提供了处理器和所有目前被RCGCn寄存器启用的外 设的正常操作。系统时钟可以是包括PLL在内的任何可用的时钟源。 200 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 5.2.6.2 5.2.6.3 5.3 5.4 睡眠模式 在睡眠模式,运行中的外设时钟频率不变,但是处理器和存储器子系统不使用时钟,所以不再执行 代码。睡眠模式是通过CortexM3内核执行一条WFI指令(等待中断)进入的。系统中任何正确配置 的中断事件都可以将处理器带回到运行模式。其它详细信息见 “电源管理” 在 110页。 当自动门控启用时,SCGCn 寄存器中的锁定外设将启用(见 RCC 寄存器);当自动门控禁用时, RCGCn 寄存器中的锁定外设将启用。系统时钟的源和频率与运行模式期间是一样的。 深度睡眠模式 在深度睡眠模式中,除了正在停止的处理器时钟之外,有效外设的时钟频率可以改变(由运行模式 的时钟配置决定)。中断可以让微控制器从睡眠模式返回到运行模式;代码请求可以进入睡眠模式。 要进入深度睡眠模式,首先置位系统控制 (SYSCTRL)寄存器的SLEEPDEEP位(见 150页),然后 执行一条WFI指令。系统中任何正确配置的中断事件都可以将处理器带回到运行模式。其它详细信 息见 “电源管理” 在 110页。 该 CortexM3处理器内核和存储器子系统在深度睡眠模式中不计时。当自动门控启用时,DCGCn 寄 存器中的锁定外设将启用(见 RCC 寄存器);当自动门控禁用时,RCGCn 寄存器中的锁定外设将 启用。系统时钟源在DSLPCLKCFG寄存器中规定。当DSLPCLKCFG寄存器被使用时,内部振荡器 源被上电,如果有必要,其它时钟会被掉电。如果执行WFI指令时PLL正在运行,硬件会让PLL掉电 并改写RCC/RCC2寄存器中的SYSDIV域,更改值由DSLPCLKCFG寄存器的DSDIVORIDE设置决 定,分别为/16 或 /64。当深度睡眠退出事件发生时,硬件会把系统时钟带回到深度睡眠模式开始时 的源和频率,然后启用在深度睡眠期间停止的时钟。如果 PIOSC 被用作PLL的参考时钟源,在深度 睡眠期间它会继续提供时钟。参见 226页。 初始化和配置 PLL的配置可通过直接对RCC/RCC2执行写操作来实现。如果RCC2寄存器正被使用,那么必须置位 USERCC2位,合适的RCC2位/域被使用。成功改变基于PLL的系统时钟需要如下步骤: 1. 通过置位RCC寄存器的BYPASS位并清零USESYS位来旁路PLL和系统时钟分频器,从而配置微 控制器在原始时钟源运行,在切换系统时钟到PLL前允许新的PLL配置有效。 2. 选择晶振值 (XTAL) 和振荡器源 (OSCSRC),清零RCC/RCC2的PWRDN位。设置XTAL域可以自动 为晶振提供有效的PLL配置数据,清零PWRDN位可以给PLL及其输出供电并让它们启用。 3. 在RCC/RCC2中选择需要的系统分频器 (SYSDIV) 并在RCC中置位USESYS位。SYSDIV域决定 了微控制器的系统频率。 4. 通过检测 Raw Interrupt Status (RIS) 寄存器的PLLLRIS位来等待PLL被锁定。 5. 通过清零RCC/RCC2的BYPASS位来启用PLL的使用。 寄存器映射 表 5-8 在 202页 列出了按功能分组的系统控制寄存器。列出的偏移量是相对于的系统控制基址的寄 存器地址的十六进制增量0x400F.E000。 注意: 系统控制寄存器空间中未被使用的空间都是为将来或内部使用保留的。软件不应该调整任何 保留的存储器地址。 系统控制寄存器空间中定义的其它Flash和ROM寄存器在 “内部存储器” 在 284页 中描述。 一月 06, 2012 201 Texas Instruments-生产数据 系统控制 表 5-8. 系统控制 寄存器映射 偏移量 名称 类型 0x000 DID0 RO 0x004 DID1 RO 0x008 DC0 RO 0x010 DC1 RO 0x014 DC2 RO 0x018 DC3 RO 0x01C DC4 RO 0x020 DC5 RO 0x024 DC6 RO 0x028 DC7 RO 0x02C DC8 RO 0x030 PBORCTL R/W 0x040 SRCR0 R/W 0x044 SRCR1 R/W 0x048 SRCR2 R/W 0x050 RIS RO 0x054 IMC R/W 0x058 MISC R/W1C 0x05C RESC R/W 0x060 RCC R/W 0x064 PLLCFG RO 0x06C GPIOHBCTL R/W 0x070 RCC2 R/W 0x07C MOSCCTL R/W 0x100 RCGC0 R/W 0x104 RCGC1 R/W 0x108 RCGC2 R/W 0x110 SCGC0 R/W 0x114 SCGC1 R/W 0x118 SCGC2 R/W 0x120 DCGC0 R/W 0x124 DCGC1 R/W 0x128 DCGC2 R/W 复位 - 0x017F.007F - 0x570F.5337 0xBFFF.FFFF 0x5004.F1FF 0x0F30.00FF 0x0000.0013 0xFFFF.FFFF 0xFFFF.FFFF 0x0000.7FFD 0x00000000 0x00000000 0x00000000 0x0000.0000 0x0000.0000 0x0000.0000 0x078E.3AD1 0x0000.0000 0x07C0.6810 0x0000.0000 0x00000040 0x00000000 0x00000000 0x00000040 0x00000000 0x00000000 0x00000040 0x00000000 0x00000000 描述 器件标识寄存器 0 器件标识寄存器 1 器件功能寄存器 0 器件功能寄存器 1 器件功能寄存器 2 器件功能寄存器 3 器件功能寄存器 4 器件功能寄存器 5 器件功能寄存器 6 器件功能寄存器 7 器件功能 8 ADC 通道 掉电复位控制寄存器 软件复位控制寄存器 0 软件复位控制寄存器 1 软件复位控制寄存器 2 原始中断状态寄存器 中断屏蔽控制寄存器 屏蔽的中断状态和清除寄存器 复位原因寄存器 运行模式时钟配置寄存器 XTAL 到 PLL 转换寄存器 GPIO 高性能总线控制寄存器 运行模式时钟配置寄存器 2 主振荡器控制寄存器 运行模式时钟门控控制寄存器 0 运行模式时钟门控控制寄存器 1 运行模式时钟门控控制寄存器 2 睡眠模式时钟门控控制寄存器 0 睡眠模式时钟门控控制寄存器 1 睡眠模式时钟门控控制寄存器 2 深度睡眠模式时钟门控控制寄存器 0 深度睡眠模式时钟门控控制寄存器 1 深度睡眠模式时钟门控控制寄存器 2 202 Texas Instruments-生产数据 见页面 204 231 233 234 236 238 241 243 245 246 250 206 277 279 282 207 209 211 213 215 219 220 222 225 256 262 271 258 265 273 260 268 275 一月 06, 2012 Stellaris® LM3S9B92 微控制器 表 5-8. 系统控制 寄存器映射(续) 偏移量 名称 类型 0x144 DSLPCLKCFG R/W 0x150 PIOSCCAL R/W 0x170 2SMCLKCFG R/W 0x190 DC9 RO 0x1A0 NVMSTAT RO 复位 0x0780.0000 0x0000.0000 0x0000.0000 0x00FF.00FF 0x0000.0001 描述 深度睡眠时钟配置寄存器 精确内部振荡器校准寄存器 I2S MCLK 配置寄存器 器件功能 9 ADC 数字比较器 非易失性存储器信息寄存器 5.5 寄存器描述 所有给出的地址都是相对于 0x400F.E000系统控制基址而言的。 见页面 226 228 229 253 255 一月 06, 2012 203 Texas Instruments-生产数据 系统控制 寄存器 1: 器件标识寄存器 0(DID0),偏移量 0x000 本寄存器标识了微控制器的版本。每个微控制器由 DID0 寄存器中的 CLASS 域和 DID1 寄存器中的 PARTNO 域的组合值专门标识。 器件标识寄存器 0 (DID0) 基址 0x400F.E000 偏移量 0x000 类型 RO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 VER 保留 CLASS 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MAJOR MINOR 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 - - - - - - - - - - - - - - - - 位/域 31 30:28 名称 保留 VER 类型 RO RO 复位 0 0x1 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 DID0版本 该域定义了 DID0 寄存器格式的版本。版本号是数字的。VER 域的值编 码如下(其它所有编码保留): 值 描述 0x1 DID0 寄存器格式的第二版。 27:24 23:16 保留 CLASS RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 RO 0x04 器件分类 CLASS域的值识别内部设计,根据内部设计,所有微控制器的掩膜组在 特定的生产线中产生。CLASS域的值随新产品线而改变,随fab过程的改 变而改变(例如重新映射或收缩),或者在任何MAJOR或MINOR域需要与 之前微控制器有差异的地方改变。CLASS域的值如下编码(所有其它的 编码保留): 值 描述 0x04 Stellaris® Tempest-class微控制器 15:8 MAJOR RO - 主版本 这个域指定了微控制器的主版本号。主版本反映了设计的基本层的改 变。主版本编号在器件型号中以字母表示(A代表第一版,B代表第二 版,依此类推)。该域编码如下: 值 描述 0x0 版本 A(初值设备) 0x1 版本 B(第一个基本层版本) 0x2 版本 B(第二个基本层版本) 依此类推。 204 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 7:0 名称 MINOR 类型 RO 复位 - 描述 次版本 这个域指定了微控制器的次版本号。次版本反映了设计的金属层的改 变。MAJOR 域改变时 MINOR 域的值重新设置。这个域的值是数字,编 码如下: 值 描述 0x0 原始器件,或者一个主版本更新。 0x1 第一个金属层改变。 0x2 第二个金属层改变。 依此类推。 一月 06, 2012 205 Texas Instruments-生产数据 系统控制 寄存器 2: 掉电复位控制寄存器(PBORCTL),偏移量 0x030 该寄存器负责控制初始上电复位后的复位条件。 掉电复位控制寄存器 (PBORCTL) 基址 0x400F.E000 偏移量 0x030 类型 R/W, 复位 0x0000.7FFD 31 30 29 28 27 26 25 24 23 22 21 20 19 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 18 17 16 RO RO RO 0 0 0 2 1 0 BORIOR 保留 RO R/W RO 0 0 0 位/域 31:2 1 名称 保留 BORIOR 类型 RO R/W 复位 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 BOR中断或复位 值 描述 0 一次掉电事件引起了中断的产生并发送给中断控制器。 1 一次掉电事件引起了微控制器的复位。 0 保留 RO 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 206 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 3: 原始中断状态寄存器(RIS),偏移量 0x050 该寄存器显示系统控制原始中断的状态。如果中断屏蔽控制 (IMC) 寄存器的位被置位,那么相应的 中断会发送到中断控制器。向屏蔽的中断状态和清除 (MISC) 寄存器的位写1可以清除对应的中断状 态位。 原始中断状态寄存器 (RIS) 基址 0x400F.E000 偏移量 0x050 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 MOSCPUPRIS USBPLLLRIS PLLLRIS 保留 BORRIS 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:9 8 7 6 5:2 名称 保留 MOSCPUPRIS USBPLLLRIS PLLLRIS 保留 类型 RO RO RO RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 MOSC上电原始中断状态 值 描述 1 MOSC 经过充足的时间到达预期的频率。这个上电时间值显示为 TMOSC_START。 0 MOSC没有经过充足的时间到达预期的频率。 通过在MISC寄存器的MOSCPUPMIS位写1可以清除这个位。 0 USB PLL 锁定原始中断状态 值 描述 1 USB PLL 定时器已经达到了TREADY,表明USB PLL经过了充足的 时间锁定。 0 USB PLL 定时器没有达到 TREADY。 通过在MISC寄存器的USBPLLLMIS位写1可以清除这个位。 0 PLL 锁定原始中断状态 值 描述 1 PLL 定时器已经达到了TREADY,表明PLL经过了充足的时间锁定。 0 PLL 定时器没有达到 TREADY。 通过在MISC寄存器的PLLLMIS位写1可以清除这个位。 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 207 Texas Instruments-生产数据 系统控制 位/域 1 0 名称 BORRIS 保留 类型 RO RO 复位 0 0 描述 掉电复位原始中断状态 值 描述 1 掉电条件当前起作用。 0 掉电条件当前不起作用。 注意为引发一次掉电事件的中断,必须清零PBORCTL寄存器的BORIOR 位。 通过在MISC寄存器的BORMIS位写1可以清除这个位。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 208 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 4: 中断屏蔽控制寄存器(IMC),偏移量 0x054 该寄存器包含了系统控制原始中断的屏蔽位。如果这个寄存器中的位被置位,那么相应在原始中断 状态 (RIS)寄存器中置位的原始中断会被发送到中断控制器。 中断屏蔽控制寄存器 (IMC) 基址 0x400F.E000 偏移量 0x054 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 MOSCPUPIM USBPLLLIM PLLLIM 保留 BORIM 保留 类型 RO RO RO RO RO RO RO R/W R/W R/W RO RO RO RO R/W RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:9 8 名称 保留 MOSCPUPIM 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 MOSC上电中断屏蔽 值 描述 1 当RIS寄存器中的MOSCPUPRIS位被置位时,中断被发送到中断控 制器。 0 MOSCPUPRIS中断被抑制,没有被发送到中断控制器。 7 USBPLLLIM R/W 0 USB PLL 锁定中断屏蔽 值 描述 1 当RIS寄存器中的USBPLLLRIS位被置位时,中断被发送到中断控 制器。 0 USBPLLLRIS 中断被抑制,不会发送到中断控制器。 6 PLLLIM R/W 0 PLL 锁定中断屏蔽 值 描述 1 当RIS寄存器中的PLLLRIS位被置位时,中断被发送到中断控制器。 0 PLLLRIS 中断被抑制,不会发送到中断控制器。 5:2 保留 RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 1 BORIM R/W 0 掉电复位中断屏蔽 值 描述 1 当RIS寄存器中的BORRIS位被置位时,中断被发送到中断控制器。 0 BORRIS 中断被抑制,不会发送到中断控制器。 一月 06, 2012 209 Texas Instruments-生产数据 系统控制 位/域 0 名称 保留 类型 RO 复位 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 210 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 5: 屏蔽的中断状态和清除寄存器(MISC),偏移量 0x058 读该寄存器将返回原始中断状态 (RIS) 寄存器中相应中断的当前屏蔽的状态值。所有的位都是 R/W1C,所以对一个位写入1可以清零RIS寄存器(见 207页)中相应的原始中断位。 屏蔽的中断状态和清除寄存器 (MISC) 基址 0x400F.E000 偏移量 0x058 类型 R/W1C, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 MOSCPUPMIS USBPLLLMIS PLLLMIS 保留 BORMIS 保留 类型 RO RO RO RO RO RO RO R/W1C R/W1C R/W1C RO RO RO RO R/W1C RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:9 8 名称 保留 MOSCPUPMIS 类型 复位 描述 RO 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W1C 0 MOSC上电屏蔽的中断状态 值 描述 1 当读取该位时,值为 1 表示发出了非屏蔽中断信号,这是由于 MOSC PLL 经过了充足的时间锁定而引起的。 对这个位写1清零该位和RIS寄存器的MOSCPUPRIS位。 0 当读取该位时,值为0表示MOSC PLL 没有经过了充足的时间锁定。 写 0 对该位状态没有影响。 7 USBPLLLMIS R/W1C 0 USB PLL 锁定屏蔽的中断状态 值 描述 1 当读取该位时,值为1表示发出了非屏蔽中断信号,这是由于 USB PLL 经过了充足的时间锁定而引起的。 对这个位写1清零该位和RIS寄存器的USBPLLLRIS位。 0 当读取该位时,值为 0 表示 USB PLL 没有经过了充足的时间锁定。 写 0 对该位状态没有影响。 6 PLLLMIS R/W1C 0 PLL 锁定屏蔽中断状态 值 描述 1 当读取该位时,值为1表示发出了非屏蔽中断信号,这是由于 PLL 经过了充足的时间锁定而引起的。 对这个位写1清零该位和RIS寄存器的PLLLRIS位。 0 当读取该位时,值为0表示 PLL 没有经过了充足的时间锁定。 写 0 对该位状态没有影响。 5:2 保留 RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 211 Texas Instruments-生产数据 系统控制 位/域 1 0 名称 BORMIS 保留 类型 R/W1C 复位 0 描述 BOR屏蔽的中断状态 值 描述 1 当读取该位时,值为 1 表示发出了非屏蔽中断信号,这是由于一次 掉电条件而引起的。 对这个位写1清零该位和RIS寄存器的BORRIS位。 0 当读取该位时,值为0表示掉电条件没有发生。 写 0 对该位状态没有影响。 RO 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 212 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 6: 复位原因寄存器(RESC),偏移量 0x05C 复位后该寄存器随复位原因而置位。该寄存器中的位具有粘着性,经过多个复位序列后仍保持它们 的状态,上电复位除外,在上电复位时,RESC寄存器中除POR外的所有其它位都被清零。 复位原因寄存器 (RESC) 基址 0x400F.E000 偏移量 0x05C 类型 R/W, 复位 - 31 30 29 28 类型 RO RO RO RO 复位 0 0 0 0 15 14 13 12 类型 RO RO RO RO 复位 0 0 0 0 27 26 RO RO 0 0 11 10 保留 RO RO 0 0 25 24 23 保留 RO RO RO 0 0 0 9 8 7 RO RO RO 0 0 0 22 21 20 19 18 17 16 MOSCFAIL RO RO RO RO RO RO R/W 0 0 0 0 0 0 - 6 5 4 3 2 1 0 WDT1 SW WDT0 BOR POR EXT RO R/W R/W R/W R/W R/W R/W 0 - - - - - - 位/域 31:17 16 名称 保留 MOSCFAIL 类型 RO R/W 复位 0x000 - 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 MOSC 故障复位 值 描述 1 当读取该位时,该位表示MOSC电路被启用作时钟验证,但是失败 了,于是产生了一次复位事件。 0 当读取该位时,该位表示从之前的上电复位开始MOSC失败没有产 生过复位。 对这个位写0可将它清零。 15:6 保留 RO 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 5 WDT1 R/W - 看门狗定时器1复位 值 描述 1 当读取该位时,该位表示看门狗定时器1超时并产生了一次复位。 0 当读取该位时,该位表示从之前的上电复位开始看门狗定时器1没 有产生过复位。 对这个位写0可将它清零。 4 SW R/W - 软件复位 值 描述 1 当读取该位时,该位表示软件复位引起了一次复位事件。 0 当读取该位时,该位表示从之前的上电复位开始软件复位没有产生 过复位。 对这个位写0可将它清零。 一月 06, 2012 213 Texas Instruments-生产数据 系统控制 位/域 3 2 1 0 名称 WDT0 BOR POR EXT 类型 R/W R/W R/W R/W 复位 - 描述 看门狗定时器0复位 值 描述 1 当读取该位时,该位表示看门狗定时器0超时并产生了一次复位。 0 当读取该位时,该位表示从之前的上电复位开始看门狗定时器0没 有产生过复位。 对这个位写0可将它清零。 - 掉电复位 值 描述 1 当读取该位时,该位表示掉电复位引起了一次复位事件。 0 当读取该位时,该位表示从之前的上电复位开始掉电复位没有产生 过复位。 对这个位写0可将它清零。 - 上电复位 值 描述 1 当读取该位时,该位表示上电复位引起了一次复位事件。 0 当读取该位时,该位表示上电复位没有产生过复位。 对这个位写0可将它清零。 - 外部复位 值 描述 1 当读取该位时,该位表示外部复位(RST 有效)引起了一次复位事 件。 0 当读取该位时,该位表示从之前的上电复位开始外部复位(RST有 效)没有引起过复位事件。 对这个位写0可将它清零。 214 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 7: 运行模式时钟配置寄存器(RCC),偏移量 0x060 该寄存器中的位配置系统时钟和振荡器。 运行模式时钟配置寄存器 (RCC) 基址 0x400F.E000 偏移量 0x060 类型 R/W, 复位 0x078E.3AD1 31 30 29 28 27 26 保留 ACG 类型 RO RO RO RO R/W R/W 复位 0 0 0 0 0 1 类型 复位 15 14 保留 RO RO 0 0 13 12 11 10 PWRDN 保留 BYPASS R/W RO R/W R/W 1 1 1 0 25 24 SYSDIV R/W R/W 1 1 9 8 XTAL R/W R/W 1 0 23 22 21 20 19 USESYSDIV 保留 USEPWMDIV R/W R/W RO R/W R/W 1 0 0 0 1 18 PWMDIV R/W 1 17 R/W 1 16 保留 RO 0 7 6 5 4 OSCSRC R/W R/W R/W R/W 1 1 0 1 3 2 保留 RO RO 0 0 1 0 IOSCDIS MOSCDIS R/W R/W 0 1 位/域 31:28 27 26:23 22 名称 保留 ACG SYSDIV USESYSDIV 类型 RO R/W R/W R/W 复位 0x0 0 0xF 0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 自动时钟门控 该位规定了如果微控制器进入了睡眠模式或深度睡眠模式(分别的), 系统是否使用睡眠模式时钟门控控制 (SCGCn) 寄存器和深度睡眠模式 时钟门控控制 (DCGCn) 寄存器。 值 描述 1 当微控制器处于一种睡眠模式时,SCGCn或DCGCn寄存器用来控 制分配给外设的时钟。当微控制器处于一种睡眠模式时,SCGCn和 DCGCn寄存器用户控制没有使用的外设耗费更少的功耗。 0 当微控制器进入一种睡眠模式时,运行模式时钟门控控制 (RCGCn) 寄存器被使用。 在运行模式,总是使用RCGCn寄存器控制时钟。 系统时钟分频值 规定了使用哪个分频值来产生系统时钟,该系统时钟来自PLL输出或振 荡器源(取决于该寄存器中BYPASS位如何配置)。关于位编码的信息 参见 表 5-5 在 197页。 如果SYSDIV的值小于MINSYSDIV(见 234页),并且PLL正在被使用, 那么MINSYSDIV值被作为分频器使用。 如果PLL没有被使用,SYSDIV值可以小于MINSYSDIV。 启用系统时钟分频器 值 描述 1 系统时钟分频器用作系统时钟源。当PLL被选作源时,将强制使用 系统时钟分频器。 如果RCC2寄存器中的USERCC2位被置位,那么会使用RCC2寄存 器中的SYSDIV2域来作为系统时钟分频器,而不是这个寄存器中的 SYSDIV域。 0 系统时钟不分频使用。 一月 06, 2012 215 Texas Instruments-生产数据 系统控制 位/域 21 20 19:17 16:14 13 12 11 名称 保留 USEPWMDIV PWMDIV 保留 PWRDN 保留 BYPASS 类型 RO R/W R/W RO R/W RO R/W 复位 0 0 0x7 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 启用 PWM 时钟分频 值 描述 1 PWM 时钟分频器是 PWM 的时钟源。 0 系统时钟是 PWM 的时钟源。 请注意,在使用 PWM 分频值时,它适用于两个 PWM 模块的时钟。 PWM 单元时钟分频值 该域规定的二进制分频值用于预分频系统时钟以便作为PWM模块的时序 参考。该时钟的上升沿与系统时钟同步。 值 分频系数 0x0 /2 0x1 /4 0x2 /8 0x3 /16 0x4 /32 0x5 /64 0x6 /64 0x7 /64(默认) 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 1 PLL掉电 值 描述 1 PLL 掉电。在该位置位前,必须注意要确保有另外的时钟起作用, 并且BYPASS位被置位。 0 PLL 正常工作。 1 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 1 PLL旁路 值 描述 1 系统时钟来自OSC源并且被SYSDIV规定的分频值分频。 0 系统时钟是被SYSDIV规定的分频值分频的PLL输出时钟。 编程指南参见 表 5-5 在 197页。 注意: ADC必须使用PLL作为时钟或直接使用16MHz时钟源以便正 常工作。 216 一月 06, 2012 Texas Instruments-生产数据 位/域 10:6 Stellaris® LM3S9B92 微控制器 名称 XTAL 类型 R/W 复位 0x0B 描述 晶振值 该域规定了与主振荡器连接的晶振值。该域的编码在下面提供。根据使 用的晶振,PLL频率可能不会恰好是400MHz,更多信息见 表 26-8 在 1230页。 USB接口使用的频率在表中给出。为了能在USB规定的时钟要求内有 效,必须使用4、5、6、8、10、12或16MHz的晶振。 值 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 不使用PLL时的晶体频率 使用PLL时的晶体频率(MHz) (MHz) 1.000 MHz 保留 1.8432 MHz 保留 2.000 MHz 保留 2.4576 MHz 保留 3.579545 MHz 3.6864 MHz 4 MHz (USB) 4.096 MHz 4.9152 MHz 5 MHz (USB) 5.12 MHz 6 MHz(复位值)(USB) 6.144 MHz 7.3728 MHz 8 MHz (USB) 8.192 MHz 10.0 MHz (USB) 12.0 MHz (USB) 12.288 MHz 13.56 MHz 14.31818 MHz 16.0 MHz (USB) 16.384 MHz 一月 06, 2012 217 Texas Instruments-生产数据 系统控制 位/域 5:4 3:2 1 0 名称 OSCSRC 保留 IOSCDIS MOSCDIS 类型 R/W RO R/W R/W 复位 0x1 0x0 0 描述 振荡器源 选择 OSC 的输入源。值有: 值 输入源 0x0 主振荡器 主振荡器 0x1 PIOSC 精确内部振荡器 (默认) 0x2 PIOSC/4 精确内部振荡器/4 0x3 30 kHz 30kHz内部振荡器 其它振荡器源参见RCC2寄存器。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 精确内部振荡器禁用 值 描述 1 精确内部振荡器 (PIOSC) 禁用。 0 精确内部振荡器启用。 1 主振荡器禁用 值 描述 1 主振荡器禁用(默认)。 0 主振荡器启用。 218 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 8: XTAL 到 PLL 转换寄存器(PLLCFG),偏移量 0x064 该寄存器提供了方法将外部晶振频率转换为合适的PLL设置。它在复位序列的执行过程中被初始化, 并且,一旦运行模式时钟配置 (RCC) 寄存器的 XTAL 域的值改变,寄存器的值就随之更新(见 215 页) PLL 频率使用PLLCFG域的值计算,如下所示: PLLFreq = OSCFreq * F / (R + 1) XTAL 到 PLL 转换寄存器 (PLLCFG) 基址 0x400F.E000 偏移量 0x064 类型 RO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 F R 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 - - - - - - - - - - - - - - 位/域 31:14 13:5 4:0 名称 保留 F R 类型 RO RO RO 复位 描述 0x0000.0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 - PLL F 值 该域规定了PLL的F输入值。 - PLL R 值 该域规定了PLL的R输入值。 一月 06, 2012 219 Texas Instruments-生产数据 系统控制 寄存器 9: GPIO 高性能总线控制寄存器(GPIOHBCTL),偏移量 0x06C 该寄存器控制着哪个内部总线可用来访问每个GPIO端口。当某位清零时,相应的GPIO端口穿过老 的高级外设总线 (APB) 并通过APB存储器槽 (aperture) 被访问。当某位置位时,相应的GPIO端口穿 过高级高性能总线 (AHB) 并通过AHB存储器槽被访问。每个GPIO端口都可以独立的被配置使用AHB 或APB,但是只可以通过一个槽被访问。AHB总线能比APB总线提供更好的连续访问性能。对于启 用用于AHB访问的端口(见 表 8-7 在 388页),存储器映射中的地址槽会改变。 GPIO 高性能总线控制寄存器 (GPIOHBCTL) 基址 0x400F.E000 偏移量 0x06C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 类型 RO RO RO RO RO RO 复位 0 0 0 0 0 0 15 14 13 12 11 10 保留 类型 RO RO RO RO RO RO 复位 0 0 0 0 0 0 25 24 23 22 21 20 19 18 17 16 保留 RO RO RO RO RO RO RO RO RO RO 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 PORTJ PORTH PORTG PORTF PORTE PORTD PORTC PORTB PORTA RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31:9 8 名称 保留 PORTJ 类型 RO R/W 复位 描述 0x0000.0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 端口J高级高性能总线 该位为端口J定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 7 PORTH R/W 0 端口H高级高性能总线 该位为端口H定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 6 PORTG R/W 0 端口G高级高性能总线 该位为端口G定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 220 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 5 4 3 2 1 0 名称 PORTF PORTE PORTD PORTC PORTB PORTA 类型 R/W R/W R/W R/W R/W R/W 复位 0 描述 端口F高级高性能总线 该位为端口F定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 0 端口E高级高性能总线 该位为端口E定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 0 端口D高级高性能总线 该位为端口D定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 0 端口C高级高性能总线 该位为端口C定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 0 端口B高级高性能总线 该位为端口B定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 0 端口A高级高性能总线 该位为端口A定义了存储器槽。 值 描述 1 高级高性能总线 (AHB)。 0 高级外设总线 (APB)。这个总线是传统总线。 一月 06, 2012 221 Texas Instruments-生产数据 系统控制 寄存器 10: 运行模式时钟配置寄存器 2(RCC2),偏移量 0x070 该寄存器替代了类似RCC的寄存器域,如 表 5-9 所示。当USERCC2位置位时,允许使用RCC2寄存 器的扩展功能,同时也提供方法来向下兼容以前的器件。每个取代RCC域的RCC2域都位于相同的 LSB位位置;但是,某些RCC2域比相应的RCC域更大。 表 5-9. 替代 RCC 域的 RCC2 域 RCC2域... SYSDIV2,位[28:23] PWRDN2,位[13] BYPASS2,位[11] OSCSRC2,位[6:4] 替代 RCC 域 SYSDIV,位[26:23] PWRDN,位[13] BYPASS,位[11] OSCSRC,位[5:4] 运行模式时钟配置寄存器 2 (RCC2) 基址 0x400F.E000 偏移量 0x070 类型 R/W, 复位 0x07C0.6810 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 USERCC2 DIV400 保留 SYSDIV2 SYSDIV2LSB 保留 类型 R/W R/W RO R/W R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO 复位 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 USBPWRDN PWRDN2 保留 BYPASS2 保留 OSCSRC2 保留 类型 RO R/W R/W RO R/W RO RO RO RO R/W R/W R/W RO RO RO RO 复位 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 位/域 31 名称 USERCC2 类型 R/W 复位 0 描述 使用RCC2 值 描述 1 RCC2寄存器域代替RCC寄存器域。 0 使用 RCC寄存器域而忽略RCC2域。 30 DIV400 R/W 0 将PLL分为 400MHz vs 200MHz 该位和SYSDIV2LSB位一起使用允许附加的频率选择。 值 描述 1 附加在SYSDIV2域的SYSDIV2LSB位之后可创建一个7位的分频器, 以使用400MHz的PLL输出,参见 表 5-7 在 198页。 0 使用SYSDIV2本来的值并应用到被预分频的200MHzPLL输出。编 程指南参见 表 5-6 在 197页。 29 28:23 保留 SYSDIV2 RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W 0x0F 系统时钟分频值2 规定了使用哪个分频值来产生系统时钟,该系统时钟来自PLL输出或振 荡器源 (取决于该寄存器中BYPASS2位如何配置)。当RCC寄存器中的 USESYSDIV位和本寄存器中的USERCC2位都置位时SYSDIV2用作分频 值。编程指南参见 表 5-6 在 197页。 222 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 22 21:15 14 13 12 11 10:7 6:4 名称 SYSDIV2LSB 保留 USBPWRDN PWRDN2 保留 BYPASS2 保留 OSCSRC2 类型 R/W RO R/W R/W RO R/W RO R/W 复位 1 0x0 1 描述 SYSDIV2的附加LSB 当DIV400置位时,该位变成SYSDIV2的LSB。如果DIV400清零,该位 没有用。编程指南参见 表 5-6 在 197页。 该位只有在DIV400置位时才能置位和清零。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 掉电 USB PLL 值 描述 1 USB PLL 掉电。 0 USB PLL 工作正常。 1 掉电 PLL 2 值 描述 1 PLL 掉电。 0 PLL 工作正常。 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 1 PLL 旁路 2 值 描述 1 系统时钟来自OSC源并且被SYSDIV2规定的分频值分频。 0 系统时钟是被SYSDIV2规定的分频值分频的PLL输出时钟。 编程指南参见 表 5-6 在 197页。 注意: ADC必须使用PLL作为时钟或直接使用16MHz时钟源以便正 常工作。 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x1 振荡器源 2 选择 OSC 的输入源。值有: 值 描述 0x0 主振荡器 主振荡器 0x1 PIOSC 精确内部振荡器 0x2 PIOSC/4 精确内部振荡器/4 0x3 30 kHz 30kHz内部振荡器 0x4-0x7 保留 一月 06, 2012 223 Texas Instruments-生产数据 系统控制 位/域 3:0 名称 保留 类型 RO 复位 0x0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 224 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 11: 主振荡器控制寄存器(MOSCCTL),偏移量 0x07C 该寄存器提供启用 MOSC 时钟验证电路的能力。当启用时,该电路监测MOSC的频率以确认振荡器 工作在规定的范围内。如果时钟启用后变得无效,微控制器会发出一个上电复位并重新启动到NMI 处理程序。 主振荡器控制寄存器 (MOSCCTL) 基址 0x400F.E000 偏移量 0x07C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CVAL 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:1 0 名称 保留 CVAL 类型 RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 MOSC时钟确认 值 描述 1 MOSC监测电路启用。 0 MOSC监测电路禁用。 一月 06, 2012 225 Texas Instruments-生产数据 系统控制 寄存器 12: 深度睡眠时钟配置寄存器(DSLPCLKCFG),偏移量 0x144 该寄存器为深度睡眠模式的硬件控制提供配置信息。 深度睡眠时钟配置寄存器 (DSLPCLKCFG) 基址 0x400F.E000 偏移量 0x144 类型 R/W, 复位 0x0780.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 DSDIVORIDE 保留 类型 RO RO RO R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO RO 复位 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DSOSCSRC 保留 类型 RO RO RO RO RO RO RO RO RO R/W R/W R/W RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:29 28:23 名称 保留 DSDIVORIDE 类型 RO R/W 复位 0x0 0x0F 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 分频器域代替 如果当PLL正运行时启用深度睡眠模式,PLL将被禁用。在深度睡眠期 间该6位域包含了一个系统分频器域来代替RCC寄存器中的SYSDIV域或 RCC2寄存器中的SYSDIV2域。该分频器用于DSOSCSRC域选择的源。 值 描述 0x0 /1 0x1 /2 0x2 /3 0x3 /4 ... ... 0x3F /64 22:7 保留 RO 0x000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 6:4 DSOSCSRC R/W 0x0 时钟源 规定了在深度睡眠模式期间时钟源。 值 描述 0x0 主振荡器 使用主振荡器用作源。 注意: 如果PIOSC正用作PLL的时钟参考,那么在深度睡 眠模式PIOSC代替MOSC作为时钟源。 0x1 PIOSC 使用精确内部16MHz振荡器作为源。 0x2 保留 0x3 30 kHz 使用30kHz内部振荡器作为源。 0x4-0x7 保留 226 一月 06, 2012 Texas Instruments-生产数据 位/域 3:0 Stellaris® LM3S9B92 微控制器 名称 保留 类型 RO 复位 0x0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 227 Texas Instruments-生产数据 系统控制 寄存器 13: 精确内部振荡器校准寄存器(PIOSCCAL),偏移量 0x150 该寄存器用来更新或重新校准精确内部振荡器。 精确内部振荡器校准寄存器 (PIOSCCAL) 基址 0x400F.E000 偏移量 0x150 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 UTEN 类型 R/W RO RO RO RO RO 复位 0 0 0 0 0 0 15 14 13 12 11 10 保留 类型 RO RO RO RO RO RO 复位 0 0 0 0 0 0 25 24 23 22 21 20 19 18 17 16 保留 RO RO RO RO RO RO RO RO RO RO 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 UPDATE 保留 UT RO R/W RO R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31 名称 UTEN 类型 R/W 复位 0 描述 使用用户校准值 值 描述 1 该寄存器的[6:0]位校准值用于任何更新校准的操作。 0 出厂校准值用于更新校准的操作。 30:9 保留 RO 0x0000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 8 UPDATE R/W 0 更新校准 值 描述 1 通过 。与UTEN一起使用。 0 没有动作。 该位在更新后自动清零。 7 保留 RO 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 6:0 UT R/W 0x0 用户校准值 用户校准值,可被加载到PIOSC。 关于校准 PIOSC 的更多信息,请参阅 “主 PLL 频率配置” 在 198页。 228 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 14: I2S MCLK 配置寄存器(2SMCLKCFG),偏移量 0x170 该寄存器控制着I2S主机发送和接收时钟(I2S0TXMCLK和I2S0RXMCLK)的发送和接收时的分频数。 时钟输入不同的整数和分数产生更精确的I2S时钟频率。参考 “时钟控制” 在 779页 的TXI和TXF位以 及RXI和RXF的不同的组合为MCLK提供了在可接受的误差范围内的频率。 I2S MCLK 配置寄存器 (2SMCLKCFG) 基址 0x400F.E000 偏移量 0x170 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 RXEN 保留 RXI RXF 类型 R/W RO R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TXEN 保留 TXI TXF 类型 R/W RO R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31 名称 RXEN 类型 R/W 复位 0 描述 RX时钟启用 值 描述 1 I2S接收时钟发生器启用。 0 I2S接收时钟发生器禁用。 如果I2S模块配置(I2SCFG)寄存器中的RXSLV位被置位,那么 I2S0RXMCLK必须由外部产生。 30 29:20 19:16 15 保留 RXI RXF TXEN RO 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W 0x0 接收时钟输入整数 该字段的值包含接收时钟发生器输入的整数 R/W 0x0 接收时钟输入分数 该字段的值包含接收时钟发生器输入的分数 R/W 0 TX时钟启用 值 描述 1 I2S发送时钟发生器启用。 0 I2S发送时钟发生器禁用。 如果I2S模块配置(I2SCFG)寄存器中的TXSLV位被置位,那么 I2S0TXMCLK必须由外部产生。 14 保留 RO 0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 13:4 TXI R/W 0x00 发送时钟输入整数 该字段的值包含发送时钟发生器输入的整数 一月 06, 2012 229 Texas Instruments-生产数据 系统控制 位/域 3:0 名称 TXF 类型 R/W 复位 0x0 描述 发送时钟输入分数 该字段的值包含发送时钟发生器输入的分数 230 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 15: 器件标识寄存器 1(DID1),偏移量 0x004 该寄存器标识了器件系列、器件号、温度范围、管脚数和封装类型。每个微控制器由 DID0 寄存器 中的 CLASS 域和 DID1 寄存器中的 PARTNO 域的值组合起来进行专门标识。 器件标识寄存器 1 (DID1) 基址 0x400F.E000 偏移量 0x004 类型 RO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VER FAM PARTNO 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PINCOUNT 保留 TEMP PKG ROHS QUAL 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 0 0 0 0 0 0 - - - - - 1 - - 位/域 31:28 名称 VER 类型 RO 复位 0x1 描述 DID1 版本 该域定义了 DID1 寄存器格式的版本。版本号是数字的。VER 域的值编 码如下(其它所有编码保留): 值 描述 0x1 DID1 寄存器格式的第二版。 27:24 FAM RO 0x0 系列 该域提供了该器件在 Luminary 微处理器产品组中的系列标识。值的编 码如下(其它所有编码保留): 值 描述 0x0 Stellaris 系列的微控制器,即所有产品以 LM3S 作为外部器件号 的开头。 23:16 PARTNO RO 0x6A 器件号 该域提供了该产品在系列中的器件号。值的编码如下(其它所有编码保 留): 值 描述 0x6A LM3S9B92 15:13 PINCOUNT RO 0x2 封装管脚数 该域规定了该器件封装的管脚数。值的编码如下(其它所有编码保留): 值 描述 0x2 100 管脚封装 12:8 保留 RO 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 231 Texas Instruments-生产数据 系统控制 位/域 7:5 4:3 2 1:0 名称 TEMP PKG ROHS QUAL 类型 RO RO RO RO 复位 - 描述 温度范围 该域规定了器件的温度等级。值的编码如下(其它所有编码保留): 值 描述 0x0 商业温度范围 (0°C ~ 70°C) 0x1 工业温度范围 (-40°C ~ 85°C) 0x2 扩展温度范围 (-40°C ~ 105°C) - 封装类型 该域规定封装类型。值的编码如下(其它所有编码保留): 值 描述 0x0 SOIC 封装 0x1 LQFP 封装 0x2 BGA 封装 1 RoHS 合规性 该位说明了器件是否符合 RoHS 标准。值为 1 表示符合。 - 合格状态 该域规定了器件的合格状态。值的编码如下(其它所有编码保留): 值 描述 0x0 工程样片(未经认证) 0x1 试制产品(未经认证) 0x2 完全合格 232 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 16: 器件功能寄存器 0(DC0),偏移量 0x008 该寄存器由器件预定义且可用于校验特性。 器件功能寄存器 0 (DC0) 基址 0x400F.E000 偏移量 0x008 类型 RO, 复位 0x017F.007F 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SRAMSZ 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FLASHSZ 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 位/域 31:16 名称 SRAMSZ 类型 RO 复位 0x017F 描述 SRAM 大小 显示了片上 SRAM 存储器的大小。 值 描述 0x017F 96 KB SRAM 15:0 FLASHSZ RO 0x007F Flash 大小 表示片内 Flash 存储器的大小。 值 描述 0x007F 256KB Flash 一月 06, 2012 233 Texas Instruments-生产数据 系统控制 寄存器 17: 器件功能寄存器 1(DC1),偏移量 0x010 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 1 (DC1) 基址 0x400F.E000 偏移量 0x010 类型 RO, 复位 - 31 30 29 保留 类型 RO RO RO 复位 0 0 0 15 类型 RO 复位 - 14 13 MINSYSDIV RO RO - - 28 WDT1 RO 1 12 RO - 27 26 保留 RO RO 0 0 11 10 MAXADC1SPD RO RO 1 1 25 CAN1 RO 1 24 CAN0 RO 1 9 8 MAXADC0SPD RO RO 1 1 23 RO 0 7 MPU RO 1 22 保留 RO 0 21 20 PWM RO RO 0 1 6 5 4 保留 TEMPSNS PLL RO RO RO 0 1 1 19 18 保留 RO RO 0 0 3 WDT0 RO 1 2 SWO RO 1 17 ADC1 RO 1 1 SWD RO 1 16 ADC0 RO 1 0 JTAG RO 1 位/域 31:29 28 27:26 25 24 23:21 20 19:18 17 16 名称 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 ADC1 ADC0 类型 RO RO RO RO RO RO RO RO RO RO 复位 0 1 0 1 1 0 1 0 1 1 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 看门狗定时器 1 存在 置位表示看门狗定时器 1 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CAN 模块 1 存在 置位表示 CAN 单元 1 存在。 CAN 模块 0 存在 置位表示 CAN 单元 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 模块存在 置位表示 PWM 模块存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC 模块 1 存在 置位表示 ADC 模块 1 存在。 ADC 模块 0 存在 置位表示 ADC 模块 0 存在。 234 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 15:12 11:10 9:8 7 6 5 4 3 2 1 0 名称 MINSYSDIV MAXADC1SPD MAXADC0SPD MPU 保留 TEMPSNS PLL WDT0 SWO SWD JTAG 类型 RO RO RO RO RO RO RO RO RO RO RO 复位 - 描述 系统时钟分频器 用于系统时钟的最小 4 位分频器。复位值取决于硬件。查看 RCC 寄存 器可获知如何使用 SYSDIV 位来改变系统时钟。 值 描述 0x1 指定一个 PLL 2.5 分频的 80-MHz CPU 时钟。 0x2 指定一个 PLL 3 分频的 66.67-MHz CPU 时钟。 0x3 指定一个 PLL 4 分频的 50-MHz CPU 时钟。 0x7 指定一个 PLL 8 分频的 25-MHz 时钟. 0x9 指定一个 PLL 10 分频的 20-MHz 时钟. 0x3 ADC1 最大速率 该域规定了 ADC 采样数据的最大速率。 值 描述 0x3 1M 采样/秒 0x3 ADC0最快速度 该域规定了 ADC 采样数据的最大速率。 值 描述 0x3 1M 采样/秒 1 MPU 存在 置位表示 Cortex-M3 存储器保护单元 (MPU) 模块存在。关于 MPU 的详 细信息可查看“Cortex-M3 外设”一章。 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 1 温度传感器存在 置位表示片上温度传感器存在。 1 PLL 存在 置位表示片上锁相环 (PLL) 存在。 1 看门狗定时器 0 存在 置位表示看门狗定时器 0 存在。 1 SWO 跟踪端口存在 置位表示串行线输出 (SWO) 跟踪端口存在。 1 SWD 存在 置位表示串行线调试器 (SWD) 存在。 1 JTAG 存在 置位表示 JTAG 调试器接口存在。 一月 06, 2012 235 Texas Instruments-生产数据 系统控制 寄存器 18: 器件功能寄存器 2(DC2),偏移量 0x014 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 2 (DC2) 基址 0x400F.E000 偏移量 0x014 类型 RO, 复位 0x570F.5337 31 30 29 28 保留 EPI0 保留 I2S0 类型 RO RO RO RO 复位 0 1 0 1 类型 复位 15 保留 RO 0 14 I2C1 RO 1 13 保留 RO 0 12 I2C0 RO 1 27 保留 RO 0 26 25 24 COMP2 COMP1 COMP0 RO RO RO 1 1 1 11 10 保留 RO RO 0 0 9 QEI1 RO 1 8 QEI0 RO 1 23 22 21 保留 RO RO RO 0 0 0 7 6 保留 RO RO 0 0 5 SSI1 RO 1 20 19 18 17 16 TIMER3 TIMER2 TIMER1 TIMER0 RO RO RO RO RO 0 1 1 1 1 4 SSI0 RO 1 3 保留 RO 0 2 1 0 UART2 UART1 UART0 RO RO RO 1 1 1 位/域 31 30 29 28 27 26 25 24 23:20 19 18 17 名称 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 COMP0 保留 TIMER3 TIMER2 TIMER1 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 0 1 0 1 1 1 0 1 1 1 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 EPI 模块 0 存在 置位表示 EPI 模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2S 模块 0 存在 置位表示 I2S 模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 模拟比较器 2 存在 置位表示模拟比较器 2 存在。 模拟比较器 1 存在 置位表示模拟比较器 1 存在。 模拟比较器 0 存在 置位表示模拟比较器 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 定时器模块 3 存在 置位表示通用定时器模块 3 存在。 定时器模块 2 存在 置位表示通用定时器模块 2 存在。 定时器模块 1 存在 置位表示通用定时器模块 1 存在。 236 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 16 15 14 13 12 11:10 9 8 7:6 5 4 3 2 1 0 名称 TIMER0 保留 I2C1 保留 I2C0 保留 QEI1 QEI0 保留 SSI1 SSI0 保留 UART2 UART1 UART0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 描述 定时器模块 0 存在 置位表示通用定时器模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C 模块 1 存在 置位表示 I2C 模块 1 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C 模块 0 存在 置位表示 I2C 模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 QEI 模块 1 存在 置位表示 QEI 模块 1 存在。 QEI 模块 0 存在 置位表示 QEI 模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 SSI 模块 1 存在 置位表示 SSI 模块 1 存在。 SSI 模块 0 存在 置位表示 SSI 模块 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 UART 模块 2 存在 置位表示 UART 模块 2 存在。 UART 模块 1 存在 置位表示 UART 模块 1 存在。 UART 模块 0 存在 置位表示 UART 模块 0 存在。 一月 06, 2012 237 Texas Instruments-生产数据 系统控制 寄存器 19: 器件功能寄存器 3(DC3),偏移量 0x018 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 3 (DC3) 基址 0x400F.E000 偏移量 0x018 类型 RO, 复位 0xBFFF.FFFF 31 30 29 32KHZ 保留 CCP5 类型 RO RO RO 复位 1 0 1 28 CCP4 RO 1 27 CCP3 RO 1 26 CCP2 RO 1 25 CCP1 RO 1 24 23 22 21 20 19 18 17 16 CCP0 ADC0AIN7 ADC0AIN6 ADC0AIN5 ADC0AIN4 ADC0AIN3 ADC0AIN2 ADC0AIN1 ADC0AIN0 RO RO RO RO RO RO RO RO RO 1 1 1 1 1 1 1 1 1 15 14 PWMFAULT C2O 类型 RO RO 复位 1 1 13 12 11 C2PLUS C2MINUS C1O RO RO RO 1 1 1 10 9 8 C1PLUS C1MINUS C0O RO RO RO 1 1 1 7 6 5 C0PLUS C0MINUS PWM5 RO RO RO 1 1 1 4 PWM4 RO 1 3 PWM3 RO 1 2 PWM2 RO 1 1 PWM1 RO 1 0 PWM0 RO 1 位/域 31 30 29 28 27 26 25 24 23 22 21 20 名称 32KHZ 保留 CCP5 CCP4 CCP3 CCP2 CCP1 CCP0 ADC0AIN7 ADC0AIN6 ADC0AIN5 ADC0AIN4 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 0 1 1 1 1 1 1 1 1 1 1 描述 32KHz 输入时钟可用 置位表示一个偶数 CCP 管脚存在并且可用作一个 32KHz 输入时钟。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CCP5 管脚存在 置位表示捕捉/比较/PWM 管脚 5 存在。 CCP4 管脚存在 置位表示捕捉/比较/PWM 管脚 4 存在。 CCP3 管脚存在 置位表示捕捉/比较/PWM 管脚 3 存在。 CCP2 管脚存在 置位表示捕捉/比较/PWM 管脚 2 存在。 CCP1 管脚存在 置位表示捕捉/比较/PWM 管脚 1 存在。 CCP0 管脚存在 置位表示捕捉/比较/PWM 管脚 0 存在。 ADC 模块 0 AIN7 管脚存在 置位表示 ADC 模块 0 的输入管脚 7 存在。 ADC 模块 0 AIN6 管脚存在 置位表示 ADC 模块 0 的输入管脚 6 存在。 ADC 模块 0 AIN5 管脚存在 置位表示 ADC 模块 0 的输入管脚 5 存在。 ADC 模块 0 AIN4 管脚存在 置位表示 ADC 模块 0 的输入管脚 4 存在。 238 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 名称 ADC0AIN3 ADC0AIN2 ADC0AIN1 ADC0AIN0 PWMFAULT C2O C2PLUS C2MINUS C1O C1PLUS C1MINUS C0O C0PLUS C0MINUS PWM5 PWM4 PWM3 PWM2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 描述 ADC 模块 0 AIN3 管脚存在 置位表示 ADC 模块 0 的输入管脚 3 存在。 ADC 模块 0 AIN2 管脚存在 置位表示 ADC 模块 0 的输入管脚 2 存在。 ADC 模块 0 AIN1 管脚存在 置位表示 ADC 模块 0 的输入管脚 1 存在。 ADC 模块0 AIN0 管脚存在 置位表示 ADC 模块 0 的输入管脚 0 存在。 PWM 故障管脚存在 置位表示 PWM 故障管脚存在。查看 DC5 可得到该器件规定的错误管 脚。 C2o 管脚存在 置位表示模拟比较器 2 输出管脚存在。 C2+ 管脚存在 置位表示模拟比较器 2(+) 输入管脚存在。 C2- 管脚存在 置位表示模拟比较器 2(-) 输入管脚存在。 C1o 管脚存在 置位表示模拟比较器 1 输出管脚存在。 C1+ 管脚存在 置位表示模拟比较器 1(+) 输入管脚存在。 C1- 管脚存在 置位表示模拟比较器 1(-) 输入管脚存在。 C0o 管脚存在 置位表示模拟比较器 0 输出管脚存在。 C0+ 管脚存在 置位表示模拟比较器 0(+) 输入管脚存在。 C0- 管脚存在 置位表示模拟比较器 0(-) 输入管脚存在。 PWM5 管脚存在 置位表示 PWM 管脚 5 存在。 PWM4 管脚存在 置位表示 PWM 管脚 4 存在。 PWM3 管脚存在 置位表示 PWM 管脚 3 存在。 PWM2 管脚存在 置位表示 PWM 管脚 2 存在。 一月 06, 2012 239 Texas Instruments-生产数据 系统控制 位/域 1 0 名称 PWM1 PWM0 类型 RO RO 复位 1 1 描述 PWM1 管脚存在 置位表示 PWM 管脚 1 存在。 PWM0 管脚存在 置位表示 PWM 管脚 0 存在。 240 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 20: 器件功能寄存器 4(DC4),偏移量 0x01C 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 4 (DC4) 基址 0x400F.E000 偏移量 0x01C 类型 RO, 复位 0x5004.F1FF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 EPHY0 保留 EMAC0 保留 PICAL 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CCP7 CCP6 UDMA ROM 保留 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 位/域 31 30 29 28 27:19 18 17:16 15 14 13 12 11:9 名称 保留 EPHY0 保留 EMAC0 保留 PICAL 保留 CCP7 CCP6 UDMA ROM 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 0 1 0 1 0 1 1 1 1 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 以太网 PHY 层 0 存在 置位表示以太网 PHY 层 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 以太网 MAC 层 0 存在 置位表示以太网 MAC 层 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PIOSC 规格 置位表示可以校准 PIOSC。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CCP7 管脚存在 置位表示捕捉/比较/PWM 管脚 7 存在。 CCP6 管脚存在 置位表示捕捉/比较/PWM 管脚 6 存在。 微 DMA 模块存在 置位表示微 DMA 模块存在。 内部 ROM 代码存在 置位表示内部代码 ROM 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 241 Texas Instruments-生产数据 系统控制 位/域 8 7 6 5 4 3 2 1 0 名称 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 描述 GPIO 端口 J 存在 置位表示 GPIO 端口 J 存在。 GPIO 端口 H 存在 置位表示 GPIO 端口 H 存在。 GPIO 端口 G 存在 置位表示 GPIO 端口 G 存在。 GPIO 端口 F 存在 置位表示 GPIO 端口 F 存在。 GPIO 端口 E 存在 置位表示 GPIO 端口 E 存在。 GPIO 端口 D 存在 置位表示 GPIO 端口 D 存在。 GPIO 端口 C 存在 置位表示 GPIO 端口 C 存在。 GPIO 端口 B 存在 置位表示 GPIO 端口 B 存在。 GPIO 端口 A 存在 置位表示 GPIO 端口 A 存在。 242 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 21: 器件功能寄存器 5(DC5),偏移量 0x020 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 5 (DC5) 基址 0x400F.E000 偏移量 0x020 类型 RO, 复位 0x0F30.00FF 31 30 29 保留 类型 RO RO RO 复位 0 0 0 15 14 13 类型 RO RO RO 复位 0 0 0 28 27 26 25 24 23 22 21 20 19 18 17 16 PWMFAULT3 PWMFAULT2 PWMFAULT1 PWMFAULT0 保留 PWMEFLT PWMESYNC 保留 RO RO RO RO RO RO RO RO RO RO RO RO RO 0 1 1 1 1 0 0 1 1 0 0 0 0 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PWM7 PWM6 PWM5 PWM4 PWM3 PWM2 PWM1 PWM0 RO RO RO RO RO RO RO RO RO RO RO RO RO 0 0 0 0 0 1 1 1 1 1 1 1 1 位/域 31:28 27 26 25 24 23:22 21 20 19:8 7 6 5 名称 保留 PWMFAULT3 PWMFAULT2 PWMFAULT1 PWMFAULT0 保留 PWMEFLT PWMESYNC 保留 PWM7 PWM6 PWM5 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 1 1 1 0 1 1 0 1 1 1 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 错误 3 管脚存在 置位表示 PWM 错误 3 管脚存在。 PWM 错误 2 管脚存在 置位表示 PWM 错误 2 管脚存在。 PWM 错误 1 管脚存在 置位表示 PWM 错误 1 管脚存在。 PWM 错误 0 管脚存在 置位表示 PWM 错误 0 管脚存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 扩展错误激活 置位表示 PWM 扩展错误特性是激活的。 PWM 扩展 SYNC 激活 置位表示 PWM 扩展 SYNC 特性是激活的。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM7 管脚存在 置位表示 PWM 管脚 7 存在。 PWM6 管脚存在 置位表示 PWM 管脚 6 存在。 PWM5 管脚存在 置位表示 PWM 管脚 5 存在。 一月 06, 2012 243 Texas Instruments-生产数据 系统控制 位/域 4 3 2 1 0 名称 PWM4 PWM3 PWM2 PWM1 PWM0 类型 RO RO RO RO RO 复位 1 1 1 1 1 描述 PWM4 管脚存在 置位表示 PWM 管脚 4 存在。 PWM3 管脚存在 置位表示 PWM 管脚 3 存在。 PWM2 管脚存在 置位表示 PWM 管脚 2 存在。 PWM1 管脚存在 置位表示 PWM 管脚 1 存在。 PWM0 管脚存在 置位表示 PWM 管脚 0 存在。 244 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 22: 器件功能寄存器 6(DC6),偏移量 0x024 该寄存器由器件预定义且可用于校验特性。如果该寄存器中的某位是零,那么对应模块不存在。在 RCGC0、 SCGC0 和 DCGC0 寄存器中的对应位不能置位。 器件功能寄存器 6 (DC6) 基址 0x400F.E000 偏移量 0x024 类型 RO, 复位 0x0000.0013 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 USB0PHY 保留 USB0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 位/域 31:5 4 3:2 1:0 名称 保留 USB0PHY 保留 USB0 类型 RO RO RO RO 复位 0 1 0 0x3 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB 模块 0 PHY 存在 置位表示 USB 模块 0 PHY 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB 模块 0 存在 该域表示 USB 模块 0 存在并规定了它的功能。 值 描述 0x3 USB0 是 OTG。 一月 06, 2012 245 Texas Instruments-生产数据 系统控制 寄存器 23: 器件功能寄存器 7(DC7),偏移量 0x028 该寄存器由器件预定义且可用于校验 uDMA 通道特性。值为 1 表示该通道在这个器件上可用,值为 0 表示该通道只在这个系列的其它器件上可用。大部分通道具有基本功能和第二功能的分配。如果 该微控制器的基本功能不可用,那么第二功能变为基本功能。如果第二功能不可用,那么基本功能 就是唯一的选择。 器件功能寄存器 7 (DC7) 基址 0x400F.E000 偏移量 0x028 类型 RO, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 DMACH30 DMACH29 DMACH28 DMACH27 DMACH26 DMACH25 DMACH24 DMACH23 DMACH22 DMACH21 DMACH20 DMACH19 DMACH18 DMACH17 DMACH16 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DMACH15 DMACH14 DMACH13 DMACH12 DMACH11 DMACH10 DMACH9 DMACH8 DMACH7 DMACH6 DMACH5 DMACH4 DMACH3 DMACH2 DMACH1 DMACH0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30 29 28 27 26 25 24 名称 保留 DMACH30 DMACH29 DMACH28 DMACH27 DMACH26 DMACH25 DMACH24 类型 RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 描述 保留 为 uDMA 通道 31 保留。 SW 置位表示 uDMA 通道 30 可用于软件传输。 I2S0_TX / CAN1_TX 置位表示 uDMA 通道 29 可用,并且连接到了 I2S 模块 0 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 CAN 模块 1的 发送路径。 I2S0_RX / CAN1_RX 置位表示 uDMA 通道 28 可用,并且连接到了 I2S 模块 0 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 CAN 模块 1 的接收路径。 CAN1_TX / ADC1_SS3 置位表示 uDMA 通道 27 可用,并且连接到了 CAN 模块 1 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 ADC 模块 1 的采样序列发生器 3。 CAN1_RX / ADC1_SS2 置位表示 uDMA 通道 26 可用,并且连接到了 CAN 模块 1 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 ADC 模块 1 的采样序列发生器 2。 SSI1_TX / ADC1_SS1 置位表示 uDMA 通道 25 可用,并且连接到了 SSI 模块 1 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 ADC 模块 1 的采样序列发生器 1。 SSI1_RX / ADC1_SS0 置位表示 uDMA 通道 24 可用,并且连接到了 SSI 模块 1 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 ADC 模块 1 的采样序列发生器 0。 246 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 23 22 21 20 19 18 17 16 15 14 13 名称 DMACH23 DMACH22 DMACH21 DMACH20 DMACH19 DMACH18 DMACH17 DMACH16 DMACH15 DMACH14 DMACH13 类型 RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 描述 UART1_TX / CAN2_TX 置位表示 uDMA 通道 23 可用,并且连接到了 UART 模块 1 的发送路 径。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功 能,并连接到 CAN 模块 2的 发送路径。 UART1_RX / CAN2_RX 置位表示 uDMA 通道 22 可用,并且连接到了 UART 模块 1 的接收路 径。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功 能,并连接到 CAN 模块 2 的接收路径。 Timer1B / EPI0_WFIFO 置位表示 uDMA 通道 21 可用,并且连接到了定时器 1B。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连接 到 EPI 模块 0 的写 FIFO (WRIFO)。 Timer1A / EPI0_NBRFIFO 置位表示 uDMA 通道 20 可用,并且连接到了定时器 1A。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连接 到 EPI 模块 0 的非闭塞读 FIFO (NBRFIFO)。 Timer0B / Timer1B 置位表示 uDMA 通道 19 可用,并且连接到了定时器 0B。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连接 到定时器 1B。 Timer0A / Timer1A 置位表示 uDMA 通道 18 可用,并且连接到了定时器 0A。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连接 到定时器 1A。 ADC0_SS3 置位表示 uDMA 通道 17 可用,并且连接到了 ADC 模块 0 的采样序列 发生器 3。 ADC0_SS2 置位表示 uDMA 通道 16 可用,并且连接到了 ADC 模块 0 的采样序列 发生器 2。 ADC0_SS1 / Timer2B 置位表示 uDMA 通道 15 可用,并且连接到了 ADC 模块 0 的采样序列 发生器 1。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第 二功能,并连接到定时器 2B。 ADC0_SS0 / Timer2A 置位表示 uDMA 通道 14 可用,并且连接到了 ADC 模块 0 的采样序列 发生器 0。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第 二功能,并连接到定时器 2A。 CAN0_TX / UART2_TX 置位表示 uDMA 通道 13 可用,并且连接到了 CAN 模块 0 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 2 的发送路径。 一月 06, 2012 247 Texas Instruments-生产数据 系统控制 位/域 12 11 10 9 8 7 6 5 4 3 2 名称 DMACH12 DMACH11 DMACH10 DMACH9 DMACH8 DMACH7 DMACH6 DMACH5 DMACH4 DMACH3 DMACH2 类型 RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 描述 CAN0_RX / UART2_RX 置位表示 uDMA 通道 12 可用,并且连接到了 CAN 模块 0 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 2 的接收路径。 SSI0_TX / SSI1_TX 置位表示 uDMA 通道 11 可用,并且连接到了 SSI 模块 0 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 SSI 模块 1 的发送路径。 SSI0_RX / SSI1_RX 置位表示 uDMA 通道 10 可用,并且连接到了 SSI 模块 0 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 SSI 模块 1 的接收路径。 UART0_TX / UART1_TX 置位表示 uDMA 通道 9 可用,并且连接到了 UART 模块 0 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 1 的发送路径。 UART0_RX / UART1_RX 置位表示 uDMA 通道 8 可用,并且连接到了 UART 模块 0 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 1 的接收路径。 ETH_TX / Timer2B 置位表示 uDMA 通道 7 可用,并且连接到了以太网模块的发送路径。如 果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连 接到定时器 2B。 ETH_RX / Timer2A 置位表示uDMA通道6可用,并且连接到了以太网模块的接收路径。如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并连接 到定时器 2A。 USB_EP3_TX / Timer2B 置位表示 uDMA 通道 5 可用,并且连接到了 USB 端点 3 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到定时器 2B。 USB_EP3_RX / Timer2A 置位表示 uDMA 通道 4 可用,并且连接到了 USB 端点 3 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到定时器 2A。 USB_EP2_TX / Timer3B 置位表示 uDMA 通道 3 可用,并且连接到了 USB 端点 2 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到定时器 3B。 USB_EP2_RX / Timer3A 置位表示 uDMA 通道 2 可用,并且连接到了 USB 端点 2 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到定时器 3A。 248 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 1 0 名称 DMACH1 DMACH0 类型 RO RO 复位 1 1 描述 USB_EP1_TX / UART2_TX 置位表示 uDMA 通道 1 可用,并且连接到了 USB 端点 1 的发送路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 2 的发送路径。 USB_EP1_RX / UART2_RX 置位表示 uDMA 通道 0 可用,并且连接到了 USB 端点 1 的接收路径。 如果 DMACHASGN 寄存器的相应位置位,该通道分配为第二功能,并 连接到 UART 模块 2 的接收路径。 一月 06, 2012 249 Texas Instruments-生产数据 系统控制 寄存器 24: 器件功能 8 ADC 通道(DC8),偏移量 0x02C 该寄存器由器件预定义且可用于校验特性。 器件功能 8 ADC 通道 (DC8) 基址 0x400F.E000 偏移量 0x02C 类型 RO, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADC1AIN15 ADC1AIN14 ADC1AIN13 ADC1AIN12 ADC1AIN11 ADC1AIN10 ADC1AIN9 ADC1AIN8 ADC1AIN7 ADC1AIN6 ADC1AIN5 ADC1AIN4 ADC1AIN3 ADC1AIN2 ADC1AIN1 ADC1AIN0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADC0AIN15 ADC0AIN14 ADC0AIN13 ADC0AIN12 ADC0AIN11 ADC0AIN10 ADC0AIN9 ADC0AIN8 ADC0AIN7 ADC0AIN6 ADC0AIN5 ADC0AIN4 ADC0AIN3 ADC0AIN2 ADC0AIN1 ADC0AIN0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30 29 28 27 26 25 24 23 22 21 20 名称 ADC1AIN15 ADC1AIN14 ADC1AIN13 ADC1AIN12 ADC1AIN11 ADC1AIN10 ADC1AIN9 ADC1AIN8 ADC1AIN7 ADC1AIN6 ADC1AIN5 ADC1AIN4 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 描述 ADC 模块1 AIN15 管脚存在 置位表示 ADC 模块 1 的输入管脚 15 存在。 ADC 模块1 AIN14 管脚存在 置位表示 ADC 模块 1 的输入管脚 14 存在。 ADC 模块 1 AIN13 管脚存在 置位表示 ADC 模块 1 的输入管脚 13 存在。 ADC 模块1 AIN12 管脚存在 置位表示 ADC 模块 1 的输入管脚 12 存在。 ADC 模块1 AIN11 管脚存在 置位表示 ADC 模块 1 的输入管脚 11 存在。 ADC 模块1 AIN10 管脚存在 置位表示 ADC 模块 1 的输入管脚 10 存在。 ADC 模块1 AIN9 管脚存在 置位表示 ADC 模块 1 的输入管脚 9 存在。 ADC 模块1 AIN8 管脚存在 置位表示 ADC 模块 1 的输入管脚 8 存在。 ADC 模块 1 AIN7 管脚存在 置位表示 ADC 模块 1 的输入管脚 7 存在。 ADC 模块 1 AIN6 管脚存在 置位表示 ADC 模块 1 的输入管脚 6 存在。 ADC 模块 1 AIN5 管脚存在 置位表示 ADC 模块 1 的输入管脚 5 存在。 ADC 模块 1 AIN4 管脚存在 置位表示 ADC 模块 1 的输入管脚 4 存在。 250 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 名称 ADC1AIN3 ADC1AIN2 ADC1AIN1 ADC1AIN0 ADC0AIN15 ADC0AIN14 ADC0AIN13 ADC0AIN12 ADC0AIN11 ADC0AIN10 ADC0AIN9 ADC0AIN8 ADC0AIN7 ADC0AIN6 ADC0AIN5 ADC0AIN4 ADC0AIN3 ADC0AIN2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 描述 ADC 模块 1 AIN3 管脚存在 置位表示 ADC 模块 1 的输入管脚 3 存在。 ADC 模块 1 AIN2 管脚存在 置位表示 ADC 模块 1 的输入管脚 2 存在。 ADC 模块 1 AIN1 管脚存在 置位表示 ADC 模块 1 的输入管脚 1 存在。 ADC 模块1 AIN0 管脚存在 置位表示 ADC 模块 1 的输入管脚 0 存在。 ADC 模块0 AIN15 管脚存在 置位表示 ADC 模块 0 的输入管脚 15 存在。 ADC 模块0 AIN14 管脚存在 置位表示 ADC 模块 0 的输入管脚 14 存在。 ADC 模块 0 AIN13 管脚存在 置位表示 ADC 模块 0 的输入管脚 13 存在。 ADC 模块0 AIN12 管脚存在 置位表示 ADC 模块 0 的输入管脚 12 存在。 ADC 模块0 AIN11 管脚存在 置位表示 ADC 模块 0 的输入管脚 11 存在。 ADC 模块0 AIN10 管脚存在 置位表示 ADC 模块 0 的输入管脚 10 存在。 ADC 模块0 AIN9 管脚存在 置位表示 ADC 模块 0 的输入管脚 9 存在。 ADC 模块0 AIN8 管脚存在 置位表示 ADC 模块 0 的输入管脚 8 存在。 ADC 模块 0 AIN7 管脚存在 置位表示 ADC 模块 0 的输入管脚 7 存在。 ADC 模块 0 AIN6 管脚存在 置位表示 ADC 模块 0 的输入管脚 6 存在。 ADC 模块 0 AIN5 管脚存在 置位表示 ADC 模块 0 的输入管脚 5 存在。 ADC 模块 0 AIN4 管脚存在 置位表示 ADC 模块 0 的输入管脚 4 存在。 ADC 模块 0 AIN3 管脚存在 置位表示 ADC 模块 0 的输入管脚 3 存在。 ADC 模块 0 AIN2 管脚存在 置位表示 ADC 模块 0 的输入管脚 2 存在。 一月 06, 2012 251 Texas Instruments-生产数据 系统控制 位/域 1 0 名称 ADC0AIN1 ADC0AIN0 类型 RO RO 复位 1 1 描述 ADC 模块 0 AIN1 管脚存在 置位表示 ADC 模块 0 的输入管脚 1 存在。 ADC 模块0 AIN0 管脚存在 置位表示 ADC 模块 0 的输入管脚 0 存在。 252 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 25: 器件功能 9 ADC 数字比较器(DC9),偏移量 0x190 该寄存器由器件预定义且可用于校验特性。 器件功能 9 ADC 数字比较器 (DC9) 基址 0x400F.E000 偏移量 0x190 类型 RO, 复位 0x00FF.00FF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 ADC1DC7 ADC1DC6 ADC1DC5 ADC1DC4 ADC1DC3 ADC1DC2 ADC1DC1 ADC1DC0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 ADC0DC7 ADC0DC6 ADC0DC5 ADC0DC4 ADC0DC3 ADC0DC2 ADC0DC1 ADC0DC0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 位/域 31:24 23 22 21 20 19 18 17 16 15:8 7 6 名称 保留 ADC1DC7 ADC1DC6 ADC1DC5 ADC1DC4 ADC1DC3 ADC1DC2 ADC1DC1 ADC1DC0 保留 ADC0DC7 ADC0DC6 类型 RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 1 1 1 1 1 1 1 1 0 1 1 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC1 DC7 存在 置位表示 ADC 模块 1 的数字比较器 7 存在。 ADC1 DC6 存在 置位表示 ADC 模块 1 的数字比较器 6 存在。 ADC1 DC5 存在 置位表示 ADC 模块 1 的数字比较器 5 存在。 ADC1 DC4 存在 置位表示 ADC 模块 1 的数字比较器 4 存在。 ADC1 DC3 存在 置位表示 ADC 模块 1 的数字比较器 3 存在。 ADC1 DC2 存在 置位表示 ADC 模块 1 的数字比较器 2 存在。 ADC1 DC1 存在 置位表示 ADC 模块 1 的数字比较器 1 存在。 ADC1 DC0 存在 置位表示 ADC 模块 1 的数字比较器 0 存在。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC0 DC7 存在 置位表示 ADC 模块 0 的数字比较器 7 存在。 ADC0 DC6 存在 置位表示 ADC 模块 0 的数字比较器 6 存在。 一月 06, 2012 253 Texas Instruments-生产数据 系统控制 位/域 5 4 3 2 1 0 名称 ADC0DC5 ADC0DC4 ADC0DC3 ADC0DC2 ADC0DC1 ADC0DC0 类型 RO RO RO RO RO RO 复位 1 1 1 1 1 1 描述 ADC0 DC5 存在 置位表示 ADC 模块 0 的数字比较器 5 存在。 ADC0 DC4 存在 置位表示 ADC 模块 0 的数字比较器 4 存在。 ADC0 DC3 存在 置位表示 ADC 模块 0 的数字比较器 3 存在。 ADC0 DC2 存在 置位表示 ADC 模块 0 的数字比较器 2 存在。 ADC0 DC1存在 置位表示 ADC 模块 0 的数字比较器 1 存在。 ADC0 DC0存在 置位表示 ADC 模块 0 的数字比较器 0 存在。 254 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 26: 非易失性存储器信息寄存器(NVMSTAT),偏移量 0x1A0 该寄存器由器件预定义且可用于校验特性。 非易失性存储器信息寄存器 (NVMSTAT) 基址 0x400F.E000 偏移量 0x1A0 类型 RO, 复位 0x0000.0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 FWB 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 位/域 31:1 0 名称 保留 FWB 类型 RO RO 复位 0 1 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 32 个字的 Flash 写缓存器可用 置位表示 32 个字的 Flash 存储器写缓存器特性可用。 一月 06, 2012 255 Texas Instruments-生产数据 系统控制 寄存器 27: 运行模式时钟门控控制寄存器 0(RCGC0),偏移量 0x100 该寄存器控制正常运行模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC0 是运行操作的时钟配置寄存器,SCGC0 是睡 眠操作的时钟配置寄存器,DCGC0 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 运行模式时钟门控控制寄存器 0 (RCGC0) 基址 0x400F.E000 偏移量 0x100 类型 R/W, 复位 0x00000040 31 30 29 28 27 26 25 24 23 22 保留 WDT1 保留 CAN1 CAN0 保留 类型 RO RO RO R/W RO RO R/W R/W RO RO 复位 0 0 0 0 0 0 0 0 0 0 15 类型 RO 复位 0 14 13 保留 RO RO 0 0 12 11 10 9 8 7 6 MAXADC1SPD MAXADC0SPD 保留 保留 RO R/W R/W R/W R/W RO RO 0 0 0 0 0 0 1 21 20 PWM RO R/W 0 0 5 4 保留 RO RO 0 0 19 18 保留 RO RO 0 0 3 2 WDT0 R/W RO 0 0 17 ADC1 R/W 0 1 保留 RO 0 16 ADC0 R/W 0 0 RO 0 位/域 31:29 28 27:26 25 24 23:21 20 19:18 名称 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 类型 RO R/W RO R/W R/W RO R/W RO 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 WDT1 时钟门控控制 该位控制看门狗定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CAN1 时钟门控控制 这个位控制 CAN 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 CAN0 时钟门控控制 这个位控制 CAN 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 时钟门控控制 该位控制 PWM 模块的时钟门控。如果置位表示该模块接收到时钟并运 行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的 读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 256 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 17 16 15:12 11:10 9:8 7 6 5:4 3 2:0 名称 ADC1 ADC0 保留 MAXADC1SPD MAXADC0SPD 保留 保留 保留 WDT0 保留 类型 R/W R/W RO R/W R/W RO RO RO R/W RO 复位 0 0 0 0 描述 ADC1 时钟门控控制 这个位控制 SAR ADC 模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 ADC0 时钟门控控制 这个位控制 ADC 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC1 采样速率 该域设置 ADC 模块 1 的数据采样速率。不能把速率设置得超过最大速 率。采样速率可通过如下对 MAXADC1SPD 位的设置而设定(其它所有 编码保留): 值 描述 0x3 1M 采样/秒 0x2 500K 采样/秒 0x1 250K 采样/秒 0x0 125K 采样/秒 0 ADC0 采样速率 该域设置 ADC0 模块的数据采样速率。不能把速率设置得超过最大速 率。采样速率可通过如下对 MAXADC0SPD 位的设置而设定(其它所有 编码保留): 值 描述 0x3 1M 采样/秒 0x2 500K 采样/秒 0x1 250K 采样/秒 0x0 125K 采样/秒 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 1 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 0 WDT0 时钟门控控制 该位控制看门狗定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 257 Texas Instruments-生产数据 系统控制 寄存器 28: 睡眠模式时钟门控控制寄存器 0(SCGC0),偏移量 0x110 该寄存器控制睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启用。 如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果这些 单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位状态 为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意,这 些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其它 系列以及将来的器件实现合理的代码兼容。RCGC0 是运行操作的时钟配置寄存器,SCGC0 是睡眠 操作的时钟配置寄存器,DCGC0 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 睡眠模式时钟门控控制寄存器 0 (SCGC0) 基址 0x400F.E000 偏移量 0x110 类型 R/W, 复位 0x00000040 31 30 29 28 27 26 25 24 23 22 保留 WDT1 保留 CAN1 CAN0 保留 类型 RO RO RO R/W RO RO R/W R/W RO RO 复位 0 0 0 0 0 0 0 0 0 0 15 类型 RO 复位 0 14 13 保留 RO RO 0 0 12 11 10 9 8 7 6 MAXADC1SPD MAXADC0SPD 保留 保留 RO R/W R/W R/W R/W RO RO 0 0 0 0 0 0 1 21 20 PWM RO R/W 0 0 5 4 保留 RO RO 0 0 19 18 保留 RO RO 0 0 3 2 WDT0 R/W RO 0 0 17 ADC1 R/W 0 1 保留 RO 0 16 ADC0 R/W 0 0 RO 0 位/域 31:29 28 27:26 25 24 23:21 20 19:18 名称 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 类型 RO R/W RO R/W R/W RO R/W RO 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 WDT1 时钟门控控制 该位控制看门狗定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CAN1 时钟门控控制 这个位控制 CAN 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 CAN0 时钟门控控制 这个位控制 CAN 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 时钟门控控制 该位控制 PWM 模块的时钟门控。如果置位表示该模块接收到时钟并运 行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的 读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 258 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 17 16 15:12 11:10 9:8 7 6 5:4 3 2:0 名称 ADC1 ADC0 保留 MAXADC1SPD MAXADC0SPD 保留 保留 保留 WDT0 保留 类型 R/W R/W RO R/W R/W RO RO RO R/W RO 复位 0 0 0 0 描述 ADC1 时钟门控控制 这个位控制 ADC 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 ADC0 时钟门控控制 这个位控制 ADC 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC1 采样速率 该域设置 ADC 模块 1 的数据采样速率。不能把速率设置得超过最大速 率。采样速率可通过如下对 MAXADC1SPD 位的设置而设定(其它所有 编码保留): 值 描述 0x3 1M 采样/秒 0x2 500K 采样/秒 0x1 250K 采样/秒 0x0 125K 采样/秒 0 ADC0 采样速率 该域设置 ADC 模块 0 的数据采样速率。不能把速率设置得超过最大速 率。采样速率可通过如下对 MAXADC0SPD 位的设置而设定(其它所有 编码保留): 值 描述 0x3 1M 采样/秒 0x2 500K 采样/秒 0x1 250K 采样/秒 0x0 125K 采样/秒 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 1 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 0 WDT0 时钟门控控制 该位控制看门狗定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 0 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 259 Texas Instruments-生产数据 系统控制 寄存器 29: 深度睡眠模式时钟门控控制寄存器 0(DCGC0),偏移量 0x120 该寄存器控制深度睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC0 是运行操作的时钟配置寄存器,SCGC0 是睡 眠操作的时钟配置寄存器,DCGC0 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 深度睡眠模式时钟门控控制寄存器 0 (DCGC0) 基址 0x400F.E000 偏移量 0x120 类型 R/W, 复位 0x00000040 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 ADC1 ADC0 类型 RO RO RO R/W RO RO R/W R/W RO RO RO R/W RO RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 保留 保留 WDT0 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO R/W RO RO RO 复位 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 位/域 31:29 28 27:26 25 24 23:21 20 19:18 名称 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 类型 RO R/W RO R/W R/W RO R/W RO 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 WDT1 时钟门控控制 该位控制看门狗定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CAN1 时钟门控控制 这个位控制 CAN 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 CAN0 时钟门控控制 这个位控制 CAN 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM 时钟门控控制 该位控制 PWM 模块的时钟门控。如果置位表示该模块接收到时钟并运 行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的 读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 260 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 17 16 15:7 6 5:4 3 2:0 名称 ADC1 ADC0 保留 保留 保留 WDT0 保留 类型 R/W R/W RO RO RO R/W RO 复位 0 0 0 1 0 0 0 描述 ADC1 时钟门控控制 这个位控制 ADC 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 ADC0 时钟门控控制 这个位控制 ADC 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 WDT0 时钟门控控制 该位控制看门狗定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 261 Texas Instruments-生产数据 系统控制 寄存器 30: 运行模式时钟门控控制寄存器 1(RCGC1),偏移量 0x104 该寄存器控制正常运行模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC1 是运行操作的时钟配置寄存器,SCGC1 是睡 眠操作的时钟配置寄存器,DCGC1 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 运行模式时钟门控控制寄存器 1 (RCGC1) 基址 0x400F.E000 偏移量 0x104 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 25 24 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 COMP0 类型 RO R/W RO R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 类型 复位 15 保留 RO 0 14 I2C1 R/W 0 13 保留 RO 0 12 I2C0 R/W 0 11 10 保留 RO RO 0 0 9 QEI1 R/W 0 8 QEI0 R/W 0 23 22 21 保留 RO RO RO 0 0 0 7 6 保留 RO RO 0 0 5 SSI1 R/W 0 20 19 18 17 16 TIMER3 TIMER2 TIMER1 TIMER0 RO R/W R/W R/W R/W 0 0 0 0 0 4 SSI0 R/W 0 3 保留 RO 0 2 1 0 UART2 UART1 UART0 R/W R/W R/W 0 0 0 位/域 31 30 29 28 27 26 25 名称 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 类型 RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 EPI0 时钟门控 这个位控制 EPI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2S0 时钟门控 这个位控制 I2S 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 模拟比较器 2 时钟门控 这个位控制模拟比较器 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 模拟比较器 1 时钟门控 这个位控制模拟比较器 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 262 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 24 23:20 19 18 17 16 15 14 13 12 11:10 9 8 名称 COMP0 保留 TIMER3 TIMER2 TIMER1 TIMER0 保留 I2C1 保留 I2C0 保留 QEI1 QEI0 类型 R/W RO R/W R/W R/W R/W RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 描述 模拟比较器 0 时钟门控 这个位控制模拟比较器 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 定时器 3 时钟门控控制 这个位控制通用定时器模块 3 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 2 时钟门控控制 这个位控制通用定时器模块 2 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 1 时钟门控控制 这个位控制通用定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 0 时钟门控控制 这个位控制通用定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C1 时钟门控控制 这个位控制 I2C 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C0 时钟门控控制 这个位控制 I2C 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 QEI1 时钟门控控制 这个位控制 QEI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 QEI0 时钟门控控制 这个位控制 QEI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 一月 06, 2012 263 Texas Instruments-生产数据 系统控制 位/域 7:6 5 4 3 2 1 0 名称 保留 SSI1 SSI0 保留 UART2 UART1 UART0 类型 RO R/W R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 SSI1 时钟门控控制 这个位控制 SSI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 SSI0 时钟门控控制 这个位控制 SSI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 UART2 时钟门控控制 这个位控制 UART 模块 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART1 时钟门控控制 这个位控制 UART 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART0 时钟门控控制 这个位控制 UART 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 264 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 31: 睡眠模式时钟门控控制寄存器 1(SCGC1),偏移量 0x114 该寄存器控制睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启用。 如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果这些 单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位状态 为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意,这 些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其它 系列以及将来的器件实现合理的代码兼容。RCGC1 是运行操作的时钟配置寄存器,SCGC1 是睡眠 操作的时钟配置寄存器,DCGC1 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 睡眠模式时钟门控控制寄存器 1 (SCGC1) 基址 0x400F.E000 偏移量 0x114 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 25 24 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 COMP0 类型 RO R/W RO R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 类型 复位 15 保留 RO 0 14 I2C1 R/W 0 13 保留 RO 0 12 I2C0 R/W 0 11 10 保留 RO RO 0 0 9 QEI1 R/W 0 8 QEI0 R/W 0 23 22 21 保留 RO RO RO 0 0 0 7 6 保留 RO RO 0 0 5 SSI1 R/W 0 20 19 18 17 16 TIMER3 TIMER2 TIMER1 TIMER0 RO R/W R/W R/W R/W 0 0 0 0 0 4 SSI0 R/W 0 3 保留 RO 0 2 1 0 UART2 UART1 UART0 R/W R/W R/W 0 0 0 位/域 31 30 29 28 27 26 25 名称 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 类型 RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 EPI0 时钟门控 这个位控制 EPI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2S0 时钟门控 这个位控制 I2S 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 模拟比较器 2 时钟门控 这个位控制模拟比较器 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 模拟比较器 1 时钟门控 这个位控制模拟比较器 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 一月 06, 2012 265 Texas Instruments-生产数据 系统控制 位/域 24 23:20 19 18 17 16 15 14 13 12 11:10 9 8 名称 COMP0 保留 TIMER3 TIMER2 TIMER1 TIMER0 保留 I2C1 保留 I2C0 保留 QEI1 QEI0 类型 R/W RO R/W R/W R/W R/W RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 描述 模拟比较器 0 时钟门控 这个位控制模拟比较器 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 定时器 3 时钟门控控制 这个位控制通用定时器模块 3 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 2 时钟门控控制 这个位控制通用定时器模块 2 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 1 时钟门控控制 这个位控制通用定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 0 时钟门控控制 这个位控制通用定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C1 时钟门控控制 这个位控制 I2C 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C0 时钟门控控制 这个位控制 I2C 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 QEI1 时钟门控控制 这个位控制 QEI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 QEI0 时钟门控控制 这个位控制 QEI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 266 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 7:6 5 4 3 2 1 0 名称 保留 SSI1 SSI0 保留 UART2 UART1 UART0 类型 RO R/W R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 SSI1 时钟门控控制 这个位控制 SSI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 SSI0 时钟门控控制 这个位控制 SSI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 UART2 时钟门控控制 这个位控制 UART 模块 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART1 时钟门控控制 这个位控制 UART 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART0 时钟门控控制 这个位控制 UART 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 一月 06, 2012 267 Texas Instruments-生产数据 系统控制 寄存器 32: 深度睡眠模式时钟门控控制寄存器 1(DCGC1),偏移量 0x124 该寄存器控制深度睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC1 是运行操作的时钟配置寄存器,SCGC1 是睡 眠操作的时钟配置寄存器,DCGC1 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 深度睡眠模式时钟门控控制寄存器 1 (DCGC1) 基址 0x400F.E000 偏移量 0x124 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 25 24 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 COMP0 类型 RO R/W RO R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 0 类型 复位 15 保留 RO 0 14 I2C1 R/W 0 13 保留 RO 0 12 I2C0 R/W 0 11 10 保留 RO RO 0 0 9 QEI1 R/W 0 8 QEI0 R/W 0 23 22 21 保留 RO RO RO 0 0 0 7 6 保留 RO RO 0 0 5 SSI1 R/W 0 20 19 18 17 16 TIMER3 TIMER2 TIMER1 TIMER0 RO R/W R/W R/W R/W 0 0 0 0 0 4 SSI0 R/W 0 3 保留 RO 0 2 1 0 UART2 UART1 UART0 R/W R/W R/W 0 0 0 位/域 31 30 29 28 27 26 25 名称 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 类型 RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 EPI0 时钟门控 这个位控制 EPI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2S0 时钟门控 这个位控制 I2S 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 模拟比较器 2 时钟门控 这个位控制模拟比较器 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 模拟比较器 1 时钟门控 这个位控制模拟比较器 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 268 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 24 23:20 19 18 17 16 15 14 13 12 11:10 9 8 名称 COMP0 保留 TIMER3 TIMER2 TIMER1 TIMER0 保留 I2C1 保留 I2C0 保留 QEI1 QEI0 类型 R/W RO R/W R/W R/W R/W RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 描述 模拟比较器 0 时钟门控 这个位控制模拟比较器 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 定时器 3 时钟门控控制 这个位控制通用定时器模块 3 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 2 时钟门控控制 这个位控制通用定时器模块 2 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 1 时钟门控控制 这个位控制通用定时器模块 1 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 定时器 0 时钟门控控制 这个位控制通用定时器模块 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C1 时钟门控控制 这个位控制 I2C 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C0 时钟门控控制 这个位控制 I2C 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 QEI1 时钟门控控制 这个位控制 QEI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 QEI0 时钟门控控制 这个位控制 QEI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 一月 06, 2012 269 Texas Instruments-生产数据 系统控制 位/域 7:6 5 4 3 2 1 0 名称 保留 SSI1 SSI0 保留 UART2 UART1 UART0 类型 RO R/W R/W RO R/W R/W R/W 复位 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 SSI1 时钟门控控制 这个位控制 SSI 模块 1 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 SSI0 时钟门控控制 这个位控制 SSI 模块 0 的时钟门控。如果置位表示该模块接收到时钟并 运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它 的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 UART2 时钟门控控制 这个位控制 UART 模块 2 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART1 时钟门控控制 这个位控制 UART 模块 1 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 UART0 时钟门控控制 这个位控制 UART 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 270 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 33: 运行模式时钟门控控制寄存器 2(RCGC2),偏移量 0x108 该寄存器控制正常运行模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC2 是运行操作的时钟配置寄存器,SCGC2 是睡 眠操作的时钟配置寄存器,DCGC2 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 运行模式时钟门控控制寄存器 2 (RCGC2) 基址 0x400F.E000 偏移量 0x108 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 保留 EPHY0 保留 EMAC0 类型 RO R/W RO R/W RO RO 复位 0 0 0 0 0 0 15 14 13 12 保留 UDMA 类型 RO 复位 0 RO R/W RO 0 0 0 11 10 保留 RO RO 0 0 25 24 23 22 21 20 19 18 17 16 保留 USB0 RO RO RO RO RO RO RO RO RO R/W 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31 30 29 28 27:17 16 15:14 13 名称 保留 EPHY0 保留 EMAC0 保留 USB0 保留 UDMA 类型 RO R/W RO R/W RO R/W RO R/W 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PHY0 时钟门控控制 这个位控制以太网 PHY 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 MAC0 时钟门控控制 这个位控制以太网 MAC 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB0 时钟门控控制 这个位控制 USB 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 微 DMA 时钟门控控制 该位控制微 DMA 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 一月 06, 2012 271 Texas Instruments-生产数据 系统控制 位/域 12:9 8 7 6 5 4 3 2 1 0 名称 保留 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 端口 J 时钟门控控制 该位控制端口 J 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 H 时钟门控控制 该位控制端口 H 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 G 时钟门控控制 该位控制端口 G 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 F 时钟门控控制 该位控制端口 F 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 E 时钟门控控制 端口 E 时钟门控控制。该位控制端口 E 的时钟门控。如果置位表示该模 块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不 使用时钟,对它的读或写都会产生一个总线故障。 端口 D 时钟门控控制 端口 D 时钟门控控制。该位控制端口 D 的时钟门控。如果置位表示该 模块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块 不使用时钟,对它的读或写都会产生一个总线故障。 端口 C 时钟门控控制 该位控制端口 C 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 B 时钟门控控制 该位控制端口 B 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 A 时钟门控控制 该位控制端口 A 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 272 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 34: 睡眠模式时钟门控控制寄存器 2(SCGC2),偏移量 0x118 该寄存器控制睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启用。 如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果这些 单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位状态 为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意,这 些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其它 系列以及将来的器件实现合理的代码兼容。RCGC2 是运行操作的时钟配置寄存器,SCGC2 是睡眠 操作的时钟配置寄存器,DCGC2 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 睡眠模式时钟门控控制寄存器 2 (SCGC2) 基址 0x400F.E000 偏移量 0x118 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 保留 EPHY0 保留 EMAC0 类型 RO R/W RO R/W RO RO 复位 0 0 0 0 0 0 15 14 13 12 保留 UDMA 类型 RO 复位 0 RO R/W RO 0 0 0 11 10 保留 RO RO 0 0 25 24 23 22 21 20 19 18 17 16 保留 USB0 RO RO RO RO RO RO RO RO RO R/W 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31 30 29 28 27:17 16 15:14 13 名称 保留 EPHY0 保留 EMAC0 保留 USB0 保留 UDMA 类型 RO R/W RO R/W RO R/W RO R/W 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PHY0 时钟门控控制 这个位控制以太网 PHY 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 MAC0 时钟门控控制 这个位控制以太网 MAC 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB0 时钟门控控制 这个位控制 USB 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 微 DMA 时钟门控控制 该位控制微 DMA 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 一月 06, 2012 273 Texas Instruments-生产数据 系统控制 位/域 12:9 8 7 6 5 4 3 2 1 0 名称 保留 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 端口 J 时钟门控控制 该位控制端口 J 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 H 时钟门控控制 该位控制端口 H 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 G 时钟门控控制 该位控制端口 G 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 F 时钟门控控制 该位控制端口 F 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 E 时钟门控控制 端口 E 时钟门控控制。该位控制端口 E 的时钟门控。如果置位表示该模 块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不 使用时钟,对它的读或写都会产生一个总线故障。 端口 D 时钟门控控制 端口 D 时钟门控控制。该位控制端口 D 的时钟门控。如果置位表示该 模块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块 不使用时钟,对它的读或写都会产生一个总线故障。 端口 C 时钟门控控制 该位控制端口 C 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 B 时钟门控控制 该位控制端口 B 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 A 时钟门控控制 该位控制端口 A 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 274 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 35: 深度睡眠模式时钟门控控制寄存器 2(DCGC2),偏移量 0x128 该寄存器控制深度睡眠模式的时钟门控逻辑。每一位都控制一个给定的接口、功能或模块的时钟启 用。如果置位表示该模块接收到时钟并运行。否则,该单元不使用时钟并且被禁止(节能)。如果 这些单元不使用时钟,对它们的读或写都会产生一个总线故障。除非特别说明,否则这些位的复位 状态为 0(不使用时钟),以便禁止所有功能单元。应用所需的端口需要通过软件来使能。请注意, 这些寄存器除了含有对接口、功能或模块进行控制的位以外,还可能含有其它位,这样可保证与其 它系列以及将来的器件实现合理的代码兼容。RCGC2 是运行操作的时钟配置寄存器,SCGC2 是睡 眠操作的时钟配置寄存器,DCGC2 是深度睡眠操作的时钟配置寄存器。置位运行模式时钟配置 (RCC) 寄存器的 ACG 位说明系统使用睡眠模式。 深度睡眠模式时钟门控控制寄存器 2 (DCGC2) 基址 0x400F.E000 偏移量 0x128 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 保留 EPHY0 保留 EMAC0 类型 RO R/W RO R/W RO RO 复位 0 0 0 0 0 0 15 14 13 12 保留 UDMA 类型 RO 复位 0 RO R/W RO 0 0 0 11 10 保留 RO RO 0 0 25 24 23 22 21 20 19 18 17 16 保留 USB0 RO RO RO RO RO RO RO RO RO R/W 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31 30 29 28 27:17 16 15:14 13 名称 保留 EPHY0 保留 EMAC0 保留 USB0 保留 UDMA 类型 RO R/W RO R/W RO R/W RO R/W 复位 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PHY0 时钟门控控制 这个位控制以太网 PHY 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 MAC0 时钟门控控制 这个位控制以太网 MAC 层 0 的时钟门控。如果置位表示该模块接收到 时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时 钟,对它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB0 时钟门控控制 这个位控制 USB 模块 0 的时钟门控。如果置位表示该模块接收到时钟 并运行。否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对 它的读或写都会产生一个总线故障。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 微 DMA 时钟门控控制 该位控制微 DMA 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 一月 06, 2012 275 Texas Instruments-生产数据 系统控制 位/域 12:9 8 7 6 5 4 3 2 1 0 名称 保留 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 端口 J 时钟门控控制 该位控制端口 J 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 H 时钟门控控制 该位控制端口 H 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 G 时钟门控控制 该位控制端口 G 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 F 时钟门控控制 该位控制端口 F 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 E 时钟门控控制 端口 E 时钟门控控制。该位控制端口 E 的时钟门控。如果置位表示该模 块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块不 使用时钟,对它的读或写都会产生一个总线故障。 端口 D 时钟门控控制 端口 D 时钟门控控制。该位控制端口 D 的时钟门控。如果置位表示该 模块接收到时钟并运行。否则该模块不使用时钟并被禁止。如果该模块 不使用时钟,对它的读或写都会产生一个总线故障。 端口 C 时钟门控控制 该位控制端口 C 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 B 时钟门控控制 该位控制端口 B 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 端口 A 时钟门控控制 该位控制端口 A 的时钟门控。如果置位表示该模块接收到时钟并运行。 否则该模块不使用时钟并被禁止。如果该模块不使用时钟,对它的读或 写都会产生一个总线故障。 276 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 36: 软件复位控制寄存器 0(SRCR0),偏移量 0x040 该寄存器允许模块被单独复位。写入该寄存器的值被器件功能 1 (DC1) 寄存器的位屏蔽。 软件复位控制寄存器 0 (SRCR0) 基址 0x400F.E000 偏移量 0x040 类型 R/W, 复位 0x00000000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 ADC1 ADC0 类型 RO RO RO R/W RO RO R/W R/W RO RO RO R/W RO RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 WDT0 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO R/W RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:29 28 27:26 25 24 23:21 20 19:18 17 16 15:4 名称 保留 WDT1 保留 CAN1 CAN0 保留 PWM 保留 ADC1 ADC0 保留 类型 RO R/W RO R/W R/W RO R/W RO R/W R/W RO 复位 0 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 WDT1 复位控制 当该位置位时,看门狗定时器模块 1 复位。所有内部数据丢失,同时寄 存器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 CAN1 复位控制 当该位置位时,CAN 模块 1 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 CAN0 复位控制 当该位置位时,CAN 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PWM复位控制 当该位置位时,PWM模块0复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 ADC1复位控制 当该位置位时,ADC模块1复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 ADC0复位控制 当该位置位时,ADC模块0复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 一月 06, 2012 277 Texas Instruments-生产数据 系统控制 位/域 3 2:0 名称 WDT0 保留 类型 R/W RO 复位 0 0 描述 WDT0 复位控制 当该位置位时,看门狗定时器模块 0 复位。所有内部数据丢失,同时寄 存器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 278 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 37: 软件复位控制寄存器 1(SRCR1),偏移量 0x044 该寄存器允许模块被单独复位。写入该寄存器的值被器件功能 2 (DC2) 寄存器的位屏蔽。 软件复位控制寄存器 1 (SRCR1) 基址 0x400F.E000 偏移量 0x044 类型 R/W, 复位 0x00000000 31 30 29 28 保留 EPI0 保留 I2S0 类型 RO R/W RO R/W 复位 0 0 0 0 类型 复位 15 保留 RO 0 14 I2C1 R/W 0 13 保留 RO 0 12 I2C0 R/W 0 27 保留 RO 0 26 25 24 COMP2 COMP1 COMP0 R/W R/W R/W 0 0 0 11 10 保留 RO RO 0 0 9 QEI1 R/W 0 8 QEI0 R/W 0 23 22 21 保留 RO RO RO 0 0 0 7 6 保留 RO RO 0 0 5 SSI1 R/W 0 20 19 18 17 16 TIMER3 TIMER2 TIMER1 TIMER0 RO R/W R/W R/W R/W 0 0 0 0 0 4 SSI0 R/W 0 3 保留 RO 0 2 1 0 UART2 UART1 UART0 R/W R/W R/W 0 0 0 位/域 31 30 29 28 27 26 25 24 23:20 19 18 名称 保留 EPI0 保留 I2S0 保留 COMP2 COMP1 COMP0 保留 TIMER3 TIMER2 类型 RO R/W RO R/W RO R/W R/W R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 EPI0 复位控制 当该位置位时,EPI 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2S0 复位控制 当该位置位时,I2S 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 模拟比较器 2 复位控制 当该位置位时,模拟比较器模块 2 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 模拟比较器 1 复位控制 当该位置位时,模拟比较器模块 1 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 模拟比较器 0 复位控制 当该位置位时,模拟比较器模块 0 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 定时器 3 复位控制 定时器 3 复位控制。当该位置位时,通用定时器模块 3 复位。所有内部 数据丢失,同时寄存器回到复位状态。该位在置位后必须手动清零。 定时器 2 复位控制 当该位置位时,通用定时器模块 2 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 一月 06, 2012 279 Texas Instruments-生产数据 系统控制 位/域 17 16 15 14 13 12 11:10 9 8 7:6 5 4 3 2 1 名称 TIMER1 TIMER0 保留 I2C1 保留 I2C0 保留 QEI1 QEI0 保留 SSI1 SSI0 保留 UART2 UART1 类型 R/W R/W RO R/W RO R/W RO R/W R/W RO R/W R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 描述 定时器 1 复位控制 当该位置位时,通用定时器模块 1 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 定时器 0 复位控制 当该位置位时,通用定时器模块 0 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C1 复位控制 当该位置位时,I2C 模块 1 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 I2C0 复位控制 当该位置位时,I2C 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 QEI1 复位控制 当该位置位时,QEI 模块 1 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 QEI0 复位控制 当该位置位时,QEI 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 SSI1 复位控制 当该位置位时,SSI 模块 1 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 SSI0 复位控制 当该位置位时,SSI 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 UART2 复位控制 当该位置位时,UART 模块 2 复位。所有内部数据丢失,同时寄存器回 到复位状态。该位在置位后必须手动清零。 UART1 复位控制 当该位置位时,UART 模块 1 复位。所有内部数据丢失,同时寄存器回 到复位状态。该位在置位后必须手动清零。 280 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 0 名称 UART0 类型 R/W 复位 0 描述 UART0 复位控制 当该位置位时,UART 模块 0 复位。所有内部数据丢失,同时寄存器回 到复位状态。该位在置位后必须手动清零。 一月 06, 2012 281 Texas Instruments-生产数据 系统控制 寄存器 38: 软件复位控制寄存器 2(SRCR2),偏移量 0x048 该寄存器允许模块被单独复位。写入该寄存器的值被器件功能 4 (DC4) 寄存器的位屏蔽。 软件复位控制寄存器 2 (SRCR2) 基址 0x400F.E000 偏移量 0x048 类型 R/W, 复位 0x00000000 31 30 29 28 保留 EPHY0 保留 EMAC0 类型 RO R/W RO R/W 复位 0 0 0 0 15 14 13 12 保留 UDMA 类型 RO 复位 0 RO R/W RO 0 0 0 27 26 RO RO 0 0 11 10 保留 RO RO 0 0 25 24 23 22 21 20 19 18 17 16 保留 USB0 RO RO RO RO RO RO RO RO RO R/W 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 GPIOJ GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA RO R/W R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 0 0 位/域 31 30 29 28 27:17 16 15:14 13 12:9 8 7 名称 保留 EPHY0 保留 EMAC0 保留 USB0 保留 UDMA 保留 GPIOJ GPIOH 类型 RO R/W RO R/W RO R/W RO R/W RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 PHY0 复位控制 当该位置位时,以太网 PHY 层 0 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 MAC0 复位控制 当该位置位时,以太网 MAC 层 0 复位。所有内部数据丢失,同时寄存 器回到复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 USB0 复位控制 当该位置位时,USB 模块 0 复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 微 DMA 复位控制 当该位置位时,uDMA 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 端口 J 复位控制 当该位置位时,端口 J 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 H 复位控制 当该位置位时,端口 H 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 282 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 6 5 4 3 2 1 0 名称 GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA 类型 R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 描述 端口 G 复位控制 当该位置位时,端口 G 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 F 复位控制 当该位置位时,端口 F 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 E 复位控制 当该位置位时,端口 E 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 D 复位控制 当该位置位时,端口 D 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 C 复位控制 当该位置位时,端口 C 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 B 复位控制 当该位置位时,端口 B 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 端口 A 复位控制 当该位置位时,端口 A 模块复位。所有内部数据丢失,同时寄存器回到 复位状态。该位在置位后必须手动清零。 一月 06, 2012 283 Texas Instruments-生产数据 内部存储器 6 内部存储器 该 LM3S9B92 微控制器带有 96 KB 的位带 SRAM、内部 ROM 和 256 KB 的 Flash 存储器。该 Flash 存储控制器提供了一个友好的用户接口,使 Flash 编程成为一项简单的任务。在 Flash 存储器中可 应用 Flash 保护,以 2-KB 大小的块为单位。 6.1 结构图 图 6-1 在 284页 说明了内部存储器的结构图和控制逻辑。图中的虚线框表示位于系统控制模块中的 寄存器。 图 6-1. 内部存储器结构图 ROM 控制 RMCTL ROM 阵列 6.2 系统 总线 Cortex-M3 Icode 总线 Dcode 总线 Flash 控制 FMA FMD FMC FCRIS FCIM FCMISC Flash 写入缓冲器 FMC2 FWBVAL FWBn 32 字 Flash 阵列 桥 SRAM 阵列 Flash 保护 FFMMPPRREEn FFMMPPPPEEn 用Fla户s寄h 时存序器 UBSUOESORET_CRCREFLGG0 USER_REG1 USER_REG2 USER_REG3 功能描述 本节描述了 SRAM、ROM Flash 存储器的功能。 注意: μDMA 控制器可以将数据转移到片上 SRAM,也可以从片上 SRAM 将数据转移出。但是, 由于 Flash 存储器和 ROM 位于不同的内部总线,所以 μDMA 不能从 Flash 存储器或 ROM 转移数据。 284 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 6.2.1 6.2.2 6.2.2.1 SRAM Stellaris® 器件的内部 SRAM 位于器件存储器映射的地址 0x2000.0000。为了减少读-修改-写 (RMW)操作的时间,ARM 在处理器中引入了位带 (bit-banding) 技术。在位带启用的处理器中, 存储器映射的特定区域 (SRAM 和外设空间) 能够使用地址别名,在单个原子操作中访问各个位。位 带基址位于0x2200.0000。 使用下面的公式来计算位带别名: 位带别名 = 位带基址 + (字节偏移量 * 32) + (位编号 * 4) 例如,如果要修改地址0x2000.1000的第3位,位带别名的计算如下: 0x2200.0000 + (0x1000 * 32) + (3 * 4) = 0x2202.000C 通过计算得出的位带别名,对地址 0x2202.000C 执行读/写操作的指令可以直接访问地址 0x2000.1000 处字节的第 3 位。 关于位带的详细信息,请参考 “位带区” 在 97页。 注意: SRAM 使用两个 32 位的 SRAM 存储区来实现功能 (分离的SRAM阵列)。存储区被这样分 开,以便一个包含所有偶数字 (偶存储区),另一个包含所有奇数字 (奇存储区)。对同一个存 储区执行读访问后立即执行写访问,中间会引起一个单时钟周期的停顿。但是对一个存储区 执行读访问后对另一个存储区执行写访问,则可以在连续时钟周期内进行而不引起延迟。 ROM Stellaris器件的内部 ROM 位于器件存储器映射的地址0x0100.0000。ROM 详细内容请参考“Stellaris® ROM User’s Guide”。 ROM 包含下面几部分: ■ Stellaris 引导装载程序和向量表 ■ Stellaris 为产品特定的外设和接口而发行的外设驱动库 (DriverLib) ■ 高级加密标准 (AES) 密码表 ■ 循环冗余检验 (CRC) 错误检测功能 引导装载程序用作初始化程序的装载器 (当 Flash 存储器为空时) ,也可以作为一种应用——初始的 固件升级机制 (通过回调引导装载程序) 。应用程序可以调用 ROM 中外设驱动库的 API,以减少对 Flash 存储器的需求,释放 Flash 存储器空间用于其它目的 (如应用程序增加的特性)。高级加密标准 (AES) 是美国政府使用的公开定义的加密标准。循环冗余检验 (CRC) 用来确认一段数据的内容是否 与先前检验的相同。 引导装载程序概述 Stellaris 引导装载程序用来将代码下载到设备的 Flash 存储器中,而不需要使用调试接口。内核复 位时,通过使用启动配置寄存器 (BOOTCFG) 中配置好的端口 A-H 的 GPIO 信号,用户可以选择让 内核直接执行 ROM 的引导装载程序或 Flash 存储器上的应用程序。 复位时,ROM 被映射到 Flash 存储器,以便 ROM 启动序列始终可以执行。从 ROM 执行的启动序 列如下: 1. 清零 BA 位以使 ROM 映射在 0x01xx.xxxx,同时 Flash 存储器映射在 0x0。 一月 06, 2012 285 Texas Instruments-生产数据 内部存储器 6.2.2.2 6.2.2.3 2. 读取 BOOTCFG 寄存器。如果 EN 位被清零,那么将指定的 GPIO 管脚状态与规定的极性相比 较。如果管脚状态与规定的极性匹配,那么 ROM 会映射到地址 0x0000.0000,继续执行 ROM 引导装载程序。 3. 如果管脚状态与指定的极性不符,那么地址 0x0000.0004 的数据就会被读取,如果该数据是 0xFFFF.FFFF,那么 ROM 被映射到地址 0x0000.0000,继续执行 ROM 引导装载程序。 4. 如果地址 0x0000.0004 中的数据不是 0xFFFF.FFFF,堆栈指针 (SP) 装载 Flash 存储器地址 0x0000.0000 的数据,程序计数器 (PC) 装载地址 0x0000.0004 的数据。随后用户应用程序开 始执行。 引导装载程序使用一个简单的包接口与设备进行同步通信。由于引导装载程序不能启用 PLL,所以 它的速度由内部振荡器 (PIOSC) 频率决定。下面的串行接口可以使用: ■ UART0 ■ SSI0 ■ I2C0 ■ 以太网 为简单起见,所有串行接口的数据格式和通信协议都是相同的。 注意: 引导装载程序的 Flash 存储器驻留版本也支持 CAN 和 USB。 有关引导装载程序的软件信息可查看 “Stellaris® Boot Loader User's Guide”。 Stellaris 外设驱动库 Stellaris 外设驱动库包含一个叫做 driverlib/rom.h 的文件,它帮助调用 ROM 中的外设驱动库 函数。每个函数的详细描述请参考 “Stellaris® ROM User’s Guide”。更多关于调用 ROM 函数和 使用 driverlib/rom.h 的详细信息,可查看“Stellaris® Peripheral Driver Library User's Guide” 中的“使用 ROM”一章。 ROM 起始处的表格指向 ROM 可以提供的 API 的入口指针。通过这些表格访问 API 提供了扩展性, 虽然 API 的位置可能会在将来的 ROM 版本中改变,可是 API 表格不会变。该表格被分为两级,主 表格包含的每个指针对应一个外设,该外设指向二级表格。二级表格包含的每个指针对应一个与外 设相关的API。主表格的位置在 0x0100.0010,恰好在 ROM 中的 Cortex-M3 向量表后面。 DriverLib 函数的详细描述请参考 “Stellaris® Peripheral Driver Library User's Guide”。 其他 API 功能可用于图像和 USB 功能,但不会预装载到 ROM。Stellaris 图像库提供了一系列基本 的图形设置,还有一部分图像设置可以在装有 Stellaris 微处理器的有图形显示的板子上建立图形用 户接口(更多信息请参考 “Stellaris® Graphics Library User's Guide”)。Stellaris 的 USB 库是一 系列数据类型和函数,可以在装有 Stellaris 微处理器的板子上建立 USB 设备,主机或 On-The-Go (OTG) 应用(更多信息请参考 “Stellaris® USB Library User's Guide”)。 高级加密标准 (AES) 密码表 AES 是一种强大的加密方法,拥有不错的性能和大小。AES 在硬件和软件方面都很快,它非常容易 使用,并且只需要很少的存储空间。AES 对于那些可以预先安排密钥的应用程序来说是理想的,比 如加工或配置过程中的设置等。ROM 中提供了执行 XySSL AES 所需要的四个数据表。第一个是正 向的 S-box 替换表,第二个是反向的 S-box 替换表,第三个是正向的多项式表,最后一个是反向的 多项式表。关于 AES 的更多信息请参考 “Stellaris® ROM User’s Guide”。 286 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 6.2.2.4 6.2.3 6.2.3.1 6.2.3.2 循环冗余检验 (CRC) 错误检测 CRC 技术可用来确认信息的正确接收(在传送中没有丢失或改变),用来确认解压后的数据,用来 证实 Flash 存储器的内容没有更改,以及其它数据需要被确认的情况。CRC 优于简单的校验和 (例 如异或所有的位) ,因为它更容易捕捉到变化。关于 CRC 的更多信息请查看 “Stellaris® ROM User’s Guide”。 Flash 存储器 在系统时钟速度为 50 MHz 或以下时,Flash 存储器是单周期读取的。Flash 存储器由一系列 1 KB 的块组织在一起,这些块可以被单独擦除。可以单独对一个 32 位的字进行编程,把当前为 1 的位 变为 0。另外,可通过一个写入缓冲区同时对 Flash 存储器中的 32 个连续字进行编程,。擦除一个 块会将块中的所有位都复位为 1。1-KB 的块可以配对,形成一系列 2-KB 的块,这些 2KB 的块可以 被单独保护。该保护允许块被标记为只读或只执行,以提供不同等级的代码保护。只读块不能被擦 除或编程,块的内容受保护不能修改。只执行块不能被擦除或编程,只能通过控制器取指机制来读 取它的内容,块的内容受保护不能被控制器或调试器读取。 小心 – Stellaris Flash 存储器阵列带有 ECC 功能,可以通过一个测试端口连续扫描该阵列,寻找 ECC 错误,如果检测到错误还可以纠正。该操作对于微控制器来说是透明的。BIST 必须不定期地 扫描整个存储器阵列,确保完整性,扫描一次大约五分钟时间。在微控制器小于 5 分钟频繁上电的 系统中,微控制器应该通过可控方式移除电源,以确保适当的操作。软件可以用 Flash 控制 (FCTL) 寄存器中的 USDREQ 位来请求断电,并在移除电源之前等待接收来自 USDACK 位的应答。如果使用 这种可控方式关断微控制器的电源,BIST 引擎应该跟踪当时它在存储器阵列的位置,并且在上电五 分钟以后总是扫描整个阵列,不管有多少个间断的上电周期。如果微控制器在上电五分钟之前掉电, 那么 BIST 会从它上次可控掉电之前离开的地方再次开始,如果没有可控掉电,BIST 会从零开始。 偶尔一次短暂的掉电不是问题,但是在不受控制时,微控制器不能总是频繁掉电。在可控方式下, 微控制器可以按照需要进行频繁上电和掉电。 预取指缓冲器 Flash 存储器控制器有一个预取指缓冲器,当 CPU 频率大于 50 MHz 时它将自动启用。在此模式 下,Flash 存储器在系统时钟一半频率下工作。每个时钟周期,预取指缓冲器获取两个 32 位字,这 样在代码线性执行时取指不处于等待状态。取指缓冲器包含一个分支推断机制,它可以辨认出分支 从而避免因读取下一对字而增加的额外等待状态。并且,短循环分支经常保持在缓冲器中。因此, 一些分支可以不用等待就能执行。其它分支会引起一个单独的等待状态。 Flash 存储器保护 用户可以在 四对 32 位宽存储器中使用两种 Flash 存储器保护形式,以2-KB Flash 存储器块为单位。 FMPPEn 和 FMPREn 寄存器的各个位控制各种保护形式的策略(每个块控制一种策略)。 ■ Flash 存储器保护编程启用 (FMPPEn):如果某个位被置位,那么就可以对相应的块进行编程 (写入)或擦除。如果某个位被清零,那么就不能修改相应的块。 ■ Flash 存储器保护读取启用寄存器(FMPREn):如果某个位被置位,那么软件或者调试器就可 以对相应的块执行或读取。如果某个位被清零,那么相应的模块块只能被执行,模块的内容禁止 被作为数据读取。 这些策略可以进行组合,如 表 6-1 在 287页 所示。 表 6-1. Flash 存储器保护策略组合 FMPPEn 0 1 FMPREn 0 0 保护 只执行保护 模块只能被执行,不能被写入或擦除。这种模式用来保护代码。 模块可以被写入、擦除或执行,不能被读取。这种组合很少使用。 一月 06, 2012 287 Texas Instruments-生产数据 内部存储器 6.2.3.3 6.2.3.4 表 6-1. Flash 存储器保护策略组合(续) FMPPEn 0 1 FMPREn 1 1 保护 只读保护。模块可以被读取或执行,但不能写入或擦除。这种模式用来锁定模块防止对 其进行进一步的修改,但允许对其执行任意的读或执行访问。 无保护。模块可以被写入、擦除、执行或读取。 对 Flash 存储器的读取保护块(FMPREn 位被置位)进行读取访问是被禁止的,会产生一次总线故 障。对 Flash 存储器的编程保护块(FMPPEn 位被置位)进行编程或擦除访问是被禁止的。可以选 择产生一个中断(将 Flash控制器中断屏蔽 (FCIM) 寄存器中的 AMASK 位置位)提醒软件开发者在 开发和调试阶段的错误软件操作。 对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被设置为 1。这些设置实现了一 种开放式的访问策略和可编程策略。寄存器的位可通过清零特定寄存器的位来改变。这种改变不是 永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且没有 提交,那么它可以通过执行一段上电复位序列来恢复。这些更改需要用 Flash 存储器控制 (FMC) 寄 存器来提交。有关这些位的编程详情请参考 “非易失性寄存器编程” 在 290页。 中断 Flash 控制器在检测到下列状态时会产生中断: ■ 编程中断 - 当编程或擦除动作完成时发出的信号。 ■ 访问中断 - 当对受相应 FMPPEn 位保护的 2 KB 块存储器尝试编程或擦除操作时发出的信号。 能够触发控制器级中断的事件在 Flash控制器可屏蔽中断状态 (FCMIS) 寄存器(请参考 298页)中 定义,将相应的 MASK 位置位可以启用该中断。如果不使用中断,原始的中断状态总是在 Flash 控 制器原始中断状态 (FCRIS) 寄存器(请参考 297页)中可见。 对 Flash 控制器可屏蔽中断的状态和清除 (FCMISC) 寄存器(请参考 299页)中相应的位写 1 可以 清除相应的中断(适用于 FCMIS 和 FCRIS 寄存器)。 Flash 存储器编程 Stellaris 设备为 Flash 存储器编程提供了一个友好的用户接口。所有的擦除/编程操作都通过 3 个寄 存器来处理:Flash 存储器地址 (FMA)、Flash 存储器数据 (FMD) 和 Flash 存储器控制 (FMC)。注 意,如果微控制器的调试功能没有激活而处在“锁死”状态,必须执行一段恢复序列来再激活调试 模块。请参考 “恢复“锁定的”微控制器” 在 182页。 在Flash存储器操作 (写、页擦除或整体擦除) 过程中,对它进行访问是禁止的。所以指令和按字取指 都将延迟到Flash存储器操作完成。如果在Flash存储器操作过程中需要执行指令,那么代码必须放 置在SRAM上并在SRAM上执行。 288 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 小心 – Flash 存储器被分隔为每块 4 KB 的电气分离扇区,以 4 KB 的边界对齐。在扇区内的某个 1 KB 页上执行擦除/编程操作会对其它 3 个 1 KB 的页有电气影响。一个特定 1 KB 页的擦除必须在 对它所在的 4 KB 扇区的其它页执行 6 个完整的擦除/编程周期后进行。下面对 Flash 存储器某个 4 KB 扇区 (第 0..3 页) 的操作序列提供一个示例: ■ 第 3 页被擦除并写入编程值。 ■ 第 0 页、1 页和 2 页都被擦除,然后写入编程数据。此时第 3 页已经被 3 个擦除/编程周期影响。 ■ 第 0 页、1 页和 2 页都再次被擦除,然后写入编程数据。此时第 3 页已经被 6 个擦除/编程周期 影响。 ■ 如果第 3 页的内容必须持续有效,第 3 页必须在该扇区的任意其它页进行另外的擦除或编程操作 前被擦除并重新编程。 对一个 32 位字进行编程 1. 将源数据写入 FMD 寄存器。 2. 将目标地址写入 FMA 寄存器。 3. 将 Flash 写密钥和 WRITE 位的值写入 FMC 寄存器(写入 0xA442.0001)。 4. 查询 FMC 寄存器,直至 WRITE 位被清零。 重要: 为确保正确的操作,对同一个字的两次写入必须插入一次擦除。下面的两个序列是允许 的: ■ 擦除 -> 编程数值 -> 编程 0x0000.0000 ■ 擦除 -> 编程数值 -> 擦除 下面的序列是允许的: ■ 擦除 -> 编程数值 -> 编程数值 执行一个 1 KB 页的擦除 1. 将页地址写入 FMA 寄存器。 2. 将 Flash 写密钥和 ERASE 位的值写入 FMC 寄存器(写入 0xA442.0002)。 3. 查询 FMC 寄存器,直到 ERASE 位被清零,或者用 FCIM 寄存器中的 PMASK 位启用编程中断。 执行一次 Flash 存储器的整体擦除 1. 将 Flash 写密钥和 MERASE 位的值写入 FMC 寄存器(写入 0xA442.0004)。 2. 查询 FMC 寄存器,直到 MERASE 位被清零,或者用 FCIM 寄存器中的 PMASK 位启用编程中 断。 一月 06, 2012 289 Texas Instruments-生产数据 内部存储器 6.2.3.5 6.2.3.6 32 字的 Flash 存储器写入缓冲器 32 字的写入缓冲器用一个缓存的 Flash 存储器写入操作对 32 个字同时编程,可以更快地对 Flash 存储器执行写入访问。该缓存 Flash 存储器写入操作与单独的字写入操作花费相同的时间(由 FMC 寄存器第 0 位控制)。被缓存的数据写入 Flash 写缓冲器 (FWBn) 寄存器。 这些寄存器在 Flash 存储器中是 32 字对齐的,所以 FWB0 寄存器对应 FMA 中的地址(FMA 的 [6:0] 位都是 0)。FWB1 寄存器对应 FMA + 0x4 中的地址,后面以此类推。只有上次缓存 Flash 存 储器写入操作之后更过新的 FWBn 寄存器才能被写入。Flash 写缓冲器有效 (FWBVAL) 寄存器显 示了从上次缓存 Flash 存储器写操作之后,哪些寄存器已经被更新。该寄存器包含的位对应 32 个 FWBn 寄存器,其中 FWBVAL 的第 [n] 位对应 FWBn。如果 FWBVAL 寄存器的某位被置位,那么 相应的 FWBn 寄存器已经被更新了。 用单次缓冲 Flash 存储器写入操作来编程 32 个字 1. 将源数据写入 FWBn 寄存器。 2. 将目标地址写入 FMA 寄存器。该地址必须是一个 32 字对齐的地址(即 FMA 的[6:0]必须是 0)。 3. 将 Flash 写入密钥和 WRBUF 位写入 FMC2 寄存器(写入 0xA442.0001)。 4. 查询 FMC2 寄存器,直到 WRBUF 位被清零,或者等待 PMIS 中断信号发出。 非易失性寄存器编程 本节讨论如何更新 Flash存 储器自身中的寄存器。这些寄存器驻留在与主 Flash 存储器阵列分离的 空间,并且不受擦除或整体擦除的影响。写操作可以将这些寄存器中的位由 1 变为 0。除了上电复 位会把寄存器的内容复位为 0xFFFF.FFFF 外,其它的复位都不会影响寄存器。在上电序列后,可 以用 FMC 寄存器的 COMT 位来提交确认寄存器的值,然后寄存器的值变为非易失性保持下去。一旦 寄存器的内容被提交,唯一能恢复出厂默认值的办法就是执行 “恢复“锁定的”微控制器” 在 182页 中描述的操作。 除了启动配置 (BOOTCFG) 寄存器,这些寄存器的设置都可以在提交到 Flash 存储器之前进行测 试。对于 BOOTCFG 寄存器,在它提交前先将要写入的数据载入 FMD 寄存器。在提交到非易失性 存储器之前,FMD 寄存器是只读的,并且不允许对 BOOTCFG 进行操作。 重要: Flash存储器驻留寄存器只能被用户程序由1改为0,并且只能更改1次。提交过后,这些 寄存器只能通过 “恢复“锁定的”微控制器” 在 182页 中描述的操作恢复到他们的出厂设 置。由该操作引起的主 Flash 存储器阵列的整体擦除操作发生在这些寄存器的恢复操作 之前。 另外,USER_REG0、USER_REG1、USER_REG2、USER_REG3 和 BOOTCFG 寄存器都使用 第 31 (NW) 位来显示他们还没有被提交,以及这些寄存器中的位可以从 1 变成 0。表 6-2 在 290页 提 供了每个寄存器提交所需要的 FMA 地址以及要写入的源数据(当 FMC 寄存器写入 0xA442.0008 时)。对 COMT 位写入之后,用户可以查询 FMC 寄存器,等待提交操作的完成。 表 6-2. 用户可编程的 Flash 存储器驻留寄存器 被提交的寄存器 FMPRE0 FMPRE1 FMPRE2 FMPRE3 FMPPE0 FMA 值 0x0000.0000 0x0000.0002 0x0000.0004 0x0000.0006 0x0000.0001 数据源 FMPRE0 FMPRE1 FMPRE2 FMPRE3 FMPPE0 290 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 6-2. 用户可编程的 Flash 存储器驻留寄存器(续) 被提交的寄存器 FMPPE1 FMPPE2 FMPPE3 USER_REG0 USER_REG1 USER_REG2 USER_REG3 BOOTCFG FMA 值 0x0000.0003 0x0000.0005 0x0000.0007 0x8000.0000 0x8000.0001 0x8000.0002 0x8000.0003 0x7510.0000 数据源 FMPPE1 FMPPE2 FMPPE3 USER_REG0 USER_REG1 USER_REG2 USER_REG3 FMD 6.3 寄存器映射 表 6-3 在 291页 列出了ROM 控制器寄存器和 Flash 存储器以及控制寄存器。表中列出的偏移量是相 对于该寄存器地址的 16 进制地址增量。FMA、FMD、FMC、FCRIS、FCIM、FCMISC、FMC2、 FWBVAL 和 FWBn 寄存器的偏移量都是相对于 Flash 存储器控制基址 0x400F.D000。ROM 和 Flash 存储器保护寄存器偏移量是相对于系统控制基址0x400F.E000。 表 6-3. Flash 寄存器映射 偏移量 名称 类型 Flash 存储器寄存器(Flash 控制偏移量) 0x000 FMA R/W 0x004 FMD R/W 0x008 FMC R/W 0x00C FCRIS RO 0x010 FCIM R/W 0x014 0x020 0x030 0x0F8 FCMISC FMC2 FWBVAL FCTL R/W1C R/W R/W R/W 0x100 0x17C FWBn 存储器寄存器(系统控制偏移量) 0x0F0 RMCTL 0x130 FMPRE0 R/W R/W1C R/W 0x200 FMPRE0 R/W 0x134 FMPPE0 R/W 0x400 FMPPE0 R/W 0x1D0 BOOTCFG R/W 0x1E0 USER_REG0 R/W 复位 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFE 0xFFFF.FFFF 描述 Flash 存储器地址寄存器 Flash 存储器数据寄存器 Flash 存储器控制寄存器 Flash 控制器原始中断状态寄存器 Flash 控制器中断屏蔽寄存器 Flash 控制器屏蔽中断状态和清除寄存器 Flash 存储器控制寄存器 2 Flash 写缓冲器有效寄存器 Flash 控制寄存器 Flash 写入缓冲区寄存器 n ROM 控制寄存器 Flash 存储器保护读取启用寄存器 0 Flash 存储器保护读取启用寄存器 0 Flash 存储器保护编程启用寄存器 0 Flash 存储器保护编程启用寄存器 0 启动配置寄存器 用户寄存器 0 见页面 293 294 295 297 298 299 300 301 302 303 304 305 305 306 306 307 309 一月 06, 2012 291 Texas Instruments-生产数据 内部存储器 表 6-3. Flash 寄存器映射(续) 偏移量 名称 类型 0x1E4 USER_REG1 R/W 0x1E8 USER_REG2 R/W 0x1EC USER_REG3 R/W 0x204 FMPRE1 R/W 0x208 FMPRE2 R/W 0x20C FMPRE3 R/W 0x404 FMPPE1 R/W 0x408 FMPPE2 R/W 0x40C FMPPE3 R/W 复位 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 0xFFFF.FFFF 描述 用户寄存器 1 用户寄存器 2 用户寄存器 3 Flash 存储器保护读启用寄存器 1 Flash 存储器保护读启用寄存器 2 Flash 存储器保护读启用寄存器 3 Flash 存储器保护编程启用寄存器 1 Flash 存储器保护编程启用寄存器 2 Flash 存储器保护编程启用寄存器 3 见页面 310 311 312 313 314 315 316 317 318 6.4 Flash 存储器寄存器描述(Flash 控制偏移量) 本节按照地址偏移的数字顺序排列和描述 Flash 寄存器。本节的寄存器地址偏移量都是相对于 Flash 控制基址 0x400F.D000 而言的。 292 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 1: Flash 存储器地址寄存器(FMA),偏移量 0x000 在一次写操作过程中,该寄存器包含一个4字节对齐的地址并指定在哪里写入数据。在擦除操作过程 中,该寄存器含有一个 1 KB 对齐的 CPU 字节地址,并负责指定哪个块将被擦除。注意必须要符合 对齐的要求,否则操作的结果将不可预知。 Flash 存储器地址寄存器 (FMA) 基址 0x400F.D000 偏移量 0x000 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 OFFSET 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OFFSET 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:18 17:0 名称 保留 OFFSET 类型 RO R/W 复位 0x0 0x0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 地址偏移量 执行操作的 Flash 存储器地址偏移量,非易失性寄存器除外(有关该域 值的详细内容请参考 “非易失性寄存器编程” 在 290页)。 一月 06, 2012 293 Texas Instruments-生产数据 内部存储器 寄存器 2: Flash 存储器数据寄存器(FMD),偏移量 0x004 该寄存器中包含的是编程周期中被写入的数据和读周期中被读出的数据。注意对只执行块进行读访 问时,该寄存器的内容是没有定义的。该寄存器在擦除周期中不使用。 Flash 存储器数据寄存器 (FMD) 基址 0x400F.D000 偏移量 0x004 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 DATA 类型 复位 描述 R/W 0x0000.0000 数据值 写操作的数据值。 294 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 3: Flash 存储器控制寄存器(FMC),偏移量 0x008 当该寄存器被写入时,Flash 存储器控制器将对 Flash 存储器地址 (FMA) 寄存器(请参考 293页) 指定的位置启动适当周期数目的访问操作。如果访问是写入操作,那么 Flash 存储器数据 (FMD) 寄 存器(请参考 294页)中的数据将会写入指定地址。 该寄存器是启动存储器操作过程中最后被写入的寄存器。该寄存器低字节的4个控制位用来启动存储 器操作。 注意不要设置多个控制位使得操作的结果不可预知。 小心 – 如果 [15:4] 中的任意位被写 1,设备可能会变得无法操作。这些位应该总是写入 0。在所有 的寄存器中,保留位的值应该在读-修改-写操作过程中保持不变。 Flash 存储器控制寄存器 (FMC) 基址 0x400F.D000 偏移量 0x008 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 WRKEY 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 COMT MERASE ERASE WRITE 类型 RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:16 15:4 3 名称 WRKEY 保留 COMT 类型 RO RO R/W 复位 0x0000 0x00 0 描述 Flash 存储器写入密钥 该域包含一个写入密钥,用来最大限度地减少意外的 Flash 写入事件。 如果要对寄存器进行写入操作,那么必须将 0xA442 写入该域。如果没 有这个 WRKEY 值,那么向 FMC 寄存器中的写入操作将被忽略。读取该 域将返回 0。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 提交寄存器值 该位用于提交对 Flash 存储器驻留寄存器的写入,并监视提交过程进度。 值 描述 1 将该位置位可以提交(写入)该寄存器的值到 Flash 存储器驻留寄 存器。 如果读取该位时得到的值是 1,则表示之前的提交访问没有完成。 0 对该位写入 0 不会影响该位的状态。 如果读取该位时得到的值是 0,则表示之前的提交访问完成。 更多 Flash 存储器驻留寄存器的信息,请参考 “非易失性寄存器编 程” 在 290页。 一月 06, 2012 295 Texas Instruments-生产数据 内部存储器 位/域 2 1 0 名称 MERASE ERASE WRITE 类型 R/W R/W R/W 复位 0 0 0 描述 整体擦除 Flash 存储器 该位用于整体擦除 Flash 主存储器,并监视擦除过程进度。 值 描述 1 将该位置位可以擦除 Flash 主存储器。 如果读取该位时得到的值是 1,则表示之前的整体擦除访问没有完 成。 0 对该位写入 0 不会影响该位的状态。 如果读取该位时得到的值是 0,则表示之前的整体擦除访问完成。 要了解擦除时间,请参考 “闪存” 在 1232页。 擦除 Flash 存储器中的一页 该位用于擦除 Flash 存储器的页,并监视擦除过程进度。 值 描述 1 将该位置位可以擦除 FMA 寄存器指定的 Flash 存储器页。 如果读取该位时得到的值是 1,则表示之前的页擦除访问没有完成。 0 对该位写入 0 不会影响该位的状态。 如果读取该位时得到的值是 0,则表示之前的页擦除访问完成。 要了解擦除时间,请参考 “闪存” 在 1232页。 向 Flash 存储器写入一个字 该位用于写一个字到 Flash 存储器,并监视写入过程进度。 值 描述 1 将该位置位可以将 FMD 寄存器的数据写入到 FMA 指定的 Flash 存 储器位置。 如果读取该位时得到的值是 1,则表示写入更新访问没有完成。 0 对该位写入 0 不会影响该位的状态。 如果读取该位时得到的值是 0,则表示之前的写入更新访问完成。 要了解编程信息,请参考 “闪存” 在 1232页。 296 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 4: Flash 控制器原始中断状态寄存器(FCRIS),偏移量 0x00C 该寄存器指示 Flash 控制器有中断状态。如果 FCIM 寄存器中的某位被置位,那么相应的中断就会 发送到中断控制器。 Flash 控制器原始中断状态寄存器 (FCRIS) 基址 0x400F.D000 偏移量 0x00C 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PRIS ARIS 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:2 1 0 名称 保留 PRIS ARIS 类型 RO RO RO 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 编程原始中断状态 该位给出编程周期的状态,编程周期是指通过 FMC 或者 FMC2 寄存器 位(请参考 295页 和 300页)产生的写入或擦除操作。 值 描述 1 编程周期或者擦除周期已经完成。 0 编程周期或者擦除周期没有完成。 当 FCIM 寄存器中的 PMASK 位置位时,该状态被发送到中断寄存器。 向 FCMISC 寄存器中的 PMISC 位写 1 可以将该位清零。 0 访问原始中断状态 值 描述 1 试图对存储器块进行的编程或擦除行为与 FMPPEn 寄存器设定的 保护策略相矛盾。 0 没有不当的编程或擦除试图访问存储器。 当 FCIM 寄存器中的 AMASK 位置位时,该状态被发送到中断寄存器。 向 FCMISC 寄存器中的 AMISC 位写 1 可以将该位清零。 一月 06, 2012 297 Texas Instruments-生产数据 内部存储器 寄存器 5: Flash 控制器中断屏蔽寄存器(FCIM),偏移量 0x010 该寄存器控制 Flash 控制器是否向控制器产生中断。 Flash 控制器中断屏蔽寄存器 (FCIM) 基址 0x400F.D000 偏移量 0x010 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PMASK AMASK 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:2 1 名称 保留 PMASK 类型 RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 编程中断屏蔽 该位控制着向中断控制器报告编程原始中断状态的方式。 值 描述 1 当 PRIS 位置位时,向中断控制器发送一个中断。 0 PRIS 中断被抑制,不会发送到中断控制器。 0 AMASK R/W 0 访问中断屏蔽 该位控制着向中断控制器报告访问原始中断状态的方式。 值 描述 1 当 ARIS 位置位时,向中断控制器发送一个中断。 0 ARIS 中断被抑制,不会发送到中断控制器。 298 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 6: Flash 控制器屏蔽中断状态和清除寄存器(FCMISC),偏移量 0x014 该寄存器提供两个功能。首先,它可以通过指示哪个中断源或哪些中断源正在发出中断信号来报告 中断产生的原因。其次,它提供清除中断报告的办法。 Flash 控制器屏蔽中断状态和清除寄存器 (FCMISC) 基址 0x400F.D000 偏移量 0x014 类型 R/W1C, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PMISC AMISC 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W1C R/W1C 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:2 1 名称 保留 PMISC 类型 复位 描述 RO 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W1C 0 编程屏蔽中断状态和清除 值 描述 1 读取时,1 表示由于编程周期完成而发出了一个未屏蔽的中断信号。 对该位写 1 会将 PMISC 位清零,并将 FCRIS 寄存器(请参考 297 页)中的 PRIS 位清零。 0 读取时,0 表示编程周期完成中断没有发生。 写 0 对该位的状态无影响. 0 AMISC R/W1C 0 访问屏蔽中断状态和清除 值 描述 1 读取时,1 表示一个非屏蔽中断信号被发出,原因是试图对存储器 块进行的编程或擦除行为与 FMPPEn 寄存器设定的保护策略相矛 盾。 将该位写 1 会将 AMISC 位清零,并将 FCRIS 寄存器(请参考 297 页)中的 ARIS 位清零。 0 读取时,0 表示没有错误读取中断发生。 写 0 对该位的状态无影响. 一月 06, 2012 299 Texas Instruments-生产数据 内部存储器 寄存器 7: Flash 存储器控制寄存器 2(FMC2),偏移量 0x020 当该寄存器被写入时,Flash 存储器控制器将对 Flash 存储器地址 (FMA) 寄存器(请参考 293页) 指定的位置启动适当周期数目的访问操作。如果访问是写操作,那么 Flash 写缓冲器 (FWB) 寄存器 中的数据将会写入指定地址。 该寄存器是启动存储器操作过程中最后被写入的寄存器。 Flash 存储器控制寄存器 2 (FMC2) 基址 0x400F.D000 偏移量 0x020 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 WRKEY 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 WRBUF 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:16 15:1 0 名称 WRKEY 保留 WRBUF 类型 RO RO R/W 复位 0x0000 0x000 0 描述 Flash 存储器写入密钥 该域包含一个写入密钥,用来最大限度地减少意外的 Flash 写入事件。 必须将值 0xA442 写入该域才能进行写入操作。如果没有这个 WRKEY 值,那么向 FMC2 寄存器中的写入操作将被忽略。读取该域将返回 0。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 缓存 Flash存储器写入 该位用来开始 Flash 存储器的缓冲写入操作。 值 描述 1 将该位置位可以将存储在 FWBn 寄存器中的内容写入 FMA 寄存器 指定的位置。 如果读取该位时得到的值是 1,则表示之前的缓存 Flash 存储器写 入访问没有完成。 0 对该位写入 0 不会影响该位的状态。 如果读取该位时得到的值是 0,则表示之前的缓存 Flash 存储器写 入访问完成。 要了解编程信息,请参考 “闪存” 在 1232页。 300 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 8: Flash 写缓冲器有效寄存器(FWBVAL),偏移量 0x030 该寄存器的位显示了哪个 FWBn 寄存器自从上次 Flash 存储器写缓冲器的写操作后,又被处理器写 入过。值为 1 的寄存器会在下一次 Flash 存储器写缓冲器写操作中被写入。该寄存器在写操作后被 硬件清零。写操作中违反保护也会清该状态。 在被写入作清零之后,软件可以通过将 FWB[n] 位置 1 来将同样的 32 个字编程到不同的 Flash 存 储器位置。下一次写入操作将使用与上次写操作相同的数据。另外,如果一个 FWBn 寄存器的改变 不应该写入 Flash 存储器,当下一次写操作发生时,软件可以清零相应的 FWB[n] 位来保留当前的 数据。 Flash 写缓冲器有效寄存器 (FWBVAL) 基址 0x400F.D000 偏移量 0x030 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 FWB[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FWB[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 FWB[n] 类型 R/W 复位 0x0 描述 Flash 存储器写缓冲器 值 描述 1 相应的 FWBn 寄存器已经在上次缓冲器写操作之后更新,并准备好 写入 Flash 存储器。 0 相应的 FWBn 寄存器没有被写入新的数据。 第 0 位对应 FWB0,偏移量 0x100,第 31 位对应 FWB31,偏移量 0x13C。 一月 06, 2012 301 Texas Instruments-生产数据 内部存储器 寄存器 9: Flash 控制寄存器(FCTL),偏移量 0x0F8 该寄存器用来确保在电源掉电频率大于每 5 分钟 1 次的系统里,微控制器的掉电可以控制。将 USDREQ 位置位,指示电源将要关闭。软件应该查询 USDACK 位来决定什么时候掉电是可接受的。 Flash 控制寄存器 (FCTL) 基址 0x400F.D000 偏移量 0x0F8 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 USDACK USDREQ 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:2 1 0 名称 保留 USDACK USDREQ 类型 RO RO R/W 复位 描述 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0 用户关闭确认 值 描述 1 可以关断微控制器的电源。 0 还不能关断微控制器的电源。 该位应该在 USDREQ 位置位后的 50 ms 之内置位。 0 用户关闭请求 值 描述 1 请求允许关闭微控制器电源。 0 无影响。 302 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 10: Flash 写入缓冲区寄存器 n(FWBn),偏移量 0x100 - 0x17C 这些 32 个寄存器包含了通过缓存 Flash 存储器写入操作写入 Flash 存储器的数据。偏移量代表某个 32 位寄存器的地址。只有之前的缓存 Flash 存储器写操作后被更新的 FWBn 寄存器才可以写入Flash 存储器。所以没有必要为了写 1 或 2 个字而写满所有的寄存器存储区。FWBn 寄存器写入 Flash 存 储器时,FWB0 寄存器对应 FMA 中包含的地址。FWB1 写入地址 FMA+0x4,以此类推。注意只有 数据的位为 0 才会导致 Flash 存储器被修改。数据位为1将保持Flash存储器位的内容为它之前的值。 Flash 写入缓冲区寄存器 n (FWBn) 基址 0x400F.D000 偏移量 0x100 - 0x17C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 6.5 名称 DATA 类型 复位 描述 R/W 0x0000.0000 数据 将要写入 Flash 存储器的数据。 存储器寄存器描述(系统控制偏移量) 本节的剩余部分按照地址偏移的数字顺序列出并描述了系统控制地址空间中的寄存器。本节中的寄 存器地址偏移量都是相对于系统控制基址 0x400F.E000 的。 一月 06, 2012 303 Texas Instruments-生产数据 内部存储器 寄存器 11: ROM 控制寄存器(RMCTL),偏移量 0x0F0 该寄存器提供了对 ROM 控制器状态的控制。该寄存器的偏移量是相对于系统控制基址 0x400F.E000 的。 复位时,ROM 被映射到 Flash 存储器,以便 ROM 启动序列始终可以执行。从 ROM 执行的启动序 列如下: 1. 清零 BA 位以使 ROM 映射在 0x01xx.xxxx,同时 Flash 存储器映射在 0x0。 2. 读取 BOOTCFG 寄存器。如果 EN 位被清零,那么将指定的 GPIO 管脚状态与规定的极性相比 较。如果管脚状态与规定的极性匹配,那么 ROM 会映射到地址 0x0000.0000,继续执行 ROM 引导装载程序。 3. 如果管脚状态与指定的极性不符,那么地址 0x0000.0004 的数据就会被读取,如果该数据是 0xFFFF.FFFF,那么 ROM 被映射到地址 0x0000.0000,继续执行 ROM 引导装载程序。 4. 如果地址 0x0000.0004 中的数据不是 0xFFFF.FFFF,堆栈指针 (SP) 装载 Flash 存储器地址 0x0000.0000 的数据,程序计数器 (PC) 装载地址 0x0000.0004 的数据。随后用户应用程序开 始执行。 ROM 控制寄存器 (RMCTL) 基址 0x400F.E000 偏移量 0x0F0 类型 R/W1C, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 BA 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W1C 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 位/域 31:1 0 名称 保留 BA 类型 复位 描述 RO 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W1C 1 启动别名 值 描述 1 微控制器的 ROM 出现在地址 0x0。 0 Flash 存储器在地址 0x0。 对该位写入 1 可以清零该位。 304 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 12: Flash 存储器保护读取启用寄存器 0(FMPRE0),偏移量 0x130 和 0x200 注意: 这个寄存器采用别名,用来向后兼容。 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只读保护位(FMPPEn 存放只执行位)。该寄存器可以控制总 共 64 KB 的 Flash 存储器。其它的 FMPREn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个寄 存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被设 置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存器 的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改变 不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且 没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任何 其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行“恢 复锁死的设备”序列,详情见 JTAG 一章。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护读取启用寄存器 0 (FMPRE0) 基址 0x400F.E000 偏移量 0x130 和 0x200 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 READ_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 读取启用 将 2 KB 的 Flash 块配置为只读或只执行。这些策略可以进行组合,如 表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF 位 [31:0] 中每一个位启用一个 2 KB 的 Flash 块保护, 总共达到 64 KB。 一月 06, 2012 305 Texas Instruments-生产数据 内部存储器 寄存器 13: Flash 存储器保护编程启用寄存器 0(FMPPE0),偏移量 0x134 和 0x400 注意: 这个寄存器采用别名,用来向后兼容。 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只执行保护位(FMPREn 存放只执行位)。该寄存器可以控制 总共 64 KB 的 Flash 存储器。其它的 FMPPEn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个 寄存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被 设置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存 器的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改 变不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任 何其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行 “恢复锁死的设备”序列,详情见 JTAG 一章。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护编程启用寄存器 0 (FMPPE0) 基址 0x400F.E000 偏移量 0x134 和 0x400 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 PROG_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 编程启用 将 2 KB 的 Flash 块配置为只执行。这些策略可以进行组合,如表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF 位 [31:0] 中每一个位启用一个 2 KB 的 Flash 块保护, 总共达到 64 KB。 306 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 14: 启动配置寄存器(BOOTCFG),偏移量 0x1D0 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 该寄存器提供了对 GPIO 管脚的配置来启用 ROM 引导装载程序,还提供了一次性写入机制来禁止 外部调试器访问设备。复位时,通过使用在该寄存器中配置的 A-H 端口 GPIO 信号,用户可以选择 让内核直接执行 ROM 引导装载程序或执行 Flash 存储器中的应用程序。如果 EN 位被置 1 或者指 定的管脚没有规定的极性,系统控制模块将检测地址 0x0000.0004,查看 Flash 存储器是否有一个 有效的复位向量。如果地址 0x0000.0004的 数据是 0xFFFF.FFFF,那么认为 Flash 存储器仍然没 有被编程,内核执行 ROM 引导装载程序。出厂时 DBG0 位(第 0 位)设为 0,DBG1 位(第 1 位)设为 1,这样可以启用外部调试器。如果清零 DBG1 位,那么从下一次设备上电周期开始禁止 任何外部调试器访问设备,。NW 位(第 31 位)指示该寄存器仍然没有被提交,该位通过硬件控制 以确保这个寄存器只被提交一次。在提交之前,这些位只能由 1 变为 0。显示的复位值只适用于上 电复位,任何其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一 方法是执行“恢复锁死的设备”序列,详情见JTAG一章。更多信息见“Flash 存储器保护”一节。 启动配置寄存器 (BOOTCFG) 基址 0x400F.E000 偏移量 0x1D0 类型 R/W, 复位 0xFFFF.FFFE 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NW 保留 类型 R/W RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PORT PIN POL EN 保留 DBG1 DBG0 类型 R/W R/W R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 位/域 31 30:16 15:13 名称 NW 保留 PORT 类型 R/W RO R/W 复位 描述 1 没有写入 该位为 1 表示这个 32 位的寄存器没有被提交。该位为 0 说明这个寄存 器已经提交且不可以再次提交。 0x7FFF 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x7 启动 GPIO 端口 该字段选择复位时启用 ROM 引导装载程序的 GPIO 端口。 值 描述 0x0 端口 A 0x1 端口 B 0x2 端口 C 0x3 端口 D 0x4 端口 E 0x5 端口 F 0x6 端口 G 0x7 端口 H 一月 06, 2012 307 Texas Instruments-生产数据 内部存储器 位/域 12:10 9 8 7:2 1 0 名称 PIN POL EN 保留 DBG1 DBG0 类型 R/W R/W R/W RO R/W R/W 复位 0x7 描述 启动GPIO管脚 该字段选择复位时启用 ROM 引导装载程序的 GPIO 端口管脚编号。 值 描述 0x0 管脚 0 0x1 管脚 1 0x2 管脚 2 0x3 管脚 3 0x4 管脚 4 0x5 管脚 5 0x6 管脚 6 0x7 管脚 7 0x1 0x1 0x3F 1 0x0 启动 GPIO 极性 若该位为 1,那么在复位时 GPIO 管脚的高电平启用 ROM 引导装载程 序。若该位为 0,那么在复位时 GPIO 端口管脚的低电平启用 ROM 引 导装载程序。 启动 GPIO 启用 清零该位将启用GPIO管脚在复位时用于启用ROM引导装载程序。若该 位被置 1 时,地址 0x0000.0004 的内容将被检测,来查看 Flash 存储器 是否被编程。如果内容不是 0xFFFF.FFFF,内核会从 Flash 存储器执 行。如果 Flash 没有被编程,内核会从 ROM 执行。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 调试控制 1 DBG1 位必须为 1 且 DBG0 必须为 0,才可以进行调试。 调试控制 0 DBG1 位必须为 1 且 DBG0 必须为 0,才可以进行调试。 308 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 15: 用户寄存器 0(USER_REG0),偏移量 0x1E0 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 该寄存器提供 31 位用户定义的非易失性数据,且只能提交一次。第 31 位表示该寄存器已经准备好 被提交,该位通过硬件控制以确保这个寄存器只被提交一次。在提交之前,这些寄存器中的位只能 由 1 变为 0。显示的复位值只适用于上电复位,任何其它类型的复位都不会影响这个寄存器。该寄 存器的一次性写入特性对于保持如通信地址这样每个部件唯一的静态信息是很有用的,否则就需要 一个外部 EEPROM 或者其它非易失性设备。恢复该寄存器出厂默认值的唯一方法是执行“恢复锁 死的设备”序列,详情见JTAG一章。 用户寄存器 0 (USER_REG0) 基址 0x400F.E000 偏移量 0x1E0 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NW DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30:0 名称 NW DATA 类型 复位 描述 R/W 1 没有写入 该位为 1 表示这个 32 位的寄存器没有被提交。该位为 0 说明这个寄存 器已经提交且不可以再次提交。 R/W 0x7FFFFFFF 用户数据 包含用户数据值。该字段的位全部初始化为 1,且只能被提交一次。 一月 06, 2012 309 Texas Instruments-生产数据 内部存储器 寄存器 16: 用户寄存器 1(USER_REG1),偏移量 0x1E4 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 该寄存器提供 31 位用户定义的非易失性数据,且只能写入一次。第 31 位表示该寄存器已经准备好 被写入,该位通过硬件控制以确保这个寄存器只被写入一次。该寄存器的一次性写入特性对于保持 如通信地址这样每个部件唯一的静态信息是很有用的,否则就需要一个外部 EEPROM 或者其它非 易失性设备。 用户寄存器 1 (USER_REG1) 基址 0x400F.E000 偏移量 0x1E4 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NW DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30:0 名称 NW DATA 类型 复位 描述 R/W 1 没有写入 该位为 1 表示这个 32 位的寄存器没有被提交。该位为 0 说明这个寄存 器已经提交且不可以再次提交。 R/W 0x7FFFFFFF 用户数据 包含用户数据值。该字段的位全部初始化为 1,且只能被提交一次。 310 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 17: 用户寄存器 2(USER_REG2),偏移量 0x1E8 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 该寄存器提供 31 位用户定义的非易失性数据,且只能写入一次。第 31 位表示该寄存器已经准备好 被写入,该位通过硬件控制以确保这个寄存器只被写入一次。该寄存器的一次性写入特性对于保持 如通信地址这样每个部件唯一的静态信息是很有用的,否则就需要一个外部 EEPROM 或者其它非 易失性设备。 用户寄存器 2 (USER_REG2) 基址 0x400F.E000 偏移量 0x1E8 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NW DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30:0 名称 NW DATA 类型 复位 描述 R/W 1 没有写入 该位为 1 表示这个 32 位寄存器没有被提交。该位为 0 说明这个寄存器 已经提交且不可以再次提交。 R/W 0x7FFFFFFF 用户数据 包含用户数据值。该字段的位全部初始化为 1,且只能被提交一次。 一月 06, 2012 311 Texas Instruments-生产数据 内部存储器 寄存器 18: 用户寄存器 3(USER_REG3),偏移量 0x1EC 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 该寄存器提供 31 位用户定义的非易失性数据,且只能写入一次。第 31 位表示该寄存器已经准备好 被写入,该位通过硬件控制以确保这个寄存器只被写入一次。该寄存器的一次性写入特性对于保持 如通信地址这样每个部件唯一的静态信息是很有用的,否则就需要一个外部 EEPROM 或者其它非 易失性设备。 用户寄存器 3 (USER_REG3) 基址 0x400F.E000 偏移量 0x1EC 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NW DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31 30:0 名称 NW DATA 类型 复位 描述 R/W 1 没有写入 该位为 1 表示这个 32 位的寄存器没有被提交。该位为 0 说明这个寄存 器已经提交且不可以再次提交。 R/W 0x7FFFFFFF 用户数据 包含用户数据值。该字段的位全部初始化为 1,且只能被提交一次。 312 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 19: Flash 存储器保护读启用寄存器 1(FMPRE1),偏移量 0x204 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只读保护位(FMPPEn 存放只执行位)。该寄存器可以控制总 共 64 KB 的 Flash 存储器。其它的 FMPREn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个寄 存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被设 置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存器 的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改变 不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且 没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任何 其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行“恢 复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 64 KB,读取该寄存器通常 为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护读启用寄存器 1 (FMPRE1) 基址 0x400F.E000 偏移量 0x204 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 READ_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 读取启用 将 2 KB 的 Flash 块配置为只读或只执行。这些策略可以进行组合,如 表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0] 中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 65 到 128 KB。 一月 06, 2012 313 Texas Instruments-生产数据 内部存储器 寄存器 20: Flash 存储器保护读启用寄存器 2(FMPRE2),偏移量 0x208 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只读保护位(FMPPEn 存放只执行位)。该寄存器可以控制总 共 64 KB 的 Flash 存储器。其它的 FMPREn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个寄 存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被设 置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存器 的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改变 不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且 没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任何 其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行“恢 复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 128 KB,读取该寄存器通常 为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护读启用寄存器 2 (FMPRE2) 基址 0x400F.E000 偏移量 0x208 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 READ_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 读取启用 将 2 KB 的 Flash 块配置为只读或只执行。这些策略可以进行组合,如 表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0] 中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 129 到 192 KB。 314 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 21: Flash 存储器保护读启用寄存器 3(FMPRE3),偏移量 0x20C 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只读保护位(FMPPEn 存放只执行位)。该寄存器可以控制总 共 64 KB 的 Flash 存储器。其它的 FMPREn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个寄 存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被设 置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存器 的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改变 不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且 没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任何 其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行“恢 复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 192 KB,读取该寄存器通常 为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护读启用寄存器 3 (FMPRE3) 基址 0x400F.E000 偏移量 0x20C 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 READ_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 READ_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 读取启用 将 2 KB 的 Flash 块配置为只读或只执行。这些策略可以进行组合,如 表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0] 中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 193 到 256 KB。 一月 06, 2012 315 Texas Instruments-生产数据 内部存储器 寄存器 22: Flash 存储器保护编程启用寄存器 1(FMPPE1),偏移量 0x404 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只执行保护位(FMPREn 存放只执行位)。该寄存器可以控制 总共 64 KB 的 Flash 存储器。其它的 FMPPEn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个 寄存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被 设置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存 器的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改 变不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任 何其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行 “恢复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 64 KB,读取该寄存器 通常为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护编程启用寄存器 1 (FMPPE1) 基址 0x400F.E000 偏移量 0x404 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 PROG_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 编程启用 将 2 KB 的 Flash 块配置为只执行。这些策略可以进行组合,如表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0]中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 65 到 128 KB。 316 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 23: Flash 存储器保护编程启用寄存器 2(FMPPE2),偏移量 0x408 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只执行保护位(FMPREn 存放只执行位)。该寄存器可以控制 总共 64 KB 的 Flash 存储器。其它的 FMPPEn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个 寄存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被 设置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存 器的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改 变不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任 何其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行 “恢复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 128 KB,读取该寄存器 通常为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护编程启用寄存器 2 (FMPPE2) 基址 0x400F.E000 偏移量 0x408 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 PROG_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 编程启用 将 2 KB 的 Flash 块配置为只执行。这些策略可以进行组合,如表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0] 中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 129 到 192 KB。 一月 06, 2012 317 Texas Instruments-生产数据 内部存储器 寄存器 24: Flash 存储器保护编程启用寄存器 3(FMPPE3),偏移量 0x40C 注意: 偏移量是相对于系统控制基址 0x400FE000 的。 这个寄存器存放的是每个 2 KB 块的只执行保护位(FMPREn 存放只执行位)。该寄存器可以控制 总共 64 KB 的 Flash 存储器。其它的 FMPPEn 寄存器 (如果有) 提供对其它 64 KB 块的保护。这个 寄存器在上电复位序列加载。对所有执行存储块来说,FMPREn 和 FMPPEn 寄存器在出厂时都被 设置为 1。这样可以实现一种开放的访问和编程策略。可以通过写特定的寄存器位来更改这个寄存 器的位。但是,这个寄存器是 R/W0,用户只能将保护位从 1 变为 0 (不可以从 0 变为 1) 。这种改 变不是永久的,等到寄存器被提交(保存)以后,位的改变就是永久性的。如果一个位从 1 变为 0 且没有提交,那么它可以通过执行一段上电复位序列来恢复。显示的复位值只适用于上电复位,任 何其它类型的复位都不会影响这个寄存器。一旦提交,恢复该寄存器出厂默认值的唯一方法是执行 “恢复锁死的设备”序列,详情见 JTAG 一章。如果 Flash 存储器空间小于 192 KB,读取该寄存器 通常为 0,但是软件不能依赖这些 0 位。更多信息请参考“Flash 存储器保护”一节。 Flash 存储器保护编程启用寄存器 3 (FMPPE3) 基址 0x400F.E000 偏移量 0x40C 类型 R/W, 复位 0xFFFF.FFFF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PROG_ENABLE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 位/域 31:0 名称 PROG_ENABLE 类型 复位 描述 R/W 0xFFFFFFFF Flash 编程启用 将 2 KB 的 Flash 块配置为只执行。这些策略可以进行组合,如表“Flash 保护策略组合”所示。 值 描述 0xFFFFFFFF [31:0] 中每一个位启用一个 2 KB 的 Flash 存储器保护, 范围从 193 到 256 KB。 318 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7 微型直接存储器访问 (μDMA) LM3S9B92 微控制器内置一个直接存储器访问(Direct Memory Access,简写为DMA)控制器,我 们称之为微型 DMA (μDMA) 控制器。µDMA 控制器所提供的工作方式能够分载Cortex™-M3 处理器 参与的数据传输任务,从而更加高效地使用内核以及总线带宽。µDMA 控制器能够自动执行存储器 与外设之间的数据传输。片上每个支持 µDMA 功能的外设都有专用的 µDMA 通道,通过合理的编 程配置,当外设需要时能够自动在外设和存储器之间传输数据。μDMA 控制器具有以下特性: ■ ARM® PrimeCell® 32 通道的可配置 µDMA 控制器 ■ 支持存储器到存储器、存储器到外设、外设到存储器的 μDMA 传输,包括: – 基本模式,用于简单的传输需求 – 乒乓模式,用于实现持续数据流 – 散聚模式,借助一个可编程的任务列表,由单个请求触发一连串的指定传输 ■ 高度灵活的可配置的通道配置 – 各通道均可独立配置、独立操作 – 每个支持 μDMA 功能的片上模块都有其专用通道 – 每个通道有主选功能及备选功能 – 对于双向模块,为其接收和发送各提供一个通道 – 专用的软件通道,可由软件启动 μDMA 传输 – 每通道都可分别配置优先级 – 可选配置:任一通道均可用作软件启动传输 ■ 优先级分为两级 ■ 通过优化设计,改进了 μDMA 控制器与处理器内核之间的总线访问性能: – 当内核不访问总线时,μDMA 控制器即可占用总线 – RAM条带处理 – 外设总线分段 ■ 支持 8 位、16 位或 32 位数据宽度 ■ 待传输数目可编程为 2 的整数幂,有效范围 1 到 1024 ■ 源地址及目的地址可自动递增,递增单位可以是字节、半字、字、不递增 ■ 可屏蔽的外设请求 一月 06, 2012 319 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.1 7.2 7.2.1 结构图 图 7-1. μDMA 结构图 DMA 错误 请求 外设 DMA 通道 0 完成 • • • 请求 外设 DMA 通道 N-1 完成 嵌套的向量 中断控制器 IRQ 通用外设 N 请求 (NVIC) 完成 寄存器 ARM Cortex-M3 uDMA 控制器 DMASTAT DMACFG DMACTLBASE DMAALTBASE DMAWAITSTAT DMASWREQ DMAUSEBURSTSET DMAUSEBURSTCLR DMAREQMASKSET DMAREQMASKCLR DMAENASET DMAENACLR DMAALTSET DMAALTCLR DMAPRIOSET DMAPRIOCLR DMAERRCLR DMACHASGN 系统内存 通道控制表 DMASRCENDP DMADSTENDP DMACHCTRL • • • DMASRCENDP DMADSTENDP DMACHCTRL µ DMA 传输缓冲区 功能描述 功能描述 μDMA 控制器是一种使用方便、配置灵活的 DMA 控制器,用于同微控制器 Cortex-M3 处 理器内核配合以实现高效工作。μDMA 控制器支持多种数据宽度以及地址递增机制,各 DMA 通道 之间具有不同的优先级,还提供了多种传输模式,能够通过预编程实现十分复杂的自动传输流程。 μDMA 控制器对总线的占用总是次于处理器内核,因此绝不影响处理器的总线会话。由于 μDMA 控 制器只会在总线空闲时占用总线,因此它提供的数据传输带宽非常独立,不会影响系统其它部分的 正常运行。此外总线架构还经过了优化,增强了处理器内核与 μDMA 控制器高效共享片上总线的能 力,从而大大提高了性能。优化的内容包括 RAM 条带处理以及外设总线分段,在大多数情况下允 许处理器内核和 μDMA 控制器同时访问总线并执行数据传输。 μDMA 控制器可以将数据转移到片上 SRAM,也可以从片上 SRAM 将数据转移出。但是,由于 Flash 存储器和 ROM 位于不同的内部总线,所以 μDMA 不能从 Flash 存储器或 ROM 转移数据。 μDMA 控制器为每种支持 μDMA 的外设功能都提供了专用的通道,可以各自独立进行配置。μDMA 控制器的配置方法比较独特,是通过系统存储器中的通道控制结构体进行配置的,并且该结构体由 处理器维护。除支持简单传输模式之外,μDMA 控制器也支持更加“复杂”的传输模式:在收到某 个单次传输请求后,按照建立在存储器中的任务列表,可以执行向/从指定地址发送/接收指定大小数 据块的传输流程。μDMA 控制器还支持以乒乓缓冲的方式实现与外设之间的持续数据流。 每个通道还能配置仲裁数目。所谓仲裁数目,是指 μDMA 控制器在重新仲裁总线优先级之前,以猝 发方式传输的数据单元数目。借助仲裁数目的配置,当外设产生一个 μDMA 服务请求后,即可精准 地操控与外设之间传输多少个数据单元。 通道分配 μDMA 控制器一共有 32 个传输通道,按序号分别表述为 0~31 号通道。这些通道已经预先分配给了 各种外设,如下表所示。使用 DMA 通道分配 (DMACHASGN)(见 367页)指定通道用作采用主功 能还是次功能。如果该微控制器的基本功能不可用,那么第二功能变为基本功能。如果第二功能不 可用,那么基本功能就是唯一的选择。 320 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 注意: 表中注明“软件可用”的通道可用于未来进行外设扩展。现在这些通道仅软件可访问,不可 连接外设。30号通道是软件专用通道。 映射到 0~3 号 μDMA 通道的 USB 端点可通过 USBDMASEL 寄存器(见 1037页)予以更 改。 因为 μDMA 控制器与外设交互方式的特殊性,外设的 μDMA 通道必须启用,这样 μDMA 控 制器才对外设寄存器进行读和写操作(即使使用不同的 μDMA 通道来进行 μDMA 传输)。 为了将混乱状况以及软件出错的几率降至最低,最佳做法就是使用外设的 μDMA 通道来执 行该外设的所有 μDMA 传输操作,因为即使在处理器触发和使用 AUTO 模式时,我们都可 认为仍是软件控制的传输操作。注意:如果使用软件通道,是专用的 μDMA 中断矢量发生 中断。如果使用外设通道,那么在外设的中断矢量上发生中断。 表 7-1. μDMA 通道分配 μDMA 通道 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 主功能 USB 端点 1 接收 USB 端点 1 发送 USB 端点 2 接收 USB 端点 2 发送 USB 端点 3 接收 USB 端点 3 发送 以太网接收 以太网发送 UART0 接收 UART0 发送 SSI0 接收 SSI0 发送 软件可用 软件可用 ADC0 采样序列发生器 0 ADC0 采样序列发生器 1 ADC0 采样序列发生器 2 ADC0 采样序列发生器 3 通用定时器 0A 通用定时器 0B 通用定时器 1A 通用定时器 1B UART0 接收 UART1 发送 SSI1 接收 SSI1 发送 软件可用 软件可用 I2S0 接收 I2S0 发送 软件可用 次功能 UART2 接收 UART2 发送 通用定时器 3A 通用定时器 3B 通用定时器 2A 通用定时器 2B 通用定时器 2A 通用定时器 2B UART0 接收 UART1 发送 SSI1 接收 SSI1 发送 UART2 接收 UART2 发送 通用定时器 2A 通用定时器 2B 软件可用 软件可用 通用定时器 1A 通用定时器 1B EPI0 NBRFIFO EPI0 WFIFO 软件可用 软件可用 ADC1 采样序列发生器 0 ADC1 采样序列发生器 1 ADC1 采样序列发生器 2 ADC1 采样序列发生器 3 软件可用 软件可用 一月 06, 2012 321 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.2.2 7.2.3 7.2.4 表 7-1. μDMA 通道分配(续) μDMA 通道 31 主功能 保留 次功能 优先级 每个通道 μDMA 的优先级由通道的序号以及通道的优先级标志位所决定。第 0 号 μDMA 通道的优 先级最高;通道的序号越大,其优先级越低。每个 μDMA 通道都有一个可设置的优先级标志位,由 此可分为默认优先级和高优先级。若某个通道的优先级位置位,则该通道将具有高优先级,其优先 于所有未将此标志位置位的通道。假如有多个通道都设为高优先级,那么仍将按照通道序号区分其 相互的优先级。 通道的优先级位可通过 DMA 通道优先置位 (DMAPRIOSET) 置位,通过 DMA 通道优先清除 (DMAPRIOCLR) 清零。 仲裁数目 当某个 μDMA 通道请求传输时,μDMA 控制器将对所有发出请求的通道进行仲裁,并且向其中优先 级最高的通道提供服务。一旦开始传输后,将持续传输一定数量的数据,之后再对发出请求的通道 进行仲裁。每个通道的仲裁数目都是可设置的,其有效范围为 1~1024 个数据单元。当 μDMA 控制 器按照仲裁数目传输了若干个数据单元之后,随后将检查所有发出请求的通道,并向其中优先级最 高的通道提供服务。 如果某个优先级较低的 μDMA 通道仲裁数目设置得太大,那么高优先级通道的传输延迟将可能增 加,因为 μDMA 控制器需要等待低优先级的猝发传输完全结束之后才会重新进行仲裁,检查是否存 在更高优先级的请求。基于以上原因,建议低优先级通道的仲裁数目不应设得太大,这样可以充分 保障系统对高优先级 μDMA 通道的响应速度。 仲裁数目也可以形象地看做一个猝发的大小。仲裁数目就是获得控制权后以猝发形式连续传输的数 据单元数。请注意这里所说的“仲裁”是指 μDMA 通道优先级的仲裁,而非总线的仲裁。在竞争总 线时,处理器内核始终优于 μDMA 控制器。此外,只要处理器需要在同一总线上执行总线交互, μDMA 控制器都将失去总线控制权;即便在猝发传输的过程中,μDMA 控制器也将被暂时中断。 请求类型 μDMA 控制器可响应来自外设的两种请求:单次请求或猝发请求。每种外设可能支持其中一种或两 种类型。单次请求表明外设已准备好传输一个数据单元,猝发请求表明外设已准备好传输多个数据 单元。 取决于外设发出的是单次请求或猝发请求,μDMA 控制器的响应也将有所不同。假如同时产生了单 次请求和猝发请求,而且 μDMA 通道已按照猝发请求建立,那么优先响应猝发请求。表 7-2 在 322页 列出了各种外设对这两种请求类型的支持情况。 表 7-2. 所支持的请求类型 外设 ADC EPI WFIFO EPI NBRFIFO 以太网 TX 以太网 RX 通用定时器 I2S TX I2S RX 单个请求信号 无 无 无 TX FIFO 空 已接收到的 RX 报文 原始中断脉冲 无 无 猝发请求信号 序列发生器的 IE 位 WFIFO 深度(可配置) NBRFIFO 深度(可配置) 无 无 无 FIFO 服务请求 FIFO 服务请求 322 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.2.4.1 7.2.4.2 7.2.5 表 7-2. 所支持的请求类型(续) 外设 SSI TX SSI RX UART3 TX UART RX USB TX USB RX 单个请求信号 TX FIFO 未满 RX FIFO 非空 TX FIFO 未满 RX FIFO 非空 无 无 猝发请求信号 TX FIFO 深度(固定为 4) RX FIFO 深度(固定为 4) TX FIFO深度(可配置) RX FIFO深度(可配置) FIFO TXRDY FIFO RXRDY 单个请求 当检测到单次请求、并且没有猝发请求时,μDMA 控制器将传输一个数据单元,传输完成后停止并 等待其它请求。 猝发请求 当检测到猝发请求后,μDMA 控制器将执行猝发传输,传输数目是以下两者的较小值:仲裁数目; 尚未传输完的数据单元数。因此,仲裁数目应与外设发出猝发请求时所包含的数据单元数相同。例 如,UART 模块可基于 FIFO 触发深度产生猝发请求。此时仲裁数目应与满足触发深度条件后 FIFO 能够传输的数据单元数相同。猝发传输一旦启动就必须运行到结束,期间即使有更高优先级通道的 请求也无法中断。猝发传输所需的时间通常都比数量相同、单次触发的用时总和要短。 实际使用中应尽可能地采用猝发传输,尽量避免单次传输。例如,某些数据天生就只有在作为一个 数据块共同传输时才有意义,每次传输一点则毫无用处。通过 DMA 通道采用猝发置位 (DMAUSEBURSTSET) 寄存器可以禁用单次请求。当把此寄存器中对应于某个通道的标志位置位 后,μDMA 控制器将只响应该通道的猝发请求。 通道配置 μDMA 控制器采用系统内存中保存一个控制表,表中包含若干个通道控制结构体。每个 μDMA 通道 在控制表中可能有一个或两个结构体。控制表中的每个结构体都包含:源指针、目的指针、待传输 数目、传输模式。控制表可以定义到系统内存中的任意位置,但必须保证其连续并且按 1024 字节 边界对齐。 表 7-3 在 323页 列出了内存中通道控制表的内容分布布局。每个通道在控制表中都可能包含一个或 两个结构体:主控制结构体及副控制结构体。在控制表中,所有主控制结构体的都在表的前半部分, 所有副控制结构体都在表的下半部分。在较简单的传输模式中,对传输的连续性要求不高,允许在 每次传输结束后再重新配置、重新启动。这种情况一般不需要副控制结构体,因此内存中只需放置 表的前半部分,而后半部分所占用的内存可用作其它用途。如果采用更加复杂的传输模式(例如乒 乓模式或散聚模式),那就需要用到副控制结构体,此时整个控制表都必须加载到内存中。 控制表中任何未用到的内存块都可留给应用程序使用,包括任何应用程序未用的通道的控制结构体, 以及各个通道中未用到的控制字。 表 7-3. 控制结构体的存储器映射 偏移量 0x0 0x10 ... 0x1F0 0x200 0x210 通道 通道 0 主功能 通道 1 主功能 ... 通道 31 主功能 通道 0 次功能 通道 1 次功能 一月 06, 2012 323 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.2.6 7.2.6.1 表 7-3. 控制结构体的存储器映射(续) 偏移量 ... 0x3F0 通道 ... 通道 31 次功能 表 7-4 列出了控制表中单个控制结构体项的内容。每个控制结构体项都按照 16 字节边界对齐。每个 结构体项由 4 个长整型项组成:源末指针、目的末指针、控制字以及一个未用的长整型项。末指针 就是指向传输过程最末一个单元地址的指针(包含其本身)。假如源地址或目的地址并不自动递增 (例如外设的寄存器),那么指针应当指向待传输的地址。 表 7-4. 通道控制结构体 偏移量 0x000 0x004 0x008 0x00C 描述 源端点指针 目的端点指针 控制字 未用 控制字包含以下的位域: ■ 源/目的数据宽度 ■ 源/目的地址增量 ■ 总线重新仲裁之前传输的数目(仲裁数目) ■ 待传输的数据单元总数 ■ 采用猝发传输标志 ■ 传输模式 关于控制字及其各个位域的详细介绍,请参阅 “μDMA 通道控制结构体” 在 341页。μDMA 控制器在 传输执行期间自动更新待传输大小位域以及传输模式位域。当传输结束后,待传输数目将为 0,传 输模式将变为“已停止”。由于控制字是由 μDMA 控制器自动修改的,因此在每次新建传输之前必 须手动配置。源末指针和目的末指针不会被自动修改,所以只要源地址或目的地址不变,就无需再 进行配置。 在启动传输之前,必须将 DMA 通道启用置位 (DMAENASET) 寄存器中的相应标志位置位,启用 μDMA 通道。当需要禁用某个通道时,应将 DMA 通道启用清除 (DMAENACLR) 寄存器中的相应标 志位置位。当某个 μDMA 传输结束后,控制器会自动禁用该通道。 传输模式 μDMA 控制器支持多种传输模式。前两种模式支持简单的单次传输。后面几种复杂的模式能够实现 持续数据流。 停止模式 停止模式虽然是控制字中传输模式位域的有效值,但实际上这并不是一种真正的传输模式。当控制 字中的传输模式是停止模式时,μDMA 控制器并不会对此通道进行任何传输,并且一旦该通道启用, μDMA 控制器还会自动禁用该通道。在任何 μDMA 传输结束后,μDMA 控制器都会自动将通道控制 字的传输模式位域改写为停止模式。 324 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.2.6.2 7.2.6.3 7.2.6.4 基本模式 在基本模式下,只要有待传输的数据单元,并且收到了传输请求,μDMA 控制器便会执行传输。这 种模式适用于那些只要有数据可传输就产生 μDMA 请求信号的外设。如果请求是瞬时的(即使整个 传输尚未完成也并不保持),则不得采用基本模式。举例来说,如果将某个通道设为基本模式,并 且采用软件启动,则启动时只会创建一个瞬时请求;此时传输的数目等于 DMA 通道控制字 (DMACHCTL) 中 ARBSIZE 位域所指定的数目(即仲裁数目),即使还有更多数据需要传输也将停 止。 在基本模式下,当所有数据单元传输完成后,μDMA 控制器自动将该通道置为停止模式。 自动模式 自动模式与基本模式类似,区别在于:每当收到一个传输请求后,传输过程会一直持续到整个传输 结束,即使 μDMA 请求已经消失(瞬时请求)也会持续完成。这种模式非常适用于软件触发的传输 过程。一般来说外设都不使用自动模式。 在自动模式下,当所有数据单元传输完成后,μDMA 控制器自动将该通道置为停止模式。 乒乓 乒乓模式用于实现内存与外设之间连续不断的数据流。要使用乒乓模式,必须同时配置主数据结构 体和副数据结构体。两个结构体均用于实现存储器与外设之间的数据传输,均由处理器建立。传输 过程首先从主控制结构体开始。当主控制结构体所配置的传输过程结束后,μDMA 控制器自动载入 副控制结构体并按其配置继续传输。每当这时都会产生一个中断,处理器可以对刚刚结束传输过程 的数据结构体进行重新配置。于是乎,主/副控制结构体交替在缓冲区与外设之间搬运数据,周而复 始,川流不息。 图 7-2 在 326页 描绘出了乒乓模式下的操作示例。 一月 06, 2012 325 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 图 7-2. 乒乓式 μDMA 数据会话的示例 µDMA 控制器 主结构体 SOURCE DEST CONTROL 未用 使用缓存区 A 传输 缓冲区 A 外设/µDMA 中断 使用副结构体连续传输 副结构体 SOURCE DEST CONTROL 未用 使用缓存区 B 传输 缓冲区 B 外设/µDMA 中断 使用主结构体连续传输 定时 主结构体 SOURCE DEST CONTROL 未用 使用缓存区 A 传输 缓冲区 A 外设/µDMA 中断 使用副结构体连续传输 副结构体 SOURCE DEST CONTROL 未用 使用缓存区 B 传输 缓冲区 B Cortex-M3 处理器。 · 在缓存区 A 中处理数据 · 重载主结构体 · 在缓存区 B 中处理数据 · 重载副结构体 · 在缓存区 B 中处理数据 · 重载副结构体 7.2.6.5 存储器散聚 存储器散聚模式是一种较为复杂的工作模式。通常在搬运数据块时,其数据源和数据目的都是线性 分布的;但有时必须将内存中某块连续的数据分散传递到几个不同的位置,或将内存中几个不同位 置的数据块汇聚传递到同一个位置连续放置,此时就应当采用散聚模式。举例来说,内存中可能存 储有数条遵从某种通信协议的报文,那么就可以利用 μDMA 的汇聚模式将几个报文的有效数据内容 依次读出、并连续保存到内存缓冲中的指定位置(有效内容拼装)。 326 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 在存储器散聚模式下,主控制结构体的工作是按照内存中一个表的内容配置副控制结构体。这个表 由处理器软件建立,包含若干个控制结构体,每个控制结构体中包含能够实现特定传输的源末指针、 目的末指针、控制字。每个控制结构体项的控制字中必须将传输模式设置为散聚模式。主传输流程 依次将表中的控制结构体项拷贝到副控制结构体中,随后予以执行。μDMA 控制器就这样交替切换: 每次用主控制结构体从列表中将下一个传输流程配置拷贝到副控制结构体中,然后切换到副控制结 构体执行相应的传输任务。在列表的最末一个控制结构体项中,应将其控制字编程为采用自动传输 模式。这样在执行最后一个传输过程时是自动模式,μDMA 控制器在执行完成后将停止此通道的运 行。只有当最后一次传输过程也结束后,才会产生结束中断。如果让控制表最后一个控制结构体项 拷贝覆盖主控制结构体,使其重新指向列表的起始位置(或指向一个新的列表),就可以让整个列 表始终不停循环工作。此外通过编辑控制表内容,也可以触发一个或多个其它通道执行传输:比较 直接的方式是编辑产生一个写操作、以软件触发其它通道;也可以采用间接的方式,通过设法让某 个外设动作而产生 μDMA 请求。 按照这种方式对 μDMA 控制器进行配置,即可基于一个 μDMA 请求执行一组指定的传输。 图 7-3 在 328页 和 图 7-4 在 329页 描绘出按照存储器散聚模式工作的示例。这个例子演示的是汇集 操作:将分别位于内存中三个不同位置的数据拷贝到同一个缓冲区中并连续放置。图 7-3 在 328页 描绘出应用程序应如何在内存中建立一个 μDMA 任务列表,控制器按照该列表执行三组来自内存中 不同位置的拷贝操作。通道的主控制结构体负责将控制结构体项从任务列表中拷贝出来,并填充到 副控制结构体中。 图 7-4 在 329页 描绘出 μDMA 控制器执行三组拷贝操作的序列。首先,μDMA 控制器按照主控制结 构体工作,将任务A载入到副控制结构体中。随后 μDMA 控制器切换到副控制结构体,按照任务 A 从源缓冲区 A 拷贝数据到目的缓冲区。随后,μDMA 控制器再次按照主控制结构体工作,将任务 B 载入到副控制结构体中,并按照副控制结构体执行任务 B 的拷贝操作。对于任务 C 也同样重复以上 步骤。 一月 06, 2012 327 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 图 7-3. 存储器散聚模式:创建及配置 1 存储器中的 源和目的缓存区 2 存储器中的任务列表 4 WORDS (SRC A) A 16 WORDS (SRC B) B 1 WORD (SRC C) C 4 (DEST A) 16 (DEST B) 1 (DEST C) SRC DST ITEMS = 4 未用 SRC DST ITEMS = 16 未用 SRC DST ITEMS = 1 未用 “任务” A “任务” B “任务” C 3 存储器中的 通道控制表 SRC DST ITEMS = 12 通道的主 控制结构体 SRC DST ITEMS = n 通道的副 控制结构体 注: 1. 应用程序需要将存储器中三个不同的位置的若干个数据单元拷贝到一个缓冲区中并顺序组合。 2. 应用程序在存储器中建立 µDMA“任务列表”,表中包括 3 个 µDMA 控制“任务”指针以及控制配置。 3. 应用程序设置通道的主控制结构体,以将任务逐个复制 到副控制结构体中,并且接下来由 µDMA 控制器予以执行。 328 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 7-4. 存储器散聚模式:μDMA 复制序列 存储器中的 任务列表 存储器中的µDMA 控制表 任务 A 任务 B 任务 C SRC DST PRI 复制到 SRC ALT DST 存储器中的 缓冲区 SRC A SRC B SRC C DEST A DEST B DEST C 复制到 使用通道的主控制结构体, µDMA 控制器将任务 A 的配置复制到通道的 副控制结构体中。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓冲区 A 复制到 目标缓冲区。 存储器中的 任务列表 存储器中的 µDMA 控制表 存储器中的 缓冲区 任务 A 任务 A 任务 C SRC DST PRI 复制到 SRC ALT DST SRC A SRC B SRC C DEST A DEST B DEST C 复制到 通过通道的主控制结构体, µDMA 控制器将任务 B 配置复制到通道的 副控制结构体。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓冲区 B 复制到 目的缓存区。 存储器中的 任务列表 存储器中的 µDMA 控制表 存储器中的 缓冲区 任务 A 任务 B 任务 C SRC DST PRI 复制到 SRC ALT DST SRC A SRC B SRC C DEST A DEST B DEST C 复制到 通过通道的主控制结构体, µDMA 控制器将任务 C 配置复制到通道的 副控制结构体。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓存区 C 复制到 目的缓存区。 一月 06, 2012 329 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.2.6.6 外设散聚 外设散聚模式与存储器散聚模式非常相似,只不过传输过程是由产生 μDMA 请求的外设控制的。当 μDMA 控制器检测到有来自外设的请求后,将通过主控制结构体从控制表中拷贝一个控制结构体项 填充到副控制结构体中,随后执行其传输过程。此次传输过程结束后,只有当外设再次产生 μDMA 请求后,才会开始下一个传输过程。只有外设不断产生请求,μDMA 控制器才会持续执行控制表中 的任务,直到完成最后一次传输。只有当最后一次传输过程也结束后,才会产生结束中断。 按照这种方式对 μDMA 控制器进行配置,只要外设准备好传输数据,就可以在内存的若干指定地址 与外设之间传输数据。 图 7-5 在 331页 和 图 7-6 在 332页 描绘出按照外设散聚模式工作的示例。这个例子演示的是汇集操 作:将分别位于内存中三个不同位置的数据拷贝到同一个外设数据寄存器中。图 7-5 在 331页 描绘 出应用程序应如何在内存中建立一个 μDMA 任务列表,控制器按照该列表执行三组来自内存中不同 位置的拷贝操作。通道的主控制结构体负责将控制结构体项从任务列表中拷贝出来,并填充到副控 制结构体中。 图 7-6 在 332页 描绘出 μDMA 控制器执行三组拷贝操作的序列。首先,μDMA 控制器按照主控制结 构体工作,将任务 A 载入到副控制结构体中。随后 μDMA 控制器切换到副控制结构体,按照任务 A 从源缓冲区 A 拷贝数据到外设数据寄存器。随后,μDMA 控制器再次按照主任务结构体工作,将任 务 B 载入到副控制结构体中,并按照副控制结构体执行任务 B 的拷贝操作。对于任务 C 也同样重 复以上步骤。 330 一月 06, 2012 Texas Instruments-生产数据 图 7-5. 外设散聚模式:创建及配置 1 存储器上的 源缓存区 2 存储器中的任务列表 4 WORDS (SRC A) A 16 WORDS (SRC B) B 1 WORD (SRC C) C 外设数据寄存器 DEST SRC DST ITEMS = 4 未用 SRC DST ITEMS = 16 未用 SRC DST ITEMS = 1 未用 “任务” A “任务” B “任务” C Stellaris® LM3S9B92 微控制器 3 存储器上的 通道控制表 SRC DST ITEMS = 12 通道主 控制结构体 SRC DST ITEMS = n 通道副 控制结构体 注: 1. 应用程序需要将内存中三个不同的位置的若干个数据单元拷贝到一个外设 数据寄存器。 2. 应用程序在内存中建立 µDMA“任务列表”,表中包括 3 个 µDMA控制“任务”的指针以及控制配置。 3. 应用程序设置通道的主控制结构体,每次将一个任务的配置拷贝到副控制结构体中, 并且接下来由 µDMA 控制器予以执行。 一月 06, 2012 331 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 图 7-6. 外设散聚模式:μDMA 复制序列 存储器中的 任务列表 存储器中的µDMA 控制表 任务 A 任务 B 任务 C SRC DST PRI 复制到 SRC ALT DST 存储器中的 缓冲区 SRC A SRC B SRC C 外设 数据 寄存器 复制到 通过通道的主控制结构体, µDMA 控制器将任务 A 的配置复制到通道的 副控制结构体。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓冲区 A 复制到 外设数据寄存器。 存储器中的 任务列表 任务 A 任务 B 任务 C 存储器中的 µDMA 控制表 SRC DST PRI 复制到 SRC ALT DST 存储器中的 缓冲区 SRC A SRC B SRC C 外设 数据 寄存器 复制到 通过通道的主控制结构体, µDMA 控制器将任务 B 配置复制到通道的 副控制结构体。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓冲区 B 复制到 外设数据寄存器。 存储器中的 任务列表 任务 A 任务 B 任务 C 存储器中的 µDMA 控制表 SRC DST PRI 复制到 SRC ALT DST 存储器中的 缓冲区 SRC A SRC B SRC C 外设 数据 寄存器 复制到 通过通道的主控制结构体, µDMA 控制器将任务 C 配置复制到通道的 副控制结构体。 然后,通过通道的副控制结构体, µDMA 控制器将数据从源缓存区 C 复制到 外设数据寄存器。 332 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.2.7 7.2.8 7.2.9 7.2.10 待传输数目及增量 μDMA 控制器支持传输宽度为 8 位、16 位或 32 位的数据。对于任何传输,都必须保障源数据宽度 与目的数据宽度一致。源地址及目的地址可以按字节、半字或字自动递增,也可以设置为不自动递 增。源地址增量及目的地址增量相互无关,设置地址增量时只要保证其大于等于数据宽度即可。例 如,当传输 8 位宽的数据单元时,将地址增量设置为整字(32 位)也是允许的。待传输的数据在内 存中必须按照数据宽度(8 位、16 位或 32 位)对齐。 表 7-5 列出了从某个支持 8 位数据的外设进行读操作时的配置。 表 7-5. μDMA 读操作实例:8 位外设 位域 源数据宽度 目的数据宽度 源地址增量 目的地址增量 源末指针 目的末指针 配置 8位 8位 不递增 字节 外设读 FIFO 寄存器 内存中数据缓冲区的末尾 外设接口 如果某个外设支持 μDMA 功能,则当其作好传输数据的准备时,将可产生一个单次请求信号及/或一 个猝发请求信号(见 表 7-2 在 322页)。请求信号可通过 DMA 通道请求屏蔽置位 (DMAREQMASKSET) 启用,并通过 DMA 通道请求屏蔽清零 (DMAREQMASKCLR) 禁用。若某 个通道的请求屏蔽位置位,则禁用(屏蔽)该通道的 μDMA 请求信号。假如并未屏蔽该请求信号, 并且 μDMA 通道已经正确配置并且以及启用,则当外设产生请求信号时,μDMA 控制器将开始传输 过程。 注意: 当使用 μDMA 与外设进行数据通信时,外设必须禁用所有到 NVIC 的中断。 当 μDMA 传输结束后,μDMA 控制器产生一个中断,详见 “中断及错误” 在 333页。 关于某种外设与 μDMA 控制器如何相互配合工作的详细信息,请参阅该类型外设 DMA 操作的相关 章节。 软件请求 在 32 个 μDMA 通道中有一个是专用于软件启动的传输过程的。当此通道 μDMA 传输结束时,还有 专用的中断予以指示。要想正确使用软件启动的 μDMA 传输,应首先配置并启用传输过程,之后通 过 DMA 通道软件请求 (DMASWREQ) 发送软件请求。请注意,基于软件的 μDMA 传输应当采用自 动传输模式。 通过 DMASWREQ 寄存器也可以启动任意通道的 μDMA 传输。假如在某个外设的 μDMA 通道上采 用软件启动请求,那么当传输结束时,结束中断将在该外设的中断向量处产生,而非软件中断向量。 只要某个外设并不用到 μDMA 数据传输,其 μDMA 通道就可以用作软件传输请求。 中断及错误 当某个 μDMA 传输过程结束时,μDMA 控制器将在相应外设的中断向量处产生一个结束中断。因 此,假如某个外设采用 μDMA 传输数据,并且启用了该外设的中断,那么中断处理函数中必须包含 对 μDMA 传输结束中断的相关处理。假如传输过程使用了软件 μDMA 通道,那么结束中断将在专 用的软件 μDMA 中断向量上产生(参见 表 7-6 在 334页)。 当启用某外设的 μDMA 后,μDMA 控制器将禁止该外设的普通传输中断传递到中断控制器,不过这 些中断的状态仍然能在外设的中断寄存器中查询到。因此,当采用 μDMA 传输大量数据时,中断控 一月 06, 2012 333 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.3 7.3.1 7.3.2 7.3.2.1 7.3.2.2 制器并不会随着数据流从外设频繁收到中断,而是只在数据传输过程结束后收到一个中断。请注意, 未屏蔽的外设错误中断仍会正常发送到中断控制器。 若 μDMA 控制器在尝试进行数据传输时遇到了总线错误或存储器保护错误,将会自动关闭出错的 μDMA 通道,并且在 μDMA 错误中断向量处产生中断。处理器可以通过读取 DMA 总线错误清除 (DMAERRCLR) 寄存器来确定是否产生了错误中断。一旦产生错误则 ERRCLR 标志位将置位。向 ERRCLR 位写 1 即可清除错误状态。 表 7-6 列出了 μDMA 控制器专用的中断。 表 7-6. μDMA 中断分配 中断 46 47 分配 μDMA 软件通道传输中断 μDMA 错误中断 初始化及配置 模块初始化 在使用 μDMA 控制器之前,必须先在系统控制模块中将其启用,并且在外设中启用 μDMA 功能。 此外,还应当先设置好通道控制结构体的位置。 系统初始化期间应执行一遍下面的步骤: 1. 在系统控制模块中,必须启用 μDMA 外设。可通过将系统控制寄存器 RCGC2 的 UDMA 置位实 现(参见 271页)。 2. 通过将 DMA 配置 (DMACFG) 中的 MASTEREN 位置位,启用 μDMA 控制器。 3. 向 DMA 通道控制基指针 (DMACTLBASE) 寄存器写入通道控制表的基地址。基地址必须按照 1024 字节对齐。 存储器到存储器传输的配置 第 30 号 μDMA 通道是专用的软件启动传输通道。不过,只要相关外设不使用 μDMA 功能,那么任 何通道都可以用于软件启动、存储器到存储器的传输。 配置通道属性 首先我们应当配置通道属性: 1. 对 DMA 通道优先置位 (DMAPRIOSET) 或 DMA 通道优先清除 (DMAPRIOCLR) 寄存器的第 30 位编程,将通道的优先级设置为最高优先级或者为默认优先级。 2. 将 DMA 通道主副清除 (DMAALTCLR) 寄存器中的第 30 位置位,为此次传输选择主通道控制 结构体。 3. 将DMA 通道采用猝发清除 (DMAUSEBURSTCLR) 寄存器中的第 30 位置位,以允许 μDMA 控 制器既能响应单次请求也能响应猝发请求。 4. 将 DMA 通道请求屏蔽清零 (DMAREQMASKCLR) 寄存器中的第 30 位置位,以允许 μDMA 控 制器识别该通道的请求。 配置通道控制结构体 下面来配置通道控制结构体。 334 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.3.2.3 7.3.3 本示例需要实现的功能是:从某个内存缓冲区向另一缓冲区传输 256 个字。采用第 30 号通道进行 软件启动传输,其控制结构体在控制表中的偏移量为 0x1E0。控制结构体内各个功能字的偏移量见 表 7-7。 表 7-7. 第 30 号通道的通道控制结构体偏移量 偏移量 控制表基地址 +0x1E0 控制表基地址 +0x1E4 控制表基地址 +0x1E8 描述 第 30 号通道源末指针 第 30 号通道目的末指针 第 30 号通道控制字 配置源和目的参数 源末指针和目的末指针都应当指向传输过程最后一次传输的地址(其本身包含在内)。 1. 向偏移量 0x1E0 处的源末指针写入:源缓冲地址 +0x3FC (0xFF * 4)。 2. 向偏移量0x1E4处的目的末指针写入:目的缓冲地址+0x3FC (0xFF * 4)。 至于偏移量 0x1E8 处的控制字,应按照 表 7-8 进行编程。 表 7-8. 存储器传输示例的通道控制字配置 DMACHCTL 中的位域 DSTINC DSTSIZE SRCINC SRCSIZE 保留 ARBSIZE XFERSIZE NXTUSEBURST XFERMODE 位 31:30 29:28 27:26 25:24 23:18 17:14 13:4 3 2:0 值 描述 2 目标地址按 32 位自动递增 2 目标数据宽度为 32 位 2 源地址按 32 位自动递增 2 源数据宽度为 32 位 0 保留 3 传输 8 个数据单元后仲裁 255 总共传输 256 个单元 0 对本传输类型无意义 2 采用自动请求传输模式 启动传输过程 完成通道配置后,即可启动传输过程: 1. 将 DMA 通道启用置位 (DMAENASET) 寄存器中的第 30 位置位以启用该通道。 2. 将 DMA 通道软件请求 (DMASWREQ) 中的第 30 位置位,以发送传输请求。 随后就会开始 μDMA 传输。倘若同时开启了相关的中断,那么当传输过程全部结束后还会产生中断 事件通知处理器。如果需要,还需通过读取 DMAENASET 寄存器中的第 30 位来检查状态。当传输 完成后,此位自动清零。此外也可通过通道控制字(偏移量 0x1E8)的 XFERMODE 位域来检查传输 状态。当传输完成后,此位自动清零。 外设简单发送的配置 在下面的示例中,我们要配置 μDMA 控制器,将缓冲区中的数据发送给某个外设。该外设具有发送 FIFO,且触发深度为 4。此示例中的外设占用 μDMA 第 7 号通道。 一月 06, 2012 335 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.3.3.1 7.3.3.2 配置通道属性 首先我们应当配置通道属性: 1. 配置 DMA 通道优先置位 (DMAPRIOSET) 或 DMA 通道优先清除 (DMAPRIOCLR) 的第 7 位, 将通道的优先级设置为最高优先级或者为默认优先级。 2. 将 DMA 通道主副清除 (DMAALTCLR) 寄存器中的第 7 位置位,为此次传输选择主通道控制结 构体。 3. 将 DMA 通道采用猝发清除 (DMAUSEBURSTCLR) 寄存器中的第 7 位置位,以允许 μDMA 控 制器既能响应单次请求也能响应猝发请求。 4. 将 DMA 通道请求屏蔽清零 (DMAREQMASKCLR) 寄存器中的第 7 位置位,以允许 μDMA 控 制器识别该通道的请求。 配置通道控制结构体 本示例需要实现的功能是:从某个内存缓冲区经过第 7 号通道向某个外设的发送 FIFO 寄存器传输 64 个字节。第 7 号通道的控制结构体在控制表中的偏移量为 0x070。控制结构体内各个功能字的偏 移量见 表 7-9。 表 7-9. 第 7 号通道的通道控制结构体偏移量 偏移量 控制表基地址 +0x070 控制表基地址 +0x074 控制表基地址 +0x078 描述 第 7 号通道源末指针 第 7 号通道目的末指针 第 7 号通道控制字 配置源和目的参数 源末指针和目的末指针都应当指向传输过程最后一次传输的地址(其本身包含在内)。由于外设指 针是固定的,因此只需指向外设的数据寄存器即可。 1. 向偏移量 0x070 处的源末指针写入:源缓冲地址 +0x3F。 2. 向偏移量 0x074 处的目的末指针写入:外设的发送 FIFO 寄存器地址。 至于偏移量 0x078 处的控制字,应按照 表 7-10 进行编程。 表 7-10. 外设传输示例的通道控制字配置 DMACHCTL 中的位域 DSTINC DSTSIZE SRCINC SRCSIZE 保留 ARBSIZE XFERSIZE NXTUSEBURST XFERMODE 位 31:30 29:28 27:26 25:24 23:18 17:14 13:4 3 2:0 值 描述 3 目标地址不自动递增 0 目标数据宽度为 8 位 0 源地址按 8 位自动递增 0 源数据宽度为 8 位 0 保留 2 传输 4 个数据单元后仲裁 63 总共传输 64 个单元 0 对本传输类型无意义 1 采用基本传输模式 336 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.3.3.3 7.3.4 7.3.4.1 7.3.4.2 注意: 注:在这个示例中,外设产生的是单次请求还是猝发请求并不重要。由于外设本身具有发送 FIFO,并且在深度达到 4 时触发,因此将仲裁数目设为 4。即使外设真的产生猝发请求, 那么传输 4 字节也正好符合 FIFO 的容限。假如外设产生的是单次请求(即 FIFO 中仍然有 空位),那么将每次传输 1 个字节。假如应用程序要求必须按猝发方式传输,那么应当将 DMA 通道采用猝发置位 (DMAUSEBURSTSET) 寄存器中管辖通道猝发的 SET[7] 置位。 启动传输过程 完成通道配置后,即可启动传输过程: 1. 将 DMA 通道启用置位 (DMAENASET) 寄存器中的第 7 位置位以启用该通道。 随后 μDMA 控制器即可经由第 7 号通道进行传输。每当外设产生 μDMA 请求后,控制器就会向其 传输若干数据。当全部 64 个字节传输完成后,传输过程才会结束。传输过程结束后 μDMA 控制器 将自动禁用该通道,并将通道控制字的 XFERMODE 位清零(停止模式)。可以通过读取 DMA 通道 启用置位 (DMAENASET) 寄存器中的第 7 位来检查传输状态。当传输完成后,此位自动清零。此外 也可通过通道控制字(偏移量 0x078)的 XFERMODE 位域来检查传输状态。当传输完成后,此位自 动清零。 假如启用了该外设的中断,那么当整个传输过程结束时,将产生中断并跳转到该外设的中断服务函 数。 外设乒乓接收的配置 在下面的示例中,我们要配置 μDMA 控制器,从某个外设连续接收 8 位数据,并保存到一对 64 字 节的缓冲区中。该外设具有发送 FIFO,且触发深度为 8。此示例中的外设占用 μDMA 第 8 号通道。 配置通道属性 首先我们应当配置通道属性: 1. 配置 DMA 通道优先置位 (DMAPRIOSET) 或 DMA 通道优先清除 (DMAPRIOCLR) 的第 8 位, 将通道的优先级设置为最高优先级或者为默认优先级。 2. 将 DMA 通道主副清除 (DMAALTCLR) 寄存器中的第 8 位置位,为此次传输选择主通道控制结 构体。 3. 将 DMA 通道采用猝发清除 (DMAUSEBURSTCLR) 寄存器中的第 8 位置位,以允许 μDMA 控 制器既能响应单次请求也能响应猝发请求。 4. 将 DMA 通道请求屏蔽清零 (DMAREQMASKCLR) 寄存器中的第 8 位置位,以允许 μDMA 控 制器识别该通道的请求。 配置通道控制结构体 下面来配置通道控制结构体,本示例需要实现的功能是:从外设的接收 FIFO 向两个分别为 64 字节 的缓冲区传输若干字节。接收数据时,当一个缓冲区装满后,μDMA 控制器自动切换到向另一个缓 冲区填充收到的数据。 要想实现乒乓式缓冲,必须同时使用该通道的主控制结构体和副控制结构体。第 8 号通道的主控制 结构体在控制表中的偏移量为 0x080,副控制结构体在控制表中的偏移量为 0x280。控制结构体内 各个功能字的偏移量见 表 7-11。 表 7-11. 第 8 号通道的主控制结构体及副控制结构体偏移量 偏移量 控制表基地址 +0x080 描述 第 8 号通道主源末指针 一月 06, 2012 337 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 7.3.4.3 表 7-11. 第 8 号通道的主控制结构体及副控制结构体偏移量(续) 偏移量 控制表基地址 +0x084 控制表基地址 +0x088 控制表基地址 +0x280 控制表基地址 +0x284 控制表基地址 +0x288 描述 第 8 号通道主目的末指针 第 8 号通道主控制字 第 8 号通道副源末指针 第 8 号通道副目的末指针 第 8 号通道副控制字 配置源和目的参数 源末指针和目的末指针都应当指向传输过程最后一次传输的地址(其本身包含在内)。由于外设指 针是固定的,因此只需指向外设的数据寄存器即可。主控制结构体和副控制结构体中的指针都必须 进行配置。 1. 向偏移量 0x080 处的主源末指针写入:外设的接收缓冲地址。 2. 向偏移量 0x084 处的主目的末指针写入:乒乓缓冲区A地址 +0x3F。 3. 向偏移量 0x280 处的副源末指针写入:外设的接收缓冲地址。 4. 向偏移量 0x284 处的副目的末指针写入:乒乓缓冲区 B 地址 +0x3F。 至于偏移量 0x088 处的主控制字和 0x288 处的副控制字,应按照下面的方式编程: 1. 按照对偏移量 0x088 处的主控制字进行编程。 2. 按照对偏移量 0x288 处的副控制字进行编程。 表 7-12. 外设乒乓接收示例的通道控制字配置 DMACHCTL 中的位域 DSTINC DSTSIZE SRCINC SRCSIZE 保留 ARBSIZE XFERSIZE NXTUSEBURST XFERMODE 位 31:30 29:28 27:26 25:24 23:18 17:14 13:4 3 2:0 值 描述 0 目标地址按 8 位自动递增 0 目标数据宽度为 8 位 3 源地址不自动递增 0 源数据宽度为 8 位 0 保留 3 传输 8 个数据单元后仲裁 63 总共传输 64 个单元 0 对本传输类型无意义 3 采用乒乓传输模式 注意: 注:在这个示例中,外设产生的是单次请求还是猝发请求并不重要。由于外设本身具有发送 FIFO,并且在深度达到 8 时触发,因此将仲裁数目设为 8。即使外设真的产生猝发请求, 那么传输 8 字节也正好符合 FIFO 的容限。假如外设产生的是单次请求(即 FIFO 中仍然有 空位),那么将每次传输 1 个字节。假如应用程序要求必须按猝发方式传输,那么应当将 DMA 通道采用猝发置位 (DMAUSEBURSTSET) 寄存器中管辖通道猝发的 SET[8] 置位。 配置外设中断 当采用 μDMA 的乒乓模式工作时,应当配置中断服务函数。强烈建议通过中断服务函数进行相关处 理;不过,乒乓模式也可以采用轮询方式进行相关处理。每当其中一个缓冲区传输完成后即会触发 中断。 338 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 7.3.4.4 7.3.4.5 7.3.5 7.4 1. 配置并启用该外设的中断处理函数。 启用 μDMA 通道 完成通道配置后,即可启动传输过程: 1. 将 DMA 通道启用置位 (DMAENASET) 寄存器中的第 8 位置位以启用该通道。 处理中断 当前已配置并启用了 μDMA 控制器,在第 8 号通道上可进行传输。当外设产生 μDMA 请求后,控 制器将按照主控制结构体的配置将数据传输到缓冲区 A。当对缓冲区A的主传输流程结束后,控制器 将自动切换到副控制结构体,并开始将数据搬运到缓冲区 B。与此同时,主通道控制字的模式位域 将自动变为“已停止”,并产生一个中断。 当产生中断后,中断处理函数首先应确认哪一缓冲区已传输完成;之后自行处理数据或置标志(有 中断外的相应代码根据此标志处理缓冲区的数据);随后设置本缓冲区下一次的传输任务。 依上所述,在中断处理函数中应当: 1. 读取偏移量 0x088 处的主通道控制字,检查其 XFERMODE 位域。若该位域为 0,则表明缓冲区 A 已传输结束。如果缓冲区 A 传输完成,则应当: a. 自行处理缓冲区A中刚收到的数据;或置标志表明缓冲区A有已接收完成的数据,由专用的 缓冲区处理代码进行处理。 b. 按照 表 7-12 在 338页 对偏移量 0x88 处的主控制字进行编程。 2. 读取偏移量 0x288 处的主通道控制字,检查其 XFERMODE 位域。若该位域为 0,则表明缓冲区 B 已传输结束。如果缓冲区 B 传输完成,则应当: a. 自行处理缓冲区 B 中刚收到的数据;或置标志表明缓冲区 B 有已接收完成的数据,由专用 的缓冲区处理代码进行处理。 b. 按照 表 7-12 在 338页 对偏移量 0x288 处的副控制字进行编程。 通道分配的配置 通过 DMACHASGN 寄存器可更改任一 μDMA 通道的功能分配。本寄存器的每个位分别对应一个 μDMA 通道。假如某个位置位,则表示启用该通道的次功能。 关于通道的分配参见 表 7-1 在 321页。 例如,如果想将第 8 通道用作 SSI1 模块的接收功能,而非 UART0 的接收功能,则应将 DMACHASGN 寄存器的第 8 位置位。 寄存器映射 表 7-13 在 340页 列出了所有 μDMA 通道控制结构体以及相关寄存器。通道控制结构体展示出通道控 制表中每一项的详细内容。通道控制表位于系统内存中,其位置由应用程序决定,因此其基地址为 n/a(无预定义值)。在下表中,通道控制结构体的“偏移量”一列代表该配置字相对于控制表中每 个结构体项起始地址的偏移。至于通道控制表在内存中的具体排布,请参阅 “通道配置” 在 323页 以 及 表 7-3 在 323页。μDMA 寄存器的“偏移量”一列则表示相对于 μDMA 模块基地址的十六进制地 址增量 0x400F.F000。在操作 μDMA 寄存器之前,注意应先启用 μDMA 模块时钟,参见 271页。 μDMA 模块时钟启用后,必须等待至少 3 个系统时钟才可访问 μDMA 模块寄存器。 一月 06, 2012 339 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 表 7-13. μDMA 寄存器映射 偏移量 名称 类型 复位 μDMA 通道控制结构体(从通道控制表基地址的偏移量) 0x000 DMASRCENDP R/W - 0x004 DMADSTENDP R/W - 0x008 DMACHCTL R/W - μDMA 寄存器(从 μDMA 基地址的偏移量) 0x000 DMASTAT RO 0x001F.0000 0x004 DMACFG WO - 0x008 DMACTLBASE R/W 0x0000.0000 0x00C DMAALTBASE RO 0x0000.0200 0x010 DMAWAITSTAT RO 0xFFFF.FFC0 0x014 DMASWREQ WO - 0x018 DMAUSEBURSTSET R/W 0x0000.0000 0x01C DMAUSEBURSTCLR WO - 0x020 DMAREQMASKSET R/W 0x0000.0000 0x024 DMAREQMASKCLR WO - 0x028 DMAENASET R/W 0x0000.0000 0x02C DMAENACLR WO - 0x030 DMAALTSET R/W 0x0000.0000 0x030 DMAALTCLR WO - 0x038 DMAPRIOSET R/W 0x0000.0000 0x03C DMAPRIOCLR WO - 0x04C DMAERRCLR R/W 0x0000.0000 0x500 DMACHASGN R/W 0x0000.0000 0xFD0 DMAPeriphID4 RO 0x0000.0004 0xFE0 DMAPeriphID0 RO 0x0000.0030 0xFE4 DMAPeriphID1 RO 0x0000.00B2 0xFE8 DMAPeriphID2 RO 0x0000.000B 0xFEC DMAPeriphID3 RO 0x0000.0000 0xFF0 DMAPCellID0 RO 0x0000.000D 0xFF4 DMAPCellID1 RO 0x0000.00F0 0xFF8 DMAPCellID2 RO 0x0000.0005 0xFFC DMAPCellID3 RO 0x0000.00B1 描述 DMA 通道源地址末指针寄存器 DMA 通道目的地址末指针寄存器 DMA 通道控制字寄存器 DMA 状态寄存器 DMA 配置寄存器 DMA 通道控制基指针寄存器 DMA 副通道控制基指针寄存器 DMA 通道等待请求状态寄存器 DMA 通道软件请求寄存器 DMA 通道采用猝发置位寄存器 DMA 通道采用猝发清除寄存器 DMA 通道请求屏蔽置位寄存器 DMA 通道请求屏蔽清零寄存器 DMA 通道启用置位寄存器 DMA 通道启用清除寄存器 DMA 通道主副置位寄存器 DMA 通道主副清除寄存器 DMA 通道优先置位寄存器 DMA 通道优先清零寄存器 DMA 总线错误清除寄存器 DMA 通道分配寄存器 DMA 外设标识寄存器 4 DMA 外设标识寄存器 0 DMA 外设标识寄存器 1 DMA 外设标识寄存器 2 DMA 外设标识寄存器 3 DMA PrimeCell 标识寄存器 0 DMA PrimeCell 标识寄存器 1 DMA PrimeCell 标识寄存器 2 DMA PrimeCell 标识寄存器 3 340 Texas Instruments-生产数据 见页面 342 343 344 349 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 372 368 369 370 371 373 374 375 376 一月 06, 2012 Stellaris® LM3S9B92 微控制器 7.5 μDMA 通道控制结构体 μDMA 通道控制结构体保存每个 μDMA 通道的传输设置。每个 μDMA 通道具有两个控制结构体, 所有控制结构体共同在系统内存中组成一个控制表。“通道配置” 在 323页 给出了通道控制表以及通道 控制结构体的详细解释。 通道控制表由若干个控制结构体项组成。每个通道都有一个主控制结构体和一个副控制结构体。主 控制结构体位于偏移量 0x0、0x10、0x20,依此类推;副控制结构体位于偏移量 0x200、0x210、 0x220,依此类推。 一月 06, 2012 341 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 1: DMA 通道源地址末指针寄存器(DMASRCENDP),偏移量 0x000 DMA 通道源地址末指针 (DMASRCENDP) 是通道控制结构体的一部分,用于定义 μDMA 传输的源 地址。 μDMA 控制器可以将数据转移到片上 SRAM,也可以从片上 SRAM 将数据转移出。但是,由于 Flash 存储器和 ROM 位于不同的内部总线,所以 μDMA 不能从 Flash 存储器或 ROM 转移数据。 注意: 此处的偏移量是指针对系统内存中控制结构体的基地址,而不是 μDMA 模块的基地址。 DMA 通道源地址末指针寄存器 (DMASRCENDP) 基址 n/a 偏移量 0x000 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 ADDR 类型 R/W 复位 - 描述 源地址末指针 此位域的内容是 μDMA 传输源数据块中最后一个数据单元的地址(其本 身包含在内)。假如源地址不自动递增(DMACHCTL 寄存器的 SRCINC 位域为 0x3),那么此位域将指向源地址本身(例如外设的数据寄存 器)。 342 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 2: DMA 通道目的地址末指针寄存器(DMADSTENDP),偏移量 0x004 DMA 通道目的地址末指针 (DMADSTENDP) 是通道控制结构体的一部分,用于定义 μDMA 传输的 目的地地址。 注意: 此处的偏移量是指针对系统内存中控制结构体的基地址,而不是 μDMA 模块的基地址。 DMA 通道目的地址末指针寄存器 (DMADSTENDP) 基址 n/a 偏移量 0x004 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 ADDR 类型 R/W 复位 - 描述 目的地址末指针 此位域的内容是 μDMA 传输目的数据块中最后一个数据单元的地址(其 本身包含在内)。假如目的地址不自动递增(DMACHCTL 寄存器的 DSTINC 位域为 0x3),那么此位域将指向目的地址本身(例如外设的 数据寄存器)。 一月 06, 2012 343 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 3: DMA 通道控制字寄存器(DMACHCTL),偏移量 0x008 DMA 通道控制字 (DMACHCTL) 是通道控制结构体的一部分,用于指定 μDMA 传输的参数。 注意: 此处的偏移量是指针对系统内存中控制结构体的基地址,而不是 μDMA 模块的基地址。 DMA 通道控制字寄存器 (DMACHCTL) 基址 n/a 偏移量 0x008 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DSTINC DSTSIZE SRCINC SRCSIZE 保留 ARBSIZE 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 类型 复位 15 14 ARBSIZE R/W R/W - - 13 R/W - 12 R/W - 11 R/W - 10 R/W - 9 8 XFERSIZE R/W R/W - - 7 R/W - 6 R/W - 5 R/W - 4 3 2 1 0 NXTUSEBURST XFERMODE R/W R/W R/W R/W R/W - - - - - 位/域 31:30 名称 DSTINC 类型 R/W 复位 - 描述 目的地址增量 此位域用于配置目的地址自动递增时的增量。 地址增量必须大于等于目的数据宽度 (DSTSIZE)。 值 描述 0x0 字节 按照8位地址递增。 0x1 半字 按照16位地址递增。 0x2 字 按照32位地址递增。 0x3 不递增 通道的目的地址始终等于目的地址末指针 (DMADSTENDP)。 29:28 DSTSIZE R/W - 目的数据宽度 此位域用于配置目的数据宽度。 注意: DSTSIZE 必须与 SRCSIZE 相等。 值 描述 0x0 字节 传输的每个数据单元为8位。 0x1 半字 传输的每个数据单元为16位。 0x2 字 传输的每个数据单元为32位。 0x3 保留 344 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 27:26 25:24 23:18 名称 SRCINC SRCSIZE 保留 类型 R/W R/W R/W 复位 - 描述 源地址增量 此位域用于配置源地址自动递增时的增量。 地址增量必须大于等于源数据宽度 (SRCSIZE)。 值 描述 0x0 字节 按照8位地址递增。 0x1 半字 按照16位地址递增。 0x2 字 按照32位地址递增。 0x3 不递增 通道的源地址始终等于源地址末指针 (DMASRCENDP)。 - 源数据宽度 此位域用于配置源数据宽度。 注意: DSTSIZE 必须与 SRCSIZE 相等。 值 描述 0x0 字节 传输的每个数据单元为 8 位。 0x1 半字 传输的每个数据单元为 16 位。 0x2 字 传输的每个数据单元为 32 位。 0x3 保留 - 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 345 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 位/域 17:14 13:4 3 名称 ARBSIZE 类型 R/W XFERSIZE R/W NXTUSEBURST R/W 复位 - 描述 仲裁数目 此位域用于配置传输了多少个数据单元后,μDMA 控制器重新进行仲 裁。仲裁数目是 2 的整数幂,其可能的配置如下表所示。 值 描述 0x0 1个单元 μDMA 控制器每传输 1 个数据单元后即重新仲裁。 0x1 2 个单元 0x2 4个单元 0x3 8个单元 0x4 16个单元 0x5 32个单元 0x6 64个单元 0x7 128个单元 0x8 256个单元 0x9 512个单元 0xA-0xF 1024个单元 当配置为此数值时,由于待传输数目最多也只能是 1024 个单 元,因此 μDMA 传输过程中将不再仲裁。 - 待传输数目(减1) 此位域配置要传输的数据单元总数。配置值等于实际要传输的数据单元 数减 1,也就是说若此位域的值为 0,则实际需要传输 1 个数据单元。 此位域共有 10 位,最大可能值为 1023,因此最多允许传输 1024 个单 元。 待传输数目的单位是数据单元,而不是字节。若数据宽度为32位,则可 传输若干个32位宽的字。 μDMA 控制器每次进入仲裁流程之前都会立即更新此位域,因此该位域 的实际含义是剩余需要传输的数据单元数。 - 下一个采用猝发 在外设散聚模式下,此位域控制是否在最后一次传输时自动将管辖猝发 的 SET[n] 位置位。通常在最后一次传输时,假如剩余待传输的数据单 元数少于仲裁数目,那么 μDMA 控制器会采用单次传输来完成本次数据 会话。若此标志位置位,那么控制器将采用猝发传输来完成最后一次传 输。 346 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 2:0 名称 XFERMODE 类型 R/W 复位 - 描述 μDMA 传输模式 此位域控制 μDMA 流程的工作模式。关于传输模式,详见 “传输模 式” 在 324页。 由于此寄存器也位于系统内存中,因此其复位值不定。启用此通道前必 须将此位域初始化为 0。 值 描述 0x0 停止 0x1 基本 0x2 自动请求 0x3 乒乓 0x4 存储器散聚 0x5 副存储器散聚 0x6 外设散聚 0x7 副外设散聚 XFERMODE 位域的有效值. 停止 通道已停止或配置数据无效。此时不会产生传输。 基本 每次触发后(不论是外设请求还是软件请求),μDMA 控制器都按照 ARBSIZE 位域指定的数目 传输若干次。 自动请求 当被触发一次后(不论是外设请求还是软件请求),μDMA 控制器都按照 XFERSIZE 位域指定 的数目完成整个传输过程,无需额外再产生请求信号。 乒乓 这种模式需要同时用到主控制结构体和副控制结构体。当前(主或副)控制结构体的 XFERSIZE 位域指定的数目已经传输完成后,μDMA 控制器将切换到另一组控制结构体并按其工作。只要 控制结构体都还是乒乓模式,μDMA 控制器就会这样不停切换交替传输下去。当其中一个控制 结构体设为非乒乓模式后,乒乓传输流程才会停止。单个控制结构体配置的传输完成后将会产 生中断。见 “乒乓” 在 325页。 存储器散聚 这种模式需要同时用到主控制结构体和副控制结构体,按照一个任务列表依次执行其各个动作。 此时,主控制结构体的源地址指针应指向一个任务列表的顶部,主控制结构体负责将任务配置 拷贝到副控制结构体中。副控制结构体的 XFERMODE 位域必须配置为 0x5(副存储器散聚)才 能正确执行所载入的任务。当任务执行结束后,μDMA 切换回主控制结构体,并将任务列表中 的下一项任务配置拷贝到副控制结构体中。流程就这样不断进行直至整个任务列表全部完成。 最后一项任务的 XFERMODE 位域不得为 0x5。请注意,要想实现永不停歇的循环工作,可将最 后一项任务制定为更新主控制结构体,使其重新指向任务列表的顶部,当然也可以指向其它的 任务列表。见 “存储器散聚” 在 326页。 副存储器散聚 当 μDMA 控制器工作于存储器散聚模式时,必须将副控制结构体的工作模式配置为此种模式。 一月 06, 2012 347 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 外设散聚 当 μDMA 控制器工作于外设散聚模式时,必须将主控制结构体的工作模式配置为此种模式。此 模式下 μDMA 控制器的工作流程与存储器散聚模式基本相同,区别在于:每次传输并非按照副 控制结构体 XFERSIZE 位域定义的数目执行传输,而是按照 ARBSIZE 位域定义的数目执行传 输,类似于基本模式。见 “外设散聚” 在 330页。 副外设散聚 当 μDMA 控制器工作于外设散聚模式时,必须将副控制结构体的工作模式配置为此种模式。 7.6 μDMA 寄存器描述 以下寄存器的偏移量都是相对于 μDMA 模块基地址 0x400F.F000的偏移。 348 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 4: DMA 状态寄存器(DMASTAT),偏移量 0x000 DMA 状态 (DMASTAT) 寄存器可返回 μDMA 控制器的当前状态。若 μDMA 控制器处于复位状态, 则不能读取本寄存器。 DMA 状态寄存器 (DMASTAT) 基址 0x400F.F000 偏移量 0x000 类型 RO, 复位 0x001F.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 DMACHANS 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 STATE 保留 MASTEN 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:21 20:16 15:8 7:4 名称 保留 DMACHANS 保留 STATE 类型 RO RO RO RO 复位 0x000 0x1F 0x00 0x0 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 可用的 μDMA 通道数(减 1) 此位域的值等于 μDMA 控制器可用的 μDMA 通道数减 1。复位值 0x1F 表示本器件有 32 个可用的 μDMA 通道。 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 控制状态机状态 此位域能够体现当前状态机的状态。可能的状态包括: 值 描述 0x0 空闲 0x1 正在读取通道控制数据 0x2 正在读取源末指针 0x3 正在读取目的末指针 0x4 正在从源地址读取数据 0x5 正在向目的地址写数据 0x6 正在等待μDMA请求清除 0x7 正在写入通道控制数据 0x8 已挂起 0x9 已完成 0xA-0xF 未定义 3:1 保留 RO 0x0 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 349 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 位/域 0 名称 MASTEN 类型 RO 复位 0 描述 主启用状态 值 描述 0 μDMA 控制器已被禁用。 1 μDMA 控制器已被启用。 350 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 5: DMA 配置寄存器(DMACFG),偏移量 0x004 DMACFG 寄存器用于配置 μDMA 控制器。 DMA 配置寄存器 (DMACFG) 基址 0x400F.F000 偏移量 0x004 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 MASTEN 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:1 0 名称 保留 MASTEN 类型 WO WO 复位 - - 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 控制器主机启用 值 描述 0 禁用 μDMA 控制器。 1 启用 μDMA 控制器。 一月 06, 2012 351 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 6: DMA 通道控制基指针寄存器(DMACTLBASE),偏移量 0x008 必须配置 DMACTLBASE 寄存器,使控制表的基地址指针指向系统内存中的某个地址。 μDMA 控制器所需的内存大小并不固定,取决于应用程序需要用到的 μDMA 通道数量,以及是否需 要用到副控制数据结构体。关于通道控制表的详细信息,请参见 “通道配置” 在 323页。基地址必须按 照 1024 字节对齐。当 μDMA 处于复位状态时,此寄存器不可读。 DMA 通道控制基指针寄存器 (DMACTLBASE) 基址 0x400F.F000 偏移量 0x008 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 保留 类型 R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:10 9:0 名称 ADDR 保留 类型 R/W RO 复位 描述 0x0000.00 通道控制基地址 此位域包含指向通道控制表的基地址指针。基地址必须按照1024字节对 齐。 0x00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 352 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 7: DMA 副通道控制基指针寄存器(DMAALTBASE),偏移量 0x00C DMAALTBASE 寄存器可返回副控制结构体数据块的基地址。提供本寄存器是为了方便软件使用, 无需自行计算副控制结构体的地址。当 μDMA 处于复位状态时,此寄存器不可读。 DMA 副通道控制基指针寄存器 (DMAALTBASE) 基址 0x400F.F000 偏移量 0x00C 类型 RO, 复位 0x0000.0200 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 ADDR 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 ADDR 类型 复位 描述 RO 0x0000.0200 副通道地址指针 此位域包含副控制结构体的基地址。 一月 06, 2012 353 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 8: DMA 通道等待请求状态寄存器(DMAWAITSTAT),偏移量 0x010 本只读寄存器用于指示出 μDMA 控制器是否正在等待请求。为了提高 μDMA 的性能,可以禁止在 外设发出单次请求时触发 μDMA 传输,而是只在外设产生猝发请求时才通过 μDMA 传输。此功能 需外设的设计予以支持才能正常使用,软件无论采取什么方式都无法控制。当 μDMA 处于复位状态 时,此寄存器不可读。 DMA 通道等待请求状态寄存器 (DMAWAITSTAT) 基址 0x400F.F000 偏移量 0x010 类型 RO, 复位 0xFFFF.FFC0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 WAITREQ[n] 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WAITREQ[n] 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 位/域 31:0 名称 WAITREQ[n] 类型 复位 描述 RO 0xFFFF.FFC0 通道[n]的等待状态 此位域可返回各个通道等待请求的状态。第0位对应于第0号通道,依此 类推。 值 描述 1 相应通道并未等待请求。 0 相应通道正在等待请求。 354 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 9: DMA 通道软件请求寄存器(DMASWREQ),偏移量 0x014 DMASWREQ 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,即会向相应的 μDMA 通 道产生一个请求信号。 DMA 通道软件请求寄存器 (DMASWREQ) 基址 0x400F.F000 偏移量 0x014 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SWREQ[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SWREQ[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 SWREQ[n] 类型 WO 复位 - 描述 通道[n]的软件请求 此位域用于产生软件请求。第0位对应于第0号通道,依此类推。 值 描述 1 向相应通道产生软件请求。 0 不产生软件请求。 当软件请求完成后,相应标志位将自动清零。 一月 06, 2012 355 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 10: DMA 通道采用猝发置位寄存器(DMAUSEBURSTSET),偏移量 0x018 DMAUSEBURSTSET 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,即可禁止相应的 μDMA通道响应单次请求,只接受猝发请求。读取本寄存器可返回各个通道采用猝发的状态。 假如待传输数据的数目是仲裁数目(猝发大小)的整数倍,那么当完成最后一次传输后,相应的 SET[n] 位将会清零。假如剩余待传输的数据单元少于仲裁数目(猝发大小),那么 μDMA 控制器 会自动将 SET[n] 位清零,并且剩余的数据单元将按照单次请求的方式传输。如果想用猝发方式传 输剩余的数据单元,应将相应位再次置位。假如外设不支持猝发请求模型,则此寄存器中的相关位 不得置位。 详细信息和实例请参考 “请求类型” 在 322页。 DMA 通道采用猝发置位寄存器 (DMAUSEBURSTSET) 基址 0x400F.F000 偏移量 0x018 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 SET[n] 类型 复位 描述 R/W 0x0000.0000 通道[n]的采用猝发置位 值 描述 0 μDMA 通道 [n] 既可响应单次请求也响应猝发请求。 1 μDMA 通道 [n] 只响应猝发请求。 第0位对应于第0号通道,依此类推。该位如上述所描述的将自动清零此 位可能自动清零(如上所述),也可以通过将 DMAUSEBURSTCLR 寄存 器中相应的 CLR[n] 位置位来手动清零。 356 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 11: DMA 通道采用猝发清除寄存器(DMAUSEBURSTCLR),偏移量 0x01C DMAUSEBURSTCLR 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,则 DMAUSEBURSTSET 寄存器中相应的 SET[n] 位即会清零。 DMA 通道采用猝发清除寄存器 (DMAUSEBURSTCLR) 基址 0x400F.F000 偏移量 0x01C 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CLR[n] 类型 WO 复位 - 描述 通道 [n] 的采用猝发清零 值 描述 0 无影响。 1 将某个位置位,即可将 DMAUSEBURSTSET 寄存器中的 SET[n] 清 零,也就是说 μDMA 通道 [n] 可响应单次请求和猝发请求。 一月 06, 2012 357 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 12: DMA 通道请求屏蔽置位寄存器(DMAREQMASKSET),偏移量 0x020 DMAREQMASKSET 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,相应的 μDMA 通 道即不再自动产生请求。读取本寄存器可返回请求屏蔽的状态。当屏蔽某个 μDMA 通道的请求后, 外设将无法请求 μDMA 传输。于是该通道便可用于软件启动的 μDMA 传输流程。 DMA 通道请求屏蔽置位寄存器 (DMAREQMASKSET) 基址 0x400F.F000 偏移量 0x020 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 SET[n] 类型 复位 描述 R/W 0x0000.0000 通道[n]的请求屏蔽置位 值 描述 0 相应通道所关联的外设可以请求 μDMA 传输。 1 相应通道所关联的外设不能请求 μDMA 传输。此时该通道可用于软 件启动的 μDMA 传输。 第 0 位对应于第 0 号通道,依此类推。要想将本寄存器中的某个位清 零,需将 DMAREQMASKCLR 寄存器的相应I CLR[n] 位置位。 358 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 13: DMA 通道请求屏蔽清零寄存器(DMAREQMASKCLR),偏移量 0x024 DMAREQMASKCLR 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,则 DMAREQMASKSET 寄存器中相应的 SET[n] 位即会清零。 DMA 通道请求屏蔽清零寄存器 (DMAREQMASKCLR) 基址 0x400F.F000 偏移量 0x024 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CLR[n] 类型 WO 复位 - 描述 通道 [n] 的请求屏蔽清零 值 描述 0 无影响。 1 将某个位置位,即可将 DMAREQMASKSET 寄存器中的 SET[n] 清 零,也就是说启用了与该通道 [n] 关联的外设,并请求 μDMA 传 输。 一月 06, 2012 359 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 14: DMA 通道启用置位寄存器(DMAENASET),偏移量 0x028 DMAENASET 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,即可启用相应的μDMA 通道。读取本寄存器可返回各通道的启用状态。假如某个通道已经启用,但是屏蔽自动请求 (DMAREQMASKSET),那么这个通道就能用于软件启动的传输。 DMA 通道启用置位寄存器 (DMAENASET) 基址 0x400F.F000 偏移量 0x028 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 SET[n] 类型 复位 描述 R/W 0x0000.0000 通道 [n] 的启用设置 值 描述 0 禁用 µDMA 通道 [n]。 1 启用 µDMA 通道 [n]。 第 0 位对应于第 0 号通道。要想将本寄存器中的某个位清零,需将 DMAENACLR 寄存器的相应 CLR[n] 位置位。 360 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 15: DMA 通道启用清除寄存器(DMAENACLR),偏移量 0x02C DMAENACLR 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,则 DMAENASET 寄存器 中相应的 SET[n] 位即会清零。 DMA 通道启用清除寄存器 (DMAENACLR) 基址 0x400F.F000 偏移量 0x02C 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CLR[n] 类型 WO 复位 - 描述 清除通道 [n] 启用清除 值 描述 0 无影响。 1 将某个位置位,即可将 DMAENASET 寄存器中的 SET[n] 清零,也 就是说通道 [n] 禁用了 μDMA 传输。 注意: 当某一通道完成 μDMA 传输时,控制器会禁用它。 一月 06, 2012 361 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 16: DMA 通道主副置位寄存器(DMAALTSET),偏移量 0x030 DMAALTSET 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,相应的 μDMA 通道即会 采用其副控制结构体。读取本寄存器可返回各通道使用哪一控制结构体。 DMA 通道主副置位寄存器 (DMAALTSET) 基址 0x400F.F000 偏移量 0x030 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 SET[n] 类型 复位 描述 R/W 0x0000.0000 通道 [n] 的副控制结构体置位 值 描述 0 µDMA 通道 [n] 使用主控制结构体。 1 µDMA 通道 [n] 相应通道使用副控制结构体。 第 0 位对应于第 0 号通道,依此类推。要想将本寄存器中的某个位清 零,需将 DMAALTCLR 寄存器的相应 CLR[n] 位置位。 注意: 对于乒乓模式和散聚模式,μDMA 控制器会自动将相应位置 位,选择副控制结构体。 362 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 17: DMA 通道主副清除寄存器(DMAALTCLR),偏移量 0x030 DMAALTCLR 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,则 DMAALTSET 寄存器 中相应的 SET[n] 位即会清零。 DMA 通道主副清除寄存器 (DMAALTCLR) 基址 0x400F.F000 偏移量 0x030 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CLR[n] 类型 WO 复位 - 描述 通道 [n] 的副控制结构体清零 值 描述 0 无影响。 1 将某个位置位,即可将 DMAALTSET 寄存器中的 SET[n] 清零,也 就是说通道 [n] 正在使用主控制结构体。 注意: 对于乒乓模式和散聚模式,μDMA 控制器会自动将相应位置 位,选择副控制结构体。 一月 06, 2012 363 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 18: DMA 通道优先置位寄存器(DMAPRIOSET),偏移量 0x038 DMAPRIOSET 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,相应的 μDMA 通道即会 成为高优先级。读取本寄存器可获知各通道的优先级。 DMA 通道优先置位寄存器 (DMAPRIOSET) 基址 0x400F.F000 偏移量 0x038 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SET[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:0 名称 SET[n] 类型 复位 描述 R/W 0x0000.0000 通道 [n] 的优先级设置 值 描述 0 µDMA 通道 [n] 正在使用默认优先级。 1 µDMA 通道 [n] 正在使用高优先级。 第 0 位对应于第 0 号通道,依此类推。要想将本寄存器中的某个位清 零,需将 DMAPRIOCLR 寄存器的相应 CLR[n] 位置位。 364 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 19: DMA 通道优先清零寄存器(DMAPRIOCLR),偏移量 0x03C DMAPRIOCLR 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,则 DMAPRIOSET 寄存 器中相应的 SET[n] 位即会清零。 DMA 通道优先清零寄存器 (DMAPRIOCLR) 基址 0x400F.F000 偏移量 0x03C 类型 WO, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLR[n] 类型 WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CLR[n] 类型 WO 复位 - 描述 通道[n]的优先级清零 值 描述 0 无影响。 1 将某个位置位,即可将 DMAPRIOSET 寄存器中的 SET[n] 清零,也 就是说通道 [n] 正在使用默认优先级。 一月 06, 2012 365 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 20: DMA 总线错误清除寄存器(DMAERRCLR),偏移量 0x04C DMAERRCLR 寄存器用于读取并清除 μDMA 总线错误状态。如果 μDMA 控制器在执行传输过程中 遭遇总线错误,即会将错误状态标志置位。如果在某个通道上发生了总线错误,μDMA 控制器会自 动禁用该通道。其它通道不受影响,仍然可以继续工作。 DMA 总线错误清除寄存器 (DMAERRCLR) 基址 0x400F.F000 偏移量 0x04C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 ERRCLR 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO R/W1C 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:1 0 名称 保留 ERRCLR 类型 复位 描述 RO 0x0000.000 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 R/W1C 0 μDMA 总线错误状态 值 描述 0 无挂起的总线错误。 1 有挂起的总线错误。 此位写 1 清零。 366 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 21: DMA 通道分配寄存器(DMACHASGN),偏移量 0x500 DMACHASGN 寄存器的每个位分别对应一个 μDMA 通道。将某个位置位,即会选择通道的次功 能,参见 表 7-1 在 321页。 DMA 通道分配寄存器 (DMACHASGN) 基址 0x400F.F000 偏移量 0x500 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CHASGN[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CHASGN[n] 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:0 名称 CHASGN[n] 类型 R/W 复位 - 描述 通道 [n] 的分配选择 值 描述 0 按照通道的主功能工作。 1 按照通道的次功能工作。 一月 06, 2012 367 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 22: DMA 外设标识寄存器 0(DMAPeriphID0),偏移量 0xFE0 DMAPeriphIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA 外设标识寄存器 0 (DMAPeriphID0) 基址 0x400F.F000 偏移量 0xFE0 类型 RO, 复位 0x0000.0030 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 位/域 31:8 7:0 名称 保留 PID0 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x30 μDMA 外设标识寄存器 [7:0] 软件可通过此寄存器实现标准的交叉外设识别。 368 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 23: DMA 外设标识寄存器 1(DMAPeriphID1),偏移量 0xFE4 DMAPeriphIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA 外设标识寄存器 1 (DMAPeriphID1) 基址 0x400F.F000 偏移量 0xFE4 类型 RO, 复位 0x0000.00B2 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID1 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 位/域 31:8 7:0 名称 保留 PID1 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0xB2 μDMA 外设标识寄存器 [15:8] 软件可通过此寄存器实现标准的交叉外设识别。 一月 06, 2012 369 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 24: DMA 外设标识寄存器 2(DMAPeriphID2),偏移量 0xFE8 DMAPeriphIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA 外设标识寄存器 2 (DMAPeriphID2) 基址 0x400F.F000 偏移量 0xFE8 类型 RO, 复位 0x0000.000B 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 位/域 31:8 7:0 名称 保留 PID2 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0B μDMA 外设 ID 寄存器 [23:16] 软件可通过此寄存器实现标准的交叉外设识别。 370 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 25: DMA 外设标识寄存器 3(DMAPeriphID3),偏移量 0xFEC DMAPeriphIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA 外设标识寄存器 3 (DMAPeriphID3) 基址 0x400F.F000 偏移量 0xFEC 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID3 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID3 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 μDMA 外设标识寄存器 [31:24] 软件可通过此寄存器实现标准的交叉外设识别。 一月 06, 2012 371 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 26: DMA 外设标识寄存器 4(DMAPeriphID4),偏移量 0xFD0 DMAPeriphIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA 外设标识寄存器 4 (DMAPeriphID4) 基址 0x400F.F000 偏移量 0xFD0 类型 RO, 复位 0x0000.0004 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID4 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 位/域 31:8 7:0 名称 保留 PID4 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x04 μDMA 外设 ID 寄存器 软件可通过此寄存器实现标准的交叉外设识别。 372 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 27: DMA PrimeCell 标识寄存器 0(DMAPCellID0),偏移量 0xFF0 DMAPCellIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA PrimeCell 标识寄存器 0 (DMAPCellID0) 基址 0x400F.F000 偏移量 0xFF0 类型 RO, 复位 0x0000.000D 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 位/域 31:8 7:0 名称 保留 CID0 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0D μDMA PrimeCell 标识寄存器 [7:0] 提供软件一个标准的跨外设标识系统。 一月 06, 2012 373 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 28: DMA PrimeCell 标识寄存器 1(DMAPCellID1),偏移量 0xFF4 DMAPCellIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA PrimeCell 标识寄存器 1 (DMAPCellID1) 基址 0x400F.F000 偏移量 0xFF4 类型 RO, 复位 0x0000.00F0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID1 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 位/域 31:8 7:0 名称 保留 CID1 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0xF0 μDMA PrimeCell 标识寄存器 [15:8] 提供软件一个标准的跨外设标识系统。 374 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 29: DMA PrimeCell 标识寄存器 2(DMAPCellID2),偏移量 0xFF8 DMAPCellIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA PrimeCell 标识寄存器 2 (DMAPCellID2) 基址 0x400F.F000 偏移量 0xFF8 类型 RO, 复位 0x0000.0005 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 位/域 31:8 7:0 名称 保留 CID2 类型 RO RO 复位 0x00 0x05 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 μDMA PrimeCell ID 寄存器 [23:16] 提供软件一个标准的跨外设标识系统。 一月 06, 2012 375 Texas Instruments-生产数据 微型直接存储器访问 (μDMA) 寄存器 30: DMA PrimeCell 标识寄存器 3(DMAPCellID3),偏移量 0xFFC DMAPCellIDn 寄存器均为硬编码的只读寄存器,寄存器的位域决定复位值。 DMA PrimeCell 标识寄存器 3 (DMAPCellID3) 基址 0x400F.F000 偏移量 0xFFC 类型 RO, 复位 0x0000.00B1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID3 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 位/域 31:8 7:0 名称 保留 CID3 类型 RO RO 复位 0x00 0xB1 描述 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 μDMA PrimeCell 标识寄存器 [31:24] 为软件提供一个标准的跨外设标识系统。 376 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 8 通用输入/输出端口 (GPIO) GPIO 模块包括 9 个物理 GPIO 模块,每个模块对应一个单独的 GPIO 端口(端口 A、端口 B、端 口 C、端口 D、端口 E、端口 F、端口 G、端口 H、端口 J)。GPIO 模块支持高达 65 个可编程的 输入/输出管脚。具体取决于正在使用的外设。 GPIO 模块具有以下的特性: ■ 高达 65 个 GPIO,具体取决于外设的配置 ■ 高度灵活的复用管脚,可以用作 GPIO 或是一种或多种的外设功能 ■ 配置为输入模式可承受 5 V 电压 ■ 每两个时钟周期的快速切换能力 ■ 两种方式访问 GPIO 端口:或者通过具有更好连续访问性能的高级高性能总线 (AHB);或者通过 传统的高级外设总线 (APB),使用现有的代码来实现向后兼容能力。 ■ 可编程控制 GPIO 中断 – 屏蔽中断发生 – 边沿触发(上升沿和/或下降沿) – (高或低)电平触发 ■ 在读和写操作中通过地址线进行位屏蔽 ■ 可用于启动一个 ADC 采样序列或 ■ 配置为数字输入的管脚均为施密特触发 ■ 可编程控制 GPIO 管脚配置 – 弱上拉或下拉电阻 – 数字通信时可配置为 2 mA、4 mA 或 8 mA 驱动电流;对于需要大电流的应用,最多四个管 脚承载 18 mA – 8 mA 驱动的斜率控制 – 开漏启用 – 数字输入启用 8.1 信号描述 GPIO 信号具有复用硬件功能。下面的表格列出了所有 GPIO 管脚及其模拟和数字复用功能。AINx 和 VREFA 管脚不能直接承受 5 V 的电压,必须通过隔离电路才能和他们相连。这些管脚的配置方式 为:将 GPIO 数字使能 (GPIODEN) 寄存器中相应的 DEN 位清零,并将 GPIO 模拟模块选择寄存器 (GPIOAMSEL) 寄存器中相应的 AMSEL 位置位。其余的模拟信号都可耐受 5 V,可以直接和其他电 路连接(C0-、C0+、C1-、C1+、C2-、C2+、USB0VBUS、USB0ID)。这些信号的配置方式为: 将 GPIO 数字使能 (GPIODEN) 寄存器中相应的 DEN 位清零。当配置成输入时,除了 PB0 和 PB1 最高可承受 3.6 V,其他所有 GPIO 管脚都可以承受 5 V。将 GPIO 备用功能选择 (GPIOAFSEL) 一月 06, 2012 377 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 和 GPIODEN 寄存器中相应的位置位并对 GPIO 端口控制 (GPIOPCTL) 寄存器中的 PMCx 进行配 置(如下表所示的数字编码),可以启用数字复用硬件功能。请注意,每个管脚必须单独编程;表 格中的列并没有任何分组的意思。表中的灰色单元格代表相应 GPIO 管脚的默认值。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-1. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 表 8-2. GPIO 管脚和复用功能 (100LQFP) 数字功能(GPIOPCTL PMCx 位域编码)a IO 管脚 模拟功能 1 2 3 4 5 6 7 8 9 10 11 PA0 26 - U0Rx - - - - - - I2C1SCL U1Rx - - PA1 27 - U0Tx - - - - - - I2C1SDA U1Tx - - PA2 28 - SSI0Clk - - PWM4 - - - - I2S0RXSD - - PA3 29 - SSI0Fss - - PWM5 - - - - I2S0RXMCLK - - PA4 30 - SSI0Rx - - PWM6 CAN0Rx - - - I2S0TXSCK - - PA5 31 - SSI0Tx - - PWM7 CAN0Tx - - - I2S0TXWS - - PA6 34 - I2C1SCL CCP1 - PWM0 PWM4 CAN0Rx - USB0EPEN U1CTS - - PA7 35 - I2C1SDA CCP4 - PWM1 PWM5 CAN0Tx CCP3 USB0PFLT U1DCD - - PB0 66 USB0ID CCP0 PWM2 - - U1Rx - - - - - - PB1 67 USB0VBUS CCP2 PWM3 - CCP1 U1Tx - - - - - - PB2 72 - I2C0SCL IDX0 - CCP3 CCP0 - - USB0EPEN - - - PB3 65 - I2C0SDA Fault0 - Fault3 - - - USB0PFLT - - - PB4 92 AIN10 - - - U2Rx CAN0Rx IDX0 U1Rx EPI0S23 - - - C0- PB5 91 AIN11 C0o CCP5 CCP6 CCP0 CAN0Tx CCP2 U1Tx EPI0S22 - - - C1- PB6 90 VREFA CCP1 CCP7 C0o Fault1 IDX0 CCP5 - - I2S0TXSCK - - C0+ PB7 89 - - - - NMI - - - - - - - PC0 80 - - - TCK - - - - - - - - SWCLK PC1 79 - - - TMS - - - - - - - - SWDIO PC2 78 - - - TDI - - - - - - - - PC3 77 - - - TDO - - - - - - - - SWO PC4 25 - CCP5 PhA0 - PWM6 CCP2 CCP4 - EPI0S2 CCP1 - - PC5 24 C1+ CCP1 C1o C0o Fault2 CCP3 USB0EPEN - EPI0S3 - - - 378 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 8-2. GPIO 管脚和复用功能 (100LQFP)(续) 数字功能(GPIOPCTL PMCx 位域编码)a IO 管脚 模拟功能 1 2 3 4 5 6 7 8 9 10 11 PC6 23 C2+ CCP3 PhB0 C2o PWM7 U1Rx CCP0 USB0PFLT EPI0S4 - - - PC7 22 C2- CCP4 PhB0 - CCP0 U1Tx USB0PFLT C1o EPI0S5 - - - PD0 10 AIN15 PWM0 CAN0Rx IDX0 U2Rx U1Rx CCP6 - I2S0RXSCK U1CTS - - PD1 11 AIN14 PWM1 CAN0Tx PhA0 U2Tx U1Tx CCP7 - I2S0RXWS U1DCD CCP2 PhB1 PD2 12 AIN13 U1Rx CCP6 PWM2 CCP5 - - - EPI0S20 - - - PD3 13 AIN12 U1Tx CCP7 PWM3 CCP0 - - - EPI0S21 - - - PD4 97 AIN7 CCP0 CCP3 - - - - - I2S0RXSD U1RI EPI0S19 - PD5 98 AIN6 CCP2 CCP4 - - - - - I2S0RXMCLK U2Rx EPI0S28 - PD6 99 AIN5 Fault0 - - - - - - I2S0TXSCK U2Tx EPI0S29 - PD7 100 AIN4 IDX0 C0o CCP1 - - - - I2S0TXWS U1DTR EPI0S30 - PE0 74 - PWM4 SSI1Clk CCP3 - - - - EPI0S8 USB0PFLT - - PE1 75 - PWM5 SSI1Fss Fault0 CCP2 CCP6 - - EPI0S9 - - - PE2 95 AIN9 CCP4 SSI1Rx PhB1 PhA0 CCP2 - - EPI0S24 - - - PE3 96 AIN8 CCP1 SSI1Tx PhA1 PhB0 CCP7 - - EPI0S25 - - - PE4 6 AIN3 CCP3 - - Fault0 U2Tx CCP2 - - I2S0TXWS - - PE5 5 AIN2 CCP5 - - - - - - - I2S0TXSD - - PE6 2 AIN1 PWM4 C1o - - - - - - U1CTS - - PE7 1 AIN0 PWM5 C2o - - - - - - U1DCD - - PF0 47 - CAN1Rx PhB0 PWM0 - - - - I2S0TXSD U1DSR - - PF1 61 - CAN1Tx IDX1 PWM1 - - - - I2S0TXMCLK U1RTS CCP3 - PF2 60 - LED1 PWM4 - PWM2 - - - - SSI1Clk - - PF3 59 - LED0 PWM5 - PWM3 - - - - SSI1Fss - - PF4 42 - CCP0 C0o - Fault0 - - - EPI0S12 SSI1Rx - - PF5 41 - CCP2 C1o - - - - - EPI0S15 SSI1Tx - - PG0 19 - U2Rx PWM0 I2C1SCL PWM4 - - USB0EPEN EPI0S13 - - - PG1 18 - U2Tx PWM1 I2C1SDA PWM5 - - - EPI0S14 - - - PG7 36 - PhB1 - - PWM7 - - - CCP5 EPI0S31 - - PH0 86 - CCP6 PWM2 - - - - - EPI0S6 PWM4 - - PH1 85 - CCP7 PWM3 - - - - - EPI0S7 PWM5 - - PH2 84 - IDX1 C1o - Fault3 - - - EPI0S1 - - - PH3 83 - PhB0 Fault0 - USB0EPEN - - - EPI0S0 - - - PH4 76 - - - - USB0PFLT - - - EPI0S10 - - SSI1Clk PH5 63 - - - - - - - - EPI0S11 - Fault2 SSI1Fss PH6 62 - - - - - - - - EPI0S26 - PWM4 SSI1Rx PH7 15 - - - - - - - - EPI0S27 - PWM5 SSI1Tx PJ0 14 - - - - - - - - EPI0S16 - PWM0 I2C1SCL PJ1 87 - - - - - - - - EPI0S17 USB0PFLT PWM1 I2C1SDA PJ2 39 - - - - - - - - EPI0S18 CCP0 Fault0 - PJ3 50 - - - - - - - - EPI0S19 U1CTS CCP6 - PJ4 52 - - - - - - - - EPI0S28 U1DCD CCP4 - 一月 06, 2012 379 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 表 8-2. GPIO 管脚和复用功能 (100LQFP)(续) 数字功能(GPIOPCTL PMCx 位域编码)a IO 管脚 模拟功能 1 2 3 4 5 6 7 8 9 10 11 PJ5 53 - - - - - - - - EPI0S29 U1DSR CCP2 - PJ6 54 - - - - - - - - EPI0S30 U1RTS CCP1 - PJ7 55 - - - - - - - - - U1DTR CCP0 - a. 带灰色阴影的数字信号是相应 GPIO 管脚的上电默认值。 表 8-3. GPIO 管脚和复用功能 (108BGA) 数字功能(GPIOPCTL PMCx 位域编码)a IO 管脚 模拟功能 1 2 3 4 5 6 7 8 9 10 PA0 L3 - U0Rx - - - - - - I2C1SCL U1Rx - PA1 M3 - U0Tx - - - - - - I2C1SDA U1Tx - PA2 M4 - SSI0Clk - - PWM4 - - - - I2S0RXSD - PA3 L4 - SSI0Fss - - PWM5 - - - - I2S0RXMCLK - PA4 L5 - SSI0Rx - - PWM6 CAN0Rx - - - I2S0TXSCK - PA5 M5 - SSI0Tx - - PWM7 CAN0Tx - - - I2S0TXWS - PA6 L6 - I2C1SCL CCP1 - PWM0 PWM4 CAN0Rx - USB0EPEN U1CTS - PA7 M6 - I2C1SDA CCP4 - PWM1 PWM5 CAN0Tx CCP3 USB0PFLT U1DCD - PB0 E12 USB0ID CCP0 PWM2 - - U1Rx - - - - - PB1 D12 USB0VBUS CCP2 PWM3 - CCP1 U1Tx - - - - - PB2 A11 - I2C0SCL IDX0 - CCP3 CCP0 - - USB0EPEN - - PB3 E11 - I2C0SDA Fault0 - Fault3 - - - USB0PFLT - - PB4 A6 AIN10 - - - U2Rx CAN0Rx IDX0 U1Rx EPI0S23 - - C0- PB5 B7 AIN11 C0o CCP5 CCP6 CCP0 CAN0Tx CCP2 U1Tx EPI0S22 - - C1- PB6 A7 VREFA CCP1 CCP7 C0o Fault1 IDX0 CCP5 - C0+ - I2S0TXSCK - PB7 A8 - - - - NMI - - - - - - PC0 A9 - - - TCK - - - - - - - SWCLK PC1 B9 - - - TMS - - - - - - - SWDIO PC2 B8 - - - TDI - - - - - - - PC3 A10 - - - TDO - - - - - - - SWO PC4 L1 - CCP5 PhA0 - PWM6 CCP2 CCP4 - EPI0S2 CCP1 - PC5 M1 C1+ CCP1 C1o C0o Fault2 CCP3 USB0EPEN - EPI0S3 - - PC6 M2 C2+ CCP3 PhB0 C2o PWM7 U1Rx CCP0 USB0PFLT EPI0S4 - - PC7 L2 C2- CCP4 PhB0 - CCP0 U1Tx USB0PFLT C1o EPI0S5 - - PD0 G1 AIN15 PWM0 CAN0Rx IDX0 U2Rx U1Rx CCP6 - I2S0RXSCK U1CTS - PD1 G2 AIN14 PWM1 CAN0Tx PhA0 U2Tx U1Tx CCP7 - I2S0RXWS U1DCD CCP2 PD2 H2 AIN13 U1Rx CCP6 PWM2 CCP5 - - - EPI0S20 - - PD3 H1 AIN12 U1Tx CCP7 PWM3 CCP0 - - - EPI0S21 - - 11 - - - - - - PhB1 - 380 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 8-3. GPIO 管脚和复用功能 (108BGA)(续) 数字功能(GPIOPCTL PMCx 位域编码)a IO 管脚 模拟功能 1 2 3 4 5 6 7 8 9 10 11 PD4 B5 AIN7 CCP0 CCP3 - - - - - I2S0RXSD U1RI EPI0S19 - PD5 C6 AIN6 CCP2 CCP4 - - - - - I2S0RXMCLK U2Rx EPI0S28 - PD6 A3 AIN5 Fault0 - - - - - - I2S0TXSCK U2Tx EPI0S29 - PD7 A2 AIN4 IDX0 C0o CCP1 - - - - I2S0TXWS U1DTR EPI0S30 - PE0 B11 - PWM4 SSI1Clk CCP3 - - - - EPI0S8 USB0PFLT - - PE1 A12 - PWM5 SSI1Fss Fault0 CCP2 CCP6 - - EPI0S9 - - - PE2 A4 AIN9 CCP4 SSI1Rx PhB1 PhA0 CCP2 - - EPI0S24 - - - PE3 B4 AIN8 CCP1 SSI1Tx PhA1 PhB0 CCP7 - - EPI0S25 - - - PE4 B2 AIN3 CCP3 - - Fault0 U2Tx CCP2 - - I2S0TXWS - - PE5 B3 AIN2 CCP5 - - - - - - - I2S0TXSD - - PE6 A1 AIN1 PWM4 C1o - - - - - - U1CTS - - PE7 B1 AIN0 PWM5 C2o - - - - - - U1DCD - - PF0 M9 - CAN1Rx PhB0 PWM0 - - - - I2S0TXSD U1DSR - - PF1 H12 - CAN1Tx IDX1 PWM1 - - - - I2S0TXMCLK U1RTS CCP3 - PF2 J11 - LED1 PWM4 - PWM2 - - - - SSI1Clk - - PF3 J12 - LED0 PWM5 - PWM3 - - - - SSI1Fss - - PF4 K4 - CCP0 C0o - Fault0 - - - EPI0S12 SSI1Rx - - PF5 K3 - CCP2 C1o - - - - - EPI0S15 SSI1Tx - - PG0 K1 - U2Rx PWM0 I2C1SCL PWM4 - - USB0EPEN EPI0S13 - - - PG1 K2 - U2Tx PWM1 I2C1SDA PWM5 - - - EPI0S14 - - - PG7 C10 - PhB1 - - PWM7 - - - CCP5 EPI0S31 - - PH0 C9 - CCP6 PWM2 - - - - - EPI0S6 PWM4 - - PH1 C8 - CCP7 PWM3 - - - - - EPI0S7 PWM5 - - PH2 D11 - IDX1 C1o - Fault3 - - - EPI0S1 - - - PH3 D10 - PhB0 Fault0 - USB0EPEN - - - EPI0S0 - - - PH4 B10 - - - - USB0PFLT - - - EPI0S10 - - SSI1Clk PH5 F10 - - - - - - - - EPI0S11 - Fault2 SSI1Fss PH6 G3 - - - - - - - - EPI0S26 - PWM4 SSI1Rx PH7 H3 - - - - - - - - EPI0S27 - PWM5 SSI1Tx PJ0 F3 - - - - - - - - EPI0S16 - PWM0 I2C1SCL PJ1 B6 - - - - - - - - EPI0S17 USB0PFLT PWM1 I2C1SDA PJ2 K6 - - - - - - - - EPI0S18 CCP0 Fault0 - PJ3 M10 - - - - - - - - EPI0S19 U1CTS CCP6 - PJ4 K11 - - - - - - - - EPI0S28 U1DCD CCP4 - PJ5 K12 - - - - - - - - EPI0S29 U1DSR CCP2 - PJ6 L10 - - - - - - - - EPI0S30 U1RTS CCP1 - PJ7 L12 - - - - - - - - - U1DTR CCP0 - a. 带灰色阴影的数字信号是相应 GPIO 管脚的上电默认值。 一月 06, 2012 381 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 8.2 功能描述 每个 GPIO 端口都是同一物理模块的独立硬件实例(请参考 图 8-1 在 382页 和 图 8-2 在 383页)。 LM3S9B92 微控制器包含 9 个端口,因此会有 9 个这种物理 GPIO 模块。请注意,并不是所有的管 脚都分布在了每一个模块上。对于片内外设模块来说,一些 GPIO 管脚可作为 I/O 信号使用。GPIO 管脚的复用硬件功能请参考 表 24-5 在 1178页。 图 8-1. 数字 I/O 口 端口 控制 GPIOPCTL 提交 控制 GPIOLOCK GPIOCR 模式 控制 GPIOAFSEL 外设 0 外设 1 外设 n MUX 复用输入 复用输出 复用输出启用 数据 控制 GPIODATA GPIODIR GPIO 输入 GPIO 输出 GPIO 输出启用 MUX MUX DEMUX 管脚输入 管脚输出 管脚输出 启用 数字 I/ O 管脚 封装 I/O 管脚 中断 中断 控制 GPIOIS GPIOIBE GPIOIEV GPIOIM GPIORIS GPIOMIS GPIOICR 管脚 控制 GPIODR2R GPIODR4R GPIODR8R GPIOSLR GPIOPUR GPIOPDR GPIOODR GPIODEN 识别寄存器 GPIOPeriphID0 GPIOPeriphID1 GPIOPeriphID2 GPIOPeriphID3 GPIOPeriphID4 GPIOPeriphID5 GPIOPeriphID6 GPIOPeriphID7 GPIOPCellID0 GPIOPCellID1 GPIOPCellID2 GPIOPCellID3 382 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 图 8-2. 模拟/数字 I/O 口 端口 控制 GPIOPCTL 提交 控制 GPIOLOCK GPIOCR 模式 控制 GPIOAFSEL 外设 0 外设 1 外设 n MUX 复用输入 复用输出 复用输出启用 数据 控制 GPIODATA GPIODIR GPIO 输入 GPIO 输出 GPIO 输出启用 MUX MUX DEMUX 管脚输入 管脚输出 管脚输出启用 中断 控制 GPIOIS GPIOIBE 中断 GPIOIEV GPIOIM GPIORIS GPIOMIS GPIOICR 管脚 控制 GPIODR2R GPIODR4R GPIODR8R GPIOSLR GPIOPUR GPIOPDR GPIOODR GPIODEN GPIOAMSEL 识别寄存器 GPIOPeriphID0 GPIOPeriphID1 GPIOPeriphID2 GPIOPeriphID3 GPIOPeriphID4 GPIOPeriphID5 GPIOPeriphID6 GPIOPeriphID7 GPIOPCellID0 GPIOPCellID1 GPIOPCellID2 GPIOPCellID3 模拟/数字 I/O 管脚 模拟电路 ADC (适用于连接到 ADC 输入 MUX 的 GPIO 管脚) 隔离电路 封装 I/O 管脚 8.2.1 8.2.1.1 8.2.1.2 数据控制 数据控制寄存器允许软件配置 GPIO 的操作模式。当数据寄存器捕获输入数据时,数据方向寄存器 将 GPIO 配置为输入;当数据寄存器通过端口输出数据时,数据方向寄存器将 GPIO 配置为输出。 小心 – 用户可以建立一个软件序列来阻止调试器连接到 Stellaris® 微控制器。如果将程序代码加载 到 Flash 中会立即将 JTAG 管脚变成其 GPIO 功能,那么在 JTAG 管脚功能切换之前,调试器将没 有足够的时间去连接和终止控制器。结果调试器可能被锁定在该部分外。为了避免这个问题,可以 使用一个基于外部或软件触发器的软件程序来恢复 JTAG 功能。 数据方向操作 GPIO 方向 (GPIODIR) 寄存器(请参考 391页)用来将每个独立的管脚配置为输入或输出当数据方 向寄存器里的位被清零时被配置为输入,相应的数据寄存器位便可以捕获并储存GPIO端口的值。当 数据方向寄存器里的位被置位时被配置为输出,数据寄存器里相应的位便可以驱动GPIO端口。 数据寄存器的操作 为了提高软件的效率,通过将地址总线的位 [9:2] 用作屏蔽位,可以对 GPIO端口的 GPIO 数据 (GPIODATA) 寄存器(请参考 390页)中的各个位进行修改。通过这种方式软件驱动程序就可以以 一条指令修改任何一个GPIO管脚,而不影响其他管脚的状态。这种方式与通过“读-修改-写”来操 作GPIO管脚的典型做法不同。为了实现这种功能,GPIODATA 寄存器覆盖了存储器映射中的 256 个单元。 一月 06, 2012 383 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 8.2.2 在写入操作中,如果与数据位相关联的地址位被置位,那么 GPIODATA 寄存器的值将发生变化。 如果地址位被清零,那么数据位保持不变。 例如,将 0xEB 写入地址 GPIODATA + 0x98 处,结果将如 图 8-3 所示。其中,u 表示写入操作没 有改变数据。 图 8-3. GPIODATA 写入实例 ADDR [9:2] 9 8 7 6 5 4 3 2 1 0 0x098 0 0 1 0 0 1 1 0 0 0 0xEB 1 1 1 0 1 0 1 1 GPIODATA u u 1 u u 0 1 u 76543210 在读操作过程中,如果与数据位相关联的地址位被置位,那么就可以读取到数据寄存器里的值。如 果与数据位相关联的地址位被清零,那么不管数据寄存器里实际值是什么都读做0。例如,读取地址 GPIODATA+0x0C4 处的值,结果如 图 8-4 所示。 图 8-4. GPIODATA 读取实例 ADDR[9:2] 9 8 7 6 5 4 3 2 1 0 0x0C4 0 0 1 1 0 0 0 1 0 0 GPIODATA 1 0 1 1 1 1 1 0 返回值 0 0 1 1 0 0 0 0 76543210 中断控制 每个 GPIO 端口的中断能力都由 7 个寄存器控制。这些寄存器可以用于选择中断源、极性以及边沿 属性。当一个或多个输入引发中断时,只有一个中断输出被送到整个GPIO端口的中断控制器。对于 边沿触发,为了让进一步的中断可用,软件必须清除该中断。对于电平触发,必须保持住外部电平 的状态才能使控制器识别中断的发生。 以下三个寄存器用来定义中断触发的边沿或感知: ■ GPIO 中断检测 (GPIOIS) 寄存器(请参考 392页) ■ GPIO 中断双边沿 (GPIOIBE) 寄存器(请参考 393页) ■ GPIO 中断事件 (GPIOIEV) 寄存器(请参考 394页) 通过 GPIO 中断屏蔽 (GPIOIM) 寄存器(请参考 395页)可以启用/禁用中断。 当产生中断条件时,可以在 GPIO 原始中断状态 (GPIORIS) 和 GPIO 屏蔽后的中断状态 (GPIOMIS) 寄存器中观察到中断信号的状态(请参考 396页 and 397页)。顾名思义,GPIOMIS 寄存器仅显示 允许被传送到中断控制器的中断条件。GPIORIS 寄存器则表示 GPIO 管脚满足的中断条件,但不一 定发送到控制器。 384 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 8.2.2.1 8.2.3 8.2.4 8.2.5 8.2.6 向 GPIO 中断清零 (GPIOICR) 寄存器(请参考 398页)中的位写 1 可以清除相应的中断。 在设置中断控制寄存器(GPIOIS、GPIOIBE 或 GPIOIEV) 时,应该保持中断的屏蔽状态(GPIOIM 清零)。如果相应的位没有屏蔽,那么向中断控制寄存器中写入任何值都有可能产生伪中断。 ADC 触发源 除了提供 GPIO 功能外,PB4 也可作为 ADC 的外部触发。如果 PB4 被配置为非屏蔽的中断管脚 (GPIOIM 中相应的位被置位),端口 B 产生中断,就会发送一个外部的触发信号到 ADC。此时如 果 ADC 事件复用选择 (ADCEMUX) 寄存器被配置为使用外部触发器,那么就会启动 ADC 转换。 请参考 597页。 如果没有其它端口 B 的管脚来产生中断,那么中断 0~31 设置使能 (EN0) 寄存器可以禁用能端口 B 中断,并且 ADC 中断可用来读回转换的数据。否则,端口 B 中断处理器需要忽略和清除 PB4 上的 中断,并等待 ADC 中断,或 ADC 中断必须用 EN0 寄存器禁用,端口 B 中断处理器必须查询 ADC 寄存器直至转换结束。更多信息请参考 129页。 模式控制 GPIO 管脚既可以被软件控制也可以被硬件控制。大部分的管脚默认是软件控制,此时 GPIODATA 寄存器用来读写相应的管脚。当 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请参考 399页)启用 硬件控制时,管脚状态将由它的复用(即外设)功能控制。 更多的管脚复用功能选择由 GPIO 端口控制 (GPIOPCTL) 寄存器提供,该寄存器可以为每个 GPIO 选择其中一个外设功能。关于这些配置的详细信息,请参阅 表 24-5 在 1178页。 注意: 如果一个管脚被用作 ADC 的输入,那么 GPIOAMSEL 寄存器中相应的位必须置位,禁用 模拟隔离电路。 提交控制 GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请 参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使能 (GPIODEN) 寄存器(请参阅 410页)中 受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有 被锁定,同时 GPIO 确认 (GPIOCR) 寄存器(请参阅 413页)中相应的位被置位。 管脚 (Pad) 控制 可以根据应用程序的要求用软件来配置 GPIO 管脚。管脚控制寄存器包括 GPIODR2R、GPIODR4R、 GPIODR8R、GPIOODR、GPIOPUR、GPIOPDR、GPIOSLR 以及 GPIODEN 寄存器。这些寄存 器控制着管脚的驱动电流大小、开漏配置、上拉下拉电阻选择、斜率控制和数字输入启用。 对于一些特殊的,需要大电流的应用,GPIO 的输出缓冲器可能会用到下面这些限制。如果将 GPIO 管脚配置为 8 mA 的输出驱动,那么可以使用四个这样的 GPIO 输出,最大可承受 18-mA 的灌入电 流。在 18-mA 灌入电流负载时,VOL 的值被指定为 1.2 V。必须保障物理封装或 BGA 管脚组每侧 的大电流管脚不超过 2 个,整个封装的大电流 GPIO 管脚不超过 4 个。 标识 复位时配置的标识寄存器允许软件将模块当作GPIO块进行检测和识别。标识寄存器包括 GPIOPeriphID0-GPIOPeriphID7 寄存器以及 GPIOPCellID0-GPIOPCellID3 寄存器。 一月 06, 2012 385 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 8.3 初始化及配置 GPIO 模块可以通过两个不同的存储器槽访问。比较老的一种称为先进外设总线 (APB),向后兼容 以前的 Stellaris 产品。另外一种是先进高端总线 (AHB),它和 APB 一样拥有相同的寄存器映射,但 是提供了比 APB 更好的访问性能。但是这两种访问方式只能选择一种使用。为指定 GPIO 端口启用 的槽由 GPIOHBCTL 寄存器(请参考 220页)中相应的位来控制。 要使用特定 GPIO 端口的管脚,必须先将 RCGC2 寄存器(请参考 271页)中相应的 GPIO 端口位 域 (GPIOn) 置位,以启用该端口的时钟信号。 除非另行配置,内部上电复位时,所有的 GPIO 管脚都被配置成无驱动模式(三态):除了 表 8-1 在 378页 中显示的管脚,GPIOAFSEL=0、GPIODEN=0、GPIOPDR=0 且 GPIOPUR=0。表 8-4 在 386页 列出了 GPIO 端口的所有可能的配置以及实现这些配置的控制寄存器设置。表 8-5 在 386页 显示了为 GPIO 端口的管脚 2 配置上升沿中断的方法。 表 8-4. GPIO 端口配置示例 配置 数字输入 (GPIO) GPIO 寄存器位值a AFSEL DIR 0 0 数字输出 (GPIO) 0 1 开漏输出 (GPIO) 0 1 开漏输入/输出 (I2C) 1 X 数字输入(定时器 1 X CCP) 数字输入 (QEI) 数字输出 (PWM) 1 X 1 X 数字输出 (定时器 1 X PWM) 数字输入/输出 (SSI) 1 X 数字输入/输出 (UART) 1 X 模拟输入(比较器) 0 0 数字输出(比较器) 1 X a. X = 忽略(无关位) ? = 可以是 0 或 1,具体取决于配置。 ODR 0 0 1 1 0 0 0 0 0 0 0 0 DEN 1 1 1 1 1 1 1 1 1 1 0 1 PUR ? ? X X ? ? ? ? ? ? 0 ? PDR ? ? X X ? ? ? ? ? ? 0 ? DR2R X ? ? ? X X ? ? ? ? X ? DR4R X ? ? ? X X ? ? ? ? X ? DR8R X ? ? ? X X ? ? ? ? X ? SLR X ? ? ? X X ? ? ? ? X ? 表 8-5. GPIO 中断配置示例 寄存器 管脚 2 位的值a 期望的中断事件触发 7 6 GPIOIS 0-边沿触发 1-电平触发 X X GPIOIBE 0-单边沿触发 X X 1-双边沿触发 GPIOIEV 0 = 低电平,或下降沿 X X 1 = 高电平,或上升沿 GPIOIM 0-屏蔽 1-没有屏蔽 0 0 a. X = 忽略(无关位) 5 X X X 0 4 X X X 0 3 X X X 0 2 0 0 1 1 1 X X X 0 0 X X X 0 386 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 8.4 寄存器映射 表 8-7 在 388页 列出了 GPIO 寄存器。每一个 GPIO 端口都可通过两种总线槽访问。比较老的一种 称为先进外设总线 (APB),向后兼容以前的 Stellaris 产品。另外一种是先进高端总线 (AHB),它和 APB 总线一样拥有相同的寄存器映射,但是提供了更好的连续访问性能。 重要: 本章的 GPIO 寄存器在每个 GPIO 块中都是相同的,但是根据块的不同,8 个位可能并 不是全部与 GPIO 端口相连。向未连接的位写入数据没有任何效果,而读取未连接的位 的数据没有任何意义。 所列的偏移量都是相对于 GPIO 端口基址的 16 进制寄存器地址增量: ■ GPIO 端口 A (APB): 0x4000.4000 ■ GPIO 端口 A (AHB): 0x4005.8000 ■ GPIO 端口 B (APB): 0x4000.5000 ■ GPIO 端口 B (AHB): 0x4005.9000 ■ GPIO 端口 C (APB): 0x4000.6000 ■ GPIO 端口 C (AHB): 0x4005.A000 ■ GPIO 端口 D (APB): 0x4000.7000 ■ GPIO 端口 D (AHB): 0x4005.B000 ■ GPIO 端口 E (APB): 0x4002.4000 ■ GPIO 端口 E (AHB): 0x4005.C000 ■ GPIO 端口 F (APB): 0x4002.5000 ■ GPIO 端口 F (AHB): 0x4005.D000 ■ GPIO 端口 G (APB): 0x4002.6000 ■ GPIO 端口 G (AHB): 0x4005.E000 ■ GPIO 端口 H (APB): 0x4002.7000 ■ GPIO 端口 H (AHB): 0x4005.F000 ■ GPIO 端口 J (APB): 0x4003.D000 ■ GPIO 端口 J (AHB): 0x4006.0000 注意配置这些寄存器之前必须先启用 GPIO 模块的时钟(请参考 271页)。启用 GPIO 模块时钟以 后,必须等待三个系统时钟才能访问 GPIO 模块的寄存器。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-6. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 除了 NMI 管脚和四个 JTAG/SWD 管脚(PB7 和 PC[3:0])之外,所有 GPIO 管脚的 GPIOCR 寄 存器的默认状态是 RO。GPIOCR 寄存器当前仅保护这五个 GPIO 管脚。正因为这样,GPIO 端口 B7 和 GPIO 端口 C [3:0] 的寄存器类型是 R/W。 除了 NMI 和四个 JTAG/SWD 管脚(PB7 和 PC[3:0])之外,所有 GPIO 管脚 GPIOCR 寄存器复 位值为 0x0000.00FF。为了确保 JTAG 端口不会被意外地编程为 GPIO 管脚,PC[3:0] 管脚默认 是锁定的,以防止犯错。同样,为了确保 NMI 管脚不会意外的编程为 GPIO 管脚,PB7 管脚默认也 一月 06, 2012 387 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 是锁定的,以防止犯错。因此,GPIO 端口 B 的 GPIOCR 寄存器默认复位值为 0x0000007F。而 GPIO 端口 C 的 GPIOCR 寄存器默认复位值为 0x000000F0。 表 8-7. GPIO 寄存器映射 偏移量 名称 0x000 GPIODATA 0x400 GPIODIR 0x404 GPIOIS 0x408 GPIOIBE 0x40C GPIOIEV 0x410 GPIOIM 0x414 GPIORIS 0x418 GPIOMIS 0x41C GPIOICR 0x420 GPIOAFSEL 0x500 GPIODR2R 0x504 GPIODR4R 0x508 GPIODR8R 0x50C GPIOODR 0x510 GPIOPUR 0x514 GPIOPDR 0x518 GPIOSLR 0x51C GPIODEN 0x520 GPIOLOCK 0x524 GPIOCR 0x528 GPIOAMSEL 0x52C GPIOPCTL 0xFD0 GPIOPeriphID4 0xFD4 GPIOPeriphID5 0xFD8 GPIOPeriphID6 0xFDC GPIOPeriphID7 0xFE0 GPIOPeriphID0 0xFE4 GPIOPeriphID1 0xFE8 GPIOPeriphID2 0xFEC GPIOPeriphID3 0xFF0 GPIOPCellID0 类型 R/W R/W R/W R/W R/W R/W RO RO W1C R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W RO RO RO RO RO RO RO RO RO 复位 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.00FF 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0001 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0000 0x0000.0061 0x0000.0000 0x0000.0018 0x0000.0001 0x0000.000D 描述 GPIO 数据寄存器 GPIO 方向寄存器 GPIO 中断检测寄存器 GPIO 中断双边沿 GPIO 中断事件寄存器 GPIO 中断屏蔽寄存器 GPIO 原始中断状态寄存器 GPIO 屏蔽中断状态寄存器 GPIO 中断清除寄存器 GPIO 备用功能选择寄存器 GPIO 2-mA 驱动选择寄存器 GPIO 4-mA 驱动选择寄存器 GPIO 8-mA 驱动选择寄存器 GPIO 开漏选择寄存器 GPIO 上拉电阻选择寄存器 GPIO 下拉电阻选择寄存器 GPIO 斜率控制选择寄存器 GPIO 数字使能寄存器 GPIO 锁定寄存器 GPIO 确认寄存器 GPIO 模拟选择寄存器 GPIO 端口控制寄存器 GPIO 外设标识寄存器 4 GPIO 外设标识寄存器 5 GPIO 外设标识寄存器 6 GPIO 外设标识寄存器 7 GPIO 外设标识寄存器 0 GPIO 外设标识寄存器 1 GPIO 外设标识寄存器 2 GPIO 外设标识寄存器 3 GPIO PrimeCell 标识寄存器 0 见页面 390 391 392 393 394 395 396 397 398 399 401 402 403 404 405 407 409 410 412 413 415 416 418 419 420 421 422 423 424 425 426 388 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 8-7. GPIO 寄存器映射(续) 偏移量 名称 类型 0xFF4 GPIOPCellID1 RO 0xFF8 GPIOPCellID2 RO 0xFFC GPIOPCellID3 RO 复位 0x0000.00F0 0x0000.0005 0x0000.00B1 描述 GPIO PrimeCell 标识寄存器 1 GPIO PrimeCell 标识寄存器 2 GPIO PrimeCell 标识寄存器 3 见页面 427 428 429 8.5 寄存器描述 本节剩余部分将按地址偏移量的数字顺序逐个列出 GPIO 寄存器,并对各个寄存器进行描述。 一月 06, 2012 389 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 1: GPIO 数据寄存器(GPIODATA),偏移量 0x000 GPIODATA 寄存器是数据寄存器。在软件控制模式中,如果通过 GPIO 方向 (GPIODIR) 寄存器(请 参考 391页)将各个管脚配置成输出,那么写入 GPIODATA 寄存器的值将被发送到 GPIO 端口管 脚。 为了对 GPIODATA 寄存器执行写入操作,由地址总线位 [9:2] 产生的相关屏蔽位必须被置位。否 则,位的值不会被写入操作改变。 同样,从该寄存器读取的值由从访问数据寄存器的地址处获取的屏蔽位[9:2]的情况来决定。如果地 址屏蔽位为 1,那么读取 GPIODATA 中相应位的值;如果地址屏蔽位为 0,那么不管GPIODATA 中相应位的值是什么,读取它们得到的都是 0。 如果各自的管脚被配置成输出,那么读取 GPIODATA 将返回最后写入的位值;或者当这些管脚被 配置成输入时,将返回相应的输入管脚上的值。复位时所有的位都是清零的。 GPIO 数据寄存器 (GPIODATA) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x000 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DATA 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 DATA 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 数据 该寄存器被虚拟地映射到地址空间的 256 个单元中。为便于通过单独的 驱动器读写这些寄存器,从这些寄存器读取的值和写入这些寄存器的值 可以通过八条地址线 [9:2] 屏蔽。读取该寄存器将返回其当前状态。写入 该寄存器仅影响那些没有被 ADDR[9:2] 屏蔽的位和被配置成输出的位。 关于读写操作的实例,请参考 “数据寄存器的操作” 在 383页。 390 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 2: GPIO 方向寄存器(GPIODIR),偏移量 0x400 GPIODIR 寄存器是数据方向寄存器。GPIODIR 寄存器中的某位置位会将相应的管脚配置成输出, 而清零的话就是配置为输入。复位时,所有的位都被清零,这意味着所有 GPIO 端口默认为输入状 态。 GPIO 方向寄存器 (GPIODIR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x400 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DIR 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 DIR 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 数据方向 值 描述 0 相应的管脚为输入。 1 相应的管脚为输出。 一月 06, 2012 391 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 3: GPIO 中断检测寄存器(GPIOIS),偏移量 0x404 GPIOIS 寄存器是中断感知寄存器。GPIOIS 寄存器中某位置位时,相应的管脚被配置为电平触发, 该位清零时配置为边沿触发。复位时所有的位都是清零的。 GPIO 中断检测寄存器 (GPIOIS) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x404 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 IS 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 IS 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO中断检测类型 值 描述 0 监测相应管脚的边沿(边沿触发)。 1 监测相应管脚的电平(电平触发)。 392 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 4: GPIO 中断双边沿(GPIOIBE),偏移量 0x408 GPIOIBE 寄存器可以允许双边沿触发中断。当 GPIO 中断检测 (GPIOIS) 寄存器(请参考 392页) 相应的位置位时,表示边沿触发。此时,如果 GPIOIBE 寄存器中相应的位置位,则表示双边沿触 发,即检测上升沿和下降沿,不必考虑 GPIO 中断事件 (GPIOIEV) 寄存器(请参考 394页)的设置 如何。如果清零,则表示该管脚由 GPIOIEV 寄存器控制。复位时所有的位都是清零的。 GPIO 中断双边沿 (GPIOIBE) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x408 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 IBE 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 IBE 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 双边沿中断 值 描述 0 中断发生由 GPIO 中断事件 (GPIOIEV) 寄存器(请参考 394页)控 制。 1 相应管脚上双边沿触发中断。 一月 06, 2012 393 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 5: GPIO 中断事件寄存器(GPIOIEV),偏移量 0x40C GPIOIEV 是中断事件寄存器。当 GPIOIEV 寄存器中某位置位时,相应的管脚由上升沿或是高电平 触发中断,具体由 GPIO 中断检测 (GPIOIS) 寄存器(请参考 392页)中的位控制。清零一个位则表 示相应的管脚由下降沿或是低电平触发,具体还是由 GPIOIS 中的位控制。复位时所有的位都是清 零的。 GPIO 中断事件寄存器 (GPIOIEV) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x40C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 IEV 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 IEV 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO中断事件 值 描述 0 相应管脚上的下降沿或低电平触发中断。 1 相应管脚上的下降沿或高电平触发中断。 394 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 6: GPIO 中断屏蔽寄存器(GPIOIM),偏移量 0x410 GPIOIM 是中断屏蔽寄存器。GPIOIM 寄存器中某位置位时,相应的管脚产生的中断允许被送到联 合中断信号上的中断控制器。清零某位则相应的管脚产生的中断不会被送到中断控制器。复位时所 有的位都是清零的。 GPIO 中断屏蔽寄存器 (GPIOIM) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x410 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 IME 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 IME 类型 RO R/W 复位 0 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 GPIO 中断屏蔽启用 值 描述 0 相应管脚的中断被屏蔽。 1 相应管脚的中断会被发送到中断控制器。 一月 06, 2012 395 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 7: GPIO 原始中断状态寄存器(GPIORIS),偏移量 0x414 GPIORIS 寄存器是原始中断状态寄存器。当一个管脚上发生中断时GPIORIS寄存器被置位。当 GPIO 中断屏蔽 (GPIOIM) 寄存器(请参考 395页)中的某位置位时,相应的中断被送到中断控制器。读取 某位为零则表示相应的输入管脚未发生中断。向 GPIO 中断清零 (GPIOICR) 寄存器中的位写入 1 会 清零该寄存器相应的位。 GPIO 原始中断状态寄存器 (GPIORIS) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x414 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 RIS 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 RIS 类型 RO RO 复位 0 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 GPIO 原始中断状态 值 描述 1 相应的管脚上已经有中断条件发生。 0 相应的管脚上未发生中断条件。 向 GPIOICR 寄存器中的位写入 1 来清零相应的位。 396 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 8: GPIO 屏蔽中断状态寄存器(GPIOMIS),偏移量 0x418 GPIOMIS 寄存器是屏蔽中断状态寄存器。如果该寄存器中的某个位置位,则说明相应的中断已经发 送到中断控制器。如果某位清零,表示没有产生中断,或者中断被屏蔽。 除了提供 GPIO 功能外,PB4 也可作为 ADC 的外部触发。如果 PB4 被配置为非屏蔽的中断管脚 (GPIOIM 中相应的位被置位),端口 B 产生中断,就会发送一个外部的触发信号到 ADC。此时如 果 ADC 事件复用选择 (ADCEMUX) 寄存器被配置为使用外部触发器,那么就会启动 ADC 转换。 请参考 597页。 如果没有其它端口 B 的管脚来产生中断,那么中断 0~31 设置使能 (EN0) 寄存器可以禁用能端口 B 中断,并且 ADC 中断可用来读回转换的数据。否则,端口 B 中断处理器需要忽略和清除 PB4 上的 中断,并等待 ADC 中断,或 ADC 中断必须用 EN0 寄存器禁用,端口 B 中断处理器必须查询 ADC 寄存器直至转换结束。更多信息请参考 129页。 GPIOMIS 是屏蔽后中断的状态。 GPIO 屏蔽中断状态寄存器 (GPIOMIS) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x418 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 MIS 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 MIS 类型 RO RO 复位 0 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 GPIO 屏蔽中断状态 值 描述 1 相应管脚上的中断条件已经触发中断,并发送到了中断控制器。 0 相应的管脚上未产生中断或中断已经被屏蔽。 向 GPIOICR 寄存器中的位写入 1 来清零相应的位。 一月 06, 2012 397 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 9: GPIO 中断清除寄存器(GPIOICR),偏移量 0x41C GPIOICR 是中断清除寄存器。将该寄存器中的位写入 1 会将 GPIORIS 和 GPIOMIS 寄存器中相应 的中断位清零。写“0”没任何效果。 GPIO 中断清除寄存器 (GPIOICR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x41C 类型 W1C, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 IC 类型 RO RO RO RO RO RO RO RO W1C W1C W1C W1C W1C W1C W1C W1C 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 IC 类型 RO W1C 复位 0 0x00 描述 软件不应该依赖保留位的值。为了兼容未来的器件,保留位的值在读-修 改-写操作过程中应该保持不变。 GPIO 中断清除 值 描述 1 相应的中断被清除。 0 相应的中断未受影响。 398 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 10: GPIO 备用功能选择寄存器(GPIOAFSEL),偏移量 0x420 GPIOAFSEL 寄存器是复用功能选择寄存器。如果某位清零,则表示相应的管脚用作 GPIO 功能, 并受 GPIO 寄存器控制。某位置位则表示相应的 GPIO 线受相关外设控制。每个 GPIO 上都有几个 不同的复用外设功能。可以通过 GPIO 端口控制 (GPIOPCTL) 寄存器来选择其中的一个可能的功 能。表 24-5 在 1178页 详细列出了每个 GPIO 管脚上的复用功能。复位时,下表中没有列出的端口对 应的该寄存器的值为0x0000.0000。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-8. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 小心 – 用户可以建立一个软件序列来阻止调试器连接到 Stellaris 微控制器。如果将程序代码加载到 Flash 中会立即将 JTAG 管脚变成其 GPIO 功能,那么在 JTAG 管脚功能切换之前,调试器将没有 足够的时间去连接和终止控制器。结果调试器可能被锁定在该部分外。为了避免这个问题,可以使 用一个基于外部或软件触发器的软件程序来恢复 JTAG 功能。 GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请 参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使能 (GPIODEN) 寄存器(请参阅 410页)中 受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有 被锁定,同时 GPIO 确认 (GPIOCR) 寄存器(请参阅 413页)中相应的位被置位。 当使用 I2C 模块时,除了要设置 GPIOAFSEL 中的 I2C 时钟和数据管脚之外,还必须要用 GPIO 开 漏选择 (GPIOODR) 寄存器(请参考 “初始化及配置” 在 386页 中的例子)将数据管脚设置成开漏。 一月 06, 2012 399 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) GPIO 备用功能选择寄存器 (GPIOAFSEL) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x420 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 AFSEL 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 - - - - - - - - 位/域 31:8 7:0 名称 保留 AFSEL 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 - GPIO 复用功能选择 值 描述 0 相应管脚的功能是 GPIO,受 GPIO 寄存器控制。 1 相应管脚的功能是外设信号,由复用硬件功能控制。 对于未在 表 8-1 在 378页 中列出的 GPIO 端口,该寄存器的复位值 为 0x0000.0000。 400 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 11: GPIO 2-mA 驱动选择寄存器(GPIODR2R),偏移量 0x500 GPIODR2R 寄存器是 2-mA 驱动控制寄存器。每个 GPIO 信号都可以单独配置,而不会影响其他的 管脚。当 GPIO 信号的 DRV2 置位时,GPIODR4R 寄存器中的 DRV4 位和 GPIODR8R 寄存器中的 DRV8 会被硬件自动清零。所有 GPIO 管脚默认都是 2-mA 驱动。 GPIO 2-mA 驱动选择寄存器 (GPIODR2R) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x500 类型 R/W, 复位 0x0000.00FF 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DRV2 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 位/域 31:8 7:0 名称 保留 DRV2 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0xFF 输出管脚 2-mA 驱动启用 值 描述 1 相应的 GPIO 管脚为 2-mA 驱动。 0 相应的 GPIO 管脚驱动由 GPIODR4R 或 GPIODR8R 寄存器控制。 将 GPIODR4 寄存器或 GPIODR8 寄存器中的某位置位,都会将相应的 2-mA 启用位清零。如果通过 APB 存储器槽访问 GPIO,那么这种改变 在写入的第二个时钟周期生效。如果使用 AHB 访问,那么在下一个时 钟周期生效。 一月 06, 2012 401 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 12: GPIO 4-mA 驱动选择寄存器(GPIODR4R),偏移量 0x504 GPIODR4R 寄存器是 4-mA 驱动控制寄存器。每个 GPIO 信号都可以单独配置,而不会影响其他的 管脚。当 GPIO 信号的 DRV4 置位时,GPIODR2R 寄存器中的 DRV2 位和 GPIODR8R 寄存器中的 DRV8 位会被硬件自动清零。 GPIO 4-mA 驱动选择寄存器 (GPIODR4R) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x504 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DRV4 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 DRV4 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 输出管脚 4-mA 流驱动启用 值 描述 1 相应的管脚为 4-mA 驱动。 0 相应的管脚驱动由 GPIODR2R 或 GPIODR8R 寄存器控制。 将 GPIODR2 寄存器或 GPIODR8 寄存器中的某位置位,都会将相应的 4-mA 启用位清零。如果通过 APB 存储器槽访问 GPIO,那么这种改变 在写入的第二个时钟周期生效。如果使用 AHB 访问,那么在下一个时 钟周期生效。 402 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 13: GPIO 8-mA 驱动选择寄存器(GPIODR8R),偏移量 0x508 GPIODR8R 是 8-mA 驱动控制寄存器。每个 GPIO 信号都可以单独配置,而不会影响其他的管脚。 当 GPIO 信号的 DRV8 置位时,GPIODR2R 寄存器中的 DRV2 位和 GPIODR4R 寄存器中的里DRV4 会被硬件自动清零。8-mA 驱动还可被用在大电流驱动的应用上。 注意: 8-mA 驱动和大电流驱动在配置上没有区别。额外的电流能力来自 VOH/VOL 电平转换。更多 信息请参考 “推荐的工作参数” 在 1224页。 GPIO 8-mA 驱动选择寄存器 (GPIODR8R) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x508 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DRV8 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 DRV8 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 输出管脚 8-mA 电流驱动启用 值 描述 1 相应的 GPIO 管脚为 8-mA 驱动。 0 相应的 GPIO 管脚驱动由 GPIODR2R 或 GPIODR4R 寄存器控制。 将 GPIODR2 寄存器或 GPIODR4 寄存器中的某位置位,都会将相应的 8-mA 启用位清零。如果通过 APB 存储器槽访问 GPIO,那么这种改变 在写入的第二个时钟周期生效。如果使用 AHB 访问,那么在下一个时 钟周期生效。 一月 06, 2012 403 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 14: GPIO 开漏选择寄存器(GPIOODR),偏移量 0x50C GPIOODR 寄存器是开漏选择寄存器。该寄存器中的某位置位可以将相应的 GPIO 管脚配置为开漏。 当管脚的开漏功能启用的时候,GPIO 数字使能 (GPIODEN) 寄存器(请参考 410页)中相应的位也 必须置位。为了达到所需的上升和下降时间,可以将驱动强度和斜率控制寄存器(GPIODR2R、 GPIODR4R、GPIODR8R 和 GPIOSLR)中相应的位置位。如果 GPIODIR 寄存器的某位被清零, 那么相应的 GPIO 是输入。如果 GPIO 配置成输入,而同时又选择了开漏,那么该 GPIO 还是输入, 开漏选择不会生效,GPIO 变成输出以后才开漏才有效。 当使用 I2C 模块时,除了将管脚配置成开漏功能,GPIO 备用功能选择 (GPIOAFSEL) 寄存器中的 I2C 时钟和数据管脚位必须置位(请参考 “初始化及配置” 在 386页 中的示例)。 GPIO 开漏选择寄存器 (GPIOODR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x50C 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 ODE 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 ODE 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 开漏选择启用 值 描述 1 相应管脚配置成开漏。 0 相应管脚没有配置成开漏。 404 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 15: GPIO 上拉电阻选择寄存器(GPIOPUR),偏移量 0x510 GPIOPUR 寄存器是上拉电阻控制寄存器。当某位置位时,相应 GPIO 信号上弱上拉电阻启用。将 GPIOPUR 中的位置位会自动将 GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参考 407页)中相应的 位清零。GPIOCR 寄存器保护该寄存器的写入操作。GPIOCR 寄存器某位被清零时可以阻止该寄存 器中相应的位的写入操作。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-9. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 注意: GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参 阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使 能 (GPIODEN) 寄存器(请参阅 410页)中受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有被锁定,同时 GPIO 确认 (GPIOCR) 寄存 器(请参阅 413页)中相应的位被置位。 GPIO 上拉电阻选择寄存器 (GPIOPUR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x510 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PUE 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 - - - - - - - - 一月 06, 2012 405 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 位/域 31:8 7:0 名称 保留 PUE 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 - GPIO 弱上拉电阻启用 值 描述 1 相应管脚上是一个弱上拉电阻。 0 相应管脚不受影响。 将 GPIOPDR 寄存器中的位置位会将 GPIOPUR 寄存器中相应的位清 零。如果通过 APB 存储器槽访问 GPIO,那么这种改变在写入的第二个 时钟周期生效。如果使用 AHB 访问,那么在下一个时钟周期生效。 对于未在 表 8-1 在 378页 中列出的 GPIO 端口,该寄存器的复位值为 0x0000.0000。 406 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 16: GPIO 下拉电阻选择寄存器(GPIOPDR),偏移量 0x514 GPIOPDR 缓冲区是下拉控制寄存器。置位时相应的管脚下拉电阻启用。置位 GPIOPDR 中的位会 使 GPIO上拉电阻选择 (GPIOPUR) 寄存器(见 405页)中相应的位自动清零。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-10. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 注意: GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参 阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使 能 (GPIODEN) 寄存器(请参阅 410页)中受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有被锁定,同时 GPIO 确认 (GPIOCR) 寄存 器(请参阅 413页)中相应的位被置位。 GPIO 下拉电阻选择寄存器 (GPIOPDR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x514 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PDE 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 一月 06, 2012 407 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 位/域 31:8 7:0 名称 保留 PDE 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 弱下拉电阻启用 值 描述 1 相依管脚上有一个弱下拉电阻。 0 相应管脚不受影响。 将 GPIOPUR 寄存器中的位置位会将 GPIOPDR 寄存器中相应的位清 零。如果通过 APB 存储器槽访问 GPIO,那么这种改变在写入的第二个 时钟周期生效。如果使用 AHB 访问,那么在下一个时钟周期生效。 408 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 17: GPIO 斜率控制选择寄存器(GPIOSLR),偏移量 0x518 GPIOSLR 是斜率控制选择寄存器。斜率控制只有在通过 GPIO 8-mA 驱动选择 (GPIODR8R) 寄存 器(请参考 403页)选用 8-mA 驱动强度时才有效。 GPIO 斜率控制选择寄存器 (GPIOSLR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x518 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 SRL 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 SRL 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 斜率限制启用(8-mA 驱动) 值 描述 1 启用相应管脚的斜率控制。 0 禁用相应管脚的斜率控制。 一月 06, 2012 409 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 18: GPIO 数字使能寄存器(GPIODEN),偏移量 0x51C 注意: 配置为数字输入的管脚均为施密特触发。 GPIODEN 寄存器是数字启用寄存器。默认情况下,除了下面列出的管脚外,所有的管脚复位时都 被配置为非驱动(三态)的。它们的数字功能是禁止的。它们不驱动管脚上的逻辑值,而且也不允 许管脚上的电压进入 GPIO 接收器。为了使用能管脚的数字功能(作为数字输入/输出,或者是 GPIO 功能,或者是复用功能),GPIODEN 寄存器中相应的位必须置位。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-11. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 注意: GPIO 确认控制寄存器提供的保护功能可防止对重要硬件外设的意外编程。该功能可保护 NMI 管脚 (PB7) 以及四个 JTAG/SWD 管脚 (PC[3:0])。向 GPIO 备用功能选择 (GPIOAFSEL) 寄存器(请参阅 399页)、GPIO 上拉电阻选择 (GPIOPUR) 寄存器(请参 阅 405页)、GPIO 下拉电阻选择 (GPIOPDR) 寄存器(请参阅 407页)以及 GPIO 数字使 能 (GPIODEN) 寄存器(请参阅 410页)中受保护的位写入数据将不会确认保存,除非 GPIO 锁定 (GPIOLOCK) 寄存器(请参阅 412页)没有被锁定,同时 GPIO 确认 (GPIOCR) 寄存 器(请参阅 413页)中相应的位被置位。 GPIO 数字使能寄存器 (GPIODEN) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x51C 类型 R/W, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 DEN 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 - - - - - - - - 410 一月 06, 2012 Texas Instruments-生产数据 位/域 31:8 7:0 Stellaris® LM3S9B92 微控制器 名称 保留 DEN 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 - 数字启用 值 描述 0 相应管脚的数字功能被禁用。 1 启用管脚的数字功能。 对于未在 表 8-1 在 378页 中列出的 GPIO 端口,该寄存器的复位值 为 0x0000.0000。 一月 06, 2012 411 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 19: GPIO 锁定寄存器(GPIOLOCK),偏移量 0x520 GPIOLOCK 寄存器可以启用对 GPIOCR 寄存器(请参考 413页)的写入访问。将 GPIOLOCK 寄 存器中写入 0x4C4F.434B 能够解锁 GPIOCR 寄存器。向 GPIOLOCK 寄存器中写入任何数值都可 以重新恢复锁定状态。读取 GPIOLOCK 寄存器返回锁定状态,而不是先前写入的 32 位数值。因 此,当写入访问被禁用或锁定时,读取 GPIOLOCK 寄存器返回 0x00000001。当写入访问被启用或 解锁时,读取 GPIOLOCK 寄存器返回 0x00000000。 GPIO 锁定寄存器 (GPIOLOCK) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x520 类型 R/W, 复位 0x0000.0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 LOCK 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LOCK 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 位/域 31:0 名称 LOCK 类型 复位 描述 R/W 0x0000.0001 GPIO 锁定 写入 0x4C4F.434B 可以解锁 GPIO 确认 (GPIOCR) 寄存器,允许写入 访问。向 GPIOCR 寄存器写入任何其他的数重新锁定,阻止任何寄存器 更新。 读取该寄存器返回以下各值: 值 描述 0x1 GPIOCR 寄存器锁定,不能修改。 0x0 GPIOCR 解锁,可以修改。 412 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 20: GPIO 确认寄存器(GPIOCR),偏移量 0x524 GPIOCR 寄存器是提交寄存器。GPIOCR 寄存器的值决定了 GPIOAFSEL、GPIOPUR、GPIOPDR 以及 GPIODEN 寄存器中哪些位在写入操作时被提交。如果在 GPIOCR 寄存器中的一个位被清零, 那么写入 GPIOAFSEL、GPIOPUR、GPIOPDR 或 GPIODEN 寄存器中相应位的数据将不被提交 并保留其原来的值。如果 GPIOCR 寄存器中的位为 1,那么写入 GPIOAFSEL、GPIOPUR、 GPIOPDR 或 GPIODEN 寄存器中相应位的数据将被提交到寄存器并显示新的值。 GPIOCR 寄存器的内容只有在 GPIOLOCK 寄存器解锁时才能被修改。如果 GPIOLOCK 寄存器被 锁定,那么写入 GPIOCR 寄存器将被忽略。 重要: 该寄存器用于防止意外设置的寄存器,该寄存器控制到NMI和JTAG/SWD 调试硬件的连 通性。通过将 GPIOCR 寄存器中相应的位初始化为 0 (PB7 和 PC[3:0] 对应的位), NMI 和 JTAG/SWD 调试端口只能通过对 GPIOLOCK,GPIOCR,以及其他相应寄存 器的一系列写操作来转换为 GPIO。 因为这种保护当前只在 PB7 和 PC[3:0]的 JTAG/SWD 管脚上执行,所以 GPIOCR 寄 存器中所有其它的位不能被写入 0x0。这些位硬连接(hardwired)为 0x1,确保其它管 脚的 GPIOAFSEL,GPIOPUR,GPIOPDR,或 GPIODEN 寄存器位总是可以提交新 的数值。 GPIO 确认寄存器 (GPIOCR) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x524 类型 -, 复位 - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CR 类型 RO RO RO RO RO RO RO RO - - - - - - - - 复位 0 0 0 0 0 0 0 0 - - - - - - - - 位/域 31:8 名称 保留 类型 RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 一月 06, 2012 413 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 位/域 7:0 名称 CR 类型 - 复位 - 描述 GPIO 提交 值 描述 1 相应的 GPIOAFSEL、GPIOPUR、GPIOPDR 或 GPIODEN 位可 以写入。 0 相应的 GPIOAFSEL、GPIOPUR、GPIOPDR 或 GPIODEN 位不 能写入。 注意: 除了 NMI 管脚和四个 JTAG/SWD 管脚(PB7 和 PC[3:0]) 之外,所有 GPIO 管脚的 GPIOCR 寄存器的默认状态是 RO。 GPIOCR 寄存器当前仅保护这五个 GPIO 管脚。正因为这样, GPIO 端口 B7 和 GPIO 端口 C [3:0] 的寄存器类型是 R/W。 除了 NMI 和四个 JTAG/SWD 管脚(PB7 和 PC[3:0])之 外,所有 GPIO 管脚 GPIOCR 寄存器复位值为 0x0000.00FF。 为了确保 JTAG 端口不会被意外地编程为 GPIO 管脚, PC[3:0] 管脚默认是锁定的,以防止犯错。同样,为了确保 NMI 管脚不会意外的编程为 GPIO 管脚,PB7 管脚默认也是 锁定的,以防止犯错。因此,GPIO 端口 B 的 GPIOCR 寄存 器默认复位值为 0x0000007F。而 GPIO 端口 C 的 GPIOCR 寄存器默认复位值为 0x000000F0。 414 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 21: GPIO 模拟选择寄存器(GPIOAMSEL),偏移量 0x528 重要: 该寄存器只对端口 D 和端口 E 有效;其他端口对应的基址是无效的。 如果一个管脚用作 ADC 输入管脚,那么 GPIOAMSEL 寄存器中相应的位必须置位,禁 用模拟隔离电路。 GPIOAMSEL 寄存器控制着隔离电路是否与通用 I/O 管脚的模拟一边相连。因为 GPIO 管脚可能会 被 5 V 电源驱动或受模拟操作的影响,所以模拟电路在不用的时候需要从管脚上隔离出来。 该寄存器的每一位控制着相应 GPIO 信号的隔离电路。要了解哪些 GPIO 管脚可以用作 ADC 功能, 请参考 表 24-5 在 1178页。 GPIO 模拟选择寄存器 (GPIOAMSEL) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x528 类型 R/W, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 GPIOAMSEL 类型 RO RO RO RO RO RO RO RO R/W R/W R/W R/W R/W R/W R/W R/W 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 GPIOAMSEL 类型 RO R/W 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 模拟模式选择 值 描述 1 管脚的 GPIO 模拟功能启用,隔离电路禁用,该管脚能够进行模拟 信号操作。 0 管脚的 GPIO 模拟功能禁用,隔离电路启用,该管脚能够进行其他 GPIO 寄存器指定的数字信号处理。 注意: 该寄存器和位只适用于那些通过通用 I/O 口共享模拟功能的管 脚。 该寄存器对所有信号的复位状态都是 0。 一月 06, 2012 415 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 22: GPIO 端口控制寄存器(GPIOPCTL),偏移量 0x52C GPIOPCTL 寄存器与 GPIOAFSEL 寄存器协作,为每个 GPIO 管脚(当使用复用功能模式时)选 择具体的外设信号。GPIOAFSEL 寄存器中大部分的位在复位时是清零的,所以大部分 GPIO 管脚 默认配置为 GPIO 功能。GPIOAFSEL 寄存器中某位置位时,表示相应的 GPIO 管脚由相关外设控 制。GPIOPCTL 寄存器可以为每个 GPIO 管脚选择使用哪个外设功能,因此在信号定义时提供了很 高的灵活性。该寄存器中位域编码的更多信息,请参考 表 24-5 在 1178页。复位时,下表中没有列出 的端口对应的该寄存器的值为 0x0000.0000。 重要: 所有的 GPIO 管脚在复位时都被配置为 GPIO 功能,而且是三态的,即 (GPIOAFSEL=0、 GPIODEN=0、GPIOPDR=0、GPIOPUR=0、GPIOPCTL=0),但是下表中列出的这些 管脚除外。上电复位 (POR) 或是外部复位 RST 会让这些管脚返回默认值。 表 8-12. 具有非 0 复位值的 GPIO 管脚 GPIO 管脚 PA[1:0] PA[5:2] PB[3:2] PC[3:0] 默认状态 UART0 SSI0 I2C0 JTAG/SWD GPIOAFSEL GPIODEN GPIOPDR GPIOPUR 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 GPIOPCTL 0x1 0x1 0x3 0x1 GPIO 端口控制寄存器 (GPIOPCTL) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0x52C 类型 R/W, 复位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PMC7 PMC6 PMC5 PMC4 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PMC3 PMC2 PMC1 PMC0 类型 R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 复位 - - - - - - - - - - - - - - - - 位/域 31:28 27:24 名称 PMC7 PMC6 类型 R/W R/W 复位 - - 描述 端口复用控制器7 该区域的值控制着端口7的配置 端口复用控制器6 该区域的值控制着端口6的配置 416 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 位/域 23:20 19:16 15:12 11:8 7:4 3:0 名称 PMC5 PMC4 PMC3 PMC2 PMC1 PMC0 类型 R/W R/W R/W R/W R/W R/W 复位 - 描述 端口复用控制器5 该区域的值控制着端口5的配置 端口复用控制器4 该区域的值控制着端口4的配置 端口复用控制器3 该区域的值控制着端口3的配置 端口复用控制器2 该区域的值控制着端口2的配置 端口复用控制器1 该区域的值控制着端口1的配置 端口复用控制器0 该区域的值控制着端口0的配置 一月 06, 2012 417 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 23: GPIO 外设标识寄存器 4(GPIOPeriphID4),偏移量 0xFD0 GPIOPeriphID4、GPIOPeriphID5、GPIOPeriphID6 和 GPIOPeriphID7 这四个寄存器在概念上可 以看作是一个 32 位的寄存器,每个寄存器包含了该 32 位寄存器的 8 个位,被软件用来标识外设。 GPIO 外设标识寄存器 4 (GPIOPeriphID4) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFD0 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID4 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID4 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 外设 ID 寄存器 [7:0] 418 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 24: GPIO 外设标识寄存器 5(GPIOPeriphID5),偏移量 0xFD4 GPIOPeriphID4、GPIOPeriphID5、GPIOPeriphID6 和 GPIOPeriphID7 这四个寄存器在概念上可 以看作是一个 32 位的寄存器,每个寄存器包含了该 32 位寄存器的 8 个位,被软件用来标识外设。 GPIO 外设标识寄存器 5 (GPIOPeriphID5) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFD4 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID5 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID5 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 外设 ID 寄存器 [15:8] 一月 06, 2012 419 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 25: GPIO 外设标识寄存器 6(GPIOPeriphID6),偏移量0xFD8 GPIOPeriphID4、GPIOPeriphID5、GPIOPeriphID6 和 GPIOPeriphID7 这四个寄存器在概念上可 以看作是一个 32 位的寄存器,每个寄存器包含了该 32 位寄存器的 8 个位,被软件用来标识外设。 GPIO 外设标识寄存器 6 (GPIOPeriphID6) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFD8 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID6 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID6 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 外设 ID 寄存器 [23:16] 420 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 26: GPIO 外设标识寄存器 7(GPIOPeriphID7),偏移量 0xFDC GPIOPeriphID4、GPIOPeriphID5、GPIOPeriphID6 和 GPIOPeriphID7 这四个寄存器在概念上可 以看作是一个 32 位的寄存器,每个寄存器包含了该 32 位寄存器的 8 个位,被软件用来标识外设。 GPIO 外设标识寄存器 7 (GPIOPeriphID7) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFDC 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID7 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID7 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 外设 ID 寄存器 [31:24] 一月 06, 2012 421 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 27: GPIO 外设标识寄存器 0(GPIOPeriphID0),偏移量 0xFE0 GPIOPeriphID0、GPIOPeriphID1、GPIOPeriphID2 和 GPIOPeriphID3 这四个寄存器从概念上可 以看成是一个 32 位的寄存器,每个寄存器包含了这个 32 位寄存器其中的 8 位,软件用这些寄存器 来识别外设。 GPIO 外设标识寄存器 0 (GPIOPeriphID0) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFE0 类型 RO, 复位 0x0000.0061 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 位/域 31:8 7:0 名称 保留 PID0 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x61 GPIO 外设 ID 寄存器 [7:0] 软件可通过此寄存器识别外设。 422 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 28: GPIO 外设标识寄存器 1(GPIOPeriphID1),偏移量 0xFE4 GPIOPeriphID0、GPIOPeriphID1、GPIOPeriphID2 和 GPIOPeriphID3 这四个寄存器从概念上可 以看成是一个 32 位的寄存器,每个寄存器包含了这个 32 位寄存器其中的 8 位,软件用这些寄存器 来识别外设。 GPIO 外设标识寄存器 1 (GPIOPeriphID1) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFE4 类型 RO, 复位 0x0000.0000 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID1 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 位/域 31:8 7:0 名称 保留 PID1 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x00 GPIO 外设 ID 寄存器 [15:8] 软件可通过此寄存器识别外设。 一月 06, 2012 423 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 29: GPIO 外设标识寄存器 2(GPIOPeriphID2),偏移量 0xFE8 GPIOPeriphID0、GPIOPeriphID1、GPIOPeriphID2 和 GPIOPeriphID3 这四个寄存器从概念上可 以看成是一个 32 位的寄存器,每个寄存器包含了这个 32 位寄存器其中的 8 位,软件用这些寄存器 来识别外设。 GPIO 外设标识寄存器 2 (GPIOPeriphID2) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFE8 类型 RO, 复位 0x0000.0018 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 位/域 31:8 7:0 名称 保留 PID2 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x18 GPIO 外设 ID 寄存器 [23:16] 软件可通过此寄存器识别外设。 424 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 30: GPIO 外设标识寄存器 3(GPIOPeriphID3),偏移量 0xFEC GPIOPeriphID0、GPIOPeriphID1、GPIOPeriphID2 和 GPIOPeriphID3 这四个寄存器从概念上可 以看成是一个 32 位的寄存器,每个寄存器包含了这个 32 位寄存器其中的 8 位,软件用这些寄存器 来识别外设。 GPIO 外设标识寄存器 3 (GPIOPeriphID3) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFEC 类型 RO, 复位 0x0000.0001 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 PID3 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 位/域 31:8 7:0 名称 保留 PID3 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x01 GPIO 外设 ID 寄存器[31:24] 软件可通过此寄存器识别外设。 一月 06, 2012 425 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 31: GPIO PrimeCell 标识寄存器 0(GPIOPCellID0),偏移量 0xFF0 GPIOPCellID0、GPIOPCellID1、GPIOPCellID2 和 GPIOPCellID3 寄存器是四个 8 位寄存器,这 四个寄存器概念上可以看成是一个 32 位的寄存器。寄存器将作为一个标准的交叉外设 (cross-peripheral)标识系统来使用。 GPIO PrimeCell 标识寄存器 0 (GPIOPCellID0) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFF0 类型 RO, 复位 0x0000.000D 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID0 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 位/域 31:8 7:0 名称 保留 CID0 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x0D GPIO PrimeCell ID 寄存器 [7:0] 向软件提供一个标准的交叉外设标识系统。 426 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 32: GPIO PrimeCell 标识寄存器 1(GPIOPCellID1),偏移量 0xFF4 GPIOPCellID0、GPIOPCellID1、GPIOPCellID2 和 GPIOPCellID3 寄存器是四个 8 位寄存器,这 四个寄存器概念上可以看成是一个 32 位的寄存器。寄存器将作为一个标准的交叉外设 (cross-peripheral)标识系统来使用。 GPIO PrimeCell 标识寄存器 1 (GPIOPCellID1) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFF4 类型 RO, 复位 0x0000.00F0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID1 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 位/域 31:8 7:0 名称 保留 CID1 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0xF0 GPIO PrimeCell ID 寄存器 [15:8] 向软件提供一个标准的交叉外设标识系统。 一月 06, 2012 427 Texas Instruments-生产数据 通用输入/输出端口 (GPIO) 寄存器 33: GPIO PrimeCell 标识寄存器 2(GPIOPCellID2),偏移量 0xFF8 GPIOPCellID0、GPIOPCellID1、GPIOPCellID2 和 GPIOPCellID3 寄存器是四个 8 位寄存器,这 四个寄存器概念上可以看成是一个 32 位的寄存器。寄存器将作为一个标准的交叉外设 (cross-peripheral)标识系统来使用。 GPIO PrimeCell 标识寄存器 2 (GPIOPCellID2) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFF8 类型 RO, 复位 0x0000.0005 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID2 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 位/域 31:8 7:0 名称 保留 CID2 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0x05 GPIO PrimeCell ID 寄存器 [23:16] 向软件提供一个标准的交叉外设标识系统。 428 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 寄存器 34: GPIO PrimeCell 标识寄存器 3(GPIOPCellID3),偏移量 0xFFC GPIOPCellID0、GPIOPCellID1、GPIOPCellID2 和 GPIOPCellID3 寄存器是四个 8 位寄存器,这 四个寄存器概念上可以看成是一个 32 位的寄存器。寄存器将作为一个标准的交叉外设 (cross-peripheral)标识系统来使用。 GPIO PrimeCell 标识寄存器 3 (GPIOPCellID3) GPIO 端口 A (APB) 基址: 0x4000.4000 GPIO 端口 A (AHB) 基址: 0x4005.8000 GPIO 端口 B (APB) 基址: 0x4000.5000 GPIO 端口 B (AHB) 基址: 0x4005.9000 GPIO 端口 C (APB) 基址: 0x4000.6000 GPIO 端口 C (AHB) 基址: 0x4005.A000 GPIO 端口 D (APB) 基址: 0x4000.7000 GPIO 端口 D (AHB) 基址: 0x4005.B000 GPIO 端口 E (APB) 基址: 0x4002.4000 GPIO 端口 E (AHB) 基址: 0x4005.C000 GPIO 端口 F (APB) 基址: 0x4002.5000 GPIO 端口 F (AHB) 基址: 0x4005.D000 GPIO 端口 G (APB) 基址: 0x4002.6000 GPIO 端口 G (AHB) 基址: 0x4005.E000 GPIO 端口 H (APB) 基址: 0x4002.7000 GPIO 端口 H (AHB) 基址: 0x4005.F000 GPIO 端口 J (APB) 基址: 0x4003.D000 GPIO 端口 J (AHB) 基址: 0x4006.0000 偏移量 0xFFC 类型 RO, 复位 0x0000.00B1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 保留 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 CID3 类型 RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO RO 复位 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 位/域 31:8 7:0 名称 保留 CID3 类型 RO RO 复位 描述 0x0000.00 软件不应该依赖保留位的值。为了兼容未来的产品,保留位的值在读取 -修改-写入操作过程中应当保持不变。 0xB1 GPIO PrimeCell ID 寄存器 [31:24] 向软件提供一个标准的交叉外设标识系统。 一月 06, 2012 429 Texas Instruments-生产数据 片外设备接口 (EPI) 9 片外设备接口 (EPI) 片外设备接口(External Peripheral Interface,简写为EPI)是一种用于连接片外设备或存储器的高 速并行总线接口。片外设备接口有多种工作方式,能够实现与各种片外设备的无缝连接。片外设备 接口实际上与普通微处理器的地址/数据总线非常相似,只不过片外设备接口通常只允许连接一种类 型的片外设备。片外设备接口还具有一些增强的功能,例如支持 μDMA、支持时钟控制、支持片外 FIFO缓冲等等。 EPI 模块具有以下特性: ■ 8 位/16 位/32 位专用并行总线,用于连接片外设备或存储器 ■ 存储器接口支持自动步进式连续访问,且不受数据总线宽度的影响,因此能够实现直接从 SDRAM、SRAM 或 Flash存储器中运行程序代码 ■ 阻塞式/非阻塞式读操作 ■ 内置写 FIFO,因而处理器无需锱铢计较时序细节 ■ 用微型直接内存访问 (µDMA) 有效的传输数据 – 相互独立的读通道和写通道 – 当片内非阻塞式读 FIFO(Non-Blocking Read FIFO,简写为 NBRFIFO)达到预设深度时, 自动产生读通道请求信号 – 当片内写 FIFO(WFIFO)空时,自动产生写通道请求信号 EPI 支持三种主要功能模式:同步动态随机访问存储器 (SDRAM) 模式、传统的主机总线 (Host Bus) 模式以及通用模式。EPI模块也可以将其管脚用作自定义的 GPIO,但其用法有别于标准 GPIO,而 是像通信外设的机制一样需经过 FIFO 访问端口数据,并且 I/O 速度由时钟信号决定。 ■ 同步动态随机访问存储器 (SDRAM) 模式 – 支持 16 位宽的 SDR (单数据率) SDRAM,频率最高 50 MHz – 支持低成本的 SDRAM,最大可达 64 MB(512 Mb) – 内置自动刷新功能,可访问任意体 (bank) 或任意行 – 支持休眠/待机模式,在保持内容不丢失的前提下尽量节省功耗 – 复用的地址/数据管脚,竭力控制管脚数目 ■ 主机总线模式 – 传统的 8 位/16 位微控制器总线接口 – 可兼容许多常见的微控制器总线,如 PIC、ATMega、8051 或其它单片机 – 可访问 SRAM、NOR Flash 以及其它类型的并行总线设备。非复用模式下寻址能力为 1 MB; 复用模式下寻址能力为 256MB(HB16 模式下若不使用字节选择信号,则实际可达 512 MB) – 支持复用和非复用模式的地址/数据总线 430 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 – 可用于访问各种集成了无地址 FIFO 的 8 位/16 位接口外设。支持片外 FIFO(External FIFO, 简写为 XFIFO)的 EMPTY 和 FULL 信号 – 访问速度可控,读/写数据时可添加等待态 – 支持多种片选模式,如 ALE、CSn、双 CSn、ALE+ 双 CSn 等 – 手动控制片启用信号(也可使用多余的地址管脚控制) ■ 通用模式 – 可用于同 CPLD 或 FPGA 进行快速数据交换 – 数据宽度可达 32 位 – 数据传输率可达150MB/s – 可选配置:4~20位“地址” – 可选配置:时钟输出信号、读/写选通信号、帧信号(基于计数的长度)、时钟启用输入信号 ■ 并行 GPIO – 1 到 32 位,必须经由 FIFO 输入输出,速度可控 – 适用于自定义的外设器件、数字化数据采集装置、执行机构控制等应用场合 9.1 EPI 结构图 图 9-1 在 432页 示出了Stellaris® EPI 模块的结构图。 一月 06, 2012 431 Texas Instruments-生产数据 片外设备接口 (EPI) 图 9-1. EPI 结构图 NBRFIFO 8 x 32 位 AHB AHB 总线 接口 (带 DMA) WFIFO 4 x 32 位 波特 率 控制 (时钟) 通用 并行 GPIO SDRAM 主机总线 宽 并行 接口 EPI 31:0 9.2 信号描述 下表列出了与 EPI 控制器的外部信号并逐一描述其功能。EPI信号均为GPIO信号的备选功能,因此 这些管脚在复位时都将默认设置为GPIO信号。表中“复用管脚/赋值”一列是各 EPI 信号所对应的 GPIO 管脚。通过将 GPIO 备用功能选择 (GPIOAFSEL) 寄存器 ( 399页) 中的 AFSEL 位置位来选择 EPI 控制器的功能。括弧里边里的数字表示必须写入到 GPIO 端口控制 (GPIOPCTL) 寄存器 ( 416 页) PMCn 字段里的编码,用以将 EPI 信号分配给 GPIO 端口管脚。关于 GPIO 的更多配置信息,请 参阅 “通用输入/输出端口 (GPIO)” 在 377页。 表 9-1. EPI(片外设备接口) 信号 (100LQFP) 管脚名称 EPI0S0 EPI0S1 EPI0S2 EPI0S3 EPI0S4 EPI0S5 EPI0S6 EPI0S7 EPI0S8 EPI0S9 EPI0S10 EPI0S11 管脚编号 83 84 25 24 23 22 86 85 74 75 76 63 管脚复用/管脚 赋值 PH3 (8) PH2 (8) PC4 (8) PC5 (8) PC6 (8) PC7 (8) PH0 (8) PH1 (8) PE0 (8) PE1 (8) PH4 (8) PH5 (8) 管脚类型 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O 缓冲区类型a 描述 TTL EPI 模块 0 的信号 0。 TTL EPI 模块 0 的信号 1。 TTL EPI 模块 0 的信号 2。 TTL EPI 模块 0 的信号 3。 TTL EPI 模块 0 的信号 4。 TTL EPI 模块 0 的信号 5。 TTL EPI 模块 0 的信号 6。 TTL EPI 模块 0 的信号 7。 TTL EPI 模块 0 的信号 8。 TTL EPI 模块 0 的信号 9。 TTL EPI 模块 0 的信号 10。 TTL EPI 模块 0 的信号 11。 432 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 表 9-1. EPI(片外设备接口) 信号 (100LQFP)(续) 管脚名称 管脚编号 管脚复用/管脚 赋值 EPI0S12 42 PF4 (8) EPI0S13 19 PG0 (8) EPI0S14 18 PG1 (8) EPI0S15 41 PF5 (8) EPI0S16 14 PJ0 (8) EPI0S17 87 PJ1 (8) EPI0S18 39 PJ2 (8) EPI0S19 50 PJ3 (8) 97 PD4 (10) EPI0S20 12 PD2 (8) EPI0S21 13 PD3 (8) EPI0S22 91 PB5 (8) EPI0S23 92 PB4 (8) EPI0S24 95 PE2 (8) EPI0S25 96 PE3 (8) EPI0S26 62 PH6 (8) EPI0S27 15 PH7 (8) EPI0S28 52 PJ4 (8) 98 PD5 (10) EPI0S29 53 PJ5 (8) 99 PD6 (10) EPI0S30 54 PJ6 (8) 100 PD7 (10) EPI0S31 36 PG7 (9) a. TTL 表示管脚的电压水平与 TTL 一致。 管脚类型 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O 缓冲区类型a 描述 TTL EPI 模块 0 的信号 12。 TTL EPI 模块 0 的信号 13。 TTL EPI 模块 0 的信号 14。 TTL EPI 模块 0 的信号 15。 TTL EPI 模块 0 的信号 16。 TTL EPI 模块 0 的信号 17。 TTL EPI 模块 0 的信号 18。 TTL EPI 模块 0 的信号 19。 TTL EPI 模块 0 的信号 20。 TTL EPI 模块 0 的信号 21。 TTL EPI 模块 0 的信号 22。 TTL EPI 模块 0 的信号 23。 TTL EPI 模块 0 的信号 24。 TTL EPI 模块 0 的信号 25。 TTL EPI 模块 0 的信号 26。 TTL EPI 模块 0 的信号 27。 TTL EPI 模块 0 的信号 28。 TTL EPI 模块 0 的信号 29。 TTL EPI 模块 0 的信号 30。 TTL EPI 模块 0 的信号 31。 表 9-2. EPI(片外设备接口) 信号 (108BGA) 管脚名称 EPI0S0 EPI0S1 EPI0S2 EPI0S3 EPI0S4 EPI0S5 EPI0S6 EPI0S7 EPI0S8 EPI0S9 EPI0S10 EPI0S11 EPI0S12 管脚编号 D10 D11 L1 M1 M2 L2 C9 C8 B11 A12 B10 F10 K4 管脚复用/管脚 赋值 PH3 (8) PH2 (8) PC4 (8) PC5 (8) PC6 (8) PC7 (8) PH0 (8) PH1 (8) PE0 (8) PE1 (8) PH4 (8) PH5 (8) PF4 (8) 管脚类型 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O 缓冲区类型a 描述 TTL EPI 模块 0 的信号 0。 TTL EPI 模块 0 的信号 1。 TTL EPI 模块 0 的信号 2。 TTL EPI 模块 0 的信号 3。 TTL EPI 模块 0 的信号 4。 TTL EPI 模块 0 的信号 5。 TTL EPI 模块 0 的信号 6。 TTL EPI 模块 0 的信号 7。 TTL EPI 模块 0 的信号 8。 TTL EPI 模块 0 的信号 9。 TTL EPI 模块 0 的信号 10。 TTL EPI 模块 0 的信号 11。 TTL EPI 模块 0 的信号 12。 一月 06, 2012 433 Texas Instruments-生产数据 片外设备接口 (EPI) 表 9-2. EPI(片外设备接口) 信号 (108BGA)(续) 管脚名称 管脚编号 管脚复用/管脚 赋值 EPI0S13 K1 PG0 (8) EPI0S14 K2 PG1 (8) EPI0S15 K3 PF5 (8) EPI0S16 F3 PJ0 (8) EPI0S17 B6 PJ1 (8) EPI0S18 K6 PJ2 (8) EPI0S19 M10 PJ3 (8) B5 PD4 (10) EPI0S20 H2 PD2 (8) EPI0S21 H1 PD3 (8) EPI0S22 B7 PB5 (8) EPI0S23 A6 PB4 (8) EPI0S24 A4 PE2 (8) EPI0S25 B4 PE3 (8) EPI0S26 G3 PH6 (8) EPI0S27 H3 PH7 (8) EPI0S28 K11 PJ4 (8) C6 PD5 (10) EPI0S29 K12 PJ5 (8) A3 PD6 (10) EPI0S30 L10 PJ6 (8) A2 PD7 (10) EPI0S31 C10 PG7 (9) a. TTL 表示管脚的电压水平与 TTL 一致。 管脚类型 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O 缓冲区类型a 描述 TTL EPI 模块 0 的信号 13。 TTL EPI 模块 0 的信号 14。 TTL EPI 模块 0 的信号 15。 TTL EPI 模块 0 的信号 16。 TTL EPI 模块 0 的信号 17。 TTL EPI 模块 0 的信号 18。 TTL EPI 模块 0 的信号 19。 TTL EPI 模块 0 的信号 20。 TTL EPI 模块 0 的信号 21。 TTL EPI 模块 0 的信号 22。 TTL EPI 模块 0 的信号 23。 TTL EPI 模块 0 的信号 24。 TTL EPI 模块 0 的信号 25。 TTL EPI 模块 0 的信号 26。 TTL EPI 模块 0 的信号 27。 TTL EPI 模块 0 的信号 28。 TTL EPI 模块 0 的信号 29。 TTL EPI 模块 0 的信号 30。 TTL EPI 模块 0 的信号 31。 9.3 功能描述 EPI控制器为常见的片外设备(例如SDRAM、8位/16位主机总线器件、RAM、NOR Flash存储器、 CPLD、FPGA等)提供了可编程的无缝接口。此外,EPI控制器也能够当作自定义GPIO使用,但其 读写仍然是经过速度可控的FIFO实现的,即片内写FIFO(WFIFO)或非阻塞式读FIFO (NBRFIFO)。WFIFO 最多可保存 4 个字的数据,并按 EPI主波特率 (EPIBAUD) 寄存器指定的速 率输出到外部接口。NBRFIFO 最多可保存 8 个字的数据,并按 EPIBAUD 寄存器指定的速率对外 部接口进行采样。普通的 GPIO 会受到片内总线冲突仲裁以及总线桥间延时的影响,其时序充满变 数;与之相比,EPI 控制器的 GPIO 操作都是可预测的,因而具有更优良的性能。阻塞式读操作在 数据会话完成之前挂起 CPU。非阻塞式读操作则在后台运行,不影响处理器执行任务。此外,写操 作时数据也会暂存在 WFIFO 中,这样就能连续不间断地执行写操作。 EPI 可对 0x6000.0000 到 0xDFFF.FFFF 之间的某一段或某几段地址空间执行读写操作。当对某个 映射地址进行读操作时,读操作的偏移量和长度将决定片外实际操作的地址和长度。当需要载入多 个值时,EPI 控制器将尽量采用猝发读操作以提高性能。当对某个映射地址进行写操作时,写操作 的偏移量和长度将决定片外实际操作的地址和长度。当需要写出多个值时,EPI 控制器将采用猝发 写操作以提高性能。 允许对 NAND 闪存 (8 个)进行读操作。但尚不支持自动编程功能;用户须按照供应商的规定协议 自行实现编程指令序列。此外 EPI 模块尚不支持自动按页 ECC 校验功能,用户同样须自行通过软 件予以实现。 434 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 9.3.1 9.3.2 非阻塞式读操作 EPI 控制器支持一种特殊的读操作,称为非阻塞式读操作,也常被称为投递式读操作或无监管读操 作。常规的读操作在数据返回之前都会暂时挂起 CPU 或 μDMA ,而非阻塞式读操作完全是在后台 进行的。 非阻塞式读操作的配置方法是:分别将起始地址写入 EPIRADDRn 寄存器、每个数据会话宽度写入 EPIRSIZEn 寄存器、读操作的次数写入 EPIRPSTDn 寄存器。每执行一个读操作后,读取的结果将 自动写入 NBRFIFO,且 EPIRADDRn 寄存器会自动按照宽度(1 字节、2 字节或 4 字节)递增。 当 NBRFIFO 满时,非阻塞式读操作将自动暂停,等到 NBRFIFO 中有空位时再继续写入。可将 NBRFIFO 配置为:使用 EPIFIFOLVL 寄存器根据 NBRFIFO 是否为满中断处理器或触发 μDMA。 通过此触发/中断的方法,μDMA(或处理器)就可以保持 NBRFIFO 处于可用状态,确保读流程的 连续顺畅。 当对SDRAM进行非阻塞式读操作时,SDRAM控制器会在猝发请求终止后额外产生两次读会话。读 取的数据被自动丢弃。此过程对用户而言并不视为 EPI 总线活动,因此完全可以忽略;用户只需知 道实际存在这个过程即可。 EPI 控制器为非阻塞式读操作提供了两组寄存器,可以很方便地实现连续地乒乓式工作。当一组执 行完毕后自动切换到另一组。举例来说,如果准备先从 0x100 读取 20 个字、再从 0x200 读取 10 个字,可将 EPIRPSTD0 寄存器配置为从 0x100 开始(计数 20 次),EPIRPSTD1 寄存器配置为 从 0x200 开始(计数 10 次)。当 EPIRPSTD0 结束(计数器到 0)后,EPIRPSTD1 寄存器将自 动开始工作。总共可通过 NBRFIFO 传递 30 个字。若结合 μDMA 使用,不单可以传输 30 个字(简 单连续模式),还可以按照主/副模型分别处理(即按一种方式处理前 20 个字、按另一种方式处理 后 10 个字)。另外当 EPIRPSTD0 结束(并且 EPIRPSTD1 已激活)后是可以重载配置的,于是 EPI 接口便能连续不断地交替运行下去。 要中止非阻塞式读操作,只需将 EPIRPSTDn 寄存器清零即可。但是必须注意到,如果寄存器组正 在从 NBRFIFO 中取数据,应确保取数据的过程能够正常结束。 为确保中止操作能够顺利完成,建议用户采用下面的代码段(以 EPIRPSTD0 寄存器为例): EPIRPSTD0 = 0; while ((EPISTAT & 0x11) == 0x10) ;// 若EPI控制器仍然忙碌,则等待 // 若退出上面的循环,说明已切换到另一寄存器组,或EPI已不再忙碌 cnt = (EPIRADDR0 – original_address) / EPIRSIZE0; // 预期读取的字数 cnt -= values_read_so_far; // 减去实际读取的字数,得到残留在 FIFO 中的字数 while (cnt--) value = EPIREADFIFO; // 将残留的字从 FIFO 中清除 此代码段仅供参考,用户可按照实际情况进行优化。重点在于务必等待这个中止过程完全结束(EPI 控制器的忙状态消失),因为 EPI 硬件可能正在对外部接口进行物理读操作,只有读操作过程完全 结束后才能安全地中止。 DMA 操作 EPI 模块可将 μDMA 结合 NBRFIFO 及 WFIFO 使用,获取最高的数据传输率。DMA 有两个通道, 一个用于读操作,另一个用于写操作。当 WFIFO 处于由 EPI FIFO深度选择 (EPIFIFOLVL) 寄存器 指定的级别上时,写通道将值复制到 WFIFO 中。当 NBRFIFO 处于由 EPIFIFOLVL 寄存器指定的 一月 06, 2012 435 Texas Instruments-生产数据 片外设备接口 (EPI) 9.4 9.4.1 级别上时,非阻塞读通道从 NBRFIFO 中对值进行复制。对于非阻塞式读操作必须将读操作起始地 址、读操作宽度以及读操作元素数目写入 μDMA 控制器中。非阻塞式读操作寄存器有两组,工作时 交替运行(相互不会交错)。使用 NBRFIFO 可提供最佳的传输速率。 对于阻塞式读操作,可运用 μDMA 软件通道(或其它未使用的 DMA 通道)以存储器-存储器的方式 (如果是其它外设,也可能是存储器-外设的方式)实现直接搬运过程。由于是阻塞式读操作,μDMA 控制器在读操作完成之前始终挂起,因此无法同时服务于其它的 DMA 通道。为了避免影响系统的 DMA 效率,阻塞式读操作通常应当每次只处理一个元素。μDMA 控制器也能够以软件通道(存储器 模式)实现 NBRFIFO 与 WFIFO 之间的直接传输,但需注意一旦 NBRFIFO 空或 WFIFO 满,μDMA 控制器都将暂时挂起,因此程序必须对这两种情况加以处理。μDMA 控制器挂起时内核仍能正常工 作。关于配置 µDMA 的更多信息,请参考 “微型直接存储器访问 (μDMA)” 在 319页。 在配置 µDMA 与 EPI 之间的数据传输(读/写)时,必须要考虑到 FIFO 的大小。当向 EPI 地址空 间写时,要仲裁的大小应当为 4 或更小;当从 EPI 地址空间读时,要仲裁的大小应该为 8 或更小。 初始化及配置 请按照以下步骤启用并初始化 EPI 控制器: 1. 使用 RCGC1 寄存器来启用 EPI 模块。见 262页。 2. 通过 RCGC2 寄存器启用相应 GPIO 模块的时钟。见 271页。欲了解需要启用哪些 GPIO 端口, 请参阅 “信号描述” 在 432页。 3. 将相关管脚的 AFSEL 位置位。见 399页。欲了解需要配置哪些 GPIO,请参阅 表 24-4 在 1168页。 4. 按照所选的工作模式配置 GPIO 的电流等级和/或斜率。参见 401页 和 409页。 5. 配置 GPIOPCTL 寄存器的 PMCn 位域,将 EPI 信号赋给相应的管脚。参见 416页 和 表 24-5 在 1178页。 6. 通过 EPI 配置寄存器 (EPICFG) 寄存器中的 MODE 位域选择 EPI 块的工作模式 (SDRAM/HB8/HB16/通用模式)。如果需要,还要通过适当的模式配置寄存器 EPI xxx配置寄 存器 (EPIxxxCFG) 和 EPI xxx配置寄存器 2 (EPIxxxCFG2) 设置因模式而异的细节。此外,若 EPI 波特率必须低于系统时钟,则还应配置 EPI主波特率 (EPIBAUD) 寄存器; 7. 使用 EPI地址映射 (EPIADDRMAP) 寄存器来配置地址映射。其中起始地址和地址范围都取决于 实际连接的片外设备的类型及其最大地址空间。例如,若外部连接 512 Mb 的 SDRAM,则应将 ERADR位域写 0x1(起始地址为0x6000.0000)或 0x2(起始地址为 0x8000.0000)、ERSZ 位 域写 0x3 (256 MB)。假如是通用模式并且片外设备无地址,则应将 ERADR 位域写 0x1(起始地 址为 0xA000.0000)或 0x2(起始地址为0xC000.0000)、EPSZ 位域写 0x0(256 字节); 8. 当需要直接读写片外设备时,直接写相应的映射地址(由 EPIADDRMAP 配置)即可。一次最 多可写 4 或 5 个字而不会发生阻塞。与此相反,读操作在数据返回之前将始终阻塞; 9. 要实现非阻塞式读操作,参见 “非阻塞式读操作” 在 435页。 以下各节针对不同的工作模式分别阐述其初始化及配置的步骤。必须要注意:初始化时务必细致全 面才能保证 EPI 接口正确工作。此外,对 GPIO 状态的控制也相当重要,随意更改 GPIO 状态可能 会被片外器件误识别成指令或动作(参见 “寄存器描述” 在 389页)。通常在线路板上为 EPI 管脚设 置上拉或下拉电阻,至少保证片选管脚或片启用管脚的复位状态正确无误,因为Stellaris GPIO 管脚 复位后通常为三态。 SDRAM 模式 当激活 SDRAM 模式时,须注意以下几点: 436 一月 06, 2012 Texas Instruments-生产数据 Stellaris® LM3S9B92 微控制器 9.4.1.1 1. 不论激活成哪种工作模式后,都应至少间隔100 μs 后再进行读写操作。以SDRAM 模式为例, 当通过 EPICFG 寄存器选择并启用 SDRAM 模式后,SDRAM 控制器将立即开始执行 SDRAM 初始化序列。由于 EPI 管脚能否驱动片外器件完全仰仗于 GPIO 模块的能力,因此在启用 SDRAM 模式之前务必确保 GPIO 的相关配置正确无误。初始化序列中的重要一步便是向 SDRAM 发送 LOAD MODE REGISTER(装载模式寄存器)命令,命令参数为 0x27,即设置 CAS 等待时间 为 2、猝发长度为整页; 2. 通过读取 EPI 状态 (EPISTAT) 的 INITSEQ 位获知初始化序列是否完成。 3. 如果不使用默认的工作频率范围及/或刷新参数,务必在激活SDRAM模式后尽快对 EPI SDRAM 配置寄存器 (EPISDRAMCFG) 配置寄存器中 FREQ 和 RFSH 位域进行配置。务必保障在 100 μs 初始化时间窗后 EPI 模块已经完成上述配置,这样 SDRAM 的内容才能保持不被破坏; 4. 可通过 EPISDRAMCFG 寄存器的 SLEEP 位将 SDRAM 置为低功耗的自刷新态。用户应了解 SDRAM 的基本工作原理,SDRAM 模式一旦启用便不得随意禁用,否则将不再为 SDRAM 提 供时钟并且导致 SDRAM 的内容全部丢失。 EPISDRAMCFG 寄存器的 SIZE 位域应按 SDRAM 芯片的实际容量进行配置。 FREQ 位域应按实际的工作频率选取对应的编码值。特定操作(例如,PRECHARGE 或 ACTIVATE) 之间的延时都是以外部时钟周期作为单位计算的,而外部时钟周期是由设置的工作频率范围决定的。 假如设置的工作频率范围高于实际工作频率,那么 SDRAM 的实际运行会更慢(因为按照更高频率 计算出的时钟周期数会多于实际所需的时钟周期数)。假如工作频率范围设置得过低,将可能造成 执行错误。 关于 SDRAM 模式下的时序参数,请参阅 “片外设备接口 (EPI)” 在 1233页。 外部信号连接 表 9-3 在 437页 定义了 EPI 模块信号与 SDRAM 芯片的连接方法。按照该表可连接 16 位宽、最大 512 Mb 的 SDRAM。请注意,连接 SDRAM 时,EPI 信号必须全部采用 8 mA 驱动(见 403页)。 未用到的 EPI 信号可当作 GPIO 使用,或启用其它备选功能。 表 9-3. EPI SDRAM 信号连接 EPI 信号 EPI0S0 EPI0S1 EPI0S2 EPI0S3 EPI0S4 EPI0S5 EPI0S6 EPI0S7 EPI0S8 EPI0S9 EPI0S10 EPI0S11 EPI0S12 EPI0S13 EPI0S14 EPI0S15 SDRAM 信号a A0 D0 A1 D1 A2 D2 A3 D3 A4 D4 A5 D5 A6 D6 A7 D7 A8 D8 A9 D9 A10 D10 A11 D11 A12b D12 BA0 D13 BA1 D14 D15 一月 06, 2012 437 Texas Instruments-生产数据 片外设备接口 (EPI) 9.4.1.2 9.4.1.3 9.4.1.4 表 9-3. EPI SDRAM 信号连接(续) EPI 信号 EPI0S16 EPI0S17 EPI0S18 EPI0S19 EPI0S20-EPI0S27 EPI0S28 EPI0S29 EPI0S30 EPI0S31 a. 假如此列中列出了两个信号,则都应与 EPI 信号连接起来。 b. 仅适用于 256/512 Mb SDRAM。 SDRAM 信号a DQML DQMH CASn RASn 没有使用 WEn CSn CKE CLK 刷新参数的配置 刷新次数取决于外部时钟频率、每模块的行数以及刷新周期。RFSH 域代表刷新次数,即每次自动刷 新之前需要保持多少个外部时钟周期。刷新次数的计算公式为: RFSH = (tRefresh_us / 行数) / 外部时钟周期 通常 SDRAM 的刷新周期为 64 ms,即 64000 μs。行数通常为 4096 或 8192。外部时钟周期以 μs 为单位取值,直接用 1000 除以时钟频率(以MHz为单位)就能得出。例如外部时钟频率 50 MHz 时,外部时钟周期即为 1000 / 50 = 20 ns,即 0.02 μs。假定 EPI 模块外接一个 SDRAM,每体包含 4096 行,且系统时钟频率 50MHz、EPIBAUD 寄存器设为 0,那么: RFSH = (64000/4096) / 0.02 = 15.625 μs / 0.02 μs = 781.25 RFSH 位域的默认值为 750 或 0x2EE,即行刷新间隔 15 μs。行刷新间隔应适当小于理论计算值, 预留出一定的裕量,因此务必确保 RFSH 的值小于等于上面等式计算的结果。例如当外部时钟为 25 MHz(每周期 40 ns)时,RFSH 不得超过 390。注意:当系统时钟是 25 MHz 时,或者当系统时 钟是 50 MHz 且 EPIBAUD 寄存器的 COUNT0 域配置为 1(2 分频)时,外部时钟即可能为 25 MHz。 假如刷新间隔设置不当(RFSH 过大),那么 SDRAM 将因为刷新不及时而丢失数据。 总线接口速率 EPI 控制器的 SDRAM 接口最高支持 50 MHz 外部时钟。EPI 时钟速率由 EPIBAUD 寄存器的 COUNT0 位域分频决定。当系统时钟 (SysClk) 为 50 MHz时,若 COUNT0 位域为 0x0000,则 SDRAM 接口 时钟同样是 50 MHz。当系统时钟频率高于 50 MHz 时,必须分频以确保外部时钟不超过 50 MHz 的上限,此时 COUNT0 位域至少应配置为 0x0001。 非阻塞式读操作流程 图 9-2 在 439页 描绘出非阻塞式读 n 个半字(n 是大于等于 1 的正整数)的信号时序。流程开始时, EPI 模块在总线上发送激