中華MCU搭載ProMini 互換機

中華MCUの、LGT8F328P搭載ProMini互換機を購入しました。先日も、Arduino ProMiniの互換機を購入しました。しかし、もっと安く手軽なものは無いかと探したところ、LGT8F328Pを使用したものを見つけました。前回購入したものも、今回購入したものも互換機です。しかし、今回は中華MCUのLGT8F328Pを搭載したProMiniです。
ちょっと怪しいMCUを搭載した、ProMini互換機は使い物になるでしょうか。
中華MCUは使い物になるか?
個人的には、中華MCUのLGT8F328Pを高く評価しています。しかし、これは中華だからというよりも、後発だからということによるものです。半導体製品に関しては、互換品がある程度の市場を持っています。古い話ですが、NECのV30というCPUは、インテルのi8086の互換品でした。
しかし、i8086のデッドコピーではなく、CMOS化で省電力化を図り、高クロック化もされていました。今回購入したLGT8F328Pも、本家ATmega328Pよりも機能・性能ともに強化されています。
中華MCUのLGT8F328Pも、オリジナルであるATmega328Pには無い機能を持っています。しかし、価格は安いという特徴があります。
LGT8F32P使用Pro Mini互換機は安価です
今回購入した、Pro Mini互換機はアリエクで109円でした。

お財布に優しい価格です。すでに、同じMCUを搭載したNANO互換機を持っていますし、ATmega328P搭載のProMiniも持っています。したがって、購入に際して、悩むことはありませんでした。今回は、送料の兼ね合いもあるので、いくつかまとめて購入しました。
注文から十日ほどで、中華MCU搭載のProMini互換機は到着しました。激安価格だからなのか、ピンヘッダーは付属しません。したがって、ブレッドボードやジャンパー線を使用するなら、別途ピンヘッダーを用意した方がよいでしょう。
今回購入したものには、水晶発振子やセラミック発振子のような、外部クロックはありません。したがって、内蔵クロックを使用することになります。したがって、外部クロックを使う設定にすることは禁物です。外部クロック使用の設定をしたら、これまで壊したNANOやUNOと同じ結果になるはずです。
LGT8Fxプロジェクトのボードマネージャーでは、ブートローダー書き換えなしにクロック変更できます。ですから、ATmega328P以上に注意が必要かもしれません。
中華MCU搭載ProMini互換機を見てみる
届いた中華MCU搭載ProMiniは、無駄に大きな静電防止袋に入っていました。

取り出してみると、想像していたよりずっとコンパクトで、長辺が33mm、短辺が18mmでした。

USB-シリアルコンバーターは省略されています。そのため、シリアル信号端子が設けられています。また、今回購入したのは5V版です。そのため、5Vのレギュレーターが搭載されています。しかし、3.3Vのレギュレーターは省略されています。
そのため、3.3V動作の外部機器を接続する場合には、別途電源を用意する必要があります。しかし、Arduino用のモジュールの多くは、3.3Vでも5Vでも動作します。したがって、大きな欠点とは言えないでしょう。

裏面には部品の実装はなく、すっきりとしています。外部プログラマーを接続するためのシリアル端子の他に、SWD端子も用意されています。また、アナログ入力端子はA0~A7まで用意されています。この辺りは、NANOと同様です。
その他、アナログリファレンス端子が省略されています。計測に使用する場合には、注意が必要です。しかし、LGT8F328Pは、リファレンス電圧源を豊富に内蔵しています。したがって、スケッチの工夫で、ある程度カバーできるでしょう。
LGT8F328Pでは内部クロック使用が標準
LGT8F328Pの場合、内部クロックが32MHzで、外部クロックは最高で20MHzです。したがって、内部クロックを使用した方が、処理能力が高くなります。以前購入した、中華MCUを搭載したNANO互換機は、16MHzの水晶発振器を搭載したいました。しかし、出荷状態では、32MHzの内部クロックを使用するようになっていました。
LarduinoISPを使用したブートローダーを書き換えは、16MHzの外部クロックが必須でした。しかし、それ以外のケースで内蔵クロックでNGだったことはありません。したがって、タイムクリティカルが用途でなければ、不都合はないと思います。
早速使ってみました
試しにOLEDディスプレイをつないで、動作させてみました。

OLEDディスプレイをつないでの動作は、問題なく行えました。この時は、USB-シリアルコンバーターから供給される、3.3Vの電力で動作しています。
なお、5Vを超える電力を外部から電力供給する際には、RAW端子を使用します。RAW端子に供給された電力は、レギュレーターで5Vに降圧されて、MCUに供給されます。
試しに、単三乾電池4本、約6VをRAW端子に供給して動作させてみました。

乾電池での動作も十分可能です。また、変則的ではありますが、単三乾電池二本、約3VをVcc端子に供給してみましたが、これも問題なく動作しました。
中華MCUは違和感なく使える
最近は、中華MCUのLGT8F329Pを、好んで使用しています。しかし、LarduinoISPの動作が、条件によって不安定になることに悩まされました。また、パルス信号を生成するときに使用する、delayMicroseconds()関数の動きに癖があります。これも、予期しない動作になる条件がはっきりしましたので、解決済みです。
しかし、正確な動作タイミングが必要な場合には、工夫が必要かもしれません。しかし、その分動作速度が速いという利点もありますので、軽々に優劣を論ずるべきではないでしょう。
その一方で、コンパレーター機能、基準電圧源、内蔵DACなどは、大きなアドバンテージだと思います。何より、安い価格は、誤って壊してしまっても、精神的ダメージが小さくて助かります。