作者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/cn.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