基於ARM Cortex-M0+的 CW32嵌入式開發實戰
許弟建
商品描述
本書以基於ARM Cortex-M0+內核的典型國產芯片—CW32系列單片機為例,從嵌入式產品開發工程師的視角,深入講解從基本原理、電路設計、軟件開發到項目實戰的全過程,幫助讀者掌握基於ARM Cortex-M0+的嵌入式系統開發的核心技能。
此外,本書還註重嵌入式系統開發的實用性、拓展性和可遷移性,旨在使讀者不但可以通過本書實戰案例掌握CW32的開發應用,還可以輕松地推及、掌握Cortex-M系列(包括STM32系列及衍生的各種國產芯片)單片機產品設計技能。
本書既適合作為電子、機電、自動化、物聯網及其他相關專業的本、專科學生開展課程設計、畢業設計、電子競賽培訓等的教材,也可作為從事嵌入式系統開發的工程技術人員的參考書。
無論讀者是嵌入式開發的初學者,還是有一定經驗的開發者,本書都能為讀者提供全面的學習資源和實用的實戰指導,助力讀者在嵌入式開發領域取得更大的進步和成就。
作者簡介
許弟建:重慶科技大學電子與電氣工程學院副教授,主研電子信息方向。陳巧:武漢芯源半導體有限公司總經理助理兼營銷總監,在MCU領域深耕二十餘年,有豐富的行業經驗。李家慶:重慶科技大學電子與電氣工程學院副教授,具有二十餘年的嵌入式系統一線開發和教學經驗。李芳:重慶大學控制理論與控制工程碩士畢業,重慶優易特智能科技有限公司創始人。張常友:教授,新餘市優秀教師,全國大學生電子設計競賽江西賽區評審專家,發表論文二十餘篇,主編和參編教材7本,申請專利10餘項。張亞凡:武漢芯源半導體有限公司技術總監,具有豐富的嵌入式系統及芯片開發經驗。
目錄大綱
第1章 CW32單片機概述 1
1.1 單片機及Cortex-M0+內核概述 1
1.1.1 單片機發展史簡述 1
1.1.2 Cortex-M0+內核介紹 4
1.1.3 Cortex-M0+到底“+”了什麽 5
1.2 CW32單片機介紹 5
1.2.1 武漢芯源半導體有限公司簡介 6
1.2.2 CW32全系列產品概覽 6
1.2.3 通用高性能CW32F系列簡介 8
1.2.4 安全低功耗CW32L系列簡介 10
1.2.5 無線射頻系列簡介 13
1.2.6 車規級CW32A系列簡介 14
1.3 CW32單片機的優點 15
1.3.1 質量可靠 15
1.3.2 性能優越 16
1.3.3 開發者友好 17
1.4 CW32官方網站及芯片選型 17
1.4.1 CW32官方網站及資料獲取 17
1.4.2 CW32芯片選型 19
第2章 CW32開發快速入門 20
2.1 軟件開發環境搭建 20
2.1.1 MDK開發環境概述 20
2.1.2 MDK的安裝與配置 22
2.2 固件庫及PACK的安裝 29
2.2.1 CW32固件庫簡介 29
2.2.2 PACK的安裝 29
2.3 CW32的開發工具 30
2.3.1 與M0+兼容的調試工具 30
2.3.2 CW-DAPLINK調試工具 31
2.4 快速開發入門 32
2.4.1 創建CW32工程模板 32
2.4.2 快速點亮一個LED 37
2.5 CW32的量產工具 40
2.5.1 燒錄器CW-Writer 40
2.5.2 軟件CW-Programmer 41
第3章 CW32F030原理及基礎 47
3.1 芯片特性及內部框圖 47
3.1.1 芯片特性 47
3.1.2 內部框圖 55
3.2 芯片存儲器組織 57
3.2.1 存儲器映射和寄存器邊界地址 58
3.2.2 SRAM 58
3.2.3 FLASH存儲器 59
3.2.4 OTP存儲器 59
3.2.5 系統啟動配置 59
3.3 芯片電源 59
3.3.1 電源監控 60
3.3.2 工作模式 63
3.3.3 低功耗應用 63
3.4 芯片復位 63
3.4.1 系統復位 63
3.4.2 外設復位 65
3.5 芯片時鐘控制 65
3.5.1 系統內部時鐘樹 65
3.5.2 系統時鐘及工作模式 66
3.5.3 系統時鐘源 66
3.5.4 片內外設時鐘控制 71
3.5.5 時鐘啟動及校準 72
3.6 芯片中斷系統 73
3.6.1 概述 73
3.6.2 中斷向量表 73
3.7 芯片調試接口 74
3.7.1 概述 74
3.7.2 SWD接口 75
第4章 GPIO埠 76
4.1 概述 76
4.2 主要特性 76
4.3 功能描述 76
4.3.1 功能框圖 76
4.3.2 數字輸出 77
4.3.3 數字輸入 77
4.3.4 模擬功能 78
4.3.5 復用功能 78
4.3.6 中斷功能 80
4.3.7 其他功能 80
4.4 編程示例 81
4.4.1 數字輸出編程示例 81
4.4.2 數字輸入編程示例 81
4.4.3 模擬功能編程示例 81
4.4.4 復用功能編程示例 81
4.4.5 中斷功能編程示例 81
4.5 寄存器 82
第5章 高級定時器 83
5.1 高級定時器簡介 83
5.2 主要特性 83
5.3 功能描述 84
5.3.1 功能框圖 84
5.3.2 輸入捕獲功能 91
5.3.3 輸出比較功能 93
5.3.4 正交編碼計數 101
5.3.5 觸發ADC 102
5.3.6 DMA功能 102
5.3.7 主從模式 103
5.3.8 內部級聯ITR 104
5.3.9 片內外設互聯ETR 105
5.4 調試支持 105
5.5 編程示例 106
5.5.1 輸入捕獲 106
5.5.2 PWM輸入 106
5.5.3 輸出比較功能 106
5.5.4 互補PWM輸出 107
5.5.5 DMA功能 108
5.5.6 觸發模式 109
5.5.7 門控模式 109
5.5.8 內部級聯ITR 109
5.6 寄存器 109
第6章 ADC 111
6.1 概述 111
6.1.1 主要特性 111
6.1.2 功能框圖 112
6.2 ADC轉換性能 112
6.2.1 轉換時序 112
6.2.2 轉換速度 113
6.2.3 轉換精度 114
6.2.4 轉換結果 114
6.3 工作模式 114
6.3.1 單通道單次轉換模式 114
6.3.2 單通道多次轉換模式 116
6.3.3 單通道連續轉換模式 117
6.3.4 序列連續轉換模式 118
6.3.5 序列掃描轉換模式 119
6.3.6 序列多次轉換模式 120
6.3.7 序列斷續轉換模式 122
6.4 累加轉換功能 123
6.5 自動關閉模式 124
6.6 外部觸發源 125
6.7 模擬看門狗 125
6.8 溫度傳感器 126
6.9 ADC中斷 127
6.10 寄存器 127
第7章 嵌入式硬件設計工具 128
7.1 嵌入式硬件設計概述 128
7.2 常用EDA軟件 129
7.2.1 常用的商用EDA軟件 130
7.2.2 常用的開源EDA軟件 131
7.3 嘉立創EDA簡介 131
7.4 嘉立創EDA功能特點 133
7.4.1 共享系統庫 134
7.4.2 電路模擬與PCB設計 134
7.4.3 3D外殼建模功能 135
7.4.4 開源廣場 136
7.4.5 豐富的學習資源 137
7.4.6 團隊管理 138
第8章 CW32最小系統電路設計 139
8.1 CW32核心板原理圖設計 139
8.1.1 設計流程 139
8.1.2 創建工程 140
8.1.3 創建原理圖 140
8.1.4 放置元件 141
8.1.5 電氣連接 144
8.1.6 模塊式原理圖繪制 145
8.1.7 原理圖檢查 146
8.1.8 CW32最小系統原理圖 147
8.2 CW32的PCB設計 147
8.2.1 設計流程 147
8.2.2 新建PCB文件 147
8.2.3 導入原理圖與更新PCB 148
8.2.4 PCB的圖層 149
8.2.5 邊框、定位孔設計 151
8.2.6 元件佈局 152
8.2.7 元件布線 155
8.2.8 添加絲印 158
8.2.9 添加淚滴 160
8.2.10 PCB覆銅 161
8.2.11 PCB檢查 162
8.3 CW32硬件配置要求檢查 162
8.4 電路設計註意事項 163
8.4.1 默認快捷鍵 163
8.4.2 註意事項與設計技巧 164
8.4.3 電路設計的十大原則 164
第9章 CW32F030基礎應用實例 166
9.1 CW32_IoT_EVA評估板簡介 166
9.2 CW32_IoT_EVA評估板原理圖 167
9.3 GPIO應用實驗 169
9.3.1 流水燈實驗 169
9.3.2 按鍵指示燈實驗 171
9.3.3 蜂鳴器實驗 173
9.4 定時器應用實驗 174
9.4.1 實驗要求 174
9.4.2 硬件原理 174
9.4.3 參考程序 175
9.4.4 運行結果與驗證 176
9.5 OLED顯示應用實驗 176
9.5.1 實驗要求 176
9.5.2 硬件原理 176
9.5.3 參考程序 178
9.5.4 運行結果與驗證 180
9.6 ADC應用實驗 180
9.6.1 實驗要求 180
9.6.2 硬件原理 180
9.6.3 參考程序 180
9.6.4 運行結果與驗證 181
9.7 串行接口應用實驗 181
9.7.1 實驗要求 182
9.7.2 硬件原理 182
9.7.3 參考程序 184
9.7.4 運行結果與驗證 186
第10章 CW32L083超低功耗開發實戰 187
10.1 CW32L083芯片優勢 187
10.1.1 產品特性 187
10.1.2 內部框圖 189
10.1.3 功能特性 190
10.2 CW32L083評估板簡介 197
10.2.1 評估板特性 198
10.2.2 快速開始 198
10.2.3 硬件佈局 198
10.3 CW32L083評估板原理圖 199
10.3.1 電源電路 199
10.3.2 最小系統電路 200
10.3.3 外擴FLASH芯片電路 201
10.3.4 外擴EEPROM芯片電路 201
10.3.5 編程接口電路 202
10.3.6 USB轉串口電路 202
10.3.7 按鍵指示燈電路 203
10.3.8 擴展接口電路 203
10.3.9 IR收發電路 204
10.3.10 蜂鳴器電路 205
10.3.11 LCD接口電路 206
10.4 CW32L083低功耗應用實驗 208
10.4.1 低功耗設計概念 208
10.4.2 低功耗工作原理 208
10.4.3 低功耗之外部中斷喚醒實驗 210
10.4.4 低功耗之串口喚醒實驗 213
10.4.5 低功耗之不同主頻功耗實驗 218
10.4.6 低功耗之不同外設功耗測試實驗 222
第11章 CW32多功能測試筆產品開發 230
11.1 項目簡介 230
11.1.1 項目起因 230
11.1.2 初步構想 230
11.1.3 設計思路 231
11.1.4 實物及原理圖 231
11.2 電路設計說明 232
11.2.1 電源與電池管理 232
11.2.2 單片機及外設等 234
11.2.3 模擬前端 236
11.3 硬件焊接與組裝 244
11.3.1 PCB焊接 244
11.3.2 硬件組裝說明 244
11.3.3 燒錄方法說明 246
11.4 軟、硬件聯調及測試 246
11.4.1 電壓輸入測量模式 246
11.4.2 PWM輸出模式 248
11.4.3 DC輸出模式 249
11.4.4 通斷檢測模式 249
11.4.5 二極管擋位 250
11.4.6 校準模式 250
11.5 軟件編寫說明 250
11.5.1 文件構成 250
11.5.2 GPIO初始化 251
11.5.3 ADC初始化 252
11.5.4 PWM初始化 255
11.5.5 LCD驅動 256
11.5.6 測試筆模式真值 257
11.5.7 RTOS 257
11.5.8 UI 259
11.5.9 功能概覽 260
11.5.10 藍牙功能 261
第12章 基於CW32微處理器的運動目標控制系統與自動追蹤系統 262
12.1 項目背景及要求 262
12.1.1 全國大學生電子設計競賽 近十二年題目匯總 262
12.1.2 2023年全國大學生電子設計競賽E題題目及要求 264
12.2 系統總體設計方案 265
12.2.1 任務概述 265
12.2.2 總體設計方案與論證 265
12.3 運動目標控制理論及自動追蹤 方法 269
12.3.1 運動目標控制理論 269
12.3.2 自動追蹤系統方法 269
12.4 系統硬件設計 269
12.4.1 運動目標控制系統設計 269
12.4.2 自動追蹤系統設計 270
12.5 OpenMV模塊軟件設計 270
12.5.1 色塊識別原理 270
12.5.2 色塊識別及坐標輸出 271
12.5.3 運動目標控制系統中OpenMV模塊程序代碼 272
12.5.4 自動追蹤系統中OpenMV模塊程序代碼 273
12.6 CW32控制系統軟件設計 274
12.6.1 運動目標控制系統中CW32
程序設計 274
12.6.2 自動追蹤系統中CW32程序設計 275
12.6.3 CW32串口通信程序設計 276
12.7 CW32軟件編寫說明 277
12.7.1 運動目標控制系統中CW32的軟件編寫 277
12.7.2 自動追蹤系統中CW32的軟件編寫 283
12.8 系統測試 287
12.8.1 測試方案設計 287
12.8.2 測試結果及分析 288
12.9 比賽經驗分享 288
12.9.1 賽前準備環節 288
12.9.2 比賽過程 289
參考文獻 290