SH7268/SH7269グループ アプリケーションノート SPIマルチI/Oバスコントローラ シリアルフラッシュメモリ接続例
|
|
|
- ひでたつ まつかた
- 6 years ago
- Views:
Transcription
1 アプリケーションノート 要旨 SH7268/SH7269 の SPI マルチ I/O バスコントローラ (SPIBSC) は シリアルフラッシュメモリを任意にリードライトする機能 (SPI 動作モード ) に加えて プログラムデータを直接フェッチして実行する機能 ( 外部アドレス空間リードモード ) を備えています 本アプリケーションノートは SPIBSC の使用例とシリアルフラッシュメモリの接続例について説明します 動作確認デバイス SH7268/SH7269 以下 総称して SH7269 として説明します R01AN0671JJ0101 Rev 本アプリケーションノートを他のマイコンへ適用する場合 そのマイコンの仕様にあわせて変更し 十分評価してください 目次 1. はじめに 応用例の説明 参考プログラムリスト 参考ドキュメント R01AN0671JJ0101 Rev Page 1 of 53
2 1. はじめに 1.1 仕様 本アプリケーションノートは SPI マルチ I/O バスコントローラ (SPIBSC) の応用例についての説明と参考プログラムで構成しています 応用例の説明では シリアルフラッシュメモリの接続例と 2 つの制御方法 (SPI 動作モード 外部アドレス空間リードモード ) について説明します 1.2 使用機能 SPI マルチ I/O バスコントローラ (SPIBSC) ルネサスシリアルペリフェラルインタフェース (RSPI) ブートモード ( シリアルフラッシュメモリブート ) 汎用入出力ポート 1.3 適用条件マイコン動作周波数統合開発環境 C コンパイラコンパイルオプションシリアルフラッシュメモリ SH7268/SH7269 CPU 内部クロック (Iφ): MHz 内部バスクロック (Bφ): MHz 周辺クロック 1(P1φ):66.67 MHz 周辺クロック 0(P0φ):33.33 MHz ルネサスエレクトロニクス製 High-performance Embedded Workshop Ver ルネサスエレクトロニクス製 SuperH RISC engine ファミリ C/C++ コンパイラパッケージ Ver.9.03 Release02 High-performance Embedded Workshop でのデフォルト設定 (-cpu=sh2afpu -fpu=single -object="$(configdir) $(FILELEAF).obj" -debug -gbr=auto -chgincpath -errorpath -global_volatile=0 -opt_range=all -infinite_loop=0 -del_vacant_loop=0 -struct_alloc=1 nologo) Spansion 製 S25FL032P 1.4 関連アプリケーションノート本アプリケーションノートに関連するアプリケーションノートを以下に示します 合わせて参照してください SPI マルチ I/O バスコントローラを使用したシリアルフラッシュメモリからのブート例 1.5 "L" アクティブ端子 ( 信号 ) の表記について端子名 ( 信号名 ) 末尾の # は "L" アクティブ端子 ( 信号 ) であることを示します R01AN0671JJ0101 Rev Page 2 of 53
3 2. 応用例の説明 本応用例は SPI マルチ I/O バスコントローラ (SPIBSC) にシリアルフラッシュメモリを 1 個接続して 任意のリードライトアクセスおよびプログラムフェッチを行います 前者のアクセスには SPI 動作モードを使用し 後者のアクセスには外部アドレス空間リードモードを使用します ここではシリアルフラッシュメモリの端子接続例について説明した後 それぞれのモードの動作概要と制御方法について説明します 2.1 SPIBSC の特長 以下に SPIBSC の特長を示します シリアルフラッシュメモリを 2 個まで接続可能 1 つのシリアルフラッシュメモリに対し データバス幅を 1 ビット 2 ビット 4 ビットから選択可能 SPI マルチ I/O バス空間に配置したシリアルフラッシュメモリを直接フェッチすることが可能 ( 外部アドレス空間リードモード時 ) リードキャッシュを使用したバーストリードが可能 ( 外部アドレス空間リードモード時 ) シリアルフラッシュメモリに対し 任意のリードライト動作が可能 (SPI 動作モード時 ) 2.2 シリアルフラッシュメモリの端子接続例 表 1 に本応用例で使用する SPI マルチ I/O バス対応のシリアルフラッシュメモリ (Spansion 製 S25FL032P) の仕様を示します 表 1 本応用例で使用するシリアルフラッシュメモリの仕様 項目 仕様 バス入出力 シリアル入出力 ( 全二重 ) デュアル入出力( 半二重 ) クワッド入出力( 半二重 ) SPI モード SPI モード 0 およびモード 3 に対応可能 クロック周波数 シリアル入出力時 :104MHz(max) デュアル/ クワッド入出力時 :80MHz(max) 容量 4M バイト セクタサイズ 64K バイト ページサイズ 256 バイト イレースサイズ 全領域 /64K バイト /8K バイト /4K バイト プログラムサイズ Page Program(1~256 バイト ) プロテクトモード ライトイネーブルコマンド ( コマンド単位 ) ソフトウェア / ハードウェアプロテクトモード ( ブロック単位 ) R01AN0671JJ0101 Rev Page 3 of 53
4 図 1 にシリアルフラッシュメモリの接続回路例を示します 本応用例ではシリアルフラッシュメモリを 1 個接続し データバス幅 4 ビットでアクセスします SH7269 の端子機能については 表 2 のマルチプレクス出力端子に従い設定してください SH7269 PB17/QSPCLK_0/RSPCK0/SPBCLK PB18/QSSL_0/SSL00/SPBSSL PB19/QMO_0/QIO0_0/MOSI0/SPBMO_0/SPBIO0_0 PB20/QMI_0/QIO1_0/MISO0/SPBMI_0/SPBIO1_0 PB15/QIO2_0/SPBIO2_0 PB16/QIO3_0/SPBIO3_0 3.3V 3.3V 3.3V 3.3V 3.3V 3.3V SCK CS# シリアルフラッシュメモリ S25FL032P(4M バイト ) SI/IO0 SO/IO1 W#/ACC/IO2 HOLD#/IO3 ブートモード 3 3.3V MD_BOOT2 MD_BOOT1 3.3V MD_BOOT0 図 1 シリアルフラッシュメモリの接続回路例 注 制御信号端子の外付け抵抗によるプルアップ / プルダウン処理について制御信号に対するプルアップ / プルダウン処理は マイコンの端子状態がハイインピーダンスの場合でも 外部デバイスが誤動作しないように信号線のレベルを決定します 外付け抵抗でプルアップ処理を行ってください 周辺機能 使用端子名 表 2 マルチプレクス出力 SH7269 ポートコントロールレジスタレジスタ名 MD ビット設定値 SH7269 マルチプレクス端子名 SPIBSC SPBCLK PBCR4 PB17MD[2:0]=B'110 PB17 / A17 / QSPCLK / RSPCK0 / SPBCLK SPBSSL PBCR4 PB18MD[2:0]=B'110 PB18 / A18 / QSSL_0 / SSL00 / SPBSSL SPBIO0_0 PBCR4 PB19MD[2:0]=B'110 PB19 / A19 / QMO_0 / QIO0_0 / MOSI0 / SPBMO_0 / SPBIO0_0 SPBIO1_0 PBCR5 PB20MD[2:0]=B'110 PB20 / A20 / QMI_0 / QIO1_0 / MISO0 / SPBMI_0 / SPBIO1_0 SPBIO2_0 PBCR3 PB15MD[2:0]=B'110 PB15 / A15 / QIO2_0 / SPBIO2_0 SPBIO3_0 PBCR4 PB16MD[2:0]=B'110 PB16 / A16 / QIO3_0 / SPBIO3_0 注 SH7269 のマルチプレクス端子について SPIBSC で使用する各端子はマルチプレクス端子であり 初期状態が汎用入出力ポートの端子もあります そのためシリアルフラッシュメモリにアクセスする前に 汎用入出力ポートのコントロールレジスタによって SPIBSC 端子機能に設定する必要があります また ブートモード 0 および 1(CS0 空間に接続したメモリからのブート ) 使用時は これらの端子を SPIBSC 機能に設定できません ブートモード 3( シリアルフラッシュブート ) を使用してください R01AN0671JJ0101 Rev Page 4 of 53
5 2.3 インタフェースタイミング例 図 2 および表 3 表 4 に本応用例におけるインタフェースタイミング図とタイミング条件を示します SPIBSC の設定値はこれらのタイミング条件を満たす必要があります 表 5 には本応用例における SPIBSC のインタフェース設定値を示します 本応用例で使用するシリアルフラッシュメモリは SPI モード 0( クロックネゲートレベル 'L' 立ち上がり受信 立ち下がり送信 ) で動作する仕様のため SPIBSC も SPI モード 0 に準じた設定にしています ただし SH7269 のデータ入力セットアップ時間を満たすためにデータ受信タイミングだけは 1/2 サイクル遅らせています SPBSSL t CSS t LEAD 1/f C t SPBcyc N t TD t CS SPBCLK (CPOL = 0) t LAG t CSH t OD t OH SPBIO[0:3]_0 (output) シリアルフラッシュメモリ (input) t SU:DAT t HD:DAT シリアルフラッシュメモリ (output) t V t HO t SU t H SPBIO[0:3]_0 (input) セットアップ期間を長く取るため SH7269 のデータ受信タイミングを 1/2 サイクル遅らせます 図 2 本応用例におけるインタフェースタイミング図 R01AN0671JJ0101 Rev Page 5 of 53
6 表 3 シリアルフラッシュメモリのタイミング条件 シンボル項目説明 t CSS チップセレクト L セットアップ時間 SSL のアサートからシリアルフラッシュメモリのデータ受信までに必要な時間です 以下の条件を満たす必要があります t LEAD (= クロック遅延 ) t CSS (min) t CS チップセレクト H 時間 SSL のネゲート期間として必要な時間です 以下の条件を満たす必要があり ます t TD (= 次アクセス遅延 ) t CS (min) f C シリアルクロック周波数 シリアルフラッシュメモリが対応可能な最大動作周波数です 以下の条件を 満たす必要があります f C (max) 1 / t SPBcyc t CSH t SU:DAT t HD:DAT チップセレクト L ホールド時間 データ入力セットアップ時間 データ入力ホールド時間 SPBCLK の立ち上がりから SSL のネゲートまでに必要な時間です 以下の条件を満たす必要があります t LAG (=SPBSSL ネゲート遅延 ) + (t SPBcyc 1/2) t CSH (min) データ入力に必要なセットアップ時間です 以下の条件を満たす必要があります (t SPBcyc 1/2) - t OD (max) t SU:DAT (min) データ入力に必要なホールド時間です 以下の条件を満たす必要があります t OH (min) + (t SPBcyc 1/2) t HD:DAT (min) 注 t SPBcyc は 2 t cyc 固定です また t cyc はバスクロック (Bφ) の 1 サイクル時間を示します 表 4 SPIBSC のタイミング条件 シンボル項目説明 t SU t H データ入力セットアップ時間 データ入力ホールド時間 データ入力に必要なセットアップ時間です 以下の条件を満たす必要があります t SPBcyc - t V (max) t SU (min) データ入力に必要なホールド時間です 以下の条件を満たす必要があります t HO (min) t H (min) 注 t SPBcyc は 2 t cyc 固定です また t cyc はバスクロック (Bφ) の 1 サイクル時間を示します 表 5 本応用例におけるインタフェースタイミングの設定値 レジスタ名ビット名設定値機能 ビットレート設定レジスタ (SPBCR) 共通コントロールレジスタ (CMNCR) SSL 遅延レジスタ (SSLDR) H' SPBCLK のビットレートを Bφの 2 分周に設定 (66.67Mbps) CPOL ビット B'0 SPBCLK のネゲートレベルを 'L' に設定 CPAHT ビット B'0 偶数エッジでデータ送信 CPAHR ビット B'1 偶数エッジでデータ受信 SPND[2:0] B'000 次アクセス遅延設定を 1SPBCLK に設定 SLNDL[2:0] B'000 SPBSSL ネゲート遅延設定を 1.5SPBCLK に設定 SCKDL[2:0] B'000 クロック遅延設定を 1SPBCLK に設定 R01AN0671JJ0101 Rev Page 6 of 53
7 2.4 初期設定フロー 図 3 に本応用例における SPIBSC の初期設定フローを示します SPIBSC の初期設定フロー io_spibsc_common_init 関数 エラー No スタンバイコントロールレジスタ 7 (STBCR7) の設定 ポート (PORT) の設定 SPBSSLがネゲート状態? Yes 共通コントロールレジスタ (CMNCR) の設定 SSL 遅延レジスタ (SSLDR) の設定 ビットレート設定レジスタ (SPBCR) の設定 END SPIBSC へのクロック供給停止を解除 マルチプレクス端子の選択 機能 SPBIO1_0 SPBIO0_0 SPBSSL SPBCLK SPBIO3_0 SPBIO2_0 共通ステータスレジスタ (CMNSR) の SSLF ビットをチェックして SPBSSL がネゲート状態であることを確認します CMNCR の設定 (MOIIO3~MOIIO0 ビット = B'11) 機能 SPBSSL ネゲート期間中の SPBIO3~SPBIO0 の出力値は Hi-Z (IO3FV~IO2FV ビット = B'11 ) 機能 1 ビット /2 ビット幅時の SPBIO3~SPBIO2 の出力値は Hi-Z (IO0FV ビット = B'11 ) 機能 1 ビット幅時の SPBIO0 の出力値は Hi-Z (CPHAT ビット = B'0) 機能 偶数エッジでデータ送信 (CPHAR ビット = B'0) 機能 偶数エッジでデータ受信 (SSLP ビット = B'0) 機能 SPBSSL 信号は Low アクティブ (CPOL ビット = B'0) 機能 SPBSSL ネゲート時 SPBCLK は信号は 0 出力 (BSZ ビット = B'00) 機能 接続するシリアルフラッシュメモリは 1 個 SSLDR の設定 (SSLDR = H' ) 機能 次アクセス遅延を 1 SPBCLK に設定 ( 固定 ) SPBSSL ネゲート遅延を 1.5 SPBCLK に設定 ( 固定 ) クロック遅延を 1 SPBCLK に設定 SPBCR の設定 (SPBCR = H' ) 機能 ビットレートを Bφ の 2 分周に設定 (66.67Mbps) ( 固定 ) 図 3 本応用例における SPIBSC の初期設定フロー R01AN0671JJ0101 Rev Page 7 of 53
8 2.5 SPI 動作モード 動作概要 SPI 動作モードは シリアルフラッシュメモリに対して任意のリードライト動作を行うことができるモードです SPIBSC を使用してシリアルフラッシュメモリに書き込みを行う場合は 本モードを使用する必要があります SPI 動作モードを使用する場合は 2.4 初期設定フロー の図 3 で示した設定に加えて 図 6 および図 7 図 9 に示す設定を行ってください データフォーマットと関連レジスタ シリアルフラッシュメモリに対するリードライト動作にはコマンドを使用します コマンドのデータフォーマットは SPIBSC のレジスタで設定します 発行するコマンドに応じて設定してください 表 6 に SPI 動作モードのデータフォーマットと関連レジスタを示します データ 項目 コマンド オプショナル コマンド ビット幅の設定 (Single/Dual/Quad) SMCMR. CMD[7:0] ビット SMENR. CDB[1:0] ビット 表 6 SPI 動作モードのデータフォーマットと関連レジスタ SMCMR. OCMD[7:0] ビット SMENR. OCDB[1:0] ビット アドレス 32 ビット時 : SMADR.ADR[31:0] ビット 24 ビット時 : SMADR.ADR[23:0] ビット SMENR.ADB[1:0] ビット オプションデータ SMOPR. OPDn [7:0] ビット (n = 0~3) SMENR. OPDB[1:0] ビット データ入出力の許可 ( 常に出力 ) SMCR.SPIRE ビット SMCR.SPIWE ビット 転送許可 SMENR. CDE ビット SMENR. OCDE ビット SMENR.ADE[3:0] ビット ( ビット長も設定 ) SMENR. OPDE[3:0] ビット 転送データ < リード用 > 32 ビット時 :SMRDR0.RDATA0[31:0] ビット 16 ビット時 :SMRDR0.RDATA0[31:16] ビット 8ビット時 :SMRDR0.RDATA0[31:24] ビット < ライト用 > 32 ビット時 :SMWDR0.WDATA0[31:0] ビット 16 ビット時 :SMWDR0.WDATA0[31:16] ビット 8ビット時 :SMWDR0.WDATA0[31:24] ビット SMENR.SPIDB[1:0] ビット SMENR.SPIDE[3:0] ビット ( ビット長も設定 ) R01AN0671JJ0101 Rev Page 8 of 53
9 2.5.3 SPBSSL 端子アサート保持機能 図 4 に SPI 動作モードの SPBSSL アサート保持機能を示します SPI 動作モードの場合 SPI モードコントロールレジスタ (SMCR) の SSLKP ビットを 1 に設定すると 転送終了後から次アクセス開始まで SPBSSL 信号レベルを保持します この機能を使用すると連続転送が可能になりますが 転送データのビット幅を 2 ビット以上に設定したデータリード処理では 本機能を使用できません SSLKP ビット =1 SPIE ビット =1 SSLKPビット =0 SPBSSLは SPIEビット =1 * アサートし続ける SPBSSL はネゲートする SPBSSL SPBCLK SPBMO_0/ SPBIO0_0 コマンド アドレス ライトデータ (SMWDR) ライトデータ (SMWDR) SPBMI_0/ SPBIO1_0 ライトデータ (SMWDR) ライトデータ (SMWDR) SPBIO2_0 ライトデータ (SMWDR) ライトデータ (SMWDR) SPBIO3_0 ライトデータ (SMWDR) ライトデータ (SMWDR) 注 * ここでは転送データのみをイネーブルにしています 図 4 SPI 動作モードの SPBSSL アサート保持機能 R01AN0671JJ0101 Rev Page 9 of 53
10 2.5.4 データリード手順 (1) リードコマンド 表 7 と図 5 に SPI 動作モードで使用する S25FL032P のリードコマンドを示します なお ここでは参考プログラムで使用しているコマンドのみ記載しています 表 7 SPI 動作モードで使用する S25FL032P のリードコマンド コマンド名 コマンド アドレス ダミー データ 機能 コード バイト数 バイト数 バイト数 Quad Output Read H'6B 3 1 * 1 以上 データのリード (Quad-SPI) 注 * 指定アドレスからインクリメントされた領域をリードします ( 最終番地を超えた場合は 0 番地に 戻ります ) SPBSSL SPBCLK SPBMO_0/ コマンドコードアドレス A23-A0 ダミークロックデータ SPBIO0_0 C C C C C C C C A A A A A A A A A A A D D D D D SPBMI_0/ SPBIO1_0 Hi-Z Hi-Z SPBIO2_ SPBIO3_0 Hi-Z 図 5 Quad Output Read のコマンドシーケンス 注 Quad Output Read コマンドは 転送データのビット幅が 4 ビットのため一回のコマンド発行で 4 バイトしかリードできません R01AN0671JJ0101 Rev Page 10 of 53
11 (2) SPI 動作モード設定フロー ( リード ) 図 6 および図 7 に本応用例における SPI 動作モードのリードコマンド転送フローを示します Quad Output Read コマンド転送フロー sf_byte_read_spibsc 関数 データサイズに応じた転送単位を算出 32 ビットの倍数なら 32 ビット 16 ビットの倍数なら 16 ビット そうでなければ 8 ビットを転送単位とする 残りデータあり? No Yes データフォーマットを構造体に設定 ( コマンド用 ) SPBSSL の保持を構造体に設定 END 出力許可/ 禁止 コマンド : 許可 オプショナルコマンド : 禁止 アドレス : 許可 (24ビット) オプションデータ : 許可 (1バイト:OPD3) 転送データ : 禁止 ビット幅 コマンド :1ビット幅(Single) アドレス :1ビット幅(Single) オプションデータ :1ビット幅(Single) データ値 コマンド :H'6B(Quad Output Read ) アドレス : リードするシリアルフラッシュ メモリのアドレス オプションデータ : 不定値 転送データのリードライト制御 データリード : 禁止 データライト : 禁止 SPBSSLの保持設定 : 保持する レジスタ I/O 処理を実行 io_spibsc_transfer 関数 データフォーマットを構造体に設定 ( 転送データ用 ) SPBSSL の非保持を構造体に設定 レジスタ I/O 処理を実行 io_spibsc_transfer 関数 設定値を格納した構造体をパラメータとして関数を実行します コマンド アドレス ダミーデータを転送した後 SPBSSLをアサートした状態のまま戻ります 出力許可/ 禁止コマンド : 禁止オプショナルコマンド : 禁止アドレス : 禁止オプション : 禁止転送データ : 許可 ( 転送単位を設定 ) ビット幅転送データ :4ビット幅(Quad) 転送データのリードライト制御データリード : 許可データライト : 禁止 SPBSSLの保持設定 : 保持しない 注 転送データのビット幅を2ビットまたは4ビット幅に設定してデータリードを行う場合 SPBSSLを保持する設定は禁止です 設定値を格納した構造体をパラメータとして関数を実行します 転送データをリードした後 SPBSSL をネゲートします 図 6 SPI 動作モードのリードコマンド転送フロー R01AN0671JJ0101 Rev Page 11 of 53
12 レジスタ I/O 処理フロー io_spibsc_transfer 関数 No SPBSSL がネゲート状態? No SPI 動作モードに設定済み? Yes 共通コントロールレジスタ (CMNCR) の MD ビットの値が SPI 動作モードでない場合は 共通ステータスレジスタ (CMNSR) の SSLF ビットの値がネゲート状態であることを確認した上で SPI 動作モードに変更します ERROR Yes SPI 動作モードを設定 ERROR ERROR データのビット幅が Dual または Quad の場合は データリードとデータライトを同時に許可することはできません No No 転送完了済み? Yes SPI モードコマンド設定レジスタ (SMCMR) の設定 SPI モードアドレス設定レジスタ (SMADR) の設定 SPI モードオプションデータ設定レジスタ (SMOPR) の設定 SPI モードライトデータレジスタ 0 (SMWDR0) の設定 SPI モードイネーブル設定レジスタ (SMENR) の設定 Dual/Quad なら半二重通信か? Yes SPI モードコントロールレジスタ (SMCR) の設定 データ転送を許可 転送が完了していることを確認します CMNSR レジスタの TEND ビットが B'0 の場合は転送中です SMCMR レジスタの設定 機能 CMD[7:0] ビット : コマンドの値を設定 OCMD[7:0] ビット : オプショナルコマンドの値を設定 SMADR レジスタの設定 機能 ADR[31:0] ビット : アドレスの値を設定 SMOPR レジスタの設定 機能 OPD3[7:0] ビット : オプションデータの値を設定 ( 最初の出力 ) OPD2[7:0] ビット : オプションデータの値を設定 (2 番目の出力 ) OPD1[7:0] ビット : オプションデータの値を設定 (3 番目の出力 ) OPD0[7:0] ビット : オプションデータの値を設定 (4 番目の出力 ) SMWDR0 レジスタの設定 機能 WDATA0[31:0] ビット : ライトする転送データの値を設定 8 ビット転送時 WDATA0[31:24] が有効 16 ビット転送時 WDATA0[31:16] が有効 32 ビット転送時 WDATA0[31:0] が有効 SMENRレジスタの設定 機能 CDB[1:0] ビット : コマンドのビット幅を設定 OCDB[1:0] ビット : オプショナルコマンドのビット幅を設定 ADB[1:0] ビット : アドレスのビット幅を設定 OPDB[1:0] ビット : オプションデータのビット幅を設定 SPIDB[1:0] ビット : 転送データのビット幅を設定 CDEビット : コマンド出力の許可 / 禁止を設定 OCDEビット : オプショナルコマンド出力の許可 / 禁止を設定 ADE[3:0] ビット : アドレスの出力許可 データ長を設定 OPDE[3:0] ビット : オプションデータの出力許可 データ長を設定 SPIDE[3:0] ビット : 転送データの出力許可 データ長を設定 SMCRレジスタの設定 機能 SSLKPビット :SPBSSL 信号レベル保持 / 非保持を設定 SPIREビット : データリードの許可 / 禁止を設定 SPIWEビット : データライトの許可 / 禁止を設定 SMCR レジスタの SPIE ビットに B'1 を設定して データ転送を開始します 転送開始待ち CMNSR レジスタのダミーリードを 4 回繰り返して 転送開始状態 (TEND ビット = B'0) になるまで待ちます No 転送完了? CMNSR レジスタの TEND ビットが B'1 になるまで待ちます Yes SPIモードリードデータレジスタ0 (SMRDR0) の読み出し END SMRDR0 レジスタの読み出し 機能 RDATA0[31:0] ビット : リードした転送データの値を読み出し 8 ビット転送時 RDATA0[31:24] が有効 16 ビット転送時 RDATA0[31:16] が有効 32 ビット転送時 RDATA0[31:0] が有効 図 7 SPI 動作モードのレジスタ IO 処理フロー R01AN0671JJ0101 Rev Page 12 of 53
13 2.5.5 データライト手順 (1) ライトコマンド 表 8 と図 8 に SPI 動作モードで使用する S25FL032P のライトコマンドを示します なお ここでは参考プログラムで使用しているコマンドのみ記載しています 表 8 SPI 動作モードで使用する S25FL032P のライトコマンド コマンド名 コマンド アドレス ダミー データ コード バイト数 バイト数 バイト数 Quad Page Programming H' 以上 機能 データのライト (Quad-SPI) 注 1 指定アドレスと同一ページ内で インクリメントされた領域にライトします ( ページの最終番地を超えた場合はページの先頭に戻ります ) SPBSSL SPBCLK SPBMO_0/ コマンドコードアドレス A23-A0 データ SPBIO0_0 C C C C C C C C A A A A A A A A A A A SPBMI_0/ SPBIO1_0 Hi-Z Hi-Z SPBIO2_ SPBIO3_0 Hi-Z 図 8 Quad Page Programming コマンドシーケンス R01AN0671JJ0101 Rev Page 13 of 53
14 (2) SPI 動作モード設定フロー ( ライト ) 図 9 に本応用例における SPI 動作モードのライトコマンド転送フローを示します レジスタ I/O 処理フローについては図 7 を参照してください Quad Page Programming コマンド転送フロー sf_byte_program_spibsc 関数 ライトイネーブルコマンドを実行 write_enable 関数 データフォーマットを構造体に設定 ( コマンド用 ) SPBSSL の保持を構造体に設定 レジスタ I/O 処理を実行 io_spibsc_transfer 関数 データサイズに応じた転送単位を算出 データフォーマットを構造体に設定 ( 転送データ用 ) 残りデータあり? Yes ライトデータを構造体に設定 No 出力許可/ 禁止 コマンド : 許可 オプショナルコマンド : 禁止 アドレス : 許可 (24ビット) オプションデータ : 禁止 転送データ : 禁止 ビット幅 コマンド :1ビット幅(Single) アドレス :1ビット幅(Single) データ値 コマンド :H'32(Quad Page Programming ) アドレス : ライトするシリアルフラッシュ メモリのアドレス 転送データのリードライト制御 データリード : 禁止 データライト : 禁止 SPBSSLの保持設定 : 保持する 設定値を格納した構造体をパラメータとして関数を実行します コマンド アドレスを転送した後 SPBSSL をアサートした状態のまま戻ります 32 ビットの倍数なら 32 ビット 16 ビットの倍数なら 16 ビット そうでなければ 8 ビットを転送単位とする 出力許可/ 禁止 コマンド : 禁止 オプショナルコマンド : 禁止 アドレス : 禁止 オプションデータ : 禁止 転送データ : 許可 ( 転送単位を設定 ) ビット幅 転送データ :4ビット幅(Quad) 転送データのリードライト制御 データリード : 禁止 データライト : 許可 END No 最後のデータ? Yes SPBSSL の非保持を構造体に設定 SPBSSL の保持設定 : 保持しない レジスタ I/O 処理を実行 io_spibsc_transfer 関数 設定値を格納した構造体をパラメータとして関数を実行します 転送データをライトした後 SPBSSL をネゲートします 図 9 SPI 動作モードのライトコマンド転送フロー R01AN0671JJ0101 Rev Page 14 of 53
15 2.6 外部アドレス空間リードモード 動作概要 外部アドレス空間リードモードは SPI マルチ I/O バス空間へのリードアクセスを SPI 通信に自動変換するモードです 本モードを使用すると NOR フラッシュメモリと同じように メモリ上のプログラムを直接フェッチできるようになります そのため プログラムを RAM 上に展開する必要がなくなり RAM 容量を削減できます 外部アドレス空間リードモードを使用する場合は 2.4 初期設定フロー の図 3 で示した設定に加えて 図 14 に示す設定を行ってください アドレスの自動変換 図 10 に外部アドレス空間リードモードにおけるアドレス変換イメージ ( シリアルフラッシュメモリが 24 ビットアドレスの場合 ) を示します SPIBSC は SPI マルチ I/O バス空間である H' 番地 ~ H'1BFF FFFF 番地へのリードアクセスを検出すると 検出したアドレスの下位 24 ビットをシリアルフラッシュメモリへのアクセスに使用します またキャッシュ無効空間 (H' 番地 ~ H'3BFF FFFF) に対しても同様に変換されます CPU の内部アドレス空間 下位 24 ビットを使用 シリアルフラッシュメモリ (S25FL032P) のアドレス空間 H' H'183F FFFF H' H'3F FFFF 4M バイト SPI マルチ I/O バス空間 ( キャッシュ有効 ) H'1BFF FFFF H' H'383F FFFF SPI マルチ I/O バス空間 ( キャッシュ無効 ) H'3BFF FFFF 注 アドレスを 32 ビットで出力する場合の上位アドレスは データリード拡張アドレス設定レジスタ (DREAR) で設定します 図 10 外部アドレス空間リードモードのアドレス変換イメージ R01AN0671JJ0101 Rev Page 15 of 53
16 2.6.3 データフォーマットと関連レジスタ シリアルフラッシュメモリにはコマンドを使ってアクセスします コマンドのデータフォーマットは SPIBSC のレジスタで設定します 表 6 に外部アドレス空間リードモードのデータフォーマットと関連レジスタを示します SPI 動作モードで使用するレジスタとは異なるレジスタを使用する点に注意してください データ 表 9 外部アドレス空間リードモードのデータフォーマットと関連レジスタ 項目 コマンド オプショナル コマンド ビット幅の設定 (Single/Dual/Quad) DRCMR.CMD[7:0] ビット DRENR.CDB[1:0] ビット DRCMR. OCMD[7:0] ビット DRENR. OCDB[1:0] ビット アドレスオプションデータ転送データ (24 ビット時 ) リードした下位アドレス [23:0] ビット DRENR.ADB[1:0] ビット DROPR.OPDn[7:0] ビット (n = 0~3) DRENR.OPDB[1:0] ビット < 通常リード時 > アクセスサイズに応じたビット数を転送 (8/16/32/64 ビット ) < バーストリード時 > DRCR.RBURST[3:0] ビット (RBURST 64 ビット ) DRENR.DRDB[1:0] ビット データ入出力の許可 ( 常に出力 ) ( 常に入力 ) 転送許可 DRENR.CDE DRENR.OCDE DRENR.ADE[3:0] ビット DRENR.OPDE[3:0] 常に許可 ビット ビット ( ビット長も設定 ) ビット R01AN0671JJ0101 Rev Page 16 of 53
17 2.6.4 リードコマンド 表 10 と図 11 に外部アドレス空間リードモードで使用する S25FL032P のリードコマンドを示します なお ここでは参考プログラムで使用しているコマンドのみ記載しています コマンド名 Quad I/O High Performance Read 注 *1 *2 表 10 外部アドレス空間リードモードで使用する S25FL032P のリードコマンド コマンド アドレス モード ダミー データ コード バイト数 バイト数 バイト数 バイト数 H'EB 3 1 *1 2 *2 1 以上 機能 データの高速リード (Quad-SPI) H'A0~H'AF を設定すると連続モードが設定され 次に SPBSSL をアサートした際にコマンドコードが不要になります ただし本応用例では使用しません 指定アドレスからインクリメントされた領域をリードします ( 最終番地を超えた場合は 0 番地に戻ります ) < 通常時のコマンドシーケンス > SPBSSL SPBCLK SPBMO_0/ コマンドコードアドレス A23-A0 モードダミーデータ SPBIO0_0 C C C C C C C C A A A A A A M M D D D D SPBMI_0/ SPBIO1_0 Hi-Z A A A A A A M M D D D D Hi-Z SPBIO2_0 A A A A A A M M D D D D SPBIO3_0 Hi-Z A A A A A A M M D D D D < 連続モード (H'Ax) のコマンドシーケンス > SPBSSL SPBCLK SPBMO_0/ SPBIO0_ アドレス A23-A0 モードダミーデータ A A A A A A M M D D D D SPBMI_0/ SPBIO1_0 A A A A A A M M D D D D SPBIO2_0 A A A A A A M M D D D D SPBIO3_0 A A A A A A M M D D D D 図 11 Quad I/O High Performance Read のコマンドシーケンス R01AN0671JJ0101 Rev Page 17 of 53
18 2.6.5 バーストリード動作 データリードコントロールレジスタ (DRCR) の RBE ビットを 1 に設定すると バーストリード動作となります また同時にリードキャッシュも有効になります 以下にバーストリードおよびリードキャッシュの動作概要を示します (1) バーストリードとリードキャッシュ 図 12 にバーストリードとリードキャッシュの動作を示します SPI マルチ I/O バス空間へのリードアクセスを検出すると SPIBSC はまずリードキャッシュからデータを参照します リードキャッシュにデータがある場合は シリアルフラッシュメモリへはアクセスせず リードキャッシュからデータを読み出します リードキャッシュにデータが無い場合は シリアルフラッシュメモリをバーストリードし読み出したデータをリードキャッシュに格納します このときのデータ転送長は 64 ビット RBURST[3:0] ビットであり 必ず 64 ビット境界からリードします また リードキャッシュをフラッシュしたい場合は DRCR レジスタの RCF ビットをセットします 内部バス SPIBSC キャッシュヒット リードキャッシュ シリアルフラッシュメモリ リードキャッシュから読み出し ミスヒット 0 1 V タグアドレスデータ シリアルフラッシュメモリからデータ読み出し 15 リードキャッシュから読み出し アドレスアレイ データアレイ 31(1+30) ビット 64ビット 図 12 バーストリードとリードキャッシュの動作 R01AN0671JJ0101 Rev Page 18 of 53
19 (2) SPBSSL 自動ネゲート 図 13 にバーストリード動作の SPBSSL 自動ネゲート機能を示します DRCR レジスタの SSLE ビットを 1 に設定すると バーストリード転送後に SPBSSL 端子をネゲートしません 次回アクセス時 前回リードアドレスに対してアドレスが連続している場合 コマンド / オプショナルコマンド / アドレス / オプションデータを発行することなしにバーストリードを行います また アドレスが連続していない場合は SPBSSL 端子を一度ネゲートし コマンド / オプショナルコマンド / アドレス / オプションデータを発行後にバーストリードを行います SPI マルチ I/O バス空間アクセス 連続アドレスをアクセス 非連続アドレスをアクセス SPBSSL SPBCLK SPBMO_0/ SPBIO0_0 コマンド アドレス ダミー リードデータ リードデータ コマンド アドレス ダミー リードデータ SPBMI_0/ SPBIO1_0 アドレス ダミー リードデータ リードデータ アドレス ダミー リードデータ SPBIO2_0 アドレス ダミー リードデータ リードデータ アドレス ダミー リードデータ SPBIO3_0 アドレス ダミー リードデータ リードデータ アドレス ダミー リードデータ 64 RBURST ビット 64 RBURST ビット 64 RBURST ビット 図 13 バーストリード動作の SPBSSL 自動ネゲート機能 R01AN0671JJ0101 Rev Page 19 of 53
20 2.6.6 外部アドレス空間リードモード設定フロー 図 14 に本応用例における外部アドレス空間リードモードの設定フローを示します 外部アドレス空間リードモードの設定フロー io_spibsc_dr_init 関数 エラー No Yes 共通コントロールレジスタ (CMNCR) の設定 データリードコントロールレジスタ (DRCR) の設定 エラー No SPBSSL がネゲート状態? 転送完了状態? Yes CMNSR の SSLF ビットをチェックして SPBSSL がアサートされていないことを確認します CMNCR の設定 (MD ビット = B'0) 機能 外部アドレス空間リードモードに切り替え DRCR の設定 (RBURST[3:0] ビット = B'0001) 機能 バースト長を 2 データ長 (128 ビット ) に設定 (RBE ビット = B'1) 機能 リードバースト動作を許可 (SSLE ビット = B'1) 機能 連続アドレス時は SPBSSL をネゲートしない CMNSR の TEND ビットをチェックして転送中でないことを確認します データリードコマンド設定レジスタ (DRCMR) の設定 データリードイネーブル設定レジスタ (DRENR) の設定 データリードオプションデータ設定レジスタ (DROPR) の設定 END DRCMR の設定 (CMD[7:0] ビット = H'EB) 機能 Quad I/O High Performance Read コマンドを設定 DRENRの設定 (CDEビット = B'1 OCDEビット = B'0 ADE[3:0] ビット = B'0111 OPDE[3:0] ビット = B'1110) 機能 コマンドの出力を許可 オプショナルコマンドの出力を禁止 アドレス(24ビット) の出力を許可 オプションデータ(OPD3 OPD2 OPD1) の出力を許可 (CDB[1:0] ビット = B'00 OCDB[1:0] ビット = B'00 ADB[1:0] ビット = B'10 OPDB[1:0] ビット = B'10 DRDB[1:0] ビット = B'10) 機能 コマンドのビット幅を1ビットに設定 アドレスのビット幅を4ビットに設定 オプションデータのビット幅を4ビットに設定 データリードのビット幅を4ビットに設定 DROPRの設定 (OPD3[7:0] ビット = H'00) 機能 Quad I/O High Performance Readコマンドのモードビットに H'00( 非連続モード ) を設定 (OPD2[7:0] ビット = H'00 OPD1[7:0] ビット = H'00) 機能 Quad I/O High Performance Readコマンドのダミークロックを設定 図 14 外部アドレス空間リードモードの設定フロー R01AN0671JJ0101 Rev Page 20 of 53
21 2.7 参考プログラムの動作概要 ここでは 参考プログラムの動作概要を説明します 参考プログラムは まず外部アドレス空間リードモードが有効な状態で起動して SPI マルチ I/O バス空間上に配置したメイン関数を実行します 次に SPI 動作モードを使用してシリアルフラッシュメモリをリードライトしますが SPI マルチ I/O 空間上では SPI 動作モードに切り換えられないため 大容量内蔵 RAM 上に配置した関数で実行します 最後に 再び外部アドレス空間リードモードを有効にしてメイン関数に戻ります メイン関数フロー 図 15 に参考プログラムのメイン関数フローを示します メイン関数フロー main 関数 大容量内蔵 RAM 上で処理を実行 func_on_ram 関数 コンソールにメッセージを表示 END SPI 動作モードを使用してシリアルフラッシュメモリにアクセスします main 関数は SPI マルチ I/O バス空間上で動作しているため main 関数上で SPI 動作モードに切り換えることはできません そのため 大容量内蔵 RAM 上に配置した関数に処理を移します SPI マルチ I/O バス空間上に配置した main 関数の命令を実行することで 外部アドレス空間リードモードを使用してシリアルフラッシュメモリをアクセスします func_on_ram 関数 SPBSSL をネゲート (1)SPBSSL の自動ネゲートを解除 (2) リードキャッシュをフラッシュ (3) ダミーリード SPIBSC の初期設定を実行 sf_init_serial_flash_spibsc 関数 (1) データリードコントロールレジスタ (DRCR) の SSLE ビットを 0 に設定して アクセスごとに SPBSSL がネゲートされるようにします (2)DRCR レジスタの RCF ビットを 1 にセットします キャッシュフラッシュによって 次のダミーリードは必ずミスヒットします (3)SPI マルチ I/O バス空間の任意の領域をリードしてシリアルフラッシュメモリへのアクセスを発生させ SPBSSL をネゲートします SPIBSC の初期設定を行います シリアルフラッシュメモリのプロテクトを解除 sf_protect_ctrl_spibsc 関数 書き込み領域の消去 sf_sector_ctrl_spibsc 関数 1 セクタ分の領域を消去します 書き込み sf_byte_program_spibsc 関数 1 セクタ分のデータを SPI 動作モードを使用してライトします 読み出し sf_byte_read_spibsc 関数 ライトした 1 セクタ分のデータを SPI 動作モードを使用してリードします No ベリファイチェックOK? Yes シリアルフラッシュメモリのプロテクトを許可 sf_protect_ctrl_spibsc 関数 外部アドレス空間リードモードを許可 sf_allocate_exspace_spibsc 関数 外部アドレス空間リードモードを許可してからメイン関数に戻ります END 図 15 参考プログラムのメイン関数フロー R01AN0671JJ0101 Rev Page 21 of 53
22 3. 参考プログラムリスト 3.1 参考プログラムについての補足 ブートモード 0 およびブートモード 1(CS0 空間に接続したメモリからのブート ) 使用時は 端子設定を SPIBSC 機能に設定することはできません そのため 参考プログラムはブートモード 3( シリアルフラッシュブート ) で起動します シリアルフラッシュブートを使用する際のブート手順や プログラムをシリアルフラッシュメモリに書き込む方法については アプリケーションノート SPI マルチ I/O バスコントローラを使用したシリアルフラッシュメモリからのブート例 を参照してください R01AN0671JJ0101 Rev Page 22 of 53
23 3.2 サンプルプログラムリスト "main.c"(1) /****************************************************************************** * DISCLAIMER * * This software is supplied by Renesas Electronics Corporation and is only * intended for use with Renesas products. No other uses are authorized. * * This software is owned by Renesas Electronics Corporation and is protected under * all applicable laws, including copyright laws. * * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES * REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY * DISCLAIMED. * * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES * FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS * AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * Renesas reserves the right, without notice, to make changes to this * software and to discontinue the availability of this software. * By using this software, you agree to the additional terms and * conditions found by accessing the following link: * ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Sample Program * File Name : main.c * Abstract : Sample Program Main * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #include <stdio.h> #include <string.h> #include <machine.h> #include "serial_flash.h" #include "iodefine.h" R01AN0671JJ0101 Rev Page 23 of 53
24 3.3 サンプルプログラムリスト "main.c"(2) /* ==== prototype declaration ==== */ void main(void); void func_on_ram(void); /******************************************************************************* * ID : * Outline : main * Include : * Declaration : void main(void); * Description : * Argument : void * Return Value: void * Note : None ******************************************************************************/ void main(void) { func_on_ram(); puts(" nsh7269 SPIBSC Sample Program. Ver "); puts("copyright (C) 2011 Renesas Electronics Corporation. All rights reserved."); puts(" n"); while(1){ /* loop */ #pragma section SPIBSC /******************************************************************************* * ID : * Outline : SPI operating mode * Include : * Declaration : void exe_spibsc_spi(void) ; * Description : * Argument : void * Return Value: void * Note : None ******************************************************************************/ void func_on_ram(void) { volatile short dummy; int w_size = SF_PAGE_SIZE; int w_sctno = (SF_NUM_OF_SECTOR - 1); int w_addr, bsz, i; static char r_data[ SF_PAGE_SIZE ]; static char w_data[ SF_PAGE_SIZE ]; R01AN0671JJ0101 Rev Page 24 of 53
25 3.4 サンプルプログラムリスト "main.c"(3) /* ==== Use SPI operating mode ==== */ /* Initialize data */ for(i=0; i<w_size; i++){ r_data[i] = 'R'; w_data[i] = 'W'; bsz = 1; w_addr = (w_sctno * SF_SECTOR_SIZE * bsz); /* Negate SPBSSL */ SPIBSC.DRCR.BIT.SSLE = 0; /* No keep SSL */ SPIBSC.DRCR.BIT.RCF = 1; /* Chach flush */ dummy = *(short *)0x ; /* Dummy read */ /* Initializes the SPIBSC */ sf_init_serial_flash_spibsc(); /* Disables the software protection in serial flash memory */ sf_protect_ctrl_spibsc(sf_req_unprotect); /* Erase */ sf_sector_erase_spibsc(w_sctno); /* Write */ sf_byte_program_spibsc(w_addr, w_data, w_size ); /* Read */ sf_byte_read_spibsc(w_addr,r_data, w_size); /* Verifies data */ for(i=0; i<w_size; i++){ if( r_data[i]!= w_data[i] ){ while(1){ /* error */ /* Enables the software protection in serial flash memory */ sf_protect_ctrl_spibsc(sf_req_protect); /* ==== Enable external address space read mode ==== */ sf_allocate_exspace_spibsc(); /* End of File */ R01AN0671JJ0101 Rev Page 25 of 53
26 3.5 サンプルプログラムリスト "qserial_flash_spibsc.c"(1) /****************************************************************************** * DISCLAIMER * * This software is supplied by Renesas Electronics Corporation and is only * intended for use with Renesas products. No other uses are authorized. * * This software is owned by Renesas Electronics Corporation and is protected under * all applicable laws, including copyright laws. * * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES * REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY * DISCLAIMED. * * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES * FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS * AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * Renesas reserves the right, without notice, to make changes to this * software and to discontinue the availability of this software. * By using this software, you agree to the additional terms and * conditions found by accessing the following link: * ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Firm Update Sample Program * File Name : qserial_flash_spibsc.c * Abstract : * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #include "io_spibsc.h" #include "serial_flash.h" #include "qserial_flash_spibsc.h" R01AN0671JJ0101 Rev Page 26 of 53
27 3.6 サンプルプログラムリスト "qserial_flash_spibsc.c"(2) #pragma section SPIBSC /* ---- serial flash command[s25fl032p(spansion)] ---- */ #define SFLASHCMD_CHIP_ERASE 0xc7 #define SFLASHCMD_SECTOR_ERASE 0xd8 #define SFLASHCMD_BYTE_PROGRAM 0x02 #define SFLASHCMD_BYTE_READ 0x0B /* fast read */ #define SFLASHCMD_DUAL_READ 0x3B #define SFLASHCMD_QUAD_READ 0x6B #define SFLASHCMD_DUAL_IO_READ 0xBB #define SFLASHCMD_QUAD_IO_READ 0xEB #define SFLASHCMD_WRITE_ENABLE 0x06 #define SFLASHCMD_READ_STATUS 0x05 #define SFLASHCMD_READ_CONFIG 0x35 #define SFLASHCMD_WRITE_STATUS 0x01 #define SFLASHCMD_QUAD_PROGRAM 0x32 /* ---- serial flash register definitions ---- */ #define CFREG_QUAD_BIT 0x02 /* Quad mode bit(configuration Register) */ #define CFREG_FREEZE_BIT 0x01 /* freeze bit(configuration Register) */ #define STREG_BPROTECT_BIT 0x1c /* protect bit(status Register) */ /* ==== Prototype Declaration ==== */ static void read_status(unsigned char* status1,unsigned char* status2); static void read_config(unsigned char* config1,unsigned char* config2); static void busy_wait(void); static void write_status(unsigned char status, unsigned char config); static void sf_set_mode(enum sf_req req); static void write_enable(void); #if (SPI_QUAD!= 0) static void sf_byte_read_spibsc_quad(unsigned long addr, unsigned char *buf, int unit); #endif /* ==== Global variable ==== */ ST_SPIBSC_SM SpibscSm; ( 省略 ) R01AN0671JJ0101 Rev Page 27 of 53
28 3.7 サンプルプログラムリスト "qserial_flash_spibsc.c"(3) /******************************************************************************* * ID : * Outline : External address space read mode * Include : * Declaration : void sf_allocate_exspace_spibsc(void); * Description : Set to the external address space read mode * Argument : void * Return Value : void * Note : None ******************************************************************************/ void sf_allocate_exspace_spibsc (void) { #if (SFLASH_DUAL == 0) sf_bsz_set_spibsc(1); /* s-flash x 1 */ #else sf_bsz_set_spibsc(2); /* s-flash x 2 */ #endif #if (SPI_QUAD == 0) io_spibsc_dr_init(sflashcmd_byte_read); /* Single-SPI */ #else io_spibsc_dr_init(sflashcmd_quad_io_read); /* Quad-SPI */ #endif /******************************************************************************* * ID : * Outline : Initialize the serial flash memory * Include : * Declaration : void sf_init_serial_flash_spibsc(void); * Description : Initialize to access to the serial flash memory * : Initialize the SPI multi bus I/O bus controller(spibsc) * : to set the serial flash memory to Quad mode * Argument : void * Return Value : void * Note : None ******************************************************************************/ void sf_init_serial_flash_spibsc(void) { /* ==== SPIBSC の初期化 ==== */ #if (SFLASH_DUAL == 0) io_spibsc_common_init(spibsc_cmncr_bsz_single); /* s-flash x 1 */ #else io_spibsc_common_init(spibsc_cmncr_bsz_dual); /* s-flash x 2 */ #endif #if (SPI_QUAD == 0) sf_set_mode( SF_REQ_SERIALMODE ); #else /* ==== setting serial-flash quad mode ==== */ sf_set_mode( SF_REQ_QUADMODE ); #endif R01AN0671JJ0101 Rev Page 28 of 53
29 3.8 サンプルプログラムリスト "qserial_flash_spibsc.c"(4) /******************************************************************************* * ID : * Outline : Protection * Include : * Declaration : void sf_protect_ctrl_spibsc(enum sf_req req); * Description : Serial flash memory protect setting/clearing the setting * : Specify the setting by the argument, reg. The initial value of * : protection/clearance differ to the specification of the serial * : flash memory. * Argument : enum sf_req req ; I : SF_REQ_UNPROTECT -> clear all sector protection * : SF_REQ_PROTECT -> protect all sectors * Return Value : void * Note : None ******************************************************************************/void sf_protect_ctrl_spibsc(enum sf_req req) { unsigned char st_reg1, st_reg2; unsigned char cf_reg1, cf_reg2; read_status(&st_reg1,&st_reg2); read_config(&cf_reg1,&cf_reg2); /* ==== Set value of Serial Flash(0) ==== */ /* ---- clear freeze bit in configuration register ---- */ write_status( st_reg1, (unsigned char)(cf_reg1 & (~CFREG_FREEZE_BIT)) ); if( req == SF_REQ_UNPROTECT ){ st_reg1 &= ~STREG_BPROTECT_BIT; /* un-protect in all area */ else{ st_reg1 = STREG_BPROTECT_BIT; /* protect in all area */ /* ---- clear or set protect bit in status register ---- */ /* ---- with freeze bit in configuration register ---- */ write_status( st_reg1, (unsigned char)(cf_reg1 CFREG_FREEZE_BIT) ); ( 省略 ) R01AN0671JJ0101 Rev Page 29 of 53
30 3.9 サンプルプログラムリスト "qserial_flash_spibsc.c"(5) /******************************************************************************* * ID : * Outline : Sector erase * Include : * Declaration : void sf_sector_erase_spibsc(int sector_no); * Description : Erase the specified sector in the serial flash memory * : A write enable command should be issued before erasing or programming. * : After erasing or programming, check the serial flash memory status * : with the busy state is cleared. * Argument : int sector_no ; I : sector number * Return Value : void * Note : None ******************************************************************************/ void sf_sector_erase_spibsc(int sector_no) { unsigned long addr = sector_no * SF_SECTOR_SIZE; #if (SFLASH_DUAL == 1) int bsz; /* set BE in both of serial-flash */ bsz = sf_bsz_get_spibsc(); sf_bsz_set_spibsc(2); /* s-flash x 2 */ #endif /* sector erase in Single-SPI */ write_enable(); /* WREN Command */ SpibscSm.cdb = SPIBSC_1BIT; /* Commmand bit-width = Single */ SpibscSm.adb = SPIBSC_1BIT; /* Address bit-width = Single */ SpibscSm.cde = SPIBSC_OUTPUT_ENABLE; /* Command Enable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_ADDR_24; /* Enable(Adr[23:0]) */ SpibscSm.opde = SPIBSC_OUTPUT_DISABLE; /* Option-Data Disable */ SpibscSm.spide = SPIBSC_OUTPUT_DISABLE; /* Disable */ SpibscSm.sslkp = SPIBSC_SPISSL_NEGATE; /* Negate after transfer */ SpibscSm.spire = SPIBSC_SPIDATA_DISABLE; /* Data Access (Read Disable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_DISABLE; /* Data Access (Write Disable) */ SpibscSm.cmd = SFLASHCMD_SECTOR_ERASE; /* SE:Sector Erase */ SpibscSm.addr = addr; /* dont care in dual mode */ /* because address is calcurated with sector_no */ R01AN0671JJ0101 Rev Page 30 of 53
31 3.10 サンプルプログラムリスト "qserial_flash_spibsc.c"(6) io_spibsc_transfer(&spibscsm); busy_wait(); #if (SFLASH_DUAL == 1) sf_bsz_set_spibsc(bsz); #endif /******************************************************************************* * ID : * Outline : Data program * Include : * Declaration : void sf_byte_program_spibsc(unsigned long addr, unsigned char *buf, int size); * Description : Program the assigned program in the serial flash memory * : Erase the specified sector in the serial flash memory * : A write enable command should be issued before erasing or programming. * : After erasing or programming, check the serial flash memory status * : with the busy state is cleared. * : The maximum write data size is limited by the device. * Argument : unsigned long addr ; I : address in the serial flash memory to write to * : unsigned char *buf ; I : address of the buffer to store write data * : int size ; I : number of byte to write * Return Value : void * Note : None ******************************************************************************/ void sf_byte_program_spibsc(unsigned long addr, unsigned char *buf, int size) { int unit; write_enable(); /* WREN Command */ /* ---- Command,Address ---- */ SpibscSm.cdb = SPIBSC_1BIT; /* Commmand bit-width = Single */ SpibscSm.adb = SPIBSC_1BIT; /* Address bit-width = Single */ SpibscSm.cde = SPIBSC_OUTPUT_ENABLE; /* Command Enable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_ADDR_24; /* Enable Adr[23:0] */ SpibscSm.opde = SPIBSC_OUTPUT_DISABLE; /* Option-Data Disable */ SpibscSm.spide = SPIBSC_OUTPUT_DISABLE; /* Disable */ SpibscSm.sslkp = SPIBSC_SPISSL_KEEP; /* Keep after transfer */ SpibscSm.spire = SPIBSC_SPIDATA_DISABLE; /* Data Access (Read Disable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_DISABLE; /* Data Access (Write Disable) */ #if (SPI_QUAD == 0) SpibscSm.cmd = SFLASHCMD_BYTE_PROGRAM; /* PP: Page Program */ #else SpibscSm.cmd = SFLASHCMD_QUAD_PROGRAM; /* QPP: Quad Page Program */ #endif R01AN0671JJ0101 Rev Page 31 of 53
32 3.11 サンプルプログラムリスト "qserial_flash_spibsc.c"(7) if(io_spibsc_bsz_get() == SPIBSC_CMNCR_BSZ_DUAL){ SpibscSm.addr = (unsigned long)(addr >> 1); else{ SpibscSm.addr = addr; io_spibsc_transfer(&spibscsm); /* Command,Address */ /* ---- Data ---- */ #if (SPI_QUAD == 0) SpibscSm.spidb = SPIBSC_1BIT; /* Single */ #else SpibscSm.spidb = SPIBSC_4BIT; /* Quad */ #endif SpibscSm.cde = SPIBSC_OUTPUT_DISABLE; /* Command Disable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_DISABLE; /* Disable Adr */ SpibscSm.opde = SPIBSC_OUTPUT_DISABLE; /* Option-Data Disable */ SpibscSm.spire = SPIBSC_SPIDATA_DISABLE; /* Data Access (Read Disable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_ENABLE; /* Data Access (Write Ensable) */ if(io_spibsc_bsz_get() == SPIBSC_CMNCR_BSZ_DUAL){ if((size % 8) == 0){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_32; /* Enable(64bit) */ unit = 8; else if((size % 4) == 0){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_16; /* Enable(32bit) */ unit = 4; else if((size % 2) == 0){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_8; /* Enable(16bit) */ unit = 2; else{ return; R01AN0671JJ0101 Rev Page 32 of 53
33 3.12 サンプルプログラムリスト "qserial_flash_spibsc.c"(8) else{ if((size % 4) == 0){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_32; /* Enable(32bit) */ unit = 4; else if((size % 2) == 0){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_16; /* Enable(16bit) */ unit = 2; else{ SpibscSm.spide = SPIBSC_OUTPUT_SPID_8; /* Enable(8bit) */ unit = 1; while(size > 0){ SpibscSm.smwdr[0] = (unsigned long)(((unsigned long)*buf++ << 24) & 0xff000000ul); /* Data[63:56] or Data[31:24] */ if(unit >= 2){ SpibscSm.smwdr[0] = (unsigned long)(((unsigned long)*buf++ << 16) & 0x00ff0000ul); /* Data[55:48] or Data[23:16] */ if(unit >= 4){ SpibscSm.smwdr[0] = (unsigned long)( (((unsigned long)*buf++ << 8 ) & 0x0000ff00ul) (((unsigned long)*buf++ ) & 0x000000fful)); /* Data[47:40] or Data[15:0] */ if(unit >= 8){ SpibscSm.smwdr[1] = (unsigned long)( (((unsigned long)*buf++ << 24) & 0xff000000ul) (((unsigned long)*buf++ << 16) & 0x00ff0000ul) (((unsigned long)*buf++ << 8 ) & 0x0000ff00ul) (((unsigned long)*buf++ ) & 0x000000fful)); /*Data[31: 0] or nothing */ size -= unit; if(size <= 0){ SpibscSm.sslkp = SPIBSC_SPISSL_NEGATE; io_spibsc_transfer(&spibscsm); /* Data */ busy_wait(); R01AN0671JJ0101 Rev Page 33 of 53
34 3.13 サンプルプログラムリスト "qserial_flash_spibsc.c"(9) /******************************************************************************* * ID : * Outline : Data read * Include : * Declaration : void sf_byte_read_spibsc(unsigned long addr, unsigned char *buf, int size); * Description : Read the serial memory by the specified number of byte * Argument : unsigned long addr ; I : address of the serial flash memory to read * : unsigned char *buf ; I : address of the buffer to store the read data * : int size ; I : number of byte to read * Return Value : void * Note : None ******************************************************************************/ #if (SPI_QUAD == 0) ( 省略 ) #else void sf_byte_read_spibsc(unsigned long addr, unsigned char *buf, int size) { int unit; if(io_spibsc_bsz_get() == SPIBSC_CMNCR_BSZ_DUAL){ if((size % 8) == 0){ unit = 8; else if((size % 4) == 0){ unit = 4; else if((size % 2) == 0){ unit = 2; else{ return; else{ if((size % 4) == 0){ unit = 4; else if((size % 2) == 0){ unit = 2; else{ unit = 1; R01AN0671JJ0101 Rev Page 34 of 53
35 3.14 サンプルプログラムリスト "qserial_flash_spibsc.c"(10) while(size > 0){ sf_byte_read_spibsc_quad(addr, buf, unit); /* increment address and buf */ addr += unit; buf += unit; size -= unit; static void sf_byte_read_spibsc_quad(unsigned long addr, unsigned char *buf, int unit) { /* ---- Command,Address,Dummy ---- */ SpibscSm.cdb = SPIBSC_1BIT; /* Commmand bit-width = Single */ SpibscSm.adb = SPIBSC_1BIT; /* Address bit-width = Single */ SpibscSm.cde = SPIBSC_OUTPUT_ENABLE; /* Command Enable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_ADDR_24; /* Enable Adr[23:0] */ SpibscSm.opde = SPIBSC_OUTPUT_OPD_3; /* Option-Data OPD3 */ SpibscSm.spide = SPIBSC_OUTPUT_DISABLE; /* Disable */ SpibscSm.sslkp = SPIBSC_SPISSL_KEEP; /* Keep after transfer */ SpibscSm.spire = SPIBSC_SPIDATA_DISABLE; /* Data Access (Read Disable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_DISABLE; /* Data Access (Write Disable) */ SpibscSm.cmd = SFLASHCMD_QUAD_READ; /* QOR: Quad Output Read */ if(io_spibsc_bsz_get() == SPIBSC_CMNCR_BSZ_DUAL){ SpibscSm.addr = (unsigned long)(addr >> 1); else{ SpibscSm.addr = addr; io_spibsc_transfer(&spibscsm); /* Command,Address */ /* ---- Data ---- */ SpibscSm.spidb = SPIBSC_4BIT; /* Quad */ SpibscSm.cde = SPIBSC_OUTPUT_DISABLE; /* Command Disable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_DISABLE; /* Disable Adr */ SpibscSm.opde = SPIBSC_OUTPUT_DISABLE; /* Option-Data Disable */ SpibscSm.spire = SPIBSC_SPIDATA_ENABLE; /* Data Access (Read Enable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_DISABLE; /* Data Access (Write Disable) */ R01AN0671JJ0101 Rev Page 35 of 53
36 3.15 サンプルプログラムリスト "qserial_flash_spibsc.c"(11) if(io_spibsc_bsz_get() == SPIBSC_CMNCR_BSZ_DUAL){ if( unit == 8 ){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_32; /* Enable(64bit) */ else if( unit == 4 ){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_16; /* Enable(32bit) */ else if( unit == 2 ){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_8; /* Enable(16bit) */ else{ return; else{ if( unit == 4 ){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_32; /* Enable(32bit) */ else if( unit == 2 ){ SpibscSm.spide = SPIBSC_OUTPUT_SPID_16; /* Enable(16bit) */ else{ SpibscSm.spide = SPIBSC_OUTPUT_SPID_8; /* Enable(8bit) */ SpibscSm.sslkp = SPIBSC_SPISSL_NEGATE; io_spibsc_transfer(&spibscsm); /* Data 入力 */ *buf++ = (unsigned char)((spibscsm.smrdr[0] >> 24) & 0x000000fful); /* Data[63:56],Data[31:24] */ if(unit >= 2){ *buf++ = (unsigned char)((spibscsm.smrdr[0] >> 16) & 0x000000fful); /* Data[55:48],Data[23:16] */ if(unit >= 4){ *buf++ = (unsigned char)((spibscsm.smrdr[0] >> 8 ) & 0x000000fful); *buf++ = (unsigned char)((spibscsm.smrdr[0] ) & 0x000000fful); /* Data[47:40],Data[15:0] */ if(unit >= 8){ *buf++ = (unsigned char)((spibscsm.smrdr[1] >> 24) & 0x000000fful); *buf++ = (unsigned char)((spibscsm.smrdr[1] >> 16) & 0x000000fful); *buf++ = (unsigned char)((spibscsm.smrdr[1] >> 8 ) & 0x000000fful); *buf++ = (unsigned char)((spibscsm.smrdr[1] ) & 0x000000fful); /*Data[31:0] */ #endif R01AN0671JJ0101 Rev Page 36 of 53
37 3.16 サンプルプログラムリスト "qserial_flash_spibsc.c"(12) ( 省略 ) /******************************************************************************* * ID : * Outline : Enable writing * Include : * Declaration : static void write_enable(void); * Description : Issuing the write enable command to permit to erase/program * : in the serial flash memory * Argument : void * Return Value : void * Note : None ******************************************************************************/ static void write_enable(void) { SpibscSm.cdb = SPIBSC_1BIT; /* Single */ SpibscSm.cde = SPIBSC_OUTPUT_ENABLE; /* Command Enable */ SpibscSm.ocde = SPIBSC_OUTPUT_DISABLE; /* Optional-Command Disable */ SpibscSm.ade = SPIBSC_OUTPUT_DISABLE; /* Address Disable */ SpibscSm.opde = SPIBSC_OUTPUT_DISABLE; /* Option-Data Disable */ SpibscSm.spide = SPIBSC_OUTPUT_DISABLE; /* Disable */ SpibscSm.sslkp = SPIBSC_SPISSL_NEGATE; /* Negate after transfer */ SpibscSm.spire = SPIBSC_SPIDATA_DISABLE; /* Data Access (Read Disable) */ SpibscSm.spiwe = SPIBSC_SPIDATA_DISABLE; /* Data Access (Write Disable) */ SpibscSm.cmd = SFLASHCMD_WRITE_ENABLE; /* WREN:Write Enable */ io_spibsc_transfer(&spibscsm); ( 以下 省略 ) R01AN0671JJ0101 Rev Page 37 of 53
38 3.17 サンプルプログラムリスト "qserial_flash_spibsc.h"(1) 1 2 /******************************************************************************* * DISCLAIMER ( 省略 ) ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Firm Update Sample Program * File Name : qserial_flash_spibsc.h * Abstract : * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #ifndef _QSERIAL_FLASH_SPIBSC_H_ #define _QSERIAL_FLASH_SPIBSC_H_ /* ==== Function prototype declaration ==== */ int sf_bsz_get_spibsc(void); void sf_bsz_set_spibsc(int bsz); void sf_allocate_exspace_spibsc (void); void sf_init_serial_flash_spibsc(void); void sf_protect_ctrl_spibsc(enum sf_req req); void sf_chip_erase_spibsc(void); void sf_sector_erase_spibsc(int sector_no); void sf_byte_program_spibsc(unsigned long addr, unsigned char *buf, int size); void sf_byte_read_spibsc(unsigned long addr, unsigned char *buf, int size); #endif /* _QSERIAL_FLASH_SPIBSC_H_ */ /* End of File */ R01AN0671JJ0101 Rev Page 38 of 53
39 3.18 サンプルプログラムリスト "io_spibsc.c"(1) /****************************************************************************** * DISCLAIMER * * This software is supplied by Renesas Electronics Corporation and is only * intended for use with Renesas products. No other uses are authorized. * * This software is owned by Renesas Electronics Corporation and is protected under * all applicable laws, including copyright laws. * * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES * REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY * DISCLAIMED. * * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES * FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS * AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * Renesas reserves the right, without notice, to make changes to this * software and to discontinue the availability of this software. * By using this software, you agree to the additional terms and * conditions found by accessing the following link: * ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Firm Update Sample Program * File Name : io_spibsc.c * Abstract : loader program for spibsc * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #include "iodefine.h" #include "io_spibsc.h" #include "machine.h" R01AN0671JJ0101 Rev Page 39 of 53
40 3.19 サンプルプログラムリスト "io_spibsc.c"(2) #pragma section SPIBSC /* ==== define values ==== */ /* ==== Prototype Declaration ==== */ /* ==== Global variable ==== */ /******************************************************************************* * ID : * Outline : * Include : io_spibsc.h * Declaration : int io_spibsc_bsz_set(unsigned long bsz); * Description : * Argument : unsigned long bsz : BSZ bit * Return Value : * Note : None ******************************************************************************/ int io_spibsc_bsz_set(unsigned long bsz) { if(spibsc.cmnsr.bit.sslf!= SPIBSC_SSL_NEGATE){ return -1; if(spibsc.cmncr.bit.bsz!= bsz){ if(bsz == SPIBSC_CMNCR_BSZ_DUAL){ /* s-flash x 2 (4bit x 2) */ PORT.PBCR3.BIT.PB14MD = 6; /* PB14:SPBIO3_1 */ PORT.PBCR3.BIT.PB13MD = 6; /* PB13:SPBIO2_1 */ PORT.PFCR0.BIT.PF3MD = 6; /* PF3:SPBMI_1/SPBIO1_1 */ PORT.PFCR0.BIT.PF2MD = 6; /* PF2:SPBMO_1/SPBIO0_1 */ SPIBSC.CMNCR.BIT.BSZ = bsz; SPIBSC.DRCR.BIT.RCF = SPIBSC_DRCR_RCF_EXE; /* flush read-cache */ return 0; R01AN0671JJ0101 Rev Page 40 of 53
41 3.20 サンプルプログラムリスト "io_spibsc.c"(3) /******************************************************************************* * ID : * Outline : * Include : io_spibsc.h * Declaration : unsigned long io_spibsc_bsz_get(void); * Description : * Argument : void * Return Value : BSZ bit * Note : None ******************************************************************************/ unsigned long io_spibsc_bsz_get(void) { return (unsigned long)spibsc.cmncr.bit.bsz; /******************************************************************************* * ID : * Outline : * Include : io_spibsc.h * Declaration : int io_spibsc_common_init(unsigned long bsz); * Description : * Argument : unsigned long bsz : BSZ bit * Return Value : * Note : None ******************************************************************************/ int io_spibsc_common_init(unsigned long bsz) { CPG.STBCR7.BIT.MSTP75 = 0; PORT.PBCR5.BIT.PB20MD = 6; /* PB20:SPBMI_0/SPBIO1_0 */ PORT.PBCR4.BIT.PB19MD = 6; /* PB19:SPBMO_0/SPBIO0_0 */ PORT.PBCR4.BIT.PB18MD = 6; /* PB18:SPBSSL */ PORT.PBCR4.BIT.PB17MD = 6; /* PB17:SPBCLK */ PORT.PBCR4.BIT.PB16MD = 6; /* PB16:SPBIO3_0 */ PORT.PBCR3.BIT.PB15MD = 6; /* PB15:SPBIO2_0 */ if(bsz == SPIBSC_CMNCR_BSZ_DUAL){ /* s-flash x 2 (4bit x 2) */ PORT.PBCR3.BIT.PB14MD = 6; /* PB14:SPBIO3_1 */ PORT.PBCR3.BIT.PB13MD = 6; /* PB13:SPBIO2_1 */ PORT.PFCR0.BIT.PF3MD = 6; /* PF3:SPBMI_1/SPBIO1_1 */ PORT.PFCR0.BIT.PF2MD = 6; /* PF2:SPBMO_1/SPBIO0_1 */ if(spibsc.cmnsr.bit.sslf!= SPIBSC_SSL_NEGATE){ return -1; R01AN0671JJ0101 Rev Page 41 of 53
42 3.21 サンプルプログラムリスト "io_spibsc.c"(4) SPIBSC.CMNCR.BIT.MOIIO3 = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.MOIIO2 = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.MOIIO1 = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.MOIIO0 = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.IO3FV = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.IO2FV = SPIBSC_OUTPUT_HiZ; SPIBSC.CMNCR.BIT.IO0FV = SPIBSC_OUTPUT_HiZ; /* S-flash mode 0 */ SPIBSC.CMNCR.BIT.CPHAT = SPIBSC_CMNCR_CPHAT_EVEN; /* even edge : write */ SPIBSC.CMNCR.BIT.CPHAR = SPIBSC_CMNCR_CPHAR_EVEN; /* even edge : read */ SPIBSC.CMNCR.BIT.SSLP = SPIBSC_CMNCR_SSLP_LOW; /* SPBSSL:low active */ SPIBSC.CMNCR.BIT.CPOL = SPIBSC_CMNCR_CPOL_LOW; /* SPBCLK:low at negate */ io_spibsc_bsz_set(bsz); SPIBSC.SSLDR.BIT.SPNDL = SPIBSC_DELAY_1SPBCLK; /* next access delay */ SPIBSC.SSLDR.BIT.SLNDL = SPIBSC_DELAY_1SPBCLK; /* SPBSSL negate delay */ SPIBSC.SSLDR.BIT.SCKDL = SPIBSC_DELAY_1SPBCLK; /* clock delay */ /* ---- Bit rate 66.67Mbps ---- */ SPIBSC.SPBCR.BIT.SPBR = 1; /* divide 2 base bit rate B clock(133.33mhz) */ SPIBSC.SPBCR.BIT.BRDV = 0; return 0; R01AN0671JJ0101 Rev Page 42 of 53
43 3.22 サンプルプログラムリスト "io_spibsc.c"(5) /******************************************************************************* * ID : * Outline : * Include : io_spibsc.h * Declaration : int io_spibsc_dr_init(unsigned long cmd); * Description : * Argument : void * Return Value : * Note : None ******************************************************************************/ int io_spibsc_dr_init(unsigned long cmd) { if(spibsc.cmnsr.bit.sslf!= SPIBSC_SSL_NEGATE){ return -1; SPIBSC.CMNCR.BIT.MD = SPIBSC_CMNCR_MD_EXTRD; /* SPI I/O mode */ SPIBSC.DRCR.BIT.RBURST = SPIBSC_BURST_2; SPIBSC.DRCR.BIT.RBE = SPIBSC_BURST_ENABLE; SPIBSC.DRCR.BIT.SSLE = SPIBSC_SPISSL_KEEP; /* Keep SSL after read */ /* if not continuous address it negeted */ if(spibsc.cmnsr.bit.tend!= SPIBSC_TRANS_END){ return -1; /* ---- Command ---- */ SPIBSC.DRCMR.BIT.CMD = cmd; /* Command */ SPIBSC.DRENR.BIT.CDB = SPIBSC_1BIT; /* Single */ SPIBSC.DRENR.BIT.CDE = SPIBSC_OUTPUT_ENABLE; /* Enable */ /* ---- Option Command ---- */ SPIBSC.DRCMR.BIT.OCMD = 0x00; SPIBSC.DRENR.BIT.OCDB = SPIBSC_1BIT; /* Single */ SPIBSC.DRENR.BIT.OCDE = SPIBSC_OUTPUT_DISABLE; /* Disable */ /* ---- Address ---- */ if(cmd == 0xBB){ /* Dual I/O High Performance */ SPIBSC.DRENR.BIT.ADB = SPIBSC_2BIT; /* Dual */ SPIBSC.DRENR.BIT.ADE = SPIBSC_OUTPUT_ADDR_24; /* S-flash x 1 Enable(ADDR[23:0]) */ /* S-flash x 2 Enable(ADDR[24:1]) */ R01AN0671JJ0101 Rev Page 43 of 53
44 3.23 サンプルプログラムリスト "io_spibsc.c"(6) else if(cmd == 0xEB){ /* Quad I/O High Performance */ SPIBSC.DRENR.BIT.ADB = SPIBSC_4BIT; /* Quad */ SPIBSC.DRENR.BIT.ADE = SPIBSC_OUTPUT_ADDR_24; /* S-flash x 1 Enable(ADDR[23:0]) */ /* S-flash x 2 Enable(ADDR[24:1]) */ else{ SPIBSC.DRENR.BIT.ADB = SPIBSC_1BIT; /* Single */ SPIBSC.DRENR.BIT.ADE = SPIBSC_OUTPUT_ADDR_24; /* S-flash x 1 Enable(ADDR[23:0]) */ /* S-flash x 2 Enable(ADDR[24:1]) */ /* ---- Option Data ---- */ if(cmd == 0xBB){ /* Dual I/O High Performance */ SPIBSC.DROPR.BIT.OPD3 = 0x00; /* Option Data(Mode bit) */ SPIBSC.DROPR.BIT.OPD2 = 0x00; /* Option Data */ SPIBSC.DROPR.BIT.OPD1 = 0x00; /* Option Data */ SPIBSC.DROPR.BIT.OPD0 = 0x00; /* Option Data */ SPIBSC.DRENR.BIT.OPDB = SPIBSC_2BIT; /* Dual */ SPIBSC.DRENR.BIT.OPDE = SPIBSC_OUTPUT_OPD_3; /* Enable(OPD3) */ else if(cmd == 0xEB){ /* Quad I/O High Performance */ SPIBSC.DROPR.BIT.OPD3 = 0x00; /* Option Data(Mode bit) */ SPIBSC.DROPR.BIT.OPD2 = 0x00; /* Option Data(Dummy) */ SPIBSC.DROPR.BIT.OPD1 = 0x00; /* Option Data(Dummy) */ SPIBSC.DROPR.BIT.OPD0 = 0x00; /* Option Data */ SPIBSC.DRENR.BIT.OPDB = SPIBSC_4BIT; /* Quad */ SPIBSC.DRENR.BIT.OPDE = SPIBSC_OUTPUT_OPD_321; /* Enable(OPD3,OPD2,OPD1) */ else{ SPIBSC.DROPR.BIT.OPD3 = 0x00; /* Option Data(Dummy) */ SPIBSC.DROPR.BIT.OPD2 = 0x00; /* Option Data */ SPIBSC.DROPR.BIT.OPD1 = 0x00; /* Option Data */ SPIBSC.DROPR.BIT.OPD0 = 0x00; /* Option Data */ SPIBSC.DRENR.BIT.OPDB = SPIBSC_1BIT; /* Single */ SPIBSC.DRENR.BIT.OPDE = SPIBSC_OUTPUT_OPD_3; /* Enable(OPD3) */ R01AN0671JJ0101 Rev Page 44 of 53
45 3.24 サンプルプログラムリスト "io_spibsc.c"(7) /* ---- Data ---- */ if(cmd == 0x6B){ SPIBSC.DRENR.BIT.DRDB = SPIBSC_4BIT; /* Quad */ else if(cmd == 0x3B){ SPIBSC.DRENR.BIT.DRDB = SPIBSC_2BIT; /* Dual */ else if(cmd == 0x0B){ SPIBSC.DRENR.BIT.DRDB = SPIBSC_1BIT; /* Single */ else if(cmd == 0xBB){ SPIBSC.DRENR.BIT.DRDB = SPIBSC_2BIT; /* Dual I/O High Performance */ else if(cmd == 0xEB){ SPIBSC.DRENR.BIT.DRDB = SPIBSC_4BIT; /* Quad I/O High Performance */ else{ return -1; return 0; /******************************************************************************* * ID : * Outline : * Include : io_spibsc.h * Declaration : int io_spibsc_transfer(st_spibsc_sm *SpibscSm); * Description : * Argument : void * Return Value : * Note : None ******************************************************************************/ int io_spibsc_transfer(st_spibsc_sm *SpibscSm) { int i; volatile unsigned long dummy; if(spibsc.cmncr.bit.md!= SPIBSC_CMNCR_MD_SPI){ if(spibsc.cmnsr.bit.sslf!= SPIBSC_SSL_NEGATE){ return -1; SPIBSC.CMNCR.BIT.MD = SPIBSC_CMNCR_MD_SPI; /* SPI Mode */ if(spibsc.cmnsr.bit.tend!= SPIBSC_TRANS_END){ return -1; R01AN0671JJ0101 Rev Page 45 of 53
46 3.25 サンプルプログラムリスト "io_spibsc.c"(8) /* ---- Command ---- */ SPIBSC.SMENR.BIT.CDE = SpibscSm->cde; /* Enable/Disable */ if(spibscsm->cde!= SPIBSC_OUTPUT_DISABLE){ SPIBSC.SMCMR.BIT.CMD = SpibscSm->cmd; /* Command */ SPIBSC.SMENR.BIT.CDB = SpibscSm->cdb; /* Single/Dual/Quad */ /* ---- Option Command ---- */ SPIBSC.SMENR.BIT.OCDE = SpibscSm->ocde; /* Enable/Disable */ if(spibscsm->ocde!= SPIBSC_OUTPUT_DISABLE){ SPIBSC.SMCMR.BIT.OCMD = SpibscSm->ocmd; /* Option Command */ SPIBSC.SMENR.BIT.OCDB = SpibscSm->ocdb; /* Single/Dual/Quad */ /* ---- Address ---- */ SPIBSC.SMENR.BIT.ADE = SpibscSm->ade; /* Enable/Disable */ if(spibscsm->ade!= SPIBSC_OUTPUT_DISABLE){ SPIBSC.SMADR.BIT.ADR = SpibscSm->addr; /* Address */ SPIBSC.SMENR.BIT.ADB = SpibscSm->adb; /* Single/Dual/Quad */ /* ---- Option Data ---- */ SPIBSC.SMENR.BIT.OPDE = SpibscSm->opde; /* Enable/Disable */ if(spibscsm->opde!= SPIBSC_OUTPUT_DISABLE){ SPIBSC.SMOPR.BIT.OPD3 = SpibscSm->opd[0]; /* Option Data */ SPIBSC.SMOPR.BIT.OPD2 = SpibscSm->opd[1]; /* Option Data */ SPIBSC.SMOPR.BIT.OPD1 = SpibscSm->opd[2]; /* Option Data */ SPIBSC.SMOPR.BIT.OPD0 = SpibscSm->opd[3]; /* Option Data */ SPIBSC.SMENR.BIT.OPDB = SpibscSm->opdb; /* Single/Dual/Quad */ /* ---- Data ---- */ SPIBSC.SMENR.BIT.SPIDE = SpibscSm->spide; /* Enable/Disable */ if(spibscsm->spide!= SPIBSC_OUTPUT_DISABLE){ SPIBSC.SMWDR0.LONG = SpibscSm->smwdr[0]; SPIBSC.SMWDR1.LONG = SpibscSm->smwdr[1]; /* シリフラ 2 個接続時のみ有効 */ SPIBSC.SMENR.BIT.SPIDB = SpibscSm->spidb; /* Single/Dual/Quad */ SPIBSC.SMCR.BIT.SSLKP = SpibscSm->sslkp; if((spibscsm->spidb!= SPIBSC_1BIT) && (SpibscSm->spide!= SPIBSC_OUTPUT_DISABLE)){ if((spibscsm->spire == SPIBSC_SPIDATA_ENABLE) && (SpibscSm->spiwe == SPIBSC_SPIDATA_ENABLE)){ /* not set in same time */ return -1; R01AN0671JJ0101 Rev Page 46 of 53
47 3.26 サンプルプログラムリスト "io_spibsc.c"(9) SPIBSC.SMCR.BIT.SPIRE = SpibscSm->spire; SPIBSC.SMCR.BIT.SPIWE = SpibscSm->spiwe; SPIBSC.SMCR.BIT.SPIE = SPIBSC_SPI_ENABLE; /* execute after setting SPNDL bit */ /* wait for transfer-start */ dummy = SPIBSC.CMNSR.LONG; dummy = SPIBSC.CMNSR.LONG; dummy = SPIBSC.CMNSR.LONG; dummy = SPIBSC.CMNSR.LONG; while(spibsc.cmnsr.bit.tend!= SPIBSC_TRANS_END){ /* wait for transfer-end */ SpibscSm->smrdr[0] = SPIBSC.SMRDR0.LONG; SpibscSm->smrdr[1] = SPIBSC.SMRDR1.LONG; /* valid in two serial-flash */ return 0; /* End of File */ R01AN0671JJ0101 Rev Page 47 of 53
48 3.27 サンプルプログラムリスト "io_spibsc.h"(1) 1 2 /******************************************************************************* * DISCLAIMER ( 省略 ) ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Firm Update Sample Program * File Name : io_spibsc.h * Abstract : spibsc structure * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #ifndef _IO_SPIBSC_H_ #define _IO_SPIBSC_H_ /* ==== define values ==== */ #define SPIBSC_CMNCR_MD_EXTRD 0 #define SPIBSC_CMNCR_MD_SPI 1 #define SPIBSC_OUTPUT_LOW 0 #define SPIBSC_OUTPUT_HIGH 1 #define SPIBSC_OUTPUT_LAST 2 #define SPIBSC_OUTPUT_HiZ 3 #define SPIBSC_CMNCR_CPHAT_EVEN 0 #define SPIBSC_CMNCR_CPHAT_ODD #define SPIBSC_CMNCR_CPHAR_ODD 0 #define SPIBSC_CMNCR_CPHAR_EVEN 1 #define SPIBSC_CMNCR_SSLP_LOW 0 #define SPIBSC_CMNCR_SSLP_HIGH 1 #define SPIBSC_CMNCR_CPOL_LOW 0 #define SPIBSC_CMNCR_CPOL_HIGH 1 #define SPIBSC_CMNCR_BSZ_SINGLE 0 #define SPIBSC_CMNCR_BSZ_DUAL 1 R01AN0671JJ0101 Rev Page 48 of 53
49 3.28 サンプルプログラムリスト "io_spibsc.h"(2) #define SPIBSC_DELAY_1SPBCLK 0 #define SPIBSC_DELAY_2SPBCLK 1 #define SPIBSC_DELAY_3SPBCLK 2 #define SPIBSC_DELAY_4SPBCLK 3 #define SPIBSC_DELAY_5SPBCLK 4 #define SPIBSC_DELAY_6SPBCLK 5 #define SPIBSC_DELAY_7SPBCLK 6 #define SPIBSC_DELAY_8SPBCLK 7 #define SPIBSC_BURST_1 0x00 #define SPIBSC_BURST_2 0x01 #define SPIBSC_BURST_3 0x02 #define SPIBSC_BURST_4 0x03 #define SPIBSC_BURST_5 0x04 #define SPIBSC_BURST_6 0x05 #define SPIBSC_BURST_7 0x06 #define SPIBSC_BURST_8 0x07 #define SPIBSC_BURST_9 0x08 #define SPIBSC_BURST_10 0x09 #define SPIBSC_BURST_11 0x0a #define SPIBSC_BURST_12 0x0b #define SPIBSC_BURST_13 0x0c #define SPIBSC_BURST_14 0x0d #define SPIBSC_BURST_15 0x0e #define SPIBSC_BURST_16 0x0f #define SPIBSC_BURST_DISABLE 0 #define SPIBSC_BURST_ENABLE 1 #define SPIBSC_DRCR_RCF_EXE 1 #define SPIBSC_SSL_NEGATE 0 #define SPIBSC_TRANS_END 1 #define SPIBSC_1BIT 0 #define SPIBSC_2BIT 1 #define SPIBSC_4BIT 2 #define SPIBSC_OUTPUT_DISABLE 0 #define SPIBSC_OUTPUT_ENABLE 1 #define SPIBSC_OUTPUT_ADDR_24 0x07 #define SPIBSC_OUTPUT_ADDR_32 0x0f #define SPIBSC_OUTPUT_OPD_3 0x08 #define SPIBSC_OUTPUT_OPD_32 0x0c #define SPIBSC_OUTPUT_OPD_321 0x0e #define SPIBSC_OUTPUT_OPD_3210 0x0f R01AN0671JJ0101 Rev Page 49 of 53
50 3.29 サンプルプログラムリスト "io_spibsc.h"(3) #define SPIBSC_OUTPUT_SPID_8 0x08 #define SPIBSC_OUTPUT_SPID_16 0x0c #define SPIBSC_OUTPUT_SPID_32 0x0f #define SPIBSC_SPISSL_NEGATE 0 #define SPIBSC_SPISSL_KEEP 1 #define SPIBSC_SPIDATA_DISABLE 0 #define SPIBSC_SPIDATA_ENABLE 1 #define SPIBSC_SPI_DISABLE 0 #define SPIBSC_SPI_ENABLE 1 typedef struct{ unsigned long cdb:2; unsigned long ocdb:2; unsigned long adb:2; unsigned long opdb:2; unsigned long spidb:2; unsigned long cde:1; unsigned long ocde:1; unsigned long ade:4; unsigned long opde:4; unsigned long spide:4; unsigned long sslkp:1; unsigned long spire:1; unsigned long spiwe:1; unsigned long :5; unsigned char cmd; unsigned char ocmd; unsigned long addr; unsigned char opd[4]; unsigned long smrdr[2]; unsigned long smwdr[2]; ST_SPIBSC_SM; int io_spibsc_bsz_set(unsigned long bsz); unsigned long io_spibsc_bsz_get(void); int io_spibsc_common_init(unsigned long bsz); int io_spibsc_dr_init(unsigned long cmd); int io_spibsc_transfer(st_spibsc_sm *SpibscSm); #endif /* IO_SPIBSC_H */ /* End of File */ R01AN0671JJ0101 Rev Page 50 of 53
51 3.30 サンプルプログラムリスト "serial_flash.h"(1) 1 2 /******************************************************************************* * DISCLAIMER ( 省略 ) ******************************************************************************** * Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. **************************** Technical reference data ************************** * System Name : SH7268/SH7269 Firm Update Sample Program * File Name : serial_flash.h * Abstract : Renesas Serial Peripheral Interface * : read/write serial flash memory in high-speed * Version : * Device : SH7268/SH7269 * Tool-Chain : High-performance Embedded Workshop (Ver ). * : C/C++ compiler package for the SuperH RISC engine family * : (Ver.9.03 Release02). * OS : None * H/W Platform: R0K57269(CPU board) * Description : ******************************************************************************** * History : Jul.06,2011 Ver *******************************************************************************/ #ifndef _SERIAL_FLASH_H_ #define _SERIAL_FLASH_H_ /* ==== Macro definition ==== */ /* S25FL032P(Spansion) */ #define SF_PAGE_SIZE 256 /* Page size of serial flash memory */ #define SF_SECTOR_SIZE (64*1024) /* Sector size = 64 KB */ #define SF_NUM_OF_SECTOR 64 /* Number of sectors: 64 */ enum sf_req{ SF_REQ_PROTECT = 0, /* request protect */ SF_REQ_UNPROTECT, /* release protect */ SF_REQ_SERIALMODE, /* request Serial/Dual mode */ SF_REQ_QUADMODE, /* request Quad mode */ ; /* ==== Function prototype declaration ==== */ void sf_init_serial_flash(void); void sf_protect_ctrl(enum sf_req req); void sf_set_mode(enum sf_req req); void sf_chip_erase(void); void sf_sector_erase(int sector_no); void sf_byte_program(unsigned long addr, unsigned char *buf, int size); void sf_byte_read(unsigned long addr, unsigned char *buf, int size); void sf_byte_read_long(unsigned long addr, unsigned long *buf, int size); /* ==== Variant definition ==== */ #endif /* _SERIAL_FLASH_H_ */ /* End of File */ R01AN0671JJ0101 Rev Page 51 of 53
52 4. 参考ドキュメント ソフトウェアマニュアル SH-2A/SH-2A-FPU ソフトウェアマニュアル Rev.3.00 ( 最新版をルネサスエレクトロニクスホームページから入手してください ) ハードウェアマニュアル SH7268 グループ SH7269 グループユーザーズマニュアルハードウェア編 Rev.1.00 ( 最新版をルネサスエレクトロニクスホームページから入手してください ) R01AN0671JJ0101 Rev Page 52 of 53
53 ホームページとサポート窓口 ルネサスエレクトロニクスホームページ お問合せ先 すべての商標および登録商標は, それぞれの所有者に帰属します R01AN0671JJ0101 Rev Page 53 of 53
54 改訂記録 改訂内容 Rev. 発行日 ページ ポイント 初版発行 1.01 SH726B の参考プログラムを追加 A-1
55 製品ご使用上の注意事項ここでは マイコン製品全体に適用する 使用上の注意事項 について説明します 個別の使用上の注意事項については 本文を参照してください なお 本マニュアルの本文と異なる記載がある場合は 本文の記載が優先するものとします 1. 未使用端子の処理 注意 未使用端子は 本文の 未使用端子の処理 に従って処理してください CMOS 製品の入力端子のインピーダンスは 一般に ハイインピーダンスとなっています 未使用端子を開放状態で動作させると 誘導現象により LSI 周辺のノイズが印加され LSI 内部で貫通電流が流れたり 入力信号と認識されて誤動作を起こす恐れがあります 未使用端子は 本文 未使用端子の処理 で説明する指示に従い処理してください 2. 電源投入時の処置 注意 電源投入時は, 製品の状態は不定です 電源投入時には LSIの内部回路の状態は不確定であり レジスタの設定や各端子の状態は不定です 外部リセット端子でリセットする製品の場合 電源投入からリセットが有効になるまでの期間 端子の状態は保証できません 同様に 内蔵パワーオンリセット機能を使用してリセットする製品の場合 電源投入からリセットのかかる一定電圧に達するまでの期間 端子の状態は保証できません 3. リザーブアドレスのアクセス禁止 注意 リザーブアドレスのアクセスを禁止します アドレス領域には 将来の機能拡張用に割り付けられているリザーブアドレスがあります これらのアドレスをアクセスしたときの動作については 保証できませんので アクセスしないようにしてください 4. クロックについて 注意 リセット時は クロックが安定した後 リセットを解除してください プログラム実行中のクロック切り替え時は 切り替え先クロックが安定した後に切り替えてください リセット時 外部発振子 ( または外部発振回路 ) を用いたクロックで動作を開始するシステムでは クロックが十分安定した後 リセットを解除してください また プログラムの途中で外部発振子 ( または外部発振回路 ) を用いたクロックに切り替える場合は 切り替え先のクロックが十分安定してから切り替えてください 5. 製品間の相違について 注意 型名の異なる製品に変更する場合は 事前に問題ないことをご確認下さい 同じグループのマイコンでも型名が違うと 内部メモリ レイアウトパターンの相違などにより 特性が異なる場合があります 型名の異なる製品に変更する場合は 製品型名ごとにシステム評価試験を実施してください
56 (03) Renesas Electronics Corporation. All rights reserved. Colophon 1.0
スライド 1
RX62N 周辺機能紹介データフラッシュ データ格納用フラッシュメモリ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ データフラッシュの概要 プログラムサンプル 消去方法 書き込み方法 読み出し方法 FCUのリセット プログラムサンプルのカスタマイズ 2 データフラッシュの概要 3 データフラッシュとは フラッシュメモリ
エレクトーンのお客様向けiPhone/iPad接続マニュアル
/ JA 1 2 3 4 USB TO DEVICE USB TO DEVICE USB TO DEVICE 5 USB TO HOST USB TO HOST USB TO HOST i-ux1 6 7 i-ux1 USB TO HOST i-mx1 OUT IN IN OUT OUT IN OUT IN i-mx1 OUT IN IN OUT OUT IN OUT IN USB TO DEVICE
インターネット接続ガイド v110
1 2 1 2 3 3 4 5 6 4 7 8 5 1 2 3 6 4 5 6 7 7 8 8 9 9 10 11 12 10 13 14 11 1 2 12 3 4 13 5 6 7 8 14 1 2 3 4 < > 15 5 6 16 7 8 9 10 17 18 1 2 3 19 1 2 3 4 20 U.R.G., Pro Audio & Digital Musical Instrument
IICシングルマスタ送受信制御例 (EEPROM ライト・リード)
SH7730 RJJ06B1057-0100 Rev.1.00 SH7730 I 2 C (IIC) EEPROM SH7730 1.... 2 2. I 2 C... 4 3. EEPROM... 10 4.... 16 5.... 59 6.... 97 7.... 98 RJJ06B1057-0100 Rev.1.00 Page 1 of 100 1. 1.1 SH7730 EEPROM EEPROM
SH7670グループ DMAC 内蔵モジュールへの転送例
アプリケーションノート SH7670 グループ R01AN0306JJ0101 Rev. 1.01 要旨 本アプリケーションノートでは SH7670/SH7671/SH7672/SH7673 のダイレクトメモリアクセスコントローラ (DMAC) の内蔵モジュールへの転送例を説明しています 動作確認デバイス SH7670 目次 1. はじめに... 2 2. 応用例の説明... 3 3. 参考プログラムリスト...
iPhone/iPad接続マニュアル
/ JA 2 3 USB 4 USB USB i-ux1 USB i-ux1 5 6 i-mx1 THRU i-mx1 THRU 7 USB THRU 1 2 3 4 1 2 3 4 5 8 1 1 9 2 1 2 10 1 2 2 6 7 11 1 2 3 4 5 6 7 8 12 1 2 3 4 5 6 13 14 15 WPA Supplicant Copyright 2003-2009, Jouni
ScanFront300/300P セットアップガイド
libtiff Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby
TH-47LFX60 / TH-47LFX6N
TH-47LFX60J TH-47LFX6NJ 1 2 3 4 - + - + DVI-D IN PC IN SERIAL IN AUDIO IN (DVI-D / PC) LAN, DIGITAL LINK AV IN AUDIO OUT 1 11 2 12 3 13 4 14 5 6 15 7 16 8 17 9 18 10 19 19 3 1 18 4 2 HDMI AV OUT
2
NSCP-W61 08545-00U60 2 3 4 5 6 7 8 9 10 11 12 1 2 13 7 3 4 8 9 5 6 10 7 14 11 15 12 13 16 17 14 15 1 5 2 3 6 4 16 17 18 19 2 1 20 1 21 2 1 2 1 22 23 1 2 3 24 1 2 1 2 3 3 25 1 2 3 4 1 2 26 3 4 27 1 1 28
ScanFront 220/220P 取扱説明書
libtiff Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby
ScanFront 220/220P セットアップガイド
libtiff Copyright (c) 1988-1996 Sam Leffler Copyright (c) 1991-1996 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby
TH-65LFE7J TH-50LFE7J TH-42LFE7J - + - + PC IN DVI-D IN IR IN/OUT CHARGE OUT SERIAL IN LAN AUDIO IN (DVI-D / PC) AUDIO OUT AV IN (HDMI 1 HDMI 2) 19 3 1 1 11 2 12 3 13 4 14 5 6 15 7 16 8 17 9 18 10
DDK-7 取扱説明書 v1.10
DDK-7 v. JA 2 ()B-9 /4 ()B-9 2/4 3 4 ()B-9 3/4 ()B-9 4/4 5 6 7 "Mobile Wnn" OMRON SOFTWARE Co., Ltd. 999 All Rights Reserved. 8 CONTENTS 2 3 4 5 6 7 8 9 0 2 3 4 3 4 5 6 2 3 0 4 5 6 7 8 9 0 2 D. 2 3 4 5
外部SQLソース入門
Introduction to External SQL Sources 外部 SQL ソース入門 3 ESS 3 ESS : 4 ESS : 4 5 ESS 5 Step 1:... 6 Step 2: DSN... 6 Step 3: FileMaker Pro... 6 Step 4: FileMaker Pro 1. 6 Step 5:... 6 Step 6: FileMaker Pro...
TH-80LF50J TH-70LF50J
TH-80LF50J TH-70LF50J TY-ST58P20 (70V) TY-ST65P20 (80V) TY-WK70PV50 TY-FB10HD TY-PG70LF50 (70V) TY-PG80LF50 (80V) - + - + SERIAL IN, SERIAL OUT AUDIO IN (COMPOSITE) AV IN DVI-D IN/OUT PC IN AUDIO
Chapter 1 1-1 2
Chapter 1 1-1 2 create table ( date, weather ); create table ( date, ); 1 weather, 2 weather, 3 weather, : : 31 weather -- 1 -- 2 -- 3 -- 31 create table ( date, ); weather[] -- 3 Chapter 1 weather[] create
NetVehicle GX5取扱説明書 基本編
-GX5 1 2 3 4 5 6 7 8 # @(#)COPYRIGHT 8.2 (Berkeley) 3/21/94 All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite Releases is copyrighted by The Regents of the University of California.
WQD770W WQD770W WQD770W WQD770W WQD770W 5 2 1 4 3 WQD8438 WQD770W 1 2 3 5 4 6 7 8 10 12 11 14 13 9 15 16 17 19 20 20 18 21 22 22 24 25 23 2 1 3 1 2 2 3 1 4 1 2 3 2 1 1 2 5 6 3 4 1 2 5 4 6 3 7 8 10 11
WYE771W取扱説明書
WYE771W WYE771W 2 3 4 5 6 MEMO 7 8 9 10 UNLOCK RESET/ STOPALARM EMERG. TALK FIRE CONFIRM MENU OFF POWER 11 UNLOCK RESET/ STOPALARM EMERG. TALK FIRE CONFIRM MENU OFF POWER 12 POWER EMERG. RESET/ STOPALARM
SH7216 グループ USB ファンクションモジュール USB コミュニケーションクラス アプリケーションノート
SH7216 USB USB SH7216 USB USB USB SH7216 R01AN2201JJ0100 Rev.1.00 1.... 2 2.... 3 3. USB... 19 4.... 25 R01AN2201JJ0100 Rev.1.00 Page 1 of 26 SH7216 USB USB 1. SH7216 USB USB USB 1.1 INTC PFC USB USB SCI
81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************
1 /******************************************************************************/ 2 /* IIC(Inter IC Bus) の制御 */ 3 /******************************************************************************/ 4 /*
基本操作ガイド
HT7-0199-000-V.5.0 1. 2. 3. 4. 5. 6. 7. 8. 9. Copyright 2004 CANON INC. ALL RIGHTS RESERVED 1 2 3 1 1 2 3 4 1 2 1 2 3 1 2 3 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 5 AB AB Step 1 Step
スライド 1
RL78/G13 周辺機能紹介 SAU シリアル アレイ ユニット ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ SAU の概要 UART 通信機能のプログラム サンプル紹介 2 SAU の概要 3 SAU の機能 クロック同期式調歩同期式マスタ動作のみ チャネル 0: 送信チャネル 1: 受信 4 UART
操作ガイド(本体操作編)
J QT5-0571-V03 1 ...5...10...11...11...11...12...12...15...21...21...22...25...27...28...33...37...40...47...48...54...60...64...64...68...69...70...70...71...72...73...74...75...76...77 2 ...79...79...80...81...82...83...95...98
RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)
RL78 開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行 ( 統合開発環境編 ) (High-performance Embedded Workshop CS+) 2017/4/7 R20UT2087JJ0103 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は 統合開発環境 High-performance Embedded Workshop
スライド 1
RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D
内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一
RX210 グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX210 1 / 25 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4
操作ガイド(本体操作編)
J-1 QT5-0681-V02 1 m a b c d e f l kj i h g a b c d e f g h i j k l m n n o o s p q r p q r s w t u v x y z t u v w x y z a bc d e f g q p o n m l k j i h a b c d e f g h i j k l {}[] {}[] m n
Notes and Points for TMPR454 Flash memory
表紙 TMPR454 内蔵 Flash メモリ対応版手順書 株式会社 DTS インサイト ご注意 (1) 本書の内容の一部または 全部を無断転載することは禁止されています (2) 本書の内容については 改良のため予告なしに変更することがあります (3) 本書の内容について ご不明な点やお気付きの点がありましたら ご連絡ください (4) 本製品を運用した結果の影響については (3) 項にかかわらず責任を負いかねますのでご了承ください
SH7730グループ アプリケーションノート BSC バイト選択付きSRAM設定例
RJJ06B1099-0001 Rev.0.01 (BSC) SH7730 1.... 2 2.... 3 3.... 20 RJJ06B1099-0001 Rev.0.01 Page 1 of 20 1. 1.1 64M (8M 8 / 4M 16 ) 16 (BSC) / 1.2 (BSC) 1.3 : SH7730 (R8A77301) : 64M : R1WV6416R (8M 8 / 4M
基本操作ガイド
HT7-0022-000-V.4.0 Copyright 2004 CANON INC. ALL RIGHTS RESERVED 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 4 1 1 2 3 4 5 1 2 1 2 3 1 2 3 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4
Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装
LIM Corp. Nios II - PIO を使用した I 2 C-Bus (2 ワイヤ ) マスタの実装 ver.1.0 2010 年 6 月 ELSEN,Inc. 目次 1. はじめに... 3 2. 適用条件... 3 3. システムの構成... 3 3-1. SOPC Builder の設定... 3 3-2. PIO の設定... 4 3-2-1. シリアル クロック ライン用 PIO
IM 21B04C50-01
User s Manual Blank Page Media No. (CD) 5th Edition : Sep. 2009 (YK) All Rights Reserved. Copyright 2001, Yokogawa Electric Corporation Yokogawa Electric Corporation Software License Agreement This
2
SXSXD 2 3 4 5 6 7 8 9 10 11 12 13 DC12V EIAJ RC5320A Class4 14 15 16 17 18 19 20 21 22 23 24 25 26 SCOPE CHART SCOPE CHART CHART SCOPE SCOPE SCOPE CHART CHART 27 SCOPE MODE CHART MODE 28 29 CHART MODE
-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR
第 回マイクロプロセッサのしくみ マイクロプロセッサの基本的なしくみについて解説する. -1 マイクロプロセッサと周辺回路の接続 制御バス プロセッサ データ バス アドレス バス メモリ 周辺インタフェース バスの基本構成 Fig.-1 バスによる相互接続は, 現在のコンピュータシステムのハードウェアを特徴づけている. バス (Bus): 複数のユニットで共有される信号線システム内の データの通り道
スライド 1
RX62N 周辺機能紹介 DAC D/A Converter ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ DACの概要 データフォーマット 変換開始と変換時間 転送時間 プログラムサンプル 2 DAC の概要 3 機能概要 項目 内容 分解能 出力チャネル 消費電力低減機能 10 ビット 2 チャネル モジュールストップ状態への設定が可能
EPSON ES-D200 パソコンでのスキャンガイド
NPD4271-00 ...4...7 EPSON Scan... 7...11 PDF...12 / EPSON Scan...13 EPSON Scan...13 EPSON Scan...14 EPSON Scan...14 EPSON Scan...15 Epson Event Manager...16 Epson Event Manager...16 Epson Event Manager...16
スライド 1
RL78/G13 周辺機能紹介 ADC A/D コンバータ ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ ADC の概要 ソフトウエア トリガ セレクト モード 連続変換モードのプログラム サンプル紹介 2 ADC の概要 3 ADC のブロック図 パワー オフが可能 入力 選択 記憶 比較 基準電圧 変換結果
スライド 1
RX ファミリ用コンパイラスタートアップの紹介 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ スタートアップの概要 スタートアッププログラム例 外部メモリを利用する場合の設定 2 スタートアップの概要 3 処理の流れとファイル構成例 パワーオン リセット Fixed_Vectors ( 固定ベクタテーブル )
Appendix
Appendix Appendix-A PHP 392 Appendix-B -> cd ext/pgsql -> phpize ->./configure --with-pgsql -> make -> make EXTENSION_DIR=/usr/local/lib/php/extensions install extension_dir = "/usr/local/lib/php/extensions/"
untitled
H8/300,H8S,H8SX [H8S,H8/300 Tool Chain Ver6.2.0.0] #define Inline static inline //************************************************** Inline char sil_and_mem(char *mem,char and) return (*((volatile
目次 1. 珠肌 Photoshop プラグインについて はじめに 必要システム構成 インストールとアクティベーション 珠肌 for Photoshop をインストールする アクティベーションする...
写真用美肌フィルタープラグイン ユーザーマニュアル Ver.1.0 目次 1. 珠肌 Photoshop プラグインについて... 1 1.1. はじめに... 1 1.2. 必要システム構成... 1 2. インストールとアクティベーション... 2 2.1. 珠肌 for Photoshop をインストールする... 2 2.2. アクティベーションする... 4 2.3. インストールの確認...
QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?
アルテラ FPGA 向け PLL リコンフィグの応用回路 1. PLL リコンフィグとは アルテラ FPGA は PLL 機能を内蔵しています PLL を利用して基本周波数を逓倍 分周したクロックを利用することができます 通常 FPGA 開発ツール Quartus2( 以下 Q2) の MegaWizard プラグインマネージャを利用して PLL を設定し 希望のクロック周波数を得ることができます
DS-30
NPD4633-00 JA ...6... 6... 6... 6... 6... 7... 7... 7... 7... 8... 8...9...10...11...11...13 Document Capture Pro Windows...13 EPSON Scan Mac OS X...14 SharePoint Windows...16 Windows...16...17 Document
DS-70000/DS-60000/DS-50000
NPD4647-02 JA ...5...7...8 ADF...9... 9 ADF...10...11...13...15 Document Capture Pro Windows...15 EPSON Scan Mac OS X...16 SharePoint Windows...18 Windows...18...19 Windows...19 Mac OS X...19...20...23...23
スライド 1
RX62N 周辺機能紹介 TMR 8 ビットタイマ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ TMR の概要 プログラムサンプル (1) パルス出力機能 (8 ビットモード ) プログラムサンプル (2) インターバルタイマ機能 (16 ビット コンペアマッチカウントモード ) プログラムサンプルのカスタマイズ
スライド 1
RX62N 周辺機能紹介 MTU2 マルチファンクションタイマパルスユニット 2 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ MTU2 の概要 プログラムサンプル (1) インプットキャプチャ機能 プログラムサンプル (2) PWM モード プログラムサンプル (3) 相補 PWM モード プログラムサンプルのカスタマイズ
RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM
R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33 1.... 3 1.1... 3 1.2... 3
TN-12-15: N25QとSpansion S25FL フラッシュ デバイスの比較
テクニカルノート TN-12-15: と Spansion フラッシュ デバイスの 比 較 はじめに Comparing Micron and Spansion Flash Devices はじめに 本 テクニカルノートは Micron (32Mb または 64Mb) と Spansion フラッ シュ メモリ デバイスの 機 能 を 比 較 することを 目 的 としています 比 較 した 機 能
GT-X830
NPD5108-00 ...5... 5... 6... 8...11 EPSON Scan...11 PDF...16 OCR...16...17...17...20 /...20...20...22...23...23...24...25...25...26...27 PDF...30...31 / EPSON Scan...34 EPSON Scan...34 EPSON Scan...36
REDCap_EULA_FAQ
米国ヴァンダービルト大学との End User License Agreementと 大阪市立大学における REDCap 外部提供 (SaaS) 契約について 2017 年 6 月 1 日 Japan REDCap Consortium 注意事項 この資料の著作権は 大阪市立大学 REDCap グループに帰属します 私的使用を除き 本資料の全部又は一部を承諾なしに公表又は第三者に伝達する事はできません
ES-D400/ES-D350
NPD4650-00 ...4 EPSON Scan... 4 Document Capture Pro Windows... 7 EPSON Scan...10 EPSON Scan...10...14 PDF...15 / EPSON Scan...17 EPSON Scan...17 EPSON Scan...18 EPSON Scan...18 Document Capture Pro Windows...19
GT-X980
NPD5061-00 JA ...6...10...10...11...13...15...20...21...21...22 /...23 PDF...27 PDF...31 /...35...38...43...46 EPSON Scan...49...49...49...50 EPSON Scan...51...51...52...52...53 2 Windows...53 Mac OS X...53...53...53...54...56...56...58...59...60...60...61...62...63
PX-403A
NPD4403-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.x...15...18...19...19...21...22!ex...22 /...23 P.I.F. PRINT Image Framer...23...24...27...27...28...28...28...32 Web...32...32...35...35...35...37...37...37...39...39...40...43...46
RSK+RZT1グループ アプリケーションノート QSPIフラッシュブートローダ
要旨 アプリケーションノート R01AN2471JG0100 Rev.1.00 はじめに 本アプリケーションノートは に実装されている QSPI フラッシュメモリの設定とプログラム を e² studio 環境で行う方法について説明します の詳細については ユーザーズマニュアル (R20UT3551JJ0101) を参照してくださ い RZ/T1 の詳細については RZ/T1 グループユーザーズマニュアルハードウェア編
GT-F740/GT-S640
NPD4743-00 JA ...5 EPSON Scan... 5 Document Capture Pro / Document Capture...11...14 EPSON Scan...14 PDF...18 OCR...18...19...19...21 /...21...22...23 GT-F740...24...24...25...26...26...26...27 PDF...28...30
EPSON PX-503A ユーザーズガイド
NPD4296-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.x...15...18...19...19...21...22...23!ex...23 /...24 P.I.F. PRINT Image Framer...24...25...28...28...29...29...30...33
RXファミリ 多重割り込みの使い方 アプリケーションノート
RAN954JJ Rev.. RX.... 2 2.... 4 3.... 4 4.... 5 5.... 6 6.... 4 7.... 4 RAN954JJ Rev.. Page of 5 . IRQ IRQ3 PSW I PSW I I. #pragma interrupt (enable) : RX22 IRQ #pragma interrupt (Excep_IRQm (enable,vect=65))
EPSON EP-803A/EP-803AW ユーザーズガイド
NPD4293-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.x...15...18...19...19...22...23...24!ex...24 /...25 P.I.F. PRINT Image Framer...25...26...30...30...31...31...31...35
EPSON EP-703A ユーザーズガイド
NPD4295-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.x...15...18...19...19...22...23...24!ex...24 /...25 P.I.F. PRINT Image Framer...25...26...29...30...30...31...31...34
MusicSoft Manager
MusicSoft Manager( ミュージックソフトマネージャー ) は 電子楽器で扱うファイル ( ソングやスタイルデータ ) を iphone/ipod touch/ipad 上で管理するアプリケーションです 本アプリケーションにより以下のことができます データのダウンロード購入 データをアプリと楽器 コンピューター オンラインストレージサービス Dropbox ( ドロップボックス ) 間で転送
DDR3 SDRAMメモリ・インタフェースのレベリング手法の活用
WP-01034-1.0/JP DLL (PVT compensation) 90 PLL PVT compensated FPGA fabric 90 Stratix III I/O block Read Dynamic OC T FPGA Write Memory Run Time Configurable Run Time Configurable Set at Compile dq0 dq1
POWER LINK AIR 2.4 DS/OF 4 1 1 LINK AIR POWER LINK AIR 1-1 POWER 1-2 POWER LINK AIR 1 1-3 POWER LINK AIR 1 POWER LINK AIR PC1 PC2 PC3 PC4 DC-IN DC5V 1-4 1 1 2 3 4 1 5 6 7 8 1 2 3 4 5 1 1 2
Microsoft Word - dg_sataahciip_refdesign_jp.doc
SATA AHCI-IP コア リファレンス デザイン説明書 Rev1.3J 2017/03/22 本ドキュメントは AHCI-IP コア実機デモ システムのリファレンス デザインを説明したものです SATA-IP コアの上位に AHCI-IP コアを実装することで アプリケーション レイヤのドライバを介して Linux 等の OS から接続 SATA デバイスを直接ドライブとして認識でき ファイル
2.4 DSOF 4 1 2 3 4 1 2 3 4 5 6 7 8 9 10 11 12 1 2 SET RESET POWER PPP PPP 3 POWER DATA 4 SET RESET WAN PC1 PC2 5 POWER PPP DATA AIR 6 1 2 3 4 5 6 7 II II II 8 1 2 3 4 5 6 7 8 9 10 II
2.4 DSOF 4 RESET WAN LAN1 LAN2 LAN3 LAN4 DC-IN 12V 1 2 3 4 ON 1 2 3 4 ON 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 1 2 3 4 5 3 1 2 1 2 3 4
1 2 3 4 5 6 7 2.4 DSOF 4 1 1 1 1 1 1 1 1 1 DC-IN SET RESET WAN PC1 PC2 PC3 PC4 1 POWER LAN 1 LAN 2 AIR 1 LAN1 LAN2 RESET 1 1 1 1 2 3 4 5 6 7 1 2 3 4 1 5 6 7 1 2 3 > 4 5 6 7 8 1 1
1 2 3 4 5 6 7 2.4 DSOF 4 1 1 POWER LINK AIR 1 1 1 1 1 1 POWER LINK AIR 1 1 DC-IN SET RESET WAN PC1 PC2 PC3 PC4 1 POWER LINK AIR 1 POWER PC1 PC2 PC3 PC4 DC-IN DC5V LINK AIR 1 1 1
Microsoft Word - Win-Outlook.docx
Microsoft Office Outlook での設定方法 (IMAP および POP 編 ) How to set up with Microsoft Office Outlook (IMAP and POP) 0. 事前に https://office365.iii.kyushu-u.ac.jp/login からサインインし 以下の手順で自分の基本アドレスをメモしておいてください Sign
【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology
注意事項 RX Driver Package RX ファミリ RTC モジュール Firmware Integration Technology 概要 RX Driver Package および RX ファミリ RTC モジュール Firmware Integration Technology( 以下 RTC FIT モジュール ) の使用上の注意事項を連絡します 1. R_RTC_Read 関数における時刻読み出し処理の注意事項
ServerView with Data ONTAP-v™ PowerChute® Network Shutdown 設定について
ServerView with Data ONTAP-v TM PowerChute Network Shutdown 設定について 富士通株式会社 2011 年 6 月 目次 1. はじめに...2 2. 待ち時間の計画...2 3. PowerChute Network Shutdown のインストール...4 4. PowerChute Network Shutdown の設定...7 5.
Readme
---------------------------------------------------- PaperStream Capture Lite 1.0.1 README ---------------------------------------------------- Copyright PFU LIMITED 2016 このファイルには 本製品をお使いになる前にお読みいただきたい注意事項や
珠肌 for Video ユーザーマニュアル
動画用美肌フィルタープラグイン ユーザーマニュアル Ver.1.0 目次 1. 珠肌 for Video について... 1 1.1. はじめに... 1 1.2. 必要システム構成... 1 2. インストールとアクティベーション... 2 2.1. 珠肌 for Video をインストールする... 2 2.2. アクティベーションする... 4 2.3. インストールの確認... 5 2.4.
EP-704A
NPD4533-01 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.11...15...18...19...19...22...23...24!ex...24 /...25 P.I.F. PRINT Image Framer...25...26...29...29...30...30...31...34
PX-504A
NPD4537-00 ...6... 6... 9 Mac OS X...10 Mac OS X v10.5.x v10.6.x...10 Mac OS X v10.4.11...13...15...16...16...18...19...20!ex...20 /...21 P.I.F. PRINT Image Framer...21...22...26...26...27...27...27...31
準備と設定
ii iii iv v vi 1 2 3 4 vii 5 6 7 8 9 viii This product (including software) is designed under Japanese domestic specifications and does not conform to overseas standards. NEC* 1 will not be held responsible
PX-434A/PX-404A
NPD4534-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.11...15...18...19...19...21...22!ex...22 /...23 P.I.F. PRINT Image Framer...23...24...26...27...27...28...28...31 Web...31...31...35...35...35...37...37...37...39...39...40...43...48
MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を
MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev:01 10.4.2013 PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を確認する方法 JTAG アクセスができるデバイス ( セキュリティ Fuse 断ではできません ) に対して
2.4 DSOF 4 RESET MO DE AP RT 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 1 2 3 4 5 3 1 2 1 2 3 4 5 6 7 8 1 2 3 4 5 1 2 3 1 2 3 1 2 3 4 5 6
NI P1200 Release Notes Cover
PEX-H2994W Board Support Package Installation on RedHawk Release Notes July 4, 2019 1. はじめに 本書は Concurrent Real Time IncCCRT) の RedHawk 上で動作する インターフェース社製 PEX- H2994W PCI Express ボードサポートパッケージ用リリースノートです
1 2 3 4 5 6 7 2.4 DSOF 4 POWER LINK AIR 1 1 1 1 1 1 POWER LINK AIR 1 1 DC-IN SET RESET WAN PC1 PC2 PC3 PC4 1 1 POWER LINK AIR DC-IN DC5V PC1 PC2 PC3 PC4 1 POWER LINK AIR 1 1 1 2 3 4
GR-SAKURA-SAのサンプルソフト説明
フルカラーシリアル LED テープ (1m) を GR-KURUMI で使ってみる 2014/2/25 がじぇっとるねさす鈴木 Rev. 1.00 フルカラーシリアル LED の特徴 http://www.switch-science.com/catalog/1399/ 3570 円 1m で 60 個の LED がついている 電源と信号線 1 本で制御する x 24 この信号を 24 個送信して
PX-673F
NPD4385-00 ...6... 6...10 Mac OS X...11 Mac OS X v10.5.x v10.6.x...11 Mac OS X v10.4.x...15...18...19...19...21...22...23!ex...23 /...24 P.I.F. PRINT Image Framer...24...25...28...29...29...30...30...33
操作ガイド(本体操作編)
J QT7-0030-V04 1 ...5...10...11...11...11...12...12...15...21...23...25...29...32...38...43...44...50...52...55...55...59...60...61...61...62...63...64...65...66...67...69...69...70...71...72...73...84
Lab GPIO_35 GPIO
6,GPIO, PSoC 3/5 GPIO HW Polling and Interrupt PSoC Experiment Lab PSoC 3/5 GPIO Experiment Course Material 6 V2.02 October 15th. 2012 GPIO_35.PPT (65 Slides) Renji Mikami [email protected] Lab GPIO_35
