創龍TMS320C6748開發板———PSC配置及GPIO介紹
TMS320C6748是Ti公司的一款超低功耗DSP產品,相比其他系列DSP它多了PSC這個模組,用以管理各個外設的睡眠和喚醒,大大節約了系統功耗,下面我們具體介紹這個模組的細節以及配置。
(1)PSC模組共有兩個控制器模組,分別負責以下外設的配置。
從上圖我們可以看到PSC模組幾乎可以控制DSP中所有的外設。
也許這裡大家有一個疑問,PSC0~1,Domain0~1,以及具體的模組好像關係很亂。下面我們繪製了這樣一張圖來詳細說明他們的所屬關係:
實際上,只有DSP屬於domain1,其餘所有模組均屬於domain0。
(2)下面我們接著介紹PSC能夠控制各個模組進入的狀態(Enable、Disable、SyncReset、SwRstDisable、AutoSleep、AutoWake)一般我麼常用的是前4個狀態,Enable為正常工作狀態,而Disable狀態關閉了模組時鐘;SyncReset使模組處於復位狀態,時鐘正常,SwRstDisable使模組處於復位狀態,並關閉了時鐘。具體說明見下圖所示。
(3)PSC模組配置說明
a. 等待PTSTAT中的GOSTAT[x]為清零,x為當前模組所屬的domain。
b. 檢查MDSTAT[x]中的STAT位是否與簡要配置的狀態相同,如果相同,直接返回。
c. 清除MDCTL[x]中的NEXT位(非常重要)。
d. 配置MDCTL[x]中的NEXT位為指定的狀態。
e. 配置PTCMD中的GO[x]位,開始轉換模組狀態。
f. 等待,檢查PTSTAT中的GOSTAT[x]是否清零,表示轉換完成。
g. 檢查MDSTAT[x]中的STAT位是否與簡要配置的狀態相同。
二、GPIO(通用輸入輸出)配置介紹
本節我們主要介紹GPIO的輸入輸出控制功能,中斷部分下次結合中斷向量表一起說明。
(1)TMS320C6748共有8
Banks,16 GPIOsper Bank,幾乎所有引腳都可以配置成為GPIO埠。
對於GPIO,我們只需關注這幾個暫存器:
DIR:方向控制暫存器,控制GPIO管腳是輸入還是輸出,其中,對應位置0表示該管腳為輸出管腳;對應位置1表示該管腳為輸入管腳。
OUT_DATA:輸出資料暫存器,控制管腳輸出電平,其中,對應位置0表示該管腳輸出為低電平;對應位置1表示該管腳輸出為高電平。
SET_DATA:設定資料暫存器,對應位置1表示該管腳輸出為高電平,需要注意的是該暫存器寫0無效。
CLEAR_DATA:清除資料暫存器,對應位置1表示該管腳輸出為低電平,需要注意的是該暫存器寫0無效。
IN_DATA:輸入資料暫存器,注意該暫存器是隻讀暫存器,返回對應位輸入電平。
(2)GPIO配置說明
a. 配置PSC模組,使能GPIO功能。
b. 配置PINMUX模組,選擇需要使用的管腳作為GPIO引腳。具體可以參看我的這篇帖子。http://bbs.elecfans.com/forum.php?mod=viewthread&tid=516939&page=1&extra=#pid3851865
c. 配置DIR方向控制暫存器。
d. 如果配置GPIO為輸入引腳,那麼在有訊號輸入後可以讀取IN_DATA暫存器以獲得輸入電平;如果配置GPIO為輸出引腳,可以配置OUT_DATA或SET_DATA或CLEAR_DATA暫存器輸出高/低電平。
三、CCS除錯的一些經驗
以後如果我想起一些關於CCS除錯有用的功能,會不定時在帖子最後更新,希望有助於大家的學習~
大家在除錯工程的時候會不會遇到工程出錯,但是又找不到事那個部分出問題,一般有經驗的工程師在編寫子函式時都會寫一些返回值,這樣在除錯時直接檢視這些返回值就可以知道程式那裡出錯了。但是,這樣編寫效率不高,遇到多次呼叫子函式的情況很難知道那個部分出問題了。一般工程師們還會在程式執行時及時列印出系統執行狀態,主要有兩種方法,一種是基於UART介面的方法(我們以後結合UART再說),另一種是呼叫printf函式的方法。
格式為:printf("hello
!\r\n");
重要的事情說三遍,在語句的結尾一定一定要有回車符\r和換行符\n。
大家可以看到在CCS的Console裡有如下的顯示。
相關文章
- 【創龍TMS320C6748開發板試用】+開箱照及CCS環境簡介S3
- 【創龍TMS320C6748開發板試用】+ 中斷學習S3
- 【創龍TMS320C6748開發板試用】+兩張圖,看清時鐘S3
- RK3288最新開源開發板介紹
- rk3568核心板開發介紹
- RK3568開發筆記(一):瑞芯微RK3568晶片介紹,入手開發板的核心板介紹筆記晶片
- RK3568開發筆記(三):瑞芯微RK3588晶片介紹,入手開發板的核心板介紹筆記晶片
- Web專案開發介紹及實戰專案介紹Web
- OSPF介紹及基礎配置
- [原創]敏捷開發管理工具介紹敏捷
- 甲骨文的合作伙伴解決方案中心(PSC) 介紹
- Rsync原理介紹及配置應用
- [原創]zabbix工具介紹,安裝及使用
- mybatis原理,配置介紹及原始碼分析MyBatis原始碼
- i.MX6ULL開發板原始碼交叉編譯器介紹原始碼編譯
- 以太坊:Dapp及相關開發工具介紹APP
- 在全志T507開發板上新增兩個GPIO按鍵
- [原創]Fitnesse測試工具介紹及安裝
- vue 腳手架 配置 及檔案介紹Vue
- 海思hi3559AV100開發板引數規格介紹
- 龍果開源支付系統業務介紹與部署
- ModStartCMS模組開發介紹
- 瑞芯微RK3399開發板,RK3399主機板引數介紹
- 硬體開發筆記(十八):核心板與底板之間的連線方式介紹說明:板對板聯結器筆記
- 嵌入式ARM核心板介紹
- JB的git之旅-git介紹及GitHub配置教程Github
- GoldenGate Integrated Capture Mode介紹及配置方法GoAPT
- PHP核心介紹及擴充套件開發指南—類和物件PHP套件物件
- 陀螺世界商城開發(介紹)
- SJL 開發包1.0介紹
- vue 腳手架 配置 及檔案介紹 2.0 版本Vue
- [原創]SOAPUI工具介紹UI
- [原創]WebScarab工具介紹Web
- 漸進式web應用開發---service worker 原理及介紹(一)Web
- Lombok介紹和配置Lombok
- Web開發小工具介紹Web
- Java/JavaWeb/開發環境介紹JavaWeb開發環境
- 微信公眾介面開發介紹