pic16(l)f1516/7/8/9 data...

376
2013 Microchip Technology Inc. DS41452C_JP - p.1 このデータシートに記載されているデバイス 高性能 RISC CPU: •C コンパイラ向けに最適化されたアーキテクチャ わずか 49 個の命令 最大 28 KB のリニア プログラムメモリ アドレッシ ング 最大 1024 バイトのリニア データメモリ アドレッ シング 動作速度 : - DC 20 MHz クロック入力 (@ 2.5 V) - DC 16 MHz クロック入力 (@ 1.8 V) - DC 200 ns 命令サイクル 割り込み機能、自動コンテキスト保存機能付き • 16 レベルのハードウェア スタック、オーバーフ ロー / アンダーフロー リセット付き 直接、間接、相対アドレッシング モード : -2 つのフル 16 ビットファイル選択レジスタ (FSR) - FSR はプログラムメモリとデータメモリの読み 出しが可能 柔軟なオシレータ構造 : 16 MHz 内部オシレータ ブロック : - 動作周波数はソフトウェアで 16 MHz 31 kHz のレンジ内で選択可能 • 31 kHz 低消費電力内部オシレータ 以下の機能を備えた外部オシレータ ブロック : - 最大 20 MHz 4 つの水晶振動子 / 振動子モード - 最大 20 MHz 3 つの外部クロックモード フェイルセーフ クロックモニタ - 周辺モジュールのクロックが停止した場合、安全 にシャットダウン オシレータ 2 段階起動 オシレータ起動タイマ (OST) アナログ機能 : • A/D コンバータ (ADC): - 10 ビット分解能 - 最大 28 チャンネル - 自動アクイジション機能 - スリープ時も変換可能 参照電圧モジュール : - 固定参照電圧 (FVR) - 出力レベルは 1.024 V2.048 V4.096 V 温度インジケータ XLP による PIC16LF1516/7/8/9 の超低消費 電力管理 : スリープ : 1.8 V 20 nA (typ.) ウォッチドッグ タイマ : 1.8 V 300 nA (typ.) セカンダリ オシレータ : 32 kHz 600 nA 動作時電流 : 30 A/MHz @ 1.8 V (typ.) 特殊なマイクロコントローラ機能 : 動作電圧レンジ : - 2.3 5.5 V (PIC16F1516/7/8/9) - 1.8 3.6 V (PIC16LF1516/7/8/9) ソフトウェア制御による自己プログラムが可能 パワーオン リセット (POR) パワーアップ タイマ (PWRT) 低消費電力ブラウンアウト リセット (LPBOR) 拡張ウォッチドッグ タイマ (WDT) •2 本のピンを介してのインサーキット シリアル ログラミング ™ (ICSP™) •2 本のピンを介してのインサーキット デバッグ (ICD) 拡張低電圧プログラミング (LVP) プログラマブルなコード保護 低消費電力スリープ 書き込み耐性の高い 128 バイトフラッシュ : - フラッシュ書き込み耐性 100,000 ( 最低 ) 周辺機能の特長 : 最大 35 本の I/O ピンと 1 本の入力専用ピン : - 高電流シンク / ソース 25 mA/25 mA - 個別にプログラム可能な弱プルアップ - 個別にプログラム可能な状態変化割り込み (IOC) ピン Timer0: 8 ビット プリスケーラ付き 8 ビットタイマ / カウンタ 拡張 Timer1: - プリスケーラ付き 16 ビットタイマ / カウンタ - 拡張ゲート入力モード - 低消費電力 32 kHz セカンダリ オシレータ ドラ イバ Timer2: 8 ビット周期レジスタ、プリスケーラ、 ポストスケーラ付き 8 ビットタイマ / カウンタ •2 つのキャプチャ / コンペア (CCP) モジュール : 以下の機能を備えたマスタ同期シリアルポート (MSSP)SPI I 2 C TM 付き : -7 ビットのアドレス マスキング - SMBus/PMBus TM 互換 EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter) モジュール : - RS-232RS-485LIN 互換 - 自動 baud レート検出 - スタート時に自動復帰 • PIC16F1516 • PIC16LF1516 • PIC16F1517 • PIC16LF1517 • PIC16F1518 • PIC16LF1518 • PIC16F1519 • PIC16LF1519 PIC16(L)F1516/7/8/9 XLP テクノロジ採用 28/40/44 ピン フラッシュ マイクロコントローラ 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Upload: others

Post on 23-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

XLPテクノロジ採用 28/40/44ピン フラッシュ マイクロコントローラ

注意 : この日本語版文書は参考資料としてご利用ください。 新情報は必ずオリジナルの英語版をご参照願います。

このデータシートに記載されているデバイス

高性能 RISC CPU:• C コンパイラ向けに 適化されたアーキテクチャ• わずか 49 個の命令• 大 28 KB のリニア プログラムメモリ アドレッシング

• 大 1024 バイトのリニア データメモリ アドレッシング

• 動作速度 :- DC ~ 20 MHz クロック入力 (@ 2.5 V)- DC ~ 16 MHz クロック入力 (@ 1.8 V)- DC ~ 200 ns 命令サイクル

• 割り込み機能、自動コンテキスト保存機能付き• 16 レベルのハードウェア スタック、オーバーフ

ロー / アンダーフロー リセット付き• 直接、間接、相対アドレッシング モード :

- 2 つのフル 16 ビットファイル選択レジスタ (FSR)- FSR はプログラムメモリとデータメモリの読み出しが可能

柔軟なオシレータ構造 :• 16 MHz 内部オシレータ ブロック :

- 動作周波数はソフトウェアで 16 MHz ~ 31 kHzのレンジ内で選択可能

• 31 kHz 低消費電力内部オシレータ • 以下の機能を備えた外部オシレータ ブロック :

- 大 20 MHz の 4 つの水晶振動子 / 振動子モード- 大 20 MHz の 3 つの外部クロックモード

• フェイルセーフ クロックモニタ- 周辺モジュールのクロックが停止した場合、安全にシャットダウン

• オシレータ 2 段階起動• オシレータ起動タイマ (OST)

アナログ機能 :• A/D コンバータ (ADC):

- 10 ビット分解能- 大 28 チャンネル- 自動アクイジション機能- スリープ時も変換可能

• 参照電圧モジュール :- 固定参照電圧 (FVR) - 出力レベルは 1.024 V、

2.048 V、4.096 V• 温度インジケータ

XLP による PIC16LF1516/7/8/9 の超低消費電力管理 :• スリープ : 1.8 V で 20 nA (typ.)• ウォッチドッグ タイマ : 1.8 V で 300 nA (typ.)• セカンダリ オシレータ : 32 kHz で 600 nA• 動作時電流 : 30 A/MHz @ 1.8 V (typ.)

特殊なマイクロコントローラ機能 :• 動作電圧レンジ :

- 2.3 ~ 5.5 V (PIC16F1516/7/8/9)- 1.8 ~ 3.6 V (PIC16LF1516/7/8/9)

• ソフトウェア制御による自己プログラムが可能• パワーオン リセット (POR)• パワーアップ タイマ (PWRT)• 低消費電力ブラウンアウト リセット (LPBOR)• 拡張ウォッチドッグ タイマ (WDT)• 2 本のピンを介してのインサーキット シリアル プログラミング ™ (ICSP™)

• 2 本のピンを介してのインサーキット デバッグ (ICD)• 拡張低電圧プログラミング (LVP)• プログラマブルなコード保護• 低消費電力スリープ• 書き込み耐性の高い 128 バイトフラッシュ :

- フラッシュ書き込み耐性 100,000 回 ( 低 )

周辺機能の特長 :• 大 35 本の I/O ピンと 1 本の入力専用ピン :

- 高電流シンク / ソース 25 mA/25 mA- 個別にプログラム可能な弱プルアップ- 個別にプログラム可能な状態変化割り込み (IOC)ピン

• Timer0: 8 ビット プリスケーラ付き 8 ビットタイマ /カウンタ

• 拡張 Timer1:- プリスケーラ付き 16 ビットタイマ / カウンタ- 拡張ゲート入力モード- 低消費電力 32 kHz セカンダリ オシレータ ドライバ

• Timer2: 8 ビット周期レジスタ、プリスケーラ、ポストスケーラ付き 8 ビットタイマ / カウンタ

• 2 つのキャプチャ / コンペア (CCP) モジュール :• 以下の機能を備えたマスタ同期シリアルポート

(MSSP)、SPI と I2CTM 付き :- 7 ビットのアドレス マスキング- SMBus/PMBusTM 互換

• EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter) モジュール :- RS-232、RS-485、LIN 互換- 自動 baud レート検出- スタート時に自動復帰

• PIC16F1516 • PIC16LF1516

• PIC16F1517 • PIC16LF1517

• PIC16F1518 • PIC16LF1518

• PIC16F1519 • PIC16LF1519

2013 Microchip Technology Inc. DS41452C_JP - p.1

Page 2: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

PIC16(L)F151X/152X ファミリの種類

デバイス名データシート

インデックス

プログラムメモリ

フラッシュ

(ワード

)

データ

SR

AM

(byt

e)

I/O

数(2

)

ADC

タイマ数

(8/1

6ビット

)

EU

SA

RT

MS

SP

(I2

C™

/SP

I)

CC

P

デバッグ

(1)

XL

P

10ビット

(ch

)

先進の制御

PIC16(L)F1512 (1) 2048 128 25 17 Y 2/1 1 1 2 I Y

PIC16(L)F1513 (1) 4096 256 25 17 Y 2/1 1 1 2 I Y

PIC16(L)F1516 (2) 8192 512 25 17 N 2/1 1 1 2 I Y

PIC16(L)F1517 (2) 8192 512 36 28 N 2/1 1 1 2 I Y

PIC16(L)F1518 (2) 16384 1024 25 17 N 2/1 1 1 2 I Y

PIC16(L)F1519 (2) 16384 1024 36 28 N 2/1 1 1 2 I Y

PIC16(L)F1526 (3) 8192 768 54 30 N 6/3 2 2 10 I Y

PIC16(L)F1527 (3) 16384 1536 54 30 N 6/3 2 2 10 I Y

Note 1: I - デバッグ機能内蔵、H - デバッグヘッダを使ってデバッグ可能

2: 1 本は入力専用です。

データシート インデックス : ( 本書では、網掛けしていないデバイスについて説明します。)

1: DS41624 PIC16(L)F1512/13 データシート、28 ピンフラッシュ、8 ビット マイクロコントローラ

2: DS41452 PIC16(L)F1516/7/8/9 データシート、28/40/44 ピンフラッシュ、8 ビット MCU

3: DS41458 PIC16(L)F1526/27 データシート、64 ピンフラッシュ、8 ビット MCU

Note: その他の小型パッケージの在庫 / 供給状況とマーキング情報は、http://www.microchip.com/packaging を参照するか、弊社までお問い合わせください。

DS41452C_JP - p.2 2013 Microchip Technology Inc.

Page 3: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 1: PIC16(L)F1516/1518 の 28 ピン SPDIP、SOIC、SSOP パッケージ図

図 2: PIC16(L)F1516/1518 の 28 ピン UQFN (4x4) パッケージ図

28-Pin SPDIP, SOIC, SSOP

PIC

16F

151

6/15

18

PIC

16L

F15

16/1

518

1

2

3

4

5

6

7

8

9

10

VPP/MCLR/RE3

RA0

RA1

RA2

RA3

RA4

RA5

RB6/ICSPCLK

RB5

RB4

RB3

RB2

RB1

RB0

VDD

VSS

11

12

13

14 15

16

17

18

19

20

28

27

26

25

24

23

22

21VSS

RA7

RA6

RC0

RC1

RC2

RC3

RC5

RC4

RC7

RC6

RB7/ICSPDAT

Note: 周辺機能の配置の詳細は、表 1 を参照してください。

23

6

1

18192021

1571617

RC

0

54

RB

7/IC

SP

DA

TR

B6/

ICS

PC

LKR

B5

RB

4

RB3RB2RB1RB0VDD

VSS

RC7

RC

6R

C5

RC

4

RE

3/M

CL

R/V

PP

RA

0

RA

1

RA2RA3RA4RA5VSS

RA7RA6

RC

1

RC

2R

C3

9 10 138 141211

27 26 2328 222425

PIC16F1516/1518

PIC16LF1516/1518

28-Pin UQFN

Note: 周辺機能の配置の詳細は、表 1 を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.3

Page 4: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 3: PIC16(L)F1517/1519 の 40 ピン PDIP パッケージ図

40-Pin PDIP

PIC

16F

151

7/15

19

PIC

16L

F15

17/1

519

2

3

4

5

6

7

8

9

10

VPP/MCLR/RE3

RA0

RA1

RA2

RA3

RA4

RA5

RE0

RE1

RE2

RB6/ICSPCLK

RB5

RB4

RB3

RB2

RB1

RB0

VDD

VSS

RD2

11

12

13

14

15

16

17

18

19

20

40

39

38

37

36

35

34

33

32

31

30

29

28

27

26

25

24

23

22

21

VDD

VSS

RA7

RA6

RC0

RC1

RC2

RC3

RD0

RD1

RC5

RC4

RD3

RD4

RC7

RC6

RD7

RD6

RD5

RB7/ICSPDAT1

Note: 周辺機能の配置の詳細は、表 1 を参照してください。

DS41452C_JP - p.4 2013 Microchip Technology Inc.

Page 5: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 4: PIC16(L)F1517/1519 の 40 ピン UQFN (5x5) パッケージ図

図 5: PIC16(L)F1517/1519 の 44 ピン TQFP パッケージ図

10

23456

1

17 18 19 2011 12 13 14

34

87

40 39 38 37 36 3515 16

2627282930

2122232425

32 31

9

33R

A1

RA

0V

PP/M

CLR

/RE

3

RB

3

ICS

PD

AT

/RB

7IC

SP

CLK

/RB

6R

B5

RB

4R

C6

RC

5R

C4

RD

3R

D2

RD

1R

D0

RC

3R

C2

RC

1

RC0

RA7VSS

VDDRE2RE1RE0RA5

RC7RD4RD5RD6RD7VSS

VDD

RB0RB1RB2

40-Pin UQFN

RA

3R

A2

PIC16F1517/1519PIC16LF1517/1519

RA6

RA4

Note: 周辺機能の配置の詳細は、表 1 を参照してください。

1011

23

6

1

18 19 20 21 2212 13 14 15

38

87

44 43 42 41 40 3916 17

2930313233

232425262728

36 3435

9

37

RA

3R

A2

RA

1R

A0

RE

3

NC

ICS

PD

AT

/RB

7IC

SP

CLK

/RB

6R

B5

RB

4N

C

NC

NCRC0

VSSVDD

RB0RB1RB2RB3

54

44-Pin TQFP

RA6RA7VSS

VDD

RE2RE1RE0RA5RA4

RC7RD4RD5RD6RD7

RC

6R

C5

RC

4R

D3

RD

2R

D1

RD

0R

C3

RC

2R

C1

PIC16F1517/1519PIC16LF1517/1519

Note: 周辺機能の配置の詳細は、表 1 を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.5

Page 6: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 1: 28/40/44 ピン割り当て表I/

O

28ピン

SP

DIP、

SO

IC、

SS

OP

28ピン

UQ

FN

40ピン

PD

IP

40ピン

UQ

FN

44ピン

TQ

FP

AD

C

タイマ

CC

P

EU

SA

RT

MS

SP

割り込み

プルアップ

標準設定

RA0 2 27 2 17 19 AN0 - - - SS(2) - - -

RA1 3 28 3 18 20 AN1 - - - - - - -

RA2 4 1 4 19 21 AN2 - - - - - - -

RA3 5 2 5 20 22 AN3/VREF+ - - - - - - -

RA4 6 3 6 21 23 - T0CKI - - - - - -

RA5 7 4 7 22 24 AN4 - - - SS(1) - - VCAP

RA6 10 7 14 29 31 - - - - - - - OSC2/CLKOUT

RA7 9 6 13 28 30 - - - - - - - OSC1/CLKIN

RB0 21 18 33 8 8 AN12 - - - - INT/IOC Y -

RB1 22 19 34 9 9 AN10 - - - - IOC Y -

RB2 23 20 35 10 10 AN8 - - - - IOC Y -

RB3 24 21 36 11 11 AN9 - CCP2(2) - - IOC Y -

RB4 25 22 37 12 14 AN11 - - - - IOC Y -

RB5 26 23 38 13 15 AN13 T1G - - - IOC Y -

RB6 27 24 39 14 16 - - - - - IOC Y ICSPCLK/ICDCLK

RB7 28 25 40 15 17 - - - - - IOC Y ICSPDAT/ICDDAT

RC0 11 8 15 30 32 - SOSCO/T1CKI - - - - - -

RC1 12 9 16 31 35 - SOSCI CCP2(1) - - - - -

RC2 13 10 17 32 36 AN14 - CCP1 - - - - -

RC3 14 11 18 33 37 AN15 - - - SCK/SCL - - -

RC4 15 12 23 38 42 AN16 - - - SDI/SDA - - -

RC5 16 13 24 39 43 AN17 - - - SDO - - -

RC6 17 14 25 40 44 AN18 - - TX/CK - - - -

RC7 18 15 26 1 1 AN19 - - RX/DT - - - -

RD0(3) - - 19 34 38 AN20 - - - - - - -

RD1(3) - - 20 35 39 AN21 - - - - - - -

RD2(3) - - 21 36 40 AN22 - - - - - - -

RD3(3) - - 22 37 41 AN23 - - - - - - -

RD4(3) - - 27 2 2 AN24 - - - - - - -

RD5(3) - - 28 3 3 AN25 - - - - - - -

RD6(3) - - 29 4 4 AN26 - - - - - - -

RD7(3) - - 30 5 5 AN27 - - - - - - -

RE0(3) - - 8 23 25 AN5 - - - - - - -

RE1(3) - - 9 24 26 AN6 - - - - - - -

RE2(3) - - 10 25 27 AN7 - - - - - - -

RE3 1 26 1 16 18 - - - - - - Y MCLR/VPP

VDD 20 17 11,32

7,26

7,28

- - - - - - - -

VSS 8,19

5,16

12,31

6,27

6,29

- - - - - - - -

NC - - - - 12,13,33,34

- - - - - - - -

Note 1: ペリフェラルピンの位置は APFCON レジスタを使って選択します。これは既定値の位置です。

2: ペリフェラルピンの位置は APFCON レジスタを使って選択します。これは代替の位置です。

3: PIC16(L)F1517/9 の場合のみです。

DS41452C_JP - p.6 2013 Microchip Technology Inc.

Page 7: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

目次

1.0 デバイス概要................................................................................................................................................................................ 92.0 エンハンスト ミッドレンジ CPU............................................................................................................................................... 153.0 メモリ構成 ................................................................................................................................................................................. 174.0 デバイス コンフィグレーション ................................................................................................................................................ 415.0 オシレータ モジュール ( フェイルセーフ クロックモニタ機能付き ) ....................................................................................... 476.0 リセット ..................................................................................................................................................................................... 637.0 割り込み ..................................................................................................................................................................................... 718.0 パワーダウン モード ( スリープ ) .............................................................................................................................................. 819.0 低ドロップアウト (LDO) 電圧レギュレータ .............................................................................................................................. 8510.0 ウォッチドッグ タイマ (WDT)................................................................................................................................................... 8711.0 フラッシュ プログラムメモリ制御 ............................................................................................................................................ 9112.0 I/O ポート ................................................................................................................................................................................. 10713.0 状態変化割り込み..................................................................................................................................................................... 12714.0 固定参照電圧 (FVR) ................................................................................................................................................................. 13115.0 温度インジケータ モジュール.................................................................................................................................................. 13316.0 A/D コンバータ (ADC) モジュール........................................................................................................................................... 13517.0 Timer0 モジュール ................................................................................................................................................................... 14918.0 Timer1 モジュール ( ゲート制御対応 ) ..................................................................................................................................... 15319.0 Timer2 モジュール ................................................................................................................................................................... 16520.0 キャプチャ / コンペア /PWM モジュール................................................................................................................................. 16921.0 マスタ同期シリアルポート (MSSP) モジュール...................................................................................................................... 17922.0 拡張 USART (EUSART: Enhanced Universal Synchronous Asynchronous Receiver Transmitter)......................................... 23323.0 インサーキット シリアル プログラミング (ICSP™: In-Circuit Serial Programming™)........................................................... 26324.0 命令セットのまとめ ................................................................................................................................................................. 26525.0 電気的仕様 ............................................................................................................................................................................... 27926.0 DC および AC 特性の図表........................................................................................................................................................ 31127.0 開発サポート............................................................................................................................................................................ 34328.0 パッケージ情報 ........................................................................................................................................................................ 347補遺 A: データシート改版履歴........................................................................................................................................................ 363索引 ................................................................................................................................................................................................... 365マイクロチップ社ウェブサイト......................................................................................................................................................... 371お客様向け変更通知サービス ............................................................................................................................................................ 371カスタマサポート .............................................................................................................................................................................. 371お客様アンケート .............................................................................................................................................................................. 372製品識別システム .............................................................................................................................................................................. 373

2013 Microchip Technology Inc. DS41452C_JP - p.7

Page 8: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

大切なお客様へ

マイクロチップ・テクノロジー社は、大切なお客様にマイクロチップ社製品を適切にご使用頂くために、 高品質の文書を提供

する事を心掛けています。このため、弊社はお客様のニーズにより的確に応える事ができるように、文書の改善を続けており、

新刊、更新版を発表するごとに内容の見直しと充実を図っています。

本書に関してご質問またはご意見がございましたら、マーケティング コミュニケーション部宛てにメールまたは FAX でご連絡

ください。メールの宛先は [email protected]、FAX 番号は (480) 792-4150 です。FAX の場合、本書の巻末にある「お

客様アンケート」フォームをご利用ください。皆様からのご意見をお待ちしております。

新のデータシート

本書の 新版を入手するには、弊社ウェブサイトにご登録ください。

www.microchip.com

データシートのバージョンは、各ページの欄外下隅に記載されている文書番号で確認できます。文書番号の 後の文字がバージョン番号です ( 例 : DS30000A であれば文書 DS30000 のバージョン A)。

エラッタ

現行のデバイスに対して、データシートとの動作上の微妙な相違点や推奨回避策を説明したエラッタシートが発行される場合があります。エラッタは、デバイスや文書に関する問題が認識された時点で発行されます。エラッタには、該当するシリコンと文書のリビジョンを明記しています。

特定のデバイス向けにエラッタシートが存在するかどうかは、以下の方法で確認できます。

• マイクロチップ社のウェブサイト : www.microchip.com• 寄のマイクロチップ社営業所 ( 本書の 終ページ参照 )

お問い合わせの際は、ご使用のデバイス、シリコンとデータシートのリビジョン ( 文書番号含む ) をお知らせください。

お客様向け通知システム

弊社ウェブサイト (www.microchip.com) にご登録頂いたお客様には、弊社全製品に関する 新情報をお届けします。

DS41452C_JP - p.8 2013 Microchip Technology Inc.

Page 9: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

1.0 デバイス概要

本データシートでは、PIC16(L)F1516/7/8/9 について説明します。図 1-1 に PIC16(L)F1516/7/8/9 のブロック図を示します。表 1-2 は、ピンの説明です。

各デバイスで利用可能な周辺機能については、表 1-1を参照してください。

表 1-1: デバイスの周辺機能一覧

周辺機能

PIC

16(L

)F15

16

PIC

16(L

)F15

17

PIC

16(L

)F15

18

PIC

16(L

)F15

19

A/D コンバータ (ADC) ● ● ● ●

固定参照電圧 (FVR) ● ● ● ●

温度インジケータ ● ● ● ●

キャプチャ / コンペア /PWM モジュール

CCP1 ● ● ● ●

CCP2 ● ● ● ●

EUSART

EUSART ● ● ● ●

マスタ同期シリアルポート

MSSP ● ● ● ●

タイマ

Timer0 ● ● ● ●

Timer1 ● ● ● ●

Timer2 ● ● ● ●

2013 Microchip Technology Inc. DS41452C_JP - p.9

Page 10: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 1-1: PIC16(L)F1516/7/8/9 のブロック図

PORTB

Timer2MSSP

Timer0

CCP2

ADC10-BitCCP1

Note 1: 周辺機能の詳細は、各機能に対応する章を参照してください。

2: 各デバイスで利用可能な周辺機能については、表 1-1 を参照してください。

3: PIC16(L)F1517/9 の場合のみです。

4: RE<2:0>、PIC16(L)F1517/9 の場合のみです。

CPU

ProgramFlash Memory

PORTARAM

TimingGeneration

INTRCOscillator

MCLR

( 図 2-1)

Timer1

OSC1/CLKIN

OSC2/CLKOUT

FVR

PORTC

PORTD(3)

PORTE(4)

Temp.Indicator

EUSART

DS41452C_JP - p.10 2013 Microchip Technology Inc.

Page 11: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 1-2: ピンの説明

ピン名 機能 入力タイプ 出力タイプ 説明

RA0/AN0/SS(2) RA0 TTL CMOS 汎用 I/O

AN0 AN - ADC チャンネル 0 入力

SS ST - スレーブセレクト入力

RA1/AN1 RA1 TTL CMOS 汎用 I/O

AN1 AN - ADC チャンネル 1 入力

RA2/AN2 RA2 TTL CMOS 汎用 I/O

AN2 AN - ADC チャンネル 2 入力

RA3/AN3/VREF+ RA3 TTL CMOS 汎用 I/O

AN3 AN - ADC チャンネル 3 入力

VREF+ AN - ADC 正側参照電圧入力

RA4/T0CKI RA4 TTL CMOS 汎用 I/O

T0CKI ST - Timer0 クロック入力

RA5/AN4/SS(1)/VCAP RA5 TTL CMOS 汎用 I/O

AN4 AN - ADC チャンネル 4 入力

SS ST - スレーブセレクト入力

VCAP 電源 電源 電圧レギュレータ用フィルタ コンデンサ

(PIC16F1516/7/8/9 のみ )

RA6/OSC2/CLKOUT RA6 TTL CMOS 汎用 I/O

OSC2 - XTAL 水晶振動子 / セラミック振動子 (LP、XT、HS モード )

CLKOUT - CMOS FOSC/4 出力

RA7/OSC1/CLKIN RA7 TTL CMOS 汎用 I/O

OSC1 XTAL - 水晶振動子 / セラミック振動子 (LP、XT、HS モード )

CLKIN ST - 外部クロック入力 (EC モード )

RB0/AN12/INT RB0 TTL CMOS IOC および WPU 付き汎用 I/O

AN12 AN - ADC チャンネル 12 入力

INT ST - 外部割り込み

RB1/AN10 RB1 TTL CMOS IOC および WPU 付き汎用 I/O

AN10 AN - ADC チャンネル 10 入力

RB2/AN8 RB2 TTL CMOS IOC および WPU 付き汎用 I/O

AN8 AN - ADC チャンネル 8 入力

RB3/AN9/CCP2(2) RB3 TTL CMOS IOC および WPU 付き汎用 I/O

AN9 AN - ADC チャンネル 9 入力

CCP2 ST CMOS キャプチャ / コンペア /PWM 2

RB4/AN11 RB4 TTL CMOS IOC および WPU 付き汎用 I/O

AN11 AN - ADC チャンネル 11 入力

RB5/AN13/T1G RB5 TTL CMOS IOC および WPU 付き汎用 I/O

AN13 AN - ADC チャンネル 13 入力

T1G ST - Timer1 ゲート入力

RB6/ICSPCLK RB6 TTL CMOS IOC および WPU 付き汎用 I/O

ICSPCLK ST CMOS インサーキット データ I/O

RB7/ICSPDAT RB7 TTL CMOS IOC および WPU 付き汎用 I/O

ICSPDAT ST CMOS ICSP™ データ I/O

凡例 : AN = アナログ入出力 CMOS = CMOS 互換入出力

OD = オープンドレイン TTL = TTL 互換入力

ST = CMOS レベルのシュミットトリガ入力レベル I2C™ = I2C レベルのシュミットトリガ入力レベル

HV = 高電圧 (High Voltage) XTAL = 水晶振動子

Note 1: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは既定値の位置です。

2: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは代替の位置です。

3: PORTD と RE<2:0> は PIC16(L)F1517/9 の場合でのみ使えます。

2013 Microchip Technology Inc. DS41452C_JP - p.11

Page 12: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

RC0/SOSCO/T1CKI RC0 ST CMOS 汎用 I/O

SOSCO - XTAL セカンダリ オシレータ接続

T1CKI ST - Timer1 クロック入力

RC1/SOSCI/CCP2(1) RC1 ST CMOS 汎用 I/O

SOSCI - XTAL セカンダリ オシレータ接続

CCP2 ST CMOS キャプチャ / コンペア /PWM 2

RC2/AN14/CCP1 RC2 ST CMOS 汎用 I/O

AN14 AN - ADC チャンネル 14 入力

CCP1 ST CMOS キャプチャ / コンペア /PWM 1

RC3/AN15/SCK/SCL RC3 ST CMOS 汎用 I/O

AN15 AN - ADC チャンネル 15 入力

SCK ST CMOS SPI クロック

SCL I2C™ OD I2C™ クロック

RC4/AN16/SDI/SDA RC4 ST CMOS 汎用 I/O

AN16 AN - ADC チャンネル 16 入力

SDI ST - SPI データ入力

SDA I2C™ OD I2C™ データ入力 / 出力

RC5/AN17/SDO RC5 ST CMOS 汎用 I/O

AN17 AN - ADC チャンネル 17 入力

SDO - CMOS SPI データ出力

RC6/AN18/TX/CK RC6 ST CMOS 汎用 I/O

AN18 AN - ADC チャンネル 18 入力

TX - CMOS USART 非同期送信

CK ST CMOS USART 同期クロック

RC7/AN19/RX/DT RC7 ST CMOS 汎用 I/O

AN19 AN - ADC チャンネル 19 入力

RX ST - USART 非同期入力

DT ST CMOS USART 同期データ

RD0(3)/AN20 RD0 ST CMOS 汎用 I/O

AN20 AN - ADC チャンネル 20 入力

RD1(3)/AN21 RD1 ST CMOS 汎用 I/O

AN21 AN - ADC チャンネル 21 入力

RD2(3)/AN22 RD2 ST CMOS 汎用 I/O

AN22 AN - ADC チャンネル 22 入力

RD3(3)/AN23 RD3 ST CMOS 汎用 I/O

AN23 AN - ADC チャンネル 23 入力

RD4(3)/AN24 RD4 ST CMOS 汎用 I/O

AN24 AN - ADC チャンネル 24 入力

RD5(3)/AN25 RD5 ST CMOS 汎用 I/O

AN25 AN - ADC チャンネル 25 入力

RD6(3)/AN26 RD6 ST CMOS 汎用 I/O

AN26 AN - ADC チャンネル 26 入力

表 1-2: ピンの説明 ( 続き )

ピン名 機能 入力タイプ 出力タイプ 説明

凡例 : AN = アナログ入出力 CMOS = CMOS 互換入出力

OD = オープンドレイン TTL = TTL 互換入力

ST = CMOS レベルのシュミットトリガ入力レベル I2C™ = I2C レベルのシュミットトリガ入力レベル

HV = 高電圧 (High Voltage) XTAL = 水晶振動子

Note 1: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは既定値の位置です。

2: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは代替の位置です。

3: PORTD と RE<2:0> は PIC16(L)F1517/9 の場合でのみ使えます。

DS41452C_JP - p.12 2013 Microchip Technology Inc.

Page 13: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

RD7(3)/AN27 RD7 ST CMOS 汎用 I/O

AN27 AN - ADC チャンネル 27 入力

RE0(3)/AN5 RE0 ST CMOS 汎用 I/O

AN5 AN - ADC チャンネル 5 入力

RE1(3)/AN6 RE1 ST CMOS 汎用 I/O

AN6 AN - ADC チャンネル 6 入力

RE2(3)/AN7 RE2 ST CMOS 汎用 I/O

AN7 AN - ADC チャンネル 7 入力

RE3/MCLR/VPP RE3 ST - WPU 付き汎用入力

MCLR ST - 内部プルアップ付きマスタクリア

VPP HV - プログラミング電圧

VDD VDD 電源 - 正電源

VSS VSS 電源 - グランド基準

表 1-2: ピンの説明 ( 続き )

ピン名 機能 入力タイプ 出力タイプ 説明

凡例 : AN = アナログ入出力 CMOS = CMOS 互換入出力

OD = オープンドレイン TTL = TTL 互換入力

ST = CMOS レベルのシュミットトリガ入力レベル I2C™ = I2C レベルのシュミットトリガ入力レベル

HV = 高電圧 (High Voltage) XTAL = 水晶振動子

Note 1: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは既定値の位置です。

2: ペリフェラルピンの位置は APFCON レジスタを使って選択します ( レジスタ 12-1)。これは代替の位置です。

3: PORTD と RE<2:0> は PIC16(L)F1517/9 の場合でのみ使えます。

2013 Microchip Technology Inc. DS41452C_JP - p.13

Page 14: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.14 2013 Microchip Technology Inc.

Page 15: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

2.0 エンハンスト ミッドレンジ CPU

このデバイスファミリはエンハンスト ミッドレンジ 8ビット CPU コアを採用しています。この CPU は 49 の命令をサポートしており、割り込み発生時にはコンテキストを自動保存可能です。ハードウェア スタックの深さは 16 レベルであり、オーバーフローとアンダーフローによるリセット機能を備えています。アドレッシ

ング モードは、直接、間接、相対をサポートします。2つのFSR (ファイルセレクト レジスタ )を使ってプログラムメモリとデータメモリの読み出しが可能です。

• 割り込み発生時の自動コンテキスト保存

• オーバーフロー / アンダーフロー リセット機能付き16 レベルスタック

• FSR ( ファイルセレクト レジスタ )

• 命令セット

図 2-1: コアのブロック図

Data Bus 8

14ProgramBus

Instruction reg

Program Counter

8 Level Stack(13-bit)

Direct Addr 7

12

Addr MUX

FSR reg

STATUS reg

MUX

ALU

Power-upTimer

Power-onReset

WatchdogTimer

InstructionDecode &

Control

TimingGeneration

OSC1/CLKIN

OSC2/CLKOUT

VDD

8

8

Brown-outReset

12

3

VSS

InternalOscillator

Block

Configuration 8

14

Instruction reg

Program Counter

8 Level Stack(13-bit)

7

Addr MUX

FSR reg

STATUS reg

MUX

ALU

W reg

InstructionDecode &

Control

TimingGeneration

VDD

8

8

3

VSS

InternalOscillator

Block

Configuration 15 8

14

Instruction Reg

Program Counter

16-Level Stack(15-bit)

7

RAM Addr

Addr MUX

IndirectAddr

FSR0 Reg

STATUS Reg

MUX

ALU

InstructionDecode and

Control

TimingGeneration

VDD

8

8

3

VSS

InternalOscillator

Block

Configuration

Flash

Program

MemoryRAM

FSR regFSR regFSR1 Reg

15

15

MU

X

15

Program Memory

Read (PMR)

12

FSR regFSR regBSR Reg

5

OscillatorStart-up Timer

2013 Microchip Technology Inc. DS41452C_JP - p.15

Page 16: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

2.1 割り込み発生時の自動コンテキスト保存

割り込み発生時に、一部のレジスタ内容を自動的にシャドウレジスタに保存し、通常動作に戻る際に復元する事ができます。これにより、スタック空間とユーザコードを節約できます。詳細は、セクション 7.5「コンテキスト自動保存機能」を参照してください。

2.2 オーバーフロー / アンダーフロー リセット機能付き 16 レベルスタック

本デバイスには外部スタックメモリがあります (15ビット幅 x 16 ワード )。スタック オーバーフローまたはアンダーフローが生じると PCON レジスタの対応ビット STKOVF または STKUNF がセットされ、有効化されている場合はソフトウェア リセットが発生します。詳細は、セクション 3.5「スタック」を参照してください。

2.3 FSR ( ファイルセレクト レジスタ )

16 ビットの FSR が 2 つあります。これらの FSR は全てのファイルレジスタとプログラムメモリにアクセスでき、全メモリに対して同じデータポインタを使う事ができます。FSR を使ってプログラムメモリへアクセスする場合、INDF レジスタへアクセスしてデータフェッチする命令処理を行うため、追加で 1 命令サイクルが必要です。これにより、汎用メモリに対してもリニアなアドレス指定が可能になり、80 バイトを超える連続したデータにもアクセスできます。FSR をサポートする新しい命令もあります。詳細は、セクション 3.6「間接アドレス指定」を参照してください。

2.4 命令セット

エンハンスト ミッドレンジ CPU には CPU 機能をサポートする 49 個の命令があります。詳細は、セクション 24.0「命令セットのまとめ」を参照してください。

DS41452C_JP - p.16 2013 Microchip Technology Inc.

Page 17: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.0 メモリ構成

これらのデバイスは以下のタイプのメモリを搭載しています。

• プログラムメモリ

- コンフィグレーション ワード

- デバイス ID

- ユーザ ID

- フラッシュ プログラムメモリ

• データメモリ

- コアレジスタ

- 特殊機能レジスタ

- 汎用 RAM

- 共通 RAM

プログラムメモリとデータメモリのアクセスと制御に関係する機能として、以下のものがあります。

• PCL と PCLATH

• スタック

• 間接アドレス指定

3.1 プログラムメモリの構成

エンハンスト ミッドレンジコアには15ビットのプログラム カウンタがあり、32Kx14 のプログラムメモリ空間にアクセスできます。表 3-1 に、これらのデバイスに実装されているメモリのサイズを示します。この境界を超える位置にアクセスすると、実装されたメモリ空間内でラップアラウンド ( 折り返し ) が発生します。リセットベクタは 0000h、割り込みベクタは 0004hです ( 図 3-1 と図 3-2 参照 )。

表 3-1: デバイスサイズとアドレス

デバイス名プログラムメモリ空間

( ワード )プログラムメモリの

終アドレス高書き込み耐性フラッシュメモリアドレス範囲 (1)

PIC16F1516PIC16LF1516

8,192 1FFFh 1F80h ~ 1FFFhPIC16F1517PIC16LF1517

PIC16F1518PIC16LF1518

16,384 3FFFh 3F80h ~ 3FFFhPIC16F1519PIC16LF1519

Note 1: 高書き込み耐性フラッシュは、範囲内の各アドレス下位バイトのみです。

2013 Microchip Technology Inc. DS41452C_JP - p.17

Page 18: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 3-1: PIC16(L)F1516/7 のプログラムメモリ マップとスタック

図 3-2: PIC16(L)F1518/9 のプログラムメモリ マップとスタック

PC<14:0>

15

0000h

0004h

Stack Level 0

Stack Level 15

Reset Vector

Interrupt Vector

Stack Level 1

0005h

On-chipProgramMemory

Page 007FFh

ページ 0 にロールオーバー

0800h

0FFFh1000h

7FFFh

Page 1

ページ 3 にロールオーバー

Page 2

Page 3

17FFh

1800h

1FFFh

2000h

CALL, CALLW RETURN, RETLW

Interrupt, RETFIE

PC<14:0>

15

0000h

0004h

Stack Level 0

Stack Level 15

Reset Vector

Interrupt Vector

Stack Level 1

0005h

On-chipProgramMemory

Page 007FFh

ページ 0 にロールオーバー

0800h

0FFFh1000h

7FFFh

Page 1

ページ 7 にロールオーバー

Page 2

Page 3

17FFh

1800h

1FFFh

2000hPage 4

Page 73FFFh

4000h

CALL, CALLW RETURN, RETLW

Interrupt, RETFIE

DS41452C_JP - p.18 2013 Microchip Technology Inc.

Page 19: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.1.1 プログラムメモリをデータとして読む

プログラムメモリの定数にアクセスする方法は 2 つあります。1つ目は、RETLW命令テーブルを使う方法です。2 つ目は、FSR を介してプログラムメモリ内を指定する方法です。

3.1.1.1 RETLW命令

RETLW命令を使って定数テーブルへアクセスできます。 例 3-1 に、推奨するテーブル作成方法を示します。

例 3-1: RETLW命令

BRW命令を使うと、このようなテーブルを非常に簡単に実装できます。旧世代のマイクロコントローラとのコード移植性を確保する必要がある場合、BRW命令を使えないため、従来のテーブル読み出し方法を使う必要があります。

3.1.1.2 FSR を使った間接読み出し

FSRxH レジスタの bit 7 をセットし、一致する INDFxレジスタを読み出す事で、プログラムメモリへデータとしてアクセスできます。MOVIW 命令は、アドレス指定したワードの下位 8 ビットを W レジスタへ格納します。INDF レジスタを介してプログラムメモリへ書き込む事はできません。FSR を使ってプログラムメモリへアクセスする場合、追加で 1 命令サイクルが必要です。例 3-2 に、FSR を介したプログラムメモリへのアクセスを示します。

ラベルがプログラムメモリ内の位置を指している場合、HIGH ディレクティブによりビット <7> がセットされます

例 3-2: FSR を介したプログラムメモリへのアクセス

constantsBRW ;Add Index in W to

;program counter to;select data

RETLW DATA0 ;Index0 dataRETLW DATA1 ;Index1 dataRETLW DATA2RETLW DATA3

my_function;… LOTS OF CODE…MOVLW DATA_INDEXCALL constants;Ö THE CONSTANT IS IN W

constantsRETLW DATA0 ;Index0 dataRETLW DATA1 ;Index1 dataRETLW DATA2RETLW DATA3

my_function;… LOTS OF CODE…MOVLW LOW constantsMOVWF FSR1LMOVLW HIGH constantsMOVWF FSR1HMOVIW 0[FSR1]

;THE PROGRAM MEMORY IS IN W

2013 Microchip Technology Inc. DS41452C_JP - p.19

Page 20: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.2 データメモリの構成

データメモリは、32 個のメモリバンクに分割されます(1 バンクは 128 バイト )。各バンクは以下の内容で構成されます ( 図 3-3 参照 )。

• 12 個のコアレジスタ

• 20 個の特殊機能レジスタ (SFR)

• 大 80 バイトの汎用 RAM (GPR)

• 16 バイトの共通 RAM

BSR ( バンクセレクト レジスタ ) にバンク番号を書き込む事で、アクティブバンクを選択します。未実装のメモリは「0」として読み出されます。全てのデータメモリへのアクセスは、直接的 ( ファイルレジスタを使う命令を使用 )または間接的 (2つのファイルセレクト レジスタ (FSR) を使用 ) に実行できます。詳細は、セクション 3.6「間接アドレス指定」を参照してください。

データメモリは 12 ビットのアドレスを使います。アドレスの上位 7 ビットはバンクアドレスを定義し、下位 5ビットはそのバンク内のレジスタ /RAM を選択します。

3.2.1 コアレジスタ

コアレジスタには、基本動作に直接影響を与えるレジスタが含まれます。コアレジスタは各データメモリ バンクの 初の 12 アドレスを占有しています ( アドレス x00h/x08h ~ x0Bh/x8Bh)。下記の表 3-2 にそれらのレジスタを示します。詳細は、表 3-7 を参照してください。

表 3-2: コアレジスタ

Addresses BANKx

x00h または x80h INDF0x01h または x81h INDF1x02h または x82h PCLx03h または x83h STATUSx04h または x84h FSR0Lx05h または x85h FSR0Hx06h または x86h FSR1Lx07h または x87h FSR1Hx08h または x88h BSRx09h または x89h WREGx0Ah または x8Ah PCLATHx0Bh または x8Bh INTCON

DS41452C_JP - p.20 2013 Microchip Technology Inc.

Page 21: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.2.1.1 STATUS レジスタ

STATUS レジスタ ( レジスタ 3-1 参照 ) の内容は、以下の通りです。

• ALU の演算状態

• リセット状態

STATUS レジスタは、他の全てのレジスタと同様に、あらゆる命令の実行結果の格納先とする事ができます。STATUS レジスタが Z、DC、C のいずれかのビットに影響を及ぼす命令の格納先である場合、これら 3 つのビットへは書き込みできません。これらのビットはデバイスのロジックに従ってセットまたはクリアされます。また、TO と PD ビットには書き込みできません。従って、STATUS レジスタを格納先とする命令を実行した場合、意図した結果とならない場合があります。

例えば、CLRF STATUSは上位 3 ビットをクリアし、Zビットをセットします。これにより、STATUS レジスタは「000u u1uu」(u= 不変 ) のままです。

従って、STATUS レジスタを変更する際は、BCF、BSF、SWAPF、MOVWF 命令のみを使用する事を推奨します。これらの命令はステータスビットのいずれにも影響を与えないためです。ステータスビットに影響を与えないその他の命令については、セクション 24.0「命令セットのまとめ」を参照してください。

3.3 レジスタ定義 : STATUS

Note 1: 減算では、C ビットが Borrow、DC ビットが Digit Borrow アウトビットとして動作します。

レジスタ 3-1: STATUS: STATUS レジスタ

U-0 U-0 U-0 R-1/q R-1/q R/W-0/u R/W-0/u R/W-0/u

- - - TO PD Z DC(1) C(1)

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット。「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア q = 条件による

bit 7-5 未実装 :「0」として読み出し

bit 4 TO: タイムアウト ビット

1 = 電源投入後、CLRWDT命令後、または SLEEP命令後0 = WDT タイムアウトが発生した

bit 3 PD: パワーダウン ビット

1 = 電源投入後、または CLRWDT命令による0 = SLEEP命令の実行による

bit 2 Z: ゼロビット

1 = 算術演算または論理演算の結果がゼロである0 = 算術演算または論理演算の結果がゼロではない

bit 1 DC: デジットキャリー / ボロービット (1)

1 = 演算結果の下位 4 ビット目からキャリーが発生した0 = 演算結果の下位 4 ビット目からキャリーは発生していない

bit 0 C: キャリー / ボロービット (1)

1 = 演算結果の 上位ビットからキャリーが発生した0 = 演算結果の 上位ビットからキャリーは発生していない

Note 1: ボローの場合、極性は逆です。減算は、2 番目のオペランドの 2 の補数を加算する事によって実行されます。

2013 Microchip Technology Inc. DS41452C_JP - p.21

Page 22: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.3.1 特殊機能レジスタ

特殊機能レジスタ (SFR) は、アプリケーションがデバイス内の必要な周辺機能を制御するために使用します。特殊機能レジスタは各データメモリ バンクのコアレジスタに続く20バイトを占有しています (アドレス x0Ch/x8Ch ~ x1Fh/x9Fh)。周辺機能に関連するレジスタについては、各周辺機能の章で説明します。

3.3.2 汎用 RAM

各データメモリ バンクには、 大 80 バイトの GPR があります。特殊機能レジスタは各データメモリ バンクのコアレジスタに続く20バイトを占有しています (アドレス x0Ch/x8Ch ~ x1Fh/x9Fh)。

3.3.2.1 GPR へのリニアアクセス

FSR を使うと、バンク切り換えなしに汎用 RAM にアクセスできます。これにより、大規模なメモリ構造に容易にアクセスできます。詳細は、セクション 3.6.2

「リニア データメモリ」を参照してください。

3.3.3 共通 RAM

全てのバンクからアクセス可能な 16 バイトの共通RAM があります。

図 3-3: メモリバンクの構成

3.3.4 デバイス メモリマップ

PIC16(L)F1516/7 と PIC16(L)F1516/7 のメモリマップは、それぞれ表 3-3 と表 3-4 に示した通りです。

0Bh0Ch

1Fh

20h

6Fh70h

7Fh

00h

Common RAM(16 bytes)

General Purpose RAM(80 bytes maximum)

Core Registers(12 bytes)

Special Function Registers(20 bytes maximum)

Memory Region7-bit Bank Offset

DS41452C_JP - p.22 2013 Microchip Technology Inc.

Page 23: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

2013

Microchip T

echnology Inc.D

S41452

C_JP

- p.23

PIC

16(L)F

1516/7/8/9

凡例No

BANK 6 BANK 7

00 0hコアレジスタ

( 表 3-2 )

380hコアレジスタ

( 表 3-2 )

00 Bh 38Bh

00 Ch - 38Ch -

00 Dh - 38Dh -

00 Eh - 38Eh -

00 Fh - 38Fh -

01 0h - 390h -

01 1h - 391h -

01 2h - 392h -

01 3h - 393h -

01 4h - 394h IOCBP

01 5h - 395h IOCBN

01 6h - 396h IOCBF

01 7h - 397h -

01 8h - 398h -

01 9h - 399h -

01 Ah - 39Ah -

01 Bh - 39Bh -

01 Ch - 39Ch -

01 Dh - 39Dh -

01 Eh - 39Eh -

01 Fh - 39Fh -02 0h

汎用レジスタ 16 バイト

3A0h

未実装「0」として

読み出し

Fh

0h 未実装「0」として

読み出し06 Fh 3EFh

07 0h共通 RAM

( アクセス範囲70h ~ 7Fh )

3F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

07 Fh 3FFh

3-3: PIC16(L)F1516/7 のメモリマップ

: = 未実装データメモリ アドレス、「0」として読み出しte 1: PIC16(L)F1517 の場合のみです。

2: PIC16F1516/7 の場合のみです。

BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5

0hコアレジスタ

( 表 3-2 )

080hコアレジスタ

( 表 3-2 )

100hコアレジスタ

( 表 3-2 )

180hコアレジスタ

( 表 3-2 )

200hコアレジスタ

( 表 3-2 )

280hコアレジスタ

( 表 3-2 )

30

Bh 08Bh 10Bh 18Bh 20Bh 28Bh 30

Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch - 28Ch - 30

Dh PORTB 08Dh TRISB 10Dh LATB 18Dh ANSELB 20Dh WPUB 28Dh - 30

Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh - 28Eh - 30

Fh PORTD(1) 08Fh TRISD(1) 10Fh LATD(1) 18Fh ANSELD(1) 20Fh - 28Fh - 30

0h PORTE 090h TRISE 110h LATE(1) 190h ANSELE(1) 210h WPUE 290h - 31

1h PIR1 091h PIE1 111h - 191h PMADRL 211h SSPBUF 291h CCPR1L 31

2h PIR2 092h PIE2 112h - 192h PMADRH 212h SSPADD 292h CCPR1H 31

3h - 093h - 113h - 193h PMDATL 213h SSPMSK 293h CCP1CON 31

4h - 094h - 114h - 194h PMDATH 214h SSPSTAT 294h - 31

5h TMR0 095h OPTION_REG 115h - 195h PMCON1 215h SSPCON1 295h - 31

6h TMR1L 096h PCON 116h BORCON 196h PMCON2 216h SSPCON2 296h - 31

7h TMR1H 097h WDTCON 117h FVRCON 197h VREGCON(2) 217h SSPCON3 297h - 31

8h T1CON 098h - 118h - 198h - 218h - 298h CCPR2L 31

9h T1GCON 099h OSCCON 119h - 199h RCREG 219h - 299h CCPR2H 31

Ah TMR2 09Ah OSCSTAT 11Ah - 19Ah TXREG 21Ah - 29Ah CCP2CON 31

Bh PR2 09Bh ADRESL 11Bh - 19Bh SPBRG 21Bh - 29Bh - 31

Ch T2CON 09Ch ADRESH 11Ch - 19Ch SPBRGH 21Ch - 29Ch - 31

Dh - 09Dh ADCON0 11Dh APFCON 19Dh RCSTA 21Dh - 29Dh - 31

Eh - 09Eh ADCON1 11Eh - 19Eh TXSTA 21Eh - 29Eh - 31

Fh - 09Fh - 11Fh - 19Fh BAUDCON 21Fh - 29Fh - 310h

汎用レジスタ80 バイト

0A0h

汎用レジスタ80 バイト

120h

汎用レジスタ80 バイト

1A0h

汎用レジスタ80 バイト

220h

汎用レジスタ80 バイト

2A0h

汎用レジスタ80 バイト

32

32

33

Fh 0EFh 16Fh 1EFh 26Fh 2EFh 36

0h

共通 RAM

0F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

170h共通 RAM

( アクセス範囲70h ~ 7Fh )

1F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

270h共通 RAM

( アクセス範囲70h ~ 7Fh )

2F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

37

Fh 0FFh 17Fh 1FFh 27Fh 2FFh 37

Page 24: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC

16(L)F

1516/7/8/9

DS

41452C_JP

- p.24

2013 Microchip T

echnology Inc.

BANK 14 BANK 15

700h

70Bh

コアレジスタ( 表 3-2 )

780h

78Bh

コアレジスタ( 表 3-2 )

70Ch未実装

「0」として読み出し

78Ch未実装

「0」として読み出し76Fh 7EFh

770h共通 RAM

( アクセス範囲70h ~ 7Fh )

7F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

77Fh 7FFh

BANK 22 BANK 23

B00h

B0Bh

コアレジスタ( 表 3-2 )

B80h

B8Bh

コアレジスタ( 表 3-2 )

B0Ch未実装

「0」として読み出し

B8Ch未実装

「0」として読み出し

B6Fh BEFh

B70h共通 RAM

( アクセス範囲70h ~ 7Fh )

BF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

B7Fh BFFh

BANK 30

F00h

F0Bh

コアレジスタ( 表 3-2 )

F0Ch

F6Fh

未実装「0」として

読み出し

)

F70h共通 RAM

( アクセス範囲70h ~ 7Fh )

F7Fh

表 3-3: PIC16(L)F1516/7 のメモリマップ ( 続き )

BANK 8 BANK 9 BANK 10 BANK 11 BANK 12 BANK 13

400h

40Bh

コアレジスタ( 表 3-2 )

480h

48Bh

コアレジスタ( 表 3-2 )

500h

50Bh

コアレジスタ( 表 3-2 )

580h

58Bh

コアレジスタ( 表 3-2 )

600h

60Bh

コアレジスタ( 表 3-2 )

680h

68Bh

コアレジスタ( 表 3-2 )

40Ch未実装

「0」として読み出し

48Ch未実装

「0」として読み出し

50Ch未実装

「0」として読み出し

58Ch未実装

「0」として読み出し

60Ch未実装

「0」として読み出し

68Ch未実装

「0」として読み出し46Fh 4EFh 56Fh 5EFh 66Fh 6EFh

470h共通 RAM

( アクセス範囲70h ~ 7Fh )

4F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

570h共通 RAM

( アクセス範囲70h ~ 7Fh )

5F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

670h共通 RAM

( アクセス範囲70h ~ 7Fh )

6F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

47Fh 4FFh 57Fh 5FFh 67Fh 6FFh

BANK 16 BANK 17 BANK 18 BANK 19 BANK 20 BANK 21

800h

80Bh

コアレジスタ( 表 3-2 )

880h

88Bh

コアレジスタ( 表 3-2 )

900h

90Bh

コアレジスタ( 表 3-2 )

980h

98Bh

コアレジスタ( 表 3-2 )

A00h

A0Bh

コアレジスタ( 表 3-2 )

A80h

A8Bh

コアレジスタ( 表 3-2 )

80Ch未実装

「0」として読み出し

88Ch未実装

「0」として読み出し

90Ch未実装

「0」として読み出し

98Ch未実装

「0」として読み出し

A0Ch未実装

「0」として読み出し

A8Ch未実装

「0」として読み出し

86Fh 8EFh 96Fh 9EFh A6Fh AEFh

870h共通 RAM

( アクセス範囲70h ~ 7Fh )

8F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

970h共通 RAM

( アクセス範囲70h ~ 7Fh )

9F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

A70h共通 RAM

( アクセス範囲70h ~ 7Fh )

AF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

87Fh 8FFh 97Fh 9FFh A7Fh AFFh

凡例 : = 未実装データメモリ アドレス、「0」として読み出し

BANK 24 BANK 25 BANK 26 BANK 27 BANK 28 BANK 29

C00h

C0Bh

コアレジスタ( 表 3-2 )

C80h

C8Bh

コアレジスタ( 表 3-2 )

D00h

D0Bh

コアレジスタ( 表 3-2 )

D80h

D8Bh

コアレジスタ( 表 3-2 )

E00h

E0Bh

コアレジスタ( 表 3-2 )

E80h

E8Bh

コアレジスタ( 表 3-2 )

C0Ch

C6Fh

未実装「0」として

読み出し

C8Ch

CEFh

未実装「0」として

読み出し

D0Ch

D6Fh

未実装「0」として

読み出し

D8Ch

DEFh

未実装「0」として

読み出し

E0Ch

E6Fh

未実装「0」として

読み出し

E8Ch

EEFh

未実装「0」として

読み出し

C70h共通 RAM

( アクセス範囲70h ~ 7Fh )

CF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

D70h共通 RAM

( アクセス範囲70h ~ 7Fh )

DF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

E70h共通 RAM

( アクセス範囲70h ~ 7Fh )

EF0h共通 RAM

( アクセス範囲70h ~ 7Fh

C7Fh CFFh D7Fh DFFh E7Fh EFFh

Page 25: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

2013

Microchip T

echnology Inc.D

S41452

C_JP

- p.25

PIC

16(L)F

1516/7/8/9

3-3: PIC16(L)F1516/7 のメモリマップ ( 続き )

= 未実装データメモリ アドレス、「0」として読み出し

Bank 31F80h

F8Bh

コアレジスタ( 表 3-2 )

F8Ch

FE3h

未実装「0」として

読み出し

FE4h STATUS_SHAD

FE5h WREG_SHAD

FE6h BSR_SHAD

FE7h PCLATH_SHAD

FE8h FSR0L_SHAD

FE9h FSR0H_SHAD

FEAh FSR1L_SHAD

FEBh FSR1H_SHAD

FECh -

FEDh STKPTRFEEh TOSLFEFh TOSHFF0h

共通 RAM( アクセス範囲70h ~ 7Fh )

FFFh

Page 26: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC

16(L)F

1516/7/8/9

DS

41452C_JP

- p.26

2013 Microchip T

echnology Inc.

BANK 6 BANK 7

300hコアレジスタ

( 表 3-2 )

380hコアレジスタ

( 表 3-2 )

30Bh 38Bh

30Ch - 38Ch -

30Dh - 38Dh -

30Eh - 38Eh -

30Fh - 38Fh -

310h - 390h -

311h - 391h -

312h - 392h -

313h - 393h -

314h - 394h IOCBP

315h - 395h IOCBN

316h - 396h IOCBF

317h - 397h -

318h - 398h -

319h - 399h -

31Ah - 39Ah -

31Bh - 39Bh -

31Ch - 39Ch -

31Dh - 39Dh -

31Eh - 39Eh -

31Fh - 39Fh -320h

汎用レジスタ80 バイト

3A0h

汎用レジスタ80 バイト

36Fh 3EFh

370h

アクセス範囲70h ~ 7Fh

3F0h

アクセス範囲70h ~ 7Fh

37Fh 3FFh

表 3-4: PIC16(L)F1518/9 のメモリマップ

凡例 : = 未実装データメモリ アドレス、「0」として読み出しNote 1: PIC16(L)F1519 の場合のみです。

2: PIC16F1518/9 の場合のみです。

BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5

000hコアレジスタ

( 表 3-2 )

080hコアレジスタ

( 表 3-2 )

100hコアレジスタ

( 表 3-2 )

180hコアレジスタ

( 表 3-2 )

200hコアレジスタ

( 表 3-2 )

280hコアレジスタ

( 表 3-2 )

00Bh 08Bh 10Bh 18Bh 20Bh 28Bh

00Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch - 28Ch -

00Dh PORTB 08Dh TRISB 10Dh LATB 18Dh ANSELB 20Dh WPUB 28Dh -

00Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh - 28Eh -

00Fh PORTD(1) 08Fh TRISD(1) 10Fh LATD(1) 18Fh ANSELD(1) 20Fh - 28Fh -

010h PORTE 090h TRISE 110h LATE(1) 190h ANSELE(1) 210h WPUE 290h -

011h PIR1 091h PIE1 111h - 191h PMADRL 211h SSPBUF 291h CCPR1L

012h PIR2 092h PIE2 112h - 192h PMADRH 212h SSPADD 292h CCPR1H

013h - 093h - 113h - 193h PMDATL 213h SSPMSK 293h CCP1CON

014h - 094h - 114h - 194h PMDATH 214h SSPSTAT 294h -

015h TMR0 095h OPTION_REG 115h - 195h PMCON1 215h SSPCON1 295h -

016h TMR1L 096h PCON 116h BORCON 196h PMCON2 216h SSPCON2 296h -

017h TMR1H 097h WDTCON 117h FVRCON 197h VREGCON(2) 217h SSPCON3 297h -

018h T1CON 098h - 118h - 198h - 218h - 298h CCPR2L

019h T1GCON 099h OSCCON 119h - 199h RCREG 219h - 299h CCPR2H

01Ah TMR2 09Ah OSCSTAT 11Ah - 19Ah TXREG 21Ah - 29Ah CCP2CON

01Bh PR2 09Bh ADRESL 11Bh - 19Bh SPBRG 21Bh - 29Bh -

01Ch T2CON 09Ch ADRESH 11Ch - 19Ch SPBRGH 21Ch - 29Ch -

01Dh - 09Dh ADCON0 11Dh APFCON 19Dh RCSTA 21Dh - 29Dh -

01Eh - 09Eh ADCON1 11Eh - 19Eh TXSTA 21Eh - 29Eh -

01Fh - 09Fh - 11Fh - 19Fh BAUDCON 21Fh - 29Fh -020h

汎用レジスタ80 バイト

0A0h

汎用レジスタ80 バイト

120h

汎用レジスタ80 バイト

1A0h

汎用レジスタ80 バイト

220h

汎用レジスタ80 バイト

2A0h

汎用レジスタ80 バイト

06Fh 0EFh 16Fh 1EFh 26Fh 2EFh070h

共通 RAM

0F0h

アクセス範囲70h ~ 7Fh

170h

アクセス範囲70h ~ 7Fh

1F0h

アクセス範囲70h ~ 7Fh

270h

アクセス範囲70h ~ 7Fh

2F0h

アクセス範囲70h ~ 7Fh

07Fh 0FFh 17Fh 1FFh 27Fh 2FFh

Page 27: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

2013

Microchip T

echnology Inc.D

S41452

C_JP

- p.27

PIC

16(L)F

1516/7/8/9

BANK 14 BANK 15

4

4

0h

Bh

コアレジスタ( 表 3-2 )

780h

78Bh

コアレジスタ( 表 3-2 )

4 Ch未実装

「0」として読み出し

78Ch未実装

「0」として読み出し

4 Fh 79Fh4 0h

未実装「0」として

読み出し

7A0h

未実装「0」として

読み出し

4 Fh 7EFh

4 0h共通 RAM

( アクセス範囲70h ~ 7Fh )

7F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

4 Fh 7FFh

BANK 22 BANK 23

8

8

00h

Bh

コアレジスタ( 表 3-2 )

B80h

B8Bh

コアレジスタ( 表 3-2 )

8 Ch未実装

「0」として読み出し

B8Ch未実装

「0」として読み出し

8 6Fh BEFh

8 70h共通 RAM

( アクセス範囲70h ~ 7Fh )

BF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

8 7Fh BFFh

3-5: PIC16(L)F1518/9 のメモリマップ ( 続き )BANK 8 BANK 9 BANK 10 BANK 11 BANK 12 BANK 13

00h

0Bh

コアレジスタ( 表 3-2 )

480h

48Bh

コアレジスタ( 表 3-2 )

500h

50Bh

コアレジスタ( 表 3-2 )

580h

58Bh

コアレジスタ( 表 3-2 )

600h

60Bh

コアレジスタ( 表 3-2 )

680h

68Bh

コアレジスタ( 表 3-2 )

70

700Ch

未実装「0」として

読み出し

48Ch未実装

「0」として読み出し

50Ch未実装

「0」として読み出し

58Ch未実装

「0」として読み出し

60Ch未実装

「0」として読み出し

68Ch未実装

「0」として読み出し

70

1Fh 49Fh 51Fh 59Fh 61Fh 69Fh 7120h

汎用レジスタ80 バイト

4A0h

汎用レジスタ80 バイト

520h

汎用レジスタ80 バイト

5A0h

汎用レジスタ80 バイト

620h 汎用レジスタ48 バイト

6A0h

未実装「0」として

読み出し

72

64Fh

650h 未実装「0」として

読み出し6Fh 4EFh 56Fh 5EFh 66Fh 6EFh 76

70h共通 RAM

( アクセス範囲70h ~ 7Fh )

4F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

570h共通 RAM

( アクセス範囲70h ~ 7Fh )

5F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

670h共通 RAM

( アクセス範囲70h ~ 7Fh )

6F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

77

7Fh 4FFh 57Fh 5FFh 67Fh 6FFh 77

BANK 16 BANK 17 BANK 18 BANK 19 BANK 20 BANK 21

00h

0Bh

コアレジスタ( 表 3-2 )

880h

88Bh

コアレジスタ( 表 3-2 )

900h

90Bh

コアレジスタ( 表 3-2 )

980h

98Bh

コアレジスタ( 表 3-2 )

A00h

A0Bh

コアレジスタ( 表 3-2 )

A80h

A8Bh

コアレジスタ( 表 3-2 )

B

B0

0Ch未実装

「0」として読み出し

88Ch未実装

「0」として読み出し

90Ch未実装

「0」として読み出し

98Ch未実装

「0」として読み出し

A0Ch未実装

「0」として読み出し

A8Ch未実装

「0」として読み出し

B0

6Fh 8EFh 96Fh 9EFh A6Fh AEFh B70h

共通 RAM( アクセス範囲70h ~ 7Fh )

8F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

970h共通 RAM

( アクセス範囲70h ~ 7Fh )

9F0h共通 RAM

( アクセス範囲70h ~ 7Fh )

A70h共通 RAM

( アクセス範囲70h ~ 7Fh )

AF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

B

7Fh 8FFh 97Fh 9FFh A7Fh AFFh B

Page 28: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC

16(L)F

1516/7/8/9

DS

41452C_JP

- p.28

2013 Microchip T

echnology Inc.

BANK 30

F00h

F0Bh

コアレジスタ( 表 3-2 )

F0Ch未実装

「0」として読み出し

F6FhF70h

共通 RAM( アクセス範囲70h ~ 7Fh )

F7Fh

表 3-6: PIC16(L)F1518/9 のメモリマップ ( 続き )

凡例 : = 未実装データメモリ アドレス、「0」として読み出し

BANK 24 BANK 25 BANK 26 BANK 27 BANK 28 BANK 29

C00h

C0Bh

コアレジスタ( 表 3-2 )

C80h

C8Bh

コアレジスタ( 表 3-2 )

D00h

D0Bh

コアレジスタ( 表 3-2 )

D80h

D8Bh

コアレジスタ( 表 3-2 )

E00h

E0Bh

コアレジスタ( 表 3-2 )

E80h

E8Bh

コアレジスタ( 表 3-2 )

C0Ch未実装

「0」として読み出し

C8Ch未実装

「0」として読み出し

D0Ch未実装

「0」として読み出し

D8Ch未実装

「0」として読み出し

E0Ch未実装

「0」として読み出し

E8Ch未実装

「0」として読み出し

C6Fh CEFh D6Fh DEFh E6Fh EEFhC70h

共通 RAM( アクセス範囲70h ~ 7Fh )

CF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

D70h共通 RAM

( アクセス範囲70h ~ 7Fh )

DF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

E70h共通 RAM

( アクセス範囲70h ~ 7Fh )

EF0h共通 RAM

( アクセス範囲70h ~ 7Fh )

C7Fh CFFh D7Fh DFFh E7Fh EFFh

Bank 31F80h

F8Bh

コアレジスタ( 表 3-2 )

F8Ch

FE3h

未実装「0」として

読み出し

FE4h STATUS_SHAD

FE5h WREG_SHAD

FE6h BSR_SHAD

FE7h PCLATH_SHAD

FE8h FSR0L_SHAD

FE9h FSR0H_SHAD

FEAh FSR1L_SHAD

FEBh FSR1H_SHAD

FECh -

FEDh STKPTRFEEh TOSLFEFh TOSHFF0h

共通 RAM( アクセス範囲70h ~ 7Fh )

FFFh

Page 29: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.3.5 コア機能レジスタのまとめ

表 3-7 に一覧を示したコア機能レジスタは、任意のバンクからアドレス指定できます。

表 3-7: コア機能レジスタのまとめ

アドレス レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR、BOR時の値

その他のリセット時

の値

BANK 0 ~ 31

x00h またはx80h INDF0

この位置をアドレス指定すると、FSR0H/FSR0L の内容によってデータメモリのアドレスを指定します。( 物理レジスタではありません )

xxxx xxxx uuuu uuuu

x01h またはx81h INDF1

この位置をアドレス指定すると、FSR1H/FSR1L の内容によってデータメモリのアドレスを指定します。( 物理レジスタではありません )

xxxx xxxx uuuu uuuu

x02h またはx82h

PCL プログラム カウンタ (PC) の下位バイト 0000 0000 0000 0000

x03h またはx83h

STATUS - - - TO PD Z DC C ---1 1000 ---q quuu

x04h またはx84h

FSR0L 間接データメモリ アドレス ポインタ 0、下位バイト 0000 0000 uuuu uuuu

x05h またはx85h

FSR0H 間接データメモリ アドレス ポインタ 0、上位バイト 0000 0000 0000 0000

x06h またはx86h

FSR1L 間接データメモリ アドレス ポインタ 1、下位バイト 0000 0000 uuuu uuuu

x07h またはx87h

FSR1H 間接データメモリ アドレス ポインタ 1、上位バイト 0000 0000 0000 0000

x08h またはx88h

BSR - - - BSR4 BSR3 BSR2 BSR1 BSR0 ---0 0000 ---0 0000

x09h またはx89h

WREG ワーキング レジスタ 0000 0000 uuuu uuuu

x0Ah またはx8Ah

PCLATH - プログラム カウンタ上位 7 ビットの書き込みバッファ -000 0000 -000 0000

x0Bh またはx8Bh

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 0000 0000 0000 0000

凡例 : x = 未知、u = 不変、q = 条件による、- = 未実装 (「0」として読み出し )、r = 予約済み。網掛け表示されている位置は未実装、「0」として読み出し

2013 Microchip Technology Inc. DS41452C_JP - p.29

Page 30: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.3.6 特殊機能レジスタのまとめ

表 3-8 に、特殊機能レジスタの一覧を示します。

表 3-8: 特殊機能レジスタのまとめ

アドレス レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR、BOR時の値

その他のリセット時

の値

BANK 0

00Ch PORTA 書き込み時は PORTA データラッチ、読み出し時は PORTA ピン xxxx xxxx uuuu uuuu

00Dh PORTB 書き込み時は PORTB データラッチ、読み出し時は PORTB ピン xxxx xxxx uuuu uuuu

00Eh PORTC 書き込み時は PORTC データラッチ、読み出し時は PORTC ピン xxxx xxxx uuuu uuuu

00Fh PORTD 書き込み時は PORTD データラッチ、読み出し時は PORTD ピン xxxx xxxx uuuu uuuu

010h PORTE - - - - RE3 RE2(3) RE1(3) RE0(3) ---- xxxx ---- uuuu

011h PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000

012h PIR2 OSFIF - - - BCLIF - - CCP2IF 0--- 0--0 0--- 0--0

013h - 未実装 - -

014h - 未実装 - -

015h TMR0 8 ビットの Timer0 のカウント保持レジスタ xxxx xxxx uuuu uuuu

016h TMR1L 16 ビット TMR1 カウントの下位バイト保持レジスタ xxxx xxxx uuuu uuuu

017h TMR1H 16 ビット TMR1 カウントの上位バイト保持レジスタ xxxx xxxx uuuu uuuu

018h T1CON TMR1CS<1:0> T1CKPS<1:0> T1OSCEN T1SYNC - TMR1ON 0000 00-0 uuuu uu-u

019h T1GCON TMR1GE T1GPOL T1GTM T1GSPM T1GGO/DONE

T1GVAL T1GSS<1:0> 0000 0x00 uuuu uxuu

01Ah TMR2 Timer2 モジュール レジスタ 0000 0000 0000 0000

01Bh PR2 Timer2 周期レジスタ 1111 1111 1111 1111

01Ch T2CON - T2OUTPS<3:0> TMR2ON T2CKPS<1:0> -000 0000 -000 0000

01Dh - 未実装 - -

01Eh - 未実装 - -

01Fh - 未実装 - -

BANK 1

08Ch TRISA PORTA データ方向レジスタ 1111 1111 1111 1111

08Dh TRISB PORTB データ方向レジスタ 1111 1111 1111 1111

08Eh TRISC PORTC データ方向レジスタ 1111 1111 1111 1111

08Fh TRISD(2) PORTD データ方向レジスタ 1111 1111 1111 1111

090h TRISE - - - - -(3) TRISE2(2) TRISE1(2) TRISE0(2) ---- 1111 ---- 1111

091h PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

092h PIE2 OSFIE - - - BCLIE - - CCP2IE 0--- 0--0 0--- 0--0

093h - 未実装 - -

094h - 未実装 - -

095h OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0> 1111 1111 1111 1111

096h PCON STKOVF STKUNF - RWDT RMCLR RI POR BOR 00-1 11qq qq-q qquu

097h WDTCON - - WDTPS<4:0> SWDTEN --01 0110 --01 0110

098h - 未実装 - -

099h OSCCON - IRCF<3:0> - SCS<1:0> -011 1-00 -011 1-00

09Ah OSCSTAT SOSCR - OSTS HFIOFR - - LFIOFR HFIOFS 0-q0 --00 q-qq --0q

09Bh ADRESL A/D 変換結果レジスタ下位 xxxx xxxx uuuu uuuu

09Ch ADRESH A/D 変換結果レジスタ上位 xxxx xxxx uuuu uuuu

09Dh ADCON0 - CHS<4:0> GO/DONE ADON -000 0000 -000 0000

09Eh ADCON1 ADFM ADCS<2:0> - - ADPREF<1:0> 0000 --00 0000 --00

09Fh - 未実装 - -

凡例 : x = 未知、u = 不変、q = 条件による、- = 未実装 (「0」として読み出し )、r = 予約済み。網掛け表示されている位置は未実装、「0」として読み出し

Note 1: PIC16F1516/7/8/9 の場合のみです。2: PIC16(L)F1517/9 の場合のみです。3: 未実装、「1」として読み出されます。

DS41452C_JP - p.30 2013 Microchip Technology Inc.

Page 31: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

BANK 2

10Ch LATA PORTA データラッチ xxxx xxxx uuuu uuuu

10Dh LATB PORTB データラッチ xxxx xxxx uuuu uuuu

10Eh LATC PORTC データラッチ xxxx xxxx uuuu uuuu

10Fh LATD(2) PORTD データラッチ xxxx xxxx uuuu uuuu

110h LATE(2) - - - - - LATE2 LATE1 LATE0 ---- -xxx ---- -uuu

111hto

115h- 未実装 - -

116h BORCON SBOREN BORFS - - - - - BORRDY 10-- ---q uu-- ---u

117h FVRCON FVREN FVRRDY TSEN TSRNG - - ADFVR<1:0> 0q00 --00 0q00 --00

118h~

11Ch- 未実装 - -

11Dh APFCON - - - - - - SSSEL CCP2SEL ---- --00 ---- --00

11Eh - 未実装 - -

11Fh - 未実装 - -

BANK 3

18Ch ANSELA - - ANSA5 - ANSA3 ANSA2 ANSA1 ANSA0 --1- 1111 --1- 1111

18Dh ANSELB - - ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 --11 1111 --11 1111

18Eh ANSELC ANSC7 ANSC6 ANSC5 ANSC4 ANSC3 ANSC2 - - 1111 11-- 1111 11--

18Fh ANSELD(2) ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0 1111 1111 1111 1111

190h ANSELE(2) - - - - - ANSE2 ANSE1 ANSE0 ---- -111 ---- -111

191h PMADRL プログラムメモリ アドレス レジスタ下位バイト 0000 0000 0000 0000

192h PMADRH -(3)プログラムメモリ アドレス レジスタ上位バイト 1000 0000 1000 0000

193h PMDATL プログラムメモリ データ レジスタ下位バイト xxxx xxxx uuuu uuuu

194h PMDATH - - プログラムメモリ データ レジスタ上位バイト --xx xxxx --uu uuuu

195h PMCON1 -(3) CFGS LWLO FREE WRERR WREN WR RD 1000 x000 1000 q000

196h PMCON2 プログラムメモリ制御レジスタ 2 0000 0000 0000 0000

197h VREGCON(1) - - - - - - VREGPM 予約済み ---- --01 ---- --01

198h - 未実装 - -

199h RCREG USART 受信データレジスタ 0000 0000 0000 0000

19Ah TXREG USART 送信データレジスタ 0000 0000 0000 0000

19Bh SPBRG BRG<7:0> 0000 0000 0000 0000

19Ch SPBRGH BRG<15:8> 0000 0000 0000 0000

19Dh RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x

19Eh TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 0000 0010 0000 0010

19Fh BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 01-0 0-00 01-0 0-00

表 3-8: 特殊機能レジスタのまとめ ( 続き )

アドレス レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR、BOR時の値

その他のリセット時

の値

凡例 : x = 未知、u = 不変、q = 条件による、- = 未実装 (「0」として読み出し )、r = 予約済み。網掛け表示されている位置は未実装、「0」として読み出し

Note 1: PIC16F1516/7/8/9 の場合のみです。2: PIC16(L)F1517/9 の場合のみです。3: 未実装、「1」として読み出されます。

2013 Microchip Technology Inc. DS41452C_JP - p.31

Page 32: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

BANK 4

20Ch - 未実装 - -

20Dh WPUB WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 1111 1111 1111 1111

20Eh - 未実装 - -

20Fh - 未実装 - -

210h WPUE - - - - WPUE3 - - - ---- 1--- ---- 1---

211h SSPBUF 同期シリアルポート受信バッファ / 送信レジスタ xxxx xxxx uuuu uuuu

212h SSPADD 同期シリアルポート (I2C モード ) アドレスレジスタ 0000 0000 0000 0000

213h SSPMSK 同期シリアルポート (I2C モード ) アドレスマスク レジスタ 1111 1111 1111 1111

214h SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000 0000 0000

215h SSPCON1 WCOL SSPOV SSPEN CKP SSPM<3:0> 0000 0000 0000 0000

216h SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000 0000 0000

217h SSPCON3 ACKTIM PCIE SCIE BOEN SDAHT SBCDE AHEN DHEN 0000 0000 0000 0000

218h~

21Fh- 未実装 - -

BANK 5

28Ch~

290h- 未実装 - -

291h CCPR1L キャプチャ / コンペア /PWM レジスタ 1 (LSB) xxxx xxxx uuuu uuuu

292h CCPR1H キャプチャ / コンペア /PWM レジスタ 1 (MSB) xxxx xxxx uuuu uuuu

293h CCP1CON - - DC1B<1:0> CCP1M<3:0> --00 0000 --00 0000

294h~

297h- 未実装 - -

298h CCPR2L キャプチャ / コンペア /PWM レジスタ 2 (LSB) xxxx xxxx uuuu uuuu

299h CCPR2H キャプチャ / コンペア /PWM レジスタ 2 (MSB) xxxx xxxx uuuu uuuu

29Ah CCP2CON - - DC2B<1:0> CCP2M<3:0> --00 0000 --00 0000

29Bh~

29Fh- 未実装 - -

BANK 6

30Ch~

31Fh- 未実装 - -

BANK 7

38Ch~

393h- 未実装 - -

394h IOCBN IOCBP<7:0> 0000 0000 0000 0000

395h IOCBN IOCBN<7:0> 0000 0000 0000 0000

396h IOCBF IOCBF<7:0> 0000 0000 0000 0000

397h~

39Fh- 未実装 - -

BANK 8 ~ 30

x0Ch またはx8Ch~

x1Fh またはx9Fh

- 未実装 - -

表 3-8: 特殊機能レジスタのまとめ ( 続き )

アドレス レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR、BOR時の値

その他のリセット時

の値

凡例 : x = 未知、u = 不変、q = 条件による、- = 未実装 (「0」として読み出し )、r = 予約済み。網掛け表示されている位置は未実装、「0」として読み出し

Note 1: PIC16F1516/7/8/9 の場合のみです。2: PIC16(L)F1517/9 の場合のみです。3: 未実装、「1」として読み出されます。

DS41452C_JP - p.32 2013 Microchip Technology Inc.

Page 33: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

BANK 31

F8Ch~

FE3h- 未実装 - -

FE4h STATUS_SHAD - - - - - Z DC C ---- -xxx ---- -uuu

FE5h WREG_SHAD ワーキング レジスタ、シャドウ xxxx xxxx uuuu uuuu

FE6h BSR_SHAD - - - バンクセレクト レジスタ、シャドウ ---x xxxx ---u uuuu

FE7h PCLATH_SHAD - プログラム カウンタ ラッチ、上位レジスタ、シャドウ -xxx xxxx uuuu uuuu

FE8h FSR0L_SHAD 間接データメモリ アドレスポインタ 0、下位バイト、シャドウ xxxx xxxx uuuu uuuu

FE9h FSR0H_SHAD 間接データメモリ アドレスポインタ 0、上位バイト、シャドウ xxxx xxxx uuuu uuuu

FEAh FSR1L_SHAD 間接データメモリ アドレスポインタ 1、下位バイト、シャドウ xxxx xxxx uuuu uuuu

FEBh FSR1H_SHAD 間接データメモリ アドレスポインタ 1、上位バイト、シャドウ xxxx xxxx uuuu uuuu

FECh - 未実装 - -

FEDh STKPTR - - - 現在のスタックポインタ ---1 1111 ---1 1111

FEEh TOSL Top of Stack 下位バイト xxxx xxxx uuuu uuuu

FEFh TOSH - Top of Stack 上位バイト -xxx xxxx -uuu uuuu

表 3-8: 特殊機能レジスタのまとめ ( 続き )

アドレス レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR、BOR時の値

その他のリセット時

の値

凡例 : x = 未知、u = 不変、q = 条件による、- = 未実装 (「0」として読み出し )、r = 予約済み。網掛け表示されている位置は未実装、「0」として読み出し

Note 1: PIC16F1516/7/8/9 の場合のみです。2: PIC16(L)F1517/9 の場合のみです。3: 未実装、「1」として読み出されます。

2013 Microchip Technology Inc. DS41452C_JP - p.33

Page 34: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.4 PCL と PCLATH

プログラム カウンタ (PC) は 15 ビット幅です。下位バイトには、読み書き可能なレジスタである PCL レジスタの値が格納されます。上位バイト (PC<14:8>) にはPCLATH の値が格納され、これらは直接読み書きできません。何らかのリセットが発生すると、PC はクリアされます。図 3-4 に、5 通りの PC 読み込み方法を示します。

図 3-4: 各種状況における PC への読み込み動作

3.4.1 PCL の書き換え

PCL レジスタを格納先とする命令を実行すると、同時にプログラム カウンタ PC<14:8> ビット (PCH) がPCLATH レジスタの内容で置き換えられます。このため、所定の上位 7 ビットを PCLATH レジスタに書き込む事で、プログラム カウンタの内容全体を変更できます。下位 8 ビットを PCL レジスタに書き込むと、プログラム カウンタの 15 ビット全てが PCLATH レジスタの値と PCL レジスタに書き込まれた値に変更されます。

3.4.2 計算型 GOTO

計算型 GOTO は、プログラム カウンタにオフセットを加算する事によって実行されます (ADDWF PCL)。計算型 GOTO 方式を使ってテーブル読み出しを実行する場合、PCL のメモリ境界 ( 各 256 バイトブロック ) を越え

たテーブル位置へのアクセスには注意が必要です。詳細は、アプリケーション ノート AN556『Implementinga Table Read』(DS00556) を参照してください。

3.4.3 計算型関数呼び出し

計算型の関数 CALLを使うと、関数テーブルを維持し、ステートマシンまたはルックアップ テーブルを実現できます。計算型の関数 CALL を使ってテーブル読み出しを実行する場合、PCL のメモリ境界 ( 各 256 バイトブロック ) を越えたテーブル位置へのアクセスには注意が必要です。

CALL命令を使う場合、PCH<2:0> と PCL レジスタにはCALL 命令のオペランドが読み込まれます。PCH<6:3>には PCLATH<6:3> が読み込まれます。

CALLW 命令は、PCLATH と W を組み合わせて格納先アドレスを形成する事で、計算型呼び出しを実現します。計算型 CALLW は、W レジスタに所定のアドレスを読み込んでから CALLW を実行します。PCL レジスタには W の値が読み込まれ、PCH には PCLATHの値が読み込まれます。

3.4.4 分岐

分岐命令は PC にオフセットを加算します。これにより、再配置可能コードとページ境界をまたぐコードが可能となります。分岐には 2 種類 (BRW、BRA)あります。いずれの場合も、PC がインクリメントして次の命令をフェッチします。どちらも PCL メモリの境界を越える事が可能です。

BRW を使う場合、W レジスタに所定の符号なしアドレスを読み込んでから BRWを実行します。PC の値はPC + 1 + W となります。

BRA を使う場合、PC の値は (PC + 1 + BRA 命令の符号付きオペランド ) となります。

DS41452C_JP - p.34 2013 Microchip Technology Inc.

Page 35: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.5 スタック

全てのデバイスが 16 レベル x 15 ビット幅のハードウェア スタックを搭載しています ( 図 3-5 ~図 3-8参照 )。スタック空間は、プログラム空間とデータ空間のいずれにも属していません。CALL または CALLW 命令が実行された場合、または割り込みによって分岐が発生した場合、PCの値がスタックにプッシュされます。RETURN、RETLW、RETFIE命令のいずれかが実行されると、スタックから値がポップされます。PCLATH はプッシュまたはポップの影響を受けません。

STVREN ビット ( コンフィグレーション ワード ) を「0」にプログラムすると、スタックはリングバッファとして機能します。つまり、スタックが 16 回プッシュされ、17 回目のプッシュでは 1 回目のプッシュで格納された値が上書きされます。18 回目のプッシュでは 2回目のプッシュ値が上書きされます ( 以降同様 )。リセットが有効であるかどうかに関係なく、オーバーフロー / アンダーフローが発生すると STKOVF とSTKUNF フラグビットがセットされます。

3.5.1 スタックへのアクセス

スタックへのアクセスには、TOSH、TOSL、STKPTRレジスタを使います。STKPTR は、スタックポインタの現在値を示します。TOSH:TOSL レジスタペアは、スタックのトップ位置 (Top of Stack) を示します。どちらのレジスタも読み書き可能です。PC は 15 ビットであるため、TOS は TOSH と TOSL に分割されます。スタックへアクセスするには、STKPTR 値を調節してTOSH:TOSL を決定し、TOSH:TOSL への読み書きを実行します。STKPTR は 5 ビットでオーバーフローとアンダーフローを検出します。

通常のプログラム動作では、STKPTR は CALL、CALLWおよび割り込み発生時にインクリメントされ、RETLW、RETURN、RETFIE 発生時にデクリメントされます。STKPTR をチェックする事で、いつでもスタックの空き容量を確認できます。STKPTR は、常にスタック内の現在使用中の場所を示します。従って、CALL または CALLW命令は STKPTR をインクリメントしてからPC への書き込みを実行し、リターン命令は PC の値を読み出してから STKPTR をデクリメントします。

スタックへのアクセス例については、図 3-5 ~図 3-8を参照してください。

図 3-5: スタックへのアクセス例 1

Note 1: PUSH または POP と呼ばれる命令 / ニーモニックはありません。これらは、CALL、CALLW、RETURN、RETLW、RETFIE命令の実行時、または割り込みアドレスへのベクタ処理時に発生する操作を指しています。

Note: 割り込み有効時の STKPTR 書き換えには注意が必要です。

2013 Microchip Technology Inc. DS41452C_JP - p.35

Page 36: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 3-6: スタックへのアクセス例 2

図 3-7: スタックへのアクセス例 3

DS41452C_JP - p.36 2013 Microchip Technology Inc.

Page 37: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 3-8: スタックへのアクセス例 4

3.5.2 オーバーフロー / アンダーフローによるリセット

コンフィグレーション ワードのSTVRENビットが「1」にプログラムされている場合、スタックで 16 レベルを超えるプッシュ動作または 1 レベルを下回るポップ動作が生じるとデバイスがリセットされ、PCON レジスタの対応するビット ( それぞれ STKOVF またはSTKUNF) がセットされます。

3.6 間接アドレス指定

INDFn レジスタは物理的なレジスタではありません。INDFn レジスタへアクセスする命令は、実際には FSR( ファイルセレクト レジスタ ) で指定したアドレスにあるレジスタ値へアクセスしています。FSRn アドレスが2つの INDFnレジスタのいずれかを指している場合、読み出し動作は 0を返し、書き込み動作は実行されません ( ただし、ステータスビットは影響を受ける可能性があります )。FSRn レジスタの値は、FSRnHおよび FSRnL のレジスタペアで作成されます。

FSR レジスタは 16 ビットアドレスを形成し、65536 通りのアドレスを指定できます。これらの位置は次に示す 3 つのメモリ領域に分割されています。

• 従来型データメモリ

• リニア データメモリ

• プログラム フラッシュメモリ

2013 Microchip Technology Inc. DS41452C_JP - p.37

Page 38: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 3-9: 間接アドレス指定

0x0000

0x0FFF

Traditional

FSRAddressRange

Data Memory

0x1000Reserved

LinearData Memory

Reserved

0x2000

0x29AF

0x29B0

0x7FFF

0x8000

0xFFFF

0x0000

0x0FFF

0x0000

0x7FFF

ProgramFlash Memory

Note: これらのメモリ領域は全てが実装されているわけではありません。メモリ制限については、各メモリ領域のマップを確認してください。

0x1FFF

DS41452C_JP - p.38 2013 Microchip Technology Inc.

Page 39: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.6.1 従来型データメモリ

従来型データメモリの領域は、FSR アドレスの 0x000から 0xFFF です。このアドレスは、全ての SFR/GPR/共通レジスタの絶対アドレスに該当します。

図 3-10: 従来型データメモリのマップ

Indirect AddressingDirect Addressing

Bank Select Location Select

4 BSR 6 0From Opcode FSRxL7 0

Bank Select Location Select

00000 00001 00010 111110x00

0x7F

Bank 0 Bank 1 Bank 2 Bank 31

0 FSRxH7 0

0 0 0 0

2013 Microchip Technology Inc. DS41452C_JP - p.39

Page 40: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

3.6.2 リニア データメモリ

リニア データメモリの領域は、FSRアドレスの0x2000から 0x29AF です。これは、全バンク内の GPR メモリ (80 バイトブロック ) を示す仮想領域です。

未実装メモリは 0x00 として読み出されます。リニアデータメモリ領域は、FSR をインクリメントするだけで、バンクをまたいで次のバンクの GPR メモリへ直接移動できるため、80 バイトよりも大きなバッファとして使えます。

16 バイトの共通メモリは、リニア データメモリ領域内には含まれません。

図 3-11: リニア データメモリのマップ

3.6.3 プログラム フラッシュメモリ

定数データアクセスを容易にするために、プログラムフラッシュメモリ全体がFSRアドレス空間の上位半分に割り当てられています。FSRnH の MSB がセットされている場合、下位 15 ビットがプログラムメモリのアドレスとなり、INDF でアクセスされます。ただし、INDF でアクセスできる場所は、各メモリ位置の下位 8ビットのみです。FSR/INDF インターフェイスからはプログラム フラッシュメモリに書き込む事はできません。FSR/INDF インターフェイスを使ってプログラム フラッシュメモリにアクセスする命令は、いずれも完了に 1 命令サイクル余分に必要です。

図 3-12: プログラム フラッシュメモリのマップ

7

0 170 0

Location Select 0x2000

FSRnH FSRnL

0x020

Bank 0

0x06F0x0A0

Bank 1

0x0EF

0x120

Bank 2

0x16F

0xF20

Bank 30

0xF6F0x29AF

0

7

170 0

Location Select 0x8000

FSRnH FSRnL

0x0000

0x7FFF0xFFFF

ProgramFlashMemory(low 8bits)

DS41452C_JP - p.40 2013 Microchip Technology Inc.

Page 41: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

4.0 デバイス コンフィグレーション

デバイス コンフィグレーションは、コンフィグレーション ワード、コード保護、デバイス ID から構成されます。

4.1 コンフィグレーション ワード

デバイスには、オシレータやメモリ保護の各種設定を選択できる複数のコンフィグレーション ワードビットがあります。これらは、コンフィグレーション ワード1 (8007h)とコンフィグレーション ワード2 (8008h)として実装されています。

Note: コンフィグレーション ワードの DEBUGビットは、デバッガやプログラマ等のデバイス開発ツールによって自動的に管理されます。デバイスの通常動作中は、このビットを「1」に保つ必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.41

Page 42: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

4.2 レジスタ定義 : コンフィグレーション ワード

レジスタ 4-1: CONFIG1: コンフィグレーション ワード 1

R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-1

FCMEN IESO CLKOUTEN BOREN<1:0> -

bit 13 bit 8

R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1

CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット P = プログラム可能ビット U = 未実装ビット、「1」として読み出し

「0」 = ビットはクリア 「1」 = ビットはセット -n = ブランクまたはバルク消去後の値

bit 13 FCMEN: フェイルセーフ クロックモニタ イネーブル ビット1 = フェイルセーフ クロックモニタを有効にする0 = フェイルセーフ クロックモニタを無効にする

bit 12 IESO: 内部 / 外部切り換えビット1 = 内部 / 外部切り換えモードを有効にする0 = 内部 / 外部切り換えモードを無効にする

bit 11 CLKOUTEN: クロック出力イネーブルビットFOSC コンフィグレーション ビットが LP、XT、HS モードに設定されている場合 :

このビットを無視し CLKOUT 機能を無効にする。CLKOUT ピンはオシレータとして機能するその他の全ての FOSC モードの場合 :

1 = CLKOUT 機能を無効にする。CLKOUT ピンは I/O として機能する0 = CLKOUT ピンの CLKOUT 機能を有効にする

bit 10-9 BOREN<1:0>: ブラウンアウト リセット イネーブルビット11 = BOR を有効にする10 = BOR を動作時に有効、スリープ時に無効にする01 = BOR を BORCON レジスタの SBOREN ビットで制御する00 = BOR を無効にする

bit 8 未実装 :「1」として読み出し

bit 7 CP: コード保護ビット1 = プログラムメモリのコード保護を無効にする0 = プログラムメモリのコード保護を有効にする

bit 6 MCLRE: MCLR/VPP ピン機能選択ビットLVP ビット = 1 の場合 :

このビットは無視されるLVP ビット = 0 の場合 :

1 = MCLR/VPP ピンは MCLR として機能する。弱プルアップを有効にする

0 = MCLR/VPP ピンはデジタル入力として機能する。MCLR を内部で無効にし、弱プルアップは

WPUE3 ビットで制御する

bit 5 PWRTE: パワーアップ タイマ イネーブルビット1 = PWRT を無効にする0 = PWRT を有効にする

bit 4-3 WDTE<1:0>: ウォッチドッグ タイマ イネーブルビット11 = WDT を有効にする10 = WDT を動作時に有効、スリープ時に無効にする01 = WDT を WDTCON レジスタの SWDTEN ビットで制御する00 = WDT を無効にする

DS41452C_JP - p.42 2013 Microchip Technology Inc.

Page 43: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

bit 2-0 FOSC<2:0>: オシレータ選択ビット111 = ECH: 外部クロック、高消費電力モード (4 ~ 20 MHz): CLKIN ピンにデバイスクロックを供

給する110 = ECM: 外部クロック、中消費電力モード (0.5 ~ 4 MHz): CLKIN ピンにデバイスクロックを

供給する101 = ECL: 外部クロック、低消費電力モード (0 ~ 0.5 MHz): CLKIN ピンにデバイスクロックを供

給する100 = INTOSC オシレータ : CLKIN ピンは I/O として機能する011 = EXTRC オシレータ : CLKIN ピンに外部 RC 回路を接続する010 = HS オシレータ : OSC1 と OSC2 ピン間に高速水晶 / セラミック振動子を接続する001 = XT オシレータ : OSC1 と OSC2 ピン間に水晶 / セラミック振動子を接続する000 = LP オシレータ : OSC1 と OSC2 ピン間に低消費電力水晶振動子を接続する

レジスタ 4-1: CONFIG1: コンフィグレーション ワード 1 ( 続き )

2013 Microchip Technology Inc. DS41452C_JP - p.43

Page 44: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

DS41452C_JP - p.44 2013 Microchip Technology Inc.

レジスタ 4-2: CONFIG2: コンフィグレーション ワード 2

R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-1

LVP DEBUG LPBOR BORV STVREN -

bit 13 bit 8

U-1 U-1 U-1 R/P-1 U-1 U-1 R/P-1 R/P-1

- - - VCAPEN(1) - - WRT<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット P = プログラム可能ビット U = 未実装ビット、「1」として読み出し

「0」 = ビットはクリア 「1」 = ビットはセット -n = ブランクまたはバルク消去後の値

bit 13 LVP: 低電圧プログラミング イネーブルビット1 = 低電圧プログラミングを有効にする0 = プログラミング時に MCLR に高電圧を印加する必要がある

bit 12 DEBUG: インサーキット デバッガモード ビット1 = インサーキット デバッガを無効にする。ICSPCLK と ICSPDAT は汎用 I/O ピンとして機能する0 = インサーキット デバッガを有効にする。ICSPCLK と ICSPDAT はデバッガ専用である

bit 11 LPBOR: 低消費電力 BOR1 = 低消費電力 BOR を無効にする0 = 低消費電力 BOR を有効にする

bit 10 BORV: ブラウンアウト リセット電圧選択ビット1 = ブラウンアウト リセット電圧 (Vbor) のトリップポイントを低に設定する0 = ブラウンアウト リセット電圧 (Vbor) のトリップポイントを高に設定する

bit 9 STVREN: スタック オーバーフロー / アンダーフロー リセット イネーブルビット1 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させる0 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させない

bit 8-5 未実装 :「1」として読み出し

bit 4 VCAPEN: 電圧レギュレータ コンデンサ イネーブルビット (1)

PIC16LF1516/7/8/9 の場合 ( レギュレータ無効 ):これらのビットは無視される。全ての VCAP ピン機能を無効にする

PIC16F1516/7/8/9 の場合 ( レギュレータ有効 ):0 = VCAP 機能を RA5 で有効にする1 = 全ての VCAP ピン機能を無効にする

bit 3-2 未実装 :「1」として読み出し

bit 1-0 WRT<1:0>: フラッシュメモリ自己書き込み保護ビット8 kW のフラッシュメモリ (PIC16(L)F1516/7 のみ ):

11 = 書き込み保護を OFF にする10 = 000h ~ 1FFh を書き込み保護状態にし、200h ~ 1FFFh を PMCON 制御によって変更可能

にする01 = 000h ~ FFFh を書き込み保護状態にし、1000h ~ 1FFFh を PMCON 制御によって変更可

能にする00 = 000h ~ 1FFFh を書き込み保護状態にし、PMCON 制御によるアドレス変更を不可にする

16 kW のフラッシュメモリ (PIC16(L)F1518/9 のみ ):11 = 書き込み保護を OFF にする10 = 000h ~ 1FFh を書き込み保護状態にし、200h ~ 3FFFh を PMCON 制御によって変更可能

にする01 = 000h ~ 1FFFh を書き込み保護状態にし、2000h ~ 3FFFh を PMCON 制御によって変更

可能にする00 = 000h ~ 3FFFh を書き込み保護状態にし、PMCON 制御によるアドレス変更を不可にする

Note 1: PIC16F1516/7/8/9 の場合のみです。

2: 具体的なトリップポイント電圧については Vbor パラメータを参照してください。

Page 45: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

4.3 コード保護

コード保護を使うと、不正なアクセスからデバイスを保護できます。プログラムメモリ保護は独立して制御されます。プログラムメモリへの内部アクセスは、コード保護のいかなる設定の影響も受けません。

4.3.1 プログラムメモリ保護

コンフィグレーション ワードの CP ビットによって、プログラムメモリ空間全体が外部の読み書きから保護されます。CP = 0の場合、プログラムメモリに対する外部の読み書きが禁止され、読み出し動作には全て「0」が返されます。保護ビットの設定に関わらず、CPUは常にプログラムメモリを読み出す事ができます。プログラムメモリへの書き込みの可否は、書き込み保護設定で決まります。詳細は、セクション 4.4「書き込み保護」を参照してください。

4.4 書き込み保護

書き込み保護によって、意図しない自己書き込みからデバイスを保護できます。ブートローダ ソフトウェア等のアプリケーションを保護する一方、プログラムメモリの他の部分に対する変更を許可する事ができます。

コンフィグレーション ワードの WRT<1:0> ビットによって、保護するプログラムメモリ ブロックのサイズを定義します。

4.5 ユーザ ID

ユーザがチェックサムまたはその他のコード識別番号を格納できる ID 位置として、4 つのメモリ位置 (8000h~ 8003h) が指定されています。これらの位置には、通常動作時に読み書きが可能です。これらのメモリ位置へのアクセスに関する詳細は、セクション 11.4「ユーザ ID、デバイス ID、コンフィグレーション ワードへのアクセス」を参照してください。チェックサム計算の詳細は、『PIC16(L)F151X/152X Memory ProgrammingSpecification』(DS41442) を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.45

Page 46: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

4.6 デバイス ID とリビジョン ID

メモリ位置 8006h にはデバイス ID とリビジョン ID が格納されています。上位 9 ビットはデバイス ID を、下位 5 ビットはリビジョン ID を格納しています。これらのメモリ位置へのアクセスに関する詳細は、セクション 11.4「ユーザ ID、デバイス ID、コンフィグレーション ワードへのアクセス」を参照してください。

デバイス ID とリビジョン ID の読み出しには、デバイス プログラマやデバッガ等の開発ツールを使います。

4.7 レジスタ定義 : デバイス

レジスタ 4-3: DEVID: デバイス ID レジスタ

R R R R R R

DEV<8:3>

bit 13 bit 8

R R R R R R R R

DEV<2:0> REV<4:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット

「1」 = ビットはセット 「0」 = ビットはクリア

bit 13-5 DEV<8:0>: デバイス ID ビット

bit 4-0 REV<4:0>: リビジョン ID ビット

デバイスのリビジョン識別に使います ( 上記 DEV<8:0> の表参照 )。

DeviceDEVID<13:0> Values

DEV<8:0> REV<4:0>

PIC16F1519 01 0110 111 x xxxx

PIC16F1518 01 0110 110 x xxxx

PIC16F1517 01 0110 101 x xxxx

PIC16F1516 01 0110 100 x xxxx

PIC16LF1519 01 0111 111 x xxxx

PIC16LF1518 01 0111 110 x xxxx

PIC16LF1517 01 0111 101 x xxxx

PIC16LF1516 01 0111 100 x xxxx

DS41452C_JP - p.46 2013 Microchip Technology Inc.

Page 47: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.0 オシレータ モジュール ( フェイルセーフ クロックモニタ機能付き )

5.1 概要

オシレータ モジュールは各種のクロック源と優れた特長を備えているため、消費電力を 小限に抑え 大限の性能を実現しつつ幅広いアプリケーションに適用できます。図 5-1 に、オシレータ モジュールのブロック図を示します。

クロック源は、外部オシレータ、水晶振動子、セラミック振動子、RC ( 抵抗 / コンデンサ ) 回路のいずれかによって供給できます。また、2 つの内部オシレータのうち 1 つをシステムクロック源として供給でき、動作速度はソフトウェアで選択できます。その他のクロックの特長として、以下が挙げられます。

• ソフトウェアによるシステムクロック源選択機能( 外部か内部かを選択 )

• 外部オシレータの起動からコード実行開始までのレイテンシを 小限に抑える 2 段階起動モード

• 外部クロック源 (LP、XT、HS、EC、RC のいずれかのモード ) の障害を検出して自動的に内部オシレータに切り換えるフェイルセーフ クロックモニタ(FSCM) 機能

• 水晶振動子によるクロック源の安定性を確保するオシレータ起動タイマ (OST)

• 16 MHz の HFINTOSC に切り換わる前に内部回路の電源を立ち上げ、安定化できる高速起動オシレータ

オシレータ モジュールは、以下の 8 つのクロックモードのいずれかに設定できます。

1. ECL - 外部クロック低消費電力モード(0 ~ 0.5 MHz)

2. ECM - 外部クロック中消費電力モード(0.5 ~ 4 MHz)

3. ECH - 外部クロック高消費電力モード(4 ~ 20 MHz)

4. LP - 32 kHz 低消費電力水晶振動子モード

5. XT - 中ゲイン水晶 / セラミック振動子オシレータモード ( 大 4 MHz)

6. HS - 高ゲイン水晶 / セラミック振動子モード(4 ~ 20 MHz)

7. RC - 外付け RC ( 抵抗 / コンデンサ )

8. INTOSC - 内部オシレータ (31 kHz ~ 16 MHz)

クロック源のモードは、コンフィグレーション ワードの FOSC<2:0> ビットで設定します。電源投入時に使われるオシレータのタイプはFOSCビットで決まります。

EC クロックモードでは、外部の論理レベル信号をデバイスのクロック源として使います。LP、XT、HS の各クロックモードでは、デバイスに水晶その他の振動子を外付けする必要があります。各モードは、それぞれ異なる周波数レンジに対して 適化されています。RC クロックモードの場合、オシレータの周波数を設定する外付けの抵抗とコンデンサが必要です。

INTOSC 内部オシレータ ブロックは、LFINTOSC とHFINTOSC と呼ばれる低周波および高周波のクロック源を生成します ( 内部オシレータ ブロック、図 5-1参照 )。これら 2 つのクロック源から幅広い周波数のデバイスクロックを供給する事ができます。

2013 Microchip Technology Inc. DS41452C_JP - p.47

Page 48: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 5-1: PIC® MCU クロック源の概略ブロック図

DS41452C_JP - p.48 2013 Microchip Technology Inc.

Page 49: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.2 クロック源の種類

クロック源は外部と内部に分類されます。

外部クロック源は外部回路によって動作します。例えば、オシレータ モジュール (EC モード )、水晶振動子またはセラミック振動子 (LP、XT、HS モード )、RC( 抵抗 / コンデンサ ) モード回路があります。

内部クロック源はオシレータ モジュール内部に統合されています。内部オシレータ ブロックには 2 つの内部オシレータがあり、これらによって 2 つの内部システムクロック源を生成します。16 MHz の高周波数内部オシレータ (HFINTOSC) と 31 kHz の低周波数内部オシレータ (LFINTOSC) です。

システムクロックに外部クロック源と内部クロック源のどちらを使うかは、OSCCON レジスタのシステムクロック選択 (SCS) ビットで選択します。詳細は、セクション 5.3「クロック切り換え」を参照してください。

5.2.1 外部クロック源

以下のいずれかの操作により、外部クロック源をデバイスのシステムクロックとして使えます。

• コンフィグレーション ワードの FOSC<2:0> ビットを外部クロック源を選択するようにプログラムします。これによってデバイスリセット時の既定値のシステムクロックとして外部クロック源が使われます。

• OSCCON レジスタの SCS<1:0> ビットに書き込む事で、システムクロック源を以下のいずれかに切り換えます。

- セカンダリ オシレータ ( 実行時 )

- FOSC ビットの値によって決まる外部クロック源

詳細は、セクション 5.3「クロック切り換え」を参照してください。

5.2.1.1 EC モード

外部クロック (EC) モードでは、外部で生成された論理レベル信号をシステムクロック源として使えます。このモードで動作させる場合、外部クロック源は OSC1入力に接続します。OSC2/CLKOUT は、汎用 I/O または CLKOUT として使えます。図 5-2 に、EC モードでのピン接続を示します。

EC モードには以下の 3 つの消費電力モードがあり、コンフィグレーション ワードによって選択できます。

• 高消費電力、4 ~ 20 MHz (FOSC = 111)

• 中消費電力、0.5 ~ 4 MHz (FOSC = 110)

• 低消費電力、0 ~ 0.5 MHz (FOSC = 101)

EC モードを選択した場合、オシレータ起動タイマ(OST) は無効化されます。従って、パワーオン リセット(POR)後またはスリープからの復帰後に動作の遅延は発生しません。PIC® MCU は完全なスタティック設計であるため、外部クロック入力を停止すると、全てのデータがそのままの状態でデバイスが動作を中断します。外部クロックが再開すると、デバイスは停止直後の状態から動作を再開します。

図 5-2: 外部クロック (EC) モードでの動作

5.2.1.2 LP、XT、HS モード

LP、XT、HS モードでは、水晶振動子またはセラミック振動子をOSC1とOSC2に接続して使います(図 5-3)。これら 3 つのモードによって、内部インバータアンプのゲインが低 / 中 / 高に設定され、種類と速度の異なる振動子に対応します。

LP オシレータモードでは、内部インバータアンプのゲインが も低く設定されます。3 つのモードのうち、消費電流が も少ないのがこのモードです。このモードは、32.768 kHz の音叉型水晶振動子 ( 腕時計用水晶振動子 ) の駆動向けです。

XT オシレータモードでは、内部インバータアンプのゲインが中程度に設定されます。消費電流も 3 つのモードの中間です。このモードは、駆動レベル仕様が中程度の振動子に も適しています。

HS オシレータモードでは、内部インバータアンプのゲインが も高く設定されます。3 つのモードのうち、消費電流が 大です。このモードは、駆動レベルを高く設定する必要のある振動子に 適です。

図 5-3 と図 5-4 に、それぞれ水晶振動子とセラミック振動子を使った代表的な回路を示します。

OSC1/CLKIN

OSC2/CLKOUT

Clock fromExt. System

PIC® MCU

FOSC/4 or I/O(1)

Note 1: 出力は、コンフィグレーション ワードの

CLKOUTEN ビットの設定で決まります。

2013 Microchip Technology Inc. DS41452C_JP - p.49

Page 50: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 5-3: 水晶振動子による動作(LP、XT、HS モード )

図 5-4: セラミック振動子による動作(XT または HS モード )

5.2.1.3 オシレータ起動タイマ (OST)

オシレータ モジュールが LP、XT、HS モードのいずれかに設定されている場合、オシレータ起動タイマ(OST) は OSC1 の発振を 1024 回カウントします。これは、パワーオン リセット (POR) 後のパワーアップタイマ (PWRT) のタイムアウト時 ( 設定されている場合 )、またはスリープからの復帰後に実行されます。この間、プログラム カウンタはインクリメントせず、プログラムの実行は保留されます。ただし、FSCM または 2 段階起動のいずれかが有効な場合を除きます。これらが有効な場合、OST のカウント中もコード実行は継続します。その場合の周波数は、選択されているINTOSC 周波数です。OST を使う事で、水晶またはセラミック振動子を使ったオシレータ回路からオシレータ モジュールに供給されるシステムクロックが起動して安定化している事を確実にできます。

外部オシレータの起動からコード実行までのレイテンシを 小限に抑えるには、2 段階クロック起動モードを使います ( セクション 5.4「2 段階クロック起動モード」参照 )。

Note 1: 水晶振動子の特性は、種類、パッケージ、メーカーにより異なります。仕様と推奨アプリケーションについては、各メーカーのデータシートを参照してください。

2: アプリケーションで予測されるVDDと温度レンジにおけるオシレータの性能を必ず検証してください。

3: オシレータの設計には、マイクロチップ社の以下のアプリケーション ノートを参照してください。

• AN826 『Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices』(DS00826)

• AN849 『Basic PIC® Oscillator Design』(DS00849)

• AN943 『Practical PIC® Oscillator Analysis and Design』(DS00943)

• AN949 『Making Your Oscillator Work』(DS00949)

Note 1: 駆動レベルの低い水晶振動子の場合、直列抵

抗 (RS) が必要となる場合があります。

2: RF の値は、選択したオシレータモードによっ

て異なります ( 通常は 2 ~ 10 M)。

C1

C2

Quartz

RS (1)

OSC1/CLKIN

RF(2) Sleep

To Internal Logic

PIC® MCU

Crystal

OSC2/CLKOUT

Note 1: 駆動レベルの低いセラミック振動子の場合、直

列抵抗 (RS) が必要となる場合があります。

2: RF の値は、選択したオシレータモードによっ

て異なります ( 通常は 2 ~ 10 M)。

3: セラミック振動子を適切に動作させるために、

並列帰還抵抗 (RP) の追加が必要になる場合が

あります。

C1

C2 Ceramic RS (1)

OSC1/CLKIN

RF(2) Sleep

To Internal Logic

PIC® MCU

RP(3)

Resonator

OSC2/CLKOUT

DS41452C_JP - p.50 2013 Microchip Technology Inc.

Page 51: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.2.1.4 セカンダリ オシレータ

セカンダリ オシレータは、Timer1 モジュール専用の水晶振動子用オシレータです。デバイスピンのSOSCO と SOSCI の間に接続した 32.768 kHz の水晶振動子によるタイマ動作向けに 適化されています。

セカンダリ オシレータは代替システムクロック源として使え、クロック切り換え機能によって実行中に選択できます。詳細は、セクション 5.3「クロック切り換え」を参照してください。

図 5-5: 水晶振動子の動作( セカンダリ オシレータ )

5.2.1.5 外部 RC モード

外部 RC ( 抵抗 / コンデンサ ) モードでは、外付けのRC 回路を使えます。クロックにそれほど高い精度が要求されない場合にこのモードを使えば、コストを小限に抑えながら周波数選択の柔軟性を 大限に高める事ができます。

RC 回路は OSC1 へ接続します。OSC2/CLKOUT は、汎用 I/OまたはCLKOUTとして使えます。OSC2/CLKOUTピンの機能は、コンフィグレーション ワードのCLKOUTENビットによって決まります。

図 5-6 に、外部 RC モードの接続を示します。

図 5-6: 外部 RC モード

RC オシレータの周波数は、電源電圧、抵抗 (REXT)、コンデンサ (CEXT) の値と動作温度で決まります。これ以外にオシレータの周波数に影響する要因として、以下のものがあります。

• しきい値電圧のばらつき• 部品の製造公差• パッケージによる静電容量のばらつき

使う外付け RC 部品の許容誤差による変動も考慮する必要があります。

Note 1: 水晶振動子の特性は、種類、パッケージ、メーカーにより異なります。仕様と推奨アプリケーションについては、各メーカーのデータシートを参照してください。

2: アプリケーションで予測されるVDDと温度レンジにおけるオシレータの性能を必ず検証してください。

3: オシレータの設計には、マイクロチップ社の以下のアプリケーション ノートを参照してください。

• AN826 『Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices』(DS00826)

• AN849 『Basic PIC® Oscillator Design』(DS00849)

• AN943 『Practical PIC® Oscillator Analysis and Design』(DS00943)

• AN949 『Making Your Oscillator Work』(DS00949)

• TB097 『Interfacing a Micro Crystal MS1V-T1K 32.768 kHz Tuning Fork Crystal to a PIC16F690/SS』(DS91097)

• AN1288 『Design Practices for Low-Power External Oscillators』(DS01288)

C1

C2

32.768 kHz

SOSCI

To Internal Logic

PIC® MCU

Crystal

SOSCO

Quartz

OSC2/CLKOUT

CEXT

REXT

PIC® MCU

OSC1/CLKIN

FOSC/4 or

InternalClock

VDD

VSS

推奨値 : 10 k REXT 100 k、<3 V3 k REXT 100 k、3 ~ 5 VCEXT > 20 pF、2 ~ 5 V

I/O(1)

Note 1: 出力は、コンフィグレーション ワードの

CLKOUTEN ビットの設定で決まります。

2013 Microchip Technology Inc. DS41452C_JP - p.51

Page 52: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.2.2 内部クロック源

以下のいずれかの操作を実行する事で、内部オシレータ ブロックをシステムクロックとして使うように設定できます。

• コンフィグレーション ワードの FOSC<2:0> ビットを INTOSC クロック源を選択するようにプログラムします。これによってデバイスリセット時に既定値のシステムクロックとしてこのクロック源が使われます。

• OSCCON レジスタの SCS<1:0> ビットに書き込む事で、実行中にシステムクロック源を内部オシレータに切り換えます。詳細は、セクション 5.3「クロック切り換え」を参照してください。

INTOSC モードの場合、OSC1/CLKIN は汎用 I/O として使え、OSC2/CLKOUT は汎用 I/O または CLKOUTとして使えます。

OSC2/CLKOUT ピンの機能は、コンフィグレーションワードの CLKOUTEN ビットによって決まります。

内部オシレータ ブロックには内部システムクロック源を提供する 2 つの独立したオシレータがあります。

1. HFINTOSC ( 高周波数内部オシレータ ) は工場で校正されており、16 MHz で動作します。

2. LFINTOSC ( 低周波数内部オシレータ ) は未校正で、31 kHz で動作します。

5.2.2.1 HFINTOSC

高周波数内部オシレータ (HFINTOSC) は、工場で校正済みの 16 MHz の内部クロック源です。

HFINTOSC の出力は、ポストスケーラとマルチプレクサに接続されています ( 図 5-1 参照 )。OSCCON レジスタの IRCF<3:0> ビットを使うと、HFINTOSC が生成する周波数をソフトウェアで選択できます。詳細は、セクション 5.2.2.4「内部オシレータのクロック切り換えタイミング」を参照してください。

HFINTOSC は以下の方法で有効化します。

• OSCCON レジスタの IRCF<3:0> ビットを所定のHF 周波数に設定し、かつ

• FOSC<2:0> = 100または

• OSCCON レジスタのシステムクロック源 (SCS)ビットを「1x」にセットする

高速起動オシレータを使う事で、HFINTOSC に切り換わる前に内部回路の電源を立ち上げ、安定化できます。

OSCSTATレジスタのHFIOFR (高周波数内部オシレータレディ ) ビットは、HFINTOSC が動作中で使用可能な状態であるかどうかを示します。

OSCSTATレジスタのHFIOFS (高周波数内部オシレータ安定 ) ビットは、HFINTOSC が定格値の 0.5% 以内で動作しているかどうかを示します。

5.2.2.2 LFINTOSC

低周波数内部オシレータ (LFINTOSC) は、未校正の31 kHz 内部クロック源です。

LFINTOSC の出力は、マルチプレクサに接続されています ( 図 5-1 参照 )。OSCCON レジスタの IRCF<3:0>ビットを使って、ソフトウェアで 31 kHz を選択します。詳細は、セクション 5.2.2.4「内部オシレータのクロック切り換えタイミング」を参照してください。LFINTOSC はパワーアップ タイマ (PWRT)、ウォッチドッグ タイマ (WDT)、フェイルセーフ クロックモニタ(FSCM) の周波数としても使われます。

LFINTOSC が有効となるのは、システムクロック源として 31 kHz (OSCCON レジスタの IRCF<3:0> ビット = 000)の内部オシレータを選択するか (OSCCONレジスタの SCS ビット = 1x)、以下のいずれかを有効化した場合です。

• OSCCON レジスタの IRCF<3:0> ビットを所定のLF 周波数に設定し、かつ

• FOSC<2:0> = 100または

• OSCCON レジスタのシステムクロック源 (SCS)ビットを「1x」にセットする

LFINTOSC を使う周辺機能は以下の通りです。

• パワーアップ タイマ (PWRT)

• ウォッチドッグ タイマ (WDT)

• フェイルセーフ クロックモニタ (FSCM)

OSCSTATレジスタのLFIOFR (低周波数内部オシレータレディ ) ビットは、LFINTOSC が動作中で使用可能な状態であるかどうかを示します。

DS41452C_JP - p.52 2013 Microchip Technology Inc.

Page 53: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.2.2.3 内部オシレータの周波数選択

システムクロック速度は、OSCCON レジスタの内部オシレータ周波数選択ビット IRCF<3:0> を使って、ソフトウェアで選択できます。

16 MHz HFINTOSCのポストスケーラの出力とLFINTOSCの出力は、マルチプレクサに接続されています (図 5-1参照 )。OSCCON レジスタの内部オシレータ周波数選択ビット IRCF<3:0> によって、内部オシレータの周波数出力を選択します。周波数は、ソフトウェアによって以下のいずれか 1 つを選択できます。

• 16 MHz

• 8 MHz

• 4 MHz

• 2 MHz

• 1 MHz

• 500 kHz ( リセット後の既定値 )• 250 kHz

• 125 kHz

• 62.5 kHz

• 31.25 kHz

• 31 kHz (LFINTOSC)

OSCCON レジスタの IRCF<3:0> ビットでは、同じ周波数で複数の選択肢があります。これらの選択肢の選び方で、システム設計のトレードオフを調整できます。周波数が同じでも、別のオシレータ源を選んで消費電力を低減する事ができます。同じオシレータ源で周波数を変更すれば、遷移を高速化できます。

5.2.2.4 内部オシレータのクロック切り換えタイミング

HFINTOSC と LFINTOSC を切り換える場合、切り換え後のオシレータが省電力目的でシャットダウンされている場合があります ( 図 5-7 参照 )。この場合、OSCCON レジスタの IRCF<3:0> ビットを変更してから周波数が切り換わるまでに遅延が生じます。HFINTOSC と LFINTOSC オシレータのどちらが現在アクティブであるかは、OSCSTAT レジスタの値で確認できます。周波数切り換えシーケンスは以下の通りです。

1. OSCCON レジスタの IRCF<3:0> ビットが変更される

2. 切り換え後のクロックがシャットダウンされている場合、クロック起動遅延が開始する。

3. クロック切り換え回路が、切り換え前のクロックの立ち下がりエッジを待つ。

4. 現在のクロックが Low に保持され、クロック切り換え回路が切り換え後クロックの立ち上がりエッジを待つ。

5. 切り換え後のクロックがアクティブとなる。

6. 必要に応じて OSCSTAT レジスタが変更される。

7. クロックの切り換えが完了する。

詳細は、図 5-7 を参照してください。

同じクロック源で別の内部オシレータ周波数に切り換える場合、起動遅延なしで切り換わります。表 5-1 に、クロック切り換え時に発生する遅延を示します。

起動遅延の仕様は、セクション 25.0「電気的仕様」のオシレータの表に記載されています。

Note: 全てのリセット発生後、OSCCON レジスタの IRCF<3:0> ビットは「0111」にセットされ、周波数として 500 kHz が選択されます。ユーザは IRCF ビットを変更する事で、別の周波数を選択できます。

2013 Microchip Technology Inc. DS41452C_JP - p.53

Page 54: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 5-7: 内部オシレータの切り換えタイミング

HFINTOSC

LFINTOSC

IRCF <3:0>

System Clock

HFINTOSC

LFINTOSC

IRCF <3:0>

System Clock

0 0

0 0

Start-up Time 2-cycle Sync Running

2-cycle Sync Running

HFINTOSC LFINTOSC (FSCM and WDT disabled)

HFINTOSC LFINTOSC (Either FSCM or WDT enabled)

LFINTOSC

HFINTOSC

IRCF <3:0>

System Clock

= 0 0

Start-up Time 2-cycle Sync Running

LFINTOSC HFINTOSCLFINTOSC turns off unless WDT or FSCM is enabled

DS41452C_JP - p.54 2013 Microchip Technology Inc.

Page 55: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.3 クロック切り換え

システムクロック源として外部クロック源と内部クロック源のどちらを使うかは、OSCCON レジスタのシステムクロック選択 (SCS) ビットで設定します。SCS ビットでは以下のクロック源を選択できます。

• コンフィグレーション ワードの FOSC ビットで決まる既定値のシステム オシレータ

• セカンダリ オシレータ (32 kHz 水晶振動子 )

• 内部オシレータ ブロック (INTOSC)

5.3.1 システムクロック選択 (SCS) ビット

OSCCON レジスタのシステムクロック選択 (SCS)ビットは、CPU と周辺モジュールに使うシステムクロック源を選択します。

• OSCCON レジスタの SCS ビット = 00の場合、システムクロック源はコンフィグレーション ワードの FOSC<2:0> ビットの値によって決まります。

• OSCCON レジスタの SCS ビット = 01の場合のシステムクロック源はセカンダリ オシレータです。

• OSCCON レジスタの SCS ビット = 1xの場合、システムクロック源には、OSCCON レジスタのIRCF<3:0> ビットで選択した内部オシレータ周波数が使われます。リセット後、OSCCON レジスタの SCS ビットは常にクリアされます。

クロック源を切り換えた場合、新しいクロックが安定するまで遅延が必要です。表 5-1 にこれらのオシレータの遅延を示します。

5.3.2 オシレータ起動タイマステータス(OSTS) ビット

OSCSTAT レジスタのオシレータ起動タイマステータス (OSTS) ビットは、システムクロックがコンフィグレーション ワードの FOSC<2:0> ビットで定義された外部クロック源、または内部クロック源のどちらで動作中であるかを示します。LP/XT/HS モードでは、OSTS ビットを参照する事でオシレータ起動タイマ(OST) がタイムアウトしたかどうかを確認できます。OSTSはセカンダリ オシレータのステータスを反映していません。

5.3.3 セカンダリ オシレータ

セカンダリ オシレータは、Timer1 モジュール専用の水晶振動子用オシレータです。デバイスピンのSOSCO と SOSCI の間に接続した 32.768 kHz の水晶振動子によるタイマ動作向けに 適化されています。

セカンダリ オシレータは、T1CON レジスタのT1OSCEN 制御ビットで有効にします。Timer1 周辺モジュールに関する詳細は、セクション 18.0「Timer1モジュール ( ゲート制御対応 )」を参照してください。

5.3.4 セカンダリ オシレータ レディ(SOSCR) ビット

セカンダリ オシレータをシステムクロック源として選択する前に、動作の準備が整っている事を確認する必要があります。OSCSTAT レジスタのセカンダリ オシレータレディ (SOSCR) ビットは、セカンダリ オシレータが使用可能な状態であるかどうかを示します。SOSCR ビットがセットされた後に、SCS ビットを設定してセカンダリ オシレータを選択できます。

Note: 2 段階起動またはフェイルセーフ クロックモニタにおいて自動的にクロックが切り換わった場合、OSCCON レジスタのSCS ビットは変更されません。現在のシステムクロック源は、OSCSTAT レジスタの OSTS ビットで確認できます。

2013 Microchip Technology Inc. DS41452C_JP - p.55

Page 56: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.4 2 段階クロック起動モード

2 段階起動モードは、外部オシレータの起動からコード実行までのレイテンシを 小限に抑える事によって、省電力性をさらに高める働きをします。2 段階起動モードは復帰に要する時間から外部オシレータの起動時間を除外する事ができるため、特にスリープを多用するアプリケーションで総消費電力を低減できます。このモードにより、アプリケーションはスリープから復帰し、外部オシレータの安定を待たずに、クロック源として内部オシレータ ブロック INTOSC を使って少数の命令を実行し、すぐにスリープに戻る事ができるからです。

2 段階起動は、オシレータ モジュールを LP、XT、HSモードに設定した場合に有利です。これらのモードではオシレータ起動タイマ (OST) が有効であり、オシレータをシステムクロック源として使えるまで 1024カウント待機する必要があります。

オシレータ モジュールが LP、XT、HS 以外のモードに設定されている場合、2 段階起動は無効化されます。外部クロック オシレータは POR 後またはスリープからの復帰時に安定化の時間を必要としないためです。

デバイスがスリープに移行する前に OST のカウント数が 1024 に達すると、OSCSTAT レジスタの OSTSビットがセットされ、プログラム実行のクロック源が外部オシレータに切り換わります。しかし、復帰している時間が短い場合、システムが外部オシレータによって動作する機会が全くない場合もあります。

5.4.1 2 段階起動モードの設定

2 段階起動モードは、以下のように設定します。

• コンフィグレーション ワードの IESO( 内部 / 外部切り換え ) ビット = 1にセットして、2 段階起動モードを有効にする。

• OSCCON レジスタの SCS ビット = 00にセットする。

• コンフィグレーション ワードの FOSC<2:0> ビットを LP/XT/HS のいずれかのモードにセットする。

2 段階起動モードには、以下のいずれかの場合に移行します。

• パワーオン リセット (POR) 後、およびパワーアップ タイマ (PWRT) が有効な場合 PWRT のタイムアウト後

• スリープから復帰後

表 5-1: オシレータ切り換え遅延

Note: SLEEP 命令を実行するとオシレータ起動時間のカウントは終了し、OSCSTAT レジスタの OSTS ビットはクリアされた状態を維持します。

切り換え前 切り換え後 周波数 オシレータ遅延

スリープ /PORLFINTOSCHFINTOSC

31 kHz31.25 kHz ~ 16 MHz

オシレータのウォームアップ遅延(TWARM)

スリープ /POR EC、RC DC ~ 20 MHz 2 サイクル

LFINTOSC EC、RC DC ~ 20 MHz 1 サイクル

スリープ /PORセカンダリ オシレータ、LP、XT、HS

32 kHz ~ 20 MHz 1024 クロックサイクル (OST)

任意のクロック源 HFINTOSC 31.25 kHz ~ 16 MHz 2 s ( 概算値 )

任意のクロック源 LFINTOSC 31 kHz 1 サイクル

任意のクロック源 セカンダリ オシレータ 32 kHz 1024 クロックサイクル (OST)

DS41452C_JP - p.56 2013 Microchip Technology Inc.

Page 57: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.4.2 2 段階起動シーケンス

1. パワーオン リセットまたはスリープから復帰する。

2. OSCCONレジスタのIRCF<3:0>ビットで設定した周波数の内部オシレータで、命令の実行が始まる。

3. OST が有効になり、1024 クロックサイクルをカウントする。

4. OST がタイムアウトし、内部オシレータの立ち下がりエッジを待つ。

5. OSTS がセットされる。

6. 切り換え後クロック (LP/XT/HS のいずれか ) の立ち下がりエッジまで、システムクロックが Low に保持される。

7. システムクロックが外部クロック源に切り換わる。

5.4.3 2 段階クロック ステータスの確認

OSCSTAT レジスタの OSTS ビットの状態を参照すると、マイクロコントローラがコンフィグレーションワードの FOSC<2:0> ビットで定義した外部クロック源で動作しているか、内部オシレータで動作しているかを確認できます。

図 5-8: 2 段階起動

0 1 1022 1023

PC + 1

TOSTT

INTOSC

OSC1

OSC2

Program Counter

System Clock

PC - N PC

2013 Microchip Technology Inc. DS41452C_JP - p.57

Page 58: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.5 フェイルセーフ クロックモニタ

フェイルセーフ クロックモニタ (FSCM) により、外部オシレータに障害が発生してもデバイスは動作を続ける事ができます。オシレータ起動タイマ (OST) のタイムアウト後、FSCM はいつでもオシレータの障害を検出できます。FSCM を有効にするには、コンフィグレーション ワードの FCMEN ビットをセットします。FSCM は全ての外部オシレータモード (LP、XT、HS、EC、RC、セカンダリ オシレータ ) に適用できます。

図 5-9: FSCM のブロック図

5.5.1 フェイルセーフ条件の検出

FSCM モジュールは、外部オシレータと FSCM サンプルクロックを比較する事で、オシレータの障害を検出します。サンプルクロックは LFINTOSC を 64 分周して生成します ( 図 5-9 参照 )。障害検出ブロック内部はラッチ回路です。外部クロックの立ち下がりエッジごとに、ラッチがセットされます。そして、サンプルクロックの立ち上がりエッジごとに、ラッチがクリアされます。サンプルクロックが 1/2 サイクル経過しても外部クロックが Low にならない場合、障害として検出されます。

5.5.2 フェイルセーフの動作

外部クロックに障害が発生すると、FSCM によってデバイスクロックが内部クロック源に切り換えられ、PIR2 レジスタの OSFIF フラグビットがセットされます。PIE2 レジスタの OSFIE ビットもセットされている場合に OSFIF フラグがセットされると、割り込みが発生します。この割り込みによって、デバイスのファームウェアはクロック障害によって発生する問題を軽減する手順を実行できます。デバイスのファームウェアが外部オシレータを正常に再起動し、動作を再度外部に切り換えるまで、システムクロックは引き続き内部クロック源によって駆動されます。

FSCM が使う内部クロック源は、OSCCON レジスタの IRCF<3:0> ビットによって決まります。従って、障害の発生前に内部オシレータを設定しておく事ができます。

5.5.3 フェイルセーフ条件の解消

リセット、SLEEP 命令の実行、OSCCON レジスタのSCS ビットの変更によって、フェイルセーフ条件を解消できます。SCS ビットが変更されると OST が再開します。OST のカウント中、デバイスは OSCCON レジスタで選択した INTOSC で動作を継続します。OSTがタイムアウトすると、外部クロック源に正常に切り換わった後にフェイルセーフ条件が解消されます。外部クロック源に切り換える前に、OSFIF ビットをクリアしておく必要があります。フェイルセーフ条件が解消されていなければ、ハードウェアによって OSFIF フラグが再度セットされます。

5.5.4 リセットまたはスリープからの復帰

FSCM は、オシレータ起動タイマ (OST) のタイムアウト後にオシレータの障害を検出するように設計されています。OST が動作するのは、スリープからの復帰後または全タイプのリセット後です。EC またはRC クロックモードの場合、OST は使いません。リセット後または復帰完了後すぐに FSCM を有効にするためです。FSCM 有効時は、2 段階起動も有効です。従って、デバイスは OST 動作中でも常にコードを実行します。

External

LFINTOSC÷ 64

S

R

Q

31 kHz(~32 s)

488 Hz(~2 ms)

Clock MonitorLatch

ClockFailure

Detected

Oscillator

Clock

Q

Sample Clock

Note: オシレータの起動時間には大きな幅があるため、オシレータの起動中 ( リセットまたはスリープ完了後 )はフェイルセーフ回路はアクティブになりません。一定時間経過後、OSCSTAT レジスタのステータスビットを参照してオシレータ起動状態を確認し、システムクロックの切り換えが正常に実行された事を確認してください。

DS41452C_JP - p.58 2013 Microchip Technology Inc.

Page 59: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 5-10: FSCM のタイミング図

OSCFIF

SystemClock

Output

Sample Clock

FailureDetected

OscillatorFailure

Note: 通常、システムクロックはサンプルクロックよりもはるかに高周波数です。この図では、2 つの周波数の

相対関係を分かりやすく示しています。

(Q)

Test Test Test

Clock Monitor Output

2013 Microchip Technology Inc. DS41452C_JP - p.59

Page 60: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

5.6 レジスタ定義 : オシレータ制御

レジスタ 5-1: OSCCON: オシレータ制御レジスタ

U-0 R/W-0/0 R/W-1/1 R/W-1/1 R/W-1/1 U-0 R/W-0/0 R/W-0/0

- IRCF<3:0> - SCS<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 未実装 :「0」として読み出し

bit 6-3 IRCF<3:0>: 内部オシレータ周波数選択ビット1111 = 16 MHz1110 = 8 MHz1101 = 4 MHz1100 = 2 MHz1011 = 1 MHz1010 = 500 kHz(1)

1001 = 250 kHz(1)

1000 = 125 kHz(1)

0111 = 500 kHz ( リセット時の既定値 )0110 = 250 kHz0101 = 125 kHz0100 = 62.5 kHz001x = 31.25 kHz000x = 31 kHz LF

bit 2 未実装 :「0」として読み出し

bit 1-0 SCS<1:0>: システムクロック選択ビット

1x = 内部オシレータ ブロック01 = セカンダリ オシレータ00 = コンフィグレーション ワードの FOSC<2:0> ビットによって決まるクロック

Note 1: HFINTOSC から生成される周波数と重複しています。

DS41452C_JP - p.60 2013 Microchip Technology Inc.

Page 61: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 5-2: クロック源関連のレジスタのまとめ

表 5-3: クロック源関連のコンフィグレーション ワードのまとめ

レジスタ 5-2: OSCSTAT: オシレータ ステータス レジスタ

R-1/q U-0 R-q/q R-0/q U-0 U-0 R-0/q R-0/q

SOSCR - OSTS HFIOFR - - LFIOFR HFIOFS

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア q = 条件による

bit 7 SOSCR: セカンダリ オシレータレディ ビット

T1OSCEN = 1の場合 :1 = セカンダリ オシレータの準備が完了している0 = セカンダリ オシレータの準備が完了していない

T1OSCEN = 0 の場合 :1 = Timer1 クロック源が常にレディ状態である

bit 6 未実装 :「0」として読み出し

bit 5 OSTS: オシレータ起動タイマステータス ビット

1 = コンフィグレーション ワードの FOSC<2:0> ビットで定義されたクロックによって動作中である

0 = 内部オシレータによって動作中である (FOSC<2:0> = 100)

bit 4 HFIOFR: 高周波数内部オシレータレディ ビット

1 = HFINTOSC の準備が完了している0 = HFINTOSC の準備が完了していない

bit 3-2 未実装 :「0」として読み出し

bit 1 LFIOFR: 低周波数内部オシレータレディ ビット

1 = LFINTOSC の準備が完了している0 = LFINTOSC の準備が完了していない

bit 0 HFIOFS: 高周波数内部オシレータ安定ビット

1 = 16 MHz オシレータ HFINTOSC の動作が安定し、INTOSC を駆動中である0 = 16 MHz オシレータ HFINTOSC の動作が安定せず、起動オシレータが INTOSC を駆動中である

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

OSCCON - IRCF<3:0> - SCS<1:0> 60

OSCSTAT SOSCR - OSTS HFIOFR - - LFIOFR HFIOFS 61

PIE2 OSFIE - - - BCLIE - - CCP2IE 78

PIR2 OSFIF - - - BCLIF - - CCP2IF 80

T1CON TMR1CS<1:0> T1CKPS<1:0> T1OSCEN T1SYNC - TMR1ON 161

凡例 : - = 未実装、「0」として読み出し。網掛けの部分はクロック源では使いません。

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG113:8 FCMEN IESO CLKOUTEN BOREN<1:0> -

427:0 CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分はクロック源では使いません。

2013 Microchip Technology Inc. DS41452C_JP - p.61

Page 62: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.62 2013 Microchip Technology Inc.

Page 63: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

6.0 リセット

このデバイスは以下の複数の方法でリセットできます。

• パワーオン リセット (POR)

• ブラウンアウト リセット (BOR)

• 低消費電力ブラウンアウト リセット (LPBOR)

• MCLR リセット

• WDT リセット

• RESET命令

• スタック オーバーフロー

• スタック アンダーフロー

• プログラミング モードの終了

VDD を安定させるために、必要に応じて BOR またはPOR 後のリセット時間を延長するパワーアップ タイマを有効にする事もできます。

図 6-1 に、内蔵リセット回路の概略ブロック図を示します。

図 6-1: 内蔵リセット回路の概略ブロック図

Note 1: BOR が動作する条件については表 6-1 を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.63

Page 64: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

6.1 パワーオン リセット (POR)

VDD が 小許容値に達するまで、POR 回路はデバイスをリセット状態に保ちます。VDD の立ち上がりが遅い場合、デバイスを高速で動作させる場合、またはアナログ性能に制約がある場合、 小 VDD より高い設定が必要になる事があります。PWRT、BOR、MCLR 機能を使うと、デバイスの動作条件が全て満たされるまで起動期間を延長する事ができます。

6.1.1 パワーアップ タイマ (PWRT)

パワーアップ タイマは、POR またはブラウンアウト リセット時に、公称 64 ms のタイムアウトを提供します。

PWRT がアクティブの間、デバイスはリセット状態に維持されます。PWRT による遅延によって、VDD が許容レベルまで立ち上がる時間を余分に確保できます。パワーアップ タイマを有効にするには、コンフィグレーション ワードの PWRTE ビットをクリアします。

パワーアップ タイマは POR または BOR の解除後に起動します。

詳細は、アプリケーション ノート AN607『Power-upTrouble Shooting』(DS00607) を参照してください。

6.2 ブラウンアウト リセット (BOR)

BOR 回路は、VDD がユーザ設定可能な 低レベルまで低下すると、デバイスをリセット状態に維持します。POR と BOR を使う事で、デバイスが正常動作レンジ外の VDD で動作する事を防止できます。

ブラウンアウト リセット モジュールにはコンフィグレーション ワードの BOREN<1:0> ビットによって制御される、以下の 4 つの動作モードがあります。

• BOR を常時 ON にする

• BOR をスリープ時に OFF にする

• BOR をソフトウェアで制御する

• BOR を常時 OFF にする

詳細は、表 6-1 を参照してください。

ブラウンアウト リセットをトリガする電圧値は、コンフィグレーション ワードの BORV ビットで選択します。

VDD のノイズ除去フィルタは、小さな電圧変動によってBORがトリガされる事を防ぎます。VDDがパラメータ TBORDC よりも長い期間 VBOR を下回ると、デバイスがリセットされます。詳細は、図 6-2 を参照してください。

表 6-1: BOR の動作モード

6.2.1 BOR を常時 ON にする

コンフィグレーション ワードのBORENビットを「11」にプログラムすると、BORが常時ON状態を保ちます。BOR がレディ状態になり、VDD が BOR しきい値より高くなるまで、デバイスの起動を遅延させます。

BOR 保護はスリープ中も有効です。BOR によってスリープからの復帰時に遅延が発生する事はありません。

6.2.2 BOR をスリープ時に OFF にする

コンフィグレーション ワードのBORENビットを「10」にプログラムすると、スリープ時を除いて BOR が ON状態を保ちます。BOR がレディ状態になり、VDD がBOR しきい値より高くなるまで、デバイスの起動を遅延させます。

BOR 保護はスリープ中は無効です。スリープからの復帰時、BOR がレディ状態になるまで待機します。

6.2.3 BOR をソフトウェアで制御する

コンフィグレーション ワードのBORENビットを「01」にプログラムした場合の BOR の動作は BORCON レジスタの SBOREN ビットによって決まります。デバイスの起動が、BOR のレディ状態または VDD レベルによって遅延する事はありません。

BOR 保護は、BOR 回路の準備が整うとただちに開始します。BOR 回路の状態は、BORCON レジスタのBORRDY ビットに反映されます。

BOR 保護の状態はスリープによって変化しません。

BOREN<1:0> SBOREN デバイスモード BOR モードPOR 解除時 / スリープからの

復帰時の命令実行

11 X X アクティブ BOR レディ (BORRDY = 1) を待機 (1)

10 X通常動作 アクティブ

BOR レディ (BORRDY = 1) を待機スリープ 無効

011 X アクティブ BOR レディ (BORRDY = 1) を待機 (1)

0 X 無効ただちに開始 (BORRDY = x)

00 X X 無効

Note 1: これらのケースでは「POR の解除」と「スリープからの復帰」時、起動遅延は発生しません。BOREN<1:0>ビットによって BOR 回路が強制的に ON になるため、BOR レディフラグは CPU が命令実行の準備を完了する前にセットされているためです (BORRDY = 1)。

DS41452C_JP - p.64 2013 Microchip Technology Inc.

Page 65: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 6-2: ブラウンアウトの状態

6.3 レジスタ定義 : BOR 制御

レジスタ 6-1: BORCON: ブラウンアウト リセット制御レジスタ

R/W-1/u R/W-0/u U-0 U-0 U-0 U-0 U-0 R-q/u

SBOREN BORFS - - - - - BORRDY

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア q = 条件による

bit 7 SBOREN: ブラウンアウト リセット イネーブルビット (1)

コンフィグレーション ワードの BOREN <1:0> 01の場合 :SBOREN は読み書き可能だが、BOR へ影響しない

コンフィグレーション ワードの BOREN <1:0> = 01の場合 :1 = BOR を有効にする0 = BOR を無効にする

bit 6 BORFS: ブラウンアウト リセット高速起動ビット (1)

BOREN<1:0> = 11 ( 常時 ON)、または BOREN<1:0> = 00 ( 常時 OFF) の場合 :BORFS は読み書き可能だが、BOR へ影響しない

BOREN <1:0> = 10 ( スリープ時無効 )、または BOREN<1:0> = 01 ( ソフトウェア制御 ) の場合 :1 = バンドギャップを強制的に常時 ON にする ( スリープ / 復帰 / 通常動作の各条件に適用 )0 = バンドギャップは通常動作するが、停止可能である

bit 5-1 未実装 :「0」として読み出し

bit 0 BORRDY: ブラウンアウト リセット回路レディ ステータス ビット

1 = ブラウンアウト リセット回路がアクティブである0 = ブラウンアウト リセット回路がアクティブでない

Note 1: BOREN<1:0> ビットはコンフィグレーション ワード内にあります。

TPWRT(1)

VBOR VDD

InternalReset

VBOR VDD

InternalReset TPWRT(1)< TPWRT

TPWRT(1)

VBOR VDD

InternalReset

Note 1: TPWRT の遅延は、PWRTE ビットが「0」にプログラムされている場合のみ生じます。

2013 Microchip Technology Inc. DS41452C_JP - p.65

Page 66: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

6.4 低消費電力ブラウンアウト リセット(LPBOR)

低消費電力ブラウンアウト リセット (LPBOR) は、リセット サブシステムに不可欠な部分です。BOR と他のモジュールとの相互作用については、図 6-1 を参照してください。

LPBOR は外部 VDD ピンの監視に使います。一定の値より低い電圧が検出されると、デバイスはリセット状態に保持されます。その場合、レジスタビット (BOR)が変化し、BOR リセットが発生した事を示します。BOR と LPBOR は、いずれも同じビットをセットします。レジスタ 6-2 を参照してください。

6.4.1 LPBOR の有効化

LPBOR はコンフィグレーション ワードの LPBORENビットによって制御します。デバイスを消去すると、LPBOR モジュールは既定値 ( 無効 ) に戻ります。

6.4.1.1 LPBOR モジュールの出力

LPBOR モジュールの出力は、リセットをアサートするかどうかを示す信号です。この信号とBORモジュールのリセット信号の論理和 (OR) を取る事で、PCONレジスタと電源制御ブロックに入力される汎用 BOR信号が得られます。

6.5 MCLR

MCLRはデバイスをリセットする外部入力です。MCLR機能は、コンフィグレーション ワードの MCLRE ビットとコンフィグレーション ワードのLVPビットによって設定します ( 表 6-2)。

6.5.1 MCLR 有効

MCLRを有効にして、このピンをLowに保持すると、デバイスはリセット状態を維持します。MCLR ピンは、デバイス内部の弱プルアップ回路を介してVDDに接続されています。

デバイスのMCLRリセットパスはノイズフィルタを備えています。このフィルタによって、小さなパルスは検出されても無視されます。

6.5.2 MCLR 無効

MCLR が無効の場合、このピンは汎用入力として機能し、内部の弱プルアップ回路はソフトウェアが制御します。詳細は、セクション 12.6「PORTE レジスタ」を参照してください。

6.6 ウォッチドッグ タイマ (WDT)リセット

ウォッチドッグ タイマは、タイムアウト期間内にファームウェアが CLRWDT命令を発行しないとリセットを生成します。STATUS レジスタの TO ビットと PDビットの変化が WDT リセットを示します。詳細は、セクション 10.0「ウォッチドッグ タイマ (WDT)」を参照してください。

6.7 RESET命令

RESET命令はデバイスをリセットします。PCON レジスタの RI ビットが「0」にセットされます。RESET命令実行後の既定値は表 6-4 を参照してください。

6.8 スタック オーバーフロー / アンダーフローによるリセット

スタックのオーバーフロー/アンダーフローが発生した場合にデバイスをリセットできます。PCON レジスタの STKOVF または STKUNF ビットによってリセット状態が示されます。これらのリセットは、コンフィグレーション ワードのSTVRENビットをセットする事で有効化します。詳細は、セクション 3.5.2「オーバーフロー / アンダーフロー によるリセット」を参照してください。

6.9 プログラミング モードの終了

プログラミング モードを終了すると、デバイスはPOR発生時のように動作します。

6.10 パワーアップ タイマ

必要に応じてパワーアップ タイマを使い、BOR またはPORイベント後のデバイス実行を遅延させる事ができます。このタイマは通常、デバイスが動作を開始する前に VDD を安定化させるために使います。

パワーアップ タイマはコンフィグレーション ワードの PWRTE ビットによって制御します。

6.11 起動シーケンス

POR または BOR の解除後にデバイスが実行を開始するには、以下の条件が満たされる必要があります。

1. パワーアップ タイマのカウント終了(有効な場合)

2. オシレータ起動タイマのカウント終了( オシレータ源が必要としている場合 )

3. MCLR の解除 ( 有効な場合 )

タイムアウトの合計時間は、オシレータとパワーアップ タイマの設定で決まります。詳細は、セクション 5.0「オシレータ モジュール ( フェイルセーフ クロックモニタ機能付き )」を参照してください。

パワーアップ タイマとオシレータ起動タイマは、MCLRリセットとは別に動作します。MCLRをLowに保持したままでいると、パワーアップ タイマとオシレータ起動タイマがタイムアウトします。MCLR を High に

表 6-2: MCLR の設定

MCLRE LVP MCLR

0 0 無効

1 0 有効

x 1 有効

Note: リセットはMCLRピンを Lowに駆動しません。

DS41452C_JP - p.66 2013 Microchip Technology Inc.

Page 67: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

すると、ただちにプログラムの実行が開始します(図 6-3 参照 )。これは、テスト時または並列動作している複数のデバイスの同期を取る場合に便利です。

図 6-3: リセット起動シーケンス

TOST

TMCLR

TPWRT

VDD

Internal POR

Power-Up Timer

MCLR

Internal RESET

Oscillator Modes

Oscillator Start-Up Timer

Oscillator

FOSC

Internal Oscillator

Oscillator

FOSC

External Clock (EC)

CLKIN

FOSC

External Crystal

2013 Microchip Technology Inc. DS41452C_JP - p.67

Page 68: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

6.12 リセット原因の特定

全てのリセットがSTATUSおよびPCONレジスタの複数のビット値を変化させます。これらのビットを観察するとリセットの原因が分かります。表 6-3 と表 6-4 にこれらのレジスタのリセット時の状態を示します。

表 6-3: リセット ステータスビットとその意味

表 6-4: 特殊レジスタのリセット時の状態

STKOVF STKUNF RWDT RMCLR RI POR BOR TO PD 状態

0 0 1 1 1 0 x 1 1 パワーオン リセット

0 0 1 1 1 0 x 0 x 不正、TO は POR でセット

0 0 1 1 1 0 x x 0 不正、PD は POR でセット

0 0 u 1 1 u 0 1 1 ブラウンアウト リセット

u u 0 u u u u 0 u WDT リセット

u u u u u u u 0 0 スリープからの WDT 復帰

u u u u u u u 1 0 スリープからの割り込み復帰

u u u 0 u u u u u 通常動作中の MCLR リセット

u u u 0 u u u 1 0 スリープ中の MCLR リセット

u u u u 0 u u u u RESET命令の実行

1 u u u u u u u u スタック オーバーフロー リセット(STVREN = 1)

u 1 u u u u u u u スタック アンダーフロー リセット(STVREN = 1)

状態プログラムカウンタ

STATUSレジスタ

PCONレジスタ

パワーオン リセット 0000h ---1 1000 00-- 110x

通常動作中の MCLR リセット 0000h ---u uuuu uu-- 0uuu

スリープ中の MCLR リセット 0000h ---1 0uuu uu-- 0uuu

WDT リセット 0000h ---0 uuuu uu-- uuuu

スリープからの WDT 復帰 PC + 1 ---0 0uuu uu-- uuuu

ブラウンアウト リセット 0000h ---1 1uuu 00-- 11u0

スリープからの割り込み復帰 PC + 1(1) ---1 0uuu uu-- uuuu

RESET命令の実行 0000h ---u uuuu uu-- u0uu

スタック オーバーフロー リセット (STVREN = 1) 0000h ---u uuuu 1u-- uuuu

スタック アンダーフロー リセット (STVREN = 1) 0000h ---u uuuu u1-- uuuu

凡例 : u = 不変、x = 未知、- = 未実装 (「0」として読み出し )Note 1: 割り込みによる復帰で GIE ( グローバル イネーブルビット ) がセットされている場合、リターンアドレ

スがスタックにプッシュされ、PC+1 の実行後に PC に割り込みベクタ (0004h) が読み込まれます。

DS41452C_JP - p.68 2013 Microchip Technology Inc.

Page 69: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

6.13 電源制御 (PCON) レジスタ

電源制御 (PCON) レジスタには、以下のリセットの種類を見分けるためのフラグビットがあります。

• パワーオン リセット (POR)

• ブラウンアウト リセット (BOR)

• RESET 命令によるリセット (RI)

• MCLR リセット (RMCLR)

• ウォッチドッグ タイマリセット (RWDT)

• スタック アンダーフローによるリセット (STKUNF)

• スタック オーバーフローによるリセット (STKOVF)

レジスタ 6-2 に PCON レジスタの各ビットを示します。

6.14 レジスタ定義 : 電源制御

レジスタ 6-2: PCON: 電源制御レジスタ

R/W/HS-0/q R/W/HS-0/q U-0 R/W/HC-1/q R/W/HC-1/q R/W/HC-1/q R/W/HC-q/u R/W/HC-q/u

STKOVF STKUNF - RWDT RMCLR RI POR BOR

bit 7 bit 0

凡例 :

HC = ビットはハードウェアでクリア HS = ビットはハードウェアでセット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -m/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア q = 条件による

bit 7 STKOVF: スタック オーバーフロー フラグビット

1 = スタック オーバーフローが発生した0 = スタック オーバーフローは発生していない、またはファームウェアによってクリアされた

bit 6 STKUNF: スタック アンダーフロー フラグビット

1 = スタック アンダーフローが発生した0 = スタック アンダーフローは発生していない、またはファームウェアによってクリアされた

bit 5 未実装 :「0」として読み出し

bit 4 RWDT: ウォッチドッグ タイマリセット フラグビット

1 = ウォッチドッグ タイマリセットは発生していない、またはファームウェアによって「1」にセットされた

0 = ウォッチドッグ タイマリセットが発生した ( ハードウェアによってクリアされた )

bit 3 RMCLR: MCLR リセット フラグビット

1 = MCLR リセットは発生していない、またはファームウェアによって「1」にセットされた0 = MCLR リセットが発生した ( ハードウェアによってクリアされた )

bit 2 RI: RESET命令フラグビット

1 = RESET命令は実行されていない、またはファームウェアによって「1」にセットされた0 = RESET命令が実行された ( ハードウェアによってクリアされた )

bit 1 POR: パワーオン リセット ステータスビット

1 = パワーオン リセットは発生していない0 = パワーオン リセットが発生した ( パワーオン リセット発生後はソフトウェアでセットする必要

がある )

bit 0 BOR: ブラウンアウト リセット ステータスビット

1 = ブラウンアウト リセットは発生していない0 = ブラウンアウト リセットが発生した ( パワーオン リセットまたはブラウンアウト リセット発生

後はソフトウェアでセットする必要がある )

2013 Microchip Technology Inc. DS41452C_JP - p.69

Page 70: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 6-5: リセット関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BORCON SBOREN BORFS - - - - - BORRDY 65

PCON STKOVF STKUNF - RWDT RMCLR RI POR BOR 69

STATUS - - - TO PD Z DC C 21

WDTCON - - WDTPS<4:0> SWDTEN 89

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分はリセットでは使いません。

Note 1: パワーアップ以外のリセットには、通常動作中の MCLR リセットやウォッチドッグ タイマリセットがあります。

DS41452C_JP - p.70 2013 Microchip Technology Inc.

Page 71: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

7.0 割り込み

割り込み機能は、特定のイベントが通常のプログラムフローに割り込む事ができるようにします。ファームウェアを使って割り込み要因を判断し、それに基づいて動作します。MCU をスリープから復帰させるように設定できる割り込みもあります。

この章では、割り込みに関する以下の情報を提供します。

• 動作

• 割り込みレイテンシ

• スリープ中の割り込み

• INT ピン

• コンテキスト自動保存機能

多くの周辺機能が割り込みを生成します。詳細は、該当する章を参照してください。

図 7-1に、割り込みロジックのブロック図を示します。

図 7-1: 割り込みロジック

2013 Microchip Technology Inc. DS41452C_JP - p.71

Page 72: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

7.1 動作

全てのデバイスリセット後、割り込みは無効化されています。有効にするには、以下のビットをセットします。

• INTCON レジスタの GIE ビット

• 特定の割り込みイベントに対する割り込みイネーブルビット

• INTCON レジスタの PEIE ビット ( その割り込みイベントの割り込みイネーブルビットが PIEx レジスタに含まれる場合 )

INTCON、PIR1、PIR2 レジスタは、割り込みフラグビットにより各割り込みを記録します。割り込みフラグビットは、GIE、PEIE、各割り込みイネーブルビットの状態に関わらずセットされます。

GIE ビットがセットされている場合に割り込みイベントが発生すると、以下のイベントが発生します。

• 現在プリフェッチされている命令がフラッシュ ( 消去 ) される。

• GIE ビットがクリアされる。

• 現在の PC ( プログラム カウンタ ) がスタックにプッシュされる。

• 重要なレジスタ値がシャドウレジスタに自動保存される ( セクション 7.5「コンテキスト自動保存機能」参照 )。

• PC に割り込みベクタ「0004h」が読み込まれる。

割り込みサービスルーチン (ISR) のファームウェアは、割り込みフラグビットをポーリングして割り込み要因を判断する必要があります。割り込み動作の繰り返しを避けるため、ISR から抜ける前に割り込みフラグビットをクリアする必要があります。ISR 実行中に発生する割り込みは全て割り込みフラグで記録されますが、GIE ビットがクリアされているためプロセッサがその割り込みベクタにリダイレクトする事はありません。

RETFIE 命令では、割り込み前に実行していたアドレスをスタックからポップし、シャドウレジスタに保存されていたコンテキストを復元し、GIE ビットをセットする事によって、ISR から通常動作に復帰します。

具体的な割り込み動作の詳細は、各周辺機能の章を参照してください。

7.2 割り込みレイテンシ

割り込みレイテンシとは、割り込みイベントが発生してから、割り込みベクタのコード実行が開始するまでの時間を意味します。同期割り込みのレイテンシは、3 ~ 4 命令サイクルです。非同期割り込みのレイテンシは割り込み発生タイミングによって異なり、3 ~ 5命令サイクルです。詳細は図 7-2 と図 7-3 を参照してください。

Note 1: 各割り込みフラグビットは、その他のイネーブルビットの状態とは無関係にセットされます。

2: GIE ビットがクリアされている限り、全ての割り込みは無視されます。GIE ビットがクリアされている間に発生した全ての割り込みは、GIE ビットが再びセットされた時点で処理されます。

DS41452C_JP - p. 72 2013 Microchip Technology Inc.

Page 73: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 7-2: 割り込みレイテンシ

2013 Microchip Technology Inc. DS41452C_JP - p.73

Page 74: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 7-3: INT ピン割り込みのタイミング

Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4

OSC1

CLKOUT

INT pin

INTF

GIE

INSTRUCTION FLOW

PC

InstructionFetched

InstructionExecuted

Interrupt Latency

PC PC + 1 PC + 1 0004h 0005h

Inst (0004h) Inst (0005h)

Dummy Cycle

Inst (PC) Inst (PC + 1)

Inst (PC – 1) Inst (0004h)Dummy CycleInst (PC)

Note 1: INTF フラグは、ここでサンプリングされます (Q1 ごと )。

2: 非同期割り込みのレイテンシ = 3 ~ 5 TCY、同期割り込みのレイテンシ = 3 ~ 4 TCY (TCY = 命令のサイクル時間 )です。命令 (PC) が 1 サイクルと 2 サイクルのいずれでも、レイテンシは同じです。

3: CLKOUT は全てのオシレータモードで使えるわけではありません。

4: INT の 小パルス幅については、セクション 25.0「電気的仕様」の AC 仕様を参照してください。

5: INTF は、Q4 ~ Q1 サイクルの間にいつでもセットできます。

(1)(2)

(3)(4)

(5)(1)

DS41452C_JP - p. 74 2013 Microchip Technology Inc.

Page 75: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

7.3 スリープ中の割り込み

割り込みの種類によっては、スリープからの復帰に使えます。この場合、周辺機能がシステムクロックを使わずに動作できる必要があります。使う割り込み要因のイネーブルビットは、スリープに移行する前にセットしておく必要があります。

スリープから復帰する際、GIE ビットもセットされていると、プロセッサは割り込みベクタへ分岐します。セットされていない場合、SLEEP命令の次の命令から実行を再開します。SLEEP 命令の直後の命令は、ISRへ分岐する前に必ず実行されます。詳細は、セクション 8.0「パワーダウン モード ( スリープ )」を参照してください。

7.4 INT ピン

INT ピンを使うと、非同期のエッジトリガ型割り込みを生成できます。INTCON レジスタの INTE ビットをセットすると、この割り込みが有効化されます。OPTION_REGレジスタの INTEDGビットで割り込みを発生させるエッジを設定します。INTEDG ビットがセットされている場合、立ち上がりエッジで割り込みが発生します。INTEDG ビットがクリアされている場合、立ち下がりエッジで割り込みが発生します。INTピンに有効なエッジが現れると、INTCON レジスタのINTF ビットがセットされます。この時 GIE ビットとINTE ビットもセットされていると、プロセッサはプログラムの実行を割り込みベクタへリダイレクトします。

7.5 コンテキスト自動保存機能

割り込み動作に移行する際、復帰時の PC アドレス値がスタックに保存されます。また、以下に示すレジスタ値も自動的にシャドウレジスタに保存されます。

• W レジスタ

• STATUS レジスタ (TO と PD を除く )

• BSR レジスタ

• FSR レジスタ

• PCLATH レジスタ

割り込みサービスルーチンから通常動作に戻る際、これらのレジスタ値は自動的に復元されます。ISR 中にこれらのレジスタに加えられた変更は失われます。変更が失われないようにするには、対応するシャドウレジスタも変更しておきます。これにより、ISR 終了時に変更後の値が書き戻されます。シャドウレジスタはバンク 31 内にあり、読み書き可能です。ユーザ アプリケーションによっては、その他のレジスタ値の保存が必要になる場合があります。

2013 Microchip Technology Inc. DS41452C_JP - p.75

Page 76: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

7.6 レジスタ定義 : 割り込み制御

レジスタ 7-1: INTCON: 割り込み制御レジスタ

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R-0/0

GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 GIE: グローバル割り込みイネーブルビット

1 = 全てのアクティブな割り込みを有効にする0 = 全ての割り込みを無効にする

bit 6 PEIE: 周辺機能割り込みイネーブルビット1 = 全てのアクティブな周辺機能割り込みを有効にする0 = 全ての周辺機能割り込みを無効にする

bit 5 TMR0IE: Timer0 オーバーフロー割り込みイネーブルビット1 = Timer0 割り込みを有効にする0 = Timer0 割り込みを無効にする

bit 4 INTE: INT 外部割り込みイネーブルビット1 = INT 外部割り込みを有効にする0 = INT 外部割り込みを無効にする

bit 3 IOCIE: 状態変化割り込みイネーブルビット1 = 状態変化割り込みを有効にする0 = 状態変化割り込みを無効にする

bit 2 TMR0IF: Timer0 オーバーフロー割り込みフラグビット1 = TMR0 レジスタがオーバーフローした0 = TMR0 レジスタはオーバーフローしていない

bit 1 INTF: INT 外部割り込みフラグビット1 = INT 外部割り込みが発生した0 = INT 外部割り込みは発生していない

bit 0 IOCIF: 状態変化割り込みフラグビット (1)

1 = 状態変化割り込みピンの少なくとも 1 つの状態が変化した0 = 状態変化割り込みピンの状態は変化していない

Note 1: IOCIF フラグビットは読み出し専用で、IOCBF レジスタの全ての状態変化割り込みフラグがソフトウェアによってクリアされると、このビットもクリアされます。

DS41452C_JP - p. 76 2013 Microchip Technology Inc.

Page 77: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 7-2: PIE1: 周辺機能割り込みイネーブル レジスタ 1

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 TMR1GIE: Timer1 ゲート割り込みイネーブルビット

1 = Timer1 のゲート アクイジション割り込みを有効にする0 = Timer1 のゲート アクイジション割り込みを無効にする

bit 6 ADIE: A/D コンバータ (ADC) 割り込みイネーブルビット

1 = ADC 割り込みを有効にする0 = ADC 割り込みを無効にする

bit 5 RCIE: USART 受信割り込みイネーブルビット

1 = USART 受信割り込みを有効にする0 = USART 受信割り込みを無効にする

bit 4 TXIE: USART 送信割り込みイネーブルビット

1 = USART 送信割り込みを有効にする0 = USART 送信割り込みを無効にする

bit 3 SSPIE: 同期シリアルポート (MSSP) 割り込みイネーブルビット

1 = MSSP 割り込みを有効にする0 = MSSP 割り込みを無効にする

bit 2 CCP1IE: CCP1 割り込みイネーブルビット

1 = CCP1 割り込みを有効にする0 = CCP1 割り込みを無効にする

bit 1 TMR2IE: TMR2/PR2 一致割り込みイネーブルビット

1 = Timer2/PR2 一致割り込みを有効にする0 = Timer2/PR2 一致割り込みを無効にする

bit 0 TMR1IE: Timer1 オーバーフロー割り込みイネーブルビット

1 = Timer1 オーバーフロー割り込みを有効にする0 = Timer1 オーバーフロー割り込みを無効にする

Note: 周辺機能の割り込みを有効にするには、INTCONレジスタのPEIEビットをセットする必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.77

Page 78: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 7-3: PIE2: 周辺機能割り込みイネーブル レジスタ 2

R/W-0/0 U-0 U-0 U-0 R/W-0/0 U-0 U-0 R/W-0/0

OSFIE - - - BCLIE - - CCP2IE

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 OSFIE: オシレータ障害割り込みイネーブルビット

1 = オシレータ障害割り込みを有効にする0 = オシレータ障害割り込みを無効にする

bit 6-4 未実装 :「0」として読み出し

bit 3 BCL1IE: MSSP バスコリジョン割り込みイネーブルビット

1 = MSSP バスコリジョン割り込みを有効にする0 = MSSP バスコリジョン割り込みを無効にする

bit 2-1 未実装 :「0」として読み出し

bit 0 CCP2IE: CCP2 割り込みイネーブルビット

1 = CCP2 割り込みを有効にする0 = CCP2 割り込みを無効にする

Note: 周辺機能の割り込みを有効にするには、INTCONレジスタのPEIEビットをセットする必要があります。

DS41452C_JP - p. 78 2013 Microchip Technology Inc.

Page 79: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 7-4: PIR1: 周辺機能割り込み要求レジスタ 1

R/W-0/0 R/W-0/0 R-0/0 R-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 TMR1GIF: Timer1 ゲート割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 6 ADIF: A/D コンバータ (ADC) 割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 5 RCIF: USART 受信割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 4 TXIF: USART 送信割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 3 SSPIF: 同期シリアルポート (MSSP) 割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 2 CCP1IF: CCP1 割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 1 TMR2IF: Timer2/PR2 割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 0 TMR1IF: Timer1 オーバーフロー割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

Note: 割り込み条件が発生すると、対応するイネーブルビットまたはグローバル イネーブルビット (INTCON レジスタの GIE) の状態に関係なく割り込みフラグビットがセットされます。ユーザ ソフトウェアは、割り込みを有効にする前に、対応する割り込みフラグビットを確実にクリアしておく必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.79

Page 80: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 7-1: 割り込み関連のレジスタのまとめ

レジスタ 7-5: PIR2: 周辺機能割り込み要求レジスタ 2

R/W-0/0 U-0 U-0 U-0 R/W-0/0 U-0 U-0 R/W-0/0

OSFIF - - - BCLIF - - CCP2IF

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 OSFIF: オシレータ障害割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 6-4 未実装 :「0」として読み出し

bit 3 BCLIF: MSSP バスコリジョン割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

bit 2-1 未実装 :「0」として読み出し

bit 0 CCP2IF: CCP2 割り込みフラグビット

1 = 割り込みを保留中である0 = 割り込みを保留中ではない

Note: 割り込み条件が発生すると、対応するイネーブルビットまたはグローバル イネーブルビット (INTCON レジスタの GIE) の状態に関係なく割り込みフラグビットがセットされます。ユーザ ソフトウェアは、割り込みを有効にする前に、対応する割り込みフラグビットを確実にクリアしておく必要があります。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容

記載ページ

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0> 151

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIE2 OSFIE - - - BCLIE - - CCP2IE 78

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

PIR2 OSFIF - - - BCLIF - - CCP2IF 80

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分は割り込みでは使いません。

DS41452C_JP - p. 80 2013 Microchip Technology Inc.

Page 81: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

8.0 パワーダウン モード ( スリープ )

SLEEP 命令を実行すると、パワーダウン モードに移行します。

スリープに移行したデバイスの状態は、以下の通りです。

1. WDT がクリアされます。スリープ中の動作を有効に設定している場合、値はクリアされてもカウントは継続します。

2. STATUSレジスタのPDビットがクリアされます。

3. STATUSレジスタのTOビットがセットされます。

4. CPU クロックが無効化されます。

5. 31 kHz LFINTOSC は影響を受けません。このオシレータによって駆動される周辺機能は、スリープ中も動作を継続できます。

6. Timer1 のクロック源として以下を選択した場合、Timer1 自体と Timer1 が駆動する周辺機能はスリープ中も動作を継続します。

• LFINTOSC

• T1CKI

• セカンダリ オシレータ

7. ADC は影響を受けません。ただし専用の FRC オシレータが選択されている場合に限ります。

8. I/OポートはSLEEP命令実行前の状態 (High、Low、ハイ インピーダンスのどれか ) を維持します。

9. WDT 以外のリセットはスリープの影響を受けません。

スリープ中の周辺機能の動作に関する詳細は、各機能の章を参照してください。

消費電流を 小限に抑えるために、以下の条件に注意します。

• I/O ピンをフローティングにしない

• I/O ピンから電流をシンクする外付け回路

• I/O ピンから電流をソースする内部回路

• 内部弱プルアップ回路によるピンからの電流流入

• 31 kHz LFINTOSC を使うモジュール

• セカンダリ オシレータを使うモジュール

ハイ インピーダンス入力の I/O ピンは、外部で VDD または VSS に接続して、フローティング入力によるスイッチング電流が流れないようにしてください。

電流をソースする内部回路の例として FVR モジュールがあります。このモジュールの詳細は、セクション 14.0「固定参照電圧 (FVR)」を参照してください。

8.1 スリープからの復帰

以下のイベントのいずれかによってスリープから復帰できます。

1. MCLR ピンへの外部リセット入力 ( 有効な場合 )

2. BOR リセット ( 有効な場合 )

3. POR リセット

4. ウォッチドッグ タイマ ( 有効な場合 )

5. 全ての外部割り込み

6. スリープ中も動作可能な周辺機能による割り込み( 詳細は各周辺機能の章参照 )

上記の 1 ~ 3 ではデバイスがリセットされます。4 ~ 6は、プログラム実行の継続と見なされます。デバイスリセットまたは復帰イベントのいずれが発生したかを判断する方法は、セクション 6.12「リセット原因の特定」を参照してください。

SLEEP命令の実行中、次の命令 (PC+1) がプリフェッチされます。割り込みイベントでデバイスを復帰させるには、対応する割り込みイネーブルビットを有効にしておく必要があります。復帰は、GIE ビットの状態に関係なく実行されます。GIE ビットが無効の場合、デバイスは SLEEP 命令の次の命令から実行を再開します。GIE ビットが有効の場合、デバイスは SLEEP命令の次の命令を実行後、割り込みサービスルーチン(ISR) を呼び出します。SLEEP 命令直後の命令を実行したくない場合、SLEEP 命令の後に NOP 命令を配置します。

デバイスがスリープから復帰すると、復帰の理由に関係なく WDT はクリアされます。

2013 Microchip Technology Inc. DS41452C_JP - p.81

Page 82: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

8.1.1 割り込みによる復帰

グローバル割り込みが無効 (GIE がクリア ) で、何らかの割り込み要因のイネーブルビットとフラグビットの両方がセットされると、以下のいずれかが発生します。

• SLEEP命令の実行前に割り込みが発生した場合

- SLEEP命令が NOPとして実行される。

- WDT と WDT プリスケーラはクリアされない。

- STATUS レジスタの TO ビットはセットされない。

- STATUS レジスタの PD ビットはクリアされない。

• SLEEP命令の実行中または実行後に割り込みが発生した場合

- SLEEP命令が 後まで実行される。

- デバイスがただちにスリープから復帰する。

- WDT と WDT プリスケーラがクリアされる。

- STATUS レジスタの TO ビットがセットされる。

- STATUS レジスタの PD ビットがクリアされる。

SLEEP命令の実行前にフラグビットをチェックしたとしても、その後 SLEEP 命令が完了するまでにフラグビットがセットされる可能性があります。SLEEP命令が実行されたかどうかを判断するには、PD ビットを調べます。PD ビットがセットされている場合、SLEEP命令が NOPとして実行された事を示します。

図 8-1: 割り込みによるスリープからの復帰

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

OSC1(1)

CLKOUT(2)

Interrupt flag

GIE bit(INTCON reg.)

Instruction FlowPC

InstructionFetched

InstructionExecuted

PC PC + 1 PC + 2

Inst(PC) = Sleep

Inst(PC - 1)

Inst(PC + 1)

Sleep

Processor inSleep

Interrupt Latency(4)

Inst(PC + 2)

Inst(PC + 1)

Inst(0004h) Inst(0005h)

Inst(0004h) Forced NOP

PC + 2 0004h 0005h

Forced NOP

TOST(3)

PC + 2

Note 1: XT、HS、LP のいずれかのオシレータモードを前提とします。

2: CLKOUT は XT、HS、LP のオシレータモードでは使えませんが、タイミングの参考として示しています。

3: T1OSC、セクション 25.0「電気的仕様」参照

4: GIE = 1の場合です。この場合、復帰後にプロセッサは 0004h の ISR を呼び出します。GIE = 0の場合、分岐せずに命令の実行を継続します。

DS41452C_JP - p.82 2013 Microchip Technology Inc.

Page 83: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

8.2 低消費電力スリープ

PIC16F1516/7/8/9 は、低ドロップアウト (LDO) 電圧レギュレータを内蔵しています。このため、I/O ピンを 5.5 V で動作させながら、内部デバイスロジックをこれより低い電圧で動作させる事ができます。LDO および関連基準回路は、デバイスがスリープ中でも動作を継続する必要があります。PIC16F1516/7/8/9 では、スリープ中の動作電流を、アプリケーション要件に応じてユーザが 適化できます。

低消費電力スリープを選択するには、VREGCON レジスタの VREGPM ビットをセットします。このビットをセットすると、デバイスのスリープ中に LDO と基準回路が低消費電力状態に移行します。

8.2.1 スリープ電流と復帰時間

既定値の動作モードでは、LDO と基準回路はスリープ中も通常動作を継続します。全ての回路がスリープ中も通常動作を継続するため、デバイスは素早くスリープから復帰できます。これに対して、低消費電力スリープから復帰する場合、これらの回路が通常動作を再開して安定化するためには一定の時間が必要です。

低消費電力スリープは、スリープに長時間とどまるアプリケーションに有利です。通常のスリープモードは、スリープから迅速かつ頻繁に復帰する必要があるアプリケーションに適しています。

8.2.2 スリープ中の周辺モジュールの使用

周辺モジュールによっては、通常のスリープ中なら動作可能でも、低消費電力スリープ中には正常に動作しないものがあります。これらの周辺機能を有効化している場合、LDO は通常動作を継続します。低消費電力スリープは、以下のモジュールと一緒に使う事を前提としています。

• ブラウンアウト リセット (BOR)

• ウォッチドッグ タイマ (WDT)

• 外部割り込みピン / 状態変化割り込みピン

• Timer1 ( 外部クロック源使用 )

• CCP ( キャプチャモード )

Note: PIC16LF1516/7/8/9 では、通常のスリープと低消費電力スリープを選ぶ事はできません。PIC16LF1516/7/8/9 のスリープは常に低消費電力スリープであり、しかも復帰時に遅延が発生しません。このデバイスの 大 VDD と I/O 電圧は、PIC16F1516/7/8/9 よりも低く設定されています。詳細は、セクション 25.0「電気的仕様」を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.83

Page 84: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

8.3 レジスタ定義 : 電圧レギュレータ制御

表 8-1: パワーダウン モード関連のレジスタのまとめ

レジスタ 8-1: VREGCON: 電圧レギュレータ制御レジスタ (1)

U-0 U-0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-1/1

- - - - - - VREGPM 予約済み

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-2 未実装 :「0」として読み出し

bit 1 VREGPM: 電圧レギュレータ電力モード選択ビット

1 = 低消費電力スリープを有効にする (2)。スリープ中の消費電流は小さいが、復帰に時間を要する

0 = 通常消費電力モードを有効にする (2)。スリープ中の消費電流は大きいが、短時間で復帰できる

bit 0 予約済み :「1」として読み出し。このビットはセットしたままにします。

Note 1: PIC16F1516/7/8/9 の場合のみです。

2: セクション 25.0「電気的仕様」を参照してください。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

IOCBF IOCBF7 IOCBF6 IOCBF5 IOCBF4 IOCBF3 IOCBF2 IOCBF1 IOCBF0 129

IOCBN IOCBN7 IOCBN6 IOCBN5 IOCBN4 IOCBN3 IOCBN2 IOCBN1 IOCBN0 129

IOCBP IOCBP7 IOCBP6 IOCBP5 IOCBP4 IOCBP3 IOCBP2 IOCBP1 IOCBP0 129

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIE2 OSFIE - - - BCLIE - - CCP2IE 78

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

PIR2 OSFIF - - - BCLIF - - CCP2IF 80

STATUS - - - TO PD Z DC C 21

VREGCON(1) - - - - - - VREGPM 予約済み 84

WDTCON - - WDTPS<4:0> SWDTEN 89

凡例 : - = 未実装、「0」として読み出し。網掛けの部分はパワーダウン モードでは使いません。

Note 1: PIC16F1516/7/8/9 の場合のみです。

DS41452C_JP - p.84 2013 Microchip Technology Inc.

Page 85: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

9.0 低ドロップアウト (LDO) 電圧レギュレータ

PIC16F1516/7/8/9 は、3.6 V を超える電圧での動作を可能とする、低ドロップアウト (LDO) 電圧レギュレータを内蔵しています。LDO はデバイス内部のロジックで使う電圧をレギュレートし、VDD と I/O ピンはこれより高い電圧で動作できるようにします。ユーザはLDO の有効 / 無効を制御できません。LDO は常に有効です。PIC16LF1516/7/8/9 は 大 VDD = 3.6 V で動作し、LDO は搭載していません。

1 本の I/O ピンを LDO 電圧が出力されるように設定できます。このように設定されたピンを VCAP と呼びます。必須ではないものの、低 ESR のコンデンサをVCAP に接続すると、レギュレータの安定性がさらに向上します。

コンフィグレーション ワードの VCAPEN ビットはVCAP ピンの有効 / 無効を設定します。表 9-1 を参照してください。

外付けコンデンサによって電源投入時に LDO 電圧レギュレータに負荷がかかります。誤動作を防ぐために、外付けコンデンサが定電流源によって充電されるまで、デバイスはリセット状態に保たれます。コンデンサが完全に充電された時点でリセットが解除されます。定電流源による充電速度に関する詳細は、セクション 25.0「電気的仕様」の LDO レギュレータ特性表を参照してください。

表 9-2: LDO 関連のコンフィグレーション ワードのまとめ

表 9-1: VCAPEN 選択ビット

VCAPEN ピン

0 RA5

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG213:8 LVP DEBUG LPBOR BORV STVREN -

447:0 - - - VCAPEN - - WRT<1:0>

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分は LDO では使いません。

Note 1: PIC16F1516/7/8/9 の場合のみです。

2013 Microchip Technology Inc. DS41452C_JP - p.85

Page 86: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.86 2013 Microchip Technology Inc.

Page 87: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

10.0 ウォッチドッグ タイマ (WDT)

ウォッチドッグ タイマは、一定時間が経過してもファームウェアが CLRWDT命令を発行しないとリセットを発生させるシステムタイマです。通常、ウォッチドッグ タイマは予期しないイベントからシステムを回復する目的で使います。

WDT には以下の特長があります。

• 独立したクロック源

• 複数の動作モード

- WDT を常時 ON にする

- スリープ中は WDT を OFF にする

- WDT をソフトウェアで制御する

- WDT を常時 OFF にする

• タイムアウトを 1 ms ~ 256 s ( 公称 ) の範囲で設定可能

• 複数のリセット条件

• スリープ中でも動作

図 10-1: ウォッチドッグ タイマのブロック図

LFINTOSC23-bit Programmable

Prescaler WDTWDT Time-out

WDTPS<4:0>

SWDTEN

Sleep

WDTE<1:0> = 11

WDTE<1:0> = 01

WDTE<1:0> = 10

2013 Microchip Technology Inc. DS41452C_JP - p.87

Page 88: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

10.1 独立したクロック源

WDT は、31 kHz の LFINTOSC 内部オシレータで動作します。この章では、時間間隔を公称値 1 ms として説明します。LFINTOSC の許容誤差は、セクション 25.0「電気的仕様」を参照してください。

10.2 WDT の動作モード

ウォッチドッグ タイマ モジュールには4つの動作モードがあり、コンフィグレーション ワードのWDTE<1:0>ビットで設定します ( 表 10-1 参照 )。

10.2.1 WDT を常時 ON にする

コンフィグレーション ワードの WDTE ビットを「11」にセットすると、WDT が常時 ON 状態を保ちます。

WDT 保護はスリープ中も有効です。

10.2.2 スリープ中は WDT を OFF にする

コンフィグレーション ワードの WDTE ビットを「10」にセットすると、スリープ中はWDTをOFFにします。

WDT 保護はスリープ中には無効です。

10.2.3 WDT をソフトウェアで制御する

コンフィグレーション ワードの WDTE ビットを「01」にセットすると、WDT が WDTCON レジスタのSWDTEN ビットによって制御されます。

WDT による保護の状態はスリープに移行しても変化しません。詳細は、表 10-1 を参照してください。

表 10-1: WDT の動作モード

10.3 タイムアウト

WDTCON レジスタの WDTPS ビットで、タイムアウトを 1 ms ~ 256 s ( 公称 ) の範囲で設定します。リセット後のタイムアウト既定値は 2 s です。

10.4 WDT のクリア

WDT は、以下のいずれかの場合にクリアされます。

• 何らかのリセットが発生した場合

• CLRWDT命令を実行した場合

• デバイスがスリープに移行した場合

• デバイスがスリープから復帰した場合

• オシレータに障害が発生した場合

• WDT を無効にした場合

• オシレータ起動タイマ (OST) が動作中の場合

詳細は、表 10-2 を参照してください。

10.5 スリープ中の動作

デバイスがスリープに移行する時点で、WDT はクリアされます。スリープ中も WDT を有効にしている場合、WDT はカウントを再開します。

デバイスがスリープから復帰する時点で、WDT は再びクリアされます。OST が有効な場合、OST がタイムアウトするまで WDT はクリアされたままです。詳細は、セクション 5.0「オシレータ モジュール ( フェイルセーフ クロックモニタ機能付き )」を参照してください。

デバイスがスリープ中にWDTがタイムアウトしても、リセットは発生しません。この場合、デバイスは復帰して動作を再開します。STATUS レジスタの TO ビットと PD ビットの変化がこのイベントを示します。PCON レジスタの RWDT ビットも使えます。詳細は、セクション 3.0「メモリ構成」と STATUS レジスタの説明 ( レジスタ 3-1) を参照してください。

WDTE<1:0> SWDTEN デバイスモード

WDT のモード

11 X X アクティブ

10 X通常動作 アクティブ

スリープ 無効

011

Xアクティブ

0 無効

00 X X 無効

表 10-2: WDT クリアの条件

条件 WDT

WDTE<1:0> = 00

クリア

WDTE<1:0> = 01 かつ SWDTEN = 0

WDTE<1:0> = 10 でスリープに移行

CLRWDTコマンド

オシレータの障害を検出

スリープからの復帰 ( システムクロックが SOSC、EXTRC、INTOSC、EXTCLK の場合 )

スリープからの復帰 ( システムクロックが XT、HS、LP の場合 ) OST タイムアウトまでクリアのまま

INTOSC 分周比 (IRCF ビット ) を変更 変化なし

DS41452C_JP - p.88 2013 Microchip Technology Inc.

Page 89: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

10.6 レジスタ定義 : ウォッチドッグ制御

レジスタ 10-1: WDTCON: ウォッチドッグ タイマ制御レジスタ

U-0 U-0 R/W-0/0 R/W-1/1 R/W-0/0 R/W-1/1 R/W-1/1 R/W-0/0

- - WDTPS<4:0> SWDTEN

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -m/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 未実装 :「0」として読み出し

bit 5-1 WDTPS<4:0>: ウォッチドッグ タイマ時間選択ビット (1)

ビット値 = プリスケーラ分周比

11111 =予約済み、 小インターバル (1:32) • • •

10011 =予約済み、 小インターバル (1:32)

10010 = 1:8388608 (223) ( インターバル公称 256 s)10001 = 1:4194304 (222) ( インターバル公称 128 s)10000 = 1:2097152 (221) ( インターバル公称 64 s)01111 = 1:1048576 (220) ( インターバル公称 32 s)01110 = 1:524288 (219) ( インターバル公称 16 s)01101 = 1:262144 (218) ( インターバル公称 8 s)01100 = 1:131072 (217) ( インターバル公称 4 s)01011 = 1:65536 ( インターバル公称 2 s) ( リセット値 )01010 = 1:32768 ( インターバル公称 1 s)01001 = 1:16384 ( インターバル公称 512 ms)01000 = 1:8192 ( インターバル公称 256 ms)00111 = 1:4096 ( インターバル公称 128 ms)00110 = 1:2048 ( インターバル公称 64 ms)00101 = 1:1024 ( インターバル公称 32 ms)00100 = 1:512 ( インターバル公称 16 ms)00011 = 1:256 ( インターバル公称 8 ms)00010 = 1:128 ( インターバル公称 4 ms)00001 = 1:64 ( インターバル公称 2 ms)00000 = 1:32 ( インターバル公称 1 ms)

bit 0 SWDTEN: ウォッチドッグ タイマのソフトウェア有効 / 無効ビット

WDTE<1:0> = 00 の場合 :このビットを無視するWDTE<1:0> = 01 の場合 :1 = WDT を有効にする0 = WDT を無効にするWDTE<1:0> = 1x の場合 :このビットを無視する

Note 1: 時間は近似値です。WDT の時間は 31 kHz の LFINTOSC に基づいて決まります。

2013 Microchip Technology Inc. DS41452C_JP - p.89

Page 90: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 10-3: ウォッチドッグ タイマ関連のレジスタのまとめ

表 10-4: ウォッチドッグ タイマ関連コンフィグレーション ワードのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

OSCCON - IRCF<3:0> - SCS<1:0> 60

STATUS - - - TO PD Z DC C 21

WDTCON - - WDTPS<4:0> SWDTEN 89

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛けの部分はウォッチドッグ タイマでは使いません。

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG113:8 FCMEN IESO CLKOUTEN BOREN<1:0> -

427:0 CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

凡例 : - = 未実装、「0」として読み出し。網掛けの部分はウォッチドッグ タイマでは使いません。

DS41452C_JP - p.90 2013 Microchip Technology Inc.

Page 91: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.0 フラッシュ プログラムメモリ制御

フラッシュ プログラムメモリは、通常動作中 VDD の全レンジで読み書きが可能です。プログラムメモリは特殊機能レジスタ (SFR)を使って間接的にアドレス指定します。プログラムメモリへのアクセスには以下のSFR を使います。

• PMCON1

• PMCON2

• PMDATL

• PMDATH

• PMADRL

• PMADRH

プログラムメモリにアクセスする場合、読み書きする14 ビットのデータを PMDATH:PMDATL レジスタペアの 2 バイトワードに格納し、プログラムメモリのアクセス先となる 15 ビットのアドレスを PMADRH:PMADRLレジスタペアの 2 バイトワードに格納します。

書き込み時間は、内蔵タイマで制御します。書き込み /消去電圧は、デバイスの動作電圧レンジよりも高い値で、内蔵チャージポンプによって生成されます。

フラッシュ プログラムメモリは、コード保護 (コンフィグレーション ワードのCPビット )と書き込み保護 (コンフィグレーション ワードの WRT<1:0> ビット ) の 2つの方法で保護できます。

コード保護 (CP = 0) (1) は、外付けのデバイス プログラマによるフラッシュ プログラムメモリに対するアクセス、すなわち読み書きを禁止します。ただし、自己書き込みと消去機能には影響を与えません。コード保護をリセットするには、デバイス プログラマによるデバイスのバルク消去以外に方法がありません。バルク消去では、フラッシュ プログラムメモリ、コンフィグレーション ビット、ユーザ ID の全てがクリアされます。

書き込み保護は、WRT<1:0>ビットによって定義され、フラッシュ プログラム メモリの一部または全体に対して自己書き込みと消去を禁止します。デバイス プログラマによるデバイスの読み書き込み、消去機能には影響を与えません。

11.1 PMADRL および PMADRH レジスタ

PMADRH:PMADRL レジスタペアは、プログラムメモリの 大 32K ワードに対するアドレスを指定できます。プログラムメモリのアドレス値を選択する場合、アドレスの MSB が PMADRH レジスタへ書き込まれ、LSB が PMADRL レジスタへ書き込まれます。

11.1.1 PMCON1 および PMCON2 レジスタ

PMCON1 は、フラッシュ プログラムメモリに対するアクセスを制御するレジスタです。

RD 制御ビットと WR 制御ビットで、それぞれ読み出しと書き込みを開始します。これらのビットは、ソフトウェアではセットのみ可能でクリアはできません。読み出しまたは書き込み動作が完了した時点で、ハードウェアによってクリアされます。WR ビットをソフトウェアではクリアできないようにする事で、書き込み動作中に誤って処理が中断される事がありません。

WREN ビットをセットすると、書き込み動作が許可されます。WREN ビットは、電源投入時にクリアされます。通常動作中のリセットによって書き込み動作が中断された場合、WRERR ビットがセットされます。このような場合、ユーザはリセット後にWRERR ビットを確認して適切なエラー処理ルーチンを実行できます。

PMCON2 レジスタは書き込み専用レジスタです。PMCON2 レジスタを読み出すと、常に「0」が返されます。

プログラムメモリへの書き込みを有効にするには、PMCON2レジスタに特定のパターン (ロック解除シーケンス ) を書き込む必要があります。ロック解除シーケンスが必要である事から、プログラムメモリの書き込みラッチとフラッシュ プログラムメモリに対する偶発的な書き込みが防止されます。

11.2 フラッシュ プログラムメモリの概要

フラッシュ プログラムメモリに対して消去と書き込みを実行する場合、その構造を理解しておく事が大切です。フラッシュ プログラムメモリは行単位で構成されています。1 行は一定数の 14 ビット プログラムメモリ ワードで構成されています。この 1 行が、ユーザ ソフトウェアで消去できる 小サイズです。

ユーザは、一旦消去した行の一部または全体に対して再書き込みを実行できます。プログラムメモリの行にデータを書き込むには、14 ビット幅のデータ書き込みラッチに対して書き込みを実行します。書き込みラッチ に ユ ー ザ は 直 接 ア ク セ ス で き ま せ ん が、PMDATH:PMDATL レジスタペアへの順次書き込みによって、書き込みラッチにデータを読み込ませる事ができます。

Note 1: フラッシュ プログラムメモリのアレイ全体に対してコード保護を有効にするには、コンフィグレーション ワードの CPビットをクリアします。 Note: 既に書き込み済みの行の一部のみを書き

換えたい場合、行全体の内容を読み出し、RAMに保存してから消去を実行する必要があります。その後、新しいデータと変更しないデータを書き込みラッチに書き込み、フラッシュ プログラムメモリの行を再プログラムできます。しかし、未プログラムの位置には、 初に消去せずに書き込みを実行できます。この場合、既にプログラム済みの他のメモリ位置の内容を保存して再書き込みする必要はありません。

2013 Microchip Technology Inc. DS41452C_JP - p.91

Page 92: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

フラッシュ プログラムメモリの行消去サイズと書き込みラッチ数は、表 11-1 を参照してください。

11.2.1 フラッシュ プログラムメモリの読み出し

プログラムメモリを読み出すには、以下の手順を実行する必要があります。

1. 所定のアドレスをPMADRH:PMADRLレジスタペアに書き込む。

2. PMCON1レジスタのCFGSビットをクリアする。

3. PMCON1レジスタのRD制御ビットをセットする。

読み出し制御ビットをセットした後、プログラムメモリ フラッシュ コントローラは2番目の命令サイクルでデータを読み出します。このため、「BSF PMCON1,RD」の直後の命令は無視されます。データは、その次のサイクルで PMDATH:PMDATL レジスタペアに格納されます。従って、これ以降の命令によって 2 バイトとして読み出す事ができます。

PMDATH:PMDATLレジスタペアに格納された値は、次の読み出し動作か、ユーザが書き込みを実行するまで保持されます。

図 11-1: フラッシュ プログラムメモリの読み出しフローチャート

表 11-1: 各デバイスのフラッシュメモリの構成

デバイス行消去

( ワード )書き込みラッチ

( ワード )

PIC16(L)F1516

32 32PIC16(L)F1517

PIC16(L)F1518

PIC16(L)F1519

Note: プログラムメモリの読み出し後の 2 つの命令は、NOP とする必要があります。これにより、RD ビットがセットされた後の次の命令でユーザが 2 サイクル命令を実行するのを防ぐ事ができます。

DS41452C_JP - p.92 2013 Microchip Technology Inc.

Page 93: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 11-2: フラッシュ プログラムメモリの読み出しサイクルの実行

例 11-1: フラッシュ プログラムメモリの読み出し

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

BSF PMCON1,RDexecuted here

INSTR(PC + 1)

executed here

PC PC + 1 PMADRH,PMADRL PC+3 PC + 5Flash ADDR

RD bit

PMDATH,PMDATL

PC + 3 PC + 4

INSTR (PC + 1)

INSTR(PC - 1)executed here

INSTR(PC + 3)executed here

INSTR(PC + 4)executed here

Flash Data

PMDATHPMDATLRegister

INSTR (PC) INSTR (PC + 3) INSTR (PC + 4)

instruction ignoredForced NOP

INSTR(PC + 2)

executed here

instruction ignoredForced NOP

* This code block will read 1 word of program* memory at the memory address:

PROG_ADDR_HI : PROG_ADDR_LO* data will be returned in the variables;* PROG_DATA_HI, PROG_DATA_LO

BANKSEL PMADRL ; Select Bank for PMCON registersMOVLW PROG_ADDR_LO ; MOVWF PMADRL ; Store LSB of addressMOVLW PROG_ADDR_HI ; MOVWL PMADRH ; Store MSB of address

BCF PMCON1,CFGS ; Do not select Configuration SpaceBSF PMCON1,RD ; Initiate readNOP ; Ignored (図 11-2)NOP ; Ignored (図 11-2)

MOVF PMDATL,W ; Get LSB of wordMOVWF PROG_DATA_LO ; Store in user locationMOVF PMDATH,W ; Get MSB of wordMOVWF PROG_DATA_HI ; Store in user location

2013 Microchip Technology Inc. DS41452C_JP - p.93

Page 94: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.2.2 フラッシュメモリのロック解除シーケンス

ロック解除シーケンスは、意図しない自己書き込みまたは消去からフラッシュ プログラムメモリを保護する仕組みです。以下の全ての動作を正常に完了するには、このシーケンスを中断する事なく実行し、完了させる必要があります。

• 行消去

• プログラムメモリ書き込みラッチへの読み込み

• プログラムメモリ書き込みラッチからプログラムメモリへの書き込み

• プログラムメモリ書き込みラッチからユーザ IDへの書き込み

ロック解除シーケンスは、以下のステップから構成されます。

1. PMCON2 への 55h 書き込み

2. PMCON2 への AAh 書き込み

3. PMCON1 の WR ビットのセット

4. NOP命令

5. NOP命令

WR ビットがセットされると、プロセッサは常に 2 つの NOP 命令を実行します。行消去または行書き込み動作中、プロセッサは内部動作をストールさせ ( 通常 2ms)、動作が完了してから次の命令を再開します。動作がプログラムメモリ書き込みラッチへの読み込みの場合、プロセッサは常に 2 つの NOP命令を実行し、中断なく次の命令を継続します。

ロック解除シーケンスが中断される事のないように、シーケンスの実行前にグローバル割り込みを無効にして、完了後に再度有効にします。

図 11-3: フラッシュ プログラムメモリ ロック解除シーケンスのフローチャート

DS41452C_JP - p.94 2013 Microchip Technology Inc.

Page 95: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.2.3 フラッシュ プログラムメモリの消去

コード実行時、プログラムメモリの消去は行単位でのみ可能です。行を消去するには、以下の手順を実行します。

1. 消去する行内のいずれかのアドレスをPMADRH:PMADRL レジスタペアに読み込む。

2. PMCON1レジスタのCFGSビットをクリアする。

3. PMCON1 レジスタの FREE および WREN ビットをセットする。

4. PMCON2 レジスタに 55h、AAh を順に書き込む( フラッシュ プログラミング ロック解除シーケンス )。

5. PMCON1 レジスタの WR 制御ビットをセットして消去を開始する。

例 11-2 を参照してください。

「BSF PMCON1,WR」命令の後、プロセッサは消去動作のセットアップのために 2 サイクルを必要とします。このため、WR ビットをセットした直後は、2 つの NOP命令を実行する必要があります。プロセッサは 2 ms(typ.) の消去時間の間、内部動作を停止します。クロックと周辺モジュールは動作を継続しているため、これはスリープとは異なります。消去サイクル後、プロセッサは PMCON1 書き込み命令後の 3 番目の命令から動作を再開します。

図 11-4: フラッシュ プログラムメモリ消去のフローチャート

図 11-3

2013 Microchip Technology Inc. DS41452C_JP - p.95

Page 96: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

例 11-2: プログラムメモリの 1 行消去

; This row erase routine assumes the following:; 1. A valid address within the erase row is loaded in ADDRH:ADDRL; 2. ADDRH and ADDRL are located in shared data memory 0x70 - 0x7F (common RAM)

BCF INTCON,GIE ; Disable ints so required sequences will execute properlyBANKSEL PMADRLMOVF ADDRL,W ; Load lower 8 bits of erase address boundaryMOVWF PMADRLMOVF ADDRH,W ; Load upper 6 bits of erase address boundaryMOVWF PMADRHBCF PMCON1,CFGS ; Not configuration spaceBSF PMCON1,FREE ; Specify an erase operationBSF PMCON1,WREN ; Enable writes

MOVLW 55h ; Start of required sequence to initiate eraseMOVWF PMCON2 ; Write 55hMOVLW 0AAh ;MOVWF PMCON2 ; Write AAhBSF PMCON1,WR ; Set WR bit to begin eraseNOP ; NOP instructions are forced as processor startsNOP ; row erase of program memory.

;; The processor stalls until the erase process is complete; after erase processor continues with 3rd instruction

BCF PMCON1,WREN ; Disable writesBSF INTCON,GIE ; Enable interrupts

Req

uire

dS

eque

nce

DS41452C_JP - p.96 2013 Microchip Technology Inc.

Page 97: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.2.4 フラッシュ プログラムメモリへの書き込み

プログラムメモリに書き込むには、以下の手順を実行します。

1. 書き込む行のアドレスをPMADRH:PMADRLに読み込む。

2. 各書き込みラッチにデータを読み込む。

3. 書き込み動作を開始する。

4. 全てのデータの書き込みが完了するまでステップ1 ~ 3 を繰り返す。

プログラムメモリに書き込む際は、書き込み先に何もデータが書き込まれていないか、書き込まれている場合は事前に消去しておく必要があります。プログラムメモリの消去は行単位でのみ可能です。書き込み開始時に自動的に消去が行われる事はありません。

プログラムメモリへの書き込みは、1 ワードずつまたは複数ワードを一度に書き込む事ができます。一度に書き込む事ができる 大ワード数は、書き込みラッチの数と同じです。詳細は、図 11-5 (32 個の書き込みラッチによるプログラムメモリへの行書き込み ) を参照してください。

書き込みラッチは、PMADRH:PMADRL の上位 10 ビット (PMADRH<6:0>:PMADRL<7:5>) で定義されるフラッシュ行アドレスの境界に対応づけられ、PMADRLの下位 5 ビット (PMADRL<4:0>) が読み込む書き込みラッチを決定します。この境界を越えて書き込みを行う事はできません。プログラムメモリへの書き込みが完了したら、書き込みラッチのデータは 0x3FFF にリセットされます。

書き込みラッチにデータを読み込んでプログラムメモリの行書き込みを実行するには、以下の手順を実行する必要があります。この手順は大きく 2 つの部分に分かれます。 初に、PMDATH:PMDATL からのデータを、LWLO = 1 のロック解除シーケンスによって各書き込みラッチに読み込みます。書き込みラッチに読み込む 後のワードの準備が整ったら、LWLO ビットをクリアしてロック解除シーケンスを実行します。これによってプログラミング動作が始まり、全てのラッチの内容がフラッシュ プログラム メモリに書き込まれます。

1. PMCON1レジスタのWRENビットをセットする。

2. PMCON1レジスタのCFGSビットをクリアする。

3. PMCON1レジスタのLWLOビットをセットする。PMCON1 レジスタの LWLO ビットが「1」であれば、書き込みシーケンスを実行しても書き込みラッチにデータが読み込まれるだけでフラッシュプログラムメモリへの書き込みは始まりません。

4. 書き込み先のアドレスをPMADRH:PMADRLレジスタペアに読み込む。

5. プ ロ グ ラ ム メ モ リ に 書 き 込 む デ ー タ をPMDATH:PMDATL レジスタペアに読み込む。

6. ロック解除シーケンスを実行する(セクション 11.2.2「フラッシュメモリのロック解除 シーケンス」)。以上で書き込みラッチへの読み込みが完了します。

7. 次のアドレスを指すようにPMADRH:PMADRLレジスタペアをインクリメントする。

8. 後から 2 番目のラッチへの読み込みが完了するまで手順 5 ~ 7 を繰り返す。

9. PMCON1レジスタのLWLOビットをクリアする。PMCON1 レジスタの LWLO ビットが「0」の場合、書き込みシーケンスを実行するとフラッシュプログラムメモリへの書き込みが始まります。

10. プ ロ グ ラ ム メ モ リ に 書 き 込 む デ ー タ をPMDATH:PMDATL レジスタペアに読み込む。

11. ロック解除シーケンスを実行する(セクション 11.2.2「フラッシュメモリのロック解除 シーケンス」)。以上でプログラムメモリ ラッチの内容が全てフラッシュ プログラムメモリに書き込まれました。

例 11-3 に、書き込みシーケンス全体の例を示します。PMADRH:PMADRL レジスタペアには、 初のアドレスが読み込まれます。データは間接アドレス指定によって読み込まれます。

Note: 書き込みラッチへのデータ読み込み、またはフラッシュ書き込みの動作を始めるには、特定のロック解除シーケンスが必要です。ロック解除シーケンスが中断された場合、ラッチまたはプログラムメモリへの書き込みは始まりません。

Note: プログラムメモリ書き込みラッチは、書き込みまたは消去動作が完了するたびにブランク状態 (0x3FFF)にリセットされます。このため、プログラムメモリ書き込みラッチの全てにデータを読み込む必要はありません。データを読み込まないラッチはブランク状態を保ちます。

2013 Microchip Technology Inc. DS41452C_JP - p.97

Page 98: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC

16(L)F

1516/7/8/9

DS

41452C_JP

- p.98

2013 Microchip T

echnology Inc.

図 11-5: 32 個の書き込みラッチによるフラッシュ プログラムメモリへのブロック書き込み

Page 99: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 11-6: フラッシュ プログラムメモリの書き込みフローチャート

図 11-3

図 11-3

2013 Microchip Technology Inc. DS41452C_JP - p.99

Page 100: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

例 11-3: フラッシュ プログラムメモリへの書き込み

; This write routine assumes the following:; 1. 64 bytes of data are loaded, starting at the address in DATA_ADDR; 2. Each word of data to be written is made up of two adjacent bytes in DATA_ADDR,; stored in little endian format; 3. A valid starting address (the least significant bits = 00000) is loaded in ADDRH:ADDRL; 4. ADDRH and ADDRL are located in shared data memory 0x70 - 0x7F (common RAM);

BCF INTCON,GIE ; Disable ints so required sequences will execute properlyBANKSEL PMADRH ; Bank 3MOVF ADDRH,W ; Load initial addressMOVWF PMADRH ;MOVF ADDRL,W ;MOVWF PMADRL ;MOVLW LOW DATA_ADDR ; Load initial data addressMOVWF FSR0L ;MOVLW HIGH DATA_ADDR ; Load initial data addressMOVWF FSR0H ;BCF PMCON1,CFGS ; Not configuration spaceBSF PMCON1,WREN ; Enable writesBSF PMCON1,LWLO ; Only Load Write Latches

LOOPMOVIW FSR0++ ; Load first data byte into lowerMOVWF PMDATL ;MOVIW FSR0++ ; Load second data byte into upperMOVWF PMDATH ;

MOVF PMADRL,W ; Check if lower bits of address are '00000'XORLW 0x1F ; Check if we're on the last of 32 addressesANDLW 0x1F ;BTFSC STATUS,Z ; Exit if last of 32 words,GOTO START_WRITE ;

MOVLW 55h ; Start of required write sequence:MOVWF PMCON2 ; Write 55hMOVLW 0AAh ;MOVWF PMCON2 ; Write AAhBSF PMCON1,WR ; Set WR bit to begin writeNOP ; NOP instructions are forced as processor

; loads program memory write latchesNOP ;

INCF PMADRL,F ; Still loading latches Increment addressGOTO LOOP ; Write next latches

START_WRITEBCF PMCON1,LWLO ; No more loading latches - Actually start Flash program

; memory write

MOVLW 55h ; Start of required write sequence:MOVWF PMCON2 ; Write 55hMOVLW 0AAh ;MOVWF PMCON2 ; Write AAhBSF PMCON1,WR ; Set WR bit to begin writeNOP ; NOP instructions are forced as processor writes

; all the program memory write latches simultaneouslyNOP ; to program memory.

; After NOPs, the processor; stalls until the self-write process in complete; after write processor continues with 3rd instruction

BCF PMCON1,WREN ; Disable writesBSF INTCON,GIE ; Enable interrupts

Req

uir

edS

eque

nce

Req

uire

dS

equ

ence

DS41452C_JP - p.100 2013 Microchip Technology Inc.

Page 101: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.3 フラッシュ プログラムメモリの書き換え

プログラムメモリの行に格納された既存データを保持しながら、行の一部のみを書き換える場合、 初にその行を読み出して RAM イメージに保存しておく必要があります。プログラムメモリを書き換えるには、以下の手順を実行します。

1. 書き換える行の開始アドレスを読み込む。

2. その行のデータを読み出して RAM イメージに保存する。

3. プログラムメモリに書き込む新しいデータを含め、RAM イメージを書き換える。

4. 書き換える行の開始アドレスを読み込む。

5. プログラムメモリの行を消去する。

6. 書き込みラッチに RAM イメージのデータを読み込む。

7. 書き込み動作を開始する。

図 11-7: フラッシュ プログラムメモリの書き換えフローチャート

図 11-2

図 11-5

図 11-4

2013 Microchip Technology Inc. DS41452C_JP - p.101

Page 102: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.4 ユーザ ID、デバイス ID、コンフィグレーション ワードへのアクセス

PMCON1 レジスタの CFGS = 1 とすると、プログラムメモリの代わりに、ユーザ ID、デバイス ID/ リビジョン ID、コンフィグレーション ワードにアクセスできます。これは、PC<15> = 1 で示される領域ですが、全てのアドレスがアクセス可能というわけではありません。読み出しと書き込みでは、アクセス可能なアドレス範囲が異なる場合があります。表 11-2を参照してください。

表 11-2 に記載したパラメータの範囲外のアドレスに対 し て 読 み 出 し ア ク セ ス を 開 始 し た 場 合、PMDATH:PMDATL レジスタペアはクリアされ、読み出し値としては「0」が返されます。

表 11-2: ユーザ ID、デバイス ID、コンフィグレーション ワードへのアクセス (CFGS = 1)

例 11-4: コンフィグレーション ワードとデバイス ID へのアクセス

アドレス アクセス対象 読み出しアクセス 書き込みアクセス

8000h-8003h ユーザ ID 可 可

8006h デバイス ID/ リビジョン ID 可 不可

8007h-8008h コンフィグレーション ワード1 および 2

可 不可

* This code block will read 1 word of program memory at the memory address:* PROG_ADDR_LO (must be 00h-08h) data will be returned in the variables;* PROG_DATA_HI, PROG_DATA_LO

BANKSEL PMADRL ; Select correct BankMOVLW PROG_ADDR_LO ; MOVWF PMADRL ; Store LSB of addressCLRF PMADRH ; Clear MSB of address

BSF PMCON1,CFGS ; Select Configuration Space BCF INTCON,GIE ; Disable interruptsBSF PMCON1,RD ; Initiate readNOP ; Executed (See 図 11-2)NOP ; Ignored (See 図 11-2)BSF INTCON,GIE ; Restore interrupts

MOVF PMDATL,W ; Get LSB of wordMOVWF PROG_DATA_LO ; Store in user locationMOVF PMDATH,W ; Get MSB of wordMOVWF PROG_DATA_HI ; Store in user location

DS41452C_JP - p.102 2013 Microchip Technology Inc.

Page 103: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.5 書き込みベリファイ

プログラムメモリに正しい値が書き込まれた事を確認( ベリファイ ) するのは、優れたプログラミングの実践です。プログラムメモリはページ全体として格納されるため、 後の書き込みの完了後に、プログラムメモリの内容と RAM 内の目的とするデータを比較します。

図 11-8: フラッシュ プログラムメモリ ベリファイのフローチャート

図 11-2

2013 Microchip Technology Inc. DS41452C_JP - p.103

Page 104: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

11.6 レジスタ定義 : フラッシュ プログラムメモリ制御

レジスタ 11-1: PMDATL: プログラムメモリ データレジスタ下位バイト

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

PMDAT<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 PMDAT<7:0>: プログラムメモリの下位ビットの読み書き値

レジスタ 11-2: PMDATH: プログラムメモリ データレジスタ上位バイト

U-0 U-0 R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

- - PMDAT<13:8>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 未実装 :「0」として読み出し

bit 5-0 PMDAT<13:8>: プログラムメモリの上位ビットの読み書き値

レジスタ 11-3: PMADRL: プログラムメモリ アドレスレジスタ下位バイト

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

PMADR<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 PMADR<7:0>: プログラムメモリ アドレスの下位ビットを指定する

レジスタ 11-4: PMADRH: プログラムメモリ アドレスレジスタ上位バイト

U-1 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

-(1) PMADR<14:8>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 未実装 :「1」として読み出し

bit 6-0 PMADR<14:8>: プログラムメモリ アドレスの上位ビットを指定する

Note 1: 未実装、「1」として読み出されます。

DS41452C_JP - p.104 2013 Microchip Technology Inc.

Page 105: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 11-5: PMCON1: プログラムメモリ制御レジスタ 1

U-1 R/W-0/0 R/W-0/0 R/W/HC-0/0 R/W/HC-x/q(2) R/W-0/0 R/S/HC-0/0 R/S/HC-0/0

-(1) CFGS LWLO FREE WRERR WREN WR RD

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

S = ビットはセットのみ可能 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア HC = ビットはハードウェアでクリア

bit 7 未実装 :「1」として読み出し

bit 6 CFGS: コンフィグレーション選択ビット

1 = コンフィグレーション、ユーザ ID、デバイス ID レジスタにアクセスする

0 = フラッシュ プログラムメモリにアクセスする

bit 5 LWLO: 書き込みラッチのみ読み込みビット (3)

1 = 次の WR コマンドで、アドレス指定されたプログラムメモリ書き込みラッチに対してのみ読み込み / 更新を

実行する

0 = 次の WR コマンドで、アドレス指定されたプログラムメモリ書き込みラッチに対する読み込み / 更新を実行

し、さらに全てのプログラムメモリ書き込みラッチの書き込みを開始する

bit 4 FREE: プログラム フラッシュ消去イネーブルビット 1 = 次の WR コマンドで消去動作を実行する ( 完了後、ハードウェアでクリアされる )0 = 次の WR コマンドで書き込み動作を実行する

bit 3 WRERR: 書き込み / 消去エラーフラグ ビット

1 = 書き込み / 消去シーケンスが正しく実行されなかった、または途中で終了した ( このビットは、WR ビット

を「1」にセットする命令を発行すると自動的にセットされる )0 = 書き込みまたは消去が正常に完了した

bit 2 WREN: 書き込み / 消去イネーブルビット

1 = 書き込み / 消去サイクルを有効にする

0 = プログラム フラッシュの書き込み / 消去を禁止する

bit 1 WR: 書き込み制御ビット

1 = プログラム フラッシュの書き込み / 消去動作を開始する 動作は自己タイマで実行され、ビットは動作完了時にハードウェアによってクリアされる WR ビットはソフトウェアではセットのみ可能で、クリアできない

0 = フラッシュの書き込み / 消去動作が完了し、非アクティブ状態である

bit 0 RD: 読み出し制御ビット

1 = プログラム フラッシュの読み出しを開始する。読み出し動作は 1 サイクルで完了する。RD ビットはハード

ウェアでクリアされる。ソフトウェアではセットのみ可能で、クリアできない

0 = プログラム フラッシュの読み出しを開始しない

Note 1: 未実装ビットであり、「1」として読み出されます。

2: プログラムメモリの書き込みまたは消去動作が開始すると、WRERR ビットはハードウェアによって自動的にセット

されます (WR = 1)。3: プログラムメモリの消去動作中 (FREE = 1)、LWLO ビットは無視されます。

2013 Microchip Technology Inc. DS41452C_JP - p.105

Page 106: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 11-3: フラッシュ プログラムメモリ関連のレジスタのまとめ

表 11-4: フラッシュ プログラムメモリ関連コンフィグレーション ワードのまとめ

レジスタ 11-6: PMCON2: プログラムメモリ制御レジスタ 2

W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 W-0/0 W-0/0

プログラムメモリ制御レジスタ 2

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

S = ビットはセットのみ可能 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 フラッシュ メモリ ロック解除パターンビット

書き込みロックを解除するには、このビットに 55h、AAh を順に書き込んだ後、PMCON1 レジスタの WR ビットをセットする必要があります。このレジスタへ書き込まれた値は、書き込みロックの解除に使います。これらの書き込み動作には一定のタイミング要件があります。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容

記載ページ

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PMCON1 -(1) CFGS LWLO FREE WRERR WREN WR RD 105

PMCON2 プログラムメモリ制御レジスタ 2 106

PMADRL PMADRL<7:0> 104

PMADRH -(1) PMADRH<6:0> 104

PMDATL PMDATL<7:0> 104

PMDATH - - PMDATH<5:0> 104

凡例 : - = 未実装、「0」として読み出し。網掛けの部分はフラッシュ プログラムメモリでは使いません。

Note 1: 未実装、「1」として読み出されます。

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG113:8 FCMEN IESO CLKOUTEN BOREN<1:0> -

427:0 CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

CONFIG213:8 LVP DEBUG - BORV STVREN -

447:0 - - - VCAPEN(1) - - WRT<1:0>

凡例 : - = 未実装、「0」として読み出し。網掛けの部分はフラッシュ プログラムメモリでは使いません。

DS41452C_JP - p.106 2013 Microchip Technology Inc.

Page 107: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.0 I/O ポート

各ポートの動作には以下の 3 個の標準レジスタを使います。

• TRISx レジスタ ( データ方向 )

• PORTx レジスタ ( デバイスピン上のレベルの読み取り )

• LATx レジスタ ( 出力ラッチ )

ポートの中には、これらの他に以下のレジスタを 1 つまたは複数備えているものがあります。

• ANSELx ( アナログ選択 )

• WPUx ( 弱プルアップ )

通常、あるポートピンで周辺機能を有効にすると、そのピンは汎用出力として使う事はできません。しかし、ピンの読み出しは可能です。

データラッチ (LATx レジスタ ) は、I/O ピンが駆動している値の Read-Modify-Write 動作に便利です。

LATx レジスタへの書き込み動作は、対応する PORTxレジスタへの書き込みと同じ効果があります。LATx レジスタを読み出すと、I/O ポートラッチに格納されている値が読み出されるのに対し、PORTx レジスタを読み出した場合、実際の I/O ピンの値が読み出されます。

アナログ入力をサポートしているポートには、対応するANSELxレジスタがあります。ANSELビットをセットすると、そのビットに対応するデジタル入力バッファが無効化されます。入力バッファを無効にすると、そのピンに論理 High と Low の中間のアナログ信号レベルが現れても論理入力回路に過大電流が流れるのを防ぐ事ができます。図 12-1 に、他の周辺機能へのインターフェイスを省略した、汎用 I/O ポートの簡易モデルを示します。

図 12-1: 汎用 I/O ポートの動作

表 12-1: 各デバイスで利用可能なポート

デバイス名

PO

RTA

PO

RT

B

PO

RT

C

PO

RT

D

PO

RT

E

PIC16(L)F1516/8 ● ● ● ●

PIC16(L)F1517/9 ● ● ● ● ●

QD

CK

Write LATx

Data Register

I/O pinRead PORTx

Write PORTx

TRISxRead LATx

Data Bus

To peripherals

ANSELx

VDD

VSS

2013 Microchip Technology Inc. DS41452C_JP - p.107

Page 108: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.1 代替ピン機能

代替ピン機能制御 (APFCON) レジスタを使うと、特定の周辺機能の入出力を各ピンへ移動できます。レジスタ 12-1 に、APFCON レジスタを示します。このデバイスファミリで、各ピンへ移動できる機能は以下の通りです。

• SS ( スレーブセレクト )• CCP2

これらのビットは、TRIS レジスタの値に影響を与えません。PORT と TRIS への書き込み ( オーバーライド ) は、正しいピンへと適用されます。選択されないピンは影響を受けません。

レジスタ 12-1: APFCON: 代替ピンの機能制御レジスタ

U-0 U-0 U-0 U-0 U-0 U-0 R/W-0/0 R/W-0/0

- - - - - - SSSEL CCP2SEL

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-2 未実装 :「0」として読み出し

bit 1 SSSEL: ピン選択ビット

0 = SS の機能を RA5 に割り当てる

1 = SS の機能を RA0 に割り当てる

bit 0 CCP2SEL: ピン選択ビット

0 = CCP2 の機能を RC1 に割り当てる

1 = CCP2 の機能を RB3 に割り当てる

DS41452C_JP - p.108 2013 Microchip Technology Inc.

Page 109: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.2 PORTA レジスタ

12.2.1 データレジスタ

PORTA は 8 ビット幅の双方向ポートです。これに対応するデータ方向レジスタが、TRISA (レジスタ 12-3)です。TRISA ビットをセットする (= 1) と、対応するPORTA ピンが入力になります ( すなわち、出力ドライバが無効化されます )。TRISA ビットをクリアする(= 0) と、対応する PORTA ピンが出力になります ( すなわち、出力ドライバが有効化され、出力ラッチの内容が選択したピンに出力されます )。例 12-1 に、I/Oポートの初期化方法を示します。

PORTAレジスタ (レジスタ 12-2)を読み出すとピンの状態が読み出され、PORTA レジスタに書き込むとPORT ラッチに書き込まれます。書き込み動作は全てRead-Modify-Write です。従って、ポートへの書き込み時にはまずポートピンが読み出され、この値が変更されてから PORT データラッチ (LATA) に書き込まれます。

12.2.2 方向制御

ピンをアナログ入力として使う場合も、TRISA レジスタ ( レジスタ 12-3) が PORTA ピンの出力ドライバを制御します。これらのピンをアナログ入力として使う際は、必ず TRISA レジスタのビットをセットしたままにしてください。アナログ入力として設定された I/Oピンからは常に「0」が読み出されます。

12.2.3 アナログ制御

ANSELA レジスタ ( レジスタ 12-5) は、I/O ピンの入力モードをアナログに設定する際に使います。ANSELAビットを High にセットしたピンに対してデジタルの読み出しを実行すると、全て「0」として読み出され、ピンのアナログ機能が正しく動作します。

ANSELA ビットの状態は、デジタル出力機能には影響を与えません。TRIS をクリアして ANSEL をセットしたピンはデジタル出力として動作しますが、入力モードはアナログです。このように設定されたポートに対して Read-Modify-Write 命令を実行すると予期しない挙動を引き起こす事があります。

例 12-1: PORTA の初期化

12.2.4 PORTA の機能と出力の優先度

PORTA の各ピンは、他の機能と多重化されています。表 12-2 に、各ピンに割り当てられた複数の機能とそれらの出力の優先度を示します。

複数の出力を有効にした場合、 も優先度の高い周辺機能からの出力が有効となります。

ADC 等のアナログ入力機能は優先度のリストには記載していません。これらの入力は、ANSELx レジスタで I/O ピンをアナログモードに設定すると有効化されます。デジタル出力機能は、アナログモードの場合でも、リストに示した優先度でピンを制御できます。

Note: ANSELA ビットのリセット後の既定値はアナログモードです。任意のピンをデジタル汎用入力または周辺入力として使うには、対応する ANSEL ビットをユーザソフトウェアで「0」に初期化する必要があります。

表 12-2: PORTA 出力の優先度

ピン名 機能の優先度 (1)

RA0 RA0

RA1 RA1

RA2 RA2

RA3 RA3

RA4 RA4

RA5 VCAP (PIC16F1516/7/8/9 のみ )RA5

RA6 CLKOUTOSC2RA6

RA7 RA7

Note1: 優先度の高いものから順に記載しています。

; This code example illustrates; initializing the PORTA register. The ; other ports are initialized in the same; manner.

BANKSEL PORTA ;CLRF PORTA ;Init PORTABANKSEL LATA ;Data LatchCLRF LATA ;BANKSEL ANSELA ;CLRF ANSELA ;digital I/OBANKSEL TRISA ;MOVLW B'00111000' ;Set RA<5:3> as inputsMOVWF TRISA ;and set RA<2:0> as

;outputs

2013 Microchip Technology Inc. DS41452C_JP - p.109

Page 110: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-2: PORTA: PORTA レジスタ

R/W-x/x R/W-x/x R/W-x/x R/W-x/x R/W-x/x R/W-x/x R/W-x/x R/W-x/x

RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 RA<7:0>: PORTA I/O 値のビット (1)

1 = PORT ピン > VIH である0 = PORT ピン < VIL である

Note 1: PORTA への書き込みは、実際には対応する LATA レジスタへの書き込み動作です。PORTA レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-3: TRISA: PORTA 3 ステートレジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 TRISA<7:0>: PORTA 3 ステート制御ビット1 = PORTA ピンを入力として設定する (3 ステート )0 = PORTA ピンを出力として設定する

DS41452C_JP - p.110 2013 Microchip Technology Inc.

Page 111: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-4: LATA: PORTA データ ラッチ レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

LATA7 LATA6 LATA5 LATA4 LATA3 LATA2 LATA1 LATA0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-4 LATA<7:0>: PORTA 出力ラッチ値のビット (1)

Note 1: PORTA への書き込みは、実際には対応する LATA レジスタへの書き込み動作です。PORTA レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-5: ANSELA: PORTA アナログ選択レジスタ

U-0 U-0 R/W-1/1 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

- - ANSA5 - ANSA3 ANSA2 ANSA1 ANSA0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 未実装 :「0」として読み出し

bit 5 ANSA5: RA5 ピンの機能をアナログまたはデジタルのどちらかに設定します。

0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

bit 4 未実装 :「0」として読み出し

bit 3-0 ANSA<3:0>: RA<3:0> ピンの機能をそれぞれアナログまたはデジタルのどちらかに設定します。

0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

Note 1: アナログ入力として設定する場合、ピンの電圧を外部から制御するには、対応する TRIS ビットを入力モードに設定する必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.111

Page 112: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 12-3: PORTA 関連のレジスタのまとめ

表 12-4: PORTA 関連コンフィグレーション ワードのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

ANSELA - - ANSA5 - ANSA3 ANSA2 ANSA1 ANSA0 111

APFCON - - - - - - SSSEL CCP2SEL 108

LATA LATA7 LATA6 LATA5 LATA4 LATA3 LATA2 LATA1 LATA0 111

OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0> 151

PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 110

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛け部分は PORTA では使いません。

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG113:8 FCMEN IESO CLKOUTEN BOREN<1:0.> -

427:0 CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分は PORTA では使いません。

DS41452C_JP - p.112 2013 Microchip Technology Inc.

Page 113: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.3 PORTB レジスタ

12.3.1 データレジスタ

PORTB は 8 ビット幅の双方向ポートです。これに対応するデータ方向レジスタが、TRISB (レジスタ 12-7)です。TRISB ビットをセットする (= 1) と、対応するPORTB ピンが入力になります ( すなわち、対応する出力ドライバがハイ インピーダンス モードに移行します )。TRISB ビットをクリアする (= 0) と、対応するPORTB ピンが出力になります ( すなわち、出力ドライバが有効化され、出力ラッチの内容が選択したピンに出力されます )。例 12-1 に、I/O ポートの初期化方法を示します。

PORTBレジスタ (レジスタ 12-6)を読み出すとピンのステータスが読み出され、書き込むと PORT ラッチに書き込まれます。書き込み動作は全て Read-Modify-Writeです。従って、ポートへの書き込み時にはまずポートピンが読み出され、この値が変更されてから PORTデータラッチ (LATB) に書き込まれます。

12.3.2 方向制御

ピンをアナログ入力として使う場合も、TRISB レジスタ (レジスタ 12-7)がPORTBピンの出力ドライバを制御します。これらのピンをアナログ入力として使う際は、必ず TRISB レジスタのビットをセットしたままにしてください。アナログ入力として設定された I/O ピンからは常に「0」が読み出されます。

12.3.3 アナログ制御

ANSELB レジスタ ( レジスタ 12-9) は、I/O ピンの入力モードをアナログに設定する際に使います。ANSELBビットを High にセットしたピンに対してデジタル読み出しを実行すると、全て「0」として読み出され、ピンのアナログ機能が正しく動作します。

ANSELB ビットの状態は、デジタル出力機能には影響を与えません。TRIS をクリアして ANSELB をセットしたピンはデジタル出力として動作しますが、入力モードはアナログです。このように設定されたポートに対してRead-Modify-Write命令を実行すると予期しない挙動を引き起こす事があります。

12.3.4 PORTB の機能と出力の優先度

PORTB の各ピンは、他の機能と多重化されています。表 12-5 に、各ピンに割り当てられた複数の機能とそれらの出力の優先度を示します。

複数の出力を有効にした場合、 も優先度の高い周辺機能からの出力が有効となります。

アナログ入力と一部のデジタル入力機能は下の表には記載されていません。これらの入力機能は、ピンを出力モードに設定しても動作させる事ができます。一部のデジタル入力機能は、他のポート機能よりも優先されます。これらについては優先度のリストに記載されています。

Note: ANSELB ビットのリセット後の既定値はアナログモードです。任意のピンをデジタル汎用入力または周辺入力として使うには、対応する ANSEL ビットをユーザソフトウェアで「0」に初期化する必要があります。

表 12-5: PORTB 出力の優先度

ピン名 機能の優先度 (1)

RB0 RB0

RB1 RB1

RB2 RB2

RB3 CCP2RB3

RB4 RB4

RB5 RB5

RB6 ICDCLKRB6

RB7 ICDDATRB7

Note 1: 優先度の高いものから順に記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.113

Page 114: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-6: PORTB: PORTB レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 RB<7:0>: PORTB 汎用 I/O ピンビット (1)

1 = PORT ピン > VIH である0 = PORT ピン < VIL である

Note 1: PORTB への書き込みは、実際には対応する LATB レジスタへの書き込み動作です。PORTB レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-7: TRISB: PORTB 3 ステートレジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 TRISB<7:0>: PORTB 3 ステート制御ビット1 = PORTB ピンを入力として設定する (3 ステート )0 = PORTB ピンを出力として設定する

レジスタ 12-8: LATB: PORTB データラッチ レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 LATB<7:0>: PORTB 出力ラッチ値のビット (1)

Note 1: PORTB への書き込みは、実際には対応する LATB レジスタへの書き込み動作です。PORTB レジスタからの読み出しは、I/O ピンの実際の値を返します。

DS41452C_JP - p.114 2013 Microchip Technology Inc.

Page 115: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 12-6: PORTB 関連のレジスタのまとめ

レジスタ 12-9: ANSELB: PORTB アナログ選択レジスタ

U-0 U-0 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

- - ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 未実装 :「0」として読み出し

bit 5-0 ANSB<5:0>: RB<5:0> ピンの機能をそれぞれアナログまたはデジタルのどちらかに設定します。

0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる

1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

Note 1: アナログ入力として設定する場合、ピンの電圧を外部から制御するには、対応する TRIS ビットを入力モードに設定

する必要があります。

レジスタ 12-10: WPUB: PORTB 弱プルアップ レジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 WPUB<7:0>: 弱プルアップ レジスタビット

1 = プルアップを有効にする

0 = プルアップを無効にする

Note 1: 個別にプルアップを有効にする場合、OPTION_REG レジスタのグローバル WPUEN ビットをクリアする必要があり

ます。

2: ピンが出力として設定されている場合、弱プルアップ デバイスは自動的に無効化されます。

コンポーネント名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容記載ページ

ANSELB - - ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 115

APFCON - - - - - - SSSEL CCP2SEL 108

LATB LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 114

OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0> 151

PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 114

TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 114

WPUB WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 115

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛けの部分は PORTB では使いません。

2013 Microchip Technology Inc. DS41452C_JP - p.115

Page 116: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.4 PORTC レジスタ

12.4.1 データレジスタ

PORTC は 8 ビット幅の双方向ポートです。これに対応するデータ方向レジスタが、TRISC (レジスタ 12-12)です。TRISC ビットをセットする (= 1) と、対応するPORTC ピンが入力になります ( すなわち、対応する出力ドライバがハイ インピーダンス モードに移行します )。TRISC ビットをクリアする (= 0) と、対応するPORTC ピンが出力になります ( すなわち、出力ドライバが有効化され、出力ラッチの内容が選択したピンに出力されます )。例 12-1 に、I/O ポートの初期化方法を示します。

PORTCレジスタ (レジスタ 12-11)を読み出すとピンのステータスが読み出され、書き込むと PORT ラッチに書き込まれます。書き込み動作は全て Read-Modify-Writeです。従って、ポートへの書き込み時にはまずポートピンが読み出され、この値が変更されてから PORT データラッチ (LATC) に書き込まれます。

12.4.2 方向制御

ピンをアナログ入力として使う場合も、TRISC レジスタ (レジスタ 12-12)がPORTCピンの出力ドライバを制御します。これらのピンをアナログ入力として使う際は、必ず TRISC レジスタのビットをセットしたままにしてください。アナログ入力として設定された I/Oピンからは常に「0」が読み出されます。

12.4.3 アナログ制御

ANSELC レジスタ ( レジスタ 12-14) は、I/O ピンの入力モードをアナログに設定する際に使います。ANSELC ビットを High にセットしたピンに対してデジタル読み出しを実行すると、全て「0」として読み出され、ピンのアナログ機能が正しく動作します。

ANSELC ビットの状態は、デジタル出力機能には影響を与えません。TRIS をクリアして ANSELC をセットしたピンはデジタル出力として動作しますが、入力モードはアナログです。このように設定されたポートに対してRead-Modify-Write命令を実行すると予期しない挙動を引き起こす事があります。

12.4.4 PORTC の機能と出力の優先度

PORTC の各ピンは、他の機能と多重化されています。表 12-7 に、各ピンに割り当てられた複数の機能とそれらの出力の優先度を示します。

複数の出力を有効にした場合、 も優先度の高い周辺機能からの出力が有効となります。

アナログ入力と一部のデジタル入力機能は下の表には記載されていません。これらの入力機能は、ピンを出力モードに設定しても動作させる事ができます。一部のデジタル入力機能は、他のポート機能よりも優先されます。これらについては優先度のリストに記載されています。

Note: ANSELC ビットのリセット後の既定値はアナログモードです。任意のピンをデジタル汎用入力または周辺入力として使うには、対応する ANSEL ビットをユーザソフトウェアで「0」に初期化する必要があります。

表 12-7: PORTC 出力の優先度

ピン名 機能の優先度 (1)

RC0 SOSCORC0

RC1 SOSCICCP2RC1

RC2 CCP1RC2

RC3 SCLSCKRC3(2)

RC4 SDARC4(2)

RC5 SDORC5

RC6 CKTXRC6

RC7 DTRC7

Note 1: 優先度の高いものから順に記載しています。

2: I2C モードが有効な場合、RC3 と RC4 はI2C レベルの ST 入力を受け付けます。

DS41452C_JP - p.116 2013 Microchip Technology Inc.

Page 117: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-11: PORTC: PORTC レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 RC<7:0>: PORTC 汎用 I/O ピンビット (1)

1 = PORT ピン > VIH である0 = PORT ピン < VIL である

Note 1: PORTC への書き込みは、実際には対応する LATC レジスタへの書き込み動作です。PORTC レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-12: TRISC: PORTC 3 ステートレジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 TRISC<7:0>: PORTC 3 ステート制御ビット1 = PORTC ピンを入力として設定する (3 ステート )0 = PORTC ピンを出力として設定する

レジスタ 12-13: LATC: PORTC データ ラッチ レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

LATC7 LATC6 LATC5 LATC4 LATC3 LATC2 LATC1 LATC0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 LATC<7:0>: PORTC 出力ラッチ値のビット (1)

Note 1: PORTC への書き込みは、実際には対応する LATC レジスタへの書き込み動作です。PORTC レジスタからの読み出しは、I/O ピンの実際の値を返します。

2013 Microchip Technology Inc. DS41452C_JP - p.117

Page 118: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 12-8: PORTC 関連のレジスタのまとめ

レジスタ 12-14: ANSELC: PORTC アナログ選択レジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 U-0 U-0

ANSC7 ANSC6 ANSC3 ANSC3 ANSC3 ANSC2 - -

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-2 ANSC<7:2>: RC<7:2> ピンの機能をそれぞれアナログまたはデジタルのどちらかに設定します。0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

bit 1-0 未実装 :「0」として読み出し

Note 1: アナログ入力として設定する場合、ピンの電圧を外部から制御するには、対応する TRIS ビットを入力モードに設定する必要があります。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容記載ページ

ANSELC ANSC7 ANSC6 ANSC5 ANSC4 ANSC3 ANSC2 - - 118

APFCON - - - - - - SSSEL CCP2SEL 108

LATC LATC7 LATC6 LATC5 LATC4 LATC3 LATC2 LATC1 LATC0 117

PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 117

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛けの部分は PORTC では使いません。

DS41452C_JP - p.118 2013 Microchip Technology Inc.

Page 119: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.5 PORTD レジスタ(PIC16F1517/1519 のみ )

12.5.1 データレジスタ

PORTD は 8 ビット幅の双方向ポートです。これに対応するデータ方向レジスタが、TRISD (レジスタ 12-16)です。TRISD ビットをセットする (= 1) と、対応するPORTD ピンが入力になります ( すなわち、対応する出力ドライバがハイ インピーダンス モードに移行します )。TRISD ビットをクリアする (= 0) と、対応するPORTD ピンが出力になります ( すなわち、出力ドライバが有効化され、出力ラッチの内容が選択したピンに出力されます )。例 12-1 に、I/O ポートの初期化方法を示します。

PORTDレジスタ (レジスタ 12-15)を読み出すとピンのステータスが読み出され、書き込むと PORT ラッチに書き込まれます。書き込み動作は全て Read-Modify-Writeです。従って、ポートへの書き込み時にはまずポートピンが読み出され、この値が変更されてから PORTデータラッチ (LATD) に書き込まれます。

12.5.2 方向制御

ピンをアナログ入力として使う場合も、TRISD レジスタ (レジスタ 12-16)がPORTDピンの出力ドライバを制御します。これらのピンをアナログ入力として使う際は、必ず TRISD レジスタのビットをセットしたままにしてください。アナログ入力として設定された I/Oピンからは常に「0」が読み出されます。

12.5.3 アナログ制御

ANSELD レジスタ ( レジスタ 12-18) は、I/O ピンの入力モードをアナログに設定する際に使います。ANSELD ビットを High にセットしたピンに対してデジタル読み出しを実行すると、全て「0」として読み出され、ピンのアナログ機能が正しく動作します。

ANSELD ビットの状態は、デジタル出力機能には影響を与えません。TRIS をクリアして ANSELD をセットしたピンはデジタル出力として動作しますが、入力モードはアナログです。このように設定されたポートに対してRead-Modify-Write命令を実行すると予期しない挙動を引き起こす事があります。

12.5.4 PORTD の機能と出力の優先度

PORTD の出力は汎用デジタル出力のみであり、出力の優先度設定はありません。

Note: ANSELD ビットのリセット後の既定値はアナログモードです。任意のピンをデジタル汎用入力または周辺入力として使うには、対応する ANSEL ビットをユーザソフトウェアで「0」に初期化する必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.119

Page 120: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-15: PORTD: PORTD レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 RD<7:0>: PORTD 汎用 I/O ピンビット (1)

1 = PORT ピン > VIH である0 = PORT ピン < VIL である

Note 1: PORTD への書き込みは、実際には対応する LATD レジスタへの書き込み動作です。PORTD レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-16: TRISD: PORTD 3 ステートレジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

TRISD7 TRISD6 TRISD5 TRISD4 TRISD5 TRISD5 TRISD5 TRISD4

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 TRISD<7:0>: PORTD 3 ステート制御ビット1 = PORTD ピンを入力として設定する (3 ステート )0 = PORTD ピンを出力として設定する

レジスタ 12-17: LATD: PORTD データ ラッチ レジスタ

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 LATD<7:0>: PORTD 出力ラッチ値のビット (1)

Note 1: PORTD への書き込みは、実際には対応する LATD レジスタへの書き込み動作です。PORTD レジスタからの読み出しは、I/O ピンの実際の値を返します。

DS41452C_JP - p.120 2013 Microchip Technology Inc.

Page 121: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 12-9: PORTD(1) 関連のレジスタのまとめ

レジスタ 12-18: ANSELD: PORTD アナログ選択レジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 ANSD<7:0>: RD<7:0> ピンの機能をそれぞれアナログまたはデジタルのどちらかに設定します。

0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる

1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

Note 1: アナログ入力として設定する場合、ピンの電圧を外部から制御するには、対応する TRIS ビットを入力モードに設定

する必要があります。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容記載ページ

ANSELD ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0 121

LATD LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0 120

PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 120

TRISD TRISD7 TRISD6 TRISB5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 120

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛けの部分は PORTD では使いません。Note 1: PIC16F1517/1519 の場合のみです。

2013 Microchip Technology Inc. DS41452C_JP - p.121

Page 122: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

12.6 PORTE レジスタ

12.6.1 データレジスタ

PORTE は 4 ビット幅の双方向ポートです。これに対応するデータ方向レジスタが、TRISE です。TRISE ビットをセットする (= 1) と、対応する PORTE ピンが入力になります ( すなわち、対応する出力ドライバがハイインピーダンス モードに移行します )。TRISE ビットをクリアする (= 0) と、対応する PORTE ピンが出力になります ( すなわち、出力ドライバが有効化され、出力ラッチの内容が選択したピンに出力されます )。例外として、RE3 は入力専用であり、その TRIS ビットは常に「1」として読み出されます。例 12-1 に、I/O ポートの初期化方法を示します。

PORTEレジスタ (レジスタ 12-19)を読み出すとピンのステータスが読み出され、書き込むと PORT ラッチに書き込まれます。書き込み動作は全て Read-Modify-Writeです。従って、ポートへの書き込み時にはまずポートピンが読み出され、この値が変更されてから PORTデータラッチ (LATE) に書き込まれます。MCLRE = 1の場合、RE3 は「0」として読み出されます。

12.6.2 アナログ制御

ANSELE レジスタ ( レジスタ 12-22) は、I/O ピンの入力モードをアナログに設定する際に使います。ANSELE ビットを High にセットしたピンに対してデジタル読み出しを実行すると、全て「0」として読み出され、ピンのアナログ機能が正しく動作します。

ANSELE ビットの状態は、デジタル出力機能には影響を与えません。TRIS をクリアして ANSEL をセットしたピンはデジタル出力として動作しますが、入力モードはアナログです。このように設定されたポートに対してRead-Modify-Write命令を実行すると予期しない挙動を引き起こす事があります。

ピンをアナログ入力として使う場合も、TRISE レジスタ ( レジスタ 12-20) が PORTE ピンの出力ドライバを制御します。これらのピンをアナログ入力として使う際は、必ず TRISE レジスタのビットをセットしたままにしてください。アナログ入力として設定された I/O ピンからは常に「0」が読み出されます。

12.6.3 PORTE の機能と出力の優先度

PORTE には周辺機能からの出力がないため優先度の機能はありません。

Note: RE<2:0> ピンと TRISE<2:0> ピンを使えるのは、PIC16(L)F1517/9 のみです。

Note: ANSELE ビットのリセット後の既定値はアナログモードです。任意のピンをデジタル汎用入力または周辺入力として使うには、対応する ANSEL ビットをユーザソフトウェアで「0」に初期化する必要があります。

DS41452C_JP - p.122 2013 Microchip Technology Inc.

Page 123: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-19: PORTE: PORTE レジスタ

U-0 U-0 U-0 U-0 R-x/u R/W-x/u R/W-x/u R/W-x/u

- - - - RE3 RE2(1) RE1(1) RE0(1)

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-4 未実装 :「0」として読み出し

bit 3-0 RE<3:0>: PORTE I/O ピンビット (1)

1 = PORT ピン > VIH である0 = PORT ピン < VIL である

Note 1: RE<2:0> は PIC16(L)F1516/8 には実装されていません。「0」が読み出されます。RE<2:0> への書き込みは、実際には対応する LATE レジスタへの書き込み動作です。PORTE レジスタからの読み出しは、I/O ピンの実際の値を返します。

レジスタ 12-20: TRISE: PORTE 3 ステートレジスタ

U-0 U-0 U-0 U-0 U-1(2) R/W-1 R/W-1 R/W-1

- - - - - TRISE2(1) TRISE1(1) TRISE0(1)

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-4 未実装 :「0」として読み出し

bit 3 未実装 :「1」として読み出し

bit 2-0 TRISE<2:0>: RE<2:0> 3 ステート制御ビット (1)

1 = PORTE ピンを入力として設定する (3 ステート )0 = PORTE ピンを出力として設定する

Note 1: TRISE<2:0> は PIC16(L)F1517/9 には実装されていません。「0」が読み出されます。

2: 未実装、「1」として読み出されます。

2013 Microchip Technology Inc. DS41452C_JP - p.123

Page 124: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 12-21: LATE: PORTE データ ラッチ レジスタ (2)

U-0 U-0 U-0 U-0 U-0 R/W-x/u R/W-x/u R/W-x/u

- - - - - LATE2 LATE1 LATE0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-3 未実装 :「0」として読み出し

bit 2-0 LATE<2:0>: PORTE 出力ラッチ値のビット (1)

Note 1: PORTE への書き込みは、実際には対応する LATE レジスタへの書き込み動作です。PORTE レジスタからの読み出しは、I/O ピンの実際の値を返します。

2: PIC16(L)F1517/9 の場合のみです。

レジスタ 12-22: ANSELE: PORTE アナログ選択レジスタ (2)

U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-1 R/W-1

- - - - - ANSE2 ANSE1 ANSE0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-3 未実装 :「0」として読み出し

bit 2-0 ANSE<2:0>: RE<2:0> ピンの機能をそれぞれアナログまたはデジタルのどちらかに設定します。

0 = デジタル I/O。ピンにポートまたはデジタル特殊機能を割り当てる1 = アナログ入力。ピンにアナログ入力機能を割り当て (1)、デジタル入力バッファを無効にする

Note 1: アナログ入力として設定する場合、ピンの電圧を外部から制御するには、対応する TRIS ビットを入力モードに設定する必要があります。

2: PIC16(L)F1517/9 の場合のみです。

DS41452C_JP - p.124 2013 Microchip Technology Inc.

Page 125: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 12-10: PORTE 関連のレジスタのまとめ

表 12-11: PORTE 関連コンフィグレーション ワードのまとめ

レジスタ 12-23: WPUE: PORTE 弱プルアップ レジスタ

U-0 U-0 U-0 U-0 R/W-1/1 U-0 U-0 U-0

- - - - WPUE3 - - -

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-4 未実装 :「0」として読み出し

bit 3 WPUE: 弱プルアップ レジスタ ビット

1 = プルアップを有効にする0 = プルアップを無効にする

bit 2-0 未実装 :「0」として読み出し

Note 1: 個別にプルアップを有効にする場合、OPTION_REG レジスタのグローバル WPUEN ビットをクリアする必要があります。

2: ピンが出力として設定されている場合、弱プルアップ デバイスは自動的に無効化されます。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

ADCON0 - CHS<4:0> GO/DONE ADON 141

ANSELE(1) - - - - - ANSE2 ANSE1 ANSE0 124

CCPxCON - - DCxB<1:0> CCPxM<3:0> 178

LATE - - - - - LATE2(1) LATE1(1) LATE0(1) 124

PORTE - - - - RE3 RE2(1) RE1(1) RE0(1) 123

TRISE - - - - ‘1’ TRISE2(1) TRISE1(1) TRISE0(1) 123

WPUE - - - - WPUE3 - - - 125

凡例 : x = 未知、u = 不変、- = 未実装、「0」として読み出し。網掛けの部分は PORTE では使いません。Note 1: これらのビットは PIC16(L)F1516/8 には実装されていないため、「0」として読み出されます。

レジスタ名 Bit Bit -/7 Bit -/6 Bit 13/5 Bit 12/4 Bit 11/3 Bit 10/2 Bit 9/1 Bit 8/0レジスタ

内容記載

ページ

CONFIG113:8 FCMEN IESO CLKOUTEN BOREN<1:0> -

427:0 CP MCLRE PWRTE WDTE<1:0> FOSC<2:0>

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は PORTE では使いません。

2013 Microchip Technology Inc. DS41452C_JP - p.125

Page 126: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.126 2013 Microchip Technology Inc.

Page 127: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

13.0 状態変化割り込み

PORTBピンは状態変化割り込み (IOC)ピンとして動作するように設定できます。割り込みは、信号の立ち上がりエッジ / 立ち下がりエッジのどちらの検出時にも生成できます。1 本の PORTB ピンでも複数の PORTBピンの組み合わせでも割り込み生成が可能です。状態変化割り込みモジュールには、以下の特長があります。

• 状態変化割り込みイネーブル ( マスタスイッチ )

• 個別のピン設定

• 立ち上がり / 立ち下がりエッジの検出

• 個別のピン割り込みフラグ

図 13-1 に、IOC モジュールのブロック図を示します。

13.1 モジュールの有効化

各 PORTB ピンで割り込みを生成するには、INTCONレジスタのIOCIEビットをセットする必要があります。IOCIE ビットが無効の場合、ピンにおいてエッジは検出されますが割り込みは生成されません。

13.2 個別のピン設定

各 PORTB ピンには、立ち上がりエッジの検出機能と立ち下がりエッジの検出機能があります。立ち上がりエッジの検出機能を有効にする場合、IOCBP レジスタの対応する IOCBPx ビットをセットします。立ち下がりエッジの検出機能を有効にする場合、IOCBN レジスタの対応する IOCBNx ビットをセットします。

IOCBP と IOCBN レジスタの IOCBPx と IOCBNx の両方をセットすると、立ち上がりエッジと立ち下がりエッジを共に検出できます。

13.3 割り込みフラグ

IOCBF レジスタの IOCBFx ビットは、PORTB の状態変化割り込みピンに対応するステータスフラグです。状態変化割り込みを有効にしたピンで予測されるエッジが検出されると、そのピンのステータスフラグがセットされ、IOCIE ビットをセットしている場合は割り込みが生成されます。INTCON レジスタの IOCIFビットは、全ての IOCBFx ビットのステータスを反映します。

13.4 割り込みフラグのクリア

各ステータスフラグ (IOCBFx ビット ) は、ゼロにリセットする事でクリアできます。クリア動作中に次のエッジが検出された場合、実際に書き込まれる値に関係なく、クリア動作完了時に対応するステータスフラグがセットされます。

フラグクリア中に検出したエッジを失わないようにするため、既知の変更済みビットをマスクした AND 動作のみ実行してください。以下はシーケンシングの例です。

例 13-1: 割り込みフラグのクリア(PORTA の例 )

13.5 スリープ時の動作

IOCIE ビットがセットされている場合、状態変化割り込みシーケンシングはデバイスをスリープから復帰させます。

スリープ中にエッジが検出された場合、復帰後の 初の命令が実行される前に、IOCBF レジスタが更新されます。

MOVLW 0xffXORWF IOCAF, WANDWF IOCAF, F

2013 Microchip Technology Inc. DS41452C_JP - p.127

Page 128: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 13-1: 状態変化割り込みのブロック図

DS41452C_JP - p.128 2013 Microchip Technology Inc.

Page 129: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

13.6 レジスタ定義 : 状態変化割り込み制御

レジスタ 13-1: IOCBP: PORTB 立ち上がりエッジ状態変化割り込みレジスタ

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

IOCBP7 IOCBP6 IOCBP5 IOCBP4 IOCBP3 IOCBP2 IOCBP1 IOCBP0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 IOCBP<7:0>: PORTB 立ち上がりエッジ状態変化割り込みイネーブルビット

1 = 立ち上がりエッジの状態変化割り込みを有効にする。エッジ検出時に IOCBFx ビットと IOCIF フラグがセットされる

0 = 状態変化割り込みを無効にする

レジスタ 13-2: IOCBN: PORTB 立ち下がりエッジ状態変化割り込みレジスタ

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

IOCBN7 IOCBN6 IOCBN5 IOCBN4 IOCBN3 IOCBN2 IOCBN1 IOCBN0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 IOCBN<7:0>: PORTB 立ち下がりエッジ状態変化割り込みイネーブルビット

1 = 立ち下がりエッジで状態変化割り込みを有効にする。エッジ検出時に IOCBFx ビットと IOCIF フラグがセットされる

0 = 状態変化割り込みを無効にする

レジスタ 13-3: IOCBF: PORTB 状態変化割り込みフラグレジスタ

R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0 R/W/HS-0/0

IOCBF7 IOCBF6 IOCBF5 IOCBF4 IOCBF3 IOCBF2 IOCBF1 IOCBF0

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア HS = ビットはハードウェアでセット

bit 7-0 IOCBF7:0>: PORTB 状態変化割り込みフラグビット

1 = 関連ピンで有効な状態変化が検出された。IOCBPx = 1で RBx に立ち上がりエッジが検出された場合、または IOCBNx = 1で RBx に立ち下がりエッジが検出された場合にセットされます。

0 = 状態変化なし、または検出された状態変化をユーザがクリアした

2013 Microchip Technology Inc. DS41452C_JP - p.129

Page 130: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 13-1: 状態変化割り込み関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

ANSELB ANSB7 ANSB6 ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 115

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

IOCBF IOCBP7 IOCBP6 IOCBP5 IOCBP4 IOCBP3 IOCBP2 IOCBP1 IOCBP0 129

IOCBN IOCBN7 IOCBN6 IOCBN5 IOCBN4 IOCBN3 IOCBN2 IOCBN1 IOCBN0 129

IOCBP IOCBF7 IOCBF6 IOCBF5 IOCBF4 IOCBF3 IOCBF2 IOCBF1 IOCBF0 129

TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 114

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は状態変化割り込みでは使いません。

DS41452C_JP - p.130 2013 Microchip Technology Inc.

Page 131: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

14.0 固定参照電圧 (FVR)

固定参照電圧 (FVR) は、VDD から独立している安定した参照電圧であり、出力レベルを 1.024 V、2.048 V または 4.096 V から選択できます。FVR の出力は、設定によって以下の参照電圧として供給できます。

• ADC 入力チャンネル

• ADC 正参照電圧

FVRCON レジスタの FVREN ビットをセットするとFVR を有効にできます。

14.1 独立ゲインアンプ

FVR 出力は、プログラマブル ゲインアンプを介してADC モジュールに入力されます。このアンプは参照電圧を 1 倍、2 倍、4 倍のいずれかに増幅するよう設定でき、これによって電圧レベルを 3 種類に切り換えます。

ADC モジュールへ供給する参照電圧のゲインアンプを有効化して設定するには、FVRCON レジスタのADFVR<1:0> ビットを使います。詳細は、セクション 16.0「A/D コンバータ (ADC) モジュール」を参照してください。

14.2 FVR 安定化時間

固定参照電圧モジュールを有効にした場合、参照電圧回路とアンプ回路が安定するまである程度の時間が必要です。回路が安定して使える状態になると、FVRCONレジスタの FVRRDY ビットがセットされます。 小遅延時間の要件は、セクション 25.0「電気的仕様」を参照してください。

図 14-1: 参照電圧のブロック図

Any peripheral requiring the Fixed Reference

(See 表 14-1)

表 14-1: 固定参照電圧 (FVR) を必要とする周辺機能

周辺機能 条件 説明

HFINTOSC FOSC<2:0> = 100かつ IRCF<3:0> = 000x INTOSC が有効でデバイスがスリープ状態ではない

BOR

BOREN<1:0> = 11 BOR を常に有効にする

BOREN<1:0> = 10かつ BORFS = 1 スリープ中に BOR を無効にして、BOR 高速起動を有効にする

BOREN<1:0> = 01かつ BORFS = 1 BOR をソフトウェアによって制御し、BOR 高速起動を有効にする

LDO 全ての PIC16F1516/7/8/9 で VREGPM = 1かつスリープ中でない場合

スリープ中、デバイスは低消費電力レギュレータで動作する

2013 Microchip Technology Inc. DS41452C_JP - p.131

Page 132: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

14.3 レジスタ定義 : FVR 制御

表 14-2: 固定参照電圧関連のレジスタのまとめ

レジスタ 14-1: FVRCON: 固定参照電圧制御レジスタ

R/W-0/0 R-q/q R/W-0/0 R/W-0/0 U-0 U-0 R/W-0/0 R/W-0/0

FVREN FVRRDY(1) TSEN TSRNG - - ADFVR<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア q = 条件による

bit 7 FVREN: 固定参照電圧イネーブルビット0 = 固定参照電圧を無効にする1 = 固定参照電圧を有効にする

bit 6 FVRRDY: 固定参照電圧レディフラグ ビット (1)

0 = 固定参照電圧出力の準備が整ってない ( または無効である )1 = 固定参照電圧出力は使える状態である

bit 5 TSEN: 温度インジケータ イネーブルビット

0 = 温度インジケータを無効にする1 = 温度インジケータを有効にする

bit 4 TSRNG: 温度インジケータ レンジ選択ビット

0 = VOUT = VDD - 2 VT (Low レンジ )1 = VOUT = VDD - 4 VT (High レンジ )

bit 3-2 未実装 :「0」として読み出し

bit 1-0 ADFVR<1:0>: ADC 用固定参照電圧選択ビット

00 = ADC 用固定参照電圧周辺機能の出力 OFF01 = ADC 用固定参照電圧周辺機能の出力 1 倍 (1.024 V)10 = ADC 用固定参照電圧周辺機能の出力 2 倍 (2.048 V)(2)

11 = ADC 用固定参照電圧周辺機能の出力 4 倍 (4.096 V)(2)

Note 1: PIC16F1516/7/8/9 の場合のみ、FVRRDY は常に「1」として読み出されます。

2: 固定参照電圧出力は、VDD を超える事ができません。

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

FVRCON FVREN FVRRDY TSEN TSRNG - - ADFVR<1:0> 132

凡例 : 網掛けの部分は固定参照電圧モジュールでは使いません。

DS41452C_JP - p.132 2013 Microchip Technology Inc.

Page 133: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

15.0 温度インジケータ モジュール

このデバイスファミリは、シリコンダイの動作温度を計測するために設計された温度回路を搭載しています。回路が計測する動作温度のレンジは -40 ~ +85 ℃です。出力はデバイス温度に比例した電圧です。温度インジケータの出力は、デバイス搭載の ADC に内部で接続されています。

この回路は実施する校正のレベルに応じて、温度しきい値の検知器、またはより高精度な温度インジケータとして使えます。1 点校正を行うと、回路はその前後の温度を計測できます。2 点校正を行えば、全温度レンジでより高精度の温度検出が可能です。校正手順の詳細は、アプリケーション ノート AN1333『内部温度インジケータの使用と校正』(DS01333) を参照してください。

15.1 回路動作

図 15-1 に、温度回路の概略ブロック図を示します。温度に比例する電圧出力は、複数のシリコン接合の順方向電圧降下を計測する事で得られます。

式 15-1 は、温度インジケータの出力特性を表します。

式 15-1: VOUT のレンジ

温度検出回路は、固定参照電圧 (FVR) モジュールと統合されています。詳細は、セクション 14.0「固定参照電圧 (FVR)」を参照してください。

この回路は、FVRCON レジスタの TSEN ビットをセットすると有効になります。無効にした場合、回路には電流が一切流れません。

回路は High レンジまたは Low レンジで動作します。FVRCON レジスタの TSRNG ビットをセットするとHigh レンジが選択され、より広い出力電圧が得られます。この場合、仕様温度全体にわたって分解能が向上しますが、製品間のばらつきが大きくなります。Highレンジの動作には、より高いバイアス電圧が必要なため、VDD も高くする必要があります。

FVRCON レジスタの TSRNG ビットをクリアするとLow レンジが選択されます。Low レンジでは発生する電圧降下が小さいため、回路動作にはより低いバイアス電圧が必要です。Low レンジは、低電圧動作向けに用意されたモードです。

図 15-1: 温度計測の回路図

15.2 小動作 VDD

温度回路を Low レンジで動作させる場合、デバイスは仕様内の任意の動作電圧で動作させる事ができます。

一方、High レンジで動作させる場合、デバイスの動作電圧 VDD に、温度回路を適切にバイアスできる十分高い電圧を供給する必要があります。

表 15-1 に、各レンジ設定に対する 小推奨 VDD を示します。

表 15-1: 各レンジに対する推奨 VDD

15.3 温度出力

温度回路の出力は、内蔵 ADC (Analog-to-Digital Converter)によって計測されます。温度回路の出力用に 1 チャンネルが予約済みです。詳細は、セクション 16.0「A/Dコンバータ (ADC) モジュール」を参照してください。

15.4 ADC アクイジション時間

確実に正確な温度を計測するには、ADC 入力マルチプレクサが温度インジケータの出力に接続されてから200 s以上待ってからA/D変換を開始する必要があります。また、温度インジケータ出力を連続して変換する場合、各変換動作の間に200 s待つ必要があります。

High Range: VOUT = VDD - 4VT

Low Range: VOUT = VDD - 2VT

小 VDD、TSRNG = 1 小 VDD、TSRNG = 0

3.6 V 1.8 V

TSEN

TSRNG

VDD

VOUTTo ADC

2013 Microchip Technology Inc. DS41452C_JP - p.133

Page 134: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 15-2: 温度インジケータ関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

FVRCON FVREN FVRRDY TSEN TSRNG - - ADFVR<1:0> 132

凡例 : 網掛けの部分は温度インジケータ モジュールでは使いません。

DS41452C_JP - p.134 2013 Microchip Technology Inc.

Page 135: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.0 A/D コンバータ (ADC) モジュール

A/D コンバータ (ADC) は、アナログ入力信号を 10 ビットのバイナリ値に変換します。本デバイスで使うアナログ入力は、マルチプレクサを介して単一のサンプルホールド回路に入力されます。このサンプルホールド回路の出力を ADC の入力に接続します。ADC は逐次比較方式によって 10 ビットのバイナリ値を生成し、この変換結果を A/D 変換結果レジスタ (ADRESH:ADRESLレジスタペア ) に格納します。図 16-1 に、ADC のブロック図を示します。

ADC の参照電圧はソフトウェアで選択可能であり、内部で生成するか外部から供給できます。

ADC は変換完了時に割り込みを生成できます。この割り込みを使って、デバイスをスリープから復帰させる事ができます。

図 16-1: ADC のブロック図

Note 1: ADON = 0の場合、マルチプレクサの入力は全て切り離されます。

2: デバイスごとの詳細なアナログ チャンネル選択は、ADCON0 レジスタ ( レジスタ 16-1) を参照してください。

VDD

VREF+ ADPREF = 10

ADPREF = 0x

FVR

FVR Buffer1

ADON(1)

GO/DONE

VSS

ADC

00000

00001

00010

00011

CHS<4:0>(2)

AN0

AN1

AN2

VREF+/AN3

11111 ADRESH ADRESL

10

16

ADFM0 = Left Justify1 = Right Justify

Temp Indicator 11110

11011AN27

11100

11101Reserved

Reserved

ADPREF = 11

2013 Microchip Technology Inc. DS41452C_JP - p.135

Page 136: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.1 ADC の設定

ADC の設定と使用に際しては、以下の機能を考慮する必要があります。

• ポートの設定

• チャンネル選択

• ADC 参照電圧の選択

• ADC のクロック源

• 割り込み制御

• 変換結果のフォーマット

16.1.1 ポートの設定

ADC は、アナログ信号とデジタル信号の両方の変換に使えます。アナログ信号を変換する場合、対応するTRIS ビットと ANSEL ビットをセットして I/O ピンをアナログに設定する必要があります。詳細は、セクション 12.0「I/O ポート」を参照してください。

16.1.2 チャンネル選択

以下から 大 30 チャンネルを選択できます。

• AN<19:8、4:0> ピン (PIC16(L)F1516/8 のみ )

• AN<27:0> ピン (PIC16(L)F1517/9 のみ )

• 温度インジケータ

• FVR ( 固定参照電圧 ) 出力

これらのチャンネル選択に関する詳細は、セクション 14.0「固定参照電圧 (FVR)」とセクション 15.0「温度インジケータ モジュール」を参照してください。

サンプルホールド回路にどのチャンネルを接続するかは、ADCON0 レジスタの CHS ビットで設定します。

チャンネルを変更する際は、次の変換を開始するまでに遅延が必要です。詳細は、セクション 16.2「ADCの動作」を参照してください。

16.1.3 ADC 参照電圧

ADCON1 レジスタの ADPREF ビットで正参照電圧を制御します。以下の正参照電圧を使えます。

• VREF+ ピン

• VDD

固定参照電圧の詳細は、セクション 14.0「固定参照電圧 (FVR)」を参照してください。

16.1.4 変換クロック

変換のクロック源は、ADCON1レジスタのADCSビットを使って、ソフトウェアによって選択できます。クロックは以下の 7 種類から選択できます。

• FOSC/2

• FOSC/4

• FOSC/8

• FOSC/16

• FOSC/32

• FOSC/64

• FRC ( 専用内部 FRC オシレータ )

1 ビットの変換に必要な時間を TAD と定義します。図 16-2 に示すように、10 ビット全体の変換には 11.5TAD の時間が必要です。

正しく変換するには、TAD の仕様を適切に満たす必要があります。A/D 変換の要件に関する詳細は、セクション 25.0「電気的仕様」を参照してください。表 16-1に、適切な ADC クロックの選択例を示します。

Note: デジタル入力として定義されたピンにアナログ電圧を印加すると、入力バッファに過大な電流が流れる事があります。 Note: FRC を使う場合を除き、システムクロッ

ク周波数を変更するとADCクロック周波数も変化するため、ADC の結果に悪影響を与える可能性があります。

DS41452C_JP - p.136 2013 Microchip Technology Inc.

Page 137: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 16-1: ADC クロック周期 (TAD) に対するデバイスの 動作 周波数

図 16-2: A/D 変換の TAD サイクル

ADC クロック周期 (TAD) デバイスの動作周波数 (FOSC)

ADCクロック源

ADCS<2:0> 20 MHz 16 MHz 8 MHz 4 MHz 1 MHz

Fosc/2 000 100 ns(2) 125 ns(2) 250 ns(2) 500 ns(2) 2.0 s

Fosc/4 100 200 ns(2) 250 ns(2) 500 ns(2) 1.0 s 4.0 s

Fosc/8 001 400 ns(2) 0.5 s(2) 1.0 s 2.0 s 8.0 s(3)

Fosc/16 101 800 ns 1.0 s 2.0 s 4.0 s 16.0 s(3)

Fosc/32 010 1.6 s 2.0 s 4.0 s 8.0 s(3) 32.0 s(3)

Fosc/64 110 3.2 s 4.0 s 8.0 s(3) 16.0 s(3) 64.0 s(3)

FRC x11 1.0-6.0 s(1、4) 1.0-6.0 s(1、4) 1.0-6.0 s(1、4) 1.0-6.0 s(1、4) 1.0-6.0 s(1、4)

凡例 : 網掛けの値は推奨レンジ外です。

Note 1: VDD を参照電圧とした FRC ソースの TAD 時間は 1.6 s (typ.) です。

2: これらの値は TAD 時間の 小要件を満たしていません。

3: より高速の変換を実行するには、他のクロック源の選択を推奨します。

4: ADC クロックの周期 (TAD) と A/D 変換の総時間を 小にするには、ADC クロックをシステムクロックFOSC から取ります。しかし、スリープ中も変換を実行する場合、FRC オシレータ信号源を使う必要があります。

TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD11

Set GO bit

Holding capacitor is disconnected from analog input (typically 100 ns)

TAD9 TAD10TCY - TAD

ADRESH:ADRESL is loaded, GO bit is cleared, ADIF bit is set, holding capacitor is connected to analog input.

Conversion starts

b0b9 b6 b5 b4 b3 b2 b1b8 b7

On the following cycle:

2013 Microchip Technology Inc. DS41452C_JP - p.137

Page 138: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.1.5 割り込み

ADC モジュールは、A/D 変換完了時に割り込みを生成できます。ADC 割り込みフラグは、PIR1 レジスタのADIF ビットです。ADC 割り込みイネーブルは、PIE1レジスタの ADIE ビットです。ADIF ビットはソフトウェアでクリアする必要があります。

この割り込みは、通常動作中でもスリープ中でも生成できます。デバイスがスリープ中の場合、割り込みによってデバイスが復帰します。スリープから復帰すると、必ず SLEEP 命令の次の命令が実行されます。スリープから復帰後にインラインコード実行を再開するには、INTCON レジスタの GIE と PEIE ビットを無効にしておく必要があります。INTCON レジスタの GIEと PEIE ビットが有効な場合、コード実行は割り込みサービスルーチンに分岐します。

16.1.6 変換結果のフォーマット

10 ビット A/D 変換の結果は、左詰めまたは右詰めのどちらかのフォーマットで出力できます。出力フォーマットは、ADCON1 レジスタの ADFM ビットで設定します。

図 16-3 に、これら 2 通りの出力フォーマットを示します。

図 16-3: 10 ビット AD 変換結果のフォーマット

Note 1: ADC 割り込みの有効 / 無効の設定に関わらず、変換完了時には必ず ADIF ビットがセットされます。

2: FRC オシレータが選択されている場合のみ、ADC はデバイスがスリープ中でも動作します。

ADRESH ADRESL

(ADFM = 0) MSB LSB

bit 7 bit 0 bit 7 bit 0

10-bit ADC Result Unimplemented: Read as '0'

(ADFM = 1) MSB LSB

bit 7 bit 0 bit 7 bit 0

Unimplemented: Read as '0' 10-bit ADC Result

DS41452C_JP - p.138 2013 Microchip Technology Inc.

Page 139: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.2 ADC の動作

16.2.1 変換の開始

ADC モジュールを有効にするには、ADCON0 レジスタの ADON ビットを「1」にセットする必要があります。ADCON0 レジスタの GO/DONE ビットを「1」にセットすると A/D 変換が始まります。

16.2.2 変換の完了

変換が完了すると、ADC モジュールは以下の動作を実行します。

• GO/DONE ビットをクリアする

• ADIF 割り込みフラグビットをセットする

• ADRESH:ADRESL レジスタに新しい変換結果を書き込む

16.2.3 変換の中止

変換を完了前に中止する場合、GO/DONE ビットをソフトウェアでクリアします。ADRESH と ADRESL レジスタは、途中まで完了した A/D 変換サンプルで更新されます。未完了のビットは、前回変換されたビットと同じ値です。

16.2.4 スリープ中の ADC の動作

ADC モジュールはスリープ中も動作できます。その場合、ADC クロック源を FRC に設定する必要があります。FRC オシレータ信号源を選択した場合、ADCが変換を開始するまでの待ち時間は通常より1命令サイクル分長くなります。これによって SLEEP 命令の実行が可能になり、変換時のシステムノイズが軽減されます。ADC 割り込みが有効の場合、A/D 変換が完了するとデバイスがスリープから復帰します。ADC 割り込みが無効の場合、変換が完了すると ADON ビットはセットされたままADCモジュールがOFFになります。

ADC クロック源が FRC 以外の場合、SLEEP 命令を実行すると現在の変換は中止され、ADON ビットがセットされたまま ADC モジュールが OFF になります。

16.2.5 特殊イベントトリガ

CCPx モジュールの特殊イベントトリガを使うと、ソフトウェアを使わずに定期的な ADC 計測を実行できます。このトリガが発生すると、GO/DONE ビットがハードウェアによってセットされ、Timer1 カウンタがゼロにリセットされます。

特殊イベントトリガの使用は、ADC の適切なタイミングを保証するものではありません。ADC のタイミング要件が満たされているかどうかは、ユーザの責任において確認してください。

詳細は、セクション 20.0「キャプチャ/ コンペア /PWMモジュール」を参照してください。

Note: ADC を ON にする命令と同じ命令で GO/DONEビットをセットしないでください。セクション 16.2.6「AD 変換手順」を参照してください。

Note: デバイスをリセットすると、全てのレジスタがリセット状態に戻ります。このため、ADC モジュールは OFF になり、保留中の変換は全て中止されます。

表 16-2: 特殊イベントトリガ

デバイス名 CCP

PIC16(L)F1516

CCP2PIC16(L)F1517

PIC16(L)F1518

PIC16(L)F1519

2013 Microchip Technology Inc. DS41452C_JP - p.139

Page 140: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.2.6 AD 変換手順

以下に ADC による A/D 変換の手順の例を示します。

1. ポートを設定する :

• ピン出力ドライバを無効にする(TRIS レジスタ参照 )。

• ピンをアナログとして設定する(ANSEL レジスタ参照 )。

2. ADC モジュールを設定する :

• ADC の変換クロックを選択する。

• 参照電圧を設定する。

• ADC 入力チャンネルを選択する。

• ADC モジュールを ON にする。

3. ADC 割り込みを設定する ( 任意 ):

• ADC 割り込みフラグをクリアする。

• ADC 割り込みを有効にする。

• 周辺機能割り込みを有効にする。

• グローバル割り込みを有効にする (1)。

4. 必要なアクイジション時間が経過するまで待つ(2)。

5. GO/DONE ビットをセットして変換を開始する。

6. 以下のどちらかの方法で、AD 変換の完了を待つ :

• GO/DONE ビットをポーリングする。

• ADC 割り込みを待つ ( 割り込みが有効の場合 )。

7. A/D 変換の結果を読み出す。

8. ADC割り込みフラグをクリアする (割り込みが有効の場合は必須 )。

例 16-1: A/D 変換

Note 1: スリープからの復帰後にインラインコード実行を再開させる場合、グローバル割り込みは無効でもかまいません。

2: セクション 16.4「ADC アクイジションの要件」を参照してください。

;This code block configures the ADC;for polling, Vdd and Vss references, Frc ;clock and AN0 input.;;Conversion start & polling for completion ; are included.;BANKSEL ADCON1 ;MOVLW B’11110000’ ;Right justify, Frc

;clockMOVWF ADCON1 ;Vdd and Vss VrefBANKSEL TRISA ;BSF TRISA,0 ;Set RA0 to inputBANKSEL ANSEL ;BSF ANSEL,0 ;Set RA0 to analogBANKSEL ADCON0 ;MOVLW B’00000001’ ;Select channel AN0MOVWF ADCON0 ;Turn ADC OnCALL SampleTime ;Acquisiton delayBSF ADCON0,ADGO ;Start conversionBTFSC ADCON0,ADGO ;Is conversion done?GOTO $-1 ;No, test againBANKSEL ADRESH ;MOVF ADRESH,W ;Read upper 2 bitsMOVWF RESULTHI ;store in GPR spaceBANKSEL ADRESL ;MOVF ADRESL,W ;Read lower 8 bitsMOVWF RESULTLO ;Store in GPR space

DS41452C_JP - p.140 2013 Microchip Technology Inc.

Page 141: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.3 レジスタ定義 : ADC 制御

レジスタ 16-1: ADCON0: ADC 制御レジスタ 0

U-0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

- CHS<4:0> GO/DONE ADON

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 未実装 :「0」として読み出し

bit 6-2 CHS<4:0>: アナログ チャンネル選択ビット

11111 = FVR ( 固定参照電圧 ) バッファ 1 出力 (1)

11110 = 温度インジケータ (2)

11101 = 予約済み、チャンネル接続なし

11100 = 予約済み、チャンネル接続なし11011 = AN27(3)

• • •

10100 = AN20(3)

10011 = AN1910010 = AN1810001 = AN1710000 = AN1601111 = AN1501110 = AN1401101 = AN1301100 = AN1201011 = AN1101010 = AN1001001 = AN901000 = AN800111 = AN7(3)

00110 = AN6(3)

00101 = AN5(3)

00100 = AN400011 = AN300010 = AN200001 = AN100000 = AN0

bit 1 GO/DONE: A/D 変換ステータスビット

1 = A/D 変換サイクルを実行中である。このビットをセットすると A/C 変換サイクルが開始する。

このビットは、A/D 変換が完了するとハードウェアによって自動的にクリアされます。

0 = A/D 変換サイクルが完了している ( 進行中でない )

bit 0 ADON: ADC イネーブルビット

1 = ADC を有効にする

0 = ADC を無効にし、消費電流をゼロにする

Note 1: 詳細は、セクション 14.0「固定参照電圧 (FVR)」を参照してください。

2: 詳細は、セクション 15.0「温度インジケータ モジュール」を参照してください。

3: AN<7:5> と AN<27:20> は PIC16(L)F1517/9 の場合のみです。

2013 Microchip Technology Inc. DS41452C_JP - p.141

Page 142: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 16-2: ADCON1: ADC 制御レジスタ 1R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 U-0 U-0 R/W-0/0 R/W-0/0

ADFM ADCS<2:0> - - ADPREF<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 ADFM: A/D 結果フォーマット選択ビット1 = 右詰め、変換結果を読み込むと ADRESH の上位 6 ビットが「0」にセットされる0 = 左詰め、変換結果を読み込むと ADRESL の下位 6 ビットが「0」にセットされる

bit 6-4 ADCS<2:0>: A/D 変換クロック選択ビット000 = FOSC/2001 = FOSC/8010 = FOSC/32011 = FRC ( 専用の FRC オシレータから供給されるクロック )100 = FOSC/4101 = FOSC/16110 = FOSC/64111 = FRC ( 専用の FRC オシレータから供給されるクロック )

bit 3-2 未実装 :「0」として読み出し

bit 1-0 ADPREF<1:0>: ADC 正極性参照電圧コンフィグレーション ビット

00 = VREF を VDD に接続する01 = 予約済み10 = VREF を外部 VREF+ ピン (1) に接続する11 = VREF を内部の固定参照電圧 (FVR) モジュール (1) に接続する

Note 1: 正参照電圧の入力源として FVR または VREF+ ピンを選択する場合、 小電圧値に注意してください。詳細は、セクション 25.0「電気的仕様」を参照してください。

DS41452C_JP - p.142 2013 Microchip Technology Inc.

Page 143: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 16-3: ADRESH: ADC 結果レジスタの上位 (High) (ADRESH) ADFM = 0

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

ADRES<9:2>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 ADRES<9:2>: A/D 変換結果レジスタビット10 ビット変換結果の上位 8 ビット

レジスタ 16-4: ADRESL: ADC 結果レジスタの下位 (Low) (ADRESL) ADFM = 0

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

ADRES<1:0> - - - - - -

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 ADRES<1:0>: A/D 変換結果レジスタビット10 ビット変換結果の下位 2 ビット

bit 5-0 予約済み : 使用不可

2013 Microchip Technology Inc. DS41452C_JP - p.143

Page 144: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 16-5: ADRESH: ADC 結果レジスタの上位 (High) (ADRESH) ADFM = 1

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

- - - - - - ADRES<9:8>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-2 予約済み : 使用不可

bit 1-0 ADRES<9:8>: A/D 変換結果レジスタビット10 ビット変換結果の上位 2 ビット

レジスタ 16-6: ADRESL: ADC 結果レジスタの下位 (Low) (ADRESL) ADFM = 1

R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u R/W-x/u

ADRES<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR 時と BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-0 ADRES<7:0>: A/D 変換結果レジスタビット

10 ビット変換結果の下位 8 ビット

DS41452C_JP - p.144 2013 Microchip Technology Inc.

Page 145: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

16.4 ADC アクイジションの要件

ADC が仕様上の精度を実現するには、電荷保持コンデンサ (CHOLD) を入力チャンネルの電圧レベルまで完全に充電する必要があります。図 16-4 に、アナログ入力モデルを示します。ソース インピーダンス (RS) と内部サンプリング スイッチのインピーダンス (RSS)は、コンデンサ (CHOLD) の充電時間に直接影響します。サンプリング スイッチのインピーダンス (RSS) は、デバイス電圧 (VDD)によって変化します (図 16-4参照 )。アナログソースの推奨 大インピーダンスは、10 kです。ソース インピーダンスが低下すると、アクイジション時間が短くなる場合があります。アナログ入力

チャンネルを選択 ( または変更 ) した場合、変換開始前に ADC アクイジションを実行する必要があります。小アクイジション時間は式 16-1によって計算できます。この式では、1/2 LSb 誤差の適用を前提としています(ADC は 1,024 ステップ )。1/2 LSb の誤差は、ADC で仕様上の分解能を実現できる 大許容誤差です。

式 16-1: アクイジション時間の例

TACQ Amplifier Settling Time Hold Capacitor Charging Time Temperature Coefficient+ += TA M P TC TC O F F+ +=

TC CHOLD RIC RSS RS+ + ln(1/2047)–=

13.5pF 1k 7k 10k+ + – ln(0.0004885)=

1.20= µs

VAPPLIED 1 e

Tc–RC---------

VAPPLIED 1 1

2n 1+ 1–

--------------------------– =

VAPPLIED 1 1

2n 1+ 1–

--------------------------– VCHOLD=

VAPPLIED 1 e

TC–RC----------

VCHOLD=

;[1] VCHOLD charged to within 1/2 lsb

;[2] VCHOLD charge response to VAPPLIED

;combining [1] and [2]

The value for TC can be approximated with the following equations:

Solving for TC:

Therefore:

Temperature 50 C and external impedance of 10k 5.0V VDD=Assumptions:

Note: Where n = number of bits of the ADC.

TACQ 2µs 1.20µs 50°C- 25°C 0.05µs/°C + +=

4.45µs=

2= µs TC Temperature- 25°C 0.05µs/°C + +

2013 Microchip Technology Inc. DS41452C_JP - p.145

Page 146: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 16-4: アナログ入力モデル

図 16-5: ADC の伝達関数

Note 1: 参照電圧 (VREF) は自己相殺されるため、上式には影響しません。

2: 電荷保持コンデンサ (CHOLD) は、変換が完了するたびに放電されるわけではありません。

3: アナログソースの推奨 大インピーダンスは10 kです。これは、ピンのリーク電流仕様を満たすために 必要です。

CPINVA

Rs

Analog

5 pF

VDD

VT 0.6V

VT 0.6V I LEAKAGE(1)

RIC 1k

SamplingSwitch

SS Rss

CHOLD = 10 pF

VSS/VREF-

6V

Sampling Switch

5V4V3V2V

5 6 7 8 9 10 11

(k)

VDD

Legend:

CPIN

VT

I LEAKAGE

RIC

SS

CHOLD

= Input Capacitance

= Threshold Voltage

= Leakage current at the pin due to

= Interconnect Resistance

= Sampling Switch

= Sample/Hold Capacitance

various junctions

RSS

Note 1: 詳細は、セクション 25.0「電気的仕様」を参照してください。

RSS = Resistance of Sampling Switch

Inputpin

3FFh

3FEh

AD

C O

utp

ut C

ode

3FDh

3FCh

03h

02h

01h

00h

Full-Scale

3FBh

0.5 LSB

VREF- Zero-ScaleTransition

VREF+Transition

1.5 LSB

Full-Scale Range

Analog Input Voltage

DS41452C_JP - p.146 2013 Microchip Technology Inc.

Page 147: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 16-3: ADC 関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 レジスタ内容

記載ページ

ADCON0 - CHS<4:0> GO/DONE ADON 141

ADCON1 ADFM ADCS<2:0> - - ADPREF<1:0> 142

ADRESH A/D 変換結果レジスタ上位 143, 144

ADRESL A/D 変換結果レジスタ下位 143, 144

ANSELA - - ANSA5 - ANSA3 ANSA2 ANSA1 ANSA0 111

ANSELB - - ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 115

ANSELC ANSC7 ANSC6 ANSC5 ANSC4 ANSC3 ANSC2 - - 118

ANSELD(1) ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0 121

ANSELE(1) - - - - - ANSE2 ANSE1 ANSE0 124

CCP1CON - - DC1B<1:0> CCP1M<3:0> 178

CCP2CON - - DC2B<1:0> CCP2M<3:0> 178

FVRCON FVREN FVRRDY TSEN TSRNG - - ADFVR<1:0> 132

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 114

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TRISD(1) TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 120

TRISE - - - - ‘1’ TRISE2(1) TRISE1(1) TRISE0(1) 123

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は ADC モジュールでは使いません。

Note 1: PIC16(L)F1517/9 の場合のみです。

2013 Microchip Technology Inc. DS41452C_JP - p.147

Page 148: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.148 2013 Microchip Technology Inc.

Page 149: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

17.0 Timer0 モジュール

Timer0 モジュールは 8 ビットのタイマ / カウンタで、以下の特長を備えています。

• 8 ビットのタイマ / カウンタレジスタ (TMR0)

• 8 ビットのプリスケーラ ( ウォッチドッグ タイマから独立 )

• プログラマブルな内部または外部クロック源

• プログラマブルな外部クロックエッジ選択

• オーバーフロー割り込み

• TMR0 は Timer1 のゲート制御に使用可能

図 17-1に、Timer0モジュールのブロック図を示します。

17.1 Timer0 の動作

Timer0 モジュールは、8 ビットのタイマまたはカウンタのどちらかとして使えます。

17.1.1 8 ビット タイマ モード

プリスケーラを使わない場合、Timer0 モジュールは 1命令サイクルごとにインクリメントします。8 ビットタイマ モードを選択するには、OPTION_REG レジスタの TMR0CS ビットをクリアします。

TMR0 に書き込みが実行されると、書き込み直後の 2命令サイクル間はインクリメントが抑止されます。

17.1.2 8 ビット カウンタ モード

8 ビット カウンタ モードでは、Timer0 モジュールはT0CKI ピンの立ち上がりエッジまたは立ち下がりエッジごとにインクリメントします。

T0CKI ピンを使った 8 ビット カウンタ モードは、OPTION_REG レジスタの TMR0CS ビットを「1」に設定する事で選択します。

立ち上がりまたは立ち下がりエッジのどちらでインクリメントするかは、OPTION_REGレジスタのTMR0SEビットで選択します。

図 17-1: Timer0 のブロック図

Note: TMR0 レジスタへの書き込み時に生じる2 命令サイクル間の遅延は、TMR0 に書き込む値を調整する事で補償できます。

T0CKI

TMR0SE

TMR0

PS<2:0>

Data Bus

Set Flag bit TMR0IFon OverflowTMR0CS

0

1

0

18

8

8-bitPrescaler

FOSC/4

PSA

Sync2 TCY

Overflow to Timer1

2013 Microchip Technology Inc. DS41452C_JP - p.149

Page 150: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

17.1.3 ソフトウェアでプログラム可能なプリスケーラ

ソフトウェアでプログラム可能なプリスケーラはTimer0 専用です。このプリスケーラは、OPTION_REGレジスタのPSAビットをクリアすると有効になります。

Timer0 モジュールのプリスケーラは、1:2 から 1:256 までの 8 つの設定が可能であり、OPTION_REG レジスタの PS<2:0> ビットで選択します。Timer0 モジュールに1:1 のプリスケーラ値を設定するには、OPTION_REGレジスタのPSAビットをセットしてプリスケーラを無効にします。

プリスケーラ値の読み書きはできません。TMR0 レジスタに対する全ての書き込み命令は、プリスケーラをクリアします。

17.1.4 Timer0 の割り込み

TMR0レジスタがFFhから00hにオーバーフローすると、Timer0 は割り込みを生成します。Timer0 割り込みの有効 /無効に関わらず、TMR0レジスタがオーバーフローするたびに、INTCON レジスタの TMR0IF 割り込みフラグビットがセットされます。TMR0IF ビットは、ソフトウェアでのみクリアできます。Timer0 割り込みを有効にするには、INTCON レジスタの TMR0IEビットをセットします。

17.1.5 8 ビット カウンタモードの同期

8 ビット カウンタモードの場合、T0CKI ピンに印加されるインクリメント エッジは命令クロックに同期している必要があります。同期を確立するには、命令クロックの Q2 と Q4 のサイクルでプリスケーラ出力をサンプリングします。外部クロック源の High/Low 期間は、セクション 25.0「電気的仕様」に記載されたタイミング要件を満たす必要があります。

17.1.6 スリープ中の動作

プロセッサがスリープ中、Timer0 は動作しません。この間、TMR0 レジスタの内容は変更されません。

Note: ウォッチドッグ タイマ (WDT)は専用のプリスケーラを使います。

Note: スリープ中はTimer0タイマが停止しているため、Timer0 の割り込みによってプロセッサを復帰させる事はできません。

DS41452C_JP - p.150 2013 Microchip Technology Inc.

Page 151: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

17.2 レジスタ定義 : OPTION レジスタ

表 17-1: Timer0 関連レジスタのまとめ

レジスタ 17-1: OPTION_REG: OPTION レジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 WPUEN: 弱プルアップ イネーブルビット

1 = 全ての弱プルアップを無効にする (MCLR が有効の場合、MCLR を除く )0 = 各 WPUx ラッチの値に応じて弱プルアップを有効にする

bit 6 INTEDG: 割り込みエッジ選択ビット

1 = INT ピンの立ち上がりエッジで割り込み0 = INT ピンの立ち下がりエッジで割り込み

bit 5 TMR0CS: Timer0 のクロック源選択ビット

1 = T0CKI ピンの遷移0 = 内部命令サイクルクロック (FOSC/4)

bit 4 TMR0SE: Timer0 ソースエッジ選択ビット

1 = T0CKI ピンの High から Low への遷移時にインクリメントする0 = T0CKI ピンの Low から High への遷移時にインクリメントする

bit 3 PSA: プリスケーラ割り当てビット

1 = プリスケーラを Timer0 モジュールに割り当てない0 = プリスケーラを Timer0 モジュールに割り当てる

bit 2-0 PS<2:0>: プリスケーラ比選択ビット

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

OPTION_REG WPUEN INTEDG TMR0CS TMR0SE PSA PS<2:0> 151

TMR0 Timer0 モジュール レジスタ 149*

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は Timer0 モジュールでは使いません。

* このページにはレジスタの情報を記載しています。

000001010011100101110111

1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 256

Bit Value Timer0 Rate

2013 Microchip Technology Inc. DS41452C_JP - p.151

Page 152: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.152 2013 Microchip Technology Inc.

Page 153: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.0 Timer1 モジュール ( ゲート制御対応 )

Timer1 モジュールは 16 ビットのタイマ / カウンタで、以下の特長を備えています。

• 16 ビットのタイマ / カウンタ レジスタ ペア(TMR1H:TMR1L)

• プログラマブルな内部または外部クロック源

• 2 ビット プリスケーラ

• 32 kHz のセカンダリ オシレータ回路

• 同期コンパレータ出力 ( オプション )

• 複数の Timer1 ゲート ( カウント イネーブル ) ソース

• オーバーフロー割り込み

• オーバーフローによる復帰( 外部クロック、非同期モードのみ )

• キャプチャ / コンペア機能のためのタイムベース

• 特殊イベントトリガ (CCP)

• 選択可能なゲートソース極性

• ゲート トグルモード

• ゲート シングルパルス モード

• ゲート値のステータス

• ゲートイベントによる割り込み

図 18-1に、Timer1モジュールのブロック図を示します。

図 18-1: Timer1 のブロック図

TMR1H TMR1L

T1SYNC

T1CKPS<1:0>

Prescaler1, 2, 4, 8

0

1

Synchronizedclock input

2

Set flag bitTMR1IF onOverflow TMR1(2)

TMR1ON

Note 1: T1CKI を使う場合、ST バッファは高速タイプが使われます。

2: Timer1 レジスタは、立ち上がりエッジでインクリメントします。

3: スリープ中は同期しません。

T1G

Secondary

FOSC/4Internal

Clock

SOSCO/T1CKI

SOSCI

T1OSCEN

1

0

TMR1CS<1:0>

(1)

Synchronize(3)

det

Sleep input

TMR1GE

0

1

00

01

10

T1GPOL

D

QCK

Q

0

1

T1GVAL

T1GTM

Single Pulse

Acq. Control

T1GSPM

T1GGO/DONE

T1GSS<1:0>

EN

OUT

10

11

00

01FOSC

InternalClock

R

D

EN

Q

Q1RD

T1GCON

Data Bus

det

Interrupt

TMR1GIF

Set

T1CLK

FOSC/2InternalClock

D

EN

Q

T1G_IN

TMR1ON

LFINTOSC

From Timer0 Overflow

From Timer2

To Clock Switching Modules

11

Match PR2

Reserved

Oscillator

2013 Microchip Technology Inc. DS41452C_JP - p.153

Page 154: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.1 Timer1 の動作

Timer1 モジュールは 16 ビットのインクリメント カウンタで、TMR1H:TMR1L レジスタペアを介してアクセスします。TMR1H または TMR1L に書き込むと、カウンタ値を直接更新できます。

内部クロック源を使うと、このモジュールはタイマとして機能し、1 命令サイクルごとにインクリメントします。外部クロック源を使うと、このモジュールはタイマまたはカウンタとして機能し、外部クロック源の指定したエッジごとにインクリメントします。

Timer1 を有効にするには、T1CON レジスタのTMR1ONビットとT1GCONレジスタのTMR1GEビットをそれぞれ設定します。表 18-1 に、Timer1 のイネーブル選択を示します。

18.2 クロック源の選択

T1CON レジスタの TMR1CS<1:0> と T1OSCEN ビットにより Timer1 のクロック源を選択します。表 18-2に、クロック源の選択を示します。

18.2.1 内部クロック源

内部クロック源を選択した場合、TMR1H:TMR1L レジスタペアは、Timer1 プリスケーラで決まる FOSC の倍数単位でインクリメントします。

FOSC の内部クロック源を選択した場合、Timer1 レジスタの値は、1 命令クロックサイクルあたり 4 カウント分インクリメントします。このため、Timer1 の値を読み出す場合、分解能に 2 LSB の誤差が生じます。Timer1 の分解能を 大限に活かすには、Timer1 クロック入力をゲート制御する非同期の入力信号が必要です。

非同期の信号源として、以下を使えます。

• Timer1 ゲートへ接続される T1G ピン上の非同期イベント

18.2.2 外部クロック源

外部クロック源を選択した場合、Timer1 モジュールはタイマまたはカウンタとして動作します。

カウントを有効にした場合、Timer1 は外部クロック入力T1CKIの立ち上がりエッジでインクリメントします。この外部クロック源は、マイクロコントローラのシステムクロックに同期させることが可能ですが、非同期のまま動作させることも可能です。

クロック オシレータによるタイマとして使う場合、セカンダリ オシレータ回路と外付けの 32.768 kHz 水晶振動子を使えます。

表 18-1: Timer1 イネーブル選択

TMR1ON TMR1GE Timer1 の動作

0 0 OFF

0 1 OFF

1 0 常に ON

1 1 カウント有効

Note: カウンタモードの場合、下記の条件発生後はカウンタが 初の立ち上がりエッジでインクリメントする前に、立ち下がりエッジを 1 回検出する必要があります。

• POR 後 Timer1 を有効にした

• TMR1H または TMR1L に書き込んだ

• Timer1 を無効にした

• T1CKI が High の時に Timer1 を無効(TMR1ON = 0) にして、その後 T1CKIが Low の時に Timer1 を有効(TMR1ON=1) にした

表 18-2: クロック源の選択

TMR1CS1 TMR1CS0 T1OSCEN クロック源

1 1 x LFINTOSC

1 0 1 SOSCI/SOSCO ピンに接続されたセカンダリ オシレータ回路

1 0 0 T1CKI ピンの外部クロック

0 1 x システムクロック (FOSC)

0 0 x 命令クロック (FOSC/4)

DS41452C_JP - p.154 2013 Microchip Technology Inc.

Page 155: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.3 Timer1 プリスケーラ

Timer1 のプリスケーラは、クロック入力の 1/1、1/2、1/4、1/8 倍の 4 種類の設定が可能です。プリスケールカウンタは、T1CON レジスタの T1CKPS ビットで制御します。プリスケール カウンタは直接読み書きできませんが、TMR1H または TMR1L への書き込み時にクリアされます。

18.4 セカンダリ オシレータ

Timer1 は SOSCI ピンと SOSCO ピンに接続された、低消費電力のセカンダリ オシレータ回路を使います。セカンダリ オシレータ回路は、外付けの 32.768 kHz水晶振動子を使うように設計されています。

セカンダリ オシレータ回路は、T1CON レジスタのT1OSCEN ビットをセットすると有効になります。このオシレータは、スリープ中も動作を継続します。

18.5 非同期カウンタモード時の Timer1動作

T1CON レジスタの T1SYNC ビットをセットした場合、外部クロック入力はシステムクロックに同期されません。タイマはシステムクロックに非同期でインクリメントします。外部クロック源が選択されている場合、タイマはスリープ中も動作を継続するため、オーバーフロー割り込みを生成してプロセッサを復帰させる事ができます。しかし、このタイマの読み書きには、ソフトウェアに特別な注意を払う必要があります( セクション 18.5.1「非同期カウンタモードにおけるTimer1 の読み書き」参照 )。

18.5.1 非同期カウンタモードにおけるTimer1 の読み書き

タイマが外部の非同期クロックで動作している間は、TMR1Hまたは TMR1Lの正しい読み出し動作が (ハードウェアによって ) 保証されます。しかし、16 ビットタイマを 2 つの 8 ビット値として読み出すため、2 回の読み出しの間にタイマがオーバーフローする可能性に注意する事が必要です。

タイマへの書き込みの場合、実行前にタイマを停止する事を推奨します。レジスタがインクリメント中にタイマレジスタへ書き込むと、書き込みの競合が発生する場合があります。この場合、TMR1H:TMR1L レジスタペアが予期しない値となる事があります。

18.6 Timer1 ゲート

Timer1 は、フリーランニング カウンタ、または Timer1ゲート回路による有効 / 無効切り換えが可能なカウンタとして設定できます。この機能は Timer1 ゲートイネーブルとも呼ばれます。

Timer1 ゲートは複数の選択可能なソースによって駆動できます。

18.6.1 Timer1 ゲートイネーブル

Timer1 ゲート イネーブルモードを有効にするには、T1GCONレジスタのTMR1GEビットをセットします。Timer1 ゲート イネーブルモードの極性は、T1GCONレジスタの T1GPOL ビットによって設定します。

Timer1ゲート イネーブルモードが有効の場合、Timer1は Timer1 クロック源の立ち上がりエッジでインクリメントします。Timer1 ゲート イネーブルモードが無効の場合、Timer1 はインクリメントせずに現在のカウント値を保持します。タイミングの詳細は、図 18-3 を参照してください。

18.6.2 Timer1 ゲートのソース選択

Timer1 ゲートのソースは、4 種類の中から選択できます。ソース選択には、T1GCON レジスタの T1GSSビットを使います。使える各ソースの極性も選択できます。極性の選択には、T1GCON レジスタの T1GPOLビットを使います。

表 18-4: Timer1 ゲートのソース

Note: このオシレータを使う場合、起動と安定化の時間が必要です。従って、Timer1 を使うには T1OSCEN をセットし、適切な遅延を確保する必要があります。OST 遅延と同様の遅延をソフトウェアで実装するには、TMR1IF ビットをクリアしてからTMR1H:TMR1LレジスタペアをFC00hにプリセットします。1024 クロックサイクルが経過すると TMR1IF フラグがセットされ、オシレータが動作中でかつ十分安定している事を示します。

Note: 動作を同期モードから非同期モードに切り換える際は、インクリメントがスキップされる可能性があります。非同期モードから同期モードに切り換える際は、インクリメントが 1 回多く実行される可能性があります。

表 18-3: Timer1 ゲートイネーブルの選択

T1CLK T1GPOL T1G Timer1 の動作

0 0 カウントする

0 1 カウントを保持する

1 0 カウントを保持する

1 1 カウントする

T1GSS Timer1 ゲートのソース

00 Timer1 ゲートピン

01 Timer0 のオーバーフロー(TMR0 の FFh から 00h へのインクリメント )

10 Timer2 と PR2 の一致

11 予約済み

2013 Microchip Technology Inc. DS41452C_JP - p.155

Page 156: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.6.2.1 T1G ピンのゲート動作

T1G ピンは、Timer1 のゲート制御用に使われるソースの 1 つです。このピンから Timer1 のゲート回路に外部ソースを供給できます。

18.6.2.2 Timer0 オーバーフロー ゲート動作

Timer0 が FFh から 00h へインクリメントすると、Lowから High に遷移するパルスが自動的に生成され、内部で Timer1 ゲート回路に供給されます。

18.6.2.3 Timer2 と PR2 の一致動作

Timer2 がインクリメントして PR2 に一致すると、Lowから High に遷移するパルスが自動的に生成され、内部で Timer1 ゲート回路に供給されます。

18.6.3 Timer1 ゲート トグルモード

Timer1 ゲート トグルモードが有効の場合、シングルレベル パルスの長さではなく、Timer1 ゲート信号のフルサイクルの長さを計測できます。

Timer1 ゲートのソースは、信号のインクリメント エッジごとにステートが変化するフリップフロップを介して接続されます。タイミングの詳細は、図 18-4 を参照してください。

Timer1 ゲート トグルモードを有効にするには、T1GCON レジスタの T1GTM ビットをセットします。T1GTM ビットがクリアされると、フリップフロップはクリアされて、その状態を保持します。これは、どのエッジを計測するかを確実にするために必要です。

18.6.4 Timer1 ゲート シングルパルス モード

Timer1 ゲート シングルパルス モードを有効にすると、シングルパルスのゲートイベントをキャプチャできます。Timer1 ゲート シングルパルス モードを有効にするには、まず T1GCON レジスタの T1GSPM ビットをセットします。次に、T1GCON レジスタのT1GGO/DONE ビットをセットします。Timer1 は、次のインクリメント エッジで完全に有効になります。パルスの次のトレーリング エッジで、T1GGO/DONEビットが自動的にクリアされます。ソフトウェアでT1GGO/DONE ビットが再度セットされるまで、他のいかなるゲートイベントもTimer1をインクリメントできません。タイミングの詳細は、図 18-5 を参照してください。

T1GCON レジスタの T1GSPM ビットをクリアする事でシングルパルス ゲートモードを無効にする場合、T1GGO/DONE ビットもクリアする必要があります。

トグルモードとシングルパルス モードを同時に有効にすると、両方の動作を併用できます。これにより、Timer1 ゲートソースのサイクル時間を計測できます。タイミングの詳細は、図 18-6 を参照してください。

18.6.5 Timer1 ゲート値ステータス

Timer1 ゲート値ステータスを使うと、ゲート制御値の新のレベルを読み出す事ができます。この値は、

T1GCON レジスタの T1GVAL ビットに格納されています。Timer1 ゲートが有効ではない (TMR1GE ビットがクリアされている ) 場合でも T1GVAL ビットの値は有効です。

18.6.6 Timer1 ゲートイベント割り込み

Timer1 ゲートイベント割り込みが有効の場合、ゲートイベントの完了時に割り込みを生成できます。T1GVAL の立ち下がりエッジで、PIR1 レジスタのTMR1GIF フラグビットがセットされます。PIE1 レジスタの TMR1GIE ビットをセットすると、割り込みの生成が認識されます。

Timer1ゲートが有効ではない (TMR1GEビットがクリアされている ) 場合でも、TMR1GIF フラグビットは動作します。

Note: ゲート極性の変更と同時にトグルモードを有効にすると、不定動作が生じる可能性があります。

DS41452C_JP - p.156 2013 Microchip Technology Inc.

Page 157: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.7 Timer1 割り込み

Timer1 のレジスタペア (TMR1H:TMR1L) は、FFFFhまでインクリメントすると0000hにロールオーバーします。Timer1 がロールオーバーすると、PIR1 レジスタの Timer1 割り込みフラグビットがセットされます。ロールオーバー割り込みを有効にするには、以下のビットをセットする必要があります。

• T1CON レジスタの TMR1ON ビット

• PIE1 レジスタの TMR1IE ビット

• INTCON レジスタの PEIE ビット

• INTCON レジスタの GIE ビット

割り込みサービスルーチンで TMR1IF ビットをクリアすると、割り込みは解除されます。

18.8 スリープ中の Timer1 の動作

Timer1 は、非同期カウンタモードに設定されている場合にのみスリープ中も動作します。このモードでは、外部の水晶振動子またはクロック源によってカウンタをインクリメントします。Timer1 でデバイスを復帰させるには、以下の設定が必要です。

• T1CON レジスタの TMR1ON ビットをセットする

• PIE1 レジスタの TMR1IE ビットをセットする

• INTCON レジスタの PEIE ビットをセットする

• T1CON レジスタの T1SYNC ビットをセットする

• T1CON レジスタの TMR1CS ビットを設定する

• T1CON レジスタの T1OSCEN ビットを設定する

デバイスはオーバーフローによって復帰し、後続の命令を実行します。INTCON レジスタの GIE ビットがセットされている場合、デバイスは割り込みサービスルーチンを呼び出します。

Timer1 セカンダリ オシレータは、T1SYNC ビットの設定とは関係なくスリープ中でも動作を継続します。

18.9 CCP キャプチャ / コンペア タイムベース

CCP モジュールは、キャプチャまたはコンペアモードで動作中にタイムベースとしてTMR1H:TMR1Lレジスタペアを使います。

キャプチャモードでは、あらかじめ設定されたイベントの発生時に TMR1H:TMR1L レジスタペアの値がCCPR1H:CCPR1L レジスタペアにコピーされます。

コンペアモードでは、CCPR1H:CCPR1L レジスタペアの値とTMR1H:TMR1Lレジスタペアの値が一致するとイベントがトリガされます。このイベントは、特殊イベントトリガとして使えます。

詳細はセクション 20.0「キャプチャ / コンペア /PWMモジュール」を参照してください。

18.10 CCP 特殊イベントトリガ

CCP が特殊イベントをトリガするように設定されている場合、トリガ発生時に TMR1H:TMR1L レジスタペアがクリアされます。この特殊イベントは、Timer1 割り込みを発生させません。この場合も、CCP モジュールは CCP 割り込みを生成するように設定できます。

この動作モードでは、CCPR1H:CCPR1L レジスタペアが Timer1 の周期レジスタとして機能します。

特殊イベントトリガを使うには、Timer1 を同期させ、クロック源としてFOSC/4を選択する必要があります。Timer1 を非同期モードで動作させると、特殊イベントトリガを検出できない場合があります。

TMR1H または TMR1L への書き込みと CCP からの特殊イベントトリガが競合した場合、書き込みが優先されます。

詳細はセクション 16.2.5「特殊イベントトリガ」を参照してください。

図 18-2: Timer1 のインクリメント エッジ

Note: 割り込みを有効化する前に、TMR1H:TMR1LレジスタペアとTMR1IFビットをクリアしてください。

T1CKI = 1

when TMR1Enabled

T1CKI = 0

when TMR1Enabled

Note 1: 矢印は、カウンタがインクリメントするタイミングを示します。

2: カウンタモードでは、カウンタがクロックの立ち下がりエッジを 1 回検出してから、立ち上がりエッジによるインク

リメントが始まります。

2013 Microchip Technology Inc. DS41452C_JP - p.157

Page 158: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 18-3: Timer1 ゲート イネーブルモード

図 18-4: Timer1 ゲート トグルモード

TMR1GE

T1GPOL

T1G_IN

T1CKI

T1GVAL

Timer1 N N + 1 N + 2 N + 3 N + 4

TMR1GE

T1GPOL

T1GTM

T1G_IN

T1CKI

T1GVAL

Timer1 N N + 1 N + 2 N + 3 N + 4 N + 5 N + 6 N + 7 N + 8

DS41452C_JP - p.158 2013 Microchip Technology Inc.

Page 159: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 18-5: Timer1 ゲート シングルパルス モード

TMR1GE

T1GPOL

T1G_IN

T1CKI

T1GVAL

Timer1 N N + 1 N + 2

T1GSPM

T1GGO/

DONE

Set by softwareCleared by hardware onfalling edge of T1GVAL

Set by hardware onfalling edge of T1GVAL

Cleared by softwareCleared bysoftwareTMR1GIF

Counting enabled onrising edge of T1G

2013 Microchip Technology Inc. DS41452C_JP - p.159

Page 160: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 18-6: Timer1 ゲート シングルパルスとトグル併用モード

TMR1GE

T1GPOL

T1G_IN

T1CKI

T1GVAL

Timer1 N N + 1 N + 2

T1GSPM

T1GGO/

DONE

Set by softwareCleared by hardware onfalling edge of T1GVAL

Set by hardware onfalling edge of T1GVALCleared by software

Cleared bysoftwareTMR1GIF

T1GTM

Counting enabled onrising edge of T1G

N + 4N + 3

DS41452C_JP - p.160 2013 Microchip Technology Inc.

Page 161: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

18.11 レジスタ定義 : Timer1 制御

レジスタ 18-1: T1CON: Timer1 制御レジスタ

R/W-0/u R/W-0/u R/W-0/u R/W-0/u R/W-0/u R/W-0/u U-0 R/W-0/u

TMR1CS<1:0> T1CKPS<1:0> T1OSCEN T1SYNC - TMR1ON

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 TMR1CS<1:0>: Timer1 クロック源選択ビット

11 = Timer1 のクロック源に LFINTOSC を選択する10 = Timer1 クロック源にピンまたはオシレータを選択する

T1OSCEN = 0 の場合 :T1CKI ピンからの外部クロック ( 立ち上がりエッジ )T1OSCEN = 1 の場合 :SOSCI/SOSCO ピンに接続された水晶振動子

01 = Timer1 クロック源にシステムクロック (FOSC) を選択する00 = Timer1 クロック源に命令クロック (FOSC/4) を選択する

bit 5-4 T1CKPS<1:0>: Timer1 入力クロック プリスケール選択ビット

11 = 1:8 プリスケール値10 = 1:4 プリスケール値01 = 1:2 プリスケール値00 = 1:1 プリスケール値

bit 3 T1OSCEN: LP オシレータ イネーブル制御ビット

1 = Timer1 用セカンダリ オシレータ回路を有効にする0 = Timer1 用セカンダリ オシレータ回路を無効にする

bit 2 T1SYNC: Timer1 外部クロック入力同期制御ビット

TMR1CS<1:0> = 1Xの場合 :1 = 外部クロック入力を同期しない0 = 外部クロック入力とシステムクロック (FOSC) を同期させる

TMR1CS<1:0> = 0Xの場合 :このビットは無視される TMR1CS<1:0> = 1Xの場合、Timer1 は内部クロックを使う

bit 1 未実装 : 「0」として読み出し

bit 0 TMR1ON: Timer1 ON ビット

1 = Timer1 を有効にする0 = Timer1 を停止する

Timer1 ゲート フリップフロップをクリアする

2013 Microchip Technology Inc. DS41452C_JP - p.161

Page 162: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 18-2: T1GCON: Timer1 ゲート制御レジスタ

R/W-0/u R/W-0/u R/W-0/u R/W-0/u R/W/HC-0/u R-x/x R/W-0/u R/W-0/u

TMR1GE T1GPOL T1GTM T1GSPM T1GGO/DONE

T1GVAL T1GSS<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア HC = ビットはハードウェアでクリア

bit 7 TMR1GE: Timer1 ゲート イネーブルビット

TMR1ON = 0 の場合 :このビットを無視するTMR1ON = 1 の場合 :1 = Timer1 のカウントを Timer1 ゲート機能で制御する0 = Timer1 は、Timer1 ゲート機能とは無関係にカウントする

bit 6 T1GPOL: Timer1 ゲート極性ビット

1 = Timer1 ゲートはアクティブ High ( ゲートが High の時にカウントする )0 = Timer1 ゲートはアクティブ Low ( ゲートが Low の時にカウントする )

bit 5 T1GTM: Timer1 ゲート トグルモード ビット

1 = Timer1 ゲート トグルモードを有効にする0 = Timer1 ゲート トグルモードを無効にし、トグル フリップフロップをクリアするTimer1 ゲート フリップフロップは立ち上がりエッジごとにトグルします。

bit 4 T1GSPM: Timer1 ゲート シングルパルス モードビット

1 = Timer1 ゲート シングルパルス モードを有効にし、Timer1 ゲートを制御する0 = Timer1 ゲート シングルパルス モードを無効にする

bit 3 T1GGO/DONE: Timer1 ゲート シングルパルス アクイジション ステータスビット

1 = Timer1 ゲート シングルパルス アクイジションがレディ状態でありエッジを待機している0 = Timer1 ゲート シングルパルス アクイジションは完了済み、または開始していない

bit 2 T1GVAL: Timer1 ゲートの現在のステートビット

TMR1H:TMR1L へ提供される Timer1 ゲートの現在のステートを示す。Timer1 ゲートイネーブル (TMR1GE) の影響は受けません。

bit 1-0 T1GSS<1:0>: Timer1 ゲートソース選択ビット

11 = 予約済み10 = Timer2 と PR2 の一致01 = Timer0 オーバーフロー出力00 = Timer1 ゲートピン

DS41452C_JP - p.162 2013 Microchip Technology Inc.

Page 163: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 18-5: Timer1 関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

ANSELB - - ANSB5 ANSB4 ANSB3 ANSB2 ANSB1 ANSB0 115

CCP1CON - - DC1B<1:0> CCP1M<3:0> 178

CCP2CON - - DC2B<1:0> CCP2M<3:0> 178

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

TMR1H 16 ビット TMR1 カウントの上位バイト保持レジスタ 157*

TMR1L 16 ビット TMR1 カウントの下位バイト保持レジスタ 157*

TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 114

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

T1CON TMR1CS<1:0> T1CKPS<1:0> T1OSCEN T1SYNC - TMR1ON 161

T1GCON TMR1GE T1GPOL T1GTM T1GSPM T1GGO/DONE

T1GVAL T1GSS<1:0> 162

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は Timer1 モジュールでは使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.163

Page 164: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.164 2013 Microchip Technology Inc.

Page 165: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

19.0 Timer2 モジュール

Timer2 モジュールには以下の機能があります。

• 8 ビットのタイマレジスタ (TMR2) と周期レジスタ (PR2)

• 読み書き可能 ( 両レジスタ )

• ソフトウェアでプログラム可能なプリスケーラ(1:1、1:4、1:16、1:64)

• ソフトウェアでプログラム可能なポストスケーラ(1:1 ~ 1:16)

• TMR2/PR2 一致割り込み

• 必要に応じて MSSP モジュールのシフトクロックとして使用可能

Timer2 のブロック図は、図 19-1 を参照してください。

図 19-1: Timer2 のブロック図

Comparator

TMR2Sets Flag

TMR2

Output

Reset

Postscaler

Prescaler

PR2

2

FOSC/4

1:1 to 1:16

1:1, 1:4, 1:16, 1:64

EQ

4

bit TMR2IF

T2OUTPS<3:0>

T2CKPS<1:0>

2013 Microchip Technology Inc. DS41452C_JP - p.165

Page 166: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

19.1 Timer2 の動作

Timer2 モジュールへのクロック入力には、システム命令クロック (FOSC/4) を使います。

TMR2 は、各クロックエッジで 00h からインクリメントします。

クロック入力に対する4ビットのカウンタ /プリスケーラでは、直接入力、4 分周、16 分周のプリスケーラを選択できます。これらの設定は、T2CON レジスタのプリスケーラ制御ビットT2CKPS<1:0>で選択します。クロックサイクルごとに、TMR2の値と周期レジスタPR2の値が比較されます。2 つの値が一致すると、コンパレータはタイマ出力として一致信号を生成します。この信号は、次のサイクルで TMR2 の値を 00h にリセットし、出力カウンタ / ポストスケーラを駆動します ( セクション 19.2「Timer2 割り込み」参照 )。

TMR2 と PR2 レジスタは、いずれも直接読み書きできます。TMR2 レジスタは全てのデバイスリセットによってクリアされますが、PR2 レジスタは FFh に初期化されます。プリスケーラ カウンタとポストスケーラカウンタは、以下のイベントでクリアされます。

• TMR2 レジスタへの書き込み

• T2CON レジスタへの書き込み

• パワーオン リセット (POR)

• ブラウンアウト リセット (BOR)

• MCLR リセット

• ウォッチドッグ タイマ (WDT) リセット

• スタック オーバーフロー リセット

• スタック アンダーフロー リセット

• RESET命令

19.2 Timer2 割り込み

Timer2は、デバイス割り込みを生成する事もできます。Timer2 の出力信号 (TMR2/PR2 一致 ) は、4 ビットのカウンタ / ポストスケーラに入力されます。このカウンタが一致割り込みを生成し、PIR1 レジスタの TMR2 一致割り込みフラグ TMR2IF にラッチされます。割り込みは、PIE1 レジスタの TMR2 一致割り込みイネーブルビット TMR2IE をセットする事で有効にします。

T2CON レジスタのポストスケーラ制御ビットT2OUTPS<3:0> によって 16 通りのポストスケール設定 (1:1 ~ 1:16) を選択できます。

19.3 Timer2 の出力

TMR2 の分周していない出力は、主に CCP1 モジュールで PWM モード動作のタイムベースとして使われます。

Timer2 は、SPI モードで動作する MSSP モジュールのシフトクロック源として使う事もできます。詳細は、セクション 21.0「マスタ同期シリアルポート (MSSP)モジュール」を参照してください。

19.4 スリープ中の Timer2 の動作

プロセッサがスリープ中、Timer2 は動作しません。プロセッサがスリープ中は、TMR2 および PR2 レジスタの内容は変更されません。

Note: T2CONレジスタに書き込んでも TMR2はクリアされません。

DS41452C_JP - p.166 2013 Microchip Technology Inc.

Page 167: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

19.5 レジスタ定義 : Timer2 制御

レジスタ 19-1: T2CON: Timer2 制御レジスタ

U-0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

- T2OUTPS<3:0> TMR2ON T2CKPS<1:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 未実装 :「0」として読み出し

bit 6-3 T2OUTPS<3:0>: Timer2 出力ポストスケーラ選択ビット

1111 = 1:16 ポストスケーラを選択する1110 = 1:15 ポストスケーラを選択する1101 = 1:14 ポストスケーラを選択する1100 = 1:13 ポストスケーラを選択する1011 = 1:12 ポストスケーラを選択する1010 = 1:11 ポストスケーラを選択する1001 = 1:10 ポストスケーラを選択する1000 = 1:9 ポストスケーラを選択する0111 = 1:8 ポストスケーラを選択する0110 = 1:7 ポストスケーラを選択する0101 = 1:6 ポストスケーラを選択する0100 = 1:5 ポストスケーラを選択する0011 = 1:4 ポストスケーラを選択する0010 = 1:3 ポストスケーラを選択する0001 = 1:2 ポストスケーラを選択する0000 = 1:1 ポストスケーラを選択する

bit 2 TMR2ON: Timer2 ON ビット

1 = Timer2 を ON にする0 = Timer2 を OFF にする

bit 1-0 T2CKPS<1:0>: Timer2 クロック プリスケーラ選択ビット

11 = 1:64 プリスケーラを選択する10 = 1:16 プリスケーラを選択する01 = 1:4 プリスケーラを選択する00 = 1:1 プリスケーラを選択する

2013 Microchip Technology Inc. DS41452C_JP - p.167

Page 168: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 19-1: Timer2 関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

CCP1CON - - DC1B<1:0> CCP1M<3:0> 178

CCP2CON - - DC2B<1:0> CCP2M<3:0> 178

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

PR2 Timer2 モジュール周期レジスタ 165*

T2CON - T2OUTPS<3:0> TMR2ON T2CKPS<1:0> 167

TMR2 8 ビット TMR2 レジスタ用の保持レジスタ 165*

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は Timer2 モジュールでは使いません。

* このページにはレジスタの情報を記載しています。

DS41452C_JP - p.168 2013 Microchip Technology Inc.

Page 169: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.0 キャプチャ / コンペア /PWMモジュール

キャプチャ / コンペア /PWM モジュールは、各種イベントのタイミング計測 /制御とパルス幅変調 (PWM)信号生成のための周辺機能です。キャプチャモードでは、イベント継続時間を計測できます。コンペアモードでは、あらかじめ設定した時間が経過した時点で外部イベントをトリガできます。PWM モードでは、各種周波数とデューティ サイクルのパルス幅変調信号を生成できます。

このデバイスファミリは、標準キャプチャ / コンペア /PWM モジュール (CCP1 と CCP2) を 2 個内蔵しています。

Note 1: CCP モジュールを複数内蔵したデバイスでは、レジスタ名に十分注意を払う必要があります。各 CCP モジュールは、モジュール略称の末尾にある数字で区別します。例えば、CCP1CON と CCP2CONはレジスタの機能自体は同じで、それぞれ CCP1 と CCP2 の動作を制御します。

2: このセクションで CCP と総称するモジュールの動作は、いずれも CCPx モジュールの全てに等しく適用されるものと解釈してください。レジスタ名、モジュール信号、I/O ピン、ビット名の総称には「x」を使います。必要に応じて、各モジュールに該当する数字を入れて読み換えてください。

表 20-1: PWM リソース

デバイス名 CCP1 CCP2

PIC16(L)F1516/7/8/9 標準型 PWM 標準型 PWM

2013 Microchip Technology Inc. DS41452C_JP - p.169

Page 170: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.1 キャプチャモード

このセクションで説明するキャプチャモードは全てのCCP モジュール (CCP1 と CCP2) で利用でき、その機能は同じです。

キャプチャモードでは 16 ビットの Timer1 リソースを使います。CCPx ピンでイベントが発生すると、TMR1H:TMR1L レジスタペアの 16 ビット値がキャプチャされ、16 ビットの CCPRxH:CCPRxL レジスタペアにそれぞれ格納されます。イベントの定義は以下のいずれかであり、CCPxCON レジスタの CCPxM<3:0>ビットで設定します。

• 全ての立ち下がりエッジ

• 全ての立ち上がりエッジ

• 立ち上がりエッジ 4 回ごと

• 立ち上がりエッジ 16 回ごと

キャプチャが実行されると、PIRx レジスタの割り込み要求フラグビット CCPxIF がセットされます。この割り込みフラグはソフトウェアでクリアする必要があります。CCPRxH:CCPRxL レジスタペアの値を読み出す前に再度キャプチャが実行されると、以前にキャプチャした値が新しいキャプチャ値で上書きされます。

図 20-1 に、キャプチャ動作の概略ブロック図を示します。

20.1.1 CCP ピンの設定

キャプチャモードでは、対応するTRIS制御ビットをセットして CCPx ピンを入力に設定する必要があります。

また、APFCON レジスタを使って CCP2 ピンの機能を他のピンに移動できます。詳細はレジスタ 12-1 を参照してください。

図 20-1: キャプチャモード動作のブロック図

20.1.2 Timer1 モードのリソース

CCP モジュールのキャプチャ機能を使うには、Timer1の動作をタイマモードまたは同期カウンタモードに設定する必要があります。非同期カウンタモードの場合、キャプチャ機能は使えません。

Timer1 の設定の詳細は、セクション 18.0「Timer1 モジュール ( ゲート制御対応 )」を参照してください。

20.1.3 ソフトウェア割り込みモード

キャプチャモードを変更すると、誤ったキャプチャ割り込みが発生する恐れがあります。このような割り込みを防ぐため、ユーザは PIEx レジスタの CCPxIE 割り込みイネーブルビットをクリアしておく必要があります。また、動作モード変更後には PIRx レジスタのCCPxIF割り込みフラグビットをクリアしてください。

20.1.4 CCP プリスケーラ

プリスケーラの設定は 4 種類あり、CCPxCON レジスタのCCPxM<3:0>ビットで設定します。CCPモジュールが OFF の場合、またはキャプチャモード以外の場合、プリスケーラ カウンタはクリアされます。何らかのリセットが発生した場合もプリスケーラ カウンタはクリアされます。

キャプチャ プリスケーラを切り換えてもプリスケーラはクリアされないため、不正な割り込みが生成される事があります。このような予期しない割り込みを防ぐため、プリスケーラを変更する前に CCPxCON レジスタをクリアしてモジュールを OFF にしてください。例 20-1 に、この処理を実行するサンプルコードを示します。

例 20-1: キャプチャ プリスケーラの切り換えNote: CCPx ピンを出力に設定した場合、その

ポートへの書き込み動作を実行するとキャプチャが発生します。

CCPRxH CCPRxL

TMR1H TMR1L

Set Flag bit CCPXIF(PIRx register)

CaptureEnable

CCPXM<3:0>

Prescaler 1, 4, 16

andEdge Detect

pinCCPx

System Clock (Fosc)

BANKSEL CCPxCON ;Set Bank bits to point;to CCPxCON

CLRF CCPxCON ;Turn CCP module offMOVLW NEW_CAPT_PS;Load the W reg with

;the new prescaler;move value and CCP ON

MOVWF CCPxCON ;Load CCPxCON with this;value

DS41452C_JP - p.170 2013 Microchip Technology Inc.

Page 171: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.1.5 スリープ中のキャプチャ

キャプチャモードの動作は、Timer1 モジュールの影響を受けます。キャプチャモードでは、Timer1 モジュールのクロック源として命令クロック (FOSC/4) または外部クロック源のどちらかを利用できます。

FOSC/4 をクロック源に使うと、Timer1 はスリープ中にインクリメントしません。デバイスがスリープから復帰すると、Timer1 はスリープ直前の状態から動作を再開します。

外部クロック源で Timer1 が動作している場合、スリープ中もキャプチャモードは動作を継続します。

20.1.6 代替ピンの配置

このモジュールで使う I/O ピンは、APFCON ( 代替ピン機能 ) レジスタを使って別のピンへ割り当てを変更できます。割り当て変更可能なピンと、リセット後のピン割り当ての既定値は、セクション 12.1「代替ピン機能」を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.171

Page 172: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.2 コンペアモード

このセクションで説明するコンペアモードは全てのCCP モジュール (CCP1 と CCP2) で利用でき、その機能は同じです。

コンペアモードでは 16 ビットの Timer1 リソースを使います。CCPRxH:CCPRxL レジスタペアの 16 ビット値と TMR1H:TMR1L レジスタペアの 16 ビット値を常に比較します。両方の値が一致した時、以下のいずれかのイベントを発生できます。

• CCPx 出力をトグルする

• CCPx 出力をセットする

• CCPx 出力をクリアする

• 特殊イベントトリガを生成する

• ソフトウェア割り込みを生成する

ピンの動作は CCPxCON レジスタの CCPxM<3:0> 制御ビットの値によって決まります。同時に、割り込みフラグ CCPxIF ビットがセットされます。

全てのコンペアモードで割り込みを生成できます。

図 20-2に、コンペア動作の概略ブロック図を示します。

図 20-2: コンペアモード動作のブロック図

20.2.1 CCPx ピンの設定

コンペアモードでは、対応する TRIS ビットをクリアして CCPx ピンを出力に設定する必要があります。

また、APFCON レジスタ ( レジスタ 12-1) を使ってCCP2 ピンの機能を他のピンに移動できます。詳細はセクション 12.1「代替ピン機能」を参照してください。

20.2.2 Timer1 モードのリソース

コンペアモードでは、Timer1 がタイマモードまたは同期カウンタモードのどちらかで動作している必要があります。非同期カウンタモードの場合、コンペア機能は使えません。

Timer1 の設定の詳細は、セクション 18.0「Timer1 モジュール ( ゲート制御対応 )」を参照してください。

20.2.3 ソフトウェア割り込みモード

ソフトウェア割り込み生成モード (CCPxM<3:0> = 1010)を選択した場合、CCPx モジュールは CCPx ピンの出力を制御しません (CCPxCON レジスタ参照 )。

20.2.4 特殊イベントトリガ

特殊イベントトリガ モード (CCPxM<3:0> = 1011) を選択した場合、CCPx モジュールは以下のように動作します。

• Timer1 をリセットする

• ADC が有効な場合、A/D 変換を開始する

このモードのCCPxモジュールは CCPxピンの出力を制御しません。

CCP の特殊イベントトリガは、TMR1H:TMR1L レジスタペアと CCPRxH:CCPRxL レジスタペアが一致するとすぐに出力されます。TMR1H:TMR1L レジスタペアは、Timer1 クロックの次の立ち上がりエッジまでリセットされません。ADC モジュールが有効な場合、特殊イベントトリガ出力によって A/D 変換が開始します。これにより、CCPRxH:CCPRxL レジスタペアをTimer1の16ビット プログラマブル周期レジスタとして使います。

詳細は、セクション 16.2.5「特殊イベントトリガ」を参照してください。Note: CCPxCONレジスタをクリアすると、CCPx

コンペア出力ラッチは既定値の Low レベルに変更されます。これは PORT I/O データラッチではありません。

CCPRxH CCPRxL

TMR1H TMR1L

ComparatorQ S

R

OutputLogic

Special Event Trigger

Set CCPxIF Interrupt Flag(PIRx)

Match

TRIS

CCPxM<3:0>Mode Select

Output Enable

PinCCPx 4

Note: コンペアモードでは、Timer1 のクロック源としてシステムクロック (FOSC) を使わないでください。コンペアモードで CCPxピンのトリガイベントを認識するには、Timer1 のクロック源を命令クロック(FOSC/4) または外部クロック源とする必要があります。

表 20-2: 特殊イベントトリガ

デバイス名 CCPx

PIC16(L)F1516/7/8/9 CCP2

Note 1: CCP モジュールからの特殊イベントトリガは、PIR1 レジスタの割り込みフラグビット TMR1IF をセットしません。

2: 特殊イベントトリガが発生したクロックエッジの後、Timer1 がリセットされるクロックエッジまでの間にCCPRxH:CCPRxLレジスタペアの内容を変更して一致状態を解消すると、Timer1 のリセットは発生しません。

DS41452C_JP - p.172 2013 Microchip Technology Inc.

Page 173: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.2.5 スリープ中のコンペア

コンペアモードの動作は、システムクロック (FOSC) の影響を受けます。FOSC はスリープ中停止するため、コンペアモードはスリープ中には機能しません。

20.2.6 代替ピンの配置

このモジュールで使う I/O ピンは、APFCON ( 代替ピン機能 ) レジスタを使って別のピンへ割り当てを変更できます。割り当て変更可能なピンと、リセット後のピン割り当ての既定値は、セクション 12.1「代替ピン機能」を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.173

Page 174: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.3 PWM の概要

PWM ( パルス幅変調 ) は完全 ON と完全 OFF の状態を切り換えながら負荷に電力を供給する仕組みです。PWM 信号は矩形波に似ており、信号の High の部分がON 状態、Low の部分が OFF 状態と見なされます。High の部分はパルス幅とも呼ばれ、その時間の長さをステップ単位で変化させる事ができます。ステップ数を多くするとパルス幅が広くなり、負荷に供給される電力が増加します。ステップ数を少なくするとパルス幅が狭くなり、負荷に供給される電力が減少します。1 サイクル全体 ( すなわち ON 時間と OFF 時間の合計 )を PWM 周期といいます。

1回のPWM周期に設定できる 大ステップ数をPWM分解能といいます。PWM 分解能が高いほどパルス幅の時間、すなわち負荷に供給される電力を細かく制御できます。

PWM 周期全体に対する ON 時間の割合を % で表したものをデューティ サイクルと呼び、0% なら完全 OFF、100% なら完全 ON を表します。デューティ サイクルの値が小さいほど負荷に供給される電力が少なく、値が大きいほど多くなります。

図 20-3 に、PWM 信号の代表的な波形を示します。

20.3.1 標準型 PWM の動作

このセクションで説明する標準型 PWM 機能は、全ての CCP モジュールで利用でき、その機能は同じです。

標準型PWMモードでは、 大分解能10ビットのPWM信号を CCPx ピンに生成します。周期、デューティ サイクル、分解能は以下のレジスタで設定します。

• PR2 レジスタ

• T2CON レジスタ

• CCPRxL レジスタ

• CCPxCON レジスタ

図 20-4 に、PWM 動作の概略ブロック図を示します。

図 20-3: CCP PWM 出力信号

図 20-4: PWM 動作の概略ブロック図

Note 1: CCPx ピンへの PWM 出力を有効にするには、対応する TRIS ビットをクリアする必要があります。

2: CCPxCONレジスタをクリアすると、CCPモジュールはCCPxピンを制御しません。

Period

Pulse Width

TMR2 = 0

TMR2 = CCPRxH:CCPxCON<5:4>

TMR2 = PR2

CCPRxL

CCPRxH(2) (Slave)

Comparator

TMR2

PR2

(1)

R Q

S

Duty Cycle RegistersCCPxCON<5:4>

Clear Timer,toggle CCPx pin and latch duty cycle

Note 1: 8 ビットのタイマ TMR2 レジスタに、2 ビッ

トの内部システムクロック (FOSC) または 2ビットのプリスケーラを連結して、10 ビット

のタイムベースを生成します。

2: PWM モードでは、CCPRxH は読み出し専用

レジスタです。

TRIS

CCPx

Comparator

DS41452C_JP - p.174 2013 Microchip Technology Inc.

Page 175: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.3.2 PWM 動作の設定

CCP モジュールを標準型 PWM 動作に設定するには、以下の手順を実行します。

1. 対応する TRIS ビットをセットして CCPx ピン出力ドライバを無効にする。

2. PR2 レジスタに PWM 周期の値を読み込む。

3. CCPxCONレジスタに適切な値を読み込んでCCPモジュールを PWM モードに設定する。

4. CCPRxLレジスタとCCPxCONレジスタのDCxBxビットに PWM のデューティ サイクル値を読み込む。

5. Timer2 を設定して起動する。

• PIRx レジスタの TMR2IF 割り込みフラグビットをクリアする。( 下記 Note 参照 )。

• T2CON レジスタの T2CKPS ビットにTimer2 のプリスケーラ値を設定する。

• T2CON レジスタの TMR2ON ビットをセットして Timer2 を有効にする。

6. PWM 出力ピンを有効にする :

• タイマがオーバーフローして PIR1 レジスタの TMR2IF ビットがセットされるのを待つ。( 下記 Note 参照 )。

• 対応する TRIS ビットをクリアして CCPxピン出力ドライバを有効にする。

20.3.3 Timer2 タイマリソース

標準型 PWM モードでは、8 ビットの Timer2 タイマリソースを使って PWM 周期を設定します。

20.3.4 PWM の周期

PWM の周期は Timer2 の PR2 レジスタによって指定します。PWM の周期は、式 20-1 で計算できます。

式 20-1: PWM 周期

TMR2 と PR2 が等しくなると、直後のインクリメントサイクルで以下の 3 つのイベントが実行されます。

• TMR2 がクリアされる

• CCPx ピンがセットされる ( 例外 : PWM のデューティ サイクル = 0% の場合、ピンはセットされない )。

• PWM のデューティ サイクルが CCPRxL からCCPRxH にラッチされる。

20.3.5 PWM のデューティ サイクル

PWM のデューティ サイクルは、CCPRxL レジスタと、CCPxCONレジスタのDCxB<1:0>ビットに 10ビットの値を書き込んで設定します。CCPRxL レジスタには上位 8ビット、CCPxCONレジスタのDCxB<1:0>ビットには下位 2 ビットを書き込みます。CCPRxL レジスタと、CCPxCON レジスタの DCxB<1:0> ビットへの書き込みは常に可能です。デューティ サイクルの値は、PWM 周期が完了する ( すなわち、PR2 レジスタと TMR2 レジスタが一致する時点 ) まで CCPRxH にラッチされません。PWM 使用中、CCPRxH レジスタは読み出し専用です。

PWM のパルス幅の計算には、式 20-2 を使います。

PWMのデューティ サイクル比の計算には、式 20-3を使います。

式 20-2: Pulse Width

式 20-3: Duty Cycle Ratio

CCPRxH レジスタと 2 ビットの内部ラッチが PWMデューティ サイクルの二重バッファとして使われます。この二重バッファは、グリッチのない PWM 動作に不可欠です。

8 ビットのタイマ TMR2 レジスタに、2 ビットの内部システムクロック (FOSC)または2ビットのプリスケーラを連結して、10ビットのタイムベースを生成します。Timer2 のプリスケーラが 1:1 に設定されている場合はシステムクロックが使われます。

10 ビットのタイムベースが CCPRxH と 2 ビットのラッチを連結した 10 ビットと一致すると、CCPx ピンがクリアされます ( 図 20-4 参照 )。

Note: 初の PWM 出力からデューティ サイクルと周期を完全に送信するには、セットアップ シーケンスに上記の手順を含める必要があります。 初の出力で完全なPWM 信号を送信する必要がない場合は手順 6 を省略できます。

PWM Period PR2 1+ 4 TOSC =

(TMR2 Prescale Value)

Note 1: TOSC = 1/FOSC

Note: PWM の周波数は、タイマのポストスケーラ ( セクション 19.1「Timer2 の動作」参照 ) に関係なく決定します。

Pulse Width CCPRxL:CCPxCON<5:4> =

TOSC (TMR2 Prescale Value)

Duty Cycle Ratio CCPRxL:CCPxCON<5:4> 4 PR2 1+

-----------------------------------------------------------------------=

2013 Microchip Technology Inc. DS41452C_JP - p.175

Page 176: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.3.6 PWM の分解能

分解能は、1 周期に設定可能なデューティ サイクルの数を決定します。例えば分解能 10ビットの場合は 1024通りのデューティ サイクル、分解能 8 ビットの場合は256 通りのデューティ サイクルを設定できます。

PR2 が 255 の場合、PWM の 大分解能は 10 ビットです。式 20-4 に示すように、分解能は PR2 レジスタの値に応じて決まります。

式 20-4: PWM Resolution

表 20-3: PWM の周波数と分解能の例 (FOSC = 20 MHz)

表 20-4: PWM の周波数と分解能の例 (FOSC = 8 MHz)

Note: パルス幅の値が周期より大きい場合、対応する PWM ピンの状態は変化しません。

Resolution 4 PR2 1+ log2 log

------------------------------------------ bits=

PWM の周波数 1.22 kHz 4.88 kHz 19.53 kHz 78.12 kHz 156.3 kHz 208.3 kHz

タイマのプリスケーラ(1、4、16)

16 4 1 1 1 1

PR2 の値 0xFF 0xFF 0xFF 0x3F 0x1F 0x17

大分解能 ( ビット ) 10 10 10 8 7 6.6

PWM の周波数 1.22 kHz 4.90 kHz 19.61 kHz 76.92 kHz 153.85 kHz 200.0 kHz

タイマのプリスケーラ(1、4、16)

16 4 1 1 1 1

PR2 の値 0x65 0x65 0x65 0x19 0x0C 0x09

大分解能 ( ビット ) 8 8 8 6 5 5

DS41452C_JP - p.176 2013 Microchip Technology Inc.

Page 177: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.3.7 スリープ中の動作

スリープ中、TMR2 レジスタはインクリメントせず、モジュールの状態は変化しません。 CCPxピンが特定の値を駆動している場合、その値が駆動され続けます。デバイスが復帰すると、TMR2 は直前の状態からインクリメントを再開します。

20.3.8 システムクロック周波数の変更

PWM の周波数はシステムクロック周波数から生成されます。システムクロック周波数を変更すると、PWMの周波数も変化します。詳細は、セクション 5.0「オシレータ モジュール (フェイルセーフ クロックモニタ機能付き )」を参照してください。

20.3.9 リセットの影響

何らかのリセットが発生すると、全てのポートが入力モードとなり、CCP レジスタはリセット状態に戻ります。

20.3.10 代替ピンの配置

このモジュールで使う I/O ピンは、APFCON ( 代替ピン機能 ) レジスタを使って別のピンへ割り当てを変更できます。割り当て変更可能なピンと、リセット後のピン割り当ての既定値は、セクション 12.1「代替ピン機能」を参照してください。

表 20-5: 標準型 PWM 関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

APFCON - - - - - - SSSEL CCP2SEL 108

CCP1CON - - DC1B<1:0> CCP1M<3:0> 178

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIE2 OSFIE - - - BCLIE - - CCP2IE 78

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

PIR2 OSFIF - - - BCLIF - - CCP2IF 80

PR2 Timer2 周期レジスタ 165*

T2CON - T2OUTPS<3:0> TMR2ON T2CKPS<1:0> 167

TMR2 Timer2 モジュール レジスタ 165

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は PWM では使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.177

Page 178: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

20.4 レジスタ定義 : CCPx 制御

レジスタ 20-1: CCPxCON: CCPx 制御レジスタ

U-0 U-0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

- - DCxB<1:0> CCPxM<3:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-6 未実装 : 「0」として読み出し

bit 5-4 DCxB<1:0>: PWM デューティ サイクル下位ビット

キャプチャモード :未使用

コンペアモード :未使用

PWM モード :PWM デューティ サイクルの下位 2 ビットを格納する。上位 8 ビットは CCPRxL に格納される

bit 3-0 CCPxM<3:0>: CCPx モード選択ビット

0000 = キャプチャ / コンペア /PWM は OFF (CCPx モジュールをリセット )0001 = 予約済み 0010 = コンペアモード : 比較一致時に出力をトグルする0011 = 予約済み

0100 = キャプチャモード : 全ての立ち下がりエッジ0101 = キャプチャモード : 全ての立ち上がりエッジ0110 = キャプチャモード : 立ち上がりエッジ 4 回ごと0111 = キャプチャモード : 立ち上がりエッジ 16 回ごと

1000 = コンペアモード : 比較が一致した場合に出力をセットする (CCPxIF をセットする )1001 = コンペアモード : 比較が一致した場合に出力をクリアする (CCPxIF をセットする )1010 = コンペアモード : ソフトウェア割り込みのみを生成する1011 = コンペアモード : 特殊イベントトリガ (CCPxIF ビットをセットし (CCP2)、ADC モジュール

が有効な場合は A/D 変換を開始する )(1)

11xx = PWM モード

DS41452C_JP - p.178 2013 Microchip Technology Inc.

Page 179: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.0 マスタ同期シリアルポート(MSSP) モジュール

21.1 マスタ SSP (MSSP) モジュールの概要

マスタ同期シリアルポート (MSSP) モジュールは、他の周辺装置またはマイクロコントローラ デバイスと通信するために便利なシリアル インターフェイスです。周辺装置とは、シリアル EEPROM、シフトレジスタ、ディスプレイ ドライバ、A/D コンバータ (ADC) 等です。MSSP モジュールは、以下の 2 つのモードのいずれかで動作します。

• シリアル ペリフェラル インターフェイス (SPI)• I2C™ (Inter-Integrated Circuit)

SPI インターフェイスは、以下のモードと機能をサポートします。

• マスタモード

• スレーブモード

• クロックパリティ

• スレーブセレクト同期 ( スレーブモードのみ )

• スレーブデバイスのデイジーチェーン接続

図 21-1に、SPIインターフェイス モジュールのブロック図を示します。

図 21-1: MSSP のブロック図 (SPI モード )

( )

Read Write

Data Bus

SSPSR Reg

SSPM<3:0>

bit 0 ShiftClock

SS ControlEnable

EdgeSelect

Clock Select

TMR2 Output2

EdgeSelect

2 (CKP, CKE)

4

TRIS bit

SDO

SSPBUF Reg

SDI

SS

SCKTOSCPrescaler

4, 16, 64

Baud RateGenerator(SSPADD)

SCK_out

SDO_out

2013 Microchip Technology Inc. DS41452C_JP - p.179

Page 180: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

I2Cインターフェイスは、以下のモードと機能をサポートします。

• マスタモード

• スレーブモード

• バイト単位の NACK ( スレーブモード )

• マルチマスタのサポート ( 制約あり )

• 7/10 ビット アドレッシング

• スタート / ストップ割り込み

• 割り込みマスク

• クロック ストレッチ

• バスコリジョンの検出

• ジェネラルコール アドレス マッチング

• アドレスマスク

• アドレス / データ ホールドモード

• SDA 保持時間の選択

図 21-2 に、マスタモードでの I2C インターフェイスモジュールのブロック図を、図 21-3 に、スレーブモードでの I2Cインターフェイス モジュールのブロック図を示します。

図 21-2: MSSP のブロック図 (I2C™ マスタモード )

Read Write

SSPSR

Start bit, Stop bit,

Start bit detect,

SSP1BUF

Internaldata bus

Set/Reset: S, P, SSPSTAT, WCOL, SSPOV

ShiftClock

MSb LSb

SDA

AcknowledgeGenerate (SSPCON2)

Stop bit detectWrite collision detect

Clock arbitrationState counter forend of XMIT/RCV

SCL

SCL in

Bus Collision

SDA in

Rec

eive

En

ab

le (

RC

EN

)

Clo

ck C

ntl

Clo

ck a

rbitr

ate

/BC

OL

de

tect

(Ho

ld o

ff cl

ock

so

urc

e)

[SSPM<3:0>]

Baud rate

Reset SEN, PEN (SSPCON2)

generator(SSPADD)

Address Match detect

Set SSPIF, BCLIF

DS41452C_JP - p.180 2013 Microchip Technology Inc.

Page 181: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-3: MSSP のブロック図 (I2C™ スレーブモード )

Read Write

SSPSR Reg

Match Detect

SSPADD Reg

Start andStop bit Detect

SSPBUF Reg

InternalData Bus

Addr Match

Set, ResetS, P bits

(SSPSTAT Reg)

SCL

SDA

ShiftClock

MSb LSb

SSPMSK Reg

2013 Microchip Technology Inc. DS41452C_JP - p.181

Page 182: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.2 SPI モードの概要

SPI ( シリアル ペリフェラル インターフェイス ) バスは、全二重モードで動作する同期シリアルデータ通信バスです。デバイスはマスタ / スレーブ環境で通信し、マスタデバイスから通信を開始します。スレーブデバイスは、スレーブセレクトと呼ばれるチップセレクト信号によって制御されます。

SPI バスでは、以下の 4 つの信号接続を使います。

• シリアルクロック (SCK)

• シリアルデータ出力 (SDO)

• シリアルデータ入力 (SDI)

• スレーブセレクト (SS)

図 21-1 に、SPI モードで動作する MSSP モジュールのブロック図を示します。

SPI バスは、1 つのマスタデバイスと 1 つまたは複数のスレーブデバイス間で動作します。複数のスレーブデバイスを使う場合、マスタデバイスから各スレーブデバイスにそれぞれ独立したスレーブセレクト接続が必要です。

図 21-4 にマスタデバイスと複数のスレーブデバイス間の代表的な接続を示します。

マスタは一度に 1 つだけスレーブを選択します。ほとんどのスレーブデバイスの出力は 3 ステートであり、非選択時はその出力信号がバスから切り離されているように見えます。

伝送には 8 ビットのサイズのシフトレジスタを、マスタとスレーブでそれぞれ 1 つずつ、合計 2 つ使います。マスタまたはスレーブデバイスのいずれにおいても、データは一度に 1 ビットずつ、 上位ビット (MSb) から順にシフト出力されます。同時に、新しい 下位ビット (LSb) が同じレジスタにシフト入力されます。

図 21-5 にマスタおよびスレーブデバイスとして設定された2つのプロセッサ間の代表的な接続を示します。

データは、プログラムされたクロックエッジで両方のシフトレジスタからシフト出力され、逆のクロックエッジでラッチされます。

マスタデバイスはSDO出力ピンから情報を送信します。このピンはスレーブの SDI 入力ピンへと接続され、情報はこのピンから受信されます。スレーブデバイスはSDO 出力ピンから情報を送信します。このピンはマスタの SDI 入力ピンへと接続され、情報はこのピンから受信されます。

通信開始時、まずマスタデバイスがクロック信号を送信します。マスタとスレーブの両デバイスは、同じクロック極性に設定する必要があります。

マスタデバイスはシフトレジスタから MSb を送信する事で伝送を開始します。スレーブデバイスは、同じラインからこのビットを読み出し、自身のシフトレジスタの LSb 位置に保存します。

SPI の各クロックサイクルでは、全二重でデータが伝送されます。すなわち、マスタデバイスのシフトレジスタから SDO ピンを介して MSb が送信され、このビットがスレーブデバイスのシフトレジスタのLSb位

置に読み込まれると同時に、スレーブデバイスのシフトレジスタからもSDOピンを介してMSbが送信され、このビットがマスタデバイスのシフトレジスタの LSb位置に読み込まれます。

8 ビット分のデータがシフト出力された時点で、マスタとスレーブのレジスタ値交換が終了します。

さらに交換すべきデータが存在する場合、シフトレジスタに新しいデータが読み込まれ、上記のプロセスが繰り返されます。

そのデータが意味を持つか、またはダミーデータであるかは、アプリケーション ソフトウェアによります。データ伝送における 3 つのシナリオは以下の通りです。

• マスタが意味のあるデータを送信し、スレーブがダミーデータを送信する。

• マスタが意味のあるデータを送信し、スレーブも意味のあるデータを送信する。

• マスタがダミーデータを送信し、スレーブが意味のあるデータを送信する。

伝送に使うクロックサイクルには、特に制限はありません。送信すべきデータがなくなると、マスタがクロック信号の送信を停止し、スレーブの選択を解除します。

バスに接続されていてもスレーブ セレクト ラインによって選択されていないスレーブデバイスは、クロックと伝送信号を無視し、データ送信もできません。

DS41452C_JP - p.182 2013 Microchip Technology Inc.

Page 183: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-4: SPI マスタと複数のスレーブ間の接続

21.2.1 SPI モードレジスタ

SPIモード動作では以下の5つのレジスタを使います。

• MSSP ステータス レジスタ (SSPSTAT)

• MSSP 制御レジスタ 1 (SSPCON1)

• MSSP 制御レジスタ 3 (SSPCON3)

• MSSP データバッファ レジスタ (SSPBUF)

• MSSP アドレスレジスタ (SSPADD)

• MSSP シフトレジスタ (SSPSR) ( 直接アクセス不可 )

SSPCON1 と SSPSTAT は、SPI モード動作時の制御レジスタとステータス レジスタです。SSPCON1 レジスタは、読み書き両方が可能です。SSPSTAT の下位6 ビットは読み出し専用です。SSPSTAT の上位 2 ビットは読み書き両方が可能です。

SPI マスタモードの場合、SSPADD に baud レートジェネレータで使われる値を読み込めます。baud レート ジェネレータの詳細は、セクション 21.7「baudレート ジェネレータ」を参照してください。

SSPSR は、データのシフト入出力に使うシフトレジスタです。SSPBUF は、SSPSR レジスタに間接的にアクセスするためのバッファです。SSPBUF は、データバイトを読み書きするバッファレジスタです。

受信動作では、SSPSR と SSPBUF が共にバッファ付きのレシーバを構成します。SSPSR が 1 バイトを全て受信すると、SSPBUF に転送され、SSPIF 割り込みがセットされます。

送信時、SSPBUF はバッファリングされません。SSPBUF へ書き込むと、SSPBUF と SSPSR の両方に書き込まれます。

SPI MasterSCK

SDO

SDI

General I/O

General I/O

General I/O

SCK

SDI

SDO

SS

SPI Slave#1

SCK

SDI

SDO

SS

SPI Slave#2

SCK

SDI

SDO

SS

SPI Slave#3

2013 Microchip Technology Inc. DS41452C_JP - p.183

Page 184: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.2.2 SPI モードの動作

SPI の初期化には、複数の設定が必要です。それには、適切な制御ビット(SSPCON1<5:0>とSSPSTAT<7:6>)をプログラミングします。これらの制御ビットにより、以下を指定できます。

• マスタモード (SCK はクロック出力 )

• スレーブモード (SCK はクロック入力 )

• クロック極性 (SCK のアイドル状態 )

• データ入力サンプル位相 ( データ出力期間の中間または 後 )

• クロックエッジ (SCK の立ち上がり / 立ち下がりエッジでデータ出力 )

• クロックレート ( マスタモードのみ )

• スレーブセレクト モード ( スレーブモードのみ )

シリアルポートを有効にする場合、SSP イネーブルビット (SSPCON1 レジスタの SSPEN) をセットする必要があります。SPI モードをリセットまたは再設定する場合、SSPEN ビットをクリアし、SSPCONx レジスタを再度初期化した上で SSPEN ビットをセットします。これによって、SDI、SDO、SCK、SS ピンがシリアルポート ピンとして設定されます。シリアルポートとして動作するピンの中には、データ方向ビット (TRIS レジスタ ) を以下の通りプログラムする必要があるピンがあります。

• SDI に対応する TRIS ビットをセットする。

• SDO に対応する TRIS ビットをクリアする。

• SCK ( マスタモード ) に対応する TRIS ビットをクリアする。

• SCK ( スレーブモード ) に対応する TRIS ビットをセットする。

• SS に対応する TRIS ビットをセットする。

不要なシリアルポート機能は、対応するデータ方向(TRIS)レジスタを逆の値にプログラミングする事で無効にできます。

MSSP は、1 つの送受信シフトレジスタ (SSPSR) と1つのバッファレジスタ (SSPBUF)から構成されています。SSPSR は、デバイスに対して MSb から順にデータをシフト入力またはシフト出力します。SSPBUF は、受信データが揃うまで SSPSR に書き込まれたデータを保持します。8 ビットのデータの受信が完了すると、受信したバイトは SSPBUF レジスタに転送されます。そして SSPSTAT レジスタのバッファフル検出ビット BF と、割り込みフラグビット SSPIFがセットされます。このような受信データの二重バッファ構造 (SSPBUF) によって、受信直後のデータを読み出す前に、次のバイトの受信を開始できます。データ送受信中のSSPBUFレジスタへの書き込みは全て無視され、実行した場合は SSPCON1 レジスタの書き込みコリジョン検出ビット WCOL がセットされます。コリジョン発生後にSSPBUFレジスタへの書き込みが適切に完了するように、ユーザはソフトウェアによってWCOL ビットをクリアする必要があります。

アプリケーション ソフトウェアが有効データを受信する場合、送信される次のバイトデータが SSPBUFへ書き込まれる前に SSPBUF のデータを読み出す必要があります。SSPBUF に受信データが読み込まれると ( 伝送完了 )、SSPSTAT レジスタのバッファ フルビット (BF) がセットされます。そして、SSPBUF が読み出された時点で BF ビットはクリアされます。SPIが送信のみの場合、このデータは無意味です。通常、送受信の完了を判断するには、MSSP 割り込みを使います。割り込みによる方法を使わずに書き込みコリジョンを避けるには、ソフトウェア ポーリングを実行します。

図 21-5: SPI マスタ / スレーブの接続

Serial Input Buffer(BUF)

Shift Register(SSPSR)

MSb LSb

SDO

SDI

Processor 1

SCK

SPI Master SSPM<3:0> = 00xx

Serial Input Buffer(SSPBUF)

Shift Register(SSPSR)

LSbMSb

SDI

SDO

Processor 2

SCK

SPI Slave SSPM<3:0> = 010x

Serial Clock

SSSlave Select

General I/O(optional)

= 1010

DS41452C_JP - p.184 2013 Microchip Technology Inc.

Page 185: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.2.3 SPI マスタモード

マスタは SCK ラインを制御するため、いつでもデータ転送を開始できます。また、マスタはソフトウェアプロトコルによってスレーブ (図 21-5のProcessor 2)がデータをブロードキャストするタイミングを決定します。

マスタモードの場合、SSPBUF レジスタに書き込みが実行されるとすぐにデータが送受信されます。SPIを受信のみに対応させる場合、SDO 出力を無効にできます ( 入力に設定 )。SSPSR レジスタは、プログラムされたクロック速度でSDIピンの信号のシフト入力を継続します。各バイトを受信すると、通常の受信バイトと同様にSSPBUFレジスタへ格納します (割り込みビットとステータスビットを必要に応じてセット )。

クロック極性は SSPCON1 レジスタの CKP ビットとSSPSTAT レジスタの CKE ビットで設定します。これによって図 21-6、図 21-8、図 21-9、図 21-10 に示すSPI 通信の波形が得られます。この通信では MSb が初に送信されています。マスタモードでは、SPI のクロック速度 ( ビットレート ) を以下のいずれかにプログラムできます。

• FOSC/4 ( または TCY)

• FOSC/16 ( または 4 * TCY)

• FOSC/64 ( または 16 * TCY)

• Timer2 出力 /2 • Fosc/(4 * (SSPADD + 1))

図 21-6 にマスタモードの波形を示します。

CKE ビットをセットした場合、SDO のデータは SCKにクロックエッジが現れる前に有効になります。この図には、SMP ビットの状態に応じた入力サンプリング時期の変化も示してあります。また、受信データがSSPBUF に読み込まれるタイミングも示しました。

図 21-6: SPI モードの波形 ( マスタモード )

SCK(CKP = 0

SCK(CKP = 1

SCK(CKP = 0

SCK(CKP = 1

4 ClockModes

InputSample

InputSample

SDI

bit 7 bit 0

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

bit 7

SDI

SSPIF

(SMP = 1)

(SMP = 0)

(SMP = 1)

CKE = 1)

CKE = 0)

CKE = 1)

CKE = 0)

(SMP = 0)

Write toSSPBUF

SSPSR toSSPBUF

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

(CKE = 0)

(CKE = 1)

bit 0

2013 Microchip Technology Inc. DS41452C_JP - p.185

Page 186: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.2.4 SPI スレーブモード

スレーブモードでは、SCK に外部クロックパルスが印加されるとデータが送受信されます。 後のビットがラッチされると、SSPIF 割り込みフラグビットがセットされます。

モジュールをSPIスレーブモードで動作させる前に、クロックラインのアイドル状態を一致させておく必要があります。クロックラインの状態は SCK ピンを読み出す事で調べられます。アイドル状態は、SSPCON1 レジスタの CKP ビットによって決まります。

スレーブモードでは、SCK ピンに外部クロック源からのクロックが供給されます。この外部クロックは、電気的仕様で指定されている 小 High/Low 期間を満たす必要があります。

スリープ中でもスレーブはデータを送受信できます。シフトレジスタは SCK ピン入力からクロックが供給され、1 バイトを受信するとデバイスが割り込みを生成します。割り込み機能が有効の場合、デバイスはスリープから復帰します。

21.2.4.1 デイジーチェーン構成

SPI バスは、デイジーチェーン構成が可能です。 初のスレーブの出力を 2 番目のスレーブの入力に、2 番目のスレーブの出力を 3 番目のスレーブの入力に、という方式で接続します。 後のスレーブの出力をマスタの入力に接続します。各スレーブは、それぞれに供給される 2 番目のクロックパルス群に合わせて、1 番目のクロックパルス群で受信したデータの正確なコピーを送信します。チェーン全体が 1 つの大きな通信シフトレジスタであるかのように動作します。デイジーチェーン機能は、マスタデバイスからのスレーブセレクト ラインを 1 本しか必要としません。

図 21-7 に、SPI モードで動作する代表的なデイジーチェーン接続のブロック図を示します。

デイジーチェーン構成の場合、スレーブで必要なのはバス上にある 新のバイトのみです。SSPCON3 レジスタの BOEN ビットをセットすると、前のバイトがSSPBUF レジスタから読み出されていない場合でもSSPBUF への書き込みが可能です。これによって、ソフトウェアは適用されないデータを無視できます。

21.2.5 スレーブセレクトの同期

スレーブセレクトは通信の同期にも使えます。マスタデバイスの通信準備が整うまでスレーブセレクト ラインは High に保持されます。スレーブセレクト ラインが Low に駆動される事で、スレーブは伝送開始を認識します。

スレーブは、通信を適切に受信できなかった場合、伝送の 後にスレーブセレクト ラインが High に戻る時点でリセットされます。スレーブはその後、次にスレーブセレクト ラインが Low に駆動された時に新しい伝送を受信できるように待機します。スレーブセレクトラインを使わないと、スレーブがマスタとの同期を失う恐れがあります。この場合、スレーブが 1 ビットを受信し損なうと、その後の伝送でも常に 1 ビットのずれが生じます。スレーブセレクト ラインを使うと、スレーブとマスタは各伝送の開始時に毎回同期を取る事ができます。

SSピンを使うと、同期スレーブモードを利用できます。SPI は、SS ピン制御が有効 (SSPCON1<3:0> = 0100)に設定されたスレーブモードである必要があります。

SSピンがLowの時、送受信は有効であり、SDOピンが駆動されます。

SS ピンを High にすると、たとえバイト送信の途中であっても SDO ピンの駆動は中断され、出力はフローティング状態になります。従って、アプリケーションによっては外付けのプルアップ / プルダウン抵抗の接続が望ましい場合があります。

SPI モジュールをリセットすると、ビットカウンタは強制的に「0」にクリアされます。リセットするには、SS ピンをHighレベルに駆動するか、SSPENビットをクリアします。

Note 1: SPIがSSピン制御有効 (SSPCON1<3:0>= 0100) のスレーブモードである場合、SS ピンが VDD にセットされると SPI モジュールはリセットされます。

2: SPIがCKEをセットしたスレーブモードの場合、ユーザは SS ピン制御を有効にする必要があります。

3: SPI スレーブモードで動作している間、SSPSTATレジスタのSMPビットはクリア状態を保持する必要があります。

DS41452C_JP - p.186 2013 Microchip Technology Inc.

Page 187: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-7: SPI デイジーチェーン接続

図 21-8: スレーブセレクト同期の波形

SPI MasterSCK

SDO

SDI

General I/O

SCK

SDI

SDO

SS

SPI Slave#1

SCK

SDI

SDO

SS

SPI Slave#2

SCK

SDI

SDO

SS

SPI Slave#3

SCK(CKP = 1

SCK(CKP = 0

InputSample

SDI

bit 7

SDO bit 7 bit 6 bit 7

SSPIFInterrupt

CKE = 0)

CKE = 0)

Write toSSPBUF

SSPSR toSSPBUF

SS

Flag

bit 0

bit 7

bit 0

bit 6

SSPBUF toSSPSR

Shift register SSPSRand bit count are reset

2013 Microchip Technology Inc. DS41452C_JP - p.187

Page 188: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-9: SPI モードの波形 (CKE = 0のスレーブモード )

図 21-10: SPI モードの波形 (CKE = 1のスレーブモード )

SCK(CKP = 1

SCK(CKP = 0

InputSample

SDI

bit 7

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

SSPIFInterrupt

CKE = 0)

CKE = 0)

Write toSSPBUF

SSPSR toSSPBUF

SS

Flag

Optional

bit 0

detection active

Write Collision

Valid

SCK(CKP = 1

SCK(CKP = 0

InputSample

SDI

bit 7 bit 0

SDO bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

SSPIFInterrupt

CKE = 1)

CKE = 1)

Write toSSPBUF

SSPSR toSSPBUF

SS

Flag

Not Optional

Write Collisiondetection active

Valid

DS41452C_JP - p.188 2013 Microchip Technology Inc.

Page 189: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.2.6 スリープ中の SPI 動作

SPI マスタモードではモジュール クロックがフルパワーモードとは異なる速度で動作する場合があります。スリープ中は全てのクロックが停止します。

MSSPクロックがシステムクロックよりも大幅に高速の場合、特に注意する必要があります。

スレーブモードでMSSP割り込みを有効にしている場合、マスタがデータ送信を完了すると、MSSP 割り込みによってコントローラがスリープから復帰します。

スリープから復帰させたくない場合、MSSP 割り込みを無効にします。

SPI マスタモードでスリープに移行すると、全てのモジュール クロックが停止し、デバイスが復帰するまで送受信はそのままの状態を保持します。デバイスが通常動作に戻ると、モジュールはデータの送受信を再開します。

SPI スレーブモードの場合、SPI 送受信シフトレジスタはデバイスと非同期で動作します。このため、デバイスがスリープに移行してもSPI 送受信シフトレジスタへのデータのシフト入力を継続できます。8 ビットを全て受信すると、MSSP 割り込みフラグビットがセットされ、割り込みが有効の場合はデバイスが復帰します。

表 21-1: SPI 動作関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

ANSELA - - ANSA5 - ANSA3 ANSA2 ANSA1 ANSA0 111

ANSELC ANSC7 ANSC6 ANSC5 ANSC4 ANSC3 ANSC2 - - 118

APFCON - - - - - - SSSEL CCP2SEL 108

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

SSPBUF 同期シリアルポート受信バッファ / 送信レジスタ 183*

SSPCON1 WCOL SSPOV SSPEN CKP SSPM<3:0> 227

SSPCON3 ACKTIM PCIE SCIE BOEN SDAHT SBCDE AHEN DHEN 230

SSPSTAT SMP CKE D/A P S R/W UA BF 226

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は SPI モードの MSSP で使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.189

Page 190: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.3 I2C モードの概要

I2C (Inter-Integrated Circuit) バスは、マルチマスタのシリアルデータ通信バスです。デバイスはマスタ / スレーブ環境で通信し、マスタデバイスが通信を開始します。スレーブデバイスはアドレッシングによって制御されます。

I2C バスでは、以下の 2 つの信号接続を使います。

• シリアルクロック (SCL)

• シリアルデータ (SDA)

図 21-1 に、I2C モードで動作する MSSP モジュールのブロック図を示します。

SCL 接続と SDA 接続はいずれも双方向のオープンドレイン ラインであり、それぞれに電源電圧へのプルアップ抵抗が必要です。ラインをグランドに接続するのは論理 0 で、ラインをフローティングにするのは論理 1 と見なされます。

図 21-11 にマスタおよびスレーブデバイスとして設定された 2 つのプロセッサ間の代表的な接続を示します。

I2C バスは、1 つまたは複数のマスタデバイスと、1 つまたは複数のスレーブデバイス間で動作します。

各デバイスは以下の 4 モードいずれかで動作します。

• マスタ送信モード( マスタがスレーブにデータを送信 )

• マスタ受信モード( マスタがスレーブからデータを受信 )

• スレーブ送信モード( スレーブがマスタにデータを送信 )

• スレーブ受信モード( スレーブがマスタからデータを受信 )

通信を開始時、マスタデバイスはマスタ送信モードです。マスタデバイスはスタートビットを送信し、続いて通信相手のスレーブのアドレスバイトを送信します。さらに、1 ビットの読み書きビットが続きます。このビットは、マスタがスレーブデバイスにデータを送信するのか、スレーブデバイスからデータを受信するのかを決定します。

マスタが指定したスレーブがバス上に存在する場合、そのスレーブは肯定応答 (ACK) ビットを返します。その後マスタは送信または受信モードの動作を、スレーブも受信または送信モードの動作を継続します。

スタートビットは、SCL ラインを High に保ったまま、SDA ラインを High から Low に移行させる事で示されます。アドレスバイトとデータバイトは、 上位ビット (MSb) から順に送信されます。マスタがスレーブからデータを読み出す場合は読み書きビットとして論理1、スレーブにデータを書き込む場合は論理 0 を送信します。

図 21-11: I2C マスタ / スレーブ接続

肯定応答ビット (ACK) はアクティブ Low 信号であり、SDA ラインを Low に保持する事で、スレーブデバイスが送信データの受信を完了し、さらに後続のデータを受信する準備が整っている事をトランスミッタに伝えます。

データビットの送信は、必ず SCL ラインが Low に保持されている間に実行されます。SCL ラインが Highに保持されている間の送信は、スタートビットとストップビットを表すために使います。

マスタがスレーブに書き込む場合、データをバイト単位で送信し、スレーブはバイトごとに ACK ビットで応答します。この場合、マスタデバイスはマスタ送信モードで、スレーブデバイスはスレーブ受信モードで動作します。

マスタがスレーブから読み出す場合、データをバイト単位で受信し、バイトごとにACKビットで応答します。この場合、マスタデバイスはマスタ受信モードで、スレーブデバイスはスレーブ送信モードで動作します。

データの 終バイトの通信が完了すると、マスタデバイスはストップビットを送信して伝送を終了します。マスタデバイスが受信モードの場合、 後の ACK ビットの代わりにストップビットを送信します。ストップビットは、SCL ラインを High に保ったまま、SDA ラインを Low から High に移行させる事で示されます。

マスタがバスの制御を維持し、再度伝送を開始する場合もあります。そのような場合、マスタデバイスはストップビット (受信モード中ならば 後のACKビット )の代わりに、もう一度スタートビットを送信します。I2Cバスでは、以下の 3 つのメッセージ プロトコルを使います。

• マスタが 1 つのスレーブにデータを書き込むシングル メッセージ

• マスタが 1 つのスレーブからデータを読み出すシングル メッセージ

• マスタが 1 つまたは複数のスレーブに対して、複数回の読み書き、あるいは読み書きの組み合わせを実行するコンバインド メッセージ

Master

SCL

SDA

SCL

SDA

SlaveVDD

VDD

DS41452C_JP - p.190 2013 Microchip Technology Inc.

Page 191: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

あるデバイスが論理 1 を送信 ( ラインをフローティングに保持 ) 中に、もう 1 つのデバイスが論理 0 を送信( ラインを Low に保持 ) した場合、 初のデバイスはラインが論理 1 ではない事を検出できます。この検出を SCL ラインに対して適用した場合を、クロック ストレッチと呼びます。クロック ストレッチを使うと、スレーブデバイスからデータフローを制御できます。上記の検出を SDA ラインに対して適用する場合、アービトレーションと呼びます。アービトレーションは、複数のマスタデバイスが同時に通信を行わないようにする仕組みです。

21.3.1 クロック ストレッチ

スレーブデバイスがデータ処理を完了していない場合、クロック ストレッチによって後続データの転送を遅延させる事ができます。スレーブデバイスがビット送受信後に SCL クロックラインを Low に保持する事で、次の通信準備が整っていない事を知らせる事ができます。このスレーブと通信中のマスタは次のビットを転送するために SCL ラインを High にしようとしますが、クロックラインが解放されていない事を検出します。SCL 接続はオープンドレインであるため、スレーブは通信を再開する準備が整うまでラインをLowに保てます。

このように、クロック ストレッチはトランスミッタの動作に追いつけないレシーバが受信データのフローを制御できるようにします。

21.3.2 アービトレーション

各マスタデバイスは、バス上のスタート /ストップビットを監視する必要があります。デバイスはバスがビジー状態である事を検出した場合、バスがアイドル状態に戻るまで新たなメッセージを開始しません。

しかし、2 つのマスタデバイスがほぼ同時に送信を開始しようとする事は考えられます。この時、アービトレーション プロセスが開始します。各トランスミッタは SDA データラインのレベルを確認し、予測しているレベルと比較します。これら 2 つのレベルが一致しない事を検出した 初のトランスミッタはアービトレーションの権利を失い、SDA ラインへの送信を停止します。

例えば、あるトランスミッタが SDA ラインを論理 1 に保持 ( フロートに保持 ) し、もう 1 つのトランスミッタが論理 0 に保持 (Low 駆動 ) すると、その結果、SDAラインは Low です。すると、 初のトランスミッタは予測するレベルとラインのレベルが異なる事を検出し、他のトランスミッタが通信中であると判断します。

この差異を検出した 初のトランスミッタはアービトレーションの権利を失い、SDA ラインの駆動を停止します。このトランスミッタがマスタデバイスでもあった場合、SCLラインの駆動も停止する必要があります。その後、このトランスミッタは再度送信を開始できるようになるまで、ラインにストップ条件が現れるのを監視します。その間、SDA ラインの予測レベルと実際のレベルに差異を検出しなかったもう一方のデバイスは、伝送を継続します。こちらのデバイスでは特別な処理は不要です。こちらのデバイスには他のトランスミッタによる通信への干渉はなく、予測通りに送信が実行されているように見えるからです。

マスタが複数のスレーブのアドレスを指定するスレーブ送信モードでもアービトレーションが行われますが、それほど一般的ではありません。

2 つのマスタデバイスが、2 つのスレーブデバイスにメッセージを送信する場合、アドレス段階で常に下位のスレーブアドレスを送信している方のマスタがアービトレーションの権利を得ます。2 つのマスタデバイスが同じスレーブアドレスにメッセージを送信し、このアドレスが複数のスレーブを指している場合があります。このような場合はアービトレーション プロセスをデータ通信段階まで続ける必要があります。

アービトレーションが発生するケースは非常にまれですが、マルチマスタ環境を適切にサポートするには必須のプロセスです。

2013 Microchip Technology Inc. DS41452C_JP - p.191

Page 192: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.4 I2C モードの動作

全ての MSSP I2C 通信は、バイト単位で処理され、MSbから順にシフト出力されます。6 つの SFR レジスタと2 つの割り込みフラグが、PIC® マイクロコントローラとユーザ ソフトウェアをモジュールと結び付けます。モジュールは他の外部I2Cデバイスと通信するために、2 本のピン (SDA と SCL) を使います。

21.4.1 バイト形式

I2Cの全ての通信は9ビットセグメントで実行されます。マスタからスレーブ ( またはその逆 ) へ 1 バイト送信し、受信側が ACK ビットを返します。SCL ラインの8 番目の立ち下がりエッジの後、送信側デバイスはSDA ピンを入力に切り換え、次のクロックパルスでACK 値を受信します。

クロック信号SCLは、マスタデバイスから供給します。データは SCL 信号が Low の間に変更可能で、クロックの立ち上がりエッジでサンプルされます。SCL ラインが High の間の SDA ラインの変更は、後述する特殊なバス条件を意味します。

21.4.2 I2C 用語の定義

I2C では特有の I2C 通信用語を使います。これらは後出の表で説明し、それ以後は特に説明せずに使います。この表は、Philips 社の I2CTM 仕様書より引用したものです。

21.4.3 SDA ピンと SCL ピン

I2C モードで SSPEN ビットをセットすると、SCL ピンと SDA ピンはオープンドレインとなります。これらのピンは、対応する TRIS ビットをセットして入力として設定する必要があります。

21.4.4 SDA ホールド時間

SDA ピンのホールド時間は、SSPCON3 レジスタのSDAHT ビットで選択します。ホールド時間とは SCLの立ち下がりエッジ後に SDA が有効に保持される時間です。SDAHT ビットをセットすると 小ホールド時間として 300 ns が選択され、静電容量の大きいバスに対して有効です。

表 21-2: I2C バスの用語

Note: I2C モードが有効の場合、データ出力はゼロになります。

用語 説明

トランスミッタ データをバスにシフト出力するデバイス

レシーバ データをバスからシフト入力するデバイス

マスタ 伝送を開始し、クロック信号を生成し、伝送を終了するデバイス

スレーブ マスタによってアドレス指定されるデバイス

マルチマスタ データ伝送を開始できるデバイスが複数接続されたバス

アービトレーション 複数のマスタがバスを制御しないようにする手順 ( アービトレーションの権利を得る事で、そのメッセージが破壊されない事が保証されます。)

同期 バス上の複数のデバイスのクロックを同期させる手順

アイドル バスを制御するマスタが存在せず、SDA と SCL 両ラインがHighの状態

アクティブ 1 つまたは複数のマスタデバイスがバスを制御している状態

アドレス指定されたスレーブ

自身のアドレスに一致するアドレス信号を受信し、マスタからアクティブにクロック駆動されているスレーブデバイス

一致アドレス スレーブにクロックインされる、SSPADD に格納された値に一致するアドレスバイト

書き込み要求 スレーブが R/W ビットをクリアされた一致アドレスを受信し、データをクロックインする準備を整える事

読み出し要求 マスタがR/Wビットをセットしたアドレスバイトを送信し、スレーブからデータをクロックアウトしようとしていると伝える事 (データとは、次のバイト以降、リスタートまたはストップに至るまでの全てのバイトを指します。)

クロック ストレッチ

通信を一時停止するために、バス上のデバイスが SCL を Low に保持する事

バスコリジョン モジュールが出力中であり SDAラインが High 状態であると想定しているにも関わらず、同ラインで Low が検出される事

DS41452C_JP - p.192 2013 Microchip Technology Inc.

Page 193: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.4.5 スタート条件

I2C の仕様書は、スタート条件を「SCL ラインが Highの時に SDA が High から Low へ遷移する事」と定義しています。スタート条件は常にマスタによって生成され、バスがアイドル状態からアクティブ状態に移行した事を意味します。図 21-12 に、スタート条件とストップ条件の波形を示します。

モジュールが SDA ラインを Low にアサートする前にLow をサンプルした場合、スタート条件でバスコリジョンが発生する可能性があります。これは、スタート時にバスコリジョンは発生しないという I2C の仕様に準拠していません。

21.4.6 ストップ条件

ストップ条件とは SCL ラインが High の時に SDA ラインが Low から High へ遷移する事です。

21.4.7 リスタート条件

リスタートは、ストップが有効の場合には常に有効です。マスタは、伝送終了後もバスを解放せずにリスタート条件を発行できます。リスタートはスレーブにとってスタートと同じであり、全てのスレーブロジックをリセットしてアドレスをクロックインする準備をします。マスタは、同じスレーブまたは別のスレーブのアドレスを指定できます。図 21-13 に、リスタート条件の波形を示します。

10ビット アドレッシングのスレーブモードの場合、アドレス指定したスレーブからマスタがデータをクロックアウトするためにリスタートが必要です。スレーブの全アドレスが指定され、上位 / 下位アドレスバイトが両方共一致すると、マスタはリスタートを発行し、R/Wビットがセットされた上位アドレスバイトを生成します。そして、スレーブロジックがクロックを保持してデータ出力の準備をします。

10ビットモードのR/Wがクリアされた完全一致後は、前回の一致フラグがセットされ維持されます。ストップ条件に至るまで、R/Wがクリアされた上位アドレス、つまり上位アドレス一致は失敗します。

21.4.8 スタート / ストップ条件の割り込みマスク

SSPCON3 レジスタの SCIE および PCIE ビットを使うと、通常はサポートされないスレーブモードの割り込み生成を有効にできます。スタート / ストップ条件検出による割り込み機能が既に有効に設定されているスレーブモードでは、これらのビットは影響を与えません。

図 21-12: I2C のスタートおよびストップ条件

図 21-13: I2C リスタート条件

Note: ストップ条件が有効になるにはSCLに少なくとも 1 回は Low 期間が必要です。従って、SCL ラインが High のまま SDA ラインがHigh から Low へ移行し、再び High へ移行した場合はスタート条件のみが検出されます。

SDA

SCL

P

Stop

Condition

S

Start

Condition

Change of

Data Allowed

Change of

Data Allowed

Restart

Condition

Sr

Change of

Data AllowedChange of

Data Allowed

2013 Microchip Technology Inc. DS41452C_JP - p.193

Page 194: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.4.9 肯定応答 (ACK) シーケンス

I2C で転送されるバイトの 9 番目の SCL パルスは肯定応答 (ACK) 専用です。これにより、SDA ラインを Lowに駆動する事で受信デバイスがトランスミッタに応答できます。この間、トランスミッタは応答をシフト入力するためにラインの制御を解放する必要があります。肯定応答 (ACK) はアクティブ Low 信号であり、SDA ラインを Low に駆動する事によって、送信されたデータ受信が完了し、さらに後続のデータを受信する準備が整っている事をトランスミッタに伝えます。

ACKの結果は、SSPCON2レジスタのACKSTATビットに格納されます。

AHEN ビットと DHEN ビットがセットされている場合、ユーザがスレーブ ソフトウェアを使ってトランスミッタへ送り返される ACK の値をセットできます。SSPCON2 レジスタの ACKDT ビットをセット / クリアして、応答を決定します。

SSPCON3 レジスタの AHEN ビットと DHEN ビットがクリアされている場合、スレーブ ハードウェアがACK 応答を生成します。

スレーブが ACK を送信しない場合があります。それは、バイト受信時に SSPSTAT レジスタの BF ビットまたはSSPCON1 レジスタのSSPOV ビットがセットされている場合です。

バス上の SCL の 8 番目の立ち下がりエッジ後に、このモジュールのアドレスが指定されると、SSPCON3 レジスタの ACKTIM ビットがセットされます。ACKTIMビットはアクティブなバスの肯定応答 (ACK)のタイミングを示します。ACKTIM ステータスビットがアクティブになるのは、AHEN ビットまたは DHEN ビットがイネーブルの時のみです。

21.5 I2C スレーブモードの動作

MSSPスレーブモードには4種類の動作モードがあり、SSPCON1 レジスタの SSPM ビットで選択します。 これらのモードは、7 ビットと 10 ビットのアドレッシング モードに分けられます。10 ビット アドレッシングモードは、7 ビットの場合と同じ動作ですが、増加分のアドレスビットを処理する時間 ( オーバーヘッド )が余分に必要です。

スタート / ストップビット割り込み付きモードは、SSPIF 付きのモードと同じ動作を行い、加えてスタート / リスタート / ストップ条件の検出で割り込みビットをセットします。

21.5.1 スレーブモード アドレス

SSPADDレジスタ (レジスタ 21-6)はスレーブモードアドレスを格納します。スタート / リスタート条件後、

初に受信したバイトとこのレジスタ値が比較されます。バイトが一致すると、その値が SSPBUF レジスタに読み込まれ、割り込みが生成されます。値が一致しない場合、モジュールはアイドル状態に移行し、ソフトウェアへの通知は何もありません。

SSP マスクレジスタ ( レジスタ 21-5) は、アドレス一致プロセスに影響を与えます。詳細は、セクション 21.5.9「SSP マスクレジスタ」を参照してください。

21.5.1.1 I2Cスレーブの7ビット アドレッシング モード

7 ビット アドレッシング モードでは、アドレスの一致を判断する際に受信データバイトの LSb が無視されます。

21.5.1.2 I2C スレーブの 10 ビット アドレッシング モード

10 ビット アドレッシング モードの場合、 初の受信バイトがバイナリ値「1 1 1 1 0 A9 A8 0」と比較されます。A9 と A8 は 10 ビットアドレスの上位 2 ビットで、SSPADD レジスタの bit 2 と bit 1 に格納されています。

上位バイトの肯定応答 (ACK) 後、ユーザが SSPADDレジスタに下位アドレスを書き込むまで UA ビットがセットされ SCL が Low に保持されます。下位アドレスバイトが入力されると、8 ビット全てが SSPADD レジスタにある下位アドレスと比較されます。アドレスが一致しない場合でも、SSPIF と UA がセットされ、SSPADD が更新されて再び上位バイトを受信するまで SCL は Low に保持されます。SSPADD が更新されると、UA ビットはクリアされます。これにより、モジュールは次の通信で上位アドレスバイトを確実に受信する準備を整える事ができます。

全ての 10 ビット アドレッシング通信開始時には、上位/ 下位アドレスの一致による書き込み要求が必要です。スレーブがアドレス指定されると、リスタートを発行して通信を開始でき、R/W ビットがセットされた上位アドレスを取り込みます。そしてスレーブ ハードウェアが読み出し要求に肯定応答 (ACK) し、データ送信の準備をします。この動作は、スレーブが上位 / 下位アドレスバイト一致を受信した後にのみ有効です。

DS41452C_JP - p.194 2013 Microchip Technology Inc.

Page 195: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.2 スレーブ受信

一致した受信アドレスバイトのR/Wビットがクリアされている場合、SSPSTAT レジスタの R/W ビットがクリアされます。受信アドレスが SSPBUF レジスタに読み込まれ、肯定応答 (ACK) されます。

受信アドレスがオーバーフロー条件を満たしている場合、否定応答 (NACK) が生成されます。オーバーフロー条件とは、SSPSTAT レジスタの BF ビットまたはSSPCON1 レジスタの SSPOV ビットがセットされている事と定義されます。この動作を変更するには、SSPCON3 レジスタの BOEN ビットを使います。詳細は、レジスタ 21-4 を参照してください。

データバイトが転送されるたびにMSSP割り込みが生成されます。フラグビット (SSPIF) は、ソフトウェアでクリアする必要があります。

SSPCON2 レジスタの SEN ビットがセットされると、各バイトの受信後に SCL が Low に保持されます ( クロック ストレッチ )。この場合、SSPCON1 レジスタの CKP ビットをセットしてクロックを解放する必要があります (10 ビットモードの場合は例外あり )。詳細は、セクション 21.2.3「SPI マスタモード」を参照してください。

21.5.2.1 7 ビット アドレッシングの受信

本セクションでは、7 ビット アドレッシング モードのI2C スレーブとして設定された MSSP モジュールの一般的なイベント シーケンスについて説明します。 ハードウェアまたはソフトウェアで行われた全ての判断と、受信への影響を示します。図 21-14と図 21-15 に、このシーケンスの波形を示します。

以下に I2C 通信の代表的な手順を示します。

1. スタートビットを検出する。

2. SSPSTAT の S ビットがセットされる。スタート検出割り込みが有効の場合はSSPIFがセットされる。

3. R/Wビットがクリアされた一致アドレスが受信される。

4. スレーブが SDA を Low に駆動してマスタに ACK信号を送信し、SSPIF ビットをセットする。

5. ソフトウェアが SSPIF ビットをクリアする。

6. ソフトウェアがSSPBUFから受信アドレスを読み出して BF フラグをクリアする。

7. SEN = 1 の場合、スレーブ ソフトウェアが CKPビットをセットして SCL ラインを解放する。

8. マスタがデータバイトを送信する。

9. スレーブが SDA を Low に駆動してマスタに ACK信号を送信し、SSPIF ビットをセットする。

10. ソフトウェアが SSPIF ビットをクリアする。

11. ソフトウェアがSSPBUFから受信バイトを読み出して BF をクリアする。

12. マスタからの全ての受信バイトに対して、手順 8~12 を繰り返す。

13. マスタが SSPSTAT の P ビットをセットしてストップ条件を送信し、バスがアイドル状態に移行する。

21.5.2.2 AHEN と DHEN を使う 7 ビット受信

AHENとDHENをセットしたスレーブデバイスの受信動作は、これらの設定を使わない場合と似ていますが、SCLの 8番目の立ち下がりエッジの後に割り込みとクロック ストレッチを追加します。 これらの割り込みによって、ハードウェアではなくスレーブ ソフトウェアが受信アドレスバイトまたは受信データバイトに対して ACK を生成できます。この機能により、以前はこのモジュールでサポートしていなかった PMBus™ をサポートします。

ここでは、I2C 通信においてスレーブ ソフトウェアがこれらの設定を使う場合に必要な手順を説明します。図 21-16 に、アドレスホールドとデータホールドの両方を使うモジュールを示し、図 21-17 に、SSPCON2レジスタの SEN ビットをセットした動作を示します。

1. SSPSTAT の S ビットがセットされる。スタート検出割り込みが有効の場合はSSPIFがセットされる。

2. R/Wビットがクリアの状態で一致アドレスが取り込まれる。SSPIF がセットされ、SCL の 8 番目の立ち下がりエッジの後に CKP がクリアされる。

3. スレーブが SSPIF をクリアする。

4. スレーブは、SSPCON3 レジスタの ACKTIM ビットを確認する事で、SSPIF が ACK の前後いずれであるかを判断できる。

5. スレーブがSSPBUFからアドレス値を読み出してBF フラグをクリアする。

6. スレーブが ACKDT をセットして、ACK 値をマスタに送信する。

7. スレーブがCKPをセットしてクロックを解放する。

8. ACK パルスの後に SSPIF がセットされる ( 否定応答 (NACK) の場合はセットされない )。

9. SEN = 1 の場合、スレーブ ハードウェアが ACKの後にクロック ストレッチを実行する。

10. スレーブが SSPIF をクリアする。.

11. データバイト受信におけるSCLの8番目の立ち下がりエッジ後に SSPIF がセットされて CKP がクリアされる。

12. SSPCON3レジスタのACKTIMビットでスレーブが割り込みソースを確認する。

13. スレーブが SSPBUF から受信データを読み出して、BF をクリアする。

14. 各受信データバイトに対して、手順 7 ~ 14 を繰り返す。

15. スレーブがACK = 1を送信するか、マスタがストップ条件を送信すると、通信が終了する。( ストップ検出割り込みが無効に設定されている状態でストップ条件が送信された場合、スレーブが通信終了を認識する唯一の方法は SSPSTAT レジスタのP ビットをポーリングする事です。)

Note: クロック ストレッチが実行されず、BF がクリアされた場合でも、SSPIF は SCL の 9 番目の立ち下がりエッジ後にセットされます。否定応答 (NACK) がマスタへ送信された場合のみ、SSPIF はセットされません。

2013 Microchip Technology Inc. DS41452C_JP - p.195

Page 196: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-14: I2C スレーブ、7 ビットアドレス、受信 (SEN = 0、AHEN = 0、DHEN = 0)

Re

ceiv

ing

Ad

dre

ss

AC

K

Re

ceiv

ing

Da

ta

AC

K

Re

ceiv

ing

Da

taA

CK

=1

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L

SS

PIF

BF

SS

PO

V

12

34

56

78

12

34

56

78

12

34

56

78

99

9

AC

K is

not

se

nt.

SS

PO

V s

et b

eca

use

SS

PB

UF

is s

till f

ull.

Cle

are

d b

y so

ftwar

e

Firs

t by

te o

f d

ata

is a

vaila

ble

in S

SP

BU

F

SS

PB

UF

is r

ead

SS

PIF

se

t on

9th

falli

ng

edg

e o

f S

CL

Cle

are

d b

y so

ftwa

re

P

Bus

Ma

ste

r se

nd

s S

top

co

nd

itio

n

S

Fro

m S

lave

to

Ma

ster

DS41452C_JP - p.196 2013 Microchip Technology Inc.

Page 197: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-15: I2C スレーブ、7 ビットアドレス、受信 (SEN = 1、AHEN = 0、DHEN = 0)

SE

NS

EN

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L1

23

45

67

89

12

34

56

78

91

23

45

67

89

P

SS

PIF

se

t o

n 9t

h

SC

L is

no

t he

ldC

KP

is w

ritt

en

to 1

in s

oftw

are

, C

KP

is w

ritt

en

to ‘1

’ in

softw

are

,

AC

K

low

be

cau

se

falli

ng

edg

e o

f SC

L

rele

asin

g S

CL A

CK

is n

ot s

en

t.

Bu

s M

aste

r se

nds

CK

P

SS

PO

V

BF

SS

PIF

SS

PO

V s

et b

eca

use

SS

PB

UF

is s

till f

ull.

Cle

are

d b

y so

ftwa

re

Firs

t by

te o

f d

ata

is a

vaila

ble

in S

SP

BU

F

AC

K=1

Cle

are

d b

y so

ftwa

re

SS

PB

UF

is r

ea

d

Clo

ck is

he

ld lo

w u

ntil

CK

P is

set

to ‘1

rele

asin

g S

CL

Sto

p co

ndi

tion

S

AC

K

AC

KR

ece

ive

Ad

dre

ssR

ece

ive

Da

taR

ece

ive

Da

ta

R/W

=0

2013 Microchip Technology Inc. DS41452C_JP - p.197

Page 198: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-16: I2C スレーブ、7 ビットアドレス、受信 (SEN = 0、AHEN = 1、DHEN = 1)

Re

ceiv

ing

Ad

dre

ssR

ece

ivin

g D

ata

Rec

eive

d D

ata

P

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L

BF

CK

P S P

12

34

56

78

91

23

45

67

89

12

34

56

78

Ma

ste

r se

nds

Sto

p co

ndi

tion

S

Dat

a is

re

ad

fro

m S

SP

BU

F

Cle

are

d b

y so

ftwa

reS

SP

IF is

se

t o

n 9

th fa

llin

g ed

ge

of

SC

L, a

fter

AC

K

CK

P s

et b

y so

ftwar

e,

SC

L is

re

lea

sed

Sla

ve s

oftw

are

9

AC

KT

IM c

lear

ed

by

ha

rdw

are

in 9

th

risin

g e

dg

e o

f SC

L

sets

AC

KD

T t

on

ot

AC

K

Whe

n D

HE

N=

1:

CK

P is

cle

are

d b

yh

ard

wa

re o

n 8

th fa

llin

ge

dge

of

SC

L

Sla

ve s

oftw

are

clea

rs A

CK

DT

to

AC

K th

e r

ece

ive

db

yte

AC

KT

IM s

et

by h

ard

wa

reo

n 8

th fa

llin

g e

dge

of

SC

L

Wh

en

AH

EN

=1:

CK

P is

cle

are

d b

y ha

rdw

are

and

SC

L is

str

etc

hed

Ad

dres

s is

read

fro

m

SS

BU

F

AC

KT

IM s

et b

y ha

rdw

are

on

8th

fa

llin

g e

dge

of

SC

L

AC

K

Mas

ter

Re

lea

ses

SD

Ato

sla

ve fo

r A

CK

seq

ue

nce

No

inte

rru

pt

afte

r n

ot

AC

Kfr

om S

lave

AC

K=

1A

CK

AC

KD

T

AC

KT

IM

SS

PIF

If A

HE

N=1

:S

SP

IF is

set

DS41452C_JP - p.198 2013 Microchip Technology Inc.

Page 199: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-17: I2C スレーブ、7 ビットアドレス、受信 (SEN = 1、AHEN = 1、DHEN = 1)

Re

ceiv

ing

Ad

dre

ssR

ece

ive

Da

taR

ece

ive

Da

ta

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L

SS

PIF BF

AC

KD

T

CK

P S P

AC

K

S1

23

45

67

89

12

34

56

78

91

23

45

67

89

AC

K

AC

K

Cle

are

d by

so

ftwa

re

AC

KT

IM is

cle

are

d b

y h

ard

wa

re

SS

PB

UF

can

be

Set

by

softw

are

,

read

an

y tim

e b

efo

ren

ext

byt

e is

loa

de

d

rele

ase

SC

L

on

9th

ris

ing

ed

ge o

f S

CL

Rec

eive

d

add

ress

is lo

ade

d in

to

SS

PB

UF

Sla

ve s

oftw

are

cle

ars

AC

KD

T t

o A

CK

R/W

= 0

Ma

ste

r re

lea

ses

SD

A t

o s

lave

fo

r A

CK

se

que

nce

the

re

ceiv

ed b

yte

Wh

en

AH

EN

=1

;o

n t

he 8

th f

alli

ng

ed

ge

of

SC

L of

an

ad

dre

ssb

yte,

CK

P is

cle

are

d

AC

KT

IM is

se

t by

har

dw

are

on

8th

fa

llin

g e

dge

of

SC

L

Wh

en

DH

EN

= 1

;o

n th

e 8

th fa

lling

ed

ge

of S

CL

of a

re

ceiv

ed

da

ta b

yte

, C

KP

is c

lea

red

Re

ceiv

ed

dat

a is

ava

ilab

le o

n S

SP

BU

F

Sla

ve s

end

sno

t A

CK

CK

P is

no

t cl

ear

ed

if n

ot A

CK

P

Mas

ter

sen

dsS

top

co

ndi

tion

No

inte

rrup

t afte

r

if no

t A

CK

fro

m S

lave

AC

KT

IM

2013 Microchip Technology Inc. DS41452C_JP - p.199

Page 200: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.3 スレーブ送信

入力されるアドレスバイトの R/W ビットがセットされており、アドレスが一致している場合、SSPSTATレジスタの R/W ビットがセットされます。受信したアドレスが SSPBUF レジスタに読み込まれると、スレーブによって 9 番目のビットで ACK パルスが送信されます。

ACKの後、スレーブ ハードウェアがCKPビットをクリアして SCL ピンが Low に保持されます ( 詳細はセクション 21.5.6「クロック ストレッチ」を参照してください)。クロック ストレッチ機能を有効にする事によって、スレーブの送信データ準備が完了するまでマスタが次のクロックパルスをアサートできなくなります。

送信データは SSPBUF レジスタに読み込まれます。データはさらにSSPSRレジスタにも読み込まれます。その後、SSPCON1 レジスタの CKP ビットをセットする事によって SCL ピンが解放されます。8 ビットのデータがSCL入力の立ち下がりエッジでシフト出力されます。これにより、SCL が High の間は SDA 信号が確実に有効になります。

マスタレシーバからの ACK パルスは、SCL 入力パルスの 9 番目の立ち上がりエッジでラッチされます。この ACK 値は、SSPCON2 レジスタの ACKSTAT ビットへコピーされます。 ACKSTAT がセット (NOT ACK)されると、データ伝送は完了です。この場合、NOTACK がスレーブでラッチされると、スレーブがアイドル状態に移行して次のスタートビットが到達するまで待機します。SDA ラインが Low (ACK) の場合、次の送信データをSSPBUFレジスタに読み込む必要があります。この場合も、CKP ビットをセットして SCL ピンを解放する必要があります。

1 データバイトが転送されるたびに MSSP 割り込みが生成されます。SSPIF ビットは、ソフトウェアでクリアする必要があり、バイトのステータスを判断するには SSPSTAT レジスタを使います。SSPIF ビットは、クロックパルスの 9 番目の立ち下がりエッジでセットされます。

21.5.3.1 スレーブモードのバスコリジョン

スレーブは読み出し要求を受信すると SDA ラインにデータをシフト出力しはじめます。バスコリジョンが検出されて SSPCON3 レジスタの SBCDE ビットがセットされている場合、PIR レジスタの BCLIF ビットがセットされます。バスコリジョンが検出されるとスレーブはアイドル状態に移行し、再度アドレス指定されるまで待機します。ユーザ ソフトウェアは BCLIFビットによってスレーブ バスコリジョンを処理できます。

21.5.3.2 7 ビット送信

マスタデバイスは、スレーブデバイスへ読み出し要求を送信し、スレーブからデータを読み出します。ここでは、通常の送信動作においてスレーブ ソフトウェアが実行すべき手順を説明します。図 21-18 には、この動作の波形を示します。

1. マスタがSDAとSCLにスタート条件を送信する。

2. SSPSTAT の S ビットがセットされる。スタート検出割り込みが有効の場合はSSPIFがセットされる。

3. R/Wビットがセットされた一致アドレスがSSPIFをセットするスレーブによって受信される。

4. スレーブ ハードウェアが ACK を生成して SSPIFをセットする。

5. ユーザによって SSPIF ビットがクリアされる。

6. ソフトウェアがSSPBUFから受信アドレスを読み出して、BF をクリアする。

7. R/W がセットされているため、CKP は ACK の後に自動的にクリアされている。

8. スレーブ ソフトウェアが SSPBUF に送信データを読み込む。

9. CKPビットがセットされてSCLが解放されると、マスタはスレーブからデータを読み出す事ができる。

10. マスタからの ACK 応答が ACKSTAT レジスタに読み込まれると SSPIF がセットされる。

11. SSPIF ビットがクリアされる。

12. スレーブ ソフトウェアは、ACKSTAT ビットをチェックしてマスタに後続の送信データがあるかどうか確認する。

13. 各送信バイトに対して、手順 9 ~ 13 を繰り返す。

14. マスタが NOT ACK を送信した場合、クロックはホールドされないが、SSPIF はセットされる。

15. マスタがリスタート条件またはストップ条件を送信する。

16. スレーブのアドレス指定が解除される。

Note 1: マスタが ACK を生成すると、クロックがストレッチされます。

2: ACKSTAT は、SCL の 9 番目の立ち上がりエッジ (立ち下がりエッジではない )で更新される唯一のビットです。

DS41452C_JP - p.200 2013 Microchip Technology Inc.

Page 201: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-18: I2C スレーブ、7 ビットアドレス、送信 (AHEN = 0)

Re

ceiv

ing

Add

ress

Au

tom

atic

Tra

nsm

ittin

g D

ata

Au

tom

atic

Tra

nsm

ittin

g D

ata

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

12

34

56

78

91

23

45

67

89

12

34

56

78

9

SD

A

SC

L

SS

PIF

BF

CK

P

AC

KS

TA

T

R/W

D/A S P

Re

ceiv

ed

add

ress

Wh

en R

/W is

se

t

R/W

is c

op

ied

from

th

e

Ind

ica

tes

an

ad

dre

ss

is r

ea

d fr

om

SS

PB

UF

SC

L is

alw

ays

he

ld lo

w a

fter

9th

SC

Lfa

llin

g e

dge

mat

chin

g a

dd

ress

byt

e

has

be

en r

ece

ive

d

Mas

ters

no

t A

CK

is c

op

ied

to

AC

KS

TA

T

CK

P is

no

t h

eld

for

no

t A

CK

BF

is a

utom

atic

ally

cl

ea

red

afte

r 8

th f

alli

ng

ed

ge o

f S

CL

Da

ta t

o tr

an

smit

islo

ad

ed in

to S

SP

BU

F

Se

t by

so

ftw

are

Cle

are

d b

y so

ftw

are

AC

KA

CK

AC

KR

/W =

1

SP

Ma

ste

r se

nd

sS

top

con

ditio

n

2013 Microchip Technology Inc. DS41452C_JP - p.201

Page 202: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.3.3 7 ビット送信( アドレスホールド機能が有効 )

SSPCON3 レジスタの AHEN ビットをセットすると、受信した一致アドレスの 8 番目の立ち下がりエッジ後に、さらにクロック ストレッチと割り込み生成を追加できます。一致アドレスの入力が完了すると、CKP がクリアされて SSPIF 割り込みがセットされます。

図 21-19 に、AHEN を有効にした 7 ビットアドレスのスレーブ送信の一般的な波形を示します。

1. バスはアイドル状態にある。

2. マスタがスタート条件を送信する。SSPSTAT のS ビットがセットされる。スタート検出割り込みが有効の場合は SSPIF がセットされる。

3. マスタは、R/W ビットをセットした一致アドレスを送信する。SCL ラインの 8 番目の立ち下がりエッジの後、CKP ビットがクリアされて SSPIF割り込みが生成される。

4. スレーブ ソフトウェアが SSPIF をクリアする。

5. スレーブ ソフトウェアが、SSPCON3 レジスタのACKTIM ビットと、SSPSTAT レジスタの R/W とD/A を読み出して、割り込みソースを決定する。

6. スレーブがSSPBUFからアドレス値を読み出してBF ビットをクリアする。

7. スレーブ ソフトウェアは、この情報に基づいてACKまたはNOT ACKのどちらかを判断し、それに応じて SSPCON2 レジスタの ACKDT ビットをセットする。

8. スレーブが CKP ビットをセットして SCL を解放する。

9. マスタは、スレーブから ACK 値を受信する。

10. R/W ビットがセットされている場合、ACK の後にスレーブ ハードウェアが自動的に CKP ビットをクリアして SSPIF ビットをセットする。

11. スレーブ ソフトウェアが SSPIF をクリアする。

12. スレーブが、マスタへ送信する値を SSPBUF に読み込んで BF ビットをセットする。

13. スレーブが CKP ビットをセットしてクロックを解放する。

14. マスタはスレーブからデータを受信し、SCL の 9番目のパルスで ACK 値を送信する。

15. スレーブ ハードウェアは、SSPCON2 レジスタのACKSTAT ビットへ ACK 値をコピーする。

16. スレーブからマスタへバイトが送信されるたびに、手順 10 ~ 15 を繰り返す。

17. マスタが NOT ACK を送信するとスレーブがバスを解放するため、マスタはストップ条件を送信して通信を終了できる。

Note: ACK が生成されるまで、SSBUF にデータを読み込めません。

Note: 後のバイト送信では、スレーブが SCL ラインを解放してストップ条件を受信できるようにするため、マスタは NOT ACK を送信する必要があります。

DS41452C_JP - p.202 2013 Microchip Technology Inc.

Page 203: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-19: I2C スレーブ、7 ビットアドレス、送信 (AHEN = 1)

Rec

eivi

ng

Ad

dre

ssA

uto

ma

ticT

ran

smitt

ing

Dat

aA

uto

ma

ticT

ran

smitt

ing

Da

ta

A7

A6

A5

A4

A3

A2

A1

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

12

34

56

78

91

23

45

67

89

12

34

56

78

9

SD

A

SC

L

SS

PIF

BF

AC

KD

T

AC

KS

TAT

CK

P

R/W D/A

Re

ceiv

ed

add

ress

is r

ead

fro

m S

SP

BU

F

BF

is a

uto

ma

tica

lly

cle

are

d a

fter

8th

falli

ng

edg

e o

f S

CL

Dat

a t

o tr

ans

mit

islo

ade

d in

to S

SP

BU

F

Cle

are

d b

y so

ftwa

re

Sla

ve c

lear

s

AC

KD

T t

o A

CK

add

ress

Mas

ter’

s A

CK

resp

ons

e is

co

pie

dto

SS

PS

TAT

CK

P n

ot c

lea

red

afte

r n

ot

AC

KS

et

by

softw

are

,re

lea

ses

SC

L

AC

KT

IM is

cle

are

do

n 9

th r

isin

g e

dge

of

SC

LA

CK

TIM

is s

et o

n 8t

h fa

lling

edg

e o

f S

CL

Wh

en A

HE

N =

1;

CK

P is

cle

are

d b

y h

ard

wa

rea

fter

rece

ivin

g m

atch

ing

ad

dre

ss.

Whe

n R

/W =

1;

CK

P is

alw

ays

cle

are

d a

fter

AC

K

SP

Ma

ste

r se

nd

sS

top

con

diti

on

AC

KR

/W =

1

Mas

ter

rele

ase

s S

DA

to s

lave

for

AC

K s

equ

en

ce

AC

KA

CK

AC

KT

IM

2013 Microchip Technology Inc. DS41452C_JP - p.203

Page 204: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.4 スレーブモードの 10 ビットアドレス受信

本セクションでは、10 ビット アドレッシング モードの I2Cスレーブとして設定されたMSSPモジュールの一般的なイベント シーケンスについて説明します。

図 21-20 に、このシーケンスの波形を示します。

以下に I2C通信でスレーブ ソフトウェアが実行すべき一般的な手順を示します。

1. バスはアイドル状態にある。

2. マスタがスタート条件を送信する。SSPSTAT のS ビットがセットされる。スタート検出割り込みが有効の場合は SSPIF がセットされる。

3. マスタが、R/W ビットがクリアされた一致上位アドレスを送信する。SSPSTAT レジスタの UA ビットがセットされる。

4. スレーブがACKを送信し、SSPIFがセットされる。

5. ソフトウェアが SSPIF ビットをクリアする。

6. ソフトウェアがSSPBUFから受信アドレスを読み出して BF フラグをクリアする。

7. スレーブが SSPADD に下位アドレスを読み込み、SCL を解放する。

8. マスタが、一致下位アドレスバイトをスレーブへ送信する。UA ビットがセットされる。

9. スレーブがACKを送信し、SSPIFがセットされる。

10. スレーブが SSPIF をクリアする。

11. スレーブが受信した一致アドレスをSSPBUFから読み出して、BF ビットをクリアする。

12. スレーブが SSPADD に上位アドレスを読み込む。

13. マスタがスレーブへデータバイトを送信し、9 番目の SCL パルスでスレーブの ACK を出力し、SSPIF がセットされる。

14. SSPCON2 の SEN ビットがセットされている場合、ハードウェアによって CKP がクリアされてクロックがストレッチされる。

15. スレーブが SSPIF をクリアする。

16. スレーブが SSPBUF から受信バイトを読み出して、BF をクリアする。

17. SEN ビットがセットされている場合、スレーブはSCL を解放するために CKP をセットする。

18. 各受信バイトに対して、手順 13 ~ 17 を繰り返す。

19. マスタがストップ条件を送信して、通信を終了する。

21.5.5 10 ビット アドレッシング ( アドレス / データホールドあり )

AHEN または DHEN をセットした 10 ビット アドレッシングを使う受信動作は、7 ビットモードの場合と同じです。唯一異なる点は、UA ビットを使って SSPADDレジスタを更新する必要がある事です。CKP ビットがクリアされて SCL ラインが Low を保持するタイミング等、全ての動作が同じです。図 21-21 に、AHEN がセットされた 10 ビット アドレッシングのスレーブ波形を示します。

図 21-22 に、10 ビット アドレッシング モードでのスレーブ トランスミッタの一般的な波形を示します。

Note: ACK シーケンスが完了するまで、SSPADDレジスタの更新は許可されません。

Note: 下位アドレスが一致しない場合、SSPIF とUA はセットされたままのため、スレーブソフトウェアはSSPADDを上位アドレスに戻す事ができます。アドレスが一致していないため、BF はセットされません。CKP には影響しません。

DS41452C_JP - p.204 2013 Microchip Technology Inc.

Page 205: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-20: I2C スレーブ、10 ビットアドレス、受信 (SEN = 1、AHEN = 0、DHEN = 0)

SS

PIF

Rec

eive

Firs

t Add

ress

Byt

e

AC

K

Rec

eive

Sec

ond

Add

ress

Byt

e AC

K

Rec

eive

Dat

a

AC

K

Rec

eive

Dat

a

AC

K1

11

10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L

UA

CK

P

12

34

56

78

91

23

45

67

89

12

34

56

78

91

23

45

67

89

P

Mas

ter

send

sS

top

cond

ition

Cle

ared

by

softw

are

Rec

eive

add

ress

is

Sof

twar

e up

date

s S

SP

AD

D

Dat

a is

rea

d

SC

L is

hel

d lo

w

Set

by

softw

are,

whi

le C

KP

= 0

from

SS

PB

UF

rele

asin

g S

CL

Whe

n S

EN

= 1

;C

KP

is c

lear

ed a

fter

9th

falli

ng e

dge

of r

ecei

ved

byte

read

from

SS

PB

UF

and

rele

ases

SC

LW

hen

UA

= 1

;

If ad

dres

s m

atch

es

Set

by

hard

war

eon

9th

falli

ng e

dge

SS

PA

DD

it is

load

ed in

to

SS

PB

UF SC

L is

hel

d lo

w

S

BF

2013 Microchip Technology Inc. DS41452C_JP - p.205

Page 206: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-21: I2C スレーブ、10 ビットアドレス、受信 (SEN = 0、AHEN = 1、DHEN = 0)

Re

ceiv

e F

irst

Add

ress

Byt

e

UA

Rec

eive

Se

con

d A

ddr

ess

Byt

e

UA

Rec

eive

Dat

a

AC

K

Re

ceiv

e D

ata

11

11

0A

9A

8A

7A

6A

5A

4A

3A

2A

1A

0D

7D

6D

5D

4D

3D

2D

1D

0D

7D

6D

5S

DA

SC

L

SS

PIF

BF

AC

KD

T

UA

CK

P

AC

KT

IM

12

34

56

78

9S

AC

KA

CK

12

34

56

78

91

23

45

67

89

12

SS

PB

UF

is r

ead

fro

m

Re

ceiv

ed

da

taS

SP

BU

F c

an

bere

ad

an

ytim

e b

efo

reth

e n

ext

re

ceiv

ed

byt

e

Cle

are

d by

so

ftwa

re

falli

ng

ed

ge

of S

CL

no

t al

low

ed

unt

il 9

thU

pda

te t

o S

SP

AD

D is

Se

t C

KP

with

so

ftwa

re

rele

ase

s S

CL

SC

Lcl

ea

rs U

A a

nd

re

lea

ses

Up

da

te o

f S

SP

AD

D,

Se

t b

y h

ard

war

eo

n 9t

h fa

lling

ed

ge

Sla

ve s

oftw

are

cle

ars

AC

KD

T t

o A

CK

the

re

ceiv

ed

byt

e

If w

hen

AH

EN

=1

;on

th

e 8

th fa

llin

g ed

ge

of S

CL

of

an a

dd

ress

byte

, C

KP

is c

lear

ed

AC

KT

IM is

se

t by

har

dw

are

on

8th

falli

ng

edg

e o

f S

CL

Cle

are

d b

y so

ftwa

re

R/W

= 0

DS41452C_JP - p.206 2013 Microchip Technology Inc.

Page 207: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-22: I2C スレーブ、10 ビットアドレス、送信 (SEN = 0、AHEN = 0、DHEN = 0)

Re

ceiv

ing

Ad

dre

ss

AC

K

Re

ceiv

ing

Se

con

d A

ddre

ss B

yte

Sr

Rec

eive

Firs

t Ad

dre

ss B

yte

AC

K

Tra

nsm

ittin

g D

ata

Byt

e

11

11

0A

9A

8A

7A

6A

5A

4A

3A

2A

1A

01

11

10

A9

A8

D7

D6

D5

D4

D3

D2

D1

D0

SD

A

SC

L

SS

PIF BF

UA

CK

P

R/W D/A

12

34

56

78

91

23

45

67

89

12

34

56

78

91

23

45

67

89AC

K =

1

P

Mas

ter

sen

ds

Sto

p c

on

diti

onM

ast

er

sen

ds

not

AC

K

Ma

ster

sen

ds

Re

sta

rt e

ven

t

AC

K

R/W

= 0

S

Cle

are

d b

y so

ftwa

re

Afte

r S

SP

AD

D is

up

date

d,

UA

is c

lea

red

an

d S

CL

is r

ele

ase

d

Hig

h ad

dre

ss is

loa

de

d

Re

ceiv

ed

ad

dre

ss is

Da

ta t

o t

ran

smit

is

Set

by

softw

are

Ind

ica

tes

an

add

ress

Wh

en

R/W

= 1

;

R/W

is c

op

ied

fro

m th

e

Se

t by

har

dw

are

UA

ind

ica

tes

SS

PA

DD

SS

PB

UF

load

ed

with

re

ceiv

ed

add

ress

mu

st b

e u

pda

ted

ha

s b

ee

n re

ceiv

ed

load

ed

into

SS

PB

UF

rele

ase

s S

CL

Mas

ters

not

AC

Kis

co

pie

d

ma

tch

ing

add

ress

byt

e

CK

P is

cle

are

d o

n9

th f

alli

ng

ed

ge o

f S

CL

read

fro

m S

SP

BU

F

bac

k in

to S

SP

AD

D

AC

KS

TAT

Se

t b

y h

ard

wa

re

2013 Microchip Technology Inc. DS41452C_JP - p.207

Page 208: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.6 クロック ストレッチ

クロック ストレッチとは、バス上に接続されたデバイスが SCL ラインを Low に保持する事で通信を停止させる事です。スレーブは、このクロック ストレッチ機能を使って、データ処理またはマスタへの応答準備の時間を作る事ができます。マスタは、この機能とは無関係に動作し常にアクティブ状態ですが、ストレッチ中はデータを送信しません。マスタ ソフトウェアは、スレーブによるクロック ストレッチを認識できないため、この動作は SCL を生成するハードウェアで処理されます。

ソフトウェアによるストレッチ制御には、SSPCON1レジスタの CKP ビットを使います。CKP ビットがクリアされると、モジュールは SCL ラインが Low になるまで待機し、その後 Low を保持します。CKP をセットすると、SCL が解放されて通信が再開します。

21.5.6.1 通常のクロック ストレッチ

SSPSTAT レジスタの R/W ビットがセットされ、読み出し要求が実行された場合、ACK パルスの後にスレーブ ハードウェアが CKP をクリアします。これによって、スレーブは、マスタへ送信するデータを SSPBUFに読み込む時間を確保できます。SSPCON2のSENビットがセットされている場合、スレーブ ハードウェアはACKシーケンスの後にいつでもクロック ストレッチを実行します。スレーブの準備が整うと、ソフトウェアによって CKP がセットされて通信が再開します。

21.5.6.2 10 ビット アドレッシング モード

10 ビット アドレッシング モードの場合、UA ビットがセットされるとクロックは常にストレッチされます。これは、CKP がクリアされずに SCL がストレッチされる唯一の状況です。SSPADD への書き込みが実行されるとすぐに SCL は解放されます。

21.5.6.3 バイト単位の NACKSSPCON3 の AHEN ビットがセットされている場合、CKP は一致アドレスを受信する SCL の 8 番目の立ち下がりエッジの後にハードウェアによってクリアされます。SSPCON3 の DHEN ビットがセットされている場合、CKP はデータ受信用の SCL の 8 番目の立ち下がりエッジの後にクリアされます。

SCLの 8番目の立ち下がりエッジの後でクロックがストレッチされると、スレーブは受信アドレスまたは受信データを処理して、受信データを ACK するかどうかを判断できます。

21.5.7 クロック同期と CKP ビット

CKP ビットがクリアされると、モジュールは SCL ラインが Low になるまで待機し、その後 Low を保持します。しかし、CKP ビットをクリアしても、SCL 出力が Low にサンプリングされるまで、SCL 出力の Lowはアサートされません。従って、外部 I2C マスタデバイスが既に SCL ラインをアサートしていないと、CKPビットは SCL ラインをアサートしません。SCL 出力は、CKP ビットがセットされて I2C バス上のその他全てのデバイスが SCL を解放するまで Low を保持します。これにより、CKP ビットへの書き込みによってSCL の High 期間が規格下限を下回る事を防止できます ( 図 21-23 参照 )。

図 21-23: クロックの同期タイミング

Note 1: BF ビットは、クロック ストレッチを実行するかどうかに影響しません。これは、以前のバージョンのモジュールと異なります。以前は、SCL の 9 番目の立ち下がりエッジより前にSSPBUFが読み出された場合、クロックがストレッチされず、CKP がクリアされました。

2: 以前のモジュール バージョンでは、SCL の9番目の立ち下がりエッジより前にSSPBUFへデータが読み込まれた場合、送信用のクロックはストレッチされませんでした。現バージョンでは、読み出し要求に対して常に CKP がクリアされます。

Note: 以前のモジュール バージョンでは、2 番目のアドレスバイトが一致しない場合、モジュールはクロックをストレッチしませんでした。

SDA

SCL

DX ‚ – 1DX

WR

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

SSPCON1

CKP

Master devicereleases clock

Master deviceasserts clock

DS41452C_JP - p.208 2013 Microchip Technology Inc.

Page 209: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.5.8 ジェネラルコール アドレスのサポート

I2C バスのアドレス指定では通常、スタート条件の次のバイトで、マスタデバイスがアドレス指定するスレーブデバイスを示します。例外はジェネラルコールアドレスであり、全デバイスをアドレス指定できます。このアドレスを使うと、理論上は全デバイスが ACK を返します。

ジェネラルコール アドレスは「0x00」であり、I2C プロトコルの予約済みアドレスです。SSPCON2 レジスタの GCEN ビットがセットされている場合、スレーブモジュールは SSPADD の値に関係なく、このアドレス受信に対して ACK を返します。スレーブが、R/Wビットのクリアされた全てゼロのアドレス値を受信すると、割り込みが生成され、スレーブ ソフトウェアはSSPBUF を読み出して応答できます。図 21-24 に、ジェネラルコールの受信シーケンスを示します。

10 ビット アドレッシング モードの場合、ジェネラルコール アドレスの受信で UA ビットはセットされません。スレーブは、7 ビットモードと同じように 2 番目のバイトをデータとして受信する準備をします。

SSPCON3レジスタのAHENビットがセットされた場合、通常のアドレス受信と同じように、スレーブ ハードウェアは SCL の 8 番目の立ち下がりエッジ後にクロックをストレッチ (Low に駆動 ) します。その後、スレーブは ACKDT の値をセットして、通常の通信同様クロックを解放する必要があります。

図 21-24: スレーブモードのジェネラルコール アドレス シーケンス

21.5.9 SSP マスクレジスタ

I2C スレーブモードでは、SSP マスク (SSPMSK) レジスタ ( レジスタ 21-5) を使って、アドレス比較動作中にSSPSRレジスタに格納された値をマスクできます。SSPMSK レジスタのゼロ (「0」) ビットがマスクビットとなり、受信アドレスの対応ビットは「ドントケア」として処理されます。

このレジスタは、あらゆるリセット条件で全て「1」にリセットされます。従って、マスク値を書き込まれるまで標準の SSP 動作には影響を与えません。

SSP マスクレジスタは、以下の時にアクティブ状態です。

• 7 ビットアドレス モードの場合 : A<7:1> のアドレス比較時

• 10 ビットアドレス モードの場合 : A<7:0> のアドレス比較時のみ。SSP マスクは、1 番目の ( 上位 ) バイトアドレスの受信中は無効。

SDA

SCL

S

SSPIF

BF (SSPSTAT<0>)

Cleared by software

SSPBUF is read

R/W = 0ACKGeneral Call Address

Address is compared to General Call Address

Receiving Data ACK

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

D7 D6 D5 D4 D3 D2 D1 D0

after ACK, set interrupt

GCEN (SSPCON2<7>)

’1’

2013 Microchip Technology Inc. DS41452C_JP - p.209

Page 210: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6 I2C マスタモード

マスタモードを有効にするには、SSPCON1 レジスタの対応するSSPMビットをセット/クリアして、SSPENビットをセットします。マスタモードでは SDA ピンと SCK ピンを入力として設定する必要があります。ピンを Low に駆動する必要がある場合、MSSP ハードウェアは出力ドライバのTRIS制御より優先されます。

マスタモードの動作は、スタート / ストップ条件の検出による割り込み生成でサポートされます。ストップ(P) ビットとスタート (S) ビットは、リセット時またはMSSPモジュールが無効にされた時にクリアされます。I2C バスの制御は、P ビットがセットされている場合またはバスがアイドル状態の場合に取得できます。

ファームウェア制御のマスタモードでは、ユーザコードがスタート /ストップビット条件の検出に基づいて、全ての I2C バス動作を実行します。スタート / ストップ条件の検出は、このモードで唯一能動的に動作する回路です。その他、全ての通信動作は、ユーザ ソフトウェアで SDA/SCL ラインを直接制御して実行されます。

以下のイベントが生じると、SSP 割り込みフラグビット (SSPIF) がセットされます (SSP 割り込み有効時 )。

• スタート条件の検出

• ストップ条件の検出

• データ送信バイトの送受信

• 肯定応答 (ACK) 信号の送受信

• 反復スタート条件の生成

21.6.1 I2C マスタモードの動作

マスタデバイスは、全てのシリアルクロック パルス、スタート /ストップ条件を生成します。 転送は、ストップ条件または反復スタート条件で終了します。反復スタート条件は次のシリアル転送の開始でもあるため、I2C バスは解放されません。

マスタ トランスミッタ モードでは、SDA からシリアルデータを出力し、SCL からシリアルクロックを出力します。 初に送信するバイトは、受信デバイスのスレーブアドレス (7 ビット ) と Read/Write (R/W) ビットを含みます。この場合、R/W ビットは論理「0」です。シリアルデータは 1 回に 8 ビット送信されます。1 バイト送信ごとに肯定応答 (ACK) ビットを受信します。シリアル転送の開始 / 終了は、スタート / ストップ条件の出力で示します。

マスタ受信モードの場合、 初に送信するバイトは送信デバイスのスレーブアドレス (7 ビット ) と R/W ビットを含みます。 この場合、R/W ビットは論理「1」です。従って、7 ビットのスレーブアドレスの末尾に受信ビットを示す「1」を付加したものが、 初に送信するバイトです。シリアルデータは SDA で受信し、SCLはシリアルクロックを出力します。シリアルデータは、8 ビットずつ受信します。1 バイト受信ごとに肯定応答 (ACK) ビットを送信します。スタート / ストップ条件で、送信の開始 / 終了を示します。

baud レート ジェネレータを使って、SCL のクロック周波数出力を設定します。詳細は、セクション 21.7「baud レート ジェネレータ」を参照してください。

Note 1: I2C マスタモードの場合、MSSP モジュールではイベントのキューイングはできません。例えばスタート条件を開始し、それが完了する前にSSPBUFレジスタへ書き込みを実行し、送信動作を開始する事はできません。この場合 SSPBUF に値は書き込まれず、その事を示す WCOL ビットがセットされます。

2: マスタモードの場合、SEN/PEN ビットがクリアされるとスタート/ストップ検出がマスクされて割り込みが生成されます。これで割り込み生成が完了です。

DS41452C_JP - p.210 2013 Microchip Technology Inc.

Page 211: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.2 クロック アービトレーション

送受信、反復スタート /ストップ条件中にマスタがSCLピンを解放すると (SCL が High にフローティング )、クロック アービトレーションが実行されます。SCL ピンが High にフローティングすると、baud レート ジェネレータ (BRG) は、SCL ピンが実際に High としてサンプルされるまでカウントを停止します。SCL ピンでHigh がサンプルされると、baud レート ジェネレータに SSPADD<7:0> の内容が再読み込みされてカウントを開始します。これにより、外部デバイスによってクロックがLowに保持されていたとしても、SCLのHigh期間が 短でも BRG のロールオーバー 1 回分確保されます ( 図 21-25)。

図 21-25: クロック アービトレーション時の baud レート ジェネレータのタイミング

21.6.3 WCOL ステータスフラグ

スタート、リスタート、ストップ、受信、送信のいずれかのシーケンスが進行中にユーザがSSPBUFに書き込みを実行すると、WCOL がセットされてバッファの内容は変更されません ( 書き込みは実行されない )。このように、モジュールがアイドル状態でない時にSSPBUF に対する何らかの操作をしようとするとWCOL ビットがセットされます。

SDA

SCL

SCL deasserted but slave holds

DX ‚ – 1DX

BRG

SCL is sampled high, reload takesplace and BRG starts its count

03h 02h 01h 00h (hold off) 03h 02h

Reload

BRGValue

SCL low (clock arbitration)SCL allowed to transition high

BRG decrements onQ2 and Q4 cycles

Note: イベントをキューに保存できないため、スタート条件が終了するまで、SSPCON2の下位 5 ビットには書き込めません。

2013 Microchip Technology Inc. DS41452C_JP - p.211

Page 212: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.4 I2C マスタモードでのスタート条件のタイミング

スタート条件を開始するには、ユーザが SSPCON2 レジスタのスタート イネーブルビット(SEN)をセットします ( 図 21-26)。SDA ピンと SCL ピンが High としてサンプルされると、baud レート ジェネレータにSSPADD<7:0> の内容が再読み込みされてカウントを開始します。baud レート ジェネレータがタイムアウト (TBRG)した時にSCLピンとSDAピンが両方共Highとしてサンプルされると、SDA ピンは Low に駆動されます。SCL ピンが High の時に SDA が Low に駆動されるとスタート条件となり、SSPSTAT1 レジスタのS ビットがセットされます。その後、baud レート ジェネレータに SSPADD<7:0> の内容が再読み込みされて、カウントを再開します。baud レート ジェネレータがタイムアウト (TBRG) すると、SSPCON2 レジスタの SEN ビットが自動的にハードウェアでクリアさ

れます。つまり、baud レート ジェネレータは停止し、SDA ラインは Low を保持した状態でスタート条件が完了します。

図 21-26: 初のスタートビットのタイミング

Note 1: スタート条件の開始時にSDAピンとSCLピンが既に Low にサンプルされている場合、またはスタート条件時に SDA ラインが Low に駆動される前に SCL ラインがLow としてサンプルされた場合、バスコリジョンが生じてバスコリジョン割り込みフラグ (BCLIF) がセットされ、スタート条件が中止されて I2C モジュールはアイドル状態にリセットされます。

2: Philips 社の I2CTM 仕様書では、スタート時にバスコリジョンは発生しないと記載されています。

SDA

SCLS

TBRG

1st bit 2nd bit

TBRG

SDA = 1, At completion of Start bit,

SCL = 1

Write to SSPBUF occurs hereTBRG

hardware clears SEN bit

TBRG

Write to SEN bit occurs here Set S bit (SSPSTAT<3>)

and sets SSPIF bit

DS41452C_JP - p.212 2013 Microchip Technology Inc.

Page 213: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.5 I2C マスタモードでの反復スタート条件のタイミング

SSPCON2 レジスタの RSEN ビットが High にプログラムされ、マスタステート マシンがアクティブでなくなると、反復スタート条件が発生します ( 図 21-27)。RSEN ビットがセットされると、SCL ピンが Low にアサートされます。SCL ピンが Low としてサンプルされると、baud レート ジェネレータに値が読み込まれてカウントを開始します。 SDA ピンは、baud レート ジェネレータが 1 回カウントする間 (TBRG)、解放されます (High に遷移 )。baud レート ジェネレータ タイムアウト時、SDA が High としてサンプルされると、SCL ピンがネゲートされます (High に遷移 )。SCL ピンが High としてサンプルされると、baud レート ジェネレータに値が再読み込みされてカウントを開始します。SDA と SCL は、1 TBRG の間、High としてサンプルされる必要があります。この動作の次には、SCL がHigh の間に、1 TBRG の期間、SDA ピンがアサートされます (SDA = 0)。SCL は Low にアサートされます。

この後 SSPCON2 レジスタの RSEN ビットが自動的にクリアされ、baud レート ジェネレータには値が再読み込みされず、SDA ピンは Low に保持されます。SDA ピンと SCL ピンでスタート条件が検出されるとすぐに、SSPSTAT レジスタの S ビットがセットされます。baud レート ジェネレータがタイムアウトするまで SSPIF ビットはセットされません。

図 21-27: 反復 START 条件の波形

Note 1: 他のイベントの発生中にRSENをプログラムしても効果はありません。

2: 以下の場合、反復スタート条件中にバスコリジョンが発生します。

• SCL が Low から High に遷移した時、SDA が Low としてサンプリングされる。

• SDA が Low にアサートされる前にSCL が Low に変化する。( 別のマスタがデータ「1」を送信しようとしている可能性があります )。

SDA

SCL

Repeated Start

Write to SSPCON2

Write to SSPBUF occurs here

At completion of Start bit, hardware clears RSEN bit

1st bit

S bit set by hardware

TBRG

TBRG

SDA = 1, SDA = 1,

SCL (no change) SCL = 1

occurs here

TBRG TBRG TBRG

and sets SSPIF

Sr

2013 Microchip Technology Inc. DS41452C_JP - p.213

Page 214: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.6 I2C マスタモード送信

データバイト、7 ビットアドレス、10 ビットアドレス半分の送信は、単に SSPBUF レジスタへ値を書き込む事だけで完了します。この動作によりバッファフル フラグ (BF) ビットがセットされ、baud レート ジェネレータがカウントを開始して次の送信を開始します。アドレス /データの各ビットは、SCLの立ち下がりエッジの後に SDA ピン上にシフト出力されます。SCL は、1 回の BRG ロールオーバー(TBRG) の間 Low に保持されます。データは、SCL が High に解放される前に有効になる必要があります。SCL ピンが High に解放されると、TBRG の間保持されます。SDA ピン上のデータは、この間と、SCL の次の立ち下がり後のホールド時間まで安定していなければなりません。8 番目のビットがシフト出力された(8番目のクロックの立ち下がりエッジ ) 後、BF フラグがクリアされてマスタがSDA を解放します。アドレスが一致した場合、またはデータを正常に受信した場合、アドレス指定されたスレーブデバイスは9番目のビットと同時にACKビットを送信します。9 番目のクロックの立ち上がりエッジでACKのステータスがACKSTATビットに書き込まれます。マスタが肯定応答 (ACK) を受信すると、肯定応答ステータスビット (ACKSTAT) はクリアされます。受信しない場合、セットされたままです。9 番目のクロックの後、SSPIF ビットがセットされ、マスタクロック(baud レート ジェネレータ ) は次のデータバイトがSSPBUFに読み込まれるまで一時停止し、SCLはLow、SDA はそのままの状態を保持します ( 図 21-28)。

SSPBUF への書き込み後、7 ビットのアドレスと R/Wビットが全て出力されるまで、SCL の立ち下がりエッジでアドレスのビットが1つずつシフト出力されます。8 番目のクロックの立ち下がりエッジで、マスタはSDA ピンを解放し、スレーブが肯定応答 (ACK) を送信します。9 番目のクロックの立ち下がりエッジでは、マスタが SDA ピンをサンプルして、スレーブでアドレスが認識されたかどうかを確認します。ACK ビットのステータスは、SSPCON2 レジスタの ACKSTAT ステータスビットに読み込まれます。アドレス送信の 9番目のクロック立ち下がりエッジ後、SSPIF がセットされ BF フラグがクリアされ、次に SSPBUF への書き込みが実行されるまで baud レート ジェネレータはOFF となります (SCL は Low に保持され、SDA はフローティング )。

21.6.6.1 BF ステータスフラグ

送信モードでは、SSPSTAT レジスタの BF ビットはCPU が SSPBUF へ書き込むとセットされ、全 8 ビットがシフト出力されるとクリアされます。

21.6.6.2 WCOL ステータスフラグ

送信中 (SSPSRがデータバイトをシフト出力している途中 ) に、ユーザが SSPBUF へ書き込みを実行した場合、WCOL がセットされバッファの内容は変更されません ( 書き込みは実行されない )。

次の送信の前にWCOLをソフトウェアでクリアする必要があります。

21.6.6.3 ACKSTAT ステータスフラグ

送信モードにおける SSPCON2 レジスタの ACKSTATビットは、スレーブが肯定応答 (ACK = 0) を送信するとクリアされ、スレーブが肯定応答しない (ACK = 1)とセットされます。スレーブは、自分自身のアドレスを認識するか ( ジェネラルコールを含む )、正常にデータ受信を完了すると ACK を送信します。

21.6.6.4 代表的な送信シーケンス

1. ユーザが、SSPCON2 レジスタの SEN ビットをセットしてスタート条件を生成する。

2. スタート条件の完了時にSSPIFがハードウェアによりセットされる。

3. ソフトウェアで SSPIF がクリアされる。

4. MSSP モジュールは、新しい動作を開始する前に必要なスタート時間が経過するまで待機する。

5. ユーザが、送信先スレーブアドレスを SSPBUF に読み込む。

6. 8 ビット全てが送信されるまで、アドレスが SDAピンにシフト出力される。SSPBUF への書き込みが完了すると、送信が開始する。

7. MSSP モジュールはスレーブから ACK ビットを受信し、その値をSSPCON2レジスタのACKSTATビットに書き込む。

8. MSSP モジュールは、9 番目のクロックサイクルの 後にSSPIFビットをセットして割り込みを生成する。

9. ユーザが、SSPBUFに8ビットのデータを読み込む。

10. 8 ビット全てが送信されるまで、データが SDA ピンにシフト出力される。

11. MSSP モジュールは、スレーブから ACK ビットを受信して、その値を SSPCON2 レジスタの ACKSTAT ビットに書き込む。

12. 全ての送信バイトに対して、手順 8 ~ 11 を繰り返す。

13. ユーザが、SSPCON2 レジスタの PEN またはRSEN ビットをセットしてストップ / リスタート条件を生成する。ストップ / リスタート条件が完了すると、割り込みが生成される。

DS41452C_JP - p.214 2013 Microchip Technology Inc.

Page 215: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-28: I2C マスタモードの波形 ( 送信、7 ビット /10 ビットアドレス )

SD

A

SC

L

SS

PIF

BF

(S

SP

STA

T<

0>)

SE

N

A7

A6

A5

A4

A3

A2

A1

AC

K =

0D

7D

6D

5D

4D

3D

2D

1D

0

AC

KT

ran

smitt

ing

Da

ta o

r S

eco

nd H

alf

R/W

= 0

Tra

nsm

it A

ddr

ess

to

Sla

ve

12

34

56

78

91

23

45

67

89

P

Cle

are

d b

y so

ftwar

e s

ervi

ce r

ou

tine

SS

PB

UF

is w

ritte

n b

y so

ftwa

re

fro

m S

SP

inte

rru

pt

Afte

r S

tart

co

nditi

on

, SE

N c

lea

red

by h

ard

wa

re

S

SS

PB

UF

wri

tten

with

7-b

it a

ddre

ss a

nd

R/W

star

t tr

an

smit

SC

L h

eld

low

wh

ile C

PU

resp

on

ds

to S

SP

IF

SE

N =

0

of 1

0-b

it A

dd

ress

Writ

e S

SP

CO

N2<

0> S

EN

= 1

Sta

rt c

on

ditio

n b

eg

ins

Fro

m s

lave

, cl

ea

r A

CK

STA

T b

it S

SP

CO

N2<

6>

AC

KS

TAT

in

SS

PC

ON

2 =

1

Cle

are

d b

y so

ftwa

re

SS

PB

UF

wri

tten

PE

N

R/W

Cle

are

d b

y so

ftwa

re

2013 Microchip Technology Inc. DS41452C_JP - p.215

Page 216: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.7 I2C マスタモード受信

マスタモード受信 (図 21-29)を有効にする場合、受信イネーブルビット (SSPCON2 レジスタの RCEN ビット )をプログラムします。

baud レート ジェネレータがカウントを開始し、ロールオーバーごとに SCL ピンが遷移 (High → Low/Low→High)してデータがSSPSRへシフト入力されます。8 番目のクロックの立ち下がりエッジ後、受信イネーブルフラグが自動的にクリアされ、SSPSR の内容がSSPBUF に読み込まれます。BF フラグビットがセットされ、SSPIF フラグがセットされ、baud レート ジェネレータはカウントを停止します (SCL を Low に保持 )。これによって MSSP はアイドル状態に移行し、次のコマンドを待ちます。CPU がバッファを読み出すと、BFフラグビットは自動的にクリアされます。ユーザは、受信の 後に肯定応答 (ACK) シーケンス イネーブル(SSPCON2 レジスタの ACKEN ビット ) をセットする事によって、肯定応答ビットを送信できます。

21.6.7.1 BF ステータスフラグ

受信動作の場合、SSPSR から SSPBUF へアドレスバイトまたはデータバイトが読み込まれると、BF ビットがセットされます。このビットは、SSPBUF レジスタが読み出されるとクリアされます。

21.6.7.2 SSPOV ステータスフラグ

受信動作の場合、以前の受信で BF フラグが既にセットされている時にSSPSRで8ビットが受信されると、SSPOV ビットがセットされます。

21.6.7.3 WCOL ステータスフラグ

受信中 (SSPSRにデータバイトをシフト入力している途中 ) に、ユーザが SSPBUF へ書き込みを実行した場合、WCOL がセットされ、バッファの内容は変更されません ( 書き込みは実行されない )。

21.6.7.4 代表的な受信シーケンス

1. ユーザが、SSPCON2 レジスタの SEN ビットをセットしてスタート条件を生成する。

2. スタート条件の完了時にSSPIFがハードウェアによりセットされる。

3. ソフトウェアで SSPIF がクリアされる。

4. ユーザが送信先スレーブアドレスをSSPBUFに書き込み、R/W ビットがセットされる。

5. 8 ビット全てが送信されるまで、アドレスが SDAピンにシフト出力される。SSPBUF への書き込みが完了すると、送信が開始する。

6. MSSP モジュールはスレーブから ACK ビットを受信し、その値をSSPCON2レジスタのACKSTATビットに書き込む。

7. MSSP モジュールは、9 番目のクロックサイクルの 後にSSPIFビットをセットして割り込みを生成する。

8. ユーザが SSPCON2 レジスタの RCEN ビットをセットし、マスタがスレーブからバイトデータを受信する。

9. SCL の 8 番目の立ち下がりエッジ後、SSPIF とBF がセットされる。

10. マスタが SSPIF をクリアし、SSPBUF から受信バイトを読み出し、BF をクリアする。

11. マスタが、SSPCON2 レジスタの ACKDT ビットを使って、スレーブへ送信する ACK 値をセットし、ACKENビットをセットしてACKを送信する。

12. マスタからスレーブへ ACK 信号が送信され、SSPIF がセットされる。

13. ユーザが SSPIF をクリアする。

14. スレーブから受信されるバイトごとに、手順 8 ~13 を繰り返す。

15. マスタが NOTACK を送信するか、ストップ条件を送信すると通信が終了する。

Note: RCEN ビットをセットする前に MSSP モジュールをアイドル状態にする必要があります。アイドル状態にない場合、RCENビットは無視されます。

DS41452C_JP - p.216 2013 Microchip Technology Inc.

Page 217: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-29: I2C マスタモードの波形 ( 受信、7 ビットアドレス )

P9

87

65

D0

D1

D2

D3

D4

D5

D6

D7

S

A7

A6

A5

A4

A3

A2

A1

SD

A

SC

L1

23

45

67

89

12

34

56

78

91

23

4

Bus

mas

ter

term

ina

tes

tra

nsf

er

AC

K

Rec

eiv

ing

Da

ta fr

om S

lave

Re

ceiv

ing

Dat

a fr

om

Sla

ve

D0

D1

D2

D3

D4

D5

D6

D7

AC

KR

/W

Tra

nsm

it A

ddr

ess

to S

lave

SS

PIF

BF

AC

K is

not

se

nt

Wri

te to

SS

PC

ON

2<

0>

(SE

N =

1),

Wri

te t

o S

SP

BU

F o

ccu

rs h

ere

,A

CK

fro

m S

laveM

ast

er c

onf

igu

red

as

a r

ece

ive

rb

y p

rogr

amm

ing

SS

PC

ON

2<

3>

(R

CE

N =

1)

PE

N b

it =

1w

ritte

n h

ere

Da

ta s

hift

ed

in o

n fa

lling

ed

ge o

f CL

K

Cle

are

d by

so

ftwa

re

star

t XM

IT

SE

N =

0

SS

PO

V

SD

A =

0, S

CL

= 1

wh

ile C

PU

(SS

PS

TAT

<0

>)

AC

K

Cle

are

d b

y so

ftwar

eC

lear

ed b

y so

ftwar

e

Se

t S

SP

IF in

terr

upt

at e

nd

of

rece

ive

Set

P b

it (S

SP

STA

T<

4>

)an

d S

SP

IFC

lear

ed in

softw

are

AC

K f

rom

Ma

ste

r

Set

SS

PIF

at

end

Se

t SS

PIF

inte

rrup

tat

en

d o

f Ack

now

led

gese

quen

ce

Set

SS

PIF

inte

rru

pt

at e

nd

of A

ckno

w-

led

ge s

eq

uenc

e

of r

ecei

ve

Se

t A

CK

EN

, sta

rt A

ckno

wle

dge

sequ

ence

SS

PO

V is

se

t bec

aus

eS

SP

BU

F is

stil

l fu

ll

SD

A =

AC

KD

T =

1

RC

EN

cle

are

dau

tom

atic

ally

RC

EN

= 1

, sta

rtne

xt r

ecei

ve

Writ

e to

SS

PC

ON

2<4>

to s

tart

Ack

now

ledg

e se

quen

ceS

DA

= A

CK

DT

(S

SP

CO

N2<

5>)

= 0

RC

EN

cle

ared

auto

mat

ical

ly

resp

onds

to

SS

PIF

AC

KE

Nbeg

in S

tart

con

diti

on

Cle

are

d b

y so

ftwa

re

SD

A =

AC

KD

T =

0

Last

bit

is s

hifte

d in

to S

SP

SR

and

con

ten

ts a

re u

nloa

ded

into

SS

PB

UF

RC

EN

Ma

ste

r co

nfig

ured

as

a re

ceiv

erby

pro

gra

mm

ing

SS

PC

ON

2<3>

(R

CE

N =

1)

RC

EN

cle

are

dau

tom

atic

ally

AC

K fr

om M

aste

rS

DA

= A

CK

DT

= 0

R

CE

N c

lear

eda

uto

ma

tica

lly

2013 Microchip Technology Inc. DS41452C_JP - p.217

Page 218: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.8 肯定応答 (ACK) シーケンスのタイミング

肯定応答 (ACK) シーケンスを有効にするには、肯定応答シーケンス イネーブルビット (SSPCON2 レジスタの ACKEN ビット ) をセットします。このビットがセットされると SCL ピンが Low に駆動され、肯定応答データビットの内容が SDA ピンに出力されます。ACK を生成するには、ACKDT ビットをクリアします。ACKを生成しない場合、ACK シーケンスが開始する前にACKDTビットをセットする必要があります。baudレート ジェネレータが 1 ロールオーバー期間 (TBRG) カウントし、SCL ピンがネゲートされます (High に遷移 )。SCL ピンが High としてサンプルされると ( クロックアービトレーション )、baud レート ジェネレータがTBRG カウントします。その後 SCL ピンが Low に駆動されます。続いて ACKEN ビットが自動的にクリアされ、baud レート ジェネレータが OFF になり、MSSPモジュールはアイドルに移行します ( 図 21-30)。

21.6.8.1 WCOL ステータスフラグ

肯定応答シーケンスの進行中にユーザがSSPBUFに書き込みを実行すると、WCOL がセットされ、バッファの内容は変更されません ( 書き込みは実行されない )。

21.6.9 ストップ条件のタイミング

ストップ シーケンス イネーブルビット (SSPCON2 レジスタの PEN ビット ) をセットすると、送受信終了時に SDA ピン上にストップビットがアサートされます。送受信終了時、9 番目の立ち下がりエッジの後に SCLラインが Low に保持されます。PEN ビットがセットされると、マスタは SDA ラインを Low にアサートします。SDA ラインが Low としてサンプルされると、baud レート ジェネレータが再読み込みされ「0」までカウントダウンします。baud レート ジェネレータがタイムアウトすると、SCL ピンが High に駆動され、1TBRG (BGR のロールオーバー カウント ) 後に SDA ピンがネゲートされます。SCL が High の間に SDA ピンが High としてサンプルされると、SSPSTAT レジスタの P ビットがセットされます。1 TBRG 経過後、PENビットがクリアされ、SSPIF ビットがセットされます( 図 21-31)。

21.6.9.1 WCOL ステータスフラグ

ストップ シーケンス実行中にユーザが SSPBUF に書き込むと、WCOL がセットされ、バッファの内容は変化しません ( 書き込みは実行されない )。

図 21-30: ACK シーケンスの波形

図 21-31: 受信または送信モードのストップ条件

Note: TBRG = 1 baud レート ジェネレータ周期

SDA

SCL

SSPIF set at

Acknowledge sequence starts here,write to SSPCON2

ACKEN automatically cleared

Cleared in

TBRG TBRG

the end of receive

8

ACKEN = 1, ACKDT = 0

D0

9

SSPIF

software SSPIF set at the endof Acknowledge sequence

Cleared insoftware

ACK

SCL

SDA

SDA asserted low before rising edge of clock

Write to SSPCON2,set PEN

Falling edge of

SCL = 1 for TBRG, followed by SDA = 1 for TBRG

9th clock

SCL brought high after TBRG

TBRG TBRG

after SDA sampled high. P bit (SSPSTAT<4>) is set.

TBRG

to setup Stop condition

ACK

P

TBRG

PEN bit (SSPCON2<2>) is cleared by hardware and the SSPIF bit is set

Note: TBRG = 1 baud レート ジェネレータ周期

DS41452C_JP - p.218 2013 Microchip Technology Inc.

Page 219: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.10 スリープ動作

スリープ中、I2C スレーブ モジュールはアドレスまたはデータを受信できます。アドレス一致またはバイト転送が完了すると、プロセッサをスリープから復帰させます (MSSP 割り込み有効時 )。

21.6.11 リセットの効果

リセットは MSSP モジュールを無効にし、現在の転送は中止されます。

21.6.12 マルチマスタ モード

マルチマスタ モードでは、スタート / ストップ条件の検出時に生成される割り込みを使ってバスが空いているかどうかを判断できます。ストップ (P) ビットとスタート(S)ビットは、リセット時またはMSSPモジュールが無効にされた時にクリアされます。I2C バスの制御は、SSPSTAT レジスタの P ビットがセットされた時、S ビットと P ビットの両方がクリアされておりバスがアイドル状態の時に取得できます。バスがビジーの場合、SSP 割り込みを有効にすると、ストップ条件が発生した時に割り込みが生成されます。

マルチマスタ動作では、バス アービトレーション動作を実行できるように SDA ラインを監視して、信号レベルが期待される出力レベルにあるかどうかを確認する必要があります。確認はハードウェアが実行し、その結果は BCLIF ビットに格納されます。

以下の状態では、アービトレーションが失われる可能性があります。

• アドレス転送

• データ転送

• スタート条件

• 反復スタート条件

• ACK 条件

21.6.13 マルチマスタ通信、バスコリジョン、バス アービトレーション

マルチ マスタ モードのサポートは、バス アービトレーションによって実現します。マスタがアドレス / データビットを SDA ピンに出力する時、別のマスタが「0」を出力している間に、マスタが SDA に「1」を出力して SDA を High フロートにしようとするとアービトレーションが実行されます。SDA ピンに予測されるデータが「1」の場合、SDA ピンのサンプルが「0」であると、バスコリジョンが発生します。マスタはバスコリジョン割り込みフラグBCLIFをセットし、I2Cポートをアイドル状態にリセットします ( 図 21-32)。

送信動作中にバスコリジョンが発生した場合、送信動作が停止され、BF フラグがクリアされ、SDA ラインと SCL ラインがネゲートされ、SSPBUF への書き込みが可能になります。ユーザがバスコリジョン割り込みサービスルーチンを使う場合、I2C バスが空いていれば、スタート条件をアサートする事で通信を再開できます。

スタート、反復スタート、ストップ、ACK 条件中にバスコリジョンが発生した場合、これらの条件は中断され、SDA ラインと SCL ラインがネゲートされ、SSPCON2 レジスタの対応する制御ビットがクリアされます。ユーザがバスコリジョン割り込みサービスルーチンを使う場合、I2C バスが空いていれば、スタート条件をアサートする事で通信を再開できます。

マスタは SDA ピンと SCL ピンの監視を続けます。ストップ条件が発生すると、SSPIF ビットがセットされます。

SSPBUF に書き込むと、バスコリジョン発生時にトランスミッタがどこまで送信を完了していたかに関係なく、データの先頭ビットから送信が開始します。

マルチマスタ モードでは、スタート / ストップ条件の検出によって生成される割り込みを基に、バスが空いている期間を判断します。I2Cバスの制御は、SSPSTATレジスタの P ビットがセットされた時、S ビットと Pビットの両方がクリアされておりバスがアイドル状態の時に取得できます。

図 21-32: 送信と ACK のバスコリジョンのタイミング

SDA

SCL

BCLIF

SDA released

SDA line pulled lowby another source

Sample SDA. While SCL is high,data does not match what is driven

Bus collision has occurred.

Set bus collisioninterrupt (BCLIF)

by the master.

by master

Data changeswhile SCL = 0

2013 Microchip Technology Inc. DS41452C_JP - p.219

Page 220: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.13.1 スタート条件中のバスコリジョン

スタート条件中は、以下の場合にバスコリジョンが発生します。

a) スタート条件の開始時に SDA または SCL で Lowがサンプルされる ( 図 21-33)。

b) SDAが Lowにアサートされる前にSCLで Lowがサンプルされる ( 図 21-34)。

スタート条件中、SDA ピンと SCL ピンは両方共監視されています。

SDA ピンまたは SCL ピンが既に Low だった場合、以下の全てが実行されます。

• スタート条件を中止する。

• BCLIF フラグをセットする。

• MSSP モジュールをアイドル状態にリセットする( 図 21-33)。

スタート条件は、SDA ピンと SCL ピンのネゲートから始まります。SDA ピンで High がサンプルされると、baud レート ジェネレータに値が読み込まれカウントダウンが始まります。SDA が High の時に SCL ピンがLow としてサンプルされ事は、スタート条件中に別のマスタがデータ「1」を駆動しようとしている事を意味するため、バスコリジョンが発生します。

上記の BRG カウント中に SDA ピンで Low がサンプルされると、BRG はリセットされ、SDA ラインは BRG のタイムアウトを待たずにアサートされます ( 図 21-35)。

しかし、SDA ピンで「1」がサンプルされた場合、SDAピンは BRG カウントの完了時に Low にアサートされます。次に baud レート ジェネレータが再読み込みされてゼロまでカウントダウンします。この間に SCL ピンで「0」がサンプルされると、バスコリジョンは発生しません。BRG のカウント終了時、SCL ピンが Lowにアサートされます。

図 21-33: スタート条件中のバスコリジョン (SDA のみ )

Note: スタート条件中にバスコリジョンが問題にならないのは、2 つのバスマスタが全く同じタイミングでスタート条件をアサートする事があり得ないためです。従って、必ずどちらか一方のマスタが他方よりも先に SDA をアサートします。そのような状態ではバスコリジョンは発生しません。2 つのマスタはスタート条件に続く 初のアドレスでバス アービトレーションを行うためです。アドレスが同じだった場合、続くデータ部分、反復スタート、ストップ条件でアービトレーションが必要です。

SDA

SCL

SEN

SDA sampled low before

SDA goes low before the SEN bit is set.

S bit and SSPIF set because

SSP module reset into Idle state.SEN cleared automatically because of bus collision.

S bit and SSPIF set because

Set SEN, enable Startcondition if SDA = 1, SCL = 1

SDA = 0, SCL = 1.

BCLIF

S

SSPIF

SDA = 0, SCL = 1.

SSPIF and BCLIF arecleared by software

SSPIF and BCLIF arecleared by software

Set BCLIF,

Start condition. Set BCLIF.

DS41452C_JP - p.220 2013 Microchip Technology Inc.

Page 221: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 21-34: スタート条件中のバスコリジョン (SCL = 0)

図 21-35: スタート条件時の SDA アービトレーションによる BRG リセット

SDA

SCL

SENbus collision occurs. Set BCLIF.SCL = 0 before SDA = 0,

Set SEN, enable Startsequence if SDA = 1, SCL = 1

TBRG TBRG

SDA = 0, SCL = 1

BCLIF

S

SSPIF

Interrupt clearedby software

bus collision occurs. Set BCLIF.SCL = 0 before BRG time-out,

’0’ ’0’

’0’’0’

SDA

SCL

SEN

Set SLess than TBRG

TBRG

SDA = 0, SCL = 1

BCLIF

S

SSPIF

S

Interrupts clearedby softwareset SSPIF

SDA = 0, SCL = 1,

SCL pulled low after BRGtime-out

Set SSPIF

’0’

SDA pulled low by other master.Reset BRG and assert SDA.

Set SEN, enable Startsequence if SDA = 1, SCL = 1

2013 Microchip Technology Inc. DS41452C_JP - p.221

Page 222: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.13.2 反復スタート条件中のバスコリジョン

反復スタート条件中は、以下の場合にバスコリジョンが発生します。

a) SCLがLowからHighに遷移する時にSDAでLowがサンプルされる ( ケース 1)。

b) SDA で Low がアサートされる前に SCL が Low に遷移する。これは、他のマスタがデータ「1」を送信しようとしている可能性を示している(ケース2)。

ユーザが SDA ピンを解放し、ピンが High フロートできるようになると、BRG に SSPADD の内容が読み込まれてゼロまでカウントダウンします。続いて SCL ピンがネゲートされ、High がサンプルされると、SDA ピンがサンプルされます。

SDA が Low の場合、バスコリジョンが発生しています( つまり、別のマスタがデータ「0」を送信しようとしています ( 図 21-36))。SDA で High がサンプルされた場合、BRG が再度読み込まれカウントを開始します。BRGがタイムアウトする前にSDAがHighからLowに移行した場合、バスコリジョンは発生しません。2 つのマスタが全く同じタイミングでSDAをアサートする事はあり得ないからです。

BRG がタイムアウトする前に SCL が High から Lowに遷移し、SDA がまだアサートされていない場合はバスコリジョンが発生します。この場合、反復スタート条件中に他のマスタがデータ「1」を送信しようとしています ( 図 21-37 参照 )。

BRG タイムアウト時に SCL と SDA の両方が High のままの場合、SDA ピンが Low に駆動され、BRG の再読み込み後にカウントを開始します。カウントが終了すると、SCL ピンはその状態に関係なく Low に駆動され、反復スタート条件が終了します。

図 21-36: 反復スタート条件中のバスコリジョン ( ケース 1)

図 21-37: 反復スタート条件中のバスコリジョン ( ケース 2)

SDA

SCL

RSEN

BCLIF

S

SSPIF

Sample SDA when SCL goes high.If SDA = 0, set BCLIF and release SDA and SCL.

Cleared by software

’0’

’0’

SDA

SCL

BCLIF

RSEN

S

SSPIF

Interrupt clearedby software

SCL goes low before SDA,set BCLIF. Release SDA and SCL.

TBRG TBRG

’0’

DS41452C_JP - p.222 2013 Microchip Technology Inc.

Page 223: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.6.13.3 ストップ条件中のバスコリジョン

ストップ条件中は、以下の場合にバスコリジョンが発生します。

a) SDA ピンがネゲートされて High フロートが可能になった後、BRGのタイムアウト後にSDAでLowがサンプルされる ( ケース 1)。

b) SCL ピンがネゲートされた後、SDA が High に遷移する前にSCLでLowがサンプルされる (ケース2)。

ストップ条件は、SDAの Lowアサートから開始します。SDA で Low がサンプリングされると、SCL ピンをフローティング状態にできます。SCL ピンで High がサン

プルされると ( クロック アービトレーション )、baudレート ジェネレータにSSPADDの値が読み込まれ0へのカウントダウンが始まります。BRG のタイムアウト後、SDA がサンプルされます。SDA で Low がサンプルされた場合、バスコリジョンが発生しています。これは、別のマスタがデータ「0」を駆動しようとしているためです ( 図 21-38)。SDA の High フロートが可能になる前に、SCL ピンで Low がサンプルされると、バスコリジョンが発生します。この場合も、別のマスタがデータ「0」を駆動しようとしています ( 図 21-39)。

図 21-38: ストップ条件中のバスコリジョン ( ケース 1)

図 21-39: ストップ条件中のバスコリジョン ( ケース 2)

SDA

SCL

BCLIF

PEN

P

SSPIF

TBRG TBRG TBRG

SDA asserted low

SDA sampledlow after TBRG,set BCLIF

’0’

’0’

SDA

SCL

BCLIF

PEN

P

SSPIF

TBRG TBRG TBRG

Assert SDA SCL goes low before SDA goes high,set BCLIF

’0’

’0’

2013 Microchip Technology Inc. DS41452C_JP - p.223

Page 224: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 21-3: I2C™ 動作関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0リセット

値の記載

ページ

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIE2 OSFIE - - - BCLIE - - CCP2IE 78

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

PIR2 OSFIF - - - BCLIF - - CCP2IF 80

SSPADD ADD<7:0> 231

SSPBUF 同期シリアルポート受信バッファ / 送信レジスタ 183*

SSPCON1 WCOL SSPOV SSPEN CKP SSPM<3:0> 227

SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 229

SSPCON3 ACKTIM PCIE SCIE BOEN SDAHT SBCDE AHEN DHEN 230

SSPMSK MSK7 MSK6 MSK5 MSK4 MSK3 MSK2 MSK1 MSK0 231

SSPSTAT SMP CKE D/A P S R/W UA BF 226

TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 110

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は I2C モードの MSSP モジュールでは使いません。

* このページにはレジスタの情報を記載しています。

DS41452C_JP - p.224 2013 Microchip Technology Inc.

Page 225: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.7 baud レート ジェネレータ

MSSP モジュールは baud レート ジェネレータを装備しており、I2C と SPI マスタの両方のモードでクロックの生成が可能です。baudレート ジェネレータ (BRG)の再読み込み値は、SSPADD レジスタの値です ( レジスタ 21-6 参照 )。SSPBUF への書き込みを実行すると、baud レート ジェネレータが自動的にカウントダウンを開始します。

動作が完了すると内部クロックは自動的にカウントを停止し、クロックピンはそのままの状態を保持します。

内部信号「Reload (図 21-40参照 )」によって、SSPADDの値が BRG カウンタに読み込まれます。この動作はモジュールのクロックラインが振幅するごとに発生

し、計 2 回実行されます。再読み込み信号がアサートされるタイミングは、MSSP の動作モードで決まります。

表 21-4 に、命令サイクルに基づくクロック速度とSSPADD に読み込まれる BRG の値を示します。

式 21-1:

図 21-40: baud レート ジェネレータのブロック図

表 21-4: MSSP クロックレートと BRG の値

FCLOCKFOSC

SSPxADD 1+ 4 ---------------------------------------------=

Note: I2Cモードのbaudレート ジェネレータとして使う場合、0x00、0x01、0x02 は SSPADDの値として無効です。これは、実装上の制限です。

FOSC FCY BRG の値FCLOCK

(BRG ロールオーバー 2 回 )

32 MHz 8 MHz 13h 400 kHz (1)

32 MHz 8 MHz 19h 308 kHz

32 MHz 8 MHz 4Fh 100 kHz

16 MHz 4 MHz 09h 400 kHz(1)

16 MHz 4 MHz 0Ch 308 kHz

16 MHz 4 MHz 27h 100 kHz

4 MHz 1 MHz 09h 100 kHz

Note 1: この I2C インターフェイスは、400 kHz I2C 仕様 (100 kHz よりも高速のバスに適用される仕様 ) に厳密には準拠していません。しかし、アプリケーションがより高速のクロックを必要としている場合、十分な注意を払う事で使える可能性があります。

SSPM<3:0>

BRG Down CounterSSPCLK FOSC/2

SSPADD<7:0>

SSPM<3:0>

SCL

Reload

Control

Reload

2013 Microchip Technology Inc. DS41452C_JP - p.225

Page 226: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

21.8 レジスタ定義 : MSSP 制御

レジスタ 21-1: SSPSTAT: SSP ステータス レジスタ

R/W-0/0 R/W-0/0 R-0/0 R-0/0 R-0/0 R-0/0 R-0/0 R-0/0

SMP CKE D/A P S R/W UA BF

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 SMP: SPI データ入力サンプルビット

SPI マスタモード :1 = データ出力期間の 後に入力データをサンプルする0 = データ出力期間の中間で入力データをサンプルする

SPI スレーブモード :SPI がスレーブモードの場合、SMP をクリアする必要がある

I2 C マスタまたはスレーブモード :1 = スルーレート制御の標準速度モード (100 kHz と 1 MHz) を無効にする0 = スルーレート制御の高速モード (400 kHz) を有効にする

bit 6 CKE: SPI クロックエッジ選択ビット (SPI モードのみ )

SPI マスタまたはスレーブモード :1 = クロック状態がアクティブからアイドルに遷移する時に送信する0 = クロック状態がアイドルからアクティブに遷移する時に送信する

I2 C™ モードのみ :1 = SMBus 仕様に準拠したしきい値の入力ロジックを有効にする0 = SMBus 仕様の入力を無効にする

bit 5 D/A: Data/Address ビット (I2C モードのみ ) 1 = 後に送受信したバイトがデータである事を示す0 = 後に送受信したバイトがアドレスである事を示す

bit 4 P: ストップビット

(I2C モードでのみ使います。SSPEN がクリアされ MSSP モジュールが無効になると、このビットはクリアされます。)1 = 後にストップビットが検出された事を示す ( このビットは、リセット時に「0」となる )0 = 後にストップビットは検出されなかった事を示す

bit 3 S: スタートビット

(I2C モードでのみ使います。SSPEN がクリアされ MSSP モジュールが無効になると、このビットはクリアされます。)1 = 後にスタートビットが検出された事を示す ( このビットは、リセット時に「0」となる )0 = 後にスタートビットは検出されなかった事を示す

bit 2 R/W: Read/Write ビット情報 (I2C モードのみ )このビットは、 後のアドレス一致後の R/W ビット情報を保持します。有効期間は、アドレス一致後から次のスタートビット、ストップビットまたは NOT ACK ビットを受信するまでです。I2 C スレーブモードの場合 :1 = 読み出し0 = 書き込み

I2 C マスタモードの場合 :1 = 送信動作中である0 = 送信動作中ではない

このビットと SEN、RSEN、PEN、RCEN、ACKEN のいずれかを OR 演算すると、MSSP がアイドルであるかどうか分かります。

DS41452C_JP - p.226 2013 Microchip Technology Inc.

Page 227: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

bit 1 UA: 更新アドレスビット (10 ビット I2C モードのみ )1 = ユーザが SSPADD レジスタ内のアドレスを更新する必要がある事を示す0 = アドレスの更新は不要である

bit 0 BF: バッファフル ステータスビット

受信 (SPI および I2 C モード ) の場合 :1 = 受信が完了し、SSPBUF はフルである0 = 受信は未完了で、SSPBUF は空である

送信 (I2 C モードのみ ) の場合 :1 = データ送信中 (ACK およびストップビットを含まない ) であり、SSPBUF はフルである0 = データ送信が完了 (ACK およびストップビットを含まない ) し、SSPBUF は空である

レジスタ 21-2: SSPCON1: SSP 制御レジスタ 1

R/C/HS-0/0 R/C/HS-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

WCOL SSPOV SSPEN CKP SSPM<3:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア HS = ビットはハードウェアでセット

C = ビットはユーザがクリア

bit 7 WCOL: 書き込みコリジョン検出ビットマスタモードの場合 :1 = I2C の送信開始条件が無効である時に SSPBUF レジスタへの書き込みが試行された0 = コリジョンは発生していないスレーブモードの場合 :1 = 前のワードの送信中に SSPBUF レジスタへの書き込みが実行された

( ソフトウェアでクリアする必要がある )0 = コリジョンは発生していない

bit 6 SSPOV: 受信オーバーフロー インジケータ ビット (1)

SPI モードの場合 :1 = SSPBUF レジスタがまだ前のデータを保持している間に、新しいバイトを受信した。オーバー

フローが発生すると、SSPSR 内のデータは失われる。オーバーフローは、スレーブモードの場合のみ発生する。スレーブモードの場合、オーバーフロー設定を回避するには、データ送信でもSSPBUF を読み出す必要がある。マスタモードの場合、SSPBUF レジスタへの書き込みによって新規の受信を開始するため、オーバーフロー ビットはセットされない ( ソフトウェアでクリアする必要がある )

0 = オーバーフローは発生していないI2 C モードの場合 :1 = SSPBUF レジスタが前のバイトを保持中に次のバイトを受信した。送信モードの場合、SSPOV

ビットは「ドントケア」である ( ソフトウェアでクリアする必要がある ) 0 = オーバーフローは発生していない

Note 1: マスタモードの場合、新たな送受信は SSPBUF レジスタへの書き込みによって開始するため、オーバーフロー ビットはセットされません。

2: 有効にした場合、これらのピンは入出力として適切に設定する必要があります。

3: 有効にする場合、SDA ピンと SCL ピンを入力として設定する必要があります。

4: I2C モードの場合、SSPADD の値 0、1、2 はサポートされていません。

5: SSPADD の値「0」はサポートされていません。代わりに SSPM = 0000を使ってください。

レジスタ 21-1: SSPSTAT: SSP ステータス レジスタ ( 続き )

2013 Microchip Technology Inc. DS41452C_JP - p.227

Page 228: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

bit 5 SSPEN: 同期シリアルポート イネーブルビット両モード共、これらのピンが有効の場合、入力または出力として適切に設定される必要があります。SPI モードの場合 :1 = シリアルポートを有効化し、SCK、SDO、SDI、SS をシリアルポート ピン (2) のソースとして設

定する0 = シリアルポートを無効化し、これらのピンを I/O ポートピンとして設定するI2 C モードの場合 :1 = シリアルポートを有効化し、SDA ピンと SCL ピンをシリアルポート ピン (3) のソースとして設定

する0 = シリアルポートを無効化し、これらのピンを I/O ポートピンとして設定する

bit 4 CKP: クロック極性選択ビット SPI モードの場合 :1 = クロックのアイドル状態を High レベルに設定する 0 = クロックのアイドル状態を Low レベルに設定するI2 C スレーブモードの場合 :SCL 解放制御1 = クロックを有効にする 0 = クロックを Low に保持する ( クロック ストレッチ )。

( データのセットアップ時間確保のために使われる )I2 C マスタモードの場合 :このモードでは使わない

bit 3-0 SSPM<3:0>: 同期シリアルポート モード選択ビット1111 = I2C スレーブモード、10 ビットアドレス、スタートビットとストップビットの割り込みを

有効にする 1110 = I2C スレーブモード、7 ビットアドレス、スタートビットとストップビットの割り込みを

有効にする 1101 = 予約済み 1100 = 予約済み 1011 = I2C ファームウェア制御のマスタモード ( スレーブアイドル ) 1010 = SPI マスタモード、クロック = FOSC/(4 * (SSPADD+1))(5)

1001 = 予約済み1000 = I2C マスタモード、クロック = FOSC/(4 * (SSPADD+1))(4)

0111 = I2C スレーブモード、10 ビットアドレス 0110 = I2C スレーブモード、7 ビットアドレス 0101 = SPI スレーブモード、クロック = SCK ピン、SS ピン制御無効、SS を I/O ピンとして使用可能0100 = SPI スレーブモード、クロック = SCK ピン、SS ピン制御有効化 0011 = SPI マスタモード、クロック = TMR2 出力 /2 0010 = SPI マスタモード、クロック = FOSC/64 0001 = SPI マスタモード、クロック = FOSC/16 0000 = SPI マスタモード、クロック = FOSC/4

Note 1: マスタモードの場合、新たな送受信は SSPBUF レジスタへの書き込みによって開始するため、オーバーフロー ビットはセットされません。

2: 有効にした場合、これらのピンは入出力として適切に設定する必要があります。

3: 有効にする場合、SDA ピンと SCL ピンを入力として設定する必要があります。

4: I2C モードの場合、SSPADD の値 0、1、2 はサポートされていません。

5: SSPADD の値「0」はサポートされていません。代わりに SSPM = 0000を使ってください。

レジスタ 21-2: SSPCON1: SSP 制御レジスタ 1 ( 続き )

DS41452C_JP - p.228 2013 Microchip Technology Inc.

Page 229: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 21-3: SSPCON2: SSP 制御レジスタ 2

R/W-0/0 R-0/0 R/W-0/0 R/S/HS-0/0 R/S/HS-0/0 R/S/HS-0/0 R/S/HS-0/0 R/W/HS-0/0

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア HC = ビットはハードウェアでクリア

S = ビットはユーザがセット

bit 7 GCEN: ジェネラルコール イネーブルビット (I2C スレーブモードのみ )1 = SSPSR でジェネラルコール アドレス (0x00 または 00h) を受信した時の割り込みを有効にする0 = ジェネラルコール アドレスを無効にする

bit 6 ACKSTAT: 肯定応答 (ACK) ステータスビット (I2C モードのみ )1 = 肯定応答信号を受信していない0 = 肯定応答信号を受信した

bit 5 ACKDT: 肯定応答 (ACK) データビット (I2C モードのみ )

受信モード :受信の 後にユーザが肯定応答 (ACK) シーケンスを開始する時に送信される値です。1 = 肯定応答しない0 = 肯定応答する

bit 4 ACKEN: 肯定応答 (ACK) シーケンス イネーブルビット (I2C マスタモードのみ )

マスタ受信モードの場合 :1 = SDA ピンと SCL ピンで肯定応答 (ACK) シーケンスを開始し、ACKDT データビットを送信する。

ハードウェアによって自動的にクリアされる0 = 肯定応答 (ACK) シーケンスをアイドル状態にする

bit 3 RCEN: 受信イネーブルビット (I2C マスタモードのみ )

1 = I2C の受信モードを有効にする0 = 受信をアイドル状態にする

bit 2 PEN: ストップ条件イネーブルビット (I2C マスタモードのみ )

SCKMSSP 解放制御 :1 = SDA ピンと SCL ピンでストップ条件を開始する。ハードウェアによって自動的にクリアされる0 = ストップ条件をアイドル状態にする

bit 1 RSEN: 反復スタート条件イネーブルビット (I2C マスタモードのみ )

1 = SDA ピンと SCL ピンで反復スタート条件を開始する。ハードウェアによって自動的にクリアされる

0 = 反復スタート条件をアイドル状態にする

bit 0 SEN: スタート条件イネーブル / ストレッチ イネーブルビット

マスタモードの場合 :1 = SDA ピンと SCL ピンでスタート条件を開始する。ハードウェアによって自動的にクリアされる0 = スタート条件をアイドル状態にする

スレーブモードの場合 :1 = スレーブ送信とスレーブ受信の両方でクロック ストレッチを有効にする(ストレッチ イネーブル)0 = クロック ストレッチを無効にする

Note 1: ACKEN、RCEN、PEN、RSEN、SEN ビットについて : I2C モジュールがアイドル状態でない場合、このビットはセットされず ( スプール処理なし )、SSPBUF には書き込まれません (SSPBUF への書き込みは無効です )。

2013 Microchip Technology Inc. DS41452C_JP - p.229

Page 230: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 21-4: SSPCON3: SSP 制御レジスタ 3

R-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

ACKTIM PCIE SCIE BOEN SDAHT SBCDE AHEN DHEN

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 ACKTIM: 肯定応答 (ACK) タイムステータス ビット (I2C モードのみ )(3)

1 = I2C バスは肯定応答 (ACK) シーケンスを実行中である事を示す。SCL クロックの 8 番目の立ち下がりエッジでセットされる

0 =肯定応答 (ACK) シーケンスではない。SCL クロックの 9 番目の立ち上がりエッジでクリアされる

bit 6 PCIE: ストップ条件割り込みイネーブルビット (I2C モードのみ )

1 = ストップ条件検出時の割り込みを有効にする0 = ストップ条件検出時の割り込みを無効にする (2)

bit 5 SCIE: スタート条件割り込みイネーブルビット (I2C モードのみ )

1 = スタート / リスタート条件検出時の割り込みを有効にする0 = スタート条件検出時の割り込みを無効にする (2)

bit 4 BOEN: バッファ上書きイネーブルビット

SPI スレーブモード :(1)

1 = SSPBUF は、新しいデータバイトがシフト入力されるたびに更新される (BF ビットは無視する )

0 = SSPSTAT レジスタの BF ビットが既にセットされている状態で新しいバイトを受信した場合、SSPCON1 レジスタの SSPOV ビットがセットされ、バッファは更新されない

I2 C マスタおよび SPI マスタモードの場合 :このビットを無視する

I2 C スレーブモードの場合 :1 = SSPBUF は更新され、受信したアドレス / データバイトに対して ACK 信号が生成される。

BF ビットが 0の場合のみ、SSPOV ビットの状態は無視される0 = SSPOV がクリアされている時のみ SSPBUF が更新される

bit 3 SDAHT: SDA ホールド時間の選択ビット (I2C モードのみ )

1 = SDA のホールド時間は SCL の立ち下がりエッジから 小 300 ns0 = SDA のホールド時間は SCL の立ち下がりエッジから 小 100 ns

bit 2 SBCDE: スレーブモードのバスコリジョン検出イネーブルビット (I2C スレーブモードのみ )

SCL の立ち上がりエッジで、モジュール出力が High の場合に SDA が Low としてサンプルされると、PIR2 レジスタの BCLIF ビットがセットされてバスはアイドル状態になります。

1 = スレーブ バスコリジョン割り込みを有効にする0 = スレーブ バスコリジョン割り込みを有効にする

bit 1 AHEN: アドレスホールド イネーブルビット (I2C スレーブモードのみ )

1 =一致受信アドレスバイトの SCL の 8 番目の立ち下がりエッジ後、SSPCON1 レジスタの CKPビットがクリアされ、SCL は Low に保持される

0 =アドレスホールド機能を無効にする

bit 0 DHEN: データホールド イネーブルビット (I2C スレーブモードのみ )

1 =受信データバイトの SCL の 8 番目の立ち下がりエッジ後、スレーブ ハードウェアによってSSPCON1 レジスタの CKP ビットがクリアされ、SCL が Low に保持される

0 =データホールド機能を無効にする

Note 1: デイジーチェーン接続された SPI の動作です。ユーザは、 後の受信バイト以外は全て無視できます。新しいバイトが受信されても SSPOV はセットされており、BF = 1ですが、ハードウェアは 新のバイトを SSPBUF へ書き込み続けます。

2: このビットは、スタート / ストップ条件検出を明示的に有効にしているスレーブモードには影響しません。

3: ACKTIM ステータスビットがアクティブになるのは、AHEN ビットまたは DHEN ビットがセットされている場合のみです。

DS41452C_JP - p.230 2013 Microchip Technology Inc.

Page 231: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 21-5: SSPMSK: SSP マスクレジスタ

R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1 R/W-1/1

MSK<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7-1 MSK<7:1>: マスクビット

1 = 受信アドレスの bit n を SSPADD<n> と比較して I2C アドレス一致を検出する0 = 受信アドレスの bit n を I2C アドレス一致の検出に使わない

bit 0 MSK<0>: I2C スレーブモードのマスクビット、10 ビットアドレス

I2C スレーブモード、10 ビットアドレス (SSPM<3:0> = 0111または 1111):1 = 受信アドレスの bit 0 を SSPADD<0> と比較して I2C アドレス一致を検出する0 = 受信アドレスの bit 0 を I2C アドレス一致の検出に使わないI2C スレーブモード、7 ビットアドレスでは、このビットは無視されます。

レジスタ 21-6: SSPADD: MSSP アドレス /baud レートレジスタ (I2C モード )

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0

ADD<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

マスタモードの場合 :

bit 7-0 ADD<7:0>: baud レートクロック分周ビットSCL ピンクロック周期 = ((ADD<7:0> + 1) *4)/FOSC

10 ビット スレーブモード - 上位アドレスバイト :

bit 7-3 未使用 : 上位アドレスバイトとしては使わない。このレジスタのビット状態は「ドントケア」である。マスタから送信されるビットパターンは I2C の仕様で固定されており、「11110」と等しい必要がある。しかし、これらのビットはハードウェアによって比較され、このレジスタの値には影響されない

bit 2-1 ADD<2:1>: 10 ビットアドレスの上位 2 ビット

bit 0 未使用 : このモードでは使わない。ビット状態は「ドントケア」である

10 ビット スレーブモード - 下位アドレスバイト :

bit 7-0 ADD<7:0>: 10 ビットアドレスの下位 8 ビット

7 ビット スレーブモード :

bit 7-1 ADD<7:1>: 7 ビットのアドレス

bit 0 未使用 : このモードでは使わない。ビット状態は「ドントケア」である

2013 Microchip Technology Inc. DS41452C_JP - p.231

Page 232: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.232 2013 Microchip Technology Inc.

Page 233: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.0 拡張 USART (EUSART: Enhanced Universal Synchronous Asynchronous Receiver Transmitter)

拡張USART (EUSART: Enhanced Universal SynchronousAsynchronous Receiver Transmitter) モジュールは、シリアルI/O通信用の周辺モジュールです。このモジュールは、デバイスのプログラム実行から独立してシリアルデータの送受信を実行するために必要なクロックジェネレータ、シフトレジスタ、データバッファを全て備えています。EUSART は SCI (Serial CommunicationsInterface) とも呼ばれ、全二重非同期システムまたは半二重同期システムとして構成できます。全二重モードは、CRT 端末やパーソナル コンピュータ等の周辺システムとの通信に便利です。半二重同期モードは、A/Dまたは D/A IC、シリアル EEPROM、その他のマイクロコントローラ等の周辺デバイスとの通信向けです。これらのデバイスは通常、baud レート生成用の内部クロックを持たないため、マスタ同期デバイスから外部クロック信号を供給する必要があります。

EUSART モジュールには以下の機能があります。

• 全二重非同期の送受信

• 2 文字の入力バッファ

• 1 文字の出力バッファ

• 文字長を 8 ビットまたは 9 ビットにプログラム可能

• アドレス検出 (9 ビットモード )

• 入力バッファ オーバーラン エラー検出

• 受信文字のフレーミング エラー検出

• 半二重同期マスタ

• 半二重同期スレーブ

• クロック極性をプログラム可能 ( 同期モード )

• スリープ動作

EUSART モジュールは以下の機能も実装しているため、LIN (Local Interconnect Network) バスシステムでの使用にも 適です。

• baud レートの自動検出と校正

• ブレーク受信による復帰

• 13 ビットのブレーク文字送信

図 22-1 と図 22-2 に、EUSART トランスミッタとレシーバのブロック図を示します。

図 22-1: EUSART トランスミッタのブロック図

TXIF

TXIE

Interrupt

TXEN

TX9D

MSb LSb

Data Bus

TXREG Register

Transmit Shift Register (TSR)

(8) 0

TX9

TRMT SPEN

TX/CK pin

Pin Bufferand Control

8

SPBRGLSPBRGH

BRG16

FOSC÷ n

n

+ 1 Multiplier x4 x16 x64

SYNC 1 X 0 0 0

BRGH X 1 1 0 0

BRG16 X 1 0 1 0

Baud Rate Generator

• • •

2013 Microchip Technology Inc. DS41452C_JP - p.233

Page 234: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 22-2: EUSART レシーバのブロック図

EUSART モジュールの動作は、以下の 3 つのレジスタで制御します。

• TXSTA ( 送信ステータス / 制御 ) レジスタ

• RCSTA ( 受信ステータス / 制御 ) レジスタ

• BAUDCON (baud レート制御 ) レジスタ

これらのレジスタの詳細は、レジスタ 22-1、レジスタ 22-2、レジスタ 22-3 をそれぞれ参照してください。

レシーバ / トランスミッタを無効にしている場合、対応する RX/TX ピンは汎用入出力として使用できます。

RX/DT pin

Pin Bufferand Control

SPEN

DataRecovery

CREN OERR

FERR

RSR RegisterMSb LSb

RX9D RCREG RegisterFIFO

InterruptRCIFRCIE

Data Bus8

Stop Start(8) 7 1 0

RX9

• • •

SPBRGLSPBRGH

BRG16

RCIDL

FOSC÷ n

n+ 1 Multiplier x4 x16 x64

SYNC 1 X 0 0 0

BRGH X 1 1 0 0

BRG16 X 1 0 1 0

Baud Rate Generator

DS41452C_JP - p.234 2013 Microchip Technology Inc.

Page 235: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.1 EUSART 非同期モード

EUSART は、標準の NRZ (Non-Return-to-Zero) 方式でデータを送受信します。NRZ は、データビット「1」を表す VOH マーク状態と、データビット「0」を表すVOLスペース状態の2つのレベルで実装されています。NRZ では、同じ値のデータビットを連続して送信すると出力レベルはそのビットのレベルのままとなり、1ビットを送信するたびにニュートラル レベルには戻りません。NRZ 送信ポートのアイドル状態はマーク状態です。各送信文字は、1 ビットのスタートビットの後に8ビットまたは9ビットのデータビットを送信し、後は必ず 1 つまたは複数のストップビットで終了し

ます。スタートビットは必ずスペースで、ストップビットは必ずマークです。 も一般的なデータ フォーマットは 8 ビットです。1 ビットの送信にかかる時間は、1/(baud レート ) です。内蔵の専用 8 ビット /16 ビットbaud レート ジェネレータを使ってシステム オシレータから標準 baud レート周波数を生成します。baudレートの設定例は、表 22-5 を参照してください。

EUSART は LSb から順に送受信します。EUSART のトランスミッタとレシーバは独立して動作しますが、データ フォーマットと baud レートは共通です。パリティはハードウェア レベルではサポートされていませんが、ソフトウェアで 9 番目のデータビットに格納して実装できます。

22.1.1 EUSART 非同期トランスミッタ

図 22-1 に、EUSART トランスミッタのブロック図を示します。トランスミッタの中心となるのがシリアル送信シフトレジスタ (TSR) で、このレジスタにはソフトウェアから直接はアクセスできません。TSR は、送信バッファである TXREG レジスタからデータを取得します。

22.1.1.1 トランスミッタの有効化

EUSART トランスミッタを非同期モードとして有効化するには、3 つの制御ビットを以下のように設定します。

• TXEN = 1

• SYNC = 0

• SPEN = 1

その他の EUSART 制御ビットは全て既定値のままと仮定します。

TXSTA レジスタの TXEN ビットをセットすると、EUSART のトランスミッタ回路が有効になります。TXSTA レジスタの SYNC ビットをクリアすると、EUSART が非同期モードに設定されます。RCSTA レジスタの SPEN ビットをセットすると EUSART が有効になり、TX/CK I/O ピンが自動的に出力に設定されます。TX/CK ピンをアナログ周辺モジュールと共用している場合、対応する ANSEL ビットをクリアしてアナログ I/O 機能を無効化する必要があります。

22.1.1.2 データの送信

TXREGレジスタに文字を書き込むと送信が開始します。これが 初の文字の場合、または TSR 内に以前の文字が全く残っていない場合、TXREG のデータがただちに TSR レジスタに転送されます。TSR に以前の文字が一部でも残っている場合、その文字のストップビットが送信されるまで新しい文字データは TXREG に保持されます。TXREG に保留中の文字は、ストップビット送信直後の 1 TCY の期間に TSR に転送されます。TXREG から TSR にデータが転送されると、その直後にスタートビット、データビット、ストップビットのシーケンスの送信が開始します。

22.1.1.3 送信データの極性

送信データの極性は、BAUDCON レジスタの SCKPビットで設定します。このビットが既定値「0」の場合、送信アイドル / データビットは正論理です。SCKPビットを「1」に設定すると送信データが反転し、送信アイドル / データビットは負論理になります。SCKPビットで送信データの極性を制御できるのは、非同期モードの場合のみです。同期モードにおける SCKPビットの機能は異なります。セクション 22.5.1.2「クロック極性」を参照してください。

22.1.1.4 送信割り込みフラグ

EUSART トランスミッタが有効で、かつ送信する文字が TXREG に格納されていない場合は常に、PIR1 レジスタのTXIF割り込みフラグビットがセットされます。つまり、TXIF ビットがクリアされるのは、TSR に送信中の文字が残っている時に新しい送信文字がTXREG で待機している場合のみです。TXREG に書き込みを実行しても、TXIF フラグビットはすぐにはクリアされません。TXIF は、書き込み実行から 2 命令サイクル後に有効な値をとります。TXREG への書き込み直後に TXIF をポーリングすると、正しい結果が得られません。TXIF ビットは読み出し専用で、ソフトウェアではセットもクリアもできません。

PIE1 レジスタの TXIE 割り込みイネーブルビットをセットすると、TXIF 割り込みが有効になります。しかし、TXREG が空になると TXIE イネーブルビットの状態に関係なく TXIF フラグビットがセットされます。

データ送信時に割り込みを使うには、引き続きデータを送信する場合のみ TXIE ビットをセットします。送信する 後の文字を TXREG に書き込んだら、TXIE 割り込みイネーブルビットをクリアします。

Note 1: TXENイネーブルビットをセットすると、TXIF トランスミッタ割り込みフラグがセットされます。

2013 Microchip Technology Inc. DS41452C_JP - p.235

Page 236: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

DS41452C_JP - p.236 2013 Microchip Technology Inc.

22.1.1.5 TSR のステータス

TXSTA レジスタの TRMT ビットが TSR レジスタのステータスを示します。このビットは読み出し専用です。TRMT ビットは、TSR レジスタが空になるとセットされ、TXREG から TSR レジスタに文字が転送されるとクリアされます。TRMT ビットは、TSR レジスタから全てのビットがシフト出力されるまでクリアされたままです。このビットには割り込みロジックが接続されていないため、TSR のステータスを調べるにはこのビットをポーリングする必要があります。

22.1.1.6 9 ビット文字の送信

EUSART は、9 ビット文字の送信をサポートしています。TXSTA レジスタの TX9 ビットをセットすると、EUSARTは 1文字の送信につき 9ビットをシフト出力します。TXSTA レジスタの TX9D ビットには、 上位(9 ビット目 ) のデータビットを格納します。9 ビットのデータを送信する場合、まず TX9D データビットに上位データビットを書き込んでから TXREG に下位

8 ビットを書き込む必要があります。TXREG への書き込みが完了すると、ただちに 9 ビット全てのデータがTSR シフトレジスタに転送されます。

複数のレシーバを使う場合、特殊な 9 ビット アドレスモードを使用できます。詳細は、セクション 22.1.2.7「アドレス検出」を参照してください。

22.1.1.7 非同期送信の実行手順 :

1. 必要なbaudレートに合わせて、SPBRGH:SPBRGLレジスタペアと BRGH および BRG16 の両ビットを初期化する ( セクション 22.4「EUSART baudレート ジェネレータ (BRG)」参照 )。

2. SYNC ビットをクリアし、SPEN ビットをセットして非同期シリアルポートを有効にする。

3. 9ビット送信の場合、TX9制御ビットをセットする。レシーバ側でアドレス検出を有効に設定している場合、9 ビット目をセットすると下位 8 ビットはアドレスと見なされる。

4. 送信データの極性を反転する場合、SCKP ビットをセットする。

5. TXEN制御ビットをセットして、送信を有効にする。これにより、TXIF 割り込みビットがセットされる。

6. 割り込みが必要な場合、PIE1 レジスタの TXIF 割り込みイネーブルビットをセットする。INTCONレジスタの GIE および PEIE ビットもセットされていれば、割り込みがただちに発生する。

7. 9 ビット送信を選択した場合、9 ビット目を TX9Dデータビットに格納する。

8. TXREG レジスタに 8 ビットのデータを読み込むと、送信が開始する。

図 22-3: 非同期送信

図 22-4: 非同期送信 ( 連続 )

Note: TSR レジスタはデータメモリにマッピングされていないため、ユーザからはアクセスできません。

Word 1Stop bit

Word 1Transmit Shift Reg.

Start bit bit 0 bit 1 bit 7/8

Write to TXREGWord 1

BRG Output(Shift Clock)

TX/CK

TXIF bit(Transmit Buffer

Reg. Empty Flag)

TRMT bit(Transmit Shift

Reg. Empty Flag)

1 TCY

pin

Transmit Shift Reg.

Write to TXREG

BRG Output(Shift Clock)

TX/CK

TRMT bit(Transmit Shift

Reg. Empty Flag)

Word 1 Word 2

Word 1 Word 2

Start bit Stop bit Start bit

Transmit Shift Reg.

Word 1 Word 2bit 0 bit 1 bit 7/8 bit 0

Note: このタイミング図は連続する 2 回の送信を示しています。

1 TCY

1 TCY

pin

TXIF bit(Transmit Buffer

Reg. Empty Flag)

Page 237: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 22-1: 非同期送信関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

SPBRGL BRG<7:0> 246*

SPBRGH BRG<15:8> 246*

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXREG EUSART 送信データレジスタ 235*

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は非同期送信には使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.237

Page 238: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.1.2 EUSART 非同期レシーバ

通常、非同期モードは RS-232 システムで使います。図 22-2 に、レシーバのブロック図を示します。RX/DTピンで受信したデータでデータ復元ブロックを駆動します。データ復元ブロックの実体は、baud レートの 16倍の速度で動作する高速シフタです。一方、シリアル受信シフトレジスタ (RSR: Receive Shift Register) はビットレートで動作します。文字を構成する 8 ビットまたは 9 ビット全てがシフト入力されると、ただちに 2文字の FIFO (First-In-First-Out) メモリに転送されます。この FIFO バッファリングにより、ソフトウェアでEUSART レシーバのサービスを開始する前に、2 文字まで完全に受信し、3 文字目の受信を開始できます。FIFO と RSR レジスタには、ソフトウェアから直接はアクセスできません。受信データには、RCREG レジスタを介してアクセスします。

22.1.2.1 レシーバの有効化

EUSART レシーバを非同期モードとして設定するには、3 つの制御ビットを以下のように設定します。

• CREN = 1

• SYNC = 0

• SPEN = 1

その他の EUSART 制御ビットは全て既定値のままと仮定します。

RCSTA レジスタの CREN ビットをセットすると、EUSART のレシーバ回路が有効になります。TXSTA レジスタの SYNC ビットをクリアすると、EUSART が非同期モードに設定されます。RCSTA レジスタの SPENビットをセットすると EUSART が有効になります。RX/DT I/O ピンを入力に設定するには、対応する TRISビットをセットする必要があります。

22.1.2.2 データの受信

レシーバのデータ復元回路は、 初のビットの立ち下がりエッジで文字の受信を開始します。 初のビット( スタートビット ) は常にゼロです。データ復元回路はスタートビットの中央まで1/2ビットの期間をカウントし、そのビットがまだゼロかどうかをチェックします。ゼロでない場合、データ復元回路はエラーを生成せずに文字の受信を中止し、スタートビットの立ち下がりエッジの検出を再開します。スタートビット ゼロの検証に成功した場合、データ復元回路は次のビットの中央までさらに 1 ビットの期間をカウントします。次にこのビットを多数決回路でサンプリングし、得られた結果 (「0」または「1」) を RSR にシフト入力します。以後、この動作を繰り返して全てのデータビットをサンプリングし、RSR にシフト入力します。 後の 1ビットの期間を計測して、そのレベルをサンプリングします。これはストップビットで、常に「1」です。ストップビットの位置でデータ復元回路が「0」をサンプリングした場合、この文字に対してフレーミング エラーがセットされます。それ以外の場合、この文字のフレーミング エラーはクリアされます。フレーミングエラーの詳細は、セクション 22.1.2.4「受信フレーミング エラー」 を参照してください。

全てのデータビットとストップビットを受信すると、RSR 内の文字はただちに EUSART 受信 FIFO に転送され、PIR1 レジスタの RCIF 割り込みフラグビットがセットされます。RCREGレジスタを読み出すと、FIFOから先頭の文字が出力されます。

22.1.2.3 受信割り込み

EUSART レシーバが有効で、受信 FIFO 内に読み出していない文字がある場合は常に、PIR1 レジスタのRCIF 割り込みフラグビットがセットされます。RCIF割り込みフラグビットは読み出し専用で、ソフトウェアでセット / クリアできません。

以下の全ビットをセットすると RCIF 割り込みが有効になります。

• PIE1 レジスタの RCIE 割り込みイネーブルビット

• INTCON レジスタの PEIE 周辺機能割り込みイネーブルビット

• INTCON レジスタの GIE グローバル割り込みイネーブルビット

FIFO 内に読み出していない文字が残っている場合、これらの割り込みイネーブルビットの状態に関係なくRCIF 割り込みフラグビットがセットされます。

Note 1: RX/DT 機能がアナログピンに割り当てられている場合、対応する ANSEL ビットをクリアしないとレシーバは動作しません。

Note: 受信 FIFO がオーバーランした場合、オーバーラン条件が解消されるまで、それ以降の文字は受信されません。 オーバーランエラーの詳細は、セクション 22.1.2.5「受信オーバーラン エラー」を参照してください。

DS41452C_JP - p.238 2013 Microchip Technology Inc.

Page 239: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.1.2.4 受信フレーミング エラー

受信 FIFO バッファ内の各文字には、対応するフレーミング エラー ステータス ビットがあります。フレーミング エラーは、ストップビットが予測されるタイミングで正しく検出されなかった場合に発生します。フレーミング エラー ステータスは、RCSTA レジスタのFERR ビットで調べる事ができます。FERR ビットは、受信 FIFO の先頭の読み出していない文字のステータスを示します。従って、RCREG を読み出す前に FERRビットを読み出す必要があります。

FERR ビットは読み出し専用で、受信 FIFO の先頭の読み出していない文字にのみ適用されます。フレーミング エラーが発生しても (FERR = 1)、後続文字の受信を妨げません。FERR ビットをクリアする必要もありません。FIFO バッファから次の文字を読み出すと、FIFO は次の文字に進み、FERR ビットにはその文字のフレーミング エラー ステータスが格納されます。

RCSTA レジスタの SPEN ビットをクリアすると、EUSART はリセットされます。この時 FERR ビットは強制的にクリアされます。RCSTAレジスタのCRENビットをクリアしても FERR ビットには影響しません。フレーミング エラー自体は、割り込みを生成しません。

22.1.2.5 受信オーバーラン エラー

受信FIFOバッファには2文字まで格納できます。FIFOにアクセスする前に 3 文字目のデータを 後まで受信すると、オーバーラン エラーが発生します。この時、RCSTA レジスタの OERR ビットがセットされます。この場合、既に FIFO バッファ内にある文字は読み出す事ができますが、それ以降の文字はオーバーラン エラーが解消されるまで受信できません。オーバーランエラーを解消するには、RCSTA レジスタの CREN ビットをクリアするか、RCSTA レジスタの SPEN ビットをクリアして EUSART をリセットする必要があります。

22.1.2.6 9 ビット文字の受信

EUSARTは9ビット文字の受信をサポートしています。RCSTA レジスタの RX9 ビットがセットされている場合、EUSART は 1 文字の受信につき 9 ビットを RSRにシフト入力します。RCSTA レジスタの RX9D ビットには、受信 FIFO の先頭の読み出していない文字の9 ビット目 ( 上位データビット ) が格納されます。受信FIFOバッファから9ビットデータを読み出す場合、RCREG の下位 8 ビットより前に RX9D データビットを読み出す必要があります。

22.1.2.7 アドレス検出

RS-485 システムのように 1 つの伝送ラインを複数のレシーバが共用している場合、特別なアドレス検出モードを利用できます。RCSTA レジスタの ADDENビットをセットするとアドレス検出が有効になります。

アドレス検出モードを利用するには、9 ビット文字を受信する必要があります。アドレス検出を有効にすると、9 番目のデータビットがセットされた文字のみが受信 FIFO バッファに転送され、これによって RCIF 割り込みビットがセットされます。これ以外の文字は全て無視されます。

アドレス文字を受信したら、そのアドレスが自身のアドレスと一致するかどうかをユーザ ソフトウェアで判定します。アドレスが一致したら、次のストップビットが発生する前にユーザ ソフトウェアでADDENビットをクリアしてアドレス検出を無効にする必要があります。使っているメッセージ プロトコルに基づいてメッセージの終了を検出したら、ユーザ ソフトウェアで ADDEN ビットをセットして、レシーバを再びアドレス検出モードに戻します。

Note: 受信FIFO内の全ての受信文字にフレーミング エラーがある場合、RCREG を繰り返し読み出しても FERR ビットはクリアされません。

2013 Microchip Technology Inc. DS41452C_JP - p.239

Page 240: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

DS41452C_JP - p.240 2013 Microchip Technology Inc.

22.1.2.8 非同期受信の実行手順 :

1. 所定のbaudレートに合わせて、SPBRGH:SPBRGLレジスタペアと BRGH および BRG16 の両ビットを初期化する ( セクション 22.4「EUSART baudレート ジェネレータ (BRG)」参照 )。

2. RX ピンの ANSEL ビットをクリアする( 必要な場合 )。

3. SPEN ビットをセットしてシリアルポートを有効にする。SYNC ビットをクリアして、非同期モードに設定する。

4. 割り込みが必要な場合、PIE1 レジスタの RCIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

5. 9ビット受信を使う場合、RX9ビットをセットする。

6. CREN ビットをセットして、受信を有効にする。

7. RSR から受信バッファに文字が転送されると、RCIF 割り込みフラグビットがセットされる。RCIE 割り込みイネーブルビットもセットしている場合、割り込みが発生する。

8. RCSTA レジスタを読み出してエラーフラグを取得する。9 ビットデータ受信の場合、9 ビット目のデータビットも読み出す。

9. RCREG レジスタを読み出し、受信バッファから受信済みデータの下位 8 ビットを取得する。

10. オーバーランが発生した場合、CREN レシーバ イネーブルビットをクリアしてOERRフラグをクリアする。

22.1.2.9 9 ビットアドレス検出モードの設定

通常、このモードは RS-485 システムで使います。非同期受信でアドレス検出を有効にするには、以下の手順を実行します。

1. 所定のbaudレートに合わせて、SPBRGH:SPBRGLレジスタペアと BRGH および BRG16 の両ビットを初期化する ( セクション 22.4「EUSART baudレート ジェネレータ (BRG)」参照 )。

2. RX ピンの ANSEL ビットをクリアする( 必要な場合 )。

3. SPEN ビットをセットしてシリアルポートを有効にする。SYNC ビットをクリアして、非同期モードに設定する。

4. 割り込みが必要な場合、PIE1 レジスタの RCIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

5. RX9ビットをセットして9ビット受信を有効にする。

6. ADDEN ビットをセットしてアドレス検出を有効にする。

7. CREN ビットをセットして、受信を有効にする。

8. 9 ビット目をセットされた文字が RSR から受信バッファに転送されると、RCIF 割り込みフラグビットがセットされる。RCIE 割り込みイネーブルビットもセットしている場合、割り込みが発生する。

9. RCSTA レジスタを読み出してエラーフラグを取得する。9 ビット目のデータビットは常にセットされる。

10. RCREG レジスタを読み出し、受信バッファから受信済みデータの下位 8 ビットを取得する。これがデバイスのアドレスかどうかをソフトウェアで判定する。

11. オーバーランが発生した場合、CREN レシーバ イネーブルビットをクリアしてOERRフラグをクリアする。

12. デバイスのアドレスと一致した場合、ADDENビットをクリアして全ての受信データを受信バッファに取り込み、割り込みを生成する。

図 22-5: 非同期受信

Startbit bit 7/8bit 1bit 0 bit 7/8 bit 0Stop

bit

Startbit

Startbitbit 7/8 Stop

bitRX/DT pin

RegRcv Buffer Reg.

Rcv Shift

Read RcvBuffer Reg.RCREG

RCIF(Interrupt Flag)

OERR bit

CREN

Word 1RCREG

Word 2RCREG

Stopbit

Note: このタイミング図、RX 入力で 3 ワードを受信しています。3 つ目のワードの後に RCREG ( 受信バッファ ) を読み出しているため、OERR ( オーバーラン エラー ) ビットがセットされています。

RCIDL

Page 241: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 22-2: 非同期受信関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCREG EUSART 受信データレジスタ 238*

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

SPBRGL BRG<7:0> 246*

SPBRGH BRG<15:8> 246*

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は非同期受信には使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.241

Page 242: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.2 非同期モードのクロック精度

内部オシレータ ブロックの出力 (INTOSC)は工場で校正済みです。しかし、INTOSC の周波数は VDD または温度の変化によってドリフトする事があり、これによって非同期baudレートが直接影響を受けます。baudレートクロックを調整するには 2 つの方法がありますが、どちらの場合も何らかの基準となるクロック源が必要です。

1 つは OSCTUNE レジスタを使って INTOSC 出力を調整する方法で、通常はこちらの方法を推奨します。OSCTUNE レジスタの値を調整すると、システムクロック源を微調整できます。詳細は、セクション 5.2.2「内部クロック源」を参照してください。

もう 1 つは、baud レート ジェネレータの値を調整する方法です。これは、自動 baud レート検出機能によって自動的に実行できます ( セクション 22.4.1「自動baud レート検出」参照 )。ただし、baud レート ジェネレータを調整して周辺クロック周波数の経時変化を補償する場合、分解能が不十分な事があります。

DS41452C_JP - p.242 2013 Microchip Technology Inc.

Page 243: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.3 レジスタ定義 : EUSART 制御

レジスタ 22-1: TXSTA: 送信ステータス / 制御レジスタ

R/W-/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R-1/1 R/W-0/0

CSRC TX9 TXEN(1) SYNC SENDB BRGH TRMT TX9D

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 CSRC: クロック源選択ビット

非同期モードの場合 : ドントケア

同期モードの場合 : 1 = マスタモード ( クロックを内部の BRG から生成する )0 = スレーブモード ( 外部クロック源を使う )

bit 6 TX9: 9 ビット送信イネーブルビット

1 = 9 ビット送信を選択する0 = 8 ビット送信を選択する

bit 5 TXEN: 送信イネーブルビット (1)

1 = 送信を有効にする0 = 送信を無効にする

bit 4 SYNC: EUSART モード選択ビット 1 = 同期モード 0 = 非同期モード

bit 3 SENDB: ブレーク文字送信ビット

非同期モードの場合 :1 = 次の送信で同期ブレークを送信する ( 完了時にハードウェアでクリアされる )0 = 同期ブレークの送信が完了している同期モードの場合 :ドントケア

bit 2 BRGH: 高 baud レート選択ビット

非同期モードの場合 : 1 = ハイスピード 0 = ロースピード同期モードの場合 : このモードでは使わない

bit 1 TRMT: 送信シフトレジスタ ステータスビット

1 = TSR が空である 0 = TSR がフルである

bit 0 TX9D: 送信データの 9 番目のビット

アドレス / データビットまたはパリティビットとして使用可能

Note 1: 同期モードでは、SREN/CREN の設定が TXEN よりも優先されます。

2013 Microchip Technology Inc. DS41452C_JP - p.243

Page 244: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 22-2: RCSTA: 受信ステータス / 制御レジスタ

R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R/W-0/0 R-0/0 R-0/0 R-0/0

SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 SPEN: シリアル ポート イネーブルビット

1 = シリアルポートを有効にする (RX/DT および TX/CK ピンをシリアルポート ピンに設定する )0 = シリアルポートを無効にする ( リセットに保持 )

bit 6 RX9: 9 ビット受信イネーブルビット

1 = 9 ビット受信を選択する0 = 8 ビット受信を選択する

bit 5 SREN: シングル受信イネーブルビット 非同期モードの場合 : ドントケア同期モード - マスタの場合 :1 = シングル受信を有効にする0 = シングル受信を無効にするこのビットは受信完了後にクリアされます。同期モード - スレーブの場合 :ドントケア

bit 4 CREN: 連続受信イネーブルビット

非同期モードの場合 :1 = レシーバを有効にする0 = レシーバを無効にする同期モードの場合 : 1 = イネーブルビットCRENがクリアされるまで連続受信を有効にする (CRENの設定がSRENに優

先される )0 = 連続受信を無効にする

bit 3 ADDEN: アドレス検出イネーブルビット

非同期モード 9 ビット (RX9 = 1) の場合 :1 = アドレス検出、割り込みを有効にする。RSR<8> がセットされたら受信バッファに読み込む0 = アドレス検出を無効にする。全てのバイトが受信され、9 ビット目はパリティビットとして使える非同期モード 8 ビット (RX9 = 0) の場合 :ドントケア

bit 2 FERR: フレーミング エラービット

1 = フレーミング エラーあり (RCREGレジスタを読み出すと更新され、次の有効なバイトを受信する )0 =フレーミング エラーなし

bit 1 OERR: オーバーラン エラービット

1 = オーバーラン エラーあり (CREN ビットをクリアするとクリアされる ) 0 = オーバーラン エラーなし

bit 0 RX9D: 受信データの 9 番目のビット

アドレス / データビットまたはパリティビットとして使える。ユーザ ファームウェアによる計算が必要である

DS41452C_JP - p.244 2013 Microchip Technology Inc.

Page 245: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

レジスタ 22-3: BAUDCON: BAUD レート制御レジスタ

R-0/0 R-1/1 U-0 R/W-0/0 R/W-0/0 U-0 R/W-0/0 R/W-0/0

ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

u = ビットは不変 x = ビットは未知 -n/n = POR および BOR 時の値 / その他の全てのリセット時の値

「1」 = ビットはセット 「0」 = ビットはクリア

bit 7 ABDOVF: 自動 baud レート検出オーバーフロー ビット

非同期モードの場合 :1 = 自動 baud レートタイマがオーバーフローした0 = 自動 baud レートタイマはオーバーフローしていない同期モードの場合 :ドントケア

bit 6 RCIDL: 受信アイドルフラグ ビット

非同期モードの場合 :1 = レシーバはアイドル状態である0 = スタートビットが受信され、レシーバが受信中である同期モードの場合 :ドントケア

bit 5 未実装 : 「0」として読み出し

bit 4 SCKP: 同期クロック極性選択ビット

非同期モードの場合 :1 = TX/CK ピンへ反転データを送信する0 = TX/CK ピンへ非反転データを送信する同期モードの場合 :1 = データはクロックの立ち上がりエッジを参照する0 = データはクロックの立ち下がりエッジを参照する

bit 3 BRG16: 16 ビット baud レート ジェネレータ ビット

1 = 16 ビット baud レート ジェネレータを使う0 = 8 ビット baud レート ジェネレータを使う

bit 2 未実装 : 「0」として読み出し

bit 1 WUE: 復帰イネーブルビット

非同期モードの場合 :1 = レシーバは立ち下がりエッジの待機中である。文字は受信されず、エッジ検出後 RCIF ビットが

セットされる。RCIF がセットされると WUE は自動的にクリアされる0 = レシーバは通常動作中である同期モードの場合 :ドントケア

bit 0 ABDEN: 自動 baud レート検出イネーブルビット

非同期モードの場合 :1 = 自動 baud レート検出モードを有効にする ( 自動 baud レート検出が完了するとクリアされる )0 = 自動 baud レート検出モードを無効にする同期モードの場合 :ドントケア

2013 Microchip Technology Inc. DS41452C_JP - p.245

Page 246: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.4 EUSART baud レート ジェネレータ(BRG)

baud レート ジェネレータ (BRG) は、EUSART の非同期および同期モードの両方をサポートするための専用の 8 ビットまたは 16 ビットタイマです。既定値では、BRG は 8 ビットモードで動作します。BAUDCON レジスタの BRG16 ビットをセットすると、16 ビットモードを選択できます。

baud レートタイマはフリーランニングで、その周期はSPBRGH:SPBRGL レジスタペアで決定します。非同期モードでは、TXSTA レジスタの BRGH ビットとBAUDCON レジスタの BRG16 ビットの両方で baudレート周期の乗数が決まります。同期モードでは、BRGH ビットは無視されます。

表 22-3に、baudレートの計算式を示します。例 22-1に、baud レートと baud レート誤差の計算例を示します。

参考までに、各種非同期モードにおける代表的な baudレートとbaudレート誤差の計算値を表 22-3にまとめます。高 baud レート (BRGH = 1) または 16 ビットBRG (BRG16 = 1) を使うと、baud レート誤差の低減に効果があります。16 ビット BRG モードを使うと、オシレータ周波数が高い場合でも低速の baud レートが得られます。

SPBRGH:SPBRGL レジスタペアに新しい値を書き込むと、BRG タイマがリセット ( クリア ) されます。これにより、BRG はタイマ オーバーフローを待たずに新しい baud レートを出力できます。

レシーバの受信動作中にシステムクロックを変更すると、レシーバエラーまたはデータの損失が発生します。この問題を防ぐには、システムクロックを変更する前に RCIDL ビットのステータスを調べて、受信動作がアイドル状態である事を確認してください。

例 22-1: BAUD レート誤差の計算

FOSC = 16 MHz、所定の baud レートが 9600、非同期モード、8 ビット BRG のデバイスの場合 :

SPBRGH:SPBRGL について解くと :

X

FOSC

Desired Baud Rate---------------------------------------------

64--------------------------------------------- 1–=

Desired Baud Rate FOSC

64 [SPBRGH:SPBRGL] 1+ ------------------------------------------------------------------------=

160000009600

------------------------

64------------------------ 1–=

25.042 25= =

Calculated Baud Rate 1600000064 25 1+ ---------------------------=

9615=

Error Calc. Baud Rate Desired Baud Rate –Desired Baud Rate

--------------------------------------------------------------------------------------------=

9615 9600– 9600

---------------------------------- 0.16%= =

DS41452C_JP - p.246 2013 Microchip Technology Inc.

Page 247: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 22-3: BAUD レートの計算式

表 22-4: BAUD レート ジェネレータ関連のレジスタのまとめ

コンフィグレーション ビットBRG/EUSART モード baud レートの計算式

SYNC BRG16 BRGH

0 0 0 8 ビット / 非同期 FOSC/[64 (n+1)]

0 0 1 8 ビット / 非同期FOSC/[16 (n+1)]

0 1 0 16 ビット / 非同期

0 1 1 16 ビット / 非同期

FOSC/[4 (n+1)]1 0 x 8 ビット / 同期

1 1 x 16 ビット / 同期

凡例 : x = ドントケア、n = SPBRGH:SPBRGL レジスタペアの値

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

SPBRGL BRG<7:0> 246*

SPBRGH BRG<15:8> 246*

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は baud レート ジェネレータでは使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.247

Page 248: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 22-5: 各種非同期モードにおける BAUD レート

baudレート

SYNC = 0、BRGH = 0、BRG16 = 0

FOSC = 20.000 MHz FOSC = 18.432 MHz FOSC = 16.000 MHz FOSC = 11.0592 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 - - - - - - - - - - - -

1200 1221 1.73 255 1200 0.00 239 1202 0.16 207 1200 0.00 143

2400 2404 0.16 129 2400 0.00 119 2404 0.16 103 2400 0.00 71

9600 9470 -1.36 32 9600 0.00 29 9615 0.16 25 9600 0.00 17

10417 10417 0.00 29 10286 -1.26 27 10417 0.00 23 10165 -2.42 16

19.2k 19.53k 1.73 15 19.20k 0.00 14 19.23k 0.16 12 19.20k 0.00 8

57.6k - - - 57.60k 0.00 7 - - - 57.60k 0.00 2

115.2k - - - - - - - - - - - -

baudレート

SYNC = 0、BRGH = 0、BRG16 = 0

FOSC = 8.000 MHz FOSC = 4.000 MHz FOSC = 3.6864 MHz FOSC = 1.000 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 - - - 300 0.16 207 300 0.00 191 300 0.16 51

1200 1202 0.16 103 1202 0.16 51 1200 0.00 47 1202 0.16 12

2400 2404 0.16 51 2404 0.16 25 2400 0.00 23 - - -

9600 9615 0.16 12 - - - 9600 0.00 5 - - -

10417 10417 0.00 11 10417 0.00 5 - - - - - -

19.2k - - - - - - 19.20k 0.00 2 - - -

57.6k - - - - - - 57.60k 0.00 0 - - -

115.2k - - - - - - - - - - - -

baudレート

SYNC = 0、BRGH = 1、BRG16 = 0

FOSC = 20.000 MHz FOSC = 18.432 MHz FOSC = 16.000 MHz FOSC = 11.0592 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 - - - - - - - - - - - -

1200 - - - - - - - - - - - -

2400 - - - - - - - - - - - -

9600 9615 0.16 129 9600 0.00 119 9615 0.16 103 9600 0.00 71

10417 10417 0.00 119 10378 -0.37 110 10417 0.00 95 10473 0.53 65

19.2k 19.23k 0.16 64 19.20k 0.00 59 19.23k 0.16 51 19.20k 0.00 35

57.6k 56.82k -1.36 21 57.60k 0.00 19 58.82k 2.12 16 57.60k 0.00 11

115.2k 113.64k -1.36 10 115.2k 0.00 9 111k -3.55 8 115.2k 0.00 5

DS41452C_JP - p.248 2013 Microchip Technology Inc.

Page 249: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

baudレート

SYNC = 0、BRGH = 1、BRG16 = 0

FOSC = 8.000 MHz FOSC = 4.000 MHz FOSC = 3.6864 MHz FOSC = 1.000 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 - - - - - - - - - 300 0.16 207

1200 - - - 1202 0.16 207 1200 0.00 191 1202 0.16 51

2400 2404 0.16 207 2404 0.16 103 2400 0.00 95 2404 0.16 25

9600 9615 0.16 51 9615 0.16 25 9600 0.00 23 - - -

10417 10417 0.00 47 10417 0.00 23 10473 0.53 21 10417 0.00 5

19.2k 19231 0.16 25 19.23k 0.16 12 19.2k 0.00 11 - - -

57.6k 55556 -3.55 8 - - - 57.60k 0.00 3 - - -

115.2k - - - - - - 115.2k 0.00 1 - - -

baudレート

SYNC = 0、BRGH = 0、BRG16 = 1

FOSC = 20.000 MHz FOSC = 18.432 MHz FOSC = 16.000 MHz FOSC = 11.0592 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 300.0 -0.01 4166 300.0 0.00 3839 300.03 0.01 3332 300.0 0.00 2303

1200 1200 -0.03 1041 1200 0.00 959 1200.5 0.04 832 1200 0.00 575

2400 2399 -0.03 520 2400 0.00 479 2398 -0.08 416 2400 0.00 287

9600 9615 0.16 129 9600 0.00 119 9615 0.16 103 9600 0.00 71

10417 10417 0.00 119 10378 -0.37 110 10417 0.00 95 10473 0.53 65

19.2k 19.23k 0.16 64 19.20k 0.00 59 19.23k 0.16 51 19.20k 0.00 35

57.6k 56.818 -1.36 21 57.60k 0.00 19 58.82k 2.12 16 57.60k 0.00 11

115.2k 113.636 -1.36 10 115.2k 0.00 9 111.11k -3.55 8 115.2k 0.00 5

baudレート

SYNC = 0、BRGH = 0、BRG16 = 1

FOSC = 8.000 MHz FOSC = 4.000 MHz FOSC = 3.6864 MHz FOSC = 1.000 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 299.9 -0.02 1666 300.1 0.04 832 300.0 0.00 767 300.5 0.16 207

1200 1199 -0.08 416 1202 0.16 207 1200 0.00 191 1202 0.16 51

2400 2404 0.16 207 2404 0.16 103 2400 0.00 95 2404 0.16 25

9600 9615 0.16 51 9615 0.16 25 9600 0.00 23 - - -

10417 10417 0.00 47 10417 0.00 23 10473 0.53 21 10417 0.00 5

19.2k 19.23k 0.16 25 19.23k 0.16 12 19.20k 0.00 11 - - -

57.6k 55556 -3.55 8 - - - 57.60k 0.00 3 - - -

115.2k - - - - - - 115.2k 0.00 1 - - -

表 22-5: 各種非同期モードにおける BAUD レート ( 続き )

2013 Microchip Technology Inc. DS41452C_JP - p.249

Page 250: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

baudレート

SYNC = 0、BRGH = 1、BRG16 = 1または SYNC = 1、BRG16 = 1

FOSC = 20.000 MHz FOSC = 18.432 MHz FOSC = 16.000 MHz FOSC = 11.0592 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 300.0 0.00 16665 300.0 0.00 15359 300.0 0.00 13332 300.0 0.00 9215

1200 1200 -0.01 4166 1200 0.00 3839 1200.1 0.01 3332 1200 0.00 2303

2400 2400 0.02 2082 2400 0.00 1919 2399.5 -0.02 1666 2400 0.00 1151

9600 9597 -0.03 520 9600 0.00 479 9592 -0.08 416 9600 0.00 287

10417 10417 0.00 479 10425 0.08 441 10417 0.00 383 10433 0.16 264

19.2k 19.23k 0.16 259 19.20k 0.00 239 19.23k 0.16 207 19.20k 0.00 143

57.6k 57.47k -0.22 86 57.60k 0.00 79 57.97k 0.64 68 57.60k 0.00 47

115.2k 116.3k 0.94 42 115.2k 0.00 39 114.29k -0.79 34 115.2k 0.00 23

baudレート

SYNC = 0、BRGH = 1、BRG16 = 1または SYNC = 1、BRG16 = 1

FOSC = 8.000 MHz FOSC = 4.000 MHz FOSC = 3.6864 MHz FOSC = 1.000 MHz

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

実際の

レート

%誤差

SPBRGの値

(10 進数 )

300 300.0 0.00 6666 300.0 0.01 3332 300.0 0.00 3071 300.1 0.04 832

1200 1200 -0.02 1666 1200 0.04 832 1200 0.00 767 1202 0.16 207

2400 2401 0.04 832 2398 0.08 416 2400 0.00 383 2404 0.16 103

9600 9615 0.16 207 9615 0.16 103 9600 0.00 95 9615 0.16 25

10417 10417 0 191 10417 0.00 95 10473 0.53 87 10417 0.00 23

19.2k 19.23k 0.16 103 19.23k 0.16 51 19.20k 0.00 47 19.23k 0.16 12

57.6k 57.14k -0.79 34 58.82k 2.12 16 57.60k 0.00 15 - - -

115.2k 117.6k 2.12 16 111k -3.55 8 115.2k 0.00 7 - - -

表 22-5: 各種非同期モードにおける BAUD レート ( 続き )

DS41452C_JP - p.250 2013 Microchip Technology Inc.

Page 251: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.4.1 自動 baud レート検出

EUSART モジュールは baud レートの自動検出 / 校正をサポートしています。

自動 baud レート検出 (ABD) モードでは、BRG へのクロックが逆方向です。BRG が入力 RX 信号にクロックを供給するのではなく、RX 信号が BRG のタイミングを生成します。baud レート ジェネレータを使って、LIN バスの同期文字である 55h (ASCII「U」) の受信周期を計測します。この文字は、ストップビットのエッジを含め5つの立ち上がりエッジがあるのが特長です。

BAUDCON レジスタの ABDEN ビットをセットすると、自動baudレート校正シーケンスが開始します(図 22-6)。ABD シーケンスの実行中、EUSART ステートマシンはアイドルのまま保持されます。スタートビット直後の受信ラインの 初の立ち上がりエッジで、SPBRGが BRG カウンタクロックを使ってカウントを開始します ( 表 22-6 参照 )。5 つ目の立ち上がりエッジは、8番目のビット周期の 後に RX ピンで発生します。この時点で、SPBRGH:SPBRGL レジスタペア内には正しい BRG 周期を累計した値が格納されており、ABDEN ビットは自動的にクリアされ、RCIF 割り込みフラグがセットされます。RCIF 割り込みをクリアするには、RCREG レジスタの値を読み出す必要があります。RCREG の内容は破棄します。SPBRGH レジスタを使わないモードで校正する場合、SPBRGH レジスタの 00h をユーザがチェックすれば、SPBRGL レジスタがオーバーフローしていない事を確認できます。

BRG の自動 baud レートクロックは、BRG16 ビットと BRGH ビットによって決まります ( 表 22-6 参照 )。ABD モードでは、SPBRGH および SPBRGL の両レジスタはBRG16ビットの設定に関係なく16ビットカウンタとして使います。baud レート周期の校正時、SPBRGH および SPBRGL レジスタは BRG ベースク

ロックの 1/8 のレートで動作します。こうして得られたバイトの計測値は、フルスピードでのクロック時の平均ビット時間です。

表 22-6: BRG カウンタのクロックレート

図 22-6: 自動 baud レート校正

Note 1: ABDENビットとWUEビットを両方セットした場合、自動 baud レート検出はブレーク文字直後のバイトで実行されます( セクション 22.4.3「ブレークによる自動復帰」参照 )。

2: 入力文字のbaudレートが、選択したBRGクロック源のレンジ内であるかどうかの判断は、ユーザに委ねられています。オシレータ周波数と EUSART の baud レートの組み合わせによっては、使えないものもあります。

3: 自動baudレートプロセスでは、自動baudレートカウンタが「1」からカウントを開始します。 大限の精度を確保するために、自動 baud レートシーケンスの完了時にSPBRGH:SPBRGLレジスタペアから1を減算してください。

BRG16 BRGH BRG ベースクロック

BRG ABDクロック

0 0 FOSC/64 FOSC/512

0 1 FOSC/16 FOSC/128

1 0 FOSC/16 FOSC/128

1 1 FOSC/4 FOSC/32

Note: ABD シーケンスでは、SPBRGL およびSPBRGHレジスタをBRG16ビットの設定に関係なく 16 ビットカウンタとして使います。

BRG Value

RX pin

ABDEN bit

RCIF bit

bit 0 bit 1

(Interrupt)

ReadRCREG

BRG Clock

Start

Auto ClearedSet by User

XXXXh 0000h

Edge #1

bit 2 bit 3Edge #2

bit 4 bit 5Edge #3

bit 6 bit 7Edge #4

Stop bit

Edge #5

001Ch

Note 1: ABD シーケンスを実行するには、EUSART モジュールを非同期モードに設定する必要があります。

SPBRGL XXh 1Ch

SPBRGH XXh 00h

RCIDL

2013 Microchip Technology Inc. DS41452C_JP - p.251

Page 252: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.4.2 自動 baud レートのオーバーフロー

自動 baud レート検出時、RX ピンで 5 つ目の立ち上がりエッジを検出する前に baud レートカウントがオーバーフローすると、BAUDCON レジスタの ABDOVFビットがセットされます。ABDOVF ビットは、カウンタの値が SPBRGH:SPBRGL レジスタペアの 16 ビットに格納できる 大カウントを超えた事を示します。ABDOVF がセットされた後も、カウンタは RX ピンで5 つ目の立ち上がりエッジを検出するまでカウントを継続します。RX ピンで 5 つ目のエッジを検出すると、ハードウェアが RCIF 割り込みフラグをセットし、BAUDCONレジスタのABDENビットをクリアします。その後、RCREG レジスタを読み出すと RCIF フラグをクリアできます。BAUDCON レジスタの ABDOVFフラグは、ソフトウェアで直接クリアできます。

RCIFフラグがセットされる前に自動baudレート検出を終了するには、ABDEN ビットをクリアしてからBAUDCONレジスタのABDOVFビットをクリアします。ABDEN ビットを先にクリアしないと、ABDOVF ビットはセットされたままです。

22.4.3 ブレークによる自動復帰

スリープ中、EUSARTへのクロックは全て停止されます。このため、baud レート ジェネレータは非アクティブ状態で、文字を正しく受信できません。自動復帰機能を利用すると、RX/DT ラインのアクティビティによってコントローラを復帰させられます。この機能は非同期モードでのみ使用できます。

自動復帰機能を有効にするには、BAUDCON レジスタの WUE ビットをセットします。このビットをセットすると RX/DT での通常の受信シーケンスは無効となり、EUSART はアイドル状態のまま、CPU のモードとは関係なく復帰イベントの発生を監視します。復帰イベントは、RX/DT ラインの High から Low への遷移です ( これは、LIN プロトコルの同期ブレークまたは復帰信号文字の開始に相当します )。

復帰イベントが発生すると同時に、EUSART モジュールは RCIF 割り込みを生成します。この割り込みは、CPUが通常の動作モードの場合はQクロックに同期して発生し ( 図 22-7)、スリープ中はデバイスが非同期に発生します (図 22-8)。RCREGレジスタを読み出すと、割り込み条件がクリアされます。

ブレークの 後で RX 信号が Low から High へ遷移すると、WUE ビットは自動的にクリアされます。これにより、ユーザはブレークイベントの終了を知る事ができます。この時点で EUSART モジュールはアイドルになり、次の文字の受信を待ちます。

22.4.3.1 注意事項

ブレーク文字

復帰イベント時の文字エラーまたは文字の断片化を防止するため、復帰文字は全てゼロにする必要があります。

復帰を有効にすると、データストリームの Low 時間とは関係なくこの機能が働きます。WUE ビットをセットした場合にゼロ以外の有効な文字を受信すると、スタートビットから 初の立ち上がりエッジまでのLow時間が復帰イベントとして解釈されます。文字の残りのビットは断片化した文字として受信され、後続の文字がフレーミング エラーまたはオーバーラン エラーとなる事があります。

従って、 初に送信する文字は全て「0」である必要があります。この状態を 10 ビット以上の期間持続する必要があります。LIN バスでは 13 ビットの期間を推奨しますが、標準の RS-232 デバイスでは任意のビット期間でかまいません。

オシレータの起動時間

LP、XT、HS モード等、起動時間の長いオシレータを使うアプリケーションでは特に、オシレータの起動時間を考慮する必要があります。十分な長さの同期ブレーク文字 ( または復帰信号 ) を送信したら、選択したオシレータが起動するまで十分な間隔を置いてからEUSART を適切に初期化するようにしてください。

WUE ビット

復帰イベントが発生すると、RCIF ビットのセットによって受信割り込みが発生します。WUE ビットは、RX/DTの立ち上がりエッジでハードウェアによってクリアされます。その後、RCREG レジスタを読み出してその内容を破棄すると、割り込み条件はソフトウェアによってクリアされます。

実際のデータが失われないようにするには、WUEビットをセットする前に RCIDL ビットを調べて、受信動作中でない事を確認します。受信動作中でなければ、スリープに移行する直前に WUE ビットをセットできます。

DS41452C_JP - p.252 2013 Microchip Technology Inc.

Page 253: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 22-7: 通常動作時の自動復帰ビット (WUE) のタイミング

図 22-8: スリープ中の自動復帰ビット (WUE) のタイミング

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4

OSC1

WUE bit

RX/DT Line

RCIF

Bit set by user Auto Cleared

Cleared due to User Read of RCREG

Note 1: WUE ビットがセットされている間、EUSART はアイドルのままです。

Q1Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1Q2Q3 Q4 Q1Q2 Q3Q4 Q1 Q2 Q3 Q4 Q1Q2 Q3 Q4

OSC1

WUE bit

RX/DT Line

RCIF

Bit Set by User Auto Cleared

Cleared due to User Read of RCREGSleep Command Executed

Note 1

Note 1: 復帰イベントの際にオシレータの起動に長い時間がかかる場合、stposc 信号がまだアクティブな間に WUE ビットが自動的にクリアされる事があります。このシーケンスは Q クロックの有無に影響されません。

2: WUE ビットがセットされている間、EUSART はアイドルのままです。

Sleep Ends

2013 Microchip Technology Inc. DS41452C_JP - p.253

Page 254: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.4.4 ブレーク文字のシーケンス

EUSART モジュールには、LIN バス規格で必要とされる特殊なブレーク文字シーケンスを送信する機能があります。ブレーク文字は、スタートビット、12 ビットの「0」、ストップビットの順で構成されます。

ブレーク文字を送信するには、まず TXSTA レジスタの SENDB および TXEN ビットをセットします。次に、TXREG に書き込みを実行するとブレーク文字の送信が開始します。TXREG に書き込んだデータの値は無視され、全て「0」として送信されます。

対応するストップビットの送信後、SENDB ビットはハードウェアによって自動的にリセットされます。このため、ブレーク文字の次に送信するバイト ( 通常、LIN規格の場合は同期文字 )を送信FIFOにあらかじめ読み込んでおく事ができます。

TXSTA レジスタの TRMT ビットは、通常の送信時と同様に、送信動作がアクティブかアイドルかを示します。図 22-9 に、ブレーク文字送信シーケンスのタイミングを示します。

22.4.4.1 ブレークおよび同期送信シーケンス

以下のシーケンスにより、メッセージ フレームヘッダ( ブレーク文字 + 自動 baud レート同期バイト ) が開始します。このシーケンスは、LIN バスマスタの代表的なものです。

1. EUSART を所定のモードに設定する。

2. TXEN および SENDB ビットをセットしてブレーク シーケンスを有効にする。

3. TXREG にダミー文字を読み込んで送信を開始する ( 読み込んだ値は無視される )。

4. TXREG に「55h」を書き込んで送信 FIFO バッファに同期文字を読み込む。

5. ブレークの送信が完了したら、SENDB ビットがハードウェアによってリセットされ、同期文字が送信される。

TXREG が空になった事が TXIF によって示されたら、次のデータバイトをTXREGに書き込む事ができます。

22.4.5 ブレーク文字の受信

EUSART モジュールには、ブレーク文字の受信方法が2 通りあります。

1 つ目は、RCSTA レジスタの FERR ビットと RCREGが示す受信データを使ってブレーク文字を検出する方法です。baud レート ジェネレータは、予測 baud レートに初期化されているものと仮定します。

以下の条件が揃うと、ブレーク文字が受信されたと判断できます。

• RCIF ビットはセット

• FERR ビットはセット

• RCREG = 00h

もう 1 つは、自動復帰機能 ( セクション 22.4.3「ブレークによる自動復帰」参照 ) を使う方法です。自動復帰機能を有効にすると、EUSART は RX/DT の次の 2 つの遷移をサンプリングし、RCIF 割り込みを生成して、次のデータバイトとその後の割り込みを受信します。

通常は、ブレーク文字の後に自動 baud レート検出機能を有効にします。どちらの方法でも、ユーザはEUSART をスリープに移行させる前に BAUDCON レジスタの ABDEN ビットをセットできます。

図 22-9: ブレーク文字シーケンスの送信

Write to TXREGDummy Write

BRG Output(Shift Clock)

Start bit bit 0 bit 1 bit 11 Stop bit

Break

TXIF bit(Transmit

Interrupt Flag)

TX (pin)

TRMT bit(Transmit Shift

Empty Flag)

SENDB(send Break

control bit)

SENDB Sampled Here Auto Cleared

DS41452C_JP - p.254 2013 Microchip Technology Inc.

Page 255: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.5 EUSART 同期モード

一般に、同期シリアル通信は 1 つのマスタと 1 つまたは複数のスレーブで構成されるシステムで使います。マスタデバイスは baud レート生成に必要な回路を持ち、システム内の全てのデバイスにクロックを供給します。スレーブデバイスは内部クロック生成回路を持たず、マスタから供給されるクロックを使います。

同期モードでは、双方向データラインとクロックラインの 2 本の信号線を使います。スレーブは、マスタから供給される外部クロックを使って送受信シフトレジスタにシリアルデータをシフト入出力します。データラインは双方向であるため、同期動作は半二重のみです。半二重では、マスタとスレーブのどちらのデバイスからもデータを送受信できますが、両方が同時に送信する事はできません。EUSART モジュールはマスタデバイスとしてもスレーブデバイスとしても動作が可能です。

同期送信では、スタートビットとストップビットを使いません。

22.5.1 同期マスタモード

EUSART モジュールを同期マスタモードで動作させるには、以下のようにビットを設定します。

• SYNC = 1

• CSRC = 1

• SREN = 0 ( 送信の場合 )、SREN = 1 ( 受信の場合 )

• CREN = 0 ( 送信の場合 )、CREN = 1 ( 受信の場合 )• SPEN = 1

TXSTA レジスタの SYNC ビットをセットすると、デバイスが同期モードに設定されます。TXSTA レジスタのCSRC ビットをセットすると、デバイスがマスタに設定されます。RCSTA レジスタの SREN および CRENビットをクリアするとデバイスが送信モードに設定され、それ以外では受信モードに設定されます。RCSTAレジスタのSPENビットをセットするとEUSARTが有効になります。

22.5.1.1 マスタクロック

同期データ転送には、データと同期した専用のクロックラインを使います。マスタとして設定されたデバイスが、TX/CK ラインを介してクロックを送信します。TX/CK ピンの出力ドライバは、EUSART を同期送受信モードに設定すると自動的に有効になります。シリアルデータ ビットは各クロックの後側のエッジで確実に有効になるように、そのクロックの前側のエッジで遷移します。各データビットに対して 1 クロックサイクルが生成されます。データビットの数だけクロックサイクルが生成されます。

22.5.1.2 クロック極性

Microwire との互換性を持たせるために、クロック極性を選択できます。クロック極性は、BAUDCON レジスタの SCKP ビットで選択します。SCKP ビットをセットすると、High がクロックのアイドル状態になります。SCKP ビットをセットすると、各クロックの立ち下がりエッジでデータが変化します。SCKP ビット

をクリアすると、Low がクロックのアイドル状態になります。SCKP ビットをクリアすると、各クロックの立ち上がりエッジでデータが変化します。

22.5.1.3 同期マスタ送信

データはデバイスの RX/DT ピンから送信されます。EUSART を同期マスタ送信モードに設定すると、RX/DT ピンと TX/DT ピンの出力ドライバは自動的に有効になります。

TXREGレジスタに文字を書き込むと送信が開始します。TSR 内に以前の文字が一部でも残っている場合、その文字の 後のビットが送信されるまで新しい文字データは TXREG に保持されます。初めて文字を書き込む場合、または以前に書き込んだ文字が全て送信済みでTSR が空の場合、TXREG レジスタに書き込んだデータがただちに TSR レジスタへ転送されます。TXREGから TSR にデータが転送されたら、その直後に文字の送信が開始します。

各データビットはマスタクロックの前側のエッジで変化し、次のクロックの前側のエッジまで有効です。

22.5.1.4 同期マスタ送信の実行手順 :

1. 所定のbaudレートに合わせて、SPBRGH:SPBRGLレジスタペアと BRGH および BRG16 の両ビットを初期化する ( セクション 22.4「EUSART baudレート ジェネレータ (BRG)」参照 )。

2. SYNC、SPEN、CSRC ビットをセットして同期マスタ シリアルポートを有効にする。

3. SRENおよびCRENビットをクリアして受信モードを無効にする。

4. TXEN ビットをセットして、送信モードを有効にする。

5. 9 ビット送信の場合、TX9 ビットをセットする。

6. 割り込みが必要な場合、PIE1 レジスタの TXIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

7. 9 ビット送信を選択した場合、TX9D ビットに 9ビット目を読み込む。

8. TXREG レジスタにデータを読み込むと送信が開始する。

Note: TSR レジスタはデータメモリにマッピングされていないため、ユーザからはアクセスできません。

2013 Microchip Technology Inc. DS41452C_JP - p.255

Page 256: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 22-10: 同期送信

図 22-11: 同期送信 (TXEN を利用 )

表 22-7: 同期マスタ送信関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ

内容記載

ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

SPBRGL BRG<7:0> 246*

SPBRGH BRG<15:8> 246*

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXREG EUSART 送信データレジスタ 235*

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は同期マスタ送信では使いません。

* このページにはレジスタの情報を記載しています。

bit 0 bit 1 bit 7

Word 1

bit 2 bit 0 bit 1 bit 7RX/DT

Write toTXREG Reg

TXIF bit(Interrupt Flag)

TXEN bit‘1’ ‘1’

Word 2

TRMT bit

Write Word 1 Write Word 2

Note: 同期マスタモード、SPBRGL = 0、2 つの 8 ビットワードの連続送信です。

pin

TX/CK pin

TX/CK pin

(SCKP = 0)

(SCKP = 1)

RX/DT pin

TX/CK pin

Write toTXREG reg

TXIF bit

TRMT bit

bit 0 bit 1 bit 2 bit 6 bit 7

TXEN bit

DS41452C_JP - p.256 2013 Microchip Technology Inc.

Page 257: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.5.1.5 同期マスタ受信

データは RX/DT ピンで受信します。EUSART を同期マスタ受信モードに設定すると、RX/DT ピンの出力ドライバは自動的に無効になります。

同期モードでは、シングル受信イネーブルビット(RCSTA レジスタの SREN ビット ) または連続受信イネーブルビット (RCSTA レジスタの CREN ビット ) のどちらかをセットすると受信が有効になります。

SREN をセットして CREN をクリアすると、1 文字のデータビットの数だけクロックサイクルが生成されます。1 文字の受信が完了すると SREN ビットは自動的にクリアされます。CREN をセットすると、CRENをクリアするまでクロックが連続生成されます。文字の受信中に CREN をクリアすると、CK クロックがただちに停止し、部分的に受信した文字は破棄されます。SREN と CREN を両方セットすると、 初の文字の受信が完了した時点で SREN がクリアされ、以後はCREN の設定が使われます。

受信を開始するには、SREN または CREN のどちらかをセットします。TX/CK クロックピンの後側のエッジで RX/DT ピンのデータをサンプリングし、受信シフトレジスタ (RSR) にシフト入力します。1 文字全体をRSR に受信すると RCIF ビットがセットされ、この文字が 2 文字受信 FIFO に自動的に転送されます。受信FIFO の先頭文字の下位 8 ビットが RCREG に格納されます。RCIF ビットは、受信 FIFO 内に読み出していない文字が残っている間はセットされたままです。

22.5.1.6 スレーブクロック

同期データ転送には、データと同期した専用のクロックラインを使います。スレーブとして設定されたデバイスは、TX/CK ラインでクロックを受信します。TX/CKピンの出力ドライバは、デバイスを同期スレーブ送受信モードに設定すると自動的に無効になります。シリアルデータ ビットは各クロックの後側のエッジで確実に有効になるように、そのクロックの前側のエッジで遷移します。1 クロックサイクルで 1 ビットのデータを転送します。データビットの数だけクロックサイクルを受信します。

22.5.1.7 受信オーバーラン エラー

受信 FIFO バッファには 2 文字まで格納できます。RCREG を読み出して FIFO にアクセスする前に 3 文字目を 後まで受信すると、オーバーラン エラーが発生します。この時、RCSTA レジスタの OERR ビットがセットされます。FIFO 内の以前のデータが上書きされる事はありません。既に FIFO バッファ内にある 2 文字は読み出す事ができますが、それ以降の文字はオーバーラン エラーが解消されるまで受信できま

せん。OERR ビットは、オーバーラン条件を解消する事によってのみクリアできます。SREN ビットがセット、CREN ビットがクリアの時にオーバーラン エラーが発生した場合、RCREG を読み出すとエラーが解消されます。CREN ビットがセットされている時にオーバーラン エラーが発生した場合、RCSTA レジスタのCREN ビットをクリアするか、SPEN ビットをクリアして EUSART をリセットするとエラー条件が解消されます。

22.5.1.8 9 ビット文字の受信

EUSARTは9ビット文字の受信をサポートしています。RCSTA レジスタの RX9 ビットをセットすると、EUSART は 1 文字の受信につき 9 ビットを RSR にシフト入力します。RCSTA レジスタの RX9D ビットには、受信FIFOの先頭の読み出していない文字の9ビット目 ( 上位データビット )が格納されます。受信FIFOバッファから9ビットデータを読み出す場合、RCREGの下位 8 ビットより前にRX9Dデータビットを読み出す必要があります。

22.5.1.9 同期マスタ受信の実行手順 :

1. 適切なbaudレートに合わせて、SPBRGH:SPBRGLレジスタペアを初期化する。必要に応じて BRGHおよびBRG16ビットをセットまたはクリアして、所定の baud レートを設定する。

2. RX ピンの ANSEL ビットをクリアする( 必要な場合 )。

3. SYNC、SPEN、CSRC ビットをセットして同期マスタ シリアルポートを有効にする。

4. CRENおよびSRENビットがクリアされている事を確認する。

5. 割り込みが必要な場合、PIE1 レジスタの RCIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

6. 9ビット受信を使う場合、RX9ビットをセットする。

7. SREN ビットをセットするか、連続受信の場合はCREN ビットをセットすると受信が開始する。

8. 1 文字の受信が完了すると、割り込みフラグビット RCIF がセットされる。RCIE 割り込みイネーブルビットをセットしている場合、割り込みが発生する。

9. 9 ビット受信が有効な場合は RCSTA レジスタを読み出して 9 ビット目を取得し、受信中にエラーが発生したかどうかを確認する。

10. RCREG レジスタを読み出して、8 ビットの受信データを読み出す。

11. オーバーラン エラーが発生した場合、RCSTA レジスタの CREN ビットをクリアするか、SPENビットをクリアして EUSART をリセットし、エラーを解消する。

Note: RX/DT 機能がアナログピンに割り当てられている場合、対応する ANSEL ビットをクリアしないとレシーバは動作しません。

Note: スレーブとして設定されたデバイスでアナログピンに TX/CK 機能を割り当てる場合、対応する ANSEL ビットをクリアする必要があります。

2013 Microchip Technology Inc. DS41452C_JP - p.257

Page 258: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 22-12: 同期受信 ( マスタモード、SREN)

表 22-8: 同期マスタ受信関連レジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCREG EUSART 受信データレジスタ 238*

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

SPBRGL BRG<7:0> 246*

SPBRGH BRG<15:8> 246*

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装ビット、「0」として読み出し。網掛けの部分は同期マスタ受信では使いません。

* このページにはレジスタの情報を記載しています。

CREN bit

RX/DT

Write tobit SREN

SREN bit

RCIF bit(Interrupt)

ReadRCREG

‘0’

bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7

‘0’

Note: このタイミング図は、同期マスタモードで SREN = 1、BRGH = 0とした場合を示しています。

TX/CK pin

TX/CK pin

pin

(SCKP = 0)

(SCKP = 1)

DS41452C_JP - p.258 2013 Microchip Technology Inc.

Page 259: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.5.2 同期スレーブモード

EUSART モジュールを同期スレーブモードで動作させるには、以下のようにビットを設定します。

• SYNC = 1

• CSRC = 0

• SREN = 0 ( 送信の場合 )、SREN = 1 ( 受信の場合 )

• CREN = 0 ( 送信の場合 )、CREN = 1 ( 受信の場合 )• SPEN = 1

TXSTA レジスタの SYNC ビットをセットすると、デバイスが同期モードに設定されます。TXSTA レジスタのCSRC ビットをクリアすると、デバイスがスレーブに設定されます。RCSTA レジスタの SREN および CRENビットをクリアするとデバイスが送信モードに設定され、それ以外では受信モードに設定されます。RCSTAレジスタの SPEN ビットをセットすると、EUSART が有効になります。

22.5.2.1 EUSART 同期スレーブ送信

同期マスタモードと同期スレーブモードの動作は、スリープの場合を除いて同じです ( セクション 22.5.1.3「同期マスタ送信」参照 )。

TXREG に 2 ワードを書き込んだ後に SLEEP命令を実行すると、以下の動作が発生します。

1. 初の 1 文字がただちに TSR レジスタに転送され、送信される。

2. 2 番目の文字は TXREG レジスタに残る。

3. TXIF ビットはセットされない。

4. 初の 1 文字が TSR からシフト出力されると、TXREG レジスタから TSR に 2 番目の文字が転送され、この時点で TXIF ビットがセットされる。

5. PEIEおよびTXIEビットが両方共セットされている場合、割り込みによってデバイスがスリープから復帰し、次の命令を実行する。GIE ビットもセットされている場合、プログラムが割り込みサービスルーチンを呼び出す。

22.5.2.2 同期スレーブ送信の実行手順 :

1. SYNC および SPEN ビットをセットし、CSRCビットをクリアする。

2. CK ピンの ANSEL ビットをクリアする( 必要な場合 )。

3. CREN および SREN ビットをクリアする。

4. 割り込みが必要な場合、PIE1 レジスタの TXIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

5. 9 ビット送信の場合、TX9 ビットをセットする。

6. TXEN ビットをセットして、送信を有効にする。

7. 9ビット送信を選択した場合、 上位ビット (MSb)を TX9D ビットに読み込む。

8. 下位 8 ビットを TXREG レジスタに書き込むと送信が開始する。

表 22-9: 同期スレーブ送信関連レジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXREG EUSART 送信データレジスタ 235*

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は同期スレーブ送信では使いません。

* このページにはレジスタの情報を記載しています。

2013 Microchip Technology Inc. DS41452C_JP - p.259

Page 260: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.5.2.3 EUSART 同期スレーブ受信

同期マスタモードと同期スレーブモードの動作は、以下の場合を除いて同じです ( セクション 22.5.1.5「同期マスタ受信」参照 )。

• スリープ

• CREN ビットは常にセットされるため、レシーバがアイドルにならない

• SREN ビット ( スレーブモードでは「ドントケア」)

スリープに移行する前にCRENビットをセットしておくと、スリープ中でも文字を受信できます。文字を受信すると、RSR レジスタから RCREG レジスタへデータが転送されます。RCIE イネーブルビットがセットされている場合、割り込みによってデバイスがスリープから復帰し、次の命令を実行します。GIE ビットもセットされている場合、プログラムは割り込みベクタに分岐します。

22.5.2.4 同期スレーブ受信の実行手順 :

1. SYNC および SPEN ビットをセットし、CSRCビットをクリアする。

2. CK および DT ピン両方の ANSEL ビットをクリアする ( 必要な場合 )。

3. 割り込みが必要な場合、PIE1 レジスタの RCIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

4. 9ビット受信を使う場合、RX9ビットをセットする。

5. CREN ビットをセットして受信を有効にする。

6. 受信が完了すると、RCIF ビットがセットされる。RCIE ビットをセットしている場合、割り込みが発生する。

7. 9 ビットモードが有効な場合、RCSTA レジスタのRX9Dビットから 上位ビット(MSb)を取得する。

8. RCREG レジスタを読み出し、受信 FIFO から下位 8 ビットを取得する。

9. オーバーラン エラーが発生した場合、RCSTA レジスタの CREN ビットをクリアするか、SPENビットをクリアして EUSART をリセットし、エラーを解消する。

表 22-10: 同期スレーブ受信関連のレジスタのまとめ

レジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0レジスタ内容記載ページ

BAUDCON ABDOVF RCIDL - SCKP BRG16 - WUE ABDEN 245

INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF 76

PIE1 TMR1GIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 77

PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 79

RCREG EUSART 受信データレジスタ 238*

RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 244

TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 117

TXSTA CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D 243

凡例 : - = 未実装、「0」として読み出し。網掛けの部分は同期スレーブ受信では使いません。

* このページにはレジスタの情報を記載しています。

DS41452C_JP - p.260 2013 Microchip Technology Inc.

Page 261: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

22.6 スリープ中の EUSART の動作

EUSART は、同期スレーブモードの場合のみスリープ中でも動作を継続します。その他のモードではシステムクロックが必要なため、スリープ中は送受信シフトレジスタの動作に必要な信号を生成できません。

同期スレーブモードでは、外部で生成されたクロックを使って送受信シフトレジスタを動作させる事ができます。

22.6.1 スリープ中の同期受信

スリープ中に受信するには、スリープに移行する前に以下の条件を全て満たす必要があります。

• 制御レジスタの RCSTA と TXSTA を同期スレーブ受信モードに設定する ( セクション 22.5.2.4「同期スレーブ受信の実行手順 :」参照 )。

• 割り込みが必要な場合、PIE1 レジスタの RCIEビットと INTCON レジスタの GIE および PEIEビットをセットする。

• RCREG を読み出して受信バッファ内の保留中の文字を全て空にし、RCIF 割り込みフラグをクリアする。

この状態でスリープに移行すると、デバイスは RX/DTおよびTX/CKピンでそれぞれデータとクロックを受信できる状態になります。外部デバイスが生成するクロックによってデータワードが完全に入力されると、PIR1レジスタのRCIF割り込みフラグビットがセットされます。これによって、プロセッサがスリープから復帰します。

スリープから復帰すると、SLEEP命令の次の命令が実行されます。INTCON レジスタの GIE ( グローバル割り込みイネーブル ) ビットもセットされている場合、割り込みサービスルーチン ( アドレス 004h) が呼び出されます。

22.6.2 スリープ中の同期送信

スリープ中に送信するには、スリープに移行する前に以下の条件を全て満たす必要があります。

• 制御レジスタの RCSTA と TXSTA を同期スレーブ送信モードに設定する ( セクション 22.5.2.2「同期スレーブ送信の実行手順 :」参照 )。

• TXREG へ出力データを書き込み、TSR と送信バッファにデータを格納して TXIF 割り込みフラグをクリアする。

• 割り込みが必要な場合、PIE1 レジスタの TXIEビットと INTCON レジスタの PEIE ビットをセットする。

• 割り込みイネーブルビットである PIE1 レジスタのTXIE ビットと INTCON レジスタの PEIE ビットをセットする。

この状態でスリープに移行すると、デバイスは TX/CKピンでクロックを受信でき、RX/DT ピンでデータを送信できる状態になります。外部デバイスのクロックによってTSRに格納されていたデータワードが全て出力されると、TXREG に保留されていたバイトが TSR へ転送されてTXIFフラグがセットされます。これによって、プロセッサがスリープから復帰します。この時点で、TXREG は次に送信する文字データを格納できる状態になります。TXREG にデータを書き込むと TXIFフラグがクリアされます。

スリープから復帰すると、SLEEP命令の次の命令が実行されます。GIE ( グローバル割り込みイネーブル )ビットもセットされている場合、割り込みサービスルーチン ( アドレス 0004h) が呼び出されます。

2013 Microchip Technology Inc. DS41452C_JP - p.261

Page 262: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.262 2013 Microchip Technology Inc.

Page 263: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

23.0 インサーキット シリアル プログラミング (ICSP™: In-Circuit Serial Programming™)

ICSP™プログラミングを使うと、未プログラムのデバイスを使って回路基板を生産できます。組み立てプロセス後にプログラミングするため、 新ファームウェアまたはカスタム ファームウェアを使ってデバイスをプログラムできます。ICSP™ プログラミングには、以下の 5 本のピンが必要です。

• ICSPCLK

• ICSPDAT

• MCLR/VPP

• VDD

• VSS

プログラム / ベリファイモードを使って、プログラムメモリ、ユーザ ID、コンフィグレーション ワードをシリアル通信を介してプログラムします。ICSPDAT ピンはシリアルデータを転送用の双方向 I/O であり、ICSPCLK ピンはクロック入力です。ICSP™ の詳細は、

『PIC16(L)F151X/152X Memory ProgrammingSpecification』(DS41442) を参照してください。

23.1 高電圧プログラミング エントリモード

ICSPCLK ピンと ICSPDAT ピンを Low に保持し、MCLR/VPP の電圧を VIHH にすると、デバイスは高電圧プログラミング モードに移行します。

23.2 低電圧プログラミング エントリモード

低電圧プログラミング エントリモードでは、高電圧を使わずに VDD だけを使って PIC® フラッシュ MCU をプログラムできます。コンフィグレーション ワードのLVP ビットを「1」に設定すると、低電圧 ICSP プログラミング エントリが有効になります。低電圧 ICSPモードを無効にするには、LVP ビットを「0」に設定します。

低電圧プログラミング エントリモードに移行する手順は以下の通りです。

1. MCLR を VIL にする。

2. 32ビットのキーシーケンスを、ICSPCLKをクロッキングしながら ICSPDAT に入力する。

キーシーケンスの完了後、プログラム /ベリファイモードを継続させたい期間、MCLR を VIL に保持する必要があります。

低電圧プログラミングの有効時 (LVP = 1) は、MCLR リセット機能が自動的に有効になり、無効にできません。詳細は、セクション 6.5「MCLR」を参照してください。

再度 LVP ビットを「0」に設定するには、高電圧プログラミング モードを使う必要があります。

23.3 一般的なプログラミング インターフェイス

ターゲット デバイスには、通常 ICSP™ ヘッダを介して接続します。開発ツールによく使われるコネクタは、6P6C (6 ピン、6 コネクタ ) 構成の RJ-11 です。図 23-1を参照してください。

図 23-1: ICD RJ-11 型コネクタ インターフェイス

また、PICkit™ プログラマによく使われるコネクタとして、0.1 インチ間隔の標準 6 ピンヘッダもあります。図 23-2 を参照してください。

インターフェイスに関するその他の推奨事項は、プリント基板の設計前に、使用するデバイス プログラマのマニュアルを参照してください。

絶縁デバイスを使って、プログラミング ピンと他の回路を絶縁する事を推奨します。絶縁方法はアプリケーション固有であり、抵抗、ダイオード等のデバイスや、ジャンパを使う事もあります。詳細は、図 23-3 を参照してください。

1

2

3

4

5

6

Target

Bottom SidePC BoardVPP/MCLR VSS

ICSPCLKVDD

ICSPDATNC

Pin Description*

1 = VPP/MCLR

2 = VDD Target

3 = VSS (ground)

4 = ICSPDAT

5 = ICSPCLK

6 = No Connect

2013 Microchip Technology Inc. DS41452C_JP - p.263

Page 264: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 23-2: PICkit™ プログラマ型コネクタ インターフェイス

図 23-3: ICSP™ プログラミングの標準接続

123456

* 6 ピンヘッダ (0.1 インチ間隔 ) は 0.025 インチ角型ピンに適合します。

Pin Description*

1 = VPP/MCLR

2 = VDD Target

3 = VSS (ground)

4 = ICSPDAT

5 = ICSPCLK

6 = No Connect

Pin 1 Indicator

VDD

VPP

VSS

ExternalDevice to be

Data

Clock

VDD

MCLR/VPP

VSS

ICSPDAT

ICSPCLK

* **

To Normal Connections

* 絶縁デバイス ( 必要に応じて )

Programming Signals Programmed

VDD

DS41452C_JP - p.264 2013 Microchip Technology Inc.

Page 265: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

24.0 命令セットのまとめ

各命令は 14 ビットワードで構成されており、オペコードとそれらに必要なオペランドを全て含みます。オペコードは、主に 3 つのカテゴリに分けられます。

• バイト指向命令

• ビット指向命令

• リテラルおよび制御命令

リテラルと制御のカテゴリには、 も多くの種類の命令ワード形式があります。

表 24-3 に、MPASMTM アセンブラが認識する命令の一覧を示します。

全ての命令は、1 命令サイクルで実行されます。しかし、以下に示す例外は 2 サイクルまたは 3 サイクル必要です。

• サブルーチンは 2 サイクルを必要とする(CALL、CALLW)。

• 割り込みまたはサブルーチンからの戻りは 2 サイクルを必要とする (RETURN、RETLW、RETFIE)。

• プログラムの分岐は 2 サイクルを必要とする(GOTO、BRA、BRW、BTFSS、BTFSC、DECFSZ、INCSFZ)。

• 命令が間接ファイルレジスタを参照し、ファイル セレクト レジスタがプログラムメモリを指している場合、追加の 1 命令サイクルを必要とする。

1 命令サイクルはオシレータ 4 周期分です。例えばオシレータ周波数が4 MHzの場合の命令実行周波数の公称値は 1 MHz です。

命令の例では、「0xhh」の形式で 16 進数を表しています。この「h」は 16 進数の 1 桁を表します。

24.1 Read-Modify-Write 動作

命令の一部としてファイルレジスタを指定するような命令は、必ず Read-Modify-Write (R-M-W) 動作を実行します。レジスタを読み出し、データを変更し、そして命令または格納先指定文字「d」のどちらかに従って結果を書き込みます。書き込み先がそのレジスタであっても読み出し動作を実行します。

表 24-1: オペコード フィールドの説明

表 24-2: 略語の説明

フィールド 説明

f レジスタファイル アドレス(0x00 ~ 0x7F)

W ワーキング レジスタ ( アキュムレータ )

b 8 ビット ファイルレジスタのビットアドレス

k リテラル フィールド、定数データまたはラベル

x ドントケア ロケーション(= 0または 1)、アセンブラは x = 0でコードを生成 ( マイクロチップ社の全ソフトウェア ツールとの互換性を確保するために この形式を推奨します。)

d 格納先を選択する。d = 0: 結果を W に格納する。d = 1: 結果をファイルレジスタ f に格納する。既定値は d = 1である

n FSR または INDF 番号 (0-1)mm ( プリ / ポスト ) インクリメント / デク

リメント モードを選択する

フィールド 説明

PC プログラム カウンタ

TO タイムアウト ビット

C Carry ビット

DC ディジット carry ビット

Z ゼロビット

PD パワーダウン ビット

2013 Microchip Technology Inc. DS41452C_JP - p.265

Page 266: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 24-1: 命令の一般的な形式

Byte-oriented file register operations13 8 7 6 0

d = 0 for destination W

OPCODE d f (FILE #)

d = 1 for destination ff = 7-bit file register address

Bit-oriented file register operations13 10 9 7 6 0

OPCODE b (BIT #) f (FILE #)

b = 3-bit bit addressf = 7-bit file register address

13 8 7 0

OPCODE k (literal)

k = 8-bit immediate value

13 11 10 0

OPCODE k (literal)

k = 11-bit immediate value

General

CALL and GOTO instructions only

MOVLP instruction only

13 5 4 0

OPCODE k (literal)

k = 5-bit immediate value

MOVLB instruction only

13 9 8 0

OPCODE k (literal)

k = 9-bit immediate value

BRA instruction only

FSR Offset instructions

13 7 6 5 0

OPCODE n k (literal)

n = appropriate FSR

FSR Increment instructions

13 7 6 0

OPCODE k (literal)

k = 7-bit immediate value

13 3 2 1 0

OPCODE n m (mode)

n = appropriate FSRm = 2-bit mode value

k = 6-bit immediate value

13 0

OPCODE

OPCODE only

Literal and control operations

DS41452C_JP - p.266 2013 Microchip Technology Inc.

Page 267: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 24-3: 命令セット

ニーモニック、

オペランド説明

サイクル

14 ビットオペコード 影響を

受ける

ステータス

NoteMSb LSb

バイト指向ファイルレジスタ命令

ADDWFADDWFCANDWFASRFLSLFLSRFCLRFCLRWCOMFDECFINCFIORWFMOVFMOVWFRLFRRFSUBWFSUBWFBSWAPFXORWF

f, df, df, df, df, df, df-f, df, df, df, df, dff, df, df, df, df, df, d

Add W and fAdd with Carry W and fAND W with fArithmetic Right ShiftLogical Left ShiftLogical Right ShiftClear fClear WComplement fDecrement fIncrement fInclusive OR W with fMove fMove W to fRotate Left f through CarryRotate Right f through CarrySubtract W from fSubtract with Borrow W from fSwap nibbles in fExclusive OR W with f

11111111111111111111

0011001111110000000000000000000000110000

01111101010101110101011000010001100100111010010010000000110111000010101111100110

dfffdfffdfffdfffdfffdffflfff0000dfffdfffdfffdfffdfff1fffdfffdfffdfffdfffdfffdfff

ffffffffffffffffffffffffffff00xxffffffffffffffffffffffffffffffffffffffffffffffff

C, DC, ZC, DC, ZZC, ZC, ZC, ZZZZZZZZ

CCC, DC, ZC, DC, Z

Z

2222222

222222222222

バイト指向スキップ命令

DECFSZINCFSZ

f, df, d

Decrement f, Skip if 0Increment f, Skip if 0

1(2)1(2)

0000

10111111

dfffdfff

ffffffff

1, 21, 2

ビット指向ファイルレジスタ命令

BCFBSF

f, bf, b

Bit Clear fBit Set f

11

0101

00bb01bb

bfffbfff

ffffffff

22

ビット指向スキップ命令

BTFSCBTFSS

f, bf, b

Bit Test f, Skip if ClearBit Test f, Skip if Set

1 (2)1 (2)

0101

10bb11bb

bfff bfff

ffffffff

1, 21, 2

リテラル命令

ADDLWANDLWIORLWMOVLBMOVLPMOVLWSUBLWXORLW

kkkkkkkk

Add literal and WAND literal with WInclusive OR literal with WMove literal to BSRMove literal to PCLATHMove literal to WSubtract W from literalExclusive OR literal with W

11111111

1111110011111111

11101001100000000001000011001010

kkkkkkkkkkkk001k1kkkkkkkkkkkkkkk

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

C, DC, ZZZ

C, DC, ZZ

Note 1: プログラム カウンタ (PC) が変更された場合、あるいは条件付きテストの結果が真の場合、命令実行には 2 サイクルが必

要です。2 サイクル目は、NOPとして実行されます。

2: この命令が INDF レジスタをアドレス指定し、対応する FSR の MSb がセットされている場合、追加の 1 命令サイクルが

必要です。

2013 Microchip Technology Inc. DS41452C_JP - p.267

Page 268: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 24-3: 命令セット ( 続き )

ニーモニック、

オペランド説明

サイクル

14 ビットオペコード 影響を

受ける

ステータス

NoteMSb LSb

制御命令

BRABRWCALLCALLWGOTORETFIERETLWRETURN

k-k-kkk-

Relative BranchRelative Branch with WCall SubroutineCall Subroutine with WGo to addressReturn from interruptReturn with literal in WReturn from Subroutine

22222222

1100100010001100

001k00000kkk00001kkk000001000000

kkkk0000kkkk0000kkkk0000kkkk0000

kkkk1011kkkk1010kkkk1001kkkk1000

固有命令

CLRWDTNOPOPTIONRESETSLEEPTRIS

-----f

Clear Watchdog TimerNo OperationLoad OPTION_REG register with WSoftware device ResetGo into Standby modeLoad TRIS register with W

111111

000000000000

000000000000000000000000

011000000110000001100110

010000000010000100110fff

TO, PD

TO, PD

C コンパイラに 適化された命令

ADDFSRMOVIW

MOVWI

n, kn mm

k[n]n mm

k[n]

Add Literal k to FSRnMove Indirect FSRn to W with pre/post inc/dec modifier, mmMove INDFn to W, Indexed Indirect.Move W to Indirect FSRn with pre/post inc/dec modifier, mmMove W to INDFn, Indexed Indirect.

11

11

1

1100

1100

11

00010000

11110000

1111

0nkk0001

0nkk0001

1nkk

kkkk0nmm

kkkk1nmm

kkkk

Z

Z

2, 3

22, 3

2

Note 1: プログラム カウンタ (PC) が変更された場合、あるいは条件付きテストの結果が真の場合、命令実行には 2 サイクルが必

要です。2 サイクル目は、NOPとして実行されます。

2: この命令が INDF レジスタをアドレス指定し、対応する FSR の MSb がセットされている場合、追加の 1 命令サイクルが

必要です。

3: MOVIW 命令と MOVWI 命令の説明の表を参照してください。

DS41452C_JP - p.268 2013 Microchip Technology Inc.

Page 269: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

24.2 命令の説明

ADDFSR Add Literal to FSRn

構文 : [ label ] ADDFSR FSRn, k

オペランド : -32 k 31n [ 0, 1]

動作 : FSR(n) + k FSR(n)

影響を受ける

ステータス :なし

説明 : 符号付き 6 ビットリテラル「k」を

FSRnH:FSRnL レジスタペアの内容に加算し

ます。

FSRn の範囲は 0000h ~ FFFFh です。これ

らの範囲を超えると、FSR のラップアラウン

ド ( 折り返し ) が発生します。

ADDLW Add literal and W

構文 : [ label ] ADDLW k

オペランド : 0 k 255

動作 : (W) + k (W)

影響を受ける

ステータス :C, DC, Z

説明 : W レジスタの内容を 8 ビットのリテラル「k」に加算し、結果を W レジスタに書き込みます。

ADDWF Add W and f

構文 : [ label ] ADDWF f,d

オペランド : 0 f 127d 0,1

動作 : (W) + (f) (destination)

影響を受ける

ステータス :C, DC, Z

説明 : W レジスタとレジスタ「f」の内容を加算し

ます。「d」が「0」の場合、結果は W レジス

タに書き込まれます。「d」が「1」の場合、

結果はレジスタ「f」に書き戻されます。

ADDWFC ADD W and CARRY bit to f

構文 : [ label ] ADDWFC f {,d}

オペランド : 0 f 127d [0,1]

動作 : (W) + (f) + (C) dest

影響を受ける

ステータス :C, DC, Z

説明 : W レジスタ、キャリーフラグ、データメモリ

のアドレス「f」の内容を加算します。「d」が

「0」の場合、結果は W レジスタに書き込ま

れます。「d」が「1」の場合、結果はデータ

メモリ ロケーション「f」に書き込まれます。

ANDLW AND literal with W

構文 : [ label ] ANDLW k

オペランド : 0 k 255

動作 : (W) .AND. (k) (W)

影響を受ける

ステータス :Z

説明 : W レジスタの内容と 8 ビットのリテラル

「k」で AND 演算します。結果は W レジス

タに書き込まれます。

ANDWF AND W with f

構文 : [ label ] ANDWF f,d

オペランド : 0 f 127d 0,1

動作 : (W) .AND. (f) (destination)

影響を受ける

ステータス :Z

説明 : W レジスタとレジスタ「f」で AND 演算し

ます。「d」が「0」の場合、結果は W レジ

スタに書き込まれます。「d」が「1」の場

合、結果はレジスタ「f」に書き戻されます。

ASRF Arithmetic Right Shift

構文 : [ label ] ASRF f {,d}

オペランド : 0 f 127d [0,1]

動作 : (f<7>) dest<7>(f<7:1>) dest<6:0>,(f<0>) C,

影響を受ける

ステータス :C, Z

説明 : レジスタ「f」の内容を、キャリーフラグを

通して右へ 1 ビット移動させます。MSb は

変更しません。「d」が「0」の場合、結果は

W レジスタに書き込まれます。「d」が「1」の場合、結果はレジスタ「f」に書き戻され

ます。

register f C

2013 Microchip Technology Inc. DS41452C_JP - p.269

Page 270: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

BCF Bit Clear f

構文 : [ label ] BCF f,b

オペランド : 0 f 1270 b 7

動作 : 0 (f<b>)

影響を受ける

ステータス :なし

説明 : レジスタ「f」のビット「b」をクリアします。

BRA Relative Branch

構文 : [ label ] BRA label [ label ] BRA $+k

オペランド : -256 label - PC + 1 255-256 k 255

動作 : (PC) + 1 + k PC

影響を受ける

ステータス :なし

説明 : 符号付き 9 ビットリテラル「k」を PC に加

算します。PC は、インクリメントして次の

命令をフェッチするため、新しいアドレスは

PC + 1 + k です。この命令は 2 サイクル命令

です。この分岐には範囲の制限があります。

BRW Relative Branch with W

構文 : [ label ] BRW

オペランド : なし

動作 : (PC) + (W) PC

影響を受ける

ステータス :なし

説明 : W ( 符号なし ) の内容を PC に加算します。

PC は、インクリメントして次の命令を

フェッチするため、新しいアドレスは

PC + 1 + (W) です。これは 2 サイクルの命令

です。

BSF Bit Set f

構文 : [ label ] BSF f,b

オペランド : 0 f 1270 b 7

動作 : 1 (f<b>)

影響を受ける

ステータス :なし

説明 : レジスタ「f」のビット「b」をセットします。

BTFSC Bit Test f, Skip if Clear

構文 : [ label ] BTFSC f,b

オペランド : 0 f 1270 b 7

動作 : skip if (f<b>) = 0

影響を受ける

ステータス :なし

説明 : レジスタ「f」のビット「b」が「1」の場合、

次の命令を実行します。

レジスタ「f」のビット「b」が「0」の場合、

次の命令を破棄し、代わりに NOPを実行し

て、2 サイクルの命令にします。

BTFSS Bit Test f, Skip if Set

構文 : [ label ] BTFSS f,b

オペランド : 0 f 1270 b < 7

動作 : skip if (f<b>) = 1

影響を受ける

ステータス :なし

説明 : レジスタ「f」のビット「b」が「0」の場合、

次の命令を実行します。

ビット「b」が「1」の場合、次の命令を破棄

し、代わりに NOPを実行して、2 サイクルの

命令にします。

DS41452C_JP - p.270 2013 Microchip Technology Inc.

Page 271: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

CALL Call Subroutine

構文 : [ label ] CALL k

オペランド : 0 k 2047

動作 : (PC) + 1 TOS,k PC<10:0>,(PCLATH<6:3>) PC<14:11>

影響を受ける

ステータス :なし

説明 : サブルーチンを呼び出します。 初に、リ

ターンアドレス (PC+1) をスタックにプッ

シュします。11 ビットの即値アドレスを、PCビット <10:0> に読み込みます。PC の上位

ビットは、PCLATH から読み込みます。

CALLは、2 サイクルの命令です。

CALLW Subroutine Call With W

構文 : [ label ] CALLW

オペランド : なし

動作 : (PC) +1 TOS,(W) PC<7:0>,(PCLATH<6:0>) PC<14:8>

影響を受ける

ステータス :なし

説明 : W レジスタを使うサブルーチン呼び出しです。

まず、リターンアドレス (PC+1) をリターン

スタックへプッシュします。次に W レジス

タの内容を PC<7:0> に読み込み、PCLATH の

内容を PC<14:8> に読み込みます。CALLWは 2サイクルの命令です。

CLRF Clear f

構文 : [ label ] CLRF f

オペランド : 0 f 127

動作 : 00h (f)1 Z

影響を受ける

ステータス :Z

説明 : レジスタ「f」の内容をクリアして、Z ビット

をセットします。

CLRW Clear W

構文 : [ label ] CLRW

オペランド : なし

動作 : 00h (W)1 Z

影響を受ける

ステータス :Z

説明 : W レジスタをクリアします。ゼロビット (Z)をセットします。

CLRWDT Clear Watchdog Timer

構文 : [ label ] CLRWDT

オペランド : なし

動作 : 00h WDT0 WDT prescaler,1 TO1 PD

影響を受ける

ステータス :TO, PD

説明 : CLRWDT命令はウォッチドッグ タイマをリ

セットします。WDT のプリスケーラもリ

セットします。

ステータスビット TO と PD をセットします。

COMF Complement f

構文 : [ label ] COMF f,d

オペランド : 0 f 127d [0,1]

動作 : (f) (destination)

影響を受ける

ステータス :Z

説明 : レジスタ「f」の内容の補数をとります。「d」が「0」の場合は結果が W レジスタに書き込

まれ、「d」が「1」の場合は結果がレジスタ

「f」に書き戻されます。

DECF Decrement f

構文 : [ label ] DECF f,d

オペランド : 0 f 127d [0,1]

動作 : (f) - 1 (destination)

影響を受ける

ステータス :Z

説明 : レジスタ「f」をデクリメントする。「d」が

「0」の場合は結果が W レジスタに書き込ま

れ、「d」が「1」の場合は結果がレジスタ

「f」に書き戻されます。

2013 Microchip Technology Inc. DS41452C_JP - p.271

Page 272: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

DECFSZ Decrement f, Skip if 0

構文 : [ label ] DECFSZ f,d

オペランド : 0 f 127d [0,1]

動作 : (f) - 1 (destination); skip if result = 0

影響を受ける

ステータス :なし

説明 : レジスタ「f」の内容をデクリメントします。

「d」が「0」の場合、結果は W レジスタに

書き込まれます。「d」が「1」の場合、結果

はレジスタ「f」に書き戻されます。

結果が「1」の場合、次の命令が実行され

ます。結果が「0」の場合は代わりに NOPを

実行して、2 サイクルの命令にします。

GOTO Unconditional Branch

構文 : [ label ] GOTO k

オペランド : 0 k 2047

動作 : k PC<10:0>PCLATH<6:3> PC<14:11:00>

影響を受け

るステータス :なし

説明 : GOTOは無条件分岐です。11 ビットの即値

を、PC ビット <10:0> に読み込みます。PCの上位ビットは、PCLATH<4:3> から読み込

みます。GOTOは 2 サイクルの命令です。

INCF Increment f

構文 : [ label ] INCF f,d

オペランド : 0 f 127d [0,1]

動作 : (f) + 1 (destination)

影響を受ける

ステータス :Z

説明 : レジスタ「f」の内容をインクリメントし

ます。「d」が「0」の場合、結果は W レジ

スタに書き込まれます。「d」が「1」の場

合、結果はレジスタ「f」に書き戻されます。

INCFSZ Increment f, Skip if 0

構文 : [ label ] INCFSZ f,d

オペランド : 0 f 127d [0,1]

動作 : (f) + 1 (destination), skip if result = 0

影響を受ける

ステータス :なし

説明 : レジスタ「f」の内容をインクリメントし

ます。「d」が「0」の場合、結果は W レジ

スタに書き込まれます。「d」が「1」の場

合、結果はレジスタ「f」に書き戻されます。

結果が「1」の場合、次の命令が実行され

ます。結果が「0」の場合は代わりに NOPを実行して、2 サイクルの命令にします。

IORLW Inclusive OR literal with W

構文 : [ label ] IORLW k

オペランド : 0 k 255

動作 : (W) .OR. k (W)

影響を受ける

ステータス :Z

説明 : W レジスタの内容と 8 ビットのリテラル

「k」で OR 演算します。結果は W レジス

タに書き込まれます。

IORWF Inclusive OR W with f

構文 : [ label ] IORWF f,d

オペランド : 0 f 127d [0,1]

動作 : (W) .OR. (f) (destination)

影響を受ける

ステータス :Z

説明 : W レジスタとレジスタ「f」で OR 演算し

ます。「d」が「0」の場合、結果は W レ

ジスタに書き込まれます。「d」が「1」の

場合、結果はレジスタ「f」に書き戻され

ます。

DS41452C_JP - p.272 2013 Microchip Technology Inc.

Page 273: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

LSLF Logical Left Shift

構文 : [ label ] LSLF f {,d}

オペランド : 0 f 127d [0,1]

動作 : (f<7>) C(f<6:0>) dest<7:1>0 dest<0>

影響を受ける

ステータス :C, Z

説明 : レジスタ「f」の内容を、キャリーフラグを

通して左へ 1 ビット移動させます。LSb に

「0」が入ります。「d」が「0」の場合、結

果は W レジスタに書き込まれます。「d」が

「1」の場合、結果はレジスタ「f」に書き戻

されます。

LSRF Logical Right Shift

構文 : [ label ] LSRF f {,d}

オペランド : 0 f 127d [0,1]

動作 : 0 dest<7>(f<7:1>) dest<6:0>,(f<0>) C,

影響を受ける

ステータス :C, Z

説明 : レジスタ「f」の内容を、キャリーフラグを

通して右へ 1 ビット移動させます。MSb に

「0」が入ります。 「d」が「0」の場合、結

果は W レジスタに書き込まれます。「d」が

「1」の場合、結果はレジスタ「f」に書き戻

されます。

register f 0C

register f C0

MOVF Move f

構文 : [ label ] MOVF f,d

オペランド : 0 f 127d [0,1]

動作 : (f) (destination)

影響を受ける

ステータス :Z

説明 : レジスタ「f」の内容を、「d」のステータス

に応じて格納先に移動します。「d」 = 「0」の場合、格納先は W レジスタです。「d」 = 「1」の場合、格納先はファイルレジスタ

「f」自身です。ステータスフラグ Z は影響

を受けるため、ファイルレジスタの検証に

は「d」 = 「1」を使います。

ワード数 : 1

サイクル数 : 1

例 : MOVF FSR, 0

命令実行後

W = FSR レジスタの値

Z = 1

2013 Microchip Technology Inc. DS41452C_JP - p.273

Page 274: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

MOVIW Move INDFn to W

構文 : [ label ] MOVIW ++FSRn[ label ] MOVIW --FSRn[ label ] MOVIW FSRn++[ label ] MOVIW FSRn--[ label ] MOVIW k[FSRn]

オペランド : n [0,1]mm [00,01, 10, 11]-32 k 31

動作 : INDFn W有効なアドレスは、以下の式で決定さ

れます。

• FSR + 1 ( プリインクリメント )• FSR - 1 ( プリデクリメント )• FSR + k ( 相対オフセット )移動後、FSR 値は以下のいずれかの値

をとります。

• FSR + 1 ( 全てインクリメント )• FSR - 1 ( 全てデクリメント )• 不変

影響を受ける

ステータス : Z

モード 構文 mm

プリインクリメント ++FSRn 00

プリデクリメント --FSRn 01

ポストインクリメント FSRn++ 10

ポストデクリメント FSRn-- 11

説明 : この命令は、W レジスタから間接レ

ジスタ (INDFn) へデータを移動する際

に使います。この動作の前後では、プ

リ ( ポスト ) インクリメント / デクリ

メントによってポインタ (FSRn) がアップデートされます。

Note : INDFn レジスタは物理的なレ

ジスタではありません。INDFn レジス

タにアクセスする命令は、実際には

FSRn で指定したアドレスにあるレジ

スタ値にアクセスしています。

FSRn の範囲は 0000h ~ FFFFh です。

インクリメント / デクリメントによっ

てこの範囲を超えると、ラップアラウ

ンドが発生します。

MOVLB Move literal to BSR

構文 : [ label ] MOVLB k

オペランド : 0 k 31

動作 : k BSR

影響を受ける

ステータス :なし

説明 : 5 ビットのリテラル「k」をバンク セレ

クト レジスタ (BSR) に読み込みます。

MOVLP Move literal to PCLATH

構文 : [ label ] MOVLP k

オペランド : 0 k 127

動作 : k PCLATH

影響を受ける

ステータス :なし

説明 : 7 ビットのリテラル「k」を PCLATH レジス

タに読み込みます。

MOVLW Move literal to W

構文 : [ label ] MOVLW k

オペランド : 0 k 255

動作 : k (W)

影響を受ける

ステータス :なし

説明 : 8 ビットのリテラル「k」を W レジスタに読

み込みます。「ドントケア」は「0」として

アセンブルされます。

ワード数 : 1

サイクル数 : 1

例 : MOVLW 0x5A

命令実行後W = 0x5A

MOVWF Move W to f

構文 : [ label ] MOVWF f

オペランド : 0 f 127

動作 : (W) (f)

影響を受ける

ステータス :なし

説明 : W レジスタから、レジスタ「f」にデータを

移動します。

ワード数 : 1

サイクル数 : 1

例 : MOVWF OPTION_REG

命令実行前OPTION_REG = 0xFF

W = 0x4F命令実行後

OPTION_REG = 0x4F W = 0x4F

DS41452C_JP - p.274 2013 Microchip Technology Inc.

Page 275: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

MOVWI Move W to INDFn

構文 : [ label ] MOVWI ++FSRn[ label ] MOVWI --FSRn[ label ] MOVWI FSRn++[ label ] MOVWI FSRn--[ label ] MOVWI k[FSRn]

オペランド : n [0,1]mm [00,01, 10, 11]-32 k 31

動作 : W INDFn有効なアドレスは、以下の式で決定

されます。

• FSR + 1 ( プリインクリメント )• FSR - 1 ( プリデクリメント )• FSR + k ( 相対オフセット )移動後、FSR 値は以下のいずれかの

値をとります。

• FSR + 1 ( 全てインクリメント )• FSR - 1 ( 全てデクリメント )不変

影響を受ける

ステータス : なし

モード 構文 mm

プリインクリメント ++FSRn 00

プリデクリメント --FSRn 01

ポストインクリメント FSRn++ 10

ポストデクリメント FSRn-- 11

説明 : この命令は、W レジスタから間接レ

ジスタ (INDFn) へデータを移動する

際に使います。この動作の前後では、

プリ ( ポスト ) インクリメント / デク

リメントによってポインタ (FSRn) がアップデートされます。

Note: INDFn レジスタは物理的なレ

ジスタではありません。INDFn レジ

スタにアクセスする命令は、実際に

は FSRn で指定したアドレスにある

レジスタ値にアクセスしています。

FSRn の範囲は 0000h ~ FFFFh です。

インクリメント / デクリメントによっ

てこの範囲を超えると、ラップアラウ

ンドが発生します。

FSRn でのインクリメント / デクリメ

ントは、どのステータスビットにも影

響しません。

NOP NOP

構文 : [ label ] NOP

オペランド : なし

動作 : なし

影響を受ける

ステータス :なし

説明 : 何も実行しません。

ワード数 : 1

サイクル数 : 1

例 : NOP

OPTIONLoad OPTION_REG Register with W

構文 : [ label ] OPTION

オペランド : なし

動作 : (W) OPTION_REG

影響を受ける

ステータス :なし

説明 : W レジスタから、OPTION_REG レジ

スタにデータを移動します。

ワード数 : 1

サイクル数 : 1

例 : OPTION

命令実行前OPTION_REG = 0xFF

W = 0x4F命令実行後

OPTION_REG = 0x4F W = 0x4F

RESET Software Reset

構文 : [ label ] RESET

オペランド : なし

動作 : デバイスをリセットします。PCON レ

ジスタの RI フラグをリセットします。

影響を受ける

ステータス :なし

説明 : この命令は、ソフトウェアによって

ハードウェア リセットを実行する方法

を提供します。

2013 Microchip Technology Inc. DS41452C_JP - p.275

Page 276: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

RETFIE Return from Interrupt

構文 : [ label ] RETFIE

オペランド : なし

動作 : TOS PC,1 GIE

影響を受ける

ステータス :なし

説明 : 割り込み処理から復帰します。スタックが

ポップされ、Top-of-Stack (TOS) が PC に読

み込まれます。グローバル割り込みイネー

ブルビットGIE (INTCON<7>)をセットして、

割り込みを有効にします。これは 2 サイク

ルの命令です。

ワード数 : 1

サイクル数 : 2

例 : RETFIE

割り込み終了後PC = TOSGIE = 1

RETLW Return with literal in W

構文 : [ label ] RETLW k

オペランド : 0 k 255

動作 : k (W); TOS PC

影響を受ける

ステータス :なし

説明 : 8 ビットのリテラル「k」を W レジスタに読

み込みます。Top-of-Stack ( リターンアドレ

ス ) をプログラム カウンタへ読み込みます。

これは 2 サイクルの命令です。

ワード数 : 1

サイクル数 : 2

例 :

TABLE

CALL TABLE;W contains table; offset value

• ;W now has table value••ADDWF PC ;W = offsetRETLW k1 ;Begin tableRETLW k2 ;•••RETLW kn ; End of table

命令実行前W = 0x07

命令実行後

W = k8 の値

RETURN Return from Subroutine

構文 : [ label ] RETURN

オペランド : なし

動作 : TOS PC

影響を受ける

ステータス :なし

説明 : サブルーチンから戻ります。スタックがポッ

プされ、Top-of-Stack (TOS) がプログラム カウンタに読み込まれます。これは 2 サイクル

の命令です。

RLF Rotate Left f through Carry

構文 : [ label ] RLF f,d

オペランド : 0 f 127d [0,1]

動作 : 下記参照

影響を受ける

ステータス :C

説明 : レジスタ「f」の内容を、キャリーフラグを

通して左回りに 1 ビット移動させます。「d」が「0」の場合、結果は W レジスタに書き

込まれます。「d」が「1」の場合、結果はレ

ジスタ「f」に書き戻されます。

ワード数 : 1

サイクル数 : 1

例 : RLF REG1,0

命令実行前REG1 = 1110 0110C = 0

命令実行後REG1 = 1110 0110W = 1100 1100C = 1

Register fC

DS41452C_JP - p.276 2013 Microchip Technology Inc.

Page 277: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

RRF Rotate Right f through Carry

構文 : [ label ] RRF f,d

オペランド : 0 f 127d [0,1]

動作 : 下記参照

影響を受ける

ステータス :C

説明 : レジスタ「f」の内容を、キャリーフラグを

通して右回りに 1 ビット移動させます。「d」が「0」の場合、結果は W レジスタに書き込

まれます。「d」が「1」の場合、結果はレジ

スタ「f」に書き戻されます。

SLEEP Enter Sleep mode

構文 : [ label ] SLEEP

オペランド : なし

動作 : 00h WDT,0 WDT prescaler,1 TO,0 PD

影響を受ける

ステータス :TO, PD

説明 : パワーダウン ステータスビット (PD) をクリ

アします。タイムアウト ステータスビット

(TO) をセットします。ウォッチドッグ タイ

マとそのプリスケーラをクリアします。

オシレータを停止させてプロセッサをスリー

プにします。

Register fC

SUBLW Subtract W from literal

構文 : [ label ] SUBLW k

オペランド : 0 k 255

動作 : k - (W) W)

影響を受ける

ステータス :C, DC, Z

説明 : 8 ビットのリテラル「k」から W レジスタ

を減算します (2 の補数法 )。結果は W レ

ジスタに書き込まれます。

SUBWF Subtract W from f

構文 : [ label ] SUBWF f,d

オペランド : 0 f 127d [0,1]

動作 : (f) - (W) destination)

影響を受ける

ステータス :C, DC, Z

説明 : レジスタ「f」から、W レジスタを減算し

ます (2 の補数法 )。「d」が「0」の場合は

結果が W レジスタに書き込まれ、「d」が

「1」の場合は結果がレジスタ「f」に書き

戻されます。

SUBWFB Subtract W from f with Borrow

構文 : SUBWFB f {,d}

オペランド : 0 f 127d [0,1]

動作 : (f) – (W) – (B) dest

影響を受ける

ステータス :C, DC, Z

説明 : レジスタ「f」から W レジスタとボローフラ

グ (キャリー ) を減算します (2 の補数法 )。「d」が「0」の場合、結果は W レジスタに

書き込まれます。「d」が「1」の場合、結

果はレジスタ「f」に書き戻されます。

C = 0 W k

C = 1 W k

DC = 0 W<3:0> k<3:0>

DC = 1 W<3:0> k<3:0>

C = 0 W f

C = 1 W f

DC = 0 W<3:0> f<3:0>

DC = 1 W<3:0> f<3:0>

2013 Microchip Technology Inc. DS41452C_JP - p.277

Page 278: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

SWAPF Swap Nibbles in f

構文 : [ label ] SWAPF f,d

オペランド : 0 f 127d [0,1]

動作 : (f<3:0>) (destination<7:4>),(f<7:4>) (destination<3:0>)

影響を受ける

ステータス :なし

説明 : レジスタ「f」の上位ニブルと下位ニブル

を入れ換えます。「d」が「0」の場合、結

果は W レジスタに書き込まれます。「d」が「1」の場合、結果はレジスタ「f」に書

き込まれます。

TRIS Load TRIS Register with W

構文 : [ label ] TRIS f

オペランド : 5 f 7

動作 : (W) TRIS register ‘f’

影響を受ける

ステータス :なし

説明 : W レジスタから、TRIS レジスタにデータ

を移動します。

「f」= 5 の場合、TRISA にデータが書き込

まれます。

「f」= 6 の場合、TRISB にデータが書き込

まれます。

「f」= 7 の場合、TRISC にデータが書き込

まれます。

XORLW Exclusive OR literal with W

構文 : [ label ] XORLW k

オペランド : 0 k 255

動作 : (W) .XOR. k W)

影響を受ける

ステータス :Z

説明 : W レジスタの内容と 8 ビットのリテラル

「k」で XOR 演算します。結果は W レジス

タに書き込まれます。

XORWF Exclusive OR W with f

構文 : [ label ] XORWF f,d

オペランド : 0 f 127d [0,1]

動作 : (W) .XOR. (f) destination)

影響を受ける

ステータス :Z

説明 : W レジスタの内容とレジスタ「f」で XOR演算します。「d」が「0」の場合、結果は

W レジスタに書き込まれます。「d」が

「1」の場合、結果はレジスタ「f」に書き

戻されます。

DS41452C_JP - p.278 2013 Microchip Technology Inc.

Page 279: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.0 電気的仕様

絶対 大定格 ( † )

通電中の周囲温度 ............................................................................................................................... -40 ~ +125 ℃

保管温度.............................................................................................................................................. -65 ~ +150 ℃

VSS に対する VDD の電圧 (PIC16F1516/7/8/9) .................................................................................... -0.3 ~ +6.5 V

VSS に対する VDD の電圧 (PIC16LF1516/7/8/9).................................................................................. -0.3 ~ +4.0 V

Vss に対する MCLR の電圧 ................................................................................................................. -0.3 ~ +9.0 V

VSS に対する他の全てのピンの電圧...................................................................................... -0.3 V ~ (VDD + 0.3 V)

総消費電力 (1) ................................................................................................................................................ 800 mW

VSS ピンからの 大電流 ( 産業用温度レンジ : -40 ℃ TA +85 ℃ )........................................................... 340 mA

VSS ピンからの 大電流 ( 拡張温度レンジ : -40 ℃ TA +125 ℃ ) ............................................................ 140 mA

VDD ピンへの 大電流 ( 産業用温度レンジ : -40 ℃ TA +85 ℃ ) .............................................................. 255 mA

VDD ピンへの 大電流 ( 拡張温度レンジ : -40 ℃ TA +125 ℃ ) ............................................................... 105 mA

クランプ電流 IK (VPIN < 0 または VPIN > VDD)20 mA

各 I/O ピンの 大出力シンク電流.................................................................................................................... 25 mA

各 I/O ピンの 大出力ソース電流.................................................................................................................... 25 mA

Note 1: 消費電力は以下の式によって計算できます。PDIS = VDD x {IDD - IOH} + {(VDD - VOH) x IOH} + (VOl x IOL)

† NOTICE: 上記の「絶対 大定格」を超えるストレスを加えると、デバイスに修復不能な損傷を与える可能性があります。絶対 大定格は定格ストレスのみを示すものであり、上記の状態または本仕様書の動作条件に示されている規定値を超える状態でデバイスが正常に機能する事を示すものではありません。 大定格の状態に長時間放置すると、デバイスの信頼性に影響を与える場合があります。

2013 Microchip Technology Inc. DS41452C_JP - p.279

Page 280: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-1: PIC16F1516/7/8/9 の電圧と周波数、-40 ℃ TA +125 ℃

図 25-2: PIC16LF1516/7/8/9 の電圧と周波数、-40 ℃ TA +125 ℃

Note 1: 網掛けの部分は、電圧と周波数の可能な組み合わせを示しています。

2: 各オシレータモードでサポートされる周波数は、表 25-1 を参照してください。

0

2.3

Frequency (MHz)

VD

D (

V)

4 2010 16

5.5

2.5

Note 1: 網掛けの部分は、電圧と周波数の可能な組み合わせを示しています。

2: 各オシレータモードでサポートされる周波数は、表 25-1 を参照してください。

1.8

0

2.5

Frequency (MHz)

VD

D (

V)

4 2010 16

3.6

DS41452C_JP - p.280 2013 Microchip Technology Inc.

Page 281: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-3: デバイス VDD と温度に対する HFINTOSC の周波数精度

125

25

2.0

0

60

85

VDD (V)

4.0 5.04.5

Tem

per

atu

re (℃

)

2.5 3.0 3.5 5.51.8-40

-20

-15% to +12.5%

-15% to +12.5%

± 8%

± 6.5%

2013 Microchip Technology Inc. DS41452C_JP - p.281

Page 282: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.1 DC 特性 : 電源電圧

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

D001 VDD 電源電圧 (VDDMIN、VDDMAX)

1.82.5

--

3.63.6

VV

FOSC 16 MHz:FOSC 20 MHz

D001 2.32.5

--

5.55.5

VV

FOSC 16 MHz:FOSC 20 MHz

D002* VDR RAM データ保持電圧 (1)

1.5 - - V デバイスがスリープの場合

D002* 1.7 - - V デバイスがスリープの場合

D002A* VPOR パワーオン リセット リリース電圧 - 1.6 - V

D002B* VPORR パワーオン リセット リアーム電圧

- 0.8 - V

D002B* - 1.42 - V

D003 VADFVR ADC 用の固定参照電圧値 -8 - 6 % 1.024 V、VDD 2.5 V2.048 V、VDD 2.5 V4.096 V、VDD 4.75 V

D004* SVDD 内部パワーオン リセット信号を保証

する VDD の立ち上がり速度

0.05 - - V/ms 詳細は、6.1「パワーオン リセット

(POR)」を参照してください。

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: これは、スリープで VDD を下げた時に RAM データを失わない 小値です。

DS41452C_JP - p.282 2013 Microchip Technology Inc.

Page 283: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-4: VDD の立ち上がりが遅い場合の POR と POR リアーム

VDD

VPOR

VPORR

VSS

VSS

NPOR

TPOR(3)

POR REARM

Note 1: NPOR が Low の時、デバイスはリセット状態に保持されます。

2: TPOR = 1 s (Typ.) です。

3: TVLOW = 2.7 s (Typ.) です。

TVLOW(2)

2013 Microchip Technology Inc. DS41452C_JP - p.283

Page 284: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.2 DC 特性 消費電流 (IDD)

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号デバイス特性 小値 代表値† 大値 単位

条件

VDD Note

消費電流 (IDD)(1、2、3)

D010 - 8.0 14 A 1.8 Fosc = 32 kHzLP オシレータ -40 ℃ TA +85 ℃

- 12.0 31 A 3.0

D010 - 11 28 A 2.3 Fosc = 32 kHz LP オシレータ -40 ℃ TA +85 ℃

- 13 38 A 3.0

- 14 45 A 5.0

D011 - 60 95 A 1.8 FOSC = 1 MHzXT オシレータ - 110 180 A 3.0

D011 - 92 170 A 2.3 FOSC = 1 MHzXT オシレータ - 140 230 A 3.0

- 170 350 A 5.0

D012 - 150 240 A 1.8 FOSC = 4 MHzXT オシレータ - 260 430 A 3.0

D012 - 190 450 A 2.3 FOSC = 4 MHzXT オシレータ - 310 500 A 3.0

- 370 650 A 5.0

D013 - 25 31 A 1.8 FOSC = 500 kHzEC オシレータ

低消費電力モード- 35 50 A 3.0

D013 - 25 40 A 2.3 FOSC = 500 kHzEC オシレータ

低消費電力モード- 35 55 A 3.0

- 40 60 A 5.0

D014 - 120 210 A 1.8 FOSC = 4 MHzEC オシレータ

中消費電力モード- 210 380 A 3.0

D014 - 160 250 A 2.3 FOSC = 4 MHzEC オシレータ

中消費電力モード- 260 380 A 3.0

- 330 480 A 5.0

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: アクティブ動作モードにおける IDD の計測値は、全て以下の条件でテストしています。OSC1 = 外部矩形波 ( レール

ツーレール )、I/O ピンは全て 3 ステートで VDD にプル、MCLR = VDD、WDT 無効

2: 消費電流は、主に動作電圧と周波数の関数です。これ以外にも、I/O ピンの負荷とスイッチング レート、オシレータ

の種類、内部コードの実行パターン、温度等の要因によって変化します。

3: 0.1 F コンデンサを VCAP ピンに接続します (PIC16F1516/7/8/9 の場合のみ )。4: RC オシレータ構成の場合、REXT を流れる電流は含まれていません。この抵抗を流れる電流は、IR = VDD/2REXT (mA)

の式で求める事ができます (REXT の単位は k)。

DS41452C_JP - p.284 2013 Microchip Technology Inc.

Page 285: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

消費電流 (IDD)(1、2、3)

D014A - 1.0 1.5 mA 3.0 FOSC = 20 MHzEC オシレータ

高消費電力モード- 1.2 2.0 mA 3.6

D014A - 1.4 1.5 mA 3.0 FOSC = 20 MHzEC オシレータ

高消費電力モード- 1.7 2.0 mA 5.0

D015 - 5.0 12 A 1.8 FOSC = 31 kHzLFINTOSC-40 ℃ TA +85 ℃

- 10 31 A 3.0

D015 - 18 25 A 2.3 FOSC = 31 kHzLFINTOSC-40 ℃ TA +85 ℃

- 24 35 A 3.0

- 25 40 A 5.0

D016 - 110 380 A 1.8 FOSC = 500 kHzHFINTOSC - 150 400 A 3.0

D016 - 150 330 A 2.3 FOSC = 500 kHzHFINTOSC - 210 360 A 3.0

- 335 400 A 5.0

D017 - 0.41 0.90 mA 1.8 FOSC = 8 MHzHFINTOSC - 0.70 1.00 mA 3.0

D017 - 0.35 0.75 mA 2.3 FOSC = 8 MHzHFINTOSC - 0.69 1.00 mA 3.0

- 0.75 1.10 mA 5.0

D018 - 0.65 1.30 mA 1.8 FOSC = 16 MHzHFINTOSC - 1.10 1.50 mA 3.0

D018 - 0.70 1.30 mA 2.3 FOSC = 16 MHzHFINTOSC - 1.00 1.50 mA 3.0

- 1.20 1.70 mA 5.0

25.2 DC 特性 消費電流 (IDD) ( 続き )

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号デバイス特性 小値 代表値† 大値 単位

条件

VDD Note

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: アクティブ動作モードにおける IDD の計測値は、全て以下の条件でテストしています。OSC1 = 外部矩形波 ( レール

ツーレール )、I/O ピンは全て 3 ステートで VDD にプル、MCLR = VDD、WDT 無効

2: 消費電流は、主に動作電圧と周波数の関数です。これ以外にも、I/O ピンの負荷とスイッチング レート、オシレータ

の種類、内部コードの実行パターン、温度等の要因によって変化します。

3: 0.1 F コンデンサを VCAP ピンに接続します (PIC16F1516/7/8/9 の場合のみ )。4: RC オシレータ構成の場合、REXT を流れる電流は含まれていません。この抵抗を流れる電流は、IR = VDD/2REXT (mA)

の式で求める事ができます (REXT の単位は k)。

2013 Microchip Technology Inc. DS41452C_JP - p.285

Page 286: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

消費電流 (IDD)(1、2、3)

D020 - 1.0 1.80 mA 3.0 FOSC = 20 MHzHS オシレータ - 1.2 2.10 mA 3.6

D020 - 1.4 1.70 mA 3.0 FOSC = 20 MHzHS オシレータ - 1.7 2.10 mA 5.0

D021 - 150 220 A 1.8 FOSC = 4 MHzEXTRC (Note 4)- 250 380 A 3.0

D021 - 165 330 A 2.3 FOSC = 4 MHzEXTRC (Note 4)- 280 420 A 3.0

- 350 500 A 5.0

25.2 DC 特性 消費電流 (IDD) ( 続き )

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号デバイス特性 小値 代表値† 大値 単位

条件

VDD Note

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: アクティブ動作モードにおける IDD の計測値は、全て以下の条件でテストしています。OSC1 = 外部矩形波 ( レール

ツーレール )、I/O ピンは全て 3 ステートで VDD にプル、MCLR = VDD、WDT 無効

2: 消費電流は、主に動作電圧と周波数の関数です。これ以外にも、I/O ピンの負荷とスイッチング レート、オシレータ

の種類、内部コードの実行パターン、温度等の要因によって変化します。

3: 0.1 F コンデンサを VCAP ピンに接続します (PIC16F1516/7/8/9 の場合のみ )。4: RC オシレータ構成の場合、REXT を流れる電流は含まれていません。この抵抗を流れる電流は、IR = VDD/2REXT (mA)

の式で求める事ができます (REXT の単位は k)。

DS41452C_JP - p.286 2013 Microchip Technology Inc.

Page 287: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

2013 Microchip Technology Inc. DS41452C_JP - p.287

25.3 DC 特性 : パワーダウン電流 (IPD)

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号デバイス特性 小値 代表値†

大値

+85 ℃大値

+125 ℃単位

条件

VDD Note

パワーダウン電流 (IPD)(2、4)

D022 ベース IPD - 0.02 1.0 8.0 A 1.8 WDT、BOR、FVR、SOSC は無効。

周辺モジュールは全て非アクティブ- 0.03 2.0 9.0 A 3.0

D022 ベース IPD - 0.20 3.0 10 A 2.3 WDT、BOR、FVR、SOSC は無効。

周辺モジュールは全て非アクティブ。

低消費電力レギュレータはアクティブ- 0.30 4.0 12 A 3.0

- 0.47 6.0 15 A 5.0

D023 - 0.50 6.0 14 A 1.8 LPWDT の電流 (Note 1)

- 0.80 7.0 17 A 3.0

D023 - 0.50 6.0 15 A 2.3 LPWDT の電流 (Note 1)

- 0.77 7.0 20 A 3.0

- 0.85 8.0 22 A 5.0

D023A - 8.5 23 25 A 1.8 FVR の電流 (Note 1)

- 8.5 24 27 A 3.0

D023A - 18 26 30 A 2.3 FVR の電流 (Note 1)

- 19 27 37 A 3.0

- 20 29 45 A 5.0

D024 - 8.0 17 20 A 3.0 BOR の電流 (Note 1)

D024 - 8.0 17 30 A 3.0 BOR の電流 (Note 1)

- 9.0 20 40 A 5.0

D024A - 0.30 4.0 8.0 A 3.0 LPBOR の電流

D024A - 0.30 4.0 14 A 3.0 LPBOR の電流 (Note 1)

- 0.45 8.0 17 A 5.0

D025 - 0.3 5.0 9.0 A 1.8 SOSC の電流 (Note 1)

- 0.5 8.5 12 A 3.0

D025 - 1.1 6.0 10 A 2.3 SOSC の電流 (Note 1)

- 1.3 8.5 20 A 3.0

- 1.4 10 25 A 5.0

D026 - 0.10 1.0 9.0 A 1.8 ADC の電流 (Note 1、3)、A/D 変換を実行中でない場合- 0.10 2.0 10 A 3.0

D026 - 0.16 3.0 10 A 2.3 ADC の電流 (Note 1、3)、A/D 変換を実行中でない場合- 0.40 4.0 11 A 3.0

- 0.50 6.0 16 A 5.0

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計

上の目安であり、テストしていません。

Note 1: 周辺モジュールの 電流は、この制限値からベース IPD 電流を減算して求める事ができます。消費電流の合計は 大

値を使って計算してください。

2: スリープ中のパワーダウン電流は、オシレータの種類によって変化する事はありません。パワーダウン電流は、デバ

イスをスリープに移行し、全ての I/O ピンをハイインピーダンス状態にした上で VDD に接続して計測しています。

3: ADC のクロック源は FRC です。

4: VREGPM = 1 (PIC16F1516/7/8/9 の場合のみ )

Page 288: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

パワーダウン電流 (IPD)(2、4)

D026A* - 250 - - A 1.8 ADC の電流 (Note 1、3)、A/D 変換を実行中の場合- 250 - - A 3.0

D026A* - 280 - - A 2.3 ADC の電流 (Note 1、3)、A/D 変換を実行中の場合- 280 - - A 3.0

- 280 - - A 5.0

25.3 DC 特性 : パワーダウン電流 (IPD) ( 続き )

PIC16LF1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

PIC16F1516/7/8/9標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号デバイス特性 小値 代表値†

大値

+85 ℃大値

+125 ℃単位

条件

VDD Note

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計

上の目安であり、テストしていません。

Note 1: 周辺モジュールの 電流は、この制限値からベース IPD 電流を減算して求める事ができます。消費電流の合計は 大

値を使って計算してください。

2: スリープ中のパワーダウン電流は、オシレータの種類によって変化する事はありません。パワーダウン電流は、デバ

イスをスリープに移行し、全ての I/O ピンをハイインピーダンス状態にした上で VDD に接続して計測しています。

3: ADC のクロック源は FRC です。

4: VREGPM = 1 (PIC16F1516/7/8/9 の場合のみ )

DS41452C_JP - p.288 2013 Microchip Technology Inc.

Page 289: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.4 DC 特性 : I/O ポート

DC 特性

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

VIL 入力 Low 電圧

I/O ポート :D030 TTL バッファ使用 - - 0.8 V 4.5 V VDD 5.5 V

D030A - - 0.15 VDD V 1.8 V VDD 4.5 V

D031 シュミットトリガ バッファ

使用

- - 0.2 VDD V 2.0 V VDD 5.5 V

I2C™ レベル使用 - - 0.3 VDD V

SMBus レベル使用 - - 0.8 V 2.7 V VDD 5.5 V

D032 MCLR、OSC1 (RC モード )(1) - - 0.2 VDD V (Note 1)

D033 OSC1 (HS モード ) - - 0.3 VDD V

VIH 入力 High 電圧

I/O ポート : - -

D040 TTL バッファ使用 2.0 - - V 4.5 V VDD 5.5 V

D040A 0.25 VDD + 0.8

- - V 1.8 V VDD 4.5 V

D041 シュミットトリガ バッファ

使用

0.8 VDD - - V 2.0 V VDD 5.5 V

I2C™ レベル使用 0.7 VDD - - V

SMBus レベル使用 2.1 - - V 2.7 V VDD 5.5 V

D042 MCLR 0.8 VDD - - V

D043A OSC1 (HS モード ) 0.7 VDD - - V

D043B OSC1 (RC モード ) 0.9 VDD - - V VDD > 2.0 V (Note 1)

IIL 入力リーク電流 (2)

D060 I/O ポート - ± 5

± 5

± 125

± 1000

nA

nA

VSS VPIN VDD、ピンは

ハイインピーダンス (85 ℃ )125 ℃

D061 MCLR(3) - ± 50 ± 200 nA VSS VPIN VDD (85 ℃ )IPUR 弱プルアップ電流

D070* 2525

100140

200300

AA

VDD = 3.3 V、VPIN = VSS

VDD = 5.0 V、VPIN = VSS

VOL 出力 Low 電圧 (4)

D080 I/O ポート- - 0.6 V

IOL = 8 mA、VDD = 5 VIOL = 6 mA、VDD = 3.3 VIOL = 1.8 mA、VDD = 1.8 V

VOH 出力 High 電圧 (4)

D090 I/O ポートVDD - 0.7 - - V

IOH = 3.5 mA、VDD = 5 VIOH = 3 mA、VDD = 3.3 VIOH = 1 mA、VDD = 1.8 V

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: RC オシレータ構成では、OSC1/CLKIN ピンはシュミットトリガ入力です。RC モードでは外部クロックの使用を推奨

しません。

2: 負の電流値は、ピンによるソース電流として定義しています。

3: MCLR ピンのリーク電流は、印加する電圧レベルによって大きく変化します。仕様値のレベルは、通常の動作条件での

値を表します。異なる入力電圧では、より大きなリーク電流が計測される事があります。

4: CLKOUT モードの OSC2 を含みます。

2013 Microchip Technology Inc. DS41452C_JP - p.289

Page 290: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

出力ピンに対する容量性負荷の仕様

D101* COSC2 OSC2 ピン - - 15 pF XT、HS、LP モードで外部ク

ロックを使って OSC1 を駆動

している場合

D101A* CIO 全ての I/O ピン - - 50 pF

VCAP コンデンサ充電

D102* 充電電流 - - 200 A

D102A* 充電完了時のソース / シンク

能力

- - 0.0 mA

25.4 DC 特性 : I/O ポート ( 続き )

DC 特性

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +85 ℃ ( 産業用温度レンジ )

-40 ℃ TA +125 ℃ ( 拡張温度レンジ )

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: RC オシレータ構成では、OSC1/CLKIN ピンはシュミットトリガ入力です。RC モードでは外部クロックの使用を推奨

しません。

2: 負の電流値は、ピンによるソース電流として定義しています。

3: MCLR ピンのリーク電流は、印加する電圧レベルによって大きく変化します。仕様値のレベルは、通常の動作条件での

値を表します。異なる入力電圧では、より大きなリーク電流が計測される事があります。

4: CLKOUT モードの OSC2 を含みます。

DS41452C_JP - p.290 2013 Microchip Technology Inc.

Page 291: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.5 メモリ プログラミングの要件

DC 特性標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

プログラムメモリのプログラミング仕様

D110 VIHH MCLR/VPP ピンの電圧 8.0 - 9.0 V (Note 2)

D111 IDDP プログラミング中の消費電流 - - 10 mA

D112 VBE バルク消去用 VDD 2.7 - VDDMAX V

D113 VPEW 書き込みまたは行消去用 VDD VDDMIN - VDDMAX V

D114 IPPPGM 消去 / 書き込み時の MCLR/VPP

の電流

- 1.0 - mA

D115 IDDPGM 消去 / 書き込み時の VDD の電流 - 5.0 - mA

プログラム フラッシュメモリ

D121 EP セル書き込み耐性 10K - - E/W -40~ +85 ℃ (Note 1)

D122 VPRW 読み書き用 VDD VDDMIN - VDDMAX V

D123 TIW 自己タイマによる書き込みサイクル時間

- 2 2.5 ms

D124 TRETD 特性保持期間 - 40 - 年 他の仕様値に違反していない場合

D125 EHEFC 高書き込み耐性フラッシュセル 100K - - E/W 0~ +60 ℃、下位バイト、後の 128 アドレス

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上

の目安であり、テストしていません。

Note 1: 自己書き込みとブロック消去の場合です。

2: 単電源プログラミングが無効の場合のみ必要です。

2013 Microchip Technology Inc. DS41452C_JP - p.291

Page 292: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.6 温度仕様

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性 代表値 単位 条件

TH01 JA 接合部 - 大気間熱抵抗 69.7 ℃ /W 28 ピン SOIC パッケージ

60.0 ℃ /W 28 ピン SPDIP パッケージ

71.0 ℃ /W 28 ピン SSOP パッケージ

27.5 ℃ /W 28 ピン UQFN (4x4 mm) パッケージ

47.2 ℃ /W 40 ピン PDIP パッケージ

41.0 ℃ /W 40 ピン UQFN (5x5mm) パッケージ

49.8 ℃ /W 44 ピン TQFP パッケージ

TH02 JC 接合部 - ケース間熱抵抗 18.9 ℃ /W 28 ピン SOIC パッケージ

29.0 ℃ /W 28 ピン SPDIP パッケージ

24.0 ℃ /W 28 ピン SSOP パッケージ

24.0 ℃ /W 28 ピン UQFN (4x4 mm) パッケージ

24.7 ℃ /W 40 ピン PDIP パッケージ

5.5 ℃ /W 40 ピン UQFN (5x5mm) パッケージ

26.7 ℃ /W 44 ピン TQFP パッケージ

TH03 TJMAX 高接合部温度 150 ℃

TH04 PD 電力損失 - W PD = PINTERNAL + PI/O

TH05 PINTERNAL 内部消費電力 - W PINTERNAL = IDD x VDD(1)

TH06 PI/O I/O 消費電力 - W PI/O = (IOL * VOL) + (IOH * (VDD - VOH))

TH07 PDER ディレイティング後電力 - W PDER = PDMAX (TJ - TA)/JA(2)

Note 1: IDD は、出力ピンの負荷を駆動しないでチップのみを動作させた時の電流です。

2: TA = 周囲温度

3: TJ = 接合部温度

DS41452C_JP - p.292 2013 Microchip Technology Inc.

Page 293: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.7 タイミング パラメータの記号

タイミング パラメータの記号は、以下のどちらかの形式で表します。

図 25-5: 負荷条件

1. TppS2ppS

2. TppS

T

F 周波数 T 時間

小文字 (pp) の種類と意味 :

pp

cc CCP1 osc OSC1

ck CLKOUT rd RD

cs CS rw RD または WR

di SDIx sc SCKx

do SDO ss SS

dt Data in t0 T0CKI

io I/O PORT t1 T1CKI

mc MCLR wr WR

大文字の種類と意味 :

S

F Fall P Period

H High R Rise

I Invalid (High-impedance) V Valid

L Low Z High-impedance

VSS

CL

凡例 : CL = 全てのピンは 50 pF、OSC2 出力は 15 pF です。

Load Condition

Pin

2013 Microchip Technology Inc. DS41452C_JP - p.293

Page 294: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

25.8 AC 特性 :

図 25-6: クロック タイミング

表 25-1: クロック オシレータのタイミング要件

OSC1/CLKIN

OSC2/CLKOUT

Q4 Q1 Q2 Q3 Q4 Q1

OS02

OS03OS04 OS04

OSC2/CLKOUT(LP,XT,HS Modes)

(CLKOUT Mode)

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

OS01 FOSC 外部 CLKIN 周波数 (1) DC - 0.5 MHz EC オシレータモード ( 低消費電力 )DC - 4 MHz EC オシレータモード ( 中消費電力 )DC - 20 MHz EC オシレータモード ( 高消費電力 )

オシレータ周波数 (1) - 32.768 - kHz LP オシレータモード

0.1 - 4 MHz XT オシレータモード

1 - 4 MHz HS オシレータモード

1 - 20 MHz HS オシレータモード、VDD > 2.7 VDC - 4 MHz RC オシレータモード、VDD > 2.0 V

OS02 TOSC 外部 CLKIN 周期 (1) 27 - s LP オシレータモード

250 - ns XT オシレータモード

50 - ns HS オシレータモード

50 - ns EC オシレータモード

オシレータ周期 (1) - 30.5 - s LP オシレータモード

250 - 10,000 ns XT オシレータモード

50 - 1,000 ns HS オシレータモード

250 - - ns RC オシレータモード

OS03 TCY 命令サイクル時間 (1) 200 TCY DC ns TCY = FOSC/4

OS04* TosH,TosL

外部 CLKIN High、外部 CLKIN Low

2 - - s LP オシレータ

100 - - ns XT オシレータ

20 - - ns HS オシレータ

OS05* TosR、TosF

外部 CLKIN 立ち上がり、

外部 CLKIN 立ち下がり

0 - ns LP オシレータ

0 - ns XT オシレータ

0 - ns HS オシレータ

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: 命令サイクル周期 (TCY) は、入力オシレータのタイムベース周期の 4 倍です。全ての仕様値は、標準動作条件下でデバ

イスにコードを実行させた時の、特定オシレータタイプの特性データに基づいています。これらの仕様の制限値を超え

るとオシレータの動作が不安定になったり、予測以上の電流を消費する事があります。全てのデバイスは、OSC1 ピン

に外部クロックを入力した状態で「 小値」で動作をテストしています。外部クロック入力を使った場合、「 大値」

のサイクル時間の制限値はどのデバイスの場合も「DC」( クロックなし ) です。

DS41452C_JP - p.294 2013 Microchip Technology Inc.

Page 295: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-2: オシレータのパラメータ

図 25-7: CLKOUT と I/O タイミング

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性

周波数

許容誤差小値 代表値† 大値 単位 条件

OS08 HFOSC 内部校正済み HFINTOSC周波数 (1) 6.5% - 16.0 - MHz VDD = 3.0 V (25 ℃ ) (Note 2)

OS09 LFOSC 内部 LFINTOSC周波数 - - 31 - kHz (Note 3)

OS10* TIOSC ST HFINTOSC スリープからの復帰起動時間 - - 5 15 s

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: これらのオシレータ周波数の許容誤差を確保するには、デバイスのなるべく近くで VDD と VSS にデカップリング コン

デンサを接続する必要があります。0.1 F のコンデンサと 0.01 F のコンデンサを並列に接続する事を推奨します。

2: 図 25-3 参照。VDD と温度に対する HFINTOSC の周波数精度

3: 図 26-61 と図 26-62 を参照してください。VDD と温度に対する LFINTOSC の周波数特性

FOSC

CLKOUT

I/O pin(Input)

I/O pin(Output)

Q4 Q1 Q2 Q3

OS11

OS19

OS13

OS15

OS18, OS19

OS20OS21

OS17

OS16

OS14

OS12

OS18

Old Value New Value

Write Fetch Read ExecuteCycle

2013 Microchip Technology Inc. DS41452C_JP - p.295

Page 296: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

DS41452C_JP - p.296 2013 Microchip Technology Inc.

表 25-3: CLKOUT と I/O のタイミング パラメータ

図 25-8: リセット、ウォッチドッグ タイマ、オシレータ起動タイマ、パワーアップ タイマのタイミング

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

OS11 TosH2ckL FOSCから CLKOUTまでの時間 (1) - - 70 ns VDD = 3.3 ~ 5.0 V

OS12 TosH2ckH FOSCから CLKOUTまでの時間 (1) - - 72 ns VDD = 3.3 ~ 5.0 V

OS13 TckL2ioV CLKOUTからポート出力確定までの

時間 (1) - - 20 ns

OS14 TioV2ckH ポート入力確定から CLKOUTまでの

時間 (1) TOSC + 200 ns - - ns

OS15 TosH2ioV Fosc (Q1 サイクル ) からポート出力

確定までの時間

- 50 70* ns VDD = 3.3 ~ 5.0 V

OS16 TosH2ioI Fosc (Q2 サイクル ) からポート入力

無効までの時間 (I/O 入力のホールド時間 )

50 - - ns VDD = 3.3 ~ 5.0 V

OS17 TioV2osH ポート入力確定から Fosc (Q2 サイ

クル ) までの時間

(I/O 入力のセットアップ時間 )

20 - - ns

OS18 TioR ポート出力立ち上がり時間 --

4015

7232

ns VDD = 1.8 VVDD = 3.3 ~ 5.0 V

OS19 TioF ポート出力立ち下がり時間 --

2815

5530

ns VDD = 1.8 VVDD = 3.3 ~ 5.0 V

OS20* Tinp INT ピン入力の High または Low 時間 25 - - ns

OS21* Tioc 状態変化割り込みの新しい入力レベル

時間

25 - - ns

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。

Note 1: RC モードで CLKOUT 出力を 4 x TOSC として計測しています。

VDD

MCLR

InternalPOR

PWRTTime-out

OSCStart-Up Time

Internal Reset(1)

Watchdog Timer

33

32

30

3134

I/O pins

34

Note 1: Low にアサートされます。

Reset(1)

Page 297: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-9: ブラウンアウト リセットのタイミングと特性

VBOR

VDD

(Device in Brown-out Reset) (Device not in Brown-out Reset)

33(1)

Note 1: コンフィグレーション ワードの PWRTE ビットを「0」に設定した場合のみ、64 ms の遅延があります。

PWRTE = 0 かつ VREGEN = 1 の場合の遅延は 2 ms です。

Reset

(due to BOR)

VBOR and VHYST

37

2013 Microchip Technology Inc. DS41452C_JP - p.297

Page 298: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-4: リセット、ウォッチドッグ タイマ、オシレータ起動タイマ、パワーアップ タイマ、ブラウンアウト リセットに関するパラメータ

図 25-10: Timer0 と Timer1 の外部クロックのタイミング

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

30 TMCL MCLR パルス幅 (Low) 2 - - s

31 TWDTLP 低消費電力ウォッチドッグ タイマタイムアウト時間

10 16 27 ms VDD = 3.3 ~ 5 V、1:16 プリスケーラ使用

32 TOST オシレータ起動タイマ時間 (1) - 1024 - Tosc

33* TPWRT パワーアップ タイマ時間、PWRTE = 0

40 65 140 ms

34* TIOZ MCLR Low またはウォッチドッグ タイマリセットから I/O ハイインピーダンスまでの時間

- - 2.0 s

35 VBOR ブラウンアウト リセット電圧 (2) 2.552.351.80

2.702.451.90

2.852.582.00

VVV

BORV = 0BORV = 1 (PIC16F1516/7/8/9)BORV = 1 (PIC16LF1516/7/8/9)

36* VHYST ブラウンアウト リセットのヒステリシス

0 25 60 mV -40 ~ +85 ℃

37* TBORDC ブラウンアウト リセットのDC 応答時間

1 3 35 s VDD VBOR

38 VLPBOR 低消費電力ブラウンアウトリセット電圧

1.8 2.1 2.5 V LPBOR = 1

* これらのパラメータは特性データであり、テストしていません。† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安

であり、テストしていません。Note 1: オシレータ起動タイマ (OST) は、周波数に関わらず 初の 1024 サイクルをカウントします。

2: これらの電圧の許容誤差を確保するには、デバイスのなるべく近くで VDD と VSS にデカップリング コンデンサを接続する必要があります。0.1 F のコンデンサと 0.01 F のコンデンサを並列に接続する事を推奨します。

T0CKI

T1CKI

40 41

42

45 46

47 49

TMR0 orTMR1

DS41452C_JP - p.298 2013 Microchip Technology Inc.

Page 299: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-5: Timer0 と Timer1 の外部クロック要件

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

40* TT0H T0CKI パルス幅(High)

プリスケーラなし 0.5 TCY + 20 - - ns

プリスケーラあり 10 - - ns

41* TT0L T0CKI パルス幅(Low)

プリスケーラなし 0.5 TCY + 20 - - ns

プリスケーラあり 10 - - ns

42* TT0P T0CKI 周期 以下のどちらか

大きい方 :20または TCY + 40

N

- - ns N = プリスケーラ

の値 (2, 4, ..., 256)

45* TT1H T1CKI High時間

同期、プリスケーラなし 0.5 TCY + 20 - - ns

同期、プリスケーラあり 15 - - ns

非同期 30 - - ns

46* TT1L T1CKI Low時間

同期、プリスケーラなし 0.5 TCY + 20 - - ns

同期、プリスケーラあり 15 - - ns

非同期 30 - - ns

47* TT1P T1CKI入力周期

同期 以下のどちらか

大きい方 :30または TCY + 40

N

- - ns N = プリスケーラ

の値 (1, 2, 4, 8)

非同期 60 - - ns

48 FT1 セカンダリ オシレータ入力周波数レンジ

(T1OSCEN ビットのセットによりオシ

レータを有効化 )

32.4 32.768 33.1 kHz

49* TCKEZTMR1 外部クロックエッジからタイマの

インクリメントまでの遅延

2 TOSC - 7 TOSC - タイマの動作は

同期モード

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であり、

テストしていません。

2013 Microchip Technology Inc. DS41452C_JP - p.299

Page 300: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-11: キャプチャ / コンペア /PWM のタイミング (CCP)

表 25-6: キャプチャ / コンペア /PWM の要件 (CCP)標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

CC01* TccL CCP 入力 Low 時間 プリスケーラなし 0.5TCY + 20 - - ns

プリスケーラあり 20 - - ns

CC02* TccH CCP 入力 High 時間 プリスケーラなし 0.5TCY + 20 - - ns

プリスケーラあり 20 - - ns

CC03* TccP CCP 入力周期 3TCY + 40N

- - ns N = プリスケーラの値(1, 4, 16)

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note: 負荷条件は、図 25-5 を参照してください。

(Capture mode)

CC01 CC02

CC03

CCP

DS41452C_JP - p.300 2013 Microchip Technology Inc.

Page 301: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-7: ADC (Analog-to-Digital Converter) の特性 :(1、2、3)

表 25-8: A/D 変換の要件

標準動作条件 ( 特に明記しない場合 )動作温度 25 ℃でテスト

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

AD01 NR 分解能 - - 10 bit

AD02 EIL 積分直線性誤差 - - ±1.7 LSb VREF = 3.0 V

AD03 EDL 微分直線性誤差 - - ±1 LSb ミッシングコードなしVREF = 3.0 V

AD04 EOFF オフセット誤差 - - ±2.5 LSb VREF = 3.0 V

AD05 EGN ゲインエラー - - ±2.0 LSb VREF = 3.0 V

AD06 VREF 参照電圧 (4) 1.8 - VDD V VREF = (VREF+ -VREF-)

AD07 VAIN フルスケール レンジ VSS - VREF V

AD08 ZAIN アナログ電圧源の

推奨インピーダンス

- - 10 k 入力ピンに外付けの 0.01 F コンデンサ

を使った場合、さらに高い値が可能

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

Note 1: 総絶対誤差には、積分直線性誤差、微分直線性誤差、オフセット誤差、ゲイン誤差が含まれます。

2: A/D 変換結果は、入力電圧が増大しても減少する事はありません。また、ミッシングコードもありません。

3: ADC の VREF は、外部 VREF、VDD ピン、FVR のうち参照入力として選択したものです。

4: ADC の参照電圧 (Ref+) は選択された参照入力であり、VREF+ ピン、VDD ピン、または参照入力として選択された FVRのいずれかです。FVR バッファ 1 の出力には 2.048 V または 4.096 V のどちらかを選択する必要があります

(ADFVR<1:0> = 1x)。

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ

番号記号 特性 小値 代表値† 大値 単位 条件

AD130* TAD ADC クロック周期 1.0 - 9.0 s FOSC に基づく

FRC オシレータ周期 1.0 2.5 6.0 s ADCS<1:0> = 11(FRC オシレータモード )

AD131 TCNV 変換時間

( アクイジション時間を除く )(1)- 11 - TAD GO/DONE ビットがセットされてから

変換が完了するまでの時間

AD132* TACQ アクイジション時間 - 5.0 - s

AD133* THCD ホールド コンデンサは切断 -

-

0.5*TAD + 40 ns(0.5*TAD + 40 ns)

~(0.5*TAD + 40 ns)

-

-

ADCS<2:0> = X11 (FOSC に基づく )

ADCS<2:0> = X11 (ADC FRC モード )

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であり、

テストしていません。

Note 1: ADRES レジスタは次の TCY サイクルで読み出し可能です。

2013 Microchip Technology Inc. DS41452C_JP - p.301

Page 302: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-12: A/D 変換タイミング ( 通常モード )

図 25-13: A/D 変換タイミング ( スリープ )

AD131

AD130

BSF ADCON0, GO

Q4

ADC CLK

ADC Data

ADRES

ADIF

GO

Sample

OLD_DATA

Sampling Stopped

DONE

NEW_DATA

7 6 5 3 2 1 0

Note 1: ADC クロック源に FRC オシレータを選択した場合、ADC クロックの起動前に TCY の時間が追加されます。

これによって SLEEP命令の実行が可能です。

1 TCY

4

AD134 (TOSC/2(1))

1 TCY

AD132

AD132

AD131

AD130

BSF ADCON0, GO

Q4

ADC CLK

ADC Data

ADRES

ADIF

GO

Sample

OLD_DATA

Sampling Stopped

DONE

NEW_DATA

7 5 3 2 1 0

Note 1: ADC クロック源に FRC オシレータを選択した場合、ADC クロックの起動前に TCY の時間が追加されます。

これによって SLEEP命令の実行が可能です。

AD134

46

1 TCY(TOSC/2 + TCY(1))

1 TCY

DS41452C_JP - p.302 2013 Microchip Technology Inc.

Page 303: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-9: 低ドロップアウト (LDO) レギュレータの特性

図 25-14: USART 同期送信 ( マスタ / スレーブ ) のタイミング

表 25-10: USART 同期送信の要件

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

LDO01 LDO 調整電圧 - 3.0 - V

LDO02 LDO 外付けコンデンサ 0.1 - 1 F

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計上の目安であ

り、テストしていません。

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 大値 単位 条件

US120 TCKH2DTV 同期送信 ( マスタとスレーブ )クロック High からデータ出力確定までの時間

3.0 ~ 5.5 V - 80 ns

1.8 ~ 5.5 V - 100 ns

US121 TCKRF クロック出力の立ち上がり /立ち下がり時間 ( マスタモード )

3.0 ~ 5.5 V - 45 ns

1.8 ~ 5.5 V - 50 ns

US122 TDTRF データ出力の立ち上がり /立ち下がり時間

3.0 ~ 5.5 V - 45 ns

1.8 ~ 5.5 V - 50 ns

Note: 負荷条件は、図 25-5 を参照してください。

US121 US121

US120 US122

CK

DT

2013 Microchip Technology Inc. DS41452C_JP - p.303

Page 304: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-15: USART 同期受信 ( マスタ / スレーブ ) のタイミング

表 25-11: USART 同期受信の要件

標準動作条件 ( 特に明記しない場合 )動作温度 -40 ℃ TA +125 ℃

パラメータ 番号

記号 特性 小値 大値 単位 条件

US125 TDTV2CKL 同期受信 ( マスタとスレーブ )CK 前のデータホールド(DT ホールド時間 )

10 - ns

US126 TCKL2DTL CK 後のデータホールド(DT ホールド時間 )

15 - ns

Note: 負荷条件は、図 25-5 を参照してください。

US125

US126

CK

DT

DS41452C_JP - p.304 2013 Microchip Technology Inc.

Page 305: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-16: SPI マスタモードのタイミング (CKE = 0、SMP = 0)

図 25-17: SPI マスタモードのタイミング (CKE = 1、SMP = 1)

SSx

SCKx(CKP = 0)

SCKx(CKP = 1)

SDOx

SDIx

SP70

SP71 SP72

SP73SP74

SP75, SP76

SP78SP79

SP80

SP79SP78

MSb LSbbit 6 - - - - - -1

MSb In LSb Inbit 6 - - - -1

Note: 負荷条件は、 図 25-5 を参照してください。

SSx

SCKx(CKP = 0)

SCKx(CKP = 1)

SDOx

SDIx

SP81

SP71 SP72

SP74

SP75, SP76

SP78SP80

MSb

SP79SP73

MSb In

bit 6 - - - - - -1

LSb Inbit 6 - - - -1

LSb

Note: 負荷条件は、 図 25-5 を参照してください。

2013 Microchip Technology Inc. DS41452C_JP - p.305

Page 306: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-18: SPI スレーブモードのタイミング (CKE = 0)

図 25-19: SPI スレーブモードのタイミング (CKE = 1)

SSx

SCKx(CKP = 0)

SCKx(CKP = 1)

SDOx

SDIx

SP70

SP71 SP72

SP73

SP74

SP75, SP76 SP77

SP78SP79

SP80

SP79SP78

MSb LSbbit 6 - - - - - -1

MSb In bit 6 - - - -1 LSb In

SP83

Note: 負荷条件は、 図 25-5 を参照してください。

SSx

SCKx(CKP = 0)

SCKx(CKP = 1)

SDOx

SDIx

SP70

SP71 SP72

SP82

SP74

SP75, SP76

MSb bit 6 - - - - - -1 LSb

SP77

MSb In bit 6 - - - -1 LSb In

SP80

SP83

Note: 負荷条件は、 図 25-5 を参照してください。

DS41452C_JP - p.306 2013 Microchip Technology Inc.

Page 307: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

表 25-12: SPI モードの要件

パラメータ 番号

記号 特性 小値 代表値† 大値 単位 条件

SP70* TSSL2SCH、TSSL2SCL

SSxからSCKxまたはSCKx入力までの時間 TCY - - ns

SP71* TSCH SCKx 入力 High 時間 ( スレーブモード ) TCY + 20 - - ns

SP72* TSCL SCKx 入力 Low 時間 ( スレーブモード ) TCY + 20 - - ns

SP73* TDIV2SCH、TDIV2SCL

SDIx データ入力から SCKx エッジまでのセットアップ時間

100 - - ns

SP74* TSCH2DIL、TSCL2DIL

SDIx データ入力から SCKx エッジまでのホールド時間

100 - - ns

SP75* TDOR SDO データ出力の立ち上がり時間

3.0 ~ 5.5 V - 10 25 ns

1.8 ~ 5.5 V - 25 50 ns

SP76* TDOF SDOx データ出力の立ち下がり時間

- 10 25 ns

SP77* TSSH2DOZ SSxから SDOx 出力ハイインピーダンスまでの時間

10 - 50 ns

SP78* TSCR SCKx 出力立ち上がり時間 ( マスタモード )

3.0 ~ 5.5 V - 10 25 ns

1.8 ~ 5.5 V - 25 50 ns

SP79* TSCF SCKx 出力の立ち下がり時間 ( マスタモード ) - 10 25 ns

SP80* TSCH2DOV、TSCL2DOV

SCKx エッジから SDOx データ出力確定までの時間

3.0 ~ 5.5 V - - 50 ns

1.8 ~ 5.5 V - - 145 ns

SP81* TDOV2SCH、TDOV2SCL

SCKx エッジに対する SDOx データ出力セットアップ時間

Tcy - - ns

SP82* TSSL2DOV SSエッジから SDOx データ出力確定までの時間

- - 50 ns

SP83* TSCH2SSH、TSCL2SSH

SCKx エッジから SSx までの時間 1.5TCY + 40 - - ns

* これらのパラメータは特性データであり、テストしていません。

† 「代表値」欄のデータは、特に明記しない限り 3.0 V、25 ℃の場合の値です。これらのパラメータは設計

上の目安でありテストしていません。

2013 Microchip Technology Inc. DS41452C_JP - p.307

Page 308: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 25-20: I2C™ バスのスタート / ストップビットのタイミング

表 25-13: I2C™ バスのスタート / ストップビットの要件

パラメータ

番号記号 特性 小値 代表値 大値 単位 条件

SP90* TSU:STA スタート条件 100 kHz モード 4700 - - ns 反復スタート条件時のみ

セットアップ時間 400 kHz モード 600 - -

SP91* THD:STA スタート条件 100 kHz モード 4000 - - ns この期間後、 初のクロックパルスが生成されますホールド時間 400 kHz モード 600 - -

SP92* TSU:STO ストップ条件 100 kHz モード 4700 - - ns

セットアップ時間 400 kHz モード 600 - -

SP93 THD:STO ストップ条件 100 kHz モード 4000 - - ns

ホールド時間 400 kHz モード 600 - -

* これらのパラメータは特性データであり、テストしていません。

Note: 負荷条件は、 図 25-5 を参照してください。

SP91

SP92

SP93SCLx

SDAx

StartCondition

StopCondition

SP90

DS41452C_JP - p.308 2013 Microchip Technology Inc.

Page 309: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

2013 Microchip Technology Inc. DS41452C_JP - p.309

図 25-21: I2C™ バスデータのタイミング

表 25-14: I2C™ バスデータの要件

パラメータ

番号記号 特性 小値 大値 単位 条件

SP100* THIGH クロック High 時間 100 kHz モード 4.0 - s デバイスの動作周波数が1.5 MHz 以上である事が必要

400 kHz モード 0.6 - s デバイスの動作周波数が10 MHz 以上である事が必要

SSP モジュール 1.5TCY - -

SP101* TLOW クロック Low 時間 100 kHz モード 4.7 - s デバイスの動作周波数が1.5 MHz 以上である事が必要

400 kHz モード 1.3 - s デバイスの動作周波数が10 MHz 以上である事が必要

SSP モジュール 1.5TCY - -

SP102* TR SDAx と SCLx の立ち上がり時間

100 kHz モード - 1000 ns

400 kHz モード 20 + 0.1CB 300 ns CB の仕様は 10 ~ 400 pF

SP103* TF SDAx と SCLx の立ち下がり時間

100 kHz モード - 250 ns

400 kHz モード 20 + 0.1CB 250 ns CB の仕様は 10 ~ 400 pF

SP106* THD:DAT データ入力ホールド時間

100 kHz モード 0 - ns

400 kHz モード 0 0.9 s

SP107* TSU:DAT データ入力セットアップ時間

100 kHz モード 250 - ns (Note 2)

400 kHz モード 100 - ns

SP109* TAA クロックから出力確定までの時間

100 kHz モード - 3500 ns (Note 1)

400 kHz モード - - ns

SP110* TBUF バスフリー時間 100 kHz モード 4.7 - s 次の転送が開始可能になるまでに必要なバスの空き時間400 kHz モード 1.3 - s

SP111 CB バス容量性負荷 - 400 pF

* これらのパラメータは特性データであり、テストしていません。

Note 1: デバイスがトランスミッタの場合、意図しないスタート / ストップ条件の発生を防ぐために SCLx の立ち下がりエッジの未定義領域をブリッジする 小内部遅延時間 (min. 300 ns) を確保する必要があります。

2: 高速モード (400 kHz) の I2C™ バスは標準モード (100 kHz) の I2C バスシステムでも使えますが、TSU:DAT 250 ns の要件を満たす必要があります。デバイスが SCLx 信号の Low 期間をストレッチしない場合、自動的にこのケースになります。このようなデバイスが SCLx 信号の Low 期間をストレッチする場合、標準モードの I2C バス仕様に従い、SCLx ラインを解放する TR max. + TSU:DAT = 1000 + 250 = 1250 ns 前に SDAx ラインに次のデータビットを出力する必要があります。

Note: 負荷条件は、 図 25-5 を参照してください。

SP90

SP91 SP92

SP100SP101

SP103

SP106SP107

SP109SP109

SP110

SP102

SCLx

SDAxIn

SDAxOut

Page 310: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.310 2013 Microchip Technology Inc.

Page 311: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

26.0 DC および AC 特性の図表

ここに示す図表は設計上の目安であり、テストは実施していません。

下図表の一部には、仕様動作レンジ外で計測されたデータも含まれます ( 例 : 仕様レンジ外の VDD を使用 )。これら

のデータは情報提供のみを目的として掲載するものであり、デバイスの適切な動作が保証されるのは仕様レンジ内の

みです。

「代表値」は 25 ℃における分布の平均値を表します。「 大値」、「 小値」は、それぞれ ( 平均値 + 3)または ( 平均値 - 3) を表します。は各仕様温度の標準偏差です。

Note: 以下の図表は限られたサンプル数に基づく統計的な結果であり、情報の提供のみを目的とします。ここに記載する性能特性はテストを行っていないため保証されません。以下の図表の一部には、仕様動作レンジ外で計測されたデータも含まれます ( 例 : 仕様レンジ外の電源を使用 )。従ってこれらのデータは保証範囲外です。

2013 Microchip Technology Inc. DS41452C_JP - p.311

Page 312: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-1: IDD、LP オシレータモード、FOSC = 32 kHz、PIC16LF1516/7/8/9 のみ

図 26-2: IDD、LP オシレータモード、FOSC = 32 kHz、PIC16F1516/7/8/9 のみ

Typical

Max.

0

5

10

15

20

25

30

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

Typical

Max.

0

5

10

15

20

25

30

35

40

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

DS41452C_JP - p.312 2013 Microchip Technology Inc.

Page 313: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-3: IDD 代表値、XT および EXTRC オシレータ、PIC16LF1516/7/8/9 のみ

図 26-4: IDD 大値、XT および EXTRC オシレータ、PIC16LF1516/7/8/9 のみ

4 MHz XT

4 MHz EXTRC

1 MHz XT

0

50

100

150

200

250

300

350

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Typical: 25°C

4 MHz XT

4 MHz EXTRC

1 MHz XT

0

50

100

150

200

250

300

350

400

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3

2013 Microchip Technology Inc. DS41452C_JP - p.313

Page 314: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-5: IDD 代表値、XT および EXTRC オシレータ、PIC16F1516/7/8/9 のみ

図 26-6: IDD 大値、XT および EXTRC オシレータ、PIC16F1516/7/8/9 のみ

4 MHz EXTRC

4 MHz XT

1 MHz EXTRC

1 MHz XT

0

50

100

150

200

250

300

350

400

450

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Typical: 25°C

4 MHz EXTRC

4 MHz XT

1 MHz EXTRC

1 MHz XT

0

50

100

150

200

250

300

350

400

450

500

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3

DS41452C_JP - p.314 2013 Microchip Technology Inc.

Page 315: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-7: IDD、EC オシレータ、低消費電力モード、FOSC = 32 kHz、PIC16LF1516/7/8/9 のみ

図 26-8: IDD、EC オシレータ、低消費電力モード、FOSC = 32 kHz、PIC16F1516/7/8/9 のみ

Typical

Max.

0

5

10

15

20

25

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

Typical

Max.

0

5

10

15

20

25

30

35

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

2013 Microchip Technology Inc. DS41452C_JP - p.315

Page 316: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-9: IDD、EC オシレータ、低消費電力モード、FOSC = 500 kHz、PIC16LF1516/7/8/9 のみ

図 26-10: IDD、EC オシレータ、低消費電力モード、FOSC = 500 kHz、PIC16F1516/7/8/9 のみ

Max.

Typical

0

10

20

30

40

50

60

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

Typical

Max.

0

10

20

30

40

50

60

70

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

DS41452C_JP - p.316 2013 Microchip Technology Inc.

Page 317: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-11: IDD 代表値、EC オシレータ、中消費電力モード、PIC16LF1516/7/8/9 のみ

図 26-12: IDD 大値、EC オシレータ、中消費電力モード、PIC16LF1516/7/8/9 のみ

4 MHz

1 MHz

0

50

100

150

200

250

300

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Typical: 25°C

4 MHz

1 MHz

0

50

100

150

200

250

300

350

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3

2013 Microchip Technology Inc. DS41452C_JP - p.317

Page 318: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-13: IDD 代表値、EC オシレータ、中消費電力モード、PIC16F1516/7/8/9 のみ

図 26-14: IDD 大値、EC オシレータ、中消費電力モード、PIC16F1516/7/8/9 のみ

4 MHz

1 MHz

0

50

100

150

200

250

300

350

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Typical: 25°C

4 MHz

1 MHz

0

50

100

150

200

250

300

350

400

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3

DS41452C_JP - p.318 2013 Microchip Technology Inc.

Page 319: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-15: IDD 代表値、EC オシレータ、高消費電力モード、PIC16LF1516/7/8/9 のみ

図 26-16: IDD 大値、EC オシレータ、高消費電力モード、PIC16LF1516/7/8/9 のみ

20 MHz

16 MHz

8 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Typical: 25°C

20 MHz

16 MHz

8 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Max: 85°C + 3

2013 Microchip Technology Inc. DS41452C_JP - p.319

Page 320: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-17: IDD 代表値、EC オシレータ、高消費電力モード、PIC16F1516/7/8/9 のみ

図 26-18: IDD 大値、EC オシレータ、高消費電力モード、PIC16F1516/7/8/9 のみ

20 MHz

16 MHz

8 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Typical: 25°C

20 MHz

16 MHz

8 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Max: 85°C + 3

DS41452C_JP - p.320 2013 Microchip Technology Inc.

Page 321: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-19: IDD、LFINTOSC モード、FOSC = 31 kHz、PIC16LF1516/7/8/9 のみ

図 26-20: IDD、LFINTOSC モード、FOSC = 31 kHz、PIC16F1516/7/8/9 のみ

Typical

Max.

0

5

10

15

20

25

30

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

Typical

Max.

0

5

10

15

20

25

30

35

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

2013 Microchip Technology Inc. DS41452C_JP - p.321

Page 322: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-21: IDD、MFINTOSC モード、FOSC = 500 kHz、PIC16LF1516/7/8/9 のみ

図 26-22: IDD、MFINTOSC モード、FOSC = 500 kHz、PIC16F1516/7/8/9 のみ

Typical

Max.

100

150

200

250

300

350

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

Typical

Max.

100

150

200

250

300

350

400

450

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(μA

)

VDD (V)

Max: 85°C + 3Typical: 25°C

DS41452C_JP - p.322 2013 Microchip Technology Inc.

Page 323: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-23: IDD 代表値、HFINTOSC モード、PIC16LF1516/7/8/9 のみ

図 26-24: IDD 大値、HFINTOSC モード、PIC16LF1516/7/8/9 のみ

16 MHz

8 MHz

4 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Typical: 25°C

16 MHz

8 MHz

4 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Max: 85°C + 3

2013 Microchip Technology Inc. DS41452C_JP - p.323

Page 324: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-25: IDD 代表値、HFINTOSC モード、PIC16F1516/7/8/9 のみ

図 26-26: IDD 大値、HFINTOSC モード、PIC16F1516/7/8/9 のみ

16 MHz

8 MHz

4 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Typical: 25°C

16 MHz

8 MHz

4 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Max: 85°C + 3

DS41452C_JP - p.324 2013 Microchip Technology Inc.

Page 325: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-27: IDD 代表値、HS オシレータ、PIC16LF1516/7/8/9 のみ

図 26-28: IDD 大値、HS オシレータ、PIC16LF1516/7/8/9 のみ

20 MHz

8 MHz

4 MHz

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Typical: 25°C

20 MHz

8 MHz

4 MHz

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

2.0

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IDD

(mA

)

VDD (V)

Max: 85°C + 3

2013 Microchip Technology Inc. DS41452C_JP - p.325

Page 326: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-29: IDD 代表値、HS オシレータ、PIC16F1516/7/8/9 のみ

図 26-30: IDD 大値、HS オシレータ、PIC16F1516/7/8/9 のみ

20 MHz

8 MHz

4 MHz

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Typical: 25°C

20 MHz

8 MHz

4 MHz

0.0

0.5

1.0

1.5

2.0

2.5

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IDD

(mA

)

VDD (V)

Max: 85°C + 3

DS41452C_JP - p.326 2013 Microchip Technology Inc.

Page 327: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-31: IPD ベース電流、低消費電力スリープ、PIC16LF1516/7/8/9 のみ

図 26-32: IPD ベース電流、低消費電力スリープ、(VREGPM = 1)、PIC16F1516/7/8/9 のみ

450

M 85°C 3 Max.

250

300

350

400

450D

(nA

)

Max: 85°C + 3Typical: 25°C

Typical

0

50

100

150

200

250

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IPD

(nA

)

01.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

VDD (V)

Max.600

Max.

300

400

500

600

PD(n

A)

Max: 85°C + 3Typical: 25°C

Typical

0

100

200

300

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IPD

(nA

)

02.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

VDD (V)

2013 Microchip Technology Inc. DS41452C_JP - p.327

Page 328: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-33: IPD、ウォッチドッグ タイマ (WDT)、PIC16LF1516/7/8/9 のみ

図 26-34: IPD、ウォッチドッグ タイマ (WDT)、PIC16F1516/7/8/9 のみ

1.4

Typical

Max.

0.6

0.8

1.0

1.2

1.4

IPD

(μA

)

Max: 85°C + 3Typical: 25°C

Typical

0.0

0.2

0.4

0.6

0 8

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IPD

(μA

0.01.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

VDD (V)

1.2

Typical

Max.

0.6

0.8

1.0

1.2

IPD

(μA

)

Max: 85°C + 3Typical: 25°C

Typical

0.0

0.2

0.4

0.6

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IPD

(μA

0.02.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

VDD (V)

DS41452C_JP - p.328 2013 Microchip Technology Inc.

Page 329: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-35: IPD、固定参照電圧 (FVR)、PIC16LF1516/7/8/9 のみ

図 26-36: IPD、固定参照電圧 (FVR)、PIC16F1516/7/8/9 のみ

Max.25

Typical

Max.

10

15

20

25IP

D(μ

A)

0

5

10

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IPD

(μA

Max: 85°C + 3Typical: 25°C

01.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

VDD (V)

30

Typical

Max.

15

20

25

30

IPD

(μA

)

0

5

10

15

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IPD

Max: 85°C + 3Typical: 25°C

02.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

VDD (V)

2013 Microchip Technology Inc. DS41452C_JP - p.329

Page 330: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-37: IPD、ブラウンアウト リセット (BOR)、BORV = 1、PIC16LF1516/7/8/9 のみ

図 26-38: IPD、ブラウンアウト リセット (BOR)、BORV = 1、PIC16F1516/7/8/9 のみ

12

Typical

Max.

6

8

10

12

D(μ

A)

Max: 85°C + 3Typical: 25°C

0

2

4

6

1 6 1 8 2 0 2 2 2 4 2 6 2 8 3 0 3 2 3 4 3 6 3 8

IPD

(μA

)

01.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

VDD (V)

Max

14

Ma 85°C + 3

Typical

Max.

6

8

10

12

14

IPD

(μA

)

Max: 85°C + 3Typical: 25°C

0

2

4

6

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IPD

(μA

)

02.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

VDD (V)

DS41452C_JP - p.330 2013 Microchip Technology Inc.

Page 331: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-39: IPD、Timer1 オシレータ、FOSC = 32 kHz、PIC16LF1516/7/8/9 のみ

図 26-40: IPD、Timer1 オシレータ、FOSC = 32 kHz、PIC16F1516/7/8/9 のみ

6.0

Typical

Max.

3.0

4.0

5.0

6.0IP

D(μ

A)

Max: 85°C + 3Typical: 25°C

Typical

0.0

1.0

2.0

3.0

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

IPD

(μA

0.01.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

VDD (V)

12

Typical

Max.

6

8

10

12

IPD

(μA

)

Max: 85°C + 3Typical: 25°C

Typical

0

2

4

6

2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

IPD

02.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

VDD (V)

2013 Microchip Technology Inc. DS41452C_JP - p.331

Page 332: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-41: 各温度における VOH と IOH、VDD = 5.5 V、PIC16F1516/7/8/9 のみ

図 26-42: 各温度における VOL と IOL、VDD = 5.5 V、PIC16F1516/7/8/9 のみ

-40°C

Typical125°C

0

1

2

3

4

5

6

-45 -40 -35 -30 -25 -20 -15 -10 -5 0

VOH

(V)

IOH (mA)

Graph represents 3 Limits

-40°C

Typical

125°C

0

1

2

3

4

5

0 10 20 30 40 50 60 70 80 90 100

VOL

(V)

IOL (mA)

Graph represents 3 Limits

DS41452C_JP - p.332 2013 Microchip Technology Inc.

Page 333: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-43: 各温度における VOH と IOH、VDD = 3.0 V

図 26-44: 各温度における VOL と IOL、VDD = 3.0 V

-40°C

Typical

125°C

0.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

-15 -13 -11 -9 -7 -5 -3 -1

VOH

(V)

IOH (mA)

Graph represents 3 Limits

-40°C

Typical

125°C

0.0

0.5

1.0

1.5

2.0

2.5

3.0

0 5 10 15 20 25 30 35 40

VOL

(V)

IOL (mA)

Graph represents 3 Limits

2013 Microchip Technology Inc. DS41452C_JP - p.333

Page 334: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-45: 各温度における VOH と IOH、VDD = 1.8 V、PIC16LF1516/7/8/9 のみ

図 26-46: 各温度における VOL と IOL、VDD = 1.8 V、PIC16LF1516/7/8/9 のみ

-40°C

Typical

125°C

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

2.0

-4.5 -4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0

VOH

(V)

IOH (mA)

Graph represents 3 Limits

-40°C

Typical

125°C

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

0 1 2 3 4 5 6 7 8 9 10

VOL

(V)

IOL (mA)

Graph represents 3 Limits

DS41452C_JP - p.334 2013 Microchip Technology Inc.

Page 335: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-47: POR リリース電圧

図 26-48: POR リアーム電圧、PIC16F1516/7/8/9 のみ

Typical

Max.

Min.

1.50

1.52

1.54

1.56

1.58

1.60

1.62

1.64

1.66

1.68

1.70

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

Typical

Max.

Min.

1.34

1.36

1.38

1.40

1.42

1.44

1.46

1.48

1.50

1.52

1.54

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

2013 Microchip Technology Inc. DS41452C_JP - p.335

Page 336: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-49: ブラウンアウト リセット電圧、BORV =1、PIC16LF1516/7/8/9 のみ

図 26-50: ブラウンアウト リセット ヒステリシス、BORV =1、PIC16LF1516/7/8/9 のみ

Typical

Max.

Min.

1.80

1.85

1.90

1.95

2.00

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Min: Typical - 3

Typical

Max.

Min.

0

10

20

30

40

50

60

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (m

V)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

DS41452C_JP - p.336 2013 Microchip Technology Inc.

Page 337: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-51: ブラウンアウト リセット電圧、BORV =1、PIC16F1516/7/8/9 のみ

図 26-52: ブラウンアウト リセット ヒステリシス、BORV =1、PIC16F1516/7/8/9 のみ

Typical

Max.

Min.

2.30

2.35

2.40

2.45

2.50

2.55

2.60

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Min: Typical - 3

Typical

Max.

Min.

0

10

20

30

40

50

60

70

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (m

V)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

2013 Microchip Technology Inc. DS41452C_JP - p.337

Page 338: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-53: ブラウンアウト リセット電圧、BORV =0

図 26-54: ブラウンアウト リセット ヒステリシス、BORV =0

Typical

Max.

Min.

2.55

2.60

2.65

2.70

2.75

2.80

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Min: Typical - 3

Typical

Max.

Min.

0

10

20

30

40

50

60

70

80

90

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (m

V)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

DS41452C_JP - p.338 2013 Microchip Technology Inc.

Page 339: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-55: 低消費電力ブラウンアウト リセット電圧、LPBOR = 0

図 26-56: 低消費電力ブラウンアウト リセット ヒステリシス、LPBOR = 0

Typical

Max.

Min.

1.80

1.90

2.00

2.10

2.20

2.30

2.40

2.50

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (V

)

Temperature (°C)

Max: Typical + 3Min: Typical - 3

Typical

Max.

Min.

0

5

10

15

20

25

30

35

40

45

-60 -40 -20 0 20 40 60 80 100 120 140

Volta

ge (m

V)

Temperature (°C)

Max: Typical + 3Typical: 25°C Min: Typical - 3

2013 Microchip Technology Inc. DS41452C_JP - p.339

Page 340: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-57: WDT タイムアウト時間

図 26-58: PWRT 時間

Typical

Max.

Min.

10

12

14

16

18

20

22

24

1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

Tim

e (m

s)

VDD (V)

Max: Typical + 3 (-40°C to +125°C)Typical: statistical mean @ 25°CMin: Typical - 3 (-40°C to +125°C)

Typical

Max.

Min.

40

50

60

70

80

90

100

1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0

Tim

e (m

s)

VDD (V)

Max: Typical + 3 (-40°C to +125°C)Typical: statistical mean @ 25°CMin: Typical - 3 (-40°C to +125°C)

DS41452C_JP - p.340 2013 Microchip Technology Inc.

Page 341: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-59: FVR 安定化時間、PIC16LF1516/7/8/9 のみ

図 26-60: FVR 安定化時間、VREGPM = 1、PIC16F1516/7/8/9 のみ

Typical

Max.

0

5

10

15

20

25

30

35

40

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

Tim

e (u

s)

VDD (V)

Max: Typical + 3Typical: statistical mean @ 25°C

Note: The FVR Stabiliztion Period applies when coming out of RESET or exiting sleep mode.

Note: FVR安定化時間はリセットまたはスリープからの復帰時に適用されます。

Typical

Max.

0

5

10

15

20

25

30

35

40

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

Tim

e (u

s)

VDD (V)

Max: Typical + 3Typical: statistical mean @ 25°C

Note: This graph only applies when exiting sleep mode with VREGPM = 1 .In all other cases, the FVR is stable when released from RESET.

Note: このグラフは VREGPM = 1 でスリープから復帰した場合にのみ適用されます。これ以外の場合、FVR はリセット状態からの解除時に安定しています。

2013 Microchip Technology Inc. DS41452C_JP - p.341

Page 342: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

図 26-61: VDD と温度に対する LFINTOSC の周波数特性 PIC16LF1516/7/8/9 のみ

図 26-62: VDD と温度に対する LFINTOSC の周波数特性 PIC16F1516/7/8/9 のみ

Typical

Max.

Min.

20

22

24

26

28

30

32

34

36

1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8

Freq

uenc

y (k

Hz)

VDD (V)

Max: Typical + 3 (-40°C to +125°C)Typical: statistical mean @ 25°CMin: Typical - 3 (-40°C to +125°C)

Typical

Max.

Min.

20

22

24

26

28

30

32

34

36

2 2.5 3 3.5 4 4.5 5 5.5 6

Freq

uenc

y (k

Hz)

VDD (V)

Max: Typical + 3 (-40°C to +125°C)Typical: statistical mean @ 25°CMin: Typical - 3 (-40°C to +125°C)

DS41452C_JP - p.342 2013 Microchip Technology Inc.

Page 343: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

27.0 開発サポート

PIC® マイクロコントローラと dsPIC® デジタルシグナル コントローラは、以下に示す各種ソフトウェア/ハードウェア開発ツールによって幅広くサポートされています。

• 統合開発環境

- MPLAB® IDE ソフトウェア

• コンパイラ / アセンブラ / リンカ

- 各種デバイスファミリ用 MPLAB C コンパイラ

- 各種デバイスファミリ用 HI-TECH C®

- MPASMTM アセンブラ

- MPLINKTM オブジェクト リンカ /MPLIBTM オブジェクト ライブラリアン

- 各種デバイスファミリ用 MPLAB アセンブラ /リンカ / ライブラリアン

• シミュレータ

- MPLAB SIM ソフトウェア シミュレータ

• エミュレータ

- MPLAB REAL ICE™インサーキット エミュレータ

• インサーキット デバッガ

- MPLAB ICD 3

- PICkit™ 3 Debug Express

• デバイス プログラマ

- PICkit™ 2 プログラマ

- MPLAB PM3 デバイス プログラマ

• 低コストのデモボード、開発ボード、評価キット、スタータキット

27.1 MPLAB 統合開発環境ソフトウェア

MPLAB IDE ソフトウェアを使うと、従来の 8/16/32ビット マイクロコントローラ市場では考えられないほど、ソフトウェアを容易に開発できます。MPLABIDEはWindows® オペレーティング システム上で動作するアプリケーションで、以下の機能を備えています。

• 全てのデバッグツールで共通のグラフィカル インターフェイス

- シミュレータ

- プログラマ ( 別売り )

- インサーキット エミュレータ ( 別売り )

- インサーキット デバッガ ( 別売り )

• コンテキスト色分け表示のフル機能エディタ

• マルチ プロジェクト マネージャ

• 値を直接編集できるカスタマイズ可能なデータウィンドウ

• 高度なソースコード デバッグ

• マウスオーバーで変数の現在値を表示

• ソースウィンドウからウォッチ ウィンドウへの変数のドラッグ & ドロップ

• 充実したオンラインヘルプ

• 一部サードパーティ製ツールの統合もサポート (IAR 社製 C コンパイラ等 )

MPLAB IDE を使うと、以下の作業が可能です。

• ソースファイル (C またはアセンブリ ) の編集

• ワンタッチでのコンパイル / アセンブルと、エミュレータ / シミュレータ ツールへのダウンロード( 全てのプロジェクト情報を自動更新 )

• 以下を使ったデバッグ :

- ソースファイル (C またはアセンブリ )

- C とアセンブリの混在使用

- マシンコード

MPLAB IDE は、対費用効果の高いシミュレータから低コストのインサーキット デバッガ、フル機能のエミュレータに至る複数のデバッグツールを 1 つの開発パラダイムでサポートします。このため、より柔軟性が高く強力なツールにアップグレードした場合でも、短期間で使用方法を習得できます。

2013 Microchip Technology Inc. DS41452C_JP - p.343

Page 344: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

27.2 各種デバイスファミリ用 MPLAB Cコンパイラ

MPLAB C コンパイラは、マイクロチップ社の PIC18、PIC24、PIC32 マイクロコントローラ ファミリと、dsPIC30、dsPIC33 デジタルシグナル コントローラファミリ用コード開発に対応した総合的な ANSI C コンパイラです。これらのコンパイラは強力な統合機能と優れたコード 適化機能を備え、容易に使えます。

また、MPLAB IDE デバッガ用に 適化されたシンボル情報を出力できるため、ソースレベルのデバッグも容易です。

27.3 各種デバイスファミリ用 HI-TECH C

HI-TECH C コンパイラコード開発システムは、マイクロチップ社の PIC マイクロコントローラ ファミリとdsPIC デジタルシグナル コントローラ ファミリ向けの、総合的な機能を備えた ANSI C コンパイラです。これらのコンパイラは、強力な統合機能とインテリジェントなコード生成機能を備え、容易に使えます。

また、MPLAB IDE デバッガ用に 適化されたシンボル情報を出力できるため、ソースレベルのデバッグも容易です。

このコンパイラはマクロアセンブラ、リンカ、プリプロセッサ、ワンステップ ドライバを備え、複数のプラットフォーム上で動作します。

27.4 MPASM アセンブラ

MPASM アセンブラは、PIC10/12/16/18 MCU に対応したフル機能の汎用マクロアセンブラです。

MPASM アセンブラは、MPLINK オブジェクト リンカ用の再配置可能なオブジェクト ファイル、Intel® 標準HEX ファイル、メモリ使用状況とシンボル参照を詳述する MAP ファイル、ソース行と生成後のマシンコードを含む絶対 LST ファイル、デバッグ用の COFF ファイルを生成します。

MPASMアセンブラには以下のような特長があります。

• MPLAB IDE プロジェクトへの統合

• ユーザ定義マクロによるアセンブリコードの 適化

• 多用途ソースファイルに対応する条件付きアセンブリ

• アセンブリ プロセスを完全に制御できるディレクティブ

27.5 MPLINK オブジェクト リンカ /MPLIB オブジェクト ライブラリアン

MPLINK オブジェクト リンカは、MPASM アセンブラと MPLAB C18 C コンパイラが作成した再配置可能なオブジェクトを結合します。このオブジェクト リンカは、リンカスクリプトのディレクティブを使って、プリコンパイル済みのライブラリ内の再配置可能オブジェクトをリンクできます。

MPLIB オブジェクト ライブラリアンは、プリコンパイル済みコードのライブラリ ファイルの作成と変更を管理します。ライブラリのルーチンをソースファイルから呼び出すと、そのルーチンが含まれているモジュールのみがアプリケーションとリンクされます。これにより、大きなライブラリを各種アプリケーションで効率的に使えます。

オブジェクト リンカ / ライブラリには以下のような特長があります。

• 多数の小さなファイルをリンクするのではなく、1 つのライブラリを効率的にリンクする

• 関連するモジュールをグループ化する事により、コードの保守性が向上する

• モジュールのリスト作成、置換、削除、抽出が容易なライブラリを柔軟に作成する

27.6 各種デバイスファミリ用 MPLABアセンブラ、リンカ、ライブラリアン

MPLAB アセンブラは、PIC24、PIC32、dsPIC 用のシンボリック アセンブリ言語から、再配置可能なマシンコードを生成します。MPLAB C コンパイラはこのアセンブラを使ってオブジェクト ファイルを生成します。このアセンブラが生成した再配置可能なオブジェクト ファイルをアーカイブまたは他の再配置可能なオブジェクト ファイルとリンクして、実行ファイルを生成します。このアセンブラには以下のような特長があります。

• デバイスの全命令セットのサポート

• 固定 / 浮動小数点データのサポート

• コマンドライン インターフェイス

• 豊富なディレクティブ セット

• 柔軟なマクロ言語

• MPLAB IDE との互換性

DS41452C_JP - p.344 2013 Microchip Technology Inc.

Page 345: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

27.7 MPLAB SIM ソフトウェア シミュレータ

MPLAB SIM ソフトウェア シミュレータには、PICMCU と dsPIC® DSC を命令レベルでシミュレートする機能があり、PC 環境でコードを開発できます。任意の命令に対してデータ領域を検証または変更でき、総合的なスティミュラス コントローラから外部信号を印加できます。レジスタをファイルに記録して、より詳細な実行時解析が可能です。トレースバッファとロジック アナライザ ディスプレイを使うと、プログラム実行、I/O アクティビティ、ほとんどの周辺機能と内部レジスタを記録 / 追跡でき、シミュレータの機能をさらに強化できます。

MPLAB SIM ソフトウェア シミュレータは、MPLAB Cコンパイラ、MPASM/MPLAB アセンブラを使ったシンボリック デバッグを完全にサポートしています。このソフトウェア シミュレータは、ハードウェアラボ環境外での柔軟なコード開発とデバッグを可能にする経済的で優れたソフトウェア開発ツールです。

27.8 MPLAB REAL ICE インサーキット エミュレータ システム

MPLAB REAL ICE インサーキット エミュレータ システムは、マイクロチップ社のフラッシュ DSC と MCU用にマイクロチップ社が提供する次世代高速エミュレータです。このエミュレータでは、各キットに付属する MPLAB 統合開発環境 (IDE) の強力で使いやすいGUI を利用して、PIC® フラッシュ MCU と dsPIC® フラッシュ DSC をデバッグ / プログラムできます。

このエミュレータをハイスピード USB 2.0 インターフェイスで設計エンジニアの PC に接続し、ターゲット デバイスとはインサーキット デバッガ システムと互換の RJ-11 コネクタか、高速で耐ノイズ性に優れる新の LVDS インターフェイス (CAT5) によって接続

します。

エミュレータの更新用ファームウェアは、MPLAB IDEからダウンロードできます。MPLAB IDE の 新リリースに伴って、サポートするデバイスと新機能が追加されます。MPLAB REAL ICE は、低コスト、高速エミュレーション、実行時変数ウォッチ、トレース解析、複雑なブレークポイント、高耐久性のプローブ インターフェイス、接続ケーブルの長尺対応 ( 長 3 m)等、競合他社のエミュレータに比べて多くの利点があります。

27.9 MPLAB ICD 3 インサーキット デバッガ システム

MPLAB ICD 3 インサーキット デバッガ システムは、マイクロチップ社のフラッシュ デジタル シグナル コントローラ (DSC) とマイクロコントローラ (MCU) に対応した、非常に対費用効果の高い高速ハードウェアデバッガ /プログラマです。このデバッガでは、MPLAB統合開発環境 (IDE) の強力で使いやすい GUI を利用して PIC® フラッシュ マイクロコントローラや dsPIC®

DSC のデバッグと書き込みを行えます。

MPLAB ICD 3 インサーキット デバッガのプローブは、PCとの接続に高速USB 2.0インターフェイスを使い、対象デバイスとの接続には MPLAB ICD 3/MPLABREAL ICE システムと互換のコネクタ (RJ-11) を使います。MPLAB ICD 3 は全ての MPLAB ICD 3 ヘッダをサポートしています。

27.10 PICkit 3 インサーキット デバッガ /プログラマと PICkit 3 Debug Express

MPLAB PICkit 3 は、MPLAB 統合開発環境 (IDE) の強力なGUIを利用してPIC®およびdsPIC®フラッシュ マイクロコントローラをデバッグ / プログラミングできる低価格なツールです。MPLAB PICkit 3 と設計エンジニアのPCの接続にはフルスピードUSBインターフェイスを使います。ターゲット デバイスとの接続には、MPLAB ICD 3/MPLAB REAL ICE と互換のマイクロチップ デバッグ コネクタ (RJ-11) を使います。このコネクタは 2 本のデバイス I/O ピンとリセットラインを使って、インサーキット デバッグとインサーキット シリアル プログラミング ™ を実現します。

PICkit 3 Debug Express は、PICkit 3、デモボードとマイクロコントローラ、フックアップ ケーブル、CD-ROM ( ユーザガイド、レッスン、チュートリアル、コンパイラ、MPLAB IDE ソフトウェアを収録 ) を含みます。

2013 Microchip Technology Inc. DS41452C_JP - p.345

Page 346: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

27.11 PICkit 2 開発用プログラマ / デバッガと PICkit 2 Debug Express

PICkit™ 2 開発用プログラマ / デバッガは、マイクロチップ社のフラッシュ マイクロコントローラ ファミリの書き込みとデバッグを使いやすいインターフェイスで行える低コストな開発ツールです。Windows® 環境でプログラミング機能を実行できる本製品は、ベースライン (PIC10F、PIC12F5xx、PIC16F5xx)、ミッドレンジ (PIC12F6xx、PIC16F)、PIC18F、PIC24、dsPIC30、dsPIC33、8/16/32ビットのPIC32マイクロコントローラ ファミリ、マイクロチップ社製各種シリアルEEPROM 製品をサポートしています。PICkit™ 2 は、マイクロチップ社の強力なMPLAB統合開発環境 (IDE)を利用してほとんどの PIC® マイクロコントローラに対してインサーキット デバッグを実行できます。インサーキット デバッグでは、PIC マイクロコントローラをアプリケーションに組み込んだままの状態でプログラムの実行 /停止とシングルステップ実行が可能です。また、ブレークポイントで停止させて、ファイルレジスタを確認 / 変更できます。

PICkit 2 Debug Express は、PICkit 2、デモボードとマイクロコントローラ、フックアップ ケーブル、CD-ROM( ユーザガイド、レッスン、チュートリアル、コンパイラ、MPLAB IDE ソフトウェアを収録 ) を含みます。

27.12 MPLAB PM3 デバイス プログラマ

MPLAB PM3 デバイス プログラマは CE 準拠のユニバーサル デバイス プログラマで、VDDMIN と VDDMAX

でのプログラマブル電圧検証によって 大限の信頼性を確保します。このデバイス プログラマは、メニューとエラーメッセージを表示する大型 LCD (128 x 64)と、各種パッケージタイプに対応するための脱着可能なモジュール式ソケット アセンブリを備えます。ICSP™ ケーブル アセンブリは標準で付属しています。スタンドアロン モードでは、MPLAB PM3 デバイス プログラマを PC に接続せずに、PIC デバイスの読み出し、検証、書き込みが可能です。このモードでコード保護も設定できます。MPLAB PM3 とホスト PC との接続には、RS-232 または USB ケーブルを使います。さらに、大容量メモリデバイスの高速書き込みを可能にする、高速通信と 適化されたアルゴリズムを備え、ファイル保存とデータ アプリケーションのためのMMC カードを内蔵しています。

27.13 デモボード、開発ボード、評価キット、スタータキット

各種 PIC MCU と dsPIC DSC に対応する、豊富なデモボード、開発ボード、評価用ボードによって、完全に機能するシステムでアプリケーションを迅速に開発できます。ほとんどのボードは、カスタム回路を追加するためのプロトタイプ領域を備えています。また、検討と変更が可能なようにアプリケーション ファームウェアとソースコードが付属しています。

これらのボードは LED、温度センサ、スイッチ、スピーカ、RS-232 インターフェイス、LCD、ポテンショメータ、増設 EEPROM メモリをはじめとする各種機能をサポートします。

デモボードと開発ボードは、カスタム回路の試作と各種マイクロコントローラ アプリケーションの学習教材として使う事ができます。

PICDEM™と dsPICDEM™デモ /開発ボードシリーズの回路の他に、マイクロチップ社ではアナログフィルタ設計、KEELOQ® セキュリティ IC、CAN、IrDA®、PowerSmart バッテリ管理、SEEVAL® 評価システム、ΔΣ ADC、流量感知等、各種アプリケーションに対応する評価キットとデモソフトウェアを取り揃えています。

また、特定のデバイスを体験するために必要なもの全てを収めたスタータキットも提供しています。スタータキットは通常、1 つのアプリケーションとデバッグ機能の全てを1つのボードに搭載した形で提供します。

デモボード、開発ボード、評価キットの全一覧は、マイクロチップ社のウェブページ (www.microchip.com)をご覧ください。

DS41452C_JP - p.346 2013 Microchip Technology Inc.

Page 347: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28.0 パッケージ情報

28.1 パッケージ マーキング情報

凡例 : XX...X お客様固有情報Y 年コード ( 西暦の下 1 桁 )YY 年コード ( 西暦の下 2 桁 )WW 週コード (1 月の第 1 週が「01」)NNN 英数字のトレーサビリティ コード つや消し錫 (Sn) の使用を示す鉛フリーの JEDEC マーク* 本パッケージは鉛フリーです。鉛フリー JEDEC マーク ( ) は外箱に表記しています。

Note: マイクロチップ社の製品番号が 1 行に収まりきらない場合は複数行を使います。この場合お客様固有情報に使える文字数が制限されます。

3e

3e

28-Lead SOIC (7.50 mm) Example

YYWWNNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

28-Lead SPDIP (.300”) Example

PIC16F1516-E/SO 3e

1248017

PIC16F1516-E/SP1248017

3e

28-Lead SSOP (5.30 mm) Example

PIC16F1516-E/SO 3e

1248017

2013 Microchip Technology Inc. DS41452C_JP - p.347

Page 348: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

パッケージ マーキング情報 ( 続き )

28-Lead UQFN (4x4x0.5 mm) Example

PIN 1 PIN 1

40-Lead PDIP (600 mil) Example

XXXXXXXXXXXXXXXXXXYYWWNNN

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PIC16F1516E/MV

2480173e

PIC16F1517-E/P1248107

40-Lead UQFN (5x5x0.5 mm) Example

PIN 1 PIN 1PIC16LF1517-E/MV

12480173e

44-Lead TQFP (10x10x1 mm) Example

XXXXXXXXXX

YYWWNNNXXXXXXXXXXXXXXXXXXXX

PIC16F1517-E/PT

12480173e

DS41452C_JP - p.348 2013 Microchip Technology Inc.

Page 349: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28.2 パッケージの詳細本章ではパッケージの技術的詳細を示します。

28 ピン プラスチック スモール アウトライン (OI) - ワイド、7.50 mm ボディ [SOIC]

.

Microchip Technology Drawing C04-052C Sheet 1 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

2013 Microchip Technology Inc. DS41452C_JP - p.349

Page 350: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック スモール アウトライン (OI) - ワイド、7.50 mm ボディ [SOIC]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. § 重要な特性です。

3. D1 の寸法はモールド フラッシュ、突出部、ゲート残りを含みません。これらは各側で 0.15 mm 以下とします。E1 の寸法はピ

ン間フラッシュまたは突出部を含みません。これらは各側で 0.25 mm 以下とします。

4. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

REF: 参考寸法、通常は許容誤差を含まない、情報としてのみ使われる値

5. データ A と B はデータ H の位置で決まります。

Microchip Technology Drawing C04-052C Sheet 2 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 28

ピッチ e 1.27 BSC

全高 A - - 2.65

モールド パッケージ厚 A2 2.05 - -

スタンドオフ § A1 0.10 - 0.30

全幅 E 10.30 BSC

モールド パッケージ幅 E1 7.50 BSC

全長 D 17.90 BSC

面取り部 ( オプション ) h 0.25 - 0.75

足長 L 0.40 - 1.27

フットプリント L1 1.40 REF

ピン角 θ 0° - -

足角 ψ 0° - 8°

ピン厚 c 0.18 - 0.33

ピン幅 b 0.31 - 0.51

モールドドラフト角トップ 5° - 15°

モールドドラフト角ボトム 5° - 15°

DS41452C_JP - p.350 2013 Microchip Technology Inc.

Page 351: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック スモール アウトライン (OI) - ワイド、7.50 mm ボディ [SOIC]

Notes:

1. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

Microchip Technology Drawing No. C04-2052A

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

コンタクトピッチ E 1.27 BSC

コンタクトパッド間隔 C 9.40

コンタクトパッド幅 (X28) X 0.60

コンタクトパッド長 (X28) Y 2.00

パッド間距離 Gx 0.67

パッド間距離 G 7.40

2013 Microchip Technology Inc. DS41452C_JP - p.351

Page 352: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン スキニー プラスチック デュアル インライン (SP) - 300 mil ボディ [SPDIP]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. § 重要な特性です。

3. D と E1 の寸法はモールドのはみ出しや突出部を含みません。モールド フラッシュまたは突出部は各側で 0.10" (2.54 mm) 以下

とします。

4. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示Microchip Technology Drawing C04-070B

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 28

ピッチ e .100 BSC

トップからシーティングまで A - - .200

モールド パッケージ厚 A2 .120 .135 .150

ベースからシーティングまで A1 .015 - -

ショルダー間幅 E .290 .310 .335

モールド パッケージ幅 E1 .240 .285 .295

全長 D 1.345 1.365 1.400

先端からシーティング プレーンまで L .110 .130 .150

ピン厚 c .008 .010 .015

上側ピン幅 b1 .040 .050 .070

下側ピン幅 b .014 .018 .022

全幅 § eB - - .430

NOTE 1

N

1 2

D

E1

eB

c

E

L

A2

eb

b1A1

A

3

DS41452C_JP - p.352 2013 Microchip Technology Inc.

Page 353: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック シュリンク スモール アウトライン (SS) - 5.30 mm ボディ [SSOP]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. D と E1 の寸法はモールドのはみ出しや突出部を含みません。モールドのはみ出しまたは突出部は側面から 0.20 mm を超えま

せん。

3. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

REF: 参考寸法、通常は許容誤差を含まない、情報としてのみ使われる値

Microchip Technology Drawing C04-073B

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 28

ピッチ e 0.65 BSC

全高 A - - 2.00

モールド パッケージ厚 A2 1.65 1.75 1.85

スタンドオフ A1 0.05 - -

全幅 E 7.40 7.80 8.20

モールド パッケージ幅 E1 5.00 5.30 5.60

全長 D 9.90 10.20 10.50

足長 L 0.55 0.75 0.95

フットプリント L1 1.25 REF

ピン厚 c 0.09 - 0.25

足角 φ 0° 4° 8°

ピン幅 b 0.22 - 0.38

LL1

cA2

A1

A

EE1

D

N

1 2

NOTE 1b

e

φ

2013 Microchip Technology Inc. DS41452C_JP - p.353

Page 354: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック シュリンク スモール アウトライン (SS) - 5.30 mm ボディ [SSOP]

Notes:

1. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

Microchip Technology Drawing No. C04-2073A

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

コンタクトピッチ E 0.65 BSC

コンタクトパッド間隔 C 7.20

コンタクトパッド幅 (X28) X1 0.45

コンタクトパッド長 (X28) Y1 1.75

パッド間距離 G 0.20

DS41452C_JP - p.354 2013 Microchip Technology Inc.

Page 355: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック超薄型クワッドフラット、リードレス パッケージ (MV) - 4x4x0.5 mm ボディ[UQFN]

Microchip Technology Drawing C04-152A Sheet 1 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

2013 Microchip Technology Inc. DS41452C_JP - p.355

Page 356: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

28 ピン プラスチック超薄型クワッドフラット、リードレス パッケージ (MV) - 4x4x0.5 mm ボディ[UQFN]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. パッケージは切削切り出しされています。

3. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

REF: 参考寸法、通常は許容誤差を含まない、情報としてのみ使われる値

Microchip Technology Drawing C04-152A Sheet 2 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 28

ピッチ e 0.40 BSC

全高 A 0.45 0.50 0.55

スタンドオフ A1 0.00 0.02 0.05

コンタクト厚 A3 0.127 REF

全幅 E 4.00 BSC

露出パッド幅 E2 2.55 2.65 2.75

全長 D 4.00 BSC

露出パッド長 D2 2.55 2.65 2.75

コンタクト幅 b 0.15 0.20 0.25

コンタクト長 L 0.30 0.40 0.50

コンタクト - 露出パッド間距離 K 0.20 - -

DS41452C_JP - p.356 2013 Microchip Technology Inc.

Page 357: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

40 ピン プラスチック デュアル インライン (P) - 600 mil ボディ [PDIP]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. § 重要な特性です。

3. D と E1 の寸法はモールドのはみ出しや突出部を含みません。モールド フラッシュまたは突出部は各側で .010" (0.254 mm) 以下

とします。

4. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

Microchip Technology Drawing C04-016B

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 40

ピッチ e .100 BSC

トップからシーティングまで A - - .250

モールド パッケージ厚 A2 .125 - .195

ベースからシーティングまで A1 .015 - -

ショルダー間幅 E .590 - .625

モールド パッケージ幅 E1 .485 - .580

全長 D 1.980 - 2.095

先端からシーティング プレーンまで L .115 - .200

ピン厚 c .008 - .015

上側ピン幅 b1 .030 - .070

下側ピン幅 b .014 - .023

全幅 § eB - - .700

N

NOTE 1

E1

D

1 2 3

A

A1b1

b e

c

eB

E

L

A2

2013 Microchip Technology Inc. DS41452C_JP - p.357

Page 358: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

40 ピン プラスチック超薄型クワッドフラット、リードレス パッケージ (MV) - 5x5x0.5 mm ボディ[UQFN]

Microchip Technology Drawing C04-156A Sheet 1 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

DS41452C_JP - p.358 2013 Microchip Technology Inc.

Page 359: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

40 ピン プラスチック超薄型クワッドフラット、リードレス パッケージ (MV) - 5x5x0.5 mm ボディ[UQFN]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. パッケージは切削切り出しされています。

3. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

REF: 参考寸法、通常は許容誤差を含まない、情報としてのみ使われる値

Microchip Technology Drawing C04-156A Sheet 2 of 2

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 40

ピッチ e 0.40 BSC

全高 A 0.45 0.50 0.55

スタンドオフ A1 0.00 0.02 0.05

コンタクト厚 A3 0.127 REF

全幅 E 5.00 BSC

露出パッド幅 E2 3.60 3.70 3.80

全長 D 5.00 BSC

露出パッド長 D2 3.60 3.70 3.80

コンタクト幅 b 0.15 0.20 0.25

コンタクト長 L 0.30 0.40 0.50

コンタクト - 露出パッド間距離 K 0.20 - -

2013 Microchip Technology Inc. DS41452C_JP - p.359

Page 360: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

40 ピン プラスチック超薄型クワッドフラット、リードレス パッケージ (MV) - 5x5 mm ボディ[UQFN]

Notes:

1. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

Microchip Technology Drawing No. C04-2156A

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

コンタクトピッチ E 0.40 BSC

コンタクト中心パッド幅 W2 3.80

コンタクト中心パッド長 T2 3.80

コンタクトパッド間隔 C1 5.00

コンタクトパッド間隔 C2 5.00

コンタクトパッド幅 (X408) X1 0.20

コンタクトパッド長 (X40) Y1 0.75

パッド間距離 G 0.20

DS41452C_JP - p.360 2013 Microchip Technology Inc.

Page 361: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

44 ピン プラスチック薄型クワッド フラットパック (PT) - 10x10x1 mm ボディ [TQFP]

Notes:

1. ピン 1 のビジュアル インデックスの場所にはばらつきがありますが、必ず斜線部分内にあります。

2. コーナー部の面取りはオプションで、サイズは異なります。

3. D1 と E1 の寸法はモールドのはみ出しまたは突出部を含みません。モールドのはみ出しまたは突出部は側面から 0.25 mm を超

えません。

4. 寸法と許容誤差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

REF: 参考寸法、通常は許容誤差を含まない、情報としてのみ使われる値Microchip Technology Drawing C04-076B

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

ピン数 N 44

ピンピッチ e 0.80 BSC

全高 A - - 1.20

モールド パッケージ厚 A2 0.95 1.00 1.05

スタンドオフ A1 0.05 - 0.15

足長 L 0.45 0.60 0.75

フットプリント L1 1.00 REF

足角 0° 3.5° 7°

全幅 E 12.00 BSC

全長 D 12.00 BSC

モールド パッケージ幅 E1 10.00 BSC

モールド パッケージ長 D1 10.00 BSC

ピン厚 c 0.09 - 0.20

ピン幅 b 0.30 0.37 0.45

モールドドラフト角トップ 11° 12° 13°

モールドドラフト角ボトム 11° 12° 13°

A

E

E1

DD1

e

b

NOTE 1NOTE 2

N

1 2 3

c

A1L

A2L1

α

φ

β

2013 Microchip Technology Inc. DS41452C_JP - p.361

Page 362: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

44 ピン プラスチック薄型クワッド フラットパック (PT) - 10x10x1 mm ボディ、2.00 mm [TQFP]

Notes:

1. 寸法と公差は ASME Y14.5M に準拠しています。

BSC: 基本寸法、理論的に正確な値、許容誤差なしで表示

Microchip Technology Drawing No. C04-2076A

Note: 新のパッケージ図面については、以下のウェブサイトにある「Microchip Packaging Specification ( マイクロチップ社パッケージ仕様 )」を参照してください。http://www.microchip.com/packaging

単位 ミリメートル

寸法 小値 公称値 大値

コンタクトピッチ E 0.80 BSC

コンタクトパッド間隔 C1 11.40

コンタクトパッド間隔 C2 11.40

コンタクトパッド幅 (X44) X1 0.55

コンタクトパッド長 (X44) Y1 1.50

パッド間距離 G 0.25

DS41452C_JP - p.362 2013 Microchip Technology Inc.

Page 363: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

補遺 A: データシート改版履歴

リビジョン A (2010 年 12 月 )

本書の初版

リビジョン B (2011 年 5 月 )

本デバイスファミリの初版

リビジョン C (2012 年 9 月 )

電気的仕様の更新と特性データの公開

2013 Microchip Technology Inc. DS41452C_JP - p.363

Page 364: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.364 2013 Microchip Technology Inc.

Page 365: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

索引

数字

2 段階クロック起動モード ................................................. 56

AA/D

仕様 .......................................................................... 301ACKSTAT ........................................................................ 214ACKSTAT ステータスフラグ ........................................... 214AC 特性

産業用温度レンジと拡張温度レンジ ....................... 294負荷条件 ................................................................... 293

ADC ................................................................................. 135AD 変換の開始 ......................................................... 138アクイジション時間の計算 ...................................... 145アクイジションの要件 ............................................. 145関連レジスタ ........................................................... 147参照電圧 (VREF) ....................................................... 136スリープ中の動作 .................................................... 139設定 .......................................................................... 136ソース インピーダンス ............................................ 145チャンネル選択 ........................................................ 136動作 .......................................................................... 139特殊イベントトリガ ................................................. 139内部サンプリング スイッチの

インピーダンス (RSS) ...................................... 145ブロック図 ............................................................... 135変換クロック ........................................................... 136変換手順 ................................................................... 140ポートの設定 ........................................................... 136割り込み ................................................................... 138割り込みの設定 ........................................................ 140

ADC (Analog-to-Digital Converter) 、「ADC」参照

ADCON0 レジスタ ..................................................... 30, 141ADCON1 レジスタ ..................................................... 30, 142ADDFSR   ........................................................................ 269ADDWFC   ....................................................................... 269ADRESH レジスタ ............................................................. 30ADRESH レジスタ (ADFM = 0) ....................................... 143ADRESH レジスタ (ADFM = 1) ....................................... 144ADRESL レジスタ ............................................................. 30ADRESL レジスタ (ADFM = 0) ........................................ 143ADRESL レジスタ (ADFM = 1) ........................................ 144ANSELA レジスタ ............................................................ 111ANSELB レジスタ ............................................................ 115ANSELC レジスタ ........................................................... 118ANSELD レジスタ ........................................................... 121ANSELE レジスタ ............................................................ 124APFCON レジスタ ..................................................... 31, 108

BBAUDCON レジスタ ........................................................ 245BF ............................................................................ 214, 216BF ステータスフラグ ............................................... 214, 216BORCON レジスタ ............................................................ 65BRA .................................................................................. 270

CCALL ................................................................................ 271CALLW ............................................................................. 271CCP1CON レジスタ .......................................................... 32CCPR1H レジスタ ............................................................. 32CCPR1L レジスタ .............................................................. 32CCPxCON (CCPx) レジスタ ............................................ 178

CCP、「キャプチャ / コンペア /PWM」参照

CONFIG1 レジスタ ........................................................... 42CONFIG2 レジスタ ........................................................... 44C コンパイラ

MPLAB C18 ............................................................. 344

DDC および AC 特性 .......................................................... 311DC 特性

拡張温度レンジと産業用温度レンジ ....................... 289産業用温度レンジと拡張温度レンジ ....................... 282

EEUSART .......................................................................... 233

baud レート ジェネレータ (BRG)baud レート誤差、計算 ................................... 246baud レート、非同期モード ............................ 248計算式 .............................................................. 247高 baud レート選択ビット

(BRGH ビット ) ....................................... 246自動 baud レート検出 ..................................... 251

関連レジスタ

baud レート ジェネレータ .............................. 247同期スレーブモード

関連レジスタ

受信 ......................................................... 260送信 ......................................................... 259

受信 ................................................................. 260送信 ................................................................. 259

同期マスタモード ............................................ 255, 259関連レジスタ

受信 ......................................................... 258送信 ......................................................... 256

受信 ................................................................. 257送信 ................................................................. 255

非同期モード ........................................................... 23512 ビットブレークの送受信 ............................ 2549 ビットアドレス検出モードの設定 ................ 240baud レート ジェネレータ (BRG) ................... 246関連レジスタ

受信 ......................................................... 241送信 ......................................................... 237

クロック精度 ................................................... 242トランスミッタ ............................................... 235ブレークによる自動復帰 ................................. 252レシーバ .......................................................... 238

EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter)   .................... 233

FFSR レジスタ .................................................................... 29FVRCON ( 固定参照電圧制御 ) レジスタ ........................ 132

II2C モード (MSSP)

I2C クロック速度と BRG ......................................... 225肯定応答 (ACK) シーケンスのタイミング ............... 218ストップ条件のタイミング ..................................... 218スリープ動作 ........................................................... 219スレーブモード

送信 ................................................................. 200

2013 Microchip Technology Inc. DS41452C_JP - p.365

Page 366: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

バスコリジョン

ストップ条件中 ................................................ 223反復スタート条件中 ......................................... 222

マスタモード

受信 .................................................................. 216スタート条件のタイミング ...................... 212, 213送信 .................................................................. 214動作 .................................................................. 210

マルチマスタ モード ................................................ 219マルチマスタ通信、バスコリジョン、

バス アービトレーション ................................ 219読み書きビット情報 (R/W ビット ) .......................... 195リセットの効果 ........................................................ 219

INDF レジスタ ................................................................... 29INTCON レジスタ .............................................................. 76INTOSC の仕様 ................................................................ 295IOCAF レジスタ ............................................................... 129IOCAN レジスタ .............................................................. 129IOCAP レジスタ ............................................................... 129

LLATA レジスタ ................................................................. 111LATB レジスタ ................................................................. 114LATC レジスタ ................................................................. 117LATD レジスタ ................................................................. 120LATE レジスタ ................................................................. 124LSLF ................................................................................. 273LSRF ................................................................................ 273

MMCLR ................................................................................. 66

内部 ............................................................................ 66MOVIW ............................................................................. 274MOVLB ............................................................................. 274MOVWI ............................................................................. 275MPLAB ASM30 アセンブラ、リンカ、

ライブラリアン ........................................................ 344MPLAB PM3 デバイス プログラマ .................................. 346MPLAB REAL ICE インサーキット エミュレータ

システム ................................................................... 345MPLAB 統合開発環境ソフトウェア ................................. 343MPLINK オブジェクト リンカ /MPLIB オブジェクト

ライブラリアン ........................................................ 344MSSP ............................................................................... 179

SPI モード ................................................................ 182SSPBUF レジスタ ................................................... 185SSPSR レジスタ ...................................................... 185

MSSPxI2C モード ................................................................ 190I2C モードの動作 ..................................................... 192

OOPTION ........................................................................... 275OPTION_REG レジスタ .................................................. 151OSCCON レジスタ ............................................................ 60OSCSTAT レジスタ ........................................................... 61

PPCLATH レジスタ .............................................................. 29PCL と PCLATH ................................................................. 15PCL レジスタ ..................................................................... 29PCON レジスタ ........................................................... 30, 69PIE1 レジスタ .............................................................. 30, 77PIE2 レジスタ .............................................................. 30, 78PIR1 レジスタ .............................................................. 30, 79

PIR2 レジスタ ............................................................. 30, 80PMADRH レジスタ ............................................................ 91PMADRL レジスタ ..................................................... 91, 104PMADR レジスタ ............................................................... 91PMCON1 レジスタ .................................................... 91, 105PMCON2 レジスタ .................................................... 91, 106PMDATH レジスタ .......................................................... 104PMDATL レジスタ ........................................................... 104PMDRH レジスタ ............................................................ 104PORTA   .......................................................................... 109

PORTA 関連のコンフィグレーション ワード ......... 112PORTA レジスタ ................................................. 30, 31関連レジスタ ........................................................... 112仕様 ......................................................................... 296

PORTA レジスタ ............................................................. 110PORTB   .......................................................................... 113

PORTB レジスタ ................................................. 30, 31関連レジスタ ........................................................... 115

PORTB レジスタ ............................................................. 114PORTC   .......................................................................... 116

PORTC レジスタ ................................................. 30, 31関連レジスタ ........................................................... 118

PORTC レジスタ ............................................................. 117PORTD   .......................................................................... 119

PORTD レジスタ ................................................. 30, 31関連レジスタ ........................................................... 121

PORTD レジスタ ............................................................. 120PORTE   .......................................................................... 122

PORTE 関連のコンフィグレーション ワード ......... 125PORTE レジスタ ................................................. 30, 31関連レジスタ ........................................................... 125

PORTE レジスタ ............................................................. 123PR2 レジスタ .................................................................... 30

RRCREG   .......................................................................... 240RCREG レジスタ ............................................................... 31RCSTA レジスタ ....................................................... 31, 244Read-Modify-Write 動作 ................................................... 265RESET   ........................................................................... 275RESET 命令 ....................................................................... 66

SSPBRGH レジスタ .......................................................... 246SPBRGL レジスタ ........................................................... 246SPBRG レジスタ ............................................................... 31SPI モード (MSSP)

SPI クロック ............................................................ 185関連レジスタ ........................................................... 189

SSPADD レジスタ ..................................................... 32, 231SSPBUF レジスタ ............................................................. 32SSPCON1 レジスタ ........................................................ 227SSPCON2 レジスタ ........................................................ 229SSPCON3 レジスタ ........................................................ 230SSPCON レジスタ ............................................................ 32SSPMSK レジスタ .......................................................... 231SSPOV   .......................................................................... 216SSPOV ステータスフラグ ............................................... 216SSPSTAT レジスタ ................................................... 32, 226

R/W ビット .............................................................. 195STATUS レジスタ ............................................................. 21SUBWFB   ....................................................................... 277

DS41452C_JP - p.366 2013 Microchip Technology Inc.

Page 367: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

TT1CON レジスタ ........................................................ 30, 161T1GCON レジスタ ........................................................... 162T2CON (Timer2) レジスタ ............................................... 167T2CON レジスタ ................................................................ 30Timer0   ............................................................................ 149

関連レジスタ ........................................................... 151仕様 .......................................................................... 299動作 .......................................................................... 149

Timer1   ............................................................................ 153Timer1 ゲート

ソースの選択 ................................................... 155TMR1H レジスタ ..................................................... 153TMR1L レジスタ ...................................................... 153関連レジスタ ........................................................... 163クロック源の選択 .................................................... 154仕様 .......................................................................... 299スリープ中の動作 .................................................... 157セカンダリ オシレータ ............................................ 155動作 .......................................................................... 154非同期カウンタモード ............................................. 155

読み書き .......................................................... 155プリスケーラ ........................................................... 155割り込み ................................................................... 157

Timer2   ............................................................................ 165関連レジスタ ........................................................... 168

TMR0 レジスタ .................................................................. 30TMR1H レジスタ ............................................................... 30TMR1L レジスタ ................................................................ 30TMR2 レジスタ .................................................................. 30TRIS   ............................................................................... 278TRISA レジスタ ......................................................... 30, 110TRISB   ............................................................................. 113TRISB レジスタ ......................................................... 30, 114TRISC   ............................................................................ 116TRISC レジスタ ......................................................... 30, 117TRISD   ............................................................................ 119TRISD レジスタ ......................................................... 30, 120TRISE   ............................................................................. 122TRISE レジスタ ......................................................... 30, 123TXREG   ........................................................................... 235TXREG レジスタ ............................................................... 31TXSTA レジスタ ........................................................ 31, 243

BRGH ビット ........................................................... 246

UUSART

同期マスタモード

タイミング図、同期受信 ................................. 304タイミング図、同期送信 ................................. 303要件、同期受信 ................................................ 304要件、同期送信 ................................................ 303

VVREF、「ADC 参照電圧」参照

VREGCON レジスタ .......................................................... 84

WWCOL   .................................................... 211, 214, 216, 218WCOL ステータスフラグ ......................... 211, 214, 216, 218WDTCON レジスタ ............................................................ 89WPUB レジスタ ............................................................... 115WWW アドレス ................................................................ 371WWW、オンライン サポート .............................................. 2

アセンブラ

MPASM アセンブラ ................................................. 344

インターネット アドレス ................................................ 371

うウォッチドッグ タイマ (WDT) .......................................... 66

ウォッチドッグ タイマ関連

コンフィグレーション ワード ........................... 90関連レジスタ ............................................................. 90仕様 ......................................................................... 298モード ........................................................................ 88

エラッタ .............................................................................. 8エンハンスト ミッドレンジ CPU ...................................... 15

お客様向け通知サービス ................................................. 371お客様向け変更通知サービス .......................................... 371オシレータ

関連レジスタ ............................................................. 61オシレータ モジュール ...................................................... 47

ECH ........................................................................... 47ECL ............................................................................ 47ECM ........................................................................... 47HS .............................................................................. 47INTOSC ..................................................................... 47LP .............................................................................. 47RC ............................................................................. 47XT .............................................................................. 47

オシレータ起動タイマ (OST)仕様 ......................................................................... 298

オシレータの切り換え

2 段階クロック起動 ................................................... 56フェイルセーフ クロックモニタ ............................... 58

オシレータの仕様 ............................................................ 294オシレータのパラメータ ................................................. 295オペコード フィールドの説明 ......................................... 265温度インジケータ

関連レジスタ ........................................................... 134温度インジケータ モジュール ......................................... 133温度仕様 .......................................................................... 292

か開発サポート ................................................................... 343改版履歴 .......................................................................... 363書き込み保護 ..................................................................... 45拡張命令セット

ADDFSR .................................................................. 269カスタマサポート ............................................................ 371間接アドレス指定 .............................................................. 37

技術文書に関して ............................................................ 372キャプチャ モジュール 、

「キャプチャ / コンペア /PWM (CCP)」参照

キャプチャ / コンペア /PWM (CCP) ................................ 170CCPx ピンの設定 .................................................... 170PWM 関連のレジスタ .............................................. 177PWM の概要 ............................................................ 174PWM の周期 ............................................................ 175

2013 Microchip Technology Inc. DS41452C_JP - p.367

Page 368: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

PWM の設定 ............................................................. 175PWM の動作 ............................................................. 174PWM モード

PWM の周波数と分解能の例 (20 MHz) ............ 176PWM の周波数と分解能の例 (8 MHz) .............. 176システムクロック周波数の変更 ....................... 177スリープ中の動作 ............................................ 177デューティ サイクル ........................................ 175分解能 .............................................................. 176リセットの影響 ................................................ 177

キャプチャモード .................................................... 170コンペアモード ........................................................ 172

CCPx ピンの設定 ............................................. 172Timer1 モードのリソース ........................ 170, 172ソフトウェア割り込みモード .................. 170, 172特殊イベントトリガ ......................................... 172

仕様 .......................................................................... 300プリスケーラ ........................................................... 170

くクロック切り換え .............................................................. 55クロック源

外部モード ................................................................. 49EC ...................................................................... 49HS ...................................................................... 49LP ....................................................................... 49OST .................................................................... 50RC ...................................................................... 51XT ...................................................................... 49

内部モード ................................................................. 52HFINTOSC   ....................................................... 52LFINTOSC   ....................................................... 52内部オシレータのクロック切り換えタイミング 53

こコア機能レジスタ .............................................................. 29高精度内部オシレータのパラメータ ................................ 295固定参照電圧 (FVR) ......................................................... 131

関連レジスタ ........................................................... 132コンペア モジュール 、

「キャプチャ / コンペア /PWM (CCP)」参照

サンプルコード

A/D 変換 ................................................................... 140PORTA の初期化 ..................................................... 109キャプチャ プリスケーラの切り換え ...................... 170フラッシュ プログラムメモリへの書き込み ............ 100

状態変化割り込み ............................................................ 127関連レジスタ ........................................................... 130

スタック ............................................................................. 35アクセス ..................................................................... 35リセット ..................................................................... 37

スタックのオーバーフロー / アンダーフロー .................... 66

せ絶対 大定格 .................................................................... 279

ソフトウェア シミュレータ (MPLAB SIM) ...................... 345

代替ピン機能 ................................................................... 108タイマ

Timer1T1CON ............................................................ 161T1GCON .......................................................... 162

Timer2T2CON ............................................................ 167

タイミング パラメータの記号 ......................................... 293タイミング図

2 段階起動 ................................................................. 57A/D 変換 ................................................................... 302A/D 変換 ( スリープ ) ............................................... 302baud レート ジェネレータと

クロック アービトレーション ......................... 211CLKOUT と I/O ........................................................ 295I2C バスデータ ......................................................... 309I2C バスのスタート / ストップビット ..................... 308I2C マスタモード (7 ビット受信 ) ............................ 217I2C マスタモード (7 または 10 ビット送信 ) ........... 215INT ピン割り込み ...................................................... 74SPI スレーブモード (CKE = 0) ................................ 306SPI スレーブモード (CKE = 1) ................................ 306SPI マスタモード (CKE = 1、SMP = 1) .................. 305SPI モード ( マスタモード ) .................................... 185Timer0 と Timer1 の外部クロック ........................... 298Timer1 のインクリメント エッジ ............................ 157USART 同期受信 ( マスタ / スレーブ ) .................... 304USART 同期送信 ( マスタ / スレーブ ) .................... 303キャプチャ / コンペア /PWM (CCP) ........................ 300クロック タイミング ............................................... 294クロックの同期 ....................................................... 208肯定応答 (ACK) シーケンス ..................................... 218初のスタートビットのタイミング ....................... 212

自動 baud レート校正 .............................................. 251受信または送信モードの I2C ストップ条件 ............. 218スタート条件中の SDA アービトレーション

による BRG のリセット .................................. 221スタート条件中のバスコリジョン (SCL = 0) .......... 221スタート条件中のバスコリジョン (SDA のみ ) ....... 220ストップ条件中のバスコリジョン ( ケース 1) ......... 223ストップ条件中のバスコリジョン ( ケース 2) ......... 223スリープ中の自動復帰ビット (WUE) ...................... 253送信時と ACK 送信時のバスコリジョン .................. 219通常動作時の自動復帰ビット (WUE) ...................... 253同期受信 ( マスタモード、SREN) ........................... 258同期送信 .................................................................. 256同期送信 (TXEN を利用 ) ......................................... 256内部オシレータの切り換えタイミング ...................... 54反復スタート条件 .................................................... 213反復スタート条件中のバスコリジョン

( ケース 1) ........................................................ 222反復スタート条件中のバスコリジョン

( ケース 2) ........................................................ 222非同期受信 ............................................................... 240非同期送信 ............................................................... 236非同期送信 ( 連続 ) .................................................. 236フェイルセーフ クロックモニタ (FSCM) .................. 59ブラウンアウト リセット (BOR) ............................. 297ブラウンアウト リセット状態 ................................... 65ブレーク文字シーケンスの送信 .............................. 254リセット起動シーケンス ........................................... 67リセット、WDT、OST、PWRT ............................. 296割り込みによる復帰 .................................................. 82

DS41452C_JP - p.368 2013 Microchip Technology Inc.

Page 369: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

タイミングの要件

I2C バスデータ ......................................................... 309I2C バスのスタート / ストップビット ..................... 308SPI モード ............................................................... 307

低ドロップアウト (LDO) レギュレータの特性 ................ 303データメモリ ..................................................................... 20デバイス コンフィグレーション ........................................ 41

コード保護 ................................................................. 45コンフィグレーション ワード ................................... 41ユーザ ID .............................................................. 45, 46

デバイス ID レジスタ ......................................................... 46デバイス概要 ................................................................. 9, 87電気的仕様 ....................................................................... 279

特殊イベントトリガ ......................................................... 139特殊機能レジスタ (SFR) .................................................... 30

な内部オシレータ ブロック

INTOSC仕様 .................................................................. 295

内部サンプリング スイッチの

インピーダンス (RSS) .............................................. 145

はパッケージ ....................................................................... 347

PDIP の詳細 ............................................................. 349マーキング ....................................................... 347, 348

パワーアップ タイマ (PWRT) ............................................ 64仕様 .......................................................................... 298

パワーアップ タイムアウト シーケンス ............................ 66パワーオン リセット .......................................................... 64パワーダウン モード ( スリープ ) ...................................... 81

関連レジスタ ............................................................. 84

ひ非同期モードのクロック精度 .......................................... 242ピンの説明

................................................................................... 11

ふファームウェア命令 ......................................................... 265フェイルセーフ クロックモニタ ........................................ 58

フェイルセーフ条件の解消 ........................................ 58フェイルセーフ条件の検出 ........................................ 58フェイルセーフの動作 ............................................... 58リセットまたはスリープからの復帰 ......................... 58

負荷条件 ........................................................................... 293ブラウンアウト リセット (BOR) ....................................... 65

仕様 .......................................................................... 298タイミングと特性 .................................................... 297

フラッシュ プログラムメモリ ........................................... 91書き換え ................................................................... 101書き込み ..................................................................... 97書き込みベリファイ ................................................. 103関連レジスタ ........................................................... 106消去 ............................................................................ 95フラッシュ プログラムメモリ関連

コンフィグレーション ワード ......................... 106ブレークによる復帰 ......................................................... 252ブレーク文字 (12 ビット ) の送受信 ................................ 254プログラミング、デバイス命令 ....................................... 265

プログラムメモリ .............................................................. 17マップとスタック (PIC16(L)F1516/7) ....................... 18マップとスタック (PIC16(L)F1518/9) ....................... 18

ブロック図 ............................................................................. 10, 15(CCP) キャプチャモードの動作 .............................. 170ADC ......................................................................... 135ADC の伝達関数 ...................................................... 146CCP PWM ............................................................... 174EUSART 送信 .......................................................... 233EUSART レシーバ ................................................... 234Timer0 ..................................................................... 149Timer1 ..................................................................... 153Timer1 ゲート .......................................... 158, 159, 160Timer2 ..................................................................... 165アナログ入力モデル ................................................ 146外部 RC モード .......................................................... 51クロック源 ................................................................. 48コンペアモードの動作 ............................................. 172参照電圧 .................................................................. 131振動子の動作 ............................................................. 50水晶振動子による動作 ......................................... 50, 51内蔵リセット回路 ...................................................... 63汎用 I/O ポート ........................................................ 107フェイルセーフ クロックモニタ (FSCM) .................. 58割り込みロジック ...................................................... 71

まマイクロチップ社ウェブサイト ...................................... 371マスタ同期シリアルポート、 「MSSP」参照

め命令セット ....................................................................... 265

ADDLW .................................................................... 269ADDWF ................................................................... 269ADDWFC ................................................................. 269ANDLW .................................................................... 269ANDWF ................................................................... 269BCF ......................................................................... 270BRA ......................................................................... 270BSF .......................................................................... 270BTFSC ..................................................................... 270BTFSS ..................................................................... 270CALL ........................................................................ 271CALLW .................................................................... 271CLRF ....................................................................... 271CLRW ...................................................................... 271CLRWDT ................................................................. 271COMF ...................................................................... 271DECF ....................................................................... 271DECFSZ .................................................................. 272GOTO ...................................................................... 272INCF ........................................................................ 272INCFSZ .................................................................... 272IORLW ..................................................................... 272IORWF ..................................................................... 272LSLF ........................................................................ 273LSRF ....................................................................... 273MOVF ...................................................................... 273MOVIW .................................................................... 274MOVLB .................................................................... 274MOVLW ................................................................... 274MOVWF ................................................................... 274MOVWI .................................................................... 275NOP ......................................................................... 275

2013 Microchip Technology Inc. DS41452C_JP - p.369

Page 370: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

OPTION ................................................................... 275RESET ..................................................................... 275RETFIE .................................................................... 276RETLW .................................................................... 276RETURN .................................................................. 276RLF .......................................................................... 276RRF .......................................................................... 277SLEEP ..................................................................... 277SUBLW .................................................................... 277SUBWF .................................................................... 277SUBWFB .................................................................. 277SWAPF .................................................................... 278TRIS ......................................................................... 278XORLW .................................................................... 278XORWF .................................................................... 278

命令の形式 ....................................................................... 266メモリ構成 ......................................................................... 17

データ ........................................................................ 20プログラム ................................................................. 17

リセット ............................................................................. 63関連レジスタ ............................................................. 70

リセットの影響

PWM モード ............................................................. 177

れレジスタ

ADCON0 (ADC 制御 0) ............................................ 141ADCON1 (ADC 制御 1) ............................................ 142ADRESH (ADC 結果 High) (ADFM = 0) ................... 143ADRESH (ADC 結果 High) (ADFM = 1) ................... 144ADRESL (ADC 結果 Low) (ADFM = 0) .................... 143ADRESL (ADC 結果 Low) (ADFM = 1) .................... 144ANSELA (PORTA アナログ選択 ) ............................ 111ANSELB (PORTB アナログ選択 ) ............................ 115ANSELC (PORTC アナログ選択 ) ........................... 118ANSELD (PORTD アナログ選択 ) ........................... 121ANSELE (PORTE アナログ選択 ) ............................ 124APFCON ( 代替ピン機能の制御 ) ............................ 108BAUDCON (baud レート制御 ) ................................ 245BORCON ( ブラウンアウト リセット制御 ) .............. 65CCPxCON (CCPx 制御 ) .......................................... 178FVRCON   ................................................................ 132INTCON ( 割り込み制御 ) .......................................... 76IOCAF (PORTB 状態変化割り込みフラグ ) ............. 129IOCAN (PORTB 立ち下がりエッジの

状態変化割り込み ) .......................................... 129IOCAP (PORTB 立ち上がりエッジの

状態変化割り込み ) .......................................... 129LATA ( データラッチ PORTA) ................................. 111LATB ( データラッチ PORTB) ................................. 114LATC ( データラッチ PORTC) ................................ 117LATD ( データラッチ PORTD) ................................ 120LATE ( データラッチ PORTE) ................................. 124OPTION_REG ( オプション ) .................................. 151OSCCON ( オシレータ制御 ) ..................................... 60OSCSTAT ( オシレータ ステータス ) ........................ 61PCON ( 電源制御 ) ..................................................... 69PIE1 ( 周辺機能割り込みイネーブル 1) ..................... 77PIE2 ( 周辺機能割り込みイネーブル 2) ..................... 78PIR1 ( 周辺機能割り込みレジスタ 1) ......................... 79PIR2 ( 周辺機能割り込み要求 2) ................................ 80PMADRL ( プログラムメモリ アドレス ) ................. 104PMCON1 ( プログラムメモリ制御 1) ...................... 105

PMCON2 ( プログラムメモリ制御 2) ...................... 106PMDATH ( プログラムメモリ データ ) .................... 104PMDATL ( プログラムメモリ データ ) .................... 104PMDRH ( プログラムメモリ アドレス ) .................. 104PORTA   .................................................................. 110PORTB .................................................................... 114PORTC .................................................................... 117PORTD .................................................................... 120PORTE .................................................................... 123RCREG .................................................................... 251RCSTA ( 受信ステータス / 制御 ) ............................ 244SPBRGH   ................................................................ 246SPBRGL   ................................................................ 246SSPADD (MSSP アドレスと baud レート、

I2C モード ) ...................................................... 231SSPCON1 (MSSP 制御 1) ....................................... 227SSPCON2 (SSP 制御 2) .......................................... 229SSPCON3 (SSP 制御 3) .......................................... 230SSPMSK (SSP マスク ) ........................................... 231SSPSTAT (SSP ステータス ) .................................. 226STATUS   ................................................................... 21T1CON (Timer1 制御 ) ............................................. 161T1GCON (Timer1 ゲート制御 ) ............................... 162T2CON   ................................................................... 167TRISA (3 ステート PORTA) .................................... 110TRISB (3 ステート PORTB) .................................... 114TRISC (3 ステート PORTC) .................................... 117TRISD (3 ステート PORTD) .................................... 120TRISE (3 ステート PORTE) .................................... 123TXSTA ( 送信ステータス / 制御 ) ............................. 243VREGCON ( 電圧レギュレータ制御 ) ....................... 84WDTCON ( ウォッチドッグ タイマ制御 ) ................. 89WPUB ( 弱プルアップ PORTB) ............................... 115コア機能、まとめ ...................................................... 29コンフィグレーション ワード 1 ................................ 42コンフィグレーション ワード 2 ................................ 44デバイス ID ................................................................ 46特殊機能、まとめ ...................................................... 30

わ割り込み ............................................................................ 71

ADC   ....................................................................... 140LOD 関連のコンフィグレーション ワード ................ 85TMR1   ..................................................................... 157クロック源関連コンフィグレーション ワード .......... 61割り込み関連レジスタ ............................................... 80

割り込みによる復帰 .......................................................... 82

DS41452C_JP - p.370 2013 Microchip Technology Inc.

Page 371: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

マイクロチップ社ウェブサイト

マイクロチップ社は、弊社が運営する WWW サイト(www.microchip.com) を通してオンライン サポートを提供しています。このウェブサイトを活用する事で、ファイルや情報を簡単に入手できます。お好みのインターネット ブラウザを使って、下記の内容をご覧になれます。

• 製品サポート - データシートとエラッタ、アプリケーション ノートとサンプル プログラム、設計関連リソース、ユーザガイドとハードウェア サポート文書、 新のソフトウェア リリースと過去のソフトウェア

• 技術サポート - よく寄せられる質問 (FAQ)、技術サポート リクエスト、オンライン ディスカッション グループ、マイクロチップ社コンサルタント プログラム メンバーの一覧

• マイクロチップ社の事業 - 製品セレクタと注文のガイド、マイクロチップ社の 新プレスリリース、セミナーとイベントの一覧、マイクロチップ社の各営業所、販売代理店、工場の一覧

お客様向け変更通知サービス

マイクロチップ社のお客様向け変更通知サービスは、お客様がマイクロチップ社製品の 新情報を入手できるようにします。ご興味のある製品ファミリまたは開発ツールに関する変更、更新、エラッタ情報をいち早くメールにてお知らせします。

当サービスをご希望のお客様は、マイクロチップ社ウェブサイト(www.microchip.com)でご登録ください。[ サポート ] → [ お客様向け変更通知 ] をクリックし、画面の指示に従ってください。

カスタマサポート

マイクロチップ社製品のお客様は、下記のチャンネルからサポートをご利用頂けます。

• 販売代理店または販売担当者

• 寄りの営業所

• フィールド アプリケーション エンジニア (FAE)

• 技術サポート

• 開発システム情報ライン

サポートは販売代理店、販売担当者、フィールド アプリケーション エンジニア (FAE)までお問い合わせください。各地の営業所もご利用頂けます。本書の末尾には各国営業所の一覧を記載しています。

技術サポートは下記のウェブサイトからもご利用頂けます : http://microchip.com/support

2013 Microchip Technology Inc. DS41452C_JP - p.371

Page 372: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

お客様アンケート

マイクロチップ社は、弊社製品を存分にご活用頂くために、文書の作成に 善の努力を尽くしています。本書の構成、明確さ、内容等に関するご意見を FAX にてお寄せください ( 宛先 : マイクロチップ・テクノロジー・ジャパン株式会社 : FAX 番号 : 03-6880-3771)。

下記のアンケート フォームにお客様情報と本書に関するご意見をご記入ください。

宛先 : マイクロチップ・テクノロジー・ジャパン株式会社

件名 : お客様アンケート送信ページ数 ________

送信者 : お名前

貴社名

ご住所

郵便番号

電話番号 : (_______) _________ - _________

アプリケーション ( 任意 ):

返信をご希望ですか ?   はい いいえ

デバイス : 文書番号 :

質問 :

FAX 番号 : (______) _________ - _________

DS41452C_JPPIC16(L)F1516/7/8/9

1. 本書で も良かった点は何ですか。

2. 本書はお客様のハードウェア / ソフトウェア開発に役立ちますか。

3. 本書の構成は分かりやすいですか。分かりにくい場合はその理由もご記入ください。

4. 本書の構成と内容を改善するには何を追加すべきですか。

5. 本書から省略してもかまわない内容は何ですか。

6. 不正確であったり誤解を招きやすい箇所がございましたらご指摘ください。

7. その他、本書の改善に向けてご意見がございましたらご記入ください。

DS41452C_JP - p.372 2013 Microchip Technology Inc.

Page 373: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

製品識別システム

ご注文または製品の価格や納期等に関するお問い合わせは、弊社または販売代理店までお問い合わせください。

PART NO. X /XX XXX

PatternPackageTemperatureRange

Device

Device: PIC16F1516, PIC16LF1516PIC16F1517, PIC16LF1517PIC16F1518, PIC16LF1518PIC16F1519, PIC16LF1519

Tape and Reel Option:

Blank = Standard packaging (tube or tray) T = Tape and Reel(1)

Temperature Range:

I = -40C to +85C (Industrial)E = -40C to +125C (Extended)

Package:(2) MV = Ultra Thin Quad Flat, no lead (UQFN)P = Plastic DIP (PDIP)PT = TQFPSO = SOICSP = Skinny Plastic DIP (SPDIP)SS = SSOP

Pattern: QTP, SQTP, Code or Special Requirements (blank otherwise)

例 :

a) PIC16F1516T - I/MV 301テープ & リール、産業用温度仕様、UQFN パッケージ、QTP パターン #301

b) PIC16F1519 - I/P産業用温度仕様、PDIP パッケージ

c) PIC16F1518 - E/SS拡張温度仕様、SSOP パッケージ

Note 1: テープ & リールの識別情報は、カタログの製品番号説明でのみご確認頂けます。この識別情報は注文時に使うもので、デバイスのパッケージには印刷されていません。テープ & リールオプションのあるパッケージの販売状況については、 寄りのマイクロチップ社の営業所までお問い合わせください。

2: その他の、より外形の小さいパッケージの在庫 / 供給状況およびマーキング情報は、www.microchip.com/packaging を参照するか、 寄りの営業所までお問い合わせください。

[X](1)

Tape and ReelOption

-

2013 Microchip Technology Inc. DS41452C_JP - p.373

Page 374: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

PIC16(L)F1516/7/8/9

NOTES:

DS41452C_JP - p.374 2013 Microchip Technology Inc.

Page 375: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

マイクロチップ社製デバイスのコード保護機能に関して以下の点にご注意ください。

• マイクロチップ社製品は、該当するマイクロチップ社データシートに記載の仕様を満たしています。

• マイクロチップ社では、通常の条件ならびに仕様に従って使用した場合、マイクロチップ社製品のセキュリティ レベルは、

現在市場に流通している同種製品の中でも も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法

はマイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります。このような

行為は知的所有権の侵害に該当する可能性が非常に高いと言えます。

• マイクロチップ社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。

• マイクロチップ社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コー

ド保護機能とは、マイクロチップ社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。マイクロチップ社では、常に製品のコード保護機能の改善に取り組んでいます。マイクロ

チップ社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはそ

の他の著作物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があ

ります。

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。マイクロチップ社は、明示的、暗黙的、書面、口

頭、法定のいずれであるかを問わず、本書に記載されている

情報に関して、状態、品質、性能、商品性、特定目的への適

合性をはじめとする、いかなる類の表明も保証も行いません。

マイクロチップ社は、本書の情報およびその使用に起因する

一切の責任を否認します。マイクロチップ社の明示的な書面

による承認なしに、生命維持装置あるいは生命安全用途にマ

イクロチップ社の製品を使用する事は全て購入者のリスクと

し、また購入者はこれによって発生したあらゆる損害、クレー

ム、訴訟、費用に関して、マイクロチップ社は擁護され、免

責され、損害を受けない事に同意するものとします。暗黙的

あるいは明示的を問わず、マイクロチップ社が知的財産権を

保有しているライセンスは一切譲渡されません。

2013 Microchip Technology Inc.

商標

マイクロチップ社の名称とロゴ、Microchip ロゴ、dsPIC、

FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、

SuperFlash および UNI/O は、米国およびその他の国におけ

るマイクロチップ・テクノロジー社の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、

米国におけるマイクロチップ・テクノロジー社の登録商標

です。

Silicon Storage Technology は、他の国におけるマイクロ

チップ・テクノロジー社の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、

dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、

ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB Certified ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、

PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、

UniWinDriver、WiperLock、ZENA および Z-Scale は、米国

およびその他の国におけるマイクロチップ・テクノロジー社

の商標です。

SQTP は、米国におけるマイクロチップ・テクノロジー社の

サービスマークです。

GestIC および ULPP は、マイクロチップ・テクノロジー社

の子会社である Microchip Technology Germany II GmbH & Co. & KG 社の他の国における登録商標です。

その他、本書に記載されている商標は各社に帰属します。

© 2013, Microchip Technology Incorporated, All Rights Reserved.

ISBN: 978-1-62076-592-0

DS41452C_JP - p.375

マイクロチップ社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。マイクロチップ社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するマイクロチップ社の品質システムはISO 9001:2000 認証を取得しています。

Page 376: PIC16(L)F1516/7/8/9 Data Sheetww1.microchip.com/downloads/jp/DeviceDoc/41452C_JP.pdfPIC16(L)F1516/7/8/9 DS41452C_JP - p.2 2013 Microchip Technology Inc. PIC16(L)F151X/152X ファミリの種類

DS41452C_JP - p.376 2013 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455

ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088

シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075

クリーブランドIndependence, OHTel: 216-447-0464Fax: 216-447-0643

ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924

デトロイトFarmington Hills, MITel: 248-538-2250Fax: 248-538-2260

インディアナポリスNoblesville, INTel: 317-773-8323Fax: 317-773-5453

ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608

サンタクララSanta Clara, CATel: 408-961-6444Fax: 408-961-6445

トロントMississauga, Ontario,CanadaTel: 905-673-0699 Fax: 905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2401-1200Fax: 852-2401-3431

オーストラリア - シドニー

Tel: 61-2-9868-6733Fax: 61-2-9868-6755

中国 - 北京

Tel: 86-10-8569-7000Fax: 86-10-8528-2104

中国 - 成都

Tel: 86-28-8665-5511Fax: 86-28-8665-7889

中国 - 重慶

Tel: 86-23-8980-9588Fax: 86-23-8980-9500

中国 - 杭州

Tel: 86-571-2819-3187Fax: 86-571-2819-3189

中国 - 香港 SARTel: 852-2943-5100 Fax: 852-2401-3431

中国 - 南京

Tel: 86-25-8473-2460Fax: 86-25-8473-2470

中国 - 青島

Tel: 86-532-8502-7355Fax: 86-532-8502-7205

中国 - 上海

Tel: 86-21-5407-5533Fax: 86-21-5407-5066

中国 - 瀋陽

Tel: 86-24-2334-2829Fax: 86-24-2334-2393

中国 - 深圳

Tel: 86-755-8864-2200 Fax: 86-755-8203-1760

中国 - 武漢

Tel: 86-27-5980-5300Fax: 86-27-5980-5118

中国 - 西安

Tel: 86-29-8833-7252Fax: 86-29-8833-7256

中国 - 厦門

Tel: 86-592-2388138 Fax: 86-592-2388130

中国 - 珠海

Tel: 86-756-3210040 Fax: 86-756-3210049

アジア / 太平洋インド - バンガロール

Tel: 91-80-3090-4444 Fax: 91-80-3090-4123

インド - ニューデリー

Tel: 91-11-4160-8631Fax: 91-11-4160-8632

インド - プネ

Tel: 91-20-2566-1512Fax: 91-20-2566-1513

日本 - 大阪

Tel: 81-66-152-7160Fax: 81-66-152-9310

日本 - 東京

Tel: 81-3-6880-3770Fax: 81-3-6880-3771

韓国 - 大邱

Tel: 82-53-744-4301Fax: 82-53-744-4302

韓国 - ソウル

Tel: 82-2-554-7200Fax: 82-2-558-5932 または

82-2-558-5934

マレーシア - クアラルンプール

Tel: 60-3-6201-9857Fax: 60-3-6201-9859

マレーシア - ペナン

Tel: 60-4-227-8870Fax: 60-4-227-4068

フィリピン - マニラ

Tel: 63-2-634-9065Fax: 63-2-634-9069

シンガポールTel: 65-6334-8870Fax: 65-6334-8850

台湾 - 新竹

Tel: 886-3-5778-366Fax: 886-3-5770-955

台湾 - 高雄

Tel: 886-7-213-7828Fax: 886-7-330-9305

台湾 - 台北

Tel: 886-2-2508-8600 Fax: 886-2-2508-0102

タイ - バンコク

Tel: 66-2-694-1351Fax: 66-2-694-1350

ヨーロッパオーストリア - ヴェルス

Tel: 43-7242-2244-39Fax: 43-7242-2244-393

デンマーク - コペンハーゲン

Tel: 45-4450-2828 Fax: 45-4485-2829

フランス - パリ

Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79

ドイツ - ミュンヘン

Tel: 49-89-627-144-0 Fax: 49-89-627-144-44

イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781

オランダ - ドリューネン

Tel: 31-416-690399 Fax: 31-416-690340

スペイン - マドリッド

Tel: 34-91-708-08-90Fax: 34-91-708-08-91

イギリス - ウォーキンガム

Tel: 44-118-921-5869Fax: 44-118-921-5820

各国の営業所とサービス

11/27/12