※ 当ページには【広告/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]
を選択します。書き込み装置は先ほど設定したように以下の通りです。内容の確認後に[Apply]
ボタンを押して、デバイスを変更を反映します。設定適用後、Device signature
とTarget 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
を使うと以下のような書式で貼り出せて便利です。
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
を使えば以下のような書式でサクッと設定を保管できます。
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リーフのブートローダーの書き込み方をまとめてみた