Atmel Studio7でのATmega328PとATtiny45のブレッドボードとプログラミング
このプロジェクトでは、2つの異なるAtmelマイクロコントローラーをプログラミングするための回路を構築し、必要なソフトウェアセットアップについて説明します。
このプロジェクトでは、2つの異なるAtmelマイクロコントローラーをプログラミングするための回路を構築し、必要なソフトウェアのセットアップについて説明します。
このプロジェクトでは、ATmega328Pのプログラミング用とATtiny45のプログラミング用の2つの非常によく似た回路の構築について説明します。この記事では、プログラミング回路の完全な回路図と、無はんだブレッドボードアセンブリの詳細な写真を提供します。さらに、Atmel Studio 7 IDE(統合開発環境)も導入されます。
まず、ハードウェア
ATmega328PはAtmelの28ピンマイクロコントローラーであり、AVRラインの一部です。 Arduinoブランドの開発プラットフォームで最も頻繁に使用されるμCとしておそらく最もよく知られていますが、AT328Pはそこから絞り出すことができる以上の能力を備えています。その声明の証拠を見たい場合は、660ページのデータシートをご覧ください。
ATtiny45は8ピンμCであり、ATmega328Pの「弟」と考えることができます。同じ機能が多数ありますが、もちろんI / Oピンの数はそれほど多くありません。
シリアルペリフェラルインターフェイス(SPI)は、ATmega328PおよびATtiny45のプログラミングに使用されます。これは、マスター出力、スレーブ入力(MOSI)信号、マスター入力、スレーブ出力(MISO)信号、およびシリアルクロック(SCK)信号で構成される3線式(プラスアース)バスです。クロックはマスターデバイスによって生成され、マスターとスレーブ(または複数のスレーブ)間の同期通信を確保するために使用されます。したがって、SPIは「同期」通信バスです。
プログラミング回路
プログラミング回路の概略図を以下に示します。抵抗R2とLED1はプログラミングに厳密に必要なわけではありませんが、このプロジェクトの後半で定義するように、テスト目的で回路に含まれていることに注意してください。
プログラマーの選択
ATmega328PとATtiny45を処理するいくつかのプログラマーが利用可能です。 Atmel-ICEはリストの一番上にあり、今後の記事で説明する優れたプログラマーです。今のところ、スキンフリントで利用できるより安価なオプションがあります。SparkfunAVRPocket Programmerは、この記事のスキンフリントの作成者が使用したものです。他のものがお好みの場合は、お好みや手帳に合ったものをお選びください。前述のようにシリアルペリフェラルインターフェイスを使用していることを確認し、この記事の情報に適切な変更を加える準備をしてください。
注意! プログラマーを初めて接続する前に、AVRポケットプログラマー用の適切なドライバーをコンピューターにダウンロードしてインストールしてください。 Windowsが間違ったドライバーをインストールすることを許可されている場合、修正するのは非常に問題になる可能性があります。 AVRポケットプログラマードライバーを入手するための手順は、この記事の後半に記載されています。
AVR Pocket Programmerには、AtmelμCに接続するリボンケーブルが付属しています。 3つのコネクタが取り付けられています。AVRポケットプログラマの相手のオスヘッダーに差し込まれている2×5メス、リボンケーブルから約9インチ(23 cm)下にある別の2×5メス(この記事)に加えて、リボンケーブルの端に2×3のメスがあります。ピン配置は下の写真に示されています。
プログラミング回路無はんだブレッドボードアセンブリ
ATmega328PおよびATtiny45プログラミング回路の無はんだブレッドボードアセンブリを次の写真に示します。 6本の短いジャンパー線を使用して、2×3メスコネクタからの必要なリード線を、はんだレスブレッドボードのマイクロコントローラの適切なピンに接続します。以下のアセンブリ写真のワイヤの色は、上の概略図のワイヤの色に対応していることに注意してください。
パーツリスト
いくつかのワイヤジャンパーに加えて、プログラミング回路アセンブリに必要な部品を次の表に示します。
U1 | IC、ATmega328P-PU、32kBフラッシュ、DIP-28、1.8-5.5V | Digi-Key | ATMEGA328P-PU-ND |
U1 | IC、ATtiny45-PU、4kBフラッシュ、DIP-8、2.7-5.5V | Digi-Key | ATTINY45-20PU-ND |
R1 | 抵抗、¼W、10kΩ | Digi-Key | 10KQBK-ND |
R2 | 抵抗、¼W、470Ω | Digi-Key | 470QBK-ND |
LED1 | ダイオード、発光、T1 3/4、黄色 | Digi-Key | 754-1889-ND |
C1 | コンデンサ、セラミック、0.1µF、50V | Digi-Key | 399-9797-ND |
該当なし | プログラマー、AVRポケット、PGM-09825 | Digi-Key | 1568-1080-ND |
該当なし | ブレッドボード、無はんだ、400連絡先 | Digi-Key | 377-2094-ND |
次に、ソフトウェア
AVRポケットプログラマードライバー
AVRポケットプログラマー用のWindowsドライバーは、AdafruitUSBTinyプログラマーが使用するものと同じです。このAdafruitWebページにアクセスし、libusbv1.12で構築されたWindowsUSBtinyISP署名付きドライバーのリンクをクリックします。これにより、2つのinstaller.exeファイルを含むzipファイルをダウンロードできます。1つは32ビットコンピューター用で、もう1つは64ビットコンピューター用です。 Windows PCに適した方をダブルクリックすると、ドライバがインストールされます。
正しいWindowsドライバーをインストールした後でのみ、AVRポケットプログラマーをコンピューターに初めて接続する必要があります。 PCからAVRPocket Programmerに接続するには、USBタイプAからミニチュアBのオス-オスケーブルが必要です。接続すると、青色のPWRLEDと赤色のStat1LEDが点灯します。 2つの青色のデータLEDも点灯または点滅する場合があります。 Windowsはドライバーの検索を試みます。必要に応じて、Windowsを正しいドライバーの場所に誘導する必要があります。正しくインストールされると、AVRポケットプログラマーはlibusb-winXXデバイスの下のデバイスマネージャーに「USBtiny」として表示されます。 COMポートとしては列挙されません。以下のスクリーンショットを参照してください:
Atmel Studio 7
多くのマイクロコントローラー設計会社と同様に、Atmelにはハードウェア製品であるAtmel Studio 7と連携する統合開発環境(IDE)があります。AtmelμCをプログラムする唯一の方法ではありませんが、Windows 7、8で最も機能が充実した方法です。および10(32ビットと64ビットの両方)。残念ながら、LinuxまたはMacオペレーティングシステムでは使用できません。
Atmel Studio 7のオプションと選択肢の数は、新しいユーザーにとっては圧倒的なものになる可能性があります。したがって、このプロジェクトでは段階的なアプローチが提供され、プロセスが大幅に簡素化されます。まず、IDEをPCにダウンロードしてインストールします。 Studio7ユーザーガイドと豊富な追加情報もダウンロードできます。
Studio 7には、いくつかのハードウェアプログラマーのサポートが含まれていますが、正確な選択は、使用するAtmelマイクロコントローラーによって異なります。以下のスクリーンショットでは、ATMega328Pでサポートされているプログラマーが右側にリストされています。
ご覧のとおり、AVRポケットプログラマーはリストに含まれていません。ただし、AVRDudeと呼ばれるソフトウェアを使用してStudio7で使用することはできます。
AVRDude
AVRDudeは、AtmelマイクロコントローラーからのダウンロードとAtmelマイクロコントローラーへのアップロードに使用されるコマンドラインユーティリティです。 LinuxシステムとWindowsシステムの両方でバージョンを利用できます。この記事の執筆時点(2017年6月7日)で、利用可能な最新バージョンは6.3です。こちらからダウンロードできます。 Windowsユーザーは、avrdude-6.3-mingw32-zipをダウンロードし(このリンクをクリックするとzipファイルがダウンロードされます!)、ファイルを解凍して、AVRDudeをインストールする必要があります。メインハードドライブのルートにプログラムをインストールすることは必須ではありませんが、Atmel Studio 7での使用を簡素化することに注意してください。6.3より後のバージョンが利用可能な場合は、自由にインストールすることができます。 AVRDudeのユーザーガイドはこちらから入手できます。
AVRDudeが正しくインストールされ、機能しているかどうかを確認するには、次の手順を実行します。
- Windowsの[スタート]ボタンをクリックします。
- 検索ボックスに「cmd」と入力してEnterキーを押します。 DOSプロンプトウィンドウが開きます。
- DOSプロンプトで、AVRDudeをインストールしたディレクトリに移動します。
- avrdude -c USBtinyと入力し、Enterキーを押します。すべてが順調であれば、AVRDudeはサポートされているAtmelデバイスのリストを返します。
手順の例については、以下のスクリーンショットを参照してください。スクリーンショットは切り捨てられており、サポートされているAtmelデバイスのリストの一部のみが表示されていることに注意してください。
すべてをまとめる
プログラマーが前述のようにはんだレスブレッドボード上のAVRに接続されていると仮定すると、AVRをプログラムする準備がほぼ整います。下のボタンを使用してファイルNewBlink.zipをダウンロードし、解凍して、PCの便利な場所に保存します。
New_Blink.zip
次に、この手順に従います。
- Atmel Studio7を起動します。
- 起動画面の左側にある[新しいプロジェクト]をクリックします。 [新しいプロジェクト]画面が開きます。
- [新しいプロジェクト]画面で、[GCCC実行可能プロジェクト]をクリックします。上記のようにプロジェクトにNewBlinkという名前を付け、[OK]をクリックします。デバイス選択画面が開きます。
- [デバイスの選択]画面で、使用しているAVRデバイスを選択します:以下に示すようにATmega328PまたはATtiny45。 [OK]をクリックします。新しいプロジェクトが作成され、[新しい点滅プロジェクト]画面が開きます。
- [ツール]プルダウンメニューをクリックし、[外部ツール...]を選択して、[追加]ボタンをクリックします。
- [タイトル]ボックスに、作成するツールの名前を入力します。名前がツールを説明しているとよいでしょう。たとえば、プログラマー名とデバイス名の組み合わせを入力できます。
- [コマンド]ボックスに、AVRDudeをインストールした場所のDOSアドレスと、AVRDudeを起動するコマンドを入力します。
- [引数]ボックスに、使用しているAVRに応じて、次の2行のいずれかを入力します。 ATmega328Pの場合は、次のように入力します。
-c usbtiny -p m328p -v -U flash:w:$(TargetDir)$(TargetName).hex:i
ATtiny45の場合は、次のように入力します。
-c usbtiny -p t45 -v -U flash:w:$(TargetDir)$(TargetName).hex:i
- [初期ディレクトリ]ボックスに、AVRDudeをインストールした場所のDOSアドレスを入力します。
- [出力ウィンドウを使用する]ボックスがオンになっていて、他の2つのチェックボックスがオフになっていることを確認してください。ウィンドウは下の画面のようになりますが、使用しているAVRを反映しています。
- [適用]をクリックしてから、[OK]をクリックします。 [外部ツール]ウィンドウが閉じます。
- このセクションの冒頭でNewBlink.cを解凍して保存した場所に移動し、ファイルを開いてすべてのコンテンツを選択し、クリップボードにコピーします。
- Atmel Studio 7の[新しいBlink.c]ウィンドウに移動し、すべてのコンテンツを選択して、クリップボードの内容を[新しいBlink.c]ウィンドウに貼り付けます。以下のように表示されます。
- プロジェクトウィンドウの右上でAtmelStudio 7ソリューションエクスプローラーが開いていない場合は、[表示]プルダウンメニューをクリックし、[ソリューションエクスプローラー]をクリックします。ソリューションエクスプローラーがプロジェクトウィンドウの右上に開きます。
- main.cファイルを右クリックして、名前の変更を選択します。 main.cファイルの名前をNewBlink.cに変更します。
- [ファイル]プルダウンメニューをクリックし、[すべて保存]をクリックします。
- [ビルド]プルダウンメニューをクリックし、[ソリューションのビルド]をクリックします。
- [ツール]プルダウンメニューをクリックし、上記の手順5〜11で作成したツールの名前をクリックします。コンパイルされた新しい点滅コードがブレッドボードのAVRにダウンロードされ、LED 1が点滅し始めます。オンは1/2秒間、オフは1/2秒間、1分間に60回です。
始まり
確かに、それはLEDを点滅させるだけの長いプロセスでしたが、実際には、AVRマイクロコントローラーをプログラミングするためのハードウェアプラットフォームの作成、統合開発環境(Atmel Studio 7)のインストール、外部の統合という4つの主要なハードルをうまくクリアしました。プログラム(AVRDude)、および選択したAVRのプログラミングツールの定義。将来のAtmelプロジェクトがもっと楽しくなるので安心してください。 AllAboutCircuits.comでそれらを監視してください。
このプロジェクトを試してみてください。 BOMを取得します。
産業機器