簡 介: 摘要: 本文通過CIU32F003單片機設計電源延遲模塊,旨在解決占用SWD引腳導致的程序下載問題。實驗利用SWD的Reset信號延遲單片機上電,使其保持調試狀態。電路包含OLED顯示、MOS管電源控制等模塊,經PCB制作和焊接調試,發現MOS管設計錯誤需修改。測試顯示100ms延遲可正常下載,但后續實驗發現SWD信號可能提前供電導致下載失敗,推測需隔離SWD供電端口。該方案尚未完全解決問題,需進一步優化設計。
關鍵詞:CIU32F003,延遲上電
**AD\Test\2025\November\PowerDelayCntCIU32F003.PcbDoc ***
??之前實驗中,發現對于CIU32F003單片機,如果占用了他的 SWD管腳,就會造成單片機無法繼續通過SWD繼續下載程序。下面,測試一下,是否可以通過電源延遲模塊,來克服這個問題。也就是在下載過程中,利用SWD中的Reset信號,延遲單片機上電,這樣就可以使得單片機避免進入運行狀態,使得上電之后的單片機 SWD端口還是處在調試狀態。

??電源延遲模塊控制電路是由CIU32單片機為核心。通過它的IO端口產生中斷,利用單片機中的定時電路精確控制電源上電延遲時間。使用一個 OLED 顯示延時時間。利用兩個互補MOS管提供5V電源通斷控制。SWD調試接口之間,只有電源被控制。其他調試引線都直接聯通。

??下面,設計單面PCB,這樣便于一分鐘制版,得到測試電路板。電路板制作的非常完美。接下來焊接測試。
??指導焊接完畢上電測試的時候,才發現之前設計的MOS管上橋臂反了。這樣,整個半橋就變成了直通。修改原理圖,重新布板,制作之后重新焊接測試。在軟件上,移植了前兩天的實驗結果。包括對IO口中斷響應,Time1 中斷,完成精確實驗延遲。最終,通過延遲控制DAP Link 中的電源,使得下位機能夠 延遲上電。

??設置延遲時間為100ms,可以看到在 SWD Reset 信號恢復高電平之后,經過100ms 單片機才上電。上電之后,緊接著SWD的數據信號就產生了。比電源延遲大約為 3ms。經過測試,雖然下位機延遲上電,依然能夠正確進行程序下載。

??現在到了最后的比較危險的實驗,就是在啟動50ms之后,設置兩個SWD的管腳分別為輸出和輸入功能。程序經過編譯之后,可以正常下載到單片機。接下來,再重新進行下載的時候,發現無法完成程序下載了。經過觀察,單片機上電的確延遲了。但是,似乎在上電之前,觀察到的 SWD信號電平已經有所上升,是不是這個SWD信號直接可以給單片機供電,使得單片機已經能夠上電工作了??如果是這樣,還需要將這兩個管腳進行切換,防止它們對單片機供電。


本文測試了利用電源延遲模塊,來恢復占用SWD端口的 CIU32單片機的下載功能。但是實驗結果還是不理想,猜測是沒有斷開 SWD端口,單片機已經在SWD端口供電下開始工作了。明天再設計一個端口隔離模塊,用于隔離SWD對單片機供電。

使用CIU32F003產生一個脈沖延遲: https://zhuoqing.blog.csdn.net/article/details/154333907?spm=1011.2415.3001.5331