Arduino よもやま話-11 (Arduinoを破壊する10の回路の記事を振り返るー前編)
2020年03月16日23:45
Arduino よもやま話
最近忙しくて工作をする時間が取れません。そんなことで工作をやらなくても書けるネタということで、久しぶりに Arduino よもやま話を書いてみます。
IDEAHACK というサイトに、たぶん2012年頃に書かれたと思われる、これだけはやるな!Arduino Uno を破壊する10の回路という記事があります。

これ、私が Arduino をいじり始めた頃に読んだことがあって、なるほど良くまとまっている記事だなー、こりゃ注意が必要だわと思って、感心しました。
その後かなり Arduino を使ってきた訳ですが、その経験から今では、「そんなに脅かさなくても良かったんじゃ無いの?」という気持ちになっています。
そんなことで、「これだけはやるな!」の記事に書かれている内容を、私なりの視点で再検討してみます。
まあ、記事の内容にいちゃもん付けているような内容が多くなると思いますが、もちろん私の意見が絶対に正しいと言うつもりはありません。でも読んでいただくと、Arduino UNO の回路についての理解が深まることは間違いないです。
なお、元記事から引用した箇所がたくさんあるので、本来なら作者の方にお断りを入れるのがマナーです。ただ、元記事のライターの名前が書かれておらず、サイト自体もメンテされていない感じなので、そういう連絡が出来ていない状態です。まあ何年も前の古い記事についてあれこれ連絡するのもアレなんで、しょうがないかなと思います。(FaceBookからならコンタクト可能なのかも知れませんが、私はアカウントを持っていないです)
それでは記事の内容を順に見ていきます。やってはいけないこと、つまり壊れることが順に書かれています。
◆ No.1 I/OピンをGNDに接続する

「I/OピンをoutputのHIGHに設定する。そして、I/OピンとGNDを接続する。I/Oピン上で過電流状態となり、破壊される。」と書かれています。
でもこれをやっても、ポート出力にはゆるやかな電流制限がかかっているので壊れることはありません。これはArduino よもやま話-10 (出力ポートの電流供給能力)の記事で測定結果を示しています。
なお、出力をLOWにした状態で電源に接続しても大丈夫、壊れません。
◆ No.2 I/Oピンを、お互いに接続する

No.1 をやっても壊れないのでこっちはもっと大丈夫です。
具体的には、例えば以下のような状態です。

◆ No.3 I/Oピンに過電圧を加える

「いずれかのI/Oピンへ、5.5V以上の電圧を加える。」と書かれていますが、これはその通りでやってはいけません。
ただ、ポートには保護ダイオードが付いていて、電源電圧にクランプされています。したがって、ポートを壊すためにはこのダイオードを壊す必要がありますが、そのためにはかなりの電流、たぶん100mA以上は流さないと壊れないと思います。
◆ No.4 Vinピンに電源を逆流させてつなげる

変な日本語ですが、Vinピンから電源を供給する時に、極性を逆に接続したら壊れますと言ってます。
当然こんなことはやってはいけません。ただこうした場合、チップ内の大量のダイオード(寄生ダイオードも含む)が順バイアスされることになって、これらに対抗するにはかなり容量の大きな電源を使わないと電圧が上がらないはずです。つまり、デバイスを壊すことは難しい気がします。まあ、どこか弱い所が壊れれば、それでおしまいになるので、案外簡単に壊れるのかも知れません。
◆ No.5 5V以上の電圧を5Vピンに流す

「6V(あるいはそれ以上)の電圧を5Vピンに接続する。」と書かれていますが、これは書かれている通りでやってはダメです。
なお、「5V以上の電圧を5Vピンに流す」と書かれていますが、ここは「5V以上の電圧を5Vピンに加える」が正しい用語の使い方です。
◆ No.6 3.3V以上の電圧を3.3Vピンに流す

前の項目と同じく日本語がちょっと変ですが、まあその通りです。ともかく半導体に過電圧は禁物です。
◆ No.7 VinとGNDを接続する

「DC電源ジャックからArduinoへ電源を供給した上で、VinピンとGNDピンを接続する」と壊れると書かれていますが、その通りでこれをやると壊れます。
これは電源をショートさせることになるのでどこか一番弱い部品が壊れます。このパスで一番弱いのは逆流防止ダイオードなので、ここが壊れます。但しArduino UNOではこのダイオードは1000V/1Aの定格の物が使われているので、ヤワな電源だと電流制限の方が先にかかって、ダイオードは壊れないと思います。1000V1Aのダイオードは1N4007が有名ですが、これめちゃくちゃ丈夫です。
ちなみにArduino NANO のここのダイオードには容量が小さい物(確か200mA程度)が使われているので、簡単に壊れます。VinとGNDのピンは隣にあるので、ブレッドボードのジャンパーを挿すときに間違え易いです。(実は私、やらかしましたw)
回路図だとこういう状態になります。

ところで、この項の説明に、以下のようなことが書かれています。

ここに書かれているPCB(ポリ塩化ビフェニル)は明らかな間違い(誤訳?)で、正しくはプリンテッド サーキット ボード です。プリント基板をPCBと呼んでいた時代がありましたが、食品へのPCB混入で大規模な健康被害が出たため、この単語のイメージがものすごく悪くなりました。そこで日本の会社ではPWB(Printed Wiring Board) と呼ぶようになっています。確かJPCAからもそういう指導が出たと思います。
◆中間まとめ
こんな感じで書かれていて、方法10まであるのですが、長くなったので残りの三つは次の記事に廻すことにします。そっちはもう少し面白い話が出てくるはずです。
ここまでの話は電源の過電圧や逆接の話が多く出てきました。半導体の耐圧はぎりぎりで作り込まれていて余裕はほとんどありません。そんなことで、耐圧の規格は厳守しないといけません。ちなみにもし耐圧に大きな余裕があるチップが出来たとしたら、そのマージンを動作速度の向上やダイサイズの縮小に使えた訳で、デバイス設計としては失敗と言う評価になるはずです。
過電圧を掛けると壊れるという話がいっぱい出てきます。本文中にも書きましたが、そのためには電源側にはある程度のパワーが必要です。電源に鉛のバッテリーを使ったら一発で壊れるのでしょうが、携帯機器用のスイッチング方式のACアダプタなどを使った場合は、過電流保護回路が付いているので比較的安全です。
IDEAHACK というサイトに、たぶん2012年頃に書かれたと思われる、これだけはやるな!Arduino Uno を破壊する10の回路という記事があります。

これ、私が Arduino をいじり始めた頃に読んだことがあって、なるほど良くまとまっている記事だなー、こりゃ注意が必要だわと思って、感心しました。
その後かなり Arduino を使ってきた訳ですが、その経験から今では、「そんなに脅かさなくても良かったんじゃ無いの?」という気持ちになっています。
そんなことで、「これだけはやるな!」の記事に書かれている内容を、私なりの視点で再検討してみます。
まあ、記事の内容にいちゃもん付けているような内容が多くなると思いますが、もちろん私の意見が絶対に正しいと言うつもりはありません。でも読んでいただくと、Arduino UNO の回路についての理解が深まることは間違いないです。
なお、元記事から引用した箇所がたくさんあるので、本来なら作者の方にお断りを入れるのがマナーです。ただ、元記事のライターの名前が書かれておらず、サイト自体もメンテされていない感じなので、そういう連絡が出来ていない状態です。まあ何年も前の古い記事についてあれこれ連絡するのもアレなんで、しょうがないかなと思います。(FaceBookからならコンタクト可能なのかも知れませんが、私はアカウントを持っていないです)
それでは記事の内容を順に見ていきます。やってはいけないこと、つまり壊れることが順に書かれています。
◆ No.1 I/OピンをGNDに接続する

「I/OピンをoutputのHIGHに設定する。そして、I/OピンとGNDを接続する。I/Oピン上で過電流状態となり、破壊される。」と書かれています。
でもこれをやっても、ポート出力にはゆるやかな電流制限がかかっているので壊れることはありません。これはArduino よもやま話-10 (出力ポートの電流供給能力)の記事で測定結果を示しています。
なお、出力をLOWにした状態で電源に接続しても大丈夫、壊れません。
◆ No.2 I/Oピンを、お互いに接続する

No.1 をやっても壊れないのでこっちはもっと大丈夫です。
具体的には、例えば以下のような状態です。

◆ No.3 I/Oピンに過電圧を加える

「いずれかのI/Oピンへ、5.5V以上の電圧を加える。」と書かれていますが、これはその通りでやってはいけません。
ただ、ポートには保護ダイオードが付いていて、電源電圧にクランプされています。したがって、ポートを壊すためにはこのダイオードを壊す必要がありますが、そのためにはかなりの電流、たぶん100mA以上は流さないと壊れないと思います。
◆ No.4 Vinピンに電源を逆流させてつなげる

変な日本語ですが、Vinピンから電源を供給する時に、極性を逆に接続したら壊れますと言ってます。
当然こんなことはやってはいけません。ただこうした場合、チップ内の大量のダイオード(寄生ダイオードも含む)が順バイアスされることになって、これらに対抗するにはかなり容量の大きな電源を使わないと電圧が上がらないはずです。つまり、デバイスを壊すことは難しい気がします。まあ、どこか弱い所が壊れれば、それでおしまいになるので、案外簡単に壊れるのかも知れません。
◆ No.5 5V以上の電圧を5Vピンに流す

「6V(あるいはそれ以上)の電圧を5Vピンに接続する。」と書かれていますが、これは書かれている通りでやってはダメです。
なお、「5V以上の電圧を5Vピンに流す」と書かれていますが、ここは「5V以上の電圧を5Vピンに加える」が正しい用語の使い方です。
◆ No.6 3.3V以上の電圧を3.3Vピンに流す

前の項目と同じく日本語がちょっと変ですが、まあその通りです。ともかく半導体に過電圧は禁物です。
◆ No.7 VinとGNDを接続する

「DC電源ジャックからArduinoへ電源を供給した上で、VinピンとGNDピンを接続する」と壊れると書かれていますが、その通りでこれをやると壊れます。
これは電源をショートさせることになるのでどこか一番弱い部品が壊れます。このパスで一番弱いのは逆流防止ダイオードなので、ここが壊れます。但しArduino UNOではこのダイオードは1000V/1Aの定格の物が使われているので、ヤワな電源だと電流制限の方が先にかかって、ダイオードは壊れないと思います。1000V1Aのダイオードは1N4007が有名ですが、これめちゃくちゃ丈夫です。
ちなみにArduino NANO のここのダイオードには容量が小さい物(確か200mA程度)が使われているので、簡単に壊れます。VinとGNDのピンは隣にあるので、ブレッドボードのジャンパーを挿すときに間違え易いです。(実は私、やらかしましたw)
回路図だとこういう状態になります。

ところで、この項の説明に、以下のようなことが書かれています。

ここに書かれているPCB(ポリ塩化ビフェニル)は明らかな間違い(誤訳?)で、正しくはプリンテッド サーキット ボード です。プリント基板をPCBと呼んでいた時代がありましたが、食品へのPCB混入で大規模な健康被害が出たため、この単語のイメージがものすごく悪くなりました。そこで日本の会社ではPWB(Printed Wiring Board) と呼ぶようになっています。確かJPCAからもそういう指導が出たと思います。
◆中間まとめ
こんな感じで書かれていて、方法10まであるのですが、長くなったので残りの三つは次の記事に廻すことにします。そっちはもう少し面白い話が出てくるはずです。
ここまでの話は電源の過電圧や逆接の話が多く出てきました。半導体の耐圧はぎりぎりで作り込まれていて余裕はほとんどありません。そんなことで、耐圧の規格は厳守しないといけません。ちなみにもし耐圧に大きな余裕があるチップが出来たとしたら、そのマージンを動作速度の向上やダイサイズの縮小に使えた訳で、デバイス設計としては失敗と言う評価になるはずです。
過電圧を掛けると壊れるという話がいっぱい出てきます。本文中にも書きましたが、そのためには電源側にはある程度のパワーが必要です。電源に鉛のバッテリーを使ったら一発で壊れるのでしょうが、携帯機器用のスイッチング方式のACアダプタなどを使った場合は、過電流保護回路が付いているので比較的安全です。
- 関連記事
-
- Arduino よもやま話-13 (UNOのCPUを逆挿ししても壊れません)
- Arduino よもやま話-12 (Arduinoを破壊する10の回路の記事を振り返るー後編)
- Arduino よもやま話-11 (Arduinoを破壊する10の回路の記事を振り返るー前編)
- Arduino よもやま話-10 (出力ポートの電流供給能力)
- Arduino よもやま話-9 (UNOの電源切り替え回路)
トラックバックURL
http://radiopench.blog96.fc2.com/tb.php/985-460240a6