ProMini互換機導入

Spread the love

ProMini互換機を導入しました。しかし、今回導入したのは、例によって本家Arduinoではなく、互換品です。購入時の価格は、200円程でした。ProMiniは、NANOを簡略化したものと考えてよさそうです。NANOにあった、USB-シリアルコンバーターと、レギュレーターが取り外されています。その他、AREF端子も省略されています。若干難易度は上がっていますが、使いこなすことはできるのか、試してみました。

ProMiniには二種類ある

ProMiniを購入する際、気を付けなければならない点があります。それは、電源電圧です。電源電圧が5Vのものと、3.3Vのものがあります。二種類のProMiniは、クロック周波数も異なります。5V版はNANOと同じくクロック周波数は16MHzです。しかし、3.3V版の方のクロック周波数は8MHzとなっています。

ProMini(互換機) ピンヘッダは付属するが、はんだ付けはセルフ
ProMini(互換機) ピンヘッダは付属するが、はんだ付けはセルフ

ProMiniに使用されているMCU、ATmega328Pの動作電圧は、確か1.8V~5.5Vのはずです。したがって、どちらを買っても良いとは思います。しかし、5V版を買っておけば、内蔵クロック使用で8MHz動作も可能です。そのため、5V版をを買っておいた方がよいと思います。

※注意:標準ブートローダーではBOV(ブラウンアウト電圧=動作停止電圧)が4.3Vに設定されています。これ以下の電圧で使用する場合には設定変更が必要です。

ProMiniの裏面には部品の設置はなく、すっきりしている
ProMiniの裏面には部品の設置はなく、すっきりしている

ProMiniにはUSB-シリアルコンバーターが無い

今回購入したProMiniには、USB-シリアルコンバーターがありません。そのため、スケッチを書き込むために、別途USB-シリアルコンバーターか、USBaspなどのAVRプログラマが必要となります。

USBaspは持っていますが、新たにUSB-シリアルコンバーターを購入しました。USB-シリアルコンバーターには、使用チップが異なる何種類かが存在します。しかし、個人的にはFT232Rを使用したUSB-シリアルコンバーターをお勧めします。

ProMiniと併せて使うFT232R搭載のUSB-シリアルコンバーター
FT232R搭載のUSB-シリアルコンバーター

FT232R搭載USB-シリアルコンバーターをお勧めする理由

何種類もあるUSBシリアルコンバーターの中から、FT232R搭載のものをお勧めする理由は二つあります。一つ目は、FT232Rなら、AVR dudeのBitBangモードが使用できるためです。

BitBangモードを使用すると、FT232をISPとして動作させることが出来ます。つまり、USB–シリアルコンバーターで、ブートローダーの書き換えができるわけです。

理由の二つ目は、DTR端子がヘッダーに出ているためです。Arduino(互換機を含む)では、DTR信号がコンデンサーを介してMCUのリセット端子に接続されています。一部のブートローダーは、リセットをトリガーとして起動されます。したがって、DTR端子がヘッダーに出ていない場合、ブートローダーが起動しない場合があります。その結果、スケッチの書き込みに失敗することがあります。

DTR信号がヘッダに出ていないUSB-シリアルコンバーターの例
DTR信号がヘッダに出ていないUSB-シリアルコンバーターの例(DTR端子が無い)

ProMiniにスケッチを書き込む

道具が揃いましたので、ProMini(互換機)にスケッチを書き込んでみます。USB-シリアルコンバーターとの結線はこんな感じです。

DTR信号がヘッダに出ていないUSB-シリアルコンバーターの例
DTR信号がヘッダに出ていないUSB-シリアルコンバーターの例
USB-シリアルコンバーターProMini
GNDGND
VCCVCC
TXRXI
RXTXO
DTRDTR

※CTSの結線は必須ではありません。DTRについては、ProMiniの標準ブートローダを使用している場合、結線を省略することが出来ます。

スケッチの書き込みは、ArduinoIDEで「Ctrl+U」を押すだけです。

ブートローダー書き換え

動作が確認出来たら、ブートローダーを書き換えます。ブートローダーの書き換えは必須ではありません。寧ろ、面倒なのでお勧めはしません。

しかし、私はMiniCoreのブートローダーを好んで使用しています。MiniCoreでは、書式指定ができる、printf()が用意されています。その他、使用しない回路への電源供給を遮断するdisablePower()関数もあります。また、ポートを一括で制御できるportWrite()も用意されています。ブートローダーを書き換えなくても、これらの機能は使用できます。しかし、クロック周波数を可変して使用するには、ブートローダーの書き換えが必要です。

ブートローダーの書き換えには、苦労して使えるようにしたUSBaspを使用しました。ProMiniにはISP端子がありませんので、ジャンパーケーブルでの結線が必要です。しかし、書き込みに使用するピンが、ボードの片側に集まっていますので、意外と楽に結線できます。

USBaspとProMiniの結線
USBaspとProMiniの結線
USBaspProMini
VCCVCC
GNDGND
RSTRST
MOSID11
MISOD12
SCKD13

結線が終わったら、ArduinoIDEのツール設定をこんな感じにして・・・。

pro miniに書き込むMiniCore ブートローダー設定
MiniCore ブートローダー設定

設定が終わったら書き込みです。書き込み自体は数秒でおしまいです。

ProMini互換機は使い物になるか?

Pro Miniを初めて使ってみました。UNOやNANOに比較して、回路が簡素化されています。しかし、基本的なピンアサインは同一です。また、MCUも使い慣れたATmega328Pを搭載しています。そのため、UNOを使った経験があれば、違和感なく使えすはずです。

pro mini内蔵LEDをスムースブリンクさせてみました
内蔵LEDをスムースブリンクさせてみました

また、USB-シリアルコンバータやレギュレーターが省略されているため、基板サイズが小さくなっています。そのため、組み込み用としては使いやすくなっています。また、MiniCoreと組み合わせて使うと、より省電力での動作が可能となります。また、MiciCoreではBOV(ブラウンアウト電圧)をATmega328Pの限界、1.8Vまで下げられます。したがって、単三電池二本での動作も可能でしょう。

コメントを残す

This site uses Akismet to reduce spam. Learn how your comment data is processed.