玩過GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統編程,前面的常見問題也給大家講過什么是ISP,什么是IAP?
那有沒有小伙伴遇到過ISP失敗的情況,失敗的原因是什么呢?
我們就以GD32F30x系列為例,來看下用戶手冊:

通過將BOOT0拉高,BOOT1拉低,上電后,MCU則工作在ISP模式,此時可以通過ALL-IN-ONE軟件(或用戶自行開發的上位機軟件)對MCU進行編程、操作選項字節、flash數據回讀等操作,使用的是以下口:

如果用的是容量不超過512K的GD32F303系列(HD產品),則使用USART0(PA9 PA10)進行ISP交互,如果是超過512K的GD32F303系列(XD產品),則除了USART0,還有USART1(PA2 PA3),如果是F305/307系列(CL產品),則還增加了一個USB接口(DFU模式)。
當進入ISP后,實際上MCU是不知道自己該用哪個口進行ISP的,此時需要MCU和上位機(All-IN-ONE等)進行通訊握手,握手信號由上位機發出,也就是說哪個口先接收到上位機的握手信號,則該口被自動設置為ISP口,而其他通訊口則不會再處理ISP過程。
比如使用GD32F303ZKT6(XD產品),當上位機通過PA10(MCU的RX接收腳)向MCU發出握手信號后,則USART0被識別為ISP口,且此時USART0的波特率會根據握手信號進行自適應設置。
那么如果一個板子上,預設的是USART0(PA9 PA10)作為ISP口的,但同時PA3接了另外的芯片,當MCU上電的時候,有芯片往PA3上發了一些脈沖,則MCU會將USART1(PA2 PA3)設置為ISP口,此時,用戶再使用USART0的話,則會失敗。
根據上述原理,還有一種失敗的可能性,就是剛上電時,ISP口上接收到了一些干擾信號,此時USART被設置為異常的波特率,那么在正式進行ISP時,也會失敗。
以上就是GD32 MCU ISP失敗的兩個可能原因,小伙伴知道其他原因的也歡迎在評論區互動哦。
-
單片機
+關注
關注
6043文章
44622瀏覽量
638533 -
mcu
+關注
關注
146文章
17317瀏覽量
352640 -
ISP
+關注
關注
6文章
478瀏覽量
52015 -
GD32
+關注
關注
7文章
413瀏覽量
24469
發布評論請先 登錄
相關推薦
GD32 MCU 入門教程】GD32 MCU 常見外設介紹(12)FMC 模塊介紹


兆易創新GD32 MCU選型手冊,適用于GD32全系列MCU
【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(14)RTC 模塊介紹

【GD32 MCU入門教程】GD32 MCU GPIO 結構與使用注意事項

評論