ProMini互換機導入

ProMini互換機を導入しました。しかし、今回導入したのは、例によって本家Arduinoではなく、互換品です。購入時の価格は、200円程でした。ProMiniは、NANOを簡略化したものと考えてよさそうです。NANOにあった、USB-シリアルコンバーターと、レギュレーターが取り外されています。その他、AREF端子も省略されています。若干難易度は上がっていますが、使いこなすことはできるのか、試してみました。
ProMiniには二種類ある
ProMiniを購入する際、気を付けなければならない点があります。それは、電源電圧です。電源電圧が5Vのものと、3.3Vのものがあります。二種類のProMiniは、クロック周波数も異なります。5V版はNANOと同じくクロック周波数は16MHzです。しかし、3.3V版の方のクロック周波数は8MHzとなっています。

ProMiniに使用されているMCU、ATmega328Pの動作電圧は、確か1.8V~5.5Vのはずです。したがって、どちらを買っても良いとは思います。しかし、5V版を買っておけば、内蔵クロック使用で8MHz動作も可能です。そのため、5V版をを買っておいた方がよいと思います。
※注意:標準ブートローダーではBOV(ブラウンアウト電圧=動作停止電圧)が4.3Vに設定されています。これ以下の電圧で使用する場合には設定変更が必要です。

ProMiniにはUSB-シリアルコンバーターが無い
今回購入したProMiniには、USB-シリアルコンバーターがありません。そのため、スケッチを書き込むために、別途USB-シリアルコンバーターか、USBaspなどのAVRプログラマが必要となります。
USBaspは持っていますが、新たにUSB-シリアルコンバーターを購入しました。USB-シリアルコンバーターには、使用チップが異なる何種類かが存在します。しかし、個人的にはFT232Rを使用したUSB-シリアルコンバーターをお勧めします。

FT232R搭載USB-シリアルコンバーターをお勧めする理由
何種類もあるUSBシリアルコンバーターの中から、FT232R搭載のものをお勧めする理由は二つあります。一つ目は、FT232Rなら、AVR dudeのBitBangモードが使用できるためです。
BitBangモードを使用すると、FT232をISPとして動作させることが出来ます。つまり、USB–シリアルコンバーターで、ブートローダーの書き換えができるわけです。
理由の二つ目は、DTR端子がヘッダーに出ているためです。Arduino(互換機を含む)では、DTR信号がコンデンサーを介してMCUのリセット端子に接続されています。一部のブートローダーは、リセットをトリガーとして起動されます。したがって、DTR端子がヘッダーに出ていない場合、ブートローダーが起動しない場合があります。その結果、スケッチの書き込みに失敗することがあります。

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

USB-シリアルコンバーター | ProMini |
GND | GND |
VCC | VCC |
TX | RXI |
RX | TXO |
DTR | DTR |
※CTSの結線は必須ではありません。DTRについては、ProMiniの標準ブートローダを使用している場合、結線を省略することが出来ます。
スケッチの書き込みは、ArduinoIDEで「Ctrl+U」を押すだけです。
ブートローダー書き換え
動作が確認出来たら、ブートローダーを書き換えます。ブートローダーの書き換えは必須ではありません。寧ろ、面倒なのでお勧めはしません。
しかし、私はMiniCoreのブートローダーを好んで使用しています。MiniCoreでは、書式指定ができる、printf()が用意されています。その他、使用しない回路への電源供給を遮断するdisablePower()関数もあります。また、ポートを一括で制御できるportWrite()も用意されています。ブートローダーを書き換えなくても、これらの機能は使用できます。しかし、クロック周波数を可変して使用するには、ブートローダーの書き換えが必要です。
ブートローダーの書き換えには、苦労して使えるようにしたUSBaspを使用しました。ProMiniにはISP端子がありませんので、ジャンパーケーブルでの結線が必要です。しかし、書き込みに使用するピンが、ボードの片側に集まっていますので、意外と楽に結線できます。

USBasp | ProMini |
VCC | VCC |
GND | GND |
RST | RST |
MOSI | D11 |
MISO | D12 |
SCK | D13 |
結線が終わったら、ArduinoIDEのツール設定をこんな感じにして・・・。

設定が終わったら書き込みです。書き込み自体は数秒でおしまいです。
ProMini互換機は使い物になるか?
Pro Miniを初めて使ってみました。UNOやNANOに比較して、回路が簡素化されています。しかし、基本的なピンアサインは同一です。また、MCUも使い慣れたATmega328Pを搭載しています。そのため、UNOを使った経験があれば、違和感なく使えすはずです。

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