[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を使います。

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

合同会社タコスキングダム|蛸壺の技術ブログ


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


マイコンへの接続確認



早速、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)ではない場合には接続をもう一度良く確認しましょう。


フューズビットを確認



マイコンの接続状態中に、左のペインから
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)

        

デバイスを探す

Device Selection ツールを使うと、素早くAVRやSAMの製品を検索できるので便利です。
この
Device Selection のダイアログはプロジェクトの新規作成の時にも出てきますが、メニューバーからツール( 金槌のアイコン🔨 )で Device のページに移り、 [Change Device] ボタンからでも呼び出し可能です。

合同会社タコスキングダム|蛸壺の技術ブログ


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


内部メモリのクリア



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

合同会社タコスキングダム|蛸壺の技術ブログ


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

合同会社タコスキングダム|蛸壺の技術ブログ
合同会社タコスキングダム|蛸壺の技術ブログ
[Arduino復旧術] サラのATmega328Pにブートローダーでプログラムを書き込む

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



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


ロックビットを確認



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

合同会社タコスキングダム|蛸壺の技術ブログ


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

            LB = NO_LOCK
BLB0 = NO_LOCK
BLB1 = NO_LOCK

LOCKBIT = 0xFF (valid)

        

まとめ



今回はAtmel-ICEのようなメーカー正規品の書き込み装置を介して、Microchip Studioをユーティリティツールのように使うやり方を紹介しました。
Windowsのインストールされているパソコンがどうしても必要にはなりますが、普段はavrdudeのようなコマンドからAVRマイコン開発を行っていて、何か意図としないエラーが起こった際のリカバリー・解析ツールとして、Microchip Studioが使えるような状態にはしておくと宜しいかと思います。

参考サイト

Arduinoにライトプロテクト(書き込み禁止)をする方法5選Leafony AVR MCUリーフのブートローダーの書き込み方をまとめてみた