硬件看門(mén)狗導(dǎo)致MCU啟動(dòng)時(shí)間慢
最近,在項(xiàng)目交付過(guò)程中,我們遇到了一個(gè)有趣的問(wèn)題,與大家分享一下。
客戶的需求是:在KL15電壓上電后,MCU需要在200ms內(nèi)發(fā)送出第一包CAN報(bào)文數(shù)據(jù)。然而,實(shí)際測(cè)試結(jié)果顯示,軟件需要360ms才能發(fā)送出第一包數(shù)據(jù)。
經(jīng)過(guò)測(cè)量,從KL15上電到MCU 3.3V電壓穩(wěn)定,耗時(shí)75.5ms。
而MCU在3.3V電壓輸出第一包CAN報(bào)文耗時(shí)304ms。
此外,MCU軟件從BOOT啟動(dòng)到APP啟動(dòng)耗時(shí)60ms。
理論上,這些時(shí)間加起來(lái)不應(yīng)超過(guò)140ms,那么多余的220ms究竟來(lái)自哪里呢?
進(jìn)一步調(diào)查發(fā)現(xiàn),外部晶振在3.3V電壓穩(wěn)定后的281ms才開(kāi)始正常工作。
最終測(cè)試發(fā)現(xiàn),表面上看似晶振起振慢,實(shí)際上是由于看門(mén)狗在啟動(dòng)階段一直拉低MCU的RESET腳,從而影響了晶振的起振速度。
根據(jù)使用的硬件看門(mén)狗芯片的特性,首次上電后的100~300ms內(nèi),實(shí)測(cè)結(jié)果顯示會(huì)在200+ms的時(shí)間里處于拉低狀態(tài)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。