如果我們的MCU調試不通過,我們該如何測試?(未完待續)


我們拿到一款MCU,首先在選型的時候對他們都會有一個大概的了解,首先我們知道它多大與的FLASH,多大的RAM,是否與我們的項目適合,資源上是否足夠,內頻是否足夠,運行速率能否達到標准,性能怎么樣,比如抗靜電干擾,高溫,潮濕的環境,寒冷,對芯片本身的影響,還有如何焊接幾層板,成本,是否易於開發,這里分為軟件和硬件來說明一下:

首先說一下硬件:

一般最小系統+外圍模塊,幾伏供電,供電等級,電壓等級(其實這個M0等也會涉及),原理圖的設計,元器件的選型,元器件的布局,布線更是一門大學問,甚至有些特殊場合,硬件對性能有非常嚴格的要求,比如說抗靜電干擾,電磁感應等。(后面我會重新補充更新這一塊)

靜電感應干擾是累積電荷高電壓放電的電擊現象。干擾表現是非持續性的,但是可以對電子設備造成永久性損害。用靜電計可以測到。可以用抗靜電措施與接地等方法消除。
電磁感應干擾是混進信號通路的雜波,會使信號波形產生大量毛刺,甚至嚴重到使波形發生畸變。干擾表現是持續性的,但是通常不會是永久性損害。一般通過電磁屏蔽隔離措施與接地等方法消除。

然后是軟件:

軟件其實就是配置寄存器,再配置寄存器的過程中需要參考手冊,學會看手冊,看手冊也是一門學問,比如說SPI的配置,首先看他選擇了那幾個引腳,然后配置成了什么模式,選擇了那個時鍾源,然后如何與外部器件進行通訊,外部器件的規格,這里有需要看SPIFLASH的型號和它對應的手冊,不過好在現在有很多MCU里有庫函數,省去了很多麻煩。

那么我們該如何測試呢?

首先要看懂代碼,明白他想要做什么,然后看它問題是出在哪?引腳,時鍾,模式,寄存器的配置,很多問題都出現在這,因為32位機的資源,寄存器很多,如果沒有參考手冊,一般什么都做不了,但是既然出現了問題,就要解決問題,好在現在大多數集成開發環境已經具有了調試,仿真的功能,還有示波器,電壓表,邏輯分析儀等配合分析解決問題的工具,出現問題切記不要欺騙自己,不要得過且過,我承認換一種方法是達到效果的捷徑,但你一定要明白,為什么這么做不可以?為什么?這樣你又能多明白一種道理,比如選取晶振為時鍾源,但是他不工作,換一個內部時鍾,達到了效果,但是我們也要知道,為什么繞過它就行,而使用它就不行呢?是不是因為它壞掉了,或者說它並不能做這個接口的時鍾?為了驗證我的猜測,我把所有例程都選擇晶振為時鍾都跑了一遍,發現沒有一個能夠工作的,然后,基本可以確定它確實是壞掉了,然后進行下一步的測試,用示波器觀察它是否起振,結果跟預計的一樣,它不起振,確實是壞掉了,還有一種問題,純粹是軟件的問題,這種驗證方法,有引腳的可以測引腳,沒有引腳的,可以仿真調試,實在不行那就憑借自己強大的大腦去思考,分析驗證,一遍一遍的嘗試,觀察現象,比如一個定時器進不去中斷,我們可以用調試,仿真的辦法進行驗證,然后查看手冊,分析原因,查看庫函數,調用,結果發現是一個定時器的標志位起了沖突,還有一個串口問題,也是標志位的錯誤,分析問題前提是弄懂問題,熟悉你手上的東西,還有一個問題是關還沒有於庫函數的問題,問題已經解決,但我目前還沒弄懂,無法解釋,明天有時間,我再看看,熟練使用工具,熟悉你手中的MCU,然后用各種驗證方法,計算也好,分析也好,替代也好,總之,解決問題,和為什么會出現這種問題,搞懂,你就會少走很多彎路,會有很大的成長。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com