【外付水晶なしで超省電力化】Arduino チップ単体動作(ATMEGA328P-AU使用)

【外付水晶なしで超省電力化】Arduino チップ単体動作(ATMEGA328P-AU使用)

Arduino Uno等の既存製品はUSBシリアル変換等、動作の本質に関わる部分以外も搭載されているために、簡単に使える反面バッテリー駆動の作品を作ろうとした場合に消費電力的に足かせになるケースがあります。

そこで今回は面実装タイプのATMEGA328Pを単体で動作するように8MHzの内蔵クロックを用いて外付け部品をできるだけ排除した最小構成のArduinoを作ってみました。

チップ単体かつ8MHzで動作することで、消費電流が大幅に抑えられます。

必要部材

  • Arduino Uno (書き込み機として)
  • ATMEGA328P-AUチップ単体
  • 各種ジャンパーピンと動作試験用LED

Bootloaderの書き込み

書き込み機準備

Webを調べてみて色々と方法があるようで、一通りを試してみましたが、一番安定して書き込みできたものを紹介します。

まずはこちらのサイトからフォルダごと全てダウンロードしましょう。
展開したら”Atmega_Board_Detector”というフォルダの中の”Atmega_Board_Detector.ino”をいつも通りArduinoで実行してみましょう。

実行後、シリアルモニタでBaudrateを115200bpsにするとこのような文字が出力されます。

こちらがでれば書き込み機の準備は完了です。

ATMEGA328P-AUとArduinoの接続

まずはATMEGA328P-AUは扱いにくい面実装品なので以下の変換基板を用いてDIP化しました。

32ピンQFP変換基板

秋月で購入した32ピンQFP変換基板
http://akizukidenshi.com/catalog/g/gP-09581/

接続図

ATMEGA328P-AUArduino Uno
Pin3,5(GND)GND
Pin4,6(VCC)5V
Pin29(PC6)D10
Pin17(PB5)D11
Pin16(PB4)D12
PIN15(PB3)D13

今回はオリジナル基板作製を視野に入れているため量産化も見据えて、ソケットを使ったBootloader書き込み機も作ってみました。

書き込み開始!

Atmega_Board_Programmerを書き込んだArduinoと書き込み対象のATMEGAを上記の様に接続が完了したら、先程と同様にシリアルモニタを開きます。画面に従い、”C”と送信すれば以下の様な表示でATMEGA328Pを認識してくれます。

その後画面に従い、”L”で8MHz内蔵オシレータ用BootLoaderを選択

“G”で書き込みを開始します。
問題なく完了すればBootloaderが書き込まれました。

スケッチの書き込み

接続図

以下のように配線しました。なおArduino UNO本体のATMEGA328Pは取り外しています

Wiring drawing
ATMEGA328P-AUArduino Uno(チップ取り外し済)
Pin3,5(GND)GND
Pin4,6(VCC)5V
Pin29(PC6)RESET
Pin30(PD0)D0(RX)
Pin31(PD1)D1(TX)

またこの後のLチカ用にPin17(PB5→ArduinoでいうD13)にLEDをつけています。

書き込み設定

ATMEGA328P単体へ書き込むための設定を行います。

こちら

のページからbreadboard-1-6-x.zipをダウンロードし、
解凍したフォルダを書類->Arduino内に”hardware”というフォルダを作成して中に入れます。

Arduino IDEを再起動すると以下のように設定が増えているはずです。

増えたATmega328 on a breadboard (8MHz internal clock)を選択すれば書き込み準備は完了です。

Lチカ動作

LED blink sketch

サンプルスケッチ”Blink”を開いて通常通り書き込んでみましょう。

きちんと動作すれば書き込みが成功です。

LED Blink

もちろん書き込みが完了したらArduinoとの接続を取り外して、電源だけ供給してあげれば動作します。

Arduino Uno等との構成から比較するとだいぶ小さくなっていますね!