ブログ

Atmel StudioでArduino UnoをライタとしてブレッドボードのAVRマイコンにプログラム(スケッチ)の書き込み

Arduino IDEの代わりに、Atmel Studioを使用する。

Arduino Unoを書き込み器として設定します。以下の1から3の設定をしてください。

ツール-外部ツール

タイトル ArduinoISP

コマンド C:\arduino-1.8.15\hardware\tools\avr\bin\avrdude.exe

引数

-c avrisp -P COM5 -b 19200 -p m168p

-U flash:w:$(ProjectDir)Release\$(TargetName).hex:i

-U lfuse:w:0xFD:m -U hfuse:w:0xDE:m -U efuse:w:0xFF:m

-c

avrisp Atmel AVR ISP・ArduinoISP
avrisp2 Atmel AVR ISP mkII

atmelice_isp Atmel-ICE

-P

COM○ インターフェイスはcomポート経由

usb インターフェイスはUSB経由

-pはデバイスの指定

C:\arduino-1.8.15\hardware\tools\avr\etc\avrdude.conf 参照

m168pはATmega168P

m328PはATmega328P

t44はATtiny44

t45 ATtiny45
t84 ATtiny84
t85 ATtiny85

-vはメッセージのレベル

省略

C:\arduino-1.8.15\hardware\arduino\avr\boards.txt

Arduino Uno
extended_fuses=0xFD
high_fuses=0xDE
low_fuses=0xFF
unlock_bits=0x3F
lock_bits=0x0F

Use Output windowにチェック

Atmel StudioでArduino Unoのヒューズビットの設定

Arduino unoは以下の設定。

Extended Fuse = 0x05

High Fuse = 0xDE

Low Fuse = 0xFF

Prograrmで書き込みをすると、0x05が0xFDになる。

ちなみにロックビットは未設定0xFF

Atmel StudioでArduino Unoにブートローダを書込み

Arduino Unoをライタにしてブートローダーを書き込めますが、

Atmel-ICEなどのライタがあればAtmel StudioからArduino Unoまたはブレッドボードにマイコンに

ブートローダを書き込みできます。

Atmel Studioを起動し「Tools > Device Programming」を選択

ライタはAtmel-ICEを使用。

Atmel-ICE、ATmega328P、ISPを選択し、ApplyとReadを適用

「Memories」を選択してFlashのファイルを選択

arduino unoの場合は以下のブートローダープログラムを選択する

「C:\arduino-1.8.15\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex」を選択

「Program」をクリックして書き込み

Arduino IDEでスケッチを書き込んでみて書き込めたら成功です

次にヒューズビットを設定します。

Arduino IDEでArduino Unoにプログラム(スケッチ)の書込み

一番オーソドックスな使い方。ターゲットのマイコンはArduino Uno R3搭載のATmega328Pとなる。

ボード Arduino Uno

シリアルポート Aruduino Unoが接続されているポート

windowsの場合はデバイスマネージャーのポートで確認

blinkプログラムを開く

マイコンボードに書き込む

ボードへの書き込みが完了しましたが表示されればOK

Arduino Uno(R3でない)でATmega328Pの場合、ボード上の RESET-EN をパターンカットされていると自動リセット機能が無効化されます。よってジャンパーを追加するか。ハンダで繋げるかします。

リセット無効化されていると書き込みをできない場合があります。

AVRマイコンの書き込み(5)

前回でATmega168Pにブートローダを書き込みました。

Arduino IDEを利用してArduino Uno R3をライタとして、

ブレッドボード上に配線したATmega168Pにプログラム(スケッチ)を書き込みのつづき。

ATmega168Pにプログラム(スケッチ)を書き込みます。

ボードATmega168

シリアルポート Aruduino Unoが接続されているポート

windowsの場合はデバイスマネージャーのポートで確認

書込み装置 Arduino as ISP

スケッチ-書込み装置を使って書き込む

ボードに書き込みが完了しましたが表示されたらOK