MENU

ATMEGA328PをArduinoとして動かしてみる

何番煎じの内容だよって感じですが、ATMEGA328PをArduinoとして動かしてみました。
とっても簡単でした。


実装にあたっては下記サイトを参考にさせていただきました。

Arduino as ISP and Arduino Bootloaders | Arduino

ATMEGA328P を Arduino として使う

Arduinoで作った回路の小型化(Arduino互換機の製作)(2) - しなぷすのハード製作記

回路を作る

Arduino UNO R3のオリジナルの回路図がこちらになります。

https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

この回路図のZU4 (ATMEGA328P-PU)がArduinoとしてメインで動いています。
他にICはU1,U2,U3,U5が乗っていますが、それぞれ12V->5V変換IC、5V->3.3V変換IC、USB->Serial変換IC、オペアンプ(電源選択のためのコンパレーターとLED駆動のためのボルテージフォロワとして使用)であり、純粋にArduinoとして動かす分には不要です。

というわけで、今回作るArduino互換機の回路はこんな感じにします。

Arduino互換機 回路図

ブレッドボードに乗せるとこんだけ。(動作確認目的なので、C2とSW1は省略)

自作Arduino互換機
 

Arduino bootloaderを書き込む

ATMEGA328PをArduinoとして動かすにはArduinoのBootloaderを書き込む必要があります。
手元にProMicroがあるので、こちらを使って書き込みをしてみようと思います。

まずはProMicroにBootloader書き込み用のスケッチ(Arduino ISP)を書き込みます。

Bootloader書き込み用のスケッチ
次にProMicroとブレッドボードで作ったArduinoの回路とを下表のように接続します。
念のため接続はProMicroにUSBを接続していない状態で行います。

信号 ProMicro Pin名 Arduino(ATMEGA328P) Pin No.
電源 VCC 電源
GND GND GND
SCK 15 19
MISO 14 18
MOSI 16 17
RST 10 1
               ※基板上に印字されているピン名

ProMicroを接続したところ (右上のLEDマトリックスは何かの残骸)

最後に”ツール”タブの”ボード”と”書き込み装置”でそれぞれ”Arduino UNO”と”Arduino as ISP(ATmega32U4)”を選んでから、”ブートローダーを書き込む”をクリックし書き込みを実行します。

ボードと書き込み装置を選んでからブートローダーを書き込むを実行

これでATMEGA328PはArduinoになりました。

スケッチを書き込む

Arduino UNOにはUSBポートがついていて直接PCと接続してスケッチを書き込めるようになっています。
これは、UNOに乗っているATMEGA16U2がUSB→Serial変換を行ってくれているからです。
今回のようにArduinoを自作した場合は、自分でUSB→Serial変換などを用意してATMEGA328Pへ接続する必要があります。*1 *2
今回は秋月電子通商さんのモジュール基板 AE-UM232Rを使用しました。

akizukidenshi.com

接続はArduino UNO R3の回路図を参考に次のようにつなぎます。
RST端子への接続は100 nFのコンデンサが間に入ります。(AE-232R→コンデンサ→ATMEGA328Pの接続になります。)

信号 AE-UM232R Pin No. Arduino(ATMEGA328P) Pin No.
電源 14 電源
GND 7 GND
Tx→Rx 1 2
Rx←Tx 5 3
RST 2→100nFコンデンサ 100nFコンデンサ→1

接続すると、普通のArduino UNOのようにスケッチの書き込みができます。

試しにATMEGA328Pのピン19にプルダウン抵抗とLEDを接続してLチカのサンプルプログラムを書き込んでみると、問題なく動きました。

自作Arduino互換機でLチカ

今回作った構成だと1セット当たり300円しないくらいなので、何かをつくったときに気軽に組み込めますね。

今回はこれでおわりです。


Arduino互換機とゼロプレッシャーソケットを使ってBootloader書き込み装置を作りました↓
geekyfab.com


GEEKY Fab.ではなんかいろいろ作って頒布してます。
よかったら↓から見ていってください。

*1:今時はあんまりない気がしますが、PCにシリアルポートがついていればそちらでもOKです。その場合はRS232Cをブレッドボードに取り付けられるようにする基板とか売ってるのでそちらをお使いください。

*2:一回書き込むだけであればBootloaderを書き込んだ接続のままArduinoIDEの"スケッチ"→"書き込み装置を使って書き込む"で書き込めます。