TMS 320 F28x源码解读
2010-7
电子工业出版社
任润柏,周荔丹,姚钢
377
无
随着能源日趋紧张,对电能进行有效的控制从而节约能源越发显得重要。TI推出的F28x系统芯片是一款在电动机及电力控制中被业界广泛应用的控制类芯片,但目前该系列芯片在国内的应用远远没有达到51系列单片机那样的程度。 五六年前,笔者自恃有十几年从事8位单片机开发的经验,曾几次捧起DSP2000系列的原理书想了解一个大概,然而几次不得不驻足兴叹。事实上,即使是一个比较简单的51系统,其入门也不能仅靠原理书来完成,必须有示范板及相关的驱动源码,初学者在逐一调试这些驱动源码的基础上才能慢慢入门和渐入佳境。 F28x(32位机)是一个较51(8位机)系统更复杂、更难学的系统,然而,相关中文书籍除翻译外版的原理书之外,基本上没有行之有效的驱动源码的介绍。事实上,TI早在2003年9月就颁布了一个V100版本的SPRC097文件,之后,在2007年9月将该文件更新为V111版本,并在2009年7月又更新为V120版本。该文件以C/C++语言为基础,通过位域结构体的方法为F28x提供了完整的一个头文件体系,并且针对F28x的外围设备给出了20个外设驱动源码(V100之后的版本增加了5个源码)。这是F28x入门的一个有效文件。 2006年初夏,笔者从国内第三方获得eZdsp翻版的示范板,发现与示范板配套的很少几个代码都取自SPRC097文件中的部分内容,但缺少了前后关联及SPR.C097文件自身的系统性。因此,笔者尝试直接在SPRC097文件系统上运行该文件中的源码,多数源码竟然可以直接调试运行!之后,笔者潜心阅读、调试,并将点滴领悟记录下来。到2007年年初,这些记录(或称为解读)已有相当篇幅,笔者设计的:DSP2812示范板也于2006年年底调试完毕。 2007年5月,经上海交通大学陈健老师(德州仪器DSP大学计划的国内早期发起人和组织者之一)的引荐,认识了德州仪器亚洲区大学计划部沈洁经理及半导体事业部经理谭徽博士,当年他们对笔者所做的事情以及打算将SPRC097文件源码解读成书的愿望的褒扬至今历历在目。 TI大学计划部与上海交通大学电气工程系连续两年(2008-2009年)在上海交通大学举办DSP2000青年教师暑期培训班,均采用2008年6月由笔者编写的“DSP281x外设驱动源码解读”讲义(308页)作为教材。 本书以“DSP281x外设驱动源码解读”讲义为雏形,对TI提供的外设驱动源码进行了更深入的解读,具有以下特点: (1)对构建SPRC097文件体系的位域结构体方法及文件中出现的陌生的指令进行详细的注解; (2)对尚未公示的采用SPRC097文件风格建立一个简捷且容易管理的新项目的方法进行解析和引用; (3)对每条外设示例源码设置专用寄存器的指令,具体到对每一个控制位进行注释.
这是一本F28x系统的入门书。书中提供的F28x外设驱动源码文件是TMS 320 F28x系统的底层文件,适合所有F28x硬件系统。实践证明,从可操作调试的外设驱动源码出发,是进入F28x领域的一条捷径。 本书通过解读德州仪器提供的DSP2000系列外设驱动源码(文档名SPRC097)的方式,介绍了TMS 320 F28x各种外设的驱动机制、运行要领及与系统之间的关系,并对建立SPRC097文件体系的位域结构体方法给出详细的说明。书中源代码均通过实际运行验证。 本书可作为电气、自动控制和电子类专业本科生和研究生的教科书或参考书,也可作为相关领域的工程技术人员的参考书。 书中的所有源码、支持源码的头文件和共享文件均可在电子工业出版社网站(http://www.phei.com.cn/“资源下载”)免费下载。
第1章 DSP F28x使用入门 1.1 项目文件的目录结构 1.2 外设位域结构体方法综述 1.2.1 传统#define方法 1.2.2 位域及结构体方法 1.2.3 添加位域结构体 1.2.4 共用体结构体位域的的应用实例 1.3 外设示例项目 1.3.1 开启一个项目 1.3.2 新建一个项目 1.3.3 示例程序结构 1.3.4 示例流程及示例一览表第2章 CPU定时器0的驱动 2.1 定时器基本概念 2.1.1 定时器时钟和时钟源 2.1.2 定时器寄存器 2.1.3 控制定时器速率的几个因素 2.1.4 启动定时器0步骤 2.2 定时器0中断设置 2.3 关于ConfigCpuTimer()函数的说明 2.4 定时器0中断启动程序实例(CpuTimer.c)第3章 通用输入/输出(GPIO) 3.1 GPIO概述 3.1.1 GPIO寄存器 3.1.2 寄存器功能介绍 3.1.3 GPIO的启动 3.2 程序实例 3.2.1 GPIO切换测试程序(GpioToggle.c) 3.2.2 GPIO回送测试程序(GpioLoopback.c)第4章 串行通信接口(SCI) 4.1 SCI模块概述 4.1.1 SCI寄存器一览表 4.1.2 SCI引脚的连接 4.1.3 SCI通信数据格式 4.1.4 多处理器(多机)通信的唤醒模式 4.2 SCI模块启动要领 4.2.1 串行通信接口的配置 4.2.2 SCI时钟及波特率的配置 4.2.3 通信模式的配置 4.2.4 SCI数据发送及接收过程 4.3 接收和发送过程中的中断逻辑 4.3.1 标准模式下的SCI中断 4.3.2 增强型模式下的SCI中断 4.3.3 SCI中断设置指令 4.4 程序实例 4.4.1 SCI数字回送测试程序(SciLoopBac.c) 4.4.2 通过中断进行数字回送测试程序(SciLoopBackInt.c)81 4.4.3 SCI自动波特检测示例(SciAutobaud.c)第5章 串行外围接口(SPI) 5.1 SPI模块概述 5.2 SPI工作模式 5.2.1 主机工作模式 5.2.2 从机工作模式 5.2.3 数据传送格式 5.3 SPI时钟及波特率 5.3.1 SPI时钟 5.3.2 波特率的计算 5.3.3 SPI时钟方案 5.4 SPI中断 5.4.1 标准模式下的SPI中断 5.4.2 增强模式下的SPI中断 5.5 SPI的启动和配置指令 5.5.1 SPI同步串行接口的配置 5.5.2 SPI时钟及波特率的配置 5.5.3 SPI配置控制寄存器(SPICCR)的配置 5.5.4 SPI工作寄存器(SPICTL)的配置 5.5.5 SPI中断设置 5.6 程序实例 5.6.1 Spi数字回送程序(SpiLoopBack.c) 5.6.2 采用中断的Spi数字回送程序(SpiLoopBackInterrupts.c) 5.6.3 数模(DAC)转换测试程序(SpiDac.c)第6章 多通道缓冲接口(McBSP)的驱动第7章 增强型局域网络控制器(eCAN)的驱动第8章 事件管理器(EV)驱动要领及例程第9章 模数转换器(ADC)第10章 外设中断扩展(PIE)模块的使用第11章 CMD文件的运用第12章 IQmath方法概述参考文献
无
挺好的,闲着没事看看
henxiangxi
好书,筹备之
学习DSP的好书
一本不错的dsp指导书
正版书,挺有用的