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