最近開始開發TMS320DM6437 EVM平台, 寫下心得。
德州儀器提供的多款達文西平台,主要分成單核心CPU(如︰DM64x與DM643x)與雙核心CPU(如︰DM644x與DM646x)兩大類。單核心晶片提供高效能的影像處理,而且能同時處理多個影像通道,所以運算時脈比較高,內部記憶體容量也比較多。雙核心晶片偏重於多媒體應用為主,例如網路影像監控、影像電話…等應用。因此運算時脈較低以便節省耗電量,內部記憶體容量也比較少。
TMS320DM64x系列–從DM641、DM642、DM647到DM648,核心CPU是一顆單核心由C64或C64+所組成,時脈大約500MHz~900MHz之間,L2 SRAM大小至少為128Kb,最大為512Kb。
TMS320DM643x系列–從DM6433、DM6435、到DM6437,核心CPU也是一顆單核心由C64+所組成,時脈大約400MHz~700MHz之間,L2 SRAM大小為128Kb。
TMS320DM644x系列–從DM6441、DM6443到DM6446,核心CPU是一顆雙核心,由C64+與ARM9所組成。DSP C64+時脈大約400MHz~600MHz之間,ARM9運算時脈大約200MHz~300MHz之間。L2 SRAM大小只有64Kb。
TMS320DM646x系列–目前只有DM6467一款,核心CPU也是一顆雙核心,由C64+與ARM9所組成。DSP C64+時脈大約594MHz與729MHz兩種,ARM9運算時脈大約297MHz與364.5MHz。L2 SRAM大小為128Kb。
在開發系統方面,達文西平台相對於過去的DSP晶片來的複雜,特別是雙核心的平台開發。對於DM641與DM642晶片而言,德州儀器提供晶片使用的CSL(Chip Support Library)函式庫;對於較為複雜的晶片來說,德州儀器提供 PSP(Platform Support Package)函式庫給DM648或DM6437等晶片使用者,其中包含了CSL與DSP/BIOS驅動程式。對於雙核心的開發過程則比起只載入CSL或PSP函式庫還要複雜,因為除了要開發DSP的程式之外,還要開發ARM9的應用程式。
編譯DM6437平台的範例程式所需的軟體,包括開發環境CCS 3.3.38以上的版本、編譯工具Code Generation Tools 6.0.8以上的版本、作業系統DSP/BIOS 5.31.06以上的版本。此外,我們安裝DM6437提供的光碟片之後,還有需要安裝DSP/BIOS,安裝後的目錄如下圖所示。最重要的是PSP(Platform Support Package)套件,因為提供很多DM6437的驅動程式。
德州儀器提供數個DM6437平台的範例程式,範例放在\dvsdk_1_01_00_15\ psp_1_00_02_00\pspdrivers\system\dm6437\bios\dm6437_evm\src\video\sample目錄下。每個範例中有兩個檔案與編譯project有關,一個是*.pjt檔,另一個是*.tcf檔。首先要編譯tcf檔案,然後產生DSP/BIOS相關的程式碼,最後才利用CCS開啟pjt檔案進行範例程式的編譯。
DM6437範例的編譯流程
前置作業
1. 安裝開發軟體與DM6437平台的驅動程式
2. 安裝範例程式碼與PSP(Platform Support Package)函式庫
3. 重新編譯函式庫
4. 編譯TI提供的範例程式
5. 將範例程式載入DM6437平台中
TI在DM6437平台提供三套光碟,分別是Code Composer Studio 3.3 IDE、DVSDK(Digital Video Software Development Kit)、SoC Analyzer。前兩套是開發所必須安裝的軟體,SoC分析軟體則不一定需要安裝。
學會編譯範例程式之後,我們可以試著將執行檔(out檔)載入開發平台上,看看有何結果。首先DM6437 EVM板子接上電源,使用USB線連結到EVM板子,編譯後的執行檔可以透過USB載入到板子上面。CCD camera的輸出要連接到EVM板子的video input埠,然後EVM板子的DAC-3埠連接到LCD螢幕。建議從下列兩個範例開始學習。
範例一. $DVSDK_DIR\pspdrivers\system\dm6437\bios\dm6437_evm\src\video\sample\vpbe的目錄下,是一個學習影像輸出的範例。在vpbe範例中,載入執行檔之後,一張史瑞克的彩色圖片將出現在LCD螢幕上,同時有一條掃描線從上到下掃瞄。
範例二. $DVSDK_DIR\pspdrivers\system\dm6437\bios\dm6437_evm\src\video\sample\loopback的目錄下,是結合影像輸入出的範例。在loopback範例中,載入執行檔之後,CCD camera擷取的影像將出現在LCD螢幕上。
有關EDMA, McBSP, SPI, HPI, 中斷…等介面的使用,請參考拙著的”數位信號處理平台””單晶片於數位信號處理”等書。(書籍提供教學投影片,歡迎到出版社網站上下載使用)

Good!
請問版主:
上述提及的dvsdk範例程式,有沒有相關的說明文件,讓人能更快速的了解程式內容。
Thanks!
最好的文件就是自己慢慢trace source code, 畢竟DM64x屬於比較難的平台.
版主你好:
最近我在研究EDMA的操作方法,
EDMA在搬運資料的時候需要設定搬運資料的格式,
其中有令我不解的是,
為什麼搬運時要設定array、frame的間距,
設定這個的目的是什麼?
在設定方面有沒有什麼準則呢?
Thanks
EDMA為何要設定array, frame等間距? 目的與應用有關, 像有些應用需要EDMA和McBSP搭配, 因為McBSP是串列傳輸, 接收到的資料必須按照某種資料結構排列, 這時候靠EDMA的arry, frame等參數的設定達到資料結構的排列. 至於設定的準則, 你可以參考本人著作的書籍, 書中有詳細的說明. 德州儀器將EDMA模組放到很多DSP晶片中, 因此EDMA的用法最好要熟練.
版主你好:
想請教你一些問題,
根據你文章裝的說法 DM6437 這種比較新出的版子,
周邊的硬體都改用PSP(Platform Support Package)套件來控制,
如 EDMA3 Driver、 McBSP Driver...等,
那周邊的硬體還能用CSL來控制嗎?
還是CSL已經包在這些Driver底下了?
這些CSL內的function是否跟TMS320C6000 Chip Support Library API Reference Guide 有些不同了?
Thanks
版主你好:
想再請教你一些問題,
以我目前的了解,
CSL是用來控制硬體最底層的API,
而PSP是用來控制硬體比較上層的API,
然而TI提供的PSP似乎並沒有涵蓋CSL所有的API,
但CSL的libary只有支援到DM642,
使用DM6437 Platform 除了PSP外我要怎麼控制這些硬體呢?
有哪些document可以參考呢?
這個問題困擾我很久,希望你能多給一些指教。
Thanks
對我來說,硬體的控制通常都是直接對registers作讀寫,因此必須對這些週邊(EDMA3, McBSP...)很熟悉才行。如果只想透過上層的API呼叫來控制這些週邊,而去不理解周邊的動作是件很難的事。這也就是DSP很難搞的原因之一,一般來說初學者沒有摸個一年以上,怎能體會內部的運作呢?只有按部就班才能學會。
請問版主,dm6437除了用usb作為資料傳輸,有沒有辦法只用pci直接與電腦溝通? 假如可以該如何設定? 萬分感激!!
以前試過 PCI 好像沒法動,用 USB 反而可以,之後就沒有繼續仔細研究 PCI 是否能動作了。
板主你好
vpbe的範例 我有試成功, 有看到史瑞克的圖片。
想請問 如果我要換成 我自已電腦裡的圖片 該怎麼改?
工作上需要 所以開始學習dsp , 目前在用TI 的6437實驗板練。
希望板主能指導一下
範例程式史瑞克的圖片早就被轉成 .h 檔,如果自己的圖片要放進去的話,必須經過轉換變成 binary file 放到 .h 檔裡面,載入DSP中執行。看範例程式有個很大的buffer,就是存放史瑞克的圖片 binary。
建議先了解 DSP 晶片中有關vpbe的介面,vpbe 是後端的介面,就是連接到 LCD 相關的介面。
您好 請問我有需多6437的問題想請教您,請問可以用甚麼樣的方式向您詢問呢? 若是可以的話我很希望能請您幫我解惑一下 謝謝
您好 請問我有需多6437的問題想請教您,請問可以用甚麼樣的方式向您詢問呢? 若是可以的話我很希望能請您幫我解惑一下 謝謝