MOS管實現的STC自動下載電路

2022-05-29 18:03:47

目錄

三極體配合 PMOS 管控制電路開關

STC MCU在燒錄時, 需要斷電重置後才能進入燒錄狀態, 通常是用手按開關比較繁瑣. 如果利用STC-ISP在燒錄開始時會拉低RTS的特性, 可以實現燒錄開始時自動斷電覆位.

電路模擬測試

下面的電路適用於燒錄下載STC MCU. 使用LTspice模擬. V2 為方波, 電壓[0, 3.3V], 寬度1.5s

以下為模擬輸出, 綠色為三極體基極電壓, 紅色為MOS管柵極(Gate)電壓, 藍色為負載(R1)兩端電壓.

對電路中元件的說明:

  • V2: 用於模擬開關的通斷, MCU的高低電平
  • C1: 這個電容用於短時拉低三極體基極電壓, 關閉三極體. C1值取值在1uF - 4.7uF之間, 值越小輸出的截止時間越短, 值越大截止時間越長
  • C2: 是為了壓制方波上行時造成的高電平毛刺, 不能太大, 取值 0.5uF - 1uF 即可
  • R4: 延長C1的充放電時間, 不能太小, 太小的話方波上升沿對C1疊加的電壓太高會造成輸出截止, 也不能太大, 太大的話輸出截止時間太短, 最後可能就完全沒有截止動作, 取值在 3K - 8K 之間
  • R3: 為了給三極體基極提供電壓使其導通
  • R2和R6: 用於三極體限流和分壓, 如果V1和V2沒有壓差, R6可以不要. 但是當V2小於V1時, 需要用R6將三極體的基極電壓往上擡一點, 否則V2的下降沿會產生比較高的負電壓.
  • R1: 模擬負載

電路的工作原理:

  • 穩定工作時, 因為C1等價於斷路, 所以三極體的基極電壓為正, 三極體導通, 電流在R2和R6之間產生的分壓, 使得PMOS管柵極電壓差不多是1/2的V1, 因為柵極(Gate)電壓低於源極(Source), PMOS管導通
  • 當V2跳變為0V(可以等價為短路, 合上開關等), 電壓突變時, C1視為通路, 立刻拉低三極體基極電壓, 此時三極體斷開, PMOS管柵極電壓拉高到VCC, 因為與源極電壓相等, PMOS管關閉
  • C1通過R3和R4充電後, 進入新的穩態, 等價於斷路, 三極體的基極電壓恢復為正, 三極體重新導通, R2和R6的分壓再次拉低PMOS管柵極電壓, PMOS管再次導通
  • 當V2再次跳變回3.3V, 電壓突變時, C1視為通路, 正電壓疊加到C1上在三極體基極產生高於V2的電壓(模擬中如果R3, R4較小, 可能會高出V1, 高出V1會導致PMOS管截止, 這種情況要避免), 只要三極體基極電壓不高於V1, PMOS會繼續保持導通

電路中V2可以換成一個微動開關, 或者用RTS控制, 實現在通訊前拉低RTS重啟MCU.

電路原型測試

使用麵包板對上面的電路進行測試

  • MOS管使用SI2301, SOT23封裝, 用一個SOT89的轉接板湊合應付
  • 三極體使用SS8050
  • 因為沒有2.2uF的電容, 暫時用一個4.7uF的電容代替
  • 負載用兩顆LED方便演示
  • 用杜邦線手工切換高低電平

測試的情況:

  • 因為2.2uF換成了4.75uF導致反向的電動勢增大, 所以在輸入端高低電平為[0, 3.3V]時工作正常, 但是在[0, 5V], 從低電平跳到高電平時LED有一個明顯的閃爍, 反向的毛刺太高導致了MOS管出現通斷變化. 將R2減小為5K, 拉低柵極電壓基準, 這樣在[0, 3.3V]和[0, 5V]都工作正常了.
  • 同樣電路, 僅替換SS8050為S9013, 執行結果一樣.

測試視訊: https://www.bilibili.com/video/BV19Y411F7CX

最終電路和實物

電路圖

為相容無RTS環境的燒錄, 增加了一個開關

支援RTS的環境

接線 V->V, G->G, T->T, R->R, RTS->RTS, 由軟體觸發RTS拉低斷電

不支援RTS的環境

接線 V->V, G->G, T->T, R->R, RTS短接(圖中的2和3), 按下輕觸開關可以觸發RTS拉低斷電

實物

背面

SS8050和SI2301都是SOT23封裝, 非常小, 直接貼在背面. 有兩個電阻因為要穿過其它元件, 為節省位置也放在背面. 在測試正常後, 這一面就用熱熔膠封上了.



正面

燈是從鍵盤上換下來的, 不是常用色. 分別對VCC和GND增加了4個排針, 方便平時使用.



連線

視訊演示

視訊中使用STC-ISP執行了三次Check, 可以看到有三次斷電的過程
https://www.bilibili.com/video/BV1nr4y1x7Uq

最後

對於幾十到幾百毫秒的斷電, 用三極體配合MOS管比較簡單, 如果需要一秒以上的斷電, 可以考慮將前面部分換成NE555.