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

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

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


GD32的MCU介紹
兆易創(chuàng)新GD32 MCU選型手冊,適用于GD32全系列MCU
不同型號的GD32 MCU如何區(qū)分?

【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

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

【GD32 MCU入門教程】GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項(xiàng)

評論