MSP430系列開發(fā)調試經驗心得
低功耗、流行的SOC結構,適合做智能儀表的MSP430開始吸引我了。MSP430系列是一款低功耗且流行的SOC結構,非常適合用于智能儀表領域。在我的開發(fā)過程中,遇到了一些另類問題,下面將與大家分享一下
低功耗、流行的SOC結構,適合做智能儀表的MSP430開始吸引我了。
MSP430系列是一款低功耗且流行的SOC結構,非常適合用于智能儀表領域。在我的開發(fā)過程中,遇到了一些另類問題,下面將與大家分享一下我的經驗和解決方法。
MSP430系列的IAR調試常見問題和經驗心得
首先,在連接仿真器時,可能會遇到無法下載的問題。這個問題很常見,IAR會提示找不到目標。解決方法有三種:一是并口驅動能力不足,可以在電腦的BIOS界面下將驅動設置成ECP或者ECP/EPP模式;二是JTAG線太長,一般超過20CM不推薦使用,并且不要讓線交叉纏繞,否則會影響實時在線調試;三是負載太大,如果板子的功耗較大,電流超過20MA,建議使用外接電源,以免并口驅動能力不足,導致MCU電壓被拉低而不能寫入FLASH。
另一個常見問題是程序下載到一半突然報錯,提示某個地址寫不進去。解決方法有三種:一是芯片的復位電路引起的,寫FLASH時系統(tǒng)電壓會波動,可能導致芯片復位,使用BSL再燒一遍可以解決;二是芯片可能死機了,斷電、拔掉JTAG后稍后再試,一般沒有問題;三是如果以上方法都無法解決,可以嘗試給芯片上電,電壓設置為3.6V,重新寫一次,一定能解決。因為F1XX系列的寫FLASH電壓不能低于2.7V,所以用3.6V電壓,無論什么樣的芯片都能寫回來。
關于3.40以上版本的仿真器設置問題
說實話,我在開發(fā)過程中不太愿意隨便換IAR的版本,因為有些語法不兼容,有些設置不一樣。最近安裝了3.40的限制版,一路NEXT,好像沒什么特別的地方。裝好后發(fā)現(xiàn)芯片的選擇余地變多了,包括了F2XX等多種類。然而,在硬件FET接著跑一個DEMO時,卻報錯了!原來在仿真欄目里除了選擇FET硬件仿真外,還需要選擇訪真器,我沒有仔細看,結果默認選項是TI-USB,所以出了問題。將選項改成LPT(并口FET),問題就解決了。
另類級問題
1. F1611大數(shù)組定義不能正常運行的問題:當使用F1611時,有可能遇到RAM中定義的變量或數(shù)組超過一個極限時,MSP程序無法正常運行??梢酝ㄟ^將I/O輸出電平來確定程序進程,這樣可以方便地判斷是否是由WDT引起的問題。解決方法有三種:一是對數(shù)組使用__no_init_定義,在上電時編譯器不會產生特殊的附加函數(shù)去初始化RAM;二是修改IAR中Cstartup.S43文件中的__program_start子程序,增加一個關閉WDT的操作或者設置WDT時間長度超過32MS;三是在Project--Options--Linker--Config中選擇Override default programe,并將Entry lib設置成__program_start。這些方法都是已知解決1611RAM初始化時間超過WDT默認而復位的解決方法,如果使用匯編,則沒有這個問題。
2. SVS導致MSP "壞死" 問題:在開發(fā)一款儀表時,我使用了F425,并且將SVS的電壓設置為3.3V。然而,在第一次JTAG寫入后,板子就沒有再啟動工作了。最初以為MCU被寫廢了,但后來接上電源和電流表發(fā)現(xiàn)電流有周期性跳躍,原來該MCU正被SVS復位中。解決方法是重新加電壓,超過3.3V,修改設置后重新寫入FLASH,問題就解決了。希望這個經驗能提醒使用SVS和SVS的朋友們注意,有時這個問題不太容易被發(fā)現(xiàn)。
3. I/O電壓供電居然也行?在設計低功耗設備時,有時我們會將MCU的引腳用于給其他IC供電。這個方案最早我在PIC單片機上使用過,并且在MSP430上也沒有問題。但是,在硬件設計時一定要慎重考慮,因為I/O可以供電給其他IC,同樣也可以從其他IC中取電。在一些設計中,MCU的靜態(tài)功耗無法降下來,尤其是在設計變送器或者4-20MA雙線制設備上,需要謹慎處理這個問題。