弄死過兩個CC2650STK,又救活了。
想用BLE做點(diǎn)東西,以前使用CC2541
因?yàn)槭菃蝹€理器的關(guān)系,在做耗時(shí)操作時(shí)會導(dǎo)致藍(lán)牙中斷,問題一直沒法解決
這次論壇活動弄了一套CC2650STK的開發(fā)板
看著網(wǎng)站上說(包括TI官網(wǎng))可以使用JLINK調(diào)試
我就天真的以為真的可以
手里有一些開發(fā)板上帶的JLKINK(NXP LPC54102開發(fā)板和FREESCALE的K40開發(fā)板)和淘寶上買的JLINK V8
按照TI官網(wǎng)的說明一步步調(diào)試
可是怎么也調(diào)不通,提示Can not find ICE-Pick……等錯誤
好容易有一次IAR下載的進(jìn)度條開始往前走了一點(diǎn),沒等走完又報(bào)錯
結(jié)果是原來好用的SensorTag變成石頭了
后來又經(jīng)過無數(shù)次的看貼和調(diào)試都沒成功
前些天EEWORLD論壇又有活動,Mouser上買LAUNCHPAD 28377S的開發(fā)板半價(jià)
最高返200E金幣
順便帶了一塊LAUNCHXL2-RM46的開發(fā)板
為來應(yīng)該買SensorTag Debugger DevPack調(diào)試CC2650STK的
覺得一塊SensorTag Debugger DevPack雖然便宜,可除了調(diào)試CC2650以外也沒別的用
就決定買LAUNCHXL2-RM46,220MHz的RM46L852處理器看起來還挺爽
關(guān)鍵板載XDS110仿真器,順便可以用來調(diào)試CC2650,能不能行買來再說
到貨后第一個就用來調(diào)試CC2650STK
先是用IAR打開examples\cc2650stk\sensortag例程
編譯完下載時(shí)IAR提示更新XDS110的固件
更新完成后IAR提示Fatal error: Failed to connect to the XDS emulator (connect ICEPick)錯誤
結(jié)果就是不好用,各種試都不行
取下CC2650再用CCS仿真載上帶的RM46L852也不好用
各種試還不行是原來板子上的XDS110就是壞的,還是被IAR升級升壞的呢?
心想這下完蛋了CC2650沒調(diào)成RM46L852也不能用了
在網(wǎng)上好個找貼子最后有人說使用2.2.4.2的固件可以用
按照提示用C:\ti\ccsv6\ccs_base\common\uscif\xds110中的xdsdfu.exe把固件刷成2.2.4.2后
RM46L852可以用了
CC2650還是不行,用CSS也提示錯誤,大部分是固件版本不兼容等等
看了無數(shù)貼,試了無數(shù)次都是一樣的結(jié)果
準(zhǔn)備放那吃灰吧
有空時(shí)又試了下Flash Programmer 2
也是提示錯誤,F(xiàn)ailed to enumerate XBAL devices
又試了UniFlash
雖然磕磕絆絆經(jīng)常斷,不過好在可以讀取BLE MAC,有時(shí)候FLASH數(shù)據(jù)也能讀出來
真是太神奇了,這說明XDS110基本上是可以用的
于是用UniFlash寫examples\cc2650stk\sensortag\iar\app\FlashOnly_OAD\Exe\sensortag_cc2650stk_app.hex文件到CC2650
有時(shí)候能寫成功,可是成功后裝上電池也沒有反應(yīng)
有時(shí)候CC2650STK上的紅燈會一直亮
后來拿一塊好的CC2650STK用UniFlash讀出FLASH和壞的比較一下發(fā)現(xiàn)數(shù)據(jù)很不一樣,也不知道是為什么
今天又看到一個貼子說Flash Programmer 2 的XDS110默認(rèn)是 4線JTAG可以改成2線cJTAG
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/94918.aspx
按照提示把XDS110.dat 和XDS110c2.dat文件名互換了一下
插上開發(fā)板打開Flash Programmer 2發(fā)現(xiàn)可以檢測到CC2650器件了
靠,太神奇了
于是又用Flash Programmer 2讀器件MAC,讀FLASH都可以
因?yàn)镕lash Programmer 2可以把FLASH導(dǎo)出.bin文件
如果我把好的CC2650STK的FLASH讀出來,再寫到壞的CC2650STK里
是不是能先把壞的救活?
管他有啥用先弄好再說
試了一下能讀好的,也能寫壞的
寫好以后壞的還是壞的,裝上電池就是沒反應(yīng)
再用Flash Programmer 2讀兩個的FLASH比較,一模一樣
真是的了,啥毛病,搞不懂
再試試把好的CC2650STK中的固件再寫回好的CC2650STK
結(jié)果好的也變石頭了,兩石頭
兩個CC2650STK都掛了,什么心情,恨死TI了,讓我費(fèi)了這么大勁
后來又查資料,查到XDS110可以使用xdsdfu -s 01234567 –r來修改SN
這樣一臺電腦就可以插多個不同SN的XDS110設(shè)備來同時(shí)調(diào)試多個MCU
覺得改不改沒啥用,也沒別的招,試試吧
改完以后電腦提示找到新硬件
然后使用CCS仿真,居然能下載了
又邁了一步
下載examples\cc2650stk\sensortag到CC2650
點(diǎn)運(yùn)行,CC2650沒反應(yīng)
點(diǎn)暫??吹匠绦蜻\(yùn)行在Hwi.c中的Void Hwi_excHandler(UInt *excStack, UInt lr)函數(shù)中的
while (Hwi_excHandlerFunc == NULL) {
;
}
處
啥原因也不清楚
CSS不行就用IAR試試
打開examples\cc2650stk\sensortag編譯,下載
下載成功,點(diǎn)運(yùn)行,CC2650也沒有反應(yīng)
點(diǎn)暫停,程序不知道跑哪了,找不到當(dāng)前位置
看來是examples\cc2650stk\sensortag程序有問題
更有可能是我沒弄明白examples\cc2650stk\sensortag是不是直接編譯仿真就可以
又看到examples\hex下有cc2650stk_sensortag_rel.hex文件
抱著試試看的態(tài)度用Flash Programmer 2刷了一下
插上電池亮了,用手機(jī)也能搜到
對比了一下cc2650stk_sensortag_rel.hex是335K
IAR編譯的sensortag_cc2650stk_app.hex是153K
應(yīng)該不是一個項(xiàng)目的關(guān)系?
先不管,把另一個CC2650STK也刷回來再說
看了一下,刷好這個是舊的,因?yàn)榕f的在到手時(shí)就發(fā)現(xiàn)TMP006掉碴了,不好用
再刷新的CC2650STK的時(shí)候中途總是斷
Flash Programmer 2提示Unable to start target CPU
用UniFlash下載會在下載的過程中提示Status: Cortex_M3_0: JTAG Communication Error: (Error -1170 @ 0x0) Unable to access the DAP.后中斷
試了無數(shù)次都一樣
新的不能下載
舊的再下載還是能下
一批的東西,PCB和芯片全一樣的兩個CC2650STK差距怎么就這么大呢
不死心,您猜怎么著?
最后新板使用IAR Project菜單中的Download下的Download File把cc2650stk_sensortag_rel.hex燒進(jìn)去的
現(xiàn)在兩個CC2650都能啟動,都可以用手機(jī)搜到
這件事太亂太亂,只能等冷靜下來好好梳理了
經(jīng)過這幾天的嘗試總結(jié)如下:
1、JLINK調(diào)試CC2650是不行的,至少硬件V8以下,軟件V6.10a版本以下不行
能試的我都試了,不過我的V8是D版,開發(fā)板帶的JLINK硬件版本是1.0
2、LAUNCHXL2-RM46開發(fā)板帶的XDS110可以仿真CC2650
需要燒最新的固件,需要改序列號
3、另外我把C:\ti\ccs_base下的文件覆蓋到C:\ti\ccsv6\ccs_base下了,不知道會有什么用
4、LAUNCHXL2-RM46開發(fā)板帶的XDS110仿真CC2650,有時(shí)會提示ID不對
是因?yàn)榘迳系腞M46L852 MCU和CC2650共用一個調(diào)試口
又不能物理斷開,如果有這種提示可以按住開發(fā)板上的PORRST按鈕,這是一個硬件復(fù)位
據(jù)RM46L852手冊上說,硬件復(fù)位時(shí)的RM46L852所有引腳都為高阻態(tài)
這樣就不會影響CC2650調(diào)試了
5、C:\ti\simplelink\ble_sdk_2_02_00_31\examples\cc2650stk\sensortag下的項(xiàng)目和cc2650stk(SensorTag)出廠時(shí)帶的固件不一樣至少直接編譯時(shí)是不一樣的
可能是我沒弄明白
6、C:\ti\simplelink\ble_sdk_2_02_00_31\examples\hex\cc2650stk_sensortag_rel.hex這個固件和出廠帶的基本一樣
Jlink調(diào)試CC2650報(bào)錯
CCS調(diào)試CC2650時(shí)遇到的其中一個錯誤
Flash Programmer 2插入XDS110時(shí)報(bào)錯 Failed to enumerate XBAL devices
Flash Programmer 2改成默認(rèn)2線cJTAG后可以找到CC2650
Flash Programmer 2成功連接設(shè)備
Flash Programmer 2成功給舊板下載固件
Flash Programmer 2有時(shí)左邊會只顯示一個XDS110硬件
Flash Programmer 2成功讀取CC2650 FLASH
Flash Programmer 2使用Read Flash to File把新板的固件導(dǎo)出到電腦
Flash Programmer 2把成功從新板導(dǎo)出的固件燒回到舊板,校驗(yàn)成功,可就是不好用
Flash Programmer 2讀取CC2650 MAC地址
UniFlash讀取到的MAC地址和Flash Programmer 2讀取的一樣
使用UniFlash燒新板導(dǎo)出的固件到舊板
UniFlash燒固件的過程
CCS有時(shí)會報(bào)錯
IAR使用XDS110給CC2650下載固件的過程
修改序列號后的XDS110在使用UniFlash給舊板燒固件時(shí)沒有錯誤提示
修改序列號后的XDS110在使用UniFlash給新板燒固件時(shí)總是有錯誤提示
錯怪C:\ti\simplelink\ble_sdk_2_02_00_31\examples\cc2650stk\sensortag項(xiàng)目了剛才重裝了一下,使用IAR下載成功
除了TMP006收到就壞了,其它都好用
點(diǎn)擊閱讀原文可與作者交流、溝通。
以上圖文內(nèi)容均是EEWORLD論壇網(wǎng)友:littleshrimp 原創(chuàng),在此感謝。
歡迎微博@EEWORLD
如果你也寫過此類原創(chuàng)干貨請關(guān)注微信公眾號:EEWORLD(電子工程世界)回復(fù)“投稿”,也可將你的原創(chuàng)發(fā)至:bbs_service@eeworld.com.cn,一經(jīng)入選,我們將幫你登上頭條!
與更多行業(yè)內(nèi)網(wǎng)友進(jìn)行交流請登陸EEWORLD論壇。
(正文已結(jié)束)
推薦閱讀:美麗潮流
免責(zé)聲明及提醒:此文內(nèi)容為本網(wǎng)所轉(zhuǎn)載企業(yè)宣傳資訊,該相關(guān)信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點(diǎn),文章真實(shí)性請瀏覽者慎重核實(shí)!任何投資加盟均有風(fēng)險(xiǎn),提醒廣大民眾投資需謹(jǐn)慎!