靈動(dòng)微MM32位MCU燒錄經(jīng)驗(yàn)分享
最近有部分剛接觸MM32 MCU的用戶朋友們碰到了MCU無法進(jìn)行下載的情況,然后跟我們反饋芯片有問題,最后經(jīng)過技術(shù)工程師跟進(jìn),其實(shí)都是用戶程序使用錯(cuò)誤或者操作不規(guī)范等原因造成的,并非芯片有問題,小編表示也很無奈。如果大家有碰到這種情況,請(qǐng)不要著急,我們今天這篇文章專門來講解如何解決燒寫失敗的情況及有可能出現(xiàn)該類問題的原因。MM32無法進(jìn)行燒寫原因有多種情況,我們從硬件和軟件兩個(gè)方面分析:
硬件原因:
1、 使用的調(diào)試器不支持調(diào)試下載MM32 MCU,IAR/KEIL上仿真器選擇/配置不正確,MM32 MCU已經(jīng)獲得Segger官方認(rèn)證。在Segger官網(wǎng)J-Link驅(qū)動(dòng)6.40以上版本支持MM32 MCU系列,MM32 MCU支持如MM32-Link、U-link、J-Link、DAP-Link等使用SWD/JTAG(M3)等方式對(duì)內(nèi)核、外設(shè)、FLASH進(jìn)行訪問。
2、 MM32 MCU最小系統(tǒng)不完整,復(fù)位電路設(shè)計(jì)錯(cuò)誤、MCU供電不正常等也會(huì)出現(xiàn)無法識(shí)別設(shè)備Device等情況。MM32 MCU支持寬電壓2.0-5.5v供電,在用戶自己設(shè)計(jì)產(chǎn)品PCB時(shí),建議用戶預(yù)留VCC、SWDIO、SWCLK、GND、NRST五線下載口方式。
3、 SWD的兩個(gè)引腳PA13、PA14引腳虛焊,外部硬件有上拉或下拉,與調(diào)試器連接不正確或未連通等情況。
軟件原因:
1、 程序下載錯(cuò)誤,MM32MCU有F、L、SPIN、W、P五大系列,對(duì)于不同的MCU我們有不同的庫、啟動(dòng)文件與例程,大家下載程序前請(qǐng)查看自己MCU版本型號(hào)是否與要下載的程序?qū)?yīng),例如MM3F031C6T6分q版和n版,兩個(gè)型號(hào)由于時(shí)鐘域配置不同,程序不能直接共用。
2、 MCU處于讀/寫保護(hù)狀態(tài),當(dāng)MCU處于讀保護(hù)狀態(tài)時(shí),F(xiàn)LASH空間處于寫保護(hù)狀態(tài),此時(shí)無法使用SWD協(xié)議對(duì)內(nèi)核、外設(shè)、FLASH進(jìn)行訪問,無法進(jìn)行下載調(diào)試。
3、 MCU處于低功耗狀態(tài),當(dāng)MCU處于不同模式低功耗狀態(tài)時(shí),MCU的外設(shè)區(qū)域會(huì)處于斷電狀態(tài),調(diào)試器識(shí)別MCU處于斷電狀態(tài),無法進(jìn)行下載調(diào)試。
4、 SWD的兩個(gè)引腳PA13、PA14被復(fù)用為其他功能或通用IO,PA13、PA14被配置為其他工作模式,此時(shí)PA13、PA14無法正常工作在SWD模式,調(diào)試器無法通過SWD協(xié)議進(jìn)行下載調(diào)試。
5、 程序下載過程中出錯(cuò),由于下載速度和調(diào)試器版本特性等原因造成下載過程中出錯(cuò),導(dǎo)致MCU進(jìn)入HardFault狀態(tài)(程序跑飛),此時(shí)無法進(jìn)行下載調(diào)試。
下面以J-Link為例,列舉兩種具體表現(xiàn)形式與解決方案:
一、表現(xiàn)形式:下載報(bào)錯(cuò)No Cortex-M SW Device Found。此時(shí)調(diào)試器未識(shí)別到MCU(在keil中無法讀到芯片ID),無法下載程序。
可能原因:硬件問題:1、2、3;軟件問題:1、2、3、4、5;
解決方式:先檢查硬件,確保使用的調(diào)試器支持仿真調(diào)試MM32MCU,查看MM32MCU最小系統(tǒng)是否完整、復(fù)位電路(建議電阻上拉100k,接100nF電容到地)與MCU供電是否正常,測量PA13、PA14引腳是否虛焊,有無上拉或下拉,確認(rèn)與調(diào)試器連接正確并聯(lián)通。
確認(rèn)硬件無問題后,仿真方式選擇SWD、速度設(shè)置建議在1M-10M以內(nèi),方法1:NRST腳拉低(按住復(fù)位鍵或短接復(fù)位電容,此時(shí)在KEIL中可讀到ID),然后在IAR/KEIL中擦除程序(在keil的flash工具欄下的Erase操作),在IAR/KEIL出現(xiàn)進(jìn)度條時(shí)釋放NRST下拉電平,將芯片程序擦除后,重新上電就可以對(duì)MCU進(jìn)行下載調(diào)試;方法2:將BOOT0接高,重新斷電上電讓MCU從SRAM啟動(dòng),然后將芯片程序擦除,將BOOT0接低,重新上電就可以對(duì)MCU進(jìn)行下載調(diào)試。
二、表現(xiàn)形式:下載報(bào)錯(cuò)Error:Flash Download failed – “Cortex - M0”。此時(shí)調(diào)試器能識(shí)別到MCU(在keil中可以讀到芯片ID),可以擦除程序,無法下載程序。
可能原因:軟件問題:1、5;
解決方式:方法1:調(diào)整下載速度,速度設(shè)置建議在1M-10M以內(nèi),可多調(diào)節(jié)幾個(gè)速度試下,Download Fuction選擇Erase Full Chip
使用MM32-Link解決方式操作如下:
1、參照文檔連接MM32-Link與MM32MCU,建議使用五線下載方式:VCC、SWDIO、SWCLK、GND、NRST。
2、打開MM32-Link Program,新建workspace,根據(jù)芯片型號(hào)新建project。
3、確保ICP Program模式下,左下角MM32-Link處圓點(diǎn)為綠色(不為綠色時(shí)檢查MM32-Link是否連接電腦并正確識(shí)別設(shè)備,為黃色時(shí)雙擊左下角圓點(diǎn)),芯片連接處圓點(diǎn)為黃色或綠色(為灰色時(shí)檢查硬件連接并手動(dòng)對(duì)芯片進(jìn)行一次復(fù)位操作,拉低NRST引腳)。
4、點(diǎn)擊Erase Chip按鈕,等待擦除完成即可重新下載。
以上方式下載均在我們官網(wǎng)例程上進(jìn)行測試,如果有使用自己新建工程無法下載的情況,請(qǐng)檢查自己工程配置與IDE版本,建議使用IAR版本在7.4以上、KEIL版本在5.13及以上,IAR與KEIL上新建MM32 MCU工程方式請(qǐng)參照官網(wǎng)應(yīng)用文檔。
編輯:ls 最后修改時(shí)間:2022-06-07