コンテンツにスキップ

04. Windows で 開発する

Note

Linuxの方がやりやすい。

ドライバーを用意する

ドライバーは別途インストールする必要がある。

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

Zadig - USB driver installation made easy

Zadig で libusb-win32 のドライバーをインストールする。

コンボボックスにデバイスが表示されない場合はOptions-List All Devicesを選択する。

以下の赤線のピンを接続する。

Microchip Studio でプログラミングする

Atmel Studio + USBasp + avrdude で AVR に書き込む

AVRDUDE をインストールする。ダウンロードしてどこかに置くだけ。

GitHub - avrdudes/avrdude: AVRDUDE is a utility to program AVR microcontrollers

以下コマンドが動くか確認しておく。

1
2
3
4
5
6
7
8
9
> avrdude.exe -c usbasp
avrdude.exe: No AVR part has been specified, use "-p Part"

Valid parts are:
  uc3a0512 = AT32UC3A0512
...中略...
  m328     = ATmega328
  m328p    = ATmega328P
  m328pb   = ATmega328PB

Microchip Studio のTools-External Tools...を選択し、以下の設定を追加する。

Arguments は以下。

1
-c usbasp -p m328p -P usb -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i

以下は L チカプログラムである。

main.c
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void) {
  DDRC  = 0b11111111;
  PORTC = 0b00000000;

  while (1) {
    PORTC = 0b00100000;
    _delay_ms(100);
    PORTC = 0b00000000;
    _delay_ms(100);
  }

  return 0;
}

Visual Studio Code でプログラミングする

GitHub - ZakKemble/avr-gcc-build

以下のコマンドを順番に実行することで書き込みできる。

1
2
3
4
# -Os バイナリサイズが小さくなるよう最適化をする
> avr-gcc -Os -mmcu=atmega328p -o main.elf main.c
> avr-objcopy -O ihex main.elf main.hex
> avrdude -c usbasp -p m328p -P usb -U flash:w:"main.hex":i

Makefile の作成方法