google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

Arduino よもやま話-12 (Arduinoを破壊する10の回路の記事を振り返るー後編)

引き続き、「Arduino を破壊する10の回路の記事」の話の後編です。前回の記事でNo.7まで終わっているので、今回はNo.8から始まります。

◆ No.8 5Vの外部電源を接続した上で、Vinピンも接続する
No.8

こう書かれているのですが、これがさっぱり判らないです。

どうも 5V ピンへ外部から 5V の電源を接続してはいけない、と言いたいようです。でも +5V のポイントへは USB からの +5V(VBUS) が内部で接続されている訳で、これをやっちゃいけないと言うと、UNO の回路自体を否定していることになります。(USBからの給電パスには P-MOSFET が入っていて、DCジャックからの供給電圧が 7.2V 程度以上になると、USB からの電圧を 0.6V 下げる機能が付いています)

ともかく、こうやると5Vレギュレーターへ逆電圧が発生し、破壊されると書かれています。上の回路図に書かれているレギュレーターの仕様が良く判らないのですが、最近の UNO ではレギュレーターに NCP1117 が使われていてこんな回路になっています。なお、図に書き忘れましたが、D1 のカソード側が Vin ピンに接続されています。
Arduino UNO の電源回路
5V レギュレーターの NCP1117 のデーターシートを読むと、入出力電圧の逆転対策として内部に保護ダイオードが入っていました。そんなことで、レギュレーターが逆電流で破壊されるという心配はしなくて良くなっています。

残る問題はVinにパラに入っている Load と言う負荷です。UNOの基板の中にそんなものは無いので、外付けされた負荷なんでしょう。でもそうだとすると、判っていてやっていることなので、これだけはやるな!と言うようなものではない気がします。

ともかく、この No.8 項は意味が良く判らないです。

◆ No.9 Resetピンへ13V以上の電圧を流す
No.9
電圧を流す、となっていて変な日本語になっていますが、ともかくこれをやると CPU の ATmega328P を損傷すると書かれています。

突然 13V という電圧が出てきますが、これは高電圧シリアル書き込みを行う時に RESET ピンに加える電圧です。この電圧の上限は絶対最大定格で 13V となっているので、その通りです。

但し、これは、初代の頃の Arduino UNO 話で、その後出た R2 や R3 では回路が変更されているので、こういう心配はしなくて良いようになっています。もう少し説明すると、

元記事に掲載されている回路。
リセット回路に13V

これはたぶん UNO のバージョンが R1 の頃の回路で、リセットピンは 10KΩ の抵抗で +5V へプルアップされているだけです。これだと外部からリセットピンに高い電圧を加えることが可能です。

しかし、R2 以降では次のような回路になっていて、プルアップ抵抗にダイオード(D2) が並列に追加されています。つまり、ここの電位は +5V にクランプされます。
R2以降のリセット回路
回路の動作としては、左の回路からの信号を、C5 で微分してリセットピンに入力するようになっています。

左の回路からの信号が Low から High に変化した瞬間、もしクランプダイオードが無いと、C5 に溜まっていた電荷でリセットピンの電圧が 10V まで押し上げられてしまいます。こうなると、ちょっとノイズが乗っただけで誤動作する恐れがあります。そこで、ダイオードで上限を +5V にクランプするように改良されたのものだと思います。

方法9 ではリセットピンに外部から 13V 以上を加えてはいいけない、と書いてありますが、実際にはダイオードで5Vにクランプされるので、そういう高い電圧にはならない(可能性が高い)はずです。

なおこれは Arduino UNO の場合の話で、Arduino NANO にはこのダイオードは入っていません。UNO なら CPU のチップを引っこ抜いて高電圧プログラミングを行うことが可能です。一方で NANO のように QFP パッケージの CPU では、チップを取り外すことが出来ないのでオンボードのままで高電圧プログラミングを行う必要があります。その際、ダイオードが入っていると高電圧プログラミングモードに入れることが出来なくなってしまう、と言う事情があるのだと思います。

ちなみに、高電圧プログラミングの回路は、ATmega328P用のヒューズリセッターの製作の記事に出てきます。リセットピンに高電圧をかける場合、安全のために数キロΩの抵抗を介して行うのが定石です。

◆ No.10 最大電流以上の電流を流す
No10
説明は「10個以上のI/OピンをHIGHに設定し、(例えばLEDを光らせるために)20mAをそれぞれから流す。I/Oピンから流されるの最大電流は200mAであるため、マイコンにダメージを与える。」となっています。

これはチップの絶対最大定格に書いてある Vcc と GND ピンの最大電流の値のことを言ってます。例として以下の回路図が掲載されています。
No.10、LEDをたくさん
たくさん LED を点灯させると、Vcc/GND ピンの電流リミットを超えるので注意してね、ということです。これは重要な制限ですが、実はもう一つ条件があるので、そちらも頭に入れておかないといけません。

ポートの出力電流にはバンク毎の合計の値の上限にも制限があり、データーシートの 32.2. DC 特性の注釈に以下のように記載されています。ATmega328Pのデーターシート(日本語版)

注3: 各I/Oポートは安定状態(非過渡時)に於いては検査条件(VCC=3Vで10mA,VCC=5Vで20mA)よりも多くのシンク電流を流すこと
ができますが、次の条件を厳守しなければなりません。
① ポートC5~0、ADC7,6のIOLの合計が100mAを超えるべきではありません。
② ポートC6、D4~0のIOLの合計が100mAを超えるべきではありません。
③ ポートB7~0、D7~5のIOLの合計が100mAを超えるべきではありません。
IOLが検査条件を超える場合、VOLも仕様書での値を超えます。表の検査条件よりも大きなシンク電流は保証されません。
注4: 各I/Oポートは安定状態(非過渡時)に於いては検査条件(VCC=3Vで10mA,VCC=5Vで20mA)よりも多くのソース電流を流すこと
ができますが、次の条件を厳守しなければなりません。
① ポートC6~0、D4~0、ADC7のIOHの合計が150mAを超えるべきではありません。
② ポートB7~0、D7~5、ADC6のIOHの合計が150mAを超えるべきではありません。
IOHが検査条件を超える場合、VOHも仕様書での値を超えます。表の検査条件よりも大きなソース電流は保証されません。


なんだかいっぱい書いてありますが、要はポートのグループ毎にソースとシンクに分けて電流の合計に制限があるということです。大きな電流が流れると、ダイの中の電圧分布が悪化するので、こういう制限が設けられているのだと思います。なお、これは絶対最大定格ではないので、素子の劣化や破壊につながるものではありません。

◆まとめ
以上で各条件というか、方法への突っ込みは終わりです。

こうやって見直してみると、妥当な意見もあるし、設計変更で前提条件が変わってしまった項目もあるようです。また、私の意見が入っているので、必ずしも公平なジャッジになっていないかも知れません。ともかく、Arduino UNO のハードを理解するのにはなかなか良い教材であることは間違い無いです。

Arduino のソフトに関するドキュメントはいっぱいあるのですが、ハードに関するドキュメントはあまり見かけません。ハードウェアリファレンスあるいはボードリファレンスのようなものがあれば、こういう議論は起きなかった気がします。例えば、Arduino UNO だったら、
 1) +5V と +3.3V ピンは出力用。ここに外部から電源を接続してはならない。
 2) Vin ピンは入力用。このピンに負荷を接続してはならない。
このようなことが決まっていたら、No5 から No8 までのような議論は起こらなかったのではないかと思います。
まあ、「難しいことは抜きで、ともかく実際に使って勉強しましょう」というのが Arduino のスタイルなので、あえて難しいことは言わないようにしているのかも知れません。

【2020/3/22追記】
mmさんからこの記事へのコメントで教えて頂いたのですが、「これだけはやるな!」の元になった記事は10 Ways to Destroy An Arduinoという記事だったようです。元記事の方にはやってはいけない理由の詳しい説明と、どうやったら改善できるかまで書かれていました。どうも電気的に壊れ難く対策した、Ruggeduino というボードの宣伝資料のようで、Youtube の解説動画まで用意されていました。
ちなみに、Ruggeduino は値段が高くて $55くらいするようですが、それだったら壊れても惜しくない中華の互換ボードを買って、壊した時のがっかり感を体験した方が良い気がします。
カレンダー
02 | 2020/03 | 04
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード