2012年11月26日 星期一

十種錯誤操作而毀壞Arduino的方式



簡介 
這篇不是要談對晶片板暴力相向的行為。我們要以電子邏輯來解釋,告訴你如何避免 Arduino 的毀壞。當元件發出奇怪的氣味,或是出現"程式無法同步" 的可怕錯誤訊息..... — 總之,集合十大痛苦經驗於一篇。如果您擁有一片 Arduino,最好要知道甚麼該做,甚麼不該做!




最容易疏忽而出錯的部分在連接下排 [ Power Pins ] 時....
由左到右依序是:RESET  |  3.3V  |  5V  |  GND  |  GND  |  VIN其中,GND(有兩組)代表接地RESET重新設定
3.3V5VVIN 代表電源輸出
假如左下角 Power Jack 插入外部電源 9V
吃 3.3V 的裝置,要接在 3.3V 針腳
吃 5V 的裝置,要接在 5V 針腳
吃外部電源的裝置,要接在 VIN 針腳(這個CASE裡=9V)




Method #1: 將任一個 I/O Pins 與 GND 連接形成短路
Method #1: Shorting I/O Pins to Ground

HOW 
確認一個 I/O pin是設為output/high的狀態。把這個pin與ground連結。這樣就產生了一個過載的回路狀態,這個 I/O pin 立即就會損毀。 

WHY 
下圖是電流的流向 (Arduino Uno):
The micro-controller datasheet specifies an absolute maximum per-pin
Current of 40mA. With a typical internal resistance of only 25 ohms per 
pin, a dead short to ground can allow as much as 200mA of current to 
flow, more than enough to destroy the micro-controller pin

微控制器資料表指出,每個針腳的最大絕對電流值為 40mA 。每個針腳典型內部的電阻只有 25 歐姆,一個接到地面的短路可以允許多達 200mA 的電流流動,這些電流遠遠超過並足以銷毀微控制器的針腳。






Method #2: 將 I/O Pins 相互連接 
Method #2: Shorting I/O Pins to Each Other

HOW 
確認兩個 I/O pin都是設為output/high的狀態。把這兩個pin連結在一起。這樣就產生了一個過載的回路狀態,這個 I/O pin 立即就會損毀。 
a short to ground can allow as much as 200 mA of current to flow, more
than enough to destroy the microcontroller pin
 ( maximum per-pin current of 40mA ). 
WHY 
電流流動的情形和狀況一相同,這些電流足以銷毀微控制器,差別在於上面案例裡流經接地的電流,這次是通過微控制器內部。





Method #3: 將過大的電壓導引到 I/O Pins 上
Method #3: Apply Overvoltage to I/O Pins

HOW 
將超過5.5V的電壓連接導引到任何一個 I/O Pin 上,都足以銷毀這個針腳。 
WHY 
外部電流的瞬間增加,順向偏差(forward-biases)導向微控制器內的ESD防護二極體。下圖是 Atmel ATmega328P 所提供的官方資料,顯示微控制器內部每個針腳的模型。
Once the voltage at the I/O pin is greater than the supply voltage (5V)
by about 0.5V, the top diode starts to conduct current. This is OK  for 
diverting a short-duration over voltage event, like ESD  (electro-static 
discharge), but that diode is not meant to be on all the  time. It will 
simply burn out and stop protecting the pin.

一旦在 I/O Pin 的電壓大於供電電壓 (+ 5V)超過 0.5V 時,頂部的二極體開始指揮電流。對於短期過電壓事件(如 ESD靜電放電)是合宜的策略,但這種二極體不是在任何的時候都被需要。它的存在很簡單,燒毀並停止電流經過,以保護 pin。 

下面的簡圖顯示,當一個 I/O Pin 過載時,電流如何流動。
If the internal protection diode fails open, then the over voltage destroys
the  I/O pin. If the protection diode fails by shorting out, it's even worse
because now the over voltage is applied to the entire +5V supply
on the  Arduino. This means it will reach other components, like the
USB interface  chip, and destroy them too.

假如內部防護護二極體失去作用而沒有開啟,當電壓過載時會銷毀這個 I/O Pin。假如防護二極體因短路而無法作用,甚至有可能造成過載的電壓將全部的 +5V 導入Arduino晶片內。這意味著它們將進一步毀壞其他的電路板上的原件,例如 USB 介面的處理晶片等。




Method #4: 外部電流反接
Method #4 Apply External Vin Power Backwards 

HOW
將外部電源的極性反接,這樣會銷毀Arduino上頭的數個裝置。
WHY 
由於外部電源連接器針腳沒有具備反向電壓保護。電流會反向依序從 GND 針腳流向 ATmega328P 然後經過 5V pin,由 5V 穩壓器最後到達Vin。同樣的事情會發生與 ATmega8U2 微控制器。微控制器和 5V 穩壓器將會因這個舉動而銷毀。
CLICK FOR LARGER IMAGE : 
http://ruggedcircuits.com/assets/images/method10t.gif 




Method #5電源由 5V 針腳導入,且外部電源電壓大於 5V
Method #5: Apply 5V to the 5V Connector Pin

HOW
將 6V 或更高的電壓直接導入 5V 的連接器針腳。Arduino 上的許多元件都將因此而損毀;此外,這股電壓還可能竄入您電腦的 USB 埠,從而損壞它。
WHY
與 5V 連接器針腳相連處沒有任何的保護措施。電流是直接連接到 ATmega328P 微控制器、 ATmega8U2 USB 介面晶機和 5V 穩壓器,所有當電壓超過 6V 時,產生的電流流動都可以讓這些原件遭受損壞。下面是電流通過 ATmega328P 微控制器的路徑。
It is a common misconception that the Arduino 5V regulator will ensure 
that the 5V voltage remains at 5V, no matter what. IT WILL NOT! 

The only thing the 5V regulator can do is control current coming from the
USB port or the external DC power jack. If the current is coming from an 
external power source directly connected to the 5V connector pin, the 
regulator can do nothing about it.

這是一個常見的錯誤認知:Arduino 5V 穩壓器會確保 5V 電壓維持在 5V,不論如何。事實並不是這樣!5V 穩壓器能做的唯一一件事是控制從 USB 埠或是外部 DC 電源提供的電量。假如外部電源直接連接 5V 針腳,5V 穩壓器將不會發揮任何的作用。
另一個應用超過 5V 電壓連接 5V 針腳的後果,PC 的 USB 埠可能損壞。如果 Arduino 的電源來自 USB ,而此電壓過高會導致當前的電流通過電壓開關 MOSFET T1 ,並向後回流到 PC 的 USB 埠。







Method #6: 電源由 3.3V 針腳導入,且外部電源電壓大於 3.3V
Method #6: Apply 3.3V to the 3.3V Connector Pin

The 3.3V connector pin has no protection circuitry. This voltage is directly connected to the Arduino 3.3V regulator and any other shields or devices that are powered by this connector pin. If the voltage exceeds 9V, the 3.3V regulator will be destroyed and may allow current to flow backwards to the 5V node, and then backwards further to the PC's USB port. The excessive voltage will also destroy the two devices connected to the 5V node: the ATmega328P and ATmega8U2 microcontrollers.

HOW
將 3.6V 或更高的電壓直接導入 3.3V 的連接器針腳。任何 3.3V 套件上的裝置,或其他透過此 pin 供電的裝置都將損毀。使用 9V 以上的電壓,將直接摧毀 Arduino 3.3V 穩壓器,電流還會反向竄入電腦的 USB 埠。
WHY
與 3.3V 連接器針腳相連處沒有任何的保護措施。電流是直接連接到 Arduino 3.3 v 穩壓器、任何 3.3V 套件上的裝置,以及其他透過此 pin 供電的裝置。如果電壓超過 9V,3.3V 穩壓器將會燒毀,並可能導致當前的電流倒流回到 5V 節點,然後進一步到 PC 的 USB 埠。電壓過高還會毀掉兩個連接到 5V 節點的設備: ATmega328P 和 ATmega8U2 微控制器。

If the Arduino is powered from USB then this excessive voltage can cause
current to flow backwards through the voltage-switching MOSFET T1
and back to the PC's USB port.




Method #7: 連接 Vin 與 GND
Method #7: Short Vin to GND
HOW
電源直流電源從 Arduino Vin 針腳 到 GND(接地端)阻流二極體將被銷毀,Arduino PCB 上的電路可能融化,毀壞。
WHY
與 Vin(外部電源)連接器針腳相連處沒有任何的保護措施。由外部電源提供電流通過 Vin 與 GND 之間的短路,將有效率且輕易的超過阻流二極體的極限。
The amount of current that flows is limited only by the resistance of the
Arduino PCB traces and the current capability of the power supply. If this
is high enough, the diode D1 will be destroyed and PCB traces may melt
due to the heat caused by this large current.

電流容量的上限是取決於 Arduino 電路板上的電阻與電源輸入的強度。如果電流過高,不僅損壞 D1 二極體,連同 PCB 上的電路也可能因為這個大電流的熱量而熔化。






Method #8: 電源由 5V 針腳連接外部電源供應,Vin 有迴路連接
Method #8: Apply 5V External Power with Vin Load
HOW
如果你以 5V 外部電源直接連接 5V 連接器,同時 Vin 針腳有連結一個迴路 (也就是 Vin 與 GND 之間有一條短路),電流將倒流通過 5V 穩壓器並銷毀它。



WHY
沒有反向電壓保護,因此當前的 5V 穩壓器倒流到 5V 針腳,便會通過調節器,並對所有從 Vin 所供電的裝置造成傷害。
There is no reverse voltage protection on the 5V regulator thus current can
flow from the 5V connector pin, backwards through the regulator, and to
whatever is connected to Vin.





Method #9: 提供超過 13V 到 Reset Pin 上
Method #9: Apply >13V to the Reset Pin
HOW
對 RESET 針腳輸入 > 13V電壓。ATmega328P 微控制器將會損壞。
WHY
RESET 針腳直接連接到 ATmega328P 上的RESET pin。雖然此 pin 可容忍 13V電壓,若輸入更高的電壓將會損壞晶片。
The Reset connector pin is directly connected to the reset pin on the
ATmega328P. While this pin tolerates 13V, higher voltages will damage
 the device.






Method #10: 超過微控制器所能負載之電流量
Method #10: Exceed Total Microcontroller Current
HOW
查看你的配置,如果至少有10組 I/O 針腳或更多在運作,並從每個消耗 20mA (例如 10盞 LED 的照明)。這樣就已超過了微控制器所能承仔的總供給額定電流,它將會損壞。
WHY
根據 ATmega328P 官方資料表,不足以提供每個 I/O 針腳所需的電流—來自所有 I/O 針腳的總電流不能超過 200mA。


the total current sourced from all I/O pins must not exceed 200mA,
according to the ATmega328P datasheet.


Popular Posts