[Windowsユーザー向け] Microchip Studio(旧Atmel Studio)を使ってArduino/AVRマイコンの状態をチェックする


※ 当ページには【広告/PR】を含む場合があります。
2021/03/17
[Atmel-ICE on Linux] Debianからavrdudeを使ってブレッドボード上でAtmega328pのプログラムを書き込む

Microchip Studio(旧Atmel Studio)は基本的にWindows用のソフトウェアですが、公式の開発者用ツールであるので、使いこなすと非常に便利に利用できます。

今回はMicrochip Studioの補助的な使い方を紹介していきます。


Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

セットアップ(ハードウェアの準備)

引き続き本記事での書き込み装置はAtmel-ICEを使います。

前回と同じ構成で、以下の図のようにAtmel-ICEと生のAtmega328PをSPIモードで接続します。

合同会社タコスキングダム|蛸壺の中の工作室

Atmel-ICEとターゲットのAtmega328Pを接続したら、5VDC電源をマイコン側に供給し、Atmel-ICEを(Windows)パソコン側に接続します。


Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

マイコンへの接続確認

早速、Microchip Studioを立ち上げてみましょう

まずはなんでも良いのですが、手っ取り早く新しいプロジェクト(空)を作ります。Start Pageから
Start > [New Project...]をクリックします。

合同会社タコスキングダム|蛸壺の中の工作室

もっとも単純なプロジェクトとして
GCC C Executable Projectを選択しておきます。

合同会社タコスキングダム|蛸壺の中の工作室

初回はターゲットとするデバイス製品を選択することができます。例えば今回ではATmega328Pを利用するので、右上の検索ボックスに
328pと打つと検索結果がリストに反映されるので、該当のマイコンを選択します。

合同会社タコスキングダム|蛸壺の中の工作室

空のプロジェクトが作成されたら、まず書き込み装置を設定します。

右上のツールボタン(
金槌のアイコン🔨)を押すと、Toolの設定ページに移行するので、Selected debugger/programmerから接続中の書き込み装置を選択します。

合同会社タコスキングダム|蛸壺の中の工作室

書き込みモードは
ISPを選択しておきます。この設定を適用させるには忘れずに保存しておきましょう。

次にメニューから
[Tools] > [Device Programming]を選択します。

合同会社タコスキングダム|蛸壺の中の工作室

書き込み装置は先ほど設定したように以下の通りです。

            Tool: Atmel-ICE
Device: ATmega328P
Interface: ISP
        
内容の確認後に[Apply]ボタンを押して、デバイスを変更を反映します。

合同会社タコスキングダム|蛸壺の中の工作室

設定適用後、
Device signatureTarget Voltageの値が更新されていたら接続が完了です。自動更新機能がOFFの場合には、右にある[Read]ボタンで値を読み込みできます。

正しく接続されていた場合、マイコンの内部情報が表示されているはずですが、もし
Target Voltageがデバイスの入力電圧(5V or 3.3V)ではない場合には接続をもう一度良く確認しましょう。


Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

フューズビットを確認

マイコンの接続状態中に、左のペインからFusesの項目を選択します。

合同会社タコスキングダム|蛸壺の中の工作室

この
Fusesページでは現在のフューズビットを確認したり、フューズビットを変更したりすることができます。

例えばとりあえず後で戻せるように、現在のフューズビットを設定を控えるには
Copy to clipboardを使うと以下のような書式で貼り出せて便利です。

            BODLEVEL = DISABLED
RSTDISBL = [ ]
DWEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 2048W_3800
BOOTRST = [ ]
CKDIV8 = [X]
CKOUT = [ ]
SUT_CKSEL = INTRCOSC_8MHZ_6CK_14CK_65MS

EXTENDED = 0xFF (valid)
HIGH = 0xD9 (valid)
LOW = 0x62 (valid)
        

Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

デバイスを探す

Device Selection`Device Selection`ツールを使うと、素早くAVRやSAMの製品を検索できるので便利です。

この
Device Selectionのダイアログはプロジェクトの新規作成の時にも出てきますが、メニューバーからツール(金槌のアイコン🔨)でDeviceのページに移り、[Change Device]ボタンからでも呼び出し可能です。

合同会社タコスキングダム|蛸壺の中の工作室

データシートのオンラインリンクや、メモリ容量などの簡単な諸元もここで検索することができます。色々と眺めてみると、開発のヒントも得られます。


Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

内部メモリのクリア

マイコンを工場出荷時の設定に戻したい時があります。

その場合、ツールの
MemoriesのベージにあるDeviceの項目で[Erase Chip]を選択し、[Erase now]ボタンを押すと、フラッシュメモリ、EEPROM、LOCKビット等のメモリ内部に保持されたデータ全てがクリアされます。

合同会社タコスキングダム|蛸壺の中の工作室

たとえば
前回のようにブートローダーを書き込んでしまったATmega328PをAtmel-ICEから再び元に戻そうとすると、以下のようなエラーでデバイスの認識がブートローダーによって阻害されてしまうようになります。

合同会社タコスキングダム|蛸壺の中の工作室

合同会社タコスキングダム|タコツボの中の工作室
[Arduino復旧術] サラのATmega328Pにブートローダーでプログラムを書き込む

新品未使用のATmega328Pマイコンにブートローダー使ってプログラムを書き込んでみます。

ブートローダーが居残ったままではAtmel-ICEからのプログラムの上書きが出来なくなってしまうので、この内部メモリのクリアを実行し、ブートローダーを消してしまうと再度プログラムが書き込めるようになります。


Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

ロックビットを確認

ユーザーにプログラムを書き込ませたくなかったり、ブートローダーを起動を防いだりなどを設定させることができるロックビットの設定はツールのLock bitsのページから操作できます。

合同会社タコスキングダム|蛸壺の中の工作室

これもバックアップをとりたい場合に
Copy to clipboardを使えば以下のような書式でサクッと設定を保管できます。

            LB = NO_LOCK
BLB0 = NO_LOCK
BLB1 = NO_LOCK

LOCKBIT = 0xFF (valid)
        

Atmel-ICE MCU AVR SAM Xmega プログラマー デバッガー

Arduino Uno Rev3 ATmega328 マイコンボード A000066

Atmel AT AVR ISP mk2 MKII ATMEL インシステムプログラマー USB AVRISP XPII デバッガー

Arduino AVR ISP SIELD ATmega328P ブートローダ書込

HiLetgo FTDI FT232RL 3.3V 5.5V USB to TTL シリアル コンバーター 2個セット

ELEGOO Arduino用UNO R3スターターキット

これ1冊でできる!Arduinoではじめる電子工作 超入門 改訂第4版

まとめ

今回はAtmel-ICEのようなメーカー正規品の書き込み装置を介して、Microchip Studioをユーティリティツールのように使うやり方を紹介しました。

Windowsのインストールされているパソコンがどうしても必要にはなりますが、普段はavrdudeのようなコマンドからAVRマイコン開発を行っていて、何か意図としないエラーが起こった際のリカバリー・解析ツールとして、Microchip Studioが使えるような状態にはしておくと宜しいかと思います。

参考サイト

Arduinoにライトプロテクト(書き込み禁止)をする方法5選

Leafony AVR MCUリーフのブートローダーの書き込み方をまとめてみた

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。