PIC16(L)F1516/7/8/9 Data Sheet

Similar documents
PowerPoint プレゼンテーション

PIC16(L)F1703/7 Data Sheet

DS30292A-J-page 2 Preliminary 2000 Microchip Technology Inc. PIC16F876/

PowerPoint プレゼンテーション

PIC16C7X日本語データシート

DS41364B_JP

スライド 1

Taro11-…e…L…X…g.jtd

untitled

Microsoft Word - 工学ゼミ3_テキスト

39733a.fm

スライド 1

スライド 1

PIC24F Family Reference Manual Section 9 WDT

Microsoft PowerPoint - 第8α章.ppt [互換モード]

前付(念).indd

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

スライド 1

ご注意 : この日本語版ドキュメントは 参考資料としてご使用の上 最新情報につきましては 必ず英語版オリジナルをご参照いただきますようお願いします PIC12F1822/16F182X 8/14/20 ピン 8 ビットフラッシュマイクロコントローラ製品概要 高性能 RISC CPU: 命令数は 49

スライド 1

Microsoft Word - 工学ゼミ3_テキスト

PICF/LF1847 表 1: デバイス PICF/LF1847 ファミリの各製品 プログラムメモリフラッシュ ( ワード ) データ EEPROM ( バイト ) SRAM ( バイト ) I/O 10 ビット A/D (ch) タイマ 8/ ビット EUSART MSSP CCP/ ECCP

回路 : Vdd GND 回路図と呼べるようなものではありません オシレータは外部 ( セラミック発振子 ) なので GP4 と GP5 は使えません 四角の枠内はモジュールなので ここから VDD GND TX RX の4 本をつなぐだけです 測定端子 (GP0) は 1MΩの抵抗と 2MΩの半固

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

USB モジュール

#include "uart.h" // #define RTC8583 0xA0 // RTC address #define CTRL 0x00 // RTC register notation START/STOP #defin

スライド 1

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

PICkit 3 Starter Kit User’s Guide

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

untitled

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

Slide 1

3 4 PIC

#define HOUR 0x04 #define DAY 0x05 #define WEEKDAY 0x06 #define MONTH 0x07 #define YEAR 0x08 #define CKOUT 0x0D #define CTRLT 0x0E // CLKOUT // TIMER

Microsoft Word - テキスト.docx

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

スライド 1

1 4 8 (DC) PWM.

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

計算機アーキテクチャ

DS30430C-J2-page 2 : 1998 Microchip Technology Inc.

PowerPoint プレゼンテーション

Section 36. Programmable Cyclic Redundancy Check (CRC)

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

スライド 1

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

PIC10(L)F320/322 Product Brief

AKI-PIC16F877A開発キット (Ver1

3 1EEPROMElectrically Erasable PROM PROMProgrammable ROM 2 EEPROM 3

AN-1077: ADXL345 Quick Start Guide

Notes and Points for TMPR454 Flash memory

スライド 1

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

スライド 1

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

Timers_JP.fm

スライド 1

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

ターゲット項目の設定について

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

,, ( ) 5 ma ( ) 5V V 5 6 A B C D E F G H I J , LED LED, LED, 7 LED,, 7 LED ( ) V LED VCC 5V 7 LED VCC f g f a g b a b c e d e d c dp dp VCC (

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

ETCB Manual

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

(Microsoft Word -

メモリ空間 - 最大 16M バイトの空間をアクセス可能 (24 ビットアドレス ) DSP MUL( 乗算演算 ) ビット (1 サイクル ) MAC( 積和演算 ) ビット (1サイクル) DIV( 除算演算 ) ビット (17~20 サイクル ) 内蔵

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること

表 1: ファミリの各製品 デバイス (1) プログラムメモリ バイトワード SRAM ( バイト ) データメモリ データ EEPROM ( バイト ) ピン数 I/O 10 ビット A/D チャンネル コンパレータ CCP/ ECCP BOR/LVD CTMU MSSP EUSART タイマ 8

Microsoft PowerPoint - 3.3タイミング制御.pptx

2. アーキテクチャ 概 要 PIC16F8x ファミリは 命 令 語 長 14bit の RISC[1]で 命 令 は35 種 類 である 1 命 令 は4クロックで 実 行 されるが 実 際 にはパイプライン 処 理 [2]されている ノイマン 型 コンピュータ[3]と 違 いプログラムとデータ

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

PowerPoint プレゼンテーション

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

8051 개발보드 메뉴얼

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

Notes and Points for ADuCM320 Internal Flash memory

10-vm1.ppt

39734a_JP.fm

CommCheckerManual_Ver.1.0_.doc

PIC18 Istructios PIC16, PIC x Microchip Techology Icorporated. All Rights Reserved. PICmicro PIC18 52

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

MODBUS ユーザーズマニュアル 페이지 1 / 23

elm73xxxxxxa_jp.indd

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

Microsoft PowerPoint - Sol7 [Compatibility Mode]

MINI2440マニュアル

BSF PORTA BCF PORTA MOVLWB MOVLWB MOVLWB MOVLWB , E=1, E=0 8 ビット 行表示 ディスプレイ制御 表示クリア エントリーモード CALLDSP MAIN BCF PORTA,3 R

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

卒 業 研 究 報 告

Transcription:

注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います XLP テクノロジ採用 28/40/44 ピンフラッシュマイクロコントローラ このデータシートに記載されているデバイス PIC16F1516 PIC16F1517 PIC16F1518 PIC16F1519 PIC16LF1516 PIC16LF1517 PIC16LF1518 PIC16LF1519 高性能 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 と I 2 C TM 付き : - 7 ビットのアドレスマスキング - SMBus/PMBus TM 互換 EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter) モジュール : - RS-232 RS-485 LIN 互換 - 自動 baud レート検出 - スタート時に自動復帰 2013 Microchip Technology Inc. DS41452C_JP - p.1

PIC16(L)F151X/152X ファミリの種類 デバイス名 データシートインデックス プログラムメモリフラッシュ ( ワード ) データ SRAM (byte) I/O 数 (2) ADC タイマ数 (8/16 ビット ) 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 データシート 28/40/44 ピンフラッシュ 8 ビット MCU 3: DS41458 PIC16(L)F1526/27 データシート 64 ピンフラッシュ 8 ビット MCU 10 ビット (ch) 先進の制御 EUSART MSSP (I 2 C /SPI) CCP デバッグ (1) XLP Note: その他の小型パッケージの在庫 / 供給状況とマーキング情報は http://www.microchip.com/packaging を参照するか 弊社までお問い合わせください DS41452C_JP - p.2 2013 Microchip Technology Inc.

図 1: PIC16(L)F1516/1518 の 28 ピン SPDIP SOIC SSOP パッケージ図 28-Pin SPDIP, SOIC, SSOP VPP/MCLR/RE3 RA0 RA1 RA2 RA3 RA4 RA5 VSS RA7 RA6 RC0 RC1 RC2 RC3 1 2 3 4 5 6 7 8 9 10 11 12 13 PIC16F1516/1518 PIC16LF1516/1518 28 27 26 25 24 23 22 21 20 19 18 17 16 14 15 RB7/ICSPDAT RB6/ICSPCLK RB5 RB4 RB3 RB2 RB1 RB0 VDD VSS RC7 RC6 RC5 RC4 Note: 周辺機能の配置の詳細は 表 1 を参照してください 図 2: PIC16(L)F1516/1518 の 28 ピン UQFN (4x4) パッケージ図 28-Pin UQFN 1 2 3 4 5 6 7 21 20 19 18 17 16 15 RC0 RC1 RC2 RC3 RC4 RB7/ICSPDAT RB6/ICSPCLK RB5 RB4 RB3 RB2 RB1 RB0 VDD VSS RC7 RC5 RC6 28 27 26 25 24 23 22 RA1 RA0 RE3/MCLR/VPP RA2 RA3 RA4 RA5 VSS RA7 RA6 PIC16F1516/1518 PIC16LF1516/1518 8 9 10 11 12 13 14 Note: 周辺機能の配置の詳細は 表 1 を参照してください 2013 Microchip Technology Inc. DS41452C_JP - p.3

図 3: PIC16(L)F1517/1519 の 40 ピン PDIP パッケージ図 40-Pin PDIP VPP/MCLR/RE3 1 40 RB7/ICSPDAT RA0 2 39 RB6/ICSPCLK RA1 3 38 RB5 RA2 4 37 RB4 RA3 5 36 RB3 RA4 6 35 RB2 RA5 RE0 RE1 RE2 VDD VSS RA7 7 8 9 10 11 12 13 PIC16F1517/1519 PIC16LF1517/1519 34 33 32 31 30 29 28 RB1 RB0 VDD VSS RD7 RD6 RD5 RA6 14 27 RD4 RC0 RC1 15 16 26 25 RC7 RC6 RC2 RC3 RD0 RD1 17 18 19 20 24 23 22 21 RC5 RC4 RD3 RD2 Note: 周辺機能の配置の詳細は 表 1 を参照してください DS41452C_JP - p.4 2013 Microchip Technology Inc.

図 4: PIC16(L)F1517/1519 の 40 ピン UQFN (5x5) パッケージ図 40-Pin UQFN RC6 RC5 RC4 RD3 RD2 RD1 RD0 RC3 RC2 RC1 RC7 RD4 RD5 RD6 RD7 VSS VDD RB0 RB1 RB2 1 2 3 4 5 6 7 8 9 10 40 39 38 37 36 35 34 33 32 31 PIC16F1517/1519 PIC16LF1517/1519 30 29 28 27 26 25 24 23 22 21 RC0 RA6 RA7 VSS VDD RE2 RE1 RE0 RA5 RA4 RB3 RB4 RB5 ICSPCLK/RB6 ICSPDAT/RB7 VPP/MCLR/RE3 RA0 RA1 RA2 RA3 11 12 13 14 15 16 17 18 19 20 Note: 周辺機能の配置の詳細は 表 1 を参照してください 図 5: PIC16(L)F1517/1519 の 44 ピン TQFP パッケージ図 44-Pin TQFP RC6 RC5 RC4 RD3 RD2 RD1 RD0 RC3 RC2 RC1 1 2 3 4 5 6 7 8 9 10 11 44 43 42 41 40 39 12 13 14 15 16 17 38 37 36 35 34 18 19 20 21 22 33 32 31 30 29 28 27 26 25 24 23 NC NC RB4 RB5 ICSPCLK/RB6 ICSPDAT/RB7 RE3 RA0 RA1 RA2 RA3 NC RC7 RD4 RD5 RD6 RD7 VSS VDD RB0 RB1 RB2 RB3 PIC16F1517/1519 PIC16LF1517/1519 NC RC0 RA6 RA7 VSS VDD RE2 RE1 RE0 RA5 RA4 Note: 周辺機能の配置の詳細は 表 1 を参照してください 2013 Microchip Technology Inc. DS41452C_JP - p.5

表 1: 28/40/44 ピン割り当て表 I/O 28 ピン SPDIP SOIC SSOP 28 ピン UQFN 40 ピン PDIP 40 ピン UQFN 44 ピン TQFP ADC タイマ CCP EUSART MSSP 割り込み プルアップ 標準設定 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.

目次 1.0 デバイス概要... 9 2.0 エンハンストミッドレンジ CPU... 15 3.0 メモリ構成... 17 4.0 デバイスコンフィグレーション... 41 5.0 オシレータモジュール ( フェイルセーフクロックモニタ機能付き )... 47 6.0 リセット... 63 7.0 割り込み... 71 8.0 パワーダウンモード ( スリープ )... 81 9.0 低ドロップアウト (LDO) 電圧レギュレータ... 85 10.0 ウォッチドッグタイマ (WDT)... 87 11.0 フラッシュプログラムメモリ制御... 91 12.0 I/O ポート... 107 13.0 状態変化割り込み... 127 14.0 固定参照電圧 (FVR)... 131 15.0 温度インジケータモジュール... 133 16.0 A/D コンバータ (ADC) モジュール... 135 17.0 Timer0 モジュール... 149 18.0 Timer1 モジュール ( ゲート制御対応 )... 153 19.0 Timer2 モジュール... 165 20.0 キャプチャ / コンペア /PWM モジュール... 169 21.0 マスタ同期シリアルポート (MSSP) モジュール... 179 22.0 拡張 USART (EUSART: Enhanced Universal Synchronous Asynchronous Receiver Transmitter)... 233 23.0 インサーキットシリアルプログラミング (ICSP : In-Circuit Serial Programming )... 263 24.0 命令セットのまとめ... 265 25.0 電気的仕様... 279 26.0 DC および AC 特性の図表... 311 27.0 開発サポート... 343 28.0 パッケージ情報... 347 補遺 A: データシート改版履歴... 363 索引... 365 マイクロチップ社ウェブサイト... 371 お客様向け変更通知サービス... 371 カスタマサポート... 371 お客様アンケート... 372 製品識別システム... 373 2013 Microchip Technology Inc. DS41452C_JP - p.7

大切なお客様へ マイクロチップ テクノロジー社は 大切なお客様にマイクロチップ社製品を適切にご使用頂くために 最高品質の文書を提供する事を心掛けています このため 弊社はお客様のニーズにより的確に応える事ができるように 文書の改善を続けており 新刊 更新版を発表するごとに内容の見直しと充実を図っています 本書に関してご質問またはご意見がございましたら マーケティングコミュニケーション部宛てにメールまたは FAX でご連絡ください メールの宛先は docerrors@microchip.com 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.

1.0 デバイス概要 本データシートでは について説明します 図 1-1 に のブロック図を示します 表 1-2 は ピンの説明です 各デバイスで利用可能な周辺機能については 表 1-1 を参照してください 表 1-1: デバイスの周辺機能一覧 周辺機能 PIC16(L)F1516 PIC16(L)F1517 PIC16(L)F1518 PIC16(L)F1519 A/D コンバータ (ADC) 固定参照電圧 (FVR) 温度インジケータ キャプチャ / コンペア /PWM モジュール CCP1 EUSART マスタ同期シリアルポート タイマ CCP2 EUSART MSSP Timer0 Timer1 Timer2 2013 Microchip Technology Inc. DS41452C_JP - p.9

図 1-1: のブロック図 Program Flash Memory RAM PORTA OSC2/CLKOUT Timing Generation PORTB OSC1/CLKIN INTRC Oscillator CPU ( 図 2-1) PORTC MCLR PORTD (3) PORTE (4) CCP1 Timer0 Temp. Indicator ADC 10-Bit FVR CCP2 MSSP Timer1 Timer2 EUSART Note 1: 周辺機能の詳細は 各機能に対応する章を参照してください 2: 各デバイスで利用可能な周辺機能については 表 1-1 を参照してください 3: PIC16(L)F1517/9 の場合のみです 4: RE<2:0> PIC16(L)F1517/9 の場合のみです DS41452C_JP - p.10 2013 Microchip Technology Inc.

表 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 レベルのシュミットトリガ入力レベル I 2 C = I 2 C レベルのシュミットトリガ入力レベル 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

表 1-2: ピンの説明 ( 続き ) ピン名機能入力タイプ出力タイプ説明 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 I 2 C OD I 2 C クロック RC4/AN16/SDI/SDA RC4 ST CMOS 汎用 I/O AN16 AN - ADC チャンネル 16 入力 SDI ST - SPI データ入力 SDA I 2 C OD I 2 C データ入力 / 出力 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 入力 凡例 : AN = アナログ入出力 CMOS = CMOS 互換入出力 OD = オープンドレイン TTL = TTL 互換入力 ST = CMOS レベルのシュミットトリガ入力レベル I 2 C = I 2 C レベルのシュミットトリガ入力レベル 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.

表 1-2: ピンの説明 ( 続き ) ピン名機能入力タイプ出力タイプ説明 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 電源 - グランド基準 凡例 : AN = アナログ入出力 CMOS = CMOS 互換入出力 OD = オープンドレイン TTL = TTL 互換入力 ST = CMOS レベルのシュミットトリガ入力レベル I 2 C = I 2 C レベルのシュミットトリガ入力レベル 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

NOTES: DS41452C_JP - p.14 2013 Microchip Technology Inc.

2.0 エンハンストミッドレンジ CPU このデバイスファミリはエンハンストミッドレンジ 8 ビット CPU コアを採用しています この CPU は 49 の命令をサポートしており 割り込み発生時にはコンテキストを自動保存可能です ハードウェアスタックの深さは 16 レベルであり オーバーフローとアンダーフローによるリセット機能を備えています アドレッシ ングモードは 直接 間接 相対をサポートします 2 つの FSR ( ファイルセレクトレジスタ ) を使ってプログラムメモリとデータメモリの読み出しが可能です 割り込み発生時の自動コンテキスト保存 オーバーフロー / アンダーフローリセット機能付き 16 レベルスタック FSR ( ファイルセレクトレジスタ ) 命令セット 図 2-1: コアのブロック図 15 MUX Configuration Flash Program Memory 15 Data Bus 8 Program Counter 16-Level 8 Stack RAM (13-bit) (15-bit) Program Bus 15 15 14 Instruction Reg reg Direct Addr 7 8 Program Memory Read (PMR) 5 BSR FSR Reg reg FSR1 reg Reg 12 Addr MUX Indirect Addr 12 12 RAM Addr FSR0 reg Reg STATUS Reg reg Power-up Timer 3 MUX OSC1/CLKIN OSC2/CLKOUT Instruction Decode and & Control Timing Generation Oscillator Start-up Timer Power-on Reset Watchdog Timer Brown-out Reset 8 ALU W reg Internal Oscillator Block VDD VSS 2013 Microchip Technology Inc. DS41452C_JP - p.15

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.

3.0 メモリ構成 これらのデバイスは以下のタイプのメモリを搭載しています プログラムメモリ - コンフィグレーションワード - デバイス ID - ユーザ ID - フラッシュプログラムメモリ データメモリ - コアレジスタ - 特殊機能レジスタ - 汎用 RAM - 共通 RAM プログラムメモリとデータメモリのアクセスと制御に関係する機能として 以下のものがあります PCL と PCLATH スタック 間接アドレス指定 3.1 プログラムメモリの構成 エンハンストミッドレンジコアには 15 ビットのプログラムカウンタがあり 32Kx14 のプログラムメモリ空間にアクセスできます 表 3-1 に これらのデバイスに実装されているメモリのサイズを示します この境界を超える位置にアクセスすると 実装されたメモリ空間内でラップアラウンド ( 折り返し ) が発生します リセットベクタは 0000h 割り込みベクタは 0004h です ( 図 3-1 と図 3-2 参照 ) 表 3-1: デバイスサイズとアドレス デバイス名 PIC16F1516 PIC16LF1516 PIC16F1517 PIC16LF1517 PIC16F1518 PIC16LF1518 プログラムメモリ空間 ( ワード ) プログラムメモリの最終アドレス 高書き込み耐性フラッシュメモリアドレス範囲 (1) 8,192 1FFFh 1F80h ~ 1FFFh 16,384 3FFFh 3F80h ~ 3FFFh PIC16F1519 PIC16LF1519 Note 1: 高書き込み耐性フラッシュは 範囲内の各アドレス下位バイトのみです 2013 Microchip Technology Inc. DS41452C_JP - p.17

図 3-1: PIC16(L)F1516/7 のプログラムメモリマップとスタック 図 3-2: PIC16(L)F1518/9 のプログラムメモリマップとスタック CALL, CALLW RETURN, RETLW Interrupt, RETFIE PC<14:0> 15 Stack Level 0 Stack Level 1 CALL, CALLW RETURN, RETLW Interrupt, RETFIE PC<14:0> 15 Stack Level 0 Stack Level 1 Stack Level 15 Stack Level 15 Reset Vector 0000h Reset Vector 0000h On-chip Program Memory Interrupt Vector Page 0 Page 1 Page 2 Page 3 ページ 0 にロールオーバー 0004h 0005h 07FFh 0800h 0FFFh 1000h 17FFh 1800h 1FFFh 2000h On-chip Program Memory Interrupt Vector Page 0 Page 1 Page 2 Page 3 Page 4 0004h 0005h 07FFh 0800h 0FFFh 1000h 17FFh 1800h 1FFFh 2000h Page 7 ページ 0 にロールオーバー 3FFFh 4000h ページ 3 にロールオーバー 7FFFh ページ 7 にロールオーバー 7FFFh DS41452C_JP - p.18 2013 Microchip Technology Inc.

3.1.1 プログラムメモリをデータとして読む プログラムメモリの定数にアクセスする方法は 2 つあります 1 つ目は RETLW 命令テーブルを使う方法です 2 つ目は FSR を介してプログラムメモリ内を指定する方法です 3.1.1.1 RETLW 命令 RETLW 命令を使って定数テーブルへアクセスできます 例 3-1 に 推奨するテーブル作成方法を示します 例 3-1: RETLW 命令 constants BRW RETLW DATA0 RETLW DATA1 RETLW DATA2 RETLW DATA3 ;Add Index in W to ;program counter to ;select data ;Index0 data ;Index1 data 例 3-2: FSR を介したプログラムメモリへのアクセス constants RETLW DATA0 ;Index0 data RETLW DATA1 ;Index1 data RETLW DATA2 RETLW DATA3 my_function ; LOTS OF CODE MOVLW LOW constants MOVWF FSR1L MOVLW HIGH constants MOVWF FSR1H MOVIW 0[FSR1] ;THE PROGRAM MEMORY IS IN W my_function ; LOTS OF CODE MOVLW DATA_INDEX CALL constants ;Ö THE CONSTANT IS IN W BRW 命令を使うと このようなテーブルを非常に簡単に実装できます 旧世代のマイクロコントローラとのコード移植性を確保する必要がある場合 BRW 命令を使えないため 従来のテーブル読み出し方法を使う必要があります 3.1.1.2 FSR を使った間接読み出し FSRxH レジスタの bit 7 をセットし 一致する INDFx レジスタを読み出す事で プログラムメモリへデータとしてアクセスできます MOVIW 命令は アドレス指定したワードの下位 8 ビットを W レジスタへ格納します INDF レジスタを介してプログラムメモリへ書き込む事はできません FSR を使ってプログラムメモリへアクセスする場合 追加で 1 命令サイクルが必要です 例 3-2 に FSR を介したプログラムメモリへのアクセスを示します ラベルがプログラムメモリ内の位置を指している場合 HIGH ディレクティブによりビット <7> がセットされます 2013 Microchip Technology Inc. DS41452C_JP - p.19

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 x00h または x80h x01h または x81h x02h または x82h x03h または x83h x04h または x84h x05h または x85h x06h または x86h x07h または x87h x08h または x88h x09h または x89h x0ah または x8ah x0bh または x8bh BANKx INDF0 INDF1 PCL STATUS FSR0L FSR0H FSR1L FSR1H BSR WREG PCLATH INTCON DS41452C_JP - p.20 2013 Microchip Technology Inc.

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 命令セットのまとめ を参照してください Note 1: 減算では C ビットが Borrow DC ビットが Digit Borrow アウトビットとして動作します 3.3 レジスタ定義 : STATUS レジスタ 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 bit 4 未実装 : 0 として読み出し 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

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: 7-bit Bank Offset メモリバンクの構成 00h 0Bh 0Ch 1Fh 20h Memory Region Core Registers (12 bytes) Special Function Registers (20 bytes maximum) General Purpose RAM (80 bytes maximum) 6Fh 70h 7Fh Common RAM (16 bytes) 3.3.4 デバイスメモリマップ PIC16(L)F1516/7 と PIC16(L)F1516/7 のメモリマップは それぞれ表 3-3 と表 3-4 に示した通りです DS41452C_JP - p.22 2013 Microchip Technology Inc.

2013 Microchip Technology Inc. DS41452C_JP - p.23 表 3-3: 000h PIC16(L)F1516/7 のメモリマップ BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5 BANK 6 BANK 7 コアレジスタ ( 表 3-2 ) 080h コアレジスタ ( 表 3-2 ) 100h コアレジスタ ( 表 3-2 ) 凡例 : = 未実装データメモリアドレス 0 として読み出し Note 1: PIC16(L)F1517 の場合のみです 2: PIC16F1516/7 の場合のみです 180h コアレジスタ ( 表 3-2 ) 200h コアレジスタ ( 表 3-2 ) 280h コアレジスタ ( 表 3-2 ) 300h コアレジスタ ( 表 3-2 ) 380h コアレジスタ ( 表 3-2 ) 00Bh 08Bh 10Bh 18Bh 20Bh 28Bh 30Bh 38Bh 00Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch - 28Ch - 30Ch - 38Ch - 00Dh PORTB 08Dh TRISB 10Dh LATB 18Dh ANSELB 20Dh WPUB 28Dh - 30Dh - 38Dh - 00Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh - 28Eh - 30Eh - 38Eh - 00Fh PORTD (1) 08Fh TRISD (1) 10Fh LATD (1) 18Fh ANSELD (1) 20Fh - 28Fh - 30Fh - 38Fh - 010h PORTE 090h TRISE 110h LATE (1) 190h ANSELE (1) 210h WPUE 290h - 310h - 390h - 011h PIR1 091h PIE1 111h - 191h PMADRL 211h SSPBUF 291h CCPR1L 311h - 391h - 012h PIR2 092h PIE2 112h - 192h PMADRH 212h SSPADD 292h CCPR1H 312h - 392h - 013h - 093h - 113h - 193h PMDATL 213h SSPMSK 293h CCP1CON 313h - 393h - 014h - 094h - 114h - 194h PMDATH 214h SSPSTAT 294h - 314h - 394h IOCBP 015h TMR0 095h OPTION_REG 115h - 195h PMCON1 215h SSPCON1 295h - 315h - 395h IOCBN 016h TMR1L 096h PCON 116h BORCON 196h PMCON2 216h SSPCON2 296h - 316h - 396h IOCBF 017h TMR1H 097h WDTCON 117h FVRCON 197h VREGCON (2) 217h SSPCON3 297h - 317h - 397h - 018h T1CON 098h - 118h - 198h - 218h - 298h CCPR2L 318h - 398h - 019h T1GCON 099h OSCCON 119h - 199h RCREG 219h - 299h CCPR2H 319h - 399h - 01Ah TMR2 09Ah OSCSTAT 11Ah - 19Ah TXREG 21Ah - 29Ah CCP2CON 31Ah - 39Ah - 01Bh PR2 09Bh ADRESL 11Bh - 19Bh SPBRG 21Bh - 29Bh - 31Bh - 39Bh - 01Ch T2CON 09Ch ADRESH 11Ch - 19Ch SPBRGH 21Ch - 29Ch - 31Ch - 39Ch - 01Dh - 09Dh ADCON0 11Dh APFCON 19Dh RCSTA 21Dh - 29Dh - 31Dh - 39Dh - 01Eh - 09Eh ADCON1 11Eh - 19Eh TXSTA 21Eh - 29Eh - 31Eh - 39Eh - 01Fh - 09Fh - 11Fh - 19Fh BAUDCON 21Fh - 29Fh - 31Fh - 39Fh - 020h 汎用レジスタ 80 バイト 0A0h 汎用レジスタ 80 バイト 120h 汎用レジスタ 80 バイト 1A0h 汎用レジスタ 80 バイト 220h 汎用レジスタ 80 バイト 2A0h 汎用レジスタ 80 バイト 320h 32Fh 330h 汎用レジスタ 16 バイト 未実装 0 として 06Fh 0EFh 16Fh 1EFh 26Fh 2EFh 36Fh 読み出し 3EFh 070h 共通 RAM 0F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 170h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 1F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 270h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 2F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 370h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 07Fh 0FFh 17Fh 1FFh 27Fh 2FFh 37Fh 3FFh 3A0h 3F0h 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh )

DS41452C_JP - p.24 2013 Microchip Technology Inc. 表 3-3: PIC16(L)F1516/7 のメモリマップ ( 続き ) BANK 8 BANK 9 BANK 10 BANK 11 BANK 12 BANK 13 BANK 14 BANK 15 400h 40Bh 40Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 480h 48Bh 48Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 500h 50Bh 50Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 580h 58Bh 58Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 600h 60Bh 60Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 680h 68Bh 68Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 700h 70Bh 70Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 46Fh 4EFh 56Fh 5EFh 66Fh 6EFh 76Fh 7EFh 470h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 4F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 570h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 5F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 670h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 6F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 770h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 7F0h 47Fh 4FFh 57Fh 5FFh 67Fh 6FFh 77Fh 7FFh 800h 80Bh 80Ch 780h 78Bh 78Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) BANK 16 BANK 17 BANK 18 BANK 19 BANK 20 BANK 21 BANK 22 BANK 23 コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 880h 88Bh 88Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 900h 90Bh 90Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 980h 98Bh 98Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し A00h A0Bh A0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し A80h A8Bh A8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し B00h B0Bh B0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 86Fh 8EFh 96Fh 9EFh A6Fh AEFh B6Fh BEFh 870h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 8F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 970h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 9F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) A70h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) AF0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) B70h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) BF0h 87Fh 8FFh 97Fh 9FFh A7Fh AFFh B7Fh BFFh C00h C0Bh C0Ch C6Fh C70h 凡例 : BANK 24 BANK 25 BANK 26 BANK 27 BANK 28 BANK 29 BANK 30 コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) C80h C8Bh C8Ch CEFh CF0h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) D00h D0Bh D0Ch D6Fh D70h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) = 未実装データメモリアドレス 0 として読み出し D80h D8Bh D8Ch DEFh DF0h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) E00h E0Bh E0Ch E6Fh E70h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) E80h E8Bh E8Ch EEFh EF0h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) C7Fh CFFh D7Fh DFFh E7Fh EFFh F7Fh F00h F0Bh F0Ch F6Fh F70h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) B80h B8Bh B8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh )

2013 Microchip Technology Inc. DS41452C_JP - p.25 表 3-3: PIC16(L)F1516/7 のメモリマップ ( 続き ) F80h F8Bh F8Ch Bank 31 コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し FE3h 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 STKPTR FEEh TOSL FEFh TOSH FF0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) FFFh = 未実装データメモリアドレス 0 として読み出し

DS41452C_JP - p.26 2013 Microchip Technology Inc. 表 3-4: 000h PIC16(L)F1518/9 のメモリマップ BANK 0 BANK 1 BANK 2 BANK 3 BANK 4 BANK 5 BANK 6 BANK 7 コアレジスタ ( 表 3-2 ) 080h コアレジスタ ( 表 3-2 ) 100h コアレジスタ ( 表 3-2 ) 凡例 : = 未実装データメモリアドレス 0 として読み出し Note 1: PIC16(L)F1519 の場合のみです 2: PIC16F1518/9 の場合のみです 180h コアレジスタ ( 表 3-2 ) 200h コアレジスタ ( 表 3-2 ) 280h コアレジスタ ( 表 3-2 ) 300h コアレジスタ ( 表 3-2 ) 380h コアレジスタ ( 表 3-2 ) 00Bh 08Bh 10Bh 18Bh 20Bh 28Bh 30Bh 38Bh 00Ch PORTA 08Ch TRISA 10Ch LATA 18Ch ANSELA 20Ch - 28Ch - 30Ch - 38Ch - 00Dh PORTB 08Dh TRISB 10Dh LATB 18Dh ANSELB 20Dh WPUB 28Dh - 30Dh - 38Dh - 00Eh PORTC 08Eh TRISC 10Eh LATC 18Eh ANSELC 20Eh - 28Eh - 30Eh - 38Eh - 00Fh PORTD (1) 08Fh TRISD (1) 10Fh LATD (1) 18Fh ANSELD (1) 20Fh - 28Fh - 30Fh - 38Fh - 010h PORTE 090h TRISE 110h LATE (1) 190h ANSELE (1) 210h WPUE 290h - 310h - 390h - 011h PIR1 091h PIE1 111h - 191h PMADRL 211h SSPBUF 291h CCPR1L 311h - 391h - 012h PIR2 092h PIE2 112h - 192h PMADRH 212h SSPADD 292h CCPR1H 312h - 392h - 013h - 093h - 113h - 193h PMDATL 213h SSPMSK 293h CCP1CON 313h - 393h - 014h - 094h - 114h - 194h PMDATH 214h SSPSTAT 294h - 314h - 394h IOCBP 015h TMR0 095h OPTION_REG 115h - 195h PMCON1 215h SSPCON1 295h - 315h - 395h IOCBN 016h TMR1L 096h PCON 116h BORCON 196h PMCON2 216h SSPCON2 296h - 316h - 396h IOCBF 017h TMR1H 097h WDTCON 117h FVRCON 197h VREGCON (2) 217h SSPCON3 297h - 317h - 397h - 018h T1CON 098h - 118h - 198h - 218h - 298h CCPR2L 318h - 398h - 019h T1GCON 099h OSCCON 119h - 199h RCREG 219h - 299h CCPR2H 319h - 399h - 01Ah TMR2 09Ah OSCSTAT 11Ah - 19Ah TXREG 21Ah - 29Ah CCP2CON 31Ah - 39Ah - 01Bh PR2 09Bh ADRESL 11Bh - 19Bh SPBRG 21Bh - 29Bh - 31Bh - 39Bh - 01Ch T2CON 09Ch ADRESH 11Ch - 19Ch SPBRGH 21Ch - 29Ch - 31Ch - 39Ch - 01Dh - 09Dh ADCON0 11Dh APFCON 19Dh RCSTA 21Dh - 29Dh - 31Dh - 39Dh - 01Eh - 09Eh ADCON1 11Eh - 19Eh TXSTA 21Eh - 29Eh - 31Eh - 39Eh - 01Fh - 09Fh - 11Fh - 19Fh BAUDCON 21Fh - 29Fh - 31Fh - 39Fh - 020h 0A0h 120h 1A0h 220h 2A0h 320h 3A0h 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 汎用レジスタ 80 バイト 06Fh 0EFh 16Fh 1EFh 26Fh 2EFh 36Fh 3EFh 070h 0F0h 170h 1F0h 270h 2F0h 370h 3F0h 共通 RAM アクセス範囲アクセス範囲アクセス範囲アクセス範囲アクセス範囲アクセス範囲 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 70h ~ 7Fh 07Fh 0FFh 17Fh 1FFh 27Fh 2FFh 37Fh 3FFh 汎用レジスタ 80 バイト アクセス範囲 70h ~ 7Fh

2013 Microchip Technology Inc. DS41452C_JP - p.27 表 3-5: PIC16(L)F1518/9 のメモリマップ ( 続き ) BANK 8 BANK 9 BANK 10 BANK 11 BANK 12 BANK 13 BANK 14 BANK 15 400h 40Bh 40Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 汎用レジスタ 80 バイト 480h 48Bh 48Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 汎用レジスタ 80 バイト 500h 50Bh 50Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 汎用レジスタ 80 バイト 580h 58Bh 58Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 汎用レジスタ 80 バイト 600h 60Bh 60Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 680h 68Bh 68Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 700h 70Bh 70Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 41Fh 49Fh 51Fh 59Fh 61Fh 69Fh 71Fh 79Fh 420h 4A0h 520h 5A0h 620h 汎用 6A0h 720h 7A0h レジスタ 48 バイト 64Fh 650h 未実装 0 として読み出し 未実装 0 として読み出し 未実装 0 として 46Fh 4EFh 56Fh 5EFh 66Fh 読み出し 6EFh 76Fh 7EFh 470h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 4F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 570h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 5F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 670h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 6F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 770h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 47Fh 4FFh 57Fh 5FFh 67Fh 6FFh 77Fh 7FFh 800h 80Bh 80Ch 780h 78Bh 78Ch 7F0h コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh ) BANK 16 BANK 17 BANK 18 BANK 19 BANK 20 BANK 21 BANK 22 BANK 23 コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 880h 88Bh 88Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 900h 90Bh 90Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 980h 98Bh 98Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し A00h A0Bh A0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し A80h A8Bh A8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し B00h B0Bh B0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 86Fh 8EFh 96Fh 9EFh A6Fh AEFh B6Fh BEFh 870h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 8F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 970h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 9F0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) A70h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) AF0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) B70h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) BF0h 87Fh 8FFh 97Fh 9FFh A7Fh AFFh B7Fh BFFh B80h B8Bh B8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh )

DS41452C_JP - p.28 2013 Microchip Technology Inc. 表 3-6: PIC16(L)F1518/9 のメモリマップ ( 続き ) BANK 24 BANK 25 BANK 26 BANK 27 BANK 28 BANK 29 BANK 30 C00h C0Bh C0Ch 凡例 : コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し C80h C8Bh C8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し D00h D0Bh D0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し = 未実装データメモリアドレス 0 として読み出し D80h D8Bh D8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し E00h E0Bh E0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し E80h E8Bh E8Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し C6Fh CEFh D6Fh DEFh E6Fh EEFh F6Fh C70h CF0h D70h DF0h E70h EF0h F70h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 共通 RAM ( アクセス範囲 70h ~ 7Fh ) 共通 RAM ( アクセス範囲 70h ~ 7Fh ) C7Fh CFFh D7Fh DFFh E7Fh EFFh F7Fh F80h F8Bh F8Ch Bank 31 コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し FE3h 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 STKPTR FEEh TOSL FEFh TOSH FF0h 共通 RAM ( アクセス範囲 70h ~ 7Fh ) FFFh F00h F0Bh F0Ch コアレジスタ ( 表 3-2 ) 未実装 0 として読み出し 共通 RAM ( アクセス範囲 70h ~ 7Fh )

3.3.5 コア機能レジスタのまとめ 表 3-7 に一覧を示したコア機能レジスタは 任意のバンクからアドレス指定できます 表 3-7: コア機能レジスタのまとめ アドレスレジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 BANK 0 ~ 31 x00h または x80h x01h または x81h x02h または x82h x03h または x83h x04h または x84h x05h または x85h x06h または x86h x07h または x87h x08h または x88h x09h または x89h x0ah または x8ah x0bh または x8bh 凡例 : INDF0 INDF1 この位置をアドレス指定すると FSR0H/FSR0L の内容によってデータメモリのアドレスを指定します ( 物理レジスタではありません ) この位置をアドレス指定すると FSR1H/FSR1L の内容によってデータメモリのアドレスを指定します ( 物理レジスタではありません ) POR BOR 時の値 xxxx xxxx xxxx xxxx その他のリセット時の値 uuuu uuuu uuuu uuuu PCL プログラムカウンタ (PC) の下位バイト 0000 0000 0000 0000 STATUS - - - TO PD Z DC C ---1 1000 ---q quuu FSR0L 間接データメモリアドレスポインタ 0 下位バイト 0000 0000 uuuu uuuu FSR0H 間接データメモリアドレスポインタ 0 上位バイト 0000 0000 0000 0000 FSR1L 間接データメモリアドレスポインタ 1 下位バイト 0000 0000 uuuu uuuu FSR1H 間接データメモリアドレスポインタ 1 上位バイト 0000 0000 0000 0000 BSR - - - BSR4 BSR3 BSR2 BSR1 BSR0 ---0 0000 ---0 0000 WREG ワーキングレジスタ 0000 0000 uuuu uuuu PCLATH - プログラムカウンタ上位 7 ビットの書き込みバッファ -000 0000-000 0000 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

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.

表 3-8: 特殊機能レジスタのまとめ ( 続き ) アドレスレジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 BANK 2 POR BOR 時の値 その他のリセット時の値 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 111h to 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 凡例 : 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

表 3-8: 特殊機能レジスタのまとめ ( 続き ) アドレスレジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 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 同期シリアルポート (I 2 C モード ) アドレスレジスタ 0000 0000 0000 0000 213h SSPMSK 同期シリアルポート (I 2 C モード ) アドレスマスクレジスタ 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 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.

表 3-8: 特殊機能レジスタのまとめ ( 続き ) アドレスレジスタ名 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 BANK 31 POR BOR 時の値 その他のリセット時の値 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 凡例 : 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

3.4 PCL と PCLATH プログラムカウンタ (PC) は 15 ビット幅です 下位バイトには 読み書き可能なレジスタである PCL レジスタの値が格納されます 上位バイト (PC<14:8>) には PCLATH の値が格納され これらは直接読み書きできません 何らかのリセットが発生すると PC はクリアされます 図 3-4 に 5 通りの PC 読み込み方法を示します 図 3-4: 各種状況における PC への読み込み動作 たテーブル位置へのアクセスには注意が必要です 詳細は アプリケーションノート AN556 Implementing a 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 命令の符号付きオペランド ) となります 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 バイトブロック ) を越え DS41452C_JP - p.34 2013 Microchip Technology Inc.

3.5 スタック 全てのデバイスが 16 レベル x15 ビット幅のハードウェアスタックを搭載しています ( 図 3-5 ~ 図 3-8 参照 ) スタック空間は プログラム空間とデータ空間のいずれにも属していません CALL または CALLW 命令が実行された場合 または割り込みによって分岐が発生した場合 PCの値がスタックにプッシュされます RETURN RETLW RETFIE 命令のいずれかが実行されると スタックから値がポップされます PCLATH はプッシュまたはポップの影響を受けません STVREN ビット ( コンフィグレーションワード ) を 0 にプログラムすると スタックはリングバッファとして機能します つまり スタックが 16 回プッシュされ 17 回目のプッシュでは 1 回目のプッシュで格納された値が上書きされます 18 回目のプッシュでは 2 回目のプッシュ値が上書きされます ( 以降同様 ) リセットが有効であるかどうかに関係なく オーバーフロー / アンダーフローが発生すると STKOVF と STKUNF フラグビットがセットされます Note 1: PUSH または POP と呼ばれる命令 / ニーモニックはありません これらは CALL CALLW RETURN RETLW RETFIE 命令の実行時 または割り込みアドレスへのベクタ処理時に発生する操作を指しています 3.5.1 スタックへのアクセス スタックへのアクセスには TOSH TOSL STKPTR レジスタを使います STKPTR は スタックポインタの現在値を示します TOSH:TOSL レジスタペアは スタックのトップ位置 (Top of Stack) を示します どちらのレジスタも読み書き可能です PC は 15 ビットであるため TOS は TOSH と TOSL に分割されます スタックへアクセスするには STKPTR 値を調節して TOSH:TOSL を決定し TOSH:TOSL への読み書きを実行します STKPTR は 5 ビットでオーバーフローとアンダーフローを検出します Note: 割り込み有効時の STKPTR 書き換えには注意が必要です 通常のプログラム動作では STKPTR は CALL CALLW および割り込み発生時にインクリメントされ RETLW RETURN RETFIE 発生時にデクリメントされます STKPTR をチェックする事で いつでもスタックの空き容量を確認できます STKPTR は 常にスタック内の現在使用中の場所を示します 従って CALL または CALLW 命令は STKPTR をインクリメントしてから PC への書き込みを実行し リターン命令は PC の値を読み出してから STKPTR をデクリメントします スタックへのアクセス例については 図 3-5 ~ 図 3-8 を参照してください 図 3-5: スタックへのアクセス例 1 2013 Microchip Technology Inc. DS41452C_JP - p.35

図 3-6: スタックへのアクセス例 2 図 3-7: スタックへのアクセス例 3 DS41452C_JP - p.36 2013 Microchip Technology Inc.

図 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

図 3-9: 間接アドレス指定 0x0000 0x0000 Traditional Data Memory 0x0FFF 0x1000 0x1FFF 0x2000 0x0FFF Reserved Linear Data Memory FSR Address Range 0x29AF 0x29B0 0x7FFF 0x8000 Reserved 0x0000 Program Flash Memory 0xFFFF 0x7FFF Note: これらのメモリ領域は全てが実装されているわけではありません メモリ制限については 各メモリ領域のマップを確認してください DS41452C_JP - p.38 2013 Microchip Technology Inc.

3.6.1 従来型データメモリ 従来型データメモリの領域は FSR アドレスの 0x000 から 0xFFF です このアドレスは 全ての SFR/GPR/ 共通レジスタの絶対アドレスに該当します 図 3-10: 従来型データメモリのマップ Direct Addressing Indirect Addressing 4 BSR 0 6 From Opcode 0 7 FSRxH 0 0 0 0 0 7 FSRxL 0 Bank Select Location Select Bank Select 00000 00001 00010 11111 0x00 Location Select 0x7F Bank 0 Bank 1 Bank 2 Bank 31 2013 Microchip Technology Inc. DS41452C_JP - p.39

3.6.2 リニアデータメモリ リニアデータメモリの領域は FSRアドレスの0x2000 から 0x29AF です これは 全バンク内の GPR メモリ (80 バイトブロック ) を示す仮想領域です 未実装メモリは 0x00 として読み出されます リニアデータメモリ領域は FSR をインクリメントするだけで バンクをまたいで次のバンクの GPR メモリへ直接移動できるため 80 バイトよりも大きなバッファとして使えます 16 バイトの共通メモリは リニアデータメモリ領域内には含まれません 3.6.3 プログラムフラッシュメモリ 定数データアクセスを容易にするために プログラムフラッシュメモリ全体が FSR アドレス空間の上位半分に割り当てられています FSRnH の MSB がセットされている場合 下位 15 ビットがプログラムメモリのアドレスとなり INDF でアクセスされます ただし INDF でアクセスできる場所は 各メモリ位置の下位 8 ビットのみです FSR/INDF インターフェイスからはプログラムフラッシュメモリに書き込む事はできません FSR/INDF インターフェイスを使ってプログラムフラッシュメモリにアクセスする命令は いずれも完了に 1 命令サイクル余分に必要です 図 3-11: リニアデータメモリのマップ 図 3-12: プログラムフラッシュメモリのマップ 7 FSRnH 0 0 1 0 7 FSRnL 0 7 1 FSRnH 0 7 FSRnL 0 Location Select 0x2000 0x020 Location Select 0x8000 0x0000 Bank 0 0x06F 0x0A0 Bank 1 0x0EF 0x120 Bank 2 0x16F Program Flash Memory (low 8 bits) 0xF20 Bank 30 0x29AF 0xF6F 0xFFFF 0x7FFF DS41452C_JP - p.40 2013 Microchip Technology Inc.

4.0 デバイスコンフィグレーション デバイスコンフィグレーションは コンフィグレーションワード コード保護 デバイス ID から構成されます 4.1 コンフィグレーションワード デバイスには オシレータやメモリ保護の各種設定を選択できる複数のコンフィグレーションワードビットがあります これらは コンフィグレーションワード 1 (8007h) とコンフィグレーションワード 2 (8008h) として実装されています Note: コンフィグレーションワードの DEBUG ビットは デバッガやプログラマ等のデバイス開発ツールによって自動的に管理されます デバイスの通常動作中は このビットを 1 に保つ必要があります 2013 Microchip Technology Inc. DS41452C_JP - p.41

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 bit 12 bit 11 bit 10-9 bit 8 bit 7 bit 6 bit 5 bit 4-3 FCMEN: フェイルセーフクロックモニタイネーブルビット 1 = フェイルセーフクロックモニタを有効にする 0 = フェイルセーフクロックモニタを無効にする IESO: 内部 / 外部切り換えビット 1 = 内部 / 外部切り換えモードを有効にする 0 = 内部 / 外部切り換えモードを無効にする CLKOUTEN: クロック出力イネーブルビット FOSC コンフィグレーションビットが LP XT HS モードに設定されている場合 : このビットを無視し CLKOUT 機能を無効にする CLKOUT ピンはオシレータとして機能するその他の全ての FOSC モードの場合 : 1 =CLKOUT 機能を無効にする CLKOUT ピンは I/O として機能する 0 =CLKOUT ピンの CLKOUT 機能を有効にする BOREN<1:0>: ブラウンアウトリセットイネーブルビット 11 = BOR を有効にする 10 = BOR を動作時に有効 スリープ時に無効にする 01 = BOR を BORCON レジスタの SBOREN ビットで制御する 00 = BOR を無効にする 未実装 : 1 として読み出し CP: コード保護ビット 1 = プログラムメモリのコード保護を無効にする 0 = プログラムメモリのコード保護を有効にする MCLRE: MCLR/VPP ピン機能選択ビット LVP ビット = 1 の場合 : このビットは無視される LVP ビット = 0 の場合 : 1 =MCLR/VPP ピンは MCLR として機能する 弱プルアップを有効にする 0 =MCLR/VPP ピンはデジタル入力として機能する MCLR を内部で無効にし 弱プルアップは WPUE3 ビットで制御する PWRTE: パワーアップタイマイネーブルビット 1 = PWRTを無効にする 0 = PWRTを有効にする WDTE<1:0>: ウォッチドッグタイマイネーブルビット 11 =WDTを有効にする 10 =WDTを動作時に有効 スリープ時に無効にする 01 =WDTをWDTCON レジスタの SWDTEN ビットで制御する 00 =WDTを無効にする DS41452C_JP - p.42 2013 Microchip Technology Inc.

レジスタ 4-1: CONFIG1: コンフィグレーションワード 1 ( 続き ) bit 2-0 FOSC<2:0>: オシレータ選択ビット 111 = ECH: 外部クロック 高消費電力モード (4 ~ 20 MHz): CLKIN ピンにデバイスクロックを供給する 110 =ECM: 外部クロック 中消費電力モード (0.5 ~ 4MHz): 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 ピン間に低消費電力水晶振動子を接続する 2013 Microchip Technology Inc. DS41452C_JP - p.43

レジスタ 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: 低消費電力 BOR 1 = 低消費電力 BOR を無効にする 0 = 低消費電力 BOR を有効にする bit 10 BORV: ブラウンアウトリセット電圧選択ビット 1 = ブラウンアウトリセット電圧 (Vbor) のトリップポイントを低に設定する 0 = ブラウンアウトリセット電圧 (Vbor) のトリップポイントを高に設定する bit 9 STVREN: スタックオーバーフロー / アンダーフローリセットイネーブルビット 1 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させる 0 = スタックのオーバーフローまたはアンダーフローによってリセットを発生させない bit 8-5 未実装 : 1 として読み出し bit 4 VCAPEN: 電圧レギュレータコンデンサイネーブルビット (1) bit 3-2 bit 1-0 PIC16LF1516/7/8/9 の場合 ( レギュレータ無効 ): これらのビットは無視される 全ての VCAP ピン機能を無効にする PIC16F1516/7/8/9 の場合 ( レギュレータ有効 ): 0 = VCAP 機能を RA5 で有効にする 1 = 全ての VCAP ピン機能を無効にする 未実装 : 1 として読み出し 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 パラメータを参照してください DS41452C_JP - p.44 2013 Microchip Technology Inc.

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 Programming Specification (DS41442) を参照してください 2013 Microchip Technology Inc. DS41452C_JP - p.45