內容簡介
這是一本f28x系統的入門書。書中提供的f28x外設驅動源碼檔案是tms 320 f28x系統的底層檔案,適合所有f28x硬體系統。實踐證明,從可操作調試的外設驅動源碼出發,是進入f28x領域的一條捷徑。
通過解讀德州儀器提供的dsp2000系列外設驅動源碼(文檔名sprc097)的方式,介紹了tms 320 f28x各種外設的驅動機制、運行要領及與系統之間的關係,並對建立sprc097檔案體系的位域結構體方法給出詳細的說明。書中原始碼均通過實際運行驗證。本書可作為電氣、自動控制和電子類專業本科生和研究生的教科書或參考書,也可作為相關領域的工程技術人員的參考書。
目錄
第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波特率的計算 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)的4類中斷 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中斷的產生 283
9.3.2中斷設定 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