39733a.fm

Similar documents
Section 36. Programmable Cyclic Redundancy Check (CRC)

PIC24F Family Reference Manual Section 9 WDT

スライド 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

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

10-vm1.ppt

スライド 1

計算機アーキテクチャ

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

スライド 1

Microsoft Word - dg_sataahciip_refdesign_jp.doc

PIC24F Family Reference Manual Section 2

スライド 1

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

Microsoft PowerPoint - OS07.pptx

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

39734a_JP.fm

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

(Microsoft Word - \216\346\220\340SiTCP-VME-Master\(Rev26\).doc)

PIC24F Family Reference Manual

アナログ・接点変換器

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

PowerPoint プレゼンテーション

Microsoft PowerPoint - No6note.ppt

(Microsoft Word - JE000250_\203\312TURTLE-RWModbusTCP\220\332\221\261\220\340\226\276\217\221\(4\224\305\).doc)

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

スライド 1

PIC24F Family Reference Manual Section 8 Interrupts

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

Notes and Points for TMPR454 Flash memory

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

USB_IR_Remote_Controller_Advance_Library 取扱説明書 2016/06/23 R03 Assembly Desk USB_IR_Remote_Controller_Advance_Library を使用すると 弊社製 USB IR Remote controll

枠線仕様 枠線のサイズはマーカ全体の 15% です マーカの周囲から 15% を差し引いた 残りの 70% の領域を データ領域とします 100% 15% 70% 15%

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例

WAGO / / Modbus/RTU対応 バスカプラ クイックスタートガイド

TFTP serverの実装

AN-1077: ADXL345 Quick Start Guide

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

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

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

スライド 1

MMUなしプロセッサ用Linuxの共有ライブラリ機構

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

MW100 Modbusプロトコルによるデータ通信の設定について

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

Microsoft PowerPoint - フェリカ通信仕様書_

PowerPoint Presentation

スライド 1

セキュアVMの アーキテクチャ概要

使用する前に

スライド 1

Microsoft Word - 3new.doc

RL78/G13 制限事項について

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

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

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

USB_IR_Remote_Controller_Advance_Library 取扱説明書 2015/8/21 Assembly Desk USB_IR_Remote_Controller_Advance_Library を使用すると 弊社製 USB IR Remote controller Ad

スライド 1

04-process_thread_2.ppt

AP-RZA-1A シリアルFlashROMの書き込み方法

Microsoft Word - SUA007

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Relay Socket for Industrial Relay                    1/2

Microsoft PowerPoint - NxLecture ppt [互換モード]

ex04_2012.ppt

Microsoft PowerPoint - OS08.pptx

2016 年 8 月 第 1.0 版 ラトックシステム株式会社

電磁流量計 WZ-C Modbus RTU 通信仕様書 ver.8.225

UNILINE取扱説明書

スライド 1

TLCS-870/C1シリーズ CPU

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

コンピュータ工学Ⅰ

VelilogHDL 回路を「言語」で記述する

PowerPoint プレゼンテーション

39904k_jp indd

スライド 1

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

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

6. パイプライン制御

このダイナミックリンクライブラリ GaugeC48.dll は 8CH から 48CH 用の DigitalGaugeCounterDG3000 シリーズ共通の DLL です この説明書は GaugeC48.dll を使ったアプリケーションを作成するためのものです 開発環境は MicrosoftVi

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

ヤマハDante機器と他社AES67機器の接続ガイド

PowerPoint プレゼンテーション

UIOUSBCOM.DLLコマンドリファレンス

目次 1 本アプリケーションノートの目的 送信手順 基本的な送信方法 キャリアセンスなし送信 キャリアセンスあり送信 ACK 期待送信 フレームメモリへのデータの設定 INFO

PowerPoint Template

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

Microsoft Word - プログラムをRAM.doc

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - 6.memory.ppt

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

CS+ V 統合開発環境 ユーザーズマニュアル RL78 デバッグ・ツール編

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

Transcription:

注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ ハイライト 本セクションには下記の主要項目を記載しています 45.1 はじめに... 45-2 45.2 データメモリの構成... 45-3 45.3 拡張データ空間... 45-7 45.4 データ配置... 45-14 45.5 ソフトウェアスタック... 45-15 45.6 プログラムメモリとデータメモリ間のインターフェイス... 45-15 45.7 関連アプリケーションノート... 45-16 45.8 改訂履歴... 45-17 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-1

PIC24F ファミリリファレンスマニュアル 45.1 はじめに USB やグラフィック等の大容量メモリが必要なアプリケーションに対応するために PIC24F マイクロコントローラ (MCU) の一部のデバイスのデータアドレス空間は拡張されています 拡張データ空間 (EDS) を備えた PIC24F MCU は 最大 16M バイトの内部および外部の追加データメモリにアクセスできます 外部メモリへのアクセスには拡張パラレルマスタポート (EPMP) を使用します 他のハーバードアーキテクチャ採用デバイスと同様 PIC24F MCU もプログラムとデータ用に別々のメモリ空間とバスを備えます PIC24F アーキテクチャでは コード実行中にデータ空間からプログラムメモリに直接アクセスする事も可能です DS39733A_JP - p. 45-2 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 45.2 データメモリの構成 45.2.1 データアドレス空間 PIC24F コアは 単一の連続領域としてアクセス可能な 16 ビット幅のデータメモリ空間を備えます データ空間へのアクセスには 読み出し用と書き込み用にそれぞれ 1 つずつ ( 計 2 つ ) のアドレス生成ユニット (AGU) を使用します データ空間のメモリマップを図 45-1 に示します データメモリ空間の 16 ビット幅データアドレスは データ空間 (DS) 内のアドレスをバイト単位で指定します この DS アドレス領域は 64K バイトまたは 32K ワードです (2K バイトの SFR 領域を含む ) DS の下位 32K バイト (0x0000 ~ 0x7FFF) は EDS 付きではない PIC24F MCU と互換です DS の上位 32K バイト (0x8000 ~ 0xFFFF) は EDS ウィンドウとして使用します EDS ウィンドウは EDS に実装された全てのメモリ領域へのアクセスに使用します ( 図 45-2 参照 ) EDS は データアドレス空間の下位 32K バイトではアクセスできない追加の内部データメモリと 拡張 PMP を介してアクセスする外部メモリの全てを含みます EDS 付きの PIC24F MCU では プログラムメモリ (PM) も EDS から読み出す事ができます これは PSV と呼ばれます EDS は複数のページとして構成され EDS ページと呼ばれる個々のページは EDS ウィンドウ (32K バイト ) と同じ構造を持ちます EDS ページの選択には データ空間読み出しレジスタ (DSRPAG) とデータ空間書き込みレジスタ (DSWPAG) を使用します PSV では DSRPAG レジスタのみを使用します DSxPAG レジスタの値と 16 ビット幅データアドレスの組み合わせにより 24 ビットの実効アドレス (EA) を形成します 内部拡張データメモリと外部データメモリおよび PM からのデータ読み出し用 PSV アドレス空間にアクセスする EDS アドレス空間向けに EA を生成する詳細な方法は セクション 45.3.1 EDS からのデータアクセス に記載しています Note: デバイスごとのデータメモリの実装については各デバイスのデータシートを参照してください 45.2.2 データ空間と拡張データ空間の構造 データメモリ空間は 16 ビット幅ブロックにより構成され バイトアクセスが可能です データはデータメモリとレジスタに 16 ビットワードとして配置されますが 全てのデータ空間と拡張データ空間の実効アドレス (EA) はバイト単位で指定できます 各ワードの下位バイト (LSB) は偶数アドレス 上位バイト (MSB) は奇数アドレスを持ちます 図 45-1 に データ空間のメモリマップを示します 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-3

PIC24F ファミリリファレンスマニュアル 図 45-1: PIC24F のデータ空間メモリマップ (1,3,5) MSB アドレス MSB LSB LSB アドレス 0x0001 0x07FF 0x0801 SFR 空間 0x0000 0x07FE 0x0800 SFR 空間 ニアデータ (2) 空間 0x1FFF 0x2001 0x1FFE 0x2000 下位 1/2 30 K バイトデータ RAM 0x7FFF 0x8001 0x7FFE 0x8000 上位 1/2 (4) 32 K バイト EDS ウィンドウ 0xFFFF 0xFFFE Note 1: データメモリの各領域の大きさの縮尺は不統一です 2: ニアデータメモリへは 13 ビットアドレスをオペコードで指定するファイルレジスタ命令を使用して直接アクセスできます ニアデータメモリ領域は少なくとも SFR 空間の全てを含みます 3: データメモリの全体には ワーキングレジスタ命令を介して間接的にアクセスできます 4: データメモリの上位 32K バイト領域には 1 ページの EDS を配置できます 5: データメモリの実装サイズはデバイスによって異なります 詳細は各デバイスのデータシートを参照してください DS39733A_JP - p. 45-4 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 図 45-2 に DS EDS PSV 空間を示します 図 45-2: PIC24F のデータメモリ EDS PSV 空間 Special Function Registers 0x0000 0x0800 30 KB Data Memory 0x8000 0x008000 0x010000 0xFF8000 0x000000 0x7F8000 0x000001 0x7F8001 32 KB EDS Window EDS Window EDS Window EDS Window PSV Window Lower Word PSV Window Lower Word PSV Window Upper Word PSV Window Upper Word 0xFFFE 0x00FFFE DSxPAG = 0x001 0x017FFE 0xFFFFFE 0x007FFE 0x7FFFFE 0x007FFF 0x7FFFFF DSxPAG = 0x002 DSxPAG = 0x1FF DSRPAG = 0x200 DSRPAG = 0x2FF DSRPAG = 0x300 DSRPAG = 0x3FF データメモリ 内部拡張と外部 ) プログラムメモリ 45.2.3 ニアデータメモリ 0x0000 ~ 0x1FFF の 8K バイトのアドレス空間はニアデータメモリと呼ばれます 全てのファイルレジスタ命令は 13 ビット絶対アドレスフィールドを介してニアデータメモリを直接アドレッシングできます ニアデータメモリには 任意の 16 ビットワーキングレジスタでデータメモリアドレスを指定する全ての間接アドレッシングモードでもアセスできます 0x1FFF より上位のデータメモリ領域 (EDS ウィンドウを含む ) には 間接アドレッシングモードでのみアクセスできます ニアデータ空間に含まれるメモリ領域は PIC24F ファミリ各製品のデータメモリ実装サイズによって異なります ニアデータメモリ空間は少なくとも全ての SFR を格納します 詳細は図 45-1 を参照してください 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-5

PIC24F ファミリリファレンスマニュアル 表 45-1: (1) SFR 空間の配置 45.2.4 SFR 空間 ニアデータ空間の先頭 2K バイト (0x0000 ~ 0x07FF) は 主として特殊機能レジスタ (SFR) を格納します PIC24F コアと周辺モジュールは これらの SFR を使用してデバイスの動作を制御します SFR は制御するモジュールごとにグループ化されています SFR 空間の多くの領域は未使用アドレスとなっており これらは 0 として読み出されます SFR 空間内の各種 SFR の配置を表 45-1 に示します 表内の 1 つの実装領域は 32 バイト領域を表し 少なくとも 1 つのアドレスを SFR として実装します SFR 空間アドレス xx00 xx20 xx40 xx60 xx80 xxa0 xxc0 xxe0 0x000 コア ICN 割り込み 0x100 タイマキャプチャ コンペア 0x200 I 2 C UART SPI I/O 0x300 ADC/CTMU 0x400 0x500 0x600 拡張 PMP RTC/Comp CRC PPS 0x700 GFX コントローラシステム NVM/PMD 凡例 : Note 1: = SFR を実装していないブロック実際のレジスタ配置については各デバイスのデータシートを参照してください DS39733A_JP - p. 45-6 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 45.3 拡張データ空間 表 45-2: DSRPAG データ空間読み出しレジスタ EDS 付き PIC24F デバイスの CPU アーキテクチャは 最大 16M バイトのデータ空間の追加を可能にします EDS へのアクセスには 常に 32K バイトの EDS ウィンドウを使用します このため EDS の各ページには 32K バイトのメモリ空間を格納できます アドレッシング可能なページ数は 読み出し時と書き込み時で異なります 書き込み時には 511 ページ (0x001 ~ 0x1FF) にアクセスでき 読み出し時には 1023 ページ (0x001 ~ 0x3FF) にアクセスできます 読み出しと書き込みの両方が可能な下位の 511 ページ (0x001 ~ 0x1FF) は拡張データメモリ用 読み出しのみ可能な上位の 512 ページ (0x200 ~ 0x3FF) は PSV 用です 表 45-2 に DS EDS PSV を含むデータメモリ全体のメモリマップを示します EDS 付き PIC24F の各種アドレス空間 DSWPAG データ空間書き込みレジスタ 間接アドレッシング時のソース / デスティネーションアドレス DS EDS PSV 用 24 ビット EA x (1) x (1) 0x0000 ~ 0x1FFF 0x000000 ~ 0x001FFF 0x001 0x001 0x2000 ~ 0x7FFF 0x8000 ~ 0xFFFF 0x002000 ~ 0x007FFF 0x008000 ~ 0x00FFFE 0x002 0x002 0x010000 ~ 0x017FFE 0x1FF 0x1FF 0xFF8000 ~ 0xFFFFFE 0x200 0x000000 ~ 0x007FFE 0x2FF 0x7F8000 ~ --- (3) 0x7FFFFE 0x300 0x000001 ~ 0x007FFF 備考 DS; ニアデータメモリ (2) DS EDS; 32 K バイト / ページ PSV 4M プログラム命令 (8M バイト ) の下位ワード 読み出し専用 PSV 4M プログラム命令の上位ワード (4M バイトを使用 残りの 4M バイトはファントムバイト ) 読み出し専用 0x3FF 0x7F8001 ~ 0x7FFFFF 0x000 0x000 無効アドレス アドレスエラートラップ (4) Note 1: ソース / デスティネーションアドレスが 0x8000 より下位の場合 DSRPAG と DSWPAG は無視されます 2: このデータ空間は 直接アドレッシングによるアクセスも可能です 3: DSWPAG は 9 ビットレジスタであるため EDS 機構を使用して 0x1FF を超える EDS ページに書き込む事はできません 4: ソース / デスティネーションアドレスが 0x8000 以上かつ DSRPAG/DSWPAG がゼロの場合 アドレスエラートラップが発生します 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-7

PIC24F ファミリリファレンスマニュアル 内部 RAM の物理的実装サイズはデバイスによって異なります 例えば PIC24F256DA210 ファミリのデバイスは合計 96K バイトの内部 RAM を持ち その中の 30K バイトを DS の下位 32K バイト (2K バイトは SFR) に物理的に実装し 残りの 66K バイトを EDS に物理的に実装します EDS ページ 1 とページ 2 で合計 64K バイト ( 各ページ 32K バイト ) を実装し ページ 3 は残りの 2K バイトを実装します EPMP アドレスもこの EDS に含まれます EPMP の詳細は PIC24F ファミリリファレンスマニュアル のセクション 42. 拡張パラレルマスタポート (EPMP) (DS39730) を参照してください Note 1: EDS ページ 0 にはアクセスできません アクセスするとアドレスエラートラップが発生します 2: 現在の EDS ページから次の EDS ページへの自動的なインクリメント / デクリメントは行われません EDS ページの境界を越えてアクセスする場合 適切なページ番号を DSRPAG と DSWPAG に書き込む必要があります 45.3.1 EDS からのデータアクセス 32K バイトの EDS ウィンドウは データ空間アドレスの Bit 15 がセットされている時に有効です この際 任意のワーキングレジスタ (Wn) に設定した DSRPAG/DSWPAG レジスタに適切な EDS ページを格納する必要があります その 32k バイトの EDS ウィンドウは 選択された EDS ページのアドレスに割り付けられます EDS ページの選択には メモリ読み出し時に DSRPAG レジスタ 書き込み時に DSWPAG レジスタを使用します EDS 付き PIC24F MCU は ページ境界を越える際にこれらのページレジスタを自動的に更新しません アセンブリコードを作成する場合 ページ境界をまたぐデータメモリアクセスにはページレジスタの更新を配慮する必要があります C コンパイラはアドレッシングを常時監視しているため ページ境界をまたぐアクセスではページレジスタを自動的にインクリメント / デクリメントします 45.3.1.1 内部拡張データメモリへのアクセス データメモリを読み書きするための EDS 実効アドレス (EA) の生成方法を図 45-3( 読み出し ) と図 45-4( 書き込み ) に示します 図 45-3: 読み出し時の EDS アドレスの生成 Select 1 Wn 9 8 DSRPAG Reg 0 9 Bits 15 Bits 24-Bit EDS Address 0 = SRAM and Enhanced PMP Wn<0> 図 45-3 に示すように DS アドレスの最上位ビット (MSb) が 1 かつ DSRPAG<9> = 0 の時 DSRPAG の下位 9 ビットと DS アドレスの下位 15 ビットを連結して 読み出し用の 24 ビット EDS 空間アドレスを形成します Note: バイト動作では DS アドレスの最下位ビット (Wn<0>) によってどちらのバイトにアクセスするのかが決まります このビットが 0 であれば下位バイト (LSB) にアクセスし 1 であれば上位バイト (MSB) にアクセスします ワード動作では Wn<0> を 0 に維持しないとアドレスエラーが発生します DS39733A_JP - p. 45-8 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 図 45-4: 書き込み時の EDS アドレスの生成 Select 1 Wn 8 DSWPAG Reg 0 9 Bits 15 Bits 24-Bit EDS Address Wn<0> 図 45-4 に示すように DS アドレスの最上位ビット (MSb) が 1 の時 DSWPAG の下位 9 ビットと DS アドレスの下位 15 ビットを連結して 書き込み用の 24 ビット EDS 空間アドレスを形成します 45.3.1.2 外部データメモリ (EPMP) へのアクセス 拡張データ空間インターフェイスは CPU から外部データメモリへの直接アドレッシングを可能にします 外部データメモリへのアクセスには EPMP を使用します この動作モードでは EPMP モジュールを有効にし (PMPEN = 1) これをマスタモードに設定する (MODE<1:0> = 11) 必要があります EPMP モジュールは 外部データメモリの読み書き時に必要な全ての制御信号を生成します 詳細は PIC24F ファミリリファレンスマニュアル のセクション 42. 拡張パラレルマスタポート (EPMP) を参照してください CPU から外部メモリにアクセスするための推奨 PMP コンフィグレーションは以下の通りです 16 ビットポート ( インターフェイス ) の場合 : アドレス多重化なし 開始または中間のデータ待機なし 8/16 ビットアクセス 8 ビットポート ( インターフェイス ) の場合 : アドレス多重化なし 開始または中間のデータ待機なし 8 ビットアクセスのみ 外部メモリの読み書き用実効アドレス (EA) の生成方法を図 45-3( 読み出し ) と図 45-4( 書き込み ) に示します Note 1: EPMP モジュールを無効またはマスタモード以外に設定して外部メモリ空間にアクセスすると アドレスエラートラップが発生します 2: 物理的に実装されていない外部メモリからの読み出しは意味のないデータを返し 物理的に実装されていない外部メモリへの書き込みはダミー書き込みとなります 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-9

PIC24F ファミリリファレンスマニュアル 45.3.1.3 プログラムメモリへのアクセス (PSV) 図 45-5 に PIC24F のプログラムメモリ (PM) の構造を示します プログラムメモリ空間は 24 ビット幅として扱われますが この空間の各アドレスを 2 ワード ( 上位ワードと下位ワード ) と見なして 上位ワードの上位バイトが実装されていないと考えた方が適切です EDS を持たない PIC24F デバイスは 上位ワードの PSV 読み出しをサポートしません EDS 付きの PIC24F デバイスのみが プログラムメモリの上位ワードの PSV 読み出しをサポートします 上位ワードの下位バイトは PM データを格納し 上位バイトは常にゼロとして読み出されます 図 45-5: プログラムメモリの構成 ファントムバイト 0 として読み出し 0x000001 0x000003 0x000005 0x000007 00000000 00000000 00000000 00000000 23 16 8 0 0x000000 0x000002 0x000004 0x000006 上位ワード ( 下位バイトのみ実装 ) 下位ワード PM 全体には EDS ページ 0x200 ~ 0x3FF を介してアクセスできます EDS ページ 0x200 ~ 0x2FF は下位ワードを格納し EDS ページ 0x300 ~ 0x3FF は上位ワードを格納します 適切なページを選択する事により 必要な PM 位置からデータを読み出す事ができます 各ページは 32K バイトのデータにアクセスできます 図 45-6 に プログラムメモリ読み出し時の PSV 実効アドレス (EA) の生成方法を示します 図 45-6: 読み出し時の PSV アドレスの生成 Select 1 Wn 9 8 DSRPAG Reg 0 9 Bits 15 Bits 24-Bit PSV Address 1 = PSV 1 = プログラムメモリの上位ワード 0 = プログラムメモリの下位ワード Wn<0> DS39733A_JP - p. 45-10 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ DS アドレスの MSb が 1 かつ DSRPAG<9> が 1 の時 DS アドレスの下位 15 ビットと DSRPAG レジスタの下位 9 ビットを連結する事により 24 ビット PSV アドレスを形成します この 24 ビット PSV アドレスは プログラムメモリの位置を指します DSRPAG<8> によってプログラムメモリの上位と下位どちらのワードにアクセスするのかが決まります このビットが 0 の時に下位ワードを読み出し 1 の時に上位ワードを読み出します Note 1: 上位ワードの上位バイト ( ファントムバイト ) の読み出しは 0x00 を返します 2: 通常 PSV はデバイスに実装されたフラッシュメモリであり EDS 機構を使用して書き込む事はできません しかし テーブル書き込みを使用してプログラムメモリ空間にデータを書き込む事ができます 45.3.2 EDS の読み出し EDS 空間からの全ての読み出し動作には EDS を使用しない場合よりも 1 命令サイクル多くかかります 従って 1 回の EDS 読み出しに少なくとも 2 命令サイクルが必要です REPEAT 命令による EDS 読み出しでは 最初の 2 回のアクセスに 3 サイクルを要し その後のアクセスには 1 サイクルしか要しません EDS 読み出しには 2 段階の手順が必要です まず 適切な EDS ページ番号を DSRPAG レジスタに格納してアドレスポインタを設定し オフセットアドレスをいずれかのワーキングレジスタに割り当てます 次に 上記で指定した EDS アドレスからデータを読み出します 例 45-1 に EDS から 1 バイト 1 ワード 2 ワードを読み出す方法を示します 例 45-1: EDS 読み出しのサンプルコード ; Set the EDS page from where the data to be read mov #0x001, w0 mov w0, DSRPAG ;page 0x001 is selected for read mov #0x800, w1 ;select the location (0x800) to be read bset w1, #15 ;set the MSB of the base address, enable EDS mode ;Read a byte from the selected location mov.b [w1++], w2 ;read Low byte mov.b [w1++], w3 ;read High byte ;Read a word from the selected location mov [w1], w2 ; ;Read Double - word from the selected location mov.d [w1], w2 ;two words read, stored in w2 and w3 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-11

PIC24F ファミリリファレンスマニュアル 例 45-2 に PSV から 1 バイト 1 ワード 2 ワードを読み出す方法を示します 例 45-2: PSV 読み出しのサンプルコード ;Reading Lower word of program memory ;Set the EDS page from where the data to be read mov #0x220, w0 mov w0, DSRPAG ;page 0x220 is selected for read mov #0x0C00, w1 ;select the location (0x0C00) to be read bset w1, #15 ;set the MSB of the base address, enable EDS mode ;Read a byte from the selected location mov.b [w1++], w2 ;read Low byte mov.b [w1++], w3 ;read High byte ;Read a word from the selected location mov [w1], w2 ; ;Read Double - word from the selected location mov.d [w1], w2 ;two words read, stored in w2 and w3 ;Reading Upper word of program memory ;Set the EDS page from where the data to be read mov #0x320, w0 mov w0, DSRPAG ;page 0x320 is selected for read mov #0x0C00, w1 ;select the location (0x0C00) to be read bset w1, #15 ;set the MSB of the base address, enable EDS mode ;Read a byte from the selected location mov.b [w1++], w2 ;read Low byte mov.b [w1++], w3 ;read High byte, always 0x00 (Phantom byte) ;Read a word from the selected location mov [w1], w2 ; ;Read Double - word from the selected location mov.d [w1], w2 ;two words read, stored in w2 and w3 DS39733A_JP - p. 45-12 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 45.3.3 EDS の書き込み EDS への全ての書き込み動作は 1 サイクルで実行されます EDS 読み出しと同様に EDS 書き込みにも 2 段階の手順が必要です まず 適切な EDS ページ番号を DSWPAG レジスタに格納してアドレスポインタを設定し メモリアドレスをいずれかのワーキングレジスタに割り当てます 次に 上記で指定したアドレスにデータを書き込みます 例 45-3 に EDS に 1 バイト 1 ワード 2 ワードを書き込む方法を示します 例 45-3: EDS 書き込みのサンプルコード ; Set the EDS page where the data to be written mov #0x002, w0 mov w0, DSWPAG ;page 0x002 is selected for write mov #0x800, w1 ;select the location (0x800) to be written bset w1, #15 ;set the MSB of the base address, enable EDS ;mode ;Write a byte to the selected location mov #0x00A5, w2 mov #0x003C, w3 mov.b w2, [w1++] ;write Low byte mov.b w3, [w1++] ;write High byte ;Write a word to the selected location mov #0x1234, w2 ; mov w2, [w1] ; ;Write a Double - word to the selected location mov #0x2233, w2 mov #0x4455, w3 mov.d w2, [w1] ;2 EDS writes Note 1: EDSでの読み出し- 変更 - 書き込み動作にREPEAT 命令を使用する事はできません 2: 読み出し - 変更 - 書き込み動作 ( ビット操作命令等 ) の実行には DSRPAG レジスタを使用する必要があります 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-13

PIC24F ファミリリファレンスマニュアル 45.4 データ配置 PIC MCU との下位互換性を維持しながらデータ空間メモリの使用効率を改善するために PIC24F の命令セットはワード動作とバイト動作の両方をサポートします このため 全ての実効アドレス計算は内部でワード配置メモリに基づいてスケーリングされます ワード動作では 16 ビットデータアドレスの LSb を無視します ワードデータはリトルエンディアン形式で配置されます (LSB を偶数アドレス (LSb = 0) MSB を奇数アドレス (LSb = 1) に配置 ) バイト動作では データアドレスの LSb を使用してアクセス先のバイトを選択します 図 45-7 に ワード動作とバイト動作時のデータ配置を示します 図 45-7: データ配置 15 MSB 8 7 LSB 0 0x0001 Byte 1 Byte 0 0x0000 0x0003 Byte 3 Byte 2 0x0002 0x0005 Byte 5 Byte 4 0x0004 Word 0 Word 1 Long Word<15:0> Long Word<31:16> 0x0006 0x0008 0x000A 0x000C データバイト読み出しは EA が指定するバイトを含む 1 ワードを読み出し EA の LSb に従って上位または下位のいずれかのバイトを選択します つまり データメモリとレジスタは 共通の ( ワード ) アドレスデコードと別々の書き込みラインを持つ 2 つの並列なバイト幅エンティティとして構成されます データバイト書き込みは バイトアドレスに一致する側の配列またはレジスタにのみ書き込みます 全ての実効アドレス計算は バイトアクセスかワードアクセスかに応じて自動的に調整されます 例えば アドレスポインタをポストインクリメントする 1 回のワード動作は アドレスを 2 つインクリメントします 同様に アドレスポインタをポストインクリメントする 1 回のバイト動作 はアドレスを 1 つインクリメントします 全てのワードアクセスは 偶数アドレス (LSb = 0) に配置する必要があります これに従わないワードデータフェッチはサポートされません 従って バイト動作とワード動作を混用する場合や 8 ビット MCU の既存コードから移行する際には注意が必要です 不正な配置のワード読み書きを行うと アドレスエラートラップが発生します 読み出し時にエラーが発生した場合 実行中の命令は完了します 書き込み時にエラーが発生した場合 命令は実行されますが書き込みは発生しません いずれの場合もトラップが発生し システムまたはユーザはアドレスフォルト実行前のマシンステートを分析できます 割り込みの詳細は PIC24F ファミリリファレンスマニュアル のセクション 8. 割り込み を参照してください ワーキングレジスタへのバイト書き込みは常に LSB に対して作用し MSB を変更しません 符号拡張命令 (SE) を使用すると 8 ビット符号付きデータを 16 ビット符号付き値へ変換できます あるいは 8 ビット符号なしデータに対しては ゼロ拡張 (ZE) 命令を適当なアドレスで実行する事により ワーキングレジスタの MSB をクリアできます 大部分の命令はワードデータでもバイトデータでも動作可能ですが ワードデータでしか動作しない命令も一部存在する事に注意してください DS39733A_JP - p. 45-14 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 45.5 ソフトウェアスタック PIC24F の一部のデータメモリをスタックとして割り当てる必要があります ソフトウェアスタックの詳細は PIC24F ファミリリファレンスマニュアル のセクション 2.3 ソフトウェアスタックポインタ を参照してください 45.6 プログラムメモリとデータメモリ間のインターフェイス PIC24F アーキテクチャは 24 ビット幅のプログラム空間と 16 ビット幅のデータ空間を使用します また このアーキテクチャは改良ハーバード型であるため プログラム空間内のデータへ あたかもそれがデータ空間内にあるかのようにアクセスできます このデータを使用するには 両空間内のデータ配置を意識してアクセスする必要があります 通常の動作とは別に PIC24F アーキテクチャは 動作中にプログラム空間へのアクセスを可能にする下記の 2 つの方法を提供します テーブル命令を使用して プログラム空間の任意位置にある個々のバイトまたはワードにアクセスする DSRPAGレジスタを使用して プログラム空間の一部をデータ空間内に割り当てるテーブル命令は プログラムメモリの小領域の読み書きに使用できます このためテーブル命令は 更新の必要なデータテーブルへのアクセスに適します この命令を使用すると プログラムワードの全てのバイトにアクセスする事もできます プログラム空間をデータ空間内に割り当てる方法を使用すると 大きなデータブロックに読み出し専用でアクセスできます 従ってこの方法は 大 な定数テーブルの参照用に適します プログラムメモリとデータメモリ間のインターフェイスの詳細は PIC24F ファミリリファレンスマニュアル のセクション 4.3 プログラムメモリからのデータアクセス を参照してください 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-15

PIC24F ファミリリファレンスマニュアル 45.7 関連アプリケーションノート 本セクションに関連するアプリケーションノートの一覧を下に記載します 一部のアプリケーションノートは PIC24F デバイスファミリ向けではありません ただし 概念は共通しており 変更が必要であったり制限事項が存在するものの利用が可能です 拡張データ空間 (EDS) を備えたデータメモリに関連する最新のアプリケーションノートは以下の通りです タイトル 現在 関連するアプリケーションノートはありません アプリケーションノート番号 Note: PIC24F デバイスファミリ関連のアプリケーションノートとサンプルコードはマイクロチップ社のウェブサイト (www.microchip.com) でご覧頂けます DS39733A_JP - p. 45-16 Advance Information 2009 Microchip Technology Inc.

セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ 45.8 改訂履歴 リビジョン A (2009 年 12 月 ) 本書の初版 ISBN: 978-1-60932-681-4 45 拡張データ空間 (EDS) を備えたデータメモリ 2009 Microchip Technology Inc. Advance Information DS39733A_JP - p. 45-17

PIC24F ファミリリファレンスマニュアル NOTE: DS39733A_JP - p. 45-18 Advance Information 2009 Microchip Technology Inc.