7.3MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10129-2
FR60
32 ビット・マイクロコントローラ
MB91305
ハードウェアマニュアル
FR60
32 ビット・マイクロコントローラ
MB91305
ハードウェアマニュアル
開発における最新の注意事項に関しては必ず『Check Sheet』を参照してください。
『Check Sheet』は下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』はシステム開発において , 問題を未然に防ぐ事を目的として , 最低限必要と思われますチェック項目をリ
ストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理が要求
される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。
DVD プレーヤ , プリンタ , TV, PDP 制御用等 , 高性能な CPU 処理パワーを要求される
組込み用途に最適な仕様となっています。
本品種は , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速での使用に対
応した FR60 です。
本書は , 実際に MB91305 を使用して製品を開発される技術者を対象に , MB91305 の機
能や動作について解説したものです。本書をご一読ください。
■ 商標
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
REALOS(REALtime Operating System) は , 富士通株式会社の登録商標です。
FCRAM は , 富士通株式会社の登録商標です。
そのほか , 本書で登場するシステム名 , 製品名はそれぞれの会社もしくは組織の商標で
す。
■ ライセンス
本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使
用されることを条件に , Philips 社 I2C 特許がライセンスされております。
Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to
use, these components in an I2C system provided that the system conforms to the I2C Standard
Specification as defined by Philips.
i
■ 本書の全体構成
本書は , 以下に示す 19 の章 , および付録から構成されています。
第1章
概要
この章では , MB91305 の特長 , ブロックダイヤグラム , 機能概要など全体を知るた
めの基本的なことがらについて説明します。
第2章
デバイスの取扱いについて
この章では , MB91305 の取扱い上の注意について説明します。
第3章
CPU および制御部
この章では , FR ファミリの機能を知るために , アーキテクチャ , 仕様 , 命令などの
基本的なことがらについて説明します。
第4章
外部バスインタフェース
この章では , LSI の内部バスと外部のメモリ , 機能マクロ , および I/O デバイスとの
インタフェースの制御について説明します。
第5章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第6章
割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 動作 , およびホー
ルドリクエスト取下げ要求機能の使用例について説明します。
第7章
外部割込み・NMI 制御部
この章では , 外部割込み・NMI 制御部の概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第8章
REALOS 関連ハード
この章では , REALOS 関連ハードの遅延割込みモジュールとビットサーチモジュー
ルについて , 概要 , レジスタの構成 / 機能 , および動作を説明します。
第9章
10 ビット A/D コンバータ
この章では , 10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 10 章 16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第 11 章 PPG タイマ
この章では , PPG タイマの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
第 12 章 U-TIMER
この章では , U-TIMER の概要 , レジスタの構成 / 機能および動作について説明しま
す。
第 13 章 UART
この章では, UARTの概要とレジスタの構成/機能, および動作について説明します。
ii
第 14 章 I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作につい
て説明します。
第 15 章 16 ビットパルス幅カウンタ
この章では , 16 ビットパルス幅カウンタの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 16 章 16 ビット フリーランタイマ
この章では , 16 ビットフリーランタイマの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 17 章 インプットキャプチャ
この章では , インプットキャプチャの概要 , レジスタの構成 / 機能 , および動作につ
いて説明します。
第 18 章 USB ファンクション
この章では , USB ファンクションの概要 , レジスタの構成 / 機能 , 動作 , および補足
事項について説明します。
第 19 章 DMAC (DMA コントローラ )
この章では , DMAC (DMA コントローラ ) の概要 , レジスタの構成 / 機能 , および動
作について説明します。
付録
付録として , I/O マップ , 割込みベクタ , USB 機能 , プログラムローダ , 端子状態一
覧 , および命令一覧について , 本文に記載できなかった細かい内容や , プログラミン
グのときに参照することがらを記載しています。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright© 2005-2006 FUJITSU LIMITED All rights reserved
iv
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。
)
4
■ A/D コンバータ を変更 ( 変換時間 : 約 8.64 μs →変換時間 : 約 8.18μs)
11
表 1.5-1 端子機能一覧 端子名 AN0,AN1 の入出力回路を変更 (F → M)
11
表 1.5-1 端子機能一覧 端子名 SWR を変更 (SWR → SWE)
11
表 1.5-1 端子機能一覧 端子名 MD0 ∼ MD2,MD3 の機能を変更 (VCC 端子→ VDDE 端子 )
17,18
表 1.5-1 端子機能一覧 端子名 163,164,165 の機能を変更 (DMAC ch1 → DMAC ch2)
23
表 1.6-1 入出力回路形式 分類 M を追加
26
■ 水晶発振回路について に文を追加
27
■ クロックについて を変更
28
● 低消費電力モード を変更
29
● A/D 使用時の注意について を変更 (3.3V を供給してください→ VCC より高い電圧を
供給しないでください )
58
■ RP (Return Pointer) を変更 (RET 命令→ RETI 命令 )
86
● 動作クロック生成について を追加
86
図 3.9-1 動作クロック生成部のブロックダイヤグラム を削除
92
<参考> を追加
92
WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタク
リアレジスタ )
97
<参考> を追加
105
図 3.11-1 クロック生成制御部のブロックダイヤグラム を変更
106
図 3.11-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタのレジスタ構成 を
変更 ((R) → (R/W))
107
[bit 9, bit 8] WT1, WT0:Watchdog interval Time select を変更 (WPR → CTBR)
109
<参考> を追加
110
[bit 3, bit 2] OS1, OS0:Oscillation Stabilization time select を変更
113
[bit 9] SYNCR:SYNChronous Reset enable に<注意事項> を追加
113
[bit 8] SYNCS:SYNChronous Standby enable に<注意事項> を追加
114
■ CTBR:タイムベースカウンタクリアレジスタ を変更
116
■ WPR:ウォッチドッグリセット発生延期レジスタ を削除
122
〔ウォッチドッグリセットの発生延期〕を変更 WPR ( ウォッチドッグリセット発生延期
レジスタ ) → CTBR ( タイムベースカウンタクリアレジスタ )
v
ページ
130
133 ∼
228
138
変更内容(詳細は本文を参照してください。
)
〔通常スタンバイ動作と同期スタンバイ動作〕を削除
第 4 章 外部バスインタフェース 端子名を変更 (CS → CSn)
図 4.1-2 外部バスインタフェースのレジスタ構成 を変更 (AWR5 → AWR6)
(000006F8H → 000007F8H)
(000006FCH → 000007FCH)
159
[bit 29,bit 28,bit 21,bit 20,bit 13,bit 12] WR00, WR01, WR10,WR11, WR20, WR21=I/O アイ
ドルサイクル設定 (I/O Idle Wait) を変更 (WR0,WR1,WR2 → WR00, WR01, WR10,WR11,
WR20, WR21)
■ WR + バイトコントロールタイプ (TYP3 ∼ TYP0= 0010B, AWR=0008H) を変更
187
(A31 ∼ A0 → A23 ∼ A0)
(・項目を一つ削除 )
193
■ 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B, AWR=0000H) を変更
195
■ DMA フライバイ転送 (I/O →メモリ )(TYP3 ∼ TYP0=0000B, AWR=0008H,IOWR=51H)
195
図 4.5-10 DMA フライバイ転送 (I/O →メモリ ) を変更 (*1, *2 を削除 )
196
■ DMA フライバイ転送 ( メモリ→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H,IOWR=51H)
196
図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O) を変更 (*1,*2 を削除 )
197
(ACR:TYPE2 ビット→ ACR:TYP2 ビット )
を変更 (AWR15 ∼ AWR12 → W15 ∼ W12)
を変更 (AWR15 ∼ AWR12 → W15 ∼ W12)
図 4.6-1 バーストアクセス (first wait cycle:1,page wait cycle:1)(TYP3 ∼ TYP0=0000B, AWR=
3208H) を変更 (*1,*2 を削除 )
215
図 4.10-1 DMA フライバイ転送 (I/O →メモリ ) の設定 を変更 (*1, *2 を削除 )
217
図 4.10-2 DMA フライバイ転送 ( メモリ→ I/O) の設定 (*1, *2 を削除 )
225
図 4.11-2 バス権獲得時の設定 を変更 (* を削除 )
225
■ バス権獲得 を変更 (WR0 ∼ WR3 → WR0, WR1)
226
■ 外部バスインタフェースの設定手順 2) の②を変更
231
● ペリフェラル入力モード時 (PFR="0" & DDR="0") を変更 (PFR="1" → PFR="0")
232, 233
図 5.2-1 ポートデータレジスタ (PDR) の構成 を変更 (* を削除 )
224
図 5.2-2 ポート方向 (DDR) レジスタの構成 を変更
(PFR=0 のとき を変更 )
(PFR=1 のとき を変更 )
235
図 5.2-3 ポート機能レジスタ (PFR) の構成 を変更 (* を削除 )
235
図 5.2-4 プルアップ機能レジスタ (PCR) の構成 を変更 (PA → PA4)
vi
ページ
変更内容(詳細は本文を参照してください。
)
236 ∼
239
表 5.2-1 PFR レジスタの初期値と機能 を変更
(TOE2 → TOE2*)
(AN9 → AN7)
(AN8 → AN6)
(AN7 → AN5)
(AN6 → AN4)
(AN5 → AN3)
(AN4 → AN2)
(AN3 → AN1)
(AN2 → AN0)
(DWRE → DWRE*)
(AN0 入力として機能します→ IORD 入力として機能します )
(AN0 入力として機能します→ IOWR 入力として機能します )
(WE → SWE)
(* の説明を追加 )
243,244
図 6.1-1 レジスタ一覧 を変更 (R → R/W)
245
図 6.2-1 ICR(Interrupt Control Register) のビット構成 を変更 (R → R/W)
246
図 6.2-2 HRCL(Hold Request Cancel Level register) のビット構成 を変更 (R → R/W)
259
■ 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における注意事
項 を追加
260
■ STOP 状態からの復帰動作について を追加
272
■ 10 ビット A/D コンバータの特長 を変更 (fCH:@32MHz 時→ fCH:32MHz 時 )
274
図 9.2-1 A/D 制御レジスタ (ADCTH, ADCTL) のビット構成 を変更
((R) → (R/W))
(0000 0000B → XXXXXX00B)
(0000 0000B → 00000X00B)
276
■ A/D 変換結果レジスタ (ADAT0 ∼ ADAT9) を変更 (0 チャネル∼ 9 チャネル → ADAT0
∼ ADAT9)
278
■ 外部トリガ変換による A/D 動作 を変更
279 ∼
294
第 10 章 16 ビットリロードタイマ 全体を変更
299
図 11.2-1 コントロールステータスレジスタ (PCNH, PCNL) のビット構成 PCNL0 ∼
PCNL3
( ビット 1 の初期値を変更 (X → 0))
(ch3 00013EH → ch3 00013FH)
315
■ ボーレートの計算 を変更 ( 最大 bps 周辺クロック (CLKP) の表記を削除 )
318
■ UART の特長 を変更 (DRCL0 ∼ DRCL4 レジスタへの書込み動作による DMAC の割
込み要因クリア を削除 )
318
図 13.1-1 レジスタ一覧 を変更 (DRCL を削除 )
320
図 13.2-1 SMR0 ∼ SMR4 ( シリアルモードレジスタ ) のビット構成 を変更 (W → R/W)
vii
ページ
変更内容(詳細は本文を参照してください。
)
321
図 13.2-2 SCR0 ∼ SCR4 ( シリアルコントロールレジスタ ) のビット構成 を変更 (W →
R/W)
324
図 13.2-4 SSR0 ∼ SSR4 ( シリアルステータスレジスタ ) のビット構成 を変更 (R → R/W)
326
■ DRCL0 ∼ DRCL4 を削除
337
表 13.7-1 非同期 ( 調歩同期 ) モード を変更
343
図 14.1-1 バスコントロールレジスタ (IBCR) を変更 (W → R/W)
344
図 14.1-4 10 ビットスレーブアドレスマスクレジスタ (ITMK) を変更 (R → R/W)
345
図 14.1-11 FIFO コントロールレジスタ (IFCR) を変更 (R → R/W)
346
図 14.1-13 ブロックダイヤグラム
(TEDE → TEDIE)
(FN → FN4 ∼ FN0)
350
図 14.2-2 バスコントロールレジスタ (IBCR) のビット構成 を変更 (W → R/W)
351
<注意事項> に項目を追加
355
フロー例 を変更 (*: の説明を追加 )
357
図 14.2-6 クロックコントロールレジスタ (ICCR0 ∼ ICCR3) のビット構成 を変更 (W →
R/W)
359
図 14.2-8 10 ビットスレーブアドレスマスクレジスタ (ITMK0 ∼ ITMK3) を変更 (R →
R/W)
360
[bit 9 ∼ bit 0] TM9 ∼ TM0(10 ビットスレーブアドレスマスクビット ) を変更 (ASS="1"
(IBSR) → AAS="1" (IBSR))
361
図 14.2-9 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA3) のビット構成 を変更 (R
→ R/W)
362
[bit 14 ∼ bit 8] SM6 ∼ SM0(7 ビットスレーブアドレスマスクビット ) を変更 (ASS="1"
(IBSR) → AAS="1" (IBSR))
364
図 14.2-13 IFDR0 ∼ IFDR3 (FIFO データレジスタ ) 初期値を変更 (X → 0)
364
図 14.2-14 IFCR0 ∼ IFCR3 (FIFO コントロールレジスタ ) を変更 (R → R/W)
370
■ エラーを発生しない通信エラー を変更 (BSS="0" による「STOP」条件→ MSS="0" に
よる「STOP」条件 )
380
図 15.2-2 PWC 制御レジスタ (PWCCH) のビット構成 を変更 (TEST1 → TEST0)
383
図 15.2-5 PWC・上限値設定レジスタ (PWCUD) のビット構成 を変更 (R/W → R)
391
[bit 5] : IVFE を変更 (IVFF → IVFE)
391
[bit 2] : CLR <注意事項>に文を追加
409
図 18.2-8 ST2 のビット構成 初期値を変更 (---------0000000B → XXXXXXXX XXX00000B)
410
図 18.2-9 ST3 のビット構成 初期値を変更 (00-------0000000B → XXXXXXXX XXX00000B)
viii
ページ
変更内容(詳細は本文を参照してください。
)
411
図 18.2-10 ST4 のビット構成 初期値を変更 (-----00000000000B → XXXXX000 00000000B)
412
図 18.2-11 ST5 のビット構成 を変更
(0--00------000000B → XXXX0XXX XX000000B)
(RESERVED → LPEND)
412
表 18.2-5 ビット解説 を変更 (Reserved → LPEND)
( 機能欄の変更 )
415
図 18.2-14 CONT1 のビット構成 を変更 (RESERVED → LPSTART)
415
表 18.2-8 ビット解説 を変更
(Reserved → LPSTART)
( 機能欄の変更 )
421
図 18.2-22 CONT9 のビット構成 を変更 ( −→ MLPEND)
421
表 18.2-16 ビット解説 を変更
( −→ MLPEND)
( 機能欄の変更 )
425
表 18.2-18 レジスタマップ を変更 (0006_007E → 0006FFFEH)
427
図 18.3-1 コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) のフロー を
変更 (*1, *2 の文を変更 )
428
<注意事項> を変更
439
■ DMA シングル転送リード / ライトタイミング を追加
440
■ DMA ブロック転送リード / ライトタイミング を追加
461
■ USB 標準要求コマンドに対するマクロの自動応答内容 を変更 (USB Function Ver1.1 に
準拠→ USB ファンクション Ver2.0 Full Speed 規格に準拠 )
474
[bit 31] DENB (Dma ENaBle) :DMA 動作許可ビット を変更 (PUAS ビット→ PAUS ビット )
476
<注意事項> を変更 (MDA 起動→ DMA 起動 )
478
[bit 15 ∼ bit 00] DTC15 ∼ DTC00 (Dma Terminal Count register) を変更 (DTC → DTC15 ∼
DTC00)
479
図 19.2-2 DMAC-ch0 ∼ ch4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4]
のビット構成 の初期値を変更 (X → 0)
479
[bit 31, bit 30] TYPE1, TYPE0 (TYPE) を変更 (TYPE → TYPE1, TYPE0)
479
[bit 29, bit 28] MOD1, MOD0 (MODe) を変更 (MOD → MOD1, MOD0)
480
[bit 27, bit 26] WS1, WS0 (Word Size) を変更 (WS → WS1, WS0)
483
[bit 15 ∼ bit 8] SASZ7 ∼ SASZ0 (Source Addr count SiZe) を変更 (SASZ → SASZ7 ∼
SASZ0)
484
[bit 7 ∼ bit 0] DASZ7 ∼ DASZ0 (Des Addr count SiZe) を変更 (DASZ → DASZ7 ∼ DASZ0)
484
[bit 31 ∼ bit 0] DMASA31 ∼ DMASA0 (DMA Source Addr) を変更 (DMASA → DMASA31
∼ DMASA0)
ix
ページ
変更内容(詳細は本文を参照してください。
)
485
[bit 31 ∼ bit 0] DMADA31 ∼ DMADA0 (DMA Destination Addr) を変更 (DMADA →
DMADA31 ∼ DMADA0)
486
図 19.2-4 DMAC-ch0 ∼ ch4 DMAC 全体制御レジスタ [DMACR] のビット構成 を変更
(PMO1 → PM01)
487
[bit 27 ∼ bit 24] DMAH3 ∼ DMAH0(DMA Halt) を変更 (DMAH → DMAH3 ∼ DMAH0)
498
● アドレスレジスタ指定 を変更
504
■ スリープ中の DMA 転送 を変更
505 ∼
509
■ 外部端子と内部動作タイミングに関する補足 全体を変更
517
図 19.9-1 2 サイクル転送 ( 外部 => 外部転送時 , 転送回数 =2 の場合 ) を変更
(A24 ∼ A0 → A23 ∼ A0)
(EOP → DEOP)
517
図 19.9-2 フライバイ転送 (I/O=>memory 転送時 , 転送回数 =3 の場合 ) を変更
(A24 ∼ A0 → A23 ∼ A0)
(EOP → DEOP)
517
図 19.9-3 フライバイ転送 ( メモリ =>I/O 転送時 , 転送回数 =3 の場合 ) を変更
(A24 ∼ A0 → A23 ∼ A0)
(EOP → DEOP)
518
図 19.9-4 DREQ エッジ要求時 (2 サイクル転送時 ) を変更 (A24 ∼ A0 → A23 ∼ A0)
518
図 19.9-5 DREQ レベル要求時 (2 サイクル転送時 ) を変更 (A24 ∼ A0 → A23 ∼ A0)
519
<注意事項> を変更 (TYPE3 ∼ TYPE0 → TYP3 ∼ TYP0)
523 ∼
531
表 A-1 I/O マップ を変更
537
● AWR (=2098H) W05,W04 ビットの説明を変更 (10B → 01B)
553, 554
表 E-1 外部バス 8 ビットモード時の端子状態 に説明を追加
(P: ポート設定時 )
(F: 指定機能使用時 )
555, 556
表 E-2 外部バス 16 ビットモード時の端子状態 に説明を追加
(P: ポート設定時 )
(F: 指定機能使用時 )
x
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
概要 .......................................................................................................... 1
特長 ...................................................................................................................................... 2
ブロックダイヤグラム .......................................................................................................... 6
外形寸法図 ............................................................................................................................ 7
端子配列図 ............................................................................................................................ 8
端子機能一覧表 .................................................................................................................... 9
入出力回路形式 .................................................................................................................. 19
第2章
2.1
デバイスの取扱いについて .................................................................... 25
デバイスの取扱いについて ................................................................................................. 26
第3章
CPU および制御部 ................................................................................. 31
3.1 メモリ空間 ..........................................................................................................................
3.2 内部アーキテクチャ ...........................................................................................................
3.2.1
内部アーキテクチャ .................................................................................................
3.2.2
命令概要 ...................................................................................................................
3.3 命令キャッシュ ..................................................................................................................
3.3.1
概要 ..........................................................................................................................
3.3.2
各動作モードの状態 .................................................................................................
3.3.3
命令キャッシュのキャッシュ可能領域 ....................................................................
3.3.4
I-Cache を使用するときの設定方法 .........................................................................
3.4 プログラミングモデル ........................................................................................................
3.4.1
汎用レジスタ ............................................................................................................
3.4.2
専用レジスタ ............................................................................................................
3.5 データ構造 ..........................................................................................................................
3.6 メモリマップ ......................................................................................................................
3.7 分岐命令 .............................................................................................................................
3.7.1
遅延スロット付き動作 .............................................................................................
3.7.2
遅延スロットなし動作 .............................................................................................
3.8 EIT ( 例外・割込み・トラップ ) .........................................................................................
3.8.1
EIT の割込みレベル ..................................................................................................
3.8.2
ICR (Interrupt Control Register) ................................................................................
3.8.3
SSP (System Stack Pointer) .....................................................................................
3.8.4
3.8.5
32
33
34
38
40
41
46
48
49
51
52
53
60
62
63
64
66
67
68
70
71
割込みスタック ........................................................................................................ 72
TBR (Table Base Register) ...................................................................................... 73
3.8.6
EIT ベクタテーブル ..................................................................................................
3.8.7
多重 EIT 処理 ............................................................................................................
3.8.8
多重 EIT の動作 ........................................................................................................
3.8.9
注意事項 ...................................................................................................................
3.9 動作モード ..........................................................................................................................
3.9.1
バスモード ...............................................................................................................
3.9.2
モード設定 ...............................................................................................................
3.10 リセット ( デバイス初期化 ) ...............................................................................................
3.10.1
リセットレベル ........................................................................................................
3.10.2
リセット要因 ............................................................................................................
xi
74
77
79
83
84
85
86
89
90
91
3.10.3
リセットシーケンス ................................................................................................. 93
3.10.4
発振安定待ち時間 ..................................................................................................... 94
3.10.5
リセット動作モード ................................................................................................. 96
3.11 クロック生成制御 ............................................................................................................... 98
3.11.1
PLL 制御 ................................................................................................................... 99
3.11.2
発振安定待ち・PLL ロック待ち時間 ...................................................................... 101
3.11.3
クロック分配 .......................................................................................................... 102
3.11.4
クロック分周 .......................................................................................................... 104
3.11.5
クロック生成制御部のブロックダイヤグラム ........................................................ 105
3.11.6
クロック生成制御部のレジスタ詳細説明 ............................................................... 106
3.11.7
クロック制御部が持つ周辺回路 ............................................................................. 122
3.12 デバイス状態制御 ............................................................................................................. 125
3.12.1
デバイス状態と各遷移 ........................................................................................... 126
3.12.2
低消費電力モード ................................................................................................... 129
第4章
外部バスインタフェース ...................................................................... 133
4.1 外部バスインタフェースの概要 .......................................................................................
4.2 外部バスインタフェースのレジスタ ................................................................................
4.2.1
Area Select Register (ASR0 ∼ ASR7) ...................................................................
4.2.2
ACR0 ∼ ACR7(Area Configuration Register) ........................................................
4.2.3
AWR0 ∼ AWR7(Area Wait Register) .....................................................................
4.2.4
MCRA (Memory Configuration Register for extend type-A:
SDRAM/FCRAM オートプリチャージなし ) ..........................................................
4.2.5
MCRB (Memory Configuration Register for extend type-B:
FCRAM オートプリチャージあり ) ........................................................................
4.2.6
IOWR0 ∼ IOWR2(I/O Wait Register for DMAC) ....................................................
4.2.7
CSER(Chip Select Enable register) ........................................................................
4.2.8
CHER(CacHe Enable register) ...............................................................................
4.2.9
TCR(Terminal and timing Control Register) ...........................................................
4.2.10
RCR(Refresh Control Register) ..............................................................................
4.3 チップセレクト領域 .........................................................................................................
4.4 エンディアンとバスアクセス ...........................................................................................
4.4.1
データバス幅と制御信号との関係 ..........................................................................
4.4.2
ビッグエンディアンのバスアクセス ......................................................................
4.4.3
リトルエンディアンのバスアクセス ......................................................................
4.4.4
外部アクセス ..........................................................................................................
4.5 通常バスインタフェース ..................................................................................................
4.6 バーストアクセス (first wait cycle:1,page wait cycle:1)
(TYP3 ∼ TYP0=0000B,AWR=3208H) ..............................................................................
4.7 アドレス / データマルチプレックスインタフェース ........................................................
4.8 プリフェッチ動作 .............................................................................................................
4.9 SDRAM/FCRAM インタフェース .....................................................................................
4.10 DMA アクセス ..................................................................................................................
4.11 バスアービトレーション ..................................................................................................
4.12 レジスタ設定手順 .............................................................................................................
4.13 使用上の注意 ....................................................................................................................
第5章
5.1
5.2
134
139
140
141
147
155
157
158
160
161
162
165
168
170
171
173
178
182
186
197
199
203
207
215
224
226
227
I/O ポート ............................................................................................. 229
I/O ポートの概要 .............................................................................................................. 230
I/O ポートのレジスタ ....................................................................................................... 232
xii
第6章
6.1
6.2
6.3
6.4
割込みコントローラ ............................................................................. 241
割込みコントローラの概要 ...............................................................................................
割込みコントローラのレジスタ .......................................................................................
割込みコントローラの動作 ...............................................................................................
ホールドリクエスト取下げ要求機能 (HRCL) の使用例 ....................................................
第7章
7.1
7.2
7.3
外部割込み /NMI 制御部 ....................................................................... 253
外部割込み /NMI 制御部の概要 ......................................................................................... 254
外部割込み /NMI 制御部のレジスタ .................................................................................. 255
外部割込み /NMI 制御部の動作 ......................................................................................... 257
第8章
8.1
8.2
8.3
8.4
8.5
8.6
REALOS 関連ハード ........................................................................... 261
遅延割込みモジュール ......................................................................................................
遅延割込みモジュールのレジスタ ....................................................................................
遅延割込みモジュールの動作 ...........................................................................................
ビットサーチモジュール ..................................................................................................
ビットサーチモジュールのレジスタ ................................................................................
ビットサーチモジュールの動作 .......................................................................................
第9章
9.1
9.2
9.3
242
245
247
250
262
263
264
265
266
268
10 ビット A/D コンバータ .................................................................... 271
10 ビット A/D コンバータの概要 ..................................................................................... 272
10 ビット A/D コンバータのレジスタ .............................................................................. 274
10 ビット A/D コンバータの動作 ..................................................................................... 277
第 10 章
16 ビットリロードタイマ .................................................................... 279
10.1 16 ビットリロードタイマの概要 ...................................................................................... 280
10.2 16 ビットリロードタイマのレジスタ ............................................................................... 283
10.3 16 ビットリロードタイマの動作説明 ............................................................................... 287
第 11 章
11.1
11.2
11.3
11.4
PPG (Programable Pulse Generator) ............................................... 295
PPG の概要 ......................................................................................................................
PPG タイマのレジスタ ....................................................................................................
PPG の動作説明 ...............................................................................................................
PPG タイマの注意事項 ....................................................................................................
第 12 章
296
299
304
307
U-TIMER .............................................................................................. 309
12.1 U-TIMER の概要 ............................................................................................................... 310
12.2 U-TIMER のレジスタ ........................................................................................................ 311
12.3 U-TIMER の動作説明 ........................................................................................................ 315
第 13 章
13.1
13.2
13.3
13.4
13.5
13.6
13.7
UART ................................................................................................... 317
UART の概要 ....................................................................................................................
UART のレジスタ .............................................................................................................
UART の動作 ....................................................................................................................
割込み発生およびフラグのセットタイミング ..................................................................
UART 使用上の注意 .........................................................................................................
UART の応用例 .................................................................................................................
ボーレートと U-TIMER のリロード値の設定例 ...............................................................
xiii
318
320
327
331
334
335
337
第 14 章
14.1
14.2
14.3
14.4
I2C インタフェース .............................................................................. 339
I2C インタフェースの概要 ................................................................................................
I2C インタフェースのレジスタ ........................................................................................
I2C インタフェースの動作 ................................................................................................
動作フローチャート .........................................................................................................
第 15 章
340
347
367
372
16 ビットパルス幅カウンタ ................................................................. 377
15.1 16 ビットパルス幅カウンタの概要 .................................................................................. 378
15.2 16 ビットパルス幅カウンタのレジスタ ........................................................................... 379
15.3 16 ビット パルス幅カウンタの動作 ................................................................................. 384
第 16 章
16 ビットフリーランタイマ ................................................................. 387
16.1 16 ビットフリーランタイマの概要 .................................................................................. 388
16.2 16 ビットフリーランタイマのレジスタ ........................................................................... 389
16.3 16 ビットフリーランタイマの動作説明 ........................................................................... 393
第 17 章
インプットキャプチャ ......................................................................... 395
17.1 インプットキャプチャの概要 ........................................................................................... 396
17.2 インプットキャプチャのレジスタ .................................................................................... 397
17.3 インプットキャプチャの動作 ........................................................................................... 400
第 18 章
USB ファンクション ............................................................................ 401
18.1 USB ファンクションの概要 .............................................................................................
18.2 USB インタフェースのレジスタ ......................................................................................
18.2.1
データ送受信用レジスタ ( エンドポイント用 ) ......................................................
18.2.2
ステータスレジスタ ...............................................................................................
18.2.3
コントロールレジスタ ...........................................................................................
18.3 USB ファンクションの動作 .............................................................................................
18.3.1
データ転送フロー ...................................................................................................
18.3.2
CPU アクセス動作説明 ..........................................................................................
18.3.3
DMA 動作説明 ........................................................................................................
18.3.4
割込み要因一覧 ......................................................................................................
18.3.5
エンドポイントバッファの設定 .............................................................................
18.3.6
ソフトウェア制御例 ...............................................................................................
18.4 補足事項 ...........................................................................................................................
18.4.1
ダブルバッファ ......................................................................................................
18.4.2
ボード上の D+ 終端抵抗制御について ...................................................................
18.4.3
USB 標準要求コマンドに対するマクロの自動応答内容 ........................................
18.4.4
デフォルト状態での USB マクロの動作 ................................................................
18.4.5
サスペンド時の USB クロック制御 ........................................................................
18.4.6
USB コネクタの接続 / 未接続の検知 ......................................................................
18.4.7
UCLK48 の精度 ......................................................................................................
18.4.8
コントロール転送時の転送許可 BFOK の設定 .......................................................
18.4.9
コントロール転送における注意点 ..........................................................................
18.4.10
USB バスリセット後のマクロの状態 .....................................................................
第 19 章
402
404
405
408
415
426
427
434
437
441
442
444
455
456
460
461
462
463
464
465
466
467
468
DMAC(DMA コントローラ ) ................................................................ 469
19.1 DMA コントローラ (DMAC) の概要 .................................................................................. 470
19.2 DMA コントローラ (DMAC) のレジスタ .......................................................................... 473
xiv
19.3
19.4
19.5
19.6
19.7
19.8
19.9
DMA コントローラの動作 ................................................................................................
転送要求の設定 ................................................................................................................
転送シーケンス ................................................................................................................
DMA 転送全般 ..................................................................................................................
動作フローチャート .........................................................................................................
データパス ........................................................................................................................
DMA 外部インタフェース ................................................................................................
付録
付録 A
付録 B
付録 C
付録 D
付録 E
付録 F
F.1
索引
488
492
493
497
510
513
516
.............................................................................................................. 521
I/O マップ ....................................................................................................................
割込みベクタ ...............................................................................................................
USB 機能 .....................................................................................................................
プログラムローダモード .............................................................................................
端子状態一覧 ...............................................................................................................
命令一覧 ......................................................................................................................
FR ファミリの命令一覧表 ...........................................................................................
522
534
536
539
553
557
560
.............................................................................................................. 575
xv
xvi
第1章
概要
MB91305 の特長 , ブロックダイヤグラム , 機能概
要など全体を知るための基本的なことがらについ
て説明します。
1.1 特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能一覧表
1.6 入出力回路形式
1
第 1 章 概要
1.1
特長
FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理を
要求される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。
DVD プレーヤ , プリンタ , TV, PDP 制御用など , 高性能な CPU 処理パワーを要求さ
れる組込み用途に最適な仕様となっています。
本品種は , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速での使用
に対応した FR60 です。
■ FR CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• USB 機能ありの場合 (MOD=0000B):動作周波数 64MHz [ 原発振 48MHz] 48MHz の
3 分周を 4 逓倍
• USB 機能なしの場合 (MOD=0010B):動作周波数 64MHz [ 原発振 16MHz] 16MHz の
4 逓倍
• 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル
• メモリ - メモリ間転送 , ビット処理 , バレルシフトなどの命令 : 組込み用途に適した
命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : 高級言語対応命令
• レジスタインターロック機能 : アセンブラ記述の容易化
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付き 32 ビット乗算 : 5 サイクル
- 符号付き 16 ビット乗算 : 3 サイクル
• 割込み (PC, PS の退避 ): 6 サイクル , 16 プライオリティレベル
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• CPU 内の 4 ワードのキューにより , 命令の先取り機能を追加
• FR ファミリとの命令互換
■ バスインタフェース
本バスインタフェースは , 外部バスと内部マクロ USB ファンクションに使用されます。
• 動作周波数:最大 32MHz
• 16 ビットデータ入出力
• 最小 64K バイト位で設定可能な完全独立な 8 領域のチップセレクト出力が可能
CS2, CS3 の領域は以下のように予約されています。
CS0, CS1, CS4 ∼ CS7 のみ使用で
きます。
- CS2 領域 : USB ファンクション
- CS3 領域 : 未使用
• 基本バスサイクル : 2 サイクル
2
第 1 章 概要
• 領域ごとにプログラマブルでウェイト挿入可能な自動ウェイトサイクル発生機構
CS2, CS3 は予約されていますので設定は固定になります。
• 24 ビットアドレスフル出力
• 8/16 ビットデータ入出力
• プリフェッチバッファ搭載
• 未使用データ , 未使用アドレス端子は汎用入出力やリソース機能に使用可能
• 各種メモリに対するインタフェースのサポート
非同期 SRAM, 非同期 ROM/ フラッシュメモリ
ページモード ROM/ フラッシュメモリ ( ページサイズ 1, 2, 4, 8 可能 )
バーストモード ROM/ フラッシュメモリ (MBM29BL160D/161D/162D など )
SDRAM (FCRAM タイプも対応 , CAS レイテンシ 1 ∼ 8, 2/4 バンク品 )
アドレス / データマルチプレックスバス (8 ビット /16 ビット 幅のみ )
• 基本バスサイクル : 2 サイクル
• 領域ごとにプログラマブルな自動ウェイトサイクル発生機構 ( 最大 15 サイクル )
• RDY 入力による外部ウェイトサイクル
• バイトオーダリングのエンディアン設定 ( ビッグ / リトル )
<注意事項>
CS0 領域はビッグエンディアンのみ
• 書込み禁止設定 ( 読出し専用領域 )
• 内蔵キャッシュへの取込み許可・禁止設定
• プリフェッチ機能の許可・禁止設定
• BRQ と BGRNT を使用した外部バスアービトレーションが可能
■ 内蔵メモリ
F-bus 搭載の RAM64K バイト
■ 命令キャッシュメモリ
• 4 K バイト 命令キャッシュ
• 2 ウェイセットアソシアティブ方式
• 128 ブロック / ウェイ , 4 エントリ (4 ワード ) / ブロック
• ロック機能 : 特定プログラムコードのキャッシュへの常駐化
• 命令 RAM 機能:キャッシュ機能を使用しない場合は命令実行用の RAM としても
使用可能
■ DMAC (DMA Controller)
• 5 チャネル (ch1, ch2 → USB ファンクションに接続されています。)
• 3 つの転送要因 ( 内部ペリフェラル / ソフトウェア )
• アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
• 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
• 転送データサイズは 8/16/32 ビットから選択可能
3
第 1 章 概要
■ ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ
■ リロードタイマ (REALOS 用 1 チャネルを含む )
• 16 ビットタイマ : 3 チャネル
• 内部クロックは 2/8/32 分周から選択可能
■ UART
• 全二重ダブルバッファ
• 5 チャネル
• パリティあり / なし選択可能
• 非同期 ( 調歩同期 ), CLK 同期通信の選択可能
• 専用ボーレート用タイマ内蔵
• 外部クロックを転送クロックとして使用可能
• 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン )
■ I2C インタフェース
• 4 チャネル搭載 ( ブリッジ機能搭載・5 チャネル分の端子機能 )
• マスタ / スレーブ送受信
• クロック同期化機能
• 転送方向検出機能
• バスエラー検出機能
• 標準モード ( 最大 100Kbps)/ 高速モード ( 最大 400Kbps) に対応
• 送受信各 16 バイトの FIFO 機能搭載
• アービトレーション機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• スタートコンディションの繰返し発生および検出機能
• 10 ビット / 7 ビットスレーブアドレス
■ 割込みコントローラ
• 外部割込み : 合計 17 本 ( マスク不可割込み端子 (NMI) 1 本と通常割込み端子 (INT0 ∼
INT15) 16 本 )
• 内部ペリフェラルからの割込み
• マスク不可割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル )
• ストップ時のウェイクアップ用として使用可能
■ A/D コンバータ
• 10 ビット分解能 , 10 チャネル
• 逐次比較変換型 : 変換時間 : 約 8.18µs
• 変換モード ( 単発変換モード , スキャン変換モード )
• 起動要因 ( ソフトウェア / 外部トリガ )
4
第 1 章 概要
■ PPG
• 4 チャネル搭載
• 16 ビットダウンカウンタ , 周期設定用バッファ付き 16 ビットデータレジスタ
• 内部クロックは 1/4/16/64 分周から選択可能
■ PWC
• 1 チャネル (1 入力 ) 搭載
• 16 ビットアップカウンタ
• 簡易デジタルローパスフィルタ
■ フリーランタイマ
• 16 ビット 1 チャネル
• インプットキャプチャ 4 チャネル
■ USB ファンクション機能 ( 機能の有無をモード端子により選択可能 )
• USB2.0 仕様のフルスピード・ダブルバッファ
• エンドポイント用 FIFO の構成
CONTROL IN/OUT, BULK IN/OUT, INTERRUPT IN
■ その他のインターバルタイマ
ウォッチドッグタイマ
■ I/O ポート
最大 98 ポート
■ その他の特長
• クロックソースとして発振回路内蔵
• リセット端子として INIT を用意
• その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり
• 低消費電力モードとしてストップモードとスリープモードをサポート
• ギア機能
• タイムベースタイマ内蔵
• パッケージ : LQFP-176, 0.5mm ピッチ , 24mm × 24mm
• CMOS テクノロジ : 0.18 µm
• 電源電圧 : 3.3V ± 0.3V, 1.8V ± 0.15V, 2 電源 (0.18 µm)
■ ライセンス
本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使用さ
れることを条件に , Philips 社 I2C 特許がライセンスされております。
Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent
Rights to use, these components in an I2C system provided that the system conforms to
the I2C Standard Specification as defined by Philips.
5
第 1 章 概要
1.2
ブロックダイヤグラム
図 1.2-1 に , MB91305 のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム
FR
CPU コア
32
命令キャッシュ
4Kバイト
32
ビットサーチ
RAM
64Kバイト
バスコンバータ
DMAC
5チャネル
32⇔16
アダプタ
外部バス
インタフェース
SDRAM
インタフェース
クロック
制御
割込み
コントローラ
USB
ファンクション
UART
5チャネル
I2C
4チャネル
A/D
10チャネル
フリーランタイマ
1チャネル
リロード
タイマ
3チャネル
インプットキャプチャ
4チャネル
外部割込み
ポート
6
PWC
PPG
1チャネル 4チャネル
第 1 章 概要
外形寸法図
1.3
MB91305 には , 1 種類のパッケージが用意されています。図 1.3-1 に , MB91305 の
外形寸法を示します。
■ 外形寸法図
図 1.3-1 外形寸法図
プラスチック・LQFP, 176ピン
(FPT-176P-M07)
プラスチック・LQFP, 176ピン
(FPT-176P-M07)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
24.0×24.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
1.86g
コード(参考)
P-LQFP-0176-2424-0.50
注1)*印寸法はレジン残りを含まず。レジン残りは片側+0.25(.010)MAX
注2)端子幅および端子厚さはメッキ厚を含む。
注3)端子幅はタイバ切断残りを含まず。
26.00±0.20(1.024±.008)SQ
*24.00±0.10(.945±.004)SQ
0.145±0.055
(.006±.002)
132
89
133
88
0.08(.003)
Details of "A" part
+0.20
1.50 -0.10
+.008
.059 -.004
(Mounting height)
0.10±0.10
(.004±.004)
(Stand off)
0~8'
INDEX
176
45
"A"
LEAD No.
1
44
0.50(.020)
C
2004 FUJITSU LIMITED F176013S-c-1-1
0.22±0.05
(.009±.002)
0.50±0.20
(.020±.008)
0.60±0.15
(.024 .006)
0.25(.010)
0.08(.003) M
単位:mm(inches)
注意:括弧内の値は参考値です。
7
第 1 章 概要
1.4
端子配列図
MB91305 の端子配列を示します。
■ 端子配列図
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
D23/P27
D22/P26
D21/P25
D20/P24
D19/P23
D18/P22
D17/P21
D16/P20
VDDI
VSS
VDDE
PE2/DEOP2/TRG3
PE1/DACK2/TRG2
PE0/DREQ2/TRG1
PD5/DEOP1/TIN2
PD4/DACK1/TIN1
PD3/DREQ1/TIN0
PD2/DEOP0
PD1/DACK0
PD0/DREQ0
PC7/RIN/IORD
PC6/TOUT2/IOWR
PC5/TOUT1
PC4/TOUT0/TRG0
PC3/PPG3
PC2/PPG2
PC1/PPG1
PC0/PPG0
VDDI
VSS
UDM
UDP
VDDE
PB7/INT15/ICU3
PB6/INT14/ICU2
PB5/INT13/ICU1
PB4/INT12/ICU0
PB3/INT11/FRCK
PB2/INT10/ATRG
PB1/INT9
PB0/INT8
PA7/INT7
PA6/INT6
PA5/INT5
図 1.4-1 端子配列図
VDDE
VSS
VDDI
D24
D25
D26
D27
D28
D29
D30
D31
VDDE
VSS
VDDI
RD
WR0/DQMUU
WR1/DQMUL/P30
CS0/P31
CS1/P32
CS4/P33
CS5/P34
CS6/P35
CS7/P36
RDY/P37
P40/BGRNT
P41/BRQ
SYSCLK/P42
MCLKE/P43
MCLK/P44
P45/SRAS/LBA/AS
P46/SCAS/BAA
P47/SWE/WR
VDDE
VSS
VDDI
A0
A1
A2
A3
A4
A5
A6
A7
A8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
TOP VIEW
LQFP-176
MB91305
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
ICS2
ICS1
ICS0
AN9/PF7
AN8/PF6
AN7/PF5
AN6/PF4
AN5/PF3
AN4/PF2
AN3/PF1
AN2/PF0
AN1
AN0
AVSS
AVRH
AVCC
MD3
MD2
MD1
MD0
INIT
VDDI
X1
VSS
X0
VDDE
A23/P57
A22/P56
A21/P55
A20/P54
A19/P53
A18/P52
A17/P51
A16/P50
VDDI
VSS
VDDE
A15
A14
A13
A12
A11
A10
A9
8
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
PA4/INT4
PA3/INT3
PA2/INT2
PA1/INT1
PA0/INT0
NMI
VDDI
VSS
VDDE
P97/SDA4
P96/SCL4
P95/SDA3
P94/SCL3
P93/SDA2
P92/SCL2
P91/SDA1
P90/SCL1
P84/SDA0
P83/SCL0
P82/SCK4
P81/SOUT4
P80/SIN4
P75/SCK3
P74/SOUT3
P73/SIN3
P72/SCK2
P71/SOUT2
P70/SIN2
P65/SCK1
P64/SOUT1
P63/SIN1
P62/SCK0
P61/SOUT0
P60/SIN0
VDDI
VSS
VDDE
TRST
ICLK
IBREAK
ICD3
ICD2
ICD1
ICD0
第 1 章 概要
端子機能一覧表
1.5
MB91305 の端子機能の一覧を示します。
■ 端子機能一覧
端子配列図を参照してください。
表 1.5-1 端子機能一覧 (1 / 10)
端子名
169 ∼
176
入出力
回路
D16 ∼
D23
機能
外部データバスの bit 16 ∼ bit 23 です。外バスモードのときに有効とな
ります。
C
P20 ∼
P27
外バス 8 ビットモードのときはポートとして使用できます。
4 ∼ 11
D24 ∼
D31
C
外部データバスの bit 24 ∼ bit 31 です。外バスモードのときに有効とな
ります。
15
RD
H
外バスリードストローブ出力です。外バスモード時に有効となります。
16
WR0/
DQMUU
H
外バスライトストローブ出力です。外バスモード時に有効となります。
WR をライトストローブとして使用したときにはバイトイネーブル
(DQMUU) となります。
WR1/
DQMUL
17
D
汎用入出力ポートです。外バスライトイネーブル出力設定を禁止にした
ときに有効となります。
P30
チップセレクト 0 出力です。外バスモード時に有効となります。
CS0
18
外バスライトストローブ出力です。外バスモード時に WR1 の出力を許
可にすると有効となります。WR をライトストローブとして使用したと
きにはバイトイネーブル (DQMUL) となります。
D
P31
汎用入出力ポートです。シングルチップモード時に有効となります。
CS1
チップセレクト 1 出力です。この機能はチップセレクト 1 出力指定が許
可のときに有効となります。
19
D
P32
汎用入出力ポートです。この機能はチップセレクト 1 出力指定が禁止の
ときに有効となります。
CS4
チップセレクト 4 出力です。この機能はチップセレクト 4 出力指定が許
可のときに有効となります。
20
D
P33
汎用入出力ポートです。この機能はチップセレクト 4 出力が禁止のとき
に有効となります。
CS5
チップセレクト 5 出力です。この機能はチップセレクト 5 出力指定が許
可のときに有効となります。
21
D
P34
汎用入出力ポートです。この機能はチップセレクト 5 出力が禁止のとき
に有効となります。
9
第 1 章 概要
表 1.5-1 端子機能一覧 (2 / 10)
端子名
入出力
回路
チップセレクト 6 出力です。この機能はチップセレクト 6 出力指定が許
可のときに有効となります。
CS6
22
D
P35
汎用入出力ポートです。この機能はチップセレクト 6 出力が禁止のとき
に有効となります。
CS7
チップセレクト 7 出力です。この機能はチップセレクト 7 出力指定が許
可のときに有効となります。
23
D
P36
汎用入出力ポートです。この機能はチップセレクト 7 出力が禁止のとき
に有効となります。
RDY
外部レディ入力です。この機能は外部レディ入力指定が許可のときに有
効となります。
24
D
P37
汎用入出力ポートです。この機能は外部レディ入力指定が禁止のときに
有効となります。
BGRNT
外部バス開放受付け出力です。外部バスを開放したときに "L" を出力し
ます。出力指定が許可のときに有効となります。
25
D
P40
汎用入出力ポートです。この機能は外部バス開放受付け指定が禁止のと
きに有効となります。
BRQ
外部バス開放要求入力です。外部バスを開放したいときに "1" を入力し
ます。入力指定が許可のときに有効となります。
26
D
P41
汎用入出力ポートです。この機能は外部バス開放要求指定が禁止のとき
に有効となります。
SYSCLK
システムクロック出力です。この機能はシステムクロック出力指定が許
可のときに有効となります。外バス動作周波数と同じクロックを出力し
ます ( ストップ時に停止します )。
27
D
汎用入出力ポートです。この機能はシステムクロック出力指定が禁止の
ときに有効となります。
P42
SDRAM 用クロックイネーブル信号です。
MCLKE
28
D
P43
汎用入出力ポートです。この機能はメモリ用クロック出力指定が禁止の
ときに有効となります。
MCLK
メモリ用クロック出力です。この機能はメモリ用クロック出力指定が許
可のときに有効となります。外バス動作周波数と同じクロックを出力し
ます ( スリープ時に停止します )。
29
D
P44
汎用入出力ポートです。この機能はメモリ用クロック出力指定が禁止の
ときに有効となります。
AS
アドレスストローブ出力です。この機能はアドレスストローブ出力が許
可のときに有効となります。
LBA
バーストフラッシュメモリアドレスロード出力です。この機能はアドレ
スロード出力指定が許可のときに有効となります。
D
30
SRAS
P45
10
機能
SDRAM 用の RAS ストローブ信号です。
汎用入出力ポートです。この機能はアドレスロード出力指定が禁止のと
きに有効となります。
第 1 章 概要
表 1.5-1 端子機能一覧 (3 / 10)
端子名
入出力
回路
バーストフラッシュメモリアドレスアドバンス出力です。この機能はア
ドレスアドバンス出力指定が許可のときに有効となります。
BAA
31
32
SCAS
D
55 ∼
62
64
SDRAM 用の CAS ストローブ信号です。
P46
汎用入出力ポートです。この機能はアドレスアドバンス出力指定が禁止
のときに有効となります。
WR
メモリライトストローブ出力です。この機能はライトストローブ出力指
定が許可のときに有効となります。
SWE
D
A0 ∼
A15
SDRAM ライト出力です。
汎用入出力ポートです。この機能はライトストローブ出力指定が禁止の
ときに有効となります。
P47
36 ∼
51
機能
H
A16 ∼
A23
外部アドレスバスの bit 0 ∼ bit 15 です。
外部アドレスバスの bit 16 ∼ bit 23 です。
D
P50 ∼
P57
外部アドレスバス未使用時は , ポートとして使用できます。
クロック ( 発振 ) 入力です。
X0
A
クロック ( 発振 ) 出力です。
66
X1
68
INIT
B
外部リセット入力です ( 設定初期化リセット )。
69 ∼
71
MD0 ∼
MD2
I
端子の設定により基本動作モードを設定します。
VDDE 端子または VSS
端子に接続してください。
72
MD3
J
端子の設定により基本動作モードを設定します。
VDDE 端子または VSS
端子に接続してください。
76,77
AN0,
AN1
M
アナログ入力端子です。
78 ∼
85
AN2 ∼
AN9
アナログ入力端子です。
F
PF0 ∼
PF7
アナログ入力端子未使用時は , ポートとして使用できます。
86 ∼
88
ICS0 ∼
ICS2
C
開発ツール用ステータス出力端子です。
89 ∼
92
ICD0 ∼
ICD3
L
開発ツール用データ入出力端子です。
93
IBREAK
J
開発ツール用ブレーク端子です。
94
ICLK
D
開発ツール用クロック端子です。
95
TRST
B
開発ツール用リセット端子です。
11
第 1 章 概要
表 1.5-1 端子機能一覧 (4 / 10)
端子名
入出力
回路
SIN0
99
D
SOUT0
D
SCK0
D
UART0 のクロック入出力です。この機能は UART0 のクロック出力指定
が許可のときに有効となります。
P62
汎用入出力ポートです。
SIN1
UART1 のデータ入力です。UART1 が入力動作をしている間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
102
D
P63
汎用入出力ポートです。
SOUT1
103
D
SCK1
104
UART1 のデータ出力です。この機能は UART1 のデータ出力指定が許可
のときに有効となります。
汎用入出力ポートです。
P64
D
UART1 のクロック入出力です。この機能は UART1 のクロック出力指定
が許可のときに有効となります。
P65
汎用入出力ポートです。
SIN2
UART2 のデータ入力です。UART2 が入力動作をしている間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
105
D
汎用入出力ポートです。
P70
SOUT2
106
D
SCK2
107
UART2 のデータ出力です。この機能は UART2 のデータ出力指定が許可
のときに有効となります。
汎用入出力ポートです。
P71
D
UART2 のクロック入出力です。この機能は UART2 のクロック出力指定
が許可のときに有効となります。
P72
汎用入出力ポートです。
SIN3
UART3 のデータ入力です。UART3 が入力動作をしている間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
108
D
汎用入出力ポートです。
P73
SOUT3
109
D
P74
12
UART0 のデータ出力です。この機能は UART0 のデータ出力指定が許可
のときに有効となります。
汎用入出力ポートです。
P61
101
UART0 のデータ入力です。UART0 が入力動作をしている間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
汎用入出力ポートです。
P60
100
機能
UART3 のデータ出力です。この機能は UART3 のデータ出力指定が許可
のときに有効となります。
汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能一覧 (5 / 10)
端子名
入出力
回路
SCK3
110
D
機能
UART3 のクロック入出力です。この機能は UART3 のクロック出力指定
が許可のときに有効となります。
P75
汎用入出力ポートです。
SIN4
UART4 のデータ入力です。UART4 が入力動作をしている間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
111
D
汎用入出力ポートです。
P80
SOUT4
112
D
汎用入出力ポートです。
P81
SCK4
113
D
SCL0
D
SDA0
D
SCL1
D
SDA1
D
SCL2
K
SDA2
K
P93
I2C バス用クロック入出力端子です。この機能は I2C が動作許可のとき
に有効となります。意図的に行うとき以外はポートによる出力を停止さ
せておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
P92
119
I2C バス用データ入出力端子です。この機能は I2C が動作許可のときに
有効となります。意図的に行うとき以外はポートによる出力を停止させ
ておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
P91
118
I2C バス用クロック入出力端子です。この機能は I2C が動作許可のとき
に有効となります。意図的に行うとき以外はポートによる出力を停止さ
せておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
P90
117
I2C バス用データ入出力端子です。この機能は I2C が動作許可のときに
有効となります。意図的に行うとき以外はポートによる出力を停止させ
ておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
P84
116
I2C バス用クロック入出力端子です。この機能は I2C が動作許可のとき
に有効となります。意図的に行うとき以外はポートによる出力を停止さ
せておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
P83
115
UART4 のクロック入出力です。この機能は UART4 のクロック出力指定
が許可のときに有効となります。
汎用入出力ポートです。
P82
114
UART4 のデータ出力です。この機能は UART4 のデータ出力指定が許可
のときに有効となります。
I2C バス用データ入出力端子です。この機能は I2C が動作許可のときに
有効となります。意図的に行うとき以外はポートによる出力を停止させ
ておく必要があります ( 疑似オープンドレイン出力 )。
汎用入出力ポートです。
13
第 1 章 概要
表 1.5-1 端子機能一覧 (6 / 10)
端子名
入出力
回路
SCL3
120
K
P94
K
SCL4
K
SDA4
K
128 ∼
131
NMI
B
NMI(Non Maskable Interrupt) 入力です。
G
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
INT0 ∼
INT3
PA0 ∼
PA3
汎用入出力ポートです。
INT4
132
G
INT5 ∼
INT7
G
PA5 ∼
PA7
G
PB0
14
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
汎用入出力ポートです。
INT8
136
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
USB 機能が有効な場合 (MOD=0000B), INT4 機能は USB の割込み専用と
して使用されますので外部割込み端子としては使用できなくなります。
汎用入出力ポートです。
PA4
133 ∼
135
I2C バス用データ入出力端子です。この機能は I2C が動作許可のときに
有効となります。意図的に行うとき以外はポートによる出力を停止させ
ておく必要があります ( 疑似オープンドレイン出力 ) 。
汎用入出力ポートです。
P97
127
I2C バス用クロック入出力端子です。この機能は I2C が動作許可のとき
に有効となります。意図的に行うとき以外はポートによる出力を停止さ
せておく必要があります ( 疑似オープンドレイン出力 ) 。
汎用入出力ポートです。
P96
123
I2C バス用データ入出力端子です。この機能は I2C が動作許可のときに
有効となります。意図的に行うとき以外はポートによる出力を停止させ
ておく必要があります ( 疑似オープンドレイン出力 ) 。
汎用入出力ポートです。
P95
122
I2C バス用クロック入出力端子です。この機能は I2C が動作許可のとき
に有効となります。意図的に行うとき以外はポートによる出力を停止さ
せておく必要があります ( 疑似オープンドレイン出力 ) 。
汎用入出力ポートです。
SDA3
121
機能
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能一覧 (7 / 10)
端子名
入出力
回路
INT9
137
G
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
INT10
G
ATRG
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
INT11
G
FRCK
PB3
ICU0 ∼
ICU3
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
G
PB4 ∼
PB7
145
フリ−ランタイマの外部クロック入力端子です。フリーランタイマの外
部クロック入力端子として使用した場合は , この入力を随時使用してい
ますので意図的に行うとき以外はポートによる出力を停止させておく
必要があります。
汎用入出力ポートです。
INT12
∼
INT15
140 ∼
143
A/D コンバータ外部トリガ入力です。A/D の起動要因として選択した場
合は , この入力を随時使用しますので意図的に行うとき以外はポートに
よる出力を停止させておく必要があります。
汎用入出力ポートです。
PB2
139
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので意図的に行うとき以外はポートによる出
力を停止させておく必要があります。
汎用入出力ポートです。
PB1
138
機能
インプットキャプチャ入力端子です。インプットキャプチャ入力として
選択した場合は , この入力を随意使用しますので意図的に行うとき以外
はポートによる出力を停止しておく必要があります。
汎用入出力ポートです。
USB の+端子です。
UDP
USB
146
149 ∼
152
153
USB の−端子です。
UDM
PPG0 ∼
PPG3
PPG ch0 ∼ ch3 のタイマ出力です。
D
PC0 ∼
PC3
汎用入出力ポートです。
TOUT0
リロードタイマ 0 のデータ出力です。この機能はポート機能レジスタで
リロードタイマ 0 のデータ出力指定が許可のときに有効となります。
TRG0
PC4
D
PPG0 タイマの外部トリガ入力です。対応するタイマ入力を許可してい
る間は , この入力を随時使用していますので意図的に行うとき以外は
ポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
15
第 1 章 概要
表 1.5-1 端子機能一覧 (8 / 10)
端子名
入出力
回路
TOUT1
154
D
リロードタイマ 2 のデータ出力です。この機能はポート機能レジスタで
リロードタイマ 2 のデータ出力指定が許可のときに有効となります。
TOUT2
IOWR
D
DMA フライバイ転送時のライトストローブ出力です。この機能は DMA
フライバイ転送ライトストローブ出力指定が許可のときに有効となり
ます。
PC6
汎用入出力ポートです。
RIN
PWC の入力です。対応する外部割込みを許可している間は , この入力
を随時使用していますので意図的に行うとき以外はポートによる出力
を停止させておく必要があります。
156
D
IORD
DREQ0
157
D
DACK0
D
DEOP0
D
DMA 外部転送終了出力です。この機能は DMA の外部転送終了出力指
定が許可のときに有効となります。
汎用入出力ポートです。
PD2
DREQ1
160
DMA 外部転送要求受付け出力です。この機能は DMA の転送要求受付
け出力指定が許可のときに有効となります。
汎用入出力ポートです。
PD1
159
DMA 外部転送要求入力です。対応する DMA 外部転送要求入力を許可
している間は , この入力を随時使用していますので意図的に行うとき以
外はポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
PD0
158
DMA フライバイ転送時のリードストローブ出力です。この機能は DMA
フライバイ転送リードストローブ出力指定が許可のときに有効となり
ます。
汎用入出力ポートです。
PC7
16
リロードタイマ 1 のデータ出力です。この機能はポート機能レジスタで
リロードタイマ 1 のデータ出力指定が許可のときに有効となります。
汎用入出力ポートです。
PC5
155
機能
D
DMA 外部転送要求入力です。対応する DMA 外部転送要求入力を許可
している間は , この入力を随時使用していますので意図的に行うとき以
外はポートによる出力を停止させておく必要があります。
USB を使用する場合は , 本機能 (DMAC ch1) は USB のデータ転送とし
て使用されますので使用できなくなります。DREQ2 入力は無効となり
ます。
TIN0
リロードタイマ入力です。対応するタイマ入力を許可している間は , こ
の入力を随時使用していますので意図的に行うとき以外はポートによ
る出力を停止させておく必要があります。
PD3
汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能一覧 (9 / 10)
端子名
入出力
回路
DACK1
161
D
機能
DMA 外部転送要求受付け出力です。この機能は DMA の転送要求受付
け出力指定が許可のときに有効となります。
USB を使用する場合は , 本機能 (DMAC ch1) は USB のデータ転送とし
て使用されますので使用できなくなります。DMA の外部転送 ACK 出
力指定を禁止にしてください。
TIN1
リロードタイマ入力です。対応するタイマ入力を許可している間は , こ
の入力を随時使用していますので意図的に行うとき以外はポートによ
る出力を停止させておく必要があります。
PD4
汎用入出力ポートです。
DEOP1
162
D
DMA 外部転送終了出力です。この機能は DMA の外部転送終了出力指
定が許可のときに有効となります。
USB を使用する場合は , 本機能 (DMAC ch1) は USB のデータ転送とし
て使用されますので使用できなくなります。DMA の外部転送 EOP 出力
指定を禁止にしてください。
TIN2
リロードタイマ入力です。対応するタイマ入力を許可している間は , こ
の入力を随時使用していますので意図的に行うとき以外はポートによ
る出力を停止させておく必要があります。
PD5
汎用入出力ポートです。
DREQ2
163
D
PPG1 の外部トリガ入力です。対応するタイマ入力を許可している間
は , この入力を随時使用していますので意図的に行うとき以外はポート
による出力を停止させておく必要があります。
TRG1
汎用入出力ポートです。
PE0
DACK2
164
D
TRG2
PE1
DMA 外部転送要求入力です。対応する DMA 外部転送要求入力を許可
している間は , この入力を随時使用していますので意図的に行うとき以
外はポートによる出力を停止させておく必要があります。
USB を使用する場合は , 本機能 (DMAC ch2) は USB のデータ転送とし
て使用されますので使用できなくなります。DREQ2 入力は無効となり
ます。
DMA 外部転送要求受付け出力です。この機能は DMA の転送要求受付
け出力指定が許可のときに有効となります。
USB を使用する場合は , 本機能 (DMAC ch2) は USB のデータ転送とし
て使用されますので使用できなくなります。DMA の外部転送 ACK 出
力指定を禁止にしてください。
PPG2 の外部トリガ入力です。対応するタイマ入力を許可している間
は , この入力を随時使用していますので意図的に行うとき以外はポート
による出力を停止させておく必要があります。
汎用入出力ポートです。
17
第 1 章 概要
表 1.5-1 端子機能一覧 (10 / 10)
入出力
回路
端子名
DEOP2
165
D
TRG3
PE2
機能
DMA 外部転送終了出力です。この機能は DMA の外部転送終了出力指
定が許可のときに有効となります。
USB を使用する場合は , 本機能 (DMAC ch2) は USB のデータ転送とし
て使用されますので使用できなくなります。DMA の外部転送 EOP 出力
指定を禁止にしてください。
PPG3 の外部トリガ入力です。対応するタイマ入力を許可している間
は , この入力を随時使用していますので意図的に行うとき以外はポート
による出力を停止させておく必要があります。
汎用入出力ポートです。
表 1.5-2 端子機能一覧 ( 電源・GND 端子 )
端子名
18
機能
GND 端子です。すべて同電位でお使いください。
2, 13, 34, 53, 65, 97,
125, 147, 167
VSS
3, 14, 35, 54, 67, 98,
126, 148, 168
VDDI
1.8V 系電源端子です。すべて同電位でお使いください。
1, 12, 33, 52, 63, 96,
124, 144, 166
VDDE
3.3V 系電源端子です。すべて同電位でお使いください。
73
AVCC
A/D コンバータ用アナログ電源端子です。
74
AVRH
A/D コンバータ用の基準電源端子です。
75
AVSS
A/D コンバータ用アナログ GND 端子です。
第 1 章 概要
1.6
入出力回路形式
MB91305 の入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 5)
分類
A
回路形式
備考
発振帰還抵抗 約 1MΩ
X1
クロック入力
X0
スタンバイ制御
B
プルアップ抵抗付き
CMOS レベルヒステリシス入力
プルアップ抵抗値=約 33kΩ (Typ)
デジタル入力
C
• CMOS レベル入出力
スタンバイ制御あり
• IOL= 4mA
デジタル出力
デジタル出力
デジタル入力
スタンバイ制御
19
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 5)
分類
回路形式
備考
D
デジタル出力
• CMOS レベル出力
CMOS レベルヒステリシス入力
スタンバイ制御あり
• IOL= 4mA
デジタル出力
デジタル入力
スタンバイ制御
E
CMOS レベル入力
スタンバイ制御なし
デジタル入力
F
デジタル出力
デジタル出力
アナログ入力
デジタル入力
スタンバイ制御
20
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御あり
• アナログ入力付き
• IOL= 4mA
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 5)
分類
G
回路形式
備考
プルアップ制御
デジタル出力
• プルアップコントロール付き
• プルアップ抵抗値=約 33kΩ
(Typ)
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御なし
• IOL= 4mA
デジタル出力
デジタル入力
H
CMOS レベル出力
デジタル出力
デジタル出力
I
CMOS レベルヒステリシス入力
スタンバイ制御なし
デジタル入力
J
CMOS ヒステリシス入力
プルダウン抵抗付き
デジタル入力
21
第 1 章 概要
表 1.6-1 入出力回路形式 (4 / 5)
分類
回路形式
備考
K
オープンドレイン制御
I2C 用 3 ポート
CMOS ヒステリシス入力
CMOS 出力
ストップ制御付き
デジタル出力
デジタル入力
制御
デジタル入力
制御
オープンドレイン制御
デジタル出力
デジタル入力
オープンドレイン制御
デジタル出力
L
プルダウン制御
デジタル出力
デジタル出力
デジタル入力
22
CMOS 入出力
プルダウン制御付き
第 1 章 概要
表 1.6-1 入出力回路形式 (5 / 5)
分類
回路形式
備考
M
アナログ端子
アナログ入力
23
第 1 章 概要
24
第2章
デバイスの取扱いについて
MB91305 の取扱い上の注意について説明します。
2.1 デバイスの取扱いについて
25
第 2 章 デバイスの取扱いについて
2.1
デバイスの取扱いについて
ラッチアップ防止 , 端子処理 , 電源投入 / 切断時の注意事項 , クロックおよび制限事
項について説明します。
■ ラッチアップ防止のために
CMOS IC では , 入力端子や出力端子に VDDE 端子または VDDI 端子より高い電圧や
VSS より低い電圧を印加した場合 , または VDDE 端子と VSS 端子との間または VDDI
端子と VSS 端子との間に定格を超える電圧を印加した場合に , ラッチアップ現象を生
じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に至る
ことがありますので使用に際しては最大定格を超えることのないよう十分に注意して
ください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンの処理をしてください。
■ 電源端子について
VDDE 端子または VDDI 端子 , VSS 端子が複数ある場合 , デバイス設計上はラッチアッ
プなどの誤動作を防止するためにデバイス内部で同電位にすべきものどうしを接続し
てありますが , 不要輻射の低減・グランドレベルの上昇によるストローブ信号の誤動作
の防止・総出力電流規格の遵守などのため , 必ずそれらすべてを外部で電源およびグラ
ンドに接続してください。また , 電流供給源からできる限り低インピーダンスで本デバ
イスの VDDE 端子または VDDI 端子 , VSS 端子に接続するような配慮をお願いします。
さらに , 本デバイスの近くで , VDDE 端子と VSS 端子との間または VDDI 端子と VSS 端
子との間に0.1 µF程度のセラミックコンデンサをバイパスコンデンサとして接続するこ
とをお勧めします。
■ 水晶発振回路について
X0 端子 , X1 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 端子 ,
X1 端子および水晶発振子 ( あるいはセラミック発振子 ), さらにグランドへのバイパス
コンデンサはできる限り近くに配置するようにプリント板を設計してください。また ,
X0 端子 , X1 端子の周りをグランドで囲むようなプリント板アートワークは安定した動
作を期待できますので , 強くお勧めします。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
■ モード端子 (MD0 ∼ MD3) について
これらの端子は , ノイズにより誤ってテストモードに入ってしまうことを防ぐために ,
VDDE 端子用の電源または VSS 端子用電源との間のパターン長をできる限り短く , 低
インピーダンスで接続するようにしてください。
■ ツールリセット端子 (TRST) について
この端子はツールを使用しない場合 , 必ず INIT 端子と同じ信号を入力してください。
量産品におきましても同様な処理をお願いします。
26
第 2 章 デバイスの取扱いについて
■ 電源投入時について
電源投入直後は , 必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
■ 電源投入時の原発振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間 , クロックを入力してください。
■ 電源投入 / 切断時の注意事項
● VDDI 端子の電源と VDDE 端子の電源の電源投入 / 切断時の注意事項
VDDI 端子の電源が切断されている条件で VDDE 端子の電源のみを継続的 (1 分間を目
安 ) に印加することは , LSI の信頼性上の問題がありますので避けてください。
VDDE 端子の電源を OFF 状態から ON 状態に復帰させる際には , 電源ノイズなどの影
響により , 回路の内部状態が保持できない場合があります。
投入時
VDDI 端子の電源→ アナログ→ VDDE 端子の電源→信号
切断時
信号→ VDDE 端子の電源→アナログ→ VDDI 端子の電源
● 電源投入時の不定出力について
電源投入時は内部電源が安定するまでの間 , 出力端子が不定となる可能性があります。
■ クロックについて
● 外部クロック使用時の注意について
外部クロックを使用する際には , X0 端子のみの供給で使用できます。X1 端子は開放と
してください。
下図に , 外部クロック使用方法例について示します。
図 2.1-1 外部クロック使用方法
X0
開放 X1
MB91305
<注意事項>
X0 端子の信号に対して X1 端子は , 10MHz のときに 15ns 以内の遅延となるように設計し
てください。
■ 制限事項
○ MB91305 共通
● クロック制御部
INIT 端子への "L" 入力時には , 発振安定待ち時間を確保してください。
● ビットサーチモジュール
0 検出用データレジスタ (BSD0) , 1 検出用データレジスタ (BSD1) , 変化点検出用デー
タレジスタ ( BSDC) はワードアクセスのみです。
27
第 2 章 デバイスの取扱いについて
● I/O ポート
ポートへのアクセスはバイトアクセスのみです。
● 低消費電力モード
• スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカ
ウンタ制御レジスタの bit 8:SYNCS ビットにて設定します ) を使用した上で , 以下
のシーケンスを必ず使用してください。
/* STCR ライト */
; STCR レジスタ (0x0481)
ldi
#_STCR, r0
ldi
#Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ
stb
rl, @r0
; STCR へのライト
/* CTBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl, @r2
; CTBR への A5H ライト
ldi
#0x5A, rl
; クリアコマンド (2)
stb
rl, @r2
; CTBR への 5AH ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用 NOP × 5
nop
nop
nop
nop
• モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対して , ブレークポイントを設定
- 上記命令列に対して , ステップ実行
28
第 2 章 デバイスの取扱いについて
● プリフェッチ
リトルエンディアンに設定した領域に対して , プリフェッチを許可する場合 , 該当する
領域へのアクセスは , ワード (32 ビット ) 長アクセス限定としてください。
バイト / ハーフワードアクセスでは , 正しくアクセスできません。
● PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり
する場合があります。
いずれの場合も , EIT から復帰後以降に , 正しく再処理を行うように設計されています
ので , EIT 前後の動作は仕様どおりの処理を行います。
1. DIVOU/DIVOS 命令の直前の命令で , (a) ユーザ割込みを受け付けた場合 , (b) ステッ
プ実行を行った場合, (c)データイベントまたはエミュレータメニューにてブレーク
した場合 , 以下のような動作を行う場合があります。
(1) D0, D1 フラグが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIVOU/DIVOS 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR,
STILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EIT から復帰後 , 上記命令が実行され , PS レジスタが (1) と同じ値に更新されま
す。
● ウォッチドッグタイマ機能について
本品種が備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリセッ
ト延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われ
なかったときに , CPU をリセットするための機能です。そのため , いったんウォッチ
ドッグタイマ機能を有効にすると , リセットをかけるまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については , ウォッチドッグタイマの機能説明の項を
参照してください。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット
が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセット (INIT) をかけ
てください。
● A/D 使用時の注意について
MB91305 は A/D コンバータを内蔵しておりますが , その AVCC 端子には VDDE 端子
より高い電圧を供給しないでください。
29
第 2 章 デバイスの取扱いについて
● 同期モードのソフトウェアリセットについて
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス
タ ) の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。
•
割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定します。
•
NMI を使用しません。
● ソフトウェアブレークとユーザ割込み /NMI 同時発生
ソフトウェアブレークとユーザ割込み /NMI が同時に発生した場合 , エミュレータデ
バッガにて , 以下の現象が発生することがあります。
• 設定したブレークポイントでないところを示して停止します。
• 停止後の再実行が正しく行われません。
本現象が発生した場合は , ソフトウェアブレークではなく , ハードウェアブレークをご
使用ください。また , モニタデバッガをご使用の場合は , 該当箇所にブレークを設定し
ないようにしてください。
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後に
該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチンや割
込みレベルの低いプログラムの実行が行われなくなります。これを回避するためには ,
RETI 命令をステップ実行しないでください。また , 該当割込みルーチンのデバッグが
不要になった段階で , 該当割込みを禁止してデバッグを行ってください。
● オペランドブレークについて
スタックポインタのアドレスを含む領域に対するアクセスをデータイベントブレーク
の対象に設定しないでください。
● コンフィグレーション用バッチファイル例
内部 RAM にプログラムをダウンロードしてデバッグを実行する場合 , リセットをかけ
た後は必ず下記バッチファイルを実行してください。
#---------------------------------------------------------------------------# Set MODR (0x7fd) = Enable In memory + 16bit External Bus
set mem/byte 0x7fd=0x5
#------------------------------------------------------------------------------
30
第3章
CPU および制御部
FR ファミリの CPU コアの機能を知るために ,
アーキテクチャ , 仕様 , 命令などの基本的なことに
ついて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 命令キャッシュ
3.4 プログラミングモデル
3.5 データ構造
3.6 メモリマップ
3.7 分岐命令
3.8 EIT ( 例外・割込み・トラップ )
3.9 動作モード
3.10 リセット ( デバイス初期化 )
3.11 クロック生成制御
3.12 デバイス状態制御
31
第 3 章 CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク
セスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
• バイトデータアクセス:000H ∼ 0FFH
• ハーフワードアクセス:000H ∼ 1FFH
• ワードデータアクセス:000H ∼ 3FFH
■ メモリマップ
図 3.1-1 に , MB91305 のメモリ空間を示します。
図 3.1-1 メモリマップ
外ROM外バスモード
0000
0000H
I/O
0000
0400H
0001
0003
0000H
0000H
0004
0005
0000H
0000H
0006
0000H
0007
0000H
I/O
ダイレクト
アドレッシング領域
I/Oマップを参照
アクセス禁止
内蔵RAM
アクセス禁止
外部領域
USBファンクション
CS2領域で固定
外部領域
FFFF FFFFH
<注意事項>
MB91305 の内蔵 RAM の領域は , "0003 0000H" ∼ "0003 FFFFH" となります。
32
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
FR ファミリの内部アーキテクチャの構造および命令概要について説明します。
■ 内部アーキテクチャの概要
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた
高機能命令を導入した高性能コアです。
33
第 3 章 CPU および制御部
3.2.1
内部アーキテクチャ
内部アーキテクチャの特長および構造について説明します。
■ 内部アーキテクチャの特長
• RISC アーキテクチャの採用
基本命令 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
32 ビット× 32 ビット乗算 5 サイクル
16 ビット× 16 ビット乗算 3 サイクル
• 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
メモリ - メモリ転送命令
ビット処理命令
• 高いコード効率
基本命令語長 16 ビット
• 低消費電力
スリープモード / ストップモード
• ギア機能
34
第 3 章 CPU および制御部
■ 内部アーキテクチャの構造
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。
ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ
スコントローラとのインタフェースを実現します。
図 3.2-1 に内部アーキテクチャの構造を示します。
図 3.2-1 内部アーキテクチャの構造
FRex CPU
D-bus
I-bus
32
Iアドレス
ハーバード
32
外部アドレス
24
Iデータ
外部データ
32
Dアドレス
16
プリンストン
バス
Dデータ
32
32ビット
アドレス
32
16ビット
データ
32
コンバータ
バスコンバータ
16
F-bus
R-bus
周辺リソース
内部I/O
バスコントローラ
F-bus RAM
35
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインクリメントしたもの
です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採
用しています。パイプラインは以下のステージから構成されています。
図 3.2-2 に , 命令パイプラインの構成を示します。
• 命令フェッチ (IF) ……命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID) ……フェッチした命令をデコードします。レジスタの読出しも行
います。
• 実行 (EX)……………… 演算を実行します。
• メモリアクセス (MA)…メモリに対するロードまたはストアのアクセスを行います。
• ライトバック (WB) ……演算結果 (またはロードされたメモリデータ) をレジスタに
書き込みます。
図 3.2-2 命令パイプライン
CLK
命令1
WB
命令2
MA
WB
命令3
EX
MA
WB
命令4
ID
EX
MA
WB
命令5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
■ 32 ビット←→ 16 ビットバスコンバータ
32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と ,
16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回
路へのデータアクセスを実現します。
CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ
れを 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部
にはアクセス幅に関して制限のあるものがあります。
36
第 3 章 CPU および制御部
■ ハーバード←→プリンストン バスコンバータ
ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ
スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
37
第 3 章 CPU および制御部
3.2.2
命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理
演算とビット操作およびダイレクトアドレッシング命令をサポートしています。命
令セットの一覧は「付録 F 命令一覧」に示します。
各命令は 16 ビット長 ( 一部命令は 32 ビット , 48 ビット長 ) ですので , 優れたメモ
リ使用効率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
■ 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。さらに , 32 ビット×
32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算
命令を持ちます。また , レジスタに即値をセットする即値転送命令や , レジスタ間転送
命令も備えています。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
■ ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
■ 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては後述します。
■ 論理演算とビット操作
論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( およ
び I/O) の内容を直接操作することができます。
メモリアドレッシングは一般的なレジスタ間接です。
38
第 3 章 CPU および制御部
■ ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については
レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも
可能です。
■ その他の命令概要
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
39
第 3 章 CPU および制御部
3.3
命令キャッシュ
命令キャッシュの概要 , 各動作モード , キャッシュ可能領域 , および I-Cache 使
用時の設定方法について説明します。
■ 命令キャッシュの概要
命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセス
する場合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降のアク
セス速度を速めるために使用します。
40
第 3 章 CPU および制御部
3.3.1
概要
命令キャッシュの構成 , およびレジスタ構成について説明します。
命令キャッシュデータ RAM は , RAM モードに設定することによりソフトウェアで直
接リード・ライトアクセスができるようになります。また , 命令キャッシュを一度 ON
してから OFF にする場合には , 必ず「3.3.4 I-Cache を使用するときの設定方法」に記
載されているサブルーチンをご使用ください。
■ 本体構成
• FR ファミリの基本命令長 : 2 バイト
• ブロックの配置方式 : 2 ウェイセットアソシアティブ方式
• ブロック : 1 ウェイは 128 ブロック構成
1 ブロックは 16 バイト (= 4 サブブロック )
1 サブブロックは 4 バイト (= 1 バスアクセス単位 )
図 3.3-1 に命令キャッシュの構成を , また図 3.3-2 に命令キャッシュタグを示します。
図 3.3-1 命令キャッシュの構成
4 バイト
ウェイ 1
4 バイト
I3
4 バイト
I2
4 バイト
I1
4 バイト
I0
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
・
・
・
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 127
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
128 ブロック
ウェイ 2
・
128 ブロック ・
・
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 127
41
第 3 章 CPU および制御部
図 3.3-2 命令キャッシュタグ
ウェイ 1
31
9
8
アドレスタグ
空き
07
06
05
04
03
02
01
00
SBV3 SBV2 SBV1 SBV0 TAGV 空き LRU ETLK
ウェイ 2
31
9
8
アドレスタグ
空き
07
06
05
04
03
02
SBV3 SBV2 SBV1 SBV0 TAGV
01
空き
00
ETLK
[bit 31 ∼ bit 9] アドレスタグ
対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット
がストアされています。
ブロック i のサブブロック k に格納されている命令データのメモリアドレス IA は ,
IA =アドレスタグ × 29 + i × 24 + k × 22
となります。
CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ
グ検査の結果に従い , 以下のような動作をします。
• 要求された命令データがキャッシュ内に存在するとき ( ヒット ) , キャッシュか
ら CPU へサイクル内にデータを転送します。
• 要求された命令データがキャッシュ内に存在しないとき ( ミス ) , 外部アクセス
で取得されたデータを CPU とキャッシュが同時に取得します。
[bit 7 ∼ bit 4] SBV3 ∼ SBV0 : サブブロックバリッド
SBV3 ∼ SBV0 = 1 のとき , 対応するサブブロックにタグで示されたアドレスの現
行命令データがエントリされています。サブブロックには , 通常 2 命令が格納され
ます ( 即値転送命令を除く ) 。
[bit 3] TAGV : TAG バリットビット
アドレスタグの値が有効かどうかを示します。このビットが"0"のときはサブバリッ
トビットとは無関係に , このブロックはインバリット状態になります ( フラッシュ
時)。
[bit 1] LRU ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にアクセスしたエントリがウェイ 1, 2 のどちらであるかを示します。LRU = 1 の
ときはウェイ 1 の , LRU = 0 のときはウェイ 2 のセットのエントリが最後にアクセ
スしたことを示します。
42
第 3 章 CPU および制御部
[bit 0] ETLK : エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK = 1
のときにロック状態で , キャッシュミス時にエントリは更新されません。ただし ,
無効なサブブロックは更新されます。
ウェイ 1, 2 ともにエントリロックされているときにキャッシュミスした場合は ,
キャッシュミス判定の 1 サイクルをロスした後 , 外部メモリをアクセスします。
■ 制御レジスタ構成
● ISIZE :I-cache SIZE
ISIZE レジスタのレジスタ構成は , 以下のとおりです。
図 3.3-3 ISIZE
ISIZE
bit
7
6
5
4
3
2
アドレス 00000307H
-
-
-
-
-
-
SIZE1 SIZE0 ------10B
-
-
-
-
-
-
(R/W) (R/W)
1
0
初期値
[R/W]
[bit 1, bit 0] SIZE1, SIZE0
キャッシュ容量を設定するビットです。設定によりキャッシュサイズと IRAM 容量 ,
RAM モード時のアドレスマップが図 3.3-5 のように変化します。キャッシュ容量を
変更した場合は , 必ずフラッシュおよびエントリロック解除を行ってからキャッ
シュ ON にしてください。
表 3.3-1 SIZE1,SIZE0 設定およびキャッシュ容量値
SIZE1
SIZE0
0
0
1K バイト
0
1
2K バイト
1
0
4K バイト ( 初期値 )
1
1
設定禁止
キャッシュ容量
● ICHCR : I-CacHe Control Register
ICHCR(I-CacHe Control Register) は , 命令キャッシュの動作を制御します。
ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に
影響を与えません。
ICHCR レジスタのレジスタ構成は , 以下のとおりです。
図 3.3-4 ICHCR
ICHCR
bit
アドレス 000003E7H
7
6
5
4
3
2
1
0
初期値
RAM
-
GBLK
ALFL
EOLK
ELKR
FLSH
ENAB 0-000000B
(R/W)
-
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
[R/W]
43
第 3 章 CPU および制御部
[bit 7] RAM:RAM モード
"1" で RAM モードとして動作します。
RAM モード時は , ENAB が "0" でキャッシュ
オフとしてください。
[bit 5] GBLK: グローバルロック
すべてのカレントエントリをキャッシュにロックします。
GBLK = 1 のとき , キャッ
シュ内の有効なエントリはミス時に更新されません。ただし , 無効なサブブロック
は更新されます。その際の命令データフェッチ動作は , ロックしていないときと同
様です。
[bit 4] ALFL: オートロックフェイル
既にロックしているエントリをさらにロックしようとすると ALFL = 1 にセットさ
れます。エントリオートロック中のエントリの更新が , 既にロックされているエン
トリに対して行われようとしたとき , ユーザの意図に反して新たなエントリは
キャッシュ中にロックされません。このようなプログラムのデバッグのために参照
します。"0" 書込みでクリアされます。
[bit 3] EOLK: エントリオートロック
命令キャッシュ内の各エントリに対して , オートロッキングの有効・無効を切り換
えます。EOLK = 1 のときにアクセス ( ミス時のみ ) されたエントリは , キャッシュ
タグ内のエントリロックビットがハードウェアで "1" にセットされることにより
ロックされます。ロックされたエントリは以後 , キャッシュミス時の更新の対象に
なりません。ただし , 無効なサブブロックは更新されます。確実にロックするため
には一度フラッシュした後 , このビットをセットしてください。
[bit 2] ELKR: エントリロック解除
すべてのキャッシュタグ中のエントリロックビットのクリアを指定します。ELKR = 1
にセットされた次のサイクルで , すべてのキャッシュタグ中のエントリロックビッ
トが "0" にクリアされます。ただし , 本ビットの内容が保持されるのは 1 クロック
サイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。
[bit 1] FLSH: フラッシュ
命令キャッシュのフラッシュを指定します。FLSH = 1 のとき , キャッシュの内容
がフラッシュされます。ただし , 本ビットの内容が保持されるのは 1 クロックサイ
クルのみであり , 2 クロックサイクル以降は "0" にクリアされます。
[bit 0] ENAB: イネーブル
命令キャッシュのイネーブル・ディセーブルを切り換えます。ENAB = 0 のとき
ディセーブル状態で , CPU からの命令アクセスは , キャッシュを介さず外部に対し
て直接行われます。ディセーブル状態では , キャッシュの内容は保存されます。
44
第 3 章 CPU および制御部
図 3.3-5 RAM のアドレスマップ
キャッシュ off キャッシュ off
RAM on
RAM off
00010000 H
00010200 H
00010400 H
00010600 H
00010800 H
…
00014000 H
00014200 H
00014400 H
00014600 H
00014800 H
…
00018000 H
00018200 H
00018400 H
00018600 H
00018800 H
…
0001C000 H
0001C200 H
0001C400 H
0001C600 H
0001C800 H
キャッシュ
4Kバイト
RAM off
キャッシュ
4Kバイト
RAM on
TAG1
キャッシュ
2Kバイト
RAM off
TAG1
キャッシュ
2Kバイト
RAM on
キャッシュ
1Kバイト
RAM off
キャッシュ
1Kバイト
RAM on
TAG1
TAG1
<TAG1>
<TAG1>
<TAG1>
<TAG1>
<TAG1>
<TAG1>
TAG2
<TAG1>
<TAG1>
TAG2
TAG2
TAG2
<TAG2>
<TAG2>
<TAG2>
<TAG2>
<TAG2>
IRAM1
<TAG2>
<TAG2>
$RAM1
$RAM1
<IRAM1>
<$RAM1>
<$RAM1>
IRAM2
$RAM2
$RAM2
<IRAM2>
<$RAM2>
<$RAM2>
TAG1…TAG RAM(way1)
$RAM1…キャッシュ RAM(way1)
TAG2…TAG RAM(way2)
$RAM2…キャッシュ RAM(way2)
<
>…ミラー領域です。
RAM ON/OFF…RAMビット= 1/0
<TAG2>
$RAM1
IRAM1
IRAM1
<IRAM1>
<$RAM1>
IRAM1
$RAM1
IRAM1
<IRAM1>
<$RAM1>
IRAM2
$RAM2
IRAM2
<IRAM2>
<$RAM2>
$RAM2
IRAM2
IRAM2
<IRAM2>
<$RAM2>
IRAM1…I-bus RAM(way1)
IRAM2…I-bus RAM(way2)
Cache RAM
TAG RAM
<-00x番地のエントリー
<-00xのミラー
00010000 H
00010004 H
00010008 H
0001000C H
00010010 H
00010014 H
…
<-01x番地のエントリー
<-01xのミラー
…
00018000 H
00018004 H
00018008 H
0001800C H
00018010 H
00018014 H
…
000番地の命令(SBV0)
004番地の命令(SBV1)
008番地の命令(SBV2)
00C番地の命令(SBV3)
010番地の命令(SBV0)
014番地の命令(SBV1)
…
図 3.3-6 各キャッシュ容量時のメモリ割当て
アドレス キャッシュ 4Kバイト キャッシュ 2Kバイト キャッシュ 1Kバイト キャッシュ OFF
$RAM1
$RAM1
$RAM1
IRAM1
00000 H
00200 H
IRAM1
00400 H
IRAM1
00600 H
$RAM2
$RAM2
IRAM2
00800 H
$RAM2
00A00 H
IRAM2
00C00 H
IRAM2
00E00 H
図 3.3-7 キャッシュ領域
アドレス
00000000 H
ROMA=0
(ROMなし)
ダイレクト領域 ダイレクト領域
00010000 H
00020000 H
00030000 H
00040000 H
IRAM
00100000 H
キャッシュ領域
FFFFFFFF H
ROMA=1
(ROMあり)
IRAM
内部ROM
チップセレクトの領域ごとに
キャッシュ領域 非キャッシュ領域に設定する
ことができます。
45
第 3 章 CPU および制御部
各動作モードの状態
3.3.2
各動作モード時のキャッシュの状態 , およびキャッシュのエントリ更新について説
明します。
■ 各動作モード時のキャッシュの状態
ディセーブル / フラッシュはビット操作命令などでそのビットだけ変化させた場合の
状態を示しています。
表 3.3-2 各動作モードの状態
リセット直後
キャッシュ メモリ
アドレスタグ
サブブロック
バリッドビット
タ
グ
LRU
エントリロック
ビット
TAG
内容は不定
内容は不定
内容は不定
内容は不定
内容は不定
内容は不定
バリッドビット
RAM
グローバル
ロック
オートロック
制
フェイル
御
エントリ
レ
オートロック
ジ
エントリロック
ス
解除
タ
イネーブル
フラッシュ
46
通常モード
アンロック
フェイルなし
アンロック
解除なし
ディセーブル
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
ディセーブル中書換え不可能
フラッシュ
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
エントリロック解除
直前の状態を保持
すべてのエントリが
ディセーブル中フラッシュ可能
インバリッド
直前の状態を保持
ディセーブル中フラッシュ可能
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
ディセーブル中書換え可能
ディセーブル
ディセーブル
フラッシュ
直前の状態を保持
しない
ディセーブル中書換え可能
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
直前の状態を保持
メモリアクセス直後の
サイクルでフラッシュ。
以後 "0" にもどる。
第 3 章 CPU および制御部
■ キャッシュのエントリ更新
キャッシュのエントリ更新は , 以下の表のように行います。
表 3.3-3 キャッシュのエントリ更新
アンロック
ロック
ヒット
更新しない
更新しない
ミス
メモリをロードし, キャッシュ タグミスの場合は更新しない。
のエントリの内容を更新する。 サブブロックインバリッドの場合は更新する。
47
第 3 章 CPU および制御部
3.3.3
命令キャッシュのキャッシュ可能領域
命令キャッシュのキャッシュ可能領域について説明します。
■ キャッシュ可能領域
• 命令キャッシュは , 内部 F-bus 空間(RAM 64K バイト)および外バス空間のみを
キャッシュ可能とします。
• DMA 転送で外部メモリの内容が更新されたとしてもキャッシュの内容とのコヒー
レンシはとりません。このような場合はキャッシュをフラッシュすることで , コ
ヒーレンシを保ってください。
• 各チップセレクトの領域ごとに非キャッシュ領域に設定することができます。この
場合でもキャッシュオフに比べて 1 サイクルのペナルティを受けます。
48
第 3 章 CPU および制御部
3.3.4
I-Cache を使用するときの設定方法
I-Cache を使用するときの設定方法について説明します。
■ I-Cache を使用するときの設定方法
● 初期化
I-Cache を使い始める一番最初はキャッシュの中身をクリアしておく必要があります。
レジスタの FLSH ビットと ELKR ビットを "1" にして , 過去のデータを消去します。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000110, r1
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1, @r0
// レジスタへ書込み
これで , キャッシュが初期化されます。
● キャッシュを有効 (ON) にする
I-Cache を有効にするには ENAB ビットを "1" にします。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000001, r1
// ENAB ビット (0 ビット )
stb
r1, @r0
// レジスタへ書込み
これ以降の命令アクセスがキャッシュに取り込まれます。
キャッシュの有効化は , キャッシュの初期化と同時に行うこともできます。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000111, r1
// ENAB ビット (0 ビット )
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1, @r0
// レジスタへ書込み
● キャッシュを無効 (OFF) にする
I-Cache を無効にするには ENAB ビットを "0" にします。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000, r1
// ENAB ビット (0 ビット )
stb
r1, @r0
// レジスタへ書込み
この状態(リセット後の状態と同じ)では, キャッシュはないのと同じで, 何もしません。
キャッシュのオーバヘッドが気になる処理のときは , OFF にしてください。
49
第 3 章 CPU および制御部
● キャッシュの内容をすべてロックする
現在 I-Cache に入っている命令がキャッシュから追い出されないようにロックします。
レジスタの GBLK ビットを "1" にします。
ENAB ビットも "1" にしておかないと , キャッ
シュが OFF になってしまい , キャッシュ内のロックした命令が使われません。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00100001, r1
// ENAB ビット (0 ビット )
// GBLK ビット (5 ビット )
stb
r1, @r0
// レジスタへ書込み
● 特定の命令をキャッシュにロックする
特定の命令群 ( サブルーチンなど ) をキャッシュにロックするには , それらの命令を実
行する前に EOLK ビットを "1" にします。
ロックした命令は高速な内部 ROM のようにアクセスされます。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00001001, r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1, @r0
// レジスタへ書込み
メモリのウェイト数によりますが , stb 命令の次以降の命令から有効になります。
ロックしたい命令群が終ったところで EOLK ビットを "0" にします。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000001, r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1, @r0
// レジスタへ書込み
● キャッシュのロックを解除する
ロックした命令のロック情報を解除します。
ldi
#0x000003e7, r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000, r1
// キャッシュディセーブル
stb
r1, @r0
// レジスタへ書込み
ldi
#0B00000100, r1
// ELKR ビット (2 ビット )
stb
r1, @r0
// レジスタへ書込み
ロック情報だけ解除されるので, ロックされていた命令は , LRUビットの状態に応じて
順次新しい命令に置き換わります。
50
第 3 章 CPU および制御部
3.4
プログラミングモデル
FR ファミリのプログラミングモデル , 汎用レジスタ , および専用レジスタについて
説明します。
■ 基本プログラミングモデル
図 3.4-1 に , FR ファミリの基本プログラミングモデルを示します。
図 3.4-1 基本プログラミングモデル
32ビット
〔初期値〕
R0
XXXX XXXXH
R1
汎用レジスタ
R12
R13
AC
R14
R15
プログラムカウンタ
PC
プログラムステータス
PS
テーブルベースレジスタ
TBR
リターンポインタ
RP
XXXX XXXXH
FP
0000 0000H
SP
ILM
SCR
CCR
システムスタックポインタ SSP
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
MDL
51
第 3 章 CPU および制御部
3.4.1
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。
各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ
れます。
■ 汎用レジスタ
図 3.4-2 に , 汎用レジスタの構成を示します。
図 3.4-2 汎用レジスタの構成
32ビット
〔初期値〕
R0
R1
R12
R13
R14
R15
XXXX XXXXH
AC
FP
SP
XXXX XXXXH
0000 0000H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ
モリアクセスのポインタとして使用されます。
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
• R13:
仮想アキュムレータ(AC)
• R14:
フレームポインタ(FP)
• R15:
スタックポインタ(SP)
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , "00000000H" (SSP の値 ) とな
ります。
52
第 3 章 CPU および制御部
3.4.2
専用レジスタ
専用レジスタは , 特定の目的のために使用します。
FR ファミリでは , 以下の専用レジスタが用意されています。
• PS (Program Status)
• CCR (Condition Code Register)
• SCR (System Condition code Register)
• ILM (Interrupt Level Mask Register)
• PC (Program Counter)
• TBR (Table Base Register)
• RP (Return Pointer)
• SSP (System Stack Pointer)
• USP (User Stack Pointer)
• MDH, MDL (Multiply & Divide register: 乗除算結果レジスタ )
■ PS (Program Status)
PS は , プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパー
トに分かれています。
未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
PS(Program Status) のレジスタ構成は , 以下のとおりです。
図 3.4-3 PS(Program Status) のレジスタ構成
ビット位置
31
16
20
ILM
10 8 7
SCR
0
CCR
53
第 3 章 CPU および制御部
■ CCR (Condition Code Register)
CCR(Condition Code Register) のレジスタ構成は , 以下のとおりです。
図 3.4-4 CCR (Condition Code Register) のレジスタ構成
ビット位置→
7
6
5
4
3
2
1
0
[ 初期値 ]
-
-
S
I
N
Z
V
C
--00XXXXB
[bit 5] S: スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内 容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります
( ただし , スタックに退避される値はクリアされる前の値です ) 。
1
USP が R15 として使用されます。
• リセットにより "0" にクリアされます。
• RETI 命令実行時は "0" に設定してください。
[bit 4] I: 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内 容
0
ユーザ割込みを禁止します。
INT 命令実行時 , "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です ) 。
1
ユーザ割込みを許可します。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御され
ます。
リセットにより "0" にクリアされます。
[bit 3] N: ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内 容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
54
第 3 章 CPU および制御部
[bit 2] Z: ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内 容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
[bit 1] V: オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内 容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[bit 0] C: キャリフラグ
演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示しま
す。
値
内 容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
55
第 3 章 CPU および制御部
■ SCR (System Condition code Register)
SCR(System Condition code Register) のレジスタ構成は , 以下のとおりです。
図 3.4-5 SCR (System Condition code Register) のレジスタ構成
ビット位置→
10
9
8
[ 初期値 ]
D1
D0
T
XX0B
[bit 10, bit 9] D1,D0: ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中は変更しないでください。ステップ除算実行途中にほかの処理
を行う場合は , PS レジスタの値を退避・復帰することによりステップ除算の再開が
保証されます。
• リセットによる初期状態は不定です。
• DIV0S 命令の実行により被除数と除数を参照して設定されます。
• DIV0U 命令の実行により , 強制的にクリアされます。
[bit 8] T: ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内 容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま
す。
• リセットにより "0" に初期化されます。
• ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使
用時に , ユーザプログラム中で使用することはできません。
56
第 3 章 CPU および制御部
■ ILM (Interrupt Level Mask Register)
ILM のビット構成は , 以下のとおりです。
図 3.4-6 ILM (Interrupt Level Mask Register) のビット構成
ビット位置→
20
19
18
17
16
[ 初期値 ]
ILM4
ILM3
ILM2
ILM1
ILM0
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で対応する割込みレベルが , この ILM で示されるレ
ベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。
• 元の値が 16 ∼ 31 のとき:
新たな値として設定できるのは 16 ∼ 31 です。
0 ∼ 15 を設定する命令を実行すると ,
( 指定した値+ 16) という値が転送されます。
• 元の値が 0 ∼ 15 のとき:
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15(01111B) に初期化されます。
■ PC (Program Counter)
PC(Program Counter) のレジスタ構成は , 以下のとおりです。
図 3.4-7 PC (Program Counter) のレジスタ構成
ビット位置→ 31
PC
0
[ 初期値 ]
XXXXXXXXH
[bit 31 ∼ bit 0]
プログラムカウンタで実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit 0 は "0" に設定されます。bit 0 が "1" になる可
能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし ,
その場合でも bit 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があります。
リセットによる初期値は不定です。
57
第 3 章 CPU および制御部
■ TBR (Table Base Register)
TBR(Table Base Register) のビット構成は , 以下のとおりです。
図 3.4-8 TBR (Table Base Register) のレジスタ構成
ビット位置→ 31
0
[ 初期値 ]
000FFC00H
TBR
[bit 31 ∼ bit 0]
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , "000FFC00H" です。
■ RP (Return Pointer)
RP(Return Pointer) のレジスタ構成は , 以下のとおりです。
図 3.4-9 RP (Return Pointer) のレジスタ構成
ビット位置→ 31
0
[ 初期値 ]
XXXXXXXXH
RP
[bit 31 ∼ bit 0]
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RETI 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ SSP (System Stack Pointer)
SSP(System Stack Pointer) のレジスタ構成は , 以下のとおりです。
図 3.4-10 SSP (System Stack Pointer) のレジスタ構成
ビット位置→ 31
SSP
0
[ 初期値 ]
00000000H
[bit 31 ∼ bit 0]
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。また , EIT 発生時に , PS と PC を退避するス
タックを指定するスタックポインタとしても使用されます。
リセットによる初期値は "00000000H" です。
58
第 3 章 CPU および制御部
■ USP (User Stack Pointer)
USP(User Stack Pointer) のレジスタ構成は , 以下のとおりです。
図 3.4-11 USP (User Stack Pointer) のレジスタ構成
ビット位置→ 31
0
[ 初期値 ]
XXXXXXXXH
USP
[bit 31 ∼ bit 0]
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
■ MDH,MDL (Multiply & Divide register: 乗除算結果レジスタ )
MDH, MDL (Multiply & Divide register: 乗除算結果レジスタ ) のビット構成は , 以下のと
おりです。
図 3.4-12 MDH,MDL (Multiply & Divide register: 乗除算結果レジスタ ) のビット構成
ビット位置→ 31
0
[ 初期値 ]
MDH
XXXXXXXXH
MDL
XXXXXXXXH
[bit 31 ∼ bit 0]
乗除算用のレジスタで , 各々 32 ビット長です。
リセットによる初期値は不定です。
• 乗算実行時:
32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除
算結果格納レジスタに格納されます。
MDH……上位 32 ビット
MDL……下位 32 ビット
16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。
MDH……不定
MDL……結果 32 ビット
• 除算実行時:
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果
が MDL と MDH に格納されます。
MDH……剰余
MDL……商
59
第 3 章 CPU および制御部
データ構造
3.5
FR ファミリのデータ構造について説明します。
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.5-1 に , ビットオーダリングのデータ配置を示します。
図 3.5-1 ビットオーダリングのデータ配置
bit
31
29
30
27
28
25
26
23
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
7
8
5
6
MSB
3
4
1
2
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.5-2 に , バイトオーダリングのデータ配置を示します。
図 3.5-2 バイトオーダリングのデータ配置
メモリ
bit
7
60
0
n番地
10101010
(n+1)番地
11001100
(n+2)番地
11111111
(n+3)番地
00010001
MSB
bit 31
23
10101010 11001100
LSB
15
7
0
11111111 00010001
第 3 章 CPU および制御部
■ ワードアライメント
● プログラムアクセス
FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。
PC の bit 0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。
"1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで
す。ただし , その場合でも bit 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要
があります。
奇数アドレス例外はありません。
● データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
イメントがアドレスに対して施されます。
- ワードアクセス
: アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00B")
- ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位ビットは強制的に "0")
- バイトアクセス
──
:
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。
例えば , @(R13, Ri) のアドレッシングモードの場合 , 加算前のレジスタは ( たとえ最下
位ビットが "1" であっても ) そのまま計算に使用され , 加算結果の下位ビットがマスク
されます。計算前のレジスタがマスクされるわけではありません。
[ 例 ] LD @(R13, R2), R0
R13
00002222H
R2
00000003H
加算結果
アドレス端子
00002225H
下位2ビット強制マスク
00002224H
61
第 3 章 CPU および制御部
3.6
メモリマップ
FR ファミリのメモリマップについて説明します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.6-1 に , メモリマップを示します。
図 3.6-1 メモリマップ
0000 0000H
バイト
データ
0000 0100H
ハーフワード
データ
0000 0200H
ダイレクト
アドレッシング領域
ワードデータ
0000 0400H
000F FC00H
ベクタテーブル
初期領域
000F FFFFH
FFFF FFFFH
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ
(8 ビット )
……000H ∼ 0FFH
• ハーフワードデータ
(16 ビット ) ……000H ∼ 1FFH
• ワードデータ
(32 ビット ) ……000H ∼ 3FFH
● ベクタテーブル初期領域
"000FFC00H" ∼ "000FFFFFH" の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
62
第 3 章 CPU および制御部
3.7
分岐命令
FR ファミリの分岐命令について説明します。
■ 分岐命令の概要
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指
定することができます。
63
第 3 章 CPU および制御部
3.7.1
遅延スロット付き動作
分岐命令に遅延スロット付き動作を指定した場合について説明します。
■ 遅延スロット付き動作の命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D
@Ri
CALL:D label12
CALL:D @Ri
RET:D
BRA:D
label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
■ 遅延スロット付き動作の動作説明
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」とよびます ) に置かれた命令を実行した後に分岐します。
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置く必要があります。
[例]
;
命令の並び
ADD
R1, R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2, R3
; 遅延スロット……分岐の前に実行される
…
LABEL:ST
R3, @R4 ; 分岐先
条件分岐命令の場合 , 分岐条件が成立するかしないかにかかわらず , 遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体的な説明をします。
1. JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更
新しても影響を受けません。
[例]
LDI:32 #Label, R0
JMP:D
@R0
LDI:8
#0,
…
64
;Label に分岐
R0
; 分岐先アドレスには影響を与えない
第 3 章 CPU および制御部
2. RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
RET:D
MOV
; これより前に設定された RP の示すアドレスへ分岐
R8,
RP
; リターン動作には影響を与えない
…
3. Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
R0
BC:D
Overflow
ANDCCR #0
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない
…
4. CALL:D 命令の遅延スロット中の命令で RP を参照すると , CALL:D 命令により更新
された内容が読み出されます。
[例]
CALL:D Label
MOV
RP,
;RP を更新して分岐
R0
; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き動作の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」,「a」,「b」,「c」また
は「d」と記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
● 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し
ません。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
65
第 3 章 CPU および制御部
3.7.2
遅延スロットなし動作
分岐命令に遅延スロットなし動作を指定した場合について説明します。
■ 遅延スロットなし動作の命令
以下に示す表記をした命令が遅延スロットなしの分岐動作を行います。
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
■ 遅延スロットなし動作の動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。
直後の命令が分岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2, R3
; 実行されない
R3, @R4
; 分岐先
…
LABEL
ST
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない
ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる
ことができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで実行速度とコード効率を両
立させることが可能となります。
66
第 3 章 CPU および制御部
3.8
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命
令から再実行します。
割込みとは , 実行中のコンテキストとは無関係に発生する事象です。イベント要因
は , ハードウェアです。
トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー
ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の
命令から再実行します。
■ EIT の特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
RETI 命令
67
第 3 章 CPU および制御部
3.8.1
EIT の割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
表 3.8-1 に , 各レベルの割当てを示します。
表 3.8-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
0
( システム予約 )
…
…
…
…
…
…
00011
3
( システム予約 )
00100
4
INTE 命令
ステップトレースト
ラップ
00101
5
( システム予約 )
…
…
…
…
…
…
01110
14
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
16
割込み
10001
17
割込み
…
…
…
…
…
…
11110
30
割込み
11111
31
─
備考
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムによ
り ILM に設定することはできま
せん。
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
68
第 3 章 CPU および制御部
■ I フラグ
I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit 4 と
して設けられています。
値
内 容
0
割込み禁止
INT 命令実行時 "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です )
1
割込み許可
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ ILM
ILM は , 割込みレベルマスク値を保持する PS レジスタ (20 ∼ 16) です。
CPU に入力される割込み要求の中で対応する割込みレベルが , この ILM で示されるレ
ベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指
定した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。任意の値を設定するに
は STILM 命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.8-1) が
ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したときは
マスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
69
第 3 章 CPU および制御部
3.8.2
ICR (Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ ICR レジスタ構成
ICR のレジスタ構成は , 以下のとおりです。
図 3.8-1 ICR レジスタ構成
7
アドレス:
ch00 000440H ∼
ch47 00046FH
6
5
4
3
2
1
0
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
初期値
---111111B
-
-
-
R/W
R/W
R/W
R/W
R/W
アクセス
[bit 4] ICR4
ICR4 は , 常に "1" です。
[bit 3 ∼ bit 0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。リード / ライト可能です。
bit 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ ICR マッピング
表 3.8-2 に , 割込み要因と割込み制御レジスタ , 割込みベクタの割当てを示します。
表 3.8-2 割込み要因と割込み制御レジスタ , 割込みベクタ
割込み制御レジスタ
対応する割込みベクタ
番号
割込み要因
番号
アドレス
アドレス
16 進
10 進
IRQ00
ICR00
00000440H
10H
16
TBR+3BCH
IRQ01
ICR01
00000441H
11H
17
TBR+3B8H
IRQ02
ICR02
00000442H
12H
18
TBR+3B4H
…
…
…
…
…
…
…
…
…
…
…
…
IRQ45
ICR45
0000046DH
3DH
61
TBR+308H
IRQ46
ICR46
0000046EH
3EH
62
TBR+304H
IRQ47
ICR47
0000046FH
3FH
63
TBR+300H
・TBR 初期値 :000FFC00H
・詳細は「第 6 章 割込みコントローラ」を参照してください。
70
第 3 章 CPU および制御部
3.8.3
SSP (System Stack Pointer)
SSP が , EIT の受理および復帰動作時のデータ退避・復活用スタックを示すポイン
タとして使用されます。
■ SSP (System Stack Pointer)
SSP のレジスタ構成は , 以下のとおりです。
図 3.8-2 SSP(System Stack Pointer) のレジスタ構成
31
SSP
0
[ 初期値 ]
00000000H
[bit 31 ∼ bit 0]
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
リセットによる初期値は "00000000H" です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
71
第 3 章 CPU および制御部
3.8.4
割込みスタック
SSP により示される領域で , PC および PS の値が退避・復活されます。
割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されていま
す。
■ 割込みスタック
図 3.8-3 に , 割込みスタックの例を示します。
図 3.8-3 割込みスタック
[割込み前]
SSP
80000000H
[割込み後]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
72
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
第 3 章 CPU および制御部
3.8.5
TBR (Table Base Register)
Table Base Register は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタで
す。
■ TBR(Table Base Register)
TBR のレジスタ構成は , 以下のとおりです。
図 3.8-4 TBR のレジスタ構成
31
TBR
0
[ 初期値 ]
000FFC00H
[bit 31 ∼ bit 0]
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は "000FFC00H" です。
73
第 3 章 CPU および制御部
3.8.6
EIT ベクタテーブル
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
■ EIT ベクタテーブル
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと
おりです。
vctadr =TBR + vctofs
=TBR + (3FCH – 4 × vct)
vctadr: ベクタアドレス
vctofs: ベクタオフセット
vct: ベクタ番号
加算結果の下位 2 ビットは常に "00B" として扱われます。
"000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
表 3.8-3 に , アーキテクチャ上のベクタテーブルを示します。
表 3.8-3 ベクタテーブル (1 / 3)
割込み要因
74
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
リセット *1
0
00
-
3FCH
000FFFFCH
モードベクタ *1
1
01
-
3F8H
000FFFF8H
システム予約
2
02
-
3F4H
000FFFF4H
システム予約
3
03
-
3F0H
000FFFF0H
システム予約
4
04
-
3ECH
000FFFECH
システム予約
5
05
-
3E8H
000FFFE8H
システム予約
6
06
-
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
-
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
-
3DCH
000FFFDCH
INTE 命令
9
09
-
3D8H
000FFFD8H
命令ブレーク例外
10
0A
-
3D4H
000FFFD4H
オペランドブレークトラップ
11
0B
-
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
-
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
-
3C8H
000FFFC8H
未定義命令例外
14
0E
-
3C4H
000FFFC4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (2 / 3)
割込み要因
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
(USB ファンクション )
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
マスク可能要因 *2
27
1B
ICR11
390H
000FFF90H
マスク可能要因 *2
28
1C
ICR12
38CH
000FFF8CH
マスク可能要因 *2
29
1D
ICR13
388H
000FFF88H
マスク可能要因 *2
30
1E
ICR14
384H
000FFF84H
マスク可能要因 *2
31
1F
ICR15
380H
000FFF80H
マスク可能要因 *2
32
20
ICR16
37CH
000FFF7CH
マスク可能要因 *2
33
21
ICR17
378H
000FFF78H
マスク可能要因 *2
34
22
ICR18
374H
000FFF74H
マスク可能要因 *2
35
23
ICR19
370H
000FFF70H
マスク可能要因 *2
36
24
ICR20
36CH
000FFF6CH
マスク可能要因 *2
37
25
ICR21
368H
000FFF68H
マスク可能要因 *2
38
26
ICR22
364H
000FFF64H
マスク可能要因 *2
39
27
ICR23
360H
000FFF60H
マスク可能要因 *2
40
28
ICR24
35CH
000FFF5CH
マスク可能要因 *2
41
29
ICR25
358H
000FFF58H
マスク可能要因 *2
42
2A
ICR26
354H
000FFF54H
マスク可能要因 *2
43
2B
ICR27
350H
000FFF50H
外部割込み 8
44
2C
ICR28
34CH
000FFF4CH
外部割込み 9
45
2D
ICR29
348H
000FFF48H
外部割込み 10
46
2E
ICR30
344H
000FFF44H
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
外部割込み 11
48
30
ICR32
33CH
000FFF3CH
マスク可能要因 *2
49
31
ICR33
338H
000FFF38H
マスク可能要因 *2
50
32
ICR34
334H
000FFF34H
マスク可能要因 *2
51
33
ICR35
330H
000FFF30H
マスク可能要因 *2
52
34
ICR36
32CH
000FFF2CH
マスク可能要因 *2
53
35
ICR37
328H
000FFF28H
75
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (3 / 3)
割込み要因
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
*2
54
36
ICR38
324H
000FFF24H
マスク可能要因 *2
55
37
ICR39
320H
000FFF20H
マスク可能要因 *2
56
38
ICR40
31CH
000FFF1CH
マスク可能要因 *2
57
39
ICR41
318H
000FFF18H
外部割込み 12/
マスク可能要因 *2
58
3A
ICR42
314H
000FFF14H
外部割込み 13/
マスク可能要因 *2
59
3B
ICR43
310H
000FFF10H
外部割込み 14/
マスク可能要因 *2
60
3C
ICR44
30CH
000FFF0CH
外部割込み 15/
マスク可能要因 *2
61
3D
ICR45
308H
000FFF08H
マスク可能要因 *2
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約
(REALOS にて使用 )
64
40
-
2FCH
000FFEFCH
システム予約
(REALOS にて使用 )
65
41
-
2F8H
000FFEF8H
システム予約
66
42
-
2F4H
000FFEF4H
システム予約
67
43
-
2F0H
000FFEF0H
システム予約
68
44
-
2ECH
000FFEECH
システム予約
69
45
-
2E8H
000FFEE8H
システム予約
70
46
-
2E4H
000FFEE4H
システム予約
71
47
-
2E0H
000FFEE0H
システム予約
72
48
-
2DCH
000FFEDCH
システム予約
73
49
-
2D8H
000FFED8H
システム予約
74
4A
-
2D4H
000FFED4H
システム予約
75
4B
-
2D0H
000FFED0H
システム予約
76
4C
-
2CCH
000FFECCH
システム予約
77
4D
-
2C8H
000FFEC8H
システム予約
78
4E
-
2C4H
000FFEC4H
システム予約
79
4F
-
2C0H
000FFEC0H
80
50
2BCH
000FFEBCH
∼
∼
255
FF
∼
000H
∼
000FFC00H
マスク可能要因
INT 命令で使用
-
*1:TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス
"000FFFFCH", "000FFFF8H" が使用されます。
*2:マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは
「付録 B 割込みベクタ」を参照してください。
76
第 3 章 CPU および制御部
3.8.7
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行うという動作を繰り返しま
す。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因 , ハンドラの実行順序は ,
次の 2 つの要素によって決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
表 3.8-4 に , EIT 要因受理の優先度を示します。
表 3.8-4 EIT 要因の受理の優先度とほかの要因へのマスク
受理の優先順位
要因
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
未定義命令例外
取消し
3
INT 命令
I フラグ =0
4
コプロセッサ不在トラップ
コプロセッサエラートラップ
5
ユーザ割込み
ILM= 受理した要因のレベル
6
NMI ( ユーザ用 )
ILM=15
7
(INTE 命令 )
ILM=4 *
8
NMI ( エミュレータ用 )
ILM=4
9
ステップトレーストラップ
ILM=4
10
INTE 命令
ILM=4
―
*:INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が 6 になり
ます (MB91305 ではエミュレータ用 NMI をデータアクセスによるブレークに使
用しています ) 。
77
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。
表 3.8-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1:ほかの要因は破棄されます。
*2:INTE 命令をステップ実行したときはステップトレーストラップの EIT のみ発
生します。INTE による要因は無視されます。
図 3.8-5 に多重 EIT 処理の例を示します。
図 3.8-5 多重 EIT 処理
メインルーチン
NMIのハンドラ
INT命令
のハンドラ
優先度
(高)NMI発生
①最初に実行
(低)INT命令実行
②次に実行
78
第 3 章 CPU および制御部
3.8.8
多重 EIT の動作
FR ファミリの各動作について説明します。
以降の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも
のとします。また , 「次の命令のアドレス」は , EIT を検出した命令によって以下の
ようになります。
• LDI:32 のとき……PC + 6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき……PC + 4
• その他の命令のとき……PC + 2
■ ユーザ割込み・NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
[ 割込み要求受理の可否判定 ]
1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を
保持するものが選択されます。
比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する
値が , NMI についてあらかじめ定められた定数が使用されます。
2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持
つ割込み要求が選択されます。
3. 割込みレベル≧レベルマスク値のとき , 割込み要求はマスクされ受理されません。
割込みレベル<レベルマスク値のとき , 4. へ。
4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み
要求はマスクされ , 受理されません。I フラグが "1" ならば 5. へ。
選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5. へ。
5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。
なお ,〔動作〕における ( ) はレジスタの指すアドレスを表し , TMP は CPU 内部の一時
バッファを表します。
[ 動作 ]
1. (TBR +受理した割込み要求のベクタオフセット ) → TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. 次の命令のアドレス
→ (SSP)
6. 受理した要求の割込みレベル → ILM
7. "0"
→ S フラグ
8. TMP
→ PC
79
第 3 章 CPU および制御部
割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
■ INT 命令の動作
INT #u8:
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
1. (TBR + 3FCH-4 × u8) → TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. PC + 2
→ (SSP)
6. "0"
→ I フラグ
7. "0"
→ S フラグ
8. TMP
→ PC
■ INTE 命令の動作
INTE:
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
1. (TBR + 3D8H) → TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. PC + 2
→ (SSP)
6. "00100B"
→ ILM
7. "0"
→ S フラグ
8. TMP
→ PC
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。また , ステップ実行中は INTE による EIT の発生はありません。
80
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。
[ ステップトレーストラップ検出の条件 ]
• T フラグ = 1
• 遅延分岐命令ではないとき
• INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1. (TBR + 3CCH)
→ TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. 次の命令のアドレス → (SSP)
6. "00100B"
→ ILM
7. "0"
→ S フラグ
8. TMP
→ PC
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
[ 未定義命令例外の検出条件 ]
• 命令のデコード時に , 未定義命令であることを検出
• 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない )
以上の条件が成立すると未定義命令例外が発生し , ブレークします。
[ 動作 ]
1. (TBR + 3C4H) → TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. PC
→ (SSP)
6. "0"
→ S フラグ
7. TMP
→ PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
81
第 3 章 CPU および制御部
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
[ 動作 ]
1. (TBR + 3E0H)
→ TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. 次の命令のアドレス → (SSP)
6. "0"
→ S フラグ
7. TMP
→ PC
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを
操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま
す。
[ 動作 ]
1. (TBR + 3DCH)
→ TMP
2. SSP-4
→ SSP
3. PS
→ (SSP)
4. SSP-4
→ SSP
5. 次の命令のアドレス → (SSP)
6. "0"
→ S フラグ
7. TMP
→ PC
■ RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
1. (R15)
→ PC
2. R15 + 4 → R15
3. (R15)
→ PS
4. R15 + 4 → R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
82
第 3 章 CPU および制御部
3.8.9
注意事項
EIT に関する注意事項について説明します。
■ 遅延スロット
分岐命令の遅延スロットには , EIT に関して制約があります。
「3.7 分岐命令」を参照してください。
83
第 3 章 CPU および制御部
3.9
動作モード
FR ファミリの動作モードについて説明します。
■ 動作モードの概要
動作モードには , バスモードとアクセスモードがあります。
バスモード
アクセスモード
シングルチップ
内 ROM 外バス
16 ビットバス幅
外 ROM 外バス
8 ビットバス幅
■ バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD3, MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指
定します。
■ アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR7(Area Configuration Register) 内の DBW1, DBW0
ビットで指定します。
84
第 3 章 CPU および制御部
3.9.1
バスモード
FR ファミリには , バスモード 0 ( シングルチップモード ), バスモード 1 ( 内 ROM 外
バスモード ), バスモード 2 ( 外 ROM 外バスモード ) の 3 つのバスモードがありま
す。
MB91305 ではバスモード 2 ( 外 ROM 外バスモード ) のみサポートしています。
詳細は「3.1 メモリ空間」を参照してください。
■ バスモード 2 ( 外 ROM 外バスモード )
内部 I/O, D-busRAM が有効で , F-busRAM, F-busROM へのアクセスを禁止にしてすべて
のアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と
して機能します。
85
第 3 章 CPU および制御部
モード設定
3.9.2
FR ファミリでは , モード端子 (MD3, MD2, MD1, MD0) とモードレジスタ (MODR)
で動作モードの設定を行います。
■ モード端子
MD3, MD2, MD1, MD0 の 4 端子で , モードベクタフェッチに関する指定を行います。
表 3.9-1 にモードベクタフェッチに関する指定を示します。
表 3.9-1 モードベクタフェッチに関する指定
モード端子
モード名
リセットベクタ
アクセス領域
備考
MD3 MD2 MD1 MD0
0
0
0
0
外 ROM モードベクタ
外部
USB あり。原発振 48MHz で使用。
0
0
1
0
外 ROM モードベクタ
外部
USB なし。原発振 16MHz で使用。
バス幅はモードレジスタで設定
<注意事項>
表 3.9-1 に示した設定以外は禁止とします。シングルチップモードはサポートしていませ
ん。
● 動作クロック生成について
• MD3,MD2,MD1,MD0={0000} USB 機能ありの場合
原発振 48MHz を 3 分周した 16MHz をクロック生成制御部で使用します。
USB クロックは発振回路からの 48MHz をそのまま使用します。
• MD3,MD2,MD1,MD0={0010} USB 機能なしの場合
原発振 16MHz をクロック生成制御部で使用します。
"「3.11.5 クロック生成制御部のブロックダイヤグラム」を参照してください "。
参考:
USB 機能については「付録 C USB 機能」も参照してください。
86
第 3 章 CPU および制御部
■ モードレジスタ (MODR)
● レジスタ詳細説明
図 3.9-1 レジスタ詳細
MODR
0007FDH
15
14
13
12
11
0
0
0
0
0
10
9
8
初期値
ROMA WTH1 WTH0
XXXXXXXXB
動作モード設定ビット
リード / ライト:W
モードベクタフェッチによってモードレジスタに書き込むデータをモードデータとよ
びます。モードベクタフェッチについては , 「3.10.3 リセットシーケンス」を参照して
ください。
モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード
で動作します。
モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか
らは書き込むことはできません。
● モードデータ詳細説明
図 3.9-2 に , モードデータ詳細を示します。
図 3.9-2 モードデータ詳細
アドレス :
31
30
29
28
27
0007FDH
0
0
0
0
0
26
25
24
初期値
ROMA WTH1 WTH0 XXXXXXXXB
動作モード設定ビット
リード / ライト:W
[bit 31 ∼ bit 27] 予約ビット
必ず "00000B" を設定してください。
"00000B" 以外の値を設定したときの動作は保障できません。
[bit 26] ROMA ( 内部 ROM イネーブルビット )
内部 F-busRAM, F-busROM 領域を有効にするかどうかを設定します。
表 3.9-2 内部 F-busRAM, F-busROM 領域設定
ROMA
機 能
0
外 ROM モード *
1
内 ROM モード
備 考
内部 F-bus 領域 (40000H ∼ 100000H) が外部領域になります。
内部 F-bus 領域 (40000H ∼ 100000H) がアクセス禁止になります。
( 設定禁止 )
*: MB91305 は内部 ROM はありません。外 ROM モード (ROMA=0 設定 ) として使用してくだ
さい。
87
第 3 章 CPU および制御部
[bit 25, bit 24] WTH1, WTH0 ( バス幅指定ビット )
外バスモード時のバス幅指定の設定を行います。
外バスモード時, この値がACR0 (CS0領域) のDBW1, DBW0ビットに設定されます。
表 3.9-3 外バスモード時のバス幅指定設定
WTH1
WTH0
0
0
8 ビットバス幅
外バスモード
0
1
16 ビットバス幅
外バスモード
1
0
32 ビットバス幅
外バスモード ( 設定禁止 )
1
1
シングルチップモード *
シングルチップモード ( 設定禁止 )
機 能
備 考
*: シングルチップモードはサポートしていません。
<注意事項>
モードベクタに設定するモードデータは , "0X000FFFF8H " にバイトデータとして配置す
る必要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採
用していますので , 下図のように , bit 31 ∼ bit 24 の最上位バイトに配置してください。
31
24 23
16 15
8 7
0
誤
0X000FFFF8H
XXXXXXXX
XXXXXXXX
XXXXXXXX
Mode Data
31
24 23
16 15
8 7
0
正
0X000FFFF8H
Mode Data
XXXXXXXX
XXXXXXXX
XXXXXXXX
0X000FFFFCH
Reset Vector
88
第 3 章 CPU および制御部
3.10
リセット ( デバイス初期化 )
MB91305 の初期化であるリセット動作について説明します。
■ リセット ( デバイス初期化 ) の概要
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始までの一連の動作をリセットシー
ケンスとよびます。
89
第 3 章 CPU および制御部
3.10.1
リセットレベル
MB91305 のリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因および初
期化の内容が異なります。
各リセットレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび
ます。
設定初期化リセット (INIT) により初期化される主な内容は , 以下のとおりです。
〔設定初期化リセット (INIT) による初期化箇所〕
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バス拡張インタフェースのすべての設定
• 外部バスの CS0 領域に関するすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細はそれぞれの機能の説明を参照してください。
なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は以下のとおりです。
〔動作初期化リセット (RST) による初期化箇所〕
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関するすべての設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
詳細はそれぞれの機能の説明を参照してください。
90
第 3 章 CPU および制御部
3.10.2
リセット要因
MB91305 における各リセット発生要因と発生するリセットレベルについて説明しま
す。
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことに
より知ることが可能です ( 各説明にあるレジスタ , フラグの詳細な説明は , 「3.11.5
クロック生成制御部のブロックダイヤグラム」および「3.11.6 クロック生成制御部
のレジスタ詳細説明」を参照 ) 。
■ INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
本端子へ"L"レベル入力を行っている間, 設定初期化リセット(INIT)要求が発生します。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ
ジスタ ) 中の bit 15:INIT ビットがセットされます。本端子要求による設定初期化リセッ
ト (INIT) は , すべてのリセット要因中で最強のものであり , すべての入力・動作・状態
よりも優先されます。
なお , 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 発生要因 :外部 INIT 端子への "L" レベル入力
• 解除要因 :外部 INIT 端子への "H" レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : bit 15:INIT
■ STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR ( スタンバイ制御レジスタ ) 中の bit 4:SRST ビットに "0" が書き込まれると , ソフ
トウェアリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要
求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit 11:SRST ビットがセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース
カウンタ制御レジスタ ) 中の bit 7:SYNCR ビットがセットされている場合 ( 同期リセッ
トモード ) , すべてのバスアクセスが停止してからでないと発生しません。
このため, バスの使用状況によっては動作初期化リセット (RST)が発生するまでに長時
間を要する場合があります。
91
第 3 章 CPU および制御部
• 発生要因:
STCR ( スタンバイ制御レジスタ ) 中の bit 4:SRST ビットへの "0" の書込み
• 解除要因:
動作初期化リセット (RST) の発生
• 発生レベル :
動作初期化リセット (RST)
• 対応フラグ :
bit 11:SRST
<参考>
同期モードのソフトウェアリセットの使用に関しては TBCR ( タイムベースカウンタ制御
レジスタ ) の bit 7 : SYNCR ビットの制限事項を参照してください。
■ ウォッチドッグリセット
RSRR ( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグ
タイマが起動します。その後 , RSRR 中の bit 9, bit 8:WT1, WT0 ビットにて設定した周
期内に CTBR ( タイムベースカウンタクリアレジスタ ) への "A5H"/"5AH" 書込みが行わ
れないと , ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit 13:WDOG ビットがセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
• 発生要因:
ウォッチドッグタイマの設定周期経過
• 解除要因:
設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル :
設定初期化リセット (INIT)
• 対応フラグ :
bit 13:WDOG
92
第 3 章 CPU および制御部
3.10.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
ここでは , 各リセットレベルにおけるリセットシーケンスの動作内容について説明
します。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1. 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
2. 発振安定待ち時間 (STCR の bit 3,bit 2:OS1,OS0 にて設定 ) の間 , 動作初期化リセット
(RST) 状態を保持 , 内部クロック停止
3. 動作初期化リセット (RST) 状態 , 内部クロック動作開始
4. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
5. "000FFFF8H" 番地より , モードベクタの読出し
6. "000007FDH" 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
7. 000FFFFCH" 番地より , リセットベクタの読出し
8. PC ( プログラムカウンタ ) へ , リセットベクタの書込み
9. PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始
■ 動作初期化リセット (RST) 解除シーケンス
動作初期化リセット(RST)要求が解除されると, デバイスは以下の動作を順に実行しま
す。
1. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
2. "000FFFF8H" 番地より , モードベクタの読出し
3. "000007FDH" 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
4. "000FFFFCH" 番地より , リセットベクタの読出し
5. PC ( プログラムカウンタ ) へ , リセットベクタの書込み
6. PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始
93
第 3 章 CPU および制御部
3.10.4
発振安定待ち時間
デバイスの原発振が停止 , またはその可能性がある状態から復帰したとき , 自動的に
発振安定待ち状態に遷移します。
本機能により発振開始後の安定していない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定
待ち時間の経過を待ちます。
以下に , 発振安定待ち動作の詳細について説明します。
■ 発振安定待ち発生要因
発振安定待ち発生要因を以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
● ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。ただし , 設定初
期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状態に
遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷
移します。
• 有効な外部割込み要求入力 (NMI を含む ) の発生による復帰時:
通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時:
動作初期化リセット (RST) 状態へ遷移します。
• 動作初期化リセット (RST) 要求による復帰時:
動作初期化リセット (RST) 状態へ遷移します。
● PLL 選択時における異常状態の発生からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生し
た場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*:PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。
94
第 3 章 CPU および制御部
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計測されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。
STCR ( スタンバイ制御レジスタ ) の bit 3,bit 2:OS1,OS0 ビットにより , 発振安定待ち時
間を 4 種類のうちから選択して設定することができます。
いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初
期化されません。
それ以外のウォッチドッグリセットによる設定初期化リセット (INIT)
や , 動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち時間が
保持されます。
発振安定待ち時間の選択の 4 種類の設定は , それぞれ以下の用途を想定してあります。
• OS1,OS0 = "00B" :発振安定待ち時間なし
( ストップモードで PLL も発振器を停止させない場合 )
• OS1,OS0 = "01B" :PLL ロック待ち時間
( ストップモードで発振器を停止させない場合 )
• OS1,OS0 = "10B" :発振安定待ち時間 ( 中 )
( セラミック振動子などの安定が速い発振子を使用する場合 )
• OS1,OS0 = "11B" :発振安定待ち時間 ( 長 )
( 一般の水晶発振子などを使用する場合 )
なお , 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する発振安定待ち時間の間持続してください (INIT 端
子による INIT では , 発振安定待ち時間の設定は最小値に初期化されています )。
95
第 3 章 CPU および制御部
3.10.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit 7:
SYNCR ビットによってどちらのモードで動作するかを設定します。
本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。
設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。
以下に , 各モード動作について説明します。
■ 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状態
への遷移を行う動作を通常リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動
作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結
果を保証できません。しかし , それらの要求を確実に受け付けることが可能です。
TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit 7:SYNCR ビットが "0" のとき , 通常
リセットモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。
■ 同期リセット動作
動作初期化リセット(RST)要求が発生した際に, すべてのバスアクセスが停止してから
動作初期化リセット (RST) 状態への遷移を行う動作を同期リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行
われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され
ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため ,
すべてのバスアクセスの結果を保証できます。しかし , バスアクセスが何らかの理由に
より停止しない場合 , その間各要求を受け付けることができなくなります (このような
場合でも , 設定初期化リセット (INIT) は即座に有効となります ) 。
バスアクセスが停止しない要因には以下のものがあげられます。
• 外部拡張バスインタフェースに対し BRQ ( バス解放要求 ) が入力され続け , BGRNT
( バス解放アクノリッジ ) が有効となっている場合で , 内部バスから新たなバスアク
セス要求が発生しているような場合
• 外部拡張バスインタフェースに対し RDY ( レディ要求 ) が入力され続け , バスウェ
イトが有効となっている場合。また , 以下の場合においては , 最終的には各状態へ
遷移しますが , 遷移するまでに長時間が必要です。
96
第 3 章 CPU および制御部
<参考>
• 同期リセットモードの使用に関しては TBCR ( タイムベースカウンタ制御レジスタ ) の
bit 7 : SYNCR ビットの制限事項を参照してください。
• DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状
態への遷移を遅延させることはありません。
• TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit 7:SYNCR ビットが "1" のときに
同期リセットモードとなります。
• 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
97
第 3 章 CPU および制御部
3.11
クロック生成制御
クロック生成制御について説明します。
■ 内部動作クロックの生成
MB91305 の内部動作クロックは , 以下のように生成されます。
• ソースクロックの選択:クロックの供給源を選択します。
• ベースクロックの生成:ソースクロックを 2 分周または PLL 発振させ , 基本クロッ
クを生成します。
• 各内部クロックの生成:ベースクロックを分周し , 各部に供給する 4 種類の動作ク
ロックを生成します。
以降 , 各クロック生成とその制御について説明します。
各説明にあるレジスタ , フラグの詳細な説明は ,「3.11.5 クロック生成制御部のブロッ
クダイヤグラム」および「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し
てください。
■ 自励発振 (X0/X1 端子入力 )
外部発振端子に発振子を接続し , 内蔵発振回路にて生成した原発振をソースクロック
とします。
外部バスクロックを含むすべてのクロック供給源は , FR ファミリデバイス自身となり
ます。
メインクロックは , X0/X1 端子入力から生成し , 高速クロックとして使用することを想
定したものです。
メインクロックは , 制御可能な内蔵 PLL を用いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックを PLL で逓倍したもの
ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって
行います。
98
第 3 章 CPU および制御部
3.11.1
PLL 制御
ソースクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を独立に制御することが可能です。
各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。
以下に , 各制御内容について説明します。
■ PLL 動作許可
CLKR の bit 10 は , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作
は停止しています。停止中は , ソースクロックとして PLL 出力を選択することはでき
ません。
プログラム動作を開始後は , まずクロックソースとして使用する PLL の逓倍率を設定
し , かつ動作を許可し , PLL ロック待ち時間経過後にソースクロックを切り換えてくだ
さい。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することを
お奨めします。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作を停止させるこ
とはできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する
際などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2
分周したものに選択し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) の bit 0:OSCD1 ビットにより , ストップモード
中の発振が停止するように設定してある場合 , 対応する PLL はストップモード遷移時
に自動的に停止しますので , 動作停止を改めて設定する必要はありません。その後 , ス
トップモードから復帰する際 , PLL は自動的に発振動作を開始します。ストップモー
ド中の発振が停止しないように設定してある場合は , PLL は自動では停止しません。こ
の場合は , 必要であればストップモード移行前にあらかじめ動作停止を設定してくだ
さい。
99
第 3 章 CPU および制御部
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit 14 ∼ 12: PLL1S2,
PLL1S1, PLL1S0 ビットによって設定します。
どちらのビットも設定初期化リセット (INIT) 後は , 全ビットが "0" に初期化されていま
す。
〔PLL 逓倍率設定〕
自励発振モードで , PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 ,
PLL を動作許可する前または同時に設定してください。逓倍率変更後は , ロック待ち時
間経過後にソースクロックを切り換えてください。この際の PLL ロック待ち時間は , タ
イムベースタイマ割込みを使用することをお奨めします。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に
切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後
にソースクロックを切り換えてください。
PLL 逓倍率設定を , PLL 使用中に変更することも可能ですが , この際は逓倍率設定書換
え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が経過す
るまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り換えた
場合は , プログラム動作は停止しません。
100
第 3 章 CPU および制御部
3.11.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります (「3.10.4 発振安定待ち時間」を参照 ) 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでロック待ち時
間が必要となります。
以下に , 各種ケースにおける待ち時間について説明します。
■ 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間は考
慮する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。設定さ
れた発振安定待ち時間を内部的に発生します。
INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい
るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。
プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が
発生した場合の解除時には , プログラムにて設定された時間の発振安定待ち時間を内
部的に発生します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間は考
慮する必要がありません。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合 , 設定変更後に
プログラム動作は一時停止して発振安定待ち ( ロック待ち ) 状態に遷移し , 設定されて
いる発振安定待ち ( ロック待ち ) 時間の経過後にプログラム動作に復帰します。
この動作により , タイムベースカウンタはいったん初期化されます。
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , メインクロック用発振回路を停止させる設定であった場合 , その
発振回路の発振安定待ち時間とメイン PLL のロック待ち時間のうち長い方の時間が必
要となります。ストップモードに遷移させる前に , あらかじめその発振安定待ち時間を
設定しておいてください。
ストップモード中に , メインクロック用発振回路を停止させない設定であった場合は ,
PLL は自動では動作停止しません。したがって , PLL を停止させない限り発振安定待
ち時間は必要となりません。ストップモードに遷移させる前に , あらかじめ発振安定待
ち時間を最小値に設定しておくことをお奨めします。
101
第 3 章 CPU および制御部
3.11.3
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
以下に , 各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• CPU
• 命令キャッシュ
• 内蔵 RAM
• ビットサーチモジュール
• I-bus, D-bus, X-bus, F-bus
• DMA コントローラ
• DSU
動作可能な上限周波数は 64MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• フリーランタイマ
• リロードタイマ
• インプットキャプチャ
• I2C インタフェース
• PPG
動作可能な上限周波数は 32MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
102
第 3 章 CPU および制御部
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• 外部拡張バスインタフェース
• 外部 CLK 出力
動作可能な上限周波数は 32MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
103
第 3 章 CPU および制御部
3.11.4
クロック分周
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定するこ
とができます。この機能により , 各回路に最適な動作周波数を設定することができ
ます。
■ 分周比の設定
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) にて設定します。
各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設
定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が
奇数であっても , 常にデューティ比は 50%となります。
設定値の変更があった場合 , 設定後 , 次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が 1 となりますので , ソース
クロックを高速なものに変更する前に必ず分周比の設定を行ってください。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで上限周波数を超える設定をした場合 , 動作は保
証されません。特に , ソースクロック選択の変更設定との順序を間違えないように注意し
てください。
104
第 3 章 CPU および制御部
3.11.5
クロック生成制御部のブロックダイヤグラム
図 3.11-1 に , クロック生成制御部のブロックダイヤグラムを示します。
図中のレジスタの詳細な説明は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」
を参照してください。
■ クロック生成制御部のブロックダイヤグラム
図 3.11-1 クロック生成制御部のブロックダイヤグラム
[クロック生成部]
DIVR0,DIVR1レジスタ
周辺クロック分周
セレ
クタ
R-bus
セレ
クタ
外部バスクロック分周
セレ
クタ
モード端子*
発振
回路
1/3
各周辺クロック
各部バスクロック
CLKRレジスタ
PLL
メイン発振
1/2
セレクタ
X1
セレクタ
X0
CPUクロック
停止制御
CPUクロック分周
USBクロック
[ストップ・スリープ制御部]
内部割込み
STCRレジスタ
内部リセット
ストップ状態
状態遷移
制御回路
SLEEP状態
リセット発生
F/F
リセット発生
F/F
内部リセット(RST)
内部リセット(INIT)
[リセット要因回路]
INT端子
RSRR レジスタ
[ウォッチドッグ制御部]
ウォッチドッグF/F
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
割込み許可
カウンタクロック
セレクタ
オーバフロー検出F/F
タイムベースタイマ
割込み要求
* : MD3,MD2,MD1,MD0={0000}USB機能あり。発振回路からの3分周を選択。
MD3,MD2,MD1,MD0={0010}USB機能あり。発振回路からのスルーを選択。
105
第 3 章 CPU および制御部
3.11.6
クロック生成制御部のレジスタ詳細説明
クロック生成制御部のレジスタについて説明します。
■ RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
リセット要因レジスタおよびウォッチドッグタイマ制御レジスタの構成は , 以下のと
おりです。
図 3.11-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタのレジスタ構成
RSRR
bit
15
アドレス 000480H
INIT
(R/W)
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
1
*
X
14
13
12
WDOG
(R/W) (R/W) (R/W)
0
*
X
0
*
X
0
X
*
11
10
9
8
SRST
(R/W)
(R/W)
WT1
(R/W)
WT0
(R/W)
0
X
*
0
*
X
0
0
0
0
0
0
* : 要因により初期化されます。
X : 初期化されません。
直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定およ
び起動制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の
フラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
ト (RST) が発生するまでウォッチドッグタイマは動作を続けます。
[bit 15] INIT:INITialize reset occured
INIT 端子入力によるリセット (INIT) の発生の有無を示します。
値
内 容
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
• リード直後に "0" にクリアされます。
• リード可能で , ライトはビット値に影響を与えません。
[bit 14] ( 予約ビット )
106
第 3 章 CPU および制御部
[bit 13] WDOG:WatchDOG reset occured
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
値
内 容
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
• INIT 端子入力によるリセット (INIT), またはリード直後に "0" に初期化されます。
• リード可能で , ライトはビット値に影響を与えません。
[bit 12] ( 予約ビット )
[bit 11] SRST:Software ReSeT occured
STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット(RST)
の発生の有無を示します。
値
内 容
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
• INIT 端子入力によるリセット (INIT), またはリード直後に "0" に初期化されます。
• リード可能で , ライトはビット値に影響を与えません。
[bit 10] ( 予約ビット )
[bit 9, bit 8] WT1, WT0:Watchdog interval Time select
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の
うちから選択します。
ウォッチドッグリセットの発生
を抑止するために最低限必要な
CTBR への書込み間隔
CTBR への最終 5AH 書込み
WT1
WT0
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
からウォッチドッグリセット
が発生するまでの時間
(φ はシステムベースクロックの周期 )
• リセット (RST) により "00B" に初期化されます。
• リード可能です。ライトはリセット (RST) 後 1 回のみ有効で , それ以降のライト
は無効です。
107
第 3 章 CPU および制御部
■ STCR:スタンバイ制御レジスタ
スタンバイ制御レジスタのレジスタ構成は , 以下のとおりです。
図 3.11-3 スタンバイ制御レジスタのレジスタ構成
STCR
bit
アドレス 000481H
初期値 (INIT 端子 )
初期値 (HST 端子 )*
初期値 (INIT)
初期値 (RST)
7
6
5
STOP SLEEP HIZ
(R/W) (R/W) (R/W)
0
0
0
0
0
0
0
0
4
3
2
SRST
(R/W)
OS1
(R/W)
OS0
(R/W)
1
1
1
1
0
1
X
X
0
1
X
X
1
1
1
X
1
0
OSCD1
(R/W) (R/W)
1
1
1
X
1
1
1
X
* :INIT 端子による初期化と同時の場合のみ。それ以外は INIT 時と同じ。
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
[bit 7] STOP:STOP mode
ストップモードへの遷移を指示します。bit 6:SLEEP ビットと本ビット両方に "1" を
書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
値
内 容
0
ストップモードへの遷移は行いません。[ 初期値 ]
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• リードおよびライトが可能です。
[bit 6] SLEEP:SLEEP mode
スリープモードへの遷移を指示します。bit 7:STOP ビットと本ビット両方に "1" を
書き込んだ場合は , bit 7:STOP ビットの方が優先となり , ストップモードへ遷移しま
す。
値
内 容
0
スリープモードへの遷移は行いません。[ 初期値 ]
1
スリープモードへ遷移します。
• リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
• リードおよびライトが可能です。
108
第 3 章 CPU および制御部
[bit 5] HIZ:HIZ mode
ストップモード時の端子状態を制御します。
値
内 容
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。
[ 初期値 ]
• リセット (INIT) により "0" に初期化されます。
• リードおよびライトが可能です。
[bit 4] SRST:Software ReSeT
ソフトウェアリセット (RST) の発行を指示します。
値
内 容
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません。[ 初期値 ]
• リセット (RST) により "1" に初期化されます。
• リードおよびライトが可能です。リード値は , 常に "1" となります。
<参考>
同期モードのソフトウェアリセットの使用に関しては , TBCR ( タイムベースカウンタ制
御レジスタ ) の bit 7 : SYNCR ビットの制限事項を参照してください。
109
第 3 章 CPU および制御部
[bit 3, bit 2] OS1, OS0:Oscillation Stabilization time select
リセット (INIT) 後 , およびストップモード復帰後などにおける発振安定待ち時間を
設定します。
本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選
択します。
OS1
OS0
0
0
φ × 21 [ 初期値 ]
0
1
φ × 211
256 µs
1
0
φ × 216
8.19 ms
1
1
φ × 222
524 ms
発振安定待ち時間
原発振 16MHz の場合
0.250 µs
φ はシステムベースクロックの周期 , この場合は原発振入力の 2
倍の周期
• INIT 端子入力によるリセット (INIT) により "00B" に初期化されます。
• リードおよびライトが可能です。
[bit 1] ( 予約ビット )
• リセット (INIT) により "1" に初期化されます。
• ライト時は "1" を書き込んでください。
[bit 0] OSCD1:OSCillation Disable mode for XIN1
メイン発振入力 (XIN1) における , ストップモード時の発振停止を制御します。
値
内 容
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します。[ 初期値 ]
• リセット (INIT) により "1" に初期化されます。
• リードおよびライトが可能です。
110
第 3 章 CPU および制御部
■ TBCR:タイムベースカウンタ制御レジスタ
タイムベースカウンタ制御レジスタのレジスタ構成は , 以下のとおりです。
図 3.11-4 タイムベースカウンタ制御レジスタのレジスタ構成
TBCR
bit
アドレス 000482H
7
6
5
4
3
TBIF
(R/W)
TBIE
(R/W)
TBC2
(R/W)
TBC1
(R/W)
TBC0
(R/W)
0
0
0
0
X
X
X
X
X
X
初期値 (INIT)
初期値 (RST)
2
1
0
SYNCR SYNCS
(R/W) (R/W) (R/W)
X
X
0
X
0
X
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択 , およびリセット動
作のオプション機能の設定を行います。
[bit 15] TBIF:TimeBasetimer Interrupt Flag
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit 13 ∼ bit 11:TBC2 ∼ TBC0
ビットにて設定 ) を経過したことを示します。
bit 14:TBIE ビットにより割込み発生が許可 (TBIE=”1”) されているときに本ビットが
"1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過
( タイムベースカウンタ出力の立下りエッジ検出 )
• リセット (RST) により "0" に初期化されます。
• リードおよびライト可能です。ただし , ライトは "0" のみ可能で , "1" を書き込ん
でもビット値は変化しません。また , リードモディファイライト (RMW) 系命令
でのリード値は , 常に "1" となります。
[bit 14] TBIE:TimeBasetimer Interrupt Enable
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。本ビットが "1" のときに , bit 15:TBIF ビットが "1" になると , タイムベースタイ
マ割込み要求が発生します。
値
内 容
0
タイムベースタイマ割込み要求出力禁止 [ 初期値 ]
1
タイムベースタイマ割込み要求出力許可
• リセット (RST) により "0" に初期化されます。
• リードおよびライトが可能です。
111
第 3 章 CPU および制御部
[bit 13 ∼ bit 11] TBC2, TBC1, TBC0:TimeBasetimer Counting time select
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定
します。
本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選
択します。
TBC2 TBC1 TBC0 タイマインターバル時間 原発振 16MHz かつ PLL が 4 逓倍の場合
0
0
0
φ × 211
32µs
0
0
1
φ × 212
64µs
0
1
0
φ × 213
128µs
0
1
1
φ × 222
65.5ms
1
0
0
φ × 223
131ms
1
0
1
φ × 224
262ms
1
1
0
φ × 225
524ms
1
1
1
φ × 226
1049ms
φ はシステムベースクロックの周期
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• リードおよびライトが可能です。
[bit 10] ( 予約ビット )
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
112
第 3 章 CPU および制御部
[bit 9] SYNCR:SYNChronous Reset enable
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常
リセット動作を行うか , すべてのバスアクセスが停止してから動作初期化リセット
(RST) を行う同期リセット動作を行うかを選択します。
値
内 容
0
通常リセット動作 [ 初期値 ]
1
同期リセット動作
• リセット (INIT) により "0" に初期化されます。
• リードおよびライトが可能です。
<注意事項>
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジスタ )
の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する。
• NMI を使用しない。
[bit 8] SYNCS:SYNChronous Standby enable
同期スタンバイ動作許可ビットです。
スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 ,
STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバ
イ動作を行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読
み出すことによってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択し
ます。
値
内 容
0
通常スタンバイ動作 [ 初期値 ]
1
同期スタンバイ動作
• リセット (INIT) により "0" に初期化されます。
• リードおよびライトが可能です。
<注意事項>
スタンバイモードに遷移する際には , 必ず "1" を設定し , 同期スタンバイ動作としてくだ
さい。
113
第 3 章 CPU および制御部
■ CTBR:タイムベースカウンタクリアレジスタ
タイムベースカウンタクリアレジスタのレジスタ構成は , 以下のとおりです。
図 3.11-5 タイムベースカウンタクリアレジスタのレジスタ構成
CTBR
bit
アドレス 000483H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
D7
(W)
D6
(W)
D5
(W)
D4
(W)
D3
(W)
D2
(W)
D1
(W)
D0
(W)
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。"A5H" 書込みと "5AH" 書込みの間の時間
制限はありませんが, "A5H"書込みの後に"5AH"以外のデータを書き込むと, 再度"A5H"
を書き込まないと "5AH" を書き込んでもクリア動作は行いません。
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッ
チドッグリセットは延期されませんので , 長期間外部バスをホールドする場合はス
リープモードにしてからホールド要求 (BRQ) を入力してください。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。
■ CLKR:クロックソース制御レジスタ
クロックソース制御レジスタのレジスタ構成は , 以下のとおりです。
図 3.11-6 クロックソース制御レジスタのレジスタ構成
CLKR
bit
アドレス 000484H
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
PLL1EN CLKS1 CLKS0
PLL1S2 PLL1S1 PLL1S0
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
0
X
0
X
0
X
0
X
0
X
0
X
0
X
0
X
システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを 3 種類 * のうちから選択します。また , メイン・サブ
2 系統の PLL それぞれの動作許可および逓倍率の選択を制御します。
*: MB91305 では 2 種類
114
第 3 章 CPU および制御部
[bit 15] ( 予約ビット )
• リセット (INIT) により "0" に初期化されます。
• ライト時は "0" を書き込んでください。
[bit 14 ∼ bit 12] PLL1S2, PLL1S1, PLL1S0:PLL1 ratio Select 2 ∼ 0
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を 8 種類 * のうちから選択します。
*: MB91305 では 1 種類
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。
動作可能な上限周波数は 64MHz ですので , これを超える設定をしないでください。
PLL1S2 PLL1S1 PLL1S0 メイン PLL 逓倍率
システムベースクロック周期
0
0
0
× 1 ( 等倍 )
未サポート
0
0
1
× 2 (2 逓倍 )
未サポート
0
1
0
× 3 (3 逓倍 )
未サポート
0
1
1
× 4 (4 逓倍 )
原発振 16 MHz の場合 , φ= 15.6 ns (64 MHz) *
1
0
0
× 5 (5 逓倍 )
未サポート
1
0
1
× 6 (6 逓倍 )
未サポート
1
1
0
× 7 (7 逓倍 )
未サポート
1
1
1
× 8 (8 逓倍 )
未サポート
φ はシステムベースクロックの周期
*: MD3 ∼ MD0=0010B のとき。
• リセット (INIT) により "000B" に初期化されます。
• リードおよびライトが可能です。
[bit 11] ( 予約ビット )
• リセット (INIT) により "0" に初期化されます。
• ライト時は "0" を書き込んでください。
115
第 3 章 CPU および制御部
[bit 10] PLL1EN:PLL1 ENable
PLL の動作許可ビットです。
本ビットは , クロックソースとして PLL を選択している間は書換えを禁止します。
また , 本ビットが "0" の間はクロックソースとして PLL を選択することを禁止しま
す (bit 9, bit 8:CLKS1,CLKS0 ビットの設定による ) 。
STCR の bit 0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって
も PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
値
内 容
0
PLL 停止 [ 初期値 ]
1
PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• リードおよびライトが可能です。
[bit 9, bit 8] CLKS1, CLKS0:CLocK source Select
FRex コアで使用するクロックソースを設定します。
本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択
します。なお , bit 9:CLKS1 が "1" の間は bit 8:CLKS0 の値を変更することができま
せん。
変更不可能な組合せ
変更可能な組合せ
"00B" → "11B"
"00B" → "01B" または "10B"
"01B" → "10B"
"01B" → "11B" または "00B"
"10B" → "01B" または "11B"
"10B" → "00B"
"11B" → "00B" または "10B"
"11B" → "01B"
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 [ 初期値 ]
0
1
X0/X1 からの原発振入力の 2 分周
1
0
メイン PLL
1
1
設定禁止
クロックソース設定
• リセット (INIT) により "00B" に初期化されます。
• リードおよびライトが可能です。
116
第 3 章 CPU および制御部
■ DIVR0:基本クロック分周設定レジスタ 0
基本クロック分周設定レジスタ 0 のレジスタ構成は , 以下のとおりです。
図 3.11-7 基本クロック分周設定レジスタ 0 のレジスタ構成
DIVR0
bit
アドレス 000486H
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
B3
(R/W)
B2
(R/W)
B1
(R/W)
B0
(R/W)
P3
(R/W)
P2
(R/W)
P1
(R/W)
P0
(R/W)
0
X
0
X
0
X
0
X
0
X
0
X
1
X
1
X
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB), 周辺回路 , およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで上限周波数を超える設定をした場合 , 動作は保
証されません。特にソースクロック選択の変更設定との順序を間違えないようにご注意く
ださい。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
117
第 3 章 CPU および制御部
[bit 15 ∼ bit 12] B3, B2, B1, B0:CLKB divide select 3-0
CPU クロック (CLKB) のクロック分周比設定ビットです。CPU と内部メモリおよび
内部バスのクロック (CLKB) のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに
対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 64MHz ですので , これを超える周波数になる分周比は設定
しないでください。
B3
B2
B1
B0
クロック分周比
クロック周波数 : 原発振 16MHz
および PLL4 逓倍の場合
0
0
0
0
φ
64.0 MHz
0
0
0
1
φ × 2 (2 分周 )
32.0 MHz
0
0
1
0
φ × 3 (3 分周 )
21.3 MHz
0
0
1
1
φ × 4 (4 分周 )
16.0 MHz
0
1
0
0
φ × 5 (5 分周 )
12.8 MHz
0
1
0
1
φ × 6 (6 分周 )
10.7 MHz
0
1
1
0
φ × 7 (7 分周 )
9.14 MHz
0
1
1
1
φ × 8 (8 分周 )
8.00 MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
4.00 MHz
φ はシステムベースクロックの周期です。
• リセット (INIT) により "0000B" に初期化されます。
• リードおよびライトが可能です。
118
第 3 章 CPU および制御部
[bit 11 ∼ bit 8] P3, P2, P1, P0:CLKP divide select 3 ∼ 0
周辺クロック (CLKP) のクロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま
す。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー
スクロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択
します。
動作可能な上限周波数は 32MHzですので , これを超える周波数になる分周比は設定
しないでください。
P3
P2
P1
P0
クロック分周比
クロック周波数 : 原発振 16 MHz
および PLL4 逓倍の場合
0
0
0
0
φ
64.0 MHz
0
0
0
1
φ × 2 (2 分周 )
32.0 MHz
0
0
1
0
φ × 3 (3 分周 )
21.3 MHz
0
0
1
1
φ × 4 (4 分周 )
16.0 MHz
0
1
0
0
φ × 5 (5 分周 )
12.8 MHz
0
1
0
1
φ × 6 (6 分周 )
10.7 MHz
0
1
1
0
φ × 7 (7 分周 )
9.14 MHz
0
1
1
1
φ × 8 (8 分周 )
8.00 MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
4.00 MHz
φ はシステムベースクロックの周期です。
• リセット (INIT) により "0011B" に初期化されます。
• リードおよびライトが可能です。
119
第 3 章 CPU および制御部
■ DIVR1:基本クロック分周設定レジスタ 1
基本クロック分周設定レジスタ 1 のレジスタ構成は , 以下のとおりです。
図 3.11-8 基本クロック分周設定レジスタ 1 のレジスタ構成
DIVR1
bit
アドレス 000487H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
T3
(R/W)
T2
(R/W)
T1
(R/W)
T0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
0
X
0
X
0
X
0
X
0
X
0
X
0
X
0
X
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行
います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで上限周波数を超える設定をした場合 , 動作は保
証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注意
ください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
120
第 3 章 CPU および制御部
[bit 7 ∼ bit 4] T3, T2, T1, T0:CLKT divide select 3-0
外部バスクロック (CLKT) のクロック分周比設定ビットです。
外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数は 32MHz ですので , これを超える周波数になる分周比は設定
しないでください。
T3
T2
T1
T0
クロック分周比
クロック周波数 : 原発振 16 MHz
および PLL4 逓倍の場合
0
0
0
0
φ
64.0 MHz
0
0
0
1
φ × 2 (2 分周 )
32.0 MHz
0
0
1
0
φ × 3 (3 分周 )
21.3 MHz
0
0
1
1
φ × 4 (4 分周 )
16.0 MHz
0
1
0
0
φ × 5 (5 分周 )
12.8 MHz
0
1
0
1
φ × 6 (6 分周 )
10.7 MHz
0
1
1
0
φ × 7 (7 分周 )
9.14 MHz
0
1
1
1
φ × 8 (8 分周 )
8.00 MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
4.00 MHz
φ はシステムベースクロックの周期です。
• リセット (INIT) により "0000B" に初期化されます。
• リードおよびライトが可能です。
[bit 3 ∼ bit 0] ( 予約ビット )
121
第 3 章 CPU および制御部
3.11.7
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参
照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ:システムの暴走検出用のウォッチドッグタイマをタイム
ベースカウンタのビット出力を用いて計測します。
• タイムベースタイマ :タイムベースカウンタ出力を用いて , インターバル割込み
を発生します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
〔ウォッチドッグタイマの起動と周期設定〕
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジス
タ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。
このとき , ウォッチドッグタイマのインターバル時間を bit 9,bit 8:WT1,WT0 ビット
により設定します。インターバル時間の設定は , この最初の書込みで設定した時間
のみが有効となり , それ以降の書込みはすべて無視されます。
〔ウォッチドッグリセットの発生延期〕
一度ウォッチドッグタイマを起動すると, プログラムで定期的にCTBR (タイムベー
スカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータを書き込む必要が
あります。
この操作により , ウォッチドッグリセット発生用フラグが初期化されます。
〔ウォッチドッグリセットの発生〕
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。
〔ウォッチドッグタイマの停止〕
一度ウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生するま
では , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停止
し , 再度プログラム動作にて起動するまでは機能しません。
122
•
動作初期化リセット (RST) 状態
•
設定初期化リセット (INIT) 状態
•
発振安定待ちリセット (RST) 状態
第 3 章 CPU および制御部
〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生
を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
•
スリープ状態
•
ストップ状態
•
発振安定待ち RUN 状態
•
I-bus ( 命令バス ) または D-bus ( データバス ) に対する DMA 転送中
•
エミュレーションモード
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発
生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最
大で { ベースクロック× 227} サイクルまでの比較的長時間の時間計測を行う用途に適
しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
〔タイムベースタイマの起動とインターバル設定〕
タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) の bit 13 ∼ bit
11:TBC2,TBC1,TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは
常に検出されているため , インターバル時間の設定後はまず bit 15:TBIF ビットをク
リアしてから , bit 14:TBIE ビットを "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめ bit 14:TBIE ビットを "0" にして割込
み要求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま
すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。クリアしないと , 割込み許可直後に割
込み要求が発生する場合があります。
〔プログラムによるタイムベースカウンタのクリア〕
CTBR ( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデー
タを書き込むと , "5AH" 書込みの直後に , タイムベースカウンタを全ビット "0" にク
リアします。"A5H" 書込みと "5AH" 書込みの間の時間制限はありませんが , "A5H"
書込みの後に"5AH"以外のデータを書き込むと, 再度"A5H"を書き込まないと"5AH"
を書き込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期
されます。
123
第 3 章 CPU および制御部
〔デバイス状態によるタイムベースカウンタのクリア〕
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク
リアされます。
•
ストップ状態
•
設定初期化リセット (INIT) 状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまう可能性があります。そのため , ストップモードを設定する前には , タイム
ベースタイマ割込みを禁止し , タイムベースタイマを使用しないようにしてくださ
い。
それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー
スタイマ割込みは自動的に禁止されます。
124
第 3 章 CPU および制御部
3.12
デバイス状態制御
MB91305 の各種状態とその制御について説明します。
■ デバイス状態制御の概要
MB91305 のデバイス状態には , 以下のものがあります。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 発振安定待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ
モードの詳細について説明します。
125
第 3 章 CPU および制御部
3.12.1
デバイス状態と各遷移
デバイスの各動作状態について説明します。
■ デバイスの動作状態
MB91305 のデバイスの動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16
ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバスクロッ
クのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ
セットモードの場合と一部要求に対する状態遷移動作が異なります。
詳細は ,「3.10.5 リセット動作モード」の「■ 同期リセット動作」を参照してください。
● スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ
は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限
り停止状態です。有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常
動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移し
ます。
● ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL
は 設 定 に よ り 停 止 さ せ る こ と が 可 能 で す。ス ト ッ プ 状 態 へ 遷 移 す る 際 に は 必 ず
PLL1EN=0 にしてから行ってください。また , 設定により外部端子を一律ハイインピー
ダンスにすることが可能です ( 一部端子を除く ) 。
特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち RUN
状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
126
第 3 章 CPU および制御部
● 発振安定待ち RUN 状態
デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
● 発振安定待ちリセット (RST) 状態
デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復
帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し
ます。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
● 動作初期化リセット (RST) 状態
プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定
待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いた PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
の場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
127
第 3 章 CPU および制御部
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , またはハードウェ
アスタンバイ状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて
の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外
では動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により , 本状態は解除され , 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
【最強】設定初期化リセット (INIT) 要求
↓ 発振安定待ち時間の終了
( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 )
↓ 動作初期化リセット (RST) 要求
↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
【最弱】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
128
第 3 章 CPU および制御部
3.12.2
低消費電力モード
MB91305 の状態のうち , 各低消費電力モードとその使用方法について説明します。
MB91305 の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
■ スリープモード
STCR ( スタンバイ制御レジスタ ) の bit 6:SLEEP ビットに "1" を書き込むと , スリープ
モードとなり , スリープ状態へ遷移します。
以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit 7:STOP ビットと本ビット両方に "1" を書き込
んだ場合は , bit 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
スリープ状態については , 「3.12.1 デバイス状態と各遷移 ■デバイスの動作状態 ●ス
リープ状態」も参照してください。
〔スリープ状態で停止する回路〕
•
CPU のプログラム実行
•
データキャッシュ
•
ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
•
各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
•
内部 / 外部バス (DMA 転送が発生した場合は動作します。)
〔スリープ状態で停止しない回路〕
•
発振回路
•
動作許可された PLL
•
クロック発生制御部
•
割込みコントローラ
•
周辺回路
•
DMA コントローラ
•
DSU
129
第 3 章 CPU および制御部
〔スリープ状態からの復帰要因〕
• 有効な割込み要求の発生
割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR
に割込みレベルとして割込み禁止 (1FH) を設定してください。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
参考:
各要因の優先順位については , 「3.12.1 デバイス状態と各遷移」を参照してください。
■ ストップモード
STCR ( スタンバイ制御レジスタ ) の bit 7:STOP ビットに "1" を書き込むと , ストップ
モードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生
するまではストップ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit 6:SLEEP ビットと本ビット両方に "1" を書き込
んだ場合は , bit 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
ストップ状態については ,「3.12.1 デバイス状態と各遷移 ■デバイスの動作状態 ●ス
リープ状態」も参照してください。
〔ストップ状態で停止する回路〕
• 停止するよう設定された発振回路:
STCR ( スタンバイ制御レジスタ ) の bit 0:OSCD1 ビットに "1" が設定してあるとき ,
ストップ状態中のメインクロック用発振回路を停止状態にします。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL:
STCR ( スタンバイ制御レジスタ ) の bit 0:OSCD1 ビットに "1" が設定してあるとき ,
CLKR ( クロックソース制御レジスタ ) の bit 10:PLL1EN ビットに "1" が設定してあっ
ても , ストップ状態中のメインクロック用 PLL を停止状態にします。
• 〔ストップ状態で停止しない回路〕を除くすべての内部回路
〔ストップ状態で停止しない回路〕
• 停止するよう設定されていない発振回路:
STCR ( スタンバイ制御レジスタ ) の bit 0:OSCD1 ビットに "0" が設定してあるとき ,
ストップ状態中のメインクロック用発振回路は停止しません。
• 動作許可されていて , かつ停止するよう設定されていない発振回路に接続された
PLL:STCR ( スタンバイ制御レジスタ ) の bit 0:OSCD1 ビットに "0" が設定してある
とき , CLKR ( クロックソース制御レジスタ ) の bit 10:PLL1EN ビットに "1" が設定
してあると , ストップ状態中のメインクロック用 PLL は停止しません。
130
第 3 章 CPU および制御部
〔ストップ状態での端子のハイインピーダンス制御〕
STCR ( スタンバイ制御レジスタ ) の bit 5:HIZ ビットに "1" が設定してあると , ス
トップ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる
端子は「付録 E 端子状態一覧」を参照してください。
STCR ( スタンバイ制御レジスタ ) の bit 5:HIZ ビットに "0" が設定してあると , ス
トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「付
録 E 端子状態一覧」を参照してください。
〔ストップ状態からの復帰要因〕
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生:
外部割込み入力端子 (INTn 端子 , NMI 端子 ) が有効です。
割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, ストップモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR に
割込みレベルとして割込み禁止 (1FH) を設定してください。
• 設定初期化リセット (INIT) 要求の発生:
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
参考:
各要因の優先順位については , 「3.12.1 デバイス状態と各遷移 ■デバイスの動作状態
●スリープ状態」を参照してください。
■ 通常スタンバイ動作と同期スタンバイ動作
TBCR ( タイムベースカウンタ制御レジスタ ) の bit 8:SYNCS ビットに "1" が設定して
ある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込みの
みではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すことによっ
てストップ状態へ遷移します。
SYNCS ビットに "0" が設定してある場合 , 通常スタンバイ動作となり , STOP ビットへ
の書込みのみでストップ状態へ遷移します。
通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の分周
比が大きく設定してあると , 実際に STOP ビットへの書込みが行われるまでに多くの命
令を実行してしまいます。このため , STOP ビットへの書込み命令の後 , 最低でも {5 +
(CPU クロックの分周比 / 周辺クロックの分周比 ) } 命令以上の NOP 命令を配置しなけ
れば , それ以降の命令がストップ状態への遷移前に実行されてしまいます。
同期スタンバイ動作時は , 実際に STOP ビットへの書込みが行われた後 , STCR レジス
タの読出しが完了するまではストップ状態へ遷移しません。STCR レジスタの読出し値
が CPU に格納されるまでは , CPU がバスを使用しているためです。このため , CPU ク
ロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる設定においても ,
STOP ビットへの書込み命令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP 命
令を配置するだけで , それ以降の命令がストップ状態への遷移前に実行されることを
防ぐことができます。
131
第 3 章 CPU および制御部
132
第4章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内
部バスと外部のメモリ , 機能マクロ , および I/O デ
バイスとのインタフェースを制御します。
外部バスインタフェースの各機能について説明し
ます。
4.1 外部バスインタフェースの概要
4.2 外部バスインタフェースのレジスタ
4.3 チップセレクト領域
4.4 エンディアンとバスアクセス
4.5 通常バスインタフェース
4.6 バーストアクセス (first wait cycle:1,page wait cycle:1)
(TYP3 ∼ TYP0=0000B,AWR=3208H)
4.7 アドレス / データマルチプレックスインタフェース
4.8 プリフェッチ動作
4.9 SDRAM/FCRAM インタフェース
4.10 DMA アクセス
4.11 バスアービトレーション
4.12 レジスタ設定手順
4.13 使用上の注意
133
第 4 章 外部バスインタフェース
4.1
外部バスインタフェースの概要
外部バスインタフェースの特長について説明します。
外部バスインタフェースコントローラは , LSI の内部バスと外部のメモリ , 機能マクロ ,
および I/O デバイスとのインタフェースを制御します。
CS2 の領域は USB ファンクションに接続されています ( 予約領域 )。
CS3 の領域は使用禁止です。
外部バスインタフェースの各機能について解説します。
■ 外部バスインタフェースの特長
• 最大 23 ビット長 (4G バイト空間 ) のアドレス出力
• 各種外部メモリ (8 ビット /16 ビット品 ) を直結できるほか , 複数のアクセスタイミ
ングを混在制御可能
- 非同期 SRAM, 非同期 ROM/ フラッシュメモリ ( 複数ライトストローブ方式また
はバイトイネーブル方式 )
- ページモード ROM/ フラッシュメモリ ( ページサイズ 2/4/8 が可能 )
- バーストモード ROM/ フラッシュメモリ (MBM29BL160D/161D/162D など )
- SDRAM (FCRAM タイプも対応 , CAS- レイテンシ 1 ∼ 8, 2 バンク品および 4 バン
ク品 )
- アドレス / データマルチプレックスバス (8 ビット /16 ビット幅のみ )
- 同期メモリ (ASIC 内蔵メモリなど )
<注意事項>
SynchronousSRAM は直結できません。
• 独立した 8 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
- 各領域のサイズは 64K バイトの倍数単位で設定可能 (1 チップセレクト領域あたり
64K バイト∼ 2G バイト )
- 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウン
ダリの制限あり )
134
第 4 章 外部バスインタフェース
• チップセレクト領域ごとに以下の機能を独立に設定可能
- チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません )
- 各種メモリ対応などのアクセスタイミングタイプ設定
<注意事項>
SDRAM は CS6 領域と CS7 領域のみ接続可能
- 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 )
- データバス幅設定 (8 ビット /16 ビット )
- バイトオーダリングのエンディアン設定 ( ビッグまたはリトル )
<注意事項>
CS0 領域は , ビッグエンディアンのみ可能
- 書込み禁止設定 ( 読出し専用領域 )
- 内蔵キャッシュへの取込み許可・禁止設定
- プリフェッチ機能の許可・禁止設定
- 最大バースト長設定 (1, 2, 4, 8)
• アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能
- 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 15 サイクルまで設定可能 ( 非同期 SRAM, ROM, フラッ
シュ , I/O 領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, フラッシュ ,
I/O 領域 )
- ファーストアクセスウェイトとページウェイトが設定可能 ( バーストページモー
ド ROM/ フラッシュ領域 )
- 各種アイドルリカバリサイクル , セットアップ遅延などの挿入が可能
- CAS レイテンシ , RAS-CAS ディレイほかのタイミング設定が可能 (SDRAM 領域 )
- 分散 / 集中オートリフレッシュ , セルフリフレッシュなどの各種リフレッシュタ
イミング制御可能 (SDRAM 領域 )
• DMA によるフライバイ転送が可能
- メモリと I/O 間の 1 アクセスでの転送が可能
- メモリウェイトサイクルをフライバイ時に I/O のウェイト周期に同期させること
が可能
- 転送元アクセスのみを延長してホールドタイムを確保することが可能
- フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能
• BRQ と BGRNT を使用した外部バスアービトレーションが可能
• 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能
135
第 4 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 4.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 4.1-1 外部バスインタフェースのブロックダイヤグラム
内部
アドレスバス
32
内部
データバス
32
外部
データバス
MUX
ライトバッファ
スイッチ
リードバッファ
スイッチ
データブロック
アドレスブロック
+1 または +2
外部
アドレスバス
アドレスバッファ
ASR
CS0~CS7
ASZ
コンパレータ
SRAS,SCAS,
SWE,MCLKE,
DQMUU,DQMUL
SDRAM制御部
アンダフロー
RCR
リフレッシュカウンタ
外部端子制御部
全ブロック制御
レジスタ
&
制御
RD,
WR0, WR1,
AS
BRQ,
BGRNT,
RDY
136
第 4 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です ( 一部のピンは兼用端子です )。
〔通常バスインタフェース〕
A23 ∼ A0, D31 ∼ D16
CS0, CS1, CS4, CS5, CS6, CS7
AS, SYSCLK, MCLK
RD
WR, WR0 (UUB), WR1 (ULB)
RDY, BRQ, BGRNT
〔メモリインタフェース〕
MCLK, MCLKE
: SDRAM 用
LBA(=AS), BAA
: バースト ROM/ フラッシュ用
SRAS, SCAS, SWE (=WR)
: SDRAM 用
DQMUU, DQMUL
: SDRAM 用 (=WR0, WR1)
〔DMA インタフェース〕
IOWR, IORD,
DACK0, DACK1, DACK2
DREQ0, DREQ1, DREQ2
DEOP0, DEOP1, DEOP2
137
第 4 章 外部バスインタフェース
■ 外部バスインタフェースのレジスタ一覧
外部バスインタフェースのレジスタ構成は , 以下のとおりです。
図 4.1-2 外部バスインタフェースのレジスタ構成
アドレス
00000640H
00000644H
00000648H
0000064CH
00000650H
00000654H
00000658H
0000065CH
00000660H
00000664H
00000668H
0000066CH
00000670H
00000674H
00000678H
0000067CH
00000680H
00000684H
00000688H
0000068CH
000007F8H
000007FCH
予約
31
24 23
16 15
8 7
ASR0
ASR1
ASR2
ASR3
ASR4
ASR5
ASR6
ASR7
AWR0
AWR2
AWR4
AWR6
ACR0
ACR1
ACR2
ACR3
ACR4
ACR5
ACR6
ACR7
AWR1
AWR3
AWR5
AWR7
MCRA
MCRB
予約
IOWR0
予約
IOWR1
予約
CSER
予約
CHER
RCR
予約
予約
予約
予約
予約
予約
予約
予約
予約
(MODR)
予約
予約
IOWR2
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
TCR
予約
予約
予約
予約
予約
予約
: 予約レジスタです。書き込む場合は , 必ず "0" を設定してください。
MODR : ユーザプログラムからはアクセスできません。
138
0
第 4 章 外部バスインタフェース
4.2
外部バスインタフェースのレジスタ
外部バスインタフェースのレジスタについて説明します。
■ 外部バスインタフェースのレジスタ概要
外部バスインタフェースには , 以下の 6 種類のレジスタがあります。
• ASR0 ∼ ASR7 (Area Select Register)
• ACR0 ∼ ACR7 (Area Configuration Register)
• AWR0 ∼ AWR7 (Area Wait Register)
• IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC)
• CSER (Chip Select Enable register)
• TCR (Terminal and timing Control Register)
139
第 4 章 外部バスインタフェース
4.2.1
Area Select Register (ASR0 ∼ ASR7)
Area Select Register の詳細を説明します。
■ Area Select Register (ASR0 ∼ ASR7) のレジスタ構成
ASR0 ∼ ASR7 のレジスタ構成は , 以下のとおりです。
図 4.2-1 ASR0 ∼ ASR7 のレジスタ構成
初期値
ASR0
15
14
13
0000 0640H
A31
A30
A29
ASR1
0000 0644H
15
14
13
A31
A30
A29
ASR2
0000 0648H
15
14
13
A31
A30
A29
ASR3
0000 064CH
15
14
13
A31
A30
A29
ASR4
0000 0650H
15
14
13
A31
A30
A29
ASR5
0000 0654H
15
14
13
A31
A30
A29
ASR6
0000 0658H
15
14
13
A31
A30
A29
15
14
13
A31
A30
A29
ASR7
0000 065CH
12
...
...
...
2
1
0
INIT 時
A17
A16
0000H
RST 時
0000H
アクセス
A18
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
R/W
ASR0 ∼ ASR7(Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップセレクト領域の開
始アドレスを指定します。
開始アドレスは, A31∼A16の上位16ビットを設定できます。各チップセレクト領域は,
このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ3 ∼
ASZ0 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ3 ∼ ASZ0 ビッ
トの設定に従います。例えば , ASZ3 ∼ ASZ0 ビットにより , 1M バイトの領域を設定し
た場合は , ASR0 ∼ ASR7 レジスタの下位 4 ビットは無視され , A31 ∼ A20 ビットのみ
意味を持ちます。
ASR0 レジスタは , INIT および RST により , "0000H" に初期化されます。
ASR1 ∼ ASR7
は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 ,
CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ
ジスタを設定してください。
140
第 4 章 外部バスインタフェース
4.2.2
ACR0 ∼ ACR7(Area Configuration Register)
Area Configuration Register の詳細を説明します。
■ ACR0 ∼ ACR7(Area Configuration Register) のレジスタ構成
ACR0 ∼ ACR7 のレジスタ構成は , 以下のとおりです。
図 4.2-2 ACR0 ∼ ACR7 のレジスタ構成
初期値
ACR0H
0000 0642H
15
14
13
12
11
10
9
8
INIT 時
RST 時
アクセス
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111XX00B 1111XX00B
R/W
ACR0L
7
6
5
4
3
2
1
0
0000 0643H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 00000000B
ACR1H
0000 0646H
15
14
13
12
11
10
9
00000000B
R/W
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR1L
7
6
5
4
3
2
1
0
0000 0647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR2H
0000 064AH
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR2L
7
6
5
4
3
2
1
0
0000 064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR3H
0000 064EH
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR3L
7
6
5
4
3
2
1
0
0000 064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR4H
0000 0652H
15
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR4L
7
6
5
4
3
2
1
0
0000 0653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR5H
0000 0656H
15
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR5L
7
6
5
4
3
2
1
0
0000 0657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
15
15
14
14
13
13
12
12
11
11
10
10
9
9
8
8
( 続く)
141
第 4 章 外部バスインタフェース
図 4.2-2 ACR0 ∼ ACR7 のレジスタ構成 ( 続き )
初期値
ACR6H
0000 065AH
15
14
13
12
11
10
9
8
INIT 時
RST 時
アクセス
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR6L
7
6
5
4
3
2
1
0
0000 065BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 00000000B 00000000B
R/W
ACR7H
0000 065EH
15
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR7L
7
6
5
4
3
2
1
0
0000 065FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR0 ∼ ACR7(Area Configuration Register 0 ∼ 7) は , 各チップセレクト領域の機能を設
定します。
[bit 15 ∼ bit 12] ASZ3 ∼ ASZ0= Area Sizebit 3 ∼ bit 0
各チップセレクト領域のサイズを , 表 4.2-1 のように設定します。
表 4.2-1 Area Size ビットの各チップセレクト領域の設定サイズ
ASZ3
ASZ2
ASZ1
ASZ0
0
0
0
0
64K バイト
(00010000H バイト , ASR A31 ∼ A16 ビット指定が有効 )
0
0
0
1
128K バイト
(00020000H バイト , ASR A31 ∼ A17 ビット指定が有効 )
0
0
1
0
256K バイト
(00040000H バイト , ASR A31 ∼ A18 ビット指定が有効 )
0
0
1
1
512K バイト
(00080000H バイト , ASR A31 ∼ A19 ビット指定が有効 )
0
1
0
0
1M バイト
(00100000H バイト , ASR A31 ∼ A20 ビット指定が有効 )
0
1
0
1
2M バイト
(00200000H バイト , ASR A31 ∼ A21 ビット指定が有効 )
0
1
1
0
4M バイト
(00400000H バイト , ASR A31 ∼ A22 ビット指定が有効 )
0
1
1
1
8M バイト
(00800000H バイト , ASR A31 ∼ A23 ビット指定が有効 )
1
0
0
0
16M バイト
(01000000H バイト , ASR A31 ∼ A24 ビット指定が有効 )
1
0
0
1
32M バイト
(02000000H バイト , ASR A31 ∼ A25 ビット指定が有効 )
1
0
1
0
64M バイト
(04000000H バイト , ASR A31 ∼ A26 ビット指定が有効 )
1
0
1
1
128M バイト
(08000000H バイト , ASR A31 ∼ A27 ビット指定が有効 )
1
1
0
0
256M バイト
(10000000H バイト , ASR A31 ∼ A28 ビット指定が有効 )
1
1
0
1
512M バイト
(20000000H バイト , ASR A31, A29 ビット指定が有効 )
1
1
1
0
1024M バイト
(40000000H バイト , ASR A31, A30 ビット指定が有効 )
1
1
1
1
2048M バイト
(80000000H バイト , ASR A31 ビット指定が有効 )
各チップセレクト領域のサイズ
ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領
域のサイズを設定します。そのため , ASR には比較されないビットが存在します。
ACR0 の ASZ3 ∼ ASZ0 ビットは , RST により "1111B" (0FH) に初期化されますが , この
設定にかかわらず RST 直後の CS0 領域は特別に "00000000H" から "FFFFFFFFH" ( 全領
域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上
記の表に従ったサイズに設定されます。
ASR6, ASR7 で設定する領域に SDRAM/FCRAM を接続する場合 , 128M バイト (1011B)
以下に設定してください。
142
第 4 章 外部バスインタフェース
[bit 11, bit 10] DBW1, DBW0= Data Bus Width1,0
各チップセレクト領域のデータバス幅を 以下のとおり設定します。
DBW1
DBW0
0
0
8 ビット ( バイトアクセス )
0
1
16 ビット ( ハーフワードアクセス )
1
0
Reserved ( 設定禁止 )
1
1
Reserved ( 設定禁止 )
データバス幅
ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビッ
トの値と同じ値が自動的に書き込まれます。
SDRAM/FCRAM を接続する領域では , 本ビットによるデータバス幅の設定はすべて同
じにしてください。
[bit 9, bit 8] BST1, BST0= Burst Size1,0
各チップセレクト領域の最大バースト長を , 以下のように設定します。
BST1
BST0
0
0
1( シングルアクセス )
0
1
2 バースト ( アドレス境界 1 ビット )
1
0
4 バースト ( アドレス境界 2 ビット )
1
1
8 バースト ( アドレス境界 3 ビット )
最大バースト長
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスまた
はバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決まる
アドレス境界内で連続したバーストアクセスを行います。
バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。
シングルアクセス以外のバースト長設定を行った領域では RDY 入力を無視します。
SDRAM/FCRAM を接続する領域では , 本ビットによるバースト長の設定はすべて同じ
にしてください。
[bit 7] SREN=ShaRed ENable
各チップセレクト領域の BRQ/BGRNT による共有の許可・禁止を 以下のように設定し
ます。
SREN
共有の許可・禁止
0
BRQ/BGRNT による共有を禁止 (CSn はハイインピーダンスになりません )
1
BRQ/BGRNT による共有を許可 (CSn はハイインピーダンスになります )
共有が許可された領域は , バス開放中 (BGRNT="L" 出力中 ) はチップセレクト出力
(CSn) がハイインピーダンスになります。
共有が禁止された領域は , バス開放中 (BGRNT="L" 出力中 ) もチップセレクト出力
(CSn) がハイインピーダンスになりません。
CSER により許可されたすべての領域の共有が許可されている場合のみ , アクセススト
ローブ出力 (AS, BAA, RD, WR0, WR1, WR など ) がハイインピーダンスになります。
143
第 4 章 外部バスインタフェース
[bit 6] PFEN=PreFetch ENable
各チップセレクト領域のプリフェッチの許可・禁止を , 以下のように設定します。
PFEN
プリフェッチ許可・禁止
0
プリフェッチ禁止
1
プリフェッチ許可
プリフェッチが許可された領域に対して読出しを行うと , それに続くアドレスに対し
先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレスに対し内
部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッチバッファに先
読みされたデータを返します。
詳細は「4.8 プリフェッチ動作」を参照してください。
[bit 5] WREN=WRite ENable
各チップセレクト領域の書込みの許可・禁止を設定します。
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , そのア
クセスは無視され , 外部アクセスを一切行いません。
データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[bit 4] LEND=Little ENDian select
各チップセレクト領域のバイトオーダリングを設定します。
LEND
バイトオーダリング
0
ビッグエンディアン
1
リトルエンディアン
ACR0 の LEND ビットには必ず "0" を設定してください。CS0 領域はビッグエンディア
ンのみをサポートします。
144
第 4 章 外部バスインタフェース
[bit 3 ∼ bit 0] TYP3 ∼ TYP0= TYPe select
各チップセレクト領域のアクセスタイプを , 以下のように設定します。
TYP3 TYP2 TYP1 TYP0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, シングル / ページ / バースト ROM/ フラッシュ )
1
x
x
アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 )
x
0
RDY 端子による WAIT 挿入無効
x
1
RDY 端子による WAIT 挿入有効 ( バースト時は無効 )
0
x
WR0, WR1 端子をライトストローブとして使用 (WR は "H" 固定 )
1
x
WR 端子をライトストローブとして使用 *1
0
Memory type A: SDRAM/FCRAM( オートプリチャージは使用しません ) *2
1
Memory type B: FCRAM( オートプリチャージを使用します ) *2
0
x
1
アクセスタイプ
0
0
0
1
0
設定禁止
0
1
1
設定禁止
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のものになります ) *3
各ビットは , 組み合わせて設定します。
アクセスタイプごとの動作詳細は , 動作解説の項 (「4.5 通常バスインタフェース」, 「4.6 バーストアクセス
(first wait cycle:1,page wait cycle:1) (TYP3 ∼ TYP0=0000B,AWR=3208H)」, 「4.7 アドレス / データマルチプレック
スインタフェース」) を参照してください。
*1: この設定をした場合 , WR0, WR1 は , 各バイトのイネーブルとして使用できます。
*2: ACR6, ACR7 レジスタのみ有効です。ACR0, ACR1, ACR2, ACR3, ACR4, ACR5 レジスタでは設定
禁止です。
*3: CSn 領域マスク設定機能
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した領域を定義し
たい場合 , 別の CS 領域の設定にて , ACR:TYP3 ∼ TYP0="1111B" を設定し , マスク設定領域とし
て機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
- マスク設定領域に対応する CSn はアサートされません。
- ベース設定領域に対応する CSn がアサートされます。
- ACR の以下の設定はマスク設定領域側のものが有効になります。
[bit 11,bit 10] DBW1, DBW0: バス幅設定
[bit 9,bit 8] BST1, BST0: バースト長設定
[bit 7] SREN: 共有許可設定
[bit 6] PFEN: プリフェッチ許可設定
[bit 5] WREN: ライト許可設定
( 注意事項 ) この設定のみ , ベース設定領域と異なる設定は禁止します。
[bit 4] LEND: リトルエンディアン設定
- ACR の以下の設定はベース設定領域側のものが有効になります。
[bit 3 ∼ bit 0] TYP3 ∼ TYP0: アクセスタイプ設定
- AWR の設定はマスク設定領域側のものが有効になります。
- CHER の設定はマスク設定領域側のものが有効になります。
145
第 4 章 外部バスインタフェース
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定できます。ベー
ス設定領域がない領域に対して , マスク設定領域を設けてはいけません。また , マスク設定領域
を複数重複させてもいけません。ASR および ACR:ASZ3 ∼ ASZ0 ビットの設定には十分注意し
てください。
<注意事項>
• ASR と ACR はワードアクセスで同時に設定してください。
ASR,ACR をハーフワードでアクセスする場合には,ASR 設定後,ACR を設定して
ください。
• [bit 3 ∼ bit 0] TYP3 ∼ TYP0 についての制限事項は以下のとおりです。
- ライト許可設定をマスクで実現することはできません。
- ライト許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定として
ください。
- マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域
として動作します。
- ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると ,
ベース設定のない領域となり , 誤動作します。
146
第 4 章 外部バスインタフェース
4.2.3
AWR0 ∼ AWR7(Area Wait Register)
Area Wait Register の詳細を説明します。
■ AWR0 ∼ AWR7(Area Wait Register) のレジスタ構成
AWR0 ∼ AWR7 のレジスタ構成は , 以下のとおりです。
図 4.2-3 AWR0 ∼ AWR7 のレジスタ構成 ( 続く )
初期値
AWR0 上位
0000 0666H
15
14
13
12
11
10
9
8
INIT 時
W15
W14
W13
W12
W11
W10
W09
W08
01111111B
RST 時
アクセス
01111111B
R/W
11111111B
11111011B
AWR0 下位
0000 0661H
7
6
5
4
3
2
1
0
W07
W06
W05
W04
W03
W02
W01
W00
AWR1 上位
0000 0662H
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
AWR1 下位
0000 0663H
AWR2 上位
0000 0664H
AWR2 下位
0000 0665H
AWR3 上位
0000 0666H
AWR3 下位
0000 0667H
AWR4 上位
0000 0668H
AWR4 下位
0000 0669H
AWR5 上位
0000 066AH
AWR5 下位
0000 066BH
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
147
第 4 章 外部バスインタフェース
図 4.2-3 AWR0 ∼ AWR7 のレジスタ構成 ( 続き )
初期値
AWR6 上位
0000 066CH
AWR6 下位
0000 066DH
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
AWR7 上位
0000 066EH
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
AWR7 下位
0000 066FH
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
8
INIT 時
RST 時
アクセス
W08 XXXXXXXXB XXXXXXXXB R/W
0
W00 XXXXXXXXB 00000000B
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
AWR0 ∼ AWR7 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各
ビットの動作が変わります。
■ 通常アクセスおよびアドレス / データマルチプレックスアクセス
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアク
セス動作を行う領域となります。
TYP3
TYP2
TYP1
TYP0
アクセスタイプ
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, シングル / ページ / バースト ROM/
フラッシュ )
0
1
x
x
アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 )
通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての
AWR0 ∼ AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定です
ので , 各領域を CSER レジスタによって有効にする前に設定を行ってください。
[bit 15 ∼ bit 12] W15 ∼ W12= ファーストアクセスウェイトサイクル (First Access Wait
Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設定し
ます。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
W15
W14
W13
W12
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
1
1
1
1
自動ウェイトサイクル 15
ファーストアクセスウェイトサイクル
…
148
…
第 4 章 外部バスインタフェース
[bit 11 ∼ bit 8] W11 ∼ W08= ページ内アクセスウェイトサイクル
(Inpage Access Wait Cycle)
バーストアクセス時 , ページ内アクセスサイクルに挿入するオートウェイトサイクル
数を設定します。バーストアクセスサイクル以外では , 意味を持ちません。
W11
W10
W09
W08
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
1
1
1
1
自動ウェイトサイクル 15
ページ内アクセスウェイトサイクル
…
…
ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同じ値
を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイムは同
じにはならないことに注意してください (ページ内アクセスサイクルでは , アドレス出
力遅延が含まれるため ) 。
[bit 7,bit 6] W07,W06= リード→ライトアイドルサイクル
(Read → Write Idle Cycle)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場合
に , リードデータとライトデータのデータバス上での衝突を防ぐために設定します。ア
イドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子はハイイ
ンピーダンス状態を維持します。
リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へのア
クセスが発生した場合に指定したアイドルサイクルを挿入します。
W07
W06
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
リード→ライトアイドルサイクル
[bit 5,bit 4] W05,W04= ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制限
のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイクル
中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダンスを
維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必ずラ
イトリカバリサイクルが挿入されます。
W05
W04
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
ライトリカバリサイクル
149
第 4 章 外部バスインタフェース
[bit 3] W03=WR0, WR1, WR 出力タイミング選択
WR0, WR1, WR 出力タイミング設定は , ライトストローブ出力を非同期ストローブと
して使用するか , 同期ライトイネーブルとして使用するかを選択します。非同期スト
ローブとすることにより通常メモリ , I/O に対応し , 同期イネーブルとすることにより
クロック同期のメモリ , I/O(ASIC 内蔵メモリなど ) に対応します。
W03
WR0, WR1, WR 出力タイミング選択
0
MCLK 同期ライトイネーブル出力 (AS="L" から有効 )
1
非同期ライトストローブ出力 ( 通常動作 )
同期ライトイネーブルとした場合 (AWR:W03 ビットが "0") , 以下のような動作となり
ます。
• 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの MCLK
出力の立上りエッジで取り込まれることを前提としたタイミングになります。非同
期ストローブ出力とはタイミングが異なります。
• WR0, WR1 , WR 端子出力は , AS 端子出力がアサートされているタイミングから同
期ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 ,
同期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる
場合 , 同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートした次のクロックサイクルにて , 外部データ
出力端子よりライトデータを出力します。
• リードストローブ出力 (RD) は, WR0, WR1, WR出力タイミング設定の内容にかかわ
らず , 非同期リードストローブとして機能します。データの入出力方向制御にその
まま用いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
以下の追加ウェイト設定はしないでください。
- CSn → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください )
- ファーストアクセスウェイトサイクル設定(AWR:W15∼W12ビットは常に"0000B"
を書いてください )
• 以下のアクセスタイプ設定 (ACR レジスタ中の TYP3 ∼ TYP0 ビット (bit 3 ∼ bit 0)
は設定しないでください。
- アドレス / データマルチプレックスバス設定 (ACR:TYP2 ビットは常に "0" を書い
てください )
- WR0, WR1 をライトストローブとして使用する設定 (ACR:TYP1 ビットは常に "0"
を書いてください )
- RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください )
• 同期ライトイネーブル出力の場合 , バースト長は常に "1" (ACR:BST1, BST0 ビットに
"00B") を設定してください。
150
第 4 章 外部バスインタフェース
[bit 2] W02= アドレス→ CSn 遅延 (Address → CSn Delay)
アドレス→ CSn 遅延設定は , CSn の立下りに対してアドレスなどが一定のセットアッ
プを必要とする場合や, 連続して同一のチップセレクト領域にアクセスする際にもCSn
のエッジを必要とする場合などに設定します。
アドレスおよび AS 出力から , CS0 ∼ CS7 出力のディレイを設定します。
W02
アドレス→ CSn 遅延
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼
CS7 がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセス
を実行した場合 , 両アクセスの間も CS0 ∼ CS7 はアサートを継続したまま変化しない
ことがあります。アドレス→ CSn 遅延
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立上りか
ら CS0 ∼ CS7 がアサート開始されます。このとき , 同じチップセレクト領域に連続し
たアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS7 ネゲートタイミングが
発生します。
CSn 遅延ありを選択した場合は , 遅延させた CSn のアサートから , リード / ライトスト
ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01 の
CSn → RD/WR セットアップ設定と同等の動作となります )。
アドレス→ CSn 遅延設定は , 同一領域に対し出力される DACK 信号 ( 基本モード ) に
も同様に作用します。基本モードでの DACK 出力は , その領域に対する CSn と同じ波
形となります。
[bit 1] W01=CSn → RD/WR セットアップ延長サイクル (CSn → RD/WR setup)
CSn→RD/WRセットアップ延長サイクルは, CSnアサート後, リード/ライトストローブ
をアサートするまでの期間を延長する場合に設定します。CSn アサート後 , リード / ラ
イトストローブをアサートする前に最低 1 サイクルのセットアップ延長サイクルを挿
入します。
W01
CSn → RD/WR セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , 最速で , CSn アサート直後の外部メモリク
ロック MCLK 出力の立上りから RD/WR0, WR1/WR が出力されます。WR0, WR1/WR
は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定し , 1 サイクルを選択した場合は , RD/WR0, WR1/WR とも , 必ず 1 サイクル
以上遅れて出力されます。
同一チップセレクト領域内で , CSn をネゲートしないまま連続してアクセスする場合 ,
このセットアップ延長サイクルは挿入されません。アドレス確定のセットアップ延長
サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSn 遅延を挿入する
ことにより , 毎アクセス時に CSn がいったんネゲートされるため , このセットアップ延
長サイクルが有効となります。
W02 の CSn 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセット
アップサイクルが有効となります。
151
第 4 章 外部バスインタフェース
[bit 0] W00=RD/WR → CSn ホールド延長サイクル (RD/WR → CSn Hold Cycle)
RD/WR → CSn ホールド延長サイクルは , リード / ライトストローブネゲート後 , CSn ネ
ゲートまでの期間を延長する場合に設定します。リード / ライトストローブネゲート
後 , CSn をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。
W00
RD/WR → CSn ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , RD/WR0, WR1/WR がネゲートされた後の
外部メモリクロックMCLK出力の立上りエッジよりホールド遅延経過後に, CS0∼CS7
がネゲートされます。
"1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS7 は 1 サイクル遅れてネゲート
されます。
同一チップセレクト領域内で , CSn をネゲートしないまま連続してアクセスする場合 ,
このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サイクル
が必須となる場合 , W02 ビットを有効にしてアドレス→ CSn 遅延を挿入することによ
り , 毎アクセス時に CSn がいったんネゲートされるため , このホールド延長サイクルが
有効となります。
■ Memory type A(SDRAM/FCRAM) および Memory type B(FCRAM)
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域は , SDRAM/FCRAM アクセスを行う領域となります。
TYP3
TYP2
TYP1
TYP0
1
0
0
0
アクセスタイプ
Memory type A: SDRAM/FCRAM ( オートプリチャージは使用しません )
SDRAM アクセス領域に対しての , AWR6, AWR7 の各ビットの機能を以下に示します。
初期値が不定ですので, 各領域をCSERレジスタによって有効にする前に設定を行って
ください。
SDRAM/FCRAM を接続する領域では , 本レジスタの設定はすべて同じにしてくださ
い。
[bit 15] W15 = 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit 14 ∼ bit 12] W14 ∼ W12 = RAS-CAS ディレイサイクル
(RAS-CAS delay Cycle)
RAS 出力から CAS 出力までのサイクル数を設定してください。
W14
W13
W12
RAS-CAS ディレイサイクル
0
0
0
1 サイクル
0
0
1
2 サイクル
…
1
…
1
…
1
…
8 サイクル
SDRAM/FCRAM を接続する領域では , 本ビットによる RAS-CAS ディレイサイクルの
設定はすべて同じにしてください。
152
第 4 章 外部バスインタフェース
[bit 11] W11 = 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit 10 ∼ bit 8] W10 ∼ W08 = CAS レイテンシ (CAS latency Cycle)
CAS レイテンシを設定してください。
W10
W09
W08
CAS レイテンシ
0
0
0
1 サイクル
0
0
1
2 サイクル
…
1
…
1
…
1
8 サイクル
…
SDRAM/FCRAM を接続する領域では , 本ビットによる CAS レイテンシの設定はすべ
て同じにしてください。
[bit 7,bit 6] W07,W06= リード→ライトアイドルサイクル
(Read → Write Idle Cycle)
最後のリードデータ入力サイクルから , ライトコマンド発行までの最小サイクル数を
設定してください。
W07
W06
リード→ライトアイドルサイクル
0
0
1 サイクル
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAM を接続する領域では , 本ビットによるリード→ライトアイドルサイク
ルの設定はすべて同じにしてください。
[bit 5,bit 4] W05,W04= ライトリカバリサイクル (Write Recovery Cycle)
最後のライトデータ出力から , 次のリードコマンド発行までの最小サイクル数を設定
してください。
W05
W04
ライトリカバリサイクル
0
0
1 サイクル
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAM を接続する領域では , 本ビットによるライトリカバリサイクルの設定
はすべて同じにしてください。
153
第 4 章 外部バスインタフェース
[bit 3,bit 2] W03,W02 = RAS アクティブタイム (RAS Active time)
RAS アクティブタイムの最小サイクル数を設定してください。
W03
W02
RAS アクティブタイム
0
0
1 サイクル
0
1
2 サイクル
1
0
5 サイクル
1
1
6 サイクル
SDRAM/FCRAM を接続する領域では , 本ビットによる RAS アクティブタイムの設定
はすべて同じにしてください。
[bit 1,bit 0] W01,W00 = RAS プリチャージサイクル
(RAS precharge cycle)
RAS プリチャージサイクル数を設定してください。
W01
W00
RAS プリチャージサイクル
0
0
1 サイクル
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAM を接続する領域では , 本ビットによるプリチャージサイクルの設定は
すべて同じにしてください。
154
第 4 章 外部バスインタフェース
4.2.4
MCRA (Memory Configuration Register for extend
type-A: SDRAM/FCRAM オートプリチャージなし )
Memory Configuration Register for extend type-A の詳細を説明します。
■ MCRA (Memory Configuration Register for extend type-A) のレジスタ構成
MCRA のレジスタ構成は , 以下のとおりです。
図 4.2-4 MCRA のレジスタ構成
MCRA
初期値
31
0000 0670H
30
29
28
27
26
25
24
INIT 時
アクセス
RST 時
予約 PSZ2 PSZ1 PSZ0 WBST BANK ABS1 ABS0 XXXXXXXXB XXXXXXXXB
R/W
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域に接続する SDRAM/FCRAM の各種設定を行います。
TYP3
TYP2
TYP1
TYP0
1
0
0
0
アクセスタイプ
Memory type A: SDRAM/FCRAM ( オートプリチャージは使用しません )
MCRB とレジスタハードウェアを共用しています。したがって , MCRA を変更した場
合は MCRB も変更されます。
[bit 31] 予約 = 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit 30 ∼ bit 28] PSZ2 ∼ PSZ0 = ページサイズ (Page SiZe)
接続する SDRAM のページサイズを設定してください。
PSZ2
PSZ1
PSZ0
0
0
0
8 ビット コラムアドレス
= A0 ∼ A7
(256 ワード )
0
0
1
9 ビット コラムアドレス
= A0 ∼ A8
(512 ワード )
0
1
0
10 ビット コラムアドレス = A0 ∼ A9
0
1
1
11 ビット コラムアドレス = A0 ∼ A9, A11 (2048 ワード )
1
x
x
設定禁止
SDRAM ページサイズ
(1024 ワード )
[bit 27] WBST = ライトバースト設定 (Write BurST enable)
ライト時にバースト書込みを行うかどうかを設定してください。
WBST
データバス幅
0
シングルライト
1
バーストライト
なお , FCRAM を接続する場合は , 必ず "1" を設定してください。FCRAM は " バースト
リード , シングルライト " モードをサポートしていません。
155
第 4 章 外部バスインタフェース
[bit 26] BANK = バンク数設定 (BANK type select)
接続する SDRAM のバンク数を設定してください。
BANK
バンク数設定
0
2 バンク
1
4 バンク
[bit 25,bit 24] ABS1,ABS0 = アクティブバンク数設定 (Active Bank Select)
同時にアクティブにする最大バンク数を設定してください。
ABS1 ABS0
156
アクティブバンク数設定
0
0
1 バンク
0
1
2 バンク
1
0
3 バンク
1
1
4 バンク
第 4 章 外部バスインタフェース
4.2.5
MCRB (Memory Configuration Register for extend
type-B: FCRAM オートプリチャージあり )
Memory Configuration Register for extend type-B の詳細を説明します。
■ MCRB (Memory Configuration Register for extend type-B) のレジスタ構成
MCRB のレジスタ構成は , 以下のとおりです。
図 4.2-5 MCRB のレジスタ構成
MCRB
初期値
23
0000 0671H
22
21
20
19
18
17
16
INIT 時
アクセス
RST 時
予約 PSZ2 PSZ1 PSZ0 WBST BANK ABS1 ABS0 XXXXXXXXB XXXXXXXXB
R/W
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域に接続する FCRAM の各種設定を行います。
TYP3
TYP2
TYP1
TYP0
1
0
0
1
アクセスタイプ
Memory type B: FCRAM ( オートプリチャージを使用します )
MCRA とレジスタハードウェアを共用しています。したがって , MCRA を変更した場
合は MCRB も変更されます。
MCRA と同じ機能です。しかし , 本 TYPE 設定においては , WBST ビットの機能は使用
できません (FCRAM は " バーストリード , シングルライト " モードをサポートしてい
ません )。
157
第 4 章 外部バスインタフェース
4.2.6
IOWR0 ∼ IOWR2(I/O Wait Register for DMAC)
I/O Wait Register for DMAC の詳細を説明します。
■ IOWR0 ∼ IOWR2(I/O Wait Register for DMAC) のレジスタ構成
IOWR0 ∼ IOWR2 のレジスタ構成は , 以下のとおりです。
図 4.2-6 IOWR0 ∼ IOWR2 のレジスタ構成
IOWR0
初期値
31
0000 0678H
IOWR1
000679H
IOWR2
00067AH
30
29
28
27
26
25
24
INIT 時
RST 時
RYE0 HLD0 WR01 WR00 IW03 IW02 IW01 IW00 XXXXXXXXB XXXXXXXXB
23
22
21
20
19
18
17
14
13
12
11
10
9
R/W
16
RYE1 HLD1 WR11 WR10 IW13 IW12 IW11 IW10 XXXXXXXXB XXXXXXXXB
15
アクセス
R/W
8
RYE2 HLD2 WR21 WR20 IW23 IW22 IW21 IW20 XXXXXXXXB XXXXXXXXB
R/W
DMA フライバイアクセス時の各種ウェイトを設定します。
[bit 31,bit 23,bit 15] RYE0,RYE1,RYE2=RDY 機能設定 (ReadY Enable0,1,2)
DMA フライバイアクセス時 , ch0 ∼ ch2 ごとの RDY によるウェイト制御の設定を行い
ます。
RYEn (n: 0 ∼ 2)
RDY 機能設定
0
I/O アクセスに対する RDY 入力は無効となります。
1
I/O アクセスに対する RDY 入力が有効になります。
"1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDY 端子による
ウェイト挿入が可能となります。IOWR, IORD は RDY 端子がイネーブルになるまで ,
延長されます。また , メモリ側の RD/WR0, WR1/WR もそれに同期して延長されます。
フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY 有効に設定さ
れていれば , IOWR 側の RYE0 ∼ RYE2 ビットとは関係なく , RDY 端子によるウェイ
ト挿入が可能となります。また , フライバイ転送相手のチップセレクト領域で ACR レ
ジスタにより RDY 無効にされている場合でも , IOWR 側の RYE0 ∼ RYE2 ビットによ
り RDY 有効に設定されていれば , フライバイアクセス時のみ , RDY 端子によるウェイ
ト挿入が可能となります。
158
第 4 章 外部バスインタフェース
[bit 30,bit 22,bit 14] HLD0, HLD1,HLD2= ホールドウェイト設定
(HoLD wait control 0, 1, 2)
DMA フライバイアクセス時の転送元アクセス側のリードストローブ信号のホールド
サイクルを制御します。
HLDn (n:0 ∼ 2)
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長します。
"0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は RD,
I/O →メモリの場合は IORD) とライトストローブ信号 ( メモリ→ I/O の場合は IOWR,
I/O →メモリの場合は , WR0, WR1 および WR) は同じタイミングで出力されます。
"1" 設定時は , 転送元アクセス側データの転送先に対するホールドタイムを確保するた
め , ライトストローブ信号に対し , リードストローブ信号を "1" サイクル長く出力しま
す。
[bit 29,bit 28,bit 21,bit 20,bit 13,bit 12] WR00, WR01, WR10,WR11, WR20, WR21=I/O
アイドルサイクル設定 (I/O Idle Wait)
DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを設
定します。
WRn1 (n:0 ∼ 2) WRn0 (n:0 ∼ 2)
I/O アイドルサイクル設定
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に , I/O
アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイドルサイ
クル中は , すべての CS およびストローブ出力はネゲートされ , データ端子はハイイン
ピーダンスとなります。
[bit 27∼bit 24,bit 19∼bit 16,bit 11∼bit 8] IW03∼IW00, IW13∼IW10, IW23∼IW20=
I/O ウェイトサイクル (I/O access Wait)
DMA フライバイアクセス時の I/O アクセスの自動ウェイトサイクルを指定します。
IWn3 (n:0 ∼ 2)
IWn2 (n:0 ∼ 2)
IWn1 (n:0 ∼ 2)
IWn0 (n:0 ∼ 2)
I/O ウェイトサイクル
0
0
0
0
0 サイクル
0
0
0
1
1 サイクル
1
1
1
1
…
…
15 サイクル
ウェイトサイクルの挿入数は , 転送元と転送先とでのデータの同期のため , IWnn ビッ
トによる I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定のうち , 大
きいほうを使用します。そのため , IWnn ビットに設定したサイクル数より多いウェイ
トが挿入される場合があります。
159
第 4 章 外部バスインタフェース
4.2.7
CSER(Chip Select Enable register)
Chip Select Enable register の詳細を説明します。
■ CSER(Chip Select Enable register) のレジスタ構成
CSER のレジスタ構成は , 以下のとおりです。
図 4.2-7 CSER のレジスタ構成
初期値
31
0000 0680H
30
29
28
27
26
25
24
RST 時
CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B
アクセス
INIT 時
R/W
各チップセレクト領域の許可 / 禁止を設定します。
[bit 31 ∼ bit 24] CSE7 ∼ CSE0= チップセレクト領域許可 (Chip select enable 0 ∼ 7)
CS0 ∼ CS7 の各チップセレクト領域許可ビットです。
初期値は , "00000001B" で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定に従っ
て動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってください。
ただし , リフレッシュコントロールレジスタ (RCR) の PON ビットによるパワーオン
シーケンスの実行は , CSER によるチップセレクト領域の許可を行った後に開始してく
ださい。CSER で許可されていない領域に接続された SDRAM/FCRAM に対しては , パ
ワーオンシーケンスは無効となります。
CSEn (n: 0 ∼ 7)
領域コントロール
0
禁止
1
許可
表 4.2-2 に , CSE のビットと対応する CS を示します。
表 4.2-2 CSE のビットと対応する CS
160
CSE のビット
対応する CS
bit 24: CSE0
CS0
bit 25: CSE1
CS1
bit 26: CSE2
CS2
bit 27: CSE3
CS3
bit 28: CSE4
CS4
bit 29: CSE5
CS5
bit 30: CSE6
CS6
bit 31: CSE7
CS7
第 4 章 外部バスインタフェース
4.2.8
CHER(CacHe Enable register)
Cache Enable register の詳細を説明します。
■ CHER(CacHe Enable register) のレジスタ構成
CHER のレジスタ構成は , 以下のとおりです。
図 4.2-8 CHER のレジスタ構成
初期値
23
0000 0681H
22
21
20
19
18
17
16
アクセス
INIT 時
RST 時
CHE7 CHE6 CHE5 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B 11111111B
R/W
各チップセレクト領域から読み出したデータの内蔵キャッシュへの取込みを制御しま
す。
[bit 23 ∼ bit 16] CHE7 ∼ CHE0= キャッシュ領域設定 (Cache Enable 7 ∼ 0)
チップセレクト領域ごとに , 内蔵キャッシュへの取込みの許可・禁止を指定します。
CHEn (n:0 ∼ 7)
キャッシュ領域設定
0
非キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保存しません。)
1
キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保存します。)
161
第 4 章 外部バスインタフェース
4.2.9
TCR(Terminal and timing Control Register)
Terminal and timing Control Register の詳細を説明します。
■ TCR(Terminal and timing Control Register) のレジスタ構成
TCR のレジスタ構成は , 以下のとおりです。
図 4.2-9 TCR のレジスタ構成
初期値
7
6
5
4
3
2
1
0
アクセス
INIT 時
RST 時
0000 0683H BREN PSUS PCLR 予約 OHT1 OHT0 RDW1 RDW0 00000000B 0000XXXXB
R/W
共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラ全般
にかかわる機能を制御します。
[bit 7] BREN=BRQ 入力許可設定 (BRQ enable)
BRQ 端子入力を許可し , 外部バス共有を可能にします。
BREN
BRQ 入力許可設定
0
BRQ/BGRNT によるバス共有を行いません。BRQ 入力は無効となります。
1
BRQ/BGRNT によるバス共有を行います。BRQ 入力は有効となります。
初期状態 ("0") のときは , BRQ の入力を無視します。
"1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点でバスを
開放 ( ハイインピーダンス制御 ) し , BGRNT をアクティブ ("L" 出力 ) にします。
[bit 6] PSUS= プリフェッチ抑止 (Prefetch SUSpend)
すべての領域に対するプリフェッチの一時停止を制御します。
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ禁止
"1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。こ
の間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファの内
容は消去されませんので , プリフェッチを再開する前に bit 5:PCLR ビット機能により
プリフェッチバッファのクリアを行ってください。
162
第 4 章 外部バスインタフェース
[bit 5] PCLR= プリフェッチバッファ全クリア (Prefetch buffer CleaR)
プリフェッチバッファのすべての内容をクリアします。
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファクリ
アが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッチを中
断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と PCLR の
両ビットに同時に "10B" を書き込んで結構です ) 。
[bit 4] 予約 (reserved)
予約ビットです。必ず "0" を設定してください。
[bit 3,bit 2] OHT1, OHT0 = 出力ホールド遅延選択 (Output Hold Throttle)
外部メモリクロック MCLK 出力に対する外部制御信号出力のホールドのための遅延値
の調整を行います。
OHT1
OHT0
0
0
SYSCLK/MCLK の立下りから出力します。
0
1
SYSCLK/MCLK の立上りから ( 約 3ns) 遅延させて出力します。
1
0
SYSCLK/MCLK の立上りから ( 約 4ns) 遅延させて出力します。
1
1
SYSCLK/MCLK の立上りから ( 約 5ns) 遅延させて出力します。
出力ホールド遅延選択
遅延値はティピカル条件下における目標値です。
非同期のリードおよびライトストローブ (RD/WR0/WR1/WR/IOWR/IORD) , および遅
延させた CS の立下りタイミングは , この遅延値調整の対象にはなりません。
OHT1, OHT0は動作中に書き換えても誤動作しませんが, タイミング切換え時に一時外
部バス動作が停止します。
[bit 1,bit 0] RDW1, RDW0= ウェイトサイクル短縮 (ReDuce Wait cycle)
すべてのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセスサ
イクルウェイトの設定値を , AWR レジスタの設定値はそのままで自動ウェイトサイク
ルのみ一律に削減します。下記においてはウェイトサイクル短縮機能は影響しません。
• アドレスサイクルやリカバリサイクル , セットアップやホールドサイクルの設定
• アクセスタイプを SDRAM に設定してあるチップセレクト領域
RDW1
RDW0
0
0
0
1
AWR0 ∼ AWR7 の設定値の 1/2 (1 ビット右シフト )
1
0
AWR0 ∼ AWR7 の設定値の 1/4 (2 ビット右シフト )
1
1
AWR0 ∼ AWR7 の設定値の 1/8 (3 ビット右シフト )
ウェイトサイクル短縮
通常ウェイト (AWR0 ∼ AWR7 の設定値 )
この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設定を
大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイクルウェ
イトがかかることを防ぐためのものです。
163
第 4 章 外部バスインタフェース
通常 , このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれぞ
れ書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべての
AWR の設定は高速クロックのときの設定のままで , アクセスサイクルウェイトのみ 1
度に削減することができます。
クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくださ
い。
<注意事項>
(1) TCR レジスタは書込み専用レジスタ ( 読出しはできません。)
TCR レジスタは , ライトのみ可能です。TCR レジスタ値をリードすることはできませ
ん。
(2) TCR レジスタの BREN ビットの取扱いについて
TCR レジスタの bit 7:BREN ビットに "1" が書いてある状態から , "0" をライトしてバ
ス共有を禁止したい場合 , 必ず以下の手順で行ってください。
1. ポート 8 機能レジスタ PFRB の bit 2:BGRE ビットに "0" をライトする。
2. TCR レジスタの bit 7:BREN ビットに "0" をライトする。
この手順に従わない場合 , デバイスがハングアップすることがあります。
164
第 4 章 外部バスインタフェース
4.2.10
RCR(Refresh Control Register)
Refresh Control Register の詳細を説明します。
■ RCR(Refresh Control Register) のレジスタ構成
RCR のレジスタ構成は , 以下のとおりです。
図 4.2-10 RCR のレジスタ構成
RCRH
初期値
31
0000 0684H
RCRL
0000 0685H
30
29
28
27
26
25
24
INIT 時
アクセス
RST 時
00XXXXXXB 00XXXXXXB
R/W
BRST RFC2 RFC1 RFC0 PON TRC2 TRC1 TRC0 XXXX0XXXB XXXX0XXXB
R/W
SELF RRLD
23
22
RFINT5 RFINT4 RFINT3 RFINT2 RFINT1 RFINT0
21
20
19
18
17
16
SDRAM に対する各種リフレッシュ制御設定を行います。どの領域に対しても SDRAM
制御を設定していない場合 , 本レジスタの設定は意味を持ちませんが , その場合はレジ
スタ値を初期化状態から書き換えないでください。
リードモディファイライト (RMW) 系命令での読出し時は , SELF,RRLD,PON ビットは
必ず "0" を返します。
[bit 31] SELF = セルフリフレッシュ制御 (SELF refresh assert)
セルフリフレッシュモードに対応するメモリに対してセルフリフレッシュモードの制
御を行います。
SELF
セルフリフレッシュ制御
0
オートリフレッシュもしくはパワーダウン
1
セルフリフレッシュモードへ移行
"1" を設定すると SELF コマンド発行後セルフリフレッシュを行います。"0" を書き込
むとセルフリフレッシュモードを終了します。
ストップモードにする際 , SDRAM の内容を保持させたい場合は , ストップモードにす
る前に本ビットにてセルフリフレッシュモードにしてください。この際 , セルフリフ
レッシュ遷移前に集中リフレッシュを行いますので , それが終了するまでの間に発生
した外部アクセス要求は待たされます。また , ストップモードへの遷移も待たされま
す。
セルフリフレッシュモードからの解除は , 本ビットへの "0" 書込みか , または SDRAM
に対するアクセスの発生によって行われます。この際 , 解除直後に集中リフレッシュを
行いますので , SDRAM アクセスを含む外部アクセスを行うと , しばらくの間 , 外部ア
クセス要求が待たされ , CPU の動作が停止します。
セルフリフレッシュモードにしない状態でストップモードにすると , そのままパワー
ダウンモードとなり , SDRAM の内容は破壊されます。
リードモディファイライト (RMW) 系命令での読出し時は , 必ず "0" を返します。
165
第 4 章 外部バスインタフェース
[bit 30] RRLD = リフレッシュカウンタ起動制御 (Refresh counter ReLoaD)
リフレッシュカウンタの動作開始 , およびリロードを指示します。
RRLD
リフレッシュカウンタ起動制御
0
無効 ( 何もしません )
1
オートリフレッシュを 1 回実行し , RFINT の値をリロードします。
初期状態ではリフレッシュカウンタは停止しています。この状態で本ビットに "1" を設
定すると , その時点で CSER で有効になっているすべての SDRAM 領域に対し , 分散リ
フレッシュモード時はオートリフレッシュを 1 回 , 集中リフレッシュモード時は RFC
で指定された回数実行し , その後 RFINT5 ∼ RFINT0 ビットの値をリロードします。こ
れ以降 , リフレッシュカウンタはダウンカウントを開始し , カウンタ値が "000000B" か
らアンダフローを発生するたびに , RFINT5 ∼ RFINT0 ビットの値をリロードすると同
時にオートリフレッシュを 1 回実行する , という動作を繰り返します。リロード終了後
"0" に戻ります。
オートリフレッシュを停止させたい場合は , RFINT5 ∼ RFINT0 ビットに "000000B" を
書き込んでください。
リードモディファイライト (RMW) 系命令での読出し時は , 必ず "0" を返します。
[bit 29 ∼ bit 24] RFINT5 ∼ RFINT0 = オートリフレッシュインターバル
(ReFresh INTerval)
RFINT[5:0] は , オートリフレッシュの間隔を指定します。
オートリフレッシュ間隔は分散リフレッシュモード時 {(RFINT5 ∼ RFINT0 の値 ) ×
32 × ( 外部バスクロックサイクル )} , 集中リフレッシュモード時 {(RFINT5 ∼ RFINT0
の値 ) × 32 × (RFC での指定回数 ) × ( 外部バスクロックサイクル )} で求めることが
できます。
オートリフレッシュを停止させたい場合は , RFINT5 ∼ RFINT0 ビットに "000000B" を
書き込んでください。
なお , オートリフレッシュコマンドを発行している時間も , リフレッシュカウンタはダ
ウンカウントを行っています。
[bit 23] BRST = バーストリフレッシュ制御 (BuRST refresh select)
オートリフレッシュの際の動作モードを制御します。
BRST
オートリフレッシュモードの制御
0
分散リフレッシュ ( 分散してオートリフレッシュを起動します。)
1
バーストリフレッシュ (1 回に連続してオートリフレッシュを起動します。)
分散リフレッシュを設定している場合 , 1 回のリフレッシュ間隔ごとに 1 回 , オートリ
フレッシュコマンドを発行します。
バーストリフレッシュを設定している場合 , 1 回のリフレッシュ間隔ごとに , リフレッ
シュカウンタに設定した回数のオートリフレッシュコマンドを連続して発行します。
166
第 4 章 外部バスインタフェース
[bit 22 ∼ bit 20] RFC2 ∼ RFC0= リフレッシュ回数 (ReFresh Count)
SDRAM すべてをリフレッシュするために必要なリフレッシュ回数を指定します。
RFC2
RFC1
RFC0
リフレッシュ回数
0
0
0
256
0
0
1
512
0
1
0
1024
0
1
1
2048
1
0
0
4096
1
0
1
8192
1
1
0
設定禁止
1
1
1
リフレッシュ禁止
ここで指定されたリフレッシュ回数は , セルフリフレッシュモード遷移前および遷移
後に実行される集中リフレッシュの際の回数となります。また , BRST ビットにより
バーストリフレッシュを選択している場合は, リフレッシュインターバル1回ごとに発
行されるリフレッシュコマンドの回数となります。
[bit 19] PON = パワーオン制御 (Power ON)
SDRAM(FCRAM) のパワーオンシーケンスを制御します。
PON
パワーオン制御
0
無効 ( 何もしません )
1
パワーオンシーケンス開始
PON ビットに "1" を書き込むことにより , SDRAM のパワーオンシーケンスを開始しま
す。パワーオンシーケンスを開始する前に必ず対応する AWR, MCRA(B), CSER などの
レジスタを設定してください。パワーオンシーケンスを開始すると本ビットは "0" に
戻ります。
PON ビットを有効にするときには , RFINT の設定と RRLD を有効にしてリフレッシュカ
ウンタも動作させてください。PON ビットのみでは , リフレッシュ動作は行いません。
SELF ビットと同時に有効にしないでください。
リードモディファイライト (RMW) 系命令での読出し時は , 必ず "0" を返します。
[bit 18 ∼ bit 16] TRC2 ∼ TRC0 = リフレッシュサイクル (tRC) 設定
(Time of Refresh Cycle)
リフレッシュサイクル (tRC) を設定してください。
TRC2
TRC1
TRC0
リフレッシュサイクル (tRC)
0
0
0
4
0
0
1
5
0
1
0
6
0
1
1
7
1
0
0
8
1
0
1
9
1
1
0
10
1
1
1
11
167
第 4 章 外部バスインタフェース
4.3
チップセレクト領域
外部バスインタフェースは全 8 領域分のチップセレクト領域が設定できます。
各領域のアドレス空間は ASR0 ∼ ASR7(Area Select Register) と ACR0 ∼
ACR7(Area Configuration Register) で 4G バイトの空間に , 最小 64K バイト単位
で任意に配置することができます。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセ
スサイクル中に対応するチップセレクト信号 CS0 ∼ CS7 がアクティブ ("L" 出力 )
になります。
■ ASR および ASZ3 ∼ ASZ0 の設定例
• ASR1=0003H ACR1->ASZ3 ∼ ASZ0=0000B
チップセレクト領域 1 は , "00030000H" から "0003FFFFH" に割り当てられます。
• ASR2=0FFCH ACR2->ASZ3 ∼ ASZ0=0010B
チップセレクト領域 2 は , "0FFC0000H" から "10000000H" に割り当てられます。
• ASR3=0011H ACR3->ASZ3 ∼ ASZ0=0100B
チップセレクト領域 3 は , " 00100000H" から "00200000H" に割り当てられます。
このとき , ACR->ASZ3 ∼ ASZ0 が 1M バイトの設定になっていますので , バウンダリ
は 1M バイト単位となり , ASR3[19:16] は無視されます。
リセット後は , ACR0 に書込みが行われるまでの間 , "00000000H" ∼ "FFFFFFFFH" が
チップセレクト領域 0 に割り当てられます。
<注意事項>
チップセレクト領域は , お互いにオーバラップしないように設定してください。
CS2 の領域は USB ファンクションに接続されています ( 予約領域 )。
CS3 の領域は使用禁止です。
168
第 4 章 外部バスインタフェース
図 4.3-1 にチップセレクト領域を示します。
図 4.3-1 チップセレクト領域
(初期値)
00000000H
(例)
00000000H
00030000H
領域1
64Kバイト
領域3
1Mバイト
領域2
256Kバイト
00040000H
00100000H
領域0
00200000H
0FFC0000H
0FFFFFFFH
FFFFFFFFH
FFFFFFFFH
169
第 4 章 外部バスインタフェース
4.4
エンディアンとバスアクセス
エンディアンとバスアクセスについて説明します。
■ エンディアンとバスアクセス
4.4.1 データバス幅と制御信号との関係
4.4.2 ビッグエンディアンのバスアクセス
4.4.3 リトルエンディアンのバスアクセス
4.4.4 外部アクセス
170
第 4 章 外部バスインタフェース
データバス幅と制御信号との関係
4.4.1
WR3∼WR0の制御信号は, データバス幅に関係なくデータバスのバイト位置に常に1
対 1 に対応します。
下記にバスモード別に設定されたデータバス幅で使用されるデータバスのバイト位
置とそれに対応する制御信号をまとめます。
■ 通常バスインタフェース
図 4.4-1 に , 通常バスインタフェースの制御信号を示します。
図 4.4-1 通常バスインタフェースの制御信号
a)16ビットバス幅
データバス
制御記号
b)8ビットバス幅
データバス
WR0
(UUB)
制御記号
WR0
(UUB)
WR1
(ULB)
-
-
-
-
-
-
-
-
-
-
(D15~D0は未使用)
(D23~D0は未使用)
■ 時分割入出力インタフェース
図 4.4-2 に , 時分割入出力インタフェースの制御信号を示します。
図 4.4-2 時分割入出力インタフェースの制御信号
a)16ビットバス幅
b)8ビットバス幅
データバス 出力アドレス 制御記号
D31
D16
A15~A8
WR0
A7~A0
WR1
データバス 出力アドレス
制御記号
A7~A0
WR0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
(D15~D0は未使用)
(D23~D0は未使用)
171
第 4 章 外部バスインタフェース
■ SDRAM(FCRAM) インタフェース
図 4.4-3 に , SDRAM(FCRAM) インタフェースの制御信号を示します。
図 4.4-3 SDRAM(FCRAM) インタフェースの制御信号
a)16ビットバス幅
データバス
制御記号
b)8ビットバス幅
データバス
DQMUU
DQMUU
DQMUL
-
-
-
-
-
-
-
-
-
-
(D15~D0は未使用)
172
制御記号
(D23~D0は未使用)
第 4 章 外部バスインタフェース
4.4.2
ビッグエンディアンのバスアクセス
FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト
ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "0" に
設定した場合は , その領域はビッグエンディアンとして扱います。
通常 FR ファミリは , ビッグエンディアンで外部バスアクセスを行います。
■ ビッグエンディアンのデータフォーマット
図 4.4-4 に , ワードアクセス (LD, ST 命令実行時 ) のデータフォーマットによる内部レ
ジスタと外部データバスとの関係を示します。
図 4.4-4 ワードアクセス (LD, ST 命令実行時 )
内部レジスタ
D31
AA
D23
BB
D15
CC
D7
DD
D0
外部バス
D31
AA
D23
BB
D15
CC
D7
DD
D0
図 4.4-5 に , ハーフワードアクセス (LDUH, STH 命令実行時 ) のデータフォーマットに
よる内部レジスタと外部データバスとの関係を示します。
図 4.4-5 ハーフワードアクセス (LDUH, STH 命令実行時 )
a)出力アドレス下位"00"
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
BB
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
AA
D7
D7
BB
D0
BB
D0
173
第 4 章 外部バスインタフェース
図 4.4-6 に , バイトアクセス (LDUB, STB 命令実行時 ) のデータフォーマットによる内
部レジスタと外部データバスとの関係を示します。
図 4.4-6 バイトアクセス (LDUB, STB 命令実行時 )
a)出力アドレス下位"00"
b)出力アドレス下位"01"
c)出力アドレス下位"10"
d)出力アドレス下位"11"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
D23
D23
D23
D23
D23
D23
D15
D15
D15
D15
D15
D7
D7
AA
D15
D15
D15
AA
D7
D7
D7
AA
D7
D7
AA
D0
AA
D0
D0
D0
D0
D7
AA
D0
D0
■ ビッグエンディアンのデータバス幅
図 4.4-7 に , 16 ビットバス幅のデータバス幅を示します。
図 4.4-7 16 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
“00”“10”
D31
D23
D15
D7
AA
リード/ライト
BB
AA
CC
BB
DD
D31
D23
CC
DD
図 4.4-8 に , 8 ビットバス幅のデータバス幅を示します。
図 4.4-8 8 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D7
174
AA
BB
CC
DD
リード/ライト
“00” “01” “10” “11”
AA
BB
CC
DD
D31
AA
D0
第 4 章 外部バスインタフェース
■ 外部バスアクセス
16 ビット /8 ビットバス幅のそれぞれにおけるワード / ハーフワード / バイトアクセス
時のアクセス位置 , プログラムアドレスと出力アドレス , バスアクセス回数をまとめま
す。
PA1/PA0
:
プログラムで指定したアドレス下位 2 ビット
出力 A1/A0
:
出力するアドレスの下位 2 ビット
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
+
①∼④
参考 :
FR ファミリは , ミスアラインエラーを検出しません。
したがって,ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビットが "00B",
"01B", "10B", "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" となり , ハーフ
ワードアクセスの場合 , "00B", "01B" のときには "00B" に , "00B", "01B" のときには "10B" になります。
● 16 ビットバス幅
図 4.4-9 に , 16 ビットバス幅の各アクセスを示します。
図 4.4-9 16 ビットバス幅の各アクセス
(A)
ワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a)PA1/PA0=“00”
(b)PA1/PA0=“01”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
②出力A1/A0=“10”
②出力A1/A0=“10”
②出力A1/A0=“10”
②出力A1/A0=“10”
MSB
LSB
①
00
01
①
00
01
①
00
01
①
00
01
②
10
11
②
10
11
②
10
11
②
10
11
16ビット
(B)
ハーフワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=“00”
(b) PA1/PA0=“01”
→①出力A1/A0=“00”
→①出力A1/A0=“00” →①出力A1/A0=“10” →①出力A1/A0=“10”
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
(C)
バイトアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a)PA1/PA0=“00”
(b)PA1/PA0=“01”
→①出力A1/A0=“11”
→①出力A1/A0=“00”
→①出力A1/A0=“01” →①出力A1/A0=“10”
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
175
第 4 章 外部バスインタフェース
● 8 ビットバス幅
図 4.4-10 に , 8 ビットバス幅の各アクセスを示します。
図 4.4-10 8 ビットバス幅の各アクセス
(A)
ワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a)PA1/PA0=“00”
(b) PA1/PA0=“01”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00” →①出力A1/A0=“00”
②出力A1/A0=“01”
②出力A1/A0=“01”
②出力A1/A0=“01”
②出力A1/A0=“01”
③出力A1/A0=“10”
③出力A1/A0=“10”
③出力A1/A0=“10”
③出力A1/A0=“10”
④出力A1/A0=“11”
④出力A1/A0=“11”
④出力A1/A0=“11”
④出力A1/A0=“11”
MSB
LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8ビット
(B)
ハーフワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a)PA1/PA0=“00”
(b)PA1/PA0=“01”
→①出力A1/A0=“10”
→①出力A1/A0=“00”
→①出力A1/A0=“00” →①出力A1/A0=“10”
②出力A1/A0=“11”
②出力A1/A0=“11”
②出力A1/A0=“01”
②出力A1/A0=“01”
①
00
②
01
①
00
00
00
②
01
01
01
10
10
①
10
①
10
11
11
②
11
②
11
(C)
バイトアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a)PA1/PA0=“00”
(b)PA1/PA0=“01”
→①出力A1/A0=“10” →①出力A1/A0=“11”
→①出力A1/A0=“00”
→①出力A1/A0=“01”
①
00
01
176
00
00
00
01
01
01
10
10
10
10
11
11
①
①
11
①
11
第 4 章 外部バスインタフェース
■ 外部との接続例
図 4.4-11 に MB91305 と外部装置との接続の例を示します。
図 4.4-11 外部装置との接続
MB91305
D24
D16
WR0
~
~
D23
D31
0
D15
*:16ビット/8ビットデバイスの場合は,
本LSIのMSB側のデータバスを使用します。
WR1
1
D8 D7
0
D0
*
16ビットデバイス
D7
D0
8ビットデバイス*
("0"/"1"アドレス下位1ビット)
177
第 4 章 外部バスインタフェース
4.4.3
リトルエンディアンのバスアクセス
FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト
ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "1" に
設定した場合は , その領域はリトルエンディアンとして扱います。
■ リトルエンディアンの概要
FR ファミリのリトルエンディアンバスアクセスは , ビッグエンディアン時のバスアク
セス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御信
号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることによ
り実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必
要がありますので , 十分注意が必要です。
• 出力するアドレスの順番はビッグエンディアン / リトルエンディアンで変わりませ
ん。
• ワードアクセス :
ビッグエンディアンのアドレス A1, A0=00 に対応する MSB 側のバイトデータが , リ
トルエンディアンでは LSB 側のバイトデータになります。
ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。
• ハーフワードアクセス :
ビッグエンディアンのアドレス A0 に対応する MSB 側のバイトデータが , リトルエ
ンディアンでは LSB 側のバイトデータになります。
ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置が反転し
ます。
• バイトアクセス :
ビッグエンディアン / リトルエンディアンとも同じです。
• 16/8 ビットバス幅で使用するデータバス / 制御信号は , ビッグエンディアン / リトル
エンディアン で変わりません。
〔リトルエンディアン領域に対する制限事項〕
• リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に
対するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファ
に読み出されたデータをワード長以外でアクセスすると , 正しくエンディアン変換
が行われず , 誤ったデータを読み出してしまいます。これは , エンディアン変換機
構のハードウェア的な制限によるものです。
• リトルエンディアン領域には , 命令コードを配置しないでください。
178
第 4 章 外部バスインタフェース
■ リトルエンディアンのデータフォーマット
図 4.4-12 に , ワードアクセス時 (LD, ST 命令実行時 ) のデータフォーマットによる内部
レジスタと外部データバスとの関係を示します。
図 4.4-12 ワードアクセス時 (LD, ST 命令実行時 )
内部レジスタ 外部バス
D31
D31
AA
DD
D23
D23
BB
CC
D15
D15
CC
BB
D7
D7
DD
AA
D0
D0
図 4.4-13 に , ハーフワードアクセス時 (LDUH, STH 命令実行時 ) のデータフォーマット
による内部レジスタと外部データバスとの関係を示します。
図 4.4-13 ハーフワードアクセス時 (LDUH, STH 命令実行時 )
a)出力アドレス下位"00"
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
BB
D23
D23
AA
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
BB
BB
AA
D7
D7
D0
D0
図 4.4-14 に , バイトアクセス時 (LDUB, STB 命令実行時 ) のデータフォーマットによる
内部レジスタと外部データバスとの関係を示します。
図 4.4-14 バイトアクセス時 (LDUB, STB 命令実行時 )
a)出力アドレス下位"00"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
b)出力アドレス下位"01"
c)出力アドレス下位"10"
d)出力アドレス下位"11"
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
D23
D23
D23
D23
D23
D23
D15
D15
D15
D15
D15
D7
D7
AA
D15
D15
D15
AA
D7
D7
D7
AA
D0
D7
D7
AA
D0
D0
AA
D0
D0
D7
AA
D0
D0
AA
D0
179
第 4 章 外部バスインタフェース
■ リトルエンディアンのデータバス幅
図 4.4-15 に , 16 ビットバス幅のデータバス幅を示します。
図 4.4-15 16 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
“00”“10”
D31
D23
D15
D7
AA
リード/ライト
BB
DD
BB
CC
AA
D31
D23
CC
DD
図 4.4-16 に , 8 ビットバス幅のデータバス幅を示します。
図 4.4-16 8 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D7
180
AA
BB
CC
DD
リード/ライト
“00” “01” “10” “11”
DD
CC
BB
AA
D31
第 4 章 外部バスインタフェース
■ 外部との接続例
図 4.4-17 に , MB91305 とエンディアンの接続を示します。
図 4.4-17 MB91305 とエンディアンの接続
● 16 ビットバス幅
MB91305
~
~
D31
D24
D23
WR0
D16
0
D15
WR1
D8 D7
0
1
1
D0
D15
ビッグエンディアン領域
D8 D7
D0
リトルエンディアン領域
● 8 ビットバス幅
MB91305
~
D31
D24
D7
WR0
D0
ビッグエンディアン領域
D7
D0
リトルエンディアン領域
181
第 4 章 外部バスインタフェース
4.4.4
外部アクセス
エンディアンモードおよびバス幅による内部レジスタと外部データバスとの関係に
ついて説明します。
■ ワードアクセス
ワードアクセスの場合は以下のとおりです。
図 4.4-18 ワードアクセス
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ 外部端子
D31
制御端子
リトルエンディアンモード
内部レジスタ
WR0
AA
DD BB
BB
WR1
BB
CC AA
BB DD
D31
CC
- -
-
DD
- -
-
D0
D31
D31
外部端子
CC
- -
-
DD
- -
-
D0
WR0
-
- - - -
-
DD
- - - -
-
外部端子
制御端子
アドレス:“0”
“1”
“2”
“3”
D31
AA
DD CC BB AA
D24
BB
- - - -
③ ④
WR0
-
CC
- - - -
-
DD
- - - -
-
D0
① ②
182
内部レジスタ
D31
CC
D0
WR1
① ②
制御端子
アドレス:“0”
“1”
“2”
“3”
D31
AA
AA BB CC DD
D24
- - - -
BB
WR0
D16
① ②
内部レジスタ
制御端子
アドレス:“0”“2”
アドレス:“0”
“2”
D31
AA
AA CC
D16
8 ビット
バス幅
外部端子
① ②
③ ④
第 4 章 外部バスインタフェース
■ ハーフワードアクセス
ハーフワードアクセスの場合は以下のとおりです。
表 4.4-1 ハーフワードアクセス
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ 外部端子
D31
アドレス:“0”
D31
AA
制御端子
リトルエンディアンモード
内部レジスタ 外部端子
D31
WR0
BB
アドレス:“0”
D31
BB
WR1
AA
-
-
BB
-
-
AA
-
-
BB
-
-
D0
①
①
内部レジスタ 外部端子
アドレス:“2”
D31
CC
制御端子
内部レジスタ
D31
WR0
DD
外部端子
アドレス:“2”
D31
DD
WR1
CC
-
-
DD
-
-
CC
-
-
DD
-
-
D0
①
①
内部レジスタ 外部端子
制御端子
アドレス:“0”“1”
D31
AA BB
D24
- -
AA
- -
BB
- -
D0
内部レジスタ 外部端子
WR0
-
-
AA
- -
-
BB
- -
WR0
-
D0
① ②
内部レジスタ 外部端子
制御端子
アドレス:“2”“3”
D31
CC DD
CC
- -
DD
- -
D24
① ②
内部レジスタ 外部端子
制御端子
WR0
-
アドレス:“2”“3”
D31
DD CC
D24
- -
-
CC
- -
-
DD
- -
D31
WR0
-
D0
D0
-
-
D0
D0
- -
制御端子
アドレス:“0”“1”
D31
BB AA
D24
- -
D31
① ②
D31
WR1
D16
D0
D31
制御端子
WR0
CC
D16
8 ビット
バス幅
WR1
D16
D0
D31
WR0
AA
D16
制御端子
D0
-
-
D0
① ②
183
第 4 章 外部バスインタフェース
■ バイトアクセス
バイトアクセスの場合は以下のとおりです。
表 4.4-2 バイトアクセス (1 / 2)
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ 外部端子
D31
アドレス:“0”
D31
AA
制御端子
リトルエンディアンモード
内部レジスタ 外部端子
D31
WR0
アドレス:“0”
D31
AA
D16
-
-
-
-
D0
AA
-
-
-
-
D0
①
①
内部レジスタ 外部端子
D31
制御端子
アドレス:“1”
D31
内部レジスタ 外部端子
D31
BB
-
WR1
BB
D16
-
-
-
D0
BB
D0
①
D31
アドレス:“2”
D31
CC
WR1
D16
-
内部レジスタ 外部端子
制御端子
-
-
-
-
①
内部レジスタ 外部端子
D31
WR0
アドレス:“2”
D31
CC
-
-
-
-
-
CC
-
-
-
-
D0
①
①
内部レジスタ 外部端子
制御端子
アドレス:“3”
D31
内部レジスタ 外部端子
D31
DD
-
WR1
DD
D16
DD
-
-
-
DD
D0
①
WR1
D16
-
D0
制御端子
アドレス:“3”
D31
-
184
WR0
D16
D0
D31
制御端子
-
D16
CC
制御端子
アドレス:“1”
D31
-
BB
WR0
-
-
D16
AA
制御端子
-
-
-
-
①
第 4 章 外部バスインタフェース
表 4.4-2 バイトアクセス (2 / 2)
ビッグエンディアンモード
8 ビット
バス幅
内部レジスタ 外部端子
制御端子
リトルエンディアンモード
内部レジスタ 外部端子
アドレス:“0”
D31
アドレス:“0”
D31
AA
D31
D31
WR0
AA
WR0
D24
AA
D24
-
-
-
-
-
-
-
-
-
-
-
-
D0
AA
D0
①
内部レジスタ 外部端子
D31
アドレス:“1”
D31
BB
D24
-
BB
①
制御端子
内部レジスタ 外部端子
D31
WR0
BB
WR0
D24
-
-
-
-
-
-
-
-
-
-
-
BB
D0
①
内部レジスタ 外部端子
アドレス:“2”
D31
CC
D24
-
CC
①
制御端子
内部レジスタ 外部端子
制御端子
アドレス:“2”
D31
D31
WR0
CC
WR0
D24
-
-
-
-
-
-
-
-
-
-
-
D0
CC
D0
①
内部レジスタ 外部端子
D31
制御端子
アドレス:“1”
D31
D0
D31
制御端子
アドレス:“3”
D31
DD
D24
-
DD
①
制御端子
内部レジスタ 外部端子
制御端子
アドレス:“3”
D31
D31
WR0
DD
WR0
D24
-
-
-
-
-
-
-
-
-
-
-
D0
DD
D0
①
①
185
第 4 章 外部バスインタフェース
4.5
通常バスインタフェース
通常バスインタフェースでは , リードアクセス / ライトアクセスともに 2 クロックサ
イクルが基本バスサイクルになります。
■ 基本タイミング ( アクセスが連続する場合 )(TYP3 ∼ TYP0= 0000B, AWR=0008H)
図 4.5-1 に , アクセスが連続する場合の基本タイミングを示します。
図 4.5-1 アクセスが連続する場合の基本タイミング
MCLK
A23~A0
#2
#1
AS
CSn
RD
リード
D31~D16
#1
#2
WRn
ライト
D31~D16
#1
#2
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A23 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス
をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS7 は , AWR0 ∼ AWR7 レジスタの W02 ビットが "0" のときは AS と同じタ
イミングでアサートし , 連続するアクセスがある場合には CS0 ∼ CS7 はネゲートし
ません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼
CS7 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ
ゲートします。
186
第 4 章 外部バスインタフェース
• RD, WR0, WR1 は , バスアクセス第二サイクルからアサートします。AWR レジスタ
W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0, WR1
をアサートするタイミングは AWR レジスタの W01 ビットを "1" に設定することに
より 1 サイクル遅らせることができます。
• TYP3∼TYP0=0x0xB のようにWR0, WR1を使用する設定の場合WRは"H"固定です。
• リードアクセスの場合, RDアサート後ウェイトサイクルが終了したサイクルのMCLK
の立上りで D31 ∼ D16 を取り込みます。
• ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D31 ∼ D16 に
データを出力します。
■ WR+ バイトコントロールタイプ (TYP3 ∼ TYP0= 0010B, AWR=0008H)
図 4.5-2 に , WR+ バイトコントロールタイプのタイミングを示します。
図 4.5-2 WR+ バイトコントロールタイプのタイミング
MCLK
A23~A0
AS
CSn
RD
WR0
リード
WR1
D31~D16
WR
ライト
WR0
WR1
D31~D16
• AS, CSn, RD, A23 ∼ A0, D31 ∼ D0 は ,「■ 基本タイミング ( アクセスが連続する場
合 )(TYP3 ∼ TYP0= 0000B, AWR=0008H)」と同様の動作を行います。
• WR は , バスアクセス第二サイクルからアサートします。AWR レジスタ W15 ∼ W12
187
第 4 章 外部バスインタフェース
ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0, WR1 をアサー
トするタイミングは AWR レジスタ W01 ビットを "1" に設定することにより 1 サイ
クル遅らせることができます (「■ 基本タイミング ( アクセスが連続する場合 )
(TYP3 ∼ TYP0= 0000B, AWR=0008H)」の WR0, WR1 と同様の動作を行います )。
• WR0, WR1 は , バイトイネーブル信号としてアクセスするバイト位置を負論理で示
します。バスアクセス開始サイクルからバスサイクル終了までアサートします。ア
ドレスと同じタイミングで変化します。リード / ライトアクセスともにアクセスす
るバイト位置を示します。
• TYP3 ∼ TYP0=0X0XB(WR0, WR1 使用 ), TYP3 ∼ TYP0=0X1XB(WR+ バイトコント
ロール ) の領域を混在させる場合には , 使用するすべての領域にて , 必ず以下の設定
を行ってください ( 詳細は注意事項を参照 )。
- リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください。
- ライトリカバリサイクルを最低 1 サイクル以上設定してください。
■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H)
図 4.5-3 に , リード→ライトタイミングを示します。
図 4.5-3 リード→ライトタイミング
リード
アイドル
ライト
MCLK
A23~A0
AS
CSn
RD
WRn
D31~D16
• AWR レジスタの W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサ
イクル挿入が可能です。
• リード側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで
ある場合 , このアイドルサイクルを挿入します。
188
第 4 章 外部バスインタフェース
■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H)
図 4.5-4 に , ライト→ライトタイミングを示します。
図 4.5-4 ライト→ライトタイミング
ライト
ライト
リカバリ
ライト
MCLK
A23~A0
AS
CSn
WRn
D31~D16
• AWR レジスタの W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでのライトリカ
バリサイクルを挿入可能です。
• すべてのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルは発生します。
189
第 4 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H)
図 4.5-5 に , 自動ウェイトタイミングを示します。
図 4.5-5 自動ウェイトタイミング
基本サイクル
ウェイトサイクル
MCLK
A23~A0
AS
CSn
RD
リード
D31~D16
WRn
ライト
D31~D16
• AWR レジスタの W15 ∼ W12 ビット ( ファーストウェイトサイクル ) の設定により
自動ウェイトサイクルを , 0 ∼ 15 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと
なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル +
( ファーストウェイトサイクル ) となります。ライトの場合は内部状態によりさらに
長くなることがあります。
190
第 4 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H)
図 4.5-6 に , 外部ウェイトタイミングを示します。
図 4.5-6 外部ウェイトタイミング
基本サイクル
自動ウェイト
2サイクル
RDYによる
ウェイト
サイクル
MCLK
A23~A0
AS
CSn
RD
リード
D31~D16
WRn
ライト
D31~D16
RDY
解除
ウェイト
ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることによ
り外部ウェイトサイクルを挿入可能です。図 4.5-6 において , 自動ウェイトサイクルに
よるウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動ウェイ
トサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。また , いっ
たんウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで , RDY 入力
端子の値は無効になります。
191
第 4 章 外部バスインタフェース
■ 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B, AWR=0000H)
図 4.5-7 に , 同期ライトイネーブル出力タイミングを示します。
図 4.5-7 同期ライトイネーブル出力タイミング
MCLK
A23~A0
#2
#1
AS
CSn
RD
リード
D31~D16
#1
#2
WRn
ライト
D31~D16
#1
#2
同期ライトイネーブルとした場合 (AWR:W03 ビットが 1) , 以下のような動作となりま
す。
• WR0, WR1, WR 端子出力は , AS 端子出力がアサートされているタイミングで , 同期
ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同
期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる場
合 , 同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートした次のクロックサイクルにて , 外部データ
出力端子よりライトデータを出力します。
• リードストローブ出力 (RD) は, WR0, WR1, WR出力タイミング設定の内容にかかわ
らず , 非同期リードストローブとして機能します。データの入出力制御にそのまま
用いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
192
第 4 章 外部バスインタフェース
- 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の
追加ウェイト設定はしないでください。
・CS → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください )
・ファーストウェイトサイクル設定 (AWR:W15 ∼ W12 ビットは常に "0000B" を
書いてください )
- 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の
アクセスタイプ設定 (ACR レジスタ中の TYP3 ∼ TYP0 ビット (bit 3 ∼ bit 0) は
設定しないでください。
・マルチプレックスバス設定 (ACR:TYP2 ビットは常に "0" を書いてください )
・RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください )
- 同期ライトイネーブル出力の場合 , バースト長は常に "1" (BST1, BST0 ビットに
"0") を設定してください。
■ CSn 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH)
図 4.5-8 に , CSn 遅延設定を示します。
図 4.5-8 CSn 遅延設定
MCLK
A23~A0
AS
CSn
RD
リード
D31~D16
WRn
ライト
D31~D16
W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続するアク
セスがある場合ネゲート期間を挿入します。
193
第 4 章 外部バスインタフェース
■ CSn → RD/WR セットアップ・RD/WR → CSn ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH)
図 4.5-9 に , CSn → RD/WR セットアップ・RD/WR → CSn ホールド設定を示します。
図 4.5-9 CSn → RD/WR セットアップ・RD/WR → CSn ホールド設定
MCLK
A23~A0
AS
CSn
CSn->RD/WR
遅延
RD/WR->CSn
遅延
RD
リード
D31~D16
WRn
ライト
D31~D16
• AWR レジスタの W01 ビットを "1" に設定することにより , CSn → RD/WR セット
アップディレイを設定可能です。チップセレクトアサート後 , リード / ライトスト
ローブまでの期間を延長する場合に設定します。
• AWR レジスタの W00 ビットを "1" に設定することにより , RD/WR → CSn ホールド
ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト
ネゲートまでの期間を延長する場合に設定します。
• CSn → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSn ホールドディ
レイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSn → RD/WR セットアップディレイ , RD/WR → CSn ホールド
ディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSn 遅延設定 (AWR レジスタの W02 ビット ) を "1"
に設定してください。
194
第 4 章 外部バスインタフェース
■ DMA フライバイ転送 (I/O →メモリ )(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=51H)
図 4.5-10 に , DMA フライバイ転送 (I/O →メモリ ) を示します。
• メモリ側のウェイト設定なしの場合
図 4.5-10 DMA フライバイ転送 (I/O →メモリ )
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル
ウェイト
サイクル
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
MCLK
A23~A0
AS
CSn
WRn
D31~D16
IORD
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (W15 ∼ W12 が "0" でないとき ) は , I/O
ウェイト (IW3 ∼ IW0 ビット ) と比較して大きいほうの値をウェイトサイクルとし
て使用します。
195
第 4 章 外部バスインタフェース
■ DMA フライバイ転送 ( メモリ→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=51H)
図 4.5-11 に , DMA フライバイ転送 ( メモリ→ I/O) を示します。
• メモリ側のウェイト設定なしの場合
図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O)
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル
ウェイト
サイクル
基本サイクル
I/Oウェイト I/Oホールド
サイクル ウェイト
MCLK
A23~A0
AS
CSn
RD
D31~D16
IOWR
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
のライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (W15 ∼ W12 が "0" でないとき ) は , I/O
ウェイト (IW3 ∼ IW0 ビット ) と比較して大きいほうの値をウェイトサイクルとし
て使用します。
196
第 4 章 外部バスインタフェース
バーストアクセス (first wait cycle:1,page wait cycle:1)
(TYP3 ∼ TYP0=0000B,AWR=3208H)
4.6
バーストアクセスについて説明します。
■ バーストアクセス (first wait cycle:1,page wait cycle:1) (TYP3 ∼ TYP0=0000B,
AWR= 3208H)
図 4.6-1 に , バーストアクセス (first wait cycle:1,page wait cycle:1) (TYP3 ∼ TYP0=0000B,
AWR= 3208H) を示します。
図 4.6-1 バーストアクセス (first wait cycle:1,page wait cycle:1)
(TYP3 ∼ TYP0=0000B, AWR= 3208H)
ファーストサイクル
ウェイト
インページアクセス
ウェイト
インページアクセス
ウェイト
インページアクセス
ウェイト
MCLK
A23~A0
AS(LBA)
CSn
RD
WRn
WR
WRn
BAA
D31~D16
• 外部バスインタフェースにおいては , 一回のアクセスシーケンスで複数のデータを
連続して転送する動作をバーストアクセスとよびます。バーストアクセス以外の通
常のアクセスサイクルをシングルアクセスとよびます。ここでいう 1 回のアクセス
シーケンスとは , AS および CS のアサートから始まり , CSn がネゲートされるまで
を示します。複数のデータとは , その領域に設定されたバス幅単位で 2 単位以上の
データを示します。
• バーストサイクルは, ページモードROMなどの非同期メモリやバーストフラッシュ
メモリなど , まとまったデータを読む際のアクセスサイクルの効率化や , 通常の非同
期メモリからの読出しにも使用できます。
197
第 4 章 外部バスインタフェース
• バーストサイクル時のアクセスシーケンスは, 以下の2種類のサイクルに分かれます。
- ファーストアクセスサイクル
バーストアクセスの開始サイクルで , 通常のシングルアクセスサイクルと同じ動
作を行います。
- ページアクセスサイクル
ファーストアクセスサイクルに引き続き , CSn や RD ( リードストローブ ) をア
サートしたまま行うサイクルです。シングルサイクル時とは異なるウェイトサイ
クルを設定することができます。バースト長設定から決定されるアドレスバウン
ダリ内にある間 , ページアクセスサイクルは繰り返し行われます。アドレスバウ
ンダリ内のアクセスが終了するとバーストアクセスは終了となり , CSn がネゲー
トされます。
• AWR レジスタの W15 ∼ W12 ビットの設定により , 0 ∼ 15 サイクルの第一ウェイト
サイクルを挿入可能です。このとき , ファーストアクセスサイクルは最小でウェイ
トサイクル +2 サイクルとなります ( 図 4.6-1 では 3 サイクル )。
• AWR レジスタの W11 ∼ W08 ビットの設定により , 0 ∼ 15 サイクルのページウェイ
トサイクルを挿入可能です。このとき , ページアクセスサイクルはページウェイト
サイクル +1 サイクルとなります ( 図 4.6-1 では 2 サイクル )。
• ACR レジスタの BST ビットの設定により , バースト長を 1, 2, 4, 8 に設定可能です。
バースト長を "1" に設定するとシングルアクセスとなり , 第一サイクルのみが繰
り返されます。
• バーストアクセスを有効にした場合 , プリフェッチアクセスまたは設定したデータ
バス幅よりも大きなサイズで転送を行うときにバーストアクセスを行います。例え
ば , データバス幅を 8 ビット , バースト長を "4" に設定した領域にワードアクセスを
行った場合 , バイトアクセスを 4 回ではなく , 4 バースト 1 回のアクセスを行います。
• バースト設定を行った領域では, RDY入力は無視されますのでTYP3∼TYP0=0XX1B
に設定しないでください。
• LBA, BAA 信号はバーストフラッシュメモリ用です。LBA でアクセスの開始を示し
BAA でアドレスのインクリメントを指示します。
• バーストアクセス中 , 設定したウェイト後に A23 ∼ A0 の更新を行います。
• 本チップは 32 ビットバス幅は未サポートです。
198
第 4 章 外部バスインタフェース
アドレス / データマルチプレックスインタフェース
4.7
アドレス / データマルチプレックスインタフェースの設定について説明します。
■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H)
図 4.7-1 に , 外部ウェイトがない場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 4.7-1 外部ウェイトがない場合のアドレス / データマルチプレックスインタフェース設定
MCLK
アドレス31~0
A23~A0
AS
CSn
RD
リード
D31~D16
データ
15~0
アドレス15~0
WR
ライト
D31~D16
アドレス15~0
データ15~0
• ACR レジスタの TYP3 ∼ TYP0=01XXB と設定することによりアドレス / データマル
チプレックスインタフェース設定が可能です。
• アドレス / データマルチプレックスインタフェースに設定した場合 , データバス幅
(DBW1, DBW0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。
32 ビット幅はサポートしていません。
• アドレス / データマルチプレックスインタフェースでは , アドレス出力サイクル 2 サ
イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
199
第 4 章 外部バスインタフェース
• アドレス出力サイクルでは, 出力アドレスラッチイネーブル信号としてASをアサー
トしますが , CSn → RD/WR セットアップ遅延 (AWR1) が "0" に設定してある場合 ,
上図のようにマルチプレックスアドレス出力サイクルが 1 サイクルのみとなり , ア
ドレスを AS の立上りエッジで直接ラッチすることは不可能となります。このため ,
ASに"L"がアサートされているサイクルのMCLKの立上りエッジでアドレスを取り
込んでください。
• A23 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先
頭を示すアドレスを出力しますので , アドレス / データマルチプレックスインタ
フェースで 8/16 ビット以上のアドレスを使用したい場合に使用してください。
• 自動ウェイト (AWR の W15 ∼ W12), リード→ライトアイドルサイクル (AWR の
W07, W06), ライトリカバリ (AWR の W05, W04), アドレス→ CSn 遅延 (AWR の W02),
CSn→RD/WRセットアップ遅延(AWRのW01), RD/WR→CSnホールド遅延(AWRの
W00) の設定は , 通常インタフェースと同様に設定可能です。
• アドレス / データマルチプレックスインタフェースを設定した領域では , バースト
長を "1"(DBW1, DBW0=00B) に設定してください。
200
第 4 章 外部バスインタフェース
■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H)
図 4.7-2 に , 外部ウェイトがある場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 4.7-2 外部ウェイトがある場合のアドレス / データマルチプレックスインタフェース設定
MCLK
アドレス31~0
A23~A0
AS
CSn
RD
リード
D31~D16
データ
15~0
アドレス15~0
WR
ライト
D31~D16
データ15~0
アドレス15~0
外部ウェイト
解除
RDY
ACR レジスタ TYP3 ∼ TYP0=01X1B と設定することにより , アドレス / データマルチ
プレックスインタフェースにおいて , RDY 入力を有効とすることが可能です。
201
第 4 章 外部バスインタフェース
■ CSn → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH)
図 4.7-3 に , CSn → RD/WR セットアップ設定を示します。
図 4.7-3 CSn → RD/WR セットアップ設定
MCLK
A23~A0
アドレス31~0
AS
CSn
RD
リード
D31~D16
アドレス15~0
データ
15~0
WR
ライト
D31~D16
アドレス15~0
データ15~0
CSn→RD/WRセットアップ遅延(AWR1)を"1"に設定すると, 図 4.7-3 のようにマルチプ
レックスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上りエッジ
で直接ラッチすることが可能となります。MCLKを使用せずにASをALE (Address Latch
Enable) ストローブとして使用する場合にこの設定を使用してください。
202
第 4 章 外部バスインタフェース
4.8
プリフェッチ動作
外部バスインタフェースコントローラは 8 ビット× 16 本で構成されるプリフェッチ
バッファを内蔵しています。
TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセッ
ト ("1") してある領域に対するリードアクセスが発生すると , それ以降続くアドレス
に対してプリフェッチを行い , プリフェッチバッファ内に蓄積します。
蓄積されたアドレスに対し内部バスからのアクセスがあると , 外部アクセスを行わ
ずにプリフェッチバッファに先読みされたデータを返します。これにより , 外部バ
ス領域への連続したアクセスでの待ち時間を少なくすることができます。
■ プリフェッチによる外部アクセスを開始する基本条件
プリフェッチによる外部バスアクセスは , 以下の条件が揃っている場合に発生します。
• TCR レジスタの PSUS ビットが "0" であること。
• スリープまたはストップモードでないこと。
• プリフェッチ許可されたチップセレクト領域への外部バスリードアクセスが行わ
れたこと。ただし , DMA アクセスおよびリードモディファイライト (RMW) 系命令
によるリードアクセスを除きます。
• プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな
い領域への外部バス領域アクセスや , 外部バス領域との DMA 転送など ) が発生して
いないこと。
• 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて
空であること。
これらの条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッチア
クセス後に , プリフェッチを許可していない領域への外部バス領域アクセスが発生し
た後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッチ許可領域
へのプリフェッチアクセスは引き続き行われます。
複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス
を行っている場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ
許可領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ
フェッチ禁止領域へのアクセスはプリフェッチバッファの状態には一切影響を及ぼさ
ないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチと
が混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。
203
第 4 章 外部バスインタフェース
■ プリフェッチアクセスの一時停止と任意クリア
TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。
PSUS ビットに "0" を設定すると再開します。このときミス発生 , PCLR ビットのセッ
トなどのバッファクリアが発生しなければ , バッファ内容は保持されます。
TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファをすべてク
リアします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断して
いるときに行ってください。
アドレス上位 16 ビットが変化する境界=チップセレクト領域の最小単位 (64K バイト
ごと ) では , プリフェッチはいったん停止します。境界を超えた場合 , いったんバッ
ファリードミスが発生し , 引き続き新しい領域でプリフェッチを開始します。
SDRAM/FCRAM を接続した領域においては , バンクアドレスをまたぐ場合 , プリ
フェッチはいったん停止します。新しいバンクアドレスに対するアクセスが行われた
場合 , いったんバッファリードミスが発生し , 引き続き新しいバンクアドレスでプリ
フェッチを開始します。また, SDRAM/FCRAMを接続した領域においては, プリフェッ
チを行っている領域に対するライトにてページミスが発生した場合 , およびプリ
フェッチを許可していない別の SDRAM/FCRAM 領域へのアクセスが発生した場合な
ど , ページアドレスが更新された場合もプリフェッチはいったん停止します。
■ 1 回のプリフェッチアクセス動作の単位
1 回のプリフェッチアクセスの単位は , ACR レジスタの DBW ビット ( バス幅 ) と BST
ビット ( バースト長 ) によって決まります。
プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア
クセスし , BST ビットにて設定されたバースト長の回数のアクセスを 1 回のアクセス
で行います。すなわち , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセ
スは常にページモード / バーストモードでのアクセスとなります。対応していない
ROM/RAM やアクセスタイム不足には注意してください (AWR レジスタの W15 ∼ W08
ビットに適切な値を設定してください )。
バーストアクセス時は , バースト長に依存したアドレスバウンダリ内でしか連続アク
セスを行いません。そのため , バッファの空きバイト数が例えば 4 バイトあったとして
も , バウンダリをまたいでいる場合 , 4 バイト分を 1 回でアクセスすることはできませ
ん ( プリフェッチバッファ先頭が "XXXXXX0EH" で , バッファに 4 バイト空きがあり ,
バス幅 16 ビットであっても , 2 バーストを設定した場合は , 次のプリフェッチアクセス
では "XXXXXX0EH" と "XXXXXX0FH" の 2 バイトしか取り込みません ) 。
〔例〕
• バス幅 16 ビット , バースト長 2 を設定した領域 :
1 回のプリフェッチでバッファに読み出されるデータ量は , 4 バイト分となります。
この場合 , プリフェッチバッファに 4 バイト分の空きができるまでプリフェッチア
クセスは行われません。
• バス幅 8 ビット , バースト長 8 を設定した領域 :
1 回のプリフェッチでバッファに読み出されるデータ量は , 8 バイト分となります。
この場合 , プリフェッチバッファに 8 バイト分の空きができるまでプリフェッチア
クセスは行われません。
204
第 4 章 外部バスインタフェース
■ バースト長設定とプリフェッチ効率
「■ 1 回のプリフェッチアクセス動作の単位」で説明した 1 回のプリフェッチアクセス
が行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ
フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア
クセスが終了するまでは , それらのアクセス要求は待たされます。
そのため , バースト長をあまり大きく設定すると , プリフェッチ以外のバスアクセスの
効率や反応が低下します。反面 , バースト長を "1" に設定すると , バースト / ページア
クセスメモリを接続している場合でも常にシングルアクセスを行うため , 読出しサイ
クルの無駄が多く発生します。また , 1 回のプリフェッチアクセスで読み出されるデー
タが多い設定にすると , それだけプリフェッチバッファの空きができないとプリ
フェッチアクセスが開始できないため , プリフェッチバッファへのアクセス頻度が少
ないと外部バスがアイドル状態になり易くなります。例えば , バス幅が 16 ビット , バー
スト長 8 を設定した場合 , 1 回のプリフェッチでバッファに読み出されるデータ量は ,
16 バイト分となるため , プリフェッチバッファがすべて空にならないと , 新たなプリ
フェッチアクセスができなくなります。
これらのことを念頭に置いた上で , 使用状況・環境に応じて最適なバースト長設定を調
整してください。一般に , バースト / ページアクセスのできない非同期メモリを接続す
る場合は , バースト長は "1" ( シングルアクセス ) を設定するのが最適です。逆に ,
SDRAM などのバースト / ページアクセスサイクルの短いメモリを接続する場合は ,
バースト長は "1" ( シングルアクセス ) 以外を設定するのが最適です。こちらの場合は ,
バス幅に応じて 1 回で 8 バイト ( バッファの半分 ) を読み出す設定をするのが最適です
が , 外部アクセスの頻度や外部アクセスクロックの分周比設定などによっても条件は
変わってきます。
■ プリフェッチバッファからの読出し
プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ
スが一致したものがあれば読み出され , 外部へのアクセスを行いません。バッファの読
出しは順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16 バイト ) で
すので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになっ
ています。
内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 ,
プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対しウェ
イトを返します。この場合 , バッファミス扱いにはなりません。
DMA 転送でのリードにて , プリフェッチバッファ内のアドレスが一致した場合は , プ
リフェッチバッファ内のデータは使用されず , 外部バスから新たに読出しを行います。
この場合 , バッファミス扱いになりますが , 引き続きプリフェッチを継続せずに , プリ
フェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアクセス
を行いません。
205
第 4 章 外部バスインタフェース
■ プリフェッチバッファのクリア , 更新
プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ
ます。
• TCR レジスタの PCLR ビットに "1" が書き込まれたとき
• バッファリードミス ( 後述 ) が発生したとき
• バッファライトヒット ( 後述 ) が発生したとき
プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。
• バッファリードヒットが発生したとき
この場合 , ヒットしたアドレス以前のバッファのみクリアされます。
バッファリードミスとは , 以下のものを示します。
• プリフェッチ許可領域へのリードアクセスで , バッファ内のアドレスに一致するも
のがない場合
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんが , 続くアドレスからプリフェッチアクセスを開
始し , バッファにストアしていきます。
• プリフェッチ許可領域へのリードアクセスで , リードモディファイライト (RMW) 系
命令によるリードである場合
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません
( 次にそのアドレスに対しライトが行われるため ) 。
• プリフェッチ許可領域へのリードアクセスで , DMA 転送によるリードである場合
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません。
バッファライトヒットとは , 以下のものを示します。
プリフェッチ許可領域へのライトアクセスで, バッファ内のアドレスに1バイトでも一
致するものがあった場合
この場合 , 外部バスに対し新たにアクセスを行いますが , プリフェッチアクセスは , 新
たなリードアクセスが発生するまでは行われません。
■ プリフェッチ許可領域に対する制限事項
リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対
するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファに読
み出されたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ
れず , 誤ったデータを読み出してしまいます。これは , エンディアン変換機構のハード
ウェア的な制限によるものです。
206
第 4 章 外部バスインタフェース
4.9
SDRAM/FCRAM インタフェース
CS6,CS7 の領域は , ACR レジスタの TYP3 ∼ TYP0 ビットを "100XB" に設定する
ことにより SDRAM/FCRAM 空間として使用できます。
本チップは 32 ビットバス幅は未サポートです。
■ タイミングチャート
● バーストリード / ライト ( ページヒット , CAS レイテンシ = 2)
図 4.9-1 バーストリード / ライト タイミングチャート ( ページヒット , CAS レイテンシ = 2)
MCLK
A
#1
D
#1
SRAS,SCAS,SWE
#1
#2
#3
#1
#4
WRIT
#2
#3
#4
READ
Cas
レイテンシ
ライト
リカバリ
ライトサイクル
リードサイクル
A13, …, A0 は , SDRAM 容量により , すべての端子を使用しない場合があります。接続
例を参考にしてください。
MCLK は, SDRAMに入力するクロックです。アドレス , データ, コマンドなどの信号は ,
MCLK の立上りで SDRAM に取り込まれます。
AWR レジスタの W05, W04 ビットで SDRAM/FCRAM の規格に合わせてライトリカバ
リサイクルを設定してください。
AWR レジスタの W10 ∼ W08 ビットで SDRAM/FCRAM の規格に合わせて CAS レイテ
ンシを設定してください。
バースト長の設定は ACR レジスタの BST ビットにて設定してください。
● シングルリード / ライト ( ページヒット , CAS レイテンシ = 3, オートプリチャージなし )
図 4.9-2 シングルリード / ライト タイミングチャート
( ページヒット , CAS レイテンシ = 3, オートプリチャージなし )
MCLK
A
#1
#1
D
SRAS,SCAS,SWE
#1
#1
READ
WRIT
リード→ライト
Casレイテンシ
リードサイクル
アイドルサイクル
ライトサイクル
207
第 4 章 外部バスインタフェース
AWR レジスタの W07, W06 ビットで SDRAM/FCRAM の規格に合わせてリード→ライ
トアイドルサイクルを設定してください。
● シングルリード ( ページミス , CAS レイテンシ = 3, オートプリチャージなし )
図 4.9-3 シングルリード タイミングチャート
( ページミス , CAS レイテンシ = 3, オートプリチャージなし )
MCLK
A
BA
Row
#1
D
#1
PRE
SRAS,SCAS,SWE
ACT
READ
RAS
プリチャージサイクル
RAS→CASディレイ
(tRP)
(tRCD)
Casレイテンシ
ページミスが発生した場合は , プリチャージコマンド , ACTV コマンド発行後にリード
を行います。
SDRAM/FCRAM の規格に合わせて , AWR レジスタの W01, W00 ビットに RAS プリ
チャージサイクル (tRP) を設定してください。
SDRAM/FCRAM の規格に合わせて , AWR レジスタの W14 ∼ W12 ビットに RAS →
CAS ディレイ (tRCD) を設定してください。
● シングルリード / ライト (CAS レイテンシ = 1, TYP = "1001B", オートプリチャージあり )
図 4.9-4 シングルリード / ライト タイミングチャート
(CAS レイテンシ = 1, TYP = "1001B", オートプリチャージあり )
MCLK
A
Row
D
Col
Row
Col
#1
SRAS,SCAS,SWE
ACTV
WRITA
ACTV
READA
Row
Col
#2
#3
ACTV
WRITA
リードライト
CL+BL-1
CL+BL-1 アイドルサイクル
TYP = "1001B" に設定した場合 , オートプリチャージ付きのリード / ライトコマンドを
発行します。ただし , READA/WRITA 発行から ACTV 発行までのサイクルは CL+BL-1
に固定されますので , FCRAM 接続の場合のみ TYP = "1001B" 設定が可能です。
PRE コマンドを発行するサイクルがなくなるため , ページミスが多発するような場合
に有効です。
208
第 4 章 外部バスインタフェース
● オートリフレッシュ
図 4.9-5 オートリフレッシュ タイミングチャート
MCLK
A
D
SRAS,SCAS,SWE
ACTV
REF
tRC
リフレッシュサイクル
RCR レジスタの RFINT5 ∼ RFINT0 × 32 サイクルごとにリフレッシュコマンドを発行
し , リフレッシュ終了後にアクセスを再開します。
SDRAM/FCRAM の規格に合わせて , RCR レジスタの TRC ビットを設定してください。
■ セルフリフレッシュ
リフレッシュコントロールレジスタ (RCR) の SELF ビットへの "1" 書込みにより ,
SDRAM/FCRAM インタフェースはセルフリフレッシュ以降シーケンスを開始します。
SDRAM/FCRAM インタフェースは RFC2 ∼ RFC0 で設定した回数オートリフレッシュ
を実行した後 , SDRAM/FCRAM へ SELF コマンドを発行し , セルフリフレッシュモー
ドへ移行します。
セルフリフレッシュモードの解除は , SELF ビットへの "0" 書込みおよび SDRAM/
FCRAM へのリード / ライトアクセスで行います。
SDRAM/FCRAM インタフェースは , セルフリフレッシュモード中に SELF ビットへの
"0" 書込みもしくは SDRAM/FCRAM へのアクセスを検出した場合 , SELFX コマンドを
発行し , RFC2 ∼ RFC0 で設定した回数のオートリフレッシュを実行します。
したがって , セルフリフレッシュモードを設定し , チップをスリープモードに入れた後
に , DMA 転送で SDRAM/FCRAM へのアクセスがあった場合にもセルフリフレッシュ
モードは解除されます。
<セルフリフレッシュモード移行>
① SELF ビットへ "1" をセット
② RFC2 ∼ RFC0 で設定した回数の REF コマンド発行
③ SELF コマンドを発行
<セルフリフレッシュモード解除>
① SELF ビットへ "0" 書込みもしくは SDRAM/FCRAM へのアクセス
② SELFX コマンドの発行
③ RFC2 ∼ RFC0 で設定した回数の REF コマンド発行
④通常アクセス状態に移行
209
第 4 章 外部バスインタフェース
■ パワーオンシーケンス
リフレッシュコントロールレジスタ (RCR) の PON ビットを "1" にセットすることによ
りパワーオンシーケンスを開始します。
以下の手順に従い PON ビットを "1" に設定し , パワーオンシーケンスへ移行させてく
ださい。
① SDRAM/FCRAM マニュアルに規定してあるクロック安定待ち時間を確保してくだ
さい。
② ACR, AWR, MCRA(B) を設定してください。
③ CSER を設定し , SDRAM/FCRAM を接続した領域を有効にしてください。
④ RCR の値を設定すると同時に PON ビットを "1" に設定してください。
以上の手順を実行すると SDRAM/FCRAM インタフェースは以下のパワーオンシーケ
ンスを実行します。
⑤ REF コマンドを 8 回実行します。
⑥ ACR の BST ビット , AWR の CL(CAS レイテンシ ), MCRA の WBST ビットに従い
モードレジスタをセットしてください。
⑦ 通常アクセス状態に移行します。
■ 複数領域への SDRAM/FCRAM 接続
SDRAM/FCRAM 接続は CS6, CS7 領域に設定可能ですが , 同時に 2 つの領域に SDRAM/
FCRAM を接続する場合は同じタイプのものを接続してください。具体的には , 以下のレ
ジスタ設定が同じになるものを接続してください。
① ACR レジスタ
: DBW1, DBW0, BST1, BST0, TYP3∼TYP0 の設定は同じにして
ください。
② AWR レジスタ
: すべてのビットが同じになるようにしてください。
③ MCRA(B) レジスタ : レジスタが共通のため , すべての設定が同じになります。
④ RCR レジスタ
: レジスタが共通のため , すべての設定が同じになります。
なお, 2つの領域を同時に有効にした場合,パワーオンシーケンス/オートリフレッシュ/
セルフリフレッシュは同時に行います。
■ アドレスマルチプレックスフォーマット
SDRAM/FCRAM へのアクセスアドレスは , ASZ3 ∼ ASZ0 ビット , DBW1, DBW0 ビッ
ト , PSZ2 ∼ PSZ0 ビット , BANK ビットの設定により Row アドレス , バンクアドレス ,
カラムアドレスへの対応が変わります。アドレスの対応は , 下位ビットから カラムア
ドレス , バンクアドレス , ローアドレスの順に並べます。各ビットは , 以下のように設
定してください。
• ASZ3 ∼ ASZ0 : 対応する領域に接続する SDRAM/FCRAM の総容量を設定します。
2 個並列に使用する場合は合計容量を設定してください。ローアド
レス本数に影響します。
• DBW1, DBW0 : データバス幅を設定します (8 ビット品 2 個を並列に接続する場合
は 16 ビットに設定してください )。
データバス幅指定に従い , カラムアドレスのシフトを行います (8
ビット:そのまま , 16 ビット:1 ビット シフト )。
210
第 4 章 外部バスインタフェース
• PSZ2 ∼ PSZ0
: SDRAM/FCRAM で使用するカラムアドレスの本数を設定してく
ださい。
: SDRAM/FCRAM のバンクアドレスの本数を設定してください。
• BANK
以下にアクセスアドレスとローアドレス , バンクアドレス,カラムアドレスの対応の例
を幾つかあげます。
- 4M バイト (ASZ = 0110B), 8 ビットバス幅 (DBW= 00B), 256 カラム (PSZ= 000B), 2
バンク (BANK= 0)
A31
A22A21
A9 A8 A7
A0
BA
ロー
カラム
- 16M バイト (ASZ = 1000B), 16 ビットバス幅 (DBW= 01B), 512 カラム (PSZ= 001B),
4 バンク (BANK= 1)
A31
A24A23
A12A11A10 A9
A1 A0
BA
ロー
カラム
- 64M バイト (ASZ = 1010B), 32 ビットバス幅 (DBW= 10B), 512 カラム (PSZ= 001B),
4 バンク (BANK= 1)
A31
A26A25
A13A12A11A10
ロー
A2 A1 A0
BA
カラム
■ メモリ接続例
SDRAM/FCRAM インタフェースから SDRAM/FCRAM への接続は , 基本的に以下のよ
うなります。
表 4.9-1 SDRAM/FCRAM インタフェースから SDRAM/FCRAM への接続
SDRAM/FCRAM
インタフェース端子
MCLKO
SDRAM/
FCRAM 端子
備考
CLK
−
MCLKE
CKE
−
SRAS(AS)
RAS
−
SCAS(BAA)
CAS
−
SWE(WR)
WE
−
CS6/CS7
CSn
A0 ∼ A9
A10/AP
A0 ∼ A9
A10/AP
CS6/CS7 領域のみ SDRAM/FCRAM 設定が可能です。
−
A11 ∼ A13
A14
A11 ∼ A13
BA0
A15
BA1
2 バンク品の場合使用しません。
D31 ∼ D0
(D15 ∼ D0 は未サポート )
DQ
エンディアン , データバス幅により接続が変わりま
す。詳しい接続は , エンディアンとバス幅の設定の
項を参照してください。
DQMUU,DQMUL,DQMLU,
DQMLL (DQMLU,DQMLL
は未サポート )
DQM
エンディアン , データバス幅により接続が変わりま
す。詳しい接続は , エンディアンとバス幅の設定の
項を参照してください。
ローアドレス出力時 A10, その他 AP
SDRAM/FCRAM で使用するアドレスまで接続
2 バンク品の場合 BA
211
第 4 章 外部バスインタフェース
● 8 ビットの SDRAM/FCRAM を使用する場合 ( ビッグエンディアン )
- 合計データバス幅 32 ビット : SDRAM/FCRAM 4 個を使用します。
- 合計データバス幅 16 ビット : SDRAM/FCRAM 2 個を使用します。
容量 64M ビットの SDRAM を使用する場合 ( バンクアドレス 1 本 , ローアドレス 12 本 )
を示します。
図 4.9-6 メモリ接続例 ( 容量 64M ビットの SDRAM を使用する場合 )
( バンクアドレス 1 本 , ローアドレス 12 本 )
___
CS6
or
___
CS7
MB91305
A13-A0
____ ____ ___
DQMLU
DQMUU
SRAS SCAS SWE MCLKE
DQMUL
DQMLL
MCLK
DQ31~DQ0
[31~24]
___
CS
___
RAS
IA13-IA0
___
CAS
___
WE CKE
DQM
CLK
DQ7~DQ0
SDRAM(No.1)
[23~16]
___
CS
IA13-IA0
___
RAS
___
CAS
__
WE
CKE DQM
CLK
DQ7~DQ0
SDRAM(No.2)
[15~8]
___
CS
IA13-IA0
___
RAS
___
CAS
__
WE
CKE
CLK
DQM
DQ7~DQ0
SDRAM(No.3)
[7~0]
___
CS
IA13-IA0
___
RAS
___
CAS
__
WE
CKE
DQM
CLK
DQ7~DQ0
SDRAM(No.4)
合計データバス幅 16 ビットで使用するときは SDRAM No.3 , No.4 は不要であり , DQ15 ∼
DQ0 は開放としてください。
212
第 4 章 外部バスインタフェース
● 16 ビットの SDRAM/FCRAM を使用する場合
- 合計データバス幅 32 ビット : SDRAM 2 個または 4 個を使用します。
- 合計データバス幅 16 ビット : SDRAM 1 個を使用します。
容量 64M ビットの SDRAM を使用する場合 ( バンクアドレス 2 本 , ローアドレス 12 本 )
を示します。
図 4.9-7 メモリ接続例 ( 容量 64M ビットの SDRAM を使用する場合 )
( バンクアドレス 2 本 , ローアドレス 12 本 )
MB91305
___
CS7
___
CS6
A13-A0
____ ____ ___
DQMLU
DQMUU
SRAS SCAS SWE MCLKE
DQMUL
DQMLL
MCLK
DQ31~DQ0
[31~16]
___
CS
IA13-IA0
___
RAS
___
CAS
___
WE CKE DQMU DQML
CLK
DQ15~DQ0
SDRAM(No.1)
[15~0]
___
CS
IA13-IA0
___
RAS
___
CAS
___
WE CKE DQMU
DQML
CLK
DQ15~DQ0
SDRAM(No.2)
[31~16]
___
CS
IA13-IA0
___
RAS
___
CAS
___
WE CKE DQMU DQML
CLK
DQ15~DQ0
SDRAM(No.3)
[15~0]
___
CS
IA13-IA0
___
RAS
___
CAS
___
WE CKE DQMU DQML
CLK
DQ15~DQ0
SDRAM(No.4)
データ幅 16 ビットで使用時は SDRAM No.2, No.3, No.4 は不要であり , DQ15 ∼ DQ0 は
開放としてください。
SDRAM 2 個で使用するときは SDRAM No.2, No.3 は不要です。
213
第 4 章 外部バスインタフェース
● 32 ビットの SDRAM を使用する場合 (MB91305 は未サポート )
データ幅 32 ビット : SDRAM 1 個または 2 個を使用します。
64M ビット品の場合 ( バンクアドレス 1 本 , ローアドレス 12 本 ) を示します。
図 4.9-8 メモリ接続例 ( 容量 64M ビット品の場合 )
( バンクアドレス 1 本 , ローアドレス 12 本 )
MB91305
___
CS7
___
CS6
A12-A0
____ ____ ___
DQMLU
DQMUU
SRAS SCAS SWE MCLKE
DQMUL
DQMLL
MCLK
DQ31~DQ0
[31~0]
___
CS
IA12-IA0
___
RAS
___
CAS
___
WE CKE DQM3 DQM2 DQM1 DQM0
CLK
DQ31-DQ0
SDRAM(No.1)
[31~0]
___
CS
IA12-IA0
___
RAS
___
CAS
___
WE CKE DQM3 DQM2 DQM1 DQM0
CLK
SDRAM(No.2)
SDRAM 1 個のみで使用するときは SDRAM No.2 は不要です。
214
DQ31~DQ0
第 4 章 外部バスインタフェース
4.10
DMA アクセス
DMA アクセスの設定について説明します。
■ DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H)
図 4.10-1 に , DMA フライバイ転送 (I/O →メモリ ) の設定を示します。
• メモリ側のウェイト設定なしの場合
図 4.10-1 DMA フライバイ転送 (I/O →メモリ ) の設定
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
MCLK
A23~A0
メモリアドレス
AS
CSn
WRn
D31~D16
FR30ファミリ
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
IORD
DREQn
デマンドモード時の
センスタイミング
• AWR レジスタの W01 ビットを "1" に設定することにより , CSn → RD/WR セット
アップディレイを設定可能です。チップセレクトアサート後 , リード / ライトスト
ローブまでの期間を延長する場合に設定します。
• AWR レジスタの W00 ビットを "1" に設定することにより , RD/WR → CSn ホールド
ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト
ネゲートまでの期間を延長する場合に設定します。
215
第 4 章 外部バスインタフェース
• CSn → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSn ホールドディ
レイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSn → RD/WR セットアップディレイ , RD/WR → CSn ホールド
ディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSn 遅延設定 (AWR レジスタの W02 ビット ) を "1"
に設定してください。
参考 :
データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ
クルにより延長された , 3 バスサイクル分のリードストローブが発生しています。
受取り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイク
ル分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライト
ストローブには影響を与えません。ただし , アドレスと CS 信号は , フライバイによる
バスアクセスサイクル終了まで保持されます。
216
第 4 章 外部バスインタフェース
■ DMA フライバイ転送 ( メモリ→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H)
図 4.10-2 に , DMA フライバイ転送 ( メモリ→ I/O) の設定を示します。
• メモリ側のウェイト設定なしの場合
図 4.10-2 DMA フライバイ転送 ( メモリ→ I/O) の設定
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
MCLK
A23~A0
メモリアドレス
AS
CSn
RD
D31~D16
FR30ファミリ DACKn
互換モード
DEOPn
DACKn
基本モード
DEOPn
IOWR
DREQn
デマンドモード時の
センスタイミング
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
のライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビットの
設定により , 0 ∼ 15 サイクルまでのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR の W15 ∼ W12 が "0" でないとき )
は , I/O ウェイト (IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビット ) と比較して大
きいほうの値をウェイトサイクルとして使用します。
217
第 4 章 外部バスインタフェース
参考 :
データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサ
イクルにより延長された 3 バスサイクル分のリードストローブが発生しています。
受取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分
のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトスト
ローブには影響を与えません。ただし , アドレスと CS 信号は , フライバイによるバス
アクセスサイクル終了まで保持されます。
フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。
218
第 4 章 外部バスインタフェース
■ 2サイクル転送(内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング
は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.10-3 に , 2 サイクル転送の設定を示します。
• I/O 側のウェイト設定なしの場合
図 4.10-3 2 サイクル転送の設定
MCLK
A23~A0
I/O アドレス
AS
CSn (I/O側)
WRn
D31~D16
DACKn
FR30ファミリ
互換モード
DEOPn
DACKn
基本モード
DEOPn
DREQn
デマンドモード時の
センスタイミング
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• DACKn/DEOPn は , 内部 RAM アクセスのサイクルでは出力されません。
219
第 4 章 外部バスインタフェース
■ 2 サイクル転送 ( 外部→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.10-4 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。
• メモリ , I/O のウェイト設定なしの場合
図 4.10-4 2 サイクル転送 ( 外部→ I/O) の設定
MCLK
A23~A0
メモリアドレス
アイドル
I/O アドレス
AS
CSn
RD
CSn
WRn
D31~D16
FR30ファミリ
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
220
第 4 章 外部バスインタフェース
■ 2 サイクル転送 (I/O →外部 )(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.10-5 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。
• メモリ , I/O のウェイト設定なしの場合
図 4.10-5 2 サイクル転送 (I/O →外部 ) の設定
MCLK
A23~A0
I/O アドレス
アイドル
メモリアドレス
AS
CSn
WRn
CSn
RD
D31~D16
FR30ファミリ
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
221
第 4 章 外部バスインタフェース
■ 2 サイクル転送 (I/O → SDRAM/FCRAM)(TYP3 ∼ TYP0=1001B, AWR=0051H,
IOWR=00H)
図 4.10-6 に , 2 サイクル転送 (I/O → SDRAM/FCRAM) の設定を示します。
• メモリ , I/O のウェイト設定なしの場合
図 4.10-6 2 サイクル転送 (I/O → SDRAM/FCRAM) の設定
MCLK
A23~A0
I/O アドレス
アイドル
メモリアドレス
AS
CSn
SRAS
SCAS
WRn (SWE)
CSn
RD
D31~D16
FR30ファミリ
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
222
第 4 章 外部バスインタフェース
■ 2 サイクル転送 (I/O → SDRAM/FCRAM)
図 4.10-7 に , 2 サイクル転送 (I/O → SDRAM/FCRAM) の設定を示します。
• メモリ , I/O のウェイト設定なしの場合
図 4.10-7 2 サイクル転送 (I/O → SDRAM/FCRAM) の設定
MCLK
A23~A0
メモリ
アドレス
I/Oアドレス
AS
CSn
RD
CSn
SRAS
SCAS
WRn (SWE)
D31~D16
MB91101
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
223
第 4 章 外部バスインタフェース
4.11
バスアービトレーション
バスアービトレーションを行うための設定について説明します。
■ バス権開放
図 4.11-1 に , バス権開放時の設定を示します。
図 4.11-1 バス権開放時の設定
MCLK
A23~A0
AS
CSn
RD
リード
D31~D16
BRQ
BGRNT
224
1サイクル
第 4 章 外部バスインタフェース
■ バス権獲得
図 4.11-2 に , バス権獲得時の設定を示します。
図 4.11-2 バス権獲得時の設定
MCLK
A23~A0
AS
CSn
WR
D31~D16
BRQ
BGRNT
1サイクル
• TCR レジスタ BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバス
アービトレーションを行うことができます。
• バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を
アサートします。
• バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに
します。
• CSn は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ
ンピーダンスにします。
• CSER レジスタで許可している領域がすべて共有許可 (ACR レジスタの SREN ビッ
トが "1") の場合 , AS, BAA, RD, WR, WR0, WR1 をハイインピーダンスにします。
225
第 4 章 外部バスインタフェース
4.12
レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。
■ 外部バスインタフェースの設定手順
1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にしてください。"1" のまま設定を変更した場合 , その前後のアクセ
スは保証されません。
2) レジスタの変更は以下の手順で行ってください。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② ASR と ACR をワードアクセスで同時に設定してください。
ASR,ACR をハーフワードでアクセスする場合には,ASR 設定後 ACR を設定
してください。
③ AWR を設定してください。
④ 該当領域に対応する CHER のビットを設定してください。
⑤ 該当領域に対応する CSER のビットを設定してください。
3) CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記②∼④の設定を行ってください。その後 , クロックを
高速クロックに切り換えてください。
4) プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ
さい。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② TCRレジスタのPSUSビットおよびPCLRビットを共に"1"に設定してください。
③ ASR と ACR をワードアクセスにて同時に設定してください。
ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 ACR を設定し
てください。
④ AWR を設定してください。
⑤ 該当領域に対応する CHER のビットを設定してください。
⑥ TCR レジスタの PSUS ビットおよび PCLR ビットに "0" を設定してください。
⑦ 該当領域に対応する CSER のビットを "1" に設定してください。
226
第 4 章 外部バスインタフェース
4.13
使用上の注意
外部バスインタフェースの使用上の注意について説明します。
■ 外部バスインタフェースの使用上の注意
WR0, WR1をライトストローブとして使用する領域(TYP3∼TYP0="0x0xB")とWRをラ
イトストローブとして使用する領域 (TYP3 ∼ TYP0="0x1xB") を混在させる設定にした
場合 , 使用するすべての領域にて , 必ず以下の設定を行ってください。
• リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください (AWR:
W07, W06="00B" 以外 ) 。
• ライトリカバリサイクルを最低 1 サイクル以上設定してください (AWR W05,
W04 ="00B" 以外 ) 。ただし , WR0, WR1 をライトストローブとして使用する領域
(TYP3 ∼ TYP0="0x0xB") で WR0, WR1 が無効な (ROM のみ接続されている ) 場合
は , 上記制限はありません。また , WR をライトストローブとして使用する領域
(TYP3 ∼ TYP0="0x1xB") の設定でアドレス→ RD/WR セットアップサイクル
(W01="1"), RD/WR →アドレスホールドサイクル (W00="1") をともに設定してい
る場合も上記制限はありません。
<制限理由>
TYP3 ∼ TYP0="0x1xB" と設定して WR をライトストローブとして使用する領域では ,
WR0/ WR1 端子が , バイトイネーブル (UBX/LBX) 出力となります。この場合 , バイ
トイネーブル出力はアドレスおよび CS 出力と同一のタイミングで , 各バイト位置
のイネーブル信号を出力します。
このため , WR0/WR1 端子を非同期ライトストローブとして使用している領域への
アクセスが前後にあった場合 , そちらの領域において , CSn と WR0/WR1 間の交流
規格を満足できなくなり , 誤書込みが発生する可能性があります。
リード→ライトアイドルサイクル , およびライトリカバリサイクルを設定した場合 ,
これらサイクルでは , CSn はアサートされません ("H" レベルを維持 ) ので , 上記交
流規格を満足することができます。
WR0/WR1 端子を非同期ライトストローブとして使用している領域にて , CSn と
WR0/WR1 間の交流規格 ( セットアップおよびホールド ) に対し余裕がある場合は ,
本制限は必要ありません。
227
第 4 章 外部バスインタフェース
228
第5章
I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能に
ついて説明します。
5.1 I/O ポートの概要
5.2 I/O ポートのレジスタ
229
第 5 章 I/O ポート
I/O ポートの概要
5.1
I/O ポートの概要について説明します。
■ ポート基本ブロックダイヤグラム
MB91305 は , 各端子に対応するペリフェラルが入出力として端子を使用しない設定に
なっているとき , I/O ポートとして使用することができます。
図 5.1-1 に , ポートの基本的な構成を示します。
図 5.1-1 ポート基本ブロックダイヤグラム
ペリフェラル入力
ポートバス
Port-A,Bのみの機能です。
プルアップ抵抗
(約33kΩ)
0
1
ペリフェラル出力
PDR
1
端子
0
PFR
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
DDR
PCR
DDR:ポ-ト方向レジスタ
PDR:ポートデータレジスタ
PFR:ポート機能レジスタ
PCR:プルアップ抵抗制御レジスタ
I/O ポートは , 以下のもので構成されています。
• PDR ( ポートデータレジスタ /Port Data Register)
• DDR ( ポート方向レジスタ /Data Direction Register)
• PFR ( ポート機能レジスタ /Port Function Register)
• PCR ( プルアップ抵抗制御レジスタ /Pull-up Control Register)
● ポート入力モード時 (PFR="0" & DDR="0")
PDR リード : 対応する外部端子のレベルが読み出されます。
PDR ライト : PDR に設定値が書き込まれます。
● ポート出力モード時 (PFR="0" & DDR="1")
PDR リード : PDR の値が読み出されます。
PDR ライト : PDR の値が対応する外部端子に出力されます。
● ペリフェラル出力モード時 (PFR="1" & DDR="1")
PDR リード : 対応する外部端子のレベルが読み出されます。
PDR ライト : PDR に設定値が書き込まれます。
230
第 5 章 I/O ポート
● ペリフェラル入力モード時 (PFR="0" & DDR="0")
PDR リード : 対応する外部端子のレベルが読み出されます。
PDR ライト : PDR に設定値が書き込まれます。
<注意事項>
• ポート関連レジスタへのアクセスは , バイトアクセスで行ってください。
• DDR レジスタの値が有効になるのは , PFR レジスタを切り換えて汎用端子としたとき
です。
• ストップモード時には HIZ の値によらず , プルアップ抵抗制御レジスタの設定が優先
されます。
231
第 5 章 I/O ポート
5.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ ポートデータレジスタ (PDR)
図 5.2-1 にポートデータレジスタ (PDR) の構成を示します。
図 5.2-1 ポートデータレジスタ (PDR) の構成 ( 続く )
PDR2
アドレス : 0000 0012H
PDR3
アドレス : 0000 0013H
PDR4
アドレス : 0000 0014H
PDR5
アドレス : 0000 0015H
PDR6
アドレス : 0000 0016H
PDR7
アドレス : 0000 0017H
PDR8
アドレス : 0000 0018H
PDR9
アドレス : 0000 0019H
PDRA
アドレス : 0000 001AH
PDRB
アドレス : 0000 001BH
PDRC
アドレス : 0000 001CH
PDRD
アドレス : 0000 001DH
PDRE
アドレス : 0000 001EH
232
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
7
6
5
4
3
2
1
0
P37
P36
P35
P34
P33
P32
P31
P30
7
6
5
4
3
2
1
0
P47
P46
P45
P44
P43
P42
P41
P40
7
6
5
4
3
2
1
0
P57
P56
P55
P54
P53
P52
P51
P50
7
6
5
4
3
2
1
0
-
-
P65
P64
P63
P62
P61
P60
7
6
5
4
3
2
1
0
-
-
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
-
-
-
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
P97
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0
7
6
5
4
3
2
1
0
-
-
PD5
PD4
PD3
PD2
PD1
PD0
7
6
5
4
3
2
1
0
-
-
-
-
-
PE2
PE1
PE0
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
-- XX X XX X B
R/W
初期値
アクセス
-- XX X XX X B
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
-- --- XX X B
アクセス
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
-- XX X XX X B
R/W
初期値
-- --- XX X B
アクセス
R/W
第 5 章 I/O ポート
図 5.2-1 ポートデータレジスタ (PDR) の構成 ( 続き )
PDRF
7
アドレス : 0000 001FH PF5
6
5
4
3
2
1
0
PF5
PF5
PF4
PF3
PF2
PF1
PF0
初期値
アクセス
XXXXXXXXB R/W
PDR2 ∼ PDRF は,I/O ポートの入出力データレジスタです。
対応する DDR2 ∼ DDRD,PFR0 ∼ PFR7,PFR9,PFRB ∼ PFRD で入出力制御が行われます。
■ ポート方向レジスタ (DDR)
図 5.2-2 にポート方向 (DDR) レジスタの構成を示します。
図 5.2-2 ポート方向 (DDR) レジスタの構成 ( 続く )
DDR2
アドレス : 0000 0402H
DDR3
アドレス : 0000 0403H
DDR4
アドレス : 0000 0404H
DDR5
アドレス : 0000 0405H
DDR6
アドレス : 0000 0406H
DDR7
アドレス : 0000 0407H
DDR8
アドレス : 0000 0408H
DDR9
アドレス : 0000 0409H
DDRA
アドレス : 0000 040AH
DDRB
アドレス : 0000 040BH
DDRC
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
7
6
5
4
3
2
1
0
P37
P36
P35
P34
P33
P32
P31
P30
7
6
5
4
3
2
1
0
P47
P46
P45
P44
P43
P42
P41
P40
7
6
5
4
3
2
1
0
P57
P56
P55
P54
P53
P52
P51
P50
7
6
5
4
3
2
1
0
-
-
P65
P64
P63
P62
P61
P60
7
6
5
4
3
2
1
0
-
-
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
-
-
-
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
P97
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
7
6
5
4
3
2
1
PC6
PC5
PC4
PC3
PC2
PC1
アドレス : 0000 040CH PC7
DDRD
アドレス : 0000 040DH
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
初期値
アクセス
----0000B
R/W
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
初期値
アクセス
--000000B
R/W
初期値
アクセス
--000000B
R/W
初期値
アクセス
---00000B
R/W
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
初期値
アクセス
PB0 0 0 0 0 0 0 0 0 B R/W
0
初期値
アクセス
PC0 0 0 0 0 0 0 0 0 B R/W
7
6
5
4
3
2
1
0
-
-
PD5
PD4
PD3
PD2
PD1
PD0
初期値
アクセス
--000000B
R/W
233
第 5 章 I/O ポート
図 5.2-2 ポート方向 (DDR) レジスタの構成 ( 続き )
DDRE
アドレス : 0000 040EH
DDRF
7
6
5
4
3
2
1
0
-
-
-
-
-
PE2
PE1
PE0
7
6
5
4
3
2
1
0
PF5
PF5
PF4
PF3
PF2
PF1
PF0
アドレス : 0000 040FH PF5
初期値
アクセス
------00B
R/W
初期値
アクセス
0 0 0 0 0 0 0 0 B R/W
DDR2 ∼ DDRF は , 対応する I/O ポートの入出力方向をビット単位で制御します。
PFR=0 のとき
DDR=0; ポート入力 , ペリフェラル入力
DDR=1; ポート出力
PFR=1 のとき
DDR=1; ペリフェラル出力
■ ポート機能レジスタ (PFR)
図 5.2-3 にポート機能レジスタ (PFR) の構成を示します。
図 5.2-3 ポート機能レジスタ (PFR) の構成 ( 続く )
PFR0
7
アドレス : 0000 0410H I2CTST
6
5
-
-
4
3
2
1
0
初期値
アクセス
I2CE4 I2CE3 I2CE2 I2CE1 I2CE0 0 - - 0 0 0 0 0 B
R/W
PFR1
7
6
5
4
3
2
1
0
PFR2
7
6
5
4
3
2
1
0
-
-
-
3
2
1
0
初期値
アクセス
0
0
0
0
0
0
0
0
アドレス : 0000 0411H UART3 SCKE3 UART2 SCKE2 UART1 SCKE1 UART0 SCKE0
R/W
B
アドレス : 0000 0412H TOE2 TOE1 TOE0
PFR3
7
6
5
4
-
-
-
-
7
6
5
4
3
-
-
-
-
-
PFR5
7
6
5
4
3
PFR6
7
6
5
アドレス : 0000 0413H
PFR4
アドレス : 0000 0414H
初期値
アクセス
UART4 SCKE4 0 0 0 - - - 0 0 B
R/W
初期値
PPGE3 PPGE2 PPGE1 PPGE0 - - - - 0 0 0 0 B
2
1
0
2
1
0
アクセス
R/W
初期値
アクセス
0
0
0
DMAE2 DMAE1 DMAE0
R/W
B
初期値
アクセス
アドレス : 0000 0415H ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 1 1 1 1 1 1 1 1 B R/W
アドレス : 0000 0416H DRDE DWRE AK12
PFR7
アドレス : 0000 0410H
PFR9
3
2
1
AK10
AK02
AK01
6
5
4
3
2
1
-
-
-
-
-
AK22
AK21
7
6
5
4
3
2
1
AE22
AE21
AE20
AE19
AE18
AE17
6
5
4
3
2
1
0
-
BGRE
-
7
アドレス : 0000 041BH SWEE BAAE ASXE MCKE MKEE
234
0
初期値
アクセス
AK00 0 0 0 0 0 0 0 0 B R/W
7
アドレス : 0000 0419H AE23
PFRB
4
AK11
0
初期値
アクセス
0
0
0
AK20
R/W
B
0
初期値
アクセス
AE16 1 1 1 1 1 1 1 1 B R/W
初期値
アクセス
00011-0-B
R/W
第 5 章 I/O ポート
図 5.2-3 ポート機能レジスタ (PFR) の構成 ( 続き )
PFRC
7
6
5
4
アドレス : 0000 041CH CS7E CS6E CS5E CS4E
PFRD
アドレス : 0000 041DH
7
6
5
-
-
-
4
3
2
-
-
3
2
1
0
初期値
アクセス
CS1E CS0E 1 1 1 1 - - 1 1 B
R/W
SYSCE I2CBRG WR1XE
1
0
-
-
初期値
アクセス
---101--B
R/W
リセット時はポート機能になります。
PFR0 ∼ PFR4 は , 対応するペリフェラルの出力を機能単位で制御します。
ペリフェラル入力として使用する端子は , DDR レジスタで入力設定にしてください。
PFR0 の bit 7[I2CTST] は必ず "0" にしてください。
I2CE3 と I2CE4 が両方 "1" のときは , SCL3・SDA3 が SCL4・SDA4 とブリッジされます。
I2CBRG が "1" のときは , I2C の ch2 と ch3 がブリッジされます。
■ プルアップ機能レジスタ (PCR)
図 5.2-4 にプルアップ機能レジスタ (PCR) の構成を示します。
図 5.2-4 プルアップ機能レジスタ (PCR) の構成
PCRA
アドレス : 0000 041EH
PCRB
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
アドレス : 0000 041FH PB7
6
5
4
3
2
1
0
PB6
PB5
PB4
PB3
PB2
PB1
PB0
初期値
アクセス
00000000B
R/W
初期値
アクセス
00000000B
R/W
PCRA, PCRB は , 対応する I/O ポートのプルアップ抵抗制御を行います。
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
端子状態が入力のときにプルアップ抵抗が付きます。
端子出力時には抵抗なしの状態になります。
235
第 5 章 I/O ポート
■ PFR レジスタの初期値と機能
表 5.2-1 に , 各 PFR レジスタについてその初期値と機能を示します。
表 5.2-1 PFR レジスタの初期値と機能 (1 / 4)
レジスタ名称
PFR0
ビット名称 ビット
I2CTST
I2CE4
I2CE3
I2CE2
PFR1
I2C テスト用ビットです。
1
設定禁止です。
0
汎用ポートとして機能します。
1
SCL4, SDA4 として機能します (I2C ch3 と接続 )。
0
汎用ポートとして機能します。
1
SCL3, SDA3 として機能します。
0
汎用ポートとして機能します。
SCL2, SDA2 として機能します。
I2CE1
0
汎用ポートとして機能します。
1
SCL1, SDA1 として機能します。
I2CE0
0
汎用ポートとして機能します。
1
SCL0, SDA0 として機能します。
UART3
0
汎用ポートとして機能します。
1
SOUT3 出力として機能します。
SCKE3
0
汎用ポートとして機能します。
1
SCK3 出力として機能します。
UART2
0
汎用ポートとして機能します。
1
SOUT2 出力として機能します。
0
汎用ポートとして機能します。
1
SCK2 出力として機能します。
UART1
0
汎用ポートとして機能します。
1
SOUT1 出力として機能します。
SCKE1
0
汎用ポートとして機能します。
1
SCK1 出力として機能します。
0
汎用ポートとして機能します。
1
SOUT0 出力として機能します。
0
汎用ポートとして機能します。
1
SCK0 出力として機能します。
TOE2*
0
汎用ポートとして機能します。
1
TOUT2 出力として機能します。
TOE1
0
汎用ポートとして機能します。
1
TOUT1 出力として機能します。
0
汎用ポートとして機能します。
UART0
SCKE0
TOE0
236
0
1
SCKE2
PFR2
機 能
1
TOUT0 出力として機能します。
UART4
0
汎用ポートとして機能します。
1
SOUT4 出力として機能します。
SCKE4
0
汎用ポートとして機能します。
1
SCK4 出力として機能します。
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (2 / 4)
レジスタ名称
PFR3
ビット名称 ビット
PPGE3
0
汎用ポートとして機能します。
1
PPG3 出力として機能します。
PPGE2
0
汎用ポートとして機能します。
1
PPG2 出力として機能します。
PPGE1
0
汎用ポートとして機能します。
1
PPG1 出力として機能します。
0
汎用ポートとして機能します。
PPGE0
PFR4
1
PPG0 出力として機能します。
DMAE2
0
汎用ポートとして機能します。
1
DEOP0 として機能します。
DMAE1
0
汎用ポートとして機能します。
1
DEOP1 として機能します。
0
汎用ポートとして機能します。
1
DEOP2 として機能します。
ADE7
0
汎用ポートとして機能します。
1
AN9 入力として機能します。
ADE6
0
汎用ポートとして機能します。
1
AN8 入力として機能します。
0
汎用ポートとして機能します。
1
AN7 入力として機能します。
ADE4
0
汎用ポートとして機能します。
1
AN6 入力として機能します。
ADE3
0
汎用ポートとして機能します。
1
AN5 入力として機能します。
ADE2
0
汎用ポートとして機能します。
1
AN4 入力として機能します。
0
汎用ポートとして機能します。
1
AN3 入力として機能します。
0
汎用ポートとして機能します。
1
AN2 入力として機能します。
DMAE0
PFR5
機 能
ADE5
ADE1
ADE0
237
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (3 / 4)
レジスタ名称
PFR6
ビット名称 ビット
DRDE
DWRE*
AK12,AK11,
AK10
AK02,AK01,
AK00
PFR7
PFR9
AK22,AK21,
AK20
AE23
汎用ポートとして機能します。
1
IORD 入力として機能します。
0
汎用ポートとして機能します。
1
IOWR 入力として機能します。
000
汎用ポートとして機能します。
001
DACK1( フライバイ転送時 FR30 互換 ) として機能します。
010
DACK1(2 サイクル転送 RD タイミング FR30 互換 )
011
DACK1(2 サイクル転送 WRn タイミング FR30 互換 )
100
DACK1(2 サイクル転送 SWE タイミング FR30 互換 )
101
DACK1(2 サイクル転送 WRn, RD タイミング FR30 互換 )
110
DACK1(2 サイクル転送 SWE, RD タイミング FR30 互換 )
111
DACK1( チップセレクトタイミング ) として機能します。
000
汎用ポートとして機能します。
001
DACK0( フライバイ転送時 FR30 互換 ) として機能します。
010
DACK0(2 サイクル転送 RD タイミング FR30 互換 )
011
DACK0(2 サイクル転送 WRn タイミング FR30 互換 )
100
DACK0(2 サイクル転送 SWE タイミング FR30 互換 )
101
DACK0(2 サイクル転送 WRn, RD タイミング FR30 互換 )
110
DACK0(2 サイクル転送 SWE, RD タイミング FR30 互換 )
111
DACK0( チップセレクトタイミング ) として機能します。
000
汎用ポートとして機能します。
001
DACK2( フライバイ転送時 FR30 互換 ) として機能します。
010
DACK2(2 サイクル転送 RD タイミング FR30 互換 )
011
DACK2(2 サイクル転送 WRn タイミング FR30 互換 )
100
DACK2(2 サイクル転送 SWE タイミング FR30 互換 )
101
DACK2(2 サイクル転送 WRn, RD タイミング FR30 互換 )
110
DACK2(2 サイクル転送 SWE, RD タイミング FR30 互換 )
111
DACK2( チップセレクトタイミング ) として機能します。
0
汎用ポートとして機能します。
1
A23 入力として機能します。
AE22
0
汎用ポートとして機能します。
1
A22 入力として機能します。
AE21
0
汎用ポートとして機能します。
1
A21 入力として機能します。
0
汎用ポートとして機能します。
1
A20 入力として機能します。
AE19
0
汎用ポートとして機能します。
1
A19 入力として機能します。
AE18
0
汎用ポートとして機能します。
1
A18 入力として機能します。
0
汎用ポートとして機能します。
1
A17 入力として機能します。
0
汎用ポートとして機能します。
1
A16 入力として機能します。
AE20
AE17
AE16
238
0
機 能
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (4 / 4)
レジスタ名称
PFRB
ビット名称 ビット
SWEE
BAAE
ASXE
MCKE
MKEE
BGRE
PFRC
CS7E
0
汎用ポートとして機能します。
1
SWE/WR 出力として機能します。
0
汎用ポートとして機能します。
1
SCAS/BAA 出力として機能します。
0
汎用ポートとして機能します。
1
SRAS/LBA/AS 出力として機能します。
0
汎用ポートとして機能します。
1
MCLK 出力として機能します。
0
汎用ポートとして機能します。
1
MCLKE 出力として機能します。
0
汎用ポートとして機能します。
1
BRQ 入力 /BGRNT 出力として機能します。
0
汎用ポートとして機能します。
1
CS7 入力として機能します。
CS6E
0
汎用ポートとして機能します。
1
CS6 入力として機能します。
CS5E
0
汎用ポートとして機能します。
1
CS5 入力として機能します。
0
汎用ポートとして機能します。
CS4E
PFRD
機 能
1
CS4 入力として機能します。
CS1E
0
汎用ポートとして機能します。
1
CS1 入力として機能します。
CS0E
0
汎用ポートとして機能します。
1
CS0 入力として機能します。
SYSCE
I2CBRG
WR1XE
0
汎用ポートとして機能します。
1
SYSCLK 出力として機能します。
0
I2C の 2 チャネルと 3 チャネルを接続しません。
1
I2C の 2 チャネルと 3 チャネルを接続します。
0
汎用ポートとして機能します。
1
WR1 出力として機能します。
*: TOUT2 と IOWR の機能は同一ピンで兼用されています。以下に PFR2:TOE2 と PFR6:DWRE の組
合せと機能を示します。
PFR6
PFR2
DWRE
TOE2
0
0
汎用ポート
0
1
TOUT2 出力
1
X
IOWR
Function
239
第 5 章 I/O ポート
240
第6章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能 ,
割込みコントローラの動作 , およびホールドリクエ
スト取下げ要求機能の使用例について説明します。
6.1 割込みコントローラの概要
6.2 割込みコントローラのレジスタ
6.3 割込みコントローラの動作
6.4 ホールドリクエスト取下げ要求機能 (HRCL) の使用例
241
第 6 章 割込みコントローラ
6.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理を行います。
■ ハードウェア構成
本モジュールは , 以下のものより構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
242
第 6 章 割込みコントローラ
■ レジスタ一覧
図 6.1-1 レジスタ一覧 ( 続く )
bit
7
6
5
4
3
2
1
0
アドレス:
000440H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
アドレス:
000441H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
アドレス:
000442H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
アドレス:
000443H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
アドレス:
000444H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
アドレス:
000445H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
アドレス:
000446H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
アドレス:
000447H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
アドレス:
000448H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス:
000449H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
アドレス: 00044AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス: 00044BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
アドレス: 00044CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
アドレス: 00044DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
アドレス: 00044EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
アドレス:
00044FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
アドレス:
000450H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
アドレス:
000451H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
アドレス:
000452H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
アドレス:
000453H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
アドレス:
000454H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR20
アドレス:
000455H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
アドレス:
000456H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
アドレス:
000457H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
アドレス:
000458H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
アドレス:
000459H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
アドレス: 00045AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
アドレス: 00045BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
アドレス: 00045CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
アドレス: 00045DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
アドレス: 00045EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
アドレス:
00045FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
アドレス:
000460H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
アドレス:
000461H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
アドレス:
000462H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
アドレス:
000463H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
アドレス:
000464H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
アドレス:
000465H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
R/W
R/W
R/W
R/W
R/W
243
第 6 章 割込みコントローラ
図 6.1-1 レジスタ一覧 ( 続き )
bit
7
6
5
4
3
2
1
0
アドレス: 000466H
アドレス: 000467H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
アドレス: 000468H
アドレス: 000469H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
アドレス: 00046AH
アドレス: 00046BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
アドレス: 00046CH
アドレス: 00046DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
アドレス: 00046EH
アドレス: 00046FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
-
-
-
ICR4
R/W
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR47
-
-
LVL4
R/W
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
HRCL
アドレス: 000045H MHALTI
R/W
■ ブロックダイヤグラム
図 6.1-2 ブロックダイヤグラム
CPUへの
NMI要求
スタンバイ解除信号 (LEVEL≠11111Bのとき"1")
優先度判定
NMI
CPUへの割込み
レベル信号
5
/
NMI
処理
レベル,
ベクタ
発生
レベル判定
各周辺リソース
からの
割込み要求
ICR00
・
・
・
ICR47
ベクタ
判定
R-bus
244
6
/
ホールド
リクエスト
取下げ
要求
MHALTI
CPUへの割込み
ベクタ信号
第 6 章 割込みコントローラ
6.2
割込みコントローラのレジスタ
割込みコントローラのレジスタ構成 , および機能について説明します。
■ ICR(Interrupt Control Register)
図 6.2-1 ICR(Interrupt Control Register) のビット構成
bit
アドレス:ch00 00000440H ∼
ch47 0000046FH
7
6
5
4
3
2
1
0
初期値
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
---11111B
R/W
R/W
R/W
R/W
R/W
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
[bit 4 ∼ bit 0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ
ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B " に初期化されます。
表 6.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。
表 6.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
1
1
1
1
1
31
割込みレベル
システム予約
(強)
(弱)
割込み禁止
( 注意事項 ) ICR4 は "1" 固定で , "0" を書き込むことはできません。
245
第 6 章 割込みコントローラ
■ HRCL(Hold Request Cancel Level register)
図 6.2-2 HRCL(Hold Request Cancel Level register) のビット構成
bit
7
アドレス:00000045H MHALTI
R/W
6
5
4
3
2
1
0
-
-
LVL4
R/W
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
初期値
0--11111B
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
[bit 7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[bit 4 ∼ bit 0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
246
第 6 章 割込みコントローラ
6.3
割込みコントローラの動作
割込みコントローラの動作の以下の項目について説明します。
• 優先順位判定
• NMI
• ホールドリクエスト取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 次のとおりです。
1. NMI
2. 以下の条件を満たす要因
- 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
- 割込みレベルの数値が最も小さい要因
- その中で , 最も小さい割込み番号を持つ要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31(11111B) を出力します。そのときの割込み番号は不定です。
■ NMI(Non Maskable Interrupt)
NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま
す。
そのため , ほかの割込み要因と同時発生の場合は常に NMI が選択されます。
● NMI が発生すると , CPU に対して次の情報を伝えます。
割込みレベル :15(01111B)
割込み番号
:15(0001111B)
● NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは
NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。
● NMI による DMA 転送の抑止
NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が
抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後で MHALTI
ビットを "0" にクリアしてください。
247
第 6 章 割込みコントローラ
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を CPU のホールド中に行う場合は , ホールドリクエスト発生
元においてリクエストを取り下げてもらう必要があります。この取下げ要求発生の基
準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合は ,
ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル→取下げ要求発生
HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。また , NMI を使用したときは , HRCL レジスタの
MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。
表 6.3-1 に,ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
表 6.3-1 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
31
∼
NMI のみ
∼
16
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
248
第 6 章 割込みコントローラ
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つで
も発生すると, クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても同様に動作します。また , スリープ中であっても ,
本モジュール内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI の設定を行ってください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺
の制御レジスタにて割込みレベルを "11111B" にしてください。
249
第 6 章 割込みコントローラ
6.4
ホールドリクエスト取下げ要求機能 (HRCL) の使用例
DMA 転送中に , CPU が優先度の高い処理を行うときは , DMA に対してホールドリ
クエストを取り下げてホールド状態を解除する必要があります。ここでは , 割込み
を利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作
を実現します。
■ 制御レジスタ
HRCL( ホールドリクエストキャンセルレベル設定レジスタ ): 本モジュール
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
ICR: 本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
■ ハードウェア構成
各信号の流れは , 次のようになっています。
図 6.4-1 各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-UNIT
DHREQ
DMA
B-UNIT
CPU
(ICR)
(HRCL)
250
DHACK
DHREQ :
DHACK :
IRQ
:
MHALTI:
D-busホールドリクエスト
D-busホールドアクノリッジ
割込み要求
ホールドリクエスト取下げ要求
第 6 章 割込みコントローラ
■ シーケンス
図 6.4-2 割込みレベル HRCL < ICR (LEVEL)
RUN
バスホールド
①
CPU
バスアクセス要求
割込み処理
②
バスホールド
(DMA転送)
割込みルーチンの例
① 割込み要因クリア
~
DHREQ
② RETI
DHACK
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブ にします。これによって DMA
はアクセス要求を取り下げ, CPUはホールド状態から復帰して割込み処理を行います。
多重割込みの場合を以下に示します。
図 6.4-3 割込みレベル HRCL < ICR ( 割込み I) < ICR ( 割込み II)
RUN
バスホールド
CPU
割込みI
割込み処理II
③
④
割込み処理I
①
②
バスホールド
(DMA転送)
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
割込みルーチンの例
① , ③割込み要因クリア
∼
② , ④ RETI
上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場
合を示しています。HRCL レジスタに設定した割込みレベルより高い割込みレベルが
発生している間は , DHREQ はさがっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
251
第 6 章 割込みコントローラ
252
第7章
外部割込み /NMI 制御部
外部割込み /NMI 制御部の概要 , レジスタの構成 /
機能 , および動作について説明します。
7.1 外部割込み /NMI 制御部の概要
7.2 外部割込み /NMI 制御部のレジスタ
7.3 外部割込み /NMI 制御部の動作
253
第 7 章 外部割込み /NMI 制御部
外部割込み /NMI 制御部の概要
7.1
外部割込み制御部は , NMI および INT0 ∼ INT15 に入力される外部割込み要求の制
御を行うブロックです。
検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下りエッジ " から選
択できます (NMI 以外 ) 。
■ レジスタ一覧
図 7.1-1 レジスタ一覧
bit
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
外部割込み許可レジスタ
EN15
EN14
EN13
EN12
EN11
EN10
EN9
EN8
(ENIR)
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
外部割込み要因レジスタ
ER15
ER14
ER13
ER12
ER11
ER10
ER9
ER8
(EIRR)
bit
15
LB7
LB15
14
LA7
LA15
13
LB6
LB14
12
LA6
LA14
11
LB5
LB13
10
LA5
LA13
9
LB4
LB12
8
LA4
LA12
bit
7
LB3
LB11
6
LA3
LA11
5
LB2
LB10
4
LA2
LA10
3
LB1
LB9
2
LA1
LA9
1
LB0
LB8
0
LA0
LA8
bit
要求レベル設定レジスタ
(ELVR)
■ ブロックダイヤグラム
図 7.1-2 ブロックダイヤグラム
R-bus
8
割込み
要求
16
ゲート
要因 F/F
エッジ検出回路
16
INT0~INT15
NMI
8
16
254
割込み許可レジスタ
割込み要因レジスタ
要求レベル設定レジスタ
第 7 章 外部割込み /NMI 制御部
7.2
外部割込み /NMI 制御部のレジスタ
外部割込み /NMI 制御部で使用するレジスタの構成 , および機能について説明します。
■ 割込み許可レジスタ (ENIR : ENable Interrupt request Register)
図 7.2-1 割込み許可レジスタ (ENIR : ENable Interrupt request Register) のビット構成
bit
ENIR0 アドレス : 000041H
7
6
5
4
3
2
1
0
初期値
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B
[R/W]
bit
7
ENIR1 アドレス : 000111H EN15
6
5
4
3
2
1
0
初期値
EN14
EN13
EN12
EN11
EN10
EN9
EN8
00000000B
[R/W]
ENIRn は外部割込み要求出力のマスク制御を行います。このレジスタの "1" を書かれ
たビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ), 割込みコ
ントローラに対して要求が出力されます。"0" が書かれたビットの対応する端子は割込
み要因を保持しますが , 割込みコントローラに対しては要求を発生しません。
NMI に対するマスクビットは , 存在しません。
■ 外部割込み要因レジスタ (EIRR : External Interrupt Request Register)
図 7.2-2 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) のビット構成
bit
EIRR0 アドレス : 000040H
15
14
13
12
11
10
9
8
初期値
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
00000000B
[R/W]
bit
15
EIRR1 アドレス : 000110H ER15
14
13
12
11
10
9
8
初期値
ER14
ER13
ER12
ER11
ER10
ER9
ER8
00000000B
[R/W]
EIRRn は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの
要求を示すフリップフロップ (NMI フラグ ) 内容をクリアするレジスタです。この EIRR
レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子に外部割込
み要求があることを示します。また , このレジスタに "0" を書き込むと , 対応するビッ
トの要求フリップフロップがクリアされます。
"1" の書込みは無効です。
リードモディファイライト(RMW)系命令での読出し時には "1" が読まれます。
NMI フラグは , ユーザからリード / ライトできません。
参考 :
NMI フラグについては , 図 7.3-4 を参照してください。
255
第 7 章 外部割込み /NMI 制御部
■ 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register)
図 7.2-3 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) のビット構成
bit
ELVR0 アドレス : 000042H
15
14
13
12
11
10
9
8
初期値
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B
7
6
5
4
3
2
1
0
初期値
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
00000000B
[R/W]
bit
000043H
[R/W]
bit
15
ELVR1 アドレス : 000112H LB15
14
13
12
11
10
9
8
初期値
LA15
LB14
LA14
LB13
LA13
LB12
LA12
00000000B
6
5
4
3
2
1
0
初期値
LA11
LB10
LA10
LB9
LA9
LB8
LA8
00000000B
[R/W]
bit
7
000113H LB11
[R/W]
ELVRn は要求検出の選択を行うレジスタです。INT0 ∼ INT15 に 2 ビットずつが割り当て
られていて , 以下のような設定になります。要求入力がレベルの場合 , EIRR の各ビッ
トをクリアしても入力がアクティブレベルならば該当するビットは再びセットされま
す。
表 7.2-1 ELVR 割当て表
LBx
LAx
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動作
<注意事項>
• NMI は常にその立下りエッジが検出されます ( ストップ時を除く )。
• NMI はストップ時 , "L" レベル検出となります。
• INT はストップ時 ,"L" または "H" レベル検出にしてください ( エッジは不可 )。
256
第 7 章 外部割込み /NMI 制御部
外部割込み /NMI 制御部の動作
7.3
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された
要求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号
を発生します。
■ 外部割込みの動作について
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本リソース
からの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。
図 7.3-1 外部割込みの動作
外部割込み
リソース要求
ELVR
割込みコントローラ
ICR yy
EIRR
ENIR
CPU
IL
CMP
ICR xx
CMP
ILM
要因
■ スタンバイからの復帰について
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求を "H" レベル要求または "L" レベル要求としてください。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
■ 外部割込みの動作手順について
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 許可レジスタの対象となるビットを禁止状態にする。
3. 要求レベル設定レジスタの対象となるビットを設定する。
4. 要因レジスタの対象となるビットをクリアする。
5. 許可レジスタの対象となるビットを許可状態にする ( ただし , 4. と 5. は 16 ビット
データによる同時書込み可能 )。
本モジュール内のレジスタを設定するときには必ず許可レジスタを禁止状態に設定し
ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス
タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に
誤って割込み要因が起こってしまうことを避けるためです。
257
第 7 章 外部割込み /NMI 制御部
■ 外部割込み要求レベルについて
• 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス
幅は最小 3 マシンサイクル ( 周辺クロックマシンサイクル ) 必要とします。
• 要求入力レベルがレベル設定のとき , 外部より要求が入力され , その後取り下げら
れても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアク
ティブのままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり
ます。
図 7.3-2 レベル設定時の要因保持回路のクリア
割込み入力
レベル検知
要因F/F
(要因保持回路)
許可ゲート
割込みコントローラ
クリアしない限り要因を保持し続ける
図 7.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み入力
割込みコントローラ
への割込み要求
258
"H"レベル
要因 F/Fのクリアによってインアクティブとなる
第 7 章 外部割込み /NMI 制御部
■ NMI
• NMI は , ユーザ割込みの中で最強の割込みで , マスクすることはできません。例外
として , リセット直後から ILM を設定するまではマスクされます。
• NMI の受付けは下記のとおりです。
- 通常時 : 立下りエッジ
- ストップ時 : "L" レベル
• NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力
されるとストップ状態が解除され発振安定待ち時間が確保されます。
この発振安定待ち時間内に NMI 端子を "H" レベルに戻すと NMI 要因がなくなって
しまい動作再開後 NMI 処理が行われません。ストップ状態解除後に NMI 処理を行
いたい場合は , NMI 端子を "L" レベルのままにして , NMI 処理ルーチン内で "H" レ
ベルに戻すようにしてください。
NMI 要求検出部には NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割込
みの受付け , もしくは , リセットでのみクリアされます。
なお , このビットはリード / ライトできません。
図 7.3-4 NMI 要求検出
(NMIフラグ)
NMI要求
Q
(ストップ解除)
0
SX
R
立下り
エッジ検出
NMI
1
ストップ
クリア (RST,割込みアクノリッジ)
■ 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における注
意事項
クロック発振停止した STOP 状態時に , INT 端子への最初に入力された外部割込み信号
は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解
除から , 発振安定待ち時間経過するまでの期間においては , 他の外部割込み信号の入力
を認識できない期間が存在します ( 図 7.3-5 の b+c 期間 )。STOP 解除後の外部入力信
号を内部クロックに同期させるため , クロックが安定していない期間内は , その割込み
要因を保持できないためです。
そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に
外部割込み信号を入力してください。
エッジ検出の INT0 の後にレベル検出の INT1 が入力された場合の例を示します。
発振安定待ち時間中に入力されたレベル入力は,検出されません。
259
第 7 章 外部割込み /NMI 制御部
図 7.3-5 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
内部動作(RUN)
命令実行(run)
X0
内部Clock
割込みフラグクリア
割込み要因ビットER0
割込み要因ビットER1
(a)STOP
(b)振動子の発振時間
(d)RUN
(c)振動子発振安定時間
■ STOP 状態からの復帰動作について
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行なわれます。
● STOP 遷移前の処理
外部割込みの設定
デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必
要があるので,対応する外部割込み入力端子をポート入力に設定してください。
• 外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み入力がアサートされるとただちに内部 STOP 信号を
立ち下げる動作が行われます。同時に外部割込み回路では他のレベル割込み入力の
同期化を行うように切り換わります。
● 振動子の発振時間
外部割込み検出後 , クロックの発振が開始されます。振動子の発振時間は使用され
る振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待
ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定
待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開
始されると共に , STOP からの復帰要因以外の外部割込み要因を受け付け可能にな
ります。
260
第8章
REALOS 関連ハード
REALOS 関連ハードの遅延割込みモジュールと
ビットサーチモジュールについて説明します。
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムでは使用できません。
8.1 遅延割込みモジュール
8.2 遅延割込みモジュールのレジスタ
8.3 遅延割込みモジュールの動作
8.4 ビットサーチモジュール
8.5 ビットサーチモジュールのレジスタ
8.6 ビットサーチモジュールの動作
261
第 8 章 REALOS 関連ハード
8.1
遅延割込みモジュール
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 /
取消しを行うことができます。
■ レジスタ一覧
図 8.1-1 レジスタ一覧
bit
7
6
5
4
3
2
1
0
アドレス : 00000044H
-
-
-
-
-
-
-
DLYI
R/W
■ ブロックダイヤグラム
図 8.1-2 ブロックダイヤグラム
R-bus
割込み要求
262
DLYI
DICR
第 8 章 REALOS 関連ハード
8.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールで使用するレジスタの構成 , および機能について説明します。
■ DICR(Delayed Interrupt Control Register)
図 8.2-1 DICR(Delayed Interrupt Control Register) のビット構成
bit
7
6
5
4
3
2
1
0
アドレス : 00000044H
-
-
-
-
-
-
-
DLYI
R/W
-------0B( 初期値 )
遅延割込みを制御するレジスタです。
[bit 0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし〔初期値〕
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
263
第 8 章 REALOS 関連ハード
8.3
遅延割込みモジュールの動作
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ
とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで
きます。
■ 割込み番号
遅延割込みは, 最も大きな割込み番号に対応した割込み要因に割り当てられています。
MB91305 では , 遅延割込みを割込み番号 63(3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。
264
第 8 章 REALOS 関連ハード
8.4
ビットサーチモジュール
入力レジスタに書き込まれたデータに対して , 0, 1, または変化点を検索し , 検出し
たビット位置を返します。
■ レジスタ一覧
図 8.4-1 レジスタ一覧
31
0
アドレス : 0003F0H
BSD0
0 検出用データレジスタ
アドレス : 0003F4H
BSD1
1 検出用データレジスタ
アドレス : 0003F8H
BSDC
変化点検出用データレジスタ
アドレス : 0003FCH
BSRR
検出結果レジスタ
■ ブロックダイヤグラム
図 8.4-2 ブロックダイヤグラム
D-bus
入力ラッチ
アドレス
デコーダ
検出モ ー ド
1検出データ化
ビットサーチ回路
検索結果
265
第 8 章 REALOS 関連ハード
8.5
ビットサーチモジュールのレジスタ
ビットサーチモジュールで使用するレジスタの構成 , および機能について説明しま
す。
■ 0 検出用データレジスタ (BSD0)
図 8.5-1 0 検出用データレジスタ (BSD0) のビット構成
31
0
000003F0H
リード / ライト→ W
初期値
→ XXXXXXXXH
書き込んだ値に対して 0 検出を行います。
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください ) 。
■ 1 検出用データレジスタ (BSD1)
図 8.5-2 1 検出用データレジスタ (BSD1) のビット構成
31
0
000003F4H
リード / ライト→ R/W
初期値
→ XXXXXXXXH
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト 長のデータ転送命令は使わないでください ) 。
• 書込み時
書き込んだ値に対して "1" を検出します。
• 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハ
ンドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避 / 復帰す
るときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避 / 復帰できます。
リセットによる初期値は不定です。
266
第 8 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
図 8.5-3 変化点検出用データレジスタ (BSDC) のビット構成
31
0
000003F8H
リード / ライト→ W
初期値
→ XXXXXXXXH
書き込んだ値に対して変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト 長のデータ転送命令は使わないでください ) 。
■ 検出結果レジスタ (BSRR)
図 8.5-4 検出結果レジスタ (BSRR) のビット構成
31
0
000003FCH
リード / ライト→ R
初期値
→ XXXXXXXXH
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
267
第 8 章 REALOS 関連ハード
8.6
ビットサーチモジュールの動作
ビットサーチモジュールは , 次の 3 つの動作を行います。
• 0 検出
• 1 検出
• 変化点検出
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と , 返す数値の関係は , 表 8.6-1 のとおりです。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
読出し値 (10 進 )
(FFFFF000H)
(F849E0AAH)
(8002AAAAH)
(FFFFFFFFH)
→ 20
→5
→1
→ 32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は , 表 8.6-1 のとおりです。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
268
読出し値 (10 進 )
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
(00000000H)
→2
→7
→ 14
→ 31
→ 32
第 8 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを bit 30 から LSB へスキャンし ,
MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します 。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 8.6-1 の示すとおりです。
変化点が存在しないときは , 32 を返します。
変化点検出では , 結果として "0" を返すことはありません。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
(00000000H)
(FFFFF000H)
(F849E0AAH)
(8002AAAAH)
(FFFFFFFFH)
→2
→7
→ 14
→ 31
→ 32
→ 20
→5
→1
→ 32
表 8.6-1 ビット位置と返す値 (10 進 )
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
269
第 8 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1. 1 検出用データレジスタを読み出し , この内容を保存する ( 退避 )
2. ビットサーチモジュールを使用
3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1. 以前に
ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込
まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元
に戻ります。
270
第9章
10 ビット A/D コンバータ
10 ビット A/D コンバータの概要 , レジスタの構成 /
機能 , および動作について説明します。
9.1 10 ビット A/D コンバータの概要
9.2 10 ビット A/D コンバータのレジスタ
9.3 10 ビット A/D コンバータの動作
271
第 9 章 10 ビット A/D コンバータ
9.1
10 ビット A/D コンバータの概要
10 ビット逐次比較形 A/D コンバータで , ソフトウェアによる変換起動と外部トリガ
による変換起動モードを有します。
■ 10 ビット A/D コンバータの特長
• 変換時間 約 8.18 µs ( サンプリング 6.09 µs, 変換 2.09 µs) fCH:32MHz 時
• A/D 変換結果用レジスタをチャネルごとに用意
• チャネルスキャン機能あり
■ レジスタ構成
図 9.1-1 レジスタ構成
15
000020H
000022H
000024H
000026H
000028H
00002AH
00002CH
00002EH
000030H
000032H
000034H
000036H
000038H
0
ADCTH
ADCTL
ADCH
ADAT0
ADAT1
ADAT2
ADAT3
ADAT4
ADAT5
ADAT6
ADAT7
ADAT8
ADAT9
TEST
A/D 制御レジスタ
A/D アナログ入力選択レジスタ
A/D 変換データ ch0
A/D 変換データ ch1
A/D 変換データ ch2
A/D 変換データ ch3
A/D 変換データ ch4
A/D 変換データ ch5
A/D 変換データ ch6
A/D 変換データ ch7
A/D 変換データ ch8
A/D 変換データ ch9
A/D 変換部テストレジスタ ( アクセス禁止 )
図 9.1-2 A/D コンバータ構成図
AN0~AN9
ATRG端子
272
A/D
ATRG
IRQ
第 9 章 10 ビット A/D コンバータ
■ ブロックダイヤグラム
図 9.1-3 ブロックダイヤグラム
バッファ × 10
D/A コンバータ
部
デ
ー
タ
バ
ス
内
P
X
M
AN9
AN8
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
コンパレータ
コントロールロジック
S/H
A/D
チャネル & ステータス
コントロールロジック
外部端子
ATRG
IRQ
273
第 9 章 10 ビット A/D コンバータ
9.2
10 ビット A/D コンバータのレジスタ
10 ビット A/D コンバータで使用するレジスタの構成 , および機能について説明しま
す。
■ A/D 制御レジスタ (ADCTH, ADCTL)
図 9.2-1 A/D 制御レジスタ (ADCTH, ADCTL) のビット構成
ADCTH
15
14
13
12
11
10
9
8
初期値
000020H
"0"
"0"
"0"
"0"
"0"
"0"
TRG
STR
XXXXXX00B
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
7
6
5
4
3
2
1
0
初期値
000021H ASS3
ASS2
ASS1
ASS0
BUSY
"0"
INT
INTE
00000X00B
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
ADCTL
[bit 15 ∼ bit 10] Don't Care
常に "0" が読み出されます。
[bit 9] TRG
0
外部端子トリガでの起動禁止
1
外部端子トリガでの起動
TRG=1 のとき外部端子 (ATRG) 入力の立上りエッジを検出して A/D 変換を起動し
ます。
A/D 変換中にエッジ検出された場合は無視されます。
[bit 8] STR
A/D 変換スタートビットです。
0
影響なし
1
ソフト起動 / 再起動 ( 変換中の書込み )
このビットをリードした場合 , 常に "0" が読み出されます。
[bit 7 ∼ bit 4] ASS3 ∼ ASS0
選択されているアナログチャネルが読み出されます。
[bit 3] BUSY=1 のときに有効なデータが読み出されます。
0∼9
274
選択チャネル
第 9 章 10 ビット A/D コンバータ
[bit 3] BUSY
A/D 変換中を示すフラグです。
0
変換中でない
1
変換中
[bit 2] Don't Care
常に "0" が読み出されます。
[bit 1] INT
A/D 変換終了フラグです。
0
変換なし。または変換中
1
変換完了
[bit 0] INTE
A/D 変換割込み許可ビットです。
0
割込み禁止
1
割込み許可
INT=1 のとき INTE=1 なら割込み要求を発生します。
■ ソフト変換アナログ入力選択レジスタ (ADCH)
図 9.2-2 ソフト変換アナログ入力選択レジスタ (ADCH) のビット構成
ADCH
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
"0"
"0"
"0"
"0"
"0"
"0"
i9
i8
i7
i6
i5
i4
i3
i2
i1
i0
0000H
000022H
(R/W)
[bit 15 ∼ bit 10] Don't Care
常に "0" が読み出されます。
[bit 9 ∼ bit 0] i9 ∼ i0
ソフト変換用アナログ入力選択ビットです。
0
入力非選択
1
入力選択
複数の入力が選択されている場合には , 選択されている入力すべてに対し順次 , 変
換されます。
275
第 9 章 10 ビット A/D コンバータ
■ A/D 変換結果レジスタ (ADAT0 ∼ ADAT9)
図 9.2-3 A/D 変換結果レジスタ (ADAT0 ∼ ADAT9) のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
ADAT0 ∼
"0" "0" "0" "0" "0" "0" d9
ADAT9
d8
d7
d6
d5
d4
d3
d2
d1
d0 XXXXXX00 00000000B
000024H
∼
000036H
初期値
(R)
[bit 15 ∼ bit 10] Don't Care
常に "0" がリードされます。
[bit 9 ∼ bit 0] d9 ∼ d0
各チャネルに対応した A/D 変換結果が格納されます。
■ A/D 変換部テストレジスタ (TEST)
図 9.2-4 A/D 変換部テストレジスタ (TEST) のビット構成
15
14
13
12
11
10
9
8
7
TEST
TEST
000038H
(R/W)
[bit 15 ∼ bit 0] TEST
A/D 変換部テスト用レジスタ。
<注意事項>
本レジスタにはアクセスしないでください。
276
6
5
4
3
0
2
1
0
初期値
0000H
第 9 章 10 ビット A/D コンバータ
9.3
10 ビット A/D コンバータの動作
ソフト変換 , および外部トリガ変換による A/D 動作について説明します。
■ ソフト変換による A/D 動作
ソフト変換による A/D 変換を行うには , まず , アナログ入力端子 AN0 ∼ AN9 の 10 本
のうちから必要なチャネルを選択します。ADCH レジスタの対応するビットに "1" を
書き込むことにより有効となります。
● 単一チャネルの場合
変換用アナログ入力端子として 1 チャネルのみを選択した場合 , ADCTH レジスタの
STR ビットに "1" を書き込むことにより , ソフト変換動作が開始され , ADCH レジスタ
の BUSY ビットは "1" にセットされます。
変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再び変換が
開始されます。
A/D 変換動作が終了すると , ADCH レジスタの BUSY ビットは "0" にリセットされ ,
ADCTL レジスタの INT ビットは "1" にセットされます。これらのステータスビットを
読むことにより変換動作の終了を判別できます。また , 変換完了の割込みを発生したい
場合は , ADCTL レジスタの INTE ビットを "1" にしておきます。
● 複数チャネルの場合 ( スキャン変換 )
変換用アナログ入力端子として複数のチャネルを選択した場合 , 自動的に各チャネル
選択の有無を調べ , 順次チャネル切換えと A/D 変換の起動をし , 変換結果を各チャネル
に対応したレジスタへ格納します。
ADCH レジスタの対応ビットに "1" を書き込んで , 変換するチャネルを選択し , ADCH
レジスタの STR ビットに "1" を書き込むことで変換動作が開始し , ADCTL レジスタの
BUSY ビットは "1" にセットされます。変換チャネルは ch0 から ch9 の順で選択され ,
ADCH レジスタで選択されていないチャネルは変換を行わずに次に選択されている
チャネルの変換に移ります。
変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再び ch0 か
ら ch9 の順で選択されたチャネルの変換を開始します。
すべての選択したチャネルの A/D 変換動作が終了すると , ADCTL レジスタの BUSY
ビットは "0" にリセットされ , ADCTL レジスタの INT ビットは "1" にセットされます。
また , 変換完了の割込みを発生したい場合は , ADCTL レジスタの INTE ビットを "1" に
しておきます。
A/D 変換された結果は , 各チャネルのレジスタに格納されます。
277
第 9 章 10 ビット A/D コンバータ
■ 外部トリガ変換による A/D 動作
外部トリガ起動を許可した場合 (ADCTH:TRG=1) には , 外部端子 (ATRG) 入力の立上り
エッジを検出して A/D 変換を開始します。外部トリガ許可の状態でソフト起動した場
合も開始します。また , A/D 起動中に再度外部端子 (ATRG) 入力の立上りエッジを検出
した場合には変換動作は継続され,エッジは無視されます。
<注意事項>
低消費電力モードをストップモードにする場合には , A/D 変換動作が停止しているときに
行ってください。
278
第 10 章
16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 /
機能 , および 16 ビットリロードタイマの動作につ
いて説明します。
10.1 16 ビットリロードタイマの概要
10.2 16 ビットリロードタイマのレジスタ
10.3 16 ビットリロードタイマの動作説明
279
第 10 章 16 ビットリロードタイマ
10.1
16 ビットリロードタイマの概要
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内
部カウントクロック作成用プリスケーラ , コントロールレジスタで構成されていま
す。
■ 16 ビットリロードタイマの概要
16 ビットタイマは,16 ビットのダウンカウンタ,16 ビットのリロードレジスタ,内部
カウントクロック作成用プリスケーラ,コントロールレジスタで構成されてきます。
本品種は,16 ビットリロードタイマを 0 ∼ 2 までの 3 チャネル内蔵しています。
チャネル 0 ∼ 2 は,割込みによる DMA 転送の起動が可能です。
入力クロックとして内部クロック 3 種類 ( マシンクロックの 2 / 8 / 32 分周 ) と 外部ク
ロックから選択できます。
出力端子 (TOUT) はリロードモード時にはアンダフロー発生ごとにトグル出力波形を
出力し,ワンショットモード時にはカウント中を示す短形波を出力します。
入力端子 (TIN) は外部イベントカウントモード時にイベント入力となり,内部クロッ
クモード時にはトリガ入力またはゲート入力として使用することができます。
外部イベントカウント機能をリロードモードで使用すると,外部クロックモードの分
周器として利用することができます。
280
第 10 章 16 ビットリロードタイマ
■ ブロックダイヤグラム
図 10.1-1 に 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 10.1-1 16 ビットリロードタイマのブロックダイヤグラム
16ビットリロードレジスタ (TMRLR)
リロード
16ビットダウンカウンタ (TMR) UF
RELD
OUT
CTL
カウントイネーブル
OUTL
R-bus
INTE
UF
クロックセレクタ
CSL1
CNTE
CSL0
TRG
IRQ
外部タイマ出力
EXCK
IN CTL
TOE0~TOE3
プリスケーラ
プリスケーラ
クリア
MOD2
MOD1
φ
PFRK内のビット
MOD0
外部
トリガ
選択
外部トリガ入力
281
第 10 章 16 ビットリロードタイマ
■ レジスタ一覧
図 10.1-2 16 ビットリロードタイマレジスタ
15
14
13
12
11
10
9
8
-
-
-
-
CSL1
CSL0
7
6
5
4
3
2
1
0
MOD0
-
OUTL
RELD
INTE
UF
CNTE
TRG
MOD2 MOD1 コントロールステータスレジスタ
(TMCSR)
15
0
16 ビットタイマレジスタ
(TMR)
15
0
16 ビットリロードレジスタ
(TMRLR)
■ 16 ビットリロードタイマの端子名
本タイマは 3 つ内蔵されており,入力端子名(TIN)と出力端子名(TOUT)は以下の
ようになります。
282
入力端子名(TIN)
出力端子名(TOUT)
タイマ 0
TIN0
TOUT0
タイマ 1
TIN1
TOUT1
タイマ 2
TIN2
TOUT2
第 10 章 16 ビットリロードタイマ
10.2
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマで使用するレジスタの構成と機能について説明します。
■ コントロールステータスレジスタ (TMCSR)
コントロールステータスレジスタ (TMCSR) は,16 ビットタイマの動作モードおよび
割込みの制御をします。
図 10.2-1 コントロールステータスレジスタ (TMCSR) のビット構成
TMCSR
アドレス :
ch0 00004EH
ch1 000056H
ch2 00005EH
15
-
14
-
7
MOD0
R/W
6
R/W
13
(R/W)
12
(R/W)
5
R/W
4
RELD
R/W
11
CSL1
R/W
3
INTE
R/W
10
CSL0
R/W
2
UF
R/W
9
8
MOD2 MOD1
R/W
R/W
1
CNTE
R/W
0
TRG
R/W
初期値
----0000 00000000B
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにしてく
ださい。
コントロールステータスレジスタ (TMCSR) には,同時書込みが可能です。
以下に,コントロールステータスレジスタ (TMCSR) のビット機能を説明します。
[bit 11,bit 10] CSL1, CSL0 (Conut source SeLect)
これらのビットは,カウントソースセレクトビットです。これらのビットによって
選択されるクロックソースを表 10.2-1 に示します。また , 外部イベントカウント
モードを設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定さ
れます。
表 10.2-1 CSL ビット設定カウントソース
CSL1
CSL0
0
0
φ/21
(ch0 ∼ ch2)
0
1
3
φ/2
(ch0 ∼ ch2)
1
0
φ/25
(ch0 ∼ ch2)
1
1
外部クロック
(ch0 ∼ ch2)
カウントソース (φ:マシンクロック )
<注意事項>
外部クロックに必要な最小パルス幅は , 2T(T: 周辺系クロックマシンサイクル ) です。
283
第 10 章 16 ビットリロードタイマ
[bit 9,bit 8,bit 7] MOD2, MOD1, MOD0 (MODe)
これらのビットは,動作モードおよび入出力端子の機能を選択するビットです。
MOD2 ビットは,入力端子の機能を選択するビットです。"0" の場合入力端子はト
リガ入力端子となり,有効エッジが入力されるとリロードレジスタの内容をカウン
タへロードし,カウント動作を継続します。"1" の場合はゲートカウントモードに
なり,入力端子はゲート入力となって有効レベルが入力されている間のカウントを
します。
MOD1,0 ビットは,各モードにおける端子の機能を設定します。MOD2, 1, 0 ビット
の設定内容を,表 10.2-2 および表 10.2-3 に示します。
表 10.2-2 MOD2 ∼ MOD0 の設定方法 1 ( 内部クロックモード時 (CSL0, 1=
00, 01,10))
MOD2
MOD1
MOD0
0
0
0
0
0
1
0
1
0
0
1
1
1
X
0
1
X
1
入力端子機能
有効エッジ,レベル
-
トリガ禁止
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
"L" レベル
ゲート入力
"H" レベル
( 注意事項 ) 表中の "X" は , 任意の値を示します。
表 10.2-3 MOD2 ∼ MOD0 の設定方法 2 ( イベントカウントモード時 (CSL0,1 = 11))
MOD2
MOD1
MOD0
入力端子機能
有効エッジ,レベル
0
0
-
-
0
1
1
0
1
1
立上りエッジ
X
イベント入力
立下りエッジ
両エッジ
<注意事項>表中の "X" は , 任意の値を示します。
[bit 6] (reserved)
このビットは未使用ビットです。読出し時,常に "0" が読めます。
[bit 5] (OUTL)
このビットは,TOUT 端子の出力レベルを設定します。このビットが "0" のときと
"1" のときでは,端子のレベルが逆になります。このビットと bit 4 (RELD ビット )
および I/O ポートの PFR レジスタの該当ビットの組合せによって出力波形を指定し
ます。表 10.2-4 にこれらのビットの組合せによる設定内容を示します。
284
第 10 章 16 ビットリロードタイマ
表 10.2-4 PFR, RELD,OUTL の設定内容
PFR
OUTL
RELD
0
X
X
汎用ポート
1
0
0
カウント中 "H" 短形波
1
1
0
カウント中 "L" 短形波
1
0
1
カウンタスタート時 "L" のトグル出力
1
1
1
カウンタスタート時 "H" のトグル出力
出力波形
<注意事項> PFR は I/O ポートの PFR レジスタの該当ビット
[bit 4] RELD
このビットは,リロード許可ビットです。"1" のときリロードモードになり , カウン
タの値が "0000H" → "FFFFH " へのアンダフローと同時にリロードレジスタの内容を
カウンタへロードしてカウント動作を続けます。
"0" のときワンショットモードになり , カウンタの値が "0000H " → "FFFFH" へのア
ンダフローによりカウント動作を停止します。
[bit 3] INTE
このビットは,割込み要求許可ビットです。INIT ビットが "1" のとき , UF ビットが
"1" になると割込み要求を発生します。"0" のときは , 割込み要求を発生しません。
[bit 2] UF
このビットは,タイマ割込み要求フラグです。カウンタの値が , "0000H " → "FFFFH"
へのアンダフローにより "1" にセットされます。"0" の書込みによってクリアされ
ます。
このビットに対して "1" の書込みは , 意味がありません。リードモディファイライ
ト (RMW) 系命令における読出し時には , "1" が読み出されます。
[bit 1] CNTE
このビットは,タイマのカウントイネーブルビットです。このビットに "1" を書き
込むと , 起動トリガ待ち状態になります。このビットへ "0" を書き込むと,カウン
ト動作は停止します。
285
第 10 章 16 ビットリロードタイマ
[bit 0] TRG
このビットは , ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリ
ガがかかり , リロードレジスタの内容をカウンタへロードしてカウント動作を開始
します。
このビットに対して "0" の書込み動作は , 意味がありません。読出し値は , 常に "0"
です。
このレジスタによるトリガ入力は , CNTE="1" のときのみ有効となります。
CNTE="0" のときには , 何も起こりません。
■ 16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタ (TMR) は,16 ビットタイマのカウント値を読み出すことが
できるレジスタです。初期値は不定です。
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
図 10.2-2 16 ビットタイマレジスタ (TMR) のビット構成
TMR
アドレス :
15
ch0 00004AH
ch1 000052H
R
ch2 00005AH
0 初期値
XXXXH
R
R
R
R
R
R
R
■ 16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタ (TMRLR) は , カウントの初期値を保持するレジスタです。
初期値は不定です。このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行っ
てください。
図 10.2-3 16 ビットリロードレジスタ (TMRLR) のビット構成
TMRLR
アドレス :
15
ch0 000048H
ch1 000050H
W
ch2 000058H
286
0 初期値
XXXXH
W
W
W
W
W
W
W
第 10 章 16 ビットリロードタイマ
16 ビットリロードタイマの動作説明
10.3
16 ビットリロードタイマの動作について説明します。
■ 動作説明
● 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2/8/32 分周のクロックから選択できます。
外部入力端子は,レジスタの設定によりトリガ入力またはゲート入力に使用できます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE="1") 動作モードにか
かわらず常に有効です。
カウンタの起動 , および動作について , 図 10.3-1 に示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , 1T(T: 周辺クロックサイクル ) の時間がかかります。
図 10.3-1 カウンタの起動 , および動作
カウントクロック
リロードデータ
カウンタ
-1
-1
-1
データロード
CNTE (レジスタ)
TRG (レジスタ)
T
287
第 10 章 16 ビットリロードタイマ
● アンダフロー動作
カウンタの値が "0000H" から "FFFFH " になるときをアンダフローとしています。した
がって , 〔リロードレジスタの設定値 +1〕カウントでアンダフローが発生することに
なります。
アンダフロー発生時コントロールステータスレジスタ (TMCSR) の RELD ビットが "1"
のとき 16 ビットリロードレジスタ (TMRLR) の内容をカウンタへロードしてカウント
動作を継続します。RELD ビットが "0" のとき,カウンタは "FFFFH" で停止します。
アンダフローによりコントロールレジスタ (TMCSR) の UF ビットがセットされ , INTE
ビットが "1" のとき,割込み要求を発生します。
アンダフロー動作のタイミングチャート図 10.3-2 に示します。
図 10.3-2 アンダフロー動作のタイミングチャート
[RELD=1]の場合
カウントクロック
カウンタ
0000H
リロードデータ
データロード
アンダフローセット
[RELD=0]の場合
カウントクロック
カウンタ
アンダフローセット
288
0000H
FFFFH
-1
-1
-1
第 10 章 16 ビットリロードタイマ
■ 入力端子機能の動作 ( 内部クロックモード時 )
クロックソースとして内部クロックを選択した場合,
TIN 端子はトリガ入力またはゲー
ト入力として使用することができます。
● トリガ入力の動作
トリガ入力として使用した場合,有効エッジが入力されると,16 ビットリロードレジ
スタ (TMRLR) の内容をカウンタにロードして内部プリスケーラをクリアした後,カウ
ント動作を開始します。TIN は 2T(T は周辺系クロックマシンサイクル ) 以上のパルス
を入力してください。
トリガ入力動作のタイミングチャートを,図 10.3-3 に示します。
図 10.3-3 トリガ入力動作のタイミングチャート
カウントクロック
立上りエッジ検出時
TIN
プリスケーラクリア
カウンタ
リロードデータ
-1
-1
-1
-1
ロード
2T~
2.5T
289
第 10 章 16 ビットリロードタイマ
● ゲート入力の動作
ゲート入力として使用する場合,コントロールステータスレジスタ (TMCSR) の M0D0
ビットによって設定される有効レベルが,TIN 端子から入力されている間のみカウン
トをします。このときカウントクロックは,止まらずに動き続けます。ゲートモード
時のソフトウェアトリガは,ゲートレベルにかかわらず可能です。TIN 端子のパルス
幅は,2T(T は周辺系クロックマシンサイクル ) 以上にしてください。
ゲート入力動作のタイミングチャートを,図 10.3-6 に示します。
図 10.3-4 ゲート入力動作のタイミングチャート
カウントクロック
TIN
M0D0=1とした場合(入力Hの間カウント)
-1
カウンタ
-1
-1
● 外部イベントカウント動作
外部クロックをセレクトすると,TIN 端子は外部イベント入力端子となり,レジスタ
で設定された有効エッジをカウントします。TIN 端子のパルス幅は,2T(T は周辺系ク
ロックマシンサイクル ) 以上にしてください。
290
第 10 章 16 ビットリロードタイマ
● 出力端子機能の動作
TOUT 端子が,リロードモード時はアンダフローにより反転するトグル出力として,ワ
ンショットモード時はカウント中を示すパルス出力として機能します。出力極性は,コ
ントロールステータスレジスタ(TMCSR)のOUTLビットにより設定できます。
OUTL=0
の場合トグル出力は初期値が "0" で,ワンショットパルス出力は,カウント中 "1" を出
力します。OUTL=1 にすると出力波形は,反転します。
図 10.3-5 に出力端子機能動作のタイミングチャートを示します。
図 10.3-5 出力端子機能動作のタイミングチャート
[RELD=1,OUTL=0]の場合
カウント開始
アンダフロー
OUTL=1のときは反転
TOUT
汎用ポート
CNTE
起動トリガ
[RELD=0,OUTL=0]の場合
アンダフロー
OUTL=1で反転
TOUT
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
● その他の動作
16 ビットリロードタイマのチャネル 0 ∼ 2 は,その割込み要求信号で DMA 転送を起
動することが可能です。
DMA コントローラは,転送要求の受付けと同時にリロードタイマの割込みフラグをク
リアします。
291
第 10 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , コントロールステータスレジスタ (TMCSR) の CNTE ビットと内部
信号の WAIT 信号によって決まります。設定可能な状態として CNTE="0", WAIT="1"
の停止状態 (STOP 状態 ), CNTE="1", WAIT="1" の起動トリガ待ち状態 (WAIT 状態 ),
CNTE= "1", WAIT= "0" の動作状態 (RUN 状態 ) があります。
● カウンタの動作状態
各状態の遷移を図 10.3-6 に示します。
図 10.3-6 カウンタ状態遷移
ハードウェアによる状態遷移
リセット
STOP
CNTE=0, WAIT=1
レジスタアクセスによる状態遷移
カウンタ: 停止時の値を保持
リセット直後は不定
CNTE="1"
TRG="0"
WAIT
CNTE="1"
TRG="1"
CNTE=1, WAIT=1
RUN
CNTE=1, WAIT=0
カウンタ: 停止時の値を保持
リセット直後, ロードする
までは不定
カウンタ: 動作
RELD UF
TRG="1"
TRG="1"
CNTE=1, WAIT=0
LOAD
リロードレジスタの内容を
カウンタへロード
292
RELD UF
ロード終了
第 10 章 16 ビットリロードタイマ
■ 使用上の注意
16 ビットリロードタイマを使用する上で,注意しなければならない事項について説明
します。
● 使用上の注意事項
内部プリスケーラ
• 内部プリスケーラは , コントロールステータスレジスタ (TMCSR) の bit 1( タイマ許可 :
CNTE) が "1" に設定されている状態で,トリガ ( ソフトウェアトリガまたは外部ト
リガ ) がかけられることにより動作可能になります。
ゲートカウントモードのみで使用する場合でも,有効ゲートレベル入力前に必ず 1
度トリガをかけてください。
CNTE を設定するときに , TMCSR レジスタの bit 0 (TRG) に "1" を書き込むことを推
奨します。
割込み要求フラグのセットとクリアタイミング
• 割込み要求フラグをセットするタイミングとクリアタイミングが重複した場合に
は , フラグのセットが優先し , クリア動作は無効になります。
16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR)
• 16 ビットタイマレジスタへの書込みと 16 ビットリロードレジスタへリロードのタイ
ミングが重なった場合には , 旧データがカウンタにロードされ , 新データがカウンタ
にロードされるのは , 次のリロードのときになります。
16 ビットタイマレジスタ (TMR)
• 16 ビットタイマレジスタは , ロードとカウントのタイミングが重複した場合には ,
ロード ( リロード ) 動作の方が優先されます。
293
第 10 章 16 ビットリロードタイマ
294
第 11 章
PPG (Programable Pulse
Generator)
PPG(Programable Pulse Generator) タイマの概
要 , レジスタの構成 / 機能および動作について説明
します。
11.1 PPG の概要
11.2 PPG タイマのレジスタ
11.3 PPG の動作説明
11.4 PPG タイマの注意事項
295
第 11 章 PPG (Programable Pulse Generator)
11.1
PPG の概要
PPG は , 精度の高い PWM 波形を効率良く出力できます。
MB91305 は , PPG タイマを 4 チャネル内蔵しています。
■ 概要
• 各チャネルは , 16 ビットダウンカウンタ , 周期設定用バッファ付き 16 ビットデータ
レジスタ , デューティ設定用バッファ付き 16 ビットコンペアレジスタ , 端子制御部
から構成されます。
• 16 ビットダウンカウンタのカウントクロックは , 4 種類から選択が可能です。
周辺クロック φ, φ/4, φ/16, φ/64
• カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化できます。
• チャネルごとに PPG 出力 (PPG0 ∼ PPG3) があります。
• レジスタ概要
- 周期設定レジスタ
: バッファ付き , リロード用データレジスタ
バッファからの転送は起動トリガ検出 およびカウン
タボローにより行います。カウンタボローにより PPG
出力は反転します。
- デューティ設定レジスタ : バッファ付き , コンペアレジスタ
本レジスタ値とカウンタ値一致によりPPG出力は反転
します。
• 端子制御概要
- デューティ一致で , "1" にセットします ( 優先 )。
- カウンタボローで , "0" にリセットします。
- 出力値固定モードがあり , オール "L" ( または "H") を簡単に出力できます。
- 極性指定も可能です。
• 割込み要求は , 以下の組合せから選択して発生できます。
- 本タイマ起動 ( ソフトトリガ もしくは トリガ入力 )
- カウンタボロー発生 ( 周期一致 )
- デューティ一致発生
- カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
上記の割込み要求によって , DMA 転送起動が可能です。
• ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定
できます。また , 動作中の再起動も設定可能です。
296
第 11 章 PPG (Programable Pulse Generator)
■ レジスタ一覧
図 11.1-1 レジスタ一覧
アドレス
000120H
15
0 アクセス
R
ch0 タイマレジスタ
PTMR0
000122H
PCSR0
W
ch0 周期設定レジスタ
000124H
PDUT0
W
ch0 デューティ設定レジスタ
000126H
PCNH0
PCNL0
R/W ch0 コントロールステータスレジスタ
000128H
PTMR1
R
ch1 タイマレジスタ
00012AH
PCSR1
W
ch1 周期設定レジスタ
00012CH
PDUT1
W
ch1 デューティ設定レジスタ
00012EH
PCNH1
PCNL1
R/W ch1 コントロールステータスレジスタ
000130H
PTMR2
R
ch2 タイマレジスタ
000132H
PCSR2
W
ch2 周期設定レジスタ
000134H
PDUT2
W
ch2 デューティ設定レジスタ
000136H
PCNH2
PCNL2
R/W ch2 コントロールステータスレジスタ
000138H
PTMR3
R
ch3 タイマレジスタ
00013AH
PCSR3
W
ch3 周期設定レジスタ
00013CH
PDUT3
W
ch3 デューティ設定レジスタ
00013EH
PCNH3
PCNL3
R/W ch3 コントロールステータスレジスタ
297
第 11 章 PPG (Programable Pulse Generator)
■ ブロックダイヤグラム
図 11.1-2 全体構成
外部TRG0
TRG入力
PPGタイマ ch0
PPG0
外部TRG1
TRG入力
PPGタイマ ch1
PPG1
外部TRG2
TRG入力
PPGタイマ ch2
PPG2
外部TRG3
TRG入力
PPGタイマ ch3
PPG3
図 11.1-3 1 チャネル分
PCSR
PDUT
プリスケーラ
cmp
1/1
1/4
1/16
1/64
CK
ロード
16ビット
ダウンカウンタ
スタート
ボロー
PPGマスク
S
周辺クロック
PPG出力
Q
R
反転ビット
イネーブル
TRG入力
エッジ検出
ソフトトリガ
298
割込み
選択
IRQ
第 11 章 PPG (Programable Pulse Generator)
11.2
PPG タイマのレジスタ
PPG タイマのレジスタについて説明します。
■ コントロールステータスレジスタ (PCNH0 ∼ PCNH3, PCNL0 ∼ PCNL3)
図 11.2-1 コントロールステータスレジスタ (PCNH, PCNL) のビット構成
PCNH0 ∼ PCNH3
bit
15
14
13
12
アドレス : ch0 000126H CNTE STGR MDSE RTRG
11
CKS1
10
9
CKS0 PGMS
8
-
ch1 00012EH
R/W
R/W
R/W
R/W
R/W
R/W
R/W
-
←属性
ch2 000136H
0
0
0
0
0
0
0
-
←初期値
ch3 00013EH
○
○
×
×
×
×
○
-
←動作中の書換え
PCNL0 ∼ PCNL3
bit
7
アドレス : ch0 000127H EGS1
6
5
4
3
2
1
0
EGS0
IREN
IRQF
IRS1
IRS0
-
OSEL
ch1 00012FH
R/W
R/W
R/W
R/W
R/W
R/W
-
ch2 000137H
0
0
0
0
0
0
0
0
←初期値
ch3 00013FH
×
×
○
○
×
×
-
×
←動作中の書換え
R/W ←属性
[bit 15] CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
値
内容
0
停止 ( 初期値 )
1
許可
[bit 14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことによりソフトウェアトリガがかかります。
STGR ビットの読出し値は , 常に "0" です。
[bit 13] MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択
します。
値
内容
0
PWM 動作 ( 初期値 )
1
ワンショット動作
299
第 11 章 PPG (Programable Pulse Generator)
[bit 12] RTRG: 再起動許可ビット
ソフトウェアトリガ , またはトリガ入力による再起動を許可するビットです。
値
内容
0
再起動禁止 ( 初期値 )
1
再起動許可
[bit 11, bit 10] CKS1, CKS0: カウントクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。
CKS1
CKS0
0
0
φ ( 初期値 )
0
1
φ/4
1
0
φ/16
1
1
φ/64
周期
φ: 周辺クロック
[bit 9] PGMS: PPG 出力マスク選択ビット
このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値
にかかわらず PPG 出力を "0", または "1" にマスクできます。
表 11.2-1 PGMS に "1" 書込み時の PPG 出力
極性
PPG 出力
通常極性
"L" 出力
反転極性
"H" 出力
通常極性時にオール "H", または反転極性時にオール "L" を出力したい場合は , 周期
設定レジスタとデューティ設定レジスタに同値を書き込めば上記マスク値の反転
を出力できます。
[bit 8] : −
未使用ビットです。
300
第 11 章 PPG (Programable Pulse Generator)
[bit 7, bit 6] EGS1, EGS0: トリガ入力エッジ選択ビット
ゼネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。
どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ
ガは有効になります。
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
エッジ選択
[bit 5] IREN: 割込み要求許可ビット
値
内容
0
禁止 ( 初期値 )
1
許可
[bit 4] IRQF: 割込み要求フラグ
bit 5: IREN が許可されていて bit 3, bit 2: IRS1, IRS0 にて選択した割込み要因が発生
すると , 本ビットがセットされ CPU に割込み要求を発生します。
本ビットは , "0" 書込みによりクリアされます。
"1" を書き込んでもビット値は変化しません。
リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかかわ
らず "1" です。
[bit 3, bit 2] IRS1, IRS0: 割込み要因選択ビット
bit 4: IRQF をセットする要因を選択します。
IRS1
IRS0
0
0
ソフトウェアトリガ , またはトリガ入力あり ( 初期値 )
0
1
カウンタボロー発生 ( 周期一致 )
1
0
デューティ一致発生
1
1
カウンタボロー発生 ( 周期一致 ), またはデューティ一致発生
割込み要因
[bit 1] (reserved)
未使用ビットです。
301
第 11 章 PPG (Programable Pulse Generator)
[bit 0] OSEL: PPG 出力極性指定ビット
PPG 出力の極性を設定します。
bit 9: PGMS との組合せで , 以下のようになります。
表 11.2-2 PPG 出力極性指定組合せ
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
PPG 出力
表 11.2-3 PPG 出力極性指定
極性
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティ一致
カウンタボロー
■ PPG 周期設定レジスタ (PCSR0 ∼ PCSR3)
図 11.2-2 PCSR(PPG 周期設定レジスタ ) のビット構成
PCSR0 ∼ PCSR3
bit
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
アドレス : ch0 000122H
ch1 00012AH
ch2 000132H
ch3 00013AH
属性 → W
初期値 → XXXXXXXX XXXXXXXXB
周期を設定するためのバッファ付きレジスタです。バッファからの転送は , カウンタボ
ローで行われます。
周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタの書込み後 ,
必ずデューティ設定レジスタへの書込み動作を行ってください。
本レジスタは , 16 ビットデータでアクセスしてください。
302
第 11 章 PPG (Programable Pulse Generator)
■ PPG デューティ設定レジスタ (PDUT0 ∼ PDUT3)
図 11.2-3 PDUT0 ∼ PDUT3 (PPG デューティ設定レジスタ ) のビット構成
PDUT0 ∼ PDUT3
bit
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
アドレス : ch0 000124H
ch1 00012CH
ch2 000134H
ch3 00013CH
属性 → W
初期値 → XXXXXXXX XXXXXXXXB
デューティを設定するためのバッファ付きレジスタです。バッファからの転送は , カウ
ンタボローで行われます。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR < PDUT となるような値を設定しないでください。PPG 出力は不定となります。
本レジスタは , 16 ビットデータでアクセスしてください。
■ PPG タイマレジスタ (PTMR0 ∼ PTMR3)
図 11.2-4 PTMR0 ∼ PTMR3 (PPG タイマレジスタ ) のビット構成
PTMR0 ∼ PTMR3
bit
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
アドレス : ch0 000120H
ch1 000128H
ch2 000130H
ch3 000138H
属性 → R
初期値 → 11111111 11111111B
16 ビットダウンカウンタの値を読み出すことができます。
本レジスタは , 16 ビットデータでアクセスしてください。
303
第 11 章 PPG (Programable Pulse Generator)
PPG の動作説明
11.3
PWM 動作では , 起動トリガの検出時より連続してパルスを出力します。
■ PWM 動作
出力パルスの周期は , PCSR 値を変えることにより制御でき , またデューティ比は ,
PDUT 値を変えることにより制御できます。
<注意事項>
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
● PWM 動作タイミングチャート
図 11.3-1 再起動禁止の場合
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
0
PPG
(1)
(2)
(1) = T (n+1) ms
(2) = T (m+1) ms
T : カウントクロック周期
m : PCSR値
n : PDUT値
図 11.3-2 再起動許可の場合
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
0
PPG
(1)
(2)
(1) = T (n+1) ms
(2) = T (m+1) ms
304
T : カウントクロック周期
m : PCSR値
n : PDUT値
第 11 章 PPG (Programable Pulse Generator)
■ ワンショット動作
ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。
再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。
● ワンショット動作タイミングチャート
図 11.3-3 再起動禁止の場合
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
0
PPG
(1)
(2)
(1) = T (n+1) ms
(2) = T (m+1) ms
T : カウントクロック周期
m : PCSR値
n : PDUT値
図 11.3-4 再起動許可の場合
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
0
PPG
(1)
(2)
(1) = T (n+1) ms
(2) = T (m+1) ms
T : カウントクロック周期
m : PCSR値
n : PDUT値
305
第 11 章 PPG (Programable Pulse Generator)
■ 割込み要因とタイミングチャート
図 11.3-5 割込み要因とタイミングチャート (PPG 出力は , 通常極性 )
起動トリガ
最大2.5T
ロード
クロック
カウント値
X
0002H
0003H
0001H
0000H
0003H
PPG
割込み
有効エッジ
デューティ一致
カウンタボロー
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク
ロック周期 ) を必要とします。
■ PPG 出力オール "L", またはオール "H" の出力方法例
図 11.3-6 PPG 出力をオール "L" にする出力方法例
PPG
デューティ
値を小さく
していく
ボローによる割込みでPGMS(マスクビット)に
"1"を書き込みます。
また, ボローによる割込みでPGMS(マスクビット)に
"0"を書き込めば, ひげを出力することなくPWM波形
を出力できます。
図 11.3-7 PPG 出力をオール "H" にする出力方法例
PPG
デューティ
値を大きく
していく
306
コンペア一致による割込みでデューティ設定
レジスタに周期設定レジスタ値と同じ値を
書き込みます。
第 11 章 PPG (Programable Pulse Generator)
11.4
PPG タイマの注意事項
PPG タイマの使用に関して注意すべき点を説明します。
■ PPG タイマの注意事項
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は無効となります。
• PPG コントロールレジスタの bit 11, bit 10 ( カウントロック選択ビット CKS1, および
CKS0) は , 書込み後すぐに反映されるので , 設定変更はカウント停止状態で行って
ください。
• PPG ダウンカウンタ (16 ビットダウンカウンタ ) は , ロードとカウントのタイミン
グが重複した場合は , ロード動作の方を優先します。
307
第 11 章 PPG (Programable Pulse Generator)
308
第 12 章
U-TIMER
U-TIMER の概要 , レジスタの構成 , 機能 , および動
作について説明します。
12.1 U-TIMER の概要
12.2 U-TIMER のレジスタ
12.3 U-TIMER の動作説明
309
第 12 章 U-TIMER
12.1
U-TIMER の概要
U-TIMER(16 bit timer for UART baud rate generation) の概要とブロックダイヤグ
ラムを示します。
■ U-TIMER の概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。
MB91305 は , 本タイマを 5 チャネル内蔵しています。
U-TIMERをカスケードして使用でき, 最大232 ×φのインターバルをカウントできます。
カスケード接続できる組合せは , ch0 と ch1 ∼ ch4 です。
■ レジスタ一覧
図 12.1-1 レジスタ一覧
15
8 7
0
(R)
(W)
(R/W)
UTIM0 ∼ UTIM4
UTIMR0 ∼ UTIMR4
UTIMC0 ∼ UTIMC4
■ ブロックダイヤグラム
図 12.1-2 U-TIMER のブロックダイヤグラム
0
15
UTIMR0~UTIMR4(リロードレジスタ)
ロード
15
0
UTIM0~UTIM4(タイマ)
クロック
アンダフロー
(周辺系クロック)
ch1 ~ ch4
のみ
アンダフロー U-TIMR 0
310
コントロール
MUX
f.f.
UARTへ
第 12 章 U-TIMER
12.2
U-TIMER のレジスタ
U-TIMER で使用するレジスタの構成 , および機能について説明します。
■ UTIM0 ∼ UTIM4 (U-TIMER)
図 12.2-1 UTIM0 ∼ UTIM4(U-TIMER) のビット構成
UTIM0 ∼ UTIM4
ch0 アドレス : 000064H
15
14
ch1 アドレス : 00006CH
b15
b14
...................................
2
1
0
b2
b1
b0
ch2 アドレス : 000074H
R
アクセス
ch3 アドレス : 00007CH
0
初期値
ch4 アドレス : 000084H
UTIM0 ∼ UTIM4 は , タイマの値を示します。16 ビット転送命令でアクセスしてくだ
さい。
■ UTIMR0 ∼ UTIMR4(reload register)
図 12.2-2 UTIMR0 ∼ UTIMR4(reload register) のビット構成
UTIMR0 ∼ UTIMR4
ch0 アドレス : 000064H
15
14
ch1 アドレス : 00006CH
b15
b14
...................................
2
1
0
b2
b1
b0
ch2 アドレス : 000074H
W
アクセス
ch3 アドレス : 00007CH
0
初期値
ch4 アドレス : 000084H
UTIMR0 ∼ UTIMR4 は , UTIM がアンダフローしたときに UTIM にリロードされる値
を格納するレジスタです。
このレジスタは必ず 16 ビット転送命令でアクセスしてください。
<注意事項>
UART のモード 2 ( クロック同期モード ) で U-TIMER をボーレートとして使用する場合,
U-TIMER に "0" を設定することは禁止です。
311
第 12 章 U-TIMER
■ UTIMC0 ∼ UTIMC4 (U-TIMER Control register)
図 12.2-3 UTIMC0 ∼ UTIMC4(U-TIMER Control register) のビット構成
UTIMC0 ∼ UTIMC4
7
ch0 アドレス : 000067H
ch1 アドレス : 00006FH UCC1
R/W
ch2 アドレス : 000077
H
ch3 アドレス : 00007FH
0
6
-
5
-
4
UTIE
R/W
-
-
0
3
2
UNDR CLKS
R/W
R/W
0
1
UTST
R/W
0
0
0
UTCR
R/W アクセス
1
初期値
ch4 アドレス : 000087H
UTIMC0 ∼ UTIMC4 は , U-TIMER の動作を制御します。
このレジスタは , 必ずバイト転送命令でアクセスしてください。
[bit 7] UCC1 (U-timer Count Control 1)
UCC1 ビットは , U-TIMER のカウントの仕方を制御します。
UCC1
動作
0
通常動作 α = 2n+2 〔初期値〕
1
+1 モード α = 2n+3
n: UTIMR の設定値
α: UART に対する出力クロックの周期
U-TIMER は , UART に対して通常の 2(n+1) の周期のクロックのほかに奇数分周を
設定できます。
UCC1 を "1" に設定すると 2n+3 の周期を発生します。
設定例 : • UTIMR=5, UCC1=0 :
発生周期 = 2n+2 = 12 サイクル
• UTIMR=25, UCC1=1:
発生周期 = 2n+3 = 53 サイクル
• UTIMR=60, UCC1=0:
発生周期 = 2n+2 = 122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し
てください。
[bit 6, bit 5] (reserved)
[bit 4] UTIE (U-Timer Interrupt Enable)
UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。
0 : 割込み禁止
〔初期値〕
1 : 許可
[bit 3] UNDR (UNDeR flow flag)
UNDR は , アンダフローが発生したことを示すフラグです。UTIE が "1" で UNDR
がセットされるとアンダフロー割込みが発生します。
UNDR はリセット , または "0"
書込みによりクリアされます。リードモディファイライト (RMW) 系命令における
読出し時は, 常に"1"が読み出されます。また, UNDR に対する"1"書込みは無効です。
312
第 12 章 U-TIMER
[bit 2] CLKS (CLocK Select)
CLKS は , U-TIMER の ch0 と ch1 ∼ ch4 のカスケード指定ビットです。
0: クロックソースは , 周辺系クロック (φ) 〔初期値〕
1: U-TIMER ソースクロックタイミングとして , ch0 のアンダフロー信号を使用
( 図 12.1-2 の f.f.)
CLKS は ch1 ∼ ch5 でのみ有効 , ch0 では常に "0" にしてください。
<注意事項>
φ ( 周辺系クロック= CLKP) は , ギアの設定により周期が変わります。
[bit 1] UTST (U-Timer STart)
U-TIMER の動作許可ビットです。
0: 停止。動作中でも "0" 書込みで停止します。〔初期値〕
1: 動作。動作中に "1" を書き込んでも動作は続行されます。
[bit 0] UTCR (U-Timer CleaR)
UTCR に "0" を書き込むと U-TIMER は "0000H " にクリアされます (f.f. も "0" にクリ
ア)。
常に "1" が読み出されます。
313
第 12 章 U-TIMER
<注意事項>
• ストップ状態からスタートビット (UTST) をアサート ( スタート ) すると自動的にリ
ロードします。
• ストップ状態からクリアビット (UTCR) とスタートビット (UTST) を同時にアサートす
ると , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。
• 動作中にクリアビット (UTCR) をアサートすると , カウンタも "0" クリアされます。こ
のため , 出力波形にひげ状の短いパルスが出力される場合があり , UART やカスケード
モードの上位側の U-TIMER が誤動作する可能性があります。
出力クロックを使用している場合には , 動作中にクリアビットによるクリアを行わな
いでください。
• カスケードモードで , 下位側の UTIMR ( リロ−ドレジスタ ) に "0" または "1" をセット
すると正しくカウントされません。
• U-TIMER コントロールレジスタの bit 1(U-TIMER スタートビット :UTST), および bit 0
(U-TIMER のクリアビット :UTCR) をタイマ停止状態で同時にアサートすると , クリア
した後のカウンタロードのタイミングで同レジスタの bit 3 ( アンダフローフラグ :
UNDR) をセットします。また , 内部ボーレートクロックは同タイミングで "H" レベル
になります。
• アンダフローフラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は無効となります。
• ch0 をカスケードモードで使用しない場合や本モジュールを単にタイマ機能として使用
する場合は , U-TIMER コントロールレジスタの bit 2 ( 基準クロック選択ビット:CLKS)
には常に "0" を書き込んでください。また , "CLKS" の設定変更は , 本モジュールが動作
停止の状態で行ってください。
• U-TIMERリロードレジスタへの書込みとリロードのタイミングが重複した場合には, 旧
データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次のリロー
ドのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
314
第 12 章 U-TIMER
12.3
U-TIMER の動作説明
U-TIMER のボーレートの計算について説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1, U-TIMER2
→ UART2, U-TIMER3 → UART3, U-TIMER4 → UART4) のアンダフローフリップフロッ
プ ( 図 12.1-2 の f.f.) をボーレート用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 8 分周して使用します。
図 12.3-1 非同期 ( 調歩同期 ) モード
bps =
bps =
φ
(2n+2) × 8
φ
(2n+3) × 8
……UCC1 ビット= 0 時
n:UTIMR ( リロード値 )
φ:周辺クロック周波数
( ギアにより変動 )
……UCC1 ビット= 1 時
● CLK 同期モード
図 12.3-2 CLK 同期モード
bps =
bps =
φ
(2n+2)
φ
(2n+3)
……UCC1 ビット= 0 時
n:UTIMR ( リロード値 )
φ:周辺クロック周波数
( ギアにより変動 )
……UCC1 ビット= 1 時
<注意事項>
UART のモード 2 ( クロック同期モード ) で U-TIMER をボーレートとして使用する場合 ,
U-TIMER に "0" を設定することは禁止です。
315
第 12 章 U-TIMER
■ カスケードモード
U-TIMER ch0 と ch1 ∼ ch4 はカスケードモードで使用できます。
例 ) UTIMR ch0 を "0100H" に , UTIMR ch1 を "0002H" に設定した場合 :
図 12.3-3 カスケードモード
UTIM ch1
01 00
02
01 00
02
01 00
02
01
00 02
01 00
02 01
00
02
01 00
f.f. ch1
UTIM ch0
f.f. ch0
316
0002H
0001H
0000H
0100H
第 13 章
UART
UART の概要 , レジスタの構成 / 機能 , および
UART の動作について説明します。
13.1 UART の概要
13.2 UART のレジスタ
13.3 UART の動作
13.4 割込み発生およびフラグのセットタイミング
13.5 UART 使用上の注意
13.6 UART の応用例
13.7 ボーレートと U-TIMER のリロード値の設定例
317
第 13 章 UART
13.1
UART の概要
UART は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアルイ
ンタフェースです。MB91305 は , UART を 5 チャネル内蔵します。
■ UART の特長
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ), CLK 同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート
内蔵タイマにより任意のボーレートを設定可能 (「第 12 章 U-TIMER」を参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• UART ch0 ∼ ch2 は 割込みによる DMA 転送の起動が可能 (ch3, ch4 は DMA 起動不可 )
■ レジスタ一覧
図 13.1-1 レジスタ一覧
15
8 7
0
SCR0 ∼ SCR4
SSR0 ∼ SSR4
8 ビット
318
SMR0 ∼ SMR4
SIDR(R)/SODR(W)
8 ビット
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
7
6
5
4
3
2
1
0
PE
ORE
FRE
BDS
RIE
TIE
7
6
5
4
3
2
1
0
MD1
MD0
-
-
CS0
-
SCKE
-
7
6
5
4
3
2
1
0
PEN
P
SBL
CL
A/D
REC
RXE
TXE
RDRF TDRE
(R/W)
(R/W)
シリアルインプットレジスタ
シリアルアウトプットレジスタ
(SIDR /SODR)
シリアルステータスレジスタ (SSR)
シリアルモードレジスタ (SMR)
シリアルコントロールレジスタ (SCR)
第 13 章 UART
■ ブロックダイヤグラム
図 13.1-2 ブロックダイヤグラム
制御信号
受信割込み
(CPUへ)
SCK(クロック)
送信クロック
U-TIMERより
クロック
選択回路
受信クロック
送信割込み
(CPUへ)
外部クロック
SCK
受信制御回路
SI(受信データ)
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SO(送信データ)
受信用シフタ
受信状態判定回路
送信用シフタ
送信開始
受信終了
SIDR
SODR
DMA用
受信エラー発生信号
(DMACへ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCKE
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
制御信号
319
第 13 章 UART
13.2
UART のレジスタ
UART で使用するレジスタの構成および機能について説明します。
■ シリアルモードレジスタ (SMR0 ∼ SMR4)
図 13.2-1 SMR0 ∼ SMR4 ( シリアルモードレジスタ ) のビット構成
SMR0 ∼ SMR4
アドレス : ch0 000063H
7
ch1 00006BH MD1
ch2 000073H R/W
ch3 00007BH
ch4 000083H
6
5
4
3
2
1
0
MD0
R/W
-
-
CS0
R/W
-
SCKE
R/W
-
初期値
00--0-0-B
SMR0 ∼ SMR4 は , UART の動作モードを指定します。動作モードの設定は動作停止中
に行い , 動作中にこのレジスタへの書込みは行わないでください。
[bit 7, bit 6] MD1, MD0 (MoDe select)
UART の動作モードを選択します。
表 13.2-1 動作モード選択
モード
MD1
MD0
0
0
0
非同期 ( 調歩同期 ) ノーマルモード〔初期値〕
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
クロック同期モード
−
1
1
設定禁止
動作モード
<注意事項>
モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の
スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を判
別できません。したがって , マルチプロセッサモード のマスタのみをサポートします。ま
た , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に 設定して
ください。
[bit 5, bit 4](reserved)
常に "1" を書き込んでください。
[bit 3] CS0(Clock Select)
UART の動作クロックを選択します。
0 : 内蔵タイマ (U-TIMER) 〔初期値〕
1 : 外部クロック
[bit 2](reserved)
常に "0" を書き込んでください。
320
第 13 章 UART
[bit 1] SCKE (SCLK Enable)
CLK 同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力端子にす
るか , クロック出力端子として使うかを指定します。
CLK 非同期モード時または外部クロックモード時では "0" に設定してください。
0 : クロック入力端子として機能します。〔初期値〕
1 : クロック出力端子として機能します。
<注意事項>
クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択しておく
必要があります。
[bit 0](Reserved)
未使用ビットです。
■ シリアルコントロールレジスタ (SCR0 ∼ SCR4)
図 13.2-2 SCR0 ∼ SCR4 ( シリアルコントロールレジスタ ) のビット構成
SCR0 ∼ SCR4
アドレス : ch0 000062H
7
ch1 00006AH PEN
ch2 000072H R/W
ch3 00007AH
ch4 000082H
6
5
4
3
2
1
0
P
R/W
SBL
R/W
CL
R/W
A/D
R/W
REC
R/W
RXE
R/W
TXE
R/W
初期値
00000100B
SCR0 ∼ SCR4 はシリアル通信を行う場合の転送プロトコルを制御します。
[bit 7] PEN (Parity Enable)
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま
す。
0: パリティなし 〔初期値〕
1: パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では ,
パリティを付加できません。
[bit 6] P (Parity)
パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。
0: 偶数パリティ 〔初期値〕
1: 奇数パリティ
321
第 13 章 UART
[bit 5] SBL (Stop Bit Length)
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークであるストップビット
のビット長を指定します。
0: 1 ストップビット 〔初期値〕
1: 2 ストップビット
[bit 4] CL(Character Length)
送受信する 1 フレームのデータ長を指定します。
0: 7 ビットデータ 〔初期値〕
1: 8 ビットデータ
<注意事項>
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では ,
8 ビットデータとしてください。
[bit 3] A/D (Address/Data)
非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す
るフレームのデータ形式を指定します。
0: データフレーム 〔初期値〕
1: アドレスフレーム
[bit 2] REC (Receiver Error Clear)
"0"を書き込むことで, SSR レジスタのエラーフラグ(PE, ORE, FRE)をクリアします。
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[bit 1] RXE (Receiver Enable)
UART の受信動作を制御します。
0: 受信動作を禁止します。〔初期値〕
1: 受信動作を許可します。
<注意事項>
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合
には , そのフレームの受信を完了し , 受信データバッファ SIDR レジスタに受信データを
ストアしたところで受信動作を停止します。
322
第 13 章 UART
[bit 0] TXE(Transmitter Enable)
UART の送信動作を制御します。
0: 送信動作を禁止します。〔初期値〕
1: 送信動作を許可します。
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。
■ シリアルインプットデータレジスタ (SIDR0 ∼ SIDR4) / シリアルアウトプット
データレジスタ (SODR0 ∼ SODR4)
図 13.2-3 SIDR0 ∼ SIDR4 ( シリアルインプットデータレジスタ )/
SODR0 ∼ SODR4 ( シリアルアウトプットデータレジスタ ) のビット構成
SIDR0 ∼ SIDR4
アドレス : ch0 000061H
ch1 000069H
ch2 000071H
ch3 000079H
ch4 000081H
SODR0 ∼ SODR4
アドレス : ch0 000061H
ch1 000069H
ch2 000071H
ch3 000079H
ch4 000081H
7
6
5
4
3
2
1
0
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
7
6
5
4
3
2
1
0
D7
W
D6
W
D5
W
D4
W
D3
W
D2
W
D1
W
D0
W
初期値
XXXXXXXXB
XXXXXXXXB
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
データ長が 7 ビットの場合 SIDR, SODR の bit 7 (D7) は無効データとなります。
BDS="1" のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側
を入れ替えるため , 見かけ上 bit 0 (D0) が無視されたように見えます。
SODR レジスタへの書込みは , SSR レジスタの TDRE が "1" のときに書き込んでくださ
い。
<注意事項>
このアドレスへのライトは SODR レジスタへの書込みを , リードは SIDR レジスタの読
出しを意味します。
323
第 13 章 UART
■ シリアルステータスレジスタ (SSR0 ∼ SSR4)
図 13.2-4 SSR0 ∼ SSR4 ( シリアルステータスレジスタ ) のビット構成
SSR0 ∼ SSR4
アドレス : ch0 000060H
ch1 000068H
ch2 000070H
ch3 000078H
ch4 000080H
7
6
5
PE
R/W
ORE
R/W
FRE
R/W
4
3
RDRF TDRE
R/W
R/W
2
1
0
BDS
R/W
RIE
R/W
TIE
R/W
初期値
00001000B
SSR0 ∼ SSR4 は UART の動作状態を表すフラグで構成されています。
[bit 7] PE(Parity Error)
受信時にパリティエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビット (bit 10) に
"0" を書き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: パリティエラーなし 〔初期値〕
1: パリティエラーが発生
[bit 6] ORE (Over Run Error)
受信時にオーバランエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: オーバランエラーなし 〔初期値〕
1: オーバランエラー発生
[bit 5] FRE (FRaming Error)
受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグで
す。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: フレーミングエラーなし 〔初期値〕
1: フレーミングエラー発生
<注意事項>
• シリアルモードレジスタの bit 3 による内 / 外ボーレートクロックの切換えは書込み後 ,
すぐに反映されるので , UART が動作停止状態のときに行ってください。
• シリアルモードレジスタの bit 3 はライトオンリです。
324
第 13 章 UART
[bit 4] RDRF(Receiver Data Register Full)
SIDR レジスタに受信データがあることを示す割込み要求フラグです。
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出
すと自動的にクリアされます。
0: 受信データなし 〔初期値〕
1: 受信データあり
[bit 3] TDRE(Transmitter Data Register Empty)
SODR に送信データを書き込めることを示す割込み要求フラグです。
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを
書き込めることを表します。
0: 送信データの書込み禁止
1: 送信データの書込み許可 〔初期値〕
[bit 2] BDS(Bit Direction Select)
転送方向選択ビットです。
0: 最下位ビット (LSB) 側から転送します。〔初期値〕
1: 最上位ビット (MSB) 側から転送します。
<注意事項>
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ替えるた
め SODR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無
効になります。
ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合には , 書
換え前の BDS の値に従い , SODR レジスタへの書込みが行われます。
[bit 1] RIE (Receiver Interrupt Enable)
受信割込みを制御します。
0: 割込みを禁止します。〔初期値〕
1: 割込みを許可します。
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ
ります。
325
第 13 章 UART
[bit 0] TIE (Transmitter Interrupt Enable)
送信割込みを制御します。
0: 割込みを禁止します。〔初期値〕
1: 割込みを許可します。
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
326
第 13 章 UART
UART の動作
13.3
UART には , 非同期 ( 調歩同期 ) モードとクロック同期モードの 2 種類の動作モード
があります。さらに , 非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロ
セッサモードがあります。
各動作モードにおける動作について説明します。
■ UART の動作モード
UART は , 表 13.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 13.3-1 UART の動作モード
モード
パリティ
データ長
あり / なし
7
あり/なし
8
1
なし
8+1
2
なし
8
0
動作モード
非同期 ( 調歩同期 ) ノーマルモード
ストップビット長
1 ビットまたは
2 ビット
非同期(調歩同期) マルチプロセッサモード
クロック同期モード
なし
ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動
作しませんので設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は次のとおりです。
非同期 ( 調歩同期 ) : φ / (8 × β )
クロック同期
:φ/β
φ : 周辺クロック周波数
β :U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの− 1% ∼ +1% までの
範囲で転送が可能です。
● 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周
波数を f とすると次のようになります。
非同期 ( 調歩同期 )
:f/8
クロック同期
:f
ただし , f は最大 3.125MHz までです。
327
第 13 章 UART
■ 非同期 ( 調歩同期 ) モード
● 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 13.3-1 に , データ
フォーマットを示します。
図 13.3-1 転送データフォーマット ( モード 0, 1)
SI,SO
0 1 0
LSBスタート
1
1 0 0 1 0 1 1
MSBストップ─────(モード0)
A/Dストップ ───(モード1)
転送されたデータは 01001101B
図 13.3-1 に示すように , 転送データは必ずスタートビット ("L" レベル データ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベル データ ) で終了します。外部クロックを選択している場合は , 常にクロッ
クを入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定できますが ,
マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。また , マル
チプロセッサモード ではパリティを付加できません。そのかわり , A/D ビットが必ず
付加されます。
● 受信動作
SCR レジスタの RXE ビット (bit 1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ
ラーが発生した場合には , エラーフラグのセットが行われた後 , RDRF フラグ (SSR レ
ジスタ:bit 4) がセットされます。このとき同じ SSR レジスタの RIE ビット (bit 1) が
"1" にセットされていれば CPU に対して受信割込みが発生します。SSR レジスタの各
フラグを調べ , 正常受信なら SIDR レジスタを読み出して , エラーが発生していれば必
要な処理を行うようにしてください。
RDRF フラグは , SIDR レジスタを読み出すとクリアされます。
● 送信動作
SSR レジスタの TDRE フラグ (bit 3) が "1" のとき , SODR レジスタに送信データを書き
込みます。ここで , SCR レジスタの TXE ビット (bit 0) が "1" なら送信が行われます。
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開
始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな
ります。このとき同じ SSR レジスタの TIE ビット (bit 0) が "1" にセットされていれば
CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう
に要求します。
TDRE フラグは , SODR レジスタにデータをセットすると , いったんクリアされます。
328
第 13 章 UART
■ クロック同期モード
● 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 13.3-2 に , 送受信
クロックとデータとの関係を示します。
図 13.3-2 転送データフォーマット ( モード 2)
SODR書込み
マーク
SCK
RXE,TXE
SI,SO
1 0
LSB
1
1
0
0
1 0
MSB ───(モード2)
転送されたデータは 01001101B
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。また , 外部クロックを選択している場合は , 送信
側 UART の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグ
が "0") を確かめた後 , 正確に 1 バイト分のクロックを供給する必要があります。また ,
送信開始前と終了後は , 必ずマークレベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加できません。また , スタート / ストッ
プビットがないのでオーバランエラー以外のエラー検出は行われません。
● 初期化
クロック同期モードを使用する場合の各制御レジスタの設定値を示します。
SMR レジスタ
MD1, MD0 : "10"
CS0
: クロック入力を指定
PFR( ポートファンクション ) レジスタ
SCKE : 内部タイマの場合 "1", 外部クロックの場合 "0"
UART : 送信を行う場合 "1", 受信のみの場合 "0"
SCR レジスタ
PEN
: "0"
P, SBL, A/D : これらのビットは意味を持ちません
CL
: "1"
REC
: "0" ( 初期化するため )
RXE, TXE : 少なくとも , どちらか一方を "1"
329
第 13 章 UART
SSR レジスタ
RIE : 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
TIE : "0"
●通信開始
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
● 通信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたかを判断してください。
330
第 13 章 UART
13.4
割込み発生およびフラグのセットタイミング
UART には , 5 つのフラグと 2 つの割込み要因があります。
5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE は
オーバランエラー , FRE はフレーミングエラーのことで , 受信時エラーが発生した
ときにセットされ , SCR レジスタの REC に "0" を書き込むとクリアされます。
RDRF は受信データが SIDR レジスタにロードされるとセットされ , SIDR レジスタ
を読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード
2 ではパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は ,
SODR レジスタが空になり書込み可能な状態になるとセットされ , SODR レジスタ
へ書き込むとクリアされます。
■ 割込み発生およびフラグのセットタイミング
2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF
により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー
ドによる割込みフラグのセットタイミングを以下に示します。
● モード 0 の受信動作時
PE, ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフ
ラグがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時
は , SIDR のデータは無効データとなります。
図 13.4-1 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
D6
D7
Stop
PE,ORE,FRE
RDRF
受信割込み
331
第 13 章 UART
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ
トのため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。
ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。
図 13.4-2 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D7
アドレス/
データ
Stop
ORE,FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無
効データとなります。
図 13.4-3 ORE, RDRF のセットタイミング ( モード 2)
データ
ORE
RDRF
受信割込み
332
D5
D6
D7
第 13 章 UART
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送
され , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求が発生
します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を
書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止した後 , UART
の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のとき
は RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれた
データは送信されます。
図 13.4-4 TDRE のセットタイミング ( モード 0, モード 1)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3
A/D
ST:スタートビット D0~D7:データビット
SP:ストップビット A/D:アドレス/データマルチプレクサ
SO出力
図 13.4-5 TDRE のセットタイミング ( モード 2)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
SO出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
ST:スタートビット D0~D7:データビット
SP:ストップビット A/D:アドレス/データマルチプレクサ
333
第 13 章 UART
13.5
UART 使用上の注意
UART 使用上の注意について説明します。
■ UART 使用上の注意
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ
は保証されません。
割込みによる DMA 転送を最初に起動する前に DRCL レジスタに書き込んでください。
334
第 13 章 UART
13.6
UART の応用例
UART の応用例について説明します。
■ UART の応用例
モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に使用
されます ( 図 13.6-1 を参照 )。
このリソースでは , ホスト側の通信インタフェースのみサポートします。
図 13.6-1 モード 1 を使用時のシステム構築例
SO
SI
ホストCPU
SO
SI
スレーブCPU#0
SO
SI
スレーブCPU#1
通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" のときのデータで , それにより通信先となるス
レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR
レジスタのA/Dが"0"のときのデータです。図 13.6-2 にそのフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
335
第 13 章 UART
図 13.6-2 モード 1 使用時の通信フローチャート
(ホストCPU)
START
転送モードを1とする
D0~D7にスレーブCPUを選
択するデータ, A/Dに"1"を
セットし, 1バイト転送
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
通信終了?
No
Yes
他の
スレーブCPUと
通信
No
Yes
受信動作禁止
END
336
第 13 章 UART
13.7
ボーレートと U-TIMER のリロード値の設定例
ボーレートと U-TIMER のリロード値の設定例を示します。
■ ボーレートと U-TIMER のリロード値の設定例
以下に , ボーレートと U-TIMER のリロード値の設定例を示します。
表中の周波数は , 周辺クロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC
レジスタ UCC1 ビットに設定する値です。
下記 U-TIMER リロード値は 10 進数で表示してあります。
表 13.7-1 非同期 ( 調歩同期 ) モード
ボーレート (bps)
ms
φ =33MHz
φ =32MHz
1200
833.33
1717 (UCC1=1)
1665 (UCC1=1)
832 (UCC1=1)
2400
416.67
858 (UCC1=1)
832 (UCC1=1)
415 (UCC1=1)
4800
208.33
428 (UCC1=1)
415 (UCC1=1)
207 (UCC1=1)
9600
104.17
213 (UCC1=1)
207 (UCC1=1)
103 (UCC1=0)
19200
52.08
106 (UCC1=1)
103 (UCC1=0)
51 (UCC1=0)
38400
26.04
52 (UCC1=1)
51 (UCC1=0)
25 (UCC1=0)
57600
17.36
35 (UCC1=0)
33(UCC1=1)
16 (UCC1=1)
115200
8.681
17 (UCC1=0)
16 (UCC1=1)
...
...
10400
96.15
197 (UCC1=1)
191 (UCC1=1)
95 (UCC1=0)
31250
32.00
65 (UCC1=0)
63 (UCC1=0)
31 (UCC1=0)
62500
16.00
32 (UCC1=0)
31 (UCC1=0)
15 (UCC1=0)
...
...
φ =16MHz
−
...
φ : 周辺クロック周波数
表 13.7-2 クロック同期モード
ボーレート (bps)
ms
φ =33MHz
φ =32MHz
φ =16MHz
250K
4.00
65 (UCC1=0)
63 (UCC1=0)
31 (UCC1=0)
500K
2.00
32 (UCC1=0)
31 (UCC1=0)
15 (UCC1=0)
1M
1.00
15 (UCC1=0)
15 (UCC1=0)
7 (UCC1=0)
2M
0.50
7 (UCC1=0)
7 (UCC1=0)
−
φ : 周辺クロック周波数
337
第 13 章 UART
338
第 14 章
I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能 ,
および I2C インタフェースの動作について説明し
ます。
14.1 I2C インタフェースの概要
14.2 I2C インタフェースのレジスタ
14.3 I2C インタフェースの動作
14.4 動作フローチャート
339
第 14 章 I2C インタフェース
14.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートです。
■ I2C インタフェースの特長
I2C バス上のマスタ / スレーブデバイスとして動作し , 以下の特長があります。
• マスタ / スレーブ送受信
• 送信 , 受信兼用 16 バイトの FIFO 内蔵
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• 反復「START」条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード ( 最大 100Kbps)/ 高速モード ( 最大 400Kbps) に対応
<注意事項>
マルチマスタは対応しておりません。
■ FIFO 使用時の動作概要
FIFO を使用した転送を行う場合は , FEN=1 に設定してください。
本マクロは , 通常 INT=1 のとき SCL="L" とすることで I2C バスにウェイトをかけますが ,
IFCR:TED=1 のときは SCL="L" になりません。
● 7 ビットアドレスマスタ送信時
スレーブアドレス送信時は , FIFO を使用しません。IDAR にスレーブアドレスを書き
込み , MSS=1 にしてください。
スレーブアドレス送信後 , INT=1 になります。INT=1 の間に IFDR に任意のバイト数の
データを書き込むと FIFO に格納され , INT=0 にすると FIFO が空になるか , スレーブ
がアクノリッジを発生しない間データが送信されます。
FIFOが空になるとINT=1 (IFCR:TFE=1)になります。続けてデータ送信するときはIFDR
にデータを書き込み INT=0 にしてください。また , 転送を終了するときは MSS=0 にし
てください ( 自動的に INT=0 になります )。
FIFO によるデータ転送で , スレーブがアクノリッジを発生しなかった場合 , INT=1 に
なります。MSS=0 にしてください ( 自動的に INT=0 になります ) 。FIFO に残ったデー
340
第 14 章 I2C インタフェース
タは , IFCR:FCL=1 でクリアしてください。
FIFO によるデータ送信時にアービトレーションロストした場合は , FIFO をクリアし最
初から転送を行ってください。
● 10 ビットアドレスマスタ送信時
スレーブアドレス送信時は , FIFO を使用しません。第 1 スレーブアドレスを IDAR に
書き込み , MSS=1 にしてください。第 1 スレーブアドレス送信後 , INT=1 になります。
その後 , 第 2 スレーブアドレスを IDAR に書き込み , INT=0 にしてください。
第 2 スレーブアドレス送信後 , INT=1 になります。INT=1 の間に IFDR に任意のバイト
数のデータを書き込むと FIFO に格納され , INT=0 にすると FIFO が空になるまでデー
タが送信されます。
FIFO が空になると INT=1(IFCR:TFE=1) になります。続けてデータを送信するときは ,
IFDR にデータを書き込み , INT=0 にしてください。また , 転送を終了するときは MSS=0
にしてください ( 自動に INT=0 になります ) 。
FIFO によるデータ転送で , スレーブがアクノリッジを発生しなかった場合 , INT=1 に
なります。MSS=0 にしてください ( 自動的に INT=0 になります ) 。FIFO に残ったデー
タは , IFCR. FCL=1 でクリアしてください。
FIFO によるデータ送信時にアービトレーションロストした場合は , FIFO をクリアし ,
最初から転送を行ってください。
● 7 ビットアドレスマスタ受信時
スレーブアドレス送信時は , FIFO を使用しません。IDAR にスレーブアドレスを書き
込み , MSS=1 にしてください。
スレーブアドレス送信後 , INT=1 になります。INT=1 の間に FIFO 受信データ数レジス
タ (IFRN) に受信するデータ数を設定し , INT=0 にしてください。IFRN レジスタに設定
された数の受信データを FIFO に取り込みます。1 バイト受信ごとに IFRN レジスタの
FRN はデクリメントされ , IFRN:FRN=0 となったら INT=1(IFCR:FRED=1) になります。
INT=1 の間に IFDR から FIFO 内のすべてのデータを読み出してください。
続けてデータを受信する場合は , FIFO が空の状態で IFRN レジスタに設定後 INT=0 に
してください。
また , 転送を終了するときは , MSS = 0 にしてください ( 自動的に INT=0
になります ) 。
IFRN レジスタの FACK=0 とすると , 最後の受信データ (IFRN.FRN=1 のとき ) にアクノ
リッジを発生しません。
● 10 ビットアドレスマスタ受信時
スレーブアドレス送信時は , FIFO は使用しません。第 1 スレーブアドレスを IDAR に
書き込み , MSS=1 にしてください。第 1 スレーブアドレス送信後 , INT=1 になります。
その後 , 第 2 スレーブアドレスを IDAR に書き込み , INT=0 にしてください。第 2 ス
レーブアドレス送信後 , INT=1 になります。その後 , 第 1 スレーブアドレスの 8 ビット
目をリードしたものを IDAR に書き込み , SCC=1 にしてください
スレーブアドレス送信後 , INT=1 になります。INT=1 の間に FIFO 受信データ数レジス
タ (IFRN) に受信するデータ数を設定し , INT=0 にしてください。IFRN レジスタに設定
された数の受信データを FIFO に取り込みます。1 バイト受信ごとに IFRN レジスタの
FRN はデクリメントされ , IFRN:FRN=0 となったら , INT=1(IFCR:FRED=1) になります。
INT=1 の間に IFDR から FIFO 内のすべてのデータを読み出してください。
341
第 14 章 I2C インタフェース
続けてデータを受信する場合は , FIFO が空の状態で IFRN レジスタに設定後 INT=0 に
してください。また , 転送を終了するときは MSS=0 にしてください ( 自動的に INT=0
になります ) 。
IFRN レジスタの FACK=0 とすると , 最後の受信データ (IFRN:FRN=1 のとき ) にアクノ
リッジを発生しません。
● 7 ビットアドレススレーブ送信時
スレーブアドレス受信後 ( スレーブアドレスは FIFO に取り込まれません ) INT=1 にな
ります。
INT=1 の間に IFDR レジスタに任意のバイト数のデータを書き込むと FIFO に格納され
ます。データ書込み後 INT=0 にすると , FIFO に書き込まれた数のデータが送信されま
す。FIFO が空になると INT=1(IFCR:TFE=1) になります。続いて送信データを書き込み ,
INT=0 にしてください。マスタが反復「START」条件か「STOP」条件を出力するまで
繰返しになります。
反復「START」条件か「STOP」条件を検出すると IFCR レジスタの TED が "1" になり
ます。このときは SCL="L" になりません。FIFO にデータが残っていた場合 , FIFO を
クリアしてください。TED に "0" を書き込み終了してください。
● 10 ビットアドレススレーブ送信時
10 ビットスレーブアドレス受信後 ( スレーブアドレスは FIFO に取り込まれません )
INT=1 になります。INT=0 にしてください。その後の反復「START」条件で IFCR レ
ジスタの TED=1 になります。このときは SCL=L になりません。TED=0 にしてください。
リード要求のスレーブアドレス受信後 ( スレーブアドレスは FIFO に取り込まれません )
INT=1 になります。この INT=1 の間に IFDR レジスタに任意のバイト数のデータを書
き込むと FIFO に格納されます。データ書込み後 INT=0 にすると , FIFO に書き込まれ
た数のデータが送信されます。FIFO が空になると INT=1(IFCR:TFE=1) になります。続
いて送信データを書き込み , INT=0 にしてください。マスタが反復「START」条件か
「STOP」条件を出力するまで繰り返します。
反復「START」条件か「STOP」条件を検出したら IFCR レジスタの TED が "1" になり
ます。このときは SCL=L になりません。FIFO にデータが残っていた場合 , FIFO をク
リアしてください。TED に "0" を書き込み終了してください。
● 7 ビットスレーブ受信時と 10 ビットスレーブ受信時
スレーブアドレス受信後 ( スレーブアドレスは FIFO に取り込まれません ) INT=1 にな
ります。INT=1 の間に FIFO 受信データ数レジスタ (IFRN) に受信するデータ数を設定し ,
INT=0 にしてください。IFRN レジスタに設定された数の受信データを FIFO に取り込
みます。1 バイト受信ごとに IFRN レジスタの FRN はデクリメントされ , IFRN:FRN=0
となったら INT=1(IFCR:FRED=1) になります。INT=1 の間に IFDR から FIFO 内のすべ
てのデータを読み出してください。
FIFO からデータを読み出し , FIFO が空になったら IFRN を設定し INT=0 にすると続く
データを受信します。マスタが反復「START」条件か「STOP」条件を出力するまで繰
り返しになります。
反復「START」条件か「STOP」条件を検出したら IFCR レジスタの TED が "1" になり
ます。このときは SCL="L" になりません。FIFO の受信データをすべて読み出し , TED
に "0" を書き込み終了してください。
342
第 14 章 I2C インタフェース
IFRN レジスタの FACK=0 とすると , 最後の受信データ (IFRN:FRN=1 のとき ) にアクノ
リッジを発生しません。アクノリッジを発生しなかったときの受信データは FIFO に取
り込みます。
● FIFO の使用時のバスエラー発生について
FIFO による受信時にバスエラーが発生した場合は , 転送が中止され , バスエラー発生
時のデータは FIFO に取り込まれません。
FIFO による送信時にバスエラーが発生した場合は , 転送が中止され , 以下で計算され
たバイト数分は転送されています。
転送されたバイト数= FIFO に書き込んだバイト数− IFN レジスタで示された
バイト数− 1
バスエラー時 , 状態の情報はクリアされてしまうので , 送信中か , 受信中か知りたい場
合は , プログラムで状態を管理してください。
■ レジスタ一覧
15
8
7
0
IFN
IFRN
IFCR
IFDR
IBCR
IBSR
ITBA
ITMK
ISMK
ISBA
−
IDAR
ICCR
−
図 14.1-1 バスコントロールレジスタ (IBCR)
15
BER
アドレス : ch0 0000B4H
R/W
ch1 0000C4H
ch2 0000D4H 初期値→
0
ch3 0000E4H
14
BEIE
R/W
13
SCC
R/W
12
MSS
R/W
11
ACK
R/W
10
GCAA
R/W
9
INTE
R/W
8
INT
R/W
0
0
0
0
0
0
0
図 14.1-2 バスステータスレジスタ (IBSR)
アドレス : ch0 0000B5H
ch1 0000C5H
ch2 0000D5H 初期値→
ch3 0000E5H
7
BB
R
6
RSC
R
5
AL
R
4
LRB
R
3
TRX
R
2
AAS
R
1
GCA
R
0
ADT
R
0
0
0
0
0
0
0
0
343
第 14 章 I2C インタフェース
図 14.1-3 10 ビットスレーブアドレスレジスタ (ITBA)
アドレス : ch0 0000B6H
ch1 0000C6H
ch2 0000D6H 初期値→
ch3 0000E6H
アドレス : ch0 0000B7H
ch1 0000C7H
ch2 0000D7H 初期値→
ch3 0000E7H
15
R
14
R
13
R
12
R
11
R
10
R
9
TA9
R/W
8
TA8
R/W
0
0
0
0
0
0
0
0
7
TA7
R/W
6
TA6
R/W
5
TA5
R/W
4
TA4
R/W
3
TA3
R/W
2
TA2
R/W
1
TA1
R/W
0
TA0
R/W
0
0
0
0
0
0
0
0
図 14.1-4 10 ビットスレーブアドレスマスクレジスタ (ITMK)
15
ENTB
アドレス : ch0 0000B8H
R/W
ch1 0000C8H
ch2 0000D8H 初期値→
0
ch3 0000E8H
アドレス : ch0 0000B9H
ch1 0000C9H
ch2 0000D9H 初期値→
ch3 0000E9H
14
RAL
R/W
13
R/W
12
R/W
11
R/W
10
R/W
9
TM9
R/W
8
TM8
R/W
0
1
1
1
1
1
1
7
TM7
R/W
6
TM6
R/W
5
TM5
R/W
4
TM4
R/W
3
TM3
R/W
2
TM2
R/W
1
TM1
R/W
0
TM0
R/W
1
1
1
1
1
1
1
1
1
SA1
R/W
0
0
SA0
R/W
0
図 14.1-5 7 ビットスレーブアドレスレジスタ (ISBA)
アドレス : ch0 0000BBH
ch1 0000CBH
ch2 0000DBH 初期値→
ch3 0000EBH
7
R/W
0
6
SA6
R/W
0
5
SA5
R/W
0
4
SA4
R/W
0
3
SA3
R/W
0
2
SA2
R/W
0
図 14.1-6 7 ビットスレーブアドレスマスクレジスタ (ISMK)
15
ENSB
アドレス : ch0 0000BAH
R/W
ch1 0000CAH
ch2 0000DAH 初期値→
0
ch3 0000EAH
14
SM6
R/W
13
SM5
R/W
12
SM4
R/W
11
SM3
R/W
10
SM2
R/W
9
SM1
R/W
8
SM0
R/W
1
1
1
1
1
1
1
図 14.1-7 データレジスタ (IDAR)
アドレス : ch0 0000BDH
ch1 0000CDH
ch2 0000DDH 初期値→
ch3 0000EDH
344
7
D7
R/W
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
0
0
0
0
0
0
0
0
第 14 章 I2C インタフェース
図 14.1-8 クロックコントロールレジスタ (ICCR)
アドレス : ch0 0000BEH
ch1 0000CEH
ch2 0000DEH 初期値→
ch3 0000EEH
15
TEST
R/W
14
NSF
R/W
13
EN
R/W
12
CS4
R/W
11
CS3
R/W
10
CS2
R/W
9
CS1
R/W
8
CS0
R/W
0
0
0
1
1
1
1
1
図 14.1-9 FIFO データ数レジスタ (IFN)
アドレス : ch0 0000B0H
ch1 0000C0H
ch2 0000D0H 初期値→
ch3 0000E0H
15
R
14
R
13
R
12
FN4
R
11
FN3
R
10
FN2
R
9
FN1
R
8
FN0
R
0
0
0
0
0
0
0
0
図 14.1-10 FIFO 受信レジスタ (IFRN)
アドレス : ch0 0000B1H
ch1 0000C1H
ch2 0000D1H 初期値→
ch3 0000E1H
7
FACK
R/W
6
R/W
5
R/W
4
R/W
3
FRN3
R/W
2
FRN2
R/W
1
FRN1
R/W
0
FRN0
R/W
0
0
0
0
0
0
0
0
図 14.1-11 FIFO コントロールレジスタ (IFCR)
アドレス : ch0 0000B2H
ch1 0000C2H
ch2 0000D2H 初期値→
ch3 0000E2H
15
FEN
R/W
14
FCL
R/W
13
R/W
12
TEDIE
R/W
11
FER
R/W
10
TED
R/W
9
FRED
R/W
8
TFE
R/W
0
0
-
0
0
0
0
0
図 14.1-12 FIFO データレジスタ (IFDR)
アドレス : ch0 0000B3H
ch1 0000C3H
ch2 0000D3H 初期値→
ch3 0000E3H
7
FD7
R/W
6
FD6
R/W
5
FD5
R/W
4
FD4
R/W
3
FD3
R/W
2
FD2
R/W
1
FD1
R/W
0
FD0
R/W
0
0
0
0
0
0
0
0
345
第 14 章 I2C インタフェース
■ ブロックダイヤグラム
図 14.1-13 ブロックダイヤグラム
ICCR
EN
5
ICCR
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
LRB
TRX
ADT
AL
I2C動作許可
RCLK
クロック分周2
2 3 4 5
5
Sync
32
シフトクロック発生
クロック選択2(1/12)
シフトクロック
エッジ変化タイミング
バスビジー
リピート
スタート
スタート・ストップ
コンディション検出
ラストビット
ICCR
エラー
送信/受信
イネーブル
アドレス/データ
アービトレーション
ロスト検出
SCL0~
SCL2
割込み要求
終了
GC-ACK
許可
スタート・ストップ
コンディション発生
割込み要求2
SDA3
SDA3
周辺リソースバス
ACK許可
IRQ
SDA4
FIFO
IFN
FN4~FN0
IFRN
FACK
FRN
IDAR
スレーブ
グローバル
コール
スレーブ
アドレス比較
ISMK
ENSB
ITMK
ENTB RAL
ITBA ITMK ISBA ISMK
346
レジスタ
IFDR
FER
FCL
IBSR
AAS
GCA
SCL3
I 2C入出力
マスタ
FEN
7
I 2C入出力
スタート
IFCR
TEDIE
TED
FRED
TFE
8
SDA0~
SDA2
SDA2
INT
I 2C入出力
SCL2
BEIE
INTE
ノイズフィルタ
IBCR
BER
IBCR
SCC
MSS
ACK
GCAA
NSF
第 14 章 I2C インタフェース
14.2
I2C インタフェースのレジスタ
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ バスステータスレジスタ (IBSR)
図 14.2-1 バスコントロールレジスタ (IBCR) のビット構成
アドレス : ch0 0000B5H
ch1 0000C5H
ch2 0000D5H 初期値→
ch3 0000E5H
7
BB
R
6
RSC
R
5
AL
R
4
LRB
R
3
TRX
R
2
AAS
R
1
GCA
R
0
ADT
R
0
0
0
0
0
0
0
0
このレジスタは , 全ビット読出し専用です。I2C が動作停止 (ICCR 中の EN=0) すると
全ビットクリアされます。
[bit 7] BB(Bus Busy)
I2C バスの状態を示すビットです。
0
「STOP」条件を検出した。
1
「START」条件を検出した ( バス使用中 ) 。
[bit 6] RSC(Repeated Start Condition)
反復「START」条件検出ビットです。
0
反復「START」条件は検出されていない。
1
バス使用中に , 反復「START」条件を検出した。
このビットは , スレーブアドレス転送終了 (ADT="0"), または「STOP」条件の検出
でクリアされます。
[bit 5] AL(Arbitration Lost)
アービトレーションロスト検出ビットです。
0
アービトレーションロストが検出されていない。
1
マスタ送信中にアービトレーションロストが発生した。
このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに
"1" を書き込むことによってクリアされます。
アービトレーションロストが発生する例 :
•
データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない
347
第 14 章 I2C インタフェース
データのファーストビットで , ほかのマスタによって反復「START」条件
が発生した。
•
I2Cインタフェースが, ほかのスレーブデバイスによってSCLラインが"L"
にドライブされているために「START」条件または「STOP」条件を生成
できない。
[bit 4] LRB(Last Received Bit)
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
0
スレーブアクノリッジを検出した。
1
スレーブアクノリッジを検出していない。
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
「START」条件または「STOP」条件の検出でクリアされます。
[bit 3] TRX(Transferring data)
データ転送中に送信状態を示すビットです。
0
データ送信中でない
1
データ送信中
1 セット :
マスタモードで「START」条件が生成された
スレーブモードでリードアクセス時 ( 送信 ), 第 1 バイトの転送終了
マスタモードで送信中
0 セット :
バスがアイドル状態 (IBCR:BB="0")
アービトレーションロスト発生
マスタ割込み中 (MSS="1", INT="1") に SCC に "1" が書き込まれた。
マスタ割込み中 (MSS="1", INT="1") に MSS ビットがクリアされた。
スレーブ時 , 転送の最後にアクノリッジが発生しなかった。
スレーブモードでの受信中
マスタモードでのスレーブからデータ受信中
[bit 2] AAS(Addressed As Slave)
スレーブアドレッシング検出ビットです。
0
スレーブに指定されていない。
1
スレーブに指定された。
「START」( 反復「START」を含む ) または「STOP」条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出したときにセットされます。
348
第 14 章 I2C インタフェース
[bit 1] GCA(General Call Address)
ゼネラルコールアドレス (00H) 検出ビットです。
0
スレーブとして , ゼネラルコールアドレスを受信していない。
1
スレーブとして , ゼネラルコールアドレスを受信した。
「START」( 反復「START」を含む ) または「STOP」条件の検出でクリアされます。
[bit 0] ADT(Address Data Transfer)
スレーブアドレス受信検出ビットです。
0
受信データがスレーブアドレスでない ( またはバス開放中 )。
1
受信データがスレーブアドレスである。
「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ
アドレスのヘッダが検出されると , 第 2 バイトの後クリアされ , それ以外のときは ,
第 1 バイトの後でクリアされます。
第 1 バイト / 第 2 バイトの後とは
• マスタ割込み (IBCR:MSS="1", INT="1") 中に MSS ビットに "0" が書き込まれた
• マスタ割込み (IBCR:MSS="1", INT="1") 中に SCC ビットに "1" が書き込まれた
• INT ビットがクリアされた
• マスタ, またはスレーブとして転送対象でなければ, すべての転送バイトの最初
349
第 14 章 I2C インタフェース
■ バスコントロールレジスタ (IBCR)
図 14.2-2 バスコントロールレジスタ (IBCR) のビット構成
アドレス : ch0 0000B4H
ch1 0000C4H
ch2 0000D4H 初期値→
ch3 0000E4H
15
BER
R/W
14
BEIE
R/W
13
SCC
R/W
12
MSS
R/W
11
ACK
R/W
10
GCAA
R/W
9
INTE
R/W
8
INT
R/W
0
0
0
0
0
0
0
0
I2C インタフェースが停止 (ICCR:EN="0") すると , BER, BEIE ビットを除きすべての
ビットがクリアされます。
[bit 15] BER(Bus ERror)
バスエラー割込み要求フラグビットです。このビットは , リードモディファイライ
ト (RMW) 系命令における読出し時は , 常に "1" が読まれます。
表 14.2-1 ライト時
0
バスエラー割込み要求フラグをクリアする。
1
意味を持たない。
表 14.2-2 リード時
0
バスエラーは検出されていない。
1
エラーコンディションを検出した。
このビットがセットされた場合 , ICCR レジスタの EN ビットはクリアされ , I2C イ
ンタフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を
除き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは ,
I2C インタフェースを再度イネーブル (EN=1) する前にクリアしてください。
•
"1" がセットされる場合
1. 「START」条件または「STOP」条件が不正な場所で検出された ( スレーブ
アドレス転送中 , データ転送中 )。
2. 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセス
する前に , リードアクセスのスレーブアドレスヘッダが受信された。
3. マスタモードで転送中に「STOP」条件が検出された。
1., 2. の検出は , 転送実行中に I2C インタフェースが動作許可されていると ,
不正バスエラーレポートを抑止するために , 最初の「STOP」条件の受信後フ
ラグセットされる。
350
第 14 章 I2C インタフェース
[bit 14] BEIE(Bus Error Interrupt Enable)
バスエラー割込み許可ビットです。
0
バスエラー割込み禁止。
1
バスエラー割込み許可。
このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。
[bit 13] SCC(Start Condition Continue)
反復「START」条件発生ビットです。
表 14.2-3 ライト時
0
意味を持たない。
1
マスタ転送時に反復「START」条件を発生させる。
このビットの読出し値は常に "0" です。
マスタモード(MSS="1", INT="1")中にこのビットに"1"を書き込むと, 反復「START」
条件が発生し , 自動的に INT ビットをクリアします。
[bit 12] MSS(Master Slave Select)
マスタ / スレーブの選択ビットです。
•
0
スレーブモードとなる。
1
マスタモードとなり「START」条件を発生し IDAR レジスタの値を
スレーブアドレスとして送信する。
このビットは , マスタ送信中にアービトレーションロストが発生した場合クリ
アされ , スレーブモードになります。
•
マスタ割込みフラグセット中 (MSS="1", INT="1") に "0" を書き込むと INT ビッ
トは自動的にクリアされ , 「STOP」条件が発生し転送が終了します。
<注意事項>
• MSS ビットは直接的なリセットとして機能します。
「STOP」条件の発生は , IBSR レ
ジスタの BB ビットを調査することによって確認できます。
• 下記条件で使用する場合,スレーブとして受信できませんのでゼネラルコールアドレス
の送信は禁止です。
- 本 LSI のほかにマスタモードとなるほかの LSI がバス上に存在し , 本 LSI がマスタ
としてゼネラルコールアドレスを送信し , 第 2 バイト目以降でアービトレーション
ロストが発生する場合
351
第 14 章 I2C インタフェース
バスがアイドル中 (MSS="0", BB="0") に "1" を書き込むと「START」条件が発生
•
し , IDAR の値が送信されます。
バス使用中 (BB="1", TRX="0", MSS="0") に "1" を書き込むと I2C インタフェース
•
はバスが開放されるまで待ち , 送信を開始します。その間に I2C インタフェース
はライトアクセスを伴うスレーブとしてアドレス指定されると , 転送終了後に
バスは開放されます。その間 , スレーブとして送信中の場合 (IBCR: AAS="1",
TRX="1"), バスが開放されてもデータ送信しません。I2C インタフェースがス
レーブ (IBSR:AAS="1") として指定されたか , 次の割込み時にデータの送信が正
常終了にした (IBCR:MSS="1") か , 不正終了した (IBSR: AL="1") かどうか確認す
ることが重要となります。
[bit 11] ACK(ACKnowledge)
データを受信許可ビットに従いアクノリッジを発生するビットです。
0
データ受信に対しアクノリッジを発生しない。
1
データ受信に対しアクノリッジを発生する。
このビットは , スレーブ時のスレーブアドレス受信時には無効となります。I2C
•
インタフェースが 7 ビット , または 10 ビットのスレーブアドレス指定を検出し
たとき , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされて
いると , アクノリッジを返します。
このビットへの書込みは , 割込みフラグセット中 (INT="1"), またはバスが開放中
•
(IBSR:BB="0"), I2C インタフェースが停止中 (ICCR:EN="0") に行ってください。
FEN=1(FIFO 使用 ) の受信時は , FACK=0 なら FRN = 1 以外まで ACK=1, 最後の
•
データ (FRN=1 のとき ) のみ ACK=0 と自動的に設定されます。
[bit 10] GCAA(General Call Address Ackowledge)
ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。
0
ゼネラルコールアドレスを受信に対しアクノリッジ発生しない。
1
ゼネラルコールアドレスを受信に対しアクノリッジ発生する。
このビットへの書込みは , 割込みフラグセット中 (INT="1") またはバスが開放中
(IBSR:BB="0"), I2C インタフェースが停止中 (ICCR:EN="0") に行ってください。
[bit 9] INTE(INTerrupt Enable)
割込み許可ビットです。
0
割込み禁止
1
割込み許可
このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。
352
第 14 章 I2C インタフェース
[bit 8] INT(INTerrupt)
転送終了割込み要求フラグビットです。このビットは , リードモディファイライト
(RMW) 系命令における読出し時は , 常に "1" が読み出されます。
表 14.2-4 ライト時
0
転送終了割込み要求フラグをクリアする。
1
意味を持たない。
表 14.2-5 リード時
0
転送が終了していない , 転送対象でない , またはバスが開放状態である。
1
アクノリッジビットを含めた 1 バイト転送が終了したときに次の条件に該
当する場合にセットされます。
• FEN=0 かつ ADT=0 でバスマスタである。
• ADT=1 でバスマスタである。
• スレーブアドレスに指定された。
• ゼネラルコールアドレスを受信した。
• アービトレーションロストが起こった。
• FEN=1 のとき , 送信 FIFO がエンプティになった。
• FEN=1 のとき , IFRN=1 → 0 になった。
• FEN=0 かつ ADT=0 でスレーブアドレスに指定されている。
• FEN=1 かつマスタ送信時 , スレーブが ACK を出さなかった。
スレーブアドレスに指定されているとき , アクノリッジを含むスレーブア
ドレス受信の最後にセットされます。
このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0"
を書き込むとクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 反復
「START」条件 , または「STOP」条件を生成します。
TED=1 のとき , SCL ラインは "L" レベルになりません。
このビットは , SCC ビット , または MSS ビットに "1" が書き込まれるとクリアされ
ます。
<注意事項>
SCC, MSS, INT ビットの競合について
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 反復「START」条件 , または
「STOP」条件発生の競合が起こります。このときの優先度は次のようになります。
1. 次のバイト転送と「STOP」条件発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され ,
「STOP」条件が発生されます。
2. 次のバイト転送と「START」条件発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され ,
反復「START」条件が発生し IDAR の値が送信されます。
3. 反復「START」条件発生と「STOP」条件発生
SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま
す。「STOP」条件が発生し , I2C インタフェースはスレーブモードになります。
353
第 14 章 I2C インタフェース
図 14.2-3 と図 14.2-4 に示したタイミングで , 「START」条件を発生させる命令を実行
(MSS ビットへの "1" 設定 ) すると , アービトレーションロスト検出 (AL ビット =1) によ
る割込み (INT ビット =1) が発生しません。
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 1
「START」条件未検出 (BB ビット =0) 状態で , SDA 端子または SCL 端子レベルが "L"
のときに ,「START」条件を発生させる命令を実行 (IBCR レジスタの MSS ビットに
"1" を設定 ) した場合。
図 14.2-3 AL ビット =1 検出による割込みが発生しないタイミング図 (1)
SCL端子またはSDA端子が"L"レベル
SCL端子
"L"
SDA端子
"L"
I 2C動作許可状態(ENビット=1)
1
マスタモード設定(MSSビット=1)
アービトレーションロスト検出
(ALビット=1)
バスビジー(BBビット)
0
割込み(INTビット)
0
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 2
ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット =1) して
「START」条件を発生させる命令を実行 (IBCR レジスタの MSS ビットに "1" を設定 )
した場合。
図 14.2-4 に示したとおり , I2C が動作禁止 (EN ビット =0) の状態で , I2C バス上のほか
のマスタが通信を開始すると , 「START」条件未検出 (BB ビット =0) で I2C バスが占
有されている状態になるためです。
354
第 14 章 I2C インタフェース
図 14.2-4 AL ビット =1 検出による割込みが発生しないタイミング図 (2)
9クロック目でINTビット
割込みが発生しない
停止状態
停止状態
SCL端子
SDA端子
SLAVE ADDRESS
ACK
ACK
DATA
ENビット
MSSビット
ALビット
BBビット
0
INTビット
0
前記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理を行ってく
ださい。
1.「START」条件を発生させる命令を実行 (MSS ビットへの "1" 設定 ) 。
2. タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビッ
トデータ送信時間待つ。*
例:I2C 転送周波数 100kHz の場合
3 ビットデータ送信時間 {1/(100 × 103)} × 3=30 µs
*: アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送周波数
での 3 ビットデータ送信時間後に AL ビット =1 となります。
3. IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット =1, BB ビット =0 の場合
AL ビットと BB ビッ
には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。
トがその他の状態のときは通常処理を行う。
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) の MSS ビットに "1" を設定
クロック制御レジスタ (ICCR) に設定されている
I2C 転送周波数での 3 ビットデータ送信時間ウェイト *
No
BB ビット = 0 でかつ AL ビット = 1
Yes
EN ビットを "0" にして I2C の初期化
通常処理へ
*: アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送周波数
での 3 ビットデータ送信時間後に AL ビット =1 となります。
355
第 14 章 I2C インタフェース
• AL ビット =1 検出による割込み (INT ビット =1) が発生する例
バスビジー検出 (BB ビット =1) されている状態で , 「START」条件を発生させる命令
を実行 (MSS ビットへ "1" を設定 ) し , アービトレーションロストした場合には , AL
ビット =1 検出時に INT ビット割込みが発生します。
図 14.2-5 AL ビット =1 時に割込みが発生するタイミング図
9クロック目で割込み
開始状態
SCL端子
SDA端子
SLAVE ADDRESS
ACK
DATA
ENビット
MSSビット
ALビット
BBビット
INTビット
356
ソフトでのALビットクリア
ソフトでのINTビット
クリアでSCL開放
第 14 章 I2C インタフェース
■ クロックコントロールレジスタ (ICCR0 ∼ ICCR3)
図 14.2-6 クロックコントロールレジスタ (ICCR0 ∼ ICCR3) のビット構成
アドレス : ch0 0000BEH
ch1 0000CEH
ch2 0000DEH 初期値→
ch3 0000EEH
15
TEST
R/W
14
NSF
R/W
13
EN
R/W
12
CS4
R/W
11
CS3
R/W
10
CS2
R/W
9
CS1
R/W
8
CS0
R/W
0
0
0
1
1
1
1
1
[bit 15] テストビットです。必ず "0" を書いてください。
[bit 14] NSF (NoiSe Filter enable)
入力ノイズフィルタ許可ビットです。
0
ノイズフィルタ禁止
1
ノイズフィルタ許可
100Kbps 以上の速度で使用するときのみ "1" に設定してください。
[bit 13] EN(ENable)
I2C インタフェース動作許可ビットです。
0
動作禁止
1
動作許可
このビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く )
の各ビットはクリアされます。バスエラー発生 (IBCR:BER="1") により , このビット
はクリアされます。
<注意事項>
動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。
[bit 12 ∼ bit 8] CS4 ∼ CS0(Clock Period Select 4 ∼ 0)
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN="0") にするか , EN ビットがクリ
アされたときにのみ書込み可能です。
シフトクロックの周波数 fsck は次式のように設定されます。
φ
fsck=
n
12+17
φ
fsck=
n
12+18
NSF=0
n >0
NSF=1
n >0 φ:周辺リソースクロック
φ:周辺リソースクロック
357
第 14 章 I2C インタフェース
表 14.2-6 レジスタ設定
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
•••
•••
•••
•••
•••
•••
31
1
1
1
1
1
CS4 ∼ CS0=00000B は設定禁止です。
100Kbps
400Kbps
周辺リソースクロック周波数
RCLK [MHz], 条件
n
fsck
n
fsck
32 MHz NSF=1
26
96.9
6
355.6
■ 10 ビットスレーブアドレスレジスタ (ITBA0 ∼ ITBA3)
図 14.2-7 10 ビットスレーブアドレスレジスタ (ITBA0 ∼ ITBA3) のビット構成
ITBAH
アドレス : ch0 0000B6H
ch1 0000C6H
ch2 0000D6H 初期値→
ch3 0000E6H
ITBAL
アドレス : ch0 0000B7H
ch1 0000C7H
ch2 0000D7H 初期値→
ch3 0000E7H
15
R
14
R
13
R
12
R
11
R
10
R
9
TA9
R/W
8
TA8
R/W
0
0
0
0
0
0
0
0
7
TA7
R/W
6
TA6
R/W
5
TA5
R/W
4
TA4
R/W
3
TA3
R/W
2
TA2
R/W
1
TA1
R/W
0
TA0
R/W
0
0
0
0
0
0
0
0
このレジスタの書換えは動作停止中に行ってください (ICCR:EN=0)。
[bit 15 ∼ bit 10] 未使用ビットです。
リード時は常に "0" です。
358
第 14 章 I2C インタフェース
[bit 9 ∼ bit 0] TA9 ∼ TA0 (10 ビットスレーブアドレスビット )
10 ビットアドレスが有効 (ITMK:ENTB="1") のとき , スレーブモードでスレーブア
ドレスを受信すると , 受信アドレスと ITBA とを比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第 1, 第 2 バイト受信データと ITBA レジスタが比較されます。一致が検出されると ,
アクノリッジ信号がマスタデバイスに送信し , AAS ビットがセットされます。
I2C インタフェースは , 反復「START」条件の後 , 10 ビットリードアクセスのアド
レスヘッダの受信に応答します。
スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは ,
AAS(IBSR レジスタ ) が "1" のときのみです。
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK0 ∼ ITMK3)
図 14.2-8 10 ビットスレーブアドレスマスクレジスタ (ITMK0 ∼ ITMK3)
ITMK0 ∼ ITMK3
15
ENTB
アドレス : ch0 0000B8H
R/W
ch1 0000C8H
ch2 0000D8H 初期値→
0
ch3 0000E8H
アドレス : ch0 0000B9H
ch1 0000C9H
ch2 0000D9H 初期値→
ch3 0000E9H
14
RAL
R/W
13
R/W
12
R/W
11
R/W
10
R/W
9
TM9
R/W
8
TM8
R/W
0
1
1
1
1
1
1
7
TM7
R/W
6
TM6
R/W
5
TM5
R/W
4
TM4
R/W
3
TM3
R/W
2
TM2
R/W
1
TM1
R/W
0
TM0
R/W
1
1
1
1
1
1
1
1
[bit 15] ENTB (10 ビットスレーブアドレス許可ビット )
10 ビットスレーブアドレス動作許可ビットです。
0
10 ビットスレーブアドレス動作禁止
1
10 ビットスレーブアドレス動作許可
このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN="0") で行って
ください。
359
第 14 章 I2C インタフェース
[bit 14] RAL ( スレーブアドレス長ビット )
このビットは , スレーブアドレス長を示します。
0
7 ビットスレーブアドレス
1
10 ビットスレーブアドレス
このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB=1, ENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス動作
のどちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (ICCR:EN="0") したときにクリアされま
す。
このビットはリードのみ可能です。
[bit 13 ∼ bit 10] 未使用ビットです。リード時は常に "1" が読まれます。
[bit 9 ∼ bit 0] TM9 ∼ TM0(10 ビットスレーブアドレスマスクビット )
このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。
このレジスタへの書込みは , I2C インタフェースが動作禁止 (ICCR:EN="0") のとき
に行ってください。
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタが 10 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。受信した
スレーブアドレスは , ITBA に上書きされます。AAS="1" (IBSR) のとき , ITBA レジ
スタを読み出すことによって実際の指定されたスレーブアドレスを特定できます。
ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9 ∼
TM0 の値が "1" のときは ITBA のアドレスが有効になり , "0" のときには無効になり
ます。
例:
ITBA アドレス "00100101 11B"
ITMK アドレス "11111111 00B" のとき
スレーブアドレスは "00100101 00B" ∼ "00100101 11B" の空間になります。
360
第 14 章 I2C インタフェース
■ 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA3)
図 14.2-9 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA3) のビット構成
ISBA0 ∼ ISBA3
アドレス : ch0 0000BBH
ch1 0000CBH
ch2 0000DBH 初期値→
ch3 0000EBH
7
6
5
4
3
2
1
0
R/W
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
0
0
0
0
0
0
0
0
このレジスタの書換えは動作停止中に行ってください (ICCR:EN=0) 。
[bit 7] 未使用ビットです。リード時は "0" です。
[bit 6 ∼ bit 0] SA6 ∼ SA0 ( スレーブアドレスビット )
スレーブモードでスレーブアドレスを受信したとき , 7 ビットスレーブアドレスが
許可 (ISMK:ENSB="1") されていると , 受信スレーブアドレスと ISBA の比較を行い
ます。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信
し , AAS ビットをセットします。
I2C インタフェースは , 反復「START」条件の後 , 7 ビットリードアクセスのアドレ
スヘッダの受信にアクノリッジを返します。
スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは ,
AAS(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが
受信されたとき , ISBA と受信スレーブアドレスとの比較を行いません。
361
第 14 章 I2C インタフェース
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK3)
図 14.2-10 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK3) のビット構成
ISMK0 ∼ ISMK3
アドレス : ch0 0000BAH
ch1 0000CAH
ch2 0000DAH 初期値→
ch3 0000EAH
15
14
13
12
11
10
9
8
ENSB
R/W
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
0
1
1
1
1
1
1
1
本レジスタの書換えは動作停止中に行ってください (ICCR:EN=0)。
[bit 15] ENSB( 7 ビットスレーブアドレス許可ビット )
7 ビットスレーブアドレス動作許可ビットです。
0
7 ビットスレーブアドレス動作禁止
1
7 ビットスレーブアドレス動作許可
[bit 14 ∼ bit 8] SM6 ∼ SM0(7 ビットスレーブアドレスマスクビット )
このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタが 7 ビットスレーブアドレ
ス比較に使用されるときに , このビットを "1" にセットしてください。受信したス
レーブアドレスは , ISBA に上書きされます。AAS="1" (IBSR) のとき , ISBA レジス
タを読み出すことによって実際の指定されたスレーブアドレスを特定できます。
I2C インタフェースが許可になった後 , スレーブアドレス (ISBA) は , 受信動作によっ
て書き換えられるため , ISMK レジスタを書き換えたときは , ISMK レジスタを再設
定しないと期待どおりの動作をしないことがあります。
ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6 ∼
SM0 の値が "1" のときは ISBA のアドレスが有効になり , "0" のときには無効になり
ます。
例:
ISBA アドレス "0010111B"
ISMK アドレス "1111100B" のとき
スレーブアドレスは "0010100B" ∼ "0010111B" の空間になります。
362
第 14 章 I2C インタフェース
■ データレジスタ (IDAR0 ∼ IDAR3)
図 14.2-11 データレジスタ (IDAR0 ∼ IDAR3)
7
IDAR0 ∼ IDAR3
D7
アドレス : ch0 0000BDH
R/W
ch1 0000CDH
0
ch2 0000DDH 初期値→
ch3 0000EDH
6
5
4
3
2
1
0
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
0
0
0
0
0
0
0
[bit 7 ∼ bit 0] D7 ∼ D0 ( データビット )
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中(BB=1)であ
る場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビット
(IBCR) がクリアされるか , バスがアイドル状態 (IBSR:BB="0") のとき転送データは
内部転送レジスタにロードされます。
読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー
タは INT ビット (IBCR) がセットされている場合のみ有効です。
■ FIFO データ数レジスタ (IFN0 ∼ IFN3)
図 14.2-12 IFN0 ∼ IFN3 (FIFO データ数レジスタ )
IFN0 ∼ IFN3
15
14
13
12
11
10
9
8
アドレス : ch0 0000B0H
ch1 0000C0H
ch2 0000D0H 初期値→
ch3 0000E0H
R
R
R
FN4
R
FN3
R
FN2
R
FN1
R
FN0
R
0
0
0
0
0
0
0
0
[bit 15 ∼ bit 13]
未使用ビットです。常に "0" が読み出されます。
[bit 12 ∼ bit 8] FN4 ∼ FN0 (FIFO データ数 )
FIFO に格納されているデータの数を表しています。
"00H" のときは FIFO にデータがないことを示し , "10H" のときは FIFO がフルであ
ることを示します。アンダラン , オーバランを起こした場合は "11H" ∼ "1FH" を表
示します。
363
第 14 章 I2C インタフェース
■ FIFO データレジスタ (IFDR0 ∼ IFDR3)
図 14.2-13 IFDR0 ∼ IFDR3 (FIFO データレジスタ )
IFDR0 ∼ IFDR3
アドレス : ch0 0000B3H
ch1 0000C3H
ch2 0000D3H 初期値→
ch3 0000E3H
7
6
5
4
3
2
1
0
FD7
R/W
FD6
R/W
FD5
R/W
FD4
R/W
FD3
R/W
FD2
R/W
FD1
R/W
FD0
R/W
0
0
0
0
0
0
0
0
[bit 7 ∼ bit 0] FD7 ∼ FD0 (FIFO データビット )
FEN=1 のとき , FIFO にアクセスを行います。FEN=0 のときのアクセスは無効です。
リード時は受信 FIFO からの受信データ読出し , ライト時は送信 FIFO への送信デー
タ書込みとなります。
必ず INT=1 のときにアクセスを行ってください。INT=0 のときに本レジスタにアク
セスを行った場合 , 動作は保証されません (INT=0 のときアクセスを行った場合 ,
IFCRのFERフラグが"1"になりますので, プログラムデバッグに使用してください)。
■ FIFO コントロールレジスタ (IFCR0 ∼ IFCR3)
図 14.2-14 IFCR0 ∼ IFCR3 (FIFO コントロールレジスタ )
IFCR0 ∼ IFCR3
アドレス : ch0 0000B2H
ch1 0000C2H
ch2 0000D2H 初期値→
ch3 0000E2H
15
14
13
12
11
10
9
8
FEN
R/W
FCL
R/W
-
TEDIE
R/W
FER
R/W
TED
R/W
FRED
R/W
TFE
R/W
0
0
-
0
0
0
0
0
[bit 15] FEN (FIFO イネーブルビット )
FIFO の動作許可ビットです。
0
FIFO を使用しません。
1
FIFO を使用します。
"0" のとき , FIFO は初期化されます。
FEN=1 で転送中に FEN=0 にすると FIFO による転送を中断し , 1 バイトの転送が終
了したときに INT=1 になります。
[bit 14] FCL (FIFO クリアビット )
FIFO をクリアします。リード時は常に "0" が読まれます。
0
意味を持たない。
1
受信 FIFO をクリアする。
[bit 13] 未使用ビットです。常に "0" が読み出されます。
364
第 14 章 I2C インタフェース
[bit 12] TEDIE ( スレーブ転送終了割込みイネーブルビット )
スレーブ時 , 転送が終了割込み許可ビットです。
0
転送終了割込み禁止。
1
転送終了割込み許可。
このビットが "1" となると , FEN の値に関係なくスレーブ状態で RSC=1 もしくは
BB=1 を検出すると割込みを発生します。また , 割込みクリアがアドレス受信より
遅れると NACK を出力します。
[bit 11] FER (FIFO エラーフラグ )
INT=0 中に IFDR レジスタにアクセスしたことを知らせるエラーフラグです。
0
FIFO エラーが発生していない。
1
FIFO エラーが発生している。
このフラグで割込みは発生しません。プログラムデバッグに使用してください。
[bit 10] TED ( スレーブ転送終了フラグ )
スレーブ時 , 転送が終了したことを示します。
0
スレーブ時 , 転送が終了していない。
1
スレーブ時 , 転送が終了している。
スレーブ時 , 「STOP」条件か反復「START」条件を検出したときにセットされる割込
み要因ビットです。FIFO を使用しないとき (FEN=0) も有効です。
このビットに "0" を書き込むことでクリアされます。"1" 書込みは無効です。
このビットは , リードモディファイライト (RMW) 系命令における読出し時は , 常に
"1" が読まれます。
[bit 9] FRED (FIFO 受信終了フラグ )
FIFO 受信が終了したことを示します。
0
FIFO 受信が終了していない。
1
FIFO 受信が終了している。
FIFO による受信の最後の 1 バイトで , アクノリッジビットを含めた 1 バイト転送が
終了したときにセットされる割込み要因ビットです。
FIFO が空のときに , INT ビットへ "0" を書き込むことでクリアされます。また ,
MSS=0 または SCC=1 の書込みでもクリアされます。
365
第 14 章 I2C インタフェース
[bit 8] TFE ( 送信 FIFO エンプティフラグ )
送信時に FIFO がエンプティであることを示します。
0
送信時に FIFO にデータがある。
1
送信時に FIFO にデータがない。
データ送信時 , FIFO にデータがなく , アクノリッジビットを含めた 1 バイト転送が
終了したときにセットされる割込み要因ビットです。
FIFO にデータがあるときに , INT ビットへ "0" を書き込むことでクリアされます。
また , MSS=0 または SCC=1 の書込みでもクリアされます。
■ FIFO 受信数レジスタ (IFRN0 ∼ IFRN3)
図 14.2-15 IFRN0 ∼ IFRN3 (FIFO 受信数レジスタ )
7
IFRN0 ∼ IFRN3
FACK
アドレス : ch0 0000B1H
R/W
ch1 0000C1H
0
ch2 0000D1H 初期値→
ch3 0000E1H
6
5
4
3
2
1
0
R/W
R/W
R/W
FRN3
R/W
FRN2
R/W
FRN1
R/W
FRN0
R/W
0
0
0
0
0
0
0
このレジスタは , FEN=1 かつ INT=1 のときに書込みを行ってください。
[bit 7] FACK (FIFO 受信アクノリッジフラグ )
FIFO の受信時 , 最後のデータのアクノリッジを設定します。
0
FRN =1 のデータ受信時にアクノリッジを発生しない。
1
FRN=1 のデータ受信時にアクノリッジを発生する。
このフラグは , ACK=1 のときに有効です。FRN=1 以外のデータ受信時はアクノリッ
ジを発生します。FRN=1 のときのデータ受信時は , このビットに従いアクノリッジ
を出力します。
INT=1 のときに書込みを行ってください。
[bit 3 ∼ bit 0] FRN3 ∼ FRN0 ( 受信データ数ビット )
データ受信する数を設定するレジスタです。FIFO に 1 バイト受信ごとに本レジス
タはデクリメントされます。"0000B" をライトすると 16 バイト受信となります。リー
ド時は残り受信データ数が読めます。FRN=1 → 0 となるときに INT=1 となります。
INT=1 のときに書込みを行ってください。
366
第 14 章 I2C インタフェース
14.3
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインに転送を行います。
I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL)
を有し , ワイヤード論理を可能にします。
■「START」条件
バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ
ンタフェースはマスタモードとなり , 「START」条件を発生します。そのとき , スレー
ブアドレスとして IDAR レジスタの値を送信します。
バスマスタモードで割込みフラグがセットされているとき (IBCR:MSS="1", INT="1"),
SCC ビットに "1" を書き込むことで , 反復「START」条件が生成されます。
バス使用時 (IBSR:BB="1", TRX="0", IBCR:MSS="0" または INT="0") に , MSS ビットに
"1" を書き込むとバスが開放され , 送信が開始されます。
スレーブモード時ライト ( 受信 ) アクセスされると転送終了し , バスが開放された後 ,
送信を開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放さ
れても送信しません。
インタフェースは , 次のことをチェックする必要があります。
• スレーブとして指定された (IBCR:MSS="0", IBSR:AAS="1") かどうか。
• 次の割込みでデータバイトを正常に送れた (IBSR:AL="1") かどうか
■「STOP」条件
マスタモード (IBCR:MSS=1, INT="1") 時に , MSS ビットに "0" を書き込むと , 「STOP」
条件を発生し , スレーブモードになります。ほかの条件での MSS ビットに "0" 書込み
は無視されます。
MSS ビットがクリアされた後 , 「STOP」条件を生成しようとします。
「STOP」条件を
生成する前に , SCL ラインが "L" にドライブされているときは生成されません。次のバ
イトが転送された後 , 割込みが生成されます。
<注意事項>
MSS ビットに "0" を書き込んでから「STOP」条件を発生するまでに時間を要します。
「STOP」条件を発生する前に I2C インタフェースを動作禁止 (ICCR:EN="0") にすると , 直
ちに動作停止し SCL ラインに不正クロックが発生します。
I2C インタフェースの動作を禁止する際は ,「STOP」条件の発生を確認 (IBSR:BB="0") し
た後 , 動作を禁止 (ICCR:EN="0") してください。
367
第 14 章 I2C インタフェース
■ スレーブアドレス検出
スレーブモードでは , 「START」条件発生後 , BB=1 にセットされ , マスタからの送信
データを IDAR レジスタへ受信します。
● 7 ビットスレーブアドレス動作許可の場合 (ISMK:ENSB=1)
8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。このと
き , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS=1 にセットし , マスタに対してアクノリッジを送信します。そ
の後 , 受信データの bit 0( 受信後の IDAR レジスタの bit 0) を反転して TRX ビットへ格
納します。
● 10 ビットスレーブアドレス動作許可の場合 (ITMK:ENTB=1)
10 ビットアドレスのヘッダ部 (11110B, TA1, TA0, 書込み ) を検出するとマスタに対し
てアクノリッジを送信し , 受信データの bit 0 を反転して TRX ビットへ格納します。こ
のとき割込みは発生しません。
続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。このと
き , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信しま
す。このとき , 割込みが発生します。
スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビットア
ドレスのヘッダ部 (11110B, TA1, TA0, 読出し ) を受信後に AAS に "1" をセットし , 割込
みを発生します。
10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ
(ISBA) を搭載しているので , 両方の動作許可 (ISMK:ENSB=1, ITMK:ENTB=1) をするこ
とにより, 10ビットアドレス/7ビットアドレスに対してアクノリッジを送信できます。
スレーブモード時 (AAS="1") の受信スレーブアドレス長は , ITMK レジスタの RAL ビッ
ト に よ っ て 決 定 し ま す。マ ス タ モ ー ド 時 は , 両 方 の 動 作 を 禁 止 (ISMK:ENSB=0,
ITMK:ENTB=0) することにより , I2C インタフェースにスレーブアドレスを生成しない
ことが可能です。
全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできます。
■ スレーブアドレスマスク
スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各
ビットに対してマスクできます。マスクレジスタに "1" をセットされたビットはアド
レス比較を行いますが , "0" に設定されているビットは無視されます。スレーブモード
(IBSR:AAS="1") 時 , 受信スレーブアドレスは , ITBA(10 ビットアドレス時 ), ISBA(7 ビッ
トアドレス時 ) レジスタから読み出せます。
ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの
モニタとして使用できます。
<注意事項>
ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを
返すので , この機能はリアルバスモニタとはなりません。
368
第 14 章 I2C インタフェース
■ マスタアドレッシング
マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ
の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを
受信すると , 送信データの bit 0( 送信後の IDAR レジスタの bit 0) を反転して TRX ビッ
トへ格納します。この動作は , 反復「START」条件でも実行されます。
ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第 1 バイトは , 10
ビットシーケンスを示すヘッダ "1 1 1 1 0 A9 A8 0"であり, 続いて, 第2バイトでスレー
ブアドレスの下位 8 ビット (A7 ∼ A0) を送信します。
リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと
もに , リードアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。
7 ビット
スレーブアクセス
10 ビット
スレーブアクセス
ライト
「START」条件 -A6 A5 A4 A3 A2 A1 A0 0
リード
「START」条件 -A6 A5 A4 A3 A2 A1 A0 1
ライト
「START」条件 -1 1 1 1 0 A9 A8 0 ∼ A7 A6 A5 A4 A3 A2 A1 A0
リード
「START」条件 -1 1 1 1 0 A9 A8 0 ∼ A7 A6 A5 A4 A3 A2 A1 A0
- 反復「START」条件 -1 1 1 1 0 A9 A8 1
■ アービトレーション
マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ
ンが起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 ,
自身はアービトレーションを失ったと見なし , AL=1 にセットします。
インタフェースがデータの最初のビットで , 不要な「START」条件を検出されるか
「START」条件 , 「STOP」条件の生成が失敗した場合 , AL=1 がセットされます。
アービトレーションロストが発生すると , MSS=0, TRX=0 となり , スレーブ受信モード
となり , 自身のスレーブアドレスを受信するとアクノリッジを返します。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット
(IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択できます。
スレーブモード時のデータ送信 ( ほかのマスタからのリードアクセス ) に , マスタから
アクノリッジがなくても , TRX ビットは "0" にセットし , 受信モードになります。これ
により , マスタはスレーブが SCL ラインを開放したときに , 「STOP」条件を発生でき
ます。
マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか
どうかをチェックできます。
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビットを含む ) の I2C バス 上の基本規定違反の検出
• マスタ時の「STOP」条件検出
• バスアイドル時における I2C バス上の基本規定違反の検出
369
第 14 章 I2C インタフェース
■ エラーを発生しない通信エラー
マスタモード送信時 , SCL ラインにノイズなどで不正クロックが発生すると , I2C イン
タフェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ライン
に "L" を出したままハングアップすることがあります。このようなクロックの不正に
対し , エラー (AL="1", BER="1") が発生しません。
この場合 , 次の方法でエラー処理をしてください。
1. MSS="1", TRX="1", INT="1" のとき , LRB="1" であれば , 通信エラーと判断。
2. ここで , EN="0" とし , その後 EN="1" とすることにより , 擬似的に SCL が 1 クロッ
ク発生します。これにより , スレーブにバスを開放させます。
EN="0" から EN="1" の期間は , スレーブ側がクロックと認識できる期間 ( 送信クロッ
クの "H" 期間と同じ程度 ) としてください。
3. EN="0" の時点で , IBSR, IBCR はクリアされますので , 「START」条件から再送信処
理をしてください。このとき , MSS="0" による「STOP」条件は生成されません。
このとき , EN="1" から MSS="1"(「START」条件 ) までに , "n × 7 × tCPP" 以上の時
間を空けてください。
例:
高速モードの場合 : 6 × 7 × 30.3 ≒ 1.273 µ s
標準モードの場合 : 27 × 7 × 30.3 ≒ 5.727 µ s
<注意事項>
BER がセットされている場合は , EN="0" でクリアされませんのでクリア後 , 再送信して
ください。
■ その他
• アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド
レッシングされていなかった場合をソフトで判断しなければなりません。
アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送
終了後 , CLK ライン , DATA ライン双方を "L" に引っ張ります。このため , アドレッ
シングされていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシ
ングされていた場合には , スレーブ送信またはスレーブ受信の準備をしてから ,
CLK ライン , DATA ラインを開放する必要があります ( すべてソフトにて処理する
必要があります )。
• I2 C バスには 1 つの割込みしかなく , 1 バイトを転送終了した時点で , ある割込み条
件に該当していた場合 , 割込み要因が発生する仕様になっています。1 つの割込み
で , 複数の割込み条件を判断しなければならないため , 割込みルーチン内で各フラ
グをチェックしなければなりません。1 バイト転送終了した時点での割込み条件を
下記に示します。
- バスマスタであった場合
- アドレスされたスレーブであった場合
- ゼネラルコールアドレスを受信した場合
- アービトレーションロストを検出した場合
370
第 14 章 I2C インタフェース
• アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな
く , 1 バイトを転送終了した時点で要因は発生します。
アービトレーションロストを検出するとハード的にスレーブになりますが , スレー
ブになっても , 割込み要因が発生するために , トータル 9 クロック出力します。よっ
て , 即座に割込み要因が発生しないため , アービトレーションロスト後に処理を行
うことはできません。
371
372
No
BBビット=0 ?
No
Yes
I2Cの動作禁止
ALビット=1 ?
No
BBビット=0 ?
No
Yes
No
残りの送信バイト数=0?
Yes
データ方向ビット
TRXビット=1?
Yes
ACKは返ってきたか
Yes
マスタか
No
ALは発生したか
No
バスエラーは
生じたか
No
No
Yes
Yes
RETI
転送終了割込み
要因クリア
送信データのセット
送信バイト数のデクリメント
I2Cの動作禁止
ALビット=1 ?
Yes
No
BBビット=1 ?
Yes
Yes
スレーブアドレスセット
受信
(データ方向ビット=1)
マスタ受信
受信データバイト数の
セット
スレーブアドレス送信
スタートコンディション発生
No
BBビット=1 ?
Yes
スレーブアドレス送信
スタートコンディション発生
Yes
スレーブアドレスセット
送信
(データ方向ビット=0)
No
マスタ送信
送信データバイト数の
セット
マスタ受信動作?
I2Cの動作許可
バスエラー割込み許可
スレーブアドレス
を設定
開始
割込みルーチン
Yes
1
3
3
2
1
RETI
転送終了割込み
要因クリア
アクノリッジ発生許可
No
残りの受信バイト数=1?
No
残りの受信バイト数=0?
受信データをRAMへ格納
受信バイト数のデクリメント
No
第1バイト目の受信か ?
ADTビット=1 ?
スレーブプログラム
の割込みルーチンへ
アクノリッジ発生許可
3
RETI
STOP コンディション発生
1
1
アクノリッジ発生禁止
Yes
Yes
Yes
RETI
I2Cの動作許可
I2Cの初期設定
バスエラー割込み
要因クリア
2
14.4
開始
メインルーチン
第 14 章 I2C インタフェース
動作フローチャート
次の動作例のフローチャートを示します。
• メインルーチン
• 割込みルーチン
■ FIFO を使用しない (FEN=0) 場合
図 14.4-1 I2C マスタ送受信プログラムフローチャート
データ方向ビット
TRXビット=1?
Yes
アドレッシングされているか?
No
バスエラー
は生じたか?
開始
割込みルーチン
RETI
転送終了割込み
要因クリア
スレーブ送信
Yes
(注意事項)
ACKは
マスタモード時にアービトレーション
返ってきたか?
ロストが発生した場合に必要となります。
Yes
自分がアドレス指定されているかどうかの
送信データのセット
判断となります。
LOOP
スレーブモードに設定
I2Cの動作許可
バスエラー割込み許可
スレーブアドレス
を設定
開始
メインルーチン
No
No
Yes
①
No
②
受信データはアドレスか?
ADTビット=1?
スレーブ受信
RETI
転送終了割込み
要因クリア
No
受信データをRAMへ格納
①
Yes
RETI
I2Cの動作許可
I2Cの初期設定
バスエラー割込み
要因クリア
転送終了割込み
要因クリア
RETI
②
①
第 14 章 I2C インタフェース
図 14.4-2 I2C スレーブ送受信プログラムフローチャート
373
374
No
No
Yes
I2Cの動作禁止
ALビット = 1 ?
BBビット = 0 ?
No
BBビット = 0 ?
Yes
I2Cの動作禁止
No
ALビット = 1 ?
Yes
No
BBビット = 1 ?
Yes
Yes
スレーブアドレスセット
受信
(データ方向ビット=1)
マスタ受信
受信データバイト数の
セット
スレーブアドレス送信
スタートコンディション発生
No
BBビット = 1 ?
Yes
スレーブアドレス送信
スタートコンディション発生
Yes
スレーブアドレスセット
送信
(データ方向ビット=0)
No
マスタ送信
送信データバイト数の
セット
マスタ受信動作?
I2Cの動作許可
バスエラー割込み許可
スレーブアドレス
を設定
開始
メインルーチン
No
No
Yes
Yes
RETI
Yes
転送終了割込み
要因クリア
送信FIFOがフルか?
または
残りの送信バイト数=0?
送信データのセット
送信バイト数のデクリメント
No
残りの送信バイト数=0?
Yes
データ方向ビット
TRXビット=1 ?
Yes
ACKは返ってきたか
Yes
マスタか
No
ALは発生したか
No
バスエラーは
生じたか
開始
割込みルーチン
No
Yes
1
3
3
2
1
RETI
転送終了割込み
要因クリア
受信数を16バイトに設定
アクノリッジ発生許可
No
残りの受信バイト≦16?
No
残りの受信バイト数=0?
Yes
受信FIFOがエンプティか?
受信データをRAMへ格納
受信バイト数のデクリメント
No
第一バイト目の受信か ?
ADTビット = 1 ?
スレーブプログラム
の割込みルーチンへ
アクノリッジ発生許可
3
RETI
STOPコンディション発生
1
1
受信数を残りの
受信バイト数に設定
最後受信データの
アクノリッジ発生禁止
Yes
Yes
No
Yes
RETI
I2Cの動作許可
I2Cの初期設定
バスエラー割込み
要因クリア
2
第 14 章 I2C インタフェース
■ FIFO を使用する (FEN=1) 場合
図 14.4-3 FIFO 内蔵 I2C マスタ送受信プログラムフローチャート
(注意事項)
マスタモード時にアービトレーション
ロストが発生した場合に必要となります。
自分がアドレス指定されているかどうかの
判断となります。
LOOP
スレーブモードに設定
I2Cの動作許可
バスエラー割込み許可
スレーブアドレス
を設定
開始
メインルーチン
Yes
RETI
転送終了割込み
要因クリア
受信FIFOがフルか?
送信データのセット
No
転送終了フラグ
TEDビット=1?
送信FIFOクリア
Yes
受信データはアドレスか?
ADTビット=1?
スレーブ送信
TRXビット=1?
データ方向ビット
Yes
アドレッシングされているか?
No
バスエラー
は生じたか?
開始
割込みルーチン
Yes
No
Yes
①
No
No
②
①
RETI
RETI
RETI
転送終了割込み
要因クリア
受信数を16バイトに設定
アクノリッジ発生許可
転送終了フラグ
TEDビット=1?
Yes
Yes
受信FIFOがエンプティか?
受信データをRAMへ格納
①
No
Yes
I2Cの動作許可
I2Cの初期設定
スレーブ受信
No
②
バスエラー割込み
要因クリア
受信データはアドレスか?
ADTビット=1?
転送終了割込み
要因クリア
①
受信FIFOのクリア
第 14 章 I2C インタフェース
図 14.4-4 FIFO 内蔵 I2C スレーブ送受信プログラムフローチャート
375
第 14 章 I2C インタフェース
376
第 15 章
16 ビットパルス幅カウンタ
16 ビットパルス幅カウンタの概要 , レジスタの構
成 / 機能 , および動作について説明します。
15.1 16 ビットパルス幅カウンタの概要
15.2 16 ビットパルス幅カウンタのレジスタ
15.3 16 ビット パルス幅カウンタの動作
377
第 15 章 16 ビットパルス幅カウンタ
15.1
16 ビットパルス幅カウンタの概要
16 ビットパルス幅カウンタは , 外部からの入力信号のパルス幅を 16 ビットのアップ
カウンタで測定するカウンタです。
■ 16 ビットパルス幅カウンタ
PWC は外部からの入力信号のパルス幅を 16 ビットのアップカウンタで測定します。
ハードウェアとして , 16 ビットアップカウンタ 1 個 , 8 ビット制御レジスタ 3 個と , PWC
データレジスタ , PWC 上限データレジスタ , ローパスフィルタなどから構成されてい
ます。
データレジスタ転送時に割込み要求を発生します。
■ レジスタ一覧
図 15.1-1 レジスタ一覧
アドレス: 15
000090H
000094H
000098H
00009CH
8 7
PWCCL
0
PWCCH
PWC 制御レジスタ
PWC データレジスタ
PWC 制御レジスタ
PWC 上限データレジスタ
PWCD
PWCC2
Reserve
PWCUD
■ ブロックダイヤグラム
図 15.1-2 ブロックダイヤグラム
上限値レジスタ
カウントクロック
サンプリング間隔
カウントクロック
カウントクリア
LPF
RIN
オーバフロー
上限値
5
キャプチャレジスタ
制御回路
4
制御
ビット
フラグセット
PWCD
サンプリング間隔選択
カウントクロック選択
PWCCH
PWCCL
IRQ
内部バス
378
16ビットカウンタ
第 15 章 16 ビットパルス幅カウンタ
15.2
16 ビットパルス幅カウンタのレジスタ
16 ビットパルス幅カウンタで使用するレジスタの構成および機能について説明しま
す。
■ PWC 制御レジスタ (PWCCL)
図 15.2-1 PWC 制御レジスタ (PWCCL) のビット構成
7
INT
(R/W)
PWCCL
000090H
6
INTE
(R/W)
5
4
OVFL OVFLE
(R/W) (R/W)
3
-
2
-
1
-
0
ST
(R/W)
初期値
0000--00B
[bit 7] : INT
PWC データレジスタにキャプチャデータを転送したことを示すフラグです。キャ
プチャデータ転送割込み要求が許可されているとき(INTE=1: bit 6), 本ビットがセッ
トされると割込み要求が発生します。
リードモディファイライト (RMW) 系命令における読出し時は , "1" がリードされま
す。
0
割込み要因クリア
1
キャプチャデータあり
[bit 6] : INTE
キャプチャデータ転送割込み要求許可ビットです。
0
割込み要求禁止
1
割込み要求許可
[bit 5] : OVFL
16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフローしたことを示すフ
ラグです。オーバフロー割込み要求が許可されているとき (OVFLE=1:bit 4), 本ビッ
トがセットされると割込み要求が発生します。
リードモディファイライト (RMW) 系命令における読出し時は , "1" がリードされま
す。
0
割込み要因クリア
1
オーバフロー発生
379
第 15 章 16 ビットパルス幅カウンタ
[bit 4] : OVFLE
オーバフロー割込み要求許可ビットです。
0
割込み要求禁止
1
割込み要求許可
[bit 3,bit 2] : −
未使用ビットです。
[bit 1] : Reserved
予約ビットです。ライト時は必ず "0" を書き込んでください。
[bit 0] : ST
PWC スタートビットです。
0
PWC 停止
1
PWC 動作
■ PWC 制御レジスタ (PWCCH)
図 15.2-2 PWC 制御レジスタ (PWCCH) のビット構成
PWCCH
000091H
7
6
TEST1 TEST0
(R/W) (R/W)
5
(-)
4
3
2
CSLF1 CSLF0 CS2
(R/W) (R/W) (R/W)
[bit 7, bit 6] : TEST1, TEST0
テストビットです。
"1" の書込みを禁止
[bit 5] 未使用ビットです。
[bit 4, bit 3] : CSLF1, CSLF0
LPF のサンプリング間隔を以下から選択します。
380
CSLF1
CSLF0
サンプリング間隔
0
0
φ × 26
0
1
φ × 28
1
0
φ × 210
1
CS1
(R/W)
0
CS0
(R/W)
初期値
00-00000B
第 15 章 16 ビットパルス幅カウンタ
CSLF1
CSLF0
サンプリング間隔
1
1
φ × 212
φ : システムベースクロックの周期
[bit 2, bit 1, bit 0] : CS2, CS1, CS0
内部カウントクロックを以下のように選択します。
CKS2
CKS1
CKS0
0
0
0
φ
0
0
1
φ × 26
0
1
0
φ × 28
0
1
1
φ × 210
1
0
0
φ × 212
カウントクロック選択
φ : システムベースクロックの周期
■ PWC データレジスタ (PWCD)
図 15.2-3 PWC データレジスタ (PWCD) のビット構成
PWCD
000094H
PWCD
000094H
15
14
13
12
11
10
9
8
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
7
6
5
4
3
2
1
0
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
XXXXXXXXB
初期値
XXXXXXXXB
パルス幅の計測値を格納するレジスタです。入力信号のエッジでのみキャプチャ値を
取り込みます。
オーバフロー時と上限値を超えたときは取り込みません。
381
第 15 章 16 ビットパルス幅カウンタ
■ PWC 制御レジスタ 2(PWCC2)
図 15.2-4 PWC 制御レジスタ 2(PWCC2) のビット構成
7
PWCC2
000098H
6
5
4
3
2
1
0
-
-
-
-
-
UPINT UPINTE LOW
(R/W) (R/W) (R/W)
初期値
000-----B
[bit 7] : UPINT
設定した上限値レジスタの値までカウントしたことを示すフラグです。上限値割込
み要求が許可されているとき (UPINTE=1:bit 6), 本ビットがセットされると割込み
要求が発生します。
リードモディファイライト (RMW) 系命令における読出し時には , "1" がリードされ
ます。
0
割込み要因クリア ( 初期値 )
1
上限値オーバカウントあり
[bit 6] : UPINTE
上限値割込み要求許可ビットです。本ビットに "1" が設定されているとカウンタ値
と上限設定レジスタとの比較を行います。
0
割込み要求禁止 ( 初期値 )
1
割込み要求許可
[bit 5] :LOW
データレジスタに入っているキャプチャ値が "L" 幅を示すことを表します。
382
0
"H" 幅測定終了 ( 初期値 )
1
"L" 幅測定終了
第 15 章 16 ビットパルス幅カウンタ
■ PWC 上限値設定レジスタ (PWCUD)
図 15.2-5 PWC・上限値設定レジスタ (PWCUD) のビット構成
PWCUD
00009CH
PWCUD
00009CH
15
14
13
12
11
10
9
8
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
7
6
5
4
3
2
1
0
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
XXXXXXXXB
初期値
XXXXXXXXB
パルス幅測定の上限値を格納するレジスタです。
本レジスタは各幅に対応しますので , "H" 幅 , "L" 幅にかかわらず上限値を超えたパル
スを測定すると , PWCC2 レジスタの UPINT ビットがセットされます。また , 本レジス
タをカウンタ値が超えた場合でもカウントは連続して行われ , 停止しません。
また , 本レジスタの初期値は不定ですので , PWCC2 レジスタの UPINTE ビットに "1"
を書いて上限値比較をする前に上限値をライトしてください。
383
第 15 章 16 ビットパルス幅カウンタ
16 ビット パルス幅カウンタの動作
15.3
PWC の基本動作について説明します。
■ パルス幅カウント動作
PWC は , RIN 信号の立上りおよび , 立下りエッジでカウンタ値のキャプチャとカウン
タのクリアを行います。クリアされたカウンタは , そのままカウント動作を継続しま
す。また , キャプチャを行うと割込みを発生します。
カウンタ値が "FFFFH" から "0000H" になるとオーバフローによる割込みを発生します。
図 15.3-1 にこれらの動作を示します。
図 15.3-1 PWC 動作図
ST (動作許可)
上限値割込みをセットする
がキャプチャはしない
RIN入力
エッジ
エッジ
FFFFH
上限値 mmmH
カウント値
0000H
xxxxH
PWCD
aaaaH
bbbbH
ccccH
ddddH
eeeeH
INT
UPINT
OVFL
LOW
<注意事項>
動作許可後 (ST=1) の最初のエッジでは , キャプチャはしません。
384
第 15 章 16 ビットパルス幅カウンタ
■ カウントクロックの選択
カウンタのカウントクロックは 5 種類から選択できます。
選択できるカウントクロックは以下のとおりです。
表 15.3-1 カウントクロックの選択
CS2
CS1
CS0
0
0
0
CLKP
0
0
1
0
1
0
1
カウントクロック選択
*
PLL4 逓倍 (64MHz)
PLLオフ(原発振16MHz)
31.3ns (32MHz)
125ns (8MHz)
φ × 26 *
1.0µs (64MHz)
8.0µs (8MHz)
0
φ × 28 *
4.0µs (64MHz)
32.0µs (8MHz)
1
1
φ × 210 *
16.0µs (64MHz)
128.0µs (8MHz)
0
0
φ × 212 *
64.0µs (64MHz)
512.0µs (8MHz)
* : CLKP は周辺クロック
φ : システムベースクロックの周期
■ LPF のサンプリング間隔について
LPF のサンプリング間隔を以下の設定から選択できます。
表 15.3-2 LPF のサンプリング間隔
CSLF1
CSLF0
0
0
φ × 26 *
1.0µs
8.0µs (8MHz)
0
1
φ × 28 *
4.0µs
32.0µs (8MHz)
1
0
φ × 210 *
16.0µs
128.0µs (8MHz)
1
1
φ × 212 *
64.0µs
512.0µs (8MHz)
サンプリング間隔
PLL4 逓倍 (64MHz)
PLL オフ ( 原発振 16MHz)
φ : システムベースクロックの周期
*: 設定時の注意
PWC の動作クロックは , CLKP です。カウントクロック , LFP のサンプリングクロックは φ で動
作します。よって , PWC の動作クロックよりカウントクロック , LFP のサンプリングクロックの
ほうが速いと正しく動作しません。
周期 : PWC の動作クロック× 4 <カウントクロック
PWC の動作クロック× 4 < LFP のサンプリングクロック の条件を守ってください。
例 : CLKP 32MHz 時 : 31.3ns × 4 <カウントクロック (φ × 26:1.0µs) 問題なし
CLKP 16MHz 時 : 62.5ns × 4 <カウントクロック (φ × 26:1.0µs) 問題なし
CLKP 8MHz 時
: 125ns × 4 <カウントクロック (φ × 26:1.0µs) 問題なし
CLKP 0.5MHz 時 : 2000ns × 4 <カウントクロック (φ × 26:1.0µs) 設定禁止
385
第 15 章 16 ビットパルス幅カウンタ
図 15.3-2 LFP の動作
"L"が除去されます
"H"が除去されます
入力信号
サンプリングクロック
LFP出力
"H"が除去されます
"L"が除去されます
入力信号
サンプリングクロック
LFP出力
■ 割込み要求発生
以下の 3 つの割込み要求を発生することが可能です。
● キャプチャデータ転送による割込み要求
PWC データレジスタにキャプチャデータを転送すると割込みフラグがセットされ , 割
込み要求が許可されていると割込み要求が発生します。
● カウンタのオーバフローによる割込み要求
測定中 , カウンタ値が "FFFF H" から "0000 H" へオーバフローするとオーバフローフラ
グがセットされ , 割込み要求が許可されていると割込み要求が発生します。
オーバフローではキャプチャはしません。
● カウンタ中の上限値レジスタを超えてカウントした場合の割込み要求
測定中 , カウンタ値が上限設定レジスタの値より大きくなった場合 , 上限フラグがセッ
トされ , 割込み要求が許可されていると割込み要求が発生します。
386
第 16 章
16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 , レジスタの構
成 / 機能 , および動作について説明します。
16.1 16 ビットフリーランタイマの概要
16.2 16 ビットフリーランタイマのレジスタ
16.3 16 ビットフリーランタイマの動作説明
387
第 16 章 16 ビットフリーランタイマ
16.1
16 ビットフリーランタイマの概要
16 ビットフリーランタイマの特長 および構成について説明します。
■ 16 ビットフリーランタイマの特長
16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャプ
チャの基本時間 ( ベースタイマ ) として使用されます。
• カウントクロックは 4 種類から選択可能です。
• カウンタオーバフローにより割込みを発生することができます。
• モード設定により , アウトプットコンペアのコンペアレジスタ 0 の値との一致によ
るカウンタの初期化が可能です。
■ 16 ビットフリーランタイマのブロックダイヤグラム
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールステータスレ
ジスタより構成されています。
図 16.1-1 に , 16 ビットフリーランタイマのブロックダイヤグラムを示します。
図 16.1-1 16 ビットフリーランタイマのブロックダイヤグラム
割込み
ECLK
IVF
IVFE
STOP
MODE
CLR
CLK1
CLK0
分周器
φ
R-bus
FRCK
クロック
選択
16ビットフリーランタイマ
(TCDT)
クロック
内部回路へ(T15~T00)
コンパレータ0
388
第 16 章 16 ビットフリーランタイマ
16 ビットフリーランタイマのレジスタ
16.2
16 ビットフリーランタイマで使用するレジスタの構成および機能について説明しま
す。
■ 16 ビットフリーランタイマのレジスタ一覧
16 ビットフリーランタイマのレジスタ一覧は , 以下のとおりです。
図 16.2-1 16 ビットフリーランタイマのレジスタ一覧
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
4
3
7
6
5
ECLK
IVF
IVFE
STOP MODE
2
1
CLR
CLK1
タイマデータレジスタ上位 (TCDT)
タイマデータレジスタ下位 (TCDT)
0
タイマコントロールステータス
CLK0 レジスタ (TCCS)
■ タイマデータレジスタ (TCDT)
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すことの
できるレジスタです。
タイマデータレジスタ (TCDT) のビット構成は , 以下のとおりです。
図 16.2-2 タイマデータレジスタ (TCDT) のビット構成
TCDT
アドレス 0000F4H
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
T07
R/W
6
T06
R/W
5
T05
R/W
4
T04
R/W
3
T03
R/W
2
T02
R/W
1
T01
R/W
0
T00
R/W
初期値
0000H
カウンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むこと
でタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってください。このレジス
タは , ワードアクセスしてください。
16 ビットフリーランタイマの初期化は次の要因で行われます。
• リセットによる初期化
• コントロールステータスレジスタのクリア (CLR) による初期化
389
第 16 章 16 ビットフリーランタイマ
■ タイマコントロールステータスレジスタ (TCCS)
タイマコントロールステータスレジスタ (TCCS) のビット構成は , 以下のとおりです。
図 16.2-3 タイマコントロールステータスレジスタ (TCCS) のビット構成
TCCS
bit
7
アドレス:0000F7H ECLK
R/W
(0)
初期値
6
5
4
3
2
1
0
IVF
R/W
(0)
IVFE
R/W
(0)
STOP
R/W
(0)
(0)
CLR
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
[bit 7] : ECLK
16 ビットフリーランタイマのカウントクロックソースを内部か外部かを選択する
ビットです。
本ビットに書込み後 , すぐにクロックは変更されますので , インプットキャプチャが
停止状態のときに変更してください。
ECLK
クロック選択
0
内部クロックソースを選択 ( 初期値 )
1
外部端子 (FRCK) よりクロックを入力
<注意事項>
• 内部クロックを選択した場合は, bit 1, bit 0 (CLK1, CLK0)にカウントクロックの設定を
行ってください。このカウントクロックがベースクロックとなります。また , FRCK よ
りクロックを入力する場合は , 対応する DDR ビットを "0" に設定してください。
• 外部クロックに必要な最低パルス幅は , 2・T (T: 周辺系クロックマシンサイクル ) です。
[bit 6] : IVF
16 ビットフリーランタイマの割込み要求フラグです。
16ビットフリーランタイマがオーバフローを起こしたとき, またはモード設定により
コンペアレジスタ 0 と比較結果が一致したときに , 本ビットは "1" にセットされます。
割込み要求許可ビット (bit 5:IVFE) がセットされていると割込みが発生します。
本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー
ドモディファイライト (RMW) 系命令における読出し時は , 常に "1" が読み出せます。
IVF
390
割込み要求フラグ
0
割込み要求なし ( 初期値 )
1
割込み要求あり
第 16 章 16 ビットフリーランタイマ
[bit 5] : IVFE
16 ビットフリーランタイマの割込み許可ビットです。
本ビットが "1" のとき , 割込みフラグ (bit 6:IVF) が "1" にセットされると割込みが発
生します。
IVFE
割込みイネーブル
0
割込み禁止 ( 初期値 )
1
割込み許可
[bit 4] : STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。
本ビットに "1" 書込み時にタイマのカウント停止します。
本ビットに "0" 書込み時にタイマのカウントを開始します。
STOP
カウント動作
0
カウント許可 ( 動作 ) ( 初期値 )
1
カウント禁止 ( 停止 )
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
[bit 3] : (Reserved)
書き込む際は必ず "0" を書き込んでください。
[bit 2] : CLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
本ビットに "1" を書き込んだときにカウンタを "0000H" に初期化します。
本ビットに "0" を書き込んでも意味を持ちません。リード値は , 常に "0" です。
CLR
フラグの意味
0
意味を持たない ( 初期値 )
1
カウンタ値を "0000H" に初期化する
<注意事項>
• カウンタ値の初期化は , カウント値の変化点で行われます。タイマ停止中に初期化する
場合は , データレジスタに "0000H" を書き込んでください。
• "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込みを行うと ,
カウンタ値の初期化は行なわれません。
391
第 16 章 16 ビットフリーランタイマ
[bit 1,bit 0] : CLK1,CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。
本ビットに書込み後 , すぐにクロックは変更されますのでアウトプットコンペア , イ
ンプットキャプチャが停止状態のときに変更してください。
カウント
クロック
CLK0
0
0
φ/4
125 ns
0
1
φ/16
500 ns
φ =16MHz
φ =8MHz
φ =4MHz
250 ns
500 ns
1.00 µs
1.00 µs
2.00 µs
4.00 µs
1
0
φ/32
1.00 µs
2.00 µs
4.00 µs
8.00 µs
1
1
φ/64
2.00 µs
4.00 µs
8.00 µs
16.00 µs
φ : マシンクロック
392
φ =32MHz
CLK1
第 16 章 16 ビットフリーランタイマ
16.3
16 ビットフリーランタイマの動作説明
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。
このカウンタ値が , 16 ビットインプットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は , 次の条件でクリアされます。
• オーバフローが発生したとき
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• タイマ停止中に TCDT に "0000H" を書き込んだとき
• リセットをかけたとき
割込みはオーバフローが発生したときに発生します 。
図 16.3-1 にオーバフローによるカウンタクリアを示します。
図 16.3-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
割込み
■ 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェアで行われます。
リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われます。
図 16.3-2 に , 16 ビットフリーランタイマのクリアタイミングを示します。
図 16.3-2 16 ビットフリーランタイマのクリアタイミング
カウンタクリア
カウンタ値
N
0000H
393
第 16 章 16 ビットフリーランタイマ
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ
ステムクロックで同期化した後 , 内部カウントクロックの立下りでカウントされます。
図 16.3-3 に , 16 ビットフリーランタイマのカウントタイミングを示します。
図 16.3-3 16 ビットフリーランタイマのカウントタイミング
φ
外部クロック入力
内部カウントクロック
N
カウンタ値
N+1
<注意事項>
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラグ
セットが優先しクリア動作は無効となります。
• コントロールステータスレジスタの bit 2 ( カウンタ初期ビット :CLR) は "1" が書き込ま
れると , 内部カウンタをクリアするタイミングまで値を保持し , そのタイミングで自身
もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書込みが優先
し , カウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続けます。
• カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有効
となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジスタに
"0000H" を書き込むようにしてください。
394
第 17 章
インプットキャプチャ
インプットキャプチャの機能と動作について説明
します。
17.1 インプットキャプチャの概要
17.2 インプットキャプチャのレジスタ
17.3 インプットキャプチャの動作
395
第 17 章 インプットキャプチャ
17.1
インプットキャプチャの概要
インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま
たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保
持する機能を持っています。また , エッジ検出時に割込みを発生することができま
す。
インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ
スタで構成されています。
■ インプットキャプチャの概要
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
• 外部入力の有効エッジを 3 種類から選択可能です。
- 立上りエッジ
- 立下りエッジ
- 両エッジ
• 外部入力有効エッジを検出したときに割込みを発生することができます。
MB91305 では本インプットキャプチャを 4 チャネル内蔵しています。
■ インプットキャプチャのブロックダイヤグラム
図 17.1-1 インプットキャプチャのブロックダイヤグラム
16ビットタイマカウント値 (T15~T00)
R-bus
キャプチャデータレジスタ
ch0,ch2
ICU0,ICU2
入力端子
エッジ検出
EG11
EG10
EG01
EG00
EG31
EG30
EG21
EG20
16ビットタイマカウント値 (T15~T00)
キャプチャデータレジスタ
ch1,ch3
エッジ検出
ICP1
ICP0
ICE1
ICE0
ICP3
ICP2
ICE3
ICE2
ICU1,ICU3
入力端子
割込み
割込み
396
第 17 章 インプットキャプチャ
インプットキャプチャのレジスタ
17.2
インプットキャプチャには次の 2 つのレジスタがあります。
• インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
• インプットキャプチャコントロールレジスタ (ICS01, ICS23)
以下に , これらのレジスタについて説明します。
■ インプットキャプチャのレジスタ一覧
図 17.2-1 インプットキャプチャのレジスタ一覧
15
14
13
12
11
10
9
CP15
CP14
CP13
CP12
CP11
CP10
CP09
7
6
5
4
3
2
1
CP07
CP06
CP05
CP04
CP03
CP02
CP01
7
6
5
4
3
2
1
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
7
6
5
4
3
2
1
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
8
インプットキャプチャ
CP08 データレジスタ 上位 (IPCP)
0
インプットキャプチャ
CP00 データレジスタ 下位 (IPCP)
0
キャプチャコントロール
EG20 レジスタ (ICS23)
0
キャプチャコントロール
EG00 レジスタ (ICS01)
■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16
ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。
インプットキャプチャデータレジスタのビット構成は , 以下のとおりです。
図 17.2-2 インプットキャプチャデータ (IPCP0 ∼ IPCP3) レジスタのビット構成
IPCP0 ∼ IPCP3
15
CP15
アドレス : 0000FAH
R
0000F8H
0000FEH
7
0000FCH
CP07
R
14
13
12
11
10
9
8
CP14
R
CP13
R
CP12
R
CP11
R
CP10
R
CP09
R
CP08
R
6
5
4
3
2
1
0
CP06
R
CP05
R
CP04
R
CP03
R
CP02
R
CP01
R
CP00
R
初期値
XXXXXXXXB
XXXXXXXXB
このレジスタは 16 ビットデータまたは 32 ビットデータでアクセスしてください。書
込みはできません。
397
第 17 章 インプットキャプチャ
■ インプットキャプチャコントロールレジスタ (ICS01, ICS23)
インプットキャプチャコントロールレジスタは , インプットキャプチャの割込みや
エッジ検出を制御するために使用されます。
インプットキャプチャコントロールレジスタのビット構成は , 以下のとおりです。
図 17.2-3 インプットキャプチャコントロールレジスタ (ICS01, ICS23) のビット構成
ICS23
7
アドレス : 000101H
ICS01
アドレス : 000103H
6
5
4
3
2
1
0
初期値
00000000B
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00000000B
[bit 7, bit 6] ICP3 ∼ ICP0:割込みフラグ
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ
トされていると , 有効エッジを検出することにより割込みを発生することができま
す。本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。
リードモディファイライト (RMW) 系命令における読出し時は , "1" が読めます。
ICPn
インプットキャプチャ割込みフラグ
0
有効エッジ検出なし [ 初期値 ]
1
有効エッジ検出あり
ICPn: n の番号がインプットキャプチャのチャネル番号に対応します (n:0 ∼ 3)。
[bit 5, bit 4] ICE3 ∼ ICE0:割込み許可ビット
インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき , 割込みフラ
グ (ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが
発生します。
ICEn
インプットキャプチャ割込み指定
0
割込み禁止 [ 初期値 ]
1
割込み許可
ICEn: n の番号がインプットキャプチャのチャネル番号に対応します (n:0 ∼ 3)。
398
第 17 章 インプットキャプチャ
[bit 3 ∼ bit 0] : EG31, EG30, EG21, EG20, EG11, EG10, EG01, EG00
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可
も兼用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 ) [ 初期値 ]
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出 ↑ & ↓
EGn1/EGn0 :
エッジ検出極性
n の番号がインプットキャプチャのチャネル番号に対応します
(n:0 ∼ 3)。
399
第 17 章 インプットキャプチャ
17.3
インプットキャプチャの動作
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット
フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生させること
ができます。
■ 16 ビットインプットキャプチャの動作
図 17.3-1 インプットキャプチャの取込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
ICU0
ICU1
ICU2
データレジスタ0
3FFFH
不定
データレジスタ1
BFFFH
不定
データレジスタ2
不定
BFFFH
7FFFH
キャプチャ0割込み
キャプチャ1割込み
キャプチャ2割込み
キャプチャ0 : 立上りエッジ
キャプチャ1 : 立下りエッジ
キャプチャ2 : 両エッジ
再度有効エッジにより割込み発生
ソフトウェアにより割込みクリア
■ 16 ビットインプットキャプチャの入力タイミング
図 17.3-2 インプットキャプチャの入力タイミング
φ
カウンタ値
インプットキャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ値
割込み
400
N+1
第 18 章
USB ファンクション
USB ファンクションの概要 , レジスタの構成と機
能 , 動作および補足事項について説明します。
18.1 USB ファンクションの概要
18.2 USB インタフェースのレジスタ
18.3 USB ファンクションの動作
18.4 補足事項
401
第 18 章 USB ファンクション
18.1
USB ファンクションの概要
本マクロは , プロトコルエンジン部分 , データ転送に必要となる物理エンドポイント
(FIFO), および CPU, DMA I/F などから構成されており , USB ファンクションデバイ
スとしてのプロトコル処理を行います。
■ USB ファンクションの概要
マクロは以下のブロックから構成されます。
● USB プロトコルエンジン
アプリケーション ( ソフトウェア ) 側の負担を軽くするため , 基本的な USB の通信プ
ロトコルを処理します。
<注意事項>
以下の内容についてはアプリケーション側での対応が必要です。
• CLASS / VENDOR REQUEST の処理
• STANDERD REQUEST の SET_DESCRIPTOR / GET_DESCRIPTOR / SYNCH_
FRAME の処理
● エンドポイント用 FIFO
コントロール用
バルク転送用
割込み転送用
IN
8 バイト
OUT
8 バイト
IN
64 バイト× 2( ダブルバッファ )
OUT
64 バイト× 2( ダブルバッファ )
IN
8 バイト
● エンドポイント <- > プロトコルエンジン I/F ( 内部バス I/F) 回路
● レジスタ群
● CPU DMA I/F 回路
CPU I/F :16 ビット
DMA I/F :16 ビット
● 本マクロはセルフパワードデバイスとして動作します。
● 外部バスクロック (CLKT) を 13MHz 以上で使用してください。
402
第 18 章 USB ファンクション
<注意事項>
本マクロのエンドポイント構成を以下に示します。
表 18.1-1 USB ファンクションのエンドポイント構成
ENDPOINT
CONFIGURATION
INTERFACE
ALTERNATE
TRANS TYPE
Max Packet Size
(BYTE)
0
―
―
―
CONTROL
8
1
1
0
0
BULK(OUT)
64
2
1
0
0
BULK(IN)
64
3
1
0
0
INTERRUPT(IN)
8
■ ブロックダイヤグラム
図 18.1-1 ブロックダイヤグラム
USB(D+,D-)
プロトコルエンジン
内部バス (8ビット)
内部バス I/F
コントロール
&
ステータス
レジスタ
エンドポイント用
FIFOs
CPU/DMA インタフェース
CPU(16ビット) / DMA (16ビット) バス
403
第 18 章 USB ファンクション
18.2
USB インタフェースのレジスタ
USB インタフェースで使用するレジスタの構成および機能について説明します。
■ レジスタ表記
図 18.2-1 レジスタ表記
記述例
ビット *1
*
2
*4
15
bit15
14
−
*3
13
12
11
10
9
8
bit13
bit12
bit11
bit10
bit9
bit8
W
−
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
*1: レジスタのビット位置 (15 ∼ 0) を示します。
*2: レジスタのビット名を示します。
*3: レジスタが物理的にないことを示します。
*4: 各ビットの読出し・書込みが可能かどうかを示します。
W:
ライトオンリ
R:
リードオンリ
R/W: リード / ライト可能
*5: リセット (RESET=0) 後の各ビット値を示します。
"X":
不定を示します。
"0":
"0" を示します。
"1":
"1" を示します。
<注意事項>
レジスタは 16 ビット単位でアクセスします。
404
初期値 *5
X-100000B
初期値
00000000B
第 18 章 USB ファンクション
データ送受信用レジスタ ( エンドポイント用 )
18.2.1
これらのレジスタを読み書きすることでエンドポイントのデータを読み書きします。
■ FIFO0o
• 機能
: エンドポイント 0 ( コントロールアウトエンドポイント ) 用 8 バイトシン
グルバッファ FIFO
• アドレス : 00060000H
• ビット構成
図 18.2-2 FIFO0o のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 XXXXXXXXXXXXXXXXB
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
アクセス
<注意事項>
USB 転送データは 1 バイト目 [bit15 ∼ bit8], 2 バイト目 [bit7 ∼ bit0] の順で格納します。
格納するデータが 1 バイトのみの場合は , [bit15 ∼ bit8] に格納します。
■ FIFO0i
• 機能
: エンドポイント 0 ( コントロールインエンドポイント ) 用 8 バイトシング
ルバッファ FIFO
• アドレス : 00060002H
• ビット構成
図 18.2-3 FIFO0i のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 XXXXXXXXXXXXXXXXB
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
アクセス
<注意事項>
USB 転送データは 1 バイト目 [bit15 ∼ bit8], 2 バイト目 [bit7 ∼ bit0] の順で格納します。
格納するデータが 1 バイトのみの場合は , [bit15 ∼ bit8] に格納します。[bit7 ∼ bit0] に格
納したデータは無視されます。
405
第 18 章 USB ファンクション
■ FIFO1
• 機能
: エンドポイント1 (バルクアウトエンドポイント) 用64バイトダブルバッ
ファ FIFO
• アドレス : 00060004H
• ビット構成
図 18.2-4 FIFO1 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 XXXXXXXXXXXXXXXXB
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
アクセス
<注意事項>
• USB 転送データは 1 バイト目 [bit15 ∼ bit8], 2 バイト目 [bit7 ∼ bit0] の順で格納します。
格納するデータが 1 バイトのみの場合は , [bit15 ∼ bit8] に格納します。
• FIFO1 はダブルバッファ (64 バイト× 2) となっています。FIFO の切換えは以下のタ
イミングで起こります。
- USB バス側 :ACK の転送が起きると切り換わります。
- CPU バス側 : レジスタ CONT3 の BFOK1 を "1" にセットすることで切り換わります。
なお , DMA 転送の場合は自動で CONT3 の BFOK1 がセットされます
ので , そのタイミングで切り換わります。
■ FIFO2
• 機能
: エンドポイント 2 ( バルクインエンドポイント ) 用 64 バイトダブルバッ
ファ FIFO
• アドレス : 00060006H
• ビット構成
図 18.2-5 FIFO2 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 XXXXXXXXXXXXXXXXB
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
アクセス
<注意事項>
• USB 転送データは 1 バイト目 [bit15 ∼ bit8], 2 バイト目 [bit7 ∼ bit0] の順で格納します。
格納するデータが 1 バイトのみの場合は , [bit15 ∼ bit8] に格納します。[bit7 ∼ bit0] に
格納したデータは無視されます。
• FIFO2 はダブルバッファ (64 バイト× 2) となっています。FIFO の切換えは以下のタ
イミングで起こります。
• USB バス側 :ACK の転送が起きると切り換わります。
- CPU バス側 : レジスタ CONT3 の BFOK2 を "1" にセットすることで切り換わります。
なお , DMA 転送の場合は自動で CONT3 の BFOK2 がセットされます
ので , そのタイミングで切り換わります。
406
第 18 章 USB ファンクション
■ FIFO3
• 機能
: エンドポイント 3 ( インタラプトインエンドポイント ) 用 8 バイトシング
ルバッファ FIFO
• アドレス : 00060008H
• ビット構成
図 18.2-6 FIFO3 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 XXXXXXXXXXXXXXXXB
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
アクセス
<注意事項>
USB 転送データは 1 バイト目 [bit15 ∼ bit8], 2 バイト目 [bit7 ∼ bit0] の順で格納します。
格納するデータが 1 バイトのみの場合は , [bit15 ∼ bit8] に格納します。[bit7 ∼ bit0] に格
納したデータは無視されます。
407
第 18 章 USB ファンクション
ステータスレジスタ
18.2.2
これらのレジスタを読むことで , 内部のステータスを監視します。
■ ST1
• 機能
: USB 転送の ACK/NACK の監視 , 割込み要因ビット
• アドレス : 00060062H
• ビット構成
図 18.2-7 ST1 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
NACK
NACK
NACK
NACK
NACK
ACK0o ------0000000000B
ACK3
ACK2
ACK1
ACK0i
3
2
1
0i
0o
−
−
−
−
−
−
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-1 ビット解説
名前
極性
機能
ACK0o
ActiveHigh
ENDPOINT0 の OUT 転送において , デバイスが ACK ハンドシェークを
受信したことを示します。
NACK0o
ActiveHigh
ENDPOINT0 の OUT 転送において , デバイスが NACK ハンドシェークを
送信したこと , ストール状態で転送要求を受信したこと , またはパケット
にエラーを検知したことを示します。
ACK0i
ActiveHigh
ENDPOINT0 の IN 転送において , デバイスが ACK ハンドシェークを受
信したことを示します。
NACK0i
ActiveHigh
ENDPOINT0 の IN 転送において , ストール状態で転送要求を受信したこ
と , またはタイムアウトしたことを示します。
ACK3 ∼
ACK1
ActiveHigh
ENDPOINT[n] の転送において , デバイスが ACK ハンドシェークを送受
信したことを示します。
ActiveHigh
OUT 転送用 ENDPOINT[n] の転送において , デバイスが NACK ハンド
シェークを送信したこと, ストール状態で転送要求を受信したこと, また
はパケットにエラーを検知したことを示します。
IN 転送用 ENDPOINT[n] の転送において , ストール状態で転送要求を受
信したこと , またはタイムアウトしたことを示します。
NACK3 ∼
NACK1
408
第 18 章 USB ファンクション
<注意事項>
• 各ビットに対する書込み
通常時
IRQTSTX = 1
テスト時
"1" を書き込むことで "0" にリセットされます。
"0" 書込みは無効です。
"0"/"1" 書込みは有効です。
IRQTSTX = 0
• ACK1, NACK1, ACK2, NACK2はダブルバッファに対応してレジスタを 2 面持っていま
す。ダブルバッファの面が切り換わると同時に ACK1, NACK1, ACK2, NACK2 の面も
切り換わります。アプリケーション側から読出し / 書込みできるレジスタの面は , 読出
し / 書込みできる FIFO の面と同じになります。
■ ST2
• 機能
: 表 18.2-2 を参照
• アドレス : 00060068H
• ビット構成
図 18.2-8 ST2 のビット構成
15
14
13
12
11
10
9
8
7
6
−
−
−
−
−
−
−
−
− DCT6 DCT5 DCT4 DCT3 DCT2 DCT1 DCT0 XXXXXXXX XXX00000B
−
−
−
−
−
−
−
−
−
R
5
R
4
R
3
R
2
R
1
R
0
R
初期値
アクセス
表 18.2-2 ビット解説
名前
DCT6 ∼
DCT0
極性
機能
ActiveHigh
FIFO に対して , USB バス側から読出し / 書込みが行われたデータのバイト
数を示します。
USB 転送が正常に終了し , ACK ハンドシェークを送受信した時点で更新さ
れます。
409
第 18 章 USB ファンクション
■ ST3
• 機能
: 表 18.2-3 を参照
• アドレス : 0006006AH
• ビット構成
図 18.2-9 ST3 のビット構成
15
14
13
12
11
10
9
8
7
STD STD
REQ2 REQ1 −
−
−
−
−
−
−
R/W R/W
−
−
−
−
−
− R/W R/W R/W R/W R/W R/W R/W
−
6
5
4
3
2
1
EP00 CFG SET CF
SOF SUSP
NULL VAL UP END
0
初期値
− XXXXXXXX XXX00000B
アクセス
表 18.2-3 ビット解説
名前
極性
機能
−
−
予約ビットです。書込み可能ですが USB の転送には影響しません。読
出し時は "1" あるいは "0" を示します。
SUSP
ActiveHigh
本デバイスがサスペンドになるとセットされて , サスペンドから抜ける
とリセットされます。
SOF
ActiveHigh
SOF パケットを受信したことを示します。
一度セットされると "0" を書き込むまで保持されます。
CFEND
ActiveHigh
デバイスの初期化が終了したことを示します。マクロをリセットするこ
とでクリアされます。
ActiveHigh
SETUP パケットを受信したことを示します。
マクロが自動応答しないコマンドを受信し , ACK で応答した時点でセッ
トされます。自動応答を行うコマンドに対してはセットされません。
コントロール転送で SETUP パケット以外の OUT 転送のデータを受信し
ACK で応答した時点でリセットされます。
CFGVAL
−
現在のコンフィグレーション値を示します。
マクロは BUS RESET およびセットコンフィグレーション 0 を受信した
場合にデフォルト状態に遷移します。CFGVAL はデフォルト状態では
"0" を示します。
EP0ONULL
ActiveHigh
エンドポイント 0 の OUT 側で長さ "0" のデータパケットを受信したこ
とを示します。
一度セットされると "0" を書き込むまで保持されます。
STDREQ1
ActiveHigh
DREQ1 がアサートしていることを示します。
STDREQ2
ActiveHigh
DREQ2 がアサートしていることを示します。
SETUP
<注意事項>
bit0, bit2 , bit4 および bit6 に対する書込みは , "0" 書込みのみ有効です。
410
第 18 章 USB ファンクション
■ ST4
• 機能
: 表 18.2-4 を参照
• アドレス : 0006006CH
• ビット構成
図 18.2-10 ST4 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
−
−
− FMR10 FMR9 FMR8 FMR7 FMR6 FMR5 FMR4 FMR3 FMR2 FMR1 FMR0 XXXXX000 00000000B
−
−
−
−
−
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-4 ビット解説
名前
極性
FMR10 ∼
FMR0
−
機能
最新の USB 受信フレーム番号を示します。
受信フレーム番号は SOF パケットから抽出します。
411
第 18 章 USB ファンクション
■ ST5
• 機能
: 割込み要因ビット。表 18.2-5 を参照
• アドレス : 0006006EH
• ビット構成
図 18.2-11 ST5 のビット構成
15
14
13
LPEND
−
R/W
−
12
11
10
9
8
7
6
−
SET USBRE
−
CFG SET
−
−
−
−
STST STST STST STST TRCV TTR
XXXX0XXX XX000000B
ALL3 ALL2 ALL1 ALL0 END SEND
−
R/W R/W
−
−
−
−
R/W R/W R/W R/W R/W R/W
−
5
4
3
2
1
0
初期値
アクセス
表 18.2-5 ビット解説
名前
極性
機能
ActiveHigh
BULKIN FIFO からトータル送信バイト数分のデータの送信を終
了したことを示します。
ActiveHigh
BULKOUT FIFO からトータル受信バイト数分のデータの読出し
が終了したことを示します。
STSTALL3 ∼
STSTALL0
ActiveHigh
ENDPOINTn がストール状態であることを示します。ストールが
解除されるとリセットされます。
USBRESET
ActiveHigh
USB BUS RESET が発生したことを示します。
ActiveHigh
セットコンフィグレーションを受信し , ACK を返した場合に
セットされます。
USB BUS RESET が発生するとリセットされます。
ActiveHigh
ループバックが終了したことを示します。
TTRSEND
TRCVEND
SETCFG
LPEND
<注意事項>
• STSTALL を除く各ビットに対する書込み
通常時
IRQTSTX = 1
"1" を書き込むことで "0" にリセットされます。
"0" 書込みは無効です。
テスト時
IRQTSTX = 0
"0"/"1" 書込みは有効です。
• STSTALLがセットされるのと同時に, レジスタST1のNACKビットもセットされます。
• TTRSEND をリセットする場合は CONT10 TTCNTEN=0 としてから "1" を書き込みます。
TRCVEND をリセットする場合は CONT10 TRCNTEN=0 としてから "1" を書き込みます。
412
第 18 章 USB ファンクション
■ RSIZE0
• 機能
: エンドポイント 0 ( コントロールアウトエンドポイント ) の最新転送量
を示します。
• アドレス :00060040H
• ビット構成
図 18.2-12 RSIZE0 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
3
2
1
0
初期値
RSIZE RSIZE RSIZE RSIZE XXXXXXXX XXXX0000
B
03
02
01
00
R
R
R
R
アクセス
表 18.2-6 ビット解説
名前
極性
RSIZE00 ∼
RSIZE03
−
機能
ENDPOINT0 (CONTROL OUT ENDPOINT) の最新転送量を示します。
<注意事項>
RSIZE0 はマクロが ACK を送信した時点で更新されます。
■ RSIZE1
• 機能
: エンドポイント1 (バルクアウトエンドポイント) の最新転送量を示します。
• アドレス : 00060044H
• ビット構成
図 18.2-13 RSIZE1 のビット構成
15
14
13
12
11
10
9
8
7
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
6
5
4
3
2
1
0
初期値
RSIZE RSIZE RSIZE RSIZE RSIZE RSIZE RSIZE
XXXXXXXX X0000000B
16
15
14
13
12
11
10
R
R
R
R
R
R
R
アクセス
表 18.2-7 ビット解説
名前
極性
機能
RSIZE16 ∼
RSIZE10
−
エンドポイント 1 ( バルクアウトエンドポイント ) の最新転送量を示
します。
413
第 18 章 USB ファンクション
<注意事項>
• RSIZE1 レジスタはダブルバッファに対応してレジスタを 2 面持っています。ダブル
バッファの面が切り換わると同時に RSIZE1 の面も切り換わります。アプリケーショ
ン側から読出しできるレジスタの面は , 読出し / 書込みできる FIFO の面と同じになり
ます。
• RSIZE1 はマクロが ACK を送信した時点で更新されます。
414
第 18 章 USB ファンクション
コントロールレジスタ
18.2.3
これらのレジスタを読み書きすることで , デバイスを制御します。
■ CONT1
• 機能
: デバイスの初期化 , デバイスのリジューム設定。表 18.2-8 を参照
• アドレス : 00060022H
• ビット構成
図 18.2-14 CONT1 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
LP
AUTO
IODIS
START
BFOK
−
−
RESUM
−
−
−
−
−
STALL STALL STALL STALL
CFGEN 000XX0XX XXX00000B
3
2
1
0
R/W R/W R/W
−
−
R/W
−
−
−
−
−
R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-8 ビット解説
名前
極性
機能
CFGEN
ActiveHigh
このビットに "1" を書き込むことで , 初期化 (ENDPOINT BUFFER の
設定 ) を行います。"1" をセットすると "0" を書き込むまで保持し
ます。
初期化 (ENDPOINT BUFFER の設定 ) を実行した後は , マクロをリ
セットするまで初期化 (ENDPOINT BUFFER の設定 ) は行えませ
ん。
STALL3 ∼
STALL0
ActiveHigh
ENDPOINT[n] をストール状態にします。
本ビットは自己リセットのレジスタです。
"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
本デバイスがサスペンド (ST3 の SUSP=1) 状態になったときのリ
ジューム要求の設定です (1:リジューム要求設定 ) 。
レジスタ ST3:SUSP=1 の場合に "1" 書込みで有効となります。
本ビットは自己リセットのレジスタです。
"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
"1" をセットすることで , ENDPOINT0 の OUT 側の受信バイト数が
"0" のとき , 自動で ENDPOINT0 の OUT 側 USB 転送を許可します。
このとき , ST1:ACK0O 割込み要因はアサートされません
(CONT3 の BFOK0o ビットを自動で "1" にセットします ) 。
IODIS
ActiveHigh
本ビットを "1" にセットすることで , SUSPEND 信号 ( マクロ出力
信号 ) をアサートします。
SUSPEND 信号は本ビットがセットされたとき , または本デバイス
がサスペンド状態のときアサートされます。
LPSTART
ActiveHigh
本ビットを "1" にセットすることで , ループバックを開始します。
本ビットは自己リセットのレジスタです。ループバック終了後に
自動的に "0" に戻ります。
RESUM
AUTOBFOK
415
第 18 章 USB ファンクション
<注意事項>
• CFGEN に対する書込みは , "1" 書込みのみ有効です。
• STALL0, STALL1, STALL2, STALL3 は STALL をセットしたエンドポイントに転送要
求があり STALL を送信した時点でリセットされます。
• マクロは STALL0 がセットされている場合でも , セットアップを受信すると正常に応
答します。この場合 , セットアップに対して ACK 応答した時点で STALL0 がリセット
されます。
■ CONT2
• 機能
: FIFO の初期化
• アドレス : 00060024H
• ビット構成
図 18.2-15 CONT2 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
−
−
INI3 INI2 INI1 INI0i INI0o XXXXXXXX XXX00000B
−
−
−
−
−
−
−
−
−
−
−
R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-9 ビット解説
名前
INI0o
INI0i
INI1
INI2
INI3
416
極性
機能
ActiveHigh
本ビットを "1" にセットすることで , FIFO0o のアドレスカウンタを初期化します。同
時にレジスタ ST1 の ACK0o, NACK0o, レジスタ RSIZE0 を初期化します。また , 同時に
レジスタ CONT3 の BFOK0o を "1" に設定します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
本ビットを "1" にセットすることで , FIFO0i のアドレスカウンタを初期化します。同時
にレジスタ ST1 の ACK0i, NACK0i, レジスタ CONT10 の LSTD0, ODD0 を初期化しま
す。また , 同時にレジスタ CONT3 の BFOK0i を "0" に設定します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
本ビットを "1" にセットすることで , FIFO1 のアドレスカウンタを初期化します。同時
にダブルバッファの切換えの状態 , レジスタ ST1 の ACK1, NACK1, レジスタ RSIZE1,
レジスタ TRSIZE を初期化します。また , 同時にレジスタ CONT3 の BFOK1 を "1" に設
定します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
本ビットを "1" にセットすることで , FIFO2 のアドレスカウンタを初期化します。同時
にダブルバッファの切換えの状態 , レジスタ ST1 の ACK2, NACK2, レジスタ CONT10
の LSTD2, ODD2, レジスタ TTSIZE を初期化します。また , 同時にレジスタ CONT3 の
BFOK2 を "0" に設定します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
ActiveHigh
本ビットを "1" にセットすることで , FIFO3 のアドレスカウンタを初期化します。レジ
スタ ST1 の ACK3, NACK3, レジスタ CONT10 の LSTD3, ODD3 を初期化します。また ,
同時にレジスタ CONT3 の BFOK3 を "0" に設定します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
第 18 章 USB ファンクション
<注意事項>
• CONT2 に対する書込みは , "1" 書込みのみ有効です。
CONT2 は "1" 書込みの後に自動的に "0" に戻りますので , 通常は常に "0" が読み出され
ます。
• ダブルバッファ( エンドポイント 1, エンドポイント 2) に対応して 2 面構成となるレジ
スタ (ST1, RSIZE1, CONT3, CONT10) のビットは , INI1 あるいは INI2 をセットするこ
とで両面が初期化されます。
• INIn(n;0o, 0i, 1, 2, 3) のセットによって初期化される FIFO およびレジスタは , INIn ビッ
トをセットしてから CPU クロックで 9 サイクル経過するまで読出し / 書込みできませ
ん。
• CONT3 の BFOK の各ビットは , INI の各ビットをセットすると以下の値にセットされ
ます。
IN 転送用エンドポイント
BFOK=0
OUT 転送用エンドポイント BFOK=1
■ CONT3
• 機能
: エンドポイントごとの USB 転送許可の設定
• アドレス : 00060026H
• ビット構成
図 18.2-16
CONT3 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
−
−
BFOK BFOK BFOK BFOK BFOK
XXXXXXXX XXX00000B
3
2
1
0i
0o
−
−
−
−
−
−
−
−
−
−
−
R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-10 ビット解説
名前
極性
機能
BFOK0o
ActiveHigh
ENDPOINT0 の OUT 側の USB 転送を許可します。
BFOK0i
ActiveHigh
ENDPOINT0 の IN 側の USB 転送を許可します。
BFOK3 ∼ BFOK1
ActiveHigh
ENDPOINT[n] の USB 転送を許可します。
417
第 18 章 USB ファンクション
<注意事項>
• ステータスレジスタ ST1 の ACK0o または ACK0i がセットされていると , そのエンド
ポイントに対して BFOK はセットできません。ただし , NACK0o または NACK0i がセッ
トされていても BFOK はセットできます。
デバイスの初期化が終了した時点 ( ステータスレジスタ ST3 の CFEND がセットされ
た時点 ), あるいはコントロールレジスタ CONT2 の INIn がセットされると BFOK は次
の値にセットされます。
IN 転送用エンドポイント
BFOK=0
OUT 転送用エンドポイント BFOK=1
• CONT3 のすべてのビットは "1" 書込みのみ有効です。
CONT3 に "1" をセットした後 , FIFO をビジーにする場合は , CONT4 の FIFO ビジー
ビットと CONT5 の FIFO ビジービットを "0" に設定してください。
• BFOK1, BFOK2( ダブルバッファのエンドポイント ) を "1" にセットすると , ダブルバッ
ファの面が切り換わります。同時にレジスタの面も切り換わります。アプリケーショ
ン側から読出し / 書込みできるレジスタの面は , 読出し / 書込みできる FIFO の面と同
じになります。アプリケーション側からアクセスできるレジスタの面は片面のみです
ので , 裏面になっているレジスタにはアクセスできません。
• BFOK の各ビットは , そのエンドポイントで ACK の転送が起こった時点でリセットさ
れます。
■ CONT4
• 機能
: エンドポイントごとの USB ビジーの設定
• アドレス : 00060028H
• ビット構成
図 18.2-17 CONT4 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
−
−
FIFO FIFO FIFO FIFO FIFO
BUSY BUSY BUSY BUSY BUSY -----------00000B
3
2
1
0i
0o
−
−
−
−
−
−
−
−
−
−
−
R/W R/W R/W R/W R/W
初期値
アクセス
表 18.2-11 ビット解説
名前
極性
FIFOBUSY3 ∼ FIFOBUSY1,
FIFOBUSY0i, FIFOBUSY0o
ActiveLow
機能
ENDPOINT[n] をビジーにします
<注意事項>
• CPU アクセスにより転送を行う場合に , FIFOBUSYn を "0" にすることで ホストから
のトークンに対して常に NACK ハンドシェークを返すことができます。
• DMA により転送を行う場合は常に "0" に設定します。
418
第 18 章 USB ファンクション
■ CONT5
• 機能
: エンドポイントごとの USB ビジーの設定
• アドレス : 0006002AH
• ビット構成
図 18.2-18 CONT5 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
−
−
−
−
−
−
−
−
−
−
−
DFIFO DFIFO
− BUSY2 BUSY1
−
−
−
−
−
−
−
−
−
−
−
−
R/W
R/W
1
0
初期値
−
−
XXXXXXXX XXXX00XXB
−
−
アクセス
表 18.2-12 ビット解説
名前
極性
機能
DFIFOBUSY2,
DFIFOBUSY1
ActiveLow
ENDPOINT[n] をビジーにします
<注意事項>
• DMA により転送を行う場合に , DFIFOBUSYn を "0" にすることでホストからのトーク
ンに対して常に NACK ハンドシェークを返すことができます。
• CPU アクセスにより転送を行う場合は常に "0" に設定します。
• DFIFOBUSYn を "0" にする場合は , MDREQn ビットを "0" に設定することによって
DREQ をマスクしてください。
■ CONT6
• 機能
: エンドポイントごとの DREQ のマスク
• アドレス : 0006002CH
• ビット構成
図 18.2-19 CONT6 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
3
2
MDREQ MDREQ
2
1
R/W
R/W
1
0
初期値
−
−
XXXXXXXX XXXX00XXB
−
−
アクセス
表 18.2-13 ビット解説
名前
極性
機能
MDREQ2, MDREQ1
ActiveLow
ENDPOINT[n] の転送での DREQn のアサートをマスクします。
419
第 18 章 USB ファンクション
■ CONT7
• 機能
: エンドポイントごとの ACK 要因による IRQ のマスク
• アドレス : 0006002EH
• ビット構成
図 18.2-20 CONT7 のビット構成
15
14
13
12
11
10
9
8
7
6
5
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
4
3
2
1
0
初期値
MACK MACK MACK MACK MACK
XXXXXXXX XXX00000B
3
2
1
0i
0o
R/W R/W R/W R/W R/W
アクセス
表 18.2-14 ビット解説
420
名前
極性
機能
MACK0o
ActiveLow
ENDPOINT0 の OUT 側転送での ST1:ACK による IRQ のアサー
トをマスクします。
MACK0i
ActiveLow
ENDPOINT0 の IN 側転送での ST1:ACK による IRQ のアサート
をマスクします。
MACK3 ∼
MACK1
ActiveLow
ENDPOINT[n] の転送での ST1:ACK による IRQ のアサートをマ
スクします。
第 18 章 USB ファンクション
■ CONT8
• 機能
: エンドポイントごとの NACK 要因による IRQ のマスク
• アドレス : 00060030H
• ビット構成
図 18.2-21 CONT8 のビット構成
15
14
13
12
11
10
9
8
7
6
5
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
4
3
2
1
0
初期値
MNACK MNACK MNACK MNACK MNACK
XXXXXXXX XXX00000B
3
2
1
0i
0o
R/W
R/W
R/W
R/W
R/W
アクセス
表 18.2-15 ビット解説
名前
極性
機能
MNACK0o
ActiveLow
ENDPOINT0 の OUT 側転送での ST1:NACK による IRQ のアサート
をマスクします。
MNACK0i
ActiveLow
ENDPOINT0 の IN 側転送での ST1:NACK による IRQ のアサートを
マスクします。
MNACK3 ∼
MNACK1
ActiveLow
ENDPOINT[n] の転送での ST1:NACK による IRQ のアサートをマス
クします。
■ CONT9
• 機能
: エンドポイントごとの STALL 要因による IRQ のマスク ( 表 18.2-16 を参
照)
• アドレス : 00060032H
• ビット構成
図 18.2-22 CONT9 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
MLP
END
−
−
MSET
CFG
−
−
−
−
MUSB
RESET
−
−
−
MSTALL MSTALL MSTALL MSTALL
0XX0XXXX 0XXX0000B
3
2
1
0
R/W
−
−
R/W
−
−
−
−
R/W
−
−
−
R/W R/W R/W R/W
初期値
アクセス
表 18.2-16 ビット解説
名前
極性
機能
MSTALL3 ∼
MSTALL0
ActiveLow
MUSBRESET
ActiveLow
USB BUS RESET による IRQ のアサートをマスクします。
MSETCFG
ActiveLow
SETCFG による IRQ をマスクします。
MLPEND
ActiveLow
LPEND による IRQ のアサートをマスクします。
ENDPOINT[n] の STALL による IRQ のアサートをマスクします。
421
第 18 章 USB ファンクション
■ CONT10
• 機能
: 表 18.2-17 を参照
• アドレス : 00060034H
• ビット構成
図 18.2-23 CONT10 のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
DREQ
NULL NULL NULL DMA
ODD3 ODD2 ODD0
CNT
SET3 SET2 SET0 MODE
−
LSTD LSTD LSTD TRCN TTCN
3
2
0
TEN TEN
−
−
00000000 X00000XXB
R/W R/W R/W R/W R/W R/W R/W R/W
−
R/W R/W R/W R/W R/W
−
−
アクセス
表 18.2-17 ビット解説
名前
極性
TTCNTEN
ActiveHigh
トータル送信バイト数カウンタをイネーブルにします。
TRCNTEN
ActiveHigh
トータル受信バイト数カウンタをイネーブルにします。
LSTD3, LSTD2,
LSTD0
ActiveHigh
エンドポイント n へのラストパケットの書込みを通知します。ラス
トデータの書込み前に設定します。
DMAMODE
−
NULLSET3,
NULLSET2,
NULLSET0
ActiveHigh
ODD3, ODD2,
ODD0
ActiveHigh
DREQCNT
機能
DMA の転送方法を選択します。
1: シングル転送 *1, 0: ブロック転送 *2
Null パケットを自動送信させる場合に "1" にセットします。
−
奇数バイト数のショートパケットの書込みを通知します。
ラストデータの書込み前に設定します。
トータル転送バイト数分のデータの転送が終了した後の DREQ のア
サートを制御します。
1:トータル転送バイト数分のデータの転送が終了した後は, 次のトー
タル転送バイト数の設定を行うまで DREQ はアサートしません。
0:トータル転送バイト数分のデータの転送が終了した後も , DREQ
をアサートします。
*1: FR ファミリではブロック / ステップ転送に該当します。
*2: FR ファミリではデマンド転送に該当します。
422
第 18 章 USB ファンクション
<注意事項>
• LSTD はラストパケット送信後に ACK を受信することによって自動でリセットされま
すので , CPU 側からリセットを行う必要はありません。
• ODD はラストデータ書込み終了後に自動でリセットされますので , CPU 側からリセッ
トを行う必要はありません。
• NULLSET はコントロール転送のデータステージ , Bulk IN 転送インタラプト IN 転送で
有効です。NULLSET を "1" にセットしておくことで , ラストパケットのサイズがマッ
クスパケットサイズだった場合に , ラストパケット送信後の転送要求で自動に Null パ
ケットを送信します。なお , このビットはコントロール転送のステータスステージの 0
バイトのパケットを制御するものではありません。
• LSTD2 はダブルバッファに対応してレジスタを 2 面持っています。ダブルバッファの
面が切り換わると同時に LSTD2 の面も切り換わります。アプリケーション側から読出
し / 書込みできるレジスタの面は , 読出し / 書込みできる FIFO の面と同じになります。
• LSTD2 は記載の動作をしますので , LSTD2 の値が "0" に変化することは , ラストパケッ
ト転送終了を意味するものではありません。
• NULLSET=1 の場合は , NULL パケットの転送が ACK で終了した時点 (ACK を受信し
た時点 ) で ACK による割込みがアサートします。
NULLSET=0 の場合は , ラストパケットの転送が ACK で終了した時点 (ACK を受信し
た時点 ) で ACK による割込みがアサートします。
• DREQCNTビットの値にかかわらず, トータル受信バイト数カウンタTRSIZE分のデー
タの読出しが終了した時点で次の受信データが FIFO に格納されていない場合 DREQ1
はアサートしません。
• LSTD, ODD の各ビットは "1" 書込みのみ有効です。"0" 書込みは無効です。
■ TTSIZE
• 機能
: バルクイントータル送信バイト数の設定およびカウント
• アドレス : 00060036H
• ビット構成
図 18.2-24 TTSIZE のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0001000100010001B
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
アクセス
<注意事項>
• 送信用 FIFO に送信データを書き込むとカウントダウンします。
• TTSIZE カウンタを使用する場合は TTSIZE=0000H 以外の値を設定した後 , CONT10:
TTCNTEN=1 としてから FIFO への書込みアクセスを始めてください。
なお , CONT10:TTCNTEN=1 の場合に TTSIZE=0000H と設定した状態で FIFO への書
込みアクセスは行わないでください。
• TTSIZE は , CONT6 の MDREQ2 を "0" に設定して DREQ2 をマスクした状態で設定し
てください。
423
第 18 章 USB ファンクション
■ TRSIZE
• 機能
: バルクアウトトータル受信バイト数の設定およびカウント
• アドレス : 00060038H
• ビット構成
図 18.2-25 TRSIZE のビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0001000100010001B
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
アクセス
<注意事項>
• 受信用 FIFO から受信データを読み出すとカウントダウンします。
• TRSIZE カウンタを使用する場合は TRSIZE=0000H 以外の値を設定した後 , CONT10:
TRCNTEN=1 としてから FIFO への読出しアクセスを始めてください。
なお , CONT10:TRCNTEN=1 の場合に TRSIZE=0000H と設定した状態で FIFO への読
出しアクセスは行わないでください。
• TRSIZE は , CONT6 の MDREQ1 を "0" に設定して DREQ1 をマスクした状態で設定し
てください。
424
第 18 章 USB ファンクション
■ RESET
USB 動作開始時には同期 RESET を USB クロックで 16 クロック以上入力する必要があ
ります。USB の RESET に関しては , 「第 7 章 外部割込み /NMI 制御部」を参照してく
ださい。
■ レジスタマップ
表 18.2-18 レジスタマップ
アドレス
レジスタ名
00060000H
FIFO0o
00060002H
FIFO0i
00060004H
FIFO1
0006x0006H
FIFO2
00060008H
FIFO3
Reserved
00060022H
CONT1
00060024H
CONT2
00060026H
CONT3
00060028H
CONT4
0006002AH
CONT5
0006002CH
CONT6
0006002EH
CONT7
00060030H
CONT8
00060032H
CONT9
00060034H
CONT10
00060036H
TTSIZE
00060038H
TRSIZE
Reserved
00060040H
RSIZE0
Reserved
00060044H
RSIZE1
Reserved
00060062H
ST1
Reserved
00060068H
ST2
0006006AH
ST3
0006006CH
ST4
0006006EH
ST5
Reserved
0006FFFEH
RESET
425
第 18 章 USB ファンクション
18.3
USB ファンクションの動作
USB ファンクションのデータ転送フローと CPU アクセス動作 , および DMA 動作に
ついて説明します。
■ USB ファンクションの動作
18.3.1 データ転送フロー
18.3.2 CPU アクセス動作説明
18.3.3 DMA 動作説明
18.3.4 割込み要因一覧
18.3.5 エンドポイントバッファの設定
18.3.6 ソフトウェア制御例
426
第 18 章 USB ファンクション
18.3.1
データ転送フロー
USB ファンクションのデータ転送フローについて説明します。
■ コントロール転送の SETUP ステージ ( 一部を除く標準コマンド )
ホストからの標準コマンドのほとんどの場合 , デバイス側 CPU の負荷をなくすために
プロトコルエンジンがすべて自動で処理を行います。デバイス側の CPU は何も処理を
行う必要はありません。また , デバイス側 CPU へ , これらのコマンドを受信したこと
を通知しません。自動処理を行う標準コマンドは下記のとおりです。
• CLEAR_FEATURE
• GET_CONFIGURATION
• GET_INTERFACE
• GET_STATUS
• SET_ADDRESS
• SET_CONFIGURATION
• SET_FEATURE
• SET_INTERFACE
図 18.3-1 コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) のフロー
プロトコル
エンジン *2
CPU I/F
CPUバス
内部バス
*1
USB
内部バス I/F
エンドポイント用
FIFO
コントロール
&
ステータス
レジスタ
*1: USB からコントロール転送のセットアップステージが受信されるとプロトコルエ
ンジンは端子 SETUP をアサートします。
*2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME 以
外のスタンダードコマンドの場合に必要な処理を行うので, エンドポイント用FIFO
にはデータは書き込まれません。
427
第 18 章 USB ファンクション
<注意事項>
• CPU ( アプリケーション ) による処理は必要ありません。
セットアップステージを正常に受信した場合 , USB に ACK ハンドシェークを転送し ,
エラーがあれば何も転送しません ( タイムアウト )。
• SET_CONFIGURATION を受信した場合には , レジスタ ST5 の SECFG がセットされ
ます。
428
第 18 章 USB ファンクション
■ コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一
部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME))
ホストからのクラスコマンド・ベンダコマンドと一部標準コマンド GET_DESCRIPTOR/
SET_DESCRIPTOR/SYNCH_FRAME は , ENDPOINT 0 OUT 転送用 FIFO に書き込まれ
ます。
図 18.3-2 コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一部の
標準コマンド (GET_DESCRIPTOR/SET_DESCRIPTOR/SYNCH_FRAME)) のフロー
エンドポイント用
FIFO
*4
*2
CPUバス
内部バス
プロトコル
エンジン
CPU I/F
内部バス I/F
*1
USB
コントロール
&
ステータス
レジスタ
*3
*1: USB にてコントロール転送のセットアップステージが開始されると , プロトコルエ
ンジンは 端子 SETUP をアサートしてステータスレジスタの SETUP ビットをセッ
トします。
*2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME,
またはクラスコマンドやベンダコマンドを受信した場合, FIFO0oにセットアップス
テージ中のデータを書き込み , 転送量レジスタをカウントアップします。
*3: セットアップステージが正常に終了するとプロトコルエンジンは USB に対して
ACK ハンドシェークを送信します。この時点でステータスレジスタ ST1 の ACK0o
ビットがセットされ , 転送量レジスタの値がステータスレジスタの RSIZE0 にロー
ドされます。また , 端子 IRQ をアサートしてセットアップステージのデータが受信
されたことを外部に知らせます。
エラーなどにより正常に終了しなかった場合は , USB に対しては何も返さないとと
もに受信したデータを破棄しステータスレジスタの NACK0o をセットします。
*4: CPU I/F への読出し動作により FIFO0o から有効データを読み出します。
<注意事項>
アプリケーションにより受信データのコマンドをデコードして処理する必要があります。
429
第 18 章 USB ファンクション
■ コントロール転送の STATUS ステージ ( 一部を除く標準コマンド )
GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME を除く下記の標準コマンド
の場合 , プロトコルエンジンがすべて処理を行い , デバイス内部のステータスレジスタ
に変化はありません。割込み信号 IRQ もアサートされません。
• CLEAR_FEATURE
• GET_CONFIGURATION
• GET_INTERFACE
• GET_STATUS
• SET_ADDRESS
• SET_CONFIGURATION
• SET_FEATURE
• SET_INTERFACE
■ コントロール転送の STATUS ステージ ( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR /
SYNCH_FRAME))
● コントロールライトの場合
プロトコルエンジンが USB へ 0 バイトのデータを転送し , 正常終了するとステータ
スレジスタの ACK0i がセットされ , このとき , 端子 IRQ がアサートされます。
次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0i のリセット )
とコントロールレジスタの BFOK0i のセットをアプリケーションから行う必要があ
ります。
<注意事項>
0 バイトの転送に関してアプリケーションから設定する必要はありません。
● コントロールリードの場合
プロトコルエンジンが USB から 0 バイトのデータを受信します。
<注意事項>
RSIZE0 レジスタが示す受信転送量は 0 バイトです。
転送が正常に終了すると , ステータスレジスタの ACK0o がセットされ , このとき ,
端子 IRQ がアサートされます。
次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0o のリセット )
とコントロールレジスタのBFOK0o のセットをアプリケーションから行う必要があ
ります。
430
第 18 章 USB ファンクション
■ コントロール (DATA ステージ )/Bulk OUT 転送
転送データは ENDPOINT OUT 転送用 FIFO に書き込まれ , Local Bus Interface から読出
しを行います。
図 18.3-3 コントロール (DATA ステージ )/Bulk OUT 転送のフロー
エンドポイント用
FIFO
*4
*2
CPUバス
内部バス
プロトコル
エンジン
CPU I/F
USB
内部バス I/F
*1
コントロール
&
ステータス
レジスタ
*3
*1: USBからOUT方向の転送が開始されると, プロトコルエンジンは転送先ENDPOINT
アドレスを出力し , CRC チェック / ビットストリッピング / シリアル−パラレル変
換などを実行しながら転送データを順次内部バスへ出力します。
*2: 受信されたデータは内部バスを経由し転送先 ENDPOINT 用 FIFO に書き込まれ , 転
送量レジスタがカウントアップされます。
*3: 転送が 1 パケット分正常に終了すると , プロトコルエンジンは USB に対して ACK
ハンドシェークを出力します。この時点でステータスレジスタの ACK ビットがセッ
トされ , 転送量レジスタの値が RSIZE0 レジスタもしくは RSIZE1 レジスタにロード
されます。また , 端子 IRQ をアサートして 1 パケット分の転送が終了したことを外
部に知らせます。転送途中でエラーを検知した場合 , ステータスレジスタの NACK
ビットがセットされ転送が終了します。
*4: CPU I/F よりリード動作で ENDPOINT 用 FIFO から有効データを読み出せます。
<注意事項>
• OUT 方向の転送が開始された時点で , コントロールレジスタの転送先エンドポイント
の BFOK ビットがセットされていない場合は , プロトコルエンジンが USB に対して
NACK ハンドシェークを出力し , 転送が終了します。
• OUT 方向の転送が開始された時点で , コントロールレジスタの転送先エンドポイント
の STALL ビットがセットされている場合は , プロトコルエンジンが USB バスに対し
て STALL ハンドシェークを出力し , 転送が終了します。このとき , ステータスレジス
タ ST1 の NACK ビット , ST5 の STSTALL ビットがセットされます。
431
第 18 章 USB ファンクション
<注意事項>
• CPU 読出しは , DATA0[bit15 ∼ bit0] から 2 バイト単位で読み出します。
エンドポイント用 FIFO
62 ........... 16 14 12
8 6
書込み
63 ........... 17 15 13 11 9 7
FIFO ポインタ 31 ........... 8 7 6 5 4 3
プロトコルエンジン
4
5
2
2
3
1
0
1
0
CPU I/F から
読出し
• バルクアウト転送において , 正常に受信したパケットのデータサイズが 0 バイトの場
合,マクロは割込みを発生しません。
■ コントロール (DATA ステージ )/ バルク / インタラプト IN 転送
エンドポイントイン転送用 FIFO に Local Bus Interface から書き込まれたデータがプロ
トコルエンジンにより USB バスへ転送されます。
図 18.3-4 コントロール (DATA ステージ )/ バルク / インタラプト IN 転送のフロー
エンドポイント用
FIFO
プロトコル
エンジン
*1
CPU I/F
内部バス I/F
USB
*3
コントロール
&
ステータス
レジスタ
CPUバス
内部バス
*4
*2
*1: USB への IN 転送開始前に CPU I/F から書込み動作によりエンドポイント用 FIFO に
データを書き込みます。
*2: コントロールレジスタの転送元エンドポイントの BFOK をセットすることで , 以後
USB から IN 転送の要求がエンドポイントに発生すればこれが処理されます。
*3: プロトコルエンジンは , USB に IN 転送要求があると , エンドポイント用 FIFO から
FIFO に書き込まれたバイト数分のみ転送データを読み出します。
*4: プロトコルエンジンは , エンドポイント用 FIFO から読み出したデータに対してパ
ラレル−シリアル変換 , CRC の生成 , ビットスタッフィングなどを実行したデータ
を USB へ出力します。このとき , 転送が正常に終了すると (ACK ハンドシェークを
受信すると ), ステータスレジスタの ACK ビットをセットします。もし , 転送に失
敗した場合には NACK ビットをセットします。
432
第 18 章 USB ファンクション
<注意事項>
• CPU から DATAI [bit15 ∼ bit0] へ有効データを 2 バイト単位で書き込みます。
エンドポイント用 FIFO
62 ........... 16 14 12 10 8 6
63 ........... 17 15 13 11 9 7
書込み
FIFO ポインタ 31 ........... 8 7 6 5 4 3
CPU I/F から
4
5
2
2
3
1
0 プロトコルエンジン
1
読出し
0
• BFOK をセットする以前にエンドポイントに IN 転送要求があった場合には , ステータ
スレジスタの NACK ビットがセットされて , USB に NACK ハンドシェークを返します。
• IN 転送要求があった時点で , コントロールレジスタの STALL ビットがセットされてい
ると , USB に STALL ハンドシェークを返します。
このとき , ステータスレジスタ ST1 の NACK ビット , ST5 の STSTALL ビットがセッ
トされます。
• 転送に失敗した場合は , FIFO のデータは初期化されません。次の IN 転送要求に対し ,
同じデータを自動的に再送信します。
433
第 18 章 USB ファンクション
18.3.2
CPU アクセス動作説明
USB ファンクションの CPU アクセス動作について説明します。
■ CPU IN 転送
CPU IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , レジスタへ転送許可 BFOK
をセットします。また , マクロはトータルの送信バイト数をカウントする機能を備えて
おり , これを用いることによってラストパケットの送信設定を簡略化できます。このカ
ウンタを動作させずに IN 転送を行うことも可能です。カウンタを用いる場合と用いな
い場合ではラストパケットの送信時の設定に違いがあります。
● トータル送信バイト数カウンタ (16 ビット )
送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと
カウントダウンします。トータル送信バイト数カウンタを用いる場合は , システム側よ
りトータル送信バイト数 TTSIZE を設定します。
なお , トータル送信バイト数カウンタはコントロール転送には適用できません。
● データ送信
エンドポイントバッファに 1 パケット ( 最大値 64 バイト ) のデータを書込み終了後 ,
システム側よりレジスタの転送許可ビット BFOK を書き込むことにより送信が行われ
ます。
● ラストパケット
ラストパケットの送信にはトータル送信バイト数カウンタを用いる場合と用いない場
合で設定に違いがあります。それぞれについて以下に示します。
- トータル送信バイトカウンタを用いる場合
ラストパケットのパケットサイズ * によって以下の動作をします。
•
マックスサイズパケット
パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタ
NULLSET の設定により , Null パケットを自動送信させないことも可能です。
•
偶数バイトショートパケット
パケットの送信は送信許可ビット BFOK を設定した時点で起こります。
•
奇数バイトショートパケット
偶数バイトショートパケットと同様
- トータル送信バイトカウンタを用いない場合
ラストデータ通知をレジスタ LSTD への設定 ( ラストデータ書込み前に設定 ) によっ
て行います。
ラストパケットのパケットサイズ * によって以下の動作をします。
•
マックスサイズパケット
パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタの
NULLSET の設定により , Null パケットを自動送信させないことも可能です。
•
434
偶数バイトショートパケット
パケットの送信は転送許可ビット BFOK を設定した時点で起こります。
第 18 章 USB ファンクション
•
奇数バイトショートパケット
ラストデータの書込みを行う前に , レジスタの奇数バイトパケット通知ビッ
ト ODD を設定します。
パケットの送信は転送許可ビット BFOK を設定した時点で起こります。
*: ラストパケットのパケットサイズ
マックスサイズパケット……… パケットサイズが最大値(64バイト)のパケット
偶数バイトショートパケット… パケットサイズが最大値未満であり , かつその
数が偶数のパケット
奇数バイトショートパケット… パケットサイズが最大値未満であり , かつその
数が奇数のパケット
<注意事項>
NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 ,
NULL パケットが正常に送信終了するまで割込みは発生しません。
NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ
後 , 最後のパケットが正常に送信終了するまで割込みは発生しません。
表 18.3-1 CPU IN 転送時のレジスタ設定対応表
TTSIZE
( レジスタ )
BFOK
( レジスタ )
LSTD
( レジスタ )
ODD
( レジスタ )
−
−
−
−
−
−
−
−
−
−
○
−
偶数サイズバイトパケット
○
−
奇数サイズバイトパケット
○
○
ラストパケット以外
マックスサイズパケット
使用
ラストパケット
偶数サイズバイトパケット
奇数サイズバイトパケット
○
ラストパケット以外
マックスサイズパケット
未使用
ラストパケット
○ : 設定が必要
435
第 18 章 USB ファンクション
■ CPU OUT 転送
CPU OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , レジス
タへ転送許可 BFOK をセットします。また , マクロはトータルの受信バイト数をカウ
ントする機能を備えており , これを用いることによってすべての受信データの読出し
が完了したことを知ることができます。このカウンタを動作させずに OUT 転送を行う
ことも可能です。その場合はトータルの転送が終了したことを知らせる割込みは発生
しません。送信完了時の ACK 割込みを受けて CPU により転送終了を判断する必要が
あります。
● データ受信
エンドポイントバッファに読出し可能データが格納されると, マクロが割込み要求IRQ
を発生します。受信したデータのサイズは受信データサイズレジスタ RSIZE に格納さ
れます。受信データサイズレジスタ RSIZE を読んだ後 , そのサイズ分のデータを読み
出します。エンドポイントからデータを読み出した後 , システム側よりレジスタの転送
許可ビット BFOK を設定します。
● トータル受信バイト数カウンタ (16 ビット )
マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン
タを備えています。
トータル受信バイト数カウンタは , CPU が FIFO に格納された受信データを読み出すこ
とによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定します。
受信データをすべて読み出し , カウント値が "0" になると割込み IRQ が発生します。こ
れによりすべてのデータの読出しが完了したことを知ることができます。
なお , トータル受信バイト数カウンタはバルク転送にのみ適用できます。
<注意事項>
Bulk OUT 転送において , 正常に受信したパケットのデータサイズが 0 バイトの場合 , マ
クロは割込みを発生させません。
436
第 18 章 USB ファンクション
18.3.3
DMA 動作説明
USB ファンクションの DMA 動作について説明します。
• 本マクロの DMA 転送はシングル転送 / ブロック転送に対応します。
• コントロールレジスタ CONT10 の DMAMODE の設定によりシングル転送 / ブ
ロック転送の選択ができます。
• DMA 転送は Bulk IN/OUT 転送で可能です。
• DMA 転送では , 0 バイト以外の転送を行うことが可能です。
■ DMA IN 転送
DMA IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , 自動でレジスタへ転送許可
BFOK がセットされます。また , マクロはトータルの送信バイト数をカウントする機能
を備えており , これを用いることによってラストパケットの送信を自動で行います。
● トータル送信バイト数カウンタ (16 ビット )
送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと
カウントダウンします。トータル送信バイト数カウンタは , システム側よりトータル送
信バイト数 TTSIZE を設定します。
なお , トータル送信バイト数カウンタはコントロール転送 , インタラプト転送には適用
できません。
● データ送信
データ送信は FIFO がフル (64 バイト ) になった時点で自動的に行われます。あるいは ,
ラストパケットの書込みが終了した時点で行われます。ラストパケットの送信ついて
は次に示します。
● ラストパケットの送信
ラストパケットのパケットサイズ * によって以下の動作をします。
• マックスサイズパケット
パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込み終わった時
点で自動的に行われます。パケットの送信が終了後 , Null パケットの自動送信を行
います。レジスタの NULLSET の設定により , Null パケットは自動送信させないこ
とも可能です。
• 偶数バイトショートパケット
パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込み終わった時
点で自動的に行われます。
• 奇数バイトショートパケット
偶数バイトショートパケットと同様です。
*: ラストパケットのパケットサイズ
マックスサイズパケット
: パケットサイズが最大値 (64 バイト ) のパケット
偶数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が
偶数のパケット
奇数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が
奇数のパケット
437
第 18 章 USB ファンクション
<注意事項>
NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 ,
NULL パケットが正常に送信終了するまで次の DREQ は発生しません。
NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ
後 , 最後のパケットが正常に送信終了するまで次の DREQ は発生しません。
■ DMA OUT 転送
DMA OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , マクロ
が自動的にレジスタへ転送許可 BFOK をセットします。また , マクロはトータルの受
信バイト数をカウントする機能を備えており , これを用いることによってすべての受
信データの読出しが完了したことを知ることができます。このカウンタを動作させず
に OUT 転送を行うことも可能です。その場合はトータルの転送が終了したことを知ら
せる割込みは発生しません。マクロ外部で判断する必要があります。
● データ受信
エンドポイントバッファに読出し可能データが格納されると , マクロが DREQ を発生
します。FIFO からデータを読み出し終わると , マクロは自動的に転送許可 BFOK を
セットします。
● トータル受信データバイト数カウンタ (16 ビット )
マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン
タを備えています。
トータル受信バイト数カウンタは , DMAC が FIFO に格納された受信データを読み出す
ことによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定しま
す。受信データをすべて読み出し , カウント値が "0" になると割込み IRQ が発生しま
す。これによりすべてのデータの読出しが完了したことを知ることができます。
なお , トータル受信バイト数カウンタはコントロール転送には適用できません。
<注意事項>
DMA OUT 転送終了後に CPU で Bulk OUT 転送を行う場合は , レジスタ CONT2 の INI1
をセットすることによって , レジスタ ST1 の両面の ACK, NACK 割込み要因ビットを初期
化する必要があります。
438
第 18 章 USB ファンクション
■ DMA シングル転送リード / ライトタイミング
FR ファミリはブロック / ステップ転送に対応します。
図 18.3-5 DMA シングル転送リード / ライトタイミング
・書込み
CPUCLKの速度:13MHz以上
CPUCLK
DREQ2
DACK2
WR
LSTD
ODD_IN
ラストデータ
DATAI[15:0]
有効データ
有効データ
DREQはDACKがアサートされてから
1つ目のCPUCLKの立上りでネゲート
されます。
WRがLowの区間はDACK/DATAIは
変化させないでください。
LSTD, ODDをレジスタで設定する場合には, ラストデータを書き込む
前に, CPUよりレジスタへアクセスして設定してください。この場合,
レジスタ設定後のラストデータ書込みはCPUアクセスで行います。
DATAがFIFOに書き込まれる
タイミングは, WRがLowの区間
に入力される最後のCPUCLK
の立上りです。
・読出し
CPUCLK
CPUCLKの速度:13MHz以上
DREQ1
DACK1
RD
RDはCPUCLKと同期した信号を入力し
てください。
DATAOE
ODD_OUT
DACK1とRDまたはDACK2とWRの入力
タイミングは同時でも問題ありません。
DATAO[15:0]
DREQはDACKがアサートされて
から1つ目のCPUCLKの立上りで
ネゲートされます。
有効データ出力
RDがLowの区間はDACK/DATAIは
変化させないでください。
439
第 18 章 USB ファンクション
■ DMA ブロック転送リード / ライトタイミング
FR ファミリはデマンド転送に対応します。
図 18.3-6 DMA ブロック転送リード / ライトタイミング
・書込み
CPUCLKの速度:13MHz以上
CPUCLK
DREQ2
DACK2
WR
LSTD
ODD_IN
ラストデータ
DATAI[15:0]
有効データ
有効データ
WRがLowの区間はDATAIは
変化させないでください。
DREQは1パケットの書込みの最後のWRがアサートされてから
最初のCPUCLKの立上がでネゲートされます。
LSTD, ODD をレジスタで設定する場合には, ラストデータを書き込む
前に, CPUよりレジスタへアクセスして設定してください。この場合,
レジスタ設定後のラストデータ書込みはCPUアクセスで行います。
WRはCPUCLK 2サイクル以上のディアサート期間が必要です。
DATAがFIFOに書き込まれ
るタイミングは, WRがLow
の区間に入力される最後の
CPUCLKの立上りです。
・読出し
CPUCLK
CPUCLKの速度:13MHz以上
DREQ1
RDはCPUCLK 1サイクル以上のディアサート
期間が必要です。
DACK1
RD
DATAOE
RDがLowの区間はDACKは
変化させないでください。
RDはCPUCLKと同期した信号を入力してくだ
さい。
ODD_OUT
有効データ出力
DATAO[15:0]
DACKnとRDまたはWRの入力タイミングは
同時でも問題ありません。
DREQは1パケットの読出しの最後のRDがアサートされてから
最初のCPUCLKの立上りでネゲートされます。
440
第 18 章 USB ファンクション
18.3.4
割込み要因一覧
表 18.3-2 に , USB ファンクションの割込み要因の一覧を示します。
■ 割込み要因一覧
表 18.3-2 割込み要因一覧
CPU
アクセス
DMA
アクセス
ステータス
ビット
マスクビット
IN 転送時にエンドポイントが書込み
許可状態となる
○
―
レジスタ ST1 を
参照
レジスタ
CONT7 を参照
OUT 転送時にエンドポイントが読出
し許可状態となる
○
―
レジスタ ST1 を
参照
レジスタ
CONT7 を参照
マクロが NACK を送受信
○
○
レジスタ ST1 を
参照
レジスタ
CONT8 を参照
送信用エンドポイントからトータルの
送信データを送信完了
○
○
レジスタ ST5
TTRSEND
―
受信用エンドポイントからトータルの
受信データ読出し完了
○
○
レジスタ ST5
TRCVEND
―
デバイスがストール状態になる
○
○
レジスタ ST5
STALLn
レジスタ
CONT9 を参照
USB バスリセットがかかる
○
○
レジスタ ST5
USBRESET
レジスタ
CONT9 を参照
割込み要因
○ : 割込み IRQ がアサート
441
第 18 章 USB ファンクション
エンドポイントバッファの設定
18.3.5
本マクロのプロトコルエンジンは電源投入時およびリセット後 , エンドポイントに
関する設定をプロトコルエンジン内のエンドポイントバッファに書き込む必要があ
ります。設定はエンドポイントごとに 5 バイト必要であり , 全部で 20 バイトが必要
となります。
■ エンドポイントバッファの設定
図 18.3-7 エンドポイントバッファ設定のフロー
エンドポイント
バッファ
エンドポイントバッファ用
FIFO (FIFO2)
CPU I/F
内部バス I/F
プロトコル
エンジン
(2)
コントロール
&
ステータス
レジスタ
CPUバス
内部バス
(4)
(3)
(5)
■ 設定方法
(1) ハードウェアリセット / ソフトウェアリセットのタイミングに従ってマクロのリ
セットを解除します。
(2) FIFO2 に 20 バイトのデータを CPU から書き込みます。
20 バイトの内容は「■ 設定内容」を参照してください。
(3) (2)が完了した後, コントロールレジスタCONT1のCFGENビットをセットします。
(4) (3) をトリガにして , プロトコルエンジンが 20 バイトのデータを FIFO2 から自動的
に読み出します , これにより , プロトコルエンジン内のエンドポイントバッファが
設定されます。
(5) 設定が完了するとステータスレジスタ ST3 の CFEND ビットがセットされます。
<注意事項>
(3) の CFGEN ビットをセットしてから (5) の CFEND ビットがセットされるまでには
約 3.4 µs の時間がかかります。
442
第 18 章 USB ファンクション
■ 設定内容
以下のデータをデバイスの初期化のため , FIFO2 に CPU から書き込みます。
データの書込み順序は下の表において 1 行目を先頭に以下 2 行目 , 3 行目 , .., 10 行目の
順です。
各行の MSB は左側のビットです。
表 18.3-3 エンドポイントバッファの設定内容
エンドポイントバッファ設定データ
[15]
[0]
16 進
0000000000000000B
0X0000H
0001000010000000B
0X1080H
0000000000010100B
0X0014H
0010000010000000B
0X2080H
1000000000000001B
0X8001H
0010010000101000B
0X2428H
1000000010000000B
0X8080H
0000001000110100B
0X0234H
0011100000010000B
0X3810H
1000000000000011B
0X8003H
443
第 18 章 USB ファンクション
ソフトウェア制御例
18.3.6
USB ファンクションのソフトウェア制御例を示します。
■ セットアップ制御例
図 18.3-8 セットアップの制御例
セットアップ開始
ハードウェアとソフトウェアの
リセットを解除する
FIFO2に初期化のための設定データ
(ENDPOINT BUFFER
の設定データ) を書込み
コントロールレジスタCONT1
CFGENビットをセット
ステータスレジスタST3の
CFENDビットをリード
CFEND = ”1”
NO
YES
コントロールレジスタCONT2
INI2ビットを“1”にセット
(FIFO2を初期化)
コントロールレジスタ CONT7
MACKnビットを”1”にセット
(マスク解除)
セットアップ終了
< 注意事項 >
Control 転送の SETUP バケットは , 次項の CPU アクセス受信時の制御例の「コントロー
ルレジスタ CONT3 BFOK の転送許可ビットを 1 に設定」までのフローが終了した時点で
受信可能となります。D+ のプルアップ抵抗の接続 / 切断を行うことによって HOST がデ
バイスの接続を検地することを制御している場合は , プルアップ抵抗の接続は CONT3
BFOK0o の転送許可ビットを "1" に設定するフローまで終了した後に行ってください。
444
第 18 章 USB ファンクション
■ CPU アクセス受信時の制御例
図 18.3-9 CPU アクセス受信時の制御例 ( 続く )
受信動作開始
コントロールレジスタTRSIZEに
トータル受信バイト数書込み
コントロールレジスタCONT10の
TRCNTENビットを”1”に設定
トータル受信バイト数カウンタを使用する場合は ,
FIFO よりデータを読み出す前にこれらの設定を行
います。
コントロールレジスタCONT5の
DFIFOBUSYビットを”0”に設定
コントロールレジスタCONT4の
FIFOBUSYビットを”1”に設定
コントロールレジスタCONT3
BFOK (転送許可ビット)を”1”に設定
CONT1 の AUTOBFOK をセットしている場合は , 前
回の ENDPOINT0 の OUT 転送バイト数が 0 バイト
のとき , 自動で BFOK0o は "1" にセットされます。
このとき , ACK0o 割込み要因はアサートされません。
①
< 注意事項 >
Control 転送の SETUP パケットの受信は , その他のパケットの受信と同様に
CONT3BFOK0o の転送許可ビットを "1" に設定するフローまで終了した時点で可能とな
ります。
445
第 18 章 USB ファンクション
図 18.3-9 CPU アクセス受信時の制御例 ( 続き )
1
割込み発生
IRQ アサート
NO
YES
ステータスレジスタ ST1 をリード
NO
ACK0o = “1”
YES
ステータスレジスタ ST3 の
SETUP ビットをリード
NO
SETUP = “1”
YES
ステータスレジスタ RSIZE0 から
ENDPOINT0 の転送量 RSIZE の
読出し
ステータスレジスタ RSIZE0 から
ENDPOINT0 の転送量 RSIZE の
読出し
ステータスレジスタ RSIZEn から
ENDPOINTn の転送量 RSIZE の
読出し
FIFO0o よりデータの読出し
FIFO0o よりデータの読出し
FIFO0n よりデータの読出し
コントロール転送のセットアッ
プステージをデータとして受信。
クラスコマンド / ベンダコマンド
または GET_DESCRIPTOR/
SET_DESCRIPTOR/
SYNCH_FRAME なので , データ
のデコードが必要。
ENDPOINT0 に対するデータ
の転送(コントロール転送の
データステージなど)
BULKOUT 転送のデータ
アプリケーションのデータなどの処理
(必要な場合)
ステータスレジスタ ST1 の
割込み要因ビットをクリア
1 パケット受信完了
446
第 18 章 USB ファンクション
■ CPU アクセス送信時の制御例
図 18.3-10 CPU アクセス送信時の制御例 ( 続く )
送信動作開始
トータル送信バイト数カウンタを
使用する場合は , FIFO にデータを
書き込む前にこれらの設定を行い
ます。
なお , 一度設定を行った後はトー
タルの転送が終了するまで設定の
必要はありません。
コントロールレジスタTTSIZEに
トータル受信バイト数書込み
コントロールレジスタCONT10の
TTCNTENビットを”1”に設定
コントロールレジスタCONT5の
DFIFOBUSYビットを”0”に設定
コントロールレジスタCONT4の
FIFOBUSYビットを”1”に設定
(割込み発生後の処理などで必要な場合)
ステータスレジスタST1の
割込み要因ビットをクリア
書き込むデータがラストデータ *
NO
YES
トータル送信バイト数カウンタ
TTSIZEを用いている *
YES
NO
コントロールレジスタCONT10のLSTDビットをセット
奇数バイト数の
データの書込みである *
NO
YES
コントロールレジスタCONT10のODDビットをセット
送信用FIFOへのデータの書込み
コントロールレジスタCONT3BFOK
(転送許可ビット) を1に設定
②
(パケットの送信を許可)
* : マクロ外部のシステムで判断します。
447
第 18 章 USB ファンクション
図 18.3-10 CPU アクセス送信時の制御例 ( 続き )
②
割込み発生
(IRQアサート)
NO
YES
ステータスレジスタST1をリード
割込み要因
ACK
送信が正常に終了 *
アプリケーションのデータ処理など
(必要な場合)
1パケット送信完了
* : 転送に失敗し NACK を受信した場合は , NACK
ビットがセットされます。この場合 , FIFO の
データは初期化されずに , 次の IN 転送要求に対
して自動で同じデータを再送信します。
448
第 18 章 USB ファンクション
■ ラストパケット送信データの書込み
図 18.3-11 ラストパケット送信データの書込み
ラストパケット
書込み開始
書き込むデータがラストデータ *
NO
YES
トータル送信バイト数カウンタ
TTSIZEを用いている *
YES
送信用FIFOへのデータの書込み
NO
コントロールレジスタCONT10の
LSTDビットをセット
奇数バイト数のデータの
書込みである *
NO
YES
コントロールレジスタCONT10の
ODDビットをセット
送信用FIFOへのラストデータの書込み
ラストパケット
書込み終了
* :マクロ外部のシステムで判断します。
449
第 18 章 USB ファンクション
■ DMA 受信時の制御例
図 18.3-12 DMA 受信時の制御例
受信動作開始
コントロールレジスタTRSIZEに
トータル受信バイト数の書込み
トータル受信バイト数カウンタを使用する場合は ,
FIFO よりデータを読み出す前にこれらの設定を行
います。
コントロールレジスタCONT10の
TRCNTENビットを"1"にセット
コントロールレジスタCONT4の
FIFOBUSYビットを"0"にリセット
コントロールレジスタCONT5の
DFIFOBUSYビットを"1"にセット
コントロールレジスタCONT6の
MDREQビットを"1"にセット
DREQアサート
NO
YES
受信用FIFOより受信データの読出し
(2バイト)
IRQアサート *1
NO
YES
ステータスレジスタST5の
TRCVENDビットの読出し *1
受信動作終了 *2
450
*1 : トータル受信バイト数カウンタを用いない場合
は割込みは発生しません。トータルの転送の終
了はマクロ外部で判断する必要があります。
*2 : DMA OUT 転送終了後に CPU OUT 転送を行う
場合は , レジスタ CONT2 の INI を "1" にセット
することによって , レジスタ ST1 の両面の
ACK, NACK 割込み要因ビットを初期化する必
要があります。
第 18 章 USB ファンクション
■ DMA 送信時の制御例
図 18.3-13 DMA 送信時の制御例 ( 続く )
送信動作開始
コントロールレジスタTTSIZEに
トータル受信バイト数の書込み
トータル送信バイト数カウンタを使用する場合は ,
FIFO にデータを書き込む前にこれらの設定を行い
ます。
コントロールレジスタCONT10の
TTCNTENビットを"1"にセット
コントロールレジスタCONT4の
FIFOBUSYビットを"0"にリセット
コントロールレジスタCONT5の
DFIFOBUSYビットを"1"にセット
コントロールレジスタCONT6の
MDREQビットを"1"にセット
④
DREQアサート
NO
YES
③
451
第 18 章 USB ファンクション
図 18.3-13 DMA 送信時の制御例 ( 続く )
③
書き込むデータがラストデータ *1
NO
YES
トータル送信バイト数
カウンタTTSIZEを用いている *1
YES
NO
⑤
YES
LSTD, ODDを
レジスタで設定する *1
NO
外部入力信号LSTDをアサート *2
奇数バイト数の
データの書込みである *1
NO
YES
外部入力信号ODDをアサート *2
送信用FIFOに送信データを書込み
(2バイト)
IRQアサート *3
NO
④
YES
ステータスレジスタST5の割込み
要因ビットTTRSENDを読出し
送信動作終了
452
*1 : マクロ外部のシステムで判断します。
*2 : 入力タイミングは「18.3.3 DMA 動作説明」の
「DMA シングル転送リード / ライトタイミング
グ」または「DMA ブロック転送リード / ライト
タイミング」を参照してください。
*3 : トータル送信バイト数カウンタを用いない場合
は割込みは発生しません。トータルの転送の終
了はマクロ外部で判断する必要があります。
第 18 章 USB ファンクション
図 18.3-13 DMA 送信時の制御例 ( 続き )
⑤
コントロールレジスタCONT6の
MDREQを”0”にリセット
ステータスレジスタST1の
ACKを”0”にリセット
コントロールレジスタCONT10の
LSTDビットをセット
奇数バイト数の
データの書込みである *1
NO
YES
コントロールレジスタCONT10の
ODDビットをセット
CPUにより送信用FIFOに
送信データを書込み(2バイト)
コントロールレジスタCONT7の
MACKビットを”1”にセット
マックスパケットサイズの
転送である *1
YES
NO
NO
コントロールレジスタCONT3の
BFOKビットを”1”にセット *4
IRQアサート *3
YES
ステータスレジスタST1の
ACKビットをリセット
送信動作終了
*1 : マクロ外部のシステムで判断します。
*2 : 入力タイミングは「18.3.3 DMA 動作説明」の
「DMA リード / ライトタイミング」を参照して
ください。
*3 : USB の転送が開始され , ラストパケットの ACK
によって割込みが発生します。
*4 : この場合の BFOK の設定は , ライトイネーブル
信号 WR のアサート期間を CPUCLK の 3 サイ
クル未満としてください。
453
第 18 章 USB ファンクション
図 18.3-14 ラストパケット送信データの書込み
ラストパケット
書 込み開始
書き込むデータがラストデータ *
YES
NO
送信用FIFOへのデータの書込み
トータル送信バイト数カウンタ
TTSIZEを用いる
送信用FIFOへのラストデータの書込み
ラストパケット
書込み終了
454
* :マクロ外部のシステムで判断します。
第 18 章 USB ファンクション
18.4
補足事項
USB ファンクションコントローラマクロの使用上の補足事項を記述します。
■ 補足事項
18.4.1 ダブルバッファ
18.4.2 ボード上の D+ 終端抵抗制御について
18.4.3 USB 標準要求コマンドに対するマクロの自動応答内容
18.4.4 デフォルト状態での USB マクロの動作
18.4.5 サスペンド時の USB クロック制御
18.4.6 USB コネクタの接続 / 未接続の検知
18.4.7 UCLK48 の精度
18.4.8 コントロール転送時の転送許可 BFOK の設定
18.4.9 コントロール転送における注意点
18.4.10 USB バスリセット後のマクロの状態
455
第 18 章 USB ファンクション
18.4.1
ダブルバッファ
• 本マクロは , バルク転送用エンドポイントにダブルバッファ(64 バイト× 2) を有し
ています。
• IN転送時, USBデータ送信中に, システム側より次パケットデータを送信FIFOに書
き込むことができます。
• OUT 転送時 , システム側よりデータ読出し中に , 次パケットの受信を行うことがで
きます。
• ダブルバッファの切換えはパケット単位で行います。
■ Bulk IN 転送 (CPU 書込み /USB 読出し ) タイミングチャート
図 18.4-1 に Bulk IN 転送時のダブルバッファのタイミングチャートおよび動作図を示
します。
タイミングチャート中の IRQ は , コントロールレジスタ CONT8:MNACK の設定により
NACK でアサートしない場合について示しています。
図 18.4-1 の説明を以下に示します。
(1) CPU より送信用 FIFO(a) にデータを書き込みます。
(2) FIFO(a) がフル (64 バイト ) の状態になり転送許可 BFOK をセットすると , USB 側
から送信が始まります。これと同時に CPU には FIFO(b) が見えることになり , 次
の送信用データを書き込むことができます。
(3) FIFO(b) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU
には FIFO(a) が見えることになりますが , FIFO(a) の USB 送信が終了していないの
で CPU 側の書込みはできません。
FIFO(a) の送信が終了しエラーがなければ ACK(ACK1) が返ってきます。
(4) ACK(ACK1) が返ると FIFO(a) は書込み許可の状態となります。CPU 側から次の
データを書き込みます。また , USB 側からは FIFO(b) が見えることになります。
FIFO(b) には送信許可状態のデータがすでにあるので , USB 側は送信を始めます。
(5) FIFO(a) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU
には FIFO(b) が見えることになりますが , FIFO(b) の USB 送信が終了していないの
で CPU 側の書込みはできません。
FIFO(b) の送信が終了しエラーがあると NACK が返ってきます。
(6) NACK が返ると USB 側は FIFO(b) のデータの再送信を始めます。
CPU 側は FIFO(b)
の USB 送信が終了していないので書込みはできません。
FIFO(b) の送信が終了しエラーがなければ ACK(ACK2) が返ってきます。
(7) ACK(ACK2) が返ると FIFO(b) は書込み許可の状態となりますが , ラストパケット
の送信終了まで割込みは発生しません。
456
第 18 章 USB ファンクション
図 18.4-1 Bulk IN 転送 (CPU 書込み /USB 読出し ) タイミングチャート
FIFO (a)
CPU 書込み
(1)
FIFO (b)
PACKET N
PACKET N+1
USB 読出し
CPU 書込み
(2)
ACK1
CPU 書込み
PACKET N+1
USB 読出し
(5)
USB 読出し
(3)(4)
LAST PACKET
(6) (7)
USB 読出し
NACK1
ACK2
*
IRQ
*: ラストデータ書込み後はラストパケット送信終了まで割込みは発生しません。
なお, ラストパケットの送信終了は, レジスタCONT10のLSTD2のポーリングでは
判断できませんので, 割込みによって判断してください。
USB バス側
CPU バス側
(1)
FIFO (a)
PACKET N
送信不可
FIFO (b)
送信可能
(2)
FIFO (a)
PACKET N+1
PACKET N
FIFO (b)
(3)
書込み不可
FIFO (a)
FIFO (b)
ACK1
書込み可能
(4)
FIFO (a)
LAST PACKET
FIFO (b)
(5)
書込み不可
PACKET N + 1
FIFO (a)
FIFO (b)
PACKET N + 1
NACK
(6)
書込み不可
FIFO (a)
FIFO (b)
(7)
PACKET N + 1
ACK2
: データを表します。
457
第 18 章 USB ファンクション
■ Bulk OUT 転送 (CPU 読出し /USB 書込み ) タイミングチャート
図 18.4-2 に Bulk OUT 転送時のダブルバッファのタイミングチャートおよび動作図を
示します。
タイミングチャート中の IRQ は , コントロールレジスタ CONT8:MNACK の設定により
NACK でアサートしない場合について示しています。
図 18.4-2 の説明を以下に示します。
(1) USB 側より FIFO(a) に受信データが書き込まれます。
FIFO(a) に 1 パケット分の受信データが格納され , エラーがなければマクロが
ACK(ACK1) を返します。
(2) ACK(ACK1) を返すと , FIFO(a) は読出し可能となり , CPU 側より読出しを始めま
す。また , USB 側には FIFO(b) が見えることになり , FIFO(b) に次のパケットの受
信を始めます。
(3) CPU 側から FIFO(a) のデータの読出しを終了した時点で , 転送許可 BFOK をセッ
トします。CPU 側には FIFO(b) が見えることになりますが , USB 側の書込みが終
了していないので読出しはできません。
FIFO(b) に 1 パケット分の受信データが格納され , エラーがあるとマクロが NACK
を返します。
(4) NACK を返すと FIFO(b) には再受信が始まります。CPU 側からは読出しはできま
せん。
FIFO(b) に 1 パケット分の受信データが格納され , エラーがなければマクロが
ACK(ACK2) を返します。
(5) ACK(ACK2) を返すと , FIFO(b) は読出し可能となり , CPU 側より読出しを始めま
す。また , USB 側には FIFO(a) が見えることになり , FIFO(a) に次のパケットの受
信を始めます。
458
第 18 章 USB ファンクション
図 18.4-2 Bulk OUT 転送 (CPU 読出し /USB 書込み ) タイミングチャート
PACKET N
FIFO (a)
PACKET N+1
USB 書込み
(1)
PACKET N+2
PACKET N+1
CPU 読出し
(3)
ACK1
FIFO (b)
USB 書込み
USB 書込み
(2)
(4)
USB 書込み
NACK1
CPU 読出し
(5)
CPU 読出し
ACK2
IRQ
CPU バス側
(1)
読出し不可
USB バス側
FIFO (a)
PACKET N
FIFO (b)
ACK1
読出し可能
(2)
PACKET N
FIFO (a)
PACKET N+1
FIFO (b)
(3)
読出し不可
FIFO (a)
PACKET N+1
FIFO (b)
NACK
(4)
読出し不可
FIFO (a)
PACKET N + 1
FIFO (b)
ACK2
(5)
FIFO (a)
PACKET N+1
PACKET N + 2
FIFO (b)
読出し可能
: データを表します。
459
第 18 章 USB ファンクション
ボード上の D+ 終端抵抗制御について
18.4.2
アプリケーション ( ファームウェア ) の初期化ルーチンにかかる時間を確保する目的
で , ボード上の USB の D+ 信号の終端抵抗を CUT する制御を実施する場合の本マク
ロに関する注意点を説明します。
■ ボード上の D+ 終端抵抗制御
ハブが下流側 USB ポートの接続を感知するのは , ファンクションデバイスの次の状況
が満足されたときです。
• USB が接続されている状態での電源投入
• 電源投入済みで USB に接続
USBの仕様では, ファンクションデバイスはハブがポートの接続を感知してから100ms
以内にトランザクションを受け取ることができる状態になっていなければなりませ
ん。
本マクロは上で説明したハブが USB ポートの接続を感知する条件が成立すると , リ
セット処理に続いてエンドポイントバッファの設定シーケンスが必要です。
ファームウェアが , リセットやエンドポイントバッファの設定を含めた初期化ルーチ
ンに 100ms 以上の時間を必要とする場合には , ボード上の USB の D+ 信号の終端抵抗
を CUT する制御によりポートが接続されてもハブに接続を感知させない方法がありま
す。この場合の本マクロの注意点を以下に示します。
<注意事項>
• エンドポイントバッファの設定は , リセットが解除されてから開始します。
• 終端抵抗を接続する制御はファームウェアのエンドポイントバッファの設定が完了し
てから行います。
電源投入またはUSB接続の瞬間
USBは物理的接続しているが,
ハブの認識は未接続と同じ
USB D+ 終端抵抗制御
1:接続
ソフトウェアリセット
(負論理)
ハードウェアリセット
(負論理)
エンドポイントバッファの設定可能期間
460
ハブがUSBの接続を感知
第 18 章 USB ファンクション
18.4.3
USB 標準要求コマンドに対するマクロの自動応答内容
本マクロは USB 標準要求コマンドに対して , アプリケーション側の負荷を軽くする
ために自動応答処理します。ただし , 以下の USB 標準要求コマンドに対してはアプ
リケーション側での処理が必要です。
SET_DESCRIPTOR / GET_DESCRIPTOR / SYNCH_FRAME の処理
■ USB 標準要求コマンドに対するマクロの自動応答内容
表 18.4-1 に本マクロが自動応答処理する USB 標準要求コマンドとその自動応答内容を
示します。
自動応答内容は USB ファンクション Ver2.0 Full Speed 規格に準拠します。
表 18.4-1 USB 標準要求コマンドとその自動応答内容
自動応答内容
本マクロが自動応答処理する USB 標準要求コマンド
CLEAR_FEATURE
データステージ
ステータス
ステージ
NULLデータ返送
デバイス:DEVICE_REMOTE_WAKEUP
―
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしているエンドポイント番号
―
エンドポイント :ENDPOINT_STALL
本マクロがサポートしていないエンドポイント番号
―
GET_CONFIGURATION
本マクロがサポートしているインタフェース番号
GET_ インタフェース
GET_STATUS
現在のオルタネート値を返 NULLデータ受信
送
―
現在のデバイスの電源の状 NULLデータ受信
態および
REMOTE_WAKEUP 機能の
有効 / 無効を返送
ENDPOINT: 本マクロがサポートしているエンドポ 現在の ENDPOINT_STALL NULLデータ受信
イント番号
の状態を返送
ENDPOINT: 本マクロがサポートしていないエンド STALL 応答
ポイント番号
SET_ADDRESS
SET_CONFIGURATION
SET_FEATURE
SET_INTERFACE
STALL 応答
現在のコンフィグレーショ NULLデータ受信
ン値を返送
本マクロがサポートしていないインタフェース番号 STALL 応答
デバイス
NULLデータ返送
―
―
本マクロがサポートしているコンフィグレーション
番号
―
本マクロがサポートしていないコンフィグレーショ
ン番号
―
デバイス :DEVICE_REMOTE_WAKEUP
―
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしているエンドポイント番号
( エンドポイント 0 を除く )
―
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしていないエンドポイント番号
またはエンドポイント 0
―
本マクロがサポートしているインタフェース番号お
よびオルタネート番号
―
本マクロがサポートしていないインタフェース番号
またはオルタネート番号
―
NULLデータ返送
NULLデータ返送
STALL 応答
NULLデータ返送
NULLデータ返送
STALL 応答
NULLデータ返送
STALL 応答
461
第 18 章 USB ファンクション
18.4.4
デフォルト状態での USB マクロの動作
本 USB マクロはリセット解除後にはデフォルト状態となっています。また , 本 USB
マクロは Configuration=1 によってコンフィグレーション状態に遷移します。
■ デフォルト状態での USB マクロの動作
USB ホストから送信された SET_CONFIGURATION コマンドが Configuration=1 の設定
要求であった場合 , マクロはコンフィグレーション状態に遷移します。
デフォルト状態では , ENDPOINT0 のみが使用できます。その他のエンドポイントは使
用できません。仮に ENDPOINT0 以外のエンドポイントに転送要求が送信された場合 ,
マクロは何も応答せずにタイムアウトとなります。
コンフィグレーション状態では , すべてのエンドポイントが使用できます。
デフォルト状態 , コンフィグレーション状態での ENDPOINT0 ∼ ENDPOINT3 のマクロ
の応答を以下に示します。
表 18.4-2 コンフィグレーション状態でのエンドポイント 0 ∼ 3 のマクロの応答
デフォルト状態
コンフィグレーション状態
ENDPOINT0
使用可能
転送要求が送信されると応答します。
使用可能
転送要求が送信されると応答します。
ENDPOINT1 ∼
ENDPOINT3
使用不可
転送要求が送信されてもタイムアウトし
ます。
使用可能
転送要求が送信されると応答します。
462
第 18 章 USB ファンクション
18.4.5
サスペンド時の USB クロック制御
本 USB マクロはサスペンド状態に移行すると , SUSPEND 信号をアサートします。
また , このとき , レジスタ ST3 の SUSP が "1" にセットされます。
消費電力を抑えるために , 本マクロがサスペンド状態に移行した際 , SUSP ビットに
より USB クロックを停止させることが可能です。
■ SUSPEND 時の USB クロック制御例
サスペンド時の USB クロック制御は , 例えば以下の順序で行われます。
1. マクロが SUSPEND 信号をアサート
2. UCLK48 停止
3. SUSPEND 信号がディアサート
4. UCLK48 を再始動 , USB マクロへ 48MHz のクロックを入力
5. ホストからの転送待機
USB の規格では , SUSPEND から抜けた USB ファンクションは 10ms 以内にホストから
の転送を受け付ける準備ができていなくてはならないという規定があります。
そのため , USB クロックを停止させた場合は , USB マクロが SUSPEND から抜けてか
ら 10ms 以内に安定した USB クロックを入力する必要があります。
463
第 18 章 USB ファンクション
18.4.6
USB コネクタの接続 / 未接続の検知
本 USB マクロには , USB コネクタの接続 / 未接続を検知する機能は実装しておりま
せん。以下の方法で検知してください。
■ USB コネクタの接続 / 未接続の検知
USB ファンクションは USB のコネクタが接続されているか , 切断されているかを D+,
D- の信号からでは判断できません。
USB コネクタの接続 / 未接続は , マクロ外部において V-bus の検知により行う必要があ
ります。
コネクタ接続時
:V-bus=5V
コネクタ未接続時
:V-bus=0V
ボード上で V-bus の変化を検知して , MPU に割込みを発生させるなどの方法が考えら
れます。
コネクタの接続を検出した際は , USB マクロにリセットを行う必要があります。
464
第 18 章 USB ファンクション
18.4.7
UCLK48 の精度
UCLK48 のクロック精度について説明します。
■ UCLK48 の精度
USB Ver1.1 の規格では , D+, D- データ信号について 2 つの規格があります。
UCLK48 へのクロック入力は , 水晶発振モジュールから 48MHz を供給してください。
PLL をご使用になる場合は , 特にクロック精度に注意してください。
● データレート ( 長期的 ) 規格
デバイス装置は(LSIだけではなくて装置として) 2500ppm(±0.25%)の精度が必要です。
USB 規格で 2500ppm の精度が要求されるのは 12MHz に対してですが , USB マクロは
48MHzのクロックエッジの中からデータに同期したクロックエッジを選択して12MHz
のクロックとするため , 48MHz に対して 2500ppm よりも高い精度が必要となります。
このため , UCLK48 には必要条件として 2500ppm よりも高い精度が必要となります。
● 短期的な規格
デバイス装置は(LSIだけではなくて装置として)次のジッタを満たす必要があります。
• 1 回目のクロスポイントまで+ / − 1ns 以内のジッタ
• 2 回目のクロスポイントまで+ / − 2ns 以内のジッタ
毎回 D+, D- 信号が変化することがあるので , 48MHz のクロックの各エッジに対して
+ / − 1ns の精度が必要となります。
465
第 18 章 USB ファンクション
18.4.8
コントロール転送時の転送許可 BFOK の設定
コントロール転送のセットアップステージにおいて , マクロがコマンドを受信し
ACK 応答するためには , レジスタ CONT3 の BFOK0o が "1" にセットされている必
要があります。BFOK0o が "0" の場合はタイムアウトします。これは , マクロが自
動処理するコマンドのセットアップステージにおいても同様です。
■ BFOK の設定
コントロール転送時の BFOK0i, BFOK0o の設定について以下に示します。
マクロが自動処理するリクエストの場合
• セットアップステージ
- ACK 応答させるためには BFOK0o=1 にセットする必要があります。
- BFOK0o=0 の場合はタイムアウトします。
• データステージ
- IN
: 対象のリクエストはありません。
- OUT
:BFOK0o の設定値にかかわらず ACK 応答
• ステータスステージ
- IN
:BFOK0i の設定値にかかわらず ACK 応答
- OUT
:BFOK0o の設定値にかかわらず ACK 応答
マクロが自動処理しないリクエストの場合
• セットアップステージ
ACK 応答させるためには BFOK0o=1 にセットする必要があります。
• データステージ
- IN
:ACK 応答させるためには BFOK0i=1 にセットする必要があります。
- OUT
:ACK 応答させるためには BFOK0o=1 にセットする必要があります。
• ステータスステージ
466
- IN
:ACK 応答させるためには BFOK0i=1 にセットする必要があります。
- OUT
:ACK 応答させるためには BFOK0o=1 にセットする必要があります。
第 18 章 USB ファンクション
18.4.9
コントロール転送における注意点
コントロール転送における注意点を以下に示します。
■ BFOK0o の設定の優先順位
USB の規格では , USB ファンクションはセットアップステージで ACK 応答することの
みが許されています。ACK 応答できない場合はタイムアウトします。
セットアップステージでタイムアウトが 3 回続くと USB ホストはファンクションデバ
イスを切り離します。そのため , セットアップステージでは必ず ACK 応答させること
が望ましい制御となります。
ステータスステージが ACK 応答で終了すると , BFOK0o はリセットされます。次に
セットアップステージで ACK 応答させるためには , セットアップステージが始まる前
に BFOK0o の設定をすることが必要ですので , BFOK0o の設定の優先順位はできるだ
け上位にしてください。
なお , このことはマクロが自動処理しないコマンドの場合に該当します。マクロが自動
処理するコマンドの場合には ACK の転送があっても BFOK0o はリセットされません。
■ GET_DESCRIPTOR コマンドでのデータステージの中断
自動応答ではない GET_DESCRIPTOR コマンドの場合に , 初めにホストが要求してく
る IN 転送データのバイト数未満でも , ホストが途中でデータステージを止めてしまう
ことがあります。そのため , 先に IN 転送用 FIFO へデータを書き込んでおいても , 以下
に示すようにデータをホストがすべて転送しない場合があります。
• セットアップステージ (16 バイト要求 )
↓
• データステージ
CPU から IN 転送用 FIFO へ 8 バイト ( データ A) ライト
ホストから IN 転送要求 ファンクションが 8 バイト送信 ACK 受信
CPU から IN 転送用 FIFO へ 8 バイト ( データ B) ライト
( 注意事項 ) ここでホストがデータステージを止めてしまうことがあります。
↓
• ステータスステージ
OUT 転送で 0 バイト受信
ここで , 既に FIFO に書いてあるデータ B は , 次の IN 転送要求が発生する前に破棄し
FIFO を初期化する必要があります。上記のようにホストが途中でデータを転送するの
を止めたことを知るには , USBRESET による割込みを検出する方法が考えられます。あ
るいは以下のように ACK の割込み要因を見る方法が考えられます。
データステージ
: 割込み要因 ACK0i がセット
ステータスステージ : 割込み要因 ACK0o がセット
(データステージが続いているのであればACK0iがセットされる)
割込み要因が ACK0i から ACK0o に変わったことによって , データステージからステー
タスステージに移ったことが判断できます。
467
第 18 章 USB ファンクション
18.4.10
USB バスリセット後のマクロの状態
USB バスリセット後のマクロの状態について説明します。
■ USB バスリセット後のマクロの状態
USB バスリセットによって , マクロのレジスタの設定値および FIFO の状態はリセット
されません。USB バスリセット後に USB の転送を始めるためには , アプリケーション
によってレジスタおよびFIFOの状態を転送を始める前の初期状態に戻すことが必要で
す。また , ENDPOINT BUFFER の初期設定値も USB バスリセットによって初期化され
ずに初期設定値を保持していますので , ENDPOINT BUFFER の設定は再度行う必要は
ありません。
なお , USB バスリセットによってマクロは USB のデフォルトに遷移します。
468
第 19 章
DMAC(DMA コントローラ )
DMA コントローラ (DMAC) の概要 , レジスタの構
成 / 機能 , および DMA コントローラ (DMAC) の動
作について説明します。
19.1 DMA コントローラ (DMAC) の概要
19.2 DMA コントローラ (DMAC) のレジスタ
19.3 DMA コントローラの動作
19.4 転送要求の設定
19.5 転送シーケンス
19.6 DMA 転送全般
19.7 動作フローチャート
19.8 データパス
19.9 DMA 外部インタフェース
469
第 19 章 DMAC(DMA コントローラ )
19.1
DMA コントローラ (DMAC) の概要
本モジュールは , FR ファミリにて DMA(Direct Memory Access) 転送を実現するた
めのモジュールです。
本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高
速に行うことが可能となり , システムのパフォーマンスを向上させます。
外部転送要求端子には USB ファンクションのエンドポイント 1・2 の DMA 転送要
求がチップ内部で接続されています。
■ ハードウェア構成
本モジュールは , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 32 ビット アドレスレジスタ ( リロード指定可能 : 各チャネル 2 本 )
• 16 ビット 転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 外部転送要求入力端子 DREQ0,DREQ1,DREQ2 (ch0, ch1, ch2 のみ )
• 外部転送要求受付け出力端子 DACK0,DACK1,DACK2 (ch0, ch1, ch2 のみ )
• DMA 終了出力端子 DEOP0,DEOP1,DEOP2 (ch0, ch1, ch2 のみ )
• フライバイ転送 ( メモリ to I/O , I/O to メモリ ) (ch0, ch1, ch2 のみ )
• 2 サイクル転送
■ 主要機能
本モジュールによるデータ転送には主に以下のような機能があります。
• 複数チャネルの独立したデータ転送が可能 (5 チャネル )
- 優先順位 (ch0 > ch1 > ch2 > ch3 > ch4)
- ch0, ch1 間にて順位回転が可能
• DMAC 起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 ch0, ch2 のみ )
- 内蔵周辺要求 ( 割込み要求を共用 : 外部割込みを含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 / バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
( アドレス増減幅は− 255 ∼+ 255 まで指定可能 )
- データの種類バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
470
第 19 章 DMAC(DMA コントローラ )
■ レジスタ一覧
図 19.1-1 レジスタ一覧
ch0 コントロール / ステータスレジスタ A
DMACA0
( ビット ) 31
000200H
ch0 コントロール / ステータスレジスタ B
DMACB0
000204H
ch1 コントロール / ステータスレジスタ A
DMACA1
000208H
ch1 コントロール / ステータスレジスタ B
DMACB1
00020CH
ch2 コントロール / ステータスレジスタ A
DMACA2
000210H
ch2 コントロール / ステータスレジスタ B
DMACB2
000214H
ch3 コントロール / ステータスレジスタ A
DMACA3
000218H
ch3 コントロール / ステータスレジスタ B
DMACB3
00021CH
ch4 コントロール / ステータスレジスタ A
DMACA4
000220H
ch4 コントロール / ステータスレジスタ B
DMACB4
000224H
全体制御レジスタ
DMACR
000240H
ch0 転送元 / 転送先アドレス設定レジスタ
DMASA0
001000H
ch0 転送元 / 転送先アドレス設定レジスタ
DMADA0
001004H
ch1 転送元 / 転送先アドレス設定レジスタ
DMASA1
001008H
ch1 転送元 / 転送先アドレス設定レジスタ
DMADA1
00100CH
ch2 転送元 / 転送先アドレス設定レジスタ
DMASA2
001010H
ch2 転送元 / 転送先アドレス設定レジスタ
DMADA2
001014H
ch3 転送元 / 転送先アドレス設定レジスタ
DMASA3
001018H
ch3 転送元 / 転送先アドレス設定レジスタ
DMADA3
00101CH
ch4 転送元 / 転送先アドレス設定レジスタ
DMASA4
001020H
ch4 転送元 / 転送先アドレス設定レジスタ
DMADA4
001024H
24
23
16
15
08
07
00
471
第 19 章 DMAC(DMA コントローラ )
■ ブロックダイヤグラム
図 19.1-2 DMAC 5 チャネル ブロックダイヤグラム
カウンタ
バッファ
セレクタ
DMA起動要因
ペリフェラル起動要求/停止入力
選択回路
および
要求受付け制御
外部端子起動要求/停止入力
ライトバック
バスコントローラへ
DMA転送要求
DTC 2段レジスタ
DTCR
カウンタ
DSS[2:0]
バッファ
リード
ライト
リード/ライト
制御
優先度回路
ERIE,EDIE
セレクタ
割込みコントローラへ
外部割込みクリア
BLKビット
TYPE.MOD,WS
472
X-bus
DMAコントロール
セレクタ
カウンタバッファ
DDNOビット
DMASA 2段レジスタ
SADM,SASZ[7:0]
SADR
DADM,DASZ[7:0]
DADR
ライトバック
セレクタ
アドレス
カウンタバッファ
アクセス
アドレスカウンタ
バス
コント
ローラへ
バス制御部
DDNO
バス制御部
セレクタ
状態遷移回路
ライトバック
DMADA 2段レジスタ
IRQ[4:0]
MCLREQ
第 19 章 DMAC(DMA コントローラ )
19.2
DMA コントローラ (DMAC) のレジスタ
DMA コントローラ (DMAC) で使用するレジスタの構成 , および機能について説明し
ます。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
「* マーク」は DMAC 転送中に設定すると動作に影響するビットです。このビットの書
換えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH3 ∼ DMAH0 ≠ 0000 または DMACA:PAUS=1
のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。
■ DMAC-ch0 ∼ ch4 コントロール / ステータスレジスタ A[DMACA0 ∼ DMACA4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
図 19.2-1 DMAC-ch0 ∼ ch4 コントロール / ステータスレジスタ A[DMACA0 ∼ DMACA4]
のビット構成
アドレス :
ch0 000200H
ch1 000208H
ch2 000210H
ch3 000218H
ch4 000220H
bit
31
30
29
28
27
15
14
13
25
24
23
IS[4:0]
DENB PAUS STRG
bit
26
12
11
10
22
21
20
19
DDNO[3:0]
9
8
7
6
5
18
17
16
BLK[3:0]
4
3
2
1
0
DTC[15:0]
( 初期値:00000000_0000XXXX_XXXXXXXX_XXXXXXXXB)
473
第 19 章 DMAC(DMA コントローラ )
[bit 31] DENB (Dma ENaBle) :DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま
す。
起動許可されていないチャネルに対して発生した転送要求は , すべて無効となりま
す。
起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな
り , 転送は停止します。
本ビットに "0" をライトすると強制停止しますが , 必ず PAUS ビット [DMACA:bit
30] で DMA を一時停止状態にしてから強制停止 ("0" ライト ) してください。一時
停止しないで強制停止した場合 , DMA は停止しますが転送データは保証されませ
ん。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: bit18 ∼ bit16) で行ってください。
DENB
機能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。
• リード / ライト可能です。
• DMAC 全体制御レジスタ DMACR の bit 15:DMAE ビットにより , 全チャネルの
動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を
維持します。また , 本ビットにより動作が許可されている状態にて前記ビットに
より動作が禁止された場合, 本ビットは"0"となり, 転送は中断します(強制停止)。
[bit 30] PAUS (PAUSe): 一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停
止中は DSS ビットが "1XXB" になります )。
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません (「19.6 DMA 転送全般 ■ 転送要
求の受付けと転送」を参照 )。
PAUS
機能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 動作一時停止
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
474
第 19 章 DMAC(DMA コントローラ )
[bit 29] STRG (Software TRiGger) : 転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操
作は無効となります。
<注意事項>
DMAE ビットの書込みによる起動と STRG ビットによる転送要求が同時の場合 , 転送要
求は有効となり , 転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場
合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しませ
ん。
STRG
機能
0
無効
1
DMA 起動要求
• リセット時 :"0" に初期化されます。
• リード値は常に "0" となります。
• ライト値は "1" のみ有効で , "0" は動作に影響を与えません。
[bit 28 ∼ bit 24] IS4 ∼ IS0 (Input Select)*: 転送要因選択
転送要求の要因を以下のように選択します。STRG ビット機能によるソフトウェア
転送要求は IS=00000B に設定してください。
IS
機能
00000B
ハードウェア (STRG ビットによる DMA 起動 )
00001B
↓
01101B
設定禁止
01110B
外部端子 (DREQ) "H" レベル or ↑エッジ
01111B
外部端子 (DREQ) "L" レベル or ↓エッジ
10000B
UART0 ( 受信完了 )
10001B
UART1 ( 受信完了 )
10010B
UART2 ( 受信完了 )
10011B
UART0 ( 送信完了 )
10100B
UART1 ( 送信完了 )
10101B
UART2 ( 送信完了 )
10110B
設定禁止
475
第 19 章 DMAC(DMA コントローラ )
IS
機能
10111B
設定禁止
11000B
リロードタイマ 0
11001B
リロードタイマ 1
11010B
リロードタイマ 2
11011B
設定禁止
11100B
設定禁止
11111B
設定禁止
11110B
設定禁止
11111B
設定禁止
• リセット時 : "00000B" に初期化されます。
• リード / ライト可能です。
<注意事項>
• 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1XXXXB), 選択した機能は ICR
レジスタで割込みを禁止状態にしてください。
• デマンド転送モードを選択した場合は , IS4 ∼ IS0=01110B, 01111B のみ設定可能です。
ほかの要因での起動は禁止です。
• 外部要求入力は , ch0, ch1, ch2 のみ有効です。ch3, ch4 は外部要求入力の選択はでき
ません。また , レベル検出かエッジ検出かはモード設定により決定されます ( デマンド
転送はレベル , ほかはエッジ検出になります )。
476
第 19 章 DMAC(DMA コントローラ )
[bit 23 ∼ bit 20] DDNO3 ∼ DDNO0 ( ダイレクトアクセスナンバ )*:
内蔵周辺へのフライバイ機能
対応するチャネルで使用する転送先 / 転送元の内蔵周辺を指定します。
表 19.2-1 ダイレクトアクセスナンバ
DDNO
機 能
0000B
設定禁止
0001B
未使用
0010B
未使用
0011B
未使用
0100B
未使用
0101B
未使用
0110B
未使用
0111B
未使用
1000B
未使用
1001B
未使用
1010B
未使用
1011B
未使用
1100B
未使用
1101B
未使用
1110B
未使用
1111B
設定禁止
• リセット時 :"0000B" に初期化されます。
• リード / ライト可能です。
<注意事項>
MB91305 ではこの機能はサポートされません。書込みデータは無視されます。
477
第 19 章 DMAC(DMA コントローラ )
[bit 19 ∼ bit 16] BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。 本ビットに
設定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し
回数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してく
ださい ( デマンド転送時は本レジスタ値は無視されます。サイズ 1 となります )。
BLK
XXXXB
機能
対応チャネルのブロックサイズ指定
• リセット時 : 初期化されません。
• リード / ライト可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• リード時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit 15 ∼ bit 00] DTC15 ∼ DTC00 (Dma Terminal Count register) *:
転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC
XXXXB
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 )。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。よって , DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時 : 初期化されません。
• リード / ライト可能です。DTC のアクセスは , 必ず ハーフワード長またはワード
長にてアクセスしてください。
• リード時の値は , カウント値となります。リロード値のリードはできません。
478
第 19 章 DMAC(DMA コントローラ )
■ DMAC-ch0 ∼ ch4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
図 19.2-2 DMAC-ch0 ∼ ch4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4]
のビット構成
アドレス :
ch0 000204H
ch1 00020CH
ch2 000214H
ch3 00021CH
ch4 000224H
bit
bit
31
30
29
28
TYPE[1:0]
MOD[1:0]
15
13
14
12
27
26
WS[1:0]
11
25
24
23
22
21
SADM DADM DTCR SADR DADR
10
9
8
7
6
SASZ[7:0]
5
20
19
ERIE
EDIE
4
3
18
17
16
DSS[2:0]
2
1
0
DASZ[7:0]
( 初期値:00000000_00000000_00000000_00000000B)
[bit 31, bit 30] TYPE1, TYPE0 (TYPE) *: 転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設
定してリード動作とライト動作を転送回数分繰り返して転
送するモード。転送元 / 転送先ともに全領域 (32 ビットアド
レス ) 指定可能です。
フライバイ転送モード: 転送先アドレス (DMADA) にメモリアドレスを設定するこ
とにより外部←→外部転送を 1 サイクルで行うモードです。
メモリアドレスは必ず外部領域を指定してください。
TYPE
機能
00B
2 サイクル転送 ( 初期値 )
01B
フライバイ : メモリ → I/O 転送
10B
フライバイ : I/O → メモリ転送
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• リード / ライト可能です。
[bit 29, bit 28] MOD1, MOD0 (MODe)* : 転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機能
00B
ブロック / ステップ転送モード ( 初期値 )
01B
バースト転送モード
10B
デマンド転送モード
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• リード / ライト可能です。
479
第 19 章 DMAC(DMA コントローラ )
[bit 27, bit 26] WS1, WS0 (Word Size) : 転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機能
00B
バイト単位で転送 ( 初期値 )
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• リード / ライト可能です。
転送元アドレスカウント
[bit 25] SADM (Source-ADdr. count-Mode select)*:
モード指定
対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMASA) に書き込まれます。よって , DMA 転送が終了されるまで転送
元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
機能
0
転送元アドレスは増加 ( 初期値 )
1
転送元アドレスは減少
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
480
第 19 章 DMAC(DMA コントローラ )
[bit 24] DADM (Destination-ADdr. Count-Mode select) *: 転送先アドレスカウントモー
ド指定
対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMADA) に書き込まれます。よって , DMA 転送が終了されるまで転送
先アドレスレジスタは更新されません。アドレス固定にする場合は , 本ビットを "0"
または "1" に指定してアドレスカウント幅 (SASZ, DASZ) を "0" としてください。
DADM
機能
0
転送先アドレスは増加 ( 初期値 )
1
転送先アドレスは減少
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit 23] DTCR (DTC-reg. Reload)*: 転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG または IS 設定による起動要求 ) 待
ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません )。
DENB=0, または DMAE=0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 DENB ビットはクリアされます。
DTCR
機能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
481
第 19 章 DMAC(DMA コントローラ )
[bit 22] SADR (Source-ADdr.-reg. Reload) *: 転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります )。
SADR
機能
0
転送元アドレスレジスタリロードを禁止 ( 初期値 )
1
転送元アドレスレジスタリロードを許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit 21] DADR (Dest.-ADdr.-reg. Reload)*: 転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit 22:SADR の内容と等価になります。
DADR
機能
0
転送先アドレスレジスタリロードを禁止 ( 初期値 )
1
転送先アドレスレジスタリロードを許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit 20] ERIE (ERror Interrupt Enable)* : エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。 発生したエラーの内容は
DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではな
く , 特定の終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼
DSS0 のビット説明を参照 )。
ERIE
機能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
482
第 19 章 DMAC(DMA コントローラ )
[bit 19] EDIE (EnD Interrupt Enable) *: 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
[bit 18 ∼ bit 16] DSS2 ∼ DSS0 (Dma Stop Status)*: 転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。終了コードの内容は以下のとおりです。
DSS
機能
割込み発生
000B
初期値
なし
X01B
アドレスエラー ( アンダフロー / オーバフロー )
エラー
X10B
転送停止要求
エラー
X11B
正常終了
終了
1XXB
DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど )
なし
転送停止要求は , 周辺回路からの要求と外部端子 DSTP 機能を使用した場合のみ
セットされます。
<注意事項>
「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 :"000B" に初期化されます。
• "000B" を書き込むことにより , クリアされます。
• リード / ライト可能ですが , 本ビットへの書込みは "000B" のみ有効となります。
[bit 15 ∼ bit 8] SASZ7 ∼ SASZ0 (Source Addr count SiZe)*:転送元アドレスカウント
サイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
XXH
機能
転送元アドレスの増減幅を指定 0 ∼ 255
• リセット時 : 初期化されません。
• リード / ライト可能です。
483
第 19 章 DMAC(DMA コントローラ )
[bit 7 ∼ bit 0] DASZ7 ∼ DASZ0 (Des Addr count SiZe) *:転送先アドレスカウント
サイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
XXH
機能
転送先アドレスの増減幅を指定 0 ∼ 255
• リセット時 : 初期化されません。
• リード / ライト可能です。
■ DMAC-ch0 ∼ ch4 転送元 / 転送先アドレス設定レジスタ [DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4]
DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
図 19.2-3 DMAC-ch0 ∼ ch4 転送元 / 転送先アドレス設定レジスタ
[DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4] のビット構成
DMASA
アドレス :
ch0 001000H
ch1 001008H
ch2 001010H
ch3 001018H
ch4 001020H
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMASA[31:16]
bit
15
14
13
12
11
10
9
8
7
DMASA[15:0]
( 初期値:XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
DMADA
アドレス :
ch0 001004H
ch1 00100CH
ch2 001014H
ch3 00101CH
ch4 001024H
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMADA[31:16]
bit
15
14
13
12
11
10
9
8
7
DMADA[15:0]
( 初期値:XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
転送元 / 転送先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成
されています。
[bit 31 ∼ bit 0] DMASA31 ∼ DMASA0 (DMA Source Addr) *: 転送元アドレス設定
転送元アドレスの設定を行います。
484
第 19 章 DMAC(DMA コントローラ )
[bit 31 ∼ bit 0] DMADA31 ∼ DMADA0 (DMA Destination Addr) *: 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに設定に従いアドレスカウントします。DMA
の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は
終了します。よって , DMA 動作中のアドレスカウンタ値を読み出すことはできませ
ん。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア
ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に
自動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには
影響を与えません。
• リセット時 : 初期化されません。
• リード/ライト可能です。本レジスタは, 必ず 32ビットデータ でアクセスしてく
ださい。
• リード時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値のリードはできません。よって , 転送アドレス
をリアルタイムでリードできません。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
485
第 19 章 DMAC(DMA コントローラ )
■ DMAC-ch0 ∼ ch4 DMAC 全体制御レジスタ [DMACR]
DMAC 5 チャネル分全体の動作制御を行うレジスタです。本レジスタは必ず バイト長
でアクセスしてください。
各ビット機能は以下に示すとおりです。
図 19.2-4 DMAC-ch0 ∼ ch4 DMAC 全体制御レジスタ [DMACR] のビット構成
アドレス :
000240H
bit
bit
31
30
29
28
27
26
25
DMAE
-
-
PM01
15
14
13
12
11
10
9
-
-
-
-
-
-
-
24
23
22
21
20
19
18
17
16
-
-
-
-
-
-
-
-
8
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
-
-
DMAH3 ∼ DMAH0
( 初期値:0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
[bit 31] DMAE (DMA Enable) :DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設
定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であっ
たチャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて ,
各チャネルに対して行われる起動操作はすべて無効となります。
本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作
が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対
する起動は行われません。
本ビットに "0" をライトすると強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット
(DMACR: bit27 ∼ bit24) で DMA を一時停止状態にしてから強制停止 ("0" ライト )
してください。一時停止しないで強制停止した場合 , DMA は停止しますが転送デー
タは保証されません。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: bit18 ∼ bit16)
で行ってください。
DMAE
機能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
[bit 28] PM01 (Priority Mode ch0, 1 robin) : チャネル優先度回転
ch0, ch1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機能
0
優先順位固定 (ch0 > ch1)( 初期値 )
1
優先順位回転 (ch1 > ch0)
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
486
第 19 章 DMAC(DMA コントローラ )
[bit 27 ∼ bit 24] DMAH3 ∼ DMAH0(DMA Halt) :DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと
なります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求はすべて有効となり , 本ビットをクリアすることにより転送を
開始します。
DMAH
0000B
0000B 以外
機能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
[bit 30, bit 29, bit 23 ∼ bit 0] (Reserved): 未使用ビットです。
リード値は不定です。
■ その他の機能
MB91305 は , 外部転送用として DACK, DEOP, DREQ の端子がありますが , 汎用ポート
と兼用になっております。そのため , DMA 機能を使用するときはポート機能から DMA
端子機能に切り換える必要があります。
PFR レジスタの設定で切り換えてください。
487
第 19 章 DMAC(DMA コントローラ )
19.3
DMA コントローラの動作
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速に
データ転送を制御する多機能 DMA コントローラです。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された
転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け付
けられるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0])
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数 : ブロックサイズ分×転送回数分
(DMACA:BLK[3:0] × DMACA:DTC[15:0])
● デマンド転送
外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは
連続して転送を行います。
デマンド転送での指定転送回数は設定した転送回数分 (DMACA:DTC[15:0]) となりま
す。ブロックサイズは "1" 固定となりレジスタ値は無視されます。
488
第 19 章 DMAC(DMA コントローラ )
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータを 読み出して転送先レジスタのアドレスへデー
タをライトします。
● フライバイ転送 ( メモリ to I/O)
DMA コントローラの動作は , 読出し動作を 1 つの単位として動作を行います。
フライバイ転送を設定して DMA 転送を行うと DMA はバスコントローラに対しフライ
バイ転送 ( リード ) 要求を出しバスコントローラは外部インタフェースにフライバイ転
送 ( リード ) をさせます。
● フライバイ転送 (I/O to メモリ )
DMA コントローラの動作は , 書込み動作を 1 つの単位として動作を行います。
ほかはフライバイ転送 ( メモリ to I/O) と同等です。
MB91305 でのフライバイ転送のアクセス領域は必ず外部領域でなければいけません。
489
第 19 章 DMAC(DMA コントローラ )
■ 転送アドレス
アドレッシングには以下のようなものがあり , 各チャネル転送元 / 転送先ごとに独立に
設定します。
2 サイクル転送とフライバイ転送でのアドレス設定レジスタ (DMASA, DMADA) の指
定方法は異なります。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けた後 , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック
されます。よって , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ご
とにしか更新されませんので転送中のアドレスをリアルタイムに知ることはできませ
ん。
● フライバイ転送でのアドレスの指定
フライバイ転送では転送先アドレスレジスタ (DMADA) から読み出した値をアドレス
としてアクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定す
るアドレスは必ず外部領域にしてください。
転送要求を受け付けた後 , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMADA) へライトバックされます。
よって , アドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されま
せんので転送中のアドレスをリアルタイムに知ることはできません。
490
第 19 章 DMAC(DMA コントローラ )
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント ( − 1) します。転送
回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止また
は再起動 (1) します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ
れます (DMACB:DSS[2:0]) 。
• 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) → 正常終了
• 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 → エラー
• アドレスエラーの発生 → エラー
• リセットの発生 → リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
491
第 19 章 DMAC(DMA コントローラ )
19.4
転送要求の設定
DMA 転送を起動する転送要求は , 以下の 3 種類があります。 ソフトウェア要求につ
いては , ほかの要求の設定にかかわらず常に使用できます。
■ 外部転送要求端子
チャネルごとに 1 本用意された入力端子への入力により , 転送要求を発生します。
MB91305 では ch0 ∼ ch2 のみ対応しています (DREQ0, DREQ1, DREQ2) 。
この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。
● エッジ検出
転送タイプが ブロック / ステップ / バースト転送のときはエッジ検出が選択されます。
• 立下りエッジ検出 : 転送要因選択レジスタで設定。
DMACA:IS4∼IS0=01110Bのとき
• 立上りエッジ検出 : 転送要因選択レジスタで設定。
DMACA:IS4∼IS0=01111Bのとき
転送タイプが デマンド転送のときはレベル検出が選択されます。
• "H" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS4 ∼ IS0=01110B のとき
• "L" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS4 ∼ IS0=01111B のとき
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS4 ∼ IS0=1XXXXB) 。
外部転送要求とは同時に使用できません。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ )。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。
上記 2 つの転送要求とは独立で , 常に使用できます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対し DMA 転送要求を出力し転送を開始します。
492
第 19 章 DMAC(DMA コントローラ )
19.5
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転
送モードを独立して設定できます(DMACB:TYPE1, TYPE0, MOD1, MOD0の設定)。
■ 転送シーケンスの選択
レジスタの設定により以下のシーケンスが選択可能である。
• バースト 2 サイクル転送
• デマンド 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
• バーストフライバイ転送
• デマンド フライバイ転送
• ブロック / ステップフライバイ転送
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転
送元 / 転送先アドレスは 32 ビット全領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出
要求を選択できます。
表 19.5-1 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
● バースト転送の特長
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を
行います。
転 送 回 数 は ブ ロ ッ ク サ イ ズ 分 × 転 送 回 数 分 に な り ま す。(DMACA:BLK[3:0] ×
DMACA:DTC[15:0])。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中に , より高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック
転送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるま
で復帰しません。
図 19.5-1 外部端子立上りエッジ起動 , ブロック数 =1, 転送回数 =4 のときのバースト転送例
転送要求(↑エッジ)
バス動作
転送回数
CPU
SA
DA
4
SA
DA
3
SA
DA
2
SA
DA
1
CPU
0
転送終了
493
第 19 章 DMAC(DMA コントローラ )
■ バーストフライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ to I/O) またはライト
(I/O to メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 19.5-2 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
■ デマンド転送 2 サイクル転送
転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド
転送シーケンスとなります ( レベル選択は , DMACA:IS[3:0] にて設定します ) 。
● 連続転送の特長
• 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要
求レベルの間は要求をクリアせずに連続して転送を行います。外部入力が変化する
と要求がクリアされ , 転送は転送の境目にて停止します。これを指定転送回数終了
まで繰り返します。
• その他はバースト転送と同等に動作します。
図 19.5-2 外部端子 "H" レベル起動 , ブロック数 =1, 転送回数 =3 のときのデマンド転送例
転送要求("H"レベル)
バス動作
CPU
SA
転送回数
DA
SA
3
DA
2
CPU
SA
DA
1
0
転送終了
表 19.5-3 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
外部領域
→
外部領域
外部領域
→
内蔵 I/O
外部領域
→
内蔵 RAM
内蔵 I/O
→
外部領域
内蔵 RAM
→
外部領域
<注意事項>
• デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。デマンド転送モード時は , DMA 転送を外バスタイミングに合わせているた
め , 必ず外部領域へのアクセスが必要になります。
• デマンド転送時は , 転送元 / 転送先ともに SDRAM 領域はサポートしていませんので設
定禁止です。
494
第 19 章 DMAC(DMA コントローラ )
■ デマンド転送フライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ to I/O) またはライト
(I/O to メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 19.5-4 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は , 転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
表 19.5-5 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
● ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
● ステップ転送の特長
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対し DMA 転送要求を取り下げる )。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中に , より高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止
後に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先
順位は , 転送要求が同時に発生した場合のみ意味を持ちます。
● ブロック転送
ブロックサイズを "1" 以外に設定すると , ブロック転送シーケンスとなります。
● ブロック転送の特長
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ
プ転送と全く同じ動作となります。
図 19.5-3 外部端子立上りエッジ起動 , ブロック数 =2, 転送回数 =2 のときのブロック転送例
転送要求(↑エッジ)
バス動作
ブロック数
転送回数
CPU
SA
DA
SA
2
1
2
DA
CPU
0
SA
DA
2
SA
DA
1
1
転送終了
495
第 19 章 DMAC(DMA コントローラ )
■ ステップ / ブロック転送 2 サイクル転送フライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ to I/O) またはライト
(I/O to メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 19.5-6 指定可能転送アドレス表
496
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
第 19 章 DMAC(DMA コントローラ )
19.6
DMA 転送全般
DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数
( ×データ幅 ) のデータの集合となります。
• 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転
送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま
す。
• 転送中に , より高い優先順位の転送要求が受け付けられた場合 , または転送の一時
停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に
ならないと停止しません。これにより分割・一時停止を希望しないデータブロック
のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ
る原因となります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは
保証されません。
■ リロード動作
本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付
け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな
り , 以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後, 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終
了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後, 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終
了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
転送元 / 転送先レジスタのリロード機能を有効にしただけでは , 指定回数転送終了後の
再起動は行われず , 各アドレスレジスタ値が再設定されるだけとなります。
497
第 19 章 DMAC(DMA コントローラ )
● 動作モードとリロード動作の特殊な例
• 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードはセットされます。
• 転送終了にて , いったん停止し , 再度入力検出から行いたい場合は , リロード指定を
行わないようにしてください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となる
とリロード後 , いったん転送を中断し , あらためて転送要求入力が検出されるまで
転送を行いません。
■ アドレッシングモード
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
指定方法には下記の方法があります。転送シーケンスによって設定してください。
● アドレスレジスタ指定
• 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド
レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく
ださい。
• フライバイ転送モードでは , 転送先アドレス設定レジスタ (DMADA) にはメモリア
ドレスを設定してください。このときの転送元アドレス設定レジスタ (DMASA) の
値は無視されます。
● アドレスレジスタの特長
最大 32 ビット長のレジスタです。32 ビット長の場合 , メモリマップ上の全空間がアク
セス可能です。
● アドレスレジスタの機能
• 毎回アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の
アドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算から選択
します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によります
(DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終
アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<注意事項>
• 32 ビット長フルアドレス計算の結果オーバフロー / アンダフローが発生した場合 , ア
ドレスエラーとして検出され , そのチャネルの転送を中止します ( 終了コードに関する
項目を参照 )。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。
• DMAC により DMAC 自身のレジスタへの転送は行わないでください。
498
第 19 章 DMAC(DMA コントローラ )
■ データの種類など
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下の内から選択します。
• バイト
• ハーフワード
• ワード
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
• ワード………… 実際のアクセスアドレスは下位 2 ビット が "00B" から始まる 4 バ
イトとなります。
• ハーフワード… 実際のアクセスアドレスは下位 1 ビット が "0" から始まる 2 バイ
トとなります。
• バイト………… 実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記の規則に従ってアドレスが修正されてアクセスが行われます。
■ 転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指
定値は転送回数レジスタ (DMACA:DTC) に設定します。
レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
● 転送回数レジスタ群の特長
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" のときに起動すると , 65536 回の転送を行います。
● リロード動作
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知するとと
もに , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
■ CPU 制御
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行
します。
バスコントローラはバス動作の切れ目に内部バス使用権を DMA に明け渡し , DMA 転
送が開始されます。
● DMA 転送と割込み
• DMA 転送中は , 基本的には転送終了まで割込みの受付けは停止します。
• 割込処み理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送終
499
第 19 章 DMAC(DMA コントローラ )
了まで割込み処理動作は停止します。
• 例外として , NMI 要求 , または割込みコントローラにて設定されたホールド抑止レ
ベルより高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロッ
ク ) の境界にてバスコントローラの転送要求を一時取り下げ , 割込み要求がクリア
されるまでは転送を一時停止状態にします。この間 , 転送要求は内部で保持されま
す。割込み要求がクリアされた後に再度 DMAC はバスコントローラの転送要求を
発行してバス使用権を取得し , DMA 転送を再開します。
● DMA 抑止
• FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転
送を中断して該当割込みルーチンへ分岐します。この機能は割込み要求がある限り
有効ですが , 割込み要因をクリアすると抑止機能が働かなくなり , 割込み処理ルー
チン内で DMA 転送を再開します。このため , DMA 転送を中断するレベルの割込み
要因の処理ルーチン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいと
きは , DMA 抑止機能を使用します。DMA 抑止機能は , DMA 全体制御レジスタの
DMAH3 ∼ DMAH0 ビットに "0" 以外の値を書くことで起動し , "0" を書くことで停
止します。
• 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込
み要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このよう
にすると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰す
る前に DMAH3 ∼ DMAH0 ビットの内容を 1 つ減少させます。もし , 多重割込みで
あれば DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないため , 引き続いて
DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH3 ∼ DMAH0 ビッ
トの内容は "0" になるため , その後すぐに DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用できません。
• DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
■ ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用
可能となります。この際の外部ホールド要求と本モジュールによる DMA 転送要求と
の関係は , 以下に示すとおりです。
● 外部ホールド中の DMA 転送要求
DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA
転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。
● DMA 転送中の外部ホールド要求
外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場
合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転
送を再開します。
500
第 19 章 DMAC(DMA コントローラ )
● DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外
部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部
ホールドが解除され次第 , DMA 転送を再開します。
■ 動作開始
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動作
を許可しておく必要があります。
● 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態で行った
起動設定 , および発生した転送要求はすべて無効となります。
● 転送起動
チャネルごとの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起動
されたチャネルに対する転送要求が受け付けられると , 設定されたモードで DMA 転送
動作が開始されます。
● 一時停止状態からの起動
チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態となっていた場合 , 転
送動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場
合は要求を受け付け保持します。一時停止を解除した時点から転送を開始します。
■ 転送要求の受付けと転送
• 起動後から , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
• 外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求
クリア条件を満たすまで DMAC 内部で要求を保持します ( ブロック / ステップ / バー
スト転送で外部端子起動要因を選択したとき )。
• 外部端子起動要因でレベル検出 , または周辺割込み起動を選択した場合は , 転送要
求がクリアされるまで DMAC は転送を続けますが , クリアされたら 1 転送単位で転
送を停止します ( デマンド転送 / 周辺割込み起動 )。
• 周辺割込みはレベル検出扱いとなりますので , 割込みは DMA による割込みクリア
で行うようにしてください。
• 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に
受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル
を決定しています。
■ DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周
辺割込みを選択したときに機能します (IS4 ∼ IS0=1XXXXB のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。つまり IS4 ∼ IS0 で設
定された周辺機能のみクリアされます。
501
第 19 章 DMAC(DMA コントローラ )
● 割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います 「19.7
(
動作フローチャート」を参照 )。
[ ブロック / ステップ転送 ]
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号が発生
します。
[ バースト転送 ]
バースト転送を選択した場合は , 指定転送回数がすべて終了したらクリア信号が発
生します。
[ デマンド転送 ]
デマンド転送では外部端子からの起動要求のみサポートするためクリア信号はで
ません。
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定(各チャネル独立または全チャネル同時に設
定)
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると転送を再開します。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
■ 動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止す
ることも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて『正常終了』を表示した後 , 以降の転送要求は無効となります (DMACA:
DENB ビットをクリアします )。
リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし ,
終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります (DMACA:
DENB ビットをクリアしません ) 。
● 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは
一切発生しません。
502
第 19 章 DMAC(DMA コントローラ )
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発
生による停止および強制停止があります。
● 周辺回路からの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど )。
この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し
て対応するチャネルの転送を停止します。
機能
IS
00000 B
↓
01111 B
ハードウェア
↓
外部端子"L"レベル or ↓エッジ
10000 B
↓
10010 B
10011 B
↓
11111 B
転送停止要求
↑
なし
↓
↓
↑
あり
↓
↓
↑
なし
↓
<注意事項>
各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。
● アドレスエラーの発生
各アドレッシングモードにて , 以下に示すような不適切なアドレッシングが行われた
とき , アドレスエラーとして検出されます (32 ビットアドレス指定時に , アドレスカウ
ンタにてオーバフロー / アンダフローが発生した場合 )。
アドレスエラーを検出すると , 終了コードにて『アドレスエラーの発生』を表示して対
応するチャネルの転送を停止します。
503
第 19 章 DMAC(DMA コントローラ )
■ DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC のチャネルごとに以下の割込みを出力
することが可能です。
• 転送終了割込み : 正常終了した場合のみ発生
• エラー割込み :
周辺回路からの転送停止要求 ( 周辺に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACB の DSS2 ∼ DSS0( 終了コード ) に "000B" を書き込む
ことにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んで
クリアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 )。
1. リセット
2. "000B" 書込みによるクリア
3. 周辺停止要求または外部端子入力 (DSTP) の停止要求
4. 正常終了
5. アドレスエラー検出による停止
6. チャネル選択と制御
■ スリープ中の DMA 転送
MB91305 は , スリープモード中に DMAC を動作させることができません。
■ チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機
能を独立に設定することが可能です。
● チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には, 固定/回転の2モードがありチャネルグループ(後述)ごとに選択します。
(1) 固定モード
チャネル番号の小さい順に固定されます。
(ch0 >ch1 >ch2 >ch3 >ch4)
転送中に , より高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロック
サイズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャ
ネルが高優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
504
第 19 章 DMAC(DMA コントローラ )
図 19.6-1 固定モードでのチャネル間優先順位
ch0 転送要求
ch1 転送要求
バス動作
CPU
SA
転送チャネル
DA
SA
DA
SA
ch0
ch1
DA
SA
DA
CPU
ch1
ch0
ch0 転送終了
ch1 転送終了
(2) 回転モード (ch0, ch1 間のみ )
動作許可後の初期状態は (1) と同じ順位に設定されますが , 1 転送終了ごとにその
チャネルの優先度は逆転します。よって , 同時に転送要求が出力されている場合 , 1
転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 19.6-2 回転モードでのチャネル間優先順位
ch0 転送要求
ch1 転送要求
バス動作
CPU
SA
転送チャネル
DA
ch1
SA
DA
ch0
SA
DA
ch1
SA
DA
CPU
ch0
ch0 転送終了
ch1 転送終了
● チャネルグループ
優先順位の選択は , 以下の単位で設定します。
モード
優先度
備考
固定
ch0 > ch1
−
回転
ch0 > ch1
↑↓
ch0 < ch1
初期状態は上位側の順位です。
上位側が転送されると反転します。
■ 外部端子と内部動作タイミングに関する補足
● DREQ 端子入力の最小有効パルス幅について (MB91305 は ch0, ch1, ch2 のみ )
バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時最小 5 シス
テムクロックサイクル (= 外バスクロック (CLKT) の 5 周期分 ) の幅が必要です。
<注意事項>
DACK 出力は , DREQ 入力の受付けを示すものではありません。DMA 許可状態で転送前
であれば DREQ 入力は常に受け付けられます。そのため , DACK 出力のアサートまで
DREQ 入力を保持する必要はありません ( デマンド転送モードは除く )。
505
第 19 章 DMAC(DMA コントローラ )
● デマンド転送要求を停止するために DREQ 端子を無効にするタイミングについて
(1) 2 サイクル転送時
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定
してください。
• 転送対象が外部→外部の場合
以下のいずれかの方法で,DREQ の取下げのセンスタイミングを , ライトスト
ローブの無効のタイミングより 1 サイクル以上前にしてください。
(1) 外部 I/O あるいは外部グルーロジック側での調整により , DREQ の取下げタ
イミングを 1 サイクル以上前にする。
(2) FRファミリが内蔵する外部バス制御部のオートウェイト機能を使用して,ウェ
イトを現在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ をネゲートした場合 , 次の転送まで行う可能性があります。
• 転送対象が外部→内部の場合
最後の DMA 転送の転送元アクセス時の外部 RD 端子出力が "L" 区間の間にネ
ゲートしてください (DACK="L" & RD="L" の区間 )。これより後に DREQ をネ
ゲートした場合 , 次の転送まで行う可能性があります。
図 19.6-3 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
矢印の範囲内で無効にしてください。 より遅いタイミングで無効にした場合 , 1 回分
多く転送する場合があります。
• 転送対象が内部→外部の場合
以下のいずれかの方法で,DREQ の取下げのセンスタイミングを , ライトスト
ローブの無効のタイミングより 1 サイクル以上前にしてください。
(1) 外部 I/O あるいは外部グルーロジック側での調整により , DREQ の取下げタ
イミングを 1 サイクル以上前にする。
506
第 19 章 DMAC(DMA コントローラ )
(2) FRファミリが内蔵する外部バス制御部のオートウェイト機能を使用して,ウェ
イトを現在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ をネゲートした場合 , 次の転送まで行う可能性があります。
(2) フライバイ転送時
デマンド転送時は , 必ず外部領域のアドレスを転送先に設定してください。
• フライバイ ( リード端子に対するタイミング ) の場合
最後の DMA 転送の IOWR 端子出力が "H" になった後の外部 RD 端子出力が "L"
区間の間にネゲートしてください (DACK="L" & RD="L" の区間 )。これより後に
DREQ をネゲートした場合 , 次の転送まで行う可能性があります。
• フライバイ (IORD 端子に対するタイミング ) の場合
最後の DMA 転送の外部 WR 端子出力が "H" になった後の IORD が "L" 区間の間
にネゲートしてください (DACK="L" & IORD="L" の区間 )。これより後に DREQ
をネゲートした場合 , 次の転送まで行う可能性があります。
図 19.6-4 フライバイ (IORD 端子に対するタイミング ) の場合の DREQ 端子入力の
ネゲートタイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
IORD
矢印の範囲内で無効にしてください。 より遅いタイミングで無効にした場合 , 1 回分
多く転送する場合があります。
507
第 19 章 DMAC(DMA コントローラ )
● 同一チャネルで引き続き転送を行うための DREQ 端子入力のタイミングについて
バースト / ステップ / ブロック / デマンド転送時
DREQ 端子入力によって同一チャネルの転送を連続させることは動作保証できませ
ん。転送終了によって内部に保持した要求をクリアするため , 最速タイミングで
DREQ が再度アサートされたとしても最低でも 1 システムクロックサイクル (CLK
出力の 1 周期分 ) はほかのチャネルの転送要求の検出が有効になっており , その結
果 , ほかのチャネルの優先度が高ければそちらの転送が開始されます。
また , それより以前に DREQ が再度アサートされても , 転送が終了していないので
無視されます。ほかのチャネルの転送要求が発生していない場合であれば , DACK
端子出力がアサートされた時点で DREQ を再度アサートすることにより , 同一チャ
ネルでの転送が再開します。
● DACK 端子出力のタイミングについて
• DMAC の DACK 出力は , 受け付けられた転送要求に対する転送が行われていること
を示します。
• DACK の出力は , 基本的に外部バスアクセスタイミングのアドレス出力に同期して
います。DACK 出力を使用する場合は , ポートで DACK 出力イネーブルにする必要
があります。
● DEOP 端子出力のタイミングについて
• DMA での DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送回数分終
了したことを示すものです。
• DEOP 出力は最終転送ブロックの外部領域アクセスが開始されると出力されます。
そのため , ブロックサイズを "1" 以外に設定 ( ブロック転送モード ) している場合 ,
最終ブロックの最後のデータ転送時に DEOP が出力されます。この場合 , 転送がま
だ行われている間 (DEOP 出力される前 ) でも , DACK 端子出力がアサートされてい
れば , 次の DREQ の受付けは開始されています。
• DEOP の出力は外部バスアクセスタイミングの RD/WR に同期しています。しかし ,
転送元 / 転送先が内部アクセスであった場合 , DEOP は出力されません。DEOP 出
力を使用する場合は , ポートレジスタで DEOP 出力をイネーブルにする必要があり
ます。
● DSTP 端子入力のタイミングについて
• バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時 , 最小 5
システムクロックサイクル (=1/2 θ , CPU 系のクロックの 2 周期分 ) の幅が必要です。
• DSTP の入力タイミングは DREQ と同様に外部アクセスと同期させて使用すること
を推奨します (DACK 出力と RD または WR でデコードした信号を使用してくださ
い )。
• DMA の転送を強制的に停止する場合に使用します。この端子入力を使用すること
で転送を強制的に停止できますが , ステータスレジスタ (DMACB:DSS2 ∼ DSS0) は
「転送停止要求」を示しエラーとして扱われます。割込みを許可していれば割込み
を発生します。
• この機能は DEOP 端子と兼用になっているので両方の機能は使用できません。機能
の切換えはポートレジスタで設定してください。
508
第 19 章 DMAC(DMA コントローラ )
● 転送中に外部端子転送要求が再度入力された場合について
- バースト / ステップ / ブロック転送時
DACK 信号が DMAC 内部でアサートされるまでの間 , 次の転送要求は入力されても
無効となります。しかし , 外部バス制御ユニットと DMAC の動作は完全に同期して
はいないため , DREQ 入力で転送要求を有効にするためには DACK と DEOP 出力に
より DREQ 端子入力を作成する回路を初期化する必要があります。
- デマンド転送時
全転送回数が終了した際に転送回数レジスタのリロードを指定している場合 , 再度
転送要求が受け付けられます。
● ブロック転送中にほかの転送要求が発生した場合について
指定したブロックの転送が終了するまでは , ほかの要求は検出されません。ブロックの
境界にて , その時点で受け付けられている転送要求を評価し , もっとも優先順位の高い
チャネルの転送を行います。
● 外部 I/O −外部メモリ間の転送について
DMAC の転送対象として , 外部 I/O と外部メモリの区別は存在しません。外部 I/O は ,
アドレス固定の外部アドレスとして設定してください。
フライバイ転送を行う場合 , 外部メモリは転送先アドレスレジスタにアドレスを設定
してください。また , 外部 I/O に対しては DACK 出力と RD または WR でデコードし
た信号を使用してください。
● DMAC の交流特性について
DMAC に関連する外部端子は DREQ 端子入力と DACK 端子出力 , DEOP 端子出力があ
りますが , 出力タイミングは外部バスアクセスに同期しています (DMAC の交流規格を
参照 ) 。
509
第 19 章 DMAC(DMA コントローラ )
19.7
動作フローチャート
次の各転送モードにおける動作フローチャートを示します。
• ブロック転送
• バースト転送
• デマンド転送
■ 動作フローチャート
図 19.7-1 ブロック転送
DENB=>0
リロード許可
DMA停止
DENB=1
起動要求待機
起動要求
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数
-1
BLK=0
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
周辺割込み
起動要因選択時のみ
割込み
クリア発生
割込みクリア
DTC=0
DMA転送終了
ブロック転送
・すべての起動要因で起動可能(選択)
・すべての領域へのアクセス可能
・ブロック数の設定可能
・ブロック数終了で割込みクリア発行
・指定転送回数終了でDMA割込みを発行
510
DMA割込み発生
第 19 章 DMAC(DMA コントローラ )
図 19.7-2 バースト転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込みクリア
DMA転送終了
割込みクリア発生
DMA割込み発生
バースト転送
・すべての起動要因で起動可能(選択)
・すべての領域へのアクセス可能
・ブロック数の設定可能
・指定転送回数終了で割込みクリア,DMA割込みを発行
511
第 19 章 DMAC(DMA コントローラ )
図 19.7-3 デマンド転送
DMA停止
DENB=>0
なし
リロード許可
DENB=1
起動要求待機
起動要求あり
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
DTC=0
周辺割込み起動要因選択時のみ
割込みクリア
DMA転送終了
割込みクリア発生
DMA割込み発生
デマンド転送
・外部端子(DREQ)からの要求(レベル検出)のみ受付け。他の要因での起動禁止
・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)
・ブロック数は,設定に関係なく"1"固定になる
・指定転送回数終了で割込みクリア,DMA割込みを発行
512
第 19 章 DMAC(DMA コントローラ )
データパス
19.8
2 サイクル転送時 , およびフライバイ転送時のデータの動きを図で示します。
■ 2 サイクル転送時のデータの動き
図 19.8-1 2 サイクル転送時のデータの動き ( 続く )
バス
コントローラ
X-bus
データバッファ
バス
コントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
CPU
リードサイクル
I-bus
D-bus
MB91xxx
DMAC
外部バス I/F
MB91xxx
X-bus
データバッファ
外部バス I/F
外部領域=>外部領域 転送
F-bus
I/O
RAM
I/O
バス
コントローラ
X-bus
データバッファ
バス
コントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
CPU
リードサイクル
I-bus
D-bus
MB91xxx
DMAC
外部バス I/F
MB91xxx
X-bus
外部バス I/F
外部領域=>内部RAM領域 転送
データバッファ
F-bus
I/O
RAM
I/O
X-bus
バス
コントローラ
D-bus
データバッファ
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
リードサイクル
I-bus
CPU
MB91xxx
DMAC
外部バス I/F
MB91xxx
バス
コントローラ
D-bus
X-bus
データバッファ
外部バス I/F
外部領域=>内蔵I/O領域 転送
F-bus
I/O
RAM
I/O
513
第 19 章 DMAC(DMA コントローラ )
図 19.8-1 2 サイクル転送時のデータの動き ( 続き )
MB91xxx
CPU
リードサイクル
I-bus
X-bus
バス
コントローラ
D-bus
データバッファ
X-bus
バス
コントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
外部バス I/F
内蔵I/O領域=>内蔵RAM領域 転送
F-bus
I/O
RAM
I/O
MB91xxx
CPU
リードサイクル
I-bus
X-bus
バス
コントローラ
D-bus
データバッファ
バス
コントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
外部バス I/F
内部RAM領域=>外部領域 転送
データバッファ
F-bus
I/O
RAM
I/O
バス
コントローラ
X-bus
データバッファ
F-bus
RAM
514
DMAC
ライトサイクル
I-bus
CPU
CPU
リードサイクル
I-bus
D-bus
MB91xxx
DMAC
外部バス I/F
MB91xxx
バス
コントローラ
D-bus
X-bus
データバッファ
F-bus
I/O
RAM
I/O
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
第 19 章 DMAC(DMA コントローラ )
■ フライバイ転送時のデータの動き
図 19.8-2 フライバイ転送時のデータの動き
DMAC
CPU
リードサイクル
I-bus
D-bus
X-bus
バス
コントローラ
メモリ
MB91xxx
外部バス I/F
フライバイ転送(メモリからI/O)
RD,CSxでメモリリードする。
データバッファ
RD,DACKでI/Oライトする。
RAM
I/O
F-bus
I/O
SDRAMでのフライバイ転送は不可。
CPU
バス
コントローラ
D-bus
X-bus
データバッファ
メモリ
DMAC
リードサイクル
I-bus
WR,DACKでI/Oリードする。
F-bus
RAM
WR,CSxでメモリライトする。
I/O
I/O
MB91xxx
外部バス I/F
フライバイ転送 (I/Oからメモリ)
SDRAMでのフライバイ転送は不可。
515
第 19 章 DMAC(DMA コントローラ )
19.9
DMA 外部インタフェース
DMA 外部インタフェースの概要 , DREQx 端子の入力タイミング , および DACK の
FR30 ファミリ互換モード機能について説明します。
■ 動作概要
DMA ch0 ∼ ch2 には , DMA 専用端子 (DREQ, DACK, DEOP) があります。
• DREQ : デマンド転送を行うときの DMA転送要求入力端子です。
1入力で転送要求。
• DACK : DMA が外部インタフェースを通して外部領域にアクセスした場合にアク
ティブ ("L" 出力 ) になります。
• DEOP : DMA 転送がすべて終了する最後のアクセスに同期してアクティブ ("L" 出力 )
になります。
• IORD : フライバイ転送時に I/O => メモリの方向選択時にアクティブになります。
• IOWR : フライバイ転送時にメモリ => I/O の方向選択時にアクティブになります。
516
第 19 章 DMAC(DMA コントローラ )
■ 動作例 ( 簡易波形 )
● 2 サイクル転送 ( 外部 => 外部転送時 , 転送回数 =2 の場合 )
図 19.9-1 2 サイクル転送 ( 外部 => 外部転送時 , 転送回数 =2 の場合 )
A23~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
DEOP
DACK
CS1
1回目リード
1回目ライト
2回目リード
2回目ライト
● フライバイ転送 (I/O=> メモリ転送時 , 転送回数 =3 の場合 )
図 19.9-2 フライバイ転送 (I/O=> メモリ転送時 , 転送回数 =3 の場合 )
A23~A0
CPU
#1
#2
#3
RD
WR
IORD
DEOP
DACK
CS1
CPUリード
フライバイ
1回目
フライバイ
2回目
フライバイ
3回目
● フライバイ転送 ( メモリ =>I/O 転送時 , 転送回数 =3 の場合 )
図 19.9-3 フライバイ転送 ( メモリ =>I/O 転送時 , 転送回数 =3 の場合 )
A23~A0
CPU
#1
#2
#3
RD
WR
IOWR
DEOP
DACK
CS1
CPUリード フライバイ
1回目
フライバイ
2回目
フライバイ
3回目
517
第 19 章 DMAC(DMA コントローラ )
■ DREQ 端子の入力タイミング
DREQ 端子は DMA の起動要求信号です。ポートと兼用になっている場合は PFR レジス
タで DREQ 入力を許可してください。
● タイミング
• デマンド転送以外の場合は , DMA の起動要因をエッジ検出に設定してください。立
上り / 立下りタイミングに規定はありませんが , DREQ 信号の保持時間は , 3 クロッ
ク以上必要です。再度 , 転送要求をする場合は DMA 転送が終了した後に要求入力
を入れてください (DEOP が出力された後に要求する )。
DEOP 出力前に要求を入れても無視されることがあります。
• デマンド転送の場合は , DMA の起動要因をレベル検出に設定してください。起動開
始時に規定はありませんが , 停止時は , DMA 転送の RD/WR に同期させてください。
センスタイミングは最終外部アクセスの MCLK の立上りになります。
● DREQ エッジ要求時 (2 サイクル転送時 )
図 19.9-4 DREQ エッジ要求時 (2 サイクル転送時 )
MCLK
DREQ
A23~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
DEOP
CPU動作
CPU
DMA転送
3サイクル以上
次の要求はDEOP出力後
● DREQ レベル要求時 (2 サイクル転送時 )
図 19.9-5 DREQ レベル要求時 (2 サイクル転送時 )
MCLK
DREQ
A23~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
CPU動作
DMA転送
CPU
3回目の転送要求のセンスポイント
<注意事項>
DREQ レベル要求時の場合は 2 サイクル転送で , 転送元 / 転送先が外部領域のため 2 回の
DMA 転送で停止させるときは #RD2 の立下りから #WR2 の最終の MCLK 立上りの前まで
にネゲートしてください。
518
第 19 章 DMAC(DMA コントローラ )
■ DACK の FR30 ファミリ互換モード
この DACK の FR30 ファミリ互換モードは , DACK のタイミングを FR30 ファミリの
DMA と同じタイミングにするモードです。このモードは DACK 端子に対応する PFR
レジスタで設定してください。
PFR 設定時は対応する DMA チャネルの転送モード ( フライバイ , 2 サイクル ) と合わ
せてください。
<注意事項>
FR30 ファミリ互換モードで 2 サイクル転送の設定時 , RD または WR/WRn に同期しま
す。WRを使用する場合は, 外部インタフェースACRレジスタのTYP3∼TYP0を "0X1XH"
にして WR を有効にしてください。
● 設定例
• 2 サイクル転送モード時
図 19.9-6 設定例 (2 サイクル転送モード時 )
RD
DQMUX/LX
WR/WRn
DACK (AKxx=111 B)
チップセレクトと同じタイミング
DACK (AKxx=001 B) 2サイクル転送時設定禁止
DACK (AKxx=010 B)
DACK (AKxx=011 B)
DACK (AKxx=100 B)
DACK (AKxx=101 B)
DACK (AKxx=110 B)
AKxx: DMAチャネルに対応するPFRレジスタの設定値です。
519
第 19 章 DMAC(DMA コントローラ )
• フライバイ転送モード時
図 19.9-7 設定例 ( フライバイ転送モード時 )
RD
DQMUX/LX
WR/WRn
IORD
IOWR
DACK (AKxx=111 B)
チップセレクトと同じタイミング
DACK (AKxx=001 B)
DACK (AKxx=010 B) フライバイ転送時設定禁止
DACK (AKxx=011 B) フライバイ転送時設定禁止
DACK (AKxx=100 B) フライバイ転送時設定禁止
DACK (AKxx=101 B) フライバイ転送時設定禁止
DACK (AKxx=110 B) フライバイ転送時設定禁止
メモリ to I/O
I/O to メモリ
AKxx: DMAチャネルに対応するPFRレジスタの設定値です。
520
メモリ to I/O
I/O to メモリ
付録
I/O マップ , 割込みベクタ , USB 機能 , プログラム
ローダモード , 端子状態一覧 , および命令一覧につ
いて , 本文に記載できなかった細かいところや , プ
ログラミングするときに参照することがらを記載
しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C USB 機能
付録 D プログラムローダモード
付録 E 端子状態一覧
付録 F 命令一覧
521
付録
付録 A
I/O マップ
I/O マップについて説明します。
■ I/O マップの見方
メモリ空間領域と周辺リソースの各レジスタの対応を示します。
付図 A-1 表の見方
アドレス
000000H
レジスタ
+1
+2
PDR1[R/W]
PDR2[R/W]
XXXXXXXX
XXXXXXXX
+0
PDR0[R/W]
XXXXXXXX
+3
PDR3[R/W]
XXXXXXXX
ブロック
T-unit
Port Data Register
リード/ライト属性
リセット後のレジスタ初期値
レジスタ名 (1コラムのレジスタが4n番地, 2コラムが4n+2番地...)
最左のレジスタ番地 (ワードでアクセスした際は,
1コラム目のレジスタがデータのMSB側となる。)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
• "1": 初期値 "1"
• "0": 初期値 "0"
• "X": 初期値 "X"
• "-": その位置に物理的にレジスタがない
522
付録 A I/O マップ
表 A-1 I/O マップ (1 / 9)
アドレス
レジスタ
+0
+1
+2
+3
-
-
-
-
ブロック
000000H
∼
00000FH
000048H
PDR0[R/W]
PDR1[R/W]
XXXXXXXX
XXXXXXXX
PDR4[R/W]
PDR5[R/W]
XXXXXXXX
XXXXXXXX
PDR8[R/W]
PDR9[R/W]
XXXXXXXX
XXXXXXXX
PDRC[R/W]
PDRD[R/W]
XXXXXXXX
--XXXXXX
ADCTH[R/W]
ADCTL[R/W]
XXXXXX00
00000X00
ADAT0[R]
XXXXXX00_00000000
ADAT2[R]
XXXXXX00_00000000
ADAT4[R]
XXXXXX00_00000000
ADAT6[R]
XXXXXX00_00000000
ADAT8[R]
XXXXXX00_00000000
TEST [R/W]
00000000
EIRR0 [R/W]
ENIR0 [R/W]
00000000
00000000
DICR [R/W]
HRCL [R/W]
-------0
0--11111
TMRLR0 [W]
XXXXXXXX XXXXXXXX
00004CH
--------
000050H
TMRLR1 [W]
XXXXXXXX XXXXXXXX
000054H
--------
000058H
TMRLR2 [W]
XXXXXXXX XXXXXXXX
00005CH
--------
000010H
000014H
000018H
00001CH
000020H
000024H
000028H
00002CH
000030H
000034H
000038H
00003CH
000040H
000044H
000060H
000064H
SSR0 [R/W]
00001000
SIDR0 [R]/
SODR0 [W]
XXXXXXXX
UTIM0 [R] (UTIMR0 [W])
00000000 00000000
PDR2[R/W]
PDR3[R/W]
XXXXXXXX
XXXXXXXX
PDR6[R/W]
PDR7[R/W]
--XXXXXX
--XXXXXX
PDRA[R/W]
PDRB[R/W]
-----XXX
XXXXXXXX
PDRE[R/W]
PDRF[R/W]
-----XXX
XXXXXXXX
ADCH[R/W]
00000000_00000000
ADAT1[R]
XXXXXX00_00000000
ADAT3[R]
XXXXXX00_00000000
ADAT5[R]
XXXXXX00_00000000
ADAT7[R]
XXXXXX00_00000000
ADAT9[R]
XXXXXX00_00000000
-
-
-
ELVR0 [R/W]
00000000
--------
TMR0 [R]
XXXXXXXX XXXXXXXX
TMCSR0 [R/W]
----0000 00000000
TMR1 [R]
XXXXXXXX XXXXXXXX
TMCSR1 [R/W]
----0000 00000000
TMR2 [R]
XXXXXXXX XXXXXXXX
TMCSR2 [R/W]
----0000 00000000
SCR0 [R/W]
00000100
DRCL0
--------*3
SMR0 [R/W]
00--0-0-
Reserved
R-bus
Port Data Register
10bit A/D converter
Reserved
Ext int
DLYI/I-unit
Reload Timer 0
Reload Timer 1
Reload Timer 2
UART0
UTIMC0 [R/W]
U-TIMER 0
0--00001
523
付録
表 A-1 I/O マップ (2 / 9)
アドレス
000068H
00006CH
000070H
000074H
000078H
00007CH
000080H
レジスタ
+0
+1
+2
+3
SSR1 [R/W]
00001000
SIDR1 [R]/
SODR1 [W]
XXXXXXXX
SCR1 [R/W]
00000100
SMR1 [R/W]
00--0-0-
UTIM1 [R] (UTIMR1 [W])
00000000 00000000
SSR2 [R/W]
00001000
SIDR2 [R]/
SODR2 [W]
XXXXXXXX
UTIM2 [R] (UTIMR2 [W])
00000000 00000000
SSR3 [R/W]
00001000
SIDR3 [R]/
SODR3 [W]
XXXXXXXX
UTIM3 [R] (UTIMR3 [W])
00000000 00000000
SSR4 [R/W]
00001000
SIDR4 [R]/
SODR4 [W]
XXXXXXXX
DRCL1
--------*3
DRCL2
--------*3
SMR2 [R/W]
00--0-0-
SCR3 [R/W]
00000100
DRCL3
--------*3
SMR3 [R/W]
00--0-0-
SCR4 [R/W]
00000100
SMR4 [R/W]
00--0-0-
000088H
--------
--------
00008CH
--------
0000A0H
-------PWCCL[R/W]
PWCCH[R/W]
0000--00
00-00000
PWCD[R]
XXXXXXXX_XXXXXXXX
PWCC2[R/W]
Reserved
000----PWCUD[R]
XXXXXXXX_XXXXXXXX
--------
0000A4H
--------
--------
0000A8H
--------
--------
000098H
00009CH
0000ACH
0000B0H
0000B4H
0000B8H
0000BCH
524
UART3
UTIMC3 [R/W]
U-TIMER 3
0--00001
UTIM4 [R] (UTIMR4 [W])
00000000 00000000
000094H
UART2
UTIMC2 [R/W]
U-TIMER 2
0--00001
000084H
000090H
UART1
UTIMC1 [R/W]
U-TIMER 1
0--00001
SCR2 [R/W]
00000100
DRCL4
--------*3
ブロック
UART4
UTIMC4 [R/W]
U-TIMER 4
0--00001
Reserved
--------------PWC
----------------------
--------
--------
IFN0 [R]
IFRN0 [R/W]
00000000
00000000
IBCR0 [R/W]
IBSR0 [R]
00000000
00000000
ITMK0 [R/W]
00111111 11111111
IDAR0 [R/W]
00000000
IFCR0 [R/W]
IFDR0 [R/W]
00-00000
00000000
ITBA0 [R, R/W]
00000000 00000000
ISMK0 [R/W]
ISBA0 [R/W]
01111111
00000000
ICCR0 [R/W]
00011111
Reserved
I2C interface ch0
付録 A I/O マップ
表 A-1 I/O マップ (3 / 9)
アドレス
0000C0H
0000C4H
0000C8H
0000CCH
0000D0H
0000D4H
0000D8H
0000DCH
0000E0H
0000E4H
0000E8H
0000ECH
0000F0H
0000F4H
0000F8H
0000FCH
レジスタ
+0
+1
IFN1 [R]
IFRN1 [R/W]
00000000
00000000
IBCR1 [R/W]
IBSR1 [R]
00000000
00000000
ITMK1 [R/W]
00111111 11111111
IDAR1 [R/W]
00000000
IFN2 [R]
IFRN2 [R/W]
00000000
00000000
IBCR2 [R/W]
IBSR2 [R]
00000000
00000000
ITMK2 [R/W]
00111111 11111111
IDAR2 [R/W]
00000000
IFN3 [R]
IFRN3 [R/W]
00000000
00000000
IBCR3 [R/W]
IBSR3 [R]
00000000
00000000
ITMK3 [R/W]
00111111 11111111
IDAR3 [R/W]
00000000
TCDT [R/W] H,W
00000000 00000000
IPCP1 [R] H,W
XXXXXXXX XXXXXXXX
IPCP3 [R] H,W
XXXXXXXX XXXXXXXX
000100H
-
000104H
ICS23 [R/W]B,H,W
+2
IFCR1 [R/W]
IFDR1 [R/W]
00-00000
00000000
ITBA1 [R, R/W]
00000000 00000000
ISMK1 [R/W]
ISBA1 [R/W]
01111111
00000000
ICCR1 [R/W]
00011111
IFCR2 [R/W]
IFDR2 [R/W]
00-00000
00000000
ITBA2 [R, R/W]
00000000 00000000
ISMK2 [R/W]
ISBA2 [R/W]
01111111
00000000
ICCR2 [R/W]
00011111
IFCR3 [R/W]
IFDR3 [R/W]
00-00000
00000000
ITBA3 [R, R/W]
00000000 00000000
ISMK3 [R/W]
ISBA3 [R/W]
01111111
00000000
ICCR3 [R/W]
00011111
-
ICS01 [R/W]B,H,W
-
00000000
-
-
00000000
-
000108H
-
-
-
-
00010CH
EIRR1 [R/W]
00000000
ENIR1 [R/W]
00000000
-
000110H
I2C interface ch1
I2C interface ch2
I2C interface ch3
Reserved
TCCS [R/W]B,H,W 16 ビット
00000000
IPCP0 [R] H,W
XXXXXXXX XXXXXXXX
IPCP2 [R] H,W
XXXXXXXX XXXXXXXX
-
ブロック
+3
ELVR1 [R/W]
00000000 00000000
フリーランタイマ
16 ビット
インプット
キャプチャ
Reserved
Ext int
000114H
∼
00011FH
000120H
000124H
--------
--------
PTMR0 [R]
11111111 11111111
PDUT0 [W]
XXXXXXXX XXXXXXXX
PCSR0 [W]
XXXXXXXX XXXXXXXX
PCNH0 [R/W]
PCNL0 [R/W]
00000000
00000000
Reserved
PPG0
525
付録
表 A-1 I/O マップ (4 / 9)
アドレス
000128H
00012CH
000130H
00134H
000138H
00013CH
レジスタ
+0
+1
PTMR1 [R]
11111111 11111111
PDUT1 [W]
XXXXXXXX XXXXXXXX
PTMR2 [R]
11111111 11111111
PDUT2 [W]
XXXXXXXX XXXXXXXX
PTMR3 [R]
11111111 11111111
PDUT3 [W]
XXXXXXXX XXXXXXXX
+2
ブロック
+3
PCSR1 [W]
XXXXXXXX XXXXXXXX
PCNH1 [R/W]
PCNL1 [R/W]
00000000
00000000
PCSR2 [W]
XXXXXXXX XXXXXXXX
PCNH2 [R/W]
PCNL2 [R/W]
00000000
00000000
PCSR3[W]
XXXXXXXX XXXXXXXX
PCNH3 [R/W]
PCNL3 [R/W]
00000000
00000000
PPG1
PPG2
PPG3
000140H
--------
∼
0001FCH
Reserved
DMACA0 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB0 [R/W]
00000000 00000000 00000000 00000000
DMACA1 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB1 [R/W]
00000000 00000000 00000000 00000000
DMACA2 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB2 [R/W]
00000000 00000000 00000000 00000000
DMACA3 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB3 [R/W]
00000000 00000000 00000000 00000000
DMACA4 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB4 [R/W]
00000000 00000000 00000000 00000000
--------
000200H
000204H
000208H
00020CH
000210H
000214H
000218H
00021CH
000220H
000224H
000228H
DMAC
00022CH
--------
∼
00023CH
Reserved
DMACR [R/W]
0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX
000240H
DMAC
000244H
--------
∼
0002FCH
000304H
526
-
-
Reserved
-
ISIZE[R/W]B,H,W
------10
命令キャッシュ
付録 A I/O マップ
表 A-1 I/O マップ (5 / 9)
アドレス
レジスタ
+0
+1
+2
+3
∼
0003E0H
-
-
-
-
0003E4H
-
-
-
-
-
-
ブロック
000308H
ICHCR[R/W]B,H,W
0-000000
Reserved
命令キャッシュ
0003E8H
∼
0003ECH
0003F0H
0003F4H
0003F8H
0003FCH
000400H
000404H
000408H
00040CH
000410H
000414H
000418H
00041CH
-
BSD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSD1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSDC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSRR [R]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DDR2 [R/W]
DDR3 [R/W]
00000000
----0000
DDR4 [R/W]
DDR5 [R/W]
DDR6 [R/W]
DDR7 [R/W]
00000000
00000000
--000000
--000000
DDR8 [R/W]
DDR9 [R/W]
DDRA [R/W]
DDRB [R/W]
---00000
00000000
00000000
00000000
DDRC [R/W]
DDRD [R/W]
DDRE [R/W]
DDRF [R/W]
00000000
--000000
------00
00000000
PFR0 [R/W]
PFR1 [R/W]
PFR2 [R/W]
PFR3 [R/W]
0--00000
00000000
000---00
----0000
PFR4 [R/W]
PFR5 [R/W]
PFR6 [R/W]
PFR7 [R/W]
-----000
11111111
00000000
-----000
PFR9 [R/W]
PFRB [R/W]
11111111
00011-0PFRC [R/W]
PFRD [R/W]
PCRA [R/W]
PCRB [R/W]
1111--11
---101-00000000
00000000
Reserved
Bit Search Module
R-bus
Port Direction
Register
R-bus
Port Function
Register
000420H
∼
00043CH
--------
Reserved
527
付録
表 A-1 I/O マップ (6 / 9)
アドレス
000440H
000444H
000448H
00044CH
000450H
000454H
000458H
00045CH
000460H
000464H
000468H
00046CH
レジスタ
+0
+1
+2
+3
ICR00 [R/W]
---11111
ICR04 [R/W]
---11111
ICR08 [R/W]
---11111
ICR12 [R/W]
---11111
ICR16 [R/W]
---11111
ICR20 [R/W]
---11111
ICR24 [R/W]
---11111
ICR28 [R/W]
---11111
ICR32 [R/W]
---11111
ICR36 [R/W]
---11111
ICR40 [R/W]
---11111
ICR44 [R/W]
---11111
ICR01 [R/W]
---11111
ICR05 [R/W]
---11111
ICR09 [R/W]
---11111
ICR13 [R/W]
---11111
ICR17 [R/W]
---11111
ICR21 [R/W]
---11111
ICR25 [R/W]
---11111
ICR29 [R/W]
---11111
ICR33 [R/W]
---11111
ICR37 [R/W]
---11111
ICR41 [R/W]
---11111
ICR45 [R/W]
---11111
ICR02[R/W]
---11111
ICR06 [R/W]
---11111
ICR10 [R/W]
---11111
ICR14 [R/W]
---11111
ICR18 [R/W]
---11111
ICR22 [R/W]
---11111
ICR26 [R/W]
---11111
ICR30 [R/W]
---11111
ICR34 [R/W]
---11111
ICR38 [R/W]
---11111
ICR42 [R/W]
---11111
ICR46 [R/W]
---11111
ICR03 [R/W]
---11111
ICR07 [R/W]
---11111
ICR11 [R/W]
---11111
ICR15 [R/W]
---11111
ICR19 [R/W]
---11111
ICR23 [R/W]
---11111
ICR27 [R/W]
---11111
ICR31 [R/W]
---11111
ICR35 [R/W]
---11111
ICR39 [R/W]
---11111
ICR43 [R/W]
---11111
ICR47 [R/W]
---11111
ブロック
Interrupt Control unit
000470H
--------
∼
00047CH
RSRR [R/W]
10000000 *2
CLKR [R/W]
00000000 *1
STCR [R/W]
00110011 *2
WPR
--------*3
000488H
-
-
00048CH
-
000490H
-
000480H
000484H
Reserved
CTBR [W]
XXXXXXXX
-
TBCR [R/W]
00XXXX00 *1
DIVR0 [R/W]
00000011 *1
OSCCR [R/W]
XXXXXXX0
-
-
Reserved
-
-
-
Reserved
DIVR1[R/W]
00000000 *1
Clock Control unit
-
000494H
∼
0005FCH
--------
Reserved
--------
Reserved
000600H
∼
00063FH
528
付録 A I/O マップ
表 A-1 I/O マップ (7 / 9)
アドレス
000640H
000644H
000648H
00064CH
000650H
000654H
000658H
00065CH
000660H
000664H
000668H
00066CH
000670H
000674H
000678H
00067CH
000680H
000684H
レジスタ
+0
+1
+2
ASR0 [R/W]
00000000 00000000 *1
ASR1 [R/W]
XXXXXXXX XXXXXXXX *1
ASR2 [R/W]
XXXXXXXX XXXXXXXX *1
ASR3 [R/W]
XXXXXXXX XXXXXXXX *1
ASR4 [R/W]
XXXXXXXX XXXXXXXX *1
ASR5 [R/W]
XXXXXXXX XXXXXXXX *1
ASR6 [R/W]
XXXXXXXX XXXXXXXX *1
ASR7 [R/W]
XXXXXXXX XXXXXXXX *1
AWR0 [R/W]
01111111 11111111 *1
AWR2 [R/W]
XXXXXXXX XXXXXXXX *1
AWR4 [R/W]
XXXXXXXX XXXXXXXX *1
AWR6 [R/W]
XXXXXXXX XXXXXXXX *1
+3
ACR0 [R/W]
1111XX00 00000000 *1
ACR1 [R/W]
XXXXXXXX XXXXXXXX *1
ACR2 [R/W]
XXXXXXXX XXXXXXXX *1
ACR3 [R/W]
XXXXXXXX XXXXXXXX *1
ACR4 [R/W]
XXXXXXXX XXXXXXXX *1
ACR5 [R/W]
XXXXXXXX XXXXXXXX *1
ACR6 [R/W]
XXXXXXXX XXXXXXXX *1
ACR7 [R/W]
XXXXXXXX XXXXXXXX *1
AWR1 [R/W]
XXXXXXXX XXXXXXXX *1
AWR3 [R/W]
XXXXXXXX XXXXXXXX *1
AWR5 [R/W]
XXXXXXXX XXXXXXXX *1
AWR7 [R/W]
XXXXXXXX XXXXXXXX *1
MCRA[R/W]B,H,W MCRB[R/W]B,H,W
XXXXXXXX
-------IOWR0[R/W]
IOWR1[R/W]
IOWR2[R/W]
XXXXXXXX
XXXXXXXX
XXXXXXXX
-------CSER [R/W]
CHER [R/W]
00000001
11111111
RCR[R/W]B,H,W
00XXXXXX XXXX0XXX
XXXXXXXX
ブロック
T-unit
-
-
TCR[R/W]
00000000
-
000688H
--------
∼
0007F8H
0007FCH
-
MODR [W]
XXXXXXXX
Reserved
-
-
000800H
∼
000AFCH
--------
Reserved
529
付録
表 A-1 I/O マップ (8 / 9)
アドレス
000B00H
000B04H
000B08H
000B0CH
000B10H
レジスタ
+0
+1
+2
ESTS0 [R/W]
ESTS1 [R/W]
X0000000
XXXXXXXX
ECTL0 [R/W]
ECTL1 [R/W]
0X000000
00000000
ECNT0 [W]
ECNT1 [W]
XXXXXXXX
XXXXXXXX
EWP1 [R]
00000000 00000000
EDTR0 [W]
XXXXXXXX XXXXXXXX
ブロック
+3
ESTS2 [R]
1XXXXXXX
ECTL2 [W]
000X0000
EUSA [W]
XXX00000
-------ECTL3 [R/W]
00X00X11
EDTC [W]
0000XXXX
-------EDTR1 [W]
XXXXXXXX XXXXXXXX
000B14H
∼
000B1CH
000B20H
000B24H
000B28H
000B2CH
000B30H
000B34H
000B38H
000B3CH
000B40H
000B44H
000B48H
000B4CH
000B50H
000B54H
000B58H
000B5CH
000B60H
000B64H
530
-------EIA0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA2 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA3 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA4 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA5 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA6 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA7 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTA [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTM [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EPCR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EPSR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM0/EODM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM1/EODM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
付録 A I/O マップ
表 A-1 I/O マップ (9 / 9)
アドレス
000B68H
000B6CH
レジスタ
+0
+1
+2
ブロック
+3
EOD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOD1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
000B70H
∼
000FFCH
001000H
001004H
001008H
00100CH
001010H
001014H
001018H
00101CH
001020H
001024H
-------DMASA0 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA0 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA2 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA2 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA3 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA3 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA4 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA4 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Reserved
DMAC
001028H
--------
Reserved
∼
0070FFH
--------
Reserved
007100H
--------
007104H
--------
∼
006FFCH
007000H
Reserved
*1: リセットレベルで初期値が異なるレジスタです。表示は , INIT レベルのものです。
*2: リセットレベルで初期値が異なるレジスタです。表示は , INIT 端子による INIT レベルのもので
す。
*3: 予約レジスタです。アクセス禁止です。
531
付録
表 A-2 I/O マップ (1 / 2)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
00060000H
FIFO0o [R]
XXXXXXXX XXXXXXXX
FIFO0i [W]
XXXXXXXX XXXXXXXX
00060004H
FIFO1 [R]
XXXXXXXX XXXXXXXX
FIFO2 [W]
XXXXXXXX XXXXXXXX
00060008H
FIFO3 [R]
XXXXXXXX XXXXXXXX
-
0006000CH
--------
∼
0006001FH
00060020H
-
CONT1 [R/W]
000XX0XX XXX00000
00060024H
CONT2 [R/W]
XXXXXXXX XXX00000
CONT3 [R/W]
XXXXXXXX XXX00000
00060028H
CONT4 [R/W]
XXXXXXXX XXX00000
CONT5 [R/W]
XXXXXXXX XXXX00XX
0006002CH
CONT6 [R/W]
XXXXXXXX XXXX00XX
CONT7 [R/W]
XXXXXXXX XXX00000
00060030H
CONT8 [R/W]
XXXXXXXX XXX00000
CONT9 [R/W]
0XX0XXXX 0XXX0000
00060034H
CONT10 [R/W]
00000000 X00000XX
TTSIZE [R/W]
00010001 00010001
00060038H
TRSIZE [R/W]
00010001 00010001
-
0006003CH
00060040H
532
-------RSIZE0 [R]
XXXXXXXX XXXX0000
-
USB
Function
付録 A I/O マップ
表 A-2 I/O マップ (2 / 2)
レジスタ
アドレス
ブロック
+0
00060044H
+1
+2
RSIZE1 [R]
XXXXXXXX X0000000
+3
-
00060048H
--------
∼
0006005FH
00060060H
ST1 [R/W]
XXXXXX00 00000000
-
00060064H
USB
Function
--------
00060068H
ST2 [R]
XXXXXXXX XXX00000
ST3 [R/W]
XXXXXXXX XXX00000
0006006CH
ST4 [R/W]
XXXXX000 00000000
ST5 [R/W]
XXXX0XXX XX000000
00060070H
--------
∼
0006007FH
00060080H
--------
∼
0006FFFBH
0006FFFCH
-
-
Reserved
RESET
-0------
-
USB リセット
533
付録
付録 B
割込みベクタ
付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91305 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されて
います。
■ 割込みベクタ
表 B-1 割込みベクタ (1 / 2)
割込み要因
リセット
モードベクタ
システム予約
システム予約
システム予約
システム予約
システム予約
コプロセッサ不在トラップ
コプロセッサエラートラップ
INTE 命令
命令ブレーク例外
オペランドブレークトラップ
ステップトレーストラップ
NMI 要求 (tool)
未定義命令例外
NMI 要求
外部割込み 0
外部割込み 1
外部割込み 2
外部割込み 3
外部割込み 4 (USB ファンクション )
外部割込み 5
外部割込み 6
外部割込み 7
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
UART0 ( 受信完了 )
UART1 ( 受信完了 )
UART2 ( 受信完了 )
UART0 ( 送信完了 )
UART1 ( 送信完了 )
UART2 ( 送信完了 )
DMAC0 ( 終了 , エラー )
DMAC1 ( 終了 , エラー )
DMAC2 ( 終了 , エラー )
DMAC3 ( 終了 , エラー )
DMAC4 ( 終了 , エラー )
534
割込み番号
10 進 16 進
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
割込み
レベル
オフセット
TBR デフォルト
のアドレス
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
15 (FH) 固定
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
ICR16
ICR17
ICR18
ICR19
ICR20
ICR21
3FCH
3F8H
3F4H
3F0H
3ECH
3E8H
3E4H
3E0H
3DCH
3D8H
3D4H
3D0H
3CCH
3C8H
3C4H
3C0H
3BCH
3B8H
3B4H
3B0H
3ACH
3A8H
3A4H
3A0H
39CH
398H
394H
390H
38CH
388H
384H
380H
37CH
378H
374H
370H
36CH
368H
000FFFFCH
000FFFF8H
000FFFF4H
000FFFF0H
000FFFECH
000FFFE8H
000FFFE4H
000FFFE0H
000FFFDCH
000FFFD8H
000FFFD4H
000FFFD0H
000FFFCCH
000FFFC8H
000FFFC4H
000FFFC0H
000FFFBCH
000FFFB8H
000FFFB4H
000FFFB0H
000FFFACH
000FFFA8H
000FFFA4H
000FFFA0H
000FFF9CH
000FFF98H
000FFF94H
000FFF90H
000FFF8CH
000FFF88H
000FFF84H
000FFF80H
000FFF7CH
000FFF78H
000FFF74H
000FFF70H
000FFF6CH
000FFF68H
RN
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
8
9
10
0
1
2
3
4
5
−
−
−
−
−
付録 B 割込みベクタ
表 B-1 割込みベクタ (2 / 2)
割込み要因
A/D
PPG0
PPG1
PPG2
PPG3
PWC
外部割込み 8/U-TIMER0
外部割込み 9/U-TIMER1
外部割込み 10/U-TIMER2
タイムベースオーバフロー /
U-TIMER3
外部割込み 11/U-TIMER4
16 ビットフリーランタイマ
I2C ch0
I2C ch1
I2C ch2
I2C ch3
UART3 ( 受信完了 )
UART4 ( 受信完了 )
UART3 ( 送信完了 )
UART4 ( 送信完了 )
外部割込み 12/ インプットキャプチャ 0
外部割込み 13/ インプットキャプチャ 1
外部割込み 14/ インプットキャプチャ 2
外部割込み 15/ インプットキャプチャ 3
システム予約
遅延割込み要因ビット
システム予約 (REALOS にて使用 )
システム予約 (REALOS にて使用 )
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
INT 命令で使用
割込み番号
10 進 16 進
割込み
レベル
オフセット
TBR デフォルト
のアドレス
RN
38
39
40
41
42
43
44
45
46
26
27
28
29
2A
2B
2C
2D
2E
ICR22
ICR23
ICR24
ICR25
ICR26
ICR27
ICR28
ICR29
ICR30
364H
360H
35CH
358H
354H
350H
34CH
348H
344H
000FFF64H
000FFF60H
000FFF5CH
000FFF58H
000FFF54H
000FFF50H
000FFF4CH
000FFF48H
000FFF44H
−
−
−
−
−
−
−
−
−
47
2F
ICR31
340H
000FFF40H
−
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
ICR32
ICR33
ICR34
ICR35
ICR36
ICR37
ICR38
ICR39
ICR40
ICR41
ICR42
ICR43
ICR44
ICR45
ICR46
ICR47
33CH
338H
334H
330H
32CH
328H
324H
320H
31CH
318H
314H
310H
30CH
308H
304H
300H
2FCH
2F8H
2F4H
2F0H
2ECH
2E8H
2E4H
2E0H
2DCH
2D8H
2D4H
2D0H
2CCH
2C8H
2C4H
2C0H
2BCH
000FFF3CH
000FFF38H
000FFF34H
000FFF30H
000FFF2CH
000FFF28H
000FFF24H
000FFF20H
000FFF1CH
000FFF18H
000FFF14H
000FFF10H
000FFF0CH
000FFF08H
000FFF04H
000FFF00H
000FFEFCH
000FFEF8H
000FFEF4H
000FFEF0H
000FFEECH
000FFEE8H
000FFEE4H
000FFEE0H
000FFEDCH
000FFED8H
000FFED4H
000FFED0H
000FFECCH
000FFEC8H
000FFEC4H
000FFEC0H
000FFEBCH
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
∼
∼
−
∼
∼
−
255
FF
000H
000FFC00H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
535
付録
付録 C
USB 機能
USB 機能を使用する際の各種設定や注意事項を説明します。
■ USB 機能を使用するには
MB91305 には , USB 機能を使用する場合と使用しない場合で 2 つのモードがあります。
モードの切換えは , 外部端子 (MD3, MD2, MD1, MD0) の 4 本の設定で切り換わります。
DMA ch1,ch2
MD3 ∼ MD0 端子 USB 機能
0000B
0010B
使用可能
使用禁止
USB で使用
制約なし
自励発振
動作クロック
48MHz 固定 原発振÷ 3 × 4 逓倍
16MHz 固定
原発振× 4 逓倍
外部割込み INT4
USB 専用
外部割込み
モード端子は, 動作中に切り換えることはできませんので, 固定して使用してください。
MB91305 は 8 つの CS ( チップセレクト ) 領域を設定することが可能であり , MB91305
では , 以下のように割り付けられています。
• CS0, CS1
:ユーザ領域
• CS2
:MB91305 管理領域 (USB 未使用時は使用禁止領域になります )
• CS3
:使用禁止領域
• CS5 ∼ CS7 :ユーザ領域
■ USB のチップセレクト領域設定
CS2 領域に割り当てられている MB91305 管理領域とは , MB91305 に接続している USB
インタフェースのレジスタや処理領域を示します。
CS2 領域は , それぞれ 64M バイトの空間を割り当てており , USB インタフェースモ
ジュールなどのレジスタ設定をする前に , まず MB91305 の ASR(Area Select Register)2,
ACR(Area Configuration Register)2, AWR(Area Wait Register)2 を設定し , CS2 領域を定義
してください。
以下に CS2 領域を示します。
CS 領域
CS2
アドレス
モジュール
バス幅 / RDY 制御
○ : RDY によるウェイト制御必要
× : 不要
0X00060000H
∼
USB インタフェース
0X0006FFFFH
16 ビットバス幅
×
以下に MB91305 の CS2 領域の ASR, ACR, AWR レジスタの設定例を示します。
<注意事項>
AWRxL レジスタの W03=1,W02=0 設定以外は禁止です。
536
付録 C USB 機能
● ASR (=0006H)
ASR2
15
A31
14
A30
12
11
10
・CS2: "000000000000B"
9
A17
8
A16
・"0110B"
● ACR (=0420H)
15
ACR2H ASZ3
14
13
ASZ2 ASZ1
12
11
ASZ0
10
9
8
DBW1 DBW0 BST1 BST0
バーストなし :"00B"
64Mバイト設定: "0000B" ・CS2
16ビット:"01B"
7
6
5
4
3
2
1
0
ACR2L SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0
書込み ビッグ
許可 エンディアン
"0"
"1"
BRQ/
"0"
BGRNTなし
"0"
・CS2: "0000B"
● AWR (=2098H)
15
AWR2H
W15
14
13
12
11
10
W14
W13
W12
W11
W10
・CS2 : 自動ウェイト: "0010B"
AWR2L
9
8
W09
W08
バーストアクセスのページ内
オートウェイト
自動ウェイト :"0000B"
7
6
5
4
3
2
1
0
W07
W06
W05
W04
W03
W02
W01
W00
リード・ライト
連続のアイドル
挿入 : "10B"
ライトリカバリ MCLKO
からの
サイクル挿入:
ディレイ
"01B"
アドレス
からの
ディレイ
"1"以外禁止 "0"以外禁止
: "00B"
■ USB の割込みについて
USB の割込みは , 外部割込みの ch4(INT4) に接続されています。したがって , USB 機能
を使用する場合には外部割込みの ch4 は INT4 として機能しません。
付図 C-1 USB の割込み
USB
USB割込み信号
割込みコントロール
外部割込み入力 (INT4)
MD3,MD2,MD1,MD0 = 0000B
537
付録
■ USB の DMA 転送について
USB の DMA 転送リクエストは , DMA の ch1, ch2 と接続されています。
USB の DMA 転送機能を使用する場合は , DMA 外部端子機能 * は使用できませんので
PFR レジスタを以下のように設定しておく必要があります。
PFR4(414H) : DMAE2=0, DMAE1=0
PFR6(416H) : AK12, AK11, AK10=000B
PFR7(417H) : AK22, AK21, AK20=000B
* : DMA 外部端子機能 (DREQ1,DACK1,DEOP1,DREQ2,DACK2,DEOP2)
付図 C-2 USB の DMA 転送
DMA
USB
ch1 (DREQ)
OUT
ch2 (DREQ)
IN
外部DMA要求(DREQ1)
外部DMA要求(DREQ2)
MD3, MD2, MD1, MD0 = 0000B
■ USB のリセット
USB の DMA 転送リクエストは , DMA の ch1, ch2 と接続されています。
0X0006FFFEH
7
-
6
USBRST
0
5
-
4
-
3
-
2
-
1
-
0
-
初期値
1: USB にリセットを行います。
0: USB のリセットを解除します。
"1" → "0" に書き換えたときから 原発振の 19 クロック後に USB のリセットが解除され
ます。
538
付録 D プログラムローダモード
付録 D
プログラムローダモード
本モードは , 内蔵 ROM に格納されたプログラムローダが , UART ch0 を用いて外部
とシリアル通信を行い , 外部からプログラムを内蔵 RAM (64K バイト ) へロードし
て , ロードしたプログラムを起動するモードです。
シリアル通信は , INIT による初期化時の MD3, MD2, MD1, MD0, PD5, PD4, PD3 の
状態により , 非同期通信か同期通信かを選択可能です。ただし , 非同期通信の場合は
原発振周波数 48MHz, 49.5MHz, 16MHz, または 16.5MHz の分周によってボーレート
9600bps で動作しますので , 原発振周波数と端子設定は必ず「■ 設定方法」を参考
にしてご使用ください。
■ 設定方法
INIT による初期化時に端子 MD3, MD2, MD1, MD0, PD5, PD4, PD3 の状態を下記表のと
おりに設定すると , 内蔵 ROM に格納されたプログラムローダが起動します。
プログラムローダは , MD3, MD2, MD1, MD0, PD4 で決定されます。
外部とのシリアル通信に用いる UART ch0 の非同期通信か同期通信かは PD5 で決定さ
れます。
原発振の違いは , MD3, MD2, MD1, MD0, PD3 で決定されます。
● 原発振周波数 48MHz のときの端子設定
仕 様
MD3
MD2
MD1
端子名
MD0
PD5
PD4
非同期通信
0
1
0
0
0
0
0
同期通信
0
1
0
0
1
0
X
PD3
● 原発振周波数 49.5MHz のときの端子設定
仕 様
MD3
MD2
MD1
端子名
MD0
PD5
PD4
PD3
非同期通信
0
1
0
0
0
0
1
同期通信
0
1
0
0
1
0
X
PD3
● 原発振周波数 16MHz のときの端子設定
仕 様
MD3
MD2
MD1
端子名
MD0
PD5
PD4
非同期通信
0
1
1
0
0
0
0
同期通信
0
1
1
0
1
0
X
539
付録
● 原発振周波数 16.5MHz のときの端子設定
仕 様
MD3
MD2
MD1
端子名
MD0
PD5
PD4
PD3
非同期通信
0
1
1
0
0
0
1
同期通信
0
1
1
0
1
0
X
■ 詳細
•
非同期通信−原発振周波数 (48MHz, 49.5MHz, 16MHz, または 16.5MHz)
UART ch0 の非同期モード ( モード 0) でシリアル通信を行います。
原発振周波数を分周してボーレート 9600bps になります。
シリアルの設定はデータ長 : 8 ビット , ストップビット長 : 1 ビット , パリティなし ,
LSB ファーストです。
•
同期通信
UART ch0 の同期モード ( モード 2) でシリアル通信を行います。ボーレートの選択
は , クロック入力 (SCK0) により自由に設定できます ( クロック入力 SCK0 の周波数
がそのままボーレート )。
クロック入力の最大周波数は , 周辺系動作クロックの周波数の 1/8 以下でかつ 2MHz
以下です。
なお , 周辺系動作クロックの周波数は , 下記の式で求められます。
周辺系動作クロック周波数=マシンクロック周波数の 1/2
シリアル設定はデータ長 : 8 ビット , パリティなし , LSB ファーストです。
いずれのモードも
• コマンドデータ (00H)
• ダウンロード先 RAM アドレス 4 バイト (00030000H ∼ 0003FEFFH)
( 使用禁止 : 0003FF00H ∼ 0003FFFFH)
• ダウンロードバイト数 4 バイト ( 最大 000007FFH)
の 3 つのダウンロード情報データを FR 側へ順に上位バイトから 1 バイトずつ与え , さ
らにこれらの SUM チェックデータ ( データをすべて加えて下位 8 ビットを取り出す )
を与えることにより , RAM へのダウンロードルーチンに入ります。次に , 内蔵 RAM に
ダウンロードしたいデータを同じく FR 側へ順に上位バイトから 1 バイトずつ与え ,
SUM チェックデータを与えます。転送終了後 , RAM にジャンプしダウンロードされた
プログラムが実行されます。
540
付録 D プログラムローダモード
例 ) RAM アドレス "00030000H" へ "0000005BH" バイトのデータを転送するとき
PC など
FR
①
00H
→
②
00H
→
③
03H
→
④
00H
→
⑤
00H
→
⑥
00H
→
ダウンロードバイト数
⑦
00H
→
(91 バイト )
⑧
00H
→
⑨
5BH
→
SUM チェックデータ
⑩
5EH
→
FR からのアクノリッジ
⑪
データ送信
⑫
コマンドデータ
ダウンロード先アドレス
←
DATA
01H
→
SUM チェックデータ
*
⑬
→
*: 送信データをすべて加えて下位 8 ビットを取り出します。
PC など
FR
①
C0H
→
②
00H
→
③
00H
→
④
00H
→
⑤
00H
→
⑥
00H
→
⑦
00H
→
⑧
00H
→
⑨
00H
→
SUM チェックデータ
⑩
C0H
→
RAM へジャンプ
⑪
コマンドデータ
ダミーデータ
ダミーデータ
詳細動作については , 次項以降の専用 ROM 内プログラムのフローチャートを参照して
ください。
なお , UART の詳細動作 , 全端子状態などについては , 「第 13 章 UART」, または表 E1 の「イニシャライズ時 (INIT)」を参照してください。
541
付録
• メインプログラム フローチャート
付図 D-1 メインプログラム フローチャート
開始
NO
PD5 = "L" ?
同期通信
YES
非同期通信
*: UART0設定について
UART0設定について
非同期通信
同期
非同期のとき
・非同期モード(内部タイマ使用)
・ボーレート9600bps
・データ長 8ビット
・ストップビット 1ビット
・パリティなし
動作周波数設定
UART1設定*
同期のとき
・同期モード(外部クロック使用)
・データ長 8ビット
・パリティなし
メイン
コマンド受信
00H
受信コマンド① = ?
(ダウンロード)
ダウンロード
00H/C0H以外
C0H
RAMへジャンプ
コマンドエラ-
FR 側に発行されるコマンドおよび FR 側からの応答信号の一覧を示します。
FR
コマンド
コマンド
受信応答
542
PC など
ダウンロード
←
00H
リセット
←
18H
RAM ジャンプ
←
C0H
コマンド異常
( 受信コマンド &F0H)|04H
→
SUM チェック異常
( 受信コマンド (00H) & F0H) |04H
→
RESET コマンド受信
11H
→
DOWN LOAD コマンド受信
01H
→
付録 D プログラムローダモード
•
サブルーチン " コマンド受信 " フローチャート ( 非同期モードのとき )
付図 D-2 サブルーチン " コマンド受信 " フローチャート ( 非同期モードのとき )
コマンド受信
1バイト受信 (コマンドデータ)
No
受信データあり?
Yes
1バイトデータ受信①(コマンドデータ)
Yes
受信データ①=18H ?
RESET
8バイト受信(ダウンロード情報データ)
No
ダウンロード先アドレス4バイト
+
ダウンロードバイト数4バイト
No
受信データあり?
Yes
1バイトデータ受信②~⑨ (ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=8回 ?
No
Yes
1バイト受信 (SUMチェックデータ)
受信データあり?
No
Yes
1バイトデータ受信⑩(SUMチェックデータ)
①~⑨を加えて下位8ビット取出し:
⑩=α
α?(SUMチェック)
α
No
SUMチェックエラー
Yes
EXIT
543
付録
•
サブルーチン "DOWN LOAD" フローチャート ( 非同期モードのとき )
付図 D-3 サブルーチン "DOWN LOAD" フローチャート ( 非同期モードのとき )
ダウンロード
1バイト送信 (コマンド正常受信応答)
1バイト送信 (01H)
RAMにダウンロード
受信データあり?
No
Yes
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
No
受信回数=ダウンロードバイト数?
Yes
1バイト受信 (SUMチェックデータ)
受信データあり?
No
Yes
1バイトデータ受信⑬(SUMチェックデータ)
受信データすべてを加えて下位8ビット取出し: β
β ?(SUMチェック)
⑬=β
Yes
EXIT
544
No
SUMチェックエラー
付録 D プログラムローダモード
•
サブルーチン " コマンドエラー " フローチャート ( 非同期モードのとき )
付図 D-4 サブルーチン " コマンドエラー " フローチャート ( 非同期モードのとき )
1バイト送信 (コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(04H)
1バイト送信
MAIN
•
サブルーチン "SUM チェックエラー " フローチャート ( 非同期モードのとき )
付図 D-5 サブルーチン "SUM チェックエラー " フローチャート ( 非同期モードのとき )
1バイト送信 (SUMチェック異常応答)
SUMチェックエラ-
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(02H)
1バイト送信
MAIN
•
サブルーチン "RESET" フローチャート ( 非同期モードのとき )
付図 D-6 サブルーチン "RESET" フローチャート ( 非同期モードのとき )
1バイト送信 (RESETコマンド受信応答)
RESET
1バイト送信(11H)
MAIN
545
付録
•
サブルーチン " コマンド受信 " フローチャート ( 同期モードのとき )
付図 D-7 サブルーチン " コマンド受信 " フローチャート ( 同期モードのとき )
コマンド受信
1バイト送信(ダミー)… 00H
1バイト受信 (コマンドデータ)
No
受信データあり?
Yes
1バイトデータ受信①(コマンドデータ)
受信データ①=18H
?
Yes
RESET
No
1バイト送信(ダミー)… 00H
8バイト受信(ダウンロード情報データ)
ダウンロード先アドレス4バイト
+
ダウンロードバイト数4バイト
受信データあり?
No
Yes
1バイト送信(ダミー)… 00H
1バイトデータ受信②~⑨(ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=8回 ?
1バイト受信 (SUMチェックデータ)
No
Yes
受信データあり?
No
Yes
1バイトデータ受信⑩(SUMチェックデータ)
①~⑨を加えて下位8ビット取出し:
α ?(SUMチェック)
⑩=α
Yes
EXIT
546
α
No
SUMチェックエラー
付録 D プログラムローダモード
•
サブルーチン "DOWN LOAD" フローチャート ( 同期モードのとき )
付図 D-8 サブルーチン "DOWN LOAD" フローチャート ( 同期モードのとき )
DOWN LOAD
1バイト送信 (コマンド正常受信応答)
1バイト送信 (01H)
受信データあり?
No
Yes
ダミー受信
DOWNLOAD
1バイト送信(ダミー)… 00H
No
受信データあり?
Yes
RAMにダウンロード
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
No
受信回数=ダウンロードバイト数?
Yes
1バイト送信(ダミー)… 00H
1バイト受信 (SUMチェックデータ)
受信データあり?
No
Yes
・1バイト受信データ⑬受信
・ 受信データすべてを加えて下位8ビット取出し: β
⑬=β
β ?(SUMチェック)
No
SUMチェックエラー
Yes
EXIT
547
付録
•
サブルーチン " コマンドエラー " フローチャート ( 同期モードのとき )
付図 D-9 サブルーチン " コマンドエラー " フローチャート ( 同期モードのとき )
1バイト送信 (コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(04H)
1バイト送信
受信データあり?
No
Yes
ダミー受信
メイン
•
サブルーチン "SUM チェックエラー " フローチャート ( 同期モードのとき )
付図 D-10 サブルーチン "SUM チェックエラー " フローチャート ( 同期モードのとき )
1バイト送信
(SUMチェック異常応答)
SUMチェックエラ-
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(02H)
1バイト送信
受信データあり?
Yes
ダミー受信
メイン
548
No
付録 D プログラムローダモード
•
サブルーチン "RESET" フローチャート ( 同期モードのとき )
付図 D-11 サブルーチン "RESET" フローチャート ( 同期モードのとき )
1バイト送信 (RESETコマンド受信応答)
RESET
1バイト送信(11H)
受信データあり?
No
Yes
ダミー受信
メイン
■ メモリマップ
本ローダプログラムは , 内 ROM 外バスモードで実行され , 実行後のメモリマップは ,
下記のようになります。プログラムを配置できるのは下記の RAM 領域となります。外
部領域以外へアクセスする場合は , ダウンロードされたプログラムにて , 必要なレジス
タ設定を行ってください。
付図 D-12 メモリマップ
000FFFFFH
内蔵ROM 2Kバイト
000FF800H
データ用RAM
0003FFFFH
RAM領域 64Kバイト
00030000H
0003FF00H"~"0003FFFF
0003FFFFH"
使用禁止領域: "0003FF00
この領域はプログラムローダ
プログラムで使用する領域です。
00000000H
549
付録
■ ロードプログラムを利用して , フラッシュメモリへの書込みを行う例
付図 D-13 に , ロード (RAM に展開 ) されたプログラムにて ,「CS0 へ接続されたフラッ
シュメモリを書き込む」場合の接続例を示します。
フラッシュ全体をアクセスするためには , 内蔵リソースや RAM などの内部領域とオー
バラップしない領域に フラッシュメモリを配置する必要があります。本例では, CS0領
域に接続された 1M バイトの フラッシュメモリを "0x10 0000H" ∼ "0x1F FFFFH" 番地と
してアクセスすることを想定しています。ただし , FR ファミリでは , リセットベクタ
は "0xF FFFCH" 番地 , モードベクタは "0xF FFF8H" 番地に固定されており , 書き込まれ
たフラッシュ内のプログラムを正常に実行させるためには , この領域をカバーしてお
く必要があります。これは , 1M バイトのフラッシュの場合であれば , A20 より上位の
アドレス信号はフラッシュへは接続されませんので , CS0 のアドレスレンジ設定を
"0x0-0x1F FFFFH" 番 地 と す る こ と で , "0x0-0xF FFFFH" 番 地 と "0x10 0000H" ∼
"0x1FFFFFH" 番地をミラー領域としてアクセスすることで対応できます。
なお , フラッシュへ書き込まれたプログラムを実行する場合は , 外部ベクタ起動 , 外
ROM 外バスモードとなりますので , ローダが格納された内蔵 ROM 領域は意識する必
要はありません ( 付図 D-14 を参照 )。
•
オフセットアドレスを付加したメモリアクセス
付図 D-13 1M バイトフラッシュの接続例
MB91305
"000F FFFCH"ߣߒߡ߽"1F FFFCH"ߣߒߡ߽ห৻㗔ၞࠍࠕࠢ࠮ࠬน⢻
A20
A19
A18
A17
A16
..
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
D31-D24
D23-D16
CS0x
550
A18
A17
A16
A15
..
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
1Mࡃࠗ࠻
1M
ࡃࠗ࠻
ࡈ࡜࠶ࠪࡘ
ࡔࡕ࡝
D15- D7D8 D0
CEx
付録 D プログラムローダモード
付図 D-14 各モードにおけるメモリマップ
内ROM外バスモード(ローダプログラム実行時)
0x00 0000H
内蔵リソース
外ROM外バスモード(通常動作時)
0x00 0000H
内蔵リソース
内蔵RAM
内蔵RAM
A*
0x0F FFFFH
0x10 0000H
0x0F FFFFH
外部フラッシュ
への書込み
0x1F FFFFH
B*
0x1F FFFFH
*:
Aの領域でプログラムを実行させる場合は, コンパイラの「ショートアドレス最適化」が使用で
きますが, 内蔵メモリや, 内蔵リソースにオーバラップしている領域はアクセスできません。
Bの領域で実行させる場合は, コンパイラの「ショートアドレス最適化」は使用できませんが,
内蔵メモリなどのアドレスとオーバラップすることなく, フラッシュ全体をアクセスできます。
■ リセットのタイミングチャート
• リセットタイミング ( 非同期通信 )
付図 D-15 リセットタイミング ( 非同期通信 )
INIT
SIN0
1ms以上
SOUT0
551
付録
• リセットタイミング ( 同期通信 )
付図 D-16 リセットタイミング ( 同期通信 )
INIT
SIN0
SOUT0
SCK0
552
1ms以上
付録 E 端子状態一覧
付録 E
端子状態一覧
表 E-1 および表 E-2 に外部バス 8 ビットモード時 , および外部バス 16 ビットモード
時の端子状態を示します。
■ 端子状態一覧
● 外部バス 8 ビットモード時の端子状態
表 E-1 に , 外部バス 8 ビットモード時の端子状態を示します。
表 E-1 外部バス 8 ビットモード時の端子状態 (1 / 2)
イニシャライズ時
バス開放時 (BGRNT)
ストップ時
(INIT=0)
端子番号 ポート名
指定機能名
スリープ時
機能名
初期値
HIZ=0
HIZ=1
CS 共有あり
CS 共有なし
直前状態保持
出力 Hi-Z 入力 "0" 固定
通常動作
通常動作
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
出力 Hi-Z
出力 Hi-Z 入力 "0" 固定
通常動作
バス幅 8 ビット時
169 ∼
176
P20 ∼
P27
D16 ∼ D23
4 ∼ 11
-
D24 ∼ D31
直前状態保持
P20 ∼ P27
D24 ∼ D31
15
-
RD
RD
16
-
WR0/DQMUU
WR0/DQMUU
17
P30
WR1/DQMUL
P30
18
P31
CS0
CS0
19
P32
CS1
CS1
20
P33
CS4
CS4
21
P34
CS5
CS5
22
P35
CS6
CS6
23
P36
CS7
CS7
24
P37
RDY
P37
25
P40
BGRNT
P40
出力 Hi-Z
入力可能
"H" 出力
出力 Hi-Z
入力可能
"H" 出力
P: 直前状態保持
F: 出力保持または
Hi-Z
P: 直前状態保持
F: 出力保持または
Hi-Z
P: 直前状態保持
F: "H" 出力
P: 直前状態保持
F: "H" 出力
直前状態保持
P: 直前状態保持
F: "H" 出力
直前状態保持
P: 直前状態保持
F: "H" 出力
出力 Hi-Z
入力可能
P: 直前状態保持
F: "H" 出力
直前状態保持
P: 直前状態保持
F:BRQ 入力無効
P41
BRQ
P41
27
P42
SYSCLK
SYSCLK
"L" 出力
P: 直前状態保持
F:SYSCLK 出力
P: 直前状態保持
F:"H" または "L"
出力
28
P43
MCLKE
MCLKE
"H" 出力
P: 直前状態保持
F:"L" 出力
P: 直前状態保持
F: "L" 出力
29
P44
MCLK
MCLK
"L" 出力
P: 直前状態保持
F:"H" 出力
P: 直前状態保持
F: "H" 出力
P45
SRAS/LBA/AS
P45
31
P46
SCAS/BAA
P46
32
P47
SWE/WR
P47
36 ∼ 51
-
A0 ∼ A15
A0 ∼ A15
出力 Hi-Z
入力可能
P: 直前状態保持
F:SWE 出力
"H" 出力
アドレス出力
アドレス出力
P50 ∼
P57
A16 ∼ A23
A16 ∼ A23
"H" 出力
76,77
-
AN0,AN1
AN0,AN1
アナログ
入力無効
78 ∼ 85
PF0 ∼
PF7
AN2 ∼ AN9
AN2 ∼ AN9
アナログ
入力無効
P: 直前状態保持
P: 直前状態保持
F: アナログ入力無効 F: アナログ入力無効
P60
出力 Hi-Z
入力可能
P: 直前状態保持
F: 通常動作
99
P60
SIN0
P61
SOUT0
P61
101
P62
SCK0
P62
102
P63
SIN1
P63
103
P64
SOUT1
P64
104
P65
SCK1
P65
105
P70
SIN2
P70
直前状態保持
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
P: 直前状態保持
F: アドレス出力
アナログ入力無効
P: 直前状態保持
F: 直前状態保持
通常動作
P: 通常動作
P: 通常動作
F:SREN=0 "H" 出力 F:SREN=0 "H" 出力
SREN=1 出力 Hi-Z SREN=1 出力 Hi-Z
P: 直前状態保持
F:RDY 入力
"L" 出力
"L" 出力
BRQ 入力
BRQ 入力
P: 通常動作
F:CLK 出力
P: 通常動作
F:CLK 出力
P: 通常動作
F:"H" 出力
P: 通常動作
F: 出力 Hi-Z
P: 通常動作
F:CLK 出力
P: 通常動作
F:"H" 出力
P: 通常動作
F: 直前状態保持
直前状態保持
55 ∼ 62
100
P: 直前状態保持
F: アドレス出力
"H" 出力
P: 直前状態保持
F:RDY 入力
P: 直前状態保持
F:RDY 入力
26
30
P: 直前状態保持
F: "H" 出力
出力 Hi-Z
出力 Hi-Z
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
アナログ入力無効
P: 出力 Hi-Z 入力
"0" 固定
F: アナログ入力無効
出力 Hi-Z
P: 通常動作
F: 出力 Hi-Z
通常動作
P: 通常動作
F: 通常動作
出力 Hi-Z
P: 通常動作
F: 出力 Hi-Z
通常動作
P: 通常動作
F: 通常動作
P: ポート設定時
F: 指定機能使用時
553
付録
表 E-1 外部バス 8 ビットモード時の端子状態 (2 / 2)
イニシャライズ時
バス開放時 (BGRNT)
ストップ時
(INIT=0)
端子番号 ポート名
指定機能名
スリープ時
機能名
HIZ=0
初期値
HIZ=1
CS 共有あり
CS 共有なし
バス幅 8 ビット時
106
P71
SOUT2
P71
107
P72
SCK2
P72
108
P73
SIN3
P73
109
P74
SOUT3
P74
110
P75
SCK3
P75
111
P80
SIN4
P80
112
P81
SOUT4
P81
113
P82
SCK4
P82
114
P83
SCL0
P83
115
P84
SDA0
P84
116
P90
SCL1
P90
117
P91
SDA1
P91
118
P92
SCL2
P92
119
P93
SDA2
P93
120
P94
SCL3
P94
121
P95
SDA3
P95
122
P96
SCL4
P96
123
P97
SDA4
P97
128
PA0
INT0
PA0
129
PA1
INT1
PA1
130
PA2
INT2
PA2
131
PA3
INT3
PA3
132
PA4
INT4 (USB
未使用時 )
PA4
133
PA5
INT5
PA5
134
PA6
INT6
PA6
135
PA7
INT7
PA7
136
PB0
INT8
PB0
137
PB1
INT9
PB1
138
PB2
INT10/ATRG
PB2
139
PB3
INT11/FRCK
PB3
140
PB4
INT12/ICU0
PB4
141
PB5
INT13/ICU1
PB5
142
PB6
INT14/ICU2
PB6
143
PB7
INT15/ICU3
PB7
149
PC0
PPG0
PC0
150
PC1
PPG1
PC1
151
PC2
PPG2
PC2
152
PC3
PPG3
PC3
153
PC4
TOUT0/TRG0
PC4
154
PC5
TOUT1
PC5
155
PC6
TOUT2/IOWR
PC6
156
PC7
RIN/IORD
PC7
157
PD0
DREQ0
PD0
158
PD1
DACK0
PD1
159
PD2
DEOP0
PD2
160
PD3
DREQ1/TIN0
PD3
161
PD4
DACK1/TIN1
PD4
162
PD5
DEOP1/TIN2
PD5
163
PE0
DREQ2/TRG1
PE0
164
PE1
DACK2/TRG2
PE1
165
PE2
DEOP2/TRG3
PE2
P: ポート設定時
F: 指定機能使用時
554
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
出力 Hi-Z
入力可能
P: 直前状態保持
F: 通常動作
P: 直前状態保持
F: 直前状態保持
P: 出力 Hi-Z 入力可能
F: 出力 Hi-Z 入力可能
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
P: 通常動作
F: 通常動作
P: 通常動作
F: 通常動作
付録 E 端子状態一覧
● 外部バス 16 ビットモード時の端子状態
表 E-2 に , 外部バス 16 ビットモード時の端子状態を示します。
表 E-2 外部バス 16 ビットモード時の端子状態 (1 / 2)
イニシャライズ時
端子番号 ポート名
指定機能名
(INIT=0)
機能名
バス幅 8 ビット時
169 ∼
176
P20 ∼
P27
D16 ∼ D23
P20 ∼ P27
4 ∼ 11
-
D24 ∼ D31
D24 ∼ D31
15
-
RD
RD
16
-
WR0/DQMUU
WR0/DQMUU
17
P30
WR1/DQMUL
WR1/DQMUL
18
P31
CS0
CS0
19
P32
CS1
CS1
20
P33
CS4
CS4
21
P34
CS5
CS5
22
P35
CS6
CS6
23
P36
CS7
CS7
24
P37
RDY
P37
25
P40
BGRNT
P40
26
P41
BRQ
P41
27
P42
SYSCLK
SYSCLK
28
P43
MCLKE
MCLKE
29
P44
MCLK
MCLK
30
P45
SRAS/LBA/AS
P45
31
P46
SCAS/BAA
P46
32
P47
SWE/WR
P47
ストップ時
HIZ=0
初期値
出力 Hi-Z
入力可能
"H" 出力
P: 直前状態保持
F: 出力保持または
Hi-Z
P: 直前状態保持
F: "H" 出力
出力 Hi-Z
入力可能
P: 直前状態保持
F: "H" 出力
-
A0 ∼ A15
P50 ∼
P57
A16 ∼ A23
A16 ∼ A23
76,77
-
AN0,AN1
AN0,AN1
78 ∼ 85
PF0 ∼
PF7
AN2 ∼ AN9
AN2 ∼ AN9
P60
99
P60
SIN0
100
P61
SOUT0
P61
101
P62
SCK0
P62
102
P63
SIN1
P63
103
P64
SOUT1
P64
104
P65
SCK1
P65
105
P70
SIN2
P70
106
P71
SOUT2
P71
107
P72
SCK2
P72
108
P73
SIN3
P73
109
P74
SOUT3
P74
110
P75
SCK3
P75
直前状態保持
P: 直前状態保持
F: "L" 出力
アサート時:
"L" 出力
ネゲート時: P: 直前状態保持
CLK 出力
F: "H" 出力
P: 直前状態保持
F: "H" 出力
出力 Hi-Z
入力可能
CS 共有なし
出力 Hi-Z
出力 Hi-Z
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
P: 直前状態保持
F:RDY 入力
P: 直前状態保持
F:RDY 入力
"L" 出力
"L" 出力
BRQ 入力
BRQ 入力
P: 通常動作
F:CLK 出力
P: 通常動作
F:CLK 出力
P: 通常動作
F:"H" 出力
P: 通常動作
F: 出力 Hi-Z
P: 通常動作
F:CLK 出力
P: 通常動作
F:"H" 出力
P: 直前状態保持
アドレス出力
"H" 出力
CS 共有あり
P: 通常動作
P: 通常動作
F:SREN=0 "H" 出力 F:SREN=0 "H" 出力
SREN=1 出力 Hi-Z SREN=1 出力 Hi-Z
P: 直前状態保持
F: "H" または "L" 出
力
P: 直前状態保持
F: "L" 出力
"H" 出力
A0 ∼ A15
55 ∼ 62
P: 直前状態保持
F: "H" 出力
P: 直前状態保持
F:BRQ 入力無効
アサート時:
"L" 出力 P: 直前状態保持
ネゲート時: F:SYSCLK 出力
CLK 出力
HIZ=1
P: 直前状態保持
F: 出力保持または
Hi-Z
P: 直前状態保持
F:RDY 入力
F: SWE 出力
36 ∼ 51
バス開放時 (BGRNT)
スリープ時
P: 直前状態保持
F: アドレス出力
直前状態保持
P: 通常動作
F: 直前状態保持
直前状態保持
アドレス出力
P: 直前状態保持
F: アドレス出力
アナログ入力無効
出力 Hi-Z
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
アナログ入力無効
アナログ
入力無効
P: 出力 Hi-Z 入力
P: 直前状態保持
P: 直前状態保持
"0" 固定
F: アナログ入力無効 F: アナログ入力無効
F: アナログ入力無効
出力 Hi-Z
入力可能
P: 直前状態保持
F: 通常動作
P: 直前状態保持
F: 直前状態保持
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
出力 Hi-Z
P: 通常動作
F: 出力 Hi-Z
通常動作
P: 通常動作
F: 通常動作
出力 Hi-Z
P: 通常動作
F: 出力 Hi-Z
通常動作
P: 通常動作
F: 通常動作
P: ポート設定時
F: 指定機能使用時
555
付録
表 E-2 外部バス 16 ビットモード時の端子状態 (2 / 2)
イニシャライズ時
端子番号 ポート名
指定機能名
(INIT=0)
機能名
バス幅 8 ビット時
111
P80
SIN4
112
P81
SOUT4
P81
113
P82
SCK4
P82
114
P83
SCL0
P83
115
P84
SDA0
P84
116
P90
SCL1
P90
117
P91
SDA1
P91
118
P92
SCL2
P92
119
P93
SDA2
P93
120
P94
SCL3
P94
121
P95
SDA3
P95
122
P96
SCL4
P96
123
P97
SDA4
P97
128
PA0
INT0
PA0
129
PA1
INT1
PA1
130
PA2
INT2
PA2
131
PA3
INT3
PA3
132
PA4
INT4 (USB
未使用時 )
PA4
133
PA5
INT5
PA5
134
PA6
INT6
PA6
135
PA7
INT7
PA7
136
PB0
INT8
PB0
137
PB1
INT9
PB1
138
PB2
INT10/ATRG
PB2
139
PB3
INT11/FRCK
PB3
140
PB4
INT12/ICU0
PB4
141
PB5
INT13/ICU1
PB5
142
PB6
INT14/ICU2
PB6
143
PB7
INT15/ICU3
PB7
149
PC0
PPG0
PC0
150
PC1
PPG1
PC1
151
PC2
PPG2
PC2
152
PC3
PPG3
PC3
153
PC4
TOUT0/TRG0
PC4
154
PC5
TOUT1
PC5
155
PC6
TOUT2/IOWR
PC6
156
PC7
RIN/IORD
PC7
157
PD0
DREQ0
PD0
158
PD1
DACK0
PD1
PD2
DEOP0
PD2
160
PD3
DREQ1/TIN0
PD3
161
PD4
DACK1/TIN1
PD4
162
PD5
DEOP1/TIN2
PD5
163
PE0
DREQ2/TRG1
PE0
164
PE1
DACK2/TRG2
PE1
165
PE2
DEOP2/TRG3
PE2
556
バス開放時 (BGRNT)
HIZ=0
初期値
HIZ=1
CS 共有あり
CS 共有なし
P80
159
P: ポート設定時
F: 指定機能使用時
ストップ時
スリープ時
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
P: 出力 Hi-Z 入力可能
F: 出力 Hi-Z 入力可能
出力 Hi-Z
入力可能
P: 直前状態保持
F: 通常動作
P: 直前状態保持
F: 直前状態保持
P: 通常動作
F: 通常動作
P: 出力 Hi-Z 入力
"0" 固定
F: 出力 Hi-Z 入力
"0" 固定
P: 通常動作
F: 通常動作
付録 F 命令一覧
付録 F
命令一覧
FR ファミリーの命令一覧表を示します。その前に , 命令一覧を理解するために次の
事項について説明します。
• 命令一覧表の読み方
• アドレッシングモードの記号
• 命令フォーマット
■ 命令一覧表の読み方
ニーモニック
型
OP
CYCLE
NZVC
動作
ADD
Rj,
Rj
A
AG
1
CCCC
Ri+Rj → Rj
*ADD
#s5,
Rj
C
A4
1
CCCC
,
,
,
,
,
,
,
,
Ri+s5 → Ri
,
,
↓
*3.
↓
*4.
↓
*5.
↓
*6.
↓
*7.
,
,
↓
*1.
↓
*2.
備考
*1: 命令名が示されています。
- *印は, CPU仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
*2: オペランドに指定可能なアドレッシングモードを記号で示されています。
- 記号の意味は , 「■アドレッシングモードの記号」を参照してください。
*3: 命令フォーマットが示されています。
*4: 命令コードが 16 進数表示されています。
*5: マシンサイクル数を表しています。
1. メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
2. メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。た
だし , LD 動作の対象となるレジスタを直後の命令が参照する場合にはインタ
ロックがかかり , 実行サイクル数が +1 増加します。
3. 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令であ
るときまたは命令フォーマット A の命令であるとき , インタロックがかかり , 実
行サイクル数は +1 増加して 2 となります。
4. 直後の命令が MDH/MDL を参照する場合インタロックがかかり , 実行サイクル
数は増加して 2 となります。
1, 2, 3, 4 とも最小は 1 サイクルです。
*6: フラグ変化を表しています。
フラグ変化
フラグの意味
C: 変化する
- : 変化しない
0: クリア
1: セット
N : ネガティブフラグ
Z : ゼロフラグ
V : オーバフラグ
C: キャリフラグ
*7: 命令動作が表記されています。
557
付録
■ アドレッシングモードの記号
表 F-1 アドレッシングモードの記号説明
記号
意味
Ri
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
レジスタ直接 (R13, AC)
Ps
レジスタ直接 ( プログラムステータスレジスタ )
Rs
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
CRi
レジスタ直接 (CR0 ∼ CR15)
CRj
レジスタ直接 (CR0 ∼ CR15)
#i8
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
#i20
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。
#i32
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱います。
#s5
符号付き 5 ビット即値 (-16 ∼ 15)
#s10
符号付き 10 ビット即値 (-512 ∼ 508, 4 の倍数のみ )
#u4
符号なし 4 ビット即値 (0 ∼ 15)
#u5
符号なし 5 ビット即値 (0 ∼ 31)
#u8
符号なし 8 ビット即値 (0 ∼ 255)
#u10
符号なし 10 ビット即値 (0 ∼ 1020, 4 の倍数のみ )
@dir8
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE, 2 の倍数のみ )
@dir10
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC, 4 の倍数のみ )
label9
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC, 2 の倍数のみ )
label12
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC, 2 の倍数のみ )
label20
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13, Rj)
レジスタ相対間接 (Rj:R0 ∼ R15, AC, FP, SP)
@(R14, disp10)
レジスタ相対間接 (disp10:-0X200 ∼ 0X1FC, 4 の倍数のみ )
@(R14, disp9)
レジスタ相対間接 (disp9:-0X100 ∼ 0XFE, 2 の倍数のみ )
@(R14, disp8)
レジスタ相対間接 (disp8:-0X80 ∼ 0X7F)
@(R15, udisp6)
レジスタ相対間接 (udisp6:0 ∼ 60, 4 の倍数のみ )
@Ri+
ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
@R13+
ポストインクリメント付きレジスタ間接 (R13, AC)
@SP+
スタックポップ
@-SP
スタックプッシュ
(reglist)
レジスタリスト
558
付録 F 命令一覧
■ 命令フォーマット
表 F-2 命令フォーマット
型
命令フォーマット
MSB
A
B
LSB
16bit
OP
Rj
Ri
8
4
4
OP
i8/o8
Ri
4
8
4
OP
C
u4/m4
Ri
4
4
8
ADD, ADDN, CMP, LSL, LSR, ASR 命令のみ
* C"
OP
s5/u5
Ri
7
5
4
OP
D
u8/rel8/dir/
reglist
8
OP
E
8
F
OP
5
8
SUB-OP
4
Ri
4
rel11
11
559
付録
F.1
FR ファミリの命令一覧表
FR ファミリの命令一覧表を下記の命令順に記載します。
■ FR ファミリの命令一覧表
付表 F.1-1 加減算命令
付表 F.1-2 比較演算命令
付表 F.1-3 論理演算命令
付表 F.1-4 ビット操作命令
付表 F.1-5 乗除算命令
付表 F.1-6 シフト命令
付表 F.1-7 即値セット /16 ビット /32 ビット即値転送命令
付表 F.1-8 メモリロード命令
付表 F.1-9 メモリストア命令
付表 F.1-10 レジスタ間転送命令
付表 F.1-11 通常分岐 ( 遅延なし ) 命令
付表 F.1-12 遅延分岐命令
付表 F.1-13 その他の命令
付表 F.1-14 20 ビット通常分岐マクロ命令
付表 F.1-15 20 ビット遅延分岐マクロ命令
付表 F.1-16 32 ビット通常分岐マクロ命令
付表 F.1-17 32 ビット遅延分岐マクロ命令
付表 F.1-18 ダイレクトアドレッシング命令
付表 F.1-19 リソース命令
付表 F.1-20 コプロセッサ制御命令
560
付録 F 命令一覧
■ 加減算命令
付表 F.1-1 加減算命令
型
OP
CYCLE
NZVC
ADD Rj, Ri
A
A6
1
CCCC
Ri+Rj → Ri
*ADD #s5, Ri
C'
A4
1
CCCC
Ri+s5 → Ri
ADD #u4, Ri
C
A4
1
CCCC
Ri+extu(i4) → Ri
ゼロ拡張
ADD2 #u4, Ri
C
A5
1
CCCC
Ri+extu(i4) → Ri
マイナス拡張
ADDCRj, Ri
A
A7
1
CCCC
Ri+Rj+c → Ri
キャリ付き加算
ニーモニック
動作
備考
アセンブラでは上位1ビットを符
号と見る
ADDN Rj, Ri
A
A2
1
----
Ri+Rj → Ri
*ADDN #s5, Ri
C'
A0
1
----
Ri+s5 → Ri
アセンブラでは上位1ビットを符
号と見る
ADDN #u4, Ri
C
A0
1
----
Ri+extu(i4) → Ri
ゼロ拡張
Ri+extu(i4) → Ri
マイナス拡張
ADDN2 #u4, Ri
C
A1
1
----
SUB Rj, Ri
A
AC
1
CCCC
RiRj → Ri
SUBC Rj, Ri
A
AD
1
CCCC
RiRj c → Ri
SUBN Rj, Ri
A
AE
1
----
キャリ付き減算
Ri-Rj → Ri
■ 比較演算命令
付表 F.1-2 比較演算命令
型
OP
CYCLE
NZVC
CMP Rj, Ri
*CMP #s5, Ri
A
C'
AA
A8
1
1
CCCC
CCCC
Ri-Rj
Ri-s5
CMP #u4, Ri
C
A8
1
CCCC
Ri-extu(i4)
ゼロ拡張
CMP2 #u4, Ri
C
A9
1
CCCC
Ri-extu(i4)
マイナス拡張
型
OP
CYCLE
NZVC
動作
AND Rj, Ri
A
82
1
CC--
Ri &=Rj
ワード
AND Rj, @Ri
A
84
1+2a
CC--
(Ri) &=Rj
ワード
ANDH Rj, @Ri
A
85
1+2a
CC--
(Ri) &=Rj
ハーフワード
ニーモニック
動作
備考
アセンブラでは上位1ビットを
符号と見る
■ 論理演算命令
付表 F.1-3 論理演算命令
ニーモニック
備考
ANDB Rj, @Ri
A
86
1+2a
CC--
(Ri) &=Rj
バイト
OR Rj, Ri
A
92
1
CC--
Ri | =Rj
ワード
OR Rj, @Ri
A
94
1+2a
CC--
(Ri) | =Rj
ワード
ORH Rj, @Ri
A
95
1+2a
CC--
(Ri) | =Rj
ハーフワード
ORB Rj, @Ri
A
96
1+2a
CC--
(Ri) | =Rj
バイト
EOR Rj, Ri
A
9A
1
CC--
Ri ^ =Rj
ワード
EOR Rj, @Ri
A
9C
1+2a
CC--
(Ri) ^ =Rj
ワード
EORH Rj, @Ri
A
9D
1+2a
CC--
(Ri) ^ =Rj
ハーフワード
EORB Rj, @Ri
A
9E
1+2a
CC--
(Ri) ^ =Rj
バイト
561
付録
■ ビット操作命令
付表 F.1-4 ビット操作命令
ニーモニック
型
OP
CYCLE
NZVC
BANDL #u4, @Ri
C
80
1+2a
----
(Ri) &=(0xF0+u4)
下位 4 ビットを操作
C
81
1+2a
----
(Ri) &=((u4< <4)+0x0F)
上位 4 ビットを操作
----
(Ri) &=u8
BANDH #u4, @Ri
*BAND #u8, @Ri
*1
動作
備考
BORL #u4, @Ri
C
90
1+2a
----
(Ri) | =u4
下位 4 ビットを操作
BORH #u4, @Ri
C
91
1+2a
----
(Ri) | =(u4< <4)
上位 4 ビットを操作
----
(Ri) | =u8
*BOR #u8, @Ri
*2
BEORL #u4, @Ri
BEORH #u4, @Ri
*BEOR #u8, @Ri
C
98
1+2a
----
(Ri) ^ =u4
下位 4 ビットを操作
C
99
1+2a
----
(Ri) ^ =(u4< <4)
上位 4 ビットを操作
----
(Ri) ^ =u8
*3
BTSTL #u4, @Ri
C
88
2+a
0C--
(Ri) &u4
下位 4 ビットテスト
BTSTH #u4, @Ri
C
89
2+a
CC--
(Ri) &(u4< <4)
上位 4 ビットテスト
*1: アセンブラは , u8&0x0F でビットが立っていれば , BANDL を生成し , u8&0xF0 でビットが立っていれば ,
BANDH を生成します。BANDL, BANDH の両方を生成する場合もあります。
*2: アセンブラは , u8&0x0F でビットが立っていれば , BORL を生成し , u8&0xF0 でビットが立っていれば , BORH を生成します。
BORL, BORH の両方を生成する場合もあります。
*3: アセンブラは , u8&0x0F でビットが立っていれば , BEORL を生成し , u8&0xF0 でビットが立っていれば ,
BEORH を生成します。BEORL, BEORH の両方を生成する場合もあります。
■ 乗除算命令
付表 F.1-5 乗除算命令
型
OP
CYCLE
NZVC
動作
MUL Rj, Ri
A
AF
5
CCC-
Ri*Rj → MDH, MDL
32bit*32bit=64bit
MULU Rj, Ri
A
AB
5
CCC-
Ri*Rj → MDH, MDL
符号なし
MULH Rj, Ri
A
BF
3
CC--
Ri*Rj → MDL
16bit*16bit=32bit
MULUH Rj, Ri
A
BB
3
CC--
Ri*Rj → MDL
符号なし
DIV0S Ri
E
97-4
1
----
ステップ演算
DIV0U Ri
E
97-5
1
----
32bit/32bit=32bit
DIV1 Ri
E
97-6
d
-C-C
DIV2 Ri
E
97-7
1
-C-C
DIV3
E
9F-6
1
----
DIV4S
E
9F-7
1
----
36
-C-C
ニーモニック
*DIV Ri *1
備考
MDL/Ri → MDL,
MDL%Ri → MDH
*DIVU Ri *2
-C-C
MDL/Ri → MDL,
MDL%Ri → MDH
*1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。
*2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
562
付録 F 命令一覧
■ シフト命令
付表 F.1-6 シフト命令
型
OP
CYCLE
NZVC
LSL Rj, Ri
A
B6
1
CC-C
Ri < <Rj → Ri
*LSL #u5, Ri(u5:0 ∼ 31)
C'
B4
1
CC-C
Ri < <u5 → Ri
LSL #u4, Ri
C
B4
1
CC-C
Ri < <u4 → Ri
LSL2 #u4, Ri
C
B5
1
CC-C
Ri < <(u4+16)→Ri
LSR Rj, Ri
A
B2
1
CC-C
Ri > >Rj → Ri
*LSR #u5, Ri(u5:0 ∼ 31)
C'
B0
1
CC-C
Ri > >u5 → Ri
LSR #u4, Ri
C
B0
1
CC-C
Ri > >u4 → Ri
LSR2 #u4, Ri
C
B1
1
CC-C
Ri > >(u4+16)→Ri
ASR Rj, Ri
A
BA
1
CC-C
Ri > >Rj → Ri
*ASR #u5, Ri(u5:0 ∼ 31)
C'
B8
1
CC-C
Ri > >u5 → Ri
ASR #u4, Ri
C
B8
1
CC-C
Ri > >u4 → Ri
ASR2 #u4, Ri
C
B9
1
CC-C
Ri > >(u4+16)→Ri
ニーモニック
動作
備考
論理シフト
論理シフト
算術シフト
■ 即値セット /16 ビット /32 ビット即値転送命令
付表 F.1-7 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
LDI:32 #i32, Ri
型
OP
CYCLE
NZVC
E
9F-8
3
----
i32 → Ri
動作
備考
LDI:20#i20, Ri
C
9B
2
----
i20 → Ri
上位 12 ビットはゼロ拡張
LDI:8#i8, Ri
B
C0
1
----
i8 → Ri
上位 24 ビットはゼロ拡張
*LDI# {i8 | i20 | i32} , Ri
*
{i8|i20|i32} →Ri
*: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
563
付録
■ メモリロード命令
付表 F.1-8 メモリロード命令
型
OP
CYCLE
NZVC
LD @Rj, Ri
A
04
b
----
(Rj) → Ri
LD @(R13, Rj), Ri
A
00
b
----
(R13+Rj) → Ri
LD @(R14, disp10), Ri
B
20
b
----
(R14+disp10) → Ri
LD @(R15, udisp6), Ri
C
03
b
----
(R15+udisp6) → Ri
LD @R15+, Ri
E
07-0
b
----
(R15) → Ri, R15+=4
LD @R15+, Rs
E
07-8
b
----
(R15) → Rs, R15+=4
LD @R15+, PS
E
07-9
1+a+b
CCCC
(R15) → PS, R15+=4
LDUH @Rj, Ri
A
05
b
----
(Rj) → Ri
ゼロ拡張
LDUH @(R13, Rj), Ri
A
01
b
----
(R13+Rj) → Ri
ゼロ拡張
LDUH @(R14, disp9), Ri
B
40
b
----
(R14+disp9) → Ri
ゼロ拡張
LDUB @Rj, Ri
A
06
b
----
(Rj) → Ri
ゼロ拡張
LDUB @(R13, Rj), Ri
A
02
b
----
(R13+Rj) → Ri
ゼロ拡張
LDUB @(R14, disp8), Ri
B
60
b
----
(R14+disp8) → Ri
ゼロ拡張
ニーモニック
動作
備考
Rs: 特殊レジスタ *
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
• disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
• udisp6/4 → o4udisp6 は , 符号なしです。
564
付録 F 命令一覧
■ メモリストア命令
付表 F.1-9 メモリストア命令
型
OP
CYCLE
NZVC
ST Ri, @Rj
A
14
a
----
Ri → (Rj)
ワード
ST Ri, @(R13, Rj)
A
10
a
----
Ri → (R13+Rj)
ワード
ST Ri, @(R14, disp10)
B
30
a
----
Ri → (R14+disp10)
ワード
ST Ri, @(R15, udisp6)
C
13
a
----
Ri → (R15+udisp6)
ST Ri, @-R15
E
17-0
a
----
R15-=4, Ri → (R15)
ST Rs, @-R15
E
17-8
a
----
R15-=4, Rs → (R15)
ST PS, @-R15
E
17-9
a
----
R15-=4, PS → (R15)
STH Ri, @Rj
A
15
a
----
Ri → (Rj)
ハーフワード
STH Ri, @(R13, Rj)
A
11
a
----
Ri → (R13+Rj)
ハーフワード
STH Ri, @(R14, disp9)
B
50
a
----
Ri → (R14+disp9)
ハーフワード
STB Ri, @Rj
A
16
a
----
Ri → (Rj)
バイト
STB Ri, @(R13, Rj)
A
12
a
----
Ri → (R13+Rj)
バイト
STB Ri, @(R14, disp8)
B
70
a
----
Ri → (R14+disp8)
バイト
ニーモニック
動作
備考
Rs: 特殊レジスタ *
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
• disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
• udisp6/4 → o4udisp6 は , 符号なしです。
■ レジスタ間転送命令
付表 F.1-10 レジスタ間転送命令
型
OP
CYCLE
NZVC
MOV Rj, Ri
A
8B
1
----
Rj → Ri
汎用レジスタ間転送
MOV Rs, Ri
A
B7
1
----
Rs → Ri
Rs: 特殊レジスタ *
MOV Ri, Rs
E
B3
1
----
Ri → Rs
Rs: 特殊レジスタ *
MOV PS, Ri
E
17-1
1
----
PS → Ri
MOV Ri, PS
E
07-1
c
CCCC
Ri → PS
ニーモニック
動作
備考
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
565
付録
■ 通常分岐 ( 遅延なし ) 命令
付表 F.1-11 通常分岐 ( 遅延なし ) 命令
型
OP
CYCLE
NZVC
JMP @Ri
E
CALL label12
F
97-0
2
----
Ri → PC
D0
2
----
PC+2 → RP,
CALL @Ri
E
97-1
2
----
PC+2 → RP, Ri → PC
RET
E
97-2
2
----
RP → PC
INT #u8
D
1F
3+3a
----
SSP-=4, PS → (SSP),
ニーモニック
動作
備考
PC+2+(label12-PC-2) →PC
リターン
SSP-=4, PC+2 → (SSP),
0→Iフラグ, 0→Sフラグ,
(TBR+0x3FC-u8×4)→PC
INTE
E
9F-3
3+3a
----
SSP-=4, PS → (SSP),
エミュレータ用
SSP-=4, PC+2 → (SSP),
0 → S フラグ ,
(TBR+0x3D8) → PC
RETI
E
97-3
2+2A
CCCC
BRA label9
D
E0
2
----
PC+2+(label9-PC-2) → PC
BNO label9
D
E1
1
----
BEQ label9
D
E2
2/1
----
非分岐
if(Z==1) then
BNE label9
D
E3
2/1
----
↑ s/Z==0
BC label9
D
E4
2/1
----
↑ s/C==1
BNC label9
D
E5
2/1
----
↑ s/C==0
BN label9
D
E6
2/1
----
↑ s/N==1
BP label9
D
E7
2/1
----
↑ s/N==0
BV label9
D
E8
2/1
----
↑ s/V==1
BNV label9
D
E9
2/1
----
↑ s/V==0
BLT label9
D
EA
2/1
----
↑ s/VxorN==1
BGE label9
D
EB
2/1
----
↑ s/VxorN==0
BLE label9
D
EC
2/1
----
↑ s/(VxorN)orZ==1
BGT label9
D
ED
2/1
----
↑ s/(VxorN)orZ==0
BLS label9
D
EE
2/1
----
↑ s/CorZ==1
BHI label9
D
EF
2/1
----
↑ s/CorZ==0
(R15) → PC, R15-=4,
(R15) → PS, R15-=4
PC+2+(label9-PC-2) → PC
<注意事項>
• CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• RETI 命令を実行するときは , S フラグが "0" であることが必要です。
566
付録 F 命令一覧
■ 遅延分岐命令
付表 F.1-12 遅延分岐命令
型
OP
CYCLE
NZVC
JMP:D @Ri
E
9F-0
1
----
Ri → PC
CALL:D label12
F
D8
1
----
PC+4 → RP,
ニーモニック
動作
備考
PC+2+(label12-PC-2) → PC
CALL:D @Ri
E
9F-1
1
----
PC+4 → RP, Ri → PC
RET:D
E
9F-2
1
----
RP → PC
BRA:D label9
D
F0
1
----
PC+2+(label9-PC-2) → PC
BNO:D label9
D
F1
1
----
非分岐
BEQ:D label9
D
F2
1
----
if(Z==1) then
リターン
PC+2+(label9-PC-2) → PC
BNE:D label9
D
F3
1
----
↑ s/Z==0
BC:D label9
D
F4
1
----
↑ s/C==1
BNC:D label9
D
F5
1
----
↑ s/C==0
BN:D label9
D
F6
1
----
↑ s/N==1
BP:D label9
D
F7
1
----
↑ s/N==0
BV:D label9
D
F8
1
----
↑ s/V==1
BNV:D label9
D
F9
1
----
↑ s/V==0
BLT:D label9
D
FA
1
----
↑ s/VxorN==1
BGE:D label9
D
FB
1
----
↑ s/VxorN==0
BLE:D label9
D
FC
1
----
↑ s/(VxorN)orZ==1
BGT:D label9
D
FD
1
----
↑ s/(VxorN)orZ==0
BLS:D label9
D
FE
1
----
↑ s/CorZ==1
BHI:D label9
D
FF
1
----
↑ s/CorZ==0
<注意事項>
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
• 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令
です。複数サイクル命令は置けません。
567
付録
■ その他の命令
付表 F.1-13 その他の命令
型
OP
CYCLE
NOP
E
9F-A
1
----
ANDCCR #u8
D
83
c
CCCC
CCR and u8 → CCR
ORCCR #u8
D
93
c
CCCC
CCRor u8 → CCR
STILM #u8
D
87
1
----
D
A3
1
----
i8 → ILM
R15+=s10
ニーモニック
ADDSP #s10
EXTSB Ri
*1
NZVC
動作
備考
何も変化しない
E
97-8
1
----
符号拡張 8 → 32bit
EXTUB Ri
E
97-9
1
----
ゼロ拡張 8 → 32bit
EXTSH Ri
E
97-A
1
----
符号拡張 16 → 32bit
EXTUH Ri
E
97-B
1
----
ゼロ拡張 16 → 32bit
LDM0(reglist)
D
8C
----
(R15) → reglist,
LDM1(reglist)
D
8D
----
ILM 即値セット
ADDSP 命令
ロードマルチ R0-R7
R15 インクリメント
(R15) → reglist,
ロードマルチ R8-R15
R15 インクリメント
*LDM (reglist)
----
*2
(R15) → reglist,
ロードマルチ R0-R15
R15 インクリメント
STM0(reglist)
D
8E
----
R15 デクリメント ,
ストアマルチ R0-R7
reglist → (R15)
STM1(reglist)
D
8F
----
R15 デクリメント ,
ストアマルチ R8-R15
reglist → (R15)
----
*STM (reglist) *3
R15 デクリメント ,
ストアマルチ R0-R15
reglist → (R15)
ENTER #u10
*4
D
0F
1+a
----
R14 → (R15-4),
関数の入口処理
R15-4 → R14,
R15-u10 → R15
LEAVE
E
9F-9
b
----
XCHB @Rj, Ri
A
8A
2a
----
R14+4 → R15,
関数の出口処理
(R15-4) → R14
Ri → TEMP
セマフォ管理用
(Rj) → Ri
バイトデータ
TEMP → (Rj)
*1: s10 はアセンブラが , s10/4 を計算して s8 にして値を設定します。s10 は符号付きです。
*2: reglist で , R0-R7 のどちらかの指定があれば , LDM0 を生成し , R8-R15 のどちらかの指定があれば , LDM1 を生
成します。LDM0, LDM1 の両方を生成する場合もあります。
*3: reglist で , R0-R7 のどちらかの指定があれば , STM0 を生成し , R8-R15 のどちらかの指定があれば , STM1 を生
成します。STM1, STM0 の両方を生成する場合もあります。
*4: u10 はアセンブラが , u10/4 を計算して u8 にして値を設定します。u10 は符号なしです。
<注意事項>
• LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*(n-1)+b+1 サイクルとなります。
• STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*n+1 サイクルとなります。
568
付録 F 命令一覧
■ 20 ビット通常分岐マクロ命令
付表 F.1-14 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 label20, Ri
動作
次の命令のアドレス→ RP,
備考
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20 label20, Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20 label20, Ri
if(Z==1) then label20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20 label20, Ri
↑ s/Z==0
↑
*BC20 label20, Ri
↑ s/C==1
↑
*BNC20 label20, Ri
↑ s/C==0
↑
*BN20 label20, Ri
↑ s/N==1
↑
*BP20 label20, Ri
↑ s/N==0
↑
*BV20 label20, Ri
↑ s/V==1
↑
*BNV20 label20, Ri
↑ s/V==0
↑
*BLT20 label20, Ri
↑ s/VxorN==1
↑
*BGE20 label20, Ri
↑ s/VxorN==0
↑
*BLE20 label20, Ri
↑ s/(VxorN)orZ==1
↑
*BGT20 label20, Ri
↑ s/(VxorN)orZ==0
↑
*BLS20 label20, Ri
↑ s/CorZ==1
↑
*BHI20 label20, Ri
↑ s/CorZ==0
↑
[ 参考 1] CALL20BRA20
1) -label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL
label12
2) -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20, Ri
CALL
@Ri
[ 参考 2] BRA20
1) -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA
label9
2) -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20, Ri
JMP
@Ri
[ 参考 3] Bcc20
1) -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc
label9
2) -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:20 #label20, Ri
JMP
@Ri
false:
569
付録
■ 20 ビット遅延分岐マクロ命令
付表 F.1-15 20 ビット遅延分岐マクロ命令
ニーモニック
*CALL20:D label20, Ri
動作
次の命令のアドレス +2 → RP,
備考
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20:D label20, Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20:D label20, Ri
if(Z==1) then label20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20:D label20, Ri
↑ s/Z==0
↑
*BC20:D label20, Ri
↑ s/C==1
↑
*BNC20:D label20, Ri
↑ s/C==0
↑
*BN20:D label20, Ri
↑ s/N==1
↑
*BP20:D label20, Ri
↑ s/N==0
↑
*BV20:D label20, Ri
↑ s/V==1
↑
*BNV20:D label20, Ri
↑ s/V==0
↑
*BLT20:D label20, Ri
↑ s/VxorN==1
↑
*BGE20:D label20, Ri
↑ s/VxorN==0
↑
*BLE20:D label20, Ri
↑ s/(VxorN)orZ==1
↑
*BGT20:D label20, Ri
↑ s/(VxorN)orZ==0
↑
*BLS20:D label20, Ri
↑ s/CorZ==1
↑
*BHI20:D label20, Ri
↑ s/CorZ==0
↑
[ 参考 1] CALL20:D
1) -label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
2) -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20, Ri
CALL:D @Ri
[ 参考 2] BRA20:D
1) -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
2) -label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20, Ri
JMP:D
@Ri
[ 参考 3] Bcc20:D
1) -label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D
label9
2) -label20-PC-2
成します。
Bxcc
LDI:20
JMP:D
false:
570
が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
false
xcc は , cc の背反条件
#label20, Ri
@Ri
付録 F 命令一覧
■ 32 ビット通常分岐マクロ命令
付表 F.1-16 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 label32, Ri
動作
次の命令のアドレス→ RP,
備考
Ri: テンポラリレジスタ ( 参考 1 参照 )
label32 → PC
*BRA32 label32, Ri
label32 → PC
*BEQ32 label32, Ri
if(Z==1) then label32 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE32 label32, Ri
↑ s/Z==0
↑
*BC32 label32, Ri
↑ s/C==1
↑
*BNC32 label32, Ri
↑ s/C==0
↑
*BN32 label32, Ri
↑ s/N==1
↑
*BP32 label32, Ri
↑ s/N==0
↑
*BV32 label32, Ri
↑ s/V==1
↑
*BNV32 label32, Ri
↑ s/V==0
↑
*BLT32 label32, Ri
↑ s/VxorN==1
↑
*BGE32 label32, Ri
↑ s/VxorN==0
↑
*BLE32 label32, Ri
↑ s/(VxorN)orZ==1
↑
*BGT32 label32, Ri
↑ s/(VxorN)orZ==0
↑
*BLS32 label32, Ri
↑ s/CorZ==1
↑
*BHI32 label32, Ri
↑ s/CorZ==0
↑
Ri: テンポラリレジスタ ( 参考 2 参照 )
[ 参考 1] CALL32
1) -label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL
label12
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32, Ri
CALL
@Ri
[ 参考 2] BRA32
1) -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA
label9
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32, Ri
JMP
@Ri
[ 参考 3] Bcc32
1) -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc
label9
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32, Ri
JMP
@Ri
false:
571
付録
■ 32 ビット遅延分岐マクロ命令
付表 F.1-17 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32:D label32, Ri
動作
次の命令のアドレス +2 → RP,
備考
Ri:テンポラリレジスタ(参考1参照)
label32 → PC
*BRA32:D label32, Ri
label32 → PC
Ri:テンポラリレジスタ(参考2参照)
*BEQ32:D label32, Ri
if(Z==1) then label32 → PC
Ri:テンポラリレジスタ(参考3参照)
*BNE32:D label32, Ri
↑ s/Z==0
↑
*BC32:D label32, Ri
↑ s/C==1
↑
*BNC32:D label32, Ri
↑ s/C==0
↑
*BN32:D label32, Ri
↑ s/N==1
↑
*BP32:D label32, Ri
↑ s/N==0
↑
*BV32:D label32, Ri
↑ s/V==1
↑
*BNV32:D label32, Ri
↑ s/V==0
↑
*BLT32:D label32, Ri
↑ s/VxorN==1
↑
*BGE32:D label32, Ri
↑ s/VxorN==0
↑
*BLE32:D label32, Ri
↑ s/(VxorN)orZ==1
↑
*BGT32:D label32, Ri
↑ s/(VxorN)orZ==0
↑
*BLS32:D label32, Ri
↑ s/CorZ==1
↑
*BHI32:D label32, Ri
↑ s/CorZ==0
↑
[ 参考 1] CALL32:D
1) -label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32, Ri
CALL:D @Ri
[ 参考 2] BRA32:D
1) -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32, Ri
JMP:D
@Ri
[ 参考 3] Bcc32:D
1) -label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D
label9
2) -label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32, Ri
JMP:D
@Ri
false:
572
付録 F 命令一覧
■ ダイレクトアドレッシング命令
付表 F.1-18 ダイレクトアドレッシング命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
DMOV @dir10, R13
D
08
b
----
(dir10) → R13
ワード
DMOV R13, @dir10
D
18
a
----
R13 → (dir10)
ワード
DMOV @dir10, @R13+
D
0C
2a
----
(dir10) → (R13), R13+=4
ワード
DMOV @R13+, @dir10
D
1C
2a
----
(R13) → (dir10), R13+=4
ワード
DMOV @dir10, @-R15
D
0B
2a
----
R15-=4, (R15) → (dir10)
ワード
DMOV @R15+, @dir10
D
1B
2a
----
(R15) → (dir10), R15+=4
ワード
DMOVH @dir9, R13
D
09
b
----
(dir9) → R13
ハーフワード
DMOVH R13, @dir9
D
19
a
----
R13 → (dir9)
ハーフワード
DMOVH @dir9, @R13+
D
0D
2a
----
(dir9) → (R13), R13+=2
ハーフワード
DMOVH @R13+, @dir9
D
1D
2a
----
(R13) → (dir9), R13+=2
ハーフワード
DMOVB @dir8, R13
D
0A
b
----
(dir8 → R13
バイト
DMOVB R13, @dir8
D
1A
a
----
R13 → (dir8)
バイト
DMOVB @dir8, @R13+
D
0E
2a
----
(dir8) → (R13), R13++
バイト
DMOVB @R13+, @dir8
D
1E
2a
----
(R13) → (dir8), R13++
バイト
<注意事項>
dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8 → dir, dir9/2 → dir, dir10/4 → dirdir8, dir9, dir10 は符号なしです。
■ リソース命令
付表 F.1-19 リソース命令
ニーモニック
LDRES @Ri+, #u4
型
C
OP
BC
CYCLE
a
NZVC
----
動作
(Ri)→u4のリソース
備考
u4: チャネル番号
Ri+=4
STRES #u4, @Ri+
C
BD
a
----
u4 のリソース→ (Ri)
u4: チャネル番号
Ri+=4
<注意事項>
MB91305 では , チャネル番号を持つリソースを搭載していないので , 使用できません。
573
付録
■ コプロセッサ制御命令
付表 F.1-20 コプロセッサ制御命令
ニーモニック
型
OP
CYCLE
NZVC
動作
COPOP #u4, #u8, CRj, CRi
E
9F-C
2+a
----
演算指示
COPLD #u4, #u8, Rj, CRi
E
9F-D
1+2a
----
Rj → CRi
COPST #u4, #u8, CRj, Ri
E
9F-E
1+2a
----
CRj → Ri
COPSV #u4, #u8, CRj, Ri
E
9F-F
1+2a
----
CRj → Ri
備考
エラートラップなし
<注意事項>
• {CRi|CRj}:=CR0|CR1|CR2|CR3|CR4|CR5|CR6|CR7|CR8|CR9|CR10|CR11|CR12|
CR13|CR14|CR15
- u4:= チャネル指定
- u8:= コマンド指定
• MB91305 では , コプロセッサを搭載していないため使用できません。
574
索引
Numerics
0 検出
0 検出 ......................................................................268
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................266
10 ビット A/D コンバータ
10 ビット A/D コンバータの特長 .......................272
外部トリガ変換による A/D 動作 ........................278
ソフト変換による A/D 動作 ................................277
レジスタ構成 .........................................................272
10 ビットスレーブアドレスマスクレジスタ
10 ビットスレーブアドレスマスクレジスタ
(ITMK0 ∼ ITMK3) .........................................359
10 ビットスレーブアドレスレジスタ
10 ビットスレーブアドレスレジスタ
(ITBA0 ∼ ITBA3) ...........................................358
16 ビット
即値セット /16 ビット /32 ビット
即値転送命令 ..................................................563
16 ビットタイマレジスタ
16 ビットタイマレジスタ (TMR) .......................286
16 ビットパルス幅カウンタ
16 ビットパルス幅カウンタ ................................378
LPF のサンプリング間隔について .....................385
カウントクロックの選択 .....................................385
パルス幅カウント動作 .........................................384
レジスタ一覧 .........................................................378
割込み要求発生 .....................................................386
16 ビットフリーランタイマ
16 ビットフリーランタイマの
カウントタイミング ......................................394
16 ビットフリーランタイマの
クリアタイミング ..........................................393
16 ビットフリーランタイマの動作説明 ............393
16 ビットフリーランタイマの特長 ....................388
16 ビットフリーランタイマの
ブロックダイヤグラム ..................................388
16 ビットフリーランタイマの
レジスタ一覧 ..................................................389
16 ビットリロードタイマ
16 ビットリロードタイマの概要 ........................280
動作説明 .................................................................287
レジスタ一覧 .........................................................282
16 ビットリロードレジスタ
16 ビットリロードレジスタ (TMRLR) ..............286
1 検出
1 検出 ......................................................................268
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................266
20 ビット遅延分岐マクロ命令
20 ビット遅延分岐マクロ命令 ............................570
20 ビット通常分岐マクロ命令
20 ビット通常分岐マクロ命令 ............................569
2 サイクル転送
2 サイクル転送 (I/O → SDRAM/FCRAM) .........223
2 サイクル転送 (I/O → SDRAM/FCRAM)
(TYP3 ∼ TYP0=1001B, AWR=0051H,
IOWR=00H) ......................................................222
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=00H) ......................................................221
2 サイクル転送 ( 外部→ I/O)(TYP3 ∼
TYP0=0000B, AWR=0008H, IOWR=00H) ...... 220
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM,
外部 I/O, RAM →内部 RAM もタイミングは
同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=00H) ......................................................219
2 サイクル転送時のデータの動き .....................513
32 ビット
即値セット /16 ビット /32 ビット
即値転送命令 ..................................................563
32 ビット遅延分岐マクロ命令
32 ビット遅延分岐マクロ命令 ........................... 572
32 ビット通常分岐マクロ命令
32 ビット通常分岐マクロ命令 ........................... 571
7 ビットスレーブアドレスマスクレジスタ
7 ビットスレーブアドレスマスクレジスタ
(ISMK0 ∼ ISMK3) .........................................362
7 ビットスレーブアドレスレジスタ
7 ビットスレーブアドレスレジスタ
(ISBA0 ∼ ISBA3) ...........................................361
575
A
A/D
A/D コンバータ .........................................................4
A/D 制御レジスタ
A/D 制御レジスタ (ADCTH, ADCTL) ................274
A/D 変換結果レジスタ
A/D 変換結果レジスタ (ADAT0 ∼ ADAT9) .....276
A/D 変換部テストレジスタ
A/D 変換部テストレジスタ (TEST) ...................276
ACR
ACR0 ∼ ACR7(Area Configuration Register) の
レジスタ構成 ..................................................141
ADCTH
A/D 制御レジスタ (ADCTH, ADCTL) ................274
ADCTL
A/D 制御レジスタ (ADCTH, ADCTL) ................274
ASR
Area Select Register (ASR0 ∼ ASR7)の
レジスタ構成 ..................................................140
ASR および ASZ3 ∼ ASZ0 の設定例 .................168
ASZ
ASR および ASZ3 ∼ ASZ0 の設定例 .................168
AWR
AWR0 ∼ AWR7(Area Wait Register) の
レジスタ構成 ..................................................147
B
BFOK
BFOK の設定 .........................................................466
BFOK0o
BFOK0o の設定の優先順位 .................................467
BSD0
0 検出用データレジスタ (BSD0) ........................266
BSD1
1 検出用データレジスタ (BSD1) ........................266
BSDC
変化点検出用データレジスタ (BSDC) ..............267
BSRR
検出結果レジスタ (BSRR) ...................................267
Bulk IN 転送
Bulk IN 転送 (CPU 書込み /USB 読出し )
タイミングチャート ......................................456
Bulk OUT 転送
コントロール (DATA ステージ )/
Bulk OUT 転送 ................................................431
C
CacHe Enable register
CHER(CacHe Enable register) の
レジスタ構成 ..................................................161
CCR
CCR(Condition Code Register) ................................54
CHER
CHER(CacHe Enable register) の
レジスタ構成 ..................................................161
Chip Select Enable register
CSER(Chip Select Enable register) の
レジスタ構成 ..................................................160
576
CLKB
CPU クロック (CLKB) .........................................102
CLKP
周辺クロック (CLKP) .......................................... 102
CLKR
CLKR: クロックソース制御レジスタ ................ 114
CLKT
外部バスクロック (CLKT) ..................................103
CONT1
CONT1 ....................................................................415
CONT10
CONT10 .................................................................. 422
CONT2
CONT2 ....................................................................416
CONT3
CONT3 ....................................................................417
CONT4
CONT4 ....................................................................418
CONT5
CONT5 ....................................................................419
CONT6
CONT6 ....................................................................419
CONT7
CONT7 ....................................................................420
CONT8
CONT8 ....................................................................421
CONT9
CONT9 ....................................................................421
CPU
CPU ........................................................................... 36
CPU IN 転送
CPU IN 転送 .......................................................... 434
CPU OUT 転送
CPU OUT 転送 ......................................................436
CPU アクセス
CPU アクセス受信時の制御例 ............................445
CPU アクセス送信時の制御例 ............................447
CPU クロック
CPU クロック (CLKB) .........................................102
CSER
CSER(Chip Select Enable register) の
レジスタ構成 ..................................................160
CTBR
CTBR: タイムベースカウンタクリア
レジスタ .......................................................... 114
D
D+ 終端抵抗制御
ボード上の D+ 終端抵抗制御 ............................. 460
DACK
DACK の FR30 シリーズ互換モード ................. 519
DATA ステージ
コントロール (DATA ステージ )/
Bulk OUT 転送 ................................................431
コントロール (DATA ステージ )/ バルク /
インタラプト IN 転送 .................................... 432
Delayed Interrupt Control Register
DICR(Delayed Interrupt Control Register) ............263
DICR
DICR(Delayed Interrupt Control Register) ............263
DICR の DLYI ビット .......................................... 264
DIVR0
DIVR0: 基本クロック分周設定レジスタ 0 ........117
DIVR1
DIVR1: 基本クロック分周設定レジスタ 1 ........120
DLYI ビット
DICR の DLYI ビット ...........................................264
DMA
DMA 受信時の制御例 ..........................................450
DMA 送信時の制御例 ..........................................451
DMA による周辺割込みクリア ..........................501
DMA Controller
DMAC (DMA Controller) ..........................................3
DMA IN 転送
DMA IN 転送 .........................................................437
DMA OUT 転送
DMA OUT 転送 .....................................................438
DMAC
DMAC (DMA Controller) ..........................................3
IOWR0 ∼ IOWR2(I/O Wait Register for DMAC) の
レジスタ構成 ..................................................158
DMACA
DMAC-ch0 ∼ ch4 コントロール / ステータス
レジスタ A[DMACA0 ∼ DMACA4] ............473
DMACB
DMAC-ch0 ∼ ch4 コントロール / ステータス
レジスタ B[DMACB0 ∼ DMACB4] .............479
DMACR
DMAC-ch0 ∼ ch4 DMAC 全体制御レジスタ
[DMACR] .........................................................486
DMAC コントロール / ステータスレジスタ
DMAC-ch0 ∼ ch4 コントロール / ステータス
レジスタ A[DMACA0 ∼ DMACA4] ............473
DMAC-ch0 ∼ ch4 コントロール / ステータス
レジスタ B[DMACB0 ∼ DMACB4] .............479
DMAC 転送元 / 転送先アドレス
設定レジスタ
DMAC-ch0 ∼ ch4 転送元 / 転送先アドレス設定レ
ジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4] ........................................................484
DMASA
DMAC-ch0 ∼ ch4 転送元 / 転送先アドレス
設定レジスタ [DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4] .................................484
DMA アクセス
2 サイクル転送 (I/O → SDRAM/FCRAM) .........223
2 サイクル転送 (I/O → SDRAM/FCRAM)
(TYP3 ∼ TYP0=1001B, AWR=0051H,
IOWR=00H) ......................................................222
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=00H) ......................................................221
2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=00H) ......................................................220
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM,
外部 I/O, RAM →内部 RAM もタイミングは
同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=00H) ......................................................219
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H) ......................................................215
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H) ......................................................217
DMA 外部インタフェース
動作概要 ................................................................ 516
動作例(簡易波形).............................................. 517
DMA コントローラ
主要機能 ................................................................ 470
主要動作 ................................................................ 488
転送アドレス ........................................................ 490
転送回数と転送終了 ............................................ 491
転送タイプ ............................................................ 489
転送モード ............................................................ 488
動作フローチャート ............................................ 510
ハードウェア構成 ................................................470
レジスタ一覧 ........................................................ 471
レジスタ設定時の注意 ........................................ 473
DMA 転送
CPU 制御 ................................................................ 499
DMAC 割込み制御 ............................................... 504
USB の DMA 転送について ................................538
アドレッシングモード ........................................ 498
一時停止 ................................................................ 502
エラーによる停止 ................................................503
外部端子と内部動作タイミングに関する
補足 .................................................................. 505
スリープ中の DMA 転送 .....................................504
チャネル選択と制御 ............................................ 504
データの種類など ................................................499
転送回数制御 ........................................................ 499
動作開始 ................................................................ 501
動作終了 / 停止 ..................................................... 502
ブロックサイズ ....................................................497
ホールド調停 ........................................................ 500
リロード動作 ........................................................ 497
DREQ 端子
DREQ 端子の入力タイミング ............................518
E
EIRR
外部割込要因レジスタ (EIRR : External Interrupt
Request Register) .............................................. 255
EIT
EIT からの復帰 ....................................................... 67
EIT の特長 ...............................................................67
EIT の割込みレベル ...............................................68
EIT ベクタテーブル ...............................................74
EIT 要因 ................................................................... 67
EIT 要因受理の優先度 ...........................................77
ELVR
外部割込要求レベル設定レジスタ (ELVR :
External LeVel Register) ..................................256
ENIR
割込許可レジスタ (ENIR : ENable Interrupt request
Register) ...........................................................255
F
FCRAM
Memory type A(SDRAM/FCRAM) および Memory
type B(FCRAM) ............................................... 152
577
FIFO
FIFO 使用時の動作概要 .......................................340
FIFO0i
FIFO0i .....................................................................405
FIFO0o
FIFO0o ....................................................................405
FIFO1
FIFO1 ......................................................................406
FIFO2
FIFO2 ......................................................................406
FIFO3
FIFO3 ......................................................................407
FIFO コントロールレジスタ
FIFO コントロールレジスタ
(IFCR0 ∼ IFCR3) ............................................364
FIFO 受信数レジスタ
FIFO 受信数レジスタ (IFRN0 ∼ IFRN3) ...........366
FIFO データ数レジスタ
FIFO データ数レジスタ (IFN0 ∼ IFN3) ............363
FIFO データレジスタ
FIFO データレジスタ (IFDR0 ∼ IFDR3) ...........364
FPT-176P-M07
外形寸法図 .................................................................7
端子機能一覧 .............................................................9
端子配列図 .................................................................8
FR
FR CPU .......................................................................2
FR ファミリ
FR ファミリの命令一覧表 ...................................560
G
GET_DESCRIPTOR コマンド
GET_DESCRIPTOR コマンドでの
データステージの中断 ..................................467
H
Hold Request Cancel Level register
HRCL(Hold Request Cancel Level register) ..........246
HRCL
HRCL(Hold Request Cancel Level register) ..........246
制御レジスタ .........................................................250
I
I/O Wait Register
IOWR0 ∼ IOWR2(I/O Wait Register for DMAC) の
レジスタ構成 ..................................................158
I/O ピン
I/O ピン ..................................................................137
I/O ポート
I/O ポート ..................................................................5
ポート基本ブロックダイヤグラム .....................230
I/O マップ
I/O マップの見方 ..................................................522
I2C インタフェース
FIFO を使用しない (FEN=0) 場合 ......................372
FIFO を使用する (FEN=1) 場合 ..........................374
I2C インタフェースの特長 ..................................340
「START」条件 ......................................................367
578
「STOP」条件 .........................................................367
アービトレーション ............................................ 369
アクノリッジ ........................................................ 369
エラーを発生しない通信エラー ........................ 370
スレーブアドレス検出 ........................................ 368
スレーブアドレスマスク .................................... 368
バスエラー ............................................................ 369
マスタアドレッシング ........................................ 369
レジスタ一覧 ........................................................ 343
I2C インタフェース .................................................. 4
IBCR
バスコントロールレジスタ (IBCR) ...................350
IBSR
バスステータスレジスタ (IBSR) ........................ 347
I-Cache
I-Cache を使用するときの設定方法 .....................49
ICCR
クロックコントロールレジスタ
(ICCR0 ∼ ICCR3) ...........................................357
ICR
ICR(Interrupt Control Register) ..............................245
ICR ビット構成 ....................................................... 70
ICR マッピング ....................................................... 70
制御レジスタ ........................................................ 250
ICS
インプットキャプチャコントロールレジスタ
(ICS01, ICS23) ................................................. 398
IDAR
データレジスタ (IDAR0 ∼ IDAR3) ...................363
IFCR
FIFO コントロールレジスタ
(IFCR0 ∼ IFCR3) ............................................ 364
IFDR
FIFO データレジスタ (IFDR0 ∼ IFDR3) ........... 364
IFN
FIFO データ数レジスタ (IFN0 ∼ IFN3) ............363
IFRN
FIFO 受信数レジスタ (IFRN0 ∼ IFRN3) ........... 366
ILM
ILM ........................................................................... 69
ILM(Interrupt Level Mask Register) ........................ 57
INIT
設定初期化リセット (INIT) ................................... 90
設定初期化リセット(INIT)
解除シーケンス ................................................ 93
INIT 端子入力
INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91
Interrupt Control Register
ICR(Interrupt Control Register) ..............................245
INTE 命令
INTE 命令の動作 ....................................................80
INT 命令
INT 命令の動作 ....................................................... 80
IOWR
IOWR0 ∼ IOWR2(I/O Wait Register for DMAC) の
レジスタ構成 ..................................................158
IPCP
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................397
ISBA
7 ビットスレーブアドレスレジスタ
(ISBA0 ∼ ISBA3) ...........................................361
ISMK
7 ビットスレーブアドレスマスクレジスタ
(ISMK0 ∼ ISMK3) ..........................................362
ITBA
10 ビットスレーブアドレスレジスタ
(ITBA0 ∼ ITBA3) ...........................................358
ITMK
10 ビットスレーブアドレスマスクレジスタ
(ITMK0 ∼ ITMK3) .........................................359
I フラグ
I フラグ ....................................................................69
P
PLL
PLL 逓倍率 ............................................................ 100
PLL 逓倍率変更後の待ち時間 ............................101
PLL 動作許可 .......................................................... 99
PPG
PPG ............................................................................. 5
PPG 出力オール "L" または , オール "H" の
出力方法例 ......................................................306
概要 ........................................................................296
ブロックダイヤグラム ........................................ 298
レジスタ一覧 ........................................................ 297
割込要因とタイミングチャート ........................ 306
PPG 周期設定レジスタ
PPG 周期設定レジスタ (PCSR0 ∼ PCSR3) ....... 302
PPG タイマ
PPG タイマの注意事項 ........................................ 307
コントロールステータスレジスタ
(PCNH0 ∼ PCNH3, PCNL0 ∼ PCNL3) ........299
PPG タイマレジスタ
PPG タイマレジスタ (PTMR0 ∼ PTMR3) ......... 303
PPG デューティ設定レジスタ
PPG デューティ設定レジスタ
(PDUT0 ∼ PDUT3) .........................................303
PS
PS(Program Status) ................................................... 53
PTMR
PPG タイマレジスタ (PTMR0 ∼ PTMR3) ......... 303
PWC
PWC ............................................................................5
PWCC2
PWC 制御レジスタ 2(PWCC2) ............................382
PWCCH
PWC 制御レジスタ (PWCCH) ............................. 380
PWCCL
PWC 制御レジスタ (PWCCL) ............................. 379
PWCD
PWC データレジスタ (PWCD) ........................... 381
PWCUD
PWC 上限値設定レジスタ (PWCUD) ................. 383
PWC 上限値設定レジスタ
PWC 上限値設定レジスタ (PWCUD) ................. 383
PWC 制御レジスタ
PWC 制御レジスタ (PWCCH) ............................. 380
PWC 制御レジスタ (PWCCL) ............................. 379
PWC 制御レジスタ 2
PWC 制御レジスタ 2(PWCC2) ............................382
PWC データレジスタ
PWC データレジスタ (PWCD) ........................... 381
PWM
PWM 動作 .............................................................. 304
PC
R
M
MB91305
外形寸法図 .................................................................7
端子機能一覧 .............................................................9
端子配列図 .................................................................8
MCRA
MCRA (Memory Configuration Register for extend
type-A) のレジスタ構成 .................................155
MCRB
MCRB (Memory Configuration Register for extend
type-B) のレジスタ構成 .................................157
Memory Configuration Register for extend type-A
MCRA (Memory Configuration Register for extend
type-A) のレジスタ構成 .................................155
Memory Configuration Register for extend type-B
MCRB (Memory Configuration Register for extend
type-B) のレジスタ構成 .................................157
Memory type A
Memory type A(SDRAM/FCRAM) および
Memory type B(FCRAM) ................................152
Memory type B
Memory type A(SDRAM/FCRAM) および
Memory type B(FCRAM) ................................152
MODR
モードレジスタ (MODR) .......................................87
N
NMI
NMI .........................................................................259
NMI(Non Maskable Interrupt) ................................247
ユーザ割込み・NMI の動作 ..................................79
Non Maskable Interrupt
NMI(Non Maskable Interrupt) ................................247
PC(Program Counter) ...............................................57
PCSR
PPG 周期設定レジスタ (PCSR0 ∼ PCSR3) .......302
PDR
ポートデータレジスタ (PDR) .............................232
PDUT
PPG デューティ設定レジスタ
(PDUT0 ∼ PDUT3) .........................................303
PFR レジスタ
PFR レジスタの初期値と機能 ............................236
RCR
RCR(Refresh Control Register) の
レジスタ構成 ..................................................165
REALOS
ビットサーチモジュール (REALOS 使用 ) ........... 4
リロードタイマ
(REALOS 用 1 チャネル含む ) .......................... 4
579
Refresh Control Register
RCR(Refresh Control Register) の
レジスタ構成 ..................................................165
RESET
RESET ....................................................................425
RETI 命令
RETI 命令の動作 .....................................................82
RP
RP(Return Pointer) ....................................................58
RSIZE0
RSIZE0 ....................................................................413
RSIZE1
RSIZE1 ....................................................................413
RSRR
RSRR: リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ......................................106
RST
動作初期化リセット (RST) ....................................90
動作初期化リセット(RST)
解除シーケンス ................................................93
S
SCR
SCR(System Condition code Register) .....................56
シリアルコントロールレジスタ
(SCR0 ∼ SCR4) ...............................................321
SDRAM(FCRAM) インタフェース
SDRAM(FCRAM) インタフェース .....................172
SDRAM/FCRAM
Memory type A(SDRAM/FCRAM) および
Memory type B(FCRAM) ................................152
SDRAM/FCRAM インタフェース
アドレスマルチプレックスフォーマット .........210
セルフリフレッシュ .............................................209
タイミングチャート .............................................207
パワーオンシーケンス .........................................210
複数領域への SDRAM/FCRAM 接続 .................210
メモリ接続例 .........................................................211
SETUP ステージ
コントロール転送の SETUP ステージ ( 一部を除
く標準コマンド ) ............................................427
コントロール転送の SETUP ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME)) ......429
SIDR
シリアルインプットデータレジスタ (SIDR0 ∼
SIDR4) / シリアルアウトプットデータ
レジスタ (SODR0 ∼ SODR4) .......................323
SMR
シリアルモードレジスタ (SMR0 ∼ SMR4) ......320
SODR
シリアルインプットデータレジスタ (SIDR0 ∼
SIDR4) / シリアルアウトプットデータ
レジスタ (SODR0 ∼ SODR4) .......................323
SSP
SSP(System Stack Pointer) .................................58, 71
SSR
シリアルステータスレジスタ
(SSR0 ∼ SSR4) ...............................................324
580
ST1
ST1 ..........................................................................408
ST2
ST2 ..........................................................................409
ST3
ST3 ..........................................................................410
ST4
ST4 ..........................................................................411
ST5
ST5 ..........................................................................412
STATUS ステージ
コントロール転送の STATUS ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME)) .....430
コントロール転送の STATUS ステージ ( 一部を
除く標準コマンド ) ........................................ 430
STCR
STCR: スタンバイ制御レジスタ ........................ 108
STCR:SRST ビット
STCR:SRST ビット書込み ( ソフトウェア
リセット ) .......................................................... 91
STOP 状態
STOP 状態からの復帰動作について .................. 260
外部割込みを使用したクロック発振停止した
STOP 状態からの復帰時における
注意事項 .......................................................... 259
SUSPEND
SUSPEND 時の USB クロック制御例 ................ 463
T
TBCR
TBCR: タイムベースカウンタ制御
レジスタ .......................................................... 111
TBR
TBR(Table Base Register) .................................. 58, 73
TCCS
タイマコントロールステータスレジスタ
(TCCS) .............................................................390
TCDT
タイマデータレジスタ (TCDT) .......................... 389
TCR
TCR(Terminal and timing Control Register) の
レジスタ構成 ..................................................162
Terminal and timing Control Register
TCR(Terminal and timing Control Register) の
レジスタ構成 ..................................................162
TMCSR
コントロールステータスレジスタ
(TMCSR) .......................................................... 283
TMR
16 ビットタイマレジスタ (TMR) .......................286
TMRLR
16 ビットリロードレジスタ (TMRLR) ..............286
TRSIZE
TRSIZE ................................................................... 424
TTSIZE
TTSIZE ................................................................... 423
U
UART
UART ..........................................................................4
UART のクロック選択 .........................................327
UART の使用上の注意 .........................................334
UART の使用例 .....................................................335
UART の動作モード .............................................327
UART の特長 .........................................................318
ブロックダイヤグラム .........................................319
レジスタ一覧 .........................................................318
割込み発生およびフラグの
セットタイミング ..........................................331
UCLK48
UCLK48 の精度 .....................................................465
USB
USB の DMA 転送について ................................538
USB のチップセレクト領域設定 ........................536
USB のリセット ....................................................538
USB の割込みについて ........................................537
USB ファンクション機能 ( 機能の有無を
モード端子により選択可能 ) ............................5
USB 機能
USB 機能を使用するには ....................................536
USB クロック制御
SUSPEND 時の USB クロック制御例 ................463
USB コネクタ
USB コネクタの接続 / 未接続の検知 .................464
USB バスリセット
USB バスリセット後のマクロの状態 ................468
USB 標準要求コマンド
USB 標準要求コマンドに対するマクロの
自動応答内容 ..................................................461
USB ファンクション
Bulk IN 転送 (CPU 書込み /USB 読出し )
タイミングチャート ......................................456
Bulk OUT 転送 (CPU 読出し /USB 書込み ) タイミ
ングチャート ..................................................458
SUSPEND 時の USB クロック制御例 ................463
UCLK48 の精度 .....................................................465
USB コネクタの接続 / 未接続の検知 .................464
USB 標準要求コマンドに対するマクロの
自動応答内容 ..................................................461
USB ファンクションの概要 ................................402
USB ファンクションの動作 ................................426
デフォルト状態での USB マクロの動作 ...........462
ボード上の D+ 終端抵抗制御 .............................460
レジスタ表記 .........................................................404
レジスタマップ .....................................................425
割込み要因一覧 .....................................................441
CPU アクセス受信時の制御例 ............................445
CPU アクセス送信時の制御例 ............................447
DMA 受信時の制御例 ..........................................450
DMA 送信時の制御例 ..........................................451
セットアップ制御例 .............................................444
補足事項 .................................................................455
ラストパケット送信データの書込み .................449
USB マクロ
デフォルト状態での USB マクロの動作 ...........462
USP
USP(User Stack Pointer) ...........................................59
UTIM
UTIM0 ∼ UTIM4 (U-TIMER) ..............................311
UTIMC
UTIMC0 ∼ UTIMC4
(U-TIMER Control register) ............................. 312
U-TIMER
U-TIMER の概要 ................................................... 310
カスケードモード ................................................316
ブロックダイヤグラム ........................................ 310
レジスタ一覧 ........................................................ 310
UTIMR
UTIMR0 ∼ UTIMR4(reload register) ...................311
581
あ
アービトレーション
アービトレーション .............................................369
アクセスモード
アクセスモード .......................................................84
アクノリッジ
アクノリッジ .........................................................369
アドレス / データマルチプレックスアクセス
通常アクセスおよびアドレス /
データマルチプレックスアクセス ..............148
アドレス / データマルチプレックスインタフェース
CSn → RD/WR セットアップ設定 (TYP3 ∼
TYP0=0101B, AWR=100BH) ...........................202
外部ウェイトあり (TYP3 ∼ TYP0=0101B,
AWR=1008H) ...................................................201
外部ウェイトなし (TYP3 ∼ TYP0=0100B,
AWR=0008H) ...................................................199
アドレッシングモード
アドレッシングモードの記号 .............................558
エントリ更新
キャッシュのエントリ更新 ..................................47
か
インターバルタイマ
その他のインターバルタイマ .................................5
インタフェース
I2C インタフェース ..................................................4
バスインタフェース .................................................2
インタラプト IN 転送
コントロール (DATA ステージ )/ バルク /
インタラプト IN 転送 ....................................432
インプットキャプチャ
16 ビットインプットキャプチャの動作 ............400
16 ビットインプットキャプチャの
入力タイミング ..............................................400
インプットキャプチャの概要 .............................396
インプットキャプチャの
ブロックダイヤグラム ..................................396
インプットキャプチャのレジスタ一覧 .............397
インプットキャプチャコントロールレジスタ
インプットキャプチャコントロールレジスタ
(ICS01, ICS23) .................................................398
インプットキャプチャデータレジスタ
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................397
外部アクセス
プリフェッチによる外部アクセスを開始する基本
条件 .................................................................. 203
外部転送
外部転送要求端子 ................................................492
外部トリガ変換
外部トリガ変換による A/D 動作 .......................278
外部バスアクセス
外部バスアクセス ................................................175
外部バスインタフェース
外部バスインタフェースの使用上の注意 ........227
外部バスインタフェースの設定手順 ................ 226
外部バスインタフェースの
ブロックダイヤグラム ..................................136
外部バスインタフェースのレジスタ一覧 ........138
外部バスインタフェースのレジスタ概要 ........139
外部バスインタフェースの特長 ........................ 134
外部バスクロック
外部バスクロック (CLKT) ..................................103
外部割込み
外部割込みの動作手順について ........................ 257
外部割込みの動作について ................................257
外部割込み要求レベルについて ........................ 258
外部割込みを使用したクロック発振停止した
STOP 状態からの復帰時における
注意事項 .......................................................... 259
スタンバイからの復帰について ........................ 257
外部割込制御部
ブロックダイヤグラム ........................................ 254
レジスタ一覧 ........................................................ 254
外部割込要因レジスタ
外部割込要因レジスタ (EIRR : External Interrupt
Request Register) .............................................. 255
外部割込要求レベル設定レジスタ
外部割込要求レベル設定レジスタ (ELVR :
External LeVel Register) ..................................256
加減算命令
加減算命令 ............................................................ 561
カスケードモード
カスケードモード ................................................316
う
き
ウォッチドッグ
ウォッチドッグリセット .......................................92
ウォッチドッグタイマ制御レジスタ
RSRR: リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ......................................106
基本クロック分周設定レジスタ 0
DIVR0: 基本クロック分周設定レジスタ 0 ....... 117
基本クロック分周設定レジスタ 1
DIVR1: 基本クロック分周設定レジスタ 1 ....... 120
基本プログラミングモデル
基本プログラミングモデル ..................................51
キャッシュ状態
各動作モード時のキャッシュの状態 .................. 46
い
え
エンドポイントバッファ
エンドポイントバッファの設定 .........................442
設定内容 .................................................................443
設定方法 .................................................................442
582
く
クロック
クロックについて ..................................................27
クロックコントロールスレジスタ
クロックコントロールレジスタ
(ICCR0 ∼ ICCR3) ...........................................357
クロック生成制御部
クロック生成制御部の
ブロックダイヤグラム ..................................105
クロックソース制御レジスタ
CLKR: クロックソース制御レジスタ ................114
クロック同期モード
クロック同期モード .............................................329
クロック分周
分周比の設定 .........................................................104
け
検出結果レジスタ
検出結果レジスタ (BSRR) ...................................267
原発振入力
電源投入時の原発振入力について .......................27
こ
コプロセッサ
コプロセッサエラートラップ ...............................82
コプロセッサ不在トラップ ...................................82
コプロセッサ制御命令
コプロセッサ制御命令 .........................................574
コントローラ
割込みコントローラ .................................................4
コントロールステータスレジスタ
コントロールステータスレジスタ
(TMCSR) ..........................................................283
コントロール転送
BFOK0o の設定の優先順位 .................................467
BFOK の設定 .........................................................466
GET_DESCRIPTOR コマンドでの
データステージの中断 ..................................467
コントロール転送の SETUP ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME)) ......429
コントロール転送の SETUP ステージ ( 一部を除
く標準コマンド ) ............................................427
コントロール転送の STATUS ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME)) ......430
コントロール転送の STATUS ステージ ( 一部を
除く標準コマンド ) ........................................430
コントロール (DATA ステージ )/
Bulk OUT 転送 ................................................431
コントロール (DATA ステージ )/ バルク /
インタラプト IN 転送 ....................................432
コンバータ
A/D コンバータ .........................................................4
さ
算術演算
算術演算 ...................................................................38
し
自動応答内容
USB 標準要求コマンドに対するマクロの
自動応答内容 ..................................................461
シフト命令
シフト命令 ............................................................ 563
時分割入出力インタフェース
時分割入出力インタフェース ............................171
周辺クロック
周辺クロック (CLKP) .......................................... 102
周辺割込み
DMA による周辺割込みクリア .......................... 501
乗除算命令
乗除算命令 ............................................................ 562
乗除算レジスタ
MDH,MDL (Multiply & Divide register:
乗除算結果レジスタ ) ...................................... 59
シリアルアウトプットデータレジスタ
シリアルインプットデータレジスタ (SIDR0 ∼
SIDR4) / シリアルアウトプットデータ
レジスタ (SODR0 ∼ SODR4) .......................323
シリアルインプットデータレジスタ
シリアルインプットデータレジスタ (SIDR0 ∼
SIDR4) / シリアルアウトプットデータ
レジスタ (SODR0 ∼ SODR4) .......................323
シリアルコントロールレジスタ
シリアルコントロールレジスタ
(SCR0 ∼ SCR4) .............................................. 321
シリアルステータスレジスタ
シリアルステータスレジスタ
(SSR0 ∼ SSR4) ............................................... 324
シリアルモードレジスタ
シリアルモードレジスタ (SMR0 ∼ SMR4) ...... 320
自励発振
自励発振(X0/X1 端子入力)................................98
す
水晶発振回路
水晶発振回路について .......................................... 26
スタンバイ
スタンバイからの復帰について ........................ 257
スタンバイ制御レジスタ
STCR: スタンバイ制御レジスタ ........................ 108
スタンバイモード
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 249
ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 2 サイクル転送 ......... 495
ステップ / ブロック転送 2 サイクル転送フライバイ転
送
ステップ / ブロック転送 2 サイクル転送
フライバイ転送 .............................................. 496
ステップトレーストラップ
ステップトレーストラップの動作 ...................... 81
ストア
ロードとストア ......................................................38
ストップモード
ストップモード ....................................................130
ストップモード復帰後の待ち時間 .................... 101
583
スリープモード
スリープモード .....................................................129
スレーブアドレス検出
スレーブアドレス検出 .........................................368
スレーブアドレスマスク
スレーブアドレスマスク .....................................368
せ
制限事項
制限事項 ...................................................................27
接続例
外部との接続例 .............................................177, 181
設定初期化
設定初期化後の待ち時間 .....................................101
設定初期化リセット
設定初期化リセット (INIT) ...................................90
設定初期化リセット(INIT)
解除シーケンス ................................................93
設定内容
設定内容 .................................................................443
設定方法
設定方法 .................................................................442
専用レジスタ
CCR(Condition Code Register) ................................54
ILM(Interrupt Level Mask Register) ........................57
MDH,MDL(Multiply & Divide register:
乗除算結果レジスタ ) ......................................59
PC(Program Counter) ...............................................57
PS(Program Status) ...................................................53
RP(Return Pointer) ....................................................58
SCR(System Condition code Register) .....................56
SSP(System Stack Pointer) .................................58, 71
TBR(Table Base Register) ..................................58, 73
USP(User Stack Pointer) ...........................................59
そ
即値セット
即値セット /16 ビット /32 ビット
即値転送命令 ..................................................563
その他
その他のインターバルタイマ .................................5
その他の特長 .............................................................5
その他の命令
その他の命令 .........................................................568
ソフトウェア要求
ソフトウェア要求 .................................................492
ソフト変換
ソフト変換による A/D 動作 ................................277
ソフト変換アナログ入力選択レジスタ
ソフト変換アナログ入力選択レジスタ
(ADCH) ............................................................275
た
タイマコントロールステータスレジスタ
タイマコントロールステータスレジスタ
(TCCS) ..............................................................390
タイマデータレジスタ
タイマデータレジスタ (TCDT) ..........................389
584
タイムベースカウンタ
タイムベースカウンタ ........................................ 122
タイムベースカウンタクリアレジスタ
CTBR: タイムベースカウンタクリア
レジスタ .......................................................... 114
タイムベースカウンタ制御レジスタ
TBCR: タイムベースカウンタ制御
レジスタ .......................................................... 111
ダイレクトアドレッシング
ダイレクトアドレッシング ..................................39
ダイレクトアドレッシング命令
ダイレクトアドレッシング命令 ........................ 573
ダイレクトアドレッシング領域
ダイレクトアドレッシング領域 .......................... 32
多重 EIT
ユーザ割込み・NMI の動作 ..................................79
端子状態
端子状態一覧 ........................................................ 553
ち
遅延スロット
遅延スロット .......................................................... 83
遅延スロット付き動作
遅延スロット付き動作の制限事項 ...................... 65
遅延スロット付き動作の動作説明 ...................... 64
遅延スロット付き動作の命令 ..............................64
遅延スロットなし動作
遅延スロットなし動作の動作説明 ...................... 66
遅延スロットなし動作の命令 ..............................66
遅延分岐命令
遅延分岐命令 ........................................................ 567
遅延割込み
割込み番号 ............................................................ 264
遅延割込みモジュール
レジスタ一覧 ........................................................ 262
チップセレクト領域
USB のチップセレクト領域設定 ........................ 536
調歩同期
非同期 ( 調歩同期 ) モード ..................................328
つ
通常アクセス
通常アクセスおよびアドレス /
データマルチプレックスアクセス ..............148
通常スタンバイ動作
通常スタンバイ動作と
同期スタンバイ動作 ...................................... 131
通常バスインタフェース
CSn 遅延設定 (TYP3 ∼ TYP0=0000B,
AWR=000CH) ..................................................193
CSn → RD/WR セットアップ・RD/WR → CSn
ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH) ..................................................194
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=51H) ......................................................195
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=51H) ......................................................196
WR+ バイトコントロールタイプ (TYP3 ∼ TYP0=
0010B, AWR=0008H) .......................................187
外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,
AWR=2008H) ...................................................191
基本タイミング ( アクセスが連続する場合 )
(TYP3 ∼ TYP0= 0000B, AWR=0008H) .........186
自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,
AWR=2008H) ...................................................190
通常バスインタフェース .....................................171
同期ライトイネーブル出力タイミング (TYP3 ∼
TYP0=0000B, AWR=0000H) ...........................192
ライト→ライトタイミング (TYP3 ∼
TYP0=0000B, AWR=0018H) ...........................189
リード→ライトタイミング (TYP3 ∼
TYP0=0000B, AWR=0048H) ...........................188
通常分岐命令
通常分岐 ( 遅延なし ) 命令 ..................................566
通常リセット
通常リセット動作 ...................................................96
ツールリセット端子
ツールリセット端子 (TRST) について ................26
て
逓倍率変更
PLL 逓倍率変更後の待ち時間 ............................101
データステージ
GET_DESCRIPTOR コマンドでの
データステージの中断 ..................................467
データパス
2 サイクル転送時のデータの動き ......................513
フライバイ転送時のデータの動き .....................515
データレジスタ
データレジスタ (IDAR0 ∼ IDAR3) ...................363
デバイス
デバイスの動作状態 .............................................126
デバイス状態制御
デバイス状態制御の概要 .....................................125
デマンド転送 2 サイクル転送
デマンド転送 2 サイクル転送 .............................494
デマンド転送フライバイ転送
デマンド転送フライバイ転送 .............................495
電源
電源端子について ...................................................26
電源投入 / 切断時の注意事項 ...............................27
電源投入後の待ち時間 .........................................101
電源投入時について ...............................................27
電源投入時の原発振入力について .......................27
転送シーケンス
転送シーケンスの選択 .........................................493
転送要求
転送要求の受付けと転送 .....................................501
と
同期スタンバイ動作
通常スタンバイ動作と
同期スタンバイ動作 ......................................131
同期リセット
同期リセット動作 ...................................................96
動作初期化リセット
動作初期化リセット (RST) ....................................90
動作初期化リセット(RST)
解除シーケンス ................................................ 93
動作モード
動作モードの概要 ..................................................84
特長
その他の特長 ............................................................ 5
な
内蔵周辺要求
内蔵周辺要求 ........................................................ 492
内部アーキテクチャ
内部アーキテクチャの概要 ..................................33
内部アーキテクチャの構造 ..................................35
内部アーキテクチャの特長 ..................................34
内部動作クロック
内部動作クロックの生成 ...................................... 98
に
入出力回路形式
入出力回路形式 ......................................................19
は
バースト 2 サイクル転送
バースト 2 サイクル転送 .................................... 493
バーストアクセス
バーストアクセス (first wait cycle:1,page wait
cycle:1)(TYP3 ∼ TYP0=0000B,
AWR= 3208H) ..................................................197
バースト長
バースト長設定とプリフェッチ効率 ................ 205
バーストフライバイ転送
バーストフライバイ転送 .................................... 494
ハーバード
ハーバード←→プリンストン
バスコンバータ ................................................ 37
ハーフワードアクセス
ハーフワードアクセス ........................................ 183
バイトオーダリング
バイトオーダリング .............................................. 60
バスアービトレーション
バス権開放 ............................................................ 224
バス権獲得 ............................................................ 225
バスインタフェース
バスインタフェース ................................................ 2
バスエラー
バスエラー ............................................................ 369
バスコントロールスレジスタ
バスコントロールレジスタ (IBCR) ...................350
バスコンバータ
32 ビット←→ 16 ビットバスコンバータ ........... 36
ハーバード←→プリンストン
バスコンバータ ................................................ 37
バスステータスレジスタ
バスステータスレジスタ (IBSR) ........................ 347
バスモード
バスモード .............................................................. 84
バスモード 2
バスモード 2 ( 外 ROM 外バスモード ) ............... 85
585
発振安定待ち
発振安定待ち発生要因 ...........................................94
発振安定待ち時間
発振安定待ち時間の選択 .......................................95
バルク転送
コントロール (DATA ステージ )/ バルク /
インタラプト IN 転送 ....................................432
汎用レジスタ
汎用レジスタ ...........................................................52
ひ
比較演算命令
比較演算命令 .........................................................561
ビッグエンディアン
ビッグエンディアンのデータバス幅 .................174
ビッグエンディアンの
データフォーマット ......................................173
ビットオーダリング
ビットオーダリング ...............................................60
ビットサーチモジュール
0 検出 ......................................................................268
1 検出 ......................................................................268
退避・復帰の処理 .................................................270
ビットサーチモジュール (REALOS 使用 ) ...........4
変化点検出 .............................................................269
レジスタ一覧 .........................................................265
ビット操作
論理演算とビット操作 ...........................................38
ビット操作命令
ビット操作命令 .....................................................562
非同期モード
非同期 ( 調歩同期 ) モード ..................................328
ふ
ファンクション
USB ファンクション機能 ( 機能の有無を
モード端子により選択可能 ) ............................5
フライバイ転送
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H) ......................................................215
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B, AWR=0008H,
IOWR=41H) ......................................................217
フライバイ転送時のデータの動き .....................515
フラッシュメモリ
ロードプログラムを利用して , フラッシュメモリ
への書込みを行う例 ......................................550
フリーランタイマ
フリーランタイマ .....................................................5
プリフェッチ
プリフェッチ許可領域に対する制限事項 .........206
プリフェッチによる外部アクセスを開始する基本
条件 ..................................................................203
プリフェッチバッファからの読出し .................205
プリフェッチバッファのクリア , 更新 ..............206
プリフェッチアクセス
1 回のプリフェッチアクセス動作の単位 ..........204
プリフェッチアクセスの一時停止と
任意クリア ......................................................204
586
プリフェッチ効率
バースト長設定とプリフェッチ効率 ................ 205
プリンストン
ハーバード←→プリンストン
バスコンバータ ................................................ 37
プルアップ機能レジスタ
プルアップ機能レジスタ (PCR) .........................235
プログラムローダモード
詳細 ........................................................................540
設定方法 ................................................................ 539
ブロックダイヤグラム
10 ビット A/D コンバータの
ブロックダイヤグラム ..................................273
16 ビットパルス幅カウンタの
ブロックダイヤグラム ..................................378
16 ビットフリーランタイマの
ブロックダイヤグラム ..................................388
16 ビットリロードタイマの
ブロックダイヤグラム ..................................281
DMA コントローラの
ブロックダイヤグラム ..................................472
I2C インタフェースの
ブロックダイヤグラム ..................................346
MB91305 のブロックダイヤグラム .......................6
PPG のブロックダイヤグラム ............................298
UART のブロックダイヤグラム ........................ 319
USB ファンクションの
ブロックダイヤグラム ..................................403
U-TIMER のブロックダイヤグラム ...................310
インプットキャプチャの
ブロックダイヤグラム ..................................396
外部バスインタフェースの
ブロックダイヤグラム ..................................136
外部割込制御部のブロックダイヤグラム ........254
クロック生成制御部の
ブロックダイヤグラム ..................................105
遅延割込みモジュールの
ブロックダイヤグラム ..................................262
ビットサーチモジュールの
ブロックダイヤグラム ..................................265
ポート基本ブロックダイヤグラム .................... 230
割込みコントローラの
ブロックダイヤグラム ..................................244
分岐
分岐 ..........................................................................38
分岐命令
分岐命令の概要 ......................................................63
分周比
分周比の設定 ........................................................ 104
へ
ベクタテーブル
EIT ベクタテーブル ...............................................74
変化点検出
変化点検出 ............................................................ 269
変化点検出用データレジスタ
変化点検出用データレジスタ (BSDC) ..............267
ほ
ポート機能レジスタ
ポート機能レジスタ (PFR) ..................................234
ポートデータレジスタ
ポートデータレジスタ (PDR) .............................232
ポート方向レジスタ
ポート方向レジスタ (DDR) ................................233
ホールドリクエスト
ホールドリクエスト取下げ要求 (Hold Request
Cancel Request) ................................................248
ホールドリクエスト取り下げ要求機能
シーケンス .............................................................251
ハードウェア構成 .................................................250
ボーレート
ボーレートの計算 .................................................315
ま
マスタアドレッシング
マスタアドレッシング .........................................369
み
未使用入力端子
未使用入力端子の処理について ...........................26
未定義命令例外
未定義命令例外の動作 ...........................................81
め
命令
20 ビット遅延分岐マクロ命令 ............................570
20 ビット通常分岐マクロ命令 ............................569
32 ビット遅延分岐マクロ命令 ............................572
32 ビット通常分岐マクロ命令 ............................571
加減算命令 .............................................................561
コプロセッサ制御命令 .........................................574
シフト命令 .............................................................563
乗除算命令 .............................................................562
即値セット /16 ビット /32 ビット
即値転送命令 ..................................................563
その他の命令 .........................................................568
ダイレクトアドレッシング命令 .........................573
遅延分岐命令 .........................................................567
通常分岐 ( 遅延なし ) 命令 ..................................566
比較演算命令 .........................................................561
ビット操作命令 .....................................................562
メモリストア命令 .................................................565
メモリロード命令 .................................................564
リソース命令 .........................................................573
レジスタ間転送命令 .............................................565
論理演算命令 .........................................................561
命令一覧表
FR ファミリの命令一覧表 ...................................560
命令一覧表の読み方 .............................................557
命令概要
その他の命令概要 ...................................................39
命令キャッシュ
I-Cache を使用するときの設定方法 .....................49
各動作モード時のキャッシュの状態 ...................46
キャッシュ可能領域 .............................................. 48
キャッシュのエントリ更新 ..................................47
制御レジスタ構成 ..................................................43
本体構成 .................................................................. 41
命令キャッシュの概要 .......................................... 40
命令キャッシュメモリ ............................................ 3
命令フォーマット
命令フォーマット ................................................559
メモリ
内蔵メモリ ................................................................ 3
メモリ空間
ダイレクトアドレッシング領域 .......................... 32
メモリストア命令
メモリストア命令 ................................................565
メモリマップ
メモリマップ ............................................ 32, 62, 549
メモリロード命令
メモリロード命令 ................................................564
も
モード端子
モード端子 .............................................................. 86
モード端子 (MD0 ∼ MD3) について ................... 26
ゆ
ユーザ割込み
ユーザ割込み・NMI の動作 ..................................79
優先順位
優先順位判定 ........................................................ 247
ら
ラストパケット
ラストパケット送信データの書込み ................ 449
ラッチアップ
ラッチアップ防止のために ..................................26
り
リセット
通常リセット動作 ..................................................96
同期リセット動作 ..................................................96
リセット ( デバイス初期化 ) の概要 .................... 89
リセットのタイミングチャート ........................ 551
リセット要因レジスタ
RSRR: リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ...................................... 106
リソース命令
リソース命令 ........................................................ 573
リトルエンディアン
リトルエンディアンの概要 ................................178
リトルエンディアンのデータバス幅 ................ 180
リトルエンディアンのデータフォーマット .... 179
リロードタイマ
リロードタイマ
(REALOS 用 1 チャネル含む ) .......................... 4
リロード値
ボーレートと U-TIMER のリロード値の
設定例 .............................................................. 337
587
れ
レジスタ一覧
16 ビットパルス幅カウンタの
レジスタ一覧 ..................................................378
16 ビットフリーランタイマのレジスタ一覧 ....389
16 ビットリロードタイマのレジスタ一覧 ........282
DMA コントローラのレジスタ一覧 ..................471
I2C インタフェースのレジスタ一覧 ..................343
PPG のレジスタ一覧 ............................................297
UART のレジスタ一覧 .........................................318
U-TIMER のレジスタ一覧 ...................................310
インプットキャプチャのレジスタ一覧 .............397
外部バスインタフェースのレジスタ一覧 .........138
遅延割込みモジュールのレジスタ一覧 .............262
ビットサーチモジュールのレジスタ一覧 .........265
レジスタ間転送命令
レジスタ間転送命令 .............................................565
レベルマスク
割込み・NMI に対するレベルマスク ..................69
ろ
ロード
ロードとストア .......................................................38
ロードプログラム
ロードプログラムを利用して , フラッシュメモリ
への書込みを行う例 ......................................550
論理演算
論理演算とビット操作 ...........................................38
論理演算命令
論理演算命令 .........................................................561
わ
ワードアクセス
ワードアクセス .....................................................182
ワードアライメント
ワードアライメント ...............................................61
割込み
USB の割込みについて ........................................537
割込みコントローラ .................................................4
割込み発生およびフラグの
セットタイミング ..........................................331
割込み・NMI に対するレベルマスク ..................69
割込許可レジスタ
割込許可レジスタ (ENIR : ENable Interrupt request
Register) ............................................................255
割込みコントローラ
主要機能 .................................................................242
ハードウェア構成 .................................................242
優先順位判定 .........................................................247
レジスタ一覧 .........................................................243
割込みベクタ
割込みベクタ .........................................................534
割込み要因
割込み要因一覧 .....................................................441
割込み要求
割込み要求発生 .....................................................386
割込み
割込みスタック .......................................................72
588
ワンショット動作
ワンショット動作 ................................................305
CM71-10129-2
富士通半導体デバイス • CONTROLLER MANUAL
FR60
32 ビット・マイクロコントローラ
MB91305
ハードウェアマニュアル
2006 年 5 月 第 2 版発行
発行
富士通株式会社
編集
営業推進統括部 営業推進部
電子デバイス事業本部