本書介紹了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中斷及低功耗模式喚醒選擇寄存器