首页资源分类嵌入式处理器ARM MPU > xmc1300参考手册

xmc1300参考手册

已有 445042个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:xmc1300

    分    享:

    文档简介

    xmc1300参考手册,简体中文

    文档预览

    XMC1300 工业应用微控制器系列 XMC1000 家族 ARM® Cortex™-M0 32 位处理器核 参考手册 V1.0 2013-03 微控制器 2013-03 版 英飞凌科技股份有限公司出版 81726 慕尼黑,德国 © 2013 英飞凌科技股份有限公司 保留所有权利 法律声明 本文档中的信息在任何情况下都不应被视为一种条件或特性的保证。英飞凌科技公司在此声明,对于本文档给出 的任何实例或提示、任何典型值和 / 或任何与器件应用相关的信息,英飞凌科技股份公司也不承担任何保证和责 任,包括但不限于,保证不侵犯任何第三方的知识产权。 信息 有关技术方面的进一步信息、交货条款以及条件和价格,请联系最近的英飞凌科技公司办事处 (www.infineon.com)。 Warnings 由于技术需要,元件可能包含危险物质。如有问题请联系最近的英飞凌科技公司办事处。如果有理由预料英飞凌 科技公司元件的故障会导致生命支持设备或系统的故障,亦或影响其安全性或效果,则只有在得到英飞凌科技股 份公司书面批准的情况下,才能在这类设备或系统中使用这些元件。生命支持设备器件或系统的目的是植入人体 或支持和 / 或维护以及维持和 / 或保护人的生命。如果这些设备出现故障,可以有理由假设,用户或其他人可能 受到危害。 XMC1300 工业应用微控制器系列 XMC1000 家族 ARM® Cortex™-M0 32 位处理器核 参考手册 V1.0 2013-03 微控制器 XMC1300 XMC1000 家族 XMC1300 参考手册 修订历史:V1.0 2013-03 先前的版本: 无 页 主题 商标 C166™、 TriCore™ 和 DAVE™ 是英飞凌科技股份有限公司的商标。 ARM®、 ARM Powered® 和 AMBA® 是 ARM 有限公司的注册商标。 Cortex™、 CoreSight™、 ETM™、 Embedded Trace Macrocell™ 和 Embedded Trace Buffer™ 是 ARM 有限公司的商标。 我们期待您的指正 如果您发现本文档有错误、不明确或遗漏之处,敬请反馈和指正,以帮助我们不断改善 本文档的质量。请将您的建议 (包括需修改处在本文档中的对应位置)发送至: mcdocu.comments@infineon.com 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 目录 1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4 1.5 2 2.1 2.1.1 2.1.2 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4 2.4.1 2.5 2.5.1 2.5.2 2.5.3 2.5.4 XMC1300 XMC1000 家族 目录 引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 功能框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 核心处理单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 中央处理单元 (CPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 可编程多优先级中断系统 (NVIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 数学协处理器 (MATH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 系统单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 看门狗定时器 (WDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 实时时钟 (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 系统控制单元 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 伪随机位发生器 (PRNG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 外设单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 调试单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 中央处理单元 (CPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 程序员模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 处理器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 堆栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 内核寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 异常和中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 Cortex 微控制器软件接口标准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 CMSIS 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 存储器模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 存储器区、类型和属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 存储器访问次序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 存储器访问行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 存储器访问的软件顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17 存储器的端格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18 指令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-18 内部函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 异常模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 异常状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21 异常类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22 异常处理程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23 向量表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23 参考手册 L-1 V1.0, 2013-03 请遵守产品信息使用协议 2.5.5 2.5.6 2.6 2.6.1 2.7 2.7.1 2.7.2 2.7.3 2.8 2.8.1 2.8.2 2.8.3 2.9 2.9.1 2.9.2 3 3.1 4 4.1 4.1.1 4.1.2 4.2 5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.2 5.3 5.3.1 5.4 6 6.1 6.2 6.3 6.4 6.5 XMC1300 XMC1000 家族 目录 异常的优先级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25 异常进入和返回 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26 故障处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29 死锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29 电源管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30 进入休眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30 从休眠模式唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30 电源管理编程提示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31 专用外设 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31 关于专用外设 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31 系统控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32 系统定时器 SysTick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32 PPB 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32 SCS 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-33 SysTick 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-43 总线系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 总线接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 服务请求处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 原理框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 服务请求分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 中断子系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 嵌套向量中断控制器 (NVIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 中断节点分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 中断信号产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 NVIC 设计提示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 使用 CMSIS 函数访问 CPU 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 中断优先级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 中断响应时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 一般模块的中断结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 NVIC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 中断请求源概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 事件请求单元 (ERU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 事件请求选择单元 (ERS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 事件触发逻辑 (ETLx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 交叉连接矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 参考手册 L-2 V1.0, 2013-03 请遵守产品信息使用协议 6.6 6.7 6.8 6.9 6.9.1 6.10 6.10.1 7 7.1 7.1.1 7.1.2 7.2 7.2.1 7.2.2 7.2.3 7.3 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.4 7.4.1 7.5 7.6 7.7 7.8 7.8.1 7.8.2 7.8.3 7.9 8 8.1 8.1.1 8.2 8.3 8.3.1 8.3.2 8.3.3 8.4 XMC1300 XMC1000 家族 目录 输出门控单元 (OGUy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 初始化和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 ERU 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13 ERU0 连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 MATH 协处理器 (MATH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 除法器单元 (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 除法操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 操作数预处理 / 结果后处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 CORDIC 协处理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 功能概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 服务请求处理工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9 服务请求处理数据格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-13 服务请求处理的精度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 服务请求处理的性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 服务请求处理查找表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 全局函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 结果链接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 全局寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24 除法器寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31 CORDIC 寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-35 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41 存储器组织 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 存储器访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 Flash 存储器访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 SRAM 访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 ROM 访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 存储器保护策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 参考手册 L-3 V1.0, 2013-03 请遵守产品信息使用协议 8.4.1 8.4.2 9 9.1 9.1.1 9.1.2 9.1.3 9.1.4 9.2 9.2.1 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.4 9.5 9.5.1 9.5.2 9.6 9.7 9.7.1 9.8 9.8.1 9.8.2 9.8.3 9.8.4 9.8.5 9.8.6 10 10.1 10.2 10.3 10.4 10.4.1 10.4.2 10.4.3 11 11.1 XMC1300 XMC1000 家族 目录 知识产权 (IP) 保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9 运行时的存储器访问保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9 Flash 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 逻辑和物理状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 数据划分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 地址类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 模块专用定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 模块组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 存储单元阵列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 SFR 访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 存储器读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 存储器写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 存储器擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 擦除保护和写保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 冗余 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 省电模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 空闲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 休眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 纠错码 (ECC) 的质和实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 NVM SFRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9 序列示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 存储器写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 擦除存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16 校验存储器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17 写一个已写过的块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-17 休眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-19 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-20 外设访问单元 (PAU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 外设特权访问控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 外设可用性和存储器大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 PAU 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 外设特权访问寄存器 (PRIVDISn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 外设可用性寄存器 (AVAILn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 存储器大小寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11 窗式看门狗定时器 (WDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 参考手册 L-4 V1.0, 2013-03 请遵守产品信息使用协议 11.1.1 11.1.2 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.8.1 11.8.2 11.8.3 11.8.4 11.9 11.9.1 11.10 12 12.1 12.1.1 12.1.2 12.2 12.3 12.4 12.4.1 12.4.2 12.5 12.6 12.7 12.7.1 12.7.2 12.7.3 12.8 12.8.1 12.9 13 13.1 13.1.1 13.1.2 13.2 13.2.1 13.2.2 13.2.3 XMC1300 XMC1000 家族 目录 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 超时模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 预警模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3 错误服务操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4 服务请求处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 初始化和控制序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 操作的初始化和启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 软件停止和恢复操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 进入休眠 / 深度睡眠和恢复操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 预警警报处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 WDT 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-9 互联 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15 实时时钟 (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 RTC 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 寄存器访问操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 服务请求处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 周期性服务请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 定时器报警服务请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 初始化和控制序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 操作的初始化和启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 配置和使能周期性事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6 配置和使能定时器事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6 RTC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6 寄存器描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-18 系统控制单元 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 杂项控制功能 (GCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 服务请求处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 SRAM 存储器内容保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 ID 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 参考手册 L-5 V1.0, 2013-03 请遵守产品信息使用协议 13.3 13.3.1 13.3.2 13.3.3 13.3.4 13.3.5 13.3.6 13.3.7 13.3.8 13.4 13.4.1 13.4.2 13.5 13.5.1 13.5.2 13.5.3 13.5.4 13.6 13.7 13.8 13.9 13.9.1 13.9.2 13.9.3 13.9.4 13.9.5 13.9.6 14 14.1 14.2 14.2.1 14.2.2 14.2.3 14.3 14.4 14.4.1 14.4.2 15 15.1 15.1.1 15.2 15.2.1 XMC1300 XMC1000 家族 目录 电源管理单元 (PCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 系统状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 嵌入式稳压器 (EVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 上电复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 电源验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 电源电压监测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 VDDC 在负载变化期间的响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-9 Flash 功率控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10 复位控制单元 (RCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10 复位状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11 时钟控制单元 (CCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 时钟系统和控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 时钟门控控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 基于温度校准 DCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-17 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18 PCU 寄存器 (ANACTRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-20 PCU 寄存器 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-21 CCU 寄存器 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-22 CCU 寄存器 (ANACTRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-31 RCU 寄存器 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-32 GCU 寄存器 (SCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-36 伪随机数发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 工作模式描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 密钥加载模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 流模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 随机比特流的刷新和重新启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 PRNG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-3 数据 SFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 控制 SFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 通用串行接口通道 (USIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 操作 USIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 USIC 结构简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-4 参考手册 L-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 15.2.2 15.2.3 15.2.4 15.2.5 15.2.6 15.2.7 15.2.8 15.3 15.3.1 15.3.2 15.3.3 15.3.4 15.3.5 15.4 15.4.1 15.4.2 15.4.3 15.4.4 15.4.5 15.4.6 15.5 15.5.1 15.5.2 15.5.3 15.5.4 15.5.5 15.6 15.6.1 15.6.2 15.6.3 15.6.4 15.6.5 15.7 15.8 15.9 15.10 15.11 15.11.1 15.11.2 15.11.3 15.11.4 15.11.5 15.11.6 操作 USIC 通信通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10 输入级的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-18 操作波特率发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21 操作发送数据通路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-25 操作接收数据通路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-30 硬件端口控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-32 操作 FIFO 数据缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-33 异步串行通道 (ASC = UART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-45 信号说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-45 帧格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-46 操作 ASC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-48 ASC 协议寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-55 硬件 LIN 支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-60 同步串行通道 (SSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-62 信号说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-62 操作 SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-69 操作主模式下的 SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-76 操作从模式下的 SSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-81 SSC 协议寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-83 SSC 时序考虑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-88 IC 间总线协议 (IIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-93 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-93 操作 IIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-95 符号时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-100 数据流处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-104 IIC 协议寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-111 IC 间音频总线协议 (IIS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-117 引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-117 操作 IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-120 操作主模式下的 IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-124 从模式下操作 IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-127 IIS 协议寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-128 服务请求产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-133 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-133 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-133 初始化和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-133 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-133 地址映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-136 模块标识寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-137 通道控制和配置寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-138 协议相关寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-144 输入级寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-148 波特率发生器寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-152 参考手册 L-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 15.11.7 15.11.8 15.11.9 15.12 15.12.1 传送控制和状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-156 数据缓冲区寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-166 FIFO 缓冲区和旁路寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-175 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-193 USIC 模块 0 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-195 16 16.1 16.2 16.3 16.4 16.4.1 16.4.2 16.4.3 16.5 16.5.1 16.5.2 16.5.3 16.6 16.6.1 16.6.2 16.7 16.7.1 16.7.2 16.8 16.8.1 16.8.2 16.8.3 16.8.4 16.8.5 16.8.6 16.9 16.10 16.10.1 16.10.2 16.11 16.11.1 16.11.2 16.11.3 16.11.4 16.11.5 16.11.6 16.12 多功能模 / 数转换器 (VADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 简介和基本结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-4 电气模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-9 一般功能的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-11 一般时钟方案和控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-11 寄存器访问控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-11 优先通道和优先结果寄存器分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12 模拟模块的激活和控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-13 模拟转换器控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-13 校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-14 Σ-Δ 回路功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-14 转换请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-15 队列请求源处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-16 通道扫描请求源处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-19 请求源仲裁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-22 仲裁器操作和配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23 转换启动模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23 模拟输入通道配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-25 通道参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-25 别名功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-25 转换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-26 与标准转换比较 ( 极限检查 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-27 使用快速比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28 边界标志控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-29 转换时序安排 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-31 转换时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-33 兼容时序模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-33 加速时序模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-34 转换结果处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-36 转换结果的存储 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-36 数据对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-37 待读模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-38 结果 FIFO 缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-39 结果事件产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-40 数据修改 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-40 转换同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-47 参考手册 L-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 16.12.1 16.12.2 16.13 16.13.1 16.13.2 16.14 16.15 16.16 16.16.1 16.16.2 16.16.3 16.16.4 16.16.5 16.16.6 16.16.7 16.16.8 16.16.9 16.17 16.17.1 16.17.2 16.17.3 并行采样的同步转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-47 等距采样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-49 安全功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-51 断线检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-51 多路复用器诊断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-52 外部多路复用器控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-53 服务请求产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-54 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-55 模块标识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-60 系统寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-60 通用寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-63 仲裁和源寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-74 通道控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-98 结果寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-102 校准寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-110 其他寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-113 服务请求寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-124 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-134 产品的具体配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-134 XMC1300 中的模拟模块连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-135 XMC1300 中数字模块的连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-136 17 17.1 17.1.1 17.2 17.3 17.4 17.5 17.6 17.6.1 17.6.2 17.7 模拟比较器 (ACMP) 和超量程比较器 (ORC) . . . . . . . . . . . . . . . . . . . . . 17-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 模拟比较器 (ACMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 超量程比较器 (ORC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 ORC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-4 ACMP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-5 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-10 18 18.1 18.2 18.3 18.3.1 温度传感器 (TSE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 服务请求产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 19 19.1 19.1.1 19.1.2 捕获比较单元 4 (CCU4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-3 参考手册 L-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 19.2 19.2.1 19.2.2 19.2.3 19.2.4 19.2.5 19.2.6 19.2.7 19.2.8 19.2.9 19.2.10 19.2.11 19.2.12 19.3 19.4 19.5 19.5.1 19.5.2 19.6 19.6.1 19.6.2 19.7 19.7.1 19.7.2 19.8 19.8.1 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-6 CC4y 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-6 输入选择器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-8 连接矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9 启动 / 停止定时器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-11 计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-12 主动 / 被动规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-20 外部事件控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-20 多通道控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-40 定时器级联 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-43 PWM 抖动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-48 预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-53 CCU4 的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-56 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-69 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-73 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-73 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-73 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-74 初始化和系统依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-74 初始化序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-74 系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-75 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-75 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-81 定时器片 (CC4y) 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-95 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-128 CCU40 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-128 20 20.1 20.1.1 20.1.2 20.2 20.2.1 20.2.2 20.2.3 20.2.4 20.2.5 20.2.6 20.2.7 20.2.8 20.2.9 20.2.10 20.2.11 捕获比较单元 8 (CCU8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-4 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6 输入选择器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8 连接矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 启动 / 停止控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-12 计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-13 主动 / 被动规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-24 比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-25 外部事件控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-35 多通道支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-55 定时器级联 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-60 输出奇偶校验器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-65 参考手册 L-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 20.2.12 20.2.13 20.2.14 20.3 20.4 20.5 20.5.1 20.5.2 20.6 20.6.1 20.6.2 20.7 20.7.1 20.7.2 20.8 20.8.1 PWM 抖动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-69 预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-73 CCU8 的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-76 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-92 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-95 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-95 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-95 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-96 初始化和系统依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-96 初始化序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-96 系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-97 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-97 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-104 定时器片 (CC8y) 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-121 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-163 CCU80 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-163 21 21.1 21.1.1 21.1.2 21.2 21.2.1 21.2.2 21.2.3 21.2.4 21.2.5 21.2.6 21.2.7 21.3 21.3.1 21.3.2 21.4 21.5 21.5.1 21.5.2 21.6 21.6.1 21.6.2 21.7 21.7.1 21.7.2 21.7.3 位置接口单元 (POSIF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 原理框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-3 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4 功能选择器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-5 霍尔传感器控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-6 正交解码器控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-11 独立多通道模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-15 同步启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-16 使用 POSIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-16 服务请求产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-24 霍尔传感器模式标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-24 正交解码器标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-26 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-28 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-29 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-29 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-29 初始化和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-29 初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-29 系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-30 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-31 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-33 霍尔传感器模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-41 多通道模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-43 参考手册 L-11 V1.0, 2013-03 请遵守产品信息使用协议 21.7.4 21.7.5 21.8 21.8.1 22 22.1 22.1.1 22.2 22.2.1 22.2.2 22.2.3 22.2.4 22.2.5 22.2.6 22.2.7 22.3 22.4 22.5 22.6 22.7 22.8 22.8.1 22.8.2 22.8.3 22.9 23 23.1 23.1.1 23.1.2 23.1.3 23.2 23.2.1 23.2.2 23.3 23.4 23.5 23.6 23.7 23.8 23.8.1 23.8.2 23.8.3 XMC1300 XMC1000 家族 目录 正交解码器寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-46 中断寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-48 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-54 POSIF0 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-54 亮度和色彩控制单元 (BCCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 功能特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 通道结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3 指数调光 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3 线性色彩行走方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-12 Sigma-Delta 调制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-12 打包器 (Packer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-13 全局触发控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-14 陷阱 (Trap )控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-15 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-16 服务请求的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-17 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-18 初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-18 数 / 模转换器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-19 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-20 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-22 通道寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-40 调光引擎寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-45 互连 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-46 通用 I/O 端口 ( 端口 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 术语定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 通用和复用功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-3 输入操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-3 输出操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-4 硬件控制的 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5 省电模式操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5 模拟端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-6 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-7 初始化和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-7 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-10 端口输入 / 输出控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-12 焊盘滞后控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-16 引脚功能控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-21 参考手册 L-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 23.8.4 23.8.5 23.8.6 23.8.7 23.8.8 23.9 23.10 23.10.1 23.10.2 端口输出寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-26 端口输出修改寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-29 端口输入寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-32 端口引脚省电寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-34 端口引脚硬件选择寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-37 封装引脚概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-40 端口 I/O 功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-42 引导模式使用的端口引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-42 端口 I/O 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-43 24 24.1 24.1.1 24.1.2 24.1.3 24.1.4 24.1.5 24.2 24.2.1 24.2.2 24.2.3 24.3 引导和启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-1 启动序列和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 上电 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 系统复位释放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 启动软件 (SSW) 执行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 特殊系统功能配置为用户代码初始化的一部分 . . . . . . . . . . . . . . . . . . 24-3 时钟系统和其他功能配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 启动模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-4 XMC1300 的启动模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 引导模式索引 (BMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-7 启动模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-8 Flash 中用于 SSW 和 用户 SW 的数据 . . . . . . . . . . . . . . . . . . . . . . . . . 24-9 25 25.1 25.1.1 25.1.2 25.1.3 25.2 25.3 25.3.1 25.3.2 25.3.3 25.3.4 25.3.5 25.4 引导加载程序 (BSL) 和用户例程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 ASC (UART) 引导加载程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 引脚使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 ASC BSL 执行流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-1 ASC BSL 协议数据定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-5 SSC 引导加载程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-8 用户可用的固件例程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-10 擦除 Flash 页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-11 擦除、编程和校验 Flash 页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-11 请求 BMI 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-12 计算芯片温度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-12 计算用于温度比较的目标值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-12 Flash 中用户例程使用的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-12 26 26.1 26.1.1 26.1.2 26.2 26.2.1 26.2.2 调试系统 (DBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-1 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-1 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 调试系统操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 系统控制空间 (SCS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 数据观察点和跟踪 (DWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2 参考手册 L-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 目录 26.2.3 26.2.4 26.2.5 26.2.6 26.2.7 26.2.8 26.2.9 26.2.10 26.2.11 26.2.12 26.2.13 26.3 26.4 26.5 26.6 26.6.1 26.6.2 26.6.3 26.7 26.7.1 26.8 26.8.1 26.8.2 26.8.3 26.8.4 26.8.5 26.8.6 26.8.7 26.8.8 26.8.9 26.8.10 26.8.11 26.8.12 断点单元 (BPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-3 ROM 表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-3 调试工具接口访问 - SWD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-3 调试工具接口访问 - 单引脚调试 (SPD) . . . . . . . . . . . . . . . . . . . . . . . 26-5 调试访问和 Flash 保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-7 复位后停止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-7 停止调试和外设挂起 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-11 基于调试系统的处理器唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-12 调试访问服务器 (DAS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-12 调试信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-12 复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-13 调试系统省电操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-13 服务请求生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-13 调试行为 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-13 电源、复位和时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14 电源管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14 调试系统复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14 调试系统时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-15 初始化和系统相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-15 ID 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-15 调试系统寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-17 DFSR - 调试故障状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-18 DHCSR - 调试停止控制和状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . 26-19 DCRSR - 调试内核寄存器选择器寄存器 . . . . . . . . . . . . . . . . . . . . . 26-24 DCRDR - 调试内核寄存器数据寄存器 . . . . . . . . . . . . . . . . . . . . . . . 26-25 DEMCR - 调试异常和监视控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . 26-26 DWT_CTRL - 数据观察点控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . 26-27 DWT_PCSR - 程序计数器采样寄存器 . . . . . . . . . . . . . . . . . . . . . . . 26-28 DWT_COMPx - DWT 比较器寄存器 . . . . . . . . . . . . . . . . . . . . . . . . 26-28 DWT_MASKx - DWT 比较器屏蔽寄存器 . . . . . . . . . . . . . . . . . . . . . 26-29 DWT_FUNCTIONx - 比较器功能寄存器 . . . . . . . . . . . . . . . . . . . . . 26-30 BP_CTRL - 断点控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-32 断点比较器寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-32 图目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOF-1 表目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOT-1 参考手册 L-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 关于本文档 关于本文档 本参考手册是为嵌入式硬件和软件开发人员编写的,为读者提供有关 XMC1300 系列各 功能单元行为及其交互作用的详细描述。 本手册描述 XMC1300 微控制器系列的超集器件的功能。有关某一特定 XMC1300 衍生品 ( 衍生器件 ) 的可用功能 ( 特性 ),请参见相应的数据手册。为简单起见,本手册对各种不 同器件型号都使用集合术语 XMC1300。 XMC1000 家族用户文档 这组用户文档包括: • 参考手册 – 描述超集器件的功能。 • 数据手册 – 列出衍生器件的完整订购信息、可用功能和电气特性。 • 勘误表 – 列出与相关参考手册或数据手册所给出的技术规格的偏差之处。勘误表针对超集器 件提供。 注意: 请查阅本组文档的所有部分,以对您使用的器件有综合的认识。 与应用相关的指导由用户指南和应用笔记提供。 请访问 http://www.infineon.com/xmc1000 ,以获得这些文档的最新版本。 相关文档 以下是相关的参考文档: • ARM® Cortex M0 – 技术参考手册 – 用户指南、参考材料 • ARM®v6-M 体系结构参考手册 • AMBA® 3 AHB-Lite 协议规范 • AMBA® 3 APB 协议规范 版权声明 • CPU 一章中部分内容的版权归 ARM 公司所有,© 2009, 2010。所有权利保留。所用 内容经过 ARM 公司准许。 文本约定 本文档使用下述命名规则: • XMC1300 的功能单元用简单易懂的大写字母给出。例如:“USIC 单元支持 …”。 • 使用负逻辑的引脚用上划线表示。例如:“WAIT 输入有 …”。 参考手册 序言 , V2.0 P-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 关于本文档 • 寄存器中的位域和位一般表示为 “ 模块 _ 寄存器名 . 位域 ” 或 “ 模块 _ 寄存器名 . 位 ”。 例如:“USIC0_PCR.MCLK 位使能 …”。大多数寄存器名包含一个模块前缀,一个下 划线字符 “_” 将前缀与实际的寄存器名分开。( 例如 “USIC0_PCR”,其中 “USIC0” 是 模块名前缀, “PCR” 是内核寄存器的名称 )。在描述外设模块内核的章节中,引用寄 存器主要使用其内核寄存器名。外设模块的实现部分主要使用带模块前缀的实际寄存 器名称。 • 用于描述处理单元组或寄存器组的变量以大写和小写混合的形式出现。例如,寄存器 名 “MOFCRn” 指多个 “MOFCR” 寄存器,n 为变量。在第一次使用该寄存器的表述时 总是会给出变量的范围(例如,“n = 0-31”),在文档的其他部分也会根据需要重复给 出该范围。 • 默认的数制为十进制。十六进制常数以下标字母 “H” 为后缀,例如 100H。二进制常数 以下标字母 “B” 为后缀,例如 111B。 • 在文档正文中,当以集合形式定义寄存器域、组寄存器位或组引脚的范围时,将它们 表示为 “NAME[A:B]”,这种表示方式定义组的范围是从 B 到 A。单独的位、信号或引 脚以 “NAME[C]” 的形式表示,其中变量 C 的范围在正文中给出。例如:CFG[2:0] 和 SRPN[0]。 • 单位缩写如下: – MHz = 兆赫 – μs = 微秒 – kBaud, kbit = 1000 字符 / 比特每秒 – MBaud, Mbit = 1,000,000 字符 / 比特每秒 – Kbyte, KB = 1024 字节存储器 – Mbyte, MB= 1048576 字节存储器 一般来说,前缀 k 将单位乘以 1000,而前缀 K 将单位乘以 1024。因此,单位 Kbyte 将其前面的表述乘以 1024。单位 kBaud 将其前面的表述乘以 1000。前缀 M 换算 为 1,000,000 或 1048576。例如,1 Kbyte 为 1024 字节,1 Mbyte 为 1024 ×1024 字节,1 kBaud/kbit 为 1000 字符 / 比特每秒,1 MBaud/Mbit 为 1000000 字符 / 比 特每秒, 1 MHz 为 1,000,000 Hz。 • 数据格式的位数定义如下: – 字节 = 8 位 – 半字 = 16 位 – 字 = 32 位 – 双字 = 64 位 位功能术语 在阐述寄存器位或位域的表中,使用下述约定指示访问类型。 参考手册 序言 , V2.0 P-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 关于本文档 表1 位功能 rw rwh r w rh 位功能术语 描述 位或位域可读可写。 同 rw,但位或位域也可被硬件置位或复位。在发生硬件和软件写 冲突的情况下,如果没有特别说明,则软件写操作优先。 位或位域只能被读取 ( 只读 )。 位或位域只能被写入 ( 只写 )。读该寄存器将总是返回一个默认 值。 位或位域可被硬件修改 ( 读硬件,典型例子:状态标志 )。读该位 或位域返回该位或位域的当前状态。 写该位或位域无效。 寄存器访问方式 对寄存器和存储器单元的读和写访问有时是受限的。在存储器和寄存器访问表中,使用 下面的术语。 表2 符号 PV (SV), U BP 32 NC BE nBE 寄存器访问方式 描述 允许在特权 (管理)模式下访问。 注: ARM® Cortex M0 处理器不支持不同特权级别。XMC1000 家族只 支持特权 ( 管理 ) 模式。符号 “U” 和符号 “PV” 可用于表示允许在 该模式下访问。 表示只能在位保护被禁止时访问该寄存器。见存储器组织一章中对位保 护机制的详细描述。 只允许对该寄存器 / 地址范围进行 32 位字访问。 无变化,表示寄存器未发生改变。 表示访问该地址范围会产生总线错误。 表示访问该地址范围不会产生总线错误。 保留位 寄存器位域被定义为保留(Reserved)或 0 表示没有用于实现具体功能,这样的位域具 有以下行为。 • 读这些位域返回 0。 • 如果这些位域被定义为 r 或 rh,则应被写入 0。 • 如果这些位域被定义为 rw,必须被写入 0。 这些位域被保留。这些位域的详细说明见寄存器描述部分。 参考手册 序言 , V2.0 P-3 V1.0, 2013-03 请遵守产品信息使用协议 缩略语和首字母缩写词 下面是本文档中使用的首字母缩写词和术语: ACMP AHB AMBA ANACTRL APB ASC BCCU BMI CMSIS CPU CCU4 CCU8 CRC DCO ECC ERU EVR FPU GPIO HMI IIC IIS I/O JTAG LED LEDTS MSB NC NMI NVIC 模拟比较器 先进的高性能总线 先进的微控制器总线架构 模拟控制单元 先进的外设总线 异步串行通道 亮度和色彩控制单元 引导模式索引 Cortex 微控制器软件接口标准 中央处理单元 捕获比较单元 4 捕获比较单元 8 循环冗余码 数控振荡器 纠错码 事件请求单元 嵌入式稳压器 浮点单元 通用输入 / 输出 人机接口 集成电路间总线 ( 亦称 I2C) 集成电路间音频接口 输入 / 输出 联合测试行动组 = IEEE1149.1 发光二极管 LED 和触摸感应控制单元 最高有效位 未连接 不可屏蔽中断 嵌套向量中断控制器 参考手册 P-4 序言 , V2.0 XMC1300 XMC1000 家族 关于本文档 V1.0, 2013-03 请遵守产品信息使用协议 ORC PAU POSIF PRNG ROM RAM RTC SCU SFR SHS SPI SRAM SR SSC SSW TSE UART USIC VADC WDT 超量程比较器 外设访问单元 位置接口 伪随机数发生器 只读存储器 随机存取存储器 实时时钟 系统控制单元 特殊功能寄存器 采样保持定序器 串行外设接口 静态 RAM 服务请求 同步串行通道 启动软件 温度传感器 通用异步收发器 通用串行接口通道 通用模 / 数转换器 看门狗定时器 XMC1300 XMC1000 家族 关于本文档 参考手册 序言 , V2.0 P-5 V1.0, 2013-03 请遵守产品信息使用协议 引言 XMC1300 XMC1000 家族 引言 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 引言 1 引言 XMC1300 系列属于 XMC1000 工业微控制器家族,该家族基于 ARM Cortex-M0 处理器 核。XMC1300 系列器件针对电机控制、电源转换和 LED 照明应用而优化设计。 嵌入式控制应用的复杂性和计算能力需求与日俱增,要求微控制器具有强大的 CPU 性 能、集 成 的 外 设 功 能 和 快 速 的 开 发 环 境,既 缩 短 上 市 时 间,又 不 影 响 成 本 效 益。 XMC1300 微控制器的体系结构继承了英飞凌微控制器家族长期以来建立起来的硬件和 软件理念。 1.1 概述 XMC1300 系列器件将 Cortex-M0 核的扩展功能和性能与强大的片上外设子系统和片上存 储器单元整合在一起。下面是 XMC1300 系列器件所具备的关键特性: CPU 子系统 • CPU 核 – 高性能 32 位 Cortex-M0 CPU – 可执行 16 位 Thumb 指令集中的大多数指令 – 32 位 Thumb2 指令集的子集 – 保持 32 位性能的高代码密度 – 单周期 32 位硬件乘法器 – 支持操作系统的系统定时器 (SysTick) – 超低功耗 • 嵌套矢量中断控制器 (NVIC) • 事件请求单元 (ERU),用于外部和内部服务请求的可编程处理 • MATH 协处理器 (MATH),包含一个可计算三角函数的 CORDIC 单元和一个除法单元 片上存储器 • 8 KB 片上 ROM • 16 KB 片上高速 SRAM • 高达 200 KB 的片上 Flash 程序和数据存储器 通信外设 • 两个通用串行接口通道 (USIC),可作为 UART、2 位 SPI、4 位 SPI、IIC、IIS 和 LIN 接口使用 模拟前端外设 • A/D 转换器,最多可有 12 个通道,包含 2 个采样保持电路和一个增益可调节的快速 12 位模 / 数转换器 • 多达 8 通道的超量程比较器 (ORC) • 多达 3 个快速模拟比较器 (ACMP) 参考手册 体系结构概述 , V1.0 1-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 引言 工业控制外设 • 捕获 / 比较单元 4 (CCU4),用作通用定时器 • 捕获 / 比较单元 8 (CCU8),用于电机控制和电源转换 • 位置接口 (POSIF) ,用于连接霍尔传感器和正交编码器以及电机定位 • 亮度和色彩控制单元 (BCCU),用于 LED 色彩控制和调光应用 系统控制 • 窗式看门狗定时器 (WDT),针对安全敏感型应用 • 实时时钟模块 (RTC),支持告警功能 • 系统控制单元 (SCU),用于系统配置和控制 • 伪随机数发生器 (PRNG),能快速提供随机数据 具有单独位控制能力的输入 / 输出线 • 三态输入方式 • 推挽或漏极开路输出方式 • 可配置的焊盘滯回电压 调试系统 • 通过标准 ARM 串行线调试 (SWD) 接口或单引脚调试 (SPD) 接口访问 • 断点单元 (BPU) 支持最多 4 个硬件断点 • 观察点单元 (DWT) 支持最多 2 个观察点 封装信息 • PG-TSSOP-38 • PG-TSSOP-16 注: 有关某一具体型号的可用封装方面的详细信息,请查阅数据手册。 参考手册 体系结构概述 , V1.0 1-2 V1.0, 2013-03 请遵守产品信息使用协议 1.1.1 功能框图 下面的框图示出了 XMC1300 系统内的功能块及其基本连接。 XMC1300 XMC1000 家族 引言 模拟系统 EVR 2 x DCO 温度传感器 ANACTRL SFRs PRNG Flash SFRs 200k + 0.5k1) Flash 16k SRAM 8k ROM 存储器 16 位 APB总线 Cortex - M0 CPU NVIC 调试 系统 SWD SPD AHB - APB 桥 PAU MATH PORTS WDT SCU RTC AHB-Lite 总线 CCU40 USIC0 VADC ERU0 ACMP & ORC BCCU0 CCU80 POSIF0 1) 0.5kB 的扇区 0 (只读)。 图 1-1 XMC1300 功能框图 参考手册 体系结构概述 , V1.0 1-3 V1.0, 2013-03 请遵守产品信息使用协议 1.2 核心处理单元 XMC1300 系统内核包含 CPU 和存储器接口功能块。 XMC1300 XMC1000 家族 引言 1.2.1 中央处理单元 (CPU) ARM Cortex-M0 处理器基于面积和功耗高度优化的 32 位处理器核而构建,采用具有 3 级 流水线的冯 · 诺依曼体系结构。该处理器不仅通过小而强大的指令集和广泛优化的设计提 供非凡的能效,而且还提供了包括单周期乘法器在内的高端处理硬件。 该处理器的指令集基于 16 位 Thumb 指令集,并包含了 Thumb-2 技术。该指令集提供了现 代 32 位体系结构应有的优异性能,并且有比 8 位和 16 位微控制器更高的代码密度。 1.2.2 可编程多优先级中断系统 (NVIC) XMC1300 提供多个单独的中断节点,每个节点可以有 4 个中断优先级。大多数中断源都 被连接到一个专用的中断节点。在有些情况下,多源中断节点被合并到一起,以有效利 用系统资源。 这些节点可以被多个源请求激活,并可由中断子节点控制寄存器控制。 1.2.3 数学协处理器 (MATH) 数学协处理器 (MATH) 模块由两个独立的单元组成,支持 CPU 完成数学密集型计算:除法 器单元 (DIV) 执行有符号和无符号 32 位除法运算, CORDIC ( 坐标旋转数字计算机 ) 协 处理器执行三角函数、线性或双曲函数计算。 1.3 系统单元 XMC1300 控制器提供了一系列围绕 CPU 而设计的系统资源。 1.3.1 存储器 8 KB ROM 存储器用于执行启动代码和存储异常向量表。该 ROM 包含系统的基本初始化 序列代码, CPU 在复位解除后立即从该 ROM 执行程序。引导加载程序 (BSL) 和用户子 程序也存储在 ROM 中。 最多可达 200 KB 的片上 Flash 存储器用于存储代码和常量数据。其动态纠错功能为所有 读访问提供很高的读数据安全性。 16 KB 的片上代码 RAM (SRAM) 用于存储用户代码或数据以及系统变量 (例如系统堆 栈)。由于CPU通过AHB访问该SRAM,所以可为CPU代码执行提供零等待的访问时间。 1.3.2 看门狗定时器 (WDT) 窗式看门狗定时器的主要用途是改善系统的完整性。如果主程序因某种故障条件未能定 期维护看门狗,则 WDT 会触发系统复位或其他纠错动作,例如中断。其目的是将系统从 无反应状态带回到正常工作状态。 参考手册 体系结构概述 , V1.0 1-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 引言 1.3.3 实时时钟 (RTC) 实时时钟 (RTC) 是跟踪当前时间的时钟。几乎在任何一个需要维持精确时间并以数字格 式进行时钟显示的电子设备和计算机系统中都有 RTC。 1.3.4 系统控制单元 (SCU) 系统控制单元 (SCU) 处理所有系统任务,但与调试相关的任务除外。所有功能都密切联 系在一起,所以它们可以很方便地由一个单元来处理,这个单元就是 SCU。SCU 包含电 源控制单元 (PCU)、复位控制单元、时钟控制单元 (CCU) 和杂项控制单元 (GCU)。 CCU用64MHz的 DCO1振荡器产生主时钟(MCLK)和快速外设时钟(PCLK) 。PCU有一个 用于产生内核电压的嵌入式稳压器 (EVR)。 PCU 还提供电压监视检测器,以便在紧急情 况下 (例如掉电)保护系统性能。 1.3.5 伪随机位发生器 (PRNG) 伪随机位发生器 (PRNG) 可快速产生随机数据。 1.4 外设单元 XMC1300 提供一组支持工业应用的片上外设。 通用串行接口通道 (USIC) USIC 是一个灵活的接口模块,它能处理多种串行通信协议,如 ASC、LIN、SSC、I2C、 I2S。一个 USIC 模块包含两个独立的、可以并行使用的通信通道。集成的 FIFO 允许缓存 要发送和已接收的数据,对一些实时应用情况起到缓冲作用。USIC 有多个片选信号,允 许在同一通道与多个器件通信。 模 / 数转换器 (VADC) 通用模 / 数转换器模块包含一个按逐次逼近原理 (SAR) 工作的独立内核。其分辨率是从 8 位到 12 位可编程的。 ADC 内核提供一个通用的状态机,允许复杂的测量序列。多个内核可以被同步,数据转 换可以完全在后台进行。可以对多个触发事件划分优先级,这样可实现对时间关键型信 号的精确测量。转换结果的缓存和处理功能可避免数据丢失并保证一致性。自检机制可 用于进行似真性检查。 VADC 的基本结构支持清晰的软件架构,在这样的架构中软件任务可能只需读取有效结 果,而不需要关心启动转换。 模拟比较器 (ACMP) 和超量程比较器 (ORC) 模拟比较器用于比较两个模拟输入的电压,其数字输出指示哪一个输入电压较高。其中 一个输入既可以是内部参考电压,也可以来自外部引脚。比较器有低功耗模式,可帮助 降低总功耗。 参考手册 体系结构概述 , V1.0 1-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 引言 片内集成的超量程比较器用于对 VADC 的模拟输入引脚进行过压监视。 温度传感器 (TSE) 温度传感器产生一个直接指示晶片温度的测量结果,并能在温度测量值超过所选上限 / 下 限阈值时产生中断请求。 捕获 / 比较单元 4 (CCU4) CCU4 外设对需要使用通用定时器进行信号监视 / 调理以及产生脉冲宽度调制 (PWM) 信 号的系统来说是一个重要部件。电源的电子控制系统,类似开关模式电源或不间断电源, 可以很容易地使用 CCU4 外设的功能来实现。 CCU4 内部的模块化结构使其成为一个软件友好的系统,可以快速进行代码开发和在应 用之间移植。 捕获 / 比较单元 8 (CCU8) CCU8 外设在需要复杂脉冲宽度调制 (PWM) 信号 (控制互补的高边和低边开关)、多相 位控制或输出奇偶校验的应用中起重要作用。 CCU8 专为最先进的电机控制、多相位和 多电平电源电子系统而优化。 CCU8 内部的模块化结构使其成为一个软件友好的系统,可以快速进行代码开发和在应 用之间移植。 位置接口单元 (POSIF) POSIF 单元是一个灵活而强大的部件,它针对使用旋转编码器或霍尔传感器作为反馈回 路的电机控制系统。该模块的配置方案面向非常广泛的电机控制应用需求。 该接口面向高性能运动和位置监测,为工业和汽车电机应用构建简单和复杂的控制反馈 回路提供了可能。 亮度和色彩控制单元 (BCCU) BCCU 是针对 LED 照明应用的调光控制外设,可以控制多个 LED 通道。BCCU 为每个通 道提供一个单比特 sigma-delta 位流来控制亮度。通过使用专用的调光引擎,可以按照某 一指数曲线来渐变调节亮度,以使在人眼看来更为自然。该模块通过调节所选通道的相 对强度实现色彩控制,使用线性游走方案实现色彩的平滑改变。该模块还支持大功率多 通道 LED 灯具,通过选择性地 “ 打包 (packing)” 控制位流来提供设定的输出接通 时间。 通用 I/O 端口 端口为所有标准数字 I/O 提供一个通用和非常灵活的软件和硬件接口。每个端口单元都有 单独的接口用于通用 I/O 操作,还为片内外设提供连接,并对焊盘特性进行控制。 参考手册 体系结构概述 , V1.0 1-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 引言 1.5 调试单元 片上调试系统基于 ARM Cortex-M0TM 调试系统,提供 XMC1300 中内建的广泛的调试和仿 真特性。因此,可以在目标系统环境下调试运行在 XMC1300 上的用户软件。 调试单元由外部调试工具通过调试接口控制。调试器通过一组专用寄存器控制调试单 元,这组专用寄存器可通过调试接口访问。另外,调试接口还可被 CPU 控制,例如被监 控程序控制。 片内硬件或软件能触发多个断点。调试单元还支持单步调试以及任意指令注入和对整个 内部地址空间的读 / 写访问。断点触发信号的响应可以是 CPU 停机、一次监控程序调用 或一次数据传送。 为提高性能,可以通过调试接口得到在一个观察点 (见前面的描述)传送的数据。 参考手册 体系结构概述 , V1.0 1-7 V1.0, 2013-03 请遵守产品信息使用协议 CPU 子系统 XMC1300 XMC1000 家族 CPU 子系统 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2 中央处理单元 (CPU) XMC1300 基于 ARM Cortex-M0 处理器。这是一款针对广泛的嵌入式应用而设计的入门 级 32 位 ARM Cortex 处理器 。该 CPU 给用户带来了极大的益处,包括: • 易于学习和编程的简单架构 • 超低功耗,允许高能效工作 • 极佳的代码密度 • 确定性的高性能中断处理 • 与 Cortex-M 处理器家族向上兼容 ARM 参考文档 下面的文档可通过 http://infocenter.arm.com 访问。 [1] Cortex™-M0 Devices, Generic User Guide (ARM DUI 0467B) [2] ARMv6-M Architecture Reference Manual (ARM DDI 0419) [3] Cortex Microcontroller Software Interface Standard (CMSIS) ARM 参考图形 [4] http://www.arm.com 2.1 概述 Cortex-M0 处理器基于面积和功耗高度优化的、具有 3 级流水线的冯诺依曼体系结构 32 位处理器核而构建。该处理器通过小而强大的指令集和全面优化的设计获得了优异的能 效,同时提供高端处理硬件,包括一个单周期乘法器。 Cortex-M0 处理器采用 ARMv6-M 架构。该架构基于 16 位 Thumb® 指令集,并引入 Thumb-2 技术。Cortex-M0 指令集提供现代 32 位架构所能期望的非凡性能,同时具有比 其他 8 位和 16 位微控制器更高的代码密度。 Cortex-M0 处理器紧密地集成了一个可配置的 NVIC,实现了业内领先的中断性能。该 NVIC 提供 4 个中断优先级。处理器核与 NVIC 的紧密集成使中断服务程序 (ISR) 得以快 速执行,显著减小了中断延迟。这是通过寄存器硬件堆栈以及多加载和多存储操作的放 弃和重启能力实现的。中断处理程序不需要任何汇编包装代码,从而消除了 ISR 的代码 开销。尾链优化也在很大程度上减小了从一个 ISR 切换到另一个 ISR 的开销。 为了优化低功耗设计,NVIC 还与休眠模式紧密结合,其中深度休眠模式可使整个器件快 速下电。 2.1.1 特性 CPU 提供下述功能: • Thumb 指令集将高代码密度与 32 位性能相结合 • 适合低功耗应用的集成休眠模式 参考手册 CPU, V2.0 2-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) • 快速程序执行能力允许较慢的处理器时钟或增加休眠模式时间 • 单周期 32 位硬件乘法器 • 适合时间关键型应用的高性能中断处理 • 扩展的调试能力: – 串行线调试和单引脚调试减少了调试所需引脚数。 2.1.2 框图 Cortex-M0 的核心部件包括: 处理器核 CPU 提供大多数的 16 位 Thumb 指令和 32 位 Thumb2 指令集的子集。 嵌套向量中断控制器 NVIC 是一个嵌入式中断控制器,支持低延迟中断处理。 调试方案 XMC1300 实现了完整的硬件调试解决方案。 • 单引脚调试 (SPD) 或 2 脚串行线调试 (SWD) • 多种硬件断点和观察点选项 调试方案提供了对处理器和存储器的高度控制和可见性,即使对小封装器件也不例外。 Cortex -M0 组件 Cortex -M0 处理器 中断 嵌套向量 中断控制器 (NVIC) Cortex -M0 处理器核 总线矩阵 调试 断点和 观察点 单元 调试器 接口 调试访问端口 ( DAP) 图 2-1 参考手册 CPU, V2.0 Cortex-M0 框图 AHB-Lite 接口 2-2 单引脚或 串行线调试端口 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 系统级接口 Cortex-M0 处理器提供了单一的系统级接口,该接口使用 AMBA® 技术,能提供高速、低 延迟的存储器访问。 2.2 程序员模型 本节描述 Cortex-M0 的程序员模型。除了对每个内核寄存器进行描述外,还包含有关处 理器模式和堆栈的信息。 2.2.1 处理器模式 处理器模式有: • 线程模式 用于执行应用软件。处理器在复位结束后即进入线程模式。 • 异常处理模式 用于处理异常。处理器在结束所有异常处理后返回到线程模式。 2.2.2 堆栈 处理器使用满递减堆栈。这意味着堆栈指针保持最后入栈的数据项在存储器中的地址。 当处理器向堆栈中压入一个新数据项时,它先将堆栈指针减 1,然后将该数据项写入新的 存储器单元。处理器实现了两个堆栈,即主堆栈和进程堆栈。每个堆栈都有一个指针,分 别保存在不同的寄存器中,见 堆栈指针。 在线程模式,控制寄存器控制处理器使用主堆栈还是进程堆栈,见 控制寄存器。 在异常 处理模式,处理器总是使用主堆栈。处理器操作的选项为: 表 2-1 处理器模式、执行和堆栈使用选项一览表 处理器模式 线程模式 所执行的代码 应用软件 使用的堆栈 主堆栈或进程堆栈1) 异常处理模式 异常处理程序 主堆栈 1) 见 控制寄存器。 参考手册 CPU, V2.0 2-3 V1.0, 2013-03 请遵守产品信息使用协议 2.2.3 内核寄存器 XMC1300 XMC1000 家族 中央处理单元 (CPU) 低寄存器 高寄存器 堆栈指针 链接寄存器 程序计数器 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 SP (R13) LR (R14) PC (R15) PSR PRIMASK CONTROL 图 2-2 内核寄存器 处理器内核寄存器有: 表 2-2 名称 R0-R12 MSP PSP LR PC PSR APSR 内核寄存器一览表 类型1) 复位值 rw 未知 rw 见描述 rw 未知 rw 未知 rw 见描述 rw 未知 rw 未知 通用寄存器 PSP 程序状态寄存器 中断屏蔽寄存器 控制寄存器 MSP 特殊寄存器 描述 通用寄存器,页 2-5 堆栈指针,页 2-5 堆栈指针,页 2-5 链接寄存器,页 2-6 程序计数器,页 2-7 程序状态寄存器,页 2-7 应用程序状态寄存器,页 2-8 参考手册 CPU, V2.0 2-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 表 2-2 内核寄存器一览表 ( 续表 ) 名称 类型1) 复位值 描述 IPSR r EPSR 优先级 r 00000000H 未知 中断程序状态寄存器,页 2-8 执行程序状态寄存器,页 2-10 PRIMASK rw 00000000H 优先级屏蔽寄存器,页 2-11 CONTROL rw 00000000H 控制寄存器,页 2-11 1) 描述在线程模式和异常处理模式下程序执行期间的访问类型。调试访问可能与此不同。 通用寄存器 R0-R12 是用于数据操作的 32 位通用寄存器。 注: 有关内核寄存器编程方面的信息,请参见 ARMv6-M Manual [2]。 Architecture Reference Rx (x=0-12) 通用寄存器 Rx 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Value rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Value rw 域 Value 位 类型 描述 [31:0] rw 寄存器内容 堆栈指针 堆栈指针 (SP) 为寄存器 R13。在线程模式,控制寄存器的位 [1] 指示要使用的堆栈指针: • 0 = 主堆栈指针 (MSP)。这是复位值。 • 1 = 进程堆栈指针 (PSP)。 在复位时,处理器将地址 00000000H 中的值装入 MSP。 注: 有关内核寄存器编程方面的信息,请参见 ARMv6-M Manual [2]。 Architecture Reference 参考手册 CPU, V2.0 2-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SP 堆栈指针 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Value rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Value rw 域 Value 位 类型 描述 [31:0] rw 寄存器内容 链接寄存器 链接寄存器 (LR) 为寄存器 R14。它保存子程序、函数调用和异常的返回信息。复位时, LR 的值不确定。 注: 有关内核寄存器编程方面的信息,请参见 ARMv6-M Architecture Reference Manual [2]。 LR 链接寄存器 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Value rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Value rw 域 Value 位 类型 描述 [31:0] rw 寄存器内容 参考手册 CPU, V2.0 2-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 程序计数器 程序计数器 (PC) 为寄存器 R15,它含有当前程序地址。复位时,处理器将位于地址 00000004H 的复位向量值装入 PC。复位时该值的位 [0] 被装入到 EPSR 的 T 位,而且必 须为 1。 注: 有关内核寄存器编程方面的信息,请参见 ARMv6-M Architecture Reference Manual [2]。 PC 程序计数器 复位值 : 00000004H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Value rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Value rw 域 Value 位 类型 描述 [31:0] rw 寄存器内容 程序状态寄存器 程序状态寄存器 (PSR) 组合了: • 应用程序状态寄存器 (APSR) • 中断程序状态寄存器 (IPSR) • 执行程序状态寄存器 (EPSR) 这些寄存器的位域在 32 位 PSR 中是互斥的。 可以单独访问这些寄存器中的某一个,也可以将任意两个或全部三个寄存器组合在一起 访问。访问这些寄存器时使用寄存器名作为 MSR 或 MRS 指令的参数。例如: • 在 MRS 指令中使用 PSR 将读所有这些寄存器。 • 在 MSR 指令中使用 APSR 将写 APSR N, Z, C 和 V 位 PSR 的组合和属性是: 参考手册 CPU, V2.0 2-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 表 2-3 PSR 寄存器组合 寄存器 PSR 类型 rw1)2) 组合 APSR, EPSR 和 IPSR IEPSR r IAPSR rw1) EAPSR rw2) EPSR 和 IPSR APSR 和 IPSR APSR 和 EPSR 1) 处理器忽略对 IPSR 位的写操作。 2) 读 EPSR 位返回 0 值,处理器忽略对这些位的写操作。 应用程序状态寄存器 APSR 含有反映前一条指令执行情况的条件标志的当前状态 。其属性见表 2-2 的寄存器 一览表。 APSR 应用程序状态寄存器 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NZCV 0 rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 rw 域 位 类型 描述 N 31 rw 负标志 Z 30 rw 零标志 C 29 rw 进位或借位标志 V 28 rw 溢出标志 0 [27:0] r 保留 中断程序状态寄存器 IPSR 包含当前中断服务程序 (ISR) 的异常类型号。其属性见表 2-2 的寄存器一览表。 参考手册 CPU, V2.0 2-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) IPSR 中断程序状态寄存器 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ISR_NUMBER r r 域 0 ISR_NUMBER 位 [31:6] [5:0] 类型 r r 描述 保留 当前异常的编号 0D 线程模式 1D 保留 2D 保留 3D 硬故障 4D 保留 5D 保留 6D 保留 7D 保留 8D 保留 9D 保留 10D 保留 11D SVCall 12D 保留 13D 保留 14D PendSV 15D SysTick 16D IRQ0 ... 47D IRQ31 48D-63D 保留 更详细的信息见 2.5.2 节 异常类型。 参考手册 CPU, V2.0 2-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 执行程序状态寄存器 EPSR 包含 Thumb 状态位。其属性见表 2-2 的寄存器一览表。 在应用软件中使用 MSR 指令直接读 EPSR 将总是返回零值。在应用软件中使用 MSR 指 令写 EPSR 的操作被忽略。故障处理程序可通过检查堆叠在 PSR 中的 EPSR 值来确定 故障原因。见 2.5.6 节 异常进入和返回。 EPSR 执行程序状态寄存器 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 T 0 r r r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 r 域 位 类型 描述 0 [31:25] r 保留 T 24 r Thumb 状态位 见下面对 Thumb 状态的描述。 0 [23:0] r 保留 可中断 - 可重开始指令 如果在执行 LDM、STM、PUSH、POP 指令期间发生中断,则处理器放弃执行当前指令。 在中断服务结束后,处理器从开始处重新执行该指令。 Thumb 状态 Cortex-M0 仅支持在 Thumb 状态执行指令。下面的指令或位域可将 T 位清 0: • BLX、 BX 和 POP{PC} 指令 • 在异常返回时从堆叠的 xPSR 值恢复 • 异常进入时异常向量值的位 [0] 。 当 T 位为 0 时试图执行指令会导致硬故障或死锁。更详细的信息见 2.6.1 节 死锁。 参考手册 CPU, V2.0 2-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 异常屏蔽寄存器 异常屏蔽寄存器禁止处理器对异常进行处理。可以禁止那些对时间关键型任务或要求原 子性的代码序列可能有影响的异常。 异常的禁止或重新使能可以用 MSR 和 MRS 指令实现,也可以由 CPS 指令通过改变 PRIMASK 或 FAULTMASK 寄存器的值实现。 优先级屏蔽寄存器 PRIMASK 寄存器可避免具有可编程优先级的所有中断都被激活 。该寄存器的属性见 表 2-2 的寄存器一览表。 PRIMASK 优先级屏蔽寄存器 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PRI 0 MAS K r rw 域 0 PRIMASK 位 [31:1] 0 类型 r rw 描述 保留 优先级屏蔽 0B 无效。 1B 防止具有可编程优先级的所有中断都被激活 。 控制寄存器 控制寄存器控制处理器处于线程模式时使用的堆栈。该寄存器的属性见表 2-2 的寄存器 一览表。 参考手册 CPU, V2.0 2-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) CONTROL 控制寄存器 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 SPS EL 0 r rw r 域 0 SPSEL 0 位 [31:2] 1 0 类型 r rw r 描述 保留 活动堆栈指针 该位定义当前使用的堆栈。在异常处理模式,该位 的读出值为 0,对该位的写操作被忽略。 0B MSP 为当前堆栈指针 1B PSP 为当前堆栈指针 保留 异常处理模式总是使用 MSP,因此处理器在该模式下忽略对控制寄存器的活动堆栈指针 位的显性写操作。异常进入和返回机制自动更新控制寄存器。 在操作系统 (OS)环境下,建议在线程模式运行的线程使用进程堆栈,系统内核及异常 处理程序使用主堆栈。 默认情况下,线程模式使用 MSP。若要将线程模式下使用的堆栈指针切换到 PSP,需要 使用 MSR 指令将活动堆栈指针位设置为 1。 注: 在改变堆栈指针时,软件必须在 MSR 指令之后立即使用一条 ISB 指令。这样方可 保证 ISB 指令之后的指令使用新堆栈指针执行。 2.2.4 异常和中断 Cortex-M0 处理器支持中断和系统异常。处理器和 NVIC 处理所有异常并将其分为不同优 先级。中断或异常会改变正常的软件控制流。处理器使用异常处理模式处理除复位以外 的所有异常。更详细的信息见 2.5.6.1 节 异常进入和 2.5.6.2 节 异常返回。 NVIC 寄存器控制对中断的处理。更详细的信息见中断系统一章。 参考手册 CPU, V2.0 2-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2.2.5 数据类型 该处理器: • 支持以下数据类型: – 32 位字 – 16 位半字 – 8 位字节 • 按小端模式管理所有数据存储器访问。更详细的信息见 2.3.1 节 存储器区、类型和属 性。 2.2.6 Cortex 微控制器软件接口标准 对于 Cortex-M0 微控制器系统, Cortex 微控制器软件接口标准 (CMSIS) [3] 定义了: • 一种统一的方法来: – 访问外设寄存器 – 定义异常向量 • 名称: – 内核外设寄存器 – 内核异常向量 • RTOS 内核的器件无关接口。 CMSIS 包含对 Cortex-M0 处理器内核外设的地址定义和数据结构。 CMSIS 使开发者可重用模板代码,并可将来自不同中间件供应商的 CMSIS 兼容软件模 块组合在一起,从而简化了软件开发。软件供应商可以扩充 CMSIS,以包含其外设定义 和针对这些外设的访问函数。 本文档包含 CMSIS 定义的寄存器名称,并给出对访问处理器核和内核外设的 CMSIS 函 数的简要描述。 注: 本文档使用 CMSIS 定义的寄存器简称。在有些情况下,它们可能与在其他文档中 使用的架构简称不同。 下述各节给出有关 CMSIS 的更详细信息: • 2.7.3 节 电源管理编程提示 • 2.2.7 节 CMSIS 函数 • 用 CMSIS 访问 CPU 寄存器,位于中断系统一章 • NVIC 编程提示 ,位于中断系统一章 有关 CMSIS 的更多信息,请参见 http://www.onarm.com/cmsis。 2.2.7 CMSIS 函数 ISO/IEC C 代码不能直接访问某些 Cortex-M0 指令。本节描述由 CMSIS 提供的、能产生 这些指令的内部函数和可能由 C 编译器提供的内部函数。如果所用的 C 编译器不提供合 适的内部函数,可以使用在线汇编器访问相应的指令。 CMSIS 提供以下内部函数来产生 ISO/IEC C 不能直接访问的指令。 参考手册 CPU, V2.0 2-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 表 2-4 指令 CPSIE i CPSID i ISB DSB DMB NOP REV REV16 REVSH WFE WFI 产生某些 Cortex-M0 指令的 CMSIS 函数 CMSIS 内部函数 void __enable_irq (void) void __disable_irq (void) void __ISB (void) void __DSB (void) void __DMB (void) void __NOP (void) uint32_t __REV (uint32_t int value) uint32_t __REV16 (uint32_t int value) uint32_t __REVSH (uint32_t int value) void __WFE (void) void __WFI (void) CMSIS 还提供一些使用 MRS 和 MSR 指令来访问特殊寄存器的函数。 表 2-5 特殊寄存器 PRIMASK CONTROL MSP PSP 访问特殊寄存器的 CMSIS 函数 访问类型 CMSIS 函数 读 uint32_t __get_PRIMASK (void) 写 void __set_PRIMASK (uint32_t value) 读 uint32_t __get_CONTROL (void) 写 void __set_CONTROL (uint32_t value) 读 uint32_t __get_MSP (void) 写 void __set_MSP (uint32_t TopOfMainStack) 读 uint32_t __get_PSP (void) 写 void __set_PSP (uint32_t TopOfMainStack) 2.3 存储器模型 本节描述处理器的存储器映射和存储器访问行为。 处理器有固定的默认存储器映射,可 提供高达 4GB 的可寻址存储器。存储器映射情况如图 2-3 所示。 参考手册 CPU, V2.0 2-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 0xFFFFFFFF 器件 511MB 专用外设总线 1.0MB 0xE0100000 0xE00FFFFF 0xE0000000 0xDFFFFFFF 外部器件 1.0GB 0xA0000000 0x9FFFFFFF 外部RAM 1.0GB 外设 0x60000000 0x5FFFFFFF 0.5GB SRAM 0x40000000 0x3FFFFFFF 0.5GB Code 0x20000000 0x1FFFFFFF 0.5GB 0x00000000 图 2-3 存储器映射 处理器为内核外设寄存器保留专用外设总线 (PPB) 地址范围的区域,详见 2.8.1 节 关于 专用外设。 参考手册 CPU, V2.0 2-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2.3.1 存储器区、类型和属性 存储器映射被划分成多个区。每个区有限定的存储器类型,某些区有附加的存储器属性。 存储器类型和属性决定了访问这个区的行为。 存储器类型有: 正常 器件 强秩序 处理器可对事务重新排序以提高效率,或执行推测读。 处理器保持相对于其他针对器件或强秩序存储器的事务的事务顺 序。 处理器保持相对于所有其他事务的事务顺序。 对器件和强秩序存储器的不同访问顺序要求意味着存储器系统可以缓存一个对器件存储 器的写操作,但绝对不会缓存一个对强秩序存储器的写操作。 附加的存储器属性包括: 永不执行 (XN) 表示处理器阻止指令访问。在执行一条从存储器的 XN 区取出的 指令时产生硬故障 (HardFault)异常。 2.3.2 存储器访问次序 对于大多数由显性存储器访问指令引起的存储器访问而言,存储器系统不能保证这些访 问的完成顺序与程序的指令顺序一致,因为任何重新排序都不影响指令序列的行为。一 般来说,如果正确的程序执行取决于两次按程序顺序完成的存储器访问,则软件必须在 这两个存储器访问指令之间插入一条存储器屏障指令,见 2.3.4 节 存储器访问的软件次 序。 然而,存储器系统不保证对器件和强秩序存储器的某些访问的顺序。 对于两个存储器访 问指令 A1 和 A2,如果在程序顺序上 A1 先于 A2,则由这两条指令导致的存储器访问的 顺序如 图 2-4 所示。 A1 A2 正常访问 器件访问 强秩序访问 正常访问 - - - 器件访问 - < < 强秩序访问 - <- < 图 2-4 存储器系统访问次序 参考手册 CPU, V2.0 2-16 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 图中: • “-” 表示存储器系统不保证访问顺序。 • “<” 表示这两次访问遵循程序顺序,即 A1 总是先于 A2 执行。 2.3.3 存储器访问行为 对存储器映射中的每个区的访问行为如下: 表 2-6 存储器访问行为 地址范围 存储器区 存储器类 型1) 0x00000000- 代码 0x1FFFFFFF 正常 0x20000000- SRAM 0x3FFFFFFF 正常 0x40000000- 外设 0x5FFFFFFF 器件 0x60000000- 外部 RAM 0x9FFFFFFF 正常 0xA0000000- 外部器件 0xDFFFFFFF 器件 0xE0000000- 专用外设总线 强秩序 0xE00FFFFF 0xE0100000- 器件 0xFFFFFFFF 器件 1) 更详细的信息见 2.3.1 节 存储器区、类型和属性 。 XN1) XN XN XN XN 描述 程序代码的可执行区。可以在该区 存放数据。 数据的可执行区。 可以在该区存放 代码。 外设区。 数据的可执行区。 外部器件存储器。 该区包括 NVIC、系统定时器和系统 控制块。在该区只能使用字访问。 厂商专用。 代码区、 SRAM 区和外部 RAM 区都可存储程序。 2.3.4 存储器访问的软件顺序 程序流中指令的顺序不能总是保证对应的存储器事务的顺序。这是因为: • 为了提高效率,处理器可以改变某些存储器访问的顺序,前提是这样做不影响指令序 列的行为。 • 存储器映射中的存储器或器件有不同的等待状态。 • 有些存储器访问是被缓存的或是推测性的。 2.3.2 节 存储器访问次序一节描述了存储器系统保证存储器访问顺序的情况。如果存储器 访问的顺序很关键,软件必须包含存储器屏障指令,以强制存储器访问按顺序进行。处 理器提供下面的存储器屏障指令: 参考手册 CPU, V2.0 2-17 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) DMB DSB ISB 数据存储器屏障 (DMB) 指令保证未完成的存储器事务在其后的存储器 事务之前结束。 数据同步屏障 (DSB) 指令保证未完成的存储器事务在其后的指令执行 之前结束。 指令同步屏障 (ISB) 保证所有已完成的存储器事务的结果可被随后的指 令承认。 2.3.5 存储器的端格式 处理器将存储器视为从零开始向上编号的字节的线性集合。例如,字节 0-3 保存第一个 存储字,字节 4-7 保存第二个存储字。2.3.5.1 节 描述数据字是如何在存储器中存储的。 2.3.5.1 小端格式 在小端格式,处理器将一个字的最低有效字节 (lsbyte) 存储在编号最小的字节,而最高有 效字节 (msbyte) 存储在编号最大的字节。图 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-5 小端格式 ( 示例 ) 2.4 指令集 表 2-7 列 出 了 所 支 持 的 Cortex-M0 指令。有关指令和操作数的详细信息,请参见 Cortex™-M0 Devices, Generic User Guide [1]。 参考手册 CPU, V2.0 2-18 V1.0, 2013-03 请遵守产品信息使用协议 表 2-7 助记符 ADCS ADD{S} ADR ANDS ASRS B{cc} BICS BKPT BL BLX BX CMN CMP CPSID CPSIE DMB DSB EORS ISB LDM LDR LDR LDRB LDRH LDRSB XMC1300 XMC1000 家族 中央处理单元 (CPU) Cortex-M0 操作数 {Rd,} Rn, Rm {Rd,} Rn, Rd, label {Rd,} Rn, Rm {Rd,} Rm, label {Rd,} Rn, Rm #imm label Rm Rm Rn, Rm Rn, i i {Rd,} Rn, Rm Rn{!}, reglist Rt, label Rt, [Rn, ] Rt, [Rn, ] Rt, [Rn, ] Rt, [Rn, ] 简要描述 带进位加法 加法 PC 相对地址到寄存器 按位与 算数右移 转移 { 有条件 } 位清零 断点 带链接转移 带链接间接转移 间接转移 反值比较 比较 改变处理器状态,禁止中断 改变处理器状态,允许中断 数据存储屏障 数据同步屏障 异或 指令同步屏障 加载多个寄存器,后增 1 从 PC 相对地址加载寄存器 加载字到寄存器 加载字节到寄存器 加载半字到寄存器 加载有符号字节到寄存器 标志 N,Z,C,V N,Z,C,V N,Z N,Z,C N,Z N,Z,C,V N,Z,C,V N,Z - - - - 参考手册 CPU, V2.0 2-19 V1.0, 2013-03 请遵守产品信息使用协议 表 2-7 助记符 LDRSH LSLS LSRS MOV{S} MRS MSR MULS MVNS NOP ORRS POP PUSH REV REV16 REVSH RORS RSBS SBCS STM STR STRB STRH SUB{S} SVC 参考手册 CPU, V2.0 Cortex-M0 ( 续表 ) 操作数 Rt, [Rn, ] {Rd,} Rn, {Rd,} Rn, Rd, Rm Rd, spec_reg spec_reg, Rm Rd, Rn, Rm Rd, Rm {Rd,} Rn, Rm reglist reglist Rd, Rm Rd, Rm Rd, Rm {Rd,} Rn, Rs {Rd,} Rn, #0 {Rd,} Rn, Rm Rn!, reglist Rt, [Rn, ] Rt, [Rn, ] Rt, [Rn, ] {Rd,} Rn, #imm XMC1300 XMC1000 家族 中央处理单元 (CPU) 简要描述 加载有符号半字到寄存器 标志 - 逻辑左移 N,Z,C 逻辑右移 N,Z,C 传送 N,Z 从特殊寄存器传送到通用寄存 器 从通用寄存器传送到特殊寄存 N,Z,C,V 器 乘法, 32 位结果 N,Z 按位取反 N,Z 空操作 - 逻辑或 N,Z 寄存器出栈 - 寄存器入栈 - 反转字的字节顺序 - 反转每个半字的字节顺序 - 反转有符号半字的字节顺序 - 循环右移 N,Z,C 反向减法 N,Z,C,V 带借位减法 N,Z,C,V 存储多个寄存器,后增 1 - 按字存储寄存器 - 按字节存储寄存器 - 按半字存储寄存器 - 减法 N,Z,C,V 管理程序调用 - 2-20 V1.0, 2013-03 请遵守产品信息使用协议 表 2-7 助记符 SXTB SXTH TST UXTB UXTH WFE WFI Cortex-M0 ( 续表 ) 操作数 Rd, Rm Rd, Rm Rn, Rm Rd, Rm Rd, Rm - 简要描述 带符号字节扩展 带符号半字扩展 基于逻辑与的测试 无符号字节扩展 无符号半字扩展 等待事件 等待中断 XMC1300 XMC1000 家族 中央处理单元 (CPU) 标志 N,Z - 2.4.1 内部函数 ISO/IEC C代码不能直接访问某些Cortex-M0指令。能产生这些指令的内部函数由CMSIS 提供,也可能由 C 编译器提供。对这些函数的描述见 2.2.7 节。 2.5 异常模型 本节描述异常模型。 包括: • 异常状态 (2.5.1 节 ) • 异常类型 (2.5.2 节 ) • 异常处理程序 (2.5.3 节 ) • 向量表 (2.5.4 节 ) • 异常优先级 (2.5.5 节 ) • 异常进入和返回 (2.5.6 节 ) 2.5.1 异常状态 每个异常都有以下状态: 不活动 挂起 活动 活动并挂起 异常不活动,也不处于挂起状态。 异常正在等待处理器服务。 来自外设或软件的中断请求可将相应中断的状态改变为挂起状 态。 异常得到处理器服务,但服务尚未结束。 注: 一个异常处理程序可中断另一异常处理程序的执行。在这 种情况下,两个异常都处于活动状态。 异常正在被处理器服务,又产生一个来自相同异常源的挂起异 常。 参考手册 CPU, V2.0 2-21 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2.5.2 异常类型 异常类型见表 2-8 中的描述。 表 2-8 异常类型 异常类型 描述 复位 复位由上电或热复位操作引起。异常模型将复位作为一种特殊形 式的异常。当复位有效时,处理器可在一条指令的任何位置停止 运行。当复位解除时,处理器从向量表中的复位入口地址开始执 行程序。处理器以线程模式重新执行程序。 硬故障 (HardFault) 硬故障是一种在正常和异常处理期间因发生错误而产生的异常。 硬故障有固定的优先级 -1,意味着其优先级高于任何具有可编 程优先级的异常。 SVCall 管理程序调用 (SVC) 是由 SVC 指令触发的一种异常。在 OS 环境 下,应用程序可以使用 SVC 指令访问 OS 内核函数和驱动程 序。 PendSV PendSV 是一种中断驱动的系统级服务请求。在 OS 环境下,当 没有其他异常处于活动状态时,使用 PendSV 进行上下文切换。 SysTick SysTick 异常是系统定时器计数到零时产生的异常。软件也可以 产生 SysTick 异常。在 OS 环境下,处理器可以使用该异常作为 系统节拍。 中断 (IRQ) 中断,或称 IRQ,是由外设或软件请求产生的异常。所有中断都 不与指令执行同步。在系统中,外设使用中断与处理器通信。 表 2-9 异常号1) 不同异常类型的性质 IRQ 号 1) 异常类型 优先级 1 2 3 4-10 11 12-13 14 15 16 及以上 -13 -5 -2 -1 0 及以上 复位 保留 硬故障 保留 SVCall 保留 PendSV SysTick 中断 (IRQ) -3,最高 -1 可编程 3) 可编程 3) 可编程 3) 可编程3) 参考手册 CPU, V2.0 2-22 向量地址或偏 激活方式 移量2) 0x00000004 异步 - - 0x0000000C 同步 - - 0x0000002C 同步 - - 0x00000038 异步 0x0000003C 异步 0x00000040 异步 及以上4) V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 1) 为了简化软件层, CMSIS 仅使用 IRQ 号,因此除中断以外的所有异常都使用负值。 IPSR 返回异常号,见 中 断程序状态寄存器。 2) 更详细的信息见 2.5.4 节 向量表。 3) 见中断系统一章中的中断优先级寄存器。 4) 以 4 为步长增加。 对于异步异常 (复位除外) ,处理器在异常被触发到处理器进入异常处理程序之前这一 段时间还可以执行一些指令。 软件可以禁止表 2-9 中具有可编程优先级的异常,见中断系统一章中的中断清除 - 使能寄 存器。 有关硬故障的更详细信息,见 2.6 节 故障处理。 2.5.3 异常处理程序 处理器在处理异常时使用: 中断服务程序 (ISR) 故障处理程序 系统处理程序 中断 IRQ0 ~ IRQ31 是由 ISR 处理的异常。 硬故障是由故障处理程序处理的唯一异常。 PendSV、 SVCall、 SysTick 和硬故障都是由系统处理程序处理 的系统异常。 2.5.4 向量表 向量表包含堆栈指针的复位值和所有异常处理程序的起始地址,也称为异常向量。图 2-6 示出了向量表中异常向量的次序。每个向量的最低有效位必须为 1,表示异常处理程序使 用 Thumb 代码编写。 参考手册 CPU, V2.0 2-23 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 异常号 47 . . . IRQ号 31 偏移 0x00BC . . . 18 2 0x0048 17 1 0x0044 16 0 0x0040 15 -1 0x003 C 14 -2 0x0038 13 12 11 -5 0x002 C 10 9 8 7 6 5 4 0x0010 3 -13 0x000 C 2 1 0x0004 0x0000 图 2-6 向量表 向量表固定从地址 0x00000000 开始。 向量 IRQ31 . . . IRQ2 IRQ1 IRQ0 Systick PendSV 保留 SVCall 保留 硬故障 保留 复位 初始 SP 值 2.5.4.1 向量表重映射 在 XMC1300 中,向量表位于 ROM 内。因此,要根据表 2-10 所示的映射关系将向量表 重新映射到 SRAM 中。用户应用程序使用这些存储单元作为实际的异常和中断处理程序 的入口点。这是通过将这些处理程序的代码存放在该位置,或在该位置放置一条转移到 处理程序的指令来实现的。 例如,在发生因 IRQ0 引起的异常进入时,处理器从向量表读取处理程序的中间起始地址 2000’0040H ( 在 ROM 中固定 ) 并从该地址开始执行。如果因存储器大小的限制,实际的 处理程序位于另外一个地址,则地址 2000’0040H 应触发一条加载和一条转移指令,以跳 转到这个新地址单元。 参考手册 CPU, V2.0 2-24 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 注: 如果所有向量都要用到,用户应用需保留 SRAM 地址 2000’000CH - 2000’00BFH , 为重新映射向量表所用。 表 2-10 重映射的向量表 异常号 IRQ 号 向量 默认向量地址 重映射的向量地址 - - 初始 SP 值 0000’0000H 1000’1000H 1 - 复位 0000’0004H 1000’1004H1) 3 -13 硬故障 0000’000CH 2000’000CH 11 -5 SVCall 0000’002CH 2000’002CH 14 -2 PendSV 0000’0038H 2000’0038H 15 -1 SysTick 0000’003CH 2000’003CH 16-47 0-31 IRQn (n=0-31) 0000’0040H + (n*4) 2000’0040H + (n*4) 1) 重映射的复位向量地址是指用户模式下启动软件在退出启动过程之际要跳往的地址 (Flash 存储器起始地址 )。 2.5.5 异常的优先级 表 2-9 列出了所有异常及其相关联的优先级,其中: • 优先级值越低表示优先级越高 • 除复位和硬故障以外的所有异常都具有可编程优先级。 如果软件不配置任何优先级,则具有可编程优先级的所有异常的优先级都是 0。有关配置 异常优先级的信息见: • 系统处理程序优先级寄存器 SHPR2、 SHPR3。 • 中断系统一章中的中断优先级寄存器。 注: 可编程优先级值的范围是 0-192,步长为 64。这意味着具有固定负优先级值的复 位和硬故障异常总是具有比任何其他异常更高的优先级。 例如,给 IRQ[0] 分配一个较高的优先级值,给 IRQ[1] 分配一个较低的优先级值,这表示 IRQ[1] 比 IRQ[0] 有更高的优先级。如果 IRQ[1] 和 IRQ[0] 都有效,则 IRQ[1] 在 IRQ[0] 之前被处理。 如果多个挂起的异常具有相同的优先级,则具有最小异常号的挂起异常优先被处理。例 如,如果 IRQ[0] 和 IRQ[1] 都处于挂起状态,且二者具有相同的优先级,则 IRQ[0] 在 IRQ[1] 之前被处理。 当处理器正在执行一个异常处理程序时,如果发生了一个具有更高优先级的异常,则正 在执行的异常处理程序被抢占。如果在该异常被处理期间,发生了一个具有相同优先级 的异常,无论其异常号为何,该异常处理程序都不会被抢占。但是新中断的状态变为挂 起。 参考手册 CPU, V2.0 2-25 V1.0, 2013-03 请遵守产品信息使用协议 2.5.6 异常进入和返回 异常处理可以用下面的术语描述: XMC1300 XMC1000 家族 中央处理单元 (CPU) 抢占 当处理器正在执行一个异常处理程序时,一个具有比正被处理的 异常更高优先级的异常可以抢占该异常处理程序。 当一个异常抢占另一个异常时,这些异常被称为嵌套异常。更详 细的信息见 2.5.6.1 节 异常进入。 返回 本图源自参考文献 [4]。 异常返回发生在异常处理程序结束之后,并且: • 没有具有足够高优先级的挂起异常需要处理。 • 已结束的异常处理程序当时不在处理晚到异常。 处理器进行出栈操作并将处理器状态恢复到中断发生之前的状 态。更详细的信息见 2.5.6.2 节 异常返回。 参考手册 CPU, V2.0 2-26 V1.0, 2013-03 请遵守产品信息使用协议 尾链 (Tailchaining) XMC1300 XMC1000 家族 中央处理单元 (CPU) 该机制能加速异常服务。在一个异常处理程序结束时,如果有一 个挂起异常符合异常进入的要求,则出栈操作被跳过,系统控制 权转给新异常处理程序。 晚到 (Latearriving) 本图源自参考文献 [4]。 该机制加速抢占过程。如果在前一个异常的状态保存期间发生了 一个具有更高优先级的异常,处理器会转去处理优先级较高的异 常,并开始获取该异常的向量。状态保存过程不受后来的这个异 常的影响,因为要保存的状态对这两个异常来说是相同的。在从 该晚到异常的异常处理程序返回时,正常的尾链规则同样适用。 本图源自参考文献 [4]。 2.5.6.1 异常进入 存在一个具有足够高优先级的挂起异常,并且满足下述条件之一,则会发生异常进入。 • 处理器处于线程模式 • 新异常比正被处理的异常优先级高。在这种情况下,新异常会抢占原来的异常。 当一个异常抢占另一个异常时,这两个异常是嵌套的。 参考手册 CPU, V2.0 2-27 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 足够高的优先级意指该异常具有比由异常屏蔽寄存器设置的任何极限值更高的优先级, 见 异常屏蔽寄存器。优先级比该异常低的异常进入挂起状态,但不会被处理器处理。 当处理器开始处理一个异常时,处理器将信息压入到当前堆栈,除非该异常是一个尾链 或晚到异常。该操作被称为入栈, 8 个数据字的结构被称为栈帧。栈帧包含的信息如图 2-7 所示。 存 SP + 0x001C 储 SP + 0x0018 器 SP + 0x0014 地 SP + 0x0010 址 SP + 0x000C 减 SP + 0x0008 小 SP + 0x0004 SP + 0x0000 xPSR PC LR R12 R3 R2 R1 R0 SP 在中断前指向此处 SP 在中断后指向此处 图 2-7 异常栈帧 在入栈操作之后,堆栈指针指示位于栈帧的最低地址。栈帧被对齐到双字地址。 栈帧包含返回地址,这是被中断的程序的下一条指令的地址。该值在异常返回时被恢复 到 PC 中,以使被中断的程序从该地址恢复执行。 处理器执行一次向量获取操作,即从向量表读取异常处理程序的起始地址。入栈操作结 束后,处理器开始执行异常处理程序。与此同时,处理器写一个 EXC_RETURN 值到 LR。该值指示哪一个堆栈指针对应该栈帧,以及在异常进入发生前处理器处于什么工作 模式。 如果在异常进入期间没有发生具有更高优先级的异常,则处理器开始执行异常处理程 序,并且自动将相应的挂起中断的状态改变为活动状态。 如果在异常进入期间发生了另一个具有更高优先级的异常,则处理器开始执行该异常的 异常处理程序,并且不改变早先那个异常的挂起状态。这种情况就是晚到中断。 2.5.6.2 异常返回 当处理器处于异常处理模式并且执行下面一条试图将 PC 设置为一个 EXC_RETURN 值 的指令时,发生异常返回: • 加载 PC 的 POP 指令; • 使用任一寄存器的 BX 指令。 在异常进入时,处理器将一个 EXC_RETURN 值保存到 LR。异常机制依赖该值检测处理 器何时执行完异常处理程序。EXC_RETURN 值的位 [31:4] 被置 1。当该值被加载到 PC 时,处理器检测到异常处理完成,便开始异常返回过程。 EXC_RETURN 值的位 [3:0] 指 参考手册 CPU, V2.0 2-28 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 示所需要的返回堆栈和处理器模式。表 2-11 列出了 EXC_RETURN 值,以及对异常返回 行为的描述。 表 2-11 异常返回行为 EXC_RETURN[31:0] 描述 0xFFFFFFF1 返回到异常处理模式。 返回时从主堆栈获取状态。 返回后使用 MSP 执行。 0xFFFFFFF9 返回到线程模式。 返回时从 MSP 获取状态。 返回后使用 MSP 执行。 0xFFFFFFFD 返回到线程模式。 返回时从 PSP 获取状态。 返回后使用 PSP 执行。 所有其他值 保留。 2.6 故障处理 故障是异常的一个子集,见 2.5 节 异常模型。所有故障都导致硬故障(HardFault)异常 或引起死锁 (如果故障发生在硬故障处理期间)。下面是全部故障: • 在等于或高于 SVCall 的优先级执行一条 SVC 指令 • 在没有连接调试器的情况下执行一条 BKPT 指令 • 在执行加载或存储时系统发生总线错误 • 从一个 XN 存储器地址执行一条指令 • 从一个存储单元执行一条指令,系统因此产生总线故障 • 取异常向量时系统发生总线错误 • 执行一条未定义的指令 • 由于 T 位之前被清 0 而在非 Thumb 状态执行了一条指令 • 试图加载或存储到一个未对齐的地址 注: 只有复位能抢占具有固定优先级的硬故障处理程序。一个硬故障能抢占除复位和 另一硬故障以外的任何异常。 2.6.1 死锁 如果在执行硬故障处理程序时又发生了一个故障,则处理器进入死锁状态。如果在一个 异常返回使用 MSP 执行 PSR 出栈操作时系统产生了总线错误,处理器也同样进入死锁 状态。当处理器处于死锁状态时,它不执行任何指令。处理器会一直保持在死锁状态,直 到发生下面的一种情况: • 处理器被复位 • 处理器被调试器停止 参考手册 CPU, V2.0 2-29 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2.7 电源管理 Cortex-M0 处理器的休眠模式降低功耗。有两种休眠模式: • 休眠模式 • 深度休眠模式 SCR 的 SLEEPDEEP 位选择使用哪一种休眠模式,见系统控制寄存器 SCR。 本节描述进入休眠模式的机制以及从休眠模式唤醒的条件。 2.7.1 进入休眠模式 本节描述软件将处理器置于休眠模式所能使用的机制。 系统可能产生假性唤醒事件。例如,一次调试操作即可唤醒处理器。因此,软件必须能 在发生这种事件后使处理器返回到休眠模式。程序可以使用一个空闲循环将处理器重新 置回休眠模式。 等待中断 等待中断指令 WFI 会使处理器立即进入休眠模式。当处理器执行一条 WFI 指令时,它会 立即停止执行指令并进入休眠模式。 等待事件 等待事件指令 WFE 会使处理器进入休眠模式,但取决于一个单比特事件寄存器的值。当 处理器执行一条 WFE 指令时,它要检查该事件寄存器的值: 0 处理器停止执行指令并进入休眠模式。 1 处理器将该事件寄存器清 0 ,继续执行指令而不进入休眠模式。 如果该事件寄存器的值为 1,表示处理器在执行 WFE 指令后绝不能进入休眠模式。一般 来说,这是因为有一个外部事件生效。软件不能直接访问该寄存器。 退出时休眠 如果 SCR 的 SLEEPONEXIT 位被置 1,当处理器结束执行异常处理程序并返回线程模式 时,会立即进入休眠模式。 该机制仅用于处理器在有中断发生时才运行的应用中。 2.7.2 从休眠模式唤醒 处理器从休眠模式被唤醒的条件取决于使其进入休眠模式的机制。 从 WFI 或退出时休眠唤醒 下面的事件是 WFI 唤醒事件: • 复位事件 • 调试事件,如果调试被使能 • 具有能抢占任何当前活动异常的优先级的异常,如果 PRIMASK 被设置为 0。 参考手册 CPU, V2.0 2-30 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 注: 如果 PRIMASK 被置 1,具有比当前异常更高优先级的中断或异常会将处理器唤 醒。中断处理程序要等到处理器将 PRIMASK 清 0 后才会被执行。有关 PRIMASK 的更详细信息见异常屏蔽寄存器。 从 WFE 唤醒 以下事件是 WFE 唤醒事件: • 复位事件 • 具有能导致异常进入的足够高优先级的异常或中断 • 进入挂起状态的异常或中断,如果 SEVONPEND 被置 1 ( 见 SCR) • 调试事件,如果调试被使能 注: XMC1300 不支持外部事件。然而, SEV 指令会置位事件寄存器 。 2.7.3 电源管理编程提示 ISO/IEC C代码不能直接生成WFI和WFE指令。CMSIS提供的下述函数能生成这些指令: void __WFE(void) // 等待事件 void __WFI(void) // 等待中断 2.8 专用外设 下面各节是关于 ARM Cortex-M0 内核外设的参考文档。 2.8.1 关于专用外设 专用外设总线 (PPB) 的地址映射为: 表 2-12 内核外设寄存器区 地址 内核外设 0xE000E008- 系统控制块 0xE000E00F 0xE000E010- 系统定时器 0xE000E01F 0xE000E100- 嵌套向量中断控制器 0xE000E4EF 0xE000ED00- 系统控制块 0xE000ED3F 0xE000EF00- 嵌套向量中断控制器 0xE000EF03 描述 见 2.8.2 节 和 2.9.1 节 见 2.8.3 节和 2.9.2 节 见中断系统一章 见 2.8.2 节 和 2.9.1 节 见中断系统一章 参考手册 CPU, V2.0 2-31 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 2.8.2 系统控制块 系统控制块 (SCB) 提供系统实现方面的信息和进行系统控制,包括配置、控制和系统异 常报告。 2.8.2.1 系统控制块使用提示 要确保软件使用对齐的 32 位字访问系统控制块的所有寄存器。 2.8.3 系统定时器 SysTick 处理器有一个 24 位的系统定时器 SysTick。该定时器自重载值开始向下计数到零,再重 新加载,即在下一时钟周期回绕到 SYST_RVR 寄存器中的重载值,然后在随后的时钟周 期继续向下计数。 注: 当处理器因调试而停止执行时,计数器不进行减 1 计数。 2.8.3.1 SysTick 使用提示 中断控制器时钟更新 SysTick 的计数值。当选择处理器时钟并因为低功耗模式而停止该 时钟信号时,SysTick 计数器停止计数。在选用外部时钟时,该时钟在低功耗模式继续运 行, SysTick 可用作唤醒源。 要确保软件使用字对齐的操作访问 SysTick 寄存器。 如果 SysTick 计数器重载值和当前值在复位时不确定,则对 SysTick 计数器正确的初始 化过程为: 1. 对重载值编程。 2. 清除当前值。 3. 对控制和状态寄存器编程。 2.9 PPB 寄存器 CPU 专用外设寄存器的基地址为 E000E000H。 表 2-13 简称 寄存器一览表 描述 系统控制空间 (SCS) CPUID CPUID 基本寄存器 ICSR 中断控制和状态寄存器 偏移地址 访问方式 读写 D00H D04H PV, PV, 32 32 PV, PV, 32 32 描述 见 页 2-33 页 2-35 参考手册 CPU, V2.0 2-32 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 表 2-13 简称 寄存器一览表 ( 续表 ) 描述 AIRCR SCR 应用中断和复位控制寄 存器 系统控制寄存器 CCR 配置和控制寄存器 SHPR2 系统处理程序优先级寄 存器 2 SHPR3 系统处理程序优先级寄 存器 3 SHCSR 系统处理程序控制和状 态寄存器 系统定时器 (SysTick) SYST_CSR SysTick 控制和状态寄 存器 SYST_RVR SysTick 重载值寄存器 SYST_CVR SysTick 当前值寄存器 SYST_CALIB SysTick 校准值寄存器 偏移地址 访问方式 读写 D0CH PV, PV, 32 32 D10H PV, PV, 32 32 D14H PV, PV, 32 32 D1CH PV, PV, 32 32 D20H PV, PV, 32 32 D24H PV, PV, 32 32 010H 014H 018H 01CH PV, PV, 32 32 PV, PV, 32 32 PV, PV, 32 32 PV, 32 描述 见 页 2-37 页 2-38 页 2-40 页 2-41 页 2-42 页 2-43 页 2-43 页 2-46 页 2-47 页 2-48 2.9.1 SCS 寄存器 CPUID CPUID 寄存器包含处理器的部件号、版本和实现信息。 参考手册 CPU, V2.0 2-33 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) CPUID CPUID 基本寄存器 (E000ED00H) 复位值 : 410CC200H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 实现者 r 变体 r 系统架构 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 部件号 r 修订 r 域 修订 部件号 系统架构 变体 实现者 位 [3:0] [15:4] [19:16] [23:20] [31:24] 类型 r r r r r 描述 修订号 0H Patch 0 处理器的部件号 C20H Cortex-M0 系统架构 CH ARMv6-M 变体号 0H Revision 0 实现者代码 41H ARM 参考手册 CPU, V2.0 2-34 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) ICSR ICSR: • 提供: – PendSV 和 SysTick 异常的挂起置 1 和挂起清 0 位。 • 指示: – 正被处理的异常的异常号 – 是否有被抢占的活动异常 – 优先级最高的挂起异常的异常号 – 是否有中断处于挂起状态。 ICSR 中断控制和状态寄存器 (E000ED04H) 31 30 29 28 27 26 25 24 23 22 21 PEN PEN PEN PEN ISRP 0 DSV DSV DST DST 0 ENDI SET CLR SET CLR NG r rw w rw w r r 复位值 : 00000000H 20 19 18 17 16 0 VECTPEN DING r r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VECTPENDING 0 r r VECTACTIVE r 域 VECTACTIVE1) 0 VECTPENDING 0 位 [5:0] [11:6] [17:12] [21:18] 类型 r r r r 描述 活动异常的编号 00H 线程模式 非零值:当前活动异常的异常号。 注: 从该值减去 16 即可得到 CMSIS IRQ 号 ,该 IRQ 号用作中断清除 - 使能、置位 - 使能、清除 - 挂起、置位 - 挂起或优先级寄存器的索引,见 中断程序状态寄存器。 保留 读出值为 0 ;应写入 0。 挂起异常号 指示优先级最高的被使能的挂起异常的异常号。 0H 无挂起异常 非零值: 优先级最高的被使能挂起异常的异常号。 保留 读出值为 0 ;应写入 0。 参考手册 CPU, V2.0 2-35 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 域 位 类型 描述 ISRPENDING 22 r 0 [24:23] r PENDSTCLR 25 w 中断挂起标志 该位置 1 中断挂起标志,故障除外。 0B 中断不处于挂起状态。 1B 中断处于挂起状态。 保留 读出值为 0 ;应写入 0。 SysTick 异常挂起清除 0B 无效 1B 清除 SysTick 异常的挂起状态。 该位是只写位,其读出值不确定。 PENDSTSET 26 PENDSVCLR 27 PENDSVSET 28 rw SysTick 异常挂起置位 0D SysTick 异常未挂起。 1D SysTick 异常挂起。 向该位写 0 无效。 w PendSV 挂起清除 该位清除一个挂起的 PendSV 异常。 0B 不清除。 1B 清除 PendSV 异常的挂起状态。 rw PendSV 挂起置位 该位将一个 PendSV 异常的挂起状态置 1,或回读当 前状态。 0B PendSV 异常未挂起。 1B PendSV 异常挂起。 注: 向该位写 1 是将 PendSV 异常设置为挂起状态 的唯一方法。 软件向该位写 0 无效。 0 [31:29] r 保留 读出值为 0 ;应写入 0。 1) 该值与 IPSR 位 [5:0] 的值相同,见 中断程序状态寄存器。 注: 如果发生下面的情况,结果是不可预知的: 1. PENDSVSET 和 PENDSVCLR 位都被置 1。 2. PENDSTSET 和 PENDSTCLR 位都被置 1。 参考手册 CPU, V2.0 2-36 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) AIRCR AIRCR 寄存器提供数据访问的大小端状态和系统复位控制。要对该寄存器写入,必须向 VECTKEY 域写 0x5FA,否则处理器会忽略该写操作。 AIRCR 应用中断和复位控制寄存器 (E000ED0CH) 复位值 : FA050000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VECTKEY rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ENDI ANN ESS 0 SYS RES ETR 0 0 EQ r r ww r 域 0 0 SYSRESETREQ 0 ENDIANNESS VECTKEY 位 类型 0 r 1 w 2 w [14:3] r 15 r [31:16] rw 描述 保留 读出值为 0 ;应写入 0。 保留 必须写 0。 系统复位请求 0B 无效。 1B 请求一次系统级复位。 该位的读出值为 0。 保留 读出值为 0 ;应写入 0。 数据端格式 0B 小端 寄存器密钥 读出值不确定。 写入时,要向 VECTKEY 写 0x5FA ,否则该写操作 被忽略。 参考手册 CPU, V2.0 2-37 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SCR SCR 控制进入和退出低功耗状态的特性。 SCR 系统控制寄存器 (E000ED10H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 SEV ONP END 0 SLE EPD EEP SLE EPO NEXI T 0 r rw r rw rw r 域 位 0 0 SLEEPONEXIT 1 SLEEPDEEP 2 0 3 类型 r rw rw r 描述 保留 读出值为 0 ;应写入 0。 退出后休眠 (Sleep-on-exit) 该位指示从异常处理模式返回到线程模式后是否休 眠。 0B 返回线程模式时不休眠。 1B 从一个 ISR 返回到线程模式时进入休眠或深度 休眠。 将该位置 1 即可使一个应用变成中断驱动式应用,以 避免返回到空主程序。 低功耗休眠模式 该位控制处理器使用休眠或深度休眠作为其低功耗 模式。 0B 休眠 1B 深度休眠 保留 读出值为 0 ;应写入 0。 参考手册 CPU, V2.0 2-38 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 域 SEVONPEND 0 位 类型 4 rw [31:5] r 描述 挂起位置 1 时的事件发送控制 0B 只有被使能的中断或事件能唤醒处理器,被禁 止的中断不能唤醒处理器。 1B 被使能的事件和所有中断,包括被禁止的中 断,都可以唤醒处理器。 当一个事件或中断进入挂起状态时,该事件信号将 处理器从等待事件状态 (WFE)唤醒。如果处理器 不在等待某个事件,则该事件被记录下来并且影响 下一个 WFE。 保留 读出值为 0 ;应写入 0。 参考手册 CPU, V2.0 2-39 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) CCR CCR 是一个只读寄存器,它指示 Cortex-M0 处理器行为的某些方面。 CCR 配置和控制寄存器 (E000ED14H) 复位值 : 00000208H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 STK ALIG N 0 UNA LIGN _TR 0 P r r r r r 域 位 类型 0 [2:0] r UNALIGN_TRP 3 r 0 STKALIGN [8:4] r 9 r 0 [31:10] r 描述 保留 读出值为 0 ;应写入 0。 未对齐访问陷阱 该位的读出值总是为 1,指示所有未对齐的访问都会 产生硬故障。 保留 读出值为 0 ;应写入 0。 堆栈对齐 该位的读出值总是为 1,指示异常进入时按 8 字节堆 栈对齐。 在异常进入时,处理器使用堆叠的 PSR 的位 [9] 指示 堆栈对齐情况。在从异常返回时,处理器使用该堆 叠位恢复正确的堆栈对齐。 保留 读出值为 0 ;应写入 0。 参考手册 CPU, V2.0 2-40 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 系统处理程序优先级寄存器 SHPR2 和 SHPR3 寄存器为那些具有可编程优先级的异常处理程序设置优先级,其范围 为 0 ~192。 SHPR2 和 SHPR3 需要按字访问。使用 CMSIS 访问系统异常优先级时,要使用下面的 CMSIS 函数: • uint32_t NVIC_GetPriority(IRQn_Type IRQn) • void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) 系统故障处理程序、每个异常处理程序的优先级域和寄存器如表 2-14 所示。 表 2-14 系统故障处理程序优先级域 故障处理程序 域 寄存器描述 SVCall PRI_11 系统处理程序优先级寄存器 2,见页 2-41 PendSV PRI_14 系统处理程序优先级寄存器 3,见页 2-42 SysTick PRI_15 每个 PRI_N 域都是 8 位宽,但 XMC1300 只使用了每个域的位 [7:6] ,位 [5:0] 的读出值 为零,对这些位的写操作被忽略。 SHPR2 SHPR2 寄存器设置 SVCall 处理程序的优先级。 SHPR2 系统处理程序优先级寄存器 2 (E000ED1CH) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PRI_11 0 rw r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 r 域 0 参考手册 CPU, V2.0 位 类型 [23:0] r 描述 保留 读出值为 0 ;应写入 0。 2-41 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 域 PRI_11 位 类型 [31:24] rw 描述 系统处理程序 11 的优先级 SVCall。 SHPR3 SHPR3 寄存器设置 PendSV 和 SysTick 处理程序的优先级。 SHPR3 系统处理程序优先级寄存器 3 (E000ED20H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PRI_15 rw PRI_14 rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 r 域 0 PRI_14 PRI_15 位 类型 [15:0] r [23:16] rw [31:24] rw 描述 保留 读出值为 0 ;应写入 0。 系统处理程序 14 的优先级 PendSV。 系统处理程序 15 的优先级 SysTick 异常。 参考手册 CPU, V2.0 2-42 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SHCSR SHCSR 寄存器控制系统处理程序并提供其状态。 SHCSR 系统处理程序控制和状态寄存器 (E000ED24H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SVC ALL PEN 0 DED rw r 域 位 类型 描述 0 [14:0] r 保留 读出值为 0 ;应写入 0。 SVCALLPENDE 15 rw D 0 [31:16] r SVCall 挂起位 读时,该位反映挂起状态;写时,该位将挂起状态 更新为写入值。 0B SVCall 不处于挂起状态。 1B SVCall 处于挂起状态1)。 保留 读出值为 0 ;应写入 0。 1) 挂起状态位在异常发生时被置 1,在异常变为活动状态时被清 0。 2.9.2 SysTick 寄存器 SYST_CSR SYST_CSR 寄存器使能 SysTick 定时器的功能。 读 SYST_CSR 时会将 COUNTFLAG 位清 0。 参考手册 CPU, V2.0 2-43 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SYST_CSR SysTick 控制和状态寄存器 (E000E010H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 COU 0 NTF LAG r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CLK SOU RCE TICK INT ENA BLE r rw rw rw 域 位 类型 描述 ENABLE TICKINT 0 rw 计数器使能 该位使能 SysTick 计数器。 0B 计数器被禁止。 1B 计数器被使能。 1 rw SysTick 异常请求 该位使能 SysTick 的异常请求。 0B 向下计数到零时不产生 SysTick 异常请求。 1B 向下计数到零时产生 SysTick 异常请求。 在软件中,COUNTFLAG 位可用于确定 SysTick 是否 已计数到零。 CLKSOURCE 2 rw 0 [15:3] r 时钟源 该位选择 SysTick 定时器的时钟源。 0B 外部时钟1)。 1B 处理器时钟。 保留 读出值为 0 ;应写入 0。 COUNTFLAG 16 rw 计数器标志 如果自上一次读该寄存器以来定时器已计数到零, 该位返回 1。 0 [31:17] r 保留 读出值为 0 ;应写入 0。 1) 在 XMC1300 中,外部时钟是指片内 32 kHz 待机时钟。 参考手册 CPU, V2.0 2-44 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) 当 ENABLE 被置 1 时,计数器从 SYST_RVR 寄存器加载 RELOAD 值,然后向下计数。 计数到 0 时,计数器将 COUNTFLAG 置 1,同时根据 TICKINT 的值决定产生或不产生 SysTick 异常请求。然后,计数器重新加载 RELOAD 值,并开始计数。 参考手册 CPU, V2.0 2-45 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SYST_RVR SYST_RVR 寄存器指定要加载到 SYST_CVR 寄存器的起始值。 SYST_RVR SysTick 重载值寄存器 (E000E014H) 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 RELOAD r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RELOAD rw 域 RELOAD 0 位 类型 [23:0] rw [31:24] r 描述 重载值 该域设置要加载到 SYST_CVR 寄存器的值,该值在 SysTick计数器被使能并且其计数值达到0时被加载。 保留 读出值为 0 ;应写入 0。 关于计算 RELOAD 值的注释 1. RELOAD 值可以是 0x00000001-0x00FFFFFF 范围内的任何值。起始值可以为 0,但 不起作用。因为 SysTick 异常请求和 COUNTFLAG 仅在从 1 计到 0 时被激活。 2. RELOAD 值根据其用途计算 。例如,要产生一个周期为 N 个处理器时钟的多拍定时 器,需要使用的 RELOAD 值为 N-1。如果需要每 100 个时钟脉冲产生一次中断,应 将 RELOAD 设置为 99。 参考手册 CPU, V2.0 2-46 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SYST_CVR SYST_CVR 寄存器含有 SysTick 计数器的当前值。 写 SYST_CVR 时会将其清 0,并将 COUNTFLAG 状态位清 0。写该寄存器不会触发 SysTick 异常逻辑。读该寄存器返回其被访问时的值。 SYST_CVR SysTick 当前值寄存器 (E000E018H) 复位值 : XXXXXXXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 CURRENT r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CURRENT rw 域 CURRENT 0 位 类型 [23:0] rw [31:24] r 描述 SysTick 计数器当前值 读该寄存器时,这些位返回 SysTick 计数器的当前 值。 写任何值都会将该域清 0,同时也将 SYST_CSR.COUNTFLAG 位清 0。 保留 读出值为 0 ;应写入 0。 参考手册 CPU, V2.0 2-47 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中央处理单元 (CPU) SYST_CALIB SYST_CALIB 寄存器指示 SysTick 的校准特性。 SYST_CALIB SysTick 校准值寄存器 (E000E01CH) 复位值 : 40000147H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 NOR SKE EF W 0 rr r TENMS r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TENMS r 位域 TENMS 0 SKEW NOREF 位 类型 [23:0] r [29:24] r 30 r 31 r 描述 10 毫秒 用于 10ms 定时的重载值易受系统时钟偏斜误差的影 响。 TENMS 的缺省值是 0x000147。 保留 读出值为 0 ;应写入 0。 时钟偏斜 该位的读出值为 1。它指示由于时钟频率的原因, 10ms 的校准值是不精确的。 参考时钟 该位的读出值为 0。它指示使用外部提供的参考时 钟。 参考手册 CPU, V2.0 2-48 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 总线系统 3 总线系统 XMC1300 中的单主总线系统由一个基于行业内 AMBA 3 AHB-Lite 协议标准的、针对存储 器和高带宽片内外设的高性能系统总线和一个宽度较窄的、针对低带宽片内外设的 APB 总线组成。 3.1 总线接口 本章描述两种接口的功能特性。 • 存储器接口 • 外设接口 所有片内模块都采用小端数据格式实现。 存储器接口 片内存储器能在每个总线时钟周期接受一次传送请求。 存储器接口数据总线的宽度为32位。Flash存储器仅支持32位访问,而 SRAM允许 32位、 16 位和 8 位写访问。对 SRAM 的读访问总是 32 位宽。 外设接口 AHB-Lite 总线上的每个从设备都支持 32 位访问。另外: • USIC0 支持 8 位和 16 位访问 • MATH 协处理器支持对除法器寄存器的 16 位访问 APB 总线上的每个从设备都只支持 16 位访问。 注: 对存储器或外设从设备的非对齐存储器访问会导致硬故障异常。 参考手册 总线系统 , V1.0 3-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 服务请求处理 4 服务请求处理 在 XMC1300 系统中,硬件脉冲被称为系统请求 (SR) 。系统请求是在有连接的片内资源 之间发送触发 “ 消息 ” 的最快速的方式。 一个 SR 可产生下面任何一种请求: • 中断 • 外设动作 本章描述可用的服务请求和选择及处理这些请求的不同方式。 表 4-1 ERU NVIC SR 缩略语 事件请求单元 嵌套向量中断控制器 服务请求 4.1 概述 高效的服务请求处理是以请求源与请求处理单元之间的互连为基础的。XMC1300 提供了 固定和可编程的互连方案。 4.1.1 特性 系统为服务请求处理提供了以下特性: • 服务请求与请求处理单元之间的连接矩阵 – 固定连接 – 使用 ERU 的可编程连接 4.1.2 原理框图 图 4-1 示出了请求源与请求处理单元之间的交互作用。 参考手册 服务请求处理 , V1.0 4-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 服务请求处理 端口 片内单元输出 互连 ERU NVIC 请求 CPU核 CPU 片内单元输入 端口 图 4-1 服务请求处理原理框图 4.2 服务请求分配 图 4-2 示出了如何并发分配服务请求的例子。为了支持并发分配到多个接收者,接收模 块可以使能 / 禁止进入的请求。 参考手册 服务请求处理 , V1.0 4-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 服务请求处理 CCU4.SR3 NVIC (中断 ) VADC0. ERU0. 图 4-2 服务请求分配示例 与服务请求分配相关的单元可被划分为: • 嵌入式实时服务 • 中断服务 嵌入式实时服务 片内单元与 端口 (PORTS)之间的连接是实时应用,而且与芯片的封装相关。芯片引 脚的相关连接和可用性可以在下面的章节中查到: • 模块所在章节的 “ 互连 ” 部分 • “ 并行端口 ” 一章和数据手册中有关端口的内容 • “ 事件请求单元 ” 一章 中断服务 下面的表 4-2 给出了每个模块的服务请求数量,并说明了这些服务请求如何被分配给 NVIC 中断服务提供者。 在 XMC1300 中,服务请求的类型都是 “ 脉冲 ”。 表 4-2 模块 VADC CCU40 CCU80 POSIF0 USIC0 各模块的中断服务 请求源 12 4 4 2 6 NVIC 6 4 2 2 6 类型 脉冲 脉冲 脉冲 脉冲 脉冲 参考手册 服务请求处理 , V1.0 4-3 V1.0, 2013-03 请遵守产品信息使用协议 表 4-2 模块 BCCU0 MATH SCU ERU0 总计 各模块的中断服务 ( 续表 ) 请求源 1 1 3 4 37 NVIC 1 1 3 4 29 XMC1300 XMC1000 家族 服务请求处理 类型 脉冲 脉冲 脉冲 脉冲 - 参考手册 服务请求处理 , V1.0 4-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 5 中断子系统 XMC1300 中的中断子系统由嵌套向量中断控制器 (NVIC) 和各功能模块的中断产生模块 组成。 注: CPU 异常模型描述见 CPU 一章。 5.1 嵌套向量中断控制器 (NVIC) NVIC 是 Cortex M0 处理器单元的一个组成部分。因为与 CPU 紧密接合,所以它能提供 最低的中断延迟和对晚到中断的高效处理。 5.1.1 特性 NVIC 具有以下特性: • 32 个中断节点 • 每个中断节点有 4 个可编程优先级 • 支持尾链和晚到中断 • 软件产生中断 5.1.2 中断节点分配 表 5-1 按外设列出了服务请求源以及为其分配的 NVIC 中断节点。若要计算向量例程地 址,请参考 CPU 一章中的向量表一节。 表 5-1 服务请求 SCU.SR0 SCU.SR2 中断节点分配 节点 ID 0...2 ERU0.SR0 ERU0.SR3 MATH.SR0 MATH.SR1 NC USIC0.SR0 USIC0.SR5 VADC0.C0SR0 VADC0.C0SR1 VADC0.G0SR0 VADC0.G0SR1 3...6 7 8 9...14 15...16 17...18 描述 系统控制 SR0 是系统关键请求 SR1 是公共 SCU 请求 SR2 是比较器 (ACMPx 和 ORCx) 请求 外部请求单元 0 MATH 保留 通用串行接口通道 ( 模块 0) 模 / 数转换器 ( 公用 ) 模 / 数转换器 ( 组 0) 参考手册 NVIC, V1.5 5-1 V1.0, 2013-03 请遵守产品信息使用协议 表 5-1 中断节点分配 ( 续表 ) 服务请求 节点 ID 描述 VADC0.G1SR0 - 19...20 VADC0.G1SR1 模 / 数转换器 ( 组 1) CCU40.SR0 CCU40.SR3 21...24 捕获比较单元 4 ( 模块 0) CCU80.SR0 CCU80.SR1 25...26 捕获比较单元 8 ( 模块 0) POSIF0.SR0 POSIF0.SR1 27...28 位置接口 ( 模块 0) NC 29...30 保留 BCCU0.SR0 31 亮度控制单元 ( 模块 0) XMC1300 XMC1000 家族 中断子系统 5.1.3 中断信号产生 在 XMC1300 中,所有外设都只支持脉冲中断产生。脉冲中断也被描述为边沿触发中断。 脉冲中断是在处理器时钟 (MCLK) 的上升沿同步采样的中断信号。为保证 NVIC 检测到中 断,外设要将中断信号保持有效至少一个 MCLK 时钟周期,在此期间 NVIC 检测到中断 脉冲并将该中断锁存。 当处理器进入 ISR 时,它会自动清除中断的挂起状态,详见中断的硬件和软件控制。 处理器在异常进入时自动将其状态入栈,在异常退出时自动将其状态出栈,无任何指令 开销。该机制提供低延迟的的异常处理。 中断的硬件和软件控制 Cortex-M0 锁存所有中断。外设中断会因为下述原因之一而变成挂起状态: • NVIC 检测到中断信号激活,但中断未被激活 • NVIC 检测到中断信号的上升沿 • 软件写对应的中断挂起置位寄存器位,见中断挂起置位寄存器 NVIC_ISPR 一个挂起中断会一直保持其挂起状态,直到发生下述条件之一: • 处理器进入该中断的 ISR。这使中断的状态从挂起变为活动。然后: – NVIC 继续监视该中断信号。如果出现中断脉冲,则中断状态变为挂起并活动。在 这种情况下,当处理器从 ISR 返回时,中断状态变为挂起,可能会导致处理器立即 重新进入该中断的 ISR。 如果在处理器执行 ISR 期间中断信号未产生脉冲,则中断的状态在处理器从 ISR 返 回时变为非活动状态。 • 软件写对应的中断挂起清除寄存器位。 – 如果中断原来为挂起状态,则变为非活动状态;如果中断原来为活动且挂起状态, 则变为活动状态。 参考手册 NVIC, V1.5 5-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 5.1.4 NVIC 设计提示 即使在被禁止的情况下,中断节点也可以进入挂起状态。禁止一个中断节点只能防止处 理器从该节点进入中断处理。 NVIC 编程提示 软件使用 CPSIE i 和 CPSID i 指令使能和禁止中断。CMSIS 为这些指令提供下列内部函 数: void __disable_irq(void) // 禁止中断 void __enable_irq(void) // 使能中断 另外, CMSIS 还提供一些用于 NVIC 控制的函数,包括: 表 5-2 用于 NVIC 控制的 CMSIS 函数 CMSIS 中断控制函数 void NVIC_EnableIRQ (IRQn_t IRQn) void NVIC_DisableIRQ (IRQn_t IRQn) uint32_t NVIC_GetPendingIRQ (IRQn_t IRQn) void NVIC_SetPendingIRQ (IRQn_t IRQn) void NVIC_ClearPendingIRQ (IRQn_t IRQn) void NVIC_SetPriority (IRQn_t IRQn, uint32_t priority) uint32_t NVIC_GetPriority (IRQn_t IRQn) void NVIC_SystemReset (void) 描述 使能 IRQn 禁止 IRQn 如果 IRQn 为挂起状态,返回真 (1) 将 IRQn 置为挂起状态 清除 IRQn 的挂起状态 设置 IRQn 的优先级 读取 IRQn 的优先级 复位系统 输入参数 IRQn 是 IRQ 编号。要获取有关这些函数的详细信息,请参见 CMSIS 文档。 5.1.5 使用 CMSIS 函数访问 CPU 寄存器 CMSIS 函数使不同 Cortex-M 处理器之间的软件移植成为可能。使用 CMSIS 访问 NVIC 寄存器时,要使用下列函数: 表 5-3 CMSIS 访问 NVIC 的函数 CMSIS 函数 描述 void NVIC_EnableIRQ (IRQn_Type IRQn)1) 使能一个中断或异常。 void NVIC_DisableIRQ (IRQn_Type IRQn)1) 禁止一个中断或异常。 void NVIC_SetPendingIRQ (IRQn_Type IRQn)1) 将中断或异常的挂起状态置 1。 参考手册 NVIC, V1.5 5-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 表 5-3 CMSIS 访问 NVIC 的函数 ( 续表 ) CMSIS 函数 描述 void NVIC_ClearPendingIRQ (IRQn_Type 将中断或异常的挂起状态清 0。 IRQn)1) uint32_t NVIC_GetPendingIRQ (IRQn_Type 读取中断或异常的挂起状态。 IRQn)1) 如果挂起状态被置 1,该函数返回非零 值。 void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)1) 设置具有可编程优先级的中断或异常的 优先级。 uint32_t NVIC_GetPriority(IRQn_Type IRQn)1) 读取具有可编程优先级的中断或异常的 优先级。 该函数返回当前优先级。 1) 输入参数 IRQn 是 IRQ 的编号。 5.1.6 中断优先级 可以为中断节点分配四个优先级之一。优先级的步距为 64,其值从 0 到 192,由中断优 先级寄存器 (IPRx) 中的 8 位优先级域定义。较高的优先级值对应较低的优先级,因此优 先级值 0 对应最高的中断优先级。 由于每个 IPRx 寄存器中有 4 个优先级域,并且每个域对应一个中断节点,所以共需 8 个 IPRx 寄存器 (IPR0...IPR7) ,如 图 5-1 所示。 31 24 23 16 15 87 0 IPR7 PRI_3 (节点 31) PRI_2 (节点 30) PRI_1 (节点 29) PRI_0 (节点 28) . .. . .. IPRn PRI_3 (节点 4n+3) PRI_2 (节点 4n+2) PRI_1 (节点 4n+1) PRI_0 (节点 4n) ... ... IPR0 PRI_3 (节点 3) PRI_2 (节点 2) PRI_1 (节点 1) PRI_0 (节点 0) 图 5-1 中断优先级寄存器 中断节点 m (0...31) 的 IPR 编号和字节偏移可用下面的方法获得: 参考手册 NVIC, V1.5 5-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 • 对应的 IPR 编号 n 由下面的公式给出: n = m DIV 4 • 在该寄存器中,所需要的优先级域的字节偏移为 m MOD 4,其中: – 字节偏移 0 对应寄存器位 [7:0] – 字节偏移 1 对应寄存器位 [15:8] – 字节偏移 2 对应寄存器位 [23:16] – 字节偏移 3 对应寄存器位 [31:24] • 例如,中断节点 21 的优先级域位于 IPR5.[15:8],因为 – n = 21 DIV 4 = 5 – 字节偏移 = 21 MOD 4 = 1 注: IPRx 寄存器只能按字访问。 有关访问中断节点优先级配置的详细信息,请参见表 5-2 。该表提供了中断节点优先级 的软件视图。 5.1.7 中断响应时间 中断响应时间被定义为从检测到产生的中断脉冲并由 NVIC 锁存该中断开始到执行中断 处理程序的第一条指令的时间,该时间一般为 21 个 MCLK 时钟周期, 如 图 5-2 所示。 MCLK 1 2 15 16 17 18 19 20 21 中断请求 活动/采样 16周期的 ISR 进入延迟 LDR BX (重映射向量表中的指令) 位于重映射中断 向量的第一条指令 中断响应时间= 21 个MCLK周期 图 5-2 典型的中断响应时间 该中断响应时间基于下面的条件: • 中断产生被使能 • 不发生中断抢占、晚到中断或尾链中断 • 不考虑因存储器等待状态产生的延迟 5.2 一般模块的中断结构 一个模块可能有多个中断源。每个中断源一般都有下述结构 ( 见 图 5-3): • 一个中断源状态标志 • 一个置 1 位,允许软件将状态标志置 1 • 一个清 0 位,允许软件将状态标志清 0 参考手册 NVIC, V1.5 5-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 • 一个使能位,用于在发生硬件事件或状态标志置 1 位被置位 ( 即软件触发的中断 ) 时触 发中断 注: 如果一个标志置 1 事件 ( 因为一个外设硬件事件 ) 与一个标志清 0 事件 ( 因为软件 将清 0 位置 1) 在同一时钟周期发生,则置 1 比清 0 有更高的优先级。 注: 硬件事件将状态标志置 1 或软件写状态标志置 1 位都与中断产生是否被使能 / 禁止 无关。类似地,中断产生与状态标志的优先级无关。 另外,有些模块的中断源可能比中断信号线多。因此,它们包含一个中断路由管理单元, 能将中断源映射到中断信号线。 更详细的信息以及与上述一般结构不同的例外情况,请参见描述各模块的章节。本章最 后给出所有 XMC1300 中断源的一览表。 硬件 事件 X 清0位 置1 清0 状态标志 置1 置1位 使能位 OR N个 触发源 去 NVIC的服务请求输出 中断 路由 管理块 M 个输 出 图 5-3 典型的模块中断结构 要使一个模块的硬件事件能产生中断,软件必须: • 通过 NVIC_ISER 寄存器使能 NVIC 中被分配给该模块的中断节点。 • 如果模块有一个中断路由管理单元,选择一个可用的服务请求输出,通过该输出可以 向 NVIC 产生中断。这通常通过配置模块中的一个中断节点指针寄存器完成。 • 最后,将用于产生中断的模块硬件事件的中断使能位置 1。 参考手册 NVIC, V1.5 5-6 V1.0, 2013-03 请遵守产品信息使用协议 5.3 寄存器 XMC1300 XMC1000 家族 中断子系统 表 5-4 寄存器地址空间 模块 基地址 CPU PPB: 系统控制 E000E000H 空间 (SCS) 结束地址 E000EFFFH 备注 寄存器概览 绝对寄存器地址通过下面的加法公式计算: 模块基地址 + 偏移地址 表 5-5 简称 寄存器一览表 描述 嵌套向量中断控制器 (NVIC) NVIC_ISER 中断使能置位寄存器 NVIC_ICER 中断使能置零寄存器 NVIC_ISPR 中断挂起置位寄存器 NVIC_ICPR 中断挂起清零寄存器 NVIC_IPR0 NVIC_IPR7 中断优先级寄存器 5.3.1 NVIC 寄存器 偏移地址 访问方式 读 写 描述见 100H 180H 200H 280H 400H41CH U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页 5-7 页 5-9 页 5-10 页 5-11 页 5-12 NVIC_ISER ISER 寄存器使能中断节点,并指示哪些中断节点被使能。 参考手册 NVIC, V1.5 5-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 NVIC_ISER 中断使能置位寄存器 (E000E100H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SETENA rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SETENA rw 域 SETENA 位 类型 [31:0] rw 描述 中断节点使能置位 0B 读:中断节点被禁止。 写:无效。 1B 读:中断节点被使能。 写:使能中断节点 如果一个挂起中断被使能,则 NVIC 会根据优先级激活该中断。如果一个中断未被使能, 中断信号有效会将中断状态变为挂起,但 NVIC 绝不会激活该中断,无论其优先级如何。 参考手册 NVIC, V1.5 5-8 V1.0, 2013-03 请遵守产品信息使用协议 NVIC_ICER ICER 寄存器禁止中断节点,并指示哪些中断节点被使能。 XMC1300 XMC1000 家族 中断子系统 NVIC_ICER 中断使能清零寄存器 (E000E180H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLRENA rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLRENA rw 域 CLRENA 位 类型 [31:0] rw 描述 中断节点使能清零 0B 读:中断节点被禁止。 写:无效。 1B 读:中断节点被使能。 写:禁止中断节点。 参考手册 NVIC, V1.5 5-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 NVIC_ISPR ISPR 寄存器强制中断节点进入挂起状态,并指示哪些中断节点处于挂起状态。 NVIC_ISPR 中断挂起置位寄存器 (E000E200H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SETPEND rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SETPEND rw 域 SETPEND 位 类型 [31:0] rw 描述 中断节点挂起置位 0B 读:中断节点未挂起。 写:无效。 1B 读:中断节点被挂起。 写:将中断状态变为挂起。 注: 向一个 ISPR 位写 1 对应于: - 对处于挂起状态的中断节点不起作用。 - 对被禁止的中断节点,将其状态设置为挂起。 参考手册 NVIC, V1.5 5-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 NVIC_ICPR ICPR 寄存器清除中断节点的挂起状态,并指示哪些中断节点处于挂起状态。 NVIC_ICPR 中断挂起清零寄存器 (E000E280H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CLRPEND rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CLRPEND rw 域 CLRPEND 位 类型 [31:0] rw 描述 中断节点挂起清零 0B 读:中断节点未挂起。 写:无效。 1B 读:中断节点被挂起。 写:清除中断节点的挂起状态。 注: 向一个 ICPR 位写 1 不影响对应中断节点的活动状态。 参考手册 NVIC, V1.5 5-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 中断子系统 NVIC_IPRx (x=0-7) IPR0-IPR7 寄存器为每个中断节点提供一个 8 位的优先级域。每个寄存器保存 4 个优先 级域。 每个优先级域保持一个优先级值, 0-192。优先级值越低,对应中断节点的优先级越高。 处理器只使用了每个域的位 [7:6],位 [5:0] 的读出值为 0,对这些位的写操作被忽略。这 意味着向一个优先级寄存器写入 255 时,实际保存到该寄存器的值为 192。 NVIC_IPRx (x=0-7) 中断优先级寄存器 x (E000E400H + 4*x) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 PRI_3 rw PRI_2 rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PRI_1 rw PRI_0 rw 域 PRI_3 PRI_2 PRI_1 PRI_0 位 类型 [31:24] rw [23:16] rw [15:8] rw [7:0] rw 描述 优先级,字节偏移 3 优先级,字节偏移 2 优先级,字节偏移 1 优先级,字节偏移 0 5.4 中断请求源概览 下面的几页给出了所有 XMC1300 中断源及其相关寄存器位的一览表。 参考手册 NVIC, V1.5 5-12 V1.0, 2013-03 请遵守产品信息使用协议 参考手册 NVIC, V1.5 表 5-6 中断源一览表 IRQ 中断节点 中断源 状态标志 中断使能 置位标志 清除标志 节点指针 寄存器 位 寄存器 位 寄存器 位 寄存器 位 寄存器 位 0 SCU.SR0 Flash double bit SCU_ FLECC2I SCU_ FLECC2I SCU_ FLECC2I SCU_ FLECC2I - - ECC1) SRRAW SRMSK SRSET SRCLR NVM_NVM ECC2REA - - - - NVM_NVM RSTECC - - STATUS D PROG Flash operation SCU_ FLCMPLTI NVM_ INT_ON SCU_ FLCMPLTI SCU_ FLCMPLTI - - complete SRRAW NVMCONF SRSET SRCLR SRAM parity error SCU_ PESRAMI SCU_ PESRAMI SCU_ PESRAMI SCU_ PESRAMI - - SRRAW SRMSK SRSET SRCLR USIC RAM parity SCU_ PEU0I SCU_ PEU0I SCU_ PEU0I SCU_ PEU0I - - error SRRAW SRMSK SRSET SRCLR Loss of clock SCU_ LOCI SCU_ LOCI SCU_ LOCI SCU_ LOCI - - SRRAW SRMSK SRSET SRCLR 5-13 XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 中断使能 置位标志 清除标志 节点指针 寄存器 位 寄存器 位 寄存器 位 寄存器 位 寄存器 位 1 SCU.SR1 Standby clock SCU_ SBYCLKFI SCU_ SBYCLKFI SCU_ SBYCLKFI SCU_ SBYCLKFI - - failure SRRAW SRMSK SRSET SRCLR VDDP pre- SCU_ VDDPI SCU_ VDDPI SCU_ VDDPI SCU_ VDDPI - - warning SRRAW SRMSK SRSET SRCLR VDDC drops SCU_ VDROPI SCU_ VDROPI SCU_ VDROPI SCU_ VDROPI - - below VDROP SRRAW SRMSK SRSET SRCLR VDDC rises SCU_ VCLIPI SCU_ VCLIPI SCU_ VCLIPI SCU_ VCLIPI - - above VCLIP SRRAW SRMSK SRSET SRCLR TSE done SCU_ TSE_ SCU_ TSE_ SCU_ TSE_ SCU_ TSE_ - - SRRAW DONE SRMSK DONE SRSET DONE SRCLR DONE TSE compare SCU_ TSE_HIGH SCU_ TSE_HIGH SCU_ TSE_HIGH SCU_ TSE_HIGH - - high SRRAW SRMSK SRSET SRCLR TSE compare low SCU_ TSE_LOW SCU_ TSE_LOW SCU_ TSE_LOW SCU_ TSE_LOW - - SRRAW SRMSK SRSET SRCLR 5-14 WDT pre-warning SCU_ PRWARN SCU_ PRWARN SCU_ PRWARN SCU_ PRWARN - - SRRAW SRMSK SRSET SRCLR RTC periodic SCU_ PI - - SCU_ PI SCU_ PI - - event SRRAW SRSET SRCLR RTC alarm SCU_ AI - - SCU_ AI SCU_ AI - - SRRAW SRSET SRCLR RTC CTR Mirror SCU_ RTC_CTR SCU_ RTC_CTR SCU_ RTC_CTR SCU_ RTC_CTR - - Register updated SRRAW SRMSK SRSET SRCLR RTC ATIM0 Mirror SCU_ RTC_ SCU_ RTC_ SCU_ RTC_ SCU_ RTC_ - - Register updated SRRAW ATIM0 SRMSK ATIM0 SRSET ATIM0 SRCLR ATIM0 XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 RTC ATIM1 Mirror SCU_ RTC_ SCU_ RTC_ SCU_ RTC_ SCU_ RTC_ - - Register updated SRRAW ATIM1 SRMSK ATIM1 SRSET ATIM1 SRCLR ATIM1 RTC TIM0 Mirror SCU_ RTC_TIM0 SCU_ RTC_TIM0 SCU_ RTC_TIM0 SCU_ RTC_TIM0 - - Register updated SRRAW SRMSK SRSET SRCLR RTC TIM1 Mirror SCU_ RTC_TIM1 SCU_ RTC_TIM1 SCU_ RTC_TIM1 SCU_ RTC_TIM1 - - Register updated SRRAW SRMSK SRSET SRCLR V1.0, 2013-03 请遵守产品信息使用协议 5-15 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 中断使能 寄存器 位 寄存器 2 SCU.SR2 Out of range comparator x event (x=0-7) SCU_ SRRAW ORCxI SCU_ SRMSK Analog comparator x event (x=0-2) SCU_ SRRAW ACMPxI SCU_ SRMSK 3, 4, ERU0. 5, 6 SR[3:0] ERU0_IOUTx (x=0-3) See section on ERU0 for details. 7 MATH. SR0 CORDIC end of calculation MATH_ EVFR CDEOC MATH_ EVIER CORDIC error MATH_ EVFR CDERR MATH_ EVIER MATH. SR1 DIV end of calculation MATH_ EVFR DIVEOC MATH_ EVIER DIV error MATH_ EVFR DIVERR MATH_ EVIER 8 Reserved 9, USIC0_S USIC: Standard 10, R[5:0] receive event 11, 12, 13, USIC: Receive start event 14 USIC: Alternate receive event USIC0_ PSR USIC0_ PSR USIC0_ PSR RIF RSIF AIF USIC0_ CCR USIC0_ CCR USIC0_ CCR USIC: Transmit shift event USIC0_ PSR TSIF USIC0_ CCR USIC: Transmit buffer event USIC0_ PSR TBIF USIC0_ CCR USIC: Data lost event USIC0_ PSR DLIF USIC0_ CCR USIC: BRG event USIC0_ PSR BRGIF USIC0_ CCR 位 ORCxI ACMPxI 置位标志 寄存器 SCU_ SRSET SCU_ SRSET CDEOCIE N CDERRIE N DIVEOCIE N DIVERRIE N MATH_ EVFSR MATH_ EVFSR MATH_ EVFSR MATH_ EVFSR RIEN - RSIEN - AIEN - TSIEN - TBIEN - DLIEN - BRGIEN - 位 ORCxI ACMPxI CDEOCS CDERRS DIVEOCS DIVERRS - 清除标志 寄存器 SCU_ SRCLR SCU_ SRCLR MATH_ EVFCR MATH_ EVFCR MATH_ EVFCR MATH_ EVFCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR 位 ORCxI ACMPxI CDEOCC CDERRS DIVEOCC DIVERRC CRIF CRSIF CAIF CTSIF CTBIF CDLIF CBRGIF 节点指针 寄存器 - - - - - - USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR 位 - - - RINP TBINP AINP TSINP TBINP PINP PINP XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 5-16 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 寄存器 位 9, USIC0_S USIC: Standard 10, R[5:0] transmit buffer 11, event 12, 13, 14 USIC: Standard transmit buffer event USIC0_ TRBSR USIC0_ TRBSR STBI STBT USIC: Transmit USIC0_ Buffer error event TRBSR TBERI USIC: Standard receive buffer event USIC0_ TRBSR SRBI USIC: Standard receive buffer event USIC0_ TRBSR SRBT USIC: Alternate receive buffer event USIC0_ TRBSR ARBI USIC: Receive USIC0_ buffer error event TRBSR RBERI ASC: Synchronisation break detected USIC0_ PSR SBD ASC: Collision detected USIC0_ PSR COL ASC: Receiver noise detected USIC0_ PSR RNS ASC: Format error USIC0_ in stop bit 0 PSR FER0 ASC: Format error USIC0_ in stop bit 1 PSR FER1 ASC: Receive USIC0_ RFF frame finished PSR ASC: Transmit USIC0_ TFF frame finished PSR 中断使能 寄存器 USIC0_ TBCTR 位 STBIEN 置位标志 寄存器 位 - - USIC0_ STBIEN - - TBCTR USIC0_ TBERIEN - - TBCTR USIC0_ SRBIEN - - RBCTR USIC0_ SRBIEN - - RBCTR USIC0_ ARBIEN - - RBCTR USIC0_ RBERIEN - - RBCTR USIC0_ SBDIEN - - PCR USIC0_ CDIEN - - PCR USIC0_ RNIEN - - PCR USIC0_ FEIEN - - PCR USIC0_ FEIEN - - PCR USIC0_ FFIEN - - PCR USIC0_ FFIEN - - PCR 清除标志 寄存器 USIC0_ TRBSCR 位 CSTBI - - USIC0_ TRBSCR USIC0_ TRBSCR CTBERI CSRBI - - USIC0_ TRBSCR CARBI USIC0_ TRBSCR USIC0_ PSCR CRBERI CSBD USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR CCOL CRNS CFER0 CFER1 CRFF CTFF 节点指针 寄存器 USIC0_ TBCTR 位 STBINP USIC0_ TBCTR STBINP USIC0_ TBCTR USIC0_ RBCTR ATBINP SRBINP USIC0_ RBCTR SRBINP USIC0_ RBCTR ARBINP USIC0_ RBCTR USIC0_ INPR ARBINP PINP USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR PINP PINP PINP PINP PINP PINP XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 5-17 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 寄存器 位 9, USIC0_S SSC: MSLS event USIC0_ 10, R[5:0] detected PSR 11, 12, 13, SSC: Parity error USIC0_ detected PSR 14 SSC: DX2T event USIC0_ detected PSR MSLSEV PAERR DX2TEV IIC: Wrong TDF code detected USIC0_ PSR WTDF IIC: Start USIC0_ condition received PSR SCR IIC: Repeated start condition received USIC0_ PSR RSCR IIC: Stop condition USIC0_ received PSR PCR IIC: NACK received USIC0_ PSR NACK IIC: Arbitration USIC0_ ARL lost PSR IIC: Slave read request USIC0_ PSR SRR IIC: Error detected USIC0_ PSR ERR IIC: ACK received USIC0_ PSR ACK IIS: DX2T event detected USIC0_ PSR DX2TEV IIS: WA falling edge event USIC0_ PSR WAFE IIS: WA rising edge event USIC0_ PSR WARE IIS: WA generation end USIC0_ PSR END 中断使能 置位标志 寄存器 位 寄存器 位 USIC0_ MSLSIEN - - PCR USIC0_ PARIEN - - PCR USIC0_ DX2TIEN - - PCR USIC0_ ERRIEN - - PCR USIC0_ SCRIEN - - PCR USIC0_ RSCRIEN - - PCR USIC0_ PCRIEN - - PCR USIC0_ NACKIEN - - PCR USIC0_ ARLIEN - - PCR USIC0_ SRRIEN - - PCR USIC0_ ERRIEN - - PCR USIC0_ ACKIEN - - PCR USIC0_ DX2TIEN - - PCR USIC0_ WAFEIEN - - PCR USIC0_ WAREIEN - - PCR USIC0_ ENDIEN - - PCR 清除标志 寄存器 USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR 位 CMSLSEV CPAERR CDX2TEV CWTDF CSCR CRSCR 节点指针 寄存器 USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR 位 PINP PINP PINP PINP PINP PINP USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR USIC0_ PSCR CPCR CNACK CARL CSRR CERR CACK CDX2TEV CWAFE CWARE CEND USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR USIC0_ INPR PINP PINP PINP PINP PINP PINP PINP PINP PINP PINP XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 5-18 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 寄存器 位 15, VADC0_ Source Event 0 16, C0SR[1:0] VADC0_G SEV0 xSEFLAG Source Event 1 VADC0_G SEV1 17, 18, 19, 20 VADC0_ GxSR[1:0] (x=0-1) Channel Event y (y=0-7) xSEFLAG VADC0_G xCEFLAG CEVy Result Event y (y=0-7) VADC0_G REVy xREFLAG Result Event y (y=8-15) VADC0_G REVy xREFLAG Global Source Event VADC0_G LOBEFLA G SEVGLB Global Result Event VADC0_G LOBEFLA G REVGLB 中断使能 寄存器 VADC0_G xQINR0 VADC0_G xASMR VADC0_G xCHCTRy VADC0_G xRCRy VADC0_G xRCRy VADC0_B RSMR VADC0_G LOBERCR 置位标志 位 寄存器 ENSI VADC0_G xSEFLAG ENSI VADC0_G xSEFLAG CHEVMOD VADC0_G E xCEFLAG SRGEN VADC0_G xREFLAG SRGEN VADC0_G xREFLAG ENSI VADC0_G LOBEFLA G SRGEN VADC0_G LOBEFLA G 位 SEV0 SEV1 CEVy REVy REVy SEVGLB REVGLB 清除标志 寄存器 VADC0_G xSEFCLR VADC0_G xSEFCLR VADC0_G xCEFCLR VADC0_G xREFCLR VADC0_G xREFCLR VADC0_G LOBEFLA G VADC0_G LOBEFLA G 位 SEV0 SEV1 CEVy REVy REVy SEVGLBC LR REVGLBC LR 节点指针 寄存器 VADC0_G xSEVNP VADC0_G xSEVNP VADC0_G xCEVNP VADC0_G xREVNP0 VADC0_G xREVNP1 VADC0_G LOBEVNP VADC0_G LOBEVNP 位 SEV0NP SEV1NP CEVyINP REVyNP REVyNP REV0NP SEV0NP XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 5-19 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 寄存器 位 21, CCU40_ 22, SR[3:0] 23, 24 Event 0 edge(s) information from event selector Event 1 edge(s) information from event selector CCU40_ E0AS CC4yINTS CCU40_ E1AS CC4yINTS Event 2 edge(s) information from event selector CCU40_ E2AS CC4yINTS Period Match CCU40_ PMUS while counting up CC4yINTS Compare Match CCU40_ CMUS while counting up CC4yINTS Compare Match while counting down CCU40_ CMDS CC4yINTS One Match while CCU40_ OMDS counting down CC4yINTS Entering Trap State CCU40_ TRPF CC4yINTS 中断使能 寄存器 CCU40_ CC4yINTE 位 E0AE CCU40_ E1AE CC4yINTE CCU40_ E2AE CC4yINTE CCU40_ CC4yINTE CCU40_ CC4yINTE CCU40_ CC4yINTE PME CMUE CMDE CCU40_ CC4yINTE CCU40_ CC4yINTE OME E2AE 置位标志 寄存器 CCU40_ CC4ySWS 位 SE0A CCU40_ SE1A CC4ySWS CCU40_ SE2A CC4ySWS CCU40_ CC4ySWS CCU40_ CC4ySWS CCU40_ CC4ySWS SPM SCMU SCMD CCU40_ CC4ySWS CCU40_ CC4ySWS SOM STRPF 清除标志 寄存器 位 CCU40_ RE0A CC4ySWR CCU40_ RE1A CC4ySWR CCU40_ RE2A CC4ySWR CCU40_ CC4ySWR CCU40_ CC4ySWR CCU40_ CC4ySWR RPM RCMU RCMD CCU40_ CC4ySWR CCU40_ CC4ySWR ROM RTRPF 节点指针 寄存器 CCU40_ CC4ySRS 位 E0SR CCU40_ E1SR CC4ySRS CCU40_ E2SR CC4ySRS CCU40_ CC4ySRS CCU40_ CC4ySRS CCU40_ CC4ySRS POSR CMSR CMSR CCU40_ CC4ySRS CCU40_ CC4ySRS POSR E2SR XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 5-20 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 寄存器 位 25, CCU80_ 26 SR[1:0] Event 0 edge(s) information from event selector CCU80_ E0AS CC8yINTS Event 1 edge(s) information from event selector CCU80_ E1AS CC8yINTS Event 2 edge(s) information from event selector CCU80_ E2AS CC8yINTS Period Match CCU80_ PMUS while counting up CC8yINTS Compare Match while counting up from compare channel 1 CCU80_ CC8yINTS CMU1S Compare Match while counting down from compare channel 1 CCU80_ CC8yINTS CMD1S Compare Match while counting up from compare channel 2 CCU80_ CC8yINTS CMU2S Compare Match while counting down from compare channel 2 CCU80_ CC8yINTS CMD2S One Match while CCU80_ OMDS counting down CC8yINTS Entering Trap State CCU80_ TRPF CC8yINTS 中断使能 寄存器 CCU80_ CC8yINTE 位 E0AE CCU80_ E1AE CC8yINTE CCU80_ E2AE CC8yINTE CCU80_ CC8yINTE CCU80_ CC8yINTE PME CMU1E CCU80_ CMD1E CC8yINTE CCU80_ CMU2E CC8yINTE CCU80_ CMD2E CC8yINTE CCU80_ CC8yINTE CCU80_ CC8yINTE OME E2AE 置位标志 寄存器 CCU80_ CC8ySWS 位 SE0A CCU80_ SE1A CC8ySWS CCU80_ SE2A CC8ySWS CCU80_ CC8ySWS CCU80_ CC8ySWS SPM SCM1U CCU80_ SCM1D CC8ySWS CCU80_ SCM2U CC8ySWS CCU80_ SCM2D CC8ySWS CCU80_ CC8ySWS CCU80_ CC8ySWS SOM STRPF 清除标志 寄存器 位 CCU80_ RE0A CC8ySWR CCU80_ RE1A CC8ySWR CCU80_ RE2A CC8ySWR CCU80_ CC8ySWR CCU80_ CC8ySWR RPM RCM1U CCU80_ RCM1D CC8ySWR CCU80_ RCM2U CC8ySWR CCU80_ RCM2D CC8ySWR CCU80_ CC8ySWR CCU80_ CC8ySWR ROM RTRPF 节点指针 寄存器 CCU80_ CC8ySRS 位 E0SR CCU80_ E1SR CC8ySRS CCU80_ E2SR CC8ySRS CCU80_ CC8ySRS CCU80_ CC8ySRS POSR CM1SR CCU80_ CM1SR CC8ySRS CCU80_ CM2SR CC8ySRS CCU80_ CM2SR CC8ySRS CCU80_ CC8ySRS CCU80_ CC8ySRS POSR E2SR XMC1300 XMC1000 家族 参考手册 NVIC, V1.5 表 5-6 中断源一览表 ( 续表 ) IRQ 中断节点 中断源 状态标志 中断使能 置位标志 清除标志 节点指针 寄存器 位 寄存器 位 寄存器 位 寄存器 位 寄存器 位 27, POSIF. 28 SR[1:0] Transition at Hall POSIF0_ inputs PFLG HIES POSIF0_ PFLGE EHIE POSIF0_ SPFLG SHIE POSIF0_ RPFLG RHIE POSIF0_ PFLGE HIESEL Occurrence of POSIF0_ correct Hall event PFLG CHES POSIF0_ PFLGE ECHE POSIF0_ SPFLG SCHE POSIF0_ RPFLG RCHE POSIF0_ PFLGE CHESEL Occurrence of POSIF0_ wrong Hall event PFLG WHES POSIF0_ PFLGE EWHE POSIF0_ SPFLG SWHE POSIF0_ RPFLG RWHE POSIF0_ PFLGE WHESEL Shadow transfer POSIF0_ of MCM pattern PFLG MSTS POSIF0_ PFLGE EMST POSIF0_ SPFLG SMST POSIF0_ RPFLG RMST POSIF0_ PFLGE MSTSEL Index event detection POSIF0_ PFLG INDXS POSIF0_ PFLGE EINDX POSIF0_ SPFLG SINDX POSIF0_ RPFLG RINDX POSIF0_ PFLGE INDSEL Phase detection error POSIF0_ PFLG ERRS POSIF0_ PFLGE EERR POSIF0_ SPFLG SERR POSIF0_ RPFLG RERR POSIF0_ PFLGE ERRSEL Quadrature clock POSIF0_ generation PFLG CNTS POSIF0_ PFLGE ECNT POSIF0_ SPFLG SCNT POSIF0_ RPFLG RCNT POSIF0_ PFLGE CNTSEL 5-21 Period clock generation POSIF0_ PFLG PCLKS POSIF0_ PFLGE EPCLK POSIF0_ SPFLG SPCLK POSIF0_ RPFLG RPCLK POSIF0_ PFLGE PCLSEL Direction change POSIF0_ PFLG DIRS POSIF0_ PFLGE EDIR POSIF0_ SPFLG SDIR POSIF0_ RPFLG RDIR POSIF0_ PFLGE DIRSEL 29, Reserved 30 31 BCCU0. Trigger 0 BCCU0_ T0F BCCU0_ T0IEN BCCU0_ T0FS BCCU0_ T0FC - - SR0 EVFR EVIER EVFSR EVFCR Trigger 1 BCCU0_ T1F BCCU0_ T1IEN BCCU0_ T1FS BCCU0_ T1FC - - EVFR EVIER EVFSR EVFCR XMC1300 XMC1000 家族 V1.0, 2013-03 请遵守产品信息使用协议 FIFO Full BCCU0_ FF BCCU0_ FIEN BCCU0_ FFS BCCU0_ FFC - - EVFR EVIER EVFSR EVFCR FIFO Empty BCCU0_ EF BCCU0_ EIEN BCCU0_ EFS BCCU0_ EFC - - EVFR EVIER EVFSR EVFCR Trap BCCU0_ TPF BCCU0_ TPIEN BCCU0_ TPFS BCCU0_ TPFC - - EVFR EVIER EVFSR EVFCR 1) Flash ECC double bit error has two status flags, each having its own clear bit. It is sufficient to use only one of the status flag and ignore the other. XMC1300 XMC1000 家族 6 事件请求单元 (ERU) 事件请求单元 (ERU) 如在服务请求处理一章所述,XMC1300 使用事件请求单元 (ERU) 来支持服务请求处理的 可编程互连。 6.1 特性 ERU 支持这些特性: • 外部和内部服务请求的灵活处理 • 可编程为边沿和 / 或电平触发 • 每个通道可以有多个输入 • 可由多个输入组合触发 • 输入和输出门控 6.2 概述 事件请求单元 (ERU) 是一个通用的多输入事件检测和处理单元。 事件源发出的 服务请求 ADC CAPCOM GPIO ORC 事件 ACMP ERU 事件请求单元 执行外设提供的 事件服务 3 2 1 0 3 2 1 0 >1 & & 触发信号 ADC CAPCOM IRQ BCCU USIC 源输入 通道 3 源输入 通道 2 源输 入通道 1 源输 入通道 0 事 件输入 选择器 事 件组合 事件 触发逻 辑 / 事件状 态标志 触 发信号 交叉连 接 输出 门控单 元 0 图 6-1 事件请求单元概览 每个 ERU 单元由下述功能块组成: • 一个事件请求选择 (ERS) 单元。 – 事件输入选择器允许从两个输入中选择一个。这两个输入中的每个输入都有一个具 有 4 个可能信号的向量。 – 事件组合允许两个输入信号进行逻辑组合,以产生一个公共触发信号。 • 每个输入通道有一个事件触发逻辑 (ETL),允许定义导致触发事件的跃变方向 (边沿 选择,或由软件定义)并可存储事件状态。所选信号的输入电平在此被转换成事件。 • 触发信号交叉连接矩阵将事件和状态标志分配给输出通道。另外,还可使用来自其他 模块的触发信号,并可将这些触发信号与本地触发信号进行逻辑组合。 参考手册 6-1 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) • 一个输出门控单元 (OGU) 将触发事件和状态信息组合起来,并根据门控信号控制输 出。 注: 一个输入上的一个事件可以影响多个输出,多个输入上的多个事件也可以组合起 来去影响一个输出。 6.3 事件请求选择单元 (ERS) 每个输入通道 x (x = 0-3) 都有一个 ERSx 单元,它为相关联的 ETLx 单元选择输入。每 个 ERSx 对两个信号 (Ax, Bx) 执行逻辑组合,为相关联的 ETLx 提供一个组合输出信号 ERSxO。输入 Ax 可以从输入向量 ERU_xA[3:0] 的 4 个选项中选择,并且可选择反相信 号。输入 Bx ( 从向量 ERU_xB[3:0] 中选择 ) 的结构类似。 除了直接选择输入 Ax 或 Bx 或其反相信号外,还可以对所选择的两路输入进行逻辑组合, 即逻辑与或者逻辑或。 ERU_xA0 ERU_xA1 ERU_xA2 ERU_xA3 ERU_xB0 ERU_xB1 ERU_xB2 ERU_xB3 EXISEL. EXSxA EXICONx. NA 选择 输入 Ax 选择 极性 Ax 选择 输入 Bx 选择 极性 Bx EXISEL. EXSxB EXICONx. NB EXICONx. SS Ax Bx 1 Ax OR Bx & Ax AND Bx 选择 ERSxO 的源 ERSxO ETLx ERSx 图 6-2 事件请求选择单元概览 ERS 单元由寄存器 ERU0_EXISEL ( 所有 4 个 ERSx 单元共用一个寄存器 ) 和寄存器 EXICONx ( 每个 ERSx 及相关联的 ETLx 单元使用一个寄存器,例如输入通道 0 的 ERU0_EXICONx (x=0-3))。 6.4 事件触发逻辑 (ETLx) 每个输入通道x (x = 0-3)有一个事件触发逻辑ETLx。ETLx从输入ERSxO产生触发事件及 相关的状态信息。每个 ETLx 都基于一个边沿检测块,可以单独使能对上升沿或下降沿的 参考手册 6-2 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 检测。如果两个使能位都被置 1 ( 例如处理一个切换输入 ),则两个边沿都会产生触发事 件。 4 个 ETLx 单元中的每个单元都有一个相关联的 EXICONx 寄存器,它控制该 ETLx 的所有 选项 ( 该寄存器还保持相关联的 ERSx 单元的控制位,例如 ERU0_EXICONx (x=0-3) 用 于控制 ERS0 和 ETL0)。 EXICONx. FE EXICONx. LD ETLx ERSx ERSxO 检测 事件 (边沿) 修改 状态 标志 边沿事件 使能 触发 脉冲 置位 状态标志 清除 FL 触发脉冲 选择 触发 输出 EXICONx. RE EXICONx. PE EXICONx. OCS EXICONx.FL 去所有 OGUy TRx0 去 OGU0 TRx1 去 OGU1 TRx2 去 OGU2 TRx3 去 OGU3 图 6-3 事件触发逻辑概览 当检测到所选择的事件 ( 边沿 ) 时,状态标志 EXICONx.FL 被置位。该标志也可被软件修 改 。该状态标志支持两种不同的工作模式。 它可被作为 “ 粘滞(sticky)” 标志使用,当检测到所期望的事件时由硬件置位,但必须 由软件清除。在这种工作模式下,该标志指示事件已经发生,但并不指示输入的当前状 态。 在第二种工作模式下,如果检测到 “ 相反的 ” 事件,该标志被自动清除。例如,如果只 使能下降沿检测导致状态标志置位,则当检测到上升沿时该标志被自动清除。在这种模 式下,状态标志可用于模式检测。因为在进行模式检测时,输入的当前状态很重要 (在 该模式下,使能两个边沿检测没有意义)。 状态标志的输出被并行连接到位于后级的所有输出门控单元 (OGUy) ( 见图 6-4),为所有 OGUy 单元提供基于不同或相同状态标志的模式检测能力。 除了修改状态标志之外,可以使能 ( 用位 EXICONx.PE) 并选择 ETLx 的一个触发脉冲输 出,用于触发一个 OGUy 单元的动作。触发脉冲的目标 OGUy 由位域 EXICON.OCS 选 择。 参考手册 6-3 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 当检测到所选的边沿事件时,触发信号变成活动状态,与状态标志 EXICONx.FL 无关。 6.5 交叉连接矩阵 图 6-4 所 示 的 连 接 矩 阵 将 来 自 不同 ETLx 单元的触发信号 (TRxy) 和状态信号 (EXICONx.FL) 分发给 OGUy 单元。另外,它还接收外设触发信号,这些信号可与 ETLx 触 发信号在 OGUy 单元中进行逻辑或组合。 ETL0 EXICON0.FL TR00 TR01 TR02 TR03 ETL1 EXICON1.FL TR10 TR11 TR12 TR13 ETL2 EXICON2.FL TR20 TR21 TR22 TR23 ETL3 EXICON3.FL TR30 TR31 TR32 TR33 模式 检测 输入 OGU0 触发 信号 TRx0 ERU_PDOUT0 ERU_GOUT0 ERU_IOUT0 ERU_TOUT0 外设触发信号 模式 检测 输入 OGU1 触发 信号 TRx1 ERU_PDOUT1 ERU_GOUT1 ERU_IOUT1 ERU_TOUT1 外设触发信号 模式 检测 输入 OGU2 触发 信号 TRx2 ERU_PDOUT2 ERU_GOUT2 ERU_IOUT2 ERU_TOUT2 外设触发信号 模式 检测 输入 OGU3 触发 信号 TRx3 ERU_PDOUT3 ERU_GOUT3 ERU_IOUT3 ERU_TOUT3 外设触发信号 图 6-4 ERU 交叉连接矩阵 参考手册 6-4 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 6.6 输出门控单元 (OGUy) 每个 OGUy (y = 0-3) 单元对来自输入通道的可用触发事件和状态标志进行组合,将结果 提供给系统。图 6-5 示出了一个 OGUy 单元内的逻辑块。一个 OGUy 单元的所有功能都 由其相关联的 EXOCONy 寄存器控制,例如 ERU0_EXOCONx (x=0-3) 控制 OGU0。一 个 OGUy 单元的功能可被划分成两部分: • 触发组合: 对来自输入通道的所有被使能并连接到 OGUy 的触发信号、一个选中的外设相关的触 发事件和一个模式改变事件 (如果被使能)执行逻辑或运算。 • 模式检测: 输入通道的状态标志 EXICONx.FL 可被使能参加模式检测。当所有被使能的状态标志 都置位时,检测到模式匹配。 状态标志 EXICON0.FL EXICON1.FL EXICON2.FL EXICON3.FL 来自输入 通道的触 发信号 TR0y TR1y TR2y TR3y EXOCONy. IPEN0 EXOCONy. IPEN1 EXOCONy. IPEN2 EXOCONy. IPEN3 外设触发 信号 ERU_OGUy1 ERU_OGUy2 ERU_OGUy3 模式 检测 组合 OGU 触发信号 (OR) 选择外设 触发信号 EXOCONy. GEEN 选择 门控 方案 EXOCONy. PDR EXOCONy. GP 中断 门控 (AND) EXOCONy. ISS OGUy ERU_PDOUTy ERU_GOUTy ERU_IOUTy ERU_TOUTy 图 6-5 输出通道 y 的输出门控单元 每个 OGUy 单元产生 4 个输出信号分发给系统 ( 并非所有这些信号都必须使用 ): • ERU_PDOUTy 直接输出模式匹配信息,用作其他模块的门控信号 ( 模式匹配 = 1)。 参考手册 6-5 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) • ERU_GOUTy 输出模式匹配或模式失配(模式匹配的反相信号)信息,或在软件控制下 永久性输出 0 或 1,用作其它模块的门控信号。 • ERU_TOUTy 作为一个外设触发信号、一个模式检测结果改变事件或 ETLx 触发输出 TRxy 的组合输出,用于触发其它模块的动作。 • ERU_IOUTy 作为受控的触发输出 (ERU_GOUTy 和 ERU_TOUTy 的逻辑与 ) ,用于触 发服务请求 ( 例如,服务请求的产生可受门控信号控制,以允许在一个确定的时间窗 口激活服务请求 )。 触发组合 触 发 组 合 逻 辑 将 不 同 的 触 发 输 入 进 行 逻 辑 或 组 合,生 成 一 个 公 共 的 触 发 信 号 ERU_TOUTy。可能的触发输入有: • 在输入通道的每个 ETLx 单元内,触发输出 TRxy 都可被使能,并且触发事件可被连 接到一个 OGUy 单元。 • 可在每个 OGUy 的三个外设触发信号中选择一个作为附加的触发源。这些外设触发信 号由片内外设模块产生,例如捕获 / 比较单元或定时器单元。这种选择由位域 EXOCONy.ISS 完成。 • 在至少有一个模式检测输入被使能 (EXOCONy.IPENx) 并且检测到模式检测结果从模 式匹配变为模式失配 (或反之)的情况下,会产生一个触发事件,指示发生了一个模 式检测结果事件 (如果由 ECOCONy.GEEN 使能)。 触发信号组合为给多个输入信号 (每个输入通道独立)或外设信号设置不同的触发条件 提供了可能,也为将这些信号组合成单一输出提供了可能,例如用于产生一个服务请求 或启动一次 ADC 转换。这种信号组合能力允许每个 OGU 从多个输入产生一个服务请求 (多个请求源导致一个反应)。 这种选择由寄存器 ERU0_EXOCONx (x=0-3) 中的位域 ISS 定义。 模式检测 模式检测逻辑允许使用所有 ETLx 单元的状态标志的组合。每个状态标志都可以被单独包 含在每个 OGUy 的模式检测逻辑中,也可以被排除在每个 OGUy 的模式检测逻辑之外, 这可通过对控制位 EXOCONy.IPENx 编程来实现。模式检测块输出下述模式检测结果: • 模式匹配 (EXOCONy.PDR = 1 且 ERU_PDOUTy = 1): 当包含在模式检测逻辑中的所有状态标志 FL 都为 1 时,指示模式匹配。 • 模式失配 (EXOCONy.PDR = 0 且 ERU_PDOUTy = 0): 当包含在模式检测逻辑中的状态标志 FL 至少有一个为 0 时,指示模式失配。 另外,如果模式检测结果从匹配变为失配或反之,模式检测逻辑能产生一个触发事件 ( 如 果由 EXOCONy.GEEN = 1 使能 )。模式检测结果改变事件与其他被使能的触发事件进行 逻辑或运算后支持服务请求产生或触发其他模块功能 ( 例如 ADC)。当模式检测结果改变 并且 EXOCONy.PDR 被更新后,会指示发生模式检测结果改变事件。 OGUy 中服务请求的产生基于触发信号 ERU_TOUTy,该信号可由模式检测结果 ERU_PDOUTy 控制(屏蔽)。这就允许在一个确定的时间窗口内自动和重复产生服务请 求。该请求事件由触发信号组合逻辑产生,时间窗口信息(门控)由模式检测结果给定。 参考手册 6-6 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 例如,在一个输入信号组合发生 ( 模式检测基于 ETLx 状态位 ) 期间,服务请求可以周期 性地发出 ( 选择来自捕获 / 比较单元的外设触发输入 ) 。 可编程门控机制为适合应用需求提供了灵活性,并且允许在不同条件下产生服务请求 ERU_IOUTy: • 模式匹配 (EXOCONy.GP = 10B): 在模式检测结果为模式匹配期间,如果发生了触发事件,则会产生一次服务请求。 • 模式失配 (EXOCONy.GP = 11B): 在模式检测结果为模式失配期间,如果发生了触发事件,则会产生一次服务请求。 • 与模式检测无关 (EXOCONy.GP = 01B): 在该模式,每次发生触发事件都会导致一次服务请求。模式检测输出可作为其他外设 的门控信号使用,与触发组合无关 (ERU_TOUTy 和 ERU_PDOUTy 独立使用,发生 触发事件时产生服务请求 )。 • 无服务请求 (EXOCONy.GP = 00B,默认设置 ) 在该模式,发生触发事件并不会导致一次服务请求。模式检测输出可作为其他外设的 门控信号使用,与触发组合无关 ( ERU_TOUTy 和 ERU_PDOUTy 独立使用,发生触 发事件时不产生服务请求 )。 6.7 电源、复位和时钟 ERU 使用主时钟 MCLK 运行。只要 MCLK 保持运行,则 ERU 在所有工作模式下都消耗功 率。 6.8 初始化和系统相关性 必须在源端和目的端一直使能服务请求。另外,还必须检查是否有必要将 ERU0 编程为处 理和派送服务请求。 使能外设的 SRx 输出 • 必须有选择地使能外设的 SRx 输出。该过程取决于每个外设本身。详细信息请参阅相 应外设所在章的 “ 服务请求产生 ” 一节。 • 可选择将 ERU0 编程为处理和派送该请求。 使能外部请求 • 所选端口必须被编程为输入。 • ERU0 必须被编程为处理和派送外部请求。 注: 外部服务请求输入的个数可能受所用封装的限制。 参考手册 6-7 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 6.9 寄存器 XMC1300 XMC1000 家族 事件请求单元 (ERU) 表 6-1 模块 ERU0 寄存器地址空间 基地址 4001 0600H 寄存器概览 绝对寄存器地址由下面的加法计算: 模块基地址 + 偏移地址 结束地址 4001 06FFH 备注 表 6-2 简称 EXISEL EXICON0 EXICON1 EXICON2 EXICON3 EXOCON0 EXOCON1 EXOCON2 EXOCON3 寄存器一览表 描述 偏移地址 访问方式 描述见 读写 ERU 外部输入控制选择 0000H ERU 外部输入控制选择 0010H ERU 外部输入控制选择 0014H ERU 外部输入控制选择 0018H ERU 外部输入控制选择 001CH ERU 输出控制寄存器 0020H ERU 输出控制寄存器 0024H ERU 输出控制寄存器 0028H ERU 输出控制寄存器 002CH U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页 6-8 页 6-10 页 6-10 页 6-10 页 6-10 页 6-12 页 6-12 页 6-12 页 6-12 6.9.1 ERU 寄存器 ERU0_EXISEL 事件输入选择 (00H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 EXS3B rw EXS3A rw EXS2B rw EXS2A rw EXS1B rw EXS1A rw EXS0B rw EXS0A rw 参考手册 6-8 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 域 EXS0A EXS0B EXS1A EXS1B EXS2A EXS2B XMC1300 XMC1000 家族 事件请求单元 (ERU) 位 [1:0] [3:2] [5:4] [7:6] [9:8] [11:10] 类型 rw rw rw rw rw rw 描述 A0 事件源 (ERS0) 选择 该位域定义为 A0 选择哪个输入。 00B 选择输入 ERU_0A0 01B 选择输入 ERU_0A1 10B 选择输入 ERU_0A2 11B 选择输入 ERU_0A3 B0 事件源 (ERS0) 选择 该位域定义为 B0 选择哪个输入。 00B 选择输入 ERU_0B0 01B 选择输入 ERU_0B1 10B 选择输入 ERU_0B2 11B 选择输入 ERU_0B3 A1 事件源 (ERS1) 选择 该位域定义为 A1 选择哪个输入。 00B 选择输入 ERU_1A0 01B 选择输入 ERU_1A1 10B 选择输入 ERU_1A2 11B 选择输入 ERU_1A3 B1 事件源 (ERS1) 选择 该位域定义为 B1 选择哪个输入。 00B 选择输入 ERU_1B0 01B 选择输入 ERU_1B1 10B 选择输入 ERU_1B2 11B 选择输入 ERU_1B3 A2 事件源 (ERS2) 选择 该位域定义为 A2 选择哪个输入。 00B 选择输入 ERU_2A0 01B 选择输入 ERU_2A1 10B 选择输入 ERU_2A2 11B 选择输入 ERU_2A3 B2 事件源 (ERS2) 选择 该位域定义为 B2 选择哪个输入。 00B 选择输入 ERU_2B0 01B 选择输入 ERU_2B1 10B 选择输入 ERU_2B2 11B 选择输入 ERU_2B3 参考手册 6-9 事件请求单元 (ERU), V1.0 V1.0, 2013-03 请遵守产品信息使用协议 域 EXS3A EXS3B 0 XMC1300 XMC1000 家族 事件请求单元 (ERU) 位 [13:12] [15:14] [31:16] 类型 rw rw r 描述 A3 事件源 (ERS3) 选择 该位域定义为 A3 选择哪个输入。 00B 选择输入 ERU_3A0 01B 选择输入 ERU_3A1 10B 选择输入 ERU_3A2 11B 选择输入 ERU_3A3 B3 事件源 (ERS3) 选择 该位域定义为 B3 选择哪个输入。 00B 选择输入 ERU_3B0 01B 选择输入 ERU_3B1 10B 选择输入 ERU_3B2 11B 选择输入 ERU_3B3 保留 读出值为 0 ;应写入 0。 ERU0_EXICONx (x=0-3) 事件输入控制 x (10H + 4*x) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 NB NA SS FL OCS FE RE LD PE r rw rw rw rwh rw rw rw rw rw 域 位 类型 描述 PE 0 rw ETLx 输出触发脉冲使能 当检测到所选择的边沿 ( 状态标志 FL 的置位条件 ) 时, 若该位使能则会在 TRxy 产生一个输出触发脉冲。 0B 禁止产生触发脉冲 1B 允许产生触发脉冲 参考手册 事件请求单元 (ERU), V1.0 6-10 V1.0, 2013-03 请遵守产品信息使用协议 域 LD RE FE OCS FL XMC1300 XMC1000 家族 事件请求单元 (ERU) 位 类型 描述 1 rw ETLx 状态标志的重建电平检测 该位选择是将 FL 用作 “ 粘滞 ” 位,还是用 FL 重建电 平检测结果。 0B 状态标志 FL 不被硬件清零,且被作为 “ 粘滞 ” 位使用。该标志一旦置位,便不受任何边沿的 影响,直到其被软件清零。 1B 状态标志 FL 对所期望的事件重建一次电平检 测。该标志在发生一次上升沿 (如果 RE = 1) 或下降沿 (如果 FE = 1)时自动变成置位状 态。该标志在发生一次上升沿 (如果 RE = 0) 或下降沿 (如果 FE = 0)时被自动清零。 2 rw 3 rw [6:4] rw ETLx 上升沿检测使能 该位使能 / 禁止上升沿事件作为边沿事件,作为状态 标志 FL 的置位条件,或作为 TRxy 的可能触发脉 冲。 0B 上升沿不被视为边沿事件 1B 上升沿被视为边沿事件 ETLx 下降沿检测使能 该位使能 / 禁止下降沿事件作为边沿事件,作为状态 标志 FL 的置位条件,或作为 TRxy 的可能触发脉 冲。 0B 下降沿不被视为边沿事件 1B 下降沿被视为边沿事件 ETLx 输出触发脉冲的输出通道选择 该位域为一个被使能的触发脉冲 TRxy 定义目标输出 通道 OGUy。 000B 触发脉冲被发送到 OGU0 001B 触发脉冲被发送到 OGU1 010B 触发脉冲被发送到 OGU2 011B 触发脉冲被发送到 OGU3 其他:保留,不能使用这些组合。 7 rwh ETLx 的状态标志 该位是状态标志,由边沿检测结果置位或清零。 0B 未检测到被使能的边沿事件。 1B 检测到被使能的边沿事件。 参考手册 事件请求单元 (ERU), V1.0 6-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 域 位 类型 描述 SS [9:8] rw ERSx 输入源选择 该位域定义使用哪种逻辑组合作为 ERSxO。 00B 输入 A,无额外组合 01B 输入 B,无额外组合 10B 输入 A OR 输入 B 11B 输入 A AND 输入 B NA 10 rw ERSx 输入 A 的反相选择 该位选择输入 A 的极性。 0B 输入 A 直接使用 1B 输入 A 被反相 NB 11 rw IERSx 输入 B 的反相选择 该位选择输入 B 的极性。 0B 输入 B 直接使用 1B 输入 B 被反相 0 [31:12] r 保留 读出值为 0 ;应写入 0。 ERU0_EXOCONx (x=0-3) 事件输出触发控制 x (20H + 4*x) 复位值 : 0000 0008H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IPEN IPEN IPEN IPEN 3210 0 rw rw rw rw r GP PDR GEE N ISS rw rh rw rw 域 位 类型 描述 ISS [1:0] rw 内部触发源选择 该位域定义哪个输入被选择为 OGUy 的外设触发输入。 00B 外设触发功能被禁止 01B 选择输入 ERU_OGUy1 10B 选择输入 ERU_OGUy2 11B 选择输入 ERU_OGUy3 参考手册 事件请求单元 (ERU), V1.0 6-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 域 GEEN PDR GP IPENx (x = 0-3) 0 位 类型 2 rw 3 rh [5:4] rw 12+x rw [31:16] r , [11:6] 描述 门控事件使能 当模式检测结果从匹配变为失配或反之,位 GEEN 使能 触发事件产生。 0B 事件检测被禁止 1B 事件检测被使能 模式检测结果标志 该位指示模式检测结果。 0B 检测到模式失配 1B 检测到模式匹配 模式检测结果的门控选择 该位域定义服务请求产生的门控机制 (OGU 输出 ERU_PDOUTy 与 ERU_GOUTy 之间的关系 )。 00B ERU_GOUTy 总是被禁止,并且 ERU_IOUTy 不能 被激活。 01B ERU_GOUTy 总是被使能,并且 ERU_IOUTy 在 ERU_TOUTy 每次激活时变为激活状态。 10B ERU_GOUTy与ERU_PDOUTy相同,并且在检测 到所期望的模式 ( 模式匹配 PDR = 1) 期间, ERU_IOUTy 在 ERU_TOUTy 激活时变为激活状 态。 11B ERU_GOUTy 与 ERU_PDOUTy 反相,并且在未 检测到所期望的模式 ( 模式失配 PDR = 0) 期间, ERU_IOUTy 在 ERU_TOUTy 激活时变为激活状 态。 ETLx 模式检测使能 位 IPENx 定义 ETLx 的触发事件状态标志 EXICONx.FL 是 否参与 OGUy 的模式检测。 0B 标志 EXICONx.FL 不参与模式检测。 1B 标志 EXICONx.FL 参与模式检测。 保留 读出值为 0 ;应写入 0。 6.10 互连 本节描述 ERU0 模块在 XMC1300 系统内部是如何连接的。 参考手册 事件请求单元 (ERU), V1.0 6-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 外部事件 端口 端口 端口 端口 ERU0 xA[3:0] - 选择 - 组合 GOUTy x - 检测 y 交叉连接 IOUTy xB[3:0] - 门控 PDOUTy PERIPH PERIPH NVIC.SRn SR3 -6 LEVEL TRIGGER LEVEL PERIPH 顶层 交叉 连接 x=0-3 y=0-3 内部事件 图 6-6 ERU 互连概览 6.10.1 ERU0 连接 下表列出了 ERU0 的连接情况。 表 6-3 ERU0 引脚连接 全局输入 / 输出 连接到 I/O 描述 ERU0.0A0 ACMP0.OUT I ERU0.0A1 P2.4 I ERU0.0A2 ORC2.OUT I ERU0.0A3 VADC0.G0BFLOUT0 I 来自 ADC 边界标志 ERU0.0B0 P2.0 I ERU0.0B1 P2.2 I ERU0.0B2 ORC0.OUT I 参考手册 事件请求单元 (ERU), V1.0 6-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 事件请求单元 (ERU) 表 6-3 ERU0 引脚连接 全局输入 / 输出 连接到 I/O 描述 ERU0.0B3 VADC0.G1BFLOUT0 I 来自 ADC 边界标志 ERU0.1A0 ACMP1.OUT I ERU0.1A1 P2.5 I ERU0.1A2 ORC3.OUT I ERU0.1A3 VADC0.G0BFLOUT1 I 来自 ADC 边界标志 ERU0.1B0 P2.1 I ERU0.1B1 P2.3 I ERU0.1B2 ORC1.OUT I ERU0.1B3 VADC0.G1BFLOUT1 I 来自 ADC 边界标志 ERU0.2A0 ACMP2.OUT I ERU0.2A1 P2.6 I ERU0.2A2 ORC4.OUT I ERU0.2A3 VADC0.G0BFLOUT2 I 来自 ADC 边界标志 ERU0.2B0 P2.10 I ERU0.2B1 P2.11 I ERU0.2B2 ORC2.OUT I ERU0.2B3 VADC0.G1BFLOUT2 I 来自 ADC 边界标志 ERU0.3A0 ORC7.OUT I ERU0.3A1 P2.7 I ERU0.3A2 ORC5.OUT I ERU0.3A3 VADC0.G0BFLOUT3 I 来自 ADC 边界标志 ERU0.3B0 P2.9 I ERU0.3B1 P2.8 I ERU0.3B2 ORC6.OUT I ERU0.3B3 VADC0.G1BFLOUT3 I 来自 ADC 边界标志 ERU0.OGU01 CCU40.SR0 I ERU0.OGU02 VADC0.C0SR2 I ERU0.OGU03 CCU80.SR2 I ERU0.OGU11 CCU40.SR1 I ERU0.OGU12 VADC0.C0SR2 I 参考手册 事件请求单元 (ERU), V1.0 6-15 V1.0, 2013-03 请遵守产品信息使用协议 表 6-3 ERU0 引脚连接 全局输入 / 输出 连接到 I/O 描述 ERU0.OGU13 CCU80.SR2 I ERU0.OGU21 CCU40.SR2 I ERU0.OGU22 VADC0.C0SR3 I ERU0.OGU23 CCU80.SR3 I ERU0.OGU31 CCU40.SR3 I ERU0.OGU32 VADC0.C0SR3 I ERU0.OGU33 CCU80.SR3 I ERU0.PDOUT0 VADC0.BGREQGTO O VADC0.G0REQGTO VADC0.G1REQGTO CCU40.IN1D CCU40.IN0J CCU80.IN0F CCU80.IN1L CCU80.IN2L CCU80.IN3L POSIF0.IN0D USIC0_CH1.HWIN0 P0.0 P2.11 ERU0.GOUT0 P0.0 O P2.11 ERU0.TOUT0 未连接 O ERU0.IOUT0 NVIC.ERU0.SR0 O SCU.RTC_extclk VADC0.BGREQTRM VADC0.G0REQTRM VADC0.G1REQTRM CCU40.CLKB CCU40.IN0K CCU80.CLKB CCU80.IN0G POSIF0.EWHEB BCCU0.TRAPINE XMC1300 XMC1000 家族 事件请求单元 (ERU) 参考手册 事件请求单元 (ERU), V1.0 6-16 V1.0, 2013-03 请遵守产品信息使用协议 表 6-3 ERU0 引脚连接 全局输入 / 输出 连接到 I/O 描述 ERU0.PDOUT1 VADC0.BGREQGTP O VADC0.G0REQGTP VADC0.G1REQGTP CCU40.IN0D CCU40.IN1J CCU80.IN0L CCU80.IN1F POSIF0.IN1D USIC0_CH1.HWIN2 P0.1 P2.10 ERU0.GOUT1 P0.1 O P2.10 ERU0.TOUT1 未连接 O ERU0.IOUT1 NVIC.ERU0.SR1 O VADC0.BGREQTRN VADC0.G0REQTRN VADC0.G1REQTRN CCU40.CLKC CCU40.IN1K CCU80.CLKC CCU80.IN1G BCCU0.TRAPINF ERU0.PDOUT2 VADC0.BGREQGTK O VADC0.G0REQGTK VADC0.G1REQGTK CCU40.IN3D CCU40.IN2J CCU80.IN2F POSIF0.IN2D P0.2 P2.1 ERU0.GOUT2 P0.2 O P2.1 ERU0.TOUT2 未连接 O XMC1300 XMC1000 家族 事件请求单元 (ERU) 参考手册 事件请求单元 (ERU), V1.0 6-17 V1.0, 2013-03 请遵守产品信息使用协议 表 6-3 ERU0 引脚连接 全局输入 / 输出 连接到 I/O 描述 ERU0.IOUT2 NVIC.ERU0.SR2 O VADC0.BGREQTRG VADC0.G0REQTRG VADC0.G1REQTRG CCU40.IN2K CCU80.IN2G POSIF0.MSETF BCCU0.TRAPING ERU0.PDOUT3 VADC0.BGREQGTL O VADC0.G0REQGTL VADC0.G1REQGTL CCU40.IN3J CCU40.IN2D CCU80.IN3F P0.3 P2.0 ERU0.GOUT3 P0.3 O P2.0 ERU0.TOUT3 未连接 O ERU0.IOUT3 NVIC.ERU0.SR3 O VADC0.BGREQTRH VADC0.G0REQTRH VADC0.G1REQTRH CCU40.IN3K CCU80.IN3G POSIF0.EWHEC POSIF0.MSETG BCCU0.TRAPINH XMC1300 XMC1000 家族 事件请求单元 (ERU) 参考手册 事件请求单元 (ERU), V1.0 6-18 V1.0, 2013-03 请遵守产品信息使用协议 7 MATH 协处理器 (MATH) XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 7.1 概述 MATH 协处理器模块包括两个独立的子单元,来支持 CPU 完成数学密集型运算:一个是 能完成有符号和无符号 32 位除法运算的除法器单元 (DIV),另一个是能进行三角函数、 线性函数或双曲函数运算的 CORDIC ( 坐标旋转数字计算机 ) 协处理器。 7.1.1 特性 MATH 协处理器有以下特性: • 有操作数预处理和结果后处理能力的除法功能 • 能计算三角函数、双曲函数和线性函数的 CORDIC 协处理器 • 支持内核时钟与接口时钟 2:1 的比率,使执行速度更快 • 支持除法器单元和 CORDIC 协处理器单元之间的结果链接 7.1.2 框图 图 7-1 给出了 MATH 协处理单元的框图。 系统 时钟 控制 PCLK MCLK 地址 译码器 中断 控制 MATH 协处理器 接口块 DIV 寄存器 全局寄存器 CORDIC 寄存器 DIV 内核 CORDIC 内核 图 7-1 MATH 协处理器框图 参考手册 7-1 MATH 协处理器 (MATH) , V1.0 V1.0, 2013-03 请遵守产品信息使用协议 7.2 除法器单元 (DIV) XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 7.2.1 特性 DIV 支持以下特性: • 使用 35 个内核时钟周期的有符号 / 无符号 32 位除法操作 • 操作数预处理,可配置移位位数: – 被除数左移 – 除数右移 • 结果后处理,可配置移位位数和移位方向 7.2.2 除法操作 DIV 支持舍尾除法运算,这也是 ISO C99 标准,并且是现代处理器的普遍选择。除法和 舍尾除法的取模功能有下述关系: If q = D div d and r = D mod d then D = q * d + r and | r | < | d | 这里 “D” 是被除数, “d” 是除数, “q” 是商, “r” 是余数。舍尾除法把商向零方向舍入为整 数,并且余数的符号总是与被除数的符号一致,即 sign (r) = sign (D)。 要使用 DIV 执行一次除法运算,首先要按下述操作配置该除法: • 通过 DIVCON.USIGN 位选择有符号或者无符号除法 • 通过 DIVCON.STMODE 位选择启动模式 然后向 DVD 和 DVS 寄存器写入被除数和除数的值。根据启动模式不同,除法运算可以 通过写 DVS 寄存器启动,也可以通过将启动位 DIVCON.ST 置 1 来启动。如果使用 ST 位启动,则该位在下一个内核时钟周期被自动清零 。除法运算启动后忙标志 DIVST.BSY 被置 1。 除法运算总是耗时 35 个内核时钟周期,一旦完成,即可在 QUOT 和 RMD 寄存器中得到 可用的商和余数,并且 BSY 标志会被清零。计算结束事件将除法器事件标志 EVFR.DIVEOC 置 1,并且向 NVIC 触发一次中断请求 (如果通过 EVIER.DIVEOCIEN 位使能了该中断)。该标志只能通过软件对 EVFCR.DIVEOCC 位的写操作来清零。 图 7-2 给出了一次除法运算的时序图。 参考手册 服务请求处理 , V1.0 7-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 内核时钟 1 2 3 4 33 34 35 36 DIVCON.ST DIVST.BSY EVFR.DIVEOC DVD 16 DVS 4 QUOT 4 RMD 0 图 7-2 除法运算的时序图 注: 在 BSY=1 期间,读 QUOT 和 RMD 寄存器会导致 DIV 在总线上插入等待状态,直 到当前计算结束 (BSY=0)。这样就会确保对结果寄存器 QUOT 或者 RMD 的任何 读访问都能返回一个有效的结果。然而,由于总线可能被锁定一定数量的内核时钟 周期,中断延迟将会增加。 7.2.2.1 启动模式选择 启动除法运算的条件通过 DIVCON.STMODE 位选择: • 当 STMODE = 0 时,通过对 DVS 寄存器的写操作来启动除法运算。在这种情况下, 不需要软件对 ST 位执行置 1 操作。 • 当 STMODE = 1 时,通过将 ST 位置 1 来启动除法运算。 对于这两种启动方式,必须确保在启动运算之前 DIV 不执行任何计算,并且 DIVST.BSY 标志位为 0。否则,启动请求会被放弃,尽管 DVS 仍然会被新写入的值更新。在 BSY = 1 期间,对 DIVCON 寄存器的写访问被忽略。因此,建议应用程序在通过写 ST 位或写 DVS 寄存器的操作启动除法运算之前,查询 BSY 标志。 参考手册 7-3 MATH 协处理器 (MATH) , V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 7.2.2.2 被零除错误 如果在 DVS 寄存器中的值等于 0 的情况下启动了除法运算,则 EVFR.DIVERR 标志会被 置 1。同时,如果通过 EVIER.DIVERRIEN 使能了中断,将会向 NVIC 产生一个中断请 求。除法运算仍会继续正常进行,并在 35 个内核时钟周期内完成 ,如图 7-3 所示。 内核时钟 1 2 3 4 33 34 35 36 DIVCON.ST EVFR.DIVERR EVFR.DIVEOC DVD 16 DVS 0 QUOT FFFF’FFFFH RMD 16 图 7-3 被零除错误时序图 如果 DIVCON.USIGN 为 0 (有符号数运算),并且 DVD 为负值,则 QUOT 寄存器包含 全 0,否则包含全 1。在任何一种情况下, RMD 寄存器都将包含被除数的值。只能通过 对 EVFCR.DIVERRC 位的软件写操作来清除 EVFR.DIVERR 标志。 注: 如果结果后处理功能 ( 见 7.2.3 节 ) 被使能,商值 ( 全 0 或全 1) 仍会根据 DIVCON.QSCNT 位的值而移位。 DIV不检测溢出错误。用户必须确保带结果后处理和不带结果后处理的除法运算的结果位 于 DIV 的范围之内。 7.2.3 操作数预处理 / 结果后处理 DIV 支持下述操作数预处理和结果后处理操作: • 除法开始前被除数左移 参考手册 服务请求处理 , V1.0 7-4 V1.0, 2013-03 请遵守产品信息使用协议 • 除法开始前除数右移 • 除法结束后商值左移或右移 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 移位的位数由 DIVCON 寄存器中相应的 5 位移位计数位域决定。此外,对商值而言,移 位方向由 DIVCON.QSDIR 位决定。 所有的移位都是算数移位。这意味着,如果左移,则在 LSB 位插入零,如果右移,零 ( 在无符号模式 ) 或者是符号位 ( 在有符号模式 ) 将会被插入到 MSB 位。 如果通过向移位计数位域写入一个非零值来使能了移位操作,移位操作将会在除法运算 的开始和结束时被触发,并且不会消耗任何额外的内核时钟周期。DIV 事件标志在 35 个 执行周期结束时产生。 在操作数预处理期间,只有 DVD 和 DVS 寄存器的输出被执行移位操作,而不是 DVD 和 DVS 寄存器本身。因此,这两个寄存器的内容保持不变。 7.3 CORDIC 协处理器 CORDIC 协处理器能计算三角函数、线性函数、双曲函数及相关函数。 7.3.1 概述 本文档描述 XMC1000 产品家族的 CORDIC 协处理器的特性。介绍 CORDIC 算法的理论 背景不是本文档的目的。 对于三角函数、线性函数、双曲函数和相关函数的计算而言, CORDIC 算法是一种有用 的收敛方法。该算法不仅可以在欧几里得平面执行矢量旋转,而且在线性平面和双曲平 面也可以执行矢量旋转。 CORDIC 算法是一个迭代过程,截断误差是这个过程的固有性质。CORDIC 协处理器每 次计算使用 27 次迭代,并且使用至少为 32 位的内核数据宽度,因而可获得较高的精度。 使用该算法的主要优点在于比软件有更快的计算速度,并可获得高精度。 通用的 CORDIC 算法使用以下公式,因子 m 控制矢量旋转并选择三角函数、线性函数和 双曲函数的角度:xi+1 = xi - m · di · yi · 2-i yi+1 = yi + di · xi · 2-i (7.1) zi+1 = zi - di · ei (7.2) 其中: m = 1 三角函数 ( 基本 CORDIC) , ei = atan(2-i) m = 0 线性函数 , ei = 2-i m = -1 双曲函数, ei = atanh(2-i) 为清晰起见,本文档使用以下术语表示 CORDIC 数据: • 结果数据:在 CORDIC 计算结束时 (BSY 位不再有效)的最终结果数据。 • 计算数据:来自 CORDIC 迭代的中间数据或上一次数据结果。 参考手册 7-5 MATH 协处理器 (MATH) , V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) • 初始数据:第一次 CORDIC 迭代中使用的数据,通常是用户的初始化数据。 7.3.1.1 特性 CORDIC 协处理器的关键特性如下: • 运算模式 – 支持所有的 CORDIC 运算模式,用于解决圆函数(三角函数)、线性 ( 乘 - 加 , 除 - 加 ) 函数和双曲函数问题。 – 集成的查找表 (LUT) 可用于所有的运算模式 • 圆向量模式:支持满范围 [-223,(223-1) 内的初始 X 和 Y 数据值,来计算角度和幅值。 • 圆旋转模式:支持满范围 [-223,(223-1) 内的初始 Z 数据值,代表范围 [-,((223-1)/223) 内的角度,来求解三角学问题。 • 24 位可访问的数据宽度 – 32 位内核数据宽度外加 2 个符号扩展位以及 X 和 Y 各一位溢出位 – 29 位内核数据宽度外加 1 个符号扩展位和 Z 的 1 位溢出位 – 一个 KEEP 位,用于在内核寄存器中为进行一次新计算保持最后一次结果值 • 每次运算进行27 次迭代:从启动位 (ST)置1到计算结束标志置1需要62个内核时钟周 期或更少,这不包括写和读数据字节消耗的时间。 • 补码数据处理 – 唯一的例外:具有用户可选项的 X 结果数据 (对于无符号结果)。 • 接受的 X 和 Y 数据一般为整数或有理数; X 和 Y 必须是相同的数据格式。 • 截断误差 – 由于低有效位的截断效应,一次 CORDIC 计算的结果可能返回一个近似值。 – CORDIC 计算出的结果数据精度高,尤其是在圆模式下。 • 中断 – 在一次计算完成时 – 中断使能和中断标志 表 7-1 用例 角度计算 派克变换 Y +XZ CORDIC 应用 应用 EPS, 电机控制 电机控制 数字滤波 , PI 控制回路 参考手册 服务请求处理 , V1.0 7-6 V1.0, 2013-03 请遵守产品信息使用协议 7.3.1.2 框图 图 7-4 给出了 CORDIC 协处理器内核的框图 。 I/O x 数据寄存器 x 移位寄存器 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) +- 数据 I/O 和加载信号 y 移位寄存器 +- I/O y 数据寄存器 I/O z 数据寄存器 迭代 计数器 atan() +- atanh() MUX 加载 移位 移位寄存器 / LUT 图 7-4 FSM I/O CORDIC 框图 FSM (迭代计数器、移位计数器、标志产生) 参考手册 7-7 MATH 协处理器 (MATH) , V1.0 V1.0, 2013-03 请遵守产品信息使用协议 7.3.2 功能概述 以下各小节描述 CORDIC 协处理器的功能。 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 7.3.2.1 服务请求处理的操作 不论在旋转模式还是在向量模式, 服务请求处理都可以用来完成园函数(三角函数)、线 性 ( 乘 - 加,除 - 加 ) 函数或双曲函数运算。用软件通过 CON 控制寄存器来选择模式。 内核数据寄存器的初始化是通过将寄存器 STATC 中相应的 STATC.KEEPx 位清零来使 能的。如果 CON.ST_MODE = 1,向 CON.ST 位写 1 即启动一次新的计算。否则,在 CON.ST_MODE = 0 的默认情况下,在对寄存器 CORDX 进行写访问后会启动一次新的 计算。每次计算包含固定的 27 次迭代。当一次运算正在进行时, STATC.BSY 位被置 1,表示处于忙状态。在一次计算结束时, STATC.BSY 位被硬件清零。 启动一次 CORDIC 计算的第一步 ( 如果相应的 KEEP 位没有被置 1) 是将初始数据从数据 寄存器 CORDx 加载到内核数据寄存器。在计算期间,内核数据寄存器总是保持最后的 中间数据。在计算结束时,结果数据被加载到结果寄存器 CORRx。 数据寄存器 CORDx 的功能有如映射寄存器,可以在不影响正在执行的计算的情况下被 写入。只有当 CON.ST 位被有效置 1 时,或者是在 CON.ST_MODE = 0 情况下,对 X 数 据寄存器 CORDX ( 如果相应的数据 KEEP 位没有被置 1) 的写访问之后,数据才被传送 到内核数据寄存器。在计算结束时 (BSY 位不再有效 ),可以从结果寄存器 CORRx 读取 结果数据。需要在启动下一次计算之前读取结果数据。在 STATC.BSY 被置 1 期间 ( 内 核仍在进行一次计算 ) ,对结果寄存器 CORRx 的任何读访问都会导致内核发出一个总线 等待,直到 STATC.BSY 被复位。这样可以确保对结果寄存器 CORRx 的任何一次读访 问都会返回一个有效结果。 在每次计算结束时, STATC.BSY 返回到 0,指示 CORDIC 运算结束的 EVFR.CDEOC 位被置 1。如果通过 EVIER.CDEOCIEN = 1 使能了中断,则中断请求信号被激活。 EVFR.CDEOC 标志必须由软件清零,这可通过设置 EVFCR.CDEOCC = 1 来实现。X、 Y 和 Z 中的结果数据在内部被检查,在发生数据溢出的情况下, EVFR.CDERR 位被置 1。如果通过 EVIER.CDEOCIEN = 1 使能了中断,则 中断请求信号将被激活。 EVFR.CDERR 标志必须由软件清零,通过设置 EVFCR.CDERRC = 1 来实现。 在一次运算正在进行期间 ( 如果 CON.ST_MODE = 1),在 STATC.BSY 被置 1 时置位 CON.ST 不起作用。要启动一次新的计算,必须等到 STATC.BSY 不再有效时重新置位 CON.ST。同样地,在一次运算正在进行期间 ( 通过 STATC.BSY 指示 ) ,改变操作模式 也不起作用。 在自动启动模式 (CON.ST_MODE = 0),在 STATC.BSY 被置 1 期间发生的对 CORDX 的写访问不会启动一次新的计算,这与 CON.ST_MODE = 1 的情况类似。 参考手册 服务请求处理 , V1.0 7-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 7.3.2.2 规格化的结果数据 在所有操作模式下,服务请求处理 返回一个规格化的结果数据到 X 和 Y,如下面的方程 所示: X 或 Y 结果数据 = C----O----R----D----I--C----计----算----数----据--MPS 另一方面,根据所使用的 CORDIC 函数不同,对 Z 结果数据的解读是不同的: 对于线性函数,对 CORDIC 计算的 Z 数据没有额外的处理过程,它本身就被直接当作结 果数据。可访问的 Z 结果数据是一个实数,表示为有符号的 4Q19。 对于三角函数和双曲函数,可访问的 Z 结果数据是一个规格化的整数值,其范围为 [223,(223-1)],代表的角度范围为 [-,((223-1)/223)]。服务请求处理要求将 Z 数据解读如下: ??Z???? = ??Z???(?????)  8---3---8----8---6--0---8- ??Z???(?????) = Z????  -------------------8388608 CORDIC 计算出的数据包含一个固有的由旋转或向量引起的增益系数 。每个 CORDIC 函数的  值是不同的,如 表 7-2 所示。 表 7-2 函数 三角函数 双曲函数 线性函数 CORDIC 函数固有的结果数据增益系数 近似增益 K 1.646760258121 0.828159360960 1 7.3.3 服务请求处理工作模式 表 7-3 给出了服务请求处理工作模式的概览。在该表中,X、Y 和 Z 代表初始数据,Xfinal、 Yfinal 和 Zfinal 代表当所有处理过程都结束并且 BSY 不再有效时的最终结果数据。 CORDIC 方程式为 : xi+1 = xi - m · di · yi · 2-i (7.3) yi+1 = yi + di · xi · 2-i (7.4) zi+1 = zi - di · ei (7.5) 参考手册 7-9 MATH 协处理器 (MATH) , V1.0 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 表 7-3 函数 圆函数 m=1 ei = atan(2-i) 服务请求处理工作模式和相应的结果数据 旋转模式 向量模式 di = sign (zi), zi0 di = -sign (yi), yi0 Xfinal = K[X cos(Z) - Y sin(Z)] / MPS Xfinal = K sqrt(X2+Y2) / MPS Yfinal = K[Y cos(Z) + X sin(Z)] / MPS Yfinal = 0 Zfinal = 0 Zfinal = Z + atan(Y / X) 其中 K  1.646760258121 其中 K  1.646760258121 为了计算 cos(Z) and sin(Z),令 X = 1 / K, Y = 0。 定义域:由于有预处理逻辑,所以 支持满范围的 X, Y 和 Z 。 为了计算向量的模 (sqrt(x2+y2)), 令 X = x / K, Y = y / K。 定义域:由于有预处理和后处理逻 辑,所以支持满范围的 X 和 Y。 线性函数 m=0 ei = 2-i 关系: tan(v) = sin(v) / cos(v) Xfinal = X / MPS Yfinal = [Y + X Z] / MPS Zfinal = 0 为了计算 X · Z, 令 Y = 0。 定义域:|Z| £ 2。 用于计算 atan(Y / X), 令 Z = 0。 定义域:满范围的 X 和 Y, X = 0 除外。 关系: acos(w) = atan[sqrt(1-w2) / w] asin(w) = atan[w / sqrt(1-w2)] Xfinal = X / MPS Yfinal = 0 Zfinal = Z + Y / X 为了计算比值 Y / X, 令 Z = 0。 定义域:|Y / X|  2, X > 0。 参考手册 服务请求处理 , V1.0 7-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 表 7-3 服务请求处理工作模式和相应的结果数据 函数 旋转模式 向量模式 双曲函数 m = -1 Xfinal = k[X cosh(Z) + Y sinh(Z)] / MPS ei = atanh(2-i) Yfinal = k[Y cosh(Z) + X sinh(Z)] / MPS Zfinal = 0 其中 k  0.828159360960 Xfinal = k sqrt(X2-Y2) / MPS Yfinal = 0 Zfinal = Z + atanh(Y / X) 其中 k 0.828159360960 为了计算 cosh(Z) 、 sinh(Z) 和 eZ, 令 X = 1 / k, Y = 0。 定义域:|Z|  1.11rad, Y = 0。 为了计算 sqrt(x2-y2), 令 X = x / k, Y = y / k. 定义域:|y| < |x|, X > 0。 关系: tanh(v) = sinh(v) / cosh(v) ev = sinh(v) + cosh(v) wt = et ln(w) 为了计算 atanh(Y / X), 令 Z = 0。 定义域:|atanh(Y / X)|  1.11rad, X > 0。 关系: ln(w) = 2 atanh[(w-1) / (w+1)] sqrt(w) = sqrt((w+0.25)2-(w-0.25)2) acosh(w) = ln[w+sqrt(1-w2)] asinh(w) = ln[w+sqrt(1+w2)] 用法说明 • 对于每种函数的计算,用户必须初始化 CORDIC 数据 (X, Y 和 Z),数据必须是收敛域 内有意义的初始值以确保结果收敛。表 7-3 中列出的 “ 定义域 ” 涵盖了所支持的 CORDIC 算法收敛域,而且排除了对函数没有意义的范围。欲了解关于所支持的收敛 域的详细信息,请参见 7.3.3.1 节。关于结果数据的精度,请参见 7.3.5 节。 • 必须考虑函数的限制,例如,设置初始 X = 0 对 atan(Y / X) 是没有意义的。违反这些函 数限制可能会产生紊乱的 CORDIC 结果数据。 • 所有的输入数据都作为补码处理。唯一的例外是用户可选择将 X 结果数据 (仅对 X) 作为无符号数读取。 • 结果数据总是正值并且比初始值大的唯一一种情况是圆向量模式下的 X 结果数据(仅 对 X)。因此用户可能希望将 MSB 位用作数据位而不是符号位。通过设置 X_USIGN = 1, X 结果数据可以作为无符号数处理。 对于圆函数和双曲函数,由于有相应的固定 LUT (查找表), Z 数据总是被作为有符号 整数 S28 ( 可按 S23 访问 ) 来处理。LUT 包含 atan(2-i) 和 atanh(2-i) 的定标整数值 (S28), 其中 i = 0, 1, 2, ..., 27 ;这使整数值的范围为 [-223,(223-1)],表示的角度范围为 [-,((2231)/223)] 。因此 Z 数据被限定为 (不考虑收敛域)表示这些 CORDIC 函数的角度 [,((223-1)/223)]。任何计算出的 Z 值若超出该范围都将导致溢出错误。 • 对于线性函数,Z 数据总是被作为有符号小数 S4.24 处理 ( 可按 S4.19 访问,格式是有 符号的 4Q19 )。模拟的 LUT 实际上是一个按 1.23 格式保存数据的移位寄存器,该格 参考手册 MATH 协处理器 (MATH) , V1.0 7-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 式给出 2-i 的真值。因此,不管收敛域如何, Z 数据在逻辑上只对那些模小于 16 的数 值才是有用的。溢出错误由 EVFR.CDERR 位指示。 • MPS的设置对Z数据没有影响。用户必须确保正确地初始化Z初始数据,以防止产生溢 出和不正确的结果数据。 • 服务请求处理的设计保证在使用 MPS > 1 这样正确的用户设置时, X 和 Y 数据不会 产生内部溢出,读取的结果数据是正确的。但是需要注意,在这种情况下, MPS 的 设置值越大,则结果数据的分辨率越低,这是因为损失了 LSB 位。 • 在双曲旋转模式,由于初始 Y 数据必须被设置为 0,结果精度受到限制。换句话说, 服务请求处理只用一次计算不能返回精确的 cosh(Z)+/-sinh(Z) 结果 。 7.3.3.1 收敛域 本文档的目的并非阐述有关 CORDIC 收敛的固有限制的理论,在旋转模式或向量模式, 不同 CORDIC 函数的收敛域是不同的。 对于结果数据的收敛域,根据所用的工作模式不同,初始数据的值或模是有限制的,相 应的数据格式也有限制。以下是关于 CORDIC 结果数据收敛的一般适用结论。 旋转模式:Z 数据必须收敛于 0。初始 Z 数据必须等于或小于 di · ei,其中 ei 总是随迭 代次数 i 的增大而减小。换句话说, |Z|  LUT 的和。对于圆函数,这意味着 |Z|  代表 1.74 弧度的整数值。对于线性函数,|Z|  2。对于双曲函数,|Z|  代表 1.11 弧度的整数 值。 向量模式:Y 数据必须收敛于 0。 X 和 Y 的初始值被 Z 函数限定,而 Z 函数取决于对应 的 LUT。对于圆函数,这意味着 |atan(Y / X)|  1.74 弧度。对于线性函数, |Y / X|  2。 对于双曲函数,|atanh(Y / X)|  1.11 弧度。在向量模式,还要求 X  0。 虽然服务请求处理的工作模式通常受这些收敛极限值的限定,但对圆旋转模式和圆向量 模式还是有例外,这些模式可以用额外的预处理(和后处理)逻辑来支持更宽的输入范围。 圆旋转模式:支持满范围 [-223,(223-1)] 的 Z 输入,代表的角度范围是 [-,((223-1)/223)]。 对 X 和 Y 初始输入没有限制,但要注意溢出,可以通过设置 MPS 克服溢出。 圆向量模式:支持满范围 [-223,(223-1)] 的 X 和 Y 输入, Z 初始值应当满足 |Z|   /2 ,以 防止可能的 Z 结果数据溢出。 注: 应当考虑函数的限制,例如结果数据的意义,被零除就是没有意义的。表 7-3 中包 含的每种函数的 “ 定义域 ” 意在涵盖函数的 CORDIC 收敛域和有用范围。 注: 输入值可能位于收敛域内,但这并不能保证 CORDIC 结果数据有固定的精度级。 有关服务请求处理精度的详细信息,请参见 7.3.5 节 。 7.3.3.2 溢出考虑 除了考虑收敛域之外,还必须考虑输入数据幅值的限制,以防止结果数据溢出。 在所有工作模式下,服务请求处理都以相同的方式处理数据溢出。 用户可以通过正确设 置 MPS 来避免 X 和 Y 数据溢出。MPS 值的选择在一定程度上要基于服务请求处理的工 作模式和应用数据。 参考手册 服务请求处理 , V1.0 7-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) MPS 的设置对 Z 数据没有影响。对于圆函数和双曲函数,超出 [-,((223-1)/223)] 范围的 任何 Z 值都不能被表示,而且会导致 Z 数据溢出错误。注意,内核数据 Z 的数值范围是 [-,((223-1)/223)] ,换算后的范围是 [-223,(223-1)],所以 Z 数据的读出值和写入值总是被 这样规格化的。对于线性函数, Z 是一个实际值, Z 的模不能超过 4 个整数位。 7.3.4 服务请求处理数据格式 服务请求处理接受补码格式的 (初始) X、 Y 和 Z 输入 数据。结果数据也是补码格式。 唯一的例外是圆向量模式下的 X 结果数据。X 结果数据有一个默认的补码数据格式,但 是用户可以通过设置 CON.X_USIGN = 1 来选择将 X 结果 数据作为无符号值读取。该选 项能防止潜在的 X 结果数据溢出 ( 结合 MPS 设置 ),因为 MSB 位现在是一个数据位。注 意,只有在圆向量工作模式时,设置 CON.X_USIGN = 1 才会有效,这样总能产生正的 结果数据,而且比初始值大。 一般来说,输入数据 X 和 Y 可以是整数或有理数 (小数)。但是在任何计算中, X 和 Y 的数据格式必须相同。而且在小数的情况下, X 和 Y 必须具有相同的小数位数。 对于圆函数或双曲函数, Z 数据总是基于规格化因子被处理的整数。在线性函数的情况 下,可访问的 Z 数据是一个实数,并且具有固定的输入和结果数据格式 S4.19 ( 有符号 的 4Q19),该格式有 19 个小数位。 有关数据规格化的详细信息,请参见 7.3.2.2 节。表 7-4 概括了初始和结果数据格式。 表 7-4 函数 圆函数 线性函数 X、 Y 和 Z 数据格式一览表 数据 旋转 X 初始 24 位补码 结果 24 位补码 Y 初始 结果 Z 初始 结果 X 初始 结果 Y 初始 结果 Z 初始 结果 24 位补码 S4.19 模式 向量 24 位补码 / 24 位无符号数 (CON.X_USIGN = 1) 参考手册 MATH 协处理器 (MATH) , V1.0 7-13 V1.0, 2013-03 请遵守产品信息使用协议 表 7-4 函数 双曲线函数 X、 Y 和 Z 数据格式一览表 数据 旋转 X 初始 结果 Y 初始 结果 24 位补码 Z 初始 结果 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 模式 向量 7.3.5 服务请求处理的精度 每次 CORDIC 计算包含固定的 27 次 CORDIC 迭代,从迭代序号 0 开始。双曲函数在这 方面的特殊之处是它从迭代序号 1 开始,按定义的步数重复迭代。可寻址的数据寄存器 为 24 位宽,而用于计算的内核 X 和 Y 数据寄存器是 35 位宽 (32 个数据位加上 2 个扩展 位和 1 个溢出位 ) ,内核 Z 数据寄存器是 31 位宽 (29 个数据位加 1 个符号扩展位和 1 个 溢出位 )。有关 LUT 的数据格式的详细信息,请参见 7.3.7.1 节 和 7.3.7.2 节。 对于在指定定义域内 ( 见表 7-3) 的输入数据,服务请求处理的每次计算结果都确保收敛。 但是由于每种工作模式下数据格式不同,所以精度是不固定的。精度是结果数据与所期 望的来自一个高精度计算器的结果之间差值大小的一种测量。归一化偏差 (ND) 是一个通 用术语,它指示结果数据与期望结果的偏差大小。,偏差值是将输入 / 结果数据作为整数 来计算得到的。在数据是有理数的情况下,偏差的大小必须要加以阐释。 例如,线性向 量模式下的 Z 数据格式是 S4.19 —— 则 ND = 1 (01B) 意味着与预期真实数据的之间的差 值不大于 |2-19 + 2-19| ; ND = 2 (10B) 表示差值不大于 |2-18+2-19| ; ND = 3 (11B) 表示差 值不大于 |2-19+2-18+2-19| ; ND = 4 (100B) 表示差值不超过 |2-17+2-19|,依此类推。差值 中总是加上 2-19,这是因为可能的截断误差为 2-19。 表 7-5 列出了一次计算中归一化偏差的概率,这是在每种服务请求处理工作模式下用大 约一百万个不同的输入集并基于规定的输入条件 (总是位于定义域内,可能还有附加条 件)而获得的结果。 如果用有理数 ( 小数 ) 代替整数进行计算,则很容易提高每种模式的精度。这只适用于 X 和 Y 数据 (X 和 Y 必须总是具有相同的数据格式 ),而 Z 的数据格式是固定的,由相应的 LUT (查找表)的定义决定。很明显,我们可以预期,对于给定的输入 X 和 Y (和 Z), 计算结果总是会返回一个常数值,无论 X 和 Y 是整数还是有理数。唯一的区别对输入和 结果数据的阐释,即没有小数位或有多少小数位。如果 X 和 Y 数据是整数而不是有理数, CORDIC 结果与预期数据的偏差不可能更小。因此,在可能的情况下,要指定 X 和 Y 为 有理数,并谨慎选择小数点的位置 ,选择的依据是所用模式下的最大 ND 值。 参考手册 服务请求处理 , V1.0 7-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 表 7-5 一次计算的归一化偏差 模式 圆向量模式 X 的归一化偏差 Y 或 Z 的归一化偏差 输入条件:定义域和 [(1.64676/2)·sqrt(X2+Y2)  600] 0 : 97.8830% 1 : 2.1150% 2 : 0.0010% 3 : 0.0010% X  3 的 ND 值 0 : 69.6738% 1 : 29.8307% 2 : 0.4919% 3 : 0.0036% Z  3 的 ND 值 圆旋转模式 输入条件:定义域 ( 满范围的 X, Y 和 Z) 0 : 47.8958% 1 : 50.3470% 2 : 1.7561% 3 : 0.0006% 4 : 0.0003% 5 : 0.0002% X  5 的 ND 值 0 : 47.8773% 1 : 50.3626% 2 : 1.7438% 3 : 0.0103% 4 : 0.0052% w5 : 0.0008% Y  5 的 ND 值 线性向量模式 输入条件:定义域 (|Y / X|  2, X > 0) 0 : 99.5869% 1 : 0.4131% X  1 的 ND 值 0 : 47.6909% 1 : 52.2723% 2 : 0.0239% 3 : 0.0129% Z  3 的 ND 值 线性旋转模式 输入条件:定义域 (|Z|  2) 0 : 100% X  0 的 ND 值 0 : 48.2181% 1 : 50.7801% 2 : 0.9996% 3 : 0.0022% Y  3 的 ND 值 双曲向量模式 输入条件:定义域 (|Y| < |X|, X > 0, |atanh(Y / X)|  1.11rad) 0 : 98.1092% 1 : 1.8855% 2 : 0.0017% 3 : 0.0019% 4 : 0.0017% X  4 的 ND 值 0 : 47.7010% 1 : 51.2954% 2 : 0.9938% 3 : 0.0098% Z  3 的 ND 值 参考手册 MATH 协处理器 (MATH) , V1.0 7-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 表 7-5 一次计算的归一化偏差 模式 X 的归一化偏差 Y 或 Z 的归一化偏差 双曲旋转模式 输入条件:定义域 (|Y| < |X|, X > 0, |atanh(Y / X)|  1.11rad) 0 : 47.6358% 1 : 51.1029% 2 : 1.2578% 3 : 0.0012% 4 : 0.0007% 5 : 0.0006% 6 : 0.0005% 7 : 0.0002% 8 : 0.0003% X  8 的 ND 值 0 : 47.5419% 1 : 51.2064% 2 : 1.2478% 3 : 0.0013% 4 : 0.0010% 5 : 0.0007% 6 : 0.0006% 7 : 0.0003% Y  7 的 ND 值 注: 对于多步计算的最终结果而言,上面所描述的每种模式的精度 / 偏差并不能得到保 证。例如,如果一次运算包含两次 CORDIC 计算,第二次计算使用第一次计算的 结果数据 ( 通过将对应的 KEEP 位置 1 来使能 )。这是由近似值和误差的累积而造 成的。 7.3.6 服务请求处理的性能 CORDIC 的计算时间随着计算精度的增加而线性增加。精度的增加是通过更多次数的迭 代来获得的,这就要求增加数据参数的宽度。 服务请求处理使用桶式移位器实现数据移位。因为每次计算都需要固定的 27 次迭代,所 以从启动计算到 EVFR.CDEOC 标志被置位那一刻的总时间大约是 62 个内核时钟周期。 需要注意的是,EVFR.CDERR 标志在 EVFR.CDEOC 被置位之后一个内核时钟周期才有 效。一次完整计算的时序也适用于那些包含额外数据处理的模式,也适用于包含重复迭 代和一个额外的模式设置时钟周期的双曲模式。 注: 上面提到的时序不包括软件加载初始数据到 6 个数据寄存器和从 6 个数据寄存器读 取最终结果的时间。 7.3.7 服务请求处理查找表 本节为用户提供关于服务请求处理查找表的须知信息。 本节描述 CORDIC 协处理器内核使用的查找表。 7.3.7.1 反正切和双曲反正切查找表 反正切查找表 (atan LUT)和双曲反正切查找表 (atanh LUT)分别为 29 位和 30 位 宽。反正切 LUT 的每一项被分成一个符号位 (MSB)和后面跟随的 28 位整数部分。对 于双曲反正切 LUT,每一项有一个重复位(MSB),后面跟随一个符号位,然后是 28 位 的整数部分。 参考手册 服务请求处理 , V1.0 7-16 V1.0, 2013-03 请遵守产品信息使用协议 LUT 内容是: • 数据格式为 S29 的反正切 LUT,见表 7-6。 表 7-6 迭代序号 i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i = 10 i = 11 i = 12 I = 13 atan(2-i) 的预计算定标值 十六进制格式的 atan(2-i) 定标值 4000000 25C80A4 13F670B A2223B 5161 A8 28BAFC 145EC4 A2F8B 517CA 28BE6 145F3 A2FA 517D 28BE 迭代次数 i = 14 i = 15 i = 16 i = 17 i = 18 i = 19 i = 20 i = 21 i = 22 i = 23 i = 24 i = 25 i = 26 • 数据格式为 S29 的双曲反正切 LUT,见表 7-7。 表 7-7 迭代序号 i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 atanh(2-i) 的预计算定标值 十六进制格式的 atanh(2-i) 迭代次数 定标值 - i = 14 2CC2F12 i = 15 14D01AC i = 16 A3D4E0 i = 17 5197FC i = 18 28C1C7 i = 19 145F9D i = 20 A2FA6 i = 21 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 十六进制格式的 atan(2-i) 定标值 145F A30 518 28C 146 A3 51 29 14 A 5 3 1 十六进制格式的 atanh(2-i) 定标值 145F A30 518 28C 146 A3 51 29 参考手册 MATH 协处理器 (MATH) , V1.0 7-17 V1.0, 2013-03 请遵守产品信息使用协议 表 7-7 迭代序号 i=8 i=9 i = 10 i = 11 i = 12 I = 13 atanh(2-i) 的预计算定标值 十六进制格式的 atanh(2-i) 迭代次数 定标值 517CE i = 22 28BE6 i = 23 145F3 i = 24 A2FA i = 25 517D i = 26 28BE XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 十六进制格式的 atanh(2-i) 定标值 14 A 5 3 1 Z 数据是实际角度的规格化表示。例如内部换算将 [-,((223-1)/223)] 等价于 [-228,(2281)]。当被寻址时,最后的 5 个 LSB 位被截断, 24 位数据被传送到数据总线。从用户的 角度看,角度 [-,((223-1)/223)] 由范围 [-223,(223-1)] 来代表。 7.3.7.2 线性函数的模拟查找表 线性函数的模拟 LUT 实际是一个移位寄存器。该模拟 LUT 有一个整数位 (MSB),后 面跟随 23 位 1Q23 格式的小数位。 在线性函数中, Z 是一个实数,内部 的 Z 数据是格式为 4Q19 的有符号数。外部读取的 数据是小数部分最后 5 位被截断后的结果,这就导致读取的数据是一个符号位后面跟随 4 位整数部分,最后是 19 位的小数部分。 7.4 全局函数 因为 DIV 和 CORDIC 都有自己的控制和数据寄存器组 ,所以它们可以各自独立工作。 然而,它们共用一个公共总线接口和一些全局函数。 7.4.1 结果链接 MATH 协处理器支持 DIV 和 CORDIC 之间的结果链接。 对于 DIV,这意味着每个操作数寄存器即 DVD 和 DVS,都可以被来自任何一个结果寄存 器 ( DIV 中的 QUOT 和 RMD ; CORDIC 中的 CORR[Z:X]) 的值更新。 对于 CORDIC,这意味着每个操作数寄存器 CORD[Z:X] 都可以被来自 DIV 结果寄存器 QUOT 或 RMD 的值更新。 在这两种情况下,都是通过 GLBCON 寄存器中的操作数寄存器结果链接位域 (xRC) 来选 择用哪个寄存器的值更新操作数寄存器。 注: 要用来自相应的 CORR[Z:X] 寄存器的值更新 CORDIC CORD[Z:X] 寄存器,必须 使用 STATC 寄存器中的 KEEP[Z:X] 位进行单独控制。 参考手册 服务请求处理 , V1.0 7-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 一旦 前面的 DIV 或 CORDIC 运算结束,数据就被更新,同时更新当前结果寄存器。图 7-5 给出了链接 DIV 商值到 CORDIC 的 X 操作数的例子。 内核时钟 1 2 3 4 33 34 35 36 DIVEOC DVD 16 DVS 4 QUOT 4 RMD 0 CORDX 4 图 7-5 CORDXRC = 01B 时的除法操作 7.4.1.1 启动模式为 0 时的结果链接 当相应的启动模式为 0 时,应用软件可以用写 DVS 和 CORDX 操作数寄存器的方式启动 DIV 和 CORDIC 运算 ( 见 7.2.2.1 节 和 7.3.2 节 )。结果链接引起的对这些寄存器的更新 等价于硬件写操作,因此具有相同的效果。 为了避免潜在的死锁情况,应用程序在使用结果链接功能时,必须注意避免以下两种情 况: 1. 在 DIVCON.STMODE = 0 时, DVS 被链接到 QUOT 或 RMD 2. DVS被链接到CORRx,CORDX被链接到 QUOT 或 RMD,而此时DIVCON.STMODE 和 CON.ST_MODE 都等于 0。 7.4.1.2 结果链接被使能时的忙标志处理 使用图 7-5 给出的例子,一个 DIV 结果被链接到 CORDIC 操作数 CORDX。如果 CON.ST_MODE= 0,启动 DIV 计算不仅会置位 DIV 忙标志,还会置位 CORDIC 的忙标 志。即使 CORDIC 起初没有被激活,也会出现这种情况。也就是说,只有当 DIV 计算完 参考手册 MATH 协处理器 (MATH) , V1.0 7-19 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 成,并且 QUOT 或 RMD 的值被写入到 CORDX 时, CORDIC 计算才会启动。类似地, 在 DIV 计算完成后变为非活动状态的 DIV 不会立即清除忙标志 , 而是在 CORDIC 计算也 完成后, DIV 和 CORDIC 的忙标志同时被清除。 上述规则在另一方向也适用,即如果一个 CORDIC 结果被链接到 DIV 的 DVS 操作数寄 存器且 DIVCON.STMODE= 0 的情况。 在忙标志位被置位期间: • 读 DIV 或 CORDIC 的 结果寄存器会导致在总线上插入等待状态。 • 在 DIV 或 CORDIC 处于活动状态期间,启动一次新的 DIV 或 CORDIC 计算或者向它 们各自的控制寄存器 DIVCON 和 CON 进行写操作是无效的。 • 然而,如果 DIV 或 CORDIC 仍处于非活动状态,或刚从活动状态返回到非活动状态, 启动一次新的 DIV 或 CORDIC 计算或者向它们各自的控制寄存器进行写操作是有效 的。 在 DIV 和 CORDIC 的忙标志被置位期间,必须避免启动一次新的计算或向控制寄存器进 行写操作,否则计算结果可能被破坏。 7.5 服务请求的产生 如果被 EVIER 寄存器中各自的中断使能位使能,则 DIV 和 CORDIC 的错误及计算结束 事件会向 NVIC 触发中断服务请求。这些事件由 EVFRT 寄存器中的事件标志指示。只能 通过向 EVFCR 寄存器中的事件标志清零位写 1 来清除事件标志位。 向 EVFSR 寄存器中的事件标志置 1 位写 1 与计算结束事件具有相同的作用。 图 7-6 给出了 MATH 协处理器中的中断结构。 参考手册 服务请求处理 , V1.0 7-20 V1.0, 2013-03 请遵守产品信息使用协议 EVFCR CDEOCC 清零 EVFR CDEOC EVFSR CDEOCS 置位 OR CORDIC 计算 结束事件 EVIER CDEOCIEN EVFCR CDERRC 清零 EVFR CDERR EVFSR CDERRS 置位 OR CORDIC 错误事件 EVIER CDERRIEN EVFCR 清零 DIVEOCC EVFR DIVEOC EVFSR DIVEOCS 置位 OR 除法器计算结束事件 EVIER DIVEOCIEN EVFCR 清零 DIVERRC EVFR DIVERR EVFSR DIVERRS 置位 OR 除法器错误事件 EVIER DIVERRIEN XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 或逻辑 SR0 去 NVIC的 中断服务请求 图 7-6 中断结构 7.6 调试行为 MATH 可以被配置为在 CPU 的程序执行被调试器停止时进入挂起模式 ( 由挂起信号有效 来指示 )。 有两种挂起模式,可以通过控制位域 GLBCON.SUSCFG 来选择挂起模式: • 硬挂起模式 – 内核时钟立即被关闭,因而停止所有计算 • 软挂起模式 参考手册 MATH 协处理器 (MATH) , V1.0 7-21 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) – 任何一次活动的计算都被允许继续进行,在该计算结束后内核时钟才被关闭。 在内核时钟被关闭以后,所有的寄存器都变成只读状态。在该状态写寄存器无效。当挂 起信号变为无效时,挂起模式结束,恢复正常操作。 对于寄存器位而言,挂起模式是非侵入性的。这意味着当进入或离开挂起模式时,硬件 不能修改寄存器位。 注: 在 XMC1300 中,任何一次复位都会将 GLBCON.SUSCFG 位域复位到其默认值。 如果在调试期间需要使用挂起功能,建议在用户初始化代码部分使能该功能。 在 对该位域编程之前,必须使能接口时钟。当按 SCU 一章中的 CCU( 时钟选通控制 ) 一节所述来使能接口时钟时,需要特别谨慎。 7.7 电源、复位和时钟 MATH 协处理器位于内核电源域。该模块,包括所有寄存器,都会在系统复位时被复位 到其默认状态。 MATH 协处理器需要两个输入时钟信号,一个用于内核时钟,另一个用于接口时钟。内 核时钟与接口时钟的比值可以是 2:1 或 1:1,但它们必须始终互相同步。 这两个时钟在默认情况下都被禁止,可以通过 SCU_CGATCLR0 寄存器使能。使能和禁 止这两个时钟可能引起负载变化,并出现如 SCU 一章中 CCU( 时钟选通控制 ) 一节所述 的时钟消隐。强烈建议在用户初始化代码中设置这两个时钟,以避免在运行时出现时钟 消隐。 7.8 寄存器 寄存器概述 寄存器绝对地址用下面的加法来计算: 模块基地址 + 偏移地址 注: 表 7-9 中所示的 DIV 寄存器支持 16 位和 32 位总线访问。所有其他寄存器 ( 全局 和 CORDIC) 仅支持 32 位访问。 表 7-8 模块 MATH 寄存器地址空间 基地址 4003 0000H 结束地址 4003 FFFFH 备注 参考手册 服务请求处理 , V1.0 7-22 V1.0, 2013-03 请遵守产品信息使用协议 表 7-9 简称 寄存器一览表 描述 全局寄存器 Reserved 保留 GLBCON 全局控制寄存器 ID 模块标识寄存器 EVIER 事件中断使能寄存器 EVFR 事件标志寄存器 EVFSR 事件标志置位寄存器 EVFCR 事件标志清除寄存器 Reserved 保留 除法器寄存器 DVD 被除数寄存器 DVS 除数寄存器 QUOT 商寄存器 RMD 余数寄存器 DIVST 除法器状态寄存器 DIVCON 除法器控制寄存器 Reserved 保留 CORDIC 寄存器 STATC 状态和数据控制寄存器 CON 控制寄存器 CORDX X 数据寄存器 CORDY Y 数据寄存器 CORDZ Z 数据寄存器 CORRX X 结果寄存器 CORRY Y 结果寄存器 CORRZ Z 结果寄存器 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 偏移 地址 访问方式 读 写 描述见 0000H 0004H 0008H 000CH 0010H 0014H 0018H 001CH BE U, PV U, PV U, PV U, PV U, PV U, PV BE BE U, PV 页 7-24 BE 页 7-26 U, PV 页 7-27 U, PV 页 7-28 U, PV 页 7-29 U, PV 页 7-29 BE 0020H 0024H 0028H 002CH 0030H 0034H 0038H 003FH U, PV U, PV U, PV U, PV U, PV U, PV BE U, PV 页 7-31 U, PV 页 7-31 BE 页 7-32 BE 页 7-32 BE 页 7-33 U, PV 页 7-34 BE 0040H 0044H 0048H 004CH 0050H 0054H 0058H 005CH U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页 7-35 U, PV 页 7-37 U, PV 页 7-38 U, PV 页 7-39 U, PV 页 7-39 BE 页 7-39 BE 页 7-40 BE 页 7-40 参考手册 MATH 协处理器 (MATH) , V1.0 7-23 V1.0, 2013-03 请遵守产品信息使用协议 7.8.1 全局寄存器描述 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) GLBCON GLBCON 寄存器包含 MATH 的全局控制位。 GLBCON 全局控制寄存器 (0004H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 SUSCFG r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CORDZRC 0 CORDYRC 0 CORDXRC DVSRC r rw r rw r rw rw DVDRC rw 域 DVDRC 位 类型 描述 [2:0] rw 被除数寄存器结果链接 当发生结果链接触发事件时, DIV 中的 DVD 寄存器 将被所选择的结果寄存器的值更新。 000B 未选择结果链接 001B QUOT 寄存器是所选数据源 010B RMD 寄存器是所选数据源 011B CORRX 是所选数据源 100B CORRY 是所选数据源 101B CORRZ 是所选数据源 110B 保留 111B 保留 参考手册 服务请求处理 , V1.0 7-24 V1.0, 2013-03 请遵守产品信息使用协议 域 DVSRC CORDXRC CORDYRC CORDZRC SUSCFG XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 位 [5:3] [7:6] [10:9] [13:12] [17:16] 类型 rw rw rw rw rw 描述 除数寄存器结果链接 当发生结果链接触发事件时, DIV 中的 DVS 寄存器 将被所选择的结果寄存器的值更新。 000B 未选择结果链接 001B QUOT 寄存器是所选数据源 010B RMD 寄存器是所选数据源 011B CORRX 是所选数据源 100B CORRY 是所选数据源 101B CORRZ 是所选数据源 110B 保留 111B 保留 CORDX 寄存器结果链接 当发生结果链接触发事件时,CORDIC 中的 CORDX 寄存器将被所选择的结果寄存器的值更新。 00B 未选择结果链接 01B QUOT 寄存器是所选数据源 10B RMD 寄存器是所选数据源 11B 保留 CORDY 寄存器结果链接 当发生结果链接触发事件时,CORDIC 中的 CORDY 寄存器将被所选择的结果寄存器的值更新。 00B 未选择结果链接 01B QUOT 寄存器是所选数据源 10B RMD 寄存器是所选数据源 11B 保留 CORDZ 寄存器结果链接 当发生结果链接触发事件时,CORDIC 中的 CORDZ 寄存器将被所选择的结果寄存器的值更新。 00B 未选择结果链接 01B QUOT 寄存器是所选的数据源 10B RMD 寄存器是所选数据源 11B 保留 挂起模式配置 该位决定当 CPU 暂停执行时, MATH 协处理器是否 进入挂起模式。 00B 永不进入挂起模式 01B 当 CPU 暂停时,进入硬挂起模式。 10B 当 CPU 暂停时,进入软挂起模式。 11B 保留 参考手册 MATH 协处理器 (MATH) , V1.0 7-25 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 域 位 类型 描述 0 [31:18] r 保留 , 读出值为 0 ;应写入 0。 [15:14] , 11, 8 MATH_ID MATH_ID 寄存器指示 MATH 协处理器的功能和设计阶段。 MATH_ID 模块标识寄存器 (0008H) 复位值 : 00F2 C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MOD_NUMBER r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_TYPE r MOD_REV r 域 MOD_REV 位 [7:0] 类型 r MOD_TYPE [15:8] r MOD_NUMBE [31:16] r R 描述 模块版本号 MOD_REV 定义版本号。模块的版本值从 01H 开始 ( 第一个版本 )。 模块类型 该位域为 C0H。它定义该模块为 32 位模块。 模块编号值 该位域定义模块标识号。 参考手册 服务请求处理 , V1.0 7-26 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 事件中断使能寄存器 该寄存器使能每个事件的中断产生。如果被使能,检测到事件后会通过服务请求输出产 生中断脉冲。 EVIER 事件中断使能寄存器 (000CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CDE CDE DIVE DIVE 0 RRIE OCIE RRIE OCIE NNNN r rw rw rw rw 域 DIVEOCIEN DIVERRIEN CDEOCIEN CDERRIEN 0 位 0 1 2 3 [31:4] 类型 rw rw rw rw r 描述 除法器计算结束中断使能 0B 禁止除法器计算结束中断。 1B 使能除法器计算结束中断。 除法器错误中断使能 0B 禁止除法器错误中断。 1B 使能除法器错误中断。 CORDIC 计算结束中断使能 0B 禁止 CORDIC 计算结束中断。 1B 使能 CORDIC 计算结束中断。 CORDIC 错误中断使能 0B 禁止 CORDIC 错误中断。 1B 使能 CORDIC 错误中断。 保留 读出值为 0 ;应写入 0。 参考手册 MATH 协处理器 (MATH) , V1.0 7-27 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 事件标志寄存器 该寄存器包含每个事件的状态标志。如果置位,表示已检测到事件。 EVFR 事件标志寄存器 (0010H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CDE CDE DIVE DIVE RR OC RR OC r rh rh rh rh 域 DIVEOC DIVERR CDEOC CDERR 0 位 0 1 2 3 [31:4] 类型 rh rh rh rh r 描述 除法器计算结束事件标志 0B 未检测到除法器计算结束事件。 1B 检测到除法器计算结束事件。 除法器错误事件标志 0B 未检测到除法器错误事件。 1B 检测到除法器错误事件。 CORDIC 计算结束事件标志 0B 未检测到 CORDIC 计算结束事件。 1B 检测到 CORDIC 计算结束事件。 CORDIC 错误事件标志 0B 未检测到 CORDIC 错误事件。 1B 检测到 CORDIC 错误事件。 保留 读出值为 0 ;应写入 0。 参考手册 服务请求处理 , V1.0 7-28 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 事件标志置位寄存器 该寄存器允许应用程序置位 EVFR 寄存器中每个事件的状态标志,就像检测到事件一样。 如果在此之前使能了 EVIER 寄存器中的事件中断,将会向 NVIC 产生一次中断请求。 向这些位写 0 无效,读这些位总是返回 0。 EVFSR 事件标志置位寄存器 (0014H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CDE CDE DIVE DIVE RRS OCS RRS OCS r wwww 域 位 类型 描述 DIVEOCS 0 w 除法器计算结束事件标志置位 0B 无效。 1B 置位 EVFR 寄存器中的除法器计算结束事件标 志。如果在 EVIER 中被使能,将会产生中断。 DIVERRS 1 w 除法器错误事件标志置位 0B 无效。 1B 置位 EVFR 寄存器中的除法器错误事件标志。 如果在 EVIER 寄存器中被使能,将会产生中 断。 CDEOCS 2 w CORDIC 事件标志置位 0B 无效。 1B 置位 EVFR 寄存器中的 CORDIC 计算结束事件 标志。如果在 EVIER 中被使能,将会产生中 断。 CDERRS 3 w CORDIC 错误事件标志置位 0B 无效。 1B 置位 EVFR 寄存器中的 CORDIC 错误事件标 志。如果在 EVIER 寄存器中被使能,将会产 生中断。 参考手册 MATH 协处理器 (MATH) , V1.0 7-29 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 域 位 类型 描述 0 [31:4] r 保留 读出值为 0 ;应写入 0。 事件标志清除寄存器 通过向事件标志清零寄存器相应的位写 1 来清零 EVFR 寄存器的事件标志。 向这些位写零无效,读这些位总是返回零。 EVFCR 事件标志清除寄存器 (0018H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CDE CDE DIVE DIVE RRC OCC RRC OCC r wwww 域 DIVEOCC DIVERRC CDEOCC CDERRC 0 位 0 1 2 3 [31:4] 类型 w w w w r 描述 除法器计算结束事件标志清除 0B 无效。 1B 清除 EVFR 寄存器的除法器计算结束事件标 志。 除法器错误事件标志清除 0B 无效。 1B 清除 EVFR 寄存器的除法器错误事件标志。 CORDIC 计算结束事件标志清除 0B 无效。 1B 清除 EVFR 寄存器的 CORDIC 计算结束事件标 志。 CORDIC 错误事件标志清除 0B 无效。 1B 清除 EVFR 寄存器的 CORDIC 错误事件标志。 保留 读出值为 0 ;应写入 0。 参考手册 服务请求处理 , V1.0 7-30 V1.0, 2013-03 请遵守产品信息使用协议 7.8.2 除法器寄存器描述 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) DVD DVD 寄存器用于存储除法运算的被除数。该寄存器可由软件写入,如果结果链接被使 能,也可由硬件写入。 DVD 被除数寄存器 (0020H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VAL rwh 域 VAL 位 类型 描述 [31:0] rwh 被除数的值 DVS DVS 寄存器用于存储除法运算的除数。该寄存器可由软件写入,如果结果链接被使能, 也可由硬件写入。 当 DIVCON.STMODE = 0 时,对 DVS 的写操作可以启动一次除法运算。 DVS 除数寄存器 (0024H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VAL rwh 域 VAL 位 类型 描述 [31:0] rwh 除数值 参考手册 MATH 协处理器 (MATH) , V1.0 7-31 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) QUOT QUOT 寄存器用于存储除法运算的商。每当除法运算完成时,该寄存器被硬件自动更新。 注: 如果在 BSY = 1 时读 QUOT 寄存器,将会在总线上插入等待状态。仅当新的 QUOT 值在当前计算结束后变为可用时,总线读事务才会完成。 QUOT 商寄存器 (0028H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VAL rh 域 VAL 位 类型 描述 [31:0] rh 商值 RMD RMD 寄存器用于存储除法操作的余数。当每次除法操作完成时,该寄存器被硬件自动更 新。 注: 如果在 BSY = 1 时读 RMD 寄存器,将会在总线上插入等待状态。仅当新的 RMD 值在当前计算结束后变为可用时,总线读事务才会完成。 RMD 余数寄存器 (002CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VAL rh 域 VAL 位 类型 描述 [31:0] rh 余数值 参考手册 服务请求处理 , V1.0 7-32 V1.0, 2013-03 请遵守产品信息使用协议 DIVST DIVST 寄存器包含 DIV 的状态标志。 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) DIVST 除法器状态寄存器 (0030H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 BSY r rh 域 BSY 0 位 0 [31:1] 类型 rh r 描述 忙指示 0B 除法器不在执行任何除法运算。 1B 除法器仍在执行除法运算。 保留 读出值为 0 ;应写入 0。 参考手册 MATH 协处理器 (MATH) , V1.0 7-33 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) DIVCON DIVCON 寄存器包含 DIV 的控制位。 当 BSY=1 时,对 DIVCON 的写访问被忽略。在这种情况下不会产生总线错误。 注: 如果结果链接被使能,请参见 7.4.1.2 节关于忙标志处理的描述。 DIVCON 除法器控制寄存器 (0034H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 DVSSRC 0 DVDSLC r rw r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 QSDI R 0 QSCNT 0 DIVMODE USIG N STM ODE ST rw r rw r rw rw rw rwh 域 ST STMODE USIGN QSDIR 位 类型 描述 0 rwh 启动位 0B 无效。 1B 当 STMODE=1B 时启动除法运算。 该位在一个内核时钟周期后被硬件自动清零。 1 rw 启动模式 选择除法运算的启动模式: 0B 写 DVS 寄存器会自动启动一次计算。 1B 通过将 ST 位置 1 来启动计算。 注: 如果 BSY = 1,启动一次新的除法运算的请求 将被忽略。 2 rw 无符号除法使能 0B 选择有符号除法。 1B 选择无符号除法。 15 rw 商移位方向 此位用于选择除法运算结束后商的移位方向: 0B 左移。 1B 右移。 参考手册 服务请求处理 , V1.0 7-34 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 域 QSCNT DVDSLC DVSSRC 0 位 类型 [12:8] rw [20:16] rw [28:24] rw [31:29] r , [23:21] , [14:13] , [7:3] 描述 商移位计数 如果 QSCNT 不等于 0,它指示除法运算完成后对商 进行移位的位数 。 如果 QSCNT=0,不会发生移位操作。 被除数左移计数 如果 DVDSLC 不等于 0,它指示除法运算开始前对 被除数进行左移的位数。 如果 DVDSLC = 0,不会发生移位操作。 除数右移计数 如果 DVSSRC 不等于 0,它指示除法运算开始前对 除数进行右移的位数。 如果 DVSSRC = 0,不会发生移位操作。 保留 读出值为 0 ;应写 入 0。 7.8.3 CORDIC 寄存器描述 STATC STATC 寄存器通常反映服务请求处理的状态。该寄存器还包含数据控制位。 STATC CORDIC 状态和数据控制寄存器 (0040H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 0 r 87654 KEE KEE KEE PZ PY PX rw rw rw 32 0 r 10 BSY rh 参考手册 MATH 协处理器 (MATH) , V1.0 7-35 V1.0, 2013-03 请遵守产品信息使用协议 域 BSY 0 KEEPX KEEPY KEEPZ 0 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 位 0 [4:1] 5 6 7 [31:8] 类型 rh r rw rw rw r 描述 忙指示 当置位时,指示正在进行一次计算。该标志在 ST 被 置位一个时钟周期后变为有效。在一次计算结束时, 该位变为无效。 保留 最后一次的 X 结果作为新计算的初始数据 如果置位,新的计算将会使用前一次计算的结果值 作为初始数据。换句话说,在新的计算开始时,各 自的内核数据寄存器不会被映射数据寄存器的内容 覆盖。对于第一次计算,为了加载初始 X 数据,该 位应被清零。 映射数据寄存器会继续保持最后写入的初始数据, 直到发生下一下软件写操作,而与 KEEPx 位无关。 如果 KEEPx 位被置 1,即要进行一次多步计算,则 相应的最终 x 结果数据的精度可能降低,并且不能 保证,如 7.3.5 节所述。 最后一次的 Y 结果作为新计算的初始数据 < 见对 KEEPX 的描述 > 此外,当最后的 Y 结果收敛于 0 时,在向量模式下 将该位置 1 可能没有意义。 最后一次的 Z 结果作为新计算的初始数据 < 见对 KEEPX 的描述 > 此外 , 当最后的 Z 结果收敛于 0 时,在向量模式下将 该位置 1 可能没有意义。 保留 参考手册 服务请求处理 , V1.0 7-36 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) CON CON 寄存器允许对服务请求处理的全局控制。当 STATC.BSY 被置 1 时,对该寄存器的 写操作无效。 注: 如果使能了结果链接,请参见 7.4.1.2 节关于忙标志处理的描述。 CON CORDIC 控制寄存器 (0044H) 复位值 : 0000 0062H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 MPS X_U SIGN ST_ MOD E ROT VEC MODE ST r rw rw rw rw rw rwh 域 ST MODE ROTVEC ST_MODE 位 类型 描述 0 rwh 启动计算 如果 ST_MODE = 1,置位 ST 即启动一次 CORDIC 计算。该位仅在 BSY 未被置 1 时有效。该位也可能 在一次对 CON 寄存器写访问中随其他位一起被置 1。 该位在计算开始时被硬件清零。 [2:1] 3 4 rw 工作模式 00B 线性模式 01B 圆模式 ( 默认 ) 10B 保留 11B 双曲模式 rw 旋转向量选择 0B 向量模式 ( 默认 ) 1B 旋转模式 rw 启动方式 0B 执行对X参数数据寄存器CORDX的写访问后自 动启动计算 ( 默认 )。 1B 仅在 ST 位被置 1 后启动计算。 参考手册 MATH 协处理器 (MATH) , V1.0 7-37 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 域 X_USIGN MPS 0 位 5 [7:6] [31:8] 类型 rw rw r 描述 圆向量模式下的 X 结果数据格式 当读 X 结果数据时,X 数据有以下格式: 0B 有符号,补码 1B 无符号 ( 默认 ) 该位被置 1 时, X 结果数据的 MSB 位被作为数据位 来处理,而不是符号位。 该位仅在圆向量模式下有效。在所有其他模式, X 总 是被作为补码数据处理。 在圆向量模式, X_USIGN = 1 是有意义的,因为结 果数据总是正值,并且总是大于初始值。 X 和 Y 大小预定标 在一次计算的最后一次迭代之后,X 和 Y 的计算值 除以该系数后得到最终结果。 正确地设置这些位对避免各个内核数据寄存器中的 结果溢出是非常重要的。 00B 除以 1 01B 除以 2 ( 默认 ) 10B 除以 4 11B 保留,保持最后的 MPS 设置。 保留 CORDx 该数据寄存器是用于初始化 X, Y 和 Z 参数。 CORDX CORDIC X 数据寄存器 (0048H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 0 rw r 域 0 DATA 位 [7:0] [31:8] 类型 r rw 描述 保留 初始 X 参数数据 在 CON.ST_MODE = 0 时写该寄存器将启动一次运 算。 参考手册 服务请求处理 , V1.0 7-38 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) CORDY CORDIC Y 数据寄存器 (004CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 0 rw r 域 0 DATA 位 [7:0] [31:8] 类型 r rw 描述 保留 初始 Y 参数数据 CORDZ CORDIC Z 数据寄存器 (0050H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DATA 0 rw r 域 0 DATA 位 [7:0] [31:8] 类型 r rw 描述 保留 初始 Z 参数数据 CORRx CORDIC 计算的结果数据将会被写入到各自的结果寄存器。在 STATC.BSY 被置 1 期间 (计算仍在进行),对这些寄存器的任何读访问都会导致内核发起总线等待,直到 BSY 被 复位。 CORRX CORDIC X 结果寄存器 (0054H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT 0 rh r 参考手册 MATH 协处理器 (MATH) , V1.0 7-39 V1.0, 2013-03 请遵守产品信息使用协议 域 0 RESULT 位 [7:0] [31:8] 类型 r rh 描述 保留 X 计算结果 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) CORRY CORDIC Y 结果寄存器 (0058H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT 0 rh r 域 0 RESULT 位 [7:0] [31:8] 类型 r rh 描述 保留 Y 计算结果 CORRZ CORDIC Z 结果寄存器 (005CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT 0 rh r 域 0 RESULT 位 [7:0] [31:8] 类型 r rh 描述 保留 Z 计算结果 参考手册 服务请求处理 , V1.0 7-40 V1.0, 2013-03 请遵守产品信息使用协议 7.9 互连 表 7-10 列出了模块的互联情况: 表 7-10 输入 / 输出 SR0 SR0 模块互连 I/O O O 连接到 NVIC NVIC XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 描述 中断服务请求输出 中断服务请求输出。 参考手册 MATH 协处理器 (MATH) , V1.0 7-41 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 MATH 协处理器 (MATH) 参考手册 服务请求处理 , V1.0 7-42 V1.0, 2013-03 请遵守产品信息使用协议 片上存储器 XMC1300 XMC1000 家族 片上存储器 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 8 存储器组织 本章描述系统的存储器组织、存储器访问和存储器保护策略。 XMC1300 XMC1000 家族 存储器组织 参考文献 [1] Cortex®-M0 用户指南, ARM DUI 0497A (ID112109) 8.1 概述 XMC1300 的存储器映射遵循标准的 ARM Cortex-M0 系统存储器映射。 8.1.1 特性 存储器映射实现了以下特性: • 与标准的 ARM Cortex-M0 CPU 兼容 [1] • 整个 XMC1000 家族 完全兼容 8.2 存储器映射 表 8-1 详细定义了 XMC1300 的系统存储器映射,每个外设或存储实例都拥有其自己的地 址空间。有关系统组件和外设的详细寄存器描述请参见本文档的相应章节。 注: 根据器件的型号不同,并非所有外设和存储器地址范围都是可用的。 参考手册 存储器组织 , V1.0 8-1 V1.0, 2013-03 请遵守产品信息使用协议 图 8-1 器件 专用外设总线 外部器件 (保留) 外部 RAM (保留) 应用外设 中心外设 系统外设 外设 SRAM XMC1300 地址空间 程序 Flash ROM FFFF’FFFF H E010’0000 H E000’0000 H A000’0000 H 6000 ’0000H 5000 ’0000H 4800 ’0000H 4000 ’0000H 2000 ’0000H 1000 ’0000H 0000 ’0000H XMC1300 XMC1000 家族 存储器组织 参考手册 服务请求处理 , V1.0 8-2 V1.0, 2013-03 请遵守产品信息使用协议 表 8-1 地址空间 存储器映射 地址范围 Code SRAM2) 00000000H 00000AFFH 00000B00H 00001FFFH 00002000H 0FFFFFFFH 10000000H 10000DFFH 10000E00H 10000FFFH 10001000H 10032FFFH 10033000H 1FFFFFFFH 20000000H 20000FFFH 20001000H 20001FFFH 20002000H 20002FFFH 20003000H 20003FFFH 20004000H 3FFFFFFFH XMC1300 XMC1000 家族 存储器组织 描述 ROM ( 用户可读 ) ROM ( 用户不可读 ) 保留 Flash 扇区 0 ( 用户不可读 ) Flash 扇区 0 ( 用户可读 ) Flash (200 KB) 保留 SRAM 块 0 SRAM 块 1 SRAM 块 2 SRAM 块 3 保留 访问类型1) 读 写 U, PV nBE BE BE BE BE nBE nBE U, PV nBE U, PV U, PV BE BE U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV BE BE 参考手册 存储器组织 , V1.0 8-3 V1.0, 2013-03 请遵守产品信息使用协议 表 8-1 地址空间 存储器映射 ( 续表 ) 地址范围 系统外设 40000000H 400007FFH 40000800H 4000FFFFH 40010000H 40010FFFH 40011000H 4001107FH 40011080H 4001FFFFH 40020000H 4002001FH 40020020H 4002FFFFH 40030000H 4003003FH 40030040H 4003007FH 40030080H 4003FFFFH XMC1300 XMC1000 家族 存储器组织 描述 存储器控制 访问类型1) 读 U, PV 写 U, PV 保留 BE BE SCU ( 包括 RTC) U, PV U, PV ANACTRL U, PV U, PV 保留 BE BE WDT U, PV U, PV 保留 BE BE MATH 全局寄存器 和 DIV MATH CORDIC U, PV U, PV U, PV U, PV 保留 BE BE 参考手册 服务请求处理 , V1.0 8-4 V1.0, 2013-03 请遵守产品信息使用协议 表 8-1 地址空间 存储器映射 ( 续表 ) 地址范围 系统外设 ( 续 ) 中心外设 40040000H 4004007FH 40040080H 400400FFH 40040100H 4004017FH 40040180H 400401FFH 40040200H 4004027FH 40040280H 4004FFFFH 40050000H 400500DFH 400500E0H 47FFFFFFH 48000000H 480001FFH 48000200H 480003FFH 48000400H 480007FFH 48000800H 4801FFFFH 48020000H 4802000FH 48020010H 4802FFFFH 描述 端口 0 保留 端口 1 保留 端口 2 保留 Flash 寄存器 保留 USIC0 通道 0 USIC0 通道 1 USIC0 RAM 保留 PRNG 保留 XMC1300 XMC1000 家族 存储器组织 访问类型1) 读 U, PV 写 U, PV BE BE U, PV U, PV BE BE U, PV U, PV BE BE U, PV U, PV BE BE U, PV U, PV U, PV U, PV nBE BE BE BE U, PV U, PV BE BE 参考手册 存储器组织 , V1.0 8-5 V1.0, 2013-03 请遵守产品信息使用协议 表 8-1 地址空间 存储器映射 ( 续表 ) 地址范围 中心外设 ( 续 ) 48030000H 480303FFH 48030400H 480307FFH 48030800H 48030BFFH 48030C00H 48033FFFH 48034000H 480341FFH 48034200H 4803FFFFH 48040000H 480401FFH 48040200H 480402FFH 48040300H 480403FFH 48040400H 480404FFH 48040500H 4FFFFFFFH XMC1300 XMC1000 家族 存储器组织 描述 VADC0 通用寄存器 和全局寄存器 VADC0 组 0 访问类型1) 读 U, PV 写 U, PV U, PV U, PV VADC0 组 1 U, PV U, PV 保留 BE BE SHS0 U, PV U, PV 保留 BE BE CCU40 CC40 和内 核寄存器 CCU40 CC41 U, PV U, PV U, PV U, PV CCU40 CC42 U, PV U, PV CCU40 CC43 U, PV U, PV 保留 BE BE 参考手册 服务请求处理 , V1.0 8-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 存储器组织 表 8-1 地址空间 存储器映射 ( 续表 ) 地址范围 描述 访问类型1) 读 应用外设 50000000H 500001FFH CCU80 CC80 和内 U, PV 核寄存器 50000200H 500002FFH 50000300H 500003FFH CCU80 CC81 CCU80 CC81 U, PV U, PV 50000400H 500004FFH CCU80 CC83 U, PV 50000500H 5000FFFFH 50010000H 500101FFH 保留 POSIF0 BE U, PV 50010200H 5002FFFFH 50030000H 500301FFH 保留 BCCU0 BE U, PV 50030200H - 保留 BE 57FFFFFFH 外设 58000000H - 保留 BE 5FFFFFFFH 外部 SRAM 60000000H - 保留 BE 9FFFFFFFH 外部器件 专用外设总线 A0000000H DFFFFFFFH E0000000H E00FFFFFH 保留 BE NVIC、系统定时器、 U, PV 系统控制块 厂商专用区 1 E0100000H - 保留 BE EFFFFFFFH 厂商专用区 2 F0000000H F0000FFFH 系统 ROM 表 U, PV F0001000H - 保留 BE FFFFFFFFH 1) 对于外设占用的地址范围,每个地址的访问类型都可能与表中所示不同。详见相应章节。 2) 在器件启动期间,从 2000’0000H 到 2000’01FFH 的地址范围会被启动软件盖写。 写 U, PV U, PV U, PV U, PV BE U, PV BE U, PV BE BE BE BE U, PV BE nBE BE 参考手册 存储器组织 , V1.0 8-7 V1.0, 2013-03 请遵守产品信息使用协议 8.3 存储器访问 本节描述对 XMC1300 中不同类型存储器的访问。 XMC1300 XMC1000 家族 存储器组织 8.3.1 Flash 存储器访问 XMC1300 提供了最多达 200 KB 的 Flash 存储器,用于指令代码或常量数据存储,其地 址从 1000’1000H 开始。这不包括 Flash 扇区 0,该扇区用于存储系统信息,并且是只读 类型。 有关 Flash 存储器访问的详细信息,参见 Flash 架构一章。 8.3.2 SRAM 访问 XMC1300 提供 16 KB 的 SRAM,起始地址为 2000’0000H,可用于存储指令代码或常量 数据以及系统变量,例如系统堆栈。 SRAM 支持 8 位、16 位 和 32 位写操作,并且为每 8 位写入的数据产生一个奇偶校验位。 读操作会对 32 位的读数据进行奇偶错误检查。访问 SRAM 不需要等待状态。 16 KB 的 SRAM 逻辑上被分成 4 块,每块 4 KB。在运行期间,可以用外设特权访问机制 使能或禁止对块 1、 2 和 3 的访问。详见 PAU 一章。 注: 从 2000’0000H 到 2000’01FFH 的地址范围在器件启动阶段会被启动软件盖写。因 此 , 在引导加载程序向 SRAM 加载代码 / 数据期间,不应将这些地址作为目标地 址,这些地址也不应当用于存储在系统复位或软件主复位之后应用程序仍然需要 的关键数据。 8.3.3 ROM 访问 XMC1300 提供 8 KB 的 ROM, 它包含启动软件、向量表和用户例程。 对 ROM 的读访问不需要等待状态。 8.4 存储器保护策略 存储器保护要考虑以下两个方面: 1. 知识产权 (IP) 保护 2. 运行时的存储器访问保护 参考手册 服务请求处理 , V1.0 8-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 中可用的存储器保护措施列于 表 8-2 中。 表 8-2 存储器保护措施 保护的方面 IP 保护 保护措施 封锁未授权的外部访问 存储器访问保护 位保护机制 外设特权访问控制 XMC1300 XMC1000 家族 存储器组织 保护目标 Flash 存储器内容 特定的系统关键寄存器 / 位 域 特定地址范围;每个地址范 围可以被独立控制 8.4.1 知识产权 (IP) 保护 IP 保护是指防止未经授权从 Flash 存储器读取关键数据和用户 IP 8.4.1.1 封锁未经授权的外部访问 在 XMC1300 中,启动模式索引 (BMI) 用于控制启动选项,一旦 BMI 被编程为进入用户 模式 ( 生产模式 ) ,在没有擦除整个用户 Flash( 包括扇区 0) 的情况下,不允许再进入其 他启动模式。 这样一来,加载和执行外部代码 (包括可能会读出 Flash 存储器内容的未授权代码)的 引导选项将会被封锁,只有来自 Flash 存储器的用户代码才能被执行。 8.4.2 运行时的存储器访问保护 存储器访问保护是指防止在运行时对一个存储器地址空间的意外写访问。 8.4.2.1 位保护机制 位保护机制防止用 SCU 模块中的 PASSWD 寄存器对所选择的寄存器位 ( 即被保护的位 ) 进行直接的软件写操作。当位域 MODE 为 11B 时,向位域 PASS 写 10011B 将打开对 所有被保护位的写访问;向位域 PASS 写 10101B 将关闭对所有被保护位的写访问。在这 两种情况下,即使 PASSWD 寄存器被写入 98H 或 A8H,位域 MODE 的值也不会改变。 只有当位域 PASS 被写入 11000B 时,位域 MODE 的值才可能被改变。例如,向 PASSWD 寄存器写入 0000’00C0H 将禁止位保护机制。 如果没有写入 “ 关闭访问 ” 的口令,访问会被打开最多 32 个 MCLK 周期。如果在 32 个 MCLK 周期结束之前重新写入 “ 打开访问 ” 口令,将会重新计数 32 个 MCLK 周期。 表 8-3 列出了 XMC1300 中的保护位。 参考手册 存储器组织 , V1.0 8-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 存储器组织 表 8-3 受保护的寄存器位域一览表 寄存器 SCU_CLKCR SCU_CGATSET0 SCU_CGATCLR0 SCU_ANAOFFSET VADC0_ACCPROT0 VADC0_ACCPROT1 位域 FDIV, IDIV, PCLKSEL, RTCLKSEL 所有位 所有位 ADJL_OFFSET 所有位 所有位 在没有通过位域 PASS 打开访问的情况下,对所有 被保护的寄存 器 ( 除了 VADC0_ACCPROT[1:0] 之外 ) 的写操作都会被忽略,不会产生总线错误。用户应该回读 寄存器的值,以确保写操作已经发生。 在没有通过位域 PASS 打开访问的情况下,写 VADC0_ACCPROT[1:0] 会触发一次硬故 障。如果在访问被打开后立刻发生了一个中断,并且中断服务程序需要大于 32 个 MCLK 的执行时间,则对寄存器的写操作将会在访问被关闭之后发生,从而触发一次硬故障。为 了避免这种情况,在写这两个寄存器之前应禁止中断。 SCU 一章中也描述了 PASSWD 寄存器。 SCU_PASSWD 口令寄存器 (4001 0024H) 复位值 : 0000 0007H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 PASS PRO TS MODE r w rh rw 参考手册 服务请求处理 , V1.0 8-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 存储器组织 域 MODE PROTS PASS 0 位 [1:0] 2 [7:3] [31:8] 类型 rw rh w r 描述 位保护机制控制位 00B 位保护机制禁止 - 允许对受保护位的直接访问。 11B 位保护机制使能 -必须向位域 PASS写入口令才 能打开或关闭对保护位的访问。 ( 默认 ) 其他:位保护机制使能,类似于设置 MODE = 11B。 这两位不能直接写入。要想在 11B 和 00B 之间改变 其值,必须向位域 PASS 写 11000B。只有这样, MODE 位域才会被写入并保存。 位保护信号状态位 该位指示保护状态。 0B 软件能写所有被保护的位。 1B 软件不能写任何被保护的位。 口令位 该位保护机制只能识别以下三个口令: 11000B 使能对位域 MODE 的写操作。 10011B 打开对所有被保护位的写访问 。 10101B 关闭对所有被保护位的写访问。 保留 8.4.2.2 外设特权访问控制 所有的 CPU 访问都是特权访问。在 XMC1300 中,提供了一种称为外设特权访问控制的 独立机制,该机制允许禁止一个外设的存储器地址空间,以封锁任何意外的写或读访问。 必要时可重新使能该地址空间。 详见 PAU 一章。 参考手册 存储器组织 , V1.0 8-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 存储器组织 参考手册 服务请求处理 , V1.0 8-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 9 Flash 架构 Flash 架构 本章描述非易失性存储器 (NVM) 模块 。NVM 有以下特性: • 按字读、按块写和按页 (256 字节 ) 擦除。 • 支持快速个性化 。 • 支持自动校验。 • 每页多达 50,000 个 擦除周期。 • 对于先前从未被编程过的存储单元,可在 25°C 保存数据至少十年。 • 片上产生 Flash 编程电压 。 • 可配置的擦除和写保护。 • 节电休眠模式。 • 无擦除信号量的递增写。 • 具有可用于改善良品率的冗余扇区。 9.1 定义 整篇文档中,术语 NVM ( 非易失性存储器 ) 和 Flash 被作为同义词使用,而不考虑这样 一个事实:NVM 描述的是更宽泛的存储器类,而 Flash 只是一个特例。 冗余扇区 图 9-1 NVM N_LOG_SEC * 4 KB 1 扇区 = 16 页 扇区 N_LOG_SEC-1 扇区 1 扇区 0 数据块 0 数据块 1 页 15 页 14 页 13 页1 页0 1 页 = 16 个数据块 数据块 2 数据块 14 数据块 15 1 块= 4 字 字0 字1 字2 字3 NVM 模块的逻辑结构 NVM_LOGICAL_ STRUCTURE 参考手册 Flash 架构 , V1.0 9-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 9.1.1 逻辑和物理状态 擦除 一个单元的被擦除状态是 ‘1’。强制 NVM 单元到该状态称为擦除。擦除操作的最小粒度 是页 ( 见下文 )。 写 一个单元的被写状态是 ‘0’。改变被擦除的单元到该状态称为写。写操作的最小粒度是块 ( 见下文 )。 编程 擦除和写入的组合称为编程。编程通常意味着写先前擦除的页。 注: 写这个词也用于访问特殊功能寄存器,其含义取决于上下文。 9.1.2 数据划分 字 一个字由 32 位组成。字代表在一个访问周期内从 NVM 模块读或者向 NVM 模块写的数 据尺寸。 块 一块由 4 个字组成 (128 位数据 , 扩展的 4 位校验位和 6 位 ECC)。块代表可以写入的最 小的数据部分。 页 一页由 16 块组成。 扇区 一个扇区由 16 页组成。 9.1.3 地址类型 物理地址 CPU 系统的地址。 基地址或存储器基地址 NVM 模块存储器访问的下边界物理地址。 逻辑地址 NVM 模块内部的存储器地址偏移:如果存储器被寻址,物理地址减去基地址就是逻辑地 址。 扇区地址 标明扇区的逻辑地址的模块特定部分,计算方法见 9.2.1 节。 页地址 逻辑地址的模块特定部分,计算方法见 9.2.1 节。 参考手册 服务请求处理 , V1.0 9-2 V1.0, 2013-03 请遵守产品信息使用协议 9.1.4 模块专用定义 下面的表格定义了本节中用到的 NVM 专用常量。 表 9-1 模块特殊定义 模块大小 [KB] 204 常量名 值 N_BLOCKS 16 N_PAGES 16 N_SECTORS 52 N_LOG_SEC 51 说明 每页的块数 每扇区的页数 包括冗余在内的扇区数 不包括冗余的扇区数 XMC1300 XMC1000 家族 Flash 架构 9.2 模块组件 9.2.1 存储单元阵列 非易失性存储单元是按扇区组织的,扇区由页组成,页由块构成。 逻辑存储器地址 addr 有以下结构: MSB LSB 0 扇区地址 6位 页地址 4位 块地址 4位 字地址 2位 图 9-2 逻辑地址分解 • addr[1:0] = 字偏移,未定义和被忽略的存储器地址 • addr[3:2] = 字地址 • addr[7:4] = 块地址 • addr[11:8] = 页地址 • addr[17:12] = 扇区地址 存储器子系统总是访问整字,因此字偏移被 NVM 模块忽略。 字偏移 2位 被忽略 参考手册 Flash 架构 , V1.0 9-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 9.2.1.1 页 每页由 16 个数据块组成,每个数据块有 138 位 ( 包括校验位和 ECC 位 )。 页是 NVM 单元阵列中可被擦除的数据粒度。 块0 块1 块 N_BLOCK-1 138 位数据(包括奇偶校验和ECC) 图 9-3 页结构 9.2.1.2 扇区 16 页组成一个扇区。 整个单元阵列由 52 个扇区构成。 Page_structure.vsd 参考手册 服务请求处理 , V1.0 9-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 9.3 功能描述 NVM 模块支持对存储器和特殊功能寄存器 (SFR) 的读和写访问。不支持对 SFR 的读 - 修 改 - 写机制。 NVM 模块的主要任务是从存储阵列读取或向存储器阵列写入。 9.3.1 SFR 访问 在 NVM 模块的每一种模式下都可以读特殊功能寄存器。 当状态机处于忙状态时,不可以写寄存器。 在这种情况中,写操作被冻结。其他例外见 9.5.2 节。 9.3.2 存储器读 可以按最小粒度,即字来读取 NVM 存储器,前提是该字位于模块的地址范围内。 如果要读的字不在 NVM 模块的存储器地址范围内,则该模块不会有有任何反应,一个不 同的存储器模块可能会处理该访问。 当没有 FSM 过程 ( 擦除、写、校验、休眠或唤醒 ) 正在进行时,才可以进行存储器读访 问。在 FSM 处于忙状态期间,存储器读访问被冻结,直到 FSM 重新变为空闲状态,然 后读访问被执行。这样的冻结也会使 CPU 停止执行代码。 如果需要, NVM 会在存储器读期间自动插入等待状态 。 9.3.3 存储器写 从用户的观点看,数据可以直接写入存储器阵列。但在模块内部,是先缓存一块数据并 且计算 ECC 位,然后启动一个有限状态机将 ECC 位和数据位写入存储器域。 写操作不支持环绕式处理,写一个块时必须总是从所选块的字 0 开始,然后自动按升序 继续写到字 3。 由于写一个块必须按 4 字的写入步骤进行,所以必须遵循特殊的程序来传送完整的块数 据到 NVM:写一个块时必须总是从被寻址块的字 0 开始。接下来的三次写入需要按升序 来寻址同一块的其他三个字。如果这一规则未被遵守,已经提供的字将会被丢弃。如果 在这种情况下最后提供的字地址是字 0,则该字已作为一次新块写过程的第一个字被接 受。 在该过程中间发生的读操作不会影响写数据的传送。在该过程期间,与被中断的写 操作为同一个目标地址的读操作会从存储器阵列返回数据,即不会读回已经传送的写数 据。 要写存储阵列时, NVM 模块必须被设置成一次性或连续写模式,该操作通过将 SFR NVMPROG 设置为相应的值来实现。现在可以将要写入的数据写入到所期望的地址。如 果所寻址的块在此之前被擦除过,则不进行错误检查。由于写操作只能清除数据位而不 能将任何数据位置 1,所以写一个未被擦除的块会导致数据被破坏。读这样的块将极有可 能导致 ECC 错误。 参考手册 Flash 架构 , V1.0 9-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 当 NVM 不处于写模式时,对 NVM 的写访问不会触发异常或中断,数据会丢失。对 NVM 的写访问也用来触发其他操作,这些操作将在下面的小节中描述。类似地,当寻址受保 护的扇区时,对 NVM 模块的写访问无效,数据丢失 ( 见 9.3.6 节 )。 存储器写操作会执行自动校验,这取决于 NVMPROG 的设置 ( 见 9.3.5 节 ). 在一次性写的情况下,写模式自动结束。在连续写模式下,能继续进行对新地址的写操 作,直到用户程序明确结束写模式。连续写操作的目标可以是整个存储器内的所有块,没 有任何扇区或页边界限制。 9.3.4 存储器擦除 只能按整页进行物理擦除,即被寻址页的所有位都被物理上置成 ‘1’。 要擦除存储器域中的一页,必须将 NVM 模块设置为一次性或连续页擦除模式,这可通过 将 SFR NVMPROG 设置为相应的值来实现。对一个存储单元的写访问指定待擦除页的 地址,并触发擦除操作。 当 NVM 不处于页擦除模式时,对 NVM 的写访问不会触发异常或中断,这是因为它们还 被用来触发其他操作,如本节所述。类似地,当寻址受保护的扇区时,也不会触发擦除 操作 ( 见 9.3.6 节 )。 在一次性页擦除情况中,页擦除模式自动结束。在连续页擦除模式,可以继续进行页擦 除操作,直到应用程序明确停止页擦除模式。 9.3.5 校验 如 9.3.3 节所述,写入的数据能被自动校验。 NVM 自动将写入到单元阵列中的数据与 仍然位于模块内部缓冲区的可用数据进行比较。这种比较会用写 hardread 和擦除 hardread 执行两次。这些 hardread 值与正常读的值相比由一定的余量,以确保数据被编 程为写和擦除位应具有的值。校验结果可从 SFR NVMSTATUS 中读取。 也可以通过将 SFR NVMPROG 设置为相应值来启动独立的校验操作。在这种情况下, 写入到存储器单元的数据与位于指定地址的存储器域的内容比较。这里的比较只执行一 次,与之前所选的来自正常读、 hardread 写以及 hardread 擦除的读标准比较。 当 NVM 不处于校验模式时,对 NVM 的写访问不会触发异常或中断,因为写访问也用于 触发其他操作,如本节所述。类似地,当寻址受保护的扇区时,对 NVM 的写访问无效 ( 见 9.3.6 节 )。 在一次性校验的情况下,校验模式会自动停止。在连续校验模式,可以继续进行校验操 作,直到应用程序明确结束校验模式。 注: 没有自动校验的连续写操作后面跟随两次独立校验:hardread 写和 hardread 读。 这比具有连续自动校验的写操作更快。这是因为在第二种情况下,对于每次块写, 对 hardread 值的写必须改变两次,而第一种情况下,这种改变对于整个写数据只 执行两次。 换句话说,对于连续自动校验,校验所用的参考数据在 NVM 模块内直接可用,而 对于独立校验,参考数据需要由 CPU 再次提供。 参考手册 服务请求处理 , V1.0 9-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 9.3.6 擦除保护和写保护 通过设置 NVMCONF.SECPROT,可以选择对一定数量的扇区进行保护,以防止任何修 改,即可将从扇区 0 开始的一个扇区范围定义为受擦除保护和写保护。 9.4 冗余 为了提高产品的良品率, NVM 模块包含冗余功能。冗余对用户来说是透明的。 9.5 省电模式 NVM 模块支持下面提到的省电模式。这些模式在功耗和重启存储器的时间方面都不相 同。 9.5.1 空闲模式 在充电泵充电完成并且复位之后,MCU 进入空闲模式。空闲模式的功耗低于存储器读和 写访问期间的功耗。 NVM 模块的任何操作 (SFR 访问或存储器访问 ) 都可以没有延迟地从空闲模式启动。 9.5.2 休眠模式 进入和退出 NVM 休眠模式需要特殊的状态机序列,这需要一些时间。因此,除了 SFR 访问之外, NVM 模 块不能在被从休眠模式唤醒后立即使用,这一点由 NVMSTATUS.BUSY 指示。 通过 WFE/WFI 指令进入 NVM 休眠模式,这时 Flash 下电被激活,见 SCU 一章。也可 通过写 SFR NVMCONF 的相应位来触发 NVM 模块的休眠模式。 在 NVM 休眠模式,只有 SFR NVMCONF 是可读和可写的,所有其他 SFR 只能读。休 眠模式下不能进行存储器访问。 9.6 纠错码 (ECC) 的质和实现 对于每个 128 位的数据块,纠错码 (ECC) 是一个纠错位和两个错误检测位。每个数据块 有 4 个校验位,6 个 ECC 位,外加被保护的 128 位数据位。当写数据时,每一块的 ECC 位自动产生。 参考手册 Flash 架构 , V1.0 9-7 V1.0, 2013-03 请遵守产品信息使用协议 9.7 NVM SFRs 表 9-3 列出了所有的 NVM 特殊功能寄存器 表 9-2 模块 NVM 寄存器地址空间 基地址 4005 0000H 结束地址 4005 00FFH XMC1300 XMC1000 家族 Flash 架构 备注 表 9-3 寄存器一览表 寄存器简称 寄存器全称 NVM SFRs, 寄存器描述 NVMSTATUS NVM 状态寄存器 NVMPROG NVMCONF NVM 编程控制寄存器 NVM 配置寄存器 偏移地址 0000H 0004H 0008H 页号 页 9-9 页 9-11 页 9-14 寄存器是按字寻址的。 在 NVM 模块处于忙状态期间,可以读 SFR。如果 SFR 的值取决于 NVM 序列的完成, 则在读 SFR 之前,必须查询 NVMSTATUS.BUSY 为 0B。否则,读 SFR 可能得到一个 尚未更新的值。 参考手册 服务请求处理 , V1.0 9-8 V1.0, 2013-03 请遵守产品信息使用协议 9.7.1 寄存器描述 XMC1300 XMC1000 家族 Flash 架构 NVM 状态寄存器 NVMSTATUS NVM 状态寄存器 (0000H) 复位值 : 0002H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 WRP ERR ECC 2RE AD ECC 1RE AD VERR SLE BUS EP Y r rrr r rr 域 位 类型 0 15:7 r WRPERR 6 r ECC2READ 5 r ECC1READ 4 r 描述 保留 读出值为 0。 写协议错误 该标志累积在最后一次四字写操作期间对写协议的违反情 况 ( 对于写或校验 )。当一个被触发的操作因为写保护而被 忽略时,它也被置位。纠错协议在 9.3.3 节中定义。当写 NVMPROG.RSTECC 时,它被硬件复位。 0B WRPROTOK,未发生写协议错误。 1B WRPROTFAIL,至少检测到一次写协议错误。 ECC2 读1) 该标志累积存储器读操作期间的 ECC 双位错误。当写 NVMPROG.RSTECC 时,它被硬件复位。 0B ECC2RDOK,存储器读操作期间未发生 ECC 双位错 误。 1B ECC2RDFAIL,至少检测到一次 ECC 双位错误。 ECC1 读 1) 该标志累积最后一次存储器读操作期间的 ECC 一位错误。 当写 NVMPROG.RSTECC 时,它被硬件复位。 0B ECC1RDOK,未发生 ECC 一位错误。 1B ECC1RDFAIL,至少检测到一次 ECC 一位错误。 参考手册 Flash 架构 , V1.0 9-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 域 位 类型 描述 VERR 3:2 r 校验错误 当写 NVMPROG.RSTVERR 时,该标志被硬件复位。 当进入写模式或只校验模式时,即 NVMPROG.ACTION.OPTYPE = 0001B 或 NVMPROG.ACTION.VERIFY = 11B 时,该标志也被复位。 该标志累积校验错误,即 VERR 每次的更新值都比当前值 要大,直到写模式或只校验模式结束 ( 在一次性写操作中 自动结束 ) 校验过程中错误位数的信息: 00B NOFAIL,无错误位。 01B ONEFAIL,在一个数据块中有一个错误位 。 10B TWOFAIL,在两个不同的数据块中有两个错误位。 11B MOREFAIL,在一个数据块中有两个或更多的错误 位,或共有三个或更多的错误位。 SLEEP 1r 休眠模式 0B READY, NVM 不处于休眠模式,没有休眠或唤醒过程 正在进行。 1B SLEEP, NVM 处于休眠模式,或因休眠或唤醒过程而 处于忙状态。 BUSY 0r 忙 0B READY, NVM 不忙。可以进行对存储器单元阵列的读 访问和对寄存器的写访问。 1B BUSY, NVM 忙。不能进行存储器读和寄存器写访问。 1) 如果从包含两个或更多奇偶校验错误的存储区域读一个数据块,ECC1 和 ECC2 错误标志可能同时被置位。 参考手册 服务请求处理 , V1.0 9-10 V1.0, 2013-03 请遵守产品信息使用协议 NVM 编程控制寄存器 XMC1300 XMC1000 家族 Flash 架构 NVMPROG NVM 编程控制寄存器 (0004H) 复位值 : 0000H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RST ECC RST VER R 0 r rw rw r STATE rw 域 0 RSTECC 位 类型 15:1 r 4 13 rw RSTVERR 12 rw 0 11:8 r 描述 保留 读出值为 0 ; 应写入 0。 复位 ECC 只能通过软件置位,由硬件自动复位。 0B NOP,无动作。 1B RESET,复位 NVMSTATUS.ECCxREAD 和 NVMSTATUS.WRPERR。 复位校验错误 只能通过软件置位,由硬件自动复位。 0B NOP,无动作。 1B RESET,复位 NVMSTATUS.VERR。 保留 读出值为 0 ; 应写入 0。 参考手册 Flash 架构 , V1.0 9-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 域 ACTION 位 类型 描述 7:0 rw ACTION: [VERIFY, ONE_SHOT, OPTYPE] 该位域选择擦除、写或校验操作。见 ACTION 的更多详情。 ACTION 由三个位域拼接而成:ACTION[7:6] = VERIFY, ACTION[5:4] = ONE_SHOT 和 ACTION[3:0] = OPTYPE。 OPTYPE 定义如下操作: 0000B: 空闲或只校验,这取决于 VERIFY 的设置; 0001B: 写; 0010B: 页擦除。 ONE_SHOT 是 OPTYPE 的一个参数,取值如下: 01B: 一次 10B: 连续。 在 01B 的情况下,操作执行完后, ACTION 自动复位到空闲 模式。 VERIFY 定义 OPTYPE 的第二个参数: 01B: 每次写操作后用 hardread 标准校验所写数据。 10B: 无校验 , 11B: 对阵列内容进行校验。 定义了以下操作,其他值当做 00H 处理 00H , 空闲状态,没有动作被触发。写 00H 退出当前模式。 51H , 启动带自动校验的一次性写操作。 91H , 启动不带校验的一次性写操作。 61H , 启动对每次写进行自动校验的连续写操作。 A1H , 启动不带校验的连续写操作。 92H , 启动一次性页擦除操作。 A2H , 启动连续页擦除操作。 D0H , 启动一次性只校验:所写数据与阵列内容比较。 E0H , 启动连续只校验:所写数据与阵列内容比较。 ACTION 的更多详情 当对 NVM 地址范围执行一次写操作时,ACTION 所选择的操作被执行。在一次性操作的 情况下, ACTION 被自动复位。 校验结果可以从 NVMSTATUS.VERR 读取。 当 ACTION 的当前值为 00H 时,它才能被改变,否则 ACTION 要置为 00H。一旦 ACTION 不处于闲置状态,ACTION 就可以被重新写入其当前值;任何其他值会导致 ACTION 复 位。 只 有 写 操 作 能 被 自 动 校 验。页 擦 除 操 作 不 能 使 用 自 动 校 验,它 们 必 须 通 过 设 置 ACTION.VERIFY = 10B 来启动。 如果要校验当前擦除的块或页,必须用 ACTION.VERIFY = 11B 来启动一个单独的序列。 校验操作要求提供一个完整块的数据并且包含 ECC 位。当写数据时,每个块的 ECC 位 自动生成。 参考手册 服务请求处理 , V1.0 9-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 通过 ACTION.VERIFY = 01B 启动的校验操作伴随着 hardread 写和 hardread 擦除标准而 自动执行。 通过 ACTION.VERIFY = 11B 启动的校验操作伴随着单一 hardread 标准而执行。单一 hardread 标准在启动时通过 NVMCONF.HRLEV 定义。 只有在执行了地址 ( 和块数据 ) 传送之后,通过设置 ACTION 启动的一个序列才会置位 NVMSTATUS.BUSY。可以通过查询 NVMSTATUS.BUSY 或等待一个 NVM 中断的方式 检测该序列的结束。 进入休眠模式会复位 ACTION。 参考手册 Flash 架构 , V1.0 9-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 NVM 配置寄存器 NVMCONF 是唯一一个在模块处于休眠模式时能写的 SFR。这对用 NVM_ON = 0B 使能 休眠模式进入和用 NVM_ON = 1B 重新唤醒是必须的。 NVMCONF NVM 配置寄存器 (0008H) 复位值 : 9000H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NVM INT_ _ON ON 0 1 rw rw rw rw SECPROT rw 0 HRELV 0 r rw rw 域 NVM_ON INT_ON 0 1 SECPROT 0 位 类型 描述 15 rw NVM 开 当被清零时,不能从 NVM 执行任何软件代码,直到它被重 新置位。也就是说,用来改变 NVM_ON 本身的软件代码不 能位于 NVM 中,否则软件将会永远停止执行。 0B SLEEP, NVM 被切换到或保持在休眠模式。 1B NORM, NVM 被切换到或保持在正常模式。 14 rw 中断开 当被使能时,通过设置 NVMPROG 启动的一个序列 ( 写、 擦除或 只校验序列 ) 如果完成,会产生 NVM 中断。这同样 适用于唤醒序列。 0B INTOFF,不产生 NVM 就绪中断。 1B INTON,产生 NVM 就绪中断。 13 rw 保留为将来使用 必须写 0,以允许正确操作。 12 rw 保留为将来使用 必须写 1,以允许正确操作。 11:4 rw 扇区保护1) 该域定义写、擦除、校验被保护的扇区数,从物理扇区 0 开 始。 3r 保留 读出值为 0 ; 应当写入 0。 参考手册 服务请求处理 , V1.0 9-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 域 HRLEV 0 位 类型 描述 2:1 rw Hardread 标准2) 通过 NVMPROG.ACTION.VERIFY = 11B 为校验定义单一 hardread 标准: 00B NR,正常读 01B HRW, Hardread 写 10B HRE, Hardread 擦除 11B RFU,保留为将来使用 0 rw 保留为将来使用 必须写 0,以允许正确操作。 1) 对于 SECPROT > 0,SECPROT 定义被保护的扇区数。扇区 0 到 SECPROT-1 不能被写、擦除或校验。模块 接受对所有被保护扇区的写操作,但这些写操作在内部被忽略。 2) HRLEV定义由 NVMPROG.ACTION.VERIFY = 11B启动的独立校验序列的 hardread 标准。该 hardread 标准在 校验序列结束之前一直使用。在此期间 HRLEV 不能改变。 9.8 序列示例 本节介绍几个底层编程实例。 在下述所有所有操作中,需要考虑由 NVMCONF.SECPROT 定义的保护。 9.8.1 存储器写 9.8.1.1 写单个块 该序列要求目标块已经被擦除。 另外还假设:NVMPROG.ACTION = 00H。 1. 启动一次性写操作: 根 据 是 否 对 所 写 数 据 执 行 自 动校验,分别写 NVMPROG.ACTION = 91H。 2. 写一个块的数据到物理地址。 NVMPROG.ACTION = 51H,或 3. 查询 NVMSTATUS.BUSY 标志,直到写序列结束,或等待 NVM 就绪中断 ( 如果被使 能 )。 4. 如果在第一步请求了对所写数据进行自动校验,则读 NVMSTATUS.VERR 可得到校 验结果。 如果在第一步未请求对所写数据进行校验,则第四步也就不需要对 NVM SFR 进行读访 问,因此第三步可省略。 对 NVM 模块的下一次访问或对一个 NVM SFR( 不论哪一个访问在先 ) 的下一次写访问 将会自动停止,直到第二步操作完成。 参考手册 Flash 架构 , V1.0 9-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 9.8.1.2 写多个块 该序列要求目标块已经被擦除。 另外还假设:NVMPROG.ACTION = 00H. 1. 启动连续写操作: 根 据 是 否 对 数 据 执 行 自 动 校 验,分别写 NVMPROG.ACTION = A1H。 2. 写一个块的数据到物理地址。 NVMPROG.ACTION = 61H,或 3. 查询 NVMSTATUS.BUSY 标志,直到写序列结束,或等待 NVM 就绪中断 ( 如果被使 能 )。 可以选择省略第三步:对 NVM 模块的下一次访问或对一个 NVM SFR( 不论哪一个在 先 ) 的下一次写访问将会自动停止,直到第二步的操作完成。 4. 跳到第二步,除非所有数据都已写完。 5. 停止连续写操作: 写 NVMPROG.ACTION = 00H。 6. 如果在第一步请求了对写数据进行自动校验,则读 NVMSTATUS.VERR 可得到校验 结果。 9.8.2 擦除存储器 9.8.2.1 擦除单个页 假设:NVMPROG.ACTION = 00H。 1. 启动一次性页擦除操作: 写 NVMPROG.ACTION = 92H。 2. 写一个虚拟数据字到待擦除页的任意一个物理地址。 3. 查询 NVMSTATUS.BUSY 标志,直到页擦除序列完成,或等待 NVM 就绪中断 ( 如果 被使能 )。 可选择省略第三步:对 NVM 的下一次访问或对 NVM 一个 SFR( 不论哪一个在先 ) 的下 一次写访问将会自动停止,直到第二步的操作完成。 9.8.2.2 擦除多个页 假设:NVMPROG.ACTION = 00H。 1. 启动一个连续页擦除操作: 写 NVMPROG.ACTION = A2H。 2. 写一个字的虚拟数据到被擦除的页的任意一个物理地址。 3. 轮询 NVMSTATUS.BUSY 标志,直到页擦除时序完成或等待 NVM 准备中断 ( 如果使 能 )。 4. 跳到第二阶段,除非所有页被擦除。 参考手册 服务请求处理 , V1.0 9-16 V1.0, 2013-03 请遵守产品信息使用协议 5. 停止连续页擦除操作: 写 NVMPROG.ACTION = 00H。 9.8.3 校验存储器 XMC1300 XMC1000 家族 Flash 架构 9.8.3.1 校验单个块 假设:NVMPROG.ACTION = 00H。 1. 通过设置 NVMCONF.HRLEV 选择所希望的 hardread 标准 。 2. 启动一次性校验操作: 写 NVMPROG.ACTION = D0H。 3. 写一个块的参考数据到物理地址。 4. 查询 NVMSTATUS.BUSY 标志,直到校验序列完成,或等待 NVM 就绪中断 ( 如果被 使能 )。 5. 读 NVMSTATUS.VERR ,得到校验结果。 9.8.3.2 校验多个块 假设:NVMPROG.ACTION = 00H。 1. 通过设置 NVMCONF.HRLEV 选择所希望的硬读标准。 2. 启动连续校验操作: 写 NVMPROG.ACTION = E0H。 3. 写一个块的参考数据到物理地址。 4. 查询 NVMSTATUS.BUSY 标志,直到校验序列完成,或等待 NVM 就绪中断 ( 如果被 使能 )。 可选择省略第四步:对 NVM 的下一次访问或对一个 NVM SFR( 不论哪一个在先 ) 的 下一次写访问将会自动停止,直到第三步的操作完成。 5. 跳到第三步,除非所有块都被校验完。 6. 停止连续校验操作: 写 NVMPROG.ACTION = 00H。 7. 读 NVMSTATUS.VERR ,得到校验结果。 9.8.4 写一个已写过的块 一般来说,写额外的位到一个已经写过的块是不可行的。因为已经写入的 ECC 位和校验 位也需要更新,在大多数情况下需要擦除一些位,而这是不可能的。其结果将会产生一 个 ECC 错误块。 出于特殊目的,重复更新特殊结构的数据是可能的。例如存储在掉电恢复软件实现中要 使用的标识位。 从一个被擦除块开始,使用特殊结构的 ECC,重复增加两个新写位到块中任意两个字的 相同位是可能的。 其原理由表 9-4 表中的示范写方案展示,在该例中,一个块被更新了 32 次而未发生 ECC 错误,即数据在整个过程中都受 ECC 保护。 参考手册 Flash 架构 , V1.0 9-17 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 表 9-4 特殊结构数据块的增量更新 操作 块写数据 结果块内容 1) 擦除块 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 增加第 1 FFFFFFFF FFFFFFFC FFFFFFFF FFFFFFFF FFFFFFFC FFFFFFFF 个值 FFFFFFFC FFFFFFFC 增加第 2 FFFFFFFF FFFFFFF3 FFFFFFFF FFFFFFFF FFFFFFF0 FFFFFFFF 个值 FFFFFFF3 FFFFFFF0 增加第 3 FFFFFFFF FFFFFFCF FFFFFFFF FFFFFFFF FFFFFFC0 FFFFFFFF 个值 FFFFFFCF FFFFFFC0 增加第 4 FFFFFFFF FFFFFF3F FFFFFFFF FFFFFFFF FFFFFF00 FFFFFFFF 个值 FFFFFF3F FFFFFF00 增加第 5 FFFFFFFF FFFFFCFF FFFFFFFF FFFFFFFF FFFFFC00 FFFFFFFF 个值 FFFFFCFF FFFFFC00 增加第 6 个值 ... FFFFFFFF FFFFF3FF FFFFFFFF FFFFFFFF FFFFF000 FFFFFFFF FFFFF3FF FFFFF000 ... ... 增加第 15 FFFFFFFF CFFFFFFF FFFFFFFF FFFFFFFF C0000000 FFFFFFFF 个值 CFFFFFFF C0000000 增加第 16 FFFFFFFF 3FFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF 个值 3FFFFFFF 00000000 增加第 17 个值 ... FFFFFFFC FFFFFFFF FFFFFFFC FFFFFFFF ... FFFFFFFC 00000000 FFFFFFFC 00000000 ... 增加第 30 F3FFFFFF FFFFFFFF F3FFFFFF F0000000 00000000 F0000000 个值 FFFFFFFF 00000000 增加第 31 CFFFFFFF FFFFFFFF CFFFFFFF C0000000 00000000 C0000000 个值 FFFFFFFF 00000000 增加第 32 3FFFFFFF FFFFFFFF 3FFFFFFF 00000000 00000000 00000000 个值 FFFFFFFF 00000000 增加到无 FFFFFFFF FFFFFFFF FFFFFFFF 同前,但发生 ECC2 错误 效写入值 FFFFFFFE 2) 1) ECC- 清除和校验清除 (ECC 位和校验位都保持被擦除状态 ),除非另外说明。 参考手册 服务请求处理 , V1.0 9-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 Flash 架构 2) 该写数据可以在上述任何状态下写 ( 除了完全擦除状态以外 ), 总是会导致不变的数据内容,但现在产生了 ECC2 错误 ( 写入三个 ECC 位和一个校验位 )。 其他写入值组合也是可能的,只要遵守 “ 在每两个字中增加两个相同的位 ” 这个基本 条件。表 9-4 也显示了通过故意制造一个 ECC2 错误而造成数据无效也是可能的。 为了最小化写时间和最小化块的加载周期,如表 9-4 所示那样只写数据块的新位是很重 要的。在原理上,重复写哪些已经过的位是可能的,但是这会增加不必要的写时间,而 且还会增加加载周期。 9.8.5 休眠模式 假设:活动模式 (NVMSTATUS.SLEEP = 0B) 和 NVMSTATUS.BUSY = 0B。 进入休眠模式 1. 执行 WFE/WFI 或 NVMCONF.NVM_ON = 0B。 2. NVMSTATUS.BUSY = 1B 和 NVMSTATUS.SLEEP = 1B ,直到进入休眠模式。 3. 在休眠模式期间, NVMSTATUS.BUSY = 0B 和 NVMSTATUS.SLEEP = 1B 。 从休眠模式唤醒 1. 任何唤醒事件和 NVMCONF.NVM_ON = 1B。 2. NVMSTATUS.BUSY = 1B 和 NVMSTATUS.SLEEP = 1B ,直到进入活动模式。 3. 在活动模式期间, NVMSTATUS.BUSY = 0B 和 NVMSTATUS.SLEEP = 0B 。 在进入休眠模式的过程还没有完成时发生的唤醒事件并不缩短这一过程,而只是在休眠 后直接启动唤醒模式过程。 参考手册 Flash 架构 , V1.0 9-19 V1.0, 2013-03 请遵守产品信息使用协议 9.8.6 时序 下面的状态图展示了所有可能序列的状态变迁和时序。 XMC1300 XMC1000 家族 Flash 架构 Erase BUSY=1 8 存储器写 T 擦除操作 完成 GotoSleep sleep_req=1 或 new NVM_ON=0 VerifyWait VERIFY=3, BUSY=0 块写结束 块校验完成 VerifyBlock BUSY=1 11 块写结束 9 (块校验完成且ONE_SHOT=1) 10 或新 ACTION=0 或存储器读 EraseWait OPTYPE=2, BUSY=0 sleep_req=1 或 新 NVM_ON=0 GotoSleep RIdleV VERIFY=3, BUSY=0 sleep_req=1 或 新 NVM_ON=0 GotoSleep ONE_SHOT=1 或 新 ACTION=0 新 OPTYPE=2 新 VERIFY=3 存储器写 (块校验完成且 ONE_SHOT=1) 或新ACTION=0 3 Read ReadIdle ACTION=0 存储器读 读完成 并且没有新的存储器读 T 电荷泵充电完成 ACTION=0, BUSY=0 读完成并且有 新的存储器读 BUSY=0 / SLEEP=0 sleep _req=1或 新 NVM_ON=0 WakeUp BUSY=1 / SLEEP=1 (写完成且 ONE_SHOT=1) 或新 ACTION=0 新 OPTYPE=1 2 sleep_req=0 且 (新) NVM_ON=1 复位 RIdleW OPTYPE=1, BUSY=0 sleep_req=1或 新NVM_ON=0 Sleep ACTION=0, BUSY=0 / SLEEP=1 块校验完成 T 块写结束 5 且 VERIFY≠1 T 4 块写结束 VerifyBlockHR BUSY=1 7 块写结束 且 VERIFY=1 WriteBits BUSY=1 6 电荷泵充电完成 GotoSleep BUSY=1 / SLEEP=1 1 来自 RIdleV 来自 EraseWait 来自 VerifyWait ReadIns ACTION 不变 BUSY=0 3 读完成并且没有 新的存储器读 读完成并且有 新的存储器读 存储器读 ACTION: OPTYPE: VERIFY: ONE_SHOT: NVMPROG.ACTION NVMPROG.ACTION.OPTYPE NVMPROG.ACTION.VERIFY NVMPROG.ACTION.ONE_SHOT NVM_ON: NVMCONF.NVM_ON BUSY: SLEEP: NVMSTATUS.BUSY NVMSTATUS.SLEEP T: 触发中断,如果被使能 x: 操作/状态变迁所需要的时间 (见表 ) 操作/状态变迁所需要的时间 1: 10 µs 2: 30 µs 3: ~65 ns per ECC-clean word *) 4: 20 µs 5: 20 µs 6: 10...130 µs /块,取决于数据 7: 40 µs 8: 10 ms 9: 0 或 10 µs,取决于校验读级别 10: 0 或10 µs,取决于校验读级别 11: 1 µs *) *) : @ fsys = 32 MHz 图 9-4 NVM 模块时序状态图 返回到 RIdleV、 RIdleW 或 EraseWait 来自 RIdleV、 RIdleW 或 EraseWait 参考手册 服务请求处理 , V1.0 9-20 V1.0, 2013-03 请遵守产品信息使用协议 10 外设访问单元 (PAU) 外设访问单元 (PAU) 支持存储器和外设的集中访问控制。 XMC1300 XMC1000 家族 外设访问单元 (PAU) 10.1 特性 PAU 具有以下特性: • 允许用户应用程序使能 / 禁止对外设寄存器的访问 • 当发生对被禁止的或未分配的地址单元的访问时,产生一个硬故障异常 • 提供外设可用性信息和存储器大小信息 10.2 外设特权访问控制 用户应用可以使用外设特权访问寄存器 PRIVDISn 来禁止对一个外设的访问。当与该外 设相对应的 PDISx 位被置 1 时,映射到该外设的存储器地址空间变为无效。对这样的一 个无效地址的访问会导致硬故障异常。 应用程序能清除这个相同的位来再次使能对外设的访问。 表 10-1 列出了外设和分配给它们的 PDISx 位。没有 PDISx 位的外设在任何时刻都可以 访问。 表 10-1 外设 Flash SRAM WDT MATH Ports USIC0 PRNG 外设可用性和特权访问控制 地址组 AVAILn.AVAILx 位 Flash SFR - RAM 块 1 AVAIL0.5 RAM 块 2 AVAIL0.6 RAM 块 3 AVAIL0.7 WDT - MATH 全局 SFR 和 DIV AVAIL0.20 MATH CORDIC AVAIL0.21 端口 0 AVAIL0.22 端口 1 AVAIL0.23 端口 2 AVAIL0.24 USIC0_CH0 AVAIL1.0 USIC0_CH1 AVAIL1.1 PRNG AVAIL1.4 PRIVDIS.PDISx 位 PRIVDIS0.2 PRIVDIS0.5 PRIVDIS0.6 PRIVDIS0.7 PRIVDIS0.19 PRIVDIS0.20 PRIVDIS0.21 PRIVDIS0.22 PRIVDIS0.23 PRIVDIS0.24 PRIVDIS1.0 PRIVDIS1.1 - 参考手册 PAU, V1.11 10-1 V1.0, 2013-03 请遵守产品信息使用协议 表 10-1 外设 VADC0 SHS0 CCU4 CCU80 POSIF0 BCCU0 XMC1300 XMC1000 家族 外设访问单元 (PAU) 外设可用性和特权访问控制 地址组 AVAILn.AVAILx 位 VADC0 基本 SFR AVAIL1.5 VADC0 组 0 SFR AVAIL1.6 VADC0 组 1 SFR AVAIL1.7 SHS0 AVAIL1.8 CC40 和 CCU40 内核 SFR AVAIL1.9 CC41 AVAIL1.10 CC42 AVAIL1.11 CC43 AVAIL1.12 CC80 和 CCU80 内核 SFR AVAIL2.0 CC81 AVAIL2.1 CC82 AVAIL2.2 CC83 AVAIL2.3 POSIF0 AVAIL2.12 BCCU0 AVAIL2.15 PRIVDIS.PDISx 位 PRIVDIS1.5 PRIVDIS1.6 PRIVDIS1.7 PRIVDIS1.8 PRIVDIS1.9 PRIVDIS1.10 PRIVDIS1.11 PRIVDIS1.12 PRIVDIS2.0 PRIVDIS2.1 PRIVDIS2.2 PRIVDIS2.3 PRIVDIS2.12 PRIVDIS2.15 10.3 外设可用性和存储器大小 外设的可用性和存储器大小是随产品型号不同而变化的。用户应用可以通过读 外设可用 性寄存器 AVAILn 来检查一个具体型号的可用外设。参见 表 10-1 关于位的分配。类似 地,存储器大小寄存器 ( 例如,针对 Flash 存储器的 FLSIZE 寄存器 ) 可用来检查可用存 储器的大小。 10.4 PAU 寄存器 寄存器概述 绝对寄存器地址可以通过下面的加法计算: 模块基地址 + 偏移地址 表 10-2 模块 PAU 寄存器地址空间 基地址 4000 0000H 结束地址 4000 FFFFH 备注 参考手册 PAU, V1.11 10-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) 表 10-3 简称 寄存器概述 描述 保留 保留 AVAIL0 AVAIL1 AVAIL2 保留 外设可用性寄存器 0 外设可用性 寄存器 1 外设可用性寄存器 2 保留 PRIVDIS0 PRIVDIS1 PRIVDIS2 保留 外设特权访问寄存器 0 外设特权访问寄存器 1 外设特权访问寄存器 2 保留 ROMSIZE FLSIZE RAM0SIZE ROM 大小寄存器 Flash 大小寄存器 RAM0 大小寄存器 偏移地 访问模式 址 读 写 描述见 0000H 003CH 0040H 0044H 0048H 004CH 007CH 0080H 0084H 0088H 008CH 03FCH 0400H 0404H 0410H nBE U, PV U, PV U, PV nBE U, PV U, PV U, PV nBE U, PV U, PV U, PV nBE BE 页 10-7 BE 页 10-8 BE 页 10-10 nBE U, PV 页 10-3 U, PV 页 10-5 U, PV 页 10-6 nBE BE 页 10-11 BE 页 10-11 BE 页 10-12 10.4.1 外设特权访问寄存器 (PRIVDISn) PRIVDISn 寄存器中的位可以在运行期间使能和禁止对外设的访问。当一个外设被禁止 时,对该外设的访问会产生总线错误。 PRIVDIS0 外设特权访问寄存器 0 (0080H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 PDIS PDIS PDIS PDIS PDIS PDIS 24 23 22 21 20 19 0 r rw rw rw rw rw rw r 15 14 13 12 11 10 9 0 r 876543210 PDIS PDIS PDIS 765 0 PDIS 2 0 rw rw rw r rw r 参考手册 PAU, V1.11 10-3 V1.0, 2013-03 请遵守产品信息使用协议 域 PDIS2 PDIS5 PDIS6 PDIS7 PDIS19 PDIS20 PDIS21 PDIS22 PDIS23 PDIS24 0 XMC1300 XMC1000 家族 外设访问单元 (PAU) 位 2 5 6 7 19 20 21 22 23 24 [31:25] , [18:8], [4:3], [1:0] 类型 rw rw rw rw rw rw rw rw rw rw r 描述 Flash SFR 特权禁止标志 0B 可以访问 Flash SFR。 1B 不能访问 Flash SFR。 RAM 块 1 特权禁止标志 0B 可以访问 RAM 块 1。 1B 不能访问 RAM 块 1。 RAM 块 2 特权禁止标志 0B 可以访问 RAM 块 2。 1B 不能访问 RAM 块 2。 RAM 块 3 特权禁止标志 0B 可以访问 RAM 块 3。 1B 不能访问 RAM 块 3。 WDT 特权禁止标志 0B 可以访问 WDT。 1B 不能访问 WDT。 MATH 全局 SFR 和除法器特权禁止标志 0B 可以访问 MATH 全局 SFR 和除法器。 1B 不能访问 MATH 全局 SFR 和除法器。 MATH CORDIC 特权禁止标志 0B 可以访问 MATH CORDIC。 1B 不能访问 MATH CORDIC。 端口 0 特权禁止标志 0B 可以访问端口 0 。 1B 不能访问端口 0。 端口 1 特权禁止标志 0B 可以访问端口 1。 1B 不能访问端口 1。 端口 2 特权禁止标志 0B 可以访问端口 2。 1B 不能访问端口 2。 保留 参考手册 PAU, V1.11 10-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) PRIVDIS1 外设特权访问寄存器 1 (0084H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 PDIS PDIS PDIS PDIS PDIS PDIS PDIS PDIS 12 11 10 9 8 7 6 5 0 PDIS PDIS 10 r rw rw rw rw rw rw rw rw r rw rw 域 PDIS0 PDIS1 PDIS5 PDIS6 PDIS7 PDIS8 PDIS9 PDIS10 参考手册 PAU, V1.11 位 类型 描述 0 rw USIC0 通道 0 特权禁止标志 0B 可以访问 USIC0 通道 0。 1B 不能访问 USIC0 道 0。 1 rw USIC0 通道 1 特权禁止标志 0B 可以访问 USIC0 通道 1。 1B 不能访问 USIC0 通道 1。 5 rw VADC0 基本 SFR 特权外设禁止标志 0B 可以访问 VADC0 基本 SFR。 1B 不能访问 VADC0 基本 SFR。 6 rw VADC0 组 0 SFR 特权禁止标志 0B 可以访问 VADC0 组 0 SFR。 1B 不能访问 VADC0 组 0 SFR。 7 rw VADC0 组 1 SFR 特权禁止标志 0B 可以访问 VADC0 组 1 SFR。 1B 不能访问 VADC0 组 1 SFR。 8 rw SHS0 特权禁止标志 0B 可以访问 SHS0。 1B 不能访问 SHS0。 9 rw CC40 和 CCU40 内核 SFR 特权禁止标志 0B 可以访问 CC40 和 CCU40 内核 SFR。 1B 不能访问 CC40 和 CCU40 内核 SFR。 10 rw CC41 特权禁止标志 0B 可以访问 CC41。 1B 不能访问 CC41。 10-5 V1.0, 2013-03 请遵守产品信息使用协议 域 PDIS11 PDIS12 0 位 11 12 [31:13] , [4:2] 类型 rw rw r 描述 CC42 特权禁止标志 0B 可以访问 CC42。 1B 不能访问 CC42。 CC43 特权禁止标志 0B 可以访问 CC43。 1B 不能访问 CC43。 保留 XMC1300 XMC1000 家族 外设访问单元 (PAU) PRIVDIS2 外设特权访问寄存器 2 (0088H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PDIS 15 0 PDIS 12 0 PDIS PDIS PDIS PDIS 3210 rw r rw r rw rw rw rw 名称 PDIS0 PDIS1 PDIS2 PDIS3 位 类型 描述 0 rw CC80 和 CCU80 内核 SFR 特权禁止标志 0B 可以访问 CC80 和 CCU80 内核 SFR。 1B 不能访问 CC80 和 CCU80 内核 SFR。 1 rw CC81 特权禁止标志 0B 可以访问 CC81。 1B 不能访问 CC81。 2 rw CC82 特权禁止标志 0B 可以访问 CC82。 1B 不能访问 CC82。 3 rw CC83 特权禁止标志 0B 可以访问 CC83。 1B 不能访问 CC83。 参考手册 PAU, V1.11 10-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) 名称 PDIS12 PDIS15 0 位 12 15 [31:16] , [14:13] , [11:4] 类型 rw rw r 描述 POSIF0 特权禁止标志 0B 可以访问 POSIF0。 1B 不能访问 POSIF0。 BCCU0 特权禁止标志 0B 可以访问 BCCU0。 1B 不能访问 BCCU0。 保留 10.4.2 外设可用性寄存器 (AVAILn) AVAILn 寄存器指示具体型号器件的可用外设。 注: AVAILn 寄存器的复位值显示所有可用外设的配置。实际值可能会因为产品型号不 同而不同。 AVAIL0 外设可用性寄存器 0 (0040H) 复位值 : 01FF 00FFH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 AVAI AVAI AVAI AVAI AVAI L24 L23 L22 L21 L20 1 r rrrrr r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 AVAI AVAI AVAI L7 L6 L5 1 r rrr r 域 AVAIL5 AVAIL6 位 类型 描述 5 r RAM 块 1 可用性标志 0B RAM 块 1 不可用。 1B RAM 块 1 可用。 6 r RAM 块 2 可用性标志 0B RAM 块 2 不可用。 1B RAM 块 2 可用。 参考手册 PAU, V1.11 10-7 V1.0, 2013-03 请遵守产品信息使用协议 域 AVAIL7 AVAIL20 AVAIL21 AVAIL22 AVAIL23 AVAIL24 1 0 XMC1300 XMC1000 家族 外设访问单元 (PAU) 位 7 20 21 22 23 24 [19:16] , [4:0] [31:25] , [15:8] 类型 r r r r r r r r 描述 RAM 块 3 可用性标志 0B RAM 块 3 不可用。 1B RAM 块 3 可用。 MATH 全局 SFR 和除法器可用性标志 0B MATH 全局 SFR 和除法器不可用。 1B MATH 全局 SFR 和除法器可用。 MATH CORDIC 可用性标志 0B MATH CORDIC 不可用。 1B MATH CORDIC 可用。 端口 0 可用性标志 0B 端口 0 不可用。 1B 端口 0 可用。 端口 1 可用性标志 0B 端口 1 不可用。 1B 端口 1 可用。 端口 2 可用性标志 0B 端口 2 不可用。 1B 端口 2 可用。 保留 保留 AVAIL1 外设可用性寄存器 1 (0044H) 复位值 : 0000 1FF7H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 0 AVAI AVAI AVAI AVAI AVAI AVAI AVAI AVAI AVAI L12 L11 L10 L9 L8 L7 L6 L5 L4 0 r rrrrrrrrrr 210 1 AVAI AVAI L1 L0 rrr 参考手册 PAU, V1.11 10-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) 域 AVAIL0 AVAIL1 AVAIL4 AVAIL5 AVAIL6 AVAIL7 AVAIL8 AVAIL9 AVAIL10 AVAIL11 AVAIL12 1 0 参考手册 PAU, V1.11 位 0 1 4 5 6 7 8 9 10 11 12 2 [31:13] ,3 类型 r r r r r r r r r r r r r 描述 USIC0 通道 0 可用性标志 0B USIC0 通道 0 不可用。 1B USIC0 通道 0 可用。 USIC0 通道 1 用性标志 0B USIC0 通道 1 不可用。 1B USIC0 通道 1 可用。 PRNG 可用性标志 0B PRNG 不可用。 1B PRNG 可用的。 VADC0 基本 SFR 可用性标志 0B VADC0 基本 SFR 不可用。 1B VADC0 基本 SFR 可用。 VADC0 组 0 SFR 可用性标志 0B VADC0 组 0 SFR 不可用。 1B VADC0 组 0 SFR 可用。 VADC0 组 1 SFR 可用性标志 0B VADC0 组 1 SFR 不可用。 1B VADC0 组 1 SFR 可用。 SHS0 可用性标志 0B SHS0 不可用。 1B SHS0 可用。 CC40 可用性标志 0B CC40 不可用。 1B CC40 可用。 CC41 可用性标志 0B CC41 不可用。 1B CC41 可用。 CC42 可用性标志 0B CC42 不可用。 1B CC42 可用。 CC43 可用性标志 0B CC43 不可用。 1B CC43 可用。 保留 保留 10-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) AVAIL2 外设可用性寄存器 2 (0048H) 复位值 : 0000 900FH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AVAI L15 0 AVAI L12 0 AVAI AVAI AVAI AVAI L3 L2 L1 L0 r r r r rrrr 名称 AVAIL0 AVAIL1 AVAIL2 AVAIL3 AVAIL12 AVAIL15 0 位 0 1 2 3 12 15 [31:16] , [14:13] , [11:4] 类型 r r r r r r r 描述 CC80 和 CCU80 内核 SFR 可用性标志 0B CC80 和 CCU80 内核 SFR 不可用。 1B CC80 和 CCU80 内核 SFR 可用。 CC81 可用性标志 0B CC81 不可用。 1B CC81 可用。 CC82 可用性标志 0B CC82 不可用。 1B CC82 可用。 CC83 可用性标志 0B CC83 不可用。 1B CC83 可用。 POSIF0 可用性标志 0B POSIF0 不可用。 1B POSIF0 可用。 BCCU0 可用性标志 0B BCCU0 不可用。 1B BCCU0 可用。 保留 参考手册 PAU, V1.11 10-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) 10.4.3 存储器大小寄存器 ROM、 SRAM 和 Flash 存储器都有存储器大小寄存器。这些寄存器用来指示器件中 ROM、 SRAM 和 Flash 的可用存储器大小。 注: 这些大小寄存器的复位值显示超集器件的配置。实际值可能随产品型号的不同而 不同。 ROMSIZE ROM 大小寄存器 (0400H) 复位值 : 0000 0B00H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ADDR 0 r r r 域 ADDR 0 位 [13:8] [31:14] , [7:0] 类型 r r 描述 ROM 大小 用户可读 ROM 的大小 (字节数)= ADDR * 256 保留 FLSIZE Flash 大小寄存器 (0404H) 复位值 : 0003 3000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 ADDR r r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADDR 0 r r 参考手册 PAU, V1.11 10-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 外设访问单元 (PAU) 域 ADDR 0 位 [17:12] [31:18] , [11:0] 类型 r r 描述 Flash 大小 Flash ( 不包括 Flash 扇区 0) 大小(字节数)= (ADDR - 1) * 4 保留 RAM0SIZE RAM0 大小寄存器 (0410H) 复位值 : 0000 1000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ADDR 0 r r r 域 ADDR 0 位 [12:8] [31:13] , [7:0] 类型 r r 描述 RAM0 大小 RAM 块 0 的大小 (字节数)= ADDR * 256 对于总的 RAM 大小,必须将 RAM 块 1 到 3 考虑在 内。 保留 参考手册 PAU, V1.11 10-12 V1.0, 2013-03 请遵守产品信息使用协议 系统控制 XMC1300 XMC1000 家族 系统控制 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 11 窗式看门狗定时器 (WDT) 窗式看门狗定时器 (WDT) 窗式看门狗定时器模块的用途是改善系统的完整性。如果主程序因某些故障条件而忽视 了定期操作看门狗 (也称为 “ 踢狗 ”、“ 爱抚狗 ”、“ 喂狗 ” 或 “ 唤醒狗 ”), WDT 会触发系统复位或者其他纠正动作,例如中断。目的是将系统从无反应状态带回到 正常工作状态。 参考文献 [1] Cortex-M0 User Guide, ARM DUI 0467B (ID081709) 11.1 概述 一次成功的 WDT 服务会导致在信号 wdt_service 上产生一个脉冲。该信号也作为一个备 用功能输出被提供,可用于向一个外部看门狗表示系统还在正常运行。 WDT 定时器是一个从 0H 向上计数的 32 位计数器。在计数器的值位于窗口边界内 (即 下边界值和上边界值之间)时,它可以被服务。正确的服务会导致计数器复位到 0H。一 次所谓的 “ 差服务 ” 尝试会导致产生系统复位请求。 定时器模块使用独立于总线时钟的 fWDT 时钟运行。定时器的值在相应的 AHB 寄存器 TIM 内更新。该机制使得对来自总线读访问能立即反应。 11.1.1 特性 看门狗定时器 (WDT) 是一个独立的窗式看门狗定时器。 它有以下特性: • 当没有及时得到服务或者得到错误方式的服务时会触发系统复位 • 服务被限制在刷新窗口的边界内 • 能使用独立的时钟运行 • 提供服务指示给一个外部引脚 • 能在停止模式下挂起 • 提供可选的复位前报警 表 11-1 应用特性 特性 在错误服务情况下系统复位 服务被限制在定义的刷新窗口边界内 独立的时钟 在外部引脚上的服务指示 用途 / 应用 被触发后恢复系统的稳定运行,确保系统 的完整性 允许考虑最小和最大的软件定时 确保 WDT 即使在系统发生时钟故障时也能 计数 对于双通道的看门狗解决方案,提供对系 统完整性的附加外部控制 参考手册 窗式看门狗定时器 (WDT), V1.0 11-1 V1.0, 2013-03 请遵守产品信息使用协议 表 11-1 应用特性 ( 续表 ) 特性 在停止模式下挂起 报警 11.1.2 框图 WDT 框图如 图 11-1 所示。 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 用途 / 应用 保证对生产代码的安全调试 软件恢复。允许软件恢复程序采取纠正动 作将系统从无反应状态带回到正常工作状 态 CPU HALTED SCU.CCU fWDT 总线接口 WDT WDT 寄存器 定时器 wdt_service PORTS wdt_alarm SCU.GCU wdt_rst_req SCU.RCU 外部看门狗 图 11-1 看门狗定时器框图 11.2 超时模式 当计数值超过上边界时,WDT 会发生溢出,如果没有用 CTR 寄存器使能溢出事件预警, 会立即导致产生一次复位请求,该请求通过信号 wdt_rst_req 进入 SCU 的 RCU。。执行 一次成功的服务是在有效的服务窗口内向 WDT 的 SRV 寄存器写入一个被称为 “ 魔字 ” 的特定值,这会导致在信号 wdt_service 上产生一个脉冲并使定时器的计数器复位。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-2 V1.0, 2013-03 请遵守产品信息使用协议 窗口上边界 WDT 得到服务 WDT 得到服务 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 第一次溢出 窗口下边界 0H 不允许服务 允许服务 wdt_service wdt_alarm wdt_rst_req 图 11-2 无预警复位 在图 11-2 中描绘的示例场景展示了在有效时间窗口内 WDT 模块成功服务后产生的两个 连续的服务脉冲。对于没有进行过服务的情况,在计数器的值超出窗口上限值后立即在 wdt_rst_req 上触发产生复位请求。 11.3 预警模式 在预警模式,溢出事件的作用在使能和不使能预警功能的情况下是不同的。当预警被使 能时,计数值第一次超过上限时触发输出报警信号 wdt_alarm。只能在下一次溢出时产生 复位请求。报警状态通过寄存器 WDTSTS 指示,可通过寄存器 WDTCLR 清除。清除报 警状态会使 WDT 回到正常状态。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-3 V1.0, 2013-03 请遵守产品信息使用协议 窗口上边界 WDT 得到服务 第一次溢出 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 第二次溢出 窗口下边界 0H 不允许服务 允许服务 wdt_service wdt_alarm wdt_rst_req 图 11-3 预警后复位 图 11-3 中描绘的示例场景展示了在有效时间窗内 WDT 模块成功服务后产生的服务脉冲。 第一次错过服务时,WDT 在 wdt_alarm 上产生报警脉冲。报警信号被作为中断请求连接 到 SCU。在这个报警服务请求发生后和下一次溢出前,用户可以清除 WDT 的状态位, 并给予一次正确的 WDT 服务。否则 WDT 将会在第二次错过服务时在 wdt_rstn 上产生复 位请求。 11.4 错误服务操作 一次错误的服务尝试会导致产生一次复位请求。一次错误的服务尝试可能是因为在窗口 边界外提供服务或使用一个无效的魔字提供服务。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-4 V1.0, 2013-03 请遵守产品信息使用协议 窗口上边界 WDT 得到服务 在错误的窗 口完成服务 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 窗口下边界 0H 不允许服务 允许服务 wdt_service wdt_alarm wdt_rst_req 图 11-4 在错误的窗口服务后复位 图 11-4 的例子示出了在有效服务窗口之外进行的服务。在计数器的值仍然低于窗口下边 界时,试图服务 WDT 会导致在 wdt_rst_req 信号上立即产生复位请求。 窗口上边界 WDT 得到服务 用无效魔字服务 窗口下边界 0H 不允许服务 允许服务 wdt_service wdt_alarm wdt_rst_req 图 11-5 使用错误的魔字服务后复位 参考手册 窗式看门狗定时器 (WDT), V1.0 11-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 图 11-5 的例子示出了在一个有效服务窗口内但却使用了一个无效魔字进行的服务。试图 向 SRV 寄存器写入一个错误的字会导致在 wdt_rst_req 信号上立即产生复位请求。 11.5 服务请求处理 在预警模式被使能的情况下,当计数器第一次超过看门狗上限而溢出时, WDT 会通过 wdt_alarm 输出信号产生看门狗报警服务请求。报警服务请求由 SCU 处理。 服务请求可以通过 SCU 中的服务请求屏蔽寄存器分别禁止。 11.6 调试行为 当 CPU 进入 HALT 模式时, WDT 功能可以被挂起。WDT 调试功能受 CTR 寄存器中 DSP 位域的控制,其默认设置是被挂起。 11.7 电源、复位和时钟 WDT 模块是内核域的一部分,由电压 VDDC 供电。 所有的 WDT 寄存器在系统复位期间被复位。 SCU/CCU 模块的复位状态寄存器 RSTSTAT 的一个粘滞位指示最后一次系统复位是否是 被 WDT 模块触发的。该位在系统复位时不复位。 WDT 计数器的输入时钟由来自 SCU/CCU 模块的内部 32kHz 待机时钟提供,独立于 AHB 接口时钟。 WDT 模块的时钟默认是被禁止的,可以通过 SCU_CGATCLR0 寄存器使能。使能和禁 止模块时钟可能引起负载的变化,并可能发生如 SCU 一章的 CCU (时钟门控制)一节 所阐明的那种时钟消隐。强烈建议在用户初始化代码中设置模块的时钟,以避免在运行 时出现时钟消隐。 11.8 初始化和控制序列 WDT 模块的编程模型假设了几个使用不同控制序列的场景。 注: 本章描述的一些场景需要在系统级上操作,这不在 WDT 模块描述的范围内,因此 详细的信息请参见本文档的相关章节。 11.8.1 操作的初始化和启动 系统复位后需要进行完全的 WDT 模块初始化。 • 检查最后一次系统复位的原因,以确定电源状态 – 读 SCU_RSTSTAT.RSTSTAT 寄存器位域,以确定最后一次系统复位的原因 ,可 以用位 SCU_RSTCLR.RSCLR 清除这个位。 – 根据最后一次系统的复位执行合适的操作。 • WDT 软件初始化序列 参考手册 窗式看门狗定时器 (WDT), V1.0 11-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) – 用 SCU_CGATCLR0.WDT 寄存器位域使能 WDT 时钟。 – 用 WDT_WLB 寄存器设置窗口下边界 – 用 WDT_WUB 寄存器设置窗口上边界 – 配置外部看门狗服务指示 ( 可选,请参见端口一章 ) – 用 SCU_SRMSK 寄存器在系统级上使能预警中断(可选,仅用于 WDT 预警模式) • 软件启动序列 – 选择模式 (超时或预警),并用 WDT_CTR 寄存器使能 WDT 模块 • 服务看门狗 – 在有效时间窗口内写魔字到 WDT_SRV 寄存器 11.8.2 软件停止和恢复操作 可以使用软件序列在任何时刻停止或重新启动 WDT 模块,例如用于调试目的。 • 软件停止序列 – 用 WDT_CTR 寄存器禁止 WDT 模块 • 执行任何用户操作 • 软件启动 (恢复)序列 – 用 WDT_CTR 寄存器中使能 WDT 模块 • 服务看门狗 – 在有效时间窗口内写魔字到 WDT_SRV 寄存器 11.8.3 进入休眠 / 深度睡眠和恢复操作 在休眠和深度睡眠状态期间, WDT 计数器时钟可以被配制为停止。在 CPU 休眠期间, 如果 WDT 时钟配制为停止,则在这些模式下软件与 WDT 不需要直接交互,看门狗超时 也不会发生。 • 休眠 / 深度睡眠模式的软件配置序列 – 用 SCU_CGATx 寄存器配置看门狗的行为 • 进入休眠 / 深度睡眠模式的软件序列 – 在 CPU 中选择休眠或深度睡眠模式 (详情请参阅 Cortex-M0 文档 [1]) – 进入所选模式 (详情请参阅 Cortex-M0 文档 [1]) • 等待一个唤醒事件 (没有软件交互, CPU 停止) • 恢复操作 (在发生唤醒事件时 CPU 时钟自动重启) • 服务看门狗 – 在有效时间窗口内写魔字到 WDT_SRV 寄存器 11.8.4 预警警报处理 在预警模式下,如果在有效时间窗口内未得到服务,WDT 会在请求系统复位前启动预警 警报。在启动警报后和定时器的计数器值第二次超过上限之前,指示该警报的 WDT 状态 寄存器必须被清除。在清除了警报状态后,必须在有效时间窗口内进行正常的看门狗服 务。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) • 警报事件 – 异常例程 (服务请求)用 WDT_WDTCLR 寄存器清除 WDT_WDTSTAT 寄存器 • 服务看门狗 – 在有效时间窗口内写魔字到 WDT_SRV 寄存器 11.9 WDT 寄存器 寄存器概述 绝对寄存器地址通过下面的加法计算: 模块基地址 + 偏移地址 表 11-2 模块 WDT 寄存器地址空间 基地址 4002 0000H 结束地址 4002 FFFFH 备注 看门狗定时器寄 存器 表 11-3 简称 寄存器一览表 描述 WDT 内核寄存器 ID 模块 ID 寄存器 CTR 控制寄存器 SRV 服务寄存器 TIM 定时器寄存器 WLB 窗口下边界 WUB 窗口上边界 WDTSTS 看门狗状态寄存器 WDTCLR 看门狗状态清除寄存器 偏移地 访问方式 址 读 写 描述见 00H U, PV PV 页 11-9 04H U, PV PV 页 11-10 08H BE PV 页 11-11 0CH U, PV BE 页 11-12 10H U, PV PV 页 11-12 14H U, PV PV 页 11-13 18H U, PV PV 页 11-14 1CH U, PV PV 页 11-14 参考手册 窗式看门狗定时器 (WDT), V1.0 11-8 V1.0, 2013-03 请遵守产品信息使用协议 11.9.1 寄存器描述 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) ID 模块唯一 ID 寄存器。 ID WDT 模块 ID 寄存器 (0000H) 复位值 : 00AD C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MOD_NUMBER r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_TYPE r MOD_REV r 域 位 MOD_REV [7:0] MOD_TYPE [15:8] MOD_NUMBER [31:16] 类型 r r r 描述 模块版本号 指示实现的版本号,模块版本号从 01H 开始(第一个 版本)。 模块类别 该位域固定为 C0H。 模块编号值 该位域定义模块的标识号。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-9 V1.0, 2013-03 请遵守产品信息使用协议 CTR 工作模式控制寄存器 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) CTR WDT 控制寄存器 (04H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SPW rw 0 DSP 0 PRE ENB r rw r rw rw 域 ENB PRE DSP SPW 0 位 0 1 4 [15:8] [3:2], [7:5], [31:16] 类型 rw rw rw rw r 描述 使能 0B 禁止看门狗定时器 1B 使能看门狗定时器 预警 0B 禁止预警 1B 使能预警 调试挂起 0B 在调试暂停模式期间停止看门狗定时器 1B 在调试暂停模式期间不停止看门狗定时器 服务指示脉冲宽度 服务指示脉冲的宽度 (SPW+1) ,以 clk_wdt 周期为单 位 保留 参考手册 窗式看门狗定时器 (WDT), V1.0 11-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) SRV WDT 服务寄存器。软件必须在定时器值位于有效窗口边界内时写入魔字。在定时器值位 于窗口边界内时写魔字将服务看门狗并导致用 0H 重新加载定时器。 在有效时间窗口内写不同于魔字的数据,或者虽然写入正确的魔字但却是在有效时间窗 口之外,则不会执行看门狗服务,而是会立即产生一个系统复位请求。 SRV WDT 服务寄存器 (08H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SRV w 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SRV w 域 SRV 位 [31:0] 类型 w 描述 服务 当定时器的值位于窗口边界内时,写入魔字 ABADCAFEH 将会服务看门狗。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) TIM 看门狗定时器寄存器的当前计数值。可以通过软件读取这个寄存器,以确定在 WDT 时间 窗口内的当前位置。 TIM WDT 定时器寄存器 (0CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TIM rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TIM rh 域 位 类型 描述 TIM [31:0] rh 定时器值 看门狗定时器的当前值 WLB 窗口下边界寄存器定义服务窗口的下边界。看门狗服务仅在窗口边界内有效。 WLB WDT 窗口下边界寄存器 (10H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 WLB rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WLB rw 参考手册 窗式看门狗定时器 (WDT), V1.0 11-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 域 WLB 位 [31:0] 类型 rw 描述 窗口下边界 服务窗口的下边界 设置下边界为 0H 将禁用窗口机制。 WUB 窗口上边界寄存器定义服务窗口的上边界。看门狗服务仅在窗口边界内有效。 WUB WDT 窗口上边界寄存器 (14H) 复位值 : FFFF FFFFH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 WUB rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 WUB rw 域 WUB 位 [31:0] 类型 rw 描述 窗口上边界 服务窗口的上边界 在没有预警使能的情况下,当定时器超过上限值时, WDT 会触发一次复位请求 在有预警使能的情况下,第一次超过上限值时会触发 看门狗警报,第二次超过上限值时会触发一次系统复 位。 参考手册 窗式看门狗定时器 (WDT), V1.0 11-13 V1.0, 2013-03 请遵守产品信息使用协议 WDTSTS 状态寄存器包含指示报警情况发生的粘滞位。 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) WDTSTS WDT 状态寄存器 (0018H) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ALM S r rh 域 ALMS 0 位 0 [31:1] 类型 rh r 描述 预警警报 1B 发生了预警警报 0B 未发生预警警报 保留 WDTCLR 状态寄存器包含粘滞位域指示报警情况的发生。 WDTCLR WDT 清除寄存器 (001CH ) 复位值 : 00000000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ALM C r w 参考手册 窗式看门狗定时器 (WDT), V1.0 11-14 V1.0, 2013-03 请遵守产品信息使用协议 域 ALMC 0 11.10 位 0 [31:1] 类型 w r 描述 预警警报 1B 清除预警警报 0B 无动作 保留 互联 XMC1300 XMC1000 家族 窗式看门狗定时器 (WDT) 表 11-4 引脚表 输入 / 输出 时钟和复位信号 fWDT 定时器信号 wdt_service HALTED I/O 连接到 I SCU.CCU O PORTS I CPU 服务请求连接 wdt_alarm wdt_rst_req O SCU.GCU O SCU.RCU 描述 定时器时钟 给外部看门狗的服务指示 在停止模式下调试。 在内核处于调试期间, HALTED 仍然保持有效。 预警警报 复位请求 参考手册 窗式看门狗定时器 (WDT), V1.0 11-15 V1.0, 2013-03 请遵守产品信息使用协议 12 实时时钟 (RTC) XMC1300 XMC1000 家族 实时时钟 (RTC) 实时时钟 (RTC) 是一个跟踪当前时间的时钟。RTC 出现在计算机系统和几乎任何电子设 备中,这些设备需要以数字格式保持供时钟显示用的精确时间。 12.1 概述 RTC 模块用独立的时、分、秒寄存器跟踪时间。日历寄存器跟踪日期、星期、月和年, 还能自动纠正闰年1)。 RTC 时钟可以通过位 SCU_CLKCR.RTCCLKSEL 来选择。 RTC 模块中的定时器在休眠或深度休眠模式下可以继续工作。 12.1.1 特性 实时时钟模块 (RTC) 有以下特性: • 使用下面的时钟保持实际时间 – 32.768 kHz 外部时钟 – 32.768 kHz 内部时钟 • 周期性的基于时间的中断 • 可编程的时间匹配报警中断 • 支持从休眠或深度休眠模式唤醒 表 12-1 应用特性 特性 精确的实际时间保持 周期性的基于时间的中断 可编程的时间匹配报警中断 支持从休眠或深度休眠模式唤醒 用途 / 应用 减少了调时的需要 在精确定义的时间间隔执行计划任务 在精确定义的时间执行计划任务 从休眠或深度休眠模式自动唤醒,用于系 统状态控制和维护例行操作 12.1.2 框图 RTC 的框图如图 12-1 所示。 RTC 的主要构件是实现实时计数的时间计数器和 RTC 寄存器, RTC 寄存器包括用于时 间计数器的多域寄存器和报警编程寄存器,有专用位域分别代表流逝的秒、分、时、天、 星期、月和年值。 RTC 模块直接受 SCU 模块的控制,与 SCU 的其它子模块共享系统总线接口。 访问 RTC 寄存器是经串行接口通过更新后的寄存器镜像来进行的。 1) 当年可被 4 整除时,自动执行闰年校正。 参考手册 实时时钟 (RTC), V1.0 12-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 时间计数器 RTC 32.768 kHz clock 预分频器 RTC 寄存器 报警 周期性事件 串行接口 SCU 图 12-1 实时时钟结构框图 12.2 RTC 操作 RTC 定时器在不同域内对时间的秒、分、时、天、星期、月和年计数 ( 见 图 12-2)。软 件通过 SCU 模块中的镜像寄存器经串行接口来编程和读取 RTC 计数器的独立位域。 参考手册 实时时钟 (RTC), V1.0 12-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 秒 分 时 日 月 年 报警时间 (ATIM0 & ATIM1) 实际时间 (TIM0 & TIM1) = 报警 预分频器 1 秒节拍 星期 秒 分 时 日 月 年 周期性服务请求逻辑 周期性事件 图 12-2 RTC 时间计数器框图 发生的内部定时器事件保存在服务请求原始状态寄存器 RAWSTAT 中。状态寄存器 RAWSTAT 的值驱动输出的服务请求线警报和 periodic_event 事件。 12.3 寄存器访问操作 从编程模型的角度看 RTC 模块是 SCU 的一部分,它与 SCU 的其他子模块共享用于配置 的寄存器地址空间。RTC 寄存器在 RTC 模块内实现,但在 SCU 内有其镜像。寄存器通 过在 32kHz 时钟频率下运行的串行接口在两个时钟域里得到更新。 执行任何寄存器更新时都需要有一定的延时,这是因为通过串行接口与镜像寄存器交换 数据需要时间。对内核域内的 RTC 寄存器的访问决不允许阻塞 SCU 模块的总线接口。 有关寄存器镜像和串口通信处理的详细信息请参见 SCU 一章。 为了可靠地写定时器寄存器 TIM0 和 TIM1,寄存器 TIM0 必须在寄存器 TIM1 之前写入。 为了可靠读取定时器寄存器 TIM0 和 TIM1,寄存器 TIM0 必须在寄存器 TIM1 之前读取。 在 TIM0 和 TIM1 的值被复制到内核域的镜像寄存器之前,每次读取 TIM0 时, TIM1 的 值被保存在一个映射寄存器中。 参考手册 实时时钟 (RTC), V1.0 12-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 12.4 服务请求处理 RTC 在发生下述情况下产生服务请求: • 周期性的定时器事件 • 配置的报警条件 可以在内核域将这些服务请求作为常规服务请求或者作为从休眠或深度休眠模式的唤醒 触发处理。 12.4.1 周期性服务请求 只要定时器计数器的非屏蔽域得到更新,就会产生周期性的定时器服务请求。这些位的 屏蔽使用 MSKSR 寄存器执行。周期性的服务请求可以用 MSKSR 禁止。 12.4.2 定时器报警服务请求 当 TIM0 和 TIM1 位域的值与 ATIM0、 ATIM1 寄存器中所有对应位域的值匹配时,会触 发报警中断。定时器报警服务请求可以用 MSKSR 寄存器使能 / 禁止。 12.5 调试行为 当 CPU 进入 HALT 模式时, RTC 的功能可被挂起。 RTC 调试功能由 CTR 寄存器中的 SUS 位域控制。 注: 在 XMC1300 中,任何复位都会将位 CTR.SUS 复位到其默认值。因此,如果在调 试期间需要挂起功能,建议在用户的初始化代码中使能调试挂起功能。在对寄存器 编程前,必须使能模块时钟,并且在使能模块时钟时,要像 SCU 一章的 CCU ( 时 钟门控控制 ) 一节描述的那样谨慎处理。 12.6 电源、复位和时钟 在休眠和深度休眠模式,可以将 RTC 编程为一直保持供电。在初次上电后,RTC 模块一 直保持在复位状态,直到复位解除。 RTC 定时器使用一个内部或外部 32.768 kHz 的时钟运行,这可以通过 SCU/CCU 模块的 CLKCR.RTCCLKSEL 控制寄存器来选择,如 导致每秒更新一次 RTC 定时器。 图 12-3 所示。将预分频值设置为 7FFFH 会 参考手册 实时时钟 (RTC), V1.0 12-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) ACMPx OUT /3 /3 ERU0 DCO2 IOUT0 32.768kHz 待机时钟 (默认) SCU CGATSTAT0.RTC rtc_clock RTC CLKCR.RTCCLKSEL 图 12-3 RTC 时钟选择 RTC 模块时钟在默认情况下是被禁止的,可以通过 SCU_CGATCLR0 寄存器使能。 注: 在通过 CLKCR.RTCCLKSEL 改变 RTC 时钟源之前 ,RTC 时钟必须由 CGATSET0.RTC 位进行门控。 12.7 初始化和控制序列 RTC 模块的编程模型假设了几个使用不同控制序列的场景。 注: 本章中描述的某些场景需要在系统级操作,这不在 RTC 模块描述的范围,因此更 详细的信息请参见本文档的相关章节。 12.7.1 操作的初始化和启动 复位后需要对 RTC 模块进行全面初始化。对 RTC 寄存器的访问通过专用镜像寄存器执 行 ( 更详细的信息请参见 SCU 一章 ) • 使能给 RTC 模块的时钟 – 向 SCU_CGATCLR0.RTC 写 1 • 用当前时间对 RTC_TIM0 和 RTC_TIM1 寄存器编程 – 检查SCU_MIRRSTS,以确保没有经串行接口到RTC_TIM0和RTC_TIM1寄存器的 数据传送正在进行 – 向 RTC_TIM0 和 RTC_TIM1 寄存器写入一个新值 • 使能 RTC 模块以启动计时 – 向 RTC_CTR.ENB 写 1 参考手册 实时时钟 (RTC), V1.0 12-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 注: 为确保经串行接口进行的数据传送成功,对于每次数据传送, RTC_TIM0 和 RTC_TIM1 只能被写一次。另外,写入这些寄存器的数据必须是 32 位宽。单独的 位访问不会启动串行传送操作。 12.7.2 配置和使能周期性事件 RTC 周期性事件的配置需要编程,以便在相应位域的值发生改变时能产生中断请求。 • 在 RTC 模块中使能周期性定时器事件服务请求 – 在 RTC_MSKSR 寄存器中设置各自的位域 (MPSE, MPMI, MPHO, MPDA, MPMO, MPYE),以使能独立的周期性定时器事件。 12.7.3 配置和使能定时器事件 RTC 报警事件的配置需要编程,以便在 ATIM0 和 ATIM1 分别与 TIM0 和 TIM1 对应位域 的值匹配时能产生中断请求。 • 将比较值编程到 RTC 模块中的 ATIM0 和 ATIM1 的独立位域 – 检查 SCU_MIRRSTS,以确保没有经串行接口到 RTC_ATIM0 和 RTC_ATIM1 寄存 器的数据传送正在进行。 – 写 RTC_ATIM0 和 RTC_ATIM1 寄存器 • 使能用于 RTC 模块中定时器报警事件服务请求 – 设置 RTC_MSKSR 寄存器的 MAI 位域,以使能独立的周期性定时器事件。 注: 为确保经串行接口进行的数据传送成功,对于每次数据传送, RTC_ATIM0 和 RTC_ATIM1 只能被写一次。另外,写入这些寄存器的数据必须是 32 位宽。单独 的位访问不会启动串行传送操作。 12.8 RTC 寄存器 寄存器概述 绝对寄存器地址通过下面的加法计算: 模块基地址 + 偏移地址 表 12-2 模块 RTC 寄存器地址空间 基地址 4001 0A00H 结束地址 4001 0AFFH 备注 参考手册 实时时钟 (RTC), V1.0 12-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 表 12-3 简称 寄存器一览表 描述 RTC 内核寄存器 ID ID 寄存器 CTR 控制寄存器 RAWSTAT 原始服务请求寄存器 STSSR 状态服务请求寄存器 MSKSR 屏蔽服务请求寄存器 CLRSR 清除服务请求寄存器 ATIM0 报警时间寄存器 0 ATIM1 报警时间寄存器 1 TIM0 时间寄存器 0 TIM1 时间寄存器 1 12.8.1 寄存器描述 偏移地 访问方式 址 读 写 描述见 0000H 0004H 0008H 000CH 0010H 0014H 0018H 001CH 0020H 0024H U, PV BE U, PV PV U, PV BE U, PV BE U, PV PV U, PV PV U, PV PV U, PV PV U, PV PV U, PV PV 页 12-7 页 12-8 页 12-9 页 12-10 页 12-11 页 12-12 页 12-13 页 12-14 页 12-16 页 12-17 ID RTC 模块的只读 ID 寄存器包含 RTC 模块的唯一标识码。 ID RTC 模块 ID 寄存器 (00H) 复位值 : 00A3 C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MOD_NUMBER r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_TYPE r MOD_REV r 参考手册 实时时钟 (RTC), V1.0 12-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 位 MOD_REV [7:0] MOD_TYPE [15:8] MOD_NUMBER [31:16] 类型 r r r 描述 模块的版本号 指示实现的版本号。模块版本值从 01H( 第一个版本 ) 开始。 模块类型 该位域固定为 C0H。 模块编号值 该位域定义模块的标识号 CTR RTC 控制寄存器提供对模块工作模式的控制方法。 CTR RTC 控制寄存器 (04H) 复位值 : 7FFF 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DIV rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 SUS ENB rrrrrrrr r r rw rw 域 ENB SUS DIV 位 0 1 [31:16] 类型 rw rw rw 描述 RTC 模块使能 0B 禁止 RTC 模块 1B 使能 RTC 模块 调试挂起控制 0B 在停止模式下调试时 RTC 不停止 1B 在停止模式下调试时 RTC 停止 分频值 RTC 预分频器的重载值。时钟要除以 DIV+1。 7FFFH 是 RTC 在 32.768 kHz 晶体或外部时钟模式的 默认值。 参考手册 实时时钟 (RTC), V1.0 12-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 位 类型 描述 0 [15:2] r 保留 读出值为 0 ;应写入 0 RAWSTAT RTC 原始服务请求寄存器包含原状态信息,即在状态屏蔽生效前产生的服务请求或中 断。该寄存器用于调试目的,但也能用于状态查询,不产生服务请求。 RAWSTAT RTC 原始服务请求寄存器 (08H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 0 r 9876543210 RAI 0 RPY RPM EO 0 RPD RPH RPM RPS AO I E rh r rh rh r rh rh rh rh 域 RPSE RPMI RPHO RPDA RPMO RPYE RAI 0 位 0 1 2 3 5 6 8 4, 7, [31:9] 类型 rh rh rh rh rh rh rh r 描述 原始周期性秒服务请求 在秒计数增 1 时置位 原始周期性分服务请求 在分计数增 1 时置位 原始周期性时服务请求 在小时计数增 1 时置位 原始周期性日服务请求 在天数增 1 时置位 原始周期性月服务请求 在月计数增 1 时置位 原始周期性年服务请求 在年计数增 1 时置位 报警服务请求 在计数值与比较值匹配时置位 保留 参考手册 实时时钟 (RTC), V1.0 12-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) STSSR RTC 服务请求状态寄存器包含在服务请求或中断产生时反映状态屏蔽效果的状态信息。 软件需要访问该寄存器来确定事件的真实原因。 STSSR RTC 服务请求状态寄存器 (0CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 0 r 9876543210 SAI 0 SPY SPM EO 0 SPD A SPH O SPMI SPS E rh r rh rh r rh rh rh rh 域 SPSE SPMI SPHO SPDA SPMO SPYE SAI 0 位 0 1 2 3 5 6 8 4, 7, [31:9] 类型 rh rh rh rh rh rh rh r 描述 屏蔽后的周期性秒服务请求状态 屏蔽后的周期性分服务请求状态 屏蔽后的周期性时服务请求状态 屏蔽后的周期性日服务请求状态 屏蔽后的周期性月服务请求状态 屏蔽后的周期性年服务请求状态 屏蔽后的报警服务请求状态 保留 参考手册 实时时钟 (RTC), V1.0 12-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) MSKSR RTC 服务请求屏蔽寄存器包含服务请求或中断产生控制的屏蔽值。 MSKSR RTC 服务请求屏蔽寄存器 (10H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 0 r 9876543210 MAI 0 MPY MPM EO 0 MPD MPH MPM MPS AO I E rw r rw rw r rw rw rw rw 域 MPSE MPMI MPHO MPDA MPMO MPYE MAI 位 类型 描述 0 rw 周期性秒中断屏蔽 0B 禁止中断 1B 使能中断 1 rw 周期性分中断屏蔽 0B 禁止中断 1B 使能中断 2 rw 周期性时中断屏蔽 0B 禁止中断 1B 使能中断 3 rw 周期性日中断屏蔽 0B 禁止中断 1B 使能中断 5 rw 周期性月中断屏蔽 0B 禁止中断 1B 使能中断 6 rw 周期性年中断屏蔽 0B 禁止中断 1B 使能中断 8 rw 报警中断屏蔽 0B 禁止中断 1B 使能中断 参考手册 实时时钟 (RTC), V1.0 12-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 位 类型 描述 0 4, r 保留 7, [31:9] CLRSR RTC 清除服务请求寄存器的用途是清除 RAWSTAT 和 STSSR 寄存器的粘滞位。向某位 写入 1 以便清除状态位。写 0 对置位或者复位没有影响。 CLRSR RTC 清除服务请求寄存器 (14H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 0 r 9876543210 RAI 0 RPY RPM EO 0 RPD RPH RPM RPS AO I E w r ww r wwww 域 RPSE RPMI RPHO RPDA RPMO 位 类型 描述 0 w 原始周期性秒中断清除 0B 无影响 1B 清除状态位 1 w 原始周期性分中断清除 0B 无影响 1B 清除状态位 2 w 原始周期性时中断清除 0B 无影响 1B 清除状态位 3 w 原始周期性日中断清除 0B 无影响 1B 清除状态位 5 w 原始周期性月中断清除 0B 无影响 1B 清除状态位 参考手册 实时时钟 (RTC), V1.0 12-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 RPYE RAI 0 位 6 8 4, 7, [31:9] 类型 w w r 描述 原始周期性年中断清除 0B 无影响 1B 清除状态位 原始报警中断清除 0B 无影响 1B 清除状态位 保留 ATIM0 RTC 报警时间寄存器 0 的用途是对单一的报警时间编程,以便在期望的时间点与 TIM0 寄存器比较。ATM0 寄存器包含秒、分、时和日的位域部分。当试图向一个位域写入一个 无效值时,例如超过最大值, 则会用该位域的默认值对其编程,见对每个位域的描述。 ATIM0 RTC 报警时间寄存器 0 (18H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 ADA 0 AHO r rw r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 AMI 0 ASE r rw r rw 域 ASE AMI 位 [5:0] [13:8] 类型 rw rw 描述 报警秒比较值 秒定时器计数值与该值匹配时会触发报警秒中断。 设置值等于或大于 3CH 会导致将该域值设置为 0H。 报警分比较值 分定时器计数值与该值匹配时会触发报警分中断。 设置值等于或大于 3CH 会导致将该域值设置为 0H。 参考手册 实时时钟 (RTC), V1.0 12-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 AHO ADA 0 位 [20:16] [28:24] [7:6], [15:14], [23:21], [31:29] 类型 rw rw r 描述 报警时比较值 小时定时器计数值与该值匹配时会触发报警时中 断。 设置值等于或大于 18H 会导致将该域值设置为 0H。 报警日比较值 日定时器计数值与该值匹配时会触发报警日中断。 设置值等于或大于 1FH 会导致将该域值设置为 0H。 保留 ATIM1 RTC 报警时间寄存器 1 服务的的用途是对单一的报警时间编程,以便在期望的时间点与 TIM1 寄存器比较。ATM1 寄存器包含月和年的位域部分。当试图向一个位域写入一个无 效值时,例如超过最大值, 则会用该位域的默认值对其编程,见对每个位域的描述。 ATIM1 RTC 报警时间寄存器 1 (1CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 AYE rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 AMO 0 r rw r 域 AMO AYE 位 [11:8] [31:16] 类型 rw rw 描述 报警月比较值 月定时器计数值与该值匹配时会触发报警月中断。 设置值等于或大于实际月计数天数时会导致将该域值 设置为 0H。 报警年比较值 年定时器计数值与该值匹配时会触发报警年中断。 参考手册 实时时钟 (RTC), V1.0 12-14 V1.0, 2013-03 请遵守产品信息使用协议 域 位 类型 描述 0 [7:0], r 保留 [15:12] XMC1300 XMC1000 家族 实时时钟 (RTC) 参考手册 实时时钟 (RTC), V1.0 12-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) TIM0 RTC 时间寄存器 0 包含秒、分、时和日的当前时间值。各位域在与它们各自的含义相对 应的时间间隔内得到更新。该寄存器需要在初次上电后被编程,以反映当前时间,然后 连续计时。如果被使能,即使在休眠或深度休眠状态下也会继续计时。当试图向一个位 域写入一个无效值时,例如超过最大值,则会用该位域的默认值对其编程,见对每个位 域的描述。 TIM0 RTC 时间寄存器 0 (20H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 DA 0 HO r rwh r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 MI 0 SE r rwh r rwh 域 位 类型 描述 SE [5:0] rwh 秒时间值 设置值等于或大于 3CH 会导致将该域值设置为 0H。 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 MI [13:8] rwh 分时间值 设置值等于或大于 3CH 会导致将该域值设置为 0H。 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 HO [20:16] rwh 时时间值 设置值等于或大于 18H 会导致将该域值设置为 0H 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 DA [28:24] rwh 日时间值 设置值等于或大于实际月计数的天数会导致将该域 值设置为 0H 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 日计数器在月的第一天从 0 值开始。 参考手册 实时时钟 (RTC), V1.0 12-16 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 实时时钟 (RTC) 域 位 类型 描述 0 [7:6], r 保留 [15:14], [23:21], [31:29] TIM1 RTC 时间寄存器 1 包含星期、月和年的当前时间值。各位域在与它们各自的含义相对应 的时间间隔内得到更新。该寄存器需要在初次上电后被编程,以反映当前时间,然后连 续计时。如果被使能,即使在休眠或者深度休眠状态下也会继续计时。当试图向一个位 域写入一个无效值时,例如超过最大值,则会用该位域的默认值对其编程,见对每个位 域的描述 TIM1 RTC 时间寄存器 1 (24H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 YE rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 MO r rwh 0 DAWE r rwh 域 DAWE MO YE 位 [2:0] [11:8] [31:16] 类型 rwh rwh rwh 描述 星期时间值 设置值等于或大于 6H 会导致将该域值设置为 0H。 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 日计数器在周的第一天从 0 值开始。 月时间值 设置值等于或大于 CH 会导致将该域值设置为 0H。 当 RTC 通过位 CTR.ENB 被禁止时,该值只能被写 入。 月计数器在年的第一个月从 0 值开始。 年时间值 当 RTC 被禁止时,该值只能被写入。 参考手册 实时时钟 (RTC), V1.0 12-17 V1.0, 2013-03 请遵守产品信息使用协议 域 0 12.9 位 [7:3], [15:12] 类型 描述 r 保留 互连 表 12-4 引脚连接 输入 / 输出 I/O 时钟信号 fRTC I 调试信号 HALTED I 服务请求连接 periodic_event O alarm O 连接到 SCU.CCU CPU SCU.GCU SCU.GCU XMC1300 XMC1000 家族 实时时钟 (RTC) 描述 所选的 32.768 kHz 时钟 表明处理器处于调试状态并停止 定时器周期性服务请求 报警服务请求 参考手册 实时时钟 (RTC), V1.0 12-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 13 系统控制单元 (SCU) 系统控制单元 (SCU) SCU 是 SoC 电源、复位和时钟的管理者,另外还负责提供系统稳定性保护和其它辅助功 能。 13.1 概述 本章中描述的 SCU 的功能组织在下面的几个小节内,每节介绍系统控制的不同方面: • 杂项控制功能, GCU 13.2 节 • 电源控制,PCU 13.3 节 • 复位操作, RCU 13.4 节 • 时钟控制, CCU 13.5 节 13.1.1 特性 SCU 提供的下述特性用于监视和控制系统: • 一般控制 – 启动软件 (SSW) 和启动模式支持 – 存储器内容保护 – 中断处理 • 电源控制 – 由 EVR 产生片上内核电源 – 电源验证 – 电源看门狗 – 电压监视 – 负载变化处理 • 复位控制 – 由多种复位请求源产生复位 – 系统复位产生 – 复位后的复位源检查 • 时钟控制 – 时钟产生 – 时钟监控 – 独立的外设时钟门控 – 时钟消隐支持 13.1.2 框图 图 13-1 示出了下面的子单元: • 电源控制单元 (PCU) • 复位控制单元 (RCU) • 时钟控制单元 (CCU) • 综合控制单元 (GCU) 参考手册 系统控制单元 (SCU), V1.0 13-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) SCU 中的所有 SFR 都可以通过 AHB 和 16 位的 APB 总线接口访问,如 图 13-1 所示。 APB 总线接口常用于访问称为 ANACTRL 寄存器的 SFR 组。这些寄存器用于配置系统中 的模拟模块,即嵌入式稳压器 (EVR) 和数控振荡器 (DCO1 和 DCO2)。称为 SCU 寄存 器的另一个 SFR 组可通过 AHB 总线接口访问。 AHB 接口 总线接口 APB 接口 SCU 寄存器 ANACTRL 寄存器 奇偶校验错误 服务请求 去NVIC的 中断信号 EVR 模块 I/O 控制 GCU PCU RTC 接口 RTC 模块 DCOx 模块 时钟信号 CCU RCU 复位请求 复位信号 图 13-1 SCU 框图 综合控制单元接口 综合控制单元 GCU 有一个与每个片内 SRAM 和 Flash 的存储器验证逻辑连接的存储器 故障接口,以接收类似于奇偶校验错误这样的存储器故障事件。 电源控制单元接口 电源控制单元 PCU 有一个与嵌入式稳压器 (EVR) 的接口和一个与 CCU 模块的接口。有 关 PCU 相关信号的详细信息在 13.3 节中描述。 复位控制单元接口 复位控制单元 RCU 有一个与嵌入式稳压器 (EVR) 的接口。RCU 接收来自 EVR 的上电复 位和掉电复位信息。复位请求可来自看门狗、CPU、GCU 和时钟控制单元 (CCU)。RCU 参考手册 系统控制单元 (SCU), V1.0 13-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 向芯片上内核电源域的所有其他单元提供复位信号。有关 RCU 相关信号的更多详细信息 在 13.4 节中描述。 时钟控制单元接口 时钟控制单元 (CCU) 接收来自片上数字控制振荡器 (DCO) 的时钟源。 CCU 向片上所有 其它单元提供时钟信号。 RTC 接口 对 RTC 模块的访问是经串行接口实现的。该接口通过与 RTC 模块寄存器之间的串行接 口提供更新的镜像寄存器。经串行接口的镜像寄存器更新受 MIRRSTS 寄存器的控制。更 新结束后还能通过 SRRAW 寄存器触发服务请求。寄存器镜像中寄存器的更新连续不断 地进行,以尽可能快的速度即刻反映两边任何寄存器状态的变化。 RTC 模块的功能在单独的 RTC 一章描述。 13.2 杂项控制功能 (GCU) 系统控制执行系统管理功能,这些功能可通过 GCU 寄存器访问。包括各种辅助功能的综 合系统控制在综合控制单元 (GCU) 中执行。 13.2.1 服务请求处理 表 13-1 列出的服务请求事件能够导致产生中断。参见 SRMSK 寄存器的描述。 中断结构如图 13-2 所示。中断请求或相应的中断置 1 位 ( 在寄存器 SRSET 中 ) 能在所 选择的中断节点 x 触发中断产生。服务请求脉冲是从 SRRAW 寄存器中的中断标志独立 产生的。中断标志可以由软件通过写寄存器 SRCLR 中的对应位清除。 服务请求 事件 x SRCLR.x SRSET.x SRMSK.x 清除 SRRAW.x 置位 置位 请求 1 原始请求 & 去 IRQ的 请求组合输出 图 13-2 服务请求处理 参考手册 系统控制单元 (SCU), V1.0 13-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 寄存器 SRRAW 中的标志可通过软件写寄存器 SRCLR 中的对应位来清除 。所有的陷阱 请求可以被组合到一根共同的线上,并连接到 NVIC 的一个常规中断节点。 注: 当对一个 SCU 服务请求进行服务时,要确保处理完所识别的请求后将所有相关的 请求标志清除 。 13.2.1.1 服务请求源 SCU 支持在表 13-1 列出和在 SRRAW、 SRMSK、 SRCLR 、 SRSET 寄存器中反映的 服务请求源。触发这些服务请求的事件在各自的模块章节或者 SCU 一章的各节中描述。 表 13-1 模块 NVM SCU:CCU SCU:PCU SCU:GCU WDT RTC ORC 服务请求 服务请求名称 Flash 双位 ECC 事件 Flash 操作完成事件 16kB SRAM 奇偶校验错误事件 USIC0 SRAM 奇偶校验错误事件 时钟丢失事件 待机时钟故障事件 VDDP 预警事件 VDROP 事件 VCLIP 事件 温度传感器完成事件 温度传感器比较高事件 温度传感器比较低事件 WDT 预警 RTC 周期性事件 RTC 报警 RTC CTR 镜像寄存器更新 RTC ATIM0 镜像寄存器更新 RTC ATIM1 镜像寄存器更新 RTC TIM0 镜像寄存器更新 RTC TIM1 镜像寄存器更新 超量程比较器事件 服务请求简称 FLECC2I FLCMPLTI PESRAMI PEU0I LOCI SBYCLKFI VDDPI VDROPI VCLIPI TSE_DONE TSE_HIGH TSE_LOW PRWARN PI AI RTC_CTR RTC_ATIM0 RTC_ATIM1 RTC_TIM0 RTC_TIM1 ORCxI [x = 0 - 7] SCU.SRx SR0 SR1 SR2 ACMP 模拟比较器事件 ACMP0I, ACMP1I, ACMP2I 参考手册 系统控制单元 (SCU), V1.0 13-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 13.2.2 SRAM 存储器内容保护 为了管理片上 SRAM 存储器的内容, SCU 提供了下面的机制: 所有的片上 SRAM 都通过奇偶校验提供内容保护。在执行写操作时,奇偶逻辑产生附加 的奇偶位,这些奇偶位与每个数据字一起存储。读操作隐含了对先前存储的奇偶信息的 检查。 奇偶检验错误的出现可以在 SRRAW 状态寄存器观察到。存储器错误是否触发中断可以 通过 SRMSK 配置。当 RSTCON.SPERSTEN 或 RSTCON.U0PERSTEN 被置 1 时,奇 偶检验错误还能触发系统复位。 可以用位 PMTSR.MTENS 单独使能对 16 kB SRAM 存储器的奇偶控制软件测试功能,例 如用于支持在系统测试以满足 B 级 (Class B)需求。一旦该位被置 1,在写操作时产生 反转的奇偶位。当执行对该 SRAM 地址的读操作时,可以检测出奇偶检验错误。 注: 测试软件应位于不同的存储器空间。 13.2.3 ID 概要 本节描述 XMC1300 中的各种 ID。 模块标识 模块标识寄存器 指示每个外设的功能和设计步骤,寄存器 SCU_ID 用于 SCU 模块。 系统 ROM 表 ID 系统 ROM 表中的 PID 值在表 13-2 中定义。XMC1300 的系统 ROM 表位于 F000 0000H。 Cortex-M0 的 ROM 表在调试一章中描述。 表 13-2 XMC1300 系统 ROM 表的 PID 值 名称 偏移 参考 值 PID0 FE0H XMC1300 部件号 [7:0] EDH PID1 FE4H 位 [7:4] JEP106 ID 码 [3:0] 11H 位 [3:0] XMC1300 部件号 [11:8] PID2 FE8H 位 [7:4] XMC1300 修订号 1CH 位 [3] == 1: JEDEC 分配的 ID 域 位 [2:0] JEP106 ID 码 [6:4] PID3 FECH 位 [7:4] 版本和小修订域 00H 位 [3:0] 如果不为 0,指示一个客户修改的块 PID4 FD0H 位 [7:4] 4KB 计数 00H 位 [3:0] JEP106 连续码 参考手册 系统控制单元 (SCU), V1.0 13-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 芯片标识号 芯片标识号是一个 8 字长的编号。它包含寄存器 DBGROMID、IDCHIP、PAU_FLSIZE、 PAU_RAM0SIZE 和 PAU_AVAILn(n=0-2) 各自的值。该编号用于很容易地识别器件的衍 生型号信息,例如封装类型、温度范围、Flash 大小、 RAM 大小和外设的可用性。 13.3 电源管理单元 (PCU) 电源管理控制在电源控制单元 (PCU) 中执行。 13.3.1 功能描述 XMC1300 使用 1.8 - 5.5V (VDDP) 的单一外部电源运行。主电源电压由电源看门狗管理。 I/O 直接使用外部电源电压运行。内核电压 (VDDC) 由片上嵌入式稳压器 (EVR) 产生。内 核电压的安全电压范围由一个电源验证电路管理,该电路是 EVR 的一部分。 13.3.2 系统状态 系统有下述综合系统状态: • 关闭 • 活动 • 休眠 • 深度休眠 图 13-3 示出了状态图和状态之间的转换。 参考手册 系统控制单元 (SCU), V1.0 13-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 休眠 休眠请求 唤醒事件 深度休眠请求 关断 冷/ 热 启动 活动 深度休眠 唤醒事件 图 13-3 系统状态图 活动状态 活动状态是正常工作状态。系统完全供电。 CPU 通常使用一个高速时钟运行。系统时钟 可以根据应用需求降低速度。 可以通过关闭未用外设的时钟使其停止工作。 休眠状态 系统的休眠状态与 CPU 的休眠状态一致。通过 CPU 的 WFI 或 WFE 指令进入这一状态。 在该状态下, CPU 的时钟被停止。为了省电,可以在进入休眠状态之前通过寄存器 CGATSET0 关闭那些不需要在休眠期间工作的外设的时钟。 可以在进入休眠状态前,通过位 NVMCONF.NVM_ON 在活动状态将 Flash 置于关闭模 式,以进一步降低功耗。然而,在进入休眠状态前和从休眠状态唤醒后,用户代码必须 在 SRAM 中执行。 为避免由于关闭 Flash 而将代码执行切换到 SRAM,可以使用寄存器 PWRSVCR。当 FPD 位被置 1 时,Flash 仅在设备进入休眠状态时被关闭。关闭操作在内核执行 WFI/WFE 指令后被执行。在检测到唤醒事件后,系统将恢复到先前的状态,即在 CPU 能够继续获 取和执行代码前,Flash 重新变为可工作状态。在这种情况下,用户代码可以在 Flash 中 执行而不需切换到 SRAM 中。使用该方法时唤醒时间变长因为 Flash 达到活动状态需要 一定时间。 参考手册 系统控制单元 (SCU), V1.0 13-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 外设可以不受影响地继续运行,最后产生一个事件来唤醒 CPU。在用户调试模式 (UMD) 下 或者用户调试模式和 HAR (UMHAR),调试 HALT 请求也能唤醒 CPU。任何相应配置 过的中断都会通过 NVIC 或 M0 调试系统将 CPU 带回到运行状态。 深度休眠状态 深度休眠状态的进入机制与休眠状态相同,另外用户代码可以在系统控制寄存器中使能 深度休眠状态。该状态类似于休眠状态,不同之处是, PCLK 和 MCLK 在深度休眠状态 会被切换到一个慢的待机时钟,并且 DCO1 会被置于掉电模式。 模拟比较器也能在深度休眠状态下保持活动。可以将模拟比较器切换到低功耗模式以节 省功耗。 同上节的解释一样,通过 NVMCONF.NVM_ON 或 PWRSVCR.FPD 关闭 Flash 同样适用 于深度休眠模式。 继续运行的外设将使用慢速的待机时钟,能最后产生一个事件去唤醒 CPU。在用户调试 模式 (UMD) 下或者用户调试模式和 HAR (UMHAR),调试 HALT 请求也能唤醒 CPU。任 何相应配置过的中断都会通过 NVIC 或 M0 调试系统将 CPU 带回到运行状态。在 CPU 被唤醒后,时钟系统恢复到先前的活动状态配置。活动的外设会用恢复后的时钟配置运 行。 在深度休眠状态, SRAM 的内容被保持。 注: 建议在进入深度休眠模式前降低 PCLK 和 MCLK 的频率,以防止突然的负载变化 引起掉电复位。 13.3.3 嵌入式稳压器 (EVR) EVR 用外部电源电压 VDDP 产生内核电压 VDDC。EVR 为输入电压 VDDP 提供了 2 个电源 监视器。产生的内核电压 VDDC 由电源验证电路 (PV) 监视。 13.3.4 上电复位 一旦 VDDP 高于所规定的最低电平, EVR 即开始工作。当外部电压 VDDP 和产生的电压 VDDC 都高于复位阈值并达到标称值时, EVR 结束复位。 13.3.5 电源验证 电源验证电路监视内部的内核电源电压 VDDC。它监视内核电压是否高于能保证安全工作 的电压阈值 VDDCBO。只要电压低于这个阈值电平,就会产生一个掉电复位。 13.3.6 电源电压监测 EVR 中有 2 个常用来监视 VDDP 的检测器,即外部电压检测器 (VDEL) 和外部掉电探测器 (BDE) 。 VDEL 检测器将电源电压与一个预警阈值电压进行比较。阈值电平可以通过寄存器 ANAVDEL.VDEL_SELECT 编程。如果检测到电源电压低于这个阈值电压,则会触发一 参考手册 系统控制单元 (SCU), V1.0 13-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 个中断 (如果被使能) ,并将 SRRAW 寄存器中的标志位 VDDP 置 1。标志位 VDESR.VDDPPW 指示检测器的输出情况。 BDE 检测器用于在电源电压 VDDP 低于所定义的阈值时触发掉电复位。类似地, BDE 检 测器也用于在上电阶段当 VDDP 高于规定的阈值时确保正确启动。 数据手册定义了标称值和应用的滞回电压。 13.3.7 VDDC 在负载变化期间的响应 在 XMC1300 中,当负载增加时内核电压电平 VDDC 会低于典型阈值,当负载降低时内核 电压电平 VDDC 会高于典型阈值。VDROP 和 VCLIP 这两个检测器分别用于监视内核电压 电平的下限和上限 ( 检测器的细节在下一部分描述 )。当 VDDC 下降到低于 VDROP 阈值 电压时,会产生一个 VDROP 事件。当 VDDC 上升到高于 VCLIP 阈值电压时,会产生一 个 VCLIP 事件。如果通过 SRMSK 寄存器被使能,这些事件中的每一个都能够触发其专 有中断,事件的状态可通过 SRRAW 寄存器监视。 在 XMC1300 中,下面的情形由于负载改变可能触发一个 VDROP/VCLIP 事件: • 通过 CLKCR 寄存器改变 MCLK 和 PCLK 的频率 • 通过 CGATSET0/CGATCLR0 寄存器使能 / 关闭外设时钟 当发生突然的负载改变时 (< 4* 基本负载 或 > 0.25* 基本负载 )(TBC),不管负载是增加还 是减少, EVR 都需要时间 (15 微秒 ) 来调整内核电压,使其回到稳定的标称电压。在这 段时期里, 要求保持当前的负载,不允许负载改变。 CRCLK 寄存器里中的状态位 VDDC2LOW 和 VDDC2HIGH 用于指示电压是否稳定。 注: 不建议负载增加到超过 4 倍的基本负载或者负载减小到低于 0.25 倍的基本负载。 如果需要负载变化超过额定值,建议分步改变负载,每一步的负载变化都在限制值 内。例如,从当前 1mA 的基本负载到最终 16mA 的负载至少需要两步。一步是从 1mA 到 4mA,接着另一步是从 4mA 到 16mA。 VDDC2LOW 和 VDDC2HIGH 状态位由一个 10 位计数器产生,该计数器使用 DCO1, 64MHz 时钟作为输入时钟。它实现计数 16 微秒 ( 默认 ),这是在 VDROP 或 VCLIP 事件 发生后获得稳定的 VDDC 所需要的时间。该计数器的长度可以根据负载的变化量通过位域 CLKCR.CNTADJ 改变。在使用一个稳定时钟的情况下,负载变化越大,用户需要等待的 时间越长。每个模块的电流消耗请参见数据手册。 使用上面的例子,在因编程某一配置而引起负载发生从 1mA 到 4mA 的改变后,用户可 以查询 VDDC2LOW (CNTADJ=3FFH) ,以确保调整 EVR 所需要的 16 毫秒 ( 最大 ) 。在 VDDC2LOW 被设置为 0 后,可以执行另一个从 4mA 到 16mA 的负载改变,每一步负载 改变都要重复这一周期。 在 VDROP 事件期间,会发生时钟消隐,详细描述见页 13-14 “ 时钟消隐 ”。在 VCLIP 事 件期间, CPU 时钟和外设时钟继续运行。 注: 当溢出事件发生时,如果 VDROP=1 ( 基于 CNTADJ 值的溢出时间比器件停留在 VDROP 事件里的时间更短 ),则 10 位计数器会使用 CNTADJ 值自动重启。 注: 在深度休眠状态, VDROP 和 VCLIP 检测器被禁止。 参考手册 系统控制单元 (SCU), V1.0 13-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 13.3.8 Flash 功率控制 闪存模块可以被关闭以减小静态功耗。在休眠或深度休眠状态,Flash 模块是否被置于休 眠状态取决于寄存器 PWRSVCR 的设置。用户必须评估减小的漏电流和更长的启动时 间。此外,也可以在进入这些省电模式之前用 NVMCONF.NVM_ON 将 Flash 置于休眠 状态。 13.4 复位控制单元 (RCU) 复位控制单元控制所有与复位有关的功能,包括: • 对各种复位请求源的复位断言 • 复位后检测复位源 • 外设的选择性复位 13.4.1 功能描述 XMC1300 有以下系统复位类型: • 主复位, MRESET • 系统复位, SYSRESET 主复位 , MRESET 主复位的触发源有: • 上电复位 (PORST) • VDDP 或 VDDC 欠压复位 ( 也称为掉电复位 ) • 软件主复位,通过将位 RSTCON.MRSTEN 置 1 器件的完全复位由主复位执行。主复位在加电时由上电复位触发。当电源 VDDP 上升并超 过 VDDP 和 VDDC 电压阈值时,上电复位解除。当 VDDP 电压或 VDDC 电压下降到低于复位 阈值时,上电复位 ( 也称为掉电复位 ) 重新被触发。另外,主复位可以通过将位 RSTCON.MRSTEN 置 1 来触发。 主复位的触发源也会触发系统复位 SYSRESET。 系统复位 , SYSRESET 系统复位的触发源有: • 软件复位,通过 Cortex M0 的应用中断和复位控制寄存器 (AIRCR) • 在 RCU 中被使能的来自 Cortex M0 的锁定信号 • 看门狗复位 • 被使能的存储器奇偶校验错误 • 被使能的 Flash ECC 双位错误 • 被使能的时钟丢失 • 主复位的触发源 参考手册 系统控制单元 (SCU), V1.0 13-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 系统复位影响几乎所有的逻辑。唯一的例外是 RCU 寄存器和有调试探针时的调试系统。 复位被扩展到由实现要求所定义的长度。 在正常工作模式下,当调试探针不存在时,调试系统通过系统复位来复位,当调试探针 存在时,系统复位不影响调试系统。 13.4.2 复位状态 EVR 为 RCU 提供上电复位的原因。可以在恢复运行后通过读寄存器 RSTSTAT 检查复 位原因。该寄存器还指示引起系统复位触发的事件源。 RCU 的所有寄存器都只能由主复位进行复位,但 RSTSTAT 和 RSTCON 寄存器例外。 RSTSTAT 寄存器只能由上电复位来复位, RSTCON 可以由任何复位类型复位。 注: 强烈建议通过寄存器位 RSTCLR.RSCLR 来清除复位状态,以确保对下一次复位 起因的清晰指示。 表 13-3 列出了所有复位信号及其来源和对系统各部分的影响 表 13-3 复位一览表 模块 / 功能 上电复位 通过软件位的主 系统复位 复位 CPU 内核 是 是 是 SCU 是 是 是,复位标志位除外 外设 是 调试系统 是 是 是 是 见脚注1)2) 端口控制 是 是 是 SRAM 受影响,不可靠 不受影响 不受影响 Flash EVR 是 是 是 是 否3) 否 时钟系统 是 是 是 1) 调试探针不存在,调试系统将会复位。 2) 即使调试探针存在,每次复位后都禁止访问调试接口。更多细节请查看调试系统一章的热复位一节。 3) EVR 的电源不受影响 ,因此 EVR 的完全复位是不可能的。然而,它将部分受 ANACTRL 模块中复位的影响。 参考手册 系统控制单元 (SCU), V1.0 13-11 V1.0, 2013-03 请遵守产品信息使用协议 13.5 时钟控制单元 (CCU) XMC1300 XMC1000 家族 系统控制单元 (SCU) 13.5.1 特性 时钟控制单元 CCU 具有以下功能: • 专用的 RTC 和待机时钟 • 时钟监视 – 振荡器看门狗 • 系统频率的宽范围频率缩放 • 独立的外设时钟门控 13.5.2 时钟系统和控制 图 13-4 示出了 XMC1300 中时钟系统的框图。它包含两个振荡器 (DCO11) 和 DCO2) 和 一个时钟控制单元 (CCU)。DCO1 有一个运行在 64MHz 的时钟输出 dco1_dclk 。DCO2 用于产生运行在 32.768kHz 的待机时钟。 主时钟 MCLK 和快速外设时钟 PCLK 由 dco1_dclk 产生。 PCLK 运行在与 MCLK 相同的频率或 MCLK 频率的两倍频率,可通过 CLKCR.PCLKSEL 选择。 图 13-4 示出了运行在 PCLK 域的外设列表。除 RTC 和 WDT 外,其余外设都使用 MCLK 作为时钟,与内核和总线系统的时钟相同。 RTC 和 WDT 运行在来自待机时钟的 32.768kHz 频率,待机时钟与 MCLK 和 PCLK 时钟不同步。 1) DCO1 时钟的输出精度可以通过校准来改善,这种校准基于温度传感器给出的晶片温度。详细描述见 13.5.4 节。 参考手册 系统控制单元 (SCU), V1.0 13-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) EVR IDIV[7:0] FDIV[7:0] 时钟消隐 DCO1 6 4M H z dco1_dclk 时钟消隐 小数 分频器 n:256 ACMPx OUT /3 振荡器 看门狗 SCU CCU CLKCR.PCLKSEL CCU80 POSIF0 CCU40 MATH BCCU0 PCLK 2分频 2分频 MCLK SHS0 (ADC) CPU 和 其余的IP ERU0 /3 IOUT0 DCO2 32.768kHz 待机时钟 rtc_clock wdt_clock C L KC R.R TC C L KSEL RTC WDT 图 13-4 时钟系统框图 注: 当发生时钟丢失事件时, SHS(ADC) 时钟不能切换到待机时钟源。 注: RTC_extclk 在 RTC 一章进一步描述。 参考手册 系统控制单元 (SCU), V1.0 13-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 小数分频器 MCLK 和 PCLK 的频率可通过小数分频器编程。PCLK 的频率范围从 125kHz 到 64MHz, MCLK 的频率范围从 125kHz 到 32MHz。 下面的公式用于计算 MCLK 时钟频率。 (13.1)    MCLK = -----------------d---c---o---_---d---c--l--k------------------ for IDIV > 0    2   I D IV + F----2D---5--I-6-V---   当 CLKCR.PCLKSEL被置1 时,用下面的公式可以计算 PCLK 时钟频率,该频率是 MCLK 的两倍。 (13.2)    PCLK = ----------d---c---o---_---d---c--l--k----------- for IDIV > 0    I D I V + F----2D---5--I-6-V---   IDIV 代表来自位域 CLKCR.IDIV 的无符号 8 位整数, FDIV/256 定义 CLKCR.FDIV 中小 数分频器的选择。MCLK 和 PCLK 的改变能在 2 个时钟周期内完成。当改变 MCLK 时钟 和 PCLK 时钟的频率时,建议禁止所有中断,以防止任何可能导致 Flash 操作不成功的 Flash 访问。 注: 改变 MCLK 和 PCLK 的频率可能导致负载改变,负载变化能引起 时钟消隐发生 。 更详细的信息参见时钟消隐和 VDDC 在负载变化期间的响应。 时钟消隐 为了防止在负载突然增加的情况下发生欠压复位,使用了时钟消隐电路。它冻结去小数 分频器的时钟输入,以调节负载的变化。时钟消隐时间较长时引起的抖动很小。 当检测到 VDDC 低于 VDROP 阈值时,时钟消隐被激活。一旦 VDDC 高于这个阈值,被使 能的时钟重新恢复。该电压下降检测器是 EVR 的一部分,默认在任何复位后都被激活。 为了监视时钟消隐活动,用户可以使能中断,但只能在时钟恢复后进入 ISR。 参考手册 系统控制单元 (SCU), V1.0 13-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 除了使用时钟消隐功能来防止欠压复位外,还要求系统在 16 微秒 ( 最大 ) 的时间内保持 当前负载,不允许有进一步的负载改变。负载改变期间内核电压行为的详细描述见页 13-9 “VDDC 在负载变化期间的响应 ” 中描述。 向如用在户页指13示-9:“内VD核DC电在压负V载D变DC化低期于间标的称响电应压”,中E所VR述正,在状对态其位进C行LK调C节R.。VD在D此C2期L间OW,用时于钟 可能未运行在所选速度,建议在对当前负载继续进行任何大的改变前查询该位。 注: 建议在进入深度休眠状态前降低 PCLK 和 MCLK 的频率,以防止在进入该状态时 发生突然的负载改变,从而引起欠压复位 。 13.5.2.1 振荡器看门狗 振荡器看门狗 (OWD) 使用待机时钟作为参考时钟来监视 DCO1 的时钟频率。可以通过 OSCCSR.OWDEN 禁止振荡器看门狗。通过置位 OSCCSR.OWDRES1),可以重新启动 对 DCO1 时钟频率的检测。检测状态输出在几个备用时钟频率周期后才生效。当 OWD 被禁止时,检测状态会被复位,这时不可能进行检测。 如果在进入深度休眠模式前使能了 OWD,它将在进入深度休眠模式时被硬件自动禁止, 在退出深度休眠状态后又会被重新使能。器件从深度休眠状态唤醒后,对 DCO1 时钟频 率的检测在被复位后又重新启动。 13.5.2.2 时钟丢失检测和时钟恢复 在正常工作期间,当振荡器看门狗 (OWD) 检测到 DCO1 频率低于 50MHz 或高于 68.5MHz 时,说明发生了时钟丢失。在这种情况下,会产生一个中断 (如果被使能) 。同时,振 荡器状态标志 OSCCSR.OSC2L 或 OSCCSR.OSC2H 被置 1,系统时钟将由 32.768kHz 的待机时钟提供。此时可以执行紧急程序来安全地关闭系统。当时钟丢失发生时,除了 触发中断外,还可以触发系统复位,前提是通过 RSTCON.LOCRSTEN 使能了时钟丢失 复位。 注: 在时钟丢失事件期间,只有在 DCO2 仍然运行 (>0MHz) 的情况下才能切换到待机 时钟。位 SRRAW.SBYCLKFI 指示待机时钟的故障状态。 XMC1300 会一直保持在时钟丢失状态,直到下一次复位或成功执行了时钟恢复之后。时 钟恢复可以通过重新启动时钟丢失检测 (将位 OSCCSR.OWDRES 置 1)来执行。当检 测到一个高于 50MHz 且低于 68.5MHz 的稳定振荡器频率时,OSC2L 和 OSC2H 会被清 0, MCLK 将自动切换到 DCO1 时钟源。 13.5.2.3 备用时钟故障 当 OWD 检测到一个待机时钟故障,即待机时钟停止运行时 (~0kHz),说明发生了待机时 钟故障事件。位 SRRAW.SBYCLKFI 被置 1 ,并且会通过 SCU_SR1 服务请求触发一个 中断 (如果该中断在寄存器 SRMSK 中被使能)。 1) 用于在重新启动检测之前清除状态位 SRRAW.LOCI 和 SRRAW.SBYCLKFI。 参考手册 系统控制单元 (SCU), V1.0 13-15 V1.0, 2013-03 请遵守产品信息使用协议 13.5.2.4 系统时钟的启动控制 XMC1300 XMC1000 家族 系统控制单元 (SCU) 当 XMC1300 在复位后启动时,系统频率由 DCO1 振荡器提供。复位后, CPU 运行在 8MHz 的默认频率,用户可以改变用于执行 SSW (启动软件)的频率,在 Flash 单元 1000 1010H 定义这个频率 。更详细的信息参见引导和启动一章。 13.5.3 时钟门控控制 给外设的时钟可以被单独控制,可以通过寄存器 CGATSET0 停止系统某些部分的运行。 在发生一次主复位后,只有内核、存储器、 SCU 和端口外设的时钟未被停止。其余外设 的时钟默认被停止。复位后,用户可用 SSW 选择单独使能每个模块的时钟,这种选择在 Flash 单元 1000 1014H 中定义。更详细的信息参见引导和启动一章。 在模块时钟使能或门控期间的负载变化 使能或者门控给外设的时钟能引起负载的改变,这可能导致时钟消隐发生。此外, 高于 当前负载 4 倍以上的负载改变可能需要系统在 16 微秒 ( 最大 ) 内保持当前的负载,不允 许有进一步的负载改变。更详细的信息见 VDDC 在负载变化期间的响应。 在休眠和深度休眠模式下的模块时钟门控 建议使用寄存器CGATSET0去控制在休眠模式或深度休眠模式期间所不需要的模块的时 钟。这些模块在进入休眠或深度休眠模式之前必须被禁止。另外, PCLK 和 MCLK 将被 切换到一个慢速待机时钟, DCO1 在深度休模式会进入掉电模式。 13.5.4 基于温度校准 DCO 在 XMC1300 中,可以在运行时校准 DCO1 的时钟频率,以获得更高的精度。校准需要 使用片内温度传感器测量温度, 可以使用下面所示的公式获得一个偏移值: OFFSET = tbd [steps] 在公式中有 2 个常数:DCO_ADJL_RT 和 DCO_ADJL_HT,这些值存放在如表 13-4 所 示的 Flash 配置页。 表 13-4 Flash CS0 中的 DCO 校准数据 地址 长度 作用 DCO 校准数据: 1000’0F40H 2 B DCO_ADJL_RT 在室温下测量的频率低调整值 (5 个最低位 ) 1000’0F42H 2 B DCO_ADJL_HT 在高温下测量的频率低调整值 (5 个最低位 ) 参考手册 系统控制单元 (SCU), V1.0 13-16 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 将偏移值输入到寄存器位域 ANAOFFSET.ADJL_OFFSET 以启动 DCO1 校准。这个位 域是受保护的。DCO1 将用大约 5 微秒 ( 最大 ) 的时间使时钟调整到新频率。建议在待定 C 的每一步调整 DCO1。 13.6 服务请求的产生 SCU 模块提供 3 个服务请求输出 SR[2:0]。SR0 用于系统关键请求,例如时钟丢失事件。 SR1 用于公共 SCU 请求,例如 TSE 请求。SR2 用于 ACMP 和 ORC 请求。服务请求输 出 SR[2:0] 连接到嵌套向量中断控制器 (NVIC) 中的中断节点。 更详细的信息参见 13.2.1 节。 13.7 调试行为 在使用外部调试探针执行调试活动时,SCU 模块基于不受来自 SCU 的 HALTED 信号的 影响。 13.8 电源、复位和时钟 SCU 模块实现的功能包括受模块直接控制的各种功能以及通过专用接口的、在不同的电 源域、时钟域和复位域实例化的功能。这些模块在功能上被认为是 SCU 的一部分,因此 在这个意义上 SCU 也被认为是一个多域电路。 电源域 : 电源域被分成适当的电源分离区域。 • 内核域由 VDDC 电压供电 • 焊盘域由 VDDP 电压供电 时钟域 : 所有的跨域接口都实现了信号同步。 • 内部的 SCU 时钟是 MCLK,总是与 CPU 时钟相同 • RTC 和寄存器镜像接口时钟是从 DCO2 振荡器产生的 32.786kHz 时钟 复位域 : 所有复位都在内部与各自的时钟同步。 • 系统复位(SYSRESET) 可以复位SCU中的大多数逻辑,能够被多种源触发 (更详细的 信息请参见复位控制单元 (RCU) 一节 ) • 主复位 (MRESET) 有助于产生系统复位,由内核域的上电序列触发。 参考手册 系统控制单元 (SCU), V1.0 13-17 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 13.9 寄存器 本节描述 SCU 的寄存器 ,其中一些位于 ANACTRL 模块。大多数寄存器由 SYSRESET 复位信号复位,但某些寄存器只能由上电复位来复位。SCU 寄存器可通过 AHB-lite 总线 访问。ANACTRL 寄存器可通过 APB 总线访问。ANACTRL 寄存器的名称用 “ANA” 开始。 表 13-5 部分 SCU 寄存器的基地址 简称 描述 GCU 寄存器 综合控制单元的偏移地址 PCU 寄存器 电源控制单元的偏移地址 CCU 寄存器 时钟控制单元的偏移地址 RCU 寄存器 复位控制单元的偏移地址 RTC 寄存器 实时时钟模块的偏移地址 ANACTRL 寄存器 ANACTRL 寄存器的偏移地址 1) 绝对寄存器地址计算如下: 模块基地址 + 子模块偏移地址 ( 如该列所示 ) + 寄存器偏移地址 偏移地址1) 0000H 0200H 0300H 0400H 0A00H 1000H 下列对 SCU/ANACTRL SFR 的访问会导致一个 AHB/APB 错误响应: • 对未定义地址的读或写访问 • 对只读寄存器的写访问 • 对启动保护寄存器的写访问 表 13-6 模块 SCU 寄存器地址空间 基地址 4001 0000H 结束地址 4001 FFFFH 备注 系统控制单元寄 存器 参考手册 系统控制单元 (SCU), V1.0 13-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 表 13-7 简称 寄存器一览表 描述 PCU 寄存器 (ANACTRL) ANAVDEL 电压检测器控制寄存器 PCU 寄存器 (SCU) VDESR 电压检测器状态寄存器 CCU 寄存器 (SCU) CLKCR 时钟控制 PWRSVCR CGATSTAT0 CGATSET0 节电控制寄存器 外设 0 的时钟门控状态 外设 0 的时钟门控置位 CGATCLR0 外设 0 的时钟门控清除 OSCCSR 振荡器控制和状态寄存器 CCU 寄存器 (ANACTRL) ANAOFFSET DCO1 偏移寄存器 RCU 寄存器 (SCU) RSTSTAT 复位状态 RSTSET 复位置位寄存器 RSTCLR 复位清除寄存器 RSTCON 复位控制寄存器 GCU 寄存器 (SCU) ID 模块标识寄存器 IDCHIP 芯片 ID DBGROMID DBGROMID SSW0 SSW 支持寄存器 CCUCON CCUx 全局启动控制寄存 器 SRRAW RAW 服务请求状态 偏移地 访问方式 址1) 读 写 描述见 1050H U, PV U, PV 页 13-20 0000H U, PV U, PV 页 13-21 0000H 0004H 0008H 000CH 0010H 0014H U, PV U, PV, 页 13-22 BP U, PV U, PV 页 13-24 U, PV U, PV 页 13-25 U, PV U, PV, 页 13-26 BP U, PV U, PV, 页 13-28 BP U, PV U, PV 页 13-29 106CH U, PV U, PV, 页 13-31 BP 0000H 0004H 0008H 000CH U, PV BE U, PV U, PV U, PV U, PV U, PV U, PV 页 13-32 页 13-33 页 13-33 页 13-35 0008H 0004H 0000H 0014H 0030H U, PV BE U, PV SP U, PV SP U, PV U, PV U, PV U, PV 页 13-36 页 13-37 页 13-38 页 13-39 页 13-39 0038H U, PV BE 页 13-40 参考手册 系统控制单元 (SCU), V1.0 13-19 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 表 13-7 简称 寄存器一览表 (cont’d) 描述 SRMSK 服务请求屏蔽 SRCLR 服务请求清除 SRSET 服务请求置位 PASSWD 位保护寄存器 MIRRSTS 镜像更新状态寄存器 PMTSR 奇偶校验存储器测试选择 寄存器 1) 绝对寄存器地址计算如下: 模块基地址 + 子模块偏移地址 + 偏移地址 ( 如该列所示 ) 偏移地 址1) 003CH 0040H 0044H 0024H 0048H 0054H 访问方式 读写 U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV BE U, PV U, PV 描述见 页 13-43 页 13-45 页 13-48 页 13-50 页 13-51 页 13-53 13.9.1 PCU 寄存器 (ANACTRL) ANAVDEL 电压检测器控制寄存器。 ANAVDEL 电压检测器控制寄存器 (1050H) 15 14 13 12 11 10 9 8 7 6 0 r 复位值 :001CH 543210 VDE L_E N VDEL_TIM _ADJ VDEL_SE LECT rw rw rw 域 VDEL_SELECT 位 类型 描述 1:0 rw VDEL 范围选择 这些位设置 VDDP 的范围。 00B 2.25V 01B 3.0V 10B 4.4V 参考手册 系统控制单元 (SCU), V1.0 13-20 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 VDEL_TIM_ADJ VDEL_EN 0 位 类型 描述 3:2 rw VDEL 定时设置 这些位控制 VDEL 的反应速度。 该值由特性决定。 00B 典型值 1µs - 最慢的响应时间 01B 典型值 500ns 10B 典型值 250ns 11B 无延迟 - 最快的响应时间。 4 rw VDEL 单元使能 0B 禁止 VDEL 1B 使能 VDEL 15:5 r 保留 读出值为 0 ;应写入 0。 13.9.2 PCU 寄存器 (SCU) VDESR 电压检测器状态寄存器。 VDESR 电压检测器状态寄存器 (0200H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 VDD VCLI PPW P r rh rh 域 VCLIP 位 类型 描述 0 rh VCLIP 指示 VCLIP 监视位。 0B VCLIP 不活动 1B VCLIP 活动 参考手册 系统控制单元 (SCU), V1.0 13-21 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 VDDPPW 0 位 1 [31:2] 类型 rh r 描述 VDDPPW 指示 0B VDDP 高于预警阈值 1B VDDP 低于预警阈值 保留 读出值为 0 ;应写入 0。 13.9.3 CCU 寄存器 (SCU) CLKCR 时钟控制寄存器。 CLKCR 时钟控制寄存器 (0300H) 复位值 : 3FF0 0400H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VDD VDD C2HI C2L GH OW rh rh CNTADJ rw RTCCLKSEL rw PCL KSE L rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IDIV FDIV rw rw 域 FDIV 位 类型 功能 [7:0] rw 小数分频器选择 选择小数分频器为 n/256,其中 n 是 FDIV 的值,范围是 0 到 255。 例如,向 FDIV 写入 0001B 选择小数分频器为 1/256。 该位受在存储器组织一章描述的位保护机制保护。 注: 如果 IDIV = 00H,小数分频器不起作用。 参考手册 系统控制单元 (SCU), V1.0 13-22 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 位 IDIV [15:8] PCLKSEL 16 RTCCLKSEL [19:17] CNTADJ [29:20] VDDC2LOW 30 VDDC2HIGH 31 类型 rw rw rw rw rh rh 功能 分频器选择 00H 分频器被旁路。 01H 1; MCLK = 32 MHz 02H 2; MCLK = 16 MHz 03H 3; MCLK = 10.67 MHz 04H 4; MCLK = 8 MHz FEH 254; MCLK = 126 kHz FFH 255; MCLK = 125.5 kHz 该位受在存储器组织一章描述的位保护机制保护。 PCLK 时钟选择 0B PCLK = MCLK 1B PCLK = 2 x MCLK 该位受在存储器组织一章描述的位保护机制保护。 RTC 时钟选择 000B 32.768kHz 备用时钟 001B 来自 ERU0.IOUT0 的 32.768kHz 外部时钟 010B 来自 ACMP0.OUT 的 32.768kHz 外部时钟 011B 来自 ACMP1.OUT 的 32.768kHz 外部时钟 100B 来自 ACMP2.OUT 的 32.768kHz 外部时钟 101B 保留 110B 保留 111B 保留 该位受在存储器组织一章描述的位保护机制保护。 计数器调整 000H 1 个 DCO1 时钟周期, 64MHz 时钟 001H 2 个 DCO1 时钟周期, 64MHz 时钟 002H 3 个 DCO1 时钟周期, 64MHz 时钟 003H 4 个 DCO1 时钟周期, 64MHz 时钟 004H 5 个 DCO1 时钟周期, 64MHz 时钟 3FEH 1023 个 DCO1 时钟周期, 64MHz 时钟 3FFH 1024 个 DCO1 时钟周期, 64MHz 时钟 VDDC 过低 0B VDDC 不低,小数分频器输入时钟运行在目标 频率 1B VDDC 过低,小数分频器输入时钟未运行在目 标频率 VDDC 过高 0B VDDC 不高 1B VDDC 过高 参考手册 系统控制单元 (SCU), V1.0 13-23 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) PWRSVCR 定义在深度休眠模式或休眠模式期间一些系统行为方面的配置寄存器。原系统状态在从 休眠模式或深度休眠模式唤醒时得到恢复。 PWRSVCR 节电控制寄存器 (0304H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 FPD r rw 域 FPD 0 位 0 [31:1] 类型 rw r 描述 Flash 下电 0B 无效 1B 进入节电模式时 Flash 下电。当唤醒时,CPU 能够从 Flash 中获取代码。 保留 读出值为 0。 参考手册 系统控制单元 (SCU), V1.0 13-24 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) CGATSTAT0 XMC1300 外设的时钟门控状态。复位后,该寄存器中列出的所有外设都不运行。它们的 模块时钟是受门控的。 该寄存器中的每一位都受存储器组织一章描述的位保护机制的保护。 CGATSTAT0 外设 0 时钟门控状态 (0308H) 复位值 : 0000 07FFH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RTC WDT MAT H POSI F0 0 BCC USIC CCU CCU VAD U0 0 40 80 C r rrrr r rrrrr 域 VADC CCU80 CCU40 USIC0 BCCU0 POSIF0 位 类型 描述 0 r VADC 和 SHS 的门控状态 0B 门控无效 1B 门控生效 1 r CCU80 的门控状态 0B 门控无效 1B 门控生效 2 r CCU40 的门控状态 0B 门控无效 1B 门控生效 3 r USIC0 的门控状态 0B 门控无效 1B 门控生效 4 r BCCU0 的门控状态 0B 门控无效 1B 门控生效 7 r POSIF0 的门控状态 0B 门控无效 1B 门控生效 参考手册 系统控制单元 (SCU), V1.0 13-25 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 MATH WDT RTC 0 位 8 9 10 [6:5], [31:11] 类型 r r r r 描述 MATH 的门控状态 0B 门控无效 1B 门控生效 WDT 的门控状态 0B 门控无效 1B 门控生效 RTC 的门控状态 0B 门控无效 1B 门控生效 保留 CGATSET0 XMC1300 外设的时钟门控使能寄存器。向所选位写 1 将使能对应时钟的门控,写 0 无效。 该寄存器中的每一位都受存储器组织一章描述的位保护机制的保护。 CGATSET0 外设 0 时钟门控置位 (030CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RTC WDT MAT H POSI F0 0 BCC USIC CCU CCU VAD U0 0 40 80 C r wwww r wwwww 域 VADC CCU80 位 类型 描述 0 w VADC 和 SHS 门控置位 0B 无效 1B 使能门控 1 w CCU80 门控置位 0B 无效 1B 使能门控 参考手册 系统控制单元 (SCU), V1.0 13-26 V1.0, 2013-03 请遵守产品信息使用协议 域 CCU40 USIC0 BCCU0 POSIF0 MATH WDT RTC 0 位 2 3 4 7 8 9 10 [6:5], [31:11] 类型 w w w w w w w r 描述 CCU40 门控置位 0B 无效 1B 使能门控 USIC0 门控置位 0B 无效 1B 使能门控 BCCU0 门控置位 0B 无效 1B 使能门控 POSIF0 门控置位 0B 无效 1B 使能门控 MATH 门控置位 0B 无效 1B 使能门控 WDT 门控置位 0B 无效 1B 使能门控 RTC 门控置位 0B 无效 1B 使能门控 保留 XMC1300 XMC1000 家族 系统控制单元 (SCU) 参考手册 系统控制单元 (SCU), V1.0 13-27 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) CGATCLR0 XMC1300 外设的时钟门控禁止寄存器,向所选位写 1 将禁止对应时钟的门控,写 0 无效。 CGATCLR0 外设 0 时钟门控清除 (0310H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RTC WDT MAT H POSI F0 0 BCC USIC CCU CCU VAD U0 0 40 80 C r wwww r wwwww 域 VADC CCU80 CCU40 USIC0 BCCU0 POSIF0 MATH 位 类型 描述 0 w VADC 和 SHS 门控清除 0B 无效 1B 禁止门控 1 w CCU80 门控清除 0B 无效 1B 禁止门控 2 w CCU40 门控清除 0B 无效 1B 禁止门控 3 w USIC0 门控清除 0B 无效 1B 禁止门控 4 w BCCU0 门控清除 0B 无效 1B 禁止门控 7 w POSIF0 门控清除 0B 无效 1B 禁止门控 8 w MATH 门控清除 0B 无效 1B 禁止门控 参考手册 系统控制单元 (SCU), V1.0 13-28 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 WDT RTC 0 位 9 10 [6:5], [31:11] 类型 w w r 描述 WDT 门控清除 0B 无效 1B 禁止门控 RTC 门控清除 0B 无效 1B 禁止门控 保留 OSCCSR 振荡器控制和状态寄存器。 OSCCSR 振荡器控制和状态寄存器 (0314H) 复位值 : 0000 000XH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 OWD OWD EN RES r rw rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 OSC OSC 2H 2L r rh rh 域 OSC2L OSC2H 位 类型 描述 0 rh 振荡器有效低状态位 该位指示 OSC 的频率输出是否可用,这可以用振荡 器看门狗检查。 0B OSC 频率可用 1B OSC 频率不可用。频率过低。 1 rh 振荡器有效高状态位 该位指示 OSC 的频率输出是否可用,这可以用振荡 器看门狗检查。 0B OSC 频率可用 1B OSC 频率不可用。频率过高。 参考手册 系统控制单元 (SCU), V1.0 13-29 V1.0, 2013-03 请遵守产品信息使用协议 域 OWDRES OWDEN 0 位 类型 16 rwh 17 rw [15:2], r [31:18] XMC1300 XMC1000 家族 系统控制单元 (SCU) 描述 振荡器看门狗复位 将该位置 1 会重新启动振荡器检测。在 OWD 被复位 后,该位被自动复位到 0,该过程因同步而需 2 个待 机时钟周期完成。 0B 振荡器看门狗不被清除并保持活动 1B 振荡器看门狗被清除并重新启动。 OSC2L 和 OSC2H 标志将保持最终值,直到在 3 个待机时 钟周期后被更新。 振荡器看门狗使能 0B 禁止振荡器看门狗 1B 使能振荡器看门狗 注: 在 OWD 被禁止时,OSC2H 和 OSC2L 会被清 0。 保留 读出值为 0。 参考手册 系统控制单元 (SCU), V1.0 13-30 V1.0, 2013-03 请遵守产品信息使用协议 13.9.4 CCU 寄存器 (ANACTRL) XMC1300 XMC1000 家族 系统控制单元 (SCU) ANAOFFSET DCO1 偏移寄存器。 ANAOFFSET DCO1 偏移寄存器 (106CH) 复位值 : 0004H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 ADJL_OFFSET r rw 域 ADJL_OFFSET 0 位 类型 描述 3:0 rw ADJL 偏移寄存器 可根据下述机制调节振荡器的频率。 频率的步进 响应取决于 DCO_ADJR。 该寄存器中的每一位都受存储器组织一章描述的 位保护机制的保护。 0H - 4, 典型值 -1.2MHz (DCO_ADJR=0) 或 - 1.8MHz (DCO_ADJR=1) 1H - 3, 典型值 -0.9MHz (DCO_ADJR=0) 或 - 1.35MHz (DCO_ADJR=1) 4H 0, 默认 5H + 1, 典型值 +0.3MHz (DCO_ADJR=0) 或 +0.45MHz (DCO_ADJR=1) 8H + 4, 典型值 +1.2MHz (DCO_ADJR=0) 或 +1.8MHz (DCO_ADJR=1) 15:4 r 保留 读出值为 0 ;应写入 0。 参考手册 系统控制单元 (SCU), V1.0 13-31 V1.0, 2013-03 请遵守产品信息使用协议 13.9.5 RCU 寄存器 (SCU) XMC1300 XMC1000 家族 系统控制单元 (SCU) RSTSTAT 复位状态寄存器。系统启动后需要检查这个寄存器,以确定最后一次复位的原因。用户 应在读该寄存器后应该将其清除,以确保在下一次复位发生时该寄存器是清除状态。该 寄存器由上电复位来复位。 RSTSTAT RCU 复位状态 (0400H) 复位值 : 0000 0XXXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 LCK EN RSTSTAT r r rh 域 RSTSTAT LCKEN 0 位 类型 [9:0] rh 10 r [31:11] r 描述 复位状态信息 提供最后一次复位的原因 0000000001B 上电复位或欠压复位 XXXXXXXX1XB 通过位 RSTCON.MRSTEN 的主复位 XXXXXXX1XXB CPU 系统复位请求 XXXXXX1XXXB CPU 锁定复位 XXXXX1XXXXB Flash ECC 复位 XXXX1XXXXXB WDT 复位 XXX1XXXXXXB 时钟丢失复位 XX1XXXXXXXB 奇偶校验错误复位 使能锁定状态 0B 通过锁定禁止复位 1B 通过锁定使能复位 保留 参考手册 系统控制单元 (SCU), V1.0 13-32 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) RSTSET 系统中复位行为的选择性配置。写 1 将所选位置位,写 0 无效。 RSTSET RCU 复位置位寄存器 (0404H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 LCK EN 0 r w r 域 LCKEN 0 位 10 [9:0], [31:11] 类型 w r 描述 使能锁定复位 0B 无效 1B 当锁定生效时使能复位 保留 RSTCLR 系统中复位行为的选择性配置。写 1 将清除所选位,写 0 无影响。 RSTCLR RCU 复位清除寄存器 (0408H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 LCK EN 0 RSC LR r w r w 参考手册 系统控制单元 (SCU), V1.0 13-33 V1.0, 2013-03 请遵守产品信息使用协议 域 RSCLR LCKEN 0 XMC1300 XMC1000 家族 系统控制单元 (SCU) 位 0 10 [9:1], [31:11] 类型 w w r 描述 清除复位状态 0B 无效 1B 清除域 RSTSTAT.RSTSTAT 使能锁定复位 0B 无效 1B 当锁定生效时,禁止复位 保留 参考手册 系统控制单元 (SCU), V1.0 13-34 V1.0, 2013-03 请遵守产品信息使用协议 RSTCON 使能由关键事件触发的复位,可被任何复位类型复位。 XMC1300 XMC1000 家族 系统控制单元 (SCU) RSTCON RCU 复位控制寄存器 (040CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 MRS TEN r w 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 U0P SPE LOC ECC 0 ERS RST RST RST TEN EN EN EN r rw rw rw rw 域 ECCRSTEN LOCRSTEN SPERSTEN U0PERSTEN MRSTEN 0 位 类型 0 rw 1 rw 2 rw 3 rw 16 w [15:4], r [31:17] 描述 使能 ECC 错误复位 0B 发生 ECC 双位错误时不复位 1B 发生 ECC 双位错误时复位 使能时钟丢失复位 0B 发生时钟丢失时不复位 1B 发生时钟丢失时复位 使能 16kB SRAM 奇偶校验错误复位 0B 发生 SRAM 奇偶校验错误时不复位 1B 发生 SRAM 奇偶校验错误时复位 使能 USIC0 SRAM 奇偶校验错误复位 0B 发生 USIC0 存储器奇偶校验错误时不复位 1B 发生 USIC0 存储器奇偶校验错误时复位 使能主复位 0B 无效 1B 触发主复位 保留 参考手册 系统控制单元 (SCU), V1.0 13-35 V1.0, 2013-03 请遵守产品信息使用协议 13.9.6 GCU 寄存器 (SCU) XMC1300 XMC1000 家族 系统控制单元 (SCU) ID 包含模块唯一 ID 的寄存器。 ID SCU 模块 ID 寄存器 (0008H) 复位值 : 00F1 C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MOD_NUMBER r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_TYPE r MOD_REV r 域 位 MOD_REV [7:0] MOD_TYPE [15:8] MOD_NUMBER [31:16] 类型 r r r 描述 模块版本号 MOD_REV 定义了版本号。模块版本值从 01H 开始 ( 第一个版本 )。 模块类型 该位域是 C0H。它定义该模块是一个 32 位模块。 模块编号值 该位域定义模块标识号。 参考手册 系统控制单元 (SCU), V1.0 13-36 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) IDCHIP 包含 XMC 家族中芯片唯一 ID 的寄存器。该寄存器的值是 芯片标识号中描述的芯片标识 号的一部分。 IDCHIP 芯片 ID 寄存器 (0004H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 IDCHIP r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IDCHIP r 域 IDCHIP 位 [31:0] 类型 r 描述 芯片 ID 0001 3XXXH XCM1300 0001 XXX2H 温度:-40 - 85 C 0001 XXX3H 温度:-40 - 105 C 0001 XX1XH TSSOP38 引脚封装 0001 XX2XH TSSOP28 引脚封装 0001 XX3XH TSSOP16 引脚封装 其他值保留 参考手册 系统控制单元 (SCU), V1.0 13-37 V1.0, 2013-03 请遵守产品信息使用协议 DBGROMID 包含唯一厂商 ID、芯片的部件号和设计等级代码的寄存器。 XMC1300 XMC1000 家族 系统控制单元 (SCU) DBGROMID 调试系统 ROM ID 寄存器 (0000H) 复位值 : 101E D083H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VERSION r PARTNO r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PARTNO r MANUFID 1 r r 域 MANUFID PARTNO VERSION 1 位 [11:1] [27:12] [31:28] 0 类型 r r r r 描述 厂商标识 部件号 产品版本 保留 读出值为 0 ;应写入 0。 参考手册 系统控制单元 (SCU), V1.0 13-38 V1.0, 2013-03 请遵守产品信息使用协议 SSW0 软件支持寄存器。 SSW0 用于改变 BMI 的值。 XMC1300 XMC1000 家族 系统控制单元 (SCU) SSW0 SSW 寄存器 0 (0014H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 DAT rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DAT rw 域 DAT 位 [31:0] 类型 描述 rw SSW 数据 注: SSW 寄存器只能由主复位来复位。 CCUCON CAPCOM 模块控制寄存器。 CCUCON CCU 控制寄存器 (0030H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 GSC 80 0 GSC 40 r rw r rw 参考手册 系统控制单元 (SCU), V1.0 13-39 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 GSC40 GSC80 0 位 0 8 [7:1], [31:9] 类型 rw rw r 描述 全局启动控制 CCU40 0B 禁止 1B 使能 全局启动控制 CCU80 0B 禁止 1B 使能 保留 读出值为 0 ; 应写入 0。 SRRAW 未加屏蔽的服务请求状态。向 SRCLR 寄存器的某位写 1 将清除对应位,向 SRSET 的某 位写 1 将对应位置位。写 0 无影响。 SRRAW SCU 原始服务请求状态 (0038H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TSE TSE TSE RTC RTC RTC RTC RTC _LO _HIG _DO _TIM _TIM _ATI _ATI _CT W H NE 1 0 M1 M0 R 0 SBY CLK FI VCLI PI FLC MPL TI FLE CC2I PEU 0I PES RAM I LOCI rh rh rh rh rh rh rh rh r rh rh rh rh rh rh rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 ORC ORC ORC ORC ORC ORC ORC ORC VDR ACM ACM ACM VDD 7I 6I 5I 4I 3I 2I 1I 0I OPI P2I P1I P0I PI AI rh rh rh rh rh rh rh rh rh rh rh rh rh rh 10 PI PRW ARN rh rh 域 PRWARN PI AI 位 类型 描述 0 rh 屏蔽前的 WDT 预警事件状态 0B 事件尚未发生 1B 事件已发生 1 rh 屏蔽前的 RTC 原始周期事件状态 0B 事件尚未发生 1B 事件已发生 2 rh 屏蔽前的 RTC 原始报警事件状态 0B 事件尚未发生 1B 事件已发生 参考手册 系统控制单元 (SCU), V1.0 13-40 V1.0, 2013-03 请遵守产品信息使用协议 域 位 VDDPI 3 ACMP0I 4 ACMP1I 5 ACMP2I 6 VDROPI 7 ORCxI (x=0-7) x+8 LOCI 16 PESRAMI 17 PEU0I 18 FLECC2I 19 FLCMPLTI 20 VCLIPI 21 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 rh rh rh rh rh rh rh rh rh rh rh rh 描述 屏蔽前的 VDDP 预警事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的模拟比较器 0 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的模拟比较器 1 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的模拟比较器 2 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 VDROP 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的超量程比较器 X 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的时钟丢失事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 16kB SRAM 奇偶检验错误事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 USIC0 SRAM 奇偶检验错误事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 Flash 双位 ECC 事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 Flash 操作完成事件状态 0B 事件尚未发生 1B 事件已发生 屏蔽前的 VCLIP 事件状态 0B 事件尚未发生 1B 事件已发生 参考手册 系统控制单元 (SCU), V1.0 13-41 V1.0, 2013-03 请遵守产品信息使用协议 域 位 SBYCLKFI 22 RTC_CTR 24 RTC_ATIM0 25 RTC_ATIM1 26 RTC_TIM0 27 RTC_TIM1 28 TSE_DONE 29 TSE_HIGH 30 TSE_LOW 31 0 23 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 rh rh rh rh rh rh rh rh rh r 描述 屏蔽前的待机时钟故障事件状态 0B 未发生待机时钟故障 1B 发生了待机时钟故障 屏蔽前的 RTC CTR 镜像寄存器更新状态 0B 未更新 1B 更新已完成 屏蔽前的 RTC ATIM0 镜像寄存器更新状态 0B 未更新 1B 更新已完成 屏蔽前的 RTC ATIM1 镜像寄存器更新状态 0B 未更新 1B 更新已完成 屏蔽前的 RTC TIM0 镜像寄存器更新 0B 未更新 1B 更新已完成 屏蔽前的 RTC TIM1 镜像寄存器更新状态 0B 未更新 1B 更新已完成 屏蔽前的 TSE 测量完成事件状态 0B 事件未发生 1B 事件已发生 屏蔽前的 TSE 比较高温事件状态 0B 事件未发生 1B 事件已发生 屏蔽前的 TSE 比较低温事件状态 0B 事件未发生 1B 事件已发生 保留 参考手册 系统控制单元 (SCU), V1.0 13-42 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) SRMSK 服务请求屏蔽用于屏蔽 RAW 寄存器的输出。当某位被置 1 时,对应的事件发生时会触发 中断或服务请求。 SRMSK SCU 服务请求屏蔽 (003CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TSE TSE TSE RTC RTC RTC RTC RTC _LO _HIG _DO _TIM _TIM _ATI _ATI _CT W H NE 1 0 M1 M0 R 0 SBY CLK FI VCLI PI 0 FLE CC2I PEU 0I PES RAM LOCI I rw rw rw rw rw rw rw rw r rw rw r rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 ORC ORC ORC ORC ORC ORC ORC ORC VDR ACM ACM ACM VDD 7I 6I 5I 4I 3I 2I 1I 0I OPI P2I P1I P0I PI rw rw rw rw rw rw rw rw rw rw rw rw rw 21 0 r 0 PRW ARN rw 域 PRWARN VDDPI ACMP0I ACMP1I ACMP2I VDROPI 位 类型 描述 0 rw WDT 预警中断屏蔽 0B 禁止中断 1B 使能中断 3 rw VDDP 预警中断屏蔽 0B 禁止中断 1B 使能中断 4 rw 模拟比较器 0 中断屏蔽 0B 禁止中断 1B 使能中断 5 rw 模拟比较器 1 中断屏蔽 0B 禁止中断 1B 使能中断 6 rw 模拟比较器 2 中断屏蔽 0B 禁止中断 1B 使能中断 7 rw VDROP 中断屏蔽 0B 禁止中断 1B 使能中断 参考手册 系统控制单元 (SCU), V1.0 13-43 V1.0, 2013-03 请遵守产品信息使用协议 域 位 ORCxI (x=0-7) x+8 LOCI 16 PESRAMI 17 PEU0I 18 FLECC2I 19 VCLIPI 21 SBYCLKFI 22 RTC_CTR 24 RTC_ATIM0 25 RTC_ATIM1 26 RTC_TIM0 27 RTC_TIM1 28 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 rw rw rw rw rw rw rw rw rw rw rw rw 描述 超量程比较器 X 中断屏蔽 0B 禁止中断 1B 使能中断 时钟丢失中断屏蔽 0B 禁止中断 1B 使能中断 16kB SRAM 奇偶校验错误中断屏蔽 0B 禁止中断 1B 使能中断 USIC0 SRAM 奇偶检验错误中断屏蔽 0B 禁止中断 1B 使能中断 Flash 双位 ECC 中断屏蔽 0B 禁止中断 1B 使能中断 VCLIP 中断屏蔽 0B 禁止中断 1B 使能中断 待机时钟故障中断屏蔽 0B 禁止中断 1B 使能中断 RTC CTR 镜像寄存器更新屏蔽 0B 禁止中断 1B 使能中断 RTC ATIM0 镜像寄存器更新屏蔽 0B 禁止中断 1B 使能中断 RTC ATIM1 镜像寄存器更新屏蔽 0B 禁止中断 1B 使能中断 RTC TIM0 镜像寄存器更新屏蔽 0B 禁止中断 1B 使能中断 RTC TIM1 镜像寄存器更新屏蔽 0B 禁止中断 1B 使能中断 参考手册 系统控制单元 (SCU), V1.0 13-44 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 TSE_DONE TSE_HIGH TSE_LOW 0 位 29 30 31 [2:1], 20, 23 类型 rw rw rw r 描述 TSE 测量完成中断屏蔽 0B 禁止中断 1B 使能中断 TSE 比较高温中断屏蔽 0B 禁止中断 1B 使能中断 TSE 比较低温中断屏蔽 0B 禁止中断 1B 使能中断 保留 SRCLR 寄存器 SRRAW 的服务请求清除位。写 1 将清除对应位,写 0 无效。 SRCLR SCU 服务请求清除 (0040H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TSE TSE TSE RTC RTC RTC RTC RTC _LO _HIG _DO _TIM _TIM _ATI _ATI _CT W H NE 1 0 M1 M0 R 0 SBY CLK FI VCLI PI FLC MPL TI FLE CC2I PEU 0I PES RAM I LOCI wwwwwwww r wwwwwww 15 14 13 12 11 10 9 8 7 6 5 4 3 2 ORC ORC ORC ORC ORC ORC ORC ORC VDR ACM ACM ACM VDD 7I 6I 5I 4I 3I 2I 1I 0I OPI P2I P1I P0I PI AI wwwwwwwwwwwwww 10 PI PRW ARN ww 域 PRWARN PI 位 类型 描述 0 w WDT 预警中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 1 w RTC 周期中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 参考手册 系统控制单元 (SCU), V1.0 13-45 V1.0, 2013-03 请遵守产品信息使用协议 域 位 AI 2 VDDPI 3 ACMP0I 4 ACMP1I 5 ACMP2I 6 VDROPI 7 ORCxI (x=0-7) x+8 LOCI 16 PESRAMI 17 PEU0I 18 FLECC2I 19 FLCMPLTI 20 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 w w w w w w w w w w w w 描述 RTC 报警中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 VDDP 预警中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 模拟比较器 0 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 模拟比较器 1 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 模拟比较器 2 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 VDROP 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 超量程比较器 X 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 时钟丢失中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 16kB SRAM 奇偶校验错误中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 USIC0 SRAM 奇偶校验错误中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 Flash 双位 ECC 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 Flash 操作完成中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 参考手册 系统控制单元 (SCU), V1.0 13-46 V1.0, 2013-03 请遵守产品信息使用协议 域 位 VCLIPI 21 SBYCLKFI 22 RTC_CTR 24 RTC_ATIM0 25 RTC_ATIM1 26 RTC_TIM0 27 RTC_TIM1 28 TSE_DONE 29 TSE_HIGH 30 TSE_LOW 31 0 23 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 w w w w w w w w w w r 描述 VCLIP 中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 待机时钟故障中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 RTC CTR 镜像寄存器更新清除 0B 无效 1B 清除原始状态寄存器中的状态位 RTC ATIM0 镜像寄存器更新清除 0B 无效 1B 清除原始状态寄存器中的状态位 RTC ATIM1 镜像寄存器更新清除 0B 无效 1B 清除原始状态寄存器中的状态位 RTC TIM0 镜像寄存器更新清除 0B 无效 1B 清除原始状态寄存器中的状态位 RTC TIM1 镜像寄存器更新清除 0B 无效 1B 清除原始状态寄存器中的状态位 TSE 测量完成中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 TSE 比较高温度中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 TSE 比较低温度中断清除 0B 无效 1B 清除原始状态寄存器中的状态位 保留 参考手册 系统控制单元 (SCU), V1.0 13-47 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) SRSET 寄存器 SRRAW 中的服务请求置 1 位。写 1 将对应位置 1,写 0 无效。 SRSET SCU 服务请求置位 (0044H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TSE TSE TSE RTC RTC RTC RTC RTC _LO _HIG _DO _TIM _TIM _ATI _ATI _CT W H NE 1 0 M1 M0 R 0 SBY CLK FI VCLI PI FLC MPL TI FLE CC2I PEU 0I PES RAM I LOCI wwwwwwww r wwwwwww 15 14 13 12 11 10 9 8 7 6 5 4 3 2 ORC ORC ORC ORC ORC ORC ORC ORC VDR ACM ACM ACM VDD 7I 6I 5I 4I 3I 2I 1I 0I OPI P2I P1I P0I PI AI wwwwwwwwwwwwww 10 PI PRW ARN ww 域 位 类型 描述 PRWARN 0 PI 1 AI 2 VDDPI 3 ACMP0I 4 ACMP1I 5 ACMP2I 6 w WDT 预警中断置位 0B 无效 1B 将原始状态寄存器中的状态位置 1 w RTC 周期中断置位 0B 无效 1B 将原始状态寄存器中的状态位置 1 w RTC 报警中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 w VDDP 预警中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 w 模拟比较器 0 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 w 模拟比较器 1 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 w 模拟比较器 2 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 参考手册 系统控制单元 (SCU), V1.0 13-48 V1.0, 2013-03 请遵守产品信息使用协议 域 位 VDROPI 7 ORCxI (x=0-7) x+8 LOCI 16 PESRAMI 17 PEU0I 18 FLECC2I 19 FLCMPLTI 20 VCLIPI 21 SBYCLKFI 22 RTC_CTR 24 RTC_ATIM0 25 RTC_ATIM1 26 XMC1300 XMC1000 家族 系统控制单元 (SCU) 类型 w w w w w w w w w w w w 描述 VDROP 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 超量程比较器 X 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 时钟丢失中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 16kB SRAM 奇偶校验错误中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 USIC0 SRAM 奇偶校验错误中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 Flash 双位 ECC 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 Flash 操作完成中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 VCLIP 中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 待机时钟故障中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 RTC CTR 镜像寄存器更新置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 RTC ATIM0 镜像寄存器更新置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 RTC ATIM1 镜像寄存器更新置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 参考手册 系统控制单元 (SCU), V1.0 13-49 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 位 RTC_TIM0 27 RTC_TIM1 28 TSE_DONE 29 TSE_HIGH 30 TSE_LOW 31 0 23 类型 w w w w w r 描述 RTC TIM0 镜像寄存器更新置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 RTC TIM1 镜像寄存器更新置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 TSE 测量完成中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 TSE 比较高温中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 TSE 比较低温中断置位 0B 无效 1B 将原始状态寄存器里设置中的状态位置 1 保留 PASSWD PASSWD 寄存器用于控制位保护机制。 PASSWD 口令寄存器 (0024H) 复位值 : 0000 0007H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 PASS PRO TS MODE r w rh rw 参考手册 系统控制单元 (SCU), V1.0 13-50 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 域 MODE PROTS PASS 0 位 [1:0] 2 [7:3] [31:8] 类型 rw rh w r 描述 位保护机制控制位 00B 禁止位保护机制 - 允许直接访问受保护位。 11B 使能位保护机制 - 必须向位域 PASS 写入口令, 才能打开或关闭对保护位的访问。 ( 默认 ) 其他:使能位保护机制,类似于设置 MODE = 11B。 这两位不能直接写入。要在值 11B 和 00B 之间改变其 值,必须向位域 PASS 写 11000B。唯有如此, MODE 位域才能被写入。 位保护信号状态位 该位指示保护状态。 0B 软件能写所有受保护的位。 1B 软件不能写任何受保护的位。 口令位 该位保护机制只识别以下三个口令: 11000B使能对位域 MODE 的写操作。 10011B开放对所有受保护位的写访问。 10101B关闭对所有受保护位的写访问。 保留 MIRRSTS 用于控制 SCU 和 RTC 之间通信的镜像状态寄存器。 MIRRSTS 镜像更新状态寄存器 (0048H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RTC RTC RTC RTC RTC 0 _TIM _TIM _ATI _ATI _CT 1 0 M1 M0 R r rh rh rh rh rh 参考手册 系统控制单元 (SCU), V1.0 13-51 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 系统控制单元 (SCU) 位域 RTC_CTR RTC_ATIM0 RTC_ATIM1 RTC_TIM0 RTC_TIM1 0 位 0 1 2 3 4 [31:14] 类型 rh rh rh rh rh r 描述 RTC CTR 镜像寄存器更新状态 0B 不在更新 1B 正在更新 RTC ATIM0 镜像寄存器更新状态 0B 不在更新 1B 正在更新 RTC ATIM1 镜像寄存器更新状态 0B 不在更新 1B 正在更新 RTC TIM0 镜像寄存器更新状态 0B 不在更新 1B 正在更新 RTC TIM1 镜像寄存器更新状态 0B 不在更新 1B 正在更新 保留 读出值为 0 ; 应写入 0。 参考手册 系统控制单元 (SCU), V1.0 13-52 V1.0, 2013-03 请遵守产品信息使用协议 PMTSR 该寄存器从一个存储器实例中选择奇偶校验测试输出。 XMC1300 XMC1000 家族 系统控制单元 (SCU) PMTSR 奇偶校验存储器测试选择寄存器 (0054H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 MTE NS r rw 域 MTENS 0 位 0 31:1] 类型 rw r 描述 16kB SRAM 的奇偶校验测试使能控制 控制 16kB SRAM 的测试多路选择器 0B 标准操作 1B 在写操作期间产生一个反转的奇偶校验位 保留 应写入 0。 参考手册 系统控制单元 (SCU), V1.0 13-53 V1.0, 2013-03 请遵守产品信息使用协议 14 伪随机数发生器 本章描述伪随机数发生器 (PRNG) 模块,包含以下部分: • 简介 • 工作模式描述 – 密钥加载模式 – 流模式 – 随机比特流的刷新和重新启动 • PRNG 寄存器 – 数据 SFR – 控制 SFR XMC1300 XMC1000 家族 伪随机数发生器 14.1 简介 伪随机位发生器 (PRNG) 能快速产生随机数据。 14.2 工作模式描述 14.2.1 密钥加载模式 在 PRNG 能够使用前,必须由用户软件对其初始化。 PRNG 的密钥 ( 种子 ) k 是一个长度为 n 的位串 k = (kn-1, kn-2, ..., k2, k1, k0) 。尽管允许更 短或更长的密钥,但建议使用 80 位的密钥长度。推荐使用芯片独有的种子值。 PRNG 的初始化包含 2 个基本阶段: 1. 密钥加载 2. 预热 通过将位 PRNG_CTRL.KLD 置 "1" 来初始化密钥加载。在密钥加载模式,PRNG_WORD 总是表现为一个 16 位的目的寄存器。密钥 k = (Wp-1, ..., W1, W0) 的 p 部分字 Wi (0 <= i < p) 按照 W0, W1, ..., Wp-1 的顺序被连续写入 PRNG_WORD,其中 Wi = (k15, ..., k1, k0)。一 种实用的种子长度是 80 位 ( 即 5 个数据字,p=5)。因为部分密钥字的数据位按顺序连续 加载到 PRNG 的内部状态,所以加载一个密钥字需要 16 个时钟周期。当加载正在进行 时,PRNG_CHK.RDV 的标志被置 "0"。该标志为 "1" 表示可向 PRNG_WORD 写下一个 部分密钥值。 在加载了完整的密钥后, PRNG_CTRL.KLD 的标志必须被置 "0" ,以准备进行下面的预 热阶段。该操作需要一个时钟周期。 预 热 阶 段 使 密 钥 位 彻 底 扩 散。为 达 此 目 的,用 户 必 须 读 取 和 丢 弃 来 自 寄 存 器 PRNG_WORD 的 64 个随机位。随机数据输出块必须被设置为 b = 8 或 16 位。这可以通 过将 PRNG_CTRL.RDBS 域设置为相应值来实现。 标志 PRNG_CHK.RDV 置 "1" 表示可以从 PRNG_WORD 中读取下一个宽度为 b 的随机 数据块。 参考手册 伪随机数发生器 , V1.0 14-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 伪随机数发生器 如果因为任何原因,PRNG_CTRL.RDBS 被复位到其默认值 00B,PRNG 必须再次被初 始化 – 即必须再加载一次密钥和执行一次预热阶段。 14.2.2 流模式 标志 PRNG_CHK.RDV 置 1B 表示可以从 PRNG_WORD 中读取下一个随机数据块。在 读取一个字后,标志 PRNG_CHK.RDV 被硬件复位到 0,开始产生新的随机位。 PRNG 需要 17–18 个时钟周期来产生 16 个随机位,需要 9–10 个时钟周期产生 8 个随机位。从 软件的观点来看,没必要查询 PRNG_CHK.RDV 标志。只要 PRNG_CHK.RDV 为 "0", 对 PRNG_WORD 的连续读访问会被硬件自动延迟。 输出数据块的宽度可通过设置 PRNG_CTRL.RDBS 的值来改变。该操作应在进入流模式 之前完成。否则,如果在流模式期间改变 PRNG_CTRL.RDBS 的值,则新设置要等到下 一个随机数产生周期开始才生效。硬件检查所选择的位数是否可用,当该条件为真时,标 志 PRNG_CHK.RDV 被置 1。 在从 8 位工作模式切换到 16 位工作模式时,为避免读到一个重复的随机字节,应在切换 到 16 位模式之前将在 8 位模式下产生的最后一个字节丢弃。 注: PRNG_WORD 应被当作 16 位寄存器访问 , 高 16 位 ( 一次 32 位访问的 ) 在写入 时被忽略,在读取时返回 0,因此不包含随机数据。 14.2.3 随机比特流的刷新和重新启动 可以用一个新密钥刷新随机比特序列。在这种情况下,包含在最后内部状态中的熵没有 被清除,而是新的密钥被混合到当前的 PRNG 状态。这一过程被称为刷新。 刷新是将另外的熵引入到随机比特序列产生的一种方法。如果不进行刷新,整个熵保持 在初始密钥 ( 或者种子 ) 状态,该初始密钥是在第一次密钥加载期间用于初始化 PRNG 的 密钥。此后,随机比特序列的产生是纯粹确定性的。无论何时执行刷新,这个确定性过 程都会被打破。刷新意味着在数据生成时使用相同的密钥重新产生相同的随机结果是不 可能的。 由于 PRNG 的内部状态不能被直接读取和设置,所以不能从任意给定的状态恢复一个序 列。然而,基于某个确定初始密钥的随机比特序列可以继续。这意味着输出序列的一段 s 被保存,该段稍后被用作初始密钥。长度为 n 的 这个段 s = (sn-1, sn-2, ..., s2, s1, s0) 应该 是新的 – 即在应用中使用的最后几位之后产生。s 的长度至少应为 n = 80 位。这样以来, 一个伪随机比特序列可以在系统复位后继续,而不需要新的密钥素材。该过程被称为重 新启动。 注: 在多应用 / 多任务环境下,结合需求获得一个可再生的伪随机位序列可能需要一个 状态保存和恢复功能。因此 OS 必须能在将控制交给应用 2 之前保存 PRNG 的状 态,在将控制返回到应用 1 之前恢复 PRNG 的状态。这对 PRNG 模块是不可能的。 14.3 调试行为 当系统被调试器停止时,PRNG 不支持挂起模式。这意味着 PRNG 在调试停止期间继续 它的操作。 参考手册 伪随机数发生器 , V1.0 14-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 伪随机数发生器 14.4 PRNG 寄存器 伪随机数发生器的接口包括寄存器 PRNG_WORD、 PRNG_CHK 和 PRNG_CTRL。 表 14-1 模块 PRNG 寄存器地址空间 基地址 4802 0000H 结束地址 4802 000FH 备注 表 14-2 寄存器一览表 寄存器简称 寄存器全称 PRNG 寄存器,数据 SFR PRNG_WORD 伪随机数发生器字寄存器 PRNG_CHK 伪随机数发生器状态检查寄存器 PRNG 寄存器 , 控制 SFR PRNG_CTRL 伪随机数发生器控制寄存器 寄存器是按字寻址的。 偏移地址 00H 04H 0CH 页码 页 14-4 页 14-5 页 14-6 参考手册 伪随机数发生器 , V1.0 14-3 V1.0, 2013-03 请遵守产品信息使用协议 14.4.1 数据 SFR 伪随机数发生器字寄存器 XMC1300 XMC1000 家族 伪随机数发生器 PRNG_WORD 伪随机数发生器字寄存器 (00H) 复位值 : 0000H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RDATA rw 域 位 RDATA 15:0 类型 rw 描述 随机数 随机位块或要加载的密钥。 在流模式,有效随机位的范围由 PRNG_CTRL.RDSB 给 定的设置和标志 PRNG_CHK.RDV 的值定义。 在密钥加载模式,种子值 ( 密钥 ) 通过该寄存器写入。在 这种情况下,密钥以 16 位为一组写入。 附加信息 Notes 1. 当 PRNG 运行在密钥加载模式时 ( 通过置位 PRNG_CTRL.KLD 来配置 ),读 PRNG_WORD 会返回最后写入到该寄存器的值 , 而当 PRNG 运行在流模式时 (PRNG_CTRL.KLD = ’0’) ,对该寄存器的写访问会被忽略。 2. 对 SFR PRNG_WORD 的写访问: 强烈建议在 SFR 位 PRNG_CHK.RDV 指示寄存器 PRNG_WORD 准备好接收 ( 新 ) 数据 ( 将用作 PRNG 的种子。 ) 前一直等待。 3. 对 SFR PRNG_WORD 的读访问: 强烈建议在读 SFR PRNG_WORD 之前检查 SFR 位 PRNG_CHK.RDV 。 参考手册 伪随机数发生器 , V1.0 14-4 V1.0, 2013-03 请遵守产品信息使用协议 伪随机数发生器状态检查寄存器 XMC1300 XMC1000 家族 伪随机数发生器 PRNG_CHK 伪随机数发生器状态检查寄存器 (04H) 复位值 : 0000H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 RDV r r 域 RDV 0 位 类型 描述 0 r 随机数 / 密钥有效标志 0B INV, , 新的随机数据块尚未准备好被读取。当加载正 在进行时,如在页 14-1“ 密钥加载模式 ” 中所述,该标 志被置为 0B。 1B VAL, , 随机数据块有效。在密钥加载模式,该值表示 可以向 PRNG_WORD 写下一个部分密钥字 。 15:1 r 保留 附加信息 注: 如果从 PRNG_WORD 中读一个字或字节,但此时数据尚未准备好 (PRNG_CHK.RDV = 0B),则系统会暂停运行,直到数据准备好。 参考手册 伪随机数发生器 , V1.0 14-5 V1.0, 2013-03 请遵守产品信息使用协议 14.4.2 控制 SFR XMC1300 XMC1000 家族 伪随机数发生器 伪随机数发生器控制寄存器 PRNG_CTRL 伪随机数发生器控制寄存器 (0CH) 复位值 : 0000H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 KLD RDBS 0 r rw rw r 域 位 类型 描述 KLD 3 RDBS 2:1 rw 密钥加载操作模式 0B STRM, , 流模式 ( 默认 ) 1B KLD, , 密钥加载模式 rw 随机数据块大小 设置读访问的随机数据块大小 ( 密钥加载时总是使用 16 位 ) 00B RES, , 复位状态 ( 未定义随机数据块的大小 )1), PRNG_WORD 的值不确定。 01B BYTE, , 在 PRNG_WORD.RDATA[7:0] 中的 8 位 10B WORD,, 在 PRNG_WORD.RDATA[15:0] 中的 16 位 11B RFU, , 保留为将来使用,PRNG_WORD 的值不确 定。 0 0 r 保留 0 15:4 r 保留 1) 一旦将 RDBS 设置为复位值 (00B),PRNG 在功能能被使用前必须完全初始化 。初始化需要先执行密钥加载, 然后执行预热阶段。 附加信息 注: 在密钥加载期间,建议不要改变 PRNG_CTRL.KLD 标志。否则,PRNG 位的分布 会不均等。 参考手册 伪随机数发生器 , V1.0 14-6 V1.0, 2013-03 请遵守产品信息使用协议 通信外设 XMC1300 XMC1000 家族 通信外设 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15 通用串行接口通道 (USIC) 通用串行接口通道模块 (USIC) 是一个能处理多种串行通信协议的灵活的接口模块。一个 USIC 模块包含两个独立的通信通道,即 USICx_CH0 和 USICx_CH1,x 为通用 USIC 模 块的编号 ( 例如, USIC 模块 0 的通道 0 用 USIC0_CH0 来表示 )。用户可以在运行期间 对模块编程,决定每个通信通道处理哪种协议和使用哪些引脚。 参考文献 更多的信息请参考下列文档: [1] IIC Bus Specification (Philips Semiconductors v2.1) [2] IIS Bus Specification (Philips Semiconductors June 5 1996 revision) 15.1 概述 本节是关于 USIC 特性的简介。 15.1.1 特性 每个 USIC 通道都可以被独立配置,以满足不同的应用需求。例如,运行过程中可以选择 或更改协议,而不需要复位。 USIC 支持以下协议: • UART (ASC,异步串行通道 ) – 模块能力:接收器 / 发送器的最大波特率为 fPB / 4 – 宽波特率范围,波特率可降至个位数 – 每个数据帧的数据位数:1 到 63 – MSB 在先或 LSB 在先 • LIN 硬件支持 ( 局部互联网络 ) – 基于 ASC 协议的数据传送 – 可以通过内建的波特率发生器捕获事件进行波特率检测 – 软件控制的校验和产生具有更高的灵活性 • SSC/SPI ( 带或不带从选通线的同步串行通道 ) – 支持标准 SPI 两位 SPI 和四位 SPI 格式 – 模块能力:最大波特率为 fPB /2,受环路延迟限制 – 每个数据帧的数据位数可从 1 到 63,在有显性停止条件时可更多 – 支持奇偶校验位生成 – MSB 在先或 LSB 在先 • IIC(IC 间总线 ) – 应用的波特率在 100 kbit/s 至 400 kbit/s 之间 – 支持 7 位和 10 位寻址 – 完整的主机和从机能力 • IIS ( 娱乐音频总线 ) – 模块能力:最大波特率为 fPB / 2 参考手册 USIC, V2.10 15-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 注: 在实际应用中,可以达到的实际波特率取决于器件的工作频率、数据表中描述的时 序参数、 PCB 上的信号延迟和对等器件的时序。 除了可以灵活选择通信协议之外,USIC 的结构设计旨在减轻系统负荷(CPU 负荷),这 样就允许高效的数据处理。 USIC 的结构设计考虑了以下几个方面: • 数据缓冲器能力 标准的缓冲器能力包括一个用于接收数据的双字缓冲器和一个用于发送数据的单字 缓冲器。这就允许 CPU 有更长的反应时间 (例如中断延迟)。 • 额外的 FIFO 缓冲区能力 除了标准缓冲器能力之外,已接收的数据和要发送的数据可被缓存在一个 FIFO 缓冲 区结构中。接收和发送 FIFO 缓冲区的大小是可以独立编程的。根据应用需要,可将 总共 64 个数据字的缓冲区分配给一个 USIC 模块的接收和发送 FIFO 缓冲区。(该 USIC 模块的两个通道共享 64 个数据字的缓冲区)。 除了 FIFO 缓冲区以外,还有一个旁路机制允许引入高优先级数据,而不需刷新 FIFO 缓冲区。 • 发送控制信息 对于每一个要发送的数据字,一个 5 位的发送控制信息被自动添加到一些发送参数 中,如字长、帧长或 SPI 协议所使用的从选择控制。通过分析用户软件已经写完的待 发送数据的地址,可自动生成发送控制信息(32个输入单元=25=5位发送控制信息)。 该特性允许单独处理每个数据字。例如,存储在发送 FIFO 中的与这些数据字相关联 的发送控制信息可自动修改从机选择输出,以选择不同的通信目标 (从器件),而无 需 CPU 负荷。另外,它可以用来控制帧的长度。 • 灵活的帧长控制 在一个数据帧中,待发送的位数与数据字长度无关,并且可以用两种不同的方式来处 理。第一种方式允许使用一个已知长度,可自动生成最多 63 位的帧;第二种方式支 持更长的帧 (甚至是无限长)或动态控制长度的帧。 • 中断能力 对于每个 USIC 模块,根据应用的需要,每个 USIC 通道的事件都可被单独地发送到 6 个可用的服务请求输出 SR[5:0] 之一。此外,除了协议专用的事件,还支持特定的 帧起始和结束指示。 • 灵活的接口连接 每个 USIC 通道为通信信号提供几种可能的输入和输出引脚连接选择。这就允许 USIC 信号到引脚的灵活分配,这种分配可以在不对器件复位的情况下改变。 • 输入信号调理 每个输入信号都经过一个可编程输入调理级的处理,该调理级具有可编程滤波和同步 能力。 • 波特率发生器 每个 USIC 通道都包含其自己的波特率发生器。波特率的产生可以基于内部的模块时 钟,也可以基于一个外部的频率输入。这种结构允许使用一个非内部产生的频率进行 数据发送,例如用于对多个通信伙伴进行同步。 • 传送触发能力 在主模式下,数据传送可以由 USIC 模块外部产生的事件触发。例如:由一个输入引 脚或定时器单元触发 (发送数据验证)。该功能允许时基相关的数据发送。 参考手册 USIC, V2.10 15-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 调试器支持 USIC 提供了读出接收数据的具体地址,不需要与 FIFO 缓冲区机制交互。该功能允 许调试器访问接收数据而不破坏接收数据序列。 为了获得所需要的波特率,必须考虑模块能力和应用环境这两个准则。模块能力由模块 的输入时钟频率定义,它是模块运行的基础。可达到的波特率一般受限于应用环境,尽 管模块的能力可以高出很多(取决于模块时钟和代表一个数据位所需的时钟周期数)。在 大多数情况下,驱动器延迟、信号传播时间或电磁干扰 ( EMI )等应用环境的原因限制 了可达到的最大波特率。 注: 可达到的最大波特率还受限于所选择的附加功能 (例如,数字滤波器、输入同步 级、采样点调整、数据结构等等)。还需要注意额外的延迟,例如 (内部或外部) 传播延迟和驱动延迟 (例如 ASC 模式下的冲突检测、 IIC 等)。 USIC 模块 / 通道结构的框图如图 15-1 所示。 SRx 中断产生 波特率发生器 U SICx fPB _C0 至中断 寄存器 Pins 用户接口 信号分发 数据 缓冲器 数据 移位 单元 PPP ( A SC, SSC. ..) 波特率发生器 输入级 通道 0 U SICx fPB _C1 图 15-1 数据 缓冲器 数据 移位 单元 PPP ( A SC, SSC. ..) 可选: FIFO 数据缓冲区为 USICx_C0 和 USICx_C1 所共享 USIC 模块 / 通道结构 输入级 通道 1 USIC 模块 x USIC_Module 参考手册 USIC, V2.10 15-3 V1.0, 2013-03 请遵守产品信息使用协议 15.2 操作 USIC 本节描述如何操作 USIC 通信通道。 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.1 USIC 结构简介 本节简要介绍 USIC 结构。 15.2.1.1 通道结构 USIC 模块包含两个独立的通信通道,结构如图 15-1 所示。 每个通道的数据移位单元和数据缓存机制都支持全双工数据传送。协议特定的行为由协 议预处理器(PPP)处理。为了简化数据处理,每个 USIC 模块都有一个额外的 FIFO 数 据缓冲区供选用,为每个通道存储发送和接收的数据。 由于通道控制与波特率产生是独立的,所以每个通信通道的通信协议、波特率和数据格 式都可以独立编程。 15.2.1.2 输入级 对于每个协议,所使用的输入信号的数目取决于所选择的协议。每个输入信号由一个完 成信号调理的输入级处理 (称作 DXn,其中 n=0-5),如输入选择、极性控制或数字输 入滤波。可以根据协议的内容将这些信号进行分类,见表 15-1。 标记为 “ 可选 ” 的输入对一个协议的标准功能来说是不需要的,但可用于增强功能。协议 特定内容的描述在相关协议的章节中给出。对于外部频率输入请参见波特率发生器一 节,而有关发送数据验证请参见数据处理一节。 表 15-1 选择的协议 ASC, LIN 标准 SSC, SPI ( 主机 ) 标准 SSC, SPI ( 从机 ) 2位 SSC, SPI ( 主机 ) 不同协议的输入信号 移位数据输入 ( 由 DX0、DX3、DX4 和 DX5 处理 )1) RXD DIN0 (MRST, MISO) DIN0 (MTSR, MOSI) DIN[1:0] (MRST[1:0], MISO[1:0]) 移位时钟输入 ( 由 DX1 移位控制输入 ( 由 DX2 处理 ) 处理 ) 可选: 外部频率输入或 TXD 冲突检测 可选: 发送数据验证 可选: 可选: 外部频率输入或延迟补 发送数据验证或延迟补 偿 偿 SCLKIN SELIN 可选: 可选: 外部频率输入或延迟补 发送数据验证或延迟补 偿 偿 参考手册 USIC, V2.10 15-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-1 不同协议的输入信号 ( 续表 ) 选择的协议 4位 SSC, SPI ( 从机 ) 4位 SSC, SPI ( 主机 ) 4位 SSC, SPI ( 从机 ) IIC 移位数据输入 ( 由 DX0、DX3、DX4 和 DX5 处理 )1) DIN[1:0] (MTSR[1:0], MOSI[1:0]) DIN[3:0] (MRST[3:0], MISO[3:0]) DIN[3:0] (MTSR[3:0], MOSI[3:0]) SDA 移位时钟输入 ( 由 DX1 移位控制输入 ( 由 DX2 处理 ) 处理 ) SCLKIN SELIN 可选: 外部频率输入或延迟补 偿 SCLKIN 可选: 发送数据验证或延迟补 偿 SELIN SCL 可选: 发送数据验证 IIS ( 主机 ) DIN0 可选: 可选: 外部频率输入或延迟补 发送数据验证或延迟补 偿 偿 IIS ( 从机 ) DIN0 SCLKIN WAIN 1) ASC、 IIC、 IIS 和标准 SSC 协议只使用 DX0 作为移位数据输入。 注: 为了灵活地将所需要的 USIC 输入功能分配到器件的端口引脚,每个输入级都可以 在多种可能的输入位置中选择。 在互连一节列出了可用的 USIC 信号及其端口位置,见 页 15-193。 15.2.1.3 输出信号 对于每个协议,最多可以有 14 个协议相关的输出信号可用。实际使用的输出信号数量取 决于所选择的协议。可以根据这些信号在协议中的含义对其进行分类 , 见 表 15-2。 标记为 “ 可选 ” 的输出对一个协议的标准功能来说是不需要的,但可用于增强功能。协 议特定内容的描述在相关协议的章节中给出。为了使一个从器件与一个主器件同步, MCLKOUT 输出信号与移位时钟输出有一个稳定的频率关系 (MCLKOUT 的频率可以高 于 SCLKOUT)。如果一个特定的协议 (例如在 SSC 从模式)不需要波特率发生器,则 SCLKOUT和MCLKOUT信号可以作为具有50%占空比的时钟输出信号使用,其频率与通 信波特率无关。 参考手册 USIC, V2.10 15-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-2 不同协议的输出信号 选择的协 移位数据输出 议 DOUT[3:0] 移位时钟输出 SCLKOUT ASC, LIN TXD 未使用 标准 DOUT0 SSC, SPI (MTSR, MOSI) ( 主机 ) 标准 DOUT0 SSC, SPI (MRST, MISO) ( 从机 ) 2位 DOUT[1:0] SSC, SPI (MTSR[1:0], ( 主机 ) MOSI[1:0]) 2位 DOUT[1:0] SSC, SPI (MRST[1:0], ( 从机 ) MISO[1:0]) 4位 DOUT[3:0] SSC, SPI (MTSR[3:0], ( 主机 ) MOSI[3:0]) 4位 DOUT[3:0] SSC, SPI (MRST[3:0], ( 从机 ) MISO[3:0]) IIC SDA 主移位时钟 可选: 独立时钟输出 主移位时钟 可选: 独立时钟输出 主移位时钟 可选: 独立时钟输出 SCL IIS ( 主机 ) IIS ( 从机 ) DOUT0 DOUT0 主移位时钟 可选: 独立时钟输出 移位控制输出 SELO[7:0] 未使用 从选择, 片选 未使用 从选择, 片选 未使用 从选择, 片选 未使用 未使用 WA 未使用 主时钟输出 MCLKOUT 可选: 主时基 可选: 主时基 可选: 独立时钟输出 可选: 主时基 可选: 独立时钟输出 可选: 主时基 可选: 独立时钟输出 可选: 主时基 可选: 主时基 可选: 独立时钟输出 注: 为了灵活地将所需要的 USIC 输入功能分配到器件的端口引脚,大多数输出信号都 在多个端口引脚上可用。端口控制本身逐个引脚地定义用哪个输出信号作为一个 端口引脚的输出信号 (见端口一章)。 在互连一节列出了可用的 USIC 信号及其端口位置,见 页 15-193。 15.2.1.4 波特率发生器 每个 USIC 通道包含一个波特率生成器,其结构如图 15-2 所示。它基于耦合的分频级, 为不同的协议提供所需要的频率。波特率发生器包括: 参考手册 USIC, V2.10 15-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 一个产生输入频率 fPIN = fFD 的分数分频器, 这是为了基于内部系统频率 fPB 产生波 特率。 • 产生输入频率 fPIN = fDX1 的 DX1 输入,这是为了基于一个外部信号产生波特率。 • 两个协议相关的计数器:分频器模式的计数器提供主时钟信号 MCLK、移位时钟信号 SCLK 和其他协议相关的信号;捕获模式定时器用于时间间隔测量,例如波特率检 测。 • 一个与协议预处理相关联的时间量子计数器,它定义协议的具体时序,例如基于输入 频率 fCTQIN 的移位控制信号或位定时。 • 协议相关分频器的输出信号 MCLKOUT 和 SCLKOUT,在引脚上可用。为了适应不同 的应用,这些信号的某些输出特性可以被配置。 关于 USIC 信号在具体器件引脚上的可用性的详细信息,请参见互连一节。 BRG DX1 CLKSEL 输入 2 fCTQIN 协议预处理器 fD X1 fFD fPIN 协议 相关 SCLK 计数器 使能 输出配置 fPB 分数分频器 MCLK 使能 输出配置 图 15-2 波特率发生器 SCLKOUT MCLKOUT US IC_B audRateG en 15.2.1.5 通道事件和中断 通知用户在数据传输和数据处理期间发生的事件是基于: • 与发送或接收一个数据字相关的数据传送事件,与所选择的协议无关。 • 协议特定的事件,取决于所选择的协议。 • 与数据处理相关的数据缓冲事件,由可选的 FIFO 数据缓冲区进行数据处理。 15.2.1.6 数据移位和处理 USIC 模块的数据处理基于一个独立的数据移位单元 (DSU) 和一个近似于所支持协议的缓 冲器结构。数据移位和缓冲寄存器为 16 位宽 (最大数据字长度),但可将多个数据字级 联起来以实现更长的数据帧。 DSU 的输入是移位数据 (由输入级 DX0、 DX3、 DX4 和 DX5 处理)、移位时钟 (由输入级 DX1 处理)和移位控制 (由输入级 DX2 处理)。信 号 DOUT[3:0] 代表移位数据输出。 参考手册 USIC, V2.10 15-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 用户接口 BYP 旁路数据 INx 缓存的 发送数据 TBUFx 发送数据 OUTR 缓存的 接收数据 RBUF 接收数据 Out In 可选的发送 数据缓冲区 Bypass FIFO 可选的接收 数据缓冲区 FIFO In Out 基本数据缓冲区 TBUF RBUF0 RBUF1 TSR s 移位数据输入 DX0, DX[5:3] 4 Inputs 移位数据输出 数据 4 移位 单元 (DSU) RSR0[3:0] RSR1[3:0] DOUT[3:0] 移位时钟输入 DX1 Input 移位控制输入 DX2 Input USIC_DataBuffer 图 15-3 数据缓冲原理 数据处理的原理包括: • 一个发送器,包括 DSU 中的发送移位寄存器 (TSR 和 TSR[3:0]) 和一个发送数据缓冲 器 (TBUF)。数据验证机制允许在一定条件下由外部事件触发和控制数据传送。 • 一个接收器,包括DSU中的两组交替工作的接收移位寄存器(RSR0[3:0]和RSR1[3:0]) 和一个双接收缓冲器结构 (RBUF0, RBUF1)。这两个交替接收移位寄存器支持接收 长度大于一个数据字的数据流和数据帧。 • 一个用户接口,处理数据、中断、状态和控制信息。 基本数据缓冲器结构 接收数据的读访问和待发送数据的写访问可由一个基本的数据缓冲器结构处理。 可直接从接收缓冲器 RBUF0/RBUF1 中读取存储在这些寄存器中的接收数据。在这种情 况下,用户必须谨慎处理接收序列,以便能以正确的顺序读取这些寄存器。 为了简化接 收缓冲器结构的使用,引入了寄存器 RBUF。对该寄存器的读操作将返回最先接收的数 据字 (最老的数据),从而可遵守接收顺序。随着对 RBUF 的读访问 (至少是低字节) 的完成,所读数据被自动声明为不再是新数据,下一个接收的数据字在 RBUF 中变为可 见,并可在下一次读操作中被读取 。 参考手册 USIC, V2.10 15-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 控制信息 TCI TBUF 5 地址 TBUF31 .... 16 数据 TBUF01 TBUF00 数据写访问 RBUF01SR RBUF0 RBUF01SR RBUF1 DS RBUFSR RBUF 数据读访问 RBUF 镜像 调试读访问 US IC_DataA c c es s 图 15-4 不使用额外数据缓冲区的数据访问结构 建议通过访问 RBUF 来读取已接收的数据字,以避免直接处理 RBUF0 和 RBUF1。USIC 模块还支持对已接收数据字的调试访问 。调试器的读访问不应干扰接收数据序列,因而 读访问的目标不应是 RBUF。为此,引入了寄存器 RBUFD。RBUFD 包含与 RBUF 相同 的值,但对 RBUFD 的读访问不会改变数据的状态 (同一个数据可以被多次读取)。除 了已接收的数据之外,每个接收数据字还有一些额外状态信息在接收缓冲器状态寄存器 RBUF01SR( 与 RBUF0 和 RBUF1 中的数据相关 ) 和寄存器 RBUFSR ( 与 RBUF 中的数 据相关 ) 可用。 可以通过用软件写发送缓冲器输入单元 TBUFx (x = 00-31) 的方式将发送数据加载到 TBUF 中,TBUFx 由 32 个连续地址组成。写入到这些输入单元之一的数据被存储在发送 缓冲器 TBUF 中。此外,被写单元的地址在被评估后可用于其他控制用途。这个 5 位宽 的信息 (称为发送控制信息 TCI) 可在不同协议中用于不同用途。 FIFO 缓冲区结构 为了使数据的建立和处理更加简便,USIC 模块还可选择支持一种额外的数据缓冲机制。 数据缓冲区基于先入先出原则 (FIFO) ,可确保传送的数据字序列的顺序无误。 如果使用 FIFO 缓冲区结构,则数据处理方案(带相关控制信息的数据)与没有 FIFO 的 方案类似。额外的 FIFO 缓冲区的发送和接收功能可被独立地使能 / 禁止 ( 例如,如果数 据 FIFO 缓冲区可以用于一个特定的 USIC 通道,则可以将其配置为发送数据路径不使用 FIFO 缓冲区,而接收数据路径使用 FIFO 缓冲区 )。 不管 FIFO 深度如何,发送 FIFO 缓冲区都用 32 个连续的地址单元来寻址,这些单元标 注为 INx 而非 TBUFx (x=00-31)。这 32 个地址用来存储与每个 FIFO 条目相关的 5 位 TCI ( 与被写入的数据一起 )。 参考手册 USIC, V2.10 15-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 接收 FIFO 可以在两个独立的地址 OUTR 和 OUTDR 中读出,而不是 RBUF 和 RBUFD。 对 OUTR 单元的读操作使下一次读操作要读取的下一个数据包变为可用 (一般的 FIFO 机制) 。为 了 允 许 非 侵 入 式 调 试 (无 数据 丢失 的风 险) ,引 入了第 二个 地址 单元 (OUTDR)。对该地址的读操作可以返回与 OUTR 相同的值,但并未修改 FIFO 的内容。 发送 FIFO 还有旁路数据流和加载旁路数据到 TBUF 的能力。如果发送 FIFO 为空,,这 可用于产生高优先级消息,或发送一个紧急消息。FIFO 缓冲区的发送控制还可以使用发 送逻辑的传送触发和传送门控机制来进行数据验证 ( 例如由事件触发数据发送 )。 注: 一个 USIC 通道的 FIFO 数据缓冲区的可用大小取决于具体器件。有关 FIFO 可用 缓冲能力的详细信息,请参见具体实现章节。 控制信息 TCI TBUF RBUF01SR RBUF0 RBUF01SR RBUF1 发送 FIFO 接收 FIFO 5位 16 位 IN31 TCI= 11111 IN01 IN00 TCI= 00001 TCI= 00000 发送数据 .... 发送数据 发送数据 OUTR 镜像 OUTR OUTDR OUTDR 数据写访问 数据读访问 调试读访问 USIC _FIFOAccess 图 15-5 带有 FIFO 的数据访问结构 15.2.2 操作 USIC 通信通道 本节描述如何操作 USIC 的通信通道,包括协议控制和状态、模式控制和中断处理。必须 考虑到以下几个方面: • 使能 USIC 模块运行和配置不同器件工作模式的行为 ( 见 页 15-11)。 • 配置引脚 ( 参阅相应协议节中的描述 )。 • 配置数据结构 ( 移位方向、字长、帧长、极性等 )。 参考手册 USIC, V2.10 15-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 配置可选 FIFO 缓冲区区的数据缓冲区结构。仅在寄存器 CCFG 中的相关位被置 1 时 FIFO 缓冲区才被使能。 • 通过 CCR.MODE 选择一个协议。仅在寄存器 CCFG 中的相关位被置 1 时才能选择一 个协议。 15.2.2.1 协议控制和状态 与协议相关的控制和状态信息位于协议控制寄存器 PCR 和协议状态寄存器 PSR 中。这 些寄存器在可用的协议之间是共享的。因而在不同的协议里这些寄存器中的各位的含义 是不同的。 PCR 位的使用 寄存器 PCR 中各位的含义由不同协议的协议相关别名来指示。 • ASC 协议的 PCR ( 见 页 15-55) • SSC 协议的 PCR ( 见 页 15-83) • IIC 协议的 PCR ( 见 页 15-111) • IIS 协议的 PCR( 见 页 15-128) PSR 标志的使用 寄存器 PSR 中各标志的含义由不同协议的协议相关别名来指示。 • ASC 协议的 PSR 标志位 ( 见页 15-58) • SSC 协议的 PSR 标志位 ( 见 页 15-86) • IIC 协议的 PSR 标志位 ( 见 页 15-114) • IIS 协议的 PSR 标志位 ( 见 页 15-130) 15.2.2.2 模式控制 对于系统控制任务,例如调试挂起请求,模式控制的概念允许对模块在不同的器件工作 条件下的行为进行编程。对于每种器件工作模式 ( 正常操作、挂起模式 ),通信通道的行 为 都 可 以 被 编 程。因 此,每 一 个 通 信 通 道 都 有 一 个 相 关 联 的 内 核 状 态 配 置 寄 存 器 KSCFG,它定义了通信通道在以下工作模式下的行为: • 正常操作: 当没有请求被挂起时,该模式是默认的工作模式。模块时钟未被关闭,且 USIC 寄存 器是可读可写的。通道的行为由 KSCFG.NOMCFG 定义。 • 挂起模式: 当器件中有一个挂起请求时,该工作模式被请求。模块时钟未被关闭,且 USIC 寄存 器是可读可写的。通道的行为由 KSCFG.SUMCFG 定义。 由寄存器 KSCFG 定义的四个内核模式如表 15-3 所示。 参考手册 USIC, V2.10 15-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-3 内核模式 USIC 通信通道行为 通道行为 运行模式 0 运行模式 1 停止模式 0 停止模式 1 通道的工作按照规定,对数据传送没有影响 在协议的章节中有明确的停止条件描述 KSCFG. NOMCFG 00B 01B 10B 11B 通常情况下,位域 KSCFG.NOMCFG 应配置为运行模式 0,这是标准操作的默认设置。 如果一个通信通道不应对一个挂起请求作出响应 ( 并继续在正常模式下运行 ),则位域 KSCFG.SUMCFG 必须被配置为与 KSCFG.NOMCFG 相同的值。如果通信通道应当在 一个特定的停止条件发生时表现出不同的行为并停止运行,则必须向 KSCFG.SUMCFG 写入对应停止模式 0 或停止模式 1 的代码。 已经为选择的协议定义了停止条件 ( 见协议一节中的模式控制描述 )。 注: 停止模式的选择在很大程度上取决于应用的需要,而且在同一应用中并行地需要 不同的停止模式是不太可能的。其结果是,在寄存器 KSCFG 的位域中只应使用一 个停止模式类型 (0 或 1)。请勿混用停止模式 0 和停止模式 1,并且要避免在同 一个通信通道中从停止模式 0 转换到停止模式 1 (反之亦然)。 注: 在 XMC1300 中,任何复位都可将位域 KSCFG.SUMCFG 复位到其默认值。如果 在调试期间需要挂起功能,建议在用户的初始化代码中使能该功能。 在对这个位 域编程之前,应先使能模块时钟,并且在使能模块时钟时应特别谨慎,详见 SCU 一章中 CCU (时钟门控控制)一节的描述。 15.2.2.3 通用通道事件和中断 通用事件和中断结构如图 15-6 所示。如果一个定义的条件得到满足,事件会被检测到, 并且事件指示标志被自动置位。该标志将一直保持置位状态,直到被软件清除。 如果中 断被使能,那么检测到事件时可产生中断。 事件指示标志的当前状态对中断的产生没有 影响。 因此,要继续产生中断并不需要清除该事件指示标志。 此外,在一个事件条件被一个中断节点指针选择时, USIC 通道的服务请求输出 SRx 被 激活。这种结构允许把事件分配给中断,例如根据应用情况,多个事件可以共享相同的 中断例程 (多个事件激活同一个 SRx 输出),也可以单独处理每个事件 (一个事件仅激 活一个 SRx 输出)。 SRx 的输出被连接到中断控制寄存器,以处理 CPU 对服务请求的响应。这种分配在 页 15-133 的实现一节中描述。 参考手册 USIC, V2.10 15-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 清除事件 指示标志 清除 事件 指示标志 置位 事件条件满足 中断使能 中断节点指针 2 To SR0 ... ... To SR5 US IC_G enInts 图 15-6 通用事件和中断结构 15.2.2.4 数据传送事件和中断 数据传送事件基于一个数据字的发送或接收。相关的指示标志位于寄存器 PSR 中。所有 事件都可以被单独使能以产生中断。 • 接收事件指示已收到一个数据字: 如果在接收缓冲器 RBUF0 或 RBUF1 中一个新的接收字变为可用,则会发生一个接 收事件或发生一个备用接收事件。 如果位 RBUFSR.PERR = 0,发生接收事件。它由标志 PSR.RIF 指示,如果被使能, 会引起接收中断。 • 接收器启动事件指示已经开始接收一个数据字: 当检测到对一个新数据字的第一位进行移位的接收时钟边沿并且接收被使能时,发生 接收器启动事件。它由标志 PSR.RSIF 指示,如果被使能,会引起发送缓冲器中断。 在全双工模式,该事件在发送缓冲器事件之后半个移位时钟周期之际发生,并指示当 前数据字的移位控制设置何时被内部 “ 冻结 ” 以及何时可以编程进行新的设置。 在 SSC 和 IIS 模式,单次模式下的发送数据有效标志 TCSR.TDV 在发生接收启动事 件时被清除。 • 备用接收事件指示已经收到一个特定的数据字: 如果在接收缓冲器 RBUF0 或 RBUF1 中一个新的接收字变为可用,那么则会发生一 个接收事件或发生一个备用接收事件。 如果位 RBUFSR.PERR = 1,发生备用接收事件。它由标志 PSR.AIF 指示,如果被 使能,会引起备用接收中断。 根据所选择的协议不同,位 RBUFSR.PERR 有不同的含义。位 RBUFSR.PERR 置位 在 ASC 模式指示发生了奇偶校验错误,在 IIC 模式指示收到一个新数据帧的第一个字 符,在 IIS 模式指示关于左 / 右通道的 WA 信息。在 SSC 模式,该位用于指示所接收 的字是否为第一个数据字,如果是第一个数据字则它被置位,否则被复位。 • 发送移位事件指示一个数据字已经被发送: 发送移位事件发生在一个数据字的最后一个移位时钟边沿。该事件由标志 PSR.TSIF 指示,如果被使能,会引起发送移位中断。 • 发送缓冲器事件指示已经启动了一个数据字的发送: 当发送缓冲器 TBUF 中的一个数据字被加载到移位寄存器并且可以向 TBUF 写入一个 参考手册 USIC, V2.10 15-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 新的数据字时,会发生发送缓冲器事件。在发送被使能的情况下,该事件在一个新数 据字的第一位被移出的发送时钟边沿发生。该事件由标志 PSR.TBIF 指示,如果被使 能,会引起发送缓冲器中断。 该事件还指示当前数据字发送的移位控制设置 (字长、移位方向等)何时被内部 “ 冻 结 ”。 在 ASC 和 IIC 模式,单次模式下的发送数据有效标志位 TCSR.TDV 在发生发送缓冲 器事件时被清除。 • 数据丢失事件指示最早接收的数据字丢失: 如果在寄存器 RBUF (来自 RBUF0 或 RBUF1 的最老的数据)中的可用数据尚未被 读出,却被新到来的数据覆盖,则发生该事件。该事件由标志 PSR.DLIF 指示,如果 被使能,会引起协议中断。 表 15-4 表明了与数据发送事件和 USIC 通道控制的中断相关的寄存器、位和位域。 表 15-4 数据传送事件和中断处理 事件 指示标志 标准接收事件 PSR.RIF 接收启动事件 PSR.RSIF 备用接收事件 PSR.AIF 发送移位事件 PSR.TSIF 发送缓冲器事件 PSR.TBIF 数据丢失事件 PSR.DLIF 标志清除 中断使能 SRx 输出选择 PSCR.CRIF CCR.RIEN INPR.RINP PSCR.CRSIF CCR.RSIEN INPR.TBINP PSCR.CAIF CCR.AIEN INPR.AINP PSCR.CTSIF CCR.TSIEN INPR.TSINP PSCR.CTBIF CCR.TBIEN INPR.TBINP PSCR.CDLIF CCR.DLIEN INPR.PINP 图 15-7 展示了两个发送事件和中断。 参考手册 USIC, V2.10 15-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 发送移位事件 (数据字的最后一个 发送移位周期结束 ) 发送缓冲器事 件 (数据字的第一个 发送移位时钟 ) PSCR PSR 清除 CTSIF TSIF CCR TSIEN INPR TSINP 置位 发送移位中断 2 ... SR... 0 SR5 PSCR 清除 CTBIF PSR TBIF CCR TBIEN 置位 INPR TBINP 2 发送缓冲器中断 ... SR... 0 SR5 US IC_Trans Ints 图 15-7 发送事件和中断 图 15-8 展示了接收事件和中断。 参考手册 USIC, V2.10 15-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) RBUFSR PERR 新数据进入 RBUF 事件 接收开始事件 (数据字的第一个 接收移位时钟 ) 数据丢失事件 (RBUF 在数据尚未 读出时被盖写 ) PSCR PSR Clear CRIF RIF Set 标准接收事件 CCR RIEN INPR RINP 2 标准接收事件 ... 0 1 备用接收事件 备用接收事件 ... CAIF PSCR 清除 PSCR 清除 CRSIF 置位 AIF PSR AIEN CCR 2 AINP INPR PSR RSIF 置位 CCR RSIEN INPR TBINP 2 接收开始中断 ... SR... 0 SR5 SR0 ... SR5 SR... 0 SR5 PSCR 清除 CDLIF PSR DLIF 置位 CCR DLIEN INPR PINP 2 数据丢失中断 ... SR0 ... SR5 US IC_Rec Ints 图 15-8 接收事件和中断 15.2.2.5 波特率发生器事件和中断 波 特 率 发 生 器 事 件 由 捕 获 模 式 的 定 时 器 在 达 到 其 最 大 值 时 产 生。该 事 件 由 标 志 PSR.BRGIF 指示,如果被使能,会引起协议中断。 表 15-5 列出了指示 USIC 通道的波特率发生器事件和控制 USIC 通道中断的寄存器、位 和位域。 参考手册 USIC, V2.10 15-16 V1.0, 2013-03 请遵守产品信息使用协议 表 15-5 波特率发生器事件和中断处理 事件 波特率发生器事件 指示标志 PSR. BRGIF 标志清除 PSCR. CBRGIF 图 15-9 展示了波特率发生器事件和中断。 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 中断使能 CCR. BRGIEN SRx 输出选择 INPR.PINP 波特率发生器事件 (捕获模式定时器 达到其最大值 ) PSCR PSR 清除 CBRGIF BRGIF CCR BRGIEN INPR PINP 置位 波特率发生器中断 2 SR0 ... ... SR5 USIC_BRGInts 图 15-9 波特率发生器事件和中断 15.2.2.6 协议特有的事件和中断 这些事件与协议特有的操作相关,这些协议特有的操作在相应协议的章节中描述。 相关 的指示标志位于寄存器PSR中。所有的事件都可以被单独使能,以产生共同的协议中断。 • ASC 模式下的协议特有事件: 同步间断、发送线上的数据冲突、接收噪声、停止位的格式错误、接收器帧结束、发 送器帧结束 • SSC 模式下的协议特有事件: MSLS 事件 ( 主模式下帧的起始和结束 )、DX2T 事件 ( 在从模式下帧的起始和结束 )、 基于从选择信号和奇偶校验错误 • IIC 模式下的协议特有事件: 错误的发送代码 ( 帧序列中的错误 )、收到起始条件、收到重复起始条件、收到停止 条件、收到非应答、仲裁失败、从器件读请求、其他一般错误 • IIS 模式下的协议特有事件: DX2T 事件 (WA 线的变化 )、检测到 WA 下降沿或上升沿、WA 产生完成 参考手册 USIC, V2.10 15-17 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-6 协议特有事件和中断处理 事件 指示标志 标志清除 中断使能 ASC 模式下的协 PSR.ST[8:2] PSCR.CST[8:2] PCR.CTR[7:3]] 议特有事件 SSC 模式下的协 PSR.ST[3:2] PSCR.CST[3:2] 议特有事件 IIC 模式下的协议 PSR.ST[8:1] PSCR.CST[8:1] 特有事件 PCR.CTR[15:14] PCR.CTR[24:18] IIS 模式下的协议 PSR.ST[6:3] PSCR.CST[6:3] PCR.CTR[6:4], 特有事件 PCR.CTR[15] SRx 输出选择 INPR.PINP INPR.PINP INPR.PINP INPR.PINP 15.2.3 输入级的操作 所有输入级都提供相同的功能集合。它们为所有协议使用,因为信号调理可以以非常灵 活的方式适应不同的协议,并且数字滤波器可以分别打开和关闭。 15.2.3.1 通用输入结构 通常有两种类型的输入级,一种是数据的输入级 DX0 和 DX[5:3] ,另一种是非数据输入 级 DX[2:1],如 图 15-10 和 图 15-11 所示。两种输入级的差别是:对于数据输入级,如 果通过 CCR.HPCEN 位使能了硬件端口控制,则可以额外地从端口信号 HWINn 选择输 入信号。每个输入级的所有其他使能/禁止功能和选择由寄存器DXnCR中的位独立控制。 所需要的输入信号可以在输入线 DXnA 到 DXnG 之间选择,也可以选择一个固定的 1 电 平,这可通过对位域 DSEL 编程来实现 (对于数据输入级,为使 DSEL 生效,硬件端口 控制必须被禁止)。有关具体器件的输入信号分配,请参见互连一节 (15.12 节 )。位 DPOL 允许将所选择输入信号的极性反转,以使输入信号的极性适应数据移位单元和协议状态 机的内部极性。 对于那些在数据传送时不使用任何额外信号调理的协议,输入信号可以 直接被转发到数据移位单元。在这种情况下,数据通路没有任何因同步或滤波而带来的 延迟。 在输入信号存在噪声的情况下,可以对输入信号进行同步 (信号 DXnS 与 fPB 同步)和 在信号通路上额外使能一个数字噪声滤波器。通过设置 DSEN = 1 即可获得同步输入信 号(如果 DFEN = 1 则信号被滤波)。请注意,这种同步会导致在信号通路有一个 2-3 倍 fPB 周期的延时。 参考手册 USIC, V2.10 15-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) ... ... ... ... DXnCR DSEL DXnA 000 DXnB 001 DXnG 110 1 111 HWINn CCR HPCEN 0 1 DXnINS DXnCR DPOL DXnCR DSEN DXnCR INSW 0 0 1 1 1 0 DXnS 数字滤波器 边沿检测 DFEN DXnCR CM DXnCR 数据移位单元 协议预处理器 DXnT USIC_InputConditdata 图 15-10 DX0 和 DX[5:3] 的输入调理 DXnCR DSEL DXnCR DPOL DXnCR DSEN DXnCR INSW DXnA 000 DXnB 001 DXnG 110 1 111 DXnINS 0 0 1 1 1 0 DXnS 数字滤波器 边沿检测 数据移位单元 协议预处理器 DFEN DXnCR CM DXnCR DXnT USIC_InputCondit 图 15-11 DX[2:1] 的输入调理 如果输入信号由协议预处理器处理,那么通过设置 INSW = 0 可使数据移位单元被直接连 接到协议预处理器。协议预处理器被连接到同步输入信号 DXnS,并且根据所选择的协议 对边沿进行评估。 参考手册 USIC, V2.10 15-19 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 为了支持 SSC 和 IIS 协议中的延迟补偿,DX1 输入级还额外允许通过位 DCEN 使接收移 位时钟的控制独立于发送移位时钟。当 DCEN = 0 时,移位时钟源由 INSW 选择,并且 对接收和发送是相同的。当 DCEN = 1 时,接收移位时钟源自所选择的输入线,如 图 15-12 所示。 DX1CR DSEN DX1CR DX1CR INSW DCEN 0 与DX2的 结构类似 1 1 接收移位时钟 1 0 (DSU) 0 1 发送移位时钟 0 (DSU) 来自协议预处理器 的信号 图 15-12 DX1 的延迟补偿使能 15.2.3.2 数字滤波器 可以通过使能数字滤波器来降低输入信号上的噪声。在被滤波之前,输入信号变为与 fPB 同步。如果禁用了滤波器,则信号 DXnS 对应同步输入信号。如果使能了滤波器,则信 号 DXnS 上比一个滤波器采样周期短的脉冲被抑制。在同步输入信号的一个边沿之后, 如果检测到新值的两个连续样本,则信号 DXnS 变成新值。 为了使滤波采样周期适应不同的应用,它可以被编程。第一种可能是系统频率 fPB。如果 选择小数分频器的输出频率 fFD,则可以抑制更长的脉冲。该频率可在很宽的范围内编 程,也可用于确定数据传送的波特率。 除了 2-3 个 fPB 周期的同步延迟外,被使能的滤波器还在所选择的输入和信号 DXnS 之间 增加了最多两个滤波器采样周期的延迟。 15.2.3.3 边沿检测 同步 (还可选选择滤波)信号 DXnS 可用作数据移位单元的输入,并且还是所选协议预 处理器的一个输入。如果协议预处理器不使用 DXnS 信号进行协议特定处理,则 DXnS 参考手册 USIC, V2.10 15-20 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 可用于其他任务,例如在主模式下控制数据发送 ( 一个数据字可被标记为发送有效,请参 见关于数据缓冲的章节 )。 可编程边沿检测电路通过激活触发信号 DXnT 来指示所期望的事件已经发生 ( 对这个事件 响应之前引入了一个 fPB 周期的延迟 )。 15.2.3.4 选择的输入监测 每个输入级的所选输入信号变成可用的 DXnINS 信号。这些信号可以在系统中用于触发 其他动作,例如产生中断。 15.2.3.5 环回模式 在环回模式,USIC 发送器的输出信号可以被连接到同一通信通道相应接收器的输入。因 此,必须选择所选协议需要的输入级的 “G” 输入。在这种情况下, ASC、 SSC 和 IIS 的 驱动器可以在不连接到端口引脚情况下进行片上评估。发送器发送的数据可以被接收器 接收,就好像该数据是由其他通信伙伴发送的一样。 15.2.4 操作波特率发生器 下面描述的功能块可以被配置为操作波特率发生器,参见 图 15-2。 15.2.4.1 分数分频器 分数分频器通过将输入频率 fPB 除以一个整数系数 n 或乘以 n/1024 来产生其输出频率 fFD。 它有两种工作模式: • 标准分频器模式 (FDR.DM = 01B): 在该模式,输出频率 fFD 是通过将输入时钟 fPB 除以一个 1 到 1024 的整数而得到的。 该除法基于一个由 fPB 加 1 的计数器 FDR.RESULT。当计数值达到 3FFH 后,计数器 被加载为 FDR.STEP 的值,然后继续计数。为了使 fFD = fPB, STEP 的值必须被编 程为 3FFH。 标准分频器模式下的输出频率由下面的公式定义: fFD = fPB  1 n 其中 n = 1024 - STEP (15.1) • 小数分频器模式 (FDR.DM = 10B): 在该模式,输出频率 fFD 来源于输入时钟 fPB 乘以分数 n/1024,n 的值在 0 到 1023 之 间。一般来说,与标准器分频器模式相比,小数分频器模式允许编程获得精度更高的 平均输出时钟频率。请注意,在小数分频器模式, fFD 的周期抖动最大可为一个 fPB 周期。这种抖动是不对多个周期累加的。 频率 fFD 是通过在每个 fPB 周期将 FDR.STEP 加到 FDR.RESULT 而产生的。频率 fFD 参考手册 USIC, V2.10 15-21 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 基于加法结果超过 3FFH 产生的溢出。 小数分频器模式下的输出频率由下面的公式定义: fFD = fPB  n 1024 其中 n = STEP (15.2) 通过设置 BRG.CLKSEL = 00B 可选择将小数分频器的输出频率 fFD 用于波特率发生器。 15.2.4.2 外部频率输入 如果在所选协议中不需要输入级 DX1(DX1CTR.INSW = 0),那么波特率可由一个外部频 率输入 ( 而不是 fPB) 产生。在这种情况下,出现在 DX1 输入级的一个外部频率输入信号 可以被系统频率 fPB 同步和采样。也可以选择在输入级的数字滤波器对其滤波。该功能允 许使用非器件本身产生的频率进行数据传送,例如特定音频频率。 如果 BRG.CLKSEL = 10B, 则触发信号 DX1T 决定 fDX1。在该模式,输入信号的上升沿、 下降沿或两个边沿都可以用来产生波特率,这取决于由位域 DX1CTR.CM 实现的 DX1T 触发事件配置。信号 MCLK 在每次发生 DX1T 的触发事件时切换。 如果 BRG.CLKSEL = 11B,则输入信号的上升沿可以用于产生波特率。信号 MCLK 代表 同步后的输入信号 DX1S。 外部输入信号的高电平时间和低电平时间都必须有至少 2 个 fPB 周期的长度才能用于产生 波特率。 15.2.4.3 分频器模式计数器 分频器模式计数器用于整数分频,提供输出频率 fPDIV。此外,两个固定 2 分频的分频级 提供具有 50% 占空比的输出信号 MCLK 和 SCLK。如果使用小数分频模式,在这些信号 中还可能出现 1 个 fPB 周期的最大小数抖动。该分频器的输出频率由寄存器 BRG 控制。 为了定义主时钟 MCLK 和移位时钟 SCLK 之间的频率比,MCLK 的分频级位于分频系数 为 PDIV+1 的分频器的前面,而 SCLK 的分频级位于该分频器的输出之后。 fMCLK = fPIN 2 (15.3) fSCLK = fPDIV 2 (15.4) 在主时钟被用作外部器件 ( 例如 IIS 组件 ) 参考时钟,并且需要主时钟与 SCLK 有固定的 相位关系以及需要其他定时信号的情况下,建议使用 MCLK 信号作为 PDIV 分频器的输 参考手册 USIC, V2.10 15-22 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 入。如果不使用 MCLK 信号或者不需要固定的相位关系,则可以选择更快的频率 fPIN 作 为输入频率。 fPDIV = fPIN  1 PDIV + 1 fPDIV = fMCLK  1 PDIV + 1 若 PPPEN = 0 若 PPPEN = 1 (15.5) 11 10 fC TQIN 01 00 fPIN 0 PDIV + 1 2 分频 fMC LK 1 fPPP 分频 fPD I V 2 分频 fSC L K SCLK MCLK PPPEN BRG CTQSEL BRG USIC _PDIVTMEN0 图 15-13 分频器模式计数器 15.2.4.4 捕获模式定时器 捕获模式定时器用于测量时间间隔,由 BRG.TMEN = 1 使能。该定时器独立于分频器模 式计数器工作。因此,当定时器进行定时测量时,任何串行数据接收和发送都可以继续。 当该定时器对 fPPP 周期计数,在达到其最大值时停止计数。此外,还产生一个波特率发 生器中断事件 ( 位 PSR.BRGIF 变为置位状态 )。 如果 DX0T 或 DX1T 指示发生了一个事件,则当前定时器值被捕获到到位域 CMTR.CTV, 定时器从 0 开始重新计数。此外,还产生一个发送移位中断事件 ( 位 PSR.TSIF 变为置 位状态 )。 参考手册 USIC, V2.10 15-23 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) DX0T DX1T fPIN 1 清除 2 分频 fMC L K 0 1 加1 计数器 fPPP PPPEN BRG TMEN = 1 BRG 捕获 捕获到 CTV MCLK USIC _PDIVTMEN1 图 15-14 协议相关的计数器 ( 捕获模式 ) 捕获模式定时器可以用来测量数据传送启动之前或数据传送期间的从模式波特率,例如 测量在一个数据信号 ( 由 DX0T) 或一个移位时钟信号 ( 由 DX1T) 的两个边沿之间的时间。 在每个输入级都可以配置激活 DXnT 触发信号的条件。 15.2.4.5 时间量子计数器 与协议预处理器相关的时间量子计数器 CTQ 允许产生用于协议专用的时间间隔。一个时 间量子 tq 的长度由所选输入频率 fCTQIN 和编程的预分频器值给出。 时间量子的含义取决于所选择的协议。更多协议专有信息请参见相应章节。 fC TQ IN 预分频器 tq 时间量子 计数器 CTQ 协议预处理器 PCTQ BRG DCTQ BRG USIC_CTQ 图 15-15 时间量子计数器 15.2.4.6 主时钟和移位时钟配置 可以配置在相应的输出引脚上可用的主时钟输出信号 MCLKOUT 的极性。可以为每个协 议产生 MCLK 信号,以提供一种比移位时钟更高频率的时基。 主时钟输出信号 MCLKOUT 的配置机制确保不会产生缩短的脉冲。每个 MCLK 周期包括 两个阶段,一个主动阶段,后面跟随一个被动阶段。在主动阶段期间, MCLKOUT 信号 的极性由位 BRG.MCLKCFG 的反相电平定义,在主动阶段的开始进行评估。在被动阶段 期间,MCLKOUT 信号的极性由位 BRG.MCLKCFG 定义,在被动阶段的开始进行评估。 参考手册 USIC, V2.10 15-24 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 如果位 BRG.MCLKOUT 被编程为其他值,这种改变在下一次阶段改变时生效。该机制确 保不会在 MCLKOUT 输出产生比一个阶段长度短的脉冲。在 图 15-16 所示的例子中,在 MCLK 周期 2 被动阶段期间, BRG.MCLKCFG 的值从 0 变为 1。 MCLKOUT 信号的产生由协议预处理器通过位 PCR.MCLK 使能 / 禁止。在该位变为置位 状态之后,信号 MCLKOUT 在 MCLK 周期的下一个主动阶段产生。如果 PCR.MCLK = 0 (MCLKOUT 产生被禁止 ),则被动阶段的电平也应用于主动阶段。 MCLK 周期 1 MCLK 周期 2 MCLK 周期 3 MCLK 周期 4 MCLKOUT 主动 被动 主动 被动 主动 被动 主动 被动 阶段 阶段 阶段 阶段 阶段 阶段 阶段 阶段 Bit BRG. MCLKCFG 0 1 US IC_MCLK O UTCfg 图 15-16 主时钟输出配置 可以配置在相应的输出引脚上可用的移位时钟输出信号 SCLKOUT 的极性。可以为每个 协议产生 MCLK 信号,以提供一种比移位时钟更高频率的时基。另外,可以引入一个 fPDIV 周期 ( 等于半个 SCLK 周期 ) 的延迟。该延迟允许使移位时钟边沿的顺序适合应用需求。 如果使用该延迟,则必须考虑信号传播时间和回路延迟的计算。 SCLKOUT 信号的极性控制机制与 MCLKOUT 类似,但由位域 BRG. SCLKCFG 控制。 SCLKOUT 信号的产生由协议预处理器使能 / 禁止。根据所选择的协议,协议预处理器可 以控制独立于分频器链的 SCLKOUT 信号的产生。例如,对于不需要在引脚上提供可用 移位时钟的协议, SCLKOUT 产生被禁止。 15.2.5 操作发送数据通路 发送数据通路基于 16 位宽的发送移位寄存器 (TSR 和 TSR[3:0]) 和一个发送缓冲器 TBUF。 发送和接收共同的数据传送参数,如数据字长度、数据帧长度或移位方向,由移 位控制寄存器 SCTR 控制。发送控制和状态寄存器 TCSR 控制发送数据处理并监视发送 状态。 数据移位输出信号 DOUTx 值的改变仅发生在移位时钟输入信号的相应边沿。一个数据字 / 帧的最后一个数据位的电平在 DOUTx 保持不变,直到在移位时钟的下一个相应边沿开 始下一个数据字传送。 参考手册 USIC, V2.10 15-25 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.5.1 发送缓冲 发送移位寄存器不能被软件直接访问,因为在当前发送的数据字结束并且用于发送的新 数据为有效时,这些寄存器会被自动更新为存储在发送缓冲器 TBUF 中的值。可以将数 据字直接加载到 TBUF,这可通过写一个发送缓冲器输入单元 TBUFx (见页15-27) 实现, 或者选择由一个 FIFO 缓冲区级加载 ( 见 页 15-33)。 移位数据输出 移位时钟输入 移位控制输入 移位时钟域 TSR 控制 移位控制 和状态 TSR 状态 TSR 16 数据 TCSRH TCSRL TBUF 发送控制 系统时钟域 可选的 FIFO TBUFx USIC_DSUTransmit 图 15-17 发送数据通路 15.2.5.2 发送数据移位模式 通过使用相应数量的输出线,可以选择每次移出一位、两位或四位发送移位数据。 该选 项允许 USIC 支持如双位和四位 SSC 这样的协议。这种选择通过移位控制寄存器 SCTR 中的位域 DSM 实现。 注: 位域 SCTR.DSM 控制发送和接收通路的数据移位模式,以允许通过一到四个数据 线来发送和接收数据。 参考手册 USIC, V2.10 15-26 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 对于具有两位或者四位并行数据输出的移位模式,数据字和帧的长度必须分别是二或四 的整数倍。输出一个特定的数据字或数据帧长度所需要的数据移位次数因而被减少到数 据字或数据帧长度除以并行数据输出线的数量。例如,要通过 4 个输出线发送一个 16 位 的数据字,仅需四次移位。 表 15-7 根据移位模式列出了使用不同位组合的不同发送移位寄存器。请注意,表中的 ‘n’ 表示移位次数减一,即第一次数据移位 n = 0,第二次数据移位 n = 1,以此类推,直到 达到总移位次数减一。 对于所有的发送移位寄存器,移出的第一位是MSB 还是LSB取决于SCTR.SDIR的设置。 表 15-7 发送移位寄存器组成 发送移位寄存器 TSR TSR0 TSR1 TSR2 TSR3 单数据输出 (SCTR.DSM = 00B) 所有数据位 未使用 未使用 未使用 未使用 双数据输出 (SCTR.DSM = 10B) 未使用 位 n*2 位 n*2 + 1 未使用 未使用 四数据输出 (SCTR.DSM = 11B) 未使用 位 n*4 位 n*4 + 1 位 n*4 + 2 位 n*4 + 3 15.2.5.3 发送控制信息 发送控制信息 TCI 是一个 5 位的值,它源自所写 TBUFx 或 INx 输入单元的地址 x。例 如,写 TBUF31 生成一个为 11111B 的 TCI。 TCI 可以作为一个额外的数据传送控制参数,用于动态改变数据字长度、数据帧长度或其 他协议特有功能 ( 有关该主题的详细信息,请参见相应协议的章节 )。 TCI 在不同应用中 的使用方式可由寄存器 TCSR 中的位 WLEMD、FLEMD、SELMD、WAMD 和 HPCMD 编程。请注意,并非所有可能的设置都能导致有用的系统行为。 • 字长控制: 如果 TCSR.WLEMD = 1,当向一个发送缓冲器输入单元 TBUFx 写入时,位域 SCTR.WLE 被更新为 TCI[3:0] 的值。该功能可在所有协议中使用,以动态改变每个 数据字的长度 (在 1 和 16 个数据位之间)。 此外,位 TCSR.EOF 被更新为 TCI[4] 的值。该功能 可在 SSC 主模式用于控制从选 择产生,以结束数据帧。建议编程为 TCSR.FLEMD = TCSR.SELMD = TCSR.WAMD = TCSR.HPCMD = 0。 • 帧长控制: 如果 TCSR.FLEMD = 1,当向一个发送缓冲器输入单元 TBUFx 写入时,位域 SCTR.FLE[4:0] 被更新为 TCI[4:0] 的值,并且 SCTR.FLE[5] 变成 0。该功能可在所有 协议中使用,以动态改变每个数据帧的长度 (在 1 和 32 个数据位之间)。建议编程 为 TCSR.SELMD = TCSR.WLEMD = TCSR.WAMD = TCSR.HPCMD = 0。 • 选择输出控制: 如果 TCSR.SELMD = 1,当向一个发送缓冲器输入单元 TBUFx 写入时,位域 参考手册 USIC, V2.10 15-27 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PCR.CTR[20:16] 被 更新为 TCI[4:0] 的值,并且 PCR.CTR[23:21] 变成 0。该功能可 在SSC主模式使用,以定义目标从器件。建议编程为 TCSR.WLEMD = TCSR.FLEMD = TCSR.WAMD = TCSR.HPCMD = 0。 • 字地址控制: 如果 TCSR.WAMD = 1,当向一个发送缓冲器输入单元 TBUFx 写入时,位 TCSR.WA 被更新为 TCI[4] 的值。该功能可在 IIS 模式使用,以定义数据字是在右通道还是在左 通道发送。建议编程为 TCSR.WLEMD = TCSR.FLEMD = TCSR.SELMD = TCSR.HPCMD = 0。 • 硬件端口控制: 如果 TCSR.HPCMD = 1, 当向一个发送缓冲器输入单元 TBUFx 写入时,位域 SCTR.DSM 被 更新为 TCI[1:0] 的值。该功能可在 SSC 协议中用于动态改变数据输入 和输出线的数量,以建立标准、 2 位和 4 位 SSC 格式。 此外,位 TCSR.HPCDIR 被更新为 TCI[2] 的值。该功能可在 SSC 协议中使用,当通 过设置 CCR.HPCEN = 1 使能了硬件端口控制时,该功能控制引脚的方向。建议编程 为 TCSR.FLEMD = TCSR.WLEMD = TCSR.SELMD = TCSR.WAMD = 0。 15.2.5.4 发送数据验证 位于发送缓冲器 TBUF 中的数据字可以被位 TCSR.TDV ( 发送数据有效 ) 标记为发送有 效或无效。用数据流相关和事件相关判断条件的组合来判定数据字是否为有效发送状 态。数据验证逻辑检查每个数据字的起始条件。 根据检查结果,发送移位寄存器按照下 面的规则被加载不同的值: • 如果 USIC 通道是通信主机 ( 它定义每个数据字传送的开始 ),则只能使用发送缓冲器 TBUF 中的有效数据开始一次数据字传送。在这种情况下,发送移位寄存器被装载为 TBUF 的内容, TBUF 的值不会因这次操作而改变。 • 如果 USIC 通道是通信从机 ( 它不能定义传送开始,但必须做出反应 ),由通信主机请 求的一次数据字传送必须被启动,与 TBUF 中数据字的状态无关。如果主机请求并启 动了一次数据字传送,则发送移位寄存器在第一个相应的移位时钟边沿被加载为 TBUF 中的数据字 ( 如果发送有效 ),或被加载为由位 SCTR.PDL 定义的电平 ( 如果 在发送开始时TBUF的内容还不是有效的)。在这两种情况下,TBUF的内容都不改变。 用于数据验证的控制和状态位位于寄存器 TCSR 中。数据验证基于 图 15-18 所示的逻辑 块。 参考手册 USIC, V2.10 15-28 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) TCSR TDVTR DX2T 移位控制输入 DX2 DX2S 传送触发 传送门控 TCSR TE TDV 数据移位单元 DSU TBUF 数据确认 TDEN TCSR TDSSM TCSR USIC_TDV_ 图 15-18 发送数据验证 • 传送门控逻辑在软件或硬件控制下使能或禁止从 TBUF 发送数据。如果数据移位不需 要使用输入级 DX2,则信号 DX2S 可用于门控目的。传送门控逻辑由位域 TCSR.TDEN 控制。 • 传送触发逻辑支持与事件相关的数据字传送,例如基于定时器的事件或与输入引脚相 关的事件。如果数据移位不需要使用输入级 DX2,则信号 DX2T 可用于触发目的。传 送触发逻辑由位 TCSR.TDVTR 控制,触发事件的发生由位 TCSR.TE 指示。例如, 在 RS-232 协议中,在 DX2 上收到清除发送 (CTS) 信号这一事件可以用来触发数据 传送。 • 数据验证逻辑将来自门控逻辑、触发逻辑和 DSU 的输入信号组合在一起。只有在门 控逻辑允许启动,位 TCSR.TDV = 1 且位 TCSR.TE = 1 的情况下,位于 TBUF 中的 数据字的发送才能被启动。 当发送缓冲器 TBUF 的内容为发送有效时,不应用新数据覆盖 TBUF,并且这时可以 启动一次新的发送。如果 TBUF 的内容必须被更改时,建议在更新数据前通过设置 FMR.MTDV = 10B 来清除 TCSR.TDV 位。当 TBUF 被新数据更新时,位 TCSR.TDV 被自动置位。另一种可能是用中断 TBI ( 对于 ASC 和 IIC) 或 RSI ( 对于 SSC 和 IIS) 来指示一次发送已经开始。当发送正在进行时,可以向 TBUF 加载新数据。在这种情 况下,用户必须注意要在一次新的发送开始之前更新 TBUF 的内容。 采用这种结构,可以实现下述数据传送功能: • 如果位 TCSR.TDSSM = 0,发送缓冲器 TBUF 的内容总是被视为发送有效。传送触 发机制可用于根据所选择的事件 ( 例如基于定时器的事件或一个引脚的边沿 ) 来启动 对同一数据字的发送,以实现一种生命体征机制。此外,在从模式下,该机制可以确 保总是发送正确的数据字,而不是被动数据电平。 • 为了能使用一种单次机制逐字地进行数据发送,必须将位 TCSR.TDSSM 编程为 1。 在每次发送开始之后,必须向发送缓冲器 TBUF 加载一个新数据字。可以通过软件写 一个发送缓冲器输入单元 TBUFx 的方式加载新数据,也可以通过一个可选的数据缓 参考手册 USIC, V2.10 15-29 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 冲区 ( 例如 FIFO 缓冲区 ) 加载。为了避免数据字被发送多次,或允许使用额外的数 据缓冲区进行数据处理,位 TCSR.TDSSM 必须为 1。 • 当一个新数据字被加载到发送缓冲器 TBUF 时,位 TCSR.TDV 自动变为置位状态, 此时可以通过将待发送数据写入到一个发送缓冲器输入单元 TBUFx(至少是低字节) 来请求开始一次发送。额外的信息 TCI 可用于控制数据字长度或每个数据字独立的其 他参数,仅需一次写访问即可。 • 位域 FMR.MTDV 允许用软件修改 ( 置位或清除 ) 位 TCSR.TDV。将该位域与门控控 制位域 TCSR.TDEN 一起使用,用户可以设置发送数据字,而不启动发送。一种可能 的编程顺序是:设置TCSR.TDEN = 00B,写数据到 TBUFx,通过写 FMR.MTDV = 10B 来清除 TCSR.TDV,通过设置 TCSR.TDEN = 01B 重新使能门控,然后在软件控制下 通过写 FMR.MTDV = 01B 置位 TCSR.TDV。 15.2.6 操作接收数据通路 接收数据通路基于两组 16 位宽的接收移位寄存器 RSR0[3:0] 和 RSR1[3:0],以及每组一 个接收缓冲器 (RBUF0 和 RBUF1)。发送和接收共同的数据传送参数,如数据字的长度、 数据帧长度或移位方向,由移位控制寄存器 SCTR 控制。 寄存器 RBUF01SR 监视 RBUF0 和 RBUF1 的状态。 15.2.6.1 接收缓冲 接收移位寄存器不能被软件直接访问,但如果一个完整的数据字已被接收或一个完整的 数据帧已经结束,则接收移位寄存器的内容被自动加载到接收缓冲器寄存器 RBUF0 ( 或 RBUF1 )。可以从寄存器 RBUF 以正确的顺序直接读取 RBUF0 或 RBUF1 中的接收数据 字,也可以选择从 FIFO 缓冲区级读取 ( 见 页 15-33)。 参考手册 USIC, V2.10 15-30 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 移位数据输入 移位时钟输入 移位控制输入 移位时钟域 移位控制 和状态 RSR0 RSR1 RSR0 的状态 RSR1 的状态 16 数据 16 数据 RBUF01 RBUF01 SRL SRH RBUF0 RBUF1 接收控制 系统时钟域 RBUFSR RBUF US IC_DS URec ei v e 图 15-19 接收数据通路 15.2.6.2 接收数据移位模式 通过使用相应数量的输入级和数据输入线,可以选择每次移入 1 位、 2 位或 4 位接收数 据。该选项允许 USIC 支持如 2 位和 4 位 SSC 这样的协议。这种选择通过移位控制寄存 器 SCTR 中的位域 DSM 实现。 注: 位域 SCTR.DSM 控制发送和接收通路的数据移位模式,以允许通过一到四个数据 线来发送和接收数据。 对于具有两位或者四位并行数据输入的移位模式,数据字和帧的长度必须分别是二或四 的整数倍。 因此,输入一个特定的数据字或数据帧长度所需要的数据移位次数被减少到 数据字或数据帧长度除以并行数据输入线数。例如,要通过 4 个输入线接收一个 16 位的 数据字,仅需 4 次移位。 参考手册 USIC, V2.10 15-31 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-8 根据移位模式列出了使用不同位组合的不同接收移位寄存器。请注意,表中的 ‘n’ 表示移位次数减一,即第一次数据移位 n = 0,第二次数据移位 n = 1,以此类推,直到 达到总移位次数减一。 对于所有的接收移位寄存器,移出的第一位是 MSB还是LSB取决于 SCTR.SDIR的设置。 表 15-8 接收移位寄 存器 RSRx0 RSRx1 RSRx2 RSRx3 接收移位寄存器组成 使用的输入 级 DX0 DX3 DX4 DX5 单数据输入 (SCTR.DSM = 00B) 所有数据位 未使用 未使用 未使用 双数据输入 (SCTR.DSM = 10B) 位 n*2 位 n*2 + 1 未使用 未使用 四数据输入 (SCTR.DSM = 11B) 位 n*4 位 n*4 + 1 位 n*4 + 2 位 n*4 + 3 15.2.6.3 波特率约束 必须遵守下面的波特率约束,以确保正确的数据接收和缓冲。当根据模块时钟频率 fPB 来 选择波特率和数据字长度时,用户必须注意这些限制。 • 为了确保正确地加载接收缓冲寄存器 RBUFx,相关的接收移位寄存器 RSRx[3:0] 中 的接收数据字必须保持不变至少 4 个 fPB 周期。 • 为了正确地检测到一个帧的结束,在两个连续帧之间,移位控制信号必须保持非活动 状态不变至少 5 个 fPB 周期。 • 为了正确地检测一个帧 ( 最短帧 ),移位控制信号必须保持活动状态不变至少一个 fPB 周期。 • 必须保证移位控制信号相对于移位时钟信号的最小建立和保持时间。 15.2.7 硬件端口控制 硬件端口控制是为具有半双工配置的 SSC 协议而准备的,以通过一个专用的硬件接口来 控制引脚的方向。在这种情况下,一个端口引脚可用于输入和输出数据两种功能。除了 输入拉器件选择和输出驱动器类型 ( 漏极开路或推挽 ) 以外, Pn_IOCRy.PCx 中的所有 设置都由硬件端口控制来管理。 输入拉器件的选择通过前面提到的 Pn_IOCRy.PCx 完成,而输出驱动器在该模式下被固 定为推挽方式。 通过硬件端口控制可以选择一个、两个或四个端口引脚,以支持使用多个双向数据线的 SSC 协议,如双位和四位 SSC。这种选择和硬件端口控制的使能 / 禁止是通过 CCR.HPCEN 实现的。所有选定引脚的方向通过单个位 SCTR.HPCDIR 控制。 在每次数据字传送开始时, SCTR.HPCDIR 被自动屏蔽,这是为了防止在一次数据字传 送中间改变引脚的方向。 参考手册 USIC, V2.10 15-32 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.8 操作 FIFO 数据缓冲区 USIC 模块的 FIFO 数据缓冲区都以类似的方式构建,每个通道都有发送缓冲区和接收缓 冲区能力。不同型号器件的可用 FIFO 缓冲区区域可能不同。在 XMC1300 中,共有 64 个缓冲区项,可以分布在 USIC 模块的两个通道的发送或接收 FIFO 缓冲区。 O UTR 缓存的 接收数据 Receive FIFO 发送数据 INx 用户 接口 USICx_C0 Transmit FIFO Bypass 接收数据 缓存的 发送数据 RBUF 数据 移位 单元 (DSU) TBUF 移位数据输入 移位数据输出 O UTR 缓存的 接收数据 Receive FIFO 发送数据 INx USICx_C1 Transmit FIFO Bypass 图 15-20 FIFO 缓冲区概览 接收数据 缓存的 发送数据 RBUF 数据 移位 单元 (DSU) TBUF 移位数据输入 移位数据输出 US IC_FIFO B i di rec t 为了操作 FIFO 数据缓冲区,必须要考虑以下问题: • FIFO 缓冲区的可用性和选择: 如果 CCFG.TB = 1,则发送 FIFO 缓冲区和旁路结构是唯一可用的,而如果 CCFG.RB = 1,则接收缓冲区是唯一可用的。 建议在该 USIC 通道没有数据通信并且通过设置 TBCTR.SIZE = 0 ( 对发送缓冲区 ) 或 RBCTR.SIZE = 0 ( 对接收缓冲区 ) 禁止了 FIFO 机制时配置所有的缓冲区参数。必须 在相应的 FIFO 缓冲区被禁止时通过写 TBCTR 或 RBCTR 来分配一个缓冲区。FIFO 缓冲中断控制位的修改与数据通信无关。 • FIFO 缓冲区设置: 可用的 FIFO 缓冲区项的总数量限制了每个 USIC 通道发送和接收缓冲区的长度。 • 旁路设置: 除了发送 FIFO 缓冲区之外,还可以对旁路机制进行配置,见 页 15-42 的描述。 参考手册 USIC, V2.10 15-33 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.8.1 FIFO 缓冲区划分 如果可用的话, FIFO 缓冲区由指定数量的 FIFO 缓冲项组成,每项都包含一个数据部分 和相关联的控制信息 ( 用于接收数据的 RCI,用于发送数据的 TCI)。一个 FIFO 缓冲项代 表可被分配到一个接收 FIFO 缓冲区或发送 FIFO 缓冲区的最小粒度。一个 USIC 模块的 所有可用 FIFO 缓冲项在 FIFO 缓冲区中是连续排列的。总体计数从 FIFO 项 0 开始,然 后是 1、 2 等等。 每个 USIC 模块都有一定数量的 FIFO 项可用,这些 FIFO 项可被分配给同一 USIC 模块 的多个通道。不可能将 FIFO 缓冲区分配给不在同一 USIC 模块的 USIC 通道。 对于每个 USIC 通道,可以独立地选择发送和接收 FIFO 缓冲区的大小。例如,可以将全 部可用的 FIFO 项都作为一个 USIC 通道的发送缓冲区来分配。 FIFO 缓冲区划分的一些 可能情况如图 15-21 所示。 每个 FIFO 缓冲区由一组连续的 FIFO 项组成。一个 FIFO 数据缓冲区的大小只能被编程 为 2 的整数次幂,从 2 个 FIFO 项开始,然后是 4 个 FIFO 项,接着是 8 个 FIFO 项,以 此类推。一个 FIFO 数据缓冲区只能从一个与其大小对齐的 FIFO 项开始。例如,一个包 含 n 个 FIFO 项的 FIFO 缓冲区只能从 FIFO 项 0,n、2*n、3*n 等开始,由 FIFO 项 [x*n, (x+1)*n-1] 组成,其中 x 是一个整数 ( 包括 0)。在一个 FIFO 缓冲区中不可能存在由未使 用的 FIFO 项构成的 “ 洞 ”,但在两个 FIFO 缓冲区之间可以有未使用的 FIFO 项。 可用的缓冲区 区域 通道 1 的发送 数据区域 通道 1 的接收 数据区域 通道 0 的发送 数据区域 通道 0 的接收 数据区域 可用的缓冲区 区域 通道1的发送 数据区域 未使用的 缓冲区项 通道 0 的接收 数据区域 可用的缓冲区 区域 通道 0 的发送 数据区域 通道 0 的接收 数据区域 可用的缓冲区 区域 通道 1 的发送 数据区域 通道 0 的发送 数据区域 情况 1 情况 2 情况 3 情况 4 USIC_FifoPart 图 15-21 FIFO 缓冲区划分 FIFO 缓冲区内部的数据存储是基于指针的。只要 FIFO 缓冲区的数据内容被修改,指针 就会被内部更新。当新数据被放入一个 FIFO 缓冲区或最老的数据被从 FIFO 缓冲区移走 时,指针更新会自动发生。其结果是,用户程序在处理数据时不需要修改指针。 只能在 初始化阶段定义 FIFO 缓冲区的起始项,这可通过向寄存器 RBCTR( 对于接收 FIFO 缓冲 区 ) 或 TBCTR ( 对于发送 FIFO 缓冲区 ) 中的相应位域 DPTR 写 FIFO 缓冲区的第一个 FIFO 缓冲项的序号来实现,应在该写操作发生之前将相关位域设置为 RBCTR.SIZE=0( 或 TBCTR.SIZE = 0,分别对应 )。当一个 USIC 通道正在进行数据通信时,不允许为相 关的 FIFO 缓冲区分配缓冲项 ( 关于大小和指针 )。 参考手册 USIC, V2.10 15-34 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.8.2 发送缓冲区事件和中断 发送 FIFO 缓冲区机制检测到以下事件时会产生中断 ( 如果被使能 ): • 标准发送缓冲区事件 • 发送缓冲区错误事件 标准发送缓冲区事件 当发送缓冲区的填充水平 ( 由 TRBSR.TBFLVL 给出 ) 超过 (TBCTR.LOF = 1) 或低于 (TBCTR.LOF = 0)1) 一个编程极限值 (TBCTR.LIMIT) 时,标准发送缓冲区事件被触发。 如果具有TRBSR.STBT功能的事件触发被禁止 (TBCTR.STBTEN = 0),则标准发送缓冲 区事件的触发基于从等于到低于或高于的转变,而非实际的低于或高于。 如果 TBCTR.STBTEN = 1,则填充水平低于或者高于编程极限值的转变还会置位 TRBSR.STBT。每当发生一个数据传送到 TBUF 的事件或写数据到 INx 的事件时,该位 还会触发标准发送缓冲区事件,这取决于 TBCTR.LOF 的设置。 清除 TRBSR.STBT 的方式取决于触发模式 ( 由 TBCTR.STBTM 选择 )。如果 TBCTR.STBTM = 0,那 么 当 缓 冲 区 填 充 水 平 再 一 次 等 于 编 程 的 极 限 值 时 (TRBSR.TBFLVL = TBCTR.LIMIT), TRBSR.STBT 被 硬 件 清 除。若 TBCTR.STBTM = 1,则 当 缓 冲 区 填 充 水 平 等 于 缓 冲 区 大 小 的 时 候 (TRBSR.TBFLVL = TBCTR.SIZE), TRBSR.STBT 被硬件清除。 注: 只有当发送缓冲区填充水平超过或低于编程的极限值时 ( 取决于 TBCTR.LOF 的设 置 ),标志 TRBSR.STBI 才被置位。由 TRBSR.STBT 触发的标准发送缓冲器事件 不置位该标志。 图 15-22 示出了具有不同 TBCTR.STBTEN 和 TBCTR.STBTM 设置的标准发送缓冲器事 件的例子。这些例子的目的在于说明硬件的行为,可能并不真正代表实际的应用用例。 1) 如果标准发送缓冲区事件用于指示必须向 一个 INx 单元写入新数据,则应该编程为 TBCTR.LOF = 0。 参考手册 USIC, V2.10 15-35 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 因TBFLVL 从 3变为 2 而产 生一个中断。 STBI 被置位。 中断得到服务,并且使用下 2 个数据字填充 FIFO 。 示例 1: TBCTR设置: SIZE = 8 LIMIT = 3 LOF = 0 STBTEN = 0 STBTM = 0 每个标准缓冲区 D0 事件中断向 FIFO 写2个数据字。 D1 D2 TBFLVL = 3 STBI = 0 STBT = 0 … ... D0 D1 D2 TBFLVL = 2 STBI = 1 STBT = 0 TBUF INx D1 D2 D3 TBFLVL = 3 STBI = 0 STBT = 0 D1 D2 D3 INx D4 TBFLVL = 4 STBI = 0 STBT = 0 … ... 因TBFLVL 从 3变为 2 而产 生一个中断。 STBI 被置位。 用于该中断仍处于挂起状 态,在STBT=1期间因加载 TBUF而导致的中断无效。 中断得到服务,并且使用下 当 TBFLVL = LIMIT时, 2 个数据字填充 FIFO 。 STBT 被清零。 示例 2: TBCTR 设置: SIZE = 8 LIMIT = 3 LOF = 0 STBTEN = 1 STBTM = 0 每个标准缓冲区 D0 事件中断向 FIFO 写 2 个数据字。 D1 D2 TBFLVL = 3 STBI = 0 STBT = 0 … ... D0 D1 D2 TBFLVL = 2 STBI = 1 STBT = 1 TBUF D1 D2 TBFLVL = 1 STBI = 1 STBT = 1 TBUF INx D2 D3 TBFLVL = 2 STBI = 0 STBT = 1 D2 D3 INx D4 TBFLVL = 3 STBI = 0 STBT = 0 … ... 因TBFLVL 从 3变为 2 而产 生一个中断。 STBI 被置位。 中断得到服务,并且使用下 6 个数据字填充 FIFO 。 示例 3: TBCTR 设置: SIZE = 8 LIMIT = 3 LOF = 0 STBTEN = 1 STBTM = 1 每个标准缓冲区 D0 事件中断向 FIFO 写 6 个数据字。 D1 D2 TBFLVL = 3 STBI = 0 STBT = 0 D0 D1 D2 TBFLVL = 2 STBI = 1 STBT = 1 TBUF INx D1 D2 D3 TBFLVL = 3 STBI = 0 STBT = 1 图 15-22 标准发送缓冲器事件示例 … ... … ... INx D1 D2 D3 D4 D5 D6 D7 TBFLVL = 7 STBI = 0 STBT = 1 当 TBFLVL = SIZE时, STBT 被清零。 D1 D2 D3 D4 D5 D6 D7 INx D8 TBFLVL = SIZE STBI = 0 STBT = 0 … ... … ... 发送缓冲区错误事件 当软件向一个已满缓冲区写入时会触发发送缓冲器错误事件。所写值被忽略。 发送缓冲区事件和中断处理 图 15-23 示出了发送缓冲区事件和中断。 参考手册 USIC, V2.10 15-36 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) TBCTRH LOF TRBSCR TRBSRL TBCTRH 清除 CSTBI STBI STBIEN 发送数据到 TBUF 事件 写数据到 INx 事件 极限值等于 TBFLVL 置位 标准发送 缓冲区中断 0 标准发送 & 缓冲区事 1 件 TRBSCR TRBSRL TBCTRH 清除 CTBERI TBERI TBERIEN 发送缓冲区 错误事件 (向已满缓冲区写入 ) 置位 发送缓冲区 错误中断 TBCTRH STBINP 2 ... SR... 0 SR3 TBCTRH ATBINP 2 ... SR0 ... SR3 USIC_TBInts 图 15-23 发送缓冲区事件 表 15-9 列出了一个 USIC 通道中用于指示发送缓冲区事件和控制与发送 FIFO 缓冲区相 关中断的寄存器、位和位域。 表 15-9 事件 发送缓冲区事件和中断处理 指示标志 标准发送缓冲区事件 发送缓冲区错误事件 TRBSR. STBI TRBSR. STBT TRBSR. TBERI 指示清除位 TRBSCR. CSTBI 由硬件清除 TRBSCR. CTBERI 中断使能位 TBCTR. STBIEN TBCTR. TBERIEN SRx 输出选 择位 TBCTR. STBINP TBCTR. ATBINP 15.2.8.3 接收缓冲区事件和中断 接收 FIFO 缓冲区机制检测到以下事件时会导致产生中断 ( 如果被使能 ): 参考手册 USIC, V2.10 15-37 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 标准接收缓冲区事件 • 备用接收缓冲区事件 • 接收缓冲区错误事件 标准接收缓冲事件和备用接收缓冲事件可以编程为两种不同的模式,一种方式涉及接收 缓冲区的填充水平,另一种方式与 OUTR 中变为可用数据字的接收控制信息 RCI 中一个 位的位置有关。 如果中断的产生与接收 FIFO 缓冲区的填充水平相关,则只能使用标准接收缓冲区事件, 而不能使用备用接收缓冲区事件。可以选择使用这种模式来指示已经收到一定数量的数 据,与相关联的 RCI 的内容无关。 如果中断的产生与 RCI 相关,则不考虑填充水平。每当在 OUTR 中有新数据变为可用 时,就会检测到一个事件。如果位 RCI[4] = 0,会报告一个标准接收缓冲区事件,否则会 报告一个备用接收缓冲区事件 (RCI[4] = 1)。根据所选择的的协议和 RBCTR.RCIM 的设 置,RCI[4] 的值可以保持不同的信息,该信息可用于协议特有的中断处理 ( 更详细的信息 请见描述协议的各节 )。 填充水平模式下的标准接收缓冲区事件 在填充水平模式 (RBCTR.RNM = 0),当接收缓冲区的填充水平1)( 由 TRBSR.RBFLVL 给 出 ) 超过 (RBCTR.LOF = 1) 或低于 (RBCTR.LOF = 0) 一个编程极限值 (RBCTR.LIMIT) 时,标准接收缓冲区事件被触发。 如果具有位 TRBSR.SRBT 功能的事件触发被禁止 (RBCTR.SRBTEN = 0),那么标准接 收缓冲区事件的触发基于填充水平从等于到低于或高于极限值的转变,而非实际的低于 或高于。 如果 RBCTR.SRBTEN = 1,则填充水平低于或高于编程极限值的转变还会将 TRBSR.SRBT 置位。每当发生一个数据读出事件或新数据接收事件时,该位还会触发标 准接收缓冲区事件,具体取决于 RBCTR.LOF 的设置。 清除 TRBSR.SRBT 的方式取决于触发模式 ( 由 RBCTR.SRBTM 选择 ) 。如果 RBCTR.SRBTM = 0,当缓冲区填充水平再次等于编程极限值 (TRBSR.RBFLVL = RBCTR.LIMIT) 时,TRBSR.SRBT 被硬件清除。如果 RBCTR.SRBTM = 1,则当缓冲区 填充水平等于 0 (TRBSR.RBFLVL = 0) 时, TRBSR.SRBT 被硬件清除。 注: 仅当接收缓冲区填充水平超过或低于编程设定的极限值 ( 取决于 RBCTR.LOF 的设 置 ) 时,标志 TRBSR.SRBI 才被置位。由 TRBSR.SRBT 触发的标准接收缓冲区 事件不置位该标志。 图 15-24 示出了具有不同 RBCTR.SRBTEN 和 RBCTR.SRBTM 设置的标准接收缓冲区 事件的例子。这些示例的目的在于说明硬件的行为,可能不真正代表实际应用的用例。 1) 如果标准接收缓冲区事件用于指示必须从 OUTR 中读出新数据,则应该编程为 RBCTR.LOF = 1。 参考手册 USIC, V2.10 15-38 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 因 RBFLVL 从 1 变为 2 而产 生一个中断。SRBI 被置位。 中断得到服务,2 个数据被从OUTR 读出。 示例 1: RBCTR 设置: SIZE = 8 LIMIT = 1 LOF = 1 SRBTEN = 0 SRBTM = 0 D2 D1 D0 RBFLVL = 1 SRBI = 0 SRBT = 0 D03 D12 D213 D21 RBUF D32 D30 D0 RBFLVL = 2 SRBI = 1 SRBT = 0 D431 D1 RBFLVL = 1 SRBI = 0 SRBT = 0 RBFLVL = 0 SRBI = 0 SRBT = 0 因 RBFLVL 从 1 变为 2 而产 生一个中断。SRBI 被置位。 在该中断被挂起期间, FIFO 继续接收数据。 中断得到服务,2 个数 据被从OUTR 读出。 由于在SRBT=1 期间 发生了FIFO数据接收 事件而产生了中断。 示例 2: RBCTR 设置: SIZE = 8 LIMIT = 1 LOF = 1 SRBTEN = 1 SRBTM = 0 D12 D21 D30 RBFLVL = 1 SRBI = 0 SRBT = 0 D03 D12 D21 D30 RBFLVL = 2 SRBI = 1 SRBT = 1 RBUF D4 D03 D12 D21 D30 RBFLVL = 4 SRBI = 1 SRBT = 1 RBUF RBUF D0, D1 D07 D16 D2507 D342507 D13 D2 RBFLVL = 2 SRBI = 0 SRBT = 1 D07 D16 D2507 D342507 D4 D13 D2 RBFLVL = 3 SRBI = 0 SRBT = 1 中断得到服务,2 个数据被 从 OUTR 读出。因为现在 RBFLVL=LIMIT,所以 SRBT 被清零 因 RBFLVL 从 1 变为 2 而产生一个中断。SRBI 和 SRBT 被置位。 中断得到服务,2 个数据被从 OUTR 读出。由于RBFLVL= LIMIT, SRBT 也被清零。 … ... RBUF … ... … ... 图 15-24 … ... D2, D3 D07 D16 D25 D34 RBFLVL = 1 SRBI = 0 SRBT = 0 D15 RBUF D24 D4 D5 D5 RBFLVL = 2 SRBI = 1 SRBT = 1 RBFLVL = 0 SRBI = 0 SRBT = 0 对于 SRBTM = 1的情况, SRBT 保持置位状态,直到条件 RBFLVL=0 满足。 当 SRBT=1时,每当 FIFO 接收到数据时(LOF=1)就会产生标准接收中断。 标准接收缓冲区事件示例 RBFLVL = 0 SRBI = 0 SRBT = 0 RCI 模式下的标准和备用接收缓冲区事件 在 RCI 模式 (RBCTR.RNM = 1),当 OUTR 级被一个 RCI[4] = 0 的新数据更新时,标准 接收缓冲区事件被触发。 如果 OUTR 级被一个 RCI[4] = 1 的新数据值更新,则备用接收缓冲区事件被触发。 参考手册 USIC, V2.10 15-39 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 接收缓冲区错误事件 如果软件从一个空缓冲区读取数据,则无论 RBCTR.RNM 为何值,都会触发一个接收缓 冲区错误事件。所读数据无效。 接收缓冲区事件和中断处理 图 15-25 示出了填充水平模式下的接收缓冲区事件和中断。 RBCTR LOF TRBSCR TRBSR 清除 CSRBI SRBI 置位 数据读出事件 0 & 收到新数据事件 1 极限值等于 RBFLVL & RBCTR SRBTEN TRBSR Set SRBT RBFLVL 等于 0 0 1 RBCTR Clear SRBTM RBCTR RBCTR STBIEN SRBINP 2 ≥1 ... SR... 0 SR5 标准接收缓 标准接收 冲区事件 缓冲区中断 接收缓冲区 错误事件 ( 从空接收缓冲区读 ) TRBSCR TRBSR 清除 CRBERI RBERI RBCTR RBERIEN 置位 接收缓冲区 错误中断 RBCTR ARBINP 2 ... SR... 0 SR5 USIC _RBRNM0 图 15-25 填充水平模式下的接收缓冲区事件 图 15-26 示出了 RCI 模式下的接收缓冲区事件和中断。 参考手册 USIC, V2.10 15-40 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) OUTR RCI[4] 新数据进入 OUTR 事件 TRBSCR TRBSR 清除 CSRBI SRBI RBCTR SRBIEN 置位 标准接收 0 缓冲区事件 1 备用接收 缓冲区事件 标准接收 缓冲区中断 备用接收 缓冲区中断 清除 CARBI TRBSCR 置位 ARBI TRBSR ARBIEN RBCTR RBCTR SRBINP 2 ... SR0 ... SR5 ... 2 ARBINP RBCTR SR... 0 SR5 接收缓冲区 错误事件 (从空缓冲区读 ) TRBSCR TRBSR 清除 CRBERI RBERI RBCTR RBERIEN 置位 接收缓冲区 错误中断 2 ... SR... 0 SR5 USIC _RBRNM1 图 15-26 RCI 模式下的接收缓冲区事件 表 15-10 列出一个 USIC 通道中用于指示接收缓冲区事件和控制与接收 FIFO 缓冲区相关 中断的寄存器、位和位域。 表 15-10 事件 接收缓冲区事件和中断处理 指示标志 标准接收缓冲区事件 备用接收缓冲区事件 接收缓冲区错误事件 TRBSR. SRBI TRBSR. SRBT TRBSR. ARBI TRBSR. RBERI 指示清除位 TRBSCR. CSRBI 由硬件清除 TRBSCR. CARBI TRBSCR. CRBERI 中断使能位 RBCTR. SRBIEN RBCTR. ARBIEN RBCTR. RBERIEN SRx 输出选 择位 RBCTR. SRBINP RBCTR. ARBINP RBCTR. ARBINTXDP 参考手册 USIC, V2.10 15-41 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.2.8.4 FIFO 缓冲区旁路 数据旁路机制是发送 FIFO 控制块的一部分。它允许在数据流中引入一个数据字,而不需 要修改发送 FIFO 缓冲区的内容,例如发送一个高优先级的消息。旁路结构由寄存器 BYP 中的一个旁路数据字 ( 最大为 16 位 ) 和寄存器 BYPCR 中的一些相关控制信息构成。例 如,这些位定义旁路数据字的字长,配置与发送缓冲器 TBUF 类似的传送触发和门控机 制。 旁路数据字可以由位 BYRCR.BDV ( 旁路数据有效 ) 标记为发送有效或无效。数据流相关 和事件相关判据的组合定义旁路数据字是否被视为发送有效。数据验证逻辑检查这个数 据字的起始条件。根据检查结果不同,发送缓冲区寄存器 TBUF 按下面的规则被加载为 不同的值: • 如果 TCSR.TDV = 0(TBUF 为空 ),来自发送 FIFO 缓冲区的数据或旁路数据只能被 传送到 TBUF 。 • 如果通过 BYPCR.BDEN 使能了旁路功能,或者满足选定的门控条件,则旁路数据只 能被传送到 TBUF 中。 • 如果旁路数据为发送有效,并且具有比 FIFO 数据更高的发送优先级,或者如果发送 FIFO 为空,则旁路数据被传送到 TBUF。 • 如果用于传输旁路数据是有效的,且具有比包含有效数据的 FIFO 缓冲区更低的发送 优先级,那么最早传输到 FIFO 的数据被传输到 TBUF 中。 • 如果旁路数据为发送有效,并且 FIFO 缓冲区包含有效数据,则最早的 FIFO 数据被 传送到 TBUF。 • 如果旁路数据为发送无效,并且 FIFO 缓冲区也不包含有效数据,则 TBUF 保持不变。 旁路数据验证基于如图 15-27 所示的逻辑块。 • 发送门控逻辑在软件或硬件控制下使能或禁止旁路数据字传送到 TBUF。如果数据移 位不需要输入级 DX2,则信号 DX2S 可用于门控目的。传送门控逻辑由位域 BYPCR.BDEN 控制。 • 传送触发逻辑支持与事件相关的数据字传送,例如基于定时器的事件或与一个输入引 脚相关的事件。如果数据移位不需要输入级 DX2 ,则信号 DX2T 可用于触发目的。 传送触发逻辑由位 BYPCR.BDVTR 控制。 • 旁路数据验证逻辑将来自门控逻辑、触发逻辑和 TCSR.TDV 的输入组合起来进行检 查。 参考手册 USIC, V2.10 15-42 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) BYPCR BDVTR DX2T Shift Control Input DX2 DX2S 传送触发 传送门控 BYPCR BDV TBUF TDV 旁路数据 确认 BDEN BYPCR BDSSM BYPCR USIC_BDV 图 15-27 旁路数据验证 利用这种结构,可实现以下旁路数据传送功能: • 对于单次触发机制,必须编程为位 BYPCR.BDSSM= 1 。 每次将旁路数据字传送到 TBUF 后,必须将旁路数据字再次标记为有效。这可以通过向 BYP 写入一个新的旁路 数据字来实现;如果 BDVTR = 1,也可以通过 DX2T 来实现 ( 例如基于一个定时器或 一个引脚上的边沿触发 ) • 如果旁路数据为永久性发送有效,则必须编程为位 BYPCR.BDSSM = 0 ( 例如,如果 数据 FIFO 为空,可作为备用数据 )。 15.2.8.5 FIFO 访问限制 共享 FIFO 缓冲区中的数据由每个通信通道的数据传送硬件机制访问 ( 发送和接收 ),由 软件读出接收的数据或写入要发送的数据。因此,数据传输速率受 FIFO 机制限制。硬件 对 FIFO 缓冲区的每次访问都优先于软件访问。在发生访问冲突的情况下,软件访问会被 延迟。 为了避免因软件访问被延迟而引起 CPU 的数据丢失和阻塞,必须要考虑波特率、字长和 软件访问机制。对 FIFO 数据缓冲区的每一次软件或硬件访问都需要一个 fPB 周期。尤其 是很短的连续流、连续数据字会导致访问限制。 15.2.8.6 FIFO 发送控制信息的处理 除了发送数据之外,还可以将发送控制信息 TCI 从发送 FIFO 或旁路结构传送到 USIC 通 道。根据所选择的的协议和所使能的更新机制不同,一些 USIC 通道的参数设置可以修 改。这种修改是通过将 FIFO 数据字的 TCI 加载到 TBUF 来实现的,如果旁路数据被加 载到 TBUF 中,则由旁路控制信息修改。 • TCSR.SELMD = 1:由 FIFO TCI 或 BYPCR.BSELO 更新 PCR.CTR[20:16],另外还 清除 PCR.CTR[23:21] 参考手册 USIC, V2.10 15-43 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • TCSR.WLEMD = 1:由 FIFO TCI 或 BYPCR.BWLE 更新 SCTR.WLE 和 TCSR.EOF ( 如果 WLE 信息被 TCI 或 BWLE 覆盖,则用户必须注意相应地设置 FLE) • TCSR.FLEMD = 1:由 FIFO TCI 或 BYPCR.BWLE 更新 SCTR.FLE[4:0],另外还清 除 SCTR.FLE[5] • TCSR.HPCMD = 1:由 FIFO TCI 或 BYPCR.BHPC 更新 SCTR.DSM 和 SCTR.HPCDI • TCSR.WAMD = 1:由 FIFO TCI[4] 更新 TCSR.WA 有关 TCI 更详细的信息,见 15.2.5.3 节。 FIFO / 旁路 BDATA 16 发送 FIFO 16 5 TCI 旁路控制 BSEL0 5 0 BWLE 4+ 1 0 TCI[2:0] BHPC 3 TCI[4] 图 15-28 使用 FIFO / 旁路结构的 TCI 处理 USIC 通道 TBUF SELMD CTR[20:16] CTR[23:21] WLEMD WLE , EOF FLEMD FLE[4:0] FLE[5] HPCMD DSM HPCDIR WAMD WA US IC_FIFO TCI 参考手册 USIC, V2.10 15-44 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3 异步串行通道 (ASC = UART) 异步串行通道 ASC 处理异步数据帧的接收和发送,并提供硬件 LIN 支持。接收器和发送 器是独立的,发送和接收数据帧可以在不同的时间点开始。通过设置 CCR.MODE = 0010B 和 CCFG.ASC = 1 (ASC 模式有效 ) 来选择 ASC 模式。 15.3.1 信号说明 一个 ASC 连接的特征在于一个发送器和一个接收器之间只使用一个信号连接线。接收器 输入信号 RXD 由输入级 DX0 处理。 ASC 模块 A DIN0 RBUF DX0 RXD RXD TBUF DOUT0 TXD TXD ASC模块 B DIN0 DX0 RBUF DOUT0 TBUF 传送控制 传送控制 fPB (ASC A) 波特率 发生器 波特率 发生器 fPB (ASC B) ASC_SignalsFd 图 15-29 全双工通信的 ASC 信号连接 对于全双工通信,每个传输方向都需要一条独立的通信线。图 15-29 示出了在通信伙伴 ASC A 和 ASC B 之间采用点对点全双工通信的一个例子。 对于半双工或多发送器通信,在通信伙伴之间共享一条通信线。图 15-30 示出了在 ASC A 和 ASC B 之间采用点对点半双工连接的一个例子。在这种情况下,用户必须注意在某 一时刻只能有一个发送器是活动的。为了支持发送器冲突检测,可使用输入级 DX1 来监 视发送线的电平,并检查该线是处于空闲状态还是发生了冲突。 有两种将接收器的输入 DIN0 连接到发送器的输出 DOUT0 的可能方式。通信伙伴 ASC A 使用一个只具有发送引脚 TXD 的内部连接,TXD 提供其输入值作为 RXD 给 DX0 输入 级用于接收,同时提供给 DX1 用于检查发送器冲突。通讯伙伴 ASC B 在两个引脚 TXD 和 RXD 之间使用一个外部连接。 参考手册 USIC, V2.10 15-45 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) ASC 模块 A RBUF DX0 DIN0 TBUF DOUT0 DX1 TXD RXD ASC模块 B DIN0 DX0 RBUF DOUT0 TXD DX1 TBUF 传送控制 传送控制 fPB (ASC A) 波特率 发生器 图 15-30 半双工通信的 ASC 信号连接 波特率 发生器 fPB (ASC B) ASC_SignalsHd 15.3.2 帧格式 一个标准的 ASC 帧如图 图 15-31 所示。它包括: • 具有信号电平 1 的空闲时间。 • 具有信号电平 0 的一个帧起始位 (SOF) 。 • 包含可编程数据位数 (1-63) 的数据域。 • 一个奇偶校验位 (P),可编程为偶校验或奇校验。可以选择不使用校验位进行帧处理。 • 具有信号电平 1 的一个或两个停止位。 1 空闲 帧起始 0 数据 校验 停止 空闲 1位 1-63 位 0-1 位 1-2 位 ASC_FrameFormat 图 15-31 标准的 ASC 帧格式 协议特有的位 (SOF, P, STOP) 由 ASC 协议状态机自动处理,不会出现在通过接收和发 送缓冲区的数据流中。 参考手册 USIC, V2.10 15-46 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3.2.1 空闲时间 接收器和发送器独立检查各自的数据输入线 (DX0, DX1) 是否闲置 。空闲检测确保一个 最近使能的 ASC 模块的 SOF 位不会与另一 ASC 模块已经运行的帧相冲突。 为了启动空闲检测,用户软件必须清除位 PSR.RXIDLE 和 / 或 PSR.TXIDLE,例如在选 择 ASC 模式之前或在运行过程中。当一次数据传送正在进行时,如果一个位被软件清 除,那 么 当 前 正 在 运 行 的 帧 传 送 会正常结束,然后再启动空闲检测。 仅当 PSR.RXIDLE = 1 时才可能进行帧接收;仅当 PSR.TXIDLE = 1 时才可能进行帧发送。 空闲检测的持续时间取决于位 PCR.IDM 的设置。在不可能发生冲突的情况下,该持续时 间可以缩短,甚至可以通过设置 PCR.IDM = 0,将总线声明为空闲。 在通过设置 PCR.IDM = 1 而使能了完整的空闲检测的情况下,如果检测到一定数量的连 续被动位时间,则 DX0 的数据输入被视为空闲 (PSR.RXIDLE 变为置位状态 )。同样的方 案适用于发送器的 DX1 数据输入。在此,如果检测到该输入信号的空闲状态,则位 PSR.TXIDLE 变为置位状态。 完整的空闲检测的持续时间由所编程的每帧数据位数加 2 ( 在没有奇偶校验的情况下 ) 或 加 3 ( 在有奇偶校验的情况下 ) 给出。在脱离停止模式或 ASC 模式被使能之后,从每次 检测到一个边沿开始重新启动对具有 1 电平的连续位时间的计数。 如果空闲检测位 PSR.RXIDLE 和 / 或 TXIDLE 被软件清除,该计数过程不会停止 ( 不会 从边沿开始处重新计数 )。因此,如果相应的输入线仍然符合空闲标准,则被清除的位可 以立即再次变成置位状态。 请注意,空闲时间检查是基于位时间的,因此,最大时间可以比编程值长 ( 但不能小于 )1 位的时间。 15.3.2.2 起始位检测 接收器输入信号 DIN0 ( 输入级 DX0 的选定信号 ) 检查何时出现一个下降沿。当出现一个 下降沿时,如果接收器空闲或该下降沿发生在最后一个停止位的采样点之后,则检测到 一个 SOF 位。为了提高抗噪声能力,从检测到第一个下降沿开始对 SOF 位计时。如果 采样的 SOF 位的值为 1,则认为前一下降沿是由噪声引起的,接收器再次视为空闲。 15.3.2.3 数据域 数据域的长度 ( 数据位数 ) 可由位域 SCTR.FLE 编程。它可以在 1 到 63 个数据位之间改 变,对应的 SCTR.FLE 值为从 0 到 62 ( 值 63 被保留,不能在 ASC 模式使用这个编程值 )。 数据域可包括多个数据字,例如 12 个数据位的一次传送可以分成两个 8 位字:将 12 个 数据位分割成第一个字的 8 位和第二个字的 4 位。用户软件必须注意:一旦一个帧已开 始发送,发送数据应及时可用。如果在一次正在运行的数据帧期间发送缓冲区为空,则 发送被动数据电平 (SCTR.PDL) 。 移位方向可由 SCTR.SDIR 编程。LSB 在先的这种 ASC 帧标准设置由默认设置 SDIR = 0 实现。 参考手册 USIC, V2.10 15-47 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3.2.4 奇偶校验位 ASC 允许基于帧为发送生成奇偶校验位和为接收检查奇偶校验位。奇偶校验的类型可由 位域 CCR.PM 选择,对发送和接收是相同的 ( 无校验、偶校验或奇校验 )。如果禁用奇偶 校验处理,则 ASC 帧不包含任何奇偶校验位。出于一致性的原因,所有通信伙伴都必须 被编程为相同的奇偶校验模式。 如果使能了奇偶校验位生成功能,发送器会在数据域的最后一个数据位之后自动发送其 计算的校验位。 接收器将该位解译为接收到的奇偶校验位,并将其与内部计算的奇偶位 进行比较。 接收到的奇偶位的值和奇偶校验的结果作为接收缓冲状态信息,在接收缓冲 器状态寄存器 RBUFSR 和 RBUF01SR 中被监视。这些寄存器包含用于监视协议相关参 数 (PAR) 的位和协议相关错误指示 (PERR) 的位。 15.3.2.5 停止位 每个 ASC 帧由 1 个 或 2 个具有信号电平 1 ( 与空闲电平相同的电平 ) 的停止位结束。停 止位的数量由位 PSR.STPB 编程。可以在最后一个停止位之后直接开始传送一个新的起 始位。 15.3.3 操作 ASC 为了操作 ASC 协议,必须考虑以下问题: • 选择 ASC 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 ASC 参数。必须 将位域 SCTR.TRM 编程为 01B 。输入级的配置必须在 CCR.MODE = 0000B 时完成, 以避免意外的输入信号边沿,然后可以通过设置 CCR.MODE = 0010B 来使能 ASC 模 式。 • 引脚连接: 通过设置 DX0CR.INSW = 0 建立输入级 DX0 与所选接收数据输入引脚 ( 信号 DIN0) 的连接,并配置一个发送数据输出引脚 ( 信号 DOUT0)。对于发送器的冲突或空闲检 测,还必须通过设置 DX1CR.INSW = 0 将输入级 DX1 所选择的发送输出引脚连接。 另外,还要编程 DX2CR.INSW = 0。 由于同步协议处理器对输入数据流的处理,必须考虑在输入级产生的同步传播延迟。 注意,使能备用输出端口功能的步骤只应在使能了 ASC 模式后完成,以避免在输出 端出现意外的尖峰。 • 位时间配置: 必须选择所期望的波特率设置,包括小数分频器、波特率发生器和位时间。请注意, 并非所有功能组合都能在同一时刻应用程序支持,例如由于传播延迟的原因。例如, 帧的长度受发送器 和接收器器件频率差的限制。 此外,为了使 用样本的平均值 (SMD = 1),采样点的选择必须考虑信号建立时间和数据传播时间。 • 数据格式配置: 必须根据应用需要,通过对寄存器 SCTR 编程来设置字长、帧长和移位方向。如果应 用需要,数据输入和输出信号可被反相。 另外,还必须配置奇偶校验模式 (CCR.PM)。 参考手册 USIC, V2.10 15-48 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3.3.1 位定时 在 ASC 模式,每一位 ( 包括协议位 ) 被划分成时间量子,这是为了提供子位范围内的时 间粒度,以调节采样点来满足不同应用的需求。每位的时间量子数目由位域 BRG.DCTQ 和由 BRG.PCTQ 给出的一个时间量子的长度定义。 在图 15-32 给出的例子中,一个位定时由 16 个时间量子组成 (BRG.DCTQ = 15)。建议 每个位时间被编程为不少于 4 个时间量子。 位域 PCR.SP 决定位值采样点的位置。 PCR.SP 的值不能被设置为大于 BRG.DCTQ 的 值。可以在每个位时间仅采样一次位值,也可以取多个样本的平均值。根据位 PCR.SMD 的设置不同,可以将当前输入值直接采样作为位值,也可以对在最后三个时间量子处的 输入采样值进行多数表决来确定位值。标准 ASC 位时间由 16 个时间量子构成,在第 8 个或 第 9 个时间量子之后进行采样并采用多数表决。 发送器和接收器的位定时设置 ( 时间量子的数目和采样点定义 ) 是统一的。由于有独立的 位定时逻辑块,接收器和发送器在其帧内部可以位于不同的时间量子或位位置。一个帧 的发送与时间量子的生成同步。 1 个位时间 PCR.SP = 15 PCR.SP = 8 时间量子 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SMD = 0 时的采样值 SMD = 1 时的采样值 A S C_B i tTi mi ng 图 15-32 ASC 位定时 如果冲突或空闲检测被使能 ( 通过 DX1 输入信号 ),则采样点的设置必须仔细调整,因为 驱动器延迟和一些外部延迟必须加以考虑。发送线的采样点必须被设置为一个使位电平 足够稳定的值,以进行评估。 如果采样点位于位时间的后期,那么信号本身有更多的时间变得稳定,但对发送器和接 收器的时钟频率差的鲁棒性降低。 15.3.3.2 波特率发生器 ASC 模式下的波特率 fASC 取决于每个位时间的时间量子数及其时序。波特率的设置只应 在发送器和接收器为空闲时改变。寄存器 BRG 中的位定义波特率的设置: • BRG.CTQSEL 定义用于时间量子产生的输入频率 fCTQIN 参考手册 USIC, V2.10 15-49 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • BRG.PCTQ 定义时间量子的长度 (fCTQIN 的 1、 2、 3 或 4 分频 ) • BRG.DCTQ 定义每个位时间的时间量子数 标准设置由 CTQSEL = 00B (fCTQIN = fPDIV) 和 PPPEN = 0 (fPPP = fPIN) 给出。在这些条件 下,波特率由下式给出: fASC = fPIN  1 PDIV + 1  1 PCTQ + 1  1 DCTQ + 1 (15.6) 为了产生较低的频率,还可以通过设置 CTQSEL = 10B (fCTQIN = fSCLK) 和 PPPEN = 1 (fPPP = fMCLK) 来选择两个额外的 2 分频级,这会导致: fASC = fPIN 22  1 PDIV + 1  1 PCTQ + 1  1 DCTQ + 1 (15.7) 15.3.3.3 噪声检测 ASC 接收器一直检查 DX0 级数据输入线的噪声 ( 这种检查与位 PCR.SMD 的设置无关 )。 如果参加多数表决的三个输入样本在同一个采样点的位值不完全相同,则位 PSR.RNS ( 接收器噪声 ) 变成置位状态。位 PSR.RNS ( 它必须由软件清零 ) 中的接收器噪声信息在 在多个位进行累加,如果由 PCR.RNIEN 使能,每当检测到噪声时可触发一个协议中断。 15.3.3.4 冲突检测 在有些应用中,例如在一条由多个发送设备共享的数据线上进行的数据传送 ( 见图 15-30),多个发送器有可能在同一数据输出线 TXD 上发送数据。为了避免多个发送器在 同一时刻处于活动状态而产生冲突,或允许一种仲裁, USIC 中实现了冲突检测功能。 在采样每一个位值之后,在 DX1 级的 TXD 输入读取的数据值与发送的数据位值进行比 较。如果通过设置 PCR.CDEN = 1 使能了冲突检测,发送的位不等于读回的位,则检测 到冲突并置位 PSR.COL。如果被使能,则位 PSR.COL = 1 会禁止发送器 ( 数据输出线 变为 1) 并产生一个协议中断。发送移位寄存器的内容被视为无效,因此,发送缓冲器必 须被重新编程。 15.3.3.5 脉冲整形 对于有些应用来说,位值为 0 的发送位的 0 电平不会在整个位时间都施加到发送输出。 代替驱动原始 0 电平的是,只产生一个 0 脉冲,而该位时间的剩余时间量子由 1 电平驱 动。 一个位时间的长度并不因这种脉冲整形而改变,只有信令发生了改变。 在标准的 ASC 信令方案中,在具有位值 0 的完整位时间期间都发出 0 电平信号 ( 由编程 设置 PCR.PL = 000B 保证 )。 在 PCR.PL > 000B 的情况下,发送输出信号在由 PCR.PL 参考手册 USIC, V2.10 15-50 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 定义的时间量子数期间变为 0。为了支持正确地接收经过发送器整形的脉冲,在接收器中 必须根据所施加的脉冲宽度调整采样点。 PL = 001 B 时 的 0 脉冲 PL = 010B 时 的 0 脉冲 PL = 111B 时 的 0 脉冲 PL = 000B 时 的 0 脉冲 时间量子 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 A S C_P ul s eLength 图 15-33 发送器脉冲宽度控制 图 15-34 示出了一个发送 LSB 在先的 8 位数据字和一个停止位的例子 ( 例如 IrDA)。通 过设置 SCTR.DOCFG = 01B,发送输出信号的极性被反转。 ASC 帧 SOF D0 D1 D2 D3 D4 D5 D6 D7 STOP 空闲 位值 空闲 DOUT 脉冲 A S C_P ul s eO ut 图 15-34 脉冲输出示例 15.3.3.6 自动映射机制 当自动映射机制传送一个数据帧时 ( 映射发生在每一帧的开始 ),协议控制寄存器 PCR 和 位域 SCTR.FLE 中的内容在内部保持不变。可以在任何时间将这些寄存器编程为新的设 置,这些新设置在下一个数据帧生效。在一个数据帧期间,虽然在数据帧开始后写入了 新设置值,但所使用的 (映射的)设置并未改变。 位域 SCTR.WLE 和 SCTR.SDIR 在每个数据字的开始被自动映射。其结果是,一个数据 参考手册 USIC, V2.10 15-51 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 帧可由不同长度的数据字组成。建议只在没有数据帧正在运行时改变 SCTR.SDIR,以避 免硬件和软件之间互相干扰。 请注意,一个数据字的起始点对于发送器和接收器可以不同。为了确保正确的处理,建 议在发送器和接收器都空闲时修改 SCTR.WLE。如果发送器和接收器涉及相同的数据信 号 ( 如在 LIN 总线系统中 ),则在一次数据发送正在进行的过程中检测到 RSI 事件后,可 以修改 SCTR.WLE。 15.3.3.7 帧结束控制 每个 ASC 帧的位数由位域 SCTR.FLE 定义。为了支持连续发送帧的不同帧长度设置,该 位域可以被硬件修改。自动更新机制由 TCSR.FLEMD = 1 使能 ( 在这种情况下,位 TCSR.WLEMD、 SELMD、 WAMD 和 HPCMD 必须被写入 0 值 )。 如果被使能,发送控制信息 TCI 会在 ASC 帧开始时自动覆盖位域 TCSR.FLEMD ( 导致 具有 1 到 32 个数据位的帧 )。TCI 的值代表所写的 TBUFxx ( 不使用额外的数据缓冲区 ) 或 INxx ( 使用额外的数据缓冲区 ) 地址单元。有了该机制,向 TBUF07 (IN07,分别 ) 写 一个数据字即可产生具有 8 个数据位的一个 ASC 帧。 15.3.3.8 模式控制行为 ASC 模式支持以下内核模式: • 运行模式 0/1: 行为与编程设置的一样,对数据传送没有影响。 • 停止模式 0: 位 PSR.TXIDLE 被清零。尚未启动一次新的发送。当前的发送正常完成。位 PSR. RXIDLE 未被修改。仍然可以接收。 当脱离停止模式 0 时,位 TXIDLE 根据 PCR.IDM 设置。 • 停止模式 1: 位 PSR.TXIDLE 被清零。尚未启动一次新的发送。当前的发送正常完成。 PSR.RXIDLE 位被清零。不能进行一次新的接收。当前接收正常完成。 当脱离停止模式 1 时,位 TXIDLE 和 RXIDLE 根据 PCR.IDM 设置。 15.3.3.9 禁止 ASC 模式 要在不破坏任何数据的情况下关闭 ASC 模式,接收器和发送器都必须是空闲的。通过在 寄存器 KSCFG 中请求停止模式 1 可以保证这一点。在等待帧结束以后,ASC 模式被禁 止。 15.3.3.10 协议中断事件 在 ASC 模式可产生下述协议相关的事件,这些事件可导致产生一个协议中断。冲突检测 和发送器帧结束事件与发送器相关,而接收器事件由同步停止检测、接收器噪声检测、格 式错误检查和接收帧结束给出。 参考手册 USIC, V2.10 15-52 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 请注意,寄存器 PSR 中的位不能由硬件自动清零,必须用软件清零,这是为了监视新到 来的事件。 • 冲突检测: 该中断指示在一个位的采样点,所发送的值 (DOUT0) 与 DX1 输入级的输入值不匹 配。更详细的信息请参见 页 15-50。 • 发送器帧结束: 该中断指示发送器已经完全发送完一帧。位 PSR.TFF 在最后一个停止位结束时变成 置位状态。当没有发送正在进行时,可以改变 DOUT0 信号的端口引脚分配。 • 接收器帧结束: 该中断指示接收器已经完全接收完一帧。位 PSR.RFF 在最后一个停止位结束时变成 置位状态。当没有接收正在进行时,可以改变 DIN0 信号的端口引脚分配。 • 同步间断检测: 该中断可在 LIN 网络中使用,以指示收到同步间断符号 ( 在一个 LIN 帧的开始 )。 • 接收器噪声检测: 该中断指示在一个位的采样点的输入值与在前面两个时间量子的采样值不完全相同。 • 格式错误: 对于 ASC 协议,停止位的位值被定义为 1 电平。如果一个停止位的采样位值是 0,则 会报告一个格式错误。 15.3.3.11 数据传送中断处理 数据传送中断指示与 ASC 帧处理相关的事件。 • 发送缓冲区中断 TBI: 在一个数据字的第一个数据位开始后,位 PSR.TBIF 被置位。这是可以向 TBUF 写入 一个新数据字的最早时间点。 发生该事件时,位 TCSR.TDV 被清零,并且新数据可以被加载到发送缓冲区。 • 发送移位中断 TSI: 在一个数据字的最后一个数据位开始后,位 PSR.TSIF 被置位。 • 接收器开始中断 RSI: 在一个数据字的第一个数据位的采样点之后,位 PSR.RSIF 被置位。 • 接收器中断 RI 和备用中断 AI: 如果一个数据字之后不直接跟随一个奇偶校验位 ( 校验位产生被禁止或不是一个数据 帧的最后一个字 ),那么在该数据字的最后一个数据位的采样点之后,位 PSR.RIF 被 置位。 如果数据字后面直接跟随一个奇偶校验位 ( 一个数据帧的最后一个数据字并且校验位 产生被使能 ),则在奇偶校验位的采样点之后,如果没有检测到奇偶校验错误,位 PSR.RIF 被置位。如果检测到一个奇偶校验错误,则位 PSR.AIF 被置位而不是位 PSR.RIF。 对于接收的字,一个数据帧的第一个数据字由 RBUFSR.SOF = 1 指示。 在 WA = 0 时发生接收器中断 RI,位 PSR.RIF 被置位。在 WA = 1 时发生备用中断 AI,位 PSR.AIF 被置位。 参考手册 USIC, V2.10 15-53 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3.3.12 波特率发生器中断处理 波特 率 发 生 器 中 断 指 示 捕 获 模 式定时器已经达到其最大值。 PSR.BRGIF 被置位。 发 生 该 事 件 时,位 15.3.3.13 协议相关的参数和错误 协议相关参数 (RBUFSR.PAR) 和协议相关错误 (RBUFSR.PERR) 是两个标志,它们位于 相应的接收缓冲器状态寄存器中,被分配给每一个接收数据字。 在 ASC 模式,接收到的奇偶校验位由协议相关的参数监视,奇偶校验的结果由协议相关 错误指示(0 = 接收的奇偶校验位等于计算的校验值)。该信息仅用于阐释每个数据帧中最 后接收的数据字,如果数据字不是一个数据帧的最后数据字,或者奇偶校验位生成被禁 止,则这两位都为 0。 15.3.3.14 接收缓冲区处理 在 ASC 模式,如果有一个接收 FIFO 缓冲区可用 (CCFG.RB = 1) 并被使能用于数据处理 (RBCTR.SIZE > 0),则建议设置 RBCTR.RCIM = 11B。这会导致:位 OUTR.RCI[0] = 1 指示该数据字是一个新数据帧的第一个数据字; OUTR.RCI[4] = 1 指示发生了一个奇偶 校验错误,接收的校验位值由 OUTR.RCI[3] 给出。 在RCI 模式 (RBCTR.RNM = 1),标准接收缓冲区事件和备用接收缓冲区事件可以用于执 行以下操作: • 一个标准接收缓冲区事件指示可以从 OUTR 读取一个数据字,这个已接收的数据字无 奇偶校验错误。 • 一个备用接收缓冲区事件指示可以从 OUTR 读取一个数据字,这个已接收的数据字有 奇偶校验错误。 15.3.3.15 同步间断检测 接收器持续检查 DIN0 信号为 0 电平的连续位时间的数量。该数量由编程设置的每帧的位 数加 2 ( 无校验位的情况 ) 或加 3 ( 有校验位的情况 ) 给出。如果在事件发生后在一个位 的采样点检测到 0 电平,则位 PSR.SBD 被置位,另外还可以产生一个协议中断 ( 如果由 PCR.SBD = 1 使能 )。每当在在输入 DIN0 发现一个下降沿时,则重新从 0 开始计数。该 功能可以用于在一个 LIN 总线系统中检测从机的同步间断 ( 主机不检测同步间断 )。 例如,在一个使用 8 个数据位且不使用奇偶校验位的配置中,如果在 10 个完整位时间过 后的下一个采样点 ( 即从第一个下降沿算起的第 11 个位时间的采样点 ) 检测到 0 电平, 则位 PCR.SBD 被置位。 15.3.3.16 传送状态指示 如果位 PCR.CTR[16] ( 接收器状态使能 RSTEN) 被置位,那么接收器的状态可以由标志 PSR[9] = BUSY 监视。在这种情况下,位 BUSY 在整个帧接收期间被置 1,这段时间从 帧起始位开始到最后一个停止位结束。 如果位 PCR.CTR[17]( 发送器状态使能 TSTEN) 被置位,那么发送器的状态可以由标志 参考手册 USIC, V2.10 15-54 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PSR[9] = BUSY 监视。在这种情况下,位 BUSY 在整个帧发送期间被置 1,这段时间从 帧起始位开始到最后一个停止位结束。 如果两个位 RSTEN 和 TSTEN 都被置 1,则标志 BUSY 指示接收器和发送器状态的逻辑 “ 或 ” 组合。如果两个位都被清零,标志 BUSY 并不根据传送状态而修改 ( 状态改变被忽 略 )。 15.3.4 ASC 协议寄存器 在 ASC 模式,寄存器 PCR 和 PSR 处理 ASC 的相关信息。 15.3.4.1 ASC 协议控制寄存器 在 ASC 模式, PCR 寄存器中的位或位域依本节所述定义。 PCR 协议控制寄存器 [ASC 模式 ] (3CH) 初始值:0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MCL K 0 TST RST EN EN rw r rw rw 15 14 13 12 11 10 9 PL SP rw rw 876543210 FFIE N FEIE RNIE NN CDE N SBIE N IDM STP B SMD rw rw rw rw rw rw rw rw 域 位 SMD 0 STPB 1 类型 rw rw 描述 采样模式 该位域定义 ASC 接收器的采样模式。所选择的的数据输 入信号可在每个位时间被采样一次或三次 ( 在连续的时间 量子处 )。当采样三次时,移入到接收移位寄存器中的位 值由三次采样值经多数表决给出。 0B 每个位时间只取一个样本。当前的输入值被采样。 1B 每个位时间取三个样本,然后进行多数表决。 停止位 该位定义一个 ASC 帧中的停止位数目。 0B 停止位数目为 1。 1B 停止位数目为 2。 参考手册 USIC, V2.10 15-55 V1.0, 2013-03 请遵守产品信息使用协议 域 位 IDM 2 SBIEN 3 CDEN 4 RNIEN 5 FEIEN 6 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 类型 rw rw rw rw rw 描述 空闲检测模式 该位定义是关闭空闲检测,还是基于帧长度进行检测。 0B 总线空闲检测被关闭,位 PSR.TXIDLE 和 PSR.RXIDLE 被自动置位,以使能不检查输入即进 行数据发送。 1B 在经过由 SCTR.FLE 加 2 ( 无奇偶校验位的情况 ) 或加 3 ( 有奇偶校验位的情况 ) 定义的一定数量的连 续被动位时间后,总线被视为空闲。 同步间断中断使能 如果检测到一个同步间断,则该位使能一个协议中断的产 生。自动检测总是处于活动状态,因此位 SBD 可以独立 于 SBIEN 被置位。 0B 中断产生被禁止。 1B 中断产生被使能。 冲突检测使能 该位使能一个发送器对冲突检测的反应。 0B 冲突检测被禁止。 1B 如果检测到有冲突,则发送器停止其数据发送,输 出一个 1 电平,置位 PSR.COL 并产生一个协议中 断。 为了允许再次发送数据, PSR.COL 必须由软件清 零。 接收器噪声检测中断使能 如果检测到接收器噪声,则该位使能一个协议中断的产 生。自动检测总是处于活动状态,因此位 PSR.RNS 可以 独立于 PCR.RNIEN 被置位。 0B 中断产生被禁止。 1B 中断产生被使能。 格式错误中断使能 如果检测到一个格式错误,则该位使能一个协议中断的产 生。自动检测总是处于活动状态,因此位 PSR.FER0/FER1 可以独立于 PCR.FEIEN 被置位。 0B 中断产生被禁止。 1B 中断产生被使能。 参考手册 USIC, V2.10 15-56 V1.0, 2013-03 请遵守产品信息使用协议 域 FFIEN SP PL RSTEN TSTEN MCLK 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 7 [12:8] [15:13] 16 17 31 [30:18] 类型 rw rw rw rw rw rw r 描述 帧结束中断使能 如果接收器或发送器达到一帧的结束,则该位使能一个协 议中断的产生。自动检测总是处于活动状态,因此位 PSR.RFF 或 PSR.TFF 可以独立于 PCR.FFIEN 被置位。 0B 中断产生被禁止。 1B 中断产生被使能。 采样点 该位域定义位值的采样点。采样点不能位于所编程的位时 间外部 (PCR.SP ≤ BRG.DCTQ)。 脉冲宽度 该位域定义一个 0 数据位的宽度,以时间量子计算,从每 个位时间的时间量子 0 开始。每个为 0 的位值可以导致一 个比一个位时间短的 0 脉冲,例如用于 IrDA 应用。 PL 不 能改变一个位时间的长度,它只能改变输出信号的 0 电平 长度。 脉冲宽度不能大于所编程的位时间 (PCR.PL ≤ BRG.DCTQ)。该位域只对发送器有效,被接 收器忽略。 000B 脉冲宽度等于位长度 ( 不能短到 0)。 001B 一个 0 位的脉冲长度为 2 个时间量子。 010B 一个 0 位的脉冲长度为 3 个时间量子。 ... 111B 一个 0 位的脉冲长度为 8 个时间量子。 接收器状态使能 该位使能对标志 PSR[9] = BUSY 的修改,根据接收器的 状态。 0B 标志 PSR[9] 并不因接收器的状态而改变。 1B 标志 PSR[9] 在一个完整的帧接收期间被置位。 发送器状态使能 该位使能对标志 PSR[9] = BUSY 的修改,根据发送器状 态。 0B 标志 PSR[9] 并不因发送器的状态而改变。 1B 标志 PSR[9] 在一个完整的帧发送期间被置位。 主时钟使能 该位使能主时钟 MCLK 的产生。 0B MCLK 产生被禁止,且 MCLK 信号为 0。 1B MCLK 产生被使能。 保留 读访问返回 0 ;应写入 0 。 参考手册 USIC, V2.10 15-57 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.3.4.2 ASC 协议状态寄存器 在 ASC 模式,PSR 寄存器的位或位域依本节所述定义。寄存器 PSR 中的位和位域不能 由硬件清零。 PSR 寄存器中的标志可以通过向寄存器 PSCR 中的对应位写 1 来清除。向 PSR 中的一 个位写 1 会置位对应的标志,但不会导致进一步的行为 ( 不产生中断 )。写 0 没有影响。 应在使能一个新协议之前用软件清除 PSR 中的标志。 PSR 协议状态寄存器 [ASC 模式 ] (48H) 复位值:0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IF r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIF RIF TBIF TSIF DLIF RSIF BUS Y TFF RFF FER 1 FER 0 RNS COL SBD RXID LE TXID LE rwh rwh rwh rwh rwh rwh r rwh rwh rwh rwh rwh rwh rwh rwh rwh 域 位 TXIDLE 0 RXIDLE 1 SBD 2 类型 rwh rwh rwh 描述 发送空闲 该位指示发送线 (DX1) 是否为空闲。一次帧发送只能在 TXIDLE 被置位的情况下开始。 0B 发送线尚未空闲。 1B 发送线是空闲的,可以进行帧发送。 接收空闲 该位指示接收线 (DX0) 是否为空闲。一次帧接收只能在 RXIDLE 被置位的情况下开始。 0B 接收线尚未空闲。 1B 接收线是空闲的,可以进行帧接收。 同步间断检测1) 如果检测到所编程数量的连续 0 电平位值,则该位被置 1( 称为同步间断,例如在一个 LIN 总线系统中 )。 0B 尚未检测到一个同步间断。 1B 已经检测到一个同步间断。 参考手册 USIC, V2.10 15-58 V1.0, 2013-03 请遵守产品信息使用协议 域 COL RNS FER0 FER1 RFF TFF BUSY RSIF XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 3 rwh 冲突检测 1) 如果检测到一个冲突 (PCR.CDEN = 1),则该位被置 1。 0B 尚未检测到冲突,可以进行帧发送。 1B 已经检测到冲突,不能进行帧发送。 4 rwh 接收器噪声检测 1) 如果检测到接收器噪声,则该位被置 1。 0B 尚未检测到接收器噪声。 1B 已经检测到接收器噪声。 5 rwh 停止位 0 格式错误 1) 如果在停止位 0 采样到 0 电平,则该位被置 1( 称为格式 错误 0)。 0B 尚未检测到一个格式错误 0。 1B 已经检测到一个格式错误 0。 6 rwh 在停止位 1 中的格式错误 1) 如果在停止位 1 采样到 0 电平,则该位被置 1( 称为格式 错误 1)。 0B 尚未检测到一个格式错误 1。 1B 已经检测到一个格式错误 1。 7 rwh 接收帧完成 1) 如果接收器已经完成了最后一个停止位的接收,该位被置 1。 0B 接收帧尚未完成。 1B 接收帧已经完成。 8 rwh 发送帧完成 1) 如果发送器已经完成了最后一个停止位的发送,该位被置 1。 0B 发送帧尚未完成。 1B 发送帧已经完成。 9 r 传送状态忙 该位指示了接收器的状态 ( 如果 PCR.RSTEN = 1) 或发送 器的状态 ( 如果 PCR.TSTEN = 1) 或两者的逻辑或组合 ( 如果 PCR.RSTEN = PCR.TSTEN = 1)。 0B 未发生数据发送。 1B 数据传送正在进行。 10 rwh 接收器启动指示标志 0B 未发生接收器启动事件。 1B 已发生接收器启动事件。 参考手册 USIC, V2.10 15-59 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 DLIF TSIF TBIF RIF AIF BRGIF 0 11 rwh 12 rwh 13 rwh 14 rwh 15 rwh 16 rwh [31:17 r ] 数据丢失指示标志 0B 未发生数据丢失事件。 1B 已发生数据丢失事件。 发送移位指示标志 0B 未发生发送移位事件。 1B 已发生发送移位事件。 发送缓冲区指示标志 0B 未发生发送缓冲事件。 1B 已发生发送缓冲事件。 接收指示标志 0B 未发生接收事件。 1B 已发生接收事件。 备用接收指示标志 0B 未发生选择接收事件。 1B 已发生选择接收事件。 波特率发生器指示标志 0B 未发生波特率发生器事件。 1B 已发生波特率发生器事件。 保留 读访问返回 0 ;应写入 0。 1) 页 15-115 ( 见 页 15-17)。通用中断状态标志在通用中断一章中描述。 15.3.5 硬件 LIN 支持 为了支持 LIN 协议,对于主设备来说应设置位 TCSR.FLEMD = 1。对于从设备来说,该 位可以被清零,并且应将数据位数设置为固定的 8 个数据位 (SCTR.FLE = 7H)。主设备 和从设备两者的奇偶校验位生成器应该被关闭 (CCR.PM = 00B),数据传送采用 LSB 在 先 (SCTR.SDIR = 0) 和 1 个停止位 (PCR.STPB = 0)。 本地互连网络 (LIN) 数据交换协议包含多个在 ASC 模式可以被全部处理的符号。每个单 一的 LIN 符号代表一个完整的 ASC 帧。LIN 总线是一个具有单一主机和多个从机的主从 总线系统 ( 确切的定义请参见官方 LIN 规范 )。 一个完整的 LIN 帧包含以下符号: • 同步间断 主机在一个新帧的开始发送一个同步间断信号。它包含至少 13 个连续位时间的 0 电 平,然后是至少一个位时间的 1 电平 ( 对应 1 个停止位 )。因此,如果使用发送缓冲 区,则必须向 TBUF11( 或 IN11,如果使用 FIFO 缓冲区 ) 写入 0( 导致一个以 SOF 开 始并跟随 12 个 0 电平数据位的 帧 )。 从设备应通过同步间断检测功能来检测到 11 个连续位时间的 0 电平。如果检测到这 参考手册 USIC, V2.10 15-60 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 样的一个事件,则位 PSR.SBD 置 1,并且产生一个协议中断。此外,在接收缓冲区 会出现值为 0 的接收数据,并且会报告一个格式错误。 如 果 从 机 的 波 特 率 必 须 适 应 主 机,则 在 下 一 个 符 号 开 始 之 前,必 须 通 过 设 置 BRG.TMEN = 1、 DX0CR.CM = 10H 和 DX1CR.CM = 00H 来使能基于下降沿的波特 率测量。 • 同步字节: 主机在向 TBUF07 ( 或 IN07) 写入数据值 55H 后发送该符号。 从设备可以在接收该符号后不进行任何进一步的操作 ( 并且可以将其丢弃 ) ,也可以 使用下降沿进行波特率测量。位 PSR.TSIF = 1 ( 也可以选择产生相应的中断 ) 指示检 测到一个下降沿,并且将自最后一个下降沿以来流逝的时间捕获到 CMTR.CTV 中。 有效的捕获值可以在第二、第三、第四和第五次激活 TSIF 后读出。在该符号内第五 次激活 TSIF 后,波特率检测可以被禁止 (BRG.TMEN = 0), BRG.PDIV 可以编程为 捕获的 CMTR.CTV 值除以每位所占时间量子数的两倍 ( 假设 BRG.PCTQ = 00B)。 • 其他符号: 一个 LIN 帧的其他符号可以按 ASC 数据帧处理而不进行特有操作。 如果 LIN 帧应由 LIN 主机基于帧来发送,可以将输入 DX2 连接到外部的定时器以触发发 送动作 ( 例如同步间断符号已经准备好,如果发生触发则启动发送 )。请注意,在 ASC 接 收器进行波特率测量期间,同一 USIC 通道的 ASC 发送器仍然可以进行发送。 参考手册 USIC, V2.10 15-61 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4 同步串行通道 (SSC) 同步串行通道 SSC 涵盖一个类 SPI 模块的数据传送功能。它可以处理一个工作在主模式 的器件与至少一个工作在从模式的器件之间同步数据帧的接收和发送。除了使用一个输 入和一个输出数据线的标准 SSC 协议之外,同步串行通道还支持使用两个 ( 双位 SSC) 或四个 ( 四位 SSC) 输入 / 输出数据线的 SSC 协议。SSC 模式由 CCR.MODE = 0001B 和 CCFG.SSC = 1 选择 (SSC 模式有效 )。 15.4.1 信号说明 同步 SSC 数据发送器的特征在于,移位时钟信号与发送与 / 或接收数据信号一起同时发 送,以决定数据何时有效 ( 发送和采样点的定义 )。 SSC 通信主机 TBUF DOUT0 RBUF DIN0 DX0 波特率发生器 SCLKOUT 从选择发生器 SELOx 主机发送 / 从机接收 主机接收 / 从机发送 移位时钟 从选择 SSC 通信从机 DIN0 DX0 RBUF DOUT0 TBUF SCLKIN DX1 SELIN DX2 fPB (主机) fPB (从机) SSC_Signals_ 图 15-35 标准全双工通信的 SSC 信号 为了显性指示一次数据传送的开始和结束以及单独访问一个以上的从器件, SSC 模块支 持从选择信号的处理。从选择信号对于 SSC 数据传送来说是可选的,不一定需要。SSC 模块工作在主模式时支持最多 8 个不同的从选择输出信号 ( 命名为 SELOx,其中 x = 07),工作在从模式时支持 1 个从选择输入 SELIN 。在大多数应用中,从选择信号为低电 平有效。 工作在主模式下的器件控制一个数据帧的开始和结束,以及移位时钟和从选择信号的产 生。 这包括移位时钟的波特率设置和移位时钟与从选择输出信号之间的延迟。如果多个 SSC 模块连接在一起,在某一个时刻只能有一个 SSC 主机,但可以有多个从机。从器件 接收移位时钟和可选的从选择信号。有关输入级 DXn 的编程,请参见 页 15-18。 参考手册 USIC, V2.10 15-62 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-11 SSC 通信信号 SSC 模式 标准 SSC 主机 标准 SSC 从机 双位 SSC 主机 接收数据 发送数据 移位时钟 从选择 MRST1), 输入 DIN0, 由 DX0 处理 MTSR2), 输出 DOUT0 输出 SCLKOUT 输出 SELOx MTSR, 输入 DIN0, 由 DX0 处理 MRST, 输出 DOUT0 输入 SCLKIN, 输入 SELIN, 由 DX1 处理 由 DX2 处理 MRST[1:0], MTSR[1:0], 输出 SCLKOUT 输出 输入 DIN[1:0], 输出 DOUT[1:0] SELOx 由 DX0 和 DX3 处理 双位 SSC 从机 MTSR[1:0], MRST[1:0], 输入 SCLKIN, 输入 SELIN, 输入 DIN[1:0], 输出 DOUT[1:0] 由 DX1 处理 由 DX2 处理 由 DX0 和 DX3 处理 四位 SSC 主机 MRST[3:0], MTSR[3:0], 输出 SCLKOUT 输出 输入 DIN[3:0], 输出 DOUT[3:0] SELOx 由 DX0、DX3、 DX4 和 DX5 处 理 四位 SSC 从机 MTSR[3:0], MRST[3:0], 输入 SCLKIN, 输入 SELIN, 输入 DIN[3:0], 输出 DOUT[3:0] 由 DX1 处理 由 DX2 处理 由 DX0、DX3、 DX4 和 DX5 处 理 1) MRST = 主机接收从机发送,也称为 MISO = 主入从出 2) MTSR = 主机发送从机接收,也称为 MOSI = 主出从入 参考手册 USIC, V2.10 15-63 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 移位时钟 发送数据 D0 D1 Dn D0 D1 Dn 接收数据 从选择 D0 D1 数据字 0 Dn 数据帧 D0 D1 Dn 数据字 x SSC_Standard_ 图 15-36 4 线 SSC 标准通信信号 15.4.1.1 发送和接收数据信号 在标准的 SSC 半双工模式,不论是从主机到从机的数据传送还是自从机到主机的数据传 送都只使用同一根数据线。在这种情况下,MRST 和 MTSR 被连接在一起,根据数据传 送方向,一个信号作为输入,另一信号作为输出。用户软件必须注意数据的方向,以避 免发生数据冲突 ( 例如,在将漏极开路驱动器通过线与方式连接在一起的情况下,通过准 备全 1 的虚数据用于发送即可实现这一目标。驱动器的线与连接可以通过使能 / 禁止推挽 输出驱动器来实现,也可以在使能了硬件端口控制的的情况下通过切换引脚方向来实现 )。在全双工模式,数据传送在一个主器件和一个从器件之间并行进行,使用两个独立的 数据信号 MTSR 和 MRST,如图图 15-35 所示。 接收数据输入信号 DIN0 由输入级 DX0 处理。在主模式 ( 指 MRST) 和从模式 ( 指 MTSR), 数据输入信号 DIN0 都是从一个输入引脚输入。DOUT0 ( 数据输出信号 ) 信号相对于数据 位值的极性可以在块 DOCFG ( 数据输出配置 ) 中通过位域 SCTR.DOCFG 配置。 MRST 主模式 MTSR 从模式 DIN0 输入级 DX0 数据移位 单元 SCTR DOCFG DOUT0 MTSR 主模式 MRST 从模式 S S C_DataS i gnal s_ 图 15-37 SSC 数据信号 对于需要使用多个输入和输出数据线以及额外输入级的双位和四位 SSC 模式,需要设置 DINx 和 DOUTx 信号。 参考手册 USIC, V2.10 15-64 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.1.2 移位时钟信号 移位时钟信号由输入级 DX1 处理。在从模式,SSC 接收来自外部主机的信号 SCLKIN, 因此 DX1 输入级必须被连接到一个输入引脚。该输入级可以将接收到的输入信号反相, 以适应用于数据移位单元功能的 SCLKIN 信号的极性 ( 在上升沿发送数据,在下降沿接 收数据 )。 在主模式,移位时钟由内部波特率发生器产生。波特率生成器的输出信号 SCLK 被用作 数据移位单元的移位时钟输入。内部信号 SCLK 通过信号 SCLKOUT 提供给外部从器件 使用。对于从模式下的完全闭环延迟补偿,SCLKOUT 也可以从输入级 DX1 获得发送移 位时钟。这种选择通过位 BRG.SCLKOSEL 完成。见 15.4.6.3 节。 SSC 从模式 SCLKIN SSC 主模式 SCLKOUT 输入级 DX1 数据移位单元 传送控制逻辑 ½ 位时间延迟 SCLKCFG SCLK 波特率发生器 S S C_S hi ftCl oc k_ 图 15-38 SSC 移位时钟信号 由于存在众多不同的 SSC 应用,所以在主模式下可使用多种不同的方式来配置相对于 SCLK 的移位时钟输出信号 SCLKOUT。这可以在块 SCLKCFG( 移位时钟配置 ) 中通过 位域 BRG.SCLKCFG 来完成,可有 4 种可能的设置,如图 图 15-39 所示。 • 无延迟,无极性反转 (SCLKCFG = 00B,SCLKOUT 等于 SCLK): 在没有数据帧传送时, SCLKOUT 的无效电平为 0。一个新数据帧的第一个数据位在 SCLKOUT 的第一个上升沿发送,在 SCLKOUT 的第一个下降沿接收第一个数据位。 一个数据帧的最后一个数据位在 SCLKOUT 的最后一个上升沿发送,最后一个数据位 在 SCLKOUT 的最后一个下降沿接收。该设置可用于主模式和从模式。它符合内部数 据移位单元的行为。 • 无延迟,极性反转 (SCLKCFG = 01B): 在没有数据帧传送时, SCLKOUT 的无效电平为 1。一个新数据帧的第一个数据位在 SCLKOUT 的第一个下降沿发送,在 SCLKOUT 的第一个上升沿接收第一个数据位。 一个数据帧的最后一个数据位在 SCLKOUT 的最后一个下降沿发送,最后一个数据位 在 SCLKOUT 的最后一个上升沿接收。该设置可用于主模式和从模式。 参考手册 USIC, V2.10 15-65 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • SCLKOUT 被延迟 1/2 个移位时钟周期,无极性反转 (SCLKCFG = 10B): 在没有数据帧传送时, SCLKOUT 的无效电平为 0。一个新数据帧的第一个数据位在 SCLKOUT 的第一个上升沿之前 1/2 个 移位时钟周期发送。由于该延迟的存在,下一 个数据位似乎在 SCLKOUT 的下降沿发送。一个数据帧的最后一个数据位在 SCLKOUT 的最后一个上升沿之前 1/2 个 SCLKOUT 周期发送。 第一个数据位在 SCLKOUT 的第一个下降沿之前 1/2 个移位时钟周期接收。由于该延迟的存在,下一 个数据位似乎在 SCLKOUT 的上升沿接收。最后一个数据位在 SCLKOUT 的最后一 个下降沿之前 1/2 个 SCLKOUT 周期接收。 该设置只能用于主模式而不能用于从模式 ( 所连接的从机必须在第一个 SCLKOUT 边 沿之前提供第一个数据位。例如,一旦被其从选择输入寻址为从机,即准备第一个数 据位 )。 • SCLKOUT 被延迟 1/2 个移位时钟周期,极性反转 (SCLKCFG = 11B): 在没有数据帧传送时, SCLKOUT 的无效电平为 1。 一个新数据帧的第一个数据位在 SCLKOUT 的第一个下降沿之前 1/2 个移位时钟周期 发送。由于该延迟的存在,下一个数据位似乎在 SCLKOUT 的上升沿发送。一个 数 据帧的最后一个数据位在 SCLKOUT 的最后一个下降沿之前 1/2 个 SCLKOUT 周期发 送。第一个数据位在 SCLKOUT 的第一个上升沿之前 1/2 个 移位时钟周期接收。由于 该延迟的存在,下一个数据位似乎在 SCLKOUT 的下降沿接收。最后一个数据位在 SCLKOUT 的最后一个上升沿之前 1/2 个 SCLKOUT 周期接收。 该设置只能用于主模式而不能用于从模式 ( 所连接的从机必须在第一个 SCLKOUT 边 沿之前提供第一个数据位。例如,一旦被其从选择输入寻址为从机,即准备第一个数 据位 )。 参考手册 USIC, V2.10 15-66 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 发送的数据位 x (x = 1-n) SCK 1 2 位1 n 位n SCLKOUT (SCLKCFG = 00B) SCLKOUT (SCLKCFG = 01B) SCLKOUT (SCLKCFG = 10B) SCLKOUT (SCLKCFG = 11B) 接收的数据位 x (x = 1-n) 1 2 n SS C_S CLK CFG _ 图 15-39 SSC 主模式下的 SCLKOUT 配置 注: 如果选择了一个带延迟的配置并且使用一个从选择线,则必须相应地设置从选择 延迟。 在 SSC 从模式,位 PCR.SLPHSEL 可用于配置数据移位时钟的相位。 • 当 SLPHSEL = 0B 时,从 SSC 在所选移位时钟输入 (SCLKIN) 的每个前沿发送数据 位,在 SCLKIN 的每个后沿接收数据位。 • 当 SLPHSEL = 1B 时,一旦所选择的从选择输入 (SELIN) 变为有效,从 SSC 即发送 第一个数据位。如果不使用 SELIN ,则 DX2 级必须提供一个 1 电平给数据移位单元 用于移出第一个位。后续的数据位随后在每个 SCLKIN 的后沿发送。SSC 从机在每个 SCLKIN 的前沿接收所有数据位。 对于这两种设置,时钟极性由 SCLKCFG 的位 0 决定。 参考手册 USIC, V2.10 15-67 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SELIN SCLKIN (SCLKCFG = 00B) SCLKIN (SCLKCFG = 01B) MRST (SLPHSEL =0B) MRST (SLPHSEL =1B) D0 D1 D0 D1 Dn Dn 图 15-40 SSC 从模式下的 SLPHSEL 配置 15.4.1.3 从选择信号 从机选择信号由输入级 DX2 处理。在从模式,SSC 通过一个输入引脚从一个外部主机接 收输入信号 SELIN。输入级可以将接收的输入信号反相,以适应用于数据移位单元功能 的信号 SELIN 的极性。( 模块内部信号被视为高电平有效,因此当数据移位单元的从选 择输入为 1 电平时才能进行数据传送,否则,移位时钟脉冲被忽略,不会导致数据传送 )。如果输入信号 SELIN 为低电平有效,则应在 DX2 输入级将其反相。 在主模式,主机的从选择信号 MSLS 由内部从选择生成器产生。为了能独立寻址不同的 外部从器件,内部 MSLS 信号通过最多 8 个 SELOx 输出信号提供给外部器件, SELOx 信号可由块 SELCFG ( 选择配置 ) 配置。 参考手册 USIC, V2.10 15-68 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SSC 主模式 SELIN 输入级 DX2 数据移位单元 传送控制逻辑 SSC 从模式 .. ... . SELOx x = 0-7 SELCFG MSLS 从选择发生器 S S C_S l av eS el ec t_ 图 15-41 SSC 从选择信号 SELCFG 块的控制基于协议控制寄存器 PCR 中协议专用的位和位域。MSLS 信号的产生 请参见 15.4.3.2 节。 • PCR.SELCTR 用于在直接模式和编码选择模式之间进行选择 • PCR.SELINV 用于将 SELOx 输出反相 • PCR.SELO[7:0] 分别作为每个 SELOx 线的值 SELCFG 块支持 SELOx 输出信号的以下配置: • 直接选择模式 (SELCTR = 1): 每个 SELOx 线 ( 其中 x = 0-7) 都可被直接连接到一个外部的从器件。如果位域 SELO 中的位 x 为 0,则 SELOx 输出永远无效。当内部信号 MSLS 有效 ( 见 15.4.3.2 节 ) 并且位域 SELO 中的位 x 为 1 时, SELOx 输出变为有效。如果在一个数据帧期间位 域 SELO 中有不只一位被置位,则可以并行寻址多个外部从器件。可单独寻址的外部 从器件的数量受可用 SELOx 输出数量的限制。 • 编码选择模式 (SELCTR = 0): SELOx 线 ( 其中 x = 1-7) ,可以被用作一个外部地址译码器的地址,以增加外部从器 件的数量。这些线只能在一个新数据帧开始时改变,与 MSLS 没有其他关系。信号 SELO0 可用作外部地址译码器的使能信号。当 MSLS 有效 ( 在一个数据帧期间 ) ,并 且位域 SELO 中的位 0 为 1 时, SELO0 信号有效。此外,在编码选择模式,该输出 线与 MSLS 相比被延迟一个 fPB 周期,以允许其他 SELOx 线在地址译码器被使能之 前,变得稳定。 15.4.2 操作 SSC 本节描述 SSC 的一般性问题,与主模块或从模块都没有直接联系。 参考手册 USIC, V2.10 15-69 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.2.1 自动映射机制 当自动映射机制传送一个数据帧时 (= 当 MSLS 有效时 ),波特率控制寄存器 BRG、位域 SCTR.FLE 和协议控制寄存器 PCR 的内容在内部保持不变。可以在任何时刻将这些寄存 器编程为新的设置,这些新设置在下一个数据帧生效。在一个数据帧期间,虽然在数据 帧开始后写入了新设置值,但所使用的 (映射的)设置并未改变。 位域 SCTR.WLE、SCTR.DSM、SCTR.HPCDIR 和 SCTR.SDIR 在每个数据字的开始被 自动映射。其结果是,一个数据帧可由不同长度的数据字组成,数据字可通过不同数量 的数据线发送和接收。建议只在没有数据帧正在运行时改变 SCTR.SDIR,以避免硬件和 软件之间互相干扰 。 请注意,一个数据字的起始点对于发送器 (第一个发送位)和接收器 (第一个接收位) 可以不同。为了确保正确的处理,建议在接收器开始中断 RSI 发生后再修改 SCTR.WLE。 如果 TCSR.WLEMD = 1,建议在接收器开始中断产生后再更新 TCSR 和 TBUFxx。 15.4.2.2 模式控制行为 SSC 模式支持下列内核模式: • 运行模式 0/1: 行为与编程设置的一样,对数据传送没有影响。 • 停止模式 0/1: 发送缓冲区的内容被视为发送无效。虽然被视为 0,但位 TCSR.TDV 不会由停止模式 条件修改。 在主模式,当前正在运行的字传送正常结束,但未开始传送新的数据字 (停止条件不 被视为帧结束条件)。在从模式,当前正在运行的字传送正常结束。如果外部主器件 在从器件处于停止模式时启动了一次数据字传送,则从器件将发送被动数据而不是一 个有效数据字。为了避免出现被动从发送数据,如果主器件与从器件的停止模式不一 致,建议不将 SSC 从器件编程为停止模式。 15.4.2.3 禁止 SSC 模式 要在不破坏任何数据的情况下禁止 SSC 模式,接收器和发射器都必须是空闲的。通过在 寄存器 KSCFG 中请求停止模式 1 可以保证这一点。在停止模式 1 由 KSCFG.2 = 1 应答 后,SSC 模式可以被禁止。 15.4.2.4 数据帧控制 一个 SSC 数据帧可以由多个连续的数据字组成,这些数据字可能会被字间延迟分开。这 些没有字间延迟的数据字相当于一个数据帧,但似乎组成了一个更长的数据字。一个数 据帧内的数据字的长度通常是相同的,但也可以不同。需要计算得出每个新数据字的数 据字长度信息 ( 由 SCTR.WLE 定义 ),而帧长度信息 ( 由 SCTR.FLE 定义 ) 则在每次启 动一个新帧时计算。 一个 SSC 数据帧的长度可以用两种不同的方法定义: 参考手册 USIC, V2.10 15-70 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 由每帧的位数: 如果定义了每个数据帧的位数 ( 帧长度 FLE),则可不需要使用从选择信号来指示一个 数据帧的开始和结束。 如果所编程的每帧位数在一个数据字之内,则该帧被视为结束,最后一个数据字的剩 余数据位被忽略,不发送这些位。 该方法适用于具有最多 63 个数据位的数据帧。 • 由从选择信号: 如果每个数据帧的位数是未知的,则一个数据帧的开始 / 结束信息可以由一个从选择 信号给出。 如果在一个数据字内检测到从选择信号失效,则认为该帧已经结束,最后 一个数据字的剩余数据位被忽略,不发送这些位。 对于具有多于 63 个数据位 (FLE 的编程极限值 ) 的数据帧,必须使用该方法。从选择 信号的优点是明确地定义了一个数据流中数据帧的起始和结束条件。此外,从选择信 号还允许单独寻址从设备。 15.4.2.5 奇偶校验模式 SSC 允许基于帧为发送生成奇偶校验位和为接收检查奇偶校验位。奇偶校验的类型可由 位域 CCR.PM 选择,对发送和接收是统一的 ( 无校验、偶校验或奇校验 )。如果禁止奇偶 校验处理,则 SSC 帧不包含任何校验位。出于一致性的原因,所有的通信伙伴都必须被 编程为相同的奇偶校验模式。 如果使能了奇偶校验位生成功能,发送器会在数据帧的最后一个数据字之后自动扩展一 个周期时钟,并在该周期发送自己计算的奇偶校验位。 图 15-42 展示了如何在一个发送帧的数据位中添加奇偶校验位。带奇偶校验的一个完整 帧的发送位数总是比不带奇偶校验的多一位。 奇偶校验位被作为一帧的最后一位发送, 紧随数据位之后,与移位方向 (SCTR.SDIR) 无关。 注: 对于双位和四位 SSC 协议,在扩展的时钟周期,奇偶校验位仅在 DOUT0 和 DX0 分别发送和接收。 参考手册 USIC, V2.10 15-71 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) LSB 在先的数据帧 (SCTR.SDIR = 0) 位 位 0 1 位 位 2 3 (FLE+1) 位 位 位 FLE- 1 FLE 位 位 0 1 位 位 2 3 位 位 FLE- 1 FLE ( FLE+1) + 奇偶位 奇偶 位 奇偶校验 模式禁止 奇偶校验 模式使能 时间 MSB 在先的数据帧 (SCTR.SDIR = 1) 位 位 FLE FLE- 1 位 位 位 位 3 2 1 0 (FLE+1) 位 位 位 FLE FLE- 1 位 位 位 3 2 1 (FLE+ 1) + 奇偶位 位 奇偶 0 位 奇偶校验 模式禁止 奇偶校验 模式使能 时间 S S C_P ari ty1_mod 图 15-42 有 / 无奇偶校验的数据帧 类似地,接收器在接收到由 FLE 定义的一个数据帧的最后一个字之后,它还需要一个额 外的时钟周期,该周期包含奇偶校验位。接收器将该位解译为接收的奇偶校验位,并将 其与接收的数据分离。接收到的奇偶校验位值在接收缓冲器状态寄存器的协议相关参数 (PAR) 中被监视,作为接收缓冲器状态信息。接收器将该位与其内部计算的校验位进行 比较,奇偶校验的结果由标志 PSR.PARERR 指示。如果 PCR.PARIEN = 1,则奇偶校 验错误事件产生一个协议中断。 在下列情况下,不支持奇偶校验位的产生和检测: • 当帧长为 64 个数据位或更多时,如 FLE = 63H ; • 在从模式,帧结束发生在达到由 FLE 定义的数据位数之前。 参考手册 USIC, V2.10 15-72 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.2.6 传送模式 在 SSC 模式,必须编程使位域 SCTR.TRM = 01B 才能允许数据传送。设置 SCTR. TRM = 00B 将禁止和立即停止数据传送。 15.4.2.7 数据传送中断处理 数据传送中断指示与 SSC 帧处理相关的事件。 • 发送缓冲器中断 TBI: 在一个数据字的第一个数据位开始后,位 PSR.TBIF 被置 1。 • 发送移位中断 TSI: 在一个数据字的最后一个数据位开始后,位 PSR.TSIF 被置 1。 • 接收器启动中断 RSI: 在接收到一个数据字的第一个数据位后,位 PSR.RSIF 被置 1。 发生该事件时,位 TCSR.TDV 被清零,可以将新数据加载到发送缓冲器。 • 接收器中断 RI: 在一个多字帧中,第二、第三和所有后续字的接收总是由位 RBUFSR.SOF = 0 指示。 如果 RBUFSR.SOF = 0,则接收到一个数据字的最后一个数据位后,位 PSR.RIF 被 置 1。 位 RBUFSR.SOF 指示接收到的数据字是一个多字帧的第一个数据字还是某个后续 字。在 SSC 模式,该位决定是产生备用中断还是产生接收中断。 • 备用中断 AI: 一个帧中第一个字的接收总是由 RBUFSR.SOF = 1 指示。这对多字帧和单字帧接收 都是正确的。在 SSC 模式,这将导致置位 PSR.AIF。 15.4.2.8 波特率发生器中断处理 波特率发生器中断指示捕获模式定时器已达到其最大值。发生该事件时,位 PSR.BRGIF 被置 1。 15.4.2.9 协议相关的参数和错误 协议相关参数 (RBUFSR.PAR) 和协议相关错误 (RBUFSR.PERR) 是两个标志,它们位 于相应的接收缓冲器状态寄存器中,被分配给每一个接收的数据字。 在 SSC 模式,接收到的奇偶校验位由协议相关的参数监视。接收的帧起始指示由协议相 关错误指示位监视 (0 = 接收到的字不是一帧中的第一个字, 1 = 接收到的字是一帧中的 第一个字 )。 注: 对于 SSC,奇偶校验错误事件指示位位于 PSR 寄存器中。 15.4.2.10 接收缓冲区处理 在 SSC 模式,如果一个接收 FIFO 缓冲区是可用的 (CCFG.RB = 1) ,并且被使能用于数 据 处 理 (RBCTR.SIZE > 0),则 建 议 设 置 RBCTR.RCIM = 01B。这 会 导 致:位 参考手册 USIC, V2.10 15-73 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) OUTR.RCI[4] = 1 指示该数据字是一个新数据帧的第一个数据字,所接收数据的字长由 OUTR.RCI[3:0] 给出。 在 RCI 模式 (RBCTR.RNM = 1),标准接收缓冲区事件和备用接收缓冲区事件可以用于 执行以下操作: • 一个标准接收缓冲区事件指示可以从 OUTR 读取一个数据字,这个已接收的数据字不 是一个数据帧的第一个字。 • 一个备用接收缓冲区事件指示可从 OUTR 读取一个新数据帧的第一个数据字。 15.4.2.11 多 I/O SSC 协议 SSC 实现了以下三个功能,以支持多数据输入 / 输出 SSC 协议,如双位和四位 SSC: 1. 数据移位模式 ( 见 15.2.5.2 节 ) 通过位域 SCTR.DSM 配置发送和接收数据时并行使用一条、两条或四条数据线。 2. 硬件端口控制 ( 见 15.2.7 节 ) 通过位 SCTR. HPCDIR 设置一个专用硬件接口,以控制具有 DINx 和 DOUTx 两种功 能的引脚的方向。 3. 发送控制信息 ( 见 15.2.5.3 节 ) 在数据传送期间,通过向 SCTR.DSM 和 SCTR.HPCDIR 写 TCI 可动态控制移位模式 和引脚方向。 图 15-43 示出了四位 SSC 协议的一个例子,该协议要求主 SSC 首先通过一根数据线发 送一个命令字节 ( 请求自从机一次读取 4 位输出 ) 和一个空字节。在空字节结束后,主和 从 SSC 都切换到四数据线方式,并且发送器和接收器角色互换。然后主 SSC 通过 MRST[3:0] 线在每个移位时钟自从机接收四位数据。 参考手册 USIC, V2.10 15-74 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 从选择 SCLKOUT MTSR/ MRST0 MRST1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 命令字节 空字节 4040 5151 MRST2 6262 MRST3 映射的 SCTR.DSM 73 数据 字节 0 73 数据 字节 1 00B 11B 映射的 SCTR.HPCDIR (主机) 图 15-43 四位 SSC 示例 为了在上面给出的例子中使用四位 SSC 协议工作,在 15.4.3 节 和 15.4.4 节所描述的内 容之外还必须额外考虑以下问题: • 在初始化阶段: – 设置 CCR.HPCEN 为 11B,以使能与 DX0/DOUT0、 DX3/DOUT1、DX4/DOUT2 和 DX5/DOUT3 引脚的专用硬件接口。 – 设置 TCSR.[4:0] 为 10H,以使能 TCI 中的硬件端口控制。 • 启动数据传送: – 对于主 SSC,写命令和空数据到 TBUF04,以选择一条数据线为输出模式并启动数 据传送。 – 对于从 SSC,可以向 TBUF00 预装空数据,以选择一条数据线为输入模式。 • 切换到四数据线方式和并切换引脚方向: – 对于主 SSC,写后续的空数据到 TBUF03 ,以选择四条数据线为输入模式,用于 读入有效的从数据。 – 对于从 SSC,写有效数据到 TBUF07,该数据通过工作在输出模式的四条数据线发 送。 图 15-44 示出了四位 SSC 连接的例子。 参考手册 USIC, V2.10 15-75 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) USIC 主机 DX5 DOUT3 DX4 DOUT2 DX3 DOUT1 DX0 DOUT0 SCLKOUT SELO MTSR3/MRST3 MTSR2/MRST2 MTSR1/MRST1 MTSR0/MRST0 时钟 从选择 USIC 从机 DX5 DOUT3 DX4 DOUT2 DX3 DOUT1 DX0 DOUT0 DX1 SCLK DX2 SELO 图 15-44 四位 SSC 连接示例 15.4.3 操作主模式下的 SSC 为了操作主模式下的 SSC,必须考虑以下问题: • 选择 SSC 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 SSC 参数。必须 将位域 SCTR.TRM 编程为 01B 。输入级的配置必须在 CCR.MODE = 0000B 时完成, 以避免意外的输入信号边沿,然后可以通过设置 CCR.MODE = 0001B 来使能 SSC 模 式。 • 引脚连接: 通过设置 DXnCR.INSW = 1 建立输入级 (DX0, DX3, DX4, DX5) 与所选接收数据输入 引脚 (DIN[3:0]) 的连接,并配置发送数据输出引脚 (DOUT[3:0])。根据所选协议,可 能需要一个、两个或四个这样的连接。对于半双工配置,还可使用硬件端口控制来建 立所需要的连接。 • 波特率产生: 必须选择所需要的波特率设置,包括小数分频器和波特率生成器。要直接使用波特率 参考手册 USIC, V2.10 15-76 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 发生器输出 SCLK 作为数据移位单元的输入,必须将位 DX1CR.INSW 编程为 0。还 要配置一个移位时钟输出引脚 ( 信号 SCLKOUT)。 • 从选择产生: 从选择延迟的产生必须通过设置 PCR.MSLSEN = 1 和对时间量子计数器设置编程来 使能。必须设置 DX2CR.INSW= 0,以使用从选择生成器的输出 MSLS 作为数据移位 单元的输入。如果需要,还要配置从选择输出引脚 ( 信号 SELOx)。 • 数据格式的配置: 必须根据应用需要,通过对寄存器 SCTR 编程来设置字长、帧长、移位方向和移位模 式。 注: 如果 USIC 正在发送,则它只能在主模式下接收,因为主帧的处理要借助于发送器 一方的位 TDV。 注: 为了避免在输出端出现意外的尖峰脉冲,必须在 SSC 模式被使能后再执行使能备 用输出端口功能的步骤。 15.4.3.1 波特率产生 SSC 的波特率 (确定一个数据位的长度)由 SCLK 信号的频率定义 ( 一个 fSCLK 周期代 表一个数据位 )。SSC 的波特率产生不需使用任何时间量子计数器。 在一个标准 SSC 应用中,可选的 MCLK 输出信号与 SCLK 之间的相位关系是无关的,且 可以被禁止 (BRG.PPPEN 为 0)。在这种情况下,SCLK 信号直接源自协议输入频率fPIN。 在 MCLK 信号和 SCLK 之间需要一个固定的相位关系这一例外情况下 ( 例如,当使用 MCLK 作为外部器件的参考时钟时 ),必须考虑使用额外的 2 分频级 (BRG. PPPEN = 1)。 可调节的分频系数由位域 BRG.PDIV 定义。 fSCLK = fPIN 2  1 PDIV + 1 fSCLK = fPIN 22  1 PDIV + 1 若 PPPEN = 0 若 PPPEN = 1 (15.8) 15.4.3.2 MSLS 产生 从选择信号指示一个数据帧的开始和结束,通信主机还用其单独选择所期望的从器件。 通信主机的一个从选择输出在帧的数据部分开始之前一段时间 (超前延迟 Tld)变为有 效,该时间是可编程的,对使从器件做好准备以进行接下来的通信必不可少。在帧的一 个数据部分被传送之后,该从选择信号在最后一位结束后经过一段可编程的时间 (拖尾 延迟 Ttd)再次变为无效。如果数据帧是一个接一个地连续传送,则自从选择失效到从选 择下一次有效之间的最小时间是可编程的 (下一帧延迟 Tnf)。如果一个数据帧包含不只 一个数据字,也可以对数据字之间的可选延迟编程 (字间延迟 Tiw)。 参考手册 USIC, V2.10 15-77 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 移位时钟 数据字 0 数据帧 数据字 1 发送数据 D0 D1 Dn D0 D1 Dn 接收数据 Tld MSLS 无效 SELOx (SELINV = 1) D0 D1 有效 Dn Tiw D0 D1 Dn Ttd Tn f SSC_MSLS_ 图 15-45 SSC 主模式下的 MSLS 产生 在 SSC 主模式,从选择延迟定义如下: • 超前延迟 Tld: 如果用于发送的数据有效,则超前延迟开始。内部信号 MSLS 随着超前延迟的开始变 为有效。在经过了超前延迟这段时间后,波特率发生器产生移位时钟 SCLK 的第一个 边沿 (上升沿)。 • 拖尾延迟 Ttd: 拖尾延迟在一个数据帧周期的最后一个 SCLK 周期结束时开始。内部信号 MSLS 在拖 尾延迟结束后变为无效。 • 字间延迟 Tiw: 该延迟是可选的,可以由 PCR.TIWEN 使能或禁止。如果字间延迟被禁止 (TIWEN = 0) ,则一个数据字的最后一个数据位后面直接跟随同一数据帧的下一个 数据字的第一个数据位。如果被使能 (TIWEN = 1),则字间延迟在一个数据字的最后 一个 SCLK 周期结束时开始。同一数据帧的下一个数据字的第一个 SCLK 周期在字间 延迟结束后开始。在此期间,不产生移位时钟冲脉,信号 MSLS 保持有效。通信伙伴 有时间 “ 消化 ” 以前的数据字或准备下一个数据字。 • 下一帧延迟 Tnf: 下一帧延迟在拖尾延迟结束时开始。在此期间,不产生移位时钟脉冲,信号 MSLS 保 持无效。在下一帧延迟消逝后,一个数据帧帧被视为结束。 参考手册 USIC, V2.10 15-78 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.3.3 自动从选择更新 如果每个 SSC 帧的位数和字长由位域 SCTR.FLE 和 SCTR.WLE 定义,则可使用发送控 制信息 TCI 来更新从选择设置 PCR.CTR[23:16] ,以控制 SELOx 选择输出。自动更新机 制由 TCSR.SELMD = 1 使能 ( 位 TCSR.WLEMD、 FLEMD 和 WAMD 必须被清零 )。在 这种情况下,由于自动映射机制的作用,一个帧的第一个数据字的 TCI 定义整个帧的从 选择设置 ( 见 页 15-51)。 15.4.3.4 从选择延时产生 从选择延时的产生是基于时间量子的。一个时间量子的长度 ( 由 fCTQIN 的周期定义 ) 和每 个延迟的时间量子数目是可编程的。 在标准 SSC 应用中,超前延迟 Tld 和拖尾延迟 Ttd 主要用于确保输入和输出线上信号的稳 定性以及遵守输入级的建立和保持时间。这两个延迟有相同的长度(在大多数情况下比一 个位时间短 ),可以用相同的位域集编程。 • BRG.CTQSEL 为 Tld 和 Ttd 定义用于产生时间量子的输入频率 fCTQIN • BRG.PCTQ 为 Tld 和 Ttd 定义一个时间量子 的长度 (fCTQIN 被 1、 2、 3 或 4 分频 ) • BRG.DCTQ 定义为产生延迟 Tld 和 Ttd 所需要的时间量子数 字间延迟 Tiw 和下一帧延迟 Tnf 用于处理接收的数据或为下一个字或帧准备数据。这两个 延迟具有相同的长度 ( 在大多数情况下位于位时间的范围内 ) ,可用另一个独立的位域集 编程。 • PCR.CTQSEL1 为 Tnf 和 Tiw 定义用于产生时间量子的输入频率 fCTQIN • PCR.PCTQ1 为 Tnf 和 Tiw 定义一个时间量子的长度 (fCTQIN 被 1、 2、 3 或 4 分频 ) • PCR.DCTQ1 • 定义为产生延迟 PCR.TIWEN Tnf 和 Tiw 所需要的时间量子数 使能 / 禁止字间延迟 Tiw 每个延迟取决于时间量子的长度和由位域 CTQSEL/CTQSEL1、PCTQ/DCTQ 和 PCTQ1/ DCTQ1 (CTQSEL1 的编码类似于 CTQSEL,等等 ) 所编程的时间量子数。为了给延迟长 度的编程提供更高的灵活性,输入频率可以在多种可能之间选择。( 例如,基于位时间或 更快的协议相关分频器的输入 )。延迟时间定义如下: Tld = Ttd = (PCTQ + 1)  (DCTQ + 1) fCTQIN Tiw = Tnf = (PCTQ1 + 1)  (DCTQ1 + 1) fCTQIN (15.9) 参考手册 USIC, V2.10 15-79 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.3.5 协议中断事件 在 SSC 模式可产生下述协议相关的事件,这些事件可导致产生一个协议中断。这些事件 与一个数据帧的起始和结束相关。在一个数据帧开始以后,可以对下一数据帧所需要的 新设置进行编程,在一个数据帧结束之后,可以改变 SSC 与引脚的连接。 请注意,寄存器 PSR 中的位并不都是由硬件自动清零的,为了监视新到来的事件,必须 用软件清零。 • MSLS 中断: 在主模式 (MSLS 产生被使能 ) ,该中断指示一个数据帧已经开始 (MSLS 激活 ) 并且 已经结束 (MSLS 失活 )。内部 MSLS 信号的任何改变都会置位 PSR.MSLSEV,此外, 如果 PCR.MSLSIEN = 1,则会产生一个协议中断。当检测到该中断时,内部 MSLS 信号的当前状态可在 PSR.MSLS 读出,以采取适当的动作。 • DX2T 中断: 该中断监视 DX2 级输入信号的边沿 ( 虽然该信号不作为数据传送的从选择输入使用 )。 对 DX2 输入信号的可编程边沿检测会置位 PSR.DX2TEV 位,此外,如果 PCR.DX2TIEN = 1,则会产生一个协议中断。当检测到该中断时,所选输入信号的 当前状态可在 PSR.DX2S 读出,以采取适当的动作。 • 奇偶校验错误中断: 该中断指示接收的奇偶校验位 ( 在 RBUFSR.PAR 中 ) 与用一个数据帧最后接收到的 字所计算出的校验位不一致。 15.4.3.6 帧结束控制 对于主设备的 MSLS 产生有关帧长度的信息是必需的。除了基于每帧位数的机制 ( 用 SCTR.FLE 选择, < 63) 之外, SSC 还支持选择下述帧结束处理机制。建议设置 SCTRFLE = 63 ( 如果多个帧结束机制被并行激活,那么第一个发现的结束条件会结束该 帧 )。 • 基于软件的帧起始指示 TCSR.SOF: 如果软件在不使用数据 FIFO 的情况下处理 TBUF 数据,则可使用该机制。如果位 SOF 被置位,则 TBUF 中的有效内容被视为一个新帧的第一个字。在 TBUF 的内容 被传送到发送移位寄存器之前,位 SOF 必须被置位,因此建议在向 TBUF 写数据到 之前写 SOF 位。在当前数据字传送完全结束并且施加了从选择延迟 Ttd 和 Tnf 之后, 一个使用 Tld 下一个有效 TBUF 值的新数据帧方可开始。 为了对位 SOF 进行软件处理,必须编程使位 TCSR.WLEMD = 0。在这种情况下,所 有 TBUF[31:0] 地址单元都表现出完全相同的行为 ( 数据处理时不考虑 TCI )。 • 基于软件的帧结束指示 TCSR.EOF: 如果软件在不使用数据 FIFO 的情况下处理 TBUF 数据,则可使用该机制。如果位 EOF 被置位,则 TBUF 中的有效内容被视为一个新帧的最后一个字。在 TBUF 的内 容被传送到发送移位寄存器之前,位 EOF 必须被置位,因此建议在向 TBUF 写数据 之前写 EOF 位。TBUF 中的数据字完全发送出去后在施加从选择延迟 Ttd 和 Tnf 。此 时可以开始一个使用 Tld 下一个有效 TBUF 值的新数据帧。 为了对位 EOF 进行软件处理,必须编程使位 TCSR.WLEMD = 0 。在这种情况下,所 有 TBUF[31:0] 地址单元都表现出完全相同的行为 ( 数据处理时不考虑 TCI )。 参考手册 USIC, V2.10 15-80 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 基于软件的地址相关帧结束处理: 如果软件在不使用数据 FIFO 的情况下处理 TBUF 数据,则可使用该机制。如果位 TCSR.WLEMD = 1,所写的 TBUF[31:0] 地址被用作发送控制信息 TCI[4:0],以更新 每个数据字的 SCTR.WLE (= TCI[3:0]) 和 TCSR.EOF (= TCI[4])。所写的 TBUF[31:0] 地址单元定义了字长和一帧的结束 ( 地址单元 TBUF[31:16] 导致一帧结束 )。 例如,向 TBUF[07] 写发送数据会导致发送一个 8 位长的数据字,不会结束该帧;然 而向 TBUF[31] 写发送数据会导致发送一个长度为 16 位的数据字,后面跟随 Ttd、 MSLS 失活和 Tnf。 如果 TCSR.WLEMD = 1,在软件写数据到一个 TBUF 单元后,软件不得对位 TCSR.EOF 和 SOF 以及 SCTR.WLE 进行写操作。此外,建议将位 TCSR.SELMD、 FLEMD 和 WAMD 清零。 • 基于 FIFO 的地址相关帧结束处理: 如果使用一个数据 FIFO 来存储发送数据,则可使用该机制。除了发送数据不是被写 入到单元 TBUF[31:0] 而是被写入到 FIFO 输入单元之外,该机制的一般行为与基于 软件的地址相关帧结束处理类似。在这种情况下,软件不得写任何 TBUF 单元。 • TBUF 相关的帧结束处理: 当位 PCR.FEM = 0 时,在一个数据字发送结束后,如果发送缓冲区 TBUF 不包含有 效发送数据 (TCSR.TDV = 0 或处于停止模式 ),则可假定该帧已经结束。在这种情况 下,软件必须注意在一个数据帧运行期间 TBUF 不能为空。如果位 PCR.FEM = 1, 在发送缓冲区等待新数据期间 (TCSR.TDV 再次变为 1) 或直到脱离停止模式时,信号 MSLS 保持有效。 • 软件控制的显性帧结束: 软件可通过清除位 PSR.MSLS 来显性停止一个帧,PSR.MSLS 位的清除通过向寄存 器 PSCR 中的相关位置写 1 实现。该写操作会立即清除位 PSR.MSLS,而内部的 MSLS 信号在一个正在运行的字传送结束并经过从选择延迟 Ttd 和 Tnf 之后才变为无 效。 15.4.4 操作从模式下的 SSC 为了操作从模式下的 SSC,必须要考虑以下问题: • 选择 SSC 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 SSC 参数。必须 将位域 SCTR.TRM 编程为 01B。输入级的配置必须在 CCR.MODE = 0000B 时完成以 避免意外的输入信号边沿,然后可以通过设置CCR.MODE = 0001B来使能SSC模式。 • 引脚连接: 通过设置 DXnCR.INSW = 1 建立输入级 (DX0, DX3, DX4, DX5) 与所选接收数据输入 引脚 (DIN[3:0]) 的连接,并配置发送数据输出引脚 (DOUT[3:0])。根据所选协议,可 能需要一个、两个或四个这样的连接。对于半双工配置,还可使用硬件端口控制来建 立所需要的连接。 通过设置 DX1CR.INSW = 1 建立输入级 DX1 与所选移位时钟输入引脚 (信号 SCLKIN) 的连接。 通过设置 DX2CR.INSW = 1 建立输入级 DX2 与所选从选择输入引脚 ( 信号 SELIN) 的 连接。如果不使用从选择输入信号,则 DX2 级必须提供一个 1 电平给数据移位单元, 参考手册 USIC, V2.10 15-81 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 以允许数据接收和发送。如果一个从设备未被选中 (DX2 级提供一个 0 电平给数据移 位单元 ) 并且接收到一个移位时钟脉冲,则到来的数据不被接收,并且 DOUTx 信号 输出由 SCTR.PDL 定义的被动数据电平。 注意,只有在使能了 SSC 模式后方可执行使能备用输出端口功能的步骤,以避免在 输出的信号上出现意外的尖峰脉冲。 • 波特率发生器: 从模式不需要波特率发生器,可通过小数分频器将其关闭。 • 数据格式配置: 如果需要,可通过对寄存器 SCTR 进行一次编程将移位模式设置为接收和 / 或发送两 个或四个数据位。 • 从选择产生: 从选择延迟产生是不需要的,可以关闭。寄存器 PCR 中的位和位域 MSLSEN、 SELCTR、SELINV、CTQSEL1、PCTQ1、DCTQ1、MSLSIEN、SELO[7:0] 和 TIWEN 不是必需的,可以编程为 0。 15.4.4.1 协议中断 在 SSC 模式产生的下述协议相关事件可导致产生一个协议中断。这些事件与一个数据帧 的开始和结束相关。在一个数据帧开始之后,可以对下一数据帧所需要的新设置进行编 程,在一个数据帧结束之后,可以改变 SSC 与引脚的连接。 请注意,寄存器 PSR 中的位并不都是由硬件自动清零的,为了监视新到来的事件,必须 用软件清零。 • MSLS 事件: MSLS 产生被关闭,该事件不可用。 • DX2T 事件: 从选择输入信号 SELIN 由 DX2 级处理,所选信号的边沿可产生一个协议中断。该中 断允许指示一个数据帧已经启动和 / 或一个数据帧已经完全结束。 对 DX2 输入信号的可编程边沿检测会激活 DX2T,将位 PSR.DX2TEV 置 1,并且如 果 PCR.DX2TIEN = 1,还会产生一个协议中断。当检测到该中断时,所选输入信号 的当前状态可以在 PSR.DX2S 读出,以采取适当的动作。 • 奇偶校验错误中断: 该中断指示接收的奇偶校验位 ( 在 RBUFSR.PAR 中 ) 与用一个数据帧最后接收到的 字所计算出的校验位不一致。 15.4.4.2 结束帧控制 在从模式,存在以下几种决定帧长度的可能。从器件必须依赖一个外部从选择信号或者 依赖接收的数据位数。 • 从器件可事先得知帧的长度,无从选择信号: 在这种情况下,位域 SCTR.FLE 可以编程为已知值 ( 如果它不超过 63 位 )。如果达到 了编程的帧长度,则当前运行的数据字传送被视为结束。 • 从器件不知道帧长度,无从选择信号: 在 这 种 情 况 下,从 器 件 的 软 件 必须基于数据字来决定一个 帧完是否结束。位域 参考手册 USIC, V2.10 15-82 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SCTR.FLE 可以被编程为字长 SCTR.WLE,也可以被编程为其最大值,以禁止从器 件通过对接收的数据位计数来计算从机内部的帧长度。 • 通过从选择信号 SELIN 寻址从器件: 如果从器件由一个通信主机发出的从选择信号寻址,则帧的起始和结束信息由该信号 给出。在这种情况下,位域 SCTR.FLE 应被编程为其最大值,以禁止从器件内部的帧 长计算。 15.4.5 SSC 协议寄存器 在 SSC 模式,寄存器 PCR 和 PSR 处理与 SSC 相关的信息。 15.4.5.1 SSC 协议控制寄存器 在 SSC 模式, PCR 寄存器的位或位域依本节所述定义。 PCR 协议控制寄存器 [SSC 模式 ] (3CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MCL K 0 SLP HSE L TIW EN SELO rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DX2 MSL PARI TIEN SIEN EN rw rw rw DCTQ1 rw PCTQ1 rw CTQSEL1 FEM SELI NV SEL CTR MSL SEN rw rw rw rw rw 域 位 MSLSEN 0 类型 rw 描述 MSLS 使能 该位使能 / 禁止主器件的从选择信号 MSLS 的产生。如果 SSC 是一次传送中的从器件,则它从一个引脚读取 SLS 信息,不需从内部产生。如果 SSC 是一次传送中的主器 件,则它必须提供 MSLS 信号。 0B 禁止 MSLS 产生 (MSLS = 0)。 这是 SSC 从模式的设置。 1B 使能 MSLS 产生。 这是 SSC 主模式的设置。 参考手册 USIC, V2.10 15-83 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 SELCTR 1 SELINV 2 FEM 3 CTQSEL1 [5:4] PCTQ1 [7:6] DCTQ1 [12:8] 类型 rw rw rw rw rw rw 描述 选择控制 该位选择 SELO[7:0] 输出的工作模式。 0B 使能编码选择模式。 1B 使能直接选择模式。 选择信号反相 该位定义 SELO[7:0] 输出的极性与主器件的从选择信号 MSLS 的关系。 0B SELO 输出具有与 MSLS 信号相同的极性 ( 高电平 有效 )。 1B SELO 输出具有与 MSLS 信号相反的极性 ( 低电平 有效 )。 帧结束模式 该位定义是否将一个非发送有效的发送缓冲器内容视为一 个帧结束条件,以决定是否产生从选择信号。 0B 当一个数据字的最后一位被发送且发送缓冲区 TBUF 不包含新数据时 (TDV = 0),当前数据帧被视 为结束。 1B 在没有新数据可用并且没有其他帧结束条件满足 时, MSLS 信号仍保持有效。在这种情况下,软件 可接受在多字数据帧中提供数据带来的延迟,不会 自动停止 MSLS 信号。 输入频率选择 该位域定义了用于产生从选择延迟 Tiw 和 Tnf 的输入频率 fCTQIN。 00B fCTQIN = fPDIV 01B fCTQIN = fPPP 10B fCTQIN = fSCLK 11B fCTQIN = fMCLK Tiw 和 Tnf 的分频系数 PCTQ1 该位域代表用于产生字间延迟和下一帧延迟的分频系数 PCTQ1 ( 范围 = 0 - 3)。 Tiw = Tnf = 1/fCTQIN x (PCTQ1 + 1) x (DCTQ1 + 1) Tiw 和 Tnf 的分频系数 DCTQ1 该位域代表用于产生字间延迟和下一帧延迟的分频系数 DCTQ1 ( 范围 = 0 - 31)。 Tiw = Tnf = 1/fCTQIN x (PCTQ1 + 1) x (DCTQ1 + 1) 参考手册 USIC, V2.10 15-84 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 PARIEN 13 MSLSIEN 14 DX2TIEN 15 SELO [23:16] TIWEN 24 SLPHSEL 25 MCLK 31 0 [30:26] 类型 rw rw rw rw rw rw rw rw 描述 奇偶校验错误中断使能 该位使能 / 禁止在检测到奇偶校验错误时产生一个协议中 断。 0B 在检测到奇偶校验错误时不产生协议中断。 1B 在检测到奇偶校验错误时产生协议中断。 MSLS 中断使能 该位使能 / 禁止在 MSLS 信号的状态发生改变时 ( 由 PSR.MSLSEV = 1 指示 ) 产生一个协议中断。 0B 在检测到信号 MSLS 发生改变时不产生协议中断。 1B 在检测到信号 MSLS 发生改变时产生协议中断。 DX2T 中断使能 该位使能 / 禁止在 DX2T 信号变为激活状态时 ( 由 PSR.DX2TEV = 1 指示 ),产生一个协议中断。 0B 在 DX2T 信号被激活时不产生协议中断。 1B 在 DX2T 信号被激活时产生协议中断。 选择输出 该位域定义 SELO[7:0] 输出线的设置。 0B 不能激活相应的 SELOx 线。 1B 可以激活相应的 SELOx 线 ( 根据由 SELCTR 选择 的模式 )。 使能字间延迟 Tiw 该位使能 / 禁止在发送一个数据字之后的字间延迟 Tiw 0B 在同一帧的数据字之间没有延迟。 1B 使能并引入同一帧中数据字之间的字间延迟 Tiw。 从模式时钟相位选择 该位选择从模式下数据移位时钟的相位。 0B 数据位在移位时钟信号的前沿移出,在后沿锁存。 1B 数据移位单元在收到来自 DX2 级的一个由低到高的 跳变时,移出第一个数据位。后续位在移位时钟信 号的后沿移出。数据位总是在前沿锁存。 主时钟使能 该位使能 / 禁止主时钟输出信号 MCLK 的产生,与主或从 模式无关。 0B 禁止 MCLK 产生并输出 MCLK = 0。 1B 使能 MCLK 产生。 保留 读访问返回 0 ;应写入 0。 参考手册 USIC, V2.10 15-85 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.5.2 SSC 协议状态寄存器 在 SSC 模式,PSR 寄存器的位和位域依本节所述定义。寄存器 PSR 中的位和位域不能 由硬件清零。 通过向寄存器 PSCR 中的一个位写 1 可清除 PSR 寄存器中的相应标志。向 PSR 中的一 个位写 1 会置位相应的标志,但不会导致进一步的行为 ( 不产生中断 )。写 0 没有影响。 应在使能一个新协议之前用软件清除 PSR 中的标志。 PSR 协议状态寄存器 [SSC 模式 ] (48H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IF r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIF RIF TBIF TSIF DLIF RSIF 0 PAR DX2 MSL DX2 MSL ERR TEV SEV S S rwh rwh rwh rwh rwh rwh r rwh rwh rwh rwh rwh 域 位 类型 描述 MSLS 0 DX2S 1 MSLSEV 2 rwh MSLS 状态 该位指示 MSLS 信号的当前状态。它必须由软件清 除,以停止一个正在运行的帧。 0B 内部信号 MSLS 无效 (0)。 1B 内部信号 MSLS 有效 (1)。 rwh DX2S 状态 该位指示 DX2S 信号的当前状态,该信号可用作从选 择输入 SELIN。 0B DX2S 为 0。 1B DX2S 为 1。 rwh MSLS 事件检测1) 该位指示自 MSLSEV 最后一次被清除以来, MSLS 信号已改变其状态。与 MSLS 状态位一起使用,可监 视 MSLS 信号的激活 / 停止。 0B MSLS 信号未改变其状态。 1B MSLS 信号已改变其状态。 参考手册 USIC, V2.10 15-86 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 DX2TEV PARERR RSIF DLIF TSIF TBIF RIF AIF BRGIF 0 3 rwh 4 rwh 10 rwh 11 rwh 12 rwh 13 rwh 14 rwh 15 rwh 16 rwh [9:5], r [31:17] DX2T 事件检测 1) 该位指示自 DX2TEV 最后一次被清除以来, DX2T 触 发器信号已被激活。 0B DX2T 信号尚未被激活。 1B DX2T 信号已经被激活 奇偶校验错误事件检测 1) 该位指示接收的奇偶校验位 ( 在 RBUFSR.PAR 中 ) 与用数据帧的最后接收到的字计算出的奇偶校验位不 一致。 0B 奇偶校验错误事件未被激活。 1B 奇偶校验错误事件已被激活。 接收器开始指示标志 0B 未发生接收器开始事件。 1B 已发生接收器开始事件。 数据丢失指示标志 0B 未发生数据丢失事件。 1B 已发生数据丢失事件。 发送移位指示标志 0B 未发生发送移位事件。 1B 已发生发送移位事件。 发送缓冲器指示标志 0B 未发生发送缓冲器事件。 1B 已发生发送缓冲器事件。 接收指示标志 0B 未发生接收事件。 1B 已发生接收事件。 备用接收指示标志 0B 未发生备用接收事件。 1B 已发生备用接收事件。 波特率发生器指示标志 0B 未发生波特率发生器事件。 1B 已发生波特率发生器事件。 保留 读访问返回 0 ;在 SSC 模式不修改。 1) 在 SSC 模式,该状态位可产生一个协议中断 ( 见 页 15-17)。通用中断状态标志在通用中断一章中描述。 参考手册 USIC, V2.10 15-87 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.4.6 SSC 时序考虑 为了确保正确的数据接收和发送,输入和输出信号必须遵守一定的时序。除了模块内部 时序 ( 因为输入滤波、事件反应时间等 ) 之外,还要考虑从输入引脚经输入级 (Tin) 到模 块和从模块经输出驱动级到引脚 (Tout) 的时序以及信号在导线上的传播 (Tprop)。 请注意,在 DXn 输入级中可能会有额外的延迟,因为数字滤波器和同步级会导致系统性 延迟。如果使用这些功能,就必须考虑这些延迟。 15.4.6.1 闭环延迟 对于一个 SSC 连接,限制其波特率的系统固有因素是闭环延迟。在一个典型应用设置 中,以全双工模式连接的一个通信主器件和一个从器件使用独立的数据线进行发送和接 收。在一般情况下,所有的发送器使用一个移位时钟沿进行发送,所有的接收器使用另 一个移位时钟沿进行接收。主器件的 SSC 模块发出发送数据、移位时钟和可选的从选择 信号。因此,波特率产生 (BRG) 和从选择产生 (SSG) 是主器件的一部分。帧控制对处于 主模式和从模式的 SSC 模块是类似的,主要区别在于由哪个模块产生移位时钟和可选的 从选择信号。 SSC 主器件 SSC 主模块 To u t TBUF Tin RBUF 帧控制 To u t BRG To u t SSG MTSR Tprop MRST Tprop 移位时钟 Tprop 从选择 Tp ro p SSC 从器件 Tin SSC 从模块 RBUF To u t TBUF 帧控制 Tin Tin S S C_Cl os edLoop 图 15-46 SSC 闭环延迟 主器件和从器件的 SSC 模块之间的信号通路包括主器件的输出驱动器、到从器件的连线 和从器件的输入级。从器件在接收的移位时钟的边沿接收主机的发送数据,并通过一个 类似的通路在另一方向将自己的数据发送给主器件。主机模块在其内部移位时钟边沿接 收从机的发送数据。为了确保主器件接收到正确的数据,当主机用下一个移位时钟边沿 ( 一般为 1/2 个移位时钟周期 ) 接收数据时,从机的发送数据必须稳定的 ( 遵守建立和保持 参考手册 USIC, V2.10 15-88 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 时间 ) 。为了避免数据损坏,必须仔细考虑输入和输出级的累计延迟、导线上信号传播时 间和发送器 / 接收器的反应时间,尤其是在波特率很高时。 在所给出的例子中,移位时钟信号产生与主器件 SSC 模块评估接收数据之间的时间由下 面的和值给出:Tout_master + 2 x Tprop + Tin_slave + Tout_slave + Tin_master + 模块反应时间 + 输 入建立时间。 输入通路的特点在于一个输入延迟主要取决于焊盘的输入级特性。 输出通路延迟由输出 驱动器延迟及其转换速率、外部负载和驱动器的电流能力决定。具体器件的输入 / 输出驱 动器特性值在数据表中给出。 图 15-47 以图形方式描述了闭环延迟和两个延迟补偿选项的效果,这两个延迟补偿选项 在 15.4.6.2 节 和 15.4.6.3 节中讨论。 参考手册 USIC, V2.10 15-89 V1.0, 2013-03 请遵守产品信息使用协议 1) 无任何延迟补偿 主机端的 SCLK (输出驱动器级 ) XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 主机端的 MTSR (输出驱动器级 ) 从机端的 SCLK (输入驱动器级 ) 主数据 Tout_master+ Tprop + T in_slave 从机端的 MRST (输出驱动器级 ) 主机端的 MRST (输入驱动器级 ) 2) 使用主模式延迟补偿 主机端的 SCLK (接收数据路径 ) 从数据 延迟可能导致一个 错误的从数据被锁存 从数据 Tout_slave+ Tprop + Tin_master 3) 使用完整的闭环延迟补偿 主机端的 SCLK (接收数据路径 ) 图 15-47 SSC 闭环延迟时序波形 在有延迟补偿的这两种情况 下,从数据都被正确锁存 。 SS C_Del ay CompW F 15.4.6.2 主模式下的延迟补偿 在主模式,通过延迟补偿可以达到更高的波特率。如果 ( 至少 ) 移位时钟引脚是双向的, 就可以进行这种补偿。 参考手册 USIC, V2.10 15-90 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SSC 主器件 SSC 主模块 To u t TBUF Tin RBUF 帧控制 BRG SSG MTSR Tprop MRST Tprop 移位时钟 Tprop 从选择 Tp ro p SSC 器件 Tin SSC 从模块 RBUF To u t TBUF 帧控制 Tin Tin S S C_Del ay Comp 图 15-48 带延迟补偿的 SSC 主模式 如果主模式下的接收移位时钟信号直接取自与输出信号并行的输入功能,则主器件的移 位时钟输出的输出延迟是可补偿的,并且只需考虑主器件的输入延迟和从器件的输入延 迟之间的差异,而不是考虑移位时钟路径上完整的主机输出延迟和从机输入延迟。当 DX1CR.INSW = 0 时 ( 发送移位时钟取自波特率生成器 ),延迟补偿由 DX1CR.DCEN = 1 使能。 在所给出的例子中,评估移位时钟信号和主机 SSC 模块接收数据之间的时间减少了 Tin_master + Tout_master。 虽然是主模式,但移位时钟输入和可选的从选择信号并未在内部直接连接到数据移位单 元,而是被当做来自输入引脚的外部信号。如果移位时钟输出引脚 ( 或从选择输出引脚, 分别 ) 是双向的,则 SSC 通信的这种延迟补偿并不会导致额外的引脚。在这种情况下, 输入信号被与其他内部信号分离,因为它与引脚本身的信号电平相关。 15.4.6.3 完整闭环延迟补偿 对于 SSC 通信,还可以通过使用 SSC 主器件和从器件上一个额外的引脚对完整闭环延 迟进行补偿。 参考手册 USIC, V2.10 15-91 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SSC 主器件 SSC 主模块 To u t TBUF Tin RBUF Tin 帧控制 BRG SSG MTSR Tprop MRST Tprop 移位时钟 Tprop (用于主接收) 移位时钟 Tprop 从选择 Tprop SSC 从器件 Tin SSC 从模块 RBUF To u t TBUF To u t 帧控制 Tin Tin S S C_Del ay CompP i n 图 15-49 SSC 完整闭环延迟补偿 这种延迟补偿方法的原理是从机将移位时钟反馈给主机,主机使用它作为接收移位时 钟。通过让接收移位时钟经过一个完整的闭环信号通路,即可对接收移位时钟进行全面 补偿。 从机必须通过置位 BRG.SCLKOSEL 来将 SCLKOUT 引脚功能设置为输出移位时钟,而 主机必须使用 DX1CR.DCEN = 1 和 DX1CR.INSW = 0 来将 DX1 引脚功能设置为接收来 自从机的移位时钟,并使能延迟补偿。 参考手册 USIC, V2.10 15-92 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.5 IC 间总线协议 (IIC) USIC 的 IIC 协议参照 IIC 总线规范 [1]。与该规范不同的是,在所有模式中, USIC 器件 假定总线信号的最大上升 / 下降时间为 300 ns。对于驱动能力,请参见 AC/DC 一章中的 焊盘特性。不支持 CBUS 模式和 HS 模式。 IIC 模式通过设置 CCR.MODE = 0100B 和 CCFG.IIC = 1(IIC 模式有效 ) 来选择。 15.5.1 简介 USIC IIC 特性: • 两线接口,一根线用于移位时钟传输和同步 ( 移位时钟 SCL),另一根线用于数据传输 ( 移位数据 SDA)。 • 标准模式 (100 kBit/s) 或快速模式 ( 高达 400 kBit/s) 通信 • 支持 7 位地址和 10 位地址 • 主模式操作 IIC 控制总线事务并提供时钟信号。 • 从模式操作 一个外部主机控制总线事务并提供时钟信号。 • 多主模式操作, 总线上可以连接多个主机,可进行总线仲裁,即 IIC 模块可以是主机或从机。一个 IIC 总线参与者的主 / 从操作可以从帧到帧发生改变。 • 高效的帧处理 ( 低软件负荷 ) • 强大的中断处理,因为有众多的指示标志 • 支持输入延迟补偿 15.5.1.1 信号说明 IIC 连接的特点在于使用两根信号线 (SDA 和 SCL)。这些信号的输出驱动器必须具有漏 极开路特性,以允许通过线与方式将所有的 SDA 线连接在一起,将所有的 SCL 线连接 在一起,从而形成一个 IIC 总线系统。由于这种结构的特点,由一个输出级驱动的高电平 不一定立即导致在相应的输入出现高电平。因此,每个 SDA 或 SCL 连接必须在同一时 刻输入和输出,因为输入功能一直监测信号的电平,在发送时也如此。 • 移位数据 SDA:输入由 DX0 级处理,输出信号 DOUT0 • 移位时钟 SCL:输入由 DX1 级处理,输出信号 SCLKOUT 图 15-50 示出了使用 USIC 的两个 IIC 总线参与者 ( 模块 IIC A 和 IIC B) 的一个连接。在 这个例子中,模块 IIC A 的引脚分配显示 SDA 和 SCL 有分离的输入和输出引脚。对于相 同的引脚,如果应用不提供具有 DOUT0 和一个 DX0 级输入,则可以使用该分配 ( 对 SCLKOUT 和 DX1 也类似 )。模块 IIC B 的引脚分配显示 DOUT0 和 一个 DX0 输入连接 在同一引脚,对 SCLKOUT 和一个 DX1 输入也是如此。 参考手册 USIC, V2.10 15-93 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) IIC 模块 A TBUF RBUF SCLKOUT 传送 协议 PPP IIC SCLKIN DX1 DOUT0 DIN0 DX0 + 3.3 V SCL + 3.3 V SDA IIC 模块 B SCLKOUT SCLKIN DX1 DOUT0 DIN0 DX0 TBUF RBUF 传送 协议 PPP IIC 波特率 发生器 fPB (IIC A) fSfPYBS ((IIIICC AB)) 波特率 发生器 IIC _Signals_ 图 15-50 IIC 信号连接 15.5.1.2 符号 一个符号是在线 SDA 和 SCL 上的一个边沿序列。符号包含 10 或 25 个时间量子 tq,这 取决于所选的波特率。 波特率发生器决定时间量子 tq 的长度,一个符号中的边沿序列由 IIC 协议预处理器处理。根据应用的需要,符号序列可以由用户编程。 以下是所定义的符号: • 总线空闲: SDA 和 SCL 为高电平。当前未发生数据传送。 • 数据位符号: SDA 在 SCL 的高电平阶段稳定。SDA 代表传送的位值。对于每一个传送的数据位, 都有一个时钟脉冲。在数据传送期间, SDA 只能在 SCL 为低电平时改变。 • 起始符号: 在 SCL 为高电平期间,信号 SDA 从高电平变为低电平,表示一个起始条件。在总线 为空闲时,该起始条件启动一次在 IIC 总线上的数据传送。 • 重复起始符号: 当总线为非空闲时,该起始条件在一个数据符号之后启动一次在总线上的数据传送。 因此, SDA 被置为高电平, SCL 被置为低电平,后面跟随一个起始符号。 参考手册 USIC, V2.10 15-94 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 停止符号: 在 SCL 为高电平时, SDA 的上升沿指示一个停止条件。该停止条件终止一次数据传 送,将总线释放为空闲状态。在一个启动条件和一个停止条件之间,可以传送任意数 量的字节。 15.5.1.3 帧格式 数据是通过两线 IIC 总线 (SDA, SCL) 传送的,使用一个确保可靠和高效传送的协议。一 个 ( 数据 ) 字节的发送者接收并检查紧随该字节之后的应答域的值。 IIC 是一个线与总线 系统,一个以上器件上的 0 电平会导致总线上出现 0 电平,该电平可被所有器件接收。 一个数据字包含 8 个数据位符号作为数据值,后面跟随另一数据符号作为应答位。数据 字可以被解译为地址信息 ( 在一个起始符号之后 ) 或传送的数据 ( 在地址之后 )。 为了能接收一个应答信号,数据位的发送者必须通过一个发送一个 1 作为应答值来释放 SDA 线。根据接收器的内部状态不同,发送的应答位可以是主动电平或被动电平。 SDA 主机 SCL 主机 SDA 从机 SCL 从机 起始 D7 D6 Dx D0 P 1 2 8 9 数据字 应答 1 0 1 0 1 0 1 0 停止 IIC_Frame _ 图 15-51 IIC 帧示例 ( 简化的 ) 15.5.2 操作 IIC 为了操作 IIC 协议,必须考虑以下问题: • 选择 IIC 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 IIC 参数。应编 程使位域 SCTR.TRM = 11B 。 输入级的配置必须在 CCR.MODE = 0000B 时完成,以 避免意外的输入信号边沿,然后可以通过设置 CCR.MODE = 0100B 来使能 IIC 模式。 • 引脚连接: 建立输入级DX0 ( 通过设置DX0CR.DPOL = 0) 与所选移位数据引脚SDA ( 信号DIN0) 的连接 ( 设置 DX0CR.INSW = 0),并配置发送数据输出信号 DOUT0 ( 通过设置 参考手册 USIC, V2.10 15-95 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SCTR.DOCFG = 00B) 到同一引脚。如果可用,该引脚对输入和输出可以是同一引 脚,也可以将所选择的输入引脚和输出引脚连接在一起构成 SDA 线。 同样的机制也适用于移位时钟线 SCL。在此, SCLKOUT 信号 ( 通过设置 BRG.SCLKCFG = 00B)和DX1级的一个输入必须连接(通过设置 DX1CR.DPOL = 0)。 IIC 协议不使用输入级 DX2。 如果在 DX0/1 级使能了数字输入滤波器,为了正确地计算信号时序,必须考虑这些延 迟。 用于 SDA 和 SCL 的引脚必须被设置为漏极开路模式,以支持 IIC 总线上信号线的线 与结构。 需要注意的是,只应在使能了 IIC 模式之后再执行使能备用复用输出端口功能的步 骤,以避免在输出信号线上出现意外的尖峰脉冲。 • 位时序配置: 在标准模式 (100 kBit/s),模块频率不能低于 2 MHz,而在快速模式 (400 kBit/s) ,模 块频率不能低于 10 MHz。此外,如果需要使用数字过滤器来消除最宽为 50 ns 的尖 峰脉冲,则滤波器频率不能低于 20 MHz。 如果另一个 IIC 参与者将总线上 SCL 的低电平阶段拉长,有可能使 SCL 高电平阶段 时序 ( 最大值为 1/fPPP ) 具有不确定性。 更详细的信息见 15.5.3 节。 • 数据格式配置: 数据格式必须被配置为8个数据位(SCTR.WLE = 7)、无限数据流(SCTR.FLE = 3FH)、 MSB 先移位 (SCTR.SDIR = 1)。奇偶校验位产生必须被禁止 (CCR.PM = 00B)。 • 一般提示: 如果被主机发送的地址选中 ,IIC 从模块会变为活动状态 ( 可接收或发送 )。在从机向 主机发送数据的情况下,它使用发送路径。因此,为了避免冲突,一个主机不得请求 从为自身通道定义的从地址读取数据。 内建的错误检测机制仅在 IIC 模块参加 IIC 总线通信时被激活。如果从器件无法处理 过高的频率,它可以延长 SCL 信号的低电平阶段。 对于符合 IIC 规范的数据传送,移位数据线 SDA 只应在 SCL = 0 期间改变 ( 由 IIC 总 线规范定义 )。 15.5.2.1 发送链 IIC总线协议在仲裁阶段和从器件处于发送状态期间要求一种位内响应(in-bit-response)。 这种响应机制所导致的发送链环路延迟会限制可达到的最大波特率,这与总线特性 ( 总线 负载、模块频率等 ) 密切相关。 图 15-50 示出了一般信号路径及一个从器件在发送情况下的延迟。由主器件产生的移位 时钟 SCL 输出到 SCL 线上,然后通过输入级和输入滤波器。现在,可以检测到边沿并相 应地产生 SDA 数据信号。SDA 信号通过输出级和导线后到达主器件的接收器部分。在 此,它在通过输入级和输入滤波器之后被采样。 在 SCL 信号再次变化之前,这个完整的信息处理环 ( 包括为获得稳定的信号电平所需要 的所有建立时间 ) 必须结束。在计算波特率时必须考虑该路径中的延迟 ( 波特率是 fPB 和 fPPP 的函数 )。 参考手册 USIC, V2.10 15-96 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.5.2.2 字节展宽 如果一个器件被选择作为收发器并应该发送一个数据字节,但发送缓冲器 TBUF 中不包 含有效的待发送数据,则该器件在前面的应答位结束后将 SCL 绑定在 0 电平。 15.5.2.3 主仲裁 在地址和数据发送期间,主发送器在 SCL 的上升沿检查每个数据位,看正在发送的值与 在 SDA 线上读出的值是否相等。如果相等,下一个数据位值可为 0。如果不相等 ( 发送 的值 = 1,读回的值 = 0),该主器件在本次发送仲裁中失败。该事件由状态标志 PSR.ARL 指示,如果被 PCR.ARLIEN 使能,可产生一个协议中断。 当在发送仲裁中失败后,软件必须重新初始化该完整帧,即在起始条件后从发送第一个 地址字节开始进行一次新的主发送尝试。仲裁也可发生在 ACK 位。 15.5.2.4 非应答和错误条件 在发生一个非应答或错误的情况下,TCSR.TDV 标志仍保持置位状态 ,但不会再继续发 送。用户软件必须首先使发送缓冲器失效并禁止发送 ( 通过写 FMRL.MTDV = 10B),然 后再用适当的值重新配置该发送操作 ( 通过写 TBUF) 作为对之前事件的反应。 在使用 FIFO 数据缓冲区的情况下,还需要清空并重新填充 FIFO 缓冲区。 15.5.2.5 模式控制行为 在多主模式,只支持运行模式 0 和停止模式 0 ,不能将器件编程为其他模式。 • 运行模式 0: 行为与编程设置的一样。如果 TCSR.TDV = 0 ( 未找到新的有效 TBUF 条目 ),当有 一个新的 TBUF 条目需要被处理时,IIC 模块等待 TDV 变为置位状态后再继续操作。 • 运行模式 1: 行为与编程设置的一样。如果在主模式且 TCSR.TDV = 0 ( 未找到新的有效 TBUF 条 目 ),当有一个新的 TBUF 条目需要被处理时, IIC 模块发送一个停止条件以结束该 帧。在从模式,与运行模式 0 没有区别。 • 停止模式 0: 位 TCSR.TDV 在内部被视为 0 ( 该位本身不会被停止模式修改 )。在主模式,当前运 行的字正常结束,但新字尚未开始 ( 等待 TDV 有效 )。 对于主模式和从模式,位 TDV 都被视为 0 时,如果一个外部主机读取 TDV,则从机 也会在总线上强加一个等待状态。 此外,不可能在等待状态强制产生一个停止条件。 原因在于,一次主机读传送必须以 一个非应答后面跟随一个停止条件来结束,以允许从机释放其 SDA 线。否则,从机 可能迫使 SDA 线为 0 ( 下一字节的第一个数据位 ) ,使得不可能产生停止条件 (SDA 的上升沿 )。 要继续操作,必须将工作模式切换到运行模式 0。 • 停止模式 1: 与停止模式 0 相同,但主机还要另外发送一个停止条件来结束当前帧。 参考手册 USIC, V2.10 15-97 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 如果主器件在一个 10 位地址的第一个字节之后请求了停止模式 1 ,则将发送一个停 止条件。在这种情况下,从器件会产生一个错误中断。 15.5.2.6 数据传送中断处理 数据传送中断指示与 IIC 帧处理相关的事件。由于在 IIC 协议中数据输入和输出引脚是相 同的,IIC 发送器也会在其输入引脚接收到输出数据。但是,在这种情况下不会产生与接 收相关的中断。 • 发送缓冲器事件: 发送缓冲器事件指示标志 PSR.TBIF 在发送缓存器 TBUF 的内容被加载到发送移位寄 存器时置位,它指示由 TBUF 条目请求的操作已经开始。 当该事件发生时,位 TCSR.TDV 被清零。该中断用于在当前 TBUF 条目正在进行时 ( 由发送器部分处理 ) 写下一个 TBUF 条目。 • 接收事件: 该接收事件标志 PSR.RIF 指示一个新的数据字节已被写入到接收缓冲器 RBUF0/1 ( 一个新帧的第一个数据字节除外,该字节由备用接收中断指示 )。当收到数据字节时, 该标志被置位 ( 在 SCL 的下降沿后 )。该中断可以用于在一个新数据字节正在进行时 ( 由接收器部分处理 ) 读取接收到的数据。 • 备用接收事件: 备用接收事件标志 AIF 基于位 RBUFSR[9] ( 同 RBUF[9]),它指示接收的数据字是一 个新数据帧的第一个数据字。 • 发送移位事件: 发送移位事件指示标志 TSIF 在一个数据字节的最后一个数据位开始后被置位。 • 接收开始事件: 接收开始事件指示标志 RSIF 在一个数据字节的第一个数据位的采样点之后被置位。 注: 如果在 IIC 数据传送期间不需要发送移位事件和接收开始事件,则可以将其忽略。 15.5.2.7 IIC 协议中断事件 在 IIC 模式可产生下述协议相关的事件,这些事件导致产生一个协议中断。 请注意,寄存器 PSR 中的位并不都由硬件自动清零,必须用软件清零,以监视新到来的 事件。 • 在一个帧的正确位置接收到起始条件 (PSR.SCR) • 在一个帧的正确位置接收到重复起始条件 (PSR.RSCR) • 在一个帧的正确位置传送了停止条件 (PSR.PCR) • 主仲裁失败 (PSR.ARL) • 请求了从机读 (PSR.SRR) • 收到应答 (PSR.ACK) • 收到非应答 (PSR.NACK) • 在一个帧的非预期位置检测到起始条件 (PSR.ERR) • 在一个帧的非预期位置检测到停止条件 (PSR.ERR) 参考手册 USIC, V2.10 15-98 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 作为从机, 10 位地址在第一个地址字节之后被一个停止条件中断 (PSR.ERR) • 主模式下的 TDF 从代码 (PSR.WTDF) • 从模式下的 TDF 主代码 (PSR.WTDF) • 发现保留的 TDF 代码 (PSR.WDTF) • 起始条件代码 (PSR.WTDF),在主模式下的一个运行帧期间 • 数据字节发送代码 (PSR.WTDF),在主模式下传送方向已经变为接收 (主读)之后 如果在 TBUF 中发现了一个错误的 TDF 代码,则错误事件有效,直到 TDF 值被纠正或 失效。如果相关的中断被使能,中断处理程序应在处理其他可能的中断事件之前首先检 查 PSR.WDTF,并纠正 TBUF 或使其失效。 15.5.2.8 波特率发生器中断处理 波 特 率 发 生 器 中 断 指 示 捕 获 模 式 定 时 器 已 经 达 到 其 最 大 值。发 生 该 事 件 时,位 PSR.BRGIF 被置 1。 15.5.2.9 接收器地址应答 在一个 ( 重复 ) 起始条件后,主机发送一个从地址来确定通信的目标器件。起始地址可以 包含一个或两个地址字节 ( 分别对应 7 位或 10 位寻址方案 )。在一个地址字节之后,对 所发送的地址敏感的从机必须应答这次接收。 因此,从机的地址可以在器件中编程设置,以便与接收地址进行比较。 在发生比较匹配 的情况下,从机用一个应答 (SDA = 0) 来响应主机。非寻址目标的从机用一个非应答 (SDA = 1) 响应主机。 除了编程的地址匹配以外,如果从机能处理相应的请求,还必须用一个应答来响应另一 个地址字节值。地址字节 00H 表示通用呼叫地址,该地址也可以被应答。值 01H 代表一 个起始字节产生,这是不可应答的。 为了允许对地址字节的不同值进行选择性的应答, IIC 实现了以下控制机制: • 如果位 PCR.ACK00 被置位,则地址字节 00H 被应答。 • 地址字节 01H 不被应答。 • 接收的第一个地址字节的前 7 位与编程的从地址 (PCR.SLAD[15:9]) 进行比较。如果 这些位相符,从机发送一个应答。此外,如果从地址被编程为 1111 0XXB,则从机等 待第二个地址字节,将其与 PCR.SLAD[7:0] 进行比较,并根据 10 位寻址模式的要求 相应地发送一个应答。用户必须注意保留地址 ( 更详细的说明请参见 IIC 规范 )。仅支 持地址 1111 0XXB 。 在上述每一种条件下,当发生地址匹配时,位 PSR.SLSEL 会被置 1。该位由一个 ( 重复 ) 起始条件自动清零。 参考手册 USIC, V2.10 15-99 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.5.2.10 接收器处理 一个被选中的从接收器总是会应答一个接收到的数据字节。如果接收器缓冲器 RBUF0/1 已满,且不能接收更多的数据,则响应的寄存器被覆盖 ( 在这种情况下, PSR.DLI 被置 位并可能产生一个协议中断 )。 在检查器件是否被选中之前,地址接收也使用寄存器 RBUF0/1 来存储地址。由于接收的 地址并不置位 RDV0/1,因此地址不能像接收的数据那样处理。 15.5.2.11 接收器状态信息 除了接收的数据字节以外,一些 IIC 协议相关信息被存储在接收缓冲器的 16 位数据字中。 接收的数据字节在 RBUF[7:0] 位置可用,而附加信息在 RBUF[12:8] 位置被监视。该结构 允许确定接收的每个数据字节的含义,不需读取额外的寄存器,这对使用一个 FIFO 数据 缓冲区的情况也是一样。 • RBUF[8]: 接收的应答位的值。该信息在 RBUFSR[8] 中也可用,作为协议参数。 • RBUF[9]: 该位为 1 指示在一个 ( 重复 ) 启动条件和紧随其后的地址接收之后,收到一个新帧的 第一个数据字节。该位为 0 指示后续的数据字节。该信息在 RBUFSR[9] 中也可用, 允许使用不同的中断例程对地址和数据进行处理。 • RBUF[10]: 该位为0指示器件在从模式下收到数据字节,该位为1 指示在主模式下收到数据字节。 • RBUF[11]: 该位为 1 指示在帧中一个错误位置发生的起始或停止条件导致在接收缓冲器中收到一 个不完整 / 错误的数据字节。该位与 PSR 中的帧错误状态位不完全相同,因为 PSR 中的位必须由软件清零 (“ 粘滞 ” 位 ),而 RBUF[11] 在每个数据字节都被求值。如果 RBUF[11] = 0,接收到的数据字节是正确的,与前面的错误无关。 • RBUF[12]: 该位为 0 指示已经收到所编程的地址。该位为 1 指示收到通用呼叫地址。 15.5.3 符号时序 IIC 符号的时序由主机激励移位时钟线 SCL 确定。标准和快速 IIC 模式的符号时序是不同 的。 • 100 k 波特的标准模式 (PCR.STIM = 0): 符号时序以每个符号占据 10 个时间量子 tq 为基础。要求最小的模块时钟频率 fPB = 2 MHz。 • 400 k 波特的标准模式 (PCR.STIM = 1): 符号时序以每个符号占据 25 个时间量子 tq 为基础。要求最小的模块时钟频率 fPB = 10 MHz。 只应在发送器或接收器为空闲或 CCR.MODE = 0 时改变波特率的设置。寄存器 BRG 中 的位定义一个时间量子 tq 的长度,由一个 fPCTQ 周期给出。 参考手册 USIC, V2.10 15-100 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • BRG.CTQSEL 定义时间量子发生器的输入频率 fCTQIN • BRG.PCTQ 定义一个时间量子的长度 (fCTQIN 被 1、2、3 或 4 分频 ) • BRG.DCTQ 定义每个符号的时间量子数 ( tq 的数目 = DCTQ + 1) 标准设置由 CTQSEL = 00B (fCTQIN = fPDIV) 和 PPPEN = 0 (fPPP = fIN) 给出。在这些条件 下,频率 fPCTQ 由下式给出: fPCTQ = fPIN  1 PDIV + 1  1 PCTQ + 1 (15.10) 为了规定的 300 ns 的 SDA 保持时间,在信号 SCL 的下降沿之后引入了一个保持延迟 tHDEL 。该延迟还可防止错误地检测到一个起始或停止条件。该延迟的长度可由位域 PCR.HDEL 编程。考虑到输入采样和输出更新,位域 HDEL 可以根据下面的公式编程: HDEL  300 ns  fPPP - 3  fPPP fPB +1 使用数字滤波器且 HDELmin = 2 HDEL  300 ns  fPPP - 3  fPPP fPB +2 不使用数字量且 HDELmin = 1 (15.11) 如果使用数字输入滤波器,则 HDEL 可在输入信号有尖峰脉冲的情况下补偿 2 个滤波器 周期的滤波器延迟 ( 应使用 fPPP ) 。这会确保 SDA 线上的一个数据位恰好在 SCL 的上升 沿之前或下降沿之后改变,而这样的变化不会被作为一个起始或停止条件处理。 15.5.3.1 起始符号 图 15-52 示出了一般起始符号的时序。 参考手册 USIC, V2.10 15-101 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SDA 总线空闲 SCL 标准模式 X0 快速模式 X0 起始符号 .... .... 45 15 16 .... .... 9X tq 24 X IIC_S tartTi mi ng 图 15-52 起始符号的时序 15.5.3.2 重复起始符号 在一个重复起始符号的第一部分期间, SCL 被驱动为低电平,这段时间由指定的时间量 子数定义。然后 SCL 输出一个高电平值。在检测到 SCL 输入出现上升沿之后,产生一个 正常的起始符号,如 图 15-53 所示。 SDA SCL 标准模式 快速模式 重复起始符号 起始符号 tH D EL X 0 .... 4 0 .... 4 5 .... 9 X X0 15 0 . . . . 15 16 . . . . 24 tq X IIC _RepStartTiming 图 15-53 重复起始符号的时序 15.5.3.3 停止符号 图 15-54 示出了停止符号的时序。 参考手册 USIC, V2.10 15-102 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SDA SCL tH D EL 停止符号 标准模式 X0 .... 45 快速模式 X0 .... 15 16 图 15-54 停止符号的时序 15.5.3.4 数据位符号 图 15-55 示出了一般数据位符号的时序。 总线空闲 .... .... 9X tq 24 X IIC_S topTi mi ng SDA SCL tH D EL 数据位符号 标准模式 X0 .... 45 快速模式 X0 .... 15 16 .... .... 9X tq 24 X IIC_DataB i tTi mi ng 图 15-55 数据位符号时序 如果在 SCL 输入检测到一个下降沿,则输出 SDA 在经过由 PCR.HDEL 定义的时间 tHDEL 之后方可改变,以确保遵守 SDA 保持时间。 PCR.HDEL 的值允许对 SCL 输入路径 ( 采 样、滤波 ) 的延迟进行补偿。 参考手册 USIC, V2.10 15-103 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 在进行一次应答发送的情况下, USIC IIC 等待接收器指示已接收到一个完整的字节。这 给路径额外地增加了 3 个 fPB 周期的延迟。必须正确地选择最小模块输入频率,以确保 SDA 相对于 SCL 上升沿的建立时间。 15.5.4 数据流处理 一个 IIC 帧中的数据流和符号序列的处理由 USIC 通信通道的 IIC 发送器部分控制。IIC 总 线协议是面向字节的,而一个 USIC 数据缓冲器字可包含最多 16 个数据位。除了要发送 的数据字节 ( 位于 TBUF[7:0]) 之外,用于控制 IIC 序列的位域 TDF ( 发送数据格式 ) 位于 TBUF[10:8]。TDF 代码定义应如何发送每个数据字节 (IIC 主机或 IIC 从机 ) ,并控制 ( 重 复 ) 起始和停止符号的发送。 该结构允许仅通过写 TBUFx 或使用一个 FIFO 缓冲区机制来为一个 IIC 主器件定义一个 完整的 IIC 帧,因为不必访问其他控制寄存器。还可以选择对 PSR 寄存器中的 ACK 和 NACK 位进行查询,仅在收到一个 ACK 后发送下一个数据字节。 如果遇到一个错误或意外的 TDF 代码 ( 例如,因在数据缓冲区建立器件发生一个软件错 误 ),主机会发送一个停止条件。这会导致当前运行帧的中止。从机模块等待一个有效的 TDF 代码并设置 SCL = 0。然后,软件必须使这个意外的 TDF 代码失效,并写入一个有 效的 TDF 代码。 请注意,在多主机总线系统的仲裁阶段期间,可能会由于一个意外的停止条件而引发一 个不可预知的总线行为。 15.5.4.1 发送数据格式 在主模式,可使用以下发送数据格式: 表 15-12 TDF 代码 000B 010B 011B 100B 主发送数据格式 描述 主机发送数据字节 该格式用于从主机向一个从机发送一个数据字节。发送器发送其数据字 节 (TBUF[7:0]),接收并检查由从机发送的应答位。 接收数据字节并发送应答 该格式用于由主机自从机读取一个数据字节。主机用一个 0 电平应答本 次传送,以继续进行数据传送。 TBUF[7:0] 的内容被忽略。 接收数据字节并发送非应答信号 该格式用于由主机自从机中读取一个数据字节。主机用一个 1 电平对本 次传送进行非应答以结束数据传送。TBUF[7:0] 的内容被忽略。 发送起始条件 在总线空闲时,如果 TBUF 包含该条目,则会产生一个起始条件。 TBUF[7:0] 的内容被作为要发送的第一个地址字 ( 位 TBUF[7:1] 为地 址, LSB 为读 / 写控制 )。 参考手册 USIC, V2.10 15-104 V1.0, 2013-03 请遵守产品信息使用协议 表 15-12 TDF 代码 101B 110B 111B XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 主发送数据格式 ( 续表 ) 描述 发送重复起始条件 在 TBUF 包含该项、 SCL = 0 并且没有字节传送正在进行的情况下,如 果器件是当前的主机,则会发送一个重复起始条件。为当前报文建立起 始条件的器件被定义为当前主机。 TBUF[7:0] 的内容被作为要发送的第 一个地址字节 ( 位 TBUF[7:1] 为地址, LSB 为读 / 写控制 )。 发送停止条件 在当前主机已经结束了其最后一次字节发送 ( 包括应答 ) 的情况下,如 果该格式在 TBUF 中,则它会发送一个停止条件。TBUF[7:0] 的内容被 忽略。 保留 不得使用该代码。除了释放 TBUF 条目和置位 PSR 中的错误位 ( 可导 致产生一个协议中断 ) 之外,不执行其他操作。 在从模式,可使用以下发送数据格式 ( 帧中的符号由主机控制,从机仅在被主机 “ 请求 ” 的情况下才必须发送数据 ): 表 15-13 TDF 代码 001B 从机发送数据格式 描述 从机发送数据字节 该格式用于自从机向主机发送一个数据字节 (TBUF[7:0])。发送器发送 其数据字节加上一个值为 1 的应答位。 15.5.4.2 有效的主发送数据格式 由于 IIC 帧格式的定义,只有一些特定的 TDF 代码序列式是可能的和有效的。如果 USIC IIC 模块在一个正在运行的帧中检测到一个错误的 TDF 代码,则本次传送被中止并且标 志 PCR.WTDF 被置位。此外,如果被用户使能,则会产生一个中断。在出现错误 TDF 代码的情况下,如果 USIC IIC 主机仍然占用 SDA 线,则会产生一个停止条件来立即中 止当前帧。但是,如果被访问的从机占用 SDA 线 ( 读传送 ),主机必须执行一次具有非 应答的空读操作,以使从机在主机能发送一个停止条件前释放 SDA 线。空读操作所接收 到的数据字节会被存储在 RBUF0/1,但 RDV0/1 不会被置位。因此,空读取不会产生一 个接收中断,所读数据字节也不会被存储到接收 FIFO 中。 如果在当前帧 ( 主读访问 ) 中传送方向发生了改变,则发送数据请求 (TDF = 000B) 是不 可能的,并且不会被接受 ( 导致一个错误的 TDF 代码指示 ) 。 参考手册 USIC, V2.10 15-105 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-14 有效 TDF 代码一览表 帧位置 有效 TDF 代码 第一个 TDF 代码 ( 主空闲 ) 读传送:第二个 TDF 代码 ( 在起始或重复 起始之后 ) 写传送:第二个 TDF 代码 ( 在起始或重复 起始之后 ) 读传送:在应答之后的第三个以及后续的 TDF 代码 读传送:在非应答之后的第三个以及后续 的 TDF 代码 起始 (100B) 带有应答的接收 (010B) 或带有非应答的接 收 (011B) 发送 (000B),重复起始 (101B),或停止 (110B) 带有应答的接收 (010B) 或带有非应答的接 收 (011B) 重复起始 (101B) 或停止 (110B) 写传送:第三个以及后续的 TDF 代码 发送 (000B),重复起始 (101B),或停止 (110B) • 第一个 TDF 代码: 一次主传送从 TDF 起始代码 (100B) 开始。所有其他代码被忽略,但不会指示 WTDF 错误。 • 在一次读访问的情况下,在一个起始 (100B) 或重复起始代码 (101B) 之后的 TDF 代码: 如果一次主读传送已经开始 ( 由地址字节的 LSB = 1 决定 ) ,则 SDA 的传送方向发生 改变,并且从机将主动驱动数据线。在这种情况下,只有代码 010B 和 011B 是有效 的。要在发生一个错误代码的情况下中止传送,主机在能产生停止条件之前必须执行 一次空读。 • 在一次写访问的情况下,在一个起始 (100B) 或重复起始代码 (101B) 之后的 TDF 代码: 如果一次主写传送已经开始 ( 由地址字节的 LSB = 0 决定 ) ,则主机仍然占用 SDA 线。在这种情况下,发送 (000B)、重复起始 (101B) 和停止 (110B) 代码都是有效的。 其他代码都被视为错误代码。要在发生一个错误代码的情况下中止传送,则立即产生 停止条件。 • 在一次带有对前一数据字节的应答的读访问情况下,第三个以及后续命令的 TDF 代 码: 如果一次主读传送已经开始 ( 由地址字节的 LSB 决定 ),则 SDA 的传送方向发生改 变,并且从机将主动驱动数据线。为了迫使从机释放 SDA 线,主机必须对一次字节 传送进行非应答。在这种情况下,只有接收代码 010B 和 011B 是有效的。要在发生一 个错误代码的情况下中止传送,主机在能产生停止条件之前必须执行一次空读。 • 在一次带有对前一数据字节的非应答的读访问情况下,第三个以及后续命令的 TDF 代 码: 如果一次主读传送已经开始 ( 由地址字节的 LSB 决定 ),则 SDA 的传送方向发生改 变,并且从机将主动驱动数据线。为了迫使从机释放 SDA 线,主机必须对一次字节 传送进行非应答。在这种情况下,只有起始 (100B) 和停止代码 (110B) 是有效的。要 在发生一个错误代码的情况下中止传送,则立即产生停止条件。 参考手册 USIC, V2.10 15-106 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 在一次写访问的情况下,第三个以及后续命令的 TDF 代码: 如果一次主写传送已经开始 ( 由地址字节的 LSB 决定 ),主机仍然占用 SDA 线。在这 种情况下,发送 (000B)、重复起始 (101B) 和停止代码 (110B) 是有效的。其他代码被 视为错误代码。 要在发生一个错误代码的情况下中止传送,则立即产生停止条件。 • 主机在收到来自从机的一个非应答之后,会自动发送一个停止条件,除非随后的 TDF 代码请求一个重复起始条件。在这种情况下,只考虑该 TDF 代码,而其他所有 TDF 代码被忽略。 参考手册 USIC, V2.10 15-107 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 否 总线空闲? 是 TDF 否 = 100B ? 是 发送起始条件 指示仲裁失败 并释放总线 Send repeated start condition 发送 TBUF[7:0] 使用 ACK = 1 发送停止条件 指示错误 忽略 TBUF 是 仲裁失败 ? 否 取新的有效 TBUF 值 发送全 1 使用 ACK = 1 发送全 1 使用 ACK = 0 接收 发送或接收 ? 发送 是 TDF 否 = 000B ? TDF 是 = 010B? 否 是 TDF = 101 B? 否 是 TDF = 110 B? 否 否 TDF 是 = 011B? IIC_Mas terTrFl ow 图 15-56 IIC 主机发送 参考手册 USIC, V2.10 15-108 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.5.4.3 主发送 / 接收模式 在主发送模式,IIC 发送多个数据字节给从接收器。表 15-15 列出了主发送模式的 TDF 代 码序列。 表 15-15 TDF 代码序 列 第 1 个代码 第 2 个代码 用于数据发 送的后续代 码 最后一个代 码 主发送模式 TDF 代码序列 TBUF[10:8] TBUF[7:0] IIC 响应 (TDF 代码 ) 100B 从机地址 + 发送起始条件、从机 写控制位 地址和写控制位 000B 000B 110B 数据或第 2 发送数据或第 2 个从 个从机地址 机地址字节 字节 数据 发送数据 无关 发送停止条件 中断事件 SCR:指示检测到一个 起始条件 TBIF:可向 TBUF 写下 一个字 TBIF:可向 TBUF 写下 一个字 TBIF:可向 TBUF 写下 一个字 PCR:指示检测到一个 停止条件 在主接收模式,IIC 接收来自一个从发送器的多个数据字节。表 15-16 和表 15-17 列出了 在 7 位和 10 位地址模式下进行主接收的 TDF 代码序列。 表 15-16 TDF 代码序 列 第 1 个代码 第 2 个代码 用于数据接 收的后续代 码 主接收模式 TDF 代码序列 (7 位地址模式 ) TBUF[10:8] TBUF[7:0] IIC 响应 (TDF 代码 ) 中断事件 100B 从机地址 + 读控制位 发送起始条件、从机 地址和读控制位 SCR:指示检测到一个 起始条件 TBIF:可向 TBUF 写下 一个字 010B 无关 接收数据和发送 ACK TBIF:可向 TBUF 写下 位 一个字 AIF:可以读取第一个接 收到的数据 010B 无关 接收数据和发送 ACK 位 TBIF:可向 TBUF 写下 一个字 RIF:可以读取接收的后 续数据 参考手册 USIC, V2.10 15-109 V1.0, 2013-03 请遵守产品信息使用协议 表 15-16 TDF 代码序 列 用于接收最 后一个数据 的代码 主接收模式 TDF 代码序列 (7 位地址模式 ) TBUF[10:8] TBUF[7:0] IIC 响应 (TDF 代码 ) 011B 无关 接收数据和发送 NACK 位 最后一个代 110B 码 无关 发送停止条件 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 中断事件 TBIF:可向 TBUF 写下 一个字 RIF:可以读取接收的 最后一个数据 PCR:指示检测到一个 停止条件 表 15-17 主接收模式 TDF 代码序列 (10 位地址模式 ) TDF 代码序 TBUF[10:8] TBUF[7:0] IIC 响应 列 (TDF 代码 ) 中断事件 第 1 个代码 100B 从机地址 ( 发送起始条件、从机 SCR:指示检测到一个 第 1 个字节 地址 ( 第 1 个字节 ) 起始条件 )+ 写控制 和写控制位 TBIF:可向 TBUF 写下 位 一个字 第 2 个代码 000B 从机地址 ( 发送地址 ( 第 2 个字 TBIF:可向 TBUF 写下 第 2 个字节 节 ) 一个字 ) 第 3 个代码 101B 第 1 个从机 发送重复起始条件、 RSCR:指示检测到一 地址 + 读控 从机地址 ( 第 1 个字 个重复起始条件 制位 节 ) 和读控制位 TBIF:可向 TBUF 写下 一个字 第 4 个代码 010B 无关 接收数据和发送 ACK 位 TBIF:可向 TBUF 写下 一个字 AIF:可以读取第一个 接收到的数据 用于数据接 010B 收的后续代 码 无关 接收数据和发送 ACK 位 TBIF:可向 TBUF 写下 一个字 RIF:可以读取接收到 的后续数据 用于接收最 011B 后一个数据 接收的代码 无关 接收数据和发送 NACK 位 TBIF:可向 TBUF 写下 一个字 RIF:可以读取接收到 的最后一个数据 最后一个代 110B 码 无关 发送停止条件 PCR:指示检测到一个 停止条件 参考手册 USIC, V2.10 15-110 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 图 15-57 示出了在主机发送 / 从机接收和主机接收 / 从机发送序列期间的中断事件。 主发送 S 从地址的前7 位 WA 从地址的第二个字节 A 数据 A P 主接收 S 从地址的前7 位 WA 从地址的第二个字节 A Sr 从地址的前7 位 R A 数据 从主机到从机 自从机到主机 图 15-57 数据传送中断事件 15.5.4.4 从发送 / 接收模式 在从接收模式,不需要写 TDF 代码,数据接收由备用接收事件 (AIF) 或接收事件 (RIF) 来 指示。 在从发送模式,在收到自身的从机地址或者通用呼叫地址时,会触发从机读请求事件 (SRR)( 如果该选项被使能 )。然后 IIC 从机通过将 TDF 代码 001B 和主机请求的数据写入 TBUF 来发送数据给主机。从机不检查主机对发送数据回复 ACK 还是 NACK。 在这两种情况下,主机都会发送一个停止条件来结束数据传送,该停止条件由一个 PCR 事件指示。参见 图 15-57。 15.5.5 IIC 协议寄存器 在 IIC 模式,寄存器 PCR 和 PSR 处理与 IIC 相关的信息。 15.5.5.1 IIC 协议控制寄存器 在 IIC 模式,寄存器 PCR 中的位或位域依本节所述定义。 参考手册 USIC, V2.10 15-111 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PCR 协议控制寄存器 [IIC 模式 ] (3CH) 复位值:0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MCL ACKI K EN rw rw HDEL rw SAC KDIS ERRI EN SRRI EN ARLI EN NAC KIEN PCRI EN RSC RIEN SCRI EN STIM ACK 00 rw rw rw rw rw rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SLAD rw 域 SLAD 位 [15:0] ACK00 16 STIM 17 SCRIEN 18 RSCRIEN 19 类型 rw rw rw rw rw 描述 从地址 此位域包含所编程的从地址。第一个接收的地址字节中的 相应位与 SLAD[15:9] 比较,以检查地址是否匹配。如果 SLAD[15:11] = 11110B,则还要将第二个地址字节与 SLAD[7:0] 比较。 应答 00H 该位定义一个从器件是否应该对从地址 00H 敏感。 0B 从器件对该地址不敏感 1B 从器件对该地址敏感。 符号时序 该位定义一个符号使用多少个时间量子。 0B 一个符号包含 10 个时间量子。该时序适用于标准模 式 (100 kBaud)。 1B 一个符号包含 25 个时间量子。该时序适用于快速模 式 (400 kBaud)。 起始条件接收中断使能 该位允许在检测到一个起始条件时产生协议中断 0B 禁止起始条件中断。 1B 使能起始条件中断。 重复起始条件接收中断使能 该位允许在检测到一个重复起始条件时产生协议中断。 0B 禁止重复起始条件中断。 1B 使能重复起始条件中断。 参考手册 USIC, V2.10 15-112 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 PCRIEN 20 类型 rw NACKIEN 21 rw ARLIEN 22 rw SRRIEN 23 rw ERRIEN 24 rw SACKDIS 25 rw HDEL [29:26] rw 描述 停止条件接收中断使能 该位允许在检测到一个停止条件时产生协议中断。 0B 禁止停止条件中断。 1B 使能停止条件中断。 非应答中断使能 该位允许在主机检测到一个非应答时产生协议中断。 0B 禁止非应答中断。 1B 使能非应答中断。 仲裁失败中断使能 该位允许在检测到一次仲裁失败事件时产生协议中断。 0B 禁止仲裁失败中断。 1B 使能仲裁失败中断。 从机读请求中断使能 该位允许在检测到一个从机读请求时产生协议中断。 0B 禁止从机读请求中断。 1B 使能从机读请求中断。 错误中断使能 该位允许在检测到一个 IIC 错误条件 ( 由 PSR.ERR 或 PSR. WTDF 指示 ) 时产生协议中断。 0B 禁止错误中断。 1B 使能错误中断。 从机应答禁止 该位禁止为一个从器件产生有效应答信号 ( 有效应答 = 0 电平 )。一旦由软件置位,该位会在每次 ( 重复 ) 起始条件 产生时被自动清除。如果该位置 1 发生在收到一个字节后 ( 由一个中断指示 ) 字节后,但在下一个应答位开始之前, 则下一个应答位将使用被动电平发送。 这表示接收器不再 接收更多的字节。因此,如果第一个接收中断用来置 1 该 位,将会收到最少的 2 个字节。 0B 允许产生一个有效从应答 ( 从应答为 0 电平 = 可接 收更多字节 )。 1B 禁止产生一个有效从应答 ( 从应答为 1 电平 = 停止 接收 )。 硬件延迟 该位域用于补偿 SCL 信号的内部处理所带来的延迟 ( 参见 页 15-100) ,以遵守 IIC 协议所规定的 SDA 保持时间。 参考手册 USIC, V2.10 15-113 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 ACKIEN 30 MCLK 31 类型 rw rw 描述 应答中断使能 该位允许在主机检测到一个应答时产生协议中断。 0B 禁止应答中断。 1B 使能应答中断。 主时钟使能 该位使能主时钟 MCLK 的产生 ( 可用做通用频率输出,而 不能直接用于 IIC 协议 )。 0B 禁止 MCLK 产生,并且 MCLK 为 0。 1B 使能 MCLK 产生。 15.5.5.2 IIC 协议状态寄存器 下述 PSR 状态位或位域在 IIC 模式可用。请注意,寄存器 PSR 中的位不能由硬件清零。 向 PSCR 寄存器中的一个位写 1 可清除 PSR 寄存器中相应的标志。向 PSR 寄存器中的 一个位写 1 可置位相应的标志,但不会导致进一步的动作 ( 不会产生中断 )。写 0 没有任 何作用。 应在使能一个新协议之前将这些标志清零。 PSR 协议状态寄存器 [IIC 模式 ] (48H) 复位值:0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IF r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIF RIF TBIF TSIF DLIF RSIF ACK ERR SRR ARL NAC K PCR RSC R SCR WTD F SLS EL rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh 域 位 SLSEL 0 类型 rwh 描述 从选择 该位指示该器件被选择作为从机。 0B 该器件未被选择作为从机。 1B 该器件被选择作为从机。 参考手册 USIC, V2.10 15-114 V1.0, 2013-03 请遵守产品信息使用协议 域 位 WTDF 1 SCR 2 RSCR 3 PCR 4 NACK 5 ARL 6 SRR 7 参考手册 USIC, V2.10 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 类型 rwh rwh rwh rwh rwh rwh rwh 描述 发现错误的 TDF Code 代码1) 该位指示发现了一个意外 / 错误的 TDF 代码。如果 PCR.ERRIEN = 1,可产生一个协议中断。 0B 未发现错误的 TDF 代码。 1B 发现了错误的 TDF 代码。 收到起始条件 1) 该位指示在 IIC 总线上检测到一个起始条件。如果 PCR.SCRIEN = 1,可产生一个协议中断。 0B 未检测到起始条件。 1B 检测到一个起始条件。 收到重复起始条件 1) 该位指示在 IIC 总线上检测到一个重复起始条件。如果 PCR.RSCRIEN = 1,可产生一个协议中断。 0B 未检测到重复起始条件。 1B 检测到一个重复起始条件。 收到停止条件 1) 该位指示在 IIC 主线上检测到一个停止条件。如果 PCR.PCRIEN = 1,可产生一个协议中断。 0B 未检测到停止条件。 1B 检测到一个停止条件。 收到非应答 1) 该位这指示在主模式下收到一个非应答。该位在从模式下 不能被置 1。如果 PCR.NACKIEN = 1,可产生一个协议 中断。 0B 未收到非应答。 1B 收到一个非应答。 仲裁失败 1) 该位指示一次仲裁失败。如果 PCR.ARLIEN = 1,可产生 一个协议中断。 0B 冲裁未失败。 1B 冲裁已失败。 从机读请求 1) 该位指示检测到一个从机读请求。该位变为有效时将请求 位于发送缓冲区中的第一个可用数据字节。为了请求更多 的连续数据字节,发送缓冲区会发出更多的中断。为了结 束数据传送,主发送器会发送一个停止条件。如果 PCR.SRRIEN = 1,可产生一个协议中断。 0B 未检测到从机读请求。 1B 检测到从机读请求。 15-115 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 ERR ACK RSIF DLIF TSIF TBIF RIF AIF BRGIF 0 8 rwh 9 rwh 10 rwh 11 rwh 12 rwh 13 rwh 14 rwh 15 rwh 16 rwh [31:17] r 错误 1) 该位指示检测到一个 IIC 错误 error ( 帧格式或 TDF 代码 ) 。如果 PCR.ERRIEN = 1,可产生一个协议中断。 0B 未检测到 IIC 错误。 1B 检测到 IIC 错误。 收到应答 1) 该位指示在主机模式下收到一个应答。该位在从模式下不 能被置 1。如果 PCR.ACKIEN = 1,可产生一个协议中 断。 0B 未收到应答。 1B 收到一个应答。 接收器起始指示标志 0B 未发生接收器起始事件。 1B 发生了接收器起始事件。 数据丢失指示标志 0B 未发生数据丢失事件。 1B 发生了数据丢失事件。 发送移位指示标志 0B 未发生发送移位事件。 1B 发生了发送移位事件。 发送缓冲区指示标志 0B 未发生发送缓冲区事件。 1B 发生了发送缓冲区事件。 接收指示标志 0B 未发生接收事件。 1B 发生了接收事件。 备用接收指示标志 0B 未发生备用接收事件。 1B 发生了备用接收事件。 波特率发生器指示标志 0B 未发生波特率发生器事件。 1B 发生了波特率发生器事件。 保留 读访问返回 0 ;在 IIC 模式不被修改。 1) 该状态位可产生一个协议中断 ( 见 页 15-17)。通用中断状态标志在通用中断一章中描述。 参考手册 USIC, V2.10 15-116 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.6 IC 间音频总线协议 (IIS) 本节描述 USIC 模块如何处理 IIS 协议。该串行协议可处理一个工作在模式的器件和一个 工作在模式的器件之间的同步数据帧的接收和发送。一个基于 USIC 通信通道的 IIS 连接 可支持全双工与半双工数据传送。通过设置 CCR.MODE = 0011B 和 CCFG.IIS = 1(IIS 模 式有效 ) 可选择 USIC 的 IIS 模式。 15.6.1 引言 IIS 协议是一种同步串行通信协议,它主要用于音频和娱乐应用 [2]。 15.6.1.1 信号描述 一个 IIS 主机和一个 IIS 从机之间的连接基于以下信号: • 一个移位时钟信号 SCK.SCK。该信号在一个 IIS 连接建立之后一直由数据传送的主机 产生,在没有有效数据位被传送时也不会停止。 • 一个字地址信号 WA( 也称为 WS)。该信号由数据传送的主机产生。它指示一个新数 据字的开始和目标音频通道 ( 例如左 / 右 )。如果 WA 产生被使能 ( 通过设置 PCR.WAGEN = 1,对传送主机 ),则字地址输出信号 WA 在所有 SELOx 输出可用。 WA 信号在移位时钟的下降沿同步改变。 • 一个主发从收信号。如果发送器为 IIS 主器件,它产生这个主机发送从机接收数据信 号。数据在移位时钟的下降沿同步改变。 • 一个主收从发信号。如果发送器为 IIS 从器件,它产生这个主机接收从机发送数据信 号。数据在移位时钟的下降沿同步改变。 USIC 通信通道的发送器部分和接收器部分可一起使用,这样可以在一个 IIS 主器件和一 个 IIS 从器件之间建立一个全双工数据连接。 表 15-18 IIS 模式 主模式 从模式 IIS I/O 信号 接收数据 输入 DIN0, 由 DX0 处理 输入 DIN0, 由 DX0 处理 发送数据 输出 DOUT0 输出 DOUT0 时钟 字地址 输出 SCLKOUT 输出 SELOx 输入 SCLKIN, 输入 SELIN, 由 DX1 处理 由 DX2 处理 参考手册 USIC, V2.10 15-117 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) IIS 通信主机 TBUF DOUT0 RBUF DIN0 DX0 WA 发生器 波特率 发生器 SELOx SCLKOUT MCLKOUT SCLKIN DX1 主发送 / 从接收 主接收 / 从发送 字地址 ( 字选择) 移位时钟 IIS 通信从机 DIN0 DX0 RBUF DOUT0 TBUF SELIN DX2 SCLKIN DX1 主时钟输出 Synchronization Clock Input fPB (从机) fPB (主机) IIS _S i gnal s_ 图 15-58 IIS 信号 对于 USIC IIS 通信主器件,还有两个额外的信号可用: • 一个主设备时钟输出信号 MCLKOUT。该信号与移位时钟有固定的相位关系,用于支 持音频器件的过采样。也可将其用作具有同步 IIS 连接的一个通信网络的主时钟输出。 • 一个同步时钟输入信号 SCLKIN。该信号用于使移位时钟的产生与一个外部频率同 步,以支持不能直接由通信主机的系统时钟 fPB 产生的音频频率。也可将其用作具有 同步 IIS 连接的一个通信网络的主时钟输入。 15.6.1.2 协议概述 一个 IIS 连接能通过同一数据线支持两种不同数据帧的传送,例如,一个数据帧用于左声 道,另一个数据帧用于右声道。字地址信号 WA 用于区分不同的数据帧。每个数据帧可 包含多个数据字。 参考手册 USIC, V2.10 15-118 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 在一个 USIC 通信通道中,要发送的数据字被标记为用于左声道还是右声道。当数据被接 收时接收的数据字同样也包含一个可以识别 WA 状态的标记。 WA (WS) 右声道 左声道 SCK MSB LSB DOUT0 0 右声道数据帧 0 MSB LSB DIN0 X 右声道数据帧 X MSB LSB 左声道数据帧 0 MSB LSB 左声道数据帧 X IIS_Prot_ 图 15-59 协议概览 15.6.1.3 传送延迟 传送延迟特性允许数据传送 ( 发送和接收 ) 具有一个可编程的延迟 ( 以移位时钟周期计算 ) SCK WA DATA 无延迟 SCK WA DATA 使用延迟 1 IIS _Trans ferDel ay 图 15-60 IIS 传送延迟 15.6.1.4 外部音频器件的连接 IIS 信号可用于与外部音频器件 ( 例如编解码器 ) 或者其他音频数据源 / 目的进行通信。 参考手册 USIC, V2.10 15-119 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) USIC IIS MCLKOUT SCLKOUT WA DIN0 DOUT0 Audio-ADC MCLK_IN R SCK_IN 模拟 L 输入 WA_IN SD_OUT Audio-DAC MCLK_IN R SCK_IN L 模拟 输出 WA_IN SD_IN IIS _E x tCodec s 图 15-61 外部音频器件的连接 在有些应用中,尤其是音频 ADC 或 DAC,要求使用一个与移位时钟信号具有固定相位 关系的主时钟信号。 MCLKOUT 信号的频率是移位频率 SCLKOUT 的整数倍。该倍数因 子决定了外部器件的过采样因子 ( 一般取值为:256 或 384)。 15.6.2 操作 IIS 本节包含 IIS 的一般性问题,这些问题不与主模式或者从模式直接关联。 15.6.2.1 帧长与字长配置 在 WA 信号每次发生改变之后,就会有一个完整的数据帧被传送 ( 帧长小于或等于系统 字长 )。信号 WA 变化之后传送的数据位数由 SCTR.FLE 定义。一个数据帧可包含多个 数据字,一个数据字的长度由 SCTR.WLE 定义。WA 信号的改变将系统字长定义为两次 WA 信号改变之间的 SCLK 周期数 ( 右通道的可用位数和相同的左通道可用位数 )。 如果系统字长大于由 SCTR.FLE 定义的帧长度,则使用被动数据电平发送 (SCTR.PDL) 发送额外的位。如果系统字长比器件的帧长度短,则不能将发送数据的所有 LSB 都传送 出去。 建议将寄存器 TCSR 中的位 WLEMD、 FLEMD 和 SELMD 都编程为 0。 参考手册 USIC, V2.10 15-120 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.6.2.2 自动映射机制 在通过一种自动映射机制传送一个数据帧时,波特率和移位控制设置在内部保持不变。 可以在任何时刻将这些寄存器编程为新的设置,这些新设置在下一个数据帧生效。在一 个数据帧期间,虽然在数据帧开始后写入了新设置值,但所使用的 ( 映射的 ) 设置并未改 变。在每个数据帧开始后,之前写入的设置在内部被 “ 冻结 ”。 尽管器件实现了这种自动映射机制,但还是建议只在 IIS 协议被关闭时改变波特率和移位 控制设置。 15.6.2.3 模式控制行为 IIS 模式支持以下内核模式: • 运行模式 0/1: 行为与编程设置的一样,不影响数据传送。 • 停止模式 0/1: 位 PCR.WAGEN 在内部被视为 0( 位本身不会改变 )。如果 WAGEN = 1,则当前的系 统字周期结束, WA 产生也随后被停止,但 PSR.END 位不会被置 1。在进入停止模 式之前,完整的数据帧已经结束,包括由 PCR.TDEL 导致的可能的延迟。 当通过设置 WAGEN = 1 而脱离停止模式时, WA 产生重新开始。 15.6.2.4 传送延迟 传送延迟可用于使一次数据传送与一个事件 ( 例如 WA 信号的改变 ) 同步。该事件必须在 移位时钟 SCK 的下降沿同步产生 ( 与发送数据的改变类似 ),因为该事件的输入信号在 接收器中被直接采样 ( 其结果是,发送器可使用其下一边沿的检测信息 )。 当移位时钟正在运行时,不得使用与移位时钟异步的事件信号。在图 15-60 所示的例子 中,事件 (WA 信号改变 ) 由传送主器件产生,因此与移位时钟 SCK 信号同步。在 SCK 的上升沿,WA 信号被采样并被检查是否发生改变。如果检测到一个变化,传送延迟计数 器 TDC 会被自动加载为其可编程的重载值 (PCR.TDEL)。否则,该计数器会在每个 SCK 的上升沿减 1,直到达到 0 后停止计数。数据传送在 TDC 的值变为 0 开始。这种情况会 在下面两个条件下发生: • 当检测到该事件时, TDC 被重新加载为 PCR.TDEL = 0。 • 在向下计数时 TDC 达到 0。 传送延迟计数器位于 IIS 协议预处理器内部,不能通过软件查看。传送延迟以 SCK 周期 为单位,由 PCR.TDEL+1 给出。 在图 15-62 所示的例子中,TDC 的重载值 PCR.TDEL 为 0。当接收器端的采样值表现出 WA 信号改变时,计数器 TDC 被重新加载。如果重载值为 0,数据传送在 WA 改变后延 迟 1 个移位时钟周期再开始。 参考手册 USIC, V2.10 15-121 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SCK WA TDC DOUT0 DIN0 采样值 s s s s 0 0 X D0 D1 s = WA采样 D0 D1 s s s 0 X D0 D0 IIS _Trans ferDel ay 1 图 15-62 1 个移位时钟周期的传送延迟 没有任何传送延迟的理想情况如图 15-63 所示。在 WA 信号变化的同时数据输出值变为 有效。这意味着发送器预先 “ 知道 ” 该事件信号将在下一个 TCLK 上升沿发生改变。这可 通过在检测到前一 WA 变化后将系统字长减 1,从而延迟数据传送来实现。 SCK WA s s s s TDC 1 0 n n-1 n-2 DOUT0 X D0 D1 D2 DIN0 采样值 D0 D1 s = WA采样 s s s 1 0 n X D0 D1 D0 D1 IIS _Trans ferDel ay 0 图 15-63 无传送延迟 参考手册 USIC, V2.10 15-122 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 如果在检测到传送延迟结束时改变 WA,则传送开始,延迟计数器被重新加载为 PCR.TDEL。这样就允许在将 USIC 作为 IIS 器件运行时不带任何延迟。在这种情况下, 来自前一事件的内部延迟在一个新事件发生时恰好结束。如果 PCR.TDEL 被设置为一个 大于系统字长的数值,则不会发生数据传送。 15.6.2.5 奇偶校验模式 IIS 模式不支持奇偶校验位的产生,必须编程使位域 CCR.PM = 00B 。 15.6.2.6 传送模式 在IIS模式,必须编程使位域SCTR.TRM = 11B,以允许数据传送。设置 SCTR.TRM = 00B 将立即禁止和停止数据传送。 15.6.2.7 数据传送中断处理 数据传送中断指示与 IIS 帧处理相关的事件。 • 发送缓冲器中断 TBI: 位 PSR.TBIF 在一个数据字的第一个数据位开始后被置 1。 • 发送移位中断 TSI: 位 PSR.TSIF 在一个数据字的最后一个数据位开始后被置 1。 • 接收器启动中断 RSI: 位 PSR.RSIF 在接收器收到一个数据字的第一个数据位后被置 1。 发生事件时,位 TCSR.TDV 不会被清零,新数据会被加载到发送缓冲器。 • 接收中断 RI 与备用中断 AI: 在 WA = 0 的情况下,位 PSR.RIF 在接收器收到一个数据字的最后一个数据位后被置 1。位 RBUFSR.SOF 指示所接收的数据字是否为一个新数据帧的第一个数据字。 在 WA = 1 的情况下,位 PSR.AIF 在接收器收到一个数据字的最后一个数据位后被置 1。位 RBUFSR.SOF 指示所接收的数据字是否为一个新数据帧的第一个数据字。 15.6.2.8 波特率发生器中断处理 波 特 率 发 生 器 中 断 指 示 捕 获 模 式 定 时 器 已 经 达 到 其 最 大 值。该 事 件 发 生 时,位 PSR.BRGIF 被置 1。 15.6.2.9 协议相关的参数和错误 为了区分接收到的数据字用于左声道还是右声道,IIS 协议预处理器采样 WA 输入的电平 ( 恰好在 WA 变化之后 ),并将其作为协议相关错误 ( 尽管它不是错误,却是一个指示 ) 传 送到接收缓冲器状态寄存器的位 RBUFSR[9]。该位决定在收到一个新数据字时是激活标 准接收中断 ( 如果 RBUFSR[9] = 0) 还是激活备用接收中断 ( 如果 RBUFSR[9] = 1)。如 果相应的事件被定向到不同的中断节点,则左声道和右声道的输入数据由不同的中断处 理。标志 PAR 总是为 0。 参考手册 USIC, V2.10 15-123 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.6.2.10 发送数据处理 IIS 协议预处理器允许区分左声道和右声道的数据发送。因此,位 TCSR.WA 指示缓冲区 的数据将被发送到哪一个声道。如果 TCSR.WA = 0,数据将在 WA 的一个下降沿之后被 发送。如果 TCSR.WA = 1,数据将在 WA 的一个上升沿之后被发送。在 WA 变化后所采 样的 WA 值用于区分两个通道 ( 参见 PSR.WA)。 对于每一个数据字,如果 TCSR.WAMD = 1,位 TCSR.WA 可被发送控制信息 TCI[4] 自 动更新。在这种情况下,写入到 TBUF[15:0] 的数据 ( 或 IN[15:0],如果使用一个 FIFO 数 据缓冲区 ) 被视为左声道数据,而写入到 TBUF[31:16] 的数据 ( 或 IN[31:16] ,如果使用 一个 FIFO 数据缓冲区 ) 被视为右声道数据。 15.6.2.11 接收缓冲区处理 如果有接收 FIFO 缓冲区可用 (CCFG.RB = 1) 并且被使能用于数据处理 (RBCTR.SIZE > 0),建 议 在 IIS 模 式 设 置 RBCTR.RCIM = 11B。这 会 导 致:位 OUTR.RCI[0] = 1 指示该数据字为一个新数据帧的第一个数据字;通道由采样的 WA 值 指示,在 OUTR.RCI[4] 中给出。 在 RCI 模式 (RBCTR.RNM = 1),标准接收缓冲区事件和备用接收缓冲区事件可用于以下 操作: • 标准接收缓冲区事件指示可以从 OUTR 中读取一个数据字,该数据字所属于的一个数 据帧在 WA = 0 时开始。 • 备用接收缓冲区事件指示可以从 OUTR 中读取一个数据字,该数据字所属于的一个数 据帧在 WA = 1 时开始。 15.6.2.12 环路延迟补偿 IIS 协议的同步信令机制与 SSC 协议类似,应用设置必须考虑环路延迟。在 IIS 模式,主 模式下的环路延迟补偿允许获得更高的波特率。 更详细的信息请参见 SSC 一章中的描述。 15.6.3 操作主模式下的 IIS 为了操作主模式下的 IIS,必须考虑以下问题: • 选择 IIS 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 IIS 参数。应编 程使位域 SCTR.TRM = 11B。输入级的配置必须在 CCR.MODE = 0000B 时完成,以 避免意外的输入信号边沿,然后可以通过设置 CCR.MODE = 0011B 来使能 IIS 模式。 • 数据传送的引脚连接: 通过设置 DX0CR.INSW = 1 来建立输入级 DX0 与所选接收数据输入引脚 (DIN0) 的连 接。为发送器配置一个发送数据输出引脚 (DOUT0)。 数据移位单元允许基于同一 WA 信号进行全双工数据传送,DX0 级提供的值被视为数 参考手册 USIC, V2.10 15-124 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 据位 ( 不能独立于发送器来禁止接收功能 )。如果只是为了接收 IIS 数据,则发送器配 置不是必须的 ( 不为 DOUT0 信号分配引脚 )。 • 波特率产生: 必须选择所期望的波特率设置,该设置包括分数分频器和波特率发生器。必须编程使 位 DX1CR.INSW = 0 ,以利用波特率发生器输出 SCLK 直接作为数据移位单元的输 入。将移位时钟输出引脚配置为 SCLKOUT 的反向信号不会带来额外的延迟 (BRG.SCLKCFG = 01B)。 • 字地址 WA 的产生: 必须通过设置 PCR.WAGEN = 1 来使能 WA 的产生,并编程设置两次 WA 变化之间 的移位时钟周期数。必须编程使位 DX2CR.INSW = 0,以使用 WA 发生器作为数据移 位单元的输入。如果需要,还要为信号 SELOx 配置 WA 输出引脚。 • 数据格式配置: 必须根据应用要求通过编程寄存器 SCTR 来设置字长、帧长和移位方向。通常是 MSB 最先移位 (SCTR.SDIR = 1)。可使用发送控制信息 TCI[4] 来设置位 TCSR.WAMD, 以区分在 WA = 0 或 WA = 1 时要发送的数据字。 注: 为了避免在输出端出现意外的尖峰脉冲,必须在 IIS 模式被使能后再执行使能备用 输出端口功能的步骤。 15.6.3.1 波特率产生 波特率由 SCLK 信号的频率定义 ( 一个 fSCLK 周期代表一个数据位 )。 如果使用分数分频器模式产生 fPIN,则对于 fPIN 来说会有一个 fPB 周期的不确定性。这种 不确定性不会在多个 SCLK 周期累积。因此,可达到平均频率,但 SCLK 和 MCLK 信号 的 50% 占空比会有一个 fPB 周期的变化。 在 IIS 应用中,可选的 MCLK 输出信号与 SCLK 之间没有固定的相位关系。 SCLK 可以 基于 fPIN 频率 (BRG.PPPEN = 0)。在这种情况下,MCLK 信号与 SCLK 之间需要有固定 的相位关系 ( 例如:当使用 MCLK 作为外部器件的时钟参考时 )。必须使用额外的 2 分频 器 (BRG.PPPEN = 1)。使用该 2 分频器是因为 MCLK 信号在每个 fPIN 周期切换一次。此 后 SCLK 信号即以 MCLK 信号为基础产生,见图 15-64。 可调节的整数分频因子通过位域 BRG.PDIV 定义。 fSCLK = fPIN 2  1 PDIV + 1 fSCLK = fPIN 22  1 PDIV + 1 如果 PPPEN = 0 如果 PPPEN = 1 (15.12) 注: 在 IIS 协议中,主器件 ( 产生移位时钟和 WA 信号 ) 在 SCK 的下降沿改变其数据和 WA 输出线的状态。从发送器也必须在下降沿发送。接收数据的采样在 SCLK 的上 升沿完成。输入级 DX1 和 SCLKOUT 必须被编程为将移位时钟信号反相,以适合 内部信号。 参考手册 USIC, V2.10 15-125 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.6.3.2 WA 产生 字地址 ( 或字选择 ) 线 WA 定期地在 N 个 SCLK 信号周期之后切换。两次 WA 变化之间 的时间被称为系统字长,可以通过使用下面的位域编程。 在 IIS 主模式,系统字长定义如下: • BRG.CTQSEL = 10B 基于 SCLK 进行 WA 切换 • BRG.PCTQ 定义每个系统字长的 SCLK 周期数 N • BRG.DCTQ 定义每个系统字长的 SCLK 周期数 N N = (PCTQ + 1)  (DCTQ + 1) (15.13) 15.6.3.3 主时钟输出 主时钟信号 MCLK 可由 IIS 传送的主器件产生 (BRG.PPPEN = 1)。该信号特别用于连接 外部编码器件。其极性由位 BRG.MCLKCFG 配置,最后变为输出信号 MCLKOUT。 参考手册 USIC, V2.10 15-126 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) MCLK ½ x SCLK = (PDIV+1) x MCLK ½ x SCLK = (PDIV+1) x MCLK fPIN MCLK SCLK 发送器 DOUT0 接收器采样 的DIN0 D(n) D (n+1 ) D(n) 1 个 SCLK 周期 = 1 个数据位长度 D(n+1) SCLK 放大 IIS_MCLKSCLK 图 15-64 IIS 的 MCLK 和 SCLK 15.6.3.4 协议中断事件 在 IIS 主模式可产生下述协议相关的事件,这些事件可导致产生一个协议中断。 请注意,寄存器 PSR 中的位并不都是由硬件自动清零的,为了监视新到来的事件,必须 用软件清零。 • WA 上升沿 / 下降沿事件: WA 产生块指示两个在寄存器 PSR 中被监视的事件。标志 PSR.WAFE 在 WA 信号的 下降沿被置位,标志 PSR.WARE 上升沿被置位。如果 PCR.WAFEIEN = 1,会产生 一个针对下降沿的协议中断;类似地,如果 PCR.WAREIEN = 1,会产生一个针对上 升沿的协议中断。 • WA 结束事件: WA 产生块还指示,在通过写 PCR.WAGEN = 0 禁止了 WA 产生功能之后,何时停止 WA 的产生。如果 PCR.ENDIEN = 1,可产生一个协议中断。 • DX2T 事件: 触发信号 DX2T 的激活由 PSR.DX2TEV = 1 指示,如果 PCR.DX2TIEN = 1,可产生 一个协议中断。如果像在 SSC 模式那样使用延迟补偿,则使用该事件来评估补偿值 而不使用 WA 上升 / 下降沿信号 ( 详细信息请参见对应的 SSC 小节 )。 15.6.4 从模式下操作 IIS 为了操作从模式下的 IIS,必须考虑以下问题: 参考手册 USIC, V2.10 15-127 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) • 选择 IIS 模式: 建议在 CCR.MODE = 0000B 期间配置那些不能在运行时改变的所有 IIS 参数。应编 程使位域 SCTR.TRM = 11B。输入级的配置必须在 CCR.MODE = 0000B 时完成,以 避免意外的输入信号边沿,然后可以通过设置 CCR.MODE = 0011B 来使能 IIS 模式。 • 数据传送的引脚连接: 通过设置 DX0CR.INSW = 1,来建立输入级 DX0 与所选接收数据输入引脚 (DIN0) 的 连接。为发送器配置一个发送数据输出引脚 (DOUT0)。 数据移位单元允许基于同一 WA 信号进行全双工数据传送,DX0 级提供的值被视为数 据位 ( 能独立于发送器来禁止接收功能 )。如果只是为了接收 IIS 数据,则发送端配置 不是必须的 ( 不为 DOUT0 信号分配引脚 )。 为了避免在输出端出现意外的尖峰脉冲,必须在 IIS 模式被使能后再执行使能备用输 出端口功能的步骤。 • 移位时钟的引脚连接: 通过设置 DX1CR.INSW = 1 和反向极性 (DX1CR.DPOL = 1) 来建立输入级 DX1 与所 选移位时钟输入引脚 (SCLKIN) 的连接。 • WA 输入的引脚连接: 通过设置 DX2CR.INSW = 1 来建立输入级 DX2 与 WA 输入引脚 (SELIN) 的连接。 • 波特率产生: 从模式不需要波特率发生器,可通过分数分频器将其关闭。 • WA 产生: 从模式不需要 WA 产生功能,可将其关闭 (PCR.WAGEN = 0)。 15.6.4.1 协议事件和中断 在 IIS 从模式可产生下述协议相关的事件,这些事件可导致产生一个协议中断。 请注意,寄存器 PSR 中的位并不都是由硬件自动清零的,为了监视新到来的事件,必须 采用软件清零。 • WA 上升沿 / 下降沿 / 结束事件: 因为 WA 发生器被关闭,所以这些事件不可用。 • DX2T 事件 : 触发信号 DX2T 的激活由 PSR.DX2TEV = 1 指示,如果 PCR.DX2TIEN = 1,可产生 一个协议中断。 15.6.5 IIS 协议寄存器 在 IIS 模式,寄存器 PCR 和 PSR 处理与 IIS 相关的信息。 15.6.5.1 IIS 协议控制寄存器 在 IIS 模式, PCR 寄存器中的位或位域依本节所述定义。 参考手册 USIC, V2.10 15-128 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PCR 协议控制寄存器 [IIS 模式 ] (3CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MCL K 0 rw rw TDEL rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DX2 TIEN 0 ENDI WAR WAF EN EIEN EIEN 0 SELI DTE WAG NV N EN rw rw rw rw rw rw rw rw rw 域 位 WAGEN 0 DTEN 1 SELINV 2 WAFEIEN 4 参考手册 USIC, V2.10 类型 rw rw rw rw 描述 WA 产生使能 该位使能 / 禁止字地址控制输出信号 WA 的产生。 0B IIS 可作为从器件使用。字地址信号的产生被禁止。 输出信号 WA 为 0。 MCLKO 信号的产生取决于 PCR.MCLK。 1B IIS 可作为主器件使用。字地址信号的产生被使能。 该信号在被使能后以 0 开始。 MCLK 的产生被使 能,与 PCR.MCLK 无关。 在清除 WAGEN 后, USIC 模块在接下来的 4 个 WA 周期内停止产生 WA 信号。 数据传送使能 该位使能 / 禁止 IIS 帧的传送,即控制是否响应输入字地 址控制线信号 WA 变化的变化。 0B WA 输入信号的变化被忽略,不发生数据传送。 1B 数据传送被使能。 选择反向 该位定义 SELOx 输出的极性与内部产生的字地址信号 WA 的关系。 0B SELOx 输出与 WA 信号具有相同的极性。 1B SELOx 输出与 WA 信号具有相反的极性。 WA 下降沿中断使能 该位使能 / 禁止在产生 WA 下降沿产生时激活一个协议中 断。 0B 在产生 WA 下降沿时不激活协议中断。 1B 在产生 WA 下降沿时激活一个协议中断。 15-129 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 WAREIEN 5 ENDIEN 6 DX2TIEN 15 TDEL [21:16] MCLK 31 0 3, [14:7], [30:22] 类型 rw rw rw rw rw rw 描述 WA 上升沿中断使能 该位使能 / 禁止在产生 WA 上升沿时激活一个协议中断。 0B 在产生 WA 上升沿时不激活协议中断。 1B 在产生 WA 上升沿时激活一个协议中断。 结束 (END) 中断使能 该位使能 / 禁止在清除 PCR.WAGEN 后 WA 信号产生停 止时激活一个协议中断 ( 完整的系统字长在 WA 信号停止 之前已处理完 ) 0B 不激活协议中断 1B 激活协议中断 DX2T 中断使能 该位使能 / 禁止在 DX2T 信号被激活时产生一个协议中断 ( 由 PSR.DX2TEV = 1 指示 )。 0B 在 DX2T 被激活时不产生协议中断。 1B 在 DX2T 被激活时产生协议中断。 传送延迟 该位域定义在检测到一个事件时要使用的传送延迟。如果 位域 TDEL = 0,额外延迟功能被关闭,引入一个移位时 钟周期的延迟。 主时钟使能 该位使能主时钟 MCLK 的产生 ( 不直接用于 IIS 协议,可 作为通用频率输出使用 )。 0B 禁止 MCLK 产生, MCLK 为 0。 1B 使能 MCLK 产生。 保留位 读访问返回 0,应写入 0。 15.6.5.2 IIS 协议状态寄存器 下述 PSR 状态位或位域在 IIS 模式可用。请注意,寄存器 PSR 中的位不能由硬件清零。 向 PSCR 寄存器中的一个位写 1 可清除 PSR 寄存器中相应的标志。向 PSR 寄存器中的 一个位写 1 可置位相应的标志,但不会导致进一步的动作 ( 不会产生中断 )。写 0 无效。 应在使能一个新协议之前将这些标志清零。 参考手册 USIC, V2.10 15-130 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PSR 协议状态寄存器 [IIS 模式 ] (48H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IF r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIF RIF TBIF TSIF DLIF RSIF 0 END WAR E WAF E DX2 TEV 0 DX2 S WA rwh rwh rwh rwh rwh rwh r rwh rwh rwh rwh r rwh rwh 域 位 WA 0 DX2S 1 DX2TEV 3 WAFE 4 类型 rwh rwh rwh rwh 描述 字地址 该位指示在检测到 WA 变化之后所采样的 WA 输入信号 的状态。该信息被转发到相应的位 RBUFSR[9],以区分 接收到的是右声道还是左声道数据。 0B WA 的采样值为 0。 1B WA 的采样值为 1。 DX2S 状态 该位指示 DX2S 信号的当前状态,该信号被用作字地址 信号 WA。 0B DX2S 为 0。 1B DX2S 为 1。 检测到 DX2T 事件1) 该位指示 DX2T 信号是否被激活。在 IIS 从模式,如果 PCR.DX2TIEN = 1, DX2T 的激活会产生一个协议中断。 0B DX2T 信号未激活。 1B DX2T 信号已激活。 WA 下降沿事件 1) 该位指示已产生一个 WA 输出信号下降沿,如果 PCR.WAFEIEN = 1,该事件可产生一个协议中断。 0B 未产生 WA 下降沿。 1B 已产生 WA 下降沿。 参考手册 USIC, V2.10 15-131 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 WARE END RSIF DLIF TSIF TBIF RIF AIF BRGIF 0 5 rwh 6 rwh 10 rwh 11 rwh 12 rwh 13 rwh 14 rwh 15 rwh 16 rwh 2, [9:7], r [31:17] WA 上升沿事件 1) 该位指示已产生一个 WA 输出信号上升沿,如果 PCR.WAREIEN = 1,该事件会产生一个协议中断。 0B 未产生 WA 上升沿。 1B 已产生 WA 上升沿。 WA 产生结束 1) 该位指示在清零 PCR.WAGEN 后 WA 产生已结束。应在 软件清零 WAGEN 之前将该位清零。 0B WA 产生未结束。 ( 如果它正在运行且 WAGEN 已 被清零 )。 1B WA 产生已结束 ( 如果它一直都在运行 )。 接收开始指示标志 0B 未发生接收开始事件。 1B 发生了接收开始事件 数据丢失指示标志 0B 未发生数据丢失事件。 1B 发生了数据丢失事件。 发送移位指示标志 0B 未发生发送移位事件。 1B 发生了发送移位事件。 发送缓冲区指示标志 0B 未发生发送缓冲区事件。 1B 发生了发送缓冲区事件。 接收指示标志 0B 未发生接收事件。 1B 发生了接收事件。 备用接收指示标志 0B 未发生备用接收事件。 1B 发生了备用接收事件。 波特率发生器指示标志 0B 未发生波特率发生器事件。 1B 发生了波特率发生器事件。 保留 读访问返回 0,在 IIS 模式不被修改。 1) 该状态位可产生一个协议中断 ( 见页 15-17)。通用中断状态标志在通用中断一章中描述。 参考手册 USIC, V2.10 15-132 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.7 服务请求产生 USIC 模块提供六个服务请求输出 SR[5:0] ,这些服务请求为两个通道共享。服务请求输 出 SR[5:0] 在嵌套向量中断控制器 (NVIC) 中被连接到中断节点。 每个 USIC 通信通道都可被连接到最多 6 个服务请求处理机 ( 连接到 USICx.SR[5:0],尽 管一般只使用 3 或 4 个。例如:一个用于发送,一个用于接收,一个或两个用于协议或 错误处理,或者用于备用接收事件 )。 15.8 调试行为 每个 USIC 通信通道都能被预先配置为在 CPU 的程序执行被调试器停止时进入四个内核 模式之一。 详见 15.2.2.2 节 。 15.9 电源、复位和时钟 USIC 模块位于内核电源域。可通过一次系统复位将模块复位到其默认状态。 USIC 模块的时钟来自 SCU 的主时钟 MCLK。在默认状态, MCLK 被禁止,可通过 SCU_CGATCLR0 寄存器将其使能。使能和禁止模块时钟可能会引起负载变化并发生时 钟消隐,详见 SCU 一章中 CCU( 时钟门控 ) 一节的描述。强烈建议在用户初始代码中设 置模块时钟,以避免在运行期间发生时钟消隐。 注: 为了区分 USIC 波特率发生器输出和主时钟 (MCLK),在本章 (USIC) 中通篇使用 fPB 替代 SCU MCLK。 15.10 初始化和系统相关性 在操作 USIC 模块之前,应用程序必须使用以下初始化序列: • 通过向 KSCFG 寄存器中的 MODEN 和 BPMODEN 位写 1 来使能 USIC 模块。 15.11 寄存器 表 15-19 列出了对一个 USIC 通道及 FIFO 缓冲区编程所需要的全部寄存器。表中概述了 USIC 通信通道寄存器并定义了相对地址和复位值。 请注意,可用任何访问宽度 (8 位、16 位、32 位 ) 访问所有寄存器,与所描述宽度无关。 所有的 USIC 寄存器 ( 位域 KSCFG.SUMCFG 除外 ) 总是由系统复位来复位。位域 KSCFG.SUMCFG 的复位由调试复位执行。 注: 读那些被标记为 “w” 的寄存器位总是返回 0. 这些位用于修改其他寄存器中的触发 器,或用于触发内部操作。 图 15-65 示出了 USIC 模块寄存器和通道寄存器的寄存器类型。在一个具体的微控制器 中,USIC 模块 “x” 的模块寄存器用模块前缀 “USICx_” 来标记。USIC 模块 “x” 的通道寄 存器用通道前缀 “USICx_CH0_” 和 “USICx_CH1_” 来标记。 参考手册 USIC, V2.10 15-133 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) USICx 模块 通道 0 寄存器 通道 1 寄存器 FIFO 缓冲区 寄存器 FIFO 缓冲区 寄存器 通道寄存器 通道寄存器 模块寄存器 图 15-65 USIC 模块和通道寄存器 表 15-19 USIC 内核相关的寄存器和内核寄存器 寄存器 简称 寄存器全称 模块寄存器1) 偏移地 访问方式 址 读写 描述见 ID 模块标识寄存器 通道寄存器 008H U, PV U, PV 页 15-137 – CCFG KSCFG FDR BRG INPR DX0CR DX1CR DX2CR DX3CR DX4CR DX5CR 保留 通道配置寄存器 内核状态配置寄存器 分数分频器寄存器 波特率发生器寄存器 中断节点指针寄存器 输入控制寄存器 0 输入控制寄存器 1 输入控制寄存器 2 输入控制寄存器 3 输入控制寄存器 4 输入控制寄存器 5 000H 004H 00CH 010H 014H 018H 01CH 020H 024H 028H 02CH 030H BE BE – U, PV U, PV 页 15-141 U, PV U, PV 页 15-142 U, PV PV 页 15-152 U, PV PV 页 15-154 U, PV U, PV 页 15-143 U, PV U, PV 页 15-148 U, PV U, PV 页 15-150 U, PV U, PV 页 15-148 U, PV U, PV U, PV U, PV U, PV U, PV 参考手册 USIC, V2.10 15-134 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-19 USIC 内核相关的寄存器和内核寄存器 ( 续表 ) 寄存器 简称 寄存器全称 偏移地 访问方式 址 读写 描述见 SCTR TCSR PCR 移位控制寄存器 发送控制 / 状态寄存器 协议控制寄存器 034H 038H 03CH U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页 15-157 页 15-159 页 15-1452) 页 15-553) U, PV U, PV 页 15-834) U, PV U, PV 页 15-1125) U, PV U, PV 页 15-1296) CCR CMTR PSR 通道控制寄存器 捕获模式定时器寄存器 协议状态寄存器 040H 044H 048H U, PV U, PV U, PV U, PV PV U, PV U, PV U, PV 页 15-138 页 15-156 页 15-1452) 页 15-583) U, PV U, PV 页 15-864) U, PV U, PV 页 15-1145) U, PV U, PV 页 15-1316) PSCR RBUFSR RBUF RBUFD RBUF0 RBUF1 RBUF01SR FMR – – 协议状态清除寄存器 接收缓冲区状态寄存器 接收缓冲区寄存器 调试模式接收缓冲区寄存器 接收缓冲区寄存器 0 接收缓冲区寄存器 1 接收缓冲区 01 状态寄存器 标志修改寄存器 保留;不能访问该单元 保留 TBUFx 发送缓冲区输入单元 x (x = 00-31) 04CH 050H 054H 058H 05CH 060H 064H 068H 06CH 070H 07CH 080H + x*4 U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV BE U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV BE BE U, PV 页 15-147 页 15-174 页 15-172 页 15-173 页 15-167 页 15-168 页 15-168 页 15-165 – – 页 15-166 FIFO 缓冲区寄存器 BYP BYPCR 旁路数据寄存器 旁路控制寄存器 100H 104H U, PV U, PV 页 15-175 U, PV U, PV 页 15-175 参考手册 USIC, V2.10 15-135 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-19 USIC 内核相关的寄存器和内核寄存器 ( 续表 ) 寄存器 简称 寄存器全称 偏移地 访问方式 址 读写 描述见 TBCTR RBCTR TRBPTR TRBSR TRBSCR 发送缓冲区控制寄存器 接收缓冲区控制寄存器 发送 / 接收缓冲区指针寄存器 发送 / 接收缓冲区状态寄存器 发送 / 接收缓冲区状态清除寄存 器 108H 10CH 110H 114H 118H U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页 15-182 页 15-185 页 15-191 页 15-178 页 15-181 OUTR OUTDR – INx 接收缓冲区输出寄存器 调试模式接收缓冲区输出寄存器 保留 发送 FIFO 缓冲区 输入单元 x (x = 00-31) 11CH 120H 124H 17CH 180H + x*4 U, PV U, PV BE U, PV U, PV U, PV BE U, PV 页 15-190 页 15-191 – 页 15-189 1) 模块标识寄存器的详细信息在实现一节描述 ( 见页 15-137)。 2) 该页说明通用寄存器的情况 3) 该页说明 ASC 模式下通用寄存器的情况。 4) 该页说明 SSC 模式下通用寄存器的情况。 5) 该页说明 IIC 模式下通用寄存器的情况。 6) 该页说明 IIS 模式下通用寄存器的情况。 15.11.1 地址映射 USIC 通信通道的寄存器位于下述基地址。确切的寄存器地址由寄存器的相对地址 ( 在表 15-19 中给出 ) 加上通道基地址 ( 在表 15-20 中给出 ) 给出。 表 15-20 寄存器地址空间 模块 USIC0_CH0 USIC0_CH1 基地址 48000000H 48000200H 结束地址 480001FFH 480003FFH 备注 – – 参考手册 USIC, V2.10 15-136 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-21 FIFO 和保留地址空间 模块 基地址 结束地址 访问方式 读 USIC0 48000400H 480007FFH nBE 保留 48000800H 4800FFFFH BE 写 在直接 RAM 测试模式为 nBE ;否则 为 BE BE 备注 USIC0 的 RAM 区 由 USIC0_CH0 和 USIC0_CH1 共享 – 15.11.2 模块标识寄存器 模块标识寄存器指示 USIC 模块的功能和设计步骤。 USIC0_ID 模块标识寄存器 (4800 0008H) 复位值 : 00AA C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MOD_NUMBER r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_TYPE r MOD_REV r 域 位 MOD_REV [7:0] MOD_TYPE [15:8] MOD_NUMBE [31:16] R 类型 r r r 描述 模块版本号 MOD_REV 定义版本号。模块的版本号从数值 01H 开始 ( 第一版 )。 模块类型 该位域为 C0H。它定义该模块为 32 位模块。 模块号值 该位域定义了 USIC 模块标识号 (00AAH = USIC)。 参考手册 USIC, V2.10 15-137 V1.0, 2013-03 请遵守产品信息使用协议 15.11.3 通道控制和配置寄存器 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.11.3.1 通道控制寄存器 通道控制寄存器包含用于硬件端口控制、基于通道事件的中断产生控制、奇偶校验位产 生控制和 USIC 通道协议选择控制的使能 / 禁止位。 只有特权模式访问可对 FDR 写入。 CCR 通道控制寄存器 (40H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IEN r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIEN RIEN TBIE N TSIE N DLIE N RSIE N PM HPCEN 0 rw rw rw rw rw rw rw rw r MODE rw 域 MODE 位 类型 描述 [3:0] rw 工作模式 该位域为 USIC 通道选择协议。选择一个不可用的协 议 ( 见寄存器 CCFG) 或保留的组合会禁止 USIC 通 道。当在两个协议之间切换时,必须在选择一个新协 议之前禁止 USIC 通道。在这种情况下,必须用软件 清除或更新寄存器 PCR 和 PSR。 0H 禁止 USIC 通道。所有协议相关的状态机都被 设置为空闲状态。 1H 选择 SSC(SPI) 协议 2H 选择 ASC (SCI, UART) 协议。 3H 选择 IIS 协议。 4H 选择 IIC 协议。 其他位组合保留。 参考手册 USIC, V2.10 15-138 V1.0, 2013-03 请遵守产品信息使用协议 域 HPCEN PM RSIEN DLIEN XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 [7:6] rw 硬件端口控制使能 该位域使能对 DX[3:0] 和 DOUT[3:0] 引脚的硬件端口 控制。 00B 禁止硬件端口控制。 01B 使能对 DX0 和 DOUT0 的硬件端口控制。 10B 使能对 DX0 和 DOUT[1:0] 的硬件端口控制。 11B 使能对 DX0、DX[5:3] 和 DOUT[3:0] 的硬件端口 控制。 注: 硬件端口控制功能仅用于如双位和四位 SSC 这 种半双工配置的 SSC 协议位 SSC。对于其他所 有协议, HPCEN 必须总是被写为 00B。 [9:8] rw 奇偶校验模式 该位域定义被采样输入值的奇偶校验位的产生。 00B 禁止奇偶校验位产生 01B 保留 10B 选择偶校验 ( 数据中 1 的个数为奇数时,奇偶 位 = 1 ;数据中 1 的个数为偶数时,奇偶位 = 0)。 11B 选择奇校验 ( 数据中 1 的个数为奇数时,奇偶 位 = 0 ;数据中 1 的个数为偶数时,奇偶位 = 1) 10 rw 接收器开始中断使能 该位使能接收开始事件中断产生。 0B 禁止接收开始中断。 1B 使能接收开始中断。 在发生接收开始事件的情况下,由 INPR.TBINP 指示的服务请求输出 SRx 被激活。 11 rw 数据丢失中断使能 该位使能数据丢失事件中断产生 ( 当 RDVx = 1 时, 数据被接收到 RBUFx 中 )。 0B 禁止数据丢失中断。 1B 使能数据丢失中断,在发生数据丢失事件的情 况下,由 INPR.PINP 指示的服务请求输出 SRx 被激活。 参考手册 USIC, V2.10 15-139 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 TSIEN TBIEN RIEN AIEN BRGIEN 0 位 12 13 14 15 16 [5:4], [31:17] 类型 rw rw rw rw rw r 描述 发送移位中断使能 该位使能发送移位事件中断产生。 0B 禁止发送移位中断。 1B 使能发送移位中断。在发生发送移位事件的情 况下,由 INPR.TSINP 指示的服务请求输出 SRx 被激活。 发送缓冲区中断使能 该位使能发送缓冲区事件中断产生。 0B 禁止发送缓冲区中断。 1B 使能发送缓冲区中断。在发生发送缓冲区事件 的情况下,由 INPR.TBINP 指示的服务请求输 出 SRx 被激活。 接收中断使能 该位使能接收事件中断产生。 0B 禁止中断。 1B 使能接收中断。在发生接收事件的情况下,由 INPR.RINP 指示的服务请求输出 SRx 被激活。 备用接收中断使能 该位使能备用接收事件中断产生。 0B 禁止备用接收中断。 1B 使能备用接收中断。在发生备用接收事件的情 况下,由 INPR.AINP 指示的服务请求输出 SRx 被激活。 波特率发生器中断使能 该位使能波特率发生器事件中断产生。 0B 禁止波特率发生器中断。 1B 使能波特率发生器中断。在发生波特率发生器 事件的情况下,由 INPR.PINP 指示的服务请求 输出 SRx 会被激活。 保留 读访问返回 0,应写入 0。 15.11.3.2 通道配置寄存器 通道配置寄存器指示在 USIC 通道中可用的功能。 参考手册 USIC, V2.10 15-140 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) CCFG 通道配置寄存器 (04H) 复位值 : 0000 00CFH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 TB RB 0 IIS IIC ASC SSC r rr r rrrr 域 SSC ASC IIC IIS RB TB 位 类型 描述 0 r SSC 协议可用 该位指示 SSC 协议是否可用。 0B SSC 协议不可用。 1B SSC 协议可用。 1 r ASC 协议可用 该位指示 ASC 协议是否可用。 0B ASC 协议不可用 1B ASC 协议可用 2 r IIC 协议可用 该位指示 IIC 协议是否可用。 0B IIC 协议不可用。 1B IIC 协议可用。 3 r IIS 协议可用 该位指示 IIS 协议是否可用。 0B IIS 协议不可用。 1B IIS 协议可用。 6 r 接收 FIFO 缓冲区可用 该位指示额外的接收 FIFO 缓冲区是否可用。 0B 接收 FIFO 缓冲区不可用。 1B 接收 FIFO 缓冲区可用。 7 r 发送 FIFO 缓冲区可用 该位指示额外的发送 FIFO 缓冲区是否可用。 0B 发送 FIFO 缓冲区不可用。 1B 发送 FIFO 缓冲区可用。 参考手册 USIC, V2.10 15-141 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 0 [5:4], r 保留 [15:8], 读访问返回 0 ;应写入 0。 [31:16] 15.11.3.3 内核状态配置寄存器 内核状态配置寄存器 KSCFG 允许为器件的不同操作模式选择所期望的内核模式。 KSCFG 内核状态配置寄存器 (0CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 BPS UM 0 SUMCFG BPN OM 0 NOMCFG 0 BPM ODE N MOD EN r wr rw wr rw r w rw 域 位 MODEN 0 BPMODEN 1 类型 rw w 描述 模块使能 该位使能模块内核时钟和模块功能。 0B 模块被立即关闭 ( 不必遵守停止条件 )。模块 不响应模式控制操作,并且模块时钟被关闭。 模块不响应读访问,并且忽略写访问 (KSCFG 除外 )。 1B 模块被打开并且可以运行。在向 MODEN 写 1 后,建议读寄存器 KSCFG,以避免在访问其 他服务请求处理 寄存器之前控制块中流水线的 影响。 MODEN 位保护 该位使能对位 MODEN 的写访问。对该位的读访问 总是返回 0。 0B MODEN 保持不变。 1B MODEN 由写入值更新。 参考手册 USIC, V2.10 15-142 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 NOMCFG BPNOM SUMCFG BPSUM 0 位 [5:4] 7 [9:8] 11 [3:2], 6, 10, [31:12] 类型 rw w rw w r 描述 正常工作模式配置 该位域定义在正常工作模式下使用的内核模式。 00B 选择运行模式 0 01B 选择运行模式 1 10B 选择停止模式 0 11B 选择停止模式 1 NOMCFG 位保护 该位使能对位域 NOMCFG 的写访问。对该位的读访 问总是返回 0。 0B NOMCFG 保持不变。 1B NOMCFG 由写入值更新。 挂起模式配置 该位域定义在挂起模式下使用的内核模式。编码同 NOMCFG。 SUMCFG 位保护 该位使能对位域 SUMCFG 的写访问。对该位的读访 问总是返回 0。 0B SUMCFG 保持不变。 1B SUMCFG 由写入值更新。 保留 读访问返回 0 ;应写入 0。在从 BootROM 退出后, 位 2 的读出值可为 1( 但可被忽略 )。 15.11.3.4 中断节点指针寄存器 中断节点指针寄存器定义服务请求输出SRx,如果相应的事件发生并且中断产生被使能, SRx 会被激活。 INPR 中断节点指针寄存器 (18H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 PINP r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 AINP 0 RINP 0 TBINP 0 TSINP r rw r rw r rw r rw 参考手册 USIC, V2.10 15-143 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位域 TSINP TBINP RINP AINP PINP 0 位 类型 [2:0] rw [6:4] rw [10:8] rw [14:12] rw [18:16] rw 3, 7, 11, r 15, [31:19] 描述 发送移位中断节点指针 该位域定义在发生一个发送移位中断时哪一个服务请 求输出 SRx 被激活。 000B 输出 SR0 被激活。 001B 输出 SR1 被激活。 010B 输出 SR2 被激活。 011B 输出 SR3 被激活。 100B 输出 SR4 被激活。 101B 输出 SR5 被激活。 注: 该位域的所有其他设置被保留。 发送缓冲区中断节点指针 该位域定义在发生一个发送缓冲区中断或接收开始中 断时哪一个服务请求输出 SRx 被激活。 编码同 TSINP。 接收中断节点指针 该位域定义在发生一个接收中断时哪一个服务请求输 出 SRx 被激活。 编码同 TSINP。 可选接收中断节点指针 该位域定义在发生一个备用接收中断时哪一个服务请 求输出 SRx 被激活。 编码同 TSINP。 协议中断节点指针 该位域定义在发生一个协议中断时哪一个服务请求输 出 SRx 被激活。 编码同 TSINP。 保留 读访问返回 0 ;应写入 0。 15.11.4 协议相关寄存器 15.11.4.1 协议控制寄存器 协议控制寄存器中的位定义协议特有的功能。必须在使能一个新协议之前用软件配置这 些位。只考虑所选协议使用的那些的,其他位的读出值总是为 0。协议特有的含义在相关 协议的小节中描述。 参考手册 USIC, V2.10 15-144 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PCR 协议控制寄存器 (3CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR CTR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw 域 位 CTRx x (x = 0-31) 类型 rw 描述 协议控制位 x 该位是协议控制位。 15.11.4.2 协议状态寄存器 通过向寄存器 PSCR 中的一个位写 1 可清除协议状态寄存器中对应的标志。向 PSR 中的 一个位写 1 可置位相应的标志,但不能导致更进一步的动作 ( 不会产生中断 )。写 0 无效。 应在使能一个新协议之前用软件将这些标志清零。协议特有的含义在相关协议的小节中 描述。 PSR 协议状态寄存器 (48H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BRG IF r rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AIF RIF TBIF TSIF DLIF RSIF ST9 ST8 ST7 ST6 ST5 ST4 ST3 ST2 ST1 ST0 rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh 参考手册 USIC, V2.10 15-145 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位域 STx (x = 0-9) RSIF DLIF TSIF TBIF RIF AIF BRGIF 0 位 x 10 11 12 13 14 15 16 [31:17] 类型 rwh rwh rwh rwh rwh rwh rwh rwh r 描述 协议状态标志 x 见协议具体描述。 接收器开始指示标志 0B 未发生接收开始事件。 1B 发生了接收开始事件。 数据丢失指示标志 0B 未发生数据丢失事件。 1B 发生了数据丢失事件。 发送移位指示标志 0B 未发生发送移位事件。 1B 发生了发送移位事件。 发送缓冲区指示标志 0B 未发生发送缓冲区事件。 1B 发生了发送缓冲区事件。 接收指示标志 0B 未发生接收标志。 1B 发生了接收事件。 备用接收指示标志 0B 未发生备用接收事件。 1B 发生了备用接收事件。 波特率发生器指示标志 0B 未发生波特率发生器事件。 1B 发生了波特率发生器事件。 保留 ; 读访问返回 0 ;应写入 0。 15.11.4.3 协议状态清除寄存器 对该寄存器所有位的读访问总是返回 0。 参考手册 USIC, V2.10 15-146 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) PSCR 协议状态清除寄存器 (4CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 CBR GIF r w 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CAIF CRIF CTBI F CTSI F CDLI F CRSI F CST 9 CST 8 CST 7 CST 6 CST 5 CST 4 CST 3 CST 2 CST 1 CST 0 wwwwwwwwwwwwwwww 域 位 CSTx x (x = 0-9) CRSIF 10 CDLIF 11 CTSIF 12 CTBIF 13 CRIF 14 CAIF 15 CBRGIF 16 参考手册 USIC, V2.10 类型 w w w w w w w w 描述 清除 PSR 中的状态标志 x 0B 无操作 1B 标志 PSR.STx 被清除。 清除接收器开始指示标志 0B 无操作 1B 标志 PSR.RSIF 被清除。 清除数据丢失指示标志 0B 无操作 1B 标志 PSR.DLIF 被清除 清除发送改变指示标志 0B 无操作 1B 标志 PSR.TSIF 被清除 清除发送缓冲指示标志 0B 无操作 1B 标志 PSR.TBIF 被清除 清除接收指示标志 0B 无操作 1B 标志 PSR.RIF 被清除 清除备用接收指示标志 0B 无操作 1B 标志 PSR.AIF 被清除 清除波特率发生器指示标志 0B 无操作 1B 标志 PSR.BRGIF 被清除 15-147 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 0 [31:17] r 保留 读访问返回 0 ;应写入 0。 15.11.5 输入级寄存器 15.11.5.1 输入控制寄存器 输入控制寄存器包含定义输入级特性的位 ( 如输入级 DX0 由寄存器 DX0CR 控制等 )。 DX0CR 输入控制寄存器 0 DX2CR 输入控制寄存器 2 DX3CR 输入控制寄存器 3 DX4CR 输入控制寄存器 4 DX5CR 输入控制寄存器 5 (1CH) (24H) (28H) (2CH) (30H) 复位值 : 0000 0000H 复位值 : 0000 0000H 复位值 : 0000 0000H 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 DXS 0 rh r CM SFS DPO EL L 0 DSE DFE INS N NW 0 rw rw rw r rw rw rw r 210 DSEL rw 参考手册 USIC, V2.10 15-148 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 DSEL INSW DFEN DSEN DPOL SFSEL 参考手册 USIC, V2.10 位 类型 描述 [2:0] rw 输入信号的数据选择 该位域为协议预处理器定义输入线所对应的输入数据 信号。可从输入向量 DXn[G:A] 中选择。 000B 选择数据输入 DXnA 001B 选择数据输入 DXnB 010B 选择数据输入 DXnC 011B 选择数据输入 DXnD 100B 选择数据输入 DXnE 101B 选择数据输入 DXnF 110B 选择数据输入 DXnG 111B 数据输入总是为 1 4 rw 输入切换 该位定义数据移位单元输入是来自输入数据路径 DXn 还是来自所选择的协议预处理器。 0B 数据移位单元的输入由协议预处理器控制。 1B 数据移位单元的输入被连接到所选数据输入线。 如果信号直接来源于一个输入引脚而不经过协议 预处理器的处理,则使用该设置。 5 rw 数字滤波器使能 该位使能 / 禁止信号 DXnS 的数字滤波器。 0B 不对输入信号执行数字滤波。 1B 对输入信号执行数字滤波。 6 rw 数据同步使能 该位选择是使用异步输入信号还是经过同步的 ( 还可 选择滤波 ) 信号 DXnS 作为数据移位单元的输入。 0B 可使用未经同步的信号作为数据移位单元的输 入。 1B 可使用经过同步的信号作为数据移位单元的输 入。 8 rw DXn 的数据极性 该位定义输入信号的信号极性。 0B 输入信号未反相。 1B 输入信号被反相。 9 rw 采样频率选择 该位为同步后的信号 DXnS 定义数字滤波器的采样频 率。 0B 采样频率为 fPB 1B 采样频率为 fFD 15-149 V1.0, 2013-03 请遵守产品信息使用协议 域 CM DXS 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 [11:10] rw 15 rh 3, 7, r [14:12] , [31:16] 描述 组合模式 该位域选择使用同步后的 ( 还可选择滤波 ) 信号 DXnS 的哪个边沿来激活输入级的触发输出 DXnT。 00B 触发激活被禁止。 01B 上升沿激活 DXnT。 10B 下降沿激活 DXnT。 11B 两个边沿都激活 DXnT。 同步后的数据值 该位指示同步后的 ( 还可选择滤波 ) 输入信号的值。 0B DXnS 的当前值为 0。 1B DXnS 的当前值为 1。 保留 读访问返回 0 ;应写入 0。 DX1CR 输入控制寄存器 1 (20H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DXS 0 rh r CM SFS DPO EL L 0 DSE DFE INS DCE N NWN rw rw rw r rw rw rw rw DSEL rw 参考手册 USIC, V2.10 15-150 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 DSEL DCEN INSW DFEN DSEN DPOL 位 类型 描述 [2:0] rw 输入信号的数据选择 该位域为协议预处理器定义输入线所对应的输入数据 信号。可从输入向量 DX1[G:A] 中选择。 000B 选择数据输入 DX1A。 001B 选择数据输入 DX1B。 010B 选择数据输入 DX1C。 011B 选择数据输入 DX1D。 100B 选择数据输入 DX1E。 101B 选择数据输入 DX1F。 110B 选择数据输入 DX1G。 111B 数据输入总是为 1。 3 rw 延迟补偿使能 该位选择接收移位时钟是由 INSW 控制还是源自于输 入数据路径 DX1。 0B 接收移位时钟取决于 INSW 的选择。 1B 接收移位时钟被连接到所选数据输入线。如果在 SSC 和 IIS 协议中需要延迟补偿,则应使用该设 置。否则, DCEN 应总是为 0。 4 rw 输入切换 该位定义数据移位单元输入是来自输入数据路径 DX1 还是来自所选择的协议预处理器。 0B 数据移位单元的输入由协议预处理器控制。 1B 数据移位单元的输入被连接到所选择的数据输入 线。如果信号直接来自一个输入引脚而不经过协 议预处理器的处理,则应使用该设置。 5 rw 数字滤波器使能 该位使能 / 禁止信号 DX1S 的数字滤波器。 0B 不对输入信号执行数字滤波。 1B 对输入信号执行数字滤波。 6 rw 数据同步使能 该位选择是使用异步输入信号还是同步后的 ( 还可选 择滤波 ) 信号 DX1S 作为数据移位单元的输入。 0B 使用未经同步的信号作为数据移位单元的输入。 1B 使用同步后的信号作为数据移位单元的输入。 8 rw DXn 的数据极性 该位定义输入信号的信号极性。 0B 输入信号未反相。 1B 输入信号被反相。 参考手册 USIC, V2.10 15-151 V1.0, 2013-03 请遵守产品信息使用协议 域 SFSEL CM DXS 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 9 rw [11:10] rw 15 rh 7, r [14:12] , [31:16] 描述 采样频率选择 该位为同步后的信号 DX1S 定义数字滤波器的采样频 率。 0B 采样频率为 fPB。 1B 采样频率为 fFD。 组合模式 该位域选择使用同步后的 ( 还可选择滤波 ) 信号 DX1S 的哪一个边沿来激活输入级的触发输出 DX1T。 00B 触发激活被禁止。 01B 上升沿激活 DX1T。 10B 下降沿激活 DX1T。 11B 两个边沿都激活 DX1T。 同步后的数据值 该位指示同步后的 ( 还可选择滤波 ) 输入信号的值。 0B DX1S 的当前值为 0。 1B DX1S 的当前值为 1。 保留 读访问返回 0 ;应写入 0。 15.11.6 波特率发生器寄存器 15.11.6.1 分数分频器寄存器 分数分频器寄存器 FDR 允许产生内部频率 fFD,该频率来源于系统时钟 fPB。 只有特权模式访问可对 FDR 写入。 FDR 分数分频器寄存器 (10H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 rw r RESULT rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DM 0 rw r STEP rw 参考手册 USIC, V2.10 15-152 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 STEP DM RESULT 0 0 位 [9:0] [15:14] [25:16] [31:30] [13:10], [29:26] 类型 rw rw rh rw r 描述 STEP 值 在标准分频器模式, STEP 包含 RESULT 的重载 值。在 RESULT 达到 3FFH 后, STEP 值被重新加 载到 RESULT。在分数分频器模式, STEP 定义在 每个输入时钟周期要被加到 RESULT 的值。 分频器模式 该位域定义分数分频器块的功能。 00B 分频器被关闭, fFD = 0。 01B 选择标准分频器模式。 10B 选择分数分频模式。 11B 分频器被关闭, fFD = 0 RESULT 值 在标准分频器模式,该位域在每个 fPB 周期被更新为 RESULT = RESULT + 1 在分数分频器模式,该位域在每个 fPB 周期被更新为 RESULT = RESULT + STEP 如果位域 DM 被写为 的起始值为 3FFH。 01B 或 10B, RESULT 被加载 保留为将来使用 必须写 0,以允许正确的分数分频器操作。 保留 读访问返回 0 ;应写入 0。 15.11.6.2 波特率发生器寄存器 用于波特率产生和时间测量的协议相关计数器由寄存器 BRG 控制。 只有特权模式访问可对 FDR 写入。 参考手册 USIC, V2.10 15-153 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) BRG 波特率发生器寄存器 (14H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 MCL SCL SCLKCFG KCF KOS 0 G EL PDIV rw rw rw r rw 15 14 13 12 11 10 0 DCTQ r rw 98 PCTQ rw 76 CTQSEL rw 5432 0 PPP TME EN N 0 r rw rw r 10 CLKSEL rw 域 CLKSEL TMEN PPPEN 位 [1:0] 3 4 类型 rw rw rw 描述 时钟选择 该位域定义输入频率 fPIN 00B 选择分数分频器频率 fFD。 01B 保留,无操作。 10B 触发信号DX1T定义 fPIN。信号MCLK 在每个fPIN 周期切换。 11B 信号 MCLK 与 DX1S 一致,fPIN 来源于 DX1S 的 上升沿。 时间测量使能 该位使能捕获模式定时器的时间测量功能。 0B 禁止时间测量:触发信号 DX0T 和 DX1T 被忽 略。 1B 使能时间测量:该 10 位计数器在每个 fPPP 周 期进行加 1 计数,在达到其最大值时停止计 数。如果触发信号 DX0T 或 DX1T 中有一个被 激活,则计数器值被捕获到位域 CTV,计数器 被清零并产生一个发送移位事件。 使能 fPPP 的 2:1 分频器 该位定义输入频率 fPPP。 0B 禁止 fPPP 的 2:1 分频器 fPPP = fPIN 1B 使能 fPPP 的 2:1 分频器 fPPP = fMCLK = fPIN / 2. 参考手册 USIC, V2.10 15-154 V1.0, 2013-03 请遵守产品信息使用协议 域 CTQSEL PCTQ DCTQ PDIV SCLKOSEL MCLKCFG SCLKCFG 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 [7:6] rw [9:8] rw [14:10] rw [25:16] rw 28 rw 29 rw [31:30] rw 2, 5, 15, r [27:26] 描述 CTQ 输入选择 该位为协议预处理器定义一个时间量子的长度。 00B fCTQIN = fPDIV 01B fCTQIN = fPPP 10B fCTQIN = fSCLK 11B fCTQIN = fMCLK 时间量子计数器的预分频器 该位域为协议预处理器中的时间量子计数器定义一个 时间量子 tq 的长度。 tQ = (PCTQ + 1) / fCTQIN 时间量子计数器的分母 该位域定义协议预处理器中的时间量子计数器要用到 的时间量子 tq 的数量。 分频器模式:用于产生 fPDIV 的分频因子 该位域定义输入频率 fPPP 与分频器频率 fPDIV 之间的 比率。 移位时钟输出选择 该位域选择 SCLKOUT 信号的输入源。 0B 选择来自波特率发生器的 SCLK 作为 SCLKOUT 输入源。 1B 选择来自 DX1 输入级的发送移位时钟作为 SCLKOUT 输入源。 注: 只能在一个SSC/IIS要求完整的闭环延迟补偿时 使用 SCLKOSEL = 1 这一设置 。对所有其他情 况,应使用默认设置 SCLKOSEL = 0。 主设备时钟配置 该位域定义 MCLKOUT 信号被动阶段的电平 0B 被动电平为 0。 1B 被动电平为 1。 移位时钟输出配置 该位域定义 MCLKOUT 信号被动阶段的电平,并且 使能 / 禁止半个 SCLK 周期的延时。 00B 被动电平为 0,延时被禁止。 01B 被动电平为 1,延时被禁止。 10B 被动电平为 0,延时被使能。 11B 被动电平为 1,延时被使能。 保留 读访问返回 0 ;应写入 0。 参考手册 USIC, V2.10 15-155 V1.0, 2013-03 请遵守产品信息使用协议 15.11.6.3 捕获模式定时器寄存器 捕获的定时器值由寄存器 CMTR 提供。 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) CMTR 捕获模式定时器寄存器 (44H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 CTV r rwh 域 CTV 0 位 [9:0] [31:10] 类型 rwh r 描述 捕获的定时器值 如果触发信号 DX0T 或 DX1T 中的一个被相应的输入 级激活,则计数器的值被捕获到该位域。 保留 读访问返回 0 ;应写入 0。 15.11.7 传送控制和状态寄存器 15.11.7.1 移位控制寄存器 数据移位单元由寄存器 SCTR 控制。该寄存器中的数值用于数据发送和接收。 请注意,移位控制设置 SDIR、WLE、FLE、DSM 和 HPCDIR 为发送器和接收器所共享。 对于每一次数据字传送,从发送器的第一个发送移位时钟边沿或接收器的第一个接收移 位时钟边沿开始,这些设置在内部被 “ 冻结 ”。软件必须注意,软件对这些位域的更新 要保持一致性 (例如,参考接收器开始指示 PSR.RSIF)。 参考手册 USIC, V2.10 15-156 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) SCTR 移位控制寄存器 (34H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 WLE 0 FLE r rwh r rwh 15 14 13 12 11 10 0 r 98 TRM rw 76 DOCFG rw 543210 0 HPC DIR r rw DSM rw PDL SDIR rw rw 域 SDIR PDL DSM 位 类型 描述 0 rw 移位方向 该位定义发送和接收数据字的移位方向。 01BB LSB 在先,一个数据字的第一位位于位 0。 MSB 在先,一个数据的第一位位于由位域 SCTR.WLE 给定的位置。 1 rw 被动数据电平 该位定义在没有数据可发送时移位数据输出信号的输 出电平。 PDL 电平在一个数据字的第一个相关联的发 送移位时钟边沿输出。 0B PDL 为 0。 1B PDL 为 1。 [3:2] rw 数据移位模式 该位域控制如何移入和移出接收和发送数据。 00B 接收和发送移位数据每次通过 DX0 和 DOUT0 移入和移出 1 位。 01B 保留。 10B 接收和发送数据每次通过两个输入级 (DX0 和 DX3) 和 DOUT[1:0] 分别移入和移出 2 位。 11B 接收和发送数据每次通过四个输入级 (DX0, DX[5:3]) 和 DOUT[3:0] 分别移入和移出 4 位。 注: 双位和四位输出模式仅用于 SSC 协议。对于所 有其他协议,必须总是向 DSM 写入 00B。 参考手册 USIC, V2.10 15-157 V1.0, 2013-03 请遵守产品信息使用协议 域 HPCDIR DOCFG TRM FLE XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 4 [7:6] [9:8] [21:16] 类型 rw rw rw rwh 描述 端口控制方向 该位定义端口引脚的方向,这些引脚允许硬件引脚控 制 (CCR.PCEN = 1)。 0B 硬件引脚控制功能被使能的引脚被选择为输入 模式。 1B 硬件引脚控制功能被使能的引脚被选择为输出 模式。 数据输出配置 该位定义内部移位数据值与数据输出信号 DOUTx 之 间的关系。 X0B DOUTx = 移位数据值 X1B DOUTx = 反相的移位数据值 发送模式 该位域描述移位控制信号如何被 DSU 解释。仅在移 位控制信号有效时才可能进行数据传送。 00B 移位控制信号被视为无效,不可能进行数据帧 传送。 01B 移位控制信号在 1 电平时被视为有效。这是允 许数据传送的设置。 10B 移位控制信号在 0 电平时被视为有效。在使用 一个低电平有效信号的情况下,建议避免使用 该设置,可使用 DX2 级的反相功能。 11B 移位控制信号被视为有效,而不参看实际信号 电平。在该信号的每个边沿后,都可以进行数 据帧传送。 帧长度 该位域定义在一个数据帧中要传送多少位。一个数据 帧可包含多个串接起来的数据字。 如果 TCSR.FLEMD = 1,该值可被数据处理机自动更 新。 参考手册 USIC, V2.10 15-158 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 WLE 0 位 [27:24] 5, [15:10], [23:22], [31:28] 类型 rwh r 描述 字长 对于接发数据,该位域定义接收和发送的数据字长度 ( 每个数据字中被传送的位数 )。数据字在数据缓冲 器中的位置总是右对齐 [ 从 WLE 到 0]。 如果 TCSR.WLEMD = 1,该值可被数据处理机自动 更新。 0H 数据字包含 1 个数据位,位于位 0。 1H 数据字包含 2 个数据位,位于位 [1:0]。 ... EH 数据字包含 15 个数据位,位于位 [14:0]。 FH 数据字包含 16 个数据位,位于位 [15:0]。 保留 读访问返回 0 ;应写入 0。 15.11.7.2 发送控制和状态寄存器 数据传送由寄存器 TCSR 控制和监视。 TCSR 发送控制 / 状态寄存器 (38H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 TE TVC TV 0 TSO F 0 r rh rh rh r rh r 15 14 0 r 13 12 WA TDV TR rwh rw 11 10 TDEN rw 9876543210 0 TDS SM TDV EOF SOF HPC MD WA MD FLE SEL WLE MD MD MD r rw rh rwh rw rw rw rw rw rw 参考手册 USIC, V2.10 15-159 V1.0, 2013-03 请遵守产品信息使用协议 域 WLEMD SELMD FLEMD WAMD XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 0 rw WLE 模式 该位控制数据器是否用发送控制信息 TCI[3:0] 和 TCI[4]( 参见页 15-27) 自动更新位域 SCTR.WLE 和 位 TCSR.EOF。如果该机制被使能,当通过写一个发 送缓冲器输入单元 TBUFx 或通过一个可选的数据缓 冲区向寄存器 TBUF 加载新数据时,会发生一次自动 更新。 0B 使能对 SCTR.WLE 和 TCSR.EOF 的自动更新。 1B 禁止对 SCTR.WLE 和 TCSR.EOF 的自动更新。 1 rw 选择模式 该位主要用于 SSC 协议。它控制数据处理机是否通 过发送控制信息 TCI[4:0] 和清除位域 PCR.CTR[23:21]( 见页 15-27) 自动更新位域 PCR.CTR[20:16]。如果该机制被使能,当通过写一 个发送缓冲器输入单元 TBUFx 或通过一个可选的数 据缓冲区向寄存器 TBUF 加载新数据时,会发生一次 自动更新。 0B 禁止对 PCR.CTR[23:16] 的自动更新。 1B 使能对 PCR.CTR[23:16] 的自动更新。 2 rw FLE 模式 该位控制数据处理机是否通过发送控制信息 TCI[4:0] 和清除位 SCTR.FLE[5] ( 见页 15-27) 来自动更新位 域 SCTR.FLE[4:0]。如果该机制被使能,当通过写一 个发送缓冲器输入单元 TBUFx 或通过一个可选的数 据缓冲区向寄存器 TBUF 加载新数据时,会发生一次 自动更新。 0B 禁止对 FLE 的自动更新。 1B 使能对 FLE 的自动更新。 3 rw WA 模式 该位主要用于 IIS 协议。它控制数据处理机是否通过 发送控制信息 TCI[4]( 见页 15-27) 来自动更新位 TCSR.WA。如果该机制被使能,当通过写一个发送 缓冲器输入单元 TBUFx 或通过一个可选的数据缓冲 区向寄存器 TBUF 加载新数据时,会发生一次自动更 新。 0B 禁止对位 WA 的自动更新。 1B 使能对位 WA 的自动更新。 参考手册 USIC, V2.10 15-160 V1.0, 2013-03 请遵守产品信息使用协议 域 HPCMD SOF EOF XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 4 rw 硬件端口控制模式 该位主要用于双位和四位 SSC 协议。它控制数据处 理机是否通过发送控制信息 TCI[1:0] 和 TCI[2]( 见页 15-27) 来自动更新位域 SCTR.DSM 和位 SCTR.HPCDIR。如果该机制被使能,当通过写一个 发送缓冲器输入单元 TBUFx 或通过一个可选的数据 缓冲区向寄存器 TBUF 加载新数据时,会发生一次自 动更新。 0B 禁止对位域 SCTR.DSM 和位 SCTR.HPCDIR 的 自动更新。 1B 使能对位域 SCTR.DSM 和位 SCTR.HPCDIR 的 自动更新。 5 rw 帧起始 该位仅用于 SSC 协议,在其他情况下被忽略。 它指示位于 TBUF 中的数据字被视为一个新 SSC 帧 的第一个字,如果该字为发送有效 (TCSR.TDV = 1)。当 TBUF 数据字被传送到发送移 位寄存器时,该位被清零。 0B 位于TBUF中的数据字不被视为一帧中的第一个 字。 1B 位于 TBUF 中的数据字被视为一帧中的第一个 字。当前运行的帧结束且 MSLS 变为无效 ( 遵 守所编程的延迟 )。 6 rwh 帧结束 该位仅用于 SSC 协议,在其他情况下被忽略。如果 位 WLEMD = 1,它可被数据处理机自动修改。该位 指示 TBUF 中的数据字被视为一个 SSC 帧的最后一 个字。如果是最后一个字, MSLS 信号在本次传送结 束并经过所编程的延迟后变为无效。当 TBUF 数据字 被传送到发送移位寄存器时,该位被清零。 0B TBUF 中的数据字不被视为一个 SSC 帧的最后 一个字。 1B TBUF 中的数据字被视为一个 SSC 帧的最后一 个字。 参考手册 USIC, V2.10 15-161 V1.0, 2013-03 请遵守产品信息使用协议 域 TDV TDSSM TDEN XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 7 rh 8 rw [11:10] rw 描述 发送数据有效 该位指示位于发送数据缓冲器 TBUF 中的数据字被视 为发送有效。 TBUF 数据字只能在 TDV = 1 时被发 出。当数据被传送到 TBUF 时 ( 通过写一个发送缓冲 器输入单元 TBUFx 或者通过可选的旁路或 FIFO 机 制 ),该位被置 1。 0B 在 TBUF 中的数据字被认为是发送无效的。 1B 在 TBUF 中的数据字被认为是发送有效的,并 且发送开始是可能的。当 TDV = 1 时,新数据 应当被写入 TBUFx 中的一位。 TBUF 数据单次模式 该位定义将数据字 TBUF 视为永久有效还是应该只发 送一次。 0B TBUF中的数据字在被加载到发送移位寄存器后 仍被视为有效。加载 TBUF 数据到移位寄存器 这一操作并不清除 TDV。 1B TBUF中的数据字在被加载到发送移位寄存器后 被视为有效。在 ASC 和 IIC 模式, TDV 通过 TBI 事件清除;而在 SSC 和 IIS 模式,TDV 通过 RSI 事件清除。如果使用一个可选的数据缓冲 区,必须编程使 TDSSM = 1。 TBUF 数据使能 该位域控制发送缓冲器 TBUF 中的数据字的发送开 始。 00B TBUF 中的数据字的发送开始被禁止。如果一次 发送开始,将发送被动数据电平。 01B 如果 TDV = 1,TBUF 中的数据字的发送可以开 始。 10B 如果 TDV = 1 并且 DX2S = 0,TBUF 中的数据 字的发送可以开始。 11B 如果 TDV = 1 并且 DX2S = 1,TBUF 中的数据 字的发送可以开始。 参考手册 USIC, V2.10 15-162 V1.0, 2013-03 请遵守产品信息使用协议 域 TDVTR WA TSOF TV XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 12 rw TBUF 数据有效触发 对于事件驱动的传送开始,例如基于定时器或出现在 输入引脚上的一个事件,如果触发信号 DX2T 被激 活,该位使能传送触发单元以置位 TCSR.TE。。对于 使用输入级 DX2 进行数据移位的协议,位 TDVTR 必 须为 0。 0B 位 TCSR.TE 被永久性置 1。 1B 当 TDV = 1 时,如果 DX2T 被激活,位 TCSR.TE 被置 1。 13 rwh 字地址 该位仅用于 IIS 协议,在其他情况下被忽略。如果位 WAMD = 1,该位可被数据处理机自动修改。位 WA 定义将 TBUF 中存储的数据发给哪一个通道。 0B TBUF 中的数据字将在检测到 WA 的下降沿后被 发送 ( 参见 PSR.WA)。 1B TBUF 中的数据字将在检测到 WA 的上升沿后被 发送 ( 参见 PSR.WA)。 24 rh 发送的帧起始 该位指示最近开始发送的数据字是否为一个新数据帧 的第一个数据字。该位在每个数据字发送开始时被更 新。 0B 最近开始发送的数据字不是一个数据帧的第一 个字。 1B 最近开始发送的数据字是一个数据帧的第一个 字。 26 rh 发送有效 该位代表发送缓冲区发生下溢,并指示最近开始的一 次数据字发送是否使用一个来自发送缓冲器 TBUF 的 有效数据字。该位在每个数据字发送开始时被更新。 0B 在没有有效数据可用的情况下开始了最近一次 数据字发送。其结果是,数据字的发送使用被 动电平 (SCTR.PDL) 开始。 1B 最近开始的一次数据字发送使用来自TBUF的有 效数据。 参考手册 USIC, V2.10 15-163 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 TVC TE 0 位 类型 27 rh 28 rh 9, r [23:14], 25, [31:29] 描述 发送有效累积 该位累积发送缓冲区下溢指示标志 TV。它和位 TV 一 起被自动清零,必须通过写 FMR.ATVC = 1 置位。 0B 自 TVC 被置位以来,至少发生了一次数据缓冲 区下溢条件。 1B 自 TVC 被置位以来,尚未发生数据缓冲区下溢 条件。 触发事件 如果传送触发机制被使能并且 TCSR.TDV = 1,该位 指示检测到一个触发事件。如果事件触发机制被禁 止,则位 TE 被永久性置 1。该位通过写 FMR.MTDV = 10B 清零。当位于 TBUF 中的数据字被 加载到移位寄存器时,该位也会被清零。 0B 未检测到触发事件。 TBUF 中数据字的发送不 能开始。 1B 检测到触发事件 ( 或触发机制被关闭 )。 TBUF 中数据字的发送可以开始。 保留 读访问返回 0 ;应写入 0。 15.11.7.3 标志修改寄存器 标志修改寄存器 FMR 允许仅通过写访问来修改与数据处理相关的控制和状态标志。对 FMR 中所有位的读访问总是返回 0。 另外,USIC 通道的服务请求输出可用软件激活 ( 这种激活通过写访问触发,并且自动变 为无效 )。 参考手册 USIC, V2.10 15-164 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) FMR 标志修改寄存器 (68H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 SIO5 SIO4 SIO3 SIO2 SIO1 SIO0 r wwwwww 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CRD CRD V1 V0 0 ATV C 0 MTDV ww r w r w 域 MTDV ATVC CRDV0 位 类型 描述 [1:0] w 修改发送数据有效 对该位域进行写操作可修改位 TCSR.TDV 和 TCSR.TE,以通过软件控制一次数据字发送的开始。 00B 无操作。 01B 位 TDV 被置 1, TE 保持不变。 10B 位 TDV 和 TE 被清零。 11B 保留 4 w 激活位 TVC 对该位进行写操作可置位 TCSR.TVC,以开始一次新 的发送缓冲区下溢条件累积。 0B 无操作。 1B 位 TCSR.TVC 被置 1。 14 w RBUF0 的清除位 RDV 向该位写 1 可清除位 RBUF01SR.RDV00 和 RBUF01SR.RDV10,以声明 RBUF0 中的接收数据 不再有效 ( 模拟一次读操作 )。 0B 无操作 1B 位 RBUF01SR.RDV00 和 RBUF01SR.RDV10 被清零。 参考手册 USIC, V2.10 15-165 V1.0, 2013-03 请遵守产品信息使用协议 域 CRDV1 SIO0, SIO1, SIO2, SIO3, SIO4, SIO5 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 15 16, 17, 18, 19, 20, 21 [3:2], [13:5], [31:22] 类型 w w r 描述 RBUF1 的清除位 RDV 向该位写 1 可清除位 RBUF01SR.RDV01 和 RBUF01SR.RDV11 以声明 RBUF1 中的接收数据不 再有效 ( 模拟一次读操作 )。 0B 无操作 1B 位 RBUF01SR.RDV01 和 RBUF01SR.RDV11 被清零。 置位中断输出 SRx 向该位域写 1 会激活 USIC 通道的服务请求输出 SRx。该操作不影响其他 USIC 通道的服务请求输 出。 0B 无操作。 1B 服务请求输出 SRx 被激活。 保留 读访问返回 0 ;应写入 0。 15.11.8 数据缓冲区寄存器 15.11.8.1 发送缓冲区单元 32 个独立的数据输入单元,从 TBUF00 到 TBUF31,可用作发送缓冲区数据项的地址单 元。被写入到其中一个单元的数据会出现在一个公用寄存器 TBUF 中。另外,被寻址的 数据输入单元的标号 [31:0] 的 5 位编码代表发送控制信息 TCI ( 更详细的信息请参见描述 协议的各节 )。 内部的发送缓冲区寄存器 TBUF 包含下一次要发送的数据字,该数据字将被加载到发送 移位寄存器。从 TBUF00 到 TBUF31 的所有位地址都可被读出。 TBUFx (x = 00-31) 发送缓冲区输入单元 x (80H + x*4) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TDATA rwh 参考手册 USIC, V2.10 15-166 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 TDATA 0 位 [15:0] [31:16] 类型 rwh r 描述 发送数据 该位域包含将要发送的数据 ( 读视图 )。 至少要对 TDATA 的低字节进行一次数据写操作才能 置位 TCSR.TDV。 保留 读访问返回 0 ;应写入 0。 15.11.8.2 接收缓冲器寄存器 RBUF0 和 RBUF1 接收缓冲器寄存器 RBUF0 包含从 RSR0[3:0] 接收的数据。一次读操作不会将接收数据的 状态从 “ 未读 = 有效 ” 改变为 “ 已读 = 无效 ”。 RBUF0 接收缓冲器寄存器 0 (5CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR0 rh 域 DSR0 0 位 [15:0] [31:16] 类型 rh r 描述 移位寄存器 0[3:0] 的数据 保留 读访问返回 0 ;应写入 0。 接收缓冲器寄存器 RBUF1 包含从 RSR1[3:0] 接收的数据。一次读操作不会将接收数据的 状态从 “ 未读 = 有效 ” 改变为 “ 已读 = 无效 ”。 参考手册 USIC, V2.10 15-167 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) RBUF1 接收缓冲器寄存器 1 (60H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR1 rh 域 DSR1 0 位 [15:0] [31:16] 类型 rh r 描述 移位寄存器 1[3:0] 的数据 保留 读访问返回 0 ;应写入 0。 接收缓冲器状态寄存器 RBUF01SR 提供位于接收缓冲器寄存器 RBUF0 和 RBUF1 中的 数据的状态。 RBUF01SR 接收缓冲器 01 状态寄存器 31 30 29 28 27 DS1 RDV 11 RDV 10 0 rh rh rh r (64H) 26 25 24 23 22 21 20 PER PAR R1 1 0 SOF 1 0 rh rh r rh r 复位值 : 0000 0000H 19 18 17 16 WLEN1 rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DS0 RDV 01 RDV 00 0 PER PAR R0 0 0 SOF 0 0 rh rh rh r rh rh r rh r WLEN0 rh 参考手册 USIC, V2.10 15-168 V1.0, 2013-03 请遵守产品信息使用协议 域 WLEN0 SOF0 PAR0 PERR0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 [3:0] rh RBUF0 中接收的数据字长度 该位域指示存储在 RBUF0 中的最新数据字内接收了 多少位。该数值指示必须将多少个数据位视为接收数 据,而 RBUF0 中的其他位被自动清零。接收的数据 位总是右对齐的。 对于除了双位和四位 SSC 以外的所有协议模式, 接收的数据字长度 = WLEN0 + 1。 对于双位 SSC 模式, 接收的数据字长度 = WLEN0 + 2。 对于四位 SSC 模式, 接收的数据字长度 = WLEN0 + 4。 6 rh RBUF0 中的帧起始 该位指示 RBUF0 中的数据字是否为一个数据帧的第 一个数据字。 0B RBUF0 中的数据不是一个数据帧的第一个数据 字。 1B RBUF0 中的数据是一个数据帧的第一个数据 字。 8 rh RBUF0 中的协议相关参数 该位指示协议相关参数的数值。该值的含义取决于所 选择的协议,并且会在 RBUF0 的数据字中加入补充 信息。 该位的含义在相关协议的小节中描述。 9 rh RBUF0 中的协议相关错误 该位指示协议相关参数是否满足预期值。该值的含义 取决于所选择的协议,并且会在 RBUF0 的数据字中 加入补充信息。 该位的含义在相关协议的小节中描述。 0B 接收的协议相关参数 PAR 与预期值匹配。该数 据字的接收会置位 PSR.RIF 并产生一个接收中 断。 1B 接收的协议相关参数 PAR 与预期值不匹配。该 数据字的接收会置位 PSR.AIF 并产生一个备用 接收中断。 参考手册 USIC, V2.10 15-169 V1.0, 2013-03 请遵守产品信息使用协议 域 RDV00 RDV01 DS0 WLEN1 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 13 14 15 [19:16] 类型 rh rh rh rh 描述 RBUF0 中的接收数据有效 该位指示寄存器 RBUF0 的数据内容的状态。该位与 位 RBUF01SR.RDV10 完全相同,并且允许读取接收 缓冲器寄存器的信息。当一个新数据被保存到 RBUF0 时,该位被置 1 ;当通过 RBUF 将该数据读 出时,该位被自动清零。 0B 寄存器 RBUF0 不包含尚未读出的数据。 1B 寄存器 RBUF0 包含尚未读出的数据。 RBUF1 中的接收数据有效 该位指示寄存器 RBUF1 的数据内容的状态。该位与 位 RBUF01SR.RDV11 完全相同,并且允许读取接收 缓冲器寄存器的信息。当一个新数据被保存到 RBUF1 时,该位被置 1 ;当通过 RBUF 将该数据读 出时,该位被自动清零。 0B 寄存器 RBUF1 不包含尚未读出的数据。 1B 寄存器 RBUF1 包含尚未读出的数据。 数据源 该位指示哪一个接收缓冲器寄存器 (RBUF0 或 RBUF1) 在寄存器 RBUF(D) 和 RBUFSR 中是当前可 见的 ( 对于相关状态信息 )。该位指示哪一个缓冲器 包含最老的数据 ( 最先接收的数据 )。该位与位 RBUF01SR.DS1 完全相同,并允许读取接收缓冲器 寄存器的信息。 0B 寄存器 RBUF 包含 RBUF0 的数据 ( 相关联的 状态信息也是如此 )。 1B 寄存器 RBUF 包含 RBUF1 的数据 ( 相关联的 状态信息也是如此 )。 RBUF1 中的接收数据字长度 该位域指示存储在 RBUF1 中的最新数据字内接收了 多少位。该数值指示必须将多少个数据位视为接收数 据,而 RBUF1 中的其他位被自动清零。接收的数据 位总是右对齐的。 对于除了双位和四位 SSC 以外的所有协议模式, 接收的数据字长度 = WLEN1 + 1。 对于双位 SSC 模式, 接收的数据字长度 = WLEN1 + 2。 对于四位 SSC 模式, 接收的数据字长度 = WLEN1 + 4。 参考手册 USIC, V2.10 15-170 V1.0, 2013-03 请遵守产品信息使用协议 域 SOF1 PAR1 PERR1 RDV10 RDV11 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 类型 描述 22 rh RBUF1 中帧的开始 该位指示 RBUF1 中的数据字是否为一个数据帧的第 一个数据字。 0B RBUF1 中的数据不是一个数据帧的第一个数据 字。 1B RBUF1 中的数据是一个数据帧的第一个数据 字。 24 rh RBUF1 中的协议相关参数 该位指示协议相关参数的数值。该值的含义取决于所 选择的协议,并且会在 RBUF1 的数据字中加入补充 信息。 该位的含义在相关协议的小节中描述。 25 rh RBUF1 中协议相关错误 该位指示协议相关参数是否满足预期值。该值的含义 取决于所选择的协议,并且会在 RBUF1 的数据字中 加入补充信息。 该位的含义在相关协议的小节中描述。 0B 接收的协议相关参数 PAR 与预期值匹配。该数 据字的接收会置位 PSR.RIF 并产生一个接收中 断。 1B 接收的协议相关参数 PAR 与预期值不匹配。该 数据字的接收会置位 PSR.AIF 并产生一个备用 接收中断。 29 rh RBUF0 中的接收数据有效 该位指示寄存器 RBUF0 的数据内容的状态。该位与 位 RBUF01SR.RDV00 完全相同,并且允许读取接收 缓冲器寄存器的信息。 0B 寄存器 RBUF0 不包含尚未读出的数据。 1B 寄存器 RBUF0 包含尚未读出的数据。 30 rh RBUF1 中的接收数据有效 该位指示寄存器 RBUF1 的数据内容的状态。该位与 位 RBUF01SR.RDV01 完全相同,并且允许读取接收 缓冲器寄存器的信息。 0B 寄存器 RBUF1 不包含尚未读出的数据。 1B 寄存器 RBUF1 包含尚未读出的数据。 参考手册 USIC, V2.10 15-171 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 DS1 31 rh 数据源 该位指示哪一个接收缓冲器寄存器 (RBUF0 或 RBUF1) 在寄存器 RBUF(D) 和 RBUFSR 中是当前可 见的 ( 对于相关状态信息 )。该位指示哪一个缓冲器 包含最老的数据 ( 最先接收的数据 )。该位与位 RBUF01SR.DS0 完全相同,并且允许读取接收缓冲 器寄存器的信息。 0B 寄存器 RBUF 包含 RBUF0 的数据 ( 相关联的 状态信息也是如此 )。 1B 寄存器 RBUF 包含 RBUF1 的数据 ( 相关联的 状态信息也是如此 )。 0 [5:4], 7, r 保留 [12:10], 读访问返回 0 ;应写入 0。 [21:20], 23, [28:26] 15.11.8.3 接收缓冲器寄存器 RBUF、 RBUFD 和 RBUFSR 接收缓冲器寄存器 RBUF 中为 RBUF0 或 RBUF1 的内容,取决于接收顺序。可从 RBUF 读出的数据总是为两个接收缓冲区中最老的数据 ( 最先接收的数据 )。建议从 RBUF 中读 取接收的数据而不是从 RBUF0/1 中读取。在读取至少是 RBUF 的低字节时,接收数据的 状态自动从 “ 未读 = 有效 ” 改变为 “ 已读 = 无效 ”, RBUF 中的内容被更新,下一个接收 的数据字在 RBUF 中将变为可见。 RBUF 接收器缓冲器寄存器 (54H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR rh 参考手册 USIC, V2.10 15-172 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 DSR 0 位 [15:0] [31:16] 类型 rh r 描述 接收数据 该位域包含 RBUF0 或 RBUF1 的内容,取决于接收 顺序。 保留 读访问返回 0 ;应写入 0。 如果使用一个调试器来监视接收的数据,则必须使自动更新机制失活,以保证数据的一 致性。因此,对于调试功能,有一个接收器缓冲器寄存器 RBUFD 可用。该寄存器类似 于 RBUF,但没有通过读操作触发的自动更新机制。因此,一个调试器 ( 或其他监视功 能 ) 可读取 RBUFD 而不干扰接收序列。 RBUFD 用于调试器的接收器缓冲器寄存器 (58H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR rh 域 DSR 0 位 [15:0] [31:16] 类型 rh r 描述 来自移位寄存器的数据 同 RBUF.DSR,但在一次读操作后不释放缓冲器。 保留 读访问返回 0 ;应写入 0。 接收缓冲器状态寄存器RBUFSR提供位于接收缓冲器RBUF和RBUFD中的数据的状态。 如果位 RBUF01SR.DS0 ( 或 RBUF01SR.DS1) 为 0,则 RBUF01SR 的低 16 位的内容 在 RBUFSR 中被监视;否则, RBUF01SR 的高 16 位内容被监视。 参考手册 USIC, V2.10 15-173 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) RBUFSR 接收缓冲器状态寄存器 (50H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DS RDV RDV 10 0 PER R PAR 0 SOF 0 rh rh rh r rh rh r rh r WLEN rh 域 WLEN SOF PAR PERR RDV0 RDV1 DS 0 位 [3:0] 6 8 9 13 14 15 [5:4], 7, [12:10], [31:16] 类型 rh rh rh rh rh rh rh r 描述 RBUF 或 RBUFD 中接收的数据字长度 描述见 RBUF01SR.WLEN0 或 RBUF01SR.WLEN1。 RBUF 或 RBUFD 中的帧起始 描述见 RBUF01SR.SOF0 或 RBUF01SR.SOF1。 RBUF 或 RBUFD 中的协议相关参数 描述见 RBUF01SR.PAR0 或 RBUF01SR.PAR1。 RBUF 或 RBUFD 中的协议相关错误 描述见 RBUF01SR.PERR0 或 RBUF01SR.PERR1。 RBUF 或 RBUFD 中的接收数据有效 描述见 RBUF01SR.RDV00 或 RBUF01SR.RDV10。 RBUF or RBUFD 中的接收数据有效 描述见 RBUF01SR.RDV01 或 RBUF01SR.RDV11。 RBUF 或 RBUFD 的数据源 描述请参见 RBUF01SR.DS0 或 RBUF01SR.DS1。 保留 读访问返回 0 ;应写入 0。 参考手册 USIC, V2.10 15-174 V1.0, 2013-03 请遵守产品信息使用协议 15.11.9 FIFO 缓冲区和旁路寄存器 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.11.9.1 旁路寄存器 对旁路数据寄存器 ( 至少是低字节 ) 进行一次写操作会设置 BYPCR.BDV = 1( 旁路数据 被标记为有效 )。 BYP 旁路数据寄存器 (100H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BDATA rw 位 (域) BDATA 0 长度 [15:0] [31:16] 类型 rw r 描述 旁路数据 该位域包括旁路数据。 保留 读访问返回 0 ;应写入 0。 BYPCR 旁路控制寄存器 (104H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 BHPC BSELO r rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BDV 0 BPRI BDV O TR BDEN 0 BDS SM 0 rh r rw rw rw r rw r BWLE rw 参考手册 USIC, V2.10 15-175 V1.0, 2013-03 请遵守产品信息使用协议 域 BWLE BDSSM BDEN BDVTR BPRIO XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 [3:0] 8 [11:10] 12 13 类型 rw rw rw rw rw 描述 旁路字长 该位域定义旁路数据的字长。字长由 BWLE + 1 给 出,数据字在数据缓冲器中的位置为右对齐 [BWLE 到 0]。 旁路数据字总是被视为长度为 BWLE 的特别帧。 编码同 SCTR.WLE。 旁路数据单次模式 该位定义旁路数据是被视为永久有效还是只传送一次 ( 单次模式 )。 0B 旁路数据在被加载到 TBUF 后仍被视为有效。加 载数据到 TBUF 的操作不清除 BDV。 1B 旁路数据在被加载到 TBUF 后被视为无效。加载 数据加载到 TBUF 的操作清除 BDV。 旁路数据使能 该位域定义是否以及如何使能旁路数据到 TBUF 的传 送。 00B 禁止旁路数据传送。 01B 使能旁路数据到 TBUF 的传送。如果 BDV = 1, 旁路数据根据其优先级被传送到 TBUF。 10B 使能门控的旁路数据传送。如果 BDV = 1 并且 DX2S = 0,旁路数据根据其优先级被传送到 TBUF。 11B 使能门控的旁路数据传送,如果 BDV = 1 并且 DX2S = 1,旁路数据根据其优先级被传送到 TBUF。 旁路数据有效触发 当 DX2T 有效时,该位使能对被标为有效的旁路数据 的传送 ( 用于时间限制或超时用途 )。 0B 位 BDV 不受 DX2T 的影响。 1B 如果 DX2T 有效,则位 BDV 被置 1。 旁路优先级 该位定义旁路数据和发送 FIFO 数据之间的优先级。 0B 发送 FIFO 数据具有比旁路数据更高的优先级。 1B 旁路数据具有比发送 FIFO 数据更高的优先级。 参考手册 USIC, V2.10 15-176 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 BDV BSELO BHPC 0 位 15 [20:16] [23:21] [7:4], 9, 14, [31:24] 类型 rh rw rw r 描述 旁路数据有效 该位定义旁路数据对一次到 TBUF 的传送是否有效。 当对寄存器 BYP( 至少是低字节 ) 进行一次写访问 时,该位被自动被置 1。软件可通过写 TRBSCR.CBDV 将该位清零。 0B 旁路数据无效。 1B 旁路数据有效。 旁路选择输出 如果旁路数据被传送到 TBUF 并且 TCSR.SELMD = 1,则该位域包含被写到 PCR.CTR[20:16] 的值。 在 SSC 协议中,该位域可用于定义在发送旁路数据 时哪一个 SELOx 输出线将被激活。 旁路硬件端口控制 如果旁路数据被传送到 TBUF 并且 TTCSR.HPCMD = 1,则该位域包含被写到 SCTR[4:2] 的值。 在 SSC 协议中,该位域可用于定义数据移位模式, 以及在发送旁路数据时是否通过 CCR.HPCEN = 1 使 能硬件端口控制。 保留 读访问返回 0 ;应写入 0。 15.11.9.2 通用 FIFO 缓冲区控制寄存器 USICx_CHy 的发送和接收 FIFO 状态信息在寄存器 USICx_CHy.TRBSR 中给出。 在该寄存器中,与发送器缓冲区相关的位只能在使能了发送缓冲区功能 ( 通过设置 CCFG.TB = 1) 时被写入 ,否则写访问无效。相似的行为也适用于与接收缓冲区 ( 通过设 置 CCFG.RB = 1 使能 ) 相关的位。 可通过向寄存器 TRBSCR 中的一个位写 1 来清除发送和接收 FIFO 状态寄存器 TRBSR 中的中断标志 ( 事件标志,而写 0 会对这些位有影响。用软件向 SRBI、RBERI、ARBI、 STBI 或 TBERI 写 1 会置位相应的位,以模拟检测到一个发送 / 接收缓冲区事件,但不会 激活任何服务请求输出 ( 因此,见 FMR.SIOx)。 位 TBUS 和 RBUS 用于测试目的。可通过数据处理软件将其屏蔽。请注意,对于这些位, 读操作可返回一个 0 或 1。建议将它们当作 “ 无关 ” 位处理。 参考手册 USIC, V2.10 15-177 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) TRBSR 发送接收缓冲区状态寄存器 (114H) 复位值 : 0000 0808H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 TBFLVL 0 RBFLVL r rh r rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 STB TBU TFU TEM T S LL PTY 0 TBE RI STBI 0 SRB T RBU S RFU LL REM PTY ARBI RBE RI SRBI r rh rh rh rh r rwh rwh r rh rh rh rh rwh rwh rwh 域 SRBI RBERI ARBI 位 类型 描述 0 rwh 标准接收缓冲区事件 该位指示检测到一个标准接收缓冲区事件。该位通 过写 TRBSCR.CSRBI = 1 清零。 如果该事件被 RBCTR.SRBIEN 使能,由 RBCTR.SRBINP 选择的服务请求输出 SRx 在检测 到一个标准接收缓冲区事件时被激活。 0B 未检测到标准接收缓冲区事件。 1B 检测到一个标准接收缓冲区事件。 1 rwh 接收缓冲区错误事件 该位指示检测到一个接收缓冲区错误事件。该位通 过写 TRBSCR.CRBERI = 1 清零。 如果该事件被 RBCTR.RBERIEN 使能,由 PRBCTR.ARBINP 选择的服务请求输出 SRx 在检测 到一个接收缓冲区错误事件时被激活。 0B 未检测到接收缓冲区错误事件。 1B 检测到一个接收缓冲区错误事件。 2 rwh 可选接收缓冲区事件 该位指示检测到一个备用接收缓冲区事件。该位通 过写 TRBSCR.CARBI = 1 清零。 如果该事件被 RBCTR.ARBIEN 使能,由 PRBCTR.ARBINP 选择的服务请求输出 SRx 在检测 到一个备用接收缓冲区事件时被激活。 0B 未检测到备用接收缓冲区事件。 1B 检测到备用接收缓冲区事件。 参考手册 USIC, V2.10 15-178 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 REMPTY 3 RFULL 4 RBUS 5 rh 接收缓冲区空 该位指示接收缓冲区是否为空。 0B 接收缓冲区未空。 1B 接收缓冲区已空。 rh 接收缓冲区满 该位指示接收缓冲区是否已满。 0B 接收缓冲区未满。 1B 接收缓冲区已满。 rh 接收缓冲区忙 该位指示接收缓冲区是否正被 FIFO 处理器更新。 0B 接收缓冲区信息已被完全更新。 1B 来自 FIFO 存储器的 OUTR 更新正在进行。对 OUTR 的读操作将被延迟。源自前一次读操作 的 FIFO 指针还没有更新。 SRBT STBI TBERI 6 rh 标准接收缓冲区事件触发 该位置 1 时触发一次标准接收缓冲区事件。 如果该事件被 RBCTR.SRBIEN 使能,由 RBCTR.SRBINP 选择的服务请求输出 SRx 会被激 活,直到该位被清零。 0B 一次标准接收缓冲区事件不是用该位触发的。 1B 一次标准接收缓冲区事件是用该位触发的。 8 rwh 标准发送缓冲区事件 该位指示检测到一个标准发送缓冲区事件。该位通 过写 TRBSCR.CSTBI = 1 清零。 如果该事件被 TBCTR.STBIEN 使能,由 TBCTR.STBINP 选择的服务请求输出 SRx 在检测到 一个标准发送缓冲区事件时被激活。 0B 未检测到标准发送缓冲区事件。 1B 检测到一个标准发送缓冲区事件。 9 rwh 发送缓冲区错误事件 该位指示检测到一个发送缓冲区错误事件。该位通 过写 TRBSCR.CTBERI = 1 清零。 如果该事件被 TBCTR.TBERIEN 使能,由 TBCTR.ATBINP 选择服务请求输出 SRx 在检测到一 个发送缓冲区错误事件时被激活。 0B 未检测到发送缓冲区错误事件。 1B 检测到发送缓冲区错误事件。 参考手册 USIC, V2.10 15-179 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 TEMPTY TFULL TBUS STBT RBFLVL TBFLVL 0 位 11 12 13 14 [22:16] [30:24] 7, 10, 15, 23, 31 类型 rh rh rh rh rh rh r 描述 发送缓冲区空 该位指示发送缓冲区是否为空。 0B 发送缓冲区未空。 1B 发送缓冲区已空。 发送缓冲区满 该位指示发送缓冲区是否已满。 0B 发送缓冲区未满。 1B 发送缓冲区已满。 发送缓冲区忙 该位指示发送缓冲区是否正被 FIFO 处理器更新。 0B 发送缓冲区信息已被完全更新。 1B 在写INx后FIFO存储器更新正在进行。对INx的 写操作将被延迟。源自前一 INx 写操作的 FIFO 指针还没有更新。 标准发送缓冲区事件触发 该位置 1 时触发一次标准发送缓冲区事件。 如果该事件被 TBCTR.STBIEN 使能,由 TBCTR.STBINP 选择的服务请求输出 SRx 会激活, 直到该位被清零。 0B 一次标准发送缓冲区事件不是用该位触发的。 1B 一次标准发送缓冲区事件是用该位触发的。 接收缓冲区填充水平 该位域指示接收缓冲区的填充水平,对于一个空缓 冲区,该值从 0 开始。 发送缓冲区填充水平 该位域指示发送缓冲区的填充水平,对于一个空缓 冲区,该值从 0 开始。 保留 读访问返回 0 ;应写入 0。 寄存器 TRBSCR 中的位用于清除寄存器 TRBSR 中的指示位或清除发送或接收缓冲区的 FIFO 机制。读操作总是返回 0。 参考手册 USIC, V2.10 15-180 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) TRBSCR 发送 / 接收缓冲区状态清除寄存器 (118H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 FLU FLU SHT SHR BB 0 CBD CTB CST V ERI BI 0 CAR CRB CSR BI ERI BI ww r www r www 域 位 CSRBI 0 CRBERI 1 CARBI 2 CSTBI 8 CTBERI 9 CBDV 10 FLUSHRB 14 类型 w w w w w w w 描述 清除标准接收缓冲区事件 0B 无效。 1B 清除 TRBSR.SRBI。 清除接收缓冲区错误事件 0B 无效。 1B 清除 TRBSR.RBERI。 清除备用接收缓冲区事件 0B 无效。 1B 清除 TRBSR.ARBI。 清除标准发送缓冲区事件 0B 无效。 1B 清除 TRBSR.STBI。 清除发送缓冲区错误事件 0B 无效。 1B 清除 TRBSR.TBERI。 清除旁路数据有效 0B 无效。 1B 清除 BYPCR.BDV。 清空接收缓冲区 0B 无效。 1B 接收 FIFO 缓冲区被清除 ( 填充水平被清零, 并且输出指针被设置为输入指针值 )。该操作 只应在 FIFO 缓冲区不参与数据通信时使用。 参考手册 USIC, V2.10 15-181 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 FLUSHTB 0 位 15 [7:3], [13:11], [31:16] 类型 w r 描述 清空发送缓冲区 0B 无效。 1B 发送 FIFO 缓冲区被清除 ( 填充水平被清零, 并且输出指针被设置为输入指针值 )。该操作 只应在 FIFO 缓冲区不参与数据通信时使用。 保留 读访问返回 0 ;应写入 0。 15.11.9.3 发送 FIFO 缓冲区控制寄存器 发送 FIFO 缓冲区由寄存器 TBCTR 控制。 TBCTR 只能在发送缓冲区功能被使能 ( 通过 CCFG.TB = 1) 后被写入,否则写访问被忽略。 TBCTR 发送缓冲区控制寄存器 31 30 29 28 27 TBE STBI RIEN EN 0 LOF 0 rw rw r rw r (108H) 26 25 24 23 22 SIZE 0 rw r 复位值 : 0000 0000H 21 20 19 18 17 16 ATBINP rw STBINP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 STB STB TEN TM LIMIT 0 DPTR rw rw rw r w 域 DPTR LIMIT 参考手册 USIC, V2.10 位 [5:0] [13:8] 类型 w rw 描述 数据指针 在为发送 FIFO 缓冲区分配 FIFO 项时,该位域定义 发送缓冲区指针的起始值。其读出值总是为 0。如果 SIZE = 0,写 DPTR 时寄存器 TRBPTR 中的两个发 送器指针 TDIPTR 和 RTDOPTR 都被更新为所写 值,并且缓冲区被认为是空的。当 SIZE > 0 时,对 DPTR 的写访问被忽略,并且该写操作不修改这两 个指针。 中断产生极限 该位域定义发送 FIFO 缓冲区的目标填充水平,该值 用于标准发送缓冲区事件检测。 15-182 V1.0, 2013-03 请遵守产品信息使用协议 域 STBTM STBTEN STBINP XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 14 15 [18:16] 类型 rw rw rw 描述 标准发送缓冲区触发模式 该位选择标准发送缓冲区事件触发模式。 0B 触发模式 0: 当 TRBSR.STBT=1 时,无论何时有数据被传 送到 TBUF 或向 INx 写入数据 ( 取决于 TBCTR.LOF 的设置 ),都会产生一个标准发 送缓冲区事件。当 TRBSR.TBFLVL=TBCTR.LIMIT 时, STBT 被 清零。 1B 触发模式 1: 当 TRBSR.STBT=1 时,无论何时有数据被传 送到 TBUF 或向 INx 写入数据 ( 根据 TBCTR.LOF 设置 ),都会产生一个标准发送 缓冲区事件。当 TRBSR.TBFLVL=TBCTR.SIZE 时, STBT 被 清零。 标准发送缓冲区触发使能 该位使能 / 禁止通过位 TRBSR.STBT 来触发标准发 送缓冲区事件。 0B 禁止通过位 TRBSR.STBT 来触发标准发送缓 冲区事件。 1B 允许通过位 TRBSR.STBT 来触发标准发送缓 冲区事件。 标准发送缓冲区中断节点指针 该位域定义在发生标准发送缓冲区事件时哪一个服 务请求输出 SRx 被激活。 000B 输出 SR0 被激活。 001B 输出 SR1 被激活。 010B 输出 SR2 被激活。 011B 输出 SR3 被激活。 100B 输出 SR4 被激活。 101B 输出 SR5 被激活。 注: 该位域的所有其他设置被保留。 参考手册 USIC, V2.10 15-183 V1.0, 2013-03 请遵守产品信息使用协议 域 ATBINP SIZE LOF STBIEN XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 [21:19] [26:24] 28 30 类型 rw rw rw rw 描述 备用发送缓冲区中断节点指针 该位域定义在发生发送缓冲区错误事件时哪一个服 务请求输出 SRx 被激活。 000B 输出 SR0 被激活。 001B 输出 SR1 被激活。 010B 输出 SR2 被激活。 011B 输出 SR3 被激活。 100B 输出 SR4 被激活。 101B 输出 SR5 被激活。 注: 该位域的所有其他设置被保留。 缓冲区大小 该位域定义分配给发送 FIFO 缓冲区的 FIFO 项数 量。 000B FIFO 机制被禁止。缓冲区不接受任何数据请 求。 001B FIFO 缓冲区包含 2 个 FIFO 项。 010B FIFO 缓冲区包含 4 个 FIFO 项。 011B FIFO 缓冲区包含 8 个 FIFO 项。 100B FIFO 缓冲区包含 16 个 FIFO 项。 101B FIFO 缓冲区包含 32 个 FIFO 项。 110B FIFO 缓冲区包含 64 个 FIFO 项。 111B 保留 极限值溢出缓冲区事件 该位定义填充水平与所编程的极限值制之间满足何 种关系会导致一次标准发送缓冲区事件。 0B 当填充水平等于所设置的极限值并且由于一次 数据字发送而变得更小时,发生一次标准发送 缓冲区事件。 1B 当填充水平等于所设置的极限值并且由于对一 个数据输入单元 INx 的一次写访问而变得更大 时,发生一次标准发送缓冲区事件。 标准发送缓冲区中断使能 该位使能 / 禁止在发生一次标准发送缓冲区事件时产 生标准发送缓冲区中断。 0B 禁止标准发送缓冲区中断产生。 1B 使能标准发送缓冲区中断产生。 参考手册 USIC, V2.10 15-184 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 TBERIEN 0 位 31 [7:6], [23:22], 27, 29 类型 rw r 描述 发送缓冲区错误中断使能 该位使能 / 禁止在发生一次发送缓冲区错误事件时 ( 软件向一个已满发送缓冲区写入 ) 产生发送缓冲区错 误中断。 0B 禁止发送缓冲区错误中断产生。 1B 使能发送缓冲区错误中断产生。 保留 读访问返回 0 ;应写入 0。 15.11.9.4 接收 FIFO 缓冲区控制寄存器 接收 FIFO 缓冲区由寄存器 RBCTR 控制。该寄存器只能在接收缓冲区功能被使能 ( 通过 CCFG.RB = 1) 后被写入,否则写访问被忽略。 RBCTR 接收缓冲区控制寄存器 (10CH) 31 30 29 28 27 26 25 24 23 22 RBE SRBI ARBI RIEN EN EN LOF RNM rw rw rw rw rw SIZE rw RCIM rw 复位值 : 0000 0000H 21 20 19 18 17 16 ARBINP rw SRBINP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SRB SRB TEN TM LIMIT 0 DPTR rw rw rw r w 域 DPTR 位 类型 描述 [5:0] w 数据指针 在为接收 FIFO 缓冲区分配 FIFO 项时,该位域定义 接收缓冲区指针的起始值。其读出值总是为 0。如果 SIZE = 0,写 DPTR 时寄存器 TRBPTR 中的两个接 收器指针 RDIPTR 和 RDOPTR 都被更新为所写值, 并且缓冲区被认为是空的。当 SIZE > 0 时,对 DPTR 的写访问被忽略,并且该写操作不修改这两 个指针。 参考手册 USIC, V2.10 15-185 V1.0, 2013-03 请遵守产品信息使用协议 域 LIMIT SRBTM SRBTEN SRBINP XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 [13:8] 14 15 [18:16] 类型 rw rw rw rw 描述 中断产生极限 该位域定义接收 FIFO 缓冲区的目标填充水平,该值 用于标准接收缓冲区事件检测。 标准接收缓冲区触发模式 该位选择标准接收缓冲区事件触发模式。 0B 触发模式 0: 当 TRBSR.STBT=1 时,无论何时接收到一个 新数据或有数据被读出 ( 取决于 RBCTR.LOF 的 设置 ),都会产生一个标准接收缓冲区事 件。当 TRBSR.RBFLVL=RBCTR.LIMIT 时, SRBT 被清零。 1B 触发模式 1: 当 TRBSR.SRBT=1 时,无论何时接收到一个 新数据或有数据被读出 ( 取决于 RBCTR.LOF 的 设置 ),都会产生一个标准接收缓冲区事 件。当 TRBSR.RBFLVL=0 时, SRBT 被清 零。 标准接收缓冲区触发使能 该位使能 / 禁止通过位 TRBSR.SRBT 来触发标准接 收缓冲区事件。 0B 禁止通过位 TRBSR.SRBT 来触发标准接收缓 冲区事件。 1B 允许通过位 TRBSR.SRBT 来触发标准接收缓 冲区事件。 标准接收缓冲区中断节点指针 该位域定义在发生标准接收缓冲区事件时哪一个服 务请求输出 SRx 被激活。 000B 输出 SR0 被激活 001B 输出 SR1 被激活 010B 输出 SR2 被激活 011B 输出 SR3 被激活 100B 输出 SR4 被激活 101B 输出 SR5 被激活 注: 该位域的所有其他设置被保留。 参考手册 USIC, V2.10 15-186 V1.0, 2013-03 请遵守产品信息使用协议 域 ARBINP RCIM SIZE XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 [21:19] [23:22] [26:24] 类型 rw rw rw 描述 备用接收缓冲区中断节点指针 该位域定义在发生备用接收缓冲区事件或接收缓冲 区错误事件时哪一个服务请求输出 SRx 被激活。 000B 输出 SR0 被激活 001B 输出 SR1 被激活 010B 输出 SR2 被激活 011B 输出 SR3 被激活 100B 输出 SR4 被激活 101B 输出 SR5 被激活 注: 该位域的所有其他设置被保留。 接收器控制信息模式 该位域定义来自接收状态寄存器 RBUFSR 的哪些信 息作为 5 位接收器控制信息 RCI[4:0] 被传送到接收 FIFO 缓冲区,并可在寄存器 OUT(D)R 中读出。 00B RCI[4] = PERR, RCI[3:0] = WLEN 01B RCI[4] = SOF, RCI[3:0] = WLEN 10B RCI[4] = 0, RCI[3:0] = WLEN 11B RCI[4] = PERR, RCI[3] = PAR, RCI[2:1] = 00B, RCI[0] = SOF 缓冲区大小 该位域定义分配给接收 FIFO 缓冲区的 FIFO 项数 量。 000B FIFO 机制被禁止。缓冲区不接受任何数据请 求。 001B FIFO 缓冲区包括 2 个 FIFO 项。 010B FIFO 缓冲区包括 4 个 FIFO 项。 011B FIFO 缓冲区包括 8 个 FIFO 项。 100B FIFO 缓冲区包括 16 个 FIFO 项。 101B FIFO 缓冲区包括 32 个 FIFO 项。 110B FIFO 缓冲区包括 64 个 FIFO 项。 111B 保留 参考手册 USIC, V2.10 15-187 V1.0, 2013-03 请遵守产品信息使用协议 域 位 RNM 27 LOF 28 ARBIEN 29 SRBIEN 30 RBERIEN 31 参考手册 USIC, V2.10 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 类型 rw rw rw rw rw 描述 接收器通知模式 该位定义接收缓冲区事件模式。接收缓冲区错误事 件不受到 RNM 的影响。 0B 填充水平模式: 当填充水平等于所编程的极限值并且因一次对 OUTR 的读访问 (LOF = 0) 或一个新接收的数 据字而发生改变时,发生一次标准接收缓冲区 事件。 1B RCI 模式: 当寄存器 OUTR 被一个新值更新并且 OUTR.RCI[4] 中的相应值 = 0 时,发生一次标 准接收缓冲区事件。如果 OUTR.RCI[4] = 1, 则发生一次备用接收缓冲区事件而不是标准接 收缓冲区事件。 极限值溢出缓冲区事件 在填充水平模式 (RNM = 0),该位定义填充水平与所 编程的极限值之间满足何种关系会导致一次标准接 收缓冲区事件。在 RCI 模式 (RNM = 1),位域 LIMIT 和 LOF 被忽略。 0B 当填充水平等于所设置的极限值并且由于一次 对 OUTR 的读访问而变小时,发生一次标准 发送缓冲区事件。 1B 填充水平等于所设置的极限值并且由于收到一 个新数据字而变大时,发生一次标准发送缓冲 区事件。 备用接收缓冲区中断使能 该位使能 / 禁止在发生备用接收缓冲区事件时产生备 用接收缓冲区中断。 0B 禁止备用接收缓冲区中断产生。 1B 使能备用接收缓冲区中断产生。 标准接收缓冲区中断使能 该位使能 / 禁止在发生标准接收缓冲区事件时产生标 准接收缓冲中断。 0B 禁止标准接收缓冲区中断产生。 1B 使能标准接收缓冲区中断产生。 接收缓冲区错误中断使能 该位使能 / 禁止在发生接收缓冲区错误事件时 ( 软件 读一个空接收缓冲区 ) 产生接收缓冲错误中断。 0B 禁止接收缓冲区错误中断产生。 1B 使能接收缓冲区错误中断产生。 15-188 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 域 位 类型 描述 0 [7:6] r 保留 读访问返回 0 ;应写入 0。 15.11.9.5 FIFO 缓冲区数据寄存器 32 个独立数据输入单元,从 IN00 到 IN31,可用作发送 FIFO 缓冲区数据项单元的地址。 写入到其中一个单元的数据将被保存到发送缓冲区 FIFO 中。另外,被寻址的数据输入单 元的标号 [31:0] 的 5 位编码代表发送控制信息 TCI。 如果 FIFO 已满并且有新数据被写入,则这次写访问被忽略,并会报告一个发送缓冲区错 误事件。 INx (x = 00-31) 发送 FIFO 缓冲区输入单元 x (180H + x *4) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 r 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 TDATA w 域 TDATA 0 位 [15:0] [31:16] 类型 w r 描述 发送数据 该位域包含要被发送的数据 ( 写视图 ),读操作返回 0。 对 TDATA( 至少是低字节 ) 的写操作会导致数据被保 存到 FIFO 中。 保留 读访问返回 0 ;应写入 0。 接收器 FIFO 缓冲区输出寄存器 OUTR 包含位于 FIFO 缓冲区中的最老的接收数据,并且 包含接收器控制信息 RCI,而 RCI 包含由 RBCTR.RCIM 选择的信息。对该地址单元的 读操作会返回接收的数据。通过对至少是低字节的读访问,数据被声明为已读,并且下 一个数据项变为可见。对 OUTR 的写访问被忽略。 参考手册 USIC, V2.10 15-189 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) OUTR 接收器缓冲区输出寄存器 (11CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 RCI r rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR rh 域 DSR RCI 0 位 [15:0] [20:16] [31:21] 类型 rh rh r 描述 接收的数据 该位域监视位于接收 FIFO 中最老的数据字的内容。 读至少是低字节会释放在 DSR 中所指示的缓冲区 项。 接收器控制信息 该位域监视与 DSR 相关联的接收器控制信息。 RCI 的位结构取决于位域 RBCTR.RCIM。 保留 读访问返回 0 ;应写入 0。 如果应使用一个调试器来监视位于 FIFO 缓冲区中的接收数据,则不得激活 FIFO 机制, 以保证数据的一致性。因此,设置了第二个可用的,命名为 OUTDR(D 即调试器 )。该寄 存器与原有缓冲输出寄存器 OUTR 具有相同的位域,但无 FIFO 机制。调试器可读该寄 存器 ( 为了监测接收数据流 ) 而没有损坏数据的风险。对 OUTDR 的写访问被忽略。 参考手册 USIC, V2.10 15-190 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) OUTDR 用于调试器的接收器缓冲区输出寄存器 (120H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 RCI r rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DSR rh 域 DSR RCI 0 位 [15:0] [20:16] [31:21] 类型 rh rh r 描述 来自移位寄存器的数据 同 OUTR.DSR,但在一次读操作后不释放缓冲区。 来自移位寄存器的接收控制信息 同 OUTR.RCI。 保留 读访问返回 0 ;应写入 0。 15.11.9.6 FIFO 缓冲区指针寄存器 发送和接收 FIFO 缓冲区的 FIFO 处理指针位于寄存器 TRBPTR 中。这两个指针由 FIFO 缓冲机制自动处理,并且不需要通过软件修改。因此,软件只能读这些寄存器 ( 例如用于 验证目的 ),而写访问被忽略。 TRBPTR 发送 / 接收缓冲区指针寄存器 (110H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 RDOPTR 0 r rh r RDIPTR rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 TDOPTR 0 r rh r TDIPTR rh 参考手册 USIC, V2.10 15-191 V1.0, 2013-03 请遵守产品信息使用协议 域 TDIPTR TDOPTR RDIPTR RDOPTR 0 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 位 [5:0] [13:8] [21:16] [29:24] [7:6], [15:14], [23:22], [31:30] 类型 rh rh rh rh r 描述 发送器数据输入指针 该位域指示将被用于来自 INx 地址的下一个发送数 据的缓冲区项。 发送器数据输出指针 该位域指示将被用于输出到 TBUF 的下一个发送数 据的缓冲区项。 接收器数据输入指针 该位域指示将被用于来自 RBUF 的下一个接收数据 的缓冲区项。 接收器数据输出指针 该位域指示将被用于输出到 OUT(D)R 地址的下一个 接收数据的缓冲区项。 保留 读访问返回 0 ;应写入 0。 参考手册 USIC, V2.10 15-192 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 15.12 互连 XMC1300 器件包含一个具有两个通信通道的 USIC 模块 (USIC0) 。 端口线 USIC0 通道 0 通道 1 总线接口 AHB-Lite 总线 图 15-66 XMC1300 中的 USIC 模块结构 图 15-67 示出了一个 USIC 通道的 I/O 线。XMC1300 器件中的 USIC 通道 I/O 线的引脚 分配和内部连接在本节后面给出的表格中定义。命名约定:USICx_CHy 代表 USIC 模块 x 的通道 y。 参考手册 USIC, V2.10 15-193 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) DX0A : : : : DX0G HWIN0 DX0INS DX1A : : : : DX1G DX1INS DX2A : : : : DX2G DX2INS DX3A : : : : DX3G HWIN1 DX3INS DX4A : : : : DX4G HWIN2 DX4INS DX5A : : : : DX5G HWIN3 DX5INS USIC 通道 输入级 DX0 输入级 DX1 中断控制 输入级 DX2 从选择 : 发生器 : 输入级 DX3 输出级 DOUT 输入级 DX4 波特率 发生器 输入级 DX5 SR0 SR1 SR2 SR3 SR4 SR5 SELO0 SELO1 : : SELO6 SELO7 DOUT0 DOUT1 DOUT2 DOUT3 SCLKOUT MCLKOUT 图 15-67 USIC 通道 I/O 线 一个 USIC 通道的服务请求输出 SR[5:0] 与模块中的另一通道是组合在一起的。因此,每 个模块只有 6 个服务请求输出可用。 参考手册 USIC, V2.10 15-194 V1.0, 2013-03 请遵守产品信息使用协议 15.12.1 USIC 模块 0 互连 USIC 模块 0 的互连可分成以下几种: • USIC 模块 0 通道 0 互连 ( 表 15-22) • USIC 模块 0 通道 1 互连 ( 表 15-23) • USIC 模块 0 模块互连 ( 表 15-24) XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-22 USIC 模块 0 通道 0 互连 输入 / 输出 I/O 连接到 数据输入 (DX0) USIC0_CH0.DX0A I P0.14 USIC0_CH0.DX0B I P0.15 USIC0_CH0.DX0C I P1.0 USIC0_CH0.DX0D I P1.1 USIC0_CH0.DX0E I P2.0 USIC0_CH0.DX0F I P2.1 USIC0_CH0.DX0G I USIC0_CH0.DX3INS USIC0_CH0.HWIN0 I P1.0 时钟输入 USIC0_CH0.DX1A I P0.14 USIC0_CH0.DX1B I P0.8 USIC0_CH0.DX1C I P0.7 USIC0_CH0.DX1D I P1.1 USIC0_CH0.DX1E I P2.0 USIC0_CH0.DX1F I USIC0_CH0.DX0INS USIC0_CH0.DX1G I USIC0_CH0.DX4INS 控制输入 USIC0_CH0.DX2A I P0.0 USIC0_CH0.DX2B I P0.9 USIC0_CH0.DX2C I P0.10 USIC0_CH0.DX2D I P0.11 USIC0_CH0.DX2E I P0.12 USIC0_CH0.DX2F I P0.13 USIC0_CH0.DX2G I USIC0_CH0.DX5INS 描述 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 环回移位时钟输入 移位控制输入 移位控制输入 移位控制输入 移位控制输入 移位控制输入 移位控制输入 环回移位控制输入 参考手册 USIC, V2.10 15-195 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-22 USIC 模块 0 通道 0 互连 ( 续表 ) 输入 / 输出 I/O 连接到 数据输入 (DX3) USIC0_CH0.DX3A I P2.2 USIC0_CH0.DX3B I P2.4 USIC0_CH0.DX3C I P2.10 USIC0_CH0.DX3D I P2.8 USIC0_CH0.DX3E I P2.6 USIC0_CH0.DX3F I USIC0_CH0.DX5INS USIC0_CH0.DX3G I USIC0_CH0.DOUT0 USIC0_CH0.HWIN1 I P1.1 数据输入 (DX4) USIC0_CH0.DX4A I P2.2 USIC0_CH0.DX4B I P2.4 USIC0_CH0.DX4C I P2.10 USIC0_CH0.DX4D I P2.8 USIC0_CH0.DX4E I P2.6 USIC0_CH0.DX4F I USIC0_CH0.DX5INS USIC0_CH0.DX4G I USIC0_CH0.SCLKOU T USIC0_CH0.HWIN2 I P1.2 数据输入 (DX5) USIC0_CH0.DX5A I P2.9 USIC0_CH0.DX5B I P2.3 USIC0_CH0.DX5C I P2.7 USIC0_CH0.DX5D I P2.5 USIC0_CH0.DX5E I P1.4 USIC0_CH0.DX5F I0 USIC0_CH0.DX5G I USIC0_CH0.SELO0 USIC0_CH0.HWIN3 I P1.3 数据输出 描述 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 参考手册 USIC, V2.10 15-196 V1.0, 2013-03 请遵守产品信息使用协议 表 15-22 USIC 模块 0 通道 0 互连 ( 续表 ) 输入 / 输出 I/O 连接到 USIC0_CH0.DOUT0 O P0.14 P0.15 P1.0 P1.0 (HW1_OUT) P1.1 P1.5 P2.0 P2.1 USIC0_CH0.DX3G USIC0_CH0.DOUT1 O P1.1 (HW1_OUT) USIC0_CH0.DOUT2 O P1.2 (HW1_OUT) USIC0_CH0.DOUT3 O P1.3 (HW1_OUT) 时钟输出 USIC0_CH0.MCLKOUT O P0.11 USIC0_CH0.SCLKOUT O P0.7 P0.8 P0.14 P2.0 USIC0_CH0.DX4G 控制输出 USIC0_CH0.SELO0 O P0.0 P0.9 P1.4 USIC0_CH0.DX5G USIC0_CH0.SELO1 O P0.10 P1.5 USIC0_CH0.SELO2 O P0.11 USIC0_CH0.SELO3 O P0.12 USIC0_CH0.SELO4 O P0.13 USIC0_CH0.SELO5 O not connected USIC0_CH0.SELO6 O not connected USIC0_CH0.SELO7 O not connected 与系统相关的输出 USIC0_CH0.DX0INS O USIC0_CH0.DX1F XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 描述 移位数据输出 移位数据输出 移位数据输出 移位数据输出 主时钟输出 移位时钟输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 选择的 DX0 输入信号 参考手册 USIC, V2.10 15-197 V1.0, 2013-03 请遵守产品信息使用协议 表 15-22 USIC 模块 0 通道 0 互连 ( 续表 ) 输入 / 输出 I/O 连接到 USIC0_CH0.DX1INS O not connected USIC0_CH0.DX2INS O CCU40.IN0L USIC0_CH0.DX3INS O USIC0_CH0.DX0G USIC0_CH0.DX4INS O USIC0_CH0.DX1G USIC0_CH0.DX5INS O USIC0_CH0.DX2G USIC0_CH0.DX3F USIC0_CH0.DX4F XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 描述 选择的 DX1 输入信号 选择的 DX2 输入信号 选择的 DX3 输入信号 选择的 DX4 输入信号 选择的 DX5 输入信号 表 15-23 USIC 模块 0 通道 1 互连 输入 / 输出 I/O 连接到 数据输入 (DX0) USIC0_CH1.DX0A I P1.3 USIC0_CH1.DX0B I P1.2 USIC0_CH1.DX0C I P0.6 USIC0_CH1.DX0D I P0.7 USIC0_CH1.DX0E I P2.11 USIC0_CH1.DX0F I P2.10 USIC0_CH1.DX0G I USIC0_CH1.DX3INS USIC0_CH1.HWIN0 I ERU0.PDOUT0 时钟输入 USIC0_CH1.DX1A I P1.3 USIC0_CH1.DX1B I P0.8 USIC0_CH1.DX1C I P0.7 USIC0_CH1.DX1D I0 USIC0_CH1.DX1E I P2.11 USIC0_CH1.DX1F I USIC0_CH1.DX0INS USIC0_CH1.DX1G I USIC0_CH1.DX4INS 控制输入 USIC0_CH1.DX2A I P0.0 USIC0_CH1.DX2B I P0.9 USIC0_CH1.DX2C I P0.10 描述 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 移位时钟输入 环回移位时钟输入 移位控制输入 移位控制输入 移位控制输入 参考手册 USIC, V2.10 15-198 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 表 15-23 USIC 模块 0 通道 1 互连 ( 续表 ) 输入 / 输出 I/O 连接到 USIC0_CH1.DX2D I P0.11 USIC0_CH1.DX2E I P1.1 USIC0_CH1.DX2F I P2.0 USIC0_CH1.DX2G I USIC0_CH1.DX5INS 数据输入 (DX3) USIC0_CH1.DX3A I P2.1 USIC0_CH1.DX3B I P2.9 USIC0_CH1.DX3C I P2.3 USIC0_CH1.DX3D I P2.7 USIC0_CH1.DX3E I P2.5 USIC0_CH1.DX3F I USIC0_CH1.DX5INS USIC0_CH1.DX3G I USIC0_CH1.DOUT0 USIC0_CH1.HWIN1 I0 数据输入 (DX4) USIC0_CH1.DX4A I P2.1 USIC0_CH1.DX4B I P2.9 USIC0_CH1.DX4C I P2.3 USIC0_CH1.DX4D I P2.7 USIC0_CH1.DX4E I P2.5 USIC0_CH1.DX4F I USIC0_CH1.DX5INS USIC0_CH1.DX4G I USIC0_CH1.SCLKOU T USIC0_CH1.HWIN2 I ERU0.PDOUT1 数据输入 (DX5) USIC0_CH1.DX5A I P2.2 USIC0_CH1.DX5B I P2.4 USIC0_CH1.DX5C I P2.8 USIC0_CH1.DX5D I P2.6 USIC0_CH1.DX5E I P1.4 USIC0_CH1.DX5F I P1.5 USIC0_CH1.DX5G I USIC0.SR0 描述 移位控制输入 移位控制输入 移位控制输入 环回移位控制输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 硬件控制的移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 移位数据输入 参考手册 USIC, V2.10 15-199 V1.0, 2013-03 请遵守产品信息使用协议 表 15-23 USIC 模块 0 通道 1 互连 ( 续表 ) 输入 / 输出 I/O 连接到 USIC0_CH1.HWIN3 I USIC0_CH1.DOUT0 数据输出 USIC0_CH1.DOUT0 O P0.6 P0.7 P1.2 P1.3 P2.10 P2.11 USIC0_CH1.DX3G USIC0_CH1.HWIN3 USIC0_CH1.DOUT1 O 无连接 USIC0_CH1.DOUT2 O 无连接 USIC0_CH1.DOUT3 O 无连接 时钟输出 USIC0_CH1.MCLKOUT O P0.6 P0.15 USIC0_CH1.SCLKOUT O P0.8 P1.3 P1.4 P2.1 P2.11 USIC0_CH1.DX4G 控制输出 USIC0_CH1.SELO0 O P0.0 P0.9 P1.1 USIC0_CH1.SELO1 O P0.10 P1.4 USIC0_CH1.SELO2 O P0.11 P1.5 USIC0_CH1.SELO3 O 无连接 USIC0_CH1.SELO4 O 无连接 USIC0_CH1.SELO5 O 无连接 USIC0_CH1.SELO6 O 无连接 XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 描述 硬件控制的移位数据输入 移位数据输出 移位数据输出 移位数据输出 移位数据输出 主时钟输出 移位时钟输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 移位控制输出 参考手册 USIC, V2.10 15-200 V1.0, 2013-03 请遵守产品信息使用协议 表 15-23 USIC 模块 0 通道 1 互连 ( 续表 ) 输入 / 输出 I/O 连接到 USIC0_CH1.SELO7 O 无连接 与系统相关的输出 USIC0_CH1.DX0INS O USIC0_CH1.DX1F USIC0_CH1.DX1INS O 无连接 USIC0_CH1.DX2INS O CCU40.IN1L USIC0_CH1.DX3INS O USIC0_CH1.DX0G USIC0_CH1.DX4INS O USIC0_CH1.DX1G USIC0_CH1.DX5INS O USIC0_CH1.DX2G USIC0_CH1.DX3F USIC0_CH1.DX4F XMC1300 XMC1000 家族 通用串行接口通道 (USIC) 描述 移位控制输出 选择的 DX0 输入信号 选择的 DX1 输入信号 选择的 DX2 输入信号 选择的 DX3 输入信号 选择的 DX4 输入信号 选择的 DX5 输入信号 表 15-24 USIC 模块 0 模块互连 输入 / 输出 I/O 连接到 USIC0_SR0 O NVIC USIC0_CH1.DX5G USIC0_SR[5:1] O NVIC 描述 中断输出线 ( 服务请求 SRx) 中断输出线 ( 服务请求 SRx) 参考手册 USIC, V2.10 15-201 V1.0, 2013-03 请遵守产品信息使用协议 模拟外设 XMC1300 XMC1000 家族 模拟外设 参考手册 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 16 多功能模 / 数转换器 (VADC) 多功能模 / 数转换器 (VADC) XMC1300 提供了一系列连接到一个模 / 数转换器集群的模拟输入通道,这些模 / 数转换 器采用逐次逼近寄存器 (SAR)原理将模拟输入值 (电压)转换为离散数字值。 XMC1300 中的模 / 数转换器为采样保持转换器,一个集群包含两个采样保持单元,这两 个采样保持单元共享一个转换器。 模拟输入通道数量和 ADC 的数量取决于所选产品的类型 (参见 16-134 页 “ 产品的具体 配置 ” )。 表 16-1 缩略语 ADC ADC 内核 DNL INL LSBn S&H SCU SHS TUE ADC 一章中的缩略语 含义 模 / 数转换器 也称为 ADC 组 微分非线性 (误差) 积分非线性 (误差) 最低有效位:以数字格式表示的最小粒度的模拟值,由 n 位分辨率转 换结果的一个最低有效位来表示 (测量范围被等分成 2n 个区间) 采样保持 系统控制单元 采样保持定序器 总不可调整误差 16.1 概述 ADC 集群里的每个转换器都可独立于其他的转换器单独工作,每个转换器都由一组专用 的寄存器控制并由一组专用的请求源触发。每个通道的结果都可保存到一个通道专用结 果寄存器或一个组专用结果寄存器中。 后台请求源可以访问未被分配给任何组请求源的所有模拟输入通道。由后台请求源触发 的转换优先级较低,因此后台请求源可被视为额外的后台转换器。 XMC1300 的多功能模 / 数转换器模块(VADC)包含一组转换器单元,每个转换器单元可 独立工作,也可以通过一个模拟后台转换器的共用请求源来操作。每个转换器块都配备 了一个专用输入多路复用器和专用的请求源,它们一起构成独立的转换器组。 这种基本结构支持面向应用的编程和操作,同时仍然提供对所有资源的访问。 VADC 的 所有转换器组几乎完全相同,支持灵活的通道功能分配。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 特性列表 ADC 集群的主要特性如下: • 输入电压范围从 0 V 到模拟电源电压 • 每个通道都可以选择标准参考电压源 (VAREF)和备选参考地 (CH0),以支持比率 测量 • 两个独立的采样保持单元,每个采样保持单元支持 8 个模拟输入通道 • 两个 Σ-Δ 保持单元支持过采样 • 外部模拟多路复用器控制,支持可调节的采样时间和通道扫描 • 转换速度和采样时间可调节,以适应不同的传感器输出电平和参考电压 • 转换时间低于 1 µs (取决于转换结果长度和采样时间) • 灵活的源选择和仲裁 – 队列请求模式,转换顺序可自由编程 (单次或重复) – 每组都能进行可配置的自动扫描转换 (单次或重复) – 后台运行的自动扫描模式,支持所有通道 (单次或重复) – 转换可以由软件、定时器事件或外部事件触发 – 撤消 - 插入 - 重新启动模式可降低高优先级通道上的转换延迟 • 强大的结果处理功能 – 可选择 8/10/12 位的结果宽度 – 快速比较模式 – 独立的结果寄存器 – 边界检测功能,边界值可编程 – 通过累加多个转换结果来降低数据速率 (累加次数可编程) – FIR/IIR 滤波器 (可选择系数) • 可选择触发事件的灵活服务请求产生 (2 个组专用中断, 2 个共享中断) • 内建安全功能:自动断线检测能力,检测电平可编程 • 支持调试挂起和省电模式 注: 来自超量程比较器的其他功能也有效 (参见 SCU 一章中的描述 )。 表 16-2 VADC 的应用 VADC 使用案例 复杂转换序列的自动调度,包括时间关键型转换的优先化 对突发型高速转换的有效结果处理 多达 4 个输入信号的同步采样 应用 电机控制,电源 转换 高动态输入信号 多相电流测量 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换组/内核 结果寄存器 结果确认 转换组/内核 结果寄存器 结果确认 队列源 扫描源 仲裁器 队列源 扫描源 仲裁器 定序器 转换器 S&H 单元 S&H 单元 全局结果 寄存器 后台扫描源 时钟控制 触发信号, 服务请求 ... ... 图 16-1 ADC 结构概览 MC_ VADCSH_ STRUCTURE2 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.2 简介和基本结构 XMC1300 的多功能模 / 数转换器模块 (VADC)包含一组转换器单元,每个转换器单元 可以独立操作,也可以通过一个模拟后台转换器的共用请求源进行操作。每个转换器单 元都配备了一个专用的输入多路复用器和专用的请求源,它们一起构成独立的转换器 组。 模拟参考 电压 VAREF 模拟参考地 VAGND 模拟输入通道 CHx ... ... S&H 单元 共享的 转换器 ADC 内核 服务请求 产生 结果处理 外部多路复用器 控制 MUX[2:0] 转换控制 请求控制 MC_VADCSH_KERNEL 图 16-2 ADC 内核框图 该基本结构支持面向应用的编程和操作,同时仍然提供对所有资源的访问。所有的转换 器组几乎完全相同,支持灵活的通道功能分配。 可根据给定应用的要求对一组功能单元进行配置。这些单元构成从输入信号到数字结果 的通路。 每个内核集成一个专门的采样保持单元,该单元连接到输入多路复用器。多个内核构成 一个集群并共享一个公共的高速转换器,因此各内核具有相同的性能。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-4 V1.0, 2013-03 请遵守产品信息使用协议 模拟参考 模拟输入通道 CHx 模拟输入通道 CHx ... ... ... S&H 单元 S&H 单元 共享的 A/D 转换器 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) ADC 集群 转换器 时钟 模块 时钟 接口 ... 接口 控制逻辑 MC_ VADCSH_ CLUSTER 图 16-3 ADC 集群结构 基本模块时钟 fADC 连接到系统时钟信号 fMCLK。 转换器时钟 fCONV 连接到一个 32-MHz 的时钟信号。 转换模块和请求源 模 / 数转换可被多个请求源 (2 个组请求源和 1 个后台请求源)请求,并且能够在多种 转换模式下执行。可同时使能多个请求源并为每个请求源配置相应的优先级。 • 固定通道转换 ( 单次或连续 ) 一个特定通道源请求对一个可选通道进行转换 (单次或重复) • 自动扫描转换 (单次或连续) 一个通道扫描源 (请求源 1 或 2))请求对所有需要转换的通道进行线性自动扫描转 换 (单次或重复) • 通道序列转换 (单次或连续) 一个队列源 (请求源 0)请求一个转换序列,该转换序列可包含最多 8 个任意可选的 通道 (单次或重复) 多个可用请求源可同时使用多种转换模式, 即可以同时使能不同工作模式的转换。每个 请求源都可被单独使能,并且可由外部事件触发,例如 PWM 的边沿、定时器信号或引 脚的跳变。 请求源控制 因为所有的请求源可同时被使能,因此需要有一个仲裁器解析来自不同请求源的并发转 换请求。 每个请求源都可由外部信号、片上信号或软件触发。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 优先级高的请求能撤消当前正运行的低优先级转换 (撤消 - 插入 - 重启动模式),也可 以等待正在运行的转换完成后立即进行转换 (等待启动模式)。 如果目标结果寄存器尚 未被读取,转换可以被推迟 (待读模式)。 有些通道还可与其他 ADC 内核同步,因此可以并行转换 2 个信号。 后台源(2) (通道扫描) 请求控制 ADC 内核 定时器单元 外部请求 请求源 1 (通道扫描) 请求源 0 (8级队列) 请求源 仲裁器 模拟转换器 图 16-4 转换请求单元 MC_VADC_CONV_REQUEST_UNIT 输入通道选择 模拟输入多路复用器选择一个将要转换的可用模拟输入 (CH0 - CHx1) )。三个转换源可选 择一个线性序列、一个任意序列或一个特定通道。这些源的优先级是可配置的。 如果所需要的独立输入通道多于内建的通道总数,还可使用 VADC 集成的外部模拟多路 复用器自动控制功能来增加转换通道数。 注: 由于引脚的限制,并非所有的模拟输入通道都是可用的。详见 16.17 节的具体实现 描述。 1) 专用输入通道的可用性取决于所用产品型号的封装。 16.17.2 节给出了模拟连接一览表。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换控制 转换参数,如采样阶段的持续时间、参考电压或转换结果分辨率,可通过 4 个输入类(2 个组专用类、 2 个全局类)配置。每个通道都可被单独分配给其中的一个输入类。 因此,可根据连接到 ADC 的传感器类型 (或其他模拟源)对输入通道进行调整。 该单元还可控制内建的多路复用器和外部模拟多路复用器。 模 / 数转换器 将所选输入通道转换为数字值的过程是:首先采样所选输入通道的电压,然后产生所选 位数的结果。 一个集群内的两个采样保持单元共享一个高速转换器。该转换器顺序地生成所有采样保 持单元的结果值。转换器自动执行校验周期。 对于断线检测(参见 16.13.1 节),可以在采样所选输入通道之前将转换器网络预充到一 个设定的电压。 结果处理 每个模拟输入通道的转换结果都可被直接保存到 16 个组专用结果寄存器之一和一个全局 结果寄存器。一个结果寄存器可被一组通道使用,也可以被单个通道使用。 待读模式可以避免数据丢失,因为通过阻塞转换保证了只有先前的结果被读取之后,转 换结果才可以被覆盖。 数据缩减功能 (例如对于数字抗混迭滤波)可以自动累加最多 4 个转换结果,然后发出 服务请求。 可以选择使能 FIR 或 IIR 滤波器,滤波器可以在转换结果被送到结果寄存器之前对其进行 预处理。 另外,结果寄存器可级联起来构建 FIFO 结构,该结构可存储多个转换结果而不会覆盖先 前的数据。这就为 CPU 从 ADC 读取转换数据增加了所允许的延迟时间。 中断服务请求的产生 有多个 ADC 事件可以向 CPU 发出中断服务请求: • 源事件指示相应请求源的一个转换序列的完成。该事件可用于触发新序列的准备。 • 通道事件指示某一通道转换的完成。可与极限检测相结合,仅当结果在给定的范围内 时才会产生中断。 • 结果事件指示相应结果寄存器中一个新结果数据的可用性。如果数据缩减模式被激 活,则结果事件仅在累加序列完成后才会产生。 每个事件都可以被分配到 8 个中断服务请求节点中的一个。这就允许根据应用需求进行 中断服务请求的分组。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 安全特性 VADC 具有确保信号通路完整性的机制,因而支持安全性要求高的应用。 断线检测 (BWD)功能在采样输入通道之前预加载一个可选电平到转换器网络。如果输 入信号不再连接到 VADC 输入,结果就会反映预加载值。如果使用了缓冲电容,需要一 定数量的转换才能达到故障指示电平。 多路复用器诊断(MD)功能将一个弱上拉或下拉器件连接到一个输入通道。随后的转换 就可确认预期的修改后的信号电平。这就允许检查多路复用器工作是否正常。 上、下拉器件由标准端口控制寄存器控制。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.3 电气模型 每次将一个模拟输入电压转换到一个数字值都包含两个连续的阶段: • 在采样阶段,输入电压被采样并保存。 输入信号通路是该阶段的一个简化模型。 • 在转换阶段,所保存的电压被转换为一个数字结果。 输入信号路径 XMC1300 的 ADC 使用由 CAINSW(呈现在每个输入引脚的小寄生电容)表示的开关电容 器。在采样阶段,电容器 CAINSW 通过输入多路复用器(建模为理想开关和串联电阻 RAIN) 与所选的模拟输入 CHx 相连。 连接 CHx 的开关在采样阶段闭合,将电容器与输入电压 VAINx 相连。 ADC 内核 ... ... REXT VAINx CHx RAIN CEXT VS CAINSW VC VAGND MC_ADC_PATHMODEL_SIGNAL 图 16-5 信号通路模型 图 16-5 给出了模拟输入信号通路的简化模型。内部阻抗为 REXT 的模拟电压源(值为 VS) 为待转换的模拟输入提供电压。 在采样阶段,相应的开关闭合,电容器 CAINSW 被充电。由于 RC 组合电路的低通特性, 实际被转换的电压值 VC 不会立即跟随电压 VS。模拟电压源的阻抗值 REXT 和所期望的转 换精度决定了需要的采样阶段时间。 为了降低 REXT 的影响并滤除输入噪声,建议在 ADC 的模拟输入引脚上引入快速外部隔 直电容 CEXT。这样一来,在采样阶段主要由 CEXT 给采样电容充电。这种结构比不带隔直 电容的机构大大缩短了采样阶段的时间,这是因为决定采样时间的低通时间常数主要由 RAIN 和 CAINSW 的值给出。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-9 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 由 REXT (通常是信号源的一个参数)和 CEXT 构成的低通滤波器的参数选择应根据应用 需要确定: • 对于快速变化的动态信号,小的电容会允许 VAINx 在同一模拟输入通道的两个采样阶 段之间跟随 VS 变化。 • 电对压于变高化精小度于转换1 L,S外B部n。隔电直压电的容变C化E是XT 由至少CE应XT为和2Cn ×AINCSAWIN之SW间,的使电采荷样重阶新段分期配间导V致AIN的x 的。 通过 ADC 的模拟输入结构的漏电流会在 REXT 上产生电压降,因而引入误差。ADC 输入 的漏电流在温度高时会增大,而且如果输入电压电平接近模拟电源地 VSS 或模拟电源电 压 VDDPA ,漏电流也会增大。可通过避免输入电压接近电源电平来降低 ADC 通道的输入 漏电流。 相邻模拟输入通道发生过载情况时 (输入电压超出电源电压范围)会注入额外的漏电流 (由耦合因子定义)。 在采样阶段开始之初,电容 CAINSW 被自动放电。 传输特性和误差定义 ADC 的传输特性描述了模拟输入电压到 2n 个离散数字结果值(n 位分辨率)的联系。每 个数字结果值 (范围在 0 到 2n-1)代表由参考电压范围除以 2n 所定义的输入电压范围。 该范围 (称为量化步长或编码宽度)代表 ADC 的粒度 (称为 LSBn)。数字结果的离散 特性使得每个转换结果都会产生一个 ±0.5 LSBn 的系统固有量化误差。 当模拟输入达到 0.5 LSBn 时,理想的传输曲线产生第一次数字跳变 (0 和 1 之间)。量 化步长在整个输入电压范围内是均匀分布的。 低于或高于参考电压极限值的模拟输入电压会导致数字结果饱和为 0 或 2n-1。 实际的传输曲线与理想的传输曲线之间会有一定的偏差: • 偏移误差是在最低编码情况下实际传输曲线与理想传输曲线的偏差。这是指对所有可 能编码的最佳拟合曲线。 • 增益误差是理想传输曲线的斜率与实际传输曲线斜率的偏差。这是指对所有可能编码 的最佳拟合曲线。 • 微分非线性误差 (DNL)是实际的编码宽度 (两个相邻数字转换结果之间的模拟输 入电压的变化)与理想编码宽度的偏差。 • 积分非线性误差 (INL)是实际传输曲线与调整后的理想传输曲线之间的偏差(偏移 和增益误差同实际曲线,但有相同的编码宽度)。 • 总不可调整误差(TUE)描述在给定测量范围内实际转换结果与理想传输特性之间的 最大偏差。因为上面提到的一些误差可以相互补偿,所以 TUE 的值一般远小于各个 误差之和。 TUE 还包含了生产工艺偏差和内部噪声效应。(如果开关噪声是由系统产生的,这一 般会导致 TUE 增大)。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-10 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.4 一般功能的配置 虽然可为每个通道、源或组单独选择许多参数,但有些调整对整个 ADC 集群都有效: • 时钟控制 • 内核同步 • 外部多路复用器控制 16.4.1 一般时钟方案和控制 XMC1300 的 A/D 转换器配有一个来自系统的全局时钟信号 fADC。该时钟信号控制所有逻 辑块的全部功能并决定总体时序。 全局配置寄存器为集群内的所有转换器定义公共时钟 基准。这就保证了应并行工作的转换器的行为是确定的。 转换器的时钟 fCONV 决定了转换器本身的性能。 VADC 状态机 服务请求 时钟产生单元 模块时钟 fVADC 转换器时钟 fADC DIVD 数字时钟 fADCD DIVA 模拟时钟 fADCI DIVS 采样和保 持时钟 fSH 仲裁器 时序发生器 步进转换器 MC_VADCSH_CLOCKS 图 16-6 时钟信号概览 16.4.2 寄存器访问控制 VADC 提供了多种保护机制来防止对 VADC 控制位域的意外写访问。 • 一种专用的寄存器访问控制机制提供通用的保护方案,以防止对寄存器内容的意外修 改。寄存器 ACCPROT0 和 ACCPROT1 允许限制对几个寄存器组的写访问。要保护 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-11 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 的寄存器可由用户选择。表 16-10 列出了属于每个寄存器组的寄存器。 寄存器 ACCPROT0/1 本身受 SCU 一章所描述的位保护机制的保护。 • 一个寄存器内的位域组同样可以受相关联的写控制位的保护。在对所关心的位域进行 写访问时,也必须向该写控制位 (xxWC)写 1 。 16.4.3 优先通道和优先结果寄存器分配 一个组的每个通道和结果寄存器都可被分配给该组的请求源,然后作为优先通道或优先 结果寄存器。 优先通道分配 已分配的优先通道只能被本组内的请求源转换。未分配的通道也可由后台请求源转换。 优先结果寄存器分配 已分配的结果寄存器只能通过本组内的请求源进行写操作。未分配的结果寄存器还可以 由后台请求源进行写操作。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-12 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.5 模拟模块的激活和控制 ADC 的模拟转换器是将所选输入电压转换为数字结果值的功能块。它在工作期间一直汲 取电流,可以在两次转换之间将其停用以减少总体能耗。 注: 器件复位后模拟转换器是关断的,必须在触发任何与转换器相关的操作之前将其 使能。 可通过校准模拟转换器来补偿工艺、温度和电压变化的影响,提高转换精度。 16.5.1 模拟转换器控制 工作模式由位域 GxARBCFG (x = 0 - 1).ANONS 决定: • ANONS = 11B:正常工作模式 转换器处于活动状态,可以立即启动转换。 不需要唤醒时间。 • ANONS = 10B 保留 • ANONS = 01B:低速待机模式 当没有转换请求时,转换器进入省电模式。当有转换请求时,它会自动返回到正常工 作模式。低速待机模式使 ADC 电源的总体功耗最低。 需要唤醒时间 ( 见下面的描述 )。 • ANONS = 00B:转换器关断 (复位后的默认状态) 如果相应集群的所有组都关断,则转换器被关断。而且,数字逻辑模块被设置为其初 始状态。如果仲裁器正在运行,则它在完成当前的仲裁巡回后停止。 在启动转换之前,要为 ANONS 选择活动模式。 需要扩展的唤醒时间 (见下面的描述): 寄存器 SHSCFG 中的位 ANOFF 强制模拟部分进入掉电模式,而不改变相关组的配置。 当 ANOFF = 0 时,模拟部分被数字部分中的位域 ANONS 自动控制。因为几个组(具有 独立的 ANONS 位域)由同一个集群提供服务,所以模拟部分由下述方案控制: 表 16-3 模拟部分掉电控制操作 ANON 设置1) 掉电模式 所有 ANON 信号都是 00B ANON 信号是 00B 或 01B 一个或多个 ANON 信号是 11B 1) 考虑在位 ANOFF = 0 期间。 模拟部分关断 在非采样阶段且没有转换正在进行时,模拟部分自动关 断 模拟部分总是活动的 注: 因为关断模拟部分需要一个唤醒阶段,所以最佳配置取决于实际应用。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-13 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 从模拟掉电唤醒的时间 当转换器被激活时,它需要经过一定的唤醒时间后才能进行正确的转换。唤醒时间可通 过在启动一次转换之前等待所需要的周期来建立,也可通过在采样时间上增加所需要的 周期来建立。 唤醒时间大约为 15 µs。 准确的数值可在数据手册中找到。 注: 在首次使能转换器之后,也需要唤醒时间。 16.5.2 校准 校准操作可自动补偿由工艺、温度和电压变化所引起的偏差,确保在工作期间获得精准 的转换结果。 偏移和增益校准需要执行几个不同的校准周期。为最小化校准所消耗的额外时间,偏移 和增益校准周期交替进行。 一旦所有转换器都完成复位,就需要进行初始启动校准。所有的转换器都必须被使能 (ANONS = 11B)。初始启动校准通过将寄存器 GLOBCFG 中的位 SUCAL 置 1 来全面启 动。通过置位寄存器 CALCTR 中的位 SUCAL,可以启动相应集群转换器的启动校准。 在初始校准序列结束后,可以启动转换。这可由位 CALS = 1B 和位 CAL = 0B 来指示。 启动校准阶段需要 1 920 个周期 (1920 × 31.25 ns = 60µs)。 此后,校准周期将补偿漂移参数的影响。校准周期可在一次转换序列之前或之后 (根据 用户配置)进行,也可以禁止校准周期。 在 ADC 的空闲阶段,校准定时器自动触发校准周期。这样可以保证,即使经过一段空闲 时间后, ADC 仍能保证其额定性能。 注: ADC 的误差取决于温度。因此校准必须周期性地重复进行。 最大校准间隔 在没有转换请求期间,步进式转换器保持在空闲状态。为了不损失精度,有一个计数器 记录自最后一次执行校准以来的时间。在每次校准之后,该定时器都会被加载,加载的 初始值来自位域 CALCTR.CALMAX,然后计数 512 × (CALMAX+1) 个时钟。如果计数器 期满,它会产生一次校准请求来启动步进转换器执行一个校准周期。 16.5.3 Σ-Δ 回路功能 由于步数,即离散结果值是有限的,每次标准的模 / 数转换都会产生一个量化误差。通过 激活 Σ-Δ 回路功能,残余的量化误差可以被传递到下一次转换。残余电荷被保存并添加 到下一次采样的电荷。因此,对一系列转换结果求平均值 (在使能回路功能的情况下) 可以减小引入的量化误差。 注: VADCDIG 的数据累加功能已经支持这种平均。 回路控制位域在寄存器 SHS0_LOOP 中是成对可用的。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-14 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.6 转换请求的产生 组内的转换请求单元自动处理转换请求的产生。三个请求源 (2 个组专用请求源和 1 个 后台请求源) 可以产生对一个模拟通道的转换请求。 仲裁器解析并发请求并选择下一个 要转换的通道。 在发生触发事件时,请求源请求对某个特定模拟输入通道或一个通道序列进行转换。 • 软件触发 直接激活相应的请求源。 • 外部触发 用外部事件同步激活请求源,例如用定时器产生的 PWM 信号或来自端口引脚的信号 作为触发脉冲。 应用软件可以选择触发信号类型和触发源、要转换的通道以及请求源的优先级。请求源 也可以直接由软件激活,而无需外部触发信号。 仲裁器周期性地扫描请求源,看是否有未裁决的转换请求,并选择具有最高优先级的请 求源。然后该转换请求被转发到转换器,启动所请求通道的采样和转换。 每个请求源都可以在单次或连续模式下工作: • 在单次模式 一次触发仅请求一次所定义的转换 (序列)。后续的转换 (序列)必须再次被触发。 • 在连续模式 一旦被触发,就自动重复请求所定义的转换 (序列)。 对于每个请求源,外部触发信号产生于 16 个可选触发输入 (REQTRx[P:A]) 之一以及 16 个可选门控输入 (REQGTx[P:A]) 之一。 XMC1300 的可用触发信号在 16.17.3 节列出。 注: 页 16-6 的图 16-4 “ 转换请求单元 ” 概述了请求源。 有两种可用的请求源类型: • 队列请求源能为一个任意序列的输入通道发出转换请求。该序列的通道编号可自由编 程1)。 这就允许支持不能被通道扫描源覆盖的特定应用转换序列,而且还支持在一个 序列内对同一通道进行多次转换。 一个队列请求源连续或周期性地转换一系列的输入通道。例如,如果被编程为中等优 先级,一些输入通道就可在一个指定的事件发生时进行转换(例如与一个 PWM 信号 同步)。同时,较低优先级的转换被挂起。 请求源 0 是一个组专用的 8 级队列请求源。 • 通道扫描源能为一个连贯序列的输入通道发送转换请求。该序列从被使能的最高通道 号开始向较低的通道号进行。所有的可用通道 1) 都可以被使能为扫描序列中的一员。 每个序列中的每个通道都被转换一次。 一个扫描源连续或周期性地转换一系列的输入通道。例如,如果被编程为低优先级, 一些输入通道就可在一后台任务里被扫描,来更新非时间关键性信息。 1) 特定输入通道的可用性取决于所选产品类型的部件。总结请看 16.17.2 节 . 后台源仅能请求无优先级的通道,即那些未被寄存器 GxCHASS 选中的通道。优先级通道为特定组请求源 0 和 1 保留。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-15 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) – 请求源 1 是一个组专用的通道扫描源。 – 请求源 2 是一个全局通道扫描源 (后台请求源)。 后台请求源可请求对所有组的所有通道进行转换。 16.6.1 队列请求源处理 队列请求源支持同一组中任意多个 (最多 8 个)通道的短转换序列 (与具有固定转换顺 序的扫描请求源相反)。编程的序列被保存在队列缓冲区中(基于 FIFO 机制)。请求的 通道号通过队列输入寄存器 GxQINR0 (x = 0 - 1) 写入,队列级 0 定义下一个要转换的通 道。 只有在队列级 0 中保存了一个有效条目的情况下,转换请求才会被发送到请求源仲裁 器。 如果由于存在高优先级的请求,仲裁器中止了由队列请求源触发的一次转换,则相应的 转换参数被自动保存在备份级。这样可确保被中止的转换请求不丢失,而是加入到下一 轮的仲裁 (在级 0 之前)。 触发和门控单元从所选择的外部 (ADC 的外部)触发和门控信号产生触发事件。例如, 一个定时器单元能够发出一个请求信号,使转换与 PWM 事件同步。 触发事件启动一个队列序列,触发事件可通过软件或所选择的硬件触发信号产生。触发 事件的发生由位 QSRx.EV 指示。当相应的转换被启动时,该标志被清零,也可以通过写 位 QMRx.CEV 将其清零。 触发输入 REQTRx_[7:0] 门控输入 REQGTx_[7:0] 请求源 事件 REQTRx 触发和 门控单元 E V REQGTx 等待 触发 顺序请求源 图 16-7 队列请求源 队列输入 重填 中间队列级 队列级 0 请求 请求处理 状态 中止 重新启动 后备级 请求源 仲裁器 ADC_seq _r eqsr c 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-16 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 一个序列是通过将转换请求添加到队列输入寄存器 (GxQINR0 (x = 0 - 1)) 来定义的。每 个条目选择要转换的通道,并且可以使能外部触发信号、中断产生和自动重填 (即转换 结束后将该条目复制到队列的最顶端)。条目被保存到队列的缓冲级。 级 0(GxQ0R0 (x = 0 - 1)) 的内容选择下一个要转换的通道。当所请求的转换被启动时, 该队列级的内容失效,并且被复制到备份级。然后下一个队列条目可以被处理 (如果可 用的话)。 注: 队列级的内容不能直接被修改,只能通过写队列输入或清空队列来修改。 队列的当前状态在寄存器 GxQSR0 (x = 0 - 1) 中显示。 如果所有的队列条目都选择了自动重填,则所定义的转换序列可以重复执行而不 需重新编程。 队列请求源的属性 队列请求源 0 提供了 8 个缓冲级,可处理具有多达 8 个输入通道条目的序列。它支持短 的特定应用转换序列,尤其那些时间关键型序列和对同一通道进行多次转换的序列。 队列源操作 配置队列请求源,通过执行下面操作完成: • 通过将条目写入队列输入 GxQINR0 (x = 0 - 1) 来定义序列。在使能请求源之前,要 先初始化整个序列,因为重填功能被使能,所以不允许软件对 QINRx 进行写操作。 • 如果希望使用硬件触发或门控功能,可通过对 GxQCTRL0 (x = 0 - 1) 编程来选择合 适的触发和门控输入以及正确的跳变。 通过对寄存器 GxQMR0 (x = 0 - 1) 中的位域 ENGT 编程来使能触发信号并选择门控 方式。1) • 使能相应的仲裁时隙(0)以接受队列源的转换请求(见寄存器GxARBPR (x = 0 - 1))。 启动队列序列,通过产生一个触发事件实现: • 如果已经选择并使能了某一硬件触发信号,在所选输入信号(例如来自一个定时器或 一个输入引脚)所配置的跳变沿产生触发事件。 • 通过设置 GxQMR0.TREV = 1 产生一个软件触发事件。 • 写一个新条目到一个空队列的队列输入。这将导致产生一个 (新)有效队列条目,该 条目被转发到队列级 0,并启动一次转换请求 (如果已通过 GxQMR0.ENGT 使能并 且不需等待外部触发信号)。 注: 如果重填机制被激活,一个被处理过的条目会被自动重新加载到队列中。这样就会 一直重复相应的序列 (自动扫描)。 在这种情况下,当队列源正在运行时,不要写队列输入。 对一个完全填充的队列的写操作被忽略。 1) 如果使用来自 ERU 的 PDOUT 信号,要在使能门控输入之前相应地初始化 ERU,以避免不希望的信号跳变。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-17 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 停止或中止一个正在执行的队列序列 ,通过执行下列操作之一来完成: • 如果外部门控被使能,将门控信号切换到无效电平。该操作不会修改队列条目,只是 防止发送转换请求给仲裁器。 • 禁止仲裁器中相应的仲裁时隙 (0) 。该操作不会修改队列条目,只是防止仲裁器接 受来自请求处理块的请求。 • 通过设置位域 ENGT = 00B 来禁止队列源: – 通过设置位 GxQMR0.CLRV = 1,使下一个待处理的队列条目失效。 如果备份级包含一个有效条目,则该条目失效,否则级 0 失效。 – 通过设置位 GxQMR0.FLUSH = 1,清空队列的所有条目。 队列请求源事件和服务请求 当一次转换完成时,会发生一个队列源的请求源事件。根据图 16-8 所示的结构,一个源 事 件 服 务 请 求 可 基 于 一 个 请 求 源 事 件 产 生。如 果 检 测 到 一 个 请 求 源 事 件,则 寄 存 器 GxSEFLAG (x = 0 - 1) 中的相应指示标志会置 1。也可以通过向相应的位写 1 来置位这 些标志,写 0 时不起作用。指示标志可通过软件向寄存器 GxSEFCLR (x = 0 - 1) 中的相 应位写 1 来清除。 对于一次正常的序列转换,中断使能位取自级 0 ;对于一次中止后的重复转换,中断使 能位取自备份级。 每当检测到相关的请求源事件 (并且通过 GxQ0R0.ENSI 或 GxQBUR0.ENS 分别使能) 或寄存器 GxSEFLAG (x = 0 - 1) 中的相关位被写 1(该写操作模拟一次请求源事件)时, 由寄存器 GxSEVNP (x = 0 - 1) 中的请求源事件中断节点指针位域所选择的服务请求输出 线 SRx 被激活。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-18 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 请求源事件 指示标志 GxSEFLAG. SEV0 置位 请求源事件 中断使能 GxQ0R0. ENSI 由请求源触发 的转换已结束 请求源事件 GxQBUR0. ENSI 请求源事件 节点指针 GxSEVNP. SEV0NP 0 1 GxQBUR0. V GxSR0 : GxSR3 CyS:R0 CySR3 MC_VADC_ REQSRCQ_INT 图 16-8 队列请求源的中断产生 16.6.2 通道扫描请求源处理 VADC 提供两种类型的通道扫描源: • 源 1:组扫描源 该扫描源可请求相应组内的所有通道。 • 源 2:后台扫描源 该扫描源可请求所有组的所有通道。 寄存器 GxCHASS (x = 0 - 1) 中选择的优先通道不能加入后台转换序列。 两类源以相同的方式工作,并且提供相同的寄存器接口。后台源提供更多的请求 / 挂起 位,因为它能请求所有组的所有通道。 通过置位或清零寄存器 GxASSEL (x = 0 - 1) 或 BRSSELx (x = 0 - 1) 中相应的通道选择 位,可以将每个模拟输入通道都包含进扫描序列或从扫描序列排除。对于一个正在进行 中的扫描序列,编程的寄存器值保持不变。扫描操作从被使能的最高通道号开始向低通 道号进行。 在发生一次加载事件时,请求信息被传送到寄存器 GxASPND (x = 0 - 1) 或 BRSPNDx (x = 0 - 1) 中的挂起位。挂起的转换请求指示在进行中的扫描序列内哪个输入通道将被转 换。每次由扫描请求源触发的转换启动都会自动清除相应的挂起位。如果由扫描源触发 的最后一次转换结束并且所有的挂起位都被清零,则当前的扫描序列被认为已经结束并 产生一个请求源事件。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-19 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 只有在至少有一个挂起位被置 1 的情况下,才会向请求源仲裁器发出转换请求。 如果仲裁器因为存在高优先级的请求而中止了由扫描请求源触发的一次转换,则相应的 挂起位被自动置 1。这就确保了一次中止的转换不会丢失而是加入下一轮仲裁。 触发和门控单元从选定的外部触发 (ADC 的外部)和门控信号产生加载事件。例如,一 个定时器单元可发出一个请求信号,使转换与 PWM 事件同步。 加载事件启动一个扫描序列,该事件可通过软件或通过选择的硬件触发信号产生。请求 源事件也能产生一个自动加载事件,因此编程的序列能自动重复。 外部触发信号 内部 MUX 触发 产生 序列控制 转换请求 服务请求 外部门控信号 内部 MUX 序列挂起 序列选择 MC_VADC_REQSRCS 图 16-9 扫描请求源 扫描源操作 配置扫描请求源 ,通过执行下面的操作完成: • 通过对 GxASSEL (x = 0 - 1) 或 BRSSELx (x = 0 - 1) 编程来选择序列的输入通道 • 若希望使用硬件触发或门控功能,可通过对 GxASCTRL (x = 0 - 1) 或 BRSCTRL 编 程选择合适的触发和门控输入以及正确的信号跳变。通过对 GxASMR (x = 0 - 1) 或 BRSMR1) 编程来使能触发信号并选择门控方式。 • 通过对 GxASMR (x = 0 - 1) 或 BRSMR 编程来定义加载事件操作 (处理挂起位、自 动扫描模式)。 在位 LDM = 0 的情况下,加载事件复制 GxASSEL (x = 0 - 1) 或 BRSSELx (x = 0 1) 的内容到 GxASPND (x = 0 - 1) 或 BRSPNDx (x = 0 - 1) (覆盖模式)。这将启动 一次新的扫描序列并且中止来自前一扫描序列的任何挂起转换。 1) 如果使用来自 ERU 的 PDOUT 信号,在使能门控输入之前要相应地初始化 ERU,以避免不希望的信号跳变。. 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-20 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 在位 LDM = 1 的情况下,加载事件将 GxASSEL (x = 0 - 1) 或 BRSSELx (x = 0 - 1) 分别与 GxASPND (x = 0 - 1) 或 BRSPNDx (x = 0 - 1) 的内容进行或组合运算(组合 模式)。这将启动一个扫描序列,该序列包含来自前一扫描序列的挂起转换。 • 使能相应的仲裁时隙(1),以接受来自通道扫描源的转换请求(见寄存器 GxARBPR (x = 0 - 1))。 启动一个通道扫描序列,通过产生加载事件实现: • 如果已经选择并使能了一个硬件触发信号,在所选输入信号(例如,来自一个定时器 或一个输入引脚)所配置的跳变沿产生触发事件。 • 通过设置 LDEV = 1(GxASMR (x = 0 - 1) 或 BRSMR)产生一个软件加载事件。 • 通过直接写扫描信息到 GxASPND (x = 0 - 1) 或 BRSPNDx (x = 0 - 1) 中的挂起位, 来产生一个加载事件。该信息被复制到 GxASSEL (x = 0 - 1) 或 BRSSELx (x = 0 - 1) 并且自动产生一个加载事件。 在这种情况下,通过一次数据写操作即可定义并启动一个扫描序列,例如在 PEC 控 制下 (假定模式能装进一个寄存器)。 注: 如果自动扫描被使能,每当扫描序列结束并发生请求源事件时,会自动产生一个加 载事件。这样会一直重复转换所定义的扫描序列 (自动扫描)。 停止或中止一个正在进行的扫描序列,通过执行下面的操作之一实现: • 如果外部门控被使能,则将门控信号切换到所定义的无效电平。该操作不会修改转换 挂起位,只是防止发送转换请求给仲裁器。 • 禁止仲裁器中的相应仲裁时隙 (1 或 2)。该操作不会修改转换挂起位的内容,只是 防止仲裁器接受来自请求处理块的请求。 • 通过设置位域 ENGT = 00B 来禁止通道扫描源。通过设置位 CLRPND = 1(GxASMR (x = 0 - 1) 或 BRSMR)来清除挂起请求位。 扫描请求源事件和中断服务请求 如果一个扫描序列的最后一次转换结束(所有挂起位均为 0),会发生一个扫描源的请求 源事件。基于请求源事件会产生请求源事件中断。如果检测到一个请求源事件,则寄存 器 GxSEFLAG (x = 0 - 1) 中相应的指示标志被置 1。也可通过向相应的位写 1 来置位这 些标志,写 0 时不起作用。 每当检测到相关的请求源事件 (已通过 ENSI 使能)或寄存器 GxSEFLAG (x = 0 - 1) 中 的相关位被写 1 (该写操作模拟一个请求源事件)时,通过寄存器 GxSEFLAG (x = 0 1) 中的请求源事件中断节点指针位域选择的服务请求输出 SRx 被激活。 指示标志位可通过软件写 1 到寄存器 GxSEFCLR (x = 0 - 1) 中的相应的位清零。1) 1) 请参见 16-54 页 “ 服务请求产生 ” 。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-21 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.7 请求源仲裁 请求源仲裁器周期性地为挂起的转换请求逐个查询相应组的请求源。每个请求源都在一 轮仲裁周期内被分配一个时隙,称为仲裁时隙。一个仲裁时隙的时间可以由用户通过寄 存器 GLOBCFG 来配置。 每个请求源的优先级可由用户通过寄存器 GxARBPR (x = 0 - 1) 配置,因此在有来自多 个源的并发请求的情况下,仲裁器可根据应用需求选择下一个要转换的通道。 未使用的仲裁时隙被认为是空的,并且不参与仲裁。 复位后,所有的时隙都被禁止,必 须被使能 (寄存器 GxARBPR (x = 0 - 1))后才能参与仲裁过程。 图 16-10 总结了仲裁序列。一个仲裁周期由每个可用请求源的一个仲裁时隙组成。同步 源总是在最后一个时隙被评估,并且拥有比所有其他源更高的优先级。 在每个仲裁周期 结束时,仲裁器已经确定了优先级最高的转换请求。 如果在仲裁周期内启动了一次转换,则该仲裁周期不会产生仲裁胜出者。在 XMC1300 中,可用的请求源如下: • 仲裁时隙 0:组队列源 ,任意顺序的 8 级序列 • 仲裁时隙 1:组扫描源,组内设定顺序的序列 • 仲裁时隙 2:后台扫描源,设定顺序的序列,所有组 • 最后一个仲裁时隙:同步源,来自另一组的同步转换请求(总是在一个同步从组内按 最高优先级处理)。 仲裁循环 仲裁时隙 0 仲裁时隙 1 仲裁时隙 2 仲裁时隙 3 仲裁获胜者 查询请求源 0 查询请求源 1 查询请求源 2 检查同步 启动请求 图 16-10 有 4 个仲裁时隙的仲裁周期 可以启动 转换 ADC_arbiter _round 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-22 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.7.1 仲裁器操作和配置 仲裁器的时序 (即一个仲裁周期的时序)由一个仲裁周期内的仲裁时隙数和一个仲裁时 隙的持续时间决定。 一个仲裁周期包含 4 到 20 个仲裁时隙 (由位域 GxARBCFG (x = 0 - 1) 定义)。对于 XMC1300,4 个时隙已经足够;对于不同的产品,可编程更多的时隙以获得相同的仲裁 时序。 仲裁时隙的持续时间是可配置的 ,即 tSlot = (DIVD+1) / fADC。 因此,一个仲裁周期的持续时间是 tARB = 4 × tSlot。 仲裁周期引入一个时间粒度来检测输入的转换请求信号和启动相关转换的最早时间点。 该时间粒度可引入最大为一个仲裁周期的抖动。可通过最小化仲裁周期来减小该抖动。 为了在一个转换请求的触发事件 (例如由一个定时器单元或一个外部事件触发)与启动 相关转换之间获得可再生的反应时间 (无抖动的固定延迟) ,主要有以下两种选择。对 于这两种选项,转换器都必须是空闲的,并且在产生触发事件之前至少一个仲裁周期内 不允许有其它转换请求处于挂起状态: • 如果位 GxARBCFG (x = 0 - 1).ARBM = 0,仲裁器会一直运行。在该模式下,允许多 个 ADC 内核进行同步转换。1) 一次转换请求的触发信号的产生必须与仲裁时序同步。输入的触发信号应精确地为仲 裁时间粒度的 n 倍 (n = 1, 2, 3,...)。为了实现一定的灵活性,仲裁时隙的持续时间 可编程为 fADC 的周期个数。 • 如果位 GxARBCFG (x = 0 - 1).ARBM = 1,当不再有任何挂起的转换请求时,仲裁器 在一轮仲裁之后停止工作。如果至少有一个已使能的请求源指示有一个挂起的转换请 求,则仲裁器重新启动。转发请求的触发信号不需要与仲裁时序同步。 在该模式下,不能够为同步从组进行并行转换。 每个请求源都有一个可配置的优先级,因此仲裁器能解析来自不同请求源的并发转换请 求。优先级最高的请求被选中进行转换。可以调整这些优先级来适应一个给定应用的需 求 (见寄存器 GxARBPR (x = 0 - 1))。 转换启动模式决定对已经赢得了仲裁的转换请求的处理。 16.7.2 转换启动模式 当仲裁器选定了下一个要转换的请求时,对该通道的处理取决于转换器的当前活动状态: • 转换器当前为空闲:立即启动仲裁胜出方的转换。 • 当前的转换具有相同或更高的优先级:当前的转换完成后,启动仲裁胜出方请求的转 换。 • 当前的转换具有较低的优先级:转换器的操作可由用户配置: – 等待启动模式:待当前的转换完成后,启动仲裁胜出方请求的转换。该模式提供最 大的吞吐率,但可能对高优先级转换产生抖动。 图 16-11 中的例子: 1) 更详细的信息请参见 16-47 页 “ 转换同步 ” 。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-23 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换 A 被请求 (t1) 并启动 (t2)。转换 B 随后被请求 (t3)。但仅在转换 A 完成后才启 动 (t4)。 – 撤消 - 插入 - 重复模式:当前的转换被中止,中止后 (3 个 fADC 周期 ),启动仲裁胜 出方请求的转换。 被中止的转换请求重新被保存到相应的请求源中,并参加下一轮仲裁。该模式为高 优先级的转换提供最小的抖动,但降低总体吞吐率。 图 16-11 中的例子: 转换 A 被请求 (t6)并启动 (t7)。转换 B 随后被请求 (t8)并启动 (t9),此时 当转换 A 被中止但又再次请求。当转换 B 完成后 (t10),转换 A 被重新启动。 例外:如果两个请求的目标是同一个结果寄存器且待读模式有效(见 16.11.3 节), 则当前的转换不能被中止。 注: 在上述每种情况下,一个被撤消的转换都可以被自动重复,或者如果被撤消的话它 可以被丢弃。可以通过相应源的模式寄存器中的位 RPTDIS 来为每个源做出选择。 t1 t3 t6 t8 请求通道 B 请求通道 A 转换 A B A B A t2 t4 t5 t7 t9 t10 t11 等待启动模式 撤销-注入-重新启动模式 ADC_conv _starts 图 16-11 转换启动模式 每个请求源的转换启动模式都可以通过寄存器 GxARBPR (x = 0 - 1) 中的位单独编程,并 且适用于由该源请求的所有通道。在该例中,通道 A 的请求是由一个优先级比请求通道 B 转换的请求源要低的请求源发出的。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-24 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.8 模拟输入通道配置 可以为每个模拟输入通道配置一些控制该通道转换的参数。通道控制寄存器定义了下面 的参数: • 通道参数:通道的采样时间和结果的数据宽度通过输入类来定义。每个通道可在其所 在组的两个类中选择一个,也可以在两个全局类中选择一个。 • 参考选择:可选择一个备用参考地。 • 结果目标 :转换结果值可以保存到组专用寄存器或全局结果寄存器。组专用结果寄存 器被选择为通道专用,由寄存器 G0CHCTRy (y = 0 - 7) 中的位域 RESREG 选择。 • 结果位置:结果值能够以左对齐或右对齐的方式保存。确切的位置还取决于所配置的 结果宽度和数据累加模式。 参见页 16-38 的图 16-18 “ 结果存储选项 ”。 • 与标准转换比较 ( 极限检查 ):当一个新的结果值可用时,就会产生通道事件。通道事 件产生的条件可被限制为结果值位于用户所定义范围的内部或外部。 在快速比较模式,通道事件的产生取决于 (1 位)结果的跳变。 • 断线检测:该安全特性可检测连接到一个模拟信号源 (传感器)的连接是否断开。 • 转换同步:多个转换器在同一时刻进行同步转换。 别名功能将在通道 CH0 和 / 或 CH1 定义的转换请求重定向到其他模拟输入通道。 16.8.1 通道参数 每个模拟输入通道都由其相关联的通道控制寄存器配置。 注: 对于安全特性 “ 断线检测 ”,参见 16.13.1 节。 可为每个通道定义下面的特性: • 转换类定义结果宽度和采样时间 • 通道事件的产生和结果范围的定义 (如果使用该功能) • 结果寄存器选择及结果寄存器中转换结果存储位置的定义 组专用输入类寄存器为相关组的每个通道定义采样时间和数据转换模式,该组通过其通 道控制寄存器 GxCHCTRy 中的位域 ICLSEL 来选择输入类。 全局输入类寄存器为任意组的每个通道定义采样时间和数据转换模式,该组通过其通道 控制寄存器 GxCHCTRy 中的位域 ICLSEL 来选择输入类。 16.8.2 别名功能 别名功能将在通道 CH0 和 / 或 CH1 定义的转换请求重定向到其他模拟输入通道(引脚)。 该功能可用于允许多个独立事件触发同一输入引脚的转换,并将转换结果保存到不同的 结果寄存器中。 • 可对同一信号进行两次测量而无需读取转换结果,以避免数据丢失。这就允许快速地 先后触发两次转换,而且与 CPU 的服务请求延迟无关。 • 传感器信号仅连接到一个模拟输入 (而不是两个模拟输入)。这就允许在低成本应用 中节省输入引脚,在计算误差时只需考虑一个输入的漏电流。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-25 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) • 即使模拟输入 CH0 被用作备选参考电压输入 (见图 16-12),仍可使用通道 CH0 的 内部触发和数据处理功能。 • 两次转换的通道设置可以不同 (边界值、服务请求等)。 在典型的低成本交流驱动应用中,只使用一个公共的电流传感器来测量相电流。根据所 施加的 PWM 序列,测量值具有不同的含义,采样点必须精确地位于 PWM 周期内。图 16-12 给出了这样一个例子:传感器信号与一个输入通道 (CHx) 连接,但会触发两路通道 (CHx 和 CH0)的两次转换。利用别名功能, CH0 的一次转换请求导致一次模拟输入 CHx 的转换而不是 CH0,但使用的是 CH0 的设置。尽管测量的是同一路模拟输入 (CHx),但转换结果可保存在不同的寄存器 RESx(对 CHx 触发的转换)和 RESy(对 CH0 触发的转换)中,并可从这些寄存器中读取。此外,可选择并可使能或禁止不同的 中断或极限边界值。 传感器 参考电压 CHx ADC CH0 RESRx RESRy PWM 定时器 触发信号 CHx 触发信号 CH0 ADC_ alias 图 16-12 别名功能 16.8.3 转换模式 ADC 转换能够以多种模式执行。转换模式的选择依据是所要求的数字结果分辨率和可接 受的转换时间 (16.10 节 )。 使用寄存器 GxICLASS0 (x = 0 - 1) 中的位域 CMS/CME 来选择转换模式。 标准转换 标准转换返回具有预定义分辨率的结果值。可选择 8 位、 10 位和 12 位的分辨率。 可以对这些结果值进行累加、滤波,也可以用这些结果值进行数字极限检查和确定极值。 注: 转换器可以带校准步骤或不带校准步骤工作。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-26 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 快速比较模式 在快速比较模式,所选择的输入电压与保存在相应结果寄存器中的一个数字值直接比 较。该比较操作返回一个二元结果,用于指示比较的输入电压高于还是低于给定的参考 值。该结果的产生速度快,因此支持边界值监视。 快速比较模式使用一个 10 位的比较值,该值以左对齐方式保存在位 11 的位置。可使用 独立的正向和负向增量值来定义一个任意的滯回区间。 选择比较值 数字或模拟比较操作的值可以从多个源选择。单独的 GxBOUND 寄存器提供软件定义的 比较值。 在快速比较模式,结果寄存器提供比较值,而本地寄存器 GxBOUND 中的位域定义正向 和负向增量值。 16.8.4 与标准转换比较 ( 极限检查 ) 极限检查机制能自动地将每次数字转换结果与一个上边界值和一个下边界值进行比较。 当一次转换 / 比较的结果位于用户定义范围的内部或外部时 (见位域 CHEVMODE 和图 16-13),会产生一次通道事件。 该特性支持自动范围监视,并且通过只在某些预定义条件下发出服务请求来最小化 CPU 的负荷。 注: 对于每一个结果值(忽略结果范围),还可以产生通道事件,也可以完全禁止产生 通道事件。 可从多个源选择用来与结果进行比较的边界值 (见寄存器 GxCHCTRy)。 位域 BNDSELU 和 BNDSELL 选择有效的上 / 下边界值,这些值来自组专用的边界寄存 器 GxBOUND (x = 0 - 1) 或全局边界寄存器 GLOBBOUND。可以为相应组的每个通道 选择组边界寄存器;每个可用通道都可选择全局边界寄存器。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-27 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 2n -1 上边界 结果范围 结果位于范围之外 下边界 0 结果位于范围之内 MC_ VADC_LIMITBAND 图 16-13 通过极限检测进行结果监测 当下面两个条件都满足时,认为结果值位于所定义的范围内部: • 结果值小于或等于所选择的上边界值 • 结果值大于或等于所选择的下边界值 结果范围也可以分成两个区域: 要选择下部为有效范围,设置下边界为最小值 (000H),上边界为最大的预期值。 要选择上部为有效范围,设置上边界为最大值 (FFFH)下边界为最小的预期值。 寻找极值 (峰值检测) 极限检查机制使用标准转换,因此总是能够提供用于比较的实际转换结果。 将该机制与 一种特殊的 FIFO 模式相结合,不仅可提供通常的转换结果,还能同时保存一个转换序列 的最大 (或最小)结果。这种特殊的 FIFO 模式只在结果大于 (或小于) FIFO 级中的 当前值时才会更新相应的 FIFO 级。对于该操作,必须选择低于标准结果的 FIFO 级作为 比较值。模式选择通过寄存器 GxRCRy 中的位域 FEN 来完成。 在启动一次峰值检测序列之前,要向峰值结果寄存器中的结果位域写一个合理的起始值 (例如, 0000H 用于查找最大值, FFFFH 用于查找最小值)。 16.8.5 使用快速比较模式 在快速比较模式下,输入信号直接与相关联的结果寄存器中的值进行比较。该比较提供 一个二元结果 (高 / 低)。如果不需要确切的结果值,这样做可节省转换时间。当输入 信号变为高于(或低于)比较值时,会产生通道事件(见位域 CHEVMODE 和图 16-14)。 在快速比较模式,比较值取自结果寄存器。寄存器 GxBOUND (x = 0 - 1) 中的位域 BOUNDARY1 和 BOUNDARY0 定义这种情况下的增量极限。这些增量被加到原始的比 较值 (或从其中减去),并且允许定义一个任意的滯回区间。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-28 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 实际使用的比较值取决于快速比较结果 FCR (见寄存器 G0RESy (y = 0 - 15)): GxRESy.FCR = 0:参考值 + 向上增量 (GxRESy.RESULT + GxBOUND.BOUNDARY0) GxRESy.FCR = 1:参考值 - 向下增量 (GxRESy.RESULT - GxBOUND.BOUNDARY1) 2n -1 图 16-14 结果范围 结果低于上限 带滞回电压的比较监视结果 向上增量 参考值 向下增量 0 结果高于下限 MC_VADC_LIMITHYST 16.8.6 边界标志控制 可以通过配置两种极限检查机制来自动控制边界标志。这些边界标志也可作为其他模块 的控制信号。 当转换值超过所定义的值时,标志可被置位或清零,输出信号的极性是可 以选择的。当门控有效时,可选择一个门控信号来使能边界标志操作。 每个边界标志在组专用输出线上都可用。节点指针还将它们连接到 4 个边界信号之一或 相关联的公共服务请求线之一,见寄存器 GxBFLNP (x = 0 - 1)。 对于标准转换,当转换结果大于所定义的边界时,边界标志被置位。当转换结果小于所 定义的边带时,边界标志被清零。 两个边界值之间的范围定义了一个滯回区间 (对应置位 / 清零边界标志)。 在直流无刷电机应用中,需要检测三个线性霍尔元件的输出信息,这时可以利用这种特 性获取有效信息。 在快速比较模式,边界标志反映比较的结果, 即当要被比较的输入信号电平高于比较值 时,边界标志将被置位 / 清零,并且当信号电平低于比较值时,会被清零 / 置位。增量值 定义了围绕比较值的滯回区间。 注: 如果不希望有滯回区间,可将寄存器 GxBOUND ( 即增量 ) 清零。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-29 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 上边界 下边界 标志 BFx (BFAx = 0) 标志 BFx (BFAx = 1) MC_VADC_BFLAG 图 16-15 边界标志切换 每次比较操作都可切换边界标志,或者说比较操作的影响仅限于相应请求源门控信号的 活动阶段 ( 见 GxBFLC (x = 0 - 1))。 注: 如果将边界标志与快速比较模式结合使用,建议不要将来自其他通道的结果定向 到相应的结果寄存器。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-30 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) BFI BFL 置位/清零 XOR BFLxNP BFM BFA BFS BFC 控制逻辑 置位 清零 BFLOUT CBFLOUT0 CBFLOUT3 CiSR0 CiSR3 来自转换器 门控信号 比较结果 MC_VADC_BFLOUTX 图 16-16 边界标志控制 边界标志 BFLy 被分配给结果寄存器 GxRESy,因此可以被分配给任何一个通道。 16.9 转换时序安排 VADC 的转换器集群将一个高速转换器与多个可并行工作的采样保持单元组合在一起。 XMC1300 包含 1 个带有 2 个采样保持单元的集群。 由于所有的采样保持单元都使用 1 个转换器,实际的转换必须与特定的采样保持单元相 关联。一个 8 级步进转换器连续扫描一个集群中所有采样保持单元的转换请求,如果发 现其中有一个处于活动状态,就立即启动转换。 这 8 步中的每一步都可以被分配给一个可用组(通过寄存器 SHS0_STEPCFG 中的位域 KSELx),并可被使能参加循环方案。复位后的默认设置建立一个线性循环方案,该方案 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-31 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 使能并一个接一个地扫描所有的接口。在这种情况下,所有的接口被以相同的方式处理。 其他步被禁止。 通过在步进序列内多次选择特定组,相关联的采样保持单元可以被更频繁地扫描。尤其 在加速时序模式,这使这些内核有更高的转换速率。该功能使 SHADC 的性能这些特性 大为提升。 例如: 默认:0 - 1 (2) (3) (4) (5) (6) (7) [2 个采样保持单元:步 2-7 被禁止 ] 加速 1:0 - 1 - 1 (3) (4) (5) (6) (7) [ 步 3-7 被禁止 ] 注: 步进器的默认配置提供向上兼容的操作。 空步,即相关联的采样保持单元没有转换请求的步,被忽略并且步进器继续处理下一个 被使能的步。 如果所有的步都为空,则步进器进入其空闲状态,直到有一个转换请求或校准请求 ( 见节 ) 被激活。 一般的时序行为 在经过一段转换时间 (取决于 fADCI、采样时间和转换宽度等参数)后,转换结果被送到 数字逻辑处理部分。这种兼容的时序模式提供与以前的模块相同的行为。这有利于将现 有的应用程序移植到 XMC1300。 为了充分利用高速转换器的性能,可通过将寄存器 TIMCFG 中的位 AT 置 1 来使能加速 时序模式。 在这种情况下,只要转换结束,就会立即返回每个结果值。结合对特定组的 加速机制 (见上述),可获得很高的转换速率。 当然,还可以通过减少采样时间 (位 SST)来获得更高的转换速率。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-32 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.10 转换时序 一次转换所需的总时间包括从采样阶段1) 启动到结果可用的时间。有两种模式可供选择: • 兼容时序模式: 转换时序被定义为与以前的 ADC 模块相同。这使现有应用可以实现平滑的产品升级。 • 加速时序模式: 转换时序充分利用高速转换器和可编程步进器的性能,可获得更高的转换速率。 转换触发的频率还依赖下面几个可配置的因素: • 选择的转换时间,根据输入类定义。对使用外部多路复用器的转换,还包括延长的采 样时间计数。 • 必须重复执行被撤消的转换所带来的延迟。 • 由于其他通道的等距采样所带来的延迟。 • 已配置的仲裁周期时间。 • 外部触发信号的频率,如果外部触发被使能。 16.10.1 兼容时序模式 转换时序取决于以下用户可定义的因素: • ADC 转换时钟频率, fADCI = fADC / (DIVA+1)2) • 所选择的采样时间,tS = (2 + STC) × tADCI (STC = 附加的采样时间,参见表 16-11) • 结果宽度 N (8/10/12 位 ) • 后校准时间 PC,如果已选择 (PC = 2,否则为 0) • 同步时间 (运行时钟为模块时钟) 转换时间为采样时间、转换步数和同步时间的总和,可通过下面的公式计算: tCN = (2 + STC + N + PC) × tADCI + 2 × tADC 1) 从请求相应转换的触发事件起到采样阶段开始为止的这段时间取决于仲裁过程,因此只能在系统设置已知的情 况下才能确定。 2) fADCI 是在兼容时序模式下用来控制转换时序的实际频率。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-33 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 兼容模式的时序示例 假设系统参数如下: fADC = 32 MHz 即 tADC = 31.25 ns, DIVA = 1, fADCI = 16 MHz 即 tADCI = 62.5 ns 根据给定的公式,可以获得下面的最小转换时间: 12 位转换 (带校准): tCN12C = (2 + 12 + 2) × tADCI + 2 × tADC = 16 × 62.5 ns + 2 × 31.25 ns = 1 062.5 ns 10 位转换 (不带校准): tCN10 = (2 + 10) × tADCI + 2 × tADC = 12 × 62.5 ns + 2 × 31.25 ns = 812.5 ns 16.10.2 加速时序模式 在加速时序模式,不使用标准时序配置 (如上描述) ,每个结果只要一产生,就立即可 用。因此实际的响应时间取决于该转换在集群转换周期内的位置。 转换时序取决于以下用户可定义的因素: • 转换时钟频率,fSH = fCONV / (DIVS+1) • 选择的采样时间,tS = SST × tADC ( 短采样时间 ) • 结果宽度 N (8/10/12 位 ) • 后校准时间 PC,如果已选择 (PC = 2, 否则为 0) • 该转换在步进器序列内的位置 • 同步时间 (运行时钟为模块时钟) 转换时间为采样时间、转换步数和同步时间的总和,可通过下面的公式计算: tCN = (SST + 51) ) × tADC + (N + 10) × tSH + (4 × tSH)2) 加速模式的时间示例 假设系统参数如下: fCONV = 32 MHz, DIVS = 0,即 tSH = tCONV = 31.25 ns, fADC = 32 MHz,即 tADC = 31.25 ns, SST = 5,即 tS = 312.5 ns 根据给定的公式,可以获得下面的最小转换时间: ( 括号中的参数适用于一个周期内的第二次转换 ) 12 位转换: tCN12 = 10 × tADC + 26 × tSH = 312.5 ns + 26 × 31.25 ns = 1 125 ns (1 812.5 ns) 10 位转换: tCN10 = 10 × tADC + 24 × tSH = 312.5 ns + 24 × 31.25 ns = 1 062.5 ns (1 687.5 ns) 最大的校准步3) 还需要另外 13× tSH,因此含有 2 个采样保持单元的完整转换周期需要: 1) 传送转换结果到数字结果寄存器需要这些时钟周期。只有在计算集群的总体转换性能时才需要计入这些周期。 2) 在采样阶段结束与转换开始之间需要这些时钟周期。如果该阶段发生在另一转换期间,它们可以被排除。 3) 校准步骤交替执行,其中增益校准需要比偏移校准更长的时间。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-34 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) tCR = 1 812.5 ns + 13 × 31.25 ns = 2 219 ns (12 位转换 ) 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-35 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.11 转换结果处理 A/D转换器可以在一定程度上对转换结果数据进行预处理,然后再保存结果供CPU读取。 该特性支持应用软件对结果数据的后续处理 。 转换结果处理有以下功能: • 转换结果的存储,保存转换结果到用户可配置的寄存器。 • 数据对齐,根据结果宽度和端格式 • 待读模式,避免丢失数据 • 结果事件产生 • 数据缩减或抗混叠滤波 ( 见 16.11.6 节 ) 16.11.1 转换结果的存储 一个特定组的转换结果值可保存到 16 个相关联的组结果寄存器之一,或者保存到公共的 全局结果寄存器 (例如,可为后台源的通道使用)(见选择一个结果寄存器)。 该结构为不同通道组的转换结果提供了不同的存放位置。根据应用的需求不同 (数据缩 减、自动扫描、别名功能等),用户可以分配转换结果,从而最小化 CPU 的负荷。 每个结果寄存器有一个与之相关联的独立的数据有效标志 (VF)。该标志指示何时有 “ 新 ” 有效数据被保存到相应的结果寄存器以及何时被读取。 对于标准转换,结果值在位域 RESULT 中可用。在快速比较模式, ADC 转换使用位域 RESULT 作为参考值,因此操作的结果被保存到位 FCR 中。 结果寄存器可通过两种不同的模式读取。这些模式使用不同的地址但访问的是相同的寄 存器数据: • 当通过应用模式读取结果寄存器时,读取结果时相应的有效标志被自动清零。这就在 结果产生和读取之间提供了简单的握手。应用模式还支持待读模式。 • 当通过调试模式读取结果寄存器时,读取结果时相应的有效标志保持不变。调试模式 通过提供结果值但不扰乱与应用的握手来支持系统调试。 应用程序可通过多个结果寄存器读取转换结果: • 组结果寄存器: 返回结果值和通道号 • 全局结果寄存器: 返回结果值和通道号以及组号 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-36 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换器 数据缩减和 滤波器单元 1 结果 0 GLOBRES GxRES0 GxRES1 GxCHCTRy. RESTBS SRCRESREG = 0000B GxCHCTRy. RESREG Gx...CTRL. SRCRESREG 1 0 0 1 0 GxRES14 GxRES15 有效标志 选择 结果事件 MC_VADC_RESULTHANDLING 图 16-17 转换结果存储 选择一个结果寄存器 转换结果被保存到可由用户根据应用需求分配的结果寄存器。下面的位域将结果定向到 一个寄存器。 • 寄存器 GxQCTRL0 (x = 0 - 1)、 GxASCTRL (x = 0 - 1) 或 BRSCTRL 中的 SRCRESREG 当使用源专用的结果寄存器时,选择组专用结果寄存器 GxRES1 … GxRES15 • 寄存器 G0CHCTRy (y = 0 - 7) 中的 RESTBS 为由后台源请求的结果选择全局结果寄存器。 • 寄存器 G0CHCTRy (y = 0 - 7) 中的 RESREG 当使用通道专用的结果寄存器时,选择组专用结果寄存器 GxRES0 … GxRES15。 使用源专用结果寄存器允许分离由不同请求源请求的同一通道的结果。 一般来说,这些 请求源被不同的任务使用,在不同的时间被触发。 16.11.2 数据对齐 一个转换结果值在所选结果寄存器中的位置取决于 3 个配置选项 ( 见图 16-18): • 选择的结果宽度 (12/10/8 位,由转换模式选择 ) • 选择的结果位置 (左 / 右对齐) • 选择的数据累加模式 ( 数据缩减 ) 这些选项可使应用软件在进行转换结果处理时最大限度地减小处理器负荷。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-37 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 标准转换 结果寄存器中的位 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 12 位 10 位左对齐 10 位右对齐 8 位左对齐 8 位右对齐 0 0 0 0 1110 9 8 7 6 5 4 3 2 1 0 0 000987654 3210 00 0 000009876 543210 0 000765432 10 0000 0 000000076 543210 累加转换 12 位 10 位左对齐 10 位右对齐 8 位左对齐 8 位右对齐 15141312 1110 9 8 7 6 5 4 3 2 1 0 13121110 9 8 7 6 5 4 3 2 1 0 0 0 0 0 1312 1110 9 8 7 6 5 4 3 2 1 0 1110 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 1110 9 8 7 6 5 4 3 2 1 0 MC_VADC_RESPOS 图 16-18 结果存储选项 可通过软件写位域 RESULT 来为快速比较模式提供参考值。在该模式,使用位 11-2 的 值,其他位被忽略。 16.11.3 待读模式 待读模式下可以防止因在 CPU 读取先前的数据之前有新的转换结果覆盖了结果寄存器而 引起的数据丢失。例如,自动扫描转换序列或时序要求 “ 不太严格的 ” 其他序列可能 使用一个公共的结果寄存器。然而,转换结果来自不同的输入通道,因此一次覆盖会破 坏先前的转换结果1)。 待读模式会自动将来自该源的这一通道的转换启动挂起,直到当前结果被读取。因此,硬 件或软件触发信号可以请求一次转换或一个转换序列,但每次转换都只能在先前的结果 被读取后才启动。这就将转换序列根据 CPU 读取先前转换结果的能力(响应延迟)进行 了自动调整。 如果为一个结果寄存器使能了待读模式 (位 GxRCRy.WFR = 1),在目标结果寄存器包 含有效数据(由有效标志 VF = 1 指示)期间或者当前正运行的一次转换以同一结果寄存 器为目标,请求源不会产生转换请求。 1) 一个通道的重复转换在使用不同的结果寄存器的情况下是不会破坏其他结果的,但会更新其自身的先前结果 值。因此,结果寄存器中总是保存当前信号数据。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-38 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 如果两个请求源以同一个被选择为待读模式的结果寄存器为目标,则高优先级的请求源 不能中断一个在其产生转换请求之前就已经启动的低优先级转换请求。在这种情况下, 撤消 - 插入 - 重复模式不工作。特别是,如果所涉及的一个请求源是后台源(通常具有最 低优先级),就必须引起重视。如果高优先级请求的目标是一个不同的结果寄存器,低优 先级的转换可被撤消,并在随后重复执行。 注: 对于同步从器件的同步转换,待读模式被忽略。( 见 16.12 节 )。 16.11.4 结果 FIFO 缓冲区 可将结果寄存器用作转换结果的直接目标,也可以将它们与同一个 ADC 组的其他结果寄 存器级联起来组成一个结果 FIFO 缓冲区 (先进先出缓冲机制)。一个结果 FIFO 可存储 多个测量结果, CPU 可随后以 “ 不严格的 ” 响应时序读取这些测量结果。可以使用可 用的结果寄存器设置多个 FIFO 缓冲区结构。 两个或多个结果寄存器组成的 FIFO 结构是通过将结果寄存器与其下一个相邻的结果寄存 器 (下一个具有较高索引值的寄存器,见图 16-19)级联构成。通过设置位域 GxRCRy.FEN = 01B 来使能这种级联。 转换结果保存在一个 FIFO 结构中具有最高索引值的寄存器中。软件从具有最低索引值的 FIFO 寄存器读取结果值。 转换结果 CH2, 7, 10 A/D Converter 转换结果 CH8 转换结果 所有其他通道 (例如扫描 ) 转换结果 CH3 结果寄存器 7 结果寄存器 6 F 结果寄存器 5 结果寄存器 4 结果寄存器 3 F 结果寄存器 2 F 结果寄存器 1 结果寄存器 0 F 读访问 读访问 读访问 读访问 MC_VADC_RESFIFO 图 16-19 结果 FIFO 缓冲区 在图 16-19 所示的例子中,以下面的方式对结果寄存器进行了配置: • 2 级缓冲区包含结果寄存器 7-6 • 专用结果寄存器 5 • 3 级缓冲区包含结果寄存器 4-3-2 • 2 级缓冲区包含结果寄存器 1-0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-39 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-4 列出了将结果寄存器组合起来构建结果 FIFO 缓冲区所需要的结果寄存器配置。 表 16-4 结果 FIFO 寄存器的特性 功能 输入级 结果目标 是 应用程序读 否 数据缩减模式 是 待读模式 是 结果事件中断 否 FIFO 使能 (FEN) 例子中的寄存器 00B 7, 4, 1 中间级 否 否 否 否 否 01B 3 输出级 否 是 否 否 是 01B 6, 2, 0 注: 如果被使能,进入 FIFO 的每个数据字都会产生一次中断。 16.11.5 结果事件产生 当一个新值被保存到一个结果寄存器时,会产生结果事件。结果事件会因为数据累加而 受到限制,并且结果事件只能在累加完成之后产生。 结果事件也可被完全禁止。 16.11.6 数据修改 转换的数据结果在被应用程序使用之前,可被自动修改。有多个选项可供选择 (通过寄 存器 G0RCRy (y = 0 - 15) 中的位 DMM),以减少转存和 / 或处理转换数据所需要的 CPU 负荷。 • 标准数据缩减模式 ( 对 GxRES0 … GxRES15): 在产生结果中断之前,累加每个结果寄存器的 2、 3 或 4 个结果值。该操作可去除来 自输入信号的部分噪声。 • 结果滤波模式 (FIR,对 GxRES7、 GxRES15): 将一个 3 阶有限冲击响应滤波器 (FIR) 应用于所选结果寄存器中的转换结果,滤波器 的参数可由用户选择。 • 结果滤波模式 (IIR,对 GxRES7、 GxRES15): 将一个 1 阶无限冲击响应滤波器 (IIR) 应用于所选结果寄存器中的转换结果,滤波器 的参数可由用户选择。 • 差分模式 ( 对 GxRES1 … GxRES15): 从所选结果寄存器的转换结果中减去结果寄存器 GxRES0 的内容。位域 DRCTR 在该 模式下未使用。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-40 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-5 位域 DRCTR 的功能 DRCTR 标准数据缩减模式 (DMM = 00B) DRCTR 0000B 数据缩减禁止 0001B 累加 2 个结果值 0010B 累加 3 个结果值 0011B 累加 4 个结果值 0100B 保留 0101B 保留 0110B 保留 0111B 保留 1000B 保留 1001B 保留 1010B 保留 1011B 保留 1100B 保留 1101B 保留 1110B 保留 1111B 保留 1) 当位域 DMM ≠ 01B 时,滤波器寄存器被清零。 0000B 0001B 0010B 0011B 0100B 0101B 0110B 0111B 1000B 1001B 1010B 1011B 1100B 1101B 1110B 1111B 结果滤波模式 (DMM = 01B)1) FIR 滤波器:a=2, b=1, c=0 FIR 滤波器:a=1, b=2, c=0 FIR 滤波器:a=2, b=0, c=1 FIR 滤波器:a=1, b=1, c=1 FIR 滤波器:a=1, b=0, c=2 FIR 滤波器:a=3, b=1, c=0 FIR 滤波器:a=2, b=2, c=0 FIR 滤波器:a=1, b=3, c=0 FIR 滤波器:a=3, b=0, c=1 FIR 滤波器:a=2, b=1, c=1 FIR 滤波器:a=1, b=2, c=1 FIR 滤波器:a=2, b=0, c=2 FIR 滤波器:a=1, b=1, c=2 FIR 滤波器:a=1, b=0, c=3 IIR 滤波器:a=2, b=2 IIR 滤波器:a=3, b=4 标准数据缩减模式 数据缩减模式可用作抗混叠数字滤波器或用于数据抽取目的。它可最多累加 4 个转换值 来产生最终结果。 每个结果寄存器都可被单独使能为数据缩减模式,由寄存器 G0CHCTRy (y = 0 - 7) 中的 位域 DRCTR 控制。数据缩减计数器 DRC 指示累加的实际状态。 注: 可在要累加的转换值之间插入其他结果寄存器的转换值。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-41 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) r0 r1 r2 r3 r4 r5 r6 r7 r8 转换结果 0 3 2 1 0 3 2 1 0 DRC 0 r0 r0 + r1 r0 + r1 + r2 r0 + r1 + r2 + r3 r4 r4 + r5 r4 + r5 + r6 r4 + r5 + r6 + r7 结果寄存器 的内容 VF t1 t2 t3 t4 t5 t6 t7 t8 t9 MC_VADC_DRC 图 16-20 标准数据缩减滤波器 该示例给出了累加 4 个转换结果的一个数据缩减序列。 8 个转换结果 (r0 … r7) 被累加, 产生 2 个最终结果。 当一次转换完成并且数据被保存到数据缩减模式已被使能的结果寄存器时,数据缩减计 数器 DRC 控制对数据的处理: • 如果 DRC = 0 ( 本例中的 t1、 t5、 t9),转换结果被保存到寄存器中。DRC 被加载为 位域 DRCTR 中的内容。 ( 即累加开始 )。 • 如果 DRC > 0 ( 本例中的 t2、t3、t4 和 t6、t7、t8),转换结果与结果寄存器内的值相加。 DRC 减 1。 • 如果 DRC 变成 0,不论是从 1 减到 0 (本例中的 t4 和 t8)还是从 DRCTR 加载,相 应结果寄存器的有效位被置 1 并发生结果寄存器事件。 最终结果必须在下一个数据缩减序列启动之前 (本例中的 t5 或 t9 之前)被读取。结 果读取操作会自动清除有效标志。 注: 软件可通过清除相应的有效标志 ( 通过 GxVFR (x = 0 - 1)) 将数据缩减计数器 DRC 清零。 可通过将相邻结果寄存器联合起来构建一个结果 FIFO 的方式来增加读取最终数据缩减结 果的响应时间 ( 见图 16-21)。在这种情况下,数据缩减序列的最终结果被加载到相邻的 寄存器。在下一个数据缩减序列结束之前 (第二个例子中的 t8),都可以从该相邻寄存 器中读取最终结果值。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-42 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 0 r0 r0+r1 r0+r1 r0+r1 + + r4 r4+r5 r4+r5 r4+r5 + + 结果寄存器 z r2 r2+r3 r6 r6+r7 的内容 VFz r0+r1 r4+r5 结果寄存器 x 0 + r2+r3 + r6+r7 的内容 VFx t1 t2 t3 t4 t5 t6 t7 t8 t9 MC_VADC_DRC_FIFO 图 16-21 FIFO 被使能的标准数据缩减滤波器 有限冲激响应滤波器模式 (FIR) FIR 滤波器 ( 见图 16-22) 为中间结果 (RB1、 RB2)提供 2 个结果缓冲器和 3 个可配置 的抽头系数 (a、 b、 c)。 转换结果与中间结果缓冲器中的值以各自对应的抽头系数为权值进行加权相加,形成结 果寄存器的最终值。有几组预定义的抽头系数,可通过寄存器 G0RESy (y = 0 - 15) 和 GLOBRES 中的位域 DRCTR (编码列于表 16-5 中)选择。这些系数使 ADC 结果有 3 或 4 倍的增益,产生一个 14 位的结果值。每次采样都会激活有效标志 (VF),即有效 标志为每次采样产生一个有效结果。 注: 可在要滤波的转换值之间插入其他结果寄存器的转换值。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-43 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换结果 结果缓冲器 1 结果缓冲器 2 a b c + + FIR filter x 结果寄存器 x r0 r1 r2 r3 r4 r5 r6 r7 r8 转换结果 0 r0 r1 r2 r3 r4 r5 r6 r7 结果缓冲器 1 0 0 r0 r1 r2 r3 r4 r5 r6 结果缓冲器 2 0+ 0+ 0 0+ 0+ a*r0 0 + c*r0 + c*r1 + c*r2 + c*r3 + c*r4 + c*r5 + b*r0 + b*r1 + b*r2 + b*r3 + b*r4 + b*r5 + b*r6 + a*r1 a*r2 a*r3 a*r4 a*r5 a*r6 a*r7 结果寄存器 的内容 VF t1 t2 t3 t4 t5 t6 t7 t8 t9 MC_ VADC_FIR 图 16-22 FIR 滤波器结构 注: 当位域 DMM ≠ 01B 时,滤波器寄存器被清零。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-44 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 无限冲激响应滤波器模式 (IIR) IIR 滤波器 (见图 16-23)提供一个结果缓冲器和 2 个可配置的抽头系数 (a、 b)。这是 一个一阶低通滤波器。 转换结果用对应的系数加权后与前一结果值的一部分相加,形成结果寄存器的最终值。 有几组预定义的抽头系数,可通过寄存器 G0RESy (y = 0 - 15) 和 GLOBRES 中的位域 DRCTR (编码列于表 16-5)选择。这些系数使 ADC 结果有 4 倍的增益,产生一个 14 位值。每次采样都会激活有效标志 (VF),即有效标志为每次采样产生一个有效结果。 注: 可在要滤波的转换值之间插入其他结果寄存器的转换值。 :b 转换结果 a + IIR 滤波器 x 结果缓冲器 结果寄存器 x r0 r1 r2 r3 r4 r5 r6 r7 r8 转换结果 0 + 0 R0/b R1/b + + a*r0 a*r1 R2/b + a*r2 R3/b R4/b + + a*r3 a*r4 R5/b R6/b + + a*r5 a*r6 R7/b + a*r7 结果寄存器 的内容 VF t1 t2 t3 t4 t5 t6 t7 t8 t9 MC_VADC_IIR 图 16-23 IIR 滤波器结构 注: 当位域 DMM ≠ 01B 时,滤波器寄存器被清零。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-45 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 差分模式 从当前结果中减去结果寄存器 0 的内容,得到当前通道相对于参考通道的结果。该模式 无需软件操作。 参考通道必须将其结果保存到结果寄存器 0。参考值可一次性确定,然后用于一系列的转 换,也可以在每次相关转换之前进行参考通道的转换。 转换结果 - 差分 图 16-24 结果差分 结果寄存器 x 结果寄存器 0 MC_ VADC_DIFF 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-46 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.12 转换同步 ADC 内核的转换可根据内核配置按自定时间进行,也可由外部(ADC 的外部)信号触发: 同步转换 支持在一个同步组1) 内进行通道的并行转换。该功能会优化像电气驱动控制这 样的应用。 等距抽样 支持具有最小抖动的固定间隔转换。该功能会优化像滤波器算法或音频方面的 应用。 16.12.1 并行采样的同步转换 在 XMC1300 实现的多个独立的 ADC 内核可同步工作,用于同时测量多个模拟输入通道。 在没有并行转换请求时,各内核可独立工作。 并行转换的同步机制确保相关通道的采样阶段同时开始。同步的内核对由主内核请求的 同一通道进行转换。参加同步转换的每个内核都可以有不同的分辨率和采样阶段时间。 可为每个输入通道单独请求并行转换 (一个或多个)。在图 16-25 所示的例子中, ADC 内核 0 和 1 的输入通道 CH3 同步转换,其他输入通道不引发并行转换。 一个内核作为同步主内核,其他内核作为同步从内核。每个内核都可以作为主内核或从 内核。主内核和从内核构成一个 “ 转换组 ” 来控制并行采样: • 同步主 ADC 内核可请求对某一通道(相应的通道控制寄存器 G0CHCTRy (y = 0 - 7) 中的 SYNC = 1)的同步转换,相连的从 ADC 内核也被请求对该通道进行转换。 主内核支持待读模式。 • 同步从 ADC 内核响应来自主内核的同步转换请求。当没有同步转换请求时,从内核 可执行 “ 本地 ” 转换。 – 从内核的时序必须根据主内核的时序 (寄存器 GxARBPR (x = 0 - 1) 中的 ARBRND)来配置,这样才能使能并行转换。 – 并行转换请求总是被作为最高优先级的请求处理,支持撤消 - 插入 - 重复模式。 – 待读模式在从内核中被忽略。先前的结果有可能被覆盖,尤其是在其它转换也使用 同一结果寄存器时。 • 对于同步从内核,仲裁器必须一直运行 (位 GxARBPR (x = 0 - 1)ARBM = 0)。 为使仲裁器能同步运行,要在初始化主内核之前初始化从内核。 • 一旦启动,并行转换不能被中止。 1) 请参见 16-135 页 “XMC1300 中的同步组 ” 。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-47 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 转换 内核 ADC0 转换 内核 ADC1 ADC0请求的并行转换 CH0 CH2 CH3 CH7 CH8 CH3 并行转换触发 ADC1 CH2 CH5 CH3 CH4 CH3 CH1 转换被中止后又重新开始 ADC_parallel_conv 图 16-25 并行转换 图 16-25 所示的例子使用对通道 CH3 的同步转换。其它通道转换由自己的内核控制。 ADC0 是主内核, ADC1 是从内核。 同步主内核通过提供控制信息 GxARBCFG (x = 0 - 1)ANONS (见图 16-26)和所请求 的通道号来控制从内核。位域 GxSYNCTR (x = 0 - 1).STSEL 为主内核 (00B) 和从内核 (01B/10B/11B) 选择 ANON 的信息源。 STSEL = 00B 总是选择自己的 ANON 信息,因此意味着这是同步主内核或可以独立工 作。其他控制输入 (STSEL = 01B/10B/11B) 按从小到大的顺序被连接到同步组的其他内核 ( 参见 16-135 页的表 16-13 “XMC1300 中的同步组 ”)。 就绪信号指示从内核何时准备好以启动一次并行转换的采样阶段。位 GxSYNCTR (x = 0 - 1).EVALR1 = 1 使能就绪信号的控制功能。 注: 同步转换会请求由主内核定义的同一通道号。使用别名功能 (见 16.8.2 节),可 对来自不同输入通道的模拟信号进行转换。如果将 (例如) CH0 用作备用参考, 这是很有利的。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-48 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) ADC1_ANON ADC0_ANON CI3 CI2 CI1 CI3 CI2 CI1 GLOBCTR. ANON GLOBCTR. ANON 11 10 01 00 SYNCTR. STSEL 00 01 10 11 SYNCTR. STSEL R1 R2 R3 内核 控制 GLOBSTR. ANON SYNCTR. EVALR1 ADC0 内核 内核 控制 图 16-26 通过 ANON 和就绪信号实现同步 R1 R2 R3 GLOBSTR. ANON SYNCTR. EVALR1 ADC1 内核 ADC0_READY ADC1_READY ADC_ANON_ sync 16.12.2 等距采样 为了优化输入数据,例如在滤波器或音频应用中,转换可按固定的时间间隔执行。等距 采样的转换由一个外部信号 (例如,一个定时器)触发。为了产生与仲裁器同步的触发 信号,ADC 提供了一个输出信号(ARBCNT),该信号在每个仲裁周期都会被激活一次, 并且用作触发定时器的时基。在这种情况下,仲裁器必须一直运行 (GxARBPR (x = 0 1).ARBM = 0)。如果定时器有独立的时基,在没有请求处于挂起状态时,仲裁器被停止。 前序时间 (见图 16-27)必须长于一个仲裁周期和可能的最长转换时间。 需要为意向的等距转换源选择定时器模式(寄存器 GxQCTRL0 (x = 0 - 1) 或 GxASCTRL (x = 0 - 1) 中的 TMEN = 1)。在定时器模式,该源的请求被触发并被仲裁,但只能在触发 信号被移除 (见图 16-27)并且转换器空闲时才被启动。 为了确保转换器是空闲的并且转换的启动可由该触发信号控制,等距转换请求必须具有 最高优先级。请求触发和转换启动之间的前序时间必须足够长,以使当前的活动转换完 成。 信号 REQTRx 的频率定义采样速率,其高电平时间定义前序时间,相应的请求源在前序 时间内参加仲裁。 也可以对一个通道序列进行等距采样,这取决于所用的请求源。如果前序时间与等距转 换不重叠,也可以对多个并行请求源进行等距采样。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-49 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) REQTRx 前序时间 前序时间 等间隔转换 ed ed ed 低优先级转换 c c 等间隔采样周期 图 16-27 等距采样的定时器模式 c c 等间隔采样周期 ADC_timer_mode 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-50 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.13 安全功能 VADC 还提供了几个测试功能,可以在实际应用中使用这些功能来验证模拟输入信号的 有效性。 • 断线检测 验证从传感器到输入引脚的连接是否正确。 • 多路复用器诊断 验证内部模拟输入多路复用器的操作是否正确。 16.13.1 断线检测 为了测试一个外部模拟传感器与其输入引脚的连接是否正确,可在正常的采样阶段之前 将转换器的电容预充到一个可选的值。如果到传感器的连接被中断,则随后的转换值代 表预充值而不是预期的传感器结果。通过使用一个超出预期结果范围的预充电压 (断电 检测最好使用 VAGND 和 / 或 VAREF),可以将一次有效的测量(与传感器相连)与一次故 障 (传感器断开)区分开。 当断线检测被禁止时,转换器的电容被放电。 注: 如果断线检测被使能,完整转换的持续时间会因准备阶段 (与采样阶段相同)而 增加。这会影响转换序列的时序。 可通过相应通道控制寄存器 G0CHCTRy (y = 0 - 7) 中的位域 BWDEN 来单独使能对每个 通道的断线检测。该位域还选择预准备阶段的电平。 一次标准转换的时间 采样阶段 转换阶段 带断线检测的一次转换的时间 准备阶段 采样阶段 转换阶段 图 16-28 断线检测 MC_VADC_BWD 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-51 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.13.2 多路复用器诊断 可通过激活额外的测试结构 (上拉、下拉)来测试从传感器到输入引脚的信号通路以及 从输入引脚通过多路复用器到转换器的内部信号通路。这些拉器件为信号通路提供额外 的负载。 当与一个已知的外部输入信号结合使用时,该测试功能可指示多路复用器是否将任何引 脚连接到转换器的输入以及所连接的引脚是否是正确的引脚。 拉器件由标准端口控制寄存器激活。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-52 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.14 外部多路复用器控制 可通过将外部模拟多路复用器连接到一个输入通道来增加模拟输入通道的数量。ADC 可 被配置为能自动控制这些外部多路复用器 (EMUX)。 在该工作模式,可为每个可用的 EMUX 接口 ( 见寄存器 EMUXSEL) 选择一个通道。ADC 支持多个 8 选 1 多路复用器,有下面几个控制选项: • 序列模式,在遇到所选通道时,自动转换所有已配置的外部通道。在图 16-29 所示的 例子中,完成以下转换: --4-32-31-30-2-1-0--4-32-31-30-2-1-0--… • 单步模式,在遇到所选通道时,转换所配置序列的一个外部通道。在图 16-29 所示的 例子中,完成以下转换: --4-32-2-1-0--4-31-2-1-0--4-30-2-1-0--4-32-… ( 在对一个通道转换时,单步模式最佳 ) • 稳定模式,在遇到所选通道时,转换所配置的外部通道。在图 16-29 所示的例子中, 完成以下转换: --4-32-2-1-0--4-32-2-1-0--4-32-2-1-0--… 注: 在图 16-29 所示的例子中,有一个外部多路复用器连接到 CH3。假设起始选择值 EMUXSET 为 2。 直接输入信号 . .. ... REXT2 REXT2 REXT2 外部模拟8选1 多路复用器 CH30 CEXT2 CH31 CEXT2 CH37 CEXT2 REXT REXT1 REXT CH0 CEXT CH3 CEXT1 CH4 CEXT EMUX[2:0] 内部 MUX ADC 内核 ADC 通道控制 EMUX 控制 扩展输入信号 MC_ADC_ EXTMUX 图 16-29 外部模拟多路复用器示例 位域 EMUXACT 决定发送给外部多路复用器的控制信息。 在单步模式, EMUXACT 在 对 一 个 已 使 能 通 道 的 每 次 转 换 后 被 更 新。如 果 EMUXACT = 000B ,它被重新加载为位域 EMUXSET 的值,否则减 1。 附加的外部通道可能因信号路径被修改而具有不同的特性。可以在附加输入使用本地滤 波器 ( 图 16-29 中 CH3x 上的 REXT2-CEXT2 )。对于外部多路复用器与 ADC 模拟输入端之 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-53 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 间距离较远的应用,建议直接在 ADC 的模拟输入加一个 RC 滤波器 ( 图 16-29 中 CH3 上 的 REXT1-CEXT1)。 注: 每个 RC 滤波器都会限制模拟输入信号的带宽。 因此,外部通道的转换使用另外的转换模式设置 CME。如果需要,可自动选择一种不同 的转换模式。 对输入信号而言,切换外部多路复用器通常需要额外的建立时间。因此,在每次改变外 部通道时,要使用另外的采样时间设置 STCE。这就会自动满足该情况下的不同采样时 间需求。 在每个组中,任何一个通道都可被分配给外部多路复用器控制 ( 寄存器 GxEMUXCTR (x = 0 - 1))。每个可用的端口接口都选择控制线为输出的组 ( 寄存器 EMUXSEL)。 控制信号 控制外部多路复用器的外部通道号能够以标准的二进制格式或格雷码格式输出。当选择 一个通道序列时,格雷码可避免中间的多路复用器切换,因为每次只有一位发生改变。 表 16-6 列出了编码结果。 表 16-6 通道 二进制 格雷码 EMUX 控制信号编码 0 1 2 000B 000 001B 001 010B 011 3 011B 010 4 100B 110 5 101B 111 6 110B 101 7 111B 100 无外部多路复用器的操作 如果在一个应用中不使用外部多路复用器,则控制寄存器的复位值就是合适的设置。 当 EMUXMODE = 00B 时,禁止自动进行 EMUX 控制 。 由于控制输出信号是备选的端口输出信号,它们只在被明确选择时才可见于对应的引 脚。 16.15 服务请求产生 每个 A/D 转换器组都可激活最多 4 个组专用服务请求输出信号以及最多 4 个共享服务请 求输出信号。 2 个组专用和 2 个共享请求信号可发出中断请求 ( 见 16-136 页的表 16-15 “XMC1300 中的数字连接 ”)。 可为每个服务请求输出分配多个事件。服务请求可由 3 种类型的事件产生 : • 请求源事件:指示一个请求源已完成所请求转换序列,应用软件可启动进一步的操 作。 对于一个扫描请求源 (组或后台请求源)而言,当所定义的整个通道组 (挂起位)都 转换完成时,会产生请求源事件。 对于一个组队列请求源,根据编程情况,即当一个源中断被使能的通道转换完或遇到 一个无效条目时,会产生请求源事件。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-54 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) • 通道事件:指示一次转换完成。另外,通道事件可被限制为在结果值位于一个设定范 围内时产生。这就减轻了后台任务的 CPU 负荷,即仅在达到或超过指定的转换结果 范围时服务请求才被激活。 • 结果事件:指示在一个结果寄存器中有新的有效结果。一般来说,这会触发 CPU 的 一次读操作。另外,如果数据缩减有效,结果事件只会以缩减后的速率产生。 每个 ADC 事件由一个专用的标志指示,该标志可由软件清除。如果为某一个事件使能了 一个服务请求,则每当事件发生时就会产生服务请求,与对应的事件指示标志的状态无 关。这就保证了 ADC 事件能在不清除标志位的情况下产生服务请求。 事件标志寄存器指示在 ADC 运行期间发生的所有类型的事件。软件可通过向寄存器 GxCEFLAG/GxRFLAG 中的相应位写 1 来置位每个标志,从而触发一个事件。软件可通 过向寄存器 GxCEFCLR/GxREFCLR 中的相应位写 1 来清除每个标志。如果被使能,每 当发生一次事件时都会产生服务请求,即使相关联的标志位保持置位状态。 节点指针寄存器 来自每个事件源的请求都可通过相关联的节点指针被定向到一组服务请求节点。来自多 个源的请求可以被定向到同一节点;在这种情况下,这些请求相或后生成服务请求输出 信号。 软件服务请求激活 可通过软件将寄存器 GxSRACT (x = 0 - 1) 中的相应位置 1 来激活每个服务请求。这可 用于评估和测试目的。 注: 对于共享服务请求线,见表 16-12 中的公共组。 16.16 寄存器 多功能 ADC 由一系列的转换器块构建而成,这些块的控制方式完全相同。这就使得程序 的通用性好,可伸缩性强。因此,相应的寄存器都被分配了单独的偏移量 ( 见表 16-8)。 寄存器的准确地址通过将相应组的基地址 (见表 16-7)与寄存器各自的偏移地址相加得 到。 由于常规的组结构,每个组中有多个寄存器。还为每个通道提供了一些其他寄存器。这 由寄存器一览表中的占位符指示: • X###H 的含义:x × 0400H + 0###H,对于 x = 0 - 1 • ###YH 的含义:###0H + y × 0004H,对于 y = 0 - N ( 取决于寄存器类型 ) • Z###H 的含义:4803 4000H + 0###H, (SHS0) 表 16-7 模块 VADC0 寄存器地址空间 基地址 4803 0000H 结束地址 4803 0BFFH 备注 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-55 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-8 寄存器一览表 寄存器简称 寄存器全称 ID CLC OCS GLOBCFG ACCPROT0 ACCPROT1 GxARBCFG GxARBPR GxCHASS GxRRASS GxQCTRL0 GxQMR0 GxQSR0 GxQINR0 GxQ0R0 GxQBUR0 GxASCTRL GxASMR GxASSEL GxASPND BRSCTRL BRSMR BRSSELx BRSPNDx GxCHCTRy GxICLASS0 模块标识寄存器 时钟控制寄存器 OCDS 控制和状态寄存器 全局配置寄存器 访问保护寄存器 0 访问保护寄存器 1 仲裁配置寄存器 仲裁优先级寄存器 通道分配寄存器,组 x 结果分配寄存器,组 x 队列 0 源控制寄存器,组 x 队列 0 模式寄存器,组 x 队列 0 状态寄存器,组 x 队列 0 输入寄存器,组 x 队列 0 寄存器 0,组 x 队列 0 备份寄存器,组 x 自动扫描源控制寄存器,组 x 自动扫描源模式寄存器,组 x 自动扫描源通道选择寄存器,组 x 自动扫描源挂起寄存器,组 x 后台请求源控制寄存器 后台请求源模式寄存器 后台请求源通道选择寄存器,组 x 后台请求源通道挂起寄存器,组 x 通道 x 控制寄存器 输入类寄存器 0,组 x 偏移地 址 0008H 0000H 0028H 0080H 0088H 访问方式 读写 U, PV BE U, PV PV U, PV PV U, PV U, PV U, PV U, PV 1) 页号 16-60 16-60 16-61 16-63 16-67 008CH U, PV U, PV 16-68 1) X480H X484H X488H X48CH X500H X504H X508H X510H X50CH X510H X520H X524H X528H X52CH 0200H 0204H 018YH 01CYH X60YH X4A0H U, PV U, PV U, PV U, SV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 16-74 16-77 16-70 16-71 16-78 16-80 16-81 16-83 16-84 16-85 16-86 16-88 16-90 16-91 16-92 16-94 16-96 16-97 16-98 16-10 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-56 V1.0, 2013-03 请遵守产品信息使用协议 表 16-8 寄存器一览表 ( 续表 ) 寄存器简称 寄存器全称 GxICLASS1 输入类寄存器 1,组 x GLOBICLASS0 输入类寄存器 0,全局 GLOBICLASS1 输入类寄存器 1,全局 GxALIAS 别名寄存器 GxBOUND 边界选择寄存器,组 x GLOBBOUND 全局边界选择寄存器 GxBFL 边界标志寄存器,组 x GxBFLS 边界标志软件寄存器,组 x GxBFLC 边界标志控制寄存器,组 x GxBFLNP 边界标志结点指针寄存器,组 x GxRCRy 组 x 结果控制寄存器 y GxRESy 组 x 结果寄存器 y GxRESDy 组 x 结果寄存器 y ( 调试模式 ) GLOBRCR 全局结果控制寄存器 GLOBRES 全局结果寄存器 GLOBRESD 全局结果寄存器 (调试模式) XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 偏移地 址 X4A4H 00A0H 00A4H X4B0H X4B8H 00B8H X4C8H X4CCH X4D0H X4D4H X68YH X70YH X78YH 0280H 0300H 0380H 访问方式 读写 U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页号 16-10 0 16-10 0 16-10 0 16-11 3 16-11 4 16-11 4 16-11 5 16-11 6 16-11 7 16-11 8 16-10 2 16-10 4 16-10 5 16-10 7 16-10 8 16-10 8 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-57 V1.0, 2013-03 请遵守产品信息使用协议 表 16-8 寄存器一览表 ( 续表 ) 寄存器简称 寄存器全称 GxVFR 有效标志寄存器,组 x GxSYNCTR 同步控制寄存器 GxEMUXCTR 外部多路复用器控制寄存器,组 x EMUXSEL 外部多路复用器选择寄存器 GxSEFLAG 源事件标志寄存器,组 x GxCEFLAG 通道事件标志寄存器,组 x GxREFLAG 结果事件标志寄存器,组 x GxSEFCLR 源事件标志清零寄存器,组 x GxCEFCLR 通道事件标志清零寄存器,组 x GxREFCLR 结果事件标志清零寄存器,组 x GLOBEFLAG 全局事件标志寄存器 GxSEVNP 源事件节点指针寄存器,组 x GxCEVNP0 通道事件节点指针寄存器 0,组 x GxREVNP0 结果事件节点指针寄存器 0,组 x GxREVNP1 结果事件节点指针寄存器 1,组 x GLOBEVNP 全局事件节点指针寄存器 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 偏移地 址 X5F8H X4C0H X5F0H 03F0H X588H X580H X584H X598H X590H X594H 00E0H X5C0H X5A0H X5B0H X5B4H 0140H 访问方式 读写 U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV U, PV 页号 16-10 9 16-11 9 16-12 0 16-12 2 16-12 4 16-12 4 16-12 5 16-12 6 16-12 6 16-12 7 16-12 7 16-12 8 16-12 9 16-13 0 16-13 1 16-13 1 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-58 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-8 寄存器一览表 ( 续表 ) 寄存器简称 寄存器全称 GxSRACT 服务请求软件激活触发寄存器,组 x ID SHSCFG CALCTR SHS 模块标识寄存器 SHS 配置寄存器 SHS 校准控制寄存器 CALGC0 SHS 增益校准控制寄存器 CALGC1 SHS 增益校准控制寄存器 GNCTR00 增益控制寄存器 0,采样保持单元 0 GNCTR10 增益控制寄存器 0,采样保持单元 1 STEPCFG TIMCFG0 TIMCFG1 LOOP SHS 步进器配置寄存器 SHS 时序配置寄存器 SHS 时序配置寄存器 SHS SD 循环控制寄存器 1) 访问这些寄存器受 SCU 一章所描述的位保护机制的保护。 偏移地 址 X5C8H Z008H Z040H Z0BCH Z0C0H Z0C4H Z180H Z190H Z044H Z080H Z084H Z050H 访问方式 读写 U, PV U, PV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV U, SV 页号 16-13 2 16-60 16-64 16-11 0 16-11 1 16-11 1 16-11 2 16-11 2 16-71 16-72 16-72 16-12 3 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-59 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.16.1 模块标识 模块标识寄存器指示 XMC1300 中使用的 ADC 模块的版本。 ID 模块标识寄存器 SHS0_ID 模块标识寄存器 (0008H) (4803 4008H) 复位值 : 00C5 C0XXH 复位值 : 0099 C0XXH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 MOD_NUMBER r MOD_TYPE r MOD_REV r 域 位 MOD_REV [7:0] MOD_TYPE [15:8] MOD_NUMBER [31:16] 类型 r r r 描述 模块版本 指示实现的版本号。该信息取决于设计阶段。 模块类型 该内部标记被固定为 C0H。 模块号 指示模块的标识号 (00C5H = SARADC, 0099H = SHS)。 16.16.2 系统寄存器 一组标准化的寄存器,提供对模块的一般访问并控制基本的系统功能。 时钟控制寄存器 CLC 允许编程者调整模块的功能和功耗来适应应用需求。寄存器 CLC 控制模块时钟信号和对休眠模式信号的反应。 CLC 时钟控制寄存器 (0000H) 复位值 : 0000 0003H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 E DIS 0 DIS DIS SR r r r r r r r r r r r r rw r r rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-60 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 DISR DISS 0 EDIS 0 位 0 1 2 3 [31:4] 类型 rw r r rw r 描述 模块禁止请求位 用于使能 / 禁止模块的控制。还可通过清零 ANONS 来 禁止模拟部分。 0B 开请求:使能模块时钟 1B 关请求:禁止模块时钟 模块禁止状态位 0B 开:模块时钟被使能 1B 关:模块时钟被禁止 保留 , 读出值为 0,应写入 0 休眠模式使能控制 用来控制模块对休眠模式的反应。 0B 休眠模式被使能并工作 1B 模块忽略休眠模式控制信号 保留,读出值为 0,应写入 0 OCDS 控制和状态寄存器 OCS 控制模块在挂起模式的行为(用于调试)并且包含 OCDS 触发总线的模块相关控制位。 OCDS 控制和状态 (OCS) 寄存器由调试复位清零。 只有在 OCDS 被使能时,才能写 OCS 寄存器。 如果 OCDS 被禁止, OCS 寄存器的值不会改变。 当 OCDS 被禁止时, OCS 挂起控制无效。 写访问只能是 32 位宽,并且需要管理员模式。 OCS OCDS 控制和状态寄存器 (0028H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 SUS SUS STA _P r r rh w SUS rw 00000000 rrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 TG _P TGB TGS r r r r r r r r r r r r w rw rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-61 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 TGS [1:0] TGB 2 TG_P 3 0 SUS [23:4] [27:24] SUS_P 28 SUSSTA 29 0 [31:30] 类型 rw rw w r rw w rh r 描述 OTGB0/1 的触发设置 00B 无触发设置输出 01B 触发设置 1:TS16_SSIG,输入采样信号 10B 保留 11B 保留 OTGB0/1 总线选择 0B 触发设置在 OTGB0 输出 1B 触发设置在 OTGB1 输出 TGS、 TGB 写保护 TGS 和 TGB 只能在 TG_P 等于 1 时方可写入,否则不变。 读出值为 0。 保留,读出值为 0,应写入 0 OCDS 挂起控制 控制来自 OCDS 触发器开关 (OTGS)的挂起信号的敏感 性 0000B 不会挂起 0001B 硬挂起:时钟被立即关闭。 0010B 软挂起模式 0: 当前转换完成并且结果保存之后停止转换。 不会为仲裁器改变 0011B 软挂起模式 1: 当前转换完成并且结果保存之后停止转换。 在当前仲裁周期之后停止仲裁器。 其他:保留 SUS 写保护 只有在 SUS_P 等于 1 时, SUS 方可被写入,否则不变。 读出值为 0。 挂起状态 0B 模块 (尚)未被挂起 1B 模块被挂起 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-62 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-9 VADC 的 TS16_SSIG 触发设置 位 名称 描述 [1:0] GxSAMPLE 转换器组 x(x = 1-0) 的输入信号采样阶段 [15:2] 0 保留 16.16.3 通用寄存器 全局配置寄存器提供全局控制和配置选项,这些选项对一个集群中的所有转换器都有 效。 GLOBCFG 全局配置寄存器 (0080H) 复位值 : 0000 000FH 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SU CAL 0 0 0 0 0 0 0 0 0 0 0 0 DP DP 0 CAL CAL 10 w r r r r r r r r r r r r r rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DIV WC 0 0 0 0 0 wr r r r r DIVD DC MSB 0 0 rw rw r r DIVA rw 域 DIVA 0 DCMSB 位 [4:0] [6:5] 7 类型 rw r rw 描述 模拟内部时钟的分频系数 定义基本转换器时钟的频率 fADCI ( 转换和采样阶段的 基本时钟 )。 00H fADCI = fADC 01H fADCI = fADC / 2 02H fADCI = fADC / 3 ... 1FH fADCI = fADC / 32 保留,读出值为 0,应写入 0 用于 MSB 转换的双时钟 为 MSB1) 转换步骤选择一个额外的时钟周期 0B MSB 用 1 个时钟周期 (标准) 1B MSB 用 2 个时钟周期 (fADCI > 20 MHz)B 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-63 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 DIVD 位 类型 [9:8] rw 0 DIVWC DPCALx (x = 0 - 1) [14:10] r 15 w x+16 rw 0 SUCAL [30:18] r 31 w 1) 请参见 16-33 页 “ 转换时序 ” 一节。 描述 仲裁器时钟的分频系数 定义仲裁器的时钟频率 fADCD。 00B fADCD = fADC 01B fADCD = fADC / 2 10B fADCD = fADC / 3 11B fADCD = fADC / 4 保留,读出值为 0,应写入 0 分频器参数的写控制 0B 不能对分频器参数进行写访问 1B 位域 DIVA、 DCMSB、 DIVD 可被写入 禁止后校准 0B 组 x 的每次转换后自动进行后校准 1B 无后校准 注: 对于给定的产品型号,该位只对校准过的转换 器有效。 保留,读出值为 0,应写入 0 初始校准 位 SUCAL 的 0-1 跳变启动对所有校准过的模拟转换 器的初始校准阶段。 0B 无操作 1B 启动初始校准阶段 ( 由位 GxARBCFG.CAL 指 示) SHS0_SHSCFG SHS 配置寄存器 (4803 4040H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 STATE rh TC 0 0 0 0 0 0 SP1 SP0 rw r r r r r r rh rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SC AN WC RDY 0 AN OFF w rh r rw AREF rw 000000 rrrrrr DIVS rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-64 V1.0, 2013-03 请遵守产品信息使用协议 域 DIVS 0 AREF ANOFF 0 ANRDY SCWC SP0, SP1 0 TC XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [3:0] [9:4] [11:10] 12 13 14 15 16, 17 [23:18] [27:24] 类型 rw r rw rw r rh w rh r rw 描述 SHS 时钟的分频系数 为 SHS 逻辑和 SAR 转换器定义时钟频率。 0000B fSH = fCONV / 1 0001B fSH = fCONV / 2 ... 1111B fSH = fCONV / 16 保留,读出值为 0,应写入 0 模拟参考电压选择 00B 外部参考,电源电压范围 01B 保留 10B 保留 11B 保留 模拟转换器掉电强制1) 0B 转换器由位域 ANONS 控制 ( 数字控制块 ) 1B 转换器被永久性关闭 保留,读出值为 0,应写入 0 模拟转换器就绪 0B 模拟转换器处于掉电模式 1B 转换器可以工作 SHS 配置的写控制 0B 不能对 SHS 配置进行写访问 1B 位域 ANOFF、 AREF、 DIVS 可被写入 采样保持单元 x 的采样挂起 0B 无采样挂起 1B 采样保持单元 x 已结束采样阶段 保留,读出值为 0,应写入 0 测试控制 1011B 使能内部测试功能 其他:正常工作 注: 对于正常,确保向位域写 0000B。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-65 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 STATE 位 类型 [31:28] rh 1) 见 16-13 页 “ 模拟转换器控制 ” 。 描述 定序器的当前状态 0000B 空闲 0001B 偏移校准有效 0010B 增益校准有效 0011B 初始校准有效 1000B 采样保持单元 0 的步处理有效 1001B 采样保持单元 1 的步处理有效 其他:正常操作 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-66 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 寄存器访问控制 VADC 提供了多种保护机制,以防止对 VADC 控制位域的意外写访问。 ACCPROT0 访问保护寄存器 (0088H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 AP GC 0 0 0 0 0 0 0 0 0 0 0 0 0 AP AP I1 I0 rw r r r r r r r r r r r r r rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AP EM 0 0 0 0 0 0 0 0 0 0 0 0 0 AP AP C1 C0 rw r r r r r r r r r r r r r rw rw 域 APC0, APC1 0 APEM API0, API1 0 APGC 位 0, 1 [14:2] 15 16, 17 [30:18] 31 类型 rw r rw rw r rw 描述 通道控制的访问保护,组 0 - 1 0B 允许对寄存器的所有访问 1B 阻塞对通道控制寄存器的写访问 保留,读出值为 0,应写入 0 外部多路复用器的访问保护 0B 允许对寄存器的所有访问 1B 阻塞对外部多路复用器寄存器的写访问 初始化的访问保护,组 0 - 1 0B 允许对寄存器的所有访问 1B 阻塞对初始化寄存器的写访问 保留,读出值为 0,应写入 0 全局配置的访问保护 0B 允许对寄存器的所有访问 1B 阻塞对全局配置寄存器的写访问 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-67 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) ACCPROT1 访问保护寄存器 (008CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AP AP R1 R0 r r r r r r r r r r r r r r rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AP TF 0 0 0 0 0 0 0 0 0 0 0 0 0 AP AP S1 S0 rw r r r r r r r r r r r r r rw rw 域 APS0, APS1 0 APTF APR0, APR1 0 位 0, 1 [14:2] 15 16, 17 [31:18] 类型 rw r rw rw r 描述 服务请求的访问保护,组 0 - 1 0B 允许对寄存器的所有访问 1B 阻塞对服务请求寄存器的写访问 保留 , 读出值为 0,应写入 0 测试功能的访问保护 0B 允许对寄存器的所有访问 1B 阻塞对测试功能寄存器的写访问 结果寄存器的访问保护,组 0 - 1 0B 允许对寄存器的所有访问 1B 阻塞对结果寄存器的写访问 保留,读出值为 0,应写入 0 表 16-10 控制位 APCx APEM APIx APGC 寄存器保护组 寄存器 GxCHCTR0 … GxCHCTRy EMUXSEL, GxEMUXCTR GxARBCFG, GxARBPR, GxCHASS, GxRRASS, GxICLASS0/1, GxSYNCTR GLOBCFG 备注 通道控制 外部多路复用器控制 初始化 全局配置 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-68 V1.0, 2013-03 请遵守产品信息使用协议 表 16-10 控制位 APSx APTF APRx XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 寄存器保护组 ( 续表 ) 寄存器 备注 GxSEFLAG, GxSEVNP, GxCEFLAG, GxCEVNP0/1, GxREFLAG, GxREVNP0/1, GxSRACT 服务请求控制 - 测试功能 GxRCR0 … GxRCR15, 结果控制 GxBOUND, GxRES0 … GxRES15 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-69 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 优先通道分配 一个组内的每个通道都可被分配给该组的请求源,然后被视为一个优先通道。一个已分 配的优先通道只能由本组内的请求源进行转换。未被分配的通道也可由后台请求源转 换。 GxCHASS (x = 0 - 1) 通道分配寄存器,组 x (x * 0400H + 0488H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 ASS ASS ASS ASS ASS ASS ASS ASS 0 CH CH CH CH CH CH CH CH 76543210 r rw rw rw rw rw rw rw rw 域 ASSCHy (y = 0 - 7) 0 位 y [31:8] 类型 rw r 描述 通道 y 分配 0B 通道 y 可以是具有最低优先级的后台通道 1B 通道 y 是组 x 内的一个优先通道 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-70 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 优先级结果寄存器分配 一个组内的每个结果寄存器都可被分配给该组的请求源,然后被视为一个保留的资源。 一个已分配的结果寄存器只能由本组内的请求源写入。未分配的结果寄存器也可由后台 请求源写入。 GxRRASS (x = 0 - 1) 结果分配寄存器,组 x (x * 0400H + 048CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS ASS RR RR RR RR RR RR RR RR RR RR RR RR RR RR RR RR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw 域 ASSRRy (y = 0 - 15) 0 位 y [31:16] 类型 rw r 描述 结果寄存器 y 分配 0B 结果寄存器 y 也可由后台请求源写入 1B 结果寄存器 y 只能由组 x 内的源写入 保留,读出值为 0,应写入 0 步进器配置寄存器选择在步进状态机的每个步期间得到服务的采样保持单元。 SHS0_STEPCFG 步进器配置寄存器 (4803 4044H) 复位值 : 0000 0098H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SEN 7 rw KSEL7 rw SEN 6 rw KSEL6 rw SEN 5 rw KSEL5 rw SEN 4 rw KSEL4 rw 15 14 13 12 11 10 9 8 SEN 3 rw KSEL3 rw SEN 2 rw KSEL2 rw 7 SEN 1 rw 654 KSEL1 rw 3 SEN 0 rw 210 KSEL0 rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-71 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 KSEL0, KSEL1, KSEL2, KSEL3, KSEL4, KSEL5, KSEL6, KSEL7 SEN0, SEN1, SEN2, SEN3, SEN4, SEN5, SEN6, SEN7 位 类型 [2:0], rw [6:4], [10:8], [14:12], [18:16], [22:20], [26:24], [30:28] 3, rw 7, 11, 15, 19, 23, 27, 31 描述 内核选择 定义在该步期间被服务的组 (即采样保持单元)。 有效数值取决于所支持的内核 / 接口数量:0 … 1 步 x 使能 确定是否执行该步。 0B 关闭: 该步不是步进序列的一部分 1B 打开: 在序列期间执行该步 时序配置寄存器 TIMCFGx 配置 SHS 的接口时序。 SHS0_TIMCFGx (x = 0 - 1) 时序配置寄存器 x (4803 4080H + x * 4H) 复位值 : 0000 0001H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 00 rr TGEN rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00 SST rr rw FCRT rw 0 0 0 AT r r r rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-72 V1.0, 2013-03 请遵守产品信息使用协议 域 AT 0 FCRT SST 0 TGEN 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 0 [3:1] [7:4] [13:8] [15:14] [29:16] [31:30] 类型 rw r rw rw r rh r 描述 加速时序 使能增强的转换时序机制。 0B 兼容的时序: 标准转换时间后结果才可用 1B 加速时序: 一旦转换结束结果立即可用 保留,读出值为 0,应写入 0 快速比较模式响应时间 定义一次快速比较操作的持续时间。结果在经过时 间 (FCRT+1) × 2 × tADCI 之后产生。 0H 在 tADCI × 2 之后产生结果 ... FH 在 tADCI × 32 之后产生结果 短采样时间 定义采样阶段的持续时间。 00H 兼容时序: 采样时间由 DIVA 和 STC 定义。 01H 采样时间为 tADC × 1 3FH 采样时间为 tADC × 63 保留,读出值为 0,应写入 0 时序发生器 对采样阶段的持续时间和兼容时序模式下转换的持 续时间计数。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-73 V1.0, 2013-03 请遵守产品信息使用协议 16.16.4 仲裁和源寄存器 仲裁配置寄存器选择仲裁器的时序和行为。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxARBCFG (x = 0 - 1) 仲裁配置寄存器,组 x (x * 0400H + 0480H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SAM PLE BU SY CAL S CAL 0 rh rh rh rh r 0 SYN RUN r rh CHNR rh CSRC rh ANONS rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 ARB M 0 ARBRND 0 0 ANONC r r r r r r r r rw r rw rr rw 域 ANONC 0 ARBRND 0 位 [1:0] [3:2] [5:4] 6 类型 rw r rw r 描述 模拟转换器控制 定义一个独立转换器或主模式转换器中的位域 ANONS 的值。 编码见 ANONS 或 16.5 节。 保留,读出值为 0,应写入 0 仲裁周期长度 定义每个仲裁周期内仲裁时隙的数量 ( 仲裁周期长度 = tARB)。1) 00B 每个仲裁周期内有 4 个仲裁时隙 (tARB = 4 / fADCD) 01B 每个仲裁周期内有 8 个仲裁时隙 (tARB = 8 / fADCD) 10B 每个仲裁周期内有 16 个仲裁时隙 (tARB = 16 / fADCD) 11B 每个仲裁周期内有 20 个仲裁时隙 (tARB = 20 / fADCD) 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-74 V1.0, 2013-03 请遵守产品信息使用协议 域 ARBM 0 ANONS CSRC CHNR SYNRUN XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 7 [15:8] [17:16] [19:18] [24:20] 25 类型 rw r rh rh rh rh 描述 仲裁模式 0B 仲裁器一直运行。 同步从内核 (见 16.12.1 节)和使用信号 ARBCNT 的等距抽样 (见 16.12.2 节)需要 该设置。 1B 仲裁器只在至少有一个已使能的使能请求源的 转换请求被挂起时才运行。 如果转换器空闲,该设置能够确保从进入请求 到转换启动之间有可重复的延迟。不支持同步 转换。 保留,读出值为 0,应写入 0 模拟转换器控制状态 由一个独立内核或主模式内核中的位域 ANONC 定 义。 在从模式,该位域由相应主内核的位域 ANONC 定 义。 见 16.5 节 00B 模拟转换器关闭 01B 保留 10B 慢速待机模式 11B 正常工作 ( 永久性使能 ) 当前转换请求源 指示当前 (BUSY = 1) 或最后一次 (BUSY = 0) 转换 的仲裁时隙号。 当一次转换启动时,该位域被更新。 00B 请求源 0 的当前 / 最后一次转换 01B 请求源 1 的当前 / 最后一次转换 10B 后台源源的当前 / 最后一次转换 11B 同步源请求的当前 / 最后一次转换 ( 从转换器 ) 其他组合保留。 通道号 指示当前或最后一次转换的模拟输入通道 当一次转换启动时,该位域被更新。 同步转换运行 指示一次同步 (= 并行)转换当前正在运行。 0B 正常转换或没有转换在运行 1B 一次同步转换正在运行 ( 不能被具有更高优先 级的请求撤消! ) 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-75 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 类型 描述 0 [27:26] r 保留,读出值为 0,应写入 0 CAL 28 rh 初始校准活动指示 指示相应模拟转换器的初始校准阶段: 0B 已完成或尚未启动 1B 初始校准阶段正在进行 ( 在 SUCAL 被置 1 一个时钟周期置位 ) 注: 在初始校准阶段完成后才能启动转换。2) CALS 29 rh 初始校准开始 指示启动校准已经开始 0B 已请求但尚未开始 1B 初始校准已经开始 注: 当置位 SUCAL 时,位 CALS 被清零,与位 CAL 一起被置位。 BUSY 30 rh 转换器忙标志 0B 不忙 1B 转换器正忙于转换 SAMPLE 31 rh 采样阶段标志 0B 正在转换或空闲 1B 输入信号当前正被采样 1) 默认设置 4 个仲裁时隙的默认设置对于正确的仲裁是足够的。如果需要对请求进行同步,可以增加一个仲裁周 期的持续时间。 2) 初始校准的完成由 CAL = 0 和 CALS = 1 指示。 CAL = CALS = 0 指示初始校准已被请求但尚未开始。 CAL = CALS = 1 指示正在进行校准阶段。 仲裁优先级寄存器定义请求源的优先级和每个请求源的转换启动模式。 注: 只能在一个请求源被禁止并且由该源请求的当前运行转换结束时改变该请求源的 优先级和转换启动模式。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-76 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxARBPR (x = 0 - 1) 仲裁优先级寄存器,组 x (x * 0400H + 0484H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 AS AS AS EN2 EN1 EN0 0 0 0 0 0 0 0 0 r r r r r rw rw rw r r r r r r r r 15 14 13 12 11 10 0 0 0 0 CSM 2 0 r r r r rw r 9876 PRIO 2 rw CSM 1 0 rw r 5432 PRIO 1 rw CSM 0 0 rw r 10 PRIO 0 rw 域 PRIO0, PRIO1, PRIO2 CSM0, CSM1, CSM2 0 ASENy (y = 0 - 2) 0 位 [1:0], [5:4], [9:8] 3, 7, 11 2, 6, 10, [23:12] 24 + y [31:27] 类型 rw rw r rw r 描述 请求源 x 的优先级 请求源 x 的仲裁优先级 ( 在时隙 x 内 ) 00B 选择最低优先级。 ... 11B 选择最高优先级。 请求源 x 的转换启动模式 0B 待读模式 1B 撤消 - 插入 - 重复模式,即该源可以撤消其他 源的转换。 保留,读出值为 0,应写入 0 仲裁时隙 y 使能 使能一个仲裁周期内相关联的仲裁时隙。请求源位 不会被对 ASENR 的写操作修改。 0B 相应的仲裁时隙被禁止并被认为是空的。忽略 来自相关的转换源的挂起转换请求。 1B 相应的仲裁时隙被使能。仲裁器对来自相关联 请求源的挂起转换请求进行仲裁。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-77 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 队列源的控制寄存器选择外部门控和 / 或触发信号。 写控制位允许用一次简单的写访问对每个功能单独控制。 GxQCTRL0 (x = 0 - 1) 队列 0 源控制寄存器 ,组 x (x * 0400H + 0500H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TM WC 0 0 TM EN 0 0 0 0 GT WC 0 0 GT LVL GT SEL w r r rw r r r r w r r rh rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 XT XT XT XT WC MODE LVL SEL w rw rh rw 0000 rrrr SRCRESREG rwr 域 SRCRESREG 0 XTSEL XTLVL XTMODE XTWC 位 [3:0] [7:4] [11:8] 12 [14:13] 15 类型 rw r rw rh rw w 描述 源专用结果寄存器 0000B使用 GxCHCTRy.RESREG 来选择一个组结果 寄存器 0001B保存结果到组结果寄存器 GxRES1 … 1111B保存结果到组结果寄存器 GxRES15 保留,读出值为 0,应写入 0 外部触发输入选择 连接的触发输入信号见 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 注: XTSEL = 1111B 使用所选择的门控输入作为触 发源 (ENGT 必须为 0xB)。 外部触发信号电平 所选触发输入的当前电平 触发操作模式 00B 无外部触发 01B 在下降沿产生触发事件 10B 在上升沿产生触发事件 11B 在任何一个边沿产生触发事件 触发配置的写控制 0B 不能写触发配置 1B 可以写位域 XTMODE 和 XTSEL 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-78 V1.0, 2013-03 请遵守产品信息使用协议 域 GTSEL GTLVL 0 GTWC 0 TMEN 0 TMWC XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [19:16] 20 [22:21] 23 [27:24] 28 [30:29] 31 类型 rw rh r w r rw r w 描述 门控输入选择 连接的门控输入信号见 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 门控输入电平 所选门控输入的当前电平 保留,读出值为 0,应写入 0 门控配置的写控制 0B 不能写门控配置 1B 可以写位域 GTSEL 保留,读出值为 0,应写入 0 定时器模式使能 0B 无定时器模式: 可使用标准门控机制 1B 使能等距采样定时器模式 必须禁止标准门控机制 保留,读出值为 0,应写入 0 定时器模式的写控制 0B 不能写定时器模式 1B 可以写位域 TMEN 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-79 V1.0, 2013-03 请遵守产品信息使用协议 队列模式寄存器配置一个队列请求源的工作模式。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxQMR0 (x = 0 - 1) 队列 0 模式寄存器,组 x (x * 0400H + 0504H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RPT DIS r r r r r r r r r r r r r r r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 CEV FLU SH TR EV CLR V 0 0 0 0 0 EN TR ENGT r r r r w w w w r r r r r rw rw 域 ENGT ENTR 0 CLRV 位 类型 描述 [1:0] rw 使能门控 为源 0/2 选择门控功能。 00B 不发出转换请求 01B 如果在队列 0 寄存器或备份寄存器中有被挂起 的有效转换请求,发出转换请求 10B 如果在队列 0 寄存器或备份寄存器中有被挂起 的有效转换请求并且 REQGTx = 1,发出转换 请求 11B 如果在队列 0 寄存器或备份寄存器中有被挂起 的有效转换请求并且 REQGTx = 0,发出转换 请求。 注: REQGTx 是所选择的门控信号。 2 rw 使能外部触发 0B 禁止外部触发 1B 在所选触发输入信号 REQTR 的所选边沿产生 触发事件。 [7:3] r 保留,读出值为 0,应写入 0 8 w 清除有效位 0B 无操作 1B 序列中的下一个挂起有效队列条目和事件标志 EV 被清零。 如果在队列的备份寄存器中有一个有效条目 (QBUR.V = 1),则该条目被清零,否则在队列 寄存器 0 中的条目被清零。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-80 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 TREV FLUSH CEV 0 RPTDIS 0 位 9 10 11 [15:12] 16 [31:17] 类型 w w w r rw r 描述 触发事件 0B 无操作 1B 用软件产生一个触发事件 清空队列 0B 无操作 1B 清除所有队列条目 ( 包括备份级 ) 和事件标志 EV。 队列不再包含有效条目。 清除事件标志 0B 无操作 1B 将位 EV 清零 保留,读出值为 0,应写入 0 重复禁止 0B 重复被撤消的转换 1B 忽略被撤消的转换 保留,读出值为 0,应写入 0 队列状态寄存器指示队列源的当前状态。队列填充程度和空信息可通过检查队列中间级 (如果可用)和队列寄存器 0 得知。保存在备份级的一次被中止的转换不由这些位指示 (因此,请见 QBURx.V)。 GxQSR0 (x = 0 - 1) 队列 0 状态寄存器,组 x (x * 0400H + 0508H) 复位值 : 0000 0020H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 EV REQ GT 0 EMP TY 0 r r r r r r r rh rh r rh r FILL rh 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-81 V1.0, 2013-03 请遵守产品信息使用协议 域 FILL 0 EMPTY 0 REQGT EV 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [3:0] 4 5 6 7 8 [31:9] 类型 rh r rh r rh rh r 描述 队列 2 的填充水平 指示有效队列条目的数量。 每当一个新的条目被写到 QINRx 或者被一个使能的 重填机制写入时,该值加 1。 每当一个请求的转换已经启动时,该值减 1。如果填 充水平已达到其最大值,则新条目被忽略。 0000B队列中有 1 个 (如果 EMPTY = 0)或没有 (如果 EMPTY = 1)有效条目 0001B队列中有 2 个有效条目 0…010B队列中有 3 个有效条目 0111B队列中有 8 个有效条目 其他:保留 保留,读出值为 0,应写入 0 队列空 0B 队列中有有效条目 ( 见 FILL) 1B 无有效条目 ( 队列为空 ) 保留,读出值为 0,应写入 0 请求门控电平 监视所选 REQGT 输入的电平。 0B 门控输入为低电平 1B 门控输入为高电平 事件检测 当队列中 ( 队列寄存器 0 或备份级 ) 至少有一个有效 条目时,该位指示已检测到一个事件。一旦置位, 该位在所请求的转换启动时被自动清零。 0B 无触发事件 1B 检测到一个触发事件 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-82 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 队列输入寄存器是一个队列请求源的转换请求的入口点。 GxQINR0 (x = 0 - 1) 队列 0 输入寄存器,组 x (x * 0400H + 0510H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 EX TR EN SI RF r r r r r r r r www REQCHNR w 域 REQCHNR RF ENSI EXTR 0 位 [4:0] 5 6 7 [31:8] 类型 w w w w r 描述 请求通道号 定义要被转换的通道号 重填 0B 不重填:该队列条目被转换一次后即失效 1B 自动重填:当相关的转换启动时,该队列条目 被自动重新加载到 QINRx。 使能源中断 0B 无请求源中断 1B 在发生请求源事件时 (相关转换完成)产生请 求源事件中断。 外部触发 使能外部触发功能。 0B 一个有效队列条目会立即导致产生转换请求。 1B 在发出转换请求之前,有效队列条目等待一个 触发事件发生。 保留,读出值为 0,应写入 0 注: 寄存器 QINRx 与寄存器 QBURx 共享地址。 写操作的目标是寄存器 QINRx 中的控制位;读操作返回寄存器 QBURx 中的状态 位。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-83 V1.0, 2013-03 请遵守产品信息使用协议 队列寄存器 0 监视挂起请求的状态 (队列级 0)。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxQ0R0 (x = 0 - 1) 队列 0 寄存器 0,组 x (x * 0400H + 050CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 V EX TR EN SI RF r r r r r r r rh rh rh rh REQCHNR rh 域 REQCHNR RF ENSI EXTR V 0 位 [4:0] 5 6 7 8 [31:9] 类型 rh rh rh rh rh r 描述 请求通道号 保存将被转换的通道号。 重填 选择对已经处理过的请求的处理。 0B 转换启动后,请求被丢弃。 1B 转换启动后,请求被自动重填到队列中。 使能源中断 0B 无请求源中断 1B 在发生一个请求源事件时 ( 相关转换完成 ) 产 生请求源事件中断 外部触发 使能外部触发事件。 0B 一个有效队列条目会立即导致产生转换请求 1B 请求处理器等待一个触发事件 请求通道号有效 指示寄存器 0 中有一个有效队列条目。 0B 无有效队列条目 1B 队列条目有效并导致产生一次转换请求 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-84 V1.0, 2013-03 请遵守产品信息使用协议 队列备份寄存器监视被中止的队列请求的状态。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxQBUR0 (x = 0 - 1) 队列 0 备份寄存器,组 x (x * 0400H + 0510H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 V EXT EN R SI RF r r r r r r r rh rh rh rh REQCHNR rh 域 REQCHNR RF ENSI EXTR V 0 位 [4:0] 5 6 7 8 [31:9] 类型 rh rh rh rh rh r 描述 请求通道号 由该请求源请求的但已被中止的转换的通道号 重填 被中止的转换的重填控制位 使能源中断 被中止的转换的使能源中断控制位 外部触发 被中止的转换的外部触发控制位 请求通道号有效 指示在队列备份寄存器中的条目 (REQCHNR、 RF、 TR、 ENSI) 是否有效。 当一个运行的转换 (已被该请求源请求)被中止 时,位 V 被置位;当被中止的转换重新启动时,该 位被清零。 0B 备份寄存器无效 1B 备份寄存器包含一个有效条目。 在队列寄存器 0 (级 0)中的一个有效条目被 请求之前,备份寄存器中的条目被请求。 保留,读出值为 0,应写入 0 注: 寄存器 QBURx 与寄存器 QINRx 共享地址。 读操作从寄存器 QBURx 返回状态位。写操作的目标是寄存器 QINRx 中的控制位。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-85 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 组扫描源寄存器 每组扫描源都有一个独立的寄存器组。这些源可以独立工作。 自动扫描源的控制寄存器选择外部门控和 / 或触发信号。 写控制位允许通过一次简单的写访问实现对每个功能的独立控制。 GxASCTRL (x = 0 - 1) 自动扫描源控制寄存器,组 x (x * 0400H + 0520H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TM WC 0 0 TM EN 0 0 0 0 GT WC 0 0 GT LVL GT SEL w r r rw r r r r w r r rh rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 XT XT XT XT WC MODE LVL SEL w rw rh rw 0000 rrrr SRCRESREG rwr 域 SRCRESREG 0 XTSEL XTLVL XTMODE 位 [3:0] [7:4] [11:8] 12 [14:13] 类型 rw r rw rh rw 描述 源专用结果寄存器 0000B使用 GxCHCTRy.RESREG 来选择一个组结果 寄存器 0001B保存结果到组结果寄存器 GxRES1 … 1111B保存结果到组结果寄存器 GxRES15 保留,读出值为 0,应写入 0 外部触发输入选择 连接的触发输入信号列于 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 注: XTSEL = 1111B 使用所选择的门控输入作为触 发源 (ENGT 必须为 0xB)。 外部触发电平 所选触发输入的当前电平 触发操作模式 00B 无外部触发 01B 在下降沿产生触发事件 10B 在上升沿产生触发事件 11B 在任何一个边沿产生触发事件 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-86 V1.0, 2013-03 请遵守产品信息使用协议 域 XTWC GTSEL GTLVL 0 GTWC 0 TMEN 0 TMWC XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 15 [19:16] 20 [22:21] 23 [27:24] 28 [30:29] 31 类型 w rw rh r w r rw r w 描述 触发配置的写控制 0B 不能写触发配置 1B 可以写位域 XTMODE 和 XTSEL 门控输入选择 连接的门控输入信号见 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 门控输入电平 所选门控输入的当前电平 保留,读出值为 0,应写入 0 门控配置的写控制 0B 不能写门控配置 1B 可以写位域 GTSEL 保留,读出值为 0,应写入 0 定时器模式使能 0B 无定时器模式: 可使用标准门控机制 1B 使能等距采样定时器模式: 必须禁止标准门控机制 保留,读出值为 0,应写入 0 定时器模式的写控制 0B 不能写定时器模式 1B 可以写位域 TMEN 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-87 V1.0, 2013-03 请遵守产品信息使用协议 转换请求模式寄存器配置通道扫描请求源的工作模式。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxASMR (x = 0 - 1) 自动扫描源模式寄存器,组 x (x * 0400H + 0524H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RPT DIS r r r r r r r r r r r r r r r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 LD CLR REQ EV PND GT 0 LDM SCA N EN SI EN TR r r r r r r w w rh r rw rw rw rw rw 域 ENGT ENTR ENSI SCAN 位 类型 描述 [1:0] rw 使能门控 为源 1 选择门控功能。 00B 不发出转换请求 01B 如果至少有一个挂起位被置位,发送转换请求 10B 如果至少有一个挂起位被置位并且 REQGTx = 1,发送转换请求。 11B 如果至少由一个挂起位被置位并且 REQGTx = 0,发送转换请求。 注: REQGTx 是所选择的门控信号。 2 rw 使能外部触发 0B 禁止外部触发 1B 在所选触发输入信号 REQTR 的所选边沿产生 加载事件。 3 rw 使能源中断 0B 无请求源中断 1B 在发生请求源事件时 (最后一个挂起的转换完 成)产生请求源中断 4 rw 自动扫描使能 0B 无自动扫描 1B 使能自动扫描功能: 一个请求源事件会自动产生一个加载事件。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-88 V1.0, 2013-03 请遵守产品信息使用协议 域 LDM 0 REQGT CLRPND LDEV 0 RPTDIS 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 5 6 7 8 9 [15:10] 16 [31:17] 类型 rw r rh w w r rw r 描述 自动扫描加载事件模式 0B 覆盖模式: 在发生一次加载事件时,将所选寄存器的所有 位复制到挂起寄存器。 1B 组合模式: 在发生一次加载事件时,将所选寄存器中的所 有挂起位都置 1 (逻辑或)。 保留,读出值为 0,应写入 0 请求门控电平 监视所选 REQGT 输入的电平。 0B 门控输入为低电平 1B 门控输入为高电平 清除挂起位 0B 无操作 1B 寄存器 GxASPNDx 中的位被清零。 产生加载事件 0B 无操作 1B 产生一次加载事件 保留,读出值为 0,应写入 0 重复禁止 0B 重复被撤消的转换 1B 忽略被撤消的转换 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-89 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 通道选择寄存器选择组扫描请求源要转换的通道。该寄存器中的位用于在发生加载事件 时更新挂起寄存器。 有效通道位的数量取决于相应产品型号中的可用通道(参见 16-134 页 “ 产品的具体配置 ” )。 GxASSEL (x = 0 - 1) 自动扫描源通道选择寄存器,组 x (x * 0400H + 0528H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 CH CH CH CH CH CH CH CH 0 SEL SEL SEL SEL SEL SEL SEL SEL 76543210 r rwh rwh rwh rwh rwh rwh rwh rwh 域 CHSELy (y = 0 - 7) 0 位 y [31:8] 类型 rwh r 描述 通道选择 每个位 (当置位时)使能所在组的相应输入通道加 入扫描序列。 0B 忽略该通道 1B 该通道是扫描序列的一部分。 保留,读出值为 0,应写入 0 注: 当写一个模式到寄存器 GxASPND 时,寄存器 GxASSEL 也被更新。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-90 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 通道挂起寄存器指示当前转换序列中将要转换的通道。它们在发生加载事件时被选择寄 存器更新。 GxASPND (x = 0 - 1) 自动扫描源挂起寄存器,组 x (x * 0400H + 052CH) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 CH CH CH CH CH CH CH CH 0 PND PND PND PND PND PND PND PND 76543210 r rwh rwh rwh rwh rwh rwh rwh rwh 域 CHPNDy (y = 0 - 7) 0 位 y [31:8] 类型 rwh r 描述 通道挂起 每位 (当置位时)请求所在组的相应输入通道的转换。 0B 忽略该通道 1B 请求对该通道的转换 保留,读出值为 0,应写入 0 注: 写寄存器 GxASPND 会自动更新寄存器 GxASSEL。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-91 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 后台扫描源寄存器 后台扫描源只有一组寄存器。该源对整个 VADC 是公用的。 后台请求源的控制寄存器选择外部门和 / 或触发信号。 写控制位允许用一次简单的写访问单独控制每个功能。 BRSCTRL 后台请求源控制寄存器 (0200H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 GT WC 0 0 GT LVL GT SEL r r r r r r r r w r r rh rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 XT XT XT XT WC MODE LVL SEL w rw rh rw 0000 rrrr SRCRESREG rw 域 SRCRESREG 0 XTSEL XTLVL XTMODE 位 [3:0] [7:4] [11:8] 12 [14:13] 类型 rw r rw rh rw 描述 源专用结果寄存器 0000B使用 GxCHCTRy.RESREG 来选择一个组结果 寄存器。 0001B保存结果到组结果寄存器 GxRES1 … 1111B保存结果到组结果寄存器 GxRES15 保留,读出值为 0,应写入 0 外部触发输入选择 连接的触发输入信号见 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 注: XTSEL = 1111B 使用所选门控输入作为触发源 (ENGT 必须是 0XB)。 外部触发电平 所选触发输入的当前电平 触发操作模式 00B 无外部触发 01B 在下降沿产生触发事件 10B 在上升沿产生触发事件 11B 在任一边沿产生触发事件 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-92 V1.0, 2013-03 请遵守产品信息使用协议 域 XTWC GTSEL GTLVL 0 GTWC 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 15 [19:16] 20 [22:21] 23 [31:24] 类型 w rw rh r w r 描述 触发配置的写控制 0B 不能写触发配置 1B 可以写位域 XTMODE 和 XTSEL 门控输入选择 连接的门控输入信号见 16-136 页的表 16-15 “XMC1300 中的数字连接 ” 门控输入电平 所选门控输入的当前电平 保留,读出值为 0,应写入 0 门控配置的写控制 0B 不能写门控配置 1B 可以写位域 GTSEL 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-93 V1.0, 2013-03 请遵守产品信息使用协议 转换请求模式寄存器配置后台请求源的工作模式。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) BRSMR 后台请求源模式寄存器 (0204H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RPT DIS r r r r r r r r r r r r r r r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 LD CLR REQ EV PND GT 0 LDM SCA N EN SI EN TR ENGT r r r r r r w w rh r rw rw rw rw rw 域 ENGT ENTR ENSI SCAN 位 类型 描述 [1:0] rw 使能门控 为源 1 选择门控功能。 00B 不发出转换请求 01B 如果至少有一个挂起位被置 1,发出转换请求 10B 如果至少有一个挂起位被置 1 并且 REQGTx = 1,发出转换请求。 11B 如果至少有一个挂起位被置 1 并且 REQGTx = 0,发出转换请求。 注: REQGTx 是所选择的门控信号。 2 rw 使能外部触发 0B 禁止外部触发 1B 在所选触发输入信号 REQTR 的所选边沿产生 加载事件。 3 rw 使能源中断 0B 无请求源中断 1B 在发生一次请求源事件时 (最后一个挂起的转 换完成)产生请求源中断。 4 rw 使能自动扫描 0B 无自动扫描 1B 使能自动扫描功能 一个请求源事件会自动产生一次加载事件。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-94 V1.0, 2013-03 请遵守产品信息使用协议 域 LDM 0 REQGT CLRPND LDEV 0 RPTDIS 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 5 6 7 8 9 [15:10] 16 [31:17] 类型 rw r rh w w r rw r 描述 自动扫描加载事件模式 0B 覆盖模式: 在发生一次加载事件时,将所选寄存器中的所 有位复制到挂起寄存器。 1B 组合模式: 在发生一次加载事件时,将所选寄存器中的所 有挂起位都置 1 (逻辑或)。 保留,读出值为 0,应写入 0 请求门控电平 监视所选 REQGT 输入的电平。 0B 门控输入为低电平 1B 门控输入为高电平 清除挂起位 0B 无操作 1B 寄存器 GxASPNDx 中的位被清零 产生加载事件 0B 无操作 1B 产生一次加载事件 保留,读出值为 0,应写入 0 禁止重复 0B 重复被撤消的转换 1B 忽略被撤消的转换 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-95 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 通道选择寄存器选择后台请求源 (通道扫描源)将要转换的通道。该寄存器中的位用于 在发生加载事件时更新挂起寄存器。 有效通道位的数量取决于相应产品型号中的可用通道(参见 16-134 页 “ 产品的具体配置 ” )。 注: 在寄存器 GxCHASS (x = 0 - 1) 中选择的优先通道不会被转换。 BRSSELx (x = 0 - 1) 后台请求源通道选择寄存器,组 x(0180H + x * 0004H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 CH CH CH CH CH CH CH CH 0 SEL SEL SEL SEL SEL SEL SEL SEL G7 G6 G5 G4 G3 G2 G1 G0 r rwh rwh rwh rwh rwh rwh rwh rwh 域 CHSELGy (y = 0 - 7) 0 位 y [31:8] 类型 rwh r 描述 通道选择组 x 每个位 (当置位时)使能所在组的相应输入通道加 入扫描序列。 0B 忽略该通道 1B 该通道是扫描序列的一部分。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-96 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 通道挂起寄存器指示当前转换序列中要被转换的通道。当发生一次加载事件时,它们被 选择寄存器更新。 BRSPNDx (x = 0 - 1) 后台请求源挂起寄存器 , 组 x (01C0H + x * 0004H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 CH CH CH CH CH CH CH CH 0 PND PND PND PND PND PND PND PND G7 G6 G5 G4 G3 G2 G1 G0 r rwh rwh rwh rwh rwh rwh rwh rwh 域 CHPNDGy (y = 0 - 7) 0 位 y [31:8] 类型 rwh r 描述 通道挂起组 x 每个位 (当置位时)请求所在组的相应输入通道的 转换。 0B 忽略该通道 1B 请求对该通道进行转换 保留,读出值为 0,应写入 0 注: 对寄存器 BRSPNDx 中的任何一个进行写操作会更新相应的寄存器 BRSSELx,并 且产生一个加载事件,该事件将所有寄存器 BRSSELx 中的所有位复制到 BRSPNDx。 只能在写请求模式的最后一个字时使用这一快速方式。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-97 V1.0, 2013-03 请遵守产品信息使用协议 16.16.5 通道控制寄存器 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) G0CHCTRy (y = 0 - 7) 组 0, 通道 y 控制寄存器 G1CHCTRy (y = 0 - 7) 组 1, 通道 y 控制寄存器 31 30 29 28 27 0 BWD EN BWD CH 0 r rw rw r (0600H + y * 0004H) 复位值 : 0000 0000H (0A00H + y * 0004H) 复位值 : 0000 0000H 26 25 24 23 22 21 20 19 18 17 16 0 0 0 0 0 RES RES POS TBS r r r r r rw rw RESREG rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BNDSELX REF SY SEL NC CHEV MODE BNDSELU BNDSELL 0 0 ICLSEL rw rw rw rw rw rw rr rw 域 ICLSEL 0 BNDSELL BNDSELU 位 类型 描述 [1:0] rw 输入类选择 00B 使用组专用类 0 01B 使用组专用类 1 10B 使用全局类 0 11B 使用全局类 1 [3:2] r 保留,读出值为 0,应写入 0 [5:4] rw 下边界选择1) 00B 使用组专用边界 0 01B 使用组专用边界 1 10B 使用全局边界 0 11B 使用全局边界 1 [7:6] rw 上边界选择 1) 00B 使用组专用边界 0 01B 使用组专用边界 1 10B 使用全局边界 0 11B 使用全局边界 1 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-98 V1.0, 2013-03 请遵守产品信息使用协议 域 CHEVMODE SYNC REFSEL BNDSELX RESREG RESTBS RESPOS 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [9:8] 10 11 [15:12] [19:16] 20 21 [27:22] 类型 rw rw rw rw rw rw rw r 描述 通道事件模式 产生一个通道事件,或者在带有极限检查2) 的比较模 式 (NCM),或者在快速比较模式 (FCM)3)。 00B 不产生事件 01B NCM:如果结果位于边界范围内 FCM:如果结果变高 ( 高于比较值 ) 10B NCM:如果结果超出边界范围 FCM:如果结果变低 ( 低于比较值 ) 11B NCM:总是产生事件 ( 忽视范围 ) FCM:如果结果切换到另一电平 同步请求 0B 无同步请求,独立操作 1B 请求对该通道进行一次同步转换 ( 仅考虑主内 核) 参考输入选择 定义对该通道进行转换时使用的参考电压输入。 0B 标准参考地 VSSC 1B 来自 CH0 的备选参考地4) 边界扩展 1) 0000B标准模式: 通过 BNDSELU/BNDSELL 选择边界 0001B使用结果寄存器 GxRES1 作为上边界 … 1111B使用结果寄存器 GxRES15 作为上边界 结果寄存器 0000B保存结果到组结果寄存器 GxRES0 … 1111B保存结果到组结果寄存器 GxRES15 后台源的结果目标 0B 保存结果到所选择的组结果寄存器 1B 保存结果到全局结果寄存器 结果位置 0B 以左对齐方式保存结果 1B 以右对齐方式保存结果 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-99 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 BWDCH BWDEN 0 位 [29:28] 30 31 类型 rw rw r 描述 断线检测通道 00B 选择 VAREF 01B 选择 VAGND 10B 保留 11B 保留 断线检测使能 0B 正常操作 1B 使能额外的准备阶段 保留,读出值为 0,应写入 0 1) 当 BNDSELX ≠ 0000B 时,位域 BNDSELU 和 BNDSELL 被级联,并选择相应的结果寄存器作为下边界。 2) 边界范围被定义为这样一个区域:结果小于或等于所选择的上边界并且大于或等于所选择的下边界,见 16.8.4 节。 3) 结果是所选结果寄存器中的位 FCR。 4) 有些通道不能选择备用参考。 GxICLASS0 (x = 0 - 1) 输入类寄存器 0, 组 x GxICLASS1 (x = 0 - 1) 输入类寄存器 1, 组 x GLOBICLASSy (y = 0 - 1) 输入类寄存器 y, 全局 (x * 0400H + 04A0H) (x * 0400H + 04A4H) (00A0H + y * 0004H) 复位值 : 0000 0000H 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 00000 rrrrr CME rw 000 rrr STCE rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000 rrrrr CMS rw 000 rrr STCS rw 域 STCS 位 类型 描述 [4:0] rw 标准转换的采样时间控制 在最小采样时间 (2 个模拟时钟周期)基础上要额 外增加的时钟周期数: 编码和结果采样时间见表 16-11。 对于外部通道转换,可使用来自位域 STCE 的值。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-100 V1.0, 2013-03 请遵守产品信息使用协议 域 0 CMS 0 STCE 0 CME 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [7:5] [10:8] [15:11] [20:16] [23:21] [26:24] [31:27] 类型 r rw r rw r rw r 描述 保留,读出值为 0,应写入 0 标准转换的转换模式 000B 12 位转换 001B 10 位转换 010B 8 位转换 011B 保留 100B 保留 101B 10 位快速比较模式 110B 保留 111B 保留 保留,读出值为 0,应写入 0 EMUX 转换的采样时间控制 在最小采样时间 (2 个模拟时钟周期)基础上要额 外增加的时钟周期数: 编码和结果采样时间见表 16-11。 对于标准通道转换,可使用来自位域 STCS 的值。 保留,读出值为 0,应写入 0 EMUX 转换的转换模式 000B 12 位转换 001B 10 位转换 010B 8 位转换 011B 保留 100B 保留 101B 10 位快速比较模式 110B 保留 111B 保留 保留,读出值为 0,应写入 0 表 16-11 采样时间编码 STCS / STCE 额外时钟周期 0 0000B 0 0 0001B 1 … … 0 1111B 15 1 0000B 16 1 0001B 32 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-101 采样时间 2 / fADCI 3 / fADCI … 17 / fADCI 18 / fADCI 34 / fADCI V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-11 采样时间编码 ( 续表 ) STCS / STCE 额外时钟周期 … … 1 1110B 240 1 1111B 256 采样时间 … 242 / fADCI 258 / fADCI 16.16.6 结果寄存器 组结果控制寄存器选择一个给定组的结果寄存器的行为。 G0RCRy (y = 0 - 15) 组 0 结果控制寄存器 y G1RCRy (y = 0 - 15) 组 1 结果控制寄存器 y 31 30 29 28 27 SRG EN 0 rw r (0680H + y * 0004H) (0A80H + y * 0004H) 26 25 24 23 22 21 20 FEN WFR 0 rw rw r DMM rw 复位值 : 0000 0000H 复位值 : 0000 0000H 19 18 17 16 DRCTR rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 r 域 0 DRCTR DMM 0 位 [15:0] [19:16] [21:20] [23:22] 类型 r rw rw r 描述 保留,读出值为 0,应写入 0 数据缩减控制 定义如何将结果值保存 / 累加到该寄存器作为最终结 果。数据缩减计数器 DRC 可从该位域加载。 位域 DRCTR 的功能由位域 DMM 决定。 数据修改模式 00B 标准数据缩减 ( 累加 ) 01B 结果滤波模式1) 10B 差分模式 11B 保留 见 16-40 页 “ 数据修改 ” 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-102 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 类型 描述 WFR FEN 24 rw [26:25] rw 待读模式使能 0B 覆盖模式 1B 使能该寄存器的待读模式 FIFO 模式使能 00B 分离结果寄存器 01B FIFO 结构的一部分: 复制每个新的有效结果 10B 最大值模式: 如果新值更大,复制新的结果。 11B 最小值模式: 如果新值更小,复制新的结果 0 [30:27] r 保留,读出值为 0,应写入 0 SRGEN 31 rw 服务请求产生使能 0B 无服务请求 1B 发生结果事件后发出服务请求 1) 当位域 DMM ≠ 01B 时,滤波器寄存器被清零。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-103 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 组结果寄存器为一个给定组的所有通道提供可选择的存储位置。 注: 快速比较模式中使用的预设值被写入到相应的结果寄存器。调试结果寄存器是不 可写的。 G0RESy (y = 0 - 15) 组 0 结果寄存器 y G1RESy (y = 0 - 15) 组 1 结果寄存器 y (0700H + y * 0004H) (0B00H + y * 0004H) 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VF FCR rh rh CRS rh EMUX rh CHNR rh DRC rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT rwh 域 RESULT DRC CHNR EMUX 位 [15:0] [19:16] [24:20] [27:25] 类型 rwh rh rh rh 描述 最近一次转换的结果 该位域中结果位的位置取决于所配置的工作模式, 请参见 16.11.2 节。 数据缩减计数器 指示还要被累加到最终结果的转换值的数目。当位 域 DRC 变为 0 时 (通过减 1 计数或重新加载),最 终结果可用,有效标志 VF 被置位。 见 16-40 页 “ 数据修改 ” 通道号 指示与位域 RESULT 中的值对应的通道号。 外部多路复用器设置 指示外部多路复用器的设置,与位域 RESULT 中的 值对应。 注: 仅在 GxRES0 中可用。 如果需要 EMUX 信息,使用 GxRES0。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-104 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 CRS FCR VF 位 [29:28] 30 31 类型 rh rh rh 描述 转换请求源 指示请求源,位域 RESULT 中的结果值属于该请求 源所请求的转换。 00B 请求源 0 01B 请求源 1 10B 请求源 2 11B 保留 快速比较结果 指示在快速比较模式进行的一次操作的结果。 0B 信号电平低于比较值 1B 信号电平高于比较值 有效标志 指示在位域 RESULT 或位 FCR 中有一个新结果。 0B 无新结果可用 1B 位域 RESULT 被更新为新结果值但尚未被读 取,或位 FCR 被更新。 组结果寄存器的调试模式提供对一个给定组的所有结果寄存器的访问,而不清除有效标 志。 G0RESDy (y = 0 - 15) 组 0 结果寄存器 y, 调试 G1RESDy (y = 0 - 15) 组 1 结果寄存器 y, 调试 (0780H + y * 0004H) (0B80H + y * 0004H) 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VF FCR rh rh CRS rh EMUX rh CHNR rh DRC rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT rh 域 RESULT 位 [15:0] 类型 描述 rh 最新转换结果 该位域中的结果位的位置取决于所配置的工作模式。 参见 16.11.2 节。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-105 V1.0, 2013-03 请遵守产品信息使用协议 域 DRC CHNR EMUX CRS FCR VF XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [19:16] [24:20] [27:25] [29:28] 30 31 类型 rh rh rh rh rh rh 描述 数据缩减计数器 指示还要被累加作为最终结果的转换值的数目。当 位域 DRC 变为 0 时 (通过减 1 计数或重新加载), 最终结果可用,有效标志 VF 被置位。 见 16-40 页 “ 数据修改 ” 通道号 指示与位域 RESULT 中的值对应的通道号。 外部多路复用器设置 指示外部多路复用器的设置,与位域 RESULT 中的 值对应。 注: 仅在 GxRES0 中可用。 如果需要 EMUX 信息,使用 GxRES0。 转换请求源 指示请求源,位域 RESULT 中的结果值属于该请求 源所请求的转换。 00B 请求源 0 01B 请求源 1 10B 请求源 2 11B 保留 快速比较结果 指示在快速比较模式进行的一次操作的结果。 0B 信号电平低于比较值 1B 信号电平高于比较值 有效标志 指示在位域 RESULT 或位 FCR 中有一个新结果。 0B 无新结果可用 1B 位域 RESULT 被新结果值更新但尚未被读取, 或位 FCR 已被更新。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-106 V1.0, 2013-03 请遵守产品信息使用协议 全局结果控制寄存器选择全局结果寄存器的行为。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GLOBRCR 全局结果控制寄存器 (0280H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SRG EN 0 0 0 0 0 0 WFR 0 0 0 0 rw r r r r r r rw r r r r DRCTR rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0000000000000000 rrrrrrrrrrrrrrrr 域 位 类型 描述 0 [15:0] r 保留,读出值为 0,应写入 0 DRCTR [19:16] rw 数据缩减控制 定义如何将结果值保存 / 累加到寄存器作为最终结 果。数据缩减计数器 DRC 可从该位域加载。 0000B 禁止数据缩减 其他:见 16-41 页 “ 位域 DRCTR 的功能 ” 1) 0 [23:20] r 保留,读出值为 0,应写入 0 WFR 0 24 rw [30:25] r 待读模式使能 0B 覆盖模式 1B 使能该寄存器的待读模式 保留,读出值为 0,应写入 0 SRGEN 31 rw 服务请求产生使能 0B 无服务请求 1B 在发生一次结果事件后产生服务请求 1) 对于全局结果寄存器,只有标准数据缩减是可用的,即假定 DMM 为 00B。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-107 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 全局结果寄存器为所有组的所有通道提供一个公共的存储位置。 GLOBRES 全局结果寄存器 GLOBRESD 全局结果寄存器,调试 (0300H) (0380H) 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 VF FCR rwh rh CRS rh EMUX rh CHNR rh GNR rh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 RESULT rwh 域 RESULT GNR CHNR EMUX CRS FCR 位 [15:0] [19:16] [24:20] [27:25] [29:28] 30 类型 rwh rh rh rh rh rh 描述 最新转换结果 该位域中的结果位的位置取决于所配置的工作模式 1)。 参见 16.11.2 节。 组号 指示位域 CHNR 中的通道号所在的组。 通道号 指示与位域 RESULT 中的值对应的通道号。 外部多路复用器设置 指示与位域 RESULT 中的值对应的外部多路复用器 的设置。 转换请求源 指示请求源,位域 RESULT 中的结果值属于该请求 源所请求的转换。 快速比较结果 指示在快速比较模式下进行的一次操作的结果。 0B 信号电平低于比较值 1B 信号电平高于比较值 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-108 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 类型 描述 VF 31 rwh 有效标志 指示在位域 RESULT 或位 FCR 中有一个新结果。 0B 读访问:无新有效数据可用 写访问:无效 1B 读访问:位域 RESULT 包含有效数据并且尚 未被读取,或者位 FCR 已被更新。 写访问:清除该有效标志和数据缩减计数器。 ( 盖写一次硬件置位操作 )1) 1) 只能写入寄存器 GLOBRES 中,不能写到寄存器 GLOBRESD 中。 有效标志寄存器包含所有结果寄存器的有效标志。 GxVFR (x = 0 - 1) 有效标志寄存器 , 组 x (x * 0400H + 05F8H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VF15 VF14 VF13 VF12 VF11 VF10 VF9 VF8 VF7 VF6 VF5 VF4 VF3 VF2 VF1 VF0 rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh 域 VFy (y = 0 - 15) 0 位 y [31:16] 类型 rwh r 描述 结果寄存器 x 的有效标志 指示在位域 RESULT 或位 FCR 中有一个新结果。 0B 读访问:无新有效数据可用 写访问:无效 1B 读访问:结果寄存器 x 包含有效数据并且尚未 被读取,或位 FCR 已被更新。 写访问:清除该有效标志和寄存器 GxRESy 中的位域 DRC。 ( 盖写一次硬件置位操作 ) 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-109 V1.0, 2013-03 请遵守产品信息使用协议 16.16.7 校准寄存器 校准控制寄存器 CALCTR 选择基本校准功能。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) SHS0_CALCTR 校准控制寄存器 (4803 40BCH) 复位值 : 0010 0400H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 SU CAL 0 CALMAX 0 wr rw r SUCALVAL rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00 rr CALGNSTC rw 0 0 0 0 0 0 0 CAL ORD r r r r r r r rw 域 CALORD 0 CALGNSTC 0 SUCALVAL CALMAX 0 位 0 [7:1] [13:8] [15:14] [22:16] [29:24] 30 类型 rw r rw r rw rw r 描述 校准顺序 0B 先转换后校准 1B 先校准后转换 保留,读出值为 0,应写入 0 增益校准采样时间控制 定义增益校准循环采样阶段的持续时间。 00H 保留 其他:tSGN = CALGNSTC / fSH 注: 无需用户控制。 保留,读出值为 0,应写入 0 初始校准循环 为初始校准定义校准序列的数量。 注: 无需用户控制。 校准最大时间 定义直到下一次校准的最大时间: tMAX = 512 / fSH × (CALMAX + 1) 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-110 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 类型 描述 SUCAL 31 w 初始校准 位 SUCAL 的 0-1 跳变触发转换器的初始校准阶段 1)。 当校准阶段开始时, SUCAL 被自动清零。 0B 无操作 1B 启动初始校准阶段 ( 位域 SHSCFG.STATE 中 的指示标志 ) 1) 在模块 VADCDIG 中,启动校准也可以由寄存器 GLOBCFG 中的位 SUCAL 触发。 增益校准控制寄存器 CALGCx 配置相关采样保持单元的增益校准功能。校准值由校准机 制自动决定。可读取校准值来补偿因使用另一组的备用参考所引入的误差。 SHS0_CALGCx (x = 0 - 1) 增益校准控制寄存器 x (4803 40C0H + x * 4H) 复位值 : 2000 2000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 GNA WC 0 wr CALGNVALA rwh 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 GNS WC 0 wr CALGNVALS rwh 域 CALGNVALS 0 GNSWC CALGNVALA 0 GNAWC 位 [13:0] 14 15 [29:16] 30 31 类型 rwh r w rwh r w 描述 增益校准值,标准参考 由校准步骤来修改,控制 DAC 的增益。 保留,读出值为 0,应写入 0 增益校准写控制,标准 0B 不能写增益校准参数 1B 可以写 CALGNVALS 增益校准值,备用参考 由校准步骤来修改,控制 DAC 的增益。 保留,读出值为 0,应写入 0 增益校准写控制,备选 0B 不能写增益校准参数 1B 可以 CALGNVALA 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-111 V1.0, 2013-03 请遵守产品信息使用协议 增益控制寄存器 GNCTRx0 为每个输入选择增益。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) SHS0_GNCTR00 增益控制寄存器 00 SHS0_GNCTR10 增益控制寄存器 10 (4803 4180H) (4803 4190H) 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 GAIN7 rw GAIN6 rw GAIN5 rw GAIN4 rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 GAIN3 rw GAIN2 rw GAIN1 rw GAIN0 rw 域 GAINz (z = 0 - 7) 位 类型 [z*4+3: rw z*4] 描述 增益控制 z 0000B 增益因子 = 1 0001B 增益因子 = 3 0010B 增益因子 = 6 0011B 增益因子 = 12 其他:保留 注: 第一个索引 (x0) 指示相关联的采样保持单元。 通道号为 z。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-112 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.16.8 其他寄存器 别名寄存器可用另一通道号替代通道 CH0 和 CH1 的通道号。器件复位后,寄存器中的 默认值禁止这种重定向。 GxALIAS (x = 0 - 1) 别名寄存器,组 x (x * 0400H + 04B0H) 复位值 : 0000 0100H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0000000000000000000 rrrrrrrrrrrrrrrrrrr ALIAS1 rw 000 rrr ALIAS0 rw 域 ALIAS0 0 ALIAS1 0 位 [4:0] [7:5] [12:8] [31:13] 类型 rw r rw r 描述 CH0 转换请求的别名值 指示被转换的通道,而不是通道 CH0。转换操作仍 使用 CH0 的通道设置。 保留,读出值为 0,应写入 0 CH1 转换请求的别名值 指示被转换的通道,而不是通道 CH1。转换操作仍 使用 CH1 的通道设置。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-113 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 本地边界寄存器 GxBOUND 定义快速比较模式的组专用边界值或增量极限。 全局边界寄存器 GLOBBOUND 为所有的通道定义通用比较值。 使用位域的左 12/10/8 位,这取决于转换宽度。对于 10/8 位结果,低 2/4 位必须是 0。 GxBOUND (x = 0 - 1) 边界选择寄存器 , 组 x GLOBBOUND 全局边界选择寄存器 (x * 0400H + 04B8H) (00B8H) 复位值 : 0000 0000H 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0000 rrrr BOUNDARY1 rw 0000 rrrr BOUNDARY0 rw 域 BOUNDARY0 0 BOUNDARY1 0 位 [11:0] [15:12] [27:16] [31:28] 类型 rw r rw r 描述 用于极限检测的边界值 0 标准模式:该值与左对齐的转换结果比较。 快速比较模式:该值被加到参考值 (向上增量)。 保留,读出值为 0,应写入 0 用于极限检测的边界值 1 标准模式:该值与左对齐的转换结果比较。 快速比较模式:从参考值中减去该值 (向下增量)。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-114 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 边界标志寄存器保持自己的边界标志和为每个标志选择激活条件和输出信号极性的位。 GxBFL (x = 0 - 1) 边界标志寄存器 , 组 x 31 30 29 28 27 00000 rrrrr (x * 0400H + 04C8H) 26 25 24 23 22 21 000000 rrrrrr 复位值 : 0000 0000H 20 19 18 17 16 0 BFI BFI BFI BFI 3210 r rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 BFA BFA BFA BFA 3210 0 0 0 0 BFL BFL BFL BFL 3210 r r r r rw rw rw rw r r r r rh rh rh rh 域 BFLy (y = 0 - 3) 0 BFAy (y = 0 - 3) 0 BFIy (y = 0 - 3) 0 位 y [7:4] 8+y [15:12] 16 + y [31:20] 类型 rh r rw r rw r 描述 边界标志 y 0B 无效状态: 结果未超越边界 (见位域 BFAy), 或所选门控信号不活动。 或该边界标志被禁止 1B 有效状态: 结果超越边界。 保留,读出值为 0,应写入 0 边界标志 y 激活选择 0B 如果结果大于所定义的边界或比较值,则置位 边界标志 BFLy ;如果低于该值,则清除该边 界标志。 1B 如果结果小于所定义的边界或比较值,则置位 边界标志 BFLy ;如果高于该值,则清除该边 界标志。 保留,读出值为 0,应写入 0 边界标志 y 取反控制 0B 直接使用 BFLy 1B 取反相值,使用 BFLy 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-115 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 边界标志软件寄存器通过软件提供每个标志的设置或清零。 GxBFLS (x = 0 - 1) 边界标志软件寄存器 , 组 x (x * 0400H + 04CCH) 31 30 29 28 27 26 25 24 23 22 21 00000000000 rrrrrrrrrrr 复位值 : 0000 0000H 20 19 18 17 16 0 BFS BFS BFS BFS 3210 r wwww 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 BFC BFC BFC BFC 3210 r r r r r r r r r r r r wwww 域 BFCy (y = 0 - 3) 0 BFSy (y = 0 - 3) 0 位 y [15:4] 16 + y [31:20] 类型 w r w r 描述 边界标志 y 清零 0B 无操作 1B 将位 BFLy 清零 保留,读出值为 0,应写入 0 边界标志 y 置位 0B 无操作 1B 将位 BFLy 置位 保留,读出值为 0,应写入 0 注: 如果边界标志与快速比较模式一起使用,建议不要将来自其他通道的结果定向到 相应的结果寄存器。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-116 V1.0, 2013-03 请遵守产品信息使用协议 边界标志控制寄存器选择边界标志的基本操作。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxBFLC (x = 0 - 1) 边界标志控制寄存器,组 x (x * 0400H + 04D0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BFM 3 rw BFM 2 rw BFM 1 rw BFM 0 rw 域 BFM0, BFM1, BFM2, BFM3 0 位 [3:0], [7:4], [11:8], [15:12] [31:16] 类型 rw r 描述 边界标志 y 模式控制 0000B 禁止边界标志,BFLy 不变 0001B 总是使能边界标志 (按照比较结果)。 0010B 当源 0 的门控活动时,使能边界标志;当门控 不活动时,清除 BFLy 。 0011B 当源 1 的门控活动时,使能边界标志;当门控 不活动时,清除 BFLy 。 其他:保留 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-117 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 边界标志节点指针寄存器将信号 GxBFLOUTy 定向到与其他模块相连的备选片上连接 (除了组专用输出之外) 。可能的目标是相应的公共服务请求线或公共边界标志输出 (CBFL0 … CBFL3)。 GxBFLNP (x = 0 - 1) 边界标志节点指针寄存器 , 组 x (x * 0400H + 04D4H) 31 30 29 28 27 26 25 24 23 22 21 复位值 : 0000 FFFFH 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BFL3NP rw BFL2NP rw BFL1NP rw BFL0NP rw 域 BFL0NP, BFL1NP, BFL2NP, BFL3NP 0 位 [3:0], [7:4], [11:8], [15:12] [31:16] 类型 rw r 描述 边界标志 y 节点指针 0000B 选择公共边界标志输出 0 … 0011B 选择公共边间标志输出 3 0100B 选择公共服务请求线 C0SR0 … 0111B 选择公共服务请求线 C0SR3 1111B 禁止,无公共输出信号。 其他:保留 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-118 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 同步控制寄存器为并行转换控制内核的同步。 注: 仅当转换组的所有 ADC 内核中的位域 GxARBCFG.ANONS = 00B 时,才能对寄存 器 GxSYNCTR 编程。然后将主内核的位域 ANONC 设置为 11B 。 GxSYNCTR (x = 0 - 1) 同步控制寄存器 , 组 x (x * 0400H + 04C0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 EVA LR1 0 0 STSEL r r r r r r r r r r r rw r r rw 域 STSEL 0 EVALR1 0 位 [1:0] [3:2] 4 [31:5] 类型 rw r rw r 描述 启动选择 控制 ADC 内核的同步机制。 00B 该内核是同步主内核: 使用自己的位域 GxARBCFG.ANONC 01B 该内核是同步从内核: 控制信息来自输入 CI1 10B 保留 11B 保留 注: 控制输入 CIx 见图 16-26,连接的内核见表 16-13。 保留,读出值为 0,应写入 0 评估就绪输入 R1 为一个转换组的一个内核使能就绪输入信号。 0B 无就绪输入控制 1B 就绪输入 R1 被看做该转换组的一次并行转换 的开始。 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-119 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxEMUXCTR (x = 0 - 1) 外部多路复用器控制寄存器 , 组 x (x * 0400H + 05F0H) 31 30 29 28 27 26 25 24 23 22 21 20 EMX EMX EMX EMX WC CSS ST COD w rw rw rw EMUX MODE rw EMUX CH rw 复位值 : 0000 0000H 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000 rrrrr EMUX ACT rh 00000 rrrrr EMUX SET rw 域 EMUXSET 0 EMUXACT 0 EMUXCH 0 EMUXMODE 位 [2:0] [7:3] [10:8] [15:11] [25:16] [25:21] [27:26] 类型 rw r rh r rw r rw 描述 外部多路复用控制起始选择1) 为外部多路复用控制器定义初始设置 保留,读出值为 0,应写入 0 外部多路复用器当前选择 定义外部多路复用器选择的当前值。该位域从 EMUXSET 位域加载,并根据由位域 EMUXMODE 选择的工作模式修改。 保留,读出值为 0,应写入 0 外部多路复用器通道选择 定义外部多路复用器控制所应用的通道 EMXCSS = 0:通道号 低 5 位选择一个任意的通道 ( 有效数值受可用通道数的限制,未使用的位应为 0) EMXCSS = 1:通道使能 每个位使能相关联的通道 ( 可选择 / 使能多个通道 ) 保留,读出值为 0,应写入 0 外部多路复用器模式 00B 软件控制 ( 无硬件操作 ) 01B 稳定模式 ( 使用 EMUXSET 的值 ) 10B 单步模式 1)2) 11B 序列模式 1) 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-120 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 EMXCOD EMXST EMXCSS 位 类型 描述 28 rw 外部多路复用器编码方案 0B 用二进制输出通道号 1B 用格雷码输出通道号 29 rw 外部多路复用器采样时间控制 0B 当设置改变时,使用 STCE 1B 对一个外部通道的每次转换,使用 STCEl 30 rw 外部多路复用通道选择方式 0B 通道号: 位域 EMUXCH 选择一个任意通道 1B 通道使能: 位域 EMUXCH 的每一位选择 EMUX 控制的相 关通道 EMXWC 31 w EMUX 配置的写控制 0B 不能写 EMUX 配置。 1B 可以写位域 EMXMODE、 EMXCOD、 EMXST、 EMXCSS 1) 对单步模式和序列模式:在选择相应的模式之前选择起始值。 2) 每当一个 EMUX 使能的通道被转换时,单步模式都会修改 EMUX 通道号。因此,单步模式在只用一个通道工 作时为最佳,因为否则的话可能要跳过一些外部通道。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-121 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 寄存器 EMUXSEL 是一个全局寄存器,它分配一个任意组到每个 EMUX 接口。 EMUXSEL 外部多路复用器选择寄存器 (03F0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000000 rrrrrrrr EMUX GRP1 rw EMUX GRP0 rw 域 EMUXGRP0, EMUXGRP1 位 [3:0], [7:4] 类型 rw 描述 接口 x 的外部多路复用器组 定义组,其外部多路复用器控制信号连接到 EMUX 接口 x。1) 0 [31:8] r 保留,读出值为 0,应写入 0 1) 与每个 EMUX 接口相关联的引脚列于 16-136 页的表 16-15 “XMC1300 中的数字连接 ”。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-122 V1.0, 2013-03 请遵守产品信息使用协议 Σ-Δ 循环控制寄存器 LOOP 配置 Σ-Δ 循环的功能。 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) SHS0_LOOP 循环控制寄存器 (4803 4050H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 LP EN1 0 0 0 0 0 0 LP SH1 0 0 0 rw r r r r r r rw r r r LPCH1 rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LP EN0 0 0 0 0 0 0 LP SH0 0 0 0 rw r r r r r r rw r r r LPCH0 rw 域 LPCH0, LPCH1 0 LPSH0, LPSH1 0 LPEN0, LPEN1 0 0 位 [4:0], [20:16] [7:5] 8, 24 [14:9] 15, 31 [23:21] [30:25] 类型 rw r rw r rw r r 描述 循环 y 通道 选择输入通道,应使能该通道的 Σ-Δ 循环功能。 保留,读出值为 0,应写入 0 循环 y 采样保持单元 选择采样保持单元,将所指定的通道分配给该单元。 保留,读出值为 0,应写入 0 循环 y 使能 0H 关:标准操作 1H 开:Σ-Δ 循环活动 保留,读出值为 0,应写入 0 保留,读出值为 0,应写入 0 注: 位域LPSHy和LPCHy一起选择一个单独的与相应的Σ-Δ循环相关联的输入通道。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-123 V1.0, 2013-03 请遵守产品信息使用协议 16.16.9 服务请求寄存器 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxSEFLAG (x = 0 - 1) 源事件标志寄存器 , 组 x (x * 0400H + 0588H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEV SEV 10 r r r r r r r r r r r r r r rwh rwh 域 SEV0, SEV1 0 位 0, 1 [31:2] 类型 rwh r 描述 源事件 0/1 0B 无源事件 1B 发生了一个源事件 保留,读出值为 0,应写入 0 注: 软件可置位寄存器 GxSEFLAG 中的所有标志,并可通过向相关位写 1 来触发相应 的事件。写 0 无效。 软件可通过向寄存器 GxSEFCLR 中相应的位写 1 来清除寄存器 GxREFLAG 中的 所有标志。 GxCEFLAG (x = 0 - 1) 通道事件标志寄存器 , 组 x (x * 0400H + 0580H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 0 CEV CEV CEV CEV CEV CEV CEV CEV 76543210 r rwh rwh rwh rwh rwh rwh rwh rwh 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-124 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 CEVy (y = 0 - 7) 0 位 y [31:8] 类型 rwh r 描述 通道 y 的通道事件 0B 无通道事件 1B 发生了一个通道事件 保留,读出值为 0,应写入 0 注: 软件可置位寄存器 GxCEFLAG 中的所有标志,并可通过向相关位写 1 到来触发相 应的事件。写 0 无效。 软件可通过向寄存器 GxCEFCLR 中的相应位写 1 来清除寄存器 GxREFLAG 中的 所有标志。 GxREFLAG (x = 0 - 1) 结果事件标志寄存器 , 组 x (x * 0400H + 0584H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 REV REV REV REV REV REV REV REV REV REV REV REV REV REV REV REV 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh rwh 域 REVy (y = 0 - 15) 0 位 类型 y rwh [31:16] r 描述 结果寄存器 y 的结果事件 0B 无结果事件 1B 新结果被保存到寄存器 GxRESy 保留,读出值为 0,应写入 0 注: 软件可置位寄存器 GxREFLAG 中的所有标志,并可通过向相关位写 1 来触发相应 的事件。写 0 无效。 软件可通过向寄存器 GxREFCLR 中的相应位写 1 来清除寄存器 GxREFLAG 中的 所有标志。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-125 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxSEFCLR (x = 0 - 1) 源事件标志清除寄存器 , 组 x (x * 0400H + 0598H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEV SEV 10 r r r r r r r r r r r r r r ww 域 SEV0, SEV1 0 位 0, 1 [31:2] 类型 w r 描述 清除源事件 0/1 0B 无操作 1B 清除 GxSEFLAG 中的源事件标志 保留,读出值为 0,应写入 0 GxCEFCLR (x = 0 - 1) 通道事件标志清除寄存器 , 组 x (x * 0400H + 0590H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 0000000 rrrrrrr 876543210 0 CEV CEV CEV CEV CEV CEV CEV CEV 76543210 r wwwwwwww 域 CEVy (y = 0 - 7) 0 位 y [31:8] 类型 w r 描述 清除通道 y 的通道事件 0B 无操作 1B 清除 GxCEFLAG 中的通道事件标志 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-126 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxREFCLR (x = 0 - 1) 结果事件标志清除寄存器 , 组 x (x * 0400H + 0594H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 REV REV REV REV REV REV REV REV REV REV REV REV REV REV REV REV 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 wwwwwwwwwwwwwwww 域 REVy (y = 0 - 15) 0 位 y [31:16] 类型 w r 描述 清除结果寄存器 y 结果事件 0B 无操作 1B 清除 GxREFLAG 中的结果事件标志 保留,读出值为 0,应写入 0 GLOBEFLAG 全局事件标志寄存器 (00E0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 REV SEV 0 0 0 0 0 0 0 GLB 0 0 0 0 0 0 0 GLB CLR CLR r r r r r r rwr r r r r r rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 REV GLB 0 0 0 0 0 0 0 SEV GLB r r r r r r r rwh r r r r r r r rwh 域 SEVGLB 0 位 类型 描述 0 rwh 源事件 ( 后台 ) 0B 无源事件 1B 发生了一个源事件 [7:1] r 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-127 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 REVGLB 0 SEVGLBCLR 0 REVGLBCLR 0 位 8 [15:9] 16 [23:17] 24 [31:25] 类型 rwh r w r w r 描述 全局结果事件 0B 无结果事件 1B 有新结果被保存到寄存器 GLOBRES 保留,读出值为 0,应写入 0 清除源事件 ( 后台 ) 0B 无操作 1B 清除源事件标志 SEVGLB 保留,读出值为 0,应写入 0 清除全局结果事件 0B 无操作 1B 清除结果事件标志 REVGLB 保留,读出值为 0,应写入 0 注: 软件可以置位标志 REVGLB 和 SEVGLB,并可通过向相关位写 1 来触发相应的事 件。写 0 无效。 软件可以通过分别向位 REVGLBCLR 和 SECGLBCLR 写 1 来清除这些标志。 将两个位(如SEVGLB 和SEVGLBCLR)同时置1会清除相应标志(如SEVGLB)。 GxSEVNP (x = 0 - 1) 源事件节点指针寄存器,组 x (x * 0400H + 05C0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000000 rrrrrrrr SEV1NP rw SEV0NP rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-128 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 位 类型 描述 SEV0NP, SEV1NP 0 [3:0], rw [7:4] [31:8] r 服务请求节点指针源事件 i1) 连接相应的事件触发信号到一个服务请求线 (节 点)。 0000B选择组 x 的服务请求线 0 … 0011B选择组 x 的服务请求线 3 0100B选择共享服务请求线 0 … 0111B选择共享服务请求线 3 1xxxB 保留 注: 对于共享服务请求线,见表16-12中的公共组。 保留,读出值为 0,应写入 0 1) 源 0 是一个 8 级队列源,源 1 是一个通道扫描源。 GxCEVNP0 (x = 0 - 1) 通道事件节点指针寄存器 0, 组 x (x * 0400H + 05A0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 CEV7NP rw CEV6NP rw CEV5NP rw CEV4NP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CEV3NP rw CEV2NP rw CEV1NP rw CEV0NP rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-129 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 CEV0NP, CEV1NP, CEV2NP, CEV3NP, CEV4NP, CEV5NP, CEV6NP, CEV7NP 位 类型 [3:0], rw [7:4], [11:8], [15:12], [19:16], [23:20], [27:24], [31:28] 描述 服务请求节点指针通道事件 i 连接相应的事件触发信号到一个服务请求线 (节 点)。 0000B选择组 x 的服务请求线 0 … 0011B选择组 x 的服务请求线 3 0100B选择共享服务请求线 0 … 0111B选择共享服务请求线 3 1xxxB 保留 注: 对于共享服务请求线,见表16-12中的公共组。 GxREVNP0 (x = 0 - 1) 结果事件节点指针寄存器 0, 组 x (x * 0400H + 05B0H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 REV7NP rw REV6NP rw REV5NP rw REV4NP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 REV3NP rw REV2NP rw REV1NP rw REV0NP rw 域 REV0NP, REV1NP, REV2NP, REV3NP, REV4NP, REV5NP, REV6NP, REV7NP 位 类型 [3:0], rw [7:4], [11:8], [15:12], [19:16], [23:20], [27:24], [31:28] 描述 服务请求节点指针结果事件 i 连接相应的事件触发信号与一个服务请求线 (节 点)。 0000B选择组 x 的服务请求线 0 … 0011B选择组 x 的服务请求线 3 0100B选择共享服务请求线 0 … 0111B选择共享服务请求线 3 1xxxB 保留 注: 对于共享服务请求线,见表16-12中的公共组。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-130 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) GxREVNP1 (x = 0 - 1) 结果事件结点指针寄存器 1, 组 x (x * 0400H + 05B4H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 REV15NP rw REV14NP rw REV13NP rw REV12NP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 REV11NP rw REV10NP rw REV9NP rw REV8NP rw 域 REV8NP, REV9NP, REV10NP, REV11NP, REV12NP, REV13NP, REV14NP, REV15NP 位 类型 [3:0], rw [7:4], [11:8], [15:12], [19:16], [23:20], [27:24], [31:28] 描述 服务请求节点指针结果事件 i 连接相应的事件触发信号到一个服务请求线 (节 点)。 0000B选择组 x 的服务请求线 0 … 0011B选择组 x 的服务请求线 3 0100B选择共享服务请求线 0 … 0111B选择共享服务请求线 3 1xxxB 保留 注: 对于共享服务请求线,见表16-12中的公共组。 GLOBEVNP 全局事件节点指针寄存器 (0140H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 000000000000 rrrrrrrrrrrr REV0NP rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 000000000000 rrrrrrrrrrrr SEV0NP rw 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-131 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 域 SEV0NP 0 REV0NP 0 位 [3:0] [15:4] [19:16] [31:20] 类型 rw r rw r 描述 服务请求节点指针后台源 连接相应的事件触发信号到一个服务请求线 (节 点)。 0000B选择公共服务请求组 0 的共享服务请求线 0 … 0011B选择公共服务请求组 0 的共享服务请求线 3 其他:保留 注: 对于共享服务请求线,见表16-12中的公共组。 保留,读出值为 0,应写入 0 服务请求节点指针全局结果 连接相应的事件触发信号到一个服务请求线 (节 点)。 0000B 选择公共服务请求组 0 的共享服务请求线 0 … 0011B 选择公共服务请求组 0 的共享服务请求线 3 其他:保留 注: 对于共享服务请求线,见表16-12中的公共组。 保留,读出值为 0,应写入 0 GxSRACT (x = 0 - 1) 服务请求软件激活触发器,组 x (x * 0400H + 05C8H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0000000000000000 rrrrrrrrrrrrrrrr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 AS AS AS AS SR3 SR2 SR1 SR0 0 0 0 0 0 0 AG AG SR1 SR0 r r r r wwww r r r r r r ww 域 AGSRy (y = 0 - 1) 位 类型 描述 y w 激活组服务请求节点 y 0B 无操作 1B 激活相关联的服务请求线 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-132 V1.0, 2013-03 请遵守产品信息使用协议 域 0 ASSRy (y = 0 - 3) 0 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 位 [7:2] 8+y [31:12] 类型 r w r 描述 保留,读出值为 0,应写入 0 激活共享服务请求节点 y 0B 无操作 1B 激活相关联的服务请求线 保留,读出值为 0,应写入 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-133 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 16.17 互连 本节描述 XMC1300 中 VADC 模块的具体实现,即与微控制器系统的结合。 16.17.1 产品的具体配置 功能描述部分以通用的形式描述了 A/D 转换器的功能和工作模式。本节概要性地介绍该 产品 (XMC1300)中的可用配置。 每个转换器组都配有一个独立的采样保持电路和一个专用的模拟输入多路复用器。 表 16-12 转换器组 G0 G1 XMC1300 中的通用转换器配置 输入通道 可选为备用 GND 的通道 12 位性能 0…7 8 0…7 8 校准的 采样保持 ADC 公共服务请求组 C0 C0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-134 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) XMC1300 中的同步组 XMC1300 中的转换器内核可以连接到同步组,以实现对多个输入通道的并行转换。 表 16-13 列出了可以被同步以实现并行转换的内核。 表 16-13 XMC1300 中的同步组 ADC 内核 同步组 由控制输入 CIx 选择的主内核1) CI02) CI1 ADC00 A ADC00 ADC01 ADC01 A ADC01 ADC00 1) 控制输入由寄存器 GxSYNCTR (x = 0 - 1) 中的位域 STSEL 选择。 根据位 EVALRx 选择相应的就绪输入。 2) 控制输入 CI0 总是选择相应 ADC 内核中自己的控制信号。这种选择是针对同步主内核或独立工作的情况。 16.17.2 XMC1300 中的模拟模块连接 VADC 模块接受多个模拟输入信号。模拟输入多路复用器从本产品中的可选信号中选择 将要转换的输入通道。 模拟输入通道的确切数量和到端口引脚的可用连接取决于产品型号 ( 见表 16-12)。 表 16-14 中列出了所有版本的 XMC1300 的 ADC 模拟输入通道。 表 16-14 XMC1300 中的模拟连接 信号 方向 源 / 目的 电源电压和参考电压 VDDM I VSSM I VAREF I VAGND I 组 0 的模拟输入 G0CH0 I G0CH1 I G0CH2 I G0CH3 I G0CH4 I G0CH5 I G0CH6 I G0CH7 I VDD VSS VDD VSS P2.6 P2.8 P2.9 P2.10 P2.11 P2.0 P2.1 P2.2 描述 正电源电压 负电源电压 正模拟参考 负模拟参考 组 0 的模拟输入通道 0 组 0 的模拟输入通道 1 组 0 的模拟输入通道 2 组 0 的模拟输入通道 3 组 0 的模拟输入通道 4 组 0 的模拟输入通道 5 组 0 的模拟输入通道 6 组 0 的模拟输入通道 7 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-135 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-14 XMC1300 中的模拟连接 ( 续表 ) 信号 方向 源 / 目的 描述 组 1 的模拟输入 G1CH0 I P2.8 组 1 的模拟输入通道 0 G1CH1 I P2.7 组 1 的模拟输入通道 1 G1CH2 I P2.10 组 1 的模拟输入通道 2 G1CH3 I P2.11 组 1 的模拟输入通道 3 G1CH4 I P2.9 组 1 的模拟输入通道 4 G1CH5 I P2.3 组 1 的模拟输入通道 5 G1CH6 I P2.4 组 1 的模拟输入通道 6 G1CH7 I P2.5 组 1 的模拟输入通道 7 16.17.3 XMC1300 中数字模块的连接 VADC 模块接受多个数字输入信号并产生多个输出信号。本节概要介绍这些信号与其它 片上模块的连接,以及通过端口引脚与外部资源的连接。 注: 触发和门控的控制位域选择相应的多路复用器输入。值 0000B … 1111B 选择后缀 为 -A … -P 的输入。 表 16-15 XMC1300 中的数字连接 信号 方向 源 / 目的 每组的门控输入 GxREQGTA I CCU40.ST3 GxREQGTB I CCU40.ST2 GxREQGTC I CCU40.ST1 GxREQGTD I CCU40.ST0 GxREQGTE I CCU80.ST3A GxREQGTF I CCU80.ST3 GxREQGTG I0 GxREQGTH I0 GxREQGTI GxREQGTJ GxREQGTK I (s) 保留 I (s) 保留 I (s) ERU0.PDOUT2 GxREQGTL I (s) ERU0.PDOUT3 描述 门控输入 A 门控输入 B 门控输入 C 门控输入 D 门控输入 E 门控输入 F 门控输入 G 门控输入 H 门控输入 I 门控输入 J 门控输入 K 门控输入 L 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-136 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-15 XMC1300 中的数字连接 ( 续表 ) 信号 GxREQGTM GxREQGTN GxREQGTO GxREQGTP GxREQGTSEL 方向 源 / 目的 I CCU80.ST0 I CCU80.ST1 I ERU0.PDOUT0 I ERU0.PDOUT1 O GxREQTRP1) 描述 门控输入 M 门控输入 N 门控输入 O 门控输入 E 相应源的所选门控信号 全局后台源的门控输入 BGREQGTA I BGREQGTB I BGREQGTC I BGREQGTD I BGREQGTE I BGREQGTF I BGREQGTG I BGREQGTH I BGREQGTI I (s) BGREQGTJ I (s) BGREQGTK I (s) BGREQGTL I (s) BGREQGTM I BGREQGTN I BGREQGTO I BGREQGTP I BGREQGTSEL O CCU40.ST3 CCU40.ST2 CCU40.ST1 CCU40.ST0 CCU80.ST3A CCU80.ST3 0 0 保留 保留 ERU0.PDOUT2 ERU0.PDOUT3 CCU80.ST0 CCU80.ST1 ERU0.PDOUT0 ERU0.PDOUT1 BGREQTRP1) 门控输入 A,后台源 门控输入 B,后台源 门控输入 C,后台源 门控输入 D,后台源 门控输入 E,后台源 门控输入 F,后台源 门控输入 G,后台源 门控输入 H,后台源 门控输入 I,后台源 门控输入 J,后台源 门控输入 K,后台源 门控输入 L,后台源 门控输入 M,后台源 门控输入 N,后台源 门控输入 O,后台源 门控输入 E,后台源 选择的门控信号 每组的触发输入 GxREQTRA I GxREQTRB I GxREQTRC I GxREQTRD I GxREQTRE I G0REQTRF I CCU40.SR2 触发输入 A CCU40.SR3 触发输入 B 0 触发输入 C 0 触发输入 D 0 触发输入 E BCCU0.TRIGOUT 触发输入 F 0 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-137 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-15 XMC1300 中的数字连接 ( 续表 ) 信号 G1REQTRF 方向 源 / 目的 描述 I BCCU0.TRIGOUT 触发输入 F 1 GxREQTRG GxREQTRH GxREQTRI GxREQTRJ GxREQTRK GxREQTRL GxREQTRM GxREQTRN GxREQTRO GxREQTRP I ERU0.IOUT2 I ERU0.IOUT3 I (s) CCU80.SR2 I (s) CCU80.SR3 I (s) 0 I (s) 0 I ERU0.IOUT0 I ERU0.IOUT1 I POSIF0.SR1 I GxREQGTSEL1) 触发输入 G 触发输入 H 触发输入 I 触发输入 J 触发输入 K 触发输入 L 触发输入 M 触发输入 N 触发输入 O 相应源的所选门控输入的扩展触发信号 GxREQTRSEL O - 相应源的所选触发信号 全局后台源的触发输入 BGREQTRA BGREQTRB BGREQTRC BGREQTRD BGREQTRE BGREQTRF I CCU40.SR2 触发输入 A,后台源 I CCU40.SR3 触发输入 B,后台源 I0 触发输入 C,后台源 I0 触发输入 D,后台源 I0 触发输入 E,后台源 I BCCU0.TRIGOUT 触发输入 F,后台源 0 BGREQTRG BGREQTRH BGREQTRI BGREQTRJ BGREQTRK BGREQTRL BGREQTRM BGREQTRN BGREQTRO BGREQTRP I ERU0.IOUT2 I ERU0.IOUT3 I (s) CCU80.SR2 I (s) CCU80.SR3 I (s) 0 I (s) 0 I ERU0.IOUT0 I ERU0.IOUT1 I POSIF0.SR1 I BGREQGTSEL1) 触发输入 G,后台源 触发输入 H,后台源 触发输入 I,后台源 触发输入 J,后台源 触发输入 K,后台源 触发输入 L,后台源 触发输入 M,后台源 触发输入 N,后台源 触发输入 O,后台源 后台源的所选门控输入的扩展触发信号 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-138 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-15 XMC1300 中的数字连接 ( 续表 ) 信号 方向 源 / 目的 描述 BGREQTRSEL O - 后台源的所选触发信号 系统内部连接 G0SAMPLE O- 指示输入信号采样阶段 G1SAMPLE O- 指示输入信号采样阶段 G0ARBCNT O CCU40.IN3G 每个仲裁周期输出一个 (计数)脉冲 G1ARBCNT O- 每个仲裁周期输出一个 (计数)脉冲 G0SR0 O NVIC (17) 组 0 的服务请求 0 G0SR1 O NVIC (18) 组 0 的服务请求 1 G0SR2 O- 组 0 的服务请求 2 G0SR3 O- 组 0 的服务请求 3 G1SR0 O NVIC (19) 组 1 的服务请求 0 G1SR1 O NVIC (20) 组 1 的服务请求 1 G1SR2 O- 组 1 的服务请求 2 G1SR3 O- 组 1 的服务请求 3 C0SR0 O NVIC (15) 公共块 0 的服务请求 0 C0SR1 O NVIC (16) 公共块 0 的服务请求 1 C0SR2 O ERU0.OGU02 ERU0.OGU12 公共块 0 的服务请求 2 C0SR3 O ERU0.OGU22 ERU0.OGU32 公共块 0 的服务请求 3 EMUX00 O P0.4 P1.1 外部模拟多路复用器接口 0 的控制 EMUX01 O P0.3 P1.2 EMUX02 O P0.2 P1.3 EMUX10 O P1.4 外部模拟多路复用器接口 1 的控制 EMUX11 O P1.5 EMUX12 O 保留 CBFLOUT0 O POSIF0.IN0C 公共边界标志输出 0 CBFLOUT1 O POSIF0.IN1C 公共边界标志输出 1 CBFLOUT2 O POSIF0.IN2C 公共边界标志输出 2 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-139 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 多功能模 / 数转换器 (VADC) 表 16-15 XMC1300 中的数字连接 ( 续表 ) 信号 方向 源 / 目的 描述 CBFLOUT3 O POSIF0.EWHEA 公共边界标志输出 3 G0BFLOUT0 O ERU0.0A3 组 0 的边界标志 0 输出 G1BFLOUT0 O ERU0.0B3 组 1 的边界标志 0 输出 G0BFLOUT1 O ERU0.1A3 组 0 的边界标志 1 输出 G1BFLOUT1 O ERU0.1B3 组 1 的边界标志 1 输出 G0BFLOUT2 O ERU0.2A3 组 0 的边界标志 2 输出 G1BFLOUT2 O ERU0.2B3 组 1 的边界标志 2 输出 G0BFLOUT3 O ERU0.3A3 组 0 的边界标志 3 输出 G1BFLOUT3 O ERU0.3B3 组 1 的边界标志 3 输出 1) 内部信号连接。 参考手册 多功能模 / 数转换器 (VADC), V2.1MD3 16-140 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 17 模拟比较器 (ACMP) 和超量程比较器 (ORC) 本章描述模拟比较器 (ACMP)和超量程比较器 (ORC)的控制。 17.1 概述 本节简要介绍模拟比较器和超量程比较器的特性。XMC1300 有 3 个模拟比较器(ACMPx [x=0-2])和 8 个超量程比较器 (ORCx [x=0-7])。 17.1.1 特性 模拟比较器和超量程比较器提供下列特性: • 超量程比较器 (ORC) – 对 ADC 模块的模拟输入引脚的过压监测 • 模拟比较器 (ACMP) – 监测外部电压电平 – 可选择低功耗模式 – 反相输出选项 17.2 模拟比较器 (ACMP) 图 17-1 示出了模拟比较器单元的框图。 INP PAD PAD INN 模拟比较器 (ACMPx) VDDP → VDDC Level Shift (down) 可选的 防毛刺滤波器 滤波器 (2ns ~ 10ns) _µs消隐逻辑 SFR中的标志 SCU SR2 其他模块 cmp_hyst_adj cmp_inv_out cmp_en cmp_flt_off cmp_lpwr PAD 端口 图 17-1 模拟比较器框图 输出 参考手册 CMPCU, V2.1MD3 17-1 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 输入 INP 与输入 INN 在焊盘电压域进行比较。比较器输出的数字信号从电源电压电平 VDDP 下移到内核电压电平 VDDC。一个滤波器(如果被使能)用于吸收产生的尖脉冲,该 滤波器通过位 ANACMPx.CMP_FLT_OFF 来控制。为了防止比较器在使能后的瞬间产生 未定义的状态,模块中增加了一个消隐模块来确保在过渡状态有稳定的输出。消隐时间 在几微秒的范围内。借助于位 ANACMPx.CMP_INV_OUT 的帮助,可以将比较器输出反 相。比较器的输出可以用来唤醒节电模式下的系统,也可以被发送到一个引脚。 可以通过 ANACMPx 寄存器中的 CMP_EN 位来关闭模拟比较器,以达到节电。 参考电压分压 如果位 REF_DIV_EN 被置 1,一个电阻链 ( 大约 500kOhm) 将来自 ACMP.REF 输入的 参考电压进行分压。根据 图 17-2,分压后的电压被传送到引脚 ACMP1.INP。利用位 ANACMP0.ACMP0_SEL 和 ANACMP2.ACMP2_SEL,所有其他比较器都可以由这个分 压后的参考电压供电 。 ACMP.REF VACMP_REF / 2 ANACMP1. REF_DIV_EN ANACMP0. ACMP0_SEL ACMP1.INP ACMP1.INN ACMP0.INP ACMP0.INN ACMP0 ACMP1 ANACMP2. ACMP2_SEL 图 17-2 模拟比较器参考电压分压器功能 ACMP2.INP ACMP2.INN ACMP2 低功耗模式 低功耗状态有利于降低总功耗,例如在休眠模式期间即可使用低功耗模式。低功耗模式 可通过置位 ANACMPx.LPWR 来使能。在该模式,模拟比较器的性能可能会有所降低。 当切换回正常模式时,也要使用消隐时间来确保稳定的输出 参考手册 CMPCU, V2.1MD3 17-2 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 17.3 超量程比较器 (ORC) 每个 ADC 通道内都有超量程比较器(ORC),当电压超量程条件发生时,超量程比较器 就会触发其他模块或触发中断。当输入通道的电压上升到高于 VDDP 电平的上限或输入通 道下降到低于 VDDP 电平的某个电压时就会发生这种情况。 超量程比较器连接到 ERU0 模块。所有的超量程事件都被分配到一个中断节点。 使用超量程比较器前,必须通过置位 ORCCTRL.ENORCx 将其使能,并且通过置位 ORCCTRL.CNFx 将其配置为检测电压高于还是低于 VDDP ( 见 图 17-3)。 ORCCTRL. ENORCx ORCCTRL. CNFx ORCx . AIN 超量程比较器 [x] (ORCx) 边沿 检测 中断产生 * x = 0 – 7(最大 ) ORCx.out ERU0 输入 图 17-3 超量程比较器 当发生一个电压超量程事件时,该事件通过 SCU.SR2 置位一个中断请求,并通过输出 ORC (ORCx.out) 触发 ERU0。 在 XMC1300 中,ORCx.AIN[x=0-7] 分别连接到 P2.2 - P2.9 。 17.4 服务请求的产生 ACMP 和 ORC 分别有一个服务请求输出。它们组合成一个输出信号并通过 SCU.SR2 连 接到嵌套向量中断控制器 (NVIC)的一个中断节点。 服务请求处理是 SCU 模块中的 GCU 块的一部分。更详细的信息参见 SCU 一章中 GCU 一节的 “ 服务请求 ” 描述。 17.5 调试行为 ACMPx 和 ORCx 不受使用外部调试探针所执行的调试活动的影响。 17.6 寄存器 ACMP 寄存器可通过 APB 总线访问,ORC 可通过 AHB 总线访问。绝对寄存器地址通过 下面的加法计算: 参考手册 CMPCU, V2.1MD3 17-3 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 模块基地址 + 偏移地址 对 ACMP/ORC 的 SFR 执行下面的访问会导致 AHB/APB 错误响应: • 读或写未定义的地址 • 写只读寄存器 表 17-1 寄存器地址空间 模块 基地址 COMPARATOR 4001 0000H 结束地址 4001 FFFFH 备注 系统控制单元寄 存器 表 17-2 简称 寄存器一览表 描述 ORCx 寄存器 ORCCTRL 超量程比较器控制寄存器 ACMPx 寄存器 ANACMP0 模拟比较器 0 控制寄存器 ANACMP1 模拟比较器 1 控制比较器 ANACMP2 模拟比较器 2 控制比较器 1) 绝对寄存器地址计算如下: 模块基地址 + 偏移地址 ( 显示在此列 ) 偏移地 址 .1) 0500H 105CH 1060H 1064H 访问方式 读写 U, PV U, PV 32 32 U, PV U, PV U, PV U, PV U, PV U, PV 描述见 页 17-5 页 17-6 页 17-6 页 17-6 17.6.1 ORC 寄存器 ORCCTRL 超量程比较器控制寄存器 寄存器使能超量程比较器并选择标志寄存器是上升沿触发还是下降沿触发。 参考手册 CMPCU, V2.1MD3 17-4 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) ORCCTRL 超量程比较器控制寄存器 (0500H) 复位值 : 0000 0000H 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 0 CNF CNF CNF CNF CNF CNF CNF CNF 76543210 r rw rw rw rw rw rw rw rw 15 14 13 12 11 10 9 0 r 876543210 ENO ENO ENO ENO ENO ENO ENO ENO RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 rw rw rw rw rw rw rw rw 域 ENORCx (x = 0 - 7) CNFx (x = 0 - 7) 0 位 类型 x rw x+16 rw [15:8], r [31:24] 描述 使能超量程比较器 x 该位定义是否使能相应模拟输入通道内的超量程比 较器。 0B 禁止超量程比较器。 1B 使能超量程比较器。 超量程比较器标志 x 该位为超量程比较器标志寄存器选择 CHx 是上升 沿触发还是下降沿触发。 0B 下降沿触发超量程事件寄存器。 1B 上升沿触发超量程事件寄存器。 保留 读出值为 0,应写入 0。 17.6.2 ACMP 寄存器 ANACMP0 模拟比较器 0 控制寄存器 参考手册 CMPCU, V2.1MD3 17-5 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) ANACMP0 模拟比较器 0 控制寄存器 15 14 13 12 11 10 CMP _OU 0 T rh r (105CH) 复位值 : 0020H 9876543210 CMP _LP WR 0 ACM P0_S EL CMP_HYS T_ADJ CMP _INV _OU T 0 CMP _FLT CMP _OF _EN F rw r rw rw rw r rw rw 域 位 CMP_EN 0 CMP_FLT_OFF 1 CMP_INV_OUT 3 CMP_HYST_ADJ 5:4 ACMP0_SEL 6 类型 rw rw rw rw rw 描述 比较器使能 0B CMP_EN,禁止比较器 1B CMP_DIS,使能比较器 禁止比较器滤波器 如果置位,比较器毛刺滤波器关闭。 0B FIL_ON,滤波器激活 1B FIL_OFF,滤波器关闭 ( 防止滤波器延迟 ) 反相比较器输出 比较器输出被简单地取反 0B INV_OFF,比较器信号不取反 1B INV_ON,比较器信号被取反 比较器滞后调整 为降低对噪声的敏感度,可选择一个滞后电压。 该功能可通过写操作关闭 00B HYS_OFF,关闭比较器滞后功能 01B HYS1,滞后电压 = 10mV 10B HYS2,滞后电压 = 15mV 11B HYS3,滞后电压 = 20mV 连接 ACMP0.INP 到 ACMP1.INP 一个内部开关将比较器焊盘 ACMP0.INP 和焊盘 ACMP1.INP 连接在一起。两个输入焊盘中只有 一个应该由电压源驱动。两个焊盘之间的时间延 迟是由开关的阻抗引起的。当位 ANACMP1.REF_DIV_EN 置 1 时,分压后的参 考电压不仅加到 ACMP1.INP,还加到 ACMP0.INP。 0B OFF, ACMP0.INP 未连接 1B ON, ACMP0.INP 连接到 ACMP1.INP 参考手册 CMPCU, V2.1MD3 17-6 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 域 位 CMP_LPWR 8 CMP_OUT 15 0 2, 7, 14:9 ANACMP1 模拟比较器 1 控制寄存器 类型 rw rh r 描述 低功耗模式 如果被使能,所有 3 个模拟比较器单元都被设为 低功耗模式。如果该位的逻辑电平改变,内核必 须消隐比较器输出信息一段时间。 0B HPM,高功耗模式 1B LPM,低功耗模式 比较器输出监视位 该位对应比较器输出的状态 0B OUT0,状态 “Vminus > Vplus” 1B OUT1,状态 “Vminus < Vplus” 保留 读出值为 0,应写入 0。 ANACMP1 模拟比较器 1 控制寄存器 (1060H) 复位值 : 0020H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CMP _OU T 0 REF _DIV _EN CMP_HYS T_ADJ CMP _INV _OU T 0 CMP _FLT CMP _OF _EN F rh r rw rw rw r rw rw 域 位 类型 描述 CMP_EN 0 rw 比较器使能 0B CMP_EN,禁止比较器 1B CMP_DIS,使能比较器 CMP_FLT_OFF 1 rw 禁止比较器过滤器 如果置位,比较器毛刺滤波器关闭。 0B FIL_ON,滤波器激活 1B FIL_OFF,滤波器关闭 ( 防止滤波器延迟 ) CMP_INV_OUT 3 rw 反相比较器输出 比较器输出被简单地取反 0B INV_OFF,比较器信号不取反 1B INV_ON,比较器信号被取反 参考手册 CMPCU, V2.1MD3 17-7 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 域 CMP_HYST_ADJ REF_DIV_EN CMP_OUT 0 位 类型 5:4 rw 6 rw 15 rh 2, 14:7 r 描述 比较器滞后调整 为降低对噪声的敏感度,可选择一个滞后电压。 该功能可通过写操作关闭。 00B HYS_OFF,关闭比较器滞后功能 01B HYS1,滞后电压 = 10mV 10B HYS2,滞后电压 = 15mV 11B HYS3,滞后电压 = 20mV 电阻分压器使能,参考电压加到 ACMP1 分压器参考电压被加到 ACMP1 的正输入。 0B OFF,不连接电阻 1B ON,使能分压器电阻,参考电压加到 ACMP1.INP 比较器输出监视位 该位对应比较器的输出状态 0B OUT0,状态 “Vminus > Vplus” 1B OUT1,状态 “Vminus < Vplus” 保留 读出值为 0,应写入 0。 ANACMP2 模拟比较器 2 控制寄存器 ANACMP2 模拟比较器 2 控制寄存器 (1064H) 复位值 : 0020H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CMP _OU T 0 ACM P2_S EL CMP_HYS T_ADJ CMP _INV _OU T 0 CMP _FLT CMP _OF _EN F rh r rw rw rw r rw rw 域 CMP_EN 位 类型 描述 0 rw 比较器使能 0B CMP_EN,禁止比较器 1B CMP_DIS,使能比较器 参考手册 CMPCU, V2.1MD3 17-8 V1.0, 2013-03 请遵守产品信息使用协议 XMC1300 XMC1000 家族 模拟比较器 (ACMP) 和超量程比较器 (ORC) 域 CMP_FLT_OFF CMP_INV_OUT CMP_HYST_ADJ ACMP2_SEL CMP_OUT 0 位 类型 1 rw 3 rw 5:4 rw 6 rw 15 rh 2, 14:7 r 描述 禁止比较过滤器 如果置位,比较器毛刺滤波器关闭 0B FIL_ON,滤波器激活 1B FIL_OFF,滤波器关闭 ( 防止滤波器延迟 ) 反相比较器输出 比较器输出被简单地取反 0B INV_OFF,比较器信号不取反 1B INV_ON,比较器信号被取反 比较器滞后调整 为降低对噪声的敏感度,可以选择一个滞后电 压。该功能可通过写操作关闭。 00B HYS_OFF,关闭比较