ATmega328PB
コアから独立した周辺機能とpicoPower®技術を持つ
AVR® マイクロ コントローラ
序説
picoPower® ATmega328PBはAVR®強化RISC構造に基づく低電力CMOS 8ﾋﾞｯﾄ ﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。単一ｸﾛｯｸ周期での強力な命令の実行により、ATmega328PBはMHz当たり1MIPS近くの単位処理量を達成します。これは消費電力
対処理速度に対するﾃﾞﾊﾞｲｽの最適化をｼｽﾃﾑ設計者に許します。

本書は一般の方々の便宜のため有志により作成されたもので、Microchip社とは無関係であることを御承知ください。しおりの[はじめに]での内容にご注意ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C/J3 - 1頁

ATmega328PB
特徴
・ 高性能、低消費AVR® 8ﾋﾞｯﾄ ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ
・ 進化したRISC構造- 強力な131命令- 大多数は1周期実行- 32個の1ﾊﾞｲﾄ長汎用ﾚｼﾞｽﾀ- 完全なｽﾀﾃｨｯｸ動作- 20MHz時、20MIPSに達する高速動作- 2周期乗算命令
・ 高耐久不揮発性ﾒﾓﾘ部- 実装自己書き換え可能な32Kﾊﾞｲﾄ(16K語)ﾌﾗｯｼｭ ﾒﾓﾘ内蔵- 1KﾊﾞｲﾄのEEPROM- 2Kﾊﾞｲﾄの内蔵SRAM- 書き換え回数: 10,000/ﾌﾗｯｼｭ, 100,000/EEPROM- 個別施錠ﾋﾞｯﾄを持つ任意のﾌﾞｰﾄ ｺｰﾄﾞ領域
・ ﾁｯﾌﾟ内ﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑによる実装書き換え・ 真の書き込み中の読み出し動作- ｿﾌﾄｳｪｱ保護用の設定可能な施錠機能
・ 内蔵周辺機能- 周辺機能接触制御器
・ 容量性接触の釦、滑動部、輪・ 24個の自己容量ﾁｬﾈﾙと144個の相互容量ﾁｬﾈﾙ- 独立した前置分周器と比較機能付き2つの8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ- 独立した前置分周器、比較、捕獲機能付き3つの16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ- 専用発振器と8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀによる実時間計数器(RTC)- 10個のPWM出力- 温度測定付き8ﾁｬﾈﾙ10ﾋﾞｯﾄA/D変換器- ﾌﾚｰﾑ開始検出を持つ設定可能な2つの直列USART- 主装置/従装置動作の2つのSPI直列ｲﾝﾀｰﾌｪｰｽ- ﾊﾞｲﾄ対応の2つの2線直列ｲﾝﾀｰﾌｪｰｽ(Philips I2C互換)- 設定可能な専用発振器付きｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ- ｱﾅﾛｸﾞ比較器- ﾋﾟﾝ変化での割り込みと起動復帰
・ 特殊ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ機能- 電源ONﾘｾｯﾄ回路と設定可能な低電圧検出器(BOD)- 校正可能な内蔵RC発振器- 外部及び内部の割り込み- ｱｲﾄﾞﾙ、A/D変換雑音低減、ﾊﾟﾜｰｾｰﾌﾞ、ﾊﾟﾜｰﾀﾞｳﾝ、ｽﾀﾝﾊﾞｲ、拡張ｽﾀﾝﾊﾞｲの6つの低消費動作- ｸﾛｯｸ障害検出機構と障害の場合での内部8MHz RC発振器への切り替え- 固有のﾃﾞﾊﾞｲｽIDを表す個別通番・ I/Oと外囲器- 27ﾋﾞｯﾄの設定可能なI/O- 32ﾘｰﾄﾞTQFP、32ﾊﾟｯﾄﾞVFQFN・ 動作電圧 : 1.8～5.5V
・ 動作温度 : -40～85℃/105℃
・ 動作速度 : 0～4MHz/1.8～5.5V、0～10MHz/2.7～5.5V、0～20MHz/4.5～5.5V
・ 代表消費電力 (1MHz,1.8V,25℃)- 0.24mA (活動動作)- 0.2µA (ﾊﾟﾜｰﾀﾞｳﾝ動作)- 1.3µA (ﾊﾟﾜｰｾｰﾌﾞ動作,32kHz RTCを含む)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 2頁

ATmega328PB
目次
序説 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1
特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 2

13.12. 電力管理用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・ 37

14. ｼｽﾃﾑ制御とﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・ 40
14.1.
14.2.
14.3.
14.4.
14.5.
14.6.
14.7.
14.8.
14.9.

1. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 6
2. 製品形態要約 ・・・・・・・・・・・・・・・・・・・・・・・・・ 7
3. 注文情報 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 7
4. 構成図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8
5. ﾋﾟﾝ配置 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 95.1. ﾋﾟﾝ説明 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 10

6. 入出力多重化 ・・・・・・・・・・・・・・・・・・・・・・・・ 11
7. 資料 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 12
8. ｺｰﾄﾞ例について ・・・・・・・・・・・・・・・・・・・・・・・ 12
9. AVR CPU ｺｱ ・・・・・・・・・・・・・・・・・・・・・・・・・ 13
9.1.
9.2.
9.3.
9.4.
9.5.
9.6.
9.7.

概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 13
ALU (Arithmetic Logic Unit) ・・・・・・・・・・・・・・・ 13
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 14
汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ ・・・・・・・・・・・・・・・・・・・・・・・・ 15
ｽﾀｯｸ ﾎﾟｲﾝﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 15
命令実行ﾀｲﾐﾝｸﾞ・・・・・・・・・・・・・・・・・・・・・・・・・ 16
ﾘｾｯﾄと割り込みの扱い ・・・・・・・・・・・・・・・・・・・ 16

15. INT - 割り込み ・・・・・・・・・・・・・・・・・・・・・・・ 46
15.1. ATmega328PBの割り込みﾍﾞｸﾀ ・・・・・・・・・・・・ 46
15.2. 割り込みﾍﾞｸﾀ移動関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・ 48

16. EXTINT - 外部割り込み ・・・・・・・・・・・・・・・ 49
16.1. ﾋﾟﾝ変化割り込みﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・ 49
16.2. 外部割り込み用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・ 50

17. 入出力ﾎﾟｰﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 54
17.1.
17.2.
17.3.
17.4.

10. AVRのﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 18
10.1.
10.2.
10.3.
10.4.
10.5.
10.6.

概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 18
実装書き換え可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ ・・ 18
ﾃﾞｰﾀ用SRAMﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・・・・ 18
ﾃﾞｰﾀ用EEPROMﾒﾓﾘ ・・・・・・・・・・・・・・・・・・・・ 19
I/Oﾒﾓﾘ (ﾚｼﾞｽﾀ) ・・・・・・・・・・・・・・・・・・・・・・・・ 19
ﾒﾓﾘ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・ 21

18.1.
18.2.
18.3.
18.4.
18.5.
18.6.
18.7.
18.8.
18.9.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 31
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 31
動作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 31
ﾀｲﾐﾝｸﾞ図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 31
CFD用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 32

19.1. 特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 84
19.2. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 84
19.3. 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ ・・・・・・・・・・ 86
19.4. ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ ・・・・・・・・・・・・・・・・・・・・・・ 88
19.5. 計数器部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 88
19.6. 捕獲入力部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 89
19.7. 比較出力部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 90
19.8. 比較一致出力部 ・・・・・・・・・・・・・・・・・・・・・・・ 91
19.9. 動作種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 92
19.10. ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・ 96
19.11. 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4用ﾚｼﾞｽﾀ ・・・・・・・・・・・ 97

20. ﾀｲﾏ/ｶｳﾝﾀ0,1,3,4の前置分周器 ・・・・・・・・・ 103
20.1.
20.2.
20.3.
20.4.

13. 電力管理と休止形態 ・・・・・・・・・・・・・・・・・・ 33
13.1. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 33
13.2. 休止形態種別 ・・・・・・・・・・・・・・・・・・・・・・・・・ 33
13.3. 低電圧検出器(BOD)禁止 ・・・・・・・・・・・・・・・・ 33
13.4. ｱｲﾄﾞﾙ動作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 34
13.5. A/D変換雑音低減動作 ・・・・・・・・・・・・・・・・・・ 34
13.6. ﾊﾟﾜｰﾀﾞｳﾝ動作 ・・・・・・・・・・・・・・・・・・・・・・・・・ 34
13.7. ﾊﾟﾜｰｾｰﾌﾞ動作 ・・・・・・・・・・・・・・・・・・・・・・・・・ 35
13.8. ｽﾀﾝﾊﾞｲ動作 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 35
13.9. 拡張ｽﾀﾝﾊﾞｲ動作 ・・・・・・・・・・・・・・・・・・・・・・・ 35
13.10. 電力削減ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・ 35
13.11. 消費電力の最小化 ・・・・・・・・・・・・・・・・・・・・・ 35© 2018 Microchip Technology Inc.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 71
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 71
ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ ・・・・・・・・・・・・・・・・・・・・・・ 72
計数器部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 72
比較出力部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 73
比較一致出力部 ・・・・・・・・・・・・・・・・・・・・・・・ 74
動作種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 75
ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・ 78
8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・ 79

19. TC1,3,4 - PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4 ・ 84

12. CFD - ｸﾛｯｸ障害検出機構 ・・・・・・・・・・・・・ 31
12.1.
12.2.
12.3.
12.4.
12.5.

概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 54
標準ﾃﾞｼﾞﾀﾙ入出力としてのﾎﾟｰﾄ ・・・・・・・・・・・ 54
交換ﾎﾟｰﾄ機能 ・・・・・・・・・・・・・・・・・・・・・・・・・ 57
I/Oﾎﾟｰﾄ用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・ 67

18. TC0 - PWM付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0 ・・・・・・・ 71

11. ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択 ・・・・・・・・・・・・・・・・ 25
11.1. ｸﾛｯｸ系統とその配給 ・・・・・・・・・・・・・・・・・・・・ 25
11.2. ｸﾛｯｸ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 26
11.3. ｸﾘｽﾀﾙ用低電力発振器 ・・・・・・・・・・・・・・・・・・ 26
11.4. 低周波数ｸﾘｽﾀﾙ用発振器 ・・・・・・・・・・・・・・・・ 27
11.5. 校正付き内蔵RC発振器 ・・・・・・・・・・・・・・・・・ 28
11.6. 128kHz内部発振器 ・・・・・・・・・・・・・・・・・・・・・ 28
11.7. 外部ｸﾛｯｸ信号 ・・・・・・・・・・・・・・・・・・・・・・・・・ 29
11.8. ｼｽﾃﾑ ｸﾛｯｸ出力緩衝部 ・・・・・・・・・・・・・・・・・ 29
11.9. ﾀｲﾏ/ｶｳﾝﾀ用発振器 ・・・・・・・・・・・・・・・・・・・・ 29
11.10. ｼｽﾃﾑ ｸﾛｯｸ前置分周器 ・・・・・・・・・・・・・・・・・ 29
11.11. ｸﾛｯｸ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・ 30

AVRのﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 40
ﾘｾｯﾄ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 40
電源ONﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 41
外部ﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 41
低電圧検出(BOD)ﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・ 41
ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・ 41
内部基準電圧 ・・・・・・・・・・・・・・・・・・・・・・・・・ 42
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ・・・・・・・・・・・・・・・・・・・・・・・・・ 42
ﾘｾｯﾄ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・ 44

内部ｸﾛｯｸ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 103
前置分周器ﾘｾｯﾄ ・・・・・・・・・・・・・・・・・・・・・・ 103
外部ｸﾛｯｸ元 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 103
同期系TC前置分周器制御用ﾚｼﾞｽﾀ ・・・・・・・ 104

21. TC2 - PWM,非同期動作付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2 ・ 105

完全ﾃﾞｰﾀｼｰﾄ

21.1.
21.2.
21.3.
21.4.
21.5.
21.6.
21.7.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 105
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 105
ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ ・・・・・・・・・・・・・・・・・・・・・ 106
計数器部 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 106
比較出力部 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 107
比較一致出力部 ・・・・・・・・・・・・・・・・・・・・・・ 108
動作種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 109

DS40001906C - 3頁

ATmega328PB
21.8. ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・ 112
21.9. ﾀｲﾏ/ｶｳﾝﾀ2の非同期動作 ・・・・・・・・・・・・・・ 113
21.10. ﾀｲﾏ/ｶｳﾝﾀ2の前置分周器 ・・・・・・・・・・・・・・ 114
21.11. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・ 115

29.1.
29.2.
29.3.
29.4.
29.5.
29.6.

22. OCM - 比較出力変調器 ・・・・・・・・・・・・・・ 122
22.1. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 122
22.2. 説明 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 122

30. DBG - ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ機能 ・・・・ 188
30.1.
30.2.
30.3.
30.4.
30.5.
30.6.

23. SPI - 直列周辺ｲﾝﾀｰﾌｪｰｽ ・・・・・・・・・・・・ 123
23.1.
23.2.
23.3.
23.4.
23.5.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 123
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 123
SSﾋﾟﾝの機能 ・・・・・・・・・・・・・・・・・・・・・・・・・ 125
ﾃﾞｰﾀ転送形式 ・・・・・・・・・・・・・・・・・・・・・・・・ 126
SPI用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 127

24. USART ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 129
24.1. 特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 129
24.2. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 129
24.3. 構成図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 129
24.4. ｸﾛｯｸ生成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 130
24.5. ﾌﾚｰﾑ形式 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 131
24.6. USARTの初期化 ・・・・・・・・・・・・・・・・・・・・・・ 132
24.7. ﾃﾞｰﾀ送信 - USART送信部 ・・・・・・・・・・・・・・ 133
24.8. ﾃﾞｰﾀ受信 - USART受信部 ・・・・・・・・・・・・・・ 134
24.9. 非同期受信 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 137
24.10. 複数ﾌﾟﾛｾｯｻ通信動作 ・・・・・・・・・・・・・・・・・・ 139
24.11. ﾎﾞｰﾚｰﾄ設定例 ・・・・・・・・・・・・・・・・・・・・・・・・ 140
24.12. USART用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・ 142

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 186
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 186
構成図 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 186
信号説明 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 187
ｼｽﾃﾑ依存性 ・・・・・・・・・・・・・・・・・・・・・・・・・ 187
機能的な説明 ・・・・・・・・・・・・・・・・・・・・・・・・ 187
特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 188
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 188
物理ｲﾝﾀｰﾌｪｰｽ ・・・・・・・・・・・・・・・・・・・・・・・ 188
ｿﾌﾄｳｪｱ中断点 ・・・・・・・・・・・・・・・・・・・・・・・・ 188
ﾃﾞﾊﾞｯｸﾞWIREの制限 ・・・・・・・・・・・・・・・・・・・・ 188
ﾃﾞﾊﾞｯｸﾞWIRE用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・ 189

32. BTLDR - ﾌﾞｰﾄ ﾛｰﾀﾞ支援- RWW自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・ 190
31.1.
31.2.
31.3.
31.4.
31.5.
31.6.
31.7.
31.8.
31.9.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 190
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 190
ﾌﾗｯｼｭ ﾒﾓﾘの応用領域とﾌﾞｰﾄ ﾛｰﾀﾞ領域 ・・・ 190
書き中に読みが可能な領域と不能な領域 ・・ 190
ﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑへの移行 ・・・・・・・・・・・・・ 192
ﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄ ・・・・・・・・・・・・・・・・・・・・ 192
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞでのﾌﾗｯｼｭ ｱﾄﾞﾚｽ指定 ・・・・・ 193
ﾌﾗｯｼｭ ﾒﾓﾘの自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・ 193
ﾌﾞｰﾄ ﾛｰﾀﾞ関係ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・ 199

32. MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・ 201

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 147
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 147
ｸﾛｯｸ生成 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 147
SPIﾃﾞｰﾀ形態とﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・ 147
ﾌﾚｰﾑ形式 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 148
ﾃﾞｰﾀ転送 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 149
USARTでのMSPIMとSPIの比較 ・・・・・・・・・・ 150
MSPIMでのUSART用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・ 150

32.1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ ・・・・・・・ 201
32.2. ﾋｭｰｽﾞ ﾋﾞｯﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 202
32.3. 識票ﾊﾞｲﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 203
32.4. 校正ﾊﾞｲﾄ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 203
32.5. 通番 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 203
32.6. ﾍﾟｰｼﾞ容量 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 203
32.7. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・・・ 205
32.8. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順 ・・・・・・・・・・・・・・・・・・・ 206
32.9. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・・・・・・・ 211
32.10. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順 ・・・・・・・・・・・・・・・・・・・ 211

26. TWI - 2線直列ｲﾝﾀｰﾌｪｰｽ ・・・・・・・・・・・・・ 151

33. 電気的特性 ・・・・・・・・・・・・・・・・・・・・・・・・・ 214

25. USARTSPI - USARTでのSPI動作 ・・・・・・ 147
25.1.
25.2.
25.3.
25.4.
25.5.
25.6.
25.7.
25.8.
26.1.
26.2.
26.3.
26.4.
26.5.
26.6.
26.7.
26.8.
26.9.

33.1. 絶対最大定格 ・・・・・・・・・・・・・・・・・・・・・・・・ 214
33.2. DC特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 214
33.3. 消費電力 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 214
33.4. 速度勾配 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 215
33.5. ｸﾛｯｸ特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 216
33.6. ｼｽﾃﾑとﾘｾｯﾄの特性 ・・・・・・・・・・・・・・・・・・・ 216
33.7. SPI ﾀｲﾐﾝｸﾞ特性 ・・・・・・・・・・・・・・・・・・・・・・・ 217
33.8. 2線直列ｲﾝﾀｰﾌｪｰｽ特性 ・・・・・・・・・・・・・・・・ 218
33.9. A/D変換器特性 ・・・・・・・・・・・・・・・・・・・・・・・ 219
33.10. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 ・・・・・・・・・・・・・・・・・・・ 220

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 151
2線直列ｲﾝﾀｰﾌｪｰｽ ﾊﾞｽの定義 ・・・・・・・・・・ 151
ﾃﾞｰﾀ転送とﾌﾚｰﾑ形式 ・・・・・・・・・・・・・・・・・・ 151
複数主装置ﾊﾞｽ ｼｽﾃﾑの調停と同期 ・・・・・・ 153
TWI部の概要 ・・・・・・・・・・・・・・・・・・・・・・・・・ 154
TWIの使用法 ・・・・・・・・・・・・・・・・・・・・・・・・・ 156
転送種別 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 158
複数主装置ｼｽﾃﾑでのﾊﾞｽ競合と調停 ・・・・・ 168
TWI用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・・・・・・ 169

27. AC - ｱﾅﾛｸﾞ比較器 ・・・・・・・・・・・・・・・・・・・ 172
27.1. 概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 172
27.2. ｱﾅﾛｸﾞ比較器入力選択 ・・・・・・・・・・・・・・・・・ 172
27.3. ｱﾅﾛｸﾞ比較器用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・ 172

34. 代表特性 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 222
34.1. 活動動作消費電流 ・・・・・・・・・・・・・・・・・・・・ 222
34.2. ｱｲﾄﾞﾙ動作消費電流 ・・・・・・・・・・・・・・・・・・・ 224
34.3. 周辺機能部供給電流 ・・・・・・・・・・・・・・・・・・ 225
34.4. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 ・・・・・・・・・・・・・・・・ 226
34.5. ﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 227
34.6. ﾋﾟﾝ駆動能力 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 229
34.7. ﾋﾟﾝ 閾値とﾋｽﾃﾘｼｽ ・・・・・・・・・・・・・・・・・・・・・ 230
34.8. 低電圧検出器(BOD)閾値 ・・・・・・・・・・・・・・・ 232
34.9. ｱﾅﾛｸﾞ比較器ｵﾌｾｯﾄ ・・・・・・・・・・・・・・・・・・・ 234
34.10. 内部発振器周波数 ・・・・・・・・・・・・・・・・・・・・ 235
34.11. 周辺機能部消費電流 ・・・・・・・・・・・・・・・・・・ 237
34.12. ﾘｾｯﾄ消費電流とﾘｾｯﾄ ﾊﾟﾙｽ幅 ・・・・・・・・・・・ 238

28. ADC - A/D変換器 ・・・・・・・・・・・・・・・・・・・ 175
28.1.
28.2.
28.3.
28.4.
28.5.
28.6.
28.7.
28.8.
28.9.

特徴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 175
概要 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 175
変換の開始 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 176
前置分周と変換ﾀｲﾐﾝｸﾞ ・・・・・・・・・・・・・・・・・ 177
ﾁｬﾈﾙ変更と基準電圧選択 ・・・・・・・・・・・・・・ 178
雑音低減機能 ・・・・・・・・・・・・・・・・・・・・・・・・ 179
A/D変換の結果 ・・・・・・・・・・・・・・・・・・・・・・・ 180
温度測定 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 181
A/D変換用ﾚｼﾞｽﾀ ・・・・・・・・・・・・・・・・・・・・・ 182

29. PTC - 周辺機能接触制御器 ・・・・・・・・・・・ 186© 2018 Microchip Technology Inc.

35. ﾚｼﾞｽﾀ要約 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 240

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 4頁

ATmega328PB
36. 命令要約 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 243
37. 外囲器情報 ・・・・・・・・・・・・・・・・・・・・・・・・・ 245
38. 障害情報 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 246
39. 改訂履歴 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 247
Microchipｳｪﾌﾞ ｻｲﾄ ・・・・・・・・・・・・・・・・・・・・・・ 248
お客様への変更通知ｻｰﾋﾞｽ ・・・・・・・・・・・・・・・ 248
お客様支援 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 248
Microchipﾃﾞﾊﾞｲｽ ｺｰﾄﾞ保護機能 ・・・・・・・・・・・・ 248
法的通知 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 248
商標 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 259
DNVによって認証された品質管理ｼｽﾃﾑ ・・・・・ 259
世界的な販売とｻｰﾋﾞｽ ・・・・・・・・・・・・・・・・・・・ 250© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 5頁

ATmega328PB
1. 概要
ATmega328PBはAVR強化RISC構造に基づく低電力CMOS 8ﾋﾞｯﾄ ﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。単一ｸﾛｯｸ周期での強力な命令の実行により、
ATmega328PBはMHz当たり1MIPS近くの単位処理量を達成します。これは消費電力対処理速度に対するﾃﾞﾊﾞｲｽの最適化をｼｽﾃﾑ設計
者に許します。
AVR®ｺｱは32個の汎用ﾚｼﾞｽﾀと豊富な命令群を兼ね備えています。32個の全ﾚｼﾞｽﾀはALU(Arithmetic Logic Unit)に直結され、ﾚｼﾞ
ｽﾀ間命令は1ｸﾛｯｸ周期で実行されます。AVR構造は現状のCISC型ﾏｲｸﾛ ｺﾝﾄﾛｰﾗに対し、最大10倍の単位処理量向上効果があります。
ATmega328PBは書き込み中読み出し可能な能力を持つ32Kﾊﾞｲﾄの実装書き換え可能なﾌﾗｯｼｭ ﾒﾓﾘと1KﾊﾞｲﾄのEEPROM、2KﾊﾞｲﾄのSRAM、27本の汎用入出力線、32個の汎用ﾚｼﾞｽﾀ、比較動作も含む柔軟な5つのﾀｲﾏ/ｶｳﾝﾀ、内部及び外部割り込み、設定変更可能な2つの直列USART、ﾊﾞｲﾄ志向の2つの2線直列ｲﾝﾀｰﾌｪｰｽ(I2C)、2つのSPI直列ﾎﾟｰﾄ、8ﾁｬﾈﾙの10ﾋﾞｯﾄA/D変換器、内部発振器付きｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ、ｸﾛｯｸ障害検出機構、最大24個の自己容量と144個の相互容量の感知器を許すPTC、ｿﾌﾄｳｪｱで選択できる6つの低消費動作機能を提供します。ｱｲﾄﾞﾙ動作では動作を停止しますが、SRAM、ﾀｲﾏ/ｶｳﾝﾀ、SPIﾎﾟｰﾄ、割り込み機能は有効で動作を継続します。ﾊﾟﾜｰﾀﾞｳﾝ動作ではﾚｼﾞｽﾀの内容は保護されますが、発振器が停止するため、以降のﾊｰﾄﾞｳｪｱ ﾘｾｯﾄか外部割り込
みまで他の全機能を禁止(無効に)します。ﾊﾟﾜｰｾｰﾌﾞ動作では非同期ﾀｲﾏ用発振器が動作を継続し、ﾃﾞﾊﾞｲｽのその他が停止中であっても基準ﾀｲﾏの継続が許されます。ﾊﾟﾜｰｾｰﾌﾞ動作でPTCを動かし、接触で起こしてPTCのｱﾅﾛｸﾞとﾃﾞｼﾞﾀﾙの一部の動的なON/
OFFをする能力もあります。A/D変換雑音低減動作ではA/D変換中の切り替え雑音を最小とするために、非同期ﾀｲﾏ、PTCとA/D変換器を除く周辺機能とCPUが停止します。ｽﾀﾝﾊﾞｲ動作ではｸﾘｽﾀﾙ発振子/ｾﾗﾐｯｸ振動子用発振器が動作し、一方ﾃﾞﾊﾞｲｽのその他
は休止します。これは低消費電力と非常に速い起動の組み合わせを許します。
本ﾃﾞﾊﾞｲｽは高密度不揮発性ﾒﾓﾘ技術を使って製造されています。内蔵の実装書き換え(ISP)可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘは規定の不揮発性ﾒﾓﾘ書き込み器、SPI直列ｲﾝﾀｰﾌｪｰｽ経由、AVRｺｱ上ﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑの実行によって再書き込みができます。ﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑ
は応用領域ﾌﾗｯｼｭ ﾒﾓﾘ内の応用ﾌﾟﾛｸﾞﾗﾑの読み込みにどのｲﾝﾀｰﾌｪｰｽでも使えます。ﾌﾞｰﾄ領域ﾌﾗｯｼｭ ﾒﾓﾘ内のｿﾌﾄｳｪｱは真の「書き込み中の読み出し可」動作により、応用領域ﾌﾗｯｼｭ ﾒﾓﾘ更新中も実行を継続します。ﾓﾉﾘｼｯｸ ﾁｯﾌﾟ上の自己実装書き換え可能なﾌﾗｯｼｭ ﾒﾓﾘと、8ﾋﾞｯﾄRISC型CPUの組み合わせによるATmega328PBは多くの組み込み制御の応用に対して高度な柔軟性と対費用効果をもたらす強力なﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。
ATmega328PBはCｺﾝﾊﾟｲﾗ、ﾏｸﾛ ｱｾﾝﾌﾞﾗ、ﾃﾞﾊﾞｯｶﾞ、ｼﾐｭﾚｰﾀ、ｲﾝｻｰｷｯﾄ ｴﾐｭｰﾚｰﾀ、評価ｷｯﾄを含む専用のﾌﾟﾛｸﾞﾗﾑ及びｼｽﾃﾑ開発
ﾂｰﾙで支援されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 6頁

ATmega328PB
2. 製品形態要約
機能項目

ATmega328PB
32
32
2
1
27
2
2
2
10ﾋﾞｯﾄ 15ksps
8400ns (代表値)234(8ﾋﾞｯﾄ)+6(16ﾋﾞｯﾄ)
有り
有り
有り

ﾋﾟﾝ数
ﾌﾗｯｼｭ ﾒﾓﾘ容量 (Kﾊﾞｲﾄ)
SRAM容量 (Kﾊﾞｲﾄ)
EEPROM容量 (Kﾊﾞｲﾄ)
最大入出力ﾋﾟﾝ数
SPI
TWI (I2C)
USART
A/D変換器 (ADC)
ADCﾁｬﾈﾙ数
ｱﾅﾛｸﾞ比較器(AC)伝搬遅延
8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ
16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ
PWMﾁｬﾈﾙ数
周辺機能接触制御器 (PTC)
ｸﾛｯｸ障害検出器 (CFD)
比較出力変調器 (OCM)

3. 注文情報
ﾃﾞﾊﾞｲｽ

速度(MHz)

注文符号 (注2)
外囲器
動作範囲
ATmega328PB-AU
32A
ATmega328PB-AUR(注3)
工業用 (-40℃～85℃)
ATmega328PB-MU
32MS1
ATmega328PB-MU(注3)
ATmega328PB
20
1.8～5.5V
ATmega328PB-AN
32A
ATmega328PB-ANR(注3)
工業用 (-40℃～105℃)
ATmega328PB-MN
32MS1
ATmega328PB-MNR(注3)
注: このﾃﾞﾊﾞｲｽはｳｪﾊｰ(ﾁｯﾌﾟ単体)形状でも供給できます。最低数量と詳細な注文情報については最寄のMicrochip営業所へお問い合わせください。
注2: 有害物質使用制限に関する欧州指令(RoHS指令)適合の鉛ﾌﾘｰ製品。またﾊﾛｹﾞﾝ化合物無しで完全に安全です。
注3: ﾃｰﾌﾟとﾘｰﾙ。

32A
32MS1

外囲器形式
32ﾘｰﾄﾞ 1.0mm厚 ﾌﾟﾗｽﾃｨｯｸ4方向平板外囲器 (TQFP)
32ﾊﾟｯﾄﾞ 5×5×0.9mm 0.5mmﾋﾟｯﾁ 極薄細密ﾋﾟｯﾁ4方向平板ﾘｰﾄﾞなし外囲器 (VQFN)© 2018 Microchip Technology Inc.

電源電圧

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 7頁

ATmega328PB
4. 構成図図4-1. 構成図

ﾃﾞﾊﾞｯｸﾞWire
並列PROG

NVM
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ

直列PROGXTAL1/TOSC1

16MHz低電力XOSC
外部ｸﾛｯｸ信号
ｸﾘｽﾀﾙ障害検出

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

ｸﾛｯｸ生成校正付き8MHz RC
32.768kHz XOSCXTAL2/TOSC2

OCD

電力管理と
ｸﾛｯｸ制御EEPROM
ｲﾝﾀｰﾌｪｰｽ

GPIOR
入出力ﾎﾟｰﾄ

128kHz内部OSC
VCC
RESET
GND

電源監視
POR/BOD、ﾘｾｯﾄ

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

内部
基準電圧

AC

AN0
AN1
ACO

: PD6
: PD7
: PE0

USART0

RXD0
TXD0
XCK0

: PD0
: PD1
: PD4

USART1

RXD1
TXD1
XCK1

: PB4
: PB3
: PB5

TWI0

SDA0
SCL0

: PC4
: PC5

TWI1

SDA1
SCL1

: PE0
: PE1

SPI0

MISO0
MOSI0
SCK0
SS0

: PB4
: PB3
: PB5
: PB2

SPI1

MISO1
MOSI1
SCK1
SS1

: PC0
: PE3
: PC1
: PE2

PE3～2,PC5～0 :AREF :

ADC7～0
AREF

ADC

PB5～0、PE1,0、PD7～0 :PB5～0、PE1,0、PD7～0、PE3～0、PC5～0 :

X15～0
Y23～0

PTC

PE3～0、PD7～0、PC6～0、PB7～0 : PCINT27～0
PD3,2 :
INT1,0© 2018 Microchip Technology Inc.

EXTINT

PD4 :
PD6 :
PD5 :

T0
OC0A
OC0B

TC0
(8ﾋﾞｯﾄ)PB1,2 :
PD5 :
PB0 :

OC1A/B
T1
ICP1

TC1(16ﾋﾞｯﾄ)

PB3 :
PD3 :

OC2A
OC2B

TC2
(8ﾋﾞｯﾄ,非同期)

PD0,2 :
PE3 :
PE2 :

OC3A/B
T3
ICP3

TC3(16ﾋﾞｯﾄ)PD1,2 :
PE1 :
PE0 :

OC4A/B
T4
ICP4

PB7～0
PＣ6～0
PD7～0
PE3～0

TC4
(16ﾋﾞｯﾄ)

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 8頁

ATmega328PB
5. ﾋﾟﾝ配置

24
1
23
2
22
3
4 ATmega328PB 21
20
5
19
6
18
7 (注)
17
8

PC1 (ADC1/SCK1/PTCY/PCINT9)
PC0 (ADC0/MISO1/PTCY/PCINT8)
PE3 (ADC7/T3/MOSI1/PTCY/PCINT27)
GND
AREF
PE2 (ADC6/ICP3/SS1/PTCY/PCINT26)
AVCC
PB5 (XCK1/SCK0/PTCXY/PCINT5)(PCINT21/PTCXY/OC0B/T1) PD5(PCINT22/PTCXY/OC0A/AIN0) PD6(PCINT23/PTCXY/AIN1) PD7(PCINT0/PTCXY/CLKO/ICP1) PB0(PCINT1/PTCXY/OC1A) PB1(PCINT2/SS0/OC1B) PB2(PCINT3/PTCXY/MOSI0/TXD1/OC2A) PB3(PCINT4/PTCXY/MISO0/RXD1) PB4(PCINT19/PTCXY/OC2B/INT1) PD3(PCINT20/PTCXY/XCK0/T0) PD4(PCINT24/SDA1/PTCXY/ICP4/ACO) PE0
VCC
GND(PCINT25/PTCXY/SCL1/T4) PE1(PCINT6/XTAL1/TOSC1) PB6(PCINT7/XTAL2/TOSC2) PB7

32
31
30
29
28
27
26
25

目印

9
10
11
12
13
14
15
16

32TQFP・32VQFN

PD2 (INT0/OC3B/OC4B/PTCXY/PCINT18)
PD1 (OC4A/TXD0/PTCXY/PCINT17)
PD0 (OC3A/RXD0/PTCXY/PCINT16)
PC6 (RESET/PCINT14)
PC5 (ADC5/SCL0/PTCY/PCINT13)
PC4 (ADC4/SDA0/PTCY/PCINT12)
PC3 (ADC3/PTCY/PCINT11)
PC2 (ADC2/PTCY/PCINT10)

図5-1. ﾋﾟﾝ配置

注: VQFNの底面ﾊﾟｯﾄﾞはGNDに半田付けされるべきです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

電源接地
ﾃﾞｼﾞﾀﾙ機能
ｱﾅﾛｸﾞ機能ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ、ﾃﾞﾊﾞｯｸﾞ、検査
発振器/ｸﾘｽﾀﾙ ﾋﾟﾝ

DS40001906C - 9頁

ATmega328PB
5.1. ﾋﾟﾝ概要
5.1.1. VCC
ﾃﾞｼﾞﾀﾙ電源ﾋﾟﾝ。

5.1.2. GND
接地ﾋﾟﾝ。

5.1.3. PB7～PB0 (ﾎﾟｰﾄB) XTAL1/XTAL2/TOSC1/TOSC2
ﾎﾟｰﾄBは(ﾋﾟﾝ毎に選択される)内蔵ﾌﾟﾙｱｯﾌﾟ抵抗付きの8ﾋﾞｯﾄの双方向入出力ﾎﾟｰﾄです。ﾎﾟｰﾄB出力緩衝部は共に高い吐き出し/吸い込み能力の対称駆動特性です。入力の時にﾌﾟﾙｱｯﾌﾟ抵抗が有効の場合、外部的にLowへ引き込まれたﾎﾟｰﾄBﾋﾟﾝには吐き出し電流が流れます。例えｸﾛｯｸが動作していなくても、ﾘｾｯﾄ条件の間、ﾎﾟｰﾄBﾋﾟﾝはHi-Zになります。
ｸﾛｯｸ選択ﾋｭｰｽﾞ設定に依存し、PB6は発振器反転増幅器への入力や内部ｸﾛｯｸ操作回路の入力として使われます。
ｸﾛｯｸ選択ﾋｭｰｽﾞ設定に依存し、PB7は発振器反転増幅器からの出力として使われます。
校正付き内蔵RC発振器がﾁｯﾌﾟ(ｼｽﾃﾑ) ｸﾛｯｸ元として使われる場合、非同期状態ﾚｼﾞｽﾀ(ASSR)の非同期動作(AS2)ﾋﾞｯﾄが設定(1)されると、PB7,6は非同期ﾀｲﾏ/ｶｳﾝﾀ2用のTOSC2,1ﾋﾟﾝとして使われます。
ﾎﾟｰﾄBの各特殊機能は「ﾎﾟｰﾄBの交換機能」と「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」で詳しく述べられます。

5.1.4. PC5～PC0 (ﾎﾟｰﾄC)
ﾎﾟｰﾄCは(ﾋﾟﾝ毎に選択される)内蔵ﾌﾟﾙｱｯﾌﾟ抵抗付きの7ﾋﾞｯﾄの双方向入出力ﾎﾟｰﾄです。ﾎﾟｰﾄC出力緩衝部は共に高い吐き出し/吸い込み能力の対称駆動特性です。入力の時にﾌﾟﾙｱｯﾌﾟ抵抗が有効の場合、外部的にLowへ引き込まれたﾎﾟｰﾄCﾋﾟﾝには吐き出し電流が流れます。例えｸﾛｯｸが動作していなくても、ﾘｾｯﾄ条件の間、ﾎﾟｰﾄCﾋﾟﾝはHi-Zになります。

5.1.5. PC6/RESETRSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、PC6はI/Oﾋﾟﾝとして使われます。PC6の電気的特性がﾎﾟｰﾄCの他のﾋﾟﾝのそれらと異なることに注意してください。
RSTDISBLﾋｭｰｽﾞが非ﾌﾟﾛｸﾞﾗﾑ(1)の場合、PC6はﾘｾｯﾄ入力として使われます。ｸﾛｯｸが動作していなくても、最小ﾊﾟﾙｽ幅より長いこのﾋﾟﾝのLowﾚﾍﾞﾙはﾘｾｯﾄを生成します。
ﾎﾟｰﾄCの各特殊機能は「ﾎﾟｰﾄCの交換機能」で詳しく述べられます。

5.1.6. PD7～PD0 (ﾎﾟｰﾄD)
ﾎﾟｰﾄDは(ﾋﾟﾝ毎に選択される)内蔵ﾌﾟﾙｱｯﾌﾟ抵抗付きの8ﾋﾞｯﾄの双方向入出力ﾎﾟｰﾄです。ﾎﾟｰﾄD出力緩衝部は共に高い吐き出し/吸い込み能力の対称駆動特性です。入力の時にﾌﾟﾙｱｯﾌﾟ抵抗が有効の場合、外部的にLowへ引き込まれたﾎﾟｰﾄDﾋﾟﾝには吐き出し電流が流れます。例えｸﾛｯｸが動作していなくても、ﾘｾｯﾄ条件の間、ﾎﾟｰﾄDﾋﾟﾝはHi-Zになります。
ﾎﾟｰﾄDの各特殊機能は「ﾎﾟｰﾄDの交換機能」で詳しく述べられます。

5.1.7. PE3～PE0 (ﾎﾟｰﾄE)
ﾎﾟｰﾄEは(ﾋﾟﾝ毎に選択される)内蔵ﾌﾟﾙｱｯﾌﾟ抵抗付きの4ﾋﾞｯﾄの双方向入出力ﾎﾟｰﾄです。ﾎﾟｰﾄE出力緩衝部は共に高い吐き出し/吸い込み能力の対称駆動特性です。入力の時にﾌﾟﾙｱｯﾌﾟ抵抗が有効の場合、外部的にLowへ引き込まれたﾎﾟｰﾄEﾋﾟﾝには吐き出し電流が流れます。例えｸﾛｯｸが動作していなくても、ﾘｾｯﾄ条件の間、ﾎﾟｰﾄEﾋﾟﾝはHi-Zになります。
ﾎﾟｰﾄEの各特殊機能は「ﾎﾟｰﾄEの交換機能」で詳しく述べられます。

5.1.8. AVCC
AVCCはADC7,6、ﾎﾟｰﾄC(3～0)とA/D変換器用供給電圧(電源)ﾋﾟﾝです。例えA/D変換が使われなくても、外部的にVCCへ接続されるべきです。A/D変換が使われる場合、VCCから低域通過濾波器を通して接続されるべきです。ﾎﾟｰﾄC(6～4)がﾃﾞｼﾞﾀﾙ供給電圧(電源:VCC)を使うことに注意してください。

5.1.9. AREF
AREFはA/D変換器用ｱﾅﾛｸﾞ基準(電圧)ﾋﾟﾝです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 10頁

ATmega328PB
6. 入出力多重化
各ﾋﾟﾝは既定によって汎用入出力としてﾎﾟｰﾄによって制御され、代わりに周辺機能の1つに割り当てることもできます。
下表はﾎﾟｰﾄ入出力ﾋﾟﾝに多重化される周辺機能信号を記述します。
表6-1. ﾎﾟｰﾄ機能多重化
ﾋﾟﾝ番号

ﾎﾟｰﾄ ﾊﾟｯﾄﾞ EXTINT

PCINT

ADC・AC PTC X PTC Y
X3

PD3

2

PD4

PCINT203PE0PCINT24

4

VCC

5

GND

INT1

PCINT19

1

6

PE1

PCINT25

7

PB6

PCINT6

ACO

OSC

Y11

T/C

USART

TWI

SPI

OC2B

X4

Y12

T0

X8

Y16

ICP4

XCK0
SDA1

X9

Y17

T4

SCL1

XTAL1/TOSC18PB7PCINT79PD5PCINT21

XTAL2/TOSC2

10

PD6

PCINT22

AIN0

11

PD7

PCINT23

AIN1

12

PB0

PCINT0

X5

Y13

OC0B/T1

X6

Y14

OC0A

X7

Y15

X10

Y18

CLKO

ICP1

13

PB1

PCINT1

X11

Y19

OC1A

14

PB2

PCINT2

X12

Y20

OC1B
OC2A

SS0

15

PB3

PCINT3

X13

Y21

TXD1

MOSI0

16

PB4

PCINT4

X14

Y22

RXD1

MISO0

17

PB5

PCINT5

X15

Y23

XCK1

SCK0

18

AVCC

19

PE2

20

AREF

21

GND

PCINT26

ADC6

Y6

ICP3

T3

SS1

22

PE3

PCINT27

ADC7

Y7

23

PC0

PCINT8

ADC0

Y0

MISO1
SCK1

24

PC1

PCINT9

ADC1

Y1

25

PC2

PCINT10

ADC2

Y2

MOSI1

26

PC3

PCINT11

ADC3

Y3

27

PC4

PCINT12

ADC4

Y4

SDA0

ADC5

Y5

SCL0

28

PC5

PCINT1329

PC6/RESETPCINT1430

PD0PCINT16

X0

Y8

OC3A

RXD0

31

PD1

PCINT17

X1

Y9

OC4A

TXD0

32

PD2

PCINT18

X2

Y10

OC3B/OC4B

INT0© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 11頁

ATmega328PB
7. 資料
包括的なﾃﾞｰﾀｼｰﾄ、応用記述、開発ﾂｰﾙ群はhttp://www.microchip.com/design-centers/8-bit/microchip-avr-mcusでのﾀﾞｳﾝﾛｰﾄﾞ
で利用可能です。

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 12頁

ATmega328PB
9. AVR CPU ｺｱ
9.1. 概要
ここでは一般的なAVRｺｱ構造について説明します。このCPUｺｱの主な機能は正しいﾌﾟﾛｸﾞﾗﾑ実行を保証することです。従ってCPU
はﾒﾓﾘ ｱｸｾｽ、計算実行、周辺制御、割り込み操作ができなければなりません。
最大効率と平行処理のため、AVRはﾌﾟﾛｸﾞﾗﾑとﾃﾞｰﾀに対してﾒﾓ 図9-1. AVR基本構造の構成図
ﾘとﾊﾞｽを分離するﾊｰﾊﾞｰﾄﾞ構造を使います。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ内の命令は単一段のﾊﾟｲﾌﾟﾗｲﾝで実行されます。1命令の実行中に次の命令がﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘから事前取得されます。この概念は全部のｸﾛｯｸ周期で命令実行を可能にします。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘは実ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ
装書き換え可能なﾌﾗｯｼｭ ﾒﾓﾘです。
ﾚｼﾞｽﾀ ﾌｧｲﾙ
R31 (ZH) R30 (ZL)
高速ﾚｼﾞｽﾀ ﾌｧｲﾙは1ｸﾛｯｸ周期ｱｸｾｽの32個の8ﾋﾞｯﾄ長汎用ﾚｼﾞ
R29 (YH) R28 (YL)
ｽﾀを含みます。これは1ｸﾛｯｸ周期ALU(Arithmetic Logic Unit)
R27 (XH) R26 (XL)
R25
R24
操作を許します。代表的なALU操作では2つのｵﾍﾟﾗﾝﾄﾞがﾚｼﾞｽﾀ
R23
R22
ﾌﾟﾛｸﾞﾗﾑ用
ﾌｧｲﾙからの出力で、1ｸﾛｯｸ周期内でその操作が実行され、そのR21
R20
ﾌﾗｯｼｭ ﾒﾓﾘ
R19
R18
結果がﾚｼﾞｽﾀ ﾌｧｲﾙに書き戻されます。
R17
R16
32個中の6つのﾚｼﾞｽﾀは効率的なｱﾄﾞﾚｽ計算ができるﾃﾞｰﾀ空間
R15
R14
R13
R12
ｱﾄﾞﾚｽ指定用に3つの16ﾋﾞｯﾄ長間接ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀ用ﾚｼﾞｽﾀとして
R11
R10
使われます。これらｱﾄﾞﾚｽ ﾎﾟｲﾝﾀの1つはﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ
R9
R8
命令ﾚｼﾞｽﾀ
R7
R6内の定数表参照用ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀとしても使えます。これら16ﾋﾞｯﾄ
R5
R4長付加機能ﾚｼﾞｽﾀはX,Y,Zﾚｼﾞｽﾀで、本項内で後述されます。
R3
R2
R1
R0
ALUはﾚｼﾞｽﾀ間またはﾚｼﾞｽﾀと定数間の算術及び論理操作を命令復号支援します。単一ﾚｼﾞｽﾀ操作もALUで実行できます。算術演算
操作後、操作結果についての情報を反映するためにｽﾃｰﾀｽ ﾚ
ｼﾞｽﾀ(SREG)が更新されます。
ﾌﾟﾛｸﾞﾗﾑの流れは条件/無条件分岐や呼び出し命令によって提供され、全ｱﾄﾞﾚｽ空間を直接ｱﾄﾞﾚｽ指定できます。AVR命令の多
くは16ﾋﾞｯﾄ語(ﾜｰﾄﾞ)形式です。全てのﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘのｱﾄﾞﾚｽはﾃﾞｰﾀ ﾒﾓﾘ
ｽﾀｯｸ ﾎﾟｲﾝﾀ(訳注:定数のみを除き)16または32ﾋﾞｯﾄ長命令を含みます。
ﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ空間はﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑ領域と応用ﾌﾟﾛｸﾞﾗﾑ
ALU
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ
領域の2つに分けられます。どちらの領域にも書き込み禁止や読み書き防止用の専用施錠ﾋﾞｯﾄがあります。応用ﾌﾗｯｼｭ ﾒﾓﾘ領域内に書き込むSPM命令はﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑ領域内に属さ(存在し)なければなりません。
割り込みやｻﾌﾞﾙｰﾁﾝ呼び出し中、戻りｱﾄﾞﾚｽを示すﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC)はｽﾀｯｸに保存されます。ｽﾀｯｸは一般的なﾃﾞｰﾀ用SRAM上に
実際には割り当てられ、従ってｽﾀｯｸ容量は全SRAM容量とSRAM使用量でのみ制限されます。全ての使用者ﾌﾟﾛｸﾞﾗﾑはﾘｾｯﾄ処理ﾙｰ
ﾁﾝで(ｻﾌﾞﾙｰﾁﾝ呼び出しや割り込みが実行される前に)、ｽﾀｯｸ ﾎﾟｲﾝﾀ(SP)を初期化しなければなりません。SPはI/O空間で読み書きｱｸｾｽが可能です。ﾃﾞｰﾀ用SRAMはAVR構造で支援される5つの異なるｱﾄﾞﾚｽ指定種別を通して容易にｱｸｾｽできます。
AVR構造に於けるﾒﾓﾘ空間は全て直線的な普通のﾒﾓﾘ配置です。
柔軟な割り込み部にはI/O空間の各制御ﾚｼﾞｽﾀとｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の特別な全割り込み許可(I)ﾋﾞｯﾄがあります。全ての割り込み
は割り込みﾍﾞｸﾀ表に個別の割り込みﾍﾞｸﾀを持ちます。割り込みには割り込みﾍﾞｸﾀ表の位置に従う優先順があります。下位側割り込
みﾍﾞｸﾀ ｱﾄﾞﾚｽが高い優先順位です。
I/Oﾒﾓﾘ空間は制御ﾚｼﾞｽﾀ、SPI、他のI/O機能としてCPU周辺機能用の64ｱﾄﾞﾚｽを含みます。I/Oﾒﾓﾘは直接またはﾚｼﾞｽﾀ ﾌｧｲﾙの次のﾃﾞｰﾀ空間位置$20～$5Fとしてｱｸｾｽできます。加えて、本ﾃﾞﾊﾞｲｽはST/STS/STDとLD/LDS/LDD命令だけが使えるSRAM内の$60～$FFに拡張I/O空間を持ちます。

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 13頁

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

9.3.1. SREG - ｽﾃｰﾀｽ ﾚｼﾞｽﾀ (Status Register)
名称 : SREG
変位 : $5F ($3F)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$3Fです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

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

● ﾋﾞｯﾄ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)ﾌﾗｸﾞは算術及び論理操作でのｷｬﾘｰ(またはﾎﾞﾛｰ)を示します。詳細情報については「命令要約」記述をご覧ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 14頁

ATmega328PB
9.4. 汎用ﾚｼﾞｽﾀ ﾌｧｲﾙ

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

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

$00
$01
$02

～

R0
R1
R2

汎用
ﾚｼﾞｽﾀ
ﾌｧｲﾙ

R13
R14
R15
R16
R17

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

～

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

R26
R27
R28
R29
R30
R31

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

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

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

図9-3. X,Y,Zﾚｼﾞｽﾀ構成図
XH (上位)
15
7
X ﾚｼﾞｽﾀ
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

9.5. ｽﾀｯｸ ﾎﾟｲﾝﾀ
ｽﾀｯｸは主に一時ﾃﾞｰﾀの保存、局所変数の保存、割り込みとｻﾌﾞﾙｰﾁﾝ呼び出し後の戻りｱﾄﾞﾚｽの保存に使われます。ｽﾀｯｸは高位ﾒ
ﾓﾘから低位ﾒﾓﾘへ伸長するように実行されます。ｽﾀｯｸ ﾎﾟｲﾝﾀ ﾚｼﾞｽﾀは常にこのｽﾀｯｸの先頭(訳注:次に使われるべき位置)を指し示します。ｽﾀｯｸ ﾎﾟｲﾝﾀはｻﾌﾞﾙｰﾁﾝや割り込みのｽﾀｯｸが配置されるﾃﾞｰﾀSRAMのｽﾀｯｸ領域を指し示します。ｽﾀｯｸPUSH命令はｽﾀｯｸ
ﾎﾟｲﾝﾀを減らします。
ﾃﾞｰﾀSRAM内のｽﾀｯｸ空間はｻﾌﾞﾙｰﾁﾝ呼び出しの実行や割り込みの許可の何れにも先立ってﾌﾟﾛｸﾞﾗﾑによって定義されなければなりません。初期ｽﾀｯｸ ﾎﾟｲﾝﾀ値は内部SRAMの最終ｱﾄﾞﾚｽに等しく、ｽﾀｯｸ ﾎﾟｲﾝﾀはSRAMの先頭以上に設定されなければなりません。
ｽﾀｯｸ ﾎﾟｲﾝﾀの詳細については表をご覧ください。
表9-1. ｽﾀｯｸ ﾎﾟｲﾝﾀ命令
命令
ｽﾀｯｸ ﾎﾟｲﾝﾀ
PUSH-1
CALL,ICALL,RCALL
-2
POP
+1
RET,RETI+2

内容
ﾃﾞｰﾀがｽﾀｯｸ上に押し込まれます。
ｻﾌﾞﾙｰﾁﾝ呼び出しまたは割り込みでの戻りｱﾄﾞﾚｽがｽﾀｯｸ上に押し込まれます。
ﾃﾞｰﾀがｽﾀｯｸから引き出されます。
ｻﾌﾞﾙｰﾁﾝまたは割り込みからの復帰での戻りｱﾄﾞﾚｽがｽﾀｯｸから引き出されます。

AVRのｽﾀｯｸ ﾎﾟｲﾝﾀはI/O空間内の2つの8ﾋﾞｯﾄ ﾚｼﾞｽﾀとして実装されます。実際に使われるﾋﾞｯﾄ数は(そのﾃﾞﾊﾞｲｽ)実装に依存します。SPLだけが必要とされる程に小さいAVR構造の実装(ﾃﾞﾊﾞｲｽ)のﾃﾞｰﾀ空間もあることに注意してください。その場合、SPHﾚｼﾞｽﾀは存在しません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 15頁

ATmega328PB
9.5.1. SPH,SPL - ｽﾀｯｸ ﾎﾟｲﾝﾀ ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (Stack Pointer Register Low and High byte)
名称 : SPHとSPL (SP)変位 : $5D ($3D)
ﾘｾｯﾄ : $08FF
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$3Dです。
SPHとSPLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のSPを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

SP11

SP10

SP9

SP8

R
0

R
0

R
0

R
0

R/W
1

R/W
0

R/W
0

R/W
0

7

6

5

4

3

2

1

0

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

● ﾋﾞｯﾄ11～0 - SP11～0 : ｽﾀｯｸ ﾎﾟｲﾝﾀ値 (Stack Pointer value)

SPHとSPLはSPに組み合わされます。

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

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

T2

T3

T4

T1

T2

T3

T4

CPUｸﾛｯｸ clkCPU
初回命令取得
初回命令実行/第2命令取得
第2命令実行/第3命令取得
第3命令実行/第4命令取得
図9-5. 1周期ALU命令
CPUｸﾛｯｸ clkCPU
総合実行時間ﾚｼﾞｽﾀ ｵﾍﾟﾗﾝﾄﾞ取得
ALU演算実行
結果書き戻し9.7. ﾘｾｯﾄと割り込みの扱い
AVRは多くの異なる割り込み元を提供します。これらの割り込みと独立したﾘｾｯﾄ ﾍﾞｸﾀ各々はﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間内に独立したﾌﾟﾛｸﾞﾗﾑ
ﾍﾞｸﾀを持ちます。全ての割り込みは割り込みを許可するために、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと共に論理1が書かれなければならない個別の許可ﾋﾞｯﾄを割り当てられます。BLB02またはBLB12 ﾌﾞｰﾄ施錠ﾋﾞｯﾄがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ値
によっては割り込みが自動的に禁止されるかもしれません。この特質はｿﾌﾄｳｪｱ保護を改善します。
既定でのﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間の最下位ｱﾄﾞﾚｽはﾘｾｯﾄと割り込みﾍﾞｸﾀとして定義されます。下位側ｱﾄﾞﾚｽがより高い優先順位です。ﾘｾｯﾄ
が最高優先順位で次が外部割り込み要求0(INT0)です。割り込みﾍﾞｸﾀはMCU制御ﾚｼﾞｽﾀ(MCUCR)の割り込みﾍﾞｸﾀ選択(IVSEL)ﾋﾞｯﾄの設定(1)によってﾌﾞｰﾄ ﾌﾗｯｼｭ領域先頭へ移動できます。ﾘｾｯﾄ ﾍﾞｸﾀもBOOTRSTﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾑ(0)によってﾌﾞｰﾄ ﾌﾗｯｼｭ領域先頭へ移動できます。
割り込みが起こると全割り込み許可(I)ﾋﾞｯﾄが解除(0)され、全ての割り込みは禁止されます。使用者ｿﾌﾄｳｪｱは多重割り込みを許可するため、全割り込み許可(I)ﾋﾞｯﾄへ論理1を書けます。その後全ての許可した割り込みが現在の割り込みﾙｰﾁﾝで割り込めます。全割り込み許可(I)ﾋﾞｯﾄは割り込みからの復帰(RETI)命令が実行されると、自動的に設定(1)されます。
根本的に2つの割り込み形式があります。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 16頁

ATmega328PB
1つ目の形式は割り込み要求ﾌﾗｸﾞを設定(I)する事象によって起動されます。これらの割り込みでは割り込み処理ﾙｰﾁﾝを実行するために、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀは対応する現実の割り込みﾍﾞｸﾀを指示し、ﾊｰﾄﾞｳｪｱが対応する割り込み要求ﾌﾗｸﾞを解除(0)します。割り込み要求ﾌﾗｸﾞは解除(0)されるべきﾌﾗｸﾞのﾋﾞｯﾄ位置へ論理1を書くことによっても解除(0)できます。対応する割り込み許可ﾋﾞｯﾄが解除(0)されている間に割り込み条件が起こると、割り込み要求ﾌﾗｸﾞが設定(1)され、割り込みが許可されるか、またはこのﾌﾗｸﾞがｿﾌﾄｳｪｱによって解除(0)されるまで記憶(保持)されます。同様に、全割り込み許可(I)ﾋﾞｯﾄが解除(0)されている間に1つまたはより多くの割り込み条件が起こると、対応する割り込み要求ﾌﾗｸﾞが設定(1)されて全割り込み許可(I)ﾋﾞｯﾄが設定(1)されるまで記憶され、その(I=1)後で優先順に従って実行されます。
2つ目の割り込み形式は割り込み条件が存在する限り起動し(続け)ます。これらの割り込みは必ずしも割り込み要求ﾌﾗｸﾞを持っているとは限りません。割り込みが許可される前に割り込み条件が消滅すると、この割り込みは起動されません。
AVRが割り込みから抜け出すと常に主ﾌﾟﾛｸﾞﾗﾑへ戻り、何れかの保留割り込みが扱われる前に1つ以上の命令を実行します。
ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)は割り込みﾙｰﾁﾝへ移行時の保存も、復帰時の再設定も自動的に行われません。これはｿﾌﾄｳｪｱによって扱われなければなりません。
割り込みを禁止するためにCLI命令を使うと、割り込みは直ちに禁止されます。CLI命令と同時に割り込みが起こっても、CLI命令後に割り込みは実行されません。次例は時間制限EEPROM書き込み手順中に割り込みを無効とするために、これがどう使えるかを示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
IN
R16,SREG
CLI
SBI
EECR,EEMPE
SBIEECR,EEPE
OUT
SREG,R16
C言語ﾌﾟﾛｸﾞﾗﾑ例
char cSREG;cSREG = SREG;__disable_interrupt();
EECR |= (1<<EEMPE);
EECR |= (1<<EEPE);
SREG = cSREG:;ｽﾃｰﾀｽ ﾚｼﾞｽﾀを保存;EEPROM書き込み手順中割り込み禁止;EEPROM主書き込み許可;EEPROM書き込み開始;ｽﾃｰﾀｽ ﾚｼﾞｽﾀを復帰/* ｽﾃｰﾀｽ ﾚｼﾞｽﾀ保存変数定義 *//* ｽﾃｰﾀｽ ﾚｼﾞｽﾀを保存 *//* EEPROM書き込み手順中割り込み禁止 *//* EEPROM主書き込み許可 *//* EEPROM書き込み開始 *//* ｽﾃｰﾀｽ ﾚｼﾞｽﾀを復帰 */注: 「ｺｰﾄﾞ例について」を参照してください。
割り込みを許可するためにSEI命令を使うと、次例で示されるようにどの保留割り込みにも先立ってSEI命令の次の命令が実行されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SEI
SLEEP
C言語ﾌﾟﾛｸﾞﾗﾑ例__enable_interrupt();__sleep();;全割り込み許可;休止形態移行 (割り込み待ち)/* 全割り込み許可 *//* 休止形態移行 (割り込み待ち) */注: SLEEP命令までは割り込み禁止、保留割り込み実行前に休止形態へ移行します。
注: 「ｺｰﾄﾞ例について」を参照してください。
関連ﾘﾝｸ

MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
BTLDR - ﾌﾞｰﾄ ﾛｰﾀﾞ支援 - 書き込み中読み出し可能な自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 17頁

ATmega328PB
10. AVRのﾒﾓﾘ
10.1. 概要
本項は本ﾃﾞﾊﾞｲｽの各種ﾒﾓﾘを記述します。AVR構造にはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ空間とﾃﾞｰﾀ ﾒﾓﾘ空間の2つの主なﾒﾓﾘ空間を持ちます。加えて本ﾃﾞﾊﾞｲｽはﾃﾞｰﾀ保存用EEPROMﾒﾓﾘが特徴です。全てのﾒﾓﾘ空間は一般的な直線的ｱﾄﾞﾚｽです。

10.2. 実装書き換え可能なﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ
ATmega328PBはﾌﾟﾛｸﾞﾗﾑ保存用に実装書き換え可能な16Kﾊﾞｲ ﾄのﾌﾗｯｼｭ ﾒﾓﾘをﾁｯﾌﾟ上に含みます。全てのAVR命令が16または32ﾋﾞｯﾄ幅のため、ﾌﾗｯｼｭ ﾒﾓﾘは16K×16ﾋﾞｯﾄとして構成されます。
ATmega328PBのﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(PC)は14ﾋﾞｯﾄ幅、故に16Kﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ位置のｱﾄﾞﾚｽ指定です。ﾌﾞｰ 図10-1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ配置図
ﾄ ﾌﾟﾛｸﾞﾗﾑ領域の操作と関係するｿﾌﾄｳｪｱ保護用ﾌﾞｰﾄ施錠ﾋﾞｯﾄは「BTLDR - ﾌﾞｰﾄ ﾛｰﾀﾞ - 書き込み$0000
中読み出し可能な自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」で詳細に記述されます。SPIﾋﾟﾝを使うﾌﾗｯｼｭ ﾃﾞｰﾀ直列書き込
応用ﾌﾟﾛｸﾞﾗﾑ用
みの記述については「MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ」を参照してください。
ﾌﾗｯｼｭ ﾒﾓﾘ
定数表はﾌﾟﾛｸﾞﾗﾑ用ﾒﾓﾘ取得(LPM)命令を使って全てのﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ ｱﾄﾞﾚｽ空間に配置することができます。
命令の取得と実行のﾀｲﾐﾝｸﾞ図は「命令実行ﾀｲﾐﾝｸﾞ」で示されます。
関連ﾘﾝｸ BTLDR - ﾌﾞｰﾄ ﾛｰﾀﾞ支援 - 書き込み中読み出し可能な自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
命令実行ﾀｲﾐﾝｸﾞ

ﾌﾞｰﾄ ﾌﾟﾛｸﾞﾗﾑ用
ﾌﾗｯｼｭ ﾒﾓﾘ $3FFF

10.3. ﾃﾞｰﾀ用SRAMﾒﾓﾘ
下図は本ﾃﾞﾊﾞｲｽのSRAMﾒﾓﾘ構成方法を示します。
本ﾃﾞﾊﾞｲｽはINやOUT命令で予約した64位置で支援されるよりも多くの周辺機能部を持つ複合ﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。SRAM(ﾃﾞｰﾀ空間)内$60～$FFの拡張I/O空間に対してはLD/LDS/LDDとST/STS/STD命令だけが使えます。
下位2304ﾃﾞｰﾀ ﾒﾓﾘ位置はﾚｼﾞｽﾀ ﾌｧｲﾙ、I/Oﾒﾓﾘ、拡張I/Oﾒﾓﾘ、ﾃﾞｰﾀ用内蔵SRAMに充てます。先頭の32位置はﾚｼﾞｽﾀ ﾌｧｲﾙ、次の64位置は標準I/Oﾒﾓﾘ、その次の160位置は拡張I/Oﾒﾓﾘ、そして次の2048位置はﾃﾞｰﾀ用内蔵SRAMに充てます。
5つの異なるｱﾄﾞﾚｽ指定種別でﾃﾞｰﾀ ﾒﾓﾘ(空間)を網羅します。
図10-2. ﾃﾞｰﾀ ﾒﾓﾘ配置図
・ 直接
$0000
R0
ﾚｼﾞｽﾀ ﾌｧｲﾙ
- 直接ｱﾄﾞﾚｽ指定はﾃﾞｰﾀ空間全体に届きます。
～～(32×8)$001F
R31
・ 変位付き間接$00$0020
I/Oﾚｼﾞｽﾀ
～～- 変位付き間接動作はYまたはZﾚｼﾞｽﾀで与えられる基準ｱﾄﾞﾚｽからの63ｱﾄﾞﾚｽ位置に届(64×8)
$3F
$005F
きます。
拡張I/Oﾚｼﾞｽﾀ $0060 $0060～～
・ 間接(160×8)$00FF $00FF- ﾚｼﾞｽﾀ ﾌｧｲﾙ内のR26～R31ﾚｼﾞｽﾀは間接ｱﾄﾞﾚｽ指定ﾎﾟｲﾝﾀ用ﾚｼﾞｽﾀが特徴です。
$0100 $0100
内蔵SRAM～～・ 事前減少付き間接(2K×8)$08FF $08FF- (使われる)X,Y,Zｱﾄﾞﾚｽ ﾚｼﾞｽﾀが減少(-1)されます。
注: 赤字はI/Oｱﾄﾞﾚｽ
・ 事後増加付き間接- (使われる)X,Y,Zｱﾄﾞﾚｽ ﾚｼﾞｽﾀが増加(+1)されます。
本ﾃﾞﾊﾞｲｽの32個の汎用ﾚｼﾞｽﾀ、64個のI/Oﾚｼﾞｽﾀ、160個の拡張I/Oﾚｼﾞｽﾀ、2Kﾊﾞｲﾄのﾃﾞｰﾀ用内蔵SRAMはこれら全てのｱﾄﾞﾚｽ指定
種別を通して全部ｱｸｾｽできます。

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

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

ｱﾄﾞﾚｽ
書き込み
読み込み

© 2018 Microchip Technology Inc.

T1

T2

(T1)

直前のｱﾄﾞﾚｽ

有効ｱﾄﾞﾚｽ

CPUｸﾛｯｸ clkCPU

完全ﾃﾞｰﾀｼｰﾄ

ﾃﾞｰﾀ
WR
ﾃﾞｰﾀ
RD

DS40001906C - 18頁

ATmega328PB
10.4. ﾃﾞｰﾀ用EEPROMﾒﾓﾘ
ATmega328PBは1Kﾊﾞｲﾄのﾃﾞｰﾀ用EEPROMを含みます。それは単一ﾊﾞｲﾄが読み書きできる分離したﾃﾞｰﾀ空間として構成されます。
CPUとEEPROM間のｱｸｾｽは以降のEEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ、EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ、EEPROM制御ﾚｼﾞｽﾀで詳細に記述されます。
SPIまたは並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞでのEEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞの詳細な記述は関連ﾘﾝｸをご覧ください。
関連ﾘﾝｸ MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ

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

10.4.2. EEPROMﾃﾞｰﾀ化けの防止
低VCCの期間中、正しく動作するための供給電圧がCPUとEEPROMに対して低すぎるためにEEPROMﾃﾞｰﾀが化け得ます。これらの問題はEEPROMを使う基板段階の装置と同じで、同じ設計上の解決策が適用されるべきです。
EEPROMﾃﾞｰﾀ化けは電圧が低すぎる時の2つの状態によって起こされ得ます。1つ目として、EEPROMへの通常の書き込み手順は正しく動作するための最低電圧が必要です。2つ目として、供給電圧が低すぎると、CPU自身が命令を間違って実行し得ます。
EEPROMﾃﾞｰﾀ化けは次の推奨設計によって容易に避けられます。
不充分な供給電源電圧の期間中、AVRのRESETを活性(Low)に保ってください。これは内蔵低電圧検出器(BOD)を許可することによって行えます。内蔵BODの検出電圧が必要とした検出電圧と一致しない場合、外部低VCCﾘｾｯﾄ保護回路が使えます。書き込み
動作実行中にﾘｾｯﾄが起こると、この書き込み操作は供給電源電圧が充分ならば(継続)完了されます。

10.5. I/Oﾒﾓﾘ (ﾚｼﾞｽﾀ)
本ﾃﾞﾊﾞｲｽのI/O空間定義は「ﾚｼﾞｽﾀ要約」で示されます。
ﾃﾞﾊﾞｲｽの全ての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が加算されなければなりません。本ﾃﾞﾊﾞｲｽはINやOUT命令で予約した64位置で支援されるより多くの周辺機能部を持つ複合ﾏｲｸﾛ ｺﾝﾄﾛｰﾗです。SRAM(ﾃﾞｰﾀ空間)内$60～$FFの拡張I/O領域に対してはLD/LDS/LDDとST/STS/ STD命
令だけが使えます。
将来のﾃﾞﾊﾞｲｽとの共通性を保つため、ｱｸｾｽされる場合、予約ﾋﾞｯﾄは0が書かれるべきです。予約済みI/Oﾒﾓﾘ ｱﾄﾞﾚｽは決して書かれるべきではありません。
状態ﾌﾗｸﾞのいくつかはそれらへ’1’を書くことによって解除(0)され、これはﾌﾗｸﾞ説明で記述されます。CBIとSBI命令は他の多くのAVRと異なり、指定ﾋﾞｯﾄだけを操作し、従って状態ﾌﾗｸﾞのようなものを含むﾚｼﾞｽﾀに使えることに注意してください。CBIとSBI命令は(I/Oｱﾄﾞﾚｽ)$00～$1Fのﾚｼﾞｽﾀでのみ動作します。
I/Oと周辺制御ﾚｼﾞｽﾀは以降の項で説明されます。
関連ﾘﾝｸ MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
命令要約

10.5.1. 汎用I/Oﾚｼﾞｽﾀ本ﾃﾞﾊﾞｲｽは3つの汎用I/Oﾚｼﾞｽﾀを含みます。これらのﾚｼﾞｽﾀはどの情報の格納にも使え、特に全体変数や状態ﾌﾗｸﾞの格納に有用です。(I/O)ｱﾄﾞﾚｽ範囲$00～$1Fの汎用I/OﾚｼﾞｽﾀはSBI,CBI,SBIS,SBIC命令の使用で直接ﾋﾞｯﾄ ｱｸｾｽが可能です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 19頁

ATmega328PB(訳注) 参考のため、以下のEEPROMｱｸｾｽ方法を追加しました。

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

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

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

10.a.4. 書き込み(特定)位置を書くため、使用者はEEARにｱﾄﾞﾚｽ、EEDRにﾃﾞｰﾀを書かなければなりません。EEPMnﾋﾞｯﾄが'10'なら、(EEMPEが1を書かれる後の4周期内の)EEPEの1書き込みは書き込み動作だけを起動します(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間は表10-1.で与えられます)。EEPEﾋﾞｯﾄ
は書き込み動作が完了されるまで設定(1)に留まります。書かれるべき位置が書き込み前に消去されてしまっていなければ、元の保存したﾃﾞｰﾀは失ったとみなされなければなりません。ﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作中、他のどのEEPROM操作の実行も不可能です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 20頁

ATmega328PB
10.6. ﾒﾓﾘ関係ﾚｼﾞｽﾀ
10.6.1. 16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ
AVRのﾃﾞｰﾀ ﾊﾞｽは8ﾋﾞｯﾄ幅で、故に16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽは非分断操作が必要です。これらのﾚｼﾞｽﾀは2つの読みまたは書きの操作を用いてﾊﾞｲﾄ ｱｸｾｽされなければなりません。16ﾋﾞｯﾄ ﾚｼﾞｽﾀは16ﾋﾞｯﾄ ﾊﾞｽを用いて8ﾋﾞｯﾄ ﾊﾞｽと1つの一時ﾚｼﾞｽﾀに接続されます。
書き込み操作については、16ﾋﾞｯﾄ ﾚｼﾞｽﾀの上位ﾊﾞｲﾄが下位ﾊﾞｲﾄに先立って書かれなければなりません。そしてその上位ﾊﾞｲﾄは一時ﾚｼﾞｽﾀに書かれます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの下位ﾊﾞｲﾄが書かれる時に、同じｸﾛｯｸ周期で一時ﾚｼﾞｽﾀが16ﾋﾞｯﾄ ﾚｼﾞｽﾀの上位ﾊﾞｲﾄに複写されます。
読み込み操作については、16ﾋﾞｯﾄ ﾚｼﾞｽﾀの下位ﾊﾞｲﾄが上位ﾊﾞｲﾄに先立って読まれなければなりません。CPUによって下位ﾊﾞｲﾄが読まれる時に、下位ﾊﾞｲﾄが読まれるのと同じｸﾛｯｸ周期で16ﾋﾞｯﾄ ﾚｼﾞｽﾀの上位ﾊﾞｲﾄが一時ﾚｼﾞｽﾀに複写されます。その後に上位ﾊﾞｲﾄが読まれる時は、この一時ﾚｼﾞｽﾀから読まれます。
これはﾚｼﾞｽﾀの読み書き時に16ﾋﾞｯﾄ ﾚｼﾞｽﾀの上位と下位のﾊﾞｲﾄが常に同時にｱｸｾｽされることを保証します。
非分断16ﾋﾞｯﾄ ﾚｼﾞｽﾀ読み書き操作中に割り込みが起動されて同じﾚｼﾞｽﾀをｱｸｾｽする場合、この時間制限手順を不正にし得ます。これを防ぐために、16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書き時に割り込みを禁止することができます。
注: より多くの情報については「PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4」の「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
関連ﾘﾝｸ 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ
ｺｰﾄﾞ例について

10.6.2. EEARH,EEARL - EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (EEPROM Address Register Low and High byte)
名称 : EEARHとEEARL (EEAR)
変位 : $41 ($21)
ﾘｾｯﾄ : ‘000000xx xxxxxxxx’
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$21です。
EEARHとEEARLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のEEARを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については上の「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

15

14

13

12

11

10

-

-

-

-

-

-

9

8

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

R
0

R
0

R/W
不定

R/W
不定

ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

EEAR9,8

EEAR7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
不定

R/W
不定

R/W
不定

R/W
不定

● ﾋﾞｯﾄ9～0 - EEAR9～0 : EEPROMｱﾄﾞﾚｽ (EEPROM Address)

EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(EEARHとEEARL)は1KﾊﾞｲﾄのEEPROM空間内のEEPROMｱﾄﾞﾚｽを指定します。EEPROMﾃﾞｰﾀ ﾊﾞｲﾄは0～1023間で直線的に配されます。EEARの初期値は不定です。EEPROMがｱｸｾｽされ得る前に適切な値が書かれなければなりません。

10.6.3. EEDR - EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ (EEPROM Data Register)
名称 : EEDR
変位 : $40 ($20)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$20です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

EEDR7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 21頁

ATmega328PB
10.6.4. EECR - EEPROM制御ﾚｼﾞｽﾀ (EEPROM Control Register)
名称 : EECR
変位 : $3F ($1F)
ﾘｾｯﾄ : ‘00xx00xx’
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$1Fです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

-

-

R
0

R
0

5

4

EEPM1,0
R/W
不定

R/W
不定

3

2

1

0

EERIE

EEMPE

EEPE

EERE

R/W
0

R/W
0

R/W
不定

R/W
0

● ﾋﾞｯﾄ5,4 - EEPM1,0 : EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ種別 (EEPROM Programing Mode Bits)

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

EERIEの1書き込みはｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されているなら、EEPROM操作可割り込みを許可します。EERIEの0書き込みは、この割り込みを禁止します。EEPROM操作可割り込みは不揮発性ﾒﾓﾘ(ﾌﾗｯｼｭ ﾒﾓﾘとEEPROM)がﾌﾟﾛｸﾞﾗﾐ
ﾝｸﾞの準備可ならば継続する割り込みを発生します。EEPROM書き込みとSPM命令の間、本割り込みは生成されません。
● ﾋﾞｯﾄ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に解除します。EEPROM書き込み手順については次のEEPE記述をご覧ください。
● ﾋﾞｯﾄ1 - EEPE : EEPROMﾌﾟﾛｸﾞﾗﾑ許可 (EEPROM Program Enable)

EEPROMﾌﾟﾛｸﾞﾗﾑ許可信号(EEPE)はEEPROMへの書き込み許可信号です。EEPEが(1を)書かれると、EEPROMはEEPMnﾋﾞｯﾄ設定に従ってﾌﾟﾛｸﾞﾗﾑされます。EEPEへ’1’が書かれる前にEEPROM主ﾌﾟﾛｸﾞﾗﾑ許可(EEMPE)ﾋﾞｯﾄは’1’を書かれなければならず、さもな
ければEEPROM書き込み(消去)は行われません。EEPROMを書くとき、次の手順に従うべきです(手順3.と4.の順番は重要ではありません)。
1. EEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄが0になるまで待ちます。
2. SPM制御/状態ﾚｼﾞｽﾀ(SPMCSR)のSPM操作許可(SPMEN)ﾋﾞｯﾄが0になるまで待ちます。
3. 今回のEEPROMｱﾄﾞﾚｽをEEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(EEAR)に書きます。(任意、省略可)
4. 今回のEEPROMﾃﾞｰﾀをEEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ(EEDR)に書きます。(任意、省略可)
5. EEPROM制御ﾚｼﾞｽﾀ(EECR)のEEMPEﾋﾞｯﾄに’1’、EEPEﾋﾞｯﾄに’0’を同時に書きます。
6. EEMPEﾋﾞｯﾄ設定後4ｸﾛｯｸ周期内にEEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄへ’1’を書きます。
CPUがﾌﾗｯｼｭ ﾒﾓﾘ書き込み中、EEPROMはﾌﾟﾛｸﾞﾗﾑ(書き込みが)できません。ｿﾌﾄｳｪｱは新規EEPROM書き込みを始める前にﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞが完了されていることを検査しなければなりません。2.はｿﾌﾄｳｪｱがﾌﾗｯｼｭ ﾒﾓﾘをﾌﾟﾛｸﾞﾗﾑ(書き込みを)することをCPUに許すﾌﾞｰﾄ ﾛｰﾀﾞを含む場合だけ関係します。ﾌﾗｯｼｭ ﾒﾓﾘが決してCPUによって更新されないなら、2.は省略できます。
警告 手順5.と6.間の割り込みはEEPROM主ﾌﾟﾛｸﾞﾗﾑ許可が時間超過するため、書き込み周期失敗になります。EEPROMをｱｸｾｽする割り込みﾙｰﾁﾝが他のEEPROMｱｸｾｽを中断し、EEARかEEDRが変更されると、中断したEEPROMｱｸｾｽを失敗させます。これらの問題を避けるため、全ての手順中、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄは解除(0)されていることが推奨されます。
書き込み(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ)ｱｸｾｽ時間が経過されると、EEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。
EEPEが設定(1)されてしまうと、次の命令が実行される前にCPUは2周期停止されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 22頁

ATmega328PB● ﾋﾞｯﾄ0 - EERE : EEPROM読み込み許可 (EEPROM Read Enable)

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

表10-2. EEPROM書き込み時間
校正付き内蔵RC
項目
発振器周期数
26,368EEPROM書き込み(CPU)

Typ
3.3ms

次のｺｰﾄﾞ例はｱｾﾝﾌﾞﾘ言語とC言語でのEEPROM消去、書き込み、または非分離書き込み関数を示します。本例は(例えば全割り込み禁止によって)割り込みが制御され、これらの関数実行中に割り込みが起きない前提です。本例はｿﾌﾄｳｪｱ内にﾌﾗｯｼｭ ﾌﾞｰﾄ ﾛｰﾀﾞが無い前提でもあります。そのようなｺｰﾄﾞが存在する場合、EEPROM書き込み関数は何れかが実行するSPM命令の完了も待たねばなりません。 (訳注:共通性から次例は補足修正しています。)
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
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読み出し値を取得,復帰 */注: 「ｺｰﾄﾞ例について」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 23頁

ATmega328PB
10.6.5. GPIOR2 - 汎用I/Oﾚｼﾞｽﾀ2 (General Purpose I/O Register 2)
名称 : GPIOR2
変位 : $4B ($2B)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2Bです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

GPIOR27～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - GPIOR27～0 : 汎用I/Oﾚｼﾞｽﾀ2 (General Purpose I/O)

10.6.6. GPIOR1 - 汎用I/Oﾚｼﾞｽﾀ1 (General Purpose I/O Register 1)
名称 : GPIOR1
変位 : $4A ($2A)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2Aです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

GPIOR17～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - GPIOR17～0 : 汎用I/Oﾚｼﾞｽﾀ1 (General Purpose I/O)

10.6.7. GPIOR0 - 汎用I/Oﾚｼﾞｽﾀ0 (General Purpose I/O Register 0)
名称 : GPIOR0
変位 : $3E ($1E)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$1Eです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

GPIOR07～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - GPIOR07～0 : 汎用I/Oﾚｼﾞｽﾀ0 (General Purpose I/O)

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 24頁

ATmega328PB
11. ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択
11.1. ｸﾛｯｸ系統とその配給
下図はﾃﾞﾊﾞｲｽ内の主要なｸﾛｯｸ系統ととそれらの配給を示します。全てのｸﾛｯｸが与えられた時間有効である必要はありません。消費電力低減のため、各種休止形態を用いることによって、使われない部分のｸﾛｯｸを停止することができます。ｸﾛｯｸ系統は以降の項で記述されます。
ｼｽﾃﾑ ｸﾛｯｸ周波数はｼｽﾃﾑ ｸﾛｯｸ前置分周器から生成された周波数を参照します。AVRｸﾛｯｸ制御部からの全てのｸﾛｯｸ出力は同じ周波数で動きます。
図11-1. ｸﾛｯｸの配給
周辺機能
接触制御器

非同期
ﾀｲﾏ/ｶｳﾝﾀ

clkPTC

汎用入出力

A/D変換器clkADC

clkI/O

clkASY

CPUｺｱ

ﾌﾗｯｼｭ ﾒﾓﾘ
EEPROM

SRAM

clkCPU

AVRｸﾛｯｸ
制御回路
ﾘｾｯﾄ回路clkFLASH

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

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

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

ｸﾛｯｸ多重器

ﾀｲﾏ/ｶｳﾝﾀ用
発振器

関連ﾘﾝｸ

外部ｸﾛｯｸ信号

ｸﾘｽﾀﾙ用発振器

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

XTAL1 XTAL2

TOSC1 TOSC2

校正付き
内蔵RC発振器

電力管理と休止形態

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

11.1.2. I/Oｸﾛｯｸ - clkI/O
I/Oｸﾛｯｸはﾀｲﾏ/ｶｳﾝﾀ、SPI、USARTのようなI/O部の大部分で使われます。I/Oｸﾛｯｸは外部割り込み部でも使われますが、2線直列
ｲﾝﾀｰﾌｪｰｽ(TWI)単位部の開始条件検出はclkI/Oが停止される時に非同期で実行されます。
注: ﾊﾟﾜｰﾀﾞｳﾝ動作から起き上がるのにﾚﾍﾞﾙ起動割り込みが使われる場合、そのﾚﾍﾞﾙ割り込みを起動するような完全な起動のために必要とされた割り込みはMCUに対して充分な長さを保持しなければなりません。始動時間の終了前にそのﾚﾍﾞﾙが消滅すると、MCUは未だ起き上がりますが、割り込みが生成されません。始動時間はSUTとCKSELのﾋｭｰｽﾞによって定義されます。

11.1.3. PTCｸﾛｯｸ - clkPTC
PTCには専用のｸﾛｯｸ範囲が提供されます。これはﾃﾞｼﾞﾀﾙ回路によって生成された雑音を低減するためにCPUとI/Oｸﾛｯｸの停止を許します。

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

11.1.5. 非同期ﾀｲﾏ ｸﾛｯｸ - clkASY
非同期ﾀｲﾏ ｸﾛｯｸは外部32kHzｸﾛｯｸ用ｸﾘｽﾀﾙから直接的にｸﾛｯｸ駆動されることを非同期ﾀｲﾏ/ｶｳﾝﾀに許します。この専用ｸﾛｯｸ範囲
はﾃﾞﾊﾞｲｽが休止形態の時でも、このﾀｲﾏ/ｶｳﾝﾀの実時間計数器としての使用を許します。

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 25頁

ATmega328PB
11.2. ｸﾛｯｸ元
このﾃﾞﾊﾞｲｽには下で示されるようにﾌﾗｯｼｭ ﾋｭｰｽﾞ ﾋﾞｯﾄによって選択可能な後続のｸﾛｯｸ元選択があります。選択したｸﾛｯｸ元からのｸﾛｯｸはAVRｸﾛｯｸ発生器への入力で、適切な単位部へ配給されます。
表11-1. ｸﾛｯｸ元選択 (注: 1=非ﾌﾟﾛｸﾞﾗﾑ、0=ﾌﾟﾛｸﾞﾗﾑ)
外部ｸﾘｽﾀﾙ
外部低周波数 128kHz内部
ｸﾛｯｸ元
(予約)
低電力発振器
ｸﾘｽﾀﾙ発振器 (WDT)発振器
CKSEL3～0 1111～1000
0111～0110
0101～0100
0011

校正付き内蔵
外部ｸﾛｯｸ信号
RC発振器
0010
0000

(予約)
0001

11.2.1. 既定のｸﾛｯｸ元
このﾃﾞﾊﾞｲｽは8.0MHzの校正付き内蔵RC発振器でCKDIV8ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)され、結果として1.0MHzのｼｽﾃﾑ ｸﾛｯｸで出荷されます。起動時間は計時完了周期が許可され、最大に設定されます(CKSEL=0010, SUT=10, CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0))。この既定設定は全ての使用者が実装または並列書き込み器を使って、それらを希望したｸﾛｯｸ元設定にできることを保証します。

11.2.2. ｸﾛｯｸ起動手順
何れのｸﾛｯｸ元も発振を開始するための充分なVCCと、それが安定であると考えられるのに先 表11-2. WDT発振器代表計時値
立って最低発振周期数が必要です。
VCC=3.0V
VCC=5.0V
充分なVCCを保証するために、その他全てのﾘｾｯﾄ元によってﾃﾞﾊﾞｲｽ ﾘｾｯﾄが開放された後、
0ms
0ms
ﾃﾞﾊﾞｲｽは起動遅延時間(tTOUT)の内部ﾘｾｯﾄを発生します。内部ﾘｾｯﾄに対する起動条件の記
4.3ms
4ms
述については関連ﾘﾝｸをご覧ください。この遅延(tTOUT)はｳｫｯﾁﾄﾞｯｸﾞ発振器で計時され、遅
69ms
65ms
延周期数はSUTとCKSELのﾋｭｰｽﾞにより設定されます。選択可能な遅延は右表で示されます。ｳｫｯﾁﾄﾞｯｸﾞ発振器の周波数は電圧に依存します。
遅延の主な目的は最小VCCを供給されるまでﾃﾞﾊﾞｲｽをﾘｾｯﾄに保つことです。この遅延は実電圧を監視しませんので、VCC上昇時間
より長い遅延を選ぶことが必要とされます。これが不可能な場合、内部または外部の低電圧検出回路(BOD)が使われるべきです。
BOD回路がﾘｾｯﾄを開放する前に充分なVCCを保証するでしょうから、起動遅延時間は禁止され得ます。低電圧検出回路(BOD)なし
での起動遅延時間の禁止は推奨されません。
この発振器はｸﾛｯｸが安定と見做されるのに先立つ最低ｸﾛｯｸ数の発振を必要とされます。内部ﾘﾌﾟﾙ ｶｳﾝﾀは発振器の出力ｸﾛｯｸを監視し、与えられたｸﾛｯｸ周期数間、内部ﾘｾｯﾄを活性に保ちます。このﾘｾｯﾄはその後に開放され、ﾃﾞﾊﾞｲｽが実行を開始します。推奨発
振器起動時間はｸﾛｯｸ種別に依存し、外部的に印加されたｸﾛｯｸ用の6周期から、低周波数ｸﾘｽﾀﾙ用の32K周期まで変化します。
ｸﾛｯｸについての起動手順は計時完了遅延とﾃﾞﾊﾞｲｽがﾘｾｯﾄから起動するときの起動時間の両方を含みます。ﾊﾟﾜｰﾀﾞｳﾝまたはﾊﾟﾜｰ
ｾｰﾌﾞから起動するとき、VCCは充分な電圧であると認識され、起動時間だけが含められます。
関連ﾘﾝｸ ｼｽﾃﾑ制御とﾘｾｯﾄ

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

図11-2. ｸﾘｽﾀﾙ発振子接続図
C2
XTAL2
C1

/TOSC2XTAL1/TOSC1

GND

11.3. ｸﾘｽﾀﾙ用低電力発振器
この発振器はXTAL2出力上の電圧振幅を減少した低電力発振器です。これは最低消費電力を与えますが、他のｸﾛｯｸ入力を駆動する能力はなく、雑音が多い環境で、より雑音の影響を受け易くなります。
ｸﾘｽﾀﾙ発振子は「発振子/振動子接続」で記載されるように接続されるべきです。ｸﾘｽﾀﾙ選択時、負荷容量が考慮に入れられなければなりません。各XTALで必要とされる容量(Ce+Ci)は以下を使って計算することができます。
Ce+Ci = 2×CL-Cs
ここで、 ・ Ce : 任意外部容量です。(=上図で記述されるようなC1,C2)
表11-3. ｸﾘｽﾀﾙ用低電力発振器内部容量
・ Ci : 右表でのﾋﾟﾝ容量です。
内部ﾊﾟｯﾄﾞ容量 (pF)
ｸﾘｽﾀﾙ用低電力発振器形式
・ CL : ｸﾘｽﾀﾙ供給業者によって指定された負荷容量です。
XTAL1
XTAL2
・ Cs : 1つのXTALﾋﾟﾝに対する総浮遊容量です。
ｼｽﾃﾑ用発振器のCi
188© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 26頁

ATmega328PB
低電力発振器は示された周波数範囲で各々最適化された3つの異なる種別で動作できます。この動作種別は下表で示されるように
CKSEL3～1ﾋｭｰｽﾞによって選択されます。
表11-4. ｸﾘｽﾀﾙ用低電力発振器動作種別
CKSEL3～1 周波数範囲 C1,2容量範囲
100 (注1) 0.4～0.9MHz
101
0.9～3.0MHz 12～22pF
110
3.0～8.0MHz 12～22pF
111
12～22pF
8.0～16MHz

注: これは各周波数範囲に対する推奨CKSEL設定です。
注: 周波数が仕様(VCC依存)超の場合、CKDIV8=0が可能ですが、分周後ｸﾛｯｸが仕様内であることを保証しなければなりません。
注: 外部容量値選択時、PCBとﾃﾞﾊﾞｲｽからの浮遊容量が差し引かれるべきです。
XTALﾋﾟﾝでの総負荷(Ce+Ci+Cs)は22pFを超えてはなりません。
注1: 本選択はｸﾘｽﾀﾙ発振子ではなく、ｾﾗﾐｯｸ振動子でのみ使われるべきです。

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

11.4. 低周波数ｸﾘｽﾀﾙ用発振器
低周波数ｸﾘｽﾀﾙ用発振器は時計用32.768kHzｸﾘｽﾀﾙでの使用に最適化されています。ｸﾘｽﾀﾙ選択時、負荷容量とｸﾘｽﾀﾙの等価直列抵抗(ESR)が考慮されなければなりません。両値はｸﾘｽﾀﾙ販売業者によって指定されます。この発振器は非常に低い電力消費用に最適化されており、故にｸﾘｽﾀﾙ選択時、推奨最大ESRを考慮してください(表11-6.)。
低周波数ｸﾘｽﾀﾙ用発振器は各TOSCﾋﾟﾝに於いて内部負荷容量を提供します(表11-7.)。
表11-6. 32.768kHzｸﾘｽﾀﾙ用発振器推奨最大ESR
ｸﾘｽﾀﾙ負荷容量 (CL:pF)
最大ESR (kΩ) (注1)
6.5
75
9.0
65
12.5
30
注1: 最大ESRは特性を基にした代表値です。

表11-7. 低周波数ｸﾘｽﾀﾙ用発振器内部容量
内部ﾊﾟｯﾄﾞ容量 (pF)
32kHz発振器形式
XTAL1/TOSC1XTAL2/TOSC2ｼｽﾃﾑ ｸﾛｯｸ用発振器
188
ﾀｲﾏ/ｶｳﾝﾀ用発振器
188

各TOSCﾋﾟﾝで必要とする外部容量(C)は右式を使って計算できます。 Ce+Ci = 2×CL-Cs
Ce : 任意外部容量です。(=「発振子/振動子接続」で示されるC1,C2)
Ci : 表11-7.でのﾋﾟﾝ容量です。
CL : ｸﾘｽﾀﾙ供給業者によって指定された32.768kHzｸﾘｽﾀﾙ用の負荷容量です。
Cs : 1つのTOSCﾋﾟﾝに対する総浮遊容量です。
表11-7.よりも高い指定負荷容量(CL)のｸﾘｽﾀﾙは「発振子/振動子接続」で記述するように付加外部容量(ｺﾝﾃﾞﾝｻ)が必要です。
低周波数ｸﾘｽﾀﾙ発振器は以下の2つの表で示されるように、CKSELﾋｭｰｽﾞを'0100'または'0101'に設定することによって選択されなければならず、起動時間はSUTﾋｭｰｽﾞによって決定されます。
表11-8. 低周波数ｸﾘｽﾀﾙ発振器用起動遅延時間選択表
ﾘｾｯﾄからの
SUT1,0 付加遅延時間
推奨使用法(VCC=5.0V)
19×CK
高速上昇電源またはBOD許可
00
19×CK+4ms 低速上昇電源
01
19×CK+65ms 起動時の周波数安定
10
(予約)
11

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

表11-9. 低周波数ｸﾘｽﾀﾙ発振器用起動時間選択表
ﾊﾟﾜｰﾀﾞｳﾝ,
CKSEL3～0 ﾊﾟﾜｰｾｰﾌﾞからの推奨使用法
起動遅延時間
(注1)
0100
1K×CK
0101
32K×CK
起動時の周波数安定
注1: これらの選択は起動時の周波数安定度が応用にとって重要でない場合だけ使われるべきです。
DS40001906C - 27頁

ATmega328PB
11.5. 校正付き内蔵RC発振器
既定による校正された内蔵RC発振器は8.0MHzのｸﾛｯｸを供給します。電圧と温度に依存しますが、このｸﾛｯｸは使用者によって高精度な校正ができます。このﾃﾞﾊﾞｲｽはCKDIV8ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)で出荷されます。
このｸﾛｯｸは下表で示されるようにCKSELﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾐﾝｸﾞによってｼｽﾃﾑ ｸﾛｯｸとして選択できます。選択したなら、外部部品なし
で動作します。ﾘｾｯﾄ中、ﾊｰﾄﾞｳｪｱが発振校正(OSCCAL)ﾚｼﾞｽﾀに予めﾌﾟﾛｸﾞﾗﾑされた校正値ﾊﾞｲﾄを設定し、これによってRC発振器を自動的に校正します。
ｿﾌﾄｳｪｱからOSCCALﾚｼﾞｽﾀを変更することによって、工場校正を使うよりも高い精度を得ることができます。
この発振器がﾁｯﾌﾟ(ｼｽﾃﾑ)ｸﾛｯｸとして使われる時に、ｳｫｯﾁﾄﾞｯｸﾞ発振器は未だｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏとﾘｾｯﾄ付加遅延計時器に使われます。予め書かれた校正値のより多くの情報については「校正ﾊﾞｲﾄ」項をご覧ください。
表11-10. 校正付き内蔵RC発振器動作種別 注: ﾃﾞﾊﾞｲｽはこの選択で出荷されます。
CKSEL3～0
周波数範囲 (MHz) 注: この8MHz周波数がﾃﾞﾊﾞｲｽ仕様(VCCに依存)を越える場合、内部周波数を8分0010
7.6～8.4
周するためにCKDIV8ﾋｭｰｽﾞをﾌﾟﾛｸﾞﾗﾑ(0)にできます。
警告: 発振器周波数は発振器校正が非連続性を含むため、与えられた範囲内での単調性が保証されません(「代表特性」章の8MHz RC発振器周波数対OSCCAL値の図をご覧ください)。
この発振器が選択されると、起動時間はSUTﾋｭｰｽﾞによって決定されます。
表11-11. 校正付き内蔵RC発振器用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝ, ﾊﾟﾜｰｾｰﾌﾞ ﾘｾｯﾄからの付加遅延
推奨使用法
SUT1,0からの起動遅延時間
時間 (VCC=5.0V)
19×CK (注2) 低電圧検出ﾘｾｯﾄ(BOD)許可
6×CK
00
19×CK+4ms
6×CK
01
高速上昇電源19×CK+65ms
6×CK
1 0 (注1)
低速上昇電源11(予約)
注1: ﾃﾞﾊﾞｲｽはこの選択で出荷されます。
注2: RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行可を保証するため、付加遅延時間は19×CK+4msに増や
されます。
関連ﾘﾝｸ

ｼｽﾃﾑ ｸﾛｯｸ前置分周器
ｸﾛｯｸ特性校正ﾊﾞｲﾄOSCCAL - 発振校正ﾚｼﾞｽﾀ

11.6. 128kHz内部発振器
128kHz内部発振器は128kHzのｸﾛｯｸを供給する低電力発振器です。 表11-12. 128kHz内部発振器動作種別
本ｸﾛｯｸはCKSELﾋｭｰｽﾞを'0011'にﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(設定)することによってｼCKSEL3～0
公称周波数
ｽﾃﾑ ｸﾛｯｸとして選択できます。
0011
128kHz
警告: ｼｽﾃﾑ発振器とｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏとして128kHz内部発振器を同時
注: 128kHz発振器は非常に低い電力のｸﾛｯｸ元で、高精に使うことは、これがｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏの目的の1つを無効にする
度用に設計されていないことに注意してください。
ため推奨されません。
このｸﾛｯｸ元が選択されると、起動時間はSUTﾋｭｰｽﾞによって決定されます。
表11-13. 128kHz内部発振器用起動遅延時間選択表
ﾊﾟﾜｰﾀﾞｳﾝ, ﾊﾟﾜｰｾｰﾌﾞ
ﾘｾｯﾄからの推奨使用法
SUT1,0からの起動遅延時間
付加遅延時間19×CK (注1) 低電圧検出(BOD)ﾘｾｯﾄ許可
6×CK
00
19×CK+4ms
6×CK
01
高速上昇電源19×CK+65ms
6×CK
10低速上昇電源(予約)11
注1: RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行可を保証するため、付加遅延時間は19×CK+4msに増やされます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 28頁

ATmega328PB
11.7. 外部ｸﾛｯｸ信号
外部ｸﾛｯｸ元からﾃﾞﾊﾞｲｽを駆動するには、図で示されるようにXTAL1が駆動されるべきです。外部ｸﾛｯｸ
でﾃﾞﾊﾞｲｽを走行するためにはCKSELﾋｭｰｽﾞが'0000'にﾌﾟﾛｸﾞﾗﾑ(設定)されなければなりません。

表11-14. 外部ｸﾛｯｸ信号動作種別
CKSEL3～0
周波数範囲
0～20MHz0000

図11-3. 外部ｸﾛｯｸ信号駆動接続図
PB7

XTAL2

外部ｸﾛｯｸ信号

XTAL1
GND

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

11.8. ｸﾛｯｸ出力緩衝部 (外部ｸﾛｯｸ出力)
このﾃﾞﾊﾞｲｽはｼｽﾃﾑ ｸﾛｯｸをCLKOﾋﾟﾝに出力できます。本出力を許可するにはCKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されなければなりません。
この動作はﾁｯﾌﾟのｸﾛｯｸがｼｽﾃﾑ上の他の回路を駆動する時用です。このﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、I/Oﾋﾟﾝの標準動作は無視され、このｸﾛｯｸはﾘｾｯﾄ中も出力されます。CLKOがｸﾛｯｸ出力を扱うとき、校正付き内蔵RC発振器を含む何れのｸﾛｯｸ元も選択できます。ｼｽﾃﾑ ｸﾛｯｸ前置分周器が使われると、CKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)された時の出力は分周したｼｽﾃﾑ ｸﾛｯｸです。

11.9. ﾀｲﾏ/ｶｳﾝﾀ用発振器
ﾃﾞﾊﾞｲｽは低周波数ｸﾘｽﾀﾙ用発振器とﾀｲﾏ/ｶｳﾝﾀ用発振器に対して同じｸﾘｽﾀﾙ用発振器を使います。この発振器とｸﾘｽﾀﾙの必要条件については「低周波数ｸﾘｽﾀﾙ用発振器」をご覧ください。
本ﾃﾞﾊﾞｲｽに於いて、ﾀｲﾏ/ｶｳﾝﾀ用発振器(TOSC1とTOSC2)ﾋﾟﾝはXTAL1,XTAL2ﾋﾟﾝと共用されます。ﾀｲﾏ/ｶｳﾝﾀ用発振器使用時、ｼ
ｽﾃﾑ ｸﾛｯｸはこの発振器周波数の4倍を必要とします。これとﾋﾟﾝ共用のため、ﾀｲﾏ/ｶｳﾝﾀ用発振器はｼｽﾃﾑ ｸﾛｯｸ元として校正付き内
蔵RC発振器選択時にだけ使えます。
TOSC1への外部ｸﾛｯｸ元印加は非同期状態ﾚｼﾞｽﾀ(ASSR)の外部ｸﾛｯｸ許可(EXCLK)ﾋﾞｯﾄが’1’を書かれる場合に行うことができます。時計用32.768kHzｸﾘｽﾀﾙに代わる入力として外部ｸﾛｯｸを選択する更なる記述については「ﾀｲﾏ/ｶｳﾝﾀ2の非同期動作」の記述をご覧ください。
関連ﾘﾝｸ TC2 - PWM,非同期動作付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2

11.10. ｼｽﾃﾑ ｸﾛｯｸ前置分周器
本ﾃﾞﾊﾞｲｽはｼｽﾃﾑ ｸﾛｯｸ前置分周器を持ち、ｼｽﾃﾑ ｸﾛｯｸはｸﾛｯｸ前置分周ﾚｼﾞｽﾀ(CLKPR)を構成設定することによって分周できます。この特徴(機能)は必要とされる処理能力が低い時の消費電力削減に使えます。これは全ｸﾛｯｸ種別で使え、CPUと全同期周辺機
能のｸﾛｯｸ周波数に影響を及ぼします。clkCPU、clkFLASH、clkI/O、clkADCはCLKPR記述で示された値によって分周されます。
前置分周器設定間を切り替えるとき、ｼｽﾃﾑ ｸﾛｯｸ前置分周器は中間(経過途中)の周波数が直前の設定に対応するｸﾛｯｸ周波数または新規設定に対応するｸﾛｯｸ周波数のどちらよりも高くなく、ｸﾛｯｸ系で不具合が起きないことを保証します。前置分周器として実行するﾘﾌﾟﾙ ｶｳﾝﾀは分周されないｸﾛｯｸ周波数で走行し、CPUのｸﾛｯｸ周波数より速いかもしれません。従って例え(ｶｳﾝﾀ値が)読めるとしても、前置分周器の状態を決めることはできず、1から他へのｸﾛｯｸ分周値切り替えを行う正確な時間は必ずしも予測できません。ｸﾛｯ
ｸ分周値選択(CLKPS3～0)ﾋﾞｯﾄ値が書かれる時から新規ｸﾛｯｸ周波数が活性(有効)になる前にT1+T2～T1+2×T2間かかります。この間で2つの有効なｸﾛｯｸ端が生成されます。ここでのT1は直前のｸﾛｯｸ周期、T2は新規前置分周器設定に対応する周期です。
予期せぬｸﾛｯｸ周波数の変更を防ぐため、CLKPSﾋﾞｯﾄの変更は次の特別な書き込み手順に従わなければなりません。
1. ｸﾛｯｸ分周値変更許可(CLKPCE)ﾋﾞｯﾄに’1’、CLKPR内の他の全ﾋﾞｯﾄに’0’を書いてください。CLKPR=$80
2. (次からの)4周期以内にCLKPCEへ’0’を書くと同時にCLKPS3～0へ望む値を書いてください。CLKPR=$0n
前置分周器設定変更時、書き込み手続きが割り込まれないことを保証するため、割り込みは禁止されなければなりません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 29頁

ATmega328PB
11.11. ｸﾛｯｸ関係ﾚｼﾞｽﾀ
11.11.1. OSCCAL - 発振校正ﾚｼﾞｽﾀ (Oscillator Calibration Register)
名称 : OSCCAL
変位 : $66
ﾘｾｯﾄ : ﾃﾞﾊﾞｲｽ固有の校正値
特質 : -

ﾋﾞｯﾄ

7

6

5

ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W

R/W

R/W

4

3

2

1

0

R/W

R/W

R/W

CAL7～0
R/W
R/W
ﾃﾞﾊﾞｲｽ固有の校正値● ﾋﾞｯﾄ7～0 - CAL7～0 : 発振校正値 (Oscillator Calibration Value)

発振校正ﾚｼﾞｽﾀは発振器周波数の偏差処理を省くための内蔵発振器の調整に使われます。ﾁｯﾌﾟのﾘｾｯﾄ中、「電気的特性」章の「ｸﾛｯｸ特性」項工場校正周波数を与える、予めﾌﾟﾛｸﾞﾗﾑされた値が本ﾚｼﾞｽﾀへ自動的に書かれます。応用ｿﾌﾄｳｪｱは発振器周波数を変更するために、このﾚｼﾞｽﾀに書くことができます。この発振器は「電気的特性」章の「ｸﾛｯｸ特性」項で詳述される周波数に校正できます。この範囲外への校正は推奨されません。
この発振器はﾌﾗｯｼｭ ﾒﾓﾘとEEPROMの書き込みｱｸｾｽ時間に使われ、これらの書き込み時間はそれに応じて影響されることに注意してください。ﾌﾗｯｼｭ ﾒﾓﾘまたはEEPROMが書かれる場合、8.8MHzより高く校正してはいけません。そうでなければ、ﾌﾗｯｼｭ ﾒﾓﾘまた
はEEPROM書き込みは失敗するかもしれません。
CAL7ﾋﾞｯﾄは発振器に関する操作範囲を決めます。このﾋﾞｯﾄの(0)設定は低周波数範囲になり、(1)設定は高周波数範囲になります。
この2つの周波数範囲は重複し、別の言葉では、OSCCAL=$7F設定はOSCCAL=$80設定より高い周波数になります。
CAL6～0ﾋﾞｯﾄは選択した範囲内の周波数調整に使われます。$00設定はその範囲の最低周波数になり、$7F設定はその範囲の最高周波数になります。
関連ﾘﾝｸ 校正付き内蔵RC発振器精度

11.11.2. CLKPR - ｸﾛｯｸ前置分周ﾚｼﾞｽﾀ (Clock Prescale Register)
名称 : CLKPR
変位 : $61
ﾘｾｯﾄ : ﾋﾞｯﾄ記述を参照
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

CLKPCE

-

-

-

R/W
0

R
0

R
0

R
0

3

2

1

0

R/W
1/0

R/W
1/0

CLKPS3～0
R/W
0

R/W
0

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

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

これらのﾋﾞｯﾄは選択したｸﾛｯｸ元と内部ｼｽﾃﾑ ｸﾛｯｸ間の分周値を定義します。これらのﾋﾞｯﾄは応用の必要条件に合わせた各種ｸﾛｯｸ
周波数を実行時に書けます。分周値が使われると、分周器はMCUへの主ｸﾛｯｸを分周し、全ての同期周辺機能の速度が減じられます。分周値は下表で与えられます。
CKDIV8ﾋｭｰｽﾞがCLKPSﾋﾞｯﾄの初期値を決めます。CKDIV8が非ﾌﾟﾛｸﾞﾗﾑ(1)にされると、CLKPSﾋﾞｯﾄは'0000'にﾘｾｯﾄされます。CKDI
V8がﾌﾟﾛｸﾞﾗﾑ(0)されると、CLKPSﾋﾞｯﾄは起動時に8分周を与える'0011'にﾘｾｯﾄされます。現在の動作条件でﾃﾞﾊﾞｲｽの最高周波数より高い周波数のｸﾛｯｸ元を選択した場合、この機能が使われるべきです。CKDIV8ﾋｭｰｽﾞ設定に拘らず、どの値もCLKPSﾋﾞｯﾄへ書けることに注意してください。応用ｿﾌﾄｳｪｱは現在の動作条件でﾃﾞﾊﾞｲｽの最高周波数より高い周波数のｸﾛｯｸ元を選択した場合、充分な分周値が選択されることを保証しなければなりません。このﾃﾞﾊﾞｲｽはCKDIV8ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)で出荷されます。

表11-16. ｸﾛｯｸ前置分周器選択
CLKPS3001
CLKPS2
CLKPS10101
CLKPS0
0
1
0
1
0
1
0
1
2
8
32
128
分周値(数)
1
4
16
64© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

1
0

1

0
0
256

1
1

0

1

0
0
1
(予約)

1
0

1

DS40001906C - 30頁

ATmega328PB
12. CFD - ｸﾛｯｸ障害検出機構 (Clock Failure Detection mechanism)
12.1. 特徴・ ｸﾘｽﾀﾙ用低電力発振器と外部ｸﾛｯｸ信号の障害に対する検出・ 128kHz内部発振器で動作・ ｸﾛｯｸ障害発生時、ｸﾛｯｸを1MHz校正付き内蔵RC発振器に切り替え
・ CFDの状態に対して利用可能な障害検出割り込み要求ﾌﾗｸﾞ(XFDIF)

12.2. 概要
本ﾃﾞﾊﾞｲｽに対するｸﾛｯｸ障害検出機構は拡張ﾋｭｰｽﾞ ﾊﾞｲﾄのCFDﾋｭｰｽﾞによって許可されます。CFDが許可されると、自動的に許可される128kHz内部発振器と共にCFDが動作します。

12.3. 動作
ｸﾛｯｸ障害検出器(CFD:Clock Failure Detector)はｸﾘｽﾀﾙ用低電力発振器または外部ｸﾛｯｸ信号の監視を使用者に許します。CFDはXOSCｸﾛｯｸを監視し、障害の場合に安全なｸﾛｯｸへ自動的に切り替えます。安全なｸﾛｯｸでの動作時、ﾃﾞﾊﾞｲｽは電源ONまたは外部ﾘｾｯﾄ後にXOSCｸﾛｯｯｸに戻し換え、障害に関してXOSCｸﾛｯｸの監視を続けます。この安全な1MHzｼｽﾃﾑ ｸﾛｯｸは8MHz内蔵RCｼｽﾃﾑ
ｸﾛｯｸから配給されます。安全な1MHzｸﾛｯｸ切り替え後、使用者は周波数を増すためにｼｽﾃﾑ ｸﾛｯｸ前置分周(CLKPR)ﾚｼﾞｽﾀを書くことができます。これはﾏｲｸﾛ ｺﾝﾄﾛｰﾗの全ての動作条件のための安全なｸﾛｯｸ構成設定を許します。
XOSC障害が128kHz内部発振器と共にCFD回路動作によって監視されるため、CFD許可時にﾁｯﾌﾟの総消費電力に128kHz発振器の消費電流が加算されます。CFDはｼｽﾃﾑ ｸﾛｯｸ(XOSC)周波数が256kHz以上の場合にだけ許可されるべきです。
図12-1. CFD機構とのｼｽﾃﾑ ｸﾛｯｸ生成
CKSELﾋｭｰｽﾞ
校正付きRC用ﾋｭｰｽﾞ値(CKSEL=0010,CLKPS=0011)
WDT用128kHzｸﾛｯｸ
ｸﾘｽﾀﾙ用低電力発振器/外部ｸﾛｯｸ信号のｸﾛｯｸ

XOSC障害
ｸﾛｯｸ障害検出回路

128kHz内部発振器
校正付き内蔵RC発振器
ｸﾘｽﾀﾙ用低電力発振器
外部ｸﾛｯｸ信号
ｸﾛｯｸ選択用CKSELｼｽﾃﾑ ｸﾛｯｸ4

ｸﾛｯｸ障害検出
ＣＦＤ動作を開始するため、使用者は拡張ﾋｭｰｽﾞ ﾊﾞｲﾄのCFD(EFB.CFD)ﾋｭｰｽﾞに１(非ﾌﾟﾛｸﾞﾗﾑ)を書かなければなりません。XOSCの開始または再開の後、CFDは始動時間が経過されるまで、障害の検出を行いません。一旦XOSCの始動時間が経過すると、XOSCｸ
ﾛｯｸは継続的に監視されます。
外部ｸﾛｯｸが提供されない場合、ﾃﾞﾊﾞｲｽは自動的に1MHzの校正付きRC発振器出力に切り替えます。
障害検出時、障害事態が表明され、即ち、XOSC障害検出制御/状態ﾚｼﾞｽﾀの障害検出割り込み要求(XFDCSR.XFDIF)ﾌﾗｸﾞが設定(1)されます。XOSC障害検出制御/状態ﾚｼﾞｽﾀの障害検出割り込み許可(XFDCSR.XFDIE)ﾋﾞｯﾄが設定(1)される時に障害検出割り込
み要求ﾌﾗｸﾞは生成されます。XFDCSR.XFDIFは現在のXOSCｸﾛｯｸ活動を反映します。
検出はﾁｯﾌﾟがﾊﾟﾜｰｾｰﾌﾞ/ﾊﾟﾜｰﾀﾞｳﾝの休止動作へ行く時に自動的に禁止され、ﾁｯﾌﾟが活動動作へ戻って行く時にそれ自身によって許可されます。
ｸﾛｯｸ切り替え
ｸﾛｯｸ障害検出時、XOSCｸﾛｯｸは活性なｸﾛｯｸを維持するために安全なｸﾛｯｸによって置換されます。安全なｸﾛｯｸ元は1MHzの校正付
きRC発振器ｸﾛｯｸ(CKSEL=0010)です。このｸﾛｯｸ元は切り替え後に応用によって選択された動作条件を超えないｸﾛｯｸ周波数を保証するために、構成設定可能な前置分周器で分周することができます。元のｸﾛｯｸ元を使うには、使用者がﾘｾｯﾄを提供しなければなりません。CFDを使ってｸﾛｯｸ障害が発生すると、ｼｽﾃﾑは1MHz内部代替ｸﾛｯｸを使って動作します。ｼｽﾃﾑは電源ONﾘｾｯﾄ(POR)または外部ﾘｾｯﾄのどちらかを経由して元のｸﾛｯｸ元の再開を試みるでしょう。

12.4. ﾀｲﾐﾝｸﾞ図
RCｸﾛｯｸは障害検出後にだけ許可されます。
図12-2. CFD機構ﾀｲﾐﾝｸﾞ図
RCｸﾛｯｸ
外部ｸﾛｯｸ128kHzｸﾛｯｸ
XOSC障害遅延XOSC障害ｼｽﾃﾑ ｸﾛｯｸ© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 31頁

ATmega328PB
12.5. CFD用ﾚｼﾞｽﾀ
12.5.1. XFDCSR - XOSC障害検出制御/状態ﾚｼﾞｽﾀ (XOSC Failure Detection Control and Status Register)
名称 : XFDCSR
変位 : $62
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

-

-

-

-

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

6

5

4

3

2

1

0

-

-

XFDIF

XFDIE

R
0

R
0

R
0

R/W
0

● ﾋﾞｯﾄ1 - XFDIF : 障害検出割り込み要求ﾌﾗｸﾞ (Failure Detection Interrupt Flag)

このﾋﾞｯﾄは障害検出時に設定(1)され、ﾘｾｯﾄによってのみ解除(0)されます。
これはCFDに対する状態ﾋﾞｯﾄとして扱います。
注: このﾋﾞｯﾄは読み込み専用です。
● ﾋﾞｯﾄ0 - XFDIE : 障害検出割り込み許可 (Failure Detection Interrupt Enable)

このﾋﾞｯﾄの設定(1)は障害検出割り込み要求ﾌﾗｸﾞ(XFDIF)が設定(1)される時に発行される割り込みを許可します。このﾋﾞｯﾄは許可専用です。一旦許可されると、使用者が禁止することは不可能です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 32頁

ATmega328PB
13. 電力管理と休止形態 (Power Management and Sleep Modes)
13.1. 概要
休止形態は応用でMCU内の未使用部を一時停止することを可能にし、それによって節電します。本ﾃﾞﾊﾞｲｽは応用で必要な消費電力に仕立てることを使用者に許す様々な休止形態を提供します。
許可したなら、低電圧検出器(BOD)は休止期間中、電源電圧を積極的に監視します。更なる節電のため、いくつかの休止形態種別
でBODを禁止することが可能です。「低電圧検出器(BOD)禁止」もご覧ください。

13.2. 休止形態種別
下表は各種休止形態、BOD禁止の可能性とそれらの起動元を示します。
表13-1. 各休止形態に於ける動作ｸﾛｯｸ範囲と復帰起動要因
動作ｸﾛｯｸ範囲
動作発振器

復帰起動要因 (割り込み)

clkCPU
clkFLASH
clkIO
clkADC
clkASY
clkPTC

ｿﾌﾄ
U そ ｳｪｱ
TWI
ﾀｲﾏ/
SPM
A/D
休止種別
ｳｫｯﾁ S の BOD
ｱﾄﾞﾚｽ ｶｳﾝﾀ EEPROM 変換
Aﾄﾞｯｸﾞ R 他 禁止
一致
2
操作可 完了T I/O
ｱｲﾄﾞﾙ〇 〇 〇 〇
〇
②
〇
〇
〇
〇
〇
〇 〇 〇
A/D変換雑音低減
〇 〇 〇
〇
②
③
〇
②
〇
〇
〇 ④
ﾊﾟﾜｰﾀﾞｳﾝ③〇〇 ④〇
ﾊﾟﾜｰｾｰﾌﾞ
〇 〇
⑤
②
③
〇
〇
〇 ④
〇
ｽﾀﾝﾊﾞｲ (注1)
〇
③
〇
〇 ④
〇
拡張ｽﾀﾝﾊﾞｲ (注1)
② 〇
〇
②
③
〇
〇
〇 ④
〇
注1: ｸﾛｯｸ元として外部ｸﾘｽﾀﾙ発振子またはｾﾗﾐｯｸ振動子が選択された場合のみ推奨されます。
② ﾀｲﾏ/ｶｳﾝﾀ2非同期状態ﾚｼﾞｽﾀ(ASSR)の非同期ｸﾛｯｸ(AS2)ﾋﾞｯﾄが設定(1)された場合です。
③ INT1とINT0についてはﾚﾍﾞﾙ割り込みだけです。
④ ﾌﾚｰﾑ開始検出だけです。
⑤ 周辺機能接触制御器(PTC)が許可された場合に主ｸﾛｯｸは走行を保ちます。
INT
主ｸﾛｯｸ ﾀｲﾏ用と供給元 発振器
PCINT

6つの休止形態の何れかへ移行するには休止形態制御ﾚｼﾞｽﾀ(SMCR)の休止許可(SE)ﾋﾞｯﾄが1を書かれ、SLEEP命令が実行されなければなりません。SMCRの休止種別選択(SM2～0)ﾋﾞｯﾄはSLEEP命令によって活性(有効)にされる休止形態(ｱｲﾄﾞﾙ、A/D変換雑音低減、ﾊﾟﾜｰﾀﾞｳﾝ、ﾊﾟﾜｰｾｰﾌﾞ、ｽﾀﾝﾊﾞｲ、拡張ｽﾀﾝﾊﾞｲ)のどれかを選びます。
注: 「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」章の構成図は本ﾃﾞﾊﾞｲｽの各種ｸﾛｯｸ系統とそれらの配給に関する概要を提供します。この図は適切な休止形態の選択する助けになります。
MCUが休止形態中に許可した割り込みが起こると、MCUは起動します。その時にMCUは起動時間に加えて4周期停止され、割り込
みﾙｰﾁﾝを実行し、そしてSLEEP命令の次の命令から実行を再開します。ﾃﾞﾊﾞｲｽが休止から起動するとき、ﾚｼﾞｽﾀ ﾌｧｲﾙとSRAMの内
容は変えられません。休止形態中にﾘｾｯﾄが起こると、MCUは起動し、ﾘｾｯﾄ ﾍﾞｸﾀから実行します。
関連ﾘﾝｸ ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択

13.3. 低電圧検出器(BOD)禁止
低電圧検出器(BOD)がBODLEVELﾋｭｰｽﾞによって許可されていると、BODは休止期間中に電源電圧を活発に監視します。節電のため、休止形態のいくつかに対してｿﾌﾄｳｪｱによってBODを禁止することが可能です。この休止形態電力消費はBODがﾋｭｰｽﾞによって全面的に禁止される時と同じ水準になるでしょう。BODがｿﾌﾄｳｪｱで禁止される場合、BOD機能は休止形態移行後、直ちにOFFされます。休止からの起動復帰でBODは再び自動的に許可されます。これは休止期間中にVCCﾚﾍﾞﾙが落ちた場合の安全な動作を保証します。
BODが禁止されてしまうと、MCUがｺｰﾄﾞの実行を継続する前にBODが正しく動作することを保証するために、休止形態からの起動時間は概ね60µsになります。
BOD禁止はMCU制御ﾚｼﾞｽﾀ(MCUCR)のBOD休止(BODS)ﾋﾞｯﾄによって制御されます。このﾋﾞｯﾄへの1書き込みは関連する休止形態
でのBODをOFFにし、一方このﾋﾞｯﾄの0はBOD活動(有効)を保ちます。既定設定はBODS=0でBOD活動維持です。
注: BODSﾋﾞｯﾄへの書き込みは許可ﾋﾞｯﾄと時間制限手順によって制御されます。
関連ﾘﾝｸ MCUCR - MCU制御ﾚｼﾞｽﾀ
ﾋｭｰｽﾞ ﾋﾞｯﾄ© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 33頁

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

13.5. A/D変換雑音低減動作
SM2～0ﾋﾞｯﾄが'001'を書かれた時のSLEEP命令はMCUをA/D変換雑音低減動作へ移行させ、CPUを停止しますが、A/D変換器、外部割り込み、2線直列ｲﾝﾀｰﾌｪｰｽのｱﾄﾞﾚｽ監視、ﾀｲﾏ/ｶｳﾝﾀ2(注)、ｳｫｯﾁﾄﾞｯｸﾞの(許可されていれば)継続動作を許します。この休止形
態は基本的にclkI/O, clkCPU, clkFLASHを停止する一方、他のｸﾛｯｸに走行を許します。
これはA/D変換に対する雑音環境を改善し、より高い分解能の測定を可能にします。A/D変換器が許可されている場合、本動作に移行すると、変換が自動的に始まります。A/D変換完了割り込みからの他、以下のこれらの事象だけが、A/D変換雑音低減動作から
MCUを起動することができます。
・ 外部ﾘｾｯﾄ・ ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ・ ｳｫｯﾁﾄﾞｯｸﾞ割り込み
・ 低電圧検出(BOD)ﾘｾｯﾄ・ USARTのﾌﾚｰﾑ開始検出割り込み
・ 2線直列ｲﾝﾀｰﾌｪｰｽのｱﾄﾞﾚｽ一致割り込み
・ ﾀｲﾏ/ｶｳﾝﾀ2の割り込み
・ SPM/EEPROM操作可割り込み・ INTnの外部ﾚﾍﾞﾙ割り込み・ ﾋﾟﾝ変化割り込み
注: ﾀｲﾏ/ｶｳﾝﾀ2は非同期動作でだけ走行を維持します。
関連ﾘﾝｸ TC2 - PWM,非同期動作付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2

13.6. ﾊﾟﾜｰﾀﾞｳﾝ動作
SM2～0ﾋﾞｯﾄが'010'を書かれるとき、SLEEP命令はMCUをﾊﾟﾜｰﾀﾞｳﾝ動作へ移行させます。この動作では外部発振器が停止される一方、外部割り込み、2線直列ｲﾝﾀｰﾌｪｰｽのｱﾄﾞﾚｽ監視、ｳｫｯﾁﾄﾞｯｸﾞ機能は(許可されていれば)継続して動作します。
以下のこれらの事象の1つだけがMCUを起動することができます。
・ 外部ﾘｾｯﾄ・ ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ・ ｳｫｯﾁﾄﾞｯｸﾞ割り込み
・ 低電圧検出(BOD)ﾘｾｯﾄ・ USARTのﾌﾚｰﾑ開始検出割り込み
・ 2線直列ｲﾝﾀｰﾌｪｰｽのｱﾄﾞﾚｽ一致割り込み
・ INTnの外部ﾚﾍﾞﾙ割り込み・ ﾋﾟﾝ変化割り込み
この休止形態は基本的に生成した全てのｸﾛｯｸを停止し、非同期部の動作だけを許します。
注: ﾚﾍﾞﾙ起動割り込みがﾊﾟﾜｰﾀﾞｳﾝ動作からの起動に使われる場合、この必要としたﾚﾍﾞﾙはﾚﾍﾞﾙ割り込みを起動する完全な起動復帰のため、MCUに対して充分長く保持されなければならないことに注意してください。このﾚﾍﾞﾙが起動時間の最後に先立って消滅すると、MCUは今までどおり起動しますが、割り込みが生成されません。起動時間はSUTとCKSELのﾋｭｰｽﾞで定義されます。
ﾊﾟﾜｰﾀﾞｳﾝ動作から起動するとき、起動条件が起きてから起動の効果が現れるまで遅延があります。これは停止されてしまっている後の再始動と安定になることをｸﾛｯｸに許します。この起動(遅延)時間はﾘｾｯﾄ付加遅延時間を定義するのと同じCKSELﾋｭｰｽﾞによって定義されます。
関連ﾘﾝｸ ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 34頁

ATmega328PB
13.7. ﾊﾟﾜｰｾｰﾌﾞ動作
休止種別選択(SM2～0)ﾋﾞｯﾄが'011'を書かれると、SLEEP命令はMCUをﾊﾟﾜｰｾｰﾌﾞ動作へ移行させます。この動作は以下の例外を除いてﾊﾟﾜｰﾀﾞｳﾝ動作と同じです。
ﾀｲﾏ/ｶｳﾝﾀ2が許可される場合、それらは休止中も走行(動作)を維持します。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、ﾀｲﾏ/ｶｳﾝﾀ2割り込み許可ﾚｼﾞｽﾀ(TIMSK2)のﾀｲﾏ/ｶｳﾝﾀ2溢れ割り込み許可(TOIE2)ﾋﾞｯﾄまたは比較x割り込み許可(OCIE2x)ﾋﾞｯﾄが設定(1)されるなら、ﾃﾞﾊﾞｲｽは対応するどの割り込みからでも起動できます。
PTCが許可された場合、主ｸﾛｯｸは動作を続けます。
ﾀｲﾏ/ｶｳﾝﾀ2が走行(動作)しないなら、ﾊﾟﾜｰﾀﾞｳﾝ動作をﾊﾟﾜｰｾｰﾌﾞ動作の代わりにすることが推奨されます。
ﾀｲﾏ/ｶｳﾝﾀ2はﾊﾟﾜｰｾｰﾌﾞ動作で同期と非同期両方でｸﾛｯｸ駆動できます。ﾀｲﾏ/ｶｳﾝﾀ2が非同期ｸﾛｯｸを使わない場合、休止中、ﾀｲ
ﾏ/ｶｳﾝﾀ用発振器は停止されます。ﾀｲﾏ/ｶｳﾝﾀ2が同期ｸﾛｯｸを使わない場合、休止中、そのｸﾛｯｸ元は停止されます。例えﾊﾟﾜｰｾｰﾌﾞ
動作で同期ｸﾛｯｸが走行しても、このｸﾛｯｸはﾀｲﾏ/ｶｳﾝﾀ2に対してだけ利用可能です。

13.8. ｽﾀﾝﾊﾞｲ動作
外部ｸﾘｽﾀﾙ発振子/ｾﾗﾐｯｸ振動子ｸﾛｯｸ種別が選択され、SM2～0ﾋﾞｯﾄが'110'のとき、SLEEP命令はMCUをｽﾀﾝﾊﾞｲ動作へ移行させます。この動作は(外部用)発振部が走行(動作)を保たれる例外を除いてﾊﾟﾜｰﾀﾞｳﾝ動作と同じです。ﾃﾞﾊﾞｲｽはｽﾀﾝﾊﾞｲ動作から6ｸﾛｯｸ周期で起動します。

13.9. 拡張ｽﾀﾝﾊﾞｲ動作
外部ｸﾘｽﾀﾙ発振子/ｾﾗﾐｯｸ振動子ｸﾛｯｸ種別が選択され、SM2～0ﾋﾞｯﾄが'111'のとき、SLEEP命令はMCUを拡張ｽﾀﾝﾊﾞｲ動作へ移行させます。この動作は(外部用)発振部が走行(動作)を保たれる例外を除いてﾊﾟﾜｰｾｰﾌﾞ動作と同じです。ﾃﾞﾊﾞｲｽは拡張ｽﾀﾝﾊﾞｲ動作から6ｸﾛｯｸ周期で起動します。

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

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

13.11.1. A/D変換器 (ADC)
許可なら、A/D変換器は全休止形態で許可されます。電力を節約するため、休止形態の何れかへ移行する前にA/D変換器は禁止されるべきです。A/D変換器がOFFそして再びONに切り替えられると、次の(最初の)変換は延長された(初回)変換になります。
関連ﾘﾝｸ ADC - A/D変換器

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

13.11.3. 低電圧検出器 (BOD)
低電圧検出器(BOD)が応用で必要とされないなら、この単位部はOFFにされるべきです。BODLEVELﾋｭｰｽﾞによってBODが許可されると全休止形態で許可され、故に常時電力を消費します。これはより深い休止形態での総消費電流にとって重要な一因になります。
関連ﾘﾝｸ 低電圧検出(BOD)ﾘｾｯﾄ

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

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 35頁

ATmega328PB
13.11.5. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが応用で必要とされないなら、この単位部はOFFにされるべきです。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが許可されていると全休止形態で許可され、故に常時電力を消費します。これはより深い休止形態での総消費電流にとって重要な一因になります。
関連ﾘﾝｸ ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ

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

13.11.7. 内蔵ﾃﾞﾊﾞｯｸﾞ機能 (dW)内蔵ﾃﾞﾊﾞｯｸﾞ機能がDWENﾋｭｰｽﾞによって許可され、ﾁｯﾌﾟが休止形態へ移行すると、主ｸﾛｯｸ元は許可に留まり、従って常に電力を消費します。これはより深い休止形態での総消費電流にとって重要な一因になります。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 36頁

ATmega328PB
13.12. 電力管理用ﾚｼﾞｽﾀ
13.12.1. SMCR - 休止形態制御ﾚｼﾞｽﾀ (Sleep Mode Control Register)
名称 : SMCR
変位 : $53 ($33)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$33です。
この休止形態制御ﾚｼﾞｽﾀは電力管理用の制御ﾋﾞｯﾄを含みます。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

-

-

-

-

R
0

R
0

R
0

R
0

3

2

1

SM2～0
R/W
0

R/W
0

0

SE
R/W
0

R/W
0

● ﾋﾞｯﾄ3～1 - SM2～0 : 休止種別選択 (Sleep Mode Select Bit 2, 1 and 0)

SM2～0ﾋﾞｯﾄは利用可能な6つの休止形態の1つを選択します。

表13-2. 休止形態種別選択
SM2～0
休止形態種別0 0 0 ｱｲﾄﾞﾙ動作
0 0 1 A/D変換雑音低減動作
0 1 0 ﾊﾟﾜｰﾀﾞｳﾝ動作
0 1 1 ﾊﾟﾜｰｾｰﾌﾞ動作
1 0 0 (予約)
1 0 1 (予約)
1 1 0 ｽﾀﾝﾊﾞｲ動作(注)
注: (拡張)ｽﾀﾝﾊﾞｲ動作は外部ｸﾘｽﾀﾙ発振子またはｾﾗﾐｯｸ振動子での使用にだけ推奨され
1 1 1 拡張ｽﾀﾝﾊﾞｲ動作 (注)ます。

● ﾋﾞｯﾄ0 - SE : 休止許可 (Sleep Enable)

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

13.12.2. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)
名称 : MCUCR
変位 : $55 ($35)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$35です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

-

BODS

BODSE

PUD

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R/W
0

R/W
0

R/W
0

3

2

1

0

-

-

IVSEL

IVCE

R
0

R
0

R/W
0

R/W
0

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

休止間にBODをOFFにするために、BODSﾋﾞｯﾄは1を書かれなければなりません。BODSﾋﾞｯﾄの書き込みはBOD休止許可(BODSE)
ﾋﾞｯﾄと時間制限手順によって制御されます。関連する休止形態でBODを禁止するには最初にBODSとBODSEの両方が1を書かれなければなりません。その後、BODSが1を書かれ、そして4ｸﾛｯｸ周期内にBODSEが0を書かれなければなりません。
BODSﾋﾞｯﾄはそれが設定された後の3ｸﾛｯｸ周期間活性(有効)です。SLEEP命令は実際の休止形態に対してBODをOFFにするために、BODSが活性(有効)の間に実行されなければなりません。BODSﾋﾞｯﾄは3ｸﾛｯｸ周期後、自動的に解除(0)されます。
● ﾋﾞｯﾄ5 - BODSE : BOD休止許可 (BOD Sleep Enable)

BODSEはBOD休止(BODS)ﾋﾞｯﾄ記述で説明されるように、BODS制御ﾋﾞｯﾄの設定を許可します。このBOD禁止は時間制限手順によって制御されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 37頁

ATmega328PB
13.12.3. PRR0 - 電力削減ﾚｼﾞｽﾀ0 (Power Reduction Register 0)
名称 : PRR0
変位 : $64
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PRTWI0PRTIM2

PRTIM0PRUSART1

PRTIM1PRSPI0PRUSART0

PRADC

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7 - PRTWI0 : 2線直列ｲﾝﾀｰﾌｪｰｽ0電力削減 (Power Reduction TWI0)

このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によって2線直列ｲﾝﾀｰﾌｪｰｽ0(TWI0)を停止します。TWI0の再起動時、TWI0は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ6 - PRTIM2 : ﾀｲﾏ/ｶｳﾝﾀ2電力削減 (Power Reduction Timer/Counter2)

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

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

このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によってUSART1を停止します。USART1の再起動時、USART1は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ3 - PRTIM1 : ﾀｲﾏ/ｶｳﾝﾀ1電力削減 (Power Reduction Timer/Counter1)

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

ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ機能を使うなら、このﾋﾞｯﾄは1を書かれるべきではありません。このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によって直列周辺ｲﾝﾀｰﾌｪｰｽ0(SPI0)を停止します。SPI0の再起動時、SPI0は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ1 - PRUSART0 : USART0電力削減 (Power Reduction USART0)

このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によってUSART0を停止します。USART0の再起動時、USART0は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ0 - PRADC : A/D変換器電力削減 (Power Reduction ADC)

このﾋﾞｯﾄへの論理1書き込みはA/D変換器(ADC)を停止します。A/D変換器は停止前に禁止されなければなりません。A/D変換器
停止時、ｱﾅﾛｸﾞ比較器はADC入力切替器を使えません。

13.12.4. PRR1 - 電力削減ﾚｼﾞｽﾀ1 (Power Reduction Register 1)
名称 : PRR1
変位 : $65
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

PRTWI1PRPTC

PRTIM4PRSPI1-PRTIM3

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

R/W
0

● ﾋﾞｯﾄ5 - PRTWI1 : 2線直列ｲﾝﾀｰﾌｪｰｽ1電力削減 (Power Reduction TWI1)

このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によって2線直列ｲﾝﾀｰﾌｪｰｽ1(TWI1)を停止します。TWI1の再起動時、TWI1は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ4 - PRPTC : 周辺機能接触制御器電力削減 (Power Reduction PTC)

このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によって周辺機能接触制御器(PTC)を停止します。PTCの再起動時、PTC
は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ3 - PRTIM4 : ﾀｲﾏ/ｶｳﾝﾀ4電力削減 (Power Reduction Timer/Counter4)

このﾋﾞｯﾄへの論理1書き込みはﾀｲﾏ/ｶｳﾝﾀ4部を停止します。ﾀｲﾏ/ｶｳﾝﾀ4が許可されると、停止前と同様に動作は継続します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 38頁

ATmega328PB● ﾋﾞｯﾄ2 - PRSPI1 : 直列周辺ｲﾝﾀｰﾌｪｰｽ1電力削減 (Power Reduction Serial Peripheral Interface 1)

ﾃﾞﾊﾞｯｸﾞWIRE内蔵ﾃﾞﾊﾞｯｸﾞ機能を使うなら、このﾋﾞｯﾄは1を書かれるべきではありません。このﾋﾞｯﾄへの論理1書き込みはその単位部へのｸﾛｯｸ停止によって直列周辺ｲﾝﾀｰﾌｪｰｽ1(SPI1)を停止します。SPI1の再起動時、SPI1は正しい動作を保証するために再初期化されるべきです。
● ﾋﾞｯﾄ0 - PRTIM3 : ﾀｲﾏ/ｶｳﾝﾀ3電力削減 (Power Reduction Timer/Counter3)

このﾋﾞｯﾄへの1書き込みはﾀｲﾏ/ｶｳﾝﾀ3部を停止します。ﾀｲﾏ/ｶｳﾝﾀ3が許可されると、停止前と同様に動作は継続します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 39頁

ATmega328PB
14. ｼｽﾃﾑ制御とﾘｾｯﾄ (System Control and Reset)
14.1. AVRのﾘｾｯﾄ
ﾘｾｯﾄ中、全てのI/Oﾚｼﾞｽﾀはそれらの初期値に設定され、ﾌﾟﾛｸﾞﾗﾑはﾘｾｯﾄ ﾍﾞｸﾀから実行を開始します。ﾘｾｯﾄ ﾍﾞｸﾀに配置される命令
は、きっとそれ用のﾘｾｯﾄ処理ﾙｰﾁﾝへのJMP(絶対分岐)命令でしょう。ﾌﾟﾛｸﾞﾗﾑが決して割り込み元を許可しないなら、割り込みﾍﾞｸﾀは使われず、これらの位置に通常のﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞが配置できます。これはﾘｾｯﾄ ﾍﾞｸﾀが応用領域の一方、割り込みﾍﾞｸﾀがﾌﾞｰﾄ領域の場合やその逆も同様です。次項の回路構成図はﾘｾｯﾄ論理回路を示します。
AVRのI/Oﾎﾟｰﾄはﾘｾｯﾄ元が有効になると直ちにそれらの初期状態にﾘｾｯﾄされます。これはどのｸﾛｯｸ元の走行も必要ありません。
全てのﾘｾｯﾄ元が無効にされてしまった後、遅延計数器(ﾀｲﾏ)が始動され、内部ﾘｾｯﾄを引き伸ばします。これは通常動作開始前に安定電圧へ達することを電源に許します。遅延計時器の遅延時間はCKSELﾋｭｰｽﾞを通して使用者によって定義されます。この遅延時間についての各種選択は「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」で示されます。
関連ﾘﾝｸ ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択

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

RSTDISBL
BODLEVEL2～0低電圧検出回路

VCC

WDRF
BORF
EXTRF
PORF

MCU状態ﾚｼﾞｽﾀ(MCUSR)

8-bit Data Bus

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

電源ONﾘｾｯﾄ回路
30～60kΩｽﾊﾟｲｸ除去RESET

WDT用RC発振器
ｼｽﾃﾑ用発振器

内部ﾘｾｯﾄ

S Q

計数器
ﾘｾｯﾄ

ﾘｾｯﾄ回路ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
CK

R Q

SUT1,0
遅延計時器

時間経過

CKSEL3～0© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 40頁

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

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

VCC

VPOT

VCC

RESET

VRST

RESET

遅延ﾀｲﾏ

tTOUT

VPOT
VRST

tTOUT

遅延ﾀｲﾏ

内部ﾘｾｯﾄ

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

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

VRST

tTOUT

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

VBOT+

tTOUT

14.6. ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ
ｳｫｯﾁﾄﾞｯｸﾞ時間経過時、(内部的に)1CK周期幅の短いﾘｾｯﾄ ﾊﾟﾙｽを生成します。このﾊﾟﾙｽの下降端で遅延ﾀｲﾏは遅延時間(tTOUT)の計時を始めます。

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

1 CK周期

tTOUT

内部ﾘｾｯﾄ© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 41頁

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

14.7.1. 基準電圧許可信号と起動時間基準電圧には使われるべき方法に影響するかもしれない起動時間があります。節電のために、この基準電圧は常に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つの状態を避けられます。

14.8. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ
14.8.1. 特徴・ 独立した内蔵発振器からのｸﾛｯｸ駆動
・ 3つの動作種別- 割り込み- ｼｽﾃﾑ ﾘｾｯﾄ
- 割り込みとｼｽﾃﾑ ﾘｾｯﾄ
・ 選択可能な16ms～8sの計時完了時間
・ 安全動作用のｳｫｯﾁﾄﾞｯｸﾞ常時ONﾊｰﾄﾞｳｪｱ ﾋｭｰｽﾞ

14.8.2. 概要

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

本ﾃﾞﾊﾞｲｽは強化されたｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ(WDT)を持ちます。このｳｫｯﾁ 図14-7. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ構成図
ﾄﾞｯｸﾞ ﾀｲﾏ(WDT)はﾁｯﾌﾟ上の独立した128kHz発振器の間隔で計時するﾀｲﾏです。WDTは計数器が与えられた計時完了値に達した時に割りｳｫｯﾁﾄﾞｯｸﾞ
ｳｫｯﾁﾄﾞｯｸﾞ前置分周器
R
発振器
込みまたはｼｽﾃﾑ ﾘｾｯﾄを生じます。通常動作では計時完了値へ達す(128kHz)る前に計数器を再始動するためにｼｽﾃﾑはｳｫｯﾁ ﾄﾞｯｸﾞ ﾘｾｯﾄ(WDR)命
令を使う必要があります。ｼｽﾃﾑが計数器を再始動しなければ、割り込
ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ
みまたはｼｽﾃﾑ ﾘｾｯﾄが起こるでしょう。
割り込み動作種別では、ﾀｲﾏ計時完了時にWDTが割り込みを生じます。この割り込みは休止形態からﾃﾞﾊﾞｲｽを起動するためや、一般的なｳｫｯﾁﾄﾞｯｸﾞ ｸﾛｯｸｼｽﾃﾑ ﾀｲﾏとしても使えます。1つの例は或る動作に対して許された最WDP3～0選択器
大時間を制限することで、その動作が予測されたより長く走行する時に割り込みを生じます。ｼｽﾃﾑ ﾘｾｯﾄ動作種別ではﾀｲﾏ計時完了時に
MCU
WDE
WDTがﾘｾｯﾄを生じます。これは一般的にｺｰﾄﾞ外走行の場合の中断をﾘｾｯﾄ防止するのに使われます。3つ目の動作種別は先に割り込みを生じ、WDIF
その後にｼｽﾃﾑ ﾘｾｯﾄ動作種別に切り替えることで、他の2つの動作種
割り
別の組み合わせとなる、割り込み及びｼｽﾃﾑ ﾘｾｯﾄ動作種別です。この込み
WDIE
動作種別は例えばｼｽﾃﾑ ﾘｾｯﾄに先立って重要なﾊﾟﾗﾒｰﾀを保存することによって安全な停止を許します。
ｳｫｯﾁﾄﾞｯｸﾞ常時ON(WDTON)ﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾑ(0)はｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏをｼｽﾃﾑ ﾘｾｯﾄ動作種別に強制します。このﾋｭｰｽﾞのﾌﾟﾛｸﾞﾗﾑ(0)でｼｽﾃﾑ ﾘｾｯﾄ動作(WDE)ﾋﾞｯﾄと割り込み動作(WDIE)ﾋﾞｯﾄは各々、'1'と'0'に固定されます。
更にﾌﾟﾛｸﾞﾗﾑ保護を保証するためにｳｫｯﾁﾄﾞｯｸﾞ設定の変更は時間制限手順に従わなければなりません。ｼｽﾃﾑ ﾘｾｯﾄ許可(WDE)の解除と計時完了時間設定の変更についての手順は次のとおりです。
1. 同じ操作(命令)でｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ(WDTCSR)のｳｫｯﾁﾄﾞｯｸﾞ変更許可(WDCE)とWDEに論理1を書きます。WDEﾋﾞｯﾄの直前の値に拘らず、論理1がWDEに書かれなければなりません。
2. 次からの4ｸﾛｯｸ周期内に同じ操作(命令)で望むWDEとｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択(WDP3～0)ﾋﾞｯﾄ群を書きますが、WDCEﾋﾞｯﾄは解除(0)されてです。これは1操作(命令)で行わなければなりません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 42頁

ATmega328PB
次のｺｰﾄﾞ例はｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏをOFFに切り替える関数を示します。本例は(例えば全割り込み禁止によって)割り込みが制御され、それ故これらの関数実行中に割り込みが起きない前提です。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
WDT_OFF:
CLI
WDR
IN
R16,MCUSR
ANDI
R16,~(1<<WDRF)
OUT
MCUSR,R16LDS
R16,WDTCSR
ORI
R16,(1<<WDCE)|(1<<WDE)STSWDTCSR,R16
LDI
R16,(0<<WDE)STSWDTCSR,R16
SEI
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void WDT_off(void){__disable_interrupt();__watchdog_reset();MCUSR &= ~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0x00;__enable_interrupt();};全割り込み禁止;ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ
;MCUSR値を取得;WDRF論理0値を取得;ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ﾌﾗｸﾞ(WDRF)解除;現WDTCSR値を取得(他ﾋﾞｯﾄ保護用);WDCEとWDE論理1値を設定;WDCEとWDEに論理1書き込み;WDE論理0値を取得;ｳｫｯﾁﾄﾞｯｸﾞ禁止;全割り込み許可;呼び出し元へ復帰/* 全割り込み禁止 *//* ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ *//* ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ﾌﾗｸﾞ(WDRF)解除 *//* WDCEとWDEに論理1書き込み *//* ｳｫｯﾁﾄﾞｯｸﾞ禁止 *//* 全割り込み許可 */注: ｳｫｯﾁﾄﾞｯｸﾞが偶然に許可されると(例えばﾎﾟｲﾝﾀの逸脱や低電圧(ﾌﾞﾗｳﾝｱｳﾄ)状態)、ﾃﾞﾊﾞｲｽはﾘｾｯﾄし、ｳｫｯﾁﾄﾞｯｸﾞは許可に留まります。ｺｰﾄﾞがｳｫｯﾁﾄﾞｯｸﾞ操作の初期設定をしなければ、これは計時完了の無限繰り返しを引き起こすかもしれません。この状態を避けるため、応用ｿﾌﾄｳｪｱは例えｳｫｯﾁﾄﾞｯｸﾞが使われなくても、初期化ﾙｰﾁﾝでWDRFﾌﾗｸﾞとWDE制御ﾋﾞｯﾄを常に解除(0)すべきです。
次のｺｰﾄﾞ例はｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏの計時完了値を変更する方法を示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
WDT_PRS:
CLI
WDR
LDS
R16,WDTCSR
ORI
R16,(1<<WDCE)|(1<<WDE)STSWDTCSR,R16
LDI
R16,(1<<WDE)|(1<<WDP2)|(1<<WDP0)STS
WDTCSR,R16
SEI
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void WDT_off(void){__disable_interrupt();__watchdog_reset();WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = (1<<WDE)|(1<<WDP2)|(1<<WDP0);__enable_interrupt();};全割り込み禁止;ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ
;現WDTCSR値を取得(他ﾋﾞｯﾄ保護用);WDCEとWDE論理1値を設定;WDCEとWDEに論理1書き込み;WDE=1,計時間隔=0.5s値を取得;0.5s監視間隔ﾘｾｯﾄ動作開始;全割り込み許可;呼び出し元へ復帰/* 全割り込み禁止 *//* ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ *//* WDCEとWDEに論理1書き込み *//* 0.5s監視間隔ﾘｾｯﾄ動作開始 *//* 全割り込み許可 */注: ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ(WDTCSR)のｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択(WDP3～0)ﾋﾞｯﾄの変更がより短い計時完了周期に変わってしまう結果になり得るため、ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏはWDPﾋﾞｯﾄのどんな変更にも先立ってﾘｾｯﾄ(WDR命令)されるべきです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 43頁

ATmega328PB
14.9. ﾘｾｯﾄ関係ﾚｼﾞｽﾀ
14.9.1. MCUSR - MCU状態ﾚｼﾞｽﾀ (MCU Status Register)
名称 : MCUSR
変位 : $54 ($34)
ﾘｾｯﾄ : $0x (以下の説明を参照)
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$34です。
ﾘｾｯﾄ条件の確認にﾘｾｯﾄ ﾌﾗｸﾞを使うため、使用者はﾌﾟﾛｸﾞﾗﾑ内で可能な限り早くMCUSRを読み、そして解除(0)すべきです。別のﾘｾｯﾄが起こる前にこのﾚｼﾞｽﾀが解除(0)されると、そのﾘｾｯﾄ元はﾘｾｯﾄ ﾌﾗｸﾞを調べることによって得られます。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

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
内容参照

● ﾋﾞｯﾄ3 - WDRF : ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ ﾌﾗｸﾞ (Watchdog System 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)されます。

14.9.2. WDTCSR - ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ (Watchdog Timer Control Register)
名称 : WDTCSR
変位 : $60
ﾘｾｯﾄ : ‘0000x000’
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

WDIF

WDIE

WDP3

WDCE

WDE

R/W
0

R/W
0

R/W
0

R/W
0

R/W
不定

2

1

0

WDP2～0
R/W
0

R/W
0

R/W
0

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

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

このﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ｳｫｯﾁﾄﾞｯｸﾞ割り込みが許可されます。この設定(=1)との組み合わせでｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ許可(WDE)ﾋﾞｯﾄが解除(0)されると、割り込み動作種別になり、ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏで計時完了が起こると、対応する割り込みが実行されます。
WDEが設定(1)されると、ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏは割り込み及びｼｽﾃﾑ ﾘｾｯﾄ動作種別になります。ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏでの最初の計時完了がｳｫｯﾁﾄﾞｯｸﾞ割り込み要求(WDIF)ﾌﾗｸﾞを設定(1)します。対応する割り込みﾍﾞｸﾀの実行はﾊｰﾄﾞｳｪｱによってWDIEとWDIFを自動的に解除(0)します。これは割り込みを使う間のｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ保護を維持するのに有用です。割り込み及びｼｽﾃﾑ ﾘｾｯﾄ動作種別に留まるには、各割り込み後にWDIEが設定(1)されなければなりません。然しながら、ｳｫｯﾁﾄﾞｯｸﾞ ｼｽﾃﾑ ﾘｾｯﾄ動作種別の安全機能に危険を及ぼすかもしれないため、これは割り込み処理ﾙｰﾁﾝ自身内で行われるべきではありません。次の計時完了に先立って割り込みが実行されない場合、ｼｽﾃﾑ ﾘｾｯﾄが適用(実行)されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 44頁

ATmega328PB
表14-1. ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ設定
WDTON WDE
WDIE
動作種別
計時完了での動作
1
0
0
停止
なし
1
0
1
割り込み
割り込み
1
1
0
ｼｽﾃﾑ ﾘｾｯﾄ
ﾘｾｯﾄ
1
1
1
割り込み及びｼｽﾃﾑ ﾘｾｯﾄ 割り込み、その後ｼｽﾃﾑ ﾘｾｯﾄ動作種別
0xx
ｼｽﾃﾑ ﾘｾｯﾄ
ﾘｾｯﾄ
注: WDTONﾋｭｰｽﾞは0でﾌﾟﾛｸﾞﾗﾑ、1で非ﾌﾟﾛｸﾞﾗﾑに設定です。
● ﾋﾞｯﾄ5 - WDP3 : ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択ﾋﾞｯﾄ3 (Watchdog Timer Prescaler 3)● ﾋﾞｯﾄ4 - WDCE : ｳｫｯﾁﾄﾞｯｸﾞ変更許可 (Watchdog Change Enable)

このﾋﾞｯﾄはｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ許可(WDE)と前置分周器ﾋﾞｯﾄの変更用の時間制限手順で使われます。WDEﾋﾞｯﾄの解除(0)や前置分周器ﾋﾞｯﾄ変更のため、WDCEは設定(1)されなければなりません。
一旦1を書かれると、4ｸﾛｯｸ周期後にﾊｰﾄﾞｳｪｱがWDCEを解除(0)します。WDCEの使い方の情報については「ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ」項の「概要」を参照してください。
● ﾋﾞｯﾄ3 - WDE : ｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ許可 (Watchdog System Reset Enable)

WDEはMCU状態ﾚｼﾞｽﾀ(MCUSR)のｳｫｯﾁﾄﾞｯｸﾞ ﾘｾｯﾄ ﾌﾗｸﾞ(WDRF)によって無効にされます。これはWDRFが設定(1)されると、WDEが常に設定(1)されることを意味します。WDEを解除(0)するにはWDRFが先に解除(0)されなければなりません。この特徴は失敗を引き起こす状態中の複数ﾘｾｯﾄと失敗後の安全な起動を保証します。
● ﾋﾞｯﾄ2～0 - WDP2～0 : ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ前置分周選択ﾋﾞｯﾄ2～0 (Watchdog Timer Prescaler 2,1 and 0)

このWDP3～0ﾋﾞｯﾄはｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏが走行する時のｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏの前置分周を決めます。各種前置分周値と対応する計時完了
周期は下表で示されます。
表14-2. ｳｫｯﾁﾄﾞｯｸﾞ前置分周選択
WDP3
0
1
WDP2
0
1
0
1
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)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 45頁

ATmega328PB
15. INT - 割り込み (Interrupts)
この章は本ﾃﾞﾊﾞｲｽの割り込み操作の詳細を記述します。AVR割り込み操作の一般説明については「ﾘｾｯﾄと割り込みの扱い」を参照
してください。
一般的に、・ 各割り込みﾍﾞｸﾀは2命令語を占有します。
・ ﾘｾｯﾄ ﾍﾞｸﾀはBOOTRSTﾋｭｰｽﾞによって、割り込みﾍﾞｸﾀ開始ｱﾄﾞﾚｽはMCU制御ﾚｼﾞｽﾀ(MCUCR)の割り込みﾍﾞｸﾀ選択(IVSEL)ﾋﾞｯﾄ
によって影響を及ぼされます。
関連ﾘﾝｸ ﾘｾｯﾄと割り込みの扱い

15.1. ATmega328PBの割り込みﾍﾞｸﾀ
表15-1. ATmega328PBでのﾘｾｯﾄと割り込みのﾍﾞｸﾀ
ﾍﾞｸﾀ番号
ﾌﾟﾛｸﾞﾗﾑ ｱﾄﾞﾚｽ
発生元
1
$0000
RESET
2
$0002
INT0
3
$0004
INT1
4
$0006
PCINT0 (PCI0)
5$0008
PCINT1 (PCI1)
6$000A
PCINT2 (PCI2)
7
$000C
WDT
8
$000E
TIMER2_COMPA
9$0010
TIMER2_COMPB
10$0012
TIMER2_OVF
11$0014
TIMER1_CAPT
12$0016
TIMER1_COMPA
13$0018
TIMER1_COMPB
14$001A
TIMER1_OVF
15$001C
TIMER0_COMPA
16$001E
TIMER0_COMPB
17$0020
TIMER0_OVF
18$0022
SPI0_STC
19$0024
USART0_RX
20$0026
USART0_UDRE
21$0028
USART0_TX
22
$002A
ADC
23
$002C
EE_RDY
24$002E
ANALOG_COMP
25
$0030
TWI0
26
$0032
SPM_READY
27$0034
USART0_START
28$0036
PCINT3 (PCI3)
29$0038
USART1_RX
30$003A
USART1_UDRE
31$003C
USART1_TX
32$003E
USART1_START
33$0040
TIMER3_CAPT
34$0042
TIMER3_COMPA
35$0044
TIMER3_COMPB
36$0046
TIMER3_OVF
37
$0048
CFD
38
$004A
PTC_EOC
39$004C
PTC_WCOMP
40$004E
SPI1_STC
41
$0050
TWI1
42
$0052
TIMER4_CAPT
43$0054
TIMER4_COMPA
44$0056
TIMER4_COMPB
45$0058
TIMER4_OVF© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

備考
電源ON, WDT, BOD等の各種ﾘｾｯﾄ
外部割り込み要求0
外部割り込み要求1
ﾋﾟﾝ変化0群割り込み要求
ﾋﾟﾝ変化1群割り込み要求
ﾋﾟﾝ変化2群割り込み要求
ｳｫｯﾁﾄﾞｯｸﾞ計時完了
ﾀｲﾏ/ｶｳﾝﾀ2 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ2 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ2 溢れ
ﾀｲﾏ/ｶｳﾝﾀ1 捕獲発生
ﾀｲﾏ/ｶｳﾝﾀ1 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ1 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ1 溢れ
ﾀｲﾏ/ｶｳﾝﾀ0 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ0 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ0 溢れ
SPI0 転送完了
USART0 受信完了
USART0 送信緩衝部空き
USART0 送信完了
A/D変換器 変換完了
EEPROM 操作可ｱﾅﾛｸﾞ比較器 出力遷移
TWI0 状態変化
SPM命令 操作可
USART0 ﾌﾚｰﾑ開始検出
ﾋﾟﾝ変化3群割り込み要求
USART1 受信完了
USART1 送信緩衝部空き
USART1 送信完了
USART1 ﾌﾚｰﾑ開始検出
ﾀｲﾏ/ｶｳﾝﾀ3 捕獲発生
ﾀｲﾏ/ｶｳﾝﾀ3 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ3 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ3 溢れ
ｸﾛｯｸ障害検出
周辺機能接触制御器 変換終了
周辺機能接触制御器 窓比較動作
SPI1 転送完了
TWI1 状態変化
ﾀｲﾏ/ｶｳﾝﾀ4 捕獲発生
ﾀｲﾏ/ｶｳﾝﾀ4 比較A一致
ﾀｲﾏ/ｶｳﾝﾀ4 比較B一致
ﾀｲﾏ/ｶｳﾝﾀ4 溢れ

DS40001906C - 46頁

ATmega328PB(訳補) 原書では他のAVRﾃﾞﾊﾞｲｽのﾃﾞｰﾀｼｰﾄと異なり、ﾘｾｯﾄと割り込みﾍﾞｸﾀの配置に関する包括的な記述が存在しないため、これを他のAVRﾃﾞﾊﾞｲｽと同様に以下に記述します。
右表はBOOTRST(ﾋｭｰｽﾞ)とIVSEL(割り込みﾍﾞｸﾀ
選択ﾋﾞｯﾄ)の様々な組み合わせに対するﾘｾｯﾄと割り込みﾍﾞｸﾀの配置を示します。ﾌﾟﾛｸﾞﾗﾑが決して割り込み元を許可しないなら、割り込みﾍﾞｸﾀは使使われず、これらの位置に通常のﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞを置けます。これはﾘｾｯﾄ ﾍﾞｸﾀが応用領域の一方、割り込みﾍﾞｸﾀがﾌﾞｰﾄ領域、またはその逆の場合
でも同様です。

© 2018 Microchip Technology Inc.

表15-2. ﾘｾｯﾄと割り込みﾍﾞｸﾀの配置
ﾘｾｯﾄ ﾍﾞｸﾀ ｱﾄﾞﾚｽ
BOOTRST IVSEL
割り込みﾍﾞｸﾀ先頭ｱﾄﾞﾚｽ
$0000
0
$0002
非ﾌﾟﾛｸﾞﾗﾑ(1)$0000
1
ﾌﾞｰﾄ領域先頭ｱﾄﾞﾚｽ＋$0002
0
ﾌﾞｰﾄ領域先頭ｱﾄﾞﾚｽ$0002
ﾌﾟﾛｸﾞﾗﾑ(0)1
ﾌﾞｰﾄ領域先頭ｱﾄﾞﾚｽ ﾌﾞｰﾄ領域先頭ｱﾄﾞﾚｽ＋$0002
注: ﾌﾞｰﾄ領域先頭ｱﾄﾞﾚｽは表31-7.で示されます。

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 47頁

ATmega328PB
15.2. 割り込みﾍﾞｸﾀ移動関係ﾚｼﾞｽﾀ
15.2.1. 応用領域とﾌﾞｰﾄ領域間の割り込みﾍﾞｸﾀ移動
MCU制御ﾚｼﾞｽﾀ(MCUCR)は割り込みﾍﾞｸﾀ表の配置を制御します。

15.2.2. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)
名称 : MCUCR
変位 : $55 ($35)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$35です。
MCU制御ﾚｼﾞｽﾀは応用とﾌﾞｰﾄの空間間で割り込みを移動するために割り込みﾍﾞｸﾀ表の配置を制御します。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

BODS

BODSE

PUD

-

-

IVSEL

IVCE

R
0

R/W
0

R/W
0

R/W
0

R
0

R
0

R/W
0

R/W
0

● ﾋﾞｯﾄ1 - IVSEL : 割り込みﾍﾞｸﾀ選択 (Interrupt Vector Select)

IVSELﾋﾞｯﾄが解除(0)されると、割り込みﾍﾞｸﾀはﾌﾗｯｼｭ ﾒﾓﾘの先頭に配置されます。このﾋﾞｯﾄが設定(1)されると、割り込みﾍﾞｸﾀはﾌﾗｯ
ｼｭ ﾒﾓﾘのﾌﾞｰﾄ ﾛｰﾀﾞ領域の始まりへ移されます。ﾌﾞｰﾄ ﾌﾗｯｼｭ領域先頭の実際のｱﾄﾞﾚｽはBOOTSZﾋｭｰｽﾞによって決定されます。割り込みﾍﾞｸﾀ表の予期せぬ変更を防ぐため、IVSELﾋﾞｯﾄの変更は特別な書き込み手順に従わなければなりません。
1. 割り込みﾍﾞｸﾀ変更許可(IVCE)ﾋﾞｯﾄに1を書いてください。
2. 4周期内に、望む値をIVSELに書き、同時にIVCEへ0を書いてください。
この手順が実行される間、割り込みは自動的に禁止されます。割り込みはIVCEが設定(1)される周期で禁止され、後続のIVSELに書く命令の後まで禁止されたままです。IVSELが書かれなければ、割り込みは4周期間、禁止されたままです。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄはこの自動禁止によって影響されません。
注: 割り込みﾍﾞｸﾀがﾌﾞｰﾄ ﾛｰﾀﾞ領域に配置され、BLB02ﾌﾞｰﾄ施錠ﾋﾞｯﾄがﾌﾟﾛｸﾞﾗﾑ(0)されると、応用領域から実行する間中、割り込みが禁止されます。割り込みﾍﾞｸﾀが応用領域に配置され、BLB12ﾌﾞｰﾄ施錠ﾋﾞｯﾄがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾌﾞｰﾄ ﾛｰﾀﾞ領域から実行する間
中、割り込みが禁止されます。
● ﾋﾞｯﾄ0 - IVCE : 割り込みﾍﾞｸﾀ変更許可 (Interrupt Vector Change Enable)

IVCEﾋﾞｯﾄは割り込みﾍﾞｸﾀ選択(IVSEL)ﾋﾞｯﾄの変更を許可するために論理1を書かれなければなりません。IVCEはIVSELが書かれる
時、またはIVCEが書かれた後の4周期後、ﾊｰﾄﾞｳｪｱによって解除(0)されます。上記IVSEL記述で説明されるようにIVCEﾋﾞｯﾄの設定(1)は割り込みを(一時的に)禁止します。以下のｺｰﾄﾞ例をご覧ください。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
MOVE_IVT:
IN
R16,MCUCR
MOV
R17,R16
ORI
R16,(1<<IVCE)OUT
MCUCR,R16
ORI
R17,(1<<IVSEL)OUTMCUCR,R17
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void Move_interrupts(void){uchr temp;
temp = MCUCR;
MCUCR = temp|(1<<IVCE);MCUCR = temp|(1<<IVSEL);}© 2018 Microchip Technology Inc.

;現MCUCR値取得;現MCUCR値複写;IVCE論理1値を取得;IVCEに論理1書き込み;IVSEL論理1値を取得;ﾌﾞｰﾄ領域へ割り込みﾍﾞｸﾀを移動;呼び出し元へ復帰/* 一時定数定義 *//* 現MCUCR値取得 *//* IVCEに論理1書き込み *//* ﾌﾞｰﾄ領域へ割り込みﾍﾞｸﾀを移動 */完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 48頁

ATmega328PB
16. EXTINT - 外部割り込み (External Interrupts)
外部割り込みはINTﾋﾟﾝまたはPCINTﾋﾟﾝの何れかによって起動されます。許可したなら、例えINTまたはPCINTﾋﾟﾝが出力として設定されても、割り込みが起動することに注目してください。この特徴はｿﾌﾄｳｪｱ割り込みを生成する方法を提供します。PCI3ﾋﾟﾝ変化割り込みは許可したPCINT24～27の何れかが切り替わると起動します。PCI2ﾋﾟﾝ変化割り込みは許可したPCINT16～23の何れかが切り替わると起動します。PCI1ﾋﾟﾝ変化割り込みは許可したPCINT8～14の何れかが切り替わると起動します。PCI0ﾋﾟﾝ変化割り込みは許可したPCINT0～7の何れかが切り替わると起動します。ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀn(PCMSK0,PCMSK1,PCMSK2,PCMSK3)は、どのﾋﾟﾝがﾋﾟﾝ変化割り込み要因となるかを制御します。PCINTnでのﾋﾟﾝ変化割り込みは非同期に検知されます。これはそれらの割り込
みがｱｲﾄﾞﾙ動作以外の休止形態からもﾃﾞﾊﾞｲｽを起動するのに使えることを意味します。
INT外部割り込みは上昇端または下降端(含む両端)、またはLowﾚﾍﾞﾙによって起動できます。これは外部割り込み制御ﾚｼﾞｽﾀA(EICRA)の詳述で示される設定です。INT外部割り込みがﾚﾍﾞﾙ起動として設定、且つ許可されると、そのﾋﾟﾝがLowに保持される限り、割り込みは(継続的に)起動します。INTの上昇端や下降端割り込みの認知はI/Oｸﾛｯｸの存在を必要とすることに注意してください。INTのLowﾚﾍﾞﾙ割り込みは非同期に検知されます。これはこの割り込みがｱｲﾄﾞﾙ動作以外の休止形態からもﾃﾞﾊﾞｲｽを起動するのに使えることを意味します。I/Oｸﾛｯｸはｱｲﾄﾞﾙ動作を除く全休止形態で停止されます。
注: ﾚﾍﾞﾙ起動割り込みがﾊﾟﾜｰﾀﾞｳﾝ動作からの起動に使われる場合、この必要としたﾚﾍﾞﾙはﾚﾍﾞﾙ割り込みを起動する完全な起動復帰のため、MCUに対して充分長く保持されなければなりません。このﾚﾍﾞﾙが起動時間の最後に先立って消滅すると、MCUは今までどおり起動しますが、割り込みが生成されません。起動時間はSUTとCKSELのﾋｭｰｽﾞで定義されます。
関連ﾘﾝｸ ｼｽﾃﾑ制御とﾘｾｯﾄ
ｸﾛｯｸ系統とその配給ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択

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

D

Q

A

D

Q

B

E

PCMSKmのPCINTn

clk
～

本数分合成

clk

C

D

© 2018 Microchip Technology Inc.

Q

D

D

Q

E

D

Q

PCIFm

完全ﾃﾞｰﾀｼｰﾄ

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

DS40001906C - 49頁

ATmega328PB
16.2. 外部割り込み用ﾚｼﾞｽﾀ
16.2.1. EICRA - 外部割り込み制御ﾚｼﾞｽﾀA (External Interrupt Control Register A)
名称 : EICRA
変位 : $69
ﾘｾｯﾄ : $00
特質 : 外部割り込み制御ﾚｼﾞｽﾀAは割り込み条件制御ﾋﾞｯﾄを含みます。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

-

-

-

-

R
0

R
0

R
0

R
0

3

2

1

ISC11,0R/W
00

ISC01,0
R/W
0

R/W
0

R/W
0

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

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

表16-1. 外部割り込み1(INT1)割り込み条件
ISC11 ISC10
割り込み発生条件00INT1ﾋﾟﾝがLowﾚﾍﾞﾙで発生。
01
INT1ﾋﾟﾝの論理変化(両端)。
01INT1ﾋﾟﾝの下降端で発生。
1
INT1ﾋﾟﾝの上昇端で発生。
1● ﾋﾞｯﾄ1,0 - ISC01,0 : 外部割り込み0条件制御 (Interrupt Sense Control 0 bit1 and 0)

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

表16-2. 外部割り込み0(INT0)割り込み条件
ISC01 ISC00
割り込み発生条件0
INT0ﾋﾟﾝがLowﾚﾍﾞﾙで発生。
0
INT0ﾋﾟﾝの論理変化(両端)。
011INT0ﾋﾟﾝの下降端で発生。
0
INT0ﾋﾟﾝの上昇端で発生。
1116.2.2. EIMSK - 外部割り込み許可ﾚｼﾞｽﾀ (External Interrupt Mask Register)
名称 : EIMSK
変位 : $3D ($1D)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$1Dです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

-

-

-

-

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

6

5

4

3

2

1

0

-

-

INT1

INT0

R
0

R
0

R/W
0

R/W
0

● ﾋﾞｯﾄ1 - INT1 : 外部割り込み1許可 (External Interrupt Request 1 Enable)

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 50頁

ATmega328PB
16.2.3. EIFR - 外部割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (External Interrupt Flag Register)
名称 : EIFR
変位 : $3C ($1C)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$1Cです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

-

INTF1

INTF0

R
0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

● ﾋﾞｯﾄ1 - INTF1 : 外部割り込み1要求ﾌﾗｸﾞ (External Interrupt Flag 1)

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

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

16.2.4. PCICR - ﾋﾟﾝ変化割り込み制御ﾚｼﾞｽﾀ (Pin Change Interrupt Control Register)
名称 : PCICR
変位 : $68
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

PCIE3

PCIE2

PCIE1

PCIE0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ3 - PCIE3 : ﾋﾟﾝ変化3群割り込み許可 (Pin Change Interrupt Enable 3)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、PCIE3ﾋﾞｯﾄが設定(1)されると、ﾋﾟﾝ変化3群割り込みが許可されます。
許可したPCINT24～27ﾋﾟﾝの何れかの変化が割り込みを起こします。このﾋﾟﾝ変化割り込み要求に対応する割り込みはPCI3割り込み
ﾍﾞｸﾀから実行されます。PCINT24～27ﾋﾟﾝはﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ3(PCMSK3)によって個別に許可されます。
● ﾋﾞｯﾄ2 - PCIE2 : ﾋﾟﾝ変化2群割り込み許可 (Pin Change Interrupt Enable 2)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、PCIE2ﾋﾞｯﾄが設定(1)されると、ﾋﾟﾝ変化2群割り込みが許可されます。
許可したPCINT16～23ﾋﾟﾝの何れかの変化が割り込みを起こします。このﾋﾟﾝ変化割り込み要求に対応する割り込みはPCI2割り込み
ﾍﾞｸﾀから実行されます。PCINT16～23ﾋﾟﾝはﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ2(PCMSK2)によって個別に許可されます。
● ﾋﾞｯﾄ1 - PCIE1 : ﾋﾟﾝ変化1群割り込み許可 (Pin Change Interrupt Enable 1)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)され、PCIE1ﾋﾞｯﾄが設定(1)されると、ﾋﾟﾝ変化1群割り込みが許可されます。
許可したPCINT8～14ﾋﾟﾝの何れかの変化が割り込みを起こします。このﾋﾟﾝ変化割り込み要求に対応する割り込みはPCI1割り込みﾍﾞｸﾀから実行されます。PCINT8～14ﾋﾟﾝはﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ1(PCMSK1)によって個別に許可されます。
● ﾋﾞｯﾄ0 - PCIE0 : ﾋﾟﾝ変化0群割り込み許可 (Pin Change Interrupt Enable 0)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 51頁

ATmega328PB
16.2.5. PCIFR - ﾋﾟﾝ変化割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Pin Change Interrupt Flag Register)
名称 : PCIFR
変位 : $3B ($1B)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$1Bです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

PCIF3

PCIF2

PCIF1

PCIF0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ3 - PCIF3 : ﾋﾟﾝ変化3群割り込み要求ﾌﾗｸﾞ (Pin Change Interrupt Flag 3)

PCINT24～27ﾋﾟﾝの何れかの論理変化が割り込み要求を起動すると、PCIF3が設定(1)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとﾋﾟﾝ変化割り込み制御ﾚｼﾞｽﾀ(PCICR)のﾋﾟﾝ変化3群割り込み許可(PCIE3)ﾋﾞｯﾄが設定(1)なら、MCUは対応する割り込み
ﾍﾞｸﾀへ飛びます。このﾌﾗｸﾞは割り込み処理ﾙｰﾁﾝが開始されると解除(0)されます。代わりにこのﾌﾗｸﾞは1を書くことによっても解除(0)できます。
● ﾋﾞｯﾄ2 - PCIF2 : ﾋﾟﾝ変化2群割り込み要求ﾌﾗｸﾞ (Pin Change Interrupt Flag 2)

PCINT16～23ﾋﾟﾝの何れかの論理変化が割り込み要求を起動すると、PCIF2が設定(1)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとﾋﾟﾝ変化割り込み制御ﾚｼﾞｽﾀ(PCICR)のﾋﾟﾝ変化2群割り込み許可(PCIE2)ﾋﾞｯﾄが設定(1)なら、MCUは対応する割り込み
ﾍﾞｸﾀへ飛びます。このﾌﾗｸﾞは割り込み処理ﾙｰﾁﾝが開始されると解除(0)されます。代わりにこのﾌﾗｸﾞは1を書くことによっても解除(0)できます。
● ﾋﾞｯﾄ1 - PCIF1 : ﾋﾟﾝ変化1群割り込み要求ﾌﾗｸﾞ (Pin Change Interrupt Flag 1)

PCINT8～14ﾋﾟﾝの何れかの論理変化が割り込み要求を起動すると、PCIF1が設定(1)されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとﾋﾟﾝ変化割り込み制御ﾚｼﾞｽﾀ(PCICR)のﾋﾟﾝ変化1群割り込み許可(PCIE1)ﾋﾞｯﾄが設定(1)なら、MCUは対応する割り込み
ﾍﾞｸﾀへ飛びます。このﾌﾗｸﾞは割り込み処理ﾙｰﾁﾝが開始されると解除(0)されます。代わりにこのﾌﾗｸﾞは1を書くことによっても解除(0)できます。
● ﾋﾞｯﾄ0 - PCIF0 : ﾋﾟﾝ変化0群割り込み要求ﾌﾗｸﾞ (Pin Change Interrupt Flag 0)

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

16.2.6. PCMSK3 - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ3 (Pin Change Mask Register 3)
名称 : PCMSK3
変位 : $73
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

PCINT27

PCINT26

PCINT25

PCINT24

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ3～0 - PCINT27～PCINT24 : ﾋﾟﾝ変化割り込み27～24許可 (Pin Change Enable Mask 27～24)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 52頁

ATmega328PB
16.2.7. PCMSK2 - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ2 (Pin Change Mask Register 2)
名称 : PCMSK2
変位 : $6D
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

PCINT23PCINT22

PCINT21

PCINT20

PCINT19

PCINT18

PCINT17

PCINT16

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ｱｸｾｽ種別ﾘｾｯﾄ値● ﾋﾞｯﾄ7～0 - PCINT23～PCINT16 : ﾋﾟﾝ変化割り込み23～16許可 (Pin Change Enable Mask 23～16)

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

16.2.8. PCMSK1 - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ1 (Pin Change Mask Register 1)
名称 : PCMSK1
変位 : $6C
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

PCINT14PCINT13PCINT12PCINT11

PCINT10

PCINT9PCINT8

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ6～0 - PCINT14～PCINT8 : ﾋﾟﾝ変化割り込み14～8許可 (Pin Change Enable Mask 14～8)

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

16.2.9. PCMSK0 - ﾋﾟﾝ変化割り込み許可ﾚｼﾞｽﾀ0群 (Pin Change Mask Register 0)
名称 : PCMSK0
変位 : $6B
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PCINT7PCINT6

PCINT5

PCINT4

PCINT3

PCINT2

PCINT1

PCINT0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - PCINT7～PCINT0 : ﾋﾟﾝ変化割り込み7～0許可 (Pin Change Enable Mask 7～0)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 53頁

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

17.2. 標準ﾃﾞｼﾞﾀﾙ入出力としてのﾎﾟｰﾄ
このﾎﾟｰﾄは任意の内部ﾌﾟﾙｱｯﾌﾟ付き双方向I/Oﾎﾟｰﾄです。下図はここで属にPxnと呼ばれるI/Oﾎﾟｰﾄ ﾋﾟﾝの1つの機能説明を示します。
図17-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は全ﾎﾟｰﾄで共通です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 54頁

ATmega328PB
17.2.1. ﾋﾟﾝの設定
各ﾎﾟｰﾄ ﾋﾟﾝは3つのﾚｼﾞｽﾀ ﾋﾞｯﾄ、DDxn、PORTxn、PINxnから成ります。「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に駆動されます。そのﾋﾟﾝが出力ﾋﾟﾝとして設定される時にPORTxnが0を書かれると、そのﾎﾟｰﾄ ﾋﾟﾝはLowに駆動されます。

17.2.2. ﾋﾟﾝの出力交互切り替え
PINxnへの1書き込みはDDRxnの値に拘らず、PORTxnの値を反転切り替えします。SBI命令はﾎﾟｰﾄ内の1ﾋﾞｯﾄの反転切り替えに使うことができます。

17.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)のどちらかを使わなければなりません。
下表はﾋﾟﾝ値に対する制御信号の一覧を示します。
表17-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 (吐き出し)出力

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

図17-3. 外部供給ﾋﾟﾝ値読み込み時の同期化© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄｼｽﾃﾑ ｸﾛｯｸ
実行命令

XXX

XXX

IN R16,PINx

XXX

以前の値

入力値

同期ﾗｯﾁ
PINxn
R16値

tpd,max

tpd,min

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

OUT PORTxNOP

IN R16,PINx

XXX

以前の値

入力値

同期ﾗｯﾁ
PINxn
R16値

tpd

DS40001906C - 55頁

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 56頁

ATmega328PB
17.3. 交換ﾎﾟｰﾄ機能
多くのﾎﾟｰﾄ ﾋﾟﾝには標準ﾃﾞｼﾞﾀﾙ入出力に加え交換機能があります。下図は単純化された図17-2.でのﾎﾟｰﾄ ﾋﾟﾝ制御信号が交換機能
によってどう重複できるかを示します。この重複信号は全てのﾎﾟｰﾄ ﾋﾟﾝに存在する訳ではありませんが、この図はAVR ﾏｲｸﾛ ｺﾝﾄﾛｰﾗ
系統の全ﾎﾟｰﾄ ﾋﾟﾝに適用できる一般的な記述として取り扱います。
図17-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書き

Q
R

WRx:PORTx書き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は全ﾎﾟｰﾄで共通です。他の信号は各ﾋﾟﾝ固有です。
下表は重複(交換)信号の機能一覧を示します。前の図で示すﾋﾟﾝとﾎﾟｰﾄは次表で示されません。重複(交換)信号は交換機能を持つ機能部で内部的に生成されます。
表17-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
ｱﾅﾛｸﾞ入出力
交換機能用ｱﾅﾛｸﾞ入出力です。この信号はﾋﾟﾝに直接接続され、双方向使用ができます。
次節は交換機能に関連する重複(交換)信号と各ﾎﾟｰﾄの交換機能を簡単に記述します。更に先の詳細については交換機能の記述を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 57頁

ATmega328PB
17.3.1. ﾎﾟｰﾄBの交換機能
ﾎﾟｰﾄBﾋﾟﾝの交換機能は下表で示されます。
表17-3. ﾎﾟｰﾄBﾋﾟﾝの交換機能
ﾎﾟｰﾄ ﾋﾟﾝ
XTAL2
PB7
TOSC2
PCINT7
XTAL1
PB6
TOSC1
PCINT6
SCK0
PB5
XCK1
PCINT5
MISO0
RXD1
PB4
PCINT4
MOSI0
TXD1
PB3
OC2A
PCINT3
SS0
PB2
OC1B
PCINT2
OC1A
PB1PCINT1
ICP1
CLKO
PB0
PCINT0

交換機能(ｼｽﾃﾑ ｸﾛｯｸ用発振増幅器出力)(ﾀｲﾏ用発振増幅器出力)(ﾋﾟﾝ変化割り込み7入力)(ｼｽﾃﾑ ｸﾛｯｸ用発振増幅器入力または外部ｸﾛｯｸ信号入力)(ﾀｲﾏ用発振増幅器入力)(ﾋﾟﾝ変化割り込み6入力)(SPI0 直列ｸﾛｯｸ 主装置側出力/従装置側入力)(USART1 外部ｸﾛｯｸ入出力)(ﾋﾟﾝ変化割り込み5入力)(SPI0 主装置側ﾃﾞｰﾀ入力/従装置側ﾃﾞｰﾀ出力)(USART1 受信ﾃﾞｰﾀ入力)(ﾋﾟﾝ変化割り込み4入力)(SPI0 主装置側ﾃﾞｰﾀ出力/従装置側ﾃﾞｰﾀ入力)(USART1 送信ﾃﾞｰﾀ出力)(ﾀｲﾏ/ｶｳﾝﾀ2 比較A一致出力)(ﾋﾟﾝ変化割り込み3入力)(SPI0 従装置選択入力)(ﾀｲﾏ/ｶｳﾝﾀ1 比較B一致出力)(ﾋﾟﾝ変化割り込み2入力)(ﾀｲﾏ/ｶｳﾝﾀ1 比較A一致出力)(ﾋﾟﾝ変化割り込み1入力)(ﾀｲﾏ/ｶｳﾝﾀ1 捕獲起動入力)(ｼｽﾃﾑ ｸﾛｯｸ出力)(ﾋﾟﾝ変化割り込み0入力)

交換ﾋﾟﾝの設定は次のとおりです。
・ XTAL2/TOSC2/PCINT7 - ﾎﾟｰﾄB ﾋﾞｯﾄ7 : PB7- XTAL2 : ﾁｯﾌﾟ(ｼｽﾃﾑ) ｸﾛｯｸ発振器ﾋﾟﾝ2。ｸﾘｽﾀﾙ発振器または低周波数ｸﾘｽﾀﾙ発振器用ｸﾛｯｸ ﾋﾟﾝとして使われます。ｸﾛｯｸ ﾋﾟﾝとして使われると、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
- TOSC2 : ﾀｲﾏ発振器ﾋﾟﾝ2。ﾁｯﾌﾟ ｸﾛｯｸ元として校正付き内蔵RC発振器が選択され、非同期ﾀｲﾏが非同期状態ﾚｼﾞｽﾀ(ASSR)の正しい設定により許可される場合だけ使われます。ｸﾘｽﾀﾙ発振器使用のﾀｲﾏ/ｶｳﾝﾀ2非同期ｸﾛｯｸ動作を許可するために
ASSRの非同期許可(AS2)ﾋﾞｯﾄが設定(1)され、外部ｸﾛｯｸ信号許可(EXCLK)ﾋﾞｯﾄが解除(0)されると、PB7ﾋﾟﾝはﾎﾟｰﾄから切り離され、発振用反転増幅器の出力になります。この動作では、このﾋﾟﾝにｸﾘｽﾀﾙ発振器が接続され、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
- PCINT7 : ﾋﾟﾝ変化割り込み7入力。PB7ﾋﾟﾝは外部割り込み元としても扱えます。
PB7がｸﾛｯｸ ﾋﾟﾝとして使われると、PORTB7, DDB7, PINB7は全て0を読みます。
・ XTAL1/TOSC1/PCINT6 - ﾎﾟｰﾄB ﾋﾞｯﾄ6 : PB6- XTAL1 : ﾁｯﾌﾟ(ｼｽﾃﾑ) ｸﾛｯｸ発振器ﾋﾟﾝ1。ｸﾘｽﾀﾙ発振器または低周波数ｸﾘｽﾀﾙ発振器用ｸﾛｯｸ ﾋﾟﾝとして使われます。ｸﾛｯｸ ﾋﾟﾝとして使われると、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
- TOSC1 : ﾀｲﾏ発振器ﾋﾟﾝ1。ﾁｯﾌﾟ ｸﾛｯｸ元として校正付き内蔵RC発振器が選択され、非同期ﾀｲﾏが非同期状態ﾚｼﾞｽﾀ(ASSR)の正しい設定により許可される場合だけ使われます。ｸﾘｽﾀﾙ発振器使用のﾀｲﾏ/ｶｳﾝﾀ2非同期ｸﾛｯｸ動作を許可するために
ASSRの非同期許可(AS2)ﾋﾞｯﾄが設定(1)され、外部ｸﾛｯｸ信号許可(EXCLK)ﾋﾞｯﾄが解除(0)されると、PB6ﾋﾟﾝはﾎﾟｰﾄから切り離され、発振用反転増幅器の入力になります。この動作では、このﾋﾟﾝにｸﾘｽﾀﾙ発振器が接続され、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
- PCINT6 : ﾋﾟﾝ変化割り込み6入力。PB6ﾋﾟﾝは外部割り込み元としても扱えます。
PB6がｸﾛｯｸ ﾋﾟﾝとして使われると、PORTB6, DDB6, PINB6は全て0を読みます。
・ SCK0/XCK1/PCINT5 - ﾎﾟｰﾄB ﾋﾞｯﾄ5 : PB5- SCK0 : SPI0ﾁｬﾈﾙ用の主装置ｸﾛｯｸ出力、従装置ｸﾛｯｸ入力。SPI0が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄB方向ﾚｼﾞｽﾀ(DDRB)のDDB5設定に拘らず、入力として設定されます。SPI0が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDB5によって制御されます。このﾋﾟﾝがSPI0によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄB出力ﾚｼﾞｽﾀ(PORTB)のPORTB5によって制御できます。
- XCK0 : USART0の外部ｸﾛｯｸ入出力ﾋﾟﾝです。
- PCINT5 : ﾋﾟﾝ変化割り込み5入力。PB5ﾋﾟﾝは外部割り込み元としても扱えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 58頁

ATmega328PB・ MISO0/RXD1/PCINT4 - ﾎﾟｰﾄB ﾋﾞｯﾄ4 : PB4- MISO0 : SPI0ﾁｬﾈﾙ用の主装置ﾃﾞｰﾀ入力、従装置ﾃﾞｰﾀ出力。SPI0が主装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄB方向ﾚｼﾞｽﾀ(DDRB)のDDB4の設定に拘らず、入力として設定されます。SPI0が従装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDB4によって制御されます。このﾋﾟﾝがSPI0によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄB出力ﾚｼﾞｽﾀ(PORTB)のPORT
B4によって制御できます。
- RXD1 : 受信ﾃﾞｰﾀ(USART1用ﾃﾞｰﾀ入力ﾋﾟﾝ)。USART1受信部が許可されると、このﾋﾟﾝはDDRBのDDB4の値に拘らず入力として設定されます。USART1がこのﾋﾟﾝを入力に強制するとき、ﾌﾟﾙｱｯﾌﾟは未だPORTB4ﾋﾞｯﾄによって制御できます。
- PCINT4 : ﾋﾟﾝ変化割り込み4入力。PB4ﾋﾟﾝは外部割り込み元としても扱えます。
・ MOSI0/TXD1/OC2A/PCINT3 - ﾎﾟｰﾄB ﾋﾞｯﾄ3 : PB3- MOSI0 : SPI0ﾁｬﾈﾙ用の主装置ﾃﾞｰﾀ出力、従装置ﾃﾞｰﾀ入力。SPI0が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄB方向ﾚｼﾞｽﾀ(DDRB)のDDB3設定に拘らず、入力として設定されます。SPI0が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDB3によって制御されます。このﾋﾟﾝがSPI0によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄB出力ﾚｼﾞｽﾀ(PORTB)のPORT
B3によって制御できます。
- TXD1 : 送信ﾃﾞｰﾀ(USART1用ﾃﾞｰﾀ出力ﾋﾟﾝ)。USART1送信部が許可されると、このﾋﾟﾝはﾎﾟｰﾄB方向ﾚｼﾞｽﾀ(DDRB)のDDB3の値に拘らず出力として設定されます。
- OC2A : ﾀｲﾏ/ｶｳﾝﾀ2の比較A一致出力。PB3ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ2の比較A一致用外部出力として扱えます。この機能を扱うため、PB3ﾋﾟﾝは出力として設定(DDB3=1)されなければなりません。このOC2Aﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT3 : ﾋﾟﾝ変化割り込み3入力。PB3ﾋﾟﾝは外部割り込み元としても扱えます。
・ SS0/OC1B/PCINT2 - ﾎﾟｰﾄB ﾋﾞｯﾄ2 : PB2- SS0 : SPI0従装置選択入力。SPI0が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄB方向ﾚｼﾞｽﾀ(DDRB)のDDB2の設定に拘らず、入力として設定されます。従装置としてこのﾋﾟﾝがLowに駆動されるとSPI0(機能)が活性化(有効に)されます。SPI0が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDB2によって制御されます。このﾋﾟﾝがSPI0によって入力を強制されるとき、ﾌﾟﾙｱｯ
ﾌﾟは未だﾎﾟｰﾄB出力ﾚｼﾞｽﾀ(PORTB)のPORTB2によって制御できます。
- OC1B : ﾀｲﾏ/ｶｳﾝﾀ1の比較B一致出力。PB2ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ1の比較B一致用外部出力として扱えます。この機能を扱うため、PB2ﾋﾟﾝは出力として設定(DDB2=1)されなければなりません。このOC1Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT2 : ﾋﾟﾝ変化割り込み2入力。PB2ﾋﾟﾝは外部割り込み元としても扱えます。
・ OC1A/PCINT1 - ﾎﾟｰﾄB ﾋﾞｯﾄ1 : PB1- OC1A : ﾀｲﾏ/ｶｳﾝﾀ1の比較A一致出力。PB1ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ1の比較A一致用外部出力として扱えます。この機能を扱うため、PB1ﾋﾟﾝは出力として設定(DDB1=1)されなければなりません。このOC1Aﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT1 : ﾋﾟﾝ変化割り込み1入力。PB1ﾋﾟﾝは外部割り込み元としても扱えます。
・ ICP1/CLKO/PCINT0 - ﾎﾟｰﾄB ﾋﾞｯﾄ0 : PB0- ICP1 : ﾀｲﾏ/ｶｳﾝﾀ1の捕獲起動入力。PB0ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ1用捕獲起動入力ﾋﾟﾝとして動作できます。
- CLKO : ｼｽﾃﾑ ｸﾛｯｸ出力。分周したｼｽﾃﾑ ｸﾛｯｸがPB0ﾋﾟﾝに出力できます。分周したｼｽﾃﾑ ｸﾛｯｸはCKOUTﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、PORTB0とDDB0設定に拘らず、出力されます。これはﾘｾｯﾄ中にも出力されます。
- PCINT0 : ﾋﾟﾝ変化割り込み0入力。PB0ﾋﾟﾝは外部割り込み元としても扱えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 59頁

ATmega328PB
表17-4.と表17-5.はﾎﾟｰﾄBの交換機能を図17-5.で示される交換信号に関連付けます。SPI主装置入力とSPI従装置出力がMISOを構成し、一方MOSIはSPI主装置出力とSPI従装置入力に分けられます。
表17-4. ﾎﾟｰﾄB7～4の交換機能用交換信号
PB7/XTAL2/
信号名
TOSC2/PCINT7PUOE
INTRC･EXTCK+AS2
PUOV
0
DDOE
INTRC･EXTCK+AS2
DDOV
0
PVOE
0
PVOV
0
PTOE
INTRC･EXTCK+AS2+
DIEOE
PCINT7･PCIE0DIEOV(INTRC+EXTCK)･AS2
DI

PCINT7入力

PB6/XTAL1/
TOSC1/PCINT6INTRC+AS2
0
INTRC+AS2000
INTRC+AS2+
PCINT6･PCIE0INTRC+AS2
PCINT6入力

SPE0･MSTRPORTB5･PUD
SPE0･MSTR0
SPE0･MSTR+UMSEL1
SCK0出力+XCK1出力-

PB4/MISO0/RXD1/
PCINT4SPE0･MSTR+RXEN1
PORTB4･PUD
SPE0･MSTR+RXEN1
0
SPE0･MSTRSPI0従装置出力-

PCINT5･PCIE0PCINT4･PCIE01

1
SPI0主装置/USART1受信/PCINT4入力-

PB5/SCK0/XCK1/PCINT5

SCK0/PCINT5入力

AIO
発振増幅器出力発振増幅器入力/ｸﾛｯｸ入力
注: 1. INTRCは校正付き内蔵RC発振器が(CKSELﾋｭｰｽﾞによって)選択されることを意味します。
2. EXTCKは外部ｸﾛｯｸ信号が(CKSELﾋｭｰｽﾞによって)選択されることを意味します。
表17-5. ﾎﾟｰﾄB3～0の交換機能用交換信号
PB3/MOSI0/TXD1/
信号名
PB2/SS0/OC1B/PCINT2
PB1/OC1A/PCINT1
OC2A/PCINT3
PUOE
SPE0･MSTR+TXEN1
SPE0･MSTR0PUOV
PORTB3･PUD
PORTB2･PUD
0
DDOE
SPE0･MSTR+TXEN1
SPE0･MSTR
0
DDOV
0
0
0
SPE0･MSTR+OC2A許可+
PVOE
OC1B許可OC1A許可TXEN1
SPI0主装置出力+OC2A+
PVOV
OC1B
OC1A
USART1送信出力
PTOE
DIEOE
PCINT3･PCIE0PCINT2･PCIE0PCINT1･PCIE0
DIEOV
1
1
1
DI
SPI0従装置/PCINT3入力
SPI0 SS0/PCINT2入力
PCINT1入力
AIO-© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

PB0/ICP1/CLKO/PCINT0
0
0
0
0
0
0
PCINT0･PCIE01
ICP1/PCINT0入力-

DS40001906C - 60頁

ATmega328PB
17.3.2. ﾎﾟｰﾄCの交換機能
ﾎﾟｰﾄCﾋﾟﾝの交換機能は下表で示されます。
表17-6. ﾎﾟｰﾄCﾋﾟﾝの交換機能
ﾎﾟｰﾄ ﾋﾟﾝ交換機能

ﾎﾟｰﾄ ﾋﾟﾝ

PC6

RESET
(ﾘｾｯﾄ ﾋﾟﾝ)PCINT14 (ﾋﾟﾝ変化割り込み14入力)

PC3
PC2

PC5

ADC5
(A/D変換ﾁｬﾈﾙ5入力)
SCL0(2線直列0ﾊﾞｽ ｸﾛｯｸ入出力)
PCINT13 (ﾋﾟﾝ変化割り込み13入力)

PC4

ADC4
(A/D変換ﾁｬﾈﾙ4入力)
SDA0(2線直列0ﾊﾞｽ ﾃﾞｰﾀ入出力)
PCINT12 (ﾋﾟﾝ変化割り込み12入力)

PC1
PC0

交換機能
ADC3
(A/D変換ﾁｬﾈﾙ3入力)
PCINT11 (ﾋﾟﾝ変化割り込み11入力)
ADC2(A/D変換ﾁｬﾈﾙ2入力)
PCINT10 (ﾋﾟﾝ変化割り込み10入力)
ADC1(A/D変換ﾁｬﾈﾙ1入力)
SCK1(SPI1 直列ｸﾛｯｸ 主装置側出力/従装置側入力)
PCINT9 (ﾋﾟﾝ変化割り込み9入力)
ADC0(A/D変換ﾁｬﾈﾙ0入力)
MISO1(SPI1 主装置側ﾃﾞｰﾀ入力/従装置側ﾃﾞｰﾀ出力)
PCINT8 (ﾋﾟﾝ変化割り込み8入力)

交換ﾋﾟﾝの設定は次のとおりです。
・ RESET/PCINT14 - ﾎﾟｰﾄC ﾋﾞｯﾄ6 : PC6- RESET : ﾘｾｯﾄ ﾋﾟﾝ。RSTDISBLﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、このﾋﾟﾝは標準のI/Oﾋﾟﾝとして機能し、ﾃﾞﾊﾞｲｽはﾘｾｯﾄ元として電源
ONﾘｾｯﾄと低電圧ﾘｾｯﾄに頼らなければなりません。RSTDISBLﾋｭｰｽﾞが非ﾌﾟﾛｸﾞﾗﾑ(1)にされると、このﾋﾟﾝにﾘｾｯﾄ回路が接続され、このﾋﾟﾝはI/Oﾋﾟﾝとして使えません。
PC6がﾘｾｯﾄ ﾋﾟﾝとして使われると、PORTC6, DDC6, PINC6は全て0を読みます。
- PCINT14 : ﾋﾟﾝ変化割り込み14入力。PC6ﾋﾟﾝは外部割り込み元としても扱えます。
・ SCL0/ADC5/PCINT13 - ﾎﾟｰﾄC ﾋﾞｯﾄ5 : PC5- SCL0 : 2線直列ｲﾝﾀｰﾌｪｰｽ0 ｸﾛｯｸ。2線直列ｲﾝﾀｰﾌｪｰｽを許可するために2線直列ｲﾝﾀｰﾌｪｰｽ制御ﾚｼﾞｽﾀ(TWCR0)の2線直列ｲﾝﾀｰﾌｪｰｽ動作許可(TWEN)ﾋﾞｯﾄが設定(1)されると、PC5は(標準の)ﾎﾟｰﾄから切り離されて、2線直列ｲﾝﾀｰﾌｪｰｽ0用直列ｸ
ﾛｯｸ入出力ﾋﾟﾝになります。この動作では入力信号上の50nsより短いｽﾊﾟｲｸ(瞬間雑音)を消去するためのｽﾊﾟｲｸ除去器があり、ｽﾘｭｰﾚｰﾄ(上昇/下降速度)制限付きｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ駆動部によって駆動されます。
- ADC5 : PC5はA/D変換ﾁｬﾈﾙ5入力としても使えます。A/D変換ﾁｬﾈﾙ5入力はﾃﾞｼﾞﾀﾙ電源を使います。
- PCINT13 : ﾋﾟﾝ変化割り込み13入力。PC5ﾋﾟﾝは外部割り込み元としても扱えます。
・ SDA0/ADC4/PCINT12 - ﾎﾟｰﾄC ﾋﾞｯﾄ4 : PC4- SDA0 : 2線直列ｲﾝﾀｰﾌｪｰｽ0 ﾃﾞｰﾀ。2線直列ｲﾝﾀｰﾌｪｰｽを許可するために2線直列ｲﾝﾀｰﾌｪｰｽ制御ﾚｼﾞｽﾀ(TWCR0)の2線直列
ｲﾝﾀｰﾌｪｰｽ動作許可(TWEN)ﾋﾞｯﾄが設定(1)されると、PC4は(標準の)ﾎﾟｰﾄから切り離されて、2線直列ｲﾝﾀｰﾌｪｰｽ0用直列
ﾃﾞｰﾀ入出力ﾋﾟﾝになります。この動作では入力信号上の50nsより短いｽﾊﾟｲｸ(瞬間雑音)を消去するためのｽﾊﾟｲｸ除去器があり、ｽﾘｭｰﾚｰﾄ(上昇/下降速度)制限付きｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ駆動部によって駆動されます。
- ADC4 : PC4はA/D変換ﾁｬﾈﾙ4入力としても使えます。A/D変換ﾁｬﾈﾙ4入力はﾃﾞｼﾞﾀﾙ電源を使います。
- PCINT12 : ﾋﾟﾝ変化割り込み12入力。PC4ﾋﾟﾝは外部割り込み元としても扱えます。
・ ADC3/PCINT11 - ﾎﾟｰﾄC ﾋﾞｯﾄ3 : PC3- ADC3 : PC3はA/D変換ﾁｬﾈﾙ3入力としても使えます。A/D変換ﾁｬﾈﾙ3入力がｱﾅﾛｸﾞ電源を使います。
- PCINT11 : ﾋﾟﾝ変化割り込み11入力。PC3ﾋﾟﾝは外部割り込み元としても扱えます。
・ ADC2/PCINT10 - ﾎﾟｰﾄC ﾋﾞｯﾄ2 : PC2- ADC2 : PC2はA/D変換ﾁｬﾈﾙ2入力としても使えます。A/D変換ﾁｬﾈﾙ2入力がｱﾅﾛｸﾞ電源を使います。
- PCINT10 : ﾋﾟﾝ変化割り込み10入力。PC2ﾋﾟﾝは外部割り込み元としても扱えます。
・ ADC1/SCK1/PCINT9 - ﾎﾟｰﾄC ﾋﾞｯﾄ1 : PC1- ADC1 : PC1はA/D変換ﾁｬﾈﾙ1入力としても使えます。A/D変換ﾁｬﾈﾙ1入力がｱﾅﾛｸﾞ電源を使います。
- SCK1 : SPI1ﾁｬﾈﾙ用の主装置ｸﾛｯｸ出力、従装置ｸﾛｯｸ入力。SPI1が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄC方向ﾚｼﾞｽﾀ(DDRC)のDDC1設定に拘らず、入力として設定されます。SPI1が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDC1によって制御されます。このﾋﾟﾝがSPI1によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄC出力ﾚｼﾞｽﾀ(PORTC)のPORTC1
によって制御できます。
- PCINT9 : ﾋﾟﾝ変化割り込み9入力。PC1ﾋﾟﾝは外部割り込み元としても扱えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 61頁

ATmega328PB・ ADC0/MISO1/PCINT8 - ﾎﾟｰﾄC ﾋﾞｯﾄ0 : PC0- ADC0 : PC0はA/D変換ﾁｬﾈﾙ0入力としても使えます。A/D変換ﾁｬﾈﾙ0入力がｱﾅﾛｸﾞ電源を使います。
- MISO1 : SPI1ﾁｬﾈﾙ用の主装置ﾃﾞｰﾀ入力、従装置ﾃﾞｰﾀ出力。SPI1が主装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄC方向ﾚｼﾞｽﾀ(DDRC)のDDC0の設定に拘らず、入力として設定されます。SPI1が従装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDC0によって制御されます。このﾋﾟﾝがSPI1によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄC出力ﾚｼﾞｽﾀ(PORTC)のPOR
TC0によって制御できます。
- PCINT8 : ﾋﾟﾝ変化割り込み8入力。PC0ﾋﾟﾝは外部割り込み元としても扱えます。
下表はﾎﾟｰﾄCの交換機能を図17-5.で示される交換信号に関連付けます。
表17-7. ﾎﾟｰﾄC6～4の交換機能用交換信号
信号名

PC6/RESET/PCINT14

PUOE
PUOV
DDOE
DDOV
PVOE
PVOV
PTOE

PC5/SCL0/ADC5/PCINT13TWEN0
PORTC5･PUD
TWEN0
SCL0出力TWEN0
0-

PC4/SDA0/ADC4/PCINT12TWEN0
PORTC4･PUD
TWEN0
SDA0出力TWEN0
0-

RSTDISBL
1
RSTDISBL000
RSTDISBL+PCINT14･
DIEOE
ADC5D+PCINT13･PCIE1 ADC4D+PCINT12･PCIE1
PCIE1
DIEOV
RSTDISBLPCINT13･PCIE1PCINT12･PCIE1DI
PCINT14入力
PCINT13入力
PCINT12入力
AIO
ﾘｾｯﾄ入力ADC5入力/SCL0入力
ADC4入力/SDA0入力
注: 許可されると、2線直列ｲﾝﾀｰﾌｪｰｽはPC4とPC5ﾋﾟﾝ出力のｽﾘｭｰﾚｰﾄ制御を許可します。これは図で示されていません。
加えて、ﾎﾟｰﾄ図で示されるAIO出力と2線直列ｲﾝﾀｰﾌｪｰｽ(TWI)部間にｽﾊﾟｲｸ除去器が接続されます。
表17-8. ﾎﾟｰﾄC3～0の交換機能用交換信号
信号名

PC3/ADC3/PCINT11

PC2/ADC2/PCINT10

PC1/ADC1/SCK1/PCINT9

PUOE
PUOV
DDOE
DDOV
PVOE
PVOV
PTOE
DIEOE
DIEOV
DI
AIO

0
0
0
0
0
0
ADC3D+PCINT11･PCIE1PCINT11･PCIE1PCINT11入力
ADC3入力00
0
0
00
ADC2D+PCINT10･PCIE1PCINT10･PCIE1PCINT10入力
ADC2入力SPE1･MSTR
PORTC1･PUD
SPE1･MSTR
0
SPE1･MSTR
SCK1出力ADC1D+PCINT9･PCIE1PCINT9･PCIE1SCK1/PCINT9入力
ADC1入力© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

PC0/ADC0/MISO1/
PCINT8
SPE1･MSTR
PORTC0･PUD
SPE1･MSTR
0
SPE1･MSTRSPI1従装置出力
ADC0D+PCINT8･PCIE1PCINT8･PCIE1SPI1主装置/PCINT8入力
ADC0入力DS40001906C - 62頁

ATmega328PB
17.3.3. ﾎﾟｰﾄDの交換機能
ﾎﾟｰﾄDﾋﾟﾝの交換機能は下表で示されます。
表17-9. ﾎﾟｰﾄDﾋﾟﾝの交換機能
ﾎﾟｰﾄ ﾋﾟﾝ交換機能

ﾎﾟｰﾄ ﾋﾟﾝPD7

AIN1(ｱﾅﾛｸﾞ比較器反転入力)
PCINT23 (ﾋﾟﾝ変化割り込み23入力)

PD6

AIN0
(ｱﾅﾛｸﾞ比較器非反転入力)
OC0A(ﾀｲﾏ/ｶｳﾝﾀ0 比較A一致出力)
PCINT22 (ﾋﾟﾝ変化割り込み22入力)

PD2

PD5

T1
(ﾀｲﾏ/ｶｳﾝﾀ1 外部ｸﾛｯｸ入力)
OC0B(ﾀｲﾏ/ｶｳﾝﾀ0 比較B一致出力)
PCINT21 (ﾋﾟﾝ変化割り込み21入力)

PD1

PD4

XCK0
(USART0 外部ｸﾛｯｸ入出力)
T0(ﾀｲﾏ/ｶｳﾝﾀ0 外部ｸﾛｯｸ入力)
PCINT20 (ﾋﾟﾝ変化割り込み20入力)

PD3

PD0

交換機能
INT1
(外部割り込み1 入力)
OC2B(ﾀｲﾏ/ｶｳﾝﾀ2 比較B一致出力)
PCINT19 (ﾋﾟﾝ変化割り込み19入力)
INT0(外部割り込み0 入力)
OC3B(ﾀｲﾏ/ｶｳﾝﾀ3 比較B一致出力)
OC4B(ﾀｲﾏ/ｶｳﾝﾀ4 比較B一致出力)
PCINT18 (ﾋﾟﾝ変化割り込み18入力)
TXD0(USART0 送信ﾃﾞｰﾀ出力)
OC4A(ﾀｲﾏ/ｶｳﾝﾀ4 比較A一致出力)
PCINT17 (ﾋﾟﾝ変化割り込み17入力)
RXD0(USART0 受信ﾃﾞｰﾀ入力)
OC3A(ﾀｲﾏ/ｶｳﾝﾀ3 比較A一致出力)
PCINT16 (ﾋﾟﾝ変化割り込み16入力)

交換ﾋﾟﾝの設定は次のとおりです。
・ AIN1/PCINT23 - ﾎﾟｰﾄD ﾋﾞｯﾄ7 : PD7- AIN1 : ｱﾅﾛｸﾞ比較器反転入力。ｱﾅﾛｸﾞ比較器機能を邪魔するﾃﾞｼﾞﾀﾙ ﾎﾟｰﾄ機能を無効とするために、内部ﾌﾟﾙｱｯﾌﾟがOFFにされた入力としてﾎﾟｰﾄ ﾋﾟﾝを設定してください。
- PCINT23 : ﾋﾟﾝ変化割り込み23入力。PD7ﾋﾟﾝは外部割り込み元としても扱えます。
・ AIN0/OC0A/PCINT22 - ﾎﾟｰﾄD ﾋﾞｯﾄ6 : PD6- AIN0 : ｱﾅﾛｸﾞ比較器非反転入力。ｱﾅﾛｸﾞ比較器機能を邪魔するﾃﾞｼﾞﾀﾙ ﾎﾟｰﾄ機能を無効とするために、内部ﾌﾟﾙｱｯﾌﾟがOFFにされた入力としてﾎﾟｰﾄ ﾋﾟﾝを設定してください。
- OC0A : ﾀｲﾏ/ｶｳﾝﾀ0比較A一致出力。PD6ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ0の比較A一致用外部出力として扱えます。この機能を扱うため、PD
6ﾋﾟﾝは出力として設定(DDD6=1)されなければなりません。このOC0Aﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT22 : ﾋﾟﾝ変化割り込み22入力。PD6ﾋﾟﾝは外部割り込み元としても扱えます。
・ T1/OC0B/PCINT21 - ﾎﾟｰﾄD ﾋﾞｯﾄ5 : PD5- T1 : ﾀｲﾏ/ｶｳﾝﾀ1の外部ｸﾛｯｸ入力ﾋﾟﾝです。
- OC0B : ﾀｲﾏ/ｶｳﾝﾀ0比較B一致出力。PD5ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ0の比較B一致用外部出力として扱えます。この機能を扱うため、PD5
ﾋﾟﾝは出力として設定(DDD5=1)されなければなりません。このOC0Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT21 : ﾋﾟﾝ変化割り込み21入力。PD5ﾋﾟﾝは外部割り込み元としても扱えます。
・ XCK0/T0/PCINT20 - ﾎﾟｰﾄD ﾋﾞｯﾄ4 : PD4- XCK0 : USART0の外部ｸﾛｯｸ入出力ﾋﾟﾝです。
- T0 : ﾀｲﾏ/ｶｳﾝﾀ0の外部ｸﾛｯｸ入力ﾋﾟﾝです。
- PCINT20 : ﾋﾟﾝ変化割り込み20入力。PD4ﾋﾟﾝは外部割り込み元としても扱えます。
・ INT1/OC2B/PCINT19 - ﾎﾟｰﾄD ﾋﾞｯﾄ3 : PD3- INT1 : 外部割り込み1入力。PD3ﾋﾟﾝは外部割り込み元として扱えます。
- OC2B : ﾀｲﾏ/ｶｳﾝﾀ2比較B一致出力。PD3ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ2の比較B一致用外部出力として扱えます。この機能を扱うため、PD3
ﾋﾟﾝは出力として設定(DDD3=1)されなければなりません。このOC2Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT19 : ﾋﾟﾝ変化割り込み19入力。PD3ﾋﾟﾝは外部割り込み元としても扱えます。
・ INT0/OC3B/OC4B/PCINT18 - ﾎﾟｰﾄD ﾋﾞｯﾄ2 : PD2- INT0 : 外部割り込み0入力。PD2ﾋﾟﾝは外部割り込み元として扱えます。
- OC3B : ﾀｲﾏ/ｶｳﾝﾀ3比較B一致出力。PD2ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ3の比較B一致用外部出力として扱えます。この機能を扱うため、PD2
ﾋﾟﾝは出力として設定(DDD2=1)されなければなりません。このOC3Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- OC4B : ﾀｲﾏ/ｶｳﾝﾀ4比較B一致出力。PD2ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ4の比較B一致用外部出力として扱えます。この機能を扱うため、PD2
ﾋﾟﾝは出力として設定(DDD2=1)されなければなりません。このOC4Bﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT18 : ﾋﾟﾝ変化割り込み18入力。PD2ﾋﾟﾝは外部割り込み元としても扱えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 63頁

ATmega328PB・ TXD0/OC4A/PCINT17 - ﾎﾟｰﾄD ﾋﾞｯﾄ1 : PD1- TXD0 : 送信ﾃﾞｰﾀ(USART0用ﾃﾞｰﾀ出力ﾋﾟﾝ)。USART0送信部が許可されると、このﾋﾟﾝはﾎﾟｰﾄD方向ﾚｼﾞｽﾀ(DDRD)のDDD1の値に拘らず出力として設定されます。
- OC4A : ﾀｲﾏ/ｶｳﾝﾀ4比較A一致出力。PD1ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ4の比較A一致用外部出力として扱えます。この機能を扱うため、PD
1ﾋﾟﾝは出力として設定(DDD1=1)されなければなりません。このOC4Aﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT17 : ﾋﾟﾝ変化割り込み17入力。PD1ﾋﾟﾝは外部割り込み元としても扱えます。
・ RXD0/OC3A/PCINT16 - ﾎﾟｰﾄD ﾋﾞｯﾄ0 : PD0- RXD0 : 受信ﾃﾞｰﾀ(USART0用ﾃﾞｰﾀ入力ﾋﾟﾝ)。USART0受信部が許可されると、このﾋﾟﾝはDDRDのDDD0の値に拘らず入力として設定されます。USART0がこのﾋﾟﾝを入力に強制するとき、ﾌﾟﾙｱｯﾌﾟは未だPORTD0ﾋﾞｯﾄによって制御できます。
- OC3A : ﾀｲﾏ/ｶｳﾝﾀ3比較A一致出力。PD0ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ3の比較A一致用外部出力として扱えます。この機能を扱うため、PD
0ﾋﾟﾝは出力として設定(DDD0=1)されなければなりません。このOC3Aﾋﾟﾝはﾀｲﾏ機能のPWM動作用出力ﾋﾟﾝでもあります。
- PCINT16 : ﾋﾟﾝ変化割り込み16入力。PD0ﾋﾟﾝは外部割り込み元としても扱えます。
下表はﾎﾟｰﾄDの交換機能を図17-5.で示される交換信号に関連付けます。
表17-10. ﾎﾟｰﾄD7～4の交換機能用交換信号
信号名
PD7/AIN1/PCINT23
PD6/AIN0/OC0A/PCINT22 PD5/T1/OC0B/PCINT21
PUOE
0
0
0
PUOV
0
0
0
DDOE
0
0
0
DDOV
0
0
0
PVOE
0
OC0A許可OC0B許可
PVOV
0
OC0A
OC0B
PTOE
DIEOE
PCINT23･PCIE2PCINT22･PCIE2PCINT21･PCIE2
DIEOV
0
0
0
DI
PCINT23入力
T1/PCINT21入力
PCINT22入力
AIO
AIN1入力AIN0入力表17-11. ﾎﾟｰﾄD3～0の交換機能用交換信号
PD1/TXD0/OC4A
信号名
PD3/INT1/OC2B/PCINT19 PD2/INT0/OC3B/OC4B/PCINT18/PCINT17
PUOE
0
0
TXEN0
PUOV
0
0
0
DDOE
0
0
TXEN0
DDOV
0
0
1
PVOE
OC2B許可OC3B/OC4B許可
TXEN0/OC4A許可
PVOV
OC2B
OC3B/OC4B
USART0送信出力/OC4A
PTOE
DIEOE
INT1許可+PCINT19･PCIE2 INT0許可+PCINT18･PCIE2PCINT17･PCIE2
DIEOV
1
1
1
DI

INT1/PCINT19入力

INT0/PCINT18入力

PCINT17入力

AIO

-

-

-

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

PD4/XCK0/T0/PCINT20
0
0
0
0
UMSEL
XCK0出力PCINT20･PCIE20
XCK0/T0/PCINT20入力
PD0/RXD0/OC3A/PCINT16
RXEN0
PORTD0･PUD
RXEN00
OC3A許可OC3A
PCINT16･PCIE2
1
USART0受信/
PCINT16入力-

DS40001906C - 64頁

ATmega328PB
17.3.4. ﾎﾟｰﾄEの交換機能
ﾎﾟｰﾄEﾋﾟﾝの交換機能はこの表で示されます。
表17-12. ﾎﾟｰﾄEﾋﾟﾝの交換機能
ﾎﾟｰﾄ ﾋﾟﾝ交換機能
ADC7(A/D変換ﾁｬﾈﾙ7入力)
T3(ﾀｲﾏ/ｶｳﾝﾀ3 外部ｸﾛｯｸ入力)
PE3
MOSI1
(SPI1 主装置側ﾃﾞｰﾀ出力/従装置側ﾃﾞｰﾀ入力)
PCINT27 (ﾋﾟﾝ変化割り込み27入力)
ADC6(A/D変換ﾁｬﾈﾙ6入力)
ICP3(ﾀｲﾏ/ｶｳﾝﾀ3 捕獲起動入力)
PE2
SS1(SPI1 従装置選択入力)
PCINT26 (ﾋﾟﾝ変化割り込み26入力)

ﾎﾟｰﾄ ﾋﾟﾝ
PE1

PE0

交換機能
T4
(ﾀｲﾏ/ｶｳﾝﾀ4 外部ｸﾛｯｸ入力)
SCL1(2線直列1ﾊﾞｽ ｸﾛｯｸ入出力)
PCINT25 (ﾋﾟﾝ変化割り込み25入力)
ACO(ｱﾅﾛｸﾞ比較器出力)
ICP4(ﾀｲﾏ/ｶｳﾝﾀ4 捕獲起動入力)
SDA1(2線直列1ﾊﾞｽ ﾃﾞｰﾀ入出力)
PCINT24 (ﾋﾟﾝ変化割り込み24入力)

交換ﾋﾟﾝの設定は次のとおりです。
・ ADC7/T3/PCINT27 - ﾎﾟｰﾄE ﾋﾞｯﾄ3 : PE3- ADC7 : PE3はA/D変換ﾁｬﾈﾙ7入力としても使えます。
- T3 : ﾀｲﾏ/ｶｳﾝﾀ3の外部ｸﾛｯｸ入力ﾋﾟﾝです。
- MOSI1 : SPI1ﾁｬﾈﾙ用の主装置ﾃﾞｰﾀ出力、従装置ﾃﾞｰﾀ入力。SPI1が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄE方向ﾚｼﾞｽﾀ(DDRE)のDDE3設定に拘らず、入力として設定されます。SPI1が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDE3によって制御されます。このﾋﾟﾝがSPI1によって入力を強制されるとき、ﾌﾟﾙｱｯﾌﾟは未だﾎﾟｰﾄE出力ﾚｼﾞｽﾀ(PORTE)のPORT
E3によって制御できます。
- PCINT27 : ﾋﾟﾝ変化割り込み27入力。PE3ﾋﾟﾝは外部割り込み元としても扱えます。
・ ADC6/ICP3/SS1/PCINT26 - ﾎﾟｰﾄE ﾋﾞｯﾄ2 : PE2- ADC6 : PE2はA/D変換ﾁｬﾈﾙ6入力としても使えます。
- ICP3 : ﾀｲﾏ/ｶｳﾝﾀ3の捕獲起動入力。PE2ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ3用捕獲起動入力ﾋﾟﾝとして動作できます。
- SS1 : SPI1従装置選択入力。SPI1が従装置として許可されると、本ﾋﾟﾝはﾎﾟｰﾄE方向ﾚｼﾞｽﾀ(DDRE)のDDE2の設定に拘らず、入力として設定されます。従装置としてこのﾋﾟﾝがLowに駆動されるとSPI1(機能)が活性化(有効に)されます。SPI1が主装置として許可されると、このﾋﾟﾝのﾃﾞｰﾀ方向はDDE2によって制御されます。このﾋﾟﾝがSPI1によって入力を強制されるとき、ﾌﾟﾙｱｯ
ﾌﾟは未だﾎﾟｰﾄE出力ﾚｼﾞｽﾀ(PORTE)のPORTE2によって制御できます。
- PCINT26 : ﾋﾟﾝ変化割り込み26入力。PE2ﾋﾟﾝは外部割り込み元としても扱えます。
・ T4/SCL1/PCINT25 - ﾎﾟｰﾄE ﾋﾞｯﾄ1 : PE1- T4 : ﾀｲﾏ/ｶｳﾝﾀ4の外部ｸﾛｯｸ入力ﾋﾟﾝです。
- SCL1 : 2線直列ｲﾝﾀｰﾌｪｰｽ1 ｸﾛｯｸ。2線直列ｲﾝﾀｰﾌｪｰｽを許可するために2線直列ｲﾝﾀｰﾌｪｰｽ制御ﾚｼﾞｽﾀ(TWCR1)の2線直列ｲﾝﾀｰﾌｪｰｽ動作許可(TWEN)ﾋﾞｯﾄが設定(1)されると、PE1は(標準の)ﾎﾟｰﾄから切り離されて、2線直列ｲﾝﾀｰﾌｪｰｽ1用直列ｸﾛｯｸ入出力ﾋﾟﾝになります。この動作では入力信号上の50nsより短いｽﾊﾟｲｸ(瞬間雑音)を消去するためのｽﾊﾟｲｸ除去器があり、ｽﾘｭｰﾚｰﾄ(上昇/下降速度)制限付きｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ駆動部によって駆動されます。
- PCINT25 : ﾋﾟﾝ変化割り込み25入力。PE1ﾋﾟﾝは外部割り込み元としても扱えます。
・ ACO/ICP4/SDA1/PCINT24 - ﾎﾟｰﾄE ﾋﾞｯﾄ0 : PE0- ACO : PE0はｱﾅﾛｸﾞ比較器出力として使えます。
- ICP4 : ﾀｲﾏ/ｶｳﾝﾀ4の捕獲起動入力。PE0ﾋﾟﾝはﾀｲﾏ/ｶｳﾝﾀ4用捕獲起動入力ﾋﾟﾝとして動作できます。
- SDA1 : 2線直列ｲﾝﾀｰﾌｪｰｽ1 ﾃﾞｰﾀ。2線直列ｲﾝﾀｰﾌｪｰｽを許可するために2線直列ｲﾝﾀｰﾌｪｰｽ制御ﾚｼﾞｽﾀ(TWCR1)の2線直列
ｲﾝﾀｰﾌｪｰｽ動作許可(TWEN)ﾋﾞｯﾄが設定(1)されると、PE0は(標準の)ﾎﾟｰﾄから切り離されて、2線直列ｲﾝﾀｰﾌｪｰｽ1用直列
ﾃﾞｰﾀ入出力ﾋﾟﾝになります。この動作では入力信号上の50nsより短いｽﾊﾟｲｸ(瞬間雑音)を消去するためのｽﾊﾟｲｸ除去器があり、ｽﾘｭｰﾚｰﾄ(上昇/下降速度)制限付きｵｰﾌﾟﾝ ﾄﾞﾚｲﾝ駆動部によって駆動されます。
- PCINT24 : ﾋﾟﾝ変化割り込み24入力。PE0ﾋﾟﾝは外部割り込み元としても扱えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 65頁

ATmega328PB
表17-3.はﾎﾟｰﾄEの交換機能を図17-5.で示される交換信号に関連付けます。
表17-13. ﾎﾟｰﾄE3～0の交換機能用交換信号
PE3/ADC7/T3/MOSI1/
PE2/ADC6/ICP3/SS2/
信号名
PCINT27
PCINT26
PUOE
SPE1･MSTR
SPE1･MSTRPUOVPORTE3･PUD
PORTE2･PUD
DDOE
SPE1･MSTR
SPE1･MSTR
DDOV
0
0
PVOE
SPE1･MSTR0PVOVSPI1主装置出力
0
PTOE
DIEOE
ADC7D+PCINT27･PCIE3 ADC6D+PCINT26･PCIE3
DIEOVPCINT27･PCIE3
PCINT26･PCIE3
T3/SPI1従装置/
ICP3/SPI1 SS0/DI
PCINT27入力
PCINT26入力
AIO

ADC7入力© 2018 Microchip Technology Inc.

ADC6入力完全ﾃﾞｰﾀｼｰﾄ

TWEN1
PORTE1･PUD
TWEN10
SCL1出力TWEN1
PCINT25･PCIE3
PCINT25･PCIE3

PE0/ACO/ICP4/SDA1/PCINT24ACO出力許可+TWEN1
PORTE0･PUD
ACO出力許可+TWEN10
ACO出力許可+SDA0出力
ACOMPOUT+TWEN1
PCINT24･PCIE3
PCINT24･PCIE3

T4/PCINT25入力

ICP4/PCINT24入力

SCL1入力SDA0入力,ｱﾅﾛｸﾞ比較器出力

PE1/T4/SCL1/PCINT25

DS40001906C - 66頁

ATmega328PB
17.4. I/Oﾎﾟｰﾄ用ﾚｼﾞｽﾀ
17.4.1. MCUCR - MCU制御ﾚｼﾞｽﾀ (MCU Control Register)
名称 : MCUCR
変位 : $55 ($35)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$35です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

BODS

BODSE

PUD

-

-

IVSEL

IVCE

R
0

R/W
0

R/W
0

R/W
0

R
0

R
0

R/W
0

R/W
0

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

このﾋﾞｯﾄが1を書かれると、例えDDxnとPORTxnﾚｼﾞｽﾀがﾌﾟﾙｱｯﾌﾟを許可(DDxn=0, PORTxn=1)に設定されていても、I/Oﾎﾟｰﾄのﾌﾟﾙｱｯ
ﾌﾟは禁止されます。

17.4.2. PORTB - ﾎﾟｰﾄB出力ﾚｼﾞｽﾀ (Port B Data Register)
名称 : PORTB
変位 : $25 ($05)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$05です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PORTB7PORTB6PORTB5PORTB4PORTB3PORTB2PORTB1PORTB0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - PORTB7～0 : ﾎﾟｰﾄB出力 (Port B Data)

17.4.3. DDRB - ﾎﾟｰﾄB方向ﾚｼﾞｽﾀ (Port B Data Direction Register)
名称 : DDRB
変位 : $24 ($04)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$04です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

DDB7

DDB6

DDB5

DDB4

DDB3

DDB2

DDB1

DDB0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - DDB7～0 : ﾎﾟｰﾄBﾃﾞｰﾀ方向 (Port B Data Direction)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 67頁

ATmega328PB
17.4.4. PINB - ﾎﾟｰﾄB入力ﾚｼﾞｽﾀ (Port B Input Pins Address)
名称 : PINB
変位 : $23 ($03)
ﾘｾｯﾄ : 不定
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$03です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PINB7

PINB6

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

● ﾋﾞｯﾄ7～0 - PINB7～0 : ﾎﾟｰﾄB入力 (Port B Input Pins)

PINxﾚｼﾞｽﾀへの書き込みはI/Oに対する交互切り替え機能を提供します。「ﾋﾟﾝの出力交互切り替え」を参照してください。

17.4.5. PORTC - ﾎﾟｰﾄC出力ﾚｼﾞｽﾀ (Port C Data Register)
名称 : PORTC
変位 : $28 ($08)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$08です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

PORTC6PORTC5PORTC4PORTC3

PORTC2PORTC1PORTC0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ6～0 - PORTC6～0 : ﾎﾟｰﾄC出力 (Port C Data)

17.4.6. DDRC - ﾎﾟｰﾄC方向ﾚｼﾞｽﾀ (Port C Data Direction Register)
名称 : DDRC
変位 : $27 ($07)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$07です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

DDC6

DDC5

DDC4

DDC3

DDC2

DDC1

DDC0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ6～0 - DDC6～0 : ﾎﾟｰﾄCﾃﾞｰﾀ方向 (Port C Data Direction)

17.4.7. PINC - ﾎﾟｰﾄC入力ﾚｼﾞｽﾀ (Port C Input Pins Address)
名称 : PINC
変位 : $26 ($06)
ﾘｾｯﾄ : 不定
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$06です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

PINC6

PINC5

PINC4

PINC3

PINC2

PINC1

PINC0

R
0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

● ﾋﾞｯﾄ6～0 - PINC6～0 : ﾎﾟｰﾄC入力 (Port C Input Pins)

PINxﾚｼﾞｽﾀへの書き込みはI/Oに対する交互切り替え機能を提供します。「ﾋﾟﾝの出力交互切り替え」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 68頁

ATmega328PB
17.4.8. PORTD - ﾎﾟｰﾄD出力ﾚｼﾞｽﾀ (Port D Data Register)
名称 : PORTD
変位 : $2B ($0B)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$0Bです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PORTD7

PORTD6

PORTD5PORTD4PORTD3PORTD2PORTD1PORTD0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - PORTD7～0 : ﾎﾟｰﾄD出力 (Port D Data)

17.4.9. DDRD - ﾎﾟｰﾄD方向ﾚｼﾞｽﾀ (Port D Data Direction Register)
名称 : DDRD
変位 : $2A ($0A)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$0Aです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

DDD7

DDD6

DDD5

DDD4

DDD3

DDD2

DDD1

DDD0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - DDD7～0 : ﾎﾟｰﾄDﾃﾞｰﾀ方向 (Port D Data Direction)

17.4.10. PIND - ﾎﾟｰﾄD入力ﾚｼﾞｽﾀ (Port D Input Pins Address)
名称 : PIND
変位 : $29 ($09)
ﾘｾｯﾄ : 不定
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$09です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

PIND7

PIND6

PIND5

PIND4

PIND3

PIND2

PIND1

PIND0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

R/W
不定

● ﾋﾞｯﾄ7～0 - PIND7～0 : ﾎﾟｰﾄD入力 (Port D Input Pins)

PINxﾚｼﾞｽﾀへの書き込みはI/Oに対する交互切り替え機能を提供します。「ﾋﾟﾝの出力交互切り替え」を参照してください。

17.4.11. PORTE - ﾎﾟｰﾄE出力ﾚｼﾞｽﾀ (Port E Data Register)
名称 : PORTE
変位 : $2E ($0E)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$0Eです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

PORTE3PORTE2PORTE1PORTE0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ3～0 - PORTE3～0 : ﾎﾟｰﾄE出力 (Port E Data)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 69頁

ATmega328PB
17.4.12. DDRE - ﾎﾟｰﾄE方向ﾚｼﾞｽﾀ (Port E Data Direction Register)
名称 : DDRE
変位 : $0D ($2D)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2Dです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

DDE3

DDE2

DDE1

DDE0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ3～0 - DDE3～0 : ﾎﾟｰﾄEﾃﾞｰﾀ方向 (Port E Data Direction)

17.4.13. PINE - ﾎﾟｰﾄE入力ﾚｼﾞｽﾀ (Port E Input Pins Address)
名称 : PINE
変位 : $0C ($2C)
ﾘｾｯﾄ : 不定
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2Cです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

PINE3

PINE2

PINE1

PINE0

R
0

R
0

R
0

R
0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

● ﾋﾞｯﾄ3～0 - PINE3～0 : ﾎﾟｰﾄE入力 (Port E Input Pins)

PINxﾚｼﾞｽﾀへの書き込みはI/Oに対する交互切り替え機能を提供します。「ﾋﾟﾝの出力交互切り替え」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 70頁

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

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

制御回路
TOP

clkTn
BOTTOM

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

Tn(前置分周器から)
TCNTn

=

=0
OCFnA (割り込み要求)

=

波形生成

OCnA

OCRnA
OCFnB (割り込み要求)

固定TOP値
=

波形生成

OCnB

OCRnB
TCCRnA

TCCRnB

8-bit Data Bus

18.2.1. 定義
本章でのﾚｼﾞｽﾀとﾋﾞｯﾄ参照の多くは以下のように一般形で書かれます。
・ n=0はﾀｲﾏ/ｶｳﾝﾀ番号を表します。
・ x=A,Bは比較出力部AまたはBを表します。
けれども、ﾌﾟﾛｸﾞﾗﾑでﾚｼﾞｽﾀまたはﾋﾞｯﾄ定義に使う時は正確な形式、即ち、
ﾀｲﾏ/ｶｳﾝﾀ0のｶｳﾝﾀ値ｱｸｾｽに対してTCNT0が使われなければなりません。
右の定義は本章全体に渡って使われます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

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

DS40001906C - 71頁

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

18.3. ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ
このTCは内部または外部のｸﾛｯｸ元によってｸﾛｯｸ駆動できます。このｸﾛｯｸ元はﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCR0B)のｸﾛｯｸ選択(CS02～0)ﾋﾞｯﾄ書き込みによって選択されます。

関連ﾘﾝｸ

ﾀｲﾏ/ｶｳﾝﾀ0,1,3,4の前置分周器

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

TCNTn(ﾀｲﾏ/ｶｳﾝﾀ)

TOVn (割り込み要求)

count
directionclear

ｸﾛｯｸ選択制御回路

BOTTOM

clkTn

ｴｯｼﾞ検出器

Tn(前置分周器から)TOP

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)を表します。
count
TCNT0を1つ進めるまたは戻す信号。
direction 進行方向(上昇または下降)選択信号。
信号説明
clear
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比較出力に生成される方法間の接続に近いものです。進化した計数順序と波形生成についてより多くの詳細に関しては「動作種別」をご覧ください。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはWGM02～0ﾋﾞｯﾄによって選択された動作種別に従って設定(=1)されます。TOV0はCPU割り込み発生に使えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 72頁

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

OCRnx= (8ﾋﾞｯﾄ比較器)
OCFnx (割り込み要求)
TOP
BOTTOM
FOCnx

波形生成器
WGMn2～0

OCnx

COMnx1,0

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)、'x'は比較出力部(AまたはB)を表します。

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 73頁

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

OCnx
波形生成器

8-bit Data Bus

COMnx1
COMnx0
FOCnx

D

Q

PORT
D

1
0

OCnx

Q

DDR
D

Q

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 74頁

ATmega328PB
18.7. 動作種別
動作種別はﾀｲﾏ/ｶｳﾝﾀと比較出力ﾋﾟﾝの動きを決めます。これはﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀA(TCCR0A)とﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCR0B)の波形生成種別(TCCR0B.WGM02とTCCR0A.WGM01,0)ﾋﾞｯﾄとTCCR0Aの比較出力選択(COM0x1,0)ﾋﾞｯﾄの組み合わせによって定義されます。比較出力選択ﾋﾞｯﾄは計数順序(動作)に影響を及ぼしませんが、一方波形生成種別ﾋﾞｯﾄは影響を及ぼします。CO
M0x1,0ﾋﾞｯﾄは生成されるPWM出力が反転されるべきか、されないべきか(反転または非反転PWM)どちらかを制御します。非PWM動作に対するCOM0x1,0ﾋﾞｯﾄは比較一致で出力が解除(0)、設定(1)、1/0交互のどれにされるべきかを制御します(前の「比較一致出力部」項をご覧ください)。
ﾀｲﾐﾝｸﾞ情報の詳細については以降の「ﾀｲﾏ/ｶｳﾝﾀ0のﾀｲﾐﾝｸﾞ」項を参照してください。
関連ﾘﾝｸ 比較一致出力部
ﾀｲﾏ/ｶｳﾝﾀ0のﾀｲﾐﾝｸﾞ

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

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

TOP
TCNTn

OCnx(交互)
周期

1

2

3

4

5

注: COMnx1,0=01

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

fclk_I/O

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 75頁

ATmega328PB
18.7.3. 高速PWM動作
高速ﾊﾟﾙｽ幅変調(PWM)動作(WGM02～0=011または111)は高周波数PWM波形生成選択を提供します。高速PWMはそれが単一傾
斜(鋸波)動作であることによって他のPWM動作と異なります。ｶｳﾝﾀはBOTTOMからTOPまで計数し、その後BOTTOMから再び始めます。TOPはWGM02～0=011時に$FFとして定義されます。TOPは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動作のﾀｲﾐﾝｸﾞ図は下で示されます。TCNT0値はﾀｲﾐﾝｸﾞ図で単一傾斜動作(鋸波)を表す
折れ線ｸﾞﾗﾌとして示されます。この図は非反転と反転のPWM出力を含みます。赤細線はOCR0x値を示し、TCNT0値との交点(接点)がTCNT0とOCR0x間の比較一致を示します(訳注:図補正に伴い本行若干変更)。比較割り込み要求ﾌﾗｸﾞ(OCF0x)はOCR0x=TOPを除いて比較一致が起こると設定(1)されます(訳注:共通性のため本行追加)。
図18-6. 高速PWM動作ﾀｲﾐﾝｸﾞ
OCRnx更新、TOVn割り込み要求ﾌﾗｸﾞ設定

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

OCRnx
TCNTn

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

1

2

3

4

5

6

7

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対しては
n=0)、'x'は比較出力部(AまたはB)を表します。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはｶｳﾝﾀがTOPに到達する時毎に設定(1)されます。割り込みが許可されるなら、その割り込み処理ﾙｰﾁ
ﾝは比較値を更新するのに使えます。
高速PWM動作での比較部はOC0xﾋﾟﾝでのPWM波形の生成を許します。ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀAのTCCR0A.COM0x1,0ﾋﾞｯﾄの'10'
書き込みは非反転PWM出力を生成、TCCR0A.COM0A1,0ﾋﾞｯﾄの'11'書き込みは反転PWM出力を生成します。ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞ
ｽﾀB(TCCR0B)のWGM02ﾋﾞｯﾄが設定(1)なら、TCCR0AのCOM0A1,0ﾋﾞｯﾄの'01'書き込みは比較一致での交互反転をOC0Aﾋﾟﾝに許します。この任意選択はOC0Bﾋﾟﾝに対して利用できません。実際の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の場合については、)ﾃﾞｭｰﾃｨ比50%での周波数の波形出力は高速PWM動作で比較一致毎に論理反転する
OC0A(COM0A1,0=01)選択によって達成できます。生成された波形はOCR0Aが$00に設定される時に fOC0x= fclk_I/O/2の最大周波数です。この特性は高速PWM動作で比較出力部の2重緩衝が許可されることを除き、CTC動作でのOC0A交互出力(COM0A1,0=01)と同じです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 76頁

ATmega328PB
18.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)され、OC0xは下降計数中の比較一致
で設定(1)されます。反転出力動作(COM0x1,0=11)では動作が逆にされます。両傾斜(三角波)動作は単一傾斜(鋸波)動作よりも低い
最大動作周波数です。両傾斜(三角波)動作の対称特性のため、これらの動作種別は電動機制御の応用に好まれます。

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

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

OCRnx
TCNTn

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

1

2

3

OCRnx更新

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)、'x'は比較出力部(AまたはB)を表します。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV0)ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀがBOTTOMに到達する時毎に設定(1)されます。この割り込み要求ﾌﾗｸﾞはｶｳﾝﾀがBOTT
OM値に到達する毎に割り込みを発生するために使えます。

位相基準PWM動作での比較部はOC0xﾋﾟﾝでのPWM波形の生成を許します。COM0x1,0ﾋﾞｯﾄの'10'書き込みは非反転PWM出力を生成します。反転PWM出力はCOM0x1,0ﾋﾞｯﾄの'11'書き込みによって生成できます。ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB(TCCR0B)のWGM02
ﾋﾞｯﾄが設定(1)なら、ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA(TCCR0A)のCOM0A1,0ﾋﾞｯﾄの'01'設定は比較一致での交互反転をOC0Aﾋﾟﾝに許します。この任意選択はOC0Bﾋﾟﾝに対して利用できません。実際の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です。OCR0xにTOPが書かれると定常的なHighです。反転PWMに対する出力は逆の論理値になります。
上のﾀｲﾐﾝｸﾞ図の第2周期のその出発点に於いて、例え比較一致がないとしても、OCnxにはHighからLowへの遷移があります。この遷移はBOTTOMを挟む対称の保証の要求を満たします。比較一致なしに遷移を生ずるのは2つの場合です。

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

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 77頁

ATmega328PB
18.8. ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ
ﾀｲﾏ/ｶｳﾝﾀは同期設計で、従って以降の図でﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkT0)がｸﾛｯｸ許可信号として示されます。与えられたTCnの実体が非同期動作を支援する場合、clkI/OはTC発振部ｸﾛｯｸによって置換されるべきです。
この図は割り込みﾌﾗｸﾞが設定(1)される時の情報を含みます。下の最初の図は位相基準PWM動作以外の全ての動作種別でのMAX
値近辺の基本的なﾀｲﾏ/ｶｳﾝﾀ動作に関するﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを図解します。
図18-8. 前置分周なし(1/1)のﾀｲﾏ/ｶｳﾝﾀ ﾀｲﾐﾝｸﾞ

clkI/O
clkT0 (clkI/O/1)
TCNTn

MAX-1

MAX

BOTTOM

BOTTOM+1

TOVn

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)を表します。
次図は同じﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを示しますが、前置分周器が許可されています。
図18-9. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ ﾀｲﾐﾝｸﾞ

clkI/O
clkT0 (clkI/O/8)
TCNTn

MAX-1

MAX

BOTTOM

BOTTOM+1

TOVn

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)を表します。
次図はCTC動作とOCR0AがTOPのPWM動作を除く全動作種別でのOCF0Aと全動作種別でのOCF0Bの設定を示します。
図18-10. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCFnx設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkT0 (clkI/O/8)
TCNTn

OCRnx-1

OCRnx

OCRnx

OCRnx+1

OCRnx+2

OCRnx値OCFnx

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)、'x'は比較出力部(AまたはB)を表します。
次図はOCR0AがTOPの高速PWM動作と、CTC動作でのTCNT0の解除とOCF0Aの設定を示します。
図18-11. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCFnA設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkT0 (clkI/O/8)
TCNTn (CTC)
OCRnx

TOP-1

TOP

BOTTOM

BOTTOM+1

TOP値

OCFnx

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'はﾀｲﾏ/ｶｳﾝﾀ番号(ﾀｲﾏ/ｶｳﾝﾀ0に対してはn=0)、'x'は比較出力部(AまたはB)を表します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 78頁

ATmega328PB
18.9. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0用ﾚｼﾞｽﾀ
18.9.1. TCCR0A - ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA (Timer/Counter 0 Control Register A)
名称 : TCCR0A
変位 : $44 ($24)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$24です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

COM0A1,0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

5

4

COM0B1,0
R/W
0

R/W
0

3

2

-

-

R
0

R
0

1

0

WGM01,0
R/W
0

R/W
0

● ﾋﾞｯﾄ7,6 - COM0A1,0 : 比較A出力選択 (Compare Output Mode for Channel A)

これらのﾋﾞｯﾄはOC0A比較出力ﾋﾟﾝの動作を制御します。COM0A1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、OC0A出力はそのI/Oﾋﾟ
ﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども出力駆動部を許可するため、OC0Aﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OC0Aがﾋﾟﾝに接続されるとき、COM0A1,0ﾋﾞｯﾄの機能はWGM02～0ﾋﾞｯﾄ設定に依存します。
下表はWGM02～0ﾋﾞｯﾄが標準動作またはCTC動作(つまりPWM以外)に設定される時のCOM0A1,0ﾋﾞｯﾄ機能を示します。
表18-2. 非PWM動作比較A出力選択
COM0A1 COM0A00
標準ﾎﾟｰﾄ動作 (OC0A切断)
0
比較一致でOC0Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力01
1
比較一致でOC0Aﾋﾟﾝ Lowﾚﾍﾞﾙ出力0
比較一致でOC0Aﾋﾟﾝ Highﾚﾍﾞﾙ出力
11

意味

下表はWGM02～0ﾋﾞｯﾄが高速PWM動作に設定される時のCOM0A1,0ﾋﾞｯﾄの機能を示します。
表18-3. 高速PWM動作比較A出力選択
COM0A1 COM0A0
意味
0
標準ﾎﾟｰﾄ動作 (OC0A切断)
0WGM02=0 : 標準ﾎﾟｰﾄ動作 (OC0A切断)
01
WGM02=1 : 比較一致でOC0Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
10
比較一致でLow、BOTTOMでHighをOC0Aﾋﾟﾝへ出力 (非反転動作)
1
比較一致でHigh、BOTTOMでLowをOC0Aﾋﾟﾝへ出力 (反転動作)
1
注: COM0A1が設定(1)され、OCR0AがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はBOTTOMで行われます。詳細については「高速PWM動作」を参照してください。
下表はWGM02～0ﾋﾞｯﾄが位相基準PWM動作に設定される時のCOM0A1,0ﾋﾞｯﾄの機能を示します。
表18-4. 位相基準PWM動作比較A出力選択
COM0A1 COM0A0
意味
0
標準ﾎﾟｰﾄ動作 (OC0A切断)
0WGM02=0 : 標準ﾎﾟｰﾄ動作 (OC0A切断)
01
WGM02=1 : 比較一致でOC0Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
10
上昇計数時の比較一致でLow、下降計数時の比較一致でHighをOC0Aﾋﾟﾝへ出力
1
上昇計数時の比較一致でHigh、下降計数時の比較一致でLowをOC0Aﾋﾟﾝへ出力1
注: COM0A1が設定(1)され、OCR0AがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はTOPで行われます。詳細については「位相基準PWM動作」を参照してください。
● ﾋﾞｯﾄ5,4 - COM0B1,0 : 比較B出力選択 (Compare Output Mode for Channel B)

これらのﾋﾞｯﾄはOC0B比較出力ﾋﾟﾝの動作を制御します。COM0B1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、OC0B出力はそのI/Oﾋﾟﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども出力駆動部を許可するため、OC0Bﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞ
ｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OC0Bがﾋﾟﾝに接続されるとき、COM0B1,0ﾋﾞｯﾄの機能はWGM02～0ﾋﾞｯﾄ設定に依存します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 79頁

ATmega328PB
下表はWGM02～0ﾋﾞｯﾄが標準動作またはCTC動作(つまりPWM以外)に設定される時のCOM0B1,0ﾋﾞｯﾄ機能を示します。
表18-5. 非PWM動作比較B出力選択
COM0B1 COM0B00
標準ﾎﾟｰﾄ動作 (OC0B切断)
0
比較一致でOC0Bﾋﾟﾝ ﾄｸﾞﾙ(交互)出力01
1
比較一致でOC0Bﾋﾟﾝ Lowﾚﾍﾞﾙ出力0
比較一致でOC0Bﾋﾟﾝ Highﾚﾍﾞﾙ出力
11

意味

下表はWGM02～0ﾋﾞｯﾄが高速PWM動作に設定される時のCOM0B1,0ﾋﾞｯﾄの機能を示します。
表18-6. 高速PWM動作比較B出力選択
COM0B1 COM0B0
意味
0
標準ﾎﾟｰﾄ動作 (OC0B切断)
0
(予約)
0
1
1
比較一致でLow、BOTTOMでHighをOC0Bﾋﾟﾝへ出力 (非反転動作)
0
比較一致でHigh、BOTTOMでLowをOC0Bﾋﾟﾝへ出力 (反転動作)
11
注: COM0B1が設定(1)され、OCR0BがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はBOTTOMで行われます。詳細については「高速PWM動作」を参照してください。
下表はWGM02～0ﾋﾞｯﾄが位相基準PWM動作に設定される時のCOM0B1,0ﾋﾞｯﾄの機能を示します。
表18-7. 位相基準PWM動作比較B出力選択
COM0B1 COM0B0
意味
0
標準ﾎﾟｰﾄ動作 (OC0B切断)
0
(予約)
0
1
1
上昇計数時の比較一致でLow、下降計数時の比較一致でHighをOC0Bﾋﾟﾝへ出力
0
上昇計数時の比較一致でHigh、下降計数時の比較一致でLowをOC0Bﾋﾟﾝへ出力
11
注: COM0B1が設定(1)され、OCR0BがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はTOPで行われます。詳細については「位相基準PWM動作」を参照してください。
● ﾋﾞｯﾄ1,0 - WGM01,0 : 波形生成種別 (Waveform Generation Mode)

ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCR0B)で得られるWGM02ﾋﾞｯﾄと組み合わせたこれらのﾋﾞｯﾄはｶｳﾝﾀの計数順序(方向)、最大ｶｳﾝﾀ(TOP)値の供給元、使われるべき波形生成のどの形式かを制御します。ﾀｲﾏ/ｶｳﾝﾀ部によって支援される動作種別は標準動作(計数器)、
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作と2形式のﾊﾟﾙｽ幅変調(PWM)動作です。「動作種別」をご覧ください。
表18-8. 波形生成種別選択
番号 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です。

© 2018 Microchip Technology Inc.

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

完全ﾃﾞｰﾀｼｰﾄ

TOP値
$FF
$FF
OCR0A
$FF
OCR0A
OCR0A

OCR0x更新時
即時TOP
即時BOTTOMTOP
BOTTOM

TOV0設定時MAX
BOTTOMMAX
MAX
BOTTOM
TOP

DS40001906C - 80頁

ATmega328PB
18.9.2. TCCR0B - ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀB (Timer/Counter0 Control Register B)
名称 : TCCR0B
変位 : $45 ($25)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$25です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

FOC0A

FOC0B

-

-

WGM02

R/W
0

R/W
0

R
0

R
0

R/W
0

2

1

0

CS02～0
R/W
0

R/W
0

R/W
0

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

FOC0AﾋﾞｯﾄはWGM02～0ﾋﾞｯﾄが非PWM動作を指示する時だけ有効です。
将来のﾃﾞﾊﾞｲｽとの共通性を保証するため、PWM動作で扱う時にTCCR0Bが書かれる場合、このﾋﾞｯﾄは0に設定されなければなりません。FOC0Aﾋﾞｯﾄに論理1を書くと、波形生成部で直ちに比較一致が強制されます。OC0A出力はCOM0A1,0ﾋﾞｯﾄ設定に従って変更されます。FOC0Aﾋﾞｯﾄはｽﾄﾛｰﾌﾞとして実行されます。従って強制した比較の効果を決めるのはCOM0A1,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ﾋﾞｯﾄはｽﾄﾛｰﾌﾞとして実行されます。従って強制した比較の効果を決めるのはCOM0B1,0ﾋﾞｯﾄに存在する値です。
FOC0Bｽﾄﾛｰﾌﾞは何れの割り込みの生成も行いません。
FOC0Bﾋﾞｯﾄは常に0として読みます。
● ﾋﾞｯﾄ3 - WGM02 : 波形生成種別 (Waveform Generation Mode bit 2)

ﾀｲﾏ/ｶｳﾝﾀ0制御ﾚｼﾞｽﾀA(TCCR0A)を参照してください。
● ﾋﾞｯﾄ2～0 - CS02～0 : ｸﾛｯｸ選択 (Clock Select)

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

CS00
0
1
0
1
0
1
0
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ﾋﾟﾝの遷移はｶｳﾝﾀをｸﾛｯｸ駆動
します。この特徴がｿﾌﾄｳｪｱに計数制御を許します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 81頁

ATmega328PB
18.9.3. TCNT0 - ﾀｲﾏ/ｶｳﾝﾀ0計数値ﾚｼﾞｽﾀ (TC0 Counter Value Register)
名称 : TCNT0
変位 : $46 ($26)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$26です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

TCNT07～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - TCNT07～0 : ﾀｲﾏ/ｶｳﾝﾀ0計数値 (TC0 Counter Value)

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

18.9.4. OCR0A - ﾀｲﾏ/ｶｳﾝﾀ0比較Aﾚｼﾞｽﾀ (TC0 Output Compare Register 0 A)
名称 : OCR0A
変位 : $47 ($27)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$27です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCR0A7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - OCR0A7～0 : ﾀｲﾏ/ｶｳﾝﾀ0比較A値 (Output Compare 0 A)

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

18.9.5. OCR0B - ﾀｲﾏ/ｶｳﾝﾀ0比較Bﾚｼﾞｽﾀ (TC0 Output Compare Register 0 B)
名称 : OCR0B
変位 : $48 ($28)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$28です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCR0B7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - OCR0B7～0 : ﾀｲﾏ/ｶｳﾝﾀ0比較B値 (Output Compare 0 B)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 82頁

ATmega328PB
18.9.6. TIMSK0 - ﾀｲﾏ/ｶｳﾝﾀ0割り込み許可ﾚｼﾞｽﾀ (Timer/Counter 0 Interrupt Mask Register)
名称 : TIMSK0
変位 : $6E
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

OCIE0B

OCIE0A

TOIE0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ2 - OCIE0B : ﾀｲﾏ/ｶｳﾝﾀ0比較B割り込み許可 (Timer/Counter0 Output Compare B Match Interrupt Enable)

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

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

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

18.9.7. TIFR0 - ﾀｲﾏ/ｶｳﾝﾀ0割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Timer/Counter 0 Interrupt Flag Register)
名称 : TIFR0
変位 : $35 ($15)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$15です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

OCF0B

OCF0A

TOV0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ2 - OCF0B : ﾀｲﾏ/ｶｳﾝﾀ0比較B割り込み要求ﾌﾗｸﾞ (Timer/Conter0, Output Compare B Match Flag)

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

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

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

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 83頁

ATmega328PB
19. TC1,TC3,TC4 - PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4
19.1. 特徴
・ TC1,TC3,TC4の3つの16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ・ 真の16ﾋﾞｯﾄ設計 (換言すれば16ﾋﾞｯﾄPWMの許容)
・ 2つの独立した比較出力部
・ 2重緩衝の比較ﾚｼﾞｽﾀ・ 1つの捕獲入力部
・ 捕獲入力雑音消去器
・ 比較一致でのﾀｲﾏ/ｶｳﾝﾀ解除 (自動再設定)
・ 不具合なしで正しい位相のﾊﾟﾙｽ幅変調器 (PWM)
・ 可変PWM周期
・ 周波数発生器・ 外部事象計数器
・ 独立した割り込み (TOVn,OCFnA,OCFnB,ICFn)

19.2. 概要
この16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ部は正確なﾌﾟﾛｸﾞﾗﾑ実行ﾀｲﾐﾝｸﾞ(事象管理)、波形生成、信号ﾀｲﾐﾝｸﾞ計測を許します。
この16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀの構成図は下で示されます。CPUがｱｸｾｽ可能な(I/OﾋﾞｯﾄとI/Oﾋﾟﾝを含む)I/Oﾚｼﾞｽﾀは赤文字(訳注: 原文太字)で示されます。ﾃﾞﾊﾞｲｽ仕様のI/Oﾚｼﾞｽﾀとﾋﾞｯﾄ位置は「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀn用ﾚｼﾞｽﾀ」で示されます。実際のI/Oﾋﾟﾝの配置について
は「ﾋﾟﾝ配置」記述を参照してください。
電力削減ﾚｼﾞｽﾀ(PRR0/1)のTCn電力削減(PRTIM1/3/4)ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀn部を許可するために0を書かれなければなりません。
図19-1. 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ構成図
計数
方向
ﾘｾｯﾄ

制御回路
TOP

clkTn

TOVn (割り込み要求)
ｸﾛｯｸ選択BOTTOM

ｴｯｼﾞ検出器

Tn(前置分周器から)
TCNTn

=

=0
OCFnA (割り込み要求)

=

波形生成

OCnA

OCRnA
OCFnB (割り込み要求)

固定TOP値
=

波形生成

OCRnB

OCnB
(ｱﾅﾛｸﾞ比較器
出力から)ICFn (割り込み要求)
ｴｯｼﾞ検出ICRn

TCCRnA

TCCRnB

雑音消去

ICPn

TCCRnC

8-bit Data Bus

実際のﾋﾟﾝ配置については関連ﾘﾝｸをご覧ください。
関連ﾘﾝｸ 入出力ﾎﾟｰﾄ
ﾋﾟﾝ配置© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 84頁

ATmega328PB
19.2.1. 定義
本章でのﾚｼﾞｽﾀとﾋﾞｯﾄ参照の多くは以下のように一般形で書かれます。
・ n=1,3,4はﾀｲﾏ/ｶｳﾝﾀ番号を表します。
・ x=A,Bは比較出力部AまたはBを表します。
けれども、ﾌﾟﾛｸﾞﾗﾑでﾚｼﾞｽﾀまたはﾋﾞｯﾄ定義に使う時は正確な形式、即ち、ﾀｲﾏ/ｶｳﾝﾀ3のｶｳﾝﾀ値ｱｸｾｽに対してTCNT3が使われなければなりません。
以下の定義は本章全体に渡って広範囲に使われます。
表19-1. 用語定義
用語
意味
BOTTOM ｶｳﾝﾀが$0000に到達した時。
ｶｳﾝﾀが$FFFF(65535)に到達した時。
MAX
ｶｳﾝﾀがTOP値に到達した時(計数動作での最大値と等しくなった時)。TOP値は固定値($00FF,$01FF,$03FF)、TOP
OCRnA値、ICRn値の何れか1つを指定できます。この指定は動作種別に依存します。

19.2.2. 関係ﾚｼﾞｽﾀ
ﾀｲﾏ/ｶｳﾝﾀ(TCNTn)、比較ﾚｼﾞｽﾀ(OCRnA,OCRnB)、捕獲ﾚｼﾞｽﾀ(ICRn)は全て16ﾋﾞｯﾄ ﾚｼﾞｽﾀです。16ﾋﾞｯﾄ ﾚｼﾞｽﾀをｱｸｾｽするとき、特別な手順に従わなければなりません。これらの手順は「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」項で記述されます。ﾀｲﾏ/ｶｳﾝﾀn制御ﾚｼﾞｽ
ﾀ(TCCRnA,TCCRnB,TCCRnC)は8ﾋﾞｯﾄ ﾚｼﾞｽﾀで、CPUｱｸｾｽの制限はありません。割り込み要求信号はﾀｲﾏ/ｶｳﾝﾀn割り込み要求ﾚ
ｼﾞｽﾀ(TIFRn)で全て見えます。全ての割り込みはﾀｲﾏ/ｶｳﾝﾀn割り込み許可ﾚｼﾞｽﾀ(TIMSKn)で個別に遮蔽(禁止)されます。TIFRnとTI
MSKnはこの図で示されません。
このﾀｲﾏ/ｶｳﾝﾀは内部的、前置分周器経由、またはTnﾋﾟﾝの外部ｸﾛｯｸ元によってｸﾛｯｸ駆動されます。ｸﾛｯｸ選択論理部はﾀｲﾏ/ｶｳﾝ
ﾀが値を増加(または減少)するのに使うｸﾛｯｸ元とｴｯｼﾞを制御します。ｸﾛｯｸ元が選択されないとき、ﾀｲﾏ/ｶｳﾝﾀは動きません。ｸﾛｯｸ選
択論理部からの出力はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkTn)として参照されます。
2重緩衝化した比較ﾚｼﾞｽﾀ(OCRnA,OCRnB)はﾀｲﾏ/ｶｳﾝﾀ値と常に比較されます。この比較結果は比較出力(OCnA,OCnB)ﾋﾟﾝでPW
Mまたは可変周波数出力を生成するための波形生成器によって使えます。「比較出力部」をご覧ください。この比較一致発生は比較
出力割り込み要求の発生に使える比較一致割り込み要求ﾌﾗｸﾞ(OCFnA,OCFnB)も設定(1)します。
捕獲ﾚｼﾞｽﾀ(ICRn)は捕獲起動(ICPn)ﾋﾟﾝまたはｱﾅﾛｸﾞ比較器出力のどちらかの外部(ｴｯｼﾞで起動された)事象でﾀｲﾏ/ｶｳﾝﾀ値を捕獲(複写)できます。捕獲入力部は尖頭雑音を捕らえる機会を軽減するためにﾃﾞｼﾞﾀﾙ濾波器(雑音消去器)を含みます。
TOP値または最大ﾀｲﾏ/ｶｳﾝﾀ値は、いくつかの動作種別で、OCRnA、ICRn、または一群の固定値のどれかによって定義できます。
PWM動作でTOP値としてOCRnAを使うと、OCRnAはPWM出力生成用に使えません。けれどもこの場合、TOP値は動作中に変更されるのをTOP値に許す2重緩衝化します。固定的なTOP値が必要とされる場合、ICRnが代わりに使え、PWM出力として使われるべきOCRnAを開放します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 85頁

ATmega328PB
19.3. 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ
TCNTn,OCRnA,OCRnB,ICRnは8ﾋﾞｯﾄ ﾊﾞｽ経由でAVR CPUによってｱｸｾｽできる16ﾋﾞｯﾄ ﾚｼﾞｽﾀです。この16ﾋﾞｯﾄ ﾚｼﾞｽﾀは2回の読みまたは書き操作を使ってﾊﾞｲﾄ的にｱｸｾｽされなければなりません。16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀは16ﾋﾞｯﾄ ｱｸｾｽの上位ﾊﾞｲﾄの一時保存用に1つの8ﾋﾞｯﾄTEMPﾚｼﾞｽﾀを持ちます。16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ内の全ての16ﾋﾞｯﾄ ﾚｼﾞｽﾀ間で、この同じ一時ﾚｼﾞｽﾀが共用されます。下位ﾊﾞｲﾄ
ｱｸｾｽが16ﾋﾞｯﾄ読み書き動作を起動します。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの下位ﾊﾞｲﾄがCPUによって書かれると、現在TEMPに保存された上位ﾊﾞｲﾄと書かれつつある下位ﾊﾞｲﾄは同じｸﾛｯｸ周期で両方が16ﾋﾞｯﾄ ﾚｼﾞｽﾀに複写されます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの下位ﾊﾞｲﾄがCPUによって読まれると、16ﾋﾞｯﾄ ﾚｼﾞｽﾀの上位ﾊﾞｲﾄは下位ﾊﾞｲﾄが読まれるのと同じｸﾛｯｸ周期でTEMPﾚｼﾞｽﾀに複写され、その後に(上位ﾊﾞｲﾄが)読まれなければなりません。
注: 16ﾋﾞｯﾄ書き込みを実行するには下位ﾊﾞｲﾄに先立って上位ﾊﾞｲﾄが書かれなければなりません。16ﾋﾞｯﾄ読み込みについては上位ﾊﾞｲﾄの前に下位ﾊﾞｲﾄが読まれなければなりません。
全ての16ﾋﾞｯﾄ ｱｸｾｽが上位ﾊﾞｲﾄに対して一時ﾚｼﾞｽﾀを使う訳ではありません。OCRnAとOCRnBの16ﾋﾞｯﾄ ﾚｼﾞｽﾀ読み込みは一時ﾚｼﾞ
ｽﾀの使用に関係しません。
16ﾋﾞｯﾄ ｱｸｾｽ
次のｺｰﾄﾞ例は割り込みが一時ﾚｼﾞｽﾀを更新しないことが前提の16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ法を示します。OCRnA, OCRnB,
ICRnﾚｼﾞｽﾀのｱｸｾｽに対して同じ原理が直接的に使えます。C言語を使う時はｺﾝﾊﾟｲﾗが16ﾋﾞｯﾄ ｱｸｾｽを扱うことに注意してください。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
～
LDI
LDI
OUT
OUT

;
;[16ﾋﾞｯﾄ($01FF)書き込み];$01FFの上位ﾊﾞｲﾄ値取得;$01FFの下位ﾊﾞｲﾄ値取得;上位ﾊﾞｲﾄ設定(一時ﾚｼﾞｽﾀ);下位ﾊﾞｲﾄ設定(一時ﾚｼﾞｽﾀ⇒上位ﾊﾞｲﾄ);[16ﾋﾞｯﾄ読み込み];下位ﾊﾞｲﾄ取得(上位ﾊﾞｲﾄ⇒一時ﾚｼﾞｽﾀ);上位ﾊﾞｲﾄ取得(一時ﾚｼﾞｽﾀ);

R17,$01
R16,$FFTCNTnH,R17
TCNTnL,R16

IN
R16,TCNTnL
IN
R17,TCNTnH～
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned int i;～
TCNTn = 0x1FF;
i = TCNTn;～/* *//* 16ﾋﾞｯﾄ($01FF)書き込み *//* 16ﾋﾞｯﾄ読み込み *//* */注: 「ｺｰﾄﾞ例について」を参照してください。
ｱｾﾝﾌﾞﾘ言語ｺｰﾄﾞ例はR17:R16ﾚｼﾞｽﾀ対にTCNTn値を戻します。
非分断読み込み
16ﾋﾞｯﾄ ﾚｼﾞｽﾀ ｱｸｾｽが非分断操作であることに注意することが重要です。16ﾋﾞｯﾄ ﾚｼﾞｽﾀをｱｸｾｽする2命令間で割り込みが起き、割り込みｺｰﾄﾞがその16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀの同じ若しくは他の何れかをｱｸｾｽすることによって一時ﾚｼﾞｽﾀを更新する場合、割り込み外のその後のｱｸｾｽ結果は不正にされます。従って主ｺｰﾄﾞと割り込みｺｰﾄﾞの両方が一時ﾚｼﾞｽﾀを更新するとき、主ｺｰﾄﾞは16ﾋﾞｯﾄ ｱｸｾ
ｽ中の割り込みを禁止しなければなりません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 86頁

ATmega328PB
次のｺｰﾄﾞ例はTCNTnﾚｼﾞｽﾀ内容の非分断読み込み実行法を示します。OCRnA,OCRnB,ICRnﾚｼﾞｽﾀは同じ原理を使うことによって読むことができます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
RD_TCNTn:
IN
R18,SREG
CLI
IN
R16,TCNTnL
IN
R17,TCNTnH
OUT
SREG,R18
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned int TIM16_Read_TCNTn(void){
unsigned char sreg;
unsigned int i;sreg = SREG;__disable_interrupt();
i = TCNTn;
SREG = sreg;
return i;};現全割り込み許可ﾌﾗｸﾞ(I)を保存;全割り込み禁止;TCNTn下位ﾊﾞｲﾄ取得(上位ﾊﾞｲﾄ⇒一時ﾚｼﾞｽﾀ);TCNTn上位ﾊﾞｲﾄ取得(一時ﾚｼﾞｽﾀ);全割り込み許可ﾌﾗｸﾞ(I)を復帰;呼び出し元へ復帰/* ｽﾃｰﾀｽ ﾚｼﾞｽﾀ一時保存変数定義 *//* TCNTn読み出し変数定義 *//* 現全割り込み許可ﾌﾗｸﾞ(I)を保存 *//* 全割り込み禁止 *//* TCNTn値を取得 *//* 全割り込み許可ﾌﾗｸﾞ(I)を復帰 *//* TCNTn値で呼び出し元へ復帰 */注: 「ｺｰﾄﾞ例について」を参照してください。
ｱｾﾝﾌﾞﾘ言語ｺｰﾄﾞ例はR17:R16ﾚｼﾞｽﾀ対にTCNTn値を戻します。
非分断読み込み
次のｺｰﾄﾞ例はTCNTnﾚｼﾞｽﾀ内容の非分断書き込み法を示します。同じ原理を使うことにより、OCRnA,OCRnB,ICRnのどの書き込みも行えます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
WR_TCNTn:
IN
R18,SREG
CLI
OUT
TCNTnH,R17
OUT
TCNTnL,R16
OUT
SREG,R18
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void TIM16_Write_TCNTn(unsigned int i){
unsigned char sreg;
unsigned int i;sreg = SREG;__disable_interrupt();
TCNTn = i;
SREG = sreg;};現全割り込み許可ﾌﾗｸﾞ(I)を保存;全割り込み禁止;TCNTn上位ﾊﾞｲﾄ設定(一時ﾚｼﾞｽﾀ);TCNTn下位ﾊﾞｲﾄ設定(一時ﾚｼﾞｽﾀ⇒上位ﾊﾞｲﾄ);全割り込み許可ﾌﾗｸﾞ(I)を復帰;呼び出し元へ復帰/* ｽﾃｰﾀｽ ﾚｼﾞｽﾀ一時保存変数定義 *//* TCNTn書き込み変数定義 *//* 現全割り込み許可ﾌﾗｸﾞ(I)を保存 *//* 全割り込み禁止 *//* TCNTn値を設定 *//* 全割り込み許可ﾌﾗｸﾞ(I)を復帰 */注: 「ｺｰﾄﾞ例について」を参照してください。
ｱｾﾝﾌﾞﾘ言語ｺｰﾄﾞ例はR17:R16ﾚｼﾞｽﾀ対がTCNTnへ書かれるべき値を含むことが必要です。

19.3.1. 上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀの再使用
書かれる全ﾚｼﾞｽﾀに関して上位ﾊﾞｲﾄが同じ、複数16ﾋﾞｯﾄ ﾚｼﾞｽﾀ書き込みなら、上位ﾊﾞｲﾄは1度書かれることだけが必要です。けれども、直前で記述した非分断操作の同じ規則が、この場合にも適用されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 87頁

ATmega328PB
19.4. ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ
このﾀｲﾏ/ｶｳﾝﾀは内部または外部のｸﾛｯｸ元によってｸﾛｯｸ駆動できます。このｸﾛｯｸ元はﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCRnB)のｸﾛｯｸ選
択(CSn2～0)ﾋﾞｯﾄによって制御されるｸﾛｯｸ選択論理回路で選択されます。
関連ﾘﾝｸ ﾀｲﾏ/ｶｳﾝﾀ0,1,3,4の前置分周器

19.5. 計数器部
16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀの主な部分は構成図で示されるように、設定可能な16ﾋﾞｯﾄ双方向ｶｳﾝﾀ部です。
図19-2. ｶｳﾝﾀ部構成図
8-bit Data Bus
TOVn (割り込み要求)

TEMP(8ﾋﾞｯﾄ)
TCNTnH(8ﾋﾞｯﾄ) TCNTnL(8ﾋﾞｯﾄ)
TCNTn(16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ)

countdirectionclear

ｸﾛｯｸ選択
制御回路

clkTn

ｴｯｼﾞ検出器

Tn(前置分周器から)TOP BOTTOM

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での’n’は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)を表します。
count
TCNTnを1つ進めるまたは戻す信号。
direction 進行方向(上昇または下降)選択信号。
clear
TCNTnのﾘｾｯﾄ($0000設定)信号。
信号説明
clkTn
以降でclkTnとして参照されるﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ信号。
(内部信号)TOP
TCNTnが最大値に到達したことを示す信号。
BOTTOM TCNTnが最小値($0000)に到達したことを示す信号。
TEMP
一時ﾚｼﾞｽﾀ。
この16ﾋﾞｯﾄ ｶｳﾝﾀはｶｳﾝﾀの上位8ﾋﾞｯﾄを含むｶｳﾝﾀ上位(TCNTnH)と下位8ﾋﾞｯﾄを含むｶｳﾝﾀ下位(TCNTnL)の2つの8ﾋﾞｯﾄ I/Oﾒﾓﾘ位置に配置されます。TCNTnHﾚｼﾞｽﾀはCPUによる間接的なｱｸｾｽのみできます。CPUがTCNTnH I/O位置をｱｸｾｽするとき、CPUは上
位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)をｱｸｾｽします。この一時ﾚｼﾞｽﾀはTCNTnLが読まれる時にTCNTnH値で更新され、TCNTnLが書かれる時にTCNTnHは一時ﾚｼﾞｽﾀ値で更新されます。これは8ﾋﾞｯﾄ ﾃﾞｰﾀ ﾊﾞｽ経由で1ｸﾛｯｸ周期内での16ﾋﾞｯﾄ ｶｳﾝﾀ値全体の読み書きをCPUに許します。
注: ｶｳﾝﾀが計数中の間にTCNTnﾚｼﾞｽﾀを書く時が予測不能な結果を生じる特別な場合があります。これらの特別な場合はそれらが重要となる項で記述されます。
選択した動作種別に依存して、ｶｳﾝﾀは各ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkTn)でﾘｾｯﾄ($0000)、増加(+1)、または減少(-1)されます。clkTnｸﾛｯｸ
はﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCRnB)のｸﾛｯｸ選択(CSn2～0)ﾋﾞｯﾄによって選択された内部または外部のｸﾛｯｸ元から生成できます。ｸ
ﾛｯｸ元が選択されない(CSn2～0=000)時にｶｳﾝﾀは停止されます。けれども、TCNTn値はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkTn)が存在するしないに拘らず、CPUによってｱｸｾｽできます。CPU書き込みは全てのｶｳﾝﾀ解除や計数動作を無視します(即ち、上位優先権を持ちます)。
計数順序(方法)はﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀA(TCCRnA)とTCCRnBの波形生成種別(TCCRnB.WGMn3,2とTCCRnA.WGMn1,0)ﾋﾞｯﾄの設定によって決定されます。これらはｶｳﾝﾀ動作(計数)方法と波形がOCnx比較出力に生成される方法間の接続に近いものです。進
化した計数順序と波形生成についてより多くの詳細に対しては「動作種別」をご覧ください。
TCnのﾀｲﾏ/ｶｳﾝﾀ溢れ(TIFRn.TOVn)ﾌﾗｸﾞはWGMn3～0ﾋﾞｯﾄによって選択された動作種別に従って設定(1)されます。TOVnはCPU
割り込み発生に使えます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 88頁

ATmega328PB
19.6. 捕獲入力部
ﾀｲﾏ/ｶｳﾝﾀは外部の出来事を捕獲でき、発生時間を示す時間印(ﾀｲﾏ/ｶｳﾝﾀ値)を与える捕獲入力部と合体します。出来事または複数の出来事を示す外部信号はICPnﾋﾟﾝまたは代わりにｱﾅﾛｸﾞ比較器部経由で印加できます。時間印はその後、周波数、ﾃﾞｭｰﾃｨ比、印加された信号の他の特性の計算に使えます。代わりに時間印は出来事の記録作成にも使えます。
捕獲入力部は下の構成図によって図解されます。直接的な捕獲入力部の部分でない構成図の要素は青枠(訳注:原文は灰色背景)で示されます。ﾚｼﾞｽﾀとﾋﾞｯﾄ名での小文字の'n'はﾀｲﾏ/ｶｳﾝﾀ番号を示します。
図19-3. 捕獲入力部構成図
8-bit Data Bus

TEMP(8ﾋﾞｯﾄ)

ICRnH(8ﾋﾞｯﾄ)WR-

TCNTnH(8ﾋﾞｯﾄ) TCNTnL(8ﾋﾞｯﾄ)

TCNTn(16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ)

ICRn(16ﾋﾞｯﾄ ﾚｼﾞｽﾀ)

ｱﾅﾛｸﾞ比較器 ACIC
+ ACO
ICPn

ICRnL(8ﾋﾞｯﾄ)

ICNCn

ICESn

雑音消去器

ｴｯｼﾞ検出器

ICFn (割り込み要求)

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での’n’は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)を表します。
注: ACO,ACICはｱﾅﾛｸﾞ比較器制御/状態ﾚｼﾞｽﾀ(ACSR)内のﾋﾞｯﾄです。
注: ｱﾅﾛｸﾞ比較器はﾀｲﾏ/ｶｳﾝﾀ1に対してだけ使うことができ、ﾀｲﾏ/ｶｳﾝﾀ3やﾀｲﾏ/ｶｳﾝﾀ4に対しては利用できません。
捕獲起動入力(ICPn)ﾋﾟﾝ若しくは代わりにｱﾅﾛｸﾞ比較器出力(ACO)で論理ﾚﾍﾞﾙの変化(出来事)が起き、その変化がｴｯｼﾞ検出器の設定を追認すると、捕獲が起動されます。捕獲が起動されると、ｶｳﾝﾀ(TCNTn)の16ﾋﾞｯﾄ値が捕獲ﾚｼﾞｽﾀ(ICRn)に書かれます。捕獲割り込み要求ﾌﾗｸﾞ(ICFn)はTCNTn値がICRnに複写されるのと同じｼｽﾃﾑ ｸﾛｯｸ周期で設定(1)されます。許可(I=1,ICIEn=1)ならば捕獲割り込み要求ﾌﾗｸﾞは捕獲割り込みを発生します。ICFnは割り込みが実行されると自動的に解除(0)されます。代わりにこのI/Oﾋﾞｯﾄ位置に1を書くことによってｿﾌﾄｳｪｱでも解除(0)できます。
捕獲ﾚｼﾞｽﾀ(ICRn)の16ﾋﾞｯﾄ値読み込みは、初めに下位ﾊﾞｲﾄ(ICRnL)、その後に上位ﾊﾞｲﾄ(ICRnH)を読むことによって行われます。
ICRnLから下位ﾊﾞｲﾄが読まれる時に上位ﾊﾞｲﾄが上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)に複写されます。CPUがICRnH I/O位置を読むと、この一時ﾚｼﾞｽﾀをｱｸｾｽします。
ICRnはｶｳﾝﾀのTOP値定義にICRnを利用する波形生成種別を使う時にだけ書けます。これらの場合、TOP値がICRnに書かれ得る
前に波形生成種別(WGMn3～0)ﾋﾞｯﾄが設定されなければなりません。ICRnに書く時は下位ﾊﾞｲﾄがICRnLに書かれる前に、上位ﾊﾞｲﾄ
がICRnH I/O位置に書かれなければなりません。
「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」もご覧ください。

19.6.1. 捕獲起動元
捕獲入力部用の主な起動元は捕獲起動入力(ICPn)ﾋﾟﾝです。ﾀｲﾏ/ｶｳﾝﾀnは捕獲入力部用起動元としてｱﾅﾛｸﾞ比較器出力を代わりに使えます。ｱﾅﾛｸﾞ比較器はｱﾅﾛｸﾞ比較器制御/状態ﾚｼﾞｽﾀ(ACSR)のｱﾅﾛｸﾞ比較器捕獲起動許可(ACIC)ﾋﾞｯﾄの設定(=1)によって起動元として選択されます。起動元を変更することが捕獲を起動し得ることに気付いてください。従って捕獲割り込み要求ﾌﾗｸﾞ(ICFn)
は、その変更後に解除(0)されなければなりません。
捕獲起動入力(ICPn)ﾋﾟﾝとｱﾅﾛｸﾞ比較器出力(ACO)の両入力は、Tnﾋﾟﾝについてと同じ技法を使って採取されます。ｴｯｼﾞ検出器も全く同じです。けれども雑音消去が許可されると、付加論理回路がｴｯｼﾞ検出器の前に挿入され、そして遅延を4ｼｽﾃﾑ ｸﾛｯｸ周期増やします。ﾀｲﾏ/ｶｳﾝﾀがTOP値定義にICRnを使う波形生成種別に設定されない限り、雑音消去器とｴｯｼﾞ検出器の入力が常に許可されます。
捕獲入力はICPnﾋﾟﾝのﾎﾟｰﾄを制御することによってｿﾌﾄｳｪｱで起動できます。
関連ﾘﾝｸ ﾀｲﾏ/ｶｳﾝﾀ0,1,3,4の前置分周器

19.6.2. 雑音消去器
雑音消去器は簡単なﾃﾞｼﾞﾀﾙ濾波器機構を使うことによって雑音耐性を改善します。雑音消去器の入力は4採取に渡って監視され、ｴｯｼﾞ検出器によって使われる方向転換となる出力を変更するためには4回全てが同じでなければなりません。
雑音消去器はﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀBの捕獲入力雑音消去許可(TCCRnB.ICNCn)ﾋﾞｯﾄの設定(1)によって許可されます。許可した
時に雑音消去器は入力に印加した変更とICRnの更新間に4ｼｽﾃﾑ ｸﾛｯｸ周期の追加遅延をもたらします。雑音消去器はｼｽﾃﾑ ｸﾛｯｸを使い、従って前置分周器によって影響されません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 89頁

ATmega328PB
19.6.3. 捕獲入力の使用
捕獲入力機能を使う主な要求(目的)は入って来る出来事に対して充分なﾌﾟﾛｾｯｻ能力を当てがうことです。2つの出来事間の時間が際どいとします。次の出来事が起こる前に捕獲した捕獲ﾚｼﾞｽﾀ(ICRn)の値をﾌﾟﾛｾｯｻが読めなかった場合、ICRnは新しい値で上書きされます。この場合、捕獲の結果は不正にされます。
捕獲割り込みを使う時にICRnは割り込み処理ﾙｰﾁﾝで可能な限り早く読まれるべきです。捕獲割り込みが相対的に高い優先順位であっても、最大割り込み応答時間は他の割り込み要求のどれかを扱うのに必要とされる最大ｸﾛｯｸ周期数に依存します。
動作中にTOP値(分解能)が積極的に変更されるとき、どの動作種別での捕獲入力部の使用も推奨されません。
外部信号のﾃﾞｭｰﾃｨ比測定は各捕獲後に起動端が変更されることを必要とします。検出端の変更はICRnが読まれてしまった後に可能な限り早く行われなければなりません。ｴｯｼﾞの変更後、捕獲割り込み要求ﾌﾗｸﾞ(ICFn)はｿﾌﾄｳｪｱ(I/Oﾋﾞｯﾄ位置への論理1書き込み)によって解除(0)されなければなりません(訳補:ｴｯｼﾞ変更によってICFnが設定(1)されることを想定)。周波数のみの測定について(割り込み処理が使われる場合)、ICFnの解除(0)は必要とされません。

19.7. 比較出力部
この16ﾋﾞｯﾄ比較器はTCNTnと比較ﾚｼﾞｽﾀ(OCRnx)を継続的に比較します。TCNTnとOCRnxが等しければ、比較器は一致を指示します。この一致は次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で比較割り込み要求ﾌﾗｸﾞ(TIFRn.OCFnx)を設定(1)します。許可(I=1,TIMSKn.OCIEnx=1)
なら、この比較割り込み要求ﾌﾗｸﾞは比較割り込みを発生します。OCFnxは割り込みが実行されると自動的に解除(0)されます。代わりにOCFnxはこのI/Oﾋﾞｯﾄ位置に論理1を書くことによってｿﾌﾄｳｪｱでも解除(0)できます。波形生成器は波形生成種別(WGMn3～0)ﾋﾞｯﾄと比較出力選択(COMnx1,0)ﾋﾞｯﾄによって設定された動作種別に従った出力を生成するのにこの一致信号を使います。TOPとBOTT
OMの信号は動作種別のいくつかで両端値の特別な場合を扱うため、波形生成器によって使われます。「動作種別」をご覧ください。
比較A出力部の特殊な特性はﾀｲﾏ/ｶｳﾝﾀのTOP値(換言するとｶｳﾝﾀの分解能)定義を許します。ｶｳﾝﾀの分解能に加え、TOP値は波形生成器によって生成された波形の周期時間を定義します。
下は比較出力部の構成図を示します。構成図で比較出力部の直接的部分でない要素は青枠(訳注:原文灰色背景)で示されます。
図19-4. 比較出力部構成図
8-bit Data Bus
TEMP(8ﾋﾞｯﾄ)

OCRnxH緩衝部(8ﾋﾞｯﾄ) OCRnxL緩衝部(8ﾋﾞｯﾄ)

TCNTnH(8ﾋﾞｯﾄ)

OCRnx緩衝部(16ﾋﾞｯﾄ ﾚｼﾞｽﾀ)

OCRnxH (8ﾋﾞｯﾄ)

TCNTnL(8ﾋﾞｯﾄ)

TCNTn(16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ)

OCRnxL (8ﾋﾞｯﾄ)

OCRnx (16ﾋﾞｯﾄ ﾚｼﾞｽﾀ)= (16ﾋﾞｯﾄ比較器)
OCFnx (割り込み要求)
TOP
BOTTOM

波形生成器
WGMn3～0

OCnx

COMnx1,0

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
OCRnxは12種類のﾊﾟﾙｽ幅変調(PWM)のどれかを使う時に2重緩衝化されます。標準動作と比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作については2重緩衝動作が禁止されます。2重緩衝動作は計数の流れのTOPまたはBOTTOMのどちらかに対してOCRnxﾚｼﾞｽﾀの更新を同期化します。この同期化は奇数長、非対称PWMﾊﾟﾙｽの発生を防ぎ、それによって不具合なしの出力を作成します。
2重緩衝動作が許可されるとCPUはOCRnx緩衝部をｱｸｾｽします。2重緩衝動作が禁止されると直接OCRnxﾚｼﾞｽﾀをｱｸｾｽします。
OCRnx(緩衝部またはﾚｼﾞｽﾀ)の内容は書き込み操作によってのみ変更されます(ﾀｲﾏ/ｶｳﾝﾀはTCNTnやICRnのようにOCRnxを自動的に更新しません)。従ってOCRnxは上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)経由で読まれません。けれども他の16ﾋﾞｯﾄ ﾚｼﾞｽﾀをｱｸｾｽする時のように下位ﾊﾞｲﾄを先に読むのは良い習慣です。OCRnx書き込みは16ﾋﾞｯﾄ全ての比較が継続的に行われるため、一時ﾚｼﾞｽﾀ経由で行われなければなりません。上位ﾊﾞｲﾄ(OCRnxH)が先に書かれなければなりません。上位ﾊﾞｲﾄI/O位置がCPUによって書かれると、一時ﾚｼﾞｽﾀは書かれた値で更新されます。その後に下位ﾊﾞｲﾄ(OCRnxL)が下位8ﾋﾞｯﾄを書かれると、(一時ﾚｼﾞｽﾀ内の)上位ﾊﾞｲﾄは(下位ﾊﾞｲﾄ書き込みと)同じｼｽﾃﾑ ｸﾛｯｸ周期でOCRnx緩衝部またはOCRnxﾚｼﾞｽﾀのどちらかに複写されます。
16ﾋﾞｯﾄ ﾚｼﾞｽﾀ ｱｸｾｽ法のより多くの情報については「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 90頁

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

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

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

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

19.8. 比較一致出力部
図19-5. 比較一致出力回路図

COMnx1
COMnx0FOCnx

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表しま
す。

波形
生成器

8-bit Data Bus

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

OCnx
D

Q

PORT
D

1
0

OCnx

Q

DDR
D

Q

clkI/O

TCCRnA.COMnx1,0ﾋﾞｯﾄのどちらかが設定(1)されると、標準I/Oﾎﾟｰﾄ機能は波形生成器からの比較出力(OCnx)によって無効にされます。けれどもOCnxﾋﾟﾝの方向(入出力)はﾎﾟｰﾄ ﾋﾟﾝに対するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)によって未だ制御されます。OCnxﾋﾟﾝに対するﾎﾟｰﾄ方向ﾚｼﾞｽﾀのﾋﾞｯﾄ(DDR_OCnx)はOCnx値がﾋﾟﾝで見えるのに先立って出力として設定されなければなりません。このﾎﾟｰﾄの交換機能は一般的に波形生成種別と無関係ですが、いくつかの例外があります。
比較出力ﾋﾟﾝ論理回路の設計は出力が許可される前のOCnx状態の初期化を許します。いくつかのCOMnx1,0ﾋﾞｯﾄ設定が或る種の動作種別に対して予約されることに注意してください。
TCCRnA.COMnx1,0ﾋﾞｯﾄは捕獲入力部での何の効果もありません。

19.8.1. 比較一致出力選択と波形生成波形生成器は標準、CTC、PWM動作でTCCRnA.COMx1,0ﾋﾞｯﾄを違うふうに使います。全ての動作種別に対してTCCRnA.COMx
1,0=00設定は次の比較一致で実行すべきOCnxﾚｼﾞｽﾀの動きがないことを波形生成器へ告げます。比較出力選択の記述も参照してください。
TCCRnA.COMx1,0ﾋﾞｯﾄの状態変更はこのﾋﾞｯﾄが書かれた後の最初の比較一致で有効になります。非PWM動作について、この動作は強制変更0(TCCRnC.FOCx)ｽﾄﾛｰﾌﾞ ﾋﾞｯﾄを使うことによって直ちに効果を得ることを強制できます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 91頁

ATmega328PB
19.9. 動作種別
動作種別、換言するとﾀｲﾏ/ｶｳﾝﾀと比較出力ﾋﾟﾝの動作は波形生成種別(WGMn3～0)ﾋﾞｯﾄと比較出力選択(TCCRnA.COMnx1,0)ﾋﾞｯﾄの組み合わせによって定義されます。比較出力選択ﾋﾞｯﾄは計数順序(動作)に影響を及ぼしませんが、一方波形生成種別ﾋﾞｯﾄは影響を及ぼします。TCCRnA.COMnx1,0ﾋﾞｯﾄは生成されたPWM出力が反転されるべきか、されないべきか(反転または非反転PWM)のどちらかを制御します。非PWM動作に対するTCCRnA.COMnx1,0ﾋﾞｯﾄは比較一致で出力が解除(0)、設定(1)、1/0交互のどれにされるべきかを制御します。
関連ﾘﾝｸ 比較一致出力部
ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ

19.9.1. 標準動作
最も単純な動作種別が標準動作(WGMn3～0=0000)です。この動作種別での計数方向は常に上昇(+)で、ｶｳﾝﾀの解除は実行されません。ｶｳﾝﾀは16ﾋﾞｯﾄ最大値(MAX=$FFFF)を通過すると単に範囲を超え、そしてBOTTOM=$0000から再び始めます。通常動作での
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TIFRn.TOVn)ﾌﾗｸﾞはTCNTnが$0000になる時と同じﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。この場合、TOVnﾌﾗｸﾞは設定(1)のみで解除(0)されないことを除いて第17ﾋﾞｯﾄのようになります。けれどもTOVnﾌﾗｸﾞを自動的に解除(0)するﾀｲﾏ/ｶｳﾝﾀn
溢れ割り込みと組み合わせたﾀｲﾏ/ｶｳﾝﾀの分解能はｿﾌﾄｳｪｱによって増やせます。標準動作での考慮に特別な場合はなく、新しいｶｳﾝﾀ値は何時でも書けます。
捕獲入力部は標準動作での使用が容易です。けれども外部の事象間の最大間隔がﾀｲﾏ/ｶｳﾝﾀの分解能(16ﾋﾞｯﾄ長)を越えてはならないことに気付いてください。事象間の間隔が長すぎる場合、捕獲部に対して分解能を拡張するために、ﾀｲﾏ/ｶｳﾝﾀ溢れ割り込みまたは前置分周器が使われなければなりません。
比較出力部は与えられた或る時間に割り込みを生成するのに使えます。標準動作で波形を生成するのに比較出力を使うのは、それが大変多くのCPU時間を占有するため推奨されません。

19.9.2. 比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作(動作形態4, 図19-6. CTC動作ﾀｲﾐﾝｸﾞ
12、WGMn3～0=0100または1100)ではOCRnAまたOCFnAまたはICFn割り込み要求ﾌﾗｸﾞ設定(TOP値割り込み)
はICRnがｶｳﾝﾀの分解能を操作するのに使われ、ｶ
ｳﾝﾀ(TCNTn)値がOCRnA(WGMn3～0=4)またはICR
TOPn(WGMn3～0=12)のどちらかと一致する時にｶｳﾝﾀがTCNTn$0000に解除されます。OCRnAまたはICRnはｶｳﾝﾀに対するTOP値、従って分解能も定義します。この
動作種別はより大きい比較一致出力周波数の制御を許します。それは外部の出来事の計数操作も簡OCnA(交互)
単にします。
12
3
4
5
周期
CTC動作についてのﾀｲﾐﾝｸﾞ図が右で示されます。ｶ 注: COMnA1,0=01
ｳﾝﾀ(TCNTn)値はOCRnAまたはICRnのどちらかで比較一致が起こるまで増加し、そしてその後にTCN 注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での小文字の'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)を表します。
Tnは解除($0000)されます。
実際のCTC動作形態に依存して、OCFnAまたはICFnのどちらかを使うことにより、ｶｳﾝﾀ値がTOP値に到達する時毎に割り込みが生成できます。割り込みが許可されるなら、割り込み処理ﾙｰﾁﾝはTOP値を更新するのに使えます。
注: 前置分周なしまたは低い前置分周値でｶｳﾝﾀが走行している間にBOTTOMと近い値にTOPを変更するのは、CTC動作が2重緩衝を提供しないために注意して行わなければなりません。OCRnAまたはICRnに書かれた新しい値がTCNTnの現在値よりも低い(小さい)場合、ｶｳﾝﾀは(その回の)比較一致を失います。その後、ｶｳﾝﾀは比較一致が起こるのに先立って、最大値($FFFF)へ計
数して$0000から循環を始めます。
多くの場合でこの特性は好ましくありません。OCRnAが2重緩衝されるので、代替はTOPを定義するのにOCRnAを用いる高速PWM
動作(WGMn3～0=1111)を使うことでしょう。
CTC動作で波形出力を生成するため、OCnA出力は比較出力選択(COMnA1,0)ﾋﾞｯﾄを交互動作(=01)に設定することによって各比較一致での論理ﾚﾍﾞﾙ交互切替に設定できます。OCnA値はそのﾋﾟﾝに対するﾃﾞｰﾀ方向が出力(DDR_OCnA=1)に設定されない限り、
ﾎﾟｰﾄ ﾋﾟﾝで見えないでしょう。生成された波形はOCRnAが0($0000)に設定される時に fOCnA= fclk_I/O/2の最大周波数を得ます。生成波形周波数は次式によって定義されます。
fOCnA =

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

注: ・ ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での小文字の'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)を表します。
・ Nは前置分周数(1,8,64,256,1024)を表します

標準動作と同じように、ﾀｲﾏ/ｶｳﾝﾀ溢れ割り込み要求(TOVn)ﾌﾗｸﾞはｶｳﾝﾀがMAXから$0000へ計数するのと同じﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 92頁

ATmega328PB
19.9.3. 高速PWM動作
高速ﾊﾟﾙｽ幅変調(PWM)動作(動作形態5,6,7,14,15、WGMn3～0=0101,0110,0111,1110,1111)は高周波数PWM波形生成選択を提供します。高速PWMはそれが単一傾斜(鋸波)動作であることによって他のPWM動作と異なります。ｶｳﾝﾀはBOTTOMからTOPまで計数し、その後BOTTOMから再び始めます。非反転比較出力動作(COMnx1,0=10)での比較出力(OCnx)はTCNTnとOCRnx間の比較
一致で解除(0)され、BOTTOMで設定(1)されます。反転出力動作(COMnx1,0=11)の出力は比較一致で設定(1)され、BOTTOMで解除(0)されます。単一傾斜動作のため、高速PWM動作の動作周波数は両傾斜(三角波)動作を使う位相基準や位相/周波数基準
PWM動作よりも2倍高くできます。この高い周波数は電力調節、整流、D/A変換に対して高速PWM動作を都合よく適合させます。高
い周波数は物理的に小さな外部部品(ｺｲﾙやｺﾝﾃﾞﾝｻ)を許し、従ってｼｽﾃﾑ総費用を削減します。
高速PWMのPWM分解能は8,9,10ﾋﾞｯﾄに固定、若しくはOCRnAかICRnのどちらかによって定義できます。許された最小分解能は2ﾋﾞｯﾄ(OCRnAまたはICRnﾚｼﾞｽﾀが$0003設定)、最大分解能は16ﾋﾞｯﾄ(OCRnAまたはICRnﾚｼﾞｽﾀがMAX設定)です。ﾋﾞｯﾄでのPWM分
解能は次式を使うことによって計算できます。
高速PWM動作でのｶｳﾝﾀはｶｳﾝﾀ値が固定値$00FF,$01FF,$03FF(WGMn3～0=0101,0110,0111)、ICRnlog (TOP＋1)
値(WGMn3～0=1110)またはOCRnA値(WGMn3～0=1111)のどれかと一致するまで増加されます。そして RFPWM =log 2
ｶｳﾝﾀは(一致の)次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で解除($0000)されます。TOPを定義するのにOCRnAかICR
nを使う高速PWM動作のﾀｲﾐﾝｸﾞ図は下で示されます。TCNTn値はﾀｲﾐﾝｸﾞ図で単一傾斜動作(鋸波)を表す折れ線ｸﾞﾗﾌとして示されます。本図は非反転と反転のPWM出力を含みます。細い赤線はOCRnx値を示し、TCNTn値との交点(接点)がTCNTnとOCRnx間の比較一致を示します(訳注:図補正に伴い本行若干変更)。比較割り込み要求ﾌﾗｸﾞ(OCFnx)は比較一致が起こると設定(1)されます。
ﾀｲﾏ/ｶｳﾝﾀ溢れ割り込み要求(TOVn)ﾌﾗｸﾞはｶｳﾝ 図19-7. 高速PWM動作ﾀｲﾐﾝｸﾞ
ﾀがTOPに到達する時毎に設定(1)されます。加
OCRnx/TOPの更新、TOVnとOCFnAまたは
えて、OCRnAかICRnのどちらかがTOP値を定義
ICFn割り込み要求ﾌﾗｸﾞ設定(TOP値割り込み)するのに使われると、OCFnAまたはICFn割り込
み要求ﾌﾗｸﾞはTOVnが設定(1)されるのと同じﾀｲ
OCRnx
ﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。これらの
TCNTn
割り込みの1つが許可されるなら、その割り込み処理ﾙｰﾁﾝはTOPと比較値を更新するのに使えます。
OCnx(非反転)
TOP値を変更するとき、ﾌﾟﾛｸﾞﾗﾑは新TOP値が全(COMnx1,0=10)ての比較ﾚｼﾞｽﾀ値と等しいか大きいことを保証しOCnx(反転)(COMnx1,0=11)
なければなりません。TOP値が何れかの比較ﾚｼﾞ
周期
1
2
3
4
5 6
7
8
ｽﾀよりも小さな場合、TCNTnとそのOCRnx間で比較一致は決して起きません。固定TOP値を使 注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,
う場合、どのOCRnxが書かれる時も、未使用ﾋﾞｯﾄ4)、'x'は比較出力部(AまたはB)を表します。
が0で隠(に置換)されることに注意してください。
ICRnがTOP値を定義するのに使われるとき、ICRnを更新する手順はOCRnAの更新と異なります。ICRnは2重緩衝されません。これは前置分周なしまたは低い前置分周値でｶｳﾝﾀが走行している時にICRnが小さな値に変更される場合、書かれた新しいICRn値がTCNTnの現在値よりも小さくなる危険を意味します。結果として、ｶｳﾝﾀは(その回の)TOP値での比較一致を失います。その後のｶｳﾝ
ﾀは比較一致を起こせるのに先立って、MAX値($FFFF)へそして次に$0000から始める計数をしなければならないでしょう。しかし、
OCRnAは2重緩衝されます。この特徴は何時でも書かれることをOCRnAのI/O位置に許します。OCRnA I/O位置が書かれる時に書かれた値はOCRnA緩衝部に置かれます。OCRnA(比較)ﾚｼﾞｽﾀはその後にTCNTnがTOPと一致した次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期に
OCRnA緩衝部の値で更新されます。この更新はTCNTnの解除($0000)やTOVnの設定(1)と同じﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で行われます。
TOPを定義するのにICRnを使うことは決まったTOP値を使う時に上手くいきます。ICRnを使うことにより、OCnAでのPWM出力を生成するためにOCRnAが自由に使えます。けれども基準PWM周波数が(TOP値を変更することによって)動的に変更される場合、OCRnA
が2重緩衝機能のため、TOPとしてOCRnAを使うことは明らかに良い選択です。
高速PWM動作での比較部はOCnxﾋﾟﾝでのPWM波形の生成を許します。COMnx1,0ﾋﾞｯﾄの'10'書き込みは非反転PWM出力を作成
し、反転PWM出力はCOMnx1,0の'11'書き込みによって生成できます。実際のOCnx値はそのﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向が出力(D
DR_OCnx=1)として設定される場合にだけ見えるでしょう。PWM波形はTCNTnとOCRnx間の比較一致でOCnx(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが解除($0000、TOPからBOTTOMへ変更)されるﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期でのOCnxﾚｼﾞｽﾀを解除(0)(または設定(1))することによって生成されます。
PWM出力周波数は次式によって計算できます。
fOCnxPWM =注: ・ ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部
fclk_I/O(AまたはB)を表します。
N×(1＋TOP)・ Nは前置分周数(1,8,64,256,1024)を表します

OCRnxの両端値は高速PWM動作でPWM波形出力を生成する時の特別な場合にあたります。OCRnxがBOTTOM($0000)に等しく設
定されると、出力はTOP+1 ﾀｲﾏ/ｶｸﾝﾀ ｸﾛｯｸ周期毎の狭いｽﾊﾟｲｸ(ﾊﾟﾙｽ)になるでしょう。TOPに等しいOCRnx設定は(COMnx1,0ﾋﾞｯﾄ
によって制御される出力極性に依存して)定常的なLowまたはHigh出力に終わるでしょう。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 93頁

ATmega328PB
ﾃﾞｭｰﾃｨ比50%の周波数の波形出力は高速PWM動作で比較一致毎に論理反転するOCnA選択(COMnA1,0=01)によって達成できます。これはTOP値を定義するのにOCRnAが使われる(WGMn3～0=1111)の場合にだけ適用されます。生成された波形はOCRnAが0($0000)に設定される時に fOCnA= fclk_I/O/2の最大周波数でしょう。この特性は高速PWM動作で比較出力部の2重緩衝機能が許可されることを除いて、CTC動作でのOCnA交互出力(COMnA1,0=01)と同じです。

19.9.4. 位相基準PWM動作
位相基準ﾊﾟﾙｽ幅変調(PWM)動作(動作形態1,2,3,10,11、WGMn3～0=0001,0010,0011,1010,1011)は高分解能で正しい位相のPWM
波形生成選択を提供します。位相基準PWM動作は両傾斜(三角波)動作を基準とした位相/周波数基準PWMと似ています。ｶｳﾝﾀは
BOTTOM($0000)からTOPへ、そしてその後にTOPからBOTTOMへを繰り返し計数します。非反転比較出力動作(COMnx1,0=10)での比較出力(OCnx)は上昇計数中のTCNTnとOCRnx間の比較一致で解除(0)され、下降計数中の比較一致で設定(1)されます。反転
出力動作(COMnx1,0=11)での動作は逆にされます。両傾斜(三角波)動作は単一傾斜(鋸波)動作よりも低い最大動作周波数になります。けれども両傾斜(三角波)PWM動作の対称特性のため、これらの動作種別は電動機制御の応用に好まれます。

位相基準PWM動作のPWM分解能は8,9,10ﾋﾞｯﾄ固定、またはOCRnAかICRnのどちらかによって定義でlog(TOP＋1)
きます。許された最小分解能は2ﾋﾞｯﾄ(OCRnAまたはICRnが$0003設定)、最大分解能は16ﾋﾞｯﾄ(OCRnA RPCPWM =log 2またはICRnがMAX設定)です。ﾋﾞｯﾄでのPWM分解能は右式を使うことによって計算できます。
位相基準PWM動作でのｶｳﾝﾀはｶｳﾝﾀ値が固定値$00FF,$01FF,$03FF(WGMn3～0=0001,0010,0011)、ICRn値(WGMn3～0=1010)またはOCRnA値(WGMn3～0=1011)のどれかと一致するまで増加されます。ｶｳﾝﾀはTOPに到達したその時に計数方向を変更します。
このTCNTn値は1ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期間TOPと等しくなります。TOPを定義するのにOCRnAかICRnを使う位相基準PWM動作のﾀｲ
ﾐﾝｸﾞ図は下で示されます。TCNTn値はﾀｲﾐﾝｸﾞ図で両傾斜動作(三角波)を表す折れ線ｸﾞﾗﾌとして示されます。この図は非反転と反転のPWM出力を含みます。細い赤線はOCRnx値を示し、TCNTn値との交点(接点)がTCNTnとOCRnx間の比較一致を示します(訳注:
図補正に伴い本行若干変更)。比較割り込み要求ﾌﾗｸﾞ(OCFnx)は比較一致が起こると設定(1)されます。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOVn)ﾌﾗｸﾞはｶｳﾝﾀが 図19-8. 位相基準PWM動作ﾀｲﾐﾝｸﾞ
BOTTOMに到達する時毎に設定(1)さOCRnx/TOPの更新、OCFnAまたはICFn
TOVn割り込み要求ﾌﾗｸﾞ設定れます。OCRnAかICRnのどちらかがT
割り込み要求ﾌﾗｸﾞ設定(TOP値割り込み)(BOTTOM値割り込み)
OP値を定義するのに使われる時にOC
FnAまたはICFn割り込み要求ﾌﾗｸﾞはO
CRnxﾚｼﾞｽﾀが(TOPに於いて)2重緩衝
TOP値で更新されるのと同じﾀｲﾏ/ｶｳﾝﾀ ｸ
OCRnx
ﾛｯｸ周期によって設定(1)されます。こTCNTn
れらの割り込み要求ﾌﾗｸﾞはｶｳﾝﾀがTO
PまたはBOTTOM値に到達する毎に割OCnx(非反転)
り込みを発生するのに使えます。
(COMnx1,0=10)
OCnx(反転)(COMnx1,0=11)
1
2
3
4
周期
注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
TOP値を変更するとき、ﾌﾟﾛｸﾞﾗﾑは新TOP値が全ての比較ﾚｼﾞｽﾀ値と等しいか大きいことを保証しなければなりません。TOP値が何れかの比較ﾚｼﾞｽﾀよりも小さな場合、TCNTnとそのOCRnx間で比較一致は決して起きません。固定TOP値を使う場合、どのOCRnxが書かれる時も、未使用ﾋﾞｯﾄが0で隠(に置換)されることに注意してください。ﾀｲﾐﾝｸﾞ図の第3周期によって図示されるように、ﾀｲﾏ/ｶｳﾝ
ﾀが位相基準PWM動作で走行中にTOPを積極的に変更するのは、非対称出力で終わることが有り得ます。これに対する理由は
OCRnxﾚｼﾞｽﾀの更新時に見出せます。OCRnx更新はTOPで起きるので、PWM周期はTOPで始まりそして終わります。これは下降傾
斜長が直前のTOP値によって決定され、一方上昇傾斜長は新しいTOP値で決定されることを意味します。これら2つの値(TOP)が違
うとき、その周期の2つの傾斜長は異なるでしょう。この長さの相違が出力での非対称な結果を生じます。
ﾀｲﾏ/ｶｳﾝﾀが走行中にTOP値を変更する場合、位相基準PWM動作の代わりに位相/周波数基準PWM動作を使うことが推奨されます。一定のTOP値を使うとき、2つの動作種別間に現実的な違いはありません。
位相基準PWM動作での比較部はOCnxﾋﾟﾝでのPWM波形の生成を許します。COMnx1,0ﾋﾞｯﾄの'10'書き込みは非反転PWM出力を作成し、反転PWM出力はCOMnx1,0の'11'書き込みで生成できます。実際のOCnx値はそのﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向が出力(DD
R_OCnx=1)として設定される場合にだけ見えるでしょう。PWM波形はｶｳﾝﾀが増加する時のTCNTnとOCRnx間の比較一致でOCnx(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが減少する時のTCNTnとOCRnx間の比較一致でOCnxﾚｼﾞｽﾀを解除(0)(または設定(1))することによって生成されます。位相基準PWMを使う時の出力に対するPWM周波数は次式によって計算できます。
fOCnxPCPWM =fclk_I/O
2×N×TOP

注: ・ ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
・ Nは前置分周数(1,8,64,256,1024)を表します

OCRnxの両端値は位相基準PWM動作でPWM波形出力を生成する時の特別な場合にあたります。非反転PWM動作ではOCRnxが
BOTTOMに等しく設定されると出力は定常的なLow、TOPに等しく設定されると定常的なHighになるでしょう。反転PWMに対する出力は逆の論理値になります。TOP値定義にOCRnAが使われ(WGMn3～0=1011)、COMnA1,0=01なら、OCnA出力はﾃﾞｭｰﾃｨ比50%で交互に変化します。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 94頁

ATmega328PB
19.9.5. 位相/周波数基準PWM動作
位相/周波数基準ﾊﾟﾙｽ幅変調(PWM)動作(動作形態8,9、WGMn3～0=1000,1001)は高分解能で正しい位相と周波数のPWM波形生
成選択を提供します。位相/周波数基準PWM動作は両傾斜(三角波)動作を基準とした位相基準PWMと似ています。ｶｳﾝﾀはBOTT
OM($0000)からTOPへ、そしてその後にTOPからBOTTOMへを繰り返し計数します。非反転比較出力動作(COMnx1,0=10)での比較
出力(OCnx)は上昇計数中のTCNTnとOCRnx間の比較一致で解除(0)され、下降計数中の比較一致で設定(1)されます。反転出力
動作(COMnx1,0=11)での動作は逆にされます。両傾斜(三角波)動作は単一傾斜(鋸波)動作よりも低い最大動作周波数になります。
けれども両傾斜(三角波)PWM動作の対称特性のため、これらの動作種別は電動機制御の応用に好まれます。
位相基準と位相/周波数基準PWM動作間の主な違いはOCRnxﾚｼﾞｽﾀがOCRnx緩衝部によって更新される時(訳補:TOPとBOTTO
M)です(図19-8.と下のﾀｲﾐﾝｸﾞ図をご覧ください)。
位相/周波数基準PWM動作のPWM分解能はOCRnAかICRnのどちらかで定義できます。許された最log(TOP＋1)
小分解能は2ﾋﾞｯﾄ(OCRnAまたはICRnが$0003設定)、最大分解能は16ﾋﾞｯﾄ(OCRnAまたはICRnが RPFCPWM =log 2
MAX設定)です。ﾋﾞｯﾄでのPWM分解能は右式を使うことによって計算できます。
位相/周波数基準PWM動作でのﾀｲﾏ/ｶｳﾝﾀはﾀｲﾏ/ｶｳﾝﾀ値がICRn値(WGMn3～0=1000)かOCRnA値(WGMn3～0=1001)のどちらかと一致するまで増加されます。ｶｳﾝﾀはTOPに到達したその時に計数方向を変更します。このTCNTn値は1ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期間、TOPと等価です。位相/周波数基準PWM動作のﾀｲﾐﾝｸﾞ図は下で示されます。この図はOCRnAかICRnがTOPを定義するのに使われる時の位相/周波数基準PWM動作を示します。TCNTn値はﾀｲﾐﾝｸﾞ図で両傾斜動作(三角波)を表す折れ線ｸﾞﾗﾌとして示されます。この図は非反転と反転のPWM出力を含みます。細い赤線はOCRnx値を示し、TCNTn値との交点(接点)がTCNTnとOCRnx間の比較
一致を示します (訳注:図補正に伴い本行若干変更)。比較割り込み要求ﾌﾗｸﾞ(OCFnx)は比較一致が起こると設定(1)されます。
ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOVn)ﾌﾗｸﾞはOCRnx 図19-9. 位相/周波数基準PWM動作ﾀｲﾐﾝｸﾞ
ﾚｼﾞｽﾀが(BOTTOMに於いて)2重緩衝
OCFnAまたはICFn割り込み
OCRnx/TOPの更新、TOVn割り込み
値で更新されるのと同じﾀｲﾏ/ｶｳﾝﾀ ｸ
要求ﾌﾗｸﾞ設定(TOP値割り込み)
要求ﾌﾗｸﾞ設定(BOTTOM値割り込み)
ﾛｯｸ周期で設定(1)されます。OCRnAかICRnのどちらかがTOP値を定義するのに使われると、OCFnAまたはICFn割り
TOP
込み要求ﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀがTOPに
OCRnx
到達する時毎に設定(1)されます。これ
TCNTn
らの割り込み要求ﾌﾗｸﾞはｶｳﾝﾀがTOP
値またはBOTTOM値に到達する毎にOCnx(非反転)
割り込みを発生するのに使うことができ(COMnx1,0=10)
ます。
OCnx(反転)(COMnx1,0=11)
1
2
3
4
周期
注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較
出力部(AまたはB)を表します。
TOP値を変更するとき、ﾌﾟﾛｸﾞﾗﾑは新TOP値が全ての比較ﾚｼﾞｽﾀ値と等しいか大きいことを保証しなければなりません。TOP値が何れかの比較ﾚｼﾞｽﾀよりも小さな場合、TCNTnとそのOCRnx間で比較一致は決して起きません。
上のﾀｲﾐﾝｸﾞ図で示されるように、生成される出力は位相基準PWM動作と異なり、全ての周期で対称です。OCRnxﾚｼﾞｽﾀがBOTTO
Mで更新されるため、上昇と下降の傾斜長は常に等しくなります。これが対称出力ﾊﾟﾙｽ、従って正しい周波数を与えます。
TOPを定義するのにICRnを使うことは決まったTOP値を使う時に上手くいきます。ICRnを使うことにより、OCnAでのPWM出力を生成するためにOCRnAが自由に使えます。けれども基準PWM周波数が(TOP値を変更することによって)動的に変更される場合、OCRnA
が2重緩衝機能のため、TOPとしてOCRnAを使うことは明らかに良い選択です。
位相/周波数基準PWM動作での比較部はOCnxﾋﾟﾝでのPWM波形の生成を許します。COMnx1,0ﾋﾞｯﾄを'10'に設定することは非反転
PWM出力を作成し、反転PWM出力はCOMnx1,0を'11'に設定することで生成できます(TCCRnA.COMnx1,0の記述をご覧ください)。
実際のOCnx値はそのﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向が出力(DDR_OCnx=1)として設定される場合にだけ見えるでしょう。PWM波形はｶｳﾝﾀが増加する時のTCNTnとOCRnx間の比較一致でOCnx(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが減少する時のTCNTnとOCRnx間の比較一致でOCnxﾚｼﾞｽﾀを解除(0)(または設定(1))することによって生成されます。位相/周波数基準PWMを使う時の出力に対するPWM周波数は次式によって計算できます。
fOCnxPFCPWM =fclk_I/O
2×N×TOP

注: ・ ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出
力部(AまたはB)を表します。
・ Nは前置分周数(1,8,64,256,1024)を表します

OCRnxの両端値は位相/周波数基準PWM動作でPWM波形出力を生成する時の特別な場合にあたります。非反転PWM動作では
OCRnxがBOTTOMに等しく設定されると出力は定常的なLow、TOPに等しく設定されると定常的なHighになるでしょう。反転PWMに対する出力は逆の論理値になります。TOP値定義にOCRnAが使われ(WGMn3～0 =1001)、COMnA1,0=01なら、OCnA出力はﾃﾞｭｰ
ﾃｨ比50%で交互に変化します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 95頁

ATmega328PB
19.10. ﾀｲﾏ/ｶｳﾝﾀのﾀｲﾐﾝｸﾞ
このﾀｲﾏ/ｶｳﾝﾀは同期設計で、従ってﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(clkTn)が下図のｸﾛｯｸ許可信号として示されます。この図は割り込みﾌﾗｸﾞが設定(1)される時、そしてOCRnxﾚｼﾞｽﾀがOCRnx緩衝部値で更新される時(2重緩衝を使う動作種別のみ)の情報を含みます。最初の図はOCFnxの設定についてのﾀｲﾐﾝｸﾞ図を示します。
図19-10. 前置分周なし(1/1)のﾀｲﾏ/ｶｳﾝﾀ、OCFnx設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/1)
TCNTn

OCRnx-1

OCRnx

OCRnx

OCRnx+1

OCRnx+2

OCRnx値OCFnx

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
次図は同じﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを示しますが、前置分周器が許可されています。
図19-11. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCFnx設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNTn

OCRnx-1

OCRnx

OCRnx

OCRnx+1

OCRnx+2

OCRnx値OCFnx

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
次図は各動作種別でのTOP近辺の計数手順を示します。位相/周波数基準PWM動作使用時のOCRnxﾚｼﾞｽﾀはBOTTOMで更新されます。ﾀｲﾐﾝｸﾞ図は同じになりますが、当然TOPはBOTTOMで、TOP-1はBOTTOM+1でなどのように置き換えられます。BOTTOM
でTOVnを設定(1)する動作種別についても、同様な名称変更が適用されます。
図19-12. 前置分周なし(1/1)のﾀｲﾏ/ｶｳﾝﾀ、TOP近辺 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/1)
TCNTn (CTC,FPWM)

TOP-1

TOP

BOTTOM

BOTTOM+1

TCNTn (PCPWM,PFCPWM)
TOVn(FPWM)
ICFn(TOP使用時)
OCRnx(TOP更新時)

TOP-1

TOP

TOP-1

TOP-2

旧OCRnx値

新OCRnx値

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。
次図は同じﾀｲﾐﾝｸﾞ ﾃﾞｰﾀを示しますが、前置分周器が許可されています。
図19-13. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、TOP近辺 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNTn (CTC,FPWM)

TOP-1

TOP

BOTTOM

BOTTOM+1

TCNTn (PCPWM,PFCPWM)
TOVn(FPWM)
ICFn(TOP使用時)
OCRnx(TOP更新時)

TOP-1

TOP

TOP-1

TOP-2

旧OCRnx値

新OCRnx値

注: ﾚｼﾞｽﾀとﾋﾞｯﾄの名前での'n'は装置番号(ﾀｲﾏ/ｶｳﾝﾀ1,3,4に対してn=1,3,4)、'x'は比較出力部(AまたはB)を表します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 96頁

ATmega328PB
19.11. 16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4用ﾚｼﾞｽﾀ19.11.1. TCCRnA - ﾀｲﾏ/ｶｳﾝﾀn制御ﾚｼﾞｽﾀA (Timer/Counter n Control Register A)
名称 : TCCR1A : TCCR3A : TCCR4A
変位 : $80
: $90
: $A0
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

COMnA1,0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

5

4

COMnB1,0
R/W
0

R/W
0

3

2

-

-

R
0

R
0

1

0

WGMn1,0
R/W
0

R/W
0

● ﾋﾞｯﾄ7,6 - COMnA1,0 : 比較A出力選択 (Compare Output Mode for Channel A)● ﾋﾞｯﾄ5,4 - COMnB1,0 : 比較B出力選択 (Compare Output Mode for Channel B)

COMnA1,0とCOMnB1,0は各々OCnAとOCnB比較出力ﾋﾟﾝの動作を制御します。COMnA1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、
OCnA出力はそのI/Oﾋﾟﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。COMnB1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、OCnB出力はそのI/Oﾋﾟﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども出力駆動部を許可するため、OCnA
またはOCnBﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OCnAまたはOCnBがﾋﾟﾝに接続されるとき、COMnx1,0ﾋﾞｯﾄの機能はWGMn3～0ﾋﾞｯﾄ設定に依存します。下表はWGMn3～0ﾋﾞｯﾄが標
準動作またはCTC動作(つまり非PWM)に設定される時のCOMnx1,0ﾋﾞｯﾄ機能を示します。
表19-2. 非PWM動作での比較出力選択 (注: nは1,3または4、xはAまたはB)
COMnx1 COMnx0
意味0
標準ﾎﾟｰﾄ動作 (OCnx切断)0
比較一致でOCnxﾋﾟﾝ ﾄｸﾞﾙ(交互)出力01
1
比較一致でOCnxﾋﾟﾝ Lowﾚﾍﾞﾙ出力0
比較一致でOCnxﾋﾟﾝ Highﾚﾍﾞﾙ出力
11
下表はWGMn3～0ﾋﾞｯﾄが高速PWM動作に設定される時のCOMx1,0ﾋﾞｯﾄ機能を示します。
表19-3. 高速PWM動作での比較出力選択 (注: nは1,3または4、xはAまたはB、Xは0または1)
COMnx1 COMnx0
意味0
標準ﾎﾟｰﾄ動作 (OCnx切断)
0
WGMn3～0=111X: 比較一致でOCnAﾋﾟﾝ ﾄｸﾞﾙ(交互)出力、OCnBは標準ﾎﾟｰﾄ動作(OCnB切断)
01
WGMn3～0上記以外 : 標準ﾎﾟｰﾄ動作 (OCnx切断)1
比較一致でLow、BOTTOMでHighをOCnxﾋﾟﾝへ出力 (非反転動作)
0
比較一致でHigh、BOTTOMでLowをOCnxﾋﾟﾝへ出力 (反転動作)
11
注: COMnx1が設定(1)され、OCRnxがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、BO
TTOMでの設定(1)または解除(0)は実行されます。詳細については「高速PWM動作」を参照してください。
下表はWGMn3～0ﾋﾞｯﾄが位相基準または位相/周波数基準PWM動作に設定される時のCOMnx1,0ﾋﾞｯﾄ機能を示します。
表19-4. 位相基準または位相/周波数基準PWM動作での比較出力選択 (注: nは1,3または4、xはAまたはB、Xは0または1)
COMnx1 COMnx0
意味0
標準ﾎﾟｰﾄ動作 (OCnx切断)
0
WGMn3～0=10X1: 比較一致でOCnAﾋﾟﾝ ﾄｸﾞﾙ(交互)出力、OCnBは標準ﾎﾟｰﾄ動作(OCnB切断)
01
WGMn3～0上記以外 : 標準ﾎﾟｰﾄ動作 (OCnx切断)
10
上昇計数時の比較一致でLow、下降計数時の比較一致でHighをOCnxﾋﾟﾝへ出力
1
上昇計数時の比較一致でHigh、下降計数時の比較一致でLowをOCnxﾋﾟﾝへ出力1
注: COMnx1が設定(1)され、OCRnxがTOPと等しい時に特別な状態が起きます。詳細については「位相基準PWM動作」を参照してください。

(訳注) 原書で個別記載の各ﾚｼﾞｽﾀを同種毎に纏めました。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 97頁

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

ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCRnB)で得られるWGMn3,2ﾋﾞｯﾄと組み合わせたこれらのﾋﾞｯﾄはｶｳﾝﾀの計数順序(方向)、最大計数(TOP)
値供給元、使われるべき波形生成のどの形式かを制御します。ﾀｲﾏ/ｶｳﾝﾀ部によって支援される動作種別は標準動作(ｶｳﾝﾀ)、比較
一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作と3形式のﾊﾟﾙｽ幅変調(PWM)動作です。「動作種別」をご覧ください。
表19-5. 波形生成種別選択
TOVn
WGMn2 WGMn1 WGMn0
OCRnx
番号 WGMn3
ﾀｲﾏ/ｶｳﾝﾀ動作種別
TOP値
設定時(CTC1) (PWM11) (PWM10)
更新時
標準動作
0
即値
MAX
0
0
0
0
$FFFF
8ﾋﾞｯﾄ位相基準PWM動作
1
TOP
0
0
0
1
$00FF
BOTTOM
9ﾋﾞｯﾄ位相基準PWM動作
2
TOP
0
0
1
0
$01FF
BOTTOM
10ﾋﾞｯﾄ位相基準PWM動作
3
TOP
0
0
1
1
$03FF
BOTTOM40001
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作
OCRnA
即値
MAX
5
0
1
0
1
8ﾋﾞｯﾄ高速PWM動作$00FF BOTTOM
TOP
6
0
1
1
0
9ﾋﾞｯﾄ高速PWM動作$01FF BOTTOM
TOP
7
0
1
1
1
10ﾋﾞｯﾄ高速PWM動作$03FF BOTTOM
TOP
8
1
0
0
0
位相/周波数基準PWM動作
ICRn BOTTOM BOTTOM
9
1
0
0
1
位相/周波数基準PWM動作
OCRnA BOTTOM BOTTOM
10
1
0
1
0
位相基準PWM動作
ICRnTOP
BOTTOM1110
11
位相基準PWM動作
OCRnATOP
BOTTOM121
100
比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作
ICRn
即値
MAX
13
1
1
0
1
(予約)
14
1
1
1
0
高速PWM動作
ICRn BOTTOM
TOP
15
1
1
1
1
高速PWM動作OCRnA BOTTOM
TOP
注: ・ CTC1とPWM11,0ﾋﾞｯﾄ定義名は旧名です。WGMn2～0定義を使ってください。しかし、これらのﾋﾞｯﾄの機能と位置は旧版のﾀｲﾏ/ｶｳﾝﾀと一致します。
・ n=1,3,4

19.11.2. TCCRnB - ﾀｲﾏ/ｶｳﾝﾀn制御ﾚｼﾞｽﾀB (Timer/Counter n Control Register B)
名称 : TCCR1B : TCCR3B : TCCR4B
変位 : $81
: $91
: $A1
ﾘｾｯﾄ : $00
特質 : -

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

ICNCn

ICESn

-

R/W
0

R/W
0

R
0

4

3

2

WGMn3,2
R/W
0

R/W
0

1

0

CSn2～0
R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7 - ICNCn : 捕獲起動入力1雑音消去許可 (Input Capture1 Noise Canceler)

このﾋﾞｯﾄを(1に)設定することが捕獲起動入力雑音消去器を活性(有効)にします。雑音消去器が有効にされると、捕獲起動入力(ICPn)ﾋﾟﾝからの入力が濾波されます。この濾波器機能はそれが出力を更新するのに、連続4回等しく評価されたICPnﾋﾟﾝの採取を必要とします。雑音消去器が許可されると、捕獲入力はそれによって4発振器(ｼｽﾃﾑ ｸﾛｯｸ)周期遅らされます。
● ﾋﾞｯﾄ6 - ICESn : 捕獲起動入力端選択 (Input Capture1 Edge Select)

このﾋﾞｯﾄは出来事での捕獲を起動するのに使われる捕獲起動入力(ICPn)ﾋﾟﾝのどちらかのｴｯｼﾞを選択します。ICESnﾋﾞｯﾄが0を書かれると起動動作として下降(負)端が使われ、ICESnﾋﾞｯﾄが1を書かれると上昇(正)端が捕獲を起動します。
捕獲がICESn設定に従って起動されると、ｶｳﾝﾀ値が捕獲ﾚｼﾞｽﾀ(ICRn)に複写されます。この出来事は捕獲入力割り込み要求ﾌﾗｸﾞ(ICFn)も設定(1)し、そしてこれは、この割り込みが許可されていれば捕獲入力割り込みを起こすのに使えます。
ICRnがTOP値として使われると(TCCRnAとTCCRnBに配置されたWGMn3～0ﾋﾞｯﾄの記述をご覧ください)、ICPnが切り離され、従って捕獲入力機能は禁止されます。
● ﾋﾞｯﾄ4,3 - WGMn3,2 : 波形生成種別 (Waveform Generation Mode)

ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀA(TCCRnA)を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 98頁

ATmega328PB● ﾋﾞｯﾄ2～0 - CSn2～0 : ｸﾛｯｸ選択 (Clock Select)

3つのｸﾛｯｸ選択ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ(TCNTn)によって使われるべきｸﾛｯｸ元を選択します。図19-10.と図19-11.を参照してください。
表19-6. ﾀｲﾏ/ｶｳﾝﾀn入力ｸﾛｯｸ選択
CSn2
CSn1
CSn0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

意味
停止 (ﾀｲﾏ/ｶｳﾝﾀn動作停止)
clkI/O (前置分周なし)
clkI/O/8 (8分周)clkI/O/64 (64分周)
clkI/O/256 (256分周)
clkI/O/1024 (1024分周)Tnﾋﾟﾝの下降端 (外部ｸﾛｯｸ)
Tnﾋﾟﾝの上昇端 (外部ｸﾛｯｸ)19.11.3. TCCRnC - ﾀｲﾏ/ｶｳﾝﾀn制御ﾚｼﾞｽﾀC (Timer/Counter n Control Register C)
名称 : TCCR1C : TCCR3C : TCCR4C
変位 : $82
: $92
: $A2
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

FOCnA

FOCnB

-

-

-

-

-

-

R/W
0

R/W
0

R
0

R
0

R
0

R
0

R
0

R
0

● ﾋﾞｯﾄ7 - FOCnA : OCnA強制変更 (Force Output Compare for Channel A)● ﾋﾞｯﾄ6 - FOCnB : OCnB強制変更 (Force Output Compare for Channel B)

FOCnA/FOCnBﾋﾞｯﾄはWGMn3～0ﾋﾞｯﾄが非PWM動作を指示する時だけ有効です。FOCnA/FOCnBﾋﾞｯﾄに論理1を書くと波形生成部で直ちに比較一致が強制されます。OCnx出力はCOMnx1,0ﾋﾞｯﾄ設定に従って変更されます。FOCnA/FOCnBﾋﾞｯﾄがｽﾄﾛｰﾌﾞとして実行されることに注意してください。それによって強制された比較の効果を決めるのはCOMnx1,0ﾋﾞｯﾄに存在する値です。
FOCnA/FOCnBｽﾄﾛｰﾌﾞは何れの割り込みの生成もTOPとしてOCRnAを使う比較一致ﾀｲﾏ解除(CTC)動作でのﾀｲﾏ/ｶｳﾝﾀの解除($0000)も行いません。FOCnA/FOCnBﾋﾞｯﾄは常に0として読みます。

19.11.4. TCNTnH,TCNTnL - TCn計数値上位/下位ﾊﾞｲﾄ (TCn Counter Value Low and High byte)
名称 : TCNT1HとTCNT1L (TCNT1) : TCNT3HとTCNT3L (TCNT3) : TCNT4HとTCNT4L (TCNT4)
変位 : $84
: $94
: $A4
ﾘｾｯﾄ : $0000
特質 : TCNTnHとTCNTnLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のTCNTnを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ﾋﾞｯﾄ

15

14

13

12

11

10

9

8

TCNTn15～8
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

TCNTn7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ15～0 - TCNTn15～0 : ﾀｲﾏ/ｶｳﾝﾀn計数値 (Timer/Counter n Counter Value)

2つのﾀｲﾏ/ｶｳﾝﾀI/O位置(TCNTnHとTCNTnLを合わせたTCNTn)は、読み書き両方についてﾀｲﾏ/ｶｳﾝﾀ部の16ﾋﾞｯﾄ ｶｳﾝﾀに直接ｱ
ｸｾｽします。CPUがこれらのﾚｼﾞｽﾀをｱｸｾｽする時に上位と下位の両ﾊﾞｲﾄが同時に読み書きされるのを保証するため、このｱｸｾｽは8ﾋﾞｯﾄ上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)を使って実行されます。この一時ﾚｼﾞｽﾀは他の全ての16ﾋﾞｯﾄ ﾚｼﾞｽﾀによって共用されます。詳細については「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ｶｳﾝﾀが走行中にｶｳﾝﾀ(TCNTn)を変更することはOCRnxの1つとTCNTn間の比較一致消失の危険を誘発します。
TCNTnへの書き込みは全ての比較部に対して次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸでの比較一致を妨害(除去)します。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 99頁

ATmega328PB
19.11.5. ICRnH,ICRnL - TCn捕獲ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (Input Capture Register n Low and High byte)
名称 : ICR1HとICR1L (ICR1) : ICR3HとICR3L (ICR3) : ICR4HとICR4L (ICR4)
変位 : $86
: $96
: $A6
ﾘｾｯﾄ : $0000
特質 : ICRnHとICRnLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のICRnを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ﾋﾞｯﾄ

15

14

13

12

11

10

9

8

R/W
0

R/W
0

R/W
0

R/W
0

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

ICRn15～8
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

ﾋﾞｯﾄ

7

6

5

4

ICRn7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ15～0 - ICRn15～0 : ﾀｲﾏ/ｶｳﾝﾀn捕獲 (Input Capture n)

捕獲ﾚｼﾞｽﾀはICPnﾋﾟﾝ(またはﾀｲﾏ/ｶｳﾝﾀ1については任意のｱﾅﾛｸﾞ比較器出力)で出来事が起こる毎にｶｳﾝﾀ(TCNTn)値で更新されます。この捕獲ﾚｼﾞｽﾀはﾀｲﾏ/ｶｳﾝﾀのTOP値を定義するのに使えます。
捕獲ﾚｼﾞｽﾀは容量が16ﾋﾞｯﾄです。CPUがこれらのﾚｼﾞｽﾀをｱｸｾｽする時に上位と下位の両ﾊﾞｲﾄが同時に読まれるのを保証するため、
このｱｸｾｽは8ﾋﾞｯﾄ上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)を使って実行されます。この一時ﾚｼﾞｽﾀは他の全ての16ﾋﾞｯﾄ ﾚｼﾞｽﾀによって共用されます。詳細については「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。

19.11.6. OCRnAH,OCRnAL - TCn比較Aﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (Output Compare Register n A Low and High byte)
名称 : OCR1AHとOCR1AL (OCR1A) : OCR3AHとOCR3AL (OCR3A) : OCR4AHとOCR4AL (OCR4A)
変位 : $88
: $98
: $A8
ﾘｾｯﾄ : $0000
特質 : OCRnAHとOCRnALのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のOCRnAを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ﾋﾞｯﾄ

15

14

13

12

11

10

9

8

OCRnA15～8
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCRnA7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ15～0 - OCRnA15～0 : ﾀｲﾏ/ｶｳﾝﾀn比較A (Output Compare n A)

比較ﾚｼﾞｽﾀは継続的にｶｳﾝﾀ(TCNTn)値と比較される16ﾋﾞｯﾄ値を含みます。一致は比較一致割り込みやOCnAﾋﾟﾝでの波形出力を生成するのに使えます。
比較ﾚｼﾞｽﾀは容量が16ﾋﾞｯﾄです。CPUがこれらのﾚｼﾞｽﾀへ書く時に上位と下位の両ﾊﾞｲﾄが同時に書かれるのを保証するため、このｱ
ｸｾｽは8ﾋﾞｯﾄ上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)を使って実行されます。この一時ﾚｼﾞｽﾀは他の全ての16ﾋﾞｯﾄ ﾚｼﾞｽﾀによって共用されます。
詳細については「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 100頁

ATmega328PB
19.11.7. OCRnBH,OCRnBL - TCn比較Bﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (Output Compare Register n B Low and High byte)
名称 : OCR1BHとOCR1BL (OCR1B) : OCR3BHとOCR3BL (OCR3B) : OCR4BHとOCR4BL (OCR4B)
変位 : $8A
: $9A
: $AA
ﾘｾｯﾄ : $0000
特質 : OCRnBHとOCRnBLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のOCRnBを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ﾋﾞｯﾄ

15

14

13

12

11

10

9

8

OCRnB15～8
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCRnB7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ15～0 - OCRnB15～0 : ﾀｲﾏ/ｶｳﾝﾀn比較B (Output Compare n B)

比較ﾚｼﾞｽﾀは継続的にｶｳﾝﾀ(TCNTn)値と比較される16ﾋﾞｯﾄ値を含みます。一致は比較一致割り込みやOCnBﾋﾟﾝでの波形出力を生成するのに使えます。
比較ﾚｼﾞｽﾀは容量が16ﾋﾞｯﾄです。CPUがこれらのﾚｼﾞｽﾀへ書く時に上位と下位の両ﾊﾞｲﾄが同時に書かれるのを保証するため、このｱ
ｸｾｽは8ﾋﾞｯﾄ上位ﾊﾞｲﾄ一時ﾚｼﾞｽﾀ(TEMP)を使って実行されます。この一時ﾚｼﾞｽﾀは他の全ての16ﾋﾞｯﾄ ﾚｼﾞｽﾀによって共用されます。
詳細については「16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。

19.11.8. TIMSKn - TCn割り込み許可ﾚｼﾞｽﾀ (TCn Interrupt Mask Register)
名称 : TIMSK1 : TIMSK3 : TIMSK4
変位 : $6F
: $71
: $72
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

ICIEn

-

-

OCIEnBOCIEnA

TOIEn

R
0

R
0

R/W
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ5 - ICIEn : ﾀｲﾏ/ｶｳﾝﾀn捕獲割り込み許可 (Input Capture Interrupt Enable)

このﾋﾞｯﾄが1を書かれて、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀn捕獲割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀn割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFRn)に配置された捕獲割り込み要求ﾌﾗｸﾞ(ICFn)が設定(1)されると、対応する割り込み
ﾍﾞｸﾀが実行されます。
● ﾋﾞｯﾄ2 - OCIEnB : ﾀｲﾏ/ｶｳﾝﾀn比較B割り込み許可 (Output Compare B Match Interrupt Enable)

このﾋﾞｯﾄが1を書かれて、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀn比較B一致割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀn割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFRn)に配置された比較B割り込み要求ﾌﾗｸﾞ(OCFnB)が設定(1)されると、対応する割り込みﾍﾞｸﾀが実行されます。
● ﾋﾞｯﾄ1 - OCIEnA : ﾀｲﾏ/ｶｳﾝﾀn比較A割り込み許可 (Output Compare A Match Interrupt Enable)

このﾋﾞｯﾄが1を書かれて、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀn比較A一致割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀn割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFRn)に配置された比較A割り込み要求ﾌﾗｸﾞ(OCFnA)が設定(1)されると、対応する割り込みﾍﾞｸﾀが実行されます。
● ﾋﾞｯﾄ0 - TOIEn : ﾀｲﾏ/ｶｳﾝﾀn溢れ割り込み許可 (Overflow Interrupt Enable)

このﾋﾞｯﾄが1を書かれて、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されると、ﾀｲﾏ/ｶｳﾝﾀn溢れ割り込みが許可されます。ﾀｲﾏ/ｶｳﾝﾀn割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFRn)に配置されたﾀｲﾏ/ｶｳﾝﾀ溢れ割り込み要求ﾌﾗｸﾞ(TOVn)が設定(1)されると、対応する割り込みﾍﾞｸﾀが実行されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 101頁

ATmega328PB
19.11.9. TIFRn - TCn割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (TCn Interrupt Flag Register)
名称 : TIFR1: TIFR3: TIFR4
変位 : $36 ($16) : $38 ($18) : $39 ($19)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは各々$16：$18：$19です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

ICFn

-

-

OCFnB

OCFnA

TOVn

R
0

R
0

R/W
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ5 - ICFn : ﾀｲﾏ/ｶｳﾝﾀn捕獲割り込み要求ﾌﾗｸﾞ (Input Capture Flag)

ICPnﾋﾟﾝに捕獲の事象が起こると、このﾌﾗｸﾞが設定(1)されます。捕獲ﾚｼﾞｽﾀ(ICRn)がWGMn3～0によってTOP値として設定されると、
ICFnﾌﾗｸﾞはｶｳﾝﾀがTOP値に到達する時に設定(1)されます。
捕獲割り込みﾍﾞｸﾀが実行されると、ICFnは自動的に解除(0)されます。代わりにこのﾋﾞｯﾄ位置へ論理1を書くことによってもICFnは解除(0)できます。
● ﾋﾞｯﾄ2 - OCFnB : ﾀｲﾏ/ｶｳﾝﾀn比較B割り込み要求ﾌﾗｸﾞ (Output Compare B Match Flag)

このﾌﾗｸﾞはｶｳﾝﾀ(TCNTn)値が比較Bﾚｼﾞｽﾀ(OCRnB)と一致した後(次)のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。
強制的な比較出力(FOCnB)ｽﾄﾛｰﾌﾞがOCFnBﾌﾗｸﾞを設定(1)しないことに注意してください。
比較B一致割り込みﾍﾞｸﾀが実行されると、OCFnBは自動的に解除(0)されます。代わりにこのﾋﾞｯﾄ位置へ論理1を書くことによっても
OCFnBは解除(0)できます。
● ﾋﾞｯﾄ1 - OCFnA : ﾀｲﾏ/ｶｳﾝﾀn比較A割り込み要求ﾌﾗｸﾞ (Output Compare A Match Flag)

このﾌﾗｸﾞはｶｳﾝﾀ(TCNTn)値が比較Aﾚｼﾞｽﾀ(OCRnA)と一致した後(次)のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で設定(1)されます。
強制的な比較出力(FOCnA)ｽﾄﾛｰﾌﾞがOCFnAﾌﾗｸﾞを設定(1)しないことに注意してください。
比較A一致割り込みﾍﾞｸﾀが実行されると、OCFnAは自動的に解除(0)されます。代わりにこのﾋﾞｯﾄ位置へ論理1を書くことによっても
OCFnAは解除(0)できます。
● ﾋﾞｯﾄ0 - TOVn : ﾀｲﾏ/ｶｳﾝﾀn溢れ割り込み要求ﾌﾗｸﾞ (Overflow Flag)

このﾌﾗｸﾞの(1)設定はWGMn3～0ﾋﾞｯﾄ設定に依存します。標準またはCTC動作でのTOVnﾌﾗｸﾞはﾀｲﾏ/ｶｳﾝﾀn溢れ時に設定(1)されます。他のWGMn3～0ﾋﾞｯﾄ設定を使う時のTOVnﾌﾗｸﾞ動作については波形生成種別ﾋﾞｯﾄ記述を参照してください。
ﾀｲﾏ/ｶｳﾝﾀn溢れ割り込みﾍﾞｸﾀが実行されると、TOVnは自動的に解除(0)されます。代わりにこのﾋﾞｯﾄ位置へ論理1を書くことによってもTOVnは解除(0)できます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 102頁

ATmega328PB
20. ﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4の前置分周器
8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0(TC0)と16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4(TC1,TC3,TC4)は同じ前置分周器部を共用しますが、ﾀｲﾏ/ｶｳﾝﾀは異なる前置
分周器設定ができます。以下の記述はTC0,TC1,TC3,TC4に適用されます。
関連ﾘﾝｸ TC0 - PWM付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ0
TC1,TC3,TC4 - PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4

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

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

20.3. 外部ｸﾛｯｸ元
Tnﾋﾟﾝに印加された外部ｸﾛｯｸ元はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ(fclk_Tn)として使えます。このTnﾋﾟﾝはﾋﾟﾝ同期化論理回路によって全てのｼｽﾃﾑ
ｸﾛｯｸ周期に一度採取されます。この同期化(採取)された信号は、その後ｴｯｼﾞ検出器を通して通過されます。下のTn同期化とｴｯｼﾞ
検出器論理回路の構成図もご覧ください。ﾚｼﾞｽﾀは内部ｼｽﾃﾑ ｸﾛｯｸ(fclk_I/O)の上昇端でｸﾛｯｸ駆動されます。ﾗｯﾁは内部ｼｽﾃﾑ ｸﾛｯ
ｸのHigh区間で通過(Low区間で保持)です。
ｴｯｼﾞ検出器は上昇端(CSn2～0=111)または下降端(CSn2～0=110)の検出毎に1つのclkTnﾊﾟﾙｽを生成します。
図20-1. Tnﾋﾟﾝの採取等価構成図
同期化回路
Tn

D

Q

D

ｴｯｼﾞ (↑/↓)
Q

1
0

D

Q

Tn_sync(ｸﾛｯｸ選択回路へ)E

ｴｯｼﾞ検出器

clkI/O

同期化とｴｯｼﾞ検出器論理回路はTnﾋﾟﾝへ印加されたｴｯｼﾞから計数器が更新されるまでに2.5～3.5ｼｽﾃﾑ ｸﾛｯｸ周期の遅延をもたらします。
ｸﾛｯｸ入力の許可と禁止はTnが最低1ｼｽﾃﾑ ｸﾛｯｸ周期に対して安定してしまっている時に行われなければならず、さもなければ不正なﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ ﾊﾟﾙｽが生成される危険があります。
印加された外部ｸﾛｯｸの各半周期は正しい採取を保証するために1ｼｽﾃﾑ ｸﾛｯｸ周期より長くなければなりません。この外部ｸﾛｯｸは50%/50%ﾃﾞｭｰﾃｨ比で与えられるものとして、ｼｽﾃﾑ ｸﾛｯｸ周波数の半分未満(fTn<fclk_I/O/2)であることが保証されなければなりません。ｴｯｼﾞ検出器が採取を使うため、検出できる外部ｸﾛｯｸの最大周波数は採取周波数の半分です(ﾅｲｷｽﾄの標本化定理)。然しながら、発振元(ｸﾘｽﾀﾙ発振子、ｾﾗﾐｯｸ振動子、ｺﾝﾃﾞﾝｻ)の公差によって引き起こされたｼｽﾃﾑ ｸﾛｯｸ周波数やﾃﾞｭｰﾃｨ比の変動のため、
外部ｸﾛｯｸ元の最大周波数はfclk_I/O/2.5未満が推奨されます。
外部ｸﾛｯｸ元は前置分周できません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 103頁

ATmega328PB
図20-2. ﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4の前置分周器部構成図

clkI/O

10ﾋﾞｯﾄ前置分周器

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

R

PSRSYNCT0

同期化/ｴｯｼﾞ検出Tn

同期化/ｴｯｼﾞ検出

0

CS0
CS1
CS2

0

ﾀｲﾏ/ｶｳﾝﾀn用
選択器

n=1,3,4

CS00
CS01
CS02

ﾀｲﾏ/ｶｳﾝﾀ0用
選択器

clkTn

clkT0

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

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

注: 入力ﾋﾟﾝ(T0/Tn)の同期化/ｴｯｼﾞ検出論理回路は前の構成図で示されます。

20.4. 同期系ﾀｲﾏ/ｶｳﾝﾀ前置分周器制御関係ﾚｼﾞｽﾀ
20.4.1. GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ (General Timer/Counter Control Register)
名称 : GTCCR
変位 : $43 ($23)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$23です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

TSM

-

-

-

-

-

PSRASYPSRSYNC

R/W
0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

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

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

このﾋﾞｯﾄが1の時にﾀｲﾏ/ｶｳﾝﾀ2の前置分周器はﾘｾｯﾄします。通常、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって直ちに解除(0)されます。ﾀｲﾏ/ｶｳﾝﾀ
2が非同期動作の時にこのﾋﾞｯﾄが(1を)書かれると、このﾋﾞｯﾄは前置分周器がﾘｾｯﾄされてしまうまで1に留まります。TSMﾋﾞｯﾄが設定(1)される場合、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されません。
● ﾋﾞｯﾄ0 - PSRSYNC : 同期系ﾀｲﾏ/ｶｳﾝﾀ前置分周器ﾘｾｯﾄ (Prescaler Reset Timer/Counter 1,0)

このﾋﾞｯﾄが1の時にﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4の前置分周器はﾘｾｯﾄします。TSMﾋﾞｯﾄが設定(1)されている場合を除き、通常、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって直ちに解除(0)されます。ﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4は同じ前置分周器を共用し、この前置分周器のﾘｾｯﾄが言及したﾀｲﾏ/ｶｳﾝﾀに影響を及ぼすことに注意してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 104頁

ATmega328PB
21. TC2 - PWM,非同期動作付き8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2
21.1. 特徴
・ 2つの比較部付き計数器
・ 比較一致でのﾀｲﾏ/ｶｳﾝﾀ解除 (自動再設定)
・ 不具合なしで正しい位相のﾊﾟﾙｽ幅変調器 (PWM)
・ 周波数発生器
・ ｸﾛｯｸ用10ﾋﾞｯﾄ前置分周器
・ 溢れと比較一致割り込み (TOV2,OCF2A,OCF2B)
・ I/O(ｼｽﾃﾑ)ｸﾛｯｸに依存しない時計用外部32kHzｸﾘｽﾀﾙからのｸﾛｯｸ駆動可能

21.2. 概要
ﾀｲﾏ/ｶｳﾝﾀ2は2つの独立した比較出力部とPWM支援付きの汎用8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ部です。
この8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀの簡単化した構成図は下で示されます。CPUがｱｸｾｽ可能な(I/OﾋﾞｯﾄとI/Oﾋﾟﾝを含む)I/Oﾚｼﾞｽﾀは赤文字(訳
注:原文は太字)で示されます。ﾃﾞﾊﾞｲｽ仕様のI/Oﾚｼﾞｽﾀとﾋﾞｯﾄ位置は以降の「8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2用ﾚｼﾞｽﾀ」で一覧されます。I/Oﾋﾟﾝの実際の配置については「ﾋﾟﾝ配置」を参照してください。
TC2は電力削減ﾚｼﾞｽﾀ0のPRTIM2(PRR0.PRTIM2)ﾋﾞｯﾄが0を書かれる時に許可されます。
図21-1. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ構成図
計数
方向
ﾘｾｯﾄ

制御回路
TOP

clkTn

TOVn (割り込み要求)

BOTTOMﾀｲﾏ/ｶｳﾝﾀ用
発振器

前置分周器
TCNTn

=

TOSC1
TOSC2

clkI/O=0

OCFnA (割り込み要求)
=

波形生成

OCnA

OCRnA
OCFnB (割り込み要求)

固定TOP値
=

波形生成

OCnB

OCRnB
TCCRnA

TCCRnB

8-bit Data Bus
同期化状態ﾌﾗｸﾞ
ASSR

同期化
非同期動作許可(ASn)

関連ﾘﾝｸ

clkI/O
clkASY

ﾋﾟﾝ配置
ﾋﾟﾝ概要

21.2.1. 定義
本章でのﾚｼﾞｽﾀとﾋﾞｯﾄ参照の多くは以下のように一般形で書かれます。
・ n=2はﾀｲﾏ/ｶｳﾝﾀ番号を表します。
・ x=A,Bは比較出力部AまたはBを表します。
けれども、ﾌﾟﾛｸﾞﾗﾑでﾚｼﾞｽﾀまたはﾋﾞｯﾄ定義に使う時は正確な形式、即ち、
ﾀｲﾏ/ｶｳﾝﾀ2のｶｳﾝﾀ値ｱｸｾｽに対してTCNT2が使われなければなりません。
右の定義は本章全体に渡って使われます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

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

DS40001906C - 105頁

ATmega328PB
21.2.2. 関係ﾚｼﾞｽﾀ
ﾀｲﾏ/ｶｳﾝﾀ(TCNT2)と比較ﾚｼﾞｽﾀ(OCR2AとOCR2B)は8ﾋﾞｯﾄのﾚｼﾞｽﾀです。割り込み要求信号はﾀｲﾏ/ｶｳﾝﾀ2割り込み要求ﾚｼﾞｽﾀ(TIFR2)で全て見えます。全ての割り込みはﾀｲﾏ/ｶｳﾝﾀ2割り込み許可ﾚｼﾞｽﾀ(TIMSK2)で個別に遮蔽(禁止)されます。TIFR2とTIMSK
2はこの図で示されません。
このﾀｲﾏ/ｶｳﾝﾀは内部的、前置分周器経由、または本項内後ろで詳述されるようにTOSC1/2ﾋﾟﾝから非同期にｸﾛｯｸ駆動されます。
非同期動作は非同期状態ﾚｼﾞｽﾀ(ASSR)によって制御されます。ｸﾛｯｸ選択論理部はﾀｲﾏ/ｶｳﾝﾀが値を増加(または減少)するのに使うｸﾛｯｸ元を制御します。ｸﾛｯｸ元が選択されないとき、このﾀｲﾏ/ｶｳﾝﾀは動きません。ｸﾛｯｸ選択論理部からの出力はﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ
(clkT2)として参照されます。
2重緩衝化した比較ﾚｼﾞｽﾀ(OCR2AとOCR2B)はﾀｲﾏ/ｶｳﾝﾀ値と常に比較されます。この比較結果は比較出力(OC2AとOC2B)ﾋﾟﾝでPWMまたは可変周波数出力を生成するための波形生成器によって使えます。詳細については「比較出力部」をご覧ください。この比較一致発生は比較出力割り込み要求の発生に使える比較一致割り込み要求ﾌﾗｸﾞ(OCF2AとOCF2B)も設定(1)します。

21.3. ﾀｲﾏ/ｶｳﾝﾀのｸﾛｯｸ
このﾀｲﾏ/ｶｳﾝﾀは内部同期または外部非同期ｸﾛｯｸ元によってｸﾛｯｸ駆動できます。既定のｸﾛｯｸ元(clkT2)はMCUｸﾛｯｸ(clkI/O)と同じです。
非同期状態ﾚｼﾞｽﾀ(ASSR)の非同期動作許可(AS2)ﾋﾞｯﾄが1を書かれると、ｸﾛｯｸ元はTOSC1とTOSC2に繋がったﾀｲﾏ/ｶｳﾝﾀ用発振器から取得されます。
非同期動作の詳細については「ASSR - 非同期状態ﾚｼﾞｽﾀ」の記述をご覧ください。ｸﾛｯｸ元と前置分周器の詳細については「ﾀｲﾏ/ｶ
ｳﾝﾀ2の前置分周器」をご覧ください。

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

TCNTn(ﾀｲﾏ/ｶｳﾝﾀ)

TOVn (割り込み要求)

count
direction
clear

制御回路

BOTTOM

信号説明(内部信号)

clkTn
前置分周器

ﾀｲﾏ/ｶｳﾝﾀ用
発振器

TOSC1
TOSC2

clkI/OTOP

count
direction
clear

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 106頁

ATmega328PB
21.5. 比較出力部
この8ﾋﾞｯﾄ比較器はTCNT2と比較ﾚｼﾞｽﾀ(OCR2AとOCR2B)を継続的に比較します。TCNT2がOCR2AまたはOCR2Bと等しければ比較器は一致を指示します。この一致は次のﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期で比較割り込み要求ﾌﾗｸﾞ(OCF2AまたはOCF2B)を設定(1)します。
対応する割り込みが許可(I=1,OCIE2AまたはOCIE2B=1)されているなら、その比較割り込み要求ﾌﾗｸﾞは比較割り込みを発生します。
比較割り込み要求ﾌﾗｸﾞは割り込みが実行されると自動的に解除(0)されます。代わりにこのﾌﾗｸﾞはこのI/Oﾋﾞｯﾄ位置に論理1を書くこと
によってｿﾌﾄｳｪｱでも解除(0)できます。波形生成器は波形生成種別(WGM22～0)ﾋﾞｯﾄと比較出力選択(COM2x1,0)ﾋﾞｯﾄによって設定された動作種別に従った出力を生成するのに、この一致信号 図21-3. 比較出力部構成図を使います。MAXとBOTTOMの信号は動作種別(「動作種別」
8-bit Data Bus参照)のいくつかで両端値の特別な場合を扱うため、波形生成器によって使われます。
右図は比較出力部の構成図を示します。
OCRnx緩衝部
TCNTn
OCR2xはﾊﾟﾙｽ幅変調(PWM)の何れかを使う時に2重緩衝化されます。標準動作と比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作につ
OCRnx
いては2重緩衝動作が禁止されます。2重緩衝動作は計数の流れのTOPまたはBOTTOMのどちらかに対してOCR2xﾚｼﾞｽﾀの更新を同期化します。この同期化は奇数長、非対称PWMﾊﾟﾙｽ= (8ﾋﾞｯﾄ比較器)の発生を防ぎ、それによって不具合なしの出力を作成します。
OCFnx (割り込み要求)
OCR2xのｱｸｾｽは複雑なように思えますが決してそんなことはあTOPりません。2重緩衝動作が許可されるとCPUはOCR2x緩衝部をBOTTOM
波形生成器
OCnx
ｱｸｾｽし、禁止されるとOCR2xﾚｼﾞｽﾀを直接ｱｸｾｽします。
FOCnx
関連ﾘﾝｸ 動作種別
WGMn2～0 COMnx1,0(訳注) ここでは比較nxﾚｼﾞｽﾀ全体をOCR2x、OCR2xを構成する緩衝部部分をOCR2x緩衝部、実際の比較に使われるﾚｼﾞｽﾀ本体部分をOCR2xﾚｼﾞｽﾀとして記述しています。他の部分での記述でも特に必要がある場合はこの記述方法を適用します。

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 107頁

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

OCnx
波形生成器

8-bit Data Bus

COMnx1
COMnx0
FOCnx

D

Q

PORT
D

1
0

OCnx

Q

DDR
D

Q

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 108頁

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

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

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

TOP
TCNTn

OCnx(交互)
周期

1

2

3

4

5

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 109頁

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

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

OCRnx
TCNTn

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

1

2

3

4

5

6

7

ﾀｲﾏ/ｶｳﾝﾀ溢れ(TOV2)ﾌﾗｸﾞはｶｳﾝﾀがTOPに到達する時毎に設定(1)されます。割り込みが許可されるなら、その割り込み処理ﾙｰﾁ
ﾝは比較値を更新するために使えます。
高速PWM動作での比較部はOC2xﾋﾟﾝでのPWM波形の生成を許します。COM2x1,0ﾋﾞｯﾄを'10'に設定することは非反転PWM出力を作成し、反転PWM出力はCOM2x1,0を'11'に設定することで生成できます。WGM22ﾋﾞｯﾄが設定(1)なら、COM2A1,0ﾋﾞｯﾄの'01'設定は比較一致での交互反転をOC2Aﾋﾟﾝに許します。この任意選択はOC2Bﾋﾟﾝに対して利用できません(訳注:前2行修正追加)。実際のOC2x値はﾎﾟｰﾄ ﾋﾟﾝに対するﾃﾞｰﾀ方向が出力として設定される場合にだけ見えるでしょう。PWM波形はTCNT2とOCR2x間の比較一
致でOC2x(内部)ﾚｼﾞｽﾀを設定(1)(または解除(0))と、ｶｳﾝﾀが解除($00、TOPからBOTTOMへ変更)されるﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸ周期でOC2xﾚｼﾞｽﾀを解除(0)または設定(1)することによって生成されます。
PWM出力周波数は次式によって計算できます。
fOCnxPWM =fclk_I/O
N×(1+TOP)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 110頁

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

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

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

OCRnx
TCNTn

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

1

2

3

OCRnx更新

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

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

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

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

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 111頁

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

clkI/O
clkTn (clkI/O/1)
TCNT2

MAX-1

MAX

BOTTOM

BOTTOM+1

BOTTOM

BOTTOM+1

OCRnx+1

OCRnx+2

BOTTOM

BOTTOM+1

TOVn

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

clkI/O
clkTn (clkI/O/8)
TCNT2

MAX-1

MAX

TOVn

下図はCTC動作を除く全ての動作種別でのOCF2Aの設定を示します。
図21-10. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCF2A設定 ﾀｲﾐﾝｸﾞ

clkI/O
clkTn (clkI/O/8)
TCNT2

OCRnx-1

OCRnx

OCRnx

OCRnx値

OCFnx

下図はCTC動作でのTCNT2の解除とOCF2Aの設定を示します。
図21-11. 前置分周器(fclk_I/O/8)のﾀｲﾏ/ｶｳﾝﾀ、OCF2A設定 ﾀｲﾐﾝｸﾞ

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

TOP-1

TOP
TOP値

OCFnx

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 112頁

ATmega328PB
21.9. ﾀｲﾏ/ｶｳﾝﾀ2の非同期動作
TC2が非同期で動くとき、いくつかの考慮が成されなければなりません。
・ ﾀｲﾏ/ｶｳﾝﾀ2の同期/非同期ｸﾛｯｸ駆動間を切り替えると、ﾀｲﾏ/ｶｳﾝﾀ2(TCNT2)、ﾀｲﾏ/ｶｳﾝﾀ2比較ﾚｼﾞｽﾀ(OCR2x)、ﾀｲﾏ/ｶｳﾝﾀ2制
御ﾚｼﾞｽﾀ(TCCR2x)が不正となるかもしれません。ｸﾛｯｸ元を切り替える安全な手順を次に示します。
1. ﾀｲﾏ/ｶｳﾝﾀ2割り込み許可ﾚｼﾞｽﾀ(TIMSK2)のOCIE2xとTOIE2の解除(0)により、TC2割り込みを禁止してください。
2. 非同期状態ﾚｼﾞｽﾀ(ASSR)の非同期動作許可(AS2)設定によってｸﾛｯｸ元を適切に選択してください。
3. TCNT2,OCR2x,TCCR2xに新しい値を書いてください。
4. 非同期動作へ切り替えるには、TCN2UB, OCR2xUB, TCR2xUBについて(=0まで)待機してください。
5. ﾀｲﾏ/ｶｳﾝﾀ2割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ(TIFR2)のOCF2xとTOV2のﾌﾗｸﾞを解除(0)してください。
6. 必要とされるなら、割り込みを許可してください。
・ CPU主ｸﾛｯｸ周波数はﾀｲﾏ発振器周波数の4倍よりも高くなければなりません。
・ TCNT2,OCR2x,TCCR2xﾚｼﾞｽﾀの1つに書くとき、その値は一時ﾚｼﾞｽﾀへ転送され、TOSC1で2つの上昇端後、(実ﾚｼﾞｽﾀ)に設定されます。一時ﾚｼﾞｽﾀの内容がそれらの転送先へ転送されてしまう前に新しい値を書くべきではありません。記載された3つのﾚｼﾞ
ｽﾀの各々がそれの個別の一時ﾚｼﾞｽﾀを持ちます。それは、例えばTCNT2書き込みがOCR2x書き込みの実行を妨げないことを意味します。非同期状態ﾚｼﾞｽﾀ(ASSR)は転送先ﾚｼﾞｽﾀへの転送が起きたことを示します。
・ TCNT2,OCR2x,TCCR2xに書いた後でﾊﾟﾜｰｾｰﾌﾞまたはA/D変換雑音低減動作へ移行するとき、ﾃﾞﾊﾞｲｽを起動するのにTC2が使われる場合、使用者は書かれたﾚｼﾞｽﾀが更新されてしまうまで待たなければなりません。さもなければMCUは変更が有効になる前に休止形態へ移行するでしょう。ﾀｲﾏ/ｶｳﾝﾀ2比較一致割り込みがﾃﾞﾊﾞｲｽを起動するのに使われると、TCNT2またはOCR2x
書き込み中の比較機能が禁止されるため、これは非常に重要です。書き込み周期が完了されず、OCR2xUBが0に戻る前にMCUが休止形態へ移行すると、ﾃﾞﾊﾞｲｽは決して比較一致割り込みを受け取らず、そしてMCUは起動しないでしょう。
・ ﾊﾟﾜｰｾｰﾌﾞまたはA/D変換雑音低減動作からﾃﾞﾊﾞｲｽを起動するのにTC2が使われる場合、使用者がこれら動作へ(復帰後)再移行することを欲するなら、予防処置を講じなければなりません。1 TOSC1周期以内に休止形態へ再移行する場合、割り込みが直ちに起こり、ﾃﾞﾊﾞｲｽは再び起動復帰するでしょう。その結果は複数の割り込みと最初の割り込みから1 TOSC1周期以内の起動復帰です。ﾊﾟﾜｰｾｰﾌﾞまたはA/D変換雑音動作再移行前の時間が充分であるかどうか迷うなら、1 TOSC1周期が経過されることを保証するのに次の手順が使えます。
1. TCNT2,OCR2x,TCCR2xに値を書いてください。
2. 非同期状態ﾚｼﾞｽﾀ(ASSR)の対応する更新中ﾌﾗｸﾞが0に戻るまで待ってください。
3. ﾊﾟﾜｰｾｰﾌﾞまたはA/D変換雑音低減動作へ移行してください。
・ 非同期動作が選択されるとき、TC2用32.768kHz発振器はﾊﾟﾜｰﾀﾞｳﾝとｽﾀﾝﾊﾞｲ動作を除いて常に動作します。電源投入ﾘｾｯﾄ、ﾊﾟﾜｰﾀﾞｳﾝまたはｽﾀﾝﾊﾞｲ動作から起動後、この発振器が安定するのに1秒程度かかるかもしれないことを使用者は承知すべきです。電源投入、ﾊﾟﾜｰﾀﾞｳﾝまたはｽﾀﾝﾊﾞｲ動作から起動後、TC2を使う前に少なくとも1秒待つことが推奨されます。この発振器の使用またはｸﾛｯｸ信号がTOSCﾋﾟﾝに印加されるかのどちらかに拘らず、起動時の不安的なｸﾛｯｸ信号のため、ﾊﾟﾜｰﾀﾞｳﾝまたはｽﾀﾝﾊﾞ
ｲ動作からの起動復帰後、TC2の全ﾚｼﾞｽﾀの内容が失われたと見做されなければなりません。
・ TC2が非同期でｸﾛｯｸ駆動される時のﾊﾟﾜｰｾｰﾌﾞまたはA/D変換雑音低減動作から起動の説明。割り込み条件が合致すると、ﾀｲﾏ/ｶｳﾝﾀ ｸﾛｯｸの次周期で起動処理が開始され、ﾌﾟﾛｾｯｻがｶｳﾝﾀ値を読めるのに先立ってﾀｲﾏ/ｶｳﾝﾀは常に最低1、進行されます。起動後にMCUは4周期停止され、割り込みﾙｰﾁﾝを実行し、そしてSLEEP命令の次の命令から実行を再開します。
・ ﾊﾟﾜｰｾｰﾌﾞ動作から起動直後のTCNT2の読み込みは不正な結果を得るかもしれません。TCNT2が非同期TOSCｸﾛｯｸでｸﾛｯｸ駆動されるため、TCNT2読み込みは内部I/Oｸﾛｯｸ領域に同期したﾚｼﾞｽﾀを通して行われなければなりません。同期化はTOSCｸﾛｯ
ｸの全上昇端で行われます。ﾊﾟﾜｰｾｰﾌﾞ動作から起動し、I/Oｸﾛｯｸ(clkI/O)が再び活性(有効)になるとき、TCNT2はTOSCｸﾛｯｸの次の上昇端まで以前(休止形態移行前)の値を読むでしょう。ﾊﾟﾜｰｾｰﾌﾞ動作から起動後のTOSCｸﾛｯｸの位相は起動時間に依存するため本質的に特定できません。従ってTCNT2読み込みに対する推奨手順は次のとおりです。
1. OCR2xまたはTCCR2xのどれかに何か値を書きます。
2. 非同期状態ﾚｼﾞｽﾀ(ASSR)の対応する更新中ﾌﾗｸﾞが解除(0)されるまで待ちます。
3. TCNT2を読みます。
・ 非同期動作の間中、非同期ﾀｲﾏ用割り込み要求ﾌﾗｸﾞの同期化は3ﾌﾟﾛｾｯｻ周期+1ﾀｲﾏ周期かかります。従ってﾌﾟﾛｾｯｻが割り込み
要求ﾌﾗｸﾞ設定の原因となったﾀｲﾏ値を読めるのに先立って、このﾀｲﾏは最低1、進行されます。比較出力ﾋﾟﾝはﾀｲﾏ ｸﾛｯｸで変更され、ﾌﾟﾛｾｯｻ ｸﾛｯｸに同期されません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 113頁

ATmega328PB
21.10. ﾀｲﾏ/ｶｳﾝﾀ2の前置分周器
TC2用ｸﾛｯｸ元の名前はclkT2Sです。既定でのclkT2Sは主ｼｽﾃﾑI/Oｸﾛｯ 図21-12. ﾀｲﾏ/ｶｳﾝﾀ2前置分周器部構成
ｸ(clkI/O)に接続されます。ﾀｲﾏ/ｶｳﾝﾀ2非同期状態ﾚｼﾞｽﾀ(ASSR)の非同
clkI/O期ｸﾛｯｸ許可(AS2)ﾋﾞｯﾄの1書き込みにより、TC2はTOSC1ﾋﾟﾝから非同期© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

AS2
PSRASY

0
CS20
CS21
CS22

10ﾋﾞｯﾄ前置分周器

clkT2S/8
clkT2S/32
clkT2S/64
clkT2S/128
clkT2S/256
clkT2S/1024

R

TOSC1

clkT2Sにｸﾛｯｸ駆動されます。これは実時間計数器(RTC)としてのTC2の使用を可能にします。AS2が設定(1)されると、TOSC1とTOSC2のﾋﾟﾝは主ｸﾛｯｸ発振器や標準ﾎﾟｰﾄから切り離されます。ｸﾘｽﾀﾙ発振子はTC2用の独立したｸﾛｯｸ元として扱うTOSC1とTOSC2ﾋﾟﾝ間に接続できます。この発振器は32.768kHzｸﾘｽﾀﾙ発振子で使うために最適化されています。TOSC1に外部ｸﾛｯｸ信号を印加する場合、ASSRの外部ｸﾛｯｸ許可(EXCLK)ﾋﾞｯﾄが設定(1)されなければなりません(訳注:矛盾回避のため本行置換)。
TC2に対して可能な前置分周済み選択はclkT2S/8, clkT2S/32, clkT2S/64, clk T2S /128, clk T2S /256, clk T2S /1024です。更に0(停止)は勿論
clkT2Sも選択可能です。
この前置分周器は一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ(GTCCR)の非同期系ﾀｲﾏ/
ｶｳﾝﾀ前置分周器ﾘｾｯﾄ(PSRASY)ﾋﾞｯﾄへの1書き込みによってﾘｾｯﾄします。これは明確にした前置分周器での操作を使用者に許します。

ﾀｲﾏ/ｶｳﾝﾀ2用
選択器

clkT2

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

DS40001906C - 114頁

ATmega328PB
21.11. 8ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ2用ﾚｼﾞｽﾀ
21.11.1. TCCR2A - ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀA (Timer/Counter2 Control Register A)
名称 : TCCR2A
変位 : $B0
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ7

ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

6

5

R/W
0

R/W
0

COM2A1,0

4

3

-

-

R/W
0

R
0

R
0

COM2B1,02

10

WGM21,0
R/W
0

R/W
0

● ﾋﾞｯﾄ7,6 - COM2A1,0 : 比較A出力選択 (Compare Output Mode for Channel A)

これらのﾋﾞｯﾄはOC2A比較出力ﾋﾟﾝの動作を制御します。COM2A1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、OC2A出力はそのI/Oﾋﾟ
ﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども出力駆動部を許可するため、OC2Aﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OC2Aがﾋﾟﾝに接続されるとき、COM2A1,0ﾋﾞｯﾄの機能はWGM22～0ﾋﾞｯﾄ設定に依存します。
下表はWGM22～0ﾋﾞｯﾄが標準動作またはCTC動作(つまりPWM以外)に設定される時のCOM2A1,0ﾋﾞｯﾄの機能を示します。
表21-2. 非PWM動作比較A出力選択
COM2A1 COM2A00
標準ﾎﾟｰﾄ動作 (OC2A切断)0
比較一致でOC2Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力01
1
比較一致でOC2Aﾋﾟﾝ Lowﾚﾍﾞﾙ出力0
比較一致でOC2Aﾋﾟﾝ Highﾚﾍﾞﾙ出力
11

意味

下表はWGM22～0ﾋﾞｯﾄが高速PWM動作に設定される時のCOM2A1,0ﾋﾞｯﾄの機能を示します。
表21-3. 高速PWM動作比較A出力選択
COM2A1 COM2A0
意味
0
標準ﾎﾟｰﾄ動作 (OC2A切断)
0
WGM22=0 : 標準ﾎﾟｰﾄ動作 (OC2A切断)
0
1
WGM22=1 : 比較一致でOC2Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
10
比較一致でLow、BOTTOMでHighをOC2Aﾋﾟﾝへ出力 (非反転動作)
1
比較一致でHigh、BOTTOMでLowをOC2Aﾋﾟﾝへ出力 (反転動作)
1
注: COM2A1が設定(1)され、OCR2AがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はBOTTOMで行われます。詳細については「高速PWM動作」をご覧ください。
下表はWGM02～0ﾋﾞｯﾄが位相基準PWM動作に設定される時のCOM0A1,0ﾋﾞｯﾄの機能を示します。
表21-4. 位相基準PWM動作比較A出力選択
COM2A1 COM2A0
意味
0
標準ﾎﾟｰﾄ動作 (OC2A切断)
0
WGM22=0 : 標準ﾎﾟｰﾄ動作 (OC2A切断)
0
1
WGM22=1 : 比較一致でOC2Aﾋﾟﾝ ﾄｸﾞﾙ(交互)出力
10
上昇計数時の比較一致でLow、下降計数時の比較一致でHighをOC2Aﾋﾟﾝへ出力
1
上昇計数時の比較一致でHigh、下降計数時の比較一致でLowをOC2Aﾋﾟﾝへ出力1
注: COM2A1が設定(1)され、OCR2AがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はTOPで行われます。詳細については「位相基準PWM動作」をご覧ください。
● ﾋﾞｯﾄ5,4 - COM2B1,0 : 比較B出力選択 (Compare Output Mode for Channel B)

これらのﾋﾞｯﾄはOC2B比較出力ﾋﾟﾝの動作を制御します。COM2B1,0ﾋﾞｯﾄの1つまたは両方が1を書かれると、OC2B出力はそのI/Oﾋﾟﾝの通常ﾎﾟｰﾄ機能を無効にし、そのI/Oﾋﾟﾝに接続されます。けれども出力駆動部を許可するため、OC2Bﾋﾟﾝに対応するﾎﾟｰﾄ方向ﾚｼﾞ
ｽﾀ(DDR)のﾋﾞｯﾄが設定(1)されなければならないことに注意してください。
OC2Bがﾋﾟﾝに接続されるとき、COM2B1,0ﾋﾞｯﾄの機能はWGM22～0ﾋﾞｯﾄ設定に依存します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 115頁

ATmega328PB
下表はWGM22～0ﾋﾞｯﾄが標準動作またはCTC動作(つまりPWM以外)に設定される時のCOM2B1,0ﾋﾞｯﾄ機能を示します。
表21-5. 非PWM動作比較B出力選択
COM2B1 COM2B00
標準ﾎﾟｰﾄ動作 (OC2B切断)0
比較一致でOC2Bﾋﾟﾝ ﾄｸﾞﾙ(交互)出力01
1
比較一致でOC2Bﾋﾟﾝ Lowﾚﾍﾞﾙ出力0
比較一致でOC2Bﾋﾟﾝ Highﾚﾍﾞﾙ出力
11

意味

下表はWGM22～0ﾋﾞｯﾄが高速PWM動作に設定される時のCOM2B1,0ﾋﾞｯﾄの機能を示します。
表21-6. 高速PWM動作比較B出力選択
COM2B1 COM2B0
意味
0
標準ﾎﾟｰﾄ動作 (OC2B切断)
0
(予約)
0
1
1
比較一致でLow、BOTTOMでHighをOC2Bﾋﾟﾝへ出力 (非反転動作)
0
比較一致でHigh、BOTTOMでLowをOC2Bﾋﾟﾝへ出力 (反転動作)
11
注: COM2B1が設定(1)され、OCR2BがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はBOTTOMで行われます。詳細については「高速PWM動作」を参照してください。
下表はWGM22～0ﾋﾞｯﾄが位相基準PWM動作に設定される時のCOM2B1,0ﾋﾞｯﾄの機能を示します。
表21-7. 位相基準PWM動作比較B出力選択
COM2B1 COM2B0
意味
0
標準ﾎﾟｰﾄ動作 (OC2B切断)
0
(予約)
0
1
1
上昇計数時の比較一致でLow、下降計数時の比較一致でHighをOC2Bﾋﾟﾝへ出力
0
上昇計数時の比較一致でHigh、下降計数時の比較一致でLowをOC2Bﾋﾟﾝへ出力
11
注: COM2B1が設定(1)され、OCR2BがTOPと等しい時に特別な状態が起きます。この状態での比較一致は無視されますが、設定(1)または解除(0)はTOPで行われます。詳細については「位相基準PWM動作」を参照してください。
● ﾋﾞｯﾄ1,0 - WGM21,0 : 波形生成種別 (Waveform Generation Mode)

ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀB(TCCR2B)で得られるWGM22ﾋﾞｯﾄと組み合わせたこれらのﾋﾞｯﾄはｶｳﾝﾀの計数順序(方向)、最大ｶｳﾝﾀ(TOP)値の供給元、使われるべき波形生成のどの形式かを制御します。ﾀｲﾏ/ｶｳﾝﾀ部によって支援される動作種別は標準動作(ｶｳﾝﾀ)、比較一致ﾀｲﾏ/ｶｳﾝﾀ解除(CTC)動作と2形式のﾊﾟﾙｽ幅変調(PWM)動作です。「動作種別」をご覧ください。
表21-8. 波形生成種別選択
番号 WGM22 WGM21 WGM20
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です。

© 2018 Microchip Technology Inc.

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

完全ﾃﾞｰﾀｼｰﾄ

TOP値
$FF
$FF
OCR2A
$FF
OCR2A
OCR2A

OCR2x更新時
即時TOP
即時BOTTOMTOP
BOTTOM

TOV2設定時MAX
BOTTOMMAX
MAX
BOTTOM
TOP

DS40001906C - 116頁

ATmega328PB
21.11.2. TCCR2B - ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀB (Timer/Counter2 Control Register B)
名称 : TCCR2B
変位 : $B1
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

FOC2A

FOC2B

-

-

WGM22

R/W
0

R/W
0

R
0

R
0

R/W
0

2

1

0

CS22～0
R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7 - FOC2A : OC2A強制変更 (Force Output Compare A)

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

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

ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀA(TCCR2A)を参照してください。
● ﾋﾞｯﾄ2～0 - CS22～0 : ｸﾛｯｸ選択 (Clock Select)

この3つのｸﾛｯｸ選択ﾋﾞｯﾄはﾀｲﾏ/ｶｳﾝﾀ(TCNT2)によって使われるｸﾛｯｸ元を選択します。
表21-9. ﾀｲﾏ/ｶｳﾝﾀ2入力ｸﾛｯｸ選択
CS22
CS21
CS20
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

© 2018 Microchip Technology Inc.

意味
停止 (ﾀｲﾏ/ｶｳﾝﾀ2動作停止)
clkT2S (前置分周なし)
clkT2S/8 (8分周)
clkT2S/32 (32分周)
clkT2S/64 (64分周)
clkT2S/128 (128分周)
clkT2S/256 (256分周)
clkT2S/1024 (1024分周)

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 117頁

ATmega328PB
21.11.3. TCNT2 - ﾀｲﾏ/ｶｳﾝﾀ2計数値ﾚｼﾞｽﾀ (TC2 Counter Value Register)
名称 : TCNT2
変位 : $B2
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

TCNT27～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - TCNT27～0 : ﾀｲﾏ/ｶｳﾝﾀ2計数値 (TC2 Counter Value)

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

21.11.4. OCR2A - ﾀｲﾏ/ｶｳﾝﾀ2比較Aﾚｼﾞｽﾀ (Output Compare Register 2 A)
名称 : OCR2A
変位 : $B3
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCR2A7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - OCR2A7～0 : ﾀｲﾏ/ｶｳﾝﾀ2比較A値 (Output Compare 2 A)

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

21.11.5. OCR2B - ﾀｲﾏ/ｶｳﾝﾀ2比較Bﾚｼﾞｽﾀ (Output Compare Register 2 B)
名称 : OCR2B
変位 : $B4
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

OCR2B7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - OCR2B7～0 : ﾀｲﾏ/ｶｳﾝﾀ2比較B値 (Output Compare 2 B)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 118頁

ATmega328PB
21.11.6. TIMSK2 - ﾀｲﾏ/ｶｳﾝﾀ2割り込み許可ﾚｼﾞｽﾀ (Timer/Counter 2 Interrupt Mask Register)
名称 : TIMSK2
変位 : $70
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

OCIE2BOCIE2A

TOIE2

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ2 - OCIE2B : ﾀｲﾏ/ｶｳﾝﾀ2比較B割り込み許可 (Timer/Counter2 Output Compare Match B Interrupt Enable)

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

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

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

21.11.7. TIFR2 - ﾀｲﾏ/ｶｳﾝﾀ2割り込み要求ﾌﾗｸﾞ ﾚｼﾞｽﾀ (Timer/Counter 2 Interrupt Flag Register)
名称 : TIFR2
変位 : $37 ($17)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$17です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

OCF2B

OCF2A

TOV2

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ2 - OCF2B : ﾀｲﾏ/ｶｳﾝﾀ2比較B割り込み要求ﾌﾗｸﾞ (Timer/Conter2, Output Compare B Match Flag)

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 119頁

ATmega328PB
21.11.8. ASSR - ﾀｲﾏ/ｶｳﾝﾀ2非同期状態ﾚｼﾞｽﾀ (Timer/Counter2 Asynchronous Status Register)
名称 : ASSR
変位 : $B6
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

EXCLK

AS2

TCN2UBOCR2AUBOCR2BUBTCR2AUBTCR2BUB

R
0

R/W
0

R/W
0

R
0

R
0

R
0

R
0

R
0

● ﾋﾞｯﾄ6 - EXCLK : 外部ｸﾛｯｸ信号許可 (Enable External Clock Input)

EXCLKが1を書かれ、非同期ｸﾛｯｸが選択されると、外部ｸﾛｯｸ入力緩衝部が許可され、32kHzｸﾘｽﾀﾙの代わりに外部ｸﾛｯｸがﾀｲﾏ発振器1(TOSC1)ﾋﾟﾝへ入力できます。EXCLKへの書き込みは非同期動作が選択される前に行うべきです。ｸﾘｽﾀﾙ発振器はこのﾋﾞｯﾄが0の時にだけ走行(動作)することに注意してください。
● ﾋﾞｯﾄ5 - AS2 : ﾀｲﾏ/ｶｳﾝﾀ2非同期動作許可 (Asynchronous Timer/Counter2)

AS2が0を書かれると、ﾀｲﾏ/ｶｳﾝﾀ2はI/Oｸﾛｯｸ(clk I/O)からｸﾛｯｸ駆動されます。AS2が1を書かれると、ﾀｲﾏ/ｶｳﾝﾀ2はﾀｲﾏ発振器(TOSC1,TOSC2)ﾋﾟﾝに接続されたｸﾘｽﾀﾙ発振器からｸﾛｯｸ駆動されます。AS2の値が変更されると、ﾀｲﾏ/ｶｳﾝﾀ2(TCNT2)、比較ﾚｼﾞｽ
ﾀ(OCR2A,OCR2B)、ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀ(TCCR2A,TCCR2B)の内容は不正にされるかもしれません。
● ﾋﾞｯﾄ4 - TCN2UB : ﾀｲﾏ/ｶｳﾝﾀ2更新中ﾌﾗｸﾞ (Timer/Counter2 Update Busy)

ﾀｲﾏ/ｶｳﾝﾀ2が非同期に動き、ﾀｲﾏ/ｶｳﾝﾀ2(TCNT2)が書かれると、このﾋﾞｯﾄが設定(1)になります。TCNT2が一時保存ﾚｼﾞｽﾀから更新されてしまうと、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄの論理0はTCNT2が新しい値で更新される用意ができたことを示します。
● ﾋﾞｯﾄ3 - OCR2AUB : ﾀｲﾏ/ｶｳﾝﾀ2比較Aﾚｼﾞｽﾀ更新中ﾌﾗｸﾞ (Output Compare A Register2 Update Busy)

ﾀｲﾏ/ｶｳﾝﾀ2が非同期に動き、比較Aﾚｼﾞｽﾀ(OCR2A)が書かれると、このﾋﾞｯﾄが設定(1)になります。OCR2Aが一時保存ﾚｼﾞｽﾀから更新されてしまうと、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄの論理0はOCR2Aが新しい値で更新される用意ができたことを示します。
● ﾋﾞｯﾄ2 - OCR2BUB : ﾀｲﾏ/ｶｳﾝﾀ2比較Bﾚｼﾞｽﾀ更新中ﾌﾗｸﾞ (Output Compare B Register2 Update Busy)

ﾀｲﾏ/ｶｳﾝﾀ2が非同期に動き、比較Bﾚｼﾞｽﾀ(OCR2B)が書かれると、このﾋﾞｯﾄが設定(1)になります。OCR2Bが一時保存ﾚｼﾞｽﾀから更新されてしまうと、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄの論理0はOCR2Bが新しい値で更新される用意ができたことを示します。
● ﾋﾞｯﾄ1 - TCR2AUB : ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀA更新中ﾌﾗｸﾞ (Timer/Counter2 Control Register A Update Busy)

ﾀｲﾏ/ｶｳﾝﾀ2が非同期に動き、ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀA(TCCR2A)が書かれると、このﾋﾞｯﾄが設定(1)になります。TCCR2Aが一時保存ﾚｼﾞｽﾀから更新されてしまうと、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄの論理0はTCCR2Aが新しい値で更新される用意ができたことを示します。
● ﾋﾞｯﾄ0 - TCR2BUB : ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀB更新中ﾌﾗｸﾞ (Timer/Counter2 Control Register B Update Busy)

ﾀｲﾏ/ｶｳﾝﾀ2が非同期に動き、ﾀｲﾏ/ｶｳﾝﾀ2制御ﾚｼﾞｽﾀB(TCCR2B)が書かれると、このﾋﾞｯﾄが設定(1)になります。TCCR2Bが一時保存ﾚｼﾞｽﾀから更新されてしまうと、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されます。このﾋﾞｯﾄの論理0はTCCR2Bが新しい値で更新される用意ができたことを示します。
更新中ﾌﾗｸﾞが設定(1)中に3つのﾀｲﾏ/ｶｳﾝﾀ2 ﾚｼﾞｽﾀのどれかに書き込みが実行されると、更新された値は不正にされ、予期せぬ割り込みを起こす原因になるかもしれません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 120頁

ATmega328PB
21.11.9. GTCCR - 一般ﾀｲﾏ/ｶｳﾝﾀ制御ﾚｼﾞｽﾀ (General Timer/Counter Control Register)
名称 : GTCCR
変位 : $43 ($23)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$23です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

TSM

-

-

-

-

-

PSRASYPSRSYNC

R/W
0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

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

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

このﾋﾞｯﾄが1の時にﾀｲﾏ/ｶｳﾝﾀ2の前置分周器はﾘｾｯﾄします。通常、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって直ちに解除(0)されます。ﾀｲﾏ/ｶｳﾝﾀ
2が非同期動作の時にこのﾋﾞｯﾄが(1を)書かれると、このﾋﾞｯﾄは前置分周器がﾘｾｯﾄされてしまうまで1に留まります。TSMﾋﾞｯﾄが設定(1)される場合、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって解除(0)されません。
● ﾋﾞｯﾄ0 - PSRSYNC : 同期系ﾀｲﾏ/ｶｳﾝﾀ前置分周器ﾘｾｯﾄ (Prescaler Reset Timer/Counter 1,0)

このﾋﾞｯﾄが1の時にﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4の前置分周器はﾘｾｯﾄします。TSMﾋﾞｯﾄが設定(1)されている場合を除き、通常、このﾋﾞｯﾄはﾊｰﾄﾞｳｪｱによって直ちに解除(0)されます。ﾀｲﾏ/ｶｳﾝﾀ0とﾀｲﾏ/ｶｳﾝﾀ1,3,4は同じ前置分周器を共用し、この前置分周器のﾘｾｯﾄが言及したﾀｲﾏ/ｶｳﾝﾀに影響を及ぼすことに注意してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 121頁

ATmega328PB
22. OCM - 比較出力変調器 (Output Compare Modulator)
22.1. 概要
比較出力変調器(OCM)は搬送波を変調した波形の生成を許します。この変調器は16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ3の比較B出力部と16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ4の比較B出力部
からの出力を使います。これらのﾀｲﾏ/ｶｳﾝﾀについてのより多くの詳細に関しては「TC1,TC3,TC4 - PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ」をご覧ください。
この変調器が許可されると、構成図(右図)で示されるように2つの比較出力が共に変調されます。
関連ﾘﾝｸ TC1,TC3,TC4 - PWM付き16ﾋﾞｯﾄ ﾀｲﾏ/ｶｳﾝﾀ1,3,4

図22-1. 比較出力変調器構成図
ﾀｲﾏ/ｶｳﾝﾀ3

OC3B
PD2
INT0

ﾀｲﾏ/ｶｳﾝﾀ4

OC4B

22.2. 説明
比較3B出力部と比較4B出力部は出力に関してPD2ﾎﾟｰﾄ ﾋﾟﾝを共用します。比較出力部の出力(OC3BとOC4B)はこれらの1つが許可(換言すると、TCCRnA.COMnB1,0≠00に)されると、標準PORTD2ﾚｼﾞｽﾀを無効にします。OC3BとOC4Bの両方が同時に許可されると、この変調器が自動的に許可されます。
この変調器の機能等価回路図は下図で示されます。この図はﾀｲﾏ/ｶｳﾝﾀ部とﾎﾟｰﾄDのﾋﾞｯﾄ2ﾋﾟﾝ出力駆動回路部分を含みます。変調器が許可されると、PORTD2ﾚｼﾞｽﾀによって変調形式(論理積(AND)または論理和(OR))が選択できます。PORTD2=0の時は論理積(AND)が実行され、PORTD2=1の時は論理和(OR)が実行されます。
注: COMnB1,0ﾋﾞｯﾄ設定に拘らず、DDD2がﾎﾟｰﾄの方向を制御します。
図22-2. 比較出力変調器回路図(TC3B波形生成器から)

VCC

TC3

TCCR3A.COMB1
TCCR3A.COMB0
D

Q

変調器
OC3B
TCCR4A.COMB1
TCCR4A.COMB0(TC4B波形生成器から)

0
1

TC4
D

PD2

Q
D

OC4B
8-bit Data Bus

Q

D

PORTB7Q

DDRB722.2.1. ﾀｲﾐﾝｸﾞ例
下図は下図変調器の動作を図解します。この例でのﾀｲﾏ/ｶｳﾝﾀ3は(非反転)高速PWM動作に設定され、ﾀｲﾏ/ｶｳﾝﾀ4は比較交互出力(TCCR4A.COM4B1,0=01)のCTC波形動作を使用します。
図22-3. 比較出力変調器ﾀｲﾐﾝｸﾞ図

clkI/O
OC3B(FPWM動作)
OC4B(CTC動作)
PD2(PORTD2=0)
PD2(PORTD2=1)
周期

1

2

3

この例ではﾀｲﾏ/ｶｳﾝﾀ4が搬送波を供給し、一方変調する信号(変調波)はﾀｲﾏ/ｶｳﾝﾀ3の比較B出力によって生成されます。
PWM信号(OC3B)の分解能は変調によって減らされます。この減少係数は搬送波(OC4B)1周期のｼｽﾃﾑ ｸﾛｯｸ周期数と等価です。この例の分解能は係数2で減らされます(即ち1/2)。この減少理由は上図のPORTD2=0時のPD2出力の第2周期と第3周期で図解されます。第2周期のHigh区間は第3周期のHigh区間よりも1周期長いけれども、PD2出力の結果は両周期で等しくなります。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 122頁

ATmega328PB
23. SPI - 直列周辺ｲﾝﾀｰﾌｪｰｽ (Serial Peripheral Interface)

8-bit Data Bus

分周器

MSB (SPDRn) LSB
8ﾋﾞｯﾄ移動ﾚｼﾞｽﾀ

受信ﾃﾞｰﾀ緩衝部

(M)
SPIn
割り込み
要求

ｸﾛｯｸ回路

選択

S
M
M
S

S
M

MISOn
MOSIn
ピン制御回路23.2. 概要

clkI/O

移動クロック・ SPI0とSPI1の2つのSPIが利用可能
・ 全二重3線同期ﾃﾞｰﾀ転送
・ 主装置/従装置動作
・ LSB/MSB先行ﾃﾞｰﾀ転送
・ 設定変更可能な7つのﾋﾞｯﾄ速度
・ 送信完了割り込み要求ﾌﾗｸﾞ
・ 送信上書きﾌﾗｸﾞ保護・ ｱｲﾄﾞﾙ動作からの起動
・ 倍速(CK/2)主装置SPI動作

図23-1. SPI構成図

÷2
÷4
÷8
÷16
÷32
÷64
÷128

23.1. 特徴

SCKn
SSn

SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0

SPI2X

SPIF
WCOL

直列周辺ｲﾝﾀｰﾌｪｰｽはﾃﾞﾊﾞｲｽと種変機能部間や様々なAVRﾃﾞﾊﾞｲｽ間のSPI制御回路
高速同期ﾃﾞｰﾀ転送を許します。
USARTはSPI主装置動作でも使えます。「USARTでのSPI動作」章を参照
してください。
SPI部を許可するために電力削減ﾚｼﾞ
SPIn状態ﾚｼﾞｽﾀ
SPIn制御ﾚｼﾞｽﾀ
ｽﾀ(PRR0/1)のPRSPI0/PRSPI1ﾋﾞｯﾄは(SPSRn)(SPCRn)0を書かれなければなりません。
注: SPIﾋﾟﾝ配置については「ﾋﾟﾝ配置」記述と「入出力ﾎﾟｰﾄ」記述を参照してください。
SPIでの主装置と従装置のCPU間相互連結は下図で示されます。このｼｽﾃﾑは2つの移動ﾚｼﾞｽﾀと主装置ｸﾛｯｸ発生器から成ります。SPI主装置は希望した従装置のSSn(従装置選択)ﾋﾟﾝをLowへ引き込む時に一群の通信を開始します。主装置と従装置は各々の移動ﾚｼﾞｽﾀに送出すべきﾃﾞｰﾀを用意し、主装置はﾃﾞｰﾀを交換するのに必要なｸﾛｯｸ ﾊﾟﾙｽをSCKn信号線に生成します。ﾃﾞｰﾀは常にMOSIn(Master Out Slave In)信号線
を主装置から従装置へ、MISOn(Master In Slave Out)信号線を従装置から主装置へ移動されます。各ﾃﾞｰﾀ ﾊﾟｹｯﾄ後、主装置はSSn(従装置選択)ﾋﾟﾝをHighへ引き上げることによって従装置と同期を取ります。
主装置として設定されると、SPIｲﾝﾀｰﾌｪｰｽにはSSn信号線の自動制御がありません。これは通信が開始できるのに先立って使用者ｿﾌﾄｳｪｱによって操作されなければなりません。これが行われると、SPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)へのﾊﾞｲﾄ書き込みがSPIｸﾛｯｸ発生器を始動し、ﾊｰﾄﾞｳｪｱが従装置内へ8ﾋﾞｯﾄを移動します。1ﾊﾞｲﾄの移動後、SPIｸﾛｯｸ発生器は停止し、SPI状態ﾚｼﾞｽﾀ(SPSRn)の転送完了ﾌﾗｸﾞ(SPIF)を設定(1)します。SPI制御ﾚｼﾞｽﾀ(SPCRn)でSPI割り込み許可(SPIE)ﾋﾞｯﾄが設定(1)されていれば割り込みが要求されます。主装置はSPDRn内へ次ﾊﾞｲﾄを書くことによって次ﾊﾞｲﾄの移動を継続、またはSSn(従装置選択)信号線をHighへ引き上げることによってﾊﾟｹｯﾄの終了を指示することができます。最後の到着ﾊﾞｲﾄはその後の使用のため、緩衝ﾚｼﾞｽﾀ内に保持されます。
従装置として設定されると、SPIｲﾝﾀｰﾌｪｰｽはSSnﾋﾟﾝがHighに駆動される限り、MISOnをHi-Zにした休止状態に留まります。この状態
でﾌﾟﾛｸﾞﾗﾑはSPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)の内容を更新できますが、そのﾃﾞｰﾀはSSnﾋﾟﾝがLowに駆動されるまでSCKnﾋﾟﾝでの到着ｸﾛｯｸ
ﾊﾟﾙｽによって移動出力されません。1ﾊﾞｲﾄが完全に移動されてしまうと転送完了ﾌﾗｸﾞ(SPIF)が設定(1)されます。SPCRnでSPI割り込み
許可(SPIE)ﾋﾞｯﾄが設定(1)されていれば割り込みが要求されます。従装置は受信ﾃﾞｰﾀを読む前にSPDRn内へ送られるべき次のﾃﾞｰﾀの配置を続けられます。最後の到着ﾊﾞｲﾄはその後の使用のため、緩衝ﾚｼﾞｽﾀ内に保持されます。
このｼｽﾃﾑは送信側で単一緩衝、受信側で2重緩 図23-2. SPI 主装置/従装置の連結衝です。これは一連の移動全体が完了される前
MSB 主装置 LSB
MSB 従装置 LSBに送信されるべきﾊﾞｲﾄがSPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)
MISOn MISOn
8ﾋﾞｯﾄ移動ﾚｼﾞｽﾀ
8ﾋﾞｯﾄ移動ﾚｼﾞｽﾀへ書けないことを意味します。けれども、ﾃﾞｰﾀを
MOSIn MOSIn
受信するとき、次のﾃﾞｰﾀが完全に移動入力されSCKn SCKn
る前に受信したﾃﾞｰﾀがSPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)から読まれなければなりません。さもなければ始め
SSn
SSn
移動許可
ｸﾛｯｸ回路のﾊﾞｲﾄは失われます。
SPI従装置動作では制御論理回路がSCKnﾋﾟﾝの到着信号を採取します。このｸﾛｯｸ信号の正しい採取を保証するために、High/Lowの最小時間は各々2CPUｸﾛｯｸ周期よりも長くあるべきです。
SPInが許可されると、MOSIn, MISOn, SCKn, SSn
ﾋﾟﾝのﾃﾞｰﾀ方向は右表に従って無視されます。自動的なﾎﾟｰﾄ無視のより多くの詳細については「入出力ﾎﾟｰﾄ」記述を参照してください。

© 2018 Microchip Technology Inc.

表23-1. SPIﾋﾟﾝ方向規定
ﾋﾟﾝ名
主装置時の方向規定
従装置時の方向規定
SCKn ﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDRB/C)指定 入力
MISOn 入力
ﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDRB/C)指定
MOSIn ﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDRB/E)指定 入力
SSn
ﾎﾟｰﾄ方向ﾚｼﾞｽﾀ(DDRB/E)指定 入力
注: SPIﾋﾟﾝの方向定義方法については「入出力ﾎﾟｰﾄ」記述をご覧ください。

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 123頁

ATmega328PB
次のｺｰﾄﾞ例は主装置としてSPIを初期化する方法と簡単な送信を実行する方法を示します。例でのDDR_SPInはSPIﾋﾟﾝを制御する実際のﾎﾟｰﾄ方向ﾚｼﾞｽﾀに置き換えられなければなりません。DD_MOSIn, DD_MISOn, DD_SCKnはこれらのﾋﾟﾝに対する実際のﾎﾟｰﾄ方
向ﾋﾞｯﾄに置き換えられなければなりません。例えばMOSInがPB3ﾋﾟﾝに配置されるなら、DD_MOSInはDDB3、DDR_SPInはDDRBに置き換えます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SPI_M_Init: LDI
OUT
LDI
OUT
RET

R17,(1<<DD_MOSIn)|(1<<DD_SCKn)
DDR_SPIn,R17
R17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
SPCRn,R17

SPI_M_Tx:
OUT
SPDRn,R16
SPI_M_Tx_W: IN
R17,SPSRn
SBRS
R17,SPIF
RJMP
SPI_M_Tx_W;
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void SPI_MasterInit(void){
DDR_SPIn = (1<<DD_MOSIn)|(1<<DD_SCKn);
SPCRn = (1<<SPE)|(1<<MSTR)|(1<<SPR0);};MOSIn, SCKn=出力、他は入力値を取得;MOSIn, SCKn=出力、他は入力に設定;SPIn許可、主装置、16分周値を取得;SPIn許可、主装置、16分周に設定;呼び出し元へ復帰;ﾃﾞｰﾀ(R16)送信開始;SPIn状態ﾚｼﾞｽﾀ値取得;転送完了ならばｽｷｯﾌﾟ;転送完了まで待機;呼び出し元へ復帰/* MOSIn, SCKn=出力、他は入力に設定 *//* SPIn許可、主装置、16分周に設定 */void SPI_MasterTransmit(char cData){
SPDRn = cData;
while(!(SPSRn & (1<<SPIF)));}/* ﾃﾞｰﾀ送信開始 *//* 転送完了まで待機 */次のｺｰﾄﾞ例は従装置としてSPIを初期化する方法と簡単な受信を実行する方法を示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
SPI_S_Init: LDI
OUT
LDI
OUT
RET
SPI_S_Rx:

IN
SBRS
RJMP

R17,(1<<DD_MISOn)
DDR_SPIn,R17
R17,(1<<SPE)
SPCRn,R17;MISOn出力、他は入力値を取得;MISOn出力、他は入力に設定;SPIn許可値を取得;SPIn許可設定;呼び出し元へ復帰

R16,SPSRn
R16,SPIFSPI_S_Rx;SPIn状態ﾚｼﾞｽﾀ値取得;受信(転送)完了ならばｽｷｯﾌﾟ;受信(転送)完了まで待機;
IN
R16,SPDRn
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void SPI_SlaveInit(void){
DDR_SPIn = (1<<DD_MISOn);
SPCRn = (1<<SPE);};受信ﾃﾞｰﾀを取得;呼び出し元へ復帰/* MISOn出力、他は入力に設定 *//* SPIn許可設定 */char SPI_SlaveReceive(void){
while(!(SPSRn & (1<<SPIF)));
return SPDRn;}
関連ﾘﾝｸ/* 受信(転送)完了まで待機 *//* 受信ﾃﾞｰﾀと共に復帰 */ｺｰﾄﾞ例について© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 124頁

ATmega328PB
23.3. SSﾋﾟﾝの機能
23.3.1. 従装置動作
SPInが従装置として設定されると、従装置選択(SSn)ﾋﾟﾝは常に入力です。SSnがLowに保たれるとSPInは活性に(作動)され、使用者によってそのように設定されていればMISOnは出力になります。他の全てのﾋﾟﾝは入力です。SSnがHighに駆動されると、出力として使用者設定され得るMISOnを除く全てのﾋﾟﾝは入力、SPInは非活動で、それは到着ﾃﾞｰﾀを受信しないことを意味します。一旦SSnﾋﾟﾝがHighに駆動されると、SPIn論理回路はﾘｾｯﾄします。
このSSnﾋﾟﾝはﾊﾟｹｯﾄ/ﾊﾞｲﾄ同期に対して、従装置ﾋﾞｯﾄ計数器が主装置ｸﾛｯｸ発生器との同期を保つのに有用です。SSnﾋﾟﾝがHighに駆動されると、SPIn従装置は直ちに送受信論理回路をﾘｾｯﾄし、それは移動ﾚｼﾞｽﾀ内で部分的に受信したどのﾃﾞｰﾀも取り落とします。

23.3.2. 主装置動作
SPInが主装置(SPI制御ﾚｼﾞｽﾀ(SPCRn)の主装置許可(MSTR)ﾋﾞｯﾄ=1)として設定されると、SSnﾋﾟﾝの方向は使用者が決められます。
SSnが出力として設定されると、このﾋﾟﾝはSPInｼｽﾃﾑに影響を及ぼされない標準出力ﾋﾟﾝです。代表的にはこのﾋﾟﾝがSPIn従装置のSSnﾋﾟﾝを駆動するでしょう。
SSnが入力として設定されると、SPIn主装置動作を保証するため、それはHighに保持されなければなりません。SSnﾋﾟﾝが入力として定義されたSPIn主装置として設定される時に周辺回路によってSSnﾋﾟﾝがLowに駆動されると、SPInｼｽﾃﾑは他の主装置が従装置として選択してﾃﾞｰﾀ送信を始めると解釈します。ﾊﾞｽの衝突を避けるためにSPInｼｽﾃﾑは次の動作を行います。
1. SPCRnで主/従選択(MSTR)ﾋﾞｯﾄが解除(0)され、SPInｼｽﾃﾑは従装置になります。SPInｼｽﾃﾑが従装置になる結果としてMOSInとSCKnのﾋﾟﾝが入力になります。
2. SPI状態ﾚｼﾞｽﾀ(SPSRn)でSPI割り込み要求ﾌﾗｸﾞ(SPIF)が設定(1)され、そしてSPI割り込みが許可(SPCRnのSPIE=1)され、且つｽﾃｰ
ﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)なら、割り込みﾙｰﾁﾝが実行されます。
従って割り込み駆動SPIn送信が主装置動作で使われ、SSnがLowに駆動される可能性があるとき、その割り込み(処理)はMSTRﾋﾞｯﾄが未だ設定(1)されていることを常に検査すべきです。MSTRﾋﾞｯﾄが従装置選択によって解除(0)されてしまっていると、それはSPIn主装置動作を再び許可するため、使用者によって設定(1)されなければなりません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 125頁

ATmega328PB
23.4. ﾃﾞｰﾀ転送形式
直列ﾃﾞｰﾀに関してはSPI制御ﾚｼﾞｽﾀ(SPCRn)のSCKn位相(CPHA)とSCKn極性(CPOL)制御ﾋﾞｯﾄによって決定されるSCKn位相と極性で4つの組み合わせがあります。ﾃﾞｰﾀ ﾋﾞｯﾄは安定のためﾃﾞｰﾀ信号に対して充分な時間を保証するSCKn信号の反対端で移動出力と(入力)ﾗｯﾁが行われます。下表はCPOLとCPHAの設定を要約します。
表23-2. CPOL,CPHA機能動作
SPI動作種別番号 CPOL CPHA
0
0
0
1
1
0
0
2
1
1
3
1

SCKn後行端
出力設定/下降端
入力採取/下降端
出力設定/上昇端
入力採取/上昇端

SCKn先行端
入力採取/上昇端
出力設定/上昇端
入力採取/下降端
出力設定/下降端

SPIﾃﾞｰﾀ転送形式は以下の図で示されます。
図23-3. SPIﾃﾞｰﾀ転送形式 (CPHA=0)MSB先行 (DORD=0)
LSB先行 (DORD=1)

MSB
LSB

ﾋﾞｯﾄ6
ﾋﾞｯﾄ1

ﾋﾞｯﾄ5
ﾋﾞｯﾄ2

ﾋﾞｯﾄ4
ﾋﾞｯﾄ3

ﾋﾞｯﾄ3
ﾋﾞｯﾄ4

ﾋﾞｯﾄ2
ﾋﾞｯﾄ5

ﾋﾞｯﾄ1
ﾋﾞｯﾄ6

LSB
MSB

SCKn (CPOL=0)
動作種別 0
SCKn (CPOL=1)
動作種別 2MOSIn/MISOn入力採取
MOSIn (主装置送出)
MISOn (従装置送出)
SSn (従装置選択)
図23-4. SPIﾃﾞｰﾀ転送形式 (CPHA=1)MSB先行 (DORD=0)
LSB先行 (DORD=1)

MSB
LSB

ﾋﾞｯﾄ6
ﾋﾞｯﾄ1

ﾋﾞｯﾄ5
ﾋﾞｯﾄ2

ﾋﾞｯﾄ4
ﾋﾞｯﾄ3

ﾋﾞｯﾄ3
ﾋﾞｯﾄ4

ﾋﾞｯﾄ2
ﾋﾞｯﾄ5

ﾋﾞｯﾄ1
ﾋﾞｯﾄ6

LSB
MSB

SCKn (CPOL=0)
動作種別 1
SCKn (CPOL=1)
動作種別 3MOSIn/MISOn入力採取
MOSIn (主装置送出)
MISOn (従装置送出)
SSn (従装置選択)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 126頁

ATmega328PB
23.5. SPI用ﾚｼﾞｽﾀ
23.5.1. SPCRn - SPIn制御ﾚｼﾞｽﾀ (SPI Control Register n)
名称 : SPCR0: SPCR1
変位 : $4C ($2C) : $AC
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2C：--です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

SPIE

SPE

DORD

MSTR

CPOL

CPHA

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

1

0

SPR1,0
R/W
0

R/W
0

● ﾋﾞｯﾄ7 - SPIE : SPI割り込み許可 (SPI Interrupt Enable)

ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されて、SPI状態ﾚｼﾞｽﾀ(SPSRn)でSPI割り込み要求ﾌﾗｸﾞ(SPIF)が設定(1)されると、このﾋﾞｯﾄがSPI割り込みを実行させます。
● ﾋﾞｯﾄ6 - SPE : SPI許可 (SPI Enable)

SPEﾋﾞｯﾄが1を書かれるとSPInが許可されます。どのSPI操作を許可するにも、このﾋﾞｯﾄが設定(1)されなければなりません。
● ﾋﾞｯﾄ5 - DORD : ﾃﾞｰﾀ順選択 (Data Order)

DORDﾋﾞｯﾄが1を書かれるとﾃﾞｰﾀ語のLSBが最初に転送されます。DORDﾋﾞｯﾄが0を書かれるとMSBが最初に転送されます。
● ﾋﾞｯﾄ4 - MSTR : 主装置/従装置選択 (Master/Slave Select)

このﾋﾞｯﾄは1を書かれると主装置動作、論理0を書かれると従装置動作を選択します。SSnが入力として設定され、MSTRが設定(1)の間にLowへ駆動されると、MSTRが解除(0)され、SPI状態ﾚｼﾞｽﾀ(SPSRn)でSPI割り込み要求ﾌﾗｸﾞ(SPIF)が設定(1)になります。その後に使用者はSPI主装置動作を再び許可するためにMSTRを設定(1)しなければなりません。
● ﾋﾞｯﾄ3 - CPOL : SCK極性選択 (Clock Polarity)

このﾋﾞｯﾄが1を書かれると、ｱｲﾄﾞﾙ時にSCKnはHighです。CPOLが0を書かれると、ｱｲ
ﾄﾞﾙ時にSCKnはLowです。例については図23-3.と図23-4.を参照してください。CPO
L機能は右で要約されます。

表23-3. CPOL機能動作
CPOL SCKn先行端
0
上昇端
1
下降端

SCKn後行端
下降端
上昇端

表23-4. CPHA機能動作
CPHA SCKn先行端
0
入力採取
1
出力設定

SCKn後行端
出力設定
入力採取● ﾋﾞｯﾄ2 - CPHA : SCK位相選択 (Clock Phase)

このSCK位相選択(CPHA)ﾋﾞｯﾄの設定はﾃﾞｰﾀがSCKnの先行(先)端または後行(後)端で採取/(設定)されるかを決めます。例については図23-3.と図23-4.を参照してください。CPHA機能は右で要約されます。

● ﾋﾞｯﾄ1,0 - SPR1,0 : SPIｸﾛｯｸ選択 (SPI Clock Rate Select 1 and 0)

これら2ﾋﾞｯﾄは主装置として設定されたﾃﾞﾊﾞｲｽのSCKn速度を制御します。従装置でのSPR1とSPR0は無効です。SCKnと(ｼｽﾃﾑ)発振
器ｸﾛｯｸ周波数fOSC間の関連は下表で示されます。
表23-5. SCKn速度選択 (fOSC=CPUｸﾛｯｸ周波数)
SPR1
0
SPR0
0
1
SPI2X
0
1
fOSC/2fOSC/4fOSC/8
SCKn周波数

1
1

1
0

0
1
0

1

fOSC/16

fOSC/32

01

fOSC/640fOSC/128(訳注) 原書で個別に記述されているSPI0とSPI1の各ﾚｼﾞｽﾀは、本書に於いてSPInとして纏めて記述しています。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 127頁

ATmega328PB
23.5.2. SPSRn - SPIn状態ﾚｼﾞｽﾀ (SPI Status Register n)
名称 : SPSR0: SPSR1
変位 : $4D ($2D) : $AD
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2D：--です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

SPIF

WCOL

-

-

-

-

-

SPI2X

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R/W
0

● ﾋﾞｯﾄ7 - SPIF : SPI割り込み要求ﾌﾗｸﾞ (SPI Interrupt Flag)

直列転送が完了すると、このSPIFﾌﾗｸﾞが設定(1)されます。全割り込みが許可(ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄ=1)されて、SPI制御ﾚｼﾞｽﾀ(SPCRn)でSPI割り込み許可(SPIE)ﾋﾞｯﾄが設定(1)されるなら、割り込みが生成されます。SPInが主装置動作の時にSSnﾋﾟﾝが入力でLowに駆動されるなら、これもこのSPIFﾌﾗｸﾞを同様に設定(1)します。対応する割り込み処理ﾍﾞｸﾀを実行する時にSPIFはﾊｰﾄﾞｳｪｱによって解除(0)されます。代わりにSPIFが設定(1)されたSPI状態ﾚｼﾞｽﾀ(SPSRn)を始めに読み、その後にSPIﾃﾞｰﾀ ﾚ
ｼﾞｽﾀ(SPDRn)をｱｸｾｽすることによってもSPIFﾌﾗｸﾞは解除(0)されます。
● ﾋﾞｯﾄ6 - WCOL : 上書き発生ﾌﾗｸﾞ (Write Collision Flag)

ﾃﾞｰﾀ転送中にSPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)が書かれると、このWCOLﾋﾞｯﾄが設定(1)されます。WCOLﾋﾞｯﾄ(とSPIFﾋﾞｯﾄ)はWCOLが設定(1)されたSPI状態ﾚｼﾞｽﾀ(SPSRn)を始めに読み、その後にSPIﾃﾞｰﾀ ﾚｼﾞｽﾀ(SPDRn)をｱｸｾｽすることによって解除(0)されます。
● ﾋﾞｯﾄ0 - SPI2X : SPIn倍速許可 (Double SPI Speed Bit)

このﾋﾞｯﾄが論理1を書かれると、SPInが主装置動作の時にSCKn速度(SCKn周波数)が倍にされます(表23-5.参照)。これは最小SCKn
周期が2CPUｸﾛｯｸ周期であることを意味します。SPInが従装置として設定される時にSPInはfOSC(CPUｸﾛｯｸ周波数)/4またはそれ以下での動作のみ保証されます。
SPIｲﾝﾀｰﾌｪｰｽはﾌﾗｯｼｭ ﾒﾓﾘやEEPROMの書き換え(読み書き)にも使われます。ﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合については直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞをご覧ください。

23.5.3. SPDRn - SPInﾃﾞｰﾀ ﾚｼﾞｽﾀ (SPI Data Register n)
名称 : SPDR0: SPDR1
変位 : $4E ($2E) : $AE
ﾘｾｯﾄ : $xx
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀをｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2E：--です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
不定

R/W
不定

R/W
不定

R/W
不定

SPID7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
不定

R/W
不定

R/W
不定

R/W
不定

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

SPInﾃﾞｰﾀ ﾚｼﾞｽﾀはSPIn移動ﾚｼﾞｽﾀとﾚｼﾞｽﾀ ﾌｧｲﾙ(汎用ﾚｼﾞｽﾀ)間のﾃﾞｰﾀ転送に使われる読み書き可能なﾚｼﾞｽﾀです。このﾚｼﾞｽﾀへの書き込みがﾃﾞｰﾀ送信を開始します。このﾚｼﾞｽﾀの読み込みは移動ﾚｼﾞｽﾀの受信緩衝部読み出しを引き起こします。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 128頁

ATmega328PB
24. USART (Universal Synchronous Asynchronous Receiver Transceiver)24.1. 特徴
・ USART0とUSRAT1の2つのUSART・ 全二重動作 (独立した送受信ﾚｼﾞｽﾀ)・ 同期または非同期動作
・ 同期ｸﾛｯｸ駆動された主装置/従装置動作
・ 高分解能ﾎﾞｰﾚｰﾄ発振器
・ 5, 6, 7, 8または9ﾋﾞｯﾄ ﾃﾞｰﾀと1または2停止ﾋﾞｯﾄの直列ﾌﾚｰﾑの支援

・ ﾊｰﾄﾞｳｪｱによって支援された奇数または偶数ﾊﾟﾘﾃｨの生成と検査
・ ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝ検出・ ﾌﾚｰﾐﾝｸﾞ異常検出
・ 不正開始ﾋﾞｯﾄ検出とﾃﾞｼﾞﾀﾙ低域通過濾波器を含む雑音濾波器
・ 受信完了、送信完了、送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空きの3つの分離した割り込み
・ 複数ﾌﾟﾛｾｯｻ通信機能
・ 倍速非同期通信動作

24.2. 概要
USART(Universal Synchronous and Asynchronous Receiver and Transmitter)は高い柔軟性をもつ直列通信機能です。
USARTは主装置SPI動作での使用もできます。電力削減ﾚｼﾞｽﾀ(PRR0)のUSART電力削減(PRUSART0/1)ﾋﾞｯﾄはUSARTnを許可する
ために0を書かれなければなりません。PRUSART0とPRUSART1はPRR0に在ります。
関連ﾘﾝｸ USARTSPI - USARTでのSPI動作
入出力ﾎﾟｰﾄﾋﾟﾝ配置24.3. 構成図
構成図に於いて、CPUがｱｸｾｽ可能なﾚｼﾞｽﾀとI/Oﾋﾟﾝは赤文字(訳注:原文は太字)で示されます。構成図内の破線はUSARTの3つの主要部分、(上から)ｸﾛｯｸ生成部、送信部、受信部を分けます。制御ﾚｼﾞｽﾀは全部によって共用されます。ｸﾛｯｸ生成論理部はﾎﾞｰﾚｰﾄ発振器と同期従装置動作によって使われる外部ｸﾛｯｸ入力に対する同期化論理回路から成ります。転送ｸﾛｯｸ(XCKn)ﾋﾟﾝは同期転
送動作だけで使われます。送信部は単一書き込み緩衝部(UDRn)、直列移動ﾚｼﾞｽﾀ、ﾊﾟﾘﾃｨ発生器、異なる直列ﾌﾚｰﾑ形式を扱うための制御論理回路から成ります。書き込み緩衝部はどんなﾌﾚｰﾑ間の遅れもなしにﾃﾞｰﾀの継続転送を許します。受信部はｸﾛｯｸとﾃﾞｰﾀの再生部のため、USART部の最も複雑な部分です。再生部は非同期ﾃﾞｰﾀ受信で使われます。再生部に加えて、受信部は2重の受信緩衝部(UDRn)、移動ﾚｼﾞｽﾀ、ﾊﾟﾘﾃｨ検査器、制御論理回路を含みます。受信部は送信部と同じﾌﾚｰﾑ形式を支援し、ﾌﾚｰﾐﾝｸﾞ
異常、ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝ発生、ﾊﾟﾘﾃｨ誤りを検知できます。
図24-1. USART構成図
USARTﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRnH,UBRRnL)
ﾎﾞｰﾚｰﾄ発振器

ｸﾛｯｸ生成部
OSC
同期化回路

ﾋﾟﾝ制御回路

XCKn

ﾋﾟﾝ制御回路

TXDn

送信部
送信移動ﾚｼﾞｽﾀ
USART送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)

ﾊﾟﾘﾃｨ発生回路

UDRn

送信制御回路受信部

USART受信ﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)
受信ﾃﾞｰﾀ緩衝部

ﾊﾟﾘﾃｨ検査回路

受信制御回路

受信移動ﾚｼﾞｽﾀ

ﾃﾞｰﾀ再生回路

ﾋﾟﾝ制御回路

RXDn

ｸﾛｯｸ再生回路
USART制御/状態ﾚｼﾞｽﾀA (UCSRnA)

USART制御/状態ﾚｼﾞｽﾀB (UCSRnB)

USART制御/状態ﾚｼﾞｽﾀC (UCSRnC)

8-bit Data Bus
注: USARTﾋﾟﾝ配置については「ﾋﾟﾝ配置」記述と「入出力ﾎﾟｰﾄ」記述を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 129頁

ATmega328PB
24.4. ｸﾛｯｸ生成
ｸﾛｯｸ生成論理回路は送受信部用基準ｸﾛｯｸを生成します。USARTは標準非同期、倍速非同期、同期主装置、同期従装置の4つのｸ
ﾛｯｸ動作種別を支援します。USART制御/状態ﾚｼﾞｽﾀC(UCSRnC)のUSART動作種別選択(UMSEL0)ﾋﾞｯﾄは同期動作と非同期動作のどちらかを選びます。倍速動作(非同期動作のみ)はUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)にある倍速許可(U2X)ﾋﾞｯﾄによって制御されます。同期動作(UMSEL0=1)を使うとき、XCKnﾋﾟﾝに対する方向制御ﾋﾞｯﾄ(DDR_XCKn)はｸﾛｯｸ元が内部(主装置動作)または外部(従装置動作)のどちらかを制御します。このXCKnﾋﾟﾝは同期動作を使う時だけ活性(有効)です。
下はｸﾛｯｸ生成論理回路の構成図を示します。
図24-2. ｸﾛｯｸ生成部構成図
USARTﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRnH,UBRRnL)
前置分周器(下降計数器)fOSC
UBRRn+1

U2X
1/2

1/4

1/2

0
1

CK

XCKn

XCKI
XCKO

同期ﾚｼﾞｽﾀ (F/F)

DDR_XCKn

信号説明

ｴｯｼﾞ検出

UCPOL

0
1

0
1

Tx CLK
UMSEL01
0

Rx CLK

DDR_XCKn

Tx CLK: 送信ｸﾛｯｸ (内部信号)
Rx CLK: 受信ｸﾛｯｸ (内部信号)
XCKI: XCKnﾋﾟﾝからの内部入力信号 (同期従装置時)
XCKO: XCKnﾋﾟﾝへの内部出力信号 (同期主装置時)
DDR_XCKn : 対応するﾎﾟｰﾄ方向ﾚｼﾞｽﾀの方向ﾋﾞｯﾄ
fOSC: ｼｽﾃﾑ ｸﾛｯｸ周波数

24.4.1. ﾎﾞｰﾚｰﾄ発振器での内部ｸﾛｯｸ発生
内部ｸﾛｯｸ生成は非同期と同期主装置動作種別に対して使われます。本項の記述は前項のｸﾛｯｸ生成部構成図を参照してください。
USARTﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRn(UBRRnH:UBRRnL))と下降計数器は設定可能な前置分周器またはﾎﾞｰﾚｰﾄ発振器として機能するように接続されます。ｼｽﾃﾑ ｸﾛｯｸ( fOSC)で走行する下降計数器は0への下降計数時毎またはUBRRnLﾚｼﾞｽﾀが書かれる時にUBRRn値で設定されます。1ｸﾛｯｸはｶｳﾝﾀが0に達する毎に生成されます。このｸﾛｯｸがﾎﾞｰﾚｰﾄ発振器出力(= fOSC/(UBRRn+1))です。送信部
は動作種別に依存してﾎﾞｰﾚｰﾄ発振器出力を2,8,16分周します。ﾎﾞｰﾚｰﾄ発振器出力は受信部ｸﾛｯｸとﾃﾞｰﾀ再生部によって直接使われます。しかし、再生部はUSART動作種別選択(UMSEL0)、倍速許可(U2X)、DDR_XCKnﾋﾞｯﾄの状態によって設定される動作種別に依存して2,8,16段を使う順次処理回路を使います。
下表は内部的に生成したｸﾛｯｸ元を使う各動作種別に於けるﾎﾞｰﾚｰﾄ(bps)とUBRRn値の計算式を含みます。
表24-1. ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRn)値計算式
動作種別
ﾎﾞｰﾚｰﾄ計算式
UBRRn値計算式
fOSC
fOSC
標準速非同期動作 (U2X=0) BAUD＝UBRRn＝-1
16×(UBRRn+1)
16×BAUD
fOSC
fOSC
倍速非同期動作 (U2X=1)
UBRRn＝
BAUD＝-1
8×(UBRRn+1)
8×BAUD
fOSC
fOSC
同期主装置動作UBRRn＝
BAUD＝-1
2×(UBRRn+1)
2×BAUD
注: ﾎﾞｰﾚｰﾄは転送速度(ﾋﾞｯﾄ/1秒)で定義されます。
BAUD : ﾎﾞｰﾚｰﾄ (bps)
UBRRn : UBRRnHとUBRRnLﾚｼﾞｽﾀ値 (0～4095)
fOSC : ｼｽﾃﾑ発振器ｸﾛｯｸ周波数
いくつかのｼｽﾃﾑ ｸﾛｯｸ周波数に対するいくつかのUBRRn値の例は「ﾎﾞｰﾚｰﾄ設定例」で得られます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 130頁

ATmega328PB
24.4.2. 倍速動作 (U2X)
転送速度はUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)で倍速許可(U2X)ﾋﾞｯﾄを設定(1)することによって倍にできます。このﾋﾞｯﾄの設定は非同期動作に対してだけ有効です。同期動作を使うとき、このﾋﾞｯﾄは0に設定してください。
このﾋﾞｯﾄの設定(1)は事実上非同期通信に対する転送速度を倍にするﾎﾞｰﾚｰﾄ分周器の分周数を16から8に減らします。けれども、この場合、受信部がﾃﾞｰﾀ採取とｸﾛｯｸ再生に対して半分の(16から8に減じた)採取数しか使わず、従ってこの動作種別が使われる時にｼｽﾃﾑ ｸﾛｯｸとﾎﾞｰﾚｰﾄ設定の精度がより必要とされます。
送信部についての低下要因はありません。

24.4.3. 外部ｸﾛｯｸ
外部ｸﾛｯｸは同期従装置動作種別によって使われます。本項の記述は前項のｸﾛｯｸ生成部構成図を参照します。
XCKnﾋﾟﾝからの外部ｸﾛｯｸ入力は不確定ﾚﾍﾞﾙ状態(ﾒﾀｽﾃｰﾌﾞﾙ)の機会を最少とするために同期化ﾚｼﾞｽﾀによって採取されます。同期化ﾚｼﾞｽﾀからの出力は送受信部で使い得るのに先立ってｴｯｼﾞ検出器を通過しなければなりません。この処理手順が2CPUｸﾛｯｸ周期の遅延を持ち込み、このため最大外部XCKnｸﾛｯｸ周波数は次式によって制限されます。
f
f XCKn < OSC
4
fOSCの値がｼｽﾃﾑ ｸﾛｯｸ元の安定度に依存します。従って周波数変動によるﾃﾞｰﾀ消失の可能性を避けるため、いくらかの余裕分を追加することが推奨されます。

24.4.4. 同期ｸﾛｯｸ動作
同期動作が使われる(UMSEL=1)とき、XCKnﾋﾟﾝはｸﾛｯｸ入力(従装置)またはｸﾛｯｸ出力(主装置)のどちらかとして使われます。ﾃﾞｰﾀ採取またはﾃﾞｰﾀ変更とｸﾛｯｸ端間の依存性は同じです。基本原則はﾃﾞｰﾀ出力(TXDn)が変更されるｴｯｼﾞと反対のXCKnｸﾛｯｸ端でﾃﾞｰﾀ
入力(RXDn)が採取されることです。
USART制御/状態ﾚｼﾞｽﾀC(UCSRnC)のXCKn極性(UCP 図24-3. 同期動作XCKnﾀｲﾐﾝｸﾞOL)ﾋﾞｯﾄはﾃﾞｰﾀ採取とﾃﾞｰﾀ変更に対してどちらのｸﾛｯｸ変更
採取端が使われるのかを選びます。右のﾀｲﾐﾝｸﾞ構成図で示
XCKn
されるようにUCPOLが0の時にﾃﾞｰﾀはXCKnの上昇端で変更され、下降端で採取されます。UCPOLが設定(1)のUCPOL=1 RXDn/TXDn
場合、ﾃﾞｰﾀはXCKnの下降端で変更され、上昇端で採取されます。
UCPOL=0 RXDn/TXDn

24.5. ﾌﾚｰﾑ形式
1つの直列ﾌﾚｰﾑは複数のﾃﾞｰﾀ ﾋﾞｯﾄと同期ﾋﾞｯﾄ(開始ﾋﾞｯﾄ、停止ﾋﾞｯﾄ)、任意の異常検査用ﾊﾟﾘﾃｨ ﾋﾞｯﾄで定義されます。USARTは有効なﾌﾚｰﾑ形式として以下の組み合わせ30種全てを受け入れます。
・ 1 開始ﾋﾞｯﾄ
・ 5, 6, 7, 8, 9 ﾋﾞｯﾄ ﾃﾞｰﾀ
・ 奇数または偶数ﾊﾟﾘﾃｨ ﾋﾞｯﾄ、またはなし
・ 1 または 2 停止ﾋﾞｯﾄ
ﾌﾚｰﾑは最初に最下位ﾃﾞｰﾀ ﾋﾞｯﾄ(LSB)、その後に最上位ﾃﾞｰﾀ ﾋﾞｯﾄ(MSB)で終わる次ﾃﾞｰﾀ ﾋﾞｯﾄの、(合計で5～9ﾋﾞｯﾄの)ﾃﾞｰﾀ ﾋﾞｯﾄが後続する開始ﾋﾞｯﾄで始まります。許可したなら、ﾊﾟﾘﾃｨ ﾋﾞｯﾄがﾃﾞｰﾀ ﾋﾞｯﾄの後、1つまたは2つの停止ﾋﾞｯﾄの前に挿入されます。完全なﾌﾚｰﾑが送信されると、新規ﾌﾚｰﾑによって直ちに後続されるか、または通信線をｱｲﾄﾞﾙ状態(high)に設定できます。下図は組み合わせ可能なﾌﾚｰﾑ形式を図解します。[ ]付きﾋﾞｯﾄは任意選択です。
図24-4. 1ﾌﾚｰﾑの構成(IDLE)

St

D0

D1

D2

D3

St : 開始ﾋﾞｯﾄ (常にLow)
Dn : ﾃﾞｰﾀ ﾋﾞｯﾄ (0～8)
P : ﾊﾟﾘﾃｨ ﾋﾞｯﾄ (偶数または奇数)

D4

[D5]

[D6]

[D7]

[D8]

[P]

Sp1 [Sp2](St/IDLE)

1 ﾌﾚｰﾑ
Spn : 停止ﾋﾞｯﾄ (常にhigh)
IDLE : 転送なし (RXD,TXD=High)USARTによって使われるﾌﾚｰﾑ形式は以下によって設定されます。
・ ﾌﾚｰﾑ内のﾃﾞｰﾀ ﾋﾞｯﾄ数を選択するUSART制御/状態ﾚｼﾞｽﾀBとC(UCSRnB,UCSRnC)のﾃﾞｰﾀ長選択(UCSZ2,UCSZ1,0)ﾋﾞｯﾄ・ ﾊﾟﾘﾃｨを許可とﾊﾟﾘﾃｨ ﾋﾞｯﾄの種別(奇/偶)を設定するﾊﾟﾘﾃｨ選択(UPM1,0)ﾋﾞｯﾄ
・ 停止ﾋﾞｯﾄ数(1または2)を選択する停止ﾋﾞｯﾄ選択(USBS)ﾋﾞｯﾄ (受信部は第2停止ﾋﾞｯﾄを無視します。)
受信部と送信部は同じ設定を使います。これらのどのﾋﾞｯﾄの設定変更も、送受信部両方に対して進行中の通信を不正とすることに注意してください。ﾌﾚｰﾐﾝｸﾞ異常(FE)は最初の停止ﾋﾞｯﾄが0(Low)の場合にだけ検出されます。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 131頁

ATmega328PB
24.5.1. ﾊﾟﾘﾃｨ ﾋﾞｯﾄの計算
ﾊﾟﾘﾃｨ ﾋﾞｯﾄは全ﾃﾞｰﾀ ﾋﾞｯﾄの排他的論理和(Ex-OR)を行うことによって計算されます。奇数ﾊﾟﾘﾃｨが使われる場合は排他的論理和の結果が反転されます。ﾊﾟﾘﾃｨ ﾋﾞｯﾄとﾃﾞｰﾀ ﾋﾞｯﾄの関係は次のとおりです。
偶数ﾊﾟﾘﾃｨ ﾋﾞｯﾄ = D0 Ex-OR D1 Ex-OR D2 Ex-OR ～ Ex-OR Dn-1
奇数ﾊﾟﾘﾃｨ ﾋﾞｯﾄ = D0 Ex-OR D1 Ex-OR D2 Ex-OR ～ Ex-OR Dn-1 Ex-OR 1
n : ﾃﾞｰﾀ ﾋﾞｯﾄ長使った場合、ﾊﾟﾘﾃｨ ﾋﾞｯﾄは直列ﾌﾚｰﾑの最後のﾃﾞｰﾀ ﾋﾞｯﾄと最初の停止ﾋﾞｯﾄ間に配置されます。

24.6. USARTの初期化
何れかの通信が行えるのに先立ってUSARTは初期化されなければなりません。標準的な初期化手順は使用方法に依存するﾎﾞｰﾚｰ
ﾄ設定、ﾌﾚｰﾑ形式設定、送受信部許可から成ります。割り込み駆動USART操作に関して初期化を行うとき、ｽﾃｰﾀｽ ﾚｼﾞｽﾀの全割り込み許可(I)ﾋﾞｯﾄは解除(0)される(そして全割り込みが禁止される)べきです。
ﾎﾞｰﾚｰﾄまたはﾌﾚｰﾑ形式の変更を伴う再初期化を行う前には、ﾚｼﾞｽﾀが変更される期間中に進行中の送信がないことを確実にしてください。USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信完了(TXC)ﾌﾗｸﾞは送信部の全転送完了検査に使え、受信完了(RXC)ﾌﾗｸﾞは受信緩衝部内の未読ﾃﾞｰﾀ有無検査に使えます。この目的(次送信ﾀｲﾐﾝｸﾞ)にTXCﾌﾗｸﾞが使われる場合、各々の送信(USARTﾃﾞｰﾀ ﾚｼﾞ
ｽﾀ(UDRn)が書かれる)前にTXCﾌﾗｸﾞが解除(0)されなければなりません。
次の簡単なUSART初期化ｺｰﾄﾞ例が示すｱｾﾝﾌﾞﾘ言語とC言語の関数は機能的に同じです。この例は固定ﾌﾚｰﾑ形式でﾎﾟｰﾘﾝｸﾞを使う(割り込み不許可)非同期動作と仮定します。ﾎﾞｰﾚｰﾄ(UBRRn)値は関数の引数として与えられます。ｱｾﾝﾌﾞﾘ言語でのﾎﾞｰﾚｰﾄ引数は
R17:R16ﾚｼﾞｽﾀに格納されると仮定されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Init: OUTUBRRnH,R17
OUT
UBRRnL,R16
LDI
R16,(1<<USBS)|(3<<UCSZ0)OUT
UCSRnC,R16
LDI
R16,(1<<RXEN)|(1<<TXEN)OUTUCSRnB,R16
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例#define FOSC 1843200#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
void main(void){～
USART_Init(MYUBRR);～};ﾎﾞｰﾚｰﾄ設定(上位ﾊﾞｲﾄ);ﾎﾞｰﾚｰﾄ設定(下位ﾊﾞｲﾄ);ﾌﾚｰﾑ形式値を取得;ﾌﾚｰﾑ形式設定(8ﾋﾞｯﾄ,2停止ﾋﾞｯﾄ);送受信許可値を取得;送受信許可;呼び出し元へ復帰/* MCUｸﾛｯｸ周波数 *//* 目的USARTﾎﾞｰﾚｰﾄ速度 *//* 目的UBRRn値 *//* USART初期化 */void USART_Init(unsigned int baud){
UBRRnH = (unsigned char)(baud>>8);
UBRRnL = (unsigned char)baud;
UCSRnC = (1<<USBS)|(3<<UCSZ0):UCSRnB = (1<<RXEN)|(1<<TXEN);}/* ﾎﾞｰﾚｰﾄ設定(上位ﾊﾞｲﾄ) *//* ﾎﾞｰﾚｰﾄ設定(下位ﾊﾞｲﾄ) *//* ﾌﾚｰﾑ形式設定(8ﾋﾞｯﾄ,2停止ﾋﾞｯﾄ) *//* 送受信許可 */割り込みの禁止や引数としてﾌﾚｰﾑ形式を含めるなどで、より進化した初期化ﾙｰﾁﾝが作成できます。けれども多くの応用はﾎﾞｰﾚｰﾄ
や制御ﾚｼﾞｽﾀの固定した設定が使われ、これらの応用形式での初期化ｺｰﾄﾞは主ﾙｰﾁﾝに直接置けるか、または他のI/Oの初期化ｺｰﾄﾞと併せられます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 132頁

ATmega328PB
24.7. ﾃﾞｰﾀ送信 - USART送信部
USART送信部はUSART制御/状態ﾚｼﾞｽﾀB(UCSRnB)で送信許可(TXEN)ﾋﾞｯﾄを設定(1)することによって許可されます。送信部が許可されると、TXDnﾋﾟﾝの標準ﾋﾟﾝ動作はUSARTによって無視され、送信部の直列出力としての機能を与えられます。何かの送信を行
う前に一度はﾎﾞｰﾚｰﾄ、ﾌﾚｰﾑ形式、動作種別が設定されなければなりません。同期動作が使われる場合、XCKnﾋﾟﾝの(受信)ｸﾛｯｸは無視され、送信ｸﾛｯｸとして使われます。

24.7.1. 5～8ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ送信
ﾃﾞｰﾀ送信は送信されるべきﾃﾞｰﾀを送信緩衝部に設定することによって開始されます。CPUはUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)I/O位置へ書くことによって送信緩衝部に設定できます。送信緩衝部内のﾃﾞｰﾀは移動ﾚｼﾞｽﾀが新規ﾌﾚｰﾑを送る準備が整った時に移動ﾚｼﾞｽﾀへ移されます。移動ﾚｼﾞｽﾀはｱｲﾄﾞﾙ状態(送信進行中以外)、または直前のﾌﾚｰﾑの最後の停止ﾋﾞｯﾄ送信後、直ちに新規ﾃﾞｰﾀが設定されます。移動ﾚｼﾞｽﾀが新規ﾃﾞｰﾀを設定されると、ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRnH:UBRRnL)と倍速許可(U2X)ﾋﾞｯﾄ、また動作種別によってはXCKnﾋﾟﾝによって与えられる速度で1つの完全なﾌﾚｰﾑを転送します。8ﾋﾞｯﾄ未満のﾌﾚｰﾑを使うとき、UDRnに書かれた上位ﾋﾞｯﾄは無視されます。
次のｺｰﾄﾞ例はUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞのﾎﾟｰﾘﾝｸﾞを基準とした簡単なUSART送信関数を示します。この関数が使われ得る前にUSARTが初期化されなければなりません。ｱｾﾝﾌﾞﾘ言語での送るべきﾃﾞｰﾀはR16ﾚｼﾞｽﾀに格納されると仮定されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Tx:
SBIS
UCSRnA,UDRE
RJMP
USART_Tx;
OUT
UDRn,R16
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void USART_Transmit(unsigned char data){
while ( !(UCSRnA & (1<<UDRE)) );UDRn = data;};送信緩衝部空きでｽｷｯﾌﾟ;送信緩衝部空き待機;ﾃﾞｰﾀ送信(送信開始);呼び出し元へ復帰/* 送信緩衝部空き待機 *//* ﾃﾞｰﾀ送信(送信開始) */この関数は送信されるべき新規ﾃﾞｰﾀを設定する前に、UDREの検査によって送信緩衝部が空になるのを単純に待ちます。送信緩衝部空き割り込みが使われる場合、その割り込み処理ﾙｰﾁﾝがﾃﾞｰﾀを緩衝部内に書きます。

24.7.2. 9ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ送信
9ﾋﾞｯﾄ ﾃﾞｰﾀが使われる場合(UCSZ2～0=111)、ﾃﾞｰﾀの下位ﾊﾞｲﾄがUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)に書かれるのに先立って第9ﾋﾞｯﾄが
USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)の送信ﾃﾞｰﾀ ﾋﾞｯﾄ8(TXB8)ﾋﾞｯﾄに書かれなければなりません。
第9ﾋﾞｯﾄは複数ﾌﾟﾛｾｯｻ通信使用時のｱﾄﾞﾚｽ ﾌﾚｰﾑ識別、また例えば同期として扱う他の規約で使うことができます。
次のｺｰﾄﾞ例は9ﾋﾞｯﾄ ﾃﾞｰﾀを扱う送信関数を示します。ｱｾﾝﾌﾞﾘ言語での送るべきﾃﾞｰﾀはR17:R16ﾚｼﾞｽﾀに格納されると仮定されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Tx:
SBIS
UCSRnA,UDRE
RJMP
USART_Tx;
CBI
UCSRnB,TXB8
SBRC
R17,0
SBI
UCSRnB,TXB8
OUT
UDRn,R16
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void USART_Transmit(unsigned int data){
while ( !(UCSRnA & (1<<UDRE)) );UCSRnB &= ~(1<<TXB8);
if (data & 0x0100) UCSRnB |= (1<<TXB8);
UDRn = data;};送信緩衝部空きでｽｷｯﾌﾟ;送信緩衝部空き待機;第9ﾋﾞｯﾄを0に仮設定;送信すべき第9ﾋﾞｯﾄが0でｽｷｯﾌﾟ;第9ﾋﾞｯﾄを1に設定;ﾃﾞｰﾀ送信(送信開始);呼び出し元へ復帰/* 送信緩衝部空き待機 *//* TXB8を0に仮設定 *//* 第9ﾋﾞｯﾄをR17からTXB8へ複写 *//* ﾃﾞｰﾀ送信(送信開始) */注: これらの送信関数は一般的な機能で書かれています。UCSRBnの内容が静的(換言すると、UCSRnBのTXB8ﾋﾞｯﾄが初期化後に使われるだけ)ならば最適化できます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 133頁

ATmega328PB
24.7.3. 送信ﾌﾗｸﾞと割り込み
USART送信部には状態を示す2つのﾌﾗｸﾞ、USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)と送信完了(TXC)があります。両ﾌﾗｸﾞは割り込みを発生するのに使えます。
USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞは送信緩衝部が新規ﾃﾞｰﾀを受け取る準備ができているかどうかを示します。このﾋﾞｯﾄは送信緩
衝部が空の時に設定(1)され、送信緩衝部が移動ﾚｼﾞｽﾀに未だ移動されてしまっていない送信されるべきﾃﾞｰﾀを含む時に解除(0)されます。将来のﾃﾞﾊﾞｲｽとの共通性のため、USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)に書くとき、常にこのﾋﾞｯﾄに0を書いてください。
USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)でﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込み許可(UDRIE)ﾋﾞｯﾄが1を書かれると、(全割り込みが許可されていれ
ば)UDREﾌﾗｸﾞが設定(1)されている限り、USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込みが実行されます。UDREはUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)書き込みによって解除(0)されます。割り込み駆動ﾃﾞｰﾀ送信が使われるとき、ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込みﾙｰﾁﾝはUDREを解除(0)するために新規ﾃﾞｰﾀをUDRnに書くか、ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込みを禁止するかのどちらかを行わなければならず、さもなければ一旦割り込み
ﾙｰﾁﾝを終了しても新しい割り込みが(継続的に)起こります。
送信完了(TXC)ﾌﾗｸﾞは送信移動ﾚｼﾞｽﾀ内の完全なﾌﾚｰﾑが移動出力されてしまい、送信緩衝部に新規ﾃﾞｰﾀが現在存在しない時に設定(1)されます。TXCﾌﾗｸﾞは送信完了割り込みが実行される時に自動的に解除(0)されるか、またはこのﾋﾞｯﾄ位置に1を書くことによっても解除(0)できます。TXCﾌﾗｸﾞは送信応用ﾌﾟﾛｸﾞﾗﾑが送信完了後、直ちに通信回線を開放し、受信動作へ移行しなければならない(RS485規格のような)半二重(ﾊｰﾌﾃﾞｭｰﾌﾟﾚｯｸｽ)通信ｲﾝﾀｰﾌｪｰｽで有用です。
UCSRnBで送信完了割り込み許可(TXCIE)ﾋﾞｯﾄが1を書かれ、(全割り込みが許可されていれば)TXCﾌﾗｸﾞが設定(1)になる時にUSAR
T送信完了割り込みが実行されます。送信完了割り込みが使われるとき、割り込み処理ﾙｰﾁﾝはTXCﾌﾗｸﾞを解除(0)しなくてもよく、これは割り込みが実行されるとき、自動的に行われます。

24.7.4. ﾊﾟﾘﾃｨ発生器
ﾊﾟﾘﾃｨ発生器は直列ﾌﾚｰﾑ ﾃﾞｰﾀに対するﾊﾟﾘﾃｨ ﾋﾞｯﾄを計算します。ﾊﾟﾘﾃｨ ﾋﾞｯﾄが許可されると(UPM1=1)、送信部制御論理回路は送られているﾌﾚｰﾑの最終ﾃﾞｰﾀ ﾋﾞｯﾄと最初の停止ﾋﾞｯﾄ間にﾊﾟﾘﾃｨ ﾋﾞｯﾄを挿入します。

24.7.5. 送信の禁止
USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)のUSART送信許可(TXEN)ﾋﾞｯﾄへの0書き込み時、送信部の禁止は進行中と保留中の送信が完了される(換言すると、送信移動ﾚｼﾞｽﾀと送信緩衝部ﾚｼﾞｽﾀが送信されるべきﾃﾞｰﾀを含まない時)まで有効になりません。禁止されると、送信部はもはやTXDnﾋﾟﾝ(の標準ﾋﾟﾝ機能)を無効にしません。

24.8. ﾃﾞｰﾀ受信 - USART受信部
USART受信部はUSART制御/状態ﾚｼﾞｽﾀB(UCSRnB)で受信許可(RXEN)ﾋﾞｯﾄに1を書くことにって許可されます。受信部が許可されると、RXDnﾋﾟﾝの標準ﾋﾟﾝ動作はUSARTによって無視され、受信部の直列入力としての機能を与えられます。何か直列受信が行われ得る前に一度はﾎﾞｰﾚｰﾄ、ﾌﾚｰﾑ形式、動作種別が設定されなければなりません。同期動作が使われる場合、XCKnﾋﾟﾝのｸﾛｯｸは転送ｸﾛｯｸとして使われます。

24.8.1. 5～8ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ受信
受信部は有効な開始ﾋﾞｯﾄを検出する時にﾃﾞｰﾀ受信を開始します。開始ﾋﾞｯﾄに続く各ﾋﾞｯﾄはﾎﾞｰﾚｰﾄまたはXCKnｸﾛｯｸで採取され、ﾌﾚｰﾑの最初の停止ﾋﾞｯﾄが受信されるまで受信移動ﾚｼﾞｽﾀ内へ移動されます。第2停止ﾋﾞｯﾄは受信部によって無視されます。最初の停止ﾋﾞｯﾄが受信されると(換言すると、受信移動ﾚｼﾞｽﾀに完全なﾌﾚｰﾑが存在すると)、この移動ﾚｼﾞｽﾀの内容は受信緩衝部内へ移されます。受信緩衝部はUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)I/O位置を読むことによって読めます。8ﾋﾞｯﾄ未満のﾌﾚｰﾑを使うとき、UDRnから読むﾃﾞｰﾀの上位ﾋﾞｯﾄは0で覆われます。
次のｺｰﾄﾞ例はUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の受信完了(RXC)ﾌﾗｸﾞのﾎﾟｰﾘﾝｸﾞを基準とした簡単なUSART受信関数を示します。この関数が使われ得る前にUSARTが初期化されなければなりません。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Rx:
SBIS
UCSRnA,RXC
RJMP
USART_Rx;
IN
R16,UDRn
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned char USART_Receive(void){
while ( !(UCSRnA & (1<<RXC)) );return UDRn;};受信完了でｽｷｯﾌﾟ;受信完了待機;受信ﾃﾞｰﾀ取得;呼び出し元へ復帰/* 受信完了待機 *//* 受信ﾃﾞｰﾀ取得 */この関数は緩衝部を読んで値を戻す前に、RXCﾌﾗｸﾞの検査によって受信緩衝部にﾃﾞｰﾀが存在するのを単純に待ちます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 134頁

ATmega328PB
24.8.2. 9ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ受信
9ﾋﾞｯﾄ ﾃﾞｰﾀが使われる場合(UCSZ2～0=111)、USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)から下位ﾊﾞｲﾄを読むのに先立って第9ﾋﾞｯﾄがUSART制御/
状態ﾚｼﾞｽﾀB(UCSRnB)の受信ﾃﾞｰﾀ ﾋﾞｯﾄ8(RXB8)ﾋﾞｯﾄから読まれなければなりません。この規則はﾌﾚｰﾐﾝｸﾞ異常(FE)、ｵｰﾊﾞｰﾗﾝ発生(DOR)、ﾊﾟﾘﾃｨ誤り(UPE)状態ﾌﾗｸﾞにも適用されます。USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)から状態情報を読み、その後にUDRnからﾃﾞｰﾀを読んでください。UDRn I/O位置を読むことが受信FIFO緩衝部の状態を切り替え、その結果、FIFO内に保管される
RXB8,FE,DOR,UPEﾋﾞｯﾄ全てが切り替わります。
次のｺｰﾄﾞ例は9ﾋﾞｯﾄ ﾃﾞｰﾀと状態ﾋﾞｯﾄ両方を扱う簡単なUSART受信関数を示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Rx:
SBIS
UCSRnA,RXC
RJMP
USART_Rx;
IN
R18,UCSRnA
IN
R17,UCSRnB
IN
R16,UDRn
ANDI
R18,(1<<FE)|(1<<DOR)|(1<<UPE)
BREQ
USART_Rx_V;
LDI
R17,-1
LDI
R16,-1
USART_Rx_V: LSR
R17
ANDI
R17,$01
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
unsigned int USART_Receive(void){
unsigned char status, resh, resl;
while ( !(UCSRnA & (1<<RXC)) );status = UCSRnA;
resh = UCSRnB;
resl = UDRn;
if ( status & ((1<<FE)|(1<<DOR)|(1<<UPE)) ) return -1;
resh = (resh>>1) & 0x01;
return ((resh<<8) | resl);};受信完了でｽｷｯﾌﾟ;受信完了待機;状態ﾌﾗｸﾞ取得;受信第9ﾋﾞｯﾄ取得;受信ﾃﾞｰﾀ取得;受信異常検査;異常なしで分岐;異常で-1値設定;;RXB8ﾋﾞｯﾄをﾋﾞｯﾄ0位置へ移動;RXB8ﾋﾞｯﾄのみ有効;呼び出し元へ復帰/* 一時変数定義 *//* 受信完了待機 *//* 状態ﾌﾗｸﾞ取得 *//* 受信第9ﾋﾞｯﾄ取得 *//* 受信ﾃﾞｰﾀ取得 *//* 受信異常で-1値設定/復帰 *//* RXB8ﾋﾞｯﾄのみ有効最下位へ *//* 結果9ﾋﾞｯﾄ ﾃﾞｰﾀ取得/復帰 */この受信関数例は何か評価を行う前に、全てのI/Oﾚｼﾞｽﾀをﾚｼﾞｽﾀ ﾌｧｲﾙに読みます。これは読まれた緩衝部位置が可能な限り早く新規ﾃﾞｰﾀを自由に受け入れできるため、最適な受信緩衝部利用になります。

24.8.3. 受信完了ﾌﾗｸﾞと割り込み
USART受信部には受信部の状態を示す1つのﾌﾗｸﾞがあります。
USART受信完了(RXC)ﾌﾗｸﾞは未読ﾃﾞｰﾀが受信緩衝部に存在するかを示します。このﾌﾗｸﾞは受信緩衝部に未読ﾃﾞｰﾀが存在する時に1で、受信緩衝部が空の(換言すると、何も未読ﾃﾞｰﾀを含まない)時に0です。受信部が禁止される場合(RXEN=0)、受信緩衝部が破棄され、その結果としてRXCﾌﾗｸﾞは0になります。
USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)でUSART受信完了割り込み許可(RXCIE)ﾋﾞｯﾄが設定(1)されると、(全割り込みが許可されていれば)RXCﾌﾗｸﾞが設定(1)されている限り、USART受信完了割り込みが実行されます。割り込み駆動ﾃﾞｰﾀ受信が使われるとき、受信完了割り込みﾙｰﾁﾝはRXCﾌﾗｸﾞを解除(0)するためにUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)から受信したﾃﾞｰﾀを読まなければならず、さもなければ一旦割り込みﾙｰﾁﾝを終了しても新しい割り込みが(継続的に)起きます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 135頁

ATmega328PB
24.8.4. 受信異常ﾌﾗｸﾞ
USART受信にはﾌﾚｰﾐﾝｸﾞ異常(FE)、ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝ発生(DOR)、ﾊﾟﾘﾃｨ誤り(UPE)の3つの異常ﾌﾗｸﾞがあります。これら全てはUSART
制御/状態ﾚｼﾞｽﾀA(UCSRnA)を読むことでｱｸｾｽできます。異常ﾌﾗｸﾞに対する共通点は異常状態を示しているﾌﾚｰﾑと共に受信緩衝部に配置されることです。異常ﾌﾗｸﾞが緩衝されるため、USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)I/O位置を読むことが緩衝部読み出し位置を切り替えるので、UCSRnAは受信緩衝部(UDRn)の前に読まれなければなりません。異常ﾌﾗｸﾞに対するその他の共通点はｿﾌﾄｳｪｱがこのﾌﾗｸﾞ位置へ書き込みを行うことによって変更できないことです。しかし、将来のUSART(機能)実装の上位互換性のため、UCSRnAが書かれるとき、全てのﾌﾗｸﾞは0に設定されなければなりません。異常ﾌﾗｸﾞはどれも割り込みを生成できません。
ﾌﾚｰﾐﾝｸﾞ異常(FE)ﾌﾗｸﾞは受信緩衝部に格納された、次に読み込み可能なﾌﾚｰﾑの第1停止ﾋﾞｯﾄの状態を示します。FEﾌﾗｸﾞは停止
ﾋﾞｯﾄが正しく(Highとして)読まれた時に0で、停止ﾋﾞｯﾄが不正(Low)だった時にFEﾌﾗｸﾞは1です。このﾋﾞｯﾄは同期外れ状態の検出、中断状態検出、規約での操作に使えます。受信部が最初(第1)以外の全停止ﾋﾞｯﾄを無視するため、FEﾌﾗｸﾞはUSART制御/状態ﾚｼﾞｽﾀ
C(UCSRnC)の停止ﾋﾞｯﾄ選択(USBS)ﾋﾞｯﾄ設定によって影響を及ぼされません。将来のﾃﾞﾊﾞｲｽとの共通性のため、UCSRnAに書くとき、常にこのﾋﾞｯﾄを0に設定してください。
ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝ発生(DOR)ﾌﾗｸﾞは受信緩衝部が一杯状態のためのﾃﾞｰﾀ消失を示します。ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝは受信緩衝部(2ﾌﾚｰﾑ)が一杯で、(次の)新規ﾌﾚｰﾑ ﾃﾞｰﾀが受信移動ﾚｼﾞｽﾀで待っており、(更に次の)新規開始ﾋﾞｯﾄが検出される時に起きます。DORﾌﾗｸﾞが設定(1)なら、最後にUDRnから読んだﾌﾚｰﾑと次にUDRnから読むﾌﾚｰﾑ間で1つ以上の直列ﾌﾚｰﾑが失われます。将来のﾃﾞﾊﾞｲｽとの共通性のため、UCSRnAに書く時は常にこのﾋﾞｯﾄに0を書いてください。DORﾌﾗｸﾞは受信されたﾃﾞｰﾀが移動ﾚｼﾞｽﾀから受信緩衝部へ正常に移動された時に解除(0)されます。
ﾊﾟﾘﾃｨ誤り(UPE)ﾌﾗｸﾞは受信緩衝部内の次のﾌﾚｰﾑで受信時にﾊﾟﾘﾃｨ異常があったことを示します。ﾊﾟﾘﾃｨ検査が許可されていない場
合、UPEﾌﾗｸﾞは常に0が読めます。将来のﾃﾞﾊﾞｲｽとの共通性のため、UCSRnAに書くとき、常にこのﾋﾞｯﾄを0に設定してください。より多くの詳細については「ﾊﾟﾘﾃｨ ﾋﾞｯﾄの計算」と下の「ﾊﾟﾘﾃｨ検査器」をご覧ください。

24.8.5. ﾊﾟﾘﾃｨ検査器
ﾊﾟﾘﾃｨ検査器はUSART制御/状態ﾚｼﾞｽﾀC(UCSRnC)のﾊﾟﾘﾃｨ種別上位ﾋﾞｯﾄ(UPM1)が1を書かれる時に活性(有効)です。実行されるべきﾊﾟﾘﾃｨ検査の形式(偶数または奇数)はUCSRnC.UPM0ﾋﾞｯﾄによって選択されます。許可されると、ﾊﾟﾘﾃｨ検査器は到着ﾌﾚｰﾑ内のﾃﾞｰﾀ ﾋﾞｯﾄのﾊﾟﾘﾃｨを計算し、その結果と(受信)直列ﾌﾚｰﾑ内のﾊﾟﾘﾃｨ ﾋﾞｯﾄを比較します。検査の結果は受信ﾃﾞｰﾀ、停止ﾋﾞｯﾄと共に受信緩衝部に格納されます。その後USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)のﾊﾟﾘﾃｨ誤り(UPE)ﾌﾗｸﾞはﾌﾚｰﾑにﾊﾟﾘﾃｨ異常があるかを検査するため、ｿﾌﾄｳｪｱによって読むことができます。
UPEﾌﾗｸﾞは受信緩衝部から読まれ得る次ﾌﾚｰﾑで受信時にﾊﾟﾘﾃｨ異常があり、その時点でﾊﾟﾘﾃｨ検査が許可されていた(UPM1=1)場
合に設定(1)されます。このﾋﾞｯﾄはUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)が読まれるまで有効です。

24.8.6. 受信の禁止
送信部と対照的に受信部の禁止は即時です。従って受信進行中のﾃﾞｰﾀは失われます。禁止される(即ち、USART制御/状態ﾚｼﾞｽﾀ
B(UCSRnB)のUSART受信許可(RXEN)ﾋﾞｯﾄが0を書かれる)と、受信部はもはやRXDnﾎﾟｰﾄ ﾋﾟﾝの標準機能を無効にしません。受信FIFO緩衝部は受信部が禁止されると破棄されます。緩衝部内の残ﾃﾞｰﾀは失われます。

24.8.7. 受信緩衝部の破棄
受信FIFO緩衝部は受信が禁止されると破棄(換言すると、緩衝部は内容を空に)されます。未読ﾃﾞｰﾀは失われます。例えば異常状態のため、通常動作中に緩衝部が破棄されなければならない場合、USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の受信完了(RXC)ﾌﾗｸﾞが解除(0)されるまでUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)I/O位置を読んでください。
次のｺｰﾄﾞ例は受信緩衝部の破棄方法を示します。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Flush: SBISUCSRnA,RXC
RET;
IN
R16,UDRn
RJMP
USART_Flush
C言語ﾌﾟﾛｸﾞﾗﾑ例
void USART_Flush(void){
unsigned char dummy;
while ( UCSRnA & (1<<RXC) ) dummy=UDRn;}© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ;未読ﾃﾞｰﾀありでｽｷｯﾌﾟ;未読ﾃﾞｰﾀなしで復帰;ﾃﾞｰﾀ受信;未読ﾃﾞｰﾀなしまで継続/* 一時変数定義 *//* 未読ﾃﾞｰﾀ読み捨て */DS40001906C - 136頁

ATmega328PB
24.9. 非同期受信
USARTは非同期ﾃﾞｰﾀ受信を扱うためのｸﾛｯｸ再生とﾃﾞｰﾀ再生部を含みます。ｸﾛｯｸ再生論理回路は内部的に生成したﾎﾞｰﾚｰﾄ ｸﾛｯｸをRXDnﾋﾟﾝに到着する非同期直列ﾌﾚｰﾑに同期化するのに使われます。ﾃﾞｰﾀ再生論理回路は到着ﾋﾞｯﾄ毎に低域通過の濾波と採取をし、それによって受信部の雑音耐性を改善します。非同期受信動作範囲は内部ﾎﾞｰﾚｰﾄ ｸﾛｯｸ精度、到着ﾌﾚｰﾑ速度、ﾌﾚｰﾑ長のﾋﾞｯﾄ数に依存します。

24.9.1. 非同期ｸﾛｯｸ再生
ｸﾛｯｸ再生論理回路は内部ｸﾛｯｸを到着直列ﾌﾚｰﾑに同期化します。下図は到着ﾌﾚｰﾑの開始ﾋﾞｯﾄの採取手順を図解します。採取速
度は標準速動作でﾎﾞｰﾚｰﾄの16倍、倍速動作で8倍です。赤帯(訳注:原文は水平矢印)は採取処理のための同期変量を図示します。倍速動作(U2X=1)を使う時の広い変量時間に注意してください。採取番号0はRXDn信号がｱｲﾄﾞﾙ(即ち、通信の動きなし)の間に行われる採取です。
図24-5. 開始ﾋﾞｯﾄの採取
RXDn

ｱｲﾄﾞﾙ

採取位置
(U2X=0)0

採取位置(U2X=1)

0

0

1

2

1

3

4

2

5

6

3

7

開始ﾋﾞｯﾄ

ﾋﾞｯﾄ0

8

2

9 10 11 12 13 14 15 16 1

4

5

6

7

8

1

3
2

ｸﾛｯｸ再生論理回路がRXDn信号線でHigh(ｱｲﾄﾞﾙ)からLow(開始)の遷移を検出すると、開始ﾋﾞｯﾄ検出手順が開始されます。図で示されるように採取1は最初のLow採取を意味します。その後にｸﾛｯｸ再生回路は有効な開始ﾋﾞｯﾄが受信されるかを決めるために、標準速動作に対して採取8,9,10、倍速動作に対して採取4,5,6(図の赤数字(訳注:原文は箱枠内)で示された採取番号)を使います。これら3回で2回以上の採取が論理Highﾚﾍﾞﾙの場合(多数決)、この開始ﾋﾞｯﾄは尖頭雑音として捨てられ、受信部はRXDn上で次のHighからLowの遷移を探し始めます。けれども、有効な開始ﾋﾞｯﾄが検出された場合、ｸﾛｯｸ再生論理回路は同期化され、ﾃﾞｰﾀ再生が開始されます。この同期化手順は各開始ﾋﾞｯﾄ毎に繰り返されます。

24.9.2. 非同期ﾃﾞｰﾀ再生
受信部ｸﾛｯｸが開始ﾋﾞｯﾄに同期化されるとﾃﾞｰﾀ再生が始められます。ﾃﾞｰﾀ再生部は標準速動作で16段、倍速動作で8段の順列回路を使います。下図はﾃﾞｰﾀ ﾋﾞｯﾄとﾊﾟﾘﾃｨ ﾋﾞｯﾄの採取を示します。各採取は再生部の各段に等しい番号を与えられます。
図24-6. ﾃﾞｰﾀ ﾋﾞｯﾄとﾊﾟﾘﾃｨ ﾋﾞｯﾄの採取
RXDn ﾋﾞｯﾄn-1

ﾋﾞｯﾄn

採取位置
(U2X=0)15 16 1

採取位置
(U2X=1)

8

2

1

3

4

2

5

6

3

7

8

4

ﾋﾞｯﾄn+1

9 10 11 12 13 14 15 16 1
5

6

7

8

2

1

3
2

受信したﾋﾞｯﾄの論理値の決定は受信したﾋﾞｯﾄ中央の3採取で論理値の多数決を取ることによって行われます。2つまたは全3つの中
央採取(赤文字(訳注:原文は箱枠内)のそれらの採取番号によって記されるそれら)がHighﾚﾍﾞﾙならば受信したﾋﾞｯﾄは論理1が記録されます。2つまたは全3つの採取がLowﾚﾍﾞﾙならば受信したﾋﾞｯﾄは論理0が記録されます。この多数決手順はRXDnﾋﾟﾝの到着信号に対して低域通過濾波器(ﾛｰﾊﾟｽ ﾌｨﾙﾀ)のように働きます。この再生手順はその後に完全なﾌﾚｰﾑが受信されるまで繰り返されます。これには最初の(第1)停止ﾋﾞｯﾄを含みます。受信部はﾌﾚｰﾑの最初の停止ﾋﾞｯﾄだけを使います。
下図は停止ﾋﾞｯﾄの採取と次ﾌﾚｰﾑの最も早い開始ﾋﾞｯﾄ開始の可能性を示します。

図24-7. 停止ﾋﾞｯﾄの採取と次の開始ﾋﾞｯﾄの採取
RXDn

停止ﾋﾞｯﾄ

採取位置(U2X=0)15 16 1

採取位置
(U2X=1)

8

1

2

3
2

4

5
3

6

7
4

A
8

B 開始ﾋﾞｯﾄ C

9 10 0/1 0/1 0/1 14 15 16 1
5

6

0/1

8

1

2

3
2

ﾌﾚｰﾑ内の他のﾋﾞｯﾄに対して行われるのと同じ多数決が停止ﾋﾞｯﾄにも行われます。停止ﾋﾞｯﾄが論理0値と記録されると、ﾌﾚｰﾐﾝｸﾞ異常(FE)ﾌﾗｸﾞが設定(1)されます。
新規ﾌﾚｰﾑの開始ﾋﾞｯﾄを示すHighからLowへの遷移は多数決に使った最後のﾋﾞｯﾄ後に実現できます。標準速動作での最初のLowﾚ
ﾍﾞﾙ採取は上図のA点で獲得され得ます。倍速動作での最初のLowﾚﾍﾞﾙはB点に遅れます。C点は完全な長さの停止ﾋﾞｯﾄ(の終点)を示します。この早い開始ﾋﾞｯﾄ検出は受信部の動作範囲に影響します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 137頁

ATmega328PB
24.9.3. 非同期での動作範囲
受信部の動作範囲は受信したﾋﾞｯﾄ速度と内部的に生成したﾎﾞｰﾚｰﾄ間の不一致に依存します。送信部が速すぎるまたは遅すぎるﾋﾞｯ
ﾄ速度でﾌﾚｰﾑを送出したり、内部的に発生した受信部のﾎﾞｰﾚｰﾄが類似した基準周波数を持たない場合、受信部は開始ﾋﾞｯﾄでﾌﾚｰﾑを同期できません(下の推奨をご覧ください)。
次式は到着ﾃﾞｰﾀ速度と内部受信部ﾎﾞｰﾚｰﾄ間の比率計算に使えます。
Rslow =

(D+1)×S
S-1+D×S+SF

Rfast =

(D+2)×S(D+1)×S+SM

D: ﾃﾞｰﾀとﾊﾟﾘﾃｨのﾋﾞｯﾄ数 (5～10)
S: ﾋﾞｯﾄあたりの採取数 (標準速=16、倍速=8)SF: 多数決に使う最初の採取番号 (標準速=8、倍速=4)SM: 多数決に使う中心の採取番号 (標準速=9、倍速=5)
Rslow : は受信側ﾎﾞｰﾚｰﾄに対して許容できる最低受信ﾋﾞｯﾄ速度の比率です。
Rfast : は受信側ﾎﾞｰﾚｰﾄに対して許容できる最高受信ﾋﾞｯﾄ速度の比率です。
下表は許容できる最大受信部ﾎﾞｰﾚｰﾄ誤差一覧です。標準速動作には、より高いﾎﾞｰﾚｰﾄ変動許容力があることに注目してください。
表24-2. 標準速と倍速での受信部ﾎﾞｰﾚｰﾄ推奨最大許容誤差
標準速動作 (U2X=0)
倍速動作 (U2X=1)
D
Rslow(%) Rfast(%) 総合許容誤差(%) 推奨許容誤差(%) Rslow(%) Rfast(%) 総合許容誤差(%) 推奨許容誤差(%)
5
93.20
106.67-6.80～+6.67
94.12
105.66-5.88～+5.66
±3.0
±2.5
6
94.12
105.79±2.5
94.92
104.92-5.08～+4.92±2.0-5.88～+5.79
105.11
94.81-5.19～+5.11
±2.0
95.52
104.35-4.48～+4.35±1.5
7104.588
95.36-4.54～+4.58
±2.0
96.00
103.90-4.00～+3.90±1.5-4.19～+4.14
±1.5
96.39
103.53-3.61～+3.53
±1.5
9
95.81
104.1410
96.17
103.78-3.83～+3.78
±1.5
96.70
103.23-3.30～+3.23±1.0
注: Dはﾃﾞｰﾀ ﾋﾞｯﾄ数とﾊﾟﾘﾃｨ ﾋﾞｯﾄの合計ﾋﾞｯﾄ数です。
(訳注) 原書は表24-2.に標準速、表24-3.に倍速を記載していますが、比較が容易なように表24-2.として纏めました。
受信部ﾎﾞｰﾚｰﾄの推奨最大許容誤差は最大総合許容誤差を送信部と受信部で等分割するという仮定の元で作られました。
受信部ﾎﾞｰﾚｰﾄ誤差に対して2つの起こり得る原因があります。受信部のｼｽﾃﾑ ｸﾛｯｸ(OSC)は供給電圧範囲と温度範囲に関して常に若干の不安定性があります。ｼｽﾃﾑ ｸﾛｯｸを生成するのにｸﾘｽﾀﾙ発振子を使う時は殆ど問題ありませんが、(ｾﾗﾐｯｸ)振動子でのｼｽﾃﾑ
ｸﾛｯｸは振動子偏差に依存して2%を越えて異なるかもしれません。2つ目の誤り原因はより制御可能です。ﾎﾞｰﾚｰﾄ発振器は欲した
ﾎﾞｰﾚｰﾄを得るためにｼｽﾃﾑ周波数の正確な分周を常に行うことはできません。この場合、可能ならば受け入れ可能な低い誤差を与えるUBRRn値が使えます。

24.9.4. ﾌﾚｰﾑ開始検出
USARTﾌﾚｰﾑ開始検出器は開始ﾋﾞｯﾄ検出時にｱｲﾄﾞﾙ、A/D変換雑音低減、ﾊﾟﾜｰﾀﾞｳﾝ、ﾊﾟﾜｰｾｰﾌﾞ、ｽﾀﾝﾊﾞｲ、拡張ｽﾀﾝﾊﾞｲの休止動
作形態からMCUを起こすことができます。
RXDnﾋﾟﾝでHighからLowへの遷移が検出されると、内部8MHz発振器が給電されUSARTｸﾛｯｸが許可されます。ﾎﾞｰﾚｰﾄが内部8MHz
発振器始動時間に関して充分遅ければ、始動後にﾃﾞｰﾀ ﾌﾚｰﾑの残りを受信することができます。内部8MHz発振器の始動時間は供給電圧と温度で変化します。
USARTﾌﾚｰﾑ開始検出は非同期と同期の両動作形態で動きます。これはUSART制御/状態ﾚｼﾞｽﾀD(UCSRnD)のﾌﾚｰﾑ開始検出許可(SFDE)ﾋﾞｯﾄを(1に)書くことによって許可されます。USART開始割り込み許可(RXSIE)ﾋﾞｯﾄが設定(1)されるなら、開始検出時直ちに
USART受信開始割り込みが生成されます。
開始割り込みなしでこの機能使用時、開始検出論理回路は内部8MHz発振器とUSARTｸﾛｯｸを活性にし、同時にﾌﾚｰﾑが受信されつつあるだけです。他のｸﾛｯｸは受信完了割り込みがMCUを起こすまで停止されたままです。
同期動作形態での最大ﾎﾞｰﾚｰﾄは以下のようにﾃﾞﾊﾞｲｽが起こされる休止動作形態に依存します。
・ ｱｲﾄﾞﾙまたはA/D変換雑音低減動作: ｼｽﾃﾑ ｸﾛｯｸ周波数/4・ ﾊﾟﾜｰﾀﾞｳﾝ、ﾊﾟﾜｰｾｰﾌﾞ、ｽﾀﾝﾊﾞｲまたは拡張ｽﾀﾝﾊﾞｲ動作 : 500kbps
非同期動作形態での最大ﾎﾞｰﾚｰﾄは以下のようにﾃﾞﾊﾞｲｽが起こされる休止動作形態に依存します。
・ ｱｲﾄﾞﾙ動作: 活動動作と同じ
・ 他の休止動作 : 次表をご覧ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 138頁

ATmega328PB
表24-4. 標準速動作での最大総ﾎﾞｰﾚｰﾄ誤差
ﾎﾞｰﾚｰﾄ0～28.8kbps
38.4kbps
57.6kbps
76.8kbps
115.2kbps

5ﾋﾞｯﾄ+6.67～-5.88+6.63～-5.88+6.10～-5.88+5.59～-5.88+4.57～-5.88

6ﾋﾞｯﾄ+5.79～-5.08+5.75～-5.08+5.30～-5.08+4.85～-5.08+3.97～-5.08

ﾌﾚｰﾑの大きさ
7ﾋﾞｯﾄ
8ﾋﾞｯﾄ
+5.11～-4.48 +4.58～-4.00+5.08～-4.48 +4.55～-4.00+4.69～-4.48 +4.20～-4.00+4.29～-4.48 +3.85～-4.00+3.51～-4.48 +3.15～-4.00

9ﾋﾞｯﾄ+4.14～-3.61+4.12～-3.61+3.80～-3.61+3.48～-3.61+2.86～-3.61

10ﾋﾞｯﾄ+3.78～-3.30+3.76～-3.30+3.47～-3.30+3.18～-3.30+2.61～-3.30

ﾌﾚｰﾑの大きさ
7ﾋﾞｯﾄ
8ﾋﾞｯﾄ
+4.35～-3.03 +3.90～-2.70+4.29～-3.03 +3.85～-2.70+3.51～-3.03 +3.15～-2.70

9ﾋﾞｯﾄ+3.53～-2.44+3.48～-2.44+2.86～-2.44

10ﾋﾞｯﾄ+3.23～-2.22+3.18～-2.22+2.61～-2.22

表24-5. 倍速動作での最大総ﾎﾞｰﾚｰﾄ誤差
ﾎﾞｰﾚｰﾄ0～57.6kbps
76.8kbps
115.2kbps

5ﾋﾞｯﾄ+5.66～-4.00+5.59～-4.00+4.57～-4.00

6ﾋﾞｯﾄ+4.92～-3.45+4.85～-3.45+3.97～-3.45

24.10. 複数ﾌﾟﾛｾｯｻ通信動作
USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)での複数ﾌﾟﾛｾｯｻ通信動作(MPCM)ﾋﾞｯﾄの設定(1)はUSART受信部によって受信された到着ﾌ
ﾚｰﾑの選別機能を許可します。ｱﾄﾞﾚｽ情報を含まないﾌﾚｰﾑは無視され、受信緩衝部に格納されません。これは同一直列ﾊﾞｽ経由で通信する複数MCUのｼｽﾃﾑで、CPUによって扱われなければならない到着ﾌﾚｰﾑ数を効果的に減らします。送信部はMPCMﾋﾞｯﾄ設
定によって影響されませんが、複数ﾌﾟﾛｾｯｻ通信動作を利用するｼｽﾃﾑの一部の時は違うふうに使われなければなりません。
受信部が5～8ﾃﾞｰﾀ ﾋﾞｯﾄを含むﾌﾚｰﾑを受信するように設定されるなら、最初の停止ﾋﾞｯﾄはﾃﾞｰﾀまたはｱﾄﾞﾚｽ情報を含むﾌﾚｰﾑかどうかを示します。受信部が9ﾃﾞｰﾀ ﾋﾞｯﾄのﾌﾚｰﾑに設定されるなら、USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)の受信第9(RXB8)ﾋﾞｯﾄがｱﾄﾞﾚｽとﾃﾞｰﾀのﾌﾚｰﾑを識別するのに使われます。ﾌﾚｰﾑ種別(最初の停止または第9)ﾋﾞｯﾄが1の時にﾌﾚｰﾑはｱﾄﾞﾚｽを含みます。ﾌﾚｰﾑ種別
ﾋﾞｯﾄが0の時にそのﾌﾚｰﾑはﾃﾞｰﾀ ﾌﾚｰﾑです。
複数ﾌﾟﾛｾｯｻ通信動作は主MCUからのﾃﾞｰﾀを多くの従MCUで受信することを可能にします。これはどのMCUがｱﾄﾞﾚｽ指定されるかを検出するため、最初にｱﾄﾞﾚｽ ﾌﾚｰﾑを調べることによって行われます。特定の従MCUがｱﾄﾞﾚｽ指定されたなら、そのMCUは後続するﾃﾞｰﾀ ﾌﾚｰﾑを通常のように受信し、一方その他の従MCUは他のｱﾄﾞﾚｽ ﾌﾚｰﾑが受信されるまで受信したﾌﾚｰﾑを無視します。

24.10.1. 複数ﾌﾟﾛｾｯｻ通信の使用法
主MCUとして動作するMCUは9ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ形式(UCSZ=7)を使えます。UCSRnBの送信第9(TXB8)ﾋﾞｯﾄはｱﾄﾞﾚｽ ﾌﾚｰﾑ時に設定(1)、またはﾃﾞｰﾀ ﾌﾚｰﾑ時に解除(0)されて送信されなければなりません。この場合、従MCUは9ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ形式の使用に設定されなければなりません。
複数ﾌﾟﾛｾｯｻ通信動作でﾃﾞｰﾀを交換するのに次の手順が使われるべきです。
1. 全ての従MCUは複数ﾌﾟﾛｾｯｻ通信動作です(UCSRnAの複数ﾌﾟﾛｾｯｻ通信動作(MPCM)ﾋﾞｯﾄが設定(1))。
2. 主MCUはｱﾄﾞﾚｽ ﾌﾚｰﾑを送り、全ての従装置がこのﾌﾚｰﾑを受信し、これを読みます。従CPUでは通常のようにUCSRnAで受信完了(RXC)ﾌﾗｸﾞが設定(1)されます。
3. 各従MCUはUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)を読み、選択されたかを判定します。選択された場合はUCSRnAのMPCMﾋﾞｯﾄを解除(0)し、そうでなければ(非選択の場合は)MPCMﾋﾞｯﾄ設定を保ち、次のｱﾄﾞﾚｽ ﾌﾚｰﾑを待ちます。
4. ｱﾄﾞﾚｽ指定されたMCUは新規ｱﾄﾞﾚｽ ﾌﾚｰﾑが受信されるまで全ﾃﾞｰﾀ ﾌﾚｰﾑを受信します。MPCMﾋﾞｯﾄが未だ設定(1)されている他の従CPUはこのﾃﾞｰﾀ ﾌﾚｰﾑを無視します。
5. 最後のﾃﾞｰﾀ ﾌﾚｰﾑがｱﾄﾞﾚｽ指定されたMCUによって受信されると、ｱﾄﾞﾚｽ指定されたMCUはMPCMﾋﾞｯﾄを設定(1)し、主装置からの新規ｱﾄﾞﾚｽ ﾌﾚｰﾑを待ちます。以降、処理は手順2.からを繰り返します。
5～8ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ形式のどの使用も可能ですが、受信側が使うnとn+1ﾋﾞｯﾄ ﾃﾞｰﾀ ﾌﾚｰﾑ形式間を切り替えなければならないため非実用的です。これは送信部と受信部が同じﾃﾞｰﾀ ﾋﾞｯﾄ長設定を使うため、全二重(ﾌﾙﾃﾞｭｰﾌﾟﾚｯｸｽ)動作を困難にします。5～8ﾋﾞｯﾄ
ﾃﾞｰﾀ ﾌﾚｰﾑが使われる場合、最初の停止ﾋﾞｯﾄがﾌﾚｰﾑ種別を示すのに使われるので、送信部は2停止ﾋﾞｯﾄ使用(USBS=1)に設定されなければなりません。
MPCMﾋﾞｯﾄを設定(1)または解除(0)するのに読み-修正-書き(ﾘｰﾄﾞ ﾓﾃﾞﾌｧｲ ﾗｲﾄ)命令(SBIとCBI)を使ってはいけません。MPCMﾋﾞｯﾄ
は送信完了(TXC)ﾌﾗｸﾞと同じI/O位置を共用しており、SBIまたはCBI命令を使うと偶然に解除(0)されるかもしれません。
(訳注) 本ﾃﾞﾊﾞｲｽではUCSRnAのI/OｱﾄﾞﾚｽがSBI,CBI命令適用範囲外なので上記記述は不適切です。但し、命令の組み合わせによる同様処理の場合に対して、上記注意の本意は適切(有効)です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 139頁

ATmega328PB
24.11. ﾎﾞｰﾚｰﾄ設定例
標準的なｸﾘｽﾀﾙ発振子やｾﾗﾐｯｸ振動子の周波数に対して最も一般的に使われる非同期動作のﾎﾞｰﾚｰﾄは、下表で一覧されるように
UBRRn設定を使うことによって生成できます。目的のﾎﾞｰﾚｰﾄに対して設定誤差1.5%(標準速:U2X=0)、1.0%(倍速:U2X=1)以上を赤字で示します(訳注:原書の本文は0.5%未満を太字)。より高い誤差率でも受け入れ可能ですが、特に長い直列ﾌﾚｰﾑで誤差率が高いと、受信部は雑音耐性が低下します(「非同期での動作範囲」項もご覧ください)。誤差率は次式を使って計算されます。
誤差率(%) =- 1 ) ×100(%)( UBRRn設定ﾎﾞｰﾚｰﾄ(最近似値)
目的のﾎﾞｰﾚｰﾄ

表24-6. Xtal、ﾎﾞｰﾚｰﾄ対UBRRnH,UBRRnL設定 (UBRR=UBRRnH:UBRRnL)
ﾎﾞｰﾚｰﾄ
(bps)
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115.2k
230.4k250k
最高速
ﾎﾞｰﾚｰﾄ
(bps)
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115.2k
230.4k
250k
500k
1M
最高速

1MHz
1.8432MHz
2MHz
2.4576MHz
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%)
51
0.2
103
0.2
95
0.0
191
0.0
103
0.2
207
0.2
127
0.0
255
0.0
25
0.2
51
0.2
47
0.0
95
0.0
51
0.2
103
0.2
63
0.0
127
0.0
12
0.2
25
0.2
23
0.0
47
0.0
25
0.2
51
0.2
31
0.0
63
0.0
6
-7.0
12
0.2
11
0.0
23
0.0
12
0.2
25
0.2
15
0.0
31
0.0
3
8.5
8
-3.5
7
0.0
15
0.0
8
-3.5
16
2.1
10
-3.0
20
1.6
2
8.5
6
-7.0
5
0.0
11
0.0
6
-7.0
12
0.2
7
0.0
15
0.0
1
8.5
3
8.5
3
0.0
7
0.0
3
8.5
8
-3.5
4
6.7
10
-3.0
1
-18.6
2
8.5
2
0.0
5
0.0
2
8.5
6
-7.0
3
0.0
7
0.0
0
8.5
1
8.5
1
0.0
3
0.0
1
8.5
3
8.5
2
-11.1
4
6.7
0
-18.6
1
-18.6
1
-25.0
2
0.0
1
-18.6
2
8.5
1
0.0
3
0.0
0
8.5
0
0.0
1
0.0
0
8.5
1
8.5
0
33.3
2
-11.1
0
-45.7
0
-50.0
0
0.0
0
-45.7
0
8.5
0
-33.3
0
33.3
0
-7.8
0
0.0
0
22.9
62500
125k
115.2k
230.4k125k
250k
153.6k
307.2k
3.2768MHz
3.6864MHz
4MHz
4.608MHz
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%)
170
-0.2
340
0.1
191
0.0
384
0.0
207
0.2
416
-0.1
239
0.0
479
0.0
84
0.4
170
-0.2
95
0.0
191
0.0
103
0.2
207
0.2
119
0.0
239
0.0
42
-0.8
84
0.4
47
0.0
95
0.0
51
0.2
103
0.2
59
0.0
119
0.0
20
1.6
42
-0.8
23
0.0
47
0.0
25
0.2
51
0.2
29
0.0
59
0.0
13
1.6
27
1.6
15
0.0
31
0.0
16
2.1
34
-0.8
19
0.0
39
0.0
10
-3.0
20
1.6
11
0.0
23
0.0
12
0.2
25
0.2
14
0.0
29
0.0
6
1.6
13
1.6
7
0.0
15
0.0
8
-3.5
16
2.1
9
0.0
19
0.0
4
6.7
10
-3.0
5
0.0
11
0.0
6
-7.0
12
0.2
7
-6.3
14
0.0
3
-11.1
6
1.6
3
0.0
7
0.0
3
8.5
8
-3.5
4
0.0
9
0.0
2
-11.1
4
6.7
2
0.0
5
0.0
2
8.5
6
-7.0
3
-6.3
7
-6.3
1
-11.1
3
-11.1
1
0.0
3
0.0
1
8.5
3
8.5
2
-16.7
4
0.0
0
-11.1
1
-11.1
0
0.0
1
0.0
0
8.5
1
8.5
0
25.0
2
-16.7
1
-18.1
0
-7.8
1
-7.8
0
0.0
1
0.0
0
15.2
1
15.2
0
-18.1
0
-7.8
0
0.0
0
-42.4
0
15.2
0
-42.4
204.8k
409.6k
230.4k
460.8k
250k
500k
288k
576k

注: 最高速はUBRR=0、誤差=0.0%です。

以降の周波数は次頁へ続く。

(訳注) 原書では頁割された表毎に表番号24-6.～9.となっていますが、共通性から纏めて表24-6.としました。
原書に対して数種の発振周波数を追加しました。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 140頁

ATmega328PB
表24-6 (続き). Xtal、ﾎﾞｰﾚｰﾄ対UBRRnH,UBRRnL設定 (UBRR=UBRRnH:UBRRnL)
ﾎﾞｰﾚｰﾄ
(bps)
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115.2k
230.4k
250k
500k
1M
最高速
ﾎﾞｰﾚｰﾄ
(bps)
1200
2400
4800
9600
14400
19200
28800
38400
57600
76800
115.2k
230.4k
250k
500k
1M
最高速

4.9152MHz
6.144MHz
7.3728MHz
8MHz
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%)
255
0.0
511
0.0
319
0.0
639
0.0
383
0.0
767
0.0
416
-0.1
832
0.0
127
0.0
255
0.0
159
0.0
319
0.0
191
0.0
383
0.0
207
0.2
416
-0.1
63
0.0
127
0.0
79
0.0
159
0.0
95
0.0
191
0.0
103
0.2
207
0.2
31
0.0
63
0.0
39
0.0
79
0.0
47
0.0
95
0.0
51
0.2
103
0.2
20
1.6
42
-0.8
26
-1.2
52
0.6
31
0.0
63
0.0
34
-0.8
68
0.6
15
0.0
31
0.0
19
0.0
39
0.0
23
0.0
47
0.0
25
0.2
51
0.2
10
-3.0
20
1.6
12
2.6
26
-1.2
15
0.0
31
0.0
16
2.1
34
-0.8
7
0.0
15
0.0
9
0.0
19
0.0
11
0.0
23
0.0
12
0.2
25
0.2
4
6.7
10
-3.0
6
-4.8
12
2.6
7
0.0
15
0.0
8
-3.5
16
2.1
3
0.0
7
0.0
4
0.0
9
0.0
5
0.0
11
0.0
6
-7.0
12
0.2
2
-11.1
4
6.7
2
11.1
6
-4.8
3
0.0
7
0.0
3
8.5
8
-3.5
1
33.3
2
-11.1
1
-16.7
2
11.1
1
0.0
3
0.0
1
8.5
3
8.5
1
22.9
2
-18.1
1
-23.2
2
2.4
1
-7.8
3
0.0
1
0.0
3
0.0
0
-38.6
0
22.9
0
-23.2
1
-23.2
0
-7.8
1
-7.8
0
0.0
1
0.0
0
-38.6
0
-23.2
0
-7.8
0
0.0
307.2k
614.4k384k
768k
460.8k
921.6k
500k
1M
9.216MHz
9.8304MHz
10MHz
11.0592MHz
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%)
479
0.0
959
0.0
511
0.0
1023
0.0
520
-0.0
1041
-0.0
575
0.0
1151
0.0
239
0.0
479
0.0
255
0.0
511
0.0
259
0.2
520
-0.0
287
0.0
575
0.0
119
0.0
239
0.0
127
0.0
255
0.0
129
0.2
259
0.2
143
0.0
287
0.0
59
0.0
119
0.0
63
0.0
127
0.0
64
0.2
129
0.2
71
0.0
143
0.0
39
0.0
79
0.0
42
-0.8
84
0.4
42
0.9
86
-0.2
47
0.0
95
0.0
29
0.0
59
0.0
31
0.0
63
0.0
32
-1.4
64
0.2
35
0.0
71
0.0
19
0.0
39
0.0
20
1.6
42
-0.8
21
-1.4
42
0.9
23
0.0
47
0.0
14
0.0
29
0.0
15
0.0
31
0.0
15
1.8
32
-1.4
17
0.0
35
0.0
9
0.0
19
0.0
10
-3.0
20
1.6
10
-1.4
21
-1.4
11
0.0
23
0.0
7
6.7
14
0.0
7
0.0
15
0.0
7
1.8
15
1.8
8
0.0
17
0.0
4
0.0
9
0.0
4
6.7
10
-3.0
4
8.5
10
-1.4
5
0.0
11
0.0
2
-16.7
4
0.0
2
-11.1
4
6.7
2
-9.6
4
8.5
2
0.0
5
0.0
1
15.2
4
-7.8
1
-23.2
4
-1.7
2
-16.7
4
0.0
2
-7.8
5
-7.8
0
15.2
1
15.2
0
22.9
1
22.9
0
25.0
2
-16.7
0
38.2
2
-7.8
0
-42.4
0
15.2
0
-38.6
0
22.9
0
-37.5
0
25.0
0
-30.9
0
38.2
576k
1.152M
614.4k
1.2288M
625k
1.25M
691.2k
1.3824M

14.7456MHz
16MHz
18.4320MHz
20MHz
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
U2X=0
U2X=1
UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%) UBRR 誤差(%)
1200
767
0.0
1533
0.0
832
0.0
1666
0.0
959
0.0
1919
0.0
1041
0.0
2082
0.0
2400
383
0.0
767
0.0
416
-0.1
832
0.0
479
0.0
959
0.0
520
0.0
1041
0.0
4800
191
0.0
383
0.0
207
0.2
416
-0.1
239
0.0
479
0.0
259
0.2
520
0.0
9600
95
0.0
191
0.0
103
0.2
207
0.2
119
0.0
239
0.0
129
0.2
259
0.2
14400
63
0.0
127
0.0
68
0.6
138
-0.1
79
0.0
159
0.0
86
-0.2
173
-0.2
19200
47
0.0
95
0.0
51
0.2
103
0.2
59
0.0
119
0.0
64
0.2
129
0.2
28800
31
0.0
63
0.0
34
-0.8
68
0.6
39
0.0
79
0.0
42
0.9
86
-0.2
38400
23
0.0
47
0.0
25
0.2
51
0.2
29
0.0
59
0.0
32
-1.4
64
0.2
57600
15
0.0
31
0.0
16
2.1
34
-0.8
19
0.0
39
0.0
21
-1.4
42
0.9
76800
11
0.0
23
0.0
12
0.2
25
0.2
14
0.0
29
0.0
15
1.7
32
-1.4
115.2k
7
0.0
15
0.0
8
-3.5
16
2.1
9
0.0
19
0.0
10
-1.4
21
-1.4
230.4k
3
0.0
7
0.0
3
8.5
8
-3.5
4
0.0
9
0.0
4
8.5
10
-1.4
250k
3
-7.8
6
5.3
3
0.0
7
0.0
4
-7.8
8
2.4
4
0.0
9
0.0
500k
1
-7.8
3
-7.8
1
0.0
3
0.0
1
15.2
4
-7.8
1
25.0
4
0.0
1M
0
-7.8
1
-7.8
0
0.0
1
0.0
0
15.2
1
15.2
0
25.0
1
25.0
921.6k
1.8432M
1M
2M
1.152M
2.304M
1.25M
2.5M
最高速

ﾎﾞｰﾚｰﾄ(bps)

注: 最高速はUBRR=0、誤差=0.0%です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 141頁

ATmega328PB
24.12. USART用ﾚｼﾞｽﾀ24.12.1. UDRn - USARTnﾃﾞｰﾀ ﾚｼﾞｽﾀ (USART I/O Data Register n)
同じI/Oｱﾄﾞﾚｽを共用するUSART受信ﾃﾞｰﾀ緩衝ﾚｼﾞｽﾀとUSART送信ﾃﾞｰﾀ緩衝ﾚｼﾞｽﾀはUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀまたはUDRnとして引用しました。送信ﾃﾞｰﾀ緩衝ﾚｼﾞｽﾀ(TXB)はUDRnﾚｼﾞｽﾀ位置に書かれるﾃﾞｰﾀの転送先です。UDRnﾚｼﾞｽﾀ位置読み込みは受信ﾃﾞｰﾀ緩衝
ﾚｼﾞｽﾀ(RXB)の内容を返します。
5～7ﾋﾞｯﾄ ﾃﾞｰﾀでの上位未使用ﾋﾞｯﾄは送信部によって無視され、受信部によって0に設定されます。
送信緩衝部はUCSRnAで送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞが設定(1)される時にだけ書けます。UDREﾌﾗｸﾞが設定(1)されない時にUDRnへ書かれたﾃﾞｰﾀはUSART送信部によって無視されます。送信部が許可されて送信緩衝部にﾃﾞｰﾀが書かれると、送信部は送信移動ﾚｼﾞｽﾀが空きの時にそのﾃﾞｰﾀを送信移動ﾚｼﾞｽﾀへ設定(移動)します。その後にﾃﾞｰﾀはTXDnﾋﾟﾝで直列送信されます。
受信緩衝部は2段のFIFOから成ります。このFIFOは受信緩衝部がｱｸｾｽされる毎にその状態を切り替えます。この受信緩衝部の動きのため、この位置に読み-修正-書き(ﾘｰﾄﾞ ﾓﾃﾞﾌｧｲ ﾗｲﾄ)命令(SBIとCBI)を使えません。ﾋﾞｯﾄ検査(SBICとSBIS)命令もFIFOの状態を換えるので、これらの命令を使う時は注意してください。 (訳注:適用範囲外命令のため、この注意は不適切です。)
名称 : UDR0 : UDR1
変位 : $C6 : $CE
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

TXB/RXB7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - TXB7～0/RXB7～0 : USART送受信ﾃﾞｰﾀ (USART Transmit / Receive Data Buffer)24.12.2. UCSRnA - USARTn制御/状態ﾚｼﾞｽﾀA (USART Control and Status Register n A)
名称 : UCSR0A : UCSR1A
変位 : $C0: $C8
ﾘｾｯﾄ : $20
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

RXC

TXC

UDRE

FE

DOR

UPE

U2X

MPCM

R
0

R/W
0

R
1

R
0

R
0

R
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7 - RXC : USART受信完了ﾌﾗｸﾞ (USART Receive Complete)

このﾌﾗｸﾞは受信緩衝部に未読ﾃﾞｰﾀがある時に設定(1)され、受信緩衝部が空の(換言すると、どんな未読ﾃﾞｰﾀも含まない)時に解除(0)されます。受信部が禁止されると、受信緩衝部が破棄され、その結果RXCﾌﾗｸﾞは0になります。RXCﾌﾗｸﾞは受信完了割り込みを発生するのに使えます(USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)の受信完了割り込み許可(RXCIE)ﾋﾞｯﾄをご覧ください)。
● ﾋﾞｯﾄ6 - TXC : USART送信完了ﾌﾗｸﾞ (USART Transmit Complete)

このﾌﾗｸﾞは送信移動ﾚｼﾞｽﾀ内の完全なﾌﾚｰﾑが移動出力されてしまい、送信緩衝部(UDRn)に新規ﾃﾞｰﾀが現存しない時に設定(1)されます。TXCﾌﾗｸﾞは送信完了割り込みが実行されるとき、自動的に解除(0)されるか、またはこのﾋﾞｯﾄ位置に1を書くことによって解除(0)できます。TXCﾌﾗｸﾞは送信完了割り込みを発生できます(UCSRnBの送信完了割り込み許可(TXCIE)ﾋﾞｯﾄをご覧ください)。
● ﾋﾞｯﾄ5 - UDRE : USART送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空きﾌﾗｸﾞ (USART Data Register Empty)

UDREﾌﾗｸﾞは送信緩衝部(UDRn)が新規ﾃﾞｰﾀを受け取る準備ができているかどうかを示します。UDREが1ならば緩衝部は空で、従って書かれる準備ができています。UDREﾌﾗｸﾞは送信緩衝部空き割り込みを発生できます(UCSRnBの送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込み許可(UDRIE)ﾋﾞｯﾄをご覧ください)。 送信部が準備できているのを示すため、ﾘｾｯﾄ後のUDREは設定(1)です。
● ﾋﾞｯﾄ4 - FE : ﾌﾚｰﾐﾝｸﾞ異常ﾌﾗｸﾞ (Framing Error)

受信緩衝部の次ﾃﾞｰﾀが受信した時にﾌﾚｰﾐﾝｸﾞ異常(換言すると、受信緩衝部で次ﾃﾞｰﾀの最初の(第1)停止ﾋﾞｯﾄがLow)だった場合、
このﾋﾞｯﾄが設定(1)されます。このﾌﾗｸﾞは受信緩衝部(UDRn)が読まれるまで有効です。受信したﾃﾞｰﾀの停止ﾋﾞｯﾄがHighの時にFEﾌﾗｸﾞは0です。UCSRnAに書くとき、常にこのﾋﾞｯﾄを0に設定してください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。
● ﾋﾞｯﾄ3 - DOR : ﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝ発生ﾌﾗｸﾞ (Data OverRun)

このﾋﾞｯﾄはｵｰﾊﾞｰﾗﾝ状態が検出されると設定(1)されます。受信緩衝部(2ﾌﾚｰﾑ分)が一杯で、新規ﾌﾚｰﾑが受信移動ﾚｼﾞｽﾀ内で待機中に新規開始ﾋﾞｯﾄが検出されるとﾃﾞｰﾀ ｵｰﾊﾞｰﾗﾝが起こります。UCSRnAに書くとき、常にこのﾋﾞｯﾄを0に設定してください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 142頁

ATmega328PB● ﾋﾞｯﾄ2 - UPE : ﾊﾟﾘﾃｨ誤りﾌﾗｸﾞ (USART Parity Error)

受信緩衝部の次ﾃﾞｰﾀが受信した時にﾊﾟﾘﾃｨ異常があり、その時点でﾊﾟﾘﾃｨ検査が許可されていれば(UPM1=1)、このﾋﾞｯﾄが設定(1)されます。このﾌﾗｸﾞは受信緩衝部(UDRn)が読まれるまで有効です。UCSRnAに書くとき、常にこのﾋﾞｯﾄを0に設定してください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。
● ﾋﾞｯﾄ1 - U2X : 倍速許可 (Double the USART Transmission Speed)

このﾋﾞｯﾄは非同期動作でだけ有効です。同期動作を使うとき、このﾋﾞｯﾄに0を書いてください。
このﾋﾞｯﾄに1を書くことはﾎﾞｰﾚｰﾄ分周器の分周値を16から8に減らして事実上、非同期通信の転送速度を倍にします。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。
● ﾋﾞｯﾄ0 - MPCM : 複数ﾌﾟﾛｾｯｻ通信動作 (Multi-Processor Communication Mode)

このﾋﾞｯﾄは複数ﾌﾟﾛｾｯｻ通信動作を許可します。MPCMﾋﾞｯﾄが1を書かれると、USART受信部によって受信したｱﾄﾞﾚｽ情報を含まない
全到着ﾌﾚｰﾑは無視されます。送信部はMPCM設定に影響されません。詳細については「複数ﾌﾟﾛｾｯｻ通信動作」を参照してください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

24.12.3. UCSRnB - USARTn制御/状態ﾚｼﾞｽﾀB (USART Control and Status Register n B)
名称 : UCSR0B : UCSR1B
変位 : $C1: $C9
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

RXCIE

TXCIE

UDRIE

RXEN

TXEN

UCSZ2

RXB8

TXB8

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R
0

R/W
0

● ﾋﾞｯﾄ7 - RXCIE : 受信完了割り込み許可 (Receive Complete Interrupt Enable)

このﾋﾞｯﾄへの1書き込みはUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の受信完了(RXC)ﾌﾗｸﾞでの割り込みを許可します。USART受信完了
割り込みはRXCIEﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)で全割り込み許可(I)ﾋﾞｯﾄが1を書かれ、UCSRnAでRXCﾌﾗｸﾞが設定(1)される場合にだけ生成されます。
● ﾋﾞｯﾄ6 - TXCIE : 送信完了割り込み許可 (Transmit Complete Interrupt Enable)

このﾋﾞｯﾄへの1書き込みはUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信完了(TXC)ﾌﾗｸﾞでの割り込みを許可します。USART送信完了
割り込みはTXCIEﾋﾞｯﾄが1を書かれ、SREGで全割り込み許可(I)ﾋﾞｯﾄが1を書かれ、UCSRnAでTXCﾌﾗｸﾞが設定(1)される場合にだけ生成されます。
● ﾋﾞｯﾄ5 - UDRIE : 送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込み許可 (Transmit Data Register Empty Interrupt Enable)

このﾋﾞｯﾄへの1書き込みはUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞでの割り込みを許可します。USA
RT送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き割り込みはUDRIEﾋﾞｯﾄが1を書かれ、SREGで全割り込み許可(I)ﾋﾞｯﾄが1を書かれ、UCSRnAでUDREﾌﾗｸﾞが設定(1)される場合にだけ生成されます。
● ﾋﾞｯﾄ4 - RXEN : 受信許可 (Receiver Enable)

このﾋﾞｯﾄへの1書き込みはUSART受信(部)を許可します。受信部は許可されるとRXDnﾋﾟﾝの標準ﾎﾟｰﾄ動作を無効にします。受信の禁
止は受信緩衝部を破棄し、ﾌﾚｰﾐﾝｸﾞ異常(FE)、ｵｰﾊﾞｰﾗﾝ(DOR)、ﾊﾟﾘﾃｨ誤り(UPE)のﾌﾗｸﾞを無効にします。
● ﾋﾞｯﾄ3 - TXEN : 送信許可 (Transmitter Enable)

このﾋﾞｯﾄへの1書き込みはUSART送信(部)を許可します。送信部は許可されるとTXDnﾋﾟﾝの標準ﾎﾟｰﾄ動作を無効にします。送信の禁止(TXEN=0書き込み)は進行中と保留中の送信が完了される(換言すると、送信移動ﾚｼﾞｽﾀと送信緩衝ﾚｼﾞｽﾀが送信されるべきﾃﾞｰ
ﾀを含まない)まで有効になりません。禁止したとき、送信部はもはやTXDnﾎﾟｰﾄ(の標準I/O機能)を無効にしません。
● ﾋﾞｯﾄ2 - UCSZ2 : ﾃﾞｰﾀ ﾋﾞｯﾄ長選択2 (Character Size)

USART制御/状態ﾚｼﾞｽﾀC(UCSRnC)のUCSZ1,0ﾋﾞｯﾄと組み合わせたUCSZ2ﾋﾞｯﾄは送受信部で使うﾌﾚｰﾑのﾃﾞｰﾀ ﾋﾞｯﾄ数(Charactersize)を設定します。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。
● ﾋﾞｯﾄ1 - RXB8 : 受信ﾃﾞｰﾀ ﾋﾞｯﾄ8 (Receive Data Bit 8)

RXB8は9ﾋﾞｯﾄ ﾃﾞｰﾀでの直列ﾌﾚｰﾑ操作時に受信したﾌﾚｰﾑの第9ﾃﾞｰﾀ ﾋﾞｯﾄ(ﾋﾞｯﾄ8)です。UDRnから下位ﾋﾞｯﾄを読む前に読んでください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 143頁

ATmega328PB● ﾋﾞｯﾄ0 - TXB8 : 送信ﾃﾞｰﾀ ﾋﾞｯﾄ8 (Transmit Data Bit 8)

TXB8は9ﾋﾞｯﾄ ﾃﾞｰﾀでの直列ﾌﾚｰﾑ操作時に送信されるべきﾃﾞｰﾀの第9ﾃﾞｰﾀ ﾋﾞｯﾄ(ﾋﾞｯﾄ8)です。UDRnへ下位ﾋﾞｯﾄを書く前に書いてください。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

24.12.4. UCSRnC - USARTn制御/状態ﾚｼﾞｽﾀC (USART Control and Status Register n C)
名称 : UCSR0C : UCSR1C
変位 : $C2: $CA
ﾘｾｯﾄ : $06
特質 : -

ﾋﾞｯﾄ

7

6

5

UMSEL1,0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

4

UPM1,0

R/W
0

R/W
0

R/W
0

3

2

1

0

USBS

UCSZ1
UDORD

UCSZ0
UCPHA

UCPOL

R/W
0

R/W
1

R/W
1

R/W
0

● ﾋﾞｯﾄ7,6 - UMSEL1,0 : USART動作選択 (USART Mode Select)

このﾋﾞｯﾄはUSART動作種別を選びます。

表24-10. USART動作選択
UMSEL1,0
動作種別
00
非同期動作
01
同期動作
10
(予約)
注: UDORD、UCPHA、UCPOLは主装置SPI動作(MSPIM)許可での同じ書き込み
11
主装置SPI (MSPIM) (注)
操作で設定することができます。

● ﾋﾞｯﾄ5,4 - UPM1,0 : ﾊﾟﾘﾃｨ選択 (Parity Mode)

これらのﾋﾞｯﾄはﾊﾟﾘﾃｨの発生と検査の許可と種別を設定します。許可した場合、送信部は各ﾌﾚｰﾑ内での送信したﾃﾞｰﾀ ﾋﾞｯﾄのﾊﾟﾘﾃｨを自動的に生成して送出します。受信部は到着ﾃﾞｰﾀからﾊﾟﾘﾃｨ値を生成し、UPM0設定と比較します。不一致が検出されると、USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)でﾊﾟﾘﾃｨ誤り(UPE)ﾌﾗｸﾞが設定(1)されます。
これらのﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

表24-11. ﾊﾟﾘﾃｨ選択
ﾊﾟﾘﾃｨ動作UPM1,0
禁止
00
00
(予約)
10
偶数ﾊﾟﾘﾃｨ許可
11
奇数ﾊﾟﾘﾃｨ許可● ﾋﾞｯﾄ3 - USBS : 停止ﾋﾞｯﾄ選択 (Stop Bit Select)

このﾋﾞｯﾄは送信部によって挿入される停止ﾋﾞｯﾄ数を選びます。受信部はこの設定を無視します(訳補:常に第1停止ﾋﾞｯﾄだけが有効)。
このﾋﾞｯﾄは主装置SPI動作(MSPIM)で保留されています。

表24-12. 停止ﾋﾞｯﾄ選択
停止ﾋﾞｯﾄ数
USBS
1ﾋﾞｯﾄ
0
2ﾋﾞｯﾄ
1

● ﾋﾞｯﾄ2 - UCSZ1/UDORD : ﾃﾞｰﾀ ﾋﾞｯﾄ長選択 (Character Size) / ﾃﾞｰﾀ順選択 (Data Order)

UCSZ1：USART動作 : USART制御/状態ﾚｼﾞｽﾀB(UCSRnB)のUCSZ2ﾋﾞｯﾄと組み合わせたUCSZ1,0ﾋﾞｯﾄは送受信部で使うﾌﾚｰﾑのﾃﾞｰﾀ ﾋﾞｯﾄ数(Character size)を設定します。

表24-13. ﾃﾞｰﾀ ﾋﾞｯﾄ長選択
UCSZ2～0000
5ﾋﾞｯﾄ
ﾃﾞｰﾀ ﾋﾞｯﾄ数

001
6ﾋﾞｯﾄ

010
7ﾋﾞｯﾄ

011
8ﾋﾞｯﾄ

100
(予約)

101
(予約)

110
(予約)

111
9ﾋﾞｯﾄ

UDORD：主装置SPI動作 : 1に設定されるとﾃﾞｰﾀ語のLSBが最初に転送されます。0に設定されるとﾃﾞｰﾀ語のMSBが最初に転送されます。詳細については「USARTでのSPI動作」の「ﾌﾚｰﾑ形式」を参照してください。
● ﾋﾞｯﾄ1 - UCSZ0/UCPHA : ﾃﾞｰﾀ ﾋﾞｯﾄ長選択 (Character Size) / ｸﾛｯｸ位相選択 (Clock Phase)

UCSZ0：USART動作 : UCSZ1を参照してください。
UDORD：主装置SPI動作 : ｸﾛｯｸ位相選択(UCPHA)ﾋﾞｯﾄの設定はﾃﾞｰﾀがXCKnの先行(先)端または後行(後)端で採取/(設定)されるかを決めます。詳細については「USARTでのSPI動作」の「SPIﾃﾞｰﾀ形態とﾀｲﾐﾝｸﾞ」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 144頁

ATmega328PB● ﾋﾞｯﾄ0 - UCPOL : ｸﾛｯｸ極性選択 (Clock Polarity)

USART動作 : このﾋﾞｯﾄは同期動作に対してだけ使われます。非同期動作が使われるとき、このﾋﾞｯﾄに0を書いてください。UCPOLﾋﾞｯ
ﾄは同期ｸﾛｯｸ(XCKn)、ﾃﾞｰﾀ出力変更、ﾃﾞｰﾀ入力採取間の関係を設定します。
表24-14. XCKｸﾛｯｸ極性選択
UCPOL 送信ﾃﾞｰﾀ変更 (TXDnﾋﾟﾝ出力) 受信ﾃﾞｰﾀ採取 (RXDnﾋﾟﾝ入力)
XCKnの上昇端0
XCKnの下降端
XCKnの下降端
1
XCKnの上昇端

主装置SPI動作 : UCPOLﾋﾞｯﾄはXCKnｸﾛｯｸの極性を設定します。UCPOLとｸﾛｯｸ位相選択(UCPHA)ﾋﾞｯﾄの組み合わせ設定がﾃﾞｰﾀ転送のﾀｲﾐﾝｸﾞを決めます。詳細については「USARTでのSPI動作」の「SPIﾃﾞｰﾀ形態とﾀｲﾐﾝｸﾞ」を参照してください。

24.12.5. UCSRnD - USARTn制御/状態ﾚｼﾞｽﾀD (USART Control and Status Register n D)
名称 : UCSR0D : UCSR1D
変位 : $C3: $CB
ﾘｾｯﾄ : $00
特質 : このﾚｼﾞｽﾀは主装置SPI動作(UCSRnC.UMSEL1,0=11)で使われません。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

RXSIE

RXS

SFDE

-

-

-

-

-

R/W
0

R/W
0

R/W
0

R
0

R
0

R
0

R
0

R
0

● ﾋﾞｯﾄ7 - RXSIE : 受信開始割り込み許可 (USART RX Start Interrupt Enable)

このﾋﾞｯﾄへの1書き込みは受信開始(RXS)ﾌﾗｸﾞでの割り込みを許可します。休止動作形態でこのﾋﾞｯﾄは、RXDnﾋﾟﾝで開始条件が検出された時にMCUを起こすことができるﾌﾚｰﾑ開始割り込みを許可します。
USART受信開始割り込みはRXSIEﾋﾞｯﾄ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄとUCSRnDのRXSﾌﾗｸﾞが設定(1)される場合にだけ生成されます。
● ﾋﾞｯﾄ6 - RXS : 受信開始 (USART RX Start)

このﾌﾗｸﾞはRXDnﾋﾟﾝで開始条件が検出された時に設定(1)されます。受信開始割り込み許可(RXSIE)ﾋﾞｯﾄとSREGの全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていれば、このﾌﾗｸﾞが設定(1)される時に受信開始割り込みが生成されます。このﾌﾗｸﾞはRXSﾋﾞｯﾄ位置に論理1を書くことによって解除(0)することができます。
ﾌﾚｰﾑ開始検出器が許可(RXSIE=1)され、全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていれば、受信開始割り込みは全ての休止動作形態
からMCUを起こします。
● ﾋﾞｯﾄ5 - SFDE : ﾌﾚｰﾑ開始検出許可 (Start Frame Detection Enable)

このﾋﾞｯﾄへの1書き込みはUSARTﾌﾚｰﾑ開始動作を許可します。ﾌﾚｰﾑ開始検出器は開始条件、換言すると、RXDnﾋﾟﾝでHigh(ｱｲﾄﾞﾙ)からLow(開始)への遷移が検出される時に休止動作形態からMCUを起こすことができます。
表24-15. USARTﾌﾚｰﾑ開始検出動作
SFDE
RXSIE
RXCIE
説明
0
x
x
ﾌﾚｰﾑ開始検出禁止。
(予約)
1
0
0
1
0
1
ﾌﾚｰﾑ開始検出許可。RXCﾌﾗｸﾞは全ての休止動作形態からMCUを起こします。
1
10
ﾌﾚｰﾑ開始検出許可。RXSﾌﾗｸﾞは全ての休止動作形態からMCUを起こします。
1
1
1
ﾌﾚｰﾑ開始検出許可。RXCとRXSの両ﾌﾗｸﾞは全ての休止動作形態からMCUを起こします。
より多くの情報については「ﾌﾚｰﾑ開始検出」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 145頁

ATmega328PB
24.12.6. UBRRnH,UBRRnL - USARTnﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (USART Baud Rate Register n Low and High byte)
名称 : UBRR0HとUBRR0L (UBRR0) : UBRR1HとUBRR1L (UBRR1)
変位 : $C4: $CC
ﾘｾｯﾄ : $0000
特質 : UBRRnHとUBRRnLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のUBRRnを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
ﾋﾞｯﾄ

15

14

13

12

-

-

-

-

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

ﾋﾞｯﾄ

7

6

5

4

11

10

9

8

UBRR11～8
R/W
0

R/W
0

R/W
0

R/W
0

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

UBRR7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ11～0 - UBRR11～0 : ﾎﾞｰﾚｰﾄ分周値 (USART Baud Rate)UBRRnHとUBRRnLを合わせたUBRRnはUSARTのﾎﾞｰﾚｰﾄを含む12ﾋﾞｯﾄ ﾚｼﾞｽﾀです。UBRRnHがUSARTﾎﾞｰﾚｰﾄの上位4ﾋﾞｯﾄを含み、UBRRnLが下位8ﾋﾞｯﾄを含みます。ﾎﾞｰﾚｰﾄが変更されると、送受信部で進行中の転送は不正にされます。UBRRnL書き込みはﾎﾞｰﾚｰﾄ前置分周器の更新を直ちに始めます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 146頁

ATmega328PB
25. USARTSPI - USARTでのSPI動作 (USART in SPI Mode)
25.1. 特徴・ 全二重動作、3線同期ﾃﾞｰﾀ転送
・ 主装置動作・ 4つ全てのSPI転送形式(動作種別0,1,2,3)支援・ LSBまたはMSB先行ﾃﾞｰﾀ転送(ﾃﾞｰﾀ順設定)
・ 順列動作(2重緩衝)・ 高分解能ﾎﾞｰﾚｰﾄ発振器
・ 高速動作( f XCKmax= fCK/2)
・ 柔軟な割り込み生成

25.2. 概要
USART(Universal Synchronous and Asynchronous Receiver and Transmitter)は主装置SPI互換動作に設定できます。USART動作選
択(UMSEL1,0)ﾋﾞｯﾄの11設定は主装置SPI(MSPIM)論理回路でのUSARTを許可します。この動作種別でのSPI主装置制御論理回路
はUSART資源を直接制御します。これらの資源には送受信の移動ﾚｼﾞｽﾀと緩衝部、ﾎﾞｰﾚｰﾄ発生器を含みます。ﾊﾟﾘﾃｨ発生/検査論
理回路、ﾃﾞｰﾀ/ｸﾛｯｸ再生論理回路、送受信制御論理回路は禁止されます。USART送受信論理回路は普通のSPI転送制御論理回路に置き換えられます。けれどもﾋﾟﾝ制御論理回路と割り込み生成論理回路は両動作種別で全く同じです。
I/Oﾚｼﾞｽﾀ位置は両動作種別で同じです。けれどもMSPIM使用時、制御ﾚｼﾞｽﾀの一部の機能が変わります。

25.3. ｸﾛｯｸ生成
ｸﾛｯｸ生成論理回路は送受信部に対する基準ｸﾛｯｸを生成します。USARTのMSPIM動作種別については内部ｸﾛｯｸ生成(即ち主装置動作)だけが支援されます。従って、USARTでMSPIMを正
表25-1. ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRn)値計算式
しく動作するにはXCKnﾋﾟﾝに対するﾃﾞｰﾀ方向ﾚｼﾞｽﾀ(DD
動作種別
ﾎﾞｰﾚｰﾄ計算式
UBRRn値計算式
R_XCKn)が1(即ち出力)に設定されなければなりません。
fOSC
fOSC
なるべくならDDR_XCKnはUSARTでのMSPIMが許可(換同期主装置動作 BAUD＝UBRRn＝-1
言するとTXENとRXENが1に設定)される前に設定される
2×(UBRRn+1)
2×BAUDべきです。
注: ﾎﾞｰﾚｰﾄは転送速度(ﾋﾞｯﾄ/1秒)で定義されます。
MSPIM動作で使われる内部ｸﾛｯｸ生成はUSART同期主BAUD : ﾎﾞｰﾚｰﾄ (bps)
装置動作と同一です。右表は同期主装置動作用のﾎﾞｰUBRRn : UBRRnHとUBRRnLﾚｼﾞｽﾀ値 (0～4095)
fOSC : ｼｽﾃﾑ発振器ｸﾛｯｸ周波数
ﾚｰﾄやUBRRn設定を計算する式を含みます。

25.4. SPIﾃﾞｰﾀ形態とﾀｲﾐﾝｸﾞ
直列ﾃﾞｰﾀに関してはｸﾛｯｸ位相(UCPHA)とｸﾛｯｸ極性(UCPOL)制御ﾋﾞｯﾄによって決定されるXCKn(SCK)位相と極性で4つの組み合わせがあります。このﾃﾞｰﾀ転送ﾀｲﾐﾝｸﾞ図は下図で示されます。ﾃﾞｰﾀ ﾋﾞｯﾄは安定のためにﾃﾞｰﾀ信号に対して充分な時間を保証する
XCKn信号の反対端で移動出力と(入力)ﾗｯﾁが行われます。UCPOLとUCPHAの機能は下表で要約されます。これらﾋﾞｯﾄのどの変更も送受信両方に対して実行中の通信を不正とすることに注意してください。
表25-2. UCPOL,UCPHA機能動作
SPI動作種別番号 UCPOL UCPHA
0
0
0
1
1
0
0
2
1
1
3
1

XCKn(SCK)先行端
入力採取/上昇端
出力設定/上昇端
入力採取/下降端
出力設定/下降端

XCKn(SCK)後行端
出力設定/下降端
入力採取/下降端
出力設定/上昇端
入力採取/上昇端

図25-1. UCPHAとUCPOLによるﾃﾞｰﾀ転送ﾀｲﾐﾝｸﾞ
UCPOL=0

UCPHA=0

UCPHA=1

UCPOL=1

XCKn

XCKn

出力設定(TXDn)

出力設定(TXDn)

入力採取(RXDn)

入力採取(RXDn)

XCKn

XCKn

出力設定(TXDn)

出力設定(TXDn)

入力採取(RXDn)

入力採取(RXDn)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 147頁

ATmega328PB
25.5. ﾌﾚｰﾑ形式
MSPIMの直列ﾌﾚｰﾑは8ﾃﾞｰﾀ ﾋﾞｯﾄ/1ﾌﾚｰﾑに固定されます。USARTでのMSPIM動作は2つの有効なﾌﾚｰﾑ形式を持ちます。
・ MSB先行 8ﾋﾞｯﾄ ﾃﾞｰﾀ
・ LSB先行 8ﾋﾞｯﾄ ﾃﾞｰﾀ
ﾌﾚｰﾑは最下位(LSB)または最上位(MSB)のﾃﾞｰﾀ ﾋﾞｯﾄで始まります。その後次のﾃﾞｰﾀ ﾋﾞｯﾄが最後の最上位(MSB)または最下位(LSB)ﾃﾞｰﾀ ﾋﾞｯﾄまで合計8ﾋﾞｯﾄ続きます。完全なﾌﾚｰﾑが送信されると、新規ﾌﾚｰﾑが直ちに後続するか、または通信線がｱｲﾄﾞﾙ状態(high)に設定されるでしょう。
USART制御/状態ﾚｼﾞｽﾀC(UCSRnC)のﾃﾞｰﾀ順選択(UDORD)ﾋﾞｯﾄはUSARTでのMSPIMによって使われるﾌﾚｰﾑ形式を設定します。
送受信部は同じ設定を使います。これらﾋﾞｯﾄのどれかの設定変更が送受信部両方に対して実行中の通信を不正にすることに注意してください。
16ﾋﾞｯﾄ ﾃﾞｰﾀ通信はUDRnに2ﾊﾞｲﾄ ﾃﾞｰﾀを書くことによって達せられます。その後のUSART送信完了割り込み(TXC)はこの16ﾋﾞｯﾄ値が移動出力されてしまったことを示します。

25.5.1. USART MSPIM初期化
USARTでのMSPIM動作はどれかの通信が行われ得るのに先立って初期化されなければなりません。標準的な初期化手順は使用方法に依存するﾎﾞｰﾚｰﾄ設定、主装置動作操作(DDR_XCKnの1)設定、ﾌﾚｰﾑ形式設定、送受信部許可から成ります。送信部だけが独立して操作できます。割り込み駆動USART操作に関して初期化を行う時にｽﾃｰﾀｽ ﾚｼﾞｽﾀの全割り込み許可(I)ﾋﾞｯﾄが解除(0)される(そして全割り込みが禁止される)べきです。
注: XCKn出力の初期化を直ちに保証するため、ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRn)は送信部が許可される時に0でなければなりません。標準動作のUSART操作と逆に、UBRRnは送信部が許可されて最初の送信が開始される前に、希望する値を書かれなければなりません。この初期化がﾘｾｯﾄ後直ちに行なわれるなら、UBRRnが0にﾘｾｯﾄされているので、送信部許可前にUBRRnを0に設定することは必要ありません。
ﾎﾞｰﾚｰﾄ、ﾃﾞｰﾀ転送形式またはﾌﾚｰﾑ形式の変更を伴う再初期化を行う前に、ﾚｼﾞｽﾀが変更される期間中に進行中の送信がないことを確実にしてください。USART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信完了(TXC)ﾌﾗｸﾞは送信部の全転送完了検査に使え、受信完了(RXC)ﾌﾗｸﾞは受信緩衝部内の未読ﾃﾞｰﾀ有無検査に使えます。この目的(次送信ﾀｲﾐﾝｸﾞ)にTXCﾌﾗｸﾞが使われる場合、各々の送信(USARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)が書かれる)前にTXCﾌﾗｸﾞが解除(0)されなければならないことに注意してください。
次の簡単なUSART初期化ｺｰﾄﾞ例が示すｱｾﾝﾌﾞﾘ言語とC言語の関数は機能的に同じです。この例はﾎﾟｰﾘﾝｸﾞを使う(割り込み不許可)と仮定します。ﾎﾞｰﾚｰﾄ(UBRRn)値は関数の引数として与えられます。ｱｾﾝﾌﾞﾘ言語でのﾎﾞｰﾚｰﾄ引数はR17:R16ﾚｼﾞｽﾀに格納されると仮定されます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_Init: CLR
OUT
OUT
SBI
LDI

R18
;0値取得
UBRRnH,R18;ﾎﾞｰﾚｰﾄ設定(上位ﾊﾞｲﾄ)=0
UBRRnL,R18;ﾎﾞｰﾚｰﾄ設定(下位ﾊﾞｲﾄ)=0 (ｸﾛｯｸ停止)
XCKn_DDR,XCKn;XCKnﾎﾞｰﾄ ﾋﾟﾝ出力設定
R18,(1<<UMSEL1)|(1<<UMSEL0)|(0<<UCPHA)|(0<<UCPOL);動作種別値を取得
UCSRnC,R18;MSPI,ﾃﾞｰﾀ種別0設定
R18,(1<<RXEN)|(1<<TXEN);送受信許可値を取得
UCSRnB,R18;送受信許可UBRRnH,R17;ﾎﾞｰﾚｰﾄ設定(上位ﾊﾞｲﾄ)UBRRnL,R16;ﾎﾞｰﾚｰﾄ設定(下位ﾊﾞｲﾄ);呼び出し元へ復帰

OUT
LDI
OUT
OUT
OUT
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void USART_Init(unsigned int baud){
UBRRn = 0;/* ﾎﾞｰﾚｰﾄ設定(ｸﾛｯｸ停止) */XCKn_DDR |= (1<<XCKn;/* XCKnﾎﾞｰﾄ ﾋﾟﾝ出力設定 */UCSRnC = (1<<UMSEL1)|(1<<UMSEL0)|(0<<UCPHA)|(0<<UCPOL):/* MSPI,ﾃﾞｰﾀ種別0設定 */UCSRnB = (1<<RXEN)|(1<<TXEN);/* 送受信許可 */UBRRn = baud;/* ﾎﾞｰﾚｰﾄ設定 */}© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 148頁

ATmega328PB
25.6. ﾃﾞｰﾀ転送
USARTでのMSPI動作の使用は送信部が許可されること、換言するとUSART制御/状態ﾚｼﾞｽﾀB(UCSRnB)で送信許可(TXEN)ﾋﾞｯﾄが1に設定される必要があります。送信部が許可されると、TXDnﾋﾟﾝの標準ﾋﾟﾝ動作は無視され、送信部の直列出力としての機能を与えられます。受信部の許可は任意選択で、UCSRnBの受信許可(RXEN)ﾋﾞｯﾄの設定(=1)によって行なわれます。受信部が許可されると、RXDnﾋﾟﾝの標準ﾋﾟﾝ動作は無視され、受信部の直列入力としての機能を与えられます。XCKnは両方の場合で転送ｸﾛｯｸとして使われます。
初期化後、USARTはﾃﾞｰﾀ転送を行なう準備が整います。ﾃﾞｰﾀ転送はUSARTﾃﾞｰﾀ ﾚｼﾞｽﾀ(UDRn)I/O位置に書くことによって開始されます。送信部が転送ｸﾛｯｸを制御するため、これは送受信ﾃﾞｰﾀ両方の状態についてです。UDRnに書かれたﾃﾞｰﾀは移動ﾚｼﾞｽﾀが新規ﾌﾚｰﾑを送る準備が整った時に送信緩衝部から移動ﾚｼﾞｽﾀへ移されます。
注: 入力緩衝部に於いて送信されたﾃﾞｰﾀ ﾊﾞｲﾄ数との同期を保つために、送信された各ﾊﾞｲﾄに対して一度、UDRnが読まれなければなりません。入力緩衝操作は通常のUSART動作と同じで、換言すると、ｵｰﾊﾞｰﾗﾝが起きると、緩衝部内の先頭ではなく最後に受信したﾃﾞｰﾀが失われます。これは第1ﾊﾞｲﾄ、第2、第3、第4ﾊﾞｲﾄの順で4ﾊﾞｲﾄのﾃﾞｰﾀが送信され、全ての転送が完了される前にDDRnが読まれない場合、第1ﾊﾞｲﾄではなく、受信されるべき第3ﾊﾞｲﾄが失われます。
次のｺｰﾄﾞ例はUSART制御/状態ﾚｼﾞｽﾀA(UCSRnA)の送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞのﾎﾟｰﾘﾝｸﾞに基いた、簡単なUSARTでのMSPIM転送関数を示します。この関数が使われ得る前にUSARTが初期化されなければなりません。ｱｾﾝﾌﾞﾘ言語での送るべきﾃﾞｰﾀ
はR16ﾚｼﾞｽﾀに格納されると仮定され、受信したﾃﾞｰﾀは関数復帰後、同じR16ﾚｼﾞｽﾀで利用できます。
この関数は送信されるべき新規ﾃﾞｰﾀを設定する前に、UDREの検査によって送信緩衝部が空になるのを単純に待ちます。その後、緩衝部を読んで値を戻す前に、RXCﾌﾗｸﾞの検査によって受信緩衝部にﾃﾞｰﾀが存在するのを待ちます。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例
USART_MSPI: SBISUCSRnA,UDRE
RJMP
USART_MSPI;
OUT
UDRn,R16
USART_SPIR: SBISUCSRnA,RXC
RJMP
USART_SPIR;IN
R16,UDRn
RET
C言語ﾌﾟﾛｸﾞﾗﾑ例
void USART_MSPIM_Transfer(unsigned int data){
while ( !(UCSRnA & (1<<UDRE)) );UDRn = data;
while ( !(UCSRnA & (1<<RXC)) );return UDRn;};送信緩衝部空きでｽｷｯﾌﾟ;送信緩衝部空き待機;ﾃﾞｰﾀ送信(送信開始);受信完了でｽｷｯﾌﾟ;受信完了待機;受信ﾃﾞｰﾀ取得;呼び出し元へ復帰/* 送信緩衝部空き待機 *//* ﾃﾞｰﾀ送信(送信開始) *//* 受信完了待機 *//* 受信ﾃﾞｰﾀ取得 */25.6.1. 送受信ﾌﾗｸﾞと割り込み
USARTのMSPI動作での受信完了(RXC)、送信完了(TXC)、送信ﾃﾞｰﾀ ﾚｼﾞｽﾀ空き(UDRE)ﾌﾗｸﾞと対応する割り込みは通常のUSART
操作と機能的に同一です。けれども受信異常状態ﾌﾗｸﾞ(FE,DOR,UPE)は使えず、常に0として読まれます。

25.6.2. 送受信の禁止
USARTのMSPI動作での送受信部の禁止は通常のUSART操作と機能的に同一です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 149頁

ATmega328PB
25.7. USARTでのMSPIMとSPIの比較
USARTでのMSPI動作は次に関してSPIと完全な互換性があります。
・ 主装置動作ﾀｲﾐﾝｸﾞ図・ ｸﾛｯｸ極性選択(UCPOL)ﾋﾞｯﾄはSPIのSCK極性選択(CPOL)ﾋﾞｯﾄと機能的に同じです。
・ ｸﾛｯｸ位相選択(UCPHA)ﾋﾞｯﾄはSPIのSCK位相選択(CPHA)ﾋﾞｯﾄと機能的に同じです。
・ ﾃﾞｰﾀ順選択(UDORD)ﾋﾞｯﾄはSPIのﾃﾞｰﾀ順選択(DORD)ﾋﾞｯﾄと機能的に同じです。
けれどもUSARTでのMSPI動作がUSART資源を再使用するため、USARTでのMSPI動作はSPIと比較して多少異なります。加えて制御ﾚｼﾞｽﾀ ﾋﾞｯﾄの差異、主装置動作だけがUSARTでのMSPI動作によって支援されること、2つの部間で異なる次の特質があります。
・ USARTでのMSPI動作は送信部の(2重)緩衝部を含みます。SPIは緩衝部を持ちません。
・ USARTのMSPI動作での受信部は追加の緩衝段を含みます。
・ SPIの上書き(WCOL)ﾋﾞｯﾄはUSARTでのMSPI動作に含まれません。
・ SPIの倍速許可(SPI2X)ﾋﾞｯﾄは含まれません。しかし、対応するﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ(UBRRn)設定によって同じ効果が達せられます。
・ 割り込みﾀｲﾐﾝｸﾞに互換性はありません。
・ USARTでのMSPI動作が主装置動作だけのため、ﾋﾟﾝ制御が異なります。
USARTのMSPI動作とSPIでのﾋﾟﾝは右表で示されます。
表25-3. USARTでのMSPIMとSPIのﾋﾟﾝ比較
USART MSPIM
TXDn
RXDn
XCKn
該当なし

SPI
MOSI
MISO
SCK
SS

備考
主装置出力のみ
主装置入力のみ(機能的に同一)
USARTでのMSPIMで未支援

25.8. MSPIMでのUSART用ﾚｼﾞｽﾀ
USART用ﾚｼﾞｽﾀ記述を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 150頁

ATmega328PB
26. TWI - 2線直列ｲﾝﾀｰﾌｪｰｽ (2-wire Serial Interface)
26.1. 特徴
・ TWI0とTWI1の2つのTWI・ 2本のﾊﾞｽ信号線のみ必要な、単純ながら強力で柔軟な通信ｲﾝﾀｰﾌｪｰｽ
・ 主装置動作と従装置動作の両方を支援
・ 送信装置または受信装置として動作可能
・ 7ﾋﾞｯﾄのｱﾄﾞﾚｽ空間が128までの異なる従装置ｱﾄﾞﾚｽを許容
・ 複数主装置の調停支援
・ 400kHzまでのﾃﾞｰﾀ転送速度
・ 上昇/下降(ｽﾘｭｰﾚｰﾄ)制限された出力駆動回路
・ ﾊﾞｽ信号線のｽﾊﾟｲｸを排除する雑音消去回路
・ 一斉呼び出しを含む完全に設定変更可能な従装置ｱﾄﾞﾚｽの支援
・ AVRが休止形態の時のｱﾄﾞﾚｽ認証(一致)起動・ Philips I2C規約互換
電力削減ﾚｼﾞｽﾀ(PRR0/1)の2線直列ｲﾝﾀｰﾌｪｰｽ電力削減(PRTWI0/1)ﾋﾞｯﾄはTWInを許可するために0を書かれなければなりません。
PRTWI0はPRR0に、PRTWI1はPRR1に在ります。
関連ﾘﾝｸ 電力管理と休止形態

26.2. 2線直列ｲﾝﾀｰﾌｪｰｽ ﾊﾞｽの定義
2線直列ｲﾝﾀｰﾌｪｰｽ(TWI)は代表的なﾏｲｸﾛ ｺﾝﾄﾛｰﾗ応用に対して理想的に適応されています。TWI通信規約は2本の双方向
ﾊﾞｽ信号線、ﾃﾞｰﾀ用1本(SDA)とｸﾛｯｸ用1本(SCL)だけを使って128個までの異なる装置の相互接続をｼｽﾃﾑ設計者に許します。ﾊﾞｽを実現するのに必要とされる外部ﾊｰﾄﾞｳｪｱはTWIﾊﾞｽ信号線各々に1本づつのﾌﾟﾙｱｯﾌﾟ抵抗だけです。ﾊﾞｽに接続した全ての装置は個別のｱﾄﾞﾚｽを持ち、ﾊﾞｽ衝突を解決する機構は本質的にTWI通信規約で行います。

図26-1. 2線直列(TWI)ﾊﾞｽ構成
VCC
装置1

装置2

装置3

～

装置n

R1 R2
SCL
SDA

26.2.1. TWI用語定義
次の定義は本項で度々使われます。

表26-1. TWI用語定義
用語
意味
主装置
送信の開始と終了を行う装置。主装置はSCLｸﾛｯｸも生成します。
主装置によって指定された装置。
従装置
送信装置 ﾊﾞｽ上にﾃﾞｰﾀを送り出す装置。
受信装置 ﾊﾞｽからﾃﾞｰﾀを読み込む装置。

26.2.2. 電気的な相互接続
TWIﾊﾞｽ定義で描かれるように両方のﾊﾞｽ信号線はﾌﾟﾙｱｯﾌﾟ抵抗を通して正供給電圧に接続されます。全てのTWI準拠装置のﾊﾞｽ駆動部はｵｰﾌﾟﾝ ﾄﾞﾚｲﾝかｵｰﾌﾟﾝ ｺﾚｸﾀです。これはｲﾝﾀｰﾌｪｰｽの動作のために重要なﾜｲｱｰﾄﾞAND機能を実現します。TWIﾊﾞｽ信号線のLowﾚﾍﾞﾙは1つまたはより多くのTWI装置の0出力時に生成されます。Highﾚﾍﾞﾙは全TWI装置がHi-Z出力時の出力で、ﾌﾟﾙｱｯﾌﾟ抵
抗に信号線をHighへ引き上げさせます。どんなﾊﾞｽ動作を許すのにも、TWIﾊﾞｽに接続した全てのAVRﾃﾞﾊﾞｲｽが電力供給されなければならないことに注意してください。
このﾊﾞｽに接続できる装置数は7ﾋﾞｯﾄの従装置ｱﾄﾞﾚｽ空間と400pFのﾊﾞｽ容量制限によってのみ制限されます。TWIの電気的特性の詳細仕様は「2線直列ｲﾝﾀｰﾌｪｰｽ特性」で与えられます。そこで与えられる2組の異なる仕様は、1つがﾊﾞｽ速度100kHz以下に関するもので、もう1つはﾊﾞｽ速度400kHzまでに関して有効です。

26.3. ﾃﾞｰﾀ転送とﾌﾚｰﾑ形式
26.3.1. ﾋﾞｯﾄ転送
TWIﾊﾞｽに転送される各ﾃﾞｰﾀ ﾋﾞｯﾄはｸﾛｯｸ信号線のﾊﾟﾙｽを伴います。ﾃﾞｰﾀ信号線のﾚﾍﾞﾙはｸﾛｯｸ信号線がHighの時に安定していなければなりません。この規則の例外は開始条件と停止条件の生成だけです。

© 2018 Microchip Technology Inc.

図26-2. ﾃﾞｰﾀの有効性
SDA

ﾃﾞｰﾀを安定に保持する区間

SCL

ﾃﾞｰﾀを変更する区間

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 151頁

ATmega328PB
26.3.2. 開始条件と停止条件
主装置がﾃﾞｰﾀ転送の開始と終了を行います。転送は主装置がﾊﾞｽに開始条件を起こすと開始され、主装置が停止条件を起こすと終了されます。開始条件と停止条件間はﾊﾞｽが使用中と考えられ、他の主装置はﾊﾞｽの制御獲得を試みるべきではありません。開始条
件と停止条件間で新規開始条件が起こされると特別な状態が起きます。これは再送開始条件として引用され、主装置がﾊﾞｽの制御を手放さずに新規転送を始めたい時に使われます。再送開始条件後、ﾊﾞｽは次の停止条件まで使用中と考えられます。これは開始動作についてと全く同じで、従って特記事項を除いて本ﾃﾞｰﾀｼｰﾄの残りに対して開始条件と再送開始条件の両方の記述に開始条件が使われます。下で描かれるように、開始条件と停止条件はSCL信号線がHighの時のSDA信号線のﾚﾍﾞﾙ変更によって指示されます。
図26-3. 開始条件、再送開始条件、停止条件 ﾊﾞｽ ﾀｲﾐﾝｸﾞ
SDA
SCL
開始条件

停止条件 開始条件

再送開始条件 停止条件

26.3.3. ｱﾄﾞﾚｽ ﾊﾟｹｯﾄ形式
TWIﾊﾞｽに送信した全てのｱﾄﾞﾚｽ ﾊﾟｹｯﾄは7ﾋﾞｯﾄのｱﾄﾞﾚｽ ﾋﾞｯﾄ、1ﾋﾞｯﾄの方向(Read/Write)制御ﾋﾞｯﾄ、1ﾋﾞｯﾄの応答ﾋﾞｯﾄから成る9ﾋﾞｯﾄです。方向(R/W)ﾋﾞｯﾄが設定(1)されると読み出し操作が実行され、さもなければ書き込み操作が実行されるべきです。従装置がｱﾄﾞﾚｽ指定されたことを認証すると、9番目のSCL(ACK)周期でSDAをLowへ引くことによって確認応答すべきです。ｱﾄﾞﾚｽ指定された従装置が忙しいまたはその他の理由で主装置の要求を扱えない場合、確認応答(ACK)ｸﾛｯｸ周期でSDA信号線をHighのままにすべきです。主装置はその後に停止条件または新規転送を始めるために再送開始条件を送出できます。従装置ｱﾄﾞﾚｽと方向(R/W)ﾋﾞｯﾄから成るｱﾄﾞﾚｽ ﾊﾟｹｯﾄは各々、SLA+RまたはSLA+Wと呼ばれます。
ｱﾄﾞﾚｽ ﾋﾞｯﾄの最上位ﾋﾞｯﾄ(MSB)が最初に送信されます。従装置ｱﾄﾞﾚｽは設計者によって自由に割り当てられますが、’0000 000’のｱ
ﾄﾞﾚｽは一斉呼び出し用に予約されています。
一斉呼び出しが起こされると、全従装置は確認応答(ACK)周期でSDA信号線をLowにすることによって応答すべきです。一斉呼び出
しは主装置がｼｽﾃﾑ内のそれぞれの従装置に同じ通信内容を送信したい時に使われます。一斉呼び出しｱﾄﾞﾚｽに続きW(方向が書き込み)ﾋﾞｯﾄがﾊﾞｽに送信されると、一斉呼び出しに応答する設定の全ての従装置は、ACK周期でSDA信号線をLowに引き込みます。そして後続のﾃﾞｰﾀ ﾊﾟｹｯﾄは一斉呼び出しに確認応答した
図26-4. ｱﾄﾞﾚｽ ﾊﾟｹｯﾄ形式
全従装置によって受信されます。一斉呼び出しｱﾄﾞﾚｽに続くR(方向が読み出し)ﾋﾞｯﾄの送信は、従装置それぞれが異なるﾃﾞｰ
MSB A5SDALSB R/W ACK
ﾀの送信を始めた場合の衝突の原因となるので意味がないこと
SCL
1
2
7
8
9
に注意してください。
開始条件’1111 xxx’形式の全ｱﾄﾞﾚｽは将来の目的のために予約されるべきです(訳補: I2C規格のｱﾄﾞﾚｽ拡張他)。

26.3.4. ﾃﾞｰﾀ ﾊﾟｹｯﾄ形式
TWIﾊﾞｽに送信した全てのﾃﾞｰﾀ ﾊﾟｹｯﾄは1ﾊﾞｲﾄのﾃﾞｰﾀと1ﾋﾞｯﾄの応答ﾋﾞｯﾄから成る9ﾋﾞｯﾄです。ﾃﾞｰﾀ転送中、主装置はｸﾛｯｸと開始条件、停止条件を生成し、一方受信装置は受信に応答する責任があります。確認応答(ACK)は受信装置が9番目のSCL周期中にSDA信号線をLowに引き込むことによって示されます。受信装置がSDA信号線をHighのままにするとNACKを示します。受信装置が最終ﾊﾞｲﾄを受信したとき、または何らかの理由でこれ以上のﾊﾞｲﾄを受信ができないとき、最終ﾊﾞｲﾄ後にNACKを送ることによって送信装置へ通知すべきです。ﾃﾞｰﾀﾊﾞｲﾄの最上位(MSB)ﾋﾞｯﾄが最初に送信されます。

© 2018 Microchip Technology Inc.

図26-5. ﾃﾞｰﾀ ﾊﾟｹｯﾄ形式
送信装置SDA

MSB

D6

D1

LSB

合成SDA

MSB

D6

D1

LSB ACK

主装置SCL12

78

受信装置SDA

完全ﾃﾞｰﾀｼｰﾄ

9DS40001906C - 152頁

ATmega328PB
26.3.5. 転送内でのｱﾄﾞﾚｽ ﾊﾟｹｯﾄとﾃﾞｰﾀ ﾊﾟｹｯﾄの組み合わせ
転送は基本的に開始条件、SLA+R/W、1つ以上のﾃﾞｰﾀ ﾊﾟｹｯﾄ、停止条件から成ります。開始条件に続く停止条件から成る空の通信
内容は規則違反です。SCL信号線のﾜｲｱｰﾄﾞANDが主装置と従装置間のﾊﾝﾄﾞｼｪｰｸに使えることに注目してください。従装置はSCL
信号線をLowに引き込むことによってSCLのLow期間を引き伸ばせます。これは主装置が従装置に対して速すぎるｸﾛｯｸ速度設定、または従装置がﾃﾞｰﾀ送信間の処理に追加時間を必要とする場合に有用です。従装置がSCLのLow期間を延長することは、主装置によって決められるSCLのHigh期間に影響しません。同様に従装置はSCLのﾃﾞｭｰﾃｨ比(Low期間)を延長することによってTWIﾃﾞｰﾀ
転送速度を落とせます。
下図は下図代表的なﾃﾞｰﾀ転送を示します。応用ｿﾌﾄｳｪｱによって実装されたｿﾌﾄｳｪｱ規約に依存して、様々なﾃﾞｰﾀがSLA+R/Wと停止条件間に送信できることに注意してください。
図26-6. 代表的なﾃﾞｰﾀ転送
SDA
SCL

MSB

A5

1

2

開始条件

LSB R/W ACK
7
SLA+R/W

8

9

MSB

D6

D1

1

2

7
ﾃﾞｰﾀ ﾊﾞｲﾄ

LSB ACK
89
停止条件

26.4. 複数主装置ﾊﾞｽ ｼｽﾃﾑの調停と同期
TWI規約は多数主装置のﾊﾞｽ ｼｽﾃﾑを許します。例え2つ以上の主装置が同時に送信を始めても、送信が通常のように続行することを保証するために特別な手段が講じられます。複数主装置のｼｽﾃﾑでは2つの問題が起こります。
・ 送信を完了するために1つの主装置だけを許す方法が実現されなければなりません。他の全ての主装置は(自身が行っている従装置)選択手順を失った(失敗した)ことに気付く時に送信を止めるべきです。この選択手順は調停(ｱﾋﾞﾄﾚｰｼｮﾝ)と呼ばれます。競合する主装置は調停(従装置選択)手順を失ったことに気付くと、勝ち残った主装置によってｱﾄﾞﾚｽ指定されるかどうかを調べるた
め、直ちに従装置動作へ切り替えるべきです。複数の主装置が同時に送信を始めた事実は従装置で検知できるべきではありません。換言すると、ﾊﾞｽに転送されているﾃﾞｰﾀが不正にされてはなりません。
・ 違う主装置が異なるSCL周波数を使うかもしれません。同期確定手順で送信が続行するために、全主装置からの直列ｸﾛｯｸを同期化する方法が考案されなければなりません。これは調停手順を容易にします。
ﾊﾞｽ信号線のﾜｲｱｰﾄﾞANDはこれらの問題の両方の解決に使われ 図26-7. 複数主装置間でのSCL同期化ます。全ての主装置からの直列ｸﾛｯｸはﾜｲｱｰﾄﾞANDされ、最短Hig
TAlow
主装置A SCL
h期間の主装置の1つからに等しいHigh期間の合成ｸﾛｯｸを生成しTAhighます。合成ｸﾛｯｸのLow期間は最長Low期間の主装置のLow期間に主装置B SCL
等しくなります。全ての主装置がSCL信号線を監視する、実際には
TBlow
合成SCL信号線がHighまたはLowになる時に各々SCLのHighとSCLﾊﾞｽ信号線
Low経過時間の計時を始めることに注意してください。
TBhighLow期間
High期間
調停は全ての主装置がﾃﾞｰﾀ出力後にSDA信号線を継続的に監視
計時開始
計時開始
することによって実行されます。SDA信号線から読んだ値がその主装置の出力した値と一致しない場合、調停に敗れます。主装置がSDAにHigh値を出力し、同時に他の主装置がLow値を出力する時 図26-8. 2つの主装置間での調停
のみ調停に敗れるかもしれないことに注意してください。敗れた主主装置A SDA不一致
装置は直ちに従装置動作へ移行し、勝ち残った主装置によってｱ
主装置A SDA
主装置A調停敗退
ﾄﾞﾚｽ指定されるかを検査すべきです。SDA信号線はHighのままにすべきですが、敗れた主装置は現在のﾃﾞｰﾀ若しくはｱﾄﾞﾚｽ ﾊﾟｹｯﾄ
主装置B SDAの最後までｸﾛｯｸ信号を生成することを許されます。調停は唯一のSDA信号線主装置が残るまで継続され、多くのﾋﾞｯﾄを必要とするかもしれませ
同期化されたん。多くの主装置が同じ従装置をｱﾄﾞﾚｽ指定しようとすると、調停はSCL信号線ﾃﾞｰﾀ ﾊﾟｹｯﾄに続くでしょう。
開始条件
調停が次の状態間で許されないことに注意してください。
・ 再送開始条件とﾃﾞｰﾀ ﾋﾞｯﾄ間・ 停止条件とﾃﾞｰﾀ ﾋﾞｯﾄ間
・ 再送開始条件と停止条件間
これらの違法な調停状態を決して起こさないように保証するのは使用者ｿﾌﾄｳｪｱの責任です。これは複数主装置ｼｽﾃﾑでの全てのﾃﾞｰﾀ転送は同じ構成、SLA+R/Wとﾃﾞｰﾀ ﾊﾟｹｯﾄを使わなければならないことを意味します。言葉を変えると、全ての送信は同じﾃﾞｰﾀ
ﾊﾟｹｯﾄ数を含まなければならず、さもなければ調停の結果は不定にされます。
(訳補) 同じﾃﾞｰﾀ ﾊﾟｹｯﾄ数とは、或る主装置が最後まで調停を継続し、他の主装置がﾊﾟｹｯﾄを残している場合を想定しています。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 153頁

ATmega328PB
26.5. TWI部の概要
下図で示されるようにTWI部は様々な部分から成ります。赤文字で示された(訳注:原文は太線で描かれた)全てのﾚｼﾞｽﾀはAVRﾃﾞｰﾀ
ﾊﾞｽを通してｱｸｾｽ可能です。
図26-9. 2線直列ｲﾝﾀｰﾌｪｰｽ構成
SCLn
ｽﾘｭｰﾚｰﾄ
制御

SDAn

ｽﾊﾟｲｸ
除去器

ｽﾘｭｰﾚｰﾄ
制御

ｽﾊﾟｲｸ
除去器
TWI部

ﾊﾞｽ ｲﾝﾀｰﾌｪｰｽ部
開始/停止条件制御

ﾋﾞｯﾄ速度発生器

ｽﾊﾟｲｸ消去

前置分周器

ｱﾄﾞﾚｽ/ﾃﾞｰﾀ移動 ACK
ﾚｼﾞｽﾀ (TWDRn)

調停検出

ﾋﾞｯﾄ速度ﾚｼﾞｽﾀ(TWBRn)ｱﾄﾞﾚｽ一致部
ｱﾄﾞﾚｽ遮蔽ﾚｼﾞｽﾀ(TWAMRn)

制御部

ｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(TWARn)状態ﾚｼﾞｽﾀ(TWSRn)ｱﾄﾞﾚｽ比較器

制御ﾚｼﾞｽﾀ(TWCRn)状態制御器

26.5.1. SCLとSDAﾋﾟﾝ
これらのﾋﾟﾝはAVR TWIをMCUｼｽﾃﾑのその他とｲﾝﾀｰﾌｪｰｽします。出力駆動部はTWI仕様に適合させるためのｽﾘｭｰﾚｰﾄ(上昇/下降)制限器を含みます。入力段は50nsよりも短いｽﾊﾟｲｸを除去するｽﾊﾟｲｸ消去部を含みます。「入出力ﾎﾟｰﾄ」章で説明したようにAVR
ﾊﾟｯﾄﾞの内部ﾌﾟﾙｱｯﾌﾟはSCLとSDAのﾋﾟﾝに対応するﾎﾟｰﾄのﾋﾞｯﾄを設定(=1)することによって許可できることに注目してください。内部ﾌﾟ
ﾙｱｯﾌﾟはいくつかのｼｽﾃﾑで外部抵抗の必要をなくせます。

26.5.2. ﾋﾞｯﾄ速度発生器
この部分は主装置動作で動く時のSCL周期を制御します。SCL周期はTWIﾋﾞｯﾄ速度ﾚｼﾞｽﾀ(TWBRn)とTWI状態ﾚｼﾞｽﾀ(TWSRn)の前
置分周器ﾋﾞｯﾄの設定によって制御されます。従装置動作はﾋﾞｯﾄ速度や前置分周器設定と関係ありませんが、従装置でのCPUｸﾛｯｸ
周波数はSCL周波数よりも最低16倍高くなければなりません。従装置がSCLのLow期間を延長するかもしれず、これによって平均
TWIﾊﾞｽ ｸﾛｯｸ周波数が減少することに注意してください。SCL周波数は次式に従って生成されます。
SCL周波数 =CPUｸﾛｯｸ周波数
16＋2×(TWBR)×前置分周値

TWBR: TWI ﾋﾞｯﾄ速度ﾚｼﾞｽﾀ値
前置分周値 : TWI状態ﾚｼﾞｽﾀの前置分周器選択(TWPS)をご覧ください。

注: ﾌﾟﾙｱｯﾌﾟ抵抗値はSCL周波数とﾊﾞｽ信号線の容量性負荷に応じて選択されるべきです。適切なﾌﾟﾙｱｯﾌﾟ抵抗の値については「2線直列ｲﾝﾀｰﾌｪｰｽ特性」をご覧ください。
関連ﾘﾝｸ
2線直列ｲﾝﾀｰﾌｪｰｽ特性26.5.3. ﾊﾞｽ ｲﾝﾀｰﾌｪｰｽ部
この部分はﾃﾞｰﾀとｱﾄﾞﾚｽの移動ﾚｼﾞｽﾀ(TWDRn)、開始条件/停止条件制御器、調停検出回路を含みます。TWDRnは送信されるべきｱﾄﾞﾚｽまたはﾃﾞｰﾀ ﾊﾞｲﾄ、若しくは受信したｱﾄﾞﾚｽまたはﾃﾞｰﾀ ﾊﾞｲﾄを含みます。8ﾋﾞｯﾄのTWDRnに加えてﾊﾞｽ ｲﾝﾀｰﾌｪｰｽ部は送信されるべきまたは受信した(N)ACKﾋﾞｯﾄを含むﾚｼﾞｽﾀも含みます。この(N)ACKﾚｼﾞｽﾀは応用ｿﾌﾄｳｪｱによって直接的にｱｸｾｽできません。けれどもTWI制御ﾚｼﾞｽﾀ(TWCRn)を操作することにより、受信時に設定(1)または解除(0)できます。送信装置動作時、受信した(N)ACKﾋﾞｯﾄの値はTWSRnの値によって判定できます。
開始条件/停止条件制御器は開始条件、再送開始条件、停止条件の生成と検出に対して責任があります。開始条件/停止条件制
御器はAVR MCUが主装置によってｱﾄﾞﾚｽ指定された場合にMCUを起動できる休止形態の1つの時でも、開始条件または停止条件を検出できます。
TWIが主装置として送信を始めると、調停検出ﾊｰﾄﾞｳｪｱは調停が進行中かを決めるために送信の試行を継続的に監視します。TWIが調停に敗れた場合、制御部に通知されます。その後に正しい処置が行われ、適切な状態符号が生成されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 154頁

ATmega328PB
26.5.4. ｱﾄﾞﾚｽ一致部
ｱﾄﾞﾚｽ一致部は受信したｱﾄﾞﾚｽ ﾊﾞｲﾄがTWI ｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(TWARn)の7ﾋﾞｯﾄ ｱﾄﾞﾚｽと一致するかを検査します。TWARnで一斉呼び出
し検出許可(TWGCE)ﾋﾞｯﾄが1を書かれると、全ての到着ｱﾄﾞﾚｽ ﾋﾞｯﾄは一斉呼び出しｱﾄﾞﾚｽに対しても比較されます。ｱﾄﾞﾚｽ一致で制御部は通知され、正しい処置を行うことを許します。TWIはTWI制御ﾚｼﾞｽﾀ(TWCRn)の設定に依存し、そのｱﾄﾞﾚｽへの応答をするかもしれないし、しないかもしれません。ｱﾄﾞﾚｽ一致部はAVR MCUが主装置によってｱﾄﾞﾚｽ指定された場合にMCUを起動できる休止形
態の1つの時でも、ｱﾄﾞﾚｽを比較できます。

26.5.5. 制御部
制御部はTWIﾊﾞｽを監視し、TWI制御ﾚｼﾞｽﾀ(TWCRn)の設定に従った応答を生成します。応用に注意を要求する事象がTWIﾊﾞｽで起こると、TWI割り込み要求ﾌﾗｸﾞ(TWINT)が有効にされます。次のｸﾛｯｸ周期で、TWI状態ﾚｼﾞｽﾀ(TWSRn)は事象を示す状態符号で更新されます。TWI割り込み要求ﾌﾗｸﾞが有効にされる時にだけ、TWSRnは適切な状態情報を含みます。他の全てのとき、TWSRnは
適切な状態情報が利用できないことを示す特別な状態符号を含みます。TWINTﾌﾗｸﾞが設定(1)されている限り、SCL信号線はLowに保たれます。これは続くTWI送信を許す前の(現状)処理完了を応用ｿﾌﾄｳｪｱに許します。
TWI割り込み要求ﾌﾗｸﾞ(TWINT)は次の場合に設定(1)されます。
・ 開始条件または再送開始条件送信後
・ SLA+R/W送信後
・ ｱﾄﾞﾚｽ ﾊﾞｲﾄ送信後・ 調停に敗れた後
・ 自身の従装置ｱﾄﾞﾚｽまたは一斉呼び出しによってｱﾄﾞﾚｽ指定された後・ ﾃﾞｰﾀ ﾊﾞｲﾄ受信後・ 従装置として未だｱﾄﾞﾚｽ指定されている間の停止条件または再送開始条件受信後・ 不正な開始条件または停止条件のためﾊﾞｽ異常が起きた時© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 155頁

ATmega328PB
26.6. TWIの使用法
AVR TWIはﾊﾞｲﾄ志向で割り込みが基本です。割り込みはﾊﾞｲﾄの受信や開始条件の送出のような全てのﾊﾞｽの事象後に起こります。
TWIは割り込みが基本のため、応用ｿﾌﾄｳｪｱはTWIﾊﾞｲﾄ転送中に他の操作を続行するために開放されます。ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄと共にTWI制御ﾚｼﾞｽﾀ(TWCRn)のTWI割り込み許可(TWIE)ﾋﾞｯﾄは、TWCRnのTWI割り込み要求ﾌﾗｸﾞ(TWINT)の設定(1)が割り込み要求を発生すべきかどうか決めることを応用(ｿﾌﾄｳｪｱ)に許します。TWIEﾋﾞｯﾄが解除(0)されると、応用(ｿﾌﾄｳｪｱ)
はTWIﾊﾞｽの動きを検知するためにTWINTﾌﾗｸﾞをﾎﾟｰﾘﾝｸﾞしなければなりません。
TWINTﾌﾗｸﾞが設定(1)されると、TWIは動作を終え、応用(ｿﾌﾄｳｪｱ)の応答を待ちます。この場合、TWI状態ﾚｼﾞｽﾀ(TWSRn)はTWIﾊﾞｽの現在の状態を示す値を含みます。そして応用ｿﾌﾄｳｪｱはTWCRnとTWDRnの操作により、TWIが次のTWIﾊﾞｽ周期で何を行うべきかを決定できます。
下図は応用(ｿﾌﾄｳｪｱ)がTWIﾊｰﾄﾞｳｪｱにどうｲﾝﾀｰﾌｪｰｽできるかの簡単な例を図解します。この例では主装置が単一ﾃﾞｰﾀ ﾊﾞｲﾄを従装置に送信しようします。より詳細な説明は本項の後に続きます。簡単なｺｰﾄﾞ例が以降の表で示されます。
図26-10. 代表的な送信での応用ﾌﾟﾛｸﾞﾗﾑとTWIのｲﾝﾀｰﾌｪｰｽ
1. 応用ﾌﾟﾛｸﾞﾗﾑは開始条件送出のためTWCRnに書き込み
3. 開始条件送出完了かTWSRn検査
応用ﾌﾟﾛｸﾞﾗﾑはSLA+WをTWDRnに設定
適切な制御値をTWCRnに設定
TWINT=1,TWSTA=0書き込みを確認

5. SLA+W送出完了、ACK受信かTWSRn検査
応用ﾌﾟﾛｸﾞﾗﾑはﾃﾞｰﾀをTWDRnに設定
適切な制御値をTWCRnに設定
TWINT=1書き込みを確認

7. ﾃﾞｰﾀ送出完了、ACK受信かTWSRn検査
応用ﾌﾟﾛｸﾞﾗﾑは停止条件送出のための
適切な制御値をTWCRnに設定
TWINT=1書き込みを確認

応用ﾌﾟﾛｸﾞﾗﾑの動き
TWIﾊﾞｽ

S

SLA

W

A

Data

A

P

TWIﾊｰﾄﾞｳｪｱの動き
2. TWINTが設定(1)状態符号が開始条件
送出完了を提示

4. TWINTが設定(1)状態符号がSLA+W
送出完了、ACK受信を提示

6. TWINTが設定(1)状態符号がﾃﾞｰﾀ
送出完了、ACK受信を提示

TWINT=1区間
S : 開始条件
P : 停止条件

1. TWI送信の最初の段階は開始条件を送出することです。これはTWIﾊｰﾄﾞｳｪｱに開始条件送出を命じる特別な値をTWCRn内に書くことによって行います。どんな値を書くかは後で記述されます。けれども、書かれる値でTWINTﾋﾞｯﾄが設定(1)されることが重要です。TWINTへの1書き込みは、このﾌﾗｸﾞを解除(0)します。TWCRnでTWINTﾋﾞｯﾄが設定(1)されている限り、TWIはどんな動作も始めません。応用(ｿﾌﾄｳｪｱ)がTWINTを解除(0)した後、TWIは直ちに開始条件の送出を始めます。
2. 開始条件が送出されてしまうと、TWCRnでTWINTﾌﾗｸﾞが設定(1)され、TWSRnは開始条件が正常に送出されてしまったことを示
す状態符号に更新されます。
3. 応用ｿﾌﾄｳｪｱは開始条件が正常に送信されたのを確認するためにTWSRnの値を直ぐに検査すべきです。TWSRnがその他を示している場合、応用ｿﾌﾄｳｪｱは異常ﾙｰﾁﾝを呼び出すような或る特別な動きを講じるかもしれません。期待した状態符号だと仮定す
ると、応用(ｿﾌﾄｳｪｱ)はTWDRnにSLA+Wを設定しなければなりません。TWDRnがｱﾄﾞﾚｽとﾃﾞｰﾀの両方に使われることを思い出してください。TWDRnが望むSLA+Wに設定されてしまった後、TWDRnにあるSLA+Wの送信をTWIﾊｰﾄﾞｳｪｱへ命じる特別な値がTWC
Rnに書かれなければなりません。どんな値を書くかは後で記述されます。けれども書かれる値でTWINTﾋﾞｯﾄが設定(1)されることが重要です。TWINTへの1書き込みがこのﾌﾗｸﾞを解除(0)します。TWCRnでTWINTﾋﾞｯﾄが設定(1)されている限り、TWIはどんな動作も始めません。応用(ｿﾌﾄｳｪｱ)がTWINTを解除(0)した後、TWIは直ちにｱﾄﾞﾚｽ ﾊﾟｹｯﾄの送信を始めます。
4. ｱﾄﾞﾚｽ ﾊﾟｹｯﾄが送信されてしまうと、TWCRnでTWINTﾌﾗｸﾞが設定(1)され、TWSRnはｱﾄﾞﾚｽ ﾊﾟｹｯﾄが正常に送信されたことを示す
状態符号に更新されます。この状態符号は従装置がﾊﾟｹｯﾄに応答したかどうかも反映します。
5. 応用ｿﾌﾄｳｪｱはｱﾄﾞﾚｽ ﾊﾟｹｯﾄが正常に送信され、期待されたACKﾋﾞｯﾄ値であるのを確認するためにTWSRnの値を直ぐに検査すべきです。TWSRnが他を示している場合、応用ｿﾌﾄｳｪｱは異常ﾙｰﾁﾝを呼び出すような或る特別な動きを講じるかもしれません。
期待した状態符号だと仮定すると、応用(ｿﾌﾄｳｪｱ)はTWDRnにﾃﾞｰﾀを設定しなければなりません。その後、TWDRnにあるﾃﾞｰﾀ ﾊﾟ
ｹｯﾄの送信をTWIﾊｰﾄﾞｳｪｱへ命じる特別な値がTWCRnに書かれなければなりません。どんな値を書くかは後で記述されます。けれども書かれる値でTWINTﾋﾞｯﾄが設定(1)されることが重要です。TWINTへの1書き込みがこのﾌﾗｸﾞを解除(0)します。TWCRnでTWINTﾋﾞｯﾄが設定(1)されている限り、TWIはどんな動作も始めません。応用(ｿﾌﾄｳｪｱ)がTWINTを解除(0)した後、TWIは直ちに
ﾃﾞｰﾀ ﾊﾟｹｯﾄの送信を始めます。
6. ﾃﾞｰﾀ ﾊﾟｹｯﾄが送信されてしまうと、TWCRn内のTWINTﾌﾗｸﾞが設定(1)され、TWSRnはﾃﾞｰﾀ ﾊﾟｹｯﾄが正常に送信されたことを示す
状態符号に更新されます。この状態符号は従装置がﾊﾟｹｯﾄに応答したかどうかも反映します。
7. 応用ｿﾌﾄｳｪｱはﾃﾞｰﾀ ﾊﾟｹｯﾄが正常に送信され、期待されたACKﾋﾞｯﾄの値であるのを確認するためにTWSRnの値を直ぐに検査すべきです。TWSRnが他を示している場合、応用ｿﾌﾄｳｪｱは異常ﾙｰﾁﾝを呼び出すような或る特別な動きを講じるかもしれません。
期待した状態符号だと仮定すると、応用(ｿﾌﾄｳｪｱ)は停止条件の送出をTWIﾊｰﾄﾞｳｪｱへ命じる特別な値をTWCRnに書かなければなりません。どんな値を書くかは後で記述されます。けれども書かれる値でTWINTﾋﾞｯﾄが設定(1)されることが重要です。TWINT
への1書き込みがこのﾌﾗｸﾞを解除(0)します。TWCRnでTWINTﾋﾞｯﾄが設定(1)されている限り、TWIはどんな動作も始めません。応
用(ｿﾌﾄｳｪｱ)がTWINTを解除(0)した後、TWIは直ちに停止条件の送出を始めます。停止条件が送出されてしまった後にTWINTが設定(1)されないことに注意してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 156頁

ATmega328PB
この例は簡単とはいえ、全てのTWI送信に関係した原理を示しています。これらは次のように要約できます。
・ TWIが動作を終了して応用(ｿﾌﾄｳｪｱ)の反応を予想する時にTWINTﾌﾗｸﾞが設定(1)されます。SCL信号線はTWINTが解除(0)されるまでLowに引き込まれます。
・ TWINTﾌﾗｸﾞが設定(1)されたなら、使用者は次のTWIﾊﾞｽ周期に関連した値で(必要な)全てのTWIﾚｼﾞｽﾀを更新しなければなりません。例で示されるようにTWDRnは次のTWIﾊﾞｽ周期で送信されるべき値を設定されなければなりません。
・ (必要な)全てのTWIﾚｼﾞｽﾀを更新し、その他保留中の応用ｿﾌﾄｳｪｱの処理が完了されてしまった後にTWCRnが書かれます。TWC
Rn書き込み時、TWINTﾋﾞｯﾄが設定(1)されるべきです。TWINTへの1書き込みはこのﾌﾗｸﾞを解除(0)します。TWCRn設定によってどの動作が指定されても、TWIはその(TWINT=0)後に実行を始めます。
下表はｱｾﾝﾌﾞﾘ言語とC言語の実装例を一覧にします。以下のｺｰﾄﾞは例えばｲﾝｸﾙｰﾄﾞ ﾌｧｲﾙの使用により、様々な定義が作成されてしまっている前提であることに注意してください。
ｱｾﾝﾌﾞﾘ言語ﾌﾟﾛｸﾞﾗﾑ例

C言語ﾌﾟﾛｸﾞﾗﾑ例

注釈

LDI

TWCRn = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);;開始条件送出

while (!(TWCRn & (1<<TWINT)));;TWINT=1まで待機;(開始条件送出完了待機)

1.
OUT
2.

3.

4.

5.

R16,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
TWCRn,R16

WAIT1: IN
R16,TWCRnSBRS R16,TWINT
RJMP WAIT1
IN
ANDI
CPI
BRNE

R16,TWSRn
R16,$F8
R16,STARTERROR

if ((TWSRn & 0xF8) != START)ERROR();;TWI状態ﾚｼﾞｽﾀ値検査;前置分周選択ﾋﾞｯﾄの遮蔽;STARTと異なる状態符号で;異常処理へ

LDI
OUT
LDI
OUT

R16,SLA_W
TWDRn,R16
R16,(1<<TWINT)|(1<<TWEN)
TWCRn,R16

TWDRn = SLA_W;;TWDRnにSLA+W設定;ｱﾄﾞﾚｽ送信開始のため;TWCRnのTWINTを解除(0)

WAIT2: IN
R16,TWCRnSBRS R16,TWINT
RJMP WAIT2

while (!(TWCRn & (1<<TWINT)));;TWINT=1まで待機;(SLA+W送出完了と;ACK/NACK受信完了待機)

IN
ANDI
CPI
BRNE

R16,TWSRn
R16,$F8
R16,MT_SLA_ACK
ERROR

if ((TWSRn & 0xF8) != MT_SLA_ACK)ERROR();;TWI状態ﾚｼﾞｽﾀ値検査;前置分周選択ﾋﾞｯﾄの遮蔽;MT_SLA_ACKと違う状態符号で;異常処理へ

LDI
OUT
LDI
OUT

R16,DATATWDRn,R16
R16,(1<<TWINT)|(1<<TWEN)
TWCRn,R16

TWDRn = DATA;;TWDRnにﾃﾞｰﾀ設定;ﾃﾞｰﾀ送信開始のため;TWCRnのTWINTを解除(0)

WAIT3: IN
R16,TWCRn
SBRS
R16,TWINT6.
RJMP WAIT3

7.

TWCRn = (1<<TWINT)|(1<<TWEN);

TWCRn = (1<<TWINT)|(1<<TWEN);
while (!(TWCRn & (1<<TWINT)));;TWINT=1まで待機;(ﾃﾞｰﾀ送出完了と;ACK/NACK受信完了待機)

IN
ANDI
CPI
BRNE

R16,TWSRn
R16,$F8
R16,MT_DATA_ACK
ERROR

if ((TWSRn & 0xF8) != MT_DATA_ACK) ;TWI状態ﾚｼﾞｽﾀ値検査
ERROR();;前置分周選択ﾋﾞｯﾄの遮蔽;MT_DATA_ACKと違う状態符号で;異常処理へ

LDI

R16,(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)
TWCRn,R16

TWCRn = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN);

OUT© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ;停止条件送出

DS40001906C - 157頁

ATmega328PB
26.7. 転送種別
TWIは以下の4つの主な動作種別の1つで動けます。
・ 送信主装置(MT)・ 受信主装置(MR)・ 送信従装置(ST)・ 受信従装置(SR)これら種別の多くは同じ応用に使えます。例えば、TWI方式のEEPROM内にﾃﾞｰﾀを書くのにTWIはMT動作を、EEPROMからﾃﾞｰﾀを読み戻すのにMR動作を使えます。ｼｽﾃﾑ内に他の主装置が存在する場合、それらのいくつかがTWIにﾃﾞｰﾀを送信するかもしれず、するとSR動作が使われるでしょう。どの動作種別が適正かを決めるのは応用ｿﾌﾄｳｪｱです。
次項はこれら動作種別の各々を記述します。起こり得る状態符号は各動作種別のﾃﾞｰﾀ伝送詳細図に沿って示されます。これらの図は次の略号を使います。
S
開始(START)条件
Rs
再送開始(REPEATED START)条件
R
読み出し指定ﾋﾞｯﾄ (SDA=High)W
書き込み指定ﾋﾞｯﾄ (SDA=Low)
A
確認応答(ACK)ﾋﾞｯﾄ (SDA=Low)
A
非確認応答(NACK)ﾋﾞｯﾄ (SDA=High)
Data 8ﾋﾞｯﾄ ﾃﾞｰﾀ ﾊﾞｲﾄP
停止(STOP)条件
SLA
従装置ｱﾄﾞﾚｽ
各図に於いて、楕円(訳注:原文は円)はTWI制御ﾚｼﾞｽﾀ(TWCRn)のTWI割り込み要求ﾌﾗｸﾞ(TWINT)が設定(1)されたことを示すのに使われます。この楕円内の番号は前置分周選択ﾋﾞｯﾄが0で遮蔽されたTWI状態ﾚｼﾞｽﾀ(TWSRn)に保持した状態符号を表します。これら位置での動きはTWI転送の継続または完了が応用(ｿﾌﾄｳｪｱ)によって行われなければなりません。TWI転送はｿﾌﾄｳｪｱによって
TWINTﾌﾗｸﾞが解除(0)されるまで一時停止されます。
TWI割り込み要求ﾌﾗｸﾞ(TWINT)が設定(1)される時のTWI状態ﾚｼﾞｽﾀ(TWSRn)の状態符号は適切なｿﾌﾄｳｪｱ動作を決めるのに使われます。各状態符号に対する必要なｿﾌﾄｳｪｱ動作や後続の直列転送の詳細は各動作の状態表の下で与えられます。これらの表に於いて前置分周選択ﾋﾞｯﾄが0で遮蔽されていることに注意してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 158頁

ATmega328PB
26.7.1. 送信主装置動作
送信主装置(MT)動作では何ﾊﾞｲﾄかのﾃﾞｰﾀが受信従装置へ送信されます(下図をご覧ください)。主装置動作へ移行するには開始条件が送出されなければなりません。それに続くｱﾄﾞﾚｽ ﾊﾟｹｯﾄの形式がMTまたは受信主装置(MR)のどちらへ移行すべきかを決めます。SLA+Wが送信されるとMT動作へ移行し、SLA+Rが送信されるとMR動作へ移行します。本項で言及する全ての状態符号は前置
分周選択ﾋﾞｯﾄが0か、または0で遮蔽されることが前提です。
図26-11. 送信主装置動作でのﾃﾞｰﾀ転送
VCC
装置1(送信主装置)装置2(受信従装置)

装置3

SCL
SDA

～

装置n

R1

R2
SCL
SDA

開始条件はTWCRn=1x10x10x形式の値をTWI制御ﾚｼﾞｽﾀ(TWCRn)に書くことによって送出されます。
・ TWI許可(TWCRn.TWEN)ﾋﾞｯﾄは2線直列ｲﾝﾀｰﾌｪｰｽ(TWI)を許可するために1を書かれなければなりません。
・ 開始条件生成許可(TWCRn.TWSTA)ﾋﾞｯﾄは開始条件を送出するために1を書かれなければなりません。
・ TWI割り込み要求(TWCRn.TWINT)ﾌﾗｸﾞはこのﾌﾗｸﾞを解除(0)するために1を書かれなければなりません。
その後にTWIは2線直列ﾊﾞｽを検査し、ﾊﾞｽが開放になると直ぐに開始条件を生成します。開始条件が送出されてしまった後、TWINT
ﾌﾗｸﾞがﾊｰﾄﾞｳｪｱによって設定(1)され、TWI状態ﾚｼﾞｽﾀ(TWSRn)の状態符号が$08になります(以降の状態符号表をご覧ください)。送信主装置へ移行するにはSLA+Wが送信されなければなりません。これはTWIﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)にSLA+Wを書くことによって行います。その後、転送を継続するためにTWCRn.TWINTﾋﾞｯﾄは(そこへ1を書くことによって)解除(0)されるべきです。これはTWCRn=1x0
0x10x形式の値をTWCRnに書くことによって達成されます。
SLA+Wが送信されて応答ﾋﾞｯﾄが受信されてしまうと、TWINTが再び設定(1)され、TWSRnの状態符号の数値が利用可能になります。
主装置動作で可能性のある状態符号は$18,$20,$38です。これら状態符号の各々に対する適切な動作は以降の状態符号表で詳述されます。
SLA+Wが正常に送信されてしまうと、ﾃﾞｰﾀ ﾊﾟｹｯﾄが送信されるべきです。これはTWDRnにﾃﾞｰﾀ ﾊﾞｲﾄを書くことによって行われます。
TWDRnはTWINTが1の時にだけ書かれなければなりません。さもなければ、そのｱｸｾｽは破棄され、TWCRnで上書き発生(TWWC)ﾌ
ﾗｸﾞが設定(1)されます。TWDRn更新後、転送を継続するためにTWINTﾋﾞｯﾄは(そこへ1を書くことによって)解除(0)されるべきです。これはTWCRn=1x00x10x形式の値をTWCRnに書くことによって達成されます。
最後のﾊﾞｲﾄが送られてしまうまでこの手順が繰り返され、この転送は停止条件または再送開始条件のどちらかを生成することによって終了されます。再送開始条件は通常の開始条件値(TWCRn=1x10x10x)を書くことによって達成されます。停止条件はTWCRn=1x0
1x10x形式の値を書くことによって生成されます。
再送開始条件(状態符号$10)後、2線直列ｲﾝﾀｰﾌｪｰｽは停止条件を送出せずに再び同じ従装置または新しい従装置にｱｸｾｽできます。再送開始条件は主装置がﾊﾞｽの制御を失わずに送信主装置、受信主装置間の切り替えを可能にします(訳注:原文では従装置も含まれていますが、基本動作に対して不適切なため削除しました)。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 159頁

ATmega328PB
表26-2. 送信主装置動作の状態符号 (注: TWSRnの前置分周選択ﾋﾞｯﾄは0の前提)
ｿﾌﾄｳｪｱの対応
直前の動作と
状態符号
TWCR設定ﾊﾞｽの状態(TWSR)TWDR操作TWSTA TWSTO TWINT TWEA
01
X
SLA+W設定
0$08
開始条件送信
SLA+W設定
01
X
0$10
再送開始条件送信
SLA+R設定
0
1
0
X
ﾃﾞｰﾀ設定
0
1
X
0
0
1
1
X
SLA+W送信
$18
ACK受信
なし
0
1
1
X
1
1
1
X
X
ﾃﾞｰﾀ設定
0
0
1
1
0
1
X
SLA+W送信$20
NACK受信
なし
0
1
1
X
1
1
1
X
X
ﾃﾞｰﾀ設定
0
0
1
1
0
1
X
ﾃﾞｰﾀ ﾊﾞｲﾄ送信
$28
ACK受信
なし
0
1
1
X
1
1
1
X
X
ﾃﾞｰﾀ設定
0
0
1
1
0
1
X
ﾃﾞｰﾀ ﾊﾞｲﾄ送信$30
NACK受信
なし
0
1
1
X
1
1
1
X
0
0
1
X
SLA+W, ﾃﾞｰﾀ ﾊﾞｲﾄで$38なし
ﾊﾞｽ競合調停敗退
1
0
1
X

TWCR設定によるﾊｰﾄﾞｳｪｱ動作
SLA+W送信、ACKかNACK受信
SLA+W送信、ACKかNACK受信
SLA+R送信、受信主装置動作へ移行
ﾃﾞｰﾀ送信、ACKかNACK受信再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0
ﾃﾞｰﾀ送信、ACKかNACK受信再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0
ﾃﾞｰﾀ送信、ACKかNACK受信再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0
ﾃﾞｰﾀ送信、ACKかNACK受信再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0
ﾊﾞｽ開放、未指定従装置動作へ移行
ﾊﾞｽ開放時に開始条件送信

図26-12. 送信主装置動作の形式と状態
主装置送信
受信従装置への転送成功

S

SLA

W

A

08

Data

A

18

P

28
Rs

再送開始条件による次転送

SLA

W

10
従装置ｱﾄﾞﾚｽ後の非確認応答受信

A

P

R

20

主装置受信
A

ﾃﾞｰﾀ ﾊﾞｲﾄ後の非確認応答受信P30
ｱﾄﾞﾚｽ ﾊﾞｲﾄかﾃﾞｰﾀ ﾊﾞｲﾄでのﾊﾞｽ競合調停敗退

A/A 他の主装置転送 A/A 他の主装置転送
38
A

調停敗退で自身の従装置呼び出し検出38
他の主装置転送

68 78 B0
主装置⇒従装置© 2018 Microchip Technology Inc.

従装置⇒主装置

Data

状態に従った従装置動作
A

何組かのﾃﾞｰﾀと確認応答

完全ﾃﾞｰﾀｼｰﾄ

nn 16進状態符号(TWSRn)

DS40001906C - 160頁

ATmega328PB
26.7.2. 受信主装置動作
受信主装置(MR)動作では何ﾊﾞｲﾄかのﾃﾞｰﾀが送信従装置から受信されます(次図をご覧ください)。主装置動作へ移行するには開始条件が送出されなければなりません。それに続くｱﾄﾞﾚｽ ﾊﾟｹｯﾄの形式が送信主装置(MT)またはMRのどちらへ移行すべきかを決めます。SLA+Wが送信されるとMT動作へ移行し、SLA+Rが送信されるとMR動作へ移行します。本項で言及する全ての状態符号は前置
分周選択ﾋﾞｯﾄが0か、または0で遮蔽されることが前提です。
図26-13. 受信主装置動作でのﾃﾞｰﾀ転送
VCC
装置1(受信主装置)装置2(送信従装置)

装置3

SCL
SDA

～

装置n

R1

R2
SCL
SDA

開始条件はTWCRn=1x10x10x形式の値をTWI制御ﾚｼﾞｽﾀ(TWCRn)に書くことによって送出されます。
・ TWI許可(TWCRn.TWEN)ﾋﾞｯﾄは2線直列ｲﾝﾀｰﾌｪｰｽ(TWI)を許可するために1を書かれなければなりません。
・ 開始条件生成許可(TWCRn.TWSTA)ﾋﾞｯﾄは開始条件を送出するために1を書かれなければなりません。
・ TWI割り込み要求(TWCRn.TWINT)ﾌﾗｸﾞはそこへ1を書くことによって解除(0)されなければなりません。
その後にTWIは2線直列ﾊﾞｽを検査し、ﾊﾞｽが開放になると直ぐに開始条件を生成します。開始条件が送出されてしまった後、TWINT
ﾌﾗｸﾞがﾊｰﾄﾞｳｪｱによって設定(1)され、TWSRnの状態符号が$08になります(以降の状態符号表をご覧ください)。MR動作へ移行するにはSLA+Rが送信されなければなりません。これはTWDRnにSLA+Rを書くことによって行います。その後、転送を継続するためにTW
INTﾌﾗｸﾞは(そこへ1を書くことによって)解除(0)されるべきです。これはTWCRn=1x00x10x形式の値をTWCRnに書くことによって達成されます。
SLA+Rが送信されて応答ﾋﾞｯﾄが受信されてしまうと、TWINTが再び設定(1)され、TWSRnの状態符号の数値が利用可能になります。
主装置動作で可能性のある状態符号は$38,$40,$48です。これら状態符号の各々に対する適切な動作は以降の状態符号表で詳述されます。ﾊｰﾄﾞｳｪｱによってTWINTﾌﾗｸﾞが設定(1)されると、受信したﾃﾞｰﾀがTWDRnから読めます。この手順は最後のﾊﾞｲﾄが受信されてしまうまで繰り返されます。最後のﾊﾞｲﾄが受信されてしまった後、受信主装置は最後に受信したﾃﾞｰﾀ ﾊﾞｲﾄ後のNACK送信によって送信従装置へ通知すべきです。この転送は停止条件または再送開始条件を生成することによって終了されます。再送開始条
件はTWCRn=1x10x10x形式の値を再びTWCRnに書くことによって送出されます。停止条件はTWCRn=1x01x10xを書くことによって生成されます。
再送開始条件(状態符号$10)後、2線直列ｲﾝﾀｰﾌｪｰｽは停止条件を送出せずに再び同じ従装置または新しい従装置にｱｸｾｽできます。再送開始条件は主装置がﾊﾞｽの制御を失わずに送信主装置、受信主装置間の切り替えを可能にします(訳注:原文では従装置も含まれていますが、基本動作に対して不適切なため削除しました)。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 161頁

ATmega328PB
表26-3. 受信主装置動作の状態符号 (注: TWSRnの前置分周選択ﾋﾞｯﾄは0の前提)
ｿﾌﾄｳｪｱの対応
状態符号
直前の動作とTWCR設定(TWSR)
ﾊﾞｽの状態TWDR操作TWSTA TWSTO TWINT TWEA
001X
SLA+R設定$08
開始条件送信00
1
X
SLA+R設定$10
再送開始条件送信
01
SLA+W設定
0X
0
0
1
X
SLA+Rで調停敗退
なし$38
またはNACK受信
1
0
1
X
0
0
0
1
SLA+R送信
$40
なし
ACK受信
0
0
1
1
1
X
0
1
SLA+R送信
なし
0
1
1
X
$48
NACK受信
1
1
1
X
0
0
0
1
ﾃﾞｰﾀ ﾊﾞｲﾄ受信$50
ﾃﾞｰﾀ取得
ACK応答
0
0
1
1
1
0
1
X
ﾃﾞｰﾀ ﾊﾞｲﾄ受信$58
ﾃﾞｰﾀ取得01
1X
NACK応答11
1X

TWCR設定によるﾊｰﾄﾞｳｪｱ動作
SLA+R送信、ACKかNACK受信
SLA+R送信、ACKかNACK受信
SLA+W送信、送信主装置動作へ移行
ﾊﾞｽ開放、未指定従装置動作へ移行
ﾊﾞｽ開放時に開始条件送信
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
再送開始条件送信
停止条件送信、TWSTO=0
停止条件→開始条件送信、TWSTO=0

図26-14. 受信主装置動作の形式と状態
主装置受信
従装置からの受信成功

SLA

S

R

A

08

Data

A

40

50

Data

P

A
58

再送開始条件による次転送

Rs

SLA

R

10
従装置ｱﾄﾞﾚｽ後の非確認応答受信

A

P

W

48
ｱﾄﾞﾚｽ ﾊﾞｲﾄかﾃﾞｰﾀ ﾊﾞｲﾄでのﾊﾞｽ競合調停敗退

主装置送信

A/A 他の主装置転送

A

38

38

A

調停敗退で自身の従装置呼び出し検出

他の主装置転送

68 78 B0
主装置⇒従装置© 2018 Microchip Technology Inc.

従装置⇒主装置

他の主装置転送

Data

状態に従った従装置動作
A

何組かのﾃﾞｰﾀと確認応答

完全ﾃﾞｰﾀｼｰﾄ

nn 16進状態符号(TWSRn)

DS40001906C - 162頁

ATmega328PB
26.7.3. 送信従装置動作
送信従装置(ST)動作では下図で示されるように、何ﾊﾞｲﾄかのﾃﾞｰﾀが送信主装置へ送信されます。本項で言及する全ての状態符号
は前置分周選択ﾋﾞｯﾄが0か、または0で遮蔽されることが前提です。
図26-15. 送信従装置動作でのﾃﾞｰﾀ転送
VCC
装置1(送信従装置)装置2(受信主装置)

装置3

SCL
SDA

～

装置n

R1

R2
SCL
SDA

ST動作を始めるにはTWI(従装置)ｱﾄﾞﾚｽﾚｼﾞｽﾀ(TWARn)とTWI制御ﾚｼﾞｽﾀ(TWCRn)が次のように初期化されなければなりません。
TWARnの上位7ﾋﾞｯﾄ(TWARn.TWA6～0)は主装置によってｱﾄﾞﾚｽ指定される時に2線直列ｲﾝﾀｰﾌｪｰｽが応答するｱﾄﾞﾚｽです。TWAR
nの最下位(TWARn.TWGCE)ﾋﾞｯﾄが1を書かれた場合、TWInは一斉呼び出し($00)に応答し、さもなければ一斉呼び出しｱﾄﾞﾚｽを無視します。
TWCRnはTWCRn=0100010x形式の値を保持しなければなりません。TWENは2線直列ｲﾝﾀｰﾌｪｰｽ(TWIn)を許可するために1を書かれなければなりません。TWCRn.TWEAは装置自身の従装置ｱﾄﾞﾚｽまたは一斉呼び出しｱﾄﾞﾚｽの確認応答(ACK)を許可するために1を書かれなければなりません。TWCRn.TWSTAとTWCRn.TWSTOは0を書かれなければなりません。
TWARnとTWCRnが初期化されてしまうと、TWInは自身の従装置ｱﾄﾞﾚｽ(または許可ならば一斉呼び出しｱﾄﾞﾚｽ)とそれに続くﾃﾞｰﾀ方
向ﾋﾞｯﾄによってｱﾄﾞﾚｽ指定されるまで待機します。方向ﾋﾞｯﾄが1(R)ならばTWInは送信従装置で動作し、さもなくば(0(W)ならば)受信従装置へ移行されます。自身の従装置ｱﾄﾞﾚｽとRﾋﾞｯﾄが受信されてしまった後、TWINTﾌﾗｸﾞが設定(1)され、TWSRnから有効な状態符
号が読めます。この状態符号は適切なｿﾌﾄｳｪｱ動作を決めるのに使われます。各状態符号に対して行うべき適切な動作は以降の状
態符号表で詳述されます。ST動作はTWIが主装置動作の間で調停に敗れた場合にも移行されるかもしれません(状態符号$B0をご覧ください)。
転送中にTWCRn.TWEAﾋﾞｯﾄが0を書かれると、TWInは転送の最後のﾊﾞｲﾄを送信します。受信主装置が最終ﾊﾞｲﾄ後にACKまたはNACKのどちらを送信するかによって状態$C0か$C8へ移行します。TWInはｱﾄﾞﾚｽ指定されていない従装置動作に切り替えられ、主装置が転送を続ける場合、その主装置を無視します。従って受信主装置は直列ﾃﾞｰﾀとして全て1を受信します。従装置が最後のﾊﾞｲﾄを送信(TWEAが0で主装置からのNACKを予測)したとしても、主装置が(ACK送信によって)追加ﾃﾞｰﾀ ﾊﾞｲﾄを要求すると状態$C8へ移行します。
TWCRn.TWEAが0の間中、TWInは自身の従装置ｱﾄﾞﾚｽに応答しませんが、2線直列ﾊﾞｽは未だ監視され、ｱﾄﾞﾚｽ認証はTWEAの設定(1)によって何時でも再開できます。これはTWEAﾋﾞｯﾄがTWInを2線直列ﾊﾞｽから一時的に隔離するのに使えることを意味します。
ｱｲﾄﾞﾙ動作を除く休止形態ではTWInへのｸﾛｯｸ系がOFFにされます。TWEAﾋﾞｯﾄが設定(1)されていると、このｲﾝﾀｰﾌｪｰｽはｸﾛｯｸ元として2線直列ﾊﾞｽ ｸﾛｯｸ(SCL)を使うことにより、自身の従装置ｱﾄﾞﾚｽと一斉呼び出しに未だ確認応答できます。その後ﾃﾞﾊﾞｲｽが休止形
態から起動し、TWIは起動中からTWINTﾌﾗｸﾞが(それへ1を書くことによって)解除(0)されるまでSCLｸﾛｯｸをLowに保ちます。その後のﾃﾞｰﾀ受信はAVRｸﾛｯｸが通常通り走行することで通常通りに行われます。AVRが長い起動時間に設定されていると、SCL信号線が長時間Lowに保持され、他のﾃﾞｰﾀ送信を阻止するかもしれないことに気付いてください。
注: (ｱｲﾄﾞﾙ動作を除く)これらの休止形態から起動すると、2線直列ｲﾝﾀｰﾌｪｰｽ ﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)はﾊﾞｽで渡す最後のﾊﾞｲﾄを反映しません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 163頁

ATmega328PB
表26-4. 送信従装置動作の状態符号 (注: TWSRnの前置分周選択ﾋﾞｯﾄは0の前提)
ｿﾌﾄｳｪｱの応答
直前の動作と
状態符号
TWCR設定ﾊﾞｽの状態(TWSR)TWDR操作TWSTA TWSTO TWINT TWEA
X0
10
自宛SLA+R受信
ﾃﾞｰﾀ設定
$A8
ACK応答
X
0
1
1
主装置のSLA+R/Wで
0
1
X
0
$B0
調停敗退/自宛SLA+ ﾃﾞｰﾀ設定
X
0
1
1
R受信/ACK応答
X
0
10
ﾃﾞｰﾀ ﾊﾞｲﾄ送信
ﾃﾞｰﾀ設定
$B8
ACK受信
X
0
1
1
0
0
1
0
0
1
1
0
ﾃﾞｰﾀ ﾊﾞｲﾄ送信
$C0
なし
0
1
0
1
NACK受信

$C8

最終ﾃﾞｰﾀ ﾊﾞｲﾄ送信(TWEA=0)
ACK受信なし

TWCR設定によるﾊｰﾄﾞｳｪｱ動作

1

0

1

1

0
0

0
0

1
1

0
1

1

0

1

0

1

0

1

1

最終ﾃﾞｰﾀ ﾊﾞｲﾄ送信、NACK受信予定
ﾃﾞｰﾀ ﾊﾞｲﾄ送信、ACK受信予定
最終ﾃﾞｰﾀ ﾊﾞｲﾄ送信、NACK受信予定
ﾃﾞｰﾀ ﾊﾞｲﾄ送信、ACK受信予定
最終ﾃﾞｰﾀ ﾊﾞｲﾄ送信、NACK受信予定
ﾃﾞｰﾀ ﾊﾞｲﾄ送信、ACK受信予定
未指定従装置動作へ移行、応答禁止
未指定従装置動作へ移行、応答対応
未指定従装置動作へ移行、応答禁止
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答対応
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答禁止
未指定従装置動作へ移行、応答対応
未指定従装置動作へ移行、応答禁止
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答対応
ﾊﾞｽ開放で開始条件送信

A

Data

A

Data

図26-16. 送信従装置動作の形式と状態
S

自ｱﾄﾞﾚｽ指定でのﾃﾞｰﾀ送信

SLA

R

A8
主装置で調停敗退自ｱﾄﾞﾚｽ検出

B8

A

P/S

C0

A
B0

最終ﾊﾞｲﾄ送信未指定従装置移行(TWEA=0)

A

全1

P/S

C8
主装置⇒従装置© 2018 Microchip Technology Inc.

従装置⇒主装置

Data

A

何組かのﾃﾞｰﾀと確認応答

完全ﾃﾞｰﾀｼｰﾄ

nn 16進状態符号(TWSRn)

DS40001906C - 164頁

ATmega328PB
26.7.4. 受信従装置動作
受信従装置(SR)動作では何ﾊﾞｲﾄかのﾃﾞｰﾀが送信主装置から受信されます(下図をご覧ください)。本項で言及する全ての状態符号
は前置分周選択ﾋﾞｯﾄが0か、または0で遮蔽されることが前提です。
図26-17. 受信従装置動作でのﾃﾞｰﾀ転送
VCC
装置1(受信従装置)装置2(送信主装置)

装置3

SCL
SDA

～

装置n

R1

R2
SCL
SDA

SR動作を始めるにはTWI(従装置)ｱﾄﾞﾚｽﾚｼﾞｽﾀ(TWARn)とTWI制御ﾚｼﾞｽﾀ(TWCRn)が次のように初期化されなければなりません。
TWARnの上位7ﾋﾞｯﾄ(TWARn.TWA6～0)は主装置によってｱﾄﾞﾚｽ指定される時に2線直列ｲﾝﾀｰﾌｪｰｽが応答するｱﾄﾞﾚｽです。TWAR
nの最下位(TWARn.TWGCE)ﾋﾞｯﾄが設定(1)されるなら、TWInは一斉呼び出し($00)に応答し、さもなければ一斉呼び出しｱﾄﾞﾚｽを無視します。
TWCRnはTWCRn=0100010x形式の値を保持しなければなりません。TWENは2線直列ｲﾝﾀｰﾌｪｰｽ(TWIn)を許可するために1を書かれなければなりません。TWCRn.TWEAは装置自身の従装置ｱﾄﾞﾚｽまたは一斉呼び出しｱﾄﾞﾚｽの確認応答(ACK)を許可するために1を書かれなければなりません。TWCRn.TWSTAとTWCRn.TWSTOは0を書かれなければなりません。
TWARnとTWCRnが初期化されてしまうと、TWInは自身の従装置ｱﾄﾞﾚｽ(または許可なら、一斉呼び出しｱﾄﾞﾚｽ)とそれに続くﾃﾞｰﾀ方向
ﾋﾞｯﾄによってｱﾄﾞﾚｽ指定されるまで待機します。方向ﾋﾞｯﾄが0(W)ならばTWInは受信従装置で動作し、さもなく(1(R)なら)ば送信従装置へ移行されます。自身の従装置ｱﾄﾞﾚｽとWﾋﾞｯﾄが受信されてしまった後にTWINTﾌﾗｸﾞが設定(1)され、TWSRnから有効な状態符号が読めます。以降の状態符号表で詳述されるように、この状態符号は適切なｿﾌﾄｳｪｱ動作を決めるのに使われます。SR動作はTWInが主装置動作の間で調停に敗れた場合にも移行されるかもしれません。(状態符号$68,$78参照)
転送中にTWCRn.TWEAﾋﾞｯﾄがﾘｾｯﾄ(0)されると、TWInは次に受信したﾃﾞｰﾀ ﾊﾞｲﾄ後のSDAに非確認応答(NACK)(SDA=High)を返します。これは従装置がこれ以上受信できないことを示すのに使えます。TWEAが0の間中、TWInは自身の従装置ｱﾄﾞﾚｽに応答しませんが、2線直列ﾊﾞｽは未だ監視され、ｱﾄﾞﾚｽ認証はTWEAの設定(1)によって何時でも再開できます。これはTWEAﾋﾞｯﾄがTWInを2線直列ﾊﾞｽから一時的に隔離するのに使えることを意味します。
ｱｲﾄﾞﾙ動作を除く休止形態ではTWInへのｸﾛｯｸ系がOFFにされます。TWEAﾋﾞｯﾄが設定(1)されていると、このｲﾝﾀｰﾌｪｰｽはｸﾛｯｸ元として2線直列ﾊﾞｽ ｸﾛｯｸ(SCL)を使うことにより、自身の従装置ｱﾄﾞﾚｽと一斉呼び出しに未だ確認応答できます。その後ﾃﾞﾊﾞｲｽが休止形
態から起動し、TWInは起動中からTWINTﾌﾗｸﾞが(それへ1を書くことによって)解除(0)されるまでSCLｸﾛｯｸをLowに保ちます。その後のﾃﾞｰﾀ受信はAVRｸﾛｯｸが通常通り走行することで通常通りに行われます。AVRが長い起動時間に設定されていると、SCL信号線が長時間Lowに保持され、他のﾃﾞｰﾀ送信を阻止するかもしれないことに気付いてください。
注: これらの(ｱｲﾄﾞﾙ動作を除く)休止形態から起動すると、2線直列ｲﾝﾀｰﾌｪｰｽ ﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)はﾊﾞｽで渡す最後のﾊﾞｲﾄを反映しません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 165頁

ATmega328PB
表26-5. 受信従装置動作の状態符号 (注: TWSRnの前置分周選択ﾋﾞｯﾄは0の前提)
ｿﾌﾄｳｪｱの応答
状態符号
直前の動作とTWCR設定TWDR操作(TWSR)
ﾊﾞｽの状態TWSTA TWSTO TWINT TWEA
01
0X
自宛SLA+W受信
$60
なし
ACK応答
X
0
1
1
主装置のSLA+R/Wで
0
1
0
X
$68
調停敗退/自宛SLA+ なし
1
X
01
W受信/ACK応答01
0
X
一斉呼び出し受信
なし
$70
ACK応答
1
0
1
X
主装置のSLA+R/WでX
0
1
0
調停敗退/一斉呼び なし
$78
X
0
1
1
出し受信/ACK応答
X
0
10
自宛ﾃﾞｰﾀ ﾊﾞｲﾄ受信
ﾃﾞｰﾀ取得
$80
ACK応答
X
0
1
1
0
0
1
0
0
0
1
1
自宛ﾃﾞｰﾀ ﾊﾞｲﾄ受信
ﾃﾞｰﾀ取得1010$88
NACK応答$90

一斉呼び出しのﾃﾞｰﾀﾊﾞｲﾄ受信/ACK応答

ﾃﾞｰﾀ取得$98

一斉呼び出しのﾃﾞｰﾀﾊﾞｲﾄ受信NACK応答

ﾃﾞｰﾀ取得$A0

自指定中の停止条件または
再送開始条件検出

なし

1

0

1

1

X
X
0
0

0
0
0
0

1
1
1
1

0
1
0
1

1

0

1

0

1

0

1

1

0
0

0
0

1
1

0
1

1

0

1

0

1

0

1

1

A

Data

A

TWCR設定によるﾊｰﾄﾞｳｪｱ動作
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
未指定従装置動作へ移行、応答禁止
未指定従装置動作へ移行、応答対応
未指定従装置動作へ移行、応答禁止
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答対応
ﾊﾞｽ開放で開始条件送信
ﾃﾞｰﾀ受信、NACK応答
ﾃﾞｰﾀ受信、ACK応答
未指定従装置動作へ移行、応答禁止
未指定従装置動作へ移行、応答対応
未指定従装置動作へ移行、応答禁止
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答対応
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答禁止
未指定従装置動作へ移行、応答対応
未指定従装置動作へ移行、応答禁止
ﾊﾞｽ開放で開始条件送信
未指定従装置動作へ移行、応答対応
ﾊﾞｽ開放で開始条件送信

図26-18. 受信従装置動作の形式と状態
自宛ﾃﾞｰﾀ受信確認応答

S

SLA

W

60

Data

80

A

P/S

80

A0

A

P/S

最終ﾊﾞｲﾄ非確認応答88
主装置で調停敗退自ｱﾄﾞﾚｽ検出

A
68

一斉呼び出しでのﾃﾞｰﾀ受信

一斉呼出

A

Data

70

A
90

Data

A

P/S

90

A0

A

P/S

最終ﾊﾞｲﾄ非確認応答98
主装置で調停敗退一斉呼び出し検出A
78

主装置⇒従装置© 2018 Microchip Technology Inc.

従装置⇒主装置

Data

A

何組かのﾃﾞｰﾀと確認応答

完全ﾃﾞｰﾀｼｰﾄ

nn 16進状態符号(TWSRn)

DS40001906C - 166頁

ATmega328PB
26.7.5. その他の状態定義したTWI状態に従わない2つの状態符号があります。本項内の表をご覧ください。
状態$F8はTWI割り込み要求ﾌﾗｸﾞ(TWINT)が設定(1)されないので適切な情報が利用できないことを示します。これは他の状態間でTWInが直列転送に関係しない時に起きます。
状態$00は2線直列ﾊﾞｽ転送中にﾊﾞｽ異常が起きたことを示します。ﾊﾞｽ異常はﾌﾚｰﾑ形式の不正な位置で開始(START)条件または停止(STOP)条件が起きる時に発生します。このような不正位置の例はｱﾄﾞﾚｽ ﾊﾞｲﾄ、ﾃﾞｰﾀ ﾊﾞｲﾄ、確認応答(ACK)ﾋﾞｯﾄの直列転送中です。ﾊﾞｽ異常が起きるとTWINTが設定(1)されます。ﾊﾞｽ異常から回復するには停止(STOP)条件生成許可(TWSTO)ﾋﾞｯﾄが設定(1)されて、TWINTが論理1書き込みによって解除(0)されなければなりません。これはTWInをｱﾄﾞﾚｽ指定されていない従装置動作にさせ、TWSTOﾋﾞｯﾄを解除(0)させます(TWCRnの他のﾋﾞｯﾄは影響されません)。SDAとSCL信号進は開放され、停止条件は送出されません。
表26-6. その他の状態符号 (注: TWSRnの前置分周選択ﾋﾞｯﾄは0の前提)
ｿﾌﾄｳｪｱの応答
直前の動作と状態符号
TWCRn設定
ﾊﾞｽの状態(TWSRn)TWDRn操作TWSTA TWSTO TWINT
適切な状態情報なし なし$F8
TWINT=0
不正な開始条件/停
なし
0
1
1
$00
止条件でのﾊﾞｽ異常

TWCRn設定によるﾊｰﾄﾞｳｪｱ動作
TWEA-

待機または現在の転送続行

X

停止条件を送出せずにﾊﾞｽを開放
TWSTO=026.7.6. 各種TWI動作種別の組み合わせ
いくつかの場合で望んだ動作を満たすために各々のTWI動作種別は組み合わされなければなりません。例えば直列EEPROMからのﾃﾞｰﾀ読み出しを考えてください。一般的にこのような転送は次の段階を含みます。
1. 転送が開始されなければなりません。
2. EEPROMは読み出すべき場所を指示されなければなりません。
3. 読み出しが実行されなければなりません。
4. 転送が終了されなければなりません。
ﾃﾞｰﾀが主装置から従装置へとその逆の両方向へ転送されることに注意してください。主装置はどの場所を読みたいかを従装置に指示しなければならず、送信主装置動作の使用を必要とします。その後にﾃﾞｰﾀを従装置から読まねばならず、受信主装置動作の使用を意味します。従って転送方向が切り替えられなければなりません。主装置はこれら全ての段階中にﾊﾞｽの制御を保持しなければならず、この手順は排他的(非分断)操作として行われるべきです。複数主装置ｼｽﾃﾑでこの原則に違反すると、他の主装置が2と3の段階間でEEPROM内のﾃﾞｰﾀ ﾎﾟｲﾝﾀを変更するかもしれず、(元の)主装置は不正なﾃﾞｰﾀ位置を読むでしょう。このような転送方向の切り替えはｱﾄﾞﾚｽ ﾊﾞｲﾄの送信とﾃﾞｰﾀの受信間で再送開始条件を送出することによって成し遂げられます。再送開始条件後も主装置はﾊﾞｽの占有権を保持します。この転送の流れが下図で描かれます。
図26-19. 直列EEPROMｱｸｾｽでの各種TWI動作種別の組み合わせ
S

SLA

送信主装置
W A EEPROMｱﾄﾞﾚｽ A Rs

SLA

受信主装置
R A EEPROMﾃﾞｰﾀ A

主装置⇒従装置
P
従装置⇒主装置開始条件© 2018 Microchip Technology Inc.

再送開始条件完全ﾃﾞｰﾀｼｰﾄ

停止条件

DS40001906C - 167頁

ATmega328PB
26.8. 複数主装置ｼｽﾃﾑでのﾊﾞｽ競合と調停
複数の主装置が同じﾊﾞｽに接続されると、それらの1つまたはそれ以上によって同時に送信が開始されるかもしれません。TWIは主装置の1つが転送を続けることを許され、手順内でﾃﾞｰﾀが失われないような方法でこのような状態が扱われることを標準で保証します。
2つの主装置が受信従装置へﾃﾞｰﾀを送信することを試みる場合の調停状況の例は以下で図示されます。
図26-20. ﾊﾞｽの競合調停例
装置1(送信主装置)装置2(送信主装置)装置3(受信従装置)

～

装置n

SCL
SDA

R1
R2

VCC
SCL
SDA

以下で示されるように様々な異なる状況が調停中に起こるかもしれません。
・ 複数の主装置が同じ従装置に全く同じ通信を実行する場合。この場合、主/従装置のどれもがﾊﾞｽの衝突について知りません。
・ 複数の主装置が異なるﾃﾞｰﾀまたは方向ﾋﾞｯﾄ(R/W)で同じ従装置をｱｸｾｽする場合。この場合、R/Wﾋﾞｯﾄまたはﾃﾞｰﾀ ﾋﾞｯﾄのどちらかで調停が起きます。他の主装置がSDAに0を出力する間に1を出力しようとする主装置が調停に敗れます。敗れた主装置は応用ｿﾌﾄｳｪｱの処置によって未指定従装置動作に切り替えるか、またはﾊﾞｽが開放になるまで待って新規開始条件を送出します。
・ 複数の主装置が異なる従装置をｱｸｾｽする場合。この場合、SLAﾋﾞｯﾄ内で調停が起きます。他の主装置がSDAに0を出力する間に1を出力しようとする主装置が調停に敗れます。SLA内で調停に敗れた主装置は勝った主装置によってｱﾄﾞﾚｽ指定されるかを検査するために従装置動作へ切り替えます。ｱﾄﾞﾚｽ指定されると、R/Wﾋﾞｯﾄの値によって受信従装置(SR)動作または送信従装置(ST)動作へ切り替えます。ｱﾄﾞﾚｽ指定されないなら、応用ｿﾌﾄｳｪｱの処置によって未指定従装置動作に切り替えるか、またはﾊﾞｽが開放になるまで待って新規開始条件を送出します。
これは次図で要約されます。利用可能な状態符号は楕円(訳注:原文は円)で与えられます。
図26-21. ﾊﾞｽの競合調停によって発生する利用可能な状態符号
開始条件

SLA

A/A 停止条件
R/W A
ﾃﾞｰﾀ
ﾃﾞｰﾀで調停に敗退
SLAで調停に敗退

自ｱﾄﾞﾚｽ
一斉呼び出し
受信?
Yes
方向?
R

© 2018 Microchip Technology Inc.

W

No

38

ﾊﾞｽを開放し未指定従装置動作へ移行
ﾊﾞｽが開放された時に開始条件送出

68 ﾃﾞｰﾀ ﾊﾞｲﾄを受信し、NACKで応答
78 ﾃﾞｰﾀ ﾊﾞｲﾄを受信し、ACKで応答
B0

ﾃﾞｰﾀ ﾊﾞｲﾄを送信し、NACK応答を受信
ﾃﾞｰﾀ ﾊﾞｲﾄを送信し、ACK応答を受信

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 168頁

ATmega328PB
26.9. TWI用ﾚｼﾞｽﾀ
26.9.1. TWBRn - TWInﾋﾞｯﾄ速度ﾚｼﾞｽﾀ (TWI Bit Rate Register n)
名称 : TWBR0 : TWBR1
変位 : $B8: $D8
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

TWBR7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - TWBR7～0 : TWIﾋﾞｯﾄ速度選択 (TWI Bit Rate Register)

TWBRnはﾋﾞｯﾄ速度発生器用の分周値を選びます。ﾋﾞｯﾄ速度発生器は主装置動作でのSCLｸﾛｯｸ周波数を生成する周波数分周器です。

26.9.2. TWSRn - TWIn状態ﾚｼﾞｽﾀ (TWI Status Register n)
名称 : TWSR0 : TWSR1
変位 : $B9: $D9
ﾘｾｯﾄ : $F8
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

TWS7～3
ｱｸｾｽ種別
ﾘｾｯﾄ値

R
1

R
1

R
1

1

R
1

R
1

0

TWPS1,0

R
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～3 - TWS7～3 : TWI状態 (TWI Status)

TWS7～3はTWI論理回路と2線直列ﾊﾞｽの状態を反映します。各種状態符号は「転送種別」で記述されます。TWSRnから読む値が5ﾋﾞｯﾄの状態符号と2ﾋﾞｯﾄの前置分周値の両方を含むことに注意してください。応用設計者は状態ﾋﾞｯﾄを検査する時に前置分周器ﾋﾞｯ
ﾄを0で隠すべきです。これは前置分周器設定に関係なく状態検査を行います。この手法は特記事項を除いてこのﾃﾞｰﾀｼｰﾄ内で使われます。
● ﾋﾞｯﾄ1,0 - TWPS1,0 : TWI前置分周器選択 (TWI Prescaler Bits)

これらのﾋﾞｯﾄは読み書きでき、ﾋﾞｯﾄ速度の前置分周器を制御します。
ﾋﾞｯﾄ速度を計算するには「ﾋﾞｯﾄ速度発生器」を参照してください。TWPS1,0の値はこの式で使用されます。

表26-7. TWInﾋﾞｯﾄ速度前置分周器選択
TWPS1
0
0
1
1
TWPS0
0
1
0
1
分周値
1
4
16
64

26.9.3. TWARn - TWIn(従装置)ｱﾄﾞﾚｽ ﾚｼﾞｽﾀ (TWI (Slave) Address Register n)
名称 : TWAR0 : TWAR1
変位 : $BA: $DA
ﾘｾｯﾄ : $FE
特質 : TWARnは従装置の送受信装置として設定した時にTWInが応答する7ﾋﾞｯﾄ従装置ｱﾄﾞﾚｽを(TWARn上位7ﾋﾞｯﾄに)設定されるべきで、
主装置動作では必要とされません。複数主装置のｼｽﾃﾑでは、他の主装置によって従装置としてｱﾄﾞﾚｽ指定され得る主装置に於いて、TWARnは設定されなければなりません。
TWARnの最下位ﾋﾞｯﾄ(TWGCE)は一斉呼び出しｱﾄﾞﾚｽ($00)認証の許可に使われます。これらは受信した直列ｱﾄﾞﾚｽで従装置ｱﾄﾞﾚｽ(と許可ならば一斉呼び出しｱﾄﾞﾚｽ)を捜す関連ｱﾄﾞﾚｽ比較器です。一致が見つかると割り込み要求が生成されます。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

TWA6～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
1

R/W
1

R/W
1

R/W
1

0

TWGCE
R/W
1

R/W
1

R/W
1

R/W
0

● ﾋﾞｯﾄ7～1 - TWA6～0 : TWI従装置ｱﾄﾞﾚｽ (TWI (Slave) Address)

これら7ﾋﾞｯﾄはTWIn部の従装置ｱﾄﾞﾚｽを構成します。
● ﾋﾞｯﾄ0 - TWGCE : 一斉呼び出し検出許可 (TWI General Call Recognition Enable Bit)

設定(1)なら、このﾋﾞｯﾄは2線直列ﾊﾞｽを伝って与えられる一斉呼び出しの認証(検出)を許可します。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 169頁

ATmega328PB
26.9.4. TWDRn - TWInﾃﾞｰﾀ ﾚｼﾞｽﾀ (TWI Data Register n)
名称 : TWDR0 : TWDR1
変位 : $BB: $DB
ﾘｾｯﾄ : $FF
特質 : 送信動作でのTWDRnは送信されるべき次ﾊﾞｲﾄを含みます。受信動作でのTWDRnは最後に受信したﾊﾞｲﾄを含みます。TWDRnはTWInがﾊﾞｲﾄを移動する手順でない間に書き込み可能です。これはTWI制御ﾚｼﾞｽﾀ(TWCRn)のTWI割り込み要求ﾌﾗｸﾞ(TWINT)がﾊｰ
ﾄﾞｳｪｱによって設定(1)されると起きます。最初のTWIn割り込みが起こる前にﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)は使用者によって初期化できないことに注意してください。TWDRnのﾃﾞｰﾀはTWINTが安定して設定(1)されている限り存続します。ﾃﾞｰﾀが移動出力される間、ﾊﾞｽのﾃﾞｰﾀが同時に移動入力されます。TWIn割り込みによる休止形態からの起動後を除いて、TWDRnは常にﾊﾞｽに現れる最後のﾊﾞｲﾄを含みます。この例外の場合のTWDRnの内容は不定です。ﾊﾞｽ調停に敗れた場合の主装置から従装置への移行でもﾃﾞｰﾀは失われません。確認応答(ACK)ﾋﾞｯﾄの扱いはTWI論理回路によって自動的に制御され、CPUはACKﾋﾞｯﾄを直接的にｱｸｾｽできません。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
1

R/W
1

R/W
1

R/W
1

TWD7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
1

R/W
1

R/W
1

R/W
1

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

これら8ﾋﾞｯﾄは送信されるべき次のﾃﾞｰﾀ ﾊﾞｲﾄ、または2線直列ﾊﾞｽで最後に受信したﾃﾞｰﾀ ﾊﾞｲﾄを構成します。

26.9.5. TWCRn - TWIn制御ﾚｼﾞｽﾀ (TWI Control Register n)
名称 : TWCR0 : TWCR1
変位 : $BC: $DC
ﾘｾｯﾄ : $00
特質 : TWCRnはTWI動作の制御に使用されます。TWInの許可、ﾊﾞｽ上に開始条件を印加することによる主装置のｱｸｾｽ開始、受信装置の応答生成、停止条件の生成、ﾊﾞｽにﾃﾞｰﾀを送出するためのTWIﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)への書き込み中のﾊﾞｽの一時停止制御に使われます。TWDRnがｱｸｾｽ不能の間にTWDRnへ書き込もうとする場合の上書き発生も示します。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

TWINT

TWEA

TWSTA

TWSTO

TWWC

TWEN

-

TWIE

R/W
0

R/W
0

R/W
0

R/W
0

R
0

R/W
0

R
0

R/W
0

● ﾋﾞｯﾄ7 - TWINT : TWI割り込み要求ﾌﾗｸﾞ (TWI Interrupt Flag)

このﾋﾞｯﾄはTWInが現在の作業を終了し、応用ｿﾌﾄｳｪｱの応答が予測されるとき、ﾊｰﾄﾞｳｪｱによって設定(1)されます。TWI制御ﾚｼﾞｽﾀ(TWCRn)のTWI割り込み許可(TWIE)ﾋﾞｯﾄとｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていると、MCUはTWIn割り
込みﾍﾞｸﾀへ飛びます。TWINTﾌﾗｸﾞが設定(1)の間中、SCLnのLow期間は引き伸ばされます。TWINTﾌﾗｸﾞは論理1書き込みによってｿﾌﾄｳｪｱで解除(0)されなければなりません。このﾌﾗｸﾞが割り込みﾙｰﾁﾝを実行するとき、自動的に解除(0)されないことに注意してください。このﾌﾗｸﾞの解除(0)がTWI動作を始めるので、このﾌﾗｸﾞを解除(0)する前にTWIｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(TWARn)、TWIﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)、TWI状態ﾚｼﾞｽﾀ(TWSRn)への全てのｱｸｾｽが完了していなければならないことにも注意してください。
● ﾋﾞｯﾄ6 - TWEA : 確認応答(ACK)許可 (TWI Enable Acknowledge Bit)

TWEAﾋﾞｯﾄは確認応答(ACKﾊﾟﾙｽ)の生成を制御します。TWEAﾋﾞｯﾄが1を書かれ、次の条件に合致すると、TWIﾊﾞｽにACKﾊﾟﾙｽが生成されます。
・ 装置が自分用の従装置ｱﾄﾞﾚｽを受信した場合。
・ TWIｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(TWARn)の一斉呼び出し検出許可(TWGCE)ﾋﾞｯﾄが設定(1)されている時に一斉呼び出しを受信した場合。
・ 主受信装置または従受信装置動作でﾃﾞｰﾀ ﾊﾞｲﾄを受信した場合。
TWEAﾋﾞｯﾄに0を書くことによって一時的かつ仮想的に装置を2線直列ﾊﾞｽから切り離すことができます。ｱﾄﾞﾚｽ認証はその後に再びTWEAﾋﾞｯﾄへ1を書くことによって再開できます。
● ﾋﾞｯﾄ5 - TWSTA : 開始(START)条件生成許可 (TWI START Condition Bit)

2線直列ﾊﾞｽの主装置になることを欲する時に応用はTWSTAﾋﾞｯﾄに1を書きます。TWIﾊｰﾄﾞｳｪｱはﾊﾞｽが利用可能かを検査し、開放な
らばﾊﾞｽに開始条件を生成します。しかし、ﾊﾞｽが未開放の場合、TWInは停止条件が検出されるまで待ち、その後にﾊﾞｽ主権を要求する新規開始条件を生成します。TWSTAは開始条件が送出されてしまった時にｿﾌﾄｳｪｱで解除(0)されなければなりません。
● ﾋﾞｯﾄ4 - TWSTO : 停止(STOP)条件生成許可 (TWI STOP Condition Bit)

主装置動作でTWSTOﾋﾞｯﾄに1を書くことが2線直列ﾊﾞｽに停止条件を生成します。停止条件がﾊﾞｽで実行されると、TWSTOﾋﾞｯﾄは自動的に解除(0)されます。従装置動作でのTWSTOﾋﾞｯﾄの設定(1)は異常状態からの回復に使えます。これは停止条件を生成しませんが、TWInは明確に指定されていない従装置動作に戻り、SCLn、SDAn信号線をHi-Z状態に開放します。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 170頁

ATmega328PB● ﾋﾞｯﾄ3 - TWWC : TWI上書き発生ﾌﾗｸﾞ (TWI Write Collision Flag)

TWI割り込み要求ﾌﾗｸﾞ(TWINT)が0の時にTWIﾃﾞｰﾀ ﾚｼﾞｽﾀ(TWDRn)への書き込みを試みると、このTWWCﾌﾗｸﾞが設定(1)されます。
このﾌﾗｸﾞはTWINTが1の時のTWDRn書き込みによって解除(0)されます。
● ﾋﾞｯﾄ2 - TWEN : TWI動作許可 (TWI Enable Bit)

TWENﾋﾞｯﾄはTWI動作を許可し、TWInｲﾝﾀｰﾌｪｰｽを活性(有効)にします。TWENが1を書かれると、TWInはSCLnとSDAnのﾋﾟﾝに接続
したI/Oﾋﾟﾝを制御できるようになり、ｽﾊﾟｲｸ濾波器とｽﾘｭｰﾚｰﾄ制限器を許可します。このﾋﾞｯﾄが0を書かれると、TWInがOFFにされ、どんな進行中の動作にも関係なく、全てのTWI送信が終了されます。
● ﾋﾞｯﾄ0 - TWIE : TWI割り込み許可 (TWI Interrupt Enable)

このﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されていると、TWI割り込み要求ﾌﾗｸﾞ(TWINT)が1である限り、TWI割り込み要求が活性に(発生)されます。

26.9.6. TWAMRn - TWIn(従装置)ｱﾄﾞﾚｽ遮蔽ﾚｼﾞｽﾀ (TWI (Slave) Address Mask Register n)
名称 : TWAMR0 : TWAMR1
変位 : $BD: $DD
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

TWAM6～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

-

R/W
0

R/W
0

R/W
0

R/W
0

R
0

● ﾋﾞｯﾄ7～1 - TWAM6～0 : TWI従装置ｱﾄﾞﾚｽ遮蔽 (TWI (Slave) Address Mask)

TWAMRnは7ﾋﾞｯﾄの従装置ｱﾄﾞﾚｽ遮蔽値を格納できます。TWA
MRn内の各ﾋﾞｯﾄはTWI(従装置)ｱﾄﾞﾚｽ ﾚｼﾞｽﾀ(TWARn)内の対応
するｱﾄﾞﾚｽ ﾋﾞｯﾄを遮蔽(禁止)します。遮蔽ﾋﾞｯﾄが1に設定されると、その後のｱﾄﾞﾚｽ一致論理回路は到着ｱﾄﾞﾚｽ ﾋﾞｯﾄとTWARn内の対応ﾋﾞｯﾄ間の比較を無視します。

図26-22. TWIｱﾄﾞﾚｽ一致論理 構成図
ｱﾄﾞﾚｽ ﾋﾞｯﾄ0比較器
到着ｱﾄﾞﾚｽ ﾋﾞｯﾄ0
TWA0

～

～

TWAM0
ｱﾄﾞﾚｽ
一致

ｱﾄﾞﾚｽ ﾋﾞｯﾄ6比較器© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 171頁

ATmega328PB
27. AC - ｱﾅﾛｸﾞ比較器 (Analog Comparator)
27.1. 概要
ｱﾅﾛｸﾞ比較器は非反転入力AIN0ﾋﾟﾝと反転入力AIN1ﾋﾟﾝの入力値を比較します。非反転AIN0ﾋﾟﾝの電圧が反転
AIN1ﾋﾟﾝの電圧よりも高い時にACSRのｱﾅﾛｸﾞ比較器出力(ACO)ﾋﾞｯﾄ(任意でﾎﾟｰﾄEのPE0)が設定(1)されます。この比較器出力はﾀｲﾏ/ｶｳﾝﾀ1の捕獲機能を起動するように設定できます。加えて、この比較器はｱﾅﾛｸﾞ比較器専
用の独立した割り込みを起動できます。使用者は比較
器出力の上昇端、下降端、またはその両方で割り込み起動を選べます。この比較器とその周辺論理回路の構
成図は右で示されます。
ADC入力(A/D多重器出力)の使用を可能とするには、電力削減ﾚｼﾞｽﾀ0のA/D変換器電力削減(PRR0.PRAD
C)ﾋﾞｯﾄが0を書かれなければなりません。
関連ﾘﾝｸ 電力管理と休止形態
消費電力の最小化

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

割り込み
選択

+
-

AIN1

ACIE

ACME
ADEN
A/D
多重器出力

ACIS1 ACIS0
ACO

ACIC

ACOE

ｱﾅﾛｸﾞ
比較器
割り込み
ACI
ﾀｲﾏ/ｶｳﾝﾀ1
捕獲起動
選択へ
PE0/ACO

注: ｱﾅﾛｸﾞ比較器ﾋﾟﾝ配置については「ﾋﾟﾝ配置」と「入出力ﾎﾟｰﾄ」の記述を参照してください。

27.2. ｱﾅﾛｸﾞ比較器入力選択
ｱﾅﾛｸﾞ比較器への反転入力を取り替えるのにADC7～0のどれかを選択することができます。A/D変換の多重器がこの入力選択に使われ、故にこの機能を利用するにはA/D変換部がOFF(動作禁止)にされな
ければなりません。A/D変換制御/状態ﾚｼﾞｽﾀB(ADCSRB)のｱﾅﾛｸﾞ比較器多重器許可(ACME)ﾋﾞｯﾄが1で、A/D変換部がOFF(ADCSRAのA
DENﾋﾞｯﾄが0)にされていれば、右表で示されるようにA/D多重器選択(ADMUX)ﾚｼﾞｽﾀのA/Dﾁｬﾈﾙ選択(MUX2～0)ﾋﾞｯﾄの下位3ﾋﾞｯﾄがｱﾅﾛ
ｸﾞ比較器への反転入力を取り替えるための入力ﾋﾟﾝを選びます。ADC
SRB.ACME=0またはADCSRA.ADEN=1されると、AIN1がｱﾅﾛｸﾞ比較器への反転入力に印加されます。

表27-1. ｱﾅﾛｸﾞ比較器反転入力選択
ACME ADEN MUX2～0 ｱﾅﾛｸﾞ比較器反転入力
0
x
xxx
AIN1
1
xxx
ADC0
000
ADC1
001
ADC2
010
ADC3
1
011
0
ADC4
100
ADC5
101
ADC6
110
ADC7
111

27.3. ｱﾅﾛｸﾞ比較器用ﾚｼﾞｽﾀ
27.3.1. ADCSRB - A/D変換制御/状態ﾚｼﾞｽﾀB (ADC Control and Status Register B)
名称 : ADCSRB
変位 : $7B
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

-

ACME

-

-

-

R
0

R/W
0

R
0

R
0

R
0

2

1

0

ADTS2～0
R/W
0

R/W
0

R/W
0

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 172頁

ATmega328PB
27.3.2. ACSRB - ｱﾅﾛｸﾞ比較器 制御/状態ﾚｼﾞｽﾀB (Analog Comparator Control and Status Register B)
名称 : ACSRB
変位 : $4F ($2F)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$2Fです。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

-

-

ACOE

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R/W
0

● ﾋﾞｯﾄ0 - ACOE : ｱﾅﾛｸﾞ比較器出力許可 (Analog Comparator Output Enable)

このﾋﾞｯﾄが設定(1)されると、ACO(PE0)ﾋﾟﾝにｱﾅﾛｸﾞ比較器出力が接続されます。

27.3.3. ACSR - ｱﾅﾛｸﾞ比較器 制御/状態ﾚｼﾞｽﾀ (Analog Comparator Control and Status Register)
名称 : ACSR
変位 : $50 ($30)
ﾘｾｯﾄ : ‘00x00000’
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$30です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

ACD

ACBG

ACO

ACI

ACIE

ACIC

R/W
0

R/W
0

R
不定

R/W
0

R/W
0

R/W
0

1

0

ACIS1,0
R/W
0

R/W
0

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

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

このﾋﾞｯﾄが設定(1)されると、内部基準電圧(公称1.1V)がｱﾅﾛｸﾞ比較器への非反転入力に置き換わります。本ﾋﾞｯﾄが解除(0)されると、AIN0がｱﾅﾛｸﾞ比較器の非反転入力に印加されます。内部基準電圧がｱﾅﾛｸﾞ比較器入力として使われるとき、電圧の安定に一定時間を必要とします。安定(待機を)しない場合、最初は不正値を与えるかもしれません。
● ﾋﾞｯﾄ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 - ACIC : ｱﾅﾛｸﾞ比較器捕獲起動許可 (Analog Comparator Input Capture Enable)

論理1を書かれると、このﾋﾞｯﾄはｱﾅﾛｸﾞ比較器によって起動されるﾀｲﾏ/ｶｳﾝﾀ1の捕獲機能を許可します。この場合、比較器出力は比較器にﾀｲﾏ/ｶｳﾝﾀ1捕獲割り込みの雑音消去機能とｴｯｼﾞ選択機能を利用させる捕獲入力前置論理回路へ直接的に接続されます。
論理0を書かれると、ｱﾅﾛｸﾞ比較器と捕獲機能間の接続は存在しません。比較器がﾀｲﾏ/ｶｳﾝﾀ1捕獲割り込みを起動するには、ﾀｲﾏ/
ｶｳﾝﾀ1割り込み許可ﾚｼﾞｽﾀ(TIMSK1)の捕獲割り込み許可(ICIE1)ﾋﾞｯﾄが設定(1)されなければなりません。

(訳注) 原書ではACSRBﾚｼﾞｽﾀ記述が削除されていますが、本書では整合性からこれを残しています。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 173頁

ATmega328PB● ﾋﾞｯﾄ1,0 - ACIS1,0 : ｱﾅﾛｸﾞ比較器割り込み条件 (Analog Comparator Interrupt Mode Select)

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

表27-2. ｱﾅﾛｸﾞ比較器割り込み条件選択
ACIS1
ACIS0
割り込み発生条件0
比較器出力の変移 (ﾄｸﾞﾙ)
0
(予約)
0
1
1
比較器出力の下降端0比較器出力の上昇端
1127.3.4. DIDR1 - ﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ1 (Digital Input Disable Register 1)
名称 : DIDR1
変位 : $7F
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

-

-

-

-

-

-

AIN1D

AIN0D

R
0

R
0

R
0

R
0

R
0

R
0

R/W
0

R/W
0

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 174頁

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

28.2. 概要
本ﾃﾞﾊﾞｲｽは10ﾋﾞｯﾄ逐次比較A/D変換器が特徴です。このA/D変換器はﾎﾟｰﾄCのﾋﾟﾝから構成された8(6)つのｼﾝｸﾞﾙ ｴﾝﾄﾞ電圧入力を許す8ﾁｬﾈﾙ ｱﾅﾛｸﾞ多重器に接続されます。このｼﾝｸﾞﾙ ｴﾝﾄﾞ電圧入力は0V(GND)が基準です。
このA/D変換器はA/D変換器への入力電圧が変換中に一定の値で保持されることを保証する採取&保持(S/H)回路を含みます。
A/D変換部の構成図は下で示されます。
A/D変換部には分離されたｱﾅﾛｸﾞ電源供給ﾋﾟﾝ(AVCC)があります。AVCCはVCCから±0.3Vよりも多く違ってはなりません。このﾋﾟﾝの接続方法は「雑音低減技術」項をご覧ください。
電力削減ﾚｼﾞｽﾀ0のADC電力削減(PRR0.PRADC)ﾋﾞｯﾄはA/D変換部を許可するために0を書かれなければなりません。
A/D変換部は逐次比較を通してｱﾅﾛｸﾞ入力電圧を10ﾋﾞｯﾄのﾃﾞｼﾞﾀﾙ値に変換します。最小値はGNDを表し、最大値はAREFﾋﾟﾝの電圧-1LSBを表します。A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)の基準電圧選択(REFS1,0)ﾋﾞｯﾄへの書き込みにより、任意でAVCCまたは内部
1.1V基準電圧がAREFﾋﾟﾝに接続できます。従ってこの内部基準電圧は雑音耐性を改善するためにAREFﾋﾟﾝで外部ｺﾝﾃﾞﾝｻによってﾃﾞｶｯﾌﾟ(雑音結合減少)ができます。

図28-1. A/D変換器部構成図

ADC7A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)

ﾁｬﾈﾙ選択

ADC6

ADC4
ADC3

起動元
選択
START

非反転入力
多重器

ADC5

MUX
復号器

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

8 7

0

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

前置
分周器

ADC9～0

1.1V内蔵
基準電圧
温度感知器(ADC8)

15

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

GND

A/D変換完了
割り込み

+

AREF

ADIF
ADIE

ADPS2
ADPS1
ADPS0

1

ADEN
ADSC
ADATE
(ADIF)

1.1V内蔵
基準電圧

MUX3
MUX2
MUX1
MUX0

0

各種割り込み要求ﾌﾗｸﾞ
ADTS2～08-bit Data Bus

REFS1
REFS0
ADLAR

AVCC

+

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

ADC1
ADC0

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 175頁

ATmega328PB
ｱﾅﾛｸﾞ入力ﾁｬﾈﾙはA/D多重器選択(ADMUX)ﾚｼﾞｽﾀのﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄへの書き込みによって選択されます。GNDと固定基準電圧(1.1V内蔵基準電圧(VBG))だけでなく、どのADC入力ﾋﾟﾝ(ADC7～0)もがA/D変換器のｼﾝｸﾞﾙ ｴﾝﾄﾞ入力として選択できます。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が読まれる前に次の(第2の)変換が完了すると、どちらのﾚｼﾞｽﾀ(ADCH,ADCL)も更新されず、第2の変換からの結果が失われることを意味します。ADCHが読まれると、ADCH,ADCLへのA/D変換器ｱｸｾｽが再び許可されます。
A/D変換部には変換完了時に起動できる自身の割り込みがあります。A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀへのA/D変換器ｱｸｾｽがADCLとADCHの読み込み間で禁止されている場合、例えその変換結果が失われても割り込みは起動します。
関連ﾘﾝｸ 電力管理と休止形態
電力削減ﾚｼﾞｽﾀ

28.3. 変換の開始単独変換は電力削減ﾚｼﾞｽﾀ0(PRR0)のA/D変換器電力削減(PRADC)ﾋﾞｯﾄに0を書き、A/D変換制御/状態ﾚｼﾞｽﾀA(ADCSRA)の変換開始(ADSC)ﾋﾞｯﾄに1を書くことによって開始されます。ADSCは変換が進行中である限り1に留まり、変換が完了されるとﾊｰﾄﾞｳｪｱによって解除(0)されます。変換が進行中に違う入力ﾁｬﾈﾙが選択されると、A/D変換部はそのﾁｬﾈﾙ変更を実行する前に現在の変換を済ませます。
代わりに、変換は様々な起動元によって自動的に起動できます。自動起動はA/D変換自動起動許可(ADCSRA.ADATE)ﾋﾞｯﾄの設定(1)によって許可されます。起動元はA/D変換制御/状態ﾚｼﾞｽﾀB(ADCSRB)のA/D変換起動元選択(ADTS2～0)ﾋﾞｯﾄの設定によって選択されます。利用可能な起動元の一覧についてはADCSRB.ADTSの記述をご覧ください。
選択した起動信号上に上昇端が起きると、A/D変換用前置分周器がﾘｾｯﾄし、変換が開始されます。これは一定間隔での変換開始の方法を提供します。変換完了時、起動信号が未だ設定(1)されている場合、新規の変換は開始されません。変換中にこの起動信号上で別の上昇端が起きると、そのｴｯｼﾞは無視されます。指定した割り込みが禁止またはAVR ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが解除(0)でも、割り込み要求ﾌﾗｸﾞが設定(1)されることに注意してください。従って割り込みを起こさずに変換が起動できます。けれども次の割り込み要因で新規変換を起動するために、割り込み要求ﾌﾗｸﾞは解除(0)されなければなりません。
図28-2. A/D変換自動起動回路
ADTS2～0

START
ADATE

CLKADC

ADIF
割り込み元1

変換制御回路～
割り込み元nADSC

前置分周器

ｴｯｼﾞ検出器

起動元として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変換雑音低減休止動作中に変換を許可します。詳細については「雑音低減機能」をご覧ください。(訳注:共通性から2行追加)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 176頁

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

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

既定での逐次比較回路は最大分解能を得るのに50～200kHzの入力ｸﾛｯｸ周波数を 図28-3. A/D変換前置分周器部構成
必要とします。10ﾋﾞｯﾄよりも低い分解能が必要とされるなら、A/D変換器への入力ｸﾛｯ
CK
ｸ周波数はより高い採取速度を得るために200kHzよりも高くできます。
ADEN
7ﾋﾞｯﾄ前置分周器
R
A/D変換部は100kHz以上のどんなCPUｸﾛｯｸからも受け入れ可能なA/D変換ｸﾛｯｸ
START
周波数を生成する前置分周器を含みます。この前置分周はA/D変換制御/状態ﾚｼﾞ
ｽﾀA(ADCSRA)のA/Dｸﾛｯｸ選択(ADPS2～0)ﾋﾞｯﾄによって設定されます。前置分周器
はADCSRAのA/D許可(ADEN)ﾋﾞｯﾄに1を書くことによってA/D変換部がONにされた瞬間から計数を始めます。前置分周器はADEN=1である限り走行を保ち、ADEN=0の
ADPS0
A/D変換器用
時に継続的にﾘｾｯﾄします。
ADPS1
選択器
ADPS2
ADCSRAのA/D変換開始(ADSC)ﾋﾞｯﾄに1を書くことによってｼﾝｸﾞﾙ ｴﾝﾄﾞ入力の変換を起動すると、その変換は直後の変換ｸﾛｯｸの上昇端で始まります。
A/D変換ｸﾛｯｸ
通常の変換は13変換ｸﾛｯｸ周期で行われます。A/D変換部がONにされる(即ちADC
SRAのADENが1を書かれた)後の最初の変換はｱﾅﾛｸﾞ回路を初期化するために25変換ｸﾛｯｸ周期で行われます。
内部基準電圧がA/D変換器への入力として使われるとき、電圧の安定に一定時間を必要とします。安定(待機を)しない場合は初回
変換後の最初の読み込み値は不正になるかもしれません。
実際の採取&保持(保持開始点)は通常変換の開始後1.5変換ｸﾛｯｸ周期、初回変換の開始後13.5変換ｸﾛｯｸ周期で行われます。変
換が完了すると、結果がA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH,ADCL)に書かれ、ADCSRAのA/D変換完了割り込み要求ﾌﾗｸﾞ(ADIF)が設定(1)されます。単独変換動作(ADATE=0)では同時にADCSRAのADSCﾋﾞｯﾄが解除(0)されます。その後にｿﾌﾄｳｪｱは再びADCSRAのADSCを設定(1)でき、新規変換は変換ｸﾛｯｸの最初の上昇端で開始されます。
自動起動が使われると、前置分周器は起動要因発生時にﾘｾｯﾄされます。これは起動要因から変換開始までの一定の遅延を保証します。この動作での採取&保持は起動要因となる信号の上昇後、2変換ｸﾛｯｸ周期で採取が行われます。同期化論理回路(ｴｯｼﾞ検出器)に対して、追加の3CPUｸﾛｯｸ周期が費やされます。
連続変換動作(ADATE=1)では変換完了後直ちに新規変換が開始され、一方ADSCは1に留まります。以降のA/D変換時間の表もご覧ください。
図28-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

基準電圧･
多重器確定

保持点

図28-5. 通常変換ﾀｲﾐﾝｸﾞ (単独変換動作)
変換周期番号

1

2

3

4

5

通常変換
6
7
8

9

10

11

12

13

次の変換
1
2
3

変換ｸﾛｯｸ
ADSC

変換完了

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

© 2018 Microchip Technology Inc.

以前の変換値

今回の変換値

H
L
1
0
1
0
1
0

基準電圧･
多重器確定

保持点

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 177頁

ATmega328PB
図28-6. 通常変換ﾀｲﾐﾝｸﾞ (自動起動変換動作)
変換周期番号

1

2

4

3

通常変換
6
7
8

5

9

10

11

12

13

次の変換
1
2

変換ｸﾛｯｸ
起動要因
ADATE

変換完了
保持点

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

以前の変換値

基準電圧･
多重器確定

前置分周器
ﾘｾｯﾄ

図28-7. 連続変換動作ﾀｲﾐﾝｸﾞ
通常変換
変換周期番号 11 12 13

次の変換
1
2
3

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

今回の変換値

今回の変換値

H
L
1
0
1
0
1
0
1
0

H
L
1
0
1
0
1
0

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

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

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 178頁

ATmega328PB
28.5.2. A/D変換基準電圧
このA/D変換用の基準電圧(VREF)はA/D変換に対する変換範囲を示します。VREFを越えるｼﾝｸﾞﾙ ｴﾝﾄﾞ入力ﾁｬﾈﾙは$3FFで打ち切
るｺｰﾄﾞに帰着します。VREFはAVCC、内部1.1V基準電圧、外部AREFﾋﾟﾝのどれかとして選択できます。
AVCCは受動型ｽｨｯﾁを通してA/D変換部に接続されます。内部1.1V基準電圧は内蔵基準(ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ)電圧(VBG)から内部増幅器
を通して生成されます。どちらの場合でも外部AREFﾋﾟﾝは直接的にA/D変換部へ接続され、AREFﾋﾟﾝとGND間にｺﾝﾃﾞﾝｻを接続する
ことにより、基準電圧は雑音耐性をより高められます。VREF(電圧)は高入力ｲﾝﾋﾟｰﾀﾞﾝｽ電圧計とAREFﾋﾟﾝで測定することもできます。
VREFは高ｲﾝﾋﾟｰﾀﾞﾝｽ出力で、容量性負荷のみがｼｽﾃﾑ内で接続されるべきであることに注意してださい。
使用者がAREFﾋﾟﾝに接続された固定電圧源にするなら、この外部電圧がその他の内部基準電圧と短絡してしまうため、使用者はこの応用内で他の基準電圧選択を使ってはなりません。外部電圧がAREFﾋﾟﾝに印加されないなら、使用者は基準電圧選択として
AVCCと内部1.1V基準電圧間の切り替えができます。基準電圧源切り替え後の最初のA/D変換結果は不正確かもしれず、使用者はこの結果を破棄することが推奨されます。

28.6. 雑音低減機能
この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へ切り替えられません。使
用者は余分な消費電力を避けるため、このような休止形態へ移行する前にADCSRAのADENへ0を書くことが推奨されます。

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

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 179頁

ATmega328PB
28.6.2. ｱﾅﾛｸﾞ雑音低減技術
ﾃﾞﾊﾞｲｽ内外のﾃﾞｼﾞﾀﾙ回路がｱﾅﾛｸﾞ測定の精度に影響を及ぼすかもしれない
EMIを発生します。精密な変換精度が必要な場合、次の技法を適用することによって雑音ﾚﾍﾞﾙを低減できます。
1. ｱﾅﾛｸﾞ信号経路を可能な限り最短にしてください。ｱﾅﾛｸﾞ信号線がｱﾅﾛｸﾞ
GND面上を走ることに注意し、高速切り替えﾃﾞｼﾞﾀﾙ信号線から充分離すことを守ってください。
2. ﾃﾞﾊﾞｲｽのAVCCﾋﾟﾝは右図で示されるようにLC濾波器を経由してﾃﾞｼﾞﾀﾙ供給電圧(VCC)に接続されるべきです。
3. CPUからの誘導雑音を低減するためにA/D変換の雑音低減機能を使ってください。
4. どれかのADC0～3ﾎﾟｰﾄ ﾋﾟﾝがﾃﾞｼﾞﾀﾙ出力として使われる場合、これらは変換進行中に切り替わらないことが重要です。けれども2線直列ｲﾝﾀｰﾌｪｰｽ(ADC4とADC5)の使用はADC4とADC5の変換にのみ影響し、他のADCﾁｬ
ﾈﾙには影響しません。

図28-9. A/D変換部電源接続
ADC2 (PC2)

ADC3 (PC3)

ADC4 (SDA)

ADC5 (SCL)

PC6 (RESET)VCC (4番ﾋﾟﾝ)

ｱﾅﾛｸﾞ接地面

29 28 27 26 25
24 ADC1 (PC1)23 ADC0 (PC0)ATmega328PB

10µH

22 ADC7

GND

21

20 AREF0.1(訳注) 図28-9.は原図に対し修正され、ﾋﾟﾝ名は部分的に省略されています。

19 ADC6
AVCC
18

注: ｺｲﾙの抵抗分が大きすぎる場合、AVCCはVCC-0.3V<AVCC<VCC+0.3Vの範囲を超えるかもしれません。

17 PB5 (SCK)

28.6.3. A/D変換の精度定義

果

果

結

結

換

換

変

想

の

変

の

際

理

実

ｵﾌ

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

変換結果符号

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

果
結
換
変
の
想

INL
結

果

結

換

理

結
換
の
変
想
理

果

図28-13. 微分非直線性誤差
変換結果符号

果

図28-12. 積分非直線性誤差
変換結果符号

実際の符号の幅(隣接する2つの遷移点間)に於いて理想ｺｰ
ﾄﾞ幅(1LSB)と比較した最大偏差です。理想値は0LSBです。
・ 量子化誤差
有限数の符号で入力電圧を量子化するため、1LSB幅となる
入力電圧範囲は同じ値の符号になります。この値は常に±0.5LSBです。
・ 絶対精度補正しない全ての遷移点に於いて理想遷移点と比較した最大偏差です。これは、ｵﾌｾｯﾄ誤差、利得誤差、差動誤差、非直線誤差の影響の合成です。理想値は±0.5LSBです。

変

1LSB

の

際

換

実

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

DNL
ｱﾅﾛｸﾞ入力電圧の変28.7. A/D変換の結果
変換完了(ADCSRAのADIFの設定(1))後、変換結果はA/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ(ADCH, ADCL)で得られます。
ｼﾝｸﾞﾙ ｴﾝﾄﾞ入力変換での結果は右式で示されます。

ADC =VIN×1024
VREF

VINは選択した入力ﾋﾟﾝの電圧で、VREFは選択した基準電圧です(ADMUXのREFSとMUXの記述もご覧ください)。$000はｱﾅﾛｸﾞGNDを表し、$3FFは選択した基準電圧-1LSBを表します。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 180頁

ATmega328PB
28.8. 温度測定
温度測定はｼﾝｸﾞﾙ ｴﾝﾄﾞ温度感知器ﾁｬﾈﾙに連結されるﾁｯﾌﾟ上の温度感知器に基きます。A/D多重器選択(ADMUX)ﾚｼﾞｽﾀのﾁｬﾈﾙ
選択(MUX3～0)ﾋﾞｯﾄに'1000'を書くことによる温度感知器ﾁｬﾈﾙ選択がこの温度感知器を許可します。温度感知器測定に対する推奨
A/D変換器基準電圧源は1.1V内部基準電圧です。温度感知器が許可されると、A/D変換器は温度感知器上の電圧測定を単独変換動作(ADATE=0)で使うことができます。
測定した電圧は右表で記述されたように温度に対して直線的関係を持ちます。電 表28-2. 温度対感知器出力電圧(代表条件)
圧感度は概ね1LSB/℃で、温度測定精度は室温での校正を仮定して±10℃で
温度(℃)
-45℃
+25℃
+85℃
す。より良い精度は校正に対する2つの温度点を使うことによって達成されます。
ADCH/L 205LSB 270LSB 350LSB
右表に記載した値は代表値です。然しながら製法変化のため、温度感知器出力
電圧は或るﾁｯﾌﾟと別のﾁｯﾌﾟで変化します。より正確な結果達成を可能とするため(ADCH<<8 | ADCL)-TOSに温度測定は応用ｿﾌﾄｳｪｱで校正できます。校正ｿﾌﾄｳｪｱは次式を使って行なえ
T (温度) =k
ます。
ここでADCH:ADCLはA/D変換器ﾃﾞｰﾀ ﾚｼﾞｽﾀ、k は固定係数(訳補:希望温度形式に依存)、TOSは温度感知器変位(ｵﾌｾｯﾄ)値です。一般的に、kは非常に1.0に近く、1点校正ではこの係数が省略されるかもしれません。
利得と変位(ｵﾌｾｯﾄ)はﾃﾞﾊﾞｲｽ毎に変わり、故に校正はﾃﾞﾊﾞｲｽ毎に行われなければなりません。詳細については「AVR122:AVRの内部温度基準の校正」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 181頁

ATmega328PB
28.9. A/D変換用ﾚｼﾞｽﾀ
28.9.1. ADMUX - A/D多重器選択ﾚｼﾞｽﾀ (ADC Multiplexer Select Register)
名称 : ADMUX
変位 : $7C
ﾘｾｯﾄ : $00
特質 : -

ﾋﾞｯﾄ

7

6

REFS1,0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

5

4

ADLAR

-

R/W
0

R
0

3

2

1

0

R/W
0

R/W
0

MUX3～0
R/W
0

R/W
0

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

これらのﾋﾞｯﾄはA/D変換器の基準電圧を選びます。これらのﾋﾞｯﾄが変換中に変更されると、その変更は変換が完了する(ADCSRAのADIFが設定(1)される)まで実施しません。AREFﾋﾟﾝに外部基準電圧が印加される場合、内部の基準電圧が使われてはなりません。
表28-3. A/D変換部の基準電圧選択
REFS1
REFS0
基準電圧
AREFﾋﾟﾝの外部基準電圧 (AVCCと内部1.1V基準電圧は切り離されます。)
0001
AVCC (内部1.1V基準電圧は切り離されますが、AREFにﾃﾞｶｯﾌﾟ用ｺﾝﾃﾞﾝｻが接続できます。)
1
0
(予約)
1
1
内部1.1V基準電圧 (AVCCは切り離されますが、AREFにﾃﾞｶｯﾌﾟ用ｺﾝﾃﾞﾝｻが接続できます。)● ﾋﾞｯﾄ5 - ADLAR : 左揃え選択 (ADC Left Adjust Result)

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

これらのﾋﾞｯﾄの値はA/D変換器に接続されるｱﾅﾛｸﾞ入力を選びます。これらのﾋﾞｯﾄが変換中に変更される場合、その変更は変換が完了する(ADCSRAのADIFが設定(1)される)まで実施しません。

表28-4. ｱﾅﾛｸﾞ入力ﾁｬﾈﾙ選択
1000
0000 0001 0010 0011 0100 0101 0110 0111
1001～1101
MUX3～0(予約)
ｱﾅﾛｸﾞ入力ﾁｬﾈﾙ ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 温度感知器
温度
備考
PC0
PC1
PC2
PC3
PC4
PC5
PE2
PE3

1110
1.1V
VBG

1111
0V
GND

28.9.2. ADCSRA - A/D制御/状態ﾚｼﾞｽﾀA (ADC Control and Status Register A)
名称 : ADCSRA
変位 : $7A
ﾘｾｯﾄ : $00
特質 : -

ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

ADEN

ADSC

ADATE

ADIF

ADIE

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

2

1

0

ADPS2～0
R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ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書き込みは無効です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 182頁

ATmega328PB● ﾋﾞｯﾄ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変換完了割り込みが活性に(許可)されます。このﾋﾞｯﾄが解除(0)されると、この割り込みは禁止されます(訳注:共通性のため本行追加)。
● ﾋﾞｯﾄ2～0 - ADPS2～0 : A/D変換ｸﾛｯｸ選択 (ADC Prescaler Select Bits)

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

表28-5. A/D変換ｸﾛｯｸ選択 (CK=ｼｽﾃﾑ ｸﾛｯｸ)
ADPS2～0
000
001
CK/2
CK/2
A/D変換ｸﾛｯｸ

010
CK/4

011
CK/8

100
CK/16

101
CK/32

110
CK/64

111
CK/12828.9.3. ADCSRB - A/D制御/状態ﾚｼﾞｽﾀB (ADC Control and Status Register B)
名称 : ADCSRB
変位 : $7B
ﾘｾｯﾄ : $00
特質 : ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

-

ACME

-

-

-

R
0

R/W
0

R
0

R
0

R
0

2

1

0

ADTS2～0
R/W
0

R/W
0

R/W
0

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

このﾋﾞｯﾄが論理1を書かれ、A/D変換部がOFF(ADCSRAのADENﾋﾞｯﾄが0)にされると、A/D変換の多重器がｱﾅﾛｸﾞ比較器への反転入力を選択します。このﾋﾞｯﾄが論理0を書かれると、AIN1がｱﾅﾛｸﾞ比較器の反転入力に印加されます。このﾋﾞｯﾄの詳細な記述については「ｱﾅﾛｸﾞ比較器入力選択」をご覧ください。
● ﾋﾞｯﾄ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)されている起動元への切り替
えが、起動信号上に上昇端を生成することに注意してください。ADCSR
AのA/D許可(ADEN)ﾋﾞｯﾄが設定(1)されているなら、これが変換を開始させます。連続変換動作(ADTS2～0=0)への切り替えは、例えA/D変換
完了割り込み要求ﾌﾗｸﾞが設定(1)されていても、起動事象を引き起こしません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

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

DS40001906C - 183頁

ATmega328PB
28.9.4. ADCH,ADCL - A/D変換ﾃﾞｰﾀ ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (ADC Data Register Low and High Byte) [ADLAR=0]
名称 : ADCHとADCL
変位 : $78
ﾘｾｯﾄ : $0000
特質 : ADLAR=0
ADCHとADCLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のADCを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
A/D変換が完了すると、その結果がADCHとADCLの2つのﾚｼﾞｽﾀで得られます。
ADCLが読まれると、A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀはADCHが読まれるまで更新されません。従ってこの結果が左揃えで且つ8ﾋﾞｯﾄを越える精度が必要とされないなら、ADCHを読むことで用が足ります。さもなければADCLが先に、その後にADCHが読まれなければなりません。
A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)の左揃え選択(ADLAR)ﾋﾞｯﾄとA/Dﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄはこのﾚｼﾞｽﾀから結果を読む方法に影響を及ぼします。ADLARが設定(1)ならば結果は左揃えにされます。ADLARが解除(0:既定)ならば結果は右揃えにされます。
ﾋﾞｯﾄ

15

14

13

12

11

10

-

-

-

-

-

-

9

8

ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

R
0

R
0

R
0

R
0

ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R
0

R
0

R
0

R
0

ADC9,8ADC7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

● ﾋﾞｯﾄ9～0 - ADC9～0 : A/D変換結果 (ADC Conversion result)

これらのﾋﾞｯﾄは変換からの結果を表します。詳細については「A/D変換の結果」を参照してください。

28.9.5. ADCH,ADCL - A/D変換ﾃﾞｰﾀ ﾚｼﾞｽﾀ上位/下位ﾊﾞｲﾄ (ADC Data Register Low and High Byte) [ADLAR=1]
名称 : ADCHとADCL
変位 : $78
ﾘｾｯﾄ : $0000
特質 : ADLAR=1
ADCHとADCLのﾚｼﾞｽﾀ対は16ﾋﾞｯﾄ値のADCを表します。下位ﾊﾞｲﾄ[7～0](接尾辞L)は変位原点でｱｸｾｽできます。上位ﾊﾞｲﾄ[15～8](接尾辞H)は変位+1でｱｸｾｽすることができます。16ﾋﾞｯﾄ ﾚｼﾞｽﾀの読み書きのより多くの詳細については「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」を参照してください。
A/D変換が完了すると、その結果がADCHとADCLの2つのﾚｼﾞｽﾀで得られます。
ADCLが読まれると、A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀはADCHが読まれるまで更新されません。従ってこの結果が左揃えで且つ8ﾋﾞｯﾄを越える精度が必要とされないなら、ADCHを読むことで用が足ります。さもなければADCLが先に、その後にADCHが読まれなければなりません。
A/D多重器選択ﾚｼﾞｽﾀ(ADMUX)の左揃え選択(ADLAR)ﾋﾞｯﾄとA/Dﾁｬﾈﾙ選択(MUX3～0)ﾋﾞｯﾄはこのﾚｼﾞｽﾀから結果を読む方法に影響を及ぼします。ADLARが設定(1)ならば結果は左揃えにされます。ADLARが解除(0:既定)ならば結果は右揃えにされます。
ﾋﾞｯﾄ

15

14

13

12

11

10

9

8

R
0

R
0

R
0

R
0

ADC9～2
ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

ﾋﾞｯﾄ

7

R
0
6

ADC1,0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R
0

R
0

R
0

R
0

5

4

3

2

1

0

-

-

-

-

-

-

R
0

R
0

R
0

R
0

R
0

R
0

● ﾋﾞｯﾄ15～6 - ADC9～0 : A/D変換結果 (ADC Conversion result)

これらのﾋﾞｯﾄは変換からの結果を表します。詳細については「A/D変換の結果」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 184頁

ATmega328PB
28.9.6. DIDR0 - ﾃﾞｼﾞﾀﾙ入力禁止ﾚｼﾞｽﾀ0 (Digital Input Disable Register 0)
名称 : DIDR0
変位 : $7E
ﾘｾｯﾄ : $00
特質 : 各々のﾋﾞｯﾄは論理1を書かれると、対応するADCnﾋﾟﾝのﾃﾞｼﾞﾀﾙ入力緩衝部が禁止されます。このﾋﾞｯﾄが設定(1)されると、対応する
ﾎﾟｰﾄ入力ﾚｼﾞｽﾀのﾋﾞｯﾄ(PINx)は常に0として読みます。ｱﾅﾛｸﾞ信号がADCnﾋﾟﾝに印加され、そのﾋﾟﾝからのﾃﾞｼﾞﾀﾙ入力が必要とされない時にﾃﾞｼﾞﾀﾙ入力緩衝部での消費電力を削減するため、そのﾋﾞｯﾄは論理1を書かれるべきです。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

ADC7D

ADC6D

ADC5D

ADC4D

ADC3D

ADC2D

ADC1D

ADC0D

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - ADC7～0 : ADC7～0ﾃﾞｼﾞﾀﾙ入力禁止 (ADC7～0 Digital Input Disable)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 185頁

ATmega328PB
29. PTC - 周辺機能接触制御器 (Peripheral Touch Controller)
29.1. 特徴
・ 低電力、高感度、環境的に強い容量性接触の釦、摺動子、輪・ ﾊﾟﾜｰｾｰﾌﾞ休止動作形態から接触での起き上がりを支援
・ 相互容量と自己容量の感知を支援- 相互容量動作での144個の釦- 自己容量動作での24個の釦- 相互と自己の容量性感知部の上手な組み合わせ
・ 電極毎に1つのﾋﾟﾝ - 外部部品なし
・ 負荷補償充電感知- 寄生容量補償と優れた感度のための調整可能な利得・ 温度とVCCの範囲に渡る0変動- 感知器の自動校正と再校正
・ 単発電荷測定・ 高い導電耐性のためのﾊｰﾄﾞｳｪｱ雑音濾波と雑音信号脱同期化
・ 選択可能なﾁｬﾈﾙ変更遅延は必要とされる時に新しいﾁｬﾈﾙでの静定時間選択を許します。
・ 命令によって、または自動起動機能を通して起動される採取開始
・ 採取完了での割り込みを通した低いCPU使用率

29.2. 概要
周辺機能接触制御器(PTC:Peripheral Touch Controller)は容量性感知部での接触を検知するために信号を取得します。外部の容量性接触感知部は代表的にPCBで形成され、感知部電極はﾃﾞﾊﾞｲｽの入出力ﾋﾟﾝを通してPTCのｱﾅﾛｸﾞ前処理部に接続されます。
PTCは自己と相互の両容量性感知部を支援します。
相互容量動作に於いて、検知は酸化ｲﾝｼﾞｳﾑ錫(ITO:Indium tin oxide)感知格子を含む、多数のX-Y構成設定で容量性接触行列を使って行われます。PTCはX線毎に1つのﾋﾟﾝ、Y線毎に1つのﾋﾟﾝが必要です。
自己容量動作に於いて、PTCは各接触感知部に対して1つのﾋﾟﾝ(Y線)だけが必要です。
利用可能なﾋﾟﾝ数とXとYの線の割り当ては外囲器形式とﾃﾞﾊﾞｲｽ構成設定の両方に依存します。詳細については製品形態要約と入出力多重化の表を参照してください。

29.3. 構成図
図29-1. PTC構成図 - 相互容量
入力制御

Y0
Y1

補償回路
採取部

Rs

・ 利得制御・ A/D変換
・ 濾波

Ym

CX0Y0

割り込み
10

結果

X0
X1
CXnYm

X線駆動部

Xn

周辺機能接触制御部

図29-2. PTC構成図 - 自己容量
入力制御

Y0
Y1
CY0

CYm

補償回路
採取部

Rs

・ 利得制御・ A/D変換
・ 濾波

Ym

割り込み
10

結果

X線駆動部
周辺機能接触制御部© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 186頁

ATmega328PB
29.4. 信号説明
表29-1. 信号説明
注: X線とY線の数はﾃﾞﾊﾞｲｽ依存です。詳細については「入出力多重化」を参照してください。
名前
形式
説明
Xn～0 ﾃﾞｼﾞﾀﾙ X線 (出力)Ym～0 ｱﾅﾛｸﾞ Y線 (入出力)
この周辺機能に対するﾋﾟﾝ割り当ての詳細については「入出力多重化」を参照してください。信号は様々なﾋﾟﾝで割り当てられ得ます。

29.5. ｼｽﾃﾑ依存性
この周辺能接を使うには、以降の項で記述されるようにｼｽﾃﾑの他の部分を構成設定してください。

29.5.1. 入出力線
ｱﾅﾛｸﾞのX線とY線用に使われる入出力線は外部の容量性接触感知部電極に接続されなければなりません。標準動作に対しては外部部品は必要とされません。けれども、EMC性能を改善するため、X線とY線に1kΩ以上の直列抵抗を使うことができます。
29.5.1.1. 相互容量感知部配置
相互容量感知部は送出用のX電極と感知用のY電極の2つの入出力線間に形成されます。XとYの電極間の相互容量は周辺機能接触制御器によって測定されます。

図29-3. 相互容量感知部配置

X0
X1
Xn
MCU PTC部

Cx0,y0

感知部容量 Cx,y
Cx0,y1 Cx0,ym

Cx1,y0Cx1,y1Cx1,ymCxn,y0Cxn,y1

Cxn,ym

Y0
Y1
Ym

29.5.1.2. 自己容量感知部配置
自己容量感知部は信号感知用のY電極を通して周辺機能接触制御器の単一ﾋﾟﾝに接続されます。電極容量感知は周辺機能接触制御器によって測定されます。
接触感知部の設計についてのより多くの情報に関しては「釦、摺動子、輪の接触感知部設計の指針」を参照してください。

図29-4. 自己容量感知部配置
感知部容量 Cy

Y0

Cy0

PTC部
MCU

Y1
Cy1
Ym
Cym

29.6. 機能的な説明
PTCにｱｸｾｽするため、使用者は構成設定して応用ｿﾌﾄｳｪｱとQTouchﾗｲﾌﾞﾗﾘ ﾌｧｰﾑｳｪｱとﾘﾝｸするのにAtmel Start QTouch®構成部
を使わなければなりません。QTouchﾗｲﾌﾞﾗﾘは単一ｲﾝﾀｰﾌｪｰｽに於いて種々の組み合わせで釦、摺動子、輪の実装に使うことができます。
図29-5. QTouchﾗｲﾌﾞﾗﾘの使い方
独自ｺｰﾄﾞ

ｺﾝﾊﾟｲﾗﾘﾝｸ

応用

Qtouchﾗｲﾌﾞﾗﾘ
QTouchﾗｲﾌﾞﾗﾘについてのより多くの情報に関してはQTouchﾗｲﾌﾞﾗﾘ 周辺機能接触制御器使用者の手引きを参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 187頁

ATmega328PB
30. DBG - ﾃﾞﾊﾞｯｸﾞWIRE 内蔵ﾃﾞﾊﾞｯｸﾞ ｼｽﾃﾑ (debugWIRE On-chip Debug System)
30.1. 特徴・ 完全なﾌﾟﾛｸﾞﾗﾑの流れ制御
・ RESETﾋﾟﾝを除くﾃﾞｼﾞﾀﾙとｱﾅﾛｸﾞ両方でのﾁｯﾌﾟ全機能のｴﾐｭﾚｰﾄ
・ 実時間(ﾘｱﾙ ﾀｲﾑ)動作・ ｼﾝﾎﾞﾘｯｸ ﾃﾞﾊﾞｯｸﾞ支援 (ｱｾﾝﾌﾞﾘ及びC言語または他の高位言語)
・ 無制限数のﾌﾟﾛｸﾞﾗﾑ中断点(ﾌﾞﾚｰｸ ﾎﾟｲﾝﾄ : ｿﾌﾄｳｪｱ中断点使用)
・ 邪魔しない動作
・ 実ﾃﾞﾊﾞｲｽと同じ電気的特性
・ 自動設定ｼｽﾃﾑ
・ 高速動作・ 不揮発性ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ

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

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

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

30.5. ﾃﾞﾊﾞｯｸﾞWIREの制限
ﾃﾞﾊﾞｯｸﾞWIRE通信(dW)ﾋﾟﾝは物理的に外部ﾘｾｯﾄ(RESET)と同じﾋﾟﾝに配置されます。従ってﾃﾞﾊﾞｯｸﾞWIREが許可されると、外部ﾘｾｯﾄ
元が支援されません。
ﾃﾞﾊﾞｯｸﾞWIREｼｽﾃﾑはSPI部とｼｽﾃﾑ ｸﾛｯｸを共用します。従って電力削減ﾚｼﾞｽﾀ0(PRR0)のPRSPI0ﾋﾞｯﾄはﾃﾞﾊﾞｯｸﾞ時に設定(1)されてはなりません。PRSPI0ﾋﾞｯﾄの設定(1)はﾃﾞﾊﾞｯｸﾞWIRE部へのｸﾛｯｸを禁止し、ﾃﾞﾊﾞｲｽの固着を引き起こすかもしれません。
ﾌﾟﾛｸﾞﾗﾑ(0)にしたDWENﾋｭｰｽﾞは全休止形態でｸﾛｯｸ系のいくつかの部分の走行を許可します。これは休止間中の消費電力を増加します。従ってDWENﾋｭｰｽﾞはﾃﾞﾊﾞｯｸﾞWIREが使われない場合、禁止されるべきです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 188頁

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

30.6.1. DWDR - ﾃﾞﾊﾞｯｸﾞWIRE ﾃﾞｰﾀ ﾚｼﾞｽﾀ (debugWIRE Data Register)
名称 : DWDR
変位 : $51 ($31)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$31です。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R/W
0

R/W
0

R/W
0

R/W
0

DWDR7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7～0 - DWDR7～0 : ﾃﾞﾊﾞｯｸﾞWIREﾃﾞｰﾀ (deBugWire Data)

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 189頁

ATmega328PB
31. BTLDR - ﾌﾞｰﾄ ﾛｰﾀﾞ支援 - 書き込み中読み出し可能な自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
31.1. 特徴
・ 書き込み中読める(Read-While-Write)自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
・ 柔軟性のあるﾌﾞｰﾄ ﾛｰﾀﾞ ﾒﾓﾘ容量・ 高い安全性 (柔軟な保護用の独立したﾌﾞｰﾄ施錠ﾋﾞｯﾄ)・ ﾘｾｯﾄ ﾍﾞｸﾀ選択用の独立したﾋｭｰｽﾞ
・ 最適化されたﾍﾟｰｼﾞ容量 (注1)
・ 効率的なｺｰﾄﾞ手法
・ 効率的な読み-変更-書き(ﾘｰﾄﾞ ﾓﾃﾞﾌｧｲ ﾗｲﾄ)支援
注1: ﾍﾟｰｼﾞはﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中に使われる多数のﾊﾞｲﾄから成るﾌﾗｯｼｭ ﾒﾓﾘの区画です(「ﾍﾟｰｼﾞ容量」のﾌﾗｯｼｭ ﾒﾓﾘのﾍﾟｰｼﾞ数とﾍﾟｰｼﾞの語数の表をご覧ください)。このﾍﾟｰｼﾞ構成は通常動作に影響を及ぼしません。
関連ﾘﾝｸ ﾍﾟｰｼﾞ容量

31.2. 概要
本ﾃﾞﾊﾞｲｽに於いて、ﾌﾞｰﾄ ﾛｰﾀﾞ支援はMCU自身によるﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞのﾀﾞｳﾝﾛｰﾄﾞとｱｯﾌﾟﾛｰﾄﾞ用の真の書き込み中の読み出しが可能な自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ機構を提供します。この特徴はﾌﾗｯｼｭ ﾒﾓﾘに常駐するﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑを使うMCUによって制御される柔軟な応用ｿﾌﾄｳｪｱ更新を可能にします。ﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑはﾌﾗｯｼｭ ﾒﾓﾘ内にｺｰﾄﾞを書き(ﾌﾟﾛｸﾞﾗﾑ)、ｺｰﾄﾞを読み、またはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘか
らｺｰﾄﾞを読むのに、利用可能なﾃﾞｰﾀ ｲﾝﾀｰﾌｪｰｽと関連する規約のどれもが使えます。ﾌﾞｰﾄ ﾛｰﾀﾞ領域内のﾌﾟﾛｸﾞﾗﾑ ｺｰﾄﾞはﾌﾞｰﾄ ﾛｰ
ﾀﾞ ﾒﾓﾘを含むﾌﾗｯｼｭ ﾒﾓﾘ全体を書く能力を持ちます。従ってﾌﾞｰﾄ ﾛｰﾀﾞは自身をも変更でき、この機能がそれ以上必要とされないな
ら、そのｺｰﾄﾞから自身を消去することもできます。ﾌﾞｰﾄ ﾛｰﾀﾞ ﾒﾓﾘの容量はﾋｭｰｽﾞで設定可能で、ﾌﾞｰﾄ ﾛｰﾀﾞは個別に設定可能な2組の独立したﾌﾞｰﾄ施錠ﾋﾞｯﾄを持ちます。これは異なる保護ﾚﾍﾞﾙを選択する独特な柔軟性を使用者に与えます。

31.3. ﾌﾗｯｼｭ ﾒﾓﾘの応用領域とﾌﾞｰﾄ ﾛｰﾀﾞ領域
ﾌﾗｯｼｭ ﾒﾓﾘは応用領域とﾌﾞｰﾄ ﾛｰﾀﾞ領域の2つの主な領域で構成されます。各領域の容量はBOOTSZﾋｭｰｽﾞによって設定されます。
これら2つの領域は個別の施錠ﾋﾞｯﾄの組を持つため、異なる保護ﾚﾍﾞﾙを持てます。

31.3.1. 応用領域
応用領域は応用ｺｰﾄﾞを格納するのに使われるﾌﾗｯｼｭ ﾒﾓﾘの領域です。応用領域用保護ﾚﾍﾞﾙは応用ﾌﾞｰﾄ施錠ﾋﾞｯﾄ(ﾌﾞｰﾄ施錠ﾋﾞｯﾄ0)
によって選択できます。応用領域から実行される時にSPM命令が禁止されるので、応用領域はどんなﾌﾞｰﾄ ﾛｰﾀﾞ ｺｰﾄﾞも決して格納し得ません。

31.3.2. ﾌﾞｰﾄ ﾛｰﾀﾞ領域 (BLS)
応用領域が応用ｺｰﾄﾞ格納用に使われるのに対して、SPM命令はBLSから実行する時にだけﾌﾟﾛｸﾞﾗﾐﾝｸﾞを始められるので、ﾌﾞｰﾄ ﾛｰ
ﾀﾞ ｿﾌﾄｳｪｱはBLSに格納されなければなりません。SPM命令はBLS自身を含む全てのﾌﾗｯｼｭ ﾒﾓﾘをｱｸｾｽできます。ﾌﾞｰﾄ ﾛｰﾀﾞ領域
用保護ﾚﾍﾞﾙはﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄ(ﾌﾞｰﾄ施錠ﾋﾞｯﾄ1)によって選択できます。

31.4. ﾌﾗｯｼｭ ﾒﾓﾘの書き込み中に読み出し可能な領域と不能な領域
どちらのｱﾄﾞﾚｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞされるかによって、CPUが書き込み中の読み出しを支援するか、ﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱが更新中にCPUが停止されるかのどちらです。上で記述されるようなBOOTSZﾋｭｰｽﾞによって設定可能な2つの領域に加え、ﾌﾗｯｼｭ ﾒﾓﾘは書き込み中読み出し可能な(RWW)領域と書き込み中読み出し不能な(NRWW)領域の2つの固定領域にも分けられます。RWWとNRWW領域間の境界は「ﾌﾞｰﾄ ﾛｰﾀﾞ ﾊﾟﾗﾒｰﾀ」項と図31-2.で与えられます。この2つの領域間の主な違いを次に示します。
・ RWW領域側に配置されたﾍﾟｰｼﾞを消去または書くとき、NRWW領域はその動作中に読むことができます。
・ NRWW領域側に配置されたﾍﾟｰｼﾞを消去または書くとき、その全ての動作中にCPUは停止されます。
ﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱ動作中、使用者ｿﾌﾄｳｪｱはRWW領域側に配置されたどのｺｰﾄﾞも決して読めません。「書き込み中読み出し可能領域」という記述はﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(消去または書き込み)される領域としての引用で、ﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱが更新中に実際に読まれる領域ではありません。
関連ﾘﾝｸ ﾌﾞｰﾄ ﾛｰﾀﾞ ﾊﾟﾗﾒｰﾀ
(訳補) 上の記述はNRWW領域からRWW領域をﾌﾟﾛｸﾞﾗﾐﾝｸﾞするという前提で、消去または書き込みを行う側ではなく、行われる側でこの名称が定義されていることを意味します。即ち、NRWW領域からRWW領域をﾌﾟﾛｸﾞﾗﾐﾝｸﾞすると、NRWW領域のﾌﾟﾛｸﾞﾗﾑは
通常通り動作する(即ち読める)ので、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞされる側はRWW領域と名付けられ、この逆ではCPUが停止する(即ち読めない)ので、NRWW領域と名付けられているという意味です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 190頁

ATmega328PB
31.4.1. RWW - 書き込み中読み出し可能領域
ﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱ更新がRWW領域側のﾍﾟｰｼﾞをﾌﾟﾛｸﾞﾗﾐﾝｸﾞする場合、ﾌﾗｯｼｭ ﾒﾓﾘからｺｰﾄﾞを読むことが可能ですが、NRWW領域に配置されるｺｰﾄﾞだけです。ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ実行中、そのｿﾌﾄｳｪｱはRWW領域が決して読まれないことを保証しなければなりません。使
用者ｿﾌﾄｳｪｱがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中に(例えば、CALL,JMP,LPM系命令または割り込みによって)RWW領域側に配置されるｺｰﾄﾞを読もうとすると、そのｿﾌﾄｳｪｱは未知の状態へ行き着くかもしれません。これを避けるために割り込みは禁止またはﾌﾞｰﾄ ﾛｰﾀﾞ領域へ移動のどちらかにされるべきです。ﾌﾞｰﾄ ﾛｰﾀﾞ領域は常にNRWW領域に配置されます。RWW領域が読み出しに対して妨げられている限り、SPM
命令制御/状態ﾚｼﾞｽﾀ(SPMCSR)のRWW領域多忙(RWWSB)ﾋﾞｯﾄが論理1として読めます。ﾌﾟﾛｸﾞﾗﾐﾝｸﾞが完了した後、RWW領域に配置したｺｰﾄﾞを読む前にRWWSBはｿﾌﾄｳｪｱによって解除(0)されなければなりません。RWWSBを解除(0)する方法の詳細については本
章内の「SPMCSR - SPM命令制御/状態ﾚｼﾞｽﾀ」をご覧ください。

31.4.2. NRWW - 書き込み中読み出し不能領域
NRWW領域に配置したｺｰﾄﾞはﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱがRWW領域内のﾍﾟｰｼﾞを更新する時に読めます。ﾌﾞｰﾄ ﾛｰﾀﾞ ｺｰﾄﾞがNRWW領域を更新するとき、全てのﾍﾟｰｼﾞ消去またはﾍﾟｰｼﾞ書き込み動作中にCPUが停止されます。
表31-1. 書き込み中読み出し可能機能
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中にZﾎﾟｲﾝﾀで指定される領域
RWW領域
NRWW領域ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中に読める領域
NRWW領域
なし

CPU動作
通常動作
停止

RWW機能支援ありなし

図31-1. RWW領域とNRWW領域の関係
書き込み中読み出し
可能 (RWW) 領域
ZﾎﾟｲﾝﾀRWW領域指定
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中の命令読み込み可能

書き込み中読み出し
不能 (NRWW) 領域

ZﾎﾟｲﾝﾀNRWW領域指定
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中の命令読み込み不能(CPU停止)

図31-2. 選択によるﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘの領域分割
BOOTSZ=11

BOOTSZ=10

BOOTSZ=01

BOOTSZ=00$0000

応用ﾌﾟﾛｸﾞﾗﾑ領域

応用ﾌﾟﾛｸﾞﾗﾑ領域

応用ﾌﾟﾛｸﾞﾗﾑ領域

応用ﾌﾟﾛｸﾞﾗﾑ RWW
領域
領域

RWW領域最終位置
NRWW領域開始位置
応用領域最終位置
ﾌﾞｰﾄ ﾛｰﾀﾞ領域開始位置
ﾌﾗｯｼｭ ﾒﾓﾘ最終位置
関連ﾘﾝｸ

ﾌﾞｰﾄ ﾛｰﾀﾞ
領域

ﾌﾞｰﾄ ﾛｰﾀﾞ
領域

ﾌﾞｰﾄ ﾛｰﾀﾞ
領域

ﾌﾞｰﾄ ﾛｰﾀﾞ
領域

NRWW
領域

ﾌﾞｰﾄ ﾛｰﾀﾞ ﾊﾟﾗﾒｰﾀ

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 191頁

ATmega328PB
31.5. ﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑへの移行
ﾌﾞｰﾄ ﾛｰﾀﾞへの移行は応用ﾌﾟﾛｸﾞﾗﾑから分岐(Jump)または呼び出し(Call)によって行います。これはUSARTやSPIｲﾝﾀｰﾌｪｰｽ経由で受信した指令のような起点によって始められるかもしれません。代わりに、ﾘｾｯﾄ後にﾘｾｯﾄ ﾍﾞｸﾀがﾌﾞｰﾄ ﾛｰﾀﾞ領域開始ｱﾄﾞﾚｽを指示するようにﾌﾞｰﾄ ﾘｾｯﾄ(BOOTRST)ﾋｭｰｽﾞをﾌﾟﾛｸﾞﾗﾑ(0)することができます。この場合、ﾌﾞｰﾄ ﾛｰﾀﾞがﾘｾｯﾄ後に開始されます。応用ｺｰﾄﾞが設定された(書かれた)後、そのﾌﾟﾛｸﾞﾗﾑ(ﾌﾞｰﾄ ﾛｰﾀﾞ)は応用ｺｰﾄﾞの実行を始めることができます。このﾋｭｰｽﾞはMCU自身によって変更できません。これは一旦ﾌﾞｰﾄ ﾘｾｯﾄ ﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾘｾｯﾄ ﾍﾞｸﾀは常にﾌﾞｰﾄ ﾛｰﾀﾞ ﾘｾｯﾄを指示し、このﾋｭｰｽﾞが直列ﾌﾟﾛｸﾞ
ﾗﾐﾝｸﾞまたは並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ｲﾝﾀｰﾌｪｰｽを通してのみ変更できることを意味します。
表31-2. ﾌﾞｰﾄ ﾘｾｯﾄ ﾋｭｰｽﾞ (0=ﾌﾟﾛｸﾞﾗﾑ、1=非ﾌﾟﾛｸﾞﾗﾑ)
ﾘｾｯﾄ後実行開始ｱﾄﾞﾚｽ (ﾘｾｯﾄ ﾍﾞｸﾀ)
BOOTRST0
ﾌﾞｰﾄ ﾛｰﾀﾞ ﾘｾｯﾄ
ﾌﾞｰﾄ ﾛｰﾀﾞ開始ｱﾄﾞﾚｽ (「ﾌﾞｰﾄ ﾛｰﾀﾞ ﾊﾟﾗﾒｰﾀ」で記述されるように)
1
応用ﾘｾｯﾄ$0000

31.6. ﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄ
ﾌﾞｰﾄ ﾛｰﾀﾞ能力が必要とされないなら、ﾌﾗｯｼｭ ﾒﾓﾘ全体が応用ｺｰﾄﾞ用に利用可能です。ﾌﾞｰﾄ ﾛｰﾀﾞは個別に設定可能な独立した2組のﾌﾞｰﾄ施錠ﾋﾞｯﾄを持ちます。これは異なる保護ﾚﾍﾞﾙを選択する独特な柔軟性を使用者に与えます。
使用者は以下を選択できます。
・ MCUによって更新するｿﾌﾄｳｪｱからﾌﾗｯｼｭ ﾒﾓﾘ全体を保護
・ MCUによって更新するｿﾌﾄｳｪｱからﾌﾗｯｼｭ ﾒﾓﾘのﾌﾞｰﾄ ﾛｰﾀﾞ領域だけを保護
・ MCUによって更新するｿﾌﾄｳｪｱからﾌﾗｯｼｭ ﾒﾓﾘの応用領域だけを保護
・ ﾌﾗｯｼｭ ﾒﾓﾘ全体で更新するｿﾌﾄｳｪｱを許可
ﾌﾞｰﾄ施錠ﾋﾞｯﾄはｿﾌﾄｳｪｱと直列または並列のﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作で設定(0)できますが、これらのﾋﾞｯﾄはﾁｯﾌﾟ消去指令によってのみ解除(1)できます。一般書き込み禁止(LB動作種別2)はSPM命令によるﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞを制御しません。同様に、試みられたなら、一般読み書き禁止(LB動作種別3)はLPM命令とSPM命令による読み込みも書き込みも制御しません。(訳補:一般LBはLPM/SPM
命令に関して無関係の意)
表31-3. 応用領域に対する保護種別 (0=ﾌﾟﾛｸﾞﾗﾑ、1=非ﾌﾟﾛｸﾞﾗﾑ)
BLB0 動作種別
BLB01
BLB02
保護種別
1
1
LPM, SPM命令が応用領域をｱｸｾｽすることに対して制限はありません。
1
2
1
SPM命令は応用領域に書くことを許されません。
0
SPM命令による応用領域への書き込みと、ﾌﾞｰﾄ ﾛｰﾀﾞ領域でのLPM命令による応用
300領域からの読み込みが許されません。 (注)40ﾌﾞｰﾄ ﾛｰﾀﾞ領域でのLPM命令による応用領域からの読み込みが許されません。 (注)1
注: BLB02=0で、割り込みﾍﾞｸﾀがﾌﾞｰﾄ ﾛｰﾀﾞ領域に配置されていると、応用領域での実行時に割り込みが禁止されます。
表31-4. ﾌﾞｰﾄ ﾛｰﾀﾞ領域に対する保護種別 (0=ﾌﾟﾛｸﾞﾗﾑ、1=非ﾌﾟﾛｸﾞﾗﾑ)
BLB1 動作種別
BLB11
BLB12
保護種別
1
1
LPM, SPM命令がﾌﾞｰﾄ ﾛｰﾀﾞ領域をｱｸｾｽすることに対して制限はありません。
1
1
0
2
SPM命令はﾌﾞｰﾄ ﾛｰﾀﾞ領域に書くことを許されません。
SPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ領域への書き込みと、応用領域でのLPM命令によるﾌﾞｰﾄ003
ﾛｰﾀﾞ領域からの読み込みが許されません。 (注)104
応用領域でのLPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ領域からの読み込みが許されません。 (注)注: BLB12=0で、割り込みﾍﾞｸﾀが応用領域に配置されていると、ﾌﾞｰﾄ ﾛｰﾀﾞ領域での実行時に割り込みが禁止されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 192頁

ATmega328PB
31.7. 自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中のﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
Zﾎﾟｲﾝﾀ(ﾚｼﾞｽﾀ)はSPM命令でのｱﾄﾞﾚｽ指定に使われます。Zﾎﾟｲﾝﾀはﾚｼﾞｽﾀ ﾌｧｲﾙ内のZHとZLから成ります。実際に使われるﾋﾞｯﾄ数は実装依存です。
ﾋﾞｯﾄ
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

ﾌﾗｯｼｭ ﾒﾓﾘがﾍﾟｰｼﾞで構成されるため、ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ(ｱﾄﾞﾚｽ ﾎﾟｲﾝﾀ)は2つの違う領域を持つように扱われます。1つの領域は下位側ﾋﾞｯﾄから成り、ﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)をｱﾄﾞﾚｽ指定し、一方上位側ﾋﾞｯﾄはそのﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定します。これは次図で示されます。ﾍﾟｰ
ｼﾞ消去とﾍﾟｰｼﾞ書き込み操作が個別にｱﾄﾞﾚｽ指定されることに注意してください。従ってﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱはﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み操作の両方で同じﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定することが最も重要です。一旦ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ操作が開始されると、このｱﾄﾞﾚｽはﾗｯﾁされ、Zﾎﾟ
ｲﾝﾀは他の操作に使えます。
Zﾎﾟｲﾝﾀを使わないSPM操作はﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄ設定だけです。この操作でZﾚｼﾞｽﾀの内容は無視され、無効です。LPM命令もｱﾄﾞﾚｽを格納するのにZﾎﾟｲﾝﾀを使います。この命令はﾌﾗｯｼｭ ﾒﾓﾘのﾊﾞｲﾄ単位をｱﾄﾞﾚｽ指定するので、Zﾎﾟｲﾝﾀの最下位ﾋﾞｯﾄ(Z0)も使われます。
図31-3. SPM操作中のﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
ﾋﾞｯﾄ 15ZPCMSBZPAGEMSB
ZﾚｼﾞｽﾀPCMSBPCPAGE
ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ
ﾌﾗｯｼｭ ﾒﾓﾘ内のﾍﾟｰｼﾞ ｱﾄﾞﾚｽ
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ

0

PAGEMSB
PCWORDﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽ
ﾍﾟｰｼﾞ
PCWORD (PAGEMSB～0)$00
命令語(ﾜｰﾄﾞ)
$01
$02
～

ﾍﾟｰｼﾞ

1 0

PAGEEND

注: 図内で使った各変数は表31-9.で一覧されます。

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

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 193頁

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

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

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

31.8.4. SPM操作可割り込みの使用法
SPM操作可割り込みが許可されると、SPMCSRのSPMENﾋﾞｯﾄ(SPMCSR.SPMEN)が解除(0)されている時にSPM操作可割り込みが継続的に発生します。これはｿﾌﾄｳｪｱでSPMCSRをﾎﾟｰﾘﾝｸﾞする代わりにこの割り込みが使えることを意味します。SPM操作可割り込みを使
うとき、割り込みが読み出しに対して防がれる時にRWW領域をｱｸｾｽするのを避けるために、割り込みﾍﾞｸﾀはﾌﾞｰﾄ ﾛｰﾀﾞ領域(BLS)へ移動されるべきです。割り込み(ﾍﾞｸﾀ)の移動法は「INT - 割り込み」章で記述されます。
関連ﾘﾝｸ INT - 割り込み

31.8.5. ﾌﾞｰﾄ ﾛｰﾀﾞ領域(BLS)更新中の考慮
ﾌﾞｰﾄ施錠ﾋﾞｯﾄ11(BLB11)が非ﾌﾟﾛｸﾞﾗﾑ(1)にされたままとすることによって使用者がﾌﾞｰﾄ ﾛｰﾀﾞ領域(BLS)に更新を許す場合、特別な注意が祓われなければなりません。ﾌﾞｰﾄ ﾛｰﾀﾞ自身への予期せぬ書き込みはﾌﾞｰﾄ ﾛｰﾀﾞ全体を不正にし得て、更にｿﾌﾄｳｪｱの更新が不可能になるかもしれません。ﾌﾞｰﾄ ﾛｰﾀﾞ自体の変更が必要ないなら、内部ｿﾌﾄｳｪｱのどんな変更からもﾌﾞｰﾄ ﾛｰﾀﾞを保護するためにﾌﾞｰﾄ施錠ﾋﾞｯﾄ11(BLB11)をﾌﾟﾛｸﾞﾗﾑ(0)することが推奨されます。

31.8.6. 自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中のRWW領域読み込みの防止
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中(ﾍﾟｰｼﾞ消去もﾍﾟｰｼﾞ書き込みも)、RWW領域は読み出しに対して常に防がれます。使用者ｿﾌﾄｳｪｱそれ自身が自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ操作中にこの領域がｱﾄﾞﾚｽ指定されるのを防止しなければなりません。SPMCSRのRWWSB(SPMCSR.RWWSB)はRWW領域が多忙である限り設定(1)されます。自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中の割り込みﾍﾞｸﾀ表は「INT - 割り込み」章で記述されるようにﾌﾞｰﾄ ﾛｰﾀﾞ領域(BLS)へ移動されるべきか、または割り込みが禁止されなければなりません。ﾌﾟﾛｸﾞﾗﾐﾝｸﾞが完了した後にRWW領域をｱﾄﾞﾚｽ指定する
前に、使用者ｿﾌﾄｳｪｱはSPMCSR.RWWSREの書き込みによってSPMCSR.RWWSBを解除(0)しなければなりません。例については「ｱｾﾝﾌﾞﾘ言語による簡単なﾌﾞｰﾄ ﾛｰﾀﾞ例」を参照してください。
関連ﾘﾝｸ INT - 割り込み

31.8.7. SPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄと一般施錠ﾋﾞｯﾄの設定
ﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄと一般施錠ﾋﾞｯﾄを設定(0)するには希望したﾃﾞｰﾀをR0に設定してSPMCSRに'X0001001'を書き、SPMCSR書き込
み後4ｸﾛｯｸ周期内にSPM命令を実行してください。
ﾋﾞｯﾄ
R0

7

6

5

4

3

2

1

0

1

1

BLB12

BLB11

BLB02

BLB01

LB2

LB1

「ﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄ」項の表はﾌﾗｯｼｭ ﾒﾓﾘのｱｸｾｽに影響を及ぼすﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄの各種設定法を示します。
R0のﾋﾞｯﾄ5～0が解除(0)される場合、SPMCSRでSPMENﾋﾞｯﾄ(SPMCSR.SPMEN)とﾌﾞｰﾄ施錠ﾋﾞｯﾄ設定(BLBSET)ﾋﾞｯﾄ(SPMCSR.BLBSE
T)が設定(1)された後の4ｸﾛｯｸ周期内にSPM命令が実行されると、対応する施錠ﾋﾞｯﾄがﾌﾟﾛｸﾞﾗﾑ(0)されます。この操作中、Zﾎﾟｲﾝﾀは関係ありませんが、将来との共通性のため、(施錠ﾋﾞｯﾄ読み出しに使われるのと同じ)$0001でZﾎﾟｲﾝﾀを設定することが推奨されます。
将来との共通性のため、施錠ﾋﾞｯﾄ書き込み時に、R0のﾋﾞｯﾄ7,6は1に設定することも推奨されます。施錠ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾐﾝｸﾞするとき、この操作中に全てのﾌﾗｯｼｭ ﾒﾓﾘは読むことができます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 194頁

ATmega328PB
31.8.8. SPM命令での書き込み時のEEPROM書き込みによる妨害
EEPROM書き込み動作はﾌﾗｯｼｭ ﾒﾓﾘへの全ｿﾌﾄｳｪｱ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞを妨げます。ｿﾌﾄｳｪｱからのﾋｭｰｽﾞと施錠ﾋﾞｯﾄ読み出しもEEPROM
書き込み動作中、妨げられます。使用者はEEPROM制御ﾚｼﾞｽﾀ(EECR)のEEPROMﾌﾟﾛｸﾞﾗﾑ許可(EEPE)ﾋﾞｯﾄ(EECR.EEPE)を検査し、SPM命令制御/状態ﾚｼﾞｽﾀ(SPMCSR)へ書く前にこのﾋﾞｯﾄが解除(0)されているのを確認することが推奨されます。

31.8.9. ｿﾌﾄｳｪｱからのﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出し
ｿﾌﾄｳｪｱからﾋｭｰｽﾞと施錠ﾋﾞｯﾄ(LB)の両方を読むことができます。施錠ﾋﾞｯﾄを読むにはZﾎﾟｲﾝﾀに$0001を設定してSPMCSRのSPMEN(SPMCSR.SPMEN)とﾌﾞｰﾄ施錠ﾋﾞｯﾄ設定(BLBSET)(SPMCSR.BLBSET)のﾋﾞｯﾄを設定(1)してください。SPMCSRでSPMEN(SPMCSR.SP
MEN)とBLBSET(SPMCSR.BLBSET)のﾋﾞｯﾄが設定された後の3 CPU周期内にLPM命令が実行されると、施錠ﾋﾞｯﾄの値が転送先ﾚｼﾞｽ
ﾀに格納されます。SPMCSR.SPMENとSPMCSR.BLBSETのﾋﾞｯﾄは施錠ﾋﾞｯﾄ読み出しの完了で、または3 CPU周期内にLPM命令が実行されないか、または4 CPU周期内にSPM命令が実行されない場合、自動的に解除(0)されます。SPMCSR.SPMENとSPMCSR.BLBS
ETのﾋﾞｯﾄが解除(0)されると、LPMは命令一式手引書で記述されるように動作します。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

-

-

BLB12

BLB11

BLB02

BLB01

LB2

LB1

ﾋｭｰｽﾞ下位ﾋﾞｯﾄ(FLB)を読む手順は上記の施錠ﾋﾞｯﾄ読み出しと同様です。ﾋｭｰｽﾞ下位ﾋﾞｯﾄを読み出すにはZﾎﾟｲﾝﾀに$0000を設定してSPMCSRのSPMEN(SPMCSR.SPMEN)とBLBSET(SPMCSR.BLBSET)のﾋﾞｯﾄを設定(1)してください。SPMCSR.SPMENとSPMCSR.BL
BSETのﾋﾞｯﾄが設定された後の3 CPU周期内にLPM命令が実行されると、以下で示されるようにﾋｭｰｽﾞ下位ﾋﾞｯﾄ(FLB)の値が転送先ﾚｼﾞｽﾀに格納されます。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

FLB7

FLB6

FLB5

FLB4

FLB3

FLB2

FLB1

FLB0

同様に、ﾋｭｰｽﾞ上位ﾋﾞｯﾄ(FHB)を読むにはZﾎﾟｲﾝﾀに$0003を設定してください。SPMCSR.SPMENとSPMCSR.BLBSETのﾋﾞｯﾄが設定(1)された後の3周期内にLPM命令が実行されると、以下で示されるようにﾋｭｰｽﾞ上位ﾋﾞｯﾄ(FHB)の値が転送先ﾚｼﾞｽﾀに格納されます。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

FHB7

FHB6

FHB5

FHB4

FHB3

FHB2

FHB1

FHB0

拡張ﾋｭｰｽﾞ ﾋﾞｯﾄ(EFB)を読む時はZﾎﾟｲﾝﾀに$0002を設定してください。SPMCSR.SPMENとSPMCSR.BLBSETのﾋﾞｯﾄが設定(1)された後の3周期内にLPM命令が実行されると、以下で示されるように拡張ﾋｭｰｽﾞ ﾋﾞｯﾄ(EFB)の値が転送先ﾚｼﾞｽﾀに格納されます。
ﾋﾞｯﾄ
Rd

7

6

5

4

3

2

1

0

-

-

-

-

EFB3

EFB2

EFB1

EFB0

ﾌﾟﾛｸﾞﾗﾑ(0)されたﾋｭｰｽﾞと施錠ﾋﾞｯﾄは0として読みます。非ﾌﾟﾛｸﾞﾗﾑ(1)にされたﾋｭｰｽﾞと施錠ﾋﾞｯﾄは1として読みます。
関連ﾘﾝｸ ﾋｭｰｽﾞ ﾋﾞｯﾄ

31.8.10. ｿﾌﾄｳｪｱからの識票列読み出し
ｿﾌﾄｳｪｱから識票列を読むには右表で与えられる識票ﾊﾞｲﾄ ｱﾄﾞﾚｽをZﾎﾟｲﾝﾀに設定し、SPMCSRで識票列読み出し(SIGRD)(SPMCSR.SIGRD)とSPMEN(SPMCSR.SPMEN)のﾋﾞｯﾄを設定(1)してください。SPMCSR.SIGRDとSPMCSR.SPMENのﾋﾞｯﾄが設定された後の3 CP
U周期内にLPM命令が実行されると、識票ﾊﾞｲﾄ値が転送先ﾚｼﾞｽﾀに格納されます。SPM
CSR.SIGRDとSPMCSR.SPMENのﾋﾞｯﾄは識票ﾊﾞｲﾄ読み出しの完了、または3 CPU周期内にLPM命令が実行されない場合、自動的に解除(0)されます。SPMCSR.SIGRDとSPMCS
R.SPMENのﾋﾞｯﾄが解除(0)されると、LPMはAVR命令一式説明で記述されるように動作します。

表31-5. 識票列ｱﾄﾞﾚｽ一覧
識票ﾊﾞｲﾄZﾎﾟｲﾝﾀ ｱﾄﾞﾚｽ
ﾃﾞﾊﾞｲｽ識票ﾊﾞｲﾄ 1$0000
ﾃﾞﾊﾞｲｽ識票ﾊﾞｲﾄ 2$0002
ﾃﾞﾊﾞｲｽ識票ﾊﾞｲﾄ 3$0004
RC発振器校正値$0001
通番ﾊﾞｲﾄ 0$000E
通番ﾊﾞｲﾄ 1$000F
通番ﾊﾞｲﾄ 2$0010
通番ﾊﾞｲﾄ 3$0011
通番ﾊﾞｲﾄ 4$0012
通番ﾊﾞｲﾄ 5$0013
通番ﾊﾞｲﾄ 6$0014
通番ﾊﾞｲﾄ 7$0015
通番ﾊﾞｲﾄ 8$0016
通番ﾊﾞｲﾄ 9$0017
注: 他の全てのｱﾄﾞﾚｽは将来の使用に対して予約されています。

（訳注) 表31-5.は原書で削除されていますが、31.8.10.本文との整合性のため「通番」項と整合する表を残しました。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 195頁

ATmega328PB
31.8.11. ﾌﾗｯｼｭ ﾒﾓﾘ ﾃﾞｰﾀ化けの防止
低VCCの期間中、CPUとﾌﾗｯｼｭ ﾒﾓﾘの正しい動作に対して供給電圧が低すぎるためにﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾑが不正にされ得ます。
これらの問題はﾌﾗｯｼｭ ﾒﾓﾘを使う基板段階の装置と同じで、同じ設計上の解決策が適用されるべきです。
ﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾑ化けは電圧が低すぎる時の2つの状態によって起こされます。1つ目としてﾌﾗｯｼｭ ﾒﾓﾘへの通常の書き込み手
順は正しく動作するための最低電圧が必要です。2つ目として供給電圧が低すぎると、CPU自身が命令を間違って実行し得ます。
ﾌﾗｯｼｭ ﾒﾓﾘ化けは次の推奨設計によって容易に避けられます(1つは必須)。
・ そのｼｽﾃﾑでﾌﾞｰﾄ ﾛｰﾀﾞ更新が必要ない場合、どんなﾌﾞｰﾄ ﾛｰﾀﾞ ｿﾌﾄｳｪｱ更新をも防ぐためにﾌﾞｰﾄ ﾛｰﾀﾞ施錠ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾑ(0)してください。
・ 不十分な供給電源電圧の期間中、AVR RESETを活性(Low)に保ってください。これは動作電圧が検出電圧と一致するなら、内部低電圧検出器(BOD)を許可することによって行えます。そうでなければ外部低VCCﾘｾｯﾄ保護回路が使えます。書き込み操作進
行中にﾘｾｯﾄが起こると、その書き込み動作は供給電源電圧が充分であれば完了されます。
・ 低VCCの期間中、AVRｺｱをﾊﾟﾜｰﾀﾞｳﾝ休止動作に保ってください。これはCPUが命令の復号と実行の試みを防ぎ、SPMCSR、
従ってﾌﾗｯｼｭ ﾒﾓﾘを予期せぬ書き込みから効果的に保護します。

31.8.12. SPM命令使用時のﾌﾗｯｼｭ ﾒﾓﾘ用ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)時間
校正された内蔵RC発振器がﾌﾗｯｼｭ ﾒﾓﾘ ｱｸｾｽ時間に使われます。次表はCPUからのﾌﾗｯｼｭ ﾒﾓﾘ ｱｸｾｽに対する代表的なﾌﾟﾛｸﾞﾗﾐ
ﾝｸﾞ時間を示します。
表31-6. SPM命令によるﾌﾗｯｼｭ ﾒﾓﾘのﾌﾟﾛｸﾞﾗﾐﾝｸﾞ時間
項目
SPM命令によるﾌﾗｯｼｭ書き込み (ﾍﾟｰｼﾞ消去、ﾍﾟｰｼﾞ書き込み、施錠ﾋﾞｯﾄ書き込み)
注: 最小と最大の時間は(項目の)個別操作毎に対してです。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

最小
3.2ms

最大
3.4ms

DS40001906C - 196頁

ATmega328PB
31.8.13. ｱｾﾝﾌﾞﾘ言語による簡単なﾌﾞｰﾄ ﾛｰﾀﾞ例
このﾙｰﾁﾝはRAMからﾌﾗｯｼｭ ﾒﾓﾘへ1ﾍﾟｰｼﾞのﾃﾞｰﾀを書きます。RAM内の最初のﾃﾞｰﾀ位置はYﾚｼﾞｽﾀによって指示され、ﾌﾗｯｼｭ ﾒﾓﾘ
内の最初のﾃﾞｰﾀ位置はZﾚｼﾞｽﾀによって指示されます。異常処理は含まれません。このﾙｰﾁﾝ(少なくともSPMJｻﾌﾞﾙｰﾁﾝ)はﾌﾞｰﾄ ﾛｰ
ﾀﾞ領域側に配置されなければなりません。NRWW領域側のｺｰﾄﾞだけが自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み)中に読めます。
使用ﾚｼﾞｽﾀはR0,R1,TMP,CNTL,CNTH,SPMCで、ﾚｼﾞｽﾀの保存と復帰はこのﾙｰﾁﾝ内に含まれず、使用ﾚｼﾞｽﾀはｺｰﾄﾞ量を犠牲にすれば最適化できます。割り込み表がﾌﾞｰﾄ ﾛｰﾀﾞ領域に移動されるか、割り込みが禁止されるかのどちらかが前提です。
ﾍﾟｰｼﾞ内ﾃﾞｰﾀが256ﾊﾞｲﾄ以下の場合は計数器上位が不要になります。また関連する命令も変更になります。これらの部分を赤字で示します(訳注:本行は以下のﾌﾟﾛｸﾞﾗﾑ補正に対応して追加しました)。
ﾗﾍﾞﾙ

WRPG:

WLP:

RLP:

命令

注釈

.EQU
.ORG

PGSZB = PAGESIZE*2
SMALLBOOTSTART

LDI
RCALL

SPMC,(1<<PGERS)+(1<<SPMEN)
SPMJ

LDI
RCALL

SPMC,(1<<RWWSRE)+(1<<SPMEN)
SPMJ

LDI
LDI
LD
LD
LDI
RCALL
ADIW
SBIW
BRNE

CNTL,LOW(PGSZB)
CNTH,HIGH(PGSZB)
R0,Y+
R1,Y+
SPMC,(1<<SPMEN)SPMJ
ZH:ZL,2
CNTH:CNTL,2
WLP

SUBI
SBCI
LDI
RCALL

ZL,LOW(PGSZB)ZH,HIGH(PGSZB)SPMC,(1<<PGWRT)+(1<<SPMEN)
SPMJ

LDI
RCALL

SPMC,(1<<RWWSRE)+(1<<SPMEN)
SPMJ

LDI
LDI
SUBI
SBCI
LPM
LD
CPSE
RJMP

CNTL,LOW(PGSZB)
CNTH,HIGH(PGSZB)YL,LOW(PGSZB)YH,HIGH(PGSZB)
R0,Z+
R1,Y+
R0,R1
ERROR

SBIW
BRNE

CNTH:CNTL,1
RLP

IN
SBRS
RET

TMP,SPMCSR
TMP,RWWSB

LDI
RCALL
RJMP

SPMC,(1<<RWWSRE)+(1<<SPMEN)
SPMJ
RTN

IN
SBRC
RJMP

TMP,SPMCSR
TMP,SPMEN
SPMJ

IN
CLI
SBIC
RJMP

TMP,SREG; PGSZBはﾍﾟｰｼﾞ内のﾊﾞｲﾄ数です。(PAGESIZEはﾜｰﾄﾞ数);; [ ﾍﾟｰｼﾞ消去 ]; ﾍﾟｰｼﾞ消去SPMCSR値を取得; ﾍﾟｰｼﾞ消去; [ RWW領域読み出し再許可 ]; RWW領域読み出し許可SPMCSR値を取得; RWW領域読み出し許可; [ RAMからﾌﾗｯｼｭ ﾍﾟｰｼﾞ一時緩衝部へ転送 ]; ﾊﾞｲﾄ計数器を初期化; (削除); RAM上の下位ﾃﾞｰﾀを取得(ﾎﾟｲﾝﾀ進行); RAM上の上位ﾃﾞｰﾀを取得(ﾎﾟｲﾝﾀ進行); ﾍﾟｰｼﾞ一時緩衝部書き込みSPMCSR値を取得; 対応語(ﾜｰﾄﾞ)ﾃﾞｰﾀをﾍﾟｰｼﾞ一時緩衝部に設定; ﾍﾟｰｼﾞ一時緩衝部ﾎﾟｲﾝﾀ進行; 計数器を減数 (SUBI); 指定ﾊﾞｲﾄ数分継続; [ ﾍﾟｰｼﾞ書き込み ]; ﾍﾟｰｼﾞ一時緩衝部先頭にﾎﾟｲﾝﾀを復帰; (削除); ﾌﾗｯｼｭ書き込みSPMCSR値を取得; ﾌﾗｯｼｭ ﾒﾓﾘ ﾍﾟｰｼﾞ書き込み; [ RWW領域読み出し再許可 ]; RWW領域読み出し許可SPMCSR値を取得; RWW領域読み出し許可; [ 読み戻し照合 (任意) ]; ﾊﾞｲﾄ計数器を初期化; (削除); RAMﾃﾞｰﾀ先頭にﾎﾟｲﾝﾀを復帰;; ﾌﾗｯｼｭ ﾒﾓﾘから1ﾊﾞｲﾄ取得(ﾎﾟｲﾝﾀ進行); RAMから1ﾊﾞｲﾄ ﾃﾞｰﾀを取得(ﾎﾟｲﾝﾀ進行); 値一致でｽｷｯﾌﾟ; 不一致で異常処理へ

;
:
RTN:
;

SPMJ:

; 計数器を減数 (SUBI); 指定ﾊﾞｲﾄ数分継続; [ RWW領域へ復帰 ]; SPM命令制御/状態ﾚｼﾞｽﾀ値を取得; RWW領域多忙でｽｷｯﾌﾟ; 準備可で呼び出し元へ復帰; [ RWW領域読み出し再許可 ]; RWW領域読み出し許可SPMCSR値を取得; RWW領域読み出し許可; RWW領域準備可まで待機へ; [ SPM命令実行ｻﾌﾞﾙｰﾁﾝ ]; SPM命令制御/状態ﾚｼﾞｽﾀ値を取得; 操作可能(直前のSPM完了)でｽｷｯﾌﾟ; 操作可まで待機;
WAIT:

EECR,EEPE
WAIT; ｽﾃｰﾀｽ ﾚｼﾞｽﾀ値を保存; 全割り込み禁止; EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中以外でｽｷｯﾌﾟ; EEPROMﾌﾟﾛｸﾞﾗﾐﾝｸﾞ完了まで待機

;
OUT
SPM
OUT
RET

SPMCSR,SPMC
SREG,TMP© 2018 Microchip Technology Inc.

; SPM動作指定; 対応SPM動作実行; ｽﾃｰﾀｽ ﾚｼﾞｽﾀ値を復帰; 呼び出し元へ復帰

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 197頁

ATmega328PB
31.8.14. ﾌﾞｰﾄ ﾛｰﾀﾞ ﾊﾟﾗﾒｰﾀ
以下の表に於いて、自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞの記述で使ったﾊﾟﾗﾒｰﾀが与えられます。
表31-7. 応用領域とﾌﾞｰﾄ ﾛｰﾀﾞ領域の分割設定
ﾌﾞｰﾄ ﾛｰﾀﾞ領域
BOOTSZ1 BOOTSZ0
容量(ﾜｰﾄﾞ) ﾍﾟｰｼﾞ数
応用ﾌﾟﾛｸﾞﾗﾑ領域
1
4$0000～$3EFF
1
256
1
8
$0000～$3DFF
0
512
0
16
$0000～$3BFF
1
1024
0
0
2048
32
$0000～$37FF
注: 各種BOOTSZﾋｭｰｽﾞ設定は図31-2.で示されます。
表31-8. RWW領域とNRWW領域の範囲
領域
書き込み中読み出し可能(RWW)領域
書き込み中読み出し不能(NRWW)領域

ﾍﾟｰｼﾞ数224
32

ｱﾄﾞﾚｽ範囲
ﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑ領域$3F00～$3FFF$3E00～$3FFF$3C00～$3FFF$3800～$3FFF

ﾌﾞｰﾄ ﾘｾｯﾄ ｱﾄﾞﾚｽ
$3F00
$3E00
$3C00
$3800

ｱﾄﾞﾚｽ範囲$0000～$37FF$3800～$3FFF

注: これら2つの領域についての詳細に関しては「RWW - 書き込み中読み出し可能領域」と「NRWW - 書き込み中読み出し不能領域」をご覧ください。
表31-9. 図31-3.で使った各変数説明とZﾎﾟｲﾝﾀの配置
対応値
変数名
意味
Zﾎﾟｲﾝﾀ (注)
PC
PCMSB
PC13
ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀの最上位ﾋﾞｯﾄ。(ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀは14ﾋﾞｯﾄ、PC13～0)
1ﾍﾟｰｼﾞ内に使われる語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽの最上位ﾋﾞｯﾄ。
PC5
PAGEMSB(ﾍﾟｰｼﾞ内の64語には6ﾋﾞｯﾄ PC5～0が必要)
PCMSBに配置される(対応する)Zﾚｼﾞｽﾀ内のﾋﾞｯﾄ。
ZPCMSB
Z14(Z0が使われないため、ZPCMSB=PCMSB+1)
PAGEMSBに配置される(対応する)Zﾚｼﾞｽﾀ内のﾋﾞｯﾄ。
ZPAGEMSB
Z6(Z0が使われないため、ZPAGEMSB=PAGEMSB+1)
PCPAGE
PC13～6Z14～7ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ ﾍﾟｰｼﾞ ｱﾄﾞﾚｽ : ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み用のﾍﾟｰｼﾞ選択ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ 語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽ : 一時緩衝部格納用語(ﾜｰﾄﾞ)選択
PCWORDPC5～0
Z6～1(ﾍﾟｰｼﾞ書き込み操作中は0でなければなりません。)
注: Z15 : 常に無視されます。
Z0 : 全てのSPM命令に対して0であるべきで、LPM命令に対するﾊﾞｲﾄ選択です。
自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中のZﾎﾟｲﾝﾀの使用についての詳細に関しては「自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中のﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定」をご覧ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 198頁

ATmega328PB
31.9. ﾌﾞｰﾄ ﾛｰﾀﾞ関係ﾚｼﾞｽﾀ
31.9.1. SPMCSR - SPM命令制御/状態ﾚｼﾞｽﾀ (Store Program Memory Control and Status Register)
名称 : SPMCSR
変位 : $57 ($37)
ﾘｾｯﾄ : $00
特質 : I/O特定命令でI/Oﾚｼﾞｽﾀとしてｱｸｾｽする時の変位ｱﾄﾞﾚｽは$37です。
このﾚｼﾞｽﾀはﾌﾞｰﾄ ﾛｰﾀﾞ動作を制御するために必要とされる制御ﾋﾞｯﾄを含みます。
LD系とST系の命令を使い、ﾃﾞｰﾀ空間としてI/Oﾚｼﾞｽﾀをｱｸｾｽする時は、提供された変位が使われなければなりません。I/O特定命
令のINとOUTを使う時は、この変位が$20で減算され、I/Oｱﾄﾞﾚｽの変位は$00～$3F内になります。
ﾋﾞｯﾄ
ｱｸｾｽ種別
ﾘｾｯﾄ値

7

6

5

4

3

2

1

0

SPMIE

RWWSB

SIGRD

RWWSREBLBSET

PGWRT

PGERS

SPMEN

R/W
0

R
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

● ﾋﾞｯﾄ7 - SPMIE : SPM操作可割り込み許可 (SPM Interrupt Enable)

SPMIEﾋﾞｯﾄが1を書かれ、ｽﾃｰﾀｽ ﾚｼﾞｽﾀ(SREG)の全割り込み許可(I)ﾋﾞｯﾄが設定(1)されているなら、SPM操作可割り込みが許可されます。SPM操作可割り込みはSPMCSRのSPM操作許可(SPMEN)ﾋﾞｯﾄが解除(0)されている限り実行されます。
● ﾋﾞｯﾄ6 - RWWSB : RWW領域多忙 (Read-While-Write Section Busy)

RWW領域に自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(ﾍﾟｰｼﾞ消去またはﾍﾟｰｼﾞ書き込み)操作が開始されると、RWWSBがﾊｰﾄﾞｳｪｱによって設定(1)されます。
RWWSBﾋﾞｯﾄが設定(1)されると、RWW領域はｱｸｾｽできません。自己ﾌﾟﾛｸﾞﾗﾐﾝｸﾞが完了された後にRWWSREﾋﾞｯﾄが1を書かれると、このRWWSBﾋﾞｯﾄは解除(0)されます。同様に、ﾍﾟｰｼﾞ設定操作が開始されると、RWWSBﾋﾞｯﾄは自動的に解除(0)されます。
● ﾋﾞｯﾄ5 - SIGRD : 識票列読み出し (Signature Row Read)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の3ｸﾛｯｸ周期内のLPM命令は識票列からﾊﾞｲﾄを転送先ﾚｼﾞｽﾀに読みます。本章の「ｿﾌﾄｳｪｱからの識票列読み出し」を参照してください。SIGRDとSPMENが設定(1)された後の4ｸﾛｯｸ周期内のSPM命令は無効です。この操作は将来の使用に対して予約されており、使われるべきではありません。
● ﾋﾞｯﾄ4 - RWWSRE : RWW領域読み出し許可 (Read-While-Write Section Read Enable)

RWW領域にﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(ﾍﾟｰｼﾞ消去またはﾍﾟｰｼﾞ書き込み)すると、RWW領域は(RWWSBがﾊｰﾄﾞｳｪｱによって設定(1)され)読み出しに対して防がれます。RWW領域を再許可するために使用者ｿﾌﾄｳｪｱはﾌﾟﾛｸﾞﾗﾐﾝｸﾞが完了(SPMENが解除(0))されるまで待たねばなりません。その後、RWWSREﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令がRWW領域を再許可します。ﾍﾟｰｼﾞ消去またはﾍﾟｰｼﾞ書き込みでﾌﾗｯｼｭ ﾒﾓﾘが多忙(SPMEN=1)の間、RWW領域は再許可できません。ﾌﾗｯｼｭ ﾒﾓﾘが設定されている間に
RWWSREﾋﾞｯﾄが書かれると、ﾌﾗｯｼｭ ﾒﾓﾘ設定操作は失敗し、設定したﾃﾞｰﾀが失われます。
● ﾋﾞｯﾄ3 - BLBSET : ﾌﾞｰﾄ施錠ﾋﾞｯﾄ設定 (Boot Lock Bits Set)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令は、R0のﾃﾞｰﾀに従って一般施錠とﾌﾞｰﾄ施錠ﾋﾞｯﾄを設定します。R1のﾃﾞｰﾀとZﾎﾟｲﾝﾀのｱﾄﾞﾚｽは無視されます。BLBSETﾋﾞｯﾄは施錠ﾋﾞｯﾄの設定完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。
SPMCSRでBLBSET(SPMCSR.BLBSET)とSPMEN(SPMCSR.SPMEN)が設定(1)された後の3ｸﾛｯｸ周期内のLPM命令は(ZﾎﾟｲﾝﾀのZ0
によって)ﾋｭｰｽﾞ ﾋﾞｯﾄまたは施錠ﾋﾞｯﾄのどちらかを転送先ﾚｼﾞｽﾀに読みます。本章の「ｿﾌﾄｳｪｱからのﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出
し」を参照してください。
● ﾋﾞｯﾄ2 - PGWRT : ﾍﾟｰｼﾞ書き込み (Page Write)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令は一時緩衝部に格納したﾃﾞｰﾀでﾍﾟｰｼﾞ書き込みを実行します。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽはZﾎﾟｲﾝﾀの上位部から取得されます。R1とR0のﾃﾞｰﾀは無視されます。PGWRTﾋﾞｯﾄはﾍﾟｰｼﾞ書き込みの完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。NRWW領域がｱﾄﾞﾚｽ指定されると、ﾍﾟｰｼﾞ全体の書き込み動作中にCPUは停止されます。
● ﾋﾞｯﾄ1 - PGERS : ﾍﾟｰｼﾞ消去 (Page Erase)

このﾋﾞｯﾄがSPMENと同時に1を書かれると、次の4ｸﾛｯｸ周期内のSPM命令はﾍﾟｰｼﾞ消去を実行します。ﾍﾟｰｼﾞ ｱﾄﾞﾚｽはZﾎﾟｲﾝﾀの上位部から取得されます。R1とR0のﾃﾞｰﾀは無視されます。PGERSﾋﾞｯﾄはﾍﾟｰｼﾞ消去の完了で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。NRWW領域がｱﾄﾞﾚｽ指定されると、ﾍﾟｰｼﾞ全体の消去中にCPUは停止されます。
● ﾋﾞｯﾄ0 - SPMEN : SPM操作許可 (Store Program Memory Enable)

このﾋﾞｯﾄは次の4ｸﾛｯｸ周期間のSPM命令を許可します。このﾋﾞｯﾄがRWWSRE, BLBSET, PGWRT, PGERSのどれかと共に1を書かれると、続くSPM命令は特別な意味を持ちます(上の記述をご覧ください)。SPMENだけが書かれると、続くSPM命令はZﾎﾟｲﾝﾀによってｱ
ﾄﾞﾚｽ指定したﾍﾟｰｼﾞ一時緩衝部へR1:R0の値を格納します。Zﾚｼﾞｽﾀの最下位ﾋﾞｯﾄは無視されます。SPMENﾋﾞｯﾄはSPM命令の完了
で、または4ｸﾛｯｸ周期内にSPM命令が実行されない場合、自動的に解除(0)されます。ﾍﾟｰｼﾞ消去とﾍﾟｰｼﾞ書き込み中、SPMENﾋﾞｯﾄはその動作が完了されるまで1に留まります。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 199頁

ATmega328PB
下位6ﾋﾞｯﾄに100001, 010001, 001001, 000101, 000011, 000001以外のどんな組み合わせを書いても無効です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 200頁

ATmega328PB
32. MEMPROG - ﾒﾓﾘ ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
32.1. ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとﾃﾞｰﾀ ﾒﾓﾘ用施錠ﾋﾞｯﾄ
本ﾃﾞﾊﾞｲｽは6つの施錠ﾋﾞｯﾄを提供します。これらは非ﾌﾟﾛｸﾞﾗﾑ(1)のままか「施錠ﾋﾞｯﾄの保護種別」の表で一覧される付加機能を得るためにﾌﾟﾛｸﾞﾗﾑ(0)することができます。この施錠ﾋﾞｯﾄはﾁｯﾌﾟ消去指令でのみ1に消去することができます。
表32-1. 施錠ﾋﾞｯﾄ ﾊﾞｲﾄの内容
ﾋﾞｯﾄ番号
名称
意味
7
6
BLB12
5
ﾌﾞｰﾄ ﾛｰﾀﾞ領域に対する保護用ﾌﾞｰﾄ施錠ﾋﾞｯﾄ
4
BLB11
BLB02
3
応用領域に対する保護用ﾌﾞｰﾄ施錠ﾋﾞｯﾄ
BLB01
2
LB2
1
ﾌﾗｯｼｭとEEPROMﾒﾓﾘに対する一般保護用施錠ﾋﾞｯﾄ
LB10
注: 0はﾌﾟﾛｸﾞﾗﾑ、1は非ﾌﾟﾛｸﾞﾗﾑを意味します。

既定値 (注)1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ)

表32-2. 施錠ﾋﾞｯﾄの保護種別
ﾒﾓﾘ施錠ﾋﾞｯﾄ
LB2
LB 種別
LB1
1
1
1

保護種別
外部ﾌﾟﾛｸﾞﾗﾐﾝｸﾞに対する保護
ﾒﾓﾘ施錠機能は機能しません。
ﾌﾗｯｼｭ、EEPROMの更なるﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)が禁止されます。ﾋｭｰｽﾞ ﾋﾞｯﾄが固定され
2
1
0ます。 (注1)
ﾌﾗｯｼｭ、EEPROMの更なるﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)と照合(読み出し)が禁止されます。ﾋｭｰｽﾞ
300ﾋﾞｯﾄとﾌﾞｰﾄ施錠ﾋﾞｯﾄが固定されます。 (注1)
BLB01
ﾌﾗｯｼｭ ﾒﾓﾘの応用ﾌﾟﾛｸﾞﾗﾑ領域に対する保護
LB0 種別BLB02
1
1
1
LPM, SPM命令が応用領域をｱｸｾｽすることに対して制限はありません。
2
1
0
SPM命令は応用領域に書くことを許されません。
SPM命令による応用領域への書き込みと、ﾌﾞｰﾄ ﾛｰﾀﾞ領域でのLPM命令による応用領域か
300
らの読み込みが許されません。 (注2)401
ﾌﾞｰﾄ ﾛｰﾀﾞ領域でのLPM命令による応用領域からの読み込みが許されません。 (注2)
BLB11
ﾌﾗｯｼｭ ﾒﾓﾘのﾌﾞｰﾄ ﾛｰﾀﾞ ﾌﾟﾛｸﾞﾗﾑ領域に対する保護
LB1 種別BLB121
1
1LPM, SPM命令がﾌﾞｰﾄ ﾛｰﾀﾞ領域をｱｸｾｽすることに対して制限はありません。
2
1
0
SPM命令はﾌﾞｰﾄ ﾛｰﾀﾞ領域に書くことを許されません。
SPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ領域への書き込みと、応用領域でのLPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ
300領域からの読み込みが許されません。 (注3)401
応用領域でのLPM命令によるﾌﾞｰﾄ ﾛｰﾀﾞ領域からの読み込みが許されません。 (注3)
注: 0はﾌﾟﾛｸﾞﾗﾑ、1は非ﾌﾟﾛｸﾞﾗﾑを意味します。
注1: 施錠ﾋﾞｯﾄを書く前にﾋｭｰｽﾞ ﾋﾞｯﾄとﾌﾞｰﾄ施錠ﾋﾞｯﾄを書いてください。ﾃﾞﾊﾞｯｸﾞWIREは全面的に禁止されます。
注2: BLB02=0で、割り込みﾍﾞｸﾀがﾌﾞｰﾄ ﾛｰﾀﾞ領域に配置されていると、応用領域での実行時に割り込みが禁止されます。
注3: BLB12=0で、割り込みﾍﾞｸﾀが応用領域に配置されていると、ﾌﾞｰﾄ ﾛｰﾀﾞ領域での実行時に割り込みが禁止されます。
(訳注) 原書の表33-2.～4.は表33-2.として纏めました。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 201頁

ATmega328PB
32.2. ﾋｭｰｽﾞ ﾋﾞｯﾄ本ﾃﾞﾊﾞｲｽは3つのﾋｭｰｽﾞ ﾊﾞｲﾄを持ちます。以下の表は全てのﾋｭｰｽﾞの概略機能とﾋｭｰｽﾞ ﾊﾞｲﾄ内でどのように配置されるかを示します。ﾋｭｰｽﾞはﾌﾟﾛｸﾞﾗﾑされると、論理0として読まれることに注意してください。
表32-5. 拡張ﾋｭｰｽﾞ ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
既定値
7～5
1 (非ﾌﾟﾛｸﾞﾗﾑ)
4
1 (非ﾌﾟﾛｸﾞﾗﾑ)CFD
3
ｸﾛｯｸ障害検出機構(CFD)禁止。
0 (ﾌﾟﾛｸﾞﾗﾑ) CFD禁止
BODLEVEL2
2
1 (非ﾌﾟﾛｸﾞﾗﾑ)
BODLEVEL1
1
低電圧検出(BOD)ﾘｾｯﾄの制御と検出電圧選択(注1) 1 (非ﾌﾟﾛｸﾞﾗﾑ)
BODLEVEL00
1 (非ﾌﾟﾛｸﾞﾗﾑ)
注1: BODLEVELﾋｭｰｽﾞの符号化については「ｼｽﾃﾑとﾘｾｯﾄの特性」内の「BODLEVELﾋｭｰｽﾞ設定」表を参照してください。
表32-6. ﾋｭｰｽﾞ上位ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
RSTDISBL(注1)7
PC6がI/OﾋﾟﾝかまたはRESETﾋﾟﾝかを選択します。
DWEN
6ﾃﾞﾊﾞｯｸﾞWIRE機能許可。
SPIEN (注2)5直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可。
WDTON (注3)4
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ常時有効。
EESAVE3
ﾁｯﾌﾟ消去からEEPROM内容を保護。
BOOTSZ1
2
ﾌﾞｰﾄ ﾛｰﾀﾞ容量選択。
(注4)
BOOTSZ0
1
BOOTRST0
ﾘｾｯﾄ ﾍﾞｸﾀ(応用領域またはﾌﾞｰﾄ ﾛｰﾀﾞ領域)選択。
注1: RSTDISBLﾋｭｰｽﾞの記述については「ﾎﾟｰﾄCの交換機能」をご覧ください。
注2: SPIENﾋｭｰｽﾞは直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞでｱｸｾｽできません。
注3: 詳細については「WDTCSR - ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ」をご覧ください。
注4: BOOTSZ1,0既定値は最大ﾌﾞｰﾄ ﾛｰﾀﾞ容量になります。表31-7.をご覧ください。

既定値
1 (非ﾌﾟﾛｸﾞﾗﾑ) PC6はRESETﾋﾟﾝ
1 (非ﾌﾟﾛｸﾞﾗﾑ) ﾃﾞﾊﾞｯｸﾞWIRE不許可
0 (ﾌﾟﾛｸﾞﾗﾑ) 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可
1 (非ﾌﾟﾛｸﾞﾗﾑ) WDTはWDTCSRで許可
1 (非ﾌﾟﾛｸﾞﾗﾑ) EEPROMは未保護
0 (ﾌﾟﾛｸﾞﾗﾑ)
0 (ﾌﾟﾛｸﾞﾗﾑ)
1 (非ﾌﾟﾛｸﾞﾗﾑ) 応用領域

表32-7. ﾋｭｰｽﾞ下位ﾊﾞｲﾄ一覧
名称
ﾋﾞｯﾄ
意味
既定値
CKDIV8 (注4)7ｼｽﾃﾑ ｸﾛｯｸ 8分周選択。
0 (ﾌﾟﾛｸﾞﾗﾑ) 8分周
CKOUT (注3)6ｼｽﾃﾑ ｸﾛｯｸ出力許可。
1 (非ﾌﾟﾛｸﾞﾗﾑ) 不許可
SUT1
51 (非ﾌﾟﾛｸﾞﾗﾑ)
起動時間選択。
(注1)0 (ﾌﾟﾛｸﾞﾗﾑ)
SUT0
4
CKSEL330 (ﾌﾟﾛｸﾞﾗﾑ)CKSEL220 (ﾌﾟﾛｸﾞﾗﾑ)
ｸﾛｯｸ種別選択。
(注2)
1 (非ﾌﾟﾛｸﾞﾗﾑ)CKSEL1
1
CKSEL000 (ﾌﾟﾛｸﾞﾗﾑ)
注1: SUT1,0の既定値は既定ｸﾛｯｸ元に対する最大起動時間になります。詳細については「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」章の「校正付き内蔵RC発振器」の「校正付き内蔵RC発振器用起動遅延時間選択」表をご覧ください。
注2: CKSEL3～0の既定設定は8MHz校正付き内蔵RC発振器になります。詳細については「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」章の「校正付き内蔵RC発振器」の「校正付き内蔵RC発振器動作種別」表をご覧ください。
注3: CKOUTﾋｭｰｽﾞはｼｽﾃﾑ ｸﾛｯｸにﾎﾟｰﾄB0へ出力することを許します。詳細については「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」章の「ｸﾛｯｸ出
力緩衝部」を参照してください。
注4: 詳細については「ｼｽﾃﾑ ｸﾛｯｸとｸﾛｯｸ選択」章の「ｼｽﾃﾑ ｸﾛｯｸ前置分周器」を参照してください。
ﾋｭｰｽﾞ ﾋﾞｯﾄの状態はﾁｯﾌﾟ消去によって影響されません。施錠ﾋﾞｯﾄ1(LB1)がﾌﾟﾛｸﾞﾗﾑ(0)されると、ﾋｭｰｽﾞ ﾋﾞｯﾄが固定されることに注意してください。施錠ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾑ(0)する前にﾋｭｰｽﾞ ﾋﾞｯﾄをﾌﾟﾛｸﾞﾗﾐﾝｸﾞ(書き込み)してください。
関連ﾘﾝｸ 校正付き内蔵RC発振器
WDTCSR - ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ制御ﾚｼﾞｽﾀ
交換ﾎﾟｰﾄ機能
ｼｽﾃﾑとﾘｾｯﾄの特性© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 202頁

ATmega328PB
32.2.1. ﾋｭｰｽﾞのﾗｯﾁ
ﾋｭｰｽﾞ値はﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作へ移行する時にﾗｯﾁされ、ﾋｭｰｽﾞ値の変更はﾃﾞﾊﾞｲｽがﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を去るまで無効です。これは一旦ﾌﾟﾛｸﾞﾗﾑ(0)されると直ぐに効果があるEESAVEﾋｭｰｽﾞには適用されません。ﾋｭｰｽﾞは通常動作での電源投入でもﾗｯﾁされます。

32.3. 識票ﾊﾞｲﾄ
ﾃﾞﾊﾞｲｽは3つの識票符号ﾊﾞｲﾄを持ちます。この符号は直列と並列の両ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動
作で、またﾃﾞﾊﾞｲｽが施錠されていても読めます。この3ﾊﾞｲﾄは分離された空間に存在します。本ﾃﾞﾊﾞｲｽ用の識票ﾊﾞｲﾄは右表で与えられます。

表32-8. ﾃﾞﾊﾞｲｽの識別番号(ID)
識票ﾊﾞｲﾄ ｱﾄﾞﾚｽ
部品番号$0000 $0001 $0002
ATmega328PB
$1E
$95
$16

32.4. 校正ﾊﾞｲﾄ
本ﾃﾞﾊﾞｲｽは内蔵RC発振器用に1ﾊﾞｲﾄの校正値を持ちます。このﾊﾞｲﾄは識票ｱﾄﾞﾚｽ空間でｱﾄﾞﾚｽ$0000の上位ﾊﾞｲﾄにあります。ﾘｾｯﾄ
中、校正付き内蔵RC発振器の正しい周波数を保証するために、このﾊﾞｲﾄが発振校正(OSCCAL)ﾚｼﾞｽﾀへ自動的に書かれます。

32.5. 通番
この製品は現場に於いて特定のﾃﾞﾊﾞｲｽを識別するための固有IDを提供する通番を持ちます。これは識票ｱﾄﾞﾚｽ空間でｱｸｾｽすることができる多数のﾊﾞｲﾄから成ります。
識票列は工場で書かれた次のﾃﾞｰﾀを含みます。
・ 各ﾃﾞﾊﾞｲｽ形式用のID・ 各ﾃﾞﾊﾞｲｽ用の通番
・ 工場校正された周辺機能用校正ﾊﾞｲﾄ

32.5.1. 識票列要約 - SIGROW
ﾊﾞｲﾄ変位
$00
$01
$02
$03
$04
$05～$0D
$0E
$0F
$10
$11
$12
$13
$14
$15
$16
$17

名前
SIGROW_DEVICEID0
SIGROW_RCOC
SIGROW_DEVICEID1(予約)
SIGROW_DEVICEID2(予約)
SIGROW_SERNUM0
SIGROW_SERNUM1
SIGROW_SERNUM2
SIGROW_SERNUM3
SIGROW_SERNUM4
SIGROW_SERNUM5
SIGROW_SERNUM6
SIGROW_SERNUM7
SIGROW_SERNUM8SIGROW_SERNUM9

ﾋﾞｯﾄ7

ﾋﾞｯﾄ6

ﾋﾞｯﾄ5

ﾋﾞｯﾄ4
ﾋﾞｯﾄ3
DEVICEID07～0
RCOC7～0
DEVICEID17～0

ﾋﾞｯﾄ2

ﾋﾞｯﾄ1

ﾋﾞｯﾄ0

DEVICEID27～0
SERNUM07～0
SERNUM17～0
SERNUM27～0
SERNUM37～0
SERNUM47～0
SERNUM57～0
SERNUM67～0
SERNUM77～0
SERNUM87～0
SERNUM97～0

32.5.1.1. SIGROW_DEVICEIDn - ﾃﾞﾊﾞｲｽIDﾊﾞｲﾄn (Device ID n)
名称 : SIGROW_DEVICEIDn (n=0～2)
変位 : $00 : $02 : $04
ﾘｾｯﾄ : [ﾃﾞﾊﾞｲｽ識別値]
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R

R

R

DEVICEIDn7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R

R

R

R
R
ﾃﾞﾊﾞｲｽ識別(ID)値● ﾋﾞｯﾄ7～0 - DEVICEIDn7～0 : ﾃﾞﾊﾞｲｽIDﾊﾞｲﾄn値 (Byte n of the Device ID)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 203頁

ATmega328PB
32.5.1.2. SIGROW_RCOC - RC発振器校正ﾊﾞｲﾄ (RC Oscillator Calibration Byte)
この識票列位置は始動中に発振校正(OSCCAL)ﾚｼﾞｽﾀに格納されます。
名称 : SIGROW_RCOC
変位 : $01
ﾘｾｯﾄ : [RC発振器校正値]
特質 : ﾋﾞｯﾄ

7

6

5

4

3

2

1

0

R
R
RC発振器校正値

R

R

R

2

1

0

R

R

R

RCOC7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R

R

R

● ﾋﾞｯﾄ7～0 - RCOC7～0 : RC発振器校正ﾊﾞｲﾄ値 (RC Oscillator Calibration Byte)

32.5.1.3. SIGROW_SERNUMn - 通番ﾊﾞｲﾄn (Serial Number Byte n)
名称 : SIGROW_SERNUMn (n=0～9)
変位 : $0E : $0F : $10 : $11 : $12 : $13 : $14 : $15 : $16 : $17
ﾘｾｯﾄ : [ﾃﾞﾊﾞｲｽ通番値]
特質 : ﾋﾞｯﾄ

7

6

5

4

3

SERNUMn7～0
ｱｸｾｽ種別
ﾘｾｯﾄ値

R

R

R

R
R
ﾃﾞﾊﾞｲｽ通番値● ﾋﾞｯﾄ7～0 - SERNUMn7～0 : 通番ﾊﾞｲﾄn値 (Serial Number n)

各ﾃﾞﾊﾞｲｽは一意のIDで表される個別の通番を持ちます。これは現場で特定のﾃﾞﾊﾞｲｽを識別するのに使うことができます。通番は10ﾊﾞｲﾄ(SIGROW.SERNUM9～0)から成ります。

32.6. ﾍﾟｰｼﾞ容量

表32-9. ﾌﾗｯｼｭ ﾒﾓﾘのﾍﾟｰｼﾞ数とﾍﾟｰｼﾞの語数
ﾃﾞﾊﾞｲｽ
全容量
ﾍﾟｰｼﾞ容量
ATmega328PB
64ﾜｰﾄﾞ
16Kﾜｰﾄﾞ(32Kﾊﾞｲﾄ)

PCWORD
PC5～0ﾍﾟｰｼﾞ数256

PCPAGE
PC13～6PCMSB
13

表32-10. EEPROMﾒﾓﾘのﾍﾟｰｼﾞ数とﾍﾟｰｼﾞの語数
ﾃﾞﾊﾞｲｽ
全容量
ﾍﾟｰｼﾞ容量
1KﾊﾞｲﾄATmega328PB
4ﾊﾞｲﾄ

PCWORD
EEA1～0ﾍﾟｰｼﾞ数256

PCPAGE
EEA9～2EEAMSB
9© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 204頁

ATmega328PB
32.7. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
この項は本ﾃﾞﾊﾞｲｽに於けるﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ、ﾃﾞｰﾀ用EEPROM、ﾒﾓﾘの施錠ﾋﾞｯﾄ、ﾋｭｰｽﾞ ﾋﾞｯﾄの並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合の方法を記述します。特記事項を除いて、ﾊﾟﾙｽ幅は最低250nsと仮定されます。

32.7.1. 信号名
本項で本ﾃﾞﾊﾞｲｽのいくつかのﾋﾟﾝは並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中の機能を表す信号名で参照されます。下の「並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ構成図」図と「信号名とﾋﾟﾝ名の関係」表を参照してください。後続の表で示されないﾋﾟﾝはﾋﾟﾝ名によって参照されます。
XA0とXA1ﾋﾟﾝはXTAL1ﾋﾟﾝが正ﾊﾟﾙｽを与えられる時に実行される動作を決めます。このﾋﾞｯﾄ符号化は下の「XA0とXA1の符号化(機能)」表で示されます。
WRまたはOEﾊﾟﾙｽ送出時、設定された指令が決める動作が実行されます。各種指令は下の「指令ﾊﾞｲﾄのﾋﾞｯﾄ符号化」表で示されます。

図32-1. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ構成図+5V+12V
RDY/BSY
OE
WR
BS1
XA0
XA1
PAGEL
BS2

RESET
VCC
AVCC
PD1
PD2
PD3 PC1,0:PB5～0
PD4
PD5
PD6
PD7
PC2
XTAL1
GND

DATA

注: VCC-0.3V<AVCC<VCC+0.3Vですが、AVCCは常に
4.5～5.5Vであるべきです。
表32-11. 信号名とﾋﾟﾝ名の関係
信号名
ﾋﾟﾝ名
PD1
RDY/BSY
OE
PD2
WR
PD3
BS1
PD4
XA0
PD5
PD6
XA1
PAGEL
PD7
BS2
PC2
DATA
PC1,0:PB5～0

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

表32-12. ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作移行時のﾋﾟﾝ値
ﾋﾟﾝ名
値
ｼﾝﾎﾞﾙ
PAGEL
Prog_enable[3]0
XA1
Prog_enable[2]0
XA0
Prog_enable[1]0Prog_enable[0]
BS1
0

機能
0(Low) : 多忙(ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中)
1(High) : 準備可(指令受付可)
出力許可(負論理)
書き込みﾊﾟﾙｽ(負論理)
上位/下位ﾊﾞｲﾄ選択1 (0:下位, 1:上位)(一般用)
XTAL動作ﾋﾞｯﾄ0
XTAL動作ﾋﾞｯﾄ1
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘとEEPROMﾃﾞｰﾀをﾍﾟｰｼﾞ一時緩衝部に設定
上位/下位ﾊﾞｲﾄ選択2 (0:下位, 1:上位)(ﾋｭｰｽﾞ ﾋﾞｯﾄ用)
双方向ﾃﾞｰﾀ ﾊﾞｽ (OE=Low時出力)
表32-13. XA0とXA1の符号化(機能)XA1
XA0
XTAL1ﾊﾟﾙｽ時の動作
00
ﾌﾗｯｼｭまたはEEPROMのｱﾄﾞﾚｽ設定 (上位/下位はBS1で指定)
01
ﾃﾞｰﾀ設定 (ﾌﾗｯｼｭの上位/下位はBS1で指定)
1
0
指令設定
1
1
ｱｲﾄﾞﾙ (動作なし)

表32-14. 指令ﾊﾞｲﾄのﾋﾞｯﾄ符号化
指令ﾊﾞｲﾄ
指令の機能$80 (1000 0000) ﾁｯﾌﾟ消去$40 (0100 0000) ﾋｭｰｽﾞ ﾋﾞｯﾄ書き込み$20 (0010 0000) 施錠ﾋﾞｯﾄ書き込み$10 (0001 0000) ﾌﾗｯｼｭ ﾒﾓﾘ書き込み$11 (0001 0001) EEPROM書き込み$08 (0000 1000) 識票ﾊﾞｲﾄ、校正ﾊﾞｲﾄ読み出し$04 (0000 0100) ﾋｭｰｽﾞ ﾋﾞｯﾄ、施錠ﾋﾞｯﾄ読み出し$02 (0000 0010) ﾌﾗｯｼｭ ﾒﾓﾘ読み出し$03 (0000 0011) EEPROM読み出し© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 205頁

ATmega328PB
32.8. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順
32.8.1. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作への移行
次に示す方法がﾃﾞﾊﾞｲｽを(高電圧)並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作にします。
① VCCを0V、RESETﾋﾟﾝを0V、前の「ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作移行時のﾋﾟﾝ値」表で一覧されるProg_enableﾋﾟﾝを全てLow(0)に設定します。
② VCCとGND間に4.5～5.5Vを印加します。それから20µs以内にVCCが最低1.8Vに達することを保証してください。
③ 20～60µs待ち、RESETに11.5～12.5Vを印加します。
④ Prog_enable識別がﾗｯﾁされてしまうのを確実にするため、高電圧が印加されてしまった後、最低10µs、Prog_enableﾋﾟﾝを無変化に保ちます。
⑤ 如何なる並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ指令を与えるのにも先立って少なくとも300µs間待ちます。
⑥ ﾃﾞﾊﾞｲｽの電源を落とすか、RESETﾋﾟﾝを0Vに持ってくることによってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を抜けます。
VCCの上昇時間が上で示した必要条件を完全に満たせない場合、ﾃﾞﾊﾞｲｽを(高電圧)並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作にするのに次の代替手順を使うことができます。
① VCCを0V、RESETﾋﾟﾝを0V、前の「ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作移行時のﾋﾟﾝ値」表で一覧されるProg_enableﾋﾟﾝを全てLow(0)に設定します。
② VCCとGND間に4.5～5.5Vを印加します。
③ VCCを監視し、0.9～1.1Vに達したら直ぐ、REESTに11.5～12.5Vを印加します。
④ Prog_enable識別がﾗｯﾁされてしまうのを確実にするため、高電圧が印加されてしまった後、最低10µs、Prog_enableﾋﾟﾝを無変化に保ちます。
⑤ 如何なる並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ指令を与えるのにも先立ってVCCが4.5～5.5Vに達するまで待ちます。
⑥ ﾃﾞﾊﾞｲｽの電源を落とすか、RESETﾋﾟﾝを0Vに持ってくることによってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作を抜けます。

32.8.2. 効率的なﾌﾟﾛｸﾞﾗﾐﾝｸﾞへの考慮
設定した指令とｱﾄﾞﾚｽはﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中、維持されます。効率的なﾌﾟﾛｸﾞﾗﾐﾝｸﾞを行うために次を考慮すべきです。
・ 複数のﾒﾓﾘ領域を読み書きする時に指令設定は一度だけ必要です。
・ ﾁｯﾌﾟ消去後のﾌﾗｯｼｭ ﾒﾓﾘと(EESAVEﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されている場合を除き)EEPROM全体の内容は$FFなので、値が$FFのﾃﾞｰﾀ書き込みを飛ばします。
・ ｱﾄﾞﾚｽ上位ﾊﾞｲﾄはﾌﾗｯｼｭ ﾒﾓﾘで新規256語(ﾜｰﾄﾞ)枠、EEPROMで新規256ﾊﾞｲﾄ枠の読み書き前に一度だけ必要です。この考慮
は識票ﾊﾞｲﾄ読み出しにも適用されます。

32.8.3. ﾁｯﾌﾟ消去
ﾁｯﾌﾟ消去はﾌﾗｯｼｭ ﾒﾓﾘ、SRAM、EEPROM、施錠ﾋﾞｯﾄを消去します。施錠ﾋﾞｯﾄはﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘが完全に消去されてしまうまでﾘｾｯﾄ(消去)されません。ﾋｭｰｽﾞ ﾋﾞｯﾄは変更されません。ﾁｯﾌﾟ消去はﾌﾗｯｼｭ ﾒﾓﾘやEEPROMが再書き込みされる前に実行されなければなりません。
注: EESAVEﾋｭｰｽﾞがﾌﾟﾛｸﾞﾗﾑ(0)されていると、EEPROMはﾁｯﾌﾟ消去中、保護されます。
「ﾁｯﾌﾟ消去」指令設定① XA1をHigh(1)、XA0をLow(0)に設定します。これは指令設定を許可します。
② BS1をLow(0)に設定します。
③ DATAを$80(1000 0000)に設定します。これはﾁｯﾌﾟ消去指令です。
④ XTAL1に正ﾊﾟﾙｽを与えます。これはﾁｯﾌﾟ消去指令を設定します。
⑤ WRに負ﾊﾟﾙｽを与えます。これはﾁｯﾌﾟ消去を開始します。RDY/BSYがLow(0)になります。
⑥ 次の指令を設定する前にRDY/BSYがHigh(1)になるまで待ちます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 206頁

ATmega328PB
32.8.4. ﾌﾗｯｼｭ ﾒﾓﾘ書き込み (次頁の図32-3.ﾀｲﾐﾝｸﾞを参照)
ﾌﾗｯｼｭ ﾒﾓﾘは表32-9.のようにﾍﾟｰｼﾞで構成されます。ﾌﾗｯｼｭ ﾒﾓﾘへ書く時にﾌﾟﾛｸﾞﾗﾑ ﾃﾞｰﾀはﾍﾟｰｼﾞ緩衝部にﾗｯﾁされます。これは同時に書かれることをﾌﾟﾛｸﾞﾗﾑ ﾃﾞｰﾀの1ﾍﾟｰｼﾞに許します。次の手順は完全なﾌﾗｯｼｭ ﾒﾓﾘの書き込み方法を記述します。
Ａ. 「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」指令設定① XA1をHigh(1)、XA0をLow(0)に設定します。これは指令設定を許可します。
② BS1をLow(0)に設定します。
③ DATAを$10(0001 0000)に設定します。これはﾌﾗｯｼｭ ﾒﾓﾘ書き込み指令です。
④ XTAL1に正ﾊﾟﾙｽを与えます。これはﾌﾗｯｼｭ ﾒﾓﾘ書き込み指令を設定します。
Ｂ. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄ設定① XA1をLow(0)、XA0をLow(0)に設定します。これはｱﾄﾞﾚｽ設定を許可します。
② BS1をLow(0)に設定します。これは下位ｱﾄﾞﾚｽ(ﾊﾞｲﾄ)を選択します。
③ DATAにｱﾄﾞﾚｽ下位ﾊﾞｲﾄ($00～$FF)を設定します。
④ XTAL1に正ﾊﾟﾙｽを与えます。これはｱﾄﾞﾚｽ下位ﾊﾞｲﾄを設定します。
Ｃ. ﾃﾞｰﾀ下位ﾊﾞｲﾄ設定① XA1をLow(0)、XA0をHigh(1)に設定します。これはﾃﾞｰﾀ設定を許可します。
② DATAにﾃﾞｰﾀ下位ﾊﾞｲﾄ($00～$FF)を設定します。
③ XTAL1に正ﾊﾟﾙｽを与えます。これはﾃﾞｰﾀ下位ﾊﾞｲﾄを設定します。
Ｄ. ﾃﾞｰﾀ上位ﾊﾞｲﾄ設定① BS1をHigh(1)に設定します。これは上位ﾊﾞｲﾄを選択します。
② XA1をLow(0)、XA0をHigh(1)に設定します。これはﾃﾞｰﾀ設定を許可します。
③ DATAにﾃﾞｰﾀ上位ﾊﾞｲﾄ($00～$FF)を設定します。
④ XTAL1に正ﾊﾟﾙｽを与えます。これはﾃﾞｰﾀ上位ﾊﾞｲﾄを設定します。
Ｅ. 語(ﾜｰﾄﾞ)ﾃﾞｰﾀをﾍﾟｰｼﾞ一時緩衝部に設定① BS1をHigh(1)にします。これは上位ﾊﾞｲﾄを選択します。
② PAGELに正ﾊﾟﾙｽを与えます。これは語ﾃﾞｰﾀをﾍﾟｰｼﾞ一時緩衝部にﾗｯﾁ(設定)します。
Ｆ. 緩衝部全体が満たされるか、または(必要な)全てのﾃﾞｰﾀが緩衝部内に設定されるまで、Ｂ～Ｅを繰り返し
ｱﾄﾞﾚｽ内の下位ﾋﾞｯﾄがﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)位置を指示する一方、上位ﾋﾞｯﾄがﾌﾗｯｼｭ ﾒﾓﾘ内のﾍﾟｰｼﾞをｱﾄﾞﾚｽ指定します。これは以下の図で図解されます。ﾍﾟｰｼﾞ内の語ｱﾄﾞﾚｽに8ﾋﾞｯﾄ未満が必要とされる場合(ﾍﾟｰｼﾞ容量<256)、ｱﾄﾞﾚｽ下位ﾊﾞｲﾄの最上位(側)ﾋﾞｯﾄがﾍﾟｰ
ｼﾞ書き込み実行時のﾍﾟｰｼﾞ ｱﾄﾞﾚｽに使われることに注意してください。
Ｇ. ｱﾄﾞﾚｽ上位ﾊﾞｲﾄ設定① XA1をLow(0)、XA0をLow(0)に設定します。これはｱﾄﾞﾚｽ設定を許可します。
② BS1をHigh(1)に設定します。これは上位ｱﾄﾞﾚｽ(ﾊﾞｲﾄ)を選択します。
③ DATAにｱﾄﾞﾚｽ上位ﾊﾞｲﾄ($00～$3F)を設定します。
④ XTAL1に正ﾊﾟﾙｽを与えます。これはｱﾄﾞﾚｽ上位ﾊﾞｲﾄを設定します。
Ｈ. ﾍﾟｰｼﾞ書き込み① BS1をLow(0)に設定します。
② WRに負ﾊﾟﾙｽを与えます。これはﾃﾞｰﾀのﾍﾟｰｼﾞ全体の書き込みを開始します。RDY/BSYがLow(0)になります。
③ RDY/BSYがHigh(1)になるまで待ちます。
Ｉ. ﾌﾗｯｼｭ ﾒﾓﾘ全部が書かれるか、または(必要な)全ﾃﾞｰﾀが書かれてしまうまで、Ｂ～Ｈを繰り返し
Ｊ. ﾍﾟｰｼﾞ書き込み終了① XA1をHigh(1)、XA0をLow(0)に設定します。これは指令設定を許可します。
② DATAを$00(0000 0000)にします。これは無操作指令です。
③ XTAL1に正ﾊﾟﾙｽを与えます。これは無操作指令を設定し、内部書き込み信号がﾘｾｯﾄされます。

～

図32-2. ﾍﾟｰｼﾞで構成されたﾌﾗｯｼｭ ﾒﾓﾘのｱﾄﾞﾚｽ指定
PCMSB
PAGEMSB
ﾌﾟﾛｸﾞﾗﾑ ｶｳﾝﾀ
PCPAGEPCWORDﾌﾗｯｼｭ ﾒﾓﾘ内のﾍﾟｰｼﾞ ｱﾄﾞﾚｽﾍﾟｰｼﾞ内の語(ﾜｰﾄﾞ)ｱﾄﾞﾚｽ
ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘ
ﾍﾟｰｼﾞ
PCWORD (PAGEMSB～0)
$00
ﾍﾟｰｼﾞ
命令語(ﾜｰﾄﾞ)$01$02

PAGEEND
注: PCPAGEとPCWORDは表32-9.で一覧されます。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 207頁

ATmega328PB
図32-3. ﾌﾗｯｼｭ ﾒﾓﾘ書き込みﾀｲﾐﾝｸﾞ

DATA

Ａ

Ｂ

Ｃ

$10

ｱﾄﾞﾚｽ下位

ﾃﾞｰﾀ下位Ｆ

Ｄ
ﾃﾞｰﾀ上位Ｅ
xx

Ｇ
ｱﾄﾞﾚｽ上位

XA1
XA0
BS1
XTAL1
WR
RDY/BSY
RESET
OE
BS2
PAGEL

Ｈ
xx

H
L
H
L
H
L
H
L
H
L
H
L
H
L
12V
L
H
L
H
L
H
L

注: xx値は無関係です。A～Hは前記ﾌﾟﾛｸﾞﾗﾐﾝｸﾞを参照してください。

32.8.5. EEPROM書き込み
EEPROMは表32-10.のようにﾍﾟｰｼﾞで構成されます。EEPROMを書く時にﾃﾞｰﾀはﾍﾟｰｼﾞ緩衝部にﾗｯﾁされます。これは同時に書かれることをﾃﾞｰﾀの1ﾍﾟｰｼﾞに許します。ﾃﾞｰﾀ用EEPROMﾒﾓﾘの書き込み方法は次のとおりです。(指令、ｱﾄﾞﾚｽ、ﾃﾞｰﾀ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照。図32-4.ﾀｲﾐﾝｸﾞ参照。)
１. EEPROM書き込み指令$11(0001 0001)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＡを参照)
２. ｱﾄﾞﾚｽ上位ﾊﾞｲﾄ($00～$03)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＧを参照)
３. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄ($00～$FF)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＢを参照)
４. ﾃﾞｰﾀ ﾊﾞｲﾄ($00～$FF)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＣを参照)
５. ﾃﾞｰﾀをﾗｯﾁします(PAGELに正ﾊﾟﾙｽを与えます)。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＥを参照)
Ｋ. 緩衝部全体が満たされるまで３～５を繰り返します。
Ｌ. EEPROMﾍﾟｰｼﾞ書き込み① BS1をLow(0)に設定します。
② WRに負ﾊﾟﾙｽを与えます。これはEEPROMﾍﾟｰｼﾞ書き込みを開始します。RDY/BSYがLow(0)になります。
③ 次のﾍﾟｰｼﾞを書く前に、RDY/BSYがHigh(1)になるまで待ちます。
図32-4. EEPROM書き込みﾀｲﾐﾝｸﾞ

DATA

Ａ

Ｇ

Ｂ

Ｋ
Ｃ

$11

ｱﾄﾞﾚｽ上位

ｱﾄﾞﾚｽ下位

ﾃﾞｰﾀ

Ｅ
xx

XA1
XA0
BS1
XTAL1
WR
RDY/BSY
RESET
OE
BS2
PAGEL

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

Ｌ
xx

H
L
H
L
H
L
H
L
H
L
H
L
H
L
12V
L
H
L
H
L
H
L

DS40001906C - 208頁

ATmega328PB
32.8.6. ﾌﾗｯｼｭ ﾒﾓﾘ読み出し
ﾌﾗｯｼｭ ﾒﾓﾘの読み出し方法は次のとおりです。(指令とｱﾄﾞﾚｽ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. ﾌﾗｯｼｭ ﾒﾓﾘ読み出し指令$02(0000 0010)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＡを参照)
２. ｱﾄﾞﾚｽ上位ﾊﾞｲﾄ($00～$3F)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＧを参照)
３. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄ($00～$FF)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＢを参照)
４. BS1をLow(0)、OEをLow(0)に設定します。ﾌﾗｯｼｭ ﾒﾓﾘ語(ﾜｰﾄﾞ)の下位ﾊﾞｲﾄが直ぐにDATAで読めます。
５. BS1をHigh(1)に設定します。ﾌﾗｯｼｭ ﾒﾓﾘ語(ﾜｰﾄﾞ)の上位ﾊﾞｲﾄが直ぐにDATAで読めます。
６. OEをHigh(1)に設定します。DATAはHi-Zになります。

32.8.7. EEPROM読み出し
ﾃﾞｰﾀ用EEPROMの読み出し方法は次のとおりです。(指令とｱﾄﾞﾚｽ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. EEPROM読み出し指令$03(0000 0011)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＡを参照)
２. ｱﾄﾞﾚｽ上位ﾊﾞｲﾄ($00～$03)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＧを参照)
３. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄ($00～$FF)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＢを参照)
４. BS1をLow(0)、OEをLow(0)に設定します。EEPROMのﾊﾞｲﾄ ﾃﾞｰﾀが直ぐにDATAで読めます。
５. OEをHigh(1)に設定します。DATAはHi-Zになります。

32.8.8. ﾋｭｰｽﾞ ﾋﾞｯﾄ書き込み (訳注:原書での拡張/上位/下位ﾋｭｰｽﾞ項を1つに纏めました。)
各ﾋｭｰｽﾞ ﾊﾞｲﾄの書き込み方法は次のとおりです。(指令とﾃﾞｰﾀ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. ﾋｭｰｽﾞ ﾋﾞｯﾄ書き込み指令$40(0100 0000)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＡを参照)
２. ﾃﾞｰﾀ下位ﾊﾞｲﾄを設定します。0=ﾌﾟﾛｸﾞﾗﾑ,1=非ﾌﾟﾛｸﾞﾗﾑ(消去)です。 (「ﾌﾗｯｼｭ ﾒﾓﾘ書き込み」のＣを参照)
３. BS1とBS2を右表の目的ﾊﾞｲﾄに対応する設定にします。
表A. ﾋｭｰｽﾞ ﾊﾞｲﾄ対応BS1,BS2設定
４. WRに負ﾊﾟﾙｽを与え、RDY/BSYがHighになるまで待ちます。
BS1
ﾋｭｰｽﾞ ﾊﾞｲﾄBS2
５. ３.でHighに設定したBS1、BS2をLow(0)に戻します。これはﾃﾞｰﾀ下位ﾊﾞｲﾄを選択します。
拡張ﾊﾞｲﾄLow(0) High(1)上位ﾊﾞｲﾄHigh(1) Low(0)下位ﾊﾞｲﾄLow(0) Low(0)図32-5. ﾋｭｰｽﾞ書き込みﾀｲﾐﾝｸﾞ
DATA

Ａ

Ｃ

$40

ﾃﾞｰﾀ

下位ﾋｭｰｽﾞ書き
xx

Ａ

Ｃ

$40

ﾃﾞｰﾀ

上位ﾋｭｰｽﾞ書き

XA1
XA0
BS1
BS2
XTAL1
WR
RDY/BSY
RESET
OE
PAGEL

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

xx

Ａ

Ｃ

$40

ﾃﾞｰﾀ

拡張ﾋｭｰｽﾞ書き
xx

H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
12V
L
H
L
H
L

DS40001906C - 209頁

ATmega328PB
32.8.9. 施錠ﾋﾞｯﾄ書き込み
施錠ﾋﾞｯﾄの書き込み方法は次のとおりです。(指令とﾃﾞｰﾀ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. 施錠ﾋﾞｯﾄ書き込み指令$20(0010 0000)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＡを参照)
２. ﾃﾞｰﾀ下位ﾊﾞｲﾄ(としてﾃﾞｰﾀ)を設定します。0=ﾌﾟﾛｸﾞﾗﾑ,1=無変化です。LB保護種別3が設定(LB1とLB2がﾌﾟﾛｸﾞﾗﾑ(0))されると、どの外部的なﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作種別によってもﾌﾞｰﾄ施錠ﾋﾞｯﾄはﾌﾟﾛｸﾞﾗﾐﾝｸﾞできません。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＣを参照)
３. WRに負ﾊﾟﾙｽを与え、RDY/BSYがHighになるまで待ちます。
施錠ﾋﾞｯﾄはﾁｯﾌﾟ消去の実行によってのみ解除(1)できます。

32.8.10. ﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出し
ﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出し方法は次のとおりです。(指令設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. ﾋｭｰｽﾞ ﾋﾞｯﾄと施錠ﾋﾞｯﾄの読み出し指令$04(0000 0100)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＡを参照)
２. BS1とBS2をLow(0)、OEをLow(0)に設定します。ﾋｭｰｽﾞ下位ﾋﾞｯﾄの状態が直ぐにDATAで読めます。(0=ﾌﾟﾛｸﾞﾗﾑ)３. BS1とBS2をHigh(1)、OEをLow(0)に設定します。ﾋｭｰｽﾞ上位ﾋﾞｯﾄの状態が直ぐにDATAで読めます。(0=ﾌﾟﾛｸﾞﾗﾑ)
４. BS1をLow(0)、BS2をHigh(1)、OEをLow(0)に設定します。拡張ﾋｭｰｽﾞ ﾋﾞｯﾄの状態が直ぐにDATAで読めます。(0=ﾌﾟﾛｸﾞﾗﾑ)
５. BS1をhigh(1)、BS2をLow(0)、OEをLow(0)に設定します。施錠ﾋﾞｯﾄの状態が直ぐにDATAで読めます。(0=ﾌﾟﾛｸﾞﾗﾑ)
６. OEをHigh(1)に設定します。DATAはHi-Zになります。
図32-6. ﾋｭｰｽﾞ,施錠ﾋﾞｯﾄ読み出し中のBS1, BS2との関係
ﾋｭｰｽﾞ下位ﾊﾞｲﾄ0

拡張ﾋｭｰｽﾞ ﾊﾞｲﾄ

1

0

施錠ﾋﾞｯﾄ01ﾋｭｰｽﾞ上位ﾊﾞｲﾄ

1

DATA

BS2

BS1

32.8.11. 識票ﾊﾞｲﾄ読み出し
識票ﾊﾞｲﾄの読み出し方法は次のとおりです。(指令とｱﾄﾞﾚｽ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. 識票ﾊﾞｲﾄ読み出し指令$08(0000 1000)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＡを参照)
２. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄ($00～$02)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＢを参照)
３. BS1をLow(0)、OEをLow(0)に設定します。選択した識票ﾊﾞｲﾄが直ぐにDATAで読めます。
４. OEをHigh(1)に設定します。DATAはHi-Zになります。

32.8.12. 校正ﾊﾞｲﾄ読み出し
校正ﾊﾞｲﾄの読み出し方法は次のとおりです。(指令とｱﾄﾞﾚｽ設定の詳細については「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」を参照)
１. 校正ﾊﾞｲﾄ読み出し指令$08(0000 1000)を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＡを参照)
２. ｱﾄﾞﾚｽ下位ﾊﾞｲﾄに$00を設定します。 (「ﾌﾗｯｼｭ ﾒﾓﾘの書き込み」のＢを参照)
３. BS1をHigh(1)、OEをLow(0)に設定します。校正ﾊﾞｲﾄが直ぐにDATAで読めます。
４. OEをHigh(1)に設定します。DATAはHi-Zになります。

32.8.13. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性
並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性については「並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 210頁

ATmega328PB
32.9. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
ﾌﾗｯｼｭ ﾒﾓﾘとEEPROMの両方はRESETがGNDに引かれている間に直列SPIﾊﾞｽを使ってﾌﾟﾛｸﾞﾗﾐﾝｸﾞできます。この直列ｲﾝﾀｰﾌｪｰｽ
はSCK入力、MOSI入力、MISO出力から成ります。RESETがLowに設定された後、書き込み/消去操作が実行され得るのに先立ってﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令が初めに実行されることを必要とします。

32.9.1. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾋﾟﾝ配置
表32-15. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用ﾋﾟﾝ配置
入出力
信号名
ﾋﾟﾝ名
PB3
入力
MOSI
出力
MISO
PB4
SCK
PB5
入力

図32-7. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ構成図
機能
直列ﾃﾞｰﾀ入力
直列ﾃﾞｰﾀ出力
直列ｸﾛｯｸ

1.8～5.5V(GND)

注: 上表でSPIﾌﾟﾛｸﾞﾗﾐﾝｸﾞ用のﾋﾟﾝ配置が一覧されます。全てのﾃﾞﾊﾞｲｽが内部SPIｲﾝﾀｰﾌｪｰｽに対する専用SPIﾋﾟﾝを使うとは限りません。
EEPROMをﾌﾟﾛｸﾞﾗﾐﾝｸﾞする時に自動消去周期が自動書き込み動作内に組み入れられ(直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞのみ)、ﾁｯﾌﾟ消去命令を初めに実行する必要がありません。ﾁｯﾌﾟ消去操作はﾌﾟﾛｸﾞﾗﾑ(ﾌﾗｯｼｭ ﾒﾓﾘ)とEEPROM両方の全てのﾒﾓﾘ位置の内容を$FFにします。
CKSELﾋｭｰｽﾞによる有効なｸﾛｯｸが与えられなければなりません。直列ｸﾛｯｸ(SCK)入力のLowとHighの区間の最小値は次のように定義されます。

fCK＜12MHz : Low区間＞2CPUｸﾛｯｸ周期
fCK≧12MHz : Low区間＞3CPUｸﾛｯｸ周期

ｸﾛｯｸ元

RESET

(注1)

XTAL1
GND

VCC
AVCC
PB5
PB4
PB3

1.8～5.5V
(注2)
SCK
MISO
MOSI

注1: ﾃﾞﾊﾞｲｽが内蔵発振器で動作する場合、XTAL1
ﾋﾟﾝにｸﾛｯｸ元を接続する必要はありません。
注2: VCC-0.3V<AVCC<VCC+0.3Vですが、AVCCは常にﾃﾞﾊﾞｲｽ指定電圧範囲(VCC)にすべきです。

fCK＜12MHz : High区間＞2CPUｸﾛｯｸ周期
fCK≧12MHz : High区間＞3CPUｸﾛｯｸ周期

32.10. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ手順
本ﾃﾞﾊﾞｲｽに直列ﾃﾞｰﾀを書く時にﾃﾞｰﾀはSCKの上昇端で行われ、本ﾃﾞﾊﾞｲｽから読む時にﾃﾞｰﾀはSCKの下降端で行われます。ﾀｲﾐﾝ
ｸﾞの詳細については「直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾊﾞｲﾄ通信波形」図を参照してください。
直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ動作での本ﾃﾞﾊﾞｲｽのﾌﾟﾛｸﾞﾗﾐﾝｸﾞと照合は次手順が推奨されます(表32-17.の直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式をご覧ください)。
1. 電源投入手順:
RESETとSCKがLow(0)に設定されている間にVCCとGND間へ電源を印加します。いくつかのｼｽﾃﾑで電源投入中、SCKがLowに保持されるのを書き込み器が保証できません。この場合、SCKがLow(0)に設定されてしまった後、RESETは最低2CPUｸﾛｯｸ周期
幅の正ﾊﾟﾙｽを与えられなければなりません。
2. 最低20ms待ち、MOSIﾋﾟﾝにﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令を送ることによって直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞを許可してください。
3. 通信が同期を外していると、直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令は動作しません。同期していると、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令の第3ﾊﾞｲﾄ送出時に第2ﾊﾞｲﾄ($53)が戻ります。この戻りが正しいかどうかによらず、命令の4ﾊﾞｲﾄ全てが送信されなければなりません。$53が戻らない場
合、RESETに正ﾊﾟﾙｽを与え、新規ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可命令を行ってください。
4. ﾌﾗｯｼｭ ﾒﾓﾘは1ﾍﾟｰｼﾞ単位で書かれます。ﾍﾟｰｼﾞ容量は表32-9.で得られます。このﾒﾓﾘ ﾍﾟｰｼﾞはﾍﾟｰｼﾞ設定命令と共にｱﾄﾞﾚｽの下
位6+1ﾋﾞｯﾄとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄづつ設定されます。ﾍﾟｰｼﾞが正しく設定されるのを保証するため、与えられたｱﾄﾞﾚ
ｽにﾃﾞｰﾀ上位ﾊﾞｲﾄが適用される前にﾃﾞｰﾀ下位ﾊﾞｲﾄが設定されなければなりません。ﾌﾟﾛｸﾞﾗﾑ ﾒﾓﾘのﾍﾟｰｼﾞはｱﾄﾞﾚｽの上位8ﾋﾞｯﾄを含むﾍﾟｰｼﾞ書き込み命令の設定によって(ﾌﾗｯｼｭ ﾒﾓﾘに)格納されます。ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場合、使用者は次のﾍﾟｰｼﾞを行う前に最低tWD_FLASH待たなければなりません。ﾌﾗｯｼｭ書き込み操作完了前の(ﾎﾟｰﾘﾝｸﾞ以外の)直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ｲﾝ
ﾀｰﾌｪｰｽでのｱｸｾｽは不正な書き込み結果になり得ます。
5. EEPROMはﾍﾟｰｼﾞ単位かﾊﾞｲﾄ単位のどちらかでﾌﾟﾛｸﾞﾗﾐﾝｸﾞできます。
ﾊﾞｲﾄ単位: EEPROMは適切なEEPROM書き込み命令と共にｱﾄﾞﾚｽとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄ単位で書かれます。EEP
ROMのﾒﾓﾘ位置は新規ﾃﾞｰﾀが書かれるのに先立って始めで自動的に消去されます。ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場合、次のﾊﾞｲﾄを行う前に最低tWD_EEPROM待たなければなりません。
ﾍﾟｰｼﾞ単位: EEPROMの1ﾍﾟｰｼﾞはEEPROMﾍﾟｰｼﾞ設定命令と共にｱﾄﾞﾚｽ下位2ﾋﾞｯﾄとﾃﾞｰﾀを供給することによって1ﾊﾞｲﾄづつ設定されます。EEPROMﾍﾟｰｼﾞはｱﾄﾞﾚｽの上位8ﾋﾞｯﾄを含むEEPROMﾍﾟｰｼﾞ書き込み命令によって(EEPROMに)格納されます。EEPRO
Mﾍﾟｰｼﾞ ｱｸｾｽ使用時、EEPROMﾍﾟｰｼﾞ設定命令で設定したﾊﾞｲﾄ位置だけが変更されます。残りの位置は無変化で留まります。
ﾎﾟｰﾘﾝｸﾞ(BSY/RDY)が使われない場合、次ﾍﾟｰｼﾞ(表32-10.参照)を行う前に最低tWD_EEPROM待たなければなりません。ﾁｯﾌﾟ消去されたﾃﾞﾊﾞｲｽでの$FFﾃﾞｰﾀは書かれる必要がありません。
6. どのﾒﾓﾘ位置も選択したｱﾄﾞﾚｽの内容を直列出力MISOに読み戻す読み出し命令を使うことによって照合できます。
7. ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ作業終了時、RESETは通常動作を開始するため、High(1)に設定できます。
8. 電源OFF手順 (必要とされるならば)・ RESETをHigh(1)に設定します。
・ VCC電源をOFFにします。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 211頁

ATmega328PB
表32-16. ﾋｭｰｽﾞ,ﾌﾗｯｼｭ,EEPROM次位置書き込み前の待機時間
備考
ｼﾝﾎﾞﾙ
最低待機時間
2.6ms
ﾋｭｰｽﾞ書き込みtWD_FUSE
2.6ms
ﾌﾗｯｼｭ ﾒﾓﾘ書き込み
tWD_FLASH
3.6ms
EEPROM書き込み
tWD_EEPROM
ﾁｯﾌﾟ消去10.5mstWD_ERASE

32.10.1. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
この項は命令一式を記述します。
表32-17. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令一式
命令

第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)にすべきです。
・ ﾋｭｰｽﾞ、施錠ﾋﾞｯﾄ、識票ﾊﾞｲﾄ、校正ﾊﾞｲﾄ、ﾍﾟｰｼﾞ容量については対応項を参照してください。
・ 第4ﾊﾞｲﾄの赤背景はﾎｽﾄ読み込み(ﾃﾞﾊﾞｲｽ出力)を示します。
注: ﾌﾟﾛｸﾞﾗﾐﾝｸﾞと書き込み器に関する応用記述についてはhttp://www.microchip.com/design-centers/8-bit/microchip-avr-mcusをご覧ください。
多忙/準備可検査ﾊﾞｲﾄ ﾃﾞｰﾀ出力のLSBが1なら、ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ操作が未だ保留(動作中)です。次の命令が実行される前に本ﾋﾞｯﾄが0に戻るまで待ってください。
同じﾍﾟｰｼﾞ内で、下位ﾊﾞｲﾄ ﾃﾞｰﾀは上位ﾊﾞｲﾄ ﾃﾞｰﾀに先行して格納されなければなりません。
ﾃﾞｰﾀがﾍﾟｰｼﾞ緩衝部に格納された後にEEPROMﾍﾟｰｼﾞをﾌﾟﾛｸﾞﾗﾑしてください。以降の図をご覧ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 212頁

ATmega328PB
図32-8. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ命令例
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ(上位/下位)ﾊﾞｲﾄ設定
またはEEPROMﾍﾟｰｼﾞ設定
第1ﾊﾞｲﾄ

第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位

ﾋﾞｯﾄ 15

ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ
命令

ﾌﾗｯｼｭ ﾒﾓﾘ ﾍﾟｰｼﾞ書き込み
またはEEPROMﾍﾟｰｼﾞ書き込み

第4ﾊﾞｲﾄ

第1ﾊﾞｲﾄ0

第2ﾊﾞｲﾄ
第3ﾊﾞｲﾄｱﾄﾞﾚｽ上位 ｱﾄﾞﾚｽ下位

ﾋﾞｯﾄ 15

第4ﾊﾞｲﾄ0ﾍﾟｰｼﾞ番号ﾍﾟｰｼﾞ内ｱﾄﾞﾚｽ(ｵﾌｾｯﾄ)ﾍﾟｰｼﾞ 0ﾍﾟｰｼﾞ 1
ﾍﾟｰｼﾞ緩衝部

ﾍﾟｰｼﾞ 2

ﾍﾟｰｼﾞ n-1
ﾌﾟﾛｸﾞﾗﾑ用ﾌﾗｯｼｭ ﾒﾓﾘ
またはEEPROM(訳補) ﾌﾗｯｼｭ ﾒﾓﾘ、EEPROM、ﾍﾟｰｼﾞ緩衝部内のｱﾄﾞﾚｽ(位置)指定に使われるﾋﾞｯﾄはﾒﾓﾘ容量とﾍﾟｰｼﾞ構成に依存します。ATmega32
8PBでのこれらの指定方法は次表で要約されます。
表B. ｱﾄﾞﾚｽ(第2,3ﾊﾞｲﾄ)指定法
命令
第2ﾊﾞｲﾄ
拡張ｱﾄﾞﾚｽ設定
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ内ﾊﾞｲﾄ設定
0000 0000
EEPROMﾍﾟｰｼﾞ内ﾊﾞｲﾄ設定 0000 0000
ﾌﾗｯｼｭ ﾒﾓﾘ読み出し
00HH HHHH
EEPROM読み出し
0000 00HH
ﾌﾗｯｼｭ ﾍﾟｰｼﾞ書き込み
00HH HHHH
EEPROMﾊﾞｲﾄ書き込み
0000 00HH
EEPROMﾍﾟｰｼﾞ書き込み
0000 00HH

第3ﾊﾞｲﾄ

備考

00LL LLLL
0000 00LL
LLLL LLLLLLLL LLLL
LL00 0000
LLLL LLLLLLLL LL00

該当命令なしATmega328PB
ATmega328PB
ATmega328PB
ATmega328PB
ATmega328PB
ATmega328PB
ATmega328PB: L=PC5～0: L=EEA1～0: H=PC13～8,L=PC7～0: H=EEA9～8,L=EEA7～0: H=PC13～8,L=PC7～6: H=EEA9～8,L=EEA7～0: H=EEA9～8,L=EEA7～2

32.10.2. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性
図32-9. 直列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾊﾞｲﾄ通信波形
直列ﾃﾞｰﾀ入力(MOSI)

MSB

LSB

直列ﾃﾞｰﾀ出力(MISO)

MSB

LSB

直列ｸﾛｯｸ入力(SCK)
ﾃﾞｰﾀ入力採取位置
SPI部の特性については、「SPIﾀｲﾐﾝｸﾞ特性」を参照してください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 213頁

ATmega328PB
33. 電気的特性
33.1. 絶対最大定格
表33-1. 絶対最大定格
動作温度
保存温度
RESETを除くﾋﾟﾝ許容電圧
RESETﾋﾟﾝ許容電圧
最大動作電圧
入出力ﾋﾟﾝ毎のDC電流
VCCとGNDﾋﾟﾝのDC電流-55℃～125℃-65℃～150℃-0.5V～VCC+0.5V-0.5V～13.0V
6.0V
40.0mA
100.0mA

注: 絶対最大定格を超える負担はﾃﾞﾊﾞｲｽに定常的な損傷を与えます。
絶対最大定格は負担の定格を示すためだけのもので、この値または、この仕様書の動作特性で示された値を超える条件で動作することを示すものではありません。長時間の最大定格での使用はﾃﾞﾊﾞ
ｲｽの信頼性を損なう場合があります。
注: 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ中、ﾘｾｯﾄ ﾋﾟﾝに12Vが接続されます。従って、ﾘｾｯﾄ
ﾋﾟﾝからVCCへの内部保護ﾀﾞｲｵｰﾄﾞが全くありません。ﾘｾｯﾄ ﾋﾟﾝで他のI/Oﾋﾟﾝと同じ保護を得るために外部保護が追加されるべきです。

33.2. DC特性
表33-2. 共通DC特性 (TA=-40℃～105℃, VCC=1.8V～5.5V (特記事項を除く))
ｼﾝﾎﾞﾙ
項目
条件
最小
代表
最大
単位
VCC=1.8～2.4V-0.5
0.2VCC (注1)
Lowﾚﾍﾞﾙ入力電圧
VIL(XTAL1,RESETを除く)
VCC=2.4～5.5V-0.5
0.3VCC (注1)
VIL1 Lowﾚﾍﾞﾙ入力電圧 (XTAL1)
VCC=1.8～5.5V-0.5
0.1VCC (注1)
VIL2 Lowﾚﾍﾞﾙ入力電圧 (RESET)
VCC=1.8～5.5V-0.5
0.1VCC (注1)VCC
=1.8～2.4V-0.5
0.2V
CC (注1)
Lowﾚﾍﾞﾙ入力電圧
VIL3(I/OとしてのRESET)
VCC=2.4～5.5V-0.5
0.3VCC (注1)
VCC+0.5(注2)
VCC=1.8～2.4V
0.7V
CC
Highﾚﾍﾞﾙ入力電圧
VIH(XTAL1,RESETを除く)
VCC=2.4～5.5V
0.6VCC (注2)
VCC+0.5
0.8VCC (注2)
VCC=1.8～2.4V
VCC+0.5
VIH1 Highﾚﾍﾞﾙ入力電圧 (XTAL1)
VCC=2.4～5.5V
0.7VCC (注2)
VCC+0.5
VIH2 Highﾚﾍﾞﾙ入力電圧 (RESET)V
VCC=1.8～5.5V
0.9VCC (注2)
VCC+0.5
VCC=1.8～2.4V
VCC+0.5
0.7VCC (注2)
Highﾚﾍﾞﾙ入力電圧
VIH3(I/OとしてのRESET)
VCC=2.4～5.5V
0.6VCC (注2)
VCC+0.5
TA=85℃
0.9
IOL=20mA,
VCC=5V
TA=105℃
1.0
Lﾚﾍﾞﾙ出力電圧VOL(注4)(RESETを除く)
TA=85℃
0.6
IOL=10mA,
VCC=3V
TA=105℃
0.7
TA=85℃
4.0
IOH=-20mA,
VCC=5V
TA=105℃
3.9
Hﾚﾍﾞﾙ出力電圧
VOH(注3)(RESETを除く)
2.1
IOH=-10mA, TA=85℃
VCC=3V
TA=105℃
2.0
IIL I/OﾋﾞﾝLowﾚﾍﾞﾙ入力漏れ電流
1
VCC=5.5VµA
確実なH/L範囲
IIH I/OﾋﾞﾝHighﾚﾍﾞﾙ入力漏れ電流
1
RRST RESETﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗
3060kΩ
RPU I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗
20
50
VACIO ｱﾅﾛｸﾞ比較器入力ｵﾌｾｯﾄ電圧
VCC=1.8～5V, 0<Vin<VCC-0.1V
<10
40
mV
IACLK ｱﾅﾛｸﾞ比較器入力漏れ電流
VCC=5V, Vin=VCC/2
-50
50
nA
400
ns
tACPD ｱﾅﾛｸﾞ比較器伝播遅延時間
注1: Lowﾚﾍﾞﾙの認識が保証される最高電圧です。
注2: Highﾚﾍﾞﾙの認識が保証される最低電圧です。
注3: 各I/Oﾎﾟｰﾄは安定状態(非過渡時)に於いては検査条件(VCC=3Vで10mA,VCC=5Vで20mA)よりも多くの吐き出し電流を流すことができますが、次の条件を厳守しなければなりません。
1. ﾎﾟｰﾄC6～0、D4～0、ADC7のIOHの合計が100mAを超えるべきではありません。
2. ﾎﾟｰﾄB7～0、D7～5、ADC6のIOHの合計が100mAを超えるべきではありません。
IOHが検査条件を超える場合、VOHも仕様書での値を超えます。表の検査条件より大きな吐き出し電流は保証されません。
注4は次頁をご覧ください。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 214頁

ATmega328PB
注4: 各I/Oﾎﾟｰﾄは安定状態(非過渡時)に於いては検査条件(VCC=3Vで10mA,VCC=5Vで20mA)よりも多くの吸い込み電流を流すことができますが、次の条件を厳守しなければなりません。
1. ﾎﾟｰﾄC5～0、ADC7,6のIOLの合計が100mAを超えるべきではありません。
2. ﾎﾟｰﾄC6、D4～0のIOLの合計が100mAを超えるべきではありません。
3. ﾎﾟｰﾄB7～0、D7～5のIOLの合計が100mAを超えるべきではありません。
IOLが検査条件を超える場合、VOLも仕様書での値を超えます。表の検査条件より大きな吸い込み電流は保証されません。
関連ﾘﾝｸ

消費電力の最小化

33.3. 消費電力
表33-3. ATmega328PB DC特性 (TA=-40℃～105℃, VCC=1.8V～5.5V (特記事項を除く))
ｼﾝﾎﾞﾙ
項目
条件
最小
TA=85℃
VCC=2V, 1MHz
TA=105℃
TA=85℃
活動動作消費電流(注1) VCC=3V, 4MHz
TA=105℃
TA=85℃
VCC=5V, 8MHz
TA=105℃
TA=85℃
VCC=2V, 1MHz
TA=105℃
TA=85℃
ｱｲﾄﾞﾙ動作消費電流(注1) VCC=3V, 4MHz
TA=105℃
TA=85℃
VCC=5V, 8MHz
TA=105℃
ICC
TA=25℃
VCC=1.8V TA=85℃
TA=105℃
32kHz
ﾊﾟﾜｰｾｰﾌﾞ動作消費電流 (注3)
TOSC許可TA=25℃
TA=85℃
VCC=3V
TA=105℃
TA=25℃
VCC=3V, WDT許可
TA=85℃
TA=105℃
ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 (注3,4)
TA=25℃
VCC=3V, WDT禁止
TA=85℃
TA=105℃
注1: 「消費電力の最小化」で許された値($FF)
注2: 25℃での代表値です。特記されない限り、最大値です。
注3: この消費電流は入力漏れ電流を含みます。
注4: ﾊﾟﾜｰﾀﾞｳﾝ動作中にｸﾛｯｸはﾊﾟｯﾄﾞに印加されません。

代表 (注2)
0.2
0.2
1.4
1.4
5.2
5.2
0.06
0.06
0.4
0.4
1.5
1.5
1.3
1.9
2.5
1.5
2.1
2.8
3.2
3.8
4.6
0.2
0.7
1.4

最大
0.5
0.6
2.5
2.75
9.0
10
0.15
0.20
0.7
0.8
2.7
3.0

単位

mA

µA
8
10
2
5

33.4. 速度勾配
最高周波数は動作電圧に依存します。図で示されるように最高周波数対動作電圧曲線は1.8～2.7Vと2.7～4.5V間で直線です。

図33-1. 最高周波数 対 VCC
20MHz

動作周波数

10MHz
4MHz

安全動作領域
1.8© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

2.7

4.5

VCC
5.5 (V)

DS40001906C - 215頁

ATmega328PB
33.5. ｸﾛｯｸ特性
33.5.1. 校正付き内蔵RC発振器精度
表33-4. 校正付き内蔵RC発振器の校正精度
校正種別
周波数
工場校正

VCC
2.7～4.2V

8.0MHz1.8～5.5V

使用者校正
7.3～8.1MHz
1.8～5.5V
注: 校正点、固定温度、固定電圧での発振器周波数の精度

温度
0～50℃
0～70℃
-40～105℃-40～85℃

校正精度
±2%
±3.5%
±5%
±1%

33.5.2. 外部ｸﾛｯｸ信号駆動
図33-2. 外部ｸﾛｯｸ駆動波形

tCLCH

tCHCX

tCHCL
tCLCX

VIH1

VIL1

tCLCL

表33-5. 外部ｸﾛｯｸ特性
ｼﾝﾎﾞﾙ

1/tCLCL
tCLCL
tCHCX
tCLCX
tCLCH
tCHCL
⊿ tCLCL項目
ｸﾛｯｸ周波数
ｸﾛｯｸ周期
Highﾚﾍﾞﾙ時間
Lowﾚﾍﾞﾙ時間
上昇時間
下降時間
隣接ｸﾛｯｸ周期間の変化率

VCC=1.8～5.5V
最小
最大
0
4
250
100
100
2.0
2.0
2

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
%

33.6. ｼｽﾃﾑとﾘｾｯﾄの特性
表33-6. ﾘｾｯﾄ、低電圧検出(BOD)、内部基準電圧の特性
ｼﾝﾎﾞﾙ
項目
条件
最小
上昇時電源ONﾘｾｯﾄ閾値電圧
1.1
VPOT
下降時電源ONﾘｾｯﾄ閾値電圧 (注1)0.6
SRON
電源ON電圧傾斜率
0.01
VRST
RESETﾋﾟﾝ閾値電圧
0.2VCC
tRST
2.5
ﾘｾｯﾄ ﾊﾟﾙｽ幅
VHYST
低電圧検出ﾋｽﾃﾘｼｽ電圧
tBOD
最小低電圧検出時間
VBG
基準電圧
1.0
tBG
起動時間
VCC=2.7V
TA=25℃
IBG
消費電流
注1: 供給電圧がこの電圧以下にならないと、上昇時の電源ONﾘｾｯﾄは動作しません。
注: 値は指針の意味だけです。
表33-7. BODLEVELﾋｭｰｽﾞ (VBOT) 設定 (注1,2)
BODLEVEL2～0 最小 代表 最大 単位
111
低電圧検出(BOD)ﾘｾｯﾄ禁止
110
1.7
1.8
2.0
101
2.5
2.7
2.9
V
100
4.1
4.3
4.5
000～011(予約)© 2018 Microchip Technology Inc.

代表
1.5
1.0

50
2
1.1
40
10

最大
1.7
1.7
9
0.9VCC

1.2
70

単位
V
V/ms
V
µs
mV
µs
V
µs
µA

注1: いくつかのﾃﾞﾊﾞｲｽでVBOTが公称最低動作電圧以下の可能性があります。この状態のﾃﾞﾊﾞｲｽについては、製造検査中、VCC=VBOTに落として検査されます。これはﾏｲｸﾛ ｺﾝﾄﾛｰﾗの正しい動作がもはや保証されない電圧になる前に、低電圧検出(BOD)ﾘｾｯﾄが起きることを保証します。この検査はBODLEVEL=110,101,100を使って実行されます。
注2: VBOTは製造に於いて25℃と85℃で検査されます。

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 216頁

ATmega328PB
33.7. SPIﾀｲﾐﾝｸﾞ特性
図33-3. SPI ﾀｲﾐﾝｸﾞ必要条件 (主装置動作)

SS (従装置選択)

16SCK (CPOL=0)
SCK (CPOL=1)

4

MISO (ﾃﾞｰﾀ入力)

2

5
MSB

MOSI (ﾃﾞｰﾀ出力)

2
LSB

7

MSB

3
8

LSB

図33-4. SPI ﾀｲﾐﾝｸﾞ必要条件 (従装置動作)

SCK (CPOL=0)
SCK (CPOL=1)1018SS (従装置選択)

16

9
13

11

14

MOSI (ﾃﾞｰﾀ入力)

MSB

MISO (ﾃﾞｰﾀ出力)

MSB

11
LSB

15

17
x

LSB

表33-8. SPI ﾀｲﾐﾝｸﾞ特性
番号
項目
動作種別
最小
代表
1 SCK周期
主装置
表23-5.参照
2 SCK High/Low期間
50%ﾃﾞｭｰﾃｨ比
主装置
3 SCK上昇/下降時間
主装置
3.6
4 入力ﾃﾞｰﾀ 準備時間
主装置
10
5 入力ﾃﾞｰﾀ 保持時間
主装置
106 出力からSCK変移時間
主装置
0.5･tSCK
7 SCKからの出力遅延時間
主装置
108 SCKからのHigh出力時間
主装置
109 SS↓からの出力遅延時間
従装置
1510 SCK周期
従装置
4･tCK
11 SCK High/Low期間
(注)
従装置
2･tCK
12 SCK上昇/下降時間
従装置
13 入力ﾃﾞｰﾀ 準備時間
従装置
10
14 入力ﾃﾞｰﾀ 保持時間
従装置
tCK
15 SCKからの出力遅延時間
従装置
1516 SCKからのSS↑遅延時間
従装置
20
17 SS↑からの出力Hi-Z遅延時間
従装置
1018 SS↓からのSCK遅延時間
従装置
2･tCK
注: SPIﾌﾟﾛｸﾞﾗﾐﾝｸﾞでの最小SCK High/Low期間は、2tCLCL(tCK＜12MHz)、3tCLCL(tCK≧12MHz)です。

© 2018 Microchip Technology Inc.

12

完全ﾃﾞｰﾀｼｰﾄ

最大

単位

ns

1.6

µs

ns

DS40001906C - 217頁

ATmega328PB
33.8. 2線直列ｲﾝﾀｰﾌｪｰｽ特性
本項の表は2線直列ﾊﾞｽに接続した装置に対する必要条件を記述します。2線直列ｲﾝﾀｰﾌｪｰｽは記載条件下で、これらの必要条件
を越えるか、または合致します。
図33-5. 2線直列ﾊﾞｽ ﾀｲﾐﾝｸﾞ

tof
SCL

tSU:STAtHD:STA

tHIGH

tLOW

tHD:DATtrtSU:DATtSU:STO

tBUF

SDA
表33-9. 2線直列ｲﾝﾀｰﾌｪｰｽ必要条件
ｼﾝﾎﾞﾙ
項目
条件
最小
最大
単位
VIL
Lowﾚﾍﾞﾙ入力電圧-0.50.3VCC
VIH
Highﾚﾍﾞﾙ入力電圧
0.7VCC
VCC+0.5
V
Vhys ① ｼｭﾐｯﾄ ﾄﾘｶﾞ入力ﾋｽﾃﾘｼｽ電圧② 0.05VCC
VOL ① Lowﾚﾍﾞﾙ出力電圧
IOL=3mA
0
0.4② 20+0.1Cb ③
300
tr ① 出力上昇時間(VILmin→VIHmax)
10pF<Cb<400pF③ ② 20+0.1Cb ③
250ns
tof ① 出力下降時間(VIHmin→VILmax)
050②
tSP ① 入力ﾊﾟﾙｽ最小幅(尖頭消去濾波)
Ii
0.1VCC<Vi<0.9VCC
入力電流(ﾋﾟﾝ単位)
-10
10
µA
Ci ① ﾋﾟﾝ入力容量
10
pF
fSCL
SCLｸﾛｯｸ周波数④⑤ fCK>max(16 fSCL,250kHz)
0
kHz
400
fSCL≦100kHz(VCC-0.4V)/3mA
1000ns/Cb
Rp
ﾌﾟﾙｱｯﾌﾟ抵抗値
ΩfSCL＞100kHz
300ns/Cb(VCC-0.4V)/3mA
fSCL≦100kHz
4.0
tHD:STA (再送)開始条件保持時間
fSCL＞100kHz
0.6
fSCL≦100kHz
4.7
SCLｸﾛｯｸLowﾚﾍﾞﾙ時間
tLOW
fSCL＞100kHz
1.3
fSCL≦100kHz
4.0
SCLｸﾛｯｸHighﾚﾍﾞﾙ時間µs
tHIGH
fSCL＞100kHz
0.6
fSCL≦100kHz
4.7
tSU:STA 再送開始条件準備時間
fSCL＞100kHz
0.6
fSCL≦100kHz
0
3.45
tHD:DAT ﾃﾞｰﾀ保持時間
fSCL＞100kHz
00.9
fSCL≦100kHz
250
ns
tSU:DAT ﾃﾞｰﾀ準備時間
fSCL＞100kHz
100
fSCL≦100kHz
4.0
tSU:STO 停止条件準備時間
fSCL＞100kHz
0.6µs
fSCL≦100kHz
4.7
停止条件→開始条件間ﾊﾞｽ開放時間
tBUF
fSCL＞100kHz
1.3① この項目は特性が記載されていますが、100%検査はされていません。
② f SCL＞100kHzについてのみ必要とされます。
③ Cbは1つのﾊﾞｽ信号線の容量(pF)です。
④ fCKはCPU(ｼｽﾃﾑ)ｸﾛｯｸ周波数です。
⑤ この必要条件は全ての2線直列ｲﾝﾀｰﾌｪｰｽ動作に適用します。2線直列ﾊﾞｽに接続した他の装置は一般的な f SCL必要条件に従うことだけを必要とします。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 218頁

ATmega328PB
33.9. A/D変換器特性
表33-10. A/D変換特性
ｼﾝﾎﾞﾙ
項目
分解能

TUE

絶対精度
(積分非直線性誤差、
微分非直線性誤差、
量子化誤差、利得誤差、
ｵﾌｾｯﾄ誤差を含む)

条件

VCC=4V
VREF=4V

最小clkADC=200kHz
clkADC=1MHz
clkADC=200kHz

4

INL
DNL

© 2018 Microchip Technology Inc.

最大

単位
ﾋﾞｯﾄ

2

雑音低減動作
clkADC=1MHz
雑音低減動作

積分非直線性誤差
微分非直線性誤差
VCC=4V、VREF=4V
利得誤差
clkADC=200kHz
ｵﾌｾｯﾄ(ｾﾞﾛ)誤差
連続変換動作変換時間
変換ｸﾛｯｸ周波数
AVCC ｱﾅﾛｸﾞ供給電圧
VREF 基準電圧
VIN 入力電圧
入力周波数帯域
VINT 内蔵基準電圧
RREF 基準電圧入力ｲﾝﾋﾟｰﾀﾞﾝｽ
RAIN ｱﾅﾛｸﾞ入力ｲﾝﾋﾟｰﾀﾞﾝｽ
注: 絶対最小/最大AVCCは1.8/5.5Vです。

代表
10
2
4

LSB

0.5
0.25
2
2
13
0.05
VCC-0.3
1.0
GND
1.0

完全ﾃﾞｰﾀｼｰﾄ

260
1
VCC+0.3
AVCC
VREF
38.5
1.1
50
100

1.2

µs
MHz
V
kHz
V
kΩ
MΩ

DS40001906C - 219頁

ATmega328PB
33.10. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性
図33-6. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾀｲﾐﾝｸﾞ (一般的な必要条件)

tXLWL

XTAL1
設定ﾃﾞｰﾀと制御
DATA, XA0, XA1,
BS1, BS2
PAGEL

tDVXH
tBVPH

tXHXL

tXLDX

tBVWL
tWLBX

tPLBX

tPHPL

tPLWL

WR

tWLWH
tWLRL

RDY/BSY

tWLRH
図33-7. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾀｲﾐﾝｸﾞ (ﾍﾟｰｼﾞ設定での必要条件)
XTAL1

tXLXH

BS1

tXLPH

tPLXH

PAGEL
DATA

ｱﾄﾞﾚｽ0(下位ﾊﾞｲﾄ)

ﾃﾞｰﾀ (下位ﾊﾞｲﾄ)

ﾃﾞｰﾀ (上位ﾊﾞｲﾄ)

ｱﾄﾞﾚｽ1(下位ﾊﾞｲﾄ)

ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ指定ﾃﾞｰﾀ下位ﾊﾞｲﾄ指定ﾃﾞｰﾀ上位 ﾃﾞｰﾀ語
ﾊﾞｲﾄ指定 (ﾜｰﾄﾞ)設定

ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ指定XA0
XA1

注: 図33-6.で示されるﾀｲﾐﾝｸﾞ必要条件(即ち、tDVXH、tXHXL、tXLDX)は設定操作にも適用されます。
図33-8. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ ﾀｲﾐﾝｸﾞ (同一ﾍﾟｰｼﾞ読み出しでの必要条件)
XTAL1

tXLOL

BS1

tOLDV

tBVDV

OE
DATA

tOHDZ
ｱﾄﾞﾚｽ0(下位ﾊﾞｲﾄ)

ﾃﾞｰﾀ (下位ﾊﾞｲﾄ)

ﾃﾞｰﾀ (上位ﾊﾞｲﾄ)

ｱﾄﾞﾚｽ1(下位ﾊﾞｲﾄ)

ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ指定ﾃﾞｰﾀ下位読み出し

ﾃﾞｰﾀ上位読み出し

ｱﾄﾞﾚｽ下位
ﾊﾞｲﾄ指定XA0
XA1

注: 図33-6.で示されるﾀｲﾐﾝｸﾞ必要条件(即ち、tDVXH、tXHXL、tXLDX)は読み出し操作にも適用されます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 220頁

ATmega328PB
表33-11. 並列ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ特性 (VCC=5V±10%)
ｼﾝﾎﾞﾙ
項目
最小
VPP
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可電圧
11.5
IPP
ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ許可電流
XTAL1↑に対するﾃﾞｰﾀと制御の準備時間
67
tDVXH
XTAL1↓から次XTAL1↑までの待機時間
300
tXLXH
XTAL1 Highﾊﾟﾙｽ幅
150
tXHXL
XTAL1ﾊﾟﾙｽ↓後のﾃﾞｰﾀと制御の保持時間
67
tXLDX
XTAL1ﾊﾟﾙｽ↓後のWR↓待機時間0tXLWL
XTAL1ﾊﾟﾙｽ↓後のPAGELﾊﾟﾙｽ↑待機時間
0tXLPH
PAGELﾊﾟﾙｽ↓後のXTAL1ﾊﾟﾙｽ↑待機時間
150
tPLXH
67
PAGELﾊﾟﾙｽ↑に対するBS1準備時間
tBVPH
PAGEL Highﾊﾟﾙｽ幅
200
tPHPL
PAGELﾊﾟﾙｽ↓後のBS1保持時間
67
tPLBX
RDY/BSY↑後のBS1,BS2保持時間
67
tWLBX
PAGELﾊﾟﾙｽ↓後のWRﾊﾟﾙｽ↓待機時間
67
tPLWL
WRﾊﾟﾙｽ↓に対するBS1準備時間
67tBVWLWR Lowﾊﾟﾙｽ幅
150
tWLWH
WRﾊﾟﾙｽ↓後のRDY/BSY↓遅延時間
0tWLRL
書き込み時間 (WR↓からRDY/BSY↑)
(注1)
2
tWLRH
(注2)
7.5
tWLRH_CE ﾁｯﾌﾟ消去時間 (WR↓からRDY/BSY↑)XTAL1ﾊﾟﾙｽ↓後のOE↓待機時間
0tXLCL
BS1有効からのDATA遅延時間
0
tBVDV
OE↓後のDATA出力遅延時間
tOLDV
OE↑後のDATA Hi-Z遅延時間
tOHDZ
注1: ﾌﾗｯｼｭ ﾒﾓﾘ、EEPROM、ﾋｭｰｽﾞ ﾋﾞｯﾄ、施錠ﾋﾞｯﾄ書き込み指令に対して有効です。
注2: ﾁｯﾌﾟ消去指令に対して有効です。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

代表

最大
12.5
250

単位
V
µA

ns

1
4.5
12
500
500
500

µs
ms

ns

DS40001906C - 221頁

ATmega328PB
34. 代表特性
以下の図は代表的な特性を示します。これらの図は製造中に検査されていません。全ての消費電流測定は全I/Oﾋﾟﾝを入力として設定した内部ﾌﾟﾙｱｯﾌﾟ許可で行われています。電源幅振幅の方形波発振器がｸﾛｯｸ源として使われています。
活動動作とｱｲﾄﾞﾙ動作の全ての消費電流測定は電力削減ﾚｼﾞｽﾀ(PRR0/1)で全ﾋﾞｯﾄが設定(1)で行なわれ、従って関係周辺機能部
はOFFにされます。ｱﾅﾛｸﾞ比較器もこれらの測定中に禁止されます。ﾊﾟﾜｰﾀﾞｳﾝ動作での消費電力はｸﾛｯｸ選択と無関係です。
消費電流は動作電圧、動作周波数、I/Oﾋﾟﾝの負荷、I/Oﾋﾟﾝの切り替え速度、命令実行、周囲温度のような様々な要素の関数です。
支配的な要素は動作電圧と動作周波数です。
容量性負荷のﾋﾟﾝの引き込み電流は(1つのﾋﾟﾝに対して) CL(負荷容量)×VCC(動作電圧)×f (I/Oﾋﾟﾝの平均切り替え周波数) として推測できます。
ﾃﾞﾊﾞｲｽは検査範囲よりも高い周波数特性を示します。ﾃﾞﾊﾞｲｽは注文番号が示す周波数よりも高い周波数での機能特性を保証されません。
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ許可のﾊﾟﾜｰﾀﾞｳﾝ動作での消費電流とｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ禁止のﾊﾟﾜｰﾀﾞｳﾝ動作での消費電流間の違いは、ｳｫｯﾁﾄﾞｯｸﾞ ﾀ
ｲﾏによって引き込んだ(消費した)差電流を表します。

34.1. 活動動作消費電流
図34-1. ATmega328PB：活動動作消費電流 対 周波数 (100kHz～1MHz)
1
0.9
0.8

VCC=5.5V
VCC=5V
VCC=4.5V
VCC=4V

0.7
0.6

消費電流
ICC (mA)

0.5
0.4
0.3

VCC=3.3V
VCC=2.7V

0.2

VCC=1.8V

0.1
0

0

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

0.7

0.8

0.9

1

図34-2. ATmega328PB：活動動作消費電流 対 周波数 (1MHz～20MHz)
20
18
16

VCC=5.5V
VCC=5V
VCC=4.5V

14
12

消費電流
ICC (mA)

10
8

VCC=4V
VCC=3.6V

6
4

VCC=2.7V200© 2018 Microchip Technology Inc.

2

4

VCC=1.8V
681012動作周波数 (MHz)

完全ﾃﾞｰﾀｼｰﾄ

14

16

18

20

DS40001906C - 222頁

ATmega328PB
図34-3. ATmega328PB：活動動作消費電流 対 動作電圧 (内蔵RC(WDT)発振器,128kHz)
TA=105℃
TA=85℃
TA=-40℃
TA=25℃

100
90
80
70
60

消費電流
ICC (µA)

50
40
30
20
10
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-4. ATmega328PB：活動動作消費電流 対 動作電圧 (内蔵RC発振器,CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0),1MHz)
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

1
0.9
0.8
0.7
0.6

消費電流
ICC (mA)

0.5
0.4
0.3
0.2
0.1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-5. ATmega328PB：活動動作消費電流 対 動作電圧 (内蔵RC発振器,8MHz)
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

6
5.5
5
4.5
4

消費電流
ICC (mA)

3.5
3
2.5
2
1.5
1
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 223頁

ATmega328PB
34.2. ｱｲﾄﾞﾙ動作消費電流
図34-6. ATmega328PB：ｱｲﾄﾞﾙ動作消費電流 対 周波数 (100kHz～1MHz)200

VCC=5.5V

180

VCC=5V160

VCC=4.5V

140

VCC=4V120

消費電流
ICC (µA)

100

VCC=2.7V

80
60

VCC=1.8V

40
20
0

0

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

0.7

0.8

0.9

1

図34-7. ATmega328PB：ｱｲﾄﾞﾙ動作消費電流 対 周波数 (1MHz～20MHz)
5
4.5

消費電流
ICC (mA)

4

VCC=5.5V

3.5

VCC=5V3

VCC=4.5V

2.5

VCC=4V2

VCC=3.6V

1.5
1

VCC=2.7V

0.5
0

0

2

4

VCC=1.8V
681012動作周波数 (MHz)

14

16

18

20

図34-8. ATmega328PB：ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵RC(WDT)発振器,128kHz)
50
45
40
TA=105℃
TA=85℃
TA=-40℃
TA=25℃

3530

消費電流
ICC (µA)

25
20
15
10
5
0
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 224頁

ATmega328PB
図34-9. ATmega328PB：ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵RC発振器,CKDIV8=ﾌﾟﾛｸﾞﾗﾑ(0),1MHz)
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

0.5
0.45
0.4
0.35
0.3

消費電流
ICC (mA)

0.25
0.2
0.15
0.1
0.05
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-10. ATmega328PB：ｱｲﾄﾞﾙ動作消費電流 対 動作電圧 (内蔵RC発振器,8MHz)2
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

1.8
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

34.3. 周辺機能部供給電流
以下の表と式は活動動作とｱｲﾄﾞﾙ動作で個別周辺機能部に対する追加消費電流の計算に使えます。周辺機能部の許可や禁止は
電力削減ﾚｼﾞｽﾀによって制御されます。
表34-1. 各部追加消費電流 (絶対値:µA)
PRR内ﾋﾞｯﾄ 1MHz,2V 4MHz,3V 8MHz,5V
PRUSART1
4.8
28.7
107.8
PRUSART0
4.7
28.1
110.9
PRTWI1-.-.-.PRTWI0
7.2
44.2
169.2
PRTIM4
4.1
28.2
95.5
PRTIM3
6.7
47.1
164.1
PRTIM25.7
38.6
140
PRTIM1
3.8
22.9
88.8
PRTIM0
1.9
11.6
45.2
PRSPI15.8
40
157.9
PRSPI0
5.7
38.3
159.8
PRADC
6.5
44.3
165.11
PRPTC
4.7
27.8
108.2

© 2018 Microchip Technology Inc.

表34-2. 各部追加消費電流 ( f =1MHz,VCC=2V,相対値: %)PRR内ﾋﾞｯﾄ
活動動作(図34-1,図34-2)
ｱｲﾄﾞﾙ動作(図34-6,図34-7)
PRUSART0
1.5
8.9
PRTWI
3.2
19.5
PRTIM22.4
14.8
PRTIM1
1.7
10.3
PRTIM0
0.7
4.1
PRSPI
2.9
17.1
PRADC
3.4
20.3
左表で一覧される以外のVCCと周波数設定については上表からの数値を元に代表的な消費電流を計算することができます。
関連ﾘﾝｸ 電力削減ﾚｼﾞｽﾀ(訳注) 原書に於いて表34-2.は削除されていますが、本書では下の文章との整合性のため、参照用として残しています。
完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 225頁

ATmega328PB
34.4. ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流
図34-11. ATmega328PB：ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 対 動作電圧 (ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ禁止)
5
4.5
TA=105℃

4
3.5
3

消費電流
ICC (µA)

2.5

TA=85℃2
1.5
1

TA=25℃0.5
01.5

TA=-40℃
2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-12. ATmega328PB：ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 対 動作電圧 (ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ許可)
10
TA=105℃

98

TA=85℃

76

消費電流
ICC (µA)

TA=25℃
TA=-40℃

5
4
3
2
1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-13. ATmega328PB：ﾊﾟﾜｰﾀﾞｳﾝ動作消費電流 対 動作電圧 (AREF=VCC/2)
5
4.5
TA=105℃

4
3.5
3

消費電流
ICC (µA)

2.5

TA=85℃2
1.5
1
TA=25℃0.5
01.5© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 226頁

ATmega328PB
34.5. ﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ
図34-14. ATmega328PB：I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=1.8V)
80
70
60

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IIO (µA)

50
40
30
20

1.6

TA=105℃
TA=85℃
TA=25℃
TA=-40℃
1.8

2.4

TA=105℃
TA=85℃
TA=25℃
TA=-40℃
2.7

10
0

0

0.2

0.4

0.6

0.8
1
入力電圧: VIO (V)

1.2

1.4

図34-15. ATmega328PB：I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=2.7V)
100
90
80
70

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IIO (µA)

60
50
40
30
20
10
0

0

0.3

0.6

0.9

1.2
1.5
入力電圧: VIO (V)

1.8

2.1

図34-16. ATmega328PB：I/Oﾋﾟﾝ ﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=5V)
200
180
160
140

ﾌﾟﾙｱｯﾌﾟ抵抗 120
電流100
IIO (µA)806040

TA=105℃
TA=85℃
TA=25℃
TA=-40℃20
00© 2018 Microchip Technology Inc.

0.5

1

1.5

2
2.5
3
入力電圧: VIO (V)

完全ﾃﾞｰﾀｼｰﾄ

3.5

4

4.5

5

DS40001906C - 227頁

ATmega328PB
図34-17. ATmega328PB：RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=1.8V)
100
90
80
70

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IRESET (µA)

60
50
40
30
20

1.6

TA=105℃
TA=85℃
TA=25℃
TA=-40℃
1.8

2.4

TA=105℃
TA=85℃
TA=25℃
TA=-40℃
2.7

10
0

0

0.2

0.4

0.6

0.8
1
入力電圧: VIO (V)

1.2

1.4

図34-18. ATmega328PB：RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=2.7V)
100
90
80
70

ﾌﾟﾙｱｯﾌﾟ抵抗
電流
IRESET (µA)

60
50
40
30
20
10
0

0

0.3

0.6

0.9

1.2
1.5
入力電圧: VIO (V)

1.8

2.1

図34-19. ATmega328PB：RESETﾌﾟﾙｱｯﾌﾟ抵抗電流 対 入力電圧 (VCC=5V)
200
180
160
140

ﾌﾟﾙｱｯﾌﾟ抵抗 120
電流100
IRESET (µA)
80
60
40

TA=105℃
TA=85℃
TA=25℃
TA=-40℃20
00© 2018 Microchip Technology Inc.

0.5

1

1.5

2
2.5
3
入力電圧: VIO (V)

完全ﾃﾞｰﾀｼｰﾄ

3.5

4

4.5

5

DS40001906C - 228頁

ATmega328PB
34.6. ﾋﾟﾝ駆動能力
図34-20. ATmega328PB：I/Oﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=3V)
1

TA=105℃
TA=85℃

0.9
0.8

L出力電圧
VOL (V)

0.7

TA=25℃

0.6

TA=-40℃

0.5
0.4
0.3
0.2
0.1
0

0

4

8
12
吸い込み電流: IOL (mA)1620

図34-21. ATmega328PB：I/Oﾋﾟﾝ出力電圧 対 吸い込み電流 (VCC=5V)
1
0.9
0.8
0.7
0.6

L出力電圧
VOL (V)

TA=105℃
TA=85℃
TA=25℃
TA=-40℃

0.5
0.4
0.3
0.2
0.1
0

0

4

8
12
吸い込み電流: IOL (mA)1620

図34-22. ATmega328PB：I/Oﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=3V)
3
2.85
2.7
2.55
2.4
H出力電圧
2.25
VOH (V)
2.1

TA=-40℃
TA=25℃

2.05

TA=85℃
TA=105℃

1.8
1.75
1.5

0

© 2018 Microchip Technology Inc.

4

8
12
吐き出し電流: IOH (mA)

完全ﾃﾞｰﾀｼｰﾄ

16

20

DS40001906C - 229頁

ATmega328PB
図34-23. ATmega328PB：I/Oﾋﾟﾝ出力電圧 対 吐き出し電流 (VCC=5V)
5
4.9
4.8
4.7
4.6

H出力電圧
VOH (V)

TA=-40℃
TA=25℃

4.5
4.4

TA=85℃
TA=105℃

4.3
4.2
4.1
4

0

4

8
12
吐き出し電流: IOH (mA)

16

20

34.7. ﾋﾟﾝ 閾値とﾋｽﾃﾘｼｽ
図34-24. ATmega328PB：I/Oﾋﾟﾝ入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIH,1読み値)
4
3.6

TA=-40℃
TA=25℃
TA=105℃
TA=85℃

3.2
2.8
2.4

閾値電圧
VThreshold (V)

2
1.6
1.2
0.8
0.4
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-25. ATmega328PB：I/Oﾋﾟﾝ入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIL,0読み値)
TA=-40℃
TA=25℃
TA=85℃
TA=105℃

2
1.8
1.6
1.4
1.2

閾値電圧
VThreshold (V)

1
0.8
0.6
0.4
0.2
0
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 230頁

ATmega328PB
図34-26. ATmega328PB：I/Oﾋﾟﾝ入力ﾋｽﾃﾘｼｽ電圧 対 動作電圧
2
1.8
1.6
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

1.4
1.2

ﾋｽﾃﾘｼｽ電圧
VHysteresis (V)

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

図34-27. ATmega328PB：RESET入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIH,1読み値)
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

2
1.8
1.6
1.4
1.2

閾値電圧
VThreshold (V)

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

図34-28. ATmega328PB：RESET入力閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作電圧 (VIL,0読み値)
2

TA=105℃
TA=85℃
TA=-40℃
TA=25℃

1.8
1.6
1.4
1.2

閾値電圧
VThreshold (V)

1
0.8
0.6
0.4
0.2
0
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 231頁

ATmega328PB
図34-29. ATmega328PB：RESET入力ﾋｽﾃﾘｼｽ電圧 対 動作電圧
1
0.9
0.8
0.7
0.6
ﾋｽﾃﾘｼｽ電圧
0.5
VHysteresis (V)0.4
0.3

TA=105℃
TA=85℃
TA=25℃
TA=-40℃

0.2
0.1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

34.8. 低電圧検出器(BOD)閾値
図34-30. ATmega328PB：低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧1.8V)
1.9
1.85
1.8

閾値電圧
1.75
VThreshold (V)

VCC上昇

1.7

VCC下降

1.65
1.6
-40

-20

0

20
40
60
動作温度: TA (℃)

80

100

120

図34-31. ATmega328PB：低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧2.7V)
2.8
2.75
2.7

閾値電圧
2.65
VThreshold (V)

VCC上昇

2.6

VCC下降

2.55
2.5
-40

© 2018 Microchip Technology Inc.

-20

0

20
40
60
動作温度: TA (℃)

完全ﾃﾞｰﾀｼｰﾄ

80

100

120

DS40001906C - 232頁

ATmega328PB
図34-32. ATmega328PB：低電圧検出器(BOD)閾値(ｽﾚｯｼｮｰﾙﾄﾞ)電圧 対 動作温度 (検出電圧4.3V)
4.5
4.45
4.4
4.35
閾値電圧
4.3
VThreshold (V)
4.25

VCC上昇
VCC下降

4.2
4.15
4.1
-40

-20

0

20
40
60
動作温度: TA (℃)

80

100

120

図34-33. ATmega328PB：内部ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧 対 動作温度
1.125

VCC=3.3V
VCC=1.8V

1.12
1.115

ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ
電圧
VBG (V)

VCC=5.5V
1.11
1.105
1.1
1.095
-40

-20

0

20
40
60
動作温度: TA (℃)

80

100

120

図34-34. ATmega328PB：内部ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ電圧 対 動作電圧
1.125
1.12
1.115

ﾊﾞﾝﾄﾞｷﾞｬｯﾌﾟ
電圧
VBG (V)

TA=105℃
TA=85℃

1.11

TA=25℃

1.105
1.1
1.095
1.5

© 2018 Microchip Technology Inc.

TA=-40℃
2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 233頁

ATmega328PB
34.9. ｱﾅﾛｸﾞ比較器ｵﾌｾｯﾄ
図34-35. ATmega328PB：ｱﾅﾛｸﾞ比較器ｵﾌｾｯﾄ電圧 対 同相入力電圧 (VCC=1.8V)
20
16
12

ｱﾅﾛｸﾞ比較器
ｵﾌｾｯﾄ電圧VACOFS (mV)8
4

TA=25℃
TA=-40℃
TA=105℃
TA=85℃

0
-4
-8

-0.4

0

0.4
0.8
1.2
同相入力電圧: VCMM (V)1.62

図34-36. ATmega328PB：ｱﾅﾛｸﾞ比較器ｵﾌｾｯﾄ電圧 対 同相入力電圧 (VCC=3V)
20
16
12

ｱﾅﾛｸﾞ比較器
ｵﾌｾｯﾄ電圧VACOFS (mV)8
4

TA=25℃
TA=-40℃
TA=105℃
TA=85℃

0
-4
-8
-0.5

0

0.5

1
1.5
同相入力電圧: VCMM (V)

2

2.5

3

図34-37. ATmega328PB：ｱﾅﾛｸﾞ比較器ｵﾌｾｯﾄ電圧 対 同相入力電圧 (VCC=5V)
20
16
12

ｱﾅﾛｸﾞ比較器
ｵﾌｾｯﾄ電圧VACOFS (mV)84

TA=-40℃
TA=25℃
TA=85℃
TA=105℃

0
-4
-8
-0.5

© 2018 Microchip Technology Inc.

0

0.5

1

1.5
2
2.5
3
同相入力電圧: VCMM (V)

完全ﾃﾞｰﾀｼｰﾄ

3.5

4

4.5

5

DS40001906C - 234頁

ATmega328PB
34.10. 内部発振器周波数
図34-38. ATmega328PB：ｳｫｯﾁﾄﾞｯｸﾞ発振器周波数 対 動作温度
112
110
108

発振周波数
106
FRC (kHz)
104
102
100
-40

-20

0

20
40
60
動作温度: TA (℃)

80

100

VCC=5.5V
VCC=5V
VCC=3.3V
VCC=1.8V
120

図34-39. ATmega328PB：ｳｫｯﾁﾄﾞｯｸﾞ発振器周波数 対 動作電圧112
TA=-40℃

110
108

発振周波数
106
FRC (kHz)

TA=25℃

104

TA=85℃
TA=105℃

102
100
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

図34-40. ATmega328PB：校正付き8MHz内蔵RC発振器周波数 対 動作電圧
8.2
TA=105℃
TA=85℃

8.15
8.1

TA=25℃

8.05

発振周波数
FRC (MHz)8
7.95

TA=-40℃

7.9
7.85
7.8
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 235頁

ATmega328PB
図34-41. ATmega328PB：校正付き8MHz内蔵RC発振器周波数 対 動作温度
8.2

VCC=5.5V
VCC=5V
VCC=4.5V
VCC=3.3V
VCC=2.7V

8.15
8.1
8.05

発振周波数
FRC (MHz)

8
7.95
7.9
7.85
7.8
-40

-20

0

20
40
60
動作温度: TA (℃)

80

100

120

図34-42. ATmega328PB：校正付き8MHz内蔵RC発振器周波数 対 発振校正(OSCCAL)値
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

19
18
16
14

発振周波数
FRC (MHz)

12
10
8
6
4
3

0

32

64

96

128
OSCCAL値

160

192

224

(256)

図34-43. ATmega328PB：基本周波数8MHzに於ける%での発振校正(OSCCAL)値段階量
2
1.8
1.6
1.4
1.2

FRC変化
(%)

1
0.8
0.6

TA=105℃
TA=85℃
TA=25℃
TA=-40℃

0.4
0.2
0

0

© 2018 Microchip Technology Inc.

32

64

96

128
OSCCAL値

完全ﾃﾞｰﾀｼｰﾄ

160

192

224

(256)

DS40001906C - 236頁

ATmega328PB
34.11. 周辺機能部消費電流
図34-44. ATmega328PB：A/D変換器消費電流 対 動作電圧 (AREF=AVCC, 50kHz)
500
450
400
350

TA=-40℃
TA=25℃
TA=85℃
TA=105℃

300

消費電流
ICC (µA)

250
200
150
100
50
0
1.5

2

2.5

3
3.5
4
動作電圧: AVCC (V)

4.5

5

5.5

図34-45. ATmega328PB：A/D変換器消費電流 対 動作電圧 (AREF=AVCC, 無変換)
500
450
400
350
300

AREF電流IAREF (µA)

TA=-40℃
TA=25℃
TA=85℃
TA=105℃

250
200
150
100
50
0
1.5

2

2.5

3
3.5
4
動作電圧: AVCC (V)

4.5

5

5.5

図34-46. ATmega328PB：ｱﾅﾛｸﾞ比較器消費電流 対 動作電圧
200
180
160
TA=-40℃
TA=25℃
TA=85℃
TA=105℃

140
120

消費電流
ICC (µA)

100
80
60
40
20
0
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: AVCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 237頁

ATmega328PB
図34-47. ATmega328PB：低電圧検出器(BOD)消費電流 対 動作電圧
30
27

消費電流
ICC (µA)

24

TA=105℃
TA=85℃

21

TA=25℃

18

TA=-40℃

15
12
9
6
3
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

5

5.5

5

TA=105℃
TA=85℃
TA=25℃
TA=-40℃5.5

図34-48. ATmega328PB：ﾌﾟﾛｸﾞﾗﾐﾝｸﾞ電流 対 動作電圧
8
7
6
5

消費電流
ICC (mA)

4
3
2
1
0
1.5

2

2.5

3
3.5
4
動作電圧: VCC (V)

4.5

34.12. ﾘｾｯﾄ消費電流とﾘｾｯﾄ ﾊﾟﾙｽ幅
図34-49. ATmega328PB：ﾘｾｯﾄ消費(供給)電流 対 周波数 (100kHz～1MHz)

VCC=5.5V
VCC=5V

200
180
160

VCC=4.5V

140

VCC=4V120

消費電流
ICC (µA)

VCC=3.3V

100
80
60

VCC=1.8V

40
20
0

0

© 2018 Microchip Technology Inc.

0.1

0.2

0.3

0.4
0.5
0.6
動作周波数 (MHz)

完全ﾃﾞｰﾀｼｰﾄ

0.7

0.8

0.9

1

DS40001906C - 238頁

ATmega328PB
図34-50. ATmega328PB：ﾘｾｯﾄ消費(供給)電流 対 周波数 (1MHz～16MHz)
4
3.6
3.2

VCC=5.5V

2.8

VCC=5V
VCC=4.5V
VCC=4V

2.4

消費電流
ICC (mA)2

VCC=3.6V

1.6
1.2

VCC=2.7V

0.8
0.4
0

VCC=1.8V
0

2

4

6

8
10
動作周波数 (MHz)

12

14

16

図34-51. ATmega328PB：ﾘｾｯﾄ消費(供給)電流 対 動作電圧 (RESETﾌﾟﾙｱｯﾌﾟ電流を除く)
2.0
1.8
TA=105℃
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

図34-52. ATmega328PB：最小ﾘｾｯﾄ ﾊﾟﾙｽ幅 対 動作電圧
1.5
1.35
1.2
1.05
0.9

ﾊﾟﾙｽ幅
tRST (µs)

0.75
0.6
0.45
TA=105℃
TA=85℃
TA=25℃
TA=-40℃

0.3
0.15
0
1.5

© 2018 Microchip Technology Inc.

2

2.5

3
3.5
4
動作電圧: VCC (V)

完全ﾃﾞｰﾀｼｰﾄ

4.5

5

5.5

DS40001906C - 239頁

ATmega328PB
35. ﾚｼﾞｽﾀ要約
拡張I/Oﾚｼﾞｽﾀ領域 (1/2)
ｱﾄﾞﾚｽ$FF～$DE
$DD
$DC
$DB
$DA
$D9
$D8
$D7～$CF
$CE
$CD
$CC
$CB

ﾚｼﾞｽﾀ略称
予約
TWAMR1
TWCR1
TWDR1
TWAR1
TWSR1
TWBR1
予約
UDR1
UBRR1HUBRR1LUCSR1D$CAUCSR1C

$C9
$C8
$C7
$C6
$C5
$C4
$C3

UCSR1BUCSR1A予約
UDR0
UBRR0HUBRR0LUCSR0D$C2

UCSR0C

$C1
$C0
$BF
$BE
$BD
$BC
$BB
$BA
$B9
$B8
$B7
$B6
$B5
$B4
$B3
$B2
$B1
$B0
$AF
$AE
$AD
$AC
$AB
$AA
$A9
$A8
$A7
$A6
$A5
$A4
$A3
$A2
$A1
$A0

UCSR0BUCSR0A
予約
予約
TWAMR0
TWCR0
TWDR0
TWAR0
TWSR0
TWBR0
予約
ASSR
予約
OCR2B
OCR2A
TCNT2
TCCR2B
TCCR2A
予約
SPDR1
SPSR1
SPCR1
OCR4BH
OCR4BLOCR4AHOCR4AL
ICR4H
ICR4L
TCNT4H
TCNT4L
予約
TCCR4CTCCR4B
TCCR4A© 2018 Microchip Technology Inc.

ﾋﾞｯﾄ7

ﾋﾞｯﾄ6

TWINT

TWEA

-

-

RXSIE

RXS

UMSEL1,0
RXCIE
RXC

TXCIE
TXC

-

-

RXSIE

RXS

UMSEL1,0
RXCIE
RXC

TXCIE
TXC

TWINT

TWEA

-

EXCLK

FOC2A
FOC2B
COM2A1,0
SPIF
SPIE

WCOL
SPE

FOC4A
FOC4B
ICES4
ICNC4
COM4A1,0

ﾋﾞｯﾄ5

ﾋﾞｯﾄ4

ﾋﾞｯﾄ3

ﾋﾞｯﾄ2

TWAM6～0
TWSTA
TWSTO
TWWC
TWEN
TWD7～0 (2線直列ｲﾝﾀｰﾌｪｰｽ1 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)
TWA6～0
TWS7～3
TWBR7～0 (2線直列ｲﾝﾀｰﾌｪｰｽ1 ﾋﾞｯﾄ速度ﾚｼﾞｽﾀ)

ﾋﾞｯﾄ1

ﾋﾞｯﾄ0

-

TWIE
TWGCE
TWPS1,0

TXB/RXB7～0 (USART1 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)UBRR11～8 (USART1 ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ上位)UBRR7～0 (USART1 ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ下位)
SFDE
UCSZ1
UCSZ0
UPM1,0USBSUCPOL/UDORD /UCPHA
RXB8
UDRIE
RXEN
TXEN
UCSZ2
TXB8
UDRE
FE
DOR
UPE
U2X
MPCM
TXB/RXB7～0 (USART0 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)UBRR11～8 (USART0 ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ上位)UBRR7～0 (USART0 ﾎﾞｰﾚｰﾄ ﾚｼﾞｽﾀ下位)
SFDE
UCSZ
1
0
UCSZ
USBS
UCPOL
UPM1,0/UDORD /UCPHA
UDRIE
RXEN
TXEN
UCSZ2
TXB8
RXB8
UDRE
FE
DOR
UPE
U2X
MPCM
TWAM6～0
TWSTA
TWSTO
TWWC
TWEN
TWD7～0 (2線直列ｲﾝﾀｰﾌｪｰｽ0 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)
TWA6～0
TWS7～3
TWBR7～0 (2線直列ｲﾝﾀｰﾌｪｰｽ0 ﾋﾞｯﾄ速度ﾚｼﾞｽﾀ)
AS2

TCN2UBOCR2AUBOCR2BUBOCR2B7～0 (ﾀｲﾏ/ｶｳﾝﾀ2 比較Bﾚｼﾞｽﾀ)
OCR2A7～0 (ﾀｲﾏ/ｶｳﾝﾀ2 比較Aﾚｼﾞｽﾀ)
TCNT27～0 (ﾀｲﾏ/ｶｳﾝﾀ2 計数値ﾚｼﾞｽﾀ)
WGM22
COM2B1,0
SPID7～0 (SPI1 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)
DORD
MSTR
CPOL
CPHA
OCR4B15～8 (ﾀｲﾏ/ｶｳﾝﾀ4 比較Bﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR4B7～0 (ﾀｲﾏ/ｶｳﾝﾀ4 比較Bﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
OCR4A15～8 (ﾀｲﾏ/ｶｳﾝﾀ4 比較Aﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR4A7～0 (ﾀｲﾏ/ｶｳﾝﾀ4 比較Aﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
ICR415～8 (ﾀｲﾏ/ｶｳﾝﾀ4 捕獲ﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
ICR47～0 (ﾀｲﾏ/ｶｳﾝﾀ4 捕獲ﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
TCNT415～8 (ﾀｲﾏ/ｶｳﾝﾀ4 上位ﾊﾞｲﾄ)
TCNT47～0 (ﾀｲﾏ/ｶｳﾝﾀ4 下位ﾊﾞｲﾄ)
-

-

-

-

-

-

WGM43,2
COM4B1,0

完全ﾃﾞｰﾀｼｰﾄ

TWIE

-

TWGCE
TWPS1,0TCR2AUBTCR2BUB

CS22～0
WGM21,0-

SPI2X
SPR1,0CS42～0
WGM41,0DS40001906C - 240頁

ATmega328PB
拡張I/Oﾚｼﾞｽﾀ領域 (2/2)
ｱﾄﾞﾚｽ
$9F
$9E
$9D
$9C
$9B
$9A
$99
$98
$97
$96
$95
$94
$93
$92
$91
$90
$8F
$8E
$8D
$8C
$8B
$8A
$89
$88
$87
$86
$85
$84
$83
$82
$81
$80
$7F
$7E
$7D
$7C
$7B
$7A
$79
$78
$77
$76
$75
$74
$73
$72
$71
$70
$6F
$6E
$6D
$6C
$6B
$6A
$69
$68
$67
$66
$65
$64
$63
$62
$61
$60

ﾚｼﾞｽﾀ略称
予約
予約
予約
予約
OCR3BHOCR3BLOCR3AHOCR3AL
ICR3H
ICR3L
TCNT3H
TCNT3L
予約
TCCR3CTCCR3B
TCCR3A
予約
予約
予約
予約
OCR1BHOCR1BLOCR1AHOCR1AL
ICR1H
ICR1L
TCNT1H
TCNT1L
予約
TCCR1CTCCR1BTCCR1A
DIDR1
DIDR0
予約
ADMUX
ADCSRBADCSRA
ADCH
ADCL
予約
予約
予約
予約
PCMSK3TIMSK4TIMSK3TIMSK2TIMSK1TIMSK0PCMSK2PCMSK1PCMSK0
予約
EICRA
PCICR
予約
OSCCAL
PRR1
PRR0
予約
XFDCSRCLKPR
WDTCSR© 2018 Microchip Technology Inc.

ﾋﾞｯﾄ7

ﾋﾞｯﾄ6

ﾋﾞｯﾄ5

ﾋﾞｯﾄ4

ﾋﾞｯﾄ3

ﾋﾞｯﾄ2

ﾋﾞｯﾄ1

ﾋﾞｯﾄ0

OCR3B15～8 (ﾀｲﾏ/ｶｳﾝﾀ3 比較Bﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR3B7～0 (ﾀｲﾏ/ｶｳﾝﾀ3 比較Bﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
OCR3A15～8 (ﾀｲﾏ/ｶｳﾝﾀ3 比較Aﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR3A7～0 (ﾀｲﾏ/ｶｳﾝﾀ3 比較Aﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
ICR315～8 (ﾀｲﾏ/ｶｳﾝﾀ3 捕獲ﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
ICR37～0 (ﾀｲﾏ/ｶｳﾝﾀ3 捕獲ﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
TCNT315～8 (ﾀｲﾏ/ｶｳﾝﾀ3 上位ﾊﾞｲﾄ)
TCNT37～0 (ﾀｲﾏ/ｶｳﾝﾀ3 下位ﾊﾞｲﾄ)
FOC3A
FOC3B
ICNC3
ICES3
COM3A1,0

-

-

-

-

-

-

CS32～0
WGM31,0

WGM33,2
COM3B1,0

OCR1B15～8 (ﾀｲﾏ/ｶｳﾝﾀ1 比較Bﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR1B7～0 (ﾀｲﾏ/ｶｳﾝﾀ1 比較Bﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
OCR1A15～8 (ﾀｲﾏ/ｶｳﾝﾀ1 比較Aﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
OCR1A7～0 (ﾀｲﾏ/ｶｳﾝﾀ1 比較Aﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
ICR115～8 (ﾀｲﾏ/ｶｳﾝﾀ1 捕獲ﾚｼﾞｽﾀ 上位ﾊﾞｲﾄ)
ICR17～0 (ﾀｲﾏ/ｶｳﾝﾀ1 捕獲ﾚｼﾞｽﾀ 下位ﾊﾞｲﾄ)
TCNT115～8 (ﾀｲﾏ/ｶｳﾝﾀ1 上位ﾊﾞｲﾄ)
TCNT17～0 (ﾀｲﾏ/ｶｳﾝﾀ1 下位ﾊﾞｲﾄ)
FOC1A
FOC1B
ICES1
ICNC1
COM1A1,0
ADC7D
ADC6D

-

-

-

-

ADC3D

ADC2D

WGM13,2

COM1B1,0
ADC5D
ADC4D

CS12～0
WGM11,0
AIN1D
AIN0D
ADC1D
ADC0D

REFS1,0
ACME
ADEN
ADSC

ADLAR
MUX3～0
ADTS2～0
ADATE
ADIF
ADIE
ADPS2～0
ADC9～8またはADC9～2 (A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ上位ﾊﾞｲﾄ)
ADC7～0またはADC1～0 (A/Dﾃﾞｰﾀ ﾚｼﾞｽﾀ下位ﾊﾞｲﾄ)

PCINT23PCINT7PCINT22
PCINT14PCINT6

ICIE4
ICIE3
ICIE1
PCINT21
PCINT13PCINT5

PCINT20
PCINT12PCINT4----PRTWI0PRTIM2

CAL7～0 (内蔵RC発振器 発振校正値ﾚｼﾞｽﾀ)
PRTWI1PRPTC
PRTIM4PRSPI1PRTIM0PRUSART1
PRTIM1PRSPI0CLKPCE
WDIF

WDIE

WDP3

WDCE

完全ﾃﾞｰﾀｼｰﾄ

PCINT27
PCINT19
PCINT11
PCINT3

PCINT26
OCIE4B
OCIE3BOCIE2BOCIE2B
OCIE0B
PCINT18
PCINT10
PCINT2

ISC11,0
PCIE3
PCIE2

WDE

-

PCINT25
OCIE4A
OCIE3A
OCIE2A
OCIE2A
OCIE0APCINT17
PCINT9PCINT1

PCINT24
TOIE4
TOIE3
TOIE2
TOIE1
TOIE0
PCINT16
PCINT8PCINT0

ISC01,0PCIE1PCIE0PRUSART0

PRTIM3PRADC

XFDIF
CLKPS3～0
WDP2～0XFDIEDS40001906C - 241頁

ATmega328PB
標準I/Oﾚｼﾞｽﾀ領域
ｱﾄﾞﾚｽ$5F ($3F)$5E ($3E)$5D ($3D)$5C ($3C)$5B ($3B)$5A ($3A)$59 ($39)$58 ($38)$57 ($37)$56 ($36)$55 ($35)$54 ($34)$53 ($33)$52 ($32)$51 ($31)$50 ($30)$4F ($2F)$4E ($2E)$4D ($2D)$4C ($2C)$4B ($2B)$4A ($2A)$49 ($29)$48 ($28)$47 ($27)$46 ($26)$45 ($25)$44 ($24)$43 ($23)$42 ($22)$41 ($21)$40 ($20)$3F ($1F)$3E ($1E)$3D ($1D)$3C ($1C)$3B ($1B)$3A ($1A)$39 ($19)$38 ($18)$37 ($17)$36 ($16)$35 ($15)$34 ($14)$33 ($13)$32 ($12)$31 ($11)$30 ($10)$2F ($0F)$2E ($0E)$2D ($0D)$2C ($0C)$2B ($0B)$2A ($0A)$29 ($09)$28 ($08)$27 ($07)$26 ($06)$25 ($05)$24 ($04)$23 ($03)$22 ($02)$21 ($01)$20 ($00)

ﾚｼﾞｽﾀ略称
SREG
SPH
SPL
予約
予約
予約
予約
予約
SPMCSR
予約
MCUCR
MCUSR
SMCR
予約
DWDR
ACSR
ACSRB
SPDR0
SPSR0
SPCR0
GPIOR2GPIOR1
予約
OCR0B
OCR0A
TCNT0
TCCR0B
TCCR0A
GTCCR
EEARH
EEARL
EEDR
EECR
GPIOR0
EIMSK
EIFR
PCIFR
予約
TIFR4
TIFR3
TIFR2
TIFR1
TIFR0
予約
予約
予約
予約
予約
予約
PORTE
DDRE
PINE
PORTD
DDRD
PIND
PORTC
DDRC
PINC
PORTB
DDRB
PINB
予約
予約
予約

© 2018 Microchip Technology Inc.

ﾋﾞｯﾄ7
I
SP7

ﾋﾞｯﾄ6
T
SP6

ﾋﾞｯﾄ5
H
SP5

ﾋﾞｯﾄ4
S
SP4

ﾋﾞｯﾄ3
V
SP11
SP3

ﾋﾞｯﾄ2
N
SP10
SP2

ﾋﾞｯﾄ1
Z
SP9
SP1

ﾋﾞｯﾄ0
C
SP8
SP0

SPMIE

RWWSB

SIGRD

RWWSREBLBSET

PGWRT

PGERS

SPMEN

-

BODS
-

BODSE
-

PUD
-

WDRF

BORF
SM2～0

IVSEL
EXTRF

IVCE
PORF
SE

ACD
-

ACBG
-

SPIF
SPIE

WCOL
SPE

DWDR7～0 (ﾃﾞﾊﾞｯｸﾞ ﾚｼﾞｽﾀ)
ACI
ACIE
ACIC
SPID7～0 (SPI0 ﾃﾞｰﾀ ﾚｼﾞｽﾀ)
DORD
MSTR
CPOL
CPHA
GPIOR27～0 (汎用I/Oﾚｼﾞｽﾀ2)
GPIOR17～0 (汎用I/Oﾚｼﾞｽﾀ1)
ACO
-

-

-

-

-

OCR0B7～0 (ﾀｲﾏ/ｶｳﾝﾀ0 比較Bﾚｼﾞｽﾀ)
OCR0A7～0 (ﾀｲﾏ/ｶｳﾝﾀ0 比較Aﾚｼﾞｽﾀ)
TCNT07～0 (ﾀｲﾏ/ｶｳﾝﾀ0 計数値ﾚｼﾞｽﾀ)
WGM02
COM0B1,0
EEAR7～0 (EEPROMｱﾄﾞﾚｽ ﾚｼﾞｽﾀ下位ﾊﾞｲﾄ)
EEDR7～0 (EEPROMﾃﾞｰﾀ ﾚｼﾞｽﾀ)
EEPM1,0EERIE
EEMPE
GPIOR07～0 (汎用I/Oﾚｼﾞｽﾀ0)
PCIF3
PCIF2

-

-

ICF4
ICF3
ICF1
-

-

-

PORTD7DDD7PIND7PORTB7DDB7PINB7PORTD6DDD6PIND6PORTC6DDC6PINC6PORTB6DDB6PINB6PORTD5DDD5PIND5PORTC5DDC5PINC5PORTB5DDB5PINB5PORTD4DDD4PIND4PORTC4DDC4PINC4PORTB4DDB4PINB4PORTE3DDE3
PINE3
PORTD3DDD3PIND3PORTC3DDC3PINC3PORTB3
DDB3
PINB3

FOC0A
FOC0B
COM0A1,0
TSM-

完全ﾃﾞｰﾀｼｰﾄ-

ACIS1,0
ACOE

-

SPI2X
SPR1,0CS02～0
WGM01,0PSRASYPSRSYNC
EEAR9,8
EEPE

EERE

INT1
INTF1
PCIF1

INT0
INTF0
PCIF0

OCF4B
OCF3B
OCF2B
OCF1B
OCF0B

OCF4A
OCF3A
OCF2A
OCF1A
OCF0A

TOV4
TOV3
TOV2
TOV1
TOV0

PORTE2DDE2
PINE2
PORTD2DDD2PIND2PORTC2DDC2PINC2PORTB2DDB2PINB2PORTE1
DDE1
PINE1
PORTD1DDD1PIND1PORTC1DDC1PINC1PORTB1DDB1PINB1PORTE0
DDE0
PINE0
PORTD0DDD0PIND0PORTC0DDC0PINC0PORTB0DDB0PINB0DS40001906C - 242頁

ATmega328PB
36. 命令要約
ﾆｰﾓﾆｯｸ

ｵﾍﾟﾗﾝﾄﾞ

ADD
ADC
ADIW
SUB
SUBI
SBIW
SBC
SBCI
AND
ANDI
OR
ORI
EOR
COM
NEG
SBR
CBR
INC
DEC
TST
CLR
SER
MUL
MULS
MULSU
FMUL
FMULS
FMULSU

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
Rd,Rr
Rd,Rr
Rd,Rr
Rd,Rr
Rd,Rr
Rd,Rr

RJMP
IJMP
JMP
RCALL
ICALL
CALL
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
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
符号なし間の乗算
R1:R0 ← Rd×Rr(U×U)
符号付き間の乗算
R1:R0 ← Rd×Rr(S×S)
符号付きと符号なしの乗算
R1:R0 ← Rd×Rr(S×U)
符号なし間の固定小数点乗算
R1:R0 ← (Rd×Rr)<<1(U×U)
符号付き間の固定小数点乗算
R1:R0 ← (Rd×Rr)<<1(S×S)
符号付きと符号なしの固定小数点乗算
R1:R0 ← (Rd×Rr)<<1
(S×U)
分岐命令
相対無条件分岐PC ← PC + k + 1
Zﾚｼﾞｽﾀ間接無条件分岐
PC ← Z
絶対無条件分岐PC ← k相対ｻﾌﾞﾙｰﾁﾝ呼び出し
STACK ← PC, PC ← PC + k + 1
Zﾚｼﾞｽﾀ間接ｻﾌﾞﾙｰﾁﾝ呼び出し
STACK ← PC, PC ← Z
絶対ｻﾌﾞﾙｰﾁﾝ呼び出し
STACK ← PC, PC ← k
ｻﾌﾞﾙｰﾁﾝからの復帰
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
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
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2

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
3
I,T,H,S,V,N,Z,C
4
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)© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 243頁

ATmega328PB
ﾆｰﾓﾆｯｸ

ｵﾍﾟﾗﾝﾄﾞ

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制御命令
無操作
休止形態開始休止形態参照ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ ﾘｾｯﾄ
ｳｫｯﾁﾄﾞｯｸﾞ ﾀｲﾏ参照
一時停止
内蔵ﾃﾞﾊﾞｯｸﾞWIRE機能専用© 2018 Microchip Technology Inc.

意味

完全ﾃﾞｰﾀｼｰﾄ

ﾌﾗｸﾞ

ｸﾛｯｸ

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/A

DS40001906C - 244頁

ATmega328PB
37. 外囲器情報
37.1. 32A
32ﾘｰﾄﾞ ﾌﾟﾗｽﾃｨｯｸ薄型四角平板外囲器(PT) - 7×7×1.0mm本体、2.00mm [TQFP]
注: 最新の外囲器図についてはhttp://www.microchip.com/packagingに置かれたMicrochip外囲器仕様をご覧ください。
D

単位
寸法限度
ﾘｰﾄﾞ数
N
ﾘｰﾄﾞ間隔
e
全高
A
嵩上げ
A1
成形外包装厚
A2
足接触長
L
足全長
L1
足角
φ
全幅
E
全長
D
成形包装幅
E1
成形包装長
D1
ﾘｰﾄﾞ厚
c
ﾘｰﾄﾞ幅
b
成形上抜き勾配 α
成形下抜き勾配 β

D1

e

E
E1

b

N
注1

1 2 3

注2

α

c

φ
β

A2

mm
標準 最大
32
0.80 BSC
1.20
0.05
0.15
0.95 1.00 1.05
0.45 0.60 0.75
1.00 REF
0° 3.5° 7°
9.00 BSC
9.00 BSC
7.00 BSC
7.00 BSC
0.09
0.20
0.30 0.37 0.45
11° 12° 13°
11° 12° 13°

最小

A
A1

L1

L

注1: 1番ﾋﾟﾝ視覚指標機能は変わるかもしれんませんが、斜線領域内に配置されなければなりません。
注2: 角の面取りは任意選択で、大きさは変わるかもしれません。
注3: D1とE1の寸法は成形の毛羽や突起を含みません。成形の毛羽や突起は片側に対して0.25mmを超えるべきではありません。
注4: ASME Y14.5Mによる寸法と公差
BSC : 基本寸法。公差なしで示される理論的に正確な値。
REF : 参照基準寸法。通常は公差なし、情報目的専用。
Microchip Technology作図C04-074B

37.2. 32ﾊﾟｯﾄﾞVQFN
上面図

側面図
C

D

0.08 C32

1
2
1番ﾋﾟﾝID

E

0.10 C

2X

A3
A1

0.10 C

底面図A

L (32X)

D2

0.10 C

選択A

着座面

2X

共通寸法 (測定単位=mm)
ｼﾝﾎﾞﾙ 最小 代表 最大 注意
A
0.80
0.90
A1
0.00
0.05
A3
0.20 REF
b
0.18 0.25 0.30
2D
4.90 5.00 5.10
D2
3.00 3.10 3.20
E
4.90 5.00 5.10
E2
3.00 3.10 3.20
e0.50
L0.30 0.40 0.50
K
0.20
-

1番ﾋﾟﾝID
面取り(C 0.30)

e e/2
1
32
選択B

E2
1番ﾋﾟﾝID
窪み(R 0.20)2
1
1
32

1番ﾋﾟﾝ角32

K

選択A,Bをご覧ください。

b (32X)© 2018 Microchip Technology Inc.

注1: JEDEC作図MO-220、変形VHHD-2(図1/鋸分離)を参照してください。
注2: 寸法”b”は金属化端子に適用し、端子先端から0.15～0.30mm間で測定されます。端子が端子の他端で半径選択を持つ場合、寸法はその半径領域で測定されるべきではありません。

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 245頁

ATmega328PB
38. 障害情報
改訂A,B,C,D
1. 2.7～4.1VのVDDに対してADC精度減少。 (A/B/C/D)
内容:
・ ADC符号の256、512、768に対して-1未満の微分性直線性誤差(消失符号)が観測され得ます。
・ 利得誤差増加対策/対処: 正確なADCが必要とされる場合、2.7以下または4.1V以上のVDDを使ってください。
2. 休止動作形態で周辺機能接触制御器(PTC)が許可される場合、PTCは動作を停止するかもしれません。 (B/C/D)
内容:
休止動作形態で周辺機能接触制御器(PTC)が許可される場合、PTCは動作を停止するかもしれません。
対策/対処: QTouchﾗｲﾌﾞﾗﾘ 5.0.8またはそれ以降版を使ってください。
または休止動作形態へ移行する前にPTCを禁止してください。
3. 3V以下の供給電圧でのﾁｯﾌﾟ消去後のﾌﾗｯｼｭ読み込み時に不正になる。 (B)内容:
低供給電圧(VCC<3V)でﾁｯﾌﾟ消去が実行された場合、ﾁｯﾌﾟ消去直後(500ms以内)に実行されるﾌﾗｯｼｭ ﾒﾓﾘ読み込
みは不正な結果を示すかもしれません。
対策/対処: ﾁｯﾌﾟ消去が低電圧で実行される場合、ﾌﾗｯｼｭ ﾒﾓﾘ内容を読む前に500ms待ってください。
4. SPM命令を使う施錠ﾋﾞｯﾄ書き込みは次のSPM命令が実行されない原因になる。 (B)内容:
ﾒﾓﾘ施錠ﾋﾞｯﾄ書き込み後、その後の最初のﾌﾗｯｼｭまたはEEPROMの消去または書き込みが失敗し得ます。ｿﾌﾄｳｪ
ｱからの施錠ﾋﾞｯﾄまたはﾌﾞｰﾄ施錠ﾋﾞｯﾄの書き込みは直後のﾌﾗｯｼｭまたはEEPROMの書き込みが実行されなくさせます。
対策/対処: 何れかのﾒﾓﾘ施錠ﾋﾞｯﾄが書かれた後には、何れかのﾌﾗｯｼｭまたはEEPROMの位置に偽装書き込みを実行してください。内容の変更を避けるためにﾃﾞｰﾀは全て’1’を含むべきです。SPM制御/状態ﾚｼﾞｽﾀ(SPMCSR)のRWW領域多忙(RWWSB)ﾋﾞｯﾄが0になるまで待ってください。ﾒﾓﾘ施錠ﾋﾞｯﾄが書かれた後のﾃﾞﾊﾞｲｽ電源断もこの問題を解決します。
5. ｸﾛｯｸ障害検出(CFD)が外部ﾘｾｯﾄで元のｸﾛｯｸに復帰再開しない。 (B)内容:
CFDが許可された時にｸﾛｯｸ障害が起きた場合にﾃﾞﾊﾞｲｽは1MHz代替ｸﾛｯｸで動作し、その後の外部ﾘｾｯﾄはｼｽﾃﾑに元のｸﾛｯｸ元への復帰再開の試みを引き起こしません。
対策/対処: ｸﾛｯｸ障害が起こった場合に元のｸﾛｯｸに復帰再開するのに電源ONﾘｾｯﾄを使うことができます。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 246頁

ATmega328PB
39. 改訂履歴
資料改訂
42397A
42397B

42397C

日付
2015年7月 初版資料公開
・ ﾋﾟﾝ配置を改訂
2015年9月 ・ ﾀｲﾏ/ｶｳﾝﾀ3と4用の新規ﾚｼﾞｽﾀを包含
・ ﾚｼﾞｽﾀ要約を更新

注釈

・ 特徴:’固有のﾃﾞﾊﾞｲｽID’を追加。ﾊﾟﾜｰﾀﾞｳﾝとﾊﾟﾜｰｾｰﾌﾞを更新して関連する注を削除
・ 「製品形態要約」の表から電気的仕様を削除
・ 「構成図」の図を更新
・ 「ﾋﾟﾝ配置」の図を更新
・ 「入出力多重化」章を更新
・ 「容量性接触感知」章を削除
・ 「ｸﾘｽﾀﾙ用低電力発振器動作種別」の表と関連する注を更新
・ 「128kHz内部発振器」項を更新
・ 「CFD - ｸﾛｯｸ障害検出機構」の「動作」項を更新
・ 「ATmega328PBでのﾘｾｯﾄと割り込みのﾍﾞｸﾀ」の表を更新
2015年10月 ・ 「交換ﾎﾟｰﾄ機能」項を更新
・ 「図19-3. 捕獲入力部構成図」の下の誤った図を削除
・ 「図19-4. 比較出力部構成図」を更新
・ 「図19-5. 比較一致出力回路図」を更新
・ 「図22-2. 比較出力変調器等価回路図」を更新
・ 「図22-3. 比較出力変調器ﾀｲﾐﾝｸﾞ図」を更新
・ 「ADMUX」項を追加
・ 「表31-5. 識票列ｱﾄﾞﾚｽ一覧」を更新
・ 「表33-3. ATmega328PB DC特性」を更新
・ 「表33-10. A/D変換特性」で値とRREFとRAINの単位を更新
・ 「代表特性」の多くを置換 (訳注:それと追加)

A・ 資料様式の変更
・ 新しいMicrochip資料番号。以前の版はAtmel資料42397改訂C
・ 「ﾋﾟﾝ配置」の図でPB3,PB4,PB5の色を更新
・ 「SPH,SPL (SP) - ｽﾀｯｸ ﾎﾟｲﾝﾀ」ﾚｼﾞｽﾀ図を更新
・ 「ｸﾘｽﾀﾙ用低電力発振器」項を更新
・ 「CFD - ｸﾛｯｸ障害検出機構」章を更新
・ GTCCRとTWBRの記述を更新
・ 図22-2.を更新
2017年4月 ・ 「PTC - 周辺機能接触制御器」の「特徴」を更新
・ 「温度測定」項を更新
・ 「ADCSRB - A/D制御/状態ﾚｼﾞｽﾀB」でﾋﾞｯﾄを更新
・ 「ｱｾﾝﾌﾞﾘ言語による簡単なﾌﾞｰﾄ ﾛｰﾀﾞ例」項を更新
・ 表32-5.を更新
・ 「識票列要約 - SIGROW」項を追加
・ 電気的特性:製品検査を参照する全ての注を削除
・ 「電力消費」項の表を更新
・ 表33-6.で電源ON電圧傾斜率を更新

B・ 「16ﾋﾞｯﾄ ﾚｼﾞｽﾀのｱｸｾｽ」- 書き込み操作用手順を更新
・ 図9-2.を更新
2018年1月 ・ 表11-3.と表11-7.で容量値を更新
・ ATmega328PBがJTAGを支援しないためJTAG関連ﾋﾞｯﾄを削除
・ TCCR1CとTCCR3Cのﾚｼﾞｽﾀを修正
・ 「障害情報」を更新

C

2018年2月

・ 「外囲器情報」- 外囲器図更新
・ 「障害情報」を更新© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 247頁

ATmega328PB
Microchipｳｪﾌﾞ ｻｲﾄ
Microchipはhttp://www.microchip.com/で当社のｳｪﾌﾞ ｻｲﾄ経由でのｵﾝﾗｲﾝ支援を提供します。このｳｪﾌﾞ ｻｲﾄはお客様がﾌｧｲﾙや情報を容易に利用可能にする手段として使われます。お気に入りのｲﾝﾀｰﾈｯﾄ ﾌﾞﾗｳｻﾞを用いてｱｸｾｽすることができ、ｳｪﾌﾞ ｻｲﾄは以下の情報を含みます。
・ 製品支援 - ﾃﾞｰﾀｼｰﾄと障害情報、応用記述と試供ﾌﾟﾛｸﾞﾗﾑ、設計資源、使用者の手引きとﾊｰﾄﾞｳｪｱ支援資料、最新ｿﾌﾄｳｪｱ配布と保管されたｿﾌﾄｳｪｱ
・ 全般的な技術支援 - 良くある質問(FAQ)、技術支援要求、ｵﾝﾗｲﾝ検討ｸﾞﾙｰﾌﾟ、Microchip相談役ﾌﾟﾛｸﾞﾗﾑ員一覧
・ Microshipの事業 - 製品選択器と注文の手引き、最新Microchip報道発表、ｾﾐﾅｰとｲﾍﾞﾝﾄの一覧、Microchip営業所の一覧、代理店と代表する工場

お客様への変更通知ｻｰﾋﾞｽ
Microchipのお客様通知ｻｰﾋﾞｽはMicrochip製品を最新に保つのに役立ちます。加入者は指定した製品系統や興味のある開発ﾂｰﾙに関連する変更、更新、改訂、障害情報がある場合に必ず電子ﾒｰﾙ通知を受け取ります。
登録するにはhttp://www.microchip.com/でMicrochipのｳｪﾌﾞ ｻｲﾄをｱｸｾｽしてください。”Support”下で”Customer Change Notification”をｸﾘｯｸして登録指示に従ってください。

お客様支援
Microchip製品の使用者は以下のいくつかのﾁｬﾈﾙを通して支援を受け取ることができます。
・ 代理店または販売会社
・ 最寄りの営業所
・ 現場応用技術者(FAE:Field Aplication Engineer)・ 技術支援お客様は支援に関してこれらの代理店、販売会社、または現場応用技術者(FAE)に連絡を取るべきです。最寄りの営業所もお客様の手助けに利用できます。営業所と位置の一覧はこの資料の後ろに含まれます。
技術支援はhttp://www.microchip.com/supportでのｳｪﾌﾞ ｻｲﾄを通して利用できます。

Microchipﾃﾞﾊﾞｲｽ ｺｰﾄﾞ保護機能
Microchipﾃﾞﾊﾞｲｽでの以下のｺｰﾄﾞ保護機能の詳細に注意してください。
・ Microchip製品はそれら特定のMicrochipﾃﾞｰﾀｼｰﾄに含まれる仕様に合致します。
・ Microchipは意図した方法と通常条件下で使われる時に、その製品系統が今日の市場でその種類の最も安全な系統の1つであると考えます。
・ ｺｰﾄﾞ保護機能を破るのに使われる不正でおそらく違法な方法があります。当社の知る限りこれらの方法の全てはMicrochipのﾃﾞｰﾀ
ｼｰﾄに含まれた動作仕様外の方法でMicrochip製品を使うことが必要です。おそらく、それを行う人は知的財産の窃盗に関与しています。
・ Microchipはそれらのｺｰﾄﾞの完全性について心配されているお客様と共に働きたいと思います。
・ Microchipや他のどの半導体製造業者もそれらのｺｰﾄﾞの安全を保証することはできません。ｺｰﾄﾞ保護は当社が製品を”破ることができない”として保証すると言うことを意味しません。
ｺｰﾄﾞ保護は常に進化しています。Microchipは当社製品のｺｰﾄﾞ保護機能を継続的に改善することを約束します。Microchipのｺｰﾄﾞ保護機能を破る試みはﾃﾞｼﾞﾀﾙ ﾐﾚﾆｱﾑ著作権法に違反するかもしれません。そのような行為があなたのｿﾌﾄｳｪｱや他の著作物に不正なｱｸｾｽを許す場合、その法律下の救済のために訴権を持つかもしれません。

法的通知
ﾃﾞﾊﾞｲｽ応用などに関してこの刊行物に含まれる情報は皆さまの便宜のためにだけ提供され、更新によって取り換えられるかもしれま
せん。皆さまの応用が皆さまの仕様に合致するのを保証するのは皆さまの責任です。Microchipはその条件、品質、性能、商品性、目的適合性を含め、明示的にも黙示的にもその情報に関連して書面または表記された書面または黙示の如何なる表明や保証もしません。Microchipはこの情報とそれの使用から生じる全責任を否認します。生命維持や安全応用でのMicrochipﾃﾞﾊﾞｲｽの使用は完
全に購入者の危険性で、購入者はそのような使用に起因する全ての損害、請求、訴訟、費用からMicrochipを擁護し、補償し、免責にすることに同意します。他に言及されない限り、Microchipのどの知的財産権下でも暗黙的または違う方法で許認可は譲渡されません。

© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 248頁

ATmega328PB
商標
Microchipの名前とﾛｺﾞ、Mcicrochipﾛｺﾞ、AnyRate、AVR、AVRﾛｺﾞ、AVR Freaks、BeaaconThings、BitCloud、CryptoMemory、CryptoR
F、dsPIC、FlashFlex、flexPWR、Heldo、JukeBlox、KeeLoq、KeeLoqﾛｺﾞ、Kleer、LANCheck、LINK MD、maXStylus、maXTouch、Med
iaLB、megaAVR、MOST、MOSTﾛｺﾞ、MPLAB、OptoLyzer、PIC、picoPower、PICSTART、PIC32ﾛｺﾞ、Prochip Designer、QTouch、Rig
htTouch、SAM-BA、SpyNIC、SST、SSTﾛｺﾞ、SuperFlash、tinyAVR、UNI/O、XMEGAは米国と他の国に於けるMicrochip Technology
Incorporatedの登録商標です。
ClockWorks、The Embedded Control Solutions Company、EtherSynch、Hyper Speed Control、HyperLight Load、IntelliMOS、mTouch、Precision Edge、Quiet-Wireは米国に於けるMicrochip Technology Incorporatedの登録商標です。
Adjacent Key Suppression、AKS、Analog-for-the-Digital Age、Any Capacitor、AnyIn、AnyOut、BodyCom、chipKIT、chipKITﾛｺﾞ、C
odeGuard、CryptoAuthentication、CryptoCompanion、CryptoController、dsPICDEM、dsPICDEM.net、Dynamic Average Matching、
DAM、ECAN、EtherGREEN、In-Circuit Serial Programming、ICSP、Inter-Chip Connectivity、JitterBlocker、KleerNet、KleerNetﾛ
ｺﾞ、Mindi、MiWi、motorBench、MPASM、MPF、MPLAB Certifiedﾛｺﾞ、MPLAB、MPLINK、MultiTRAK、NetDetach、Omniscient Code
Generation、PICDEM、PICDEM.net、PICkit、PICtail、PureSilicon、QMatrix、RightToucpﾛｺﾞ、REAL ICE、Ripple Blocker、SAM-IC
E、Serial Quad I/O、SMART-I.S.、SQI、SuperSwitcher、SuperSwitcher II、Total Endurance、TSHARC、USBCheck、VariSense、View
Sense、WiperLock、Wireless DNA、ZENAは米国と他の国に於けるMicrochip Technology Incorporatedの商標です。
SQTPは米国に於けるMicrochip Technology Incorporatedの役務標章です。
Silicon Storage Technologyは他の国に於けるMicrochip Technology Inc.の登録商標です。
GestICは他の国に於けるMicrochip Technology Inc.の子会社であるMicrochip Technology Germany II GmbH & Co. KGの登録商標です。
ここで言及した以外の全ての商標はそれら各々の会社の所有物です。
© 2018年、Microchip Technology Incorporated、米国印刷、不許複製

DNVによって認証された品質管理ｼｽﾃﾑ
ISO/TS 16949
Microchipはその世界的な本社、ｱﾘｿﾞﾅ州のﾁｬﾝﾄﾞﾗｰとﾃﾝﾍﾟ、ｵﾚｺﾞﾝ州ｸﾞﾗｼｬﾑの設計とｳｪﾊｰ製造設備とｶﾘﾌｫﾙﾆｱとｲﾝﾄﾞの設計ｾﾝﾀｰに対してISO/TS-16949：2009認証を取得しました。当社の品質ｼｽﾃﾑの処理と手続きはPIC® MCUとdsPIC® DSC、KEELOQ符号
飛び回りﾃﾞﾊﾞｲｽ、直列EEPROM、ﾏｲｸﾛ周辺機能、不揮発性ﾒﾓﾘ、ｱﾅﾛｸﾞ製品用です。加えて、開発ｼｽﾃﾑの設計と製造のためのMic
rochipの品質ｼｽﾃﾑはISO 9001：2000認証取得です。

日本語© HERO 2021.
本ﾃﾞｰﾀｼｰﾄはMicrochipのATmega328PB英語版ﾃﾞｰﾀｼｰﾄ(DS40001906C-2018年2月)の翻訳日本語版です。日本語では不自然となる重複する形容表現は省略されている場合があります。日本語では難解となる表現は大幅に意訳されている部分もあります。必要に応じて一部加筆されています。頁割の変更により、原本より頁数が少なくなっています。
汎用入出力ﾎﾟｰﾄの出力ﾃﾞｰﾀ ﾚｼﾞｽﾀとﾋﾟﾝ入力は、対応関係からの理解の容易さから出力ﾚｼﾞｽﾀと入力ﾚｼﾞｽﾀで統一表現されています。一部の用語がより適切と思われる名称に変更されています。必要と思われる部分には( )内に英語表記や略称などを残す形で表記しています。
青字の部分はﾘﾝｸとなっています。一般的に赤字の0,1は論理0,1を表します。その他の赤字は重要な部分を表します。
原書に対して若干構成が異なるため、一部の節/項番号が異なります。
© 2018 Microchip Technology Inc.

完全ﾃﾞｰﾀｼｰﾄ

DS40001906C - 249頁

世界的な販売とサービス
米国
本社2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
技術支援:
http://www.microchip.com/
supportｳｪﾌﾞ ｱﾄﾞﾚｽ:www.microchip.com
ｱﾄﾗﾝﾀ
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
ｵｰｽﾁﾝ TX
Tel: 512-257-3370
ﾎﾞｽﾄﾝ
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
ｼｶｺﾞ
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
ﾀﾞﾗｽ
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
ﾃﾞﾄﾛｲﾄNovi, MI
Tel: 248-848-4000
ﾋｭｰｽﾄﾝ TX
Tel: 281-894-5983
ｲﾝﾃﾞｱﾅﾎﾟﾘｽ
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Tel: 317-536-2380
ﾛｻﾝｾﾞﾙｽ
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
Tel: 951-273-7800
ﾛｰﾘｰ NC
Tel: 919-844-7510
ﾆｭｰﾖｰｸ NY
Tel: 631-435-6000
ｻﾝﾎｾ CA
Tel: 408-735-9110
Tel: 408-436-4270
ｶﾅﾀﾞ - ﾄﾛﾝﾄ
Tel: 905-695-1980
Fax: 905-695-2078© 2018 Microchip Technology Inc.

亜細亜/太平洋

亜細亜/太平洋

ｵｰｽﾄﾗﾘｱ - ｼﾄﾞﾆｰ
Tel: 61-2-9868-6733
中国 - 北京
Tel: 86-10-8569-7000
中国 - 成都
Tel: 86-28-8665-5511
中国 - 重慶
Tel: 86-23-8980-9588
中国 - 東莞Tel: 86-769-8702-9880
中国 - 広州
Tel: 86-20-8755-8029
中国 - 杭州
Tel: 86-571-8792-8115
中国 - 香港特別行政区
Tel: 852-2943-5100
中国 - 南京
Tel: 86-25-8473-2460
中国 - 青島
Tel: 86-532-8502-7355
中国 - 上海
Tel: 86-21-3326-8000
中国 - 瀋陽
Tel: 86-24-2334-2829
中国 - 深圳Tel: 86-755-8864-2200
中国 - 蘇州
Tel: 86-186-6233-1526
中国 - 武漢
Tel: 86-27-5980-5300
中国 - 西安
Tel: 86-29-8833-7252
中国 - 廈門
Tel: 86-592-2388138
中国 - 珠海
Tel: 86-756-3210040

ｲﾝﾄﾞ - ﾊﾝｶﾞﾛｰﾙ
Tel: 91-80-3090-4444
ｲﾝﾄﾞ - ﾆｭｰﾃﾞﾘｰ
Tel: 91-11-4160-8631
ｲﾝﾄﾞ - ﾌﾟﾈｰ
Tel: 91-20-4121-0141
日本 - 大阪
Tel: 81-6-6152-7160
日本 - 東京
Tel: 81-3-6880-3770
韓国 - 大邱
Tel: 82-53-744-4301
韓国 - ｿｳﾙ
Tel: 82-2-554-7200
ﾏﾚｰｼｱ - ｸｱﾗﾙﾝﾌﾟｰﾙ
Tel: 60-3-7651-7906
ﾏﾚｰｼｱ - ﾍﾟﾅﾝ
Tel: 60-4-227-8870
ﾌｨﾘﾋﾟﾝ - ﾏﾆﾗ
Tel: 63-2-634-9065
ｼﾝｶﾞﾎﾟｰﾙ
Tel: 65-6334-8870
台湾 - 新竹
Tel: 886-3-577-8366
台湾 - 高雄
Tel: 886-7-213-7830
台湾 - 台北
Tel: 886-2-2508-8600
ﾀｲ - ﾊﾞﾝｺｸ
Tel: 66-2-694-1351
ﾍﾞﾄﾅﾑ - ﾎｰﾁﾐﾝ
Tel: 84-28-5448-2100

完全ﾃﾞｰﾀｼｰﾄ

欧州
ｵｰｽﾄﾘｱ - ｳﾞｪﾙｽ
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
ﾃﾞﾝﾏｰｸ - ｺﾍﾟﾝﾊｰｹﾞﾝ
Tel: 45-4450-2828
Fax: 45-4485-2829
ﾌｨﾝﾗﾝﾄﾞ - ｴｽﾎﾟｰ
Tel: 358-9-4520-820
ﾌﾗﾝｽ - ﾊﾟﾘ
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
ﾄﾞｲﾂ - ｶﾞﾙﾋﾝｸﾞ
Tel: 49-8931-9700
ﾄﾞｲﾂ - ﾊｰﾝ
Tel: 49-2129-3766400
ﾄﾞｲﾂ - ﾊｲﾙﾌﾞﾛﾝ
Tel: 49-7131-67-3636
ﾄﾞｲﾂ - ｶｰﾙｽﾙｰｴ
Tel: 49-721-625370
ﾄﾞｲﾂ - ﾐｭﾝﾍﾝ
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
ﾄﾞｲﾂ - ﾛｰｾﾞﾝﾊｲﾑ
Tel: 49-8031-354-560
ｲｽﾗｴﾙ - ﾗｰﾅﾅ
Tel: 972-9-744-7705
ｲﾀﾘｱ - ﾐﾗﾉ
Tel: 39-0331-742611
Fax: 39-0331-466781
ｲﾀﾘｱ - ﾊﾟﾄﾞﾊﾞ
Tel: 39-049-7625286
ｵﾗﾝﾀﾞ - ﾃﾞﾙｰﾈﾝ
Tel: 31-416-690399
Fax: 31-416-690340
ﾉﾙｳｪｰ - ﾄﾛﾝﾊｲﾑ
Tel: 47-7289-7561
ﾎﾟｰﾗﾝﾄﾞ - ﾜﾙｼｬﾜ
Tel: 48-22-3325737
ﾙｰﾏﾆｱ - ﾌﾞｶﾚｽﾄ
Tel: 40-21-407-87-50
ｽﾍﾟｲﾝ - ﾏﾄﾞﾘｰﾄﾞ
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
ｽｳｪｰﾃﾞﾝ - ｲｪｰﾃﾎﾞﾘ
Tel: 46-31-704-60-40
ｽｳｪｰﾃﾞﾝ - ｽﾄｯｸﾎﾙﾑ
Tel: 46-8-5090-4654
ｲｷﾞﾘｽ - ｳｫｰｷﾝｶﾞﾑ
Tel: 44-118-921-5800
Fax: 44-118-921-5820

DS40001906C - 250頁