📖

ATmega8にプログラムを書き込めない

2024/12/22に公開

エラー

USBaspからATmega8に書き込もうとすると以下のようなエラーが発生する

最大7808バイトのフラッシュメモリのうち、スケッチが854バイト(10%)を使っています。
最大1024バイトのRAMのうち、グローバル変数が9バイト(0%)を使っていて、ローカル変数で1015バイト使うことができます。
avrdude error: program enable: target does not answer (0x01)
avrdude error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower the bit clock frequency, e.g. -B 125kHz
        - use -F to override this check
Failed programming: uploading error: exit status 1

このエラーはどうやらUSBaspからマイコンにアクセスできない時に出るらしい

環境

  • 使用ソフト:Arduino IDE(2.3.4及び1.8.19)
  • 使用ボード:Mini Core
  • 使用マイコン:ATmega8
  • 使用ライター:USBasp
  • OS:MacOS

Mini Coreの導入方法についてはネットにたくさん掲載されているので省略します。
買ってから初めて使うマイコンだったため、プログラムはシンプルなLチカを選択しました。

const int ledPin = 15;    // LEDが接続されているピン番号      // ボタンの状態を保存する変数

void setup() {
  pinMode(ledPin, OUTPUT);           // LEDピンを出力に設定
}

void loop() {
  // ボタンが押されたら(LOW)LEDを3回点滅 
  digitalWrite(ledPin, HIGH);  // LEDを点灯
  delay(1000);                  // 0.5秒待機
  digitalWrite(ledPin, LOW);   // LEDを消灯
  delay(1000);                  // 0.5秒待機
}

配線

一応配線を書いておきます。(基本的に同じものに繋いでおけば大丈夫)

USBasp ATmega8
VCC VCC
GND GND
SCK SCK
RESET RESET
MISO MISO
MOSI MOSI

エラー解決

当方ではなぜかわかりませんが、大きなブレッドボードに差し替えると再び書き込めるようになりました。おおかた配線ミスまたはブレッドボード本体での接触不良があったのだろうと推測しています。

Arduino IDEの設定

実のところこのエラーで書き込みができなくなったのは2回目で、また書き込みができなくなった時に同じ状況にできるようArduino IDEの設定も残しておきます。

  • Baud rate:"Default"
  • BOD:"BOD 4.0V"
  • Boot loader:"YES(UART0)"
  • clock:"internal 8 MHz"
  • EEPROM:"EEPROM retained"
  • Compiler LTO:"LTO disabeled"

Discussion