Skip to content

Instantly share code, notes, and snippets.

@mamemomonga
Last active June 22, 2020 17:52
Show Gist options
  • Save mamemomonga/5cdebb7b946aeb91b6d12504cf9f10a0 to your computer and use it in GitHub Desktop.
Save mamemomonga/5cdebb7b946aeb91b6d12504cf9f10a0 to your computer and use it in GitHub Desktop.
ArduinoのコードをATmega48で動かし、arduino-cliとAVRISPmk2でプログラミングする方法

ArduinoのコードをATmega48で動かし、arduino-cliとAVRISPmk2でプログラミングする方法

ターゲットのATmega48について

  • ブートローダなし
  • 16MHzクリスタル接続ずみ、接続方法はデータシート参照。
  • ヒューズビット設定ずみ、DIV8なし、ISPからのプログラミングが有効な状態。

環境

  • macOS
  • AVRISPmk2
  • Arduino-CLI 0.11 以上が必要。2020年6月23日現在プレリリース版。GitHubからバイナリを取得できる。
  • arduino-cliはインストールせず作業フォルダに置いて作業する。

事前に arduino:avr をインストール

$ ./arduino-cli core list
$ ./arduino-cli core install arduino:avr

Arduinoから謎のArduino互換デバイス「mameduino」を作る

$ cd ~/Library/Arduino15/packages
$ cp -a arduino mameduino
$ cd mameduino/hardware/avr/1.8.*
$ cat > boards.txt << 'EOS'
menu.cpu=Processor
mega.name=ATmega use AVRISPmk2
mega.upload.tool=avrdude
mega.build.f_cpu=16000000L
mega.build.board=AVR_ATMEGA
mega.build.core=arduino
mega.build.variant=standard
mega.menu.cpu.atmega48=ATmega48
mega.menu.cpu.atmega48.build.mcu=atmega48
EOS

$ cd 作業フォルダ

Lチカ

  • ./variants/standard/pins_arduino.h にて LED_BUILTIN 13 と定義されている
  • 同ファイルにあるように、D13 はPB5である

$ ./arduino-cli sketch new Blink
$ cat > Blink/Blink.ino << 'EOS'
void setup() {
	pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
	digitalWrite(LED_BUILTIN, HIGH);
	delay(1000);
	digitalWrite(LED_BUILTIN, LOW);
	delay(1000);
}
EOS

コンパイル

$ ./arduino-cli compile -b mameduino:avr:mega:cpu=atmega48 -v Blink

アップロード

$ ./arduino-cli upload -b mameduino:avr:mega:cpu=atmega48 -P avrispmkii -v Blink
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment