本書介紹了TI公司的TMS320F28335 DSP在電機控制系統(tǒng)中的開發(fā)與應用。針對TMS320F28335 DSP具有眾多功能強大的外設的特點, 重點分析了時鐘與中斷控制的流程, 并描述了電機控制中常用的片上外設與接口, 如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法, 并附有具體的例程。
(1)本書提供教學課件(PPT)和程序源代碼,請在清華大學出版社本書頁面下載。
。2)知識系統(tǒng)。本書介紹了TI公司的TMS320F28335 DSP在工業(yè)控制與電機驅動系統(tǒng)中的開發(fā)與應用。以CCS6.x版本為基礎,講述了其編程開發(fā)的方法與流程,并描述了編譯器與鏈接器的各種典型選項及其含義。
(3)注重實踐。本書基于TMS320F28335 DSP的眾多片上外設,描述了電機控制中常用的片上外設與接口,如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法,并附有具體的例程。最后,描述了電機控制常用算法的具體實現(xiàn),并給出了控制永磁同步電機的詳細例子。
Foreword
前言
TMS320F28335屬于TI公司的C2000系列DSP的高端系列。它具有強大的數(shù)字信號處理功能,集成了大量的外設供控制使用,具有微控制器(MCU)的功能,并兼有RISC處理器的代碼密度(RISC的特點是單周期指令執(zhí)行,寄存器到寄存器操作,以及改進的哈佛結構、循環(huán)尋址)和DSP的執(zhí)行速度。除此之外,其開發(fā)過程與微控制器的開發(fā)過程又比較相似(微控制器的功能包括易用性、直觀的指令集、字節(jié)包裝和拆包、位操作),其處理能力強大,片上外設豐富,在高性能的電機控制領域中得到了廣泛的引用。
本書作者在TI公司從事C2000系列DSP開發(fā)應用多年,書中集合了作者在開發(fā)過程中的一些經(jīng)驗,供廣大讀者交流、討論。
本書共18章。
第1~15章講述基礎知識,首先簡要介紹目前用于高性能電機控制開發(fā)的DSP現(xiàn)狀,其次重點描述TMS320F28335DSPCPU+FPU的架構特點。接著,基于目前最新的CCStudio6.x軟件,描述開發(fā)、編程的思想與軟件的基本使用方法。最后針對TMS320F28335(書中簡稱F28335)DSP具有眾多功能強大的外設的特點,重點分析時鐘與中斷控制的流程,并描述電機控制中常用的片上外設與接口,如GPIO、ADC、ePWM、eQEP、eCAP、SCI、SPI、DMA、XINTF等的使用方法,并附有具體的例程。
第16~18章為應用部分,給出了交流調速中常用算法的DSP實現(xiàn)方法,并以永磁同步電機
為例,描述了完整的矢量控制系統(tǒng)及其DSP實現(xiàn)方案,最后描述了如何自己動手打造一個最小系統(tǒng)板。
在本書的編寫過程中,參閱了一些優(yōu)秀的圖書和文獻資料,在此對這些作品的作者表示感謝。其中對TI公司器件手冊、用戶指南中圖表的直接引用已得到TI公司的授權。尤其要感謝清華大學出版社工作人員為本書的出版所做的大量工作。
由于時間倉促,書中的疏漏與不當之處在所難免,懇請廣大讀者批評、指正。
編者
2017年5月
Contents
第1章電機控制DSP簡介
1.1DSP芯片的主要特點
1.2常用電機控制芯片
1.3TI公司的DSP介紹
1.3.1C2000電機控制DSP的分類
1.3.2F28335系列的特點
1.3.3F28335系列的引腳說明
1.4F28335DSP的內核
1.4.1CPU介紹
1.4.2總線結構
1.4.3流水線機制
1.4.4FPU流水線
1.5F28335DSP的存儲器
1.5.1存儲器映射
1.5.2代碼安全模塊
1.6F28335DSP的片上外設
1.7習題
第2章軟件開發(fā)平臺與編程方法
2.1基于CCS的開發(fā)流程
2.2鏈接時的命令文件——cmd文件
2.3外設寄存器的頭文件與初始化
2.4數(shù)值的處理
2.4.1二進制下2的補碼
2.4.2F28335的符號擴展模式
2.4.3二進制乘法
2.4.4二進制小數(shù)
2.4.5定點編程與浮點編程
2.4.6IEEE754單精度浮點
2.4.7調用TI的實時浮點庫
2.5DSP編程中的數(shù)據(jù)類型
2.6基于CCS6.x的開發(fā)流程
2.6.1新建工程
2.6.2添加文件
2.6.3工程屬性配置
2.6.4程序調試
2.6.5燒寫Flash
2.6.6CCS在線學習功能
2.6.7controlSUITETM學習套件
2.7習題
TMS320F28335DSP原理、開發(fā)及應用
第3章DSP的高級編程選項
3.1處理器選項
3.2程序優(yōu)化選項
3.3調試與路徑選項
3.4控制與語言選項
3.5預處理與診斷
3.6運行時模型
3.7鉤子函數(shù)與庫函數(shù)
3.8匯編器選項
3.9文件、目錄與擴展名
3.10代碼規(guī)范MISRAC
3.11鏈接器的基本選項
3.12C代碼的入口程序c_int00
3.13典型的編譯器配置選項
3.14實時運行庫RTS的選擇
3.15習題
第4章F28335系統(tǒng)時鐘與中斷控制
4.1OSC與PLL模塊
4.1.1PLL功能配置
4.1.2時鐘信號監(jiān)視電路
4.1.3相關寄存器
4.1.4PLL配置注意事項
4.2外設時鐘信號
4.2.1相關寄存器
4.2.2XCLKOUT信號
4.3低功耗模式
4.4看門狗模塊
4.4.1工作原理
4.4.2相關寄存器
4.5CPU定時器0/1/2
4.5.1工作原理
4.5.2相關寄存器
4.6寄存器EALLOW保護
4.7外設中斷擴展模塊PIE
4.7.1PIE模塊概述
4.7.2中斷向量列表的映射地址
4.7.3中斷源
4.7.4中斷向量列表
4.7.5PIE模塊相關寄存器
4.7.6CPU中斷控制相關寄存器
4.7.7外部中斷控制寄存器
4.7.8應用實例
4.8習題
第5章通用輸入/輸出端口
5.1GPIO概述
5.1.1GPIO工作模式
5.1.2數(shù)字I/O工作模式下的控制
5.1.3輸入限定功能
5.2相關寄存器
5.2.1功能選擇寄存器
5.2.2其他相關寄存器
5.3應用實例
5.3.1GPIO配置步驟
5.3.2軟件設計
5.4習題
第6章模/數(shù)轉換模塊
6.1ADC概述
6.2轉換序列發(fā)生器工作原理
6.3不間斷自動定序模式
6.3.1啟動/停止模式
6.3.2ADC中斷控制
6.4轉換時鐘
6.5ADC基本電氣特性
6.5.1低功耗模式
6.5.2上電時配置順序
6.5.3片內/片外參考電壓選擇
6.6ADC高級功能
6.6.1輸入校正功能
6.6.2序列發(fā)生器覆蓋功能
6.6.3DMA接口
6.7相關寄存器
6.7.1控制寄存器
6.7.2輸入通道選擇寄存器
6.7.3其他相關寄存器
6.8應用實例
6.9習題
第7章增強型脈寬調制模塊
7.1概述
7.2ePWM各子模塊介紹
7.2.1時間基準子模塊
7.2.2比較功能子模塊
7.2.3動作限定子模塊
7.2.4死區(qū)產生子模塊
7.2.5斬波控制子模塊
7.2.6故障捕獲子模塊
7.2.7事件觸發(fā)子模塊
7.3相關寄存器
7.3.1時間基準子模塊寄存器
7.3.2比較功能子模塊寄存器
7.3.3動作限定子模塊寄存器
7.3.4死區(qū)產生子模塊寄存器
7.3.5斬波控制子模塊寄存器
7.3.6故障捕獲子模塊寄存器
7.3.7事件觸發(fā)子模塊寄存器
7.4應用實例
7.4.1BUCK電路的控制
7.4.2半H橋逆變器的控制
7.4.3三相逆變器的控制
7.5習題
第8章增強型正交編碼脈沖模塊
8.1概述
8.1.1常用編碼器結構
8.1.2轉速測量方法
8.1.3eQEP模塊整體結構
8.2正交解碼單元
8.2.1位置計數(shù)器的輸入模式
8.2.2eQEP輸入極性選擇
8.2.3位置比較同步輸出功能
8.3位置計數(shù)器及控制單元
8.3.1位置計數(shù)器的運行模式
8.3.2位置計數(shù)器的鎖存
8.3.3位置計數(shù)器的初始化
8.3.4eQEP位置比較單元
8.4邊沿捕獲單元
8.5eQEP看門狗電路
8.6中斷結構
8.7相關寄存器
8.8應用實例
8.8.1eQEP模塊配置
8.8.2應用程序
8.9習題
第9章增強型捕獲模塊
9.1概述
9.1.1eCAP模塊簡介
9.1.2eCAP工作模式介紹
9.2捕獲工作模式
9.2.1事件預分頻
9.2.2邊沿極性選擇與量化
9.2.3連續(xù)/單次捕獲控制
9.2.432位計數(shù)器及相位控制
9.2.5CAP1~CAP4寄存器
9.2.6中斷控制
9.3APWM工作模式
9.4相關寄存器
9.5應用實例
9.5.1捕獲模式下絕對時間的獲取
9.5.2捕獲模式下差分時間的獲取
9.5.3APWM模式下的應用
9.6習題
第10章串行通信接口模塊
10.1概述
10.2SCI模塊結構及功能介紹
10.2.1SCI功能概述
10.2.2SCI多處理器通信
10.2.3空閑線多處理器模式
10.2.4地址位多處理器模式
10.2.5SCI通信格式
10.2.6SCI的中斷
10.2.7SCI波特率計算
10.2.8SCI增強功能
10.3相關寄存器
10.4應用實例
10.5習題
第5章
通用輸入/輸出端口
通用輸入/輸出端口
GPIO作為與其他設備進行數(shù)據(jù)交換的通道,具有重要作用,在F28335DSP有限的引腳中,大多數(shù)引腳具有第二或第三功能,可以通過配置相應的寄存器(GPIOMUX)在各個功能之間進行切換。
5.1GPIO概述
F28335芯片提供了多達88個多功能引腳,每個引腳都可以配置成數(shù)字I/O工作模式或外設I/O工作模式,可以通過功能切換寄存器(GPxMUX1/2)進行切換。當不使用片內外設時,可以將其配置成數(shù)字I/O工作模式,通過方向控制寄存器(GPxDIR)控制數(shù)字I/O的輸入/輸出方向,并可以通過輸入限定寄存器(GPxQSEL1/2)對輸入信號進行限定,從而消除外部噪聲信號。F28335的88個引腳被分為A、B、C三組端口,其中A端口包括GPIO0~GPIO31,B端口包括GPIO32~GPIO63,C端口包括GPIO64~GPIO87。表51和表52所示的寄存器可用來對GPIO進行配置,從而滿足系統(tǒng)要求,在5.2節(jié)中將對各個寄存器的具體定義進行介紹。
表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)
續(xù)表
名稱
地址
大小(×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中斷及低功耗模式喚醒選擇寄存器