®

ATtiny25/V, ATtiny45/V, ATtiny85/V
2/4/8Kﾊﾞｲﾄ実装書き込み可能ﾌﾗｯｼｭ ﾒﾓﾘ付き
Atmel 8ﾋﾞｯﾄ AVR ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ
ﾃﾞｰﾀｼｰﾄ特徴
高性能、低消費AVR® 8ﾋﾞｯﾄ ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ
進化したRISC構造- 強力な123命令(多くは1周期実行)- 32個の1ﾊﾞｲﾄ長汎用ﾚｼﾞｽﾀ- 完全なｽﾀﾃｨｯｸ動作- 20MHz時、20MIPSに達する高速動作● 不揮発性ﾌﾟﾛｸﾞﾗﾑ用ﾒﾓﾘとﾃﾞｰﾀ用ﾒﾓﾘ- 実装自己書き換え可能な2/4/8Kﾊﾞｲﾄ(1/2/4K語)ﾌﾗｯｼｭ ﾒﾓﾘ内蔵･ 10,000回の書き換え耐久性- 128/256/512ﾊﾞｲﾄのEEPROM･ 100,000回の書き換え耐久性- 128/256/512ﾊﾞｲﾄの内蔵SRAM- ｿﾌﾄｳｪｱ保護用の設定可能な施錠機能● 内蔵周辺機能- 前置分周器と2つのPWM出力付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ- 独立した前置分周器付き高速8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ･ 独立した比較ﾚｼﾞｽﾀでの2つの高周波数PWM出力･ 設定可能な沈黙時間生成器- 開始条件検出器付き多用途直列ｲﾝﾀｰﾌｪｰｽ(USI)- 10ﾋﾞｯﾄ A/D変換器･ 4つのｼﾝｸﾞﾙ ｴﾝﾄﾞ ﾁｬﾈﾙ
･ 設定可能な利得(×1,×20)付き2つの差動ADCﾁｬﾈﾙ･ 温度測定- 設定可能な専用発振器付きｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ- ｱﾅﾛｸﾞ比較器● 特殊ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ機能- ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ機能- SPIﾎﾟｰﾄ経由の実装書き込み- 外部及び内部の割り込み- ｱｲﾄﾞﾙ、A/D変換雑音低減、ﾊﾟﾜｰﾀﾞｳﾝの3つの低消費動作- 強化した電源ONﾘｾｯﾄ回路- 設定可能な低電圧検出器(BOD)回路- 校正付き内蔵RC発振器● I/Oと外囲器- 6ﾋﾞｯﾄの設定変更可能なI/O- 8ﾋﾟﾝPDIP、8ﾘｰﾄﾞSOIC、20ﾊﾟｯﾄﾞQFN/MLF、8ﾘｰﾄﾞTSSOP (ATtiny45/Vのみ)● 動作速度- ATtiny25/45/85V : 0～4MHz/1.8～5.5V, 0～10MHz/2.7～5.5V- ATtiny25/45/85 : 0～10MHz/2.7～5.5V, 0～20MHz/4.5～5.5V● 工業用温度範囲● 低消費電力- 300µA (1MHz,1.8V,活動動作)- 0.1µA (1.8V,ﾊﾟﾜｰﾀﾞｳﾝ動作)● 動作電圧- 1.8～5.5V (ATtiny25/45/85V)- 2.7～5.5V (ATtiny25/45/85)●●

本書は一般の方々の便宜のため有志により作成されたもので、Atmel社とは無関係であることを御承知ください。しおりの[はじめに]での内容にご注意ください。
Rev. 2586Q-08/2013, 2586QJ4-04/2022

1. ﾋﾟﾝ配置
PDIP・SOIC・TSSOP(PCINT5/RESET/ADC0/dW) PB5(PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3
DNC
DNC(PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4

注: TSSOPはATtiny45/Vだけです。
VCC
PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)
PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)
PB0 (MOSI/DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0)

DNC
DNC
DNC
DNC
DNC

8
7
6
5

20
19
18
17
16

QFN/MLF

1
2
3
4

1
2
3 (注)
4
5

15
14
13
12
11

DNC 6
DNC 7
GND 8
DNC 9
DNC 10(PCINT5/RESET/ADC0/dW) PB5(PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3(PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4GND

VCCPB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2)
DNC
PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1)
PB0 (MOSI/DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0)
注: QFN/MLFの底面ﾊﾟｯﾄﾞはGNDに半田付けされるべきです。
DNC: 接続不可(Do Not Connect)

1.1. ﾋﾟﾝ概要
1.1.1. VCC
電源ﾋﾟﾝ。

1.1.2. GND
接地ﾋﾟﾝ。

1.1.3. PB5～PB0 (ﾎﾟｰﾄB)
ﾎﾟｰﾄBは(ﾋﾞｯﾄ単位で選択される)内蔵ﾌﾟﾙｱｯﾌﾟ抵抗付きの6ﾋﾞｯﾄ双方向入出力ﾎﾟｰﾄです。ﾎﾟｰﾄB出力緩衝部は共に高い吐き出し/吸い込み能力の対称駆動特性です。入力のとき、ﾌﾟﾙｱｯﾌﾟ抵抗が有効の場合、外部的にLowへ引き込まれたﾎﾟｰﾄBﾋﾟﾝには吐き出し電流が流れます。ﾘｾｯﾄ条件が有効になると、ｸﾛｯｸが走行していなくても、ﾎﾟｰﾄBﾋﾟﾝはHi-Zにされます。
ﾎﾟｰﾄBは39頁の「ﾎﾟｰﾄBの交換機能」で示されるATtiny25/45/85の様々な特殊機能も扱います。
ATtiny25ﾃﾞﾊﾞｲｽのPB3とPB4入出力ﾎﾟｰﾄ(2ﾋﾟﾝと3ﾋﾟﾝ)は、ATtiny15との下位互換性を支援するATtiny15互換動作で交換されます。

1.1.4. RESET
ﾘｾｯﾄ入力。RESETﾋﾟﾝが禁止されていなければ、例えｸﾛｯｸが走行していなくても、最小ﾊﾟﾙｽ幅より長いこのﾋﾟﾝのLowﾚﾍﾞﾙはﾘｾｯﾄを生成します。最小ﾊﾟﾙｽ幅は110頁の表21-4.で与えられます。より短いﾊﾟﾙｽはﾘｾｯﾄの生成が保証されません。
RESETﾋﾟﾝは((駆動能力の)弱い)入出力ﾋﾟﾝとしても使えます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

2

2. 概要ATtiny25/45/85はAVR強化RISC構造を基にした低消費CMOS 8ﾋﾞｯﾄ ﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。1周期での強力な命令の実行によってATtiny25/45/85はMHzあたり1MIPSに達する単位処理量を成し遂げ、処理速度対消費電力の最適化を設計者に許します。

2.1. 構成図
図2-1. ATtiny25/45/85構成図
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ

ｳｫｯﾁﾄﾞｯｸﾞ用
内部発振器
校正付き
内蔵発振器

ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ

ｽﾀｯｸ ﾎﾟｲﾝﾀ

MCU制御
ﾚｼﾞｽﾀ

ﾌﾟﾛｸﾞﾗﾑ用
ﾌﾗｯｼｭ ﾒﾓﾘ

ｽﾀｯｸ

MCU状態
ﾚｼﾞｽﾀ

命令ﾚｼﾞｽﾀ

汎用ﾚｼﾞｽﾀﾀｲﾏ/ｶｳﾝﾀ0

命令復号器

X
Y
Z

ﾀｲﾏ/ｶｳﾝﾀ1

ALU

多用途直列
I/F (USI)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ

割り込み部

制御信号線

ﾀｲﾐﾝｸﾞ制御

VCC

GND
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ回路

ISP用SPI

EEPROM

Xtal用発振器

8bit DATA BUS

ﾎﾟｰﾄB
ﾃﾞｰﾀ ﾚｼﾞｽﾀ

ﾎﾟｰﾄB
方向ﾚｼﾞｽﾀ

A/D変換器/ｱﾅﾛｸﾞ比較器(ｱﾅﾛｸﾞ多重器)

ﾎﾟｰﾄB緩衝部/駆動部
RESET

PB0～PB5
AVRｺｱは32個の汎用作業ﾚｼﾞｽﾀと豊富な命令群の組み合わせです。32個の全ﾚｼﾞｽﾀはALU(Arithmetic Logic Unit)に直結され、ﾚｼﾞｽﾀ間命令は1ｸﾛｯｸ周期で実行されます。AVR構造は現状のCISC型ﾏｲｸﾛ ｺﾝﾄﾛｰﾗに対して最大10倍の単位処理量向上効果があります。
ATtiny25/45/85は2/4/8Kﾊﾞｲﾄの実装書き込み可能なﾌﾗｯｼｭ ﾒﾓﾘ、128/256/512ﾊﾞｲﾄのEEPROM、128/256/512ﾊﾞｲﾄのSRAM、6本の汎用入出力線、32個の汎用作業ﾚｼﾞｽﾀ、比較動作付きの1つの8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ、1つの8ﾋﾞｯﾄ高速ﾀｲﾏ/ｶｳﾝﾀ、多用途直列ｲﾝﾀｰﾌｪｰｽ(USI)、内部及び外部割り込み、4ﾁｬﾈﾙの10ﾋﾞｯﾄ A/D変換器、内蔵発振器付きの設定変更可能なｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ、ｿﾌﾄｳｪｱで選択できる3つの低消費動作を提供します。ｱｲﾄﾞﾙ動作はCPUを停止し、一方SRAM、ﾀｲﾏ/ｶｳﾝﾀ、A/D変換器、ｱﾅﾛｸﾞ比較器、割り込み機構に機能の継続を許します。ﾊﾟﾜｰﾀﾞｳﾝ動作はﾚｼﾞｽﾀの内容を保護し、発振器が停止するため、以降のﾊｰﾄﾞｳｪｱ ﾘｾｯﾄか外部
割り込みまで、他の全機能を禁止します。A/D変換雑音低減動作はA/D変換中の切り替え雑音を最小とするためにA/D変換器を除く全I/O部とCPUを停止します。
本ﾃﾞﾊﾞｲｽはAtmelの高密度不揮発性ﾒﾓﾘ技術を使って製造されます。ﾁｯﾌﾟ上のISPﾌﾗｯｼｭ ﾒﾓﾘは通常の不揮発性ﾒﾓﾘ書き込み器によるSPI直列ｲﾝﾀｰﾌｪｰｽを通して、またはAVRｺｱ上で走行するﾁｯﾌﾟ上のﾌﾞｰﾄ ｺｰﾄﾞによる実装書き換えをﾌﾟﾛｸﾞﾗﾑ用ﾒﾓﾘに許します。
ATtiny25/45/85 AVRはCｺﾝﾊﾟｲﾗ、ﾏｸﾛ ｱｾﾝﾌﾞﾗ、ﾌﾟﾛｸﾞﾗﾑ ﾃﾞﾊﾞｯｶﾞ/ｼﾐｭﾚｰﾀ、ｲﾝｻｰｷｯﾄ ｴﾐｭｰﾚｰﾀ、評価ｷｯﾄを含む完全なﾌﾟﾛｸﾞﾗﾑ
及びｼｽﾃﾑ開発ﾂｰﾙで支援されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

33. 諸注意
3.1. 資料
包括的なﾃﾞｰﾀｼｰﾄ、応用記述、ﾄﾞﾗｲﾊﾞ群と開発ﾂｰﾙの記述はhttp://www.atmel.com/avrでのﾀﾞｳﾝﾛｰﾄﾞで利用可能です。

3.2. ｺｰﾄﾞ例
この資料はﾃﾞﾊﾞｲｽの様々な部分の使用法を手短に示す簡単なｺｰﾄﾞ例を含みます。これらのｺｰﾄﾞ例はｱｾﾝﾌﾞﾙまたはｺﾝﾊﾟｲﾙに先立ってﾃﾞﾊﾞｲｽ定義ﾍｯﾀﾞ ﾌｧｲﾙがｲﾝｸﾙｰﾄﾞされると仮定します。全てのCｺﾝﾊﾟｲﾗ製造業者がﾍｯﾀﾞﾌｧｲﾙ内にﾋﾞｯﾄ定義を含めるとは限らず、またCでの割り込みの扱いがｺﾝﾊﾟｲﾗに依存することに注意してください。より多くの詳細についてはCｺﾝﾊﾟｲﾗの資料で確認してください。
拡張I/O領域に配置したI/Oﾚｼﾞｽﾀに対し、IN, OUT, SBIS, SBIC, CBI, SBI命令は拡張I/O領域へのｱｸｾｽを許す命令に置き換えられなければなりません。これは代表的にSBRS, SBRC, SBR, CBR命令と組み合わせたLDS, STS命令を意味します。全てのAVRﾃﾞﾊﾞｲｽが拡張I/O領域を含むとは限らないことに注意してください。 (訳補: 本ﾃﾞﾊﾞｲｽに拡張I/O領域はありません。)

3.3. 容量性接触感知
Atmel QTouchﾗｲﾌﾞﾗﾘはAtmel AVRﾏｲｸﾛ ｺﾝﾄﾛｰﾗ上の接触感知ｲﾝﾀｰﾌｪｰｽのための使い易い解決策を提供します。QTouchﾗｲﾌﾞﾗ
ﾘはQTouch®とQMatrix®採取法用の支援を含みます。
接触感知は接触ﾁｬﾈﾙと感知器を定義することで応用ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ｲﾝﾀｰﾌｪｰｽ(API)を用いてQTouchﾗｲﾌﾞﾗﾘをﾘﾝｸすることによってどの応用にも容易に追加されます。そして応用はﾁｬﾈﾙ情報を取得して接触感知器の状態を決めるためにAPIを呼び出します。
QTouchﾗｲﾌﾞﾗﾘは無料でAtmelのｳｪﾌﾞｻｲﾄからﾀﾞｳﾝﾛｰﾄﾞすることができます。より多くの情報と実装の詳細についてはAtmelのｳｪﾌﾞｻｲ
ﾄからも入手可能なQTouchﾗｲﾌﾞﾗﾘ使用者の手引きを参照してください。

3.4. ﾃﾞｰﾀ保持力
信頼性証明結果はﾃﾞｰﾀ保持誤り率の反映を示し、20年以上/85℃または100年以上/25℃で1PPMよりずっと小さな値です。

追補. ATtiny15互換動作について (訳注:本項は便宜のため追加)
本ﾃﾞﾊﾞｲｽはATtiny15互換で動作できます。この動作への設定は次のとおりです。
・ CKSELﾋｭｰｽﾞ=0011 : 18頁の「校正付き内蔵RC発振器」参照
この互換動作では基本的に高速周辺機能ｸﾛｯｸを含むﾀｲﾏ/ｶｳﾝﾀ1関係がATtiny15互換で動作します。本動作ではATtiny15での比較Bﾚｼﾞｽﾀ(OCR1B)が本ﾃﾞﾊﾞｲｽの比較Cﾚｼﾞｽﾀ(OCR1C)に割り当てられていることに注意してください。但し、ATtiny15のOCR1Bと本
ﾃﾞﾊﾞｲｽのOCR1CのI/Oｱﾄﾞﾚｽは一致しています。関連記述は以下を参照してください。
・ ﾎﾟｰﾄ ﾋﾟﾝ交換 : 2頁の「ﾋﾟﾝ概要」の「ﾎﾟｰﾄB」参照
・ 高速周辺機能ｸﾛｯｸ(PCK) : 16頁の「ATtiny15互換動作での内蔵PLL」参照
・ ﾀｲﾏ/ｶｳﾝﾀ1動作 : 64頁からの「ATtiny15互換動作でのﾀｲﾏ/ｶｳﾝﾀ1」参照

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

44. AVR CPU ｺｱ
4.1. 序説
ここでは一般的なAVRｺｱ構造について説明します。このCPUｺｱの主な機能は正しいﾌﾟﾛｸﾞﾗﾑ実行を保証することです。従ってCPU
はﾒﾓﾘ ｱｸｾｽ、計算実行、周辺制御、割り込み操作ができなければなりません。

4.2. 構造概要～

間接アドレス指定(Indirect)
直接 (Direct)
アドレス指定最大効率と平行処理のため、AVRはﾌﾟﾛｸﾞﾗﾑとﾃﾞｰﾀに対してﾒﾓﾘ 図4-1. AVR MCU構造とﾊﾞｽを分離するﾊｰﾊﾞｰﾄﾞ構造をいます。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ内の命令は8-bit Data Bus
単一段のﾊﾟｲﾌﾟﾗｲﾝで実行されます。1命令の実行中に次の命令がﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘから事前取得されます。この概念は全部のｸﾛｯｸ周期で命令実行を可能にします。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘは実装書き換え可能
ﾌﾟﾛｸﾞﾗﾑ
状態/制御
割り込み部
ｶｳﾝﾀ
なﾌﾗｯｼｭ ﾒﾓﾘです。
高速ﾚｼﾞｽﾀ ﾌｧｲﾙは1ｸﾛｯｸ周期ｱｸｾｽの32個の8ﾋﾞｯﾄ長汎用ﾚｼﾞｽﾀ
SPI部
を含みます。これは1ｸﾛｯｸ周期ALU(Arithmetic Logic Unit)操作をﾌﾟﾛｸﾞﾗﾑ用
32×8
許します。代表的なALU操作では2つのｵﾍﾟﾗﾝﾄﾞがﾚｼﾞｽﾀ ﾌｧｲﾙかﾌﾗｯｼｭ ﾒﾓﾘ
汎用ﾚｼﾞｽﾀｳｫｯﾁﾄﾞｯｸﾞ
ﾀｲﾏ
らの出力で、1ｸﾛｯｸ周期内でその操作が実行され、その結果がﾚｼﾞｽﾀ ﾌｧｲﾙに書き戻されます。
ｱﾅﾛｸﾞ
命令ﾚｼﾞｽﾀ
32個中の6つのﾚｼﾞｽﾀは効率的なｱﾄﾞﾚｽ計算ができるﾃﾞｰﾀ空間ｱ
ALU
比較器
ﾄﾞﾚｽ指定用に3つの16ﾋﾞｯﾄ長間接ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀ用ﾚｼﾞｽﾀとして使われます。これらｱﾄﾞﾚｽ ﾎﾟｲﾝﾀの1つはﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ内の定数表参照用ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀとしても使えます。これら16ﾋﾞｯﾄ長付加
命令復号器
周辺機能部 1
ﾃﾞｰﾀ用
機能ﾚｼﾞｽﾀはX,Y,Zﾚｼﾞｽﾀで、本項内で後述されます。
SRAM
周辺機能部 2
ALUはﾚｼﾞｽﾀ間またはﾚｼﾞｽﾀと定数間の算術及び論理操作を支制御信号線援します。単一ﾚｼﾞｽﾀ操作もALUで実行できます。算術演算操作
EEPROM
後、操作結果についての情報を反映するためにｽﾃｰﾀｽ ﾚｼﾞｽﾀ(S
汎用入出力部
周辺機能部 nREG)が更新されます。
ﾌﾟﾛｸﾞﾗﾑの流れは条件/無条件分岐や呼び出し命令によって提供され、全ｱﾄﾞﾚｽ空間を直接ｱﾄﾞﾚｽ指定できます。AVR命令の多くは
16ﾋﾞｯﾄ語(ﾜｰﾄﾞ)形式ですが、32ﾋﾞｯﾄ命令もあります。
割り込みやｻﾌﾞﾙｰﾁﾝ呼び出し中、戻りｱﾄﾞﾚｽを示すﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC)はｽﾀｯｸに保存されます。ｽﾀｯｸは一般的なﾃﾞｰﾀ用SRAM上に
実際には割り当てられ、従ってｽﾀｯｸ容量は全SRAM容量とSRAM使用量でのみ制限されます。全ての使用者ﾌﾟﾛｸﾞﾗﾑはﾘｾｯﾄ処理ﾙｰ
ﾁﾝで(ｻﾌﾞﾙｰﾁﾝ呼び出しや割り込みが実行される前に)、ｽﾀｯｸ ﾎﾟｲﾝﾀ(SP)を初期化しなければなりません。SPはI/O空間で読み書きｱｸｾｽが可能です。ﾃﾞｰﾀ用SRAMはAVR構造で支援される5つの異なるｱﾄﾞﾚｽ指定種別を通して容易にｱｸｾｽできます。
AVR構造に於けるﾒﾓﾘ空間は全て直線的な普通のﾒﾓﾘ配置です。
柔軟な割り込み部にはI/O空間の各制御ﾚｼﾞｽﾀとｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の特別な全割り込み許可(I)ﾋﾞｯﾄがあります。全ての割り込み
は割り込みﾍﾞｸﾀ表に個別の割り込みﾍﾞｸﾀを持ちます。割り込みには割り込みﾍﾞｸﾀ表の位置に従う優先順があります。下位側割り込
みﾍﾞｸﾀ ｱﾄﾞﾚｽが高い優先順位です。
I/Oﾒﾓﾘ空間は制御ﾚｼﾞｽﾀや他のI/O機能としてCPU周辺機能用の64ｱﾄﾞﾚｽを含みます。I/Oﾒﾓﾘは直接またはﾚｼﾞｽﾀ ﾌｧｲﾙの次のﾃﾞｰﾀ空間位置$20～$5Fとしてｱｸｾｽできます。

4.3. ALU (Arithmetic Logic Unit)
高性能なAVRのALUは32個の全汎用ﾚｼﾞｽﾀとの直結で動作します。汎用ﾚｼﾞｽﾀ間または汎用ﾚｼﾞｽﾀと即値間の演算操作は単一ｸﾛｯｸ周期内で実行されます。ALU操作は算術演算、論理演算、ﾋﾞｯﾄ操作の3つの主な種類に大別されます。符号付きと符号なし両方の乗算と固定小数点形式を支援する乗算器(乗算命令)も提供する構造の実装(製品)もあります。詳細記述については「命令要約」章をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

5

4.4. ｽﾃｰﾀｽ ﾚｼﾞｽﾀ
ｽﾃｰﾀｽ ﾚｼﾞｽﾀは最も直前に実行した演算命令の結果についての情報を含みます。この情報は条件処理を行うためのﾌﾟﾛｸﾞﾗﾑの流れ変更に使えます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀは「命令一式参考書」で詳述したように、全てのALU操作後、更新されることに注目してください。
これは多くの場合でそれ用の比較命令使用の必要をなくし、高速でより少ないｺｰﾄﾞに帰着します。
ｽﾃｰﾀｽ ﾚｼﾞｽﾀは割り込み処理ﾙｰﾁﾝ移行時の保存と割り込みからの復帰時の回復(復帰)が自動的に行われません。これはｿﾌﾄｳｪｱ
によって扱われなければなりません。

4.4.1. SREG - ｽﾃｰﾀｽ ﾚｼﾞｽﾀ (Status Register)
AVRのｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)は次のように定義されます。
ﾋﾞｯﾄ$3F ($5F)
Read/Write
初期値

7

6

5

4

3

2

1

0

I

T

H

S

V

N

Z

C

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

SREG

● ﾋﾞｯﾄ7 - I : 全割り込み許可 (Global Interrupt Enable)

全割り込み許可ﾋﾞｯﾄは割り込みが許可されるために設定(1)されなければなりません。その時の個別割り込み許可制御は独立した制
御ﾚｼﾞｽﾀで行われます。全割り込み許可ﾋﾞｯﾄが解除(0)されると、個別割り込み許可設定に拘らず、どの割り込みも許可されません。I
ﾋﾞｯﾄは割り込みが起こった後にﾊｰﾄﾞｳｪｱによって解除(0)され、後続の割り込みを許可するために、RETI命令によって設定(1)されます。Iﾋﾞｯﾄは「命令一式参考書」で記述されるようにSEIやCLI命令で応用(ﾌﾟﾛｸﾞﾗﾑ)によって設定(1)や解除(0)もできます。
● ﾋﾞｯﾄ6 - T : ﾋﾞｯﾄ変数 (Bit Copy Storage)

ﾋﾞｯﾄ複写命令、BLD(Bit LoaD)とBST(Bit STore)は操作したﾋﾞｯﾄの転送元または転送先として、このTﾋﾞｯﾄを使います。ﾚｼﾞｽﾀ ﾌｧｲﾙのﾚｼﾞｽﾀからのﾋﾞｯﾄはBST命令によってTに複写でき、TのﾋﾞｯﾄはBLD命令によってﾚｼﾞｽﾀ ﾌｧｲﾙのﾚｼﾞｽﾀ内のﾋﾞｯﾄに複写できます。
● ﾋﾞｯﾄ5 - H : ﾊｰﾌｷｬﾘｰ ﾌﾗｸﾞ (Half Carry Flag)

ﾊｰﾌｷｬﾘｰ(H)ﾌﾗｸﾞはいくつかの算術操作でのﾊｰﾌｷｬﾘｰを示します。ﾊｰﾌｷｬﾘｰはBCD演算に有用です。詳細情報については「命令要約」記述をご覧ください。
● ﾋﾞｯﾄ4 - S : 符号 (Sign Bit, S= N Ex-OR V)

Sﾌﾗｸﾞは常に負(N)ﾌﾗｸﾞと2の補数溢れ(V)ﾌﾗｸﾞの排他的論理和です。詳細情報については「命令要約」記述をご覧ください。
● ﾋﾞｯﾄ3 - V : 2の補数溢れﾌﾗｸﾞ (2's Complement Overflow Flag)2の補数溢れ(V)ﾌﾗｸﾞは2の補数算術演算を支援します。詳細情報については「命令要約」記述をご覧ください。
● ﾋﾞｯﾄ2 - N : 負ﾌﾗｸﾞ (Negative Flag)

負(N)ﾌﾗｸﾞは算術及び論理操作での負の結果(MSB=1)を示します。詳細情報については「命令要約」記述をご覧ください。
● ﾋﾞｯﾄ1 - Z : ｾﾞﾛ ﾌﾗｸﾞ (Zero Flag)

ｾﾞﾛ(Z)ﾌﾗｸﾞは算術及び論理操作でのｾﾞﾛ(0)の結果を示します。詳細情報については「命令要約」記述をご覧ください。
● ﾋﾞｯﾄ0 - C : ｷｬﾘｰ ﾌﾗｸﾞ (Carry Flag)

ｷｬﾘｰ(C)ﾌﾗｸﾞは算術及び論理操作でのｷｬﾘｰ(またはﾎﾞﾛｰ)を示します。詳細情報については「命令要約」記述をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

6

4.5. 汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ
このﾚｼﾞｽﾀ ﾌｧｲﾙはAVRの増強したRISC命令群用に最適化されています。必要な効率と柔軟性を達成するために、次の入出力機
構がﾚｼﾞｽﾀ ﾌｧｲﾙによって支援されます。
・ 1つの8ﾋﾞｯﾄ出力ｵﾍﾟﾗﾝﾄﾞと1つの8ﾋﾞｯﾄの結果入力
・ 2つの8ﾋﾞｯﾄ出力ｵﾍﾟﾗﾝﾄﾞと1つの8ﾋﾞｯﾄの結果入力
・ 2つの8ﾋﾞｯﾄ出力ｵﾍﾟﾗﾝﾄﾞと1つの16ﾋﾞｯﾄの結果入力
・ 1つの16ﾋﾞｯﾄ出力ｵﾍﾟﾗﾝﾄﾞと1つの16ﾋﾞｯﾄの結果入力

図4-2. AVR CPU 汎用ﾚｼﾞｽﾀ構成図
70 ｱﾄﾞﾚｽ

$00
$01
$02

～

R0
R1
R2

図4-2.はCPU内の32個の汎用作業ﾚｼﾞｽﾀの構造を示します。
ﾚｼﾞｽﾀ ﾌｧｲﾙを操作する殆どの命令は全てのﾚｼﾞｽﾀに直接ｱｸｾｽ
し、それらの殆どは単一周期命令です。
図4-2.で示されるように各ﾚｼﾞｽﾀは使用者ﾃﾞｰﾀ空間の最初の32位
置へ直接的に配置することで、それらはﾃﾞｰﾀ ﾒﾓﾘ ｱﾄﾞﾚｽも割り当てられます。例え物理的にSRAM位置として実装されていなくても、X,Y,Zﾚｼﾞｽﾀ(ﾎﾟｲﾝﾀ)がﾚｼﾞｽﾀ ﾌｧｲﾙ内のどのﾚｼﾞｽﾀの指示にも設定できるように、このﾒﾓﾘ構成は非常に柔軟なﾚｼﾞｽﾀのｱｸｾｽを提供します。

R13
R14
R15
R16
R17
～

汎用
ﾚｼﾞｽﾀ
ﾌｧｲﾙ

$0D
$0E
$0F
$10
$11

R26
R27
R28
R29
R30
R31

$1A
$1B
$1C
$1D
$1E
$1F

XﾚｼﾞｽﾀYﾚｼﾞｽﾀ
Zﾚｼﾞｽﾀ

下位ﾊﾞｲﾄ
上位ﾊﾞｲﾄ下位ﾊﾞｲﾄ
上位ﾊﾞｲﾄ下位ﾊﾞｲﾄ
上位ﾊﾞｲﾄ4.5.1. Xﾚｼﾞｽﾀ, Yﾚｼﾞｽﾀ, Zﾚｼﾞｽﾀ
R26～R31ﾚｼﾞｽﾀには通常用途の使用にいくつかの追加機能があります。これらのﾚｼﾞｽﾀはﾃﾞｰﾀ空間の間接ｱﾄﾞﾚｽ指定用の16 ﾋﾞｯﾄ ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀです。3つのX,Y,Z間接ｱﾄﾞﾚｽ ﾚｼﾞｽﾀは図4-3.で記載したように定義されます。
種々のｱﾄﾞﾚｽ指定種別で、これらのｱﾄﾞﾚｽ ﾚｼﾞｽﾀは固定変位、自動増加、自動減少としての機能を持ちます(詳細については「命令一式参考書」をご覧ください)。

図4-3. X,Y,Zﾚｼﾞｽﾀ構成図
XH (上位)
15
X ﾚｼﾞｽﾀ 7
R27 ($1B)
YH (上位)
15
Y ﾚｼﾞｽﾀ 7
R29 ($1D)
ZH (上位)
15
Z ﾚｼﾞｽﾀ 7
R31 ($1F)

0 7
0 7
0 7

XL (下位)
R26 ($1A)
YL (下位)
R28 ($1C)
ZL (下位)
R30 ($1E)

0
0
0
0
0
0

4.6. ｽﾀｯｸ ﾎﾟｲﾝﾀ
ｽﾀｯｸは主に一時ﾃﾞｰﾀの保存、局所変数の保存、割り込みとｻﾌﾞﾙｰﾁﾝ呼び出し後の戻りｱﾄﾞﾚｽの保存に使われます。ｽﾀｯｸ ﾎﾟｲﾝﾀ ﾚ
ｼﾞｽﾀは常にこのｽﾀｯｸの先頭(訳注:次に使われるべき位置)を指し示します。ｽﾀｯｸが高位ﾒﾓﾘから低位ﾒﾓﾘへ伸長するように実行されることに注意してください。これはｽﾀｯｸへのPUSH命令はｽﾀｯｸ ﾎﾟｲﾝﾀを減少するという意味です。
ｽﾀｯｸ ﾎﾟｲﾝﾀはｻﾌﾞﾙｰﾁﾝや割り込みのｽﾀｯｸが配置されるﾃﾞｰﾀSRAMのｽﾀｯｸ領域を指し示します。ﾃﾞｰﾀSRAM内のｽﾀｯｸ空間はｻﾌﾞ
ﾙｰﾁﾝ呼び出しの実行や割り込みの許可の何れにも先立って、ﾌﾟﾛｸﾞﾗﾑによって定義されなければなりません。ｽﾀｯｸ ﾎﾟｲﾝﾀは$0060
以上を指示するように設定されなければなりません(なるべくなら定義名RAMEND)。ｽﾀｯｸ ﾎﾟｲﾝﾀはPUSH命令でﾃﾞｰﾀがｽﾀｯｸに格納されると-1され、ｻﾌﾞﾙｰﾁﾝ呼び出しや割り込みで戻りｱﾄﾞﾚｽがｽﾀｯｸに格納されると-2されます。ｽﾀｯｸ ﾎﾟｲﾝﾀはPOP命令でﾃﾞｰﾀがｽﾀｯｸから引き出されると+1され、ｻﾌﾞﾙｰﾁﾝからの復帰(RET)命令や割り込みからの復帰(RETI)命令でｱﾄﾞﾚｽがｽﾀｯｸから引き出されると+2されます。
AVRのｽﾀｯｸ ﾎﾟｲﾝﾀはI/O空間内の2つの8ﾋﾞｯﾄ ﾚｼﾞｽﾀとして実装されます。実際に使われるﾋﾞｯﾄ数は(そのﾃﾞﾊﾞｲｽ)実装に依存します。SPLだけが必要とされる程に小さいAVR構造の実装(ﾃﾞﾊﾞｲｽ)のﾃﾞｰﾀ空間もあることに注意してください。その場合、SPHﾚｼﾞｽﾀは存在しません。

4.6.1. SPH,SPL (SP) - ｽﾀｯｸ ﾎﾟｲﾝﾀ (Stack Pointer)
ﾋﾞｯﾄ$3E ($5E)
Read/Write
初期値
ﾋﾞｯﾄ$3D ($5D)
Read/Write
初期値

15

14

13

12

11

10

9

8

-

-

-

-

-

-

(SP9)

(SP8)

R
RAMENDR
RAMENDR
RAMENDR
RAMENDR
RAMENDR
RAMEND

R/W
RAMEND

R/W
RAMEND

7

6

5

4

3

2

1

0

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

R/W
RAMEND

SPH

SPL(訳補) 内蔵SRAMはATtiny25が128ﾊﾞｲﾄ($0060～$00DF)、ATtiny45が256ﾊﾞｲﾄ($0060～$015F)、ATtiny85が512ﾊﾞｲﾄ($0060～$025F)です。従って、ATtiny45ではSPHのSP9が、ATtiny25ではSP9,8が利用できません。RAMENDはATtiny25が$00DF(0000 0000 1101 1111)、ATtiny45が$015F(0000 0001 0101 1111)、ATtiny85が$025F(0000 0010 0101 1111)になります。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]7

4.7. 命令実行ﾀｲﾐﾝｸﾞ
本項は命令実行の一般的なｱｸｾｽ ﾀｲﾐﾝｸﾞの概念を記述します。AVR CPUはﾁｯﾌﾟ(ﾃﾞﾊﾞｲｽ)用に選択したｸﾛｯｸ元から直接的に生成したCPUｸﾛｯｸ(clkCPU)によって駆動されます。内部ｸﾛｯｸ分周は使われません。
図4-4.はﾊｰﾊﾞｰﾄﾞ構造と高速ｱｸｾｽ ﾚｼﾞｽﾀ
ﾌｧｲﾙの概念によって可能とされる並列の命令取得と命令実行を示します。これは機能対費用、機能対ｸﾛｯｸ、機能対電源部に関する好結果と対応するMHzあたり1MIPSを達成するための基本的なﾊﾟｲﾌﾟﾗｲﾝの概念です。
図4-5.はﾚｼﾞｽﾀ ﾌｧｲﾙに対する内部ﾀｲﾐﾝｸﾞの概念を示します。単一ｸﾛｯｸ周期で2つのﾚｼﾞｽﾀ ｵﾍﾟﾗﾝﾄﾞを使うALU操作が実行され、その結果が転送先ﾚｼﾞｽﾀへ書き戻されます。

図4-4. 命令の取得と実行の並列動作
T1

T2

T3

T4

T1

T2

T3

T4

CPUｸﾛｯｸ clkCPU
初回命令取得
初回命令実行/第2命令取得
第2命令実行/第3命令取得
第3命令実行/第4命令取得
図4-5. 1周期ALU命令
CPUｸﾛｯｸ clkCPU
総合実行時間ﾚｼﾞｽﾀ ｵﾍﾟﾗﾝﾄﾞ取得
ALU演算実行
結果書き戻し4.8. ﾘｾｯﾄと割り込みの扱い
AVRは多くの異なる割り込み元を提供します。これらの割り込みと独立したﾘｾｯﾄ ﾍﾞｸﾀ各々はﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間内に独立したﾌﾟﾛｸﾞﾗﾑ
ﾍﾞｸﾀを持ちます。全ての割り込みは割り込みを許可するために、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと共に論理1が書かれなければならない個別の許可ﾋﾞｯﾄを割り当てられます。
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間の最下位ｱﾄﾞﾚｽは既定によってﾘｾｯﾄと割り込みﾍﾞｸﾀとして定義されます。ﾍﾞｸﾀの完全な一覧は32頁の「割り込み」
で示されます。この一覧は各種割り込みの優先順位も決めます。下位側ｱﾄﾞﾚｽがより高い優先順位です。ﾘｾｯﾄが最高優先順位で、次が外部割り込み要求0(INT0)です。
割り込みが起こると全割り込み許可(I)ﾋﾞｯﾄが解除(0)され、全ての割り込みは禁止されます。使用者ｿﾌﾄｳｪｱは多重割り込みを許可するため、全割り込み許可(I)ﾋﾞｯﾄへ論理1を書けます。その後全ての許可した割り込みが現在の割り込みﾙｰﾁﾝで割り込めます。全割り込み許可(I)ﾋﾞｯﾄは割り込みからの復帰(RETI)命令が実行されると、自動的に設定(1)されます。
根本的に2つの割り込み形式があります。1つ目の形式は割り込み要求ﾌﾗｸﾞを設定(I)する事象によって起動されます。これらの割り込
みでは割り込み処理ﾙｰﾁﾝを実行するために、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀは対応する現実の割り込みﾍﾞｸﾀを指示し、ﾊｰﾄﾞｳｪｱが対応する割り込
み要求ﾌﾗｸﾞを解除(0)します。割り込み要求ﾌﾗｸﾞは解除(0)されるべきﾌﾗｸﾞのﾋﾞｯﾄ位置へ論理1を書くことによっても解除(0)できます。
対応する割り込み許可ﾋﾞｯﾄが解除(0)されている間に割り込み条件が起こると、割り込み要求ﾌﾗｸﾞが設定(1)され、割り込みが許可されるか、またはこのﾌﾗｸﾞがｿﾌﾄｳｪｱによって解除(0)されるまで記憶(保持)されます。同様に、全割り込み許可(I)ﾋﾞｯﾄが解除(0)されている間に1つまたはより多くの割り込み条件が起こると、対応する割り込み要求ﾌﾗｸﾞが設定(1)されて全割り込み許可(I)ﾋﾞｯﾄが設定(1)されるまで記憶され、その(I=1)後で優先順に従って実行されます。
2つ目の割り込み形式は割り込み条件が存在する限り起動し(続け)ます。これらの割り込みは必ずしも割り込み要求ﾌﾗｸﾞを持っているとは限りません。割り込みが許可される前に割り込み条件が消滅すると、この割り込みは起動されません。
AVRが割り込みから抜け出すと常に主ﾌﾟﾛｸﾞﾗﾑへ戻り、何れかの保留割り込みが扱われる前に1つ以上の命令を実行します。
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)は割り込みﾙｰﾁﾝへ移行時の保存も、復帰時の再設定も自動的に行われないことに注意してください。これはｿﾌﾄｳｪｱによって扱われなければなりません。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

8

割り込みを禁止するためにCLI命令を使うと、割り込みは直ちに禁止されます。CLI命令と同時に割り込みが起こっても、CLI命令後に割り込みは実行されません。次例は時間制限EEPROM書き込み手順中に割り込みを無効とするために、これがどう使えるかを示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
IN
R16,SREG
CLI
SBI
EECR,EEMPE
SBIEECR,EEPE
OUT
SREG,R16
C言語ﾌﾟﾛｸﾞﾗﾑ例
char cSREG;cSREG = SREG;_CLI() ;EECR |= (1<<EEMPE);
EECR |= (1<<EEPE);
SREG = cSREG:;ｽﾃｰﾀｽ ﾚｼﾞｽﾀを保存;EEPROM書き込み手順中割り込み禁止;EEPROM主書き込み許可;EEPROM書き込み開始;ｽﾃｰﾀｽ ﾚｼﾞｽﾀを復帰/* ｽﾃｰﾀｽ ﾚｼﾞｽﾀ保存変数定義 *//* ｽﾃｰﾀｽ ﾚｼﾞｽﾀを保存 *//* EEPROM書き込み手順中割り込み禁止 *//* EEPROM主書き込み許可 *//* EEPROM書き込み開始 *//* ｽﾃｰﾀｽ ﾚｼﾞｽﾀを復帰 */割り込みを許可するためにSEI命令を使うと、次例で示されるようにどの保留割り込みにも先立ってSEI命令の次の命令が実行されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SEI
SLEEP
C言語ﾌﾟﾛｸﾞﾗﾑ例_SEI() ;_SLEEP();;全割り込み許可;休止形態移行 (割り込み待ち)/* 全割り込み許可 *//* 休止形態移行 (割り込み待ち) */注: SLEEP命令までは割り込み禁止、保留割り込み実行前に休止形態へ移行します。

4.8.1. 割り込み応答時間
許可した全てのAVR割り込みに対する割り込み実行応答は最小4ｸﾛｯｸ周期です。4ｸﾛｯｸ周期後、実際の割り込み処理ﾙｰﾁﾝに対するﾌﾟﾛｸﾞﾗﾑ ﾍﾞｸﾀ ｱﾄﾞﾚｽが実行されます。この4ｸﾛｯｸ周期時間中にﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC)がｽﾀｯｸ上に保存(ﾌﾟｯｼｭ)されます。このﾍﾞｸﾀは標準的に割り込み処理ﾙｰﾁﾝへの無条件分岐で、この分岐は2ｸﾛｯｸ周期(訳注:原文は3(JMP命令=3を想定、実際はRJMP命令=2))要します。複数周期命令実行中に割り込みが起こると、その割り込みが扱われる前に、この命令が完了されます。MCUが休止形態の時に割り込みが起こると、割り込み実行応答時間は4ｸﾛｯｸ周期増やされます。この増加は選択した休止形態からの起動時間に加えてです。
割り込み処理ﾙｰﾁﾝからの復帰は4ｸﾛｯｸ周期要します。これらの4ｸﾛｯｸ周期中、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC:2ﾊﾞｲﾄ)がｽﾀｯｸから取り戻され(ﾎﾟｯﾌﾟ)、ｽﾀｯｸ ﾎﾟｲﾝﾀは増加され(+2)、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

95. AVR ﾒﾓﾘ
この項はATtiny25/45/85の各種ﾒﾓﾘを記述します。AVR構造にはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間とﾃﾞｰﾀ ﾒﾓﾘ空間の2つの主なﾒﾓﾘ空間があります。加えてATtiny25/45/85はﾃﾞｰﾀ保存用EEPROMﾒﾓﾘが特徴です。3つのﾒﾓﾘ空間全ては一般的な直線的ｱﾄﾞﾚｽです。

5.1. 実装書き換え可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ
ATtiny25/45/85はﾌﾟﾛｸﾞﾗﾑ保存用に実装書き換え可能な2/4/8Kﾊﾞｲﾄのﾌﾗｯｼｭ ﾒﾓﾘをﾁｯﾌﾟ上に含みます。全てのAVR命令が16または32ﾋﾞｯﾄ幅のため、このﾌﾗｯｼｭ ﾒﾓﾘは
1/2/4K×16ﾋﾞｯﾄとして構成されます。
ﾌﾗｯｼｭ ﾒﾓﾘは最低10,000回の消去/書き込み回数の耐久性があります。ATtiny25/45/
85のﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC)は10/11/12ﾋﾞｯﾄ幅で、従って1/2/4Kﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ位置のｱﾄﾞﾚｽ指定です。97頁の「ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」はSPIﾋﾟﾝを使うﾌﾗｯｼｭ ﾒﾓﾘの直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞの詳細な記述を含みます。
定数表は全てのﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ ｱﾄﾞﾚｽ空間に配置できます。(LPM命令記述参照)
命令の取得と実行のﾀｲﾐﾝｸﾞ図は8頁の「命令実行ﾀｲﾐﾝｸﾞ」で示されます。

図5-1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ配置図$0000
ﾌﾟﾛｸﾞﾗﾑ用
ﾌﾗｯｼｭ ﾒﾓﾘ
1/2/4K×16$03FF/$07FF/$0FFF

5.2. ﾃﾞｰﾀ用SRAM ﾒﾓﾘ
図5-2.はATtiny25/45/85のSRAMﾒﾓﾘ構成方法を示します。
図5-2. ﾃﾞｰﾀ ﾒﾓﾘ配置図
下位224/352/608ﾃﾞｰﾀ ﾒﾓﾘ位置はﾚｼﾞｽﾀ ﾌｧｲﾙ、I/Oﾒﾓﾘ、ﾃﾞｰﾀ用内
ｱﾄﾞﾚｽ
蔵SRAMに充てます。先頭の32位置はﾚｼﾞｽﾀ ﾌｧｲﾙ、次の64位置は標
R0$0000
ﾚｼﾞｽﾀ ﾌｧｲﾙ～～
準I/Oﾒﾓﾘ、そして最後の128/256/512位置はﾃﾞｰﾀ用内蔵SRAMに充(32×8)
R31
$001F
てます。
$00
$0020
I/Oﾚｼﾞｽﾀ
～～
直接、間接、変位付き間接、事前減少付き間接、事後増加付き間接の(64×8)$3F$005F
5つの異なるｱﾄﾞﾚｽ指定種別でﾃﾞｰﾀ ﾒﾓﾘ(空間)を網羅します。ﾚｼﾞｽﾀ
$0060
$0060
内蔵SRAM
ﾌｧｲﾙ内のﾚｼﾞｽﾀR26～R31は間接ｱﾄﾞﾚｽ指定ﾎﾟｲﾝﾀ用ﾚｼﾞｽﾀが特徴で～～(128/256/512×8)$00DF/$015F/$025F$0xxF
す。
直接ｱﾄﾞﾚｽ指定はﾃﾞｰﾀ空間全体に届きます。
注: 赤字はI/Oｱﾄﾞﾚｽ
変位付き間接動作はYまたはZﾚｼﾞｽﾀで与えられる基準ｱﾄﾞﾚｽからの63
ｱﾄﾞﾚｽ位置に届きます。
自動の事前減少付きと事後増加付きのﾚｼﾞｽﾀ間接ｱﾄﾞﾚｽ指定動作を使う時に(使われる)X,Y,Zｱﾄﾞﾚｽ ﾚｼﾞｽﾀは減少(-1)または増加(+1)されます。
ATtiny25/45/85の32個の汎用ﾚｼﾞｽﾀ、64個のI/Oﾚｼﾞｽﾀ、128/256/512ﾊﾞｲﾄのﾃﾞｰﾀ用内蔵SRAMは、これら全てのｱﾄﾞﾚｽ指定種別を通して全部ｱｸｾｽできます。ﾚｼﾞｽﾀ ﾌｧｲﾙは7頁の「汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ」で記述されます。

5.2.1. ﾃﾞｰﾀ ﾒﾓﾘ ｱｸｾｽ ﾀｲﾐﾝｸﾞ
本節は内部ﾒﾓﾘ ｱｸｾｽに対する一般的なｱｸｾｽ ﾀｲﾐﾝｸﾞの概念を記述します。ﾃﾞｰﾀ用内蔵SRAMｱｸｾｽは図5-3.で記載されるように2clkCPU周期で実行されます。
(訳注) 内蔵SRAMのｱｸｾｽを含む代表的な命令はT1,T2の2周期で実行され、T1で対象ｱﾄﾞﾚｽを取得/(算出)/
確定し、T2で実際のｱｸｾｽが行われます。後続する(T1)は次の命令のT1です。

図5-3. ﾃﾞｰﾀ用内蔵SRAMｱｸｾｽ周期
T1

T2

直前のｱﾄﾞﾚｽ

有効ｱﾄﾞﾚｽ(T1)

CPUｸﾛｯｸ clkCPU
ｱﾄﾞﾚｽ
書き込み
読み込み

ﾃﾞｰﾀ
WR
ﾃﾞｰﾀ
RD

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

10

5.3. ﾃﾞｰﾀ用EEPROMﾒﾓﾘ
ATtiny25/45/85は128/256/512ﾊﾞｲﾄのﾃﾞｰﾀ用EEPROMを含みます。それは単一ﾊﾞｲﾄが読み書きできる分離したﾃﾞｰﾀ空間として構成されます。EEPROMは最低100,000回の消去/書き込み回数の耐久性があります。CPUとEEPROM間のｱｸｾｽは以降のEEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ、EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ、EEPROM制御ﾚｼﾞｽﾀで詳細に記述されます。(ISPの)詳細については100頁の「直列ﾌﾟﾛｸﾞﾗﾐﾝ
ｸﾞ」をご覧ください。

5.3.1. EEPROMｱｸｾｽ
EEPROMｱｸｾｽ ﾚｼﾞｽﾀはI/O空間でｱｸｾｽ可能です。
EEPROMの消去/書き込み(訳注:原文はｱｸｾｽ)時間は表5-1.で与えられます。(書き込みは)自己ﾀｲﾐﾝｸﾞ機能ですが、使用者ｿﾌﾄｳｪｱ
は次ﾊﾞｲﾄが書ける時を検知してください。使用者ｺｰﾄﾞがEEPROMに書く命令を含む場合、いくつかの予防処置が取られなければなりません。厳重に濾波した電源では電源の投入/切断でVCCが緩やかに上昇または下降しそうです。これはﾃﾞﾊﾞｲｽが何周期かの時間、使われるｸﾛｯｸ周波数に於いて最小として示されるより低い電圧で走行する原因になります。これらの状態で問題を避ける方法の詳細については12頁の「EEPROMﾃﾞｰﾀ化けの防止」をご覧ください。
予期せぬEEPROM書き込みを防止するため特別な書き込み手順に従わなければなりません。この詳細についてはEEPROM制御ﾚ
ｼﾞｽﾀの説明と以下の「非分離ﾊﾞｲﾄ書き込み」と「分離ﾊﾞｲﾄ書き込み」を参照してください。
EEPROMが読まれると、CPUは次の命令が実行される前に4ｸﾛｯｸ周期停止されます。EEPROMが書かれると、CPUは次の命令が実行される前に2ｸﾛｯｸ周期停止されます。

5.3.2. 非分離ﾊﾞｲﾄ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
非分離ﾊﾞｲﾄ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞの使用は最も簡単な動作です。EEPROMにﾊﾞｲﾄを書くとき、使用者はEEARにｱﾄﾞﾚｽ、EEDRにﾃﾞｰﾀを書かなければなりません。EEPMnﾋﾞｯﾄが'00'ならば、(EEMPEが1を書かれる後の4周期内の)EEPEの1書き込みは消去/書き込み動作を起動します。消去と書き込みの両周期は1操作で行われ、総ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間は表5-1.で与えられます。EEPEﾋﾞｯﾄは消去と書き込み動作が完了されるまで設定(1)に留まります。ﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作中、他のどのEEPROM操作の実行も不可能です。

5.3.3. 分離ﾊﾞｲﾄ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
2つの異なる操作として消去と書き込み周期を分離することが可能です。これは或る時間制限(代表的には電源電圧不足)に対してｼｽﾃﾑが短いｱｸｾｽ時間を必要とする場合に有用かもしれません。この方法の優位性を得るため、書かれるべき位置が書き込み操作
前に消去されてしまっていることが必要とされます。しかし、消去と書き込みが分離されるため、時間が重大な操作の実行をｼｽﾃﾑが許す時(代表的には電源投入後)に消去操作を行うことが可能です。

5.3.4. 消去
ﾊﾞｲﾄを消去するにはｱﾄﾞﾚｽがEEARに書かれなければなりません。EEPMnﾋﾞｯﾄが'01'なら、(EEMPEが1を書かれた後の4周期内の)
EEPEの1書き込みは消去動作だけを起動します(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間は表5-1.で与えられます)。EEPEﾋﾞｯﾄは消去動作が完了されるまで
設定(1)に留まります。ﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作中、他のどのEEPROM操作の実行も不可能です。

5.3.5. 書き込み(特定)位置を書くため、使用者はEEARにｱﾄﾞﾚｽ、EEDRにﾃﾞｰﾀを書かなければなりません。EEPMnﾋﾞｯﾄが'10'なら、(EEMPEが1を書かれる後の4周期内の)EEPEの1書き込みは書き込み動作だけを起動します(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間は表5-1.で与えられます)。EEPEﾋﾞｯﾄは書き込み動作が完了されるまで設定(1)に留まります。書かれるべき位置が書き込み前に消去されてしまっていなければ、元の格納ﾃﾞｰﾀは失ったとみなされなければなりません。ﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作中、他のどのEEPROM操作の実行も不可能です。
EEPROMｱｸｾｽの時間に校正済み内蔵RC発振器が使われます。発振器周波数が21頁の「OSCCAL - 発振校正ﾚｼﾞｽﾀ」で記述した
必要条件内であることを確かめてください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

11

次のｺｰﾄﾞ例はｱｾﾝﾌﾞﾘ言語とC言語でのEEPROM消去、書き込み、または非分離書き込み関数を示します。本例は(例えば全割り込み禁止によって)割り込みが制御され、これらの関数実行中に割り込みが起きない前提です。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
EEPROM_WR: SBIC
EECR,EEPE;EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了ならばｽｷｯﾌﾟ
RJMP
EEPROM_WR;以前のEEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了まで待機;
LDI
R19,(0<<EEPM1)|(0<<EEPM0);ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別値取得(本例は非分離)
OUT
EECR,R19;対応ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別設定
OUT
EEARH,R18;EEPROMｱﾄﾞﾚｽ上位ﾊﾞｲﾄ設定
OUT
EEARL,R17;EEPROMｱﾄﾞﾚｽ下位ﾊﾞｲﾄ設定
OUT
EEDR,R16;EEPROM書き込み値を設定
SBI
EECR,EEMPE;EEPROM主ﾌﾟﾛｸﾞﾗﾑ許可ﾋﾞｯﾄ設定
SBI
EECR,EEPE;EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ開始(ﾌﾟﾛｸﾞﾗﾑ許可ﾋﾞｯﾄ設定)
RET;呼び出し元へ復帰
C言語ﾌﾟﾛｸﾞﾗﾑ例
void EEPROM_write(unsigned int uiAddress, unsigned char ucData){
while(EECR & (1<<EEPE));/* 以前のEEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了まで待機 */EECR = (0<<EEPM1)|(0<<EEPM0);/* 対応ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別設定 */EEAR = uiAddress;/* EEPROMｱﾄﾞﾚｽ設定 */EEDR = ucData;/* EEPROM書き込み値を設定 */EECR |= (1<<EEMPE);/* EEPROM主ﾌﾟﾛｸﾞﾗﾑ許可 */EECR |= (1<<EEPE);/* EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ開始 */}次のｺｰﾄﾞ例はｱｾﾝﾌﾞﾘ言語とC言語でのEEPROM読み込み関数を示します。本例は割り込みが制御され、これらの関数実行中に割り込みが起きない前提です。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
EEPROM_RD: SBIC
EECR,EEPERJMP
EEPROM_RD;
OUT
EEARH,R18
OUT
EEARL,R17
SBI
EECR,EERE
IN
R16,EEDRRET
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned char EEPROM_read(unsigned int uiAddress){
while(EECR & (1<<EEPE));EEAR = uiAddress;
EECR |= (1<<EERE);
return EEDR;};EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了ならばｽｷｯﾌﾟ;以前のEEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了まで待機;EEPROMｱﾄﾞﾚｽ上位ﾊﾞｲﾄ設定;EEPROMｱﾄﾞﾚｽ下位ﾊﾞｲﾄ設定;EEPROM読み出し開始(読み込み許可ﾋﾞｯﾄ設定);EEPROM読み出し値を取得;呼び出し元へ復帰/* 以前のEEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了まで待機 *//* EEPROMｱﾄﾞﾚｽ設定 *//* EEPROM読み出し開始 *//* EEPROM読み出し値を取得,復帰 */5.3.6. EEPROMﾃﾞｰﾀ化けの防止
低VCCの期間中、正しく動作するための供給電圧がCPUとEEPROMに対して低すぎるためにEEPROMﾃﾞｰﾀが化け得ます。これらの問題はEEPROMを使う基板段階の装置と同じで、同じ設計上の解決策が適用されるべきです。
EEPROMﾃﾞｰﾀ化けは電圧が低すぎる時の2つの状態によって起こされ得ます。1つ目として、EEPROMへの通常の書き込み手順は正しく動作するための最低電圧が必要です。2つ目として、供給電圧が低すぎると、CPU自身が命令を間違って実行し得ます。
EEPROMﾃﾞｰﾀ化けは次の推奨設計によって容易に避けられます。
不充分な供給電源電圧の期間中、AVRのRESETを活性(Low)に保ってください。これは内蔵低電圧検出器(BOD)を許可することによって行えます。内蔵BODの検出電圧が必要とした検出電圧と一致しない場合、外部低VCCﾘｾｯﾄ保護回路が使えます。書き込み
動作実行中にﾘｾｯﾄが起こると、この書き込み操作は供給電源電圧が充分ならば(継続)完了されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

12

5.4. I/O ﾒﾓﾘ (ﾚｼﾞｽﾀ)
ATtiny25/45/85のI/O空間定義は132頁の「ﾚｼﾞｽﾀ要約」で示されます。
ATtiny25/45/85の全てのI/Oと周辺機能はI/O空間に配置されます。全てのI/O位置はI/O空間と32個の汎用作業ﾚｼﾞｽﾀ間のﾃﾞｰﾀ転送を行うLD/LDS/LDD命令とST/STS/STD命令によってｱｸｾｽされます。ｱﾄﾞﾚｽ範囲$00～$1F内のI/OﾚｼﾞｽﾀはSBI命令とCBI命令の使用で直接的にﾋﾞｯﾄ ｱｸｾｽ可能です。これらのﾚｼﾞｽﾀではSBISとSBIC命令の使用によって単一ﾋﾞｯﾄ値が検査できます。より多くの
詳細については「命令要約」章を参照してください。I/O指定命令INとOUTを使う時はI/Oｱﾄﾞﾚｽ$00～$3Fが使われなければなりません。LD命令とST命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時はこれらのｱﾄﾞﾚｽに$20が加算されなければなりません。
将来のﾃﾞﾊﾞｲｽとの共通性を保つため、ｱｸｾｽされる場合、予約ﾋﾞｯﾄは0が書かれるべきです。予約済みI/Oﾒﾓﾘ ｱﾄﾞﾚｽは決して書かれるべきではありません。
状態ﾌﾗｸﾞのいくつかはそれらへ論理1を書くことによって解除(0)されます。CBIとSBI命令は指定ﾋﾞｯﾄだけを操作し、従って状態ﾌﾗｸﾞのようなものを含むﾚｼﾞｽﾀに使えることに注意してください。CBIとSBI命令は(I/Oｱﾄﾞﾚｽ)$00～$1Fのﾚｼﾞｽﾀでのみ動作します。
I/Oと周辺制御ﾚｼﾞｽﾀは以降の項で説明されます。

5.4.1. 汎用I/Oﾚｼﾞｽﾀ (訳注:共通性から本項追加)
ATtiny25/45/85は3つの汎用I/Oﾚｼﾞｽﾀを含みます。これらのﾚｼﾞｽﾀはどの情報の格納にも使えき、特に全体変数や状態ﾌﾗｸﾞの格納に有用です。(I/O)ｱﾄﾞﾚｽ範囲$00～$1Fの汎用I/OﾚｼﾞｽﾀはSBI,CBI,SBIS,SBIC命令の使用で直接ﾋﾞｯﾄ ｱｸｾｽが可能です。

5.5. ﾒﾓﾘ関係ﾚｼﾞｽﾀ
5.5.1. EEARH,EEARL (EEAR) - EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ (EEPROM Address Register)ﾋﾞｯﾄ$1F ($3F)
Read/Write
初期値ﾋﾞｯﾄ$1E ($3E)
Read/Write
初期値

15

14

13

12

11

10

9

8

-

-

-

-

-

-

-

(EEAR8)

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R/W
不定

7

6

5

4

3

2

1

0

(EEAR7)

EEAR6

EEAR5

EEAR4

EEAR3

EEAR2

EEAR1

EEAR0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

EEARH

EEARL

● ﾋﾞｯﾄ15～9 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ8～0 - EEAR8～0 : EEPROMｱﾄﾞﾚｽ (EEPROM Address)

EEAR8はATtiny85、EEAR7はATtiny45、EEAR6はATtiny25でのEEPROMの各々最上位ｱﾄﾞﾚｽ ﾋﾞｯﾄです。より小さなEEPROMを持つ
ﾃﾞﾊﾞｲｽでのこれらのﾋﾞｯﾄは予約され、常に0を読みます。
EEAR5～0はEEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀの下位側ﾋﾞｯﾄです。EEPROMﾃﾞｰﾀ ﾊﾞｲﾄは0～127/255/511の範囲に直線的に配置されます。
EEARの初期値は不定で、従ってEEPROMが入出力される前に正しい値が書かれなければなりません。

5.5.2. EEDR - EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ (EEPROM Data Register)ﾋﾞｯﾄ$1D ($3D)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

EEDR

R/W
0

● ﾋﾞｯﾄ7～0 - EEDR7～0 : EEPROMﾃﾞｰﾀ (EEPROM Data)

EEPROM書き込み操作に対してEEDRはEEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(EEAR)で与えたｱﾄﾞﾚｽのEEPROMへ書かれるべきﾃﾞｰﾀを含みます。
EEPROM読み込み操作に対してEEDRはEEARで与えたｱﾄﾞﾚｽのEEPROMから読み出したﾃﾞｰﾀを含みます。

5.5.3. EECR - EEPROM制御ﾚｼﾞｽﾀ (EEPROM Control Register)ﾋﾞｯﾄ$1C ($3C)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

EEPM1

EEPM0

EERIE

EEMPE

EEPE

EERE

R
0

R
0

R/W
不定

R/W
不定

R/W
0

R/W
0

R/W
不定

R/W
0

EECR

● ﾋﾞｯﾄ7 - Res : 予約 (Reserved)

このﾋﾞｯﾄは将来の使用に予約されており、常に0として読まれます。将来のAVRﾃﾞﾊﾞｲｽとの共通性のため、常に本ﾋﾞｯﾄへ0を書いてください。読み込み後、本ﾋﾞｯﾄを遮蔽排除してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]13

● ﾋﾞｯﾄ6 - Res : 予約 (Reserved)

このﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ5,4 - EEPM1,0 : EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別 (EEPROM Programing Mode Bits)

EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別ﾋﾞｯﾄ設定はEEPROMﾌﾟﾛ 表5-1. EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別
ｸﾞﾗﾐﾝｸﾞ許可(EEPE)書き込み時にどのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ EEPM1 EEPM0 ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間
動作
動作が起動されるかを定義します。1つの非分離
0
0
3.4ms
1操作での消去と書き込み(非分離操作)
操作(旧値消去と新値書き込み)、または2つの異な
0
1
1.8ms
消去のみ
る操作として消去と書き込み操作を分離してﾃﾞｰﾀ
1
0
1.8ms
書き込みのみをﾌﾟﾛｸﾞﾗﾑする(書く)ことが可能です。各動作に対するﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間は表5-1.で示されます。EEPE
1
1
将来使用に予約が設定(1)されている間はEEPMnへのどの書き込みも無視されます。ﾘｾｯﾄ中、EEPMnﾋﾞｯﾄはEEPROMがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ作業中を除いて'00'にﾘｾｯﾄされます。
● ﾋﾞｯﾄ3 - EERIE : EEPROM操作可割り込み許可 (EEPROM Ready Interrupt Enable)

EERIEの1書き込みはｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されているなら、EEPROM操作可割り込みを許可します。EERIEの0書き込みは、この割り込みを禁止します。EEPROM操作可割り込みは不揮発性ﾒﾓﾘ(ﾌﾗｯｼｭ ﾒﾓﾘとEEPROM)がﾌﾟﾛｸﾞﾗﾐ
ﾝｸﾞの準備可ならば継続する割り込みを発生します。
● ﾋﾞｯﾄ2 - EEMPE : EEPROM主ﾌﾟﾛｸﾞﾗﾑ許可 (EEPROM Master Program Enable)

EEMPEﾋﾞｯﾄはEEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄの1書き込みが有効か無効かどちらかを決めます。
EEMPEが設定(1)されると、4ｸﾛｯｸ周期内のEEPE設定(1)は選択したｱﾄﾞﾚｽのEEPROMをﾌﾟﾛｸﾞﾗﾑします。EEMPEが0なら、EEPE設定(1)は無効です。EEMPEがｿﾌﾄｳｪｱによって設定(1)されてしまうと、4ｸﾛｯｸ周期後にﾊｰﾄﾞｳｪｱがこのﾋﾞｯﾄを0に解除します。
● ﾋﾞｯﾄ1 - EEPE : EEPROMﾌﾟﾛｸﾞﾗﾑ許可 (EEPROM Program Enable)

EEPROMﾌﾟﾛｸﾞﾗﾑ許可信号(EEPE)はEEPROMへのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可信号です。EEPEが(1を)書かれると、EEPROMはEEPMnﾋﾞｯﾄ設定に従ってﾌﾟﾛｸﾞﾗﾑされます。論理1がEEPEへ書かれる前にEEPROM主ﾌﾟﾛｸﾞﾗﾑ許可(EEMPE)ﾋﾞｯﾄは1を書かれねばならず、さもなけ
ればEEPROM書き込み(消去)は行われません。書き込み(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ)ｱｸｾｽ時間が経過されると、EEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄ
はﾊｰﾄﾞｳｪｱによって解除(0)されます。EEPEが設定(1)されてしまうと、次の命令が実行される前にCPUは2周期停止されます。
● ﾋﾞｯﾄ0 - EERE : EEPROM読み込み許可 (EEPROM Read Enable)

EEPROM読み込み許可信号(EERE)はEEPROMへの読み込みｽﾄﾛｰﾌﾞです。EEARに正しいｱﾄﾞﾚｽが設定されると、EEPROM読み出しを起動するためにEEREﾋﾞｯﾄは1を書かれなければなりません。EEPROM読み出しｱｸｾｽは(その)1命令で行われ、要求したﾃﾞｰﾀは直ちに利用できます。EEPROMが読まれるとき、次の命令が実行される前にCPUは4周期停止されます。使用者は読み込み操作を始める前にEEPEﾋﾞｯﾄをﾎﾟｰﾘﾝｸﾞすべきです。書き込み(ﾌﾟﾛｸﾞﾗﾑ)操作実行中の場合、EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(EEAR)の変更もEEPRO
M読み込みもできません。

5.5.4. GPIOR2 - 汎用I/Oﾚｼﾞｽﾀ2 (General Purpose I/O Register 2)
ﾋﾞｯﾄ$13 ($33)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

0

GPIOR25.5.5. GPIOR1 - 汎用I/Oﾚｼﾞｽﾀ1 (General Purpose I/O Register 1)
ﾋﾞｯﾄ$12 ($32)
Read/Write
初期値

7

6

5

4

3

2

1

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

2

1

(MSB)
R/W
0

(LSB)

GPIOR1

R/W
05.5.6. GPIOR0 - 汎用I/Oﾚｼﾞｽﾀ0 (General Purpose I/O Register 0)
ﾋﾞｯﾄ$11 ($31)
Read/Write
初期値

7

6

5

4

3

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

GPIOR0R/W
0ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

14

6. ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択
6.1. ｸﾛｯｸ系統とその配給
図6-1.はAVR内の主要なｸﾛｯｸ系統とその配給を示します。全てのｸﾛｯｸが与えられた時間有効である必要はありません。消費電力低減のため、23頁の「電力管理と休止形態」で記述される各種休止形態の使用によって、使われていない部分のｸﾛｯｸが停止できます。ｸﾛｯｸ系統は以下で詳述されます。
図6-1. ｸﾛｯｸの配給
A/D変換器CPUｺｱ

clkADCSRAM

clkCPU

AVRｸﾛｯｸ制御回路
ｸﾛｯｸ源

ﾘｾｯﾄ回路ｼｽﾃﾑ ｸﾛｯｸ前置分周器
ｸﾛｯｸ多重器

外部ｸﾛｯｸ信号

ｸﾘｽﾀﾙ用発振器

一般入出力

clkI/O

ﾌﾗｯｼｭ ﾒﾓﾘ・EEPROM

clkFLASH

ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ

ｳｫｯﾁﾄﾞｯｸﾞ
ｳｫｯﾁﾄﾞｯｸﾞ用
ｸﾛｯｸ
内蔵RC発振器

低周波数ｸﾘｽﾀﾙ用発振器

clkPCK
PLL発振器

校正付き内蔵RC発振器

6.1.1. CPU ｸﾛｯｸ - clkCPU
CPUｸﾛｯｸはAVRｺｱの動作と関係する系統部分に配給されます。このような部分の例は汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ、ｽﾀｯｸ ﾎﾟｲ
ﾝﾀを保持するﾃﾞｰﾀ ﾒﾓﾘです。CPUｸﾛｯｸの停止はｺｱが一般的な操作や計算を実行することを禁止します。

6.1.2. I/O ｸﾛｯｸ - clkI/O
I/Oｸﾛｯｸはﾀｲﾏ/ｶｳﾝﾀのようなI/O部の大部分で使われます。I/Oｸﾛｯｸは外部割り込み部でも使われますが、いくつかの外部割り込
みは例えI/Oｸﾛｯｸが停止されても検出されることをこのような割り込みに許す非同期論理回路によって検出されることに注意してください。

6.1.3. ﾌﾗｯｼｭ ｸﾛｯｸ - clkFLASH
ﾌﾗｯｼｭ ｸﾛｯｸはﾌﾗｯｼｭ ﾒﾓﾘ ｲﾝﾀｰﾌｪｰｽの動作を制御します。このﾌﾗｯｼｭ ｸﾛｯｸは常にCPUｸﾛｯｸと同時に活動します。

6.1.4. A/D変換ｸﾛｯｸ - clkADC
A/D変換器には専用のｸﾛｯｸ範囲が提供されます。これはﾃﾞｼﾞﾀﾙ回路によって生成される雑音を低減するためにCPUとI/Oｸﾛｯｸの停止を許します。これはより正確なA/D変換結果を与えます。

6.1.5. 高速周辺機能ｸﾛｯｸ - clkPCK
ATtiny25/45/85の内部PLLは供給元入力から8倍したｸﾛｯｸ周波数を発生します。既定でのPLLは供給元として8.0Hz内蔵RC発振器の出力を使います。PLL制御/状態ﾚｼﾞｽﾀ(PLLCSR)の低速動作(LSM)ﾋﾞｯﾄが設定(1)される場合、PLLは代わりにこのRC発振器の2分周出力を使います。故に(基本の)PLL出力、高速周辺機能ｸﾛｯｸは64MHzです。高速周辺機能ｸﾛｯｸまたはそれから分周したｸﾛｯ
ｸは、ﾀｲﾏ/ｶｳﾝﾀ1に対するｸﾛｯｸ元またはｼｽﾃﾑ ｸﾛｯｸとして選択できます。図6-2.をご覧ください。高速周辺機能ｸﾛｯｸの周波数はPL
LCSRのLSM設定(1)時に2分周され、32MHzのｸﾛｯｸ周波数になります。PLLclkがｼｽﾃﾑ ｸﾛｯｸとして使われる場合、LSMが設定(1)できないことに注意してください。
図6-2. 高速周辺機能ｸﾛｯｸ(PCK)構成図
CLKPS3～0

CKSELﾋｭｰｽﾞ
LSM
PLLE
OSCCAL
XTAL1
XTAL2

固定化
検出器
内蔵RC発振器
8.0MHz1/2

4MHz

64/32MHz

PLL
×8
1/4

外部用発振器

PLOCK
PCK

16MHz
8MHz

ｼｽﾃﾑ ｸﾛｯｸ
前置分周器

CK

PLLはRC発振器に固定化し、発振校正ﾚｼﾞｽﾀ(OSCCAL)経由のRC発振器調整は同時に高速周辺機能ｸﾛｯｸも調整します。けれ
どもRC発振器が8MHzより高い周波数にされるのが可能でも、高速周辺機能ｸﾛｯｸは(最悪の場合) 85MHzで飽和し、最高周波数での発振に留まります。この場合のPLLがRC発振器ｸﾛｯｸのどれにも固定化されないことに注意されるべきです。従ってPLLを正しい動作範囲に保持するため、8MHzより高い周波数にOSCCAL補正を行うことは推奨されません。
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

15

内部PLLは以下の時に許可されます。
・ PLL制御/状態ﾚｼﾞｽﾀ(PLLCSR)のPLL許可(PLLE)ﾋﾞｯﾄが設定(1)される。
・ CKSELﾋｭｰｽﾞが'0001'に設定される。
・ CKSELﾋｭｰｽﾞが'0011'に設定される。
PLLCSRのPLL固定化検出(PLOCK)ﾋﾞｯﾄはPLLが固定化されている時に設定(1)されます。
内蔵RC発振器とPLLはﾊﾟﾜｰﾀﾞｳﾝの休止形態でOFFへ切り替えられます。

6.1.6. ATtiny15互換動作での内蔵PLL
ATtiny25/45/85ﾃﾞﾊﾞｲｽはATtiny15使用者用の移植のために、ATtiny15との下位互換用のATtiny15互換動作があります。ATtiny15
互換動作はCKSELﾋｭｰｽﾞを'0011'に設定することによって選択されます。
ATtiny15互換動作での内蔵RC発振器周波数は6.4MHzに低下校正され、PLLの倍率は4倍に設定されます。図6-3.をご覧ください。
これらの補正でｸﾛｯｸ系はATtiny15互換になり、高速周辺機能ｸﾛｯｸの結果は(ATtiny15と同じ)25.6MHzの周波数になります。
図6-3. ATtiny15互換動作での高速周辺機能ｸﾛｯｸ(PCK)構成図
PLLE
OSCCAL

内蔵RC発振器
6.4MHz

1/2
1/4

3.2MHzPLL
×8

1.6MHz25.6MHz

固定化
検出器

PCK
PLOCK
CK

ATtiny15互換動作で低速動作が実装されないことに注意してください。

6.2. ｸﾛｯｸ元
このﾃﾞﾊﾞｲｽには右で示されるようにﾌﾗｯｼｭ ﾋｭｰｽﾞ ﾋﾞｯﾄによって選択可能な後続のｸﾛｯｸ元選択があります。選択したｸﾛｯｸ元からのｸﾛｯｸはAVRｸﾛｯｸ発生器への入力で、適切な単位部へ配給されます。
各ｸﾛｯｸ選択に対する様々な選択は次項で得られます。CPUがﾊﾟﾜｰﾀﾞｳﾝから起動するとき、選択したｸﾛｯｸ元は命令実行開始前に安定な発振器動作を保証する起動時間に使われます。CPUがﾘｾｯﾄから始まるとき、これらは通常動作開始前に安定電圧へ達するのを電源に許す付加遅延です。ｳｫｯﾁﾄﾞｯｸﾞ発振
器はこの起動時間の実時間部のﾀｲﾐﾝｸﾞに使われます。各計時終了に使われるｳｫｯﾁﾄﾞｯｸﾞ(WDT)発振器の各周期数は表6-2.で示されます。
表6-2. WDT発振器の代表計時終了値、周期数
代表的計時終了値
周期数
4.0ms
512
64ms
8K (8192)

表6-1. ｸﾛｯｸ種別選択
ｸﾛｯｸ種別CKSEL3～0
外部ｸﾘｽﾀﾙ/ｾﾗﾐｯｸ発振子1111～1000
外部低周波数ｸﾘｽﾀﾙ発振子
0110
128kHz内部(WDT)発振器
0100
6.4MHz校正付き内蔵RC発振器 0011 (注2)8.0MHz校正付き内蔵RC発振器 0010 (注3)
PLLｸﾛｯｸ
0001
外部ｸﾛｯｸ信号
0000
(予約)
01x1
注1: 1=非ﾌﾟﾛｸﾞﾗﾑ、0=ﾌﾟﾛｸﾞﾗﾑ、x=0または1。
注2: 本設定はATtiny15互換動作を選択し、ｼｽﾃ
ﾑ ｸﾛｯｸは4分周され1.6MHzｸﾛｯｸ周波数になります。
注3: 本ﾃﾞﾊﾞｲｽはこの選択で出荷されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

16

6.2.1. 外部ｸﾛｯｸ信号
外部ｸﾛｯｸ元からﾃﾞﾊﾞｲｽを駆動するには、CLKIが図6-4.で示されるように駆動されるべきです。外部ｸﾛｯｸでﾃﾞﾊﾞｲｽを走行するためには、CKSELﾋｭｰｽﾞが'0000'にﾌﾟﾛｸﾞﾗﾑ(設定)されなければなりません。
このｸﾛｯｸ元が選択されると、起動時間は表6-3.で示されるようにSUTﾋｭｰｽﾞによって決定されます。

図6-4. 外部ｸﾛｯｸ信号駆動接続図
XTAL2
外部ｸﾛｯｸ信号

CLKI/XTAL1
GND

表6-3. 外部ｸﾛｯｸ信号駆動用起動遅延時間選択表
ﾘｾｯﾄからの付加遅延
ﾊﾟﾜｰﾀﾞｳﾝからのSUT1,0
推奨使用法
時間 (VCC=5.0V)
起動遅延時間低電圧検出(BOD)ﾘｾｯﾄ許可
00
6×CK
14×CK
高速上昇電源
01
6×CK
14×CK+4ms
低速上昇電源
10
6×CK
14×CK+64ms
11(予約)
外部ｸﾛｯｸを供給するとき、MCUの安定な動作を保証するために供給したｸﾛｯｸ周波数の急な変化を避けることが必要とされます。或るｸﾛｯｸ周期から次への2%より大きな周波数変化は予測されない事態を引き起こします。このようなｸﾛｯｸ周波数での変化中、MCUはﾘｾｯﾄに保たれるのを保証することが必要とされます。
ｼｽﾃﾑ ｸﾛｯｸ前置分周器が安定な動作を保証しながら、内部ｸﾛｯｸ周波数の実行時変更の実現に使えることに注意してください。詳
細については20頁の「ｼｽﾃﾑ ｸﾛｯｸ前置分周器」を参照してください。

6.2.2. 高周波数PLLｸﾛｯｸ - PLLCLK
これはﾀｲﾏ/ｶｳﾝﾀ1周辺機能の使用とｼｽﾃﾑ ｸﾛｯｸ元用の、RC発振器に固定化した公称64
MHzｸﾛｯｸ速度を供給する内部PLLです。CKSELﾋｭｰｽﾞの'0001'ﾌﾟﾛｸﾞﾗﾑ(設定)によってｼｽ
ﾃﾑ ｸﾛｯｸ元として選択されると、これは表6-4.で示されるように4分周されます。
このｸﾛｯｸ元が選択されると、起動時間は表6-5.で示されるようにSUTﾋｭｰｽﾞによって決定されます。

表6-4. 高周波数PLLｸﾛｯｸ動作種別
CKSEL3～0
公称周波数
16MHz
0001

表6-5. 高周波数PLLｸﾛｯｸ用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからの電源ONﾘｾｯﾄからの付加
推奨使用法
SUT1,0
起動遅延時間
遅延時間 (VCC=5.0V)
4ms(1K+14)×CK+4ms
00
低電圧検出(BOD)ﾘｾｯﾄ許可
4ms(16K+14)×CK+4ms
01
高速上昇電源4ms(1K+14)×CK+64ms
10
低速上昇電源11(16K+14)×CK+64ms
4ms
低速上昇電源

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

17

6.2.3. 校正付き内蔵RC発振器
既定で校正された内蔵RC発振器は概ね8MHzｸﾛｯｸを供給します。電圧と温度に依存 表6-6. 校正付き内蔵RC発振器動作
しますが、このｸﾛｯｸは使用者によって高精度な校正ができます。より多くの詳細につCKSEL3～0
公称周波数 (MHz)いては109頁の表21-2.と127頁の「内部発振器周波数」をご覧ください。本ﾃﾞﾊﾞｲｽは0010
8.0 (注1)CKDIV8ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)で出荷されます。より多くの詳細については20頁の「ｼｽﾃﾑ
00
1
1
6.4 (注2)
ｸﾛｯｸ前置分周器」をご覧ください。
このｸﾛｯｸは表6-6.で示されるようにCKSELﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾐﾝｸﾞによってｼｽﾃﾑ ｸﾛｯｸと 注1: ﾃﾞﾊﾞｲｽはこの選択で出荷されます。
して選択できます。選択したなら、外部部品なしで動作します。ﾘｾｯﾄ中、ﾊｰﾄﾞｳｪｱが発 注2: 本設定はATtiny15互換動作を選択し、ｼｽﾃﾑ ｸﾛｯｸは4分周され1.6M
振校正(OSCCAL)ﾚｼﾞｽﾀに予めﾌﾟﾛｸﾞﾗﾑされた校正値ﾊﾞｲﾄを設定し、これによってRC
Hzｸﾛｯｸ周波数になります。
発振器を自動的に校正します。この校正の精度は表21-2.で工場校正として示されます。
ｿﾌﾄｳｪｱからOSCCALﾚｼﾞｽﾀを変更することによって(発振校正ﾚｼﾞｽﾀ(OSCCAL)参照)、工場校正を使うよりも高い精度を得ることができます。この校正の精度は表21-2.で使用者校正として示されます。
この発振器がﾁｯﾌﾟ(ｼｽﾃﾑ)ｸﾛｯｸとして使われるとき、ｳｫｯﾁﾄﾞｯｸﾞ発振器は未だｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏとﾘｾｯﾄ付加遅延ﾀｲﾏに使われます。予め設定された校正値のより多くの情報については99頁の「校正ﾊﾞｲﾄ」項をご覧ください。
校正付き内蔵RC発振器は表6-6.で示されるようにCKSELﾋｭｰｽﾞに'0011'を書くことによって6.4MHzを供給する設定にもできます。この設定はATtiny15互換動作として参照され、ATtiny15でのように6.4MHzで校正されたｸﾛｯｸ元の供給を意図されています。ATtiny
15互換動作で、PLLはﾀｲﾏ/ｶｳﾝﾀ1用の25.6MHz周辺機能ｸﾛｯｸ信号を生成するのに6.4MHzで走行する内蔵RC発振器を使います(64頁の「ATtiny15互換動作での8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1」をご覧ください)。この動作では常に6.4MHzｸﾛｯｸ信号が4分周され、1.6MHzｼｽ
ﾃﾑ ｸﾛｯｸを供給することに注意してください。
ｸﾛｯｸ元として校正付き内蔵8MHz発振器が選択されると、起動時間は下の表6-7.で示されるようにSUTﾋｭｰｽﾞによって決定されます。
表6-7. 校正付き内蔵RC発振器用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからのﾘｾｯﾄからの付加遅延
推奨使用法
SUT1,0
起動遅延時間時間 (VCC=5.0V)
14×CK (注1) 低電圧検出(BOD)ﾘｾｯﾄ許可
6×CK
00
14×CK+4ms
6×CK
01
高速上昇電源14×CK+64ms
6×CK
1 0 (注2)
低速上昇電源11(予約)
注1: RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行可を保証するため、付加遅延時間は14×CK+4.1msに増やされます。
注2: ﾃﾞﾊﾞｲｽはこの選択で出荷されます。
ATtiny15互換動作での起動時間は表6-8.で示されるようにSUTﾋｭｰｽﾞによって決定されます。
表6-8. ATtiny15互換動作時校正付き内蔵RC発振器用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからのﾘｾｯﾄからの付加遅延
SUT1,0
推奨使用法
起動遅延時間時間 (VCC=5.0V)
14×CK+64ms
6×CK
00
14×CK+64ms
6×CK
01
14×CK+4ms
6×CK
10
11
1×CK
14×CK (注1)
注1: RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行可を保証するため、付加遅延時間は14×CK+4.1msに増やされます。
概略で、ATtiny15互換動作でのより多くの情報は2頁の「PB5～0 (ﾎﾟｰﾄB)」、16頁の「ATtiny15互換動作での内蔵PLL」、92頁の「ﾃﾞﾊﾞｯｸﾞWIREの制限」、99頁の「校正値ﾊﾞｲﾄ」項と22頁の「ｸﾛｯｸ前置分周器選択」表で得られます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]18

6.2.4. 128kHz内部発振器
128kHz内部発振器は128kHzのｸﾛｯｸを供給する低電力発振器です。この周波数は3V,25℃での公称値です。本ｸﾛｯｸはCKSELﾋｭｰｽﾞを'0100'にﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(設定)することによってｼｽﾃﾑ ｸﾛｯｸとして選択できます。
このｸﾛｯｸ元が選択されると、起動時間は表6-9.で示されるようにSUTﾋｭｰｽﾞによって決定されます。
表6-9. 128kHz内部発振器用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからのﾘｾｯﾄからの推奨使用法
SUT1,0
起動遅延時間付加遅延時間14×CK (注1) 低電圧検出(BOD)ﾘｾｯﾄ許可
6×CK
00
14×CK+4ms
6×CK
01
高速上昇電源14×CK+64ms
6×CK
10低速上昇電源(予約)11
注1: RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行可を保証するため、付加遅延時間は14×CK+4.1msに増やされます。

6.2.5. 低周波数ｸﾘｽﾀﾙ用発振器
ﾃﾞﾊﾞｲｽに対するｸﾛｯｸ元として時計用32.768kHzｸﾘｽﾀﾙを使うには、CKSEL3～0ﾋｭｰｽﾞの'0110'設定によって低周波数ｸﾘｽﾀﾙ発振器が選択されなければなりません。ｸﾘｽﾀﾙは図6-5.で示されるように接続されるべきです。32.768kHzｸﾘｽﾀﾙ用の適当な負荷容量を探すには製造業者のﾃﾞｰﾀｼｰﾄを調べてください。
この発振器が選択されると、起動遅延時間は表6-10.で示されるようにSUTﾋｭｰｽﾞによって決定されます。
表6-10. 低周波数ｸﾘｽﾀﾙ用発振器起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからのﾘｾｯﾄからの付加遅延
推奨使用法
SUT1,0
起動遅延時間時間 (VCC=5.0V)
4ms
1K×CK (注1)00
高速上昇電源または低電圧検出(BOD)ﾘｾｯﾄ許可
64ms
1K×CK (注1)01低速上昇電源
64ms
32K×CK
10
起動時の周波数安定11(予約)
注1: これらの選択は起動での周波数安定性が重要でない場合だけ使われるべきです。
低周波数ｸﾘｽﾀﾙ用発振器は各XTALﾋﾟﾝに於いて表6-11.で見られる内部負荷容量を提供します。
表6-11. 低周波数ｸﾘｽﾀﾙ用発振器内部容量
容量 (pF)
32kHz発振器形式
XTAL1
XTAL2
ｼｽﾃﾑ ｸﾛｯｸ用発振器
166

6.2.6. ｸﾘｽﾀﾙ/ｾﾗﾐｯｸ用発振器
XTAL1とXTAL2は図6-5.で示されるように、ﾁｯﾌﾟ上の発振器としての使用に設定できる反転増幅器の各々、入力と出力です。ｸﾘｽﾀ
ﾙ発振子またはｾﾗﾐｯｸ振動子のどちらでも使えます。
C1とC2はｸﾘｽﾀﾙ発振子とｾﾗﾐｯｸ振動子の両方について常に等しくすべきです。このｺﾝﾃﾞﾝｻの最適値は使うｸﾘｽﾀﾙ発振子やｾﾗﾐｯｸ
振動子、浮遊容量の量、その環境の電磁雑音に依存します。ｸﾘｽﾀﾙ発振子使用に対するｺﾝﾃﾞﾝｻ選択について初期の指針のいく
つかは表6-12.で与えられます。ｾﾗﾐｯｸ振動子については製造業者によって与えられたｺﾝﾃﾞﾝｻ値が使われるべきです。
図6-5. ｸﾘｽﾀﾙ発振子接続図
C2
C1

XTAL2
XTAL1
GND

表6-12. ｸﾘｽﾀﾙ発振器動作
周波数範囲
CKSEL3～1
推奨C1,2容量
100 (注1)
0.4～0.9MHz
101
0.9～3.0MHz
12～22pF
3.0～8.0MHz
12～22pF
110
111
8.0～ MHz
12～22pF
注1: この選択はｸﾘｽﾀﾙ発振子ではなく、ｾﾗﾐｯｸ振動子でだけ使われるべきです。

発振器は示された周波数範囲で最適化された4つの異なる動作ができます。この動作は、表6-12.で示されたCKSEL3～1ﾋｭｰｽﾞによって選択されます。
CKSEL0ﾋｭｰｽﾞはSUT1,0ﾋｭｰｽﾞと共に、表6-13.で示される起動遅延時間を選択します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]19

表6-13. ｸﾘｽﾀﾙ発振子/ｾﾗﾐｯｸ振動子用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝからのﾘｾｯﾄからの付加遅延
CKSEL0 SUT1,0
推奨使用法
起動遅延時間時間 (VCC=5.0V)
258×CK (注1)
14×CK+4ms
00
外部ｾﾗﾐｯｸ振動子、高速上昇電源
14×CK+64ms
01
258×CK (注1)
外部ｾﾗﾐｯｸ振動子、低速上昇電源
0
14×CK
10
1K×CK (注2)
外部ｾﾗﾐｯｸ振動子、低電圧検出(BOD)ﾘｾｯﾄ許可
14×CK+4ms
11
外部ｾﾗﾐｯｸ振動子、高速上昇電源
1K×CK (注2)
14×CK+64ms
00
外部ｾﾗﾐｯｸ振動子、低速上昇電源
1K×CK (注2)
14×CK
01
16K×CK
外部ｸﾘｽﾀﾙ発振子、低電圧検出(BOD)ﾘｾｯﾄ許可
1
14×CK+4ms
10
16K×CK
外部ｸﾘｽﾀﾙ発振子、高速上昇電源
14×CK+64ms
11
16K×CK
外部ｸﾘｽﾀﾙ発振子、低速上昇電源
注1: これらの選択はﾃﾞﾊﾞｲｽの最高周波数付近での動作でないとき、応用にとって起動での周波数安定性が重要でない場合だけ使われるべきです。これらの選択はｸﾘｽﾀﾙ発振子用ではありません。
注2: これらの選択はｾﾗﾐｯｸ振動子での使用を意図され、起動での周波数安定性を保証します。ﾃﾞﾊﾞｲｽの最高周波数付近での動作でないとき、応用にとって起動での周波数安定性が重要でない場合はｸﾘｽﾀﾙ発振子も使えます。

6.2.7. 既定のｸﾛｯｸ元
このﾃﾞﾊﾞｲｽはCKSEL=0010, SUT=10, CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0)で出荷されます。従って既定ｸﾛｯｸ元設定は最長起動時間の8MHzで走行する内蔵RC発振器、8で前置分周する初期ｼｽﾃﾑ ｸﾛｯｸで、1.0MHzのｼｽﾃﾑ ｸﾛｯｸになります。この既定設定は全ての使用者が実装または並列書き込み器を使って、それらを希望したｸﾛｯｸ元設定にできることを保証します。

6.3. ｼｽﾃﾑ ｸﾛｯｸ前置分周器
ATtiny25/45/85のｼｽﾃﾑ ｸﾛｯｸはｸﾛｯｸ前置分周ﾚｼﾞｽﾀ(CLKPR)の設定によって分周できます。この特徴(機能)は必要とされる処理能力が低い時の消費電力削減に使えます。これは全ｸﾛｯｸ種別で使え、CPUと全同期周辺機能のｸﾛｯｸ周波数に影響を及ぼします。
clkCPU、clkFLASH、clkI/O、clkADCは表6-15.で示された値によって分周されます。

6.3.1. 切り替え時間
前置分周器設定間を切り替えるとき、ｼｽﾃﾑ ｸﾛｯｸ前置分周器は中間(経過途中)の周波数が直前の設定に対応するｸﾛｯｸ周波数または新規設定に対応するｸﾛｯｸ周波数のどちらよりも高くなく、ｸﾛｯｸ系で不具合が起きないことを保証します。
前置分周器として実行するﾘﾌﾟﾙ ｶｳﾝﾀは分周されないｸﾛｯｸ周波数で走行し、CPUのｸﾛｯｸ周波数より速いかもしれません。従って例
え(ｶｳﾝﾀ値が)読めるとしても、前置分周器の状態を決めることはできず、1から他へのｸﾛｯｸ分周値切り替えを行う正確な時間は必ずしも予測できません。
CLKPS値が書かれる時から新規ｸﾛｯｸ周波数が活性(有効)になる前にT1+T2～T1+2×T2間かかります。この間で2つの有効なｸﾛｯｸ端が生成されます。ここでのT1は直前のｸﾛｯｸ周期、T2は新規前置分周器設定に対応する周期です。

6.4. ｸﾛｯｸ出力緩衝部 (外部ｸﾛｯｸ出力)本ﾃﾞﾊﾞｲｽは(XTAL2ﾋﾟﾝとして使わない時に)ｼｽﾃﾑ ｸﾛｯｸをCLKOﾋﾟﾝに出力できます。この出力を許可するにはCKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されなければなりません。この動作はﾁｯﾌﾟのｸﾛｯｸがｼｽﾃﾑ上の他の回路を駆動する時用です。このﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)された
時にI/Oﾋﾟﾝの標準動作が無視され、このｸﾛｯｸがﾘｾｯﾄ中に出力されないことに注意してください。内部RC発振器、WDT発振器、PLL、外部ｸﾛｯｸ(CLKI)はｸﾛｯｸがCLKOに出力される時に選択することができます。ｸﾘｽﾀﾙ用発振器(XTAL1,XTAL2)はCLKOでのｸﾛｯｸ出力用に使えません。ｼｽﾃﾑ ｸﾛｯｸ前置分周器が使われると、CKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)された時の出力は分周したｼｽﾃﾑ ｸﾛｯ
ｸです。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

20

6.5. ｸﾛｯｸ関係ﾚｼﾞｽﾀ
6.5.1. OSCCAL - 発振校正ﾚｼﾞｽﾀ (Oscillator Calibration Register)ﾋﾞｯﾄ$31 ($51)
Read/Write
初期値

7

6

5

4

3

2

1

0

CAL7

CAL6

CAL5

CAL4

CAL3

CAL2

CAL1

CAL0

R/W

R/W

R/W

R/W
R/W
ﾃﾞﾊﾞｲｽ固有の校正値

R/W

R/W

R/W

OSCCAL● ﾋﾞｯﾄ7～0 - CAL7～0 : 発振校正値 (Oscillator Calibration Value)

発振校正ﾚｼﾞｽﾀは発振器周波数の偏差処理を省くための内蔵発振器の調整に使われます。ﾁｯﾌﾟのﾘｾｯﾄ中、109頁の表21-2.で指定されるように工場で校正された周波数を与える、予めﾌﾟﾛｸﾞﾗﾑされた値が本ﾚｼﾞｽﾀへ自動的に書かれます。応用ｿﾌﾄｳｪｱは発振器
周波数を変更するために、このﾚｼﾞｽﾀに書くことができます。この発振器は表21-2.で指定される周波数に校正できます。この範囲外への校正は推奨されません。
この発振器はﾌﾗｯｼｭ ﾒﾓﾘとEEPROMの書き込みｱｸｾｽ時間に使われ、これらの書き込み時間はそれに応じて影響されることに注意してください。ﾌﾗｯｼｭ ﾒﾓﾘまたはEEPROMが書かれる場合、8.8MHzより高く校正してはいけません。そうでなければ、ﾌﾗｯｼｭ ﾒﾓﾘまた
はEEPROM書き込みは失敗するかもしれません。
CAL7ﾋﾞｯﾄは発振器に関する操作範囲を決めます。このﾋﾞｯﾄの(0)設定は低周波数範囲になり、(1)設定は高周波数範囲になります。
この2つの周波数範囲は重複し、別の言葉では、OSCCAL=$7F設定はOSCCAL=$80設定より高い周波数になります。
CAL6～0ﾋﾞｯﾄは選択した範囲内の周波数調整に使われます。$00設定はその範 表6-14. 内蔵RC発振器周波数範囲
囲の最低周波数になり、$7F設定はその範囲の最高周波数になります。
公称周波数に対する割合
OSCCAL値
MCUの安定な動作を保証するために校正値は小さく変更されるべきです。或るｸ
最小
最大
ﾛｯｸ周期から次への2%より大きな周波数変化は予測されない事態を引き起こしま
50 %
$00
100 %
す。OSCCAL変更は各校正に対して$20を越えるべきではありません。このような
75 %
150 %
$3F
ｸﾛｯｸ周波数変更の間、MCUはﾘｾｯﾄに保たれるのを保証することが必要です。
$7F
100
%
200
%
(訳注) 表6-14.は不適切で本来削除されるべき表です。

6.5.2. CLKPR - ｸﾛｯｸ前置分周ﾚｼﾞｽﾀ (Clock Prescale Register)ﾋﾞｯﾄ$26 ($46)
Read/Write
初期値

7

6

5

4

3

2

1

0

CLKPCE---CLKPS3

CLKPS2

CLKPS1

CLKPS0

R/W
0

R
0

R
0

R
0

R/W
内容参照

R/W
内容参照

R/W
内容参照

R/W
内容参照

CLKPR

● ﾋﾞｯﾄ7 - CLKPCE : ｸﾛｯｸ分周値変更許可 (Clock Prescaler Change Enable)

CLKPSﾋﾞｯﾄの変更を許可するためにCLKPCEﾋﾞｯﾄは論理1を書かれなければなりません。CLKPCEﾋﾞｯﾄは同時にCLKPRの他の全ﾋﾞｯﾄが0を書かれる時だけ更新されます。CLKPCEは書き込み後4ｸﾛｯｸ周期またはCLKPSﾋﾞｯﾄ書き込み時、ﾊｰﾄﾞｳｪｱによって解除(0)されます。この制限時間(4ｸﾛｯｸ周期)内のCLKPCEﾋﾞｯﾄ再書き込みは制限時間の延長もCLKPCEﾋﾞｯﾄの解除(0)も行いません。
● ﾋﾞｯﾄ6～4 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ3～0 - CLKPS3～0 : ｸﾛｯｸ分周値選択 (Clock Prescaler Select Bits 3～0)

これらのﾋﾞｯﾄは選択したｸﾛｯｸ元と内部ｼｽﾃﾑ ｸﾛｯｸ間の分周値を定義します。これらのﾋﾞｯﾄは応用の必要条件に合わせた各種ｸﾛｯｸ
周波数を実行時に書けます。分周値が使われると、分周器はMCUへの主ｸﾛｯｸを分周し、全ての同期周辺機能の速度が減じられます。分周値は表6-15.で与えられます。
予期せぬｸﾛｯｸ周波数の変更を防ぐため、CLKPSﾋﾞｯﾄの変更は次の特別な書き込み手順に従わなければなりません。
1. ｸﾛｯｸ分周値変更許可(CLKPCE)ﾋﾞｯﾄに1、CLKPR内の他の全ﾋﾞｯﾄに0を書きます。
2. (次からの)4周期以内にCLKPCEﾋﾞｯﾄを0とする欲したCLKPS値を書きます。
前置分周器設定変更時、書き込み手続きが割り込まれないことを保証するため、割り込みは禁止されなければなりません。
CKDIV8ﾋｭｰｽﾞがCLKPSﾋﾞｯﾄの初期値を決めます。CKDIV8が非ﾌﾟﾛｸﾞﾗﾑ(1)にされると、CLKPSﾋﾞｯﾄは'0000'にﾘｾｯﾄされます。
CKDIV8がﾌﾟﾛｸﾞﾗﾑ(0)されると、CLKPSﾋﾞｯﾄは起動時に8分周を与える'0011'にﾘｾｯﾄされます。現在の動作条件でﾃﾞﾊﾞｲｽの最高周波数より高い周波数のｸﾛｯｸ元を選択した場合、この機能が使われるべきです。CKDIV8ﾋｭｰｽﾞ設定に拘らず、どの値もCLKPSﾋﾞｯﾄへ書けることに注意してください。応用ｿﾌﾄｳｪｱは現在の動作条件でﾃﾞﾊﾞｲｽの最高周波数より高い周波数のｸﾛｯｸ元を選択した場合、充分な分周値が選択されることを保証しなければなりません。このﾃﾞﾊﾞｲｽはCKDIV8ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)で出荷されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]21

表6-15. ｸﾛｯｸ前置分周器選択
CLKPS301
0
1
01
CLKPS2
CLKPS1
0
1
0
1
0
1
0
1
CLKPS0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
8
32
128 256
分周値(数)
1
4
16
64
(予約)
注: 前置分周器はATtiny15互換動作で禁止され、ｸﾛｯｸ前置分周ﾚｼﾞｽﾀ(CLKPR)書き込みもCKDIV8ﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(結果)のどちらもｼｽﾃﾑ ｸﾛｯｸに何も影響しません(常に1.6MHz)。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

22

7. 電力管理と休止形態
高機能と産業的に先行するｺｰﾄﾞ効率は低電力の応用に対してAVRﾏｲｸﾛ ｺﾝﾄﾛｰﾗを理想的に選択させます。加えて、休止形態は応用でMCU内の未使用部を一時停止することを可能にし、それによって節電します。AVRは応用で必要な消費電力に仕立てることを使用者に許す様々な休止形態を提供します。

7.1. 休止形態種別
15頁の図6-1.はATtiny25/45/85の各種ｸﾛｯｸ系統とその配給を示します。この図は適切な休止形態選択を手助けします。表7-1.は各種休止形態とそれらの起動元を示します。
表7-1. 各休止形態に於ける動作ｸﾛｯｸ範囲と復帰起動要因
動作ｸﾛｯｸ範囲
発振器
主ｸﾛｯｸ
休止種別
clk clk clk clk clk 供給元
CPU FLASH IO ADC PCK
許可
ｱｲﾄﾞﾙ
〇 〇 〇
〇
A/D変換雑音低減〇〇
ﾊﾟﾜｰﾀﾞｳﾝ① INT0についてはﾚﾍﾞﾙ割り込みだけです。

INT0
ﾋﾟﾝ変化
〇
①
①

復帰起動要因 (割り込み)
SPM/
USI
A/D変換
EEPROM
開始条件
完了
操作可
〇
〇
〇
〇
〇
〇
〇

その他
I/O

ｳｫｯﾁ
ﾄﾞｯｸﾞ

〇

〇
〇
〇

3つの休止形態の何れかへ移行するにはMCU制御ﾚｼﾞｽﾀ(MCUCR)の休止許可(SE)ﾋﾞｯﾄが論理1を書かれ、SLEEP命令が実行されなければなりません。MCUCRの休止種別選択(SM1,0)ﾋﾞｯﾄはSLEEP命令によって活性(有効)にされる休止形態(ｱｲﾄﾞﾙ、A/D変換雑
音低減、ﾊﾟﾜｰﾀﾞｳﾝ)のどれかを選びます。一覧については表7-2.をご覧ください。
MCUが休止形態中に許可した割り込みが起こると、MCUは起動します。その時にMCUは起動時間に加えて4周期停止され、割り込
みﾙｰﾁﾝを実行し、そしてSLEEP命令の次の命令から実行を再開します。ﾃﾞﾊﾞｲｽが休止から起動するとき、ﾚｼﾞｽﾀ ﾌｧｲﾙとSRAMの内
容は変えられません。休止形態中にﾘｾｯﾄが起こると、MCUは起動し、ﾘｾｯﾄ ﾍﾞｸﾀから実行します。
ﾚﾍﾞﾙで起動した割り込みが起動復帰に使われる場合、MCUを起動(とMCUがその割り込み処理ﾙｰﾁﾝへ移行)するには、変更したﾚ
ﾍﾞﾙが一定時間保持されなければならないことに注意してください。詳細については33頁の「外部割り込み」を参照してください。

7.1.1. ｱｲﾄﾞﾙ動作
休止種別選択(SM1,0)ﾋﾞｯﾄが'00'を書かれるとき、SLEEP命令はMCUをｱｲﾄﾞﾙ動作へ移行させ、CPUを停止しますが、A/D変換器、ｱﾅﾛｸﾞ比較器、USI、ﾀｲﾏ/ｶｳﾝﾀ、ｳｫｯﾁﾄﾞｯｸﾞ、割り込み機構の継続動作を許します。この休止形態は基本的にclkCPUとclkFLASHを停止する一方、他のｸﾛｯｸに走行を許します。
ｱｲﾄﾞﾙ動作はMCUにﾀｲﾏ溢れなどの内部割り込みだけでなく、外部で起動された割り込みからの起動も可能にします。ｱﾅﾛｸﾞ比較器
割り込みからの起動が必要とされないなら、ｱﾅﾛｸﾞ比較器 制御/状態ﾚｼﾞｽﾀ(ACSR)のｱﾅﾛｸﾞ比較器禁止(ACD)ﾋﾞｯﾄを設定(1)することによってｱﾅﾛｸﾞ比較器を電源断にできます。これはｱｲﾄﾞﾙ動作での消費電力を削減します。A/D変換が許可されるなら、この動作に移行すると変換が自動的に始まります。

7.1.2. A/D変換雑音低減動作
SM1,0ﾋﾞｯﾄが'01'を書かれるとき、SLEEP命令はMCUをA/D変換雑音低減動作へ移行させ、CPUを停止しますが、A/D変換器、外部割り込み、ｳｫｯﾁﾄﾞｯｸﾞの(許可されていれば)継続動作を許します。この休止形態は基本的にclkI/O, clkCPU, clkFLASHを停止する一方、他のｸﾛｯｸに走行を許します。
これはA/D変換に対する雑音環境を改善し、より高い分解能の測定を可能にします。A/D変換器が許可されている場合、この動作に移行すると、変換が自動的に始まります。A/D変換完了割り込みからの他、外部ﾘｾｯﾄ、ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ、低電圧検出(BOD)ﾘｾｯﾄ、
SPM/EEPROM操作可割り込み、INT0の外部ﾚﾍﾞﾙ割り込み、ﾋﾟﾝ変化割り込みだけが、A/D変換雑音低減動作からMCUを起動できます。

7.1.3. ﾊﾟﾜｰﾀﾞｳﾝ動作
SM1,0ﾋﾞｯﾄが'10'を書かれると、SLEEP命令はMCUをﾊﾟﾜｰﾀﾞｳﾝ動作へ移行させます。この動作では発振器が停止される一方、外部割り込み、USI開始条件検出、ｳｫｯﾁﾄﾞｯｸﾞ機能は(許可されていれば)継続して動作します。外部ﾘｾｯﾄ、ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ、低電圧検出(BOD)ﾘｾｯﾄ、USI開始条件検出、INT0の外部ﾚﾍﾞﾙ割り込み、ﾋﾟﾝ変化割り込みだけがMCUを起動できます。この休止形態は生成した全てのｸﾛｯｸを停止し、非同期部の動作だけを許します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

23

7.2. ｿﾌﾄｳｪｱ低電圧検出(BOD)禁止
低電圧検出器(BOD)がBODLEVELﾋｭｰｽﾞ(98頁の表20-4.参照)によって許可されていると、BODは休止期間中に電源電圧を活発に監視します。いくつかのﾃﾞﾊﾞｲｽはﾊﾟﾜｰﾀﾞｳﾝ休止動作でｿﾌﾄｳｪｱでBODを禁止することによる節電が可能です。この休止形態電力消費はBODがﾋｭｰｽﾞによって全面的に禁止される時と同じ水準になるでしょう。
BODがｿﾌﾄｳｪｱで禁止される場合、BOD機能は休止形態移行後、直ちにOFFされます。休止からの起動復帰で、BODは再び自動的に許可されます。これは休止期間中にVCCﾚﾍﾞﾙが落ちた場合の安全な動作を保証します。
BODが禁止されてしまうと、休止形態からの起動時間はﾘｾｯﾄからの起動と同じになります。使用者は内部基準(ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ)電圧が始動のための時間を持ち、MCUがｺｰﾄﾞの実行を継続する前にBODが正しく動作するような起動時間を手動で設定しなければなりま
せん。98頁の「ﾋｭｰｽﾞ下位ﾊﾞｲﾄ」表でSUT1,0とCKSEL3～0ﾋｭｰｽﾞをご覧ください。
BOD禁止はMCU制御ﾚｼﾞｽﾀ(MCUCR)のBOD休止(BODS)ﾋﾞｯﾄによって制御されます。26頁の「MCUCR - MCU制御ﾚｼﾞｽﾀ」をご覧ください。このﾋﾞｯﾄへの1書き込みはﾊﾟﾜｰﾀﾞｳﾝ動作でのBODをOFFにし、一方このﾋﾞｯﾄの0はBOD活動(有効)を保ちます。既定設定は0、換言するとBOD活動(有効)です。
BODSﾋﾞｯﾄへの書き込みは許可ﾋﾞｯﾄと時間制限手順によって制御されます。26頁の「MCUCR - MCU制御ﾚｼﾞｽﾀ」をご覧ください。

7.2.1. 制限
BOD禁止機能は以下のﾃﾞﾊﾞｲｽにだけ実装されています。
・ ATtiny24 : 改訂Eとそれ以降
・ ATtiny44 : 改訂Dとそれ以降
・ ATtiny84 : 改訂Cとそれ以降改訂はﾃﾞﾊﾞｲｽ外囲器上に記され、以下のように配置され得ます。
・ 8P3と8S2外囲器の裏側
・ 20M1外囲器の表側

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]24

7.3. 電力削減
電力削減ﾚｼﾞｽﾀ(26頁の「PRR - 電力削減ﾚｼﾞｽﾀ」参照)は消費電力削減のために個別周辺機能へのｸﾛｯｸを停止する方法を提供します。周辺機能は現状で固定化され、I/Oﾚｼﾞｽﾀは読み込みも書き込みもできません。ｸﾛｯｸを停止している時に周辺機能によって使われていた資源は占有されたままなので、その周辺機能は殆どの場合、ｸﾛｯｸを停止する前に禁止されるべきです。周辺機能部の起動はPRRのﾋﾞｯﾄを解除(0)することによって行い、その周辺機能部を停止前と同じ状態にします。
周辺機能部の停止は全体に亘る重要な消費電力削減のために活動動作とｱｲﾄﾞﾙ動作で使えます。その他の休止形態ではｸﾛｯｸが予め停止されます。例については117頁の「周辺機能部供給電流」をご覧ください。

7.4. 消費電力の最小化
これらはAVRが制御するｼｽﾃﾑで消費電力の最小化を試みる時に考慮するためのそれぞれの検討点です。一般的に休止形態は可
能な限り多く使われるべきで、休止種別は動作するﾃﾞﾊﾞｲｽの機能が可能な限り少なくなるために選択されるべきです。必要とされない全ての機能は禁止されるべきです。特に次の機能部は最低可能消費電力の達成を試みるとき、特別な考慮を必要とするでしょう。

7.4.1. A/D変換器 (ADC)
許可したなら、A/D変換器は全休止形態で許可されます。節電のため、休止形態の何れかへ移行する前にA/D変換器は禁止されるべきです。A/D変換器がOFF、そして再びONに切り替えられると、次の(最初の)変換は延長された(初回)変換になります。A/D変換器操作の詳細については82頁の「A/D変換器」を参照してください。

7.4.2. ｱﾅﾛｸﾞ比較器
ｱｲﾄﾞﾙ動作へ移行するとき、ｱﾅﾛｸﾞ比較器は使われないなら、禁止されるべきです。A/D変換雑音削減動作へ移行するとき、ｱﾅﾛｸﾞ
比較器は禁止されるべきです。その他の休止形態でのｱﾅﾛｸﾞ比較器は自動的に禁止されます。しかしｱﾅﾛｸﾞ比較器が入力として内部基準電圧を使う設定の場合、全休止形態でｱﾅﾛｸﾞ比較器は禁止されるべきです。さもなければ内部基準電圧は休止形態と無関係に許可されます。ｱﾅﾛｸﾞ比較器設定法の詳細については80頁の「ｱﾅﾛｸﾞ比較器」を参照してください。

7.4.3. 低電圧検出器 (BOD)
低電圧検出器(BOD)が応用で必要とされないなら、この単位部はOFFにされるべきです。低電圧検出器がBODLEVELﾋｭｰｽﾞによって許可されていると全休止形態で許可され、故に常時電力を消費します。これはより深い休止形態での総消費電流にとって重要な一因になります。低電圧検出器(BOD)設定法の詳細については28頁の「低電圧検出(BOD)」と24頁の「ｿﾌﾄｳｪｱ低電圧検出器(BOD)禁止」をご覧ください。

7.4.4. 内部基準電圧
内部基準電圧は低電圧検出器(BOD)、ｱﾅﾛｸﾞ比較器、A/D変換器によって必要とされる時に許可されます。これら単位部が上の項で記述されたように禁止されると、内部基準電圧は禁止され、電力を消費しません。再び許可する場合、この出力が使われる前に使用者は基準電圧へ起動(安定時間)を与えなければなりません。基準電圧が休止形態でON保持される場合、この出力は直ちに使えます。起動時間の詳細については29頁の「内部基準電圧」を参照してください。

7.4.5. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが応用で必要とされないなら、この単位部はOFFにされるべきです。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが許可されていると全休止形態で許可され、故に常時電力を消費します。これはより深い休止形態での総消費電流にとって重要な一因になります。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
設定法の詳細については29頁の「ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ」を参照してください。

7.4.6. ﾎﾟｰﾄ ﾋﾟﾝ
休止形態へ移行するとき、全てのﾎﾟｰﾄ ﾋﾟﾝは最小電力使用に設定されるべきです。最も重要なことはその時にﾋﾟﾝが抵抗性負荷を駆動しないのを保証することです。I/Oｸﾛｯｸ(clkI/O)とA/D変換ｸﾛｯｸ(clkADC)の両方が停止される休止形態ではﾃﾞﾊﾞｲｽの入力緩衝部が禁止されます。これは必要とされない時に入力論理回路によって電力が消費されないことを保証します。いくつかの場合で入力論
理回路は起動条件を検出するために必要とされ、その時は許可されます。どのﾋﾟﾝが許可されるかの詳細については37頁の「ﾃﾞｼﾞﾀﾙ
入力許可と休止形態」を参照してください。入力緩衝部が許可され、入力信号が浮いている状態のままか、またはｱﾅﾛｸﾞ信号電圧がVCC/2付近の場合、入力緩衝部は過大な電力を消費するでしょう。
ｱﾅﾛｸﾞ入力ﾋﾟﾝに対するﾃﾞｼﾞﾀﾙ入力緩衝部は常に禁止されるべきです。入力ﾋﾟﾝでのVCC/2付近のｱﾅﾛｸﾞ信号入力は活動動作でも重要な電流を引き起こし得ます。ﾃﾞｼﾞﾀﾙ入力緩衝部はﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ0(DIDR0)の書き込みによって禁止できます。詳細については81頁と91頁の「DIDR0 - ﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ0」を参照してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]25

7.5. 電力管理用ﾚｼﾞｽﾀ
7.5.1. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)
このMCU制御ﾚｼﾞｽﾀは電力管理用の制御ﾋﾞｯﾄを含みます。
ﾋﾞｯﾄ$35 ($55)
Read/Write
初期値

7

6

5

4

3

2

1

0

BODS

PUD

SE

SM1

SM0

BODSE

ISC01

ISC00

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

MCUCR

● ﾋﾞｯﾄ7 - BODS : BOD休止 (BOD Sleep)

低電圧検出器(BOD)休止機能はいくつかのﾃﾞﾊﾞｲｽでだけ利用可能です。24頁の「制限」をご覧ください。
休止間(23頁の表7-1.参照)にBODを禁止するために、BODSﾋﾞｯﾄは論理1を書かれなければなりません。BODSﾋﾞｯﾄの書き込みはMCUCRのBOD休止許可(BODSE)ﾋﾞｯﾄと時間制限手順によって制御されます。最初にBODSとBODSEの両方が1に設定されなければなりません。次に4ｸﾛｯｸ周期内にBODSが1に設定され、BODSEが0に設定されなければなりません。BODSﾋﾞｯﾄはそれが設定された後の3ｸﾛｯｸ周期間活性(有効)です。SLEEP命令は実際の休止形態に対してBODをOFFにするために、BODSが活性(有効)の間に実行されなければなりません。BODSﾋﾞｯﾄは3ｸﾛｯｸ周期後、自動的に解除(0)されます。
BOD休止が実装されていないﾃﾞﾊﾞｲｽでは、このﾋﾞｯﾄが使われず、常に0として読めます。
● ﾋﾞｯﾄ5 - SE : 休止許可 (Sleep Enable)

SLEEP命令が実行される時にMCUを休止形態へ移行させるには、休止許可(SE)ﾋﾞｯﾄが論理1を書かれなければなりません。MCUの目的外休止形態移行を避けるため、SLEEP命令実行直前に休止許可(SE)ﾋﾞｯﾄを設定(1)し、起動後直ちに解除(0)することが推奨されます。
● ﾋﾞｯﾄ4,3 - SM1,0 : 休止種別選択 (Sleep Mode Select Bits 1 and 0)

これらのﾋﾞｯﾄは表7-2.で示される利用可能な3つの休止形態の1つを選択します。
● ﾋﾞｯﾄ2 - BODSE : BOD休止許可 (BOD Sleep Enable)

BOD休止機能はいくつかのﾃﾞﾊﾞｲｽでだけ利用可能です。24頁の「制限」をご覧くだ
さい。
BODSEﾋﾞｯﾄはBOD休止(BODS)ﾋﾞｯﾄ記述で説明されるように、BODS制御ﾋﾞｯﾄの設定を許可します。このBOD禁止は時間制限手順によって制御されます。
このﾋﾞｯﾄはｿﾌﾄｳｪｱBOD禁止が実装されていないﾃﾞﾊﾞｲｽで使われず、それらのﾃﾞﾊﾞ
ｲｽで常に0として読めます。

表7-2. 休止形態種別選択
SM1
休止形態種別SM0
ｱｲﾄﾞﾙ動作00
A/D変換雑音低減動作
10
ﾊﾟﾜｰﾀﾞｳﾝ動作
0
1
(予約)
1
1

7.5.2. PRR - 電力削減ﾚｼﾞｽﾀ (Power Reduction Register)
電力削減ﾚｼﾞｽﾀは周辺機能のｸﾛｯｸ信号の禁止を許すことによって消費電力削減の方法を提供します。
ﾋﾞｯﾄ$20 ($40)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

-

-

PRTIM1PRTIM0

PRUSI

PRADC

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

PRR

● ﾋﾞｯﾄ7～4 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ3 - PRTIM1 : ﾀｲﾏ/ｶｳﾝﾀ1電力削減 (Power Reduction Timer/Counter1)

このﾋﾞｯﾄへの1書き込みはﾀｲﾏ/ｶｳﾝﾀ1部を停止します。ﾀｲﾏ/ｶｳﾝﾀ1が許可されると、停止前と同様に動作は継続します。
● ﾋﾞｯﾄ2 - PRTIM0 : ﾀｲﾏ/ｶｳﾝﾀ0電力削減 (Power Reduction Timer/Counter0)

このﾋﾞｯﾄへの1書き込みはﾀｲﾏ/ｶｳﾝﾀ0部を停止します。ﾀｲﾏ/ｶｳﾝﾀ0が許可されると、停止前と同様に動作は継続します。
● ﾋﾞｯﾄ1 - PRUSI : 多用途直列ｲﾝﾀｰﾌｪｰｽ電力削減 (Power Reduction USI)

このﾋﾞｯﾄへの1書き込みはその部分へのｸﾛｯｸ停止によって多用途直列ｲﾝﾀｰﾌｪｰｽ(USI)を停止します。USIの再起動時、USIは正し
い動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ0 - PRADC : A/D変換器電力削減 (Power Reduction ADC)

このﾋﾞｯﾄへの1書き込みはA/D変換器(ADC)を停止します。A/D変換器は停止前に禁止されなければなりません。A/D変換ｸﾛｯｸはｱ
ﾅﾛｸﾞ比較器のいくつかの部分でも使われ、本ﾋﾞｯﾄ=1時、ｱﾅﾛｸﾞ比較器が使えないことに注意してください。
注: ｱﾅﾛｸﾞ比較器は81頁の「ACSR - ｱﾅﾛｸﾞ比較器 制御/状態ﾚｼﾞｽﾀ」のｱﾅﾛｸﾞ比較器禁止(ACD)ﾋﾞｯﾄを使って禁止されます。 (訳注:共通性から本注追加)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

26

8. ｼｽﾃﾑ制御とﾘｾｯﾄ
8.1. AVRのﾘｾｯﾄ
ﾘｾｯﾄ中、全てのI/Oﾚｼﾞｽﾀはそれらの初期値に設定され、ﾌﾟﾛｸﾞﾗﾑはﾘｾｯﾄ ﾍﾞｸﾀから実行を開始します。ﾘｾｯﾄ ﾍﾞｸﾀに配置される命令
は、きっとﾘｾｯﾄ処理ﾙｰﾁﾝへの無条件相対分岐(RJMP)命令でしょう。ﾌﾟﾛｸﾞﾗﾑが決して割り込み元を許可しないなら、割り込みﾍﾞｸﾀは使われず、これらの位置に通常のﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞが配置できます。図8-1.の回路構成図はﾘｾｯﾄ論理回路を示します。ﾘｾｯﾄ回路の電気的特性は110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」で与えられます。

BODLEVEL2～0
VCC
RESET

低電圧検出回路
電源ONﾘｾｯﾄ回路

30～60kΩｽﾊﾟｲｸ除去S Q

ﾘｾｯﾄ回路WDT用RC発振器
ｼｽﾃﾑ用発振器

WDRF
BORF
EXTRF
PORF

MCU状態ﾚｼﾞｽﾀ(MCUSR)

8-bit Data Bus

図8-1. ﾘｾｯﾄ回路構成

ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
CK

SUT1,0
遅延計時器

計数器
ﾘｾｯﾄ

内部ﾘｾｯﾄR Q

時間経過

CKSEL3～0
AVRのI/Oﾎﾟｰﾄはﾘｾｯﾄ元が有効になると直ちにそれらの初期状態にﾘｾｯﾄされます。これはどのｸﾛｯｸ元の走行も必要ありません。
全てのﾘｾｯﾄ元が無効にされてしまった後、遅延計数器(ﾀｲﾏ)が始動され、内部ﾘｾｯﾄを引き伸ばします。これは通常動作開始前に安定電圧へ達することを電源に許します。遅延ﾀｲﾏの遅延時間はSUTﾋｭｰｽﾞとCKSELﾋｭｰｽﾞを通して使用者によって定義されます。この遅延時間についての各種選択は16頁の「ｸﾛｯｸ元」で示されます。

8.2. ﾘｾｯﾄ元
ATtiny25/45/85には次の4つのﾘｾｯﾄ元があります。
・ 電源ONﾘｾｯﾄ ・・・・・ 供給電圧が電源ONﾘｾｯﾄ閾値電圧(VPOT)以下でMCUがﾘｾｯﾄされます。
・ 外部ﾘｾｯﾄ ・・・・・・・・ RESETﾋﾟﾝが最小ﾊﾟﾙｽ幅以上Lowﾚﾍﾞﾙに保たれると、MCUがﾘｾｯﾄされます。
・ ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ・・・ ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ動作が許可され、ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが終了すると、MCUがﾘｾｯﾄされます。
・ 低電圧ﾘｾｯﾄ ・・・・・・ 低電圧検出器(BOD)が許可され、供給電圧(VCC)が低電圧検出電圧(VBOT)以下でMCUがﾘｾｯﾄされます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]27

8.2.1. 電源ONﾘｾｯﾄ
電源ONﾘｾｯﾄ(POR)ﾊﾟﾙｽはﾁｯﾌﾟ上の検出回路によって生成されます。検出電圧は110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」で定義されます。
POR信号はVCCが検出電圧以下の時は必ず活性(有効)にされます。POR回路は供給電圧異常検出は勿論、始動ﾘｾｯﾄの起動にも使えます。
電源ONﾘｾｯﾄ回路はﾃﾞﾊﾞｲｽが電源投入でﾘｾｯﾄされることを保証します。電源ONﾘｾｯﾄ閾値電圧(VPOR)への到達はVCCの上昇後にﾃﾞﾊﾞｲｽがどのくらいﾘｾｯﾄを保つかを決める遅延計数器(ﾀｲﾏ)を起動します。VCCがこの検出電圧以下に低下すると、ﾘｾｯﾄ信号はど
んな遅延もなく再び有効にされます。
図8-2. 内蔵電源ONﾘｾｯﾄ (RESETはVCCに接続)

図8-3. 外部RESET信号による延長電源ONﾘｾｯﾄ

VCC

VPOT

VCC

RESET

VRST

RESET

遅延ﾀｲﾏ

tTOUT

内部ﾘｾｯﾄ

VPOT
VRST

tTOUT

遅延ﾀｲﾏ
内部ﾘｾｯﾄ8.2.2. 外部ﾘｾｯﾄ
外部ﾘｾｯﾄはRESETﾋﾟﾝのLowﾚﾍﾞﾙによって生成されます。ｸﾛｯｸが動いていなくても、最小ﾊﾟﾙｽ幅(110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」
参照)以上のﾘｾｯﾄ ﾊﾟﾙｽはﾘｾｯﾄを生成します。短すぎるﾊﾟﾙｽはﾘｾｯﾄ生成が保証されません。印加された信号の上昇がﾘｾｯﾄ閾値
電圧(VRST)に達すると(遅延ﾀｲﾏを起動し)、遅延ﾀｲﾏは遅延時間(tTOUT)経過後にMCUを始動します。

図8-4. 動作中の外部ﾘｾｯﾄ
VCC
RESET

VRST

tTOUT

遅延ﾀｲﾏ
内部ﾘｾｯﾄ8.2.3. 低電圧(ﾌﾞﾗｳﾝｱｳﾄ)検出ﾘｾｯﾄ
ATtiny25/45/85には固定化された起動(検出)電圧と比較するこ 図8-5. 動作中の低電圧検出ﾘｾｯﾄとで動作中のVCCを監視するﾁｯﾌﾟ上の低電圧検出(BOD)回路が
VBOT+
VCC VBOTあります。BODの起動電圧はBODLEVELﾋｭｰｽﾞによって選択できます。この起動電圧はｽﾊﾟｲｸ対策BODを保証するためにﾋｽﾃﾘｼｽ
RESETを持ちます。検出電圧のﾋｽﾃﾘｼｽはV BOT+=V BOT +V HYST/2、
tTOUT
VBOT-=VBOT-VHYST/2と解釈されるべきです。
遅延ﾀｲﾏ
BODが許可され、V CC が起動電圧以下に下降すると(図8-5.の内部ﾘｾｯﾄ
VBOT-)、低電圧ﾘｾｯﾄが直ちに有効とされます。VCCが起動電圧以上に上昇すると(図8-5.のVBOT+)、(遅延ﾀｲﾏが起動され)遅延
ﾀｲﾏは遅延時間(tTOUT)経過後にMCUを始動します。
BOD回路は電圧が110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」で与えられるtBOD時間より長く起動電圧以下に留まる場合のみ、VCCでの低下を検出します。

8.2.4. ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ
ｳｫｯﾁﾄﾞｯｸﾞ時間経過時、(内部的に)1CK周期幅の短いﾘｾｯﾄ ﾊﾟﾙｽを生成します。このﾊﾟﾙｽの下降端で遅延ﾀｲﾏは遅延時間(tTOUT)の計時を始めます。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ操作の詳細については29頁を参照してください。

図8-6. 動作中のｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ
VCC
RESET
ｳｫｯﾁﾄﾞｯｸﾞ
時間経過
遅延ﾀｲﾏ

1 CK周期

tTOUT

内部ﾘｾｯﾄATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

28

8.3. 内部基準電圧
ATtiny25/45/85は内部基準電圧が特徴です。この基準電圧は低電圧検出(BOD)に使われ、A/D変換やｱﾅﾛｸﾞ比較器の入力としても使えます。

8.3.1. 基準電圧許可信号と起動時間基準電圧には使われるべき方法に影響を及ぼすかもしれない起動時間があります。この起動時間は、110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」で与えられます。節電のために、この基準電圧は常にONではありません。この基準電圧は次の状態中ONです。
1. 低電圧検出ﾘｾｯﾄ許可時 (BODLEVELﾋｭｰｽﾞ ﾋﾞｯﾄのﾌﾟﾛｸﾞﾗﾑ(0)により)
2. ｱﾅﾛｸﾞ比較器基準電圧接続時 (ｱﾅﾛｸﾞ比較器制御/状態ﾚｼﾞｽﾀ(ACSR)の基準電圧入力選択(ACBG)=1)
3. A/D変換部動作許可時 (A/D変換制御/状態ﾚｼﾞｽﾀA(ADCSRA)のA/D動作許可(ADEN)=1)
従って低電圧検出(BOD)が許可されていないと、ACBGの設定(=1)またはA/D変換部許可(ADEN=1)後、使用者はｱﾅﾛｸﾞ比較器またはA/D変換器出力が使われる前に基準電圧へ起動時間を与えなければなりません。ﾊﾟﾜｰﾀﾞｳﾝ動作での消費電力を減らすため、使用者はﾊﾟﾜｰﾀﾞｳﾝ動作へ移行する前に基準電圧がOFFされるのを保証することで上の3つの状態を避けられます。

8.4. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ

表8-1. WDTONﾋｭｰｽﾞ設定によるｳｫｯﾁﾄﾞｯｸﾞ機能設定
WDTON ﾋｭｰｽﾞ
安全ﾚﾍﾞﾙ
WDT初期状態
非ﾌﾟﾛｸﾞﾗﾑ(1)1
禁止ﾌﾟﾛｸﾞﾗﾑ(0)2許可

図8-7. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ構成図 (訳注:内容に合せ修正)
ｳｫｯﾁﾄﾞｯｸﾞ
発振器(128kHz)
ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄR

ｳｫｯﾁﾄﾞｯｸﾞ前置分周器

OSC/2k
OSC/4k
OSC/8k
OSC/16k
OSC/32k
OSC/64k
OSC/128k
OSC/256k
OSC/512k
OSC/1024k

ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏは128kHzで動く独立したﾁｯﾌﾟ上の発振器からｸﾛｯｸ駆動されます。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周器の制御により、ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯ
ﾄ間隔は31頁の表8-3.で示されるように調整できます。ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ
(WDR)命令はｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏをﾘｾｯﾄします。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏはそれが禁止される時とﾁｯﾌﾟ ﾘｾｯﾄが起こる時もﾘｾｯﾄされます。10種の異なるｸ
ﾛｯｸ周期がこのﾘｾｯﾄ周期を決めるために選択できます。別のｳｫｯﾁﾄﾞｯ
ｸﾞ ﾘｾｯﾄなしにﾘｾｯﾄ周期が経過すると、ATtiny25/45/85はﾘｾｯﾄしてﾘ
ｾｯﾄ ﾍﾞｸﾀから実行します。ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄの詳細ﾀｲﾐﾝｸﾞについては31頁の表8-3.を参照してください。
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏはﾘｾｯﾄの代わりに割り込みを生成する設定にもできます。これはﾊﾟﾜｰﾀﾞｳﾝ動作から起動するのにｳｫｯﾁﾄﾞｯｸﾞを使う時に大変有用となり得ます。
予期せぬｳｫｯﾁﾄﾞｯｸﾞ禁止や予期せぬ計時終了周期変更を防ぐため、2つの異なる安全ﾚﾍﾞﾙが表8-1.で示されるWDTONﾋｭｰｽﾞによって選択されます。詳細については次の「ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定変更の時間制
限手順」を参照してください。

WDP0
WDP1
WDP2
WDP3

ｳｫｯﾁﾄﾞｯｸﾞ ｸﾛｯｸ
選択器

WDE

MCU
ﾘｾｯﾄ

WDIE

割り
込み

WDT禁止方法
時間制限なし(常時許可)

計時完了時間変更方法なし(常時可)時間制限

8.4.1. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定変更の時間制限手順
ｳｫｯﾁﾄﾞｯｸﾞ設定変更手順は安全ﾚﾍﾞﾙ間で僅かに異なります。各ﾚﾍﾞﾙに対して独立した手順が記述されます。
8.4.1.1. 安全ﾚﾍﾞﾙ1
この動作種別ではｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが初めに禁止されますが、どんな制限もなくｳｫｯﾁﾄﾞｯｸﾞ許可(WDE)ﾋﾞｯﾄに1を書くことにより許可できます。許可したｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏを禁止する時に時間制限手順が必要とされます。許可したｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏを禁止するには次の手順に従わなければなりません。
1. 同じ操作(命令)でｳｫｯﾁﾄﾞｯｸﾞ変更許可(WDCE)とｳｫｯﾁﾄﾞｯｸﾞ許可(WDE)に論理1を書きます。WDEﾋﾞｯﾄの直前の値に拘らず、論理1がWDEに書かれなければなりません。
2. 次からの4ｸﾛｯｸ周期内に同じ操作(命令)で欲したWDEとｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択(WDP3～0)ﾋﾞｯﾄを書きますが、WDCEﾋﾞｯﾄは解除(0)されてです。
8.4.1.2. 安全ﾚﾍﾞﾙ2
この動作種別ではｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが常に許可され、WDEﾋﾞｯﾄは常に1として読めます。時間制限手順はｳｫｯﾁﾄﾞｯｸﾞ計時完了周期を変更する時に必要とされます。ｳｫｯﾁﾄﾞｯｸﾞ計時完了周期を変更するには次の手順に従わなければなりません。
1. 同じ操作(命令)でWDCEとWDEに論理1を書きます。WDEﾋﾞｯﾄが常に設定(1)されていても、WDEは時間制限手順を開始するた
めに1を書かれなければなりません。
2. 次からの4ｸﾛｯｸ周期内に同じ操作(命令)で欲したWDP2～0ﾋﾞｯﾄを書きますが、WDCEﾋﾞｯﾄは解除(0)されてです。WDEﾋﾞｯﾄに書かれた値は無関係です。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]29

8.4.2. ｺｰﾄﾞ例
次のｺｰﾄﾞ例はｳｫｯﾁﾄﾞｯｸﾞ(WDT)をOFFに切り替えるｱｾﾝﾌﾞﾘ言語とC言語の関数を示します。本例は(例えば全割り込み禁止によって)割り込みが制御され、それ故これらの関数実行中に割り込みが起きない前提です。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
WDT_OFF:
WDR
LDI
R16,(0<<WDRF)
OUT
MCUSR,R16IN
R16,WDTCR
ORI
R16,(1<<WDCE)|(1<<WDE)
OUT
WDTCR,R16
LDI
R16,(0<<WDE)
OUT
WDTCR,R16
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void WDT_off(void){_WDR();MCUSR = 0x00;
WDTCR |= (1<<WDCE)|(1<<WDE);
WDTCR = 0x00;};ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ
;WDRF=0値を取得;MCUSRのWDRFを解除(0);現WDTCR値を取得;WDCEとWDE論理1値を設定;WDCEとWDEに論理1書き込み;WDE論理0値を取得;ｳｫｯﾁﾄﾞｯｸﾞ禁止;呼び出し元へ復帰/* ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ *//* MCUSRのWDRFを解除(0) *//* WDCEとWDEに論理1書き込み *//* ｳｫｯﾁﾄﾞｯｸﾞ禁止 */注: 4頁の「ｺｰﾄﾞ例」をご覧ください。

8.5. ﾘｾｯﾄ関係ﾚｼﾞｽﾀ
8.5.1. MCUSR - MCU状態ﾚｼﾞｽﾀ (MCU Status Register)
MCU状態ﾚｼﾞｽﾀはどのﾘｾｯﾄ元がMCUﾘｾｯﾄを起こしたかの情報を提供します。
ﾋﾞｯﾄ$34 ($54)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

-

-

WDRF

BORF

EXTRF

PORF

R
0

R
0

R
0

R
0

R/W
内容参照

R/W
内容参照

R/W
内容参照

R/W
内容参照

MCUSR

● ﾋﾞｯﾄ7～4 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ3 - WDRF : ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ﾌﾗｸﾞ (Watchdog Reset Flag)

このﾋﾞｯﾄはｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄが起こると設定(1)されます。このﾋﾞｯﾄは電源ONﾘｾｯﾄまたは、このﾌﾗｸﾞへの論理0書き込みによってﾘｾｯﾄ(0)されます。
● ﾋﾞｯﾄ2 - BORF : 低電圧ﾘｾｯﾄ ﾌﾗｸﾞ (Brown-Out Reset Flag)

このﾋﾞｯﾄは低電圧ﾘｾｯﾄが起こると設定(1)されます。このﾋﾞｯﾄは電源ONﾘｾｯﾄまたは、このﾌﾗｸﾞへの論理0書き込みによってﾘｾｯﾄ(0)されます。
● ﾋﾞｯﾄ1 - EXTRF : 外部ﾘｾｯﾄ ﾌﾗｸﾞ (External Reset Flag)

このﾋﾞｯﾄは外部ﾘｾｯﾄが起こると設定(1)されます。このﾋﾞｯﾄは電源ONﾘｾｯﾄまたは、このﾌﾗｸﾞへの論理0書き込みによってﾘｾｯﾄ(0)されます。
● ﾋﾞｯﾄ0 - PORF : 電源ONﾘｾｯﾄ ﾌﾗｸﾞ (Power-on Reset Flag)

このﾋﾞｯﾄは電源ONﾘｾｯﾄが起こると設定(1)されます。このﾋﾞｯﾄはこのﾌﾗｸﾞへの論理0書き込みによってのみﾘｾｯﾄ(0)されます。
ﾘｾｯﾄ条件の確認にﾘｾｯﾄ ﾌﾗｸﾞを使うため、使用者はﾌﾟﾛｸﾞﾗﾑ内で可能な限り早くMCUSRを読み、そして解除(0)すべきです。別のﾘｾｯﾄが起こる前にこのﾚｼﾞｽﾀが解除(0)されると、そのﾘｾｯﾄ元はﾘｾｯﾄ ﾌﾗｸﾞを調べることによって得られます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]30

8.5.2. WDTCR - ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ (Watchdog Timer Control Register)ﾋﾞｯﾄ$21 ($41)
Read/Write
初期値

7

6

5

4

3

2

1

0

WDIF

WDIE

WDP3

WDCE

WDE

WDP2

WDP1

WDP0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
不定

R/W
0

R/W
0

R/W
0

WDTCR

● ﾋﾞｯﾄ7 - WDIF : ｳｫｯﾁﾄﾞｯｸﾞ割り込み要求ﾌﾗｸﾞ (Watchdog Interrupt Flag)

ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが割り込みに設定され、ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏで計時完了が起こると、本ﾋﾞｯﾄが設定(1)されます。対応する割り込み処理ﾍﾞｸﾀを実行すると、WDIFはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにWDIFはこのﾌﾗｸﾞへの論理1書き込みによっても解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとｳｫｯﾁﾄﾞｯｸﾞ割り込み許可(WDIE)が設定(1)されていれば、ｳｫｯﾁﾄﾞｯｸﾞ計時完了割り込みが実行されます。
● ﾋﾞｯﾄ6 - WDIE : ｳｫｯﾁﾄﾞｯｸﾞ割り込み許可 (Watchdog Interrupt Enable)

このﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ｳｫｯﾁﾄﾞｯｸﾞ割り込みが許可されます。この動作ではｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏで計時完了が起きる場合、ﾘｾｯﾄに代わって対応する割り込みが実行されます。
WDEが設定(1)されると、WDIEは計時完了が起きるとき、ﾊｰﾄﾞｳｪｱによって自動的に解除(0)されます。これは割り込みを使う間のｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ保護を維持するのに有用です。WDIEﾋﾞｯﾄが解除(0)された後、次の計時完了はﾘｾｯﾄを生成するでしょう。このｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄを避けるには、各割り込み後にWDIEが設定(1)されな
ければなりません。

表8-2. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定
WDE WDIE 動作状態 計時完了での動作
0
0
停止
なし
0
1
走行
割り込み
1
0
走行
ﾘｾｯﾄ
1
1
走行
割り込み

● ﾋﾞｯﾄ4 - WDCE : ｳｫｯﾁﾄﾞｯｸﾞ変更許可 (Watchdog Change Enable)

ｳｫｯﾁﾄﾞｯｸﾞ許可(WDE)ﾋﾞｯﾄが論理0を書かれるとき、このﾋﾞｯﾄは設定(1)されなければなりません。さもなければ、ｳｫｯﾁﾄﾞｯｸﾞは禁止されません。一旦1を書かれると、ﾊｰﾄﾞｳｪｱが4ｸﾛｯｸ周期後、このﾋﾞｯﾄを解除(0)します。ｳｫｯﾁﾄﾞｯｸﾞ禁止手順についてはWDEﾋﾞｯﾄの記述を参照してください。このﾋﾞｯﾄは前置分周ﾋﾞｯﾄを変更する時も設定(1)されなければなりません。29頁の「ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定変更の時
間制限手順」をご覧ください。
● ﾋﾞｯﾄ3 - WDE : ｳｫｯﾁﾄﾞｯｸﾞ許可 (Watchdog Enable)

ｳｫｯﾁﾄﾞｯｸﾞ許可(WDE)が論理1を書かれるとｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが許可され、WDEが論理0を書かれるとｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ機能が禁止されます。WDEはｳｫｯﾁﾄﾞｯｸﾞ変更許可(WDCE)ﾋﾞｯﾄが論理ﾚﾍﾞﾙ1を持つ場合だけ解除(0)できます。許可されているｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏを禁止
するには次の手順に従わなければなりません。
1. 同じ操作(命令)内で、ｳｫｯﾁﾄﾞｯｸﾞ変更許可(WDCE)ﾋﾞｯﾄとｳｫｯﾁﾄﾞｯｸﾞ許可(WDE)ﾋﾞｯﾄに論理1を書きます。例え禁止操作を始める
前のWDEが1に設定されていても、論理1がWDEに書かれなければなりません。
2. 次からの4ｸﾛｯｸ周期内で、論理0をWDEに書きます。これがｳｫｯﾁﾄﾞｯｸﾞを禁止します。
安全ﾚﾍﾞﾙ2では上記の手順でもｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏを禁止することができません。29頁の「ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定変更の時間制限手順」をご覧ください。
安全ﾚﾍﾞﾙ1ではWDEがMCUSRのｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ﾌﾗｸﾞ(WDRF)によって無効にされます。WDRFの説明については30頁の「MCUSR- MCU状態ﾚｼﾞｽﾀ」をご覧ください。これはWDRFが設定(1)されていると、WDEが常に設定(1)されることを意味します。WDEを解除(0)するには上記手順でｳｫｯﾁﾄﾞｯｸﾞを禁止する前にWDRFが解除(0)されなければなりません。この特徴は失敗を引き起こす状態中の複数ﾘｾｯﾄと失敗後の安全な起動を保証します。
注: ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが応用で使われないなら、ﾃﾞﾊﾞｲｽ初期化でｳｫｯﾁﾄﾞｯｸﾞ禁止手順を全て行なうことが重要です。ｳｫｯﾁﾄﾞｯｸﾞが偶然に許可されると(例えばﾎﾟｲﾝﾀの逸脱や低電圧(ﾌﾞﾗｳﾝｱｳﾄ)状態)、ﾃﾞﾊﾞｲｽはﾘｾｯﾄし、その転化が次のｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄを引き起こすでしょう。この状態を避けるため、応用ｿﾌﾄｳｪｱは初期化ﾙｰﾁﾝでWDRFﾌﾗｸﾞとWDE制御ﾋﾞｯﾄを常に解除(0)すべきです。
● ﾋﾞｯﾄ5,2～0 - WDP3～0 : ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択 (Watchdog Timer Prescaler 3,2,1 and 0)

このWDP3～0ﾋﾞｯﾄはｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが許可される時のｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏの前置分周を決めます。異なる前置分周値と対応する計時完了周期は表8-3.で示されます。
表8-3. ｳｫｯﾁﾄﾞｯｸﾞ前置分周器選択
WDP3
0
1
0
1
0
1
WDP2
WDP1
0
1
0
1
0
1
0
1
WDP0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
WDT発振周期数 2k
4k
8k
16k 32k 64k 128k 256k 512k 1024k(予約) (注)代表的計時完了
16ms 32ms 64ms 0.125s 0.25s 0.5s 1.0s 2.0s 4.0s 8.0s
周期 (VCC=5V)
注: 選択した場合、1010未満の有効な設定の(どれか)1つが使用されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]31

9. 割り込み
本項はATtiny25/45/85によって実行される割り込み操作の詳細を記述します。AVR割り込み操作の一般説明については8頁の「ﾘｾｯﾄと割り込みの扱い」を参照してください。

9.1. ATtiny25/45/85の割り込みﾍﾞｸﾀ
ATtiny25/45/85の割り込みﾍﾞｸﾀは下の表9-1.で記述されます。
表9-1. ﾘｾｯﾄと割り込みのﾍﾞｸﾀ
ﾍﾞｸﾀ番号
ﾌﾟﾛｸﾞﾗﾑ ｱﾄﾞﾚｽ
1
$0000
2
$0001
3
$0002
4
$0003
5
$0004
6
$0005
7
$0006
8
$0007
9
$0008
10
$0009
11
$000A
12
$000B
13
$000C
14
$000D
15
$000E

発生元
ﾘｾｯﾄ
INT0
PCINT (PCI)
ﾀｲﾏ/ｶｳﾝﾀ1 COMPA
ﾀｲﾏ/ｶｳﾝﾀ1 OVF1
ﾀｲﾏ/ｶｳﾝﾀ0 OVF0EEPROM EE_RDY
ｱﾅﾛｸﾞ比較器 ANA_COMP
A/D変換器 ADC
ﾀｲﾏ/ｶｳﾝﾀ1 COMPB
ﾀｲﾏ/ｶｳﾝﾀ0 COMPA
ﾀｲﾏ/ｶｳﾝﾀ0 COMPB
ｳｫｯﾁﾄﾞｯｸﾞ WDT
USI STARTUSI OVF

備考
電源ON, WDT, BOD等の各種ﾘｾｯﾄ
外部割り込み要求0
ﾋﾟﾝ変化割り込み要求
ﾀｲﾏ/ｶｳﾝﾀ1比較A一致
ﾀｲﾏ/ｶｳﾝﾀ1溢れ
ﾀｲﾏ/ｶｳﾝﾀ0溢れ
EEPROM 操作可ｱﾅﾛｸﾞ比較器出力遷移
A/D変換完了
ﾀｲﾏ/ｶｳﾝﾀ1 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ0 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ0 比較B一致
ｳｫｯﾁﾄﾞｯｸﾞ計時完了
USI 開始条件検出
USI 計数器溢れ

ﾌﾟﾛｸﾞﾗﾑが決して割り込み元を許可しないなら、割り込みﾍﾞｸﾀは使われず、これらの位置に通常のﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞが配置できます。
ATtiny25/45/85での代表的で一般的な割り込みﾍﾞｸﾀ ｱﾄﾞﾚｽ構成設定が次のﾌﾟﾛｸﾞﾗﾑ例で示されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
$0000
ORG
$0000
$0001
$0002
$0003
$0004
$0005
$0006
$0007
$0008
$0009
$000A
$000B
$000C
$000D
$000E
;
$000F

RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RJMP
RESET:$0000;ﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ先頭位置

RESET
INT0_ISR
PCINT0_ISR
TIM1_COMPA_ISR
TIM1_OVF_ISR
TIM0_OVF_ISR
EE_RDY_ISR
ANA_COMP_ISR
ADC_ISR
TIM1_COMPB_ISR
TIM0_COMPA_ISR
TIM0_COMPB_ISR
WDT_OVF_ISR
USI_START_ISR
USI_OVF_ISR;各種ﾘｾｯﾄ;外部割り込み要求0;ﾋﾟﾝ変化割り込み要求;ﾀｲﾏ/ｶｳﾝﾀ1比較A一致;ﾀｲﾏ/ｶｳﾝﾀ1溢れ;ﾀｲﾏ/ｶｳﾝﾀ0溢れ;EEPROM操作可;ｱﾅﾛｸﾞ比較器出力遷移;A/D変換完了;ﾀｲﾏ/ｶｳﾝﾀ1比較B一致;ﾀｲﾏ/ｶｳﾝﾀ0比較A一致;ﾀｲﾏ/ｶｳﾝﾀ0比較B一致;ｳｫｯﾁﾄﾞｯｸﾞ計時完了;USI 開始条件検出;USI 計数器溢れ"命令";主ﾌﾟﾛｸﾞﾗﾑ開始

注: 4頁の「ｺｰﾄﾞ例」をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]32

9.2. 外部割り込み
外部割り込みはINT0ﾋﾟﾝまたはPCINT0～5ﾋﾟﾝの何れかによって起動されます。許可したなら、例えINT0またはPCINT0～5ﾋﾟﾝが出力として設定されても、割り込みが起動することに注目してください。この特徴はｿﾌﾄｳｪｱ割り込みを生成する方法を提供します。ﾋﾟﾝ変化割り込みPCIは許可したPCINT0～5の何れかが切り替わると起動します。ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ(PCMSK)は、どのﾋﾟﾝがﾋﾟﾝ変化割り込み要因となるかを制御します。PCINT0～5でのﾋﾟﾝ変化割り込みは非同期に検知されます。これはそれらの割り込みがｱｲ
ﾄﾞﾙ動作以外の休止形態からもﾃﾞﾊﾞｲｽを起動するのに使えることを意味します。
INT0割り込みは上昇端または下降端(含む両端)またはLowﾚﾍﾞﾙによって起動できます。これはMCU制御ﾚｼﾞｽﾀ(MCUCR)の詳述で示される設定です。INT0割り込みがﾚﾍﾞﾙ起動として設定、且つ許可されると、そのﾋﾟﾝがLowに保持される限り、割り込みは(継続的に)起動します。INT0の上昇端または下降端割り込みの認知は15頁の「ｸﾛｯｸ系統とその配給」で記述されるI/Oｸﾛｯｸの存在を必要とすることに注意してください。

9.2.1. Lowﾚﾍﾞﾙ割り込み
INT0のLowﾚﾍﾞﾙ割り込みは非同期に検知されます。これはそれらの割り込みがｱｲﾄﾞﾙ動作以外の休止形態からもﾃﾞﾊﾞｲｽを起動するのに使えることを意味します。I/Oｸﾛｯｸはｱｲﾄﾞﾙ動作を除く全休止形態で停止されます。
ﾚﾍﾞﾙ起動割り込みがﾊﾟﾜｰﾀﾞｳﾝ動作からの起動に使われる場合、この必要としたﾚﾍﾞﾙはﾚﾍﾞﾙ割り込みを起動する完全な起動復帰のため、MCUに対して充分長く保持されなければならないことに注意してください。このﾚﾍﾞﾙが起動時間の最後に先立って消滅すると、MCUは今までどおり起動しますが、割り込みが生成されません。起動時間は15頁の「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」で示されるように
SUTﾋｭｰｽﾞとCKSELﾋｭｰｽﾞで定義されます。
ﾃﾞﾊﾞｲｽが起動復帰する前に割り込みﾋﾟﾝ上のLowﾚﾍﾞﾙが取り去られると、ﾌﾟﾛｸﾞﾗﾑ実行は割り込み処理ﾙｰﾁﾝへ転換されませんが、
SLEEP命令に続く命令から継続します。

9.2.2. ﾋﾟﾝ変化割り込みﾀｲﾐﾝｸﾞ
ﾋﾟﾝ変化割り込みの例は図9-1.で示されます。
図9-1. ﾋﾟﾝ変化割り込みﾀｲﾐﾝｸﾞ
PCINTn

D

Q

A

D

Q

B

E

PCMSKのPCINTn

clk
～

本数分合成

clk

C

D

Q

D

D

Q

E

D

Q

PCIF

PCINTn
A: ﾗｯﾁ
B: 遅延
C: 変化
D: 遅延
E: 遅延
PCIF

9.3. 外部割り込み用ﾚｼﾞｽﾀ
9.3.1. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)
MCU制御ﾚｼﾞｽﾀは割り込み条件制御ﾋﾞｯﾄを含みます。
ﾋﾞｯﾄ$35 ($55)
Read/Write
初期値

7

6

5

4

3

2

1

0

BODS

PUD

SE

SM1

SM0

BODSE

ISC01

ISC00

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

MCUCR

● ﾋﾞｯﾄ1,0 - ISC01,0 : 外部割り込み0条件制御 (Interrupt Sense Control 0 bit1 and 0)

外部割り込み0はｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと一般割り込み
許可ﾚｼﾞｽﾀ(GIMSK)の外部割り込み0許可(INT0)ﾋﾞｯﾄが設定(1)される場合のINT
0外部ﾋﾟﾝによって活性(有効)にされます。割り込みを活性にする外部INT0ﾋﾟﾝのｴｯｼﾞとﾚﾍﾞﾙは表9-2.で定義されます。INT0ﾋﾟﾝの値はｴｯｼﾞ検出に先立って採取さます。ｴｯｼﾞまたは論理変化割り込みが選択される場合、1ｸﾛｯｸ周期よりも長く留まるﾊﾟﾙｽは割り込みを生成します。より短いﾊﾟﾙｽは割り込み発生が保証されません。Lowﾚﾍﾞﾙ割り込みが選択される場合、そのLowﾚﾍﾞﾙは割り込みを生成するために現在実行している命令の完了まで保たれなければなりません。

表9-2. 外部割り込み0(INT0)割り込み条件
ISC01 ISC00
割り込み発生条件0
INT0ﾋﾟﾝのLowﾚﾍﾞﾙ0
INT0ﾋﾟﾝの論理変化(両端)011INT0ﾋﾟﾝの下降端
0
INT0ﾋﾟﾝの上昇端
1
1ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]33

9.3.2. GIMSK - 一般割り込み許可ﾚｼﾞｽﾀ (General Interrupt Mask Register)ﾋﾞｯﾄ$3B ($5B)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

INT0

PCIE

-

-

-

-

-

R
0

R/W
0

R/W
0

R
0

R
0

R
0

R
0

R
0

GIMSK

● ﾋﾞｯﾄ7,4～0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - INT0 : 外部割り込み0許可 (External Interrupt Request 0 Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、INT0ﾋﾞｯﾄが設定(1)されると、INT0外部ﾋﾟﾝ割り込みが許可されます。
MCU制御ﾚｼﾞｽﾀ(MCUCR)の割り込み条件制御0のﾋﾞｯﾄ1と0(ISC01,0)はこの外部割り込みがINT0ﾋﾟﾝの上昇端、下降端、両端、またはLowﾚﾍﾞﾙのどれで活性(有効)にされるかを定義します。例えINT0ﾋﾟﾝが出力として設定されても、このﾋﾟﾝの動きは割り込み要求を引き起こします。外部割り込み要求0に対応する割り込みはINT0割り込みﾍﾞｸﾀから実行されます。
● ﾋﾞｯﾄ5 - PCIE : ﾋﾟﾝ変化割り込み許可 (Pin Change Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、このPCIEﾋﾞｯﾄが設定(1)されると、ﾋﾟﾝ変化割り込みが許可されます。
許可したPCINT0～5ﾋﾟﾝの何れかの変化が割り込みを起こします。このﾋﾟﾝ変化割り込み要求に対応する割り込みはPCI割り込みﾍﾞｸ
ﾀから実行されます。PCINT0～5ﾋﾟﾝはﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ(PCMSK)によって個別に許可されます。

9.3.3. GIFR - 一般割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (General Interrupt Flag Register)ﾋﾞｯﾄ$3A ($5A)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

INTF0

PCIF

-

-

-

-

-

R
0

R/W
0

R/W
0

R
0

R
0

R
0

R
0

R
0

GIFR

● ﾋﾞｯﾄ7,4～0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - INTF0 : 外部割り込み0要求ﾌﾗｸﾞ (External Interrupt Flag0)

INT0ﾋﾟﾝ上のｴｯｼﾞまたは論理変化が割り込み要求を起動すると、INTF0が設定(1)になります。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと一般割り込み許可ﾚｼﾞｽﾀ(GIMSK)の外部割り込み0許可(INT0)ﾋﾞｯﾄが設定(1)なら、MCUは対応する割り込みﾍﾞｸﾀへ飛びます。このﾌﾗｸﾞは割り込みﾙｰﾁﾝが実行されると解除(0)されます。代わりにこのﾌﾗｸﾞは論理1を書くことによっても解除(0)できます。
INT0がﾚﾍﾞﾙ割り込みとして設定されると、このﾌﾗｸﾞは常に解除(0)されます。
● ﾋﾞｯﾄ5 - PCIF : ﾋﾟﾝ変化割り込み要求ﾌﾗｸﾞ (Pin Change Interrupt Flag)

PCINT0～5ﾋﾟﾝの何れかの論理変化が割り込み要求を起動すると、PCIFが設定(1)になります。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと一般割り込み許可ﾚｼﾞｽﾀ(GIMSK)のﾋﾟﾝ変化割り込み許可(PCIE)ﾋﾞｯﾄが設定(1)なら、MCUは対応する割り込みﾍﾞｸﾀへ飛びます。このﾌﾗｸﾞは割り込みﾙｰﾁﾝが実行されると解除(0)されます。代わりに本ﾌﾗｸﾞは論理1を書くことによっても解除(0)できます。

9.3.4. PCMSK - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ (Pin Change Mask)
ﾋﾞｯﾄ$15 ($35)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

PCINT5

PCINT4

PCINT3

PCINT2

PCINT1

PCINT0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

PCMSK

● ﾋﾞｯﾄ7,6 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ5～0 - PCINT5～PCINT0 : ﾋﾟﾝ変化割り込み5～0許可 (Pin Change Enable Mask 5～0)

各PCINT0～5ﾋﾞｯﾄは対応するI/Oﾋﾟﾝでﾋﾟﾝ変化割り込みが許可されるかどうかを選びます。PCINT0～5と一般割り込み許可ﾚｼﾞｽﾀ(GIMSK)のPCIEが設定(1)なら、対応するI/Oﾋﾟﾝのﾋﾟﾝ変化割り込みが許可されます。PCINT0～5が解除(0)されると、対応するI/Oﾋﾟﾝのﾋﾟﾝ変化割り込みは禁止されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]34

10. 入出力ﾎﾟｰﾄ
10.1. 序説
全てのAVRのﾎﾟｰﾄは標準ﾃﾞｼﾞﾀﾙI/Oﾎﾟｰﾄとして使われる時に真の読み-変更-書き 図10-1. 入出力ﾋﾟﾝ等価回路(ﾘｰﾄﾞ ﾓﾃﾞｨﾌｧｲ ﾗｲﾄ)を機能的に持ちます。これはSBIとCBI命令で他のどのﾋﾟﾝの方
VCC
VCC
向をも無意識に変更することなく、1つのﾎﾟｰﾄ ﾋﾟﾝの方向を変更できることを意味します。(出力として設定されていれば)駆動値を変更、または(入力として設定されていれば)ﾌﾟﾙｱｯﾌﾟ抵抗を許可/禁止する時にも同じく適用されます。各出力緩衝部は論理回路
高い吐き出し(ｿｰｽ)と吸い込み(ｼﾝｸ)の両能力で対称的な駆動特性を持ちます。こ
Rpu
C
pin
のﾋﾟﾝ駆動部はLED(表示器)を直接駆動するのに充分な強さです。全てのﾎﾟｰﾄ ﾋﾟﾝ
Pxn
は個別に選択可能な、供給電圧で抵抗値が変化しないﾌﾟﾙｱｯﾌﾟ抵抗を持っていま
詳細についてはす。全てのI/Oﾋﾟﾝは図10-1.で示されるようにVCCとGNDの両方に保護ﾀﾞｲｵｰﾄﾞがあ「標準ﾃﾞｼﾞﾀﾙI/O」図
をご覧くださいります。各値の完全な一覧については108頁の「電気的特性」を参照してください。
本項内の全てのﾚｼﾞｽﾀとﾋﾞｯﾄの参照は一般形で記されます。小文字の'x'はﾎﾟｰﾄ番
号文字、小文字の'n'はﾋﾞｯﾄ番号を表します。けれどもﾌﾟﾛｸﾞﾗﾑ内でﾚｼﾞｽﾀやﾋﾞｯﾄ定義に使うとき、正確な形式(例えば、ここで一般に記されたPORTxnがﾎﾟｰﾄBのﾋﾞｯﾄ3に対してはPORTB3)が使われなければなりません。物理的なI/Oﾚｼﾞｽﾀとﾋﾞｯﾄ位置は42頁の「I/O
ﾎﾟｰﾄ用ﾚｼﾞｽﾀ」で一覧されます。
各々1つの出力ﾚｼﾞｽﾀ(PORTx)、方向ﾚｼﾞｽﾀ(DDRx)、入力ﾚｼﾞｽﾀ(PINx)の各ﾎﾟｰﾄに対して、3つI/Oﾒﾓﾘ ｱﾄﾞﾚｽ位置が割り当てられます。入力ﾚｼﾞｽﾀのI/O位置は読むだけで、一方出力ﾚｼﾞｽﾀと方向ﾚｼﾞｽﾀは読み書き(両方)です。けれどもPINxﾚｼﾞｽﾀのﾋﾞｯﾄへの論理
1書き込みは、出力ﾚｼﾞｽﾀの対応ﾋﾞｯﾄ値を(1/0)反転する結果になります。加えてMCU制御ﾚｼﾞｽﾀ(MCUCR)のﾌﾟﾙｱｯﾌﾟ禁止(PUD)ﾋﾞｯﾄが設定(1)されると、全ﾎﾟｰﾄで全ﾋﾞｯﾄに対してﾌﾟﾙｱｯﾌﾟ機能を禁止します。
標準ﾃﾞｼﾞﾀﾙI/OとしてのI/Oﾎﾟｰﾄの使用は次の「標準ﾃﾞｼﾞﾀﾙ入出力としてのﾎﾟｰﾄ」で記述されます。多くのﾎﾟｰﾄ ﾋﾟﾝはﾃﾞﾊﾞｲｽの周辺機能用の交換機能と多重化されます。ﾎﾟｰﾄ ﾋﾟﾝとの各交換機能のｲﾝﾀｰﾌｪｰｽ法は38頁の「交換ﾎﾟｰﾄ機能」で記述されます。交換機
能の完全な記述については個別機能部項を参照してください。
ﾎﾟｰﾄ ﾋﾟﾝのいくつかの交換機能の許可は、そのﾎﾟｰﾄ内の他のﾋﾟﾝの標準ﾃﾞｼﾞﾀﾙ入出力としての使用に影響しないことに注意してください。

10.2. 標準ﾃﾞｼﾞﾀﾙ入出力としてのﾎﾟｰﾄ
このﾎﾟｰﾄは任意の内部ﾌﾟﾙｱｯﾌﾟ付き双方向I/Oﾎﾟｰﾄです。図10-2.はここで属にPxnと呼ばれるI/Oﾎﾟｰﾄ ﾋﾟﾝの1つの機能説明を示します。
図10-2. 標準ﾃﾞｼﾞﾀﾙ入出力回路構成
VCC
RDx:DDRx読み

8-bit Data Bus

DDxn:方向ﾗｯﾁ
WDx:DDRx書き

PUD:ﾌﾟﾙｱｯﾌﾟ禁止
D

Q
R

RESET:ﾘｾｯﾄ
RRx:ﾎﾟｰﾄxﾗｯﾁ読み

1
0

D

WPx:PINx書き
WRx:PORTx書きQ

Pxn

PORTxn:出力ﾗｯﾁ

R

SLEEP:休止制御

RESET:ﾘｾｯﾄ
RPx:ﾎﾟｰﾄxﾋﾟﾝ読み

同期化回路
Q

D

Q

PINxn:入力ﾚｼﾞｽﾀ

D
E

clkI/O:I/Oｸﾛｯｸ
注: WRx, WPx WDx, RRx, RPx, RDxは同一ﾎﾟｰﾄ内の全ﾋﾟﾝで共通です。
clkI/O,SLEEP, PUDは全ﾎﾟｰﾄで共通です。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]35

10.2.1. ﾋﾟﾝの設定
各ﾎﾟｰﾄ ﾋﾟﾝは3つのﾚｼﾞｽﾀ ﾋﾞｯﾄ、DDxn、PORTxn、PINxnから成ります。42頁の「I/Oﾎﾟｰﾄ用ﾚｼﾞｽﾀ」で示されるように、DDxnﾋﾞｯﾄはDDRx I/Oｱﾄﾞﾚｽ、PORTxnﾋﾞｯﾄはPORTx I/Oｱﾄﾞﾚｽ、PINxﾋﾞｯﾄはPINx I/Oｱﾄﾞﾚｽでｱｸｾｽされます。
DDRxﾚｼﾞｽﾀ内のDDxnﾋﾞｯﾄはそのﾋﾟﾝの方向を選択します。DDxnが論理1を書かれるとPxnは出力ﾋﾟﾝとして設定されます。DDxnが論理0を書かれるとPxnは入力ﾋﾟﾝとして設定されます。
そのﾋﾟﾝが入力ﾋﾟﾝとして設定される時にPORTxnが論理1を書かれると、ﾌﾟﾙｱｯﾌﾟ抵抗が活性(有効)にされます。ﾌﾟﾙｱｯﾌﾟ抵抗をOFFに切り替えるにはPORTxnが論理0を書かれるか、またはそのﾋﾟﾝが出力ﾋﾟﾝとして設定されなければなりません。ﾎﾟｰﾄ ﾋﾟﾝは例えｸﾛｯｸが動いていなくても、ﾘｾｯﾄ条件が活性(有効)になるとHi-Zにされます。
そのﾋﾟﾝが出力ﾋﾟﾝとして設定される時にPORTxnが論理1を書かれると、そのﾎﾟｰﾄ ﾋﾟﾝはHigh(1)に駆動されます。そのﾋﾟﾝが出力ﾋﾟﾝとして設定される時にPORTxnが論理0を書かれると、そのﾎﾟｰﾄ ﾋﾟﾝはLow(0)に駆動されます。

10.2.2. ﾋﾟﾝの出力交互切り替え
PINxnへの論理1書き込みはDDRxnの値に拘らず、PORTxnの値を反転切り替えします。SBI命令がﾎﾟｰﾄ内の1ﾋﾞｯﾄの反転切り替えに使えることに注目してください。

10.2.3. 入出力間の切り替え
Hi-Z入力(DDxn=0, PORTxn=0)とHigh出力(DDxn=1, PORTxn=1)間の切り替え時、ﾌﾟﾙｱｯﾌﾟ許可入力(DDxn=0, PORTxn=1)またはLow出力(DDxn=1, PORTxn=0)のどちらかの中間状態が生じるに違いありません。通常、高ｲﾝﾋﾟｰﾀﾞﾝｽ環境は強力なHigh(吐き出し)
駆動部とﾌﾟﾙｱｯﾌﾟ間の違いに気付かないので、ﾌﾟﾙｱｯﾌﾟが許可された状態は十分受け入れられます。この事例でないなら、全ﾎﾟｰﾄの全ﾌﾟﾙｱｯﾌﾟを禁止するために、MCU制御ﾚｼﾞｽﾀ(MCUCR)のﾌﾟﾙｱｯﾌﾟ禁止(PUD)ﾋﾞｯﾄが設定(1)できます。
ﾌﾟﾙｱｯﾌﾟ入力とLow出力間の切り替えは同じ問題を発生します。使用者は中間状態としてHi-Z入力(DDxn=0, PORTxn=0)またはHigh
出力(DDxn=1, PORTxn=1)のどちらかを使わなければなりません。
表10-1.はﾋﾟﾝ値に対する制御信号の一覧を示します。
表10-1. ﾎﾟｰﾄ ﾋﾟﾝの設定
DDxn
PORTxn PUD (MCUCR)
0
X
0
0
0
1
0
1
1
1
X
0
X
1
1

入出力
入力
入力
入力
出力
出力

ﾌﾟﾙｱｯﾌﾟ抵抗
なし
あり
なし
なし
なし

備考
高ｲﾝﾋﾟｰﾀﾞﾝｽ (Hi-Z)
Pxnに外部からLowを入力すると吐き出し電流が流れます。
高ｲﾝﾋﾟｰﾀﾞﾝｽ (Hi-Z)
Low (吸い込み)出力
High (吐き出し)出力

10.2.4. ﾋﾟﾝ値の読み込み
DDxn方向ﾋﾞｯﾄの設定に関係なく、ﾎﾟｰﾄ ﾋﾟﾝはPINxnﾚｼﾞｽ
ﾀ ﾋﾞｯﾄを通して読めます。図10-2.で示されるようにPINxn
ﾚｼﾞｽﾀ ﾋﾞｯﾄと先行するﾗｯﾁは同期化回路を構成します。
これは物理ﾋﾟﾝが内部ｸﾛｯｸのｴｯｼﾞ付近で値を変える場
合の未定義状態(ﾒﾀ ｽﾃｰﾌﾞﾙ)を避けるために必要とされますが、それは遅延も持ち込みます。図10-3.は外部的に加えられたﾋﾟﾝ値を読む時の同期化ﾀｲﾐﾝｸﾞ図を示します。伝播遅延の最小と最大は各々tpd,minとtpd,maxで示されます。
(図10-3.で)ｼｽﾃﾑ ｸﾛｯｸの最初の下降端直後から始まるｸ
ﾛｯｸ周期を考察してください。このﾗｯﾁはｸﾛｯｸがLowの時に閉じ、ｸﾛｯｸがHighの時に同期ﾗｯﾁ信号の斜線部分で示されるように通過(ﾄﾗﾝｽﾍﾟｱﾚﾝﾄ)となります。この信号値
はｼｽﾃﾑ ｸﾛｯｸがLowになる時に保持(ﾗｯﾁ)されます。それが続くｸﾛｯｸの上昇端でPINxnﾚｼﾞｽﾀに取り込まれます。2つの矢印tpd,minとtpd,maxによって示されるように、ﾋﾟﾝ上の単一信号遷移は出現時点に依存して0.5～1.5 ｼｽ
ﾃﾑ ｸﾛｯｸ周期遅らされます。
ｿﾌﾄｳｪｱが指定したﾋﾟﾝ値を読み戻す時は、図10-4.で示されるようにNOP命令が挿入されなければなりません。
OUT命令はｼｽﾃﾑ ｸﾛｯｸの上昇端で同期ﾗｯﾁを設定します。この場合、同期化回路を通過する遅延時間(tpd)は1ｼｽﾃﾑ ｸﾛｯｸ周期です。

図10-3. 外部供給ﾋﾟﾝ値読み込み時の同期化ｼｽﾃﾑ ｸﾛｯｸ
実行命令

XXX

XXX

IN R16,PINx

XXX

以前の値

入力値

同期ﾗｯﾁ
PINxn
R16値

tpd,max

tpd,min

図10-4. ﾌﾟﾛｸﾞﾗﾑで設定したﾋﾟﾝ値読み戻し時の同期化ｼｽﾃﾑ ｸﾛｯｸ
実行命令

OUT PORTxNOP

IN R16,PINx

XXX

以前の値

入力値

同期ﾗｯﾁ
PINxn
R16値

tpd

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]36

次のｺｰﾄﾞ例はﾎﾟｰﾄBﾋﾟﾝの0と1をHigh出力、2と3をLow出力、4をﾌﾟﾙｱｯﾌﾟ指定として4と5を入力に設定する方法を示します。結果のﾋﾟﾝ値が再び読み戻されますが、前記で検討されたように、いくつかのﾋﾟﾝへ直前に指定された値を読み戻すことができるようにNOP命令が挿入されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例～
LDI
R16,(1<<PB4)|(1<<PB1)|(1<<PB0)
LDI
R17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)OUTPORTB,R16OUT
DDRB,R17NOP
IN
R16,PINB～
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned char i;～
PORTB = (1<<PB4)|(1<<PB1)|(1<<PB0);DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);__no_opration();i = PINB;～;;ﾌﾟﾙｱｯﾌﾟとHigh値を取得;出力ﾋﾞｯﾄ値を取得;ﾌﾟﾙｱｯﾌﾟとHigh値を設定;入出力方向を設定;同期化遅延対処;ﾋﾟﾝ値読み戻し;/* *//* ﾌﾟﾙｱｯﾌﾟとHigh値を設定 *//* 入出力方向を設定 *//* 同期化遅延対処 *//* ﾋﾟﾝ値読み戻し *//* */注: ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑについてはﾌﾟﾙｱｯﾌﾟがﾋﾟﾝ0,1,4に設定されてから、ﾋﾞｯﾄ0と1の強力なHigh駆動部としての再定義、ﾋﾞｯﾄ2と3のLow駆動部としての定義、方向ﾋﾞｯﾄが正しく設定されるまでの時間を最小とするために2つの一時ﾚｼﾞｽﾀが使われます。

10.2.5. ﾃﾞｼﾞﾀﾙ入力許可と休止形態
図10-2.で示されるようにﾃﾞｼﾞﾀﾙ入力信号はｼｭﾐｯﾄ ﾄﾘｶﾞの入力をGNDにｸﾗﾝﾌﾟできます。この図でSLEEPと印された信号は入力信号のいくつかが開放のまま、またはVCC/2付近のｱﾅﾛｸﾞ信号電圧を持つ場合の高消費電力を避けるため、ﾊﾟﾜｰﾀﾞｳﾝ動作でMCU休止
制御器によって設定(1)されます。
SLEEPは外部割り込みﾋﾟﾝとして許可されたﾎﾟｰﾄ ﾋﾟﾝに対しては無視されます。外部割り込み要求が許可されないなら、SLEEPは他のﾋﾟﾝについてと同様に有効です。SLEEPは38頁の「交換ﾎﾟｰﾄ機能」で記載されるように様々な他の交換機能によっても無視されます。
外部割り込みが許可されていない"上昇端、下降端または論理変化(両端)割り込み"として設定された非同期外部割り込みﾋﾟﾝに論理1が存在すると、上で言及した休止形態から(復帰)再開する時に、これらの休止形態に於けるｸﾗﾝﾌﾟが要求された論理変化を生ずるので、対応する外部割り込み要求ﾌﾗｸﾞが設定(1)されます。

10.2.6. 未接続ﾋﾟﾝ
いくつかのﾋﾟﾝが未使用にされる場合、それらのﾋﾟﾝが定義されたﾚﾍﾞﾙを持つのを保証することが推奨されます。例え上記のような深い休止形態で多くのﾃﾞｼﾞﾀﾙ入力が禁止されるとしても、ﾃﾞｼﾞﾀﾙ入力が許可される他の全ての動作(ﾘｾｯﾄ、活動動作、ｱｲﾄﾞﾙ動作)で消費電流削減のため、浮き状態入力は避けられるべきです。
未使用ﾋﾟﾝの定義されたﾚﾍﾞﾙを保証する最も簡単な方法は内部ﾌﾟﾙｱｯﾌﾟを許可することです。この場合、ﾘｾｯﾄ中のﾌﾟﾙｱｯﾌﾟは禁止されます。ﾘｾｯﾄ中の低消費電力が重要なら、外部ﾌﾟﾙｱｯﾌﾟまたはﾌﾟﾙﾀﾞｳﾝを使うことが推奨されます。未使用ﾋﾟﾝを直接GNDまたはVCCに接続することは、ﾋﾟﾝが偶然に出力として設定されると過電流を引き起こす可能性があるため推奨されません。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]37

10.3. 交換ﾎﾟｰﾄ機能
多くのﾎﾟｰﾄ ﾋﾟﾝには標準ﾃﾞｼﾞﾀﾙ入出力に加え交換機能があります。図10-5.は単純化された図10-2.でのﾎﾟｰﾄ ﾋﾟﾝ制御信号が交換機能によってどう重複できるかを示します。この重複信号は全てのﾎﾟｰﾄ ﾋﾟﾝに存在する訳ではありませんが、この図はAVR ﾏｲｸﾛ ｺﾝﾄ
ﾛｰﾗ系統の全ﾎﾟｰﾄ ﾋﾟﾝに適用できる一般的な記述として取り扱います。
図10-5. 交換ﾎﾟｰﾄ機能入出力回路構成
PUOExn:ﾌﾟﾙｱｯﾌﾟ値交換許可
PUOVxn:ﾌﾟﾙｱｯﾌﾟ値交換値
PUD:ﾌﾟﾙｱｯﾌﾟ禁止

RDx:DDRx読み

8-bit Data Bus

DDxn:方向ﾗｯﾁ
WDx:DDRx書きD

DDOExn:方向値交換許可
DDOVxn:方向値交換値

Q
R

1
0

VCC

1
0

RESET:ﾘｾｯﾄ
RRx:ﾎﾟｰﾄxﾗｯﾁ読み

PTOExn:出力切替許可

PVOExn:出力値交換許可
PVOVxn:出力値交換値

10

D

WPx:PINx書き
WRx:PORTx書き

Q
R

RESET:ﾘｾｯﾄ
RPx:ﾎﾟｰﾄxﾋﾟﾝ読み

PORTxn:出力ﾗｯﾁ
DIEOExn:ﾃﾞｼﾞﾀﾙ入力許可交換許可
DIEOVxn:ﾃﾞｼﾞﾀﾙ入力許可交換値
SLEEP:休止制御
同期化回路
Q

D

PINxn:入力ﾚｼﾞｽﾀ

Q

1
0

Pxn

1
0

D
E

clkI/O:I/Oｸﾛｯｸ
DIxn:ﾃﾞｼﾞﾀﾙ入力
AIOxn:ｱﾅﾛｸﾞ入出力
注: WRx, WPx, WDx, RRx, RPx, RDxは同一ﾎﾟｰﾄ内の全ﾋﾟﾝで共通です。
clkI/O,SLEEP, PUDは全ﾎﾟｰﾄで共通です。他の信号は各ﾋﾟﾝ固有です。
表10-2.は重複(交換)信号の機能一覧を示します。図10-5.で示すﾋﾟﾝとﾎﾟｰﾄは次表で示されません。重複(交換)信号は交換機能を持つ機能部で内部的に生成されます。
表10-2. 交換機能用交換信号の一般定義
信号略名
信号名
意味
1で、ﾌﾟﾙｱｯﾌﾟ許可はPUOV信号で制御され、0の場合、DDxn=0, PORTxn=1, PUD=0でﾌﾟ
PUOE
ﾌﾟﾙｱｯﾌﾟ値交換許可
ﾙｱｯﾌﾟが許可されます。
PUOV
ﾌﾟﾙｱｯﾌﾟ値交換値
PUOE=1時、DDxn, PORTxn, PUDの値に関係なく、ﾌﾟﾙｱｯﾌﾟの有(1)/無(0)を指定します。
DDOE
方向値交換許可
1で、出力駆動部はDDOV信号で制御され、0の場合、DDxnﾚｼﾞｽﾀ値で制御されます。
DDOV
方向値交換値
DDOE=1時、DDxnﾚｼﾞｽﾀ値に関係なく、出力駆動部のON(1)/OFF(0)を制御します。
1で出力駆動部がONなら、ﾎﾟｰﾄ値はPVOV信号で制御されます。出力駆動部がONで0のPVOE
出力値交換許可場合、ﾎﾟｰﾄ値はPORTxnﾚｼﾞｽﾀ値で制御されます。
PVOV
出力値交換値
PVOE=1時、PORTxnﾚｼﾞｽﾀ値に関係なく、ﾎﾟｰﾄ値を制御(1/0)します。
PTOE
出力切替許可PTOE=1時、PORTxnﾚｼﾞｽﾀ値が反転します。
1で、ﾃﾞｼﾞﾀﾙ入力許可はDIEOV信号で制御され、0の場合、MCUの状態(活動動作、休止
DIEOE ﾃﾞｼﾞﾀﾙ入力許可交換許可形態)によって決定されます。
DIEOE=1時、MCUの状態(活動動作、休止形態)に関係なく、ﾃﾞｼﾞﾀﾙ入力を許可(1)/禁止
OIEOV ﾃﾞｼﾞﾀﾙ入力許可交換値(0)します。
交換機能用ﾃﾞｼﾞﾀﾙ入力です。この信号は図上でｼｭﾐｯﾄ ﾄﾘｶﾞ出力に接続されていますが、DI
ﾃﾞｼﾞﾀﾙ入力
これは同期化前となります。この信号はｸﾛｯｸとしての使用を除き、各交換機能自身が同期化します。
AIO
ｱﾅﾛｸﾞ入出力
交換機能用ｱﾅﾛｸﾞ入出力です。この信号はﾋﾟﾝに直接接続され、双方向使用ができます。
次節は交換機能に関連する重複(交換)信号と各ﾎﾟｰﾄの交換機能を簡単に記述します。更に先の詳細については交換機能の記述を参照してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]38

10.3.1. ﾎﾟｰﾄBの交換機能
ﾎﾟｰﾄBﾋﾟﾝの交換機能は表10-3.で示されます。
表10-3. ﾎﾟｰﾄBﾋﾟﾝの交換機能
ﾎﾟｰﾄ
ﾎﾟｰﾄ
交換機能
交換機能
ﾋﾟﾝ
ﾋﾟﾝ
RESET (外部ﾘｾｯﾄ入力)
dW(ﾃﾞﾊﾞｯｸﾞWIRE入出力)
MISO(SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾃﾞｰﾀ入力)
PB5
ADC0 (A/D変換ﾁｬﾈﾙ0入力)
DO(3線動作USIﾃﾞｰﾀ出力)
PCINT5 (ﾋﾟﾝ変化割り込み5入力)
OC0B (ﾀｲﾏ/ｶｳﾝﾀ0比較B一致/PWM-B出力)
PB1
XTAL2 (ｼｽﾃﾑ ｸﾛｯｸ用発振増幅器出力)
OC1A (ﾀｲﾏ/ｶｳﾝﾀ1比較A一致/PWM-A非反転出力)
CLKO (ｼｽﾃﾑ ｸﾛｯｸ出力)
AIN1(ｱﾅﾛｸﾞ比較器反転入力)
PB4 OC1B (ﾀｲﾏ/ｶｳﾝﾀ1比較B一致/PWM-B非反転出力)
PCINT1(ﾋﾟﾝ変化割り込み1入力)
ADC2 (A/D変換ﾁｬﾈﾙ2入力)
PCINT4 (ﾋﾟﾝ変化割り込み4入力)
XTAL1 (ｼｽﾃﾑ ｸﾛｯｸ用発振増幅器入力
または外部ｸﾛｯｸ信号入力)(外部ｼｽﾃﾑ ｸﾛｯｸ入力)
PB3 CLKIMOSI(SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾃﾞｰﾀ出力)
OC1B (ﾀｲﾏ/ｶｳﾝﾀ1比較B一致/PWM-B反転出力)DI(3線動作USIﾃﾞｰﾀ入力)
ADC3 (A/D変換ﾁｬﾈﾙ3入力)
SDA(2線動作USI(TWI)ﾃﾞｰﾀ入出力)
PCINT3 (ﾋﾟﾝ変化割り込み3入力)
OC0A (ﾀｲﾏ/ｶｳﾝﾀ0比較A一致/PWM-A出力)
SCK(SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ｸﾛｯｸ入力)
PB0
OC1A (ﾀｲﾏ/ｶｳﾝﾀ1比較A一致/PWM-A反転出力)
USCK (3線動作USIｸﾛｯｸ入出力)
AIN0(ｱﾅﾛｸﾞ比較器非反転入力)
SCL(2線動作USI(TWI)ｸﾛｯｸ入出力)
AREF(A/D変換外部基準電圧入力)
PB2 T0(ﾀｲﾏ/ｶｳﾝﾀ0 外部ｸﾛｯｸ入力)
PCINT0 (ﾋﾟﾝ変化割り込み0入力)
INT0(外部割り込み0入力)
ADC1 (A/D変換ﾁｬﾈﾙ1入力)
PCINT2 (ﾋﾟﾝ変化割り込み2入力)
交換ﾋﾟﾝの設定は次のとおりです。
●

RESET/dW/ADC0/PCINT5 - ﾎﾟｰﾄB ﾋﾞｯﾄ5 : PB5
・ RESET : 外部ﾘｾｯﾄ入力はLow活性(有効)で、RSTDISBLﾋｭｰｽﾞの非ﾌﾟﾛｸﾞﾗﾑ(1)により許可されます。このﾋﾟﾝがRESETﾋﾟﾝとして使われると、ﾌﾟﾙｱｯﾌﾟが活性(有効)にされ、出力駆動部とﾃﾞｼﾞﾀﾙ入力は非活性(無効)にされます。
・ dW : ﾃﾞﾊﾞｯｸﾞWIRE許可(DWEN)ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)され、施錠ﾋﾞｯﾄが非ﾌﾟﾛｸﾞﾗﾑ(1)にされると、対象ﾃﾞﾊﾞｲｽ内のﾃﾞﾊﾞｯｸﾞWIREｼｽﾃ
ﾑが活性(有効)にされます。RESETﾎﾟｰﾄ ﾋﾟﾝはﾌﾟﾙｱｯﾌﾟ許可のANDﾀｲ(ｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ)双方向I/Oﾋﾟﾝとして設定され、対象ﾃﾞﾊﾞｲｽとｴﾐｭﾚｰﾀ間の通信路になります。
・ ADC0 : A/D変換器ﾁｬﾈﾙ0入力。
・ PCINT5 : ﾋﾟﾝ変化割り込み元5入力。

●

XTAL2/CLKO/OC1B/ADC2/PCINT4 - ﾎﾟｰﾄB ﾋﾞｯﾄ4 : PB4
・ XTAL2 : ｼｽﾃﾑ ｸﾛｯｸ発振器ﾋﾟﾝ2。内部RC発振器、外部ｸﾛｯｸ、PLLｸﾛｯｸを除いて、全てのﾁｯﾌﾟ ｸﾛｯｸ元用ｸﾛｯｸ ﾋﾟﾝとして使われます。ｸﾛｯｸ ﾋﾟﾝとして使われると、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。ﾁｯﾌﾟ ｸﾛｯｸ元として内蔵校正可能RC発振器、外部ｸﾛｯｸ、またはPLLｸﾛｯｸを使うと、PB4は通常のI/Oﾋﾟﾝとして取り扱います。
・ CLKO : ｼｽﾃﾑ ｸﾛｯｸ出力。分周したｼｽﾃﾑ ｸﾛｯｸはPB4ﾋﾟﾝに出力できます。分周したｼｽﾃﾑ ｸﾛｯｸはCKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、PORTB4とDDB4設定に拘らず、出力されます。これはﾘｾｯﾄ中にも出力されます。
・ OC1B : ﾀｲﾏ/ｶｳﾝﾀ1の比較B一致出力。PB4ﾋﾟﾝは出力として設定(DDB4=1)される時にﾀｲﾏ/ｶｳﾝﾀ1の比較B一致用外部出力として扱えます。このOC1BﾋﾟﾝはPWM動作用出力ﾋﾟﾝでもあります。
・ ADC2 : A/D変換器ﾁｬﾈﾙ2入力。
・ PCINT4 : ﾋﾟﾝ変化割り込み元4入力。

●

XTAL1/CLKI/OC1B/ADC3/PCINT3 - ﾎﾟｰﾄB ﾋﾞｯﾄ3 : PB3
・ XTAL1 : ｼｽﾃﾑｸﾛｯｸ発振器ﾋﾟﾝ1。内部RC発振器、PLLｸﾛｯｸを除く全てのﾁｯﾌﾟ ｸﾛｯｸ元用ｸﾛｯｸ ﾋﾟﾝとして使われます。ｸﾛｯｸ ﾋﾟﾝとして使われると、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
・ CLKI : 外部ｸﾛｯｸ元からのｸﾛｯｸ入力、17頁の「外部ｸﾛｯｸ信号」をご覧ください。
・ OC1B : ﾀｲﾏ/ｶｳﾝﾀ1の比較B一致反転出力。PB3ﾋﾟﾝは出力として設定(DDB3=1)される時にﾀｲﾏ/ｶｳﾝﾀ1の比較B一致用外部出力として扱えます。このOC1BﾋﾟﾝはPWM動作用反転出力ﾋﾟﾝでもあります。
・ ADC3 : A/D変換器ﾁｬﾈﾙ3入力。
・ PCINT3 : ﾋﾟﾝ変化割り込み元3入力。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

39●

SCK/USCK/SCL/T0/INT0/ADC1/PCINT2 - ﾎﾟｰﾄB ﾋﾞｯﾄ2 : PB2
・ SCK : SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ｸﾛｯｸ入力。ｿﾌﾄｳｪｱからは利用できません。
・ USCK : 3線動作USIのｸﾛｯｸ入出力。
・ SCL : 2線動作USI(TWI)のｸﾛｯｸ入出力。
・ T0 : ﾀｲﾏ/ｶｳﾝﾀ0外部ｸﾛｯｸ入力はﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB(TCCR0B)のCS02とCS01ﾋﾞｯﾄを設定(1)することによって許可されます。
・ INT0 : 外部割り込み0入力。PB2ﾋﾟﾝはMCUへの外部割り込み元として扱えます。
・ ADC1 : A/D変換器ﾁｬﾈﾙ1入力。
・ PCINT2 : ﾋﾟﾝ変化割り込み元2入力。

●

MISO/DO/OC0B/OC1A/AIN1/PCINT1 - ﾎﾟｰﾄB ﾋﾞｯﾄ1 : PB1
・ MISO : SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾃﾞｰﾀ入力。ｿﾌﾄｳｪｱからは利用できません。
・ DO : 3線動作USIのﾃﾞｰﾀ出力。ﾃﾞｰﾀ出力(DO)はPORTB1値を無効にし、ﾃﾞｰﾀ方向(DDB1)ﾋﾞｯﾄが設定(1)されると、ﾎﾟｰﾄが駆動されます。けれどもPORTB1ﾋﾞｯﾄは未だﾌﾟﾙｱｯﾌﾟを制御し、方向が入力でPORTB1が設定(1)されるならﾌﾟﾙｱｯﾌﾟを許可します。
・ OC0B : ﾀｲﾏ/ｶｳﾝﾀ0の比較B一致出力。PB1ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ0の比較B一致用外部出力として扱えます。この機能を扱うため、このﾋﾟﾝは出力として設定(DDB1=1)されなければなりません。このOC0Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
・ OC1A : ﾀｲﾏ/ｶｳﾝﾀ1の比較A一致出力。PB1ﾋﾟﾝは出力として設定(DDB1=1)される時にﾀｲﾏ/ｶｳﾝﾀ1の比較A一致用外部出力として扱えます。このOC1AﾋﾟﾝはPWM動作用出力ﾋﾟﾝでもあります。
・ AIN1 : ｱﾅﾛｸﾞ比較器の反転入力。ｱﾅﾛｸﾞ比較器の機能を妨げるﾃﾞｼﾞﾀﾙ ﾎﾟｰﾄ機能を避けるため、内部ﾌﾟﾙｱｯﾌﾟをOFFにした入力としてﾎﾟｰﾄ ﾋﾟﾝを設定してください。
・ PCINT1 : ﾋﾟﾝ変化割り込み元1入力。

●

MOSI/DI/SDA/OC0A/OC1A/AIN0/AREF/PCINT0 - ﾎﾟｰﾄB ﾋﾞｯﾄ0 : PB0
・ MISO : SPI直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾃﾞｰﾀ出力。ｿﾌﾄｳｪｱからは利用できません。
・ DI : 3線動作USIのﾃﾞｰﾀ入力。3線動作USIは標準ﾎﾟｰﾄ機能を無効にしませんので、ﾋﾟﾝはDI機能用入力として設定しなければな
りません。
・ SDA : 2線動作USIのﾃﾞｰﾀ入出力(ｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ出力)。直列ﾃﾞｰﾀ ﾋﾟﾝは双方向でｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ出力を使います。SDAﾋﾟﾝは出力としてこのﾋﾟﾝを設定することによって許可されます。このﾋﾟﾝはDDB0が設定(1)されるとき、PORTB0またはUSI移動ﾚｼﾞｽﾀ(出力)が0の時にLowへ引き込まれます。ﾌﾟﾙｱｯﾌﾟは2線動作USIで禁止されます。
・ OC0A : ﾀｲﾏ/ｶｳﾝﾀ0の比較A一致出力。PB0ﾋﾟﾝは出力として設定(DDB0=1)される時にﾀｲﾏ/ｶｳﾝﾀ0の比較A一致用外部出力として扱えます。このOC0AﾋﾟﾝはPWM動作用出力ﾋﾟﾝでもあります。
・ OC1A : ﾀｲﾏ/ｶｳﾝﾀ1の比較A一致出力。PB0ﾋﾟﾝは出力として設定(DDB0=1)される時にﾀｲﾏ/ｶｳﾝﾀ1の比較A一致用外部出力として扱えます。このOC1AﾋﾟﾝはPWM動作用反転出力ﾋﾟﾝでもあります。
・ AIN0 : ｱﾅﾛｸﾞ比較器の非反転入力。ｱﾅﾛｸﾞ比較器の機能を妨げるﾃﾞｼﾞﾀﾙ ﾎﾟｰﾄ機能を避けるため、内部ﾌﾟﾙｱｯﾌﾟをOFFにした入力としてﾎﾟｰﾄ ﾋﾟﾝを設定してください。
・ AREF : A/D変換用外部基準電圧。このﾋﾟﾝが外部基準電圧またはAREFﾋﾟﾝでの外部ｺﾝﾃﾞﾝｻとの内部基準電圧(1.1V)として使われると、ﾌﾟﾙｱｯﾌﾟと出力駆動部はPB0で禁止されます。
・ PCINT0 : ﾋﾟﾝ変化割り込み元0入力。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]40表10-4.と表10-5.はﾎﾟｰﾄBの交換機能を38頁の図10-5.で示される交換信号に関連付けます。
表10-4. ﾎﾟｰﾄB5～3の交換機能用交換信号
信号名
PB5/RESET/ADC0/PCINT5
PB4/XTAL2/OC1B/ADC2/PCINT4PUOE
RSTDISBL・DWEN
0
PUOV
1
0
DDOE
RSTDISBL・DWEN
0
DDOV
ﾃﾞﾊﾞｯｸﾞWIRE送信0PVOE0OC1B許可
PVOV
0
OC1B
PTOE
0
0
DIEOE
RSTDISBL+(PCINT5・PCIE+ADC0D)
PCINT4・PCIE+ADC2D
DIEOV
ADC0D
ADC2D
DI
PCINT5入力
PCINT4入力
AIO
ﾘｾｯﾄ入力/ADC0入力
ADC2入力
注: RSTDISBLとDWENはﾌﾟﾛｸﾞﾗﾑ(0)時が1です。
表10-5. ﾎﾟｰﾄB2～0の交換機能用交換信号
PB2/SCK/USCK/SCL/
信号名
T0/INT0/ADC1/PCINT2
PUOE
2線USI
PUOV
0
DDOE
2線USI
(SCL保持+PORTB2)+DDB2
DDOV

PB1/MISO/DO/OC0B/
OC1A/AIN1/PCINT1
0
0
0
0

PVOE

2線USI・DDB2

OC0B許可+3線USI

PVOV
PTOE
DIEOE
DIEOV
DI
AIO

0
USITC
(PCINT2・PCIE)+ADC1D+USISIE
ADC1D
USCK/SCL/T0/INT0/PCINT2入力
ADC1入力OC0B+OC1A+DO
0(PCINT1・PCIE)+ADC1D
AIN1D
PCINT1入力
ｱﾅﾛｸﾞ比較器反転入力

PB3/XTAL1/OC1B/ADC3/PCINT30000
OC1B許可OC1B
0PCINT3・PCIE+ADC3D
ADC3D
PCINT3入力
ADC3入力PB0/MOSI/DI/SDA/OC0A/
OC1A/AIN0/AREF/PCINT0
2線USI
0
2線USI
(SDA+PORTB0)・DDB0
OC0A許可+OC1A許可+(2線USI・DDB0)
OC0A+OC1A
0(PCINT0・PCIE)+ADC0D+USISIE
AIN0D
DI/SDA/PCINT0入力
ｱﾅﾛｸﾞ比較器非反転入力

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]41

10.4. I/Oﾎﾟｰﾄ用ﾚｼﾞｽﾀ
10.4.1. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)ﾋﾞｯﾄ$35 ($55)
Read/Write
初期値

7

6

5

4

3

2

1

0

BODS

PUD

SE

SM1

SM0

BODSE

ISC01

ISC00

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

MCUCR

● ﾋﾞｯﾄ4 - PUD : ﾌﾟﾙｱｯﾌﾟ禁止 (Pull-up Disable)

このﾋﾞｯﾄが1を書かれると、例えDDxnとPORTxnﾚｼﾞｽﾀがﾌﾟﾙｱｯﾌﾟを許可(DDxn=0, PORTxn=1)に設定されていても、I/Oﾎﾟｰﾄのﾌﾟﾙｱｯ
ﾌﾟは禁止されます。この特徴についてより多くの詳細に関しては36頁の「ﾋﾟﾝの設定」をご覧ください。

10.4.2. PORTB - ﾎﾟｰﾄB出力ﾚｼﾞｽﾀ (Port B Data Register)ﾋﾞｯﾄ$18 ($38)
Read/Write
初期値

7

6

-

-

R
0

R
0

5

4

3

2

1

0

PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

PORTB

R/W
0

10.4.3. DDRB - ﾎﾟｰﾄB方向ﾚｼﾞｽﾀ (Port B Data Direction Register)ﾋﾞｯﾄ$17 ($37)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

DDB5

DDB4

DDB3

DDB2

DDB1

DDB0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

DDRB

10.4.4. PINB - ﾎﾟｰﾄB入力ﾚｼﾞｽﾀ (Port B Input Address)
ﾋﾞｯﾄ$16 ($36)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

R
0

R
0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

PINB

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]42

11. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0 (PWM付き)
11.1. 特徴
●
●
●
●
●
●
●

2つの独立した比較出力部
2重緩衝の比較ﾚｼﾞｽﾀ
比較一致でのﾀｲﾏ/ｶｳﾝﾀ解除 (自動再設定)
不具合なしで正しい位相のﾊﾟﾙｽ幅変調器 (PWM)
可変PWM周期周波数発生器
3つの独立した割り込み (TOV0,OCF0A,OCF0B)

11.2. 概要
ﾀｲﾏ/ｶｳﾝﾀ0は2つの独立した比較出力部とPWM支援付きの汎用8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ部です。それは正確なﾌﾟﾛｸﾞﾗﾑ実行ﾀｲﾐﾝｸﾞ(事象管理)、波形生成を許します。
この8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀの簡単化した構成図は図11-1.で示されます。I/Oﾋﾟﾝの実際の配置については2頁の「ﾋﾟﾝ配置」を参照してくだ
さい。CPUがｱｸｾｽ可能な(I/OﾋﾞｯﾄとI/Oﾋﾟﾝを含む)I/Oﾚｼﾞｽﾀは赤文字(訳注:原文は太字)で示されます。ﾃﾞﾊﾞｲｽ仕様のI/Oﾚｼﾞｽﾀとﾋﾞｯﾄ位置は51頁の「8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ」で一覧されます。
図11-1. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ構成図
計数
方向
ﾘｾｯﾄ

制御回路
TOP

clkTn
BOTTOM

TOVn (割り込み要求)
ｸﾛｯｸ選択ｴｯｼﾞ検出器

Tn(前置分周器から)
TCNTn

=

=0
OCFnA (割り込み要求)

=

波形生成

OCnA

OCRnA
固定TOP値=

OCFnB (割り込み要求)
波形生成

OCnB

OCRnB
TCCRnA

TCCRnB

8-bit Data Bus

11.2.1. 関係ﾚｼﾞｽﾀ
ﾀｲﾏ/ｶｳﾝﾀ(TCNT0)と比較ﾚｼﾞｽﾀ(OCR0AとOCR0B)は8ﾋﾞｯﾄのﾚｼﾞｽﾀです。割り込み要求信号はﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾚｼﾞｽﾀ(TIFR)で全て見えます。全ての割り込みはﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)で個別に遮蔽(禁止)されます。TIFRとTIMSKは本図で示されません。
このﾀｲﾏ/ｶｳﾝﾀは内部的、前置分周器経由、またはT0ﾋﾟﾝの外部ｸﾛｯｸ元によってｸﾛｯｸ駆動されます。ｸﾛｯｸ選択論理部はﾀｲﾏ/ｶｳﾝ
ﾀが値を増加(または減少)するのに使うｸﾛｯｸ元を制御します。ｸﾛｯｸ元が選択されないとき、ﾀｲﾏ/ｶｳﾝﾀは動きません。ｸﾛｯｸ選択論理部からの出力はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkT0)として参照されます。
2重緩衝化した比較ﾚｼﾞｽﾀ(OCR0AとOCR0B)はﾀｲﾏ/ｶｳﾝﾀ値と常に比較されます。この比較結果は比較出力(OC0AとOC0B)ﾋﾟﾝでPWMまたは可変周波数出力を作成するための波形生成器によって使えます。詳細については45頁の「比較出力部」をご覧ください。この比較一致発生は比較一致割り込み要求の発生に使える比較一致割り込み要求ﾌﾗｸﾞ(OCF0AとOCF0B)も設定(1)します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

43

11.2.2. 定義
本項でのﾚｼﾞｽﾀとﾋﾞｯﾄ参照の多くは一般形で書かれます。小文字の'n'はﾀｲﾏ/ｶｳﾝﾀ番号、この場合は0で置き換えます。小文字のxは比較出力部のﾁｬﾈﾙ名を表し、この場合はAまたはBです。然しながらﾌﾟﾛｸﾞﾗﾑでﾚｼﾞｽ
ﾀまたはﾋﾞｯﾄ定義に使う時は正確な形式が使われなければなりません(例
えばﾀｲﾏ/ｶｳﾝﾀ0のｶｳﾝﾀ値のｱｸｾｽに対してのTCNT0のように)。
表11-1.の定義は本資料を通して広範囲に渡って使われます。

表11-1. 用語定義
用語
意味
BOTTOM ﾀｲﾏ/ｶｳﾝﾀが$00に到達した時。
ﾀｲﾏ/ｶｳﾝﾀが$FF(255)に到達した時。
MAX
ﾀｲﾏ/ｶｳﾝﾀが指定された固定値($FF)
TOP
またはOCR0A値に到達した時。この指定(TOP)値は動作種別に依存します。

11.3. ﾀｲﾏ/ｶｳﾝﾀ0の前置分周器とｸﾛｯｸ元
このﾀｲﾏ/ｶｳﾝﾀは内部または外部のｸﾛｯｸ元によってｸﾛｯｸ駆動できます。このｸﾛｯｸ元はﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB(TCCR0B)に配置されたｸﾛｯｸ選択(CS02～0)ﾋﾞｯﾄによって制御されるｸﾛｯｸ選択論理回路によって選択されます。

11.3.1. 前置分周器での内部ｸﾛｯｸ元
ﾀｲﾏ/ｶｳﾝﾀ0はｼｽﾃﾑ ｸﾛｯｸ(CSn2～0=001設定)によって直接的にｸﾛｯｸ駆動できます。これはｼｽﾃﾑ ｸﾛｯｸ周波数(fclk_I/O)と等しいﾀｲ
ﾏ/ｶｳﾝﾀ最大ｸﾛｯｸ周波数での最高速動作を提供します。選択で前置分周器からの4つのﾀｯﾌﾟの1つがｸﾛｯｸ元として使えます。この
前置分周したｸﾛｯｸはfclk_I/O/8, fclk_I/O/64, fclk_I/O/256, fclk_I/O/1024の何れかの周波数です。

11.3.2. 前置分周器ﾘｾｯﾄ
この前置分周器は自由走行です(換言するとﾀｲﾏ/ｶｳﾝﾀ0のｸﾛｯｸ選択論理回路と無関係に動作します)。前置分周器はﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ選択によって影響を及ぼされないため、前置分周器の状態は前置分周したｸﾛｯｸが使われる状況に対して密接に関係します。ﾀｲﾏ/ｶｳﾝﾀが許可され、前置分周器によってｸﾛｯｸ駆動される(CSn2～0=5～2)とき、前置分周加工の一例が生じます。ﾀｲﾏ/ｶｳﾝﾀが許可される時から最初の計数が起きるまでのｼｽﾃﾑ ｸﾛｯｸ周期数はNが前置分周値(8,64,256,1024)とすると、1～N+1 ｼｽﾃﾑ ｸﾛｯｸ周期になり得ます。
ﾌﾟﾛｸﾞﾗﾑ実行にﾀｲﾏ/ｶｳﾝﾀを同期することに対して前置分周器ﾘｾｯﾄを使うことが可能です。

11.3.3. 外部ｸﾛｯｸ元

clkI/O/8
clkI/O/64
clkI/O/256
clkI/O/1024

T0ﾋﾟﾝに印加した外部ｸﾛｯｸ元はﾀｲﾏ/ｶｳ 図11-2. T0ﾋﾟﾝの採取等価構成図
ﾝﾀ ｸﾛｯｸ(fclk_T0)として使えます。このT0ﾋﾟ
同期化回路
ｴｯｼﾞ (↑/↓)
ﾝはﾋﾟﾝ同期化論理回路によって全ｼｽﾃﾑ
ｸﾛｯｸ周期に1回採取されます。この同期
1
Tn_sync化(採取)された信号はその後にｴｯｼﾞ検出
D Q
D Q
D Q
Tn
(ｸﾛｯｸ選択0
器を通して通過されます。図11-2.はT0同E回路へ)期化とｴｯｼﾞ検出器論理回路の機能等価構成図を示します。ﾚｼﾞｽﾀは内部ｼｽﾃﾑ ｸ clk
ｴｯｼﾞ検出器I/O
ﾛｯｸ(fclk_I/O)の上昇端でｸﾛｯｸ駆動されます。ﾗｯﾁは内部ｼｽﾃﾑ ｸﾛｯｸのHigh区間で
図11-3. ﾀｲﾏ/ｶｳﾝﾀ0の前置分周器部構成図
通過(Low区間で保持)です。
ｴｯｼﾞ検出器は上昇端(CSn 2～0=111)または下降端(CSn 2～
clkI/O
10ﾋﾞｯﾄ前置分周器
0=110)の検出毎に1つのclkT0ﾊﾟﾙｽを生成します。
R
同期化とｴｯｼﾞ検出器論理回路はT0ﾋﾟﾝへ印加したｴｯｼﾞから
PSR0
計数器が更新されるまでに2.5～3.5ｼｽﾃﾑ ｸﾛｯｸ周期の遅延をもたらします。
(注: 図11-2.参照)
ｸﾛｯｸ入力の許可と禁止はT0が最低1ｼｽﾃﾑ ｸﾛｯｸ周期に対し
0
同期化/て安定してしまっている時に行われなければならず、さもなけ
T0
ｴｯｼﾞ検出れば不正なﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ ﾊﾟﾙｽが生成される危険があります。
CS00
ﾀｲﾏ/ｶｳﾝﾀ0用
印加された外部ｸﾛｯｸの各半周期は正しい採取を保証するた
CS01
選択器
めに1ｼｽﾃﾑ ｸﾛｯｸ周期より長くなければなりません。この外部
CS02
ｸﾛｯｸは50%/50%ﾃﾞｭｰﾃｨ比で与えられるものとして、ｼｽﾃﾑ ｸ
ﾀｲﾏ/ｶｳﾝﾀ0 ｸﾛｯｸ : clkT0
ﾛｯｸ周波数の半分未満(fEXTclk<fclk_I/O/2)であることが保証されなければなりません。ｴｯｼﾞ検出器が採取を使うために、検出できる外部ｸﾛｯｸの最大周波数は採取周波数の半分です(ﾅｲｷｽﾄの標本化定理)。然しながら、発振元(ｸﾘｽﾀﾙ発振子、ｾﾗﾐｯｸ振動子、ｺﾝﾃﾞﾝｻ)公差によって引き起こされたｼｽﾃﾑ ｸﾛｯｸ周波数やﾃﾞｭｰﾃｨ比の変動のため、外部ｸﾛｯｸ元の最大周波数はfclk_I/O/2.5未満が推奨されます。
外部ｸﾛｯｸ元は前置分周できません。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

44

11.4. 計数器部
8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀの主な部分は設定可能な双方向ｶｳﾝﾀ部です。図11-4.は、このｶｳﾝﾀとその周辺環境の構成図を示します。
図11-4. ｶｳﾝﾀ部構成図
8-bit Data Bus

TCNTn(ﾀｲﾏ/ｶｳﾝﾀ)

TOVn (割り込み要求)

count
directionclear

ｸﾛｯｸ選択制御回路

BOTTOM

信号説明(内部信号)

clkTn

ｴｯｼﾞ検出器

Tn(前置分周器から)
TOP

count
direction
clear

TCNT0を1つ進めるまたは戻す信号。
進行方向(上昇または下降)選択信号。
TCNT0のﾘｾｯﾄ($00設定)信号。
clkTn
以降でclkT0として参照されるﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ信号。
TOP
TCNT0が最大値に到達したことを示す信号。
BOTTOM TCNT0が最小値($00)に到達したことを示す信号。

使った動作種別に依存して、ｶｳﾝﾀは各ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkT0)で解除($00)、増加(+1)、または減少(-1)されます。clkT0はｸﾛｯｸ選択(CS02～0)ﾋﾞｯﾄによって選択された内部または外部のｸﾛｯｸ元から生成できます。ｸﾛｯｸ元が選択されない(CS02～0=000)とき、ﾀｲﾏ/ｶｳ
ﾝﾀは停止されます。けれどもTCNT0値はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkT0)が存在するしないに拘らず、CPUによってｱｸｾｽできます。CPU書
き込みは全てのｶｳﾝﾀ解除や計数動作を無視します(上位優先順位を持ちます)。
計数順序(方法)はﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA(TCCR0A)に配置された波形生成種別(WGM01,0)ﾋﾞｯﾄとﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB(TCC
R0B)に配置された波形生成種別(WGM02)ﾋﾞｯﾄの設定によって決定されます。これらはｶｳﾝﾀ動作(計数)方法とOC0A/OC0B比較出力に生成される方法間の接続に近いものです。進化した計数順序と波形生成についてより多くの詳細に関しては47頁の「動作種別」
をご覧ください。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはWGM02～0ﾋﾞｯﾄによって選択された動作種別に従って設定(1)されます。TOV0はCPU割り込み発生に使えます。

11.5. 比較出力部
この8ﾋﾞｯﾄ比較器はTCNT0と比較ﾚｼﾞｽﾀ(OCR0AとOCR0B)を継続的に比較します。TCNT0がOCR0AまたはOCR0Bと等しければ比較器は一致を指示します。この一致は次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で比較割り込み要求ﾌﾗｸﾞ(OCF0AまたはOCF0B)を設定(1)します。
対応する割り込みが許可(I=1, OCIE0AまたはOCIE0B=1)されているならば、その比較割り込み要求ﾌﾗｸﾞは比較割り込みを発生します。比較割り込み要求ﾌﾗｸﾞは割り込みが実行されると自動的に解除(0)されます。代わりにこのﾌﾗｸﾞはこのI/Oﾋﾞｯﾄ位置に論理1を書くことによってｿﾌﾄｳｪｱでも解除(0)できます。波形生成器は波形生成種別(WGM02～0)ﾋﾞｯﾄと比較出力選択(COM0x1,0)ﾋﾞｯﾄによって設定された動作種別に従った出力を生成するのにこの一致信号を使います。MAXとBOTTOM信号は動作種別(47頁の「動作種別」
参照)のいくつかで両端値の特別な場合を扱うため、波形生成器によって使われます。
図11-5.は比較出力部の構成図を示します。
図11-5. 比較出力部構成図
OCR0xはﾊﾟﾙｽ幅変調(PWM)のどれかを使う時に2重緩衝化さ8-bit Data Bus
れます。標準動作と比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作については2重緩衝動作が禁止されます。2重緩衝動作は計数の流れのTOPまたはBOTTOMのどちらかに対してOCR0xﾚｼﾞｽﾀの更OCRnx緩衝部
TCNTn
新を同期化します。この同期化は奇数長、非対称PWMﾊﾟﾙｽの発生を防ぎ、それによって不具合なしの出力を作成します。
OCRnx
OCR0xのｱｸｾｽは複雑なように思えますが決してそんなことはありません。2重緩衝動作が許可されるとCPUはOCR0x緩衝部をｱ= (8ﾋﾞｯﾄ比較器)
ｸｾｽし、禁止されるとOCR0xﾚｼﾞｽﾀを直接ｱｸｾｽします。
OCFnx (割り込み要求)
TOP
BOTTOM
FOCnx

波形生成器
WGMn2～0

OCnx

COMnx1,0(訳注) ここでは比較nxﾚｼﾞｽﾀ全体をOCR0x、OCR0xを構成する緩衝部分をOCR0x緩衝部、実際の比較に使われるﾚｼﾞｽﾀ本体部分
をOCR0xﾚｼﾞｽﾀとして記述しています。他の部分での記述でも特に必要がある場合はこの記述方法を適用します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]45

11.5.1. 強制比較出力
非PWM波形生成動作での比較器の一致出力は、強制変更(FOC0x)ﾋﾞｯﾄに1を書くことによって強制(変更)できます。比較一致の強制は比較割り込み要求ﾌﾗｸﾞ(OCF0x)の設定(1)やﾀｲﾏ/ｶｳﾝﾀの再設定/解除を行いませんが、OC0xﾋﾟﾝは実際の比較一致が起きた
場合と同様に更新されます(COM0x1,0ﾋﾞｯﾄ設定がOC0xﾋﾟﾝの設定(1)、解除(0)、1/0交互のどれかを定義)。

11.5.2. TCNT0書き込みによる比較一致妨害
TCNT0への全てのCPU書き込みは、例えﾀｲﾏ/ｶｳﾝﾀが停止されていても、次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で起こるどんな比較一致をも妨げます。この特質はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸが許可されている時に割り込みを起動することなく、TCNT0と同じ値に初期化されることを
OCR0xに許します。

11.5.3. 比較一致部の使用
どの動作種別でのTCNT0書き込みでも1ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期間、全ての比較一致を妨げるため、ﾀｲﾏ/ｶｳﾝﾀが走行中であるかな
いかに拘らず、比較出力部を使う場合、TCNT0を変更する時に危険を伴います。TCNT0に書かれた値がOCR0x値と同じ場合に比較一致は失われ(一致が発生せず)、不正な波形生成に終わります。同様にﾀｲﾏ/ｶｳﾝﾀが下降計数のとき、BOTTOMに等しいTCNT
0値を書いてはいけません。
OC0xの初期設定はﾎﾟｰﾄ ﾋﾟﾝに対するﾎﾟｰﾄ方向ﾚｼﾞｽﾀを出力に設定する前に行われるべきです。OC0x値を設定する一番簡単な方
法は標準動作で強制変更(FOC0x)ｽﾄﾛｰﾌﾞ ﾋﾞｯﾄを使うことです。波形生成動作種別間を変更する時でも、OC0x(内部)ﾚｼﾞｽﾀはその値を保ちます。
比較出力選択(COM0x1,0)ﾋﾞｯﾄが比較値(OCR0x)と共に2重緩衝されないことに気付いてください。COM0x1,0ﾋﾞｯﾄの変更は直ちに有効となります。

11.6. 比較一致出力部
比較出力選択(COM0x1,0)ﾋﾞｯﾄは2つの機能を持ちます。波形生成器は次の比較一致での比較出力(OC0x)状態の定義にCOM0x1,0ﾋﾞｯﾄを使います。またCOM0x1,0ﾋﾞｯﾄはOC0xﾋﾟﾝ出力元を制御します。図11-6.はCOM0x1,0ﾋﾞｯﾄ設定によって影響を及ぼされる論
理回路の簡単化した図を示します。図のI/Oﾚｼﾞｽﾀ、I/Oﾋﾞｯﾄ、I/Oﾋﾟﾝは赤文字(訳注:原文は太字)で示されます。COM0x1,0ﾋﾞｯﾄによって影響を及ぼされる標準I/Oﾎﾟｰﾄ制御ﾚｼﾞｽﾀ(PORTとDDR)の部分だけが示されます。OC0xの状態を参照するとき、その参照は
OC0xﾋﾟﾝでなく内部OC0xﾚｼﾞｽﾀに対してです。ｼｽﾃﾑ ﾘｾｯﾄが起こると、OC0xﾚｼﾞｽﾀは'0'にﾘｾｯﾄされます。
図11-6. 比較一致出力回路図

OCnx
波形生成器

8-bit Data Bus

COMnx1
COMnx0
FOCnx

D

Q

PORT
D

1
0

OCnx

Q

DDR
D

Q

clkI/O
COM0x1,0ﾋﾞｯﾄのどちらかが設定(1)されると、標準I/Oﾎﾟｰﾄ機能は波形生成器からの比較出力(OC0x)によって無効にされます。けれ
どもOC0xﾋﾟﾝの方向(入出力)はﾎﾟｰﾄ ﾋﾟﾝに対するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)によって未だ制御されます。OC0xﾋﾟﾝに対するﾎﾟｰﾄ方向ﾚｼﾞ
ｽﾀのﾋﾞｯﾄ(DDR_OC0x)はOC0x値がﾋﾟﾝで見えるのに先立って出力として設定されなければなりません。このﾎﾟｰﾄの交換機能は波形生成種別と無関係です。
比較出力ﾋﾟﾝ論理回路の設計は出力が許可される前のOC0x状態の初期化を許します。いくつかのCOM0x1,0ﾋﾞｯﾄ設定が或る種の動作種別に対して予約されることに注意してください。51頁の「8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ」をご覧ください。

11.6.1. 比較一致出力選択と波形生成波形生成器は標準、CTC、PWM動作でCOM0x1,0ﾋﾞｯﾄを違うふうに使います。全ての動作種別に対してCOM0x1,0=00設定は次の比較一致で実行すべきOC0xﾚｼﾞｽﾀの動きがないことを波形生成器へ告げます。非PWM動作での比較出力動作については51頁の表11-2.を参照してください。高速PWM動作については51頁の表11-3.、位相基準PWMについては51頁の表11-4.を参照してください。
COM0x1,0ﾋﾞｯﾄの状態変更はこのﾋﾞｯﾄが書かれた後の最初の比較一致で有効になります。非PWM動作について、この動作は強制
変更(FOC0x)ｽﾄﾛｰﾌﾞ ﾋﾞｯﾄを使うことによって直ちに効果を得ることを強制できます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]46

11.7. 動作種別
動作種別、換言するとﾀｲﾏ/ｶｳﾝﾀと比較出力ﾋﾟﾝの動作は波形生成種別(WGM02～0)ﾋﾞｯﾄと比較出力選択(COM0x1,0)ﾋﾞｯﾄの組み合
わせによって定義されます。比較出力選択ﾋﾞｯﾄは計数順序(動作)に影響を及ぼしませんが、一方波形生成種別ﾋﾞｯﾄは影響を及ぼします。COM0x1,0ﾋﾞｯﾄは生成されるPWM出力が反転されるべきか、されないべきか(反転または非反転PWM)どちらかを制御します。
非PWM動作に対するCOM0x1,0ﾋﾞｯﾄは比較一致で出力が解除(0)、設定(1)、1/0交互のどれにされるべきかを制御します(46頁の「比較一致出力部」をご覧ください)。
ﾀｲﾐﾝｸﾞ情報の詳細については50頁の「ﾀｲﾏ/ｶｳﾝﾀ0のﾀｲﾐﾝｸﾞ」を参照してください。(訳注:原書の図番号省略)

11.7.1. 標準動作
最も単純な動作種別が標準動作(WGM02～0=000)です。この動作種別での計数方向は常に上昇(+)で、ｶｳﾝﾀ解除は実行されません。ｶｳﾝﾀは8ﾋﾞｯﾄ最大値(TOP=$FF)を通過すると単に範囲を超え、そして$00(BOTTOM)から再び始めます。通常動作でのﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはTCNT0が$00になる時と同じﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。この場合のTOV0ﾌﾗｸﾞは設定(1)のみで解除(0)されないことを除いて第9ﾋﾞｯﾄのようになります。けれどもTOV0ﾌﾗｸﾞを自動的に解除(0)するﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込みと組み合わせたﾀｲﾏ/ｶｳﾝﾀの分解能はｿﾌﾄｳｪｱによって増やせます。標準動作での考慮に特別な場合はなく、新しいｶｳﾝﾀ値は何時でも書けます。
比較出力部は与えられた或る時間に割り込みを生成するのに使えます。標準動作で波形を生成するのに比較出力を使うのは、それが大変多くのCPU時間を占有するため推奨されません。

11.7.2. 比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作(WGM02～0=010)ではOCR0Aがｶｳﾝﾀの分解能を操作するのに使われます。CTC動作ではｶｳﾝﾀ(TCNT0)値がOCR0Aと一致すると、ｶｳﾝﾀは$00に解除されます。OCR0Aはｶｳﾝﾀに対するTOP値、従って分解能も定義します。この動作種別はより大きい比較一致出力周波数の制御を許します。それは外部の出来事の計数操作も簡単にします。
CTC動作についてのﾀｲﾐﾝｸﾞ図は図11-7.で示されます。ｶｳﾝﾀ(TCNT0)値はTCNT0とOCR0A間で比較一致が起こるまで増加し、そしてその後にｶｳﾝﾀ(TCNT0)は解除($00)されます。
図11-7. CTC動作ﾀｲﾐﾝｸﾞ
OCFnx割り込み要求ﾌﾗｸﾞ設定(TOP値割り込み)

TOP
TCNTn

OCnx(交互)
周期

1

2

3

4

5

注: COMnx1,0=01
OCF0Aﾌﾗｸﾞを使うことにより、ﾀｲﾏ/ｶｳﾝﾀ値がTOP値に達する時毎に割り込みが生成できます。割り込みが許可されるなら、割り込み処理ﾙｰﾁﾝはTOP値を更新するのに使えます。けれども前置分周なしまたは低い前置分周値でｶｳﾝﾀが走行している時にBOTTOMと近い値にTOPを変更することは、CTC動作が2重緩衝機能を持たないために注意して行わなければなりません。OCR0Aに書かれた新しい値がTCNT0の現在値よりも低い(小さい)場合、ﾀｲﾏ/ｶｳﾝﾀは(その回の)比較一致を失います。その後のｶｳﾝﾀは比較一致が起こるのに先立って最大値($FF)へ、そして次に$00から始める計数をしなければならないでしょう。
CTC動作で波形出力を生成するため、OC0A出力は比較出力選択(COM0A1,0)ﾋﾞｯﾄを交互動作(=01)に設定することによって各比較一致での論理ﾚﾍﾞﾙ交互切り替えに設定できます。OC0A値はそのﾋﾟﾝに対するﾃﾞｰﾀ方向が出力(DDR_OC0A=1)に設定されない限りﾎﾟｰﾄ ﾋﾟﾝで見えないでしょう。生成された波形はOCR0Aが0($00)に設定される時に fOC0A= fclk_I/O/2の最大周波数を得ます。生成波形周波数は次式によって定義されます。
fOCnx =

fclk_I/O
2×N×(1＋OCRnx)

変数Nは前置分周数(1,8,64,256,1024)を表します。
標準動作と同じように、ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはｶｳﾝﾀがMAXから$00へ計数するのと同じﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]47

11.7.3. 高速PWM動作
高速ﾊﾟﾙｽ幅変調(PWM)動作(WGM02～0=011または111)は高周波数PWM波形生成選択を提供します。高速PWMはそれが単一傾
斜(鋸波)動作であることによって他のPWM動作と異なります。ｶｳﾝﾀはBOTTOMからTOPまで計数し、その後BOTTOMから再び始めます。TOPはWGM02～0=011時に$FF、WGM02～0=111時にOCR0Aとして定義されます。
非反転比較出力動作(COM0x1,0=10)での比較出力(OC0x)はTCNT0とOCR0x間の比較一致で解除(0)され、BOTTOMで設定(1)されます。反転出力動作(COM0x1,0=11)の出力は比較一致で設定(1)され、BOTTOMで解除(0)されます。
この単一傾斜動作のため、高速PWM動作の動作周波数は、両傾斜(三角波)動作を使う位相基準PWM動作よりも2倍高くできます。
この高い周波数は電力調節、整流、D/A変換に対して高速PWM動作を都合よく適合させます。高い周波数は物理的に小さな外部部品(ｺｲﾙやｺﾝﾃﾞﾝｻ)を許し、従ってｼｽﾃﾑ総費用を削減します。
高速PWM動作でのﾀｲﾏ/ｶｳﾝﾀはﾀｲﾏ/ｶｳﾝﾀ値がTOP値と一致するまで増加されます。そしてﾀｲﾏ/ｶｳﾝﾀは(一致の)次のﾀｲﾏ/ｶｳﾝﾀ
ｸﾛｯｸ周期で解除($00)されます。高速PWM動作のﾀｲﾐﾝｸﾞ図は図11-8.で示されます。TCNT0値はﾀｲﾐﾝｸﾞ図で単一傾斜動作(鋸波)を表す折れ線ｸﾞﾗﾌとして示されます。この図は非反転と反転のPWM出力を含みます。赤細線はOCR0x値を示し、TCNT0値との交点(接点)がTCNT0とOCR0x間の比較一致を示します(訳注:図補正に伴い本行若干変更)。比較割り込み要求ﾌﾗｸﾞ(OCF0x)はOCR0x=
TOPを除いて比較一致が起こると設定(1)されます(訳注:共通性のため本行追加)。
図11-8. 高速PWM動作ﾀｲﾐﾝｸﾞ
OCRnx更新、TOVn割り込み要求ﾌﾗｸﾞ設定

OCFnx割り込み要求ﾌﾗｸﾞ設定

OCRnx
TCNTn

OCnx(非反転)(COMnx1,0=10)
OCnx(反転)(COMnx1,0=11)
周期

1

2

3

4

5

6

7

ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはｶｳﾝﾀがTOPに到達する時毎に設定(1)されます。割り込みが許可されるなら、その割り込み処理ﾙｰﾁ
ﾝは比較値を更新するのに使えます。
高速PWM動作での比較部はOC0xﾋﾟﾝでのPWM波形の生成を許します。COM0x1,0ﾋﾞｯﾄの'10'設定は非反転PWM出力を作成し、反転PWM出力はCOM0x1,0を'11'に設定することで生成できます。WGM02ﾋﾞｯﾄが設定(1)ならば、COM0A1,0ﾋﾞｯﾄの'01'設定は比較一
致での交互反転をOC0Aﾋﾟﾝに許します。この任意選択はOC0Bﾋﾟﾝに対して利用できません(51頁の表11-3.をご覧ください)。実際のOC0x値はﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向(DDR_OC0x)が出力として設定される場合だけ見えるでしょう。PWM波形はTCNT0とOCR0x間の比較一致で、OC0x(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが解除($00,TOPからBOTTOMへ変更)されるﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ
周期でOC0xﾚｼﾞｽﾀを解除(0)または設定(1)することによって生成されます。
PWM出力周波数は次式によって計算できます。
fOCnxPWM =fclk_I/O
N×(1+TOP)

変数Nは前置分周数(1,8,64,256,1024)を表します。
OCR0xの両端値は高速PWM動作でPWM波形出力を生成する時の特別な場合にあたります。OCR0xがBOTTOM($00)と等しく設定
されると、出力はTOP+1 ﾀｲﾏ/ｶｸﾝﾀ ｸﾛｯｸ周期毎の狭いｽﾊﾟｲｸ(ﾊﾟﾙｽ)になるでしょう。OCR0xがTOPに等しく設定されると、(COM0x1,0ﾋﾞｯﾄによって設定される出力極性に依存して)定常的なLowまたはHigh出力に終わるでしょう。
(訳補:WGM02～0=111の場合については、)高速PWM動作での(ﾃﾞｭｰﾃｨ比50%)周波数の波形出力は比較一致毎に論理反転する
OC0A設定(COM0A1,0=01)によって達成できます。生成された波形はOCR0Aが0($00)に設定される時に fOC0x= fclk_I/O/2の最大周波数でしょう。この特性は高速PWM動作で比較出力部の2重緩衝機能が許可されることを除いて、CTC動作でのOC0A交互出力(COM0A1,0=01)と同じです。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]48

11.7.4. 位相基準PWM動作
位相基準ﾊﾟﾙｽ幅変調(PWM)動作(WGM02～0=001または101)は高分解能で正しい位相のPWM波形生成選択を提供します。位相基準PWM動作は両傾斜(三角波)動作を基準とします。ｶｳﾝﾀはBOTTOMからTOPへそして次にTOPからBOTTOMへを繰り返し計数します。TOPはWGM02～0=001時に$FF、WGM02～0=101時にOCR0Aとして定義されます。非反転比較出力動作(COM0x1,0=10)での比較出力(OC0x)は上昇計数中のTCNT0とOCR0xの比較一致で解除(0)され、下降計数中の比較一致で設定(1)されます。
反転出力動作(COM0x1,0=11)での動作は逆にされます。両傾斜(三角波)動作は単一傾斜(鋸波)動作よりも低い最大動作周波数になります。けれども両傾斜(三角波)動作の対称特性のため、これらの動作種別は電動機制御の応用に好まれます。

位相基準PWM動作でのｶｳﾝﾀはｶｳﾝﾀ値がTOPと一致するまで増加されます。ｶｳﾝﾀはTOPに達すると計数方向を変更します。この
TCNT0値は1ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期間TOPと等しくなります。位相基準PWM動作のﾀｲﾐﾝｸﾞ図は図11-9.で示されます。TCNT0値はﾀ
ｲﾐﾝｸﾞ図で両傾斜動作(三角波)を表す折れ線ｸﾞﾗﾌとして示されます。この図は非反転と反転のPWM出力を含みます。細い赤線はOCR0x値を示し、TCNT0値との交点(接点)がTCNT0とOCR0x間の比較一致を示します(訳注:図補正に伴い本行若干変更)。
図11-9. 位相基準PWM動作ﾀｲﾐﾝｸﾞ
OCFnx割り込み要求ﾌﾗｸﾞ設定

TOVn割り込み要求ﾌﾗｸﾞ設定

OCRnx
TCNTn

OCnx(非反転)(COMnx1,0=10)
OCnx(反転)(COMnx1,0=11)
周期

1

2

3

OCRnx更新

ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀがBOTTOMに到達する時毎に設定(1)されます。この割り込み要求ﾌﾗｸﾞはｶｳﾝﾀがBOTT
OM値に到達する毎に割り込みを発生するために使えます。

位相基準PWM動作での比較部はOC0xﾋﾟﾝでのPWM波形の生成を許します。COM0x1,0ﾋﾞｯﾄを'10'に設定することは非反転PWM出力を作成し、反転PWM出力はCOM0x1,0ﾋﾞｯﾄを'11'に設定することで生成できます。WGM02ﾋﾞｯﾄが設定(1)なら、COM0A1,0ﾋﾞｯﾄの'01'設定は比較一致での交互反転をOC0Aﾋﾟﾝに許します。この任意選択はOC0Bﾋﾟﾝに対して利用できません(51頁の表11-4.をご覧ください)。実際のOC0x値はそのﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向(DDR_OC0x)が出力として設定される場合だけ見えるでしょう。PWM
波形はｶｳﾝﾀが増加する時のTCNT0とOCR0x間の比較一致でOC0x(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが減少する時のTCNT0とOCR0x間の比較一致でOC0xﾚｼﾞｽﾀを解除(0)(または設定(1))によって生成されます。位相基準PWMを使う時の出力に対するPWM周波数は次式によって計算できます。
fOCnxPCPWM =fclk_I/O
2×N×TOP

変数Nは前置分周数(1,8,64,256,1024)を表します。
OCR0xの両端値は位相基準PWM動作でPWM波形出力を生成する時の特別な場合にあたります。非反転PWM動作ではOCR0xが
BOTTOM($00)に等しく設定されると出力は定常的なLow、TOPに等しく設定されると定常的なHighになるでしょう。反転PWMに対する出力は逆の論理値になります。
図11-9.の第2周期のその出発点に於いて、例え比較一致がないとしても、OCnxにはHighからLowへの遷移があります。この遷移点
はBOTTOMを挟む対称を保証するためです。比較一致なしに遷移を生ずるのは次のように2つの場合です。

・ 図11-9.でのようにOCR0xはTOPからその値を変更します。OCR0x値がTOPのとき、OCnxﾋﾟﾝ値は下降計数での比較一致の結果と同じです(訳補: L→H、直前がHのため、常にH)。BOTTOMを挟む対称を保証するため、(変更直後の)TOP(位置)でのOCnx値
は上昇計数での比較一致の結果(H→L)と一致しなければなりません。
・ ﾀｲﾏ/ｶｳﾝﾀがOCR0x値よりも高い値から数え始め、そしてその理屈のために比較一致、それ故上昇途中で起こされるであろうOC
nxの変更を逃します。(訳補: 従って上記同様、TOP位置で(直前がHならば)H→L遷移が生じます。)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]49

11.8. ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ
このﾀｲﾏ/ｶｳﾝﾀは同期設計で、従って以下の図でﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkT0)がｸﾛｯｸ許可信号として示されます。この図は割り込みﾌﾗｸﾞが設定(1)される時の情報を含みます。図11-10.は基本的なﾀｲﾏ/ｶｳﾝﾀ動作についてのﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを含みます。この図は位相基
準PWM動作以外の全ての動作種別でのMAX値近辺の計数の流れを示します。
図11-10. 前置分周なし(1/1)のﾀｲﾏ/ｶｳﾝﾀ ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/1)
TCNT0

MAX-1

MAX

BOTTOM

BOTTOM+1

BOTTOM

BOTTOM+1

TOVn

図11-11.は同じﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを示しますが、前置分周器が許可されています。
図11-11. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNT0

MAX-1

MAX

TOVn

図11-12.はCTC動作とOCR0AがTOPのPWM動作を除く全動作種別でのOCF0Aと全動作種別でのOCF0Bの設定を示します。
図11-12. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCF0x設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNT0

OCRnx-1

OCRnx

OCRnx

OCRnx+1

OCRnx+2

OCRnx値

OCFnx

図11-13.はOCR0AがTOPの高速PWM動作と、CTC動作でのTCNT0の解除とOCF0Aの設定を示します。
図11-13. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCF0A設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNT0 (CTC)
OCRnx

TOP-1

TOP

BOTTOM

BOTTOM+1

TOP値

OCFnx

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]50

11.9. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ
11.9.1. GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ (General Timer/Counter Control Register)ﾋﾞｯﾄ$2C ($4C)
Read/Write
初期値

7

TSM
R/W
0

6

5

4

PWM1B COM1B1 COM1B0
R/W
0

R/W
0

R/W
0

3

2

1

0

FOC1B

FOC1A

PSR1

PSR0

W
0

W
0

R/W
0

R/W
0

GTCCR

● ﾋﾞｯﾄ7 - TSM : ﾀｲﾏ/ｶｳﾝﾀ同時動作 (Timer/Counter Synchronization Mode)

TSMﾋﾞｯﾄに1を書くことはﾀｲﾏ/ｶｳﾝﾀ同期化動作を活性(有効)にします。この動作でPSR0へ書かれる値は保持され、従って対応する
前置分周器ﾘｾｯﾄ信号の有効を保持します。これは対応するﾀｲﾏ/ｶｳﾝﾀを停止し、設定中に進行する危険なしに設定できることを保証します。TSMﾋﾞｯﾄが0を書かれると、PSR0ﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)され、同時にﾀｲﾏ/ｶｳﾝﾀが計数を始めます。
● ﾋﾞｯﾄ0 - PSR0 : ﾀｲﾏ/ｶｳﾝﾀ0 前置分周器ﾘｾｯﾄ (Prescaler Reset Timer/Counter 0)

このﾋﾞｯﾄが1の時にﾀｲﾏ/ｶｳﾝﾀ0の前置分周器はﾘｾｯﾄします。TSMﾋﾞｯﾄが設定(1)されている場合を除き、通常、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって直ちに解除(0)されます。

11.9.2. TCCR0A - ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA (Timer/Counter0 Control Register A)
ﾋﾞｯﾄ$2A ($4A)
Read/Write
初期値

7

6

5

4

COM0A1 COM0A0 COM0B1 COM0B0
R/W
0

R/W
0

R/W
0

R/W
0

3

2

1

0

-

-

WGM01

WGM00

R
0

R
0

R/W
0

R/W
0

TCCR0A● ﾋﾞｯﾄ7,6 - COM0A1,0 : 比較A出力選択 (Compare Match A Output Mode bit 1 and 0)● ﾋﾞｯﾄ5,4 - COM0B1,0 : 比較B出力選択 (Compare Match B Output Mode bit 1 and 0)

COM0A1,0とCOM0B1,0ﾋﾞｯﾄは、各々OC0AとOC0B比較出力ﾋﾟﾝの動きを制御します。COM0A1,0ﾋﾞｯﾄの何れかが設定(1)されると、
OC0A出力はそのI/Oﾋﾟﾝの標準ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。同様に、COM0B1,0ﾋﾞｯﾄの何れかが設定(1)されると、OC0B出力はそのI/Oﾋﾟﾝの標準ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども、出力駆動部を許可するために、
OC0AとOC0Bﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OC0A/OC0Bがﾋﾟﾝに接続されるとき、COM0A1,0/COM0B1,0ﾋﾞｯﾄの機能はWGM02～0ﾋﾞｯﾄ設定に依存します。
表11-2.はWGM02～0ﾋﾞｯﾄが標準動作またはCTC動作(つまりPW 表11-2. 非PWM動作比較x出力選択 (x=AまたはB)
M以外)に設定される時のCOM0x1,0ﾋﾞｯﾄ機能を示します。
COM0x1 COM0x0
意味
表11-3.はWGM02～0ﾋﾞｯﾄが高速PWM動作に設定される時のCO
0
標準ﾎﾟｰﾄ動作 (OC0x切断)
0M0x1,0ﾋﾞｯﾄの機能を示します。
0
比較一致でOC0xﾋﾟﾝ ﾄｸﾞﾙ(交互)出力1
表11-4.はWGM02～0ﾋﾞｯﾄが位相基準PWM動作に設定される時
1
比較一致でOC0xﾋﾟﾝ Lowﾚﾍﾞﾙ出力
0のCOM0x1,0ﾋﾞｯﾄの機能を示します。
比較一致でOC0xﾋﾟﾝ Highﾚﾍﾞﾙ出力
11
表11-3. 高速PWM動作比較x出力選択 (x=AまたはB)
COM0x1 COM0x0
意味
0
標準ﾎﾟｰﾄ動作 (OC0x切断)
0WGM02=0 : 標準ﾎﾟｰﾄ動作 (OC0x切断)
01
WGM02=1 : 比較一致でOC0xﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
比較一致でLow、BOTTOMでHighを
1
0
OC0xﾋﾟﾝへ出力 (非反転動作)
比較一致でHigh、BOTTOMでLowを
1
1
OC0xﾋﾟﾝへ出力 (反転動作)

表11-4. 位相基準PWM動作比較x出力選択 (x=AまたはB)
COM0x1 COM0x0
意味
00
標準ﾎﾟｰﾄ動作 (OC0x切断)
WGM02=0 : 標準ﾎﾟｰﾄ動作 (OC0x切断)
1
0
WGM02=1 : 比較一致でOC0xﾋﾟﾝ ﾄｸﾞﾙ(交互)出力上昇計数時の比較一致でLow、下降計数
01時の比較一致でHighをOC0xﾋﾟﾝへ出力
上昇計数時の比較一致でHigh、下降計数
11時の比較一致でLowをOC0xﾋﾟﾝへ出力

注: COM0x1が設定(1)され、OCR0xがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されま
すが、BOTTOMでの設定(1)や解除(0)は行われます。より多くの詳細については48頁の「高速PWM動作」をご覧ください。

注: COM0x1が設定(1)され、OCR0xがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されま
すが、TOPでの設定(1)や解除(0)は行われます。より多くの詳細については49頁の「位相基準PWM動作」をご覧ください。

● ﾋﾞｯﾄ3,2 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]51

● ﾋﾞｯﾄ1,0 - WGM01,0 : 波形生成種別 (Waveform Generation Mode bit 1 and 0)

ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCR0B)で得られるWGM02ﾋﾞｯﾄと組み合わせたこれらのﾋﾞｯﾄはｶｳﾝﾀの計数順序(方向)、最大ｶｳﾝﾀ(TOP)値の供給元、使われるべき波形生成のどの形式かを制御します(表11-5.参照)。ﾀｲﾏ/ｶｳﾝﾀ部によって支援される動作種別は標準動作(ｶｳﾝﾀ)、比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作と2形式のﾊﾟﾙｽ幅変調(PWM)動作です。47頁の「動作種別」をご覧ください。
表11-5. 波形生成種別選択
番号 WGM02 WGM01 WGM00
0
0
0
0
1
0
0
1
2
0
1
0
3
0
1
1
4
0
0
1
5
1
0
1
6
1
1
0
7
1
1
1
注: MAX=$FF、BOTTOM=$00です。

ﾀｲﾏ/ｶｳﾝﾀ動作種別
標準動作
8ﾋﾞｯﾄ位相基準PWM動作
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作
8ﾋﾞｯﾄ高速PWM動作(予約)
位相基準PWM動作(予約)
高速PWM動作

TOP値
$FF
$FF
OCR0A
$FF
OCR0A
OCR0A

OCR0x更新時
即時TOP
即時BOTTOMTOP
BOTTOM

TOV0設定時MAX
BOTTOMMAX
MAX
BOTTOM
TOP

11.9.3. TCCR0B - ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB (Timer/Counter0 Control Register B)
ﾋﾞｯﾄ$33 ($53)
Read/Write
初期値

7

6

5

4

3

2

1

0

FOC0A

FOC0B

-

-

WGM02

CS02

CS01

CS00

W
0

W
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

TCCR0B● ﾋﾞｯﾄ7 - FOC0A : OC0A強制変更 (Force Output Compare A)

FOC0AﾋﾞｯﾄはWGM02～0ﾋﾞｯﾄが非PWM動作を指示する時だけ有効です。
けれども将来のﾃﾞﾊﾞｲｽとの共通性を保証するため、PWM動作で扱う時にTCCR0Bが書かれる場合、このﾋﾞｯﾄは0に設定されなければなりません。FOC0Aﾋﾞｯﾄに論理1を書くと、波形生成部で直ちに比較一致が強制されます。OC0A出力はCOM0A1,0ﾋﾞｯﾄ設定に従って変更されます。FOC0Aﾋﾞｯﾄがｽﾄﾛｰﾌﾞとして実行されることに注意してください。従って強制した比較の効果を決めるのはCOM
0A1,0ﾋﾞｯﾄに存在する値です。
FOC0Aｽﾄﾛｰﾌﾞは何れの割り込みの生成もTOPとしてOCR0Aを使う比較一致ﾀｲﾏ解除(CTC)動作でのﾀｲﾏ/ｶｳﾝﾀの解除($00)も行いません。
FOC0Aﾋﾞｯﾄは常に0として読まれます。
● ﾋﾞｯﾄ6 - FOC0B : OC0B強制変更 (Force Output Compare B)

FOC0BﾋﾞｯﾄはWGM02～0ﾋﾞｯﾄが非PWM動作を指示する時だけ有効です。
けれども将来のﾃﾞﾊﾞｲｽとの共通性を保証するため、PWM動作で扱う時にTCCR0Bが書かれる場合、このﾋﾞｯﾄは0に設定されなければなりません。FOC0Bﾋﾞｯﾄに論理1を書くと、波形生成部で直ちに比較一致が強制されます。OC0B出力はCOM0B1,0ﾋﾞｯﾄ設定に従って変更されます。FOC0Bﾋﾞｯﾄがｽﾄﾛｰﾌﾞとして実行されることに注意してください。従って強制した比較の効果を決めるのはCOM
0B1,0ﾋﾞｯﾄに存在する値です。
FOC0Bｽﾄﾛｰﾌﾞは何れの割り込みの生成も行いません。
FOC0Bﾋﾞｯﾄは常に0として読まれます。
● ﾋﾞｯﾄ5,4 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ3 - WGM02 : 波形生成種別 (Waveform Generation Mode bit 2)

51頁の「TCCR0A - ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀA」のWGM01,0ﾋﾞｯﾄ記述をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]52

● ﾋﾞｯﾄ2～0 - CS02～0 : ｸﾛｯｸ選択0 (Clock Select0, bit 2,1 and 0)

この3つのｸﾛｯｸ選択ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ(TCNT0)によって使われるｸﾛｯｸ元を選択します。
表11-6. ﾀｲﾏ/ｶｳﾝﾀ0入力ｸﾛｯｸ選択
CS02
CS01
CS00
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

意味
停止 (ﾀｲﾏ/ｶｳﾝﾀ0動作停止)
clkI/O (前置分周なし)
clkI/O/8 (8分周)clkI/O/64 (64分周)
clkI/O/256 (256分周)
clkI/O/1024 (1024分周)
T0ﾋﾟﾝの下降端 (外部ｸﾛｯｸ)
T0ﾋﾟﾝの上昇端 (外部ｸﾛｯｸ)

外部ﾋﾟﾝ(ｸﾛｯｸ)動作がﾀｲﾏ/ｶｳﾝﾀ0に対して使われる場合、例えT0ﾋﾟﾝが出力として設定されても、T0ﾋﾟﾝの遷移はｶｳﾝﾀをｸﾛｯｸ駆動
します。この特徴がｿﾌﾄｳｪｱに計数制御を許します。

11.9.4. TCNT0 - ﾀｲﾏ/ｶｳﾝﾀ0 (Timer/Counter0)
ﾋﾞｯﾄ$32 ($52)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

TCNT0

R/W
0

このﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀは読み書き両方の操作について、ﾀｲﾏ/ｶｳﾝﾀ部の8ﾋﾞｯﾄ ｶｳﾝﾀに直接ｱｸｾｽします。TCNT0への書き込みは次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸでの比較一致を妨害(除去)します。ｶｳﾝﾀが走行中にｶｳﾝﾀ(TCNT0)を変更することはTCNT0とOCR0x間の比較
一致消失の危険を誘発します。

11.9.5. OCR0A - ﾀｲﾏ/ｶｳﾝﾀ0 比較Aﾚｼﾞｽﾀ (Timer/Counter0 Output Compare A Register)ﾋﾞｯﾄ$29 ($49)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR0A

R/W
0

この比較ﾚｼﾞｽﾀは継続的にｶｳﾝﾀ(TCNT0)値と比較される8ﾋﾞｯﾄの値を含みます。一致は比較一致割り込みやOC0Aﾋﾟﾝでの波形出力を生成するのに使えます。

11.9.6. OCR0B - ﾀｲﾏ/ｶｳﾝﾀ0 比較Bﾚｼﾞｽﾀ (Timer/Counter0 Output Compare B Register)ﾋﾞｯﾄ$28 ($48)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR0B

R/W
0

この比較ﾚｼﾞｽﾀは継続的にｶｳﾝﾀ(TCNT0)値と比較される8ﾋﾞｯﾄの値を含みます。一致は比較一致割り込みやOC0Bﾋﾟﾝでの波形出力を生成するのに使えます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]53

11.9.7. TIMSK - ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ (Timer/Counter Interrupt Mask Register)ﾋﾞｯﾄ$39 ($59)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCIE1A

OCIE1B

OCIE0A

OCIE0B

TOIE1

TOIE0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIMSK

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ4 - OCIE0A : ﾀｲﾏ/ｶｳﾝﾀ0比較A割り込み許可 (Timer/Counter0 Output Compare Match A Interrupt Enable)

OCIE0Aﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ0比較A一致割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀ0で比較A一致が起こる、換言するとﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)で比較A割り込み要求ﾌﾗｸﾞ(OCF0A)が設定(1)されると、対応する割り込みが実行されます。
● ﾋﾞｯﾄ3 - OCIE0B : ﾀｲﾏ/ｶｳﾝﾀ0比較B割り込み許可 (Timer/Counter0 Output Compare Match B Interrupt Enable)

OCIE0Bﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ0比較B一致割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀ0で比較B一致が起こる、換言するとﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)で比較B割り込み要求ﾌﾗｸﾞ(OCF0B)が設定(1)されると、対応する割り込みが実行されます。
● ﾋﾞｯﾄ1 - TOIE0 : ﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込み許可 (Timer/Counter0 Overflow Interrupt Enable)

TOIE0ﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀ0溢れが起こる、換言するとﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)でﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込み要求(TOV0)ﾌﾗｸﾞが設定(1)されると、対応する割り込みが実行されます。

11.9.8. TIFR - ﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Timer/Counter Interrupt Flag Register)ﾋﾞｯﾄ$38 ($58)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCF1A

OCF1B

OCF0A

OCF0B

TOV1

TOV0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIFR

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ4 - OCF0A : ﾀｲﾏ/ｶｳﾝﾀ0比較A割り込み要求ﾌﾗｸﾞ (Timer/Conter0, Output Compare A Match Flag)

OCF0Aﾋﾞｯﾄは比較一致がﾀｲﾏ/ｶｳﾝﾀ(TCNT0)と比較ﾚｼﾞｽﾀ(OCR0A)間で起こる時に設定(1)されます。対応する割り込み処理ﾍﾞｸﾀを実行すると、OCF0Aはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにこのﾌﾗｸﾞへ論理1を書くことによってもOCF0Aは解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)のﾀｲﾏ/ｶｳﾝﾀ0比較A一致割り込み許可(OCIE0A)ﾋﾞｯﾄ、OCF0Aが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ0比較A一致割り込みが実行されます。
● ﾋﾞｯﾄ3 - OCF0B : ﾀｲﾏ/ｶｳﾝﾀ0比較B割り込み要求ﾌﾗｸﾞ (Timer/Conter0, Output Compare B Match Flag)

OCF0Bﾋﾞｯﾄは比較一致がﾀｲﾏ/ｶｳﾝﾀ(TCNT0)と比較ﾚｼﾞｽﾀ(OCR0B)間で起こる時に設定(1)されます。対応する割り込み処理ﾍﾞｸﾀを実行すると、OCF0Bはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにこのﾌﾗｸﾞへ論理1を書くことによってもOCF0Bは解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)のﾀｲﾏ/ｶｳﾝﾀ0比較B一致割り込み許可(OCIE0B)ﾋﾞｯﾄ、OCF0Bが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ0比較B一致割り込みが実行されます。
● ﾋﾞｯﾄ1 - TOV0 : ﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込み要求ﾌﾗｸﾞ (Timer/Counter0 Overflow Flag)

TOV0ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ(TCNT0)溢れが起こる時に設定(1)されます。対応する割り込み処理ﾍﾞｸﾀを実行すると、TOV0はﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにこのﾌﾗｸﾞへ論理1を書くことによってもTOV0は解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)のﾀｲﾏ/ｶｳﾝﾀ0溢れ割り込み許可(TOIE0)ﾋﾞｯﾄ、TOV0が設定(1)されると、ﾀｲﾏ/
ｶｳﾝﾀ0溢れ割り込みが実行されます。位相基準PWM動作ではﾀｲﾏ/ｶｳﾝﾀ0が$00で計数方向を変える時にこのﾋﾞｯﾄが設定(1)されます。
これらﾌﾗｸﾞの設定はWGM02～0ﾋﾞｯﾄ設定に依存します。52頁の波形生成種別ﾋﾞｯﾄ記述の表11-5.を参照してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]54

12. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1
ﾀｲﾏ/ｶｳﾝﾀ1は独立した前置分周器からの独立した前置分周選択を持つ汎用8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ部です。

12.1. ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器
図12-1.は同期ｸﾛｯｸ動作と非同期ｸﾛｯｸ動作の2つのｸﾛｯｸ動作を支援するﾀｲﾏ/ｶｳﾝﾀ1の前置分周器部を示します。同期
ｸﾛｯｸ動作は基準時間ｸﾛｯｸとしてｼｽﾃﾑ ｸﾛｯｸ(CK)を使い、非同期ｸﾛｯｸ動作は基準時間ｸﾛｯｸとして高速周辺機能ｸﾛｯｸ(PCK)を使います。PLL制御/状態ﾚｼﾞｽﾀ(PLLCSR)のPCK許可(PCKE)ﾋﾞｯﾄは設定(1)の時に非同期動作を許可します。
同期ｸﾛｯｸ動作でのｸﾛｯｸ選択はCK～CK/16384と停止、非同期ｸﾛｯｸ動作でのｸﾛｯｸ選択はPCK～PCK/16384と停止です。このｸﾛｯｸ任意選択は59頁のﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)と表12-5.で記述されます。一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ(GTCCR)のﾀｲﾏ/ｶｳﾝﾀ1前置分周器ﾘｾｯﾄ(PSR1)ﾋﾞｯﾄの設定(1)がこの前置分周器をﾘｾｯﾄします。PLLCSRのPCKEﾋﾞｯﾄが非同期動作を許可します。高速周辺機能ｸﾛｯｸの周波数は64
MHz(または低速動作で32MHz)です。

図12-1. ﾀｲﾏ/ｶｳﾝﾀ1 前置分周器部構成
R

14ﾋﾞｯﾄ前置分周器

T1CK
T1CK/2
T1CK/4
T1CK/8
T1CK/16
T1CK/32
T1CK/64
T1CK/128
T1CK/256
T1CK/512
T1CK/1024
T1CK/2048
T1CK/4096
T1CK/8192
T1CK/16384

CK
S
A
PCK
(64/32MHz)
PCKE
PSR1

0

CS13
CS12
CS11
CS10

ﾀｲﾏ/ｶｳﾝﾀ1用
選択器
ﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ12.2. ﾀｲﾏ/ｶｳﾝﾀ1
ﾀｲﾏ/ｶｳﾝﾀ1の一般的な操作は非同期動作で記述され、同期動作での操作はこれら2つの動作種別間に違いがある時にだけ言及されます。図12-2.はﾀｲﾏ/ｶｳﾝﾀ1同期化ﾚｼﾞｽﾀ構成図とﾚｼﾞｽﾀ間の同期化遅延を示します。全ｸﾛｯｸ ｹﾞｰﾄ詳細がこの図で示されないことに注意してください。ﾀｲﾏ/ｶｳﾝﾀ1のﾚｼﾞｽﾀ値は計数動作に影響を及ぼす前に入力同期化遅延を引き起こす内部同期化ﾚｼﾞｽﾀを通ります。TCCR1,GTCCR,OCR1A,OCR1B,OCR1Cはﾚｼﾞｽﾀ書き込み後、正しく読み戻せます。読み戻し値はﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)とOCF1A,OCF1B,TOV1ﾌﾗｸﾞに関して入出力同期化のために遅らされます。
このﾀｲﾏ/ｶｳﾝﾀ1は低前置分周(使用)機会での高分解能及び高精度の使用が特徴です。64MHz(または低速動作で32MHz)までのｸ
ﾛｯｸ速度を使う正確で高速な2つの8ﾋﾞｯﾄ PWMも支援できます。この動作でﾀｲﾏ/ｶｳﾝﾀ1と比較ﾚｼﾞｽﾀは重複しない反転と非反転出力の2つの自立型PWMとして扱います。この機能の詳細記述については57頁の「ﾀｲﾏ/ｶｳﾝﾀ1 PWM動作」を参照してください。同様に高前置分周(使用)機会は低速な目的やまれに動く正確なﾀｲﾐﾝｸﾞの目的についてこの単位部を有用にします。

8-bit Data Bus

図12-2. ﾀｲﾏ/ｶｳﾝﾀ1同期化ﾚｼﾞｽﾀ構成図
I/Oﾚｼﾞｽﾀ

入力同期化
ﾚｼﾞｽﾀ

OCR1A

OCR1A_SI

OCR1B

OCR1B_SI

OCR1C

OCR1C_SI

TCCR1

TCCR1_SI

GTCCR

GTCCR_SI

TCNT1

TCNT1_SI

OCF1A

OCF1A_SI

OCF1B

OCF1B_SI

TOV1

TOV1_SIﾀｲﾏ/ｶｳﾝﾀ1

出力同期化
ﾚｼﾞｽﾀ

出力
多重器
S TCNT1

TCNT1_SOA

OCF1A_SOS OCF1AA

OCF1B_SOS OCF1B
A

TOV1_SOS TOV1
A

TCNT1

PCKE
CK

S
A

PCK
同期動作
非同期動作

1/2CK遅延
1～2PCK
遅延

S
A
1CK遅延
1PCK
遅延

1CK遅延

1/2CK遅延～1CK遅延

遅延なし

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

55

ﾀｲﾏ/ｶｳﾝﾀ1と前置分周器は前置分周器が非同期動作で高速64MHz(または低速動作で32MHz)のPCKｸﾛｯｸ動作をする一方、どのｸﾛｯｸ元からもCPUの走行(動作)を許します。
ｼｽﾃﾑ ｸﾛｯｸ周波数がPCK周波数の1/3よりも低くなければならないことに注意してください。非同期ﾀｲﾏ/ｶｳﾝﾀ1の同期化機構はｼｽ
ﾃﾑ ｸﾛｯｸがHighの時に最低2つのPCK端を必要とします。ｼｽﾃﾑ ｸﾛｯｸ周波数が高すぎる場合、ﾃﾞｰﾀまたは制御値を失う危険があります。
次の図12-3.はﾀｲﾏ/ｶｳﾝﾀ1の構成図を示します。
図12-3. ﾀｲﾏ/ｶｳﾝﾀ1構成図

計数
ﾀｲﾏ/ｶｳﾝﾀ1
解除(TCNT1)
R

OC1A
(PB0)

OC1B
(PB4)

OC1B
(PB3)

OC1A用
沈黙時間生成器(DT1A)

OC1B用
沈黙時間生成器(DT1B)

ﾀｲﾏ/ｶｳﾝﾀ1
制御ﾚｼﾞｽﾀ(TCCR1)

一般ﾀｲﾏ/ｶｳﾝﾀ
制御ﾚｼﾞｽﾀ(GTCCR)
PWM1B
COM1B1COM1B0
FOC1B
FOC1A
PSR1

(TOV1)

OCF1A
OCF1B
OCF0A
OCF0B
TOV1
TOV0

ﾀｲﾏ/ｶｳﾝﾀ
割り込み要求ﾌﾗｸﾞ
ﾚｼﾞｽﾀ (TIFR)(OCF1A)(OCF1B)ﾀｲﾏ/ｶｳﾝﾀ
割り込み許可ﾚｼﾞｽﾀ (TIMSK)

OC1A
(PB1)

CTC1
PWM1A
COM1A1
COM1A0
CS13
CS12
CS11
CS10

ﾀｲﾏ/ｶｳﾝﾀ1
溢れ割り込みﾀｲﾏ/ｶｳﾝﾀ1
比較B割り込み

OCIE1A
OCIE1B
OCIE0A
OCIE0B
TOIE1
TOIE0

ﾀｲﾏ/ｶｳﾝﾀ1
比較A割り込み

制御回路

8ﾋﾞｯﾄ比較器

8ﾋﾞｯﾄ比較器

8ﾋﾞｯﾄ比較器

ﾀｲﾏ/ｶｳﾝﾀ1 比較A
ﾚｼﾞｽﾀ (OCR1A)

ﾀｲﾏ/ｶｳﾝﾀ1 比較B
ﾚｼﾞｽﾀ (OCR1B)

ﾀｲﾏ/ｶｳﾝﾀ1 比較C
ﾚｼﾞｽﾀ (OCR1C)

CK
PCK

8-bit Data Bus

3つの状態ﾌﾗｸﾞ(溢れと比較一致)はﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)にあります。制御信号はﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)と一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ(GTCCR)にあります。割り込みの許可/禁止設定はﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)にあります。
ﾀｲﾏ/ｶｳﾝﾀ1はﾀｲﾏ/ｶｳﾝﾀ1の内容と比較されるﾃﾞｰﾀ元としてOCR1A、OCR1B、OCR1Cの3つの比較ﾚｼﾞｽﾀを含みます。標準動作での出力比較機能は3つ全てが出力比較ﾚｼﾞｽﾀでの動作です。OCR1AはOC1A(PB1)ﾋﾟﾝの動作を決め、標準動作とPWM動作で比較
A割り込みを生成できます。同様にOCR1BはOC1B(PB4)ﾋﾟﾝの動作を決め、標準動作とPWM動作で比較B割り込みを生成できます。
OCR1Cはﾀｲﾏ/ｶｳﾝﾀ1の最大値、換言すると比較一致での解除値を保持します。標準動作での溢れ割り込み(TOV1)はﾀｲﾏ/ｶｳﾝﾀ1
が$FFから$00に計数する時に生成され、一方PWMでの溢れ割り込みはﾀｲﾏ/ｶｳﾝﾀ1が$FFから$00に、またはOCR1Ｃ（値)から$00に計数する時のどうちらでも生成されます。反転PWM出力のOC1AとOC1Bは標準動作で接続されません。
PWM動作でのOCR1AとOCR1Bはﾀｲﾏ/ｶｳﾝﾀ値が繰り返し比較されるﾃﾞｰﾀ値を供給します。比較一致でPWM出力(OC1A, OC1A,
OC1B, OC1B)が生成されます。PWM動作でのﾀｲﾏ/ｶｳﾝﾀは比較Cﾚｼﾞｽﾀ(OCR1C)で指定した値まで上昇計数し、そして再び$00から始めます。この特性は$FFよりも小さい指定値へのｶｳﾝﾀ最大値制限を許します。多くの前置分周器任意選択と共に柔軟なPWM周
波数選択が提供されます。表12-3.は10kHz単位の20kHz～250kHzと50kHz単位の250kHz～500kHzのPWM周波数を得るためのOCR1C値とｸﾛｯｸ選択の一覧を示します。より高いPWM周波数は分解能を犠牲にすれば得られます。

12.2.1. 非同期動作に対するﾀｲﾏ/ｶｳﾝﾀ1の初期化
ﾀｲﾏ/ｶｳﾝﾀ1を非同期動作に設定するには最初にPLLを許可し、そしてPLL安定のために100µs待機し、次にPLOCKﾋﾞｯﾄが設定(1)されるまでﾎﾟｰﾘﾝｸﾞし、そしてその後にPCKEﾋﾞｯﾄを設定(1)してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]56

12.2.2. ﾀｲﾏ/ｶｳﾝﾀ1 PWM動作
PWM動作が選択されると、ﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と比較Cﾚｼﾞｽﾀ(OCR1C)はOC1 図12-4. 非重複出力対 (x=AまたはB)
A(PB1)とOC1B(PB4)ﾋﾟﾝ出力とOC1A(PB0)とOC1B(PB3)ﾋﾟﾝ反転出力での自由OC1x走行で不具合なしの(2出力)1対のPWM発生器を形成します。相互補完出力対
OC1xに対する既定非重複時間は0ですが、それらは沈黙時間生成器の使用で挿入
tnon-overlap(既定=0)できます(70頁の記述をご覧ください)。
ｶｳﾝﾀ値が比較Aﾚｼﾞｽﾀ(OCR1A)または比較Bﾚｼﾞｽﾀ(OCR1B)の内容と一致すると、表12-1.で示されるようにﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)の比較A出力選択(COM1A1,COM1A0)または一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞ
ｽﾀ(GTCCR)の比較B出力選択(COM1B1,COM1B0)ﾋﾞｯﾄに従ってOC1AとOC1B出力は設定(High)または解除(Low)されます。
ﾀｲﾏ/ｶｳﾝﾀ1は$00から比較Cﾚｼﾞｽﾀ(OCR1C)で指定した値まで計数し、再び$00から始める上昇ｶｳﾝﾀとして動きます。OCR1Cとの比
較一致は比較事象に続く同期化遅延後に溢れ割り込み要求(TOV1)ﾌﾗｸﾞを設定(1)します。
表12-1. PWM動作での比較出力選択 (x=AまたはB)
COM1x1 COM1x0
比較出力ﾋﾟﾝへの影響
00
OC1x: ﾋﾟﾝ接続断
OC1x: 比較一致で解除(Low)、TCNT1=$00で設定(High)01
OC1x: 比較一致で設定(High)、TCNT1=$00で解除(Low)10
OC1x: 比較一致で解除(Low)、TCNT1=$00で設定(High)1
1
OC1x: 比較一致で設定(High)、TCNT1=$00で解除(Low)
PWM動作でのOCR1AまたはOCR1B比較ﾚｼﾞｽﾀへの書き込みはﾃﾞｰﾀ値
が初めに一時領域へ転送されることに注意してください。この値はﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)がOCR1Cに達する時にOCR1AまたはOCR1Bにﾗｯﾁ(設定)されます。これはOCR1AまたはOCR1Bの非同期の出来事での奇数長PWM
ﾊﾟﾙｽ(不具合)の発生を防止します。この例については図12-5.をご覧ください。
書き込み(操作)からﾗｯﾁ動作(実際に設定される)間の期間中、OCR1AまたはOCR1B読み込みは一時領域の内容を読みます。これは最も最近書かれた値が常にOCR1AまたはOCR1Bの読み出しであることを意味します。
OCR1AとOCR1Bは$00またはOCR1Cで指定した上限値を含むと、OC1A(PB1)またはOC1B(PB4)出力がCOM1A1/COM1A0またはCOM1B1/COM
1B 0 の設定に従ってHighまたはLowに(更新/)保持されます。これは表12-2.で示されます。
PWM動作での溢れ(TOV1)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)がOCR1C値へ計数し、TCNT1が$00にﾘｾｯﾄされる時に設定(1)されます。ﾀｲﾏ/ｶｳﾝﾀ1溢れ
割り込みはﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可(TOIE1)ﾋﾞｯﾄと全割り込み許可(I)ﾋﾞｯﾄが許可なら、TOV1が設定(1)される時に実行されます。これは比較ﾌ
ﾗｸﾞとその割り込みにも適用されます。
PWM周波数はﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周波数をOCR1C値+1で割った値です。
次式をご覧ください。

f PWM =

f TCK1OCR1C+1
分解能はOCR1Cﾚｼﾞｽﾀ内の値を表すのに何ﾋﾞｯﾄ必要とされるかを示し、次式を使って計算できます。

OC1x: ﾋﾟﾝ接続断

OC1x: ﾋﾟﾝ接続断
OC1x: ﾋﾟﾝ接続断

図12-5. 同期/非同期OCR1xの効果比較ﾚｼﾞｽﾀ 比較ﾚｼﾞｽ
書き込み ﾀ値更新
比較ﾚｼﾞｽﾀ値
ﾀｲﾏ/ｶｳﾝﾀ1値
同期OCR1x
OC1x PWM出力比較ﾚｼﾞｽﾀ値
ﾀｲﾏ/ｶｳﾝﾀ1値
非同期OCR1x
OC1x PWM出力不具合
表12-2. 上限/下限値でのPWM出力 (x=AまたはB)
OC1x
OC1x
COM1x1 COM1x0
OCR1x
出力
出力
$00
L
H
0
1
OCR1C
H
L
$00
L
接続断
1
0
OCR1C
H
接続断
$00
H
接続断
1
1
OCR1C
L
接続断

分解能PWM = log2(OCR1C+1)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]57

表12-3. 非同期動作での代表的なPWM周波数設定例
PWM周波数PWM周期
OCR1C値
20kHz
50.00µs
19930kHz33.33µs
13240kHz
25.00µs
199
50kHz
20.00µs
15960kHz
16.67µs
13270kHz14.29µs
22880kHz12.50µs
199
90kHz
11.11µs
177100kHz10.00µs
159110kHz9.09µs144
120kHz8.33µs132130kHz7.69µs245140kHz7.14µs228
150kHz6.67µs212
160kHz6.26µs199
170kHz5.88µs187
180kHz5.56µs177
190kHz5.26µs167
200kHz5.00µs159
250kHz4.00µs255300kHz3.34µs212
350kHz2.86µs182
400kHz2.50µs159
450kHz2.22µs141
500kHz2.00µs127

分解能 (ﾋﾞｯﾄ)
7.6
7.1
7.6
7.3
7.1
7.8
7.6
7.5
7.3
7.2
7.1
7.9
7.8
7.7
7.6
7.6
7.5
7.4
7.3
8.0
7.7
7.5
7.3
7.1
7.0

TCNT1ｸﾛｯｸ

CS13～0

PCK/16

0101

PCK/8

0100

PCK/4

0011

PCK/2

0010

PCK

0001

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]58

12.3. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1用ﾚｼﾞｽﾀ
12.3.1. TCCR1 - ﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ (Timer/Counter0 Control Register)ﾋﾞｯﾄ$30 ($50)
Read/Write
初期値

7

6

CTC1

5

4

PWM1A COM1A1 COM1A0

R/W
0

R/W
0

R/W
0

R/W
0

3

2

1

0

CS13

CS12

CS11

CS10

R/W
0

R/W
0

R/W
0

R/W
0

TCCR1

● ﾋﾞｯﾄ7 - CTC1 : 一致解除許可 (Clear Timer/Counter1 on Compare Match)

CTC1制御ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)は比較Cﾚｼﾞｽﾀ(OCR1C)との比較一致後のCPUｸﾛｯｸ周期で$00にﾘｾｯﾄされます。この制御ﾋﾞｯﾄが解除(0)されると、ﾀｲﾏ/ｶｳﾝﾀ1は計数を継続し、比較一致によって影響を及ぼされません。
● ﾋﾞｯﾄ6 - PWM1A : PWM動作A許可 (Pulse Width Modulator A Enable)

このﾋﾞｯﾄを設定(1)すると、ﾀｲﾏ/ｶｳﾝﾀ1でOCR1A比較器を基準としたPWM動作を許可し、ﾀｲﾏ/ｶｳﾝﾀ値はOCR1C値との比較一致後のCPUｸﾛｯｸ周期で$00にﾘｾｯﾄされます。
● ﾋﾞｯﾄ5,4 - COM1A1,0 : 比較A出力選択 (Compare A Output Mode bit 1 and 0)

COM1A1とCOM1A0制御ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)で比較Aﾚｼﾞｽﾀ(OCR1A)との比較一致に続く何れかの出力ﾋﾟﾝ動作を決めます。出力ﾋﾟﾝ動
作が入出力ﾎﾟｰﾄの交換機能なので、出力ﾋﾟﾝを制御するために、対応する方向制御ﾋﾞｯﾄ(DDB1)が設定(1)されなければなりません。
標準動作でのCOM1A1とCOM1A0制御ﾋﾞｯﾄは表12-4.で記述されるようにPB1(OC1A)ﾋﾟﾝに影響を及ぼす出力ﾋﾟﾝの動きを決めます。OC1Aが標準動作で接続されないことに注意してください。
PWM動作でのこれらのﾋﾞｯﾄは異なる機能を持ちます。詳細記述について
は57頁の表12-1.を参照してください。

表12-4. 標準動作での比較A出力選択
COM1A1 COM1A0
意味00
OC1Aﾋﾟﾝ未使用 (ﾋﾟﾝ接続断)
0
1
OC1Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
1
0
OC1Aﾋﾟﾝ Lowﾚﾍﾞﾙ出力
1
1
OC1Aﾋﾟﾝ Highﾚﾍﾞﾙ出力● ﾋﾞｯﾄ3～0 - CS13～0 : ｸﾛｯｸ選択1 (Clock Select1, bit 3,2,1 and 0)

このｸﾛｯｸ選択ﾋﾞｯﾄ3～0はﾀｲﾏ/ｶｳﾝﾀ1の前置分周元を定義します。
表12-5. ﾀｲﾏ/ｶｳﾝﾀ1 前置分周ｸﾛｯｸ選択
CS13 CS12 CS11 CS10
0
0
0
0
0
0
0
0

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

意味
CS13 CS12 CS11 CS10
非同期動作
同期動作
停止 (ﾀｲﾏ/ｶｳﾝﾀ1動作停止)
1
0
0
0
PCK
CK(CPUｸﾛｯｸ)
1
0
0
1
PCK/2
CK/2
1
0
1
0
PCK/4
CK/4
1
0
1
1
PCK/8
CK/8
1
1
0
0
PCK/16
CK/16
1
1
0
1
PCK/32
CK/32
1
1
1
0
PCK/64
CK/64
1
1
1
1

意味
非同期動作
PCK/128
PCK/256
PCK/512
PCK/1024
PCK/2048
PCK/4096
PCK/8192
PCK/16384

同期動作CK/128
CK/256
CK/512
CK/1024
CK/2048
CK/4096
CK/8192
CK/16384

停止状態はﾀｲﾏ/ｶｳﾝﾀの許可/禁止機能を提供します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]59

12.3.2. GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ (General Timer/Counter Control Register)ﾋﾞｯﾄ$2C ($4C)
Read/Write
初期値

7

TSM
R/W
0

6

5

4

PWM1B COM1B1 COM1B0
R/W
0

R/W
0

R/W
0

3

2

1

0

FOC1B

FOC1A

PSR1

PSR0

W
0

W
0

R/W
0

R/W
0

GTCCR

● ﾋﾞｯﾄ6 - PWM1B : PWM動作B許可 (Pulse Width Modulator B Enable)

このﾋﾞｯﾄを設定(1)すると、ﾀｲﾏ/ｶｳﾝﾀ1でOCR1B比較器を基準としたPWM動作を許可し、ﾀｲﾏ/ｶｳﾝﾀ値はOCR1C値との比較一致後のCPUｸﾛｯｸ周期で$00にﾘｾｯﾄされます。
● ﾋﾞｯﾄ5,4 - COM1B1,0 : 比較B出力選択 (Compare B Output Mode bit 1 and 0)

COM1B1とCOM1B0制御ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)で比較Bﾚｼﾞｽﾀ(OCR1B)での比較一致に続く何れかの出力ﾋﾟﾝ動作を決めます。出力ﾋﾟﾝ動
作が入出力ﾎﾟｰﾄの交換機能なので、出力ﾋﾟﾝを制御するために、対応する方向制御ﾋﾞｯﾄ(DDB4)が設定(1)されなければなりません。
標準動作でのCOM1B1とCOM1B0制御ﾋﾞｯﾄは表12-6.で記述されるように
PB4(OC1B)ﾋﾟﾝに影響を及ぼす出力ﾋﾟﾝの動きを決めます。OC1Bが標準動作で接続されないことに注意してください。
PWM動作でのこれらのﾋﾞｯﾄは異なる機能を持ちます。詳細記述について
は57頁の表12-1.を参照してください。

表12-6. 標準動作での比較B出力選択
COM1B1 COM1B0
意味00
OC1Bﾋﾟﾝ未使用 (ﾋﾟﾝ接続断)
0
1
OC1Bﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
10
OC1Bﾋﾟﾝ Lowﾚﾍﾞﾙ出力
1
1
OC1Bﾋﾟﾝ Highﾚﾍﾞﾙ出力● ﾋﾞｯﾄ3 - FOC1B : OC1B強制変更 (Force Output Compare Match 1B)

このﾋﾞｯﾄへの論理1書き込みは比較B出力制御(COM1B1,COM1B0)ﾋﾞｯﾄで既に設定した値に従って比較一致出力ﾋﾟﾝOC1B(PB4)を強制的に変更します。COM1B1とCOM1B0ﾋﾞｯﾄがFOC1Bと同じ周期で書かれる場合、この新しい設定が使われます。この比較出力
強制ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ値と無関係にこの出力ﾋﾟﾝを変更するのに使えます。COM1B1とCOM1B0で設定した自動動作は比較一致が起きてしまったかのようになりますが、割り込みは生成されません。FOC1Bﾋﾞｯﾄは常に0として読めます。PWM1Bﾋﾞｯﾄが設定(1)されると、FOC1Bは行なわれ(実行され)ません。
● ﾋﾞｯﾄ2 - FOC1A : OC1A強制変更 (Force Output Compare Match 1A)

このﾋﾞｯﾄへの論理1書き込みは比較A出力制御(COM1A1,COM1A0)ﾋﾞｯﾄで既に設定した値に従って比較一致出力ﾋﾟﾝOC1A(PB1)を強制的に変更します。COM1A1とCOM1A0ﾋﾞｯﾄがFOC1Aと同じ周期で書かれる場合、この新しい設定が使われます。この比較出力
強制ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ値と無関係にこの出力ﾋﾟﾝを変更するのに使えます。COM1A1とCOM1A0で設定した自動動作は比較一致が起きてしまったかのようになりますが、割り込みは生成されません。FOC1Aﾋﾞｯﾄは常に0として読めます。PWM1Aﾋﾞｯﾄが設定(1)されると、FOC1Aは行なわれ(実行され)ません。
● ﾋﾞｯﾄ1 - PSR1 : ﾀｲﾏ/ｶｳﾝﾀ1 前置分周器ﾘｾｯﾄ (Prescaler Reset Timer/Counter 1)

このﾋﾞｯﾄが設定(1)されると、(TCNT1が影響を及ぼされずに)ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器がﾘｾｯﾄします。このﾋﾞｯﾄは操作が実行された
後でﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄへの0書き込みは無効です。このﾋﾞｯﾄは常に0として読めます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]60

12.3.3. TCNT1 - ﾀｲﾏ/ｶｳﾝﾀ1 (Timer/Counter1)
ﾋﾞｯﾄ$2F ($4F)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

TCNT1

R/W
0

この8ﾋﾞｯﾄ ﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1の値を含みます。
ﾀｲﾏ/ｶｳﾝﾀ1は読み書き可能な上昇ｶｳﾝﾀとして実現されます。CPUの同期化のため、ﾀｲﾏ/ｶｳﾝﾀ1内へのﾀｲﾏ/ｶｳﾝﾀ1ﾃﾞｰﾀ書き込み
は同期動作で1.5CPUｸﾛｯｸ周期、非同期動作で最大1CPUｸﾛｯｸ周期遅らされます。

12.3.4. OCR1A - ﾀｲﾏ/ｶｳﾝﾀ1 比較Aﾚｼﾞｽﾀ (Timer/Counter1 Output Compare Register A)
ﾋﾞｯﾄ$2E ($4E)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR1A

R/W
0

比較Aﾚｼﾞｽﾀ(OCR1A)は読み書き可能な8ﾋﾞｯﾄのﾚｼﾞｽﾀです。
この比較Aﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と継続的に比較されるﾃﾞｰﾀを含みます。比較一致での動作はﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)で指定されます。比較一致はﾀｲﾏ/ｶｳﾝﾀ1がOCR1A値へ計数する場合にだけ起きます。TCNT1とOCR1Aを同一値に設定する
ｿﾌﾄｳｪｱ書き込みは比較一致を生成しません。
比較一致は比較事象に続く同期化遅延後、比較一致割り込み要求ﾌﾗｸﾞ(OCF1A)を設定(1)します。

12.3.5. OCR1B - ﾀｲﾏ/ｶｳﾝﾀ1 比較Bﾚｼﾞｽﾀ (Timer/Counter1 Output Compare Register B)
ﾋﾞｯﾄ$2B ($4B)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR1B

R/W
0

比較Bﾚｼﾞｽﾀ(OCR1B)は読み書き可能な8ﾋﾞｯﾄのﾚｼﾞｽﾀです。
この比較Bﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と継続的に比較されるﾃﾞｰﾀを含みます。比較一致での動作はﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCC
R1)で指定されます。比較一致はﾀｲﾏ/ｶｳﾝﾀ1がOCR1B値へ計数する場合にだけ起きます。TCNT1とOCR1Bを同一値に設定するｿ
ﾌﾄｳｪｱ書き込みは比較一致を生成しません。
比較一致は比較事象に続く同期化遅延後、比較一致割り込み要求ﾌﾗｸﾞ(OCF1B)を設定(1)します。

12.3.6. OCR1C - ﾀｲﾏ/ｶｳﾝﾀ1 比較Cﾚｼﾞｽﾀ (Timer/Counter1 Output Compare Register C)
ﾋﾞｯﾄ$2D ($4D)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR1C

R/W
0

比較Cﾚｼﾞｽﾀ(OCR1C)は読み書き可能な8ﾋﾞｯﾄのﾚｼﾞｽﾀです。
この比較Bﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と継続的に比較されるﾃﾞｰﾀを含みます。比較一致はﾀｲﾏ/ｶｳﾝﾀ1がOCR1C値へ計数する
場合にだけ起きます。TCNT1とOCR1Cを同一値に設定するｿﾌﾄｳｪｱ書き込みは比較一致を生成しません。ﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)でCTC1ﾋﾞｯﾄが設定(1)されると、比較一致はTCNT1を解除($00)します。
このﾚｼﾞｽﾀは標準動作とPWM動作で同じ機能を持ちます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]61

12.3.7. TIMSK - ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ (Timer/Counter Interrupt Mask Register)ﾋﾞｯﾄ$39 ($59)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCIE1A

OCIE1B

OCIE0A

OCIE0B

TOIE1

TOIE0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIMSK

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - OCIE1A : ﾀｲﾏ/ｶｳﾝﾀ1比較A割り込み許可 (Timer/Counter1 Output Compare A Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとOCIE1Aﾋﾞｯﾄが共に設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1比較A一致割り込みが許可されます。比較A一致が起こると、ﾍﾞｸﾀ$0003での対応する割り込みが実行されます。このﾀｲﾏ/ｶｳﾝﾀ1の比較ﾌﾗｸﾞ(OCF1A)はﾀｲﾏ/ｶｳﾝﾀ割
り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)で設定(1)されます。
● ﾋﾞｯﾄ5 - OCIE1B : ﾀｲﾏ/ｶｳﾝﾀ1比較B割り込み許可 (Timer/Counter1 Output Compare B Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとOCIE1Bﾋﾞｯﾄが共に設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1比較B一致割り込みが許可されます。比較B一致が起こると、ﾍﾞｸﾀ$0009での対応する割り込みが実行されます。このﾀｲﾏ/ｶｳﾝﾀ1の比較ﾌﾗｸﾞ(OCF1B)はﾀｲﾏ/ｶｳﾝﾀ割
り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)で設定(1)されます。
● ﾋﾞｯﾄ2 - TOIE1 : ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可 (Timer/Counter1 Overflow Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと、TOIE1ﾋﾞｯﾄが共に設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込みが許可されます。ﾀｲ
ﾏ/ｶｳﾝﾀ1溢れが起こると、(ﾍﾞｸﾀ$004での)対応する割り込みが実行されます。溢れ(TOV1)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞ
ｽﾀ(TIFR)で設定(1)されます。

12.3.8. TIFR - ﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Timer/Counter Interrupt Flag Register)ﾋﾞｯﾄ$38 ($58)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCF1A

OCF1B

OCF0A

OCF0B

TOV1

TOV0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIFR

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - OCF1A : 比較A割り込み要求ﾌﾗｸﾞ (Output Compare Interrupt Flag1A)

ﾀｲﾏ/ｶｳﾝﾀ1と比較Aﾚｼﾞｽﾀ(OCR1A)内のﾃﾞｰﾀ値間で比較一致が起きると、OCF1Aﾋﾞｯﾄが設定(1)されます。OCF1Aは対応する割り込み処理ﾍﾞｸﾀを実行するとき、ﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにOCF1Aはこのﾌﾗｸﾞへの論理1書き込みにより、同期化ｸ
ﾛｯｸ周期後に解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)の比較A割
り込み許可(OCIE1A)ﾋﾞｯﾄとOCF1Aが設定(1)なら、ﾀｲﾏ/ｶｳﾝﾀ1比較A一致割り込みが実行されます。
● ﾋﾞｯﾄ5 - OCF1B : 比較B割り込み要求ﾌﾗｸﾞ (Output Compare Interrupt Flag1B)

ﾀｲﾏ/ｶｳﾝﾀ1と比較Bﾚｼﾞｽﾀ(OCR1B)内のﾃﾞｰﾀ値間で比較一致が起きると、OCF1Bﾋﾞｯﾄが設定(1)されます。OCF1Bは対応する割り込み処理ﾍﾞｸﾀを実行するとき、ﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにOCF1Bはこのﾌﾗｸﾞへの論理1書き込みにより、同期化ｸ
ﾛｯｸ周期後に解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、TIMSKの比較B割り込み許可(OCIE1B)ﾋﾞｯﾄとOCF1Bが設定(1)なら、ﾀｲﾏ/ｶｳﾝﾀ1比較B一致割り込みが実行されます。
● ﾋﾞｯﾄ2 - TOV1 : ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み要求ﾌﾗｸﾞ (Timer/Counter1 Overflow Interrupt Flag)

標準動作(PWM1A=0且つPWM1B=0)でのTOV1はﾀｲﾏ/ｶｳﾝﾀ1溢れが起きると設定(1)されます。TOV1は対応する割り込み処理ﾍﾞｸ
ﾀを実行するとき、ﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにTOV1はこのﾌﾗｸﾞへの論理1書き込みにより、同期化ｸﾛｯｸ周期後に解除(0)されます。
PWM動作(PWM1A=1またはPWM1B=1)でのTOV1はﾀｲﾏ/ｶｳﾝﾀ1と比較Cﾚｼﾞｽﾀ(OCR1C)内のﾃﾞｰﾀ値間で比較一致が起こる時に設定(1)されます。
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)のﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可(TOIE1)
ﾋﾞｯﾄとTOV1が設定(1)の時にﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込みが実行されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]62

12.3.9. PLLCSR - PLL制御/状態ﾚｼﾞｽﾀ (PLL Control and Status Register)ﾋﾞｯﾄ$27 ($47)
Read/Write
初期値

7

6

5

4

3

2

1

0

LSM

-

-

-

-

PCKE

PLLE

PLOCK

R/W
0

R
0

R
0

R
0

R
0

R/W
0

R/W
1/0

R
0

PLLCSR● ﾋﾞｯﾄ7 - LSM : 低速動作 (Low Speed Mode)

既定として高速動作が許可され、高速周辺機能ｸﾛｯｸは64MHzですが、LSMﾋﾞｯﾄに1を書くことで低速動作に設定できます。そして高速周辺機能ｸﾛｯｸは32MHzに下げられます。ﾀｲﾏ/ｶｳﾝﾀ1が低電圧状態で充分速く走行できないので、供給電圧が2.7V以下の場
合、低速動作が設定されなければなりません。LSMﾋﾞｯﾄが変更される時に必ずﾀｲﾏ/ｶｳﾝﾀ1は停止されることが強く推奨されます。
PLLclkがｼｽﾃﾑ ｸﾛｯｸとして使われる場合、LSMが設定(1)できないことに注意してください。
● ﾋﾞｯﾄ6～3 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読めます。
● ﾋﾞｯﾄ2 - PCKE : PCK許可 (PCK Enable)

PCKEﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ1のｸﾛｯｸ元を変更します。設定(1)されると、非同期ｸﾛｯｸ動作が許可され、ﾀｲﾏ/ｶｳﾝﾀ1のｸﾛｯｸ元として高速64MHz(または低速動作で32MHz)のPCKｸﾛｯｸが使われます。このﾋﾞｯﾄが解除(0)されると、同期ｸﾛｯｸ動作が許可され、ﾀｲﾏ/ｶｳﾝﾀ1のｸﾛｯｸ元としてｼｽﾃﾑ ｸﾛｯｸ(CK)が使われます。このﾋﾞｯﾄはPLLEﾋﾞｯﾄが設定(1)されている場合にだけ設定(1)できます。PLLが固定化される、換言するとPLOCKﾋﾞｯﾄが1の時にだけ、このﾋﾞｯﾄを設定(1)するのが無難です。PCKEﾋﾞｯﾄは先にPLLが許可されてしまっている場合にだけ設定できます。
● ﾋﾞｯﾄ1 - PLLE : PLL許可 (PLL Enable)

PLLEが設定(1)されると、PLLが起動され、必要とされるなら、PLL基準ｸﾛｯｸとして内蔵RC発振器が起動されます。ｼｽﾃﾑ ｸﾛｯｸ元としてPLLが選択されると、このﾋﾞｯﾄに対する値は常に1です。
● ﾋﾞｯﾄ0 - PLOCK : PLL固定化検出 (PLL Lock Detector)

PLOCKﾋﾞｯﾄが設定(1)されると、PLLが基準ｸﾛｯｸに固定化されます。PLL周波数が上下超過する初期PLL固定化の間、PLOCKﾋﾞｯﾄは無視されるべきです。安定状態は100µs以内に得られます。PLL固定化後、ﾀｲﾏ/ｶｳﾝﾀ1に対してPCKを許可する前にPLOCKﾋﾞｯﾄの調査が推奨されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

63

13. ATtiny15互換動作での8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1
ATtiny15互換動作はCKSELﾋｭｰｽﾞに'0011'を書くことによって選択されます(他の何れかの符号が書かれると、ﾀｲﾏ/ｶｳﾝﾀ1は標準動
作で動きます)。選択されると、ATtiny15互換動作はATtiny15下位互換の前置分周器とﾀｲﾏ/ｶｳﾝﾀを提供します。更にｸﾛｯｸ系はAT
tiny15と同じｸﾛｯｸ周波数を持ちます。

13.1. ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器

PCK

3ﾋﾞｯﾄ
R 前置分周器
PCK
25.6MHz 0

CS10
CS11
CS12
CS13

CK/8
CK/64
CK/256
CK/1024
CK/8
CK/64
CK/256
CK/1024
CK/256
CK/1024

図13-1. ATtiny15互換動作時ﾀｲﾏ/ｶｳﾝﾀ1前置分周器部構成
1.6MHz
CK
10ﾋﾞｯﾄ前置分周器
PSR1
R
CK(PCK/16)

PCK/2
PCK/4
PCK/8

図13-1.はATtiny15互換前置分周器を示します。これはｼｽﾃﾑ
ｸﾛｯｸ(CK)用の10ﾋﾞｯﾄ前置分周器と、高速周辺機能ｸﾛｯｸ(PCK)用の3ﾋﾞｯﾄ前置分周器の、2つの前置分周器部を持ちます。ﾀｲ
ﾏ/ｶｳﾝﾀ1のｸﾛｯｸ系はATtiny15互換動作で、AVRｺｱと(前置分周器に対して入力ｸﾛｯｸを生成する)PLLｸﾛｯｸ元として同じRC発振器が使われるため、常に同期しています。
ATtiny15互換動作で前置分周器が同一、且つ高速周辺機能ｸ
ﾛｯｸの周波数が25.6MHzなので、出力多重器からﾀｲﾏ/ｶｳﾝﾀ1に対してATtiny15と同じｸﾛｯｸ選択が選べます。このｸﾛｯｸ選択
は、PCK, PCK/2, PCK/4,PCK/8. CK(PCK/16), CK/2,
CK/4, CK/8, CK/16, CK/32, CK/64, CK/128, CK/256,
CK/512, CK/1024と停止です。

ﾀｲﾏ/ｶｳﾝﾀ1用
選択器
TCK1:ﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ13.2. ﾀｲﾏ/ｶｳﾝﾀ1
図13-2.はﾀｲﾏ/ｶｳﾝﾀ1同期化ﾚｼﾞｽﾀ構成図とﾚｼﾞｽﾀ間の同期化遅延を示します。全ｸﾛｯｸ ｹﾞｰﾄ詳細がこの図で示されないことに注意してください。ﾀｲﾏ/ｶｳﾝﾀ1のﾚｼﾞｽﾀ値はｶｳﾝﾀ動作に影響を及ぼす前に入力同期化遅延を引き起こす内部同期化ﾚｼﾞｽﾀを通ります。TCCR1,GTCCR,OCR1A,OCR1Cはﾚｼﾞｽﾀ書き込み後、正しく読み戻せます。読み戻し値はﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)とOCF1A,TOV
1ﾌﾗｸﾞに関して入出力同期化のために遅らされます。
このﾀｲﾏ/ｶｳﾝﾀ1は低前置分周(使用)機会での高分解能及び高精度の使用が特徴です。25.6MHzまでのｸﾛｯｸ速度を使う正確で高速な2つの8ﾋﾞｯﾄ PWMも支援できます。この動作でﾀｲﾏ/ｶｳﾝﾀ1と比較ﾚｼﾞｽﾀは重複しない反転と非反転出力の2つの自立型PWMとして取り扱います。この機能の詳細記述については66頁の「ATtiny15互換動作でのﾀｲﾏ/ｶｳﾝﾀ1 PWM動作」を参照してください。同様に高前置分周(使用)機会は低速な目的やまれに動く正確なﾀｲﾐﾝｸﾞの目的についてこの単位部を有用にします。
図13-2. ATtiny15互換動作時ﾀｲﾏ/ｶｳﾝﾀ1同期化ﾚｼﾞｽﾀ構成図
I/Oﾚｼﾞｽﾀ

入力同期化
ﾚｼﾞｽﾀ

OCR1A

OCR1A_SI

ﾀｲﾏ/ｶｳﾝﾀ1

出力同期化
ﾚｼﾞｽﾀ

8-bit Data Bus

TCNT1_SO
OCR1C

OCR1C_SI

TCCR1

TCCR1_SI

GTCCR

GTCCR_SI

TCNT1

TCNT1_SI

OCF1A

OCF1A_SI

TOV1

TOV1_SI

OCF1A_SO

TCNT1

OCF1A

TCNT1

TOV1_SO

TOV1

PCKE
CK

S
A

PCK
同期動作
非同期動作

1～2PCK遅延
1～2PCK
遅延

S
A
1PCK
遅延
1PCK
遅延

～1CK遅延遅延なし～1CK遅延

遅延なし

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]64

ﾀｲﾏ/ｶｳﾝﾀ1と前置分周器は、前置分周器が非同期動作で高速25.6MHzのPCKｸﾛｯｸ動作をする一方、どのｸﾛｯｸ元からもCPUの走行(動作)を許します。
次の図13-3.はﾀｲﾏ/ｶｳﾝﾀ1の構成図を示します。
図13-3. ATtiny15互換動作時ﾀｲﾏ/ｶｳﾝﾀ1構成図

計数
ﾀｲﾏ/ｶｳﾝﾀ1
解除(TCNT1)R

ﾀｲﾏ/ｶｳﾝﾀ1
制御ﾚｼﾞｽﾀ(TCCR1)

一般ﾀｲﾏ/ｶｳﾝﾀ
制御ﾚｼﾞｽﾀ(GTCCR)
PWM1B
COM1B1COM1B0
FOC1B
FOC1A
PSR1

(TOV1)

OCF1A
OCF1B
OCF0A
OCF0B
TOV1
TOV0

ﾀｲﾏ/ｶｳﾝﾀ
割り込み要求ﾌﾗｸﾞ
ﾚｼﾞｽﾀ (TIFR)(OCF1A)

OCIE1A
OCIE1B
OCIE0A
OCIE0B
TOIE1
TOIE0

ﾀｲﾏ/ｶｳﾝﾀ
割り込み許可ﾚｼﾞｽﾀ (TIMSK)

CTC1
PWM1A
COM1A1
COM1A0
CS13
CS12
CS11
CS10

ﾀｲﾏ/ｶｳﾝﾀ1 OC1A
溢れ割り込み (PB1)

ﾀｲﾏ/ｶｳﾝﾀ1
比較A割り込み

制御回路

8ﾋﾞｯﾄ比較器

8ﾋﾞｯﾄ比較器

ﾀｲﾏ/ｶｳﾝﾀ1 比較A
ﾚｼﾞｽﾀ (OCR1A)

ﾀｲﾏ/ｶｳﾝﾀ1 比較C
ﾚｼﾞｽﾀ (OCR1C)

CK
PCK

8-bit Data Bus

2つの状態ﾌﾗｸﾞ(溢れと比較一致)はﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)にあります。制御信号はﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)と一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ(GTCCR)にあります。割り込みの許可/禁止設定はﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)にあります。
ﾀｲﾏ/ｶｳﾝﾀ1はﾀｲﾏ/ｶｳﾝﾀ1の内容と比較されるﾃﾞｰﾀ元として2つの比較ﾚｼﾞｽﾀ、OCR1A、OCR1Cを含みます。標準動作での出力比
較機能はOCR1Aとだけの動作です。OCR1AはOC1A(PB1)ﾋﾟﾝの動作を決め、標準動作とPWM動作で比較A割り込みを生成できます。OCR1Cはﾀｲﾏ/ｶｳﾝﾀ1の最大値、換言すると比較一致での解除値を保持します。標準動作での溢れ割り込み(TOV1)はﾀｲﾏ/ｶｳ
ﾝﾀ1が$FFから$00に計数する時に生成され、一方PWM動作での溢れ割り込みはﾀｲﾏ/ｶｳﾝﾀ1が$FFから$00に、またはOCR1C(値)から$00に計数する時のどちらでも生成されます。
PWM動作でのOCR1Aはﾀｲﾏ/ｶｳﾝﾀ値が繰り返し比較されるﾃﾞｰﾀ値を供給します。比較一致でPWM出力(OC1A)が生成されます。
PWM動作でのﾀｲﾏ/ｶｳﾝﾀは比較Cﾚｼﾞｽﾀ(OCR1C)で指定した値まで上昇計数し、そして再び$00から始めます。この特性は$FFよりも小さい指定値へのｶｳﾝﾀ最大値制限を許します。多くの前置分周器任意選択と共に柔軟なPWM周波数選択が提供されます。表13-3.は10kHz単位の10kHz～150kHzのPWM周波数を得るためのOCR1C値とｸﾛｯｸ選択の一覧を示します。より高いPWM周波数は分解能を犠牲にすれば得られます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]65

13.2.1. ATtiny15互換動作時 ﾀｲﾏ/ｶｳﾝﾀ1 PWM動作
PWM動作が選択されると、ﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と比較Aﾚｼﾞｽﾀ(OCR1A)は自由走行で不具合のない8ﾋﾞｯﾄPWMとOC1A(PB1)ﾋﾟﾝ出力を形成します。
ﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)値が比較Aﾚｼﾞｽﾀ(OCR1A)の内容と一致すると、表13-1.で示されるようにﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)の比較出力選択(COM1A1,COM1A0)の指定に従って、OC1A(PB1)ﾋﾟﾝが設定(High)または解除(Low)されます。
ﾀｲﾏ/ｶｳﾝﾀ1は上昇ｶｳﾝﾀとして動作し、$00から比較Cﾚｼﾞｽﾀ(OCR1C)で指定された値まで上昇計数し、そして再び$00から上昇を始めます。OCR1Cとの比較一致は比較事象に続く同期化遅延後に溢れ割り込み要求(TOV1)ﾌﾗｸﾞを設定(1)します。
表13-1. PWM出力選択 (比較出力選択と兼用)
COM1A1
COM1A0OC1A(PB1)出力00
OC1A出力切断 (PB1は標準I/Oとして動作)
01
01
OCR1Aとの比較一致で解除(Low)、TCNT1=$00時に設定(High)1
OCR1Aとの比較一致で設定(High)、TCNT1=$00時に解除(Low)1
PWM動作での比較Aﾚｼﾞｽﾀ(OCR1A)書き込みはﾃﾞｰﾀ値が最初に一時領域へ転送されることに注意してください。その値はﾀｲﾏ/ｶｳﾝﾀがOCR1Cに到達する時にOCR1Aへﾗｯﾁ(設定)されます。これはOCR1A非同期書き込みでの奇数長PWMﾊﾟﾙｽ(不具合)の発生を防止します。この例については図13-4.を参照してください。
書き込み(操作)からﾗｯﾁ動作(実際に設定される)間の期間中、OCR1Aからの読み込みは一時領域の内容が読まれます。これは常に最も最近書かれた値がOCR1Aの読み出しとなることを意味します。

図13-4. OCR1Aの同期/非同期設定
比較ﾚｼﾞｽﾀ値更新
比較ﾚｼﾞｽﾀ値
同期 ﾀｲﾏ/ｶｳﾝﾀ1値
OCR1A
OC1A PWM出力比較ﾚｼﾞｽﾀ値
非同期 ﾀｲﾏ/ｶｳﾝﾀ1値
OCR1A
OC1A PWM出力比較ﾚｼﾞｽﾀ書き込み 不具合

比較Aﾚｼﾞｽﾀ(OCR1A)が$00またはOCR1Cで指定される上限値のとき、OC1A(PB1)出力はCOM1A1/COM1A0の設定に従って
HighまたはLowに保持されます。これは表13-2.で示されます。
PWM動作での溢れ(TOV1)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)がOCR1C値へ計数し、TC
NT1が$00にﾘｾｯﾄされる時に設定(1)されます。ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込みはﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可(TOIE1)ﾋﾞｯﾄと全割り込み許可(I)ﾋﾞｯﾄが許可なら、TOV1が設定(1)される時に実行されます。これは比較ﾌﾗｸﾞとその割り込みにも適用されます。
PWM周波数は次式を使ってﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周波数から得られます。

f PWM =

f TCK1OCR1C+1
PWM波形のﾃﾞｭｰﾃｨ比は次式を使用して計算できます。

ﾃﾞｭｰﾃｨ比PWM =表13-2. 上限値、下限値でのPWM出力
COM1A1 COM1A0 OCR1A OC1A出力
$00
L
0
1
OCR1C
H
$00
L
1
0
OCR1C
H
$00
H
1
1
OCR1C
L

(OCR1A+1)×TTCK1-TPCK(OCR1C+1)×TTCK1

ここでT PCKは高速周辺機能ｸﾛｯｸの周期(1/25.6MHz=39.1µs)です。
分解能はOCR1C内の値を表すのに何ﾋﾞｯﾄ必要とされるかを示します。これは次式を使って計算できます。

分解能PWM = log2(OCR1C+1)
表13-3. 代表的なPWM周波数設定例
PWM
PWM
OCR1C 分解能
周波数
周期値
(ﾋﾞｯﾄ)
10kHz 100.00µs
159
7.3
20kHz
50.00µs
159
7.3
30kHz
33.33µs
213
7.7
40kHz
25.00µs
159
7.3
50kHz
20.00µs
255
8.0
60kHz
16.67µs
213
7.7
70kHz
14.29µs
199
7.6
80kHz
12.50µs
181
7.5

TCNT1
ｸﾛｯｸ
CK
PCK/8

CS13～0

PCK/4

0011

PCK/2

0101
0100

0010

PWM
周波数
90kHz
100kHz110kHz120kHz130kHz140kHz150kHzPWM
周期11.11µs
10.00µs
9.09µs
8.33µs
7.69µs
7.14µs6.67µsOCR1C 分解能値
(ﾋﾞｯﾄ)
141
7.1
255
8.0
231
7.8
213
7.7
195
7.6
181
7.5
169
7.6

TCNT1
ｸﾛｯｸ
PCK/2

CS13～0

PCK

0001

0010

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]66

13.3. ATtiny15互換動作 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1用ﾚｼﾞｽﾀ
13.3.1. TCCR1 - ﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ (Timer/Counter0 Control Register)ﾋﾞｯﾄ$30 ($50)
Read/Write
初期値

7

CTC1
R/W
0

6

5

4

PWM1A COM1A1 COM1A0
R/W
0

R/W
0

R/W
0

3

2

1

0

CS13

CS12

CS11

CS10

R/W
0

R/W
0

R/W
0

R/W
0

TCCR1

● ﾋﾞｯﾄ7 - CTC1 : 一致解除許可 (Clear Timer/Counter1 on Compare Match)

CTC1制御ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)は比較Cﾚｼﾞｽﾀ(OCR1C)との比較一致後のCPUｸﾛｯｸ周期で$00にﾘｾｯﾄされます。この制御ﾋﾞｯﾄが解除(0)されると、ﾀｲﾏ/ｶｳﾝﾀ1は計数を継続し、比較一致によって影響を及ぼされません。
● ﾋﾞｯﾄ6 - PWM1A : PWM動作A許可 (Pulse Width Modulator A Enable)

このﾋﾞｯﾄを設定(1)すると、ﾀｲﾏ/ｶｳﾝﾀ1でOCR1A比較器を基準としたPWM動作を許可し、ﾀｲﾏ/ｶｳﾝﾀ値はOCR1C値との比較一致後のCPUｸﾛｯｸ周期で$00にﾘｾｯﾄされます。
● ﾋﾞｯﾄ5,4 - COM1A1,0 : 比較A出力選択 (Compare A Output Mode bit 1 and 0)

COM1A1とCOM1A0制御ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)で比較Aﾚｼﾞｽﾀ(OCR1A)との比較一致に続く何れかの出力ﾋﾟﾝ動作を決めます。出力ﾋﾟﾝ動
作はOC1A(PB1)ﾋﾟﾝに影響を及ぼします。これは入出力ﾎﾟｰﾄの交換機能なので、出力ﾋﾟﾝを制御するには対応する方向制御ﾋﾞｯﾄ(DDB1)が設定(1)されなければなりません。
PWM動作でのこれらのﾋﾞｯﾄは異なる機能を持ちます。詳細記述について
は66頁の表13-1.を参照してください。

表13-4. 比較A出力選択
COM1A1 COM1A0
意味00
OC1Aﾋﾟﾝ未使用 (ﾋﾟﾝ接続断)
0
1
OC1Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
1
0
OC1Aﾋﾟﾝ Lowﾚﾍﾞﾙ出力
1
1
OC1Aﾋﾟﾝ Highﾚﾍﾞﾙ出力● ﾋﾞｯﾄ3～0 - CS13～0 : ｸﾛｯｸ選択1 (Clock Select1, bit 3,2,1 and 0)

このｸﾛｯｸ選択ﾋﾞｯﾄ3～0はﾀｲﾏ/ｶｳﾝﾀ1の前置分周元を定義します。
表13-5. ﾀｲﾏ/ｶｳﾝﾀ1 前置分周ｸﾛｯｸ選択
CS13 CS12 CS11 CS10
意味
0
0
0
0
停止 (ﾀｲﾏ/ｶｳﾝﾀ1動作停止)
00
0
1
CK×16 (PCK)0010
CK×8 (PCK/2)
001
1
CK×4 (PCK/4)01
00
CK×2 (PCK/8)0101
CK (ｼｽﾃﾑ ｸﾛｯｸ)
0
1
1
0
CK/2
0
1
1
1
CK/4

CS13 CS12 CS11 CS10
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1

意味
CK/8
CK/16
CK/32
CK/64
CK/128
CK/256
CK/512
CK/1024

停止状態はﾀｲﾏ/ｶｳﾝﾀの許可/禁止機能を提供します。

13.3.2. GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ (General Timer/Counter Control Register)ﾋﾞｯﾄ$2C ($4C)
Read/Write
初期値

7

TSM
R/W
0

6

5

4

PWM1B COM1B1 COM1B0
R/W
0

R/W
0

R/W
0

3

2

1

0

FOC1B

FOC1A

PSR1

PSR0

W
0

W
0

R/W
0

R/W
0

GTCCR

● ﾋﾞｯﾄ2 - FOC1A : OC1A強制変更 (Force Output Compare Match 1A)

このﾋﾞｯﾄへの論理1書き込みは比較A出力制御(COM1A1,COM1A0)ﾋﾞｯﾄで既に設定した値に従って比較一致出力ﾋﾟﾝOC1A(PB1)を強制的に変更します。COM1A1とCOM1A0ﾋﾞｯﾄがFOC1Aと同じ周期で書かれる場合、この新しい設定が使われます。この比較出力
強制ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ値と無関係にこの出力ﾋﾟﾝを変更するのに使えます。COM1A1とCOM1A0で設定した自動動作は比較一致が起きてしまったかのようになりますが、割り込みは生成されません。FOC1Aﾋﾞｯﾄは常に0として読めます。PWM1Aﾋﾞｯﾄが設定(1)されると、FOC1Aは行なわれ(実行され)ません。
● ﾋﾞｯﾄ1 - PSR1 : ﾀｲﾏ/ｶｳﾝﾀ1 前置分周器ﾘｾｯﾄ (Prescaler Reset Timer/Counter 1)

このﾋﾞｯﾄが設定(1)されると、(TCNT1が影響を及ぼされずに)ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器がﾘｾｯﾄします。このﾋﾞｯﾄは操作が実行された
後、ﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄへの0書き込みは無効です。このﾋﾞｯﾄは常に0として読めます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]67

13.3.3. TCNT1 - ﾀｲﾏ/ｶｳﾝﾀ1 (Timer/Counter1)
ﾋﾞｯﾄ$2F ($4F)
Read/Write
初期値

7

6

5

4

3

2

1

0

(MSB)
R/W
0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

TCNT1

R/W
0

この8ﾋﾞｯﾄ ﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1の値を含みます。
ﾀｲﾏ/ｶｳﾝﾀ1は読み書き可能な上昇ｶｳﾝﾀとして実現されます。CPUの同期化のため、ﾀｲﾏ/ｶｳﾝﾀ1内へのﾀｲﾏ/ｶｳﾝﾀ1ﾃﾞｰﾀ書き込み
は同期動作で1CPUｸﾛｯｸ周期、非同期動作で最大2CPUｸﾛｯｸ周期遅らされます。

13.3.4. OCR1A - ﾀｲﾏ/ｶｳﾝﾀ1 比較Aﾚｼﾞｽﾀ (Timer/Counter1 Output Compare Register A)
ﾋﾞｯﾄ$2E ($4E)
Read/Write
初期値

7

6

5

4

3

2

1

0

(MSB)
R/W
0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR1A

R/W
0

比較Aﾚｼﾞｽﾀ(OCR1A)は読み書き可能な8ﾋﾞｯﾄのﾚｼﾞｽﾀです。
この比較Aﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と継続的に比較されるﾃﾞｰﾀを含みます。比較一致での動作はﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)で指定されます。比較一致はﾀｲﾏ/ｶｳﾝﾀ1がOCR1A値へ計数する場合にだけ起きます。TCNT1とOCR1Aを同一値に設定する
ｿﾌﾄｳｪｱ書き込みは比較一致を生成しません。
比較一致は比較事象に続く同期化遅延後、比較一致割り込み要求ﾌﾗｸﾞ(OCF1A)を設定(1)します。

13.3.5. OCR1C - ﾀｲﾏ/ｶｳﾝﾀ1 比較Cﾚｼﾞｽﾀ (Timer/Counter1 Output Compare Register C)
ﾋﾞｯﾄ$2D ($4D)
Read/Write
初期値

7

6

5

4

3

2

1

0

(MSB)
R/W
0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

OCR1C

R/W
0

比較Cﾚｼﾞｽﾀ(OCR1C)は読み書き可能な8ﾋﾞｯﾄのﾚｼﾞｽﾀです。
この比較Bﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀ1(TCNT1)と継続的に比較されるﾃﾞｰﾀを含みます。比較一致はﾀｲﾏ/ｶｳﾝﾀ1がOCR1C値へ計数する
場合にだけ起きます。TCNT1とOCR1Cを同一値に設定するｿﾌﾄｳｪｱ書き込みは比較一致を生成しません。ﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ(TCCR1)でCTC1ﾋﾞｯﾄが設定(1)されると、比較一致はTCNT1を解除($00)します。

13.3.6. TIMSK - ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ (Timer/Counter Interrupt Mask Register)ﾋﾞｯﾄ$39 ($59)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCIE1A

OCIE1B

OCIE0A

OCIE0B

TOIE1

TOIE0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIMSK

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - OCIE1A : ﾀｲﾏ/ｶｳﾝﾀ1比較A割り込み許可 (Timer/Counter1 Output Compare A Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとOCIE1Aﾋﾞｯﾄが共に設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1比較A一致割り込みが許可されます。比較A一致が起こると、ﾍﾞｸﾀ$0003での対応する割り込みが実行されます。このﾀｲﾏ/ｶｳﾝﾀ1の比較ﾌﾗｸﾞ(OCF1A)はﾀｲﾏ/ｶｳﾝﾀ割
り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR)で設定(1)されます。
● ﾋﾞｯﾄ2 - TOIE1 : ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可 (Timer/Counter1 Overflow Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと、TOIE1ﾋﾞｯﾄが共に設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込みが許可されます。ﾀｲ
ﾏ/ｶｳﾝﾀ1溢れが起こると、(ﾍﾞｸﾀ$004での)対応する割り込みが実行されます。溢れ(TOV1)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞ
ｽﾀ(TIFR)で設定(1)されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]6813.3.7. TIFR - ﾀｲﾏ/ｶｳﾝﾀ割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Timer/Counter Interrupt Flag Register)ﾋﾞｯﾄ$38 ($58)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

OCF1A

OCF1B

OCF0A

OCF0B

TOV1

TOV0

-

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

TIFR

● ﾋﾞｯﾄ7,0 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ6 - OCF1A : 比較A割り込み要求ﾌﾗｸﾞ (Output Compare Interrupt Flag1A)

ﾀｲﾏ/ｶｳﾝﾀ1と比較Aﾚｼﾞｽﾀ(OCR1A)内のﾃﾞｰﾀ値間で比較一致が起きると、OCF1Aﾋﾞｯﾄが設定(1)されます。OCF1Aは対応する割り込み処理ﾍﾞｸﾀを実行するとき、ﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにOCF1Aはこのﾌﾗｸﾞへの論理1書き込みにより、同期化ｸ
ﾛｯｸ周期後に解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)の比較A割
り込み許可(OCIE1A)ﾋﾞｯﾄとOCF1Aが設定(1)なら、ﾀｲﾏ/ｶｳﾝﾀ1比較A一致割り込みが実行されます。
● ﾋﾞｯﾄ2 - TOV1 : ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み要求ﾌﾗｸﾞ (Timer/Counter1 Overflow Interrupt Flag)

TOV1はﾀｲﾏ/ｶｳﾝﾀ1溢れが起きると設定(1)されます。TOV1は対応する割り込み処理ﾍﾞｸﾀを実行するとき、ﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにTOV1はこのﾌﾗｸﾞへの論理1書き込みにより、同期化ｸﾛｯｸ周期後に解除(0)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ、ﾀｲﾏ/ｶｳﾝﾀ割り込み許可ﾚｼﾞｽﾀ(TIMSK)のﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み許可(TOIE1)ﾋﾞｯﾄとTOV1が設定(1)の時にﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込みが実行されます。

13.3.8. PLLCSR - PLL制御/状態ﾚｼﾞｽﾀ (PLL Control and Status Register)ﾋﾞｯﾄ$27 ($47)
Read/Write
初期値

7

6

5

4

3

2

1

0

LSM

-

-

-

-

PCKE

PLLE

PLOCK

R
0

R
0

R
0

R
0

R
0

R/W
1

R/W
1

R
0

PLLCSR● ﾋﾞｯﾄ7 - LSM : 低速動作 (Low Speed Mode)

LSBﾋﾞｯﾄはATtiny15互換動作で常に解除(0)されます。
● ﾋﾞｯﾄ6～3 - Res : 予約 (Reserved)

これらのﾋﾞｯﾄは予約されており、常に0として読めます。
● ﾋﾞｯﾄ2 - PCKE : PCK許可 (PCK Enable)

PCKEﾋﾞｯﾄはATtiny15互換動作で常に設定(1)されます。
● ﾋﾞｯﾄ1 - PLLE : PLL許可 (PLL Enable)

PLLはATtiny15互換動作で常に許可されます。
● ﾋﾞｯﾄ0 - PLOCK : PLL固定化検出 (PLL Lock Detector)

PLOCKﾋﾞｯﾄが設定(1)されると、PLLが基準ｸﾛｯｸに固定化されます。PLL周波数が上下超過する初期PLL固定化の間、PLOCKﾋﾞｯﾄは無視されるべきです。安定状態は100µs以内に得られます。PLL固定化後、ﾀｲﾏ/ｶｳﾝﾀ1に対してPCKを許可する前にPLOCKﾋﾞｯﾄの調査が推奨されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]69

14. 沈黙時間生成器 (Dead Time Generator)
沈黙時間生成器は外部電力制御ｽｨｯﾁの安全な駆動を可能とするためにﾀｲﾏ/ｶｳﾝﾀ1のPWM出力対に対して提供されます。この沈黙時間生成器はﾀｲﾏ/ｶｳﾝﾀ1に接続できる独立部で、ﾀｲﾏ/ｶｳﾝﾀ1相互補完出力対(OC1A,OC1AとOC1B,OC1B)に対して沈黙時間(非重複時間)の挿入に使われます。作業の分担は次のとおりです。ﾀｲﾏ/ｶｳﾝﾀがPWM出力を生成し、沈黙時間生成器がﾀｲﾏ/ｶｳﾝ
ﾀのPWM信号から非重複PWM出力を生成します。各々のPWM出力に対して1つで、(計)2つの沈黙時間生成器が提供されます。
PWM出力の非重複時間は調整可能で、この相互補完出力は独立して調整でき、両PWM出力(A,B間)に対して無関係です。
図14-1. ﾀｲﾏ/ｶｳﾝﾀ1と沈黙時間生成器
T15M
PCKE
CK
PCK

8-bit Data Bus

ﾀｲﾏ/ｶｳﾝﾀ1
PWM生成器PWM1A

ﾀｲﾏ/ｶｳﾝﾀ1
ｸﾛｯｸ

PWM1B

DTPS11
沈黙時間
DTPS10 前置分周ﾚｼﾞｽﾀ(DTPS1)

DT1AH
沈黙時間Aﾚｼﾞｽﾀ(DT1A)

DT1BH
沈黙時間生成器

DT1AL
OC1A
T15M: ATtiny15互換動作

沈黙時間Bﾚｼﾞｽﾀ(DT1B)

沈黙時間生成器
DT1BL

OC1A

OC1B

OC1B

沈黙時間生成器は図14-2.で示されるように沈黙時間を計数する4ﾋﾞｯﾄ下降計数器に基きます。これはﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ(CKまたはPCK)を1,2,4,8分周できる沈黙時間生成器前の専用前置分周器です。これは生成可能な広範囲の沈黙時間を提供します。この前置分周器は沈黙時間前置分周ﾚｼﾞｽﾀ(DTPS1)からDTPS11,DTPS10の2つの制御ﾋﾞｯﾄによって制御されます。この単位部には沈黙時
間計時区間を開始するのに使われる上昇端と下降端の検出器もあります。このｴｯｼﾞに対応してOC1xまたはOC1xの上昇端の遷移はこの(4ﾋﾞｯﾄ)計数器が0へ計数されるまで遅らされます。比較器は計数器と0との比較に使われ、0に達した時に沈黙時間挿入を止めます。この計数器は沈黙時間挿入を開始する時にPWM生成器出力のｴｯｼﾞに対応するDT1x I/OﾚｼﾞｽﾀからDT1xHまたはDT1xLの4ﾋﾞｯﾄ値が読み込まれます。
図14-2. 沈黙時間生成器
沈黙時間前置分周
ﾚｼﾞｽﾀ (DTPS1)
DTPS11
DTPS10

比較器

沈黙時間
前置分周器

4ﾋﾞｯﾄ計数器

ﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ

ｸﾛｯｸ制御

OC1x
OC1x

DT1xH
DT1xL
沈黙時間xﾚｼﾞｽﾀ(DT1x)

PWM1x
この計数時間長は沈黙時間前置分周ﾚｼﾞｽﾀ(DTPS1)の沈黙時間前置分周器設定と沈黙時間x(DT1x)ﾚｼﾞｽﾀの沈黙時間値選択によって使用者調整が可能です。沈黙時間x(DT1x)ﾚｼﾞｽﾀはPWM出力の沈黙時間と相互補完出力を独立して制御するDT1xHとDT1x
Lの2つの4ﾋﾞｯﾄ領域から成ります。従ってOC1xとOC1xの上昇端は異なる沈黙時間を持ちます。この沈黙時間は前置分周された沈黙時間生成器ｸﾛｯｸ周期数として調節されます。
図14-3. 非重複出力対 (x=AまたはB)
PWM1x
OC1x
OC1x

tnon-overlap/下降端
tnon-overlap/上昇端

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]70

14.1. ﾀｲﾏ/ｶｳﾝﾀ1 沈黙時間用ﾚｼﾞｽﾀ
14.1.1. DTPS1 - ﾀｲﾏ/ｶｳﾝﾀ1 沈黙時間前置分周ﾚｼﾞｽﾀ (Timer/Counter 1 Dead Time Prescaler Register)ﾋﾞｯﾄ$23 ($43)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

-

-

-

-

DTPS11

DTPS10

R
0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

DTPS1

沈黙時間前置分周ﾚｼﾞｽﾀ(DTPS1)は2ﾋﾞｯﾄの読み書き可能なﾚｼﾞｽﾀです。
● ﾋﾞｯﾄ1,0 - DTPS11,0 : 沈黙時間前置分周選択 (Dead Time Prescaler)

沈黙時間生成器前の沈黙時間専用前置分周器はﾀｲﾏ/ｶｳﾝﾀ1ｸﾛｯｸ(CKまたはPCK)を1,2, 4,8分周ができ、広い沈黙時間範囲生成を提供します。この前置分周器は沈黙時間前置分周ﾚｼﾞｽﾀ(DTPS1)からDTPS11,DTPS10の2つの制御ﾋﾞｯﾄによって制御されます。これらのﾋﾞｯﾄは沈黙時間前置分周器の分周値を定義します。この分周値は表14-1.で与えられます。
表14-1. 沈黙時間前置分周器の分周値
DTPS11 DTPS10
ﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ分周数00
1 (分周なし)
0
1
2分周
1
0
4分周
1
1
8分周

14.1.2. DT1A - ﾀｲﾏ/ｶｳﾝﾀ1 沈黙時間A ﾚｼﾞｽﾀ (Timer/Counter 1 Dead Time A Register)ﾋﾞｯﾄ$25 ($45)
Read/Write
初期値

7

6

5

4

3

DT1AH3 DT1AH2 DT1AH1 DT1AH0 DT1AL3
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

2

1

0

DT1AL2

DT1AL1DT1AL0

R/W
0

R/W
0

R/W
0

DT1A

沈黙時間Aﾚｼﾞｽﾀ(DT1A)は8ﾋﾞｯﾄの読み書き可能なﾚｼﾞｽﾀです。
沈黙時間遅延は沈黙時間Aﾚｼﾞｽﾀ(DT1A)によって調節されます。このﾚｼﾞｽﾀは各相互補完出力について1組の、DT1AH 3～0 とDT1AL3～0の2つの領域から成ります。従ってOC1Aの上昇端とOC1Aの上昇端に対して異なる沈黙時間遅延に調節できます。
● ﾋﾞｯﾄ7～4 - DT1AH3～0 : OC1A沈黙時間 (Dead Time Value for OC1A Output)

OC1Aに対する沈黙時間値です。沈黙時間遅延は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ数として設定されます。最小沈黙時間は0で、最大沈黙時間は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周期×15です。
● ﾋﾞｯﾄ3～0 - DT1AL3～0 : OC1A沈黙時間 (Dead Time Value for OC1A Output)

OC1Aに対する沈黙時間値です。沈黙時間遅延は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ数として設定されます。最小沈黙時間は0で、最大沈黙時間は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周期×15です。

14.1.3. DT1B - ﾀｲﾏ/ｶｳﾝﾀ1 沈黙時間B ﾚｼﾞｽﾀ (Timer/Counter 1 Dead Time B Register)ﾋﾞｯﾄ$24 ($44)
Read/Write
初期値

7

6

5

4

3

DT1BH3 DT1BH2 DT1BH1 DT1BH0 DT1BL3
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

2

1

0

DT1BL2

DT1BL1DT1BL0

R/W
0

R/W
0

R/W
0

DT1B

沈黙時間Bﾚｼﾞｽﾀ(DT1A)は8ﾋﾞｯﾄの読み書き可能なﾚｼﾞｽﾀです。
沈黙時間遅延は沈黙時間Bﾚｼﾞｽﾀ(DT1B)によって調節されます。このﾚｼﾞｽﾀは各相互補完出力について1組の、DT1BH 3～0 と
DT1BL3～0の2つの領域から成ります。従ってOC1Bの上昇端とOC1Bの上昇端に対して異なる沈黙時間遅延に調節できます。
● ﾋﾞｯﾄ7～4 - DT1BH3～0 : OC1B沈黙時間 (Dead Time Value for OC1B Output)

OC1Bに対する沈黙時間値です。沈黙時間遅延は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ数として設定されます。最小沈黙時間は0で、最大沈黙時間は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周期×15です。
● ﾋﾞｯﾄ3～0 - DT1BL3～0 : OC1B沈黙時間 (Dead Time Value for OC1B Output)

OC1Bに対する沈黙時間値です。沈黙時間遅延は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ数として設定されます。最小沈黙時間は0で、最大沈黙時間は前置分周したﾀｲﾏ/ｶｳﾝﾀ1 ｸﾛｯｸ周期×15です。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]71

15. 多用途直列ｲﾝﾀｰﾌｪｰｽ (USI: Universal Serial Interface)
15.1. 特徴
●
●
●
●
●
●

2線同期ﾃﾞｰﾀ転送 (主装置または従装置)
3線同期ﾃﾞｰﾀ転送 (主装置または従装置)
ﾃﾞｰﾀ受信割り込み
ｱｲﾄﾞﾙ動作からの起動復帰
2線動作での全休止形態からの起動復帰
割り込み能力を持つ2線動作開始条件検出器

15.2. 概要
多用途直列ｲﾝﾀｰﾌｪｰｽ(USI)は直列通信で必要とされる基本的なﾊｰﾄﾞｳｪｱ資源(機能)を提供します。最低限の制御ｿﾌﾄｳｪｱとの組み合わせで、USIはｿﾌﾄｳｪｱのみを元とした方法よりも少ないｺｰﾄﾞ量と重要な高い転送ﾚｰﾄを許します。ﾌﾟﾛｾｯｻ負荷を最小とするために割り込みが含まれます。
USIの簡単化した構成図は図15-1.で示されます。実際のI/Oﾋﾟﾝの配置は2頁の「ﾋﾟﾝ配置」を参照してください。ﾃﾞﾊﾞｲｽ仕様のI/Oﾚ
ｼﾞｽﾀとﾋﾞｯﾄ位置は77頁の「USI用ﾚｼﾞｽﾀ」で一覧されます。
図15-1. 多用途直列ｲﾝﾀｰﾌｪｰｽ構成図
D Q
0

E Q USIWM1,0

USIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)
USI緩衝ﾚｼﾞｽﾀ(USIBR)USISIFUSIOIF
USIPF
USIDC

8-bit Data Bus

7

4ﾋﾞｯﾄ
計数器

USI状態ﾚｼﾞｽﾀ(USISR)

DO

OCF0A

3
2
1
0

0
1

(出力専用)(ｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ出力)
DI/SDA

3
2
1
0

(入出力)

(入力)

USICS1USISIEUSIOIEUSIWM1USIWM0USICS1USICS0USICLK
USITC

00
01
1x

(入力)
2線ｸﾛｯｸ
制御回路

ｸﾛｯｸ
保持

USCK/SCL (入出力)(ｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ出力)

USI制御ﾚｼﾞｽﾀ(USICR)
8ﾋﾞｯﾄのUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)は入って来るﾃﾞｰﾀと出て行くﾃﾞｰﾀを含みます。これはﾃﾞｰﾀ ﾊﾞｽ経由で直接的にｱｸｾｽ可能ですが、その内容の複製を後で回収できるUSI緩衝ﾚｼﾞｽﾀ(USIBR)にも配置されます。直接USIﾃﾞｰﾀ ﾚｼﾞｽﾀを読む場合、ﾃﾞｰﾀが失われないことを保証するためにﾃﾞｰﾀは可能な限り早く読まなければなりません。
最上位ﾋﾞｯﾄは(動作種別設定(USI制御ﾚｼﾞｽﾀ(USICR)参照)に依存して)2つの出力ﾋﾟﾝの1つに接続されます。ﾃﾞｰﾀ入力採取と逆のｸ
ﾛｯｸ端にﾃﾞｰﾀ出力の変更を遅らせるのが、USIﾃﾞｰﾀ ﾚｼﾞｽﾀと出力ﾋﾟﾝ間のﾄﾗﾝｽﾍﾟｱﾚﾝﾄ(透過型)ﾗｯﾁです。直列入力は(種別)設定に拘らず、常にﾃﾞｰﾀ入力(DI)ﾋﾟﾝから採取されます。
4ﾋﾞｯﾄ計数器はﾃﾞｰﾀ ﾊﾞｽ経由で読み書き両方ができ、溢れ割り込みを生成できます。この計数器とUSIﾃﾞｰﾀ ﾚｼﾞｽﾀは同じｸﾛｯｸ元によって同時にｸﾛｯｸ駆動されます。これは受信または送信したﾋﾞｯﾄ数を数え、転送完了時に割り込みの生成を計数器に許します。外部ｸﾛｯｸ元が選択されると、この計数器が両ｸﾛｯｸ端で計数することに注意してください。これは計数ﾚｼﾞｽﾀがﾃﾞｰﾀ ﾋﾞｯﾄ数でなく、ｸﾛｯ
ｸ端数であることを意味します。ｸﾛｯｸは3つの異なるｸﾛｯｸ元(USCKﾋﾟﾝ、ﾀｲﾏ/ｶｳﾝﾀ0の比較A一致、ｿﾌﾄｳｪｱ)から選択できます。
2線ｸﾛｯｸ制御部(回路)は2線ﾊﾞｽで開始条件が検出された時に割り込みを生成する設定にできます。開始条件検出後または計数器
溢れ後にｸﾛｯｸ ﾋﾟﾝをLowへ保持することによって待ち状態を生成する設定にもできます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]72

15.3. 機能説明
15.3.1. 3線動作
USIの3線動作は直列周辺ｲﾝﾀｰﾌｪｰｽ(SPI)の動作種別0と1に準拠していますが、従装置選択(SS)ﾋﾟﾝ機能を持ちません。けれども、この特性(機能)は必要ならばｿﾌﾄｳｪｱで実現できます。この動作で使われるﾋﾟﾝ名はDI,DO,USCKです。
図15-2. 3線動作簡略構成図

主装置
DO
Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

DI

Bit0
3
2
1
0

USCK
PORTxn

従装置
DO
Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

DI

Bit0
3
2
1
0

USCK

図15-2.は3線動作での2つのUSI部(一方は主装置、他方は従装置)動作を示します。このような方法で連結された2つの移動ﾚｼﾞｽﾀは8USCKｸﾛｯｸ後、各々のﾚｼﾞｽﾀのﾃﾞｰﾀが交換されます。この同じｸﾛｯｸ(USCK)がUSIの4ﾋﾞｯﾄ計数器も増加(+1)します。従って計数
器溢れ割り込み要求ﾌﾗｸﾞ(USIOIF)は転送が完了される時を決めるのに使えます。このｸﾛｯｸはPORTﾚｼﾞｽﾀ経由USCKﾋﾟﾝ1/0交互切
り替え、またはUSICRのUSITCﾋﾞｯﾄへの1書き込みによる主装置装置ｿﾌﾄｳｪｱによって生成されます。
図15-3. 3線動作ﾀｲﾐﾝｸﾞ

周期 (参照基準)

1

2

3

4

5

6

7

8

MSB

ﾋﾞｯﾄ6

ﾋﾞｯﾄ5

ﾋﾞｯﾄ4

ﾋﾞｯﾄ3

ﾋﾞｯﾄ2

ﾋﾞｯﾄ1

LSB

ﾋﾞｯﾄ6

ﾋﾞｯﾄ5

ﾋﾞｯﾄ4

ﾋﾞｯﾄ3

ﾋﾞｯﾄ2

ﾋﾞｯﾄ1

LSB

USCK
USCK
DO

MSB

DI
Ａ

Ｂ

Ｃ

Ｄ

Ｅ

3線動作ﾀｲﾐﾝｸﾞは図15-3.で示されます。図の最上部はUSCK周期参照基準です。これらの各周期に対して1ﾋﾞｯﾄがUSI移動ﾚｼﾞｽﾀ(USIDR)に移動されます。USCKﾀｲﾐﾝｸﾞは両方の外部ｸﾛｯｸ動作について示されます。外部ｸﾛｯｸ動作0(USICS0=0)でのDIは上昇端で採取され、DOは下降端で変更(USIDRが1つ移動)されます。外部ｸﾛｯｸ動作1(USICS0=1)は外部ｸﾛｯｸ動作0に対して逆端を使用、換言すると下降端でﾃﾞｰﾀを採取、上昇端で出力を変更します。USIｸﾛｯｸ動作種別はSPIﾃﾞｰﾀ動作種別0と1に対応します。
このﾀｲﾐﾝｸﾞ図(図15-3.)を参照すると、ﾊﾞｽ転送は次の手順を含みます。
1. 主装置と従装置はﾃﾞｰﾀ出力を設定し、使用規約に依存して出力駆動部を許可します(ＡとＢ)。この出力は直列ﾃﾞｰﾀ ﾚｼﾞｽﾀへの送信されるべきﾃﾞｰﾀ書き込みによって設定します。出力の許可はﾎﾟｰﾄ方向ﾚｼﾞｽﾀの対応するﾋﾞｯﾄ設定によって行います。Ａ点とＢ点はどんな特別な順番もありませんが、両方共にﾃﾞｰﾀが採取されるＣ点よりも最低1/2USCK周期前でなければならないことに注意してください。これはﾃﾞｰﾀ設定の必要条件を満足させるのを保証するために行わなければなりません。4ﾋﾞｯﾄ計数器は0にﾘｾｯﾄします。
2. 主装置はUSCK線をｿﾌﾄｳｪｱで2度切り替えることによってｸﾛｯｸ ﾊﾟﾙｽを生成します(ＣとＤ)。主装置と従装置のﾃﾞｰﾀ入力(DI)ﾋﾟﾝのﾋﾞｯﾄ値は最初のｴｯｼﾞ(Ｃ)でUSIによって採取され、ﾃﾞｰﾀ出力は逆端(Ｄ)で変更されます。4ﾋﾞｯﾄ計数器は両端で計数します。
3. ﾚｼﾞｽﾀ(ﾊﾞｲﾄ)転送完了のために手順2.が8回繰り返されます。
4. 8ｸﾛｯｸ ﾊﾟﾙｽ(換言すると16ｸﾛｯｸ端)後、計数器が溢れて転送完了を示します。USI緩衝ﾚｼﾞｽﾀ(USIBR)が使われない場合、転送したﾊﾞｲﾄ ﾃﾞｰﾀは新規転送が開始され得るのに先立って直ぐに処置されなければなりません。溢れ割り込みはﾌﾟﾛｾｯｻがｱｲﾄﾞﾙ動作に設定されているなら、ﾌﾟﾛｾｯｻを起動復帰します。使用規約によって、従装置は直ぐに出力をHi-Z設定にできます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]73

15.3.2. SPI主装置操作例
次のｺｰﾄﾞはSPI主装置としてのUSI使用法を実際に示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SPIM:
OUT
USIDR,R16
LDI
R16,(1<<USIOIF)OUTUSISR,R16
LDI
R16,(1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
SPIM_LP: OUT
USICR,R16
SBIS
USISR,USIOIFRJMPSPIM_LP;IN
R16,USIDR
RET;送信ﾃﾞｰﾀを設定;USIOIFﾋﾞｯﾄのみ1値を取得;ﾌﾗｸﾞ解除/計数器初期化;3線動作ｸﾛｯｸ生成値を取得;SCKｸﾛｯｸ端発生;計数器溢れでｽｷｯﾌﾟ;計数器溢れまで継続;受信ﾃﾞｰﾀを取得;呼び出し元へ復帰

このｺｰﾄﾞは8命令(+RET)のみ使用の容量最適化です。このｺｰﾄﾞ例はDOとUSCKﾋﾟﾝがDDRBで出力として許可される仮定です。この関数が呼び出される前にR16ﾚｼﾞｽﾀへ格納した値は従装置に転送され、転送が完了された時に従装置から受信したﾃﾞｰﾀがR16ﾚｼﾞｽ
ﾀに格納されて戻ります。
2行目と3行目の命令は計数器溢れ割り込み要求ﾌﾗｸﾞ(USIOIF)を解除(0)し、USI 4ﾋﾞｯﾄ計数器値を解除(=0)します。4行目と6行目の命令は3線動作、上昇端ｸﾛｯｸ、USITCｽﾄﾛｰﾌﾞ計数、SCK出力交互切り替え(PORTB7)を設定します。この繰り返しは16回繰り返されます。
次のｺｰﾄﾞは最高速( fSCK= fCK/2)でのSPI主装置としてのUSI使用法を実際に示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SPIM_F:OUTUSIDR,R16
LDI
R16,(1<<USIWM0)|(0<<USICS0)|(1<<USITC)
LDI
R17,(1<<USIWM0)|(0<<USICS0)|(1<<USITC)|(1<<USICLK);OUTUSICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17
OUT
USICR,R16
OUT
USICR,R17;IN
R16,USIDR
RET;送信ﾃﾞｰﾀを設定;3線動作初期値を取得;3線動作ｸﾛｯｸ生成値を取得;MSB転送;;ﾋﾞｯﾄ6転送;;ﾋﾞｯﾄ5転送;;ﾋﾞｯﾄ4転送;;ﾋﾞｯﾄ3転送;;ﾋﾞｯﾄ2転送;;ﾋﾞｯﾄ1転送;;LSB転送;;受信ﾃﾞｰﾀを取得;呼び出し元へ復帰

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]74

15.3.3. SPI従装置操作例
次のｺｰﾄﾞはSPI従装置としてのUSI使用法を実際に示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
init:
LDI
R16,(1<<USIWM0)|(1<<USICS1)OUTUSICR,R16;
SPIS_LP:

OUT
LDI
OUT

～

SPIS:

;3線動作,外部ｸﾛｯｸ値を取得;3線動作,外部ｸﾛｯｸ設定

USIDR,R16
R16,(1<<USIOIF)USISR,R16;送信ﾃﾞｰﾀを設定;USIOIFﾋﾞｯﾄのみ1値を取得;ﾌﾗｸﾞ解除/計数器初期化

SBIS
RJMP

USISR,USIOIFSPIS_LP;計数器溢れでｽｷｯﾌﾟ;計数器溢れまで継続

IN
RET

R16,USIDR;受信ﾃﾞｰﾀを取得;呼び出し元へ復帰;

このｺｰﾄﾞは8命令(+RET)のみ使用の容量最適化です。このｺｰﾄﾞ例はDDRBﾚｼﾞｽﾀでDOﾋﾟﾝが出力、USCKﾋﾟﾝが入力として設定されると仮定します。この関数が呼び出される前にR16ﾚｼﾞｽﾀへ格納した値は主装置に転送され、転送が完了された時に主装置から受信したﾃﾞｰﾀがR16ﾚｼﾞｽﾀに格納されて戻ります。
最初の2命令は初期化用だけで、一度だけ実行されるのを必要とすることに注意してください。これらの命令は3線動作と上昇端ｸﾛｯ
ｸを設定します。この繰り返しはUSI計数器溢れﾌﾗｸﾞが設定(1)されるまで繰り返されます。

15.3.4. 2線動作
USIの2線動作はI2C(TWI)ﾊﾞｽ規約に準拠していますが、出力のｽﾘｭｰﾚｰﾄ制限と入力雑音濾波器がありません。この動作で使われる
ﾋﾟﾝ名はSCLとSDAです。
図15-4. 2線動作簡略構成図

VCC

主装置
Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

SDA

Bit0
3
2
1
0

SCL
PORTxn

従装置
Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

SDA

Bit0
3
2
1
0

2線ｸﾛｯｸ
制御回路

SCL
SCL
保持

図15-4.は2線動作での2つのUSI部(一方は主装置、他方は従装置)動作を示します。ｼｽﾃﾑ動作が使用通信構造に大きく依存するために示されるのは物理層のみです。この段階での主装置動作と従装置動作間の主な違いは常に主装置によって行われる直列ｸﾛｯｸ
生成と、従装置だけがｸﾛｯｸ制御部(回路)を使うことです。ｸﾛｯｸ生成はｿﾌﾄｳｪｱで実行されなければなりませんが、移動動作は両装置で自動的に行われます。ﾃﾞｰﾀの移動に関してこの動作種別で下降端でのｸﾛｯｸだけを実際に使うことに注意してください。従装置はSCLｸﾛｯｸをLowに強制することにより、転送の開始と終了で待ち状態(ｳｪｲﾄ ｽﾃｰﾄ)を挿入できます。これは(主装置が)上昇端を生成してしまった後に主装置はSCL線が実際に開放されたかを常に検査しなければならないことを意味します。
このｸﾛｯｸが(4ﾋﾞｯﾄ)計数器も増加(+1)するため、計数器溢れ(USIOIF)は転送が完了されたことを示すのに使えます。このｸﾛｯｸは主装置によるPORTBﾚｼﾞｽﾀ経由のSCLﾋﾟﾝ交互切り替えによって生成されます。
ﾃﾞｰﾀ方向は物理層によって与えられません。ﾃﾞｰﾀの流れを制御するためにTWIﾊﾞｽで使ったような或る種の規約が実装されなければなりません。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]75

このﾀｲﾐﾝｸﾞ図(図15-5.)を参照すると、ﾊﾞｽ転送は次の手順を含みます。
図15-5. 代表的な2線動作ﾀｲﾐﾝｸﾞ
開始条件
SDA
SLA(ｱﾄﾞﾚｽ) R/W ACK
SCL

1～7
ＡＢ

Ｃ

8

9
Ｄ

Ｅ

停止条件
ﾃﾞｰﾀ

ACK

ﾃﾞｰﾀ

ACK

1～8

9

1～8

9
Ｆ

1. 開始条件は主装置によるSCL線High中のSDA線Low強制によって生成されます(Ａ)。SDAはUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)のﾋﾞｯﾄ7への0書き込みか、またはPORTﾚｼﾞｽﾀで対応ﾋﾞｯﾄを0に設定のどちらかによって強制実行できます。出力が許可されるにはﾃﾞｰﾀ方向(DDR)ﾚｼﾞｽﾀのﾋﾞｯﾄが1に設定されなければならないことに注意してください。従装置の開始条件検出器論理回路(図15-6.参照)が開始条件を検出してUSISIFﾌﾗｸﾞを設定(1)します。このﾌﾗｸﾞは必要ならば割り込みを発生できます。
2. 加えて開始条件検出器は主装置がSCL線で上昇端を強制してしまった後にSCL線をLowに保持します(Ｂ)。これはｱﾄﾞﾚｽを受信するために移動ﾚｼﾞｽﾀを設定する前に休止形態から起動復帰または他の処理を完了することを従装置に許します。これ(保持解除)は(4ﾋﾞｯﾄ)計数器をﾘｾｯﾄ(=0)して開始条件検出ﾌﾗｸﾞ(USISIF)を解除(0)することによって行われます。
3. 主装置は転送されるべき最初のﾋﾞｯﾄを設定してSCL線を開放します(Ｃ)。従装置はSCLｸﾛｯｸの上昇端でﾃﾞｰﾀを採取して移動ﾚｼﾞ
ｽﾀへ移動します。
4. 従装置ｱﾄﾞﾚｽとﾃﾞｰﾀ方向(R/W)を含む8ﾋﾞｯﾄが転送された後、従装置の(4ﾋﾞｯﾄ)計数器が溢れてSCL線がLowを強制されます(Ｄ)。
従装置は主装置の1つがｱﾄﾞﾚｽ指定してしまわない場合、SCL線を開放して新規開始条件を待ちます。
5. 従装置がｱﾄﾞﾚｽ指定されると、再びSCL線をLowに保持する前の応答(ACK)周期の間中、SDA線をLowに保持します(換言するとＤ点でSCLを開放する前に(4ﾋﾞｯﾄ)計数器ﾚｼﾞｽﾀは14に設定されなければなりません)。R/Wﾋﾞｯﾄに依存して主装置か従装置は出力を許可します。このﾋﾞｯﾄが設定(1)の場合、主装置読み込み動作が進行中です(換言すると従装置がSDA線を駆動します)。従装置は応答後(Ｅ)にSCL線をLowに保持することができます。
6. 主装置によって停止条件(Ｆ)か新規開始条件(再送開始条件)が与えられるまで全て同方向で複数ﾊﾞｲﾄが直ぐに転送できます。
従装置はより多くのﾃﾞｰﾀを受信できない場合、最後に受信したﾊﾞｲﾄ ﾃﾞｰﾀに応答しません。主装置が読み込み動作を行うとき、最後のﾊﾞｲﾄが転送された後の応答ﾋﾞｯﾄをLowに強制することよってこの動作を終了しなければなりません。

15.3.5. 開始条件検出器
開始条件検出器は図15-6.で示されます。SDA線はSCL線の有効な採取を保証するために(50～300nsの範囲で)遅延されます。開始
条件検出器は2線動作でだけ許可されます。
開始条件検出器は非同期に動作し、従ってﾊﾟﾜｰﾀﾞｳﾝ休止 図15-6. 開始条件検出器回路構成
動作からﾌﾟﾛｾｯｻを起動できます。けれども使う規約がSCL保USISIF
持時間で制限を持つかもしれません。従ってこの場合にこの
D Q
D Q
ｸﾛｯｸ保持特徴(機能)を使う時にCKSELﾋｭｰｽﾞで設定する発振器起動
遅延
時間(15頁の「ｸﾛｯｸ系統とその配給」参照)も考慮内に取り入
SDA
RQ
RQ
回路
れられなければなりません。より多くの詳細については77頁
SCLのUSISIFﾌﾗｸﾞ記述を参照してください。
USISIF書き込み

15.3.6. ｸﾛｯｸ速度の考察
SCLとUSCKに対する最大周波数は f CK/2です。これは2線と3線の両動作での最大ﾃﾞｰﾀ転送と受信速度でもあります。2線従装置動作では従装置が更にﾃﾞｰﾀを受信する準備ができるまで、2線ｸﾛｯｸ制御部がSCLを保持します。これは2線動作で実ﾃﾞｰﾀ速度を減らすかもしれません。

15.4. USIでの代替使用

USI部を直列通信に使わないなら、柔軟な設計のため、代替処理を行うように設定できます。

15.4.1. 半二重非同期ﾃﾞｰﾀ転送

3線動作で移動ﾚｼﾞｽﾀを使うことによってｿﾌﾄｳｪｱだけよりも簡潔で高性能のUART実装が可能です。

15.4.2. 4ﾋﾞｯﾄ計数器

4ﾋﾞｯﾄ計数器は溢れ割り込みとの自立型計数器として使えます。この計数器が外部的にｸﾛｯｸ駆動される場合、両ｸﾛｯｸ端が増加(+1)を発生することに注意してください。

15.4.3. 12ﾋﾞｯﾄ計数器

USIの4ﾋﾞｯﾄ計数器とﾀｲﾏ/ｶｳﾝﾀ0の組み合わせは12ﾋﾞｯﾄ計数器としての使用を許します。

15.4.4. ｴｯｼﾞ起動外部割り込み

4ﾋﾞｯﾄ計数器を最大値($F)に設定することによって追加外部割り込みとして機能できます。溢れﾌﾗｸﾞと割り込み許可ﾋﾞｯﾄはこの外部割り込みに対して使われます。この特徴(機能)はUSICS1
ﾋﾞｯﾄによって選択(=1)されます。

15.4.5. ｿﾌﾄｳｪｱ割り込み

4ﾋﾞｯﾄ計数器の溢れ割り込みはｸﾛｯｸ ｽﾄﾛｰﾌﾞによって起動するｿﾌﾄｳｪｱ割り込みとして使えます。
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]76

15.5. USI用 ﾚｼﾞｽﾀ
15.5.1. USIDR - USI ﾃﾞｰﾀ ﾚｼﾞｽﾀ (USI Data Register)
ﾋﾞｯﾄ$0F ($2F)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

USIDR

R/W
0

ﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)は直接ｱｸｾｽできますが、ﾃﾞｰﾀの複製がUSI緩衝ﾚｼﾞｽﾀ(USIBR)でも得られます。
USI制御ﾚｼﾞｽﾀ(USICR)のUSICS1,0ﾋﾞｯﾄ設定に応じて(左)移動動作が実行され得ます。この移動動作は外部ｸﾛｯｸ端、ﾀｲﾏ/ｶｳﾝﾀ0比
較A一致により、またはUSICLKﾋﾞｯﾄ経由のｿﾌﾄｳｪｱ直接で同期化できます。ﾚｼﾞｽﾀが書かれるのと同じ周期で直列ｸﾛｯｸが起こると、ﾚｼﾞｽﾀは書いた値を含み、移動は実行されません。
2または3線動作種別が選択されない(USIWM1,0=00)時でも、外部ﾃﾞｰﾀ入力(DI/SDA)と外部ｸﾛｯｸ入力(USCK/SCL)の両方が未だ
USIﾃﾞｰﾀ ﾚｼﾞｽﾀによって使われ得ることに注意してください。
出力ﾋﾟﾝ(DOまたはSDA、動作種別依存)は出力ﾗｯﾁを経由してﾃﾞｰﾀ ﾚｼﾞｽﾀの最上位ﾋﾞｯﾄ(ﾋﾞｯﾄ7)に接続されます。このﾗｯﾁは逆のｸ
ﾛｯｸ端でのﾃﾞｰﾀ入力採取とﾃﾞｰﾀ出力変更を保証します。この出力ﾗｯﾁは外部ｸﾛｯｸ元が選択される(USICS1=1)時に直列ｸﾛｯｸ周期の前半中が透過(ﾄﾗﾝｽﾍﾟｱﾚﾝﾄ)で、内部ｸﾛｯｸ元が使われる(USICS1=0)時に定常的な透過です。ﾗｯﾁが透過である限り、新規MSBが書かれると、出力は直ちに変更されます。
USIﾃﾞｰﾀ ﾚｼﾞｽﾀからの出力ﾃﾞｰﾀを許可するために、ﾋﾟﾝに対応するﾃﾞｰﾀ方向ﾚｼﾞｽﾀ(DDxn)が1に設定されなければならないことに注意してください。

15.5.2. USIBR - USI緩衝ﾚｼﾞｽﾀ (USI Buffer Register)ﾋﾞｯﾄ$10 ($30)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R
0

0

(LSB)
R
0

R
0

R
0

R
0

R
0

R
0

USIBR

R
0

USIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)からﾃﾞｰﾀを読む代わりにUSI緩衝ﾚｼﾞｽﾀ(USIBR)が使えます。これはUSI制御の微妙なﾀｲﾐﾝｸﾞをなくして他のﾌﾟﾛｸﾞﾗﾑ処理を扱うより多くの時間をCPUに与えます。USIのﾌﾗｸﾞはUSIDRを読む時と同様に設定されます。
USIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)の内容は転送が完了される時にUSI緩衝ﾚｼﾞｽﾀ(USIBR)へ格納されます。

15.5.3. USISR - USI状態ﾚｼﾞｽﾀ (USI Status Register)
ﾋﾞｯﾄ$0E ($2E)
Read/Write
初期値

7

6

5

4

USISIFUSIOIF

USIPF

USIDC

R/W
0

R/W
0

R/W
0

R
0

3

2

1

0

USICNT3 USICNT2 USICNT1 USICNT0 USISR
R/W
0

R/W
0

R/W
0

R/W
0

この状態ﾚｼﾞｽﾀは割り込み要求ﾌﾗｸﾞ、状態ﾌﾗｸﾞ、計数器値を含みます。
● ﾋﾞｯﾄ7 - USISIF : 開始条件検出割り込み要求ﾌﾗｸﾞ (Start Condition Interrupt Flag)

2線動作選択時に開始条件が検出されると、USISIFﾌﾗｸﾞが設定(1)されます。出力禁止動作または3線動作の選択時、USCKﾋﾟﾝのどのｴｯｼﾞもがこのﾌﾗｸﾞを設定(1)します。
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとUSI制御ﾚｼﾞｽﾀ(USICR)で開始条件検出許可(USISIE)ﾋﾞｯﾄが設定(1)の場合にこのﾌﾗｸﾞが設定(1)されると、割り込みが生成されます。このﾌﾗｸﾞはUSISIFﾋﾞｯﾄへの論理1書き込みによってのみ解除(0)されます。このﾋﾞｯﾄの解除(0)は2線動作でのSCLの開始条件保持を解除(開放)します。
開始条件検出割り込みは全ての休止形態からﾌﾟﾛｾｯｻを起動します。
● ﾋﾞｯﾄ6 - USIOIF : 計数器溢れ割り込み要求ﾌﾗｸﾞ (Counter Overflow Interrupt Flag)

このﾌﾗｸﾞは4ﾋﾞｯﾄ計数器が溢れると(換言すると15から0への遷移で)設定(1)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとUSI制御ﾚｼﾞｽﾀ(USICR)で計数器溢れ割り込み許可(USIOIE)ﾋﾞｯﾄが設定(1)の場合にこのﾌﾗｸﾞが設定(1)されると、割り込みが生成されます。このﾌﾗｸﾞはUSIOIFﾋﾞｯﾄへの論理1書き込みによってのみ解除(0)されます。このﾋﾞｯﾄの解除(0)は2線動作でのSCLの計数器
溢れ保持を解除(開放)します。
計数器溢れ割り込みはｱｲﾄﾞﾙ休止動作からﾌﾟﾛｾｯｻを起動します。
● ﾋﾞｯﾄ5 - USIPF : 停止条件検出ﾌﾗｸﾞ (Stop Condition Flag)

2線動作が選択された時に停止条件が検出されると、USIPFﾌﾗｸﾞが設定(1)されます。このﾌﾗｸﾞはこのﾋﾞｯﾄへの1書き込みによって解除(0)されます。これが割り込み要求ﾌﾗｸﾞでないことに注意してください。この合図は2線ﾊﾞｽ主装置調停の実装時に有用です。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]77

● ﾋﾞｯﾄ4 - USIDC : 出力ﾃﾞｰﾀ衝突ﾌﾗｸﾞ (Data Output Collision Flag)

USIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)のﾋﾞｯﾄ7(MSB)が物理ﾋﾟﾝ値と異なる時にこのﾋﾞｯﾄは論理1です。このﾌﾗｸﾞは2線動作が使われる時にだけ有効です。この合図は2線ﾊﾞｽ主装置調停の実装時に有用です。
● ﾋﾞｯﾄ3～0 - USICNT3～0 : 計数器値 (Counter Value)

これらのﾋﾞｯﾄは現在の4ﾋﾞｯﾄ計数器値を反映します。この4ﾋﾞｯﾄ計数器値はCPUによって直接的に読み書きできます。
この4ﾋﾞｯﾄ計数器は外部ｸﾛｯｸ端検出器、ﾀｲﾏ/ｶｳﾝﾀ0比較A一致、USICLKまたはUSITCｽﾄﾛｰﾌﾞ ﾋﾞｯﾄを使うｿﾌﾄｳｪｱのどれかによって生成した各ｸﾛｯｸに対して1つ増加します。このｸﾛｯｸ元はUSICS1,0ﾋﾞｯﾄ設定に依存します。外部ｸﾛｯｸ動作に対してUSITCｽﾄﾛｰﾌﾞ ﾋﾞｯ
ﾄへの書き込みによって生成されるのをｸﾛｯｸに許す特別な特徴が付加されます。この特徴は外部ｸﾛｯｸ元(USICS1=1)設定とUSICLK
への1書き込みによって許可されます。
出力禁止動作(USIWM1,0=00)が選択されている時でも、外部ｸﾛｯｸ入力(USCK/SCL)が未だ計数器によって使われることに注意してください。

15.5.4. USICR - USI制御ﾚｼﾞｽﾀ (USI Control Register)
ﾋﾞｯﾄ$0D ($2D)
Read/Write
初期値

7

6

USISIEUSIOIE

R/W
0

R/W
0

5

4

USIWM1 USIWM0
R/W
0

R/W
0

3

2

1

0

USICS1USICS0USICLK

USITC

R/W
0

R/W
0

W
0

W
0

USICR

この制御ﾚｼﾞｽﾀは割り込み許可制御、動作種別設定、ｸﾛｯｸ選択設定、ｸﾛｯｸ ｽﾄﾛｰﾌﾞを含みます。
● ﾋﾞｯﾄ7 - USISIE : 開始条件検出割り込み許可 (Start Condition Interrupt Enable)

このﾋﾞｯﾄを1に設定することが開始条件検出割り込みを許可します。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとUSISIEﾋﾞｯﾄが1に設定され、保留割り込みありなら、割り込みが直ちに実行されます。より多くの詳細については77頁の開始条件検出割り込み要求
ﾌﾗｸﾞ(USISIF)記述を参照してください。
● ﾋﾞｯﾄ6 - USIOIE : 計数器溢れ割り込み許可 (Counter Overflow Interrupt Enable)

このﾋﾞｯﾄを1に設定することが計数器溢れ割り込みを許可します。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとUSIOIEﾋﾞｯﾄが1に設定され、保留割り込みありなら、割り込みが直ちに実行されます。より多くの詳細については77頁の計数器溢れ割り込み要求ﾌﾗｸﾞ(USIOIF)記述を参照してください。
● ﾋﾞｯﾄ5,4 - USIWM1,0 : 動作種別選択 (Wire Mode)

下の表15-1.で示されるようにこれらのﾋﾞｯﾄは使われるべき動作種別(2または3線動作)を設定します。
表15-1. USI操作とUSIWM1,0の関係
USIWM1 USIWM0
説明00
出力、ｸﾛｯｸ保持、開始条件検出器は禁止。ﾎﾟｰﾄ ﾋﾟﾝは標準として動作。
3線動作。DO,DI,USCKﾋﾟﾝを使用。
ﾃﾞｰﾀ出力(DO)ﾋﾟﾝはこの動作でPORTBﾚｼﾞｽﾀの対応ﾋﾞｯﾄを無視します。けれども対応するDDRBﾋﾞｯﾄは未だﾃﾞｰﾀ方向を制御します。ﾎﾟｰﾄ ﾋﾟﾝが入力として設定(DDxn=0)されると、そのﾋﾟﾝのﾌﾟﾙｱｯﾌﾟはPORTBﾋﾞｯﾄ
01
によって制御されます。
ﾃﾞｰﾀ入力(DI)と直列ｸﾛｯｸ(USCK)ﾋﾟﾝは標準ﾎﾟｰﾄ操作に影響を及ぼしません。主装置として動作する時のｸﾛｯｸ ﾊﾟﾙｽはﾃﾞｰﾀ方向が出力に設定されている(DDxn=1)間のPORTBﾚｼﾞｽﾀの交互切り替えによってｿﾌﾄ
ｳｪｱで生成されます。USICRのUSITCﾋﾞｯﾄがこの目的に使えます。

1

1

0

2線動作。SDA(DI)とSCL(USCK)ﾋﾟﾝを使用。(注1)
直列ﾃﾞｰﾀ(SDA)と直列ｸﾛｯｸ(SCL)ﾋﾟﾝは双方向でｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ出力駆動を使います。この出力駆動部はDDRAﾚｼﾞｽﾀでSDAとSCLに対応するﾋﾞｯﾄの設定(=1)によって許可されます。
SDAﾋﾟﾝに対して出力駆動部が許可されると、出力駆動部はUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)の出力またはPORTB
ﾚｼﾞｽﾀの対応ﾋﾞｯﾄが0ならばSDA線をLowに強制します。さもなければ、SDA線は駆動されません(換言すると開放されます)。SCLﾋﾟﾝ出力駆動部が許可されると、SCL線はPORTBﾚｼﾞｽﾀの対応ﾋﾞｯﾄが0なら、または
開始条件検出器によってLowを強制されます。さもなければSCL線は駆動されません。
SCL線は出力が許可され、開始条件検出器が開始条件を検出すると、Lowに保持されます。開始条件検出ﾌﾗｸﾞ(USISIF)の解除(0)がその線を開放します。SDAとSCLﾋﾟﾝ入力はこの動作の許可によって影響を及ぼされません。SDAとSCLﾋﾟﾝのﾌﾟﾙｱｯﾌﾟは2線動作で禁止されます。

1

2線動作。SDAとSCLﾋﾟﾝを使用。
SCL線は計数器溢れが起こる時にもLowへ保持され、計数器溢れﾌﾗｸﾞ(USIOIF)が解除(0)されるまでLowに保持されることを除いて、上の2線動作と同じ動作です。

注1: DIとUSCKﾋﾟﾝは動作種別間での混乱を避けるため、各々直列ﾃﾞｰﾀ(SDA)と直列ｸﾛｯｸ(SCL)に改称されます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

78基本的に出力の機能だけがこれらのﾋﾞｯﾄによって影響を及ぼされます。ﾃﾞｰﾀとｸﾛｯｸ入力は選択した動作種別によって影響を及ぼされず、常に同じ機能を持ちます。従って出力が禁止される時でもUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)とｶｳﾝﾀは外部的にｸﾛｯｸ駆動でき、入力ﾃﾞｰﾀが採取されます。
● ﾋﾞｯﾄ3,2 - USICS1,0 : ｸﾛｯｸ選択 (Clock Source Select)

これらのﾋﾞｯﾄは移動ﾚｼﾞｽﾀと計数器に対するｸﾛｯｸ元を設定します。外部ｸﾛｯｸ元(USCK/SCL)を使う時にﾃﾞｰﾀ出力ﾗｯﾁはﾃﾞｰﾀ入力(DI/SDA)の採取の逆端で出力が変更されるのを保証します。ﾀｲﾏ/ｶｳﾝﾀ0比較A一致またはｿﾌﾄｳｪｱ ｽﾄﾛｰﾌﾞが選択されると、出力ﾗｯﾁは透過で、従って出力は直ちに変更されます。USICS1,0ﾋﾞｯﾄの解除(=00)がｿﾌﾄｳｪｱ ｽﾄﾛｰﾌﾞ選択を許可します。この選択を使う
時のUSICLKﾋﾞｯﾄへの1書き込みはUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)と計数器の両方をｸﾛｯｸ駆動します。外部ｸﾛｯｸ元(USICS1=1)に対して
USICLKﾋﾞｯﾄはもはやｽﾄﾛｰﾌﾞとして使われませんが、外部ｸﾛｯｸとUSITCｽﾄﾛｰﾌﾞ ﾋﾞｯﾄによるｿﾌﾄｳｪｱ ｸﾛｯｸ間を選択します。
表15-2.はUSIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)と4ﾋﾞｯﾄ計数器に対して使われるｸﾛｯｸ元とUSICS1,0、USICLK設定間の関連を示します。
表15-2. USICS1,0とUSICLK設定との関係
USICS1USICS0USICLK
0
0
0
1
1
X
0
0
1
1
0
1
1

移動ﾚｼﾞｽﾀ ｸﾛｯｸ元
ｸﾛｯｸなしｿﾌﾄｳｪｱ ｸﾛｯｸ ｽﾄﾛｰﾌﾞ (USICLK)
ﾀｲﾏ/ｶｳﾝﾀ0比較A一致
外部ｸﾛｯｸ上昇端
外部ｸﾛｯｸ下降端
外部ｸﾛｯｸ上昇端
外部ｸﾛｯｸ下降端

4ﾋﾞｯﾄ計数器ｸﾛｯｸ元
ｸﾛｯｸなしｿﾌﾄｳｪｱ ｸﾛｯｸ ｽﾄﾛｰﾌﾞ (USICLK)
ﾀｲﾏ/ｶｳﾝﾀ0比較A一致
外部ｸﾛｯｸ両端
ｿﾌﾄｳｪｱ ｸﾛｯｸ ｽﾄﾛｰﾌﾞ (USITC)● ﾋﾞｯﾄ1 - USICLK : ｸﾛｯｸ ｽﾄﾛｰﾌﾞ (Clock Strobe)

USICS1,0ﾋﾞｯﾄのｾﾞﾛ(=00)書き込みによってｿﾌﾄｳｪｱ ｽﾄﾛｰﾌﾞ任意選択が選択されたなら、このﾋﾞｯﾄ位置への1書き込みはUSIﾃﾞｰﾀ ﾚｼﾞ
ｽﾀ(USIDR)を1段移動して計数器を1つ増加します。このｸﾛｯｸ ｽﾄﾛｰﾌﾞが実行される時、直ちに、換言すると同じ命令周期内で出力が替わります。USIﾃﾞｰﾀ ﾚｼﾞｽﾀ(USIDR)内に移動した値は直前の命令周期で採取されます。
外部ｸﾛｯｸ元が選択される(USICS1=1)と、USICLK機能はｸﾛｯｸ ｽﾄﾛｰﾌﾞからｸﾛｯｸ選択ﾚｼﾞｽﾀに変更されます。この場合のUSICLKﾋﾞｯﾄの設定(1)は4ﾋﾞｯﾄ計数器に対するｸﾛｯｸ元としてのUSITCｽﾄﾛｰﾌﾞを選びます(表15-2.参照)。
このﾋﾞｯﾄは0として読まれます。
● ﾋﾞｯﾄ0 - USITC : ｸﾛｯｸ値切り替え (Toggle Clock Port Pin)

このﾋﾞｯﾄ位置に1を書くことはUSCK/SCL値を0から1、または1から0のどちらかへ切り替えます。この切り替えはﾃﾞｰﾀ方向ﾚｼﾞｽﾀでの設定と無関係ですが、PORT値がﾋﾟﾝで見られるべきなら、DDRﾋﾞｯﾄが出力として設定(=1)されなければなりません。この特徴は主装置を実現する時の容易なｸﾛｯｸ生成を許します。
外部ｸﾛｯｸ元が選択され(USICS1=1)、USICLKﾋﾞｯﾄが1に設定されると、USITCｽﾄﾛｰﾌﾞ ﾋﾞｯﾄへの書き込みは直接的に4ﾋﾞｯﾄ計数器をｸﾛｯｸ駆動します。これは主装置として動作する時に転送が行われる時の早い検出を許します。
このﾋﾞｯﾄは0として読まれます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]79

16. ｱﾅﾛｸﾞ比較器
ｱﾅﾛｸﾞ比較器は、非反転入力AIN0(PB0)ﾋﾟﾝと反転入力
AIN1(PB1)ﾋﾟﾝの入力値を比較します。非反転AIN0(PB0)ﾋﾟﾝの電圧が反転AIN1(PB1)ﾋﾟﾝの電圧よりも高い時にACSRのｱﾅﾛｸﾞ比較器出力(ACO)ﾋﾞｯﾄが設定(1)されます。この比較器はｱﾅﾛｸﾞ比較器専用の独立した割り込みを起動できます。使用者は比較器出力の上昇端、下降端、またはその両方で割り込み起動を選べます。この比較器とその周
辺論理回路の構成図は図16-1.で示されます。

図16-1. ｱﾅﾛｸﾞ比較器部構成図
VCC
内部1.1V
基準電圧
ACBG
ACD
AIN0

ｱﾅﾛｸﾞ
比較器
割り込み
ACI

割り込み
選択

+
-

AIN1

ACIE

ACME
ADEN
A/D
多重器出力

ACIS1 ACIS0
ACO

注: A/D多重器出力については以下の表16-1.をご覧ください。
ｱﾅﾛｸﾞ比較器ﾋﾟﾝ配置については、2頁の「ﾋﾟﾝ配置」と41頁の表
10-5.を参照してください。

16.1. ｱﾅﾛｸﾞ比較器入力選択
A/D変換器(ADC)がｼﾝｸﾞﾙ ｴﾝﾄﾞとして設定されるとき、ｱﾅﾛｸﾞ比較器への反転入力を取り替えるのにADC3～0のどれかを選択することができます。
A/D変換の多重器がこの入力選択に使われ、従ってこの機能を利用する
ためにA/D変換部がOFF(動作禁止)されなければなりません。ADCSRBのｱﾅﾛｸﾞ比較器多重器許可(ACME)ﾋﾞｯﾄが設定(1)され、A/D変換部がOFF(ADCSRAのADENﾋﾞｯﾄが0)にされるなら、表16-1.で示されるようにADMU
Xのﾁｬﾈﾙ選択(MUX1,0)ﾋﾞｯﾄがｱﾅﾛｸﾞ比較器への反転入力を取り替えるた
めの入力ﾋﾟﾝを選択します。ACMEが解除(0)、またはADENが設定(1)されると、AIN1がｱﾅﾛｸﾞ比較器への反転入力に印加されます。

表16-1. ｱﾅﾛｸﾞ比較器反転入力選択
ACME ADEN MUX1,0 ｱﾅﾛｸﾞ比較器反転入力
x
xx
0
AIN1
1
xx
00
ADC0
01
1
ADC1
0
10
ADC2
11
ADC3

16.2. ｱﾅﾛｸﾞ比較器用ﾚｼﾞｽﾀ
16.2.1. ADCSRB - A/D変換制御/状態ﾚｼﾞｽﾀB (ADC Control and Status Register B)
ﾋﾞｯﾄ$03 ($23)
Read/Write
初期値

7

6

5

4

3

2

1

0

BIN

ACME

IPR

-

-

ADTS2

ADTS1

ADTS0

R/W
0

R/W
0

R/W
0

R
0

R
0

R/W
0

R/W
0

R/W
0

ADCSRB● ﾋﾞｯﾄ6 - ACME : ｱﾅﾛｸﾞ比較器多重器許可 (Analog Comparator Multiplexer Enable)

このﾋﾞｯﾄが論理1を書かれ、A/D変換部がOFF(ADCSRAのADENﾋﾞｯﾄが0)にされると、A/D変換の多重器がｱﾅﾛｸﾞ比較器への反転入力を選択します。このﾋﾞｯﾄが論理0を書かれると、AIN1がｱﾅﾛｸﾞ比較器の反転入力に印加されます。このﾋﾞｯﾄの詳細な記述については上記の「ｱﾅﾛｸﾞ比較器入力選択」をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]80

16.2.2. ACSR - ｱﾅﾛｸﾞ比較器 制御/状態ﾚｼﾞｽﾀ (Analog Comparator Control and Status Register)ﾋﾞｯﾄ$08 ($28)
Read/Write
初期値

7

6

5

4

3

2

1

0

ACD

ACBG

ACO

ACI

ACIE

-

ACIS1

ACIS0

R/W
0

R/W
0

R
不定

R/W
0

R/W
0

R
0

R/W
0

R/W
0

ACSR

● ﾋﾞｯﾄ7 - ACD : ｱﾅﾛｸﾞ比較器禁止 (Analog Comparator Disable)

このﾋﾞｯﾄが論理1を書かれると、ｱﾅﾛｸﾞ比較器への電力がOFFにされます。このﾋﾞｯﾄはｱﾅﾛｸﾞ比較器をOFFにするために何時でも設定(1)できます。これは活動動作やｱｲﾄﾞﾙ動作で電力消費を削減します。ACDﾋﾞｯﾄを変更する時にACSRのｱﾅﾛｸﾞ比較器割り込み許可(ACIE)ﾋﾞｯﾄを解除(0)することによってｱﾅﾛｸﾞ比較器割り込みが禁止されなければなりません。さもなければ、このﾋﾞｯﾄが変更される
時に割り込みが起こり得ます。
● ﾋﾞｯﾄ6 - ACBG : 基準電圧選択 (Analog Comparator Bandgap Select)

このﾋﾞｯﾄが設定(1)されると、内部基準電圧(公称1.1V)がｱﾅﾛｸﾞ比較器への非反転入力に置き換わります。本ﾋﾞｯﾄが解除(0)されると、AIN0がｱﾅﾛｸﾞ比較器の非反転入力に印加されます。内部基準電圧がｱﾅﾛｸﾞ比較器への入力として使われるとき、電圧の安定に一定時間を必要とします。安定(待機を)しない場合、不正な比較になるかもしれません。29頁の「内部基準電圧」をご覧ください。
● ﾋﾞｯﾄ5 - ACO : ｱﾅﾛｸﾞ比較器出力 (Analog Comparator Output)

ｱﾅﾛｸﾞ比較器の出力は同期化され、その後に直接ACOへ接続されます。この同期化は1～2ｸﾛｯｸ周期の遅延をもたらします。
● ﾋﾞｯﾄ4 - ACI : ｱﾅﾛｸﾞ比較器割り込み要求ﾌﾗｸﾞ (Analog Comparator Interrupt Flag)

このﾋﾞｯﾄは比較器出力での出来事がACSRのｱﾅﾛｸﾞ比較器割り込み条件(ACIS1,0)ﾋﾞｯﾄによって定義した割り込み方法で起動する時に設定(1)されます。ACSRのｱﾅﾛｸﾞ比較器割り込み許可(ACIE)ﾋﾞｯﾄが設定(1)され、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていると、ｱﾅﾛｸﾞ比較器割り込みﾙｰﾁﾝが実行されます。対応する割り込み処理ﾍﾞｸﾀを実行すると、ACIはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにこのﾌﾗｸﾞへ論理1を書くことによってもACIは解除(0)されます。
● ﾋﾞｯﾄ3 - ACIE : ｱﾅﾛｸﾞ比較器割り込み許可 (Analog Comparator Interrupt Enable)

ACIEﾋﾞｯﾄが論理1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていると、ｱﾅﾛｸﾞ比較器割り込みが活性(有効)にされます。論理0を書かれると、この割り込みは禁止されます。
● ﾋﾞｯﾄ2 - Res : 予約 (Reserved)

このﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ1,0 - ACIS1,0 : ｱﾅﾛｸﾞ比較器割り込み条件 (Analog Comparator Interrupt Mode Select)

これらのﾋﾞｯﾄは比較器のどの事象がｱﾅﾛｸﾞ比較器割り込みを起動するのかを決めます。各種設定は表16-2.で示されます。
ACIS1,ACIS0ﾋﾞｯﾄを変更する時にACSRのｱﾅﾛｸﾞ比較器割り込み許可(ACIE)ﾋﾞｯﾄを解除(0)することによってｱﾅﾛｸﾞ比較器割り込みが禁
止されなければなりません。さもなければ、これらのﾋﾞｯﾄが変更される時に割り込みが起き得ます。

表16-2. ｱﾅﾛｸﾞ比較器割り込み条件選択
ACIS1
ACIS0
割り込み発生条件0
比較器出力の変移 (ﾄｸﾞﾙ)
0
(予約)
0
1
1
比較器出力の下降端0比較器出力の上昇端
1116.2.3. DIDR0 - ﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ0 (Digital Input Disable Register 0)
ﾋﾞｯﾄ$14 ($34)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

ADC0D

ADC2D

ADC3D

ADC1D

AIN1D

AIN0D

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

DIDR0

● ﾋﾞｯﾄ1,0 - AIN1D,AIN0D : AIN1,AIN0 ﾃﾞｼﾞﾀﾙ入力禁止 (AIN1,AIN0 Digital Input Disable)

このﾋﾞｯﾄが論理1を書かれると、AIN1/0ﾋﾟﾝのﾃﾞｼﾞﾀﾙ入力緩衝部が禁止されます。このﾋﾞｯﾄが設定(1)されると、対応するﾎﾟｰﾄ入力ﾚｼﾞ
ｽﾀのﾋﾞｯﾄ(PINx)は常に0として読みます。AIN1/0ﾋﾟﾝにｱﾅﾛｸﾞ信号が印加され、そのﾋﾟﾝからのﾃﾞｼﾞﾀﾙ入力が必要とされない時にﾃﾞｼﾞﾀﾙ入力緩衝部での消費電力を削減するため、このﾋﾞｯﾄは論理1を書かれるべきです。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]81

17. A/D変換器
17.1. 特徴
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

10ﾋﾞｯﾄ分解能
積分非直線性誤差0.5LSB
絶対精度±2LSB
変換時間13～260µs (50kHz～1MHz変換ｸﾛｯｸ)
最大分解能で15kSPS(採取/s)まで (200kHz変換ｸﾛｯｸ)4ﾁｬﾈﾙのｼﾝｸﾞﾙ ｴﾝﾄﾞ入力多重器内蔵
利得選択可能な2つの差動入力ﾁｬﾈﾙ
温度感知器入力ﾁｬﾈﾙ
A/D変換結果読み出しに対する任意の左揃え
0～VCC A/D変換入力電圧範囲
選択可能な1.1V/2.56V A/D変換基準電圧
連続と単独の変換動作
割り込み元の自動起動によるA/D変換開始
A/D変換完了割り込み
休止形態雑音低減機能
単極性/両極性入力動作
入力極性反転動作

17.2. 概要
ATtiny25/45/85は10ﾋﾞｯﾄ逐次比較A/D変換器(ADC)が特徴です。このA/D変換器はﾎﾟｰﾄBのﾋﾟﾝから構成された4つのｼﾝｸﾞ ﾙ ｴﾝﾄﾞ
電圧入力と1つの差動電圧入力を許す4ﾁｬﾈﾙ ｱﾅﾛｸﾞ多重器に接続されます。差動入力(PB3,PB4またはPB2,PB5)はA/D変換に先立つ差動入力電圧で26dB(×20)の増幅段を提供する設定変更可能な利得段が装備されます。ｼﾝｸﾞﾙ ｴﾝﾄﾞ電圧入力は0V(GND)が基準です。
このA/D変換器はA/D変換器への入力電圧が変換中に一定の値で保持されることを保証する採取&保持(S/H)回路を含みます。
A/D変換部の構成図は図17-1.で示されます。
公称1.1V/2.56Vの内蔵基準電圧がﾁｯﾌﾟ上で提供されます。代わりにVCCがｼﾝｸﾞﾙ ｴﾝﾄﾞ ﾁｬﾈﾙ用の基準電圧として使えます。内部
基準電圧をOFFにして外部基準電圧を使う任意選択もあります。

図17-1. A/D変換器部構成図
ADIF
ADIE
15

ADC0

8 7

0

ADPS2
ADPS1
ADPS0

A/D ﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH/ADCL)

前置
分周器

-

変換制御回路10ﾋﾞｯﾄDAC++

ｼﾝｸﾞﾙ ｴﾝﾄﾞ/差動選択
利得許可

S&H比較器
反転入力
多重器

ADC1

非反転入力
多重器

ADC2

START

MUX復号器

GND

ADC3

起動元
選択

A/D変換制御/状態ﾚｼﾞｽﾀA (ADCSRA)
ADEN
ADSC
ADATE
(ADIF)

BIN

1.1V/2.56V
内部基準電圧

温度感知器(ADC4)

A/D変換制御/状態ﾚｼﾞｽﾀB (ADCSRB)ADTS2～0

A/D多重器選択
ﾚｼﾞｽﾀ (ADMUX)
REFS1
REFS0
ADLAR
REFS2
MUX3～0AREF
1.1V/2.56V
内部基準電圧

8-bit Data Bus

IPR

VCC

A/D変換完了
割り込み

ADC9～0

各種割り込み要求ﾌﾗｸﾞ

+
利得増幅器

A/D多重器出力(ｱﾅﾛｸﾞ比較器へ)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]82

17.3. 操作
A/D変換部は逐次比較を通してｱﾅﾛｸﾞ入力電圧を10ﾋﾞｯﾄのﾃﾞｼﾞﾀﾙ値に変換します。最小値はGNDを表し、最大値はV CC電圧、AREFﾋﾟﾝの電圧、または1.1V/2.56V内部基準電圧を表します。
A/D変換器用の基準電圧はA/D多重器選択ﾚｼﾞｽﾀ(ADMUX)の基準電圧選択(REFS2～0)ﾋﾞｯﾄへの書き込みによって選択できます。
VCC電源、AREFﾋﾟﾝ、または1.1V/2.56V内部基準電圧がA/D変換器基準電圧として選択できます。任意で2.56V内部基準電圧は雑音耐性を改善するためにAREFﾋﾟﾝで外部ｺﾝﾃﾞﾝｻによってﾃﾞｶｯﾌﾟ(雑音結合減少)ができます。
ｱﾅﾛｸﾞ入力ﾁｬﾈﾙと差動利得はADMUXのﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄへの書き込みによって選択されます。4つのADC入力ﾋﾟﾝ(ADC3～0)のどれもがA/D変換器のｼﾝｸﾞﾙ ｴﾝﾄﾞ入力として選択できます。ADC0とADC2は差動利得増幅器への非反転入力として、
ADC0,ADC1,ADC2,ADC3は反転入力として選択できます。
差動ﾁｬﾈﾙが選択されると、差動利得段は選択した入力ﾁｬﾈﾙ対間の差電圧を、ADMUXのMUX3～0ﾋﾞｯﾄ設定に従って、1倍または20倍の選択した増幅率で増幅します。それからこの増幅した値はA/D変換器の入力になります。ｼﾝｸﾞﾙ ｴﾝﾄﾞ ﾁｬﾈﾙが使われると、利得増幅器全体が迂回(無視)されます。
ADC0かADC2が差動利得増幅器への反転と非反転両方の入力として選択(ADC0-ADC0またはADC2-ADC2)されると、利得段と変換回路の残留ｵﾌｾｯﾄが変換結果として直接測定できます。この数値はｵﾌｾｯﾄ誤差を1LSB以下に減らすために、同じ利得設定で後続する変換(結果)から減算できます。
ﾁｯﾌﾟ上の温度感知器はADC4ﾁｬﾈﾙがA/D変換器入力として使われるとき、(即ち)ADMUXのMUX3～0ﾋﾞｯﾄへの'1111'書き込みによって選択されます。
A/D変換部はA/D変換制御/状態ﾚｼﾞｽﾀA(ADCSRA)のA/D許可(ADEN)ﾋﾞｯﾄの設定(1)によって(動作が)許可されます。基準電圧と入力ﾁｬﾈﾙの選択はADENが設定(1)されるまで実施しません。ADENが解除(0)されているとA/D変換部は電力を消費しないので、節電をする休止形態へ移行する前にA/D変換部をOFFに切り替えることが推奨されます。
A/D変換部はA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH,ADCL)で示される10ﾋﾞｯﾄの結果を生成します。既定では、この結果は右揃え(16ﾋﾞｯﾄのﾋﾞｯﾄ0
側10ﾋﾞｯﾄ)で表されますが、ADMUXで左揃え選択(ADLAR)ﾋﾞｯﾄを設定(1)することにより、任意で左揃え(16ﾋﾞｯﾄのﾋﾞｯﾄ15側10ﾋﾞｯﾄ)で表せます。
この結果が左揃え補正され、8ﾋﾞｯﾄを越える精度が必要とされない場合はADCHを読むことで足ります。さもなければﾃﾞｰﾀ ﾚｼﾞｽﾀの内容が同じ変換に属すこと(からの結果)を保証するため、ADCLが初めに、次にADCHが読まれなければなりません。一度ADCLが読まれると、A/D変換器からのA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH,ADCL)ｱｸｾｽが阻止されます。これはADCLが読まれてしまい、ADCHが読まれる前に変換が完了すると、どちらのﾚｼﾞｽﾀ(ADCH,ADCL)も更新されず、その変換からの結果が失われることを意味します。ADCHが読まれると、ADCH,ADCLへのA/D変換器ｱｸｾｽが再び許可されます。
A/D変換部には変換完了時に起動できる自身の割り込みがあります。A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀへのA/D変換器ｱｸｾｽがADCLとADCHの読み込み間で禁止されている場合、例えその変換結果が失われても割り込みは起動します。

17.4. 変換の開始～単独変換はADCSRAで変換開始(ADSC)ﾋﾞｯﾄに論理1を書くことによって開始されます。このﾋﾞｯﾄは変換が進行中である限り、1に留まり、変換が完了されるとﾊｰﾄﾞｳｪｱによって解除(0)されます。変換が進行中に違う入力ﾁｬﾈﾙが選択されると、A/D変換部はそのﾁｬﾈﾙ
変更を実行する前に現在の変換を済ませます。
代わりに、変換は様々な起動元によって自動的に起動で 図17-2. A/D変換自動起動回路
きます。自動起動はA/D変換制御/状態ﾚｼﾞｽﾀA(ADCSRSTARTA)のA/D変換自動起動許可(ADATE)ﾋﾞｯﾄの設定(1)によっ
ADTS2～0
前置分周器
ADATEて許可されます。起動元はA/D変換制御/状態ﾚｼﾞｽﾀB(ACLKADCADIFDCSRB)のA/D変換起動元選択(ADTS2～0)ﾋﾞｯﾄの設定に1
割り込み元
よって選択されます(起動元の一覧についてはADTSﾋﾞｯﾄ
変換制御回路の記述をご覧ください)。選択した起動信号上に上昇端がｴｯｼﾞ検出器
割り込み元n起きると、A/D変換用前置分周器がﾘｾｯﾄし、変換が開始さADSCれます。これは一定間隔での変換開始の方法を提供します。変換完了時に起動信号が未だ設定(1)されている場合
は新規の変換が開始されません。変換中にこの起動信号上で別の上昇端が起きると、そのｴｯｼﾞは無視されます。指定した割り込みが禁止またはｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが解除(0)でも、割り込み要求ﾌﾗｸﾞが設定(1)されることに注意してください。従って割り込みを起こさずに変換が起動できます。けれども次の割り込み要因で新規変換を起動するために、割り込み要求ﾌﾗｸﾞ
は解除(0)されなければなりません。
起動元としてA/D変換完了割り込み要求ﾌﾗｸﾞ(ADIF)を使うことは、A/D変換器に実行中の変換が完了されると直ぐに新規変換を開始させます。そのためA/D変換器は連続動作で動き、継続的な採取(変換)とA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀを更新します。最初の変換はADCSRAでADSCﾋﾞｯﾄに論理1を書くことにより始めなければなりません。この動作でのA/D変換器はA/D変換完了割り込み要求ﾌﾗｸﾞ(ADIF)が解除(0)されるかどうかに拘らず、連続的な変換を実行します。
自動起動が許可されている場合、ADCSRAのADSCﾋﾞｯﾄに論理1を書くことによって単独変換を開始できます。ADSCは変換が進行中かを決めるためにも使えます。ADSCﾋﾞｯﾄは変換がどう開始されたかに拘らず、変換中は1として読めます。
変換はA/D変換雑音低減機能の使用によっても開始され得ます。この機能はｱｲﾄﾞﾙ休止動作とA/D変換雑音低減休止動作中に変換を許可します。詳細については86頁の「雑音低減機能」をご覧ください。(訳注:共通性から2行追加)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]83

17.5. 前置分周と変換ﾀｲﾐﾝｸﾞ

CK/2
CK/4
CK/8
CK/16
CK/32
CK/64
CK/128

既定での逐次比較回路は最大分解能を得るのに50～200kHzの入力ｸﾛｯｸ周波数を 図17-3. A/D変換前置分周器部構成
必要とします。10ﾋﾞｯﾄよりも低い分解能が必要とされるなら、A/D変換器への入力ｸﾛｯ
CK
ｸ周波数はより高い採取速度を得るために200kHzよりも高くできます。1MHzよりも高ADEN
7ﾋﾞｯﾄ前置分周器
R
い入力ｸﾛｯｸ周波数を使うことは推奨されません。
START
A/D変換部は100kHz以上のどんなCPUｸﾛｯｸからも受け入れ可能なA/D変換ｸﾛｯｸ
周波数を生成する前置分周器を含みます。この前置分周はA/D変換制御/状態ﾚｼﾞ
ｽﾀA(ADCSRA)のA/Dｸﾛｯｸ選択(ADPS2～0)ﾋﾞｯﾄによって設定されます。前置分周器
はADCSRAでA/D許可(ADEN)ﾋﾞｯﾄの設定(1)によってA/D変換部がONにされた瞬ADPS0
A/D変換器用
間から計数を始めます。前置分周器はADENﾋﾞｯﾄが設定(1)される限り走行を保ち、
ADPS1
選択器
ADPS2
ADENが0の時は継続的にﾘｾｯﾄします。
ADCSRAのA/D変換開始(ADSC)ﾋﾞｯﾄの設定(1)によってｼﾝｸﾞﾙ ｴﾝﾄﾞ入力の変換を起動すると、その変換は直後の変換ｸﾛｯｸの上昇端で始まります。
A/D変換ｸﾛｯｸ
通常の変換は13変換ｸﾛｯｸ周期で行われます。下の図17-4.で示されるように、A/D変換部がONされる(ADCSRAのADEN=1)後の最初の変換はｱﾅﾛｸﾞ回路を初期化するために25変換ｸﾛｯｸ周期で行われます。
図17-4. 初回変換ﾀｲﾐﾝｸﾞ (単独変換動作)
変換周期番号

1

2

12

13

初回変換
14 15 16

22

23

24

25

1

次の変換
2
3

変換ｸﾛｯｸ
ADEN
ADSC

変換完了

ADIF
ADCH,ADCL
基準電圧･
多重器確定

以前の変換値

今回の変換値

基準電圧･
多重器確定

保持点

H
L
1
0
1
0
1
0
1
0

実際の採取&保持(保持開始点)は通常変換の開始後1.5変換ｸﾛｯｸ周期、初回変換の開始後13.5変換ｸﾛｯｸ周期で行われます。変
換が完了すると、結果がA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH,ADCL)に書かれ、ADCSRAのA/D変換完了割り込み要求ﾌﾗｸﾞ(ADIF)が設定(1)されます。単独変換動作(ADATE=0)では同時にADCSRAのA/D変換開始(ADSC)ﾋﾞｯﾄが解除(0)されます。その後にｿﾌﾄｳｪｱは再び
ADSCを設定(1)でき、新規変換は変換ｸﾛｯｸの最初の上昇端で開始されます。
図17-5. 通常変換ﾀｲﾐﾝｸﾞ (単独変換動作)
変換周期番号

1

2

3

4

5

6

通常変換
7
8

9

10

11

12

13

1

次の変換
2
3

変換ｸﾛｯｸ
ADSC

変換完了

ADIF
ADCH,ADCL
基準電圧･
多重器確定

以前の変換値

保持点

今回の変換値

H
L
1
0
1
0
1
0

基準電圧･
多重器確定

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

84

自動起動が使われると、前置分周器は起動要因発生時にﾘｾｯﾄされます。これは起動要因から変換開始までの一定の遅延を保証します。この動作での採取&保持は起動要因となる信号の上昇後、2変換ｸﾛｯｸ周期で採取が行われます。同期化論理回路(ｴｯｼﾞ検出器)に対して追加の3CPUｸﾛｯｸ周期が費やされます。
図17-6. 通常変換ﾀｲﾐﾝｸﾞ (自動起動変換動作)
変換周期番号

1

2

4

3

通常変換
6
7
8

5

9

10

11

12

13

次の変換
1
2

変換ｸﾛｯｸ
起動要因
ADATE

変換完了
保持点

ADIF
ADCH,ADCL
前置分周器
ﾘｾｯﾄ

以前の変換値

基準電圧･
多重器確定

今回の変換値

前置分周器
ﾘｾｯﾄ

H
L
1
0
1
0
1
0
1
0

連続変換動作(ADATE=1)では変換完了後直ちに新規変換が開始され、一方ADSCは1に留まります。変換時間の要約については
表17-1.をご覧ください。
図17-7. 連続変換動作ﾀｲﾐﾝｸﾞ
通常変換
変換周期番号 11 12 13

次の変換
1
2
3

変換ｸﾛｯｸADSC 変換完了
ADIF
ADCH,ADCL 以前の変換値
基準電圧･多重器確定

今回の変換値

H
L
1
0
1
0
1
0

表17-1. A/D変換時間
変換種別
保持点
変換時間
初回変換
13.5
25
ｼﾝｸﾞﾙ ｴﾝﾄﾞ入力通常変換
1.513
自動起動変換1.5 (2)13.5
注: 変換時間を除く各値は変換開始からの変換ｸﾛｯｸ数です。

保持点

17.6. ﾁｬﾈﾙ変更と基準電圧選択
A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)のﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄと基準電圧選択(REFS2～0)ﾋﾞｯﾄはCPUが乱順にｱｸｾｽするための一時ﾚｼﾞｽﾀを通して単独緩衝されます。これはﾁｬﾈﾙと基準電圧の選択が変換中の安全なところでだけ行うのを保証します。ﾁｬﾈﾙと基準電圧の選択は変換が開始されるまで継続的に更新されます。一旦変換が始まると、A/D変換器に対して充分な採取/変換時間を保証するためにﾁｬﾈﾙと基準電圧の選択は固定されます。継続的な更新は変換完了(ADCSRAのADIF=1)前の最後の変換ｸﾛｯｸ周期
で再開します。ADCSRAの変換開始(ADSC)ﾋﾞｯﾄが書かれた後の次の変換ｸﾛｯｸの上昇端で変換が始まることに注意してください。
従って使用者はADSC書き込み後、1変換ｸﾛｯｸ周期(経過)まで新しいﾁｬﾈﾙまたは基準電圧選択値をADMUXに書かないことを推奨されます。
自動起動が使われる場合、起動要因の正確な時間は確定できません。変換が新規設定によって影響されるように制御するには
ADMUXの更新時に特別な注意が祓われなければなりません。
ADCSRAのA/D許可(ADEN)とA/D変換自動起動許可(ADATE)の両方が1を書かれると、何時でも割り込みが起き得ます。この期間
でADMUXが変更されると、使用者は次の変換が旧設定または新設定どちらが基準にされるかを知ることができません。ADMUXは次の方法で安全に更新できます。
・ ADENまたはADATEが解除(0)されているとき。
・ 変換開始後、最低1変換ｸﾛｯｸ周期経過後の変換中。
・ 変換後から、変換起動元として使った割り込みﾌﾗｸﾞが解除(0)される直前まで。
これら条件の1つでADMUXを更新すると、新設定は次のA/D変換に影響を及ぼします。

17.6.1. A/D入力ﾁｬﾈﾙ
ﾁｬﾈﾙ選択を変更する時に使用者は正しいﾁｬﾈﾙが選択されることを保証するために次の指針を守るべきです。
単独変換動作では常に変換を始める前にﾁｬﾈﾙを選択してください。ﾁｬﾈﾙ選択はADSCへの1書き込み後、1変換ｸﾛｯｸ周期で変更されるかもしれません。とは言え、最も簡単な方法はﾁｬﾈﾙ選択を変更する前に変換が完了するまで待つことです。
連続変換動作では常に最初の変換を始める前にﾁｬﾈﾙを選択してください。ﾁｬﾈﾙ選択はADSCへの1書き込み後、1変換ｸﾛｯｸ周期で変更されるかもしれません。とは言え、最も簡単な方法は最初の変換が完了するまで待ち、その後にﾁｬﾈﾙ選択を変更することです。既に次の変換が自動的に開始されているので、次の結果は直前のﾁｬﾈﾙ選択を反映します。それに続く変換は新しいﾁｬﾈﾙ選
択を反映します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]85

17.6.2. A/D変換基準電圧
このA/D変換用の基準電圧(VREF)はA/D変換に対する変換範囲を示します。VREFを越えるｼﾝｸﾞﾙ ｴﾝﾄﾞ入力ﾁｬﾈﾙは$3FFで打ち切
るｺｰﾄﾞに帰着します。VREFはVCC、1.1V/2.56V内部基準電圧、外部AREFﾋﾟﾝのどれかとして選択できます。基準電圧源切り替え後の最初のA/D変換結果は不正確かもしれず、使用者はこの結果を破棄することが推奨されます。

17.7. 雑音低減機能
このA/D変換部はCPUｺｱと他の周辺I/Oが誘導した雑音を削減するために休止形態中の変換を可能にする雑音低減機能が特徴です。この機能はA/D変換雑音低減動作とｱｲﾄﾞﾙ動作で使えます。この機能を使うには次の手順が使われるべきです。
1. A/D変換部が許可(ADEN=1)され、変換中でない(ADSC=0)ことを確認してください。単独変換動作が選択(ADATE=0)され、且つA/D変換完了割り込みが許可(ADIE=1)されていなければなりません。
2. A/D変換雑音低減(またはｱｲﾄﾞﾙ)動作に移行してください。一旦CPUが停止されてしまうと、A/D変換部は変換を始めます。
3. A/D変換完了前に他の割り込みが起こらなければ、A/D変換完了割り込みはCPUを起動してA/D変換完了割り込みﾙｰﾁﾝを実行します。A/D変換完了前に他の割り込みがCPUを起動すると、その割り込みが実行され、A/D変換完了割り込み要求はA/D変換完了時に生成されます。CPUは新規SLEEP命令が実行されるまで活動動作に留まります。
ｱｲﾄﾞﾙ動作とA/D変換雑音低減動作を除く他の休止形態へ移行する時にA/D変換部が自動的にOFFへ切り替えられないことに注意してください。使用者は余分な消費電力を避けるため、このような休止形態へ移行する前にADENへ0を書くことが推奨されます。

17.8. ｱﾅﾛｸﾞ入力回路
ｼﾝｸﾞﾙ ｴﾝﾄﾞ入力ﾁｬﾈﾙのｱﾅﾛｸﾞ回路は図17-8.で図示されます。ADCnに印加したｱﾅﾛｸﾞ(信号)源はそのﾁｬﾈﾙがADC入力として選択されているかどうかに拘らず、ﾋﾟﾝ容量とそのﾋﾟﾝの漏れ電流に左右されます。そのﾁｬﾈﾙが選択されると、(ｱﾅﾛｸﾞ信号)源は直列
抵抗(入力経路の合成抵抗)を通してS/Hｺﾝﾃﾞﾝｻを駆動しなければなりません。
A/D変換部は概ね10kΩ若しくはそれ以下の出力ｲﾝﾋﾟｰﾀﾞﾝｽのｱﾅﾛｸﾞ信号用に最適化されています。このような(ｱﾅﾛｸﾞ信号)源が使われるなら、採取時間は無視してもよいでしょう。より高いｲﾝﾋﾟｰﾀﾞﾝｽの(ｱﾅﾛｸﾞ信号)源が使われる場合、採取時間は広範囲に変化し得るS/Hｺﾝﾃﾞﾝｻを充電するために(ｱﾅﾛｸﾞ信号)源がどれくらいの時間を必要とする
かに依存します。必要とされるS/Hｺﾝﾃﾞﾝｻへの充放電を最小とするため、使用者は緩やかに変化する低ｲﾝﾋﾟｰﾀﾞﾝｽ(ｱﾅﾛｸﾞ信号)源だけを使うことが推奨されます。
特定できない信号の渦からの歪を避けるために、どのﾁｬﾈﾙに対してもﾅｲｷｽﾄ周波数( fADC/2)よりも高い信号成分が存在すべきではありません。使用者はADC入力として信号を印加する前に低域通過濾波器(ﾛｰﾊﾟｽ ﾌｨﾙﾀ)で高い周波数成分を取り除くことが推奨されます。

図17-8. ｱﾅﾛｸﾞ入力回路
VCC
IIH
1～100kΩADCn
IIL

CS/H=14pF
VCC/2

17.9. ｱﾅﾛｸﾞ雑音低減技術
ﾃﾞﾊﾞｲｽ内外のﾃﾞｼﾞﾀﾙ回路がｱﾅﾛｸﾞ測定の精度に影響を及ぼすかもしれないEMIを発生します。変換精度が重要な場合、次の技法を適用することによって雑音ﾚﾍﾞﾙを低減できます。
・ ｱﾅﾛｸﾞ信号経路を可能な限り最短にしてください。
・ ｱﾅﾛｸﾞ信号経路がｱﾅﾛｸﾞGND面上を走ることを確認してください。
・ ｱﾅﾛｸﾞ信号経路を高速切り替えﾃﾞｼﾞﾀﾙ信号線から充分離すことを守ってください。
・ 何れかのADCﾎﾟｰﾄ ﾋﾟﾝがﾃﾞｼﾞﾀﾙ出力として使われる場合、これらを変換進行中に決して切り替えてはなりません。
・ 可能な限りVCCとGNDﾋﾟﾝの近くにﾊﾟｽｺﾝを配置してください。
高いA/D変換精度が必要とされるとき、「雑音低減機能」で記述されるようにA/D変換雑音低減動作の使用が推奨されます。これは特にｼｽﾃﾑ ｸﾛｯｸ周波数が1MHz以上、または「温度測定」で記述されるようにA/D変換が内部温度感知器読み込みに使われる場合です。正しい外部ﾊﾟｽｺﾝ配置での良いｼｽﾃﾑ設計はA/D変換雑音低減動作の必要性を低減します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]86

17.10. A/D変換の精度定義
ｼﾝｸﾞﾙ ｴﾝﾄﾞ入力電圧のnﾋﾞｯﾄA/D変換はGNDとVREF間を2nで直線的に変換します。最低値ｺｰﾄﾞは0として読み、最高値ｺｰﾄﾞは2n-1として読みます。以下の各種ﾊﾟﾗﾒｰﾀは理想状態からの偏差を表します。
ｵﾌｾｯﾄ誤差 - 図17-9.
図17-10. 利得誤差
図17-9. ｵﾌｾｯﾄ誤差
最初の遷移点($000から$001)に於いて理想遷移点(差0.5
利得誤差LSB)と比較した偏差です。理想値は0LSBです。
利得誤差 - 図17-10.
ｵﾌｾｯﾄ誤差補正後の最後の遷移点($3FEから$3FF)に於いて理想遷移点(最大差1.5LSB以下)と比較した偏差です。理
想値は0LSBです。
積分非直線性誤差 (INL) - 図17-11.
ｵﾌｾｯﾄ誤差と利得誤差補正後の全ての遷移点に於いて理想遷移点と比較した最大偏差です。理想値は0LSBです。
ｱﾅﾛｸﾞ
VREF
ｱﾅﾛｸﾞ
VREF
入力電圧
入力電圧
微分非直線性誤差 (DNL) - 図17-12.
実

ｵﾌ 理
ｾｯ 想
ﾄ誤 の
実 差 変
換
際
結
の
果
変
換
結
果

●

変換結果コード

変換結果コード

●

際
の
理
変
想
換
の
結
変
果
換
結
果

●

●

図17-12. 微分非直線性誤差

INL

変
換
結
果
想
の
理

変換結果コード

絶対精度
補正しない全ての遷移点に於いて理想遷移点と比較した最大偏差です。これは、ｵﾌｾｯﾄ誤差、利得誤差、差動誤差、非直線誤差の影響の合成です。理想値は±0.5LSBです。
●

変換結果コード

●

果

結

換

変
換
結
果

図17-11. 積分非直線性誤差

理
想の

実際のｺｰﾄﾞの幅(隣接する2つの遷移点間)に於いて理想ｺｰ
ﾄﾞ幅(1LSB)と比較した最大偏差です。理想値は0LSBです。
量子化誤差
有限数のｺｰﾄﾞで入力電圧を量子化するため、1LSB幅となる
入力電圧範囲は同じ値のｺｰﾄﾞになります。この値は常に±0.5LSBです。

変

1LSB

の変

際
実
ｱﾅﾛｸﾞ入力電圧 VREF

果

結

換

の

際

実

DNL
ｱﾅﾛｸﾞ入力電圧17.11. A/D変換の結果
変換完了(ADIF=1)後、変換結果はA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH, ADCL)で得られます。変換結果の形式はｼﾝｸﾞﾙ ｴﾝﾄﾞ変換、単極差動変換、両極差動変換の3つの変換形式に依存します。

17.11.1. ｼﾝｸﾞﾙ ｴﾝﾄﾞ変換
ｼﾝｸﾞﾙ ｴﾝﾄﾞ入力変換での結果は右式で示されます。
VINは選択した入力ﾋﾟﾝの電圧で、VREFは選択した基準電圧です(89頁の表17-3.と表17-4.をご覧ください)。$000はｱﾅﾛｸﾞGNDを表し、$3FFは選択した基準電圧-1LSBを表します。結果は0($000)～1023($3FF)の符号なし2進数で表されます。

ADC =VIN×1024
VREF

17.11.2. 単極差動変換
差動ﾁｬﾈﾙで単極入力動作が使われると、その結果は右式で示されます。
(VPOS－VNEG)×GAIN×1024
VPOSは非反転入力ﾋﾟﾝの電圧、VNEGは反転入力ﾋﾟﾝの電圧、GAINは選択した倍率、 ADC =VREF
VREFは選択した基準電圧です(89頁の表17-3.と表17-4.をご覧ください)。非反転ﾋﾟﾝの電圧は常に反転ﾋﾟﾝの電圧より高くなければならず、さもなければ差電圧は0に飽和します。結果は0($000)～1023($3FF)の符号なし
2進数で表されます。GAINは1倍か20倍の何れかです。

17.11.3. 両極差動変換
既定としてA/D変換器は単極入力動作で働きますが、A/D変換制御/状態ﾚｼﾞｽﾀB(ADCSRB)の両極入力動作(BIN)ﾋﾞｯﾄの1書き込
みにより両極入力動作が選べます。両極入力動作では±両側の差電圧が許され、従っ(VPOS－VNEG)×GAIN×512て反転入力ﾋﾟﾝの電圧は非反転入力ﾋﾟﾝの電圧よりも高くもできます。差動ﾁｬﾈﾙで両
ADC =
VREF
極入力動作が使われると、その結果は右式で示されます。
VPOSは非反転入力ﾋﾟﾝの電圧、VNEGは反転入力ﾋﾟﾝの電圧、GAINは選択した倍率、VREFは選択した基準電圧です。結果は-512($200)から0($000)を通って+511($1FF)までの符号付き2進数で表されます。GAINは1倍か20倍の何れかです。
けれども信号が本質動作(10ﾋﾞｯﾄとして符号+9ﾋﾞｯﾄ)で両極でない場合、この仕組みは変換器の機能範囲(ﾀﾞｲﾅﾐｯｸ ﾚﾝｼﾞ)の1ﾋﾞｯﾄを失います。そこで使用者が最大機能範囲での変換実行を欲するなら、使用者は(変換)結果を素早く調べ、選択可能な差動入力対で単極差動変換を使えます(入力極性反転動作、換言すると90頁でADCSRBの入力極性反転(IPR)ﾋﾞｯﾄをご覧ください)。極性検査
実行時、それは結果のMSB読み込み(ADCHのADC9ﾋﾞｯﾄ)で充分です。このﾋﾞｯﾄが1ならば結果が負、0ならば正です。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]87

17.12. 温度測定
温度測定はｼﾝｸﾞﾙ ｴﾝﾄﾞADC4ﾁｬﾈﾙに連結されるﾁｯﾌﾟ上の温度感知器に基きます。A/D多重器選択(ADMUX)ﾚｼﾞｽﾀのﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄへの'1111'書き込みによるADC4ﾁｬﾈﾙ選択がこの温度感知器を許可します。1.1V内部基準電圧も温度感知器測定
でA/D変換器基準電圧源に選択されなければなりません。温度感知器が許可されると、A/ D変換器は温度感知器上の電圧測定を
単独変換動作(ADATE=0)で使うことができます。
測定した電圧は表17-2.で記述されたように温度に対して直線的関係を持ちます。 表17-2. 温度対感知器出力電圧 (代表値)
感度は概ね1LSB/℃で、精度は使用者校正に依存します。代表的には、室温校正
温度(℃)-40℃ +25℃ +85℃との仮定で、単独温度校正後の測定精度は±10℃です。より良い精度は校正に対A/D変換値(LSB) 230
300
370
して2つの温度点を使うことで達せられます。
表17-2.に記載した値は代表値です。然しながら製法変化のため、温度感知器出力電圧は或るﾁｯﾌﾟと別のﾁｯﾌﾟで変化します。より正確な結果達成を可能とするために温度測定は応用ｿﾌﾄｳｪｱで校正できます。校正ｿﾌﾄｳｪｱは次式を使って行なえます。
T (温度) = k×(ADCH<<8|ADCL)-TOS
ここでADCH:ADCLはA/D変換器ﾃﾞｰﾀ ﾚｼﾞｽﾀ、kは固定傾斜係数、TOSは温度感知器ｵﾌｾｯﾄ値です。代表的に係数 k は1.0に大変近く、単点校正ではこの係数を省略できるかもしれません。高精度が要求される場合、傾斜係数は2つ温度での測定を基に評価されるべきです。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]88

17.13. A/D変換用ﾚｼﾞｽﾀ
17.13.1. ADMUX - A/D多重器選択ﾚｼﾞｽﾀ (ADC Multiplexer Select Register)ﾋﾞｯﾄ$07 ($27)
Read/Write
初期値

7

6

5

4

3

2

1

0

REFS1

REFS0

ADLAR

REFS2

MUX3

MUX2

MUX1

MUX0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ADMUX

● ﾋﾞｯﾄ4,7,6 - REFS2～0 : 基準電圧選択 (Reference Select Bits)

これらのﾋﾞｯﾄは表17-3.で示されるようにA/D変換器の基準電圧(VREF)を選びます。これらのﾋﾞｯﾄが変換中に変更されると、その変更
は変換が完了する(ADCSRAのADIF=1)まで実施しません。これらのﾋﾞｯﾄが変更されると、次の変換は必ず25A/D変換ｸﾛｯｸ掛かります。活動するﾁｬﾈﾙが使われる場合、基準電圧としてVCCまたは(VCC-1V)よりも高い外部AREFの使用は、これがA/D変換精度に影響を及ぼすために推奨されません。
表17-3. A/D変換部の基準電圧選択
REFS2 REFS1 REFS0
基準電圧 (VREF)x00
基準電圧としてVCC使用 (AREF(PB0)ﾋﾟﾝ切断)
x
0
1
AREF(PB0)ﾋﾟﾝの外部基準電圧 (内部基準電圧はOFF)
0
1
0
AREF(PB0)外部ﾃﾞｶｯﾌﾟ用ｺﾝﾃﾞﾝｻなし、1.1V内部基準電圧 (AREF(PB0)ﾋﾟﾝ切断)
0
1
1
(予約)
1
1
0
AREF(PB0)外部ﾃﾞｶｯﾌﾟ用ｺﾝﾃﾞﾝｻなし、2.56V内部基準電圧 (注) (AREF(PB0)ﾋﾟﾝ切断)
1
1
1
AREF(PB0)外部ﾃﾞｶｯﾌﾟ用ｺﾝﾃﾞﾝｻあり、2.56V内部基準電圧 (注)注: このﾃﾞﾊﾞｲｽは2.56V基準電圧を生成するために3V以上の供給電圧が必要です。
● ﾋﾞｯﾄ5 - ADLAR : 左揃え選択 (ADC Left Adjust Result)

ADLARﾋﾞｯﾄはA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ内の変換結果の配置に影響を及ぼします。結果を左揃えにするにはADLARに1を書いてください。さもなければ結果は右揃えです。ADLARﾋﾞｯﾄの変更はどんな進行中の変換にも拘らず、直ちにA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀの内容に影響を及ぼします。このﾋﾞｯﾄの完全な記述については91頁の「A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ」をご覧ください。
● ﾋﾞｯﾄ3～0 - MUX3～0 : A/Dﾁｬﾈﾙ選択 (Analog Channel Select Bits 3～0)

これらﾋﾞｯﾄの値はA/D変換器にどのｱﾅﾛｸﾞ入力の組み合わせが接続されるかを選びます。差動入力(ADC0-ADC1またはADC2ADC3)の場合、利得選択もこれらのﾋﾞｯﾄで行なわれます。差動利得段への両入力としてのADC0またはADC2選択はｵﾌｾｯﾄ測定を可能にします。ｼﾝｸﾞﾙ ｴﾝﾄﾞ ﾁｬﾈﾙADC4選択は温度感知器を許可します。詳細については表17-4.をご覧ください。これらのﾋﾞｯﾄが変換中に変更される場合、その変更は変換が完了する(ADCSRAのADIF=1)まで実施しません。

表17-4. ｱﾅﾛｸﾞ入力ﾁｬﾈﾙ選択
差動入力 (IPR=0)
差動入力 (IPR=0)
ｼﾝｸﾞﾙ ｴﾝﾄﾞｼﾝｸﾞﾙ ｴﾝﾄﾞ
MUX3～0入力
入力
非反転入力 反転入力
利得
非反転入力 反転入力
利得
ADC0(PB5) ADC0(PB5) ×1
0000
ADC0(PB5)1000 (注1)
ADC0(PB5) ADC0(PB5) ×20
ADC1(PB2)
0001
1001 (注1)
ADC0(PB5) ADC1(PB2) ×1
ADC2(PB4)0010
1010
ADC0(PB5) ADC1(PB2) ×20
ADC3(PB3)0011
1011
0100 (注1)
1100 (注2) 1.1V/2.56V
ADC2(PB4) ADC2(PB4) ×1
0V(GND)
0101 (注1)1101
ADC2(PB4) ADC2(PB4) ×20
0110
1110
ADC2(PB4) ADC3(PB3) ×1
ADC41111 (注3)
ADC2(PB4) ADC3(PB3) ×20
0111
注1: ｵﾌｾｯﾄ校正専用。83頁の「操作」をご覧ください。
注2: 内部基準電圧切り替え後、A/D変換器は測定が安定するのに先立って1msの安定時間が必要です。これに先立つ変換開始は信頼できないかもしれません。A/D変換器はこの安定時間中に許可されなければなりません。
注3: 温度感知器用。
MUX3～0ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]89

17.13.2. ADCSRA - A/D制御/状態ﾚｼﾞｽﾀA (ADC Control and Status Register A)
ﾋﾞｯﾄ$06 ($26)
Read/Write
初期値

7

6

5

4

3

2

1

0

ADEN

ADSC

ADATE

ADIF

ADIE

ADPS2

ADPS1

ADPS0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ADCSRA● ﾋﾞｯﾄ7 - ADEN : A/D許可 (ADC Enable)

このﾋﾞｯﾄに1を書くことがA/D変換部(動作)を許可します。0を書くことによってA/D変換部は(電源が)OFFされます。変換が進行中に
A/D変換部をOFFにすることはその変換を(途中)終了します。
● ﾋﾞｯﾄ6 - ADSC : A/D変換開始 (ADC Start Conversion)

単独変換動作で各変換を始めるにはこのﾋﾞｯﾄへ1を書いてください。連続変換動作で最初の変換を始めるにはこのﾋﾞｯﾄへ1を書いてください。A/D変換部が許可される(ADEN=1)と同時にADSCが書かれるか、またはA/D変換部が許可されてしまった後にADSCが書かれた後の初回変換は、通常の13に代わって25変換ｸﾛｯｸ周期で行います。この初回変換はA/D変換部の初期化を実行します。
ADSCは変換が進行中である限り1として読めます。変換が完了すると0に戻ります。このﾋﾞｯﾄへの0書き込みは無効です。
● ﾋﾞｯﾄ5 - ADATE : A/D変換自動起動許可 (ADC Auto Trigger Enable)

このﾋﾞｯﾄが1を書かれると、A/D変換の自動起動が許可されます。A/D変換器は選択した起動信号の上昇端で変換を開始します。この起動元はA/D変換制御/状態ﾚｼﾞｽﾀB(ADCSRB)のA/D変換起動要因選択(ADTS2～0)ﾋﾞｯﾄ設定によって選択されます。
● ﾋﾞｯﾄ4 - ADIF : A/D変換完了割り込み要求ﾌﾗｸﾞ (ADC Interrupt Flag)

A/D変換が完了し、A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀが更新されると、このﾌﾗｸﾞが設定(1)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとA/D変換完了割り込み許可(ADIE)ﾋﾞｯﾄが設定(1)されていれば、A/D変換完了割り込みが実行されます。対応する割り込み処理ﾍﾞｸ
ﾀを実行する時にADIFはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにこのﾌﾗｸﾞに論理1を書くことによってもADIFは解除(0)されます。
ADCSRAで読み-変更-書き(ﾘｰﾄﾞ ﾓﾃﾞｨﾌｧｲ ﾗｲﾄ)を行うと、保留中の割り込みが禁止され得ることに注意してください。これはSBI,CBI命令が使われる場合にも適用されます。
● ﾋﾞｯﾄ3 - ADIE : A/D変換完了割り込み許可 (ADC Interrupt Enable)

このﾋﾞｯﾄが1を書かれ、SREGの全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていると、A/D変換完了割り込みが活性に(許可)されます。
● ﾋﾞｯﾄ2～0 - ADPS2～0 : A/D変換ｸﾛｯｸ選択 (ADC Prescaler Select Bits)

これらのﾋﾞｯﾄはｼｽﾃﾑ ｸﾛｯｸ周波数とA/D変換部への入力ｸﾛｯｸ間の分周値を決めます。

表17-5. A/D変換ｸﾛｯｸ選択 (CK=ｼｽﾃﾑ ｸﾛｯｸ)
ADPS2
0
0
ADPS1
0
0
ADPS0
0
1
CK/2
A/D変換ｸﾛｯｸ
CK/2

0
1
0
CK/4

0
1
1
CK/8

1
0
0
CK/16

1
0
1
CK/32

1
1
0
CK/64

1
1
1
CK/12817.13.3. ADCSRB - A/D変換 制御/状態ﾚｼﾞｽﾀB (ADC Control and Status Register B)
ﾋﾞｯﾄ$03 ($23)
Read/Write
初期値

7

6

5

4

3

2

1

0

BIN

ACME

IPR

-

-

ADTS2

ADTS1

ADTS0

R/W
0

R/W
0

R/W
0

R
0

R
0

R/W
0

R/W
0

R/W
0

ADCSRB● ﾋﾞｯﾄ7 - BIN : 両極入力動作 (Bipolar Input Mode)

利得段は既定として単極動作で動きますが、このBINﾋﾞｯﾄ(=1)書き込みによって両極動作が選択できます。単極動作では(±の)片側変換だけが支援され、非反転入力の電圧は反転入力の電圧よりも常に高くなければなりません。さもなければ、その結果は基準電圧に飽和されます。両極動作では(±の)両側変換が支援され、その結果は2の補数形式で表されます。単極動作での分解能は10ﾋﾞｯ
ﾄで、両極動作での分解能は9ﾋﾞｯﾄ+1符号ﾋﾞｯﾄです。
● ﾋﾞｯﾄ5 - IPR : 入力極性反転 (Input Polarity Reversal)

入力極性動作は予め決まった入力極性との認識で、ｿﾌﾄｳｪｱに単極入力動作での全10ﾋﾞｯﾄA/D変換分解能と選択可能な差動入力
対を許します。入力極性が判らない場合、先に(1符号ﾋﾞｯﾄ+9ﾋﾞｯﾄ分解能のA/D変換測定での)両極入力動作を使うことにより、実際に極性を決めることが可能です。そして一旦決まったなら、後続する10ﾋﾞｯﾄ単極測定用に必要に応じて極性反転ﾋﾞｯﾄを設定(1)または解除(0)してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]90

● ﾋﾞｯﾄ4,3 - Res : 予約 (Reserved Bits)

これらのﾋﾞｯﾄは予約されており、常に0として読めます。
● ﾋﾞｯﾄ2～0 - ADTS2～0 : A/D変換自動起動要因選択 (ADC Auto Trigger Source)

A/D変換制御/状態ﾚｼﾞｽﾀA(ADCSRA)のA/D変換自動起動許可(ADATE)ﾋﾞｯﾄが1を書かれると、これらのﾋﾞｯﾄの値はどの起動元がA/D変換を起動するのかを選択します。ADATEが解除(0)されると、ADTS2～0設定は無効です。変換は選択した割り込みﾌﾗｸﾞの上昇端によって起動されます。解除(0)されている起動元から設定(1)されている起動元への切り替えが、起動信号上に上昇端を生成することに注意してください。ADC
SRAのA/D許可(ADEN)ﾋﾞｯﾄが設定(1)されているなら、これが変換を開始させます。連続変換動作(ADTS2～0=0)への切り替えは、例えA/D変
換完了割り込み要求ﾌﾗｸﾞが設定(1)されていても、起動事象を引き起こしません。

表17-6. A/D変換自動起動元選択
ADTS2 ADTS1 ADTS0
起動元
0
0
0
連続変換動作001
ｱﾅﾛｸﾞ比較器010
外部割り込み要求001
1
ﾀｲﾏ/ｶｳﾝﾀ0比較A一致
100
ﾀｲﾏ/ｶｳﾝﾀ0溢れ101
ﾀｲﾏ/ｶｳﾝﾀ0比較B一致
110
ﾋﾟﾝ変化割り込み要求
1
1
1
(予約)

17.13.4. ADCH,ADCL - A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ (ADC Data Register)
ADLAR=0時
ﾋﾞｯﾄ$05 ($25)
Read/Write
初期値
ﾋﾞｯﾄ$04 ($24)
Read/Write
初期値

15

14

13

12

11

10

9

8

-

-

-

-

-

-

ADC9

ADC8

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R
0

7

6

5

4

3

2

1

0

ADC7

ADC6

ADC5

ADC4

ADC3

ADC2

ADC1

ADC0

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R
0

ADLAR=1時
15

14

13

12

11

10

9

8

ADC9

ADC8

ADC7

ADC6

ADC5

ADC4

ADC3

ADC2

7

6

5

4

3

2

1

0

ADC1

ADC0

-

-

-

-

-

-

ADCH

ADCL

ADCH
ADCL

A/D変換が完了すると、その結果がこれら2つのﾚｼﾞｽﾀで得られます。
ADCLが読まれると、A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀはADCHが読まれるまで更新されません。従ってこの結果が左揃え、且つ8ﾋﾞｯﾄを越える精度が必要とされないなら、ADCHを読むことで用が足ります。さもなくばADCLが初めに、その後にADCHが読まれなければなりません。
A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)の左揃え選択(ADLAR)ﾋﾞｯﾄとA/Dﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄは、本ﾚｼﾞｽﾀから結果を読む方法に影響を及ぼします。ADLARが設定(1)されると結果は左揃えされます。ADLARが解除(0)されていると(既定)、結果は右揃えされます。
● ADC9～0 : A/D変換結果 (ADC Conversion result)

これらのﾋﾞｯﾄは87頁の「A/D変換の結果」で詳述されるように変換での結果を表します。

17.13.5. DIDR0 - ﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ0 (Digital Input Disable Register 0)
ﾋﾞｯﾄ$14 ($34)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

ADC0D

ADC2D

ADC3D

ADC1D

AIN1D

AIN0D

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

DIDR0

● ﾋﾞｯﾄ7,6 - Res : 予約 (Reserved Bits) (訳注:共通性から本項追加)

これらのﾋﾞｯﾄは将来の使用に対して予約されています。将来のﾃﾞﾊﾞｲｽとの共通性のため、DIDR0が書かれるとき、これらのﾋﾞｯﾄは0が書かれなければなりません。
● ﾋﾞｯﾄ5～2 - ADC3D～ADC0D : ADC3～0 ﾃﾞｼﾞﾀﾙ入力禁止 (ADC3～0 Digital Input Disable)

このﾋﾞｯﾄが論理1を書かれると、対応するADCnﾋﾟﾝのﾃﾞｼﾞﾀﾙ入力緩衝部が禁止されます。このﾋﾞｯﾄが設定(1)されると、対応するﾎﾟｰﾄ
入力ﾚｼﾞｽﾀのﾋﾞｯﾄ(PINx)は常に0として読みます。ｱﾅﾛｸﾞ信号がADCnﾋﾟﾝに印加され、そのﾋﾟﾝからのﾃﾞｼﾞﾀﾙ入力が必要とされない時にﾃﾞｼﾞﾀﾙ入力緩衝部での消費電力を削減するため、そのﾋﾞｯﾄは論理1を書かれるべきです。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

91

18. ﾃﾞﾊﾞｯｸﾞWIRE 内蔵ﾃﾞﾊﾞｯｸﾞ ｼｽﾃﾑ
18.1. 特徴●●●●●

完全なﾌﾟﾛｸﾞﾗﾑの流れ制御
RESETﾋﾟﾝを除くﾃﾞｼﾞﾀﾙとｱﾅﾛｸﾞ両方でのﾁｯﾌﾟ全機能のｴﾐｭﾚｰﾄ
実時間(ﾘｱﾙ ﾀｲﾑ)動作
ｼﾝﾎﾞﾘｯｸ ﾃﾞﾊﾞｯｸﾞ支援 (ｱｾﾝﾌﾞﾘ及びC言語または他の高位言語)
無制限数のﾌﾟﾛｸﾞﾗﾑ中断点(ﾌﾞﾚｰｸ ﾎﾟｲﾝﾄ : ｿﾌﾄｳｪｱ中断点使用)

●
●
●
●
●

邪魔しない動作
実ﾃﾞﾊﾞｲｽと同じ電気的特性自動設定ｼｽﾃﾑ
高速動作
不揮発性ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ

18.2. 概要
ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ ｼｽﾃﾑはCPUでのAVR命令実行、ﾌﾟﾛｸﾞﾗﾑの流れ制御、各種不揮発性ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞのための1本線の双方向ｲﾝﾀｰﾌｪｰｽを使います。

18.3. 物理ｲﾝﾀｰﾌｪｰｽ
ﾃﾞﾊﾞｯｸﾞWIRE許可(DWEN)ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)され、施錠ﾋﾞｯﾄが非ﾌﾟﾛｸﾞﾗﾑ(1)にされる 図18-1. ﾃﾞﾊﾞｯｸﾞWIRE構成図と、対象ﾃﾞﾊﾞｲｽ内のﾃﾞﾊﾞｯｸﾞWIREｼｽﾃﾑが活性(有効)にされます。RESETﾎﾟｰﾄ ﾋﾟﾝはﾌﾟﾙ
1.8～5.5V
ｱｯﾌﾟ許可のANDﾀｲ(ｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ)双方向I/Oﾋﾟﾝとして設定され、対象ﾃﾞﾊﾞｲｽとｴﾐｭﾚｰﾀ間の通信路になります。
VCC
図18-1.はｴﾐｭﾚｰﾀと許可したﾃﾞﾊﾞｯｸﾞWIREでの対象MCUとの接続の図を示します。ｼｽﾃ dWdW(RESET)
ﾑ ｸﾛｯｸはﾃﾞﾊﾞｯｸﾞWIREによって影響を及ぼされず、常にCKSELﾋｭｰｽﾞで選択したｸﾛｯｸ
GND元です。
ﾃﾞﾊﾞｯｸﾞWIREが使われるｼｽﾃﾑの設計時、以下が厳守されなければなりません。
・ dW/(RESET)線のﾌﾟﾙｱｯﾌﾟ抵抗は10k～20kΩの範囲でなければなりません。けれどもﾌﾟﾙｱｯﾌﾟ抵抗は任意選択です。
・ RESETﾋﾟﾝのVCCへの直接的な接続では動作しません。
・ RESETﾋﾟﾝに挿入したｺﾝﾃﾞﾝｻはﾃﾞﾊﾞｯｸﾞWIRE使用時、切断されなければなりません。
・ 全ての外部ﾘｾｯﾄ元は切断されなければなりません。

18.4. ｿﾌﾄｳｪｱ中断点(ﾌﾞﾚｰｸ ﾎﾟｲﾝﾄ)
ﾃﾞﾊﾞｯｸﾞWIREはAVRのBREAK命令によってﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘの中断点を支援します。AVR Studio®での中断点設定はﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘにBR
EAK命令を挿入します。BREAK命令で置換した(元の)命令は保存されます。ﾌﾟﾛｸﾞﾗﾑ実行が継続されるとき、ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘから継続される前に保存した命令が実行されます。一時停止(ﾌﾞﾚｰｸ)はﾌﾟﾛｸﾞﾗﾑにBREAK命令を置くことによって手動で挿入できます。
ﾌﾗｯｼｭ ﾒﾓﾘは中断点が変更される度毎に再書き換えされなければなりません。これはﾃﾞﾊﾞｯｸﾞWIREｲﾝﾀｰﾌｪｰｽを通してAVR Studioによって自動的に操作されます。従って中断点の使用はﾌﾗｯｼｭ ﾒﾓﾘのﾃﾞｰﾀ保持力を低下させます。ﾃﾞﾊﾞｯｸﾞ目的に使ったﾃﾞﾊﾞｲｽは最終顧客へ出荷すべきではありません。

18.5. ﾃﾞﾊﾞｯｸﾞWIREの制限
ﾃﾞﾊﾞｯｸﾞWIRE通信(dW)ﾋﾟﾝは物理的に外部ﾘｾｯﾄ(RESET)と同じﾋﾟﾝに配置されます。従ってﾃﾞﾊﾞｯｸﾞWIREが許可されると、外部ﾘｾｯﾄ
元が支援されません。
ﾃﾞﾊﾞｯｸﾞWIREｼｽﾃﾑは全速度、換言するとCPUのﾌﾟﾛｸﾞﾗﾑが走行する時に全I/O機能を正確ｴﾐｭﾚｰﾄします。CPUが停止される時にﾃﾞﾊﾞｯｶﾞ(AVR Studio)経由でいくつかのI/Oﾚｼﾞｽﾀをｱｸｾｽする間、注意が祓われなければなりません。制限の詳細記述についてはﾃﾞﾊﾞｯｸﾞWIRE資料をご覧ください。
ﾃﾞﾊﾞｯｸﾞWIREｲﾝﾀｰﾌｪｰｽは非同期で、これはﾃﾞﾊﾞｯｶﾞがｼｽﾃﾑ ｸﾛｯｸへの同期を必要とすることを意味します。ｿﾌﾄｳｪｱ(例えばCLKPS
ﾋﾞｯﾄ書き込み)によってｼｽﾃﾑ ｸﾛｯｸが変更される場合にﾃﾞﾊﾞｯｸﾞWIRE経由の通信が失敗するかもしれません。また、100kHz未満のｸ
ﾛｯｸ周波数は通信の問題を引き起こすかもしれません。
ﾌﾟﾛｸﾞﾗﾑ(0)にしたDWENﾋｭｰｽﾞは全休止形態でｸﾛｯｸ系のいくつかの部分の走行を許可します。これは休止間中の消費電力を増加します。従ってDWENﾋｭｰｽﾞはﾃﾞﾊﾞｯｸﾞWIREが使われない場合、禁止されるべきです。

18.6. ﾃﾞﾊﾞｯｸﾞWIRE用ﾚｼﾞｽﾀ
次項はﾃﾞﾊﾞｯｸﾞWIREで使うﾚｼﾞｽﾀを記述します。

18.6.1. DWDR - ﾃﾞﾊﾞｯｸﾞWIRE ﾃﾞｰﾀ ﾚｼﾞｽﾀ (debugWIRE Data Register)ﾋﾞｯﾄ$22 ($42)
Read/Write
初期値

7

6

5

4

3

2

1

(MSB)
R/W
0

0

(LSB)
R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

DWDR

R/W
0

DWDRはMCU内で走行するﾌﾟﾛｸﾞﾗﾑからﾃﾞﾊﾞｯｶﾞへの通信ﾁｬﾈﾙを提供します。このﾚｼﾞｽﾀはﾃﾞﾊﾞｯｸﾞWIREでだけｱｸｾｽ可能で、従って通常動作で一般目的ﾚｼﾞｽﾀとして使えません。
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]92

19. ﾌﾗｯｼｭ ﾒﾓﾘの自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
本ﾃﾞﾊﾞｲｽはMCU自身によるﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞのﾀﾞｳﾝﾛｰﾄﾞとｱｯﾌﾟﾛｰﾄﾞ用の自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ機構を提供します。自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞはﾌﾗｯｼｭ
ﾒﾓﾘ内にｺｰﾄﾞを書き(ﾌﾟﾛｸﾞﾗﾑ)、ｺｰﾄﾞを読み、またはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘからｺｰﾄﾞを読むのに、利用可能なﾃﾞｰﾀ ｲﾝﾀｰﾌｪｰｽと関連する規約のどれもが使えます。SPM命令は既定で禁止ですが、SELFPRGENﾋｭｰｽﾞを(0に)ﾌﾟﾛｸﾞﾗﾐﾝｸﾞすることで許可にできます。
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘはﾍﾟｰｼﾞ単位形式で更新されます。ﾍﾟｰｼﾞ一時緩衝部へ格納したﾃﾞｰﾀでﾍﾟｰｼﾞを書く前に、そのﾍﾟｰｼﾞは消去されなけ
ればなりません。ﾍﾟｰｼﾞ一時緩衝部はSPM命令使用時毎の1語(ﾜｰﾄﾞ)で満たされ、この緩衝部はﾍﾟｰｼﾞ消去命令前、またはﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み操作間のどちらかで満たすことができます。
手段1 (ﾍﾟｰｼﾞ消去前の一時緩衝部格納)・ ﾍﾟｰｼﾞ一時緩衝部を満たしてください。
・ ﾍﾟｰｼﾞ消去を実行してください。
・ ﾍﾟｰｼﾞ書き込みを実行してください。
手段2 (ﾍﾟｰｼﾞ消去後の一時緩衝部格納)・ ﾍﾟｰｼﾞ消去を実行してください。
・ ﾍﾟｰｼﾞ一時緩衝部を満たしてください。
・ ﾍﾟｰｼﾞ書き込みを実行してください。
ﾍﾟｰｼﾞの一部の変更だけが必要な場合、消去前にﾍﾟｰｼﾞの残す部分は(例えばﾍﾟｰｼﾞ一時緩衝部に)保存されなければならず、その後に改めて書かれます。手段1.を使う場合、初めにﾍﾟｰｼﾞを読んで必要な変更を行い、その後に変更したﾃﾞｰﾀを書き戻すことを使用
者ｿﾌﾄｳｪｱに許す効率的な読み-修正-書き(ﾘｰﾄﾞ ﾓﾃﾞﾌｧｲ ﾗｲﾄ)機能をﾃﾞﾊﾞｲｽが提供します。手段2.が使われる場合、ﾍﾟｰｼﾞが既に消去されているため、格納中の旧ﾃﾞｰﾀを読むことができません。ﾍﾟｰｼﾞ一時緩衝部は乱手順でｱｸｾｽできます。ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み操作の両方で使われるﾍﾟｰｼﾞ ｱﾄﾞﾚｽは同じﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定することが非常に重要です。

19.1. SPM命令によるﾍﾟｰｼﾞ消去の実行
ﾍﾟｰｼﾞ消去を実行するにはZﾎﾟｲﾝﾀにｱﾄﾞﾚｽを設定してSPM命令制御/状態ﾚｼﾞｽﾀ(SPMCSR)に'00000011'を書き、SPMCSR書き込み
後4ｸﾛｯｸ周期内にSPM命令を実行してください。R1とR0のﾃﾞｰﾀは無視されます。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽはZﾎﾟｲﾝﾀのPCPAGEに書かれなければなりません。この操作中、Zﾎﾟｲﾝﾀの他のﾋﾞｯﾄは無視されます。
注: ﾍﾟｰｼﾞ消去中、CPUは停止されます。

19.2. ﾍﾟｰｼﾞ一時緩衝部の設定 (ﾍﾟｰｼﾞ設定)
命令語(ﾜｰﾄﾞ)を(ﾍﾟｰｼﾞ一時緩衝部に)書くにはZﾎﾟｲﾝﾀにｱﾄﾞﾚｽ、R1:R0にﾃﾞｰﾀを設定してSPMCSRに'00000001'を書き、SPMCSR書き
込み後4ｸﾛｯｸ周期内にSPM命令を実行してください。ZﾎﾟｲﾝﾀのPCWORDの内容は一時緩衝部のﾃﾞｰﾀのｱﾄﾞﾚｽに使われます。一時
緩衝部はﾍﾟｰｼﾞ書き込み操作後、またはSPMCSRのCTPBﾋﾞｯﾄ(=1)書き込みによって自動的に消去されます。ｼｽﾃﾑ ﾘｾｯﾄ後も消去されています。一時緩衝部を消去せずに各ｱﾄﾞﾚｽへ複数回書くことができないことに注意してください。
SPMﾍﾟｰｼﾞ設定操作の途中でEEPROMが書かれると、設定した全ﾃﾞｰﾀが失われます。

19.3. ﾍﾟｰｼﾞ書き込みの実行
ﾍﾟｰｼﾞ書き込みを行うにはZﾎﾟｲﾝﾀにｱﾄﾞﾚｽを設定してSPMCSRに'00000101'を書き、SPMCSR書き込み後4ｸﾛｯｸ周期内にSPM命令を実行してください。R1とR0のﾃﾞｰﾀは無視されます。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽは(Zﾎﾟｲﾝﾀの)PCPAGEに書かれなければなりません。この操作の間
中、Zﾎﾟｲﾝﾀの他のﾋﾞｯﾄは0を書かれなければなりません。
注: ﾍﾟｰｼﾞ書き込み中、CPUは停止されます。

19.4. 自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中のﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
Zﾎﾟｲﾝﾀ(ﾚｼﾞｽﾀ)はSPM命令でのｱﾄﾞﾚｽ指定に使われます。
ﾋﾞｯﾄ
ZH (R31)ﾋﾞｯﾄ
ZL (R30)

15

14

13

12

11

10

9

8

Z15

Z14

Z13

Z12

Z11

Z10

Z9

Z8

7

6

5

4

3

2

1

0

Z7

Z6

Z5

Z4

Z3

Z2

Z1

Z0

ﾌﾗｯｼｭ ﾒﾓﾘがﾍﾟｰｼﾞで構成されるため(99頁の表20-8.参照)、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀ)は2つの違う領域を持つように取り扱われます。1つの領域は下位側ﾋﾞｯﾄから成り、ﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)をｱﾄﾞﾚｽ指定し、一方上位側ﾋﾞｯﾄはそのﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定します。これは次頁の図19-1.で示されます。ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み操作が個別にｱﾄﾞﾚｽ指定されることに注意してください。従ってｿﾌﾄｳｪｱ
はﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み操作の両方で同じﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定することが最も重要です。
LPM命令はｱﾄﾞﾚｽを格納するのにZﾎﾟｲﾝﾀを使います。この命令はﾌﾗｯｼｭ ﾒﾓﾘのﾊﾞｲﾄ単位をｱﾄﾞﾚｽ指定するので、Zﾎﾟｲﾝﾀの最下位
ﾋﾞｯﾄ(Z0)も使われます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]93

図19-1. SPM操作中のﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
ﾋﾞｯﾄ 15ZPCMSBZPAGEMSB
ZﾚｼﾞｽﾀPCMSBPCPAGE
ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ
ﾌﾗｯｼｭ ﾒﾓﾘ内のﾍﾟｰｼﾞ ｱﾄﾞﾚｽ
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ

0

PAGEMSB
PCWORDﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽ
ﾍﾟｰｼﾞ
PCWORD (PAGEMSB～0)$00
命令語(ﾜｰﾄﾞ)
$01
$02
～

ﾍﾟｰｼﾞ

1 0

PAGEEND
注: 図内で使った各変数は99頁の表20-8.で一覧されます。

19.5. SPM命令での書き込み時のEEPROM書き込みによる妨害
EEPROM書き込み動作がﾌﾗｯｼｭ ﾒﾓﾘへの全ｿﾌﾄｳｪｱ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞを妨げることに注意してください。ｿﾌﾄｳｪｱからのﾋｭｰｽﾞと施錠ﾋﾞｯﾄ読
み出しもEEPROM書き込み動作中、妨げられます。使用者はEEPROM制御ﾚｼﾞｽﾀ(EECR)のEEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄを検査し、SPM命令制御/状態ﾚｼﾞｽﾀ(SPMCSR)へ書く前に、このﾋﾞｯﾄが解除(0)されているのを確認することが推奨されます。

19.6. ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票ﾃﾞｰﾀの読み出し
ﾌｧｰﾑｳｪｱからﾋｭｰｽﾞと施錠ﾋﾞｯﾄを読むことが可能です。加えてﾌｧｰﾑｳｪｱはﾃﾞﾊﾞｲｽ識票銘刻部(99頁参照)からﾃﾞｰﾀを読むこともできます。
注: ﾌﾟﾛｸﾞﾗﾑ(0)されたﾋｭｰｽﾞと施錠ﾋﾞｯﾄは0として読めます。非ﾌﾟﾛｸﾞﾗﾑ(1)にされたﾋｭｰｽﾞと施錠ﾋﾞｯﾄは1として読めます。

19.6.1. ﾌｧｰﾑｳｪｱからの施錠ﾋﾞｯﾄ読み出し
SPMCSRでﾌﾗｯｼｭ/施錠ﾋﾞｯﾄ読み込み(RFLB)とSPM操作許可(SPMEN)ﾋﾞｯﾄを設定(1)した後の3CPU周期内のLPM命令実行は転送
先ﾚｼﾞｽﾀ内に施錠ﾋﾞｯﾄ値を返します。RFLBとSPMENﾋﾞｯﾄは施錠ﾋﾞｯﾄ読み出しの完了で、または3CPU周期内にLPM命令が実行されないか、または4CPU周期内にSPM命令が実行されない場合、自動的に解除(0)されます。通常、RFLBとSPMENﾋﾞｯﾄが解除(0)されるのはLPMの作用です。
施錠ﾋﾞｯﾄを読むには以下の手続きに従ってください。
1. Zﾎﾟｲﾝﾀに$0001を格納してください。
2. SPMCSRでRFLBとSPMENﾋﾞｯﾄを設定(1)してください。
3. 3ｸﾛｯｸ周期内にLPM命令を実行してください。
4. LPM転送先ﾚｼﾞｽﾀから施錠ﾋﾞｯﾄ値を読んでください。
成功なら、転送先ﾚｼﾞｽﾀの内容は次のとおりです。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

-

-

-

-

-

-

LB2

LB1

より多くの情報については97頁の「ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ」をご覧ください。

19.6.2. ﾌｧｰﾑｳｪｱからのﾋｭｰｽﾞ ﾋﾞｯﾄ読み出し
ﾋｭｰｽﾞ ﾊﾞｲﾄを読む方法はｱﾄﾞﾚｽが異なるだけで上記の施錠ﾋﾞｯﾄ読み出しと同様です。ﾋｭｰｽﾞ下位ﾊﾞｲﾄ(FLB)を読むには以下の手続
きに従ってください。
1. Zﾎﾟｲﾝﾀに$0000を格納してください。
2. SPMCSRでRFLBとSPMENﾋﾞｯﾄを設定(1)してください。
3. 3ｸﾛｯｸ周期内にLPM命令を実行してください。
4. LPM転送先ﾚｼﾞｽﾀからFLB値を読んでください。
成功なら、転送先ﾚｼﾞｽﾀの内容は次のとおりです。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

FLB7

FLB6

FLB5

FLB4

FLB3

FLB2

FLB1

FLB0

ﾋｭｰｽﾞ下位ﾊﾞｲﾄの配置と詳細記述については98頁の表20-5.を参照してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

94

ﾋｭｰｽﾞ上位ﾊﾞｲﾄ(FHB)を読むには単にZﾎﾟｲﾝﾀ内のｱﾄﾞﾚｽを$0003に置き換え、前の手続きを繰り返してください。成功なら、転送先ﾚｼﾞｽﾀの内容は次のとおりです。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

FLB7

FLB6

FLB5

FLB4

FLB3

FLB2

FLB1

FLB0

ﾋｭｰｽﾞ上位ﾊﾞｲﾄの配置と詳細記述については98頁の表20-4.を参照してください。
ﾋｭｰｽﾞ拡張ﾊﾞｲﾄ(FEB)を読むにはZﾎﾟｲﾝﾀ内のｱﾄﾞﾚｽを$0002に置き換え、直前の手続きを繰り返してください。成功なら、転送先ﾚｼﾞｽ
ﾀの内容は次のとおりです。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

-

-

-

-

-

-

-

FHB0

ﾋｭｰｽﾞ拡張ﾊﾞｲﾄの配置と詳細記述については98頁の表20-3.を参照してください。

19.6.3. ﾌｧｰﾑｳｪｱからのﾃﾞﾊﾞｲｽ識票銘刻読み出し
ﾃﾞﾊﾞｲｽ識票銘刻部の内容を読むには以下の手続きに従ってください。
1. Zﾎﾟｲﾝﾀに銘刻指示子を格納してください。
2. SPMCSRでﾃﾞﾊﾞｲｽ識票銘刻読み込み(RSIG)とSPM操作許可(SPMEN)ﾋﾞｯﾄを設定(1)してください。
3. 3ｸﾛｯｸ周期内にLPM命令を実行してください。
4. SPMENﾋﾞｯﾄが解除(0)されるために3ｸﾛｯｸ周期待機してください。
5. LPM転送先ﾚｼﾞｽﾀから表ﾃﾞｰﾀ値を読んでください。
RSIGとSPMENのﾋﾞｯﾄは3 CPU周期後に自動解除(0)されます。RSIGとSPMENが解除されると、LPM命令は「命令要約」の説明で記述されるように動きます。
以下のﾌﾟﾛｸﾞﾗﾑ例をご覧ください。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
DSIT_read: LDI
LDI
LDI
OUT
LPM
RET

ZH,0
ZL,1
R17,(1<<RSIG)|(1<<SPMEN)
SPMCSR,R16
R16,Z;表指示子上位ﾊﾞｲﾄ値設定;表指示子下位ﾊﾞｲﾄ値設定;RSIG,SPMEN=1値取得;RSIG,SPMEN=1設定;$0001位置の識票値取得;呼び出し元へ復帰

注: 4頁の「ｺｰﾄﾞ例」をご覧ください。
成功なら、転送先ﾚｼﾞｽﾀの内容は99頁の「ﾃﾞﾊﾞｲｽ識票銘刻部」項で記述されたとおりです。

19.7. ﾌﾗｯｼｭ ﾒﾓﾘ ﾃﾞｰﾀ化けの防止
低VCCの期間中、CPUとﾌﾗｯｼｭ ﾒﾓﾘの正しい動作に対して供給電圧が低すぎるためにﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾑが不正にされ得ます。
これらの問題はﾌﾗｯｼｭ ﾒﾓﾘを使う基板段階の装置と同じで、同じ設計上の解決策が適用されるべきです。
ﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾑ化けは電圧が低すぎる時の2つの状態によって起こされます。1つ目としてﾌﾗｯｼｭ ﾒﾓﾘへの通常の書き込み手
順は正しく動作するための最低電圧が必要です。2つ目として供給電圧が低すぎると、CPU自身が命令を間違って実行し得ます。
ﾌﾗｯｼｭ ﾒﾓﾘ化けは次の推奨設計によって容易に避けられます(1つは必須)。
・ 不十分な供給電源電圧の期間中、AVR RESETを活性(Low)に保ってください。これは動作電圧が検出電圧と一致するなら、内部低電圧検出器(BOD)を許可することによって行えます。そうでなければ外部低VCCﾘｾｯﾄ保護回路が使えます。書き込み操作進
行中にﾘｾｯﾄが起こると、その書き込み動作は供給電源電圧が充分であれば完了されます。
・ 低VCCの期間中、AVRｺｱをﾊﾟﾜｰﾀﾞｳﾝ休止動作に保ってください。これはCPUが命令の復号と実行を試みるのを防ぎ、SPMCSR
従ってﾌﾗｯｼｭ ﾒﾓﾘを予期せぬ書き込みから効果的に保護します。

19.8. SPM命令使用時のﾌﾗｯｼｭ ﾒﾓﾘ用ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)時間
校正された内蔵RC発振器がﾌﾗｯｼｭ ﾒﾓﾘ ｱｸｾｽ時間に使われます。表19-1.はCPUからのﾌﾗｯｼｭ ﾒﾓﾘ ｱｸｾｽに対する代表的なﾌﾟﾛｸﾞ
ﾗﾐﾝｸﾞ時間を示します。
表19-1. SPM命令によるﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間
項目
SPM命令によるﾌﾗｯｼｭ書き込み (ﾍﾟｰｼﾞ消去、ﾍﾟｰｼﾞ書き込み、施錠ﾋﾞｯﾄ書き込み)
注: 最小と最大の時間は(項目の)個別操作毎に対してです。

最小
3.7ms

最大
4.5ms

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]95

19.9. 自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾚｼﾞｽﾀ
19.9.1. SPMCSR - SPM命令制御/状態ﾚｼﾞｽﾀ (Store Program Memory Control and Status Register)
このﾚｼﾞｽﾀはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ操作を制御するために必要とする制御ﾋﾞｯﾄを含みます。
ﾋﾞｯﾄ$37 ($57)
Read/Write
初期値

7

6

5

4

3

2

1

0

-

-

RSIG

CTPB

RFLB

PGWRT

PGERS

SPMEN

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

SPMCSR● ﾋﾞｯﾄ7,6 - Res : 予約 (Reserved Bits)

これらのﾋﾞｯﾄは予約されており、常に0として読まれます。
● ﾋﾞｯﾄ5 - RSIG : ﾃﾞﾊﾞｲｽ識票銘刻読み込み (Read Device Signature Imprint Table)

SPMCSRでRSIGとSPMENが設定(1)された後の3ｸﾛｯｸ周期内のLPM命令実行はﾃﾞﾊﾞｲｽ識票銘刻部から(Zﾎﾟｲﾝﾀ値に依存する)選択
したﾃﾞｰﾀを転送先ﾚｼﾞｽﾀ内に返します。詳細については99頁の「ﾃﾞﾊﾞｲｽ識票銘刻部」をご覧ください。
● ﾋﾞｯﾄ4 - CTPB : ﾍﾟｰｼﾞ一時緩衝部消去 (Clear Temporary Page Buffer)ﾍﾟｰｼﾞ一時緩衝部を満たしている間にCTPBﾋﾞｯﾄが1を書かれると、ﾍﾟｰｼﾞ一時緩衝部は消去され、ﾃﾞｰﾀが失われます。
● ﾋﾞｯﾄ3 - RFLB : ﾋｭｰｽﾞ/施錠ﾋﾞｯﾄ読み込み (Read Fuse and Lock Bits)

SPMCSRでRFLBとSPMENが設定(1)された後の3ｸﾛｯｸ周期内のLPM命令は(ZﾎﾟｲﾝﾀのZ0に依存して)ﾋｭｰｽﾞ ﾋﾞｯﾄまたは施錠ﾋﾞｯﾄのどちらかを転送先ﾚｼﾞｽﾀに読みます。詳細については94頁の「ｿﾌﾄｳｪｱからのﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出し」をご覧ください。
● ﾋﾞｯﾄ2 - PGWRT : ﾍﾟｰｼﾞ書き込み (Page Write)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令は一時緩衝部に格納したﾃﾞｰﾀでﾍﾟｰｼﾞ書き込みを実行します。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽはZﾎﾟｲﾝﾀの上位部から取得されます。R1とR0のﾃﾞｰﾀは無視されます。PGWRTﾋﾞｯﾄはﾍﾟｰｼﾞ書き込みの完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。ﾍﾟｰｼﾞ全体の書き込み動作中に、CPUは停止されます。
● ﾋﾞｯﾄ1 - PGERS : ﾍﾟｰｼﾞ消去 (Page Erase)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令はﾍﾟｰｼﾞ消去を実行します。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽはZﾎﾟｲ ﾝﾀの上位部から取得されます。R1とR0のﾃﾞｰﾀは無視されます。PGERSﾋﾞｯﾄはﾍﾟｰｼﾞ消去の完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。ﾍﾟｰｼﾞ全体の消去中、CPUは停止されます。
● ﾋﾞｯﾄ0 - SPMEN : SPM操作許可 (Store Program Memory Enable)

このﾋﾞｯﾄは次の4ｸﾛｯｸ周期間、SPM命令を許可します。このﾋﾞｯﾄがRSIG,CTPB,RFLB,PGWRT,PGERSのどれかと共に1に設定されると、別のところで記述されるように続くSPM命令は特別な意味を持ちます。
SPMENだけが書かれると、続くSPM命令はZﾎﾟｲﾝﾀによってｱﾄﾞﾚｽ指定したﾍﾟｰｼﾞ一時緩衝部へR1:R0の値を格納します。Zﾚｼﾞｽﾀの最下位ﾋﾞｯﾄは無視されます。SPMENﾋﾞｯﾄはSPM命令の完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み中、SPMENﾋﾞｯﾄはその動作が完了されるまで1に留まります。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

96

20. ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
本項はATtiny25/45/85のﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞに対する各種方法を記述します。

20.1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ
ATtiny25/45/85は、非ﾌﾟﾛｸﾞﾗﾑ(1)のままか、表20-2.で一覧される付加機能を得るためにﾌﾟﾛｸﾞﾗﾑ(0)できる2つの施錠ﾋﾞｯﾄを提供します。この施錠ﾋﾞｯﾄはﾁｯﾌﾟ消去指令でのみ1に消去できます。
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘは例え施錠ﾋﾞｯﾄが設定されていても、ﾃﾞﾊﾞｯｸﾞWIRE許可(DWEN)ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されていると、ﾃﾞﾊﾞｯｸﾞWIREｲﾝﾀｰ
ﾌｪｰｽ経由で読み出せます。従って施錠ﾋﾞｯﾄ保護が必要とされる場合、(DWENﾋｭｰｽﾞの解除(=1))によってﾃﾞﾊﾞｯｸﾞWIREが常に禁止されるべきです。
表20-1. 施錠ﾋﾞｯﾄ ﾊﾞｲﾄの内容
ﾋﾞｯﾄ番号
名称
意味
7
6
5
4
3
2
LB2
1
ﾌﾗｯｼｭとEEPROMﾒﾓﾘに対する一般保護用施錠ﾋﾞｯﾄ
LB10
注: 0はﾌﾟﾛｸﾞﾗﾑ、1は非ﾌﾟﾛｸﾞﾗﾑを意味します。

既定値 (注)1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)

表21-2. 施錠ﾋﾞｯﾄの保護種別
ﾒﾓﾘ施錠ﾋﾞｯﾄ
LB2
LB 種別
LB1
1
1
1

保護種別
直列、並列、またはﾃﾞﾊﾞｯｸﾞWIRE経由ﾌﾟﾛｸﾞﾗﾐﾝｸﾞに対する保護
ﾒﾓﾘ施錠機能は機能しません。
ﾌﾗｯｼｭ、EEPROMの更なるﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)が禁止されます。ﾋｭｰｽﾞ ﾋﾞｯﾄが固定され
2
1
0ます。 (注1)
ﾌﾗｯｼｭ、EEPROMの更なるﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)と照合(読み出し)が禁止されます。ﾋｭｰｽﾞ
300ﾋﾞｯﾄが固定されます。 (注1)
注: 0はﾌﾟﾛｸﾞﾗﾑ、1は非ﾌﾟﾛｸﾞﾗﾑを意味します。
注1: 施錠ﾋﾞｯﾄを書く前にﾋｭｰｽﾞ ﾋﾞｯﾄを書いてください。ﾃﾞﾊﾞｯｸﾞWIREは全面的に禁止されます。
施錠ﾋﾞｯﾄはﾃﾞﾊﾞｲｽ ﾌｧｰﾑｳｪｱによって読むこともできます。94頁の「ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票のﾃﾞｰﾀ読み出し」項をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]97

20.2. ﾋｭｰｽﾞ ﾋﾞｯﾄ
ATtiny25/45/85には表20-3.～5.で記述されるように3つのﾋｭｰｽﾞ ﾊﾞｲﾄがあります。ﾋｭｰｽﾞはﾌﾟﾛｸﾞﾗﾑされると、論理0として読まれることに注意してください。
表20-3. 拡張ﾋｭｰｽﾞ ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
7～1
SELFPRGEN (注1)0
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ機能許可。
注1: SPM命令許可。93頁の「ﾌﾗｯｼｭ ﾒﾓﾘの自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」をご覧ください。

既定値
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ) 自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ不許可表20-4. ﾋｭｰｽﾞ上位ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
既定値
RSTDISBL(注1,2)
7
PB5がI/OﾋﾟﾝかまたはRESETﾋﾟﾝかを選択します。
1 (非ﾌﾟﾛｸﾞﾗﾑ) PB5はRESETﾋﾟﾝDWEN (注1,2,3)
6
ﾃﾞﾊﾞｯｸﾞWIRE機能許可。
1 (非ﾌﾟﾛｸﾞﾗﾑ) ﾃﾞﾊﾞｯｸﾞWIRE不許可
SPIEN (注4)5低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可。
0 (ﾌﾟﾛｸﾞﾗﾑ) 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可
WDTON (注5)4
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ常時有効。
1 (非ﾌﾟﾛｸﾞﾗﾑ) WDTはWDTCRで許可
EESAVE3
ﾁｯﾌﾟ消去からEEPROM内容を保護。
1 (非ﾌﾟﾛｸﾞﾗﾑ) EEPROMは未保護
BODLEVEL2
2
1 (非ﾌﾟﾛｸﾞﾗﾑ)
BODLEVEL1
1
低電圧検出(BOD)ﾘｾｯﾄの制御と検出電圧選択。 (注6) 1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
BODLEVEL00
注1: RESETﾋﾟﾝの使用法を制御します。39頁の「ﾎﾟｰﾄBの交換機能」をご覧ください。
注2: これらのﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されてしまった後、ﾃﾞﾊﾞｲｽは高電圧直列動作でだけﾌﾟﾛｸﾞﾗﾐﾝｸﾞできます。
注3: 施錠ﾋﾞｯﾄ保護が必要とされるとき、非ﾌﾟﾛｸﾞﾗﾑ(1)にされなければなりません。前頁の「ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ」をご覧ください。
注4: このﾋｭｰｽﾞは低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞでｱｸｾｽできません。
注5: 詳細については31頁の「WDTCR - ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ」をご覧ください。
注6: 111頁の「BODLEVELﾋｭｰｽﾞ符号化」表をご覧ください。
表20-5. ﾋｭｰｽﾞ下位ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
既定値
CKDIV8 (注1)7ｼｽﾃﾑ ｸﾛｯｸ 8分周選択。
0 (ﾌﾟﾛｸﾞﾗﾑ) 8分周
CKOUT (注2)6ｼｽﾃﾑ ｸﾛｯｸ出力許可。
1 (非ﾌﾟﾛｸﾞﾗﾑ) 不許可
SUT1
51 (非ﾌﾟﾛｸﾞﾗﾑ)
起動時間選択。
(注3)0 (ﾌﾟﾛｸﾞﾗﾑ)
SUT0
4
CKSEL330 (ﾌﾟﾛｸﾞﾗﾑ)CKSEL220 (ﾌﾟﾛｸﾞﾗﾑ)
ｸﾛｯｸ種別選択。
(注4)
1 (非ﾌﾟﾛｸﾞﾗﾑ)CKSEL1
1
CKSEL000 (ﾌﾟﾛｸﾞﾗﾑ)
注1: 詳細については20頁の「ｼｽﾃﾑ ｸﾛｯｸ前置分周器」をご覧ください。
注2: (PB0)ﾋﾟﾝに出力することをｼｽﾃﾑ ｸﾛｯｸに許します。詳細については20頁の「ｸﾛｯｸ出力緩衝部」をご覧ください。
注3: 既定値は既定ｸﾛｯｸ元に対する最大起動時間を与えます。詳細については18頁の表6-7.をご覧ください。
注4: 既定設定は8MHz校正付き内蔵RC発振器を選択します。詳細については18頁の表6-6.をご覧ください。
施錠ﾋﾞｯﾄ1(LB1)がﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾋｭｰｽﾞ ﾋﾞｯﾄが固定されることに注意してください。施錠ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾑ(0)する前にﾋｭｰｽﾞ ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)してください。ﾋｭｰｽﾞ ﾋﾞｯﾄの状態はﾁｯﾌﾟ消去によって影響されません。
ﾋｭｰｽﾞ ﾋﾞｯﾄはﾃﾞﾊﾞｲｽ ﾌｧｰﾑｳｪｱによって読むこともできます。94頁の「ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票のﾃﾞｰﾀ読み出し」項をご覧ください。

20.2.1. ﾋｭｰｽﾞのﾗｯﾁ
ﾋｭｰｽﾞ値はﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作へ移行する時にﾗｯﾁされ、ﾋｭｰｽﾞ値への変更はﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を去るまで無効です。
これは一旦ﾌﾟﾛｸﾞﾗﾑ(0)されると直ぐに効果があるEESAVEﾋｭｰｽﾞには適用されません。ﾋｭｰｽﾞは電源投入でもﾗｯﾁされます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]9820.3. ﾃﾞﾊﾞｲｽ識票銘刻部
ﾃﾞﾊﾞｲｽ識票銘刻部はﾃﾞﾊﾞｲｽ識票、発振器校正ﾃﾞｰﾀのような一連の各種ﾃﾞﾊﾞｲｽ情報に使われる専用のﾒﾓﾘ領域です。表20-6.で略述されるようにこのﾒﾓﾘ領域の殆どは内部使用に予約されています。
表20-6. ﾃﾞﾊﾞｲｽ識票銘刻内容
ｱﾄﾞﾚｽ
上位ﾊﾞｲﾄ$00
識票ﾊﾞｲﾄ0 (注1)$01
8.0MHzでの校正付き内蔵RC発振器用校正ﾃﾞｰﾀ (注2)$02
識票ﾊﾞｲﾄ1 (注1)$03
6.4MHzでの校正付き内蔵RC発振器用校正ﾃﾞｰﾀ (注2)
$04
識票ﾊﾞｲﾄ2 (注1)$05～$2A(内部使用予約)
注1: より多くの情報については「識票ﾊﾞｲﾄ」をご覧ください。
注2: より多くの情報については「校正値ﾊﾞｲﾄ」をご覧ください。

20.3.1. 識票ﾊﾞｲﾄ
全てのAtmelﾏｲｸﾛ ｺﾝﾄﾛｰﾗはﾃﾞﾊﾞｲｽを識別する3ﾊﾞｲﾄの識票符号を持ちます。この符号は低電圧直列と高電圧直列の両ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作で、またﾃﾞﾊﾞｲｽが施錠されていても読めます。
識票ﾊﾞｲﾄはﾃﾞﾊﾞｲｽ ﾌｧｰﾑｳｪｱによって読むこともできます。94頁の「ｿﾌﾄｳｪｱからの施錠、ﾋｭｰｽﾞと識票のﾃﾞｰﾀ読み出し」項をご覧ください。
この3ﾊﾞｲﾄの識票ﾊﾞｲﾄはﾃﾞﾊﾞｲｽ識票銘刻部と呼ばれる分離された空間に存在します。
ATtiny25/45/85用の識票ﾊﾞｲﾄは表20-7.で与えられます。

表20-7. ﾃﾞﾊﾞｲｽの識別番号(ID)
識票ﾊﾞｲﾄ ｱﾄﾞﾚｽ
部品番号$0000 $0001 $0002
ATtiny25
$1E
$91
$08
ATtiny45
$1E
$92
$06
ATtiny85
$1E
$93
$0B

20.3.2. 校正ﾊﾞｲﾄ
表20-6.で示されるようにATtiny25/45/85のﾃﾞﾊﾞｲｽ識票銘刻部は内蔵RC発振器用に2ﾊﾞｲﾄの校正値を含みます。標準動作ではﾘｾｯ
ﾄ中に8.0MHz動作用の校正ﾃﾞｰﾀが自動的に取得されて発振校正(OSCCAL)ﾚｼﾞｽﾀに書かれます。ATtiny15互換動作では6.4MHz
動作用の校正ﾃﾞｰﾀが代わりに使われます。この手順は内蔵発振器が常に正しい周波数に校正されるのを保証します。
校正ﾊﾞｲﾄはﾃﾞﾊﾞｲｽ ﾌｧｰﾑｳｪｱによって読むこともできます。94頁の「ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票のﾃﾞｰﾀ読み出し」項をご覧ください。

20.4. ﾍﾟｰｼﾞ容量

表20-8. ﾌﾗｯｼｭ ﾒﾓﾘのﾍﾟｰｼﾞ数とﾍﾟｰｼﾞの語数
ﾃﾞﾊﾞｲｽ
全容量
ﾍﾟｰｼﾞ容量
1Kﾜｰﾄﾞ(2Kﾊﾞｲﾄ)
ATtiny25
16ﾜｰﾄﾞ
ATtiny45
32ﾜｰﾄﾞ
2Kﾜｰﾄﾞ(4Kﾊﾞｲﾄ)
ATtiny85
32ﾜｰﾄﾞ
4Kﾜｰﾄﾞ(8Kﾊﾞｲﾄ)

PCWORD
PC3～0
PC4～0
PC4～0

ﾍﾟｰｼﾞ数
64
64
128

PCPAGE
PC9～4
PC10～5
PC11～5

PCMSB
9
10
11

表20-9. EEPROMﾒﾓﾘのﾍﾟｰｼﾞ数とﾍﾟｰｼﾞの語数
ﾃﾞﾊﾞｲｽ
全容量
ﾍﾟｰｼﾞ容量
ATtiny25
4ﾊﾞｲﾄ
128ﾊﾞｲﾄ
ATtiny45
4ﾊﾞｲﾄ
256ﾊﾞｲﾄ
ATtiny85
4ﾊﾞｲﾄ
512ﾊﾞｲﾄPCWORD
EEA1～0EEA1～0EEA1～0ﾍﾟｰｼﾞ数
32
64
128

PCPAGE
EEA6～2
EEA7～2
EEA8～2EEAMSB
6
7
8

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]99

20.5. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
ﾌﾗｯｼｭとEEPROMの両ﾒﾓﾘ配列はRESETがGNDに引かれている間に直列
SPIﾊﾞｽを使ってﾌﾟﾛｸﾞﾗﾐﾝｸﾞできます。この直列ｲﾝﾀｰﾌｪｰｽはSCK入力、
MOSI入力、MISO出力から成ります。右をご覧ください。
RESETがLowに設定された後、書き込み/消去操作が実行され得るのに先立ってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令が初めに実行されることを必要とします。

図20-1. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ構成図

表20-10. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾋﾟﾝ配置
入出力
信号名
ﾋﾟﾝ名
PB0
入力
MOSI
出力
MISO
PB1
SCK
PB2
入力

ｸﾛｯｸ元
機能
直列ﾃﾞｰﾀ入力
直列ﾃﾞｰﾀ出力
直列ｸﾛｯｸ

1.8～5.5V
PB5/RESET VCC

(GND)

(注1)

PB3/XTAL1 PB2
PB1
PB0
GND

SCK
MISO
MOSI

注1: ﾃﾞﾊﾞｲｽが内蔵発振器で動作する場合、CLKI
ﾋﾟﾝにｸﾛｯｸ元を接続する必要はありません。

注: 上の表20-10.でSPIﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用のﾋﾟﾝ配置が一覧されます。全てのﾃﾞﾊﾞｲｽが内部SPIｲﾝﾀｰﾌｪｰｽに対する専用SPIﾋﾟﾝを使うとは限りません。
EEPROMをﾌﾟﾛｸﾞﾗﾐﾝｸﾞする時に自動消去周期が自動書き込み動作内に組み入れられ(低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞのみ)、ﾁｯﾌﾟ消去命令
を先に実行する必要がありません。ﾁｯﾌﾟ消去操作はﾌﾟﾛｸﾞﾗﾑ(ﾌﾗｯｼｭ ﾒﾓﾘ)とEEPROM両方の全ﾒﾓﾘ位置の内容を$FFにします。
CKSELﾋｭｰｽﾞに依存して有効なｸﾛｯｸが存在しなければなりません。直列ｸﾛｯｸ(SCK)入力のLowとHighの区間の最小値は次のように定義されます。

fCK＜12MHz : Low区間＞2CPUｸﾛｯｸ周期
fCK≧12MHz : Low区間＞3CPUｸﾛｯｸ周期

fCK＜12MHz : High区間＞2CPUｸﾛｯｸ周期
fCK≧12MHz : High区間＞3CPUｸﾛｯｸ周期

20.5.1. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順
ATtiny25/45/85に直列ﾃﾞｰﾀを書く時にﾃﾞｰﾀはSCKの上昇端で行われ、ATtiny25/45/85から読む時にﾃﾞｰﾀはSCKの下降端で行われます。ﾀｲﾐﾝｸﾞの詳細については図21-4.と図21-5.をご覧ください。
低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作でのATtiny25/45/85のﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合は次の手順が推奨されます(形式は表20-12.命令一式参照)。
1. 電源投入手順: RESETとSCKがLow(0)に設定されている間にVCCとGND間へ電源を印加します。
・ いくつかのｼｽﾃﾑで電源投入中、SCKがLowに保持されるのを書き込み器が保証できません。この場合、SCKがLow(0)に設定されてしまった後、RESETは正ﾊﾟﾙｽを与えられなければなりません。ﾊﾟﾙｽの幅は最低tRST+2CPUｸﾛｯｸ周期でなければなりま
せん。RESETﾋﾟﾝの最小ﾊﾟﾙｽ幅(tRST)の定義については110頁の表21-4.をご覧ください。
2. 最低20ms待ち、MOSIﾋﾟﾝにﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令を送ることによって直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞを許可してください。
3. 通信が同期を外していると、直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令は動作しません。同期していると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令の第3ﾊﾞｲﾄ送出時に第2ﾊﾞｲﾄ($53)が戻ります。この戻りが正しいかどうかによらず、命令の4ﾊﾞｲﾄ全てが送信されなければなりません。$53が戻らない場
合、RESETに正ﾊﾟﾙｽを与え、新規ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令を行ってください。
4. ﾌﾗｯｼｭ ﾒﾓﾘは1ﾍﾟｰｼﾞ単位で書かれます。ﾍﾟｰｼﾞ容量は99頁の表20-8.で得られます。このﾒﾓﾘ ﾍﾟｰｼﾞはﾍﾟｰｼﾞ設定命令と共にｱﾄﾞﾚｽの下位4/5/5+1ﾋﾞｯﾄとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄづつ設定されます。ﾍﾟｰｼﾞが正しく設定されるのを保証するため、与えられたｱﾄﾞﾚｽにﾃﾞｰﾀ上位ﾊﾞｲﾄが適用される前にﾃﾞｰﾀ下位ﾊﾞｲﾄが設定されなければなりません。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘのﾍﾟｰｼﾞはｱﾄﾞﾚｽの上位6/6/7ﾋﾞｯﾄを含むﾍﾟｰｼﾞ書き込み命令の設定によって(ﾌﾗｯｼｭ ﾒﾓﾘに)格納されます。ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場
合、使用者は次のﾍﾟｰｼﾞを行う前に最低t WD_FLASH(表20-11.参照)待たなければなりません。ﾌﾗｯｼｭ書き込み操作完了前の(ﾎﾟｰﾘﾝｸﾞ以外の)直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ｲﾝﾀｰﾌｪｰｽでのｱｸｾｽは不正な書き込み結果になり得ます。
5. EEPROMはﾍﾟｰｼﾞ単位かﾊﾞｲﾄ単位のどちらかでﾌﾟﾛｸﾞﾗﾐﾝｸﾞできます。
ﾊﾞｲﾄ単位: EEPROMは適切なEEPROM書き込み命令と共にｱﾄﾞﾚｽとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄ単位で書かれます。EEP
ROMのﾒﾓﾘ位置は新規ﾃﾞｰﾀが書かれるのに先立って始めで自動的に消去されます。ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場合、次のﾊﾞｲﾄを行う前に最低tWD_EEPROM(表20-11.参照)待たなければなりません。
ﾍﾟｰｼﾞ単位: EEPROMの1ﾍﾟｰｼﾞはEEPROMﾍﾟｰｼﾞ設定命令と共にｱﾄﾞﾚｽの下位2ﾋﾞｯﾄとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄづつ設定されます。EEPROMﾍﾟｰｼﾞはｱﾄﾞﾚｽの上位5/6/7ﾋﾞｯﾄを含むEEPROMﾍﾟｰｼﾞ書き込み命令によって(EEPROMに)格納されます。
EEPROMﾍﾟｰｼﾞ ｱｸｾｽ使用時、EEPROMﾍﾟｰｼﾞ設定命令で設定したﾊﾞｲﾄ位置だけが変更されます。残りの位置は無変化で留まります。ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場合、次のﾍﾟｰｼﾞ(表20-9.参照)を行う前に最低tWD_EEPROM(表20-11.参照)待たなければなりません。ﾁｯﾌﾟ消去されたﾃﾞﾊﾞｲｽでの$FFﾃﾞｰﾀは書かれる必要がありません。
6. どのﾒﾓﾘ位置も選択したｱﾄﾞﾚｽの内容を直列出力MISOに読み戻す読み出し命令を使うことによって照合できます。
7. ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ作業終了時、RESETは通常動作を開始するため、High(1)に設定できます。
8. 電源OFF手順 (必要とされるならば)・ RESETをHigh(1)に設定します。
・ VCC電源をOFFにします。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]100表20-11. ﾋｭｰｽﾞ,ﾌﾗｯｼｭ,EEPROM次位置書き込み前の待機時間
備考
ｼﾝﾎﾞﾙ
最低待機時間
4.5ms
ﾋｭｰｽﾞ書き込みtWD_FUSE
4.5ms
ﾌﾗｯｼｭ ﾒﾓﾘ書き込み
tWD_FLASH
4.0ms
EEPROM書き込み
tWD_EEPROM
ﾁｯﾌﾟ消去9.0ms
tWD_ERASE

20.5.2. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
表20-12.と次頁の図20-2.は命令一式を記述します。
表20-12. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
命令

第1ﾊﾞｲﾄ
$AC
$AC
$F0

命令形式
第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄ
$53
$00
$80
$00
$00
$00

第4ﾊﾞｲﾄ
$00
$00
状態値

備考

ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可
ﾁｯﾌﾟ消去多忙/準備可検査
最下位ﾋﾞｯﾄが多忙ﾌﾗｸﾞ。
設定系命令
拡張ｱﾄﾞﾚｽ設定 (注1)
$4D
$00
拡張ｱﾄﾞﾚｽ$00
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ内上位ﾊﾞｲﾄ設定$48
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位 上位ﾊﾞｲﾄ
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ内下位ﾊﾞｲﾄ設定$40
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位 下位ﾊﾞｲﾄ
EEPROMﾍﾟｰｼﾞ内ﾊﾞｲﾄ設定$C1$00ﾍﾟｰｼﾞ内位置
ﾊﾞｲﾄ
注:ﾍﾟｰｼﾞ内指示以外のﾋﾞｯﾄは0。
読み出し命令ﾌﾗｯｼｭ ﾒﾓﾘ上位ﾊﾞｲﾄ読み出し$28
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位 上位ﾊﾞｲﾄ
ﾌﾗｯｼｭ ﾒﾓﾘ下位ﾊﾞｲﾄ読み出し$20
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位 下位ﾊﾞｲﾄ
EEPROM読み出し$A0
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ
施錠ﾋﾞｯﾄ読み出し
$58
$00
$00
施錠ﾋﾞｯﾄ値
識票ﾊﾞｲﾄ読み出し
$30
$00
ｱﾄﾞﾚｽ
識票ﾊﾞｲﾄﾋｭｰｽﾞ下位読み出し
$50
$00
$00
ﾋｭｰｽﾞ下位
ﾋｭｰｽﾞ上位読み出し
$58
$08
$00
ﾋｭｰｽﾞ上位
拡張ﾋｭｰｽﾞ読み出し
$50
$08
$00
拡張ﾋｭｰｽﾞ
校正ﾊﾞｲﾄ読み出し
$38
$00
$00
校正ﾊﾞｲﾄ
書き込み命令 (注2)ﾌﾗｯｼｭ ﾍﾟｰｼﾞ書き込み$4C
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位$00
EEPROMﾊﾞｲﾄ書き込み$C0
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ
EEPROMﾍﾟｰｼﾞ書き込み$C2
ｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位$00
注:ﾍﾟｰｼﾞ指示以外のｱﾄﾞﾚｽ ﾋﾞｯﾄは0。
施錠ﾋﾞｯﾄ書き込み
$AC
$E0
$00
施錠ﾋﾞｯﾄ値
ﾋｭｰｽﾞ下位書き込み
$AC
$A0
$00
ﾋｭｰｽﾞ下位
ﾋｭｰｽﾞ上位書き込み
$AC
$A8
$00
ﾋｭｰｽﾞ上位
拡張ﾋｭｰｽﾞ書き込み
$AC
$A4
$00
拡張ﾋｭｰｽﾞ
注1 : 全命令が全ﾃﾞﾊﾞｲｽで利用可能な訳ではありません。
注2 : ﾌﾟﾛｸﾞﾗﾑ用ﾒﾓﾘにｱｸｾｽする命令は語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽを使います。このｱﾄﾞﾚｽはﾍﾟｰｼﾞ範囲内で乱順にできます。
注: ・ 施錠ﾋﾞｯﾄとﾋｭｰｽﾞ値はﾌﾟﾛｸﾞﾗﾑが0、非ﾌﾟﾛｸﾞﾗﾑが1です。将来との互換性のため、未使用のﾋｭｰｽﾞと施錠ﾋﾞｯﾄは非ﾌﾟﾛｸﾞﾗﾑ(1)にすべきです。
・ ﾋｭｰｽﾞ、施錠ﾋﾞｯﾄ、識票ﾊﾞｲﾄ、校正ﾊﾞｲﾄ、ﾍﾟｰｼﾞ容量については対応項を参照してください。
・ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞと書き込み器に関する応用記述については http://www.atmel.com/avr をご覧ください。
・ 第4ﾊﾞｲﾄの赤背景はﾎｽﾄ読み込み(ﾃﾞﾊﾞｲｽ出力)を示します。
多忙/準備可検査ﾊﾞｲﾄ ﾃﾞｰﾀ出力のLSBが1なら、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ操作が未だ保留(動作中)です。次の命令が実行される前に本ﾋﾞｯﾄが0に戻るまで待ってください。
同じﾍﾟｰｼﾞ内で、下位ﾊﾞｲﾄ ﾃﾞｰﾀは上位ﾊﾞｲﾄ ﾃﾞｰﾀに先行して格納されなければなりません。
ﾃﾞｰﾀがﾍﾟｰｼﾞ緩衝部に格納された後にEEPROMﾍﾟｰｼﾞをﾌﾟﾛｸﾞﾗﾑしてください。次頁の図20-2.をご覧ください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]101

図20-2. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令例
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ(上位/下位)ﾊﾞｲﾄ設定
またはEEPROMﾍﾟｰｼﾞ設定
第1ﾊﾞｲﾄ

第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位

ﾋﾞｯﾄ 15

ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
命令

ﾌﾗｯｼｭ ﾒﾓﾘ ﾍﾟｰｼﾞ書き込み
またはEEPROMﾍﾟｰｼﾞ書き込み

第4ﾊﾞｲﾄ

第1ﾊﾞｲﾄ0

第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位

ﾋﾞｯﾄ 15

第4ﾊﾞｲﾄ0ﾍﾟｰｼﾞ番号ﾍﾟｰｼﾞ内ｱﾄﾞﾚｽ(ｵﾌｾｯﾄ)ﾍﾟｰｼﾞ 0ﾍﾟｰｼﾞ 1
ﾍﾟｰｼﾞ緩衝部

ﾍﾟｰｼﾞ 2

ﾍﾟｰｼﾞ n-1
ﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ
またはEEPROM(訳補) ﾌﾗｯｼｭ ﾒﾓﾘ、EEPROM、ﾍﾟｰｼﾞ緩衝部内のｱﾄﾞﾚｽ(位置)指定に使われるﾋﾞｯﾄはﾒﾓﾘ容量とﾍﾟｰｼﾞ構成に依存します。ATtiny25/45/85でのこれらの指定方法は次表で要約されます。
表20-A. ｱﾄﾞﾚｽ(第2,3ﾊﾞｲﾄ)指定法
命令
第2ﾊﾞｲﾄ
拡張ｱﾄﾞﾚｽ設定
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ内ﾊﾞｲﾄ設定
EEPROMﾍﾟｰｼﾞ内ﾊﾞｲﾄ設定
ﾌﾗｯｼｭ ﾒﾓﾘ読み出し

EEPROM読み出し

ﾌﾗｯｼｭ ﾍﾟｰｼﾞ書き込み

EEPROMﾊﾞｲﾄ書き込み

EEPROMﾍﾟｰｼﾞ書き込み

第3ﾊﾞｲﾄ0000 LLLL
000L LLLL
0000 0000 0000 00LL
0000 00HH
0000 0HHH LLLL LLLL
0000 HHHH
0000 0000 0LLL LLLL
0000 0000 LLLL LLLL
0000 000H LLLL LLLL
0000 00HH LLLL 0000
0000 0HHH LLL0 0000
0000 HHHH LLL0 0000
0000 0000 0LLL LLLL
0000 0000 LLLL LLLL
0000 000H LLLL LLLL
0000 0000 0LLL LL00
0000 0000 LLLL LL00
0000 000H LLLL LL00
0000 0000

備考
該当命令なしATtiny25
ATtiny45/85
ATtiny25/45/85
ATtiny25
ATtiny45
ATtiny85
ATtiny25
ATtiny45
ATtiny85
ATtiny25
ATtiny45
ATtiny85: L=PC3～0: L=PC4～0: L=EEA1～0: H=PC9～8,L=PC7～0: H=PC10～8,L=PC7～0: H=PC11～8,L=PC7～0: L=EEA6～0: L=EEA7～0: H=EEA8,L=EEA7～0: H=PC9～8,L=PC7～4: H=PC10～8,L=PC7～5: H=PC11～8,L=PC7～5

ATtiny25
ATtiny45
ATtiny85
ATtiny25
ATtiny45
ATtiny85: L=EEA6～0: L=EEA7～0: H=EEA8,L=EEA7～0: L=EEA6～2: L=EEA7～2: H=EEA8,L=EEA7～2

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]102

20.6. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
本項はATtiny25/45/85でのﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ、ﾃﾞｰﾀ用EEPROM、施錠ﾋﾞｯﾄ、ﾋｭｰｽﾞ ﾋﾞｯﾄのﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合の方法を記述します。
図20-3. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ構成図
表20-13. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾋﾟﾝ配置
信号名 ﾋﾟﾝ名 入出力
機能
PB0
SDI
入力 直列ﾃﾞｰﾀ入力
PB1
SII
入力 直列命令入力
SDO
PB2
出力 直列ﾃﾞｰﾀ出力
SCI
PB3
入力 直列ｸﾛｯｸ入力 (最小周期=220ns)

11.5～12.5V
直列
ｸﾛｯｸ
入力

4.5～5.5V

RESET/PB5 VCC
CLKI/PB3
GND

PB2
PB1
PB0

直列ﾃﾞｰﾀ出力
直列命令入力直列ﾃﾞｰﾀ入力

高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ間中の直列ｸﾛｯｸ入力(SCI)に対する最小周期は220nsです。
表20-14. ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作移行に使用するﾋﾟﾝ値
ﾋﾟﾝ(信号)名ｼﾝﾎﾞﾙ
SDI
Prog_enable[0]SII
Prog_enable[1]SDO
Prog_enable[2]

値
0
0
0

20.7. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順
高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作でのATtiny25/45/85のﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合は次の手順が推奨されます(命令形式は表20-16.参照)。

20.7.1. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行
次に示す方法がﾃﾞﾊﾞｲｽを高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作にします。
1. VCCとRESETﾋﾟﾝを0V、表20-14.で一覧されるProg_enableﾋﾟﾝを全てLow(0)に設定します。
2. VCCとGND間に4.5～5.5Vを印加します。20µs以内にVCCが最低1.8Vに達することを保証してください。
3. RESETに11.5～12.5Vを印加し、20～60µs待ちます。
4. Prog_enable識別がﾗｯﾁされてしまうのを確実にするため、高電圧が印加されてしまった後、最低10µs、Prog_enableﾋﾟﾝを無変化に保ちます。
5. Prog_enable[2]/SDOﾋﾟﾝでの駆動衝突を避けるため、Prog_enable[2]/SDOﾋﾟﾝを開放します。
6. SDI/SIIで如何なる直列命令を与える前に少なくとも300µs間待ちます。
7. ﾃﾞﾊﾞｲｽの電源を落とすか、RESETﾋﾟﾝを0Vに持ってくることによってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を抜けます。
VCCの上昇時間が上で示した必要条件を完全に満たせない場合、次の代替手順が使えます。
1. VCCとRESETﾋﾟﾝを0V、表20-14.で一覧されるProg_enableﾋﾟﾝを全てLow(0)に設定します。
2. VCCとGND間に4.5～5.5Vを印加します。
3. VCCを監視し、0.9～1.1Vに達したら直ぐ、REESTに11.5～12.5Vを印加します。
4. Prog_enable識別がﾗｯﾁされてしまうのを確実にするため、高電圧が印加されてしまった後、最低10µs、Prog_enableﾋﾟﾝを無変化に保ちます。
5. Prog_enable[2]/SDOﾋﾟﾝでの駆動衝突を避けるため、Prog_enable[2]/SDOﾋﾟﾝを開放します。
6. SDI/SIIで如何なる直列命令を与える前に、VCCが実際に4.5～5.5Vに達するまで待ちます。
7. ﾃﾞﾊﾞｲｽの電源を落とすか、RESETﾋﾟﾝを0Vに持ってくることによってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を抜けます。
表20-15. 高電圧ﾘｾｯﾄ特性
供給電圧 (VCC)
RESETﾋﾟﾝ高電圧閾値電圧 (VHVRST)
4.5V
11.5V
5.5V
11.5V

ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可識別ﾗｯﾁに対する最小高電圧時間 (tHVRST)
100ns
100ns

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]103

20.7.2. 効率的なﾌﾟﾛｸﾞﾗﾐﾝｸﾞへの考慮
設定した命令とｱﾄﾞﾚｽはﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中、ﾃﾞﾊﾞｲｽ内で維持されます。効率的なﾌﾟﾛｸﾞﾗﾐﾝｸﾞを行うために次が考慮されるべきです。
・ 複数のﾒﾓﾘ領域を読み書きする時に命令設定は一度だけ必要です。
・ ﾁｯﾌﾟ消去後のﾌﾗｯｼｭ ﾒﾓﾘと(EESAVEﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されている場合を除き)EEPROM全体の内容は$FFなので、値が$FFのﾃﾞｰﾀ書き込みを飛ばします。
・ ｱﾄﾞﾚｽ上位ﾊﾞｲﾄはﾌﾗｯｼｭ ﾒﾓﾘで新規256語(ﾜｰﾄﾞ)枠、EEPROMで新規256ﾊﾞｲﾄ枠の読み書き前に一度だけ必要です。この考慮
は識票ﾊﾞｲﾄ読み出しにも適用されます。

20.7.3. ﾁｯﾌﾟ消去
ﾁｯﾌﾟ消去はﾌﾗｯｼｭ ﾒﾓﾘ、EEPROM(注1)、施錠ﾋﾞｯﾄを消去します。施錠ﾋﾞｯﾄはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘが完全に消去されてしまうまでﾘｾｯﾄ(消去)
されません。ﾋｭｰｽﾞ ﾋﾞｯﾄは変更されません。ﾁｯﾌﾟ消去はﾌﾗｯｼｭ ﾒﾓﾘやEEPROMが再書き込みされる前に実行されなければなりません。
注1: EESAVEﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されていると、EEPROMはﾁｯﾌﾟ消去中、保護されます。
1. ﾁｯﾌﾟ消去命令を設定します(表20-16.をご覧ください)。
2. ﾁｯﾌﾟ消去終了に対してSDOがHighになるまで待ちます。
3. 無操作命令を設定します。

20.7.4. ﾌﾗｯｼｭ ﾒﾓﾘ書き込み
ﾌﾗｯｼｭ ﾒﾓﾘはﾍﾟｰｼﾞで構成されます(99頁の表20-8.参照)。ﾌﾗｯｼｭ ﾒﾓﾘへ書く時にﾌﾟﾛｸﾞﾗﾑ ﾃﾞｰﾀはﾍﾟｰｼﾞ緩衝部にﾗｯﾁされます。これは同時に書かれることをﾌﾟﾛｸﾞﾗﾑ ﾃﾞｰﾀの1ﾍﾟｰｼﾞに許します。次の手順は完全なﾌﾗｯｼｭ ﾒﾓﾘの書き込み方法を記述します。
1. ﾌﾗｯｼｭ書き込み移行命令を設定します(表20-16.をご覧ください)。
2. ﾌﾗｯｼｭ ﾒﾓﾘ ﾍﾟｰｼﾞ緩衝部を設定します。
3. ﾌﾗｯｼｭ ﾒﾓﾘ上位ｱﾄﾞﾚｽ設定とﾌﾗｯｼｭ ﾍﾟｰｼﾞ書き込み命令を設定します。第3命令ﾊﾞｲﾄ後、ﾍﾟｰｼﾞ書き込み終了に対してSDOがhighになるまで待ちます。
4. ﾌﾗｯｼｭ ﾒﾓﾘ全体または全ﾃﾞｰﾀが書かれてしまうまで②～③を繰り返します。
5. 無操作命令の設定によってﾌﾗｯｼｭ ﾍﾟｰｼﾞ書き込みを終えます。
ATtiny25/45/85との直列ﾃﾞｰﾀ読み書き時、ﾃﾞｰﾀは直列ｸﾛｯｸの上昇端でｸﾛｯｸ駆動(取得/出力変更)されます。詳細については図20-5.、図21-6.、表21-12.をご覧ください。

～

図20-4. ﾍﾟｰｼﾞで構成されたﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
PCMSB
PAGEMSB
ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ
PCPAGEPCWORDﾌﾗｯｼｭ ﾒﾓﾘ内のﾍﾟｰｼﾞ ｱﾄﾞﾚｽﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽ
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ
ﾍﾟｰｼﾞ
PCWORD (PAGEMSB～0)
$00
ﾍﾟｰｼﾞ
命令語(ﾜｰﾄﾞ)$01$02

PAGEEND
注: PCPAGEとPCWORDは99頁の表20-8.で一覧されます。
図20-5. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾊﾞｲﾄ通信波形
直列ﾃﾞｰﾀ入力(SDI/PB0)

MSB

LSB

直列命令入力(SII/PB1)

MSB

LSB

直列ﾃﾞｰﾀ出力(SDO/PB2)

MSB

直列ｸﾛｯｸ入力(SCI/PB3)

0

LSB
1

2

3

4

5

6

7

8

9

10

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]104

20.7.5. EEPROM書き込み
EEPROMはﾍﾟｰｼﾞで構成されます(99頁の表20-9.参照)。EEPROMを書く時にﾃﾞｰﾀはﾍﾟｰｼﾞ緩衝部にﾗｯﾁされます。これは同時に書かれることをﾃﾞｰﾀの1ﾍﾟｰｼﾞに許します。ﾃﾞｰﾀ用EEPROMﾒﾓﾘの書き込み方法は次のとおりです。(表20-16.参照)
1. EEPROM書き込み移行命令を設定します。
2. EEPROMﾍﾟｰｼﾞ緩衝部を設定します。
3. EEPROMﾍﾟｰｼﾞ書き込み命令を設定します。第2命令ﾊﾞｲﾄ後、ﾍﾟｰｼﾞ書き込み終了に対してSDOがhighになるまで待ちます。
4. EEPROM全体または全ﾃﾞｰﾀが書かれてしまうまで②～③を繰り返します。
5. 無操作命令の設定によってEEPROMﾍﾟｰｼﾞ書き込みを終えます。

20.7.6. ﾌﾗｯｼｭ ﾒﾓﾘ読み出し
ﾌﾗｯｼｭ ﾒﾓﾘの読み出し方法は次のとおりです。(表20-16.参照)
1. ﾌﾗｯｼｭ読み出し移行命令を設定します。
2. ﾌﾗｯｼｭの上下ﾊﾞｲﾄを読み出します。選択したｱﾄﾞﾚｽの内容はSDO直列出力で利用可能です。

20.7.7. EEPROM読み出し
EEPROMの読み出し方法は次のとおりです。(表20-16.参照)
1. EEPROM読み出し移行命令を設定します。
2. EEPROMのﾊﾞｲﾄを読み出します。選択したｱﾄﾞﾚｽの内容はSDO直列出力で利用可能です。

20.7.8. ﾋｭｰｽﾞと施錠ﾋﾞｯﾄの読み出し/書き込み
ﾋｭｰｽﾞ上位/下位と施錠ﾋﾞｯﾄの読み出し/書き込み方法は表20-16.で示されます。

20.7.9. 識票ﾊﾞｲﾄと校正ﾊﾞｲﾄの読み出し
識票ﾊﾞｲﾄと校正ﾊﾞｲﾄの読み出し方法は表20-16.で示されます。

20.7.10. 電源OFF手順
SCIを0に設定します。RESETを1に設定します。VCC電源をOFFにします。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]105表20-16. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
命令
ﾁｯﾌﾟ消去ﾌﾗｯｼｭ ﾒﾓﾘ
書き込み移行
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ
緩衝部設定
ﾌﾗｯｼｭ ﾒﾓﾘ
上位ｱﾄﾞﾚｽ設定
ﾍﾟｰｼﾞ書き込み
ﾌﾗｯｼｭ ﾒﾓﾘ
読み出し移行
ﾌﾗｯｼｭ ﾒﾓﾘ
上下ﾊﾞｲﾄ
読み出し
EEPROM
書き込み移行EEPROMﾍﾟｰｼﾞ
緩衝部設定
EEPROM
ﾍﾟｰｼﾞ書き込み
EEPROM
ﾊﾞｲﾄ書き込み
EEPROM
読み出し移行EEPROM
ﾊﾞｲﾄ読み出しﾋｭｰｽﾞ下位
書き込み
ﾋｭｰｽﾞ上位
書き込み
拡張ﾋｭｰｽﾞ
書き込み
施錠ﾋﾞｯﾄ書き込み
ﾋｭｰｽﾞ下位
読み出し
ﾋｭｰｽﾞ上位
読み出し
拡張ﾋｭｰｽﾞ
読み出し
施錠ﾋﾞｯﾄ
読み出し

命令形式
備考
第1ﾊﾞｲﾄ
第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄ
第4ﾊﾞｲﾄ
第5ﾊﾞｲﾄ
第6ﾊﾞｲﾄ
SDI 0 1000 0000 00 0 0000 0000 00 0 0000 0000 00
SII 0 0100 1100 00 0 0110 0100 00 0 0110 1100 00
第3ﾊﾞｲﾄ後SDO=Highまで待機。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx
SDI 0 0001 0000 00
SII 0 0100 1100 00
ﾌﾗｯｼｭ ﾒﾓﾘ書き込み処理移行。
SDO x xxxx xxxx xx
SDI 0 AAAA AAAA 00 0 LLLL LLLL 00 0 HHHH HHHH 00 0 0000 0000 00 0 0000 0000 00
必要数分第1～5ﾊﾞｲﾄ
SII 0 0000 1100 00 0 0010 1100 00 0 0011 1100 00 0 0111 1101 00 0 0111 1100 00
繰り返し。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx
A=下位ｱﾄﾞﾚｽ(注1)
SDI 0 0000 000U 00 0 0000 0000 00 0 0000 0000 00
第3ﾊﾞｲﾄ後SDO=Highまで待機。 H=上位ﾃﾞｰﾀ
SII 0 0001 1100 00 0 0110 0100 00 0 0110 1100 00
U=上位ｱﾄﾞﾚｽ
L=下位ﾃﾞｰﾀ
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx
SDI 0 0000 0010 00
SII 0 0100 1100 00
ﾌﾗｯｼｭ ﾒﾓﾘ読み出し処理移行。
SDO x xxxx xxxx xx
SDI 0 AAAA AAAA 00 0 0000 000U 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00
SII 0 0000 1100 00 0 0001 1100 00 0 0110 1000 00 0 0110 1100 00 0 0111 1000 00 0 0111 1100 00
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx L LLLL LLLx xx x xxxx xxxx xx H HHHH HHHx xx
SDI 0 0001 0001 00
EEPROM書き 第1,3～6ﾊﾞｲﾄを繰り返し。新規256ﾊﾞｲﾄ ﾍﾟｰｼﾞ時はSII 0 0100 1100 00
第2ﾊﾞｲﾄも繰り返し。
込み処理移行 A=下位ｱﾄﾞﾚｽ(注1), H=上位ﾃﾞｰﾀ, L=下位ﾃﾞｰﾀ
SDO x xxxx xxxx xx
SDI 0 00AA AAAA 00 0 UUUU UUUU 00 0 LLLL LLLL 00 0 0000 0000 00 0 0000 0000 00
必要数分第1～5ﾊﾞｲﾄ
SII 0 0000 1100 00 0 0001 1100 00 0 0010 1100 00 0 0110 1101 00 0 0110 1100 00
繰り返し。(注2)
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx
U=上位ｱﾄﾞﾚｽ,SDI 0 0000 0000 00 0 0000 0000 00
第2ﾊﾞｲﾄ後
A=下位ｱﾄﾞﾚｽ,
SII 0 0110 0100 00 0 0110 1100 00
SDO=High
L=ﾃﾞｰﾀまで待機。
SDO x xxxx xxxx xx x xxxx xxxx xx
SDI 0 00AA AAAA 00 0 UUUU UUUU 00 0 LLLL LLLL 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00
SII 0 0000 1100 00 0 0001 1100 00 0 0010 1100 00 0 0110 1101 00 0 0110 0100 00 0 0110 1100 00
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx
SDI 0 0000 0011 00
EEPROM読み 第6ﾊﾞｲﾄ後SDO=Highまで待機。
SII 0 0100 1100 00
必要数分第1～6ﾊﾞｲﾄ繰り返し。(注2) (注3)
出し処理移行。 A=下位ｱﾄﾞﾚｽ, U=上位ｱﾄﾞﾚｽ, L=ﾃﾞｰﾀ
SDO x xxxx xxxx xx
SDI 0 00AA AAAA 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00
SII 0 0000 1100 00 0 0001 1100 00 0 0110 1000 00 0 0110 1100 00 必要数分第1～4ﾊﾞｲﾄ繰り返し。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx L LLLL LLLx xx
SDI 0 0100 0000 00 0 7654 3210 00 0 0000 0000 00 0 0000 0000 00 第4ﾊﾞｲﾄ後SDO=Highまで待機。
SII 0 0100 1100 00 0 0010 1100 00 0 0110 0100 00 0 0110 1100 00 7～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx (98頁の表20-5.参照)
SDI 0 0100 0000 00 0 7654 3210 00 0 0000 0000 00 0 0000 0000 00 第4ﾊﾞｲﾄ後SDO=Highまで待機。
SII 0 0100 1100 00 0 0010 1100 00 0 0111 0100 00 0 0111 1100 00 7～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx (98頁の表20-4.参照)
SDI 0 0100 0000 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00 第4ﾊﾞｲﾄ後SDO=Highまで待機。
SII 0 0100 1100 00 0 0010 1100 00 0 0110 0110 00 0 0110 1110 00 0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx (98頁の表20-3.参照)
SDI 0 0010 0000 00 0 0000 0010 00 0 0000 0000 00 0 0000 0000 00 第4ﾊﾞｲﾄ後SDO=Highまで待機。
SII 0 0100 1100 00 0 0010 1100 00 0 0110 0100 00 0 0110 1100 00 1～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx (97頁の表20-1.参照)
SDI 0 0000 0100 00 0 0000 0000 00 0 0000 0000 00
7～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SII 0 0100 1100 00 0 0110 1000 00 0 0110 1100 00(98頁の表20-5.参照)
SDO x xxxx xxxx xx x xxxx xxxx xx 7 6543 210x xx
SDI 0 0000 0100 00 0 0000 0000 00 0 0000 0000 00
7～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SII 0 0100 1100 00 0 0111 1010 00 0 0111 1110 00(98頁の表20-4.参照)
SDO x xxxx xxxx xx x xxxx xxxx xx 7 6543 210x xx
SDI 0 0000 0100 00 0 0000 0000 00 0 0000 0000 00
0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SII 0 0100 1100 00 0 0110 1010 00 0 0110 1110 00(98頁の表20-3.参照)
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xx0x xx
SDI 0 0000 0100 00 0 0000 0000 00 0 0000 0000 00
1～0はﾋﾞｯﾄ位置で論理0でﾌﾟﾛｸﾞﾗﾑ。
SII 0 0100 1100 00 0 0111 1000 00 0 0111 1100 00(97頁の表20-1.参照)
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx x10x xx

次頁へ続く
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]106

表20-16 (続き). 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
命令
識票ﾊﾞｲﾄ
読み出し
校正ﾊﾞｲﾄ
読み出し
無操作

命令形式
第1ﾊﾞｲﾄ
第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄ
第4ﾊﾞｲﾄ
第5ﾊﾞｲﾄ
第6ﾊﾞｲﾄ
SDI 0 0000 1000 00 0 0000 00AA 00 0 0000 0000 00 0 0000 0000 00
A=ｱﾄﾞﾚｽ
SII 0 0100 1100 00 0 0000 1100 00 0 0110 1000 00 0 0110 1100 00
7～0はﾋﾞｯﾄ位置。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx 7 6543 210x xx
SDI 0 0000 1000 00 0 0000 0000 00 0 0000 0000 00 0 0000 0000 00
SII 0 0100 1100 00 0 0000 1100 00 0 0111 1000 00 0 0111 1100 00 7～0はﾋﾞｯﾄ位置。
SDO x xxxx xxxx xx x xxxx xxxx xx x xxxx xxxx xx 7 6543 210x xx
SDI 0 0000 0000 00
SII 0 0100 1100 00
ｱｲﾄﾞﾙ状態に復帰。
SDO x xxxx xxxx xx

備考

注1: 256語(ﾜｰﾄﾞ)よりも少ないﾍﾟｰｼﾞ容量に関する上位余剰ﾋﾞｯﾄはﾍﾟｰｼﾞ ｱﾄﾞﾚｽ部です。
注2: 256ﾊﾞｲﾄよりも少ないﾍﾟｰｼﾞ容量に関する上位余剰ﾋﾞｯﾄはﾍﾟｰｼﾞ ｱﾄﾞﾚｽ部です。
注3: EEPROMはﾍﾟｰｼﾞ単位で書かれます。しかし、ﾍﾟｰｼﾞ内に設定されたﾊﾞｲﾄだけが実際にEEPROMへ書かれます。複数ﾊﾞｲﾄが同じﾍﾟｰｼﾞに書かれるべきなら、ﾍﾟｰｼﾞ単位EEPROMｱｸｾｽはより効果的です。EEPROMの自動消去はSPI(低電圧)直列ﾌﾟﾛｸﾞ
ﾗﾐﾝｸﾞだけで、高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞで利用できないことに注意してください。
注4: 上位(ﾍﾟｰｼﾞ)ｱﾄﾞﾚｽの有効ﾋﾞｯﾄはATtiny25/45/85で各々異なります(99頁の「ﾍﾟｰｼﾞ容量」と102頁の図20-2.参照)。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]107

21. 電気的特性
21.1. 絶対最大定格 (警告)
動作温度 ・・・・・・・・・・・・・・・・・・・・・・・・ -55℃ ～ +125℃
保存温度 ・・・・・・・・・・・・・・・・・・・・・・・・ -65℃ ～ +150℃
RESETを除くﾋﾟﾝ許容電圧 ・・・・・・・・ -0.5V ～ VCC+0.5V
RESETﾋﾟﾝ許容電圧 ・・・・・・・・・・・・・・・・ -0.5V ～ +13.0V
最大動作電圧 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6.0V
入出力ﾋﾟﾝ出力電流 ・・・・・・・・・・・・・・・・・・・・・・・・ 40.0mA
消費電流 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 200.0mA(警告)

絶対最大定格を超える負担はﾃﾞﾊﾞｲｽに定常的な損傷を与えます。
絶対最大定格は負担の定格を示すためだけのもので、この値または、この仕様書の動作特性で示された値を超える条件で動作することを示すものではありません。長時間の最大定格での使用はﾃﾞﾊﾞ
ｲｽの信頼性を損なう場合があります。

21.2. DC特性
表21-1. DC特性 TA=-40℃～85℃
ｼﾝﾎﾞﾙ
項目
VIL

Lowﾚﾍﾞﾙ入力電圧(XTAL1,RESETを除く)

VIL1
VIL2

Lowﾚﾍﾞﾙ入力電圧 (XTAL1)
Lowﾚﾍﾞﾙ入力電圧 (RESET)

VIL3

Lowﾚﾍﾞﾙ入力電圧(I/OとしてのRESET)

VIH

Highﾚﾍﾞﾙ入力電圧(XTAL1,RESETを除く)

VIH1 Highﾚﾍﾞﾙ入力電圧 (XTAL1)
VIH2 Highﾚﾍﾞﾙ入力電圧 (RESET)VOL

Highﾚﾍﾞﾙ入力電圧(I/OとしてのRESET)
Lﾚﾍﾞﾙ出力電圧(RESET(注6)を除く)

VOH

Hﾚﾍﾞﾙ出力電圧(RESET(注6)を除く)

IIL
IIH
RRST
RPU

I/OﾋﾞﾝLowﾚﾍﾞﾙ入力漏れ電流
I/OﾋﾞﾝHighﾚﾍﾞﾙ入力漏れ電流
RESETﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗
I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗

VIH3

活動動作消費電流
ICC

ｱｲﾄﾞﾙ動作消費電流

ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流

条件
VCC=1.8～2.4V
VCC=2.4～5.5V
VCC=1.8～5.5V
VCC=1.8～5.5V
VCC=1.8～2.4V
VCC=2.4～5.5V
VCC=1.8～2.4V
VCC=2.4～5.5V
VCC=1.8～2.4V
VCC=2.4～5.5V
VCC=1.8～5.5V
VCC=1.8～2.4V
VCC=2.4～5.5V
IOL=10mA, VCC=5V(注4)
IOL=5mA, VCC=3V
IOH=-10mA, VCC=5V(注5)
IOH=-5mA, VCC=3V

最小
-0.5
-0.5
-0.5
-0.5
-0.5
-0.5
0.7VCC (注3)
0.6VCC (注3)
0.8VCC (注3)
0.7VCC (注3)
0.9VCC (注3)
0.7VCC (注3)
0.6VCC (注3)

最大0.2VCC (注2)
0.3VCC (注2)
0.1VCC (注2)
0.2VCC (注2)
0.2VCC (注2)
0.3VCC (注2)
VCC+0.5
VCC+0.5
VCC+0.5
VCC+0.5
VCC+0.5
VCC+0.5
VCC+0.5
0.6
0.5

単位

V

4.3
2.5
<0.05
<0.05

VCC=5.5V
確実なH/L範囲
VCC=5.5V, Low入力
VCC=5.5V, Low入力
VCC=2V, 1MHz
(注7) VCC=3V, 4MHz
VCC=5V, 8MHz
VCC=2V, 1MHz
(注7) VCC=3V, 4MHz
VCC=5V, 8MHz
VCC=3V, WDT有効(注8)
VCC=3V, WDT禁止

代表 (注1)

30
20
0.3
1.5
5
0.1
0.35
1.2

1
1
60
50
0.55
2.5
8
0.2
0.6
2
10
2

µA
kΩ

mA

µA

注1: 25℃での代表値です。
注2: Lowﾚﾍﾞﾙの認識が保証される最高電圧です。
注3: Highﾚﾍﾞﾙの認識が保証される最低電圧です。
(注4)～(注8)は次頁を参照してください。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

108

注4: 各I/Oﾎﾟｰﾄは安定状態(非過渡時)に於いて検査条件(VCC=5Vで10mA、VCC=3Vで5mA)よりも多くの吸い込み電流を流すことができますが、 次の条件を厳守してください。
1. 全ﾎﾟｰﾄのIOLの合計が60mAを超えるべきではありません。
IOLが検査条件を超える場合、VOLも仕様書での値を超えます。表の検査条件よりも大きな吸い込み電流を流すことは保証されません。
注5: 各I/Oﾎﾟｰﾄは安定状態(非過渡時)に於いて検査条件(VCC=5Vで10mA、VCC=3Vで5mA)よりも多くの吐き出し電流を流すことができますが、 次の条件を厳守してください。
1. 全ﾎﾟｰﾄのIOHの合計が60mAを超えるべきではありません。
IOHが検査条件を超える場合、VOHも仕様書での値を超えます。表の検査条件よりも大きな吐き出し電流を流すことは保証されません。
注6: RESETﾋﾟﾝはﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作での操作と移行時に高電圧を許容しなければならず、その結果として標準I/Oﾋﾟﾝと比べて弱い
駆動能力を持ちます。(122頁から始まる)図22-23.～26.をご覧ください。
注7: 25頁の「消費電力の最小化」で記述された方法を用いた外部ｸﾛｯｸでの値です。電力削減が許可(PRR=$FF)され、I/Oの駆動はありません。
注8: 低電圧検出器(BOD)禁止です。

21.3. 速度
最高周波数は動作電圧に依存します。図21-1.と図21-2.で示されるように最高周波数対動作電圧曲線は1.8～2.7Vと2.7～4.5V間で直線です。(訳注: 共通性から2行追加)
図21-1. ATtiny25/45/85Vの最高周波数対VCC

図21-2. ATtiny25/45/85の最高周波数対VCC

動作周波数
10MHz
4MHz

20MHz

動作周波数

10MHz
安全動作領域
1.8

2.7

4.5

VCC
5.5 (V)

安全動作領域
1.8

2.7

4.5

VCC
5.5 (V)21.4. ｸﾛｯｸ特性
21.4.1. 校正付き内蔵RC発振器精度
工場既定校正よりも高い精度に内蔵発振器を手動校正することが可能です。この発振器周波数が温度と電圧に依存することに注意
してください。電圧と温度の特性は127頁の図22-40.と128頁の図22-41.で得られます。
表21-2. 校正付き内蔵RC発振器の校正精度
校正種別
周波数
VCC
工場校正
8.0MHz (注2)
3V
6～8MHz1.8～5.5V(注3), 2.7～5.5V(注4)
使用者校正
内の固定周波数内の固定電圧
注1: 校正点での発振器周波数精度(固定温度と固定電圧)
注2: ATtiny25Vのみ : ATtiny15互換動作での6.4MHz
注3: ATtiny25V/45V/85Vに対する電圧範囲
注4: ATtiny25/45/85に対する電圧範囲

温度
25℃-40～85℃
内の固定温度

校正精度 (注1)±10%±1%21.4.2. 外部ｸﾛｯｸ信号駆動
図21-3. 外部ｸﾛｯｸ駆動波形

tCLCH
VIL1

tCHCX

tCHCL
tCLCX

VIH1

tCLCL

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]109

表21-3. 外部ｸﾛｯｸ特性
VCC=1.8～5.5V
最小
最大
0
4
1/tCLCL ｸﾛｯｸ周波数
ｸﾛｯｸ周期
250
tCLCL
Highﾚﾍﾞﾙ時間
100
tCHCX
Lowﾚﾍﾞﾙ時間
100
tCLCX
上昇時間
2.0
tCLCH
2.0
下降時間
tCHCL
隣接ｸﾛｯｸ周期間の変化率
2⊿ tCLCL
注: 詳細については17頁の「外部ｸﾛｯｸ信号」を参照してください。
ｼﾝﾎﾞﾙ

項目

VCC=2.7～5.5V
最小
最大
0
10
100
40
40
1.6
1.6
2

VCC=4.5～5.5V
最小
最大
0
20
50
20
20
0.5
0.5
2

単位
MHz
ns

µs
%

21.5. ｼｽﾃﾑとﾘｾｯﾄの特性
表21-4. ｼｽﾃﾑとﾘｾｯﾄの電気的特性
ｼﾝﾎﾞﾙ
項目
VRST
RESETﾋﾟﾝ閾値電圧tRST
RESETﾋﾟﾝでの最小ﾊﾟﾙｽ幅
VHYST
低電圧検出ﾋｽﾃﾘｼｽ電圧
tBOD
最小低電圧検出時間
VBG
基準電圧
tBG
起動時間
IBG
消費電流
注: 値は指針だけです。

条件
VCC=3V

最小
0.2VCC

1.0

VCC=5V
TA=25℃

代表
2.5
50
2
1.1
40
15

最大
0.9VCC

1.2
70

単位
V
µs
mV
µs
V
µs
µA

以下のように2つの電源ONﾘｾｯﾄ版が実装されてしまっています。

21.5.1. 標準電源ONﾘｾｯﾄ
この電源ONﾘｾｯﾄの実装はATtiny25/45/85の初期版で存在します。下表はこの電源ONﾘｾｯﾄの特性を記述し、それは以下のﾃﾞﾊﾞｲｽ
に対してだけ有効です。
・ ATtiny25 : 改訂Dとそれ以前
・ ATtiny45 : 改訂Fとそれ以前
・ ATtiny85 : 改訂Bとそれ以前
注: 改訂は外囲器上に記されます(8P3と8S2外囲器:裏面、20M1外囲器:表面)。
表21-5. 標準電源ONﾘｾｯﾄ特性 (TA=-40℃～85℃)
ｼﾝﾎﾞﾙ
項目
VPOR
電源ONﾘｾｯﾄ開放閾値電圧 (注1)
VPOA
電源ONﾘｾｯﾄ活性閾値電圧 (注2)
SRON
電源投入時上昇率

最小
0.7
0.05
0.01

代表
1.0
0.9

最大
1.4
1.3
4.5

単位
V
V/ms

注: 値は指針だけです。
注1: 電圧上昇時にﾃﾞﾊﾞｲｽがﾘｾｯﾄから開放される閾値電圧です。
注2: 供給電圧がVPOA未満でなければ電源ONﾘｾｯﾄは動作しません(電圧下降時)。

21.5.2. 強化電源ONﾘｾｯﾄ
この電源ONﾘｾｯﾄの実装はATtiny25/45/85の新版で存在します。下表はこの電源ONﾘｾｯﾄの特性を記述し、それは以下のﾃﾞﾊﾞｲｽに対してだけ有効です。
・ ATtiny25 : 改訂Eとそれ以降
・ ATtiny45 : 改訂Gとそれ以降
・ ATtiny85 : 改訂Gとそれ以降
表21-6. 強化電源ONﾘｾｯﾄ特性 (TA=-40℃～85℃)
ｼﾝﾎﾞﾙ
項目
VPOR
電源ONﾘｾｯﾄ開放閾値電圧 (注1)
VPOA
電源ONﾘｾｯﾄ活性閾値電圧 (注2)
SRON
電源投入時上昇率

最小
1.1
0.6
0.01

代表
1.4
1.3

最大
1.6
1.6

単位
V
V/ms

注: 値は指針だけです。
注1: 電圧上昇時にﾃﾞﾊﾞｲｽがﾘｾｯﾄから開放される閾値電圧です。
注2: 供給電圧がVPOA未満でなければ電源ONﾘｾｯﾄは動作しません(電圧下降時)。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]110

21.6. 低電圧検出(BOD)
表21-7. BODLEVELﾋｭｰｽﾞ符号化 (VBOT、TA=-40～85℃) (注1)
BODLEVEL2～0 最小 代表 最大 単位 注1: いくつかのﾃﾞﾊﾞｲｽでVBOTが公称最低動作電圧以下の可能性があります。この状態のﾃﾞﾊﾞｲｽについては、製造検査中、VCC=VBOTに落と
111
低電圧検出(BOD)ﾘｾｯﾄ禁止
して検査されています。これはﾏｲｸﾛ ｺﾝﾄﾛｰﾗの正しい動作がもはや保
110
1.7
1.8
2.0
証されない電圧になる前に、低電圧検出(BOD) ﾘｾｯﾄが起きることを保
101
2.5
2.7
2.9
V
証します。
100
4.1
4.3
4.5
000～011(予約)

21.7. A/D変換器特性表21-8. A/D変換特性 (TA=-40℃～85℃)
ｼﾝﾎﾞﾙ
項目
分解能

シングル エンド入力変換

絶対精度(INL,DNL,利得,ｵﾌｾｯﾄ,
量子化誤差を含む)

条件

最小

VCC=4V 変換ｸﾛｯｸ=200kHz
VREF=4V 変換ｸﾛｯｸ=1MHz

50
14
2.0
GND

1000
280
VCC
VREF
38.4

単極差動入力変換

10.0

×20

20.0

積分非直線性誤差(INL) VCC=5V(ｵﾌｾｯﾄ,利得誤差校正後) VREF=4V
変換ｸﾛｯｸ=50～200kHz
利得誤差

×1
×20
×1
×20
×1
×20

4.0
10.0
10.0
15.0
3.0
4.0

連続変換動作

50
70
2.0
GND

kHz
µs
V
kHz

10
10

×1

変換ｸﾛｯｸ周波数
変換時間
AREF 外部基準電圧
VIN 入力電圧
VDIFF 差動入力電圧差
入力周波数帯域
次頁に続く

LSB

0.5
2.5
1.5

絶対精度
(INL,DNL,利得,ｵﾌｾｯﾄ,
量子化誤差を含む)

ｵﾌｾｯﾄ(ｾﾞﾛ)誤差

単位
ﾋﾞｯﾄ

1

×1
×20

分解能

最大
10

2
3
1.5
2.5

雑音低 変換ｸﾛｯｸ=200kHz
減動作 変換ｸﾛｯｸ=1MHz

積分非直線性誤差(INL)(ｵﾌｾｯﾄ,利得誤差校正後) VCC=4V
微分非直線性誤差(DNL) VREF=4V
変換ｸﾛｯｸ=200kHz
利得誤差
ｵﾌｾｯﾄ(ｾﾞﾛ)誤差
変換ｸﾛｯｸ周波数
連続変換動作変換時間
AREF 外部基準電圧
VIN 入力電圧
入力周波数帯域

代表

ﾋﾞｯﾄ

LSB

200
280
VCC-1.0
VCC
VREF/利得
4

kHz
µs
V
kHz

(訳注) 原書の表21-8.～10.は表21-8.として統合しました。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]111

表21-8 (続き). A/D変換特性 (TA=-40℃～85℃)
ｼﾝﾎﾞﾙ
項目

条件

最小

代表

×1
×20

分解能

両極差動入力変換

絶対精度(INL,DNL,利得,ｵﾌｾｯﾄ,
量子化誤差を含む)

×1

8.0

×20

8.0

積分非直線性誤差(INL) VCC=5V(ｵﾌｾｯﾄ,利得誤差校正後) VREF=4V
変換ｸﾛｯｸ=50～200kHz
利得誤差

×1
×20
×1
×20
×1
×20

4.0
5.0
4.0
5.0
3.0
4.0

ｵﾌｾｯﾄ(ｾﾞﾛ)誤差
変換ｸﾛｯｸ周波数
変換時間
AREF 外部基準電圧
VIN 入力電圧
VDIFF 差動入力電圧差
入力周波数帯域
A/D変換出力

連続変換動作

50
70
2.0
GND

最大
10
10

単位

LSB

200
280
VCC-1.0
VCC
VREF/利得
4

共通

単極動作
両極動作

内部基準電圧
内部2.56V基準電圧 (注) VCC>3V
RREF 基準電圧入力ｲﾝﾋﾟｰﾀﾞﾝｽ
RAIN ｱﾅﾛｸﾞ入力ｲﾝﾋﾟｰﾀﾞﾝｽ
注: 値は指針の意味だけです。
VINT

0
-512
1.0
2.3

1.1
2.56
32
100

ﾋﾞｯﾄ

kHz
µs
V
kHz

1023
511
1.2
2.8

LSB
V
kΩ
MΩ

(訳注) 原書の表21-8.～10.は表21-8.として統合しました。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

112

21.8. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性
図21-4. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾊﾞｲﾄ通信波形
直列ﾃﾞｰﾀ入力(MOSI)

MSB

LSB

直列ﾃﾞｰﾀ出力(MISO)

MSB

LSB

直列ｸﾛｯｸ入力(SCK)
ﾃﾞｰﾀ入力採取位置
図21-5. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾀｲﾐﾝｸﾞ
MOSI

tOVSH

tSHOX

SCK

tSHSL

tSLSH
tSLIV

MISO
表21-11. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 (特記条件を除いて、TA=-40℃～85℃ , VCC=1.8～5.5V)
ｼﾝﾎﾞﾙ
項目
最小
代表
1.8～2.7V
0
発振器周波数
2.7～4.5V
0
1/tCLCL
4.5～5.5V0
1.8～2.7V
250
発振器周期
2.7～4.5V
100
tCLCL
4.5～5.5V
50
SCKﾊﾟﾙｽHﾚﾍﾞﾙ幅
(注1)
tSHSL
2tCLCL(注1)
SCKﾊﾟﾙｽLﾚﾍﾞﾙ幅tSLSH
2tCLCLSCK↑に対するMOSI準備時間
tOVSH
tCLCL
SCK↑に対するMOSI保持時間
tSHOX
2tCLCLSCK↓に対するMISO出力遅延時間
tSLIV

最大
4
10
20

単位
MHz

ns

100

注1: fCK＜12MHz時2tCLCL、fCK≧12MHz時3tCLCL。

21.9. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性
図21-6. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾀｲﾐﾝｸﾞ
ﾃﾞｰﾀ入力(SDI:PB0)
命令入力(SII:PB1)

tIVSH

直列ｸﾛｯｸ(SCI:PB3)

tSHIX

tSLSH

tSHSL

ﾃﾞｰﾀ出力(SDO:PB2)

tSHOV
表21-12. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 (特記条件を除いて、VCC=5.0V±10%)
ｼﾝﾎﾞﾙ
項目
最小
125
SCIﾊﾟﾙｽHﾚﾍﾞﾙ幅
tSHSL
125
SCIﾊﾟﾙｽLﾚﾍﾞﾙ幅tSLSH
50
SCI↑に対するSDI,SII準備時間
tIVSH
50
SCI↑に対するSDI,SII保持時間
tSHIX
SCI↑に対するSDO出力遅延時間
tSHOVtWLWH_PFB ﾋｭｰｽﾞ書き込み第3ﾊﾞｲﾄ後待機時間

代表

最大

単位

ns
16
2.5

ms

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]113

22. 代表特性
本項内に含まれたﾃﾞｰﾀは主に同じ製法と設計法の類似ﾃﾞﾊﾞｲｽの特徴付けとｼﾐｭﾚｰｼｮﾝに基いています。従って、このﾃﾞｰﾀはﾃﾞﾊﾞｲ
ｽがどう反応するかについての指標として扱われるべきです。
以下の図は代表的な特性を示します。これらの図は製造中に検査されていません。全ての消費電流測定は全I/Oﾋﾟﾝを入力として設定した内部ﾌﾟﾙｱｯﾌﾟ許可で行われています。電源幅振幅の方形波発振器がｸﾛｯｸ源として使われています。
ﾊﾟﾜｰﾀﾞｳﾝ動作での消費電力はｸﾛｯｸ選択と無関係です。
消費電流は動作電圧、動作周波数、I/Oﾋﾟﾝの負荷、I/Oﾋﾟﾝの切り替え速度、命令実行、周囲温度のような様々な要素の関数です。
支配的な要素は動作電圧と動作周波数です。
容量性負荷のﾋﾟﾝの引き込み電流は(1つのﾋﾟﾝに対して) CL(負荷容量)×VCC(動作電圧)×f (I/Oﾋﾟﾝの平均切り替え周波数) として推測できます。
ﾃﾞﾊﾞｲｽは検査範囲よりも高い周波数特性を示します。ﾃﾞﾊﾞｲｽは注文番号が示す周波数よりも高い周波数での機能特性を保証されません。
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ許可のﾊﾟﾜｰﾀﾞｳﾝ動作での消費電流とｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ禁止のﾊﾟﾜｰﾀﾞｳﾝ動作での消費電流間の違いは、ｳｫｯﾁﾄﾞｯｸﾞ ﾀ
ｲﾏによって引き込んだ(消費した)差電流を表します。

22.1. 活動動作消費電流
図22-1. 活動動作消費電流 対 周波数 (100kHz～1MHz)
1.2

VCC=5.5V
1

VCC=5V
VCC=4.5V

0.8

VCC=4V
消費電流
ICC (mA)

0.6

VCC=3.3V
VCC=2.7V

0.4

VCC=1.8V
0.2
0

0

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

0.7

0.8

0.9

1

図22-2. 活動動作消費電流 対 周波数 (1MHz～20MHz)
14

消費電流
ICC (mA)

VCC=5.5V

12

VCC=5V10

VCC=4.5V

8

VCC=4V6

VCC=3.3V

4

VCC=2.7V

2
0

VCC=1.8V
0

2

4

6

10
12
8
動作周波数 (MHz)

14

16

18

20

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]114

図22-3. 活動動作消費電流 対 動作電圧 (内蔵RC発振器,8MHz)
7
TA=-40℃
TA=25℃
TA=85℃

65

消費電流
ICC (mA)

4
3
2
1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-4. 活動動作消費電流 対 動作電圧 (内蔵RC発振器,CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0),1MHz)
1.6
TA=25℃
TA=85℃
TA=-40℃

1.4
1.2
1

消費電流
ICC (mA)

0.8
0.6
0.4
0.2
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-5. 活動動作消費電流 対 動作電圧 (内蔵WDT発振器,128kHz)
250
TA=-40℃
TA=25℃
TA=85℃

200
150

消費電流
ICC (µA)
100
50
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]115

22.2. ｱｲﾄﾞﾙ動作消費電流
図22-6. ｱｲﾄﾞﾙ動作消費電流 対 周波数 (100kHz～1MHz)
250

VCC=5.5V
VCC=5V200

VCC=4.5V
VCC=4V150

VCC=3.3V

消費電流
ICC (µA)

VCC=2.7V
100

VCC=1.8V

50
0

0

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

0.7

0.8

0.9

1

図22-7. ｱｲﾄﾞﾙ動作消費電流 対 周波数 (1MHz～20MHz)4
3.5

VCC=5.5V

3

VCC=5V
VCC=4.5V

2.5

消費電流
ICC (mA)

2

VCC=4V

1.5

VCC=3.3V

1

VCC=2.7V

0.5
0

0

2

4

VCC=1.8V
610128
動作周波数 (MHz)

14

16

18

20

図22-8. ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵RC発振器,8MHz)
1.8

TA=85℃
TA=25℃
TA=-40℃

1.6
1.4
1.2

消費電流
ICC (mA)

1
0.8
0.6
0.4
0.2
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

116

図22-9. ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵RC発振器,CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0),1MHz)500

TA=85℃
TA=25℃
TA=-40℃

450
400
350
300

消費電流
ICC (µA)

250
200
150
100
50
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-10. ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵WDT発振器,128kHz)
100
90

TA=-40℃
TA=25℃

80

TA=85℃

7060

消費電流
ICC (µA)

50
40
30
20
10
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

22.3. 周辺機能部供給電流
以下の表と式は活動動作とｱｲﾄﾞﾙ動作で個別周辺機能部対する追加消費電流の計算に使えます。周辺機能部の許可や禁止は電力削減ﾚｼﾞｽﾀによって制御されます。詳細については26頁の「PRR - 電力削減ﾚｼﾞｽﾀ」をご覧ください。
表22-1. 各部追加消費電流 (絶対値:µA)
PRR内ﾋﾞｯﾄ
1MHz,2V 4MHz,3V 8MHz,5V
PRTIM145300
1100
PRTIM0
5
30
110
PRUSI
5
25
100
PRADC
15
85
340

表22-2. 各部追加消費電流 (相対値:%)
PRR内ﾋﾞｯﾄ 活動動作(図22-1,図22-2) ｱｲﾄﾞﾙ動作(図22-6,図22-7)
PRTIM12080
PRTIM0
2
10
PRUSI
2
10
PRADC
5
25

表22-1.で一覧される以外のVCCと周波数設定については表22-2.からの数値を元に代表的な消費電流を計算できます。
例1: VCC=2V, f =1MHzでUSI, ﾀｲﾏ/ｶｳﾝﾀ0, A/D変換器が許可されたｱｲﾄﾞﾙ動作での予測される消費電流を計算します。表22-2.のｱｲﾄﾞﾙ動作列からUSIが10%、ﾀｲﾏ/ｶｳﾝﾀ0が10%、A/D変換器が25%追加する必要を知ります。図22-9.を読み、VCC=2V, f =1M
Hzでのｱｲﾄﾞﾙ動作消費電流が約0.18mAであることを得ます。USI, ﾀｲﾏ/ｶｳﾝﾀ0, A/D変換器許可のｱｲﾄﾞﾙ動作での総消費電流を得ます。
総消費電流＝0.18mA×(1+0.1+0.1+0.25)≒0.261mA

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]117

22.4. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流
図22-11. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 対 動作電圧 (ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ禁止)
1.4
TA=85℃

1.2
1

消費電流
ICC (µA)

0.8

TA=-40℃

0.6

TA=25℃

0.4
0.2
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-12. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 対 動作電圧 (ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ許可)
14
12
10

消費電流
ICC (µA)

TA=-40℃
TA=25℃
TA=85℃

8
6
4
2
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

1.8

2

22.5. ﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ
図22-13. I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=1.8V)
60
TA=85℃50

TA=25℃40

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IIO (µA)

TA=-40℃
30
20
10
0

0

0.2

0.4

0.6

0.8
1
1.2
入力電圧: VIO (V)

1.4

1.6

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

118

図22-14. I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=2.7V)
80
TA=25℃

70
60

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IIO (µA)

TA=85℃50

TA=-40℃

40
30
20
10
0

0

0.5

1

1.5
入力電圧: VIO (V)

2

2.5

3

4

5

6

図22-15. I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=5V)
160
TA=85℃
140
120

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IIO (µA)

TA=25℃

100

TA=-40℃

80
60
40
20
0

0

1

2

3
入力電圧: VIO (V)

図22-16. RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=1.8V)
40
TA=-40℃

35

TA=25℃30

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IRESET (µA)

25

TA=85℃

20
15
10
5
0

0

0.2

0.4

0.6

0.8
1
1.2
入力電圧: VRESET (V)

1.4

1.6

1.8

2

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

119

図22-17. RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=2.7V)
60
TA=-40℃
50

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IRESET (µA)

TA=25℃

TA=85℃

40
30
20
10
0

0

0.5

1

1.5
2
入力電圧: VRESET (V)

2.5

3

5

6

図22-18. RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=5V)
120
TA=25℃

100
80

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IRESET (µA)

TA=-40℃

60

TA=85℃

40
20
0

0

1

2

3
4
入力電圧: VRESET (V)

22.6. ﾋﾟﾝ駆動能力
図22-19. I/Oﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=3V)
1.2
1
TA=85℃

0.8

L出力電圧
VOL (V)

TA=25℃

0.6

TA=-40℃
0.4
0.2
0

0

5

10
15
吸い込み電流: IOL (mA)

20

25

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]120

図22-20. I/Oﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=5V)
0.6
TA=85℃

0.5

TA=25℃
0.4

L出力電圧
VOL (V)

TA=-40℃

0.3
0.2
0.1
0

0

5

10
15
吸い込み電流: IOL (mA)2025

図22-21. I/Oﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=3V)
3.5
3
2.5

H出力電圧
VOH (V)

TA=-40℃
TA=25℃
TA=85℃

2
1.5
1
0.5
0

0

5

10
15
吐き出し電流: IOH (mA)2025

図22-22. I/Oﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=5V)
5.1
5
4.9

H出力電圧
VOH (V)

4.8
4.7
4.6

TA=-40℃
TA=25℃

4.5
4.4

0

5

10
15
吐き出し電流: IOH (mA)

TA=85℃
20

25

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

121

図22-23. RESETﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=3V)
1.5

TA=85℃
1

L出力電圧
VOL (V)

TA=0℃
TA=-40℃
0.5

0

0

0.5

1

2.5

1.5
2
吸い込み電流: IOL (mA)3

図22-24. RESETﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=5V)
0.6
TA=85℃

0.4

TA=0℃
TA=-40℃

L出力電圧
VOL (V)
0.2

0

0

0.5

1

2.5

1.5
2
吸い込み電流: IOL (mA)3

図22-25. RESETﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=3V)
3.5
3
2.5

H出力電圧
VOH (V)2
1.5
TA=-40℃
TA=25℃
TA=85℃

1
0.5
0

0

0.5

1
吐き出し電流: IOH (mA)

1.5

2

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]122

図22-26. RESETﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=5V)
5
4.5
4

H出力電圧
VOH (V)
3.5
3
2.5

0

0.5

1
吐き出し電流: IOH (mA)

1.5

2

TA=-40℃
TA=25℃
TA=85℃

22.7. ﾋﾟﾝ 閾値とﾋｽﾃﾘｼｽ
図22-27. I/Oﾋﾟﾝ入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIH,1読み値)
3

TA=-40℃
TA=85℃
TA=25℃

2.5
2

閾値電圧
1.5
VThreshold (V)
1
0.5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-28. I/Oﾋﾟﾝ入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIL,0読み値)
3
TA=85℃
TA=25℃
TA=-40℃

2.5
2

閾値電圧
1.5
VThreshold (V)
1
0.5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]123

図22-29. I/Oﾋﾟﾝ入力ﾋｽﾃﾘｼｽ電圧 対 動作電圧
0.6
0.5
0.4

ﾋｽﾃﾘｼｽ電圧
0.3
VHysteresis (V)TA=-40℃
TA=85℃
TA=25℃

0.2
0.1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-30. RESET入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIH,1読み値)
TA=85℃
TA=25℃
TA=-40℃

2.5
2
1.5

閾値電圧
VThreshold (V)
1
0.5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-31. RESET入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIL,0読み値)
TA=85℃
TA=25℃
TA=-40℃

2.5
2
1.5

閾値電圧
VThreshold (V)
1
0.5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]124

図22-32. RESET入力ﾋｽﾃﾘｼｽ電圧 対 動作電圧
500
450
400
350
300
ﾋｽﾃﾘｼｽ電圧
250
VHysteresis (mV)
200
150
100
TA=-40℃
TA=25℃
TA=85℃
5.5

50
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)4.5

5

22.8. 低電圧検出器(BOD)閾値
図22-33. 低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧4.3V)
4.4
VCC上昇

4.38
4.36

閾値電圧 4.34
VThreshold (V)
4.32
VCC下降

4.3
4.28
4.26
-50 -40 -30 -20 -10

010 20 30 40
動作温度: TA (℃)

50

60

70

80

90

100

図22-34. 低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧2.7V)
2.8
VCC上昇

2.78
2.76

閾値電圧
2.74
VThreshold (V)
2.72
VCC下降
2.7
2.68
-50 -40 -30 -20 -10

010 20 30 40
動作温度: TA (℃)

50

60

70

80

90

100

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

125図22-35. 低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧1.8V)
1.85
1.845
1.84
1.835
1.83
閾値電圧 1.825
VThreshold (V) 1.82
1.815
1.81
1.805
1.8
1.795
-50 -40 -30 -20 -10

VCC上昇

VCC下降

0

10 20 30 40
動作温度: TA (℃)

50

60

70

80

90

100

図22-36. 内部ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧 対 動作電圧
1.2
1.18
1.16
1.14
1.12
ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧
1.1
VBG (V)
1.08

TA=85℃
TA=25℃

1.06
1.04

TA=-40℃

1.02
1
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-37. 内部ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧 対 対 動作温度
1.2
1.18
1.16
1.14
VCC=1.8V
VCC=3V
VCC=5V

1.12

ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧
1.1
VBG (V)
1.08
1.06
1.04
1.02
1
-40

-20

0

20
40
動作温度: TA (℃)

60

80

100

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

126

22.9. 内部発振器周波数
図22-38. ｳｫｯﾁﾄﾞｯｸﾞ発振器周波数 対 動作電圧128126
TA=-40℃

124
122

発振周波数
120
FRC (kHz)118

TA=25℃

116
114
112

TA=85℃
2

2.5

3

3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-39. ｳｫｯﾁﾄﾞｯｸﾞ発振器周波数 対 動作温度
120
118
116

発振周波数
114
FRC (kHz)VCC=1.8V

112
110
108
-40 -30 -20 -10

010

20 30 40 50
動作温度: TA (℃)

60

70

80

VCC=2.7V
VCC=3.3V
VCC=4V
VCC=5.5V
90 100

図22-40. 校正済み8MHz内蔵RC発振器周波数 対 動作電圧
8.2
TA=85℃

8.1
8

発振周波数
FRC (MHz)

TA=25℃

7.9
7.8

TA=-40℃

7.7
7.6
7.5
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

127

図22-41. 校正済み8MHz内蔵RC発振器周波数 対 動作温度
8.15
8.1

VCC=3V

8.05

VCC=5V8発振周波数 7.95
FRC (MHz) 7.9
7.85
7.8
7.75
7.7
-60

-40

-20

0

20
40
動作温度: TA (℃)

60

80

100

図22-42. 校正付き8MHz内蔵RC発振器周波数 対 発振校正(OSCCAL)値
16

TA=85℃
TA=25℃
TA=-40℃

14
12
10

発振周波数
FRC (MHz)

8
6
4
2
0

0

16

32

48

64

80

96 112 128 144 160 176 192 208 224 240 (256)
OSCCAL値

図22-43. 校正済み1.6MHz内蔵RC発振器周波数 対 動作電圧
1.65
TA=85℃
1.6
TA=25℃
1.55

発振周波数
FRC (MHz)

TA=-40℃
1.5
1.45
1.4
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

128

図22-44. 校正済み1.6MHz内蔵RC発振器周波数 対 動作温度
1.64

VCC=3V

1.62
1.6

発振周波数 1.58
FRC (MHz)
1.56

VCC=5V

1.54
1.52
1.5
-60

-40

-20

0

40
20
動作温度: TA (℃)

60

80

100

図22-45. 校正付き1.6MHz内蔵RC発振器周波数 対 発振校正(OSCCAL)値
4.5
TA=85℃
TA=25℃
TA=-40℃

4
3.5
3

発振周波数
FRC (MHz)

2.5
2
1.5
1
0.5
0

0

16

32

48

64

80

96 112 128 144 160 176 192 208 224 240 (256)
OSCCAL値

22.10. 周辺機能部消費電流
図22-46. 低電圧検出器(BOD)消費電流 対 動作電圧30
TA=85℃
TA=25℃
TA=-40℃

25
20

消費電流
ICC (µA)

15
10
5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

129

図22-47. A/D変換器消費電流 対 動作電圧 (AREF=AVCC)
250
TA=85℃
TA=25℃
TA=-40℃

200
150

消費電流
ICC (µA)
100
50
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-48. ｱﾅﾛｸﾞ比較器消費電流 対 動作電圧5045TA=85℃
TA=25℃
TA=-40℃

40
35
30

消費電流
ICC (µA)

25
20
15
10
5
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図22-49. ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ電流 対 動作電圧12
TA=-40℃
10
TA=25℃

8

消費電流
ICC (mA)

6

TA=85℃

4
2
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]130

22.11. ﾘｾｯﾄ消費電流とﾘｾｯﾄ ﾊﾟﾙｽ幅
図22-50. ﾘｾｯﾄ消費(供給)電流 対 周波数 (100kHz～1MHz、RESETﾌﾟﾙｱｯﾌﾟ電流を除く)
160

VCC=5.5V

140

VCC=5V120

VCC=4.5V

100

消費電流
ICC (µA)

VCC=4V80

VCC=3.3V

60

VCC=2.7V

40

VCC=1.8V

20
0

0

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

0.7

0.8

0.9

1

図22-51. ﾘｾｯﾄ消費(供給)電流 対 周波数 (1MHz～20MHz、RESETﾌﾟﾙｱｯﾌﾟ電流を除く)
2.5

VCC=5.5V
VCC=5V2

VCC=4.5V
1.5

消費電流
ICC (mA)

VCC=4V1

VCC=3.3V
0.5
0

VCC=2.7V

02

4

VCC=1.8V
681012動作周波数 (MHz)

14

16

18

20

図22-52. 最小ﾘｾｯﾄ ﾊﾟﾙｽ幅 対 動作電圧
2.5
2
1.5

ﾊﾟﾙｽ幅
tRST (µs)
1
0.5
0
1.5

TA=85℃
TA=25℃
TA=-40℃
2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

131

23. ﾚｼﾞｽﾀ要約
ｱﾄﾞﾚｽ
ﾚｼﾞｽﾀ略称
ﾋﾞｯﾄ7
ﾋﾞｯﾄ6
ﾋﾞｯﾄ5
ﾋﾞｯﾄ4
ﾋﾞｯﾄ3
ﾋﾞｯﾄ2
ﾋﾞｯﾄ1
ﾋﾞｯﾄ0
頁
$3F ($5F)
SREG
I
T
H
S
V
N
Z
C
6
$3E ($5E)
SPH
(SP8)
(SP9)
7
$3D ($5D)
SPL
SP1
SP7
SP6
SP5
SP4
SP3
SP2
SP0
$3C ($5C)
予約$3B ($5B)
GIMSK
INT0
PCIE
34
$3A ($5A)
GIFR
INTF0
PCIF
34
$39 ($59)
TIMSK
OCIE1A
OCIE1B
OCIE0A
OCIE0B
TOIE1
TOIE0
68,62,54$38 ($58)
TIFR
OCF1A
OCF1B
OCF0A
OCF0B
TOV1
TOV0
68,62,54$37 ($57)
SPMCSR
RSIG
CTPB
RFLB
PGWRT
PGERS
SPMEN
96
$36 ($56)
予約$35 ($55)
MCUCR
ISC01
BODS
PUD
SE
SM1
SM0
BODSE
ISC00
42,26,33$34 ($54)
MCUSR
WDRF
BORF
EXTRF
PORF
30
$33 ($53)
TCCR0B
CS01
FOC0A
FOC0B
WGM02
CS02
CS00
52
$32 ($52)
TCNT0
ﾀｲﾏ/ｶｳﾝﾀ053$31 ($51) OSCCAL
内蔵RC発振器 発振校正値ﾚｼﾞｽﾀ21$30 ($50)
TCCR1
CS11
CTC1
PWM1A COM1A1 COM1A0
CS13
CS12
CS10
59
$2F ($4F)
61,68
TCNT1
ﾀｲﾏ/ｶｳﾝﾀ1$2E ($4E)
OCR1A
ﾀｲﾏ/ｶｳﾝﾀ1 比較Aﾚｼﾞｽﾀ
61,68
OCR1C
ﾀｲﾏ/ｶｳﾝﾀ1 比較Cﾚｼﾞｽﾀ61,68$2D ($4D)
TSM
PWM1B COM1B1 COM1B0
FOC1A
PSR0
$2C ($4C)
GTCCR
FOC1B
PSR1
60,67,51$2B ($4B)
OCR1B
ﾀｲﾏ/ｶｳﾝﾀ1 比較Bﾚｼﾞｽﾀ61$2A ($4A) TCCR0A
WGM01
COM0A1 COM0A0 COM0B1 COM0B0
WGM00
51$29 ($49)
OCR0A
ﾀｲﾏ/ｶｳﾝﾀ0 比較Aﾚｼﾞｽﾀ53$28 ($48)
OCR0B
ﾀｲﾏ/ｶｳﾝﾀ0 比較Bﾚｼﾞｽﾀ53$27 ($47)
PLLCSR
LSM
PCKE
PLLE
PLOCK
63,69
CLKPR
CLKPS1$26 ($46)
CLKPCECLKPS3
CLKPS2
CLKPS021$25 ($45)
DT1A
DT1AL1DT1AH3 DT1AH2 DT1AH1 DT1AH0 DT1AL3
DT1AL2
DT1AL071$24 ($44)
DT1B
DT1BL1DT1BH3 DT1BH2 DT1BH1 DT1BH0
DT1BL3
DT1BL2
DT1BL071$23 ($43)
DTPS1
DTPS11
DTPS1071$22 ($42)
DWDR
ﾃﾞﾊﾞｯｸﾞWIRE ﾃﾞｰﾀ ﾚｼﾞｽﾀ92$21 ($41)
WDTCR
WDP1
31
WDIF
WDIE
WDP3
WDCE
WDE
WDP2
WDP0
$20 ($40)
PRR
PRTIM1PRTIM0
PRUSI
PRADC
26
$1F ($3F)
EEARH(EEAR8)13$1E ($3E)
EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ (EEAR6～0)
EEARL(EEAR7)$1D ($3D)
EEDR
EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ13$1C ($3C)
EECR
EEPM1
EERIE
EEPE
13
EEPM0
EEMPE
EERE
$1B ($3B)
予約$1A ($3A)
予約$19 ($39)
予約$18 ($38)
PORTB
42
PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0$17 ($37)
DDRB
DDB1
42
DDB5
DDB4
DDB3
DDB2
DDB0
$16 ($36)
PINB
PINB1
42
PINB5
PINB4
PINB3
PINB2
PINB0
$15 ($35)
PCMSK
PCINT1
34
PCINT5
PCINT4
PCINT3
PCINT2
PCINT0$14 ($34)
DIDR0
ADC0D
ADC2D
ADC3D
ADC1D
AIN1D
AIN0D
91,81
$13 ($33)
GPIOR2
汎用I/Oﾚｼﾞｽﾀ2
14$12 ($32)
GPIOR1
汎用I/Oﾚｼﾞｽﾀ1
14$11 ($31)
GPIOR0
汎用I/Oﾚｼﾞｽﾀ0
14$10 ($30)
USIBR
USI 緩衝ﾚｼﾞｽﾀ77
USIDR
USI ﾃﾞｰﾀ ﾚｼﾞｽﾀ77$0F ($2F)$0E ($2E)
USISR
USISIFUSIOIFUSIPF
USIDC
USICNT3 USICNT2 USICNT1 USICNT077$0D ($2D)
USICR
USICS1USICLKUSISIEUSIOIEUSIWM1 USIWM0
USICS0USITC
78$0C ($2C)
予約$0B ($2B)
予約$0A ($2A)
予約$09 ($29)
予約$08 ($28)
ACSR
ACIS1
81
ACD
ACBG
ACO
ACI
ACIE
ACIS0
$07 ($27)
ADMUX
MUX1
89
REFS1
REFS0
ADLAR
REFS2
MUX3
MUX2
MUX0
$06 ($26) ADCSRA
ADEN
ADSC
ADATE
ADIF
ADIE
ADPS2
ADPS1
ADPS0
90
$05 ($25)
ADCH
A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ (ADC9～8またはADC9～2)
91$04 ($24)
ADCL
A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ (ADC7～0またはADC1～0)
ADCSRB
ACME
ADTS1$03 ($23)
BIN
IPR
ADTS2
ADTS0
90,80
$02 ($22)
予約$01 ($21)
予約$00 ($20)
予約
注: ・ 将来のﾃﾞﾊﾞｲｽとの共通性のため、予約ﾋﾞｯﾄへ書く場合は0を書くべきです。予約I/Oﾒﾓﾘ ｱﾄﾞﾚｽは決して書かれるべきではありません。
・ ｱﾄﾞﾚｽ範囲$00～$1FのI/OﾚｼﾞｽﾀはCBIとSBI命令の使用で直接ｱｸｾｽ可能です。これらのﾚｼﾞｽﾀの単一ﾋﾞｯﾄはCBISとSBIS命令の使用によって検査できます。
・ いくつかの状態ﾋﾞｯﾄはそれらへ論理1を書くことによって解除(0)されます。他の多くのAVRと異なり、CBIとSBI命令は指定ﾋﾞｯﾄだけ操作し、従ってこのような状態ﾌﾗｸﾞを含むﾚｼﾞｽﾀで使えることに注意してください。CBIとSBI命令は$00～$1Fのﾚｼﾞｽﾀだけで動作します。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

132

24. 命令要約
ﾆｰﾓﾆｯｸ

ｵﾍﾟﾗﾝﾄﾞ

ADD
ADC
ADIW
SUB
SUBI
SBIW
SBC
SBCI
AND
ANDI
OR
ORI
EOR
COM
NEG
SBR
CBR
INC
DEC
TST
CLR
SER

Rd,Rr
Rd,Rr
Rd,K6
Rd,Rr
Rd,K
Rd,K6
Rd,Rr
Rd,K
Rd,Rr
Rd,K
Rd,Rr
Rd,K
Rd,Rr
Rd
Rd
Rd,K
Rd,K
Rd
Rd
Rd
Rd
Rd

RJMP
IJMP
RCALL
ICALL
RET
RETI
CPSE
CP
CPC
CPI
SBRC
SBRS
SBIC
SBIS
BRBS
BRBC
BREQ
BRNE
BRCS
BRCC
BRSH
BRLO
BRMI
BRPL
BRGE
BRLT
BRHS
BRHC
BRTS
BRTC
BRVS
BRVC
BRIE
BRID

k
k

Rd,Rr
Rd,Rr
Rd,Rr
Rd,K
Rr,b
Rr,b
P,b
P,b
s,k
s,k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k

意味

動作
算術、論理演算命令
汎用ﾚｼﾞｽﾀ間の加算
Rd ← Rd + Rr
ｷｬﾘｰを含めた汎用ﾚｼﾞｽﾀ間の加算
Rd ← Rd + Rr + C
即値の語(ﾜｰﾄﾞ)長加算
RdH:RdL ← RdH:RdL + K6
汎用ﾚｼﾞｽﾀ間の減算
Rd ← Rd - Rr
汎用ﾚｼﾞｽﾀから即値の減算
Rd ← Rd - K
即値の語(ﾜｰﾄﾞ)長減算
RdH:RdL ← RdH:RdL - K6
ｷｬﾘｰを含めた汎用ﾚｼﾞｽﾀ間の減算
Rd ← Rd - Rr - C
汎用ﾚｼﾞｽﾀからｷｬﾘｰと即値の減算
Rd ← Rd - K - C
汎用ﾚｼﾞｽﾀ間の論理積(AND)Rd ← Rd AND Rr
汎用ﾚｼﾞｽﾀと即値の論理積(AND)Rd ← Rd AND K
汎用ﾚｼﾞｽﾀ間の論理和(OR)Rd ← Rd OR Rr
汎用ﾚｼﾞｽﾀと即値の論理和(OR)Rd ← Rd OR K
汎用ﾚｼﾞｽﾀ間の排他的論理和(Ex-OR)
Rd ← Rd EOR Rr
1の補数(論理反転)
Rd ← $FF - Rd
2の補数
Rd ← $00 - Rd
汎用ﾚｼﾞｽﾀの(複数)ﾋﾞｯﾄ設定(1)
Rd ← Rd OR K
汎用ﾚｼﾞｽﾀの(複数)ﾋﾞｯﾄ解除(0)Rd ← Rd AND ($FF - K)
汎用ﾚｼﾞｽﾀの増加(+1)
Rd ← Rd + 1
汎用ﾚｼﾞｽﾀの減少(-1)
Rd ← Rd - 1
汎用ﾚｼﾞｽﾀのｾﾞﾛとﾏｲﾅｽ検査
Rd ← Rd AND Rd
汎用ﾚｼﾞｽﾀの全0設定(=$00)
Rd ← Rd EOR Rd
汎用ﾚｼﾞｽﾀの全1設定(=$FF)
Rd ← $FF
分岐命令
相対無条件分岐PC ← PC + k + 1
Zﾚｼﾞｽﾀ間接無条件分岐
PC ← Z
相対ｻﾌﾞﾙｰﾁﾝ呼び出し
STACK ← PC, PC ← PC + k + 1
Zﾚｼﾞｽﾀ間接ｻﾌﾞﾙｰﾁﾝ呼び出し
STACK ← PC, PC ← Z
ｻﾌﾞﾙｰﾁﾝからの復帰
PC ← STACK
割り込みからの復帰
PC ← STACK
汎用ﾚｼﾞｽﾀ間比較、一致でｽｷｯﾌﾟ
Rd=Rrなら, PC ← PC + 2or3
汎用ﾚｼﾞｽﾀ間の比較
Rd - Rr
ｷｬﾘｰを含めた汎用ﾚｼﾞｽﾀ間の比較
Rd - Rr - C
汎用ﾚｼﾞｽﾀと即値の比較
Rd - K
汎用ﾚｼﾞｽﾀのﾋﾞｯﾄが解除(0)でｽｷｯﾌﾟ
Rr(b)=0なら, PC ← PC + 2or3
汎用ﾚｼﾞｽﾀのﾋﾞｯﾄが設定(1)でｽｷｯﾌﾟ
Rr(b)=1なら, PC ← PC + 2or3
I/Oﾚｼﾞｽﾀのﾋﾞｯﾄが解除(0)でｽｷｯﾌﾟ
P(b)=0なら, PC ← PC + 2or3
I/Oﾚｼﾞｽﾀのﾋﾞｯﾄが設定(1)でｽｷｯﾌﾟ
P(b)=1なら, PC ← PC + 2or3
ｽﾃｰﾀｽ ﾌﾗｸﾞが設定(1)で分岐
SREG(s)=1なら, PC ← PC + K + 1
ｽﾃｰﾀｽ ﾌﾗｸﾞが解除(0)で分岐
SREG(s)=0なら, PC ← PC + K + 1
一致で分岐
Z=1なら, PC ← PC + K + 1
不一致で分岐Z=0なら, PC ← PC + K + 1
ｷｬﾘｰ ﾌﾗｸﾞが設定(1)で分岐
C=1なら, PC ← PC + K + 1
ｷｬﾘｰ ﾌﾗｸﾞが解除(0)で分岐
C=0なら, PC ← PC + K + 1
符号なしの≧で分岐
C=0なら, PC ← PC + K + 1
符号なしの＜で分岐
C=1なら, PC ← PC + K + 1-(ﾏｲﾅｽ)で分岐
N=1なら, PC ← PC + K + 1+(ﾌﾟﾗｽ)で分岐
N=0なら, PC ← PC + K + 1
符号付きの≧で分岐(N EOR V)=0なら, PC ← PC + K + 1
符号付きの＜で分岐(N EOR V)=1なら, PC ← PC + K + 1
ﾊｰﾌｷｬﾘｰ ﾌﾗｸﾞが設定(1)で分岐
H=1なら, PC ← PC + K + 1
ﾊｰﾌｷｬﾘｰ ﾌﾗｸﾞが解除(0)で分岐
H=0なら, PC ← PC + K + 1
一時ﾌﾗｸﾞが設定(1)で分岐
T=1なら, PC ← PC + K + 1
一時ﾌﾗｸﾞが解除(0)で分岐
T=0なら, PC ← PC + K + 12の補数溢れﾌﾗｸﾞが設定(1)で分岐
V=1なら, PC ← PC + K + 12の補数溢れﾌﾗｸﾞが解除(0)で分岐
V=0なら, PC ← PC + K + 1
割り込み許可で分岐
I=1なら, PC ← PC + K + 1
割り込み禁止で分岐
I=0なら, PC ← PC + K + 1

ﾌﾗｸﾞ

ｸﾛｯｸ

I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
1
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
00 01
I,T,H,S,V,N,Z,C

1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

I,T,H,S,V,N,Z,C
2
I,T,H,S,V,N,Z,C
2
I,T,H,S,V,N,Z,C
3
I,T,H,S,V,N,Z,C
3
I,T,H,S,V,N,Z,C
4
1I,T,H,S,V,N,Z,C
4
I,T,H,S,V,N,Z,C 1/2,3
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C 1/2,3
I,T,H,S,V,N,Z,C 1/2,3
I,T,H,S,V,N,Z,C 1/2,3
I,T,H,S,V,N,Z,C 1/2,3
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2
I,T,H,S,V,N,Z,C 1/2

K6, K : 6, 8ﾋﾞｯﾄ定数 P : I/Oﾚｼﾞｽﾀ
Rd, Rr : 汎用ﾚｼﾞｽﾀ(R0～R31)
X, Y, Z : X, Y, Zﾚｼﾞｽﾀb : ﾋﾞｯﾄ(0～7)
k : ｱﾄﾞﾚｽ定数(7,12,16ﾋﾞｯﾄ)q : 符号なし6ﾋﾞｯﾄ定数(変位)s : ｽﾃｰﾀｽ ﾌﾗｸﾞ(C,Z,N,V,X,H,T,I)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

133

ﾆｰﾓﾆｯｸ

ｵﾍﾟﾗﾝﾄﾞ

MOV
MOVW
LDI
LD
LD
LD
LD
LD
LD
LDD
LD
LD
LD
LDD
LDS
ST
ST
ST
ST
ST
ST
STD
ST
ST
ST
STD
STS
LPM
LPM
LPM
SPM
IN
OUT
PUSH
POP

Rd,Rr
Rd,Rr
Rd,K
Rd,X
Rd,X+
Rd,-X
Rd,Y
Rd,Y+
Rd,-Y
Rd,Y+q
Rd,Z
Rd,Z+
Rd,-Z
Rd,Z+q
Rd,k
X,Rr
X+,Rr
-X,Rr
Y,Rr
Y+,Rr
-Y,Rr
Y+q,Rr
Z,Rr
Z+,Rr
-Z,Rr
Z+q,Rr
k,Rr

SBI
CBI
LSL
LSR
ROL
ROR
ASR
SWAP
BSET
BCLR
BST
BLD
SEC
CLC
SEN
CLN
SEZ
CLZ
SEI
CLI
SES
CLS
SEV
CLV
SET
CLT
SEH
CLH

P,b
P,b
Rd
Rd
Rd
Rd
Rd
Rd
s
s
Rr,b
Rd,b

NOP
SLEEP
WDR
BREAK

Rd,Z
Rd,Z+
Rd,P
P,Rr
Rr
Rd

意味

動作
ﾃﾞｰﾀ移動命令
汎用ﾚｼﾞｽﾀ間の複写
Rd ← Rr
汎用ﾚｼﾞｽﾀ対間の複写
Rd+1:Rd ← Rr+1:Rr
即値の取得
Rd ← K
Xﾚｼﾞｽﾀ間接での取得
Rd ← (X)
事後増加付きXﾚｼﾞｽﾀ間接での取得
Rd ← (X), X ← X + 1
事前減少付きXﾚｼﾞｽﾀ間接での取得
X ← X - 1, Rd ← (X)Yﾚｼﾞｽﾀ間接での取得
Rd ← (Y)
事後増加付きYﾚｼﾞｽﾀ間接での取得
Rd ← (Y), Y ← Y + 1
事前減少付きYﾚｼﾞｽﾀ間接での取得
Y ← Y - 1, Rd ← (Y)
変位付きYﾚｼﾞｽﾀ間接での取得
Rd ← (Y + q)
Zﾚｼﾞｽﾀ間接での取得
Rd ← (Z)
事後増加付きZﾚｼﾞｽﾀ間接での取得
Rd ← (Z), Z ← Z + 1
事前減少付きZﾚｼﾞｽﾀ間接での取得
Z ← Z - 1, Rd ← (Z)
変位付きZﾚｼﾞｽﾀ間接での取得
Rd ← (Z + q)
ﾃﾞｰﾀ空間(SRAM)から直接取得
Rd ← (k)Xﾚｼﾞｽﾀ間接での設定(X) ← Rr
事後増加付きXﾚｼﾞｽﾀ間接での設定(X) ← Rr, X ← X + 1
事前減少付きXﾚｼﾞｽﾀ間接での設定
X ← X - 1, (X) ← Rr
Yﾚｼﾞｽﾀ間接での設定(Y) ← Rr
事後増加付きYﾚｼﾞｽﾀ間接での設定(Y) ← Rr, Y ← Y + 1
事前減少付きYﾚｼﾞｽﾀ間接での設定
Y ← Y - 1, (Y) ← Rr
変位付きYﾚｼﾞｽﾀ間接での設定(Y + q) ← Rr
Zﾚｼﾞｽﾀ間接での設定(Z) ← Rr
事後増加付きZﾚｼﾞｽﾀ間接での設定(Z) ← Rr, Z ← Z + 1
事前減少付きZﾚｼﾞｽﾀ間接での設定
Z ← Z - 1, (Z) ← Rr
変位付きZﾚｼﾞｽﾀ間接での設定(Z + q) ← Rr
ﾃﾞｰﾀ空間(SRAM)へ直接設定(k) ← Rr
ﾌﾟﾛｸﾞﾗﾑ領域からZﾚｼﾞｽﾀ間接での取得
R0 ← (Z)
同上 (任意のﾚｼﾞｽﾀへ)
Rd ← (Z)
同上 (事後増加付き)
Rd ← (Z), Z ← Z + 1
ﾌﾟﾛｸﾞﾗﾑ領域へZ ﾚｼﾞｽﾀ間接での設定(Z) ← R1:R0
I/Oﾚｼﾞｽﾀからの入力
Rd ← P
I/Oﾚｼﾞｽﾀへの出力
P ← Rr
汎用ﾚｼﾞｽﾀをｽﾀｯｸへ保存
STACK ← Rr
ｽﾀｯｸから汎用ﾚｼﾞｽﾀへ復帰
Rd ← STACK
ﾋﾞｯﾄ関係命令
I/Oﾚｼﾞｽﾀのﾋﾞｯﾄ設定(1)
I/O(P,b) ← 1
I/Oﾚｼﾞｽﾀのﾋﾞｯﾄ解除(0)I/O(P,b) ← 0
論理的左ﾋﾞｯﾄ移動
Rd(n+1) ← Rd(n), Rd(0) ← 0
論理的右ﾋﾞｯﾄ移動
Rd(n) ← Rd(n+1), Rd(7) ← 0
ｷｬﾘｰを含めた左回転
Rd(0) ← C, Rd(n+1) ← Rd(n), C ← Rd(7)ｷｬﾘｰを含めた右回転Rd(7) ← C, Rd(n) ← Rd(n+1), C ← Rd(0)算術的右ﾋﾞｯﾄ移動
Rd(n) ← Rd(n+1), n=0～6
ﾆﾌﾞﾙ(4ﾋﾞｯﾄ)上位/下位交換
Rd(7～4) ⇔ Rd(3～0)
ｽﾃｰﾀｽ ﾚｼﾞｽﾀのﾋﾞｯﾄ設定(1)
SREG(s) ← 1
ｽﾃｰﾀｽ ﾚｼﾞｽﾀのﾋﾞｯﾄ解除(0)SREG(s) ← 0
汎用ﾚｼﾞｽﾀのﾋﾞｯﾄを一時ﾌﾗｸﾞへ移動
T ← Rr(b)一時ﾌﾗｸﾞを汎用ﾚｼﾞｽﾀのﾋﾞｯﾄへ移動
Rd(b) ← Tｷｬﾘｰ ﾌﾗｸﾞを設定(1)C←1ｷｬﾘｰ ﾌﾗｸﾞを解除(0)C←0負ﾌﾗｸﾞを設定(1)N←1
負ﾌﾗｸﾞを解除(0)N←0ｾﾞﾛ ﾌﾗｸﾞを設定(1)Z←1ｾﾞﾛ ﾌﾗｸﾞを解除(0)Z←0
全割り込み許可I←1
全割り込み禁止I←0
符号ﾌﾗｸﾞを設定(1)S←1
符号ﾌﾗｸﾞを解除(0)S←02の補数溢れﾌﾗｸﾞを設定(1)V←12の補数溢れﾌﾗｸﾞを解除(0)V←0
一時ﾌﾗｸﾞを設定(1)T←1
一時ﾌﾗｸﾞを解除(0)T←0ﾊｰﾌｷｬﾘｰ ﾌﾗｸﾞを設定(1)H←1
ﾊｰﾌｷｬﾘｰ ﾌﾗｸﾞを解除(0)H←0MCU制御命令
無操作
休止形態開始休止形態参照ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ参照
一時停止
内蔵ﾃﾞﾊﾞｯｸﾞ機能専用

ﾌﾗｸﾞ

ｸﾛｯｸ

I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C

1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
1
1
2
2

I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
1I,T,H,S,V,N,Z,C
1 111 11 1
0I,T,H,S,V,N,Z,C
0 000 00 0
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
1I,T,H,S,V,N,Z,C
0I,T,H,S,V,N,Z,C
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
0

2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C
1
I,T,H,S,V,N,Z,C N/AATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

13425. 注文情報
ﾃﾞﾊﾞｲｽ

速度(MHz) (注1)

電源電圧

動作範囲

外囲器 (注2)
8P3
8S2

工業用 (-40℃～85℃)
(注4)
S8S1
10

1.8～5.5V
20M1
工業用 (-40℃～105℃)(注5)
工業用 (-40℃～125℃)(注6)

ATtiny25

8S2
S8S1
20M1
8P3
8S2

工業用 (-40℃～85℃)
(注4)
S8S1
20

2.7～5.5V
20M1
工業用 (-40℃～105℃)(注5)
工業用 (-40℃～125℃)
(注6)

8S2
S8S1
20M1
8P3
8S2

10

1.8～5.5V
8X
工業用 (-40℃～85℃)(注4)

ATtiny45

20M1
8P3
8S2

20

2.7～5.5V
8X
20M1

注文ｺｰﾄﾞ
(注3)
ATtiny25V-10PU
ATtiny25V-10SU
ATtiny25V-10SUR
ATtiny25V-10SH
ATtiny25V-10SHR
ATtiny25V-10SSU
ATtiny25V-10SSUR
ATtiny25V-10SSH
ATtiny25V-10SSHR
ATtiny25V-10MU
ATtiny25V-10MUR
ATtiny25V-10SN
ATtiny25V-10SNR
ATtiny25V-10SSN
ATtiny25V-10SSNR
ATtiny25V-10MF
ATtiny25V-10MFR
ATtiny25-20PU
ATtiny25-20SU
ATtiny25-20SUR
ATtiny25-20SH
ATtiny25-20SHR
ATtiny25-20SSU
ATtiny25-20SSUR
ATtiny25-20SSH
ATtiny25-20SSHR
ATtiny25-20MU
ATtiny25-20MUR
ATtiny25-20SN
ATtiny25-20SNR
ATtiny25-20SSN
ATtiny25-20SSNR
ATtiny25V-20MF
ATtiny25V-20MFR
ATtiny45V-10PU
ATtiny45V-10SU
ATtiny45V-10SUR
ATtiny45V-10SH
ATtiny45V-10SHR
ATtiny45V-10XU
ATtiny45V-10XUR
ATtiny45V-10MU
ATtiny45V-10MUR
ATtiny45-20PU
ATtiny45-20SU
ATtiny45-20SUR
ATtiny45-20SH
ATtiny45-20SHR
ATtiny45-20XU
ATtiny45-20XUR
ATtiny45-20MU
ATtiny45-20MUR

次頁へ続く

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

135

ﾃﾞﾊﾞｲｽ

速度(MHz) (注1)

電源電圧

10

1.8～5.5V

動作範囲

8S2

工業用 (-40℃～85℃)(注4)

ATtiny8520

2.7～5.5V

外囲器 (注2)
8P3

20M1
8P3
8S2
20M1

注文ｺｰﾄﾞ
(注3)
ATtiny85V-10PU
ATtiny85V-10SU
ATtiny85V-10SUR
ATtiny85V-10SH
ATtiny85V-10SHR
ATtiny85V-10MU
ATtiny85V-10MUR
ATtiny85-20PU
ATtiny85-20SU
ATtiny85-20SUR
ATtiny85-20SH
ATtiny85-20SHR
ATtiny85-20MU
ATtiny85-20MUR

注1: 速度対電源電圧については109頁の「速度」をご覧ください。
注2: 全ての外囲器は鉛ﾌﾘｰ、ﾊﾛｹﾞﾝ化合物ﾌﾘｰで完全に安全で、これらは有害物質使用制限に関する欧州指令(RoHS指令)に適合します。
注3: 符号識別子 : H=ﾆｯｹﾙ･ﾊﾟﾗｼﾞｳﾑ･金(NiPdAu)仕上げ、U,N=半光沢錫、R=ﾃｰﾌﾟとﾘｰﾙ
注4: このﾃﾞﾊﾞｲｽはｳｪﾊｰ(ﾁｯﾌﾟ単体)形状でも供給できます。最低数量と詳細な注文情報については最寄のAtmel営業所へお問
い合わせください。
注5: 特性については対補A,105℃でのATtiny25/V仕様をご覧ください。
注6: 特性については対補B,125℃でのATtiny25/V仕様をご覧ください。

8P3
8S2
S8S1
8X
20M1

外囲器形式
8ﾋﾟﾝ 300mil幅 ﾌﾟﾗｽﾃｨｯｸ2列直線外囲器 (PDIP)
8ﾘｰﾄﾞ 208mil幅 ﾌﾟﾗｽﾃｨｯｸ小型外形外囲器 (EIAJ SOIC)
8ﾘｰﾄﾞ 150mil幅 ﾌﾟﾗｽﾃｨｯｸ小型外形外囲器 (JEDEC SOIC)
8ﾘｰﾄﾞ 4.4mm幅 ﾌﾟﾗｽﾃｨｯｸ薄型縮小外形外囲器 (TSSOP)
20ﾊﾟｯﾄﾞ 4×4×0.8mm 0.5mmﾋﾟｯﾁ 4方向平板ﾘｰﾄﾞなし/小ﾘｰﾄﾞ枠外囲器 (QFN/MLF)

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]136

26. 外囲器情報
26.1. 8P3

26.2. 8S2

8ﾋﾟﾝ 300mil幅 ﾌﾟﾗｽﾃｨｯｸ2列直線外囲器 (PDIP)
寸法: ｲﾝﾁ
0.365(0.355～0.400) JEDEC規格 MS-001 BA

8ﾘｰﾄﾞ 209mil幅 ﾌﾟﾗｽﾃｨｯｸ小型外形外囲器 (EIAJ SOIC)
寸法: mm

4

EIAJ EDR-7320

0.35～0.51
110.250(0.240～0.280)

0.039 4隅
(0.030～0.045)
0.100 BSC
0.210 Max
着座面
0.130
(0.115～0.150)

7.62～8.38

5.13～5.41

1.27 BSC

0.005 Min8
5.13～5.38

0.130(0.115～0.195)

1.78～2.03
0.05～0.33

0.018(0.014～0.022)

0.060(0.045～0.070)

0～8°0.310(0.300～0.325)

0.18～0.25
0.51～0.89

0.010(0.008～0.014)

0.300 BSC

26.3. S8S1

26.4. 8X

8ﾘｰﾄﾞ 150mil幅 ﾌﾟﾗｽﾃｨｯｸ小型外形外囲器 (JEDEC SOIC)

8ﾘｰﾄﾞ 薄型縮小小型外形外囲器 (TSSOP)

寸法: mm

寸法: mmJEDEC規格 MS-012

JEDEC規格 MS-153AC

0.31～0.51
1
5.79～6.20
1.27 BSC

0.25～0.30
13.81～3.99

6.40±0.20

4.40±0.10

80.65 TYP

4.80～4.98

8+0.05
3.05 -0.15

1.35～1.75
0.1～0.25

0.10±0.05+0.10
1.10 -0.05
着座面

0～8°
0.17～0.25
0.4～1.27

0.127 Nor0～8°0.60±0.10

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]137

26.5. 20M1
20ﾊﾟｯﾄﾞ 0.5mmﾋﾟｯﾁ 4方向平板ﾘｰﾄﾞなし/小ﾘｰﾄﾞ枠外囲器(QFN/MLF)

20

寸法: mmJEDEC規格 MO-220

表面

1
1ﾋﾟﾝ印

裏面

4.00□ BSC

20

0.08C
1

+0.15
0.40 -0.05(0.20R)
1ﾋﾟﾝ印

+0.07
0.23 -0.05

2.60±0.15□

着座面

0.50 BSC

0.01+0.04
0.20 Ref
0.75±0.05

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

138

27. 障害情報
この章の改訂番号はATtiny25/45/85(V)ﾃﾞﾊﾞｲｽの改訂版を参照してください。

ATtiny25 改訂A
ATtiny25 改訂D,E
ATtiny45 改訂F,G
ATtiny85 改訂B試供されていません。
既知の障害はありません。
既知の障害はありません。
既知の障害はありません。

・ 高すぎるﾊﾟﾜｰﾀﾞｳﾝ動作での消費電力
・ 1行実行中割り込み時のﾃﾞﾊﾞｯｸﾞWIRE通信切断
・ PLL固定化不良
・ 応用ｺｰﾄﾞからのEEPROM読み出しが施錠ﾋﾞｯﾄ種別3で働かない・ ﾀｲﾏ/ｶｳﾝﾀ1のOC1B PWM出力生成が正しく動作しない
・ EEPROM読み込みが低供給電圧/低周波数で失敗する可能性

45-A
45-A
45-A～C
45-A～C
45-B/C
25-B/C, 45-A～E, 85-A

1. 高すぎるﾊﾟﾜｰﾀﾞｳﾝ動作での消費電力 (45-A)
以下の状態は高すぎるﾊﾟﾜｰﾀﾞｳﾝ動作での電力消費を引き起こします。
- ﾋｭｰｽﾞによって外部ｸﾛｯｸが選択されているが、そのI/Oﾎﾟｰﾄが未だ出力として許可されている。
- EEPROMがﾊﾟﾜｰﾀﾞｳﾝ移行前に読まれる。
- VCCが4.5Vまたはそれ以上。
対策/対処- 外部ｸﾛｯｸ使用時、出力としてのｸﾛｯｸ ﾋﾟﾝ設定を避けてください。
- ﾊﾟﾜｰﾀﾞｳﾝ動作消費電力が重要なら、EEPROMを読まないでください。
- 4.5V未満のVCCを使ってください。
2. 1行実行中割り込み時のﾃﾞﾊﾞｯｸﾞWIRE通信切断 (45-A)
1行実行中に割り込みを受けると、ﾃﾞﾊﾞｯｸﾞWIREは通信を開放します。
対策/対処- 1行実行時、割り込みを禁止してください。
- 割り込みのﾃﾞﾊﾞｯｸﾞ時、割り込み処理ﾙｰﾁﾝ内の中断点を使って割り込み内を走らせてください。
3. PLL固定化不良 (45-A～C)
6.0MHz以下の周波数での走行時、PLLが固定化しません。
対策/対処
PLL使用時、6.0MHzまたはそれ以上で走らせてください。
4. 応用ｺｰﾄﾞからのEEPROM読み出しが施錠ﾋﾞｯﾄ種別3で働かない (45-A～C)
ﾒﾓﾘ施錠ﾋﾞｯﾄのLB2とLB1が動作種別3にﾌﾟﾛｸﾞﾗﾑ(設定)されると、EEPROM読み出しが応用ｺｰﾄﾞから動作しません。
対策/対処
応用ｺｰﾄﾞがEEPROMからの読み出しを必要とする時は施錠ﾋﾞｯﾄ保護動作種別3を設定しないでください。
5. ﾀｲﾏ/ｶｳﾝﾀ1のOC1B PWM出力生成が正しく動作しない (45-B/C)
ﾀｲﾏ/ｶｳﾝﾀ1のOC1B,OC1BのPWM出力が正しく動きません。COM1B1,0制御ﾋﾞｯﾄが各々COM1A1,0と同じ時だけ、OC1B,OC1B
出力は正しく動作します。
対策/対処
対策はCOM1A1,0とCOM1B1,0で同じ制御設定を使うことだけです。ﾃﾞｰﾀｼｰﾄの表12-1.をご覧ください。この問題はATtiny45改
訂Dで修正されています。
6. EEPROM読み込みが低供給電圧/低周波数で失敗する可能性 (25-B/C, 45-A～E, 85-A)
低ｸﾛｯｸ周波数や低供給電圧でEEPROMを読む試みは不正なﾃﾞｰﾀ読み込みに終わるかもしれません。
対策/対処
ｸﾛｯｸ周波数が1MHz未満で供給電圧が2V未満の時はEEPROMを使わないでください。動作周波数が1MHz以上に上げられない場合、供給電圧は2Vよりも高くあるべきです。同様に、供給電圧が2V以上に上げられない場合、動作周波数は1MHzよりも高くあるべきです。
この特性は温度依存であることが知られていますが、特性付けされていません。指針は室温に対してだけ与えられます。

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

139

28. ﾃﾞｰﾀｼｰﾄ改訂履歴
この章内の参照頁番号はこの資料が参照されていることに注意してください。この章内の改訂番号は資料の改訂番号を参照してく
ださい。

28.1. 改訂2586A - 2005年2月
1. 初版

28.2. 改訂2586B - 2005年5月
1. CLKI追加、例のEEMWE/EEWEをEEMPE/EEPEに改名、いくつかのTBD削除、88頁の「温度測定」から"暫定記述"を削除
2. 1頁の「特徴」を更新
3. 2頁の「ﾋﾟﾝ配置」と27頁の図8-1.を更新
4. 23頁の表7-1.、41頁の表10-4.と表10-5.を更新
5. 101頁の「低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式」を更新
6. 132頁の「ﾚｼﾞｽﾀ要約」でSPHﾚｼﾞｽﾀを更新
7. 108頁の「DC特性」を更新
8. 135頁の「注文情報」を更新
9. 139頁の「障害情報」を更新

28.3. 改訂2586C - 2005年6月
1. 1頁の「特徴」を更新
2. 2頁の「ﾋﾟﾝ配置」を更新
3. 12頁のｺｰﾄﾞ例を更新
4. 「温度測定」を88頁の17.12.項へ移動
5. 132頁の「ﾚｼﾞｽﾀ要約」を更新
6. 135頁の「注文情報」を更新

28.4. 改訂2586D - 2006年2月
1. 17頁の表6-3.、19頁の表6-9.と表6-10.、20頁の表6-13.、21頁の表6-14.、32頁の表9-1.、89頁の表17-4.、106頁の表20-16.、
111頁の表21-8.を更新
2. 57頁の「ﾀｲﾏ/ｶｳﾝﾀ1 PWM動作」を更新
3. 62頁の「ﾋﾞｯﾄ2 - TOV1 : ﾀｲﾏ/ｶｳﾝﾀ1溢れ割り込み要求ﾌﾗｸﾞ」の文章を更新
4. 108頁の「DC特性」で値を更新
5. 132頁の「ﾚｼﾞｽﾀ要約」を更新
6. 135頁の「注文情報」を更新
7. 139頁の「障害情報」を更新
8. ﾊﾟﾜｰｾｰﾌﾞ動作への全参照を削除
9. ﾚｼﾞｽﾀ ｱﾄﾞﾚｽ(表記)を更新

28.5. 改訂2586E - 2006年3月
1. 82頁の「A/D変換器 (ADC)」で「特徴」を更新
2. 82頁の「A/D変換器 (ADC)」で「操作」を更新
3. 88頁の表17-2.を更新
4. 89頁の表17-3.を更新
5. 139頁の「障害情報」を更新

28.6. 改訂2586F - 2006年4月
1. 37頁の「ﾃﾞｼﾞﾀﾙ入力許可と休止形態」を更新
2. 106頁の表20-16.を更新
3. 135頁の「注文情報」を更新

28.7. 改訂2586G - 2006年5月
1. 15頁の「高速周辺機能ｸﾛｯｸ - clkPCK」を更新
2. 18頁の「校正付き内蔵RC発振器」を更新
3. 19頁の「低周波数ｸﾘｽﾀﾙ用発振器」を更新
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]140

4. 20頁の「既定のｸﾛｯｸ元」を更新
5. 20頁の「ｸﾛｯｸ出力緩衝部」を更新
6. 23頁の「電力管理と休止形態」を更新
7. 24頁で「BOD禁止」を追加
8. 81頁の表16-2.を更新
9. 81頁の「ﾋﾞｯﾄ6 - ACBG : 基準電圧選択」を更新
10. 89頁の表17-3.に対する注を追加
11. 132頁の「ﾚｼﾞｽﾀ要約」を更新

28.8. 改訂2586H - 2006年6月
1. 18頁の「校正付き内蔵RC発振器」を更新
2. 21頁の「OSCCAL - 発振校正ﾚｼﾞｽﾀ」を更新
3. 109頁に表21-2.を追加

28.9. 改訂2586I - 2006年9月
1. 全ての特性ﾃﾞｰﾀを108頁の「電気的特性」へ移動
2. 全てのﾚｼﾞｽﾀ記述は各節の終りで分離項目に纏められました。
3. 51頁の表11-3.、52頁の表11-5.、98頁の表20-4.を更新
4. 18頁の「校正付き内蔵RC発振器」を更新
5. 23頁の表7-1.の注を更新
6. 27頁の「ｼｽﾃﾑ制御とﾘｾｯﾄ」を更新
7. 35頁からの「入出力ﾎﾟｰﾄ」でﾚｼﾞｽﾀ記述を更新
8. 72頁の「多用途直列ｲﾝﾀｰﾌｪｰｽ (USI)」内の特徴を更新
9. 74頁の「SPI主装置操作例」のｺｰﾄﾞ例を更新
10. 80頁の「ｱﾅﾛｸﾞ比較器入力選択」を更新
11. 99頁の「識票ﾊﾞｲﾄ」を更新
12. 108頁の「電気的特性」を更新

28.10. 改訂2586J - 2006年12月
1. 1頁の「低消費電力」を更新
2. 5頁の「構造概要」で命令長の記述を更新
3. 10頁の「実装書き換え可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ」でﾌﾗｯｼｭ容量を更新
4. 11頁の「非分離ﾊﾞｲﾄ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」、「消去」、「書き込み」項で参照先を更新
5. 11頁の「非分離ﾊﾞｲﾄ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」を更新
6. 15頁の「高速周辺機能ｸﾛｯｸ - clkPCK」を更新
7. 15頁の図6-2.と16頁の図6-3.とで1つのｸﾛｯｸ系統図を置換
8. 16頁の表7-1., 18頁の表6-6., 20頁の表6-13.を更新
9. 17頁の表6-5.を更新
10. 18頁の「校正付き内蔵RC発振器」を更新
11. 21頁の「OSCCAL - 発振校正ﾚｼﾞｽﾀ」を更新
12. 21頁の「CLKPR - ｸﾛｯｸ前置分周器ﾚｼﾞｽﾀ」を更新
13. 23頁の「ﾊﾟﾜｰﾀﾞｳﾝ動作」を更新
14. 26頁の「PRR - 電力削減ﾚｼﾞｽﾀ」を更新
15. 31頁の表8-3.に脚注を追加
16. 41頁の表10-5.を更新
17. 42頁の「MCUCR - MCU制御ﾚｼﾞｽﾀ」で「ﾋﾞｯﾄ7,2」を削除
18. 「ﾀｲﾏ/ｶｳﾝﾀ0前置分周器とｸﾛｯｸ元」項を44頁へ移動/更新
19. 56頁の「非同期動作に対するﾀｲﾏ/ｶｳﾝﾀ1の初期化」を更新
20. 63頁と69頁の「PLLCSR - PLL制御/状態ﾚｼﾞｽﾀ」内のﾋﾞｯﾄ記述を更新
21. 4頁の「前置分周と変換ﾀｲﾐﾝｸﾞ」内に推奨最大周波数を追加
22. 86頁の図17-8.を更新
23. 88頁の「温度測定」を更新
24. 89頁の表17-3.を更新
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]14128.11. 改訂2586K - 2008年1月
1. 資料雛形更新
2. 項追加・ 4頁の「ﾃﾞｰﾀ保持力」
・ 33頁の「Lowﾚﾍﾞﾙ割り込み」
・ 99頁の「ﾃﾞﾊﾞｲｽ識票銘刻部」
3. 項更新・ 15頁の「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ任意選択」と「高速周辺機能ｸﾛｯｸ - clkPCK」、16頁の「ATtiny15互換動作での内蔵PLL」
・ 23頁の「休止形態種別」、24頁の「ｿﾌﾄｳｪｱ低電圧検出(BOD)禁止」
・ 33頁の「外部割り込み」
・ 66頁の「ATtiny15互換動作時 ﾀｲﾏ/ｶｳﾝﾀ1 PWM動作」
・ 72頁の「多用途直列ｲﾝﾀｰﾌｪｰｽ (USI: Universal Serial Interface)」
・ 88頁の「温度測定」
・ 94頁の「ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票ﾃﾞｰﾀの読み出し」
・ 97頁の「ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ」、98頁の「ﾋｭｰｽﾞ ﾋﾞｯﾄ」、99頁の「識票ﾊﾞｲﾄ」と「校正値ﾊﾞｲﾄ」
・ 110頁の「ｼｽﾃﾑとﾘｾｯﾄの特性」
4. 図追加・ 122頁の図22-23.,図22-24.,図22-25.、123頁の図22-26.
5. 図更新・ 27頁の図8-1.
6. 表更新・ 18頁の表6-7.,表6-8.、19頁の表6-9.
・ 57頁の表12-1.、66頁の表13-1.
・ 91頁の表17-6.
・ 108頁の表21-1.、109頁の表21-2.、111頁の表21-8.
7. 項内のｺｰﾄﾞ例更新
・ 12頁のEEPROM_WR:ｱｾﾝﾌﾞﾘ ｺｰﾄﾞ例
8. I/Oﾚｼﾞｽﾀ内のﾋﾞｯﾄ記述更新
・ 42頁の「MCUCR - MCU制御ﾚｼﾞｽﾀ」
・ 51頁の「TCCR0A - ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA」
・ 96頁の「SPMCSR - SPM命令制御/状態ﾚｼﾞｽﾀ」
9. 135頁の「注文情報」でATtiny25を更新
10. 136頁の「外囲器形式」を更新
11. 137頁の「外囲器情報」にS8S1を追加
12. 139頁の「障害情報」を更新

28.12. 改訂2586L - 2010年6月
1. 項追加・ 1頁の「特徴」、2頁の「ﾋﾟﾝ配置」、135頁の「注文情報」、136頁の「26.4. 8X」外囲器情報でATtiny45に対するTSSOP・ 19頁の「低周波数ｸﾘｽﾀﾙ用発振器」の表6-11.
・ 126頁の図22-36.と図22-37.、内部ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧対動作電圧とで動作温度
・ 135頁の「注文情報」でATtiny25の拡張温度版、注文情報
・ 135頁の「注文情報」でATtiny25とATtiny45のﾃｰﾌﾟ&ﾘｰﾙの部品番号
2. 項更新・ 1頁の「特徴」でATtiny25から暫定を削除
・ 30頁の「8.4.2. ｺｰﾄﾞ例」項
・ 34頁の「PCMSK - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ」，ﾋﾞｯﾄ初期値
・ 59頁の「TCCR1 - ﾀｲﾏ/ｶｳﾝﾀ1制御ﾚｼﾞｽﾀ」と「GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ」、COMﾋﾞｯﾄ記述を明白化
・ 99頁の「20.3.2. 校正値ﾊﾞｲﾄ」項、周波数(8MHz,6.4MHz)・ 101頁の「表20-11. ﾋｭｰｽﾞ,ﾌﾗｯｼｭ,EEPROM次位置書き込み前の待機時間」、tWD_ERASEの値
・ 106頁の「表20-16. 高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式」
・ 108頁の「表21-1. DC特性」、注を補正
・ 113頁の「表21-11. 低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性」、tSLIVを追加
・ ﾃﾞｰﾀｼｰﾄ全体を通してﾋﾞｯﾄ表記法を更新、例えばCS02:0からCS0[2:0]へ (訳注:本書では表記法が異なるため無効)

28.13. 改訂2586M - 2010年7月
1. 20頁の「6.4. ｸﾛｯｸ出力緩衝部(外部ｸﾛｯｸ出力)」項を明白化
2. ATtiny25の拡張温度版に対して-SNと-SNRの注文ｺｰﾄﾞを追加

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

142

28.14. 改訂2586N - 2011年4月
1. 項目追加・ 4頁の「容量性接触感知」項
2. 項目更新
・ 資料雛形・ 表紙から"暫定"を削除、全ﾃﾞﾊﾞｲｽは今や最終で製造中です。
・ 24頁の「制限」項
・ 32頁のﾌﾟﾛｸﾞﾗﾑ例
・ 82頁の「概要」項
・ 89頁の表17-4.
・ 100頁の「低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順」項
・ 111頁の表21-7.
・ 135頁の「注文情報」
・ 139頁のEEPROM障害情報

28.15. 改訂2586O - 2013年2月
1. 135頁と136頁で注文符号を更新

28.16. 改訂2586P - 2013年6月
1. 13頁の「EEARH,EEARL (EEAR) - EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ」の説明を更新

28.17. 改訂2586Q - 2013年8月
1. 60頁の「GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ」内の「ﾋﾞｯﾄ3 - FOC1B:OC1B強制変更」記述を更新。「比較一致出力ﾋﾟﾝOC1B(PB3)」内のPB3をPB4に修正

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

143

目次
特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1
1. ﾋﾟﾝ配置 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2
1.1. ﾋﾟﾝ説明 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2

2. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3
2.1. 構成図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 3

3. 諸注意 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4
3.1.
3.2.
3.3.
3.4.

資料 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4
ｺｰﾄﾞ例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4
容量性接触感知 ・・・・・・・・・・・・・・・・・・・・・・・・・ 4
ﾃﾞｰﾀ保持力 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4

4. AVR CPU ｺｱ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 5
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.

序説 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5
構造概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5
ALU (Arithmetic Logic Unit) ・・・・・・・・・・・・・・・・ 5
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6
汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ ・・・・・・・・・・・・・・・・・・・・・・・・・ 7
ｽﾀｯｸ ﾎﾟｲﾝﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 7
命令実行ﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 8
ﾘｾｯﾄと割り込みの扱い ・・・・・・・・・・・・・・・・・・・・ 8

5. AVR ﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 10
5.1.
5.2.
5.3.
5.4.
5.5.

実装書き換え可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ ・・・ 10
ﾃﾞｰﾀ用SRAMﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・・・・・ 10
ﾃﾞｰﾀ用EEPROMﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・・ 11
I/Oﾒﾓﾘ (ﾚｼﾞｽﾀ) ・・・・・・・・・・・・・・・・・・・・・・・・・ 13
ﾒﾓﾘ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 13

6. ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ任意選択 ・・・・・・・・・・・・ 15
6.1.
6.2.
6.3.
6.4.
6.5.

ｸﾛｯｸ系統とその配給 ・・・・・・・・・・・・・・・・・・・・・ 15
ｸﾛｯｸ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 16ｼｽﾃﾑ ｸﾛｯｸ前置分周器 ・・・・・・・・・・・・・・・・・・・ 20ｼｽﾃﾑ ｸﾛｯｸ出力緩衝部 ・・・・・・・・・・・・・・・・・・・ 20
ｸﾛｯｸ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・ 21

7. 電力管理と休止形態 ・・・・・・・・・・・・・・・・・・ 23
7.1.
7.2.
7.3.
7.4.
7.5.

休止形態種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 23
ｿﾌﾄｳｪｱ低電圧検出(BOD)禁止 ・・・・・・・・・・・・・ 24
電力削減(電力削減ﾚｼﾞｽﾀ) ・・・・・・・・・・・・・・・・ 25
消費電力の最小化 ・・・・・・・・・・・・・・・・・・・・・・ 25
電力管理用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・ 26

8. ｼｽﾃﾑ制御とﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・ 27
8.1.
8.2.
8.3.
8.4.
8.5.

AVRのﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 27
ﾘｾｯﾄ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 27
内部基準電圧 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 29
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 29
ﾘｾｯﾄ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・ 30

9. 割り込み ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 32
9.1. ATtiny25/45/85の割り込みﾍﾞｸﾀ ・・・・・・・・・・・ 32
9.2. 外部割り込み ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 33
9.3. 外部割り込み用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・ 33

10. 入出力ﾎﾟｰﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 35
10.1.
10.2.
10.3.
10.4.

序説 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 35
標準ﾃﾞｼﾞﾀﾙ入出力としてのﾎﾟｰﾄ ・・・・・・・・・・・ 35
交換ﾎﾟｰﾄ機能 ・・・・・・・・・・・・・・・・・・・・・・・・・ 38
I/Oﾎﾟｰﾄ用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・ 42

11. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0 (PWM) ・・・・・・・・・・・・・・・ 43
11.1.
11.2.
11.3.
11.4.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 43
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 43
ﾀｲﾏ/ｶｳﾝﾀ0の前置分周器とｸﾛｯｸ元 ・・・・・・・・ 44
計数器部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 45

11.5.
11.6.
11.7.
11.8.
11.9.

比較出力部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 45
比較一致出力部 ・・・・・・・・・・・・・・・・・・・・・・・ 46
動作種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 47
ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・ 50
8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・ 51

12. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1 ・・・・・・・・・・・・・・・・・・・・・ 55
12.1. ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器 ・・・・・・・・・・・・・・・ 55
12.2. ﾀｲﾏ/ｶｳﾝﾀ1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 55
12.3. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・ 59

13. ATtiny15互換動作での8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1 ・・ 64
13.1. ﾀｲﾏ/ｶｳﾝﾀ1の前置分周器 ・・・・・・・・・・・・・・・ 64
13.2. ﾀｲﾏ/ｶｳﾝﾀ1 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 64
13.3. 互換動作時8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1用ﾚｼﾞｽﾀ ・・・・・ 67

14. 沈黙時間生成器 ・・・・・・・・・・・・・・・・・・・・・・ 70
14.1. ﾀｲﾏ/ｶｳﾝﾀ1 沈黙時間用ﾚｼﾞｽﾀ ・・・・・・・・・・・・ 71

15. 多用途直列ｲﾝﾀｰﾌｪｰｽ (USI) ・・・・・・・・・・・ 72
15.1.
15.2.
15.3.
15.4.
15.5.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 72
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 72
機能説明 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 73
USIでの代替使用 ・・・・・・・・・・・・・・・・・・・・・・ 76
USI用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 77

16. ｱﾅﾛｸﾞ比較器 ・・・・・・・・・・・・・・・・・・・・・・・・ 80
16.1. ｱﾅﾛｸﾞ比較器入力選択 ・・・・・・・・・・・・・・・・・・ 80
16.2. ｱﾅﾛｸﾞ比較器用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・ 80

17. A/D変換器 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 82
17.1. 特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 82
17.2. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 82
17.3. 操作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 83
17.4. 変換の開始 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 83
17.5. 前置分周と変換ﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・ 84
17.6. ﾁｬﾈﾙ変更と基準電圧選択 ・・・・・・・・・・・・・・・ 85
17.7. 雑音低減機能 ・・・・・・・・・・・・・・・・・・・・・・・・・ 86
17.8. ｱﾅﾛｸﾞ入力回路 ・・・・・・・・・・・・・・・・・・・・・・・・ 86
17.9. ｱﾅﾛｸﾞ雑音低減技術 ・・・・・・・・・・・・・・・・・・・・ 86
17.10. A/D変換の精度定義 ・・・・・・・・・・・・・・・・・・・・ 87
17.11. A/D変換の結果 ・・・・・・・・・・・・・・・・・・・・・・・・ 87
17.12. 温度測定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 88
17.13. A/D変換用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・ 89

18. ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ機能 ・・・・・・・・・・・ 92
18.1.
18.2.
18.3.
18.4.
18.5.
18.6.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 92
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 92
物理ｲﾝﾀｰﾌｪｰｽ ・・・・・・・・・・・・・・・・・・・・・・・・ 92
ｿﾌﾄｳｪｱ中断点 ・・・・・・・・・・・・・・・・・・・・・・・・・ 92
ﾃﾞﾊﾞｯｸﾞWIREの制限 ・・・・・・・・・・・・・・・・・・・・・ 92
ﾃﾞﾊﾞｯｸﾞWIRE用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・ 92

19. ﾌﾗｯｼｭの自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・ 93
19.1.
19.2.
19.3.
19.4.
19.5.
19.6.
19.7.
19.8.
19.9.

SPM命令によるﾍﾟｰｼﾞ消去の実行 ・・・・・・・・・ 93
ﾍﾟｰｼﾞ一時緩衝部の設定(ﾍﾟｰｼﾞ設定) ・・・・・・・ 93
ﾍﾟｰｼﾞ書き込みの実行 ・・・・・・・・・・・・・・・・・・・ 93
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞでのﾌﾗｯｼｭ ｱﾄﾞﾚｽ指定 ・・・・・ 93
SPM書き込み時のEEPROM書き込み妨害 ・・ 94
ｿﾌﾄｳｪｱからの施錠,ﾋｭｰｽﾞと識票読み出し ・・・ 94
ﾌﾗｯｼｭ ﾒﾓﾘ ﾃﾞｰﾀ化けの防止 ・・・・・・・・・・・・・・ 95
SPM使用時のﾌﾗｯｼｭ ﾒﾓﾘ書き込み時間 ・・・・ 95
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・ 96

20. ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・・・ 97
20.1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ ・・・・・・・・ 97
20.2. ﾋｭｰｽﾞ ﾋﾞｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 98
ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]144

20.3.
20.4.
20.5.
20.6.
20.7.

ﾃﾞﾊﾞｲｽ識票銘刻部 ・・・・・・・・・・・・・・・・・・・・・ 99
ﾍﾟｰｼﾞ容量 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 99
低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・ 100
高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・ 103
高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順 ・・・・・・・・・・・・・ 103

21. 電気的特性 ・・・・・・・・・・・・・・・・・・・・・・・・・ 108
21.1.
21.2.
21.3.
21.4.
21.5.
21.6.
21.7.
21.8.
21.9.

絶対最大定格 ・・・・・・・・・・・・・・・・・・・・・・・・ 108
DC特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 108
速度 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 109
ｸﾛｯｸ特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 109
ｼｽﾃﾑとﾘｾｯﾄの特性 ・・・・・・・・・・・・・・・・・・・・ 110
低電圧検出(BOD) ・・・・・・・・・・・・・・・・・・・・・ 111
A/D変換器特性 ・・・・・・・・・・・・・・・・・・・・・・・ 111
低電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 ・・・・・・・・・・・・・ 113
高電圧直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 ・・・・・・・・・・・・・ 113

22. 代表特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 114
22.1. 活動動作消費電流 ・・・・・・・・・・・・・・・・・・・・ 114
22.2. ｱｲﾄﾞﾙ動作消費電流 ・・・・・・・・・・・・・・・・・・・ 116
22.3. 周辺機能部供給電流 ・・・・・・・・・・・・・・・・・・ 117
22.4. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 ・・・・・・・・・・・・・・・・ 118
22.5. ﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 118
22.6. ﾋﾟﾝ駆動能力 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 120
22.7. ﾋﾟﾝ 閾値とﾋｽﾃﾘｼｽ ・・・・・・・・・・・・・・・・・・・・・ 123
22.8. 低電圧検出器(BOD)閾値 ・・・・・・・・・・・・・・・ 125
22.9. 内部発振器周波数 ・・・・・・・・・・・・・・・・・・・・ 127
22.10. 周辺機能部消費電流 ・・・・・・・・・・・・・・・・・・ 129
22.11. ﾘｾｯﾄ消費電流とﾘｾｯﾄ ﾊﾟﾙｽ幅 ・・・・・・・・・・・ 131

23. ﾚｼﾞｽﾀ要約 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 132
24. 命令要約 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 133
25. 注文情報 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 135
26. 外囲器情報 ・・・・・・・・・・・・・・・・・・・・・・・・・ 137
27. 障害情報 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 139
28. ﾃﾞｰﾀｼｰﾄ改訂履歴 ・・・・・・・・・・・・・・・・・・・ 140

ATtiny25/45/85 [ﾃﾞｰﾀｼｰﾄ]

145

®

Enabling Unlimited Possibilities®

Atmel Corporation

Atmel Asia Limited

Atmel Munich GmbH

Atmel Japan G.K.

1600 Technology Drive
San Jose, CA 95110
USA
TEL (+1)(408) 441-0311
FAX (+1)(408) 487-2600
www.atmel.com

Unit 01-5 & 16, 19F
BEA Tower, Millennium City 5
418 Kwun Tong Road
Kwun Tong, Kowloon
HONG KONG
TEL (+852) 2245-6100
FAX (+852) 2722-1369

Business Campus
Parking 4
D-85748 Garching b. Munich
GERMANYTEL (+49) 89-31970-0
FAX (+49) 89-3194621

141-0032 東京都品川区
大崎1-6-4
新大崎勧業ﾋﾞﾙ 16F
ｱﾄﾒﾙ ｼﾞｬﾊﾟﾝ合同会社
TEL (+81)(3)-6417-0300
FAX (+81)(3)-6417-0370© 2013 Atmel Corporation. 不許複製 / 改訂:2586Q-AVR-08/2013
Atmel®、Atmelﾛｺﾞとそれらの組み合わせ、Enabling Unlimited Possibilities®、AVR®、tinyAVR®とその他はAtmel Corporationの登録商標または商標またはその付属物です。他の用語と製品名は一般的に他の商標です。
お断り: 本資料内の情報はAtmel製品と関連して提供されています。本資料またはAtmel製品の販売と関連して承諾される何れの知的所有権も禁反言あるいはその逆によって明示的または暗示的に承諾されるものではありません。Atmelのｳｪﾌﾞｻｲﾄに位置する販売の条件とAtmelの定義での詳しい説明を除いて、商品性、特定目的に関する適合性、または適法性の暗黙保証に制限せず、Atmel
はそれらを含むその製品に関連する暗示的、明示的または法令による如何なる保証も否認し、何ら責任がないと認識します。たとえAtmelがそのような損害賠償の可能性を進言されたとしても、本資料を使用できない、または使用以外で発生する(情報の損失、事業中断、または利益と損失に関する制限なしの損害賠償を含み)直接、間接、必然、偶然、特別、または付随して起こる如何なる損害賠償に対しても決してAtmelに責任がないでしょう。Atmelは本資料の内容の正確さまたは完全性に関して断言または保証を行
わず、予告なしでいつでも製品内容と仕様の変更を行う権利を保留します。Atmelはここに含まれた情報を更新することに対してどんな公約も行いません。特に別の方法で提供されなければ、Atmel製品は車載応用に対して適当ではなく、使用されるべきではありません。Atmel製品は延命または生命維持を意図した応用での部品としての使用に対して意図、認定、または保証されません。
© HERO 2022.
本ﾃﾞｰﾀｼｰﾄはAtmelのATtiny25/45/85英語版ﾃﾞｰﾀｼｰﾄ(改訂2586Q-08/2013)の翻訳日本語版です。日本語では不自然となる重複する形容表現は省略されている場合があります。日本語では難解となる表現は大幅に意訳されている部分もあります。必要に応じて一部加筆されています。頁割の変更により、原本より頁数が少なくなっています。
汎用入出力ﾎﾟｰﾄの出力ﾃﾞｰﾀ ﾚｼﾞｽﾀとﾋﾟﾝ入力は、対応関係からの理解の容易さから出力ﾚｼﾞｽﾀと入力ﾚｼﾞｽﾀで統一表現されています。一部の用語がより適切と思われる名称に変更されています。必要と思われる部分には( )内に英語表記や略称などを残す形で表記しています。
青字の部分はﾘﾝｸとなっています。一般的に赤字の0,1は論理0,1を表します。その他の赤字は重要な部分を表します。
原書に対して若干構成が異なるため、一部の節/項番号が異なります。