新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何把IWR6843的CCS工程代碼移植到IWR1843上

如何把IWR6843的CCS工程代碼移植到IWR1843上

作者:Chris Meng 時(shí)間:2023-10-20 來(lái)源:TI 收藏

在毫米波產(chǎn)品上提供了非常多的例程供用戶參考,但有些演示例程只基于某些器件,沒(méi)有覆蓋到全部的毫米波產(chǎn)品。例如level_sensing的例程就沒(méi)有支持的工程示例。本文就以level_sensing的例程為例,介紹如何把移植到上。

本文引用地址:http://butianyuan.cn/article/202310/451850.htm

在硬件上是pin to pin兼容的,軟件上也是基于同一個(gè)mmWave SDK。但是工作的頻率范圍是60~64GHz,而IWR6843工作的頻率范圍是76~81GHz。兩者pinmux定義,調(diào)用的庫(kù)函數(shù)也有些不同。軟件的移植主要就是基于上面幾點(diǎn)的不同。

本文介紹的移植基于mmwave_industrial_toolbox_4_9_0[1]里的level_sensing例程以及mmWave SDK 3.5[2]。

1. 首先在mmwave_industrial_toolbox_4_9_0labslevel_sensing目錄下新創(chuàng)建一個(gè)名為18xx_high_accuracy的文件夾。將68xx_high_accuracy目錄下的所有文件復(fù)制到新目錄18xx_high_accuracy下。

2. 把18xx_high_accuracysrc目錄下的兩個(gè)CCS工程文件修改文件名為projectspec/high_accuracy_18xx_dss.projectspec。然后分別用文本編輯器打開(kāi)兩個(gè)工程文件,把“68”相關(guān)內(nèi)容替換為“18”。例如把工程文件里的定義“-DSOC_XWR68XX”修改為“-DSOC_XWR18XX”。

3. 同樣,在18xx_high_accuracysrc目錄下的.c,.h文件里搜索“68”關(guān)鍵字,并替換為“18”。

4. 在配置初始化校準(zhǔn)時(shí),需要設(shè)定校準(zhǔn)的頻率范圍。由于IWR6843和IWR1843的工作頻率范圍不同,所以相關(guān)代碼需要修改。

下面是IWR6843和IWR1843的mss_main.c里相關(guān)代碼的比較。

C:timmwave_industrial_toolbox_4_9_0labslevel_sensing68xx_high_accuracysrcmssmss_main.c

C:timmwave_industrial_toolbox_4_9_0labslevel_sensing18xx_high_accuracysrcmssmss_main.c


Line 754             gMmwMssMCB.cfg.openCfg.freqLimitLow  = 600U;

Line 755             gMmwMssMCB.cfg.openCfg.freqLimitHigh = 640U;

Line 754             gMmwMssMCB.cfg.openCfg.freqLimitLow  = 760U;

Line 755             gMmwMssMCB.cfg.openCfg.freqLimitHigh = 810U;


 5. 由于IWR6843和IWR1843的工作頻率范圍不同,配置文件也要做相應(yīng)的修改。在18xx_high_accuracychirp_configs目錄下修改cfg文件名cfg。修改配置里的起始頻率為77。

下面是IWR6843和IWR1843的配置文件的比較。

C:timmwave_industrial_toolbox_4_9_0labslevel_sensing68xx_high_accuracy chirp_configshigh_accuracy_demo_68xx.cfg

C:timmwave_industrial_toolbox_4_9_0labslevel_sensing18xx_high_accuracychirp_configshigh_accuracy_demo_18xx.cfg


Line 6     profileCfg 0 60 7 7 114.4 0 0  33.71 1 512 5000 0 0 48

Line 5  profileCfg 0 77 7 7 114.4 0 0  33.71 1 512 5000 0 0 48


6. Profilecfg有配置起始頻率和斜率參數(shù),底層API里每位(bit)代表的單位對(duì)于60GHz芯片和77GHz芯片是不同的。下表是 AWR_PROFILE_CONF_SB contents[3]的部分內(nèi)容,可以看出兩者的區(qū)別。

pastedimage1667206092658v1.png-320x240.png

在通過(guò)cfg配置文件傳遞profilecfg、chirpcfg參數(shù)給MSS的時(shí)候,level sensing例程使用了cli庫(kù),這個(gè)庫(kù)會(huì)調(diào)用SOC_getDeviceRFFreqScaleFactor()函數(shù),判斷使用的芯片是哪一款,獲得不同的單位。當(dāng)IWR6843時(shí),賦值變量gCLI_mmwave_freq_scale_factor為2.7。而當(dāng)使用的芯片為IWR1843時(shí),gCLI_mmwave_freq_scale_factor變量值為3.6。

Cli庫(kù)會(huì)把輸入配置參數(shù)值轉(zhuǎn)換為射頻配置需要的值。例如cfg文件里profilecfg配置起始頻率為60或者77,在cli庫(kù)里的CLI_MMWaveProfileCfg()函數(shù)會(huì)通過(guò)下面的代碼做轉(zhuǎn)換。

pastedimage1667206111688v2.png-320x240.png

所以對(duì)于輸入?yún)?shù)解析和射頻配置,移植時(shí)用戶不需要修改相關(guān)代碼。

在level sensing的例程的chirpcfg里和工作頻率相關(guān)的CHIRP_FREQ_START_VAR、CHIRP_FREQ_SLOPE_VARl兩個(gè)參數(shù)設(shè)置為0,代碼中沒(méi)有涉及。這兩個(gè)參數(shù)每位(bit)代表的單位可以在參考資料 [3] 里找到。

如果應(yīng)用層需要使用射頻配置參數(shù)的時(shí)候,需要把射頻配置的值還原到實(shí)際的頻率或者斜率。這種情況做移植時(shí),代碼需要根據(jù)77Ghz芯片對(duì)應(yīng)的單位做相應(yīng)修改。

7. 最后,保存修改,通過(guò)CCS導(dǎo)入工程編譯即可。

移植過(guò)程做68和18代碼替換的時(shí)候,還是需要要看看代碼是否有什么特殊含義。例如在IWR6843的mss_main.c里有一個(gè)#ifndef SOC_XWR68XX_ES1相關(guān)代碼,閱讀后發(fā)現(xiàn)是針對(duì)IWR6843 ES1.0芯片的操作,對(duì)于IWR1843可以將相關(guān)宏定義代碼去除。具體移植后的18xx_high_accuracy代碼可以在參考資料 [4] 里下載。

本文的方法也適用于AWR6843,AWR1843 的相互移植。



關(guān)鍵詞: IWR6843 CCS工程代碼 IWR1843 TI

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉