ATmega8にブートローダーを書き込みArduino化!

arduino
スポンサーリンク

ATmega8は古いタイプのAVRですが、シンプルで使いやすいAVRマイコンの一つです。秋月電子なので安価で手に入り、ブートローダーを書き込めばArduinoとして使用することも可能です。今回ATmega8にブートローダーを書き込んでArduino化する方法と、Arduino IDEのボードマネージャーを使って簡単にスケッチを書き込む手順を詳しく解説します。

スポンサーリンク

必要なものを準備する

  • ATmega8(DIP 28ピン メモリー8K)秋月電子で購入
  • Arduino Uno(ISP書き込み装置として使用)
  • 16MHz セラロック(または16MH水晶振動子)
  • 10kΩ 抵抗(プルアップ用)
  • 10マイクロコンデンサー
  • ブレッドボードとジャンパーワイヤー

Arduino Uno をISPにする

  • Arduino IDEを開く
  • 「ファイル」→「スケッチ例」→「11.ArduinoISP」→「ArduinoISP」を選択
  • Arduino UnoをPCに接続し、適切なボードとポートを選択
  • 「マイコンボードに書き込む」をクリックし、Arduino UnoにISPスケッチを書き込む

これでAruduino UnoがISP書き込み装置として使えます。

ブートローダーの書き込み

Uno(ISP)とATmega8を下図のように接続します。

10 (SS) → RESET (1)
11 (MOSI) → MOSI (17)
12 (MISO) → MISO (18)
13 (SCK) → SCK (19)
GND → GND (8, 22)
5V → VCC (7, 20)

※うまく書き込めない場合はAruduino UNOのリセットピントとグラウンドの間に10μFのコンデンサーを入れてください。

Arduino IDEのボードマネージャー設定

まだ追加ボードを設定していない方は

  • 「ファイル」→「基本設定」を開く
  • 「追加のボードマネージャのURL」に以下を追加
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

「OK」を押して閉じる

  • 「ツール」→「ボード」→「ボードマネージャ」を開く
  • 検索バーに MiniCore と入力
  • 「MiniCore 」 をインストール

書き込み

  • ツール」→「ボード」→「MiniCore」→「ATmega8」を選択
  • 「ツール」→「クロック」→ 「内部8MHz」または「外部16MHz」 を選択。
    内部8MHをを選択すると、シリアル通信が文字化けして上手く表示されません、セラロックが必要となりますが外部16万Hzの選択を推奨します。
  • ポート:COMを確認
  • 「書き込み装置」→「Arduino as ISP」を選択
  • 「ブートローダーを書き込む」を実行

これで何もエラーが出なければのブートローダーの書き込みが終了です。

Mega8のスケッチの書き込みと動作確認

ブートローダーを書き込んだAtmega8とUSBシリアル変換アダプターを下記のように接続致します。
今回使用した変換アダプターは、アマゾンで購入したFT232RLモジュール 5V 3.3Vです。

Arduino IDEの設定、書き込み

  • 「ツール」→「ボード」→「MiniCore」→「ATmega8」を選択
  • 「ツール」→「書き込み装置」→「Arduino as ISP」を選択
  • 「スケッチを書き込む」を実行(例:LED点滅テスト)
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(400);                       // wait for a 0.4second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(400);                       // wait for a 0.4second
}

うまく設定されていればこれで13ピンに繋いだLEDが点滅します。

まとめ

ATmega8をArduino化することで、安価なマイコンを活用できるようになります。特に「MiniCore」を使用すると、内部クロックや各種設定を柔軟に変更できるため、プロジェクトに応じたカスタマイズが可能です。ATmega8は古いチップですが、学習用や小規模プロジェクトには十分活用できますので、ぜひ試してみてください!

タイトルとURLをコピーしました