本书介绍了TI公司的TMS320F28335 DSP在电机控制系统中的开发与应用。针对TMS320F28335 DSP具有众多功能强大的外设的特点, 重点分析了时钟与中断控制的流程, 并描述了电机控制中常用的片上外设与接口, 如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法, 并附有具体的例程。
(1)本书提供教学课件(PPT)和程序源代码,请在清华大学出版社本书页面下载。
(2)知识系统。本书介绍了TI公司的TMS320F28335 DSP在工业控制与电机驱动系统中的开发与应用。以CCS6.x版本为基础,讲述了其编程开发的方法与流程,并描述了编译器与链接器的各种典型选项及其含义。
(3)注重实践。本书基于TMS320F28335 DSP的众多片上外设,描述了电机控制中常用的片上外设与接口,如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法,并附有具体的例程。最后,描述了电机控制常用算法的具体实现,并给出了控制永磁同步电机的详细例子。
Foreword
前言
TMS320F28335属于TI公司的C2000系列DSP的高端系列。它具有强大的数字信号处理功能,集成了大量的外设供控制使用,具有微控制器(MCU)的功能,并兼有RISC处理器的代码密度(RISC的特点是单周期指令执行,寄存器到寄存器操作,以及改进的哈佛结构、循环寻址)和DSP的执行速度。除此之外,其开发过程与微控制器的开发过程又比较相似(微控制器的功能包括易用性、直观的指令集、字节包装和拆包、位操作),其处理能力强大,片上外设丰富,在高性能的电机控制领域中得到了广泛的引用。
本书作者在TI公司从事C2000系列DSP开发应用多年,书中集合了作者在开发过程中的一些经验,供广大读者交流、讨论。
本书共18章。
第1~15章讲述基础知识,首先简要介绍目前用于高性能电机控制开发的DSP现状,其次重点描述TMS320F28335DSPCPU+FPU的架构特点。接着,基于目前最新的CCStudio6.x软件,描述开发、编程的思想与软件的基本使用方法。最后针对TMS320F28335(书中简称F28335)DSP具有众多功能强大的外设的特点,重点分析时钟与中断控制的流程,并描述电机控制中常用的片上外设与接口,如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法,并附有具体的例程。
第16~18章为应用部分,给出了交流调速中常用算法的DSP实现方法,并以永磁同步电机
为例,描述了完整的矢量控制系统及其DSP实现方案,最后描述了如何自己动手打造一个最小系统板。
在本书的编写过程中,参阅了一些优秀的图书和文献资料,在此对这些作品的作者表示感谢。其中对TI公司器件手册、用户指南中图表的直接引用已得到TI公司的授权。尤其要感谢清华大学出版社工作人员为本书的出版所做的大量工作。
由于时间仓促,书中的疏漏与不当之处在所难免,恳请广大读者批评、指正。
编者
2017年5月
第5章
通用输入/输出端口
通用输入/输出端口
GPIO作为与其他设备进行数据交换的通道,具有重要作用,在F28335DSP有限的引脚中,大多数引脚具有第二或第三功能,可以通过配置相应的寄存器(GPIOMUX)在各个功能之间进行切换。
5.1GPIO概述
F28335芯片提供了多达88个多功能引脚,每个引脚都可以配置成数字I/O工作模式或外设I/O工作模式,可以通过功能切换寄存器(GPxMUX1/2)进行切换。当不使用片内外设时,可以将其配置成数字I/O工作模式,通过方向控制寄存器(GPxDIR)控制数字I/O的输入/输出方向,并可以通过输入限定寄存器(GPxQSEL1/2)对输入信号进行限定,从而消除外部噪声信号。F28335的88个引脚被分为A、B、C三组端口,其中A端口包括GPIO0~GPIO31,B端口包括GPIO32~GPIO63,C端口包括GPIO64~GPIO87。表51和表52所示的寄存器可用来对GPIO进行配置,从而满足系统要求,在5.2节中将对各个寄存器的具体定义进行介绍。
表51GPIO控制寄存器
名称
地址
大小(×16位)
寄存器说明
GPACTRL
0x6F80
2
GPIOA控制寄存器(GPIO0~GPIO31)
GPAQSEL1
0x6F82
2
GPIOA输入限定选择寄存器1(GPIO0~GPIO15)
GPAQSEL2
0x6F84
2
GPIOA输入限定选择寄存器2(GPIO16~GPIO31)
GPAMUX1
0x6F86
2
GPIOA功能选择控制寄存器1(GPIO0~GPIO15)
GPAMUX2
0x6F88
2
GPIOA功能选择控制寄存器2(GPIO16~GPIO31)
GPADIR
0x6F8A
2
GPIOA方向控制寄存器(GPIO0~GPIO31)
GPAPUD
0x6F8C
2
GPIOA上拉控制寄存器(GPIO0~GPIO31)
GPBCTRL
0x6F90
2
GPIOB控制寄存器(GPIO0~GPIO31)
GPBQSEL1
0x6F92
2
GPIOB输入限定选择寄存器1(GPIO0~GPIO15)
续表
名称
地址
大小(×16位)
寄存器说明
GPBQSEL2
0x6F94
2
GPIOB输入限定选择寄存器2(GPIO16~GPIO31)
GPBMUX1
0x6F96
2
GPIOB功能选择控制寄存器1(GPIO0~GPIO15)
GPBMUX2
0x6F98
2
GPIOB功能选择控制寄存器2(GPIO16~GPIO31)
GPBDIR
0x6F9A
2
GPIOB方向控制寄存器(GPIO0~GPIO31)
GPBPUD
0x6F9C
2
GPIOB上拉控制寄存器(GPIO0~GPIO31)
GPCMUX1
0x6FA6
2
GPIOC功能选择控制寄存器1(GPIO0~GPIO15)
GPCMUX2
0x6FA8
2
GPIOC功能选择控制寄存器2(GPIO16~GPIO31)
GPCDIR
0x6FAA
2
GPIOC方向控制寄存器(GPIO0~GPIO31)
GPCPUD
0x6FAC
2
GPIOC上拉控制寄存器(GPIO0~GPIO31)
表52GPIO中断及低功耗模式唤醒选择寄存器