...

RZ/A1Hグループ

by user

on
Category: Documents
97

views

Report

Comments

Transcript

RZ/A1Hグループ
アプリケーションノート
RZ/A1Hグループ
NAND フラッシュメモリコントローラを使用した
R01AN2000JJ0100
Rev.1.00
2015.10.16
NAND 型フラッシュメモリへのアクセス例
要旨
本アプリケーションノートでは、RZ/A1Hの NAND フラッシュメモリコントローラ(以下、FLCTL とする)
に接続された NAND 型フラッシュメモリのアクセス例について説明します。
対象デバイス
RZ/A1H
本アプリケーションノートを他のマイコンへ適用する場合、そのマイコンの仕様にあわせて変更し、十分
評価してください。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 1 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
目次
1.
仕様 ......................................................................................................................................................... 3
2.
動作確認条件 .......................................................................................................................................... 4
3.
関連アプリケーションノート ................................................................................................................. 4
4.
周辺機能説明 .......................................................................................................................................... 5
5.
ハードウェア説明 ................................................................................................................................... 6
5.1
ハードウェア構成例 ....................................................................................................................... 6
5.2
使用端子一覧 .................................................................................................................................. 7
6.
ソフトウェア説明 ................................................................................................................................... 8
6.1
動作概要 ......................................................................................................................................... 8
6.1.1 INIT コマンド .............................................................................................................................. 9
6.1.2 RESET コマンド ......................................................................................................................... 9
6.1.3 ERASE コマンド ........................................................................................................................ 9
6.1.4 WRITE コマンド ....................................................................................................................... 10
6.1.5 READ コマンド ......................................................................................................................... 10
6.1.6 INFO コマンド .......................................................................................................................... 11
6.1.7 HELP コマンド ......................................................................................................................... 11
6.1.8 EXIT コマンド ........................................................................................................................... 11
6.2
サンプルコード実行時の周辺機能の設定およびメモリ配置 ........................................................ 12
6.2.1
周辺機能の設定 ..................................................................................................................... 12
6.2.2
サンプルコードのセクション設定 ........................................................................................ 13
6.3
固定幅整数一覧............................................................................................................................. 16
6.4
定数一覧 ....................................................................................................................................... 17
6.5
構造体/共用体一覧 ........................................................................................................................ 18
6.6
変数一覧 ....................................................................................................................................... 19
6.7
関数一覧 ....................................................................................................................................... 20
6.8
関数仕様 ....................................................................................................................................... 21
6.9
フローチャート............................................................................................................................. 26
6.9.1
メイン処理 ............................................................................................................................ 26
6.9.2 FLCTL 初期化処理 .................................................................................................................... 27
6.9.3 Reset コマンド処理 .................................................................................................................. 28
6.9.4 Block Erase コマンド処理 ........................................................................................................ 29
6.9.5 Page Program コマンド処理 .................................................................................................... 31
6.9.6 Read コマンド処理 ................................................................................................................... 33
6.9.7 Read ID コマンド処理 .............................................................................................................. 35
6.9.8 Userdef_FLCTL_Init 関数の処理............................................................................................... 37
6.10 サンプルコードで使用する NAND 型フラッシュメモリのコマンド ............................................ 38
6.11 サンプルプログラムの起動 .......................................................................................................... 39
7.
サンプルコード ..................................................................................................................................... 40
8.
参考ドキュメント ................................................................................................................................. 40
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 2 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
1.
仕様
RZ/A1H の FLCTL に接続された NAND 型フラッシュメモリにアクセスするため、FLCTL をコマンドアク
セスモードに設定します。イレーズ、ページプログラム、リードなどの基本的な NAND 型フラッシュメモリ
へのアクセス処理を行います。
【注】 コマンドアクセスモードは ECC 関連の処理を行わないため、ECC 処理に対応した NAND 型フラッシ
ュメモリ側を使用していただく必要があります。本サンプルコードでは、GENMAI ボードに実装可能
な Spansion 社製の NAND 型フラッシュメモリ(型名:S34ML04G100TFI)を使用して動作確認をし
ていますが、この NAND 型フラッシュメモリは ECC 処理に対応していないため注意してください。
NAND 型フラッシュメモリを使用する場合、ホスト側でバッドブロック管理、ウェアレべリング等の処理
が必要となります。ただし、これらの処理については本サンプルコードには含まれていないため、お客様の
プログラムで対応してください。
本アプリケーションノートでは、FIFO 内蔵シリアルコミュニケーションインタフェースを SCIF、汎用入出
力ポートを PORT、低消費電力モードを STB とします。
表 1.1に使用する周辺機能と用途を、図 1.1にサンプルコード実行時の動作環境を示します。
表1.1
使用する機能と用途
周辺機能
用途
NAND 型フラッシュメモリとのメモリインタフェース
SCIF チャネル 2 とホスト PC との通信用
FLCTL の兼用端子の切り替えに使用
FLCTL へのクロック供給に使用
FLCTL
SCIF
PORT
STB
NAND型フラッシュメモリ
ターミナルソフト
(サンプルコードのメッセージを出力)
(S34ML04G100TFI)
※S面のU9に実装可能
ホストPC
NAND
MESSAGE
R7S72100
R7S72100 CPUボード
RTK772100BC00000BR
シリアルインタフェース
(RS-232Cケーブル)
【注】 GENMAI ボード(RTK772100BC00000BR)には、NAND 型フラッシュメモリは搭載されていません。
本サンプルコードの動作を確認する場合は、GENMAI ボードの U9 に NAND 型フラッシュメモリ
(S34ML04G100TFI)を実装していただく必要があります。
図1.1
動作環境
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 3 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
2.
動作確認条件
本アプリケーションノートのサンプルコードは、下記の条件で動作を確認しています。
表2.1
動作確認条件
項目
内容
使用マイコン
動作周波数(注 1)
動作電圧
統合開発環境
C コンパイラ
動作モード
ターミナルソフトの通信設定
使用ボード
使用デバイス
(ボード上で使用する機能)
RZ/A1H
CPU クロック(Iφ):400MHz
画像処理クロック(Gφ):266.67MHz
内部バスクロック(Bφ):133.33MHz
周辺クロック 1(P1φ):66.67MHz
周辺クロック 0(P0φ):33.33MHz
電源電圧(I/O):3.3V
電源電圧(内部):1.18V
®
ARM 統合開発環境
TM
ARM Development Studio 5(DS-5 )Version 5.16
ARM C/C++ Compiler/Linker/Assembler Ver.5.03 [Build 102]
コンパイラオプション(ディレクトリパスの追加は除く)
-O3 -Ospace --cpu=Cortex-A9 --littleend --arm --apcs=/interwork
--no_unaligned_access --fpu=vfpv3_fp16 -g --asm
ブートモード 0
(CS0 空間 16 ビットブート)
・通信速度:115200bps
・データ長:8 ビット
・パリティ:なし
・ストップビット長:1 ビット
・フロー制御:なし
GENMAI ボード
・R7S72100 CPU ボード RTK772100BC00000BR
・NAND 型フラッシュメモリ(FLCTL に接続)(注 2)
メーカ名:Spansion Inc.、型名:S34ML04G100TFI
・シリアルインタフェース(Dsub-9 コネクタ)
・LED1
【注】 1. クロックモード 0(EXTAL 端子からの 13.33MHz のクロック入力)で使用時の動作周波数です。
2. NAND 型フラッシュメモリ S34ML04G100TFI は ECC 処理に対応していません。お客様のシステ
ムで NAND 型フラッシュメモリをご使用の場合には、ECC 処理に対応した NAND 型フラッシュメ
モリを使用してください。
3.
関連アプリケーションノート
本アプリケーションノートに関連するアプリケーションノートを以下に示します。併せて参照してくださ
い。
• RZ/A1Hグループ
• RZ/A1Hグループ
レジスタ定義ヘッダ・ファイル iodefine.h(R01AN1860JJ)
初期設定例(R01AN1864JJ)
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 4 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
4.
周辺機能説明
RZ/A1H の NAND フラッシュメモリコントローラ(FLCTL)は、外付けの NAND 型フラッシュメモリとの
メモリインタフェースを提供します。FLCTL の主な特長を表 4.1に示します。
表4.1
FLCTL の主な特長
周辺機能
用途
メモリインタフェース
アクセスモード
割り込み要因
データ転送用 FIFO
DMA 転送
アクセスタイム
【注】 *





NAND 型フラッシュメモリとの直結が可能なインタフェース
バイト単位のリードライト
ラージブロック(2048+64 バイト)サイズのフラッシュメモリに対応*
5 バイトアドレスへの拡張により 2G ビット超のアドレスに対応
コマンドアクセスモード
コマンド、アドレス、データサイズを指定して一連のアクセスを行うモード







ステータスエラー
レディ/ビジータイムアウトエラー
転送終了
FLDTFIFO からの転送要求
224 バイトのデータ FIFO レジスタ(FLDTFIFO)を内蔵
FLDTFIFO から DMA 転送要求を出すことが可能
動作クロック(FCLK)を、周辺クロック 0(P0φ)の 1/2 分周または 1/4 分
周に指定可能
 アドレス、データ入出力を 1 FCLK サイクル/2 FCLK サイクルに指定可能
512+16 バイトを 1 セクタとして扱います。1 ページ 2048+64 バイトの製品に関しては、512+
16 バイトごと(1 ページを 4 セクタ)に分割して処理します。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 5 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
5.
ハードウェア説明
5.1
ハードウェア構成例
本応用例では、RZ/A1 の FLCTL とラージブロックサイズ(2048+64 バイト)の NAND 型フラッシュメモ
リ(Spansion 社製 S34ML04G100TFI)を接続して、NAND フラッシュメモリコントローラ(FLCTL)を使用
したアクセスを行います。
図 5.1に RZ/A1H と NAND 型フラッシュメモリとの接続回路例を示します。
NANDフラッシュメモリ
S34ML04G100TFI
512Mバイト
RZ/A1H
8
I/O7 - I/O0
NAF7 - NAF0
3.3V 3.3V 3.3V
FCE#
CE#
FRE#
RE#
FWE#
WE#
3.3V
FRB
FCLE
R/B#
CLE
FALE
ALE
3.3V
WP#
DIPSW
【注】 1. 制御信号に対するプルアップ/プルダウン処理は、マイコンの端子状態がハイインピーダンスの場
合でも、外部デバイスが誤動作しないように信号線のレベルを決定します。FCE#端子、FRE#端子
および FWE#端子については外付け抵抗でプルアップ処理を行い、"H"レベルにしています。また
FRB 端子も、"L"レベル状態ではコマンドを発行できないため、外付け抵抗でプルアップを行い"H"
レベルにしています。
2. #は負論理(またはアクティブロー)を示す記号です。
図5.1
NAND 型フラッシュメモリ接続回路例
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 6 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
使用端子一覧
5.2
表 5.1に使用端子と機能を示します。
表5.1
使用端子と機能
端子名
A25~A1
D15~D0
CS0#
入出力
内容
出力
入出力
出力
NOR フラッシュメモリへのアドレス信号出力
NOR フラッシュメモリのデータ信号入出力
CS0 空間に接続された NOR フラッシュメモリへのデバイス選択信
号出力
NOR フラッシュメモリへのリード制御信号出力
NOR フラッシュメモリへのライトイネーブル制御信号出力
ブートモードの選択
MD_BOOT1:"L"、MD_BOOT0:"L"(ブートモード 0 に設定)
RD#
WE0#
MD_BOOT1
MD_BOOT0
P4_10
RxD2
TxD2
FCE#
出力
出力
入力
入力
出力
入力
出力
出力
NAF7~NAF0
入出力
FCLE
出力
FALE
出力
FRE#
出力
FWE#
出力
FRB
入力
LED の点灯および消灯
シリアル受信データ信号
シリアル送信データ信号
フラッシュメモリチップイネーブル信号出力
(NAND 型フラッシュメモリへのイネーブル信号)
フラッシュメモリデータ信号入出力
(NAND 型フラッシュメモリへのコマンド、アドレス、およびデー
タの入出力)
フラッシュメモリコマンドラッチイネーブル信号出力
(NAND 型フラッシュメモリへのコマンド出力時にアサート)
フラッシュメモリアドレスラッチイネーブル信号出力
(NAND 型フラッシュメモリへのアドレス出力時にアサートし、
データ入出力時にネゲート)
フラッシュメモリリードイネーブル信号出力
(FRE#信号の立ち上がりエッジで NAND 型フラッシュメモリの
データをリード)
フラッシュメモリライトイネーブル信号出力
(NAND 型フラッシュメモリは、FWE#信号の立ち上がりエッジに
より、コマンド、アドレスおよびデータをラッチ)
フラッシュメモリレディ/ビジー信号入力
("H"レベル:レディ状態、"L"レベル:ビジー状態)
【注】 #は負論理(またはアクティブロー)を示す記号です。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 7 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.
ソフトウェア説明
動作概要
6.1
本サンプルコードは、FLCTL を使用して NAND 型フラッシュメモリの基本的な制御を実現するために 6
種類のサンプル処理を準備しています。サンプル処理は、ターミナルからコマンドを入力して実行します。
表 5.1にサンプル処理の一覧を示します。
サンプルコードを動作させるための基本的なコマンド入力手順を以下に示します。
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
図 1.1に示す動作環境にて、GENMAI ボードの電源を ON します。
ターミナルより、"FLCTL"+"Enter"を入力し、FLCTL コマンドモードに遷移します。
ターミナルより、"INIT"+"Enter"を入力し、FLCTL の初期設定を行います。
ターミナルより、"RESET"+"Enter"を入力し、NAND 型フラッシュメモリに対してリセットコマンドを
発行します。
ターミナルより、"ERASE"+"Enter"を入力し、NAND 型フラッシュメモリに対して Block Erase コマンド
を発行します。
ターミナルより、"WRITE"+"Enter"を入力し、NAND 型フラッシュメモリに対して Page Program コマン
ドを発行します。
ターミナルより、"READ"+"Enter"を入力し、NAND 型フラッシュメモリに対して Read コマンドを発行
します。
ターミナルより、"INFO"+"Enter"を入力し、NAND 型フラッシュメモリに対して Read ID コマンドを発
行します。
表6.1
サンプル処理の一覧
サンプル処理の内容
サンプル処理
FLCTL の初期化
NAND 型フラッシュメモリの
リセット
NAND 型フラッシュメモリの
ブロックイレーズ
NAND 型フラッシュメモリの
ライト
NAND 型フラッシュメモリの
リード
NAND 型フラッシュメモリの
情報取得
コマンド
INIT
FLCTL の初期化を行います。
NAND 型フラッシュメモリに RESET コマンドを発行 RESET
します。
NAND 型フラッシュメモリに Black Erase コマンドを ERASE
発行します。
NAND 型フラッシュメモリに Page Program コマンド WRITE
を発行します。
NAND 型フラッシュメモリに READ コマンドを発行
します。
READ
NAND 型フラッシュメモリに READ ID コマンドを発
行します。
INFO
【注】 最初に INIT コマンドを実行してください。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 8 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.1.1
INIT コマンド
INIT コマンドは、FLCTL を使用するために必要な初期設定後、NAND 型フラッシュメモリにリセットコマ
ンドを発行して、NAND 型フラッシュメモリを初期化します。
なお、本コマンドは、他のコマンドを実行する前に実行してください。INIT コマンドを行わずに他のコマ
ンドを実行した場合、NAND 型フラッシュメモリに対して正常なアクセスができません。
FLCTL> init
initialize FLCTL Module
issue RESET Command to NAND
FLCTL>
図6.1
6.1.2
INIT コマンド実行時のターミナル表示
RESET コマンド
RESET コマンドは、NAND 型フラッシュメモリにリセットコマンドを発行して、NAND 型フラッシュメモ
リを初期化します。
FLCTL> reset
issue RESET Command to NAND
FLCTL>
図6.2
6.1.3
RESET コマンド実行時のターミナル表示例
ERASE コマンド
ERASE コマンドは、NAND 型フラッシュメモリにブロックコマンドを発行して、指定セクタが含まれる
NAND 型フラッシュメモリのブロックを消去します。セクタ番号はコンソールから入力します。
FLCTL> erase
Please input sector number:0
success:erase success sector=0
FLCTL>
図6.3 ERASE コマンド実行時のターミナル表示例
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 9 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.1.4
WRITE コマンド
WRITE コマンドは、NAND 型フラッシュメモリに対してページプログラムコマンドを発行して、NAND 型
フラッシュメモリの指定セクタにテストデータを書き込みます。セクタ開始番号、セクタ数、書き込む値の
初期値はコンソールから入力します。コンソールより入力した初期値をインクリメントしたテストデータを
内部バッファに作成し、そのテストデータを NAND 型フラッシュメモリに書き込みます。
FLCTL> write
Please input sector number:0
Please input sector count:1
Please input Start Value to write sector:5
FLCTL>
図6.4 WRITE コマンド実行時のターミナル表示例
6.1.5
READ コマンド
READ コマンドは、NAND 型フラッシュメモリに対してリードコマンドを発行して、データを読み込みま
す。セクタ開始番号、セクタ数をコンソールから入力します。読み込んだデータはコンソールにダンプ表示
されます。
FLCTL> read
Please input sector number:0
Please input sector count:1
05
15
25
35
06
16
26
36
07
17
27
37
08
18
28
38
09
19
29
39
0a
1a
2a
3a
0b
1b
2b
3b
0c
1c
2c
3c
0d
1d
2d
3d
0e
1e
2e
3e
0f
1f
2f
3f
10
20
30
40
11
21
31
41
12
22
32
42
13
23
33
43
14
24
34
44
e5
f5
e6
f6
e7
f7
e8
f8
e9
f9
ea
fa
eb
fb
ec
fc
ed ee
fd fe
ef
ff
f0
00
f1
01
f2
02
f3
03
f4
04
05
06
07
08
09
0a
0b
0c
0d 0e
0f
10
11
12
13
14
(中略)
FLCTL>
図6.5 READ コマンド実行時のターミナル表示例
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 10 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.1.6
INFO コマンド
INFO コマンドは、NAND 型フラッシュメモリに対して、Read ID コマンドを発行して、読み出した ID 情
報をコンソールに表示します。
FLCTL> info
NAND Read ID information.
1st code : 95
2nd code : 90
3rd code : dc
4th code : 01
5th code : 54
FLCTL>
図6.6 INFO コマンド実行時のターミナル表示例
6.1.7
HELP コマンド
HELP コマンドは、FLCTL コマンドモードで使用できるコマンド一覧をターミナルに表示する場合に使用
します。
FLCTL> help
INIT
RESET
ERASE
WRITE
READ
INFO
EXIT
:
:
:
:
:
:
:
Initialize NAND Driver FLCTL IP
Issue RESET Command to NAND
Issue ERASE Command to NAND
Issue WRITE Command to NAND
Issue READ Command to NAND
Issue READ ID Command to NAND
Exit from NAND Command mode
FLCTL>
図6.7 HELP コマンド実行時のターミナル表示例
6.1.8
EXIT コマンド
EXIT コマンドは、FLCTL コマンドモードから通常のモードに遷移する場合に使用します。
FLCTL> exit
SAMPLE>
図6.8 EXIT コマンド実行時のターミナル表示例
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 11 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.2
6.2.1
サンプルコード実行時の周辺機能の設定およびメモリ配置
周辺機能の設定
表 6.2にサンプルコード実行時の周辺機能の設定内容を示します。
表6.2
周辺機能の設定内容
モジュール
設定内容
FLCTL へのクロックを供給
コマンドアクセスモードに設定
PORT1、PORT3、PORT4、PORT5 の兼用端子機能を設定
• P1_2:FRB
• P3_8~P3_15:NAF7~NAF0
• P4_0:FRE#
• P4_1:FCLE
• P4_2:FALE
• P4_3:FWE#
• P5_5:FCE#
チャネル 2 を調歩同期式モードに設定
• データ長:8 ビット
• ストップビット長:1 ビット
• パリティ:なし
P1φ=66.67MHz の時に、クロックソースを分周なし、ビットレート
値に 17 を設定し、ビットレートが 115200bps となるように設定
誤差は 0.46%
STB
FTCTL
PORT
SCIF
【注】 #は負論理(またはアクティブロー)を示す記号です。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 12 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.2.2
サンプルコードのセクション設定
表 6.3および表 6.4にサンプルコードで使用するセクションを示し、図 6.9にサンプルコードの初期状態のセ
クション配置(ロードビュー)と、スキャッタローディング機能を使用後のセクション配置(実行ビュー)
を示します。
セクションおよびスキャッタローディング機能の詳細については、ARM より提供される「ARM コンパイ
ラツールチェーン リンカの使用」の「イメージの構造と生成」を参照してください。
表6.3
使用するセクション(1/2)
領域の名前
内容
例外処理ベクタテーブル
リセットハンドラ処理のプログラムコー
ド領域
この領域は以下のセクションから構成さ
れています
・INITCA9CACHE(L1 キャッシュ設定)
・INIT_TTB(MMU 設定)
・RESET_HANDLER(リセットハンドラ)
CODE_BASIC_SETUP 動作周波数とフラッシュメモリ最適化の
ためのプログラムコード領域
InRoot
この領域は C 標準ライブラリなどのルー
ト領域に配置するセクションから構成さ
れています
CODE_FPU_INIT
NEON および VFP 初期設定のプログラム
コード領域
この領域は以下のセクションから構成さ
れています
・CODE_FPU_INIT
・FPU_INIT
CODE_RESET
ハードウェア初期設定のプログラムコー
ド領域
この領域は以下のセクションから構成さ
れています
・CODE_RESET(スタートアップ処理)
・INIT_VBAR(ベクタベース設定)
CODE_IO_REGRW
IO レジスタのリード/ライト関数のプログ
ラムコード領域
CODE
デフォルトのプログラムコード領域
C ソースでセクション名を定義しない
Code タイプのセクションは、すべてこの
領域に配置されます
CONST
デフォルトの定数データ領域
C ソースでセクション名を定義しない RO
Data タイプのセクションは、すべてこの
領域に配置されます
VECTOR_TABLE
RESET_HANDLER
R01AN2000JJ0100
2015.10.16
Rev.1.00
タイプ
ロード領域
実行領域
Code
Code
FLASH
FLASH
FLASH
FLASH
Code
FLASH
FLASH
Code
および
RO Data
Code
FLASH
FLASH
FLASH
FLASH
Code
FLASH
FLASH
Code
FLASH
LRAM
Code
FLASH
FLASH
RO Data
FLASH
FLASH
Page 13 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
表6.4
使用するセクション(2/2)
領域の名前
VECTOR_MIRROR_
TABLE
CODE_HANDLER_
JMPTBL
CODE_HANDLER
CODE_CACHE_
OPERATION
DATA_HANDLER_
JMPTBL
ARM_LIB_STACK
IRQ_STACK
FIQ_STACK
SVC_STACK
ABT_STACK
TTB
ARM_LIB_HEAP
DATA
BSS
BSS_NANDNC
内容
例外処理ベクタテーブル
(大容量内蔵 RAM に転送して実行するた
めのセクション)
IRQ 割り込みハンドラのユーザ定義関数
のプログラムコード領域
IRQ 割り込みハンドラのプログラムコー
ド領域
この領域は以下のセクションから構成さ
れています
・CODE_HANDLER
・IRQ_FIQ_HANDLER
L1 および L2 キャッシュ設定処理のプログ
ラムコード領域(注 3)
IRQ 割り込みハンドラのユーザ定義関数
の登録テーブルデータ領域
アプリケーションスタック領域
IRQ モードのスタック領域
FIQ モードのスタック領域
スーパバイザ(SVC)モードのスタック領
域
アボート(ABT)モードのスタック領域
MMU 変換テーブル領域
アプリケーションヒープ領域
デフォルトの初期値ありデータ領域
C ソースでセクション名を定義しない RW
Data タイプのセクションは、すべてこの
領域に配置されます
デフォルトの初期値なしデータ領域
C ソースでセクション名を定義しない ZI
Data タイプのセクションは、すべてこの
領域に配置されます
NAND 型フラッシュメモリのアクセス用
のデータ領域
タイプ
ロード領域
実行領域
Code
FLASH
LRAM
Code
FLASH
LRAM
Code
FLASH
LRAM
Code
FLASH
LRAM
RW Data
FLASH
LRAM
ZI Data
ZI Data
ZI Data
ZI Data
-
-
-
-
LRAM
LRAM
LRAM
LRAM
ZI Data
ZI Data
ZI Data
RW Data
-
-
-
FLASH
LRAM
LRAM
LRAM
LRAM
ZI Data
-
LRAM
ZI Data
-
LRAM
【注】 1. 表中のロード領域および実行領域において、FLASH は NOR フラッシュメモリの領域を、LRAM は
大容量内蔵 RAM の領域を表します。
2. セクションの名前は基本的に領域と同じ名前にしていますが、RESET_HANDLER、InRoot、
CODE_FPU_INIT、CODE_RESET、CODE、CONST、CODE_HANDLER、DATA、BSS の各領域
は複数のセクションから構成されています。領域とセクションについては、ARM コンパイラツー
ルチェーンのマニュアルを参照してください。
3. このセクションは、キャッシュ無効領域に配置する必要があります。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 14 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
セクションの配置
(ロードビュー)
RZ/A1Hグループの
アドレス空間
(仮想アドレス)
H'FFFF FFFF
セクションの配置
(実行ビュー)
スキャッタローディング
実行後のメモリ配置
H'609F FFFF
BSS_NANDNC
CODE_CACHE_OPERATION
H'6050 0000
キャッシュ操作を
行う処理の
大容量内蔵RAM
キャッシュ無効
領域への転送
H'6000 0000
H'209F FFFF
ゼロでクリア
BSS
初期値ありデータ
の初期化
DATA
H'200B 8000
ARM_LIB_HEAP
H'2003 8000
H'2003 4000
H'2003 2000
H'2003 0000
H'2002 E000
H'2002 C000
H'60A0 0000
H'6000 0000
スタックなど
領域の確保
大容量内蔵RAM
キャッシュ無効空間
(10MB)
TTB
ABT_STACK
SVC_STACK
FIQ_STAC
IRQ_STACK
ARM_LIB_STACK
H'2002 4000
初期値あり
データの
初期化
DATA_HANDLER_JMPTBL
CODE_IO_REGRW
CODE_HANDLER
H'2002 0100
CODE_HANDLER_JMPTBL
H'2002 0000
VECTOR_MIRROR_TABLE
H'2000 0000
H'03FF FFFF
CODE_CACHE_OPERATION
H'4000 0000
DATA
DATA_HANDLER_JMPTBL
H'20A0 0000
大容量内蔵RAM
(10MB)
CODE_IO_REGRW
CODE_HANDLER
H'2000 0000
CODE_HANDLER_JMPTBL
CONST
H'1C00 0000
CODE
H'1800 0000
CODE_RESET
H'1000 0000
H'0C00 0000
H'0800 0000
図6.9
CS0空間 (64MB)
CODE
CODE_RESET
CODE_FPU_INIT
InRoot
InRoot
CODE_BASIC_SETUP
CODE_BASIC_SETUP
RESER_HANDLER
RESER_HANDLER
H'0400 0000
CONST
CODE_FPU_INIT
例外処理ベクタの
内蔵RAMへの転送
H'0000 0200
H'0000 0000
高速化が
必要な
プログラム
コードの
内蔵RAM
への転送
H'0000 0100
VECTOR_MIRROR_TABLE
H'0000 0000
VECTOR_TABLE
VECTOR_TABLE
セクション配置
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 15 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
固定幅整数一覧
6.3
表 6.5にサンプルコードで使用する固定幅整数を示します。
表6.5
サンプルコードで使用する固定幅整数
シンボル
8 ビット文字
論理型。値は true(1), false(0)
高速な整数、符号あり、本サンプルコードでは 32 ビット整数
8 ビット整数、符号あり(標準ライブラリにて定義)
16 ビット整数、符号あり(標準ライブラリにて定義)
32 ビット整数、符号あり(標準ライブラリにて定義)
64 ビット整数、符号あり(標準ライブラリにて定義)
8 ビット整数、符号なし(標準ライブラリにて定義)
16 ビット整数、符号なし(標準ライブラリにて定義)
32 ビット整数、符号なし(標準ライブラリにて定義)
64 ビット整数、符号なし(標準ライブラリにて定義)
32 ビット浮動小数
("__ARM_NEON__"を指定時、標準ライブラリにて定義)
64 ビット浮動小数(標準ライブラリにて定義)
("__ARM_NEON__"を指定時、標準ライブラリにて定義)
128 ビット浮動小数
char_t
bool_t
int_t
int8_t
int16_t
int32_t
int64_t
uint8_t
uint16_t
uint32_t
uint64_t
float32_t
float64_t
float128_t
R01AN2000JJ0100
2015.10.16
内容
Rev.1.00
Page 16 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.4
定数一覧
表 6.6にサンプルコードで使用する定数を示します。
表6.6
サンプルコードで使用する定数
定数名
設定値
SECTOR_SZ_DATA_ONLY
SECTOR_SZ_EXT_ONLY
SECTOR_SZ_DATA_AND_
EXT
SECTOR_OF_PAGE
PAGE_SZ_DATA_ONLY
PAGE_SZ_EXT_ONLY
PAGE_SZ_DATA_AND_EX
T
PAGE_OF_BLOCK
SECTOR_OF_BLOCK
BLOCK_SZ_DATA_ONLY
BLOCK_SZ_EXT_ONLY
BLOCK_SZ_DATA_AND_E
XT
R01AN2000JJ0100
2015.10.16
Rev.1.00
512
16
SECTOR_SZ_DATA_ONLY +
SECTOR_SZ_EXT_ONLY
4
SECTOR_SZ_DATA_ONLY *
SECTOR_OF_PAGE
SECTOR_SZ_EXT_ONLY *
SECTOR_OF_PAGE
PAGE_SZ_DATA_ONLY +
PAGE_SZ_EXT_ONLY
64
PAGE_OF_BLOCK *
SECTOR_OF_PAGE
SECTOR_SZ_DATA_ONLY *
SECTOR_OF_BLOCK
SECTOR_SZ_EXT_ONLY *
SECTOR_OF_BLOCK
BLOCK_SZ_DATA_ONLY +
BLOCK_SZ_EXT_ONLY
内容
セクタのデータ部分のバイト数
セクタの管理コード部分のバイト数
セクタのバイト数
1 ページのセクタ数
1 ページのデータ部分のバイト数
1 ページの管理コード部分のバイト数
1 ページのバイト数
1 ブロックのページ数
1 ブロックのセクタ数
1 ブロックのデータ部分のバイト数
1 ブロックの管理コード部分のバイト数
1 ブロックのバイト数
Page 17 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.5
構造体/共用体一覧
図 6.10にサンプルコードで使用する構造体/共用体を示します。
コンソールから入力可能なコマンド名と、コマンドに対する処理関数名を対応付けるテーブルです。
static const command_list_t sample_FLCTL_cmd_list[] = {
{"INIT",
Sample_FLCTL_Init,
NULL},
{"RESET",
Sample_FLCTL_Reset,
NULL},
{"ERASE",
Sample_FLCTL_Erase,
NULL},
{"WRITE",
Sample_FLCTL_Write,
NULL},
{"READ",
Sample_FLCTL_Read,
NULL},
{"INFO",
Sample_FLCTL_Info,
NULL},
{"HELP",
Sample_FLCTL_Help,
NULL},
{"EXIT",
Sample_FLCTL_Exit,
NULL},
{NULL,
NULL,
NULL}
};
NAND に対するコマンドアクセスモードです。NAND 制御を行う io_set_flctl()関数の引数として使用
します。
typedef enum
{
RESET_MODE,
ERASE_BLOCK_MODE,
WRITE_CMD_ACCESS_MODE,
READ_ID_MODE
} access_mode_t;
図6.10
サンプルコードで使用する構造体/共用体
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 18 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
変数一覧
6.6
表 6.7にstatic 型変数を、表 6.8にconst 型変数を示します。
表6.7
static 型変数
型
変数名
char_t
sample_flctl_main_comman
d_buf[ ]
uint32_t
test_nand_rw_buff[ ]
表6.8
内容
使用関数
コマンド入力文字列を格納する Sample_FLCTL_Main( )
バッファです
NAND へのリード/ライトデータ Sample_FLCTL_Read( )
Sample_FLCTL_Write( )
を格納するバッファです
const 型変数
型
command_list_t
変数名
sample_FLCTL_cmd_list[ ]
R01AN2000JJ0100
2015.10.16
Rev.1.00
内容
使用関数
コンソールから入力可能なコマ
ンド名と、コマンドに対する処
理関数名を対応付けるテーブル
です
(「6.5 構造体/共用体一覧」を
参照してください)
Sample_FLCTL_Main( )
Page 19 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.7
関数一覧
サンプルコードは、NAND フラッシュメモリコントローラ(FLCTL)を経由で NAND 型フラッシュメモリ
を制御するためのインタフェース関数(API)、ユーザシステムの用途に合わせてユーザで準備が必要なユー
ザ定義関数(API 関数からコールされる関数)、サンプルコードを動作させるために必要なサンプル関数か
ら構成されます。
表 6.9にサンプル関数を、表 6.10に API 関数を、表 6.11にユーザ定義関数を示します。
表6.9
サンプル関数
関数名
Sample_FLCTL_Init
Sample_FLCTL_Reset
Sample_FLCTL_Erase
Sample_FLCTL_Write
Sample_FLCTL_Read
Sample_FLCTL_Info
表6.10
概要
NAND フラッシュメモリコントローラ(FLCTL)の初期化
Reset コマンドの発行
Block Erase コマンドの発行
Page Program コマンドの発行
Read コマンドの発行
Read ID コマンドの発行
API 関数
関数名
R_FLCTL_Init
R_FLCTL_Reset
R_FLCTL_Erase_Block
R_FLCTL_Write_Sector
R_FLCTL_Read_Sector
R_FLCTL_Read_Id
表6.11
概要
NAND フラッシュメモリコントローラ(FLCTL)の初期化
リセットコマンドの発行
ブロックイレーズ
セクタライト
セクタリード
NAND チップ ID 取得
ユーザ定義関数
関数名
FLCTL の初期化処理
Userdef_FLCTL_Init
R01AN2000JJ0100
2015.10.16
概要
Rev.1.00
Page 20 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.8
関数仕様
サンプルコードで使用する関数の仕様を示します。
R_FLCTL_Init
概 要
宣 言
説 明
引 数
リターン値
R_FLCTL_Reset
概 要
宣 言
説 明
引 数
リターン値
NAND フラッシュメモリコントローラ(FLCTL)の初期化
int32_t R_FLCTL_Init(void);
本 API 関数は、NAND フラッシュメモリコントローラ(FLCTL)を使用するために
必要な初期設定を行います。
なし
なし
リセットコマンドの発行
int32_t R_FLCTL_Reset(void);
本 API 関数は、NAND 型フラッシュメモリに対してリセットコマンドを発行します。
なし
0
:リセット成功
-1
:リセット失敗
R_FLCTL_Erase_Block
概 要
ブロックイレーズ
int32_t R_FLCTL_Erase_Block(int32_t sctr)
宣 言
説 明
本 API 関数は、NAND 型フラッシュメモリの指定セクタが含まれるブロックを消去
します。本 API 関数では、NAND 型フラッシュメモリに対してブロックイレーズコ
マンド発行後、ステータスリードコマンドを発行し、消去に失敗した場合はエラーを
返します。
int32_t sctr
引 数
セクタ番号
(ビット 2 以上:ロウアドレス、ビット 1,0:セクタ番号)
リターン値
0
:消去成功
-1
:消去失敗
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 21 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
R_FLCTL_Write_Sector
概 要
セクタライト
int32_t R_FLCTL_Write_Sector(int32_t sctr, int32_t num, uint32_t * data)
宣 言
説 明
NAND 型フラッシュメモリの指定セクタに対して、Page Program コマンドを
発行して指定したバッファ内のデータをライトします。
5 セクタ以上またはページを跨ぐセクタ数を指定した場合、本関数はエラー終了しま
す。
また、NAND 型フラッシュメモリの性質上、本関数をコール前に、書き込み対象のセ
クタのデータを消去してください。
1 ページ:(2048 + 64)バイト
1 セクタ:(512 + 16)バイト
int32_t sctr
ライトするセクタアドレス
引 数
int32_t num
ライトするセクタ数
uint32_t *data
ライトするデータを格納するバッファ
リターン値
0
:ライト成功
-1
:ライト失敗
R_FLCTL_Read_Sector
概 要
セクタリード
int32_t R_FLCTL_Read_Sector(int32_t sctr, int32_t num, uint32_t * data)
宣 言
説 明
NAND 型フラッシュメモリの指定セクタをリードします。
コマンドアクセスモードを使用します。
5 セクタ以上またはページを跨ぐセクタ数を指定した場合、本関数はエラー終了しま
す。
int32_t sctr
リードするセクタアドレス
引 数
int32_t num
リードするセクタ数
uint32_t *data
リードしたデータを格納するバッファ
リターン値
0
:リード成功
-1
:リード失敗
R_FLCTL_Read_Id
概 要
宣 言
説 明
引 数
リターン値
R01AN2000JJ0100
2015.10.16
NAND チップ ID 取得
int32_t R_FLCTL_Read_Id(uint8_t *data)
NAND チップ ID を取得します。
uint8_t * data
取得した ID データを格納するバッファ
0
:取得成功
-1
:取得失敗
Rev.1.00
Page 22 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
Sample_FLCTL_Init
概 要
宣 言
説 明
引
数
リターン値
FLCTL の初期設定
int32_t Sample_FLCTL_Init(int32_t argc, char_t ** argv)
本関数は FLCTL の初期設定を行うサンプル関数です。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"INIT"+"Enter"キー
入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Init を使用して FLCTL の初期設定を行った
後、API 関数 R_FLCTL_Reset を使用して NAND 型フラッシュメモリに RESET コマ
ンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
Sample_FLCTL_Reset
概 要
Reset コマンドの発行
int32_t Sample_FLCTL_Reset(int32_t argc, char_t ** argv)
宣 言
説 明
本関数は NAND 型フラッシュメモリに Reset コマンドを発行するサンプル関数です。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"RESET"+"Enter"
キー入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Reset を使用して NAND 型フラッシュメ
モリに RESET コマンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
引 数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
リターン値
Sample_FLCTL_Erase
概 要
Block Erase コマンドの発行
int32_t Sample_FLCTL_Erase(int32_t argc, char_t ** argv)
宣 言
説 明
本関数は NAND 型フラッシュメモリに Block Erase コマンドを発行するサンプル関数
です。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"ERASE"+"Enter"
キー入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Erase を使用して NAND 型フラッシュメ
モリに Block Erase コマンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
引 数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
リターン値
1
:FLCTL サンプルコード処理の失敗
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 23 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
Sample_FLCTL_Write
概 要
Page Program コマンドの発行
int32_t Sample_FLCTL_Write(int32_t argc, char_t ** argv)
宣 言
説 明
本関数は NAND 型フラッシュメモリに Page Program コマンドを発行するサンプル
関数です。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"WRITE"+"Enter"
キー入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Write を使用して NAND 型フラッシュメモ
リに Page Program コマンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
引 数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
リターン値
1
:FLCTL サンプルコード処理の失敗
Sample_FLCTL_Read
概 要
Read コマンドの発行
int32_t Sample_FLCTL_Read(int32_t argc, char_t ** argv)
宣 言
説 明
本関数は NAND 型フラッシュメモリに Read コマンドを発行するサンプル関数です。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"READ"+"Enter"
キー入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Read を使用して NAND 型フラッシュメモ
リに Read コマンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
引 数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
リターン値
1
:FLCTL サンプルコード処理の失敗
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 24 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
Sample_FLCTL_Info
概 要
宣 言
説 明
引
数
リターン値
R01AN2000JJ0100
2015.10.16
Read ID コマンドの発行
int32_t Sample_FLCTL_Info(int32_t argc, char_t ** argv)
本関数は NAND 型フラッシュメモリに Read ID コマンドを発行するサンプル関数で
す。
サンプル関数 Sample_FLCTL_Main の文字入力を待つ処理にて、"INFO"+"Enter"キー
入力時にコールされます。
サンプルコードでは、API 関数 R_FLCTL_Read_Id を使用して NAND 型フラッシュ
メモリに Read ID コマンドを発行します。
int32_t argc
:ターミナルから入力されたコマンド引数の数
本関数内では使用していません。
char_t **argv
:ターミナルから入力されたコマンドへのポインタ
本関数内では使用していません。
0
:FLCTL サンプルコード処理の成功
1
:FLCTL サンプルコード処理の失敗
Rev.1.00
Page 25 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
フローチャート
6.9
メイン処理
6.9.1
図 6.11にメイン処理を示します。
Sample_FLCTL_Main 処理
FLCTL command mode.
メッセージ表示
コマンドリストを登録
FLCTL > プロンプト表示
・FLCTL コマンドモードに遷移したメッセージを表示します。
・使用できるコマンド名のリストを登録します。
・シリアルポートに接続したターミナルにプロンプトを
表示します。
コマンド入力待ち
・ターミナルからFLCTLモード時に使用できるコマンドを
文字列として入力します。
入力エラー ?
・エラー時はエラーメッセージを表示して再入力します。
Yes
No
コマンドの解析と実行
EXIT コマンド ?
No
・入力されたコマンドを解析し、対応する関数を実行します。
・EXITコマンドの場合は、FLCTLコマンドモードを終了します。
それ以外の場合は、コマンド入力待ちに戻ります。
Yes
終了
図6.11
メイン処理
表 6.12にメイン処理で使用可能なコマンド名とコールされる API 関数を示します。
表6.12
メイン処理で使用可能なコマンド名とコールされる API 関数
コマンド名
INIT
RESET
ERASE
WRITE
READ
INFO
HELP
EXIT
R01AN2000JJ0100
2015.10.16
実行される関数
Sample_FLCTL_Init()
Sample_FLCTL_Reset()
Sample_FLCTL_Erase()
Sample_FLCTL_Write()
Sample_FLCTL_Read()
Sample_FLCTL_Info()
Sample_FLCTL_Help()
Sample_FLCTL_Exit()
Rev.1.00
サンプル関数から呼び出される API 関数
R_FLCTL_Init() および R_FLCTL_Reset()
R_FLCTL_Reset()
R_FLCTL_Erase_Block()
R_FLCTL_Write_Sector()
R_FLCTL_Read_Sector()
R_FLCTL_Read_Id()
なし
なし
Page 26 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.9.2
FLCTL 初期化処理
図 6.12にFLCTL 初期化処理を示します。
FLCTL 初期化処理の開始
R_FLCTL_Init関数
FLCTLの初期設定
Userdef_FLCTL_Init()
サンプルコードでは、ユーザ定義関数Userdef_FLCTL_Initで
FLCTLの初期設定を行っています。
終了
図6.12
FLCTL 初期化処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 27 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
Reset コマンド処理
6.9.3
図 6.13にReset コマンド処理を示します。
Resetコマンド処理の開始
R_FLCTL_Reset関数
・FLTRCRレジスタのビットが全て0になっていることを
確認します。
Yes
転送中?
No
エラー終了 (-1)
FLCTLのレジスタ設定
io_set_flctl
No
・コマンドアクセスモードで、Resetコマンドを発行する
ためのレジスタ設定を行います。
転送開始
・FLTRCRレジスタ
TRSTRTビット ← 1 :送信開始
転送終了
・FLTRCRレジスタTRENDのビットに1がセットされるまで
待ちます。
Yes
転送停止
・FLTRCRレジスタに0x00を設定し、転送停止を設定します。
チップイネーブルのネゲート
・FLCMNCRレジスタ
bit20 ← 1
CEビット ← 0
:ディスエーブル(FCE#端子にハイレベルを出力)
bit0 ← 1
正常終了 (0)
図6.13
Reset コマンド処理
表 6.13にReset コマンド発行時の FLCTL レジスタ設定値を示します。
表6.13
Reset コマンド発行時の FLCTL レジスタ設定値
レジスタ名
設定値
共通コントロールレジスタ
(FLCMNCR)
0x00140209
割り込み DMA 制御レジスタ
(FLINTDMACR)
データカウンタレジスタ
(FLDTCNTR)
コマンド制御レジスタ
(FLCMDCR)
0x00000000
コマンドコードレジスタ
(FLCMCDR)
0x000000FF
R01AN2000JJ0100
2015.10.16
Rev.1.00
0x00000000
0x00010000
機能
•
•
•
•
•
•
•
FCLK = P0φ/2
コマンドアクセスモード
アドレス、データを 2FCLK サイクル出力
チップイネーブル:アサート
割り込み禁止
割込みステータスクリア
データ転送なし
•
•
•
•
•
第 1 コマンドステージを実行
アドレスを発行しない
第 2 コマンドステージを実行しない
ステータスリードを実行しない
第 1 コマンド = 0xFF
Page 28 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.9.4
Block Erase コマンド処理
図 6.14にBlock Erase コマンド処理を示します。
Block Erase コマンド処理の開始
R_FLCTL_Erase_Block関数
・FLTRCRレジスタのビットが全て0になっていることを
確認します。
転送中?
Yes
No
エラー終了 (-1)
・コマンドアクセスモードで、Block Eraseコマンドを発行する
ためのレジスタ設定を行います。
FLCTLのレジスタ設定
io_set_flctl
No
転送開始
・FLTRCRレジスタ
TRSTRTビット ← 1 :送信開始
転送終了
・FLTRCRレジスタTRENDのビットに1がセットされるまで
待ちます。
Yes
転送停止
・FLTRCRレジスタに0x00を設定し、転送停止を設定します。
・FLCMNCRレジスタ
bit20 ← 1
CEビット ← 0
:ディスエーブル(FCE#端子にハイレベルを出力)
bit0 ← 1
チップイネーブルのネゲート
消去エラー ?
・FLINTDMACRレジスタのSTERBビットをリードして、ステータスエラー
を確認します。
Yes
No
エラー終了 (-1)
正常終了 ( 0 )
図6.14
Block Erase コマンド処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 29 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
表 6.14にBlock Erase コマンド発行時の FLCTL レジスタ設定値を示します。
表6.14
Block Erase コマンド発行時の FLCTL レジスタ設定値
レジスタ名
設定値
共通コントロールレジスタ
(FLCMNCR)
0x00140209
割り込み DMA 制御レジスタ
(FLINTDMACR)
データカウンタレジスタ
(FLDTCNTR)
コマンド制御レジスタ
(FLCMDCR)
0x00000000
コマンドコードレジスタ
(FLCMCDR)
アドレスレジスタ
(FLADR)
0x0000D060
R01AN2000JJ0100
2015.10.16
Rev.1.00
0x00000000
0x013B0000
指定の
ロウアドレス
機能
•
•
•
•
•
•
•
•
大容量 NAND 型フラッシュメモリ選択
FCLK = P0φ/2
コマンドアクセスモード
アドレス、データを 2FCLK サイクル出力
チップイネーブル:アサート
割り込み禁止
割込みステータスクリア
データ転送なし
•
•
•
•
•
•
•
第 1 コマンドステージを実行
3 バイトのアドレスを発行
第 2 コマンドステージを実行
ステータスリードを実行する
第 1 コマンド = 0x60
第 2 コマンド = 0xD0
下位 3 バイトにロウアドレスを設定
Page 30 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.9.5
Page Program コマンド処理
図 6.15にPage Program コマンド処理を示します。
Page Program コマンド処理の開始
R_FLCTL_Write_Sector
・ページをまたぐ指定になっていないか引数をチェックし
ページまたぎの場合は、エラーを返します。
引数エラー?
Yes
No
エラー終了(-1)
・FLTRCRレジスタのビットが全て0になっていることを
確認します。
転送中?
Yes
No
エラー終了(-1)
・コマンドアクセスモードで、Page Programコマンドを発行する
ためのレジスタ設定を行います。
データサイズは指定セクタ数 × セクタサイズに指定します。
FLCTLのレジスタ設定
io_set_flctl
No
転送開始
・FLTRCRレジスタに0x01を設定し、転送を開始します。
FIFOに空きあり?
・FLDTCNTRレジスタのDTFLWビットが1以上になるまで
待ちます。
Yes
・4バイト単位でFLDTFIFOにデータをライトします。
データFIFO(FLDTFIFO)にライト
No
指定サイズの
書き込み完了?
・指定セクタ数×セクタサイズのデータを書き込みます。
Yes
No
・FLTRCRレジスタTRENDのビットに1がセットされるまで
待ちます。
転送終了
Yes
・FLTRCRレジスタに0x00を設定し、転送停止を設定します。
転送停止
・FLCMNCRレジスタ
bit20 ← 1
CEビット ← 0
:ディスエーブル(FCE#端子にハイレベルを出力)
bit0 ← 1
チップイネーブルのネゲート
・FLINTDMACRレジスタのSTERBビットをリードして、ステータスエラー
を確認します。
書き込みエラー ?
Yes
No
エラー終了(-1)
正常終了 (0)
図6.15
Page Program コマンド処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 31 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
表 6.15にPage Program コマンド発行時の FLCTL レジスタ設定値を示します。
表6.15
Page Program コマンド発行時の FLCTL レジスタ設定値
レジスタ名
設定値
共通コントロールレジスタ
(FLCMNCR)
0x00140209
割り込み DMA 制御レジスタ
(FLINTDMACR)
0x000C0000
アドレスレジスタ 2
(FLADR2)
アドレスレジスタ
(FLADR)
データカウンタレジスタ
(FLDTCNTR)
コマンド制御レジスタ
(FLCMDCR)
コマンドコードレジスタ
(FLCMCDR)
R01AN2000JJ0100
2015.10.16
Rev.1.00
0x00000000
指定セクタの
アドレス
指定セクタの
アドレス
指定サイズ
(528 x n)
0x83330000
0x00001080
機能
•
•
•
•
•
•
•
•
•
•
大容量 NAND 型フラッシュメモリ選択
FCLK = P0φ/2
コマンドアクセスモード
アドレス、データを 2FCLK サイクル出力
チップイネーブル:アサート
FIFO クリア(FIFO の方向変更前に実施)
割り込み禁止
割込みステータスクリア
FIFO クリア解除
ロウアドレスの上位 1 バイトを設定
• ロウアドレスの下位 2 バイトとカラムアドレ
スを設定
• 管理コード領域を含むデータをバイト単位で
指定
(フラッシュメモリ書き込み時は、本レジスタに
2048+64 バイトまで指定可能)
• 第 1 コマンドステージを実行
• 5 バイトのアドレスを発行
• データステージはライト方向
(FLDTFIFO 使用)
•
•
•
•
第 2 コマンドステージを実行
ステータスリードを実行する
第 1 コマンド = 0x80
第 2 コマンド = 0x10
Page 32 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.9.6
Read コマンド処理
図 6.16にRead コマンド処理を示します。
Read コマンド処理の開始
R_FLCTL_Read_Sector関数
・ページをまたぐ指定になっていないか引数をチェックし
ページまたぎの場合は、エラーを返します。
引数エラー?
Yes
No
エラー終了(-1)
・FLTRCRレジスタのビットが全て0になっていることを
確認します。
転送中?
Yes
No
エラー終了(-1)
・コマンドアクセスモードで、Readコマンドを発行する
ためのレジスタ設定を行います。
データサイズとして128バイトまたは64バイトを指定します。
FLCTLのレジスタ設定
・FLTRCRレジスタに0x01を設定し、転送を開始します。
転送開始
指定サイズの
読み出し完了?
・128バイトまたは64バイトのデータを読み出します。
Yes
No
データあり?
・FLDTCNTRレジスタのDTFLWビットが1以上になるまで
待ちます。
No
Yes
データFIFO(FLDTFIFO)をリード
No
転送終了
・4バイト単位でFLDTFIFOからデータをリードします。
・FLTRCRレジスタTRENDのビットに1がセットされるまで
待ちます。
Yes
転送停止
チップイネーブルのネゲート
・FLTRCRレジスタに0x00を設定し、転送停止を設定します。
・FLCMNCRレジスタ
bit20 ← 1
CEビット ← 0
:ディスエーブル(FCE#端子にハイレベルを出力)
bit0 ← 1
データあり?
Yes
No
正常終了(0)
図6.16
Read コマンド処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 33 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
表 6.16にRead コマンド発行時の FLCTL レジスタ設定値を示します。
表6.16
Read コマンド発行時の FLCTL レジスタ設定値
レジスタ名
設定値
共通コントロールレジスタ
(FLCMNCR)
0x00140209
割り込み DMA 制御レジスタ
(FLINTDMACR)
0x000C0000
アドレスレジスタ 2
(FLADR2)
アドレスレジスタ
(FLADR)
データカウンタレジスタ
(FLDTCNTR)
コマンド制御レジスタ
(FLCMDCR)
コマンドコードレジスタ
(FLCMCDR)
R01AN2000JJ0100
2015.10.16
Rev.1.00
0x00000000
指定セクタの
アドレス
指定セクタの
アドレス
指定サイズ
(128 x n, 64)
0x82130000
0x00003000
機能
•
•
•
•
•
•
•
•
•
•
大容量 NAND 型フラッシュメモリ選択
FCLK = P0φ/2
コマンドアクセスモード
アドレス、データを 2FCLK サイクル出力
チップイネーブル:アサート
FIFO クリア(FIFO の方向変更前に実施)
割り込み禁止
割込みステータスクリア
FIFO クリア解除
ロウアドレスの上位 1 バイトを設定
• ロウアドレスの下位 2 バイトとカラムアドレ
スを設定
• 管理コード領域を含むデータをバイト単位で
指定
(フラッシュメモリ読み込み時は、本レジスタに
128 バイトまで指定可能)
• 第 1 コマンドステージを実行
• 5 バイトのアドレスを発行
• データステージはリード方向
(FLDTFIFO 使用)
• 第 2 コマンドステージを実行
• 第 1 コマンド = 0x00
• 第 2 コマンド = 0x30
Page 34 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
Read ID コマンド処理
6.9.7
図 6.17にRead ID コマンド処理を示します。
Read ID コマンド処理の開始
R_FLCTL_Read_Id関数
・FLTRCRレジスタのビットが全て0になっていることを
確認します。
転送中?
Yes
No
エラー終了( -1 )
FLCTLのレジスタ設定
io_set_flctl
転送開始
No
FIFOに
データあり?
・コマンドアクセスモードで、Read ID コマンドを発行する
ためのレジスタ設定を行います。
・FLTRCRレジスタ
TRSTRTビット ← 1 :送信開始
・FLDTCNTRレジスタのDTFLWビットが1以上になるまで
待ちます。
Yes
データFIFO(FLDTFIFO)をリード
No
読み出し
完了?
・4バイト単位でFLDTFIFOからデータをリードします。
・4バイト × 2回のデータを読み出します。
Yes
No
転送終了
・FLTRCRレジスタTRENDのビットに1がセットされるまで
待ちます。
Yes
転送停止
チップイネーブルのネゲート
・FLTRCRレジスタに0x00を設定し、転送停止を設定します。
・FLCMNCRレジスタ
bit20 ← 1
CEビット ← 0
:ディスエーブル(FCE#端子にハイレベルを出力)
bit0 ← 1
正常終了( 0 )
図6.17
Read ID コマンド処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 35 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
表 6.17にRead ID コマンド発行時の FLCTL レジスタ設定値を示します。
表6.17
Read ID コマンド発行時の FLCTL レジスタ設定値
レジスタ名
設定値
0x00000000
0x00
•
•
•
•
•
•
•
•
•
•
0x05
• チップ ID バイト数
0x02110000
• 第 1 コマンドステージを実行
• 1 バイトのアドレスを発行
• データステージはリード方向
(FLDTFIFO 使用)
• 第 2 コマンドステージを実行しない
• 第 1 コマンド = 0x90
共通コントロールレジスタ
(FLCMNCR)
0x00100209
割り込み DMA 制御レジスタ
(FLINTDMACR)
0x000C0000
アドレスレジスタ
(FLADR)
データカウンタレジスタ
(FLDTCNTR)
コマンド制御レジスタ
(FLCMDCR)
コマンドコードレジスタ
(FLCMCDR)
R01AN2000JJ0100
2015.10.16
Rev.1.00
機能
0x00000090
第 2 コマンドステージを実行しない
FCLK = P0φ/2
コマンドアクセスモード
アドレス、データを 2FCLK サイクル出力
チップイネーブル:アサート
FIFO クリア(FIFO の方向変更前に実施)
割り込み禁止
割込みステータスクリア
FIFO クリア解除
アドレスを 1 バイト設定
Page 36 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.9.8
Userdef_FLCTL_Init 関数の処理
図 6.18にUserdef_FLCTL_Init 関数の処理を示します。
Userdef_FLCTL_Init関数
汎用入出力ポートの設定
モジュールスタンバイの解除
共通コントロールレジスタ
(FLCMNCR)の設定
・汎用入出力ポートの設定をします。
PORTn [n=3,4]レジスタでNAF7~FAF0、FALE、FCLE
FRE#端子を設定します。
PORT5レジスタでFCE#、PORT1レジスタでFRB端子を
それぞれ設定します。
・モジュールスタンバイコントロールレジスタ7(STBCR7)の
MSTP73ビットに0を設定し、NANDフラッシュメモリコント
ローラにクロックを供給します。
・共通コントロールレジスタ(FLCMNCR)に0x00100001を
設定して、FCE#端子をネゲートします。
終了
図6.18
Userdef_FLCTL_Init 関数の処理
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 37 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.10
サンプルコードで使用する NAND 型フラッシュメモリのコマンド
表 6.18にサンプルプログラムで使用する NAND 型フラッシュメモリのコマンド仕様(Spansion 社製、型名:
S34ML04G100TFI)を示します。コマンドの詳細については、NAND 型フラッシュメモリのデータシートを
参照してください。
表6.18
サンプルプログラムで使用する NAND 型フラッシュメモリのコマンド仕様
コマンド名
第1
オペコード
アドレス
バイト数
ライトデータ
バイト数
第2
オペコード
リードデータ
バイト数
ビジー中の
発行可否
Reset
Block Erase
Page Program
Read
Read ID
H'FF
H'60
H'80
H'00
H'90
3
5
5
1
1~2112
-
H'D0
H'10
H'30
-
1~2112*
5
○
×
×
×
×
【注】 *
FLCTL の仕様の関係上、本サンプルプログラムでは 1 回のリードコマンド発行で読み出すリード
データは最大 128 バイトにしています。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 38 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
6.11
サンプルプログラムの起動
サンプルコードは、GENMAI ボードとシリアルインタフェースで接続したホスト PC 上のターミナルから
コマンド入力を行うことで、動作します。
GENMAI ボードに電源を投入後、図 6.19の①に示すメッセージを出力します。FLCTL のサンプルコードを
起動させる場合は、"SAMPLE>"のプロンプトの後に、"FLCTL"+"Enter"キーを入力します。図 6.19の②に示
すメッセージを出力します。" FLCTL>"のプロンプトの後に以下のように入力することで FLCTL サンプル
コードを起動します。
(1)
(2)
(3)
(4)
(5)
(6)
"INIT"+"Enter"を入力すると、FLCTL の初期設定後、リセットコマンド発行
"RESET"+"Enter"を入力すると、リセットコマンドを発行
"ERASE"+"Enter"を入力すると、Block Erase コマンドを発行
"WRITE"+"Enter"を入力すると、Page Program コマンドを発行
"READ"+"Enter"を入力すると、Read コマンドを発行
"INFO"+"Enter"を入力し、Read ID コマンドを発行
"HELP"+"Enter"キーを入力することで、図 6.19の③に示すようなサンプルコードの情報を表示します。
"EXIT"+"Enter"キーを入力することで、FLCTL サンプルコードの動作を終了します。
図 6.19の Ver.X.XX はサンプルコードのメイン処理のバージョンを、Ver.Y.YY は FLCTL サンプルコードの
バージョンを示します。
表示メッセージ
RZ/A1H CPU Board Sample Program. Ver.X.XX
Copyright (C) 2015 Renesas Electronics Corporation. All rights reserved.
①
select sample program.
SAMPLE>
RZ/A1H NAND Flash Memory Controller(FLCTL) Sample Program. Ver.Y.YY
Copyright (C) 2015 Renesas Electronics Corporation. All rights reserved.
②
FLCTL command mode.
FLCTL >
③
FLCTL > help
INIT
RESET
ERASE
WRITE
READ
INFO
EXIT
:
:
:
:
:
:
:
Initialize NAND Driver FLCTL IP
Issue RESET Command to NAND
Issue ERASE Command to NAND
Issue WRITE Command to NAND
Issue READ Command to NAND
Issue READ ID Command to NAND
Exit from NAND Command mode
FLCTL >
図6.19 FLCTL サンプルコード起動時のターミナル表示
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 39 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
7.
サンプルコード
サンプルコードは、ルネサス エレクトロニクスホームページから入手してください。
8.
参考ドキュメント
ユーザーズマニュアル:ハードウェア
RZ/A1Hグループ ユーザーズマニュアル ハードウェア編
(最新版をルネサス エレクトロニクスホームページから入手してください。)
R7S72100 RTK772100BC00000BR(GENMAI)ユーザーズマニュアル
(最新版をルネサス エレクトロニクスホームページから入手してください。)
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition Issue C
(最新版を ARM ホームページから入手してください。)
ARM Generic Interrupt Controller Architecture Specification Architecture version 1.0
(最新版を ARM ホームページから入手してください。)
ARM CortexTM-A9(Revision: r3p0)Technical Reference Manual
(最新版を ARM ホームページから入手してください。)
ARM CoreLinkTM Level 2 Cache Controller L2C-310(Revision: r3p2)Technical Reference Manual
(最新版を ARM ホームページから入手してください。)
テクニカルアップデート/テクニカルニュース
(最新の情報をルネサス エレクトロニクスホームページから入手してください。)
ユーザーズマニュアル:開発環境
ARM ソフトウェア開発ツール(ARM Compiler toolchain、ARM DS-5 等)に関しては、ARM ホームページ
から入手してください。
(最新版を ARM ホームページから入手してください。)
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 40 of 41
NAND フラッシュメモリコントローラを使用した
RZ/A1Hグループ
NAND 型フラッシュメモリへのアクセス例
ホームページとサポート窓口
ルネサス エレクトロニクスホームページ
http://japan.renesas.com
お問合せ先
http://japan.renesas.com/contact/
すべての商標および登録商標は,それぞれの所有者に帰属します。
R01AN2000JJ0100
2015.10.16
Rev.1.00
Page 41 of 41
改訂記録
Rev.
Rev.0.80
Rev.1.00
発行日
2014.10.03
2015.10.16
ページ
-
P13
P14
P15
改訂内容
ポイント
初版発行
「RZ/A1 グループ 初期設定例 Rev.1.01」アプリケーションノー
トの更新内容の反映。
• 表 6.3 使用するセクション(1/2)
表中の CODE_IO_REGRW セクションの実行領域の配置を
"FLASH"から"LRAM"に変更。
• 表 6.4 使用するセクション(2/2)
表中に CODE_CACHE_OPERATION のセクションを追加
注 3 に CODE_CACHE_OPERATION セクションの注意事項
を記載
• 図 6.9 セクション配置
CODE_IO_REGRW セクションの配置変更、および
CODE_CACHE_OPERATION セクションの追加を反映。
A-1
製品ご使用上の注意事項
ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意
事項については、本ドキュメントおよびテクニカルアップデートを参照してください。
1.
未使用端子の処理
【注意】未使用端子は、本文の「未使用端子の処理」に従って処理してください。
CMOS製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用
端子を開放状態で動作させると、誘導現象により、LSI周辺のノイズが印加され、LSI内部で貫通電
流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。未使用端子は、本文「未使用
端子の処理」で説明する指示に従い処理してください。
2.
電源投入時の処置
【注意】電源投入時は,製品の状態は不定です。
電源投入時には、LSIの内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定で
す。
外部リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子
の状態は保証できません。
同様に、内蔵パワーオンリセット機能を使用してリセットする製品の場合、電源投入からリセットの
かかる一定電圧に達するまでの期間、端子の状態は保証できません。
3.
リザーブアドレス(予約領域)のアクセス禁止
【注意】リザーブアドレス(予約領域)のアクセスを禁止します。
アドレス領域には、将来の機能拡張用に割り付けられているリザーブアドレス(予約領域)がありま
す。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしない
ようにしてください。
4.
クロックについて
【注意】リセット時は、クロックが安定した後、リセットを解除してください。
プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した後に切り替えてください。
リセット時、外部発振子(または外部発振回路)を用いたクロックで動作を開始するシステムでは、
クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子
(または外部発振回路)を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定し
てから切り替えてください。
5.
製品間の相違について
【注意】型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してくださ
い。
同じグループのマイコンでも型名が違うと、内部ROM、レイアウトパターンの相違などにより、電
気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ輻射量などが異なる場合がありま
す。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。
ご注意書き
1. 本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システムの設計におい
て、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に起因して、お客様または第三
者に生じた損害に関し、当社は、一切その責任を負いません。
2. 本資料に記載されている情報は、正確を期すため慎重に作成したものですが、誤りがないことを保証するものではありません。万一、本資料に記載されている情報
の誤りに起因する損害がお客様に生じた場合においても、当社は、一切その責任を負いません。
3. 本資料に記載された製品デ-タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権
に対する侵害に関し、当社は、何らの責任を負うものではありません。当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許
諾するものではありません。
4. 当社製品を改造、改変、複製等しないでください。かかる改造、改変、複製等により生じた損害に関し、当社は、一切その責任を負いません。
5. 当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、
各品質水準は、以下に示す用途に製品が使用されることを意図しております。
標準水準:
コンピュータ、OA機器、通信機器、計測機器、AV機器、
家電、工作機械、パーソナル機器、産業用ロボット等
高品質水準:輸送機器(自動車、電車、船舶等)、交通用信号機器、
防災・防犯装置、各種安全装置等
当社製品は、直接生命・身体に危害を及ぼす可能性のある機器・システム(生命維持装置、人体に埋め込み使用するもの等) 、もしくは多大な物的損害を発生さ
せるおそれのある機器・システム(原子力制御システム、軍事機器等)に使用されることを意図しておらず、使用することはできません。 たとえ、意図しない用
途に当社製品を使用したことによりお客様または第三者に損害が生じても、当社は一切その責任を負いません。 なお、ご不明点がある場合は、当社営業にお問い
合わせください。
6. 当社製品をご使用の際は、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他の保証範囲内でご使用ください。当社保証範囲を超えて当社製
品をご使用された場合の故障および事故につきましては、当社は、一切その責任を負いません。
7. 当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合がありま
す。また、当社製品は耐放射線設計については行っておりません。当社製品の故障または誤動作が生じた場合も、人身事故、火災事故、社会的損害等を生じさせ
ないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証
を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行ってください。
8. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制する
RoHS指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。お客様がかかる法令を遵守しないことにより生じた損害に
関して、当社は、一切その責任を負いません。
9. 本資料に記載されている当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。ま
た、当社製品および技術を大量破壊兵器の開発等の目的、軍事利用の目的その他軍事用途に使用しないでください。当社製品または技術を輸出する場合は、「外
国為替及び外国貿易法」その他輸出関連法令を遵守し、かかる法令の定めるところにより必要な手続を行ってください。
10. お客様の転売等により、本ご注意書き記載の諸条件に抵触して当社製品が使用され、その使用から損害が生じた場合、当社は何らの責任も負わず、お客様にてご負
担して頂きますのでご了承ください。
11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。
注1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社がその総株主の議決権の過半数
を直接または間接に保有する会社をいいます。
注2. 本資料において使用されている「当社製品」とは、注1において定義された当社の開発、製造製品をいいます。
http://www.renesas.com
■営業お問合せ窓口
※営業お問合せ窓口の住所は変更になることがあります。最新情報につきましては、弊社ホームページをご覧ください。
ルネサス エレクトロニクス株式会社 〒135-0061 東京都江東区豊洲3-2-24(豊洲フォレシア)
■技術的なお問合せおよび資料のご請求は下記へどうぞ。
総合お問合せ窓口:http://japan.renesas.com/contact/
© 2015 Renesas Electronics Corporation. All rights reserved.
Colophon 4.0
Fly UP