- USBを介してATtiny85をプログラムするために必要なコンポーネント
- ATtiny85マイクロコントローラーIC–はじめに
- ArduinoUnoを使用したATtiny85でのブートローダーの点滅
- ATtinyプログラマーの回路図
- Digisparkドライバーのインストール
- ATttiny85をプログラムするためのArduinoIDEのセットアップ
ATtinyファミリーは、AVR市場で最小のマイクロコントローラーのシリーズです。これらのマイクロコントローラーは、Arduinoプラットフォームで利用可能なライブラリの多くを利用することができます。ATtiny85マイクロコントローラーチップは8ピン8ビットAVRマイクロコントローラーです。サイズが小さく、消費電力が少ないため、設置面積が小さく、電力要件が低いポータブルプロジェクトに最適です。ただし、マイクロコントローラーボードのようなUSBインターフェイスがないため、コードをチップに取り込むのは少し難しい場合があります。
前のチュートリアルでは、ArduinoUnoを使用してATtiny85をプログラムしました。しかし、Attiny85をArduinoに接続し、ArduinoをISPとして使用することは、困難で時間がかかる可能性があります。したがって、このチュートリアルでは、ATtiny85プログラミングボードを作成して、他のマイクロコントローラーボードと同じように直接プラグインしてプログラミングできるようにします。
USBを介してATtiny85をプログラムするために必要なコンポーネント
- Arduino UNO(ブートローダーのアップロード中に初めて)
- ATtiny85 IC
- USBAタイププラグオス
- 3つの抵抗器(2×47Ωおよび1×1kΩ)
- 3個のダイオード(2×ツェナーダイオードと1×IN5819ダイオード)
- 8ピンICベース
- ブレッドボード
- ジャンパー線
ATtiny85マイクロコントローラーIC–はじめに
AtmelのATtiny85は、高度なRISCアーキテクチャに基づく高性能で低電力の8ビットマイクロコントローラです。このマイクロコントローラチップは、8KB ISPフラッシュメモリ、512B EEPROM、512バイトSRAM、6つの汎用I / Oライン、32の汎用ワーキングレジスタ、比較モード付きの1つの8ビットタイマー/カウンタ、1つの8ビット高速を備えています。タイマー/カウンター、USI、内部および外部割り込み、4チャネル10ビットA / Dコンバーター、内部オシレーター付きのプログラム可能なウォッチドッグタイマー、3つのソフトウェアで選択可能な省電力モード、およびオンチップデバッグ用のdebugWIRE。ATtiny85のピン配置を以下に示します。
チップのほとんどのI / Oピンには複数の機能があります。 各ピンのATtiny85ピンの説明を以下の表に示します。
ピン番号 |
ピン名 |
ピンの説明 |
1 |
PB5(PCINT5 / ADC0 / dW) |
PCINT5:ピン変更割り込み0、ソース5 リセット:リセットピン ADC0: ADC入力チャンネル0 dW: WIRE I / Oをデバッグします |
2 |
PB3(PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3:ピン変更割り込み0、ソース3 XTAL1:水晶発振器ピン1 CLKI:外部クロック入力 ADC3: ADC入力チャンネル3 |
3 |
PB4(PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4:ピン変更割り込み0、ソース4 XTAL2:水晶発振器ピン2 CLKO:システムクロック出力 OC1B:タイマー/カウンター 1比較一致B出力 ADC2: ADC入力チャンネル2 |
4 |
GND |
アースピン |
5 |
PB0(MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPIマスターデータ出力/スレーブデータ入力 DI: USIデータ入力(3線式モード) SDA: USIデータ入力(2線式モード) AIN0:アナログコンパレータ、正入力 OC0A:タイマー/カウンター0比較一致A出力 AREF:外部アナログリファレンス PCINT0:ピン変更割り込み0、ソース0 |
6 |
PB1(MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPIマスターデータ入力/スレーブデータ出力 DO: USIデータ出力(3線式モード) AIN1:アナログコンパレータ、負入力 OC0B:タイマー/カウンター0比較一致B出力 OC1A:タイマー/カウンター1比較一致A出力 PCINT1:ピン変更割り込み0、ソース1 |
7 |
PB2(SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK:シリアルクロック入力 USCK: USIクロック(3線式モード) SCL: USIクロック(2線式モード) ADC1: ADC入力チャンネル1 T0:タイマー/カウンター0クロックソース INT0:外部割り込み0入力 PCINT2:ピン変更割り込み0、ソース2 |
8 |
VCC |
供給電圧ピン |
ArduinoUnoを使用したATtiny85でのブートローダーの点滅
以下のためのArduinoなしATtiny85をプログラミングする、我々は最初のArduinoのUNOボードを使用して、それにブートローダをアップロードしなければならない、これは1回限りのプロセスであり、これが行われた後、我々は再びUNOボードを必要とされることはありません。ブートローダーは、プログラムする必要のあるマイクロコントローラーで実行される特別なプログラムです。プログラムデータをマイクロコントローラーにロードする最も便利な方法の1つは、ブートローダーを使用することです。ブートローダーはMCU上にあり、着信命令を実行してから、新しいプログラム情報をマイクロコントローラーのメモリに書き込みます。マイクロコントローラーのブートローダーをフラッシュすると、マイクロコントローラーをプログラムするための特別な外部ハードウェア(プログラマーボード)が不要になり、USB接続を使用して直接プログラムできるようになります。Digispark ATtiny85ボードは、もともとBluebieによって作成された「micronucleustiny85」ブートローダーを実行します。ブートローダーは、Digisparkで事前にプログラムされたコードであり、ArduinoIDEでプログラムできるようにUSBデバイスとして機能できるようにします。また、ATtiny85で同じdigisparkattiny85ブートローダーをフラッシュします。
ArduinoUnoとArduinoIDEを使用してブートローダーをATtiny85にフラッシュするためのステップバイステップガイドを以下に示します。
ステップ1:Arduino UnoをISPとして構成する:
ATtiny85は単なるマイクロコントローラーであるため、ISP(インシステムプログラミング)をプログラムする必要があります。したがって、ATtiny85をプログラムするには、まずArduino UnoをISPとして構成して、ATtiny85のプログラマーとして機能させる必要があります。そのためには、Arduino Unoをラップトップに接続し、ArduinoIDEを開きます。その後、 [ファイル]> [例]> [ArduinoISP] に移動し、 ArduinoISP コードをアップロードします。
ステップ2:ATtiny85でブートローダーをフラッシュするための回路図:
ATtiny85でのフラッシュブートローダーの完全な回路図を以下に示します。
ArduinoのリセットピンとGNDピンの間に10µfのコンデンサが接続されています。完全な接続を以下の表に示します。
ATtiny85ピン |
ArduinoUnoピン |
Vcc |
5V |
GND |
GND |
ピン2 |
13 |
ピン1 |
12 |
ピン0 |
11 |
リセット |
10 |
次に、Arduino Unoをラップトップにプラグインして、ArduinoIDEを開きます。Unoが接続されているCOMポートを見つけます。私の場合はCOM5です。
この後、指定されたリンクからATtiny85ブートローダーファイルをダウンロードします。「 Burn_AT85_bootloader.bat 」を開き、COMポート番号「PCOM5」をUnoが接続されているCOMポート番号に変更します。終了する前に変更を保存してください。
今、編集した"移動 Burn_AT85_bootloader.bat "と" ATtiny85.hex ArduinoのIDEのルートフォルダに"ファイル(C:\プログラムファイル(x86の)\ Arduinoの)。
その後、「 Burn_AT85_bootloader.bat 」を右クリックし、「管理者として実行」を選択します。ブートローダーをフラッシュするのに約5〜6秒かかります。すべてがうまくいけば、「AVRdudeが完了しました。ありがとうございます。続行するには任意のキーを押してください…」というメッセージが表示されます。
これにより、ブートローダーがATtiny85チップに正常にインストールされます。次に、USBをATtiny85に接続して、直接プログラムできるようにします。USBを介してATtiny85をプログラミングするための回路図を以下に示します。
ATtinyプログラマーの回路図
回路図はDigisparkATtiny85ボードの回路図から取られていますが、ATtiny85のプログラマーを構築することを目的としているため、オスUSBプラグとATtiny85のみを接続しています。
R3は、ICのVccピンとPB3ピンの間に接続されるプルアップ抵抗であり、ツェナーダイオード(D1-D2)が追加されてUSBインターフェイスを完全に保護します。パフォーマンスボード上のすべてのコンポーネントをはんだ付けすると、次のようになります。
Digisparkドライバーのインストール
USBを使用してATtiny85をプログラムするには、ラップトップにDigisparkドライバーがインストールされている必要があります。インストールされていない場合は、上記のリンクを使用してダウンロードできます。次に、zipファイルを解凍し、「DPinst64.exe」アプリケーションをダブルクリックしてドライバーをインストールします。
ドライバが正常にインストールされたら、ATtiny85ボードをラップトップに接続します。次に、Windowsのデバイスマネージャーに移動すると、ATtiny85デバイスが「libusb-win32デバイス」の下に「Digisparkブートローダー」として表示されます。デバイスマネージャで「libusb-win32デバイス」が見つからない場合は、「表示」に移動して「非表示のデバイスを表示」をクリックします。
ATttiny85をプログラムするためのArduinoIDEのセットアップ
Arduino IDEでATtiny85ボードをプログラムするには、まず、ArduinoIDEにDigisparkボードのサポートを追加する必要があります。そのためには、 [ファイル]> [設定] に移動し、 [追加のボードマネージャーのURL]に以下のリンクを追加して、[OK]をクリックします。
その後、ツール>ボード>ボードマネージャーに移動し、「Digistump AVR」を検索して、最新バージョンをインストールします。
インストール後、ボードメニューに「Digispark」というタイトルの新しいエントリが表示されるようになります。
次に、ファイル>例>基本に移動し、点滅の例を開きます。
そこでのピン番号をLED_BUILTINから0に変更します。
次に、[ツール]-> [ボード]に戻り、[Digispark(デフォルト– 16MHz)]ボードを選択します。次に、ArduinoIDEのアップロードボタンをクリックします。
注: ATtiny85ボードをコンピューターに接続するのは、ArduinoIDEが「今すぐプラグインデバイスです」というメッセージを表示した場合のみです。
コードがアップロードされると、ATtiny85に接続されているLEDが点滅し始めます。
これが、独自のATtiny85Arduinoプログラミングボードを構築する方法です。同じものの作業ビデオを以下に示します。ご不明な点がございましたら、コメント欄にご記入ください。その他の技術的な質問については、フォーラムでディスカッションを開始することもできます。