0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32 Bootloader異常復(fù)位如何解決

STM32單片機(jī) ? 來(lái)源:陳翠 ? 2019-03-23 10:26 ? 次閱讀

問(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)有任何的輸出,所以并不能跟板子通訊。

STM32 Bootloader異常復(fù)位如何解決

使用一個(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。

STM32 Bootloader異常復(fù)位如何解決

功能測(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)生的嗎?

STM32 Bootloader異常復(fù)位如何解決

我們讓客戶斷開(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)框圖如下:

STM32 Bootloader異常復(fù)位如何解決

他們進(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í)候,一切正常。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是Bootloader 淺談STM32bootloader的內(nèi)存分配

    。Bootloader不但依賴于CPU的體系架構(gòu),而且依賴于嵌入式系統(tǒng)板級(jí)設(shè)備的配置。 3. STM32bootloader的內(nèi)存分配
    的頭像 發(fā)表于 02-15 06:10 ?1.7w次閱讀
    什么是<b class='flag-5'>Bootloader</b> 淺談<b class='flag-5'>STM32</b>中<b class='flag-5'>bootloader</b>的內(nèi)存分配

    STM32單片機(jī)的應(yīng)用筆記 奇怪的NRST 管腳異常復(fù)位問(wèn)題

    關(guān)鍵字:漏電流, ADC 目錄預(yù)覽 1 引言? 2 復(fù)位問(wèn)題及排查 3 總結(jié) 1. 引言 本文探討一個(gè)奇怪的MCU NRST 管腳異常復(fù)位現(xiàn)象。 2.? 復(fù)位問(wèn)題及排查 這個(gè)問(wèn)題是客戶
    的頭像 發(fā)表于 07-13 18:55 ?9716次閱讀
    <b class='flag-5'>STM32</b>單片機(jī)的應(yīng)用筆記 奇怪的NRST 管腳<b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>問(wèn)題

    何解STM32的電源復(fù)位和引腳復(fù)位問(wèn)題?

    何解STM32的電源復(fù)位和引腳復(fù)位問(wèn)題?
    發(fā)表于 12-17 06:31

    STM32芯片異常復(fù)位的原因有哪些

    在做STM32應(yīng)用開(kāi)發(fā)過(guò)程中,遇到芯片異常復(fù)位,或進(jìn)入了異常處理時(shí),如何解決?通過(guò)本篇案例分析,了解更多處理思路。
    的頭像 發(fā)表于 03-08 16:24 ?2w次閱讀
     <b class='flag-5'>STM32</b>芯片<b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>的原因有哪些

    STM32系統(tǒng)bootloader的應(yīng)用有哪些

    嵌入式開(kāi)發(fā)中,經(jīng)常需要bootloader進(jìn)行程序固件升級(jí)和系統(tǒng)維護(hù),所以bootloader是必不可少的功能。STM32系統(tǒng)自帶的系統(tǒng)bootloader很方便使用。大量減少了工程師
    的頭像 發(fā)表于 10-22 12:19 ?5386次閱讀
    <b class='flag-5'>STM32</b>系統(tǒng)<b class='flag-5'>bootloader</b>的應(yīng)用有哪些

    STM32系統(tǒng)bootloader應(yīng)用

    嵌入式開(kāi)發(fā)中,經(jīng)常需要bootloader進(jìn)行程序固件升級(jí)和系統(tǒng)維護(hù),所以bootloader是必不可少的功能。STM32系統(tǒng)自帶的系統(tǒng)bootloader很方便使用。大量減少了工程師
    發(fā)表于 11-26 13:36 ?17次下載
    <b class='flag-5'>STM32</b>系統(tǒng)<b class='flag-5'>bootloader</b>應(yīng)用

    STM32單片機(jī)bootloader掃盲

    STM32單片機(jī)BootLoader掃盲BootLoader和APP之間的關(guān)系A(chǔ)PP就是平時(shí)寫的單片機(jī)上的應(yīng)用程序,而BootLoader本質(zhì)上和APP一樣,也是平時(shí)寫的應(yīng)用程序
    發(fā)表于 11-26 18:21 ?76次下載
    <b class='flag-5'>STM32</b>單片機(jī)<b class='flag-5'>bootloader</b>掃盲

    STM32引起電源和系統(tǒng)異常復(fù)位的原因

    關(guān)注、星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容來(lái)源:STM32每一塊處理器都有復(fù)位的功能,不同處理器復(fù)位的類型可能有差異,引起復(fù)位的原因也可能有多種。今天是第3篇分享...
    發(fā)表于 01-05 14:28 ?4次下載
    <b class='flag-5'>STM32</b>引起電源和系統(tǒng)<b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>的原因

    stm32 復(fù)位到內(nèi)部bootloader

    sm32的bootloader一般是通過(guò)開(kāi)機(jī)時(shí)設(shè)置boot0=1來(lái)實(shí)現(xiàn)的。下面是通過(guò)程序來(lái)實(shí)現(xiàn):原來(lái)的startup文件是直接把flash的數(shù)據(jù)加載到ram里面然后跑main函數(shù)循環(huán)
    發(fā)表于 01-17 12:44 ?4次下載
    <b class='flag-5'>stm32</b> <b class='flag-5'>復(fù)位</b>到內(nèi)部<b class='flag-5'>bootloader</b>

    STM32學(xué)習(xí)筆記 | 引起電源和系統(tǒng)異常復(fù)位的原因

    關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容每一塊處理器都有復(fù)位的功能,不同處理器復(fù)位的類型可能有差異,引起復(fù)位的原因也可能有多種。STM32復(fù)位功能
    發(fā)表于 01-17 12:45 ?2次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)筆記 | 引起電源和系統(tǒng)<b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>的原因

    經(jīng)典案例解析 | STM32芯片異常復(fù)位

    問(wèn)題描述:某STM32用戶反饋,當(dāng)使用STM32L4芯片的時(shí)候,程序運(yùn)行一段時(shí)間后,會(huì)忽然復(fù)位。復(fù)位后程序繼續(xù)運(yùn)行,但是還會(huì)繼續(xù)復(fù)位,原因不
    發(fā)表于 02-10 11:30 ?19次下載
    經(jīng)典案例解析 | <b class='flag-5'>STM32</b>芯片<b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>

    stm32復(fù)位 內(nèi)核復(fù)位和系統(tǒng)復(fù)位

    內(nèi)核復(fù)位:它會(huì)使STM32內(nèi)核(Cortex-M)進(jìn)行復(fù)位,而不會(huì)影響其外設(shè),如GPIO、TIM、USART、SPI等這些寄存器的復(fù)位。
    的頭像 發(fā)表于 08-01 17:21 ?4310次閱讀

    STM32 Bootloader異常復(fù)位案例

    電子發(fā)燒友網(wǎng)站提供《STM32 Bootloader異常復(fù)位案例.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 09:17 ?3次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>Bootloader</b><b class='flag-5'>異常</b><b class='flag-5'>復(fù)位</b>案例

    STM32無(wú)法進(jìn)入片上Bootloader的處理方法

    STM32無(wú)法進(jìn)入片上Bootloader的處理方法? 當(dāng)STM32芯片無(wú)法進(jìn)入片上Bootloader時(shí),我們需要采取一系列的處理方法來(lái)解決這個(gè)問(wèn)題。以下將詳細(xì)介紹一些常見(jiàn)的處理方法
    的頭像 發(fā)表于 02-02 14:33 ?1499次閱讀

    STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別

    系統(tǒng)中,復(fù)位電路是保證系統(tǒng)正常工作的重要部分。當(dāng)系統(tǒng)出現(xiàn)異常或需要重新啟動(dòng)時(shí),復(fù)位電路能夠迅速將系統(tǒng)恢復(fù)到初始狀態(tài)。STM32微控制器的復(fù)位
    的頭像 發(fā)表于 08-06 10:26 ?412次閱讀