第1章 电机控制DSP简介 1
1.1 DSP芯片的主要特点 2
1.2 常用电机控制芯片 3
1.3 TI公司的DSP介绍 3
1.3.1 C2000电机控制DSP的分类 4
1.3.2 F28335系列的特点 5
1.3.3 F28335系列的引脚说明 7
1.4 F28335 DSP的内核 19
1.4.1 CPU介绍 21
1.4.2 总线结构 22
1.4.3 流水线机制 23
1.4.4 FPU流水线 23
1.5 F28335 DSP的存储器 24
1.5.1 存储器映射 24
1.5.2 代码安全模块 26
1.6 F28335 DSP的片上外设 26
1.7 习题 27
第2章 软件开发平台与编程方法 28
2.1 基于CCS的开发流程 28
2.2 链接时的命令文件——cmd文件 30
2.3 外设寄存器的头文件与初始化 33
2.4 数值的处理 36
2.4.1 二进制下2的补码 36
2.4.2 F28335的符号扩展模式 37
2.4.3 二进制乘法 38
2.4.4 二进制小数 38
2.4.5 定点编程与浮点编程 39
2.4.6 IEEE-754单精度浮点 40
2.4.7 调用TI的实时浮点库 42
2.5 DSP编程中的数据类型 43
2.6 基于CCS 6.x的开发流程 46
2.6.1 新建工程 46
2.6.2 添加文件 48
2.6.3 工程属性配置 50
2.6.4 程序调试 54
2.6.5 烧写Flash 58
2.6.6 CCS在线学习功能 59
2.6.7 controlSUITETM学习套件 60
2.7 习题 60
第3章 DSP的高级编程选项 62
3.1 处理器选项 62
3.2 程序优化选项 64
3.3 调试与路径选项 68
3.4 控制与语言选项 70
3.5 预处理与诊断 73
3.6 运行时模型 75
3.7 钩子函数与库函数 77
3.8 汇编器选项 79
3.9 文件、目录与扩展名 82
3.10 代码规范MISRA-C 84
3.11 链接器的基本选项 86
3.12 C代码的入口程序c_int00 90
3.13 典型的编译器配置选项 92
3.14 实时运行库RTS的选择 94
3.15 习题 95
第4章 F28335系统时钟与中断控制 96
4.1 OSC与PLL模块 96
4.1.1 PLL功能配置 96
4.1.2 时钟信号监视电路 97
4.1.3 相关寄存器 98
4.1.4 PLL配置注意事项 100
4.2 外设时钟信号 100
4.2.1 相关寄存器 100
4.2.2 XCLKOUT信号 105
4.3 低功耗模式 105
4.4 看门狗模块 107
4.4.1 工作原理 108
4.4.2 相关寄存器 108
4.5 CPU定时器0/1/2 111
4.5.1 工作原理 111
4.5.2 相关寄存器 111
4.6 寄存器EALLOW保护 115
4.7 外设中断扩展模块PIE 119
4.7.1 PIE模块概述 119
4.7.2 中断向量列表的映射地址 121
4.7.3 中断源 123
4.7.4 中断向量列表 126
4.7.5 PIE模块相关寄存器 131
4.7.6 CPU中断控制相关寄存器 133
4.7.7 外部中断控制寄存器 135
4.7.8 应用实例 136
4.8 习题 138
第5章 通用输入/输出端口 139
5.1 GPIO概述 139
5.1.1 GPIO工作模式 140
5.1.2 数字I/O工作模式下的控制 141
5.1.3 输入限定功能 143
5.2 相关寄存器 144
5.2.1 功能选择寄存器 144
5.2.2 其他相关寄存器 147
5.3 应用实例 156
5.3.1 GPIO配置步骤 156
5.3.2 软件设计 157
5.4 习题 158
第6章 模/数转换模块 159
6.1 ADC概述 159
6.2 转换序列发生器工作原理 160
6.3 不间断自动定序模式 165
6.3.1 启动/停止模式 166
6.3.2 ADC中断控制 167
6.4 转换时钟 167
6.5 ADC基本电气特性 168
6.5.1 低功耗模式 168
6.5.2 上电时配置顺序 168
6.5.3 片内/片外参考电压选择 168
6.6 ADC高级功能 169
6.6.1 输入校正功能 169
6.6.2 序列发生器覆盖功能 169
6.6.3 DMA接口 169
6.7 相关寄存器 170
6.7.1 控制寄存器 171
6.7.2 输入通道选择寄存器 174
6.7.3 其他相关寄存器 175
6.8 应用实例 178
6.9 习题 180
第7章 增强型脉宽调制模块 181
7.1 概述 181
7.2 ePWM各子模块介绍 186
7.2.1 时间基准子模块 187
7.2.2 比较功能子模块 192
7.2.3 动作限定子模块 196
7.2.4 死区产生子模块 206
7.2.5 斩波控制子模块 209
7.2.6 故障捕获子模块 212
7.2.7 事件触发子模块 214
7.3 相关寄存器 218
7.3.1 时间基准子模块寄存器 219
7.3.2 比较功能子模块寄存器 221
7.3.3 动作限定子模块寄存器 223
7.3.4 死区产生子模块寄存器 225
7.3.5 斩波控制子模块寄存器 226
7.3.6 故障捕获子模块寄存器 227
7.3.7 事件触发子模块寄存器 229
7.4 应用实例 232
7.4.1 BUCK电路的控制 232
7.4.2 半H桥逆变器的控制 236
7.4.3 三相逆变器的控制 238
7.5 习题 241
第8章 增强型正交编码脉冲模块 242
8.1 概述 242
8.1.1 常用编码器结构 242
8.1.2 转速测量方法 243
8.1.3 eQEP模块整体结构 244
8.2 正交解码单元 245
8.2.1 位置计数器的输入模式 246
8.2.2 eQEP输入极性选择 247
8.2.3 位置比较同步输出功能 248
8.3 位置计数器及控制单元 248
8.3.1 位置计数器的运行模式 248
8.3.2 位置计数器的锁存 250
8.3.3 位置计数器的初始化 252
8.3.4 eQEP位置比较单元 252
8.4 边沿捕获单元 253
8.5 eQEP看门狗电路 256
8.6 中断结构 256
8.7 相关寄存器 257
8.8 应用实例 265
8.8.1 eQEP模块配置 265
8.8.2 应用程序 266
8.9 习题 270
第9章 增强型捕获模块 271
9.1 概述 271
9.1.1 eCAP模块简介 271
9.1.2 eCAP工作模式介绍 272
9.2 捕获工作模式 273
9.2.1 事件预分频 274
9.2.2 边沿极性选择与量化 274
9.2.3 连续/单次捕获控制 274
9.2.4 32位计数器及相位控制 275
9.2.5 CAP1~CAP4寄存器 276
9.2.6 中断控制 276
9.3 APWM工作模式 277
9.4 相关寄存器 278
9.5 应用实例 284
9.5.1 捕获模式下绝对时间的获取 285
9.5.2 捕获模式下差分时间的获取 287
9.5.3 APWM模式下的应用 290
9.6 习题 290
第10章 串行通信接口模块 291
10.1 概述 291
10.2 SCI模块结构及功能介绍 292
10.2.1 SCI功能概述 292
10.2.2 SCI多处理器通信 294
10.2.3 空闲线多处理器模式 295
10.2.4 地址位多处理器模式 296
10.2.5 SCI通信格式 297
10.2.6 SCI的中断 299
10.2.7 SCI波特率计算 299
10.2.8 SCI增强功能 300
10.3 相关寄存器 302
10.4 应用实例 309
10.5 习题 315
第11章 串行外设接口模块 316
11.1 概述 316
11.2 SPI模块工作方式介绍 318
11.2.1 工作方式概述 318
11.2.2 SPI模块主控制器与从控制器工作模式 319
11.3 SPI中断及其他相关配置 320
11.3.1 SPI中断 320
11.3.2 数据格式 321
11.3.3 波特率及时钟方案 321
11.3.4 复位后的初始化 323
11.3.5 数据传送实例 323
11.4 SPI FIFO功能介绍 324
11.5 相关寄存器 326
11.6 应用实例 333
11.7 习题 336
第12章 直接存储器访问模块 337
12.1 概述 337
12.2 DMA结构 338
12.2.1 DMA模块结构 338
12.2.2 外设中断事件触发源 338
12.2.3 DMA总线 340
12.3 流水线时序及流量 340
12.4 CPU仲裁 341
12.4.1 外部存储区XINTF的仲裁 341
12.4.2 其他区域的仲裁 342
12.5 通道优先级 342
12.5.1 循环优先级方案 342
12.5.2 CH1高优先级方案 343
12.6 地址指针及发送控制 343
12.7 ADC同步特性 347
12.8 溢出检测特性 348
12.9 相关寄存器 348
12.10 应用实例 356
12.11 习题 360
第13章 外部接口模块 361
13.1 概述 361
13.1.1 与TMS320x281x XINTF接口的区别 362
13.1.2 与TMS320x2834x XINTF接口的区别 363
13.1.3 XINTF区域的访问 364
13.1.4 XINTF的“读访问紧跟写访问”的保护 364
13.2 XINTF功能配置简介 364
13.2.1 XINTF配置顺序 364
13.2.2 时钟信号 365
13.2.3 写缓冲器 366
13.2.4 区域访问的建立时间、有效时间及跟踪时间 366
13.2.5 区域的XREADY采样 367
13.2.6 数据总线宽度及连接方式 367
13.3 建立时间、有效时间及跟踪时间的具体配置 369
13.4 XBANK区域切换 371
13.5 XINTF的DMA读/写访问 372
13.6 相关寄存器 373
13.7 读/写时序图 377
13.8 习题 380
第14章 高分辨率HRPWM 381
14.1 HRPWM的特点 381
14.2 HRPWM的原理 382
14.2.1 控制HRPWM 383
14.2.2 配置HRPWM 384
14.2.3 HRPWM的运行方式 384
14.2.4 MEP折算因子的优化软件 389
14.2.5 使用优化的汇编代码的HRPWM示例 390
14.3 HRWPM的寄存器 393
14.4 SFO的使用 395
14.5 习题 397
第15章 增强的控制器局域网络 398
15.1 eCAN概述 398
15.2 CAN网络 399
15.3 eCAN控制器概述 401
15.3.1 标准CAN控制器(SCC)模式 401
15.3.2 内存映射 402
15.3.3 到控制和状态寄存器的32位访问 404
15.3.4 eCAN控制和状态寄存器 404
15.4 消息对象 405
15.5 消息邮箱 405
15.5.1 发送邮箱 409
15.5.2 接收邮箱 410
15.5.3 CAN模块运行在正常配置中 410
15.6 eCAN寄存器 411
15.7 eCAN配置 434
15.7.1 eCAN模块初始化 434
15.7.2 配置eCAN的步骤 438
15.7.3 远程帧邮箱的处理 440
15.7.4 中断 441
15.7.5 eCAN断电模式 446
15.8 应用实例 447
15.9 习题 448
第16章 交流调速中常用算法及其DSP实现 449
16.1 交流电机变频调速原理 449
16.1.1 变压变频调速基本原理 449
16.1.2 变压变频调速中的脉宽调制技术 451
16.1.3 交流电机矢量控制系统 453
16.2 坐标变换原理及实现 453
16.2.1 坐标变换时的功率不变原则 453
16.2.2 Clarke变换原理及实现 454
16.2.3 Park变换原理及实现 459
16.3 电压空间矢量PWM技术的实现 461
16.3.1 SVPWM技术基本原理 461
16.3.2 基于DSP的实现 466
16.4 数字PID调节器的实现 469
16.4.1 PID调节器的离散化 470
16.4.2 基于DSP的实现 471
第17章 永磁同步电机矢量控制系统的DSP解决方案 474
17.1 永磁同步电机简介 474
17.2 永磁同步电机数学模型 475
17.3 永磁同步电机矢量控制系统 476
17.3.1 isd=0控制策略 476
17.3.2 控制系统结构 477
17.4 基于DSP的实现 478
17.4.1 程序整体结构设计 478
17.4.2 ADC模块配置 478
17.4.3 eQEP模块配置 483
17.4.4 ePWM模块配置 484
17.4.5 PMSM转子磁极定向矢量控制系统源程序 488
第18章 自己动手打造最小系统板 496
18.1 Boot引导方式选择 496
18.1.1 Boot介绍 496
18.1.2 引导方式的选择 496
18.2 硬件系统设计 498
18.2.1 电源电路设计 498
18.2.2 复位电路设计 505
18.2.3 时钟电路设计 506
18.2.4 JTAG接口电路设计 507
18.2.5 GPIO电平转换及驱动电路设计 509
18.2.6 ADC输入前端处理电路设计 510
18.2.7 XINTF接口与FPGA的通信设计 511
18.3 PCB布局布线及EMI抑制措施 513
18.3.1 PCB设计原则 513
18.3.2 EMI抑制措施 514
18.3.3 硬件调试方法 515
参考文献 517