[TOC] # 背景知識 - 見[新訓STM](https://hackmd.io/jPwrvyGQTxWJCNfoK7yDAA?view#%E8%83%8C%E6%99%AF%E7%9F%A5%E8%AD%98)背景知識 - 使用過STM後大概對微處理器的認識也大差不差了,不同的是STM的HAL庫有更貼近使用者層面的封裝,而且有CubeMX的輔助,在設定暫存器上更直覺。DSP程式庫也只是定義一些暫存器結構和初始化函式而已,因此仍得依照需求親自寫入每個暫存器的值。 - 學習STM時大概知道各功能以及參數怎麼給就好,學習DSP則需要進一步知道這些參數由哪些暫存器掌管 # DSP簡介 - DSP的優勢、特點可見 <手把手教你DSP> 1.1.1 ~ 1.1.3 節 - 早期的MCU多使用定點運算,實驗室的F2812也是定點運算DSP,而F28335則支持浮點運算,浮動的小數位數在使用上更適合高精度與複雜運算 - [教學影片](https://youtube.com/playlist?list=PL40HX6x4OOCWQA77_keeZR8c8USQn941G&si=F9ufZzU6uhbeqqS2),需要的話可以配著用 ## 實驗室的DSP - 燒錄器使用,建議找盒子裝著,排針有防呆,但別太呆 - DSP需要額外供電,請使用輸出為5V的變壓器,按鈕為電源開關,通電後亮藍燈 ### F2812 - 實驗室的2812電路板最新為2018版,相比2014版在CAP3_QEPI1和CAP6_QEPI2腳位增加了RC電路使得穩定,除了一些電路布局位置外,兩版本其實差不多 - FTP上的資源有 - <手把手教你DSP>電子書 - 高碩聰學長的F2812專案Generator - 專案Generator同樣使用的F2812 Library和example - 專案Generator使用的cmd files - 其他相關手冊(網路上查的到) - 實驗室電路板的pcb檔(2018版)、腳位圖(2014版) ### F28335 - 問董守驥 # 開發方式 ## CCS (Code Composer Studio) 軟體操作 - CCS可用於編輯、燒錄程式 - [12.8 user guide (Eng)](https://software-dl.ti.com/ccs/esd/documents/users_guide/index.html#)、[12.8 用戶指南(中文)](https://software-dl.ti.com/ccs/esd/documents/users_guide_zh/index.html) - 使用Generator建立專案、編譯與燒錄(見FTP) - 從頭建立新專案(未紀錄,包含庫文件引入、cmd file引入與修改、ram/flash 設定等等) - 我也忘記這些是什麼了,想試著自己建立新專案可以看看 https://blog.csdn.net/WEN_LG/article/details/84649060 https://blog.csdn.net/Augusdi/article/details/6289961 https://blog.csdn.net/Augusdi/article/details/6159688 https://blog.csdn.net/a1207607057/article/details/129857122 https://blog.csdn.net/qq_57798018/article/details/128337830 https://blog.csdn.net/Husenburg/article/details/80538123 ## 程式編寫 - 因為是直接對暫存器寫入值,直接看程式可能無法一眼看出對應的模式或功能,建議多打些備註,或善用 #define 方式命名,提升可讀性 - ## DSP使用(以F2812為例) - 以下筆記皆為<手把手教你DSP>的紀錄,實際使用遇到問題最好都翻翻這本書與其他相關手冊對照 - 存儲空間與cmd file章節略過,Generator已有一部份。如果程式或數據龐大需要指定儲存空間最好還是摸清楚喔 - DSP的CPU timer就像STM的基礎Timer只有計時功能,而Event Manager裡的General Timer和STM的通用計時器一樣有其他比較、PWM、QEP等功能,以下直接講解EV timer的使用,跳過CPU Timer章節 ### [F2812的暫存器語法](https://hackmd.io/IOGWQn5uRP2vfxMdQcQ6zg) ### [F2812的初始化](https://hackmd.io/vGiH_bLMTEC1baO3HxS5NA) ### [F2812的GPIO](https://hackmd.io/vVJOxl7uSs6eod_ituu_YA) ### [F2812的時鐘](https://hackmd.io/G8OQeKlySRW2S2XB2iI2cw) ### [F2812的中斷系統](https://hackmd.io/xCWvBIXRRpeKnSnIzPNkOQ) ### [F2812的Event Manager : Timer、Timer中斷](https://hackmd.io/8JW5CO7lQuym3EJPMrzbGA#EV-%E7%9A%84-Timer) ### [F2812的Event Manager : 比較與 PWM](https://hackmd.io/ROd_3d5HSoahlkI6AGkmBw) ### F2812的Event Manager : Capture ### [F2812的Event Manager : QEP](https://hackmd.io/UvA-2X_uQuiAwQMDjZXi3g) ### F2812的ADC