PB3引腳燒了ST-LINK?工程師是如何解決這個問題的?

2020/09/16
128
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
最近魚鷹在忙著搞 NRF 無線通信,之前請人幫忙畫了一塊板子,用了 PB3 引腳作為模塊的 IRQ 中斷引腳,然后魚鷹把一塊自制 ST-LINK 燒掉了……

插上電之后,顯示無法識別,枚舉不通過……

看了電源指示燈后,發(fā)現(xiàn)插上那一刻,電源指示燈出現(xiàn)閃爍,估計是電源芯片燒了,如果只是如此還好,魚鷹有備用的芯片,拆了換上就好,就怕主控 C8T6 芯片燒了,那就很麻煩了。

還好魚鷹有一塊 ST 官方開發(fā)板,內置 ST-link ,可以應應急,不然就耽誤事了。

所以,有備用調試器和開發(fā)板是非常有必要的。

(左數(shù)第二個引腳為 SWO,第四為 CLK)

PB3 怎么就把 ST-LINK 燒了呢?這是一個悲傷的故事,請聽魚鷹慢慢道來。

因為需要使用 PB3 引腳作為中斷,所以魚鷹對它做了初始化,但是發(fā)現(xiàn)在另一塊板子(這塊板子不用這個引腳)能正常進入中斷的,到了這個新板子就不行了,主控都是一樣的,所以懷疑這是一個特殊引腳。

魚鷹趕緊百度了一下,果然,PB3 作為 J-TAG 的特殊輸出引腳 JTDO。

魚鷹趕緊把以前寫的禁止該引腳的代碼拷過來實驗一下,發(fā)現(xiàn)根本不管用,這個代碼可是魚鷹大二時候就測試過驗證的啊,不應該的。

?

然后上網(wǎng)搜了一下,發(fā)現(xiàn)網(wǎng)上的答案也是一樣的,這就奇怪了。

魚鷹不信邪,直接深入這個這個重映射函數(shù)里面,發(fā)現(xiàn)設置根本就不對:

魚鷹設置的是 0x02000000,而不是上面這個,如果是上面這個,直接關閉所有調試接口了,那我在和誰調試,空氣嗎?(后來才知道,這個值讀取的時候返回未定義的值)

因為引腳的電平狀態(tài)我是直接在線調試看的,按理說它顯示的狀態(tài)就是引腳的實際狀態(tài)才對,但實際情況就是它始終是低電平。

為了快速確定該引腳的功能,魚鷹直接在這個窗口上修改引腳配置信息(前提是該端口時鐘打開),配置為輸出模式,同時控制電平輸出:

發(fā)現(xiàn)還是不管用,還是表現(xiàn)為低電平,難道窗口設置的沒有效果?

魚鷹再次用代碼嘗試控制電平狀態(tài),還是不行……

見鬼,難道說這個窗口顯示的電平狀態(tài)在這個引腳不管用,IDR 寄存器沒有實時反映電平?

為了驗證這個問題,魚鷹直接用邏輯分析儀確定,然后魚鷹就悲劇了……

因為魚鷹的粗心,插錯了引腳,導致短路了……

魚鷹頓時心態(tài)崩了,本來就因為這個引腳的問題,導致心煩意亂,現(xiàn)在還把它給燒掉了,掉了,了……

魚鷹就這么一個寶貴的 LINK,還特地用熱縮管保護好,外面還有太上老君的“急急如律令”符紙鎮(zhèn)壓,生怕磕磕碰碰把它給燒了,誰知道還是改不了這個命運啊。

誰叫魚鷹當初在焊接這個板子的時候,找不到自恢復保險絲,直接焊上了鐵絲,所以悲劇了。

多少次,每次接反了引腳,都以為它要燒了,但依舊堅挺著,可這次咋沒挺過來呢,默哀三分鐘……

這個問題一直沒想通,直到吃完飯再折騰的時候,意外的發(fā)現(xiàn)了一個地方:

當初魚鷹在建立 uCOS II?模板時,直接把這個勾選了,而魚鷹知道,這個功能和?ITM?有關(STM32 調試利器之 ITM),和?PB3?有關,然后魚鷹好像突然就開悟了。

對,就是它搞得鬼,等我把這個勾選去掉之后,一切回到了本來的樣子,引腳窗口沒問題,直接修改控制也沒問題,一切都正常了,世界終于清靜了。

還好,魚鷹沒見到鬼,只是有人搗亂而已。

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄