标题：TMS 320 F28x源码解读
基本信息
  作者： 任润柏    周荔丹    姚钢
丛书名： DSP应用丛书
出版社：电子工业出版社
ISBN：9787121113291
出版日期：2010 年7月
版次：1-1
内容简介
这是一本f28x系统的入门书。书中提供的f28x外设驱动源码文件是tms 320 f28x系统的底层文件，适合所有f28x硬件系统。实践证明，从可操作调试的外设驱动源码出发，是进入f28x领域的一条捷径。
通过解读德州仪器提供的dsp2000系列外设驱动源码（文档名sprc097）的方式，介绍了tms 320 f28x各种外设的驱动机制、运行要领及与系统之间的关系，并对建立sprc097文件体系的位域结构体方法给出详细的说明。书中源代码均通过实际运行验证。本书可作为电气、自动控制和电子类专业本科生和研究生的教科书或参考书，也可作为相关领域的工程技术人员的参考书。
目录
第1章 dsp f28x使用入门 1
1.1 项目文件的目录结构 1
1.2 外设位域结构体方法综述 2
1.2.1传统#define方法 2
1.2.2位域及结构体方法 3
1.2.3添加位域结构体 6
1.2.4共用体结构体位域的的应用实例 8
1.3 外设示例项目 10
1.3.1开启一个项目 10
1.3.2新建一个项目 13
1.3.3示例程序结构 19
1.3.4示例流程及示例一览表 21
第2章 cpu定时器0的驱动 24
2.1 定时器基本概念 24
2.1.1定时器时钟和时钟源 24
2.1.2定时器寄存器 25
2.1.3控制定时器速率的几个因素 27
2.1.4启动定时器0步骤 28
2.2 定时器0中断设置 29
2.3 关于configcputimer()函数的说明 30
.2.4 定时器0中断启动程序实例（cputimer.c） 32
第3章 通用输入/输出（gpio） 38
3.1 gpio概述 38
3.1.1 gpio寄存器 38
3.1.2寄存器功能介绍 41
3.1.3 gpio的启动 43
3.2 程序实例 45
3.2.1 gpio切换测试程序（gpiotoggle.c） 45
3.2.2 gpio回送测试程序（gpioloopback.c） 51
第4章 串行通信接口（sci） 59
4.1 sci模块概述 59
4.1.1 sci寄存器一览表 59
4.1.2 sci引脚的连接 60
4.1.3 sci通信数据格式 61
4.1.4多处理器（多机）通信的唤醒模式 62
4.2 sci模块启动要领 63
4.2.1串行通信接口的配置 63
4.2.2 sci时钟及波特率的配置 64
4.2.3通信模式的配置 65
4.2.4 sci数据发送及接收过程 65
4.3 接收和发送过程中的中断逻辑 68
4.3.1标准模式下的sci中断 70
4.3.2增强型模式下的sci中断 71
4.3.3 sci中断设置指令 72
4.4 程序实例 74
4.4.1 sci数字回送测试程序（sciloopbac.c） 74
4.4.2通过中断进行数字回送测试程序（sciloopbackint.c）81
4.4.3 sci自动波特检测示例（sciautobaud.c） 89
第5章 串行外围接口（spi） 99
5.1 spi模块概述 99
5.2 spi工作模式 101
5.2.1主机工作模式 102
5.2.2从机工作模式 103
5.2.3数据传送格式 104
5.3 spi时钟及波特率 105
5.3.1 spi时钟 105
5.3.2波特率的计算 106
5.3.3 spi时钟方案 107
5.4 spi中断 107
5.4.1标准模式下的spi中断 108
5.4.2增强模式下的spi中断 109
5.5 spi的启动和配置指令 111
5.5.1 spi同步串行接口的配置 111
5.5.2 spi时钟及波特率的配置 111
5.5.3 spi配置控制寄存器（spiccr）的配置 111
5.5.4 spi工作寄存器（spictl）的配置 112
5.5.5 spi中断设置 113
5.6 程序实例 115
5.6.1 spi数字回送程序（spiloopback.c） 115
5.6.2采用中断的spi数字回送程序（spiloopbackinterrupts.c） 120
5.6.3数模（dac）转换测试程序（spidac.c） 126
第6章 多通道缓冲接口（mcbsp）的驱动 134
6.1 mcbsp概述 134
6.1.1 mcbsp寄存器列表 135
6.1.2多通道缓冲串行端口的配置 136
6.2 mcbsp采样率发生器时钟 137
6.2.1内部时钟clkg与帧同步脉冲fsg的计算 138
6.2.2采样率发生器clkg时钟的控制 139
6.2.3采样率发生器的输入极性选择 139
6.2.4帧同步信号fsg用于接收器和发送器的条件 140
6.2.5帧脉冲检测和时钟同步模块的作用 140
6.3 mcbsp的接收与发送 141
6.3.1 mcbsp的接收 141
6.3.2 mcbsp的发送 142
6.4 多通道选择模式 143
6.5 spi协议 146
6.6 接收器和发送器的配置与实例 149
6.6.1接收器配置 149
6.6.2发送器的配置 153
6.7 mcbsp配置实例 155
6.7.1复位mcbsp 156
6.7.2 mcbsp控制寄存器的配置 156
6.7.3 mcbsp增强模式下的配置 158
6.7.4启动mcbsp 160
6.8 mcbsp中断 160
6.8.1接收中断的产生 160
6.8.2发送中断的产生 162
6.8.3中断设置 164
6.9 mcbsp寄存器 165
6.10 程序示例 173
6.10.1 mcbsp数字回送程序（mcbsploopback.c） 173
6.10.2通过中断进行mcbsp数字回送程序（mcbsp_ffdlb_int.c） 184
第7章 增强型局域网络控制器（ecan）的驱动 193
7.1 can概述 193
7.1.1 can数据帧的组成 193
7.1.2 ecan控制和状态寄存器 195
7.2 ecan模块的结构及运行机制 196
7.3 ecan的设置和启动 197
7.3.1使能can通信 198
7.3.2时钟模块的配置及计算 199
7.3.3过滤器的使用 201
7.3.4设置主控制寄存器（canmc） 202
7.3.5发送邮箱的配置 204
7.3.6接收邮箱的配置 208
7.3.7远程帧邮箱的使用 209
7.4 ecan的中断 211
7.4.1中断标志位的选择 212
7.4.2中断配置 212
7.4.3邮箱中断 213
7.4.4邮箱中断处理 214
7.4.5中断服务程序结束前必须的操作 215
7.4.6中断设置 216
7.5 程序实例（ecan.c） 218
第8章 事件管理器（ev）驱动要领及例程 230
8.1 定时器模块 231
8.1.1定时器的时钟源及时钟 232
8.1.2定时器的设置和启动 233
8.1.3定时器的四种计数模式 234
8.1.4定时器的比较操作和输出逻辑 236
8.1.5对称和非对称的波形发生器 237
8.1.6 txpwm脉冲的计算 238
8.1.7定时器的中断 240
8.1.8 pwm的设置流程及复位引发的事件 240
8.1.9 txpwm引脚输出脉冲频率及占空比的控制 241
8.2 全比较单元模块 242
8.2.1全比较单元的设置 243
8.2.2比较单元的死区逻辑模块 244
8.2.3比较单元的操作和输出逻辑 246
8.2.4 pwm1/pwm2引脚输出及占空比的控制 248
8.3 定时器2模块（正交编码qep模块） 248
8.4 捕获单元模块 250
8.5 控制逻辑模块 254
8.6 事件管理器（ev）的中断 255
8.6.1事件管理器（ev）的4类中断 256
8.6.2中断的处理过程 258
8.6.3中断设置 258
8.7 用事件管理器启动模数转换 260
8.8 通过事件管理产生pwm示例（evpwm.c） 261
第9章 模数转换器（adc） 270
9.1 adc概述 270
9.1.1 adc寄存器列表 270
9.1.2级联模式下的工作原理 271
9.1.3双序列模式下的工作原理 272
9.2 adc模块设置要领 274
9.2.1 adc的上电顺序 274
9.2.2 adc时钟及采样周期的配置 275
9.2.3采样方式及序列发生器模式配置 279
9.2.4通道及运行方式的配置 279
9.2.5启动模数转换的几种方法 281
9.2.6序列发生器的覆盖功能 283
9.3 adc中断 283
9.3.1中断的产生 283
9.3.2中断设置 284
9.4 模数转换的电阻型输入网络 285
9.5 示例程序 286
9.5.1 adc序列发生器模式测试程序（adcseqmode.c） 286
9.5.2在中断状态下的连续级联模式模数转换程序（adcsoc.c） 289
9.5.3 adc序列发生器覆盖特性测试程序（adcseqovd.c） 295
第10章 外设中断扩展（pie）模块的使用 302
10.1 pie控制器概述 302
10.1.1向量表映射 304
10.1.2 pie中断流程 306
10.1.3 pie向量表的建立 307
10.2 pie主要的几个寄存器 309
10.3 pie向量表 313
10.4 外设中断的设置步骤 314
10.5 程序实例 316
10.5.1用软件区分中断优先级示例（swprioritizedinterrupts.c） 316
10.5.2看门狗中断例程（watchdog.c） 323
第11章 cmd文件的运用 328
11.1 memory伪指令 328
11.2 sections伪指令 329
11.3 cmd文件中的段 333
11.4 存储空间结构 335
11.4.1片内saram的设置 336
11.4.2片内flash的设置 338
11.4.3 f2812外设寄存器的映像空间 339
11.4.4外部xintf7区引导的cmd文件配置 340
11.4.5片内引导rom的使用 343
11.5 内部ram区引导的cmd文件配置 345
11.6 内部flash区引导的cmd文件配置 346
11.7 示例程序 349
11.7.1程序从外部扩展接口运行示例（runfromxintf.c） 349
11.7.2程序在片内flash运行示例（flash.c） 355
第12章 iqmath方法概述 366
12.1 iqmath方法的引入 366
12.2 32位iq数据的定义 367
12.3 iq数据的运算规则 369
12.4 iqmath 函数及其调用方法 369
参考文献 377