上一篇文章提到"怎麼更新LPC1114 中的firmware? (1/2) LPC-LINK"後,又提到 ISP (In System Programming) 方式.
不過因為在開始說明操作步驟前要先完成幾件事情:
看看上面步驟3以及圖1.花了我不少時間,還有金錢去完成.
現在終於可以繼續進行.(可見有LPCXpresso真的是很方便啊).
假設你步驟 1~3 都完成了,那現在你應該可以啟動Flash Magic見到下圖2的畫面.
還有一個LPCXpresso 加上DIY 的Base Board 如圖3.當然不同規劃,所以你的板子可能不是長成醬.
線路都確認過後.將USB接上,目前電源都由USB透過LPCXpresso供應.
LPCXpresso (LPC1114) 的線路圖以及兩邊腳位定義請參考 線路圖 (PDF檔案).
接著要怎麼測試連線有沒有問題?
到這裡ISP 更新Flash code就幾乎快完成了.
但是還記得一開始提的4個步驟中的第4點. "將LPCXpresso project設定能build出 Hex檔案(因為Flash Magic只讀這種格式)" .
這裡需要在使用LPCXpresso IDE,如何在LPCXpresso build 後產生Hex file:
Hex file已經產生了,再回到Flash Magic.
Step1的部分前面在測試連線的時候已經設定過,設定值是會被保留.所以可以不用再作設定.
若還沒設定過就逐步檢查設定.
不過因為在開始說明操作步驟前要先完成幾件事情:
- 下載 Flash Magic ,並且安裝.許多NXP的MCU都可透過這個軟體更新MCU內Flash code.若有新的MCU,Flash Magic會很快的被更新,所以記得要去下載新版本.
- 檢查你的PC/NB有沒有COM PORT? 若沒有,則要去購買USB 轉COM Port的線材.
- DIY RS232(COM) level shift ,以及兩個按鈕.接到 MCU的RESET及ISP 兩個pin腳.線路如(圖1)
- 將LPCXpresso project設定能build出 Hex檔案(因為Flash Magic只讀這種格式)
(圖1) |
看看上面步驟3以及圖1.花了我不少時間,還有金錢去完成.
現在終於可以繼續進行.(可見有LPCXpresso真的是很方便啊).
假設你步驟 1~3 都完成了,那現在你應該可以啟動Flash Magic見到下圖2的畫面.
(圖2) |
還有一個LPCXpresso 加上DIY 的Base Board 如圖3.當然不同規劃,所以你的板子可能不是長成醬.
(圖3) |
LPCXpresso (LPC1114) 的線路圖以及兩邊腳位定義請參考 線路圖 (PDF檔案).
接著要怎麼測試連線有沒有問題?
- 接上USB,若在這之前你試過Blinky的專案,那LPCXpresso上的LED2應該開始bling-bling的閃了
- 按下線路圖(圖1)中的K2,也就是ISP按鍵
- 再按下K1,也就是RESET按鍵
- 再來K1/K2都可以放開,這時候LED2應該就不會閃爍,因為已經進入ISP mode
- 開啟Flash Magic,見圖2.
- (Step1-Communications )中選擇Select Device ,選 ARM Cortex-> LPC1114/301
- (Step1-Communications )中選擇COM PORT,例如我是使用USB TO COM,查是COM6
- (Step1-Communications )中設定Baud Rate :115200
- (Step1-Communications )中設定Interface : None(ISP)
- (Step1-Communications )中設定Oscillator(MHz): 12
- 先使用上方ISP-> Read Device Signature,若硬體接線與操作都正確會出現圖4 中訊息,表示已經進入ISP mode且通訊正常
(圖4) |
到這裡ISP 更新Flash code就幾乎快完成了.
但是還記得一開始提的4個步驟中的第4點. "將LPCXpresso project設定能build出 Hex檔案(因為Flash Magic只讀這種格式)" .
這裡需要在使用LPCXpresso IDE,如何在LPCXpresso build 後產生Hex file:
- 在Project view裡選取Blinky專案後滑鼠右鍵功能的最後一項Properties或是'Alt+Enter' ,會出現Properties for Blinky
- C/C++ Build -> Settings -> Build Steps -> Post-build steps -> Command: 內文 "arm-none-eabi-size ${BuildArtifactFileName};# arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex ; "
- 將上面那個 # 刪除 , 或是加入2.中#之後的文字. Apply 後 OK. (圖5)
- 重新再Build一次 Blinky
- 就會在Debug內找到 blinky.hex (圖6)
(圖5) |
(圖6) |
Step1的部分前面在測試連線的時候已經設定過,設定值是會被保留.所以可以不用再作設定.
若還沒設定過就逐步檢查設定.
- (Step1-Communications )中選擇Select Device ,選 ARM Cortex-> LPC1114/301
- (Step1-Communications )中選擇COM PORT,例如我是使用USB TO COM,查是COM6
- (Step1-Communications )中設定Baud Rate :115200
- (Step1-Communications )中設定Interface : None(ISP)
- (Step1-Communications )中設定Oscillator(MHz): 12
- (Step2 - Erase ) 勾選 Erase all Flash+Code Rd Prot
- (Step3 - Hex File) Browse ,選擇你的workspace下,Blinky\Debug\blink.hex
- (Step4 - Options) 勾選Verify after programming
- (Step5 - Start! ) 按下Start! 就開始更新Flash動作
- 注意左下方狀態欄,會有進度與狀況回報
- 更新與驗證完成後,按下K1作RESET動作,MCU就開始執行新的code
請問一下,LPC1114的UART如何做receive?
回覆刪除是不是有sample code?
Hi,
回覆刪除http://ics.nxp.com/support/lpcxpresso/ 你可以找lpc1114 sample code 其中 project "uart" 裡面就包含T/R. 你可以參考.
~MCU diy~