cc2652在使用過(guò)程中的一些注意事項(xiàng)
cc2652在使用過(guò)程中的一些注意事項(xiàng)
可能不只是cc2652有這些坑,估計(jì)cc26xx系列都存在。
CCS的預(yù)編譯宏配置位置




時(shí)鐘獲取
時(shí)鐘獲取__STATIC_INLINE uint32_t SysCtrlClockGet( void )在sys_ctrl.h中,sys_ctrl.h沒(méi)有在工程路徑下面,在其sdk中
節(jié)拍時(shí)間獲取 ICall_getTicks(); 單位10us,自加1;ICall_getTickPeriod()是單位,即10us;
回調(diào)函數(shù) 設(shè)置
有兩種方式設(shè)置回調(diào)函數(shù):在.syscfg的Callback Function中設(shè)置,或者將其設(shè)置為NULL,在程序中使用GPIO_setCallback進(jìn)行回調(diào)綁定;
無(wú)論使用上面哪種方式,都需要在GPIO_enableInt(CONFIG_GPIO_IRQ_3993)前面加上GPIO_init(),否則無(wú)法進(jìn)入中斷
IRQ在ENEXTIRQ中需要獲取其電平
官方參考文件:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_g_p_i_o_8h.html
納秒延時(shí)
受限于CC2652最大48M晶振的情況,無(wú)法實(shí)現(xiàn)ns級(jí)別延時(shí),最快只能按如下實(shí)現(xiàn)62ns延時(shí):
/* 3 cycles per loop: 1 loop @ 48 Mhz ~= 62 ns ; 8 loop @ 48 Mhz ~= 0.5 us */ CPUdelay(1);
SPI和低功耗
CC2652的SPI普通模式參考文件:ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_8h.html
CC2652的SPI DMA模式參考文件:ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_c_c26_x2_d_m_a_8h.html
因?yàn)镾PI傳輸用到了高頻晶振,所以在SPI通信期間,設(shè)備無(wú)法進(jìn)入待機(jī)狀態(tài),調(diào)用 SPI_transferCancel() 后可以進(jìn)行待機(jī)狀態(tài)
SPI_open(CONFIG_SPI_3993, &SPIparams)中的CONFIG_SPI_3993是在.syscfg中配置的
主協(xié)處理器復(fù)用SPI問(wèn)題
經(jīng)測(cè)試,主協(xié)處理器不能復(fù)用 GPIO (包括SPI)
當(dāng)主處理器配置SPI引腳后,如果調(diào)用了協(xié)處理器的初始化,則引腳被協(xié)處理器搶占;主處理器的引腳配置在Board_initGeneral(); 中,但是如果二次調(diào)用Board_initGeneral(); 進(jìn)行搶占,會(huì)崩潰。
目前測(cè)的結(jié)果應(yīng)該是當(dāng)關(guān)閉協(xié)處理器后,控制權(quán)會(huì)自動(dòng)轉(zhuǎn)交給主處理器,這個(gè)待進(jìn)一步驗(yàn)證。
DAC的帶載
帶載能力比較弱,uA級(jí)別,驅(qū)動(dòng)電壓型的MOS管都費(fèi)點(diǎn)勁


引腳配置
引腳配置可以用GPIO_write的方法,也可以使用PIN_setOutputEnable的方法
DIO31配置為輸出時(shí),程序在Board_initGeneral()崩潰(這個(gè)很奇怪,按說(shuō)不應(yīng)該?。?;目前將引腳配置為DIO26可以