看板 Electronics 關於我們 聯絡資訊
我解釋一下這個狀況 I/O 腳無法操作 high-side switch 的理由。 我們先用 IRF9530 這顆 P-channel MOSFet 來舉例,但 PNP BJT 的問題是一樣的。 看看這張圖 http://i.imgur.com/SzkcRgD.png IRF9530 的 V(GS) threshold 是 -2V ~ -4V,這代表什麼條件會開關呢? 是 Gate 電位 >10V 時截止,電位 <8V 時通路 而 Arduino (ATmega328) 的輸出電壓不管 high 還是 low 都絕不會超過 5V 所以不管輸出 high 還是 low,永遠無法讓這顆 MOSFet 斷路。 這是選擇使用 high-side switch 時一個最主要的考量點。 那如果非要用 high-side switch 不可該怎麼辦呢? 你得再加一級放大器或者說反相器,將 I/O 訊號電壓提升到 12V http://i.imgur.com/tqUIinA.png 像這樣,當 I/O 輸出 low 時,Q2 截止,Q1 的 Gate 就被 R1 提升到 12V, Q1 也一起截止之後馬達自然就關閉不動了。 對付馬達當然不需要這樣大費周章用兩級放大電路去切, 直接用 low-side switch 省事多了。 但有些情況你非用 high-side switch 不可。 可能是就算 load 電路不啟動,還是必須隨時和 MCU 共地,因為它不是馬達而是 一顆周邊 IC,有 signal 直接和 MCU 相連,只要把 GND 切斷立刻會讓 I/O 燒掉。 -- 桃樂絲: 可是, 如果你沒有頭腦, 為什麼會說話? 稻草人: ㄝ, 我也不知... 但是有些人沒有頭腦也能說超~多話呢。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.82.103 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1462377498.A.C14.html
jyhlih: 推解說 05/05 00:19
我去查了一些 motor driver IC 的 datasheet,在 H 橋前面也都會有多加一級 pre-drive,猜測作用就是提升電壓,有些則是畫四個 BJT 做 pre-drive
dmx6: 推...我完全沒想到會有關不起來這件事。感謝你的耐心解答 05/05 08:44
也感謝你的實驗結果,老實說我完全沒想過把 PNP 直接放在 high side 還會發生 12V-0.6V 的 base current 直接從 base 極灌入 I/O 腳的問題... 讓我們為壯烈成仁的 Arduino nano 板默哀五秒鐘... 1... 2... 3... 4... 5... 大電流驅動時 MOSFet 當 switch 的效率要比 BJT 好,也就是說比較不會發熱。 不過今天起它多了另一項優點,不會發生高電壓 base current 燒壞 MCU 的事... ※ 編輯: Schottky (114.45.82.103), 05/05/2016 10:42:25
tonybin: 選料的問題呀.參數對的PNP PMOS都可以避掉這個問題才是 05/05 11:20
喔?原來使用 PNP 也可以靠選料避開這個 12V 和 5V 之間供電壓差的問題? 目前的兩個議題: 1. 開關動作不正確 2. 燒壞 MCU 的 I/O 腳 請問以第一張圖的狀況,要選擇什麼樣參數的 PNP 可以解決呢? ※ 編輯: Schottky (114.45.82.103), 05/05/2016 11:30:22
cpyi: 推解說 05/05 12:37
cpyi: 不過只要有bjt pre driver我就先退三步 用bjt拉邏輯 拉到底 05/05 12:40
cpyi: 會有base storage 延遲 超麻煩 05/05 12:40
tonybin: 看看有沒有ib夠小就能導通的PNP? 05/05 17:22
Schottky: 問題不是 PNP 不導通啊,而是它不但會導通而且只會飽和 05/05 17:27
dmx6: 不過我看了一下TIP32C 好像5V就可以WORK了說~ 05/05 22:34
dmx6: http://i.imgur.com/Q3jY6S2.jpg 05/05 22:34
kameng: 那意思是vbe不可以超過5v(reverse bias) 05/05 22:38
dmx6: 原來是這樣阿!!完全誤會~ 05/05 22:41
jyhlih: 補一張PMOS的模擬圖 http://i.imgur.com/yLjC2dW.jpg 05/06 23:24
jyhlih: 與上主題BJT不同的是,P3沒有回流的電流,但P4漏電流較高 05/06 23:26
qscgy4: 拜託可以不要出來誤導別人嗎? DS根本畫錯方向了阿 05/06 23:26
qscgy4: 我等一下發一篇解釋給大家看,這很基本阿 05/06 23:26
qscgy4: 拜託不要出來搞笑 05/06 23:26
Schottky: http://i.imgur.com/C0gd0DN.png 你是說你也畫反了嗎? 05/06 23:43
qscgy4: 拜託真的不要來搞笑 05/06 23:44
Schottky: IRF9540N 裝反的話,電就直接從 body diode 導通了喔! 05/06 23:45
qscgy4: 這邊我剛剛引用 維基的圖沒注意方向,但是你根本畫錯 05/06 23:45
qscgy4: http://i.imgur.com/qJtEKFx.jpg 05/06 23:48
qscgy4: 去看一下我的說明吧 05/06 23:48
qscgy4: 我先對我發言保留態度,我做一個比較嚴謹探討在說明 05/06 23:56
Schottky: 沒關係,大家一起參詳研究 :) 05/06 23:58
jyhlih: Q大接法的模擬圖 http://imgur.com/7JyAeXb 05/07 00:01
jyhlih: Q大接法的模擬圖 http://i.imgur.com/7JyAeXb.jpg 05/07 00:03
qscgy4: S大對不起,方向我搞錯了。 05/07 00:09
qscgy4: 另外如果要使用5V I/O 要加一個 PC817 就好了 05/07 00:10
Schottky: qscgy4> 也感謝你讓我發現body diode是很方便的判斷法XD 05/07 00:22
Schottky: PC817 這種光耦合我沒用過,好像驅動馬達用這個比較好 05/07 00:25
Schottky: 因為可以隔離,不讓突波影響 MCU 那一側。 05/07 00:26
Schottky: 我沒用過光耦合,來研究一下 datasheet ... 05/07 00:26
jyhlih: 忙著模擬,那篇沒看到XD..PC817是很常用的隔離電路元件 05/07 00:28
dmx6: 我也沒看到阿!!!可以在分享一次嗎~~ 05/07 10:51
HiJimmy: 就把光耦當npn,放電阻限流,這樣就能用,不過還是得注意 05/07 20:36
HiJimmy: 電流可能會爆表。 05/07 20:36
HiJimmy: 順便說一下,Vss慣例上,是地,不會有電壓 05/07 20:44
jyhlih: Sorry寫錯了,上方應為Vcc,左方改為I/O。Vss應表共地 05/07 23:03
jyhlih: 早上睡起來有發現到,但懶的改....:p 05/07 23:05
jyhlih: 補一張IO是0V的情況 http://i.imgur.com/gUTYXoY.jpg 05/07 23:17
jyhlih: 另一張BJT的放在上一篇 05/07 23:17