問(wèn)題描述
客戶反饋通過(guò)PC軟件Flashloader不能夠跟STM32 MCU自帶Bootloader連接。并且系統(tǒng)運(yùn)行一段時(shí)間后異常復(fù)位。
系統(tǒng)分析
檢測(cè)原理圖
延續(xù)之前的項(xiàng)目,進(jìn)行的一些軟硬件簡(jiǎn)單修改。
上電、放電的時(shí)序也是正常。
BOOT0 拉高,BOOT1 拉低,
測(cè)量工作時(shí)的電壓正常(2.5v)。
檢測(cè)所有相關(guān)的硬件軟件都是沒(méi)有問(wèn)題,他們的BOOT腳,以及之前的PDR_ON是通過(guò)外圍的FPGA單元控制,我們一開(kāi)始懷疑這些上電時(shí)序,以及PDR邏輯出錯(cuò)。嘗試讓他們?nèi)繑嚅_(kāi)邏輯,測(cè)試整個(gè)上電,掉電過(guò)程都是沒(méi)有什么問(wèn)題。
測(cè)量波形
檢測(cè)他們的串口工具
能正常在PC上發(fā)現(xiàn)他們的串口工具,數(shù)據(jù)的發(fā)送正常。
但是串口的到PCB板上沒(méi)有任何的輸出,所以并不能跟板子通訊。
使用一個(gè)新的串口工具,當(dāng)產(chǎn)品連接到PC后,重新上電,能夠正常升級(jí)軟件,到這里似乎問(wèn)題得到解決,但是當(dāng)他們恢復(fù)到之前的系統(tǒng),通過(guò)控制Reset和BOOT引腳進(jìn)入的時(shí)候,仍然時(shí)靈時(shí)不靈,當(dāng)不能進(jìn)入BOOT的時(shí)候,他們測(cè)量我們的復(fù)位管腳電壓時(shí)發(fā)現(xiàn)在復(fù)位腳上以一個(gè)3.6MHz的頻率不停的復(fù)位MCU。
功能測(cè)試
客戶又發(fā)現(xiàn)如果給MCU上電,PC快速打開(kāi)Flashloader,并且連接串口,工作正常。但是,如果慢速這樣操作,就連不上了,真是神奇的事情再次發(fā)生,他們?cè)俅未_認(rèn)發(fā)現(xiàn),在復(fù)位腳上,在上電一段時(shí)間后,會(huì)有不停的有一個(gè)復(fù)位信號(hào)產(chǎn)生,百思不得解。
確認(rèn)手冊(cè)
我們打開(kāi)AN2606,發(fā)現(xiàn)在Bootloader的流程圖中有一個(gè)系統(tǒng)Reset的過(guò)程,難道是這里產(chǎn)生的嗎?
我們讓客戶斷開(kāi)所有的外設(shè)再次確認(rèn)問(wèn)題,他們發(fā)現(xiàn)在斷開(kāi)外圍的時(shí)候,這個(gè)連續(xù)的復(fù)位信號(hào)不再產(chǎn)生。從這個(gè)流程來(lái)看,只有在用到DFU或者CAN升級(jí)的會(huì)在檢測(cè)不到HSE的時(shí)候會(huì)系統(tǒng)Reset,但據(jù)他們說(shuō),他們并不使用這兩個(gè)功能,那就奇怪了,然后就讓他們?cè)囎鋈セ謴?fù)外設(shè)功能,最后發(fā)現(xiàn)在恢復(fù)到一個(gè)SPI的時(shí)候,重現(xiàn)這個(gè)問(wèn)題。
系統(tǒng)確認(rèn)
我再次跟他們溝通他們的系統(tǒng)框圖如下:
他們進(jìn)一步調(diào)查發(fā)現(xiàn),當(dāng)FPGA,在上電初始化后,會(huì)不停的發(fā)送一些命令給到MCU,數(shù)據(jù)線正好跟CAN的RX引腳共用,所以只有第一次上電后,也就是在FPGA給MCU發(fā)送數(shù)據(jù)之前,F(xiàn)lashloader能夠正常連接MCU,過(guò)了這段時(shí)間就不能連接了。從這些實(shí)驗(yàn)和最后的結(jié)果我們可以看出,如果我們?cè)?a target="_blank">芯片上電,且在FPGA給MCU發(fā)送數(shù)據(jù)之前,連接串口,這個(gè)時(shí)候MCU就能順利地通過(guò)UART啟用Bootloader,而不受FPGA發(fā)送的數(shù)據(jù)影響,而過(guò)了這段時(shí)間之后,F(xiàn)PGA會(huì)不停的發(fā)送數(shù)據(jù)給MCU,而MCU錯(cuò)誤的檢測(cè)到CAN FRAME(跟ST歐洲的應(yīng)用部門確認(rèn),我們的CAN 檢測(cè)只是簡(jiǎn)單的確認(rèn)一個(gè)下降沿,一個(gè)上升沿,再檢測(cè)到一個(gè)下降沿),而進(jìn)入CAN Bootloader但是又不能正確檢測(cè)到HSE,或者不能在3ms內(nèi)檢測(cè)到正常的CAN FRAME,從而導(dǎo)致MCU復(fù)位。在屏蔽掉SPI的時(shí)候,一切正常。
-
STM32
+關(guān)注
關(guān)注
2257文章
10828瀏覽量
352433 -
bootloader
+關(guān)注
關(guān)注
2文章
232瀏覽量
45366
原文標(biāo)題:經(jīng)典案例 | STM32 Bootloader異常復(fù)位
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論