作者Schottky (順風相送)
看板Electronics
標題Re: [問題] 想請問一下12V arduino 跟馬達共用
時間Wed May 4 23:58:11 2016
我解釋一下這個狀況 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://webptt.com/m.aspx?n=bbs/Electronics/M.1462377498.A.C14.html
1F:推 jyhlih: 推解說 05/05 00:19
我去查了一些 motor driver IC 的 datasheet,在 H 橋前面也都會有多加一級
pre-drive,猜測作用就是提升電壓,有些則是畫四個 BJT 做 pre-drive
2F:推 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
3F:→ 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
4F:推 cpyi: 推解說 05/05 12:37
5F:→ cpyi: 不過只要有bjt pre driver我就先退三步 用bjt拉邏輯 拉到底 05/05 12:40
6F:→ cpyi: 會有base storage 延遲 超麻煩 05/05 12:40
7F:→ tonybin: 看看有沒有ib夠小就能導通的PNP? 05/05 17:22
8F:→ Schottky: 問題不是 PNP 不導通啊,而是它不但會導通而且只會飽和 05/05 17:27
9F:推 dmx6: 不過我看了一下TIP32C 好像5V就可以WORK了說~ 05/05 22:34
11F:推 kameng: 那意思是vbe不可以超過5v(reverse bias) 05/05 22:38
12F:→ dmx6: 原來是這樣阿!!完全誤會~ 05/05 22:41
14F:→ jyhlih: 與上主題BJT不同的是,P3沒有回流的電流,但P4漏電流較高 05/06 23:26
15F:推 qscgy4: 拜託可以不要出來誤導別人嗎? DS根本畫錯方向了阿 05/06 23:26
16F:→ qscgy4: 我等一下發一篇解釋給大家看,這很基本阿 05/06 23:26
17F:→ qscgy4: 拜託不要出來搞笑 05/06 23:26
19F:→ qscgy4: 拜託真的不要來搞笑 05/06 23:44
20F:→ Schottky: IRF9540N 裝反的話,電就直接從 body diode 導通了喔! 05/06 23:45
21F:→ qscgy4: 這邊我剛剛引用 維基的圖沒注意方向,但是你根本畫錯 05/06 23:45
23F:→ qscgy4: 去看一下我的說明吧 05/06 23:48
24F:→ qscgy4: 我先對我發言保留態度,我做一個比較嚴謹探討在說明 05/06 23:56
25F:→ Schottky: 沒關係,大家一起參詳研究 :) 05/06 23:58
28F:推 qscgy4: S大對不起,方向我搞錯了。 05/07 00:09
29F:→ qscgy4: 另外如果要使用5V I/O 要加一個 PC817 就好了 05/07 00:10
30F:→ Schottky: qscgy4> 也感謝你讓我發現body diode是很方便的判斷法XD 05/07 00:22
31F:→ Schottky: PC817 這種光耦合我沒用過,好像驅動馬達用這個比較好 05/07 00:25
32F:→ Schottky: 因為可以隔離,不讓突波影響 MCU 那一側。 05/07 00:26
33F:→ Schottky: 我沒用過光耦合,來研究一下 datasheet ... 05/07 00:26
34F:推 jyhlih: 忙著模擬,那篇沒看到XD..PC817是很常用的隔離電路元件 05/07 00:28
35F:推 dmx6: 我也沒看到阿!!!可以在分享一次嗎~~ 05/07 10:51
36F:推 HiJimmy: 就把光耦當npn,放電阻限流,這樣就能用,不過還是得注意 05/07 20:36
37F:→ HiJimmy: 電流可能會爆表。 05/07 20:36
38F:推 HiJimmy: 順便說一下,Vss慣例上,是地,不會有電壓 05/07 20:44
39F:→ jyhlih: Sorry寫錯了,上方應為Vcc,左方改為I/O。Vss應表共地 05/07 23:03
40F:→ jyhlih: 早上睡起來有發現到,但懶的改....:p 05/07 23:05
42F:→ jyhlih: 另一張BJT的放在上一篇 05/07 23:17