ATtiny85は、スペースや電力消費が重要な単純な制御タスク向けに設計された小型の8ビットマイクロコントローラです。メモリ、タイマー、アナログ入力、シリアル通信を8ピンパッケージに統合しています。この記事では、その仕様、ピン配置、内部構造、電源およびクロック設定、プログラミング、回路、そしてよくある問題について詳しく説明します。

ATtiny85概要
ATtiny85は、スペース、消費電力、部品数を抑える必要がある単純な制御作業向けに設計されたコンパクトな8ビットマイクロコントローラです。8ピンの形状は回路サイズ、配線の複雑さ、システムコストを削減しつつ、基本的な制御機能を提供します。
市場での長い存在にもかかわらず、ATtiny85はその安定性、強力なドキュメント、一般的な開発ツールとの互換性により広く使われ続けています。広い電圧範囲で動作し、複数のクロックオプションに対応しているため、信頼性が高く予測可能な挙動を求めるコンパクトで低消費電力の設計に適しています。
ATtiny85 技術仕様
| いいえ。ピンの | 8 |
|---|---|
| CPU | RISC 8ビットAVR |
| 動作電圧 | 1.8から5.5V |
| プログラムメモリ | 8K |
| プログラムメモリタイプ | フラッシュ |
| RAM | 512バイト |
| EEPROM | 512バイト |
| ADCチャンネル数 | 10ビット4 |
| コンパレータ | 1 |
| パッケージ | PDIP(8ピン) SOIC(8ピン) TSSOP(8ピン) QFN/MLF(20ピン) |
| 発振器 | 最大20 MHz |
| タイマー(2) | 8ビットタイマー |
| 強化電源リセット | はい |
| パワーアップタイマー | はい |
| I/Oピン | 6 |
| 製造元 | マイクロチップ |
| SPI | はい |
| I2C | はい |
| ウォッチドッグタイマー | はい |
| ブラウンアウト検出(BOD) | はい |
| リセット | はい |
| USI(ユニバーサルシリアルインターフェース) | はい |
| 最低動作温度 | -40°C |
| 最大運転温度 | 125 C |
ATtiny85 ピン配置

| ピン | 名前 | 主な機能 |
|---|---|---|
| 1 | PB5 | リセット、GPIO(ヒューズが変更された場合) |
| 2 | PB3 | GPIO、ADC |
| 3 | PB4 | GPIO、ADC |
| 4 | GND | グラウンド |
| 5 | PB0 | GPIO、PWM、MOSI |
| 6 | PB1 | GPO、PWM、MISO |
| 7 | PB2 | GPIO、ADC、SCK |
| 8 | VCC | 電源供給 |
ATtiny85はPDIP-8およびQFN/MLF-20パッケージで提供されています。両者は同じ内部回路を共有していますが、ピンの配置が異なります。PDIP-8パッケージは基本的なピンのみを露出し、基本的な回路での使用が容易ですが、QFN/MLF-20パッケージには接続されていないとマークされた追加ピンが含まれています。
ほとんどのピンは複数の機能をサポートしています。1本のピンはデジタル入力または出力として機能し、アナログ信号を読み取ったり、PWM出力を生成したり、シリアル通信をサポートしたりすることができます。この多機能設計により、ATtiny85は小型でありながら柔軟性を兼ね備えています。RESET ピンはヒューズ設定を変更することでピンとして設定することも可能ですが、これにより外部リセット機能はなくなります。
ATtiny85 ブロック図

ATtiny85は、フラッシュメモリに保存された命令を実行するAVR処理コアを中心に構築されています。SRAMは動作中の一時的なデータとして使用され、EEPROMは電源が切断された際に保持しなければならない不揮発性データを保存します。プログラムカウンタ、スタックポインタ、レジスタは命令フローとデータ処理を管理します。
タイミング機能は、2つの内部8ビットタイマーとウォッチドッグタイマーによって処理されます。ウォッチドッグは通常のプログラム実行が停止した場合、デバイスをリセットすることで信頼性を向上させます。内部発振器がクロック信号を提供し、集中式タイミング制御がすべての内部モジュールを同期させます。
入力および出力操作は、外部ピンに直接接続されたポートレジスタを通じて管理されます。このデバイスはまた、ADCやコンパレータなどのアナログ回路も統合しています。すべての内部ブロックは共有データパスを介して連結されており、メモリ、処理ロジック、I/O間の効率的な通信を可能にします。
ATtiny85 電源、クロック、ヒューズ設定
・ATtiny85は内部RC発振器を内蔵しており、外部クロック部品なしで動作可能です。
• より高精度なタイミングが必要な場合、外部クロックソースやクリスタルを使用することがあります。
• ヒューズ設定はクロックソース、起動遅延、ブラウンアウト検出レベル、リセットピンの挙動を制御します。
• 低クロックで動作することで消費電力と電気ノイズが減少します。
・ブラウンアウト検出は低電圧での安定性を向上させますが、電流消費をわずかに増加させます。
ATtiny85 GPIO制限と安全な運用
• GPIOピンは信号制御用であり、外部負荷に電力を供給してはなりません。
• GPIOピンに接続されたLEDは、損傷を防ぐために電流制限抵抗が必要です。
• モーター、リレー、その他の高電流デバイスは外部トランジスタまたはMOSFETで制御する必要があります。
• 内部プルアップ抵抗を有効化し、ボタンやスイッチの接続を簡素化できます。
• すべてのGPIO電圧は、永久的な損傷を避けるために指定された範囲内に収めなければなりません。
ATtiny85 ADCおよびアナログ機能
| 特徴 | 説明 |
|---|---|
| ADC解像度 | 10ビット |
| 入力チャネル | 最大4 |
| 参考文献 | VCCまたは内部参照 |
| 特殊モード | ADCノイズリダクションスリープ |
ATtiny85は内蔵のアナログ-デジタルコンバーターを備えており、変化する電圧レベルを測定してデジタル値に変換します。測定の品質は、安定した基準電圧、クリーンな電源接続、適切な信号配線に依存します。ADCノイズリダクションスリープモードを使用することで、変換中の内部ノイズが低減され、読み込みの一貫性と全体的な信頼性が向上します。
ATtiny85 USIとのシリアル通信
ATtiny85はユニバーサルシリアルインターフェース(USI)を通じたシリアル通信をサポートします。この柔軟なインターフェースは、ファームウェアを通じてSPIモードで動作するか、I²Cスタイルの通信をサポートするように設定できます。単一の共有ハードウェアブロックを使用することで、デバイスはコンパクトなサイズを維持しつつ基本的なデータ交換を可能にします。
USIはソフトウェア制御に大きく依存するため、慎重なタイミング管理が必要です。シンプルかつ低速な通信作業に適していますが、大型マイクロコントローラに搭載されている専用SPIやI²C周辺機器に比べて自動化機能は少ないです。
Arduino IDEを通じたATtiny85プログラミング

• ATtiny85はATtiny互換コアをインストールした後、Arduino IDEでプログラム可能です。
・プログラミングはUSBプログラマーまたはISPとして設定されたArduinoを使って行われます。
• Arduino IDEの基板設定はATtiny85の選択されたクロック速度と動作電圧に一致しなければなりません。
・コードで使用されるPINは物理的なピン配置とは異なり、配線前に慎重に確認する必要があります。
最小限信頼性の高いATtiny85回路

この回路は安定した動作に必要な基本的な部品のみを使用します。VCCおよびGNDピンが電力を供給し、内部ロジックが正しく動作できるようにします。内部発振器がタイミングを制御するため、外部クロック部品は不要です。
47 Ω抵抗を介して接続されたLEDは、LEDとGPIOピンの両方を保護するとともに出力制御を示します。リセットピンはデバイスの再プログラミングや再起動のためにアクセス可能です。外部部品が非常に少ないため、この構成は基本的なアプリケーションに対してシンプルかつ信頼性の高い基盤を提供します。
ATtiny85 よくある問題とクイックチェック
| 問題点 | 何をチェックまたは直すべきか? |
|---|---|
| コードアップロードに失敗 | ISPの配線を確認し、RESET ヒューズ設定 |
| タイミングが誤り | 選択されたクロックソースとヒューズ構成の検証 |
| 不安定なADC読み取り | 接地を改善し、適切なデカップリングコンデンサを追加してください |
| 通信エラー | USIの設定とタイミング設定のレビュー |
| ピンの過熱 | 負荷電流を下げて外部ドライバー部品を使用 |
結論
ATtiny85は非常にコンパクトな形でコアコントロール機能を統合しています。その仕様、ピンの機能、内部ブロック、電源設定が実際の回路での動作を説明しています。適切なGPIO処理、ADC使用、シリアルセットアップ、最小限の回路を用いることで、ATtiny85は明確に理解でき、安定した低消費電力設計に適用できます。
よくある質問 [FAQ]
ATtiny85はどのくらいの電力を使っていますか?
電力消費量は電源電圧、クロック速度、アクティブ機能によって異なります。クロック速度を下げたり、未使用の周辺機器を無効にすることで電流消費が減少します。
ATtiny85は外部クロックが必要ですか?
いいえ。ATtiny85は内部にRC発振器を搭載しており、外部クロック部品なしで動作可能です。外部クロックは、より高いタイミング精度のためにのみ必要です。
RESET ピンは通常のI/Oピンとして使えますか?
はい。RESET ピンはヒューズ設定を使ってGPIOとして設定できます。これにより標準的なISPプログラミングが無効化され、デバイスの再プログラムには高電圧プログラミングが必要となります。
ATtiny85はモーターやリレーを直接駆動できますか?
いいえ。ATtiny85のGPIOピンは信号制御専用です。モーターやリレーは外部トランジスタまたはMOSFETで駆動される必要があります。
なぜATtiny85のADC読み取りが不安定なのか?
不安定なADCの読み取りは通常、電源ノイズや接地不良が原因です。適切なデカップリングコンデンサを追加し、ADCノイズリダクションモードを使用することで安定性が向上します。