昨日のNanoの検証結果は、やっぱり「激安中華はダメ」である。
■症状
中華製「Nanoもどき」をPCに繋ぎ、Arduino IDEが用意しているサンプルスケッチ「01.Basics」「Fade」を動かすと、Pin9に接続したLEDはフェードを繰り返すが、約30秒ごと指定もしていない基板上のLED(Pin13)が数回点滅してCPUリセットがかかる。(「01.Basics」「Blink」も同様)
Fadeは順調に動いているけど・・・
突如リセットが発生する。
■検証結果
1 この症状は同じ開発環境に接続したサインスマート製Unoでは生じない。と思っていたが、発生する時期が遅いだけだった。
2 Nanoもどきを電池駆動するとこの症状は発生しない。
3 開発環境PCをシャットダウンし、USBポート給電する駆動環境では発生しない。
4 結論
以上の事からUSB信号がNanoもどきに入ると、不具合を生じているように思える。
Nanoもどきが使っているUSB-シリアル変換チップ「CH341」とPC側のドライバソフト(CH341用)の組み合わせが悪いのではないか。
原因不明。電源供給能力不足だったのかも。
■雑感
ネットでいろいろ話題となっている「CH341」であるが、やはり激安中華Nano等にはリスクがあるのだと再認識した。
今後買うであろうUSB-シリアル変換基盤は「CH341」以外のチップを積んだ物にしないとイカン。と決意を新たにしたのであります。
噂ではあるが、「USBシリアル変換ICの中華コピー品を排除するために、正規品メーカーが、コピーチップと判断した場合に動作を停止するルーチンをドライバソフトに組み込んだ」という話もあるので、気を付けないと長時間ドツボにハメられる可能性がある。
サインスマートは米国カンザスCityが本拠なのかな?東方の大陸系ではないようです。
■ドライバソフト
別のPC(Windows7 Pro)で接続試験を行ってみたが、サインスマートの方はドライバが自動で組み込まれたが、Nanoもどきの方は、ドライバ未発見でArduinoIDEから認識されなかった。
標準のsetup.exeではエラーで止まったので、DriverSetup(X86)でインスコしてみた。
サインスマート版はドライバに「c:\windows\system32\DRIVERS\usbser.sys」を使っている。
Win10では双方のドライバが予めインストールされていた。(デスクトップ、中華PAD MOMO8W)が、デスクトップPCではNanoもどきは堅調に認識されるもUnoの認識が不安定である。領有権争いに負けてる・・・