何番煎じの内容だよって感じですが、ATMEGA328PをArduinoとして動かしてみました。
とっても簡単でした。
実装にあたっては下記サイトを参考にさせていただきました。
Arduino as ISP and Arduino Bootloaders | 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互換機の回路はこんな感じにします。
ブレッドボードに乗せるとこんだけ。(動作確認目的なので、C2とSW1は省略)
Arduino bootloaderを書き込む
ATMEGA328PをArduinoとして動かすにはArduinoのBootloaderを書き込む必要があります。
手元にProMicroがあるので、こちらを使って書き込みをしてみようと思います。
まずはProMicroにBootloader書き込み用のスケッチ(Arduino ISP)を書き込みます。
次に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 |
最後に”ツール”タブの”ボード”と”書き込み装置”でそれぞれ”Arduino UNO”と”Arduino as ISP(ATmega32U4)”を選んでから、”ブートローダーを書き込む”をクリックし書き込みを実行します。
これでATMEGA328PはArduinoになりました。
スケッチを書き込む
Arduino UNOにはUSBポートがついていて直接PCと接続してスケッチを書き込めるようになっています。
これは、UNOに乗っているATMEGA16U2がUSB→Serial変換を行ってくれているからです。
今回のようにArduinoを自作した場合は、自分でUSB→Serial変換などを用意してATMEGA328Pへ接続する必要があります。*1 *2
今回は秋月電子通商さんのモジュール基板 AE-UM232Rを使用しました。
接続は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チカのサンプルプログラムを書き込んでみると、問題なく動きました。
今回作った構成だと1セット当たり300円しないくらいなので、何かをつくったときに気軽に組み込めますね。
今回はこれでおわりです。
Arduino互換機とゼロプレッシャーソケットを使ってBootloader書き込み装置を作りました↓
geekyfab.com