第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 SPI波特率的计算 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)的四类中断 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 ADC中断的产生 283
9.3.2 ADC中断设置 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