目 录
第1章 绪论 1
1.1 英飞凌微控制器家族概述 1
1.2 英飞凌16位单片机 1
1.2.1 历史 1
1.2.2 XE164FN系列性能特点 2
1.2.3 产品子系列及区别 5
1.2.4 XE164FN系列产品介绍 6
1.3 英飞凌XE164FN系列单片机
开发环境 8
1.4 本书附注 8
1.4.1 缩写注释 8
1.4.2 外设单元命名规则 9
第2章 XE164FN的体系架构 10
2.1 架构概况 10
2.2 特性总结 11
2.3 系统内核单元 11
2.3.1 中央处理单元(CPU) 12
2.3.2 存储器保护单元(MPU) 13
2.3.3 可编程多优先级中断系统 13
2.3.4 系统资源接口 14
2.4 片上系统资源 14
2.4.1 存储器区域 14
2.4.2 外部总线接口 15
2.5 片上外设模块 16
2.5.1 外设接口 16
2.5.2 外设时序 16
2.5.3 捕获/比较单元CAPCOM
(CC2) 16
2.5.4 捕获/比较单元CCU6
(CCU6) 17
2.5.5 通用定时器单元(GPT) 18
2.5.6 实时时钟(RTC) 19
2.5.7 模数转换器(ADC) 19
2.5.8 通用串行接口通道模块
(USIC) 20
2.5.9 MultiCAN模块(MultiCAN) 21
2.5.10 系统定时器 22
2.5.11 看门狗定时器 22
2.5.12 存储器检查器模块 23
2.5.13 并行端口 23
2.6 时钟产生 23
2.7 功率管理 23
2.8 片上调试支持 24
第3章 开发工具与编程环境 25
3.1 开发流程 25
3.2 寄存器配置环境(DAvE) 25
3.2.1 DAvE软件功能 25
3.2.2 DAvE安装 25
3.2.3 DAvE操作介绍 26
3.3 编程与调试环境(Tasking) 31
3.3.1 Tasking版本介绍 32
3.3.2 Tasking下载与安装 32
3.3.3 Tasking License申请 34
3.3.4 界面布局 36
3.3.5 使用Tasking完成例程 37
3.4 编程与调试环境 42
3.4.1 导入程序 43
3.4.2 编译 43
3.4.3 在线调试设置 43
3.4.4 下载 45
3.5 仿真器的安装与使用 46
3.5.1 DAP Mini Wiggler 46
3.5.2 DAS 47
3.5.3 使用Memtool工具下载代码 48
第4章 中央处理器 51
4.1 内核简介 51
4.2 CPU组成 52
4.3 流水线 53
4.4 代码寻址 54
4.5 数据寻址 54
4.5.1 短寻址模式 54
4.5.2 长寻址模式 55
4.5.3 间接寻址模式 57
4.5.4 DSP寻址模式 58
4.5.5 系统堆栈 59
4.6 标准数据处理 60
4.7 DSP数据处理 61
4.7.1 MAC的体系架构 62
4.7.2 CoREG寻址模式 63
4.7.3 CoMAC单元 65
4.7.4 其他MAC指令 68
4.7.5 MAC单元的使用方法 69
4.8 DSP功能的开发方法 70
4.8.1 全汇编开发DSP功能 70
4.8.2 C与汇编混合编程 71
4.8.3 内联函数编程 73
4.8.4 用库编写DSP函数 74
4.8.5 用C语言编程 75
4.8.6 建议 76
4.9 通用寄存器与常数寄存器 77
第5章 存储器结构 79
5.1 地址映射 79
5.2 程序存储器 81
5.2.1 程序/数据SRAM(PSRAM) 81
5.2.2 非易失程序存储器(Flash) 82
5.3 数据存储器 83
5.3.1 双端口RAM(DPRAM) 83
5.3.2 数据SRAM(DSRAM) 84
5.3.3 备用RAM(SBRAM) 84
5.3.4 标记存储器(MKMEM) 84
5.4 特殊功能寄存器/寄存器区 84
5.4.1 特殊功能寄存器 85
5.4.2 通用寄存器 85
5.4.3 PEC源指针和目的指针 86
5.5 IO区 86
5.6 外部存储空间 87
5.7 保护机制 87
5.7.1 位保护 87
5.7.2 存储器保护单元(MPU) 88
5.8 外部存储器控制 88
5.8.1 特性归纳 89
5.8.2 概述 89
5.8.3 命名规则 89
5.8.4 时序描述 89
5.8.5 最快访问周期 92
5.8.6 地址窗 93
5.8.7 READY控制的总线周期 94
5.8.8 EBC空闲状态 95
5.8.9 EBC的实现 96
5.9 实例:使用FLASH模拟
外部EEPROM 97
5.9.1 EEPROM驱动介绍 98
5.9.2 EEPROM模拟算法 98
5.9.3 EEPROM驱动函数 104
5.9.4 EEPROM仿真示范 107
5.9.5 示范程序 111
第6章 系统控制单元 114
6.1 电源系统 114
6.1.1 电压看门狗(SWD) 115
6.1.2 监控内核域的电压电平 115
6.1.3 供电系统 116
6.1.4 控制供电系统 117
6.2 复位控制 118
6.2.1 复位架构 118
6.2.2 复位操作 119
6.2.3 复位请求触发源 120
6.2.4 模块复位行为 121
6.3 外部服务请求(ESR) 121
6.4 外部请求单元(ERU) 123
6.4.1 概述 123
6.4.2 ERU输入连接 124
6.4.3 外部请求选择单元(ERSx) 125
6.4.4 事件触发逻辑(ETLx) 126
6.4.5 连接矩阵 127
6.4.6 输出门控单元(OGUy) 127
6.5 时钟系统 130
6.5.1 振荡器 130
6.5.2 时钟产生单元 131
6.5.3 PLL 132
6.5.4 时钟源控制 133
6.5.5 外部时钟输出 135
6.6 看门狗定时器 137
6.6.1 功能描述 137
6.6.2 WDT定时器重载 140
6.7 SCU中断产生 140
6.7.1 中断支持 141
6.7.2 SCU中断请求源 141
6.8 低功耗模式 141
6.8.1 功率节约模式(空闲模式) 142
6.8.2 其他降低功耗的方法 142
6.9 CSTART.c文件 143
6.10 启动设置 144
6.10.1 启动选择 144
第7章 并行端口 146
7.1 一般描述 146
7.1.1 基本端口操作 146
7.1.2 输入级控制 146
7.1.3 输出驱动控制 147
7.2 端口寄存器描述 148
7.2.1 引出端驱动控制 148
7.2.2 端口输出寄存器 150
7.2.3 端口输出修改寄存器 150
7.2.4 端口输入寄存器 151
7.2.5 端口输入/输出控制寄存器 151
7.2.6 端口数字输入禁用寄存器 152
7.3 端口描述 152
7.3.1 P0口 152
7.3.2 P1口 153
7.3.3 P2口 153
7.3.4 P4口 153
7.3.5 P5口 154
7.3.6 P6口 154
7.3.7 P7口 154
7.3.8 P10口 154
7.3.9 P15口 155
7.4 引脚描述 155
7.5 专用引脚 155
7.6 实例:闪烁的LED灯 156
7.6.1 DAvE配置 156
7.6.2 添加用户代码 157
第8章 中断与异常情况控制 158
8.1 简介 158
8.2 中断仲裁 159
8.3 中断控制 160
8.3.1 中断优先级与组优先级 161
8.3.2 寄存器PSW的全局中断控制
功能 161
8.3.3 可选的中断禁止 162
8.3.4 中断类管理 162
8.4 中断向量表 163
8.5 中断跳转表缓存 164
8.6 CPU状态保存 164
8.7 CPU上下文切换 165
8.8 快速寄存器组切换 165
8.9 实例:使用中断向量表和跳转表
缓存 166
8.10 强制中断功能 167
8.10.1 软件强制中断 167
8.10.2 硬件强制中断 168
8.11 外围事件控制器 171
8.11.1 PEC源和目的指针 171
8.11.2 功能控制 172
8.11.3 通道分配 174
8.12 外部中断 174
8.12.1 外部请求单元 175
8.12.2 使用外设引脚 175
8.13 OCDS请求 175
8.14 中断节点 176
8.14.1 物理中断节点 176
8.14.2 中断节点共享 178
8.15 实例:PEC 的使用 179
8.15.1 定时器GPT配置 179
8.15.2 中断控制器Interrupt配置 181
8.15.3 IO口配置 182
8.15.4 添加用户代码 182
第9章 通用定时器单元 184
9.1 简介 184
9.2 定时器模块GPT1 184
9.2.1 定时器T3运行控制 185
9.2.2 GPT1辅助定时器T2/T4
的控制 190
9.2.3 GPT1定时器的中断控制 194
9.2.4 GPT1时钟信号控制 194
9.3 定时器模块GPT2 195
9.3.1 GPT2核心定时器T6
的控制 196
9.3.2 GPT2辅助定时器T5
的控制 198
9.3.3 GPT2寄存器CAPREL工作
模式 200
9.3.4 GPT2时钟信号控制 203
9.3.5 GPT2定时器和CAPREL的
中断控制 204
9.4 GPT模块接口 204
9.5 实例:LED灯周期闪烁 205
9.5.1 定时器配置 205
9.5.2 IO配置 207
9.5.3 添加用户代码 207
第10章 通用串行接口通道 209
10.1 简介 209
10.1.1 特性概述 209
10.1.2 通道结构 210
10.1.3 波特率发生器 210
10.1.4 通道事件和中断 211
10.1.5 基本的数据缓存结构 211
10.1.6 FIFO缓存结构 212
10.2 操作USIC 212
10.2.1 寄存器概述 212
10.2.2 操作USIC通信通道 213
10.2.3 操作输入级 215
10.2.4 操作发送数据通路 217
10.2.5 操作接收数据通路 220
10.2.6 操作FIFO数据缓存 221
10.3 异步串行通道(ASC) 224
10.3.1 信号描述 224
10.3.2 帧格式 225
10.3.3 操作ASC 227
10.3.4 硬件LIN支持 232
10.3.5 使用DavE进行ASC配置 233
10.4 同步串行通道(SSC) 235
10.4.1 信号描述 235
10.4.2 操作SSC 239
10.4.3 主控模式下操作SSC 241
10.4.4 从控模式下操作SSC 245
10.4.5 使用DavE进行SSC配置 246
10.5 IIC总线协议(IIC) 248
10.5.1 简介 248
10.5.2 操作IIC 251
10.5.3 数据流处理 255
10.5.4 使用DavE进行IIC配置 258
10.6 实例:通用串行口使用 259
10.6.1 USIC0配置 259
10.6.2 USIC1配置 261
10.6.3 USIC2配置 262
10.6.4 添加代码 263
第11章 捕获/比较单元CCU6 265
11.1 简介 265
11.1.1 功能总览 265
11.1.2 结构框图 266
11.1.3 寄存器概述 266
11.2 定时器T12 267
11.2.1 功能简介 267
11.2.2 时钟选择 268
11.2.3 计数模式 269
11.2.4 比较模式 271
11.2.5 通道状态位 273
11.2.6 类磁滞控制模式 275
11.2.7 比较模式输出路径 275
11.2.8 死区时间的产生 275
11.2.9 捕获模式 280
11.2.10 实例:产生6路PWM
信号 283
11.2.11 实例:产生SPWM信号 286
11.3 定时器T13 291
11.3.1 功能简介 291
11.3.2 时钟选择 292
11.3.3 计数模式 293
11.3.4 事件同步模式 293
11.3.5 比较模式 294
11.3.6 比较模式输出路径 295
11.3.7 映射寄存器传送 297
11.3.8 实例:多通道模式调制 297
11.4 中断结构 300
11.5 强制中断处理 302
11.6 多通道模式 304
11.7 霍尔传感器模式 305
11.7.1 霍尔序列评估 305
11.7.2 霍尔序列比较逻辑 306
11.7.3 霍尔模式标志位 307
11.7.4 实现无刷直流电机控制
的霍尔模式 308
11.8 一般模块操作 312
第12章 模数转换器 314
12.1 特性简介 314
12.1.1 功能总览 314
12.1.2 结构特性 315
12.1.3 内核结构 315
12.2 ADC模块的时钟方案 316
12.3 请求源仲裁器 317
12.4 转换启动模式 319
12.5 顺序请求源处理 320
12.5.1 顺序转换执行的操作 321
12.5.2 顺序请求源的使用 322
12.5.3 请求源事件和中断 323
12.5.4 实例:顺序请求源处理 324
12.6 扫描请求源处理 327
12.6.1 扫描转换执行的操作 327
12.6.2 扫描请求源的使用 328
12.6.3 请求源事件和中断 329
12.6.4 实例:扫描请求处理 330
12.7 转换结果处理 333
12.7.1 数据压缩滤波 333
12.7.2 结果保存 334
12.7.3 等待读取模式 335
12.7.4 结果事件中断 335
12.7.5 结果FIFO缓存 335
12.7.6 结果寄存器配置 336
12.7.7 实例:转换结果处理 337
12.8 通道相关功能 341
12.8.1 输入组 342
12.8.2 参考选择 343
12.8.3 替换特性 343
12.8.4 边界检查 344
12.8.5 通道事件中断 345
12.9 附加特性 346
12.9.1 外部复用器控制 346
12.9.2 支持并行采样的同步转换 347
12.9.3 等间隔采样 348
12.9.4 断线检测 348
12.10 XE164FN中ADC的实现 348
12.10.1 模拟信号的连接 348
12.10.2 数字信号的连接 350
12.11 实例:ADC与CCU6的同步
采样 350
第13章 捕获/比较单元――CAPCOM2 359
13.1 简介 359
13.1.1 模块结构 359
13.1.2 寄存器概览 360
13.2 CC2定时器 361
13.2.1 定时器模式时钟 362
13.2.2 计数器模式 362
13.2.3 定时器溢出和重载 363
13.2.4 定时器中断 364
13.3 捕获/比较通道 364
13.4 捕获模式 365
13.5 比较模式操作 366
13.5.1 比较模式0 367
13.5.2 比较模式1 367
13.5.3 举例:比较模式0和1
的时序 367
13.5.4 比较模式2 368
13.5.5 比较模式3 368
13.5.6 举例:比较模式2和3
的时序 369
13.6 双寄存器比较模式 371
13.7 CAPCOM中断 372
13.8 比较输出信号的产生 372
13.9 单次事件操作 373
13.10 交错和非交错操作 373
13.11 模块实现 376
13.11.1 内部连接 377
13.11.2 外部连接 377
13.12 实例 377
13.12.1 实例1:通过CC2定时器
模式闪烁LED 377
13.12.2 实例2:通过CC2双寄存器比较
模式产生PWM信号 381
第14章 控制器局域网络(MultiCAN)
控制器 387
14.1 特性概述 387
14.2 模块结构 388
14.3 节点控制 389
14.3.1 CAN帧计数器 390
14.3.2 CAN节点分析模式 390
14.3.3 CAN错误处理 393
14.3.4 节点波特率设置 393
14.4 报文对象 395
14.4.1 报文对象列表结构 395
14.4.2 报文对象功能 401
14.4.3 报文对象FIFO结构 403
14.4.4 网关模式 405
14.4.5 外来远程请求 407
14.5 CAN中断 407
14.5.1 中断结构 407
14.5.2 CAN节点中断 408
14.5.3 报文对象中断 409
14.5.4 报文挂起 409
14.6 实例 411
14.6.1 实例1:回环模式 411
14.6.2 实例2:外部收发设置 415
第15章 基于XE164FN的最小系统硬件
开发平台 420
15.1 硬件开发平台结构及功能 420
15.2 XE164FN评估板 420
15.2.1 系统组成 420
15.2.2 微控制器 421
15.2.3 电源和指示灯 421
15.2.4 复位电路 422
15.2.5 时钟信号 422
15.2.6 启动配置 422
15.2.7 调试接口OCDS 422
15.2.8 通信电路 423
15.2.9 PCB设计注意事项 423
15.3 XE164FN转接板 425
15.3.1 系统组成 425
15.3.2 信号处理电路 426
15.3.3 数模转换电路 427
15.4 低压电机功率板 428
15.4.1 系统组成 428
15.4.2 驱动芯片 429
15.4.3 电源和指示灯 429
15.4.4 电流传感器 429
第16章 基于XE164FN的永磁同步
电动机控制 431
16.1 永磁同步电机数学模型 431
16.1.1 磁链方程 431
16.1.2 电压方程 432
16.1.3 转矩方程 432
16.1.4 运动方程 432
16.2 矢量控制及坐标系变换 432
16.2.1 简介 432
16.2.2 坐标变换 433
16.2.3 空间矢量调制(SVPWM)
算法实现 435
16.3 使用XE164FN实现PMSM的矢量
控制 441
16.3.1 系统结构 441
16.3.2 外设配置 441
16.3.3 模块设计 449
16.3.4 系统软件设计 455
参考文献 459
展开