第1章 绪论 2
1.1 DSP概述 2
1.1.1 DSP的发展 2
1.1.2 DSP结构和特点 3
1.1.3 DSP的选型 8
1.1.4 TI公司的DSP 9
1.1.5 C2000实时控制器平台 10
1.2 DSP的典型应用 11
1.3 DSP的发展 12
1.4 DSP系统开发 13
1.4.1 系统的需求分析 13
1.4.2 系统的基本结构 14
1.4.3 系统开发 15
第2章 CCS软件应用基础 19
2.1 CCS介绍 19
2.2 Code Composer Studio 3.1的安装与配置 19
2.2.1 Code Composer Studio 3.1的安装 19
2.2.2 目标系统配置 20
2.2.3 启动GEL文件 22
2.2.4 主机开发环境设置 23
2.3 Step-by-Step简单应用 24
2.3.1 CCS常用工具 24
2.3.2 简单程序开发 25
2.4 代码创建 26
2.4.1 新建一个工程 26
2.4.2 工程配置 28
2.5 CCS3.1基本应用 28
2.5.1 编辑源程序 29
2.5.2 查看和编辑代码 30
2.5.3 查找替换文字 30
2.5.4 书签的使用 31
2.5.5 全速运行(Running)/单步运行(Step Run) 31
2.5.6 断点设置 33
2.5.7 探针的使用 35
2.5.8 观察窗口 37
2.6 分析和调整 38
2.6.1 应用代码分析 39
2.6.2 应用代码优化 40
第3章 C/C++程序编写基础 41
3.1 C/C++编辑器概述 41
3.1.1 C/C++语言的主要特征 41
3.1.2 输出文件 41
3.1.3 编译器接口 42
3.1.4 编译器操作 42
3.1.5 编译器工具 44
3.2 TMS320X28xx的C/C++编程 44
3.2.1 概述 44
3.2.2 传统的宏定义方法 45
3.2.3 位定义和寄存器文件结构方法 46
3.2.4 位区和寄存器文件结构体的优点 53
3.2.5 使用位区的代码大小及运行效率 54
3.3 C/C++程序结构及实例 57
3.3.1 Include文件 57
3.3.2 链接文件 58
3.3.3 程序流程 62
3.4 C/C++语言与汇编混合编程 63
3.5 TMS320X28xx定点处理器算法实现 70
3.5.1 定点与浮点处理器比较 70
3.5.2 采用Iqmath库函数实现定点处理器的运算 71
第4章 TMS320X28xx系列DSP综述4.1 TMS320X28xx系列DSP内核特点 86
4.1.1 C28xx系列定点处理器特点 86
4.1.2 C28x浮点处理器 89
4.2 TMS320x28xxx系列处理器比较 91
4.2.1 工作频率和供电 91
4.2.2 存储器 91
4.2.3 外设 96
4.3 TMS320X28xx处理器外设功能介绍 97
4.3.1 事件管理器(281x处理器) 97
4.3.2 ePWM、eCAP、eQEP(F2808、F2806、F2801处理器) 97
4.3.3 A/D转换模块 100
4.3.4 SPI外设接口 100
4.3.5 SCI通信接口 100
4.3.6 CAN总线通信模块 101
4.3.7 看门狗 101
4.3.8 通用目的数字量I/O 101
4.3.9 PLL时钟模块 101
4.3.10 多通道缓冲串口 101
4.3.11 外部中断接口 102
4.3.12 存储器及其接口 102
4.3.13 内部集成电路(I2C) 102
4.4 TMS320x281x和TMS320x2833x的区别 102
4.4.1 概述 102
4.4.2 中央处理单元(CPU) 103
4.4.3 存储单元 103
4.4.4 时钟和系统控制 106
4.4.5 通用目的I/O(GPIO) 108
4.4.6 2833x系列处理器新增外设 108
4.4.7 2833x系列处理器改进外设 112
4.4.8 2833x系列处理器未改动外设 114
4.4.9 中断 114
4.5 TMS320X28xx的应用领域 115
4.6 TMS320F2812硬件平台 116
4.6.1 TMS320F2812硬件描述 121
4.6.2 电源接口 121
4.6.3 复位电路 121
4.6.4 TMS320F2812存储器接口 123
4.6.5 晶振选择 124
4.6.6 扩展总线 125
4.6.7 JTAG接口 125
4.6.8 板上串行通信接口 125
4.6.9 CAN总线接口 126
4.6.10 AD变换单元 126
4.6.11 DAC扩展 126
第5章 双供电DSP电源设计 128
5.1 总线冲突 128
5.2 内核和I/O供电次序控制策略 129
5.2.1 3.3 V单电源上电次序控制 129
5.2.2 输入电压大于3.3 V的上电次序控制 134
5.3 TMS320F28xx电源设计 136
第6章 TMS320F2812的时钟及看门狗6.1 时钟单元 137
6.1.1 时钟单元基本结构 137
6.1.2 锁相环电路 137
6.1.3 时钟单元寄存器 141
6.2 看门狗 144
6.2.1 看门狗基本结构 145
6.2.2 看门狗基本操作 145
6.2.3 看门狗寄存器 147
6.2.4 看门狗应用 149
第7章 可编程数字量通用I/O 150
7.1 数字接口的结构和实现方法 150
7.1.1 基本结构 150
7.1.2 实现方法 151
7.2 DSP数字量I/O功能概述 152
7.3 端口配置 152
7.4 数字量I/O寄存器及其应用 155
7.4.1 I/O复用寄存器及其应用 155
7.4.2 I/O数据寄存器及其应用 161
7.5 数字量I/O应用举例 163
第8章 中断系统及其应用 164
8.1 C28x处理器中断概述 164
8.2 PIE中断扩展 165
8.2.1 外设级中断 166
8.2.2 PIE级中断 166
8.2.3 CPU级中断 167
8.3 中断向量 167
8.3.1 中断向量的分配 167
8.3.2 中断向量的映射方式 168
8.4 中断源 176
8.4.1 复用中断处理过程 176
8.4.2 使能和禁止外设复用中断过程 177
8.4.3 从外设到CPU的复用中断请求流程 178
8.5 可屏蔽中断处理 179
8.5.1 中断标志设置(产生中断) 179
8.5.2 中断使能(单独使能中断) 179
8.5.3 全局使能(全局使能中断) 180
8.6 定时器中断应用举例 180
8.6.1 定时器基本操作 180
8.6.2 定时器寄存器 181
8.7 定时器中断应用举例 184
第9章 事件管理器及其应用 185
9.1 事件管理器概述 185
9.2 通用定时器 186
9.2.1 通用定时器计数模式 187
9.2.2 定时器的比较操作 189
9.2.3 通用定时器寄存器 196
9.3 比较单元及PWM输出 201
9.3.1 比较单元功能介绍 201
9.3.2 PWM信号 202
9.3.3 与比较器相关的PWM电路 203
9.3.4 PWM输出逻辑及死区控制 204
9.3.5 PWM信号的产生 206
9.3.6 比较单元寄存器 211
9.4 捕获单元 217
9.4.1 捕获单元的应用 217
9.4.2 捕获单元的结构 218
9.4.3 捕获单元的操作 218
9.4.4 捕获单元相关寄存器 220
9.5 正交编码脉冲单元 222
9.5.1 光电编码器原理 222
9.5.2 正交编码脉冲单元结构及其接口 223
9.5.3 QEP电路时钟 224
9.5.4 QEP的解码 224
9.5.5 QEP电路的寄存器设置 225
9.5.6 QEP电路应用 225
9.6 事件管理器中断 227
9.6.1 中断产生及中断矢量 229
9.6.2 定时器的中断 229
9.6.3 捕获中断 230
9.6.4 中断寄存器 230
9.7 事件管理器应用举例 234
9.8 增强型外设 236
9.8.1 ePWM功能 236
9.8.2 增强捕捉单元 240
9.8.2 增强正交编码脉冲模块(eQEP) 248
第10章 SPI接口及其应用 256
10.1 SPI模块功能概述 256
10.2 SPI的数据传输 258
10.2.1 主控制器模式 259
10.2.2 从设备模式 260
10.2.3 FIFO操作 260
10.3 SPI寄存器 261
10.3.1 SPI配置控制寄存器(SPICCR) 261
10.3.2 SPI操作控制寄存器(SPICTL) 263
10.3.3 SPI状态寄存器(SPISTS) 265
10.3.4 SPI波特率设置寄存器(SPIBRR) 266
10.3.5 SPI仿真缓冲寄存器(SPIRXEMU) 267
10.3.6 SPI串行接收缓冲寄存器(SPIRXBUF) 267
10.3.7 SPI串行发送缓冲寄存器(SPITXBUF) 268
10.3.8 SPI串行数据寄存器(SPIDAT) 268
10.3.9 SPIFFTX寄存器 269
10.3.10 SPIFFRX寄存器 270
10.3.11 SPIFFCT寄存器 271
10.3.12 SPI优先级控制寄存器(SPIPRI) 272
10.4 应用实例 273
第11章 I2C总线接口及其应用 276
11.1 TMS320c28xxx处理器I2C总线 276
11.1.1 I2C主要特点 276
11.1.2 功能概述 276
11.1.3 时钟产生 277
11.2 I2C总线操作 278
11.2.1 输入和输出电平 278
11.2.2 数据状态要求 278
11.2.3 操作模式 278
11.2.4 I2C模块START和停止条件 279
11.2.5 串行数据格式 280
11.2.6 不响应信号(NACK)产生 282
11.3 I2C总线应用举例 282
第12章 eCAN总线及其应用 295
12.1 CAN总线概述 295
12.1.1 CAN总线特点 295
12.1.2 CAN总线数据格式 295
12.1.3 CAN总线的协议 297
12.2 C28x的eCAN模块介绍 301
12.2.1 eCAN总线模块概述 301
12.2.2 eCAN总线模块特点 302
12.3 eCAN总线模块的使用 305
12.3.1 eCAN模块初始化 305
12.3.2 消息发送 323
12.3.3 消息接收 327
12.3.4 过载情况的处理 333
12.3.5 远程帧邮箱的处理 334
12.3.6 CAN模块中断及其应用 336
12.3.7 eCAN模块定时器管理 345
12.3.8 CAN模块的掉电模式 348
12.4 CAN总线应用举例 349
第13章 SCI接口应用 351
13.1 SCI接口特点 351
13.2 SCI数据格式 353
13.3 SCI增强功能 356
13.3.1 SCI的16级FIFO缓冲 356
13.3.2 SCI自动波特率检测 357
13.3.3 多处理器通信 358
13.4 SCI接口应用 361
13.4.1 硬件设计 361
13.4.2 SCI寄存器 362
13.4.3 SCI初始化 363
13.4.4 SCI发送数据 369
13.5 接收发送数据 382
第14章 A/D转换单元 390
14.1 A/D转换单元概述 390
14.2 排序器操作 392
14.2.1 排序器操作方式 393
14.2.2 排序器的启动/停止模式 406
14.2.3 输入触发源 407
14.2.4 排序转换的中断操作 407
14.3 ADC的时钟控制 409
14.4 ADC参考电压 410
14.5 ADC单元寄存器 411
14.5.1 ADC模块控制寄存器1 411
14.5.2 ADC模块控制寄存器2 413
14.5.3 ADC模块控制寄存器3 416
14.5.4 最大转换通道寄存器(MAXCONV) 418
14.5.5 自动排序状态寄存器(AUTO_SEQ_SR) 419
14.5.6 ADC状态和标志寄存器(ADC_ST_FLG) 420
14.5.7 ADC输入通道选择排序控制寄存器 422
14.5.8 ADC转换结果缓冲寄存器(RESULTn) 422
14.6 ADC应用举例 423
第15章 存储器应用及Boot引导模式15.1 F28xx映射空间概述 424
15.2 XINTF接口扩展 426
15.2.1 XINTF接口概述 426
15.2.2 XINTF接口操作 427
15.2.3 XINTF接口应用举例 428
15.3 Flash及其应用 429
15.3.1 Flash存储器特点 429
15.3.2 Flash存储器寻址空间分配 429
15.3.3 C28x启动顺序 430
15.3.4 Flash初始化 431
15.3.5 Flash编程 432
15.4 其他引导方式 438
15.4.1 处理器引导配置 438
15.4.2 C28x中断向量表 440
15.4.3 BOOTROM基本情况介绍 440
15.4.4 BootLoader数据流 441
15.4.5 BootLoader传输流程 443
15.4.6 初始引导汇编函数 443
15.4.7 SCI引导装载 444
15.4.8 并行GPIO装载 444
15.4.9 SPI引导模式 446