Section 23. Serial Peripheral Interface (SPI)

Size: px
Start display at page:

Download "Section 23. Serial Peripheral Interface (SPI)"

Transcription

1 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 23. シリアルペリフェラルインターフェイス (SPI) ハイライト 本セクションには下記の主要項目を記載しています 23.1 はじめに ステータス / 制御レジスタ 動作モード オーディオプロトコルインターフェイスモード 割り込み 省電力およびデバッグモード中の動作 各種リセットの影響 SPI モジュールを使う周辺モジュール 関連アプリケーションノート 改訂履歴 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p. 23-1

2 PIC32 ファミリリファレンスマニュアル Note: ファミリリファレンスマニュアルの本セクションは デバイスデータシートの補足を目的としています 本書の内容は PIC32 ファミリの一部のデバイスには対応していません 本書の内容がお客様のご使用になるデバイスに対応しているかどうかは 最新デバイスデータシート内の シリアルペリフェラルインターフェイス (SPI) の冒頭に記載している注意書きでご確認ください デバイスデータシートとファミリリファレンスマニュアルの各セクションは マイクロチップ社のウェブサイト ( でご覧になれます 23.1 はじめにシリアルペリフェラルインターフェイス (SPI) モジュールは 外部の周辺モジュールまたは他のマイクロコントローラデバイスとの通信に便利に使える同期シリアルインターフェイスです SPI を使って通信可能な周辺デバイスには EEPROM シフトレジスタ ディスプレイドライバ アナログ / デジタルコンバータ (ADC) オーディオコーデック等があります PIC32 ファミリの SPI モジュールは Motorola SPI および SIOP インターフェイスとの互換性を持ちます 図 23-1 に SPI モジュールのブロック図を示します このモジュールの主な特長は以下の通りです マスタモードとスレーブモードをサポート 4 種類のクロックフォーマット フレーム化 SPI プロトコルをサポート 標準および拡張バッファモード ( 拡張バッファモードは一部デバイスにのみ実装 ) データ幅を ビットに設定可能 拡張バッファモードでは SPI 受信および送信バッファを 4/8/16 段の FIFO バッファとして構成 プログラマブルな割り込みイベント (8/16/32 ビットのデータ転送ごとに割り込みを生成 ) オーディオプロトコルインターフェイスモード一部の PIC32 デバイスは 各種のオーディオコーデックシリアルプロトコル (I 2 S (Inter-IC Sound) 左寄せ 右寄せ PCM/DSP モード等 ) をサポートし 16/24/32 ビットオーディオデータに対応します お使いになるデバイスでこれらの機能が利用できるかどうかは デバイスのデータシートを参照してください SPIx シリアルインターフェイスは下記の 4 本のピンを備えます SDIx: シリアルデータ入力 SDOx: シリアルデータ出力 : シフトクロック入力または出力 SSx: アクティブ LOW スレーブ選択またはフレーム同期 I/O パルス 表 23-1: SPI モード SPI の機能 SPI マスタ SPI スレーブ フレームマスタ フレームスレーブ 8/16/32 ビットモード クロックパルス / エッジの選択 フレーム同期パルス / エッジの選択 スレーブ選択パルス 標準 Yes Yes Yes Yes Yes フレーム化 Yes Yes Yes Yes Yes Yes Yes No 表 23-2: サポートするオーディオプロトコル オーディオプロトコルインターフェイスモードにおける SPI 機能 SPI マスタ SPI スレーブ 16/24/32 ビットデータフォーマット 32/64 ビットフレーム オーバーフロー / アンダーフロー検出 モノラル / ステレオモード マスタクロック (MCLK) サポート I 2 S 左寄せ 右寄せ PCM/DSP Yes Yes Yes Yes Yes Yes Yes Note 1: 一部のデバイスではこの機能を利用できません 詳細は各デバイスのデータシートを参照してください DS61106G_JP - p Microchip Technology Inc.

3 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-1: SPI モジュールのブロック図 Internal Data Bus SPIxBUF Read Write Registers share address SPIxBUF SPIxRXB (1) SPIxTXB (1) SWPTR (3) CRPTR CWPTR (4) SRPTR Transmit 23 SDIx SDOx SSx Receive bit0 Slave Select and Frame Sync Control SPIxSR (2) Shift Control Clock Control Edge Select Baud Rate Generator MCLKSEL MCLK PBCLK シリアルペリフェラルインターフェイス (SPI) Enable Master Clock Note 1: SPIx 受信バッファ (SPIxRXB) および SPIx 送信バッファ (SPIxTXB) レジスタには SPIxBUF レジスタを介してアクセスします 拡張バッファモードでは これらのバッファはマルチエレメント FIFO バッファとして機能します ( これらの FIFO バッファのポインタ計算は循環式です ) 一部のデバイスだけが拡張バッファモードを備えます 詳細は各デバイスのデータシートを参照してください 2: アプリケーションソフトウェアから SPIx シフトレジスタ (SPIxSR) に直接アクセスはできません 3: CPU 読み出しポインタ (CRPTR) が SPI 書き込みポインタ (SWPTR) 以下である場合 アプリケーションが SPIxRXB レジスタからデータエレメントを読み出すと CRPTR がインクリメントし データエレメントが SPIxSR レジスタから SPIxRXB レジスタに転送されると SWPTR がインクリメントします 4: SPI 読み出しポインタ (SRPTR) が CPU 書き込みポインタ (CWPTR) 以上である場合 アプリケーションが新しいデータエレメントを SPIxBUF レジスタに書き込むと CWPTR がインクリメントし データが SPIxTXB レジスタから SPIxSR レジスタに転送されると SRPTR がインクリメントします 2013 Microchip Technology Inc. DS61106G_JP - p. 23-3

4 PIC32 ファミリリファレンスマニュアル 標準モードの SPI 動作 標準モード動作では SPI マスタがシリアルクロックの生成を制御します 出力クロックパルスの数は転送データ幅 ( ビット ) に対応します 図 23-2 と図 23-3 に SPI マスタ - スレーブデバイス間の接続と SPI スレーブ - マスタデバイス間の接続を示します 図 23-2: 標準的な SPI マスタ - スレーブデバイスの接続図 PIC32 [SPI Master] SDOx SDIx PROCESSOR2 [Slave] SDIx SDOx (2) GPIO/SSx Serial Clock SlaveSelect (1) SSx Note 1: 標準モードの場合 スレーブ選択ピン (SSx) は必要に応じて使えます 2: 受信専用モードでは SDOx ピンの制御を無効にできます 図 23-3: 標準的な SPI スレーブ - マスタデバイスの接続図 PIC32 [SPI Slave] SDOx (2) SDIx PROCESSOR2 [Master] SDIx SDOx SSx Serial Clock SlaveSelect (1) SSx/GPIO Note 1: 標準モードの場合 スレーブ選択ピン (SSx) は必要に応じて使えます 2: 受信専用モードでは SDOx ピンの制御を無効にできます DS61106G_JP - p Microchip Technology Inc.

5 セクション 23. シリアルペリフェラルインターフェイス (SPI) フレーム化モードの SPI 動作 フレーム化モード動作の場合 フレームマスタがフレーム同期パルスの生成を制御し SPI マスタは SPI クロックを常時生成します 図 23-4 に SPI フレームマスタデバイスの接続図を示し 図 23-5 に SPI フレームスレーブデバイスの接続図を示します 図 23-4: 標準的な SPI マスタ / フレームマスタデバイスの接続図 PIC32 [SPI Master, Frame Master] SDOx PROCESSOR2 [SPI Slave, Frame Slave] SDIx SDIx Serial Clock SDOx SSx FrameSync. Pulse (1,2) Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送信 / 受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) SSx 図 23-5: 標準的な SPI マスタ / フレームスレーブデバイスの接続図 23 PIC32 [SPI Master, Frame Slave] SDOx SDIx SSx Serial Clock FrameSync. Pulse (1,2) SDIx SDOx SSx PROCESSOR2 [SPI Slave, Frame Master] シリアルペリフェラルインターフェイス (SPI) Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送信 / 受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) 2013 Microchip Technology Inc. DS61106G_JP - p. 23-5

6 PIC32 ファミリリファレンスマニュアル オーディオプロトコルインターフェイスモード オーディオマスタモードの SPI をコーデックスレーブに接続する図 23-6 に PIC32 の SPI モジュールがビットクロック (BCLK) と左 / 右チャンネルクロック (LRCK) を生成する場合の接続図を示します 図 23-6: SPI マスタがクロックを生成してコーデックスレーブに BCLK と LRCK を供給する PIC32 [SPI Master] (BCLK) BCLK Codec [Slave] SSx (LRCK) LRCK Internal Clock SDOx SDIx DACDAT ADCDAT オーディオスレーブモードの SPI をコーデックマスタに接続する図 23-7 に コーデックマスタが BCLK と LRCK を生成する場合の接続図を示します 図 23-7: コーデックマスタが外付け水晶振動子を使ってクロックを生成する PIC32 [SPI Slave] SCK (BCLK) BCLK Codec [Master] SSx (LRCK) LRCK SDOx SDIx DACDAT ADCDAT DS61106G_JP - p Microchip Technology Inc.

7 セクション 23. シリアルペリフェラルインターフェイス (SPI) 23.2 ステータス / 制御レジスタ Note: PIC32 ファミリは デバイスのタイプに応じて 1 つまたは複数の SPI モジュールを内蔵しています ピン 制御 / ステータスビット レジスタの名前に含まれる添え字 x はモジュールの番号を表します 詳細は各デバイスのデータシートを参照してください SPI モジュールは下記の特殊機能レジスタ (SFR) を備えています SPIxCON: SPI 制御レジスタ SPIxCON2: SPI 制御レジスタ 2 SPIxSTAT: SPI ステータスレジスタ SPIxBUF: SPI バッファレジスタ SPIxBRG: SPI baud レートレジスタ表 23-3 に SPI モジュールに関連する全てのレジスタをまとめて示します 各レジスタの詳細な説明は この表の後に記載しています 表 23-3: レジスタ名 SPI 関連 SFR のまとめ レンジ 31/23/15/7 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 SPIxCON (1,2,3) 31:24 FRMEN FRMSYNC FRMPOL MSSEN (4) FRMSYPW (4) FRMCNT<2:0> (4) 23:16 MCLKSEL (4) SPIFE ENHBUF (4) 15:8 ON SIDL DISSDO MODE32 MODE16 SMP CKE 7:0 SSEN CKP MSTEN DISSDI (4) STXISEL<1:0> (4) SRXISEL<1:0> (4) SPIxCON2 (1,2,3,5) 31:24 23:16 15:8 SPISGNE XT FRMERRE N SPIROVEN SPITUREN IGNROV IGNTUR 7:0 AUDEN AUDMONO AUDMOD<1:0> SPIxSTAT (1,2,3) 31:24 RXBUFELM<4:0> (4) 23:16 TXBUFELM<4:0> (4) 15:8 FRMERR (4) SPIBUSY SPITUR 7:0 SRMT (4) SPIROV SPIRBE (4) SPITBE SPITBF (4) SPIRBF SPIxBUF 31:24 DATA<31:24> 23:16 DATA<23:16> 15:8 DATA<15:8> 7:0 DATA<7:0> SPIxBRG (1,2,3) 31:24 23:16 15:8 BRG<12:8> (6) 7:0 BRG<7:0> (6) 凡例 : = 未実装 0 として読み出し アドレスオフセット値は 16 進数で表記 Note 1: このレジスタに対応するクリアレジスタのアドレスは 0x4 バイトオフセットしています クリアレジスタは 対応するレジスタの名前の後に CLR を追加した名前を持ちます ( 例 : SPIxCONCLR) クリアレジスタの任意のビットに 1 を書き込むと 対応するレジスタの対応するビットがクリアされます クリアレジスタからの読み出しは無視されます 2: このレジスタに対応するセットレジスタのアドレスは 0x8 バイトオフセットしています セットレジスタは 対応するレジスタの名前の後に SET を追加した名前を持ちます ( 例 : SPIxCONSET) セットレジスタの任意のビットに 1 を書き込むと 対応するレジスタの対応するビットがセットされます セットレジスタからの読み出しは無視されます 3: このレジスタに対応する反転レジスタのアドレスは 0xC バイトオフセットしています 反転レジスタは 対応するレジスタの名前の後に INV を追加した名前を持ちます ( 例 : SPIxCONINV) 反転レジスタの任意のビットに 1 を書き込むと 対応するレジスタの対応するビットが反転します 反転レジスタからの読み出しは無視されます 4: 一部のデバイスではこのビットを利用できません 詳細は各デバイスのデータシートを参照してください 5: 一部のデバイスではこのレジスタを利用できません 詳細は各デバイスのデータシートを参照してください 6: BRG は最大 13 ビットです ( デバイスによってビット数は異なります ) 詳細は各デバイスのデータシートを参照してください 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p. 23-7

8 PIC32 ファミリリファレンスマニュアル レジスタ 23-1: ビットレンジ 31/23/15/7 SPIxCON: SPI 制御レジスタ 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 31:24 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 FRMEN FRMSYNC FRMPOL MSSEN (1,2) FRMSYPW (1) FRMCNT<2:0> (1) 23:16 R/W-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 MCLKSEL SPIFE ENHBUF (1) 15:8 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 ON SIDL DISSDO MODE32 MODE16 SMP CKE 7:0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 SSEN CKP MSTEN DISSDI STXISEL<1:0> (1,3) SRXISEL<1:0> (1,3) 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット 0 として読み出し -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知 bit 31 FRMEN: フレーム化 SPI サポートビット 1 = フレーム化 SPI サポートを有効にする (SSx ピンを FSYNC 入力 / 出力として使う ) 0 = フレーム化 SPI サポートを無効にする bit 30 FRMSYNC: フレーム同期パルス SSx ピン方向制御ビット ( フレーム化 SPI モード専用 ) 1 = フレーム同期パルス入力 ( スレーブモード ) 0 = フレーム同期パルス出力 ( マスタモード ) bit 29 FRMPOL: フレーム同期パルス極性ビット ( フレーム化 SPI モード専用 ) 1 = フレームパルスはアクティブ HIGH 0 = フレームパルスはアクティブ LOW bit 28 MSSEN: マスタモードスレーブ選択イネーブルビット (1,2) 1 = スレーブ選択 SPI サポートを有効にする SS ピンは マスタモードでの送信中に自動的に駆動されます 極性は FRMPOL ビットで指定します 0 = スレーブ選択 SPI サポートを無効にする bit 27 FRMSYPW: フレーム同期パルス幅ビット (1) 1 = フレーム同期パルスは 1 ワード幅 (MODE<32,16> ビット (SPIxCON<11:10>) の定義に従う ) 0 = フレーム同期パルスは 1 クロック幅 bit FRMCNT<2:0>: フレーム同期パルスカウンタビットこのビットは 1 パルスあたりの送信データキャラクタ数を制御します (1) 111 = 予約済み ( 使用禁止 ) 110 = 予約済み ( 使用禁止 ) 101 = 32 データキャラクタごとにフレーム同期パルスを生成する 100 = 16 データキャラクタごとにフレーム同期パルスを生成する 011 = 8 データキャラクタごとにフレーム同期パルスを生成する 010 = 4 データキャラクタごとにフレーム同期パルスを生成する 001 = 2 データキャラクタごとにフレーム同期パルスを生成する 000 = 1 データキャラクタごとにフレーム同期パルスを生成するこのビットはフレーム化 SPI モード (FRMEN = 1) でのみ効力を持ちます bit 23 MCLKSEL: マスタクロック選択ビット (2) 1 = baud レートジェネレータは MCLK を使う 0 = baud レートジェネレータは PBCLK を使う bit 未実装 : 0 を書き込み 読み出しは無視 Note 1: 一部のデバイスはこれらのビットを実装していません 詳細は各デバイスのデータシートを参照してく ださい 2: FRMEN = 1 の場合 MSSEN ビットは使いません 3: これらのビットは 拡張バッファモードを有効 (ENHBUF = 1) にしている場合にのみ効力を持ちます DS61106G_JP - p Microchip Technology Inc.

9 セクション 23. シリアルペリフェラルインターフェイス (SPI) レジスタ 23-1: SPIxCON: SPI 制御レジスタ ( 続き ) bit 17 SPIFE: フレーム同期パルスエッジ選択ビット ( フレーム化 SPI モード専用 ) 1 = フレーム同期パルスは先頭ビットクロックと同時に発生する 0 = フレーム同期パルスは先頭ビットクロックに先行して発生する bit 16 ENHBUF: 拡張バッファイネーブルビット (1) bit 15 bit 14 bit 13 1 = 拡張バッファを有効にする 0 = 拡張バッファを無効にする ON: SPI モジュール ON ビット 1 = SPI モジュールを有効にする 0 = SPI モジュールを無効にする ON = 1 の場合 DISSDO および DISSDI ビットだけが変更可能です 1:1 の PBCLK 分周比を使っている場合 周辺モジュールの ON ビットをクリアした命令の直後の SYSCLK サイクルでは その周辺モジュールの SFR に対する読み出しまたは書き込みをユーザソフトウェアで実行しないでください 未実装 : 0 を書き込み 読み出しは無視 SIDL: アイドル中停止ビット 1 = CPU がアイドルに移行すると動作を停止する 0 = アイドル中も動作を継続する bit 12 DISSDO: SDOx ピンディセーブルビット 1 = モジュールは SDOx ピンを使わない ( このピンは対応する PORT レジスタによって制御される ) 0 = モジュールは SDOx ピンを制御する bit MODE<32,16>: 32/16 ビット通信選択ビット AUDEN = 1 の場合 : MODE32 MODE16 通信 ビットデータ 32 ビット FIFO 32 ビットチャンネル /64 ビットフレーム ビットデータ 32 ビット FIFO 32 ビットチャンネル /64 ビットフレーム ビットデータ 16 ビット FIFO 32 ビットチャンネル /64 ビットフレーム ビットデータ 16 ビット FIFO 16 ビットチャンネル /32 ビットフレーム AUDEN = 0 の場合 : MODE32 MODE16 通信 1 x 32 ビット ビット ビット bit 9 SMP: SPI データ入力サンプル位相ビット マスタモード (MSTEN = 1) の場合 : 1 = データ出力時間の最後に入力データをサンプリングする 0 = データ出力時間の中間で入力データをサンプリングする スレーブモード (MSTEN = 0) の場合 : SPI をスレーブモードで使う場合 SMP ビットの値は無視されます モジュールは常に SMP = 0 を使い ます bit 8 CKE: SPI クロックエッジ選択ビット 1 = クロックのアクティブ状態からアイドル状態への遷移時にシリアル出力データが変化する (CKP ビッ ト参照 ) 0 = クロックのアイドル状態からアクティブ状態への遷移時にシリアル出力データが変化する (CKP ビッ ト参照 ) フレーム化 SPI モードでは CKE ビットを使いません フレーム化 SPI モード (FRMEN = 1) を使う場合 ユーザはこのビットを 0 に設定する必要があります bit 7 SSEN: スレーブ選択イネーブル ( スレーブモード ) ビット 1 = スレーブモードで SSx ピンを使う 0 = スレーブモードで SSx ピンを使わない ( ポート機能がこのピンを制御する ) bit 6 CKP: クロック極性選択ビット 1 = クロックの HIGH レベルをアイドル状態 LOW レベルをアクティブ状態とする 0 = クロックの LOW レベルをアイドル状態 HIGH レベルをアクティブ状態とする 23 シリアルペリフェラルインターフェイス (SPI) Note 1: 一部のデバイスはこれらのビットを実装していません 詳細は各デバイスのデータシートを参照してく ださい 2: FRMEN = 1 の場合 MSSEN ビットは使いません 3: これらのビットは 拡張バッファモードを有効 (ENHBUF = 1) にしている場合にのみ効力を持ちます 2013 Microchip Technology Inc. DS61106G_JP - p. 23-9

10 PIC32 ファミリリファレンスマニュアル レジスタ 23-1: SPIxCON: SPI 制御レジスタ ( 続き ) bit 5 MSTEN: マスタモードイネーブルビット 1 = マスタモード 0 = スレーブモード bit 4 DISSDI: SDI ディセーブルビット 1 = SPI モジュールは SDIx ピンを使わない ( ポート機能がこのピンを制御する ) 0 = SPI モジュールが SDIx ピンを制御する bit 3-2 STXISEL<1:0>: SPI 送信バッファエンプティ割り込みモードビット (1,3) 11 = バッファがフルではない場合 ( バッファ内に 1 つまたは複数の空きエレメントがある場合 ) に SPIxTXIF をセットする 10 = バッファに 1/2 以上の空き容量がある場合に SPIxTXIF をセットする 01 = バッファが完全にエンプティである場合に SPIxTXIF をセットする 00 = 最後の転送データを SPISR にシフトアウトして送信動作が完了した時点で SPIxTXIF をセットする bit 1-0 SRXISEL<1:0>: SP 受信バッファフル割り込みモードビット (1,3) 11 = バッファがフルである場合に SPIxRXIF をセットする 10 = バッファ容量の 1/2 以上がデータを格納している場合に SPIxRXIF をセットする 01 = バッファがエンプティではない場合に SPIxRXIF をセットする 00 = 受信バッファ内の最後のワードを読み出した ( つまりバッファがエンプティになった ) 時点で SPIxRXIF をセットする Note 1: 一部のデバイスはこれらのビットを実装していません 詳細は各デバイスのデータシートを参照してく ださい 2: FRMEN = 1 の場合 MSSEN ビットは使いません 3: これらのビットは 拡張バッファモードを有効 (ENHBUF = 1) にしている場合にのみ効力を持ちます DS61106G_JP - p Microchip Technology Inc.

11 セクション 23. シリアルペリフェラルインターフェイス (SPI) レジスタ 23-2: SPIxCON2: SPI 制御レジスタ 2 ビットレンジ 31/23/15/7 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 31:24 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 23:16 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 15:8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1 R/W-0 R/W-0 SPISGNEXT FRMERREN SPIROVEN SPITUREN IGNROV IGNTUR 7:0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 AUDEN (1,3) AUDMONO (2) AUDMOD<1:0> (2,4) 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット 0 として読み出し -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知 bit 未実装 : 0 を書き込み 読み出しは無視 bit 15 SPISGNEXT: 受信 FIFO からの読み出しデータ符号拡張ビット 1 = 受信 FIFO からのデータを符号拡張する 0 = 受信 FIFO からのデータを符号拡張しない bit 未実装 : 0 を書き込み 読み出しは無視 bit 12 FRMERREN: FRMERR 割り込みイベントイネーブルビット 1 = フレームエラーはエラー割り込みを生成する 0 = フレームエラーはエラー割り込みを生成しない bit 11 SPIROVEN: SPIROV 割り込みイベントイネーブルビット 1 = 受信オーバーフローはエラー割り込みを生成する 0 = 受信オーバーフローはエラー割り込みを生成しない bit 10 SPITUREN: SPITUR 割り込みイベントイネーブルビット 1 = 送信アンダーランはエラー割り込みを生成する 0 = 送信アンダーランはエラー割り込みを生成しない bit 9 IGNROV: 受信オーバーフロー無視ビット ( オーディオデータ送信用 ) 1 = ROV を重大なエラーと見なさない (ROV 発生中 FIFO 内のデータは受信データによって上書きされない ) 0 = ROV を重大なエラーと見なし SPI 動作を停止する bit 8 IGNTUR: 送信アンダーラン無視ビット ( オーディオデータ送信用 ) 23 シリアルペリフェラルインターフェイス (SPI) 1 = TUR を重大なエラーと見なさず SPIxTXB がエンプティではなくなるまでゼロを送信する 0 = TUR を重大なエラーと見なし SPI 動作を停止する bit 7 AUDEN: オーディオコーデックサポートイネーブルビット (1,3) 1 = オーディオプロトコルを有効にする 0 = オーディオプロトコルを無効にする bit 6-5 未実装 : 0 を書き込み 読み出しは無視 bit 3 AUDMONO: オーディオデータ送信フォーマットビット (2) 1 = オーディオデータはモノラル ( 各データワードを左右両方のチャンネルで送信する ) 0 = オーディオデータはステレオ Note 1: このビットは ON ビット = 0 の場合にのみ書き込み可能です 2: このビットはONビット = 0の場合にのみ書き込み可能であり AUDEN = 1の場合にのみ効力を持ちます 3: オーディオモードを有効 (AUDEN = 1) にすると SPIxCON レジスタ内の下記のビットはモジュールによって内部で設定されます ビットクロック (BCLK) と左 / 右チャンネルクロック (LRCK) の方向 ( 入力または出力 ) は MSTEN ビットに基づいて選択される FRMEN = 1 FRMCNT = 1 SMP = 0 スレーブモードでは MSTEN = 0/FRMSYNC = 1 マスタモードでは MSTEN = 1/FRMSYNC = 0 4: I 2 S モードでは SPIFE = 0 右または左寄せモードでは SPIFE = 1 DSP/PCM モード以外では FRMSYPW = 0 5: 一部のデバイスではこの機能を利用できません 詳細は各デバイスのデータシートを参照してください 2013 Microchip Technology Inc. DS61106G_JP - p

12 PIC32 ファミリリファレンスマニュアル レジスタ 23-2: SPIxCON2: SPI 制御レジスタ 2 ( 続き ) bit 2 未実装 : 0 を書き込み 読み出しは無視 bit 1-0 AUDMOD<1:0>: オーディオプロトコルモードビット (2,4) 11 = PCM/DSP モード 10 = 右寄せモード 01 = 左寄せモード 00 = I 2 S モード (5) Note 1: このビットは ON ビット = 0 の場合にのみ書き込み可能です 2: このビットはONビット = 0の場合にのみ書き込み可能であり AUDEN = 1の場合にのみ効力を持ちます 3: オーディオモードを有効 (AUDEN = 1) にすると SPIxCON レジスタ内の下記のビットはモジュールによって内部で設定されます ビットクロック (BCLK) と左 / 右チャンネルクロック (LRCK) の方向 ( 入力または出力 ) は MSTEN ビットに基づいて選択される FRMEN = 1 FRMCNT = 1 SMP = 0 スレーブモードでは MSTEN = 0/FRMSYNC = 1 マスタモードでは MSTEN = 1/FRMSYNC = 0 4: I 2 S モードでは SPIFE = 0 右または左寄せモードでは SPIFE = 1 DSP/PCM モード以外では FRMSYPW = 0 5: 一部のデバイスではこの機能を利用できません 詳細は各デバイスのデータシートを参照してください DS61106G_JP - p Microchip Technology Inc.

13 セクション 23. シリアルペリフェラルインターフェイス (SPI) レジスタ 23-3: ビットレンジ 31/23/15/7 SPIxSTAT: SPI ステータスレジスタ 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 31:24 U-0 U-0 U-0 R-0 R-0 R-0 R-0 R-0 RXBUFELM<4:0> (1) 23:16 U-0 U-0 U-0 R-0 R-0 R-0 R-0 R-0 TXBUFELM<4:0> (1) 15:8 U-0 U-0 U-0 R/C-0, HS R-0 U-0 U-0 R/C-0,HS FRMERR SPIBUSY SPITUR (1) 7:0 R-0 R/C-0,HS R-0 U-0 R-1 U-0 R-0 R-0 SRMT (12) SPIROV SPIRBE (1) SPITBE SPITBF (1) SPIRBF 凡例 : C = クリア可能ビット HS = ハードウェアでセット R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット 0 として読み出し -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知 bit 未実装 : 0 を書き込み 読み出しは無視 bit RXBUFELM<4:0>: 受信バッファエレメントカウントビット (ENHBUF = 1 の場合にのみ有効 ) (1) FIFO に格納されている受信サンプルの数を示します bit 未実装 : 0 を書き込み 読み出しは無視 bit TXBUFELM<4:0>: 送信バッファエレメントカウントビット (ENHBUF = 1 の場合にのみ有効 ) (1) FIFO 内に残っている送信サンプルの数を示します bit 未実装 : 0 を書き込み 読み出しは無視 bit 12 FRMERR: SPI フレームエラーステータスビット 1 = フレームエラーを検出した 0 = フレームエラーは検出していない FRMERR は FRMEN = 1 の場合にのみ効力を持ちます このビットはハードウェアによってのみセットされます このビットはゼロを書き込む事によってクリアできます ( 命令 SPIxSTATCLR = 1<<12 の使用を推奨 ) SPIxCON レジスタの ON ビットを使ってモジュールを一度無効にしてから再度有効にする事によってクリアする事もできます bit 11 SPIBUSY: SPI 動作ステータスビット 1 = SPI モジュールはトランザクションを処理中 ( ビジー ) 0 = SPI モジュールはアイドル中 bit 10-9 未実装 : 0 を書き込み 読み出しは無視 bit 8 SPITUR: 送信アンダーランビット (1) 1 = 送信バッファでアンダーラン条件が発生した 0 = 送信バッファでアンダーラン条件は発生していないこのビットは フレーム化同期モードでのみ効力を持ちます このビットはハードウェアによってのみセットされます このビットはゼロを書き込む事によってクリアできます ( 命令 SPIxSTATCLR = 1<<8 の使用を推奨 ) SPIxCON レジスタの ON ビットを使ってモジュールを一度無効にしてから再度有効にする事によってクリアする事もできます bit 7 SRMT: シフトレジスタエンプティビット (ENHBUF = 1 の場合にのみ有効 ) (1) bit 6 Note 1: 1 = SPI モジュールシフトレジスタはエンプティ 0 = SPI モジュールシフトレジスタはエンプティではない SPIROV: 受信オーバーフローフラグビット 1 = 新しいデータを完全に受信したが破棄した ( ユーザソフトウェアは SPIxBUF レジスタ内の先に受信したデータをまだ読み出していない ) 0 = オーバーフローは発生していないこのビットはハードウェアによってのみセットされます このビットはゼロを書き込む事によってクリアできます ( 命令 SPIxSTATCLR = 1<<6 の使用を推奨 ) SPIxCON レジスタの ON ビットを使ってモジュールを一度無効にしてから再度有効にする事によってクリアする事もできます 一部のデバイスはこれらのビットを実装していません 詳細は各デバイスのデータシートを参照してください 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p

14 PIC32 ファミリリファレンスマニュアル レジスタ 23-3: SPIxSTAT: SPI ステータスレジスタ ( 続き ) bit 5 SPIRBE: 受信 FIFO エンプティビット (ENHBUF = 1 の場合にのみ有効 ) 1 = RX FIFO はエンプティ (CRPTR = SWPTR) 0 = RX FIFO はエンプティではない (CRPTR < SWPTR) bit 4 未実装 : 0 を書き込み 読み出しは無視 bit 3 SPITBE: SPI 送信バッファエンプティステータスビット (1) 1 = 送信バッファ (SPIxTXB) はエンプティ 0 = 送信バッファ (SPIxTXB) はエンプティではない SPI がデータを SPIxTXB から SPIxSR に転送すると このビットはハードウェアで自動的にセットされます SPIxBUF にデータを書き込むと (SPIxTXB にデータが転送されると ) このビットはハードウェアで自動的にクリアされます bit 2 未実装 : 0 を書き込み 読み出しは無視 bit 1 SPITBF: SPI 送信バッファフルステータスビット (1) bit 0 1 = 送信はまだ開始していない (SPITXB はフル ) 0 = 送信バッファはフルではない標準バッファモードの場合 : コアが SPIBUF にデータを書き込むと ( データが SPITXB に転送されると ) このビットはハードウェアで自動的にセットされます SPI モジュールがデータを SPITXB から SPISR に転送すると このビットはハードウェアで自動的にクリアされます 拡張バッファモードの場合 : このビットは FIFO 内に空き位置がなくなるとセットされます SPIRBF: SPI 受信バッファフルステータスビット 1 = 受信バッファ (SPIxRXB) はフル 0 = 受信バッファ (SPIxRXB) はフルではない標準バッファモードの場合 : SPI モジュールがデータを SPIxSR から SPIxRXB. に転送すると このビットはハードウェアで自動的にセットされます SPIxBUF を読み出すと (SPIxRXB 内のデータが読み出されると ) このビットはハードウェアで自動的にクリアされます 拡張バッファモードの場合 : このビットは FIFO 内に空き位置がなくなるとセットされます Note 1: 一部のデバイスはこれらのビットを実装していません 詳細は各デバイスのデータシートを参照してください DS61106G_JP - p Microchip Technology Inc.

15 セクション 23. シリアルペリフェラルインターフェイス (SPI) レジスタ 23-4: SPIxBUF: SPI バッファレジスタ ビットレンジ 31/23/15/7 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 31:24 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DATA<31:24> 23:16 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DATA<23:16> 15:8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DATA<15:8> 7:0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DATA<7:0> 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット 0 として読み出し -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知 bit 31-0 DATA<31:0>: SPI 送信 / 受信バッファレジスタ送信レジスタ (SPIxTXB) と受信レジスタ (SPIxRXB) のメモリに割り当てられた値として機能します 32 ビットデータモード (MODE<32,16> (SPIxCON<11:10>) = 1x) の場合 : このレジスタの全 32 ビット (SPIxBUF<31:0>) を使って 32 ビットキャラクタを格納します 16 ビットデータモード (MODE<32,16> (SPIxCON<11:10>) = 01) の場合 : このレジスタの下位 16 ビット (SPIxBUF<15:0>) だけを使って 16 ビットキャラクタを格納します 8 ビットデータモード (MODE<32,16> (SPIxCON<11:10>) = 00) の場合 : このレジスタの下位 8 ビット (SPIxBUF<7:0>) だけを使って 8 ビットキャラクタを格納します レジスタ 23-5: ビットレンジ 31/23/15/7 SPIXBRG: SPI baud レートレジスタ 30/22/14/6 29/21/13/5 28/20/12/4 27/19/11/3 26/18/10/2 25/17/9/1 24/16/8/0 23 シリアルペリフェラルインターフェイス (SPI) 31:24 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 23:16 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 15:8 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 BRG<12:8> 7:0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 BRG<7:0> 凡例 : R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット 0 として読み出し -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知 bit 未実装 : 0 を書き込み 読み出しは無視 bit 12-0 BRG<12:0>:baud レート分周比ビット 2013 Microchip Technology Inc. DS61106G_JP - p

16 PIC32 ファミリリファレンスマニュアル 23.3 動作モード SPI モジュールは下記の動作モードを備えます 8/16/32 ビットデータ送信モード 8/16/32 ビットデータ受信モード マスタモードとスレーブモード フレーム化 SPI モード オーディオプロトコルインターフェイスモード Note 1: フレーム化 SPI モードでは SDIx SDOx SSx ピンを全て使います 2: スレーブ選択機能を使う場合も 上記の 4 本のピンを全て使います 3: 標準 SPI モードで CKE = 1 に設定した場合 スレーブ選択機能を必ず有効にして使う必要があります 従って この場合も上記の 4 本のピンを全て使います 4: 標準 SPI モードで DISSDO = 1 に設定し スレーブ選択機能を有効にしない場合 2 本のピン (SDIx と ) だけを使います 5: その他の全ての条件では 3 本のピン (SDIx SDOx ) を使います /16/32 ビット動作 SPI モジュールは SPI バスを介して 3 通りのデータ幅で送受信できます データ幅の選択によって SPI データの最小長さが決まります 例えば 32 ビットのデータ幅を選択した場合 全ての送受信は 32 ビット値で実行されます CPU からの全ての読み / 書きも 32 ビット値で実行されます 従って 最大限のデータスループットが得られるよう アプリケーションソフトウェアで適切なデータ幅を選択する必要があります 2 つの制御ビット MODE32 と MODE16 (SPIxCON<11:10>) は動作モードを定義します これらのビットは MODE<32,16> と表記される場合もあります 実行中に動作モードを変更するには SP モジュールがアイドル状態 ( トランザクションを一切実行していない状態 ) である事が必要です SPI モジュールを OFF (SPIxCON<15> = 0) にしてから動作モードを変更した場合 モジュールを再度 ON にした時点で新しいモードが有効になります また これに関連して下記の点に注意が必要です トランザクションの実行中に MODE<32,16> ビットを変更してはならない SPIxSR から最初にシフトアウトされるビットは動作モードに応じて下記のように異なる - 8 ビットモード : bit 7-16 ビットモード : bit ビットモード : bit 31 いずれのモードでもデータは SPIxSR の bit 0 にシフトインされる ピンにおけるクロックパルス数も動作モードに応じて下記のように異なる - 8 ビットモード : 8 クロック - 16 ビットモード : 16 クロック - 32 ビットモード : 32 クロック バッファモード SPI は標準バッファモードと拡張バッファモードを備えます Note: 一部のデバイスだけが拡張バッファモードを備えます 詳細は各デバイスのデータシートを参照してください 標準バッファモード SPI データ受信 / 送信バッファ (SPIxBUF) レジスタは 実際には 2 つの内部レジスタ ( 送信バッファレジスタ (SPIxTXB) と受信バッファレジスタ (SPIxRXB)) により構成されます これら 2 つの単方向レジスタは SPIxBUF の SFR アドレスを共有します バイト / ワードの受信が完了すると 受信データは SPIxSR から SPIxRXB に転送され SPIxRBF フラグがセットされます SPIxRBF ビットは ソフトウェアが SPIxBUF バッファを読み出すとクリアされます ソフトウェアが SPIxBUF にデータを書き込むと そのデータは SPIxTXB に転送され SPIxTBF ビットがハードウェアによってセットされます SPIxTBF フラグは データが SPIxSR から送信されるとクリアされます SPI モジュールは 送信および受信動作をダブルバッファリングする事により バックグラウンドで連続的にデータを転送できます SPIxSR では送信と受信が同時に発生します DS61106G_JP - p Microchip Technology Inc.

17 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-8: 拡張バッファモード SPI 制御 (SPIxCON<16>) レジスタの拡張バッファイネーブル (ENHBUF) ビットをセットすると 拡張バッファモードが有効になります 拡張バッファモードでは 2 つの 128 ビット FIFO バッファを送信バッファ (SPIxTXB) と受信バッファ (SPIxRXB) として使います 受信および送信 FIFO には SPIxBUF を介してアクセスできます SPISR バッファでのデータ送受信方法は標準バッファモードと同じです FIFO の深さは SPI 制御 (SPIxCON<11:10>) レジスタの 32/16 ビット通信選択 (MODE<32,16>) ビットで選択したデータ幅によって決まります MODE フィールドで 32 ビットデータ幅を選択した場合の FIFO の深さは 4 段 16 ビットデータ幅を選択した場合は 8 段 8 ビットデータ幅を選択した場合は 16 段です 送信 FIFO バッファ内の全てのエレメントにデータが格納されると ( バッファがフルになると ) SPITBF ステータスビットがセットされます このビットは 1 つまたは複数のエレメントが空き状態になるとクリアされます 受信 FIFO バッファ内の全てのエレメントにデータが格納されると ( バッファがフルになると ) SPIRBF ステータスビットがセットされます このビットは ソフトウェアが SPIxBUF バッファを読み出すとクリアされます 送信 FIFO バッファ内の全てのエレメントが空き状態になると ( バッファがエンプティになると ) SPITBE ステータスビットがセットされます それ以外の場合 このビットはクリアされます 受信 FIFO バッファ内の全てのエレメントが空き状態になると ( バッファがエンプティになると ) SPIRBE ビットがセットされます それ以外の場合 このビットはクリアされます シフトレジスタエンプティ (SRMT) ビットは 拡張バッファモードにおいてのみ効力を持ち シフトレジスタがエンプティになるとセットされ それ以外の場合はクリアされます 受信 FIFO 内の空きエレメントの読み出しまたは送信 FIFO 内のデータ格納済みエレメントへの上書きに対するアンダーラン / オーバーフロー保護措置は備えていません しかし SPIxSTAT レジスタの送信アンダーランステータスビット (SPITUR) および受信オーバーフローステータスビット (SPIROV) をその他のステータスビットと一緒に監視する事ができます SPI ステータス (SPIxSTAT<28:24>) レジスタ内の受信バッファエレメントカウントビット (RXBUFELM<4:0>) は 受信 FIFO 内の未読み出しエレメントの数を示します SPI ステータス (SPIxSTAT<20:16>) レジスタ内の送信バッファエレメントカウントビット (TXBUFELM<4:0>) は 送信 FIFO 内の未送信エレメントの数を示します マスタモードとスレーブモード SPI マスタ / スレーブ接続図 PIC32 [SPI Master] SDOx SDIx PROCESSOR 2 [SPI Slave] 23 シリアルペリフェラルインターフェイス (SPI) Serial Receive Buffer (SPIxRXB) (2) Serial Receive Buffer (SPIxRXB) Shift Register (SPIxSR) SDIx SDOx Shift Register (SPIxSR) MSb LSb MSb LSb Serial Transmit Buffer (SPIxTXB) (2) Serial Transmit Buffer (SPIxTXB) SPI Buffer (SPIxBUF) Serial Clock SPI Buffer (SPIxBUF) GPIO/SSx MSTEN (SPIxCON<5>)=1 SSEN (SPIxCON<7>)=1 and MSTEN (SPIxCON<5>)=0 Note 1: スレーブモード動作では SSx ピンを必ずしも使う必要はありません 2: ユーザは送信データを SPIxBUF に書き込み 受信データを SPIxBUF から読み出す必要あります SPIxTXB お よび SPIxRXB レジスタは共に SPIxBUF のメモリアドレスを共有します SSx (1) 2013 Microchip Technology Inc. DS61106G_JP - p

18 PIC32 ファミリリファレンスマニュアル マスタモード動作 SPI モジュールをマスタモード動作向けに設定する手順は以下の通りです 1. 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビットをクリアして SPI モジュールを停止 / リセットする 3. 受信バッファをクリアする 4. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 5. SPI 割り込みを使わない場合 このステップを飛ばしてステップ 6 に進む SPI 割り込み を使うなら下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 6. baud レートレジスタ (SPIxBRG) を設定する 7. SPIROV ビット (SPIxSTAT<6>) をクリアする 8. SPIxCON レジスタに適切な値を書き込み MSTEN ビット (SPIxCON<5>) を 1 にセッ トする 9. ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 10. 送信データを SPIxBUF レジスタに書き込む データを SPIxBUF レジスタに書き込むと送 信 ( および受信 ) がただちに始まる Note: モードをスレーブからマスタに変更する場合 あらかじめ SPI デバイスを OFF にしておく必要があります ( スレーブ選択モードを使う場合 SSx ピンまたは別の GPIO ピンを使ってスレーブの SSx 入力を制御します このピンはソフトウェアで制御する必要があります ) マスタモードでは PBCLK を分周してシリアルクロックとして使います 分周比は SPIxBRG レジスタの設定に基づきます シリアルクロックは ピンを介してスレーブデバイスへ出力します クロックパルスは送信すべきデータが存在する場合にのみ生成します 例外としてフレーム化モードではクロックを常時生成します 詳細は SPI マスタモードのクロック周波数 を参照してください マスタモードで SPI 制御レジスタ (SPIxCON<28>) のマスタモードスレーブ選択イネーブル (MSSEN) ビットをセットすると スレーブ選択信号 (SS) を自動的に駆動できます このビットをクリアすると マスタモードでのスレーブ選択信号サポートは無効になります FRMPOL ビット (SPIxCON<29>) はマスタモードでのスレーブ選択信号の極性を指定します Note: MSSEN ビットは一部のデバイスだけが備えます 詳細は各デバイスのデータシートを参照してください SPI フレーム化モードを有効 (FRMEN = 1) にしている場合 このビットをセットしないでください MSSEN ビットを備えないデバイスでは 非フレーム化 SPI モードでのスレーブ選択信号は ソフトウェア制御の下に SSx ピンまたは他の汎用 I/O ピンを使って生成する必要があります CKP (SPIxCON<6>) および CKE (SPIxCON<8>) ビットは クロックのどちらのエッジでデータ送信が発生するのかを指定します Note: CKE または CKP ビットを変更する場合 あらかじめ SPI デバイスを OFF にしておく必要があります そうしないと デバイスの挙動は保証されません 送信するデータは SPIxBUF レジスタに書き込み 受信したデータは SPIxBUF レジスタから読み出します マスタモードにおける SPI モジュールの動作は以下の通りです 1. モジュールをマスタモード動作向けに設定して有効にすると 送信データが SPIxBUF レジスタに書き込まれ SPITBE ビット (SPIxSTAT<3>) がクリアされる 2. SPIxTXB の内容がシフトレジスタ (SPIxSR) に転送され ( 図 23-8 参照 ) モジュールは SPITBE ビットをセットする 3. 連続した 8/16/32 発のクロックパルスにより 送信データの 8/16/32 ビットが SPIxSR から SDOx ピンへシフトアウトされ 同時に SDIx ピン上のデータが SPIxSR へシフトインされる DS61106G_JP - p Microchip Technology Inc.

19 セクション 23. シリアルペリフェラルインターフェイス (SPI) 4. 転送が完了すると下記が発生する a) SPIxRXIF 割り込みフラグがセットされる SPI 割り込みを有効にするには SPIxRXIE 割り込みイネーブルビットをセットする必要がある SPIxRXIF フラグビットはハードウェアで自動的にクリアされない b) 送信および受信動作が完了すると SPIxSR の内容が SPIxRXB に転送される c) モジュールは SPIRBF ビット (SPIxSTAT<0>) をセットし 受信バッファがフルである事を示す ユーザコードが SPIxBUF を読み出すと ハードウェアが SPIRBF ビットをクリアする 拡張バッファモードの場合 SPIxRXB FIFO バッファが完全にエンプティになると SPIRBE ビット (SPIxSTAT<5>) がセットされる このビットは バッファがエンプティではなくなるとクリアされる 5. SPI モジュールが SPIxSR から SPIxRXB にデータを転送しようとした時に SPIRBF ビットがセットされていると ( 受信バッファがフルだと ) モジュールは SPIROV ビット (SPIxSTAT<6>) をセットしてオーバーフロー条件が発生した事を示す 6. SPITBE ビット (SPIxSTAT<3>) がセットされていれば ユーザソフトウェアはいつでも送信データを SPIxBUF に書き込める SPIxSR が先に書き込まれたデータをシフトアウトしている間に SPIxBUF に次のデータを書き込めるため データは連続的に送信できる 拡張バッファモードの場合 SPIxTXB FIFO バッファが完全にフルになると SPITBF ビット (SPIxSTAT<1>) がセットされる このビットは バッファがフルではなくなるとクリアされる Note: ユーザソフトウェアで SPIxSR レジスタに直接書き込む事はできません SPIxSR レジスタへの書き込みは 常に SPIxBUF レジスタを経由する必要があります 例 23-1: 16 ビット SPI マスタモードの初期化コード /* The following code example will initialize the SPI1 in Master mode. It assumes that none of the SPI1 input pins are shared with an analog input.if so, the AD1PCFG and corresponding TRIS registers have to be properly configured. */ intrdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL=3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1BRG=0x1; // use FPB/4 clock frequency SPI1STATCLR=0x40; // clear the Overflow SPI1CON=0x8220; // SPI ON, 8 bits transfer, SMP=1, Master mode 23 シリアルペリフェラルインターフェイス (SPI) SPI1BUF= A ; // from now on, the device is ready to transmit and receive data // transmit an A character 2013 Microchip Technology Inc. DS61106G_JP - p

20 PIC32 ファミリリファレンスマニュアル 図 23-9: 8 ビットモードでの SPI マスタモード動作 (MODE32 = 0, MODE16 = 0) User writes to SPIxBUF SPITBE (CKP=0 CKE=0) SPIxTXB to SPIxSR (3) User writes new data during transmission (CKP=1 CKE=0) (CKP=0 CKE=1) 4 Clock modes (clock output at the pin in Master mode) (1) (CKP=1 CKE=1) SSx SDOx bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (CKE=0) SDOx bit 7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 (CKE=1) (SMP=0) bit7 bit0 SDIx (2) Input Sample (2) (SMP=0) SDIx (SMP=1) bit7 bit0 Two modes available for SMP control bit (4) Input Sample (SMP=1) SPIxRXIF SPIRBF (SPIxSTAT<0>) approximately 2 sysclk latency to set SPIxRXIF flag bit SPIxSR moved into SPIxRXB user reads SPIxBUF Note 1: この図には 4 種類の SPI クロックモードにおける CKP (SPIxCON<6>) ビットと CKE (SPIxCON<8>) ビットの機能を示しています 実際には この中の 1 つのモードだけを選択します 2: 説明のため SDI と入力サンプルは SMP ビット (SPIxCON<9>) が 1 の場合と 0 の場合の両方を記載しています 実際には どちらか一方の SMP ビット設定を選択します 3: 未完了の送信が存在しなければ ユーザアプリケーションが SPIxBUF にデータを書き込むと ただちに SPIxTXB の内容が SPIxSR に転送されます 4: 図は 8 ビットモードでの動作を示しています 16 ビットおよび 32 ビットモードの動作も同様です DS61106G_JP - p Microchip Technology Inc.

21 セクション 23. シリアルペリフェラルインターフェイス (SPI) スレーブモード動作 SPI モジュールをスレーブモード動作向けに設定する手順は以下の通りです 1. 割り込みが有効になっている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビットをクリアして SPI モジュールを停止 / リセットする 3. 受信バッファをクリアする 4. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 5. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 6. SPIROV ビット (SPIxSTAT<6>) をクリアする 7. SPIxCON レジスタに適切な値を書き込み MSTEN ビット (SPIxCON<5>) を 0 にクリ アする 8. ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 9. マスタがシリアルクロックの供給を開始すると 送信 ( および受信 ) がただちに始まる Note: モードをマスタからスレーブに切り換えるには SPI モジュールをあらかじめ OFF にしておく必要があります スレーブモードでは 外部から ピンに供給されるクロックパルスに従ってデータを送受信します CKP ビット (SPIxCON<6>) と CKE ビット (SPIxCON<8>) は クロックのどちらのエッジでデータ送信が発生するのかを指定します 送信するデータは SPIxBUF レジスタに書き込み 受信したデータは SPIxBUF レジスタから読み出します 拡張バッファモードを含むモジュールのその他の動作はマスタモードと同じです スレーブモードの追加機能 スレーブモードは下記の追加機能を備えます スレーブ選択同期 SSx ピンを使う事で同期スレーブモードが可能になります スレーブモードで SSEN ビット (SPIxCON<7>) をセットすると SSx ピンが LOW 状態に駆動されている場合にのみ送受信が有効になります SSx ピンを入力として機能させる必要があるため このピンを使ってポート出力または他の周辺モジュール出力を駆動しない事が必要です SSEN ビットをセットした状態で SSx ピンが HIGH に駆動されると モジュールが送信の途中であっても SDOx ピンは駆動されなくなり 3 ステートになります 中止された送信は 再び SSx ピンが LOW に駆動された時に SPIxTXB レジスタで保持されていたデータを使って再試行されます SSEN ビットをセットしなければ SSx ピンはスレーブモードのモジュール動作に影響しません SPITBE ステータスフラグの動作 スレーブモードでは SPITBE ビット (SPIxSTAT<3>) の機能がマスタモードとは異なります スレーブモード動作の各種設定に応じて SPITBE は下記のように機能します - SSEN (SPIxCON<7>) がクリアされている場合 ユーザコードが SPIxBUF にデータを書き込むと SPITBE はクリアされます このビットは モジュールが SPIxTXB の内容を SPIxSR に転送するとセットされます これはマスタモードにおける SPITBE ビットの機能と同様です - SSEN がセットされている場合 やはりユーザコードが SPIxBUF にデータを書き込むと SPITBE はクリアされますが SPIx モジュールがデータ送信を完了するまでセットされません このため SSx ピンが HIGH に遷移して中止された送信を後で再試行できます つまり 各データワードは全てのビットがレシーバへ送信されるまで SPIxTXB で保持されるという事です 23 シリアルペリフェラルインターフェイス (SPI) Note: フレーム化モードで動作する場合 スレーブ選択は使えません 2013 Microchip Technology Inc. DS61106G_JP - p

22 PIC32 ファミリリファレンスマニュアル 例 23-2: 16 ビット SPI スレーブモードの初期化コード /* The following code example will initialize the SPI1 in Slave mode. It assumes that none of the SPI1 input pins are shared with an analog input.if so, the AD1PCFG and corresponding TRIS registers have to be properly configured. */ int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL=3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON=0x8000; // SPI ON, 8 bits transfer, Slave mode // from now on, the device is ready to receive and transmit data 図 23-10: 8 ビットモードでの SPI スレーブモード動作 ( スレーブ選択ピンは無効 MODE32 = 0 MODE16 = 0 SSEN = 0) Input (1) (CKP=0 CKE=0) Input (1) (CKP=1 CKE=0) SDOx Output bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SDIxInput (SMP=0) bit7 bit0 (3) Input Sample (SMP=0) User writes to SPIxBUF (2) SPITBE SPIxSRto SPIxRXB SPIRBF SPIxRXIF Approximately2SYSCLKlatencytoset SPIxRXIFflagbit Note 1: この図には 4 種類の SPI クロックモードにおける CKP (SPIxCON<6>) ビットと CKE (SPIxCON<8>) ビットの機能を示しています モジュールの動作には CKP ビットと CKE ビットの任意の組み合わせ ( 全部で 4 通り ) のいずれかを選択できます 2: 未完了または実行中の送信が存在しなければ ユーザアプリケーションが SPIxBUF にデータを書き込むとただちに SPIxBUF の内容が SPIxSR に転送されます 3: 図には 8 ビットモードでの動作を示しています 16 ビットおよび 32 ビットモードの動作も同様です DS61106G_JP - p Microchip Technology Inc.

23 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-11: 8 ビットモードでの SPI スレーブモード動作 ( スレーブ選択ピンは有効 MODE32 = 0 MODE16 = 0 SSEN = 1) SSx (1) (CKP=0 CKE=0) (CKP=1 CKE=0) User Writes SPIxBUF to to SPIxBUF SPIxSR SPITBE (2) SDOx bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SDIx (SMP=0) Input Sample (SMP=0) SPIxRXIF SPIRBF bit7 SPIxSRto SPIxBUF bit0 (3) ~2SYSCLK latency L 23 シリアルペリフェラルインターフェイス (SPI) UserReads SPIxBUF Note 1: SSEN (SPIxCON1<7>) ビットを 1 にセットした場合 スレーブモードでの送受信を有効にするには SSx ピ ンを LOW に駆動する必要があります 2: 全てのビットが送信されるまでSPITBE (SPIxSTAT<3>) はセットされず 送信データはSPIxTXBで保持されます 3: 図には 8 ビットモードでの動作を示しています 16 ビットおよび 32 ビットモードの動作も同様です 2013 Microchip Technology Inc. DS61106G_JP - p

24 PIC32 ファミリリファレンスマニュアル SPI エラー処理 新しいデータワードがシフトレジスタ (SPIxSR) にシフトインされた時点で ユーザソフトウェアが受信レジスタ (SPIxRXB) に先に書き込まれた内容を読み出し終えていない場合 SPIROV ビット (SPIxSTAT<6>) がセットされます この場合 モジュールは新しく受信したデータを SPIxSR から SPIxRXB に転送しません SPIROV ビットがクリアされるまで 後続のデータ受信は無効になります モジュールは SPIROV ビットを自動的にクリアしないため ユーザソフトウェアでクリアする必要があります SPIx 受信専用動作 DISSDO 制御ビット (SPIxCON<12>) をセットすると SDOx ピンでの送信が無効になります これを使って SPIx モジュールを受信専用動作モードに設定できます DISSDO ビットをセットすると SDOx ピンは対応するポート機能により制御されます DISSDO ビットの機能は全ての SPI 動作モードで使えます フレーム化 SPI モード SPI モジュールは マスタおよびスレーブのどちらの動作モードでもごく基本的なフレーム化 SPI プロトコルをサポートします SPI モジュールは フレーム化 SPI モードをサポートする下記の機能を備えます フレーム化 SPI モードは FRMEN 制御ビット (SPIxCON<31>) で有効にします これを有効にした場合 フレーム同期パルスの入力または出力ピンとして SSx ピンを使います SSEN (SPIxCON<7>) の状態は無視されます FRMSYNC 制御ビット (SPIxCON<30>) は SSx ピンの方向 ( 入力または出力 ) を指定します この設定により そのモジュールがフレーム同期パルスを受信するのか生成するのかが決まります FRMPOL 制御ビット (SPIxCON<29>) は 1 SPI クロックサイクルを決めるフレーム同期パルスの極性を指定します FRMSYPW 制御ビット (SPIxCON<27>) をセットすると フレーム同期パルス幅を 1 キャラクタに設定できます Note: 一部のデバイスは FRMSYPW ビットを備えていません 詳細は各デバイスのデータシートを参照してください FRMCNT<2:0> 制御ビット (SPIxCON<26:24>) は 1 フレーム同期パルスあたりの送信データキャラクタ数を指定します SPI モジュールは下記のフレーム化 SPI モードをサポートします フレーム化マスタモード SPI モジュールはフレーム同期パルスを生成し SSx ピンを使ってこのパルスを他のデバイスに供給します フレーム化スレーブモード SPI モジュールは SSx ピンを介して外部から供給されるフレーム同期パルスを使います フレーム化 SPI モードは フレーム化しない通常のマスタおよびスレーブモードと組み合わせて使えます 従って 下記のフレーム化 SPI 構成が可能です SPI マスタモードとフレームマスタモード SPI マスタモードとフレームスレーブモード SPI スレーブモードとフレームマスタモード SPI スレーブモードとフレームスレーブモードこれら 4 通りのモードにより SPIx モジュールでどのクロック ( シリアルクロック フレーム化同期パルス ) を生成するかが決まります ENHBUF ビット (SPIxCON<16>) では フレーム化 SPI モードで使うバッファモード ( 標準または拡張 ) を選択できます また SPI モジュールをフレーム化 SPI モードで使うと 外部のオーディオ DAC/ADC およびコーデックデバイスに接続できます DS61106G_JP - p Microchip Technology Inc.

25 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-12: SPI マスタ / フレームマスタの接続図 PIC32 [SPI Master, Frame Master] SDOx SDIx PROCESSOR 2 [SPI Slave, Frame Slave] Serial Receive Buffer (SPIxRXB) (3) Serial Receive Buffer (SPIxRXB) Shift Register (SPIxSR) SDIx SDOx Shift Register (SPIxSR) MSb LSb MSb LSb Serial Transmit Buffer (SPIxTXB) (3) Serial Transmit Buffer (SPIxTXB) SPI Buffer (SPIxBUF) SSx Serial Clock Frame Sync Pulse (1,2) Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送信 / 受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) 3: SPIxTXB および SPIxRXB レジスタは 共に SPIxBUF レジスタのメモリアドレスを共有します SSx SPI Buffer (SPIxBUF) フレーム化 SPI モードにおける ピンの動作 FRMEN (SPIxCON<31>) = 1 かつ MSTEN (SPIxCON<5>) = 1 の場合 ピンは出力として機能し フリーランニングの SPI クロックを出力します FRMEN = 1 かつ MSTEN = 0 の場合 ピンは入力として機能します ピンにはフリーランニングの源クロックを供給する必要があります クロックの極性は CKP ビット (SPIxCON<6>) で選択します フレーム化 SPI モードでは CKE ビット (SPIxCON<8>) を使いません CKE が 0 である場合 フレーム同期パルス出力と SDOx データ出力の状態は ピンのクロックパルス立ち上がりエッジに同期して変化します SDIx 入力ピンにおける入力データは シリアルクロック立ち下がりエッジに同期してサンプリングされます CKP が 1 である場合 フレーム同期パルス出力と SDOx データ出力の状態は ピンのクロックパルス立ち下がりエッジに同期して変化します SDIx 入力ピンにおける入力データは シリアルクロック立ち上がりエッジに同期してサンプリングされます フレーム化 SPI モードにおける SPI バッファの動作 FRMSYNC (SPIxCON<30>) = 0 の場合 SPIx モジュールはフレームマスタモードで動作します このモードでは ユーザソフトウェアが送信データを SPIxBUF に書き込むと ( すなわち SPIxTXB レジスタに送信データが書き込まれると ) モジュールがフレーム同期パルスの生成を開始します フレーム同期パルスの終端で SPIxTXB の内容が SPIxSR に転送され データの送受信が始まります FRMSYNC = 1 の場合 モジュールはフレームスレーブモードで動作します このモードでは 外部ソースがフレーム同期パルスを生成します モジュールがフレーム同期パルスを検出すると SPIxTXB レジスタの内容が SPIxSR に転送され データ送受信が始まります ユーザは 同期パルスを受信する前に SPIxBUF に適切な送信データを書き込む必要があります 23 シリアルペリフェラルインターフェイス (SPI) Note: フレーム同期パルスを受信すると SPIxBUF にデータが書き込まれたかどうかに関係なく送信が始まります 書き込みを実行しなかった場合 ゼロが送信されます SPI マスタ / フレームマスタモード 2013 Microchip Technology Inc. DS61106G_JP - p

26 PIC32 ファミリリファレンスマニュアル このフレーム化 SPI モードを有効にするには MSTEN ビット (SPIxCON<5>) と FRMEN ビット (SPIxCON<31>) を 1 にセットし FRMSYNC ビット (SPIxCON<30>) を 0 にクリアします このモードでは モジュールが送信中かどうかに関係なく シリアルクロックは ピンで常時出力されます SPIxBUF が書き込まれると クロックの次の送信エッジで SSx ピンがアクティブ状態 (FRMPOL ビット (SPIxCON<29>) で定義 ) に駆動されます SSx ピンは 1 クロックサイクル間 HIGH になります モジュールは の次の送信エッジでデータの送信を開始します ( 図 参照 ) この動作モードにおける信号の方向を示した接続図を図 に示します 図 23-13: SPI マスタ / フレームマスタ (MODE32 = 0 MODE16 = 1 SPIFE = 0 FRMPOL = 1) (CKP=1) (CKP=0) SSx SDOx bit15 bit14 bit13 bit12 SDIx bit15 bit14 bit13 bit12 Write to SPIxBUF Pulse Generated at SSx Receive Samples at SDIx SPI マスタ / フレームスレーブモードこのフレーム化 SPI モードを有効にするには MSTEN ビット (SPIxCON<5>) FRMEN ビット (SPIxCON<31>) FRMSYNC ビット (SPIxCON<30>) を 1 にセットします SSx ピンは入力として機能し その状態は SPI クロックのサンプリングエッジに同期してサンプリングされます このピンのアクティブ状態 (FRMPOL ビット (SPIxCON<29>) で定義 ) を検出すると SPI クロックの次の送信エッジでデータを送信します ( 図 参照 ) 送信が完了すると割り込みフラグ SPIxIF がセットされます ユーザは SSx ピンでアクティブ信号を受信する前に適切なデータを SPIxBUF に書き込む必要があります この動作モードにおける信号の方向を示した接続図を図 に示します 図 23-14: SPI マスタ / フレームスレーブ (MODE32 = 0 MODE16 = 1 SPIFE = 0 FRMPOL = 1) (CKP=1) SCK (CKP=0) FSYNC SDO SDI bit15 bit14 bit13 bit12 bit15 bit14 bit13 bit12 Write to SPIxBUF Sample SSx Pin for Frame Sync Pulse Receive Samples at SDIx DS61106G_JP - p Microchip Technology Inc.

27 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-15: SPI マスタ / フレームスレーブの接続図 PIC32 [SPI Master, Frame Slave] SDOx SDIx PROCESSOR2 [SPI Slave, Frame Master] SDIx SSx Serial Clock Frame Sync Pulse (1,2) SDOx SSx Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) SPI スレーブ / フレームマスタモードこのフレーム化 SPI モードを有効にするには MSTEN ビット (SPIxCON<5>) を 0 にクリアし FRMEN ビット (SPIxCON<31>) を 1 にセットし FRMSYNC ビット (SPIxCON<30>) を 0 にクリアします スレーブモードでは SPI クロックは外部から常時供給されます FRMSYNC ビットをクリアすると SSx ピンは出力として機能します 従って SPIBUF が書き込まれると モジュールは SPI クロックの次の送信エッジで SSx ピンをアクティブ状態 (FRMPOL ビット (SPIxCON<29>) で定義 ) に駆動します SSx ピンは 1 SPI クロックサイクル間アクティブ状態に駆動されます データ送信は次の SPI クロック送信エッジで始まります この動作モードにおける信号の方向を示した接続図を図 に示します 図 23-16: SPI スレーブ / フレームマスタの接続図 PIC32 [SPI Slave, Frame Master] SDOx SDIx Serial Clock PROCESSOR2 [SPI Master, Frame Slave] SDIx SDOx 23 シリアルペリフェラルインターフェイス (SPI) SSx Frame Sync Pulse (1,2) SSx Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) 2013 Microchip Technology Inc. DS61106G_JP - p

28 PIC32 ファミリリファレンスマニュアル SPI スレーブ / フレームスレーブモードこのフレーム化 SPI モードを有効にするには MSTEN ビット (SPIxCON<5>) を 0 にクリアし FRMEN ビット (SPIxCON<31>) を 1 にセットし FRMSYNC ビット (SPIxCON<30>) を 1 にクリアします 従って ピンと SSx ピンはどちらも入力として機能します SSx ピンの状態は SPI クロックのサンプルエッジでサンプリングされます SSx ピンでアクティブ状態 (FRMOPOL ビット (SPIxCON<29>) で定義 ) を検出すると の次の送信エッジでデータを送信します この動作モードにおける信号の方向を示した接続図を図 に示します 図 23-17: SPI スレーブ / フレームスレーブの接続図 PIC32 [SPI Slave, Frame Slave] SDOx PROCESSOR2 [SPI Master, Frame Master] SDIx SDIx SSx Serial Clock Frame Sync Pulse ((1,2,3) SDOx SSx Note 1: フレーム化 SPI モードでは SSx ピンを使ってフレーム同期パルスを送受信します 2: フレーム化 SPI モードは 4 本のピンの全てを使います ( つまり SSx ピンを必ず使います ) 3: スレーブデバイスとしてフレーム化 SPI モードを使う場合 スレーブ選択は使えません DS61106G_JP - p Microchip Technology Inc.

29 セクション 23. シリアルペリフェラルインターフェイス (SPI) SPI マスタモードのクロック周波数 SPI モジュールでは SPIxBRG レジスタを使って baud レートの生成を柔軟に設定できます baud レートは読み書き可能な SPIxBRG レジスタを使って指定します SPI に供給される周辺モジュール用クロック (PBCLK) は CPU コアクロックを分周したクロックです このクロックは SPIxBRG. レジスタに書き込まれた値に基づいてさらに分周されます PBCLK を分周して生成される クロックのデューティ比は 50% です このクロックは ピンを介して外部デバイスに供給されます Note: 非フレーム化 SPI モードでは クロックはフリーランニングではありません つまり SPIxBUF にデータが書き込まれた時にだけ 8/16/32 個のパルスを生成します しかし フレーム化モードではクロックを常時生成します 式 23-1 に SPIxBRG レジスタの設定と クロック周波数の関係を示します 式 23-1: F SCK F PB = SPIxBRG + 1 設定可能な最大 baud レートは FPB/2 (SPIxBRG = 0) 最小 baud レートは FPB/1024 です 表 23-4 に SPI クロック周波数 () の設定例を示します 表 23-4: SPIxBRG の設定 FPB = 80 MHz FPB = 72 MHz FPB = 60 MHz FPB = 50 MHz FPB = 40 MHz FPB = 25 MHz FPB = 20 MHz FPB = 10 MHz Note: 周波数の設定例 MHz MHz MHz MHz MHz MHz MHz 5.00 MHz 2.5 MHz 2.25 MHz 1.88 MHz 1.56 MHz 1.25 MHz 一部のクロックレートはサポートされません 詳細は 各デバイスデータシート内の 電気的特性 に記載している SPI タイミング仕様を参照してください 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p

30 PIC32 ファミリリファレンスマニュアル 23.4 オーディオプロトコルインターフェイスモード SPI モジュールを使うと PIC32 マイクロコントローラを現存するほとんどのコーデックデバイスに接続してオーディオソリューションを提供できます SPI モジュールは 4 本の標準 I/O ピンを使ってオーディオプロトコル機能をサポートします オーディオプロトコルインターフェイスモードには下記の 4 本のピンを使います SDIx: サンプルデジタルオーディオデータ (ADCDAT) を受信するシリアルデータ入力 SDOx: デジタルオーディオデータ (DACDAT) を送信するシリアルデータ出力 : シリアルクロック ( ビットクロックとも呼ぶ ) (BCLK) SSx: 左 / 右チャンネルクロック (LRCK) BCLK はモジュールの入出力データを駆動するために必要なクロックを提供し LRCK はプロトコルモードに基づくフレームの同期を提供します 一部のコーデックでは シリアルクロック (SCK) を Baud/ クロック (BCLK) と呼びます 以下では コーデックの命名規則に従って 信号 SSx を LRCK と表記します SPI モジュールは オーディオプロトコルマスタモードとオーディオプロトコルスレーブモードで動作できます マスタモードのモジュールは ピンで BCLK を生成し SSx ピンで LRCK を生成します 特定のデバイスでは スレーブモードで動作する場合に SPI モジュールはこれら 2 つのクロックをマスタモードで動作する I 2 S パートナーから受け取ります マスタモードの場合 SPI モジュールは各種の内部クロック源 ( プライマリクロック PBCLK USB クロック FRC 等 ) からのマスタクロック (MCLK) を使って内部でクロックを生成できます 加えて SPI モジュールはコーデックデバイスに MCLK を供給できます ( これは一般的な要件です ) オーディオプロトコルモードを開始するには 最初に ON ビット (SPIxCON<15>) を 0 にクリアしてモジュールを無効にしておく必要があります 次に AUDEN ビット (SPIxCON2<7>) を 1 にセットし 最後に ON ビットを 1 にセットしてモジュールを再び有効にします モジュールをマスタモードに設定した場合 オーディオプロトコルの開始から 1 SCK 周期以内に SCK および LRCK パルスの前縁が出力されます シリアルデータをシフトインまたはシフトアウトするタイミングは AUDMOD<1:0> ビット (SPIxCON2<1:0>) で設定されているプロトコルモードによって決まります 送信 FIFO がエンプティであればゼロが送信されます スレーブモードの場合 LRCK パルスの前縁を検出するまで モジュールは送信 FIFO の内容を送信せずに SDO でゼロを出力します このエッジを検出すると モジュールはデータの受信を始めます (SDI が無効にされていない場合 ) モジュールは FIFO がエンプティである限りゼロを送信し続けます スレーブモードでもマスタモードでも SPI モジュールは起動時に送信 FIFO のアンダーランを生成しません これにより ソフトウェアは SPI と DMA をセットアップした後に SPI のオーディオプロトコルを ON にし 次いでエラーを生じる事なく DMA を ON にできます 送信 FIFO (SPIxBUF) への最初の書き込みが発生した時点で SPI はアンダーランの検出と生成を有効にします DMA が有効になるまで受信 FIFO をエンプティ状態に保つために DISSDI ビット (SPIxCON<4>) は 1 にセットする必要があります DMA を有効にした後に DISSDI ビットを 0 にクリアして受信を開始します マスタモード PIC32 をオーディオプロトコルマスタモードに設定するには MSTEN ビット (SPIxCON<5>) と AUDEN ビット (SPIxCON2<7>) を 1 にセットします マスタモードは下記の特性を持ちます ON ビット (SPIxCON<15>) = 1 であれば デバイスは SCK パルスと LRCK パルスを生成する 送信データの有無に関係なく SPI モジュールは LRCK および SCK パルスを常時生成する 送信 FIFO がエンプティであっても SPI モジュールは 1 SCK 周期以内に LRCK および SCK パルスの前縁を生成し シリアルデータは常時シフトインおよびシフトアウトされる図 に マスタモードにおける標準的なマスタ - スレーブ接続を示します DS61106G_JP - p Microchip Technology Inc.

31 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-18: PIC32 がマスタとして動作し 内部でクロックを生成して BCLK と LRCK を出力する PIC32 [SPI Master] BCLK Codec [Slave] SSx LRCK Internal Clock SDOx SDIx DACDAT ADCDAT スレーブモード SPI モジュールをオーディオプロトコルスレーブモードに設定するには MSTEN ビット (SPIxCON<5>) を 0 にクリアし AUDEN ビット (SPIxCON2<7>) を 1 にセットします スレーブモードは下記の特性を持ちます ON ビット (SPIxCON<15>) = 1 であれば デバイスは SCK および LRCK パルスを受信する SSPI モジュールは LRCK ( 左チャンネルの先頭エッジ ) を受信するまでデータをシフトアウトせずに SDO でゼロを出力し SDI にデータをシフトインしない DISSDI ビット (SPIxCON<4>)= 0 であれば モジュールは LRCK パルスの前縁を受信した時点でデータ受信を始め 送信 FIFO がエンプティであってもシリアルデータを常時シフトアウトする図 に オーディオスレーブインターフェイスモードの SPI モジュールとコーデックマスタデバイス間の接続を示します 23 図 23-19: コーデックデバイスがマスタとして動作し 外付け水晶振動子を使ってクロックを生成する PIC32 [SPI Slave] SSx SDOx BCLK LRCK DACDAT Codec [Master] シリアルペリフェラルインターフェイス (SPI) SDIx ADCDAT 図 に オーディオスレーブインターフェイスモードの SPI モジュールが参照クロック出力機能を使ってマスタクロックをコーデックマスタデバイスに供給する場合の接続を示します 図 23-20: コーデックデバイスがマスタとして動作し PIC32 が参照クロック出力から MCLK を供給する PIC32 [SPI Slave] REFCLKO MCLKIN Codec [Slave] BCLK SSx LRCK SDOx SDIx DACDAT ADCDAT 2013 Microchip Technology Inc. DS61106G_JP - p

32 PIC32 ファミリリファレンスマニュアル オーディオデータ長とフレーム長 コーデックデバイスは各種ワード長 (8/16/20/24/32 ビット ) のオーディオデータサンプルを生成するのに対し PIC32 の SPI モジュールはデータ長が 16/24/32 ビットのオーディオデータの送受信をサポートします Note: 実際には 3 種類のフォーマット (16/24/32 ビット ) のいずれかを使って 32 ビット以下の任意長さを持つサンプルデータを送受信できます 表 23-5 に MODE<32,16> ビット (SPIxCON<11:10>) の設定と可能な最大サンプル長およびフレーム長 (SSx の LRCK 周期 ) の関係を示します 表 23-5: オーディオデータ長と LRCK 周期の関係 SPIxCON<11:10> MODE32 MODE16 データ長 (bit) MODE<32,16> ビット (SPIxCON<11:10>) の値は下記のように機能します 左 / 右チャンネルのデータ長とフレーム長を制御する 16 ビットサンプルモードでは 32/64 ビットフレーム長をサポートする 24/32 ビットサンプルモードでは 64 ビットフレーム長をサポートする FIFO の幅と深さを定義する ( 例 : 24 ビットデータの場合 FIFO は 32 ビット幅 x4 段 ) 選択したデータ長よりも長いデータは無視する 書き込まれたデータが選択したデータ長よりも短い場合 選択したデータ長の最上位バイト (MSB) が書き込まれた時点で FIFO ポインタが変化するこのデータを複数回の書き込み動作で送信 FIFO に書き込む場合 最下位から最上位に向かって順番に書き込む必要があります 例えば サンプルあたり 24 ビットのオーディオデータを 8 ビットずつ書き込む場合を想定します 表 23-5 によると FIFO の幅は 32 ビットです 従って 各 FIFO サンプルの最上位 8 ビット (bit 31:24) は無視します bit 15:8 および 7:0 はどちらを先に SPIxBUF レジスタに書き込んでも構いませんが bit 23:16 は最後に書き込む必要があります なぜならば 最上位ビット (MSb つまり 24 ビット目 ) が書き込まれた時点で送信バッファのポインタが変化するからです 未使用バイトへのデータ書き込みは無視されます 未使用バイトのみに対するトランザクションも無視されます 従って データが 32 ビット幅よりも小さい場合 アドレスオフセット 0x0023 に対する 1 バイト書き込みは完全に無視され FIFO のプッシュは発生しません フレーム /LRCK エラー FIFO 幅 (bit) 左 / 右チャンネルサンプル長 (bit) 拡張バッファ FIFO 深さ ( サンプル ) LRCK 周期フレーム長 (bit) SPI モジュールは デバッグ用にフレーム /LRCK エラー検出機能を備えています チャンネルの開始タイミングを決める LRCK エッジが MODE<32,16> の設定に対応する適正なビット数よりも前に発生すると フレーム /LRCK エラーが生成されます SPI モジュールは即座に FRMERR ビット (SPIxSTAT<12>) をセットし データを SPIxSR レジスタから SPIxRXB レジスタへプッシュし SPIxTXB レジスタから SPIxSR レジスタへポップします モジュールのフレーム /LRCK 関連エラー検出機能を有効にするには FRMERREN ビット (SPIxCON2<12>) をセットします Note: オーディオプロトコルモードの場合 BCLK ( ピン ) と LRCK (SSx ピン ) はフリーランニングです ( つまり常時生成されます ) 通常 LRCK パルスの長さ (BCLK パルスの数 ) は一定です いかなる場合も SPI モジュールは新しいフレームエッジに再同期し FRMERR ビットをセットします 非 PCM モードで動作中の SPI モジュールは フレームが短すぎると短縮したデータを FIFO にプッシュします DS61106G_JP - p Microchip Technology Inc.

33 セクション 23. シリアルペリフェラルインターフェイス (SPI) オーディオプロトコルモード SPI モジュールは 下記の 4 種類のオーディオプロトコルモードをサポートし これらのいずれかのモードで動作できます I 2 S モード ( 一部のデバイスのみサポート 詳細はデバイスデータシート参照 ) 左寄せモード 右寄せモード PCM/DSP モードこれらのオーディオプロトコルモードは AUDMOD<1:0> ビット (SPIxCON2<1:0>) を設定する事により有効にできます これらのモードを選択する事で各種のコーデックと通信でき SCK に同期した LRCK および SDI/SDO エッジのタイミングを制御できます データ送信に関しては 全てのプロトコルモードにおいて 最上位バイト (MSB) から最下位バイト (LSB) に向かって順番に送信します データ長については オーディオデータ長とフレーム長 に記載しています LSb の送信後に余分な SCK 周期が存在する場合 フレームの終端までゼロを送信します スレーブモードの場合 BCLK ( ピン ) に同期した LRCK (SSx ピン ) の周期 ( またはフレーム長 ) に対する制約は マスタモードに比べると大幅に緩やかです マスタモードの場合 フレーム長は MODE<32,16> ビット (SPIxCON<11:10>) の設定に応じて 32 BCLK または 64 BCLK のどちらかです しかしスレーブモードのフレーム長は 32 または 64 BCLK 以上にできます しかし フレーム LRCK エッジを早期に受け取ると FRMERR ビット (SPIxSTAT<12>) がセットされます 図 に オーディオモードにおけるコーデックデバイスと SPI モジュール間の標準的な接続を示します 図 23-21: オーディオスレーブモードの SPI モジュール マスタが BCLK と LRCK( または WS) を生成 PIC32 [SPI Slave] SSx SDOx BCLK LRCK DACDAT Codec [Master] 23 シリアルペリフェラルインターフェイス (SPI) SDIx ADCDAT 2013 Microchip Technology Inc. DS61106G_JP - p

34 PIC32 ファミリリファレンスマニュアル I 2 S モード Note: 一部のデバイスではこの機能を利用できません 詳細は各デバイスのデータシートを参照してください I 2 S (Inter-IC Sound) プロトコルを使うと 2 チャンネルのデジタルオーディオデータを 1 つのシリアルインターフェイスを介して送信できます I 2 S プロトコルは WS/LRCK ラインを使ってステレオデータを処理する 3 線式インターフェイスを定義します I 2 S 仕様は 常に送信または受信のどちらか一方だけをサポートする半二重インターフェイスを定義しています SPI モジュールは SDO と SDI の両方を備えるため 全二重動作をサポートします ( 図 参照 ) データ送信のタイミング - トランスミッタは LRCK の状態遷移より後の最初の SCK 立ち上がりエッジで オーディオサンプルデータの MSb をシフトします - レシーバは 2 番目の SCK 立ち上がりエッジで MSb をサンプリングします - 左チャンネルのデータは LRCK の LOW 期間中にシフトアウトされ 右チャンネルのデータは LRCK の HIGH 期間中にシフトアウトされます - 左および右チャンネルのデータは 1 つのフレームにより構成されます 必要な設定 モジュールを I 2 S モードに設定するには 下記のビットを設定する必要があります - AUDMOD<1:0> = 00 (SPIxCON2<1:0>) - FRMPOL = 0 (SPIxCON<29>) - CKP = 1 (SPIxCON<6>) これらのビット設定により SCK (BCLK) の立ち下がりエッジで SDO と LRCK (SSx) の状態が遷移し SCK の立ち上がりエッジで SDI のサンプリングが発生します 図 を参照してください 図 23-22: I 2 S (16 ビットデータ / チャンネルまたは 32 ビットデータ / チャンネル ) (BCLK) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx MSb MSb-1 LSb+1 LSb MSb MSb-1 LSb+1 LSb Transmit Sample Left Channel LSb Transmit Sample Right Channel LSb DS61106G_JP - p Microchip Technology Inc.

35 セクション 23. シリアルペリフェラルインターフェイス (SPI) I 2 S オーディオスレーブモードの動作 SPI モジュールを I 2 S オーディオスレーブモードに設定する手順は下記の通りです 1. 割り込みが有効になっている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. 受信バッファをクリアする 5. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 6. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 7. SPIROV ビット (SPIxSTAT<6>) をクリアする 8. SPIxCON2 レジスタに適切な設定を書き込む a) AUDMOD<1:0> ビット (SPIxCON2<1:0>) = 00 b) AUDEN ビット (SPIxCON2<7>) = 1 9. SPIxCON レジスタに適切な設定を書き込む a) MSTEN (SPIxCON<5>) = 0 b) CKP (SPIxCON<6>) = 1 c) MODE<32,16> (SPIxCON<11:10>) = 0 (16 ビットオーディオチャンネルデータ ) d) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 10. マスタが BCLK と LRCK の供給を開始するとただちに送信 ( および受信 ) が始まる 例 23-3: I 2 S スレーブモード (16 ビットチャンネルデータ /32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in I2S Slave mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts 23 シリアルペリフェラルインターフェイス (SPI) SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // I2S Mode, AUDEN = 1, AUDMON = 0 SPI1CON =0x ; // Slave mode, SPI ON, CKP = 1, 16-bit audio data, 32 bits per frame // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ 2013 Microchip Technology Inc. DS61106G_JP - p

36 PIC32 ファミリリファレンスマニュアル I 2 S オーディオマスタモードの動作 典型的なアプリケーション例として コーデックスレーブデバイスに接続して PCM データ ( サンプリング周波数 : 8 16 ビットデータ 32 ビットフレームサイズ ) を再生する場合を想定します この場合 256 kbps の BCLK を生成するよう SPI モジュールを初期化します 周辺モジュール用バスクロックの周波数は 40 MHz (FPB = 40e6) とします baud レートの計算式を式 23-2 に示します 式 23-2: Baud Rate = F PB SPIxBRG + 1 上式から SPIxBRG は式 23-3 のように計算できます 式 23-3: SPIxBRG = F PB Baud Rate 1 Baud Rate は 256e3 です 従って SPIxBRG の値は式 23-4 のように求まります 式 23-4: SPIxBRG = 40e6 2256e = 式 23-4 から求めた SPIxBRG の値に最も近い整数は 77 です この値を使って 実効 baud レートは式 23-5 のように求まります 式 23-5: e6 = 40e = bits per second この結果は目標値よりも 0.16% 高速ですが ほとんどのシステムでは許容範囲内です (0.16% は正確に 1/625) 一部のデバイスでは REFOTRIM レジスタを使ってこの誤差を修正でき 正確に目標周波数のマスタクロックを出力できます SPI モジュールを I 2 S オーディオマスタモード向けに設定する手順は以下の通りです 1. 割り込みが有効になっている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. baud レートレジスタ (SPIxBRG) をリセットする 5. 受信バッファをクリアする 6. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセット ( 拡張バッファモードを使う場合 ) する 7. 割り込みを使う場合は以下を実行する a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 8. SPIROV ビット (SPIxSTAT<6>) をクリアする 9. SPIxCON2 レジスタに適切な設定を書き込む I 2 S モードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 00 に設定し AUDEN ビット (SPIxCON2<7>) を 1 にセットしてオーディオプロトコルを有効にする必要がある 10. SPIxBRG baud レートレジスタを 0x4D に設定する (40 MHz の PBCLK から約 256 kbps のサンプリングレートを生成 ) DS61106G_JP - p Microchip Technology Inc.

37 セクション 23. シリアルペリフェラルインターフェイス (SPI) 11. SPIxCON レジスタに適切な設定を書き込む a) MSTEN (SPIxCON<5>) = 1 b) CKP (SPIxCON<6>) = 1 c) MODE<32,16> (SPIxCON<11:10>) = 0 (16 ビットオーディオチャンネルデータ ) d) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 12. ON ビットをセットすると送信 ( および受信 ) が即座に始まる 例 23-4: I 2 S マスタモード (256 kbps BCLK 16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in I2S Master mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings SPI1BRG=0; // Reset Baud rate register rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // I2S Mode, AUDEN = 1, AUDMON = 0 SPI1BRG =0x4D; //(to generate 256 kbps sample rate, 40 MHz) SPI1CON =0x ; // Master mode, SPI ON, CKP = 1, 16-bit audio channel // data, 32 bits per frame // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p

38 PIC32 ファミリリファレンスマニュアル 左寄せモード左寄せモードは I 2 S モードに似ていますが SPI は LRCK の遷移と同時に発生する SCK エッジでオーディオデータの MSb をシフトします レシーバ側の SPI モジュールは その次の SCK エッジで MSb をサンプリングします 一般的に左または右寄せプロトコルを使うコーデックは SCK 立ち上がりエッジでデータ送信 /SCK 立ち下がりエッジでデータ受信 を既定値とします 必要な設定 モジュールを左寄せモードに設定するには 下記のビットを設定する必要があります - AUDMOD<1:0> = 01 (SPIxCON2<1:0>) - FRMPOL = 1 (SPIxCON<29>) - CKP = 0 (SPIxCON<6>) これにより SDO と LRCK は SCK 立ち上がりエッジに同期して遷移します 16/24/32 ビットオーディオデータ転送のサンプル波形を図 と図 に示します 図 23-23: 左寄せモード (16 ビットデータ / チャンネルまたは 32 ビットデータ / チャンネル ) (BCLK) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx MSb MSb-1 LSb+1 LSb MSb MSb-1 LSb+1 LSb Transmit Sample Transmit Sample 図 23-24: 左寄せモード (16/24 ビットデータ 32 ビットチャンネル ) (BCLK) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx MSb LSb 0 0 MSb LSb 0 0 Transmit Sample Transmit Sample DS61106G_JP - p Microchip Technology Inc.

39 セクション 23. シリアルペリフェラルインターフェイス (SPI) 左寄せオーディオスレーブモードの動作 SPI モジュールを左寄せオーディオスレーブモードに設定する手順は下記の通りです 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. 受信バッファをクリアする 5. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 6. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 7. SPIROV ビット (SPIxSTAT<6>) をクリアする 8. SPIxCON2 レジスタに適切な設定を書き込む 左寄せモードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 01 に設定し AUDEN ビット (SPIxCON2<7>) を 1 に セットしてオーディオプロトコルを有効にする必要がある 9. SPIxCON レジスタに適切な設定を書き込む a) スレーブモード (MSTEN (SPIxCON<5>) = 0) に設定する b) クロック極性を設定する (CKP (SPIxCON<6>) = 0) c) フレーム極性を設定する (FRMPOL (SPIxCON<29>) = 1) d) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する e) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 10. マスタが BCLK と LRCK の供給を開始するとただちに送信 ( および受信 ) が始まる 例 23-5: 左寄せスレーブモード (16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in Left-Justified Slave mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // Left-Justified Mode, AUDEN = 1, AUDMON = 0 SPI1CON =0x ; // Slave mode, SPI ON, CKP = 0, FRMPOL = 1, // 16-bit audio data, 32 bits per frame // from here, the device is ready to receive and transmit data 23 シリアルペリフェラルインターフェイス (SPI) /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ 2013 Microchip Technology Inc. DS61106G_JP - p

40 PIC32 ファミリリファレンスマニュアル 左寄せオーディオマスタモードの動作 SPI モジュールを左寄せオーディオマスタモードに設定する手順は下記の通りです 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. baud レートレジスタ (SPIxBRG) をリセットする 5. 受信バッファをクリアする 6. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 7. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 8. SPIROV ビット (SPIxSTAT<6>) をクリアする 9. SPIxCON2 レジスタに適切な設定を書き込む 左寄せモードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 01 に設定し AUDEN ビット (SPIxCON2<7>) を 1 に セットしてオーディオプロトコルを有効にする必要がある 10. SPIxBRG baud レートレジスタを 0x4D に設定する (40 MHz の PBCLK から約 256 kbps の サンプリングレートを生成 ) 11. SPIxCON レジスタに適切な設定を書き込む a) マスタモード (MSTEN (SPIxCON<5>) = 1) に設定する b) クロック極性を設定する (CKP (SPIxCON<6>) = 0) c) フレーム極性を設定する (FRMPOL (SPIxCON<29>) = 1) d) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する e) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 12. ON ビットをセットすると 送信 ( および受信 ) が即座に始まる 例 23-6: 左寄せマスタモード (16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in Left-Justified Master mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1 SPI1CON2 = 0; // Reset audio settings SPI1BRG = 0; rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // Left-Justified Mode, AUDEN = 1, AUDMON = 0 SPI1BRG =0x4D; // (to generate 256 kbps sample rate, 40 MHz) SPI1CON =0x ; // Master mode, SPI ON, CKP = 0, FRMPOL = 1, MSTEN = 1 // 16-bit audio data, 32 bits per frame // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ DS61106G_JP - p Microchip Technology Inc.

41 セクション 23. シリアルペリフェラルインターフェイス (SPI) 右寄せモード右寄せモードの場合 SPI モジュールはオーディオサンプルデータの LSb が最後のクロックサイクルで転送されるよう MSb をシフトします DISSDO ビット (SPIxCON<12>) を 0 に設定する事により オーディオサンプルデータに先行するビットを論理レベル 0 に駆動できます DISSDO = 0 の場合 モジュールは未使用ビットスロットを無視します 必要な設定 モジュールを右寄せモードに設定するには 下記のビットを設定する必要があります - AUDMOD<1:0> (SPIxCON2<1:0>) = 10 - FRMPOL (SPIxCON<29>) = 1 - CKP (SPIxCON<6>) = 0 これにより データの LSb は最終クロックサイクルに配置され SDO と LRCK の状態は SCK の立ち上がりエッジに同期して遷移します 16/24/32 ビットオーディオデータ転送のサンプル波形を図 と図 に示します 図 23-25: 右寄せモード (16 ビットデータ / チャンネルまたは 32 ビットデータ / チャンネル ) (BCLK) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx MSb MSb-1 LSb+1 LSb MSb MSb-1 LSb+1 LSb 23 Transmit Sample Transmit Sample 図 23-26: 右寄せモード (16/24 ビットデータ 32 ビットチャンネル ) (BCLK) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx 0 0 MSb LSb 0 0 MSb LSb シリアルペリフェラルインターフェイス (SPI) Transmit Sample Transmit Sample 2013 Microchip Technology Inc. DS61106G_JP - p

42 PIC32 ファミリリファレンスマニュアル 右寄せオーディオスレーブモードの動作 SPI モジュールを右寄せオーディオスレーブモードに設定する手順は下記の通りです 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. 受信バッファをクリアする 5. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 6. 割り込みを使う場合は以下を実行する a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 7. SPIROV ビット (SPIxSTAT<6>) をクリアする 8. SPIxCON2 レジスタに適切な設定を書き込む 右寄せモードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 10 に設定し AUDEN ビット (SPIxCON2<7>) を 1 に セットしてオーディオプロトコルを有効にする必要がある 9. SPIxCON レジスタに適切な設定を書き込む a) スレーブモード (MSTEN (SPIxCON<5>) = 0) に設定する b) クロック極性を設定する (CKP (SPIxCON<6>) = 0) c) フレーム極性を設定する (FRMPOL (SPIxCON<29>) = 1) d) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する e) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 10. マスタが BCLK と LRCK の供給を開始するとただちに送信 ( および受信 ) が始まる 例 23-7: 右寄せスレーブモード (16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in Right-Justified Slave mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON=0; // Stops and resets the SPI1. SPI1CON2=0; // Reset audio settings rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // Right-Justified Mode, AUDEN = 1, AUDMON = 0 SPI1CON=0x ; // Slave mode, SPI ON, CKP = 0, FRMPOL = 1, // 16-bit audio data, 32 bits per frame // DISSDO = 0, transmit unused bit slots with logic level 0 // DISSDI = 0, receiver to ignore the unused bit slots // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ DS61106G_JP - p Microchip Technology Inc.

43 セクション 23. シリアルペリフェラルインターフェイス (SPI) 右寄せオーディオマスタモードの動作 SPI モジュールを右寄せオーディオマスタモードに設定する手順は下記の通りです 1. 割り込みを使う場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. baud レートレジスタ (SPIxBRG) をリセットする 5. 受信バッファをクリアする 6. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 7. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 8. SPIROV ビット (SPIxSTAT<6>) をクリアする 9. SPIxCON2 レジスタに適切な設定を書き込む 右寄せモードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 10 に設定し AUDEN ビット (SPIxCON2<7>) を 1 にセットしてオーディオプロトコルを有効にする必要がある 10. SPIxBRG baud レートレジスタを 0x4D に設定する (40 MHz の PBCLK から約 256 kbps の サンプリングレートを生成 ) 11. SPIxCON レジスタに適切な設定を書き込む a) マスタモード (MSTEN (SPIxCON<5>) = 1) に設定する b) クロック極性を設定する (CKP (SPIxCON<6>) = 0) c) フレーム極性を設定する (FRMPOL (SPIxCON<29>) = 1) d) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する e) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 12. ON ビットをセットすると 送信 ( および受信 ) が即座に始まる 例 23-8: 右寄せマスタモード (16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in Right-Justified Master mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings SPI1BRG=0; rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL=3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // Right-Justified Mode, AUDEN =1, AUDMON=0 SPI1BRG =0x4D; // (to generate 256 kbps sample rate, 40 MHz) SPI1CON =0x ; // Master mode, SPI ON, CKP = 0, FRMPOL = 1, MSTN = 1 // 16-bit audio data, 32 bits per frame // DISSDO = 0, transmit unused bit slots with logic level 0 // DISSDI = 0, receiver to ignore the unused bit slots // from here, the device is ready to receive and transmit data 23 シリアルペリフェラルインターフェイス (SPI) /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ 2013 Microchip Technology Inc. DS61106G_JP - p

44 PIC32 ファミリリファレンスマニュアル PCM/DSP モード PCM/DSP プロトコルモードは 特定のコーデックおよび DSP デバイスとの通信用に使います このモードは LRCK の挙動とオーディオデータの間隔を変更します PCM/DSP モードの場合 LRCK は 1 ビット幅 ( つまり 1 SCK) またはオーディオデータと同じ幅 ( ビット ) に設定できます 右チャンネルのオーディオデータは 左チャンネルデータの直後に続けてフレームに格納されます デバイスがマスタである場合 フレーム長は 32 または 64 クロックです PCM/DSP モードの場合 トランスミッタは LRCK の遷移と同時または遷移後最初の SCK 送信エッジで左チャンネルオーディオデータの MSb を駆動します (SPIFE ビット (SPIxCON<17>) 参照 ) トランスミッタは 左チャンネルの LSb の直後に右チャンネルの MSb を駆動します 必要な設定 モジュールを PCM/DSP モードに設定するには 下記のビットを設定する必要があります - AUDMOD<1:0> ビット (SPIxCON2<1:0>) = 11 16/24/32 ビットオーディオデータ転送のサンプル波形を図 と図 に示します 図 23-27: PCM/DSP モード (16 ビットデータ / チャンネルまたは 32 ビットデータ / チャンネル ) (BCLK) (FRMSYPW = 1) SSx (LRCK) (FRMSYPW = 0) SSx (LRCK) LEFT CHANNEL LEFT CHANNEL RIGHT CHANNEL RIGHT CHANNEL SDOx/SDIx MSb MSb-1 LSb+1 LSb MSb MSb-1 LSb+1 LSb (SPIFE = 1) Transmit Sample Transmit Sample 図 23-28: PCM/DSP モード (16/24 ビットデータ 32 ビットチャンネル ) (BCLK) (FRMSYPW = 1) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL (FRMSYPW = 0) SSx (LRCK) LEFT CHANNEL RIGHT CHANNEL SDOx/SDIx 0 MSb LSb MSb LSb (SPIFE = 0) Transmit Sample Transmit Sample DS61106G_JP - p Microchip Technology Inc.

45 セクション 23. シリアルペリフェラルインターフェイス (SPI) PCM/DSP オーディオスレーブモードの動作 SPI モジュールを PCM/DSP オーディオスレーブモードに設定する手順は下記の通りです 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. 受信バッファをクリアする 5. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 6. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 7. SPIROV ビット (SPIxSTAT<6>) をクリアする 8. SPIxCON2 レジスタに適切な設定を書き込む PCM/DSP モードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 11 に設定し AUDEN ビット (SPIxCON2<7>) を 1 に セットしてオーディオプロトコルを有効にする必要がある 9. SPIxCON レジスタに適切な設定を書き込む a) スレーブモード (MSTEN (SPIxCON<5>) = 0) に設定する b) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する c) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 10. マスタが BCLK と LRCK の供給を開始するとただちに送信 ( および受信 ) が始まる 例 23-9: PCM/DSP スレーブモード (16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in PCM/DSP Slave Mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // PCM/DSP Slave Mode, AUDEN = 1, AUDMON = 0 SPI1CON =0x ; // Slave mode, SPI ON, FRMSYPW = 0 // 16-bit audio data, 32 bits per frame // from here, the device is ready to receive and transmit data 23 シリアルペリフェラルインターフェイス (SPI) /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ 2013 Microchip Technology Inc. DS61106G_JP - p

46 PIC32 ファミリリファレンスマニュアル PCM/DSP オーディオマスタモードの動作 SPI モジュールを PCM/DSP オーディオマスタモードに設定する手順は下記の通りです 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPICON2) をリセットする 4. baud レートレジスタ (SPIxBRG) をリセットする 5. 受信バッファをクリアする 6. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセッ ト ( 拡張バッファモードを使う場合 ) する 7. 割り込みを使う場合 以下を実行する a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする 8. SPIROV ビット (SPIxSTAT<6>) をクリアする 9. SPIxCON2 レジスタに適切な設定を書き込む PCM/DSP モードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 11 に設定し AUDEN ビット (SPIxCON2<7>) を 1 に セットしてオーディオプロトコルを有効にする必要がある 10. SPIxBRG baud レートレジスタを 0x4D に設定する (40 MHz の PBCLK から約 256 kbps の サンプリングレートを生成 ) 11. SPIxCON レジスタに適切な設定を書き込む a) マスタモード (MSTEN (SPIxCON<5>) = 1) に設定する b) 16 ビットオーディオチャンネルデータ (MODE<32,16> (SPIxCON<11:10>) = 0) に 設定する c) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 12. ON ビットをセットすると 送信 ( および受信 ) が即座に始まる 例 23-10: PCM/DSP マスタモード (16 ビットチャンネルデータ 32 ビットフレーム ) /*The following code example will initialize the SPI1 Module in PCM/DSP Master Mode.*/ /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL=3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // PCM/DSP Master Mode, AUDEN =1, AUDMON=0 SPI1BRG =0x4D; // (to generate 256 kbps sample rate, 40 MHz) SPI1CON =0x ; // Master mode, SPI ON, FRMSYPW = 0 // 16-bit audio data, 32 bits per frame // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ DS61106G_JP - p Microchip Technology Inc.

47 セクション 23. シリアルペリフェラルインターフェイス (SPI) 図 23-29: SPI マスタクロックの生成 オーディオプロトコルモードの機能 BCLK/SCK と LRCK の生成マスタモードでは BCLK と LRCK の生成が重要要件です SCK と LRCK のフレーム周波数は MODE<32,16> ビット (SPIxCON<11:10>) の設定によって決まります フレームが 64 bit の場合 SCK の周波数は LRCK の 64 倍です フレームが 32 bit の場合 SCK の周波数は LRCK の 32 倍です SCK の周波数は LRCK のトグルレートとフレームサイズから求める必要があります 例えば PBCLK = MHz の場合 16 ビットチャンネルデータを 8 でサンプリングするには SPIxBRG レジスタを 0x47 に設定して 8 の LRCK を生成します マスタモードのクロックと MCLK マスタモードの SPI モジュールは PBCLK (MCLKSEL = 0) を使って内部で BCLK と LRCK を生成できます 参照出力 (REFCLKO) 機能を使うと SPI モジュールから外部コーデックデバイスにクロックを供給できます ( 図 参照 ) しかし 一部のコーデックは水晶振動子を使って内部で MCLK を生成し より正確なオーディオサンプリングレートを生成できます 図 に示す REFCLKO クロックは コーデックで MCLKIN として使えます USB-PLL REFCLKO SOSC LPRC FRC POSC PBCLK System Clock Reference Clock Output MCLK MCLKSEL Baud Rate Generator BCLK 参照クロック出力インターフェイスの詳細については 各デバイスのデータシートを参照してください 図 に MCLK 入力インターフェイスからクロックの供給を受けるコーデックマスタと SPI スレーブ間の接続を示します 23 シリアルペリフェラルインターフェイス (SPI) 図 23-30: SPI スレーブとコーデックマスタの接続 SPI スレーブから MCLK を供給 PIC32 [SPI Slave] Codec [Master] REFCLKO MCLKIN BCLK SSx LRCK SDOx SDIx DACDAT ADCDAT 2013 Microchip Technology Inc. DS61106G_JP - p

48 PIC32 ファミリリファレンスマニュアル REFCLKO を使う I 2 S オーディオマスタモードの動作 MCLK を使う I 2 S オーディオマスタモード向けに SPI モジュールを設定する手順について説明します BCLK (256 kbps) を生成するよう SPI モジュールを初期化し 参照オシレータ出力コンフィグレーションレジスタを使って PBCLK から MCLK を生成します 典型的なアプリケーション例として コーデックスレーブデバイスに接続して PCM データ ( サンプリング周波数 : 8 16 ビットデータ 32 ビットフレーム ) を再生する場合を想定します 1. 割り込みを有効にしている場合 対応する IECx レジスタで SPI 割り込みを無効にする 2. ON ビット (SPIxCON<15>) をクリアして SPI モジュールを停止 / リセットする 3. SPI オーディオコンフィグレーションレジスタ (SPIxCON2) をリセットする 4. 参照オシレータコントローラレジスタ (REFOCON) をリセットする 5. baud レートレジスタ (SPIxBRG) をリセットする 6. 受信バッファをクリアする 7. ENHBUF ビット (SPIxCON<16>) をクリア ( 標準バッファモードを使う場合 ) またはセット ( 拡張バッファモードを使う場合 ) する 8. SPI 割り込みを使う場合は下記を行う a) 対応する IFSx レジスタの SPIx 割り込みフラグ / イベントをクリアする b) 対応する IPCx レジスタの SPIx 割り込み優先度および副優先ビットを設定する c) 対応する IECx レジスタの SPIx 割り込みイネーブルビットをセットする d) SPIROV ビット (SPIxSTAT<6>) をクリアする 9. SPIxCON2 レジスタに適切な設定を書き込む I 2 S モードに設定するには AUDMOD<1:0> ビット (SPIxCON2<1:0>) を 00 に設定し AUDEN ビット (SPIxCON2<7>) を 1 にセットしてオーディオプロトコルを有効にする必要がある 10. 参照オシレータコントローラレジスタ (REFOCON) を設定する a) RODIV<14:0> (REFOCON<30:16>) = 0 b) ON (REFOCON<15>) = 1 ( 参照オシレータ有効 ) c) OE (REFOCON<4>) = 1 ( 出力有効 ) 11. SPIxBRG baud レートレジスタを 0x4D に設定する (40 MHz の PBCLK から約 256 kbps のサンプリングレートを生成 ) 12. SPIxCON レジスタに適切な設定を書き込む a) MSTEN (SPIxCON<5>) = 1 b) CKP (SPIxCON<6>) = 1 c) MODE<32,16> (SPIxCON<11:10>) = 0 (16 ビットオーディオチャンネルデータ ) d) MCLKSEL (SPIxCON<23>) = 1 ( マスタモード ) e) ON ビット (SPIxCON<15>) をセットして SPI の動作を有効にする 13. マスタが BCLK と LRCK の供給を開始するとただちに送信 ( および受信 ) が始まる DS61106G_JP - p Microchip Technology Inc.

49 セクション 23. シリアルペリフェラルインターフェイス (SPI) 例 23-11: I 2 S マスタモード (256 kbps BCLK 16 ビットチャンネルデータ 32 ビットフレーム ) /* The following code example will initialize the SPI1 Module in I2S Slave mode. /* It assumes that none of the SPI1 input pins are shared with an analog input.*/ unsigned int rdata; IEC0CLR=0x ; // disable all interrupts SPI1CON = 0; // Stops and resets the SPI1. SPI1CON2 = 0; // Reset audio settings REFOCON = 0x0; // Reset reference oscillator register SPI1BRG=0; // Reset Baud rate register rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL = 3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1STATCLR=0x40; // clear the Overflow SPI1CON2=0x ; // I2S Mode, AUDEN =1, AUDMON=0 SPI1BRG =0x4D; // (to generate 256 kbps sample rate, 40 MHz) REFOCON = 0x8001; // ON = 1, ROSEL = 1 for PBCLK SPI1CON =0x ; // MCLKSEL = 1, MSTEN = 1, ON = 1, CKP = 1, 16-bit audio channel // data, 32-bits per frame // from here, the device is ready to receive and transmit data /* Note:A few of bits related to frame settings are not required to be set in the SPI1CON */ /* register during audio mode operation.please refer to the notes in the SPIxCON2 register.*/ Note: 参照クロック出力を使ってコーデックに MCLK を供給する方式は最善の選択とは言えません I/O ピンでクロックを出力するとジッタが生じるため コーデックの音質に劣化を招く可能性があります コーデックをマスタ I 2 S オーディオデバイスにして水晶振動子を使うのが最善の方法です モノラルモードとステレオモード SPI モジュールは AUDMONO ビット (SPIxCON2<3>) の設定に従ってモノラルまたはステレオモードでオーディオデータを転送できます AUDMONO ビットを 0 ( ステレオモード ) に設定すると シフトレジスタから FIFO の各バッファ位置に一度ずつ書き込みます つまり ステレオデータの各チャンネルに対して別々のデータストリームを割り当てます AUDMONO ビットを 1 ( モノラルモード ) に設定すると シフトレジスタから FIFO の各位置に二度書き込みます つまり 両方のチャンネルに対して同じモノラルデータストリームを割り当てます Note: AUDMONO ビットの設定は受信データに影響しません 23 シリアルペリフェラルインターフェイス (SPI) ストリーミングデータのサポートとエラー処理ほとんどのオーディオストリーミングアプリケーションは データを連続的に送信または受信します これは動作中にチャンネルをアクティブ状態に維持し 最大限の精度を保証するために必要です オーディオデータのストリーミングに起因して集中的なデータ供給やパケットの損失が生じ モジュールにアンダーランに似た状況が発生する場合があります ソフトウェアはアンダーラン状態からの回復に関与する必要があります 送信アンダーラン無視 (IGNTUR) ビット (SPIxCON2<8>) を 1 にセットすると アンダーラン条件は無視されます この設定は ソフトウェアによるアンダーラン条件の検出と対応が不要な場合に便利です SPITUREN ビット (SPIxCON2<10>) を 1 にセットした場合 アンダーランが発生すると SPI モジュールは SPITUR ビット (SPIxSTAT<8>) をセットし ソフトウェアがエラー状態をクリアするか ON ビット (SPIxCON<15>) が 0 にクリアされるまでエラー状態を維持します アンダーラン条件中 SPI モジュールは SPIxTXB レジスタから SPIxSR レジスタにデータを転送せず かわりにゼロを書き込んでゼロを送信し続けます エラー条件がクリアされると ( つまり SPIxTXB レジスタがエンプティではなくなると ) SPI モジュールは次の LRCK フレーム境界で送信バッファから SPIxSR レジスタにオーディオデータを転送します ソフトウェアは 常に左右チャンネルのオーディオデータをペアにして FIFO に転送する必要があります 受信オーバーフロー無視 (IGNROV) ビット (SPIxCON2<9>) を 1 にセットすると 受信オーバーフロー条件を無視します この設定は ソフトウェアで適切に対処する必要のある一般的な性能上の問題がシステムに存在する場合に便利です また システムがオーディオデータを受信する必要がない場合 DISSDI ビット (SPIxCON<4>) を 1 にセットすれば受信オーバーフローの発生を防げます 動作中に DISSDI ビットを変更すると 受信シフトレジスタは LRCK パルスの前縁で受信を開始します 2013 Microchip Technology Inc. DS61106G_JP - p

50 PIC32 ファミリリファレンスマニュアル 23.5 割り込み SPI モジュールはデータ通信中に発生したイベントに対応して下記の割り込みを生成できます 受信データ読み出し可能割り込みが発生すると SPI1RXIF および SPI2RXIF ビットがセットされます このイベントは SPIxBUF 受信バッファへの新しいデータの書き込みが完了すると発生します 送信データエンプティ割り込みが発生すると SPI1TXIF および SPI2TXIF ビットがセットされます このイベントは SPIxBUF 送信バッファに新しいデータを書き込める空き位置ができると発生します エラー割り込みが発生すると SPI1EIF および SPI2EIF ビットがセットされます このイベントは SPIxBUF 受信バッファでオーバーフロー条件が発生した場合 ( 次のデータの受信を完了したが 先に受信したデータがまだ読み出されていない場合 ) 送信バッファでアンダーランが発生した場合 FRMERR イベントが発生した場合に発生します これら全ての割り込みフラグは IFSx レジスタに格納されており ソフトウェアでクリアする必要があります 詳細は各デバイスのデータシートを参照してください SPI 割り込みを有効にするには 対応する IECx レジスタ内の各 SPI 割り込みイネーブルビット (SPIxRXIE SPIxTXIE SPIxFIE) をセットします 加えて IPCx レジスタ内の割り込み優先度ビット (SPIxIP) と割り込み副優先度ビット (SPIxIS) も設定する必要があります 拡張バッファモードを使う場合 SPI 制御 (SPIxCON<3:2>) レジスタの SPI 送信バッファエンプティ割り込みモードビット (STXISEL<1:0>) を使って送信バッファエンプティ割り込みの生成条件 ( 非フル 1/2 以上エンプティ 完全にエンプティ 最後の転送データをシフトアウト ) を設定できます 同様に 拡張バッファモードを使う場合 SPI 制御 (SPIxCON<1:0>) レジスタの SPI 受信バッファフル割り込みモードビット (SRXISEL<1:0>) を使って受信バッファフル割り込みの生成条件 ( フル 1/2 以上フル 非エンプティ 最後のワードの読み出し ) を設定できます Note: 拡張バッファモードは一部のデバイスだけで利用できます 詳細は各デバイスのデータシートを参照してください 詳細は セクション 08. 割り込み (DS61108) を参照してください 割り込みの設定 各 SPI モジュールには それぞれ 3 つの割り込みフラグビット (SPIxEIF SPIxRXIF SPIxTXIF) と それらに対応する割り込みイネーブル / マスクビット (SPIxEIE SPIxRXIE SPIxTXIE) が割り当てられています 割り込みフラグビットを使って割り込みを引き起こした要因を特定でき 割り込みイネーブルビットを使って対応する割り込み要因を有効または無効にできます 特定の SPI モジュールに関連付けられた全ての割り込み要因は 1 つの割り込みベクタを共有する事に注意してください 各 SPI モジュールには別々に優先度を設定できます SPI 送信バッファがエンプティになると SPIxTXIF がセットされ 新しいデータを SPIxBUF レジスタに書き込めます SPIxBUF 内に読み出し可能な受信データが存在すると SPIxRXIF がセットされます 受信オーバーフロー条件が発生すると SPIxEIF がセットされます SPIxTXIF SPIxRXIF SPIxEIF ビットは対応するイネーブルビットの状態に関係なくセットされる事に注意してください 割り込みフラグビットは必要に応じてソフトウェアでポーリングできます SPIxEIE SPIxTXIE SPIxRXIE ビットはそれぞれ SPIxEIF SPIxTXIF SPIxRXIF ビットがセットされた時の割り込みコントローラの挙動を定義します 割り込みイネーブルビットをクリアすると 割り込みコントローラは対応するイベントが発生しても CPU 割り込みを生成しません 割り込みイネーブルビットをセットした場合 割り込みコントローラは対応する割り込みフラグビットがセットされると CPU に対して割り込みを生成します ( この動作は後述の優先度および副優先度の設定に従います ) 割り込みをサービスするユーザソフトウェアルーチンは サービスルーチンを完了する前に適切な割り込みフラグビットをクリアする必要があります 各 SPI モジュールの割り込み優先度は SPIxIP<2:0> ビットを使って別々に設定できます この優先度は 割り込み要因をどの優先度グループに割り当てるのかを定義します 各優先度グループは 7 ( 最優先 ) から 0 ( 割り込みを生成しない ) の優先度を持ちます ある割り込みをサービスしている時に より高い優先度グループに属する割り込みが発生した場合 サービス中の割り込みは保留されます エラー割り込みの各要因は SPIxCON2 レジスタの FRMERREN SPIROVEN SPITUREN ビットによって別々に制御されます DS61106G_JP - p Microchip Technology Inc.

51 セクション 23. シリアルペリフェラルインターフェイス (SPI) 副優先度ビットにより 同一優先度グループに属する割り込み要因に異なる優先度を設定できます 副優先度の値 (SPIxIS<1:0>) は 3 ( 最優先 ) から 0 ( 最低優先度 ) の間で設定できます ある割り込みのサービス中に 優先度グループが同じで副優先度がより高い割り込みが発生しても サービス中の副優先度の低い割り込みは保留されません 複数の割り込み要因に同一の優先度と副優先度を割り当てる事もできます そのように設定した複数の割り込みが同時に発生した場合 それらの各割り込み要因が持つ自然順序優先度によって 生成される割り込みが決まります 自然順序優先度は割り込み要因のベクタ番号に基づきます ベクタ番号が小さいほど 割り込みの自然順序優先度は高くなります 自然順序優先度に従って保留された割り込み要因は サービス中の割り込みの割り込みフラグがクリアされた後に 優先度 副優先度 自然順序優先度に基づいて 順番に割り込みを生成します 有効な割り込みが発生すると CPU はその割り込みに割り当てられているベクタへジャンプします 割り込みのベクタ番号がそのまま自然優先順位となります CPU はジャンプ先のベクタアドレスからコードの実行を始めます このベクタアドレスから始まるユーザコードは 要求されたアプリケーション動作を実行し 終了する前に割り込みフラグ (SPIxEIF SPIxTXIF SPIxRXIF) をクリアする必要があります 割り込みの詳細については セクション 08. 割り込み (DS61108) 内のベクタアドレステーブルを参照してください 例 23-12: 割り込みを有効にする SPI 初期化サンプルコード /* The following code example illustrates an SPI1 interrupt configuration. When the SPI1 interrupt is generated, the cpu will jump to the vector assigned to SPI1 interrupt. It assumes that none of the SPI1 input pins are shared with an analog input.if so, the AD1PCFG and corresponding TRIS registers have to be properly configured. */ intrdata; 23 IEC0CLR=0x ; // disable all SPI interrupts SPI1CON = 0; // Stops and resets the SPI1. rdata=spi1buf; // clears the receive buffer IFS0CLR=0x ; // clear any existing event IPC5CLR=0x1f000000; // clear the priority IPC5SET=0x0d000000; // Set IPL=3, Subpriority 1 IEC0SET=0x ; // Enable RX, TX and Error interrupts SPI1BRG=0x1; // use FPB/4 clock frequency SPI1STATCLR=0x40; // clear the Overflow SPI1CON=0x8220; // SPI ON, 8 bits transfer, SMP=1, Master mode シリアルペリフェラルインターフェイス (SPI) 例 23-13: SPI1 ISR のサンプルコード /* The following code example demonstrates a simple interrupt service routine for SPI1 interrupts.the user s code at this vector should perform any application specific operations and must clear the SPI1 interrupt flags before exiting. */ void ISR(_SPI_1_VECTOR, ipl3) SPI1Interrupt(void) { //... perform application specific operations in response to the //interrupt } IFS0CLR = 0x ; // Be sure to clear the SPI1 interrupt flags // before exiting the service routine. デバイスが拡張バッファモードを備えている場合 ユーザアプリケーションは割り込み条件に対応した後に割り込み要求フラグをクリアする必要があります SPI 割り込みが発生した場合 ISR は SPI データバッファ (SPIxBUF) レジスタを読み出した後に SPI 割り込みフラグをクリアする必要があります ( 例 参照 ) 2013 Microchip Technology Inc. DS61106G_JP - p

52 PIC32 ファミリリファレンスマニュアル 例 23-14: 拡張バッファモードを備えたデバイス向けの SPI1 ISR サンプルコード /* The following code example demonstrates a simple interrupt service routine for SPI1 interrupts.the user s code at this vector should perform any application specific operations and must clear the SPI1 interrupt flags before exiting. */ void ISR(_SPI_1_VECTOR, ipl3) SPI1Interrupt(void) { int Data; // Read SPI data buffer Data = SPI1BUF; //... perform application specific operations in response to the //interrupt } IFS0CLR = 0x ; // Be sure to clear the SPI1 interrupt flags // before exiting the service routine. Note: SPI1 ISR サンプルコードは MPLAB C32 C コンパイラ向けの構文で書かれています ISR のサポートについては ご使用になるコンパイラのマニュアルを参照してください DS61106G_JP - p Microchip Technology Inc.

53 セクション 23. シリアルペリフェラルインターフェイス (SPI) 23.6 省電力およびデバッグモード中の動作 スリープモード デバイスがスリープに移行するとシステムクロックは停止します スリープ中の SPI モジュールの動作は スリープへの移行前のモジュール動作モードによって異なります 以下では 動作モード別にスリープ挙動について説明します マスタモードでのスリープスリープ中は下記の点に注意が必要です baud レートジェネレータは停止し リセットされる場合がある ( デバイスデータシートで確認してください ) 実行中の送受信シーケンスは中止される スリープ終了時にモジュールは中止されたシーケンスを再開しない ( デバイスデータシートで確認してください ) スリープに移行すると モジュールは新しいデータを一切送受信しない Note: 送受信シーケンスの不用意な中止を防ぐには 実行中の転送が完了してからスリープに移行する必要があります スレーブモードでのスリープスレーブモードの場合 SPI モジュールは外部の SPI マスタが供給する SCK を使って動作します クロックパルスは外部から供給されるため モジュールはスリープ中も機能し続けます スリープへの移行中のトランザクションは全て完全に実行されます トランザクションが完了すると SPIRBF フラグがセットされます その結果 SPIxRXIF ビットがセットされます SPI 割り込みが有効 (SPIxRXIE = 1) かつその優先度が現在の CPU 優先度よりも高い場合 デバイスはスリープから復帰し SPIx 割り込みベクタアドレスからコード実行を再開します SPI 割り込み優先度が現在の CPU 優先度以下である場合 CPU はスリープを継続します スレーブデバイスとして動作中のモジュールはスリープへの移行時にリセットされません SPIx モジュールがスリープに移行する際もスリープから復帰する際もレジスタの内容は影響を受けません アイドルモード デバイスがアイドルに移行してもシステムクロック源は機能し続けます マスタモードでのアイドルアイドル中にモジュールの動作を停止するか継続するかは SIDL ビット (SPIxCON<13>) で選択します SIDL = 1 の場合 モジュールはアイドル中に動作を停止します この場合 モジュールはスリープ中と同様に機能します SIDL = 0 の場合 モジュールはアイドル中も動作を続けます スレーブモードでのアイドル SIDL の設定に関係なく モジュールはアイドル中も動作を継続します モジュールの挙動はスリープ中と同じです 23 シリアルペリフェラルインターフェイス (SPI) デバッグモード SPIxBUF の動作 デバッグモード中の読み出し デバッグモード中も SPIxBUF を読み出せます しかし 読み出し動作はどのステータスビットにも影響しません 例えば デバッグモードへの移行時に SPIRBF ビット (SPIxSTAT<0>) をセットした場合 デバッグモード中に SPIxBUF を読み出しても デバッグモード終了時に SPIRBF ビットはセットされたままです 2013 Microchip Technology Inc. DS61106G_JP - p

54 PIC32 ファミリリファレンスマニュアル 23.7 各種リセットの影響 デバイスリセット 全ての SPI レジスタは デバイスリセット時にそれぞれのリセット状態に戻されます 非同期リセット入力がアクティブ状態に遷移すると SPI ロジックは下記を実行します SPIxCON および SPIxSTAT レジスタの全てのビットをリセットする 送受信バッファ (SPIxBUF) をエンプティ状態にリセットする baud ジェネレータをリセットする パワーオンリセット 全ての SPI レジスタは パワーオンリセット時にそれぞれのリセット状態に戻されます ウォッチドッグタイマリセット 全ての SPI レジスタは ウォッチドッグタイマリセット時にそれぞれのリセット状態に戻されます 23.8 SPI モジュールを使う周辺モジュール SPI モジュールを使う他の周辺モジュールはありません DS61106G_JP - p Microchip Technology Inc.

55 セクション 23. シリアルペリフェラルインターフェイス (SPI) 23.9 関連アプリケーションノート本書に関連するアプリケーションノートの一覧を以下に記載します 一部のアプリケーションノートは PIC32 デバイスファミリ向けではありません ただし概念は共通しており 変更が必要であったり制限事項が存在するものの利用が可能です SPI モジュールに関連する最新のアプリケーションノートは下記の通りです タイトル Interfacing Microchip s MCP41XXX/MCP42XXX Digital Potentiometers to a PIC Microcontroller Interfacing Microchip s MCP3201 Analog-to-Digital Converter to the PIC Microcontroller アプリケーションノート番号 AN746 AN719 Note: PIC32 ファミリデバイス関連のアプリケーションノートとサンプルコードはマイクロチップ社のウェブサイト ( でご覧になれます 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p

56 PIC32 ファミリリファレンスマニュアル 改訂履歴 リビジョン A (2007 年 7 月 ) 本書の初版 リビジョン B (2007 年 10 月 ) 例 23-1/23-2/23-3 と表 23-5 を改訂 リビジョン C (2007 年 10 月 ) 機密扱いのステータスを解除して内容を更新 リビジョン D (2008 年 4 月 ) ステータスを Preliminary に変更 U-0 を r-x に変更 リビジョン E (2008 年 6 月 ) レジスタ に脚注番号を追加 例 23-4 を改訂 図 23-8 を改訂 予約済みビットを Maintain as から Write に変更 ON ビット (SPIxCON レジスタ ) の Note を追加 リビジョン F (2009 年 8 月 ) このリビジョンでの変更内容は以下の通りです 文章および体裁の変更等 本書全体の細部を修正 23.2 ステータス / 制御レジスタ のレジスタの概要説明を更新 レジスタのまとめ ( 表 32-2) - クリア セット 反転レジスタおよび IFS0 IFS1 IEC0 IEC1 IPC5 IPC7 レジスタに関する記述を削除 - アドレスオフセット 列を追加 - クリア セット 反転レジスタに関する Note を追加 - 次のビットを追加 : MSSEN FRMSYPW FRMCNT<2:0> ENHBUF STXISEL<1:0> SRXISEL<1:0> RXBUFELM<4:0> SPITUR SRMT SPIRBE AND SPITBF IFS0 IFS1 IEC0 IEC1 IPC5 IPC7 レジスタを削除 下記のレジスタにクリア セット 反転レジスタに関する Note を追加 - SPIxCON - SPIxSTAT - SPIxBRG 表 23-3 サンプル 周波数 に MHz 向けの SPIxBRG 設定を追加 表 23-4 各種オフセットに対する SPI 割り込みベクタ を削除 バッファモード を追加 マスタモードの動作 に MSSEN ビットの詳細に関する段落を追加 フレーム化 SPI モード に FRMSYPW および FRMCNT ビットに関する 2 項目の箇条書きを追加 23.4 割り込み に STXISEL<1:0> および SRXISEL<1:0> ビットに関する詳細を記載した 2 段落を追加 割り込みの設定 の例 23-4 の後に 拡張バッファモードを備えたデバイス向けの SPI1 ISR に関する段落を追加 拡張バッファモードを備えたデバイス向けに SPI1 ISR サンプルコード ( 例 23-5) を追加 23.8 I/O ピンの制御 を削除 DS61106G_JP - p Microchip Technology Inc.

57 セクション 23. シリアルペリフェラルインターフェイス (SPI) リビジョン G (2011 年 10 月 ) このリビジョンでの変更内容は以下の通りです 23.1 はじめに に 関連文書と更新された SPI モジュール機能一覧に関する注釈ボックスを追加 表 23-2 オーディオプロトコルインターフェイスモードでの SPI 機能 を追加 SPI モジュールのブロック図 ( 図 23-1) を更新 SPI 制御レジスタ ( レジスタ 23-1) で下記を更新 - Note 5 を追加 - bit (FRMCNT<2:0>) の Note を更新 - bit 3-2 (STXISEL<2:0>) の定義を更新 - SPI_TBE_EVENT を SPIxTXIF SPI_RBF_EVENT を SPIxRXIF に全て置換 - MODE32 および MODE16 ビット (SPIxCON<11:10>) のビット値を更新 SPIxCON2 レジスタと MCLKSEL DISSDI FRMERR ビットを追加 ( 表 23-3 レジスタ 23-1 レジスタ 23-2 参照 ) SPI ステータスレジスタに CLR SET INV レジスタに関する Note を追加 ( 表 23-3 レジスタ 23-3 参照 ) SPI ステータスレジスタ ( レジスタ 23-3) の SRMT ビット (bit 7) のビット値定義を更新 23.3 動作モード にピンの使用に関する注釈ボックスを追加 表 23-4 サンプル 周波数 を更新 マスタモード動作 内のマスタモード動作シーケンスで 副項目 b) と c) の順番を入れ換え マスタモード動作 内の 2 つめの注釈ボックスの後に MSSEN ビットに関する段落を追加し 2 つめの注釈ボックスの内容を更新 MSSEN ビットに関する段落を追加 図 ビットモードでの SPI マスタモード動作 タイミング図に SSx ピンを追加 スレーブモード動作 内のスレーブモード動作シーケンスで 副項目 b) と c) の順番を入れ換え フレーム化 SPI モード 内の図 の直前に 追加のインターフェイスオプションに関する段落を追加 23.4 オーディオプロトコルインターフェイスモード を追加 23.5 割り込み 内の箇条書きで ビット名とレジスタへの参照を更新 デバッグモード 内の SPIxBUF の動作 以外の項目を全て削除 23.9 設計のヒント を削除 本書全体を通して LRC を LRCK に置換 サンプルコードから未検査コードウォーターマークを全て削除 表現および体裁の変更等 本書全体の細部を修正 23 シリアルペリフェラルインターフェイス (SPI) 2013 Microchip Technology Inc. DS61106G_JP - p

58 PIC32 ファミリリファレンスマニュアル NOTE: DS61106G_JP - p Microchip Technology Inc.

59 マイクロチップ社製デバイスのコード保護機能に関して次の点にご注意ください マイクロチップ社製品は 該当するマイクロチップ社データシートに記載の仕様を満たしています マイクロチップ社では 通常の条件ならびに仕様に従って使用した場合 マイクロチップ社製品のセキュリティレベルは 現在市場に流通している同種製品の中でも最も高度であると考えています しかし コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です 弊社の理解ではこうした手法は マイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます マイクロチップ社は コードの保全性に懸念を抱くお客様と連携し 対応策に取り組んでいきます マイクロチップ社を含む全ての半導体メーカーで 自社のコードのセキュリティを完全に保証できる企業はありません コード保護機能とは マイクロチップ社が製品を 解読不能 として保証するものではありません コード保護機能は常に進歩しています マイクロチップ社では 常に製品のコード保護機能の改善に取り組んでいます マイクロチップ社のコード保護機能の侵害は デジタルミレニアム著作権法に違反します そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合は デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利が 本書に記載されているデバイスアプリケーション等に関する情報は ユーザの便宜のためにのみ提供されているものであり 更新によって無効とされる事があります お客様のアプリケーションが仕様を満たす事を保証する責任は お客様にあります マイクロチップ社は 明示的 暗黙的 書面 口頭 法定のいずれであるかを問わず 本書に記載されている情報に関して 状態 品質 性能 商品性 特定目的への適合性をはじめとする いかなる類の表明も保証も行いません マイクロチップ社は 本書の情報およびその使用に起因する一切の責任を否認します マイクロチップ社の明示的な書面による承認なしに 生命維持装置あるいは生命安全用途にマイクロチップ社の製品を使用する事は全て購入者のリスクとし また購入者はこれによって発生したあらゆる損害 クレーム 訴訟 費用に関して マイクロチップ社は擁護され 免責され 損害をうけない事に同意するものとします 暗黙的あるいは明示的を問わず マイクロチップ社が知的財産権を保有しているライセンスは一切譲渡されません 商標マイクロチップ社の名称とMicrochipロゴ dspic FlashFlex KEELOQ KEELOQ ロゴ MPLAB PIC PICmicro PICSTART PIC 32 ロゴ rfpic SST SST ロゴ SuperFlash UNI/O は 米国およびその他の国におけるマイクロチップ テクノロジー社の登録商標です FilterLab Hampshire HI-TECH C Linear Active Thermistor MTP SEEVAL Embedded Control Solutions Company は 米国におけるマイクロチップ テクノロジー社の登録商標です Silicon Storage Technology は その他の国におけるマイクロチップ テクノロジー社の登録商標です Analog-for-the-Digital Age Application Maestro BodyCom chipkit chipkit ロゴ CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPF MPLAB 認証ロゴ MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode SQI Serial Quad I/O Total Endurance TSHARC UniWinDriver WiperLock ZENA Z-Scale は 米国およびその他の国におけるマイクロチップ テクノロジー社の登録商標です SQTP は 米国におけるマイクロチップ テクノロジー社のサービスマークです GestICとULPPは その他の国におけるMicrochip Technology Germany II GmbH & Co. & KG ( マイクロチップ テクノロジー社の子会社 ) の登録商標です その他 本書に記載されている商標は各社に帰属します 2012, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. ISBN: QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV == ISO/TS == マイクロチップ社では Chandler および Tempe ( アリゾナ州 ) Gresham ( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS :2009 認証を取得しています マイクロチップ社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています 2013 Microchip Technology Inc. DS61106G_JP - p

60 各国の営業所とサービス 北米本社 2355 West Chandler Blvd. Chandler, AZ Tel: Fax: 技術サポート : support URL: アトランタ Duluth, GA Tel: Fax: ボストン Westborough, MA Tel: Fax: シカゴ Itasca, IL Tel: Fax: クリーブランド Independence, OH Tel: アジア / 太平洋アジア太平洋支社 Suites , 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: Fax: オーストラリア - シドニー Tel: Fax: 中国 - 北京 Tel: Fax: 中国 - 成都 Tel: Fax: 中国 - 重慶 Tel: Fax: 中国 - 杭州 Tel: Fax: 中国 - 香港 SAR Tel: Fax: アジア / 太平洋 インド - バンガロール Tel: Fax: インド - ニューデリー Tel: Fax: インド - プネ Tel: 日本 - 大阪 Tel: Fax: 日本 - 東京 Tel: Fax: 韓国 - 大邱 Tel: Fax: 韓国 - ソウル Tel: Fax: または マレーシア - クアラルンプール Tel: Fax: ヨーロッパオーストリア - ヴェルス Tel: Fax: デンマーク - コペンハーゲン Tel: Fax: フランス - パリ Tel: Fax: ドイツ - ミュンヘン Tel: Fax: イタリア - ミラノ Tel: Fax: オランダ - ドリューネン Tel: Fax: スペイン - マドリッド Tel: Fax: イギリス - ウォーキンガム Tel: Fax: Fax: ダラス Addison, TX Tel: Fax: デトロイト Farmington Hills, MI Tel: Fax: 中国 - 南京 Tel: Fax: 中国 - 青島 Tel: Fax: 中国 - 上海 Tel: Fax: マレーシア - ペナン Tel: Fax: フィリピン - マニラ Tel: Fax: シンガポール Tel: Fax: インディアナポリス Noblesville, IN Tel: Fax: ロサンゼルス Mission Viejo, CA Tel: Fax: サンタクララ Santa Clara, CA Tel: Fax: 中国 - 瀋陽 Tel: Fax: 中国 - 深圳 Tel: Fax: 中国 - 武漢 Tel: Fax: 中国 - 西安 Tel: Fax: 台湾 - 新竹 Tel: Fax: 台湾 - 高雄 Tel: Fax: 台湾 - 台北 Tel: Fax: タイ - バンコク Tel: Fax: トロント Mississauga, Ontario, Canada Tel: Fax: 中国 - 厦門 Tel: Fax: 中国 - 珠海 Tel: Fax: /20/13 DS61106G_JP - p Microchip Technology Inc.

PIC24F Reference Manual Sect.23

PIC24F Reference Manual Sect.23 第 23 章 ハイライト 本章では次のトピックについて説明します 23.1 はじめに... 23-2 23.2 ステータスと制御レジスタ... 23-3 23.3 動作モード... 23-7 23.4 マスターモードのクロック周波数... 23-18 23.5 省電力モードでの動作... 23-19 23.6 レジスタマップ... 23-20 23.7 電気的仕様... 23-21 23.8 関連するアプリケーションノート...

More information

Section 36. Programmable Cyclic Redundancy Check (CRC)

Section 36. Programmable Cyclic Redundancy Check (CRC) 36 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 36. プログラマブル巡回冗長検査 () プログラマブル ハイライト 本セクションには以下の主要項目を記載しています 36.1 はじめに... 36-2 36.2 モジュールの概要... 36-3 36.3 レジスタ... 36-3 36.4 エンジン... 36-6 36.5

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介 SAU シリアル アレイ ユニット ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ SAU の概要 UART 通信機能のプログラム サンプル紹介 2 SAU の概要 3 SAU の機能 クロック同期式調歩同期式マスタ動作のみ チャネル 0: 送信チャネル 1: 受信 4 UART

More information

-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

-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): 複数のユニットで共有される信号線システム内の データの通り道

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D

More information

dsPIC33E FRM - Section #. Title

dsPIC33E FRM - Section #. Title 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 19. I 2 C (Inter-Integrated Circuit ) ハイライト 本セクションには下記の主要項目を記載しています 19.1 はじめに... 19-2 19.2 I 2 C バスの特性... 19-4 19.3 制御 / ステータスレジスタ... 19-7 19.4

More information

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

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ arduino プログラミング課題集 ( Ver.5.0 2017/06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイコンから伝える 外部装置の状態をマイコンで確認する 信号の授受は 入出力ポート 経由で行う (2) 入出力ポートとは?

More information

PIC24F Family Reference Manual Section 9 WDT

PIC24F Family Reference Manual Section 9 WDT 第 9 章 (WDT) ハイライト 本章では次のトピックについて説明します 9.1 はじめに... 9-2 9.2 WDT の動作... 9-2 9.3 レジスタマップ... 9-5 9.4 設計の秘訣... 9-6 9.5 関連するアプリケーションノート... 9-7 9.6 改版履歴... 9-8 9 2007 Microchip Technology Inc. Advance Information

More information

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

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? アルテラ FPGA 向け PLL リコンフィグの応用回路 1. PLL リコンフィグとは アルテラ FPGA は PLL 機能を内蔵しています PLL を利用して基本周波数を逓倍 分周したクロックを利用することができます 通常 FPGA 開発ツール Quartus2( 以下 Q2) の MegaWizard プラグインマネージャを利用して PLL を設定し 希望のクロック周波数を得ることができます

More information

UMB-CP2114 User's Manual

UMB-CP2114 User's Manual UMB-CP2114 ユーザーズマニュアル 第 1 版 金子システム株式会社 1 ご注意 1. 本資料に記載されている内容は本資料発行時点のものであり 予告なく変更することがあります 当社製品のご購入およびご使用にあたりましては 当社ホームページを通じて公開される情報を参照ください 2. 当社から提供する情報の正確性と信頼性には万全を尽くしていますが 誤りがないことを保証するものではありません 当社はその使用に対する責任を一切負いません

More information

AN-1077: ADXL345 Quick Start Guide

AN-1077: ADXL345 Quick Start Guide 09119-002 TOP 09119-001 ADXL345 Quick Start Guide by Tomoaki Tsuzuki APPLICATION NOTE PHYSICAL MOUNTING ADXL345 は 3 軸の加速度センサーです 検出軸方向を Figure1 に示します ADXL345 は検出軸の正方向に加速されると正極性の出力になります 重力は検出軸方向の逆方向の極性が出力されるので注意が必要です

More information

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

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

More information

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

ヤマハDante機器と他社AES67機器の接続ガイド はじめに AES67 は 高性能なデジタル IP ネットワークの相互接続を実現するための標準規格です AES67 は や Ravenna Q-LAN Livewire WheatNet などの異なるネットワーク規格で構築されたシステム間で オーディオ信号を送受信する手段を提供します ヤマハも 機器のアップデートにより順次 AES67 への対応を開始し 第一弾としてデジタルミキシングコンソール CL/QL

More information

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

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設 APX-3312 と APX-3302 の差分一覧 No. OM12021D APX-3312 と APX-3302 は どちらも同じ CameraLink 規格 Base Configuration カメラ 2ch 入力可能なボードになります 本書では APX-3312 をご利用になられているお客様が APX-3302 をご利用になられる場合の資料として 両ボードについての差異 を記述しております

More information

39733a.fm

39733a.fm 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 45. 拡張データ空間 (EDS) を備えたデータメモリ ハイライト 本セクションには下記の主要項目を記載しています 45.1 はじめに... 45-2 45.2 データメモリの構成... 45-3 45.3 拡張データ空間... 45-7 45.4 データ配置... 45-14

More information

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

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

More information

39734a_JP.fm

39734a_JP.fm 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 46 セクション 46 スケーラブルコンパレータモジュール スケーラブルコンパレータモジュール ハイライト 本セクションでは 以下の項目について説明します 46.1 はじめに...46-2 46.2 制御レジスタ...46-4 46.3 コンパレータの動作...46-7 46.4 コンパレータ応答時間...46-7

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介 ADC A/D コンバータ ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ ADC の概要 ソフトウエア トリガ セレクト モード 連続変換モードのプログラム サンプル紹介 2 ADC の概要 3 ADC のブロック図 パワー オフが可能 入力 選択 記憶 比較 基準電圧 変換結果

More information

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O) ALTIMA Corp. SOPC Builder ペリフェラル簡易ユーザ マニュアル PIO (Parallel I/O) ver.1.0 2010 年 8 月 ELSENA,Inc. SOPC Builder ペリフェラル簡易ユーザ マニュアル PIO (Parallel I/O) 目次 1. はじめに... 3 2. PIO 概要... 3 2-1. PIO 概要... 3 2-2. PIO

More information

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /***************************************** 1 /******************************************************************************/ 2 /* IIC(Inter IC Bus) の制御 */ 3 /******************************************************************************/ 4 /*

More information

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

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

More information

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

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル < 概要 > WAGO-I/O-SYSTEM750 シリーズ PROFIBUS バスカプラ / コントローラと 三菱電機 製 PROFIBUS ユニット QJ71PB92D とのコンフィグレーション手順を説明しております < 使用機器接続図 > 下記機器を準備し 図の通り接続しました WAGO-I/O-SYSTEM PROFIBUS バスカプラ / コントローラ 750-xxx および I/O モジュール

More information

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

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続 CMOS リニアイメージセンサ用駆動回路 C13015-01 CMOS リニアイメージセンサ S11639-01 等用 C13015-01は当社製 CMOSリニアイメージセンサ S11639-01 等用に開発された駆動回路です USB 2.0インターフェースを用いて C13015-01と PCを接続することにより PCからC13015-01 を制御して センサのアナログビデオ信号を 16-bitデジタル出力に変換した数値データを

More information

Section 15. Input Capture

Section 15. Input Capture 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 15. 入力キャプチャ ハイライト 本セクションには下記の主要項目を記載しています 15.1 はじめに... 15-2 15.2 入力キャプチャレジスタ... 15-4 15.3 タイマの選択... 15-8 15.4 入力キャプチャの有効化... 15-8 15.5 入力キャプチャイベントモード...

More information

6

6 Stellaris LM3S9B96 Microcontroller 15 章同期式シリアル インターフェイス (SSI) JAJU139 SPMS182D 翻訳版 (15 章 ) 最新の英語版 : http://www.ti.com/lit/gpn/lm3s9b96 この資料は Texas Instruments Incorporated(TI) が英文で記述した資料を 皆様のご理解の一助として頂くために日本テキサス

More information

I2Cコントローラ、ハード・プロセッサ・システム(HPS)のテクニカル・リファレンス・マニュアル(TRM)

I2Cコントローラ、ハード・プロセッサ・システム(HPS)のテクニカル・リファレンス・マニュアル(TRM) 11? 2012? cv_54020-1.2 cv_54020-1.2 I 2 C コントローラは ボード上の集積回路との間の通信リンクを提供しています 温度センサ および電圧レベル変換などのようなアプリケーションから EEPROM A/D と D/A コンバータ コーデック および多くのマイクロプロセッサの種類に使用され シリアル データ ライン (SDA) とシリアル クロック (SCL) のシンプルな

More information

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

MODBUS ユーザーズマニュアル 페이지 1 / 23 MODBUS ユーザーズマニュアル 페이지 1 / 23 目次 1. 概要... 1 2. GX7 サポートファンクションコード... 1 3. GX7 サポートリファレンス... 1 4. GX7 サポートリファレンスとファンクションコードの関係... 2 5. XD+ 内プロジェクト設定でオプション別の機能... 4 6. トラブルシューティング... 9 A. APPENDIX... 12 1.

More information

IrDA型赤外線タグ仕様

IrDA型赤外線タグ仕様 IrDA 型赤外線タグ仕様 Specification of IrDA infrared active tag 目次 (Table of Contents) はじめに...3 規定範囲...3 本書の位置付け...3 参照規定...3 用語定義...3 1. IrDA 型赤外線タグの物理層規定...4 1.1. 概要...4 1.2. バイトフォーマット...5 1.2.1. パルス幅許容値...5

More information

(Microsoft Word -

(Microsoft Word - マイクロチップ社アプリケーションノート AN-734 抄訳 nobcha 著者マイクロチップ社 Srephen Bowking & Naveen Raj 始めに 多くの PIC マイコンには同期シリアルポート (SSP) や主同期シリアルポート (MSSP) が搭載されています この周辺回路は SPI や i2c プロトコルがが使用できるようになっています このap 資料の目的は i2c のプロトコルを読者により深め

More information

変更履歴 Revision 日付 内容 /10/10 初版 /10/24 車載関連説明文削除 /10/06 会社所在地を本社に修正 2

変更履歴 Revision 日付 内容 /10/10 初版 /10/24 車載関連説明文削除 /10/06 会社所在地を本社に修正 2 DATA SHEET TE7740RPF Processor Peripheral I/O Expander 1 変更履歴 Revision 日付 内容 1.00 2014/10/10 初版 1.01 2014/10/24 車載関連説明文削除 1.02 2015/10/06 会社所在地を本社に修正 2 目次 1. 概要... 7 2. 特徴... 7 3. ブロック図... 9 4. 端子配列...

More information

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

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の ) 割り込み / ポーリング /DMA/DTC(RL78 での周辺機能制御 ) 周辺機能を介してデータ転送を制御する方法には, 大きく分けて 3 つの方法があります その中で DMA や DTC は CPU を介することなく, 高速にデータを転送することができますが, 使用できるチャネル数が限られます そのため, たとえば,CSI のスレーブでの高速通信のように限られた時間内に転送が必要な場合に使用できます

More information

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

ターゲット項目の設定について Code Debugger CodeStage マニュアル別冊 ターゲット 項目の設定について Rev. 2.8 2018 年 4 月 13 日 BITRAN CORPORATION ご注意 1 本書及びプログラムの内容の一部または 全部を無断で転載することは プログラムのバックアップの場合を除き 禁止されています 2 本書及びプログラムの内容に関しては 将来予告なしに変更することがあります 3 当社の許可なく複製

More information

スライド 1

スライド 1 RX62N 周辺機能紹介データフラッシュ データ格納用フラッシュメモリ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ データフラッシュの概要 プログラムサンプル 消去方法 書き込み方法 読み出し方法 FCUのリセット プログラムサンプルのカスタマイズ 2 データフラッシュの概要 3 データフラッシュとは フラッシュメモリ

More information

Notes and Points for TMPR454 Flash memory

Notes and Points for TMPR454 Flash memory 表紙 TMPR454 内蔵 Flash メモリ対応版手順書 株式会社 DTS インサイト ご注意 (1) 本書の内容の一部または 全部を無断転載することは禁止されています (2) 本書の内容については 改良のため予告なしに変更することがあります (3) 本書の内容について ご不明な点やお気付きの点がありましたら ご連絡ください (4) 本製品を運用した結果の影響については (3) 項にかかわらず責任を負いかねますのでご了承ください

More information

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

Microsoft PowerPoint - 3.3タイミング制御.pptx 3.3 タイミング制御 ハザードの回避 同期式回路と非同期式回路 1. 同期式回路 : 回路全体で共通なクロックに合わせてデータの受け渡しをする 通信における例 :I 2 C(1 対 N 通信 ) 2. 非同期式回路 : 同一のクロックを使用せず データを受け渡す回路間の制御信号を用いてデータの受け渡しをす 通信における例 :UART(1 対 1 通信 ) 2 3.3.1 ハザード 3 1 出力回路のハザード

More information

Microsoft Word - SUA007

Microsoft Word - SUA007 アルテラ社ツール Qsys を利用した Smart-USB Plus 製品用リファレンス回路 SRAM-FIFO モジュール 1. SRAM-FIFO モジュールとは? Smart-USB Plus 製品に搭載する高速同期 SRAM を FIFO 化するモジュールです アルテラ社 AVALON バス仕様に準拠しています 既に提供している GPIF-AVALON ブリッジ (SUA006 アプリケーションノート参照

More information

Microsoft Word - PCI-X_PCIeバスのデータ転送-ver1.0.docx

Microsoft Word - PCI-X_PCIeバスのデータ転送-ver1.0.docx データ転送時におけるエラー / ボード認識不具合に関する資料 2012/06/20 目次 画像データ転送時に発生する問題 ( 過去の事例 )... 3 不具合の発生したチップセットの例... 7 Intel 社製チップセット... 8 テレダインダルサが推奨するチップセットの例... 9 トランザクション層の機能... 11 PCI Express のレーン順序と差動信号の特性... 12 レーン0とレーン1で送信側と受信側で速度差を吸収する機能...

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 MTU2 マルチファンクションタイマパルスユニット 2 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ MTU2 の概要 プログラムサンプル (1) インプットキャプチャ機能 プログラムサンプル (2) PWM モード プログラムサンプル (3) 相補 PWM モード プログラムサンプルのカスタマイズ

More information

Report Template

Report Template MachXO2 EFB(Embedded Function Block) 1 目次 1 このドキュメントの概要 3 2 EFB の構成 4 3 EFB とハードマクロの生成と注意事項 5 3.1 EFB Enables タブの設定... 5 3.2 I2C タブの設定... 6 3.3 SPI タブの設定... 7 3.4 Timer/Counter タブの設定... 9 4 Wishbone から

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

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

目次 1 本アプリケーションノートの目的 送信手順 基本的な送信方法 キャリアセンスなし送信 キャリアセンスあり送信 ACK 期待送信 フレームメモリへのデータの設定 INFO フレーム送受信方法 パナソニック ( 株 ) AIS 社セミコンダクター事業部 1 AP-MN87400_401-002 目次 1 本アプリケーションノートの目的...3 2 送信手順...3 2.1 基本的な送信方法...3 2.1.1 キャリアセンスなし送信...3 2.1.2 キャリアセンスあり送信...4 2.1.3 ACK 期待送信...4 2.2 フレームメモリへのデータの設定...5

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2015 年度 5 セメスター クラス D 計算機工学 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節 ) 大学院情報科学研究科鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語 )

More information

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

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V - CCD イメージセンサ S11850-1106, S11511 シリーズ用 は 当社製 CCDイメージセンサ S11850-1106, S11511 シリーズ用に開発された駆動回路です USB 2.0インターフェースを用いて とPCを接続することにより PCからの制御でセンサのアナログビデオ信号をデジタル出力に変換し PCに取り込むことができます は センサを駆動するセンサ基板 センサ基板の駆動と

More information

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード] RL78/G14 周辺機能紹介タイマ RD ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ タイマ RD の概要 PWM 機能のプログラム サンプル紹介 相補 PWM モードのプログラム サンプル紹介 2 タイマ RD の概要 3 タイマ RD の機能 モード 使用チャネル チャネル0, チャネル1 独立で使用

More information

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

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

More information

Introducing_SPIStorm-JP

Introducing_SPIStorm-JP SPI Storm の紹介 USB での SPI Storm は Byte Paradigm の USB Serial Protocol host adapter です SPI Storm は マスターとして SPI (Serial Peripheral Interface) 3-wires SPI dual-spi quad-spi プロトコルをサポートします それは PC から最大 100MHz

More information

AN424 Modbus/TCP クイックスタートガイド CIE-H14

AN424 Modbus/TCP クイックスタートガイド CIE-H14 Modbus/TCP クイックスタートガイド (CIE-H14) 第 1 版 2014 年 3 月 25 日 動作確認 本アプリケーションノートは 弊社取り扱いの以下の機器 ソフトウェアにて動作確認を行っています 動作確認を行った機器 ソフトウェア OS Windows7 ハードウェア CIE-H14 2 台 ソフトウェア ezmanager v3.3a 本製品の内容及び仕様は予告なしに変更されることがありますのでご了承ください

More information

:30 18:00 9:30 12:00 13:00 17:00

:30 18:00 9:30 12:00 13:00 17:00 http://pioneer.jp/support/ 0120-944-222 044-572-8102 9:30 18:00 9:30 12:00 13:00 17:00 この取扱説明書について 製品本体の USB DAC 端子に USB ケーブルでパソコンを接続すると パソコンからの音声信号を再生できます この機能を使用するためには 専用のドライバーソフトウェアをパソコンにインストールする必要があります

More information

Section 16. Output Compare

Section 16. Output Compare 注 意 : この 日 本 語 版 文 書 は 参 考 資 料 としてご 利 用 ください 最 新 情 報 は 必 ずオリジ ナルの 英 語 版 をご 参 照 願 います セクション. 出 力 コンペア 出 力 コンペア ハイライト 本 セクションには 以 下 の 主 要 項 目 を 記 載 しています.1 はじめに...-2.2 出 力 コンペアレジスタ...-3.3 動 作...-6.4 割 り

More information

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

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? レジスタ アクセスの拡張機能 1. レジスタ アクセスの概要 Smart-USB Plus 製品で利用できるレジスタ アクセスとは FPGA 内にハードウエア レジスタを実装し ホスト PC の制御ソフトウエアから USB 経由でそれらのレジスタに値を設定したり レジスタの設定値を読み出すことができる機能です このレジスタ アクセス制御には USB バス仕様に基づく コントロール転送 を利用しています

More information

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

MW100 Modbusプロトコルによるデータ通信の設定について Modbus プロトコルによるデータ通信の設定について 概要 設定の手順 DAQMASTER の Modbus 通信について 設定の手順を説明します このマニュアルでは イーサネットを使った Modbus 通信 (Modbus/TCP) で 2 台の を接続し データの送受信をするまでの手順を取り上げます なお Modbus クライアント機能を使うには 演算機能 (/M1 オプション ) が必要です

More information

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

PLCシリアル通信 MODBUS通信 データ送信/受信プログラム例 MODBUS RTU 通信時の配線例 ( 例 )FPΣ と弊社製温調器 KT シリーズ通信します マスタとして使用する FPΣ の MODBUS マスタ機能を使用し スレーブの KT シリーズのデータを読み出し 書き込みを行います マスタ データ書き込み スレーブ データ読み出し RS485 FPΣ の通信カセットは COM3 カセット (FPG-COM3) もしくは COM4 カセット (FPG-COM4)

More information

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

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A STM32L_ADC の説明 V003 2014/03/30 STM32L-Discovery の A/D 入力を行うプログラムです A/D CH0 ~ A/D CH3 の 4 本の入力が可能です 提供する PC のアプリケーション Access_SerialPort を使用して UART( 非同期シリアル通信 ) により A/D 入力の表示を行うことができます 無料の開発ツール Atollic TrueSTUDIO

More information

DUSx200 シリーズコントローラ I2C インターフェース仕様書

DUSx200 シリーズコントローラ I2C インターフェース仕様書 DUSx200 シリーズコントローラ I2C インターフェース仕様書 目次 1. 変更履歴... 2 2. 適用... 3 3. ホストインターフェース... 3 3.1. 通信タイミング... 3 3.2. 制御信号... 3 3.3. 通信仕様... 4 3.4. プロトコル仕様... 4 4. レポート形式... 5 4.1. タッチ座標データ... 5 4.2 水レポート... 5 5. メンテナンスコマンド...

More information

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

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN 第 8 回中間試験前の演習 問.VHDL ソースコードを読む () 次の VHDL のソースコードが記述しているゲート回路の回路図を示せ. use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Logic is port ( A : in std_logic_vector(3

More information

アナログ・接点変換器

アナログ・接点変換器 LoRa/ 通信変換器 HLR-RS485 通信仕様書 (Modbus) インターフェース 2019 年 02 月 19 日 改訂履歴 日付改訂者改訂内容 2018/09/14 野村初版 2019/02/19 山下 改訂 1 P12 説明文修正 レジスタ割付修正 P13 キャリアセンス異常エラー追加 承認確認作成 ( 3 ) 目次 1 概要... 4 2 基本仕様... 4 3 通信モードについて...

More information

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

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です ACTIVE TOUCH 拡張部品取扱説明書 - 共有メモリアクセスコンポーネント - 1. はじめに 1 (1) 概要... 1 (2) INpMac のインストール... 1 2. Windows アプリケーションとの連携 2 (1) コントロール ( 部品 ) の登録... 2 (2) データの関連付け... 3 3. INtime アプリケーションとの連携 4 (1) 部品 ( コンポーネント

More information

Microsoft Word - dg_sataahciip_refdesign_jp.doc

Microsoft Word - dg_sataahciip_refdesign_jp.doc SATA AHCI-IP コア リファレンス デザイン説明書 Rev1.3J 2017/03/22 本ドキュメントは AHCI-IP コア実機デモ システムのリファレンス デザインを説明したものです SATA-IP コアの上位に AHCI-IP コアを実装することで アプリケーション レイヤのドライバを介して Linux 等の OS から接続 SATA デバイスを直接ドライブとして認識でき ファイル

More information

Microsoft Word - COP_MasterSim_Installation_Supplement_A00.doc

Microsoft Word - COP_MasterSim_Installation_Supplement_A00.doc Anybus CANopen Master Simulator インストール手順補足説明資料 Version: A00 エイチエムエス インダストリアルネットワークス株式会社 222-0033 神奈川県横浜市港北区新横浜 3-19-5 新横浜第 2 センタービル 6F TEL : 045-478-5340 FAX : 045-476-0315 URL www.anybus.jp EMAIL セールス

More information

TFTP serverの実装

TFTP serverの実装 TFTP サーバーの実装 デジタルビジョンソリューション 佐藤史明 1 1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 2 プレゼンのテーマ 組み込みソフトのファイル転送を容易に テーマ選択の理由 現在従事しているプロジェクトで お客様からファームウェアなどのファイル転送を独自方式からTFTPに変更したいと要望があった

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 TMR 8 ビットタイマ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ TMR の概要 プログラムサンプル (1) パルス出力機能 (8 ビットモード ) プログラムサンプル (2) インターバルタイマ機能 (16 ビット コンペアマッチカウントモード ) プログラムサンプルのカスタマイズ

More information

US-122MK2/144MK2_RN-J_RevF

US-122MK2/144MK2_RN-J_RevF 目次 最新情報... 1 新機能... 2 Windows ドライバー... 2 Mac OS X ドライバー... 2 メンテナンス項目... 3 ファームウェア... 3 Windows ドライバー... 3 Mac OS X ドライバー... 3 既知の不具合... 4 Windows ドライバー... 4 Mac OS X ドライバー... 4 ご注意... 4 デジタル入力を使用する場合...

More information

Section 33. Audio Digital-to-Analog Converter (DAC)

Section 33. Audio Digital-to-Analog Converter (DAC) 注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 33. オーディオ コンバータ (DAC) ハイライト 本セクションには以下の主要項目を記載しています 33.1 はじめに... 33-2 33.2 主な特長... 33-3 33.3 DAC レジスタ... 33-3 33.4 モジュールの動作... 33-7 33.5 割り込みとステータス...

More information

MS5145 USB シリアル エミュレーション モードの設定

MS5145 USB シリアル エミュレーション モードの設定 MS5145-AC-U 補足設定 2010 年 7 月株式会社エイポック http://www.a-poc.co.jp/ USB シリアルエミュレーションモードの設定 1. 概要 USB シリアル エミュレーション モードとはバーコードリーダーを USB で接続していながら RS-232C 接続機器としてパソコンに認識させる設定です 読み取ったバーコード データは COM ポートにシリアルデータとして入力します

More information

増設メモリ 1. 機能 型名 N N N N N GB 16GB 3 (x2 枚 ) (x2 枚 ) (x2 枚 ) (8GBx2 枚 ) (16GBx2 枚 ) DDR3-1066(PC3-8500) 動作クロック

増設メモリ 1. 機能 型名 N N N N N GB 16GB 3 (x2 枚 ) (x2 枚 ) (x2 枚 ) (8GBx2 枚 ) (16GBx2 枚 ) DDR3-1066(PC3-8500) 動作クロック (2009/10/28) 増設メモリ 1. 機能 型名 N8102-356 N8102-357 N8102-358 N8102-359 N8102-360 8GB 16GB 3 (x2 枚 ) (x2 枚 ) (x2 枚 ) (8GBx2 枚 ) (16GBx2 枚 ) DDR3-1066(PC3-8500) 動作クロック 533MHz( 差動 ) 1.5V 型名 N8102-351 N8102-352

More information

UCB User's Manual

UCB User's Manual UCB-21489 ユーザーズマニュアル 第 1 版 金子システム株式会社 1 ご注意 1. 本資料に記載されている内容は本資料発行時点のものであり 予告なく変更することがあります 当社製品のご購入およびご使用にあたりましては 当社ホームページを通じて公開される情報を参照ください 2. 当社から提供する情報の正確性と信頼性には万全を尽くしていますが 誤りがないことを保証するものではありません 当社はその使用に対する責任を一切負いません

More information

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR3-1333(PC ) SDRAM-DIMM, Unbuffered,ECC 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102

増設メモリ 1. 機能 型名 N N N (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR3-1333(PC ) SDRAM-DIMM, Unbuffered,ECC 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102 (2009/12/08) 増設メモリ 1. 機能 型名 N8102-339 N8102-340 N8102-341 (x1 枚 ) (x1 枚 ) (x1 枚 ) DDR3-1333(PC3-10600) SDRAM-DIMM, Unbuffered,ECC 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-330 N8102-331 N8102-332 N8102-333 8GB

More information

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

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

More information

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

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 hiromi@tac.tsukuba.ac.jp 目次 クレート コントローラ CC/7700...2 NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U9201...4 デッドタイム カウンター NK-1000...5 AD811 8ch ADC (Ortec)...6 C011 4ch

More information

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

(Microsoft Word - \216\346\220\340SiTCP-VME-Master\(Rev26\).doc) SiTCP VME-Master Master module Mode2 BBT-002 002-2 取扱説明書 Rev 2.6 (June21, 2016) 変更履歴 Rev 変更日 変更ページ 変更内容 0.4 2008/02/13 P12 Address Fix モード時の制限事項を追加 0.5 2008/02/14 P3, 11 非整列転送の非サポートを明記 1.0 2008/04/04 P6

More information

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

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート ) TrueSTUDIO 用 F4D_VCP の説明 V001 2014/07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです 無料の試用版開発ツール Atollic TrueSTUDIO for ARM Lite で作成したプロジェクトです ビルド可能なプログラムのコードサイズが 32Kbyte 以内の制限があります プログラムの開始番地は 0x08000000

More information

増設メモリ 1. 機能 型名 N8102-G342 N8102-G343 N8102-G344 1GB (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC 1.5V 型名 N N N (1GBx1

増設メモリ 1. 機能 型名 N8102-G342 N8102-G343 N8102-G344 1GB (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC 1.5V 型名 N N N (1GBx1 (2010/04/26) 増設メモリ 1. 機能 型名 N8102-G342 N8102-G343 N8102-G344 1GB (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC 1.5V 型名 N8102-342 N8102-343 N8102-344 (1GBx1 枚 ) (x1 枚 ) (x1 枚 ) SDRAM-DIMM, Unbuffered,ECC

More information

増設メモリ (2010/06/17)

増設メモリ (2010/06/17) (2010/06/17) 1. 機能 型名 N8102-371 N8102-372 N8102-373 N8102-374 N8102-375 16GB (1GBx1 枚 ) (2GBx1 枚 ) (x1 枚 ) (x1 枚 ) (16GBx1 枚 ) 1.35V/1.5V 型名 N8102-387 N8102-388 N8102-389 N8102-390 N8102-391 2GB 16GB 32GB

More information

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

(Microsoft Word - JE000250_\203\312TURTLE-RWModbusTCP\220\332\221\261\220\340\226\276\217\221\(4\224\305\).doc) 東洋ワイヤレス計測システム µturtle-rw Modbus/TCP 接続説明書 4.0 版 2013 年 02 月 28 日 JE000250 はじめに このたびは 東洋ワイヤレス計測システムをお買い上げいただき まことにありがとうございます この µturtle-rw Modbus/TCP 接続説明書 は Modbus/TCP を用いて µturtle-rw へ接続し データや設定を読み書きする操作について説明しています

More information

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

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ LabVIEW 用リファレンス制御アプリケーション RefAppLV の使い方 概要 LabVIEW 開発ツールで設計したリファレンス制御アプリケーションです LabVIEW を所有していないユー ザ環境でも インストーラを利用して RefAppLV.exe を利用することができます 機能 1. 複数台ボード制御 2. USB コンフィグ機能 3. レジスタアクセス機能 4. 拡張レジスタアクセス機能

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 04-05 回 LEDを用いたI/O 制御担当 : 植村 実験の目的 本実験ではマイコンシステムを用いた信号の入出力の制御方法を理解することを目的とし, マイコンのアーキテクチャを理解 実装するとともに, アセンブラによるプログラミング技術の習得を行う. 回路の構成として,PIC16F84A を用いてスイッチを入力とする LED の点灯 / 消灯の出力操作を行う回路ならびにアセンブラプログラムを実装する.

More information

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

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

More information

増設メモリ 1. 機能 型名 N N N N GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1333(PC ) 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-3

増設メモリ 1. 機能 型名 N N N N GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1333(PC ) 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-3 (2010/01/22) 増設メモリ 1. 機能 型名 N8102-361 N8102-362 N8102-363 N8102-364 8GB (x1 枚 ) (x1 枚 ) (x1 枚 ) (8GBx1 枚 ) DDR3-1333(PC3-10600) 動作クロック 667MHz( 差動 ) 1.5V 型名 N8102-365 N8102-366 N8102-367 (x1 枚 ) (x1 枚 )

More information

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

Microsoft Word - FCTT_CS_Mod( )Jver1.doc FCTT 通信仕様書 (Modbus RTU) 目 次 1. 通信仕様 2 2. 送受信プロトコル 2 3. -16 の計算方法 3 4. 通信手順フローチャート 4 5. FCTT 通信端子配列 4 6. Modbus プロトコル RTU モード 5 6.1 5 6.2 異常応答 5 6.3 計測値データ要求 6 6.4 機種情報要求 7 7. 通信モニタ機能 8 1 1. 通信仕様 項目 仕様

More information

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

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ 第 2 回 本日の内容割り込みとは タイマー 割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれば 次の動作に移るし そうでなければ また少し待ってから同じことを繰り返す

More information

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

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000 CoIDE 用 STM32F4_UART2 の説明 V002 2014/03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000000 です デバッグが可能です 提供する PC のアプリケーションの Access_SerialPort

More information

8051 개발보드 메뉴얼

8051 개발보드 메뉴얼 ㄴㄴㄴ標準 U-STYLE ボード (Model:DM-USTYLE V1.0 ) マニュアル 改訂日 : 2015 年 11 月 24 日 1. Arduino At Heartプロトタイプ標準 U STYLEボード (DM-USTYLE V1.0) のご紹介 アドゥイノウノブートローダが書き込んだATMEGA328P-PUを使用 Arduino At Heart( ) プロトタイプのボードの互換コネクタと

More information

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - kougi7.ppt 到達目標 スーパバイザモード, 特権命令, 割り込み CPU の割り込みメカニズム 割り込みの種類ごとに, 所定の例外処理が呼び出される スーパーバイザモードに, 自動的に切り替わる 割り込み終了後に 元のモード に戻る ハードウエア割り込みについて 割り込み禁止 割り込み発生時の CPU の挙動 現在の処理を中断 例外処理用のプログラム ( ハンドラともいう ) が起動される プログラム実行の流れ

More information

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー SLCONFIG の操作 2011.03.02 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストール 設定 Soliloc-10G Slconfig の開発 提供ならびに本書を作成するに当たり情報提供を頂いた

More information

オートビュー

オートビュー IODEP マニュアル PELCO マトリクススイッチャ CM6800 rev 1.0 2013/04/18 株式会社 Javatel 1 目次 IODEP マニュアル PELCO マトリクススイッチャ CM6800 rev 1.0... 1 目次... 2 1 この文書について... 3 2 変更履歴... 4 3 ハードウェアの準備... 5 3.1 PELCO マトリクススイッチャ CM6800

More information

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

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156- CCD リニアイメージセンサ用駆動回路 C11165-02 CCD リニアイメージセンサ (S11155/S11156-2048-02) 用 C11165-02は 当社製 CCDリニアイメージセンサ S11155/S11156-2048-02 用に開発された駆動回路です S11155/S11156-2048-02と組み合わせることにより分光器に使用できます C11165-02 は CCD 駆動回路

More information

オートビュー

オートビュー IODEP マニュアル SELCO マルチプレクサ SXC-16LT rev 1.0 2013/04/18 株式会社 Javatel 2013 Javatel 1 目次 IODEP マニュアル SELCO マルチプレクサ SXC-16LT rev 1.0... 1 目次... 2 1 この文書について... 3 2 変更履歴... 4 3 ハードウェアの準備... 5 3.1 SELCO マルチプレクサ

More information

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で FLASH アクセス仕様書 S1V3S344 S1V3G340 Rev.1.00 本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報であり これら起因する第三者の権利

More information

目次 USBドライバダウンロードの手順...2 USBドライバインストールの手順...3 インストール結果を確認する...19 USBドライバアンインストール / 再インストールの手順...21 USB ドライバダウンロードの手順 1. SHL21 のダウンロードページからダウンロードしてください

目次 USBドライバダウンロードの手順...2 USBドライバインストールの手順...3 インストール結果を確認する...19 USBドライバアンインストール / 再インストールの手順...21 USB ドライバダウンロードの手順 1. SHL21 のダウンロードページからダウンロードしてください AQUOS PHONE SERIE SHL21 USB ドライバインストールマニュアル 本製品の環境は以下のとおりです USB 1.1 以上に準拠している USB 搭載のパソコンで Microsoft Windows XP(32bit)/Windows Vista /Windows 7/ Windows 8 がプリインストールされている DOS/V 互換機 (OS のアップグレードを行った環境では

More information

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

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド RH850の割り込み / 例外実現方法 CC-RH アプリケーションガイド R20UT3546JJ0101 2018.10.12 ソフトウェア開発統括部 ソフトウェア技術部ルネサスエレクトロニクス株式会社 アジェンダ 概要ページ 03 割り込み / 例外発生時に実行する関数の定義ページ 10 直接ベクタ方式のベクタの定義ページ 17 テーブル参照方式のベクタの定義ページ 25 その他 割り込み制御ページ

More information

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

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB) コンピュータ工学講義プリント (12 月 11 日 ) 今回は ローテイト命令を用いて 前回よりも高度な LED の制御を行う 光が流れるプログラム 片道バージョン( 教科書 P.119 参照 ) 0.5 秒ごとに 教科書 P.119 の図 5.23 の様に LED の点灯パターンが変化するプログラムを作成する事を考える この様にすれば 光っている点が 徐々に右に動いているように見え 右端まで移動したら

More information

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

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R TrueSTUDIO 用 L152CD_UART1 の説明 V001 2014/10/22 UART( 非同期シリアル通信 ) で送受信を行う STM32L152C-DISCO のプロジェクトサンプルです STM32L152C-DISCO は STMicroelectronics 社製の Cortex-M3 ARM CPU である STM32L152RCT6 を搭載した基板です 試用版の開発ツール

More information

TF Series with Tio1608-D System Setup Guide

TF Series with Tio1608-D System Setup Guide システムセットアップガイド 第 1 版 : 2016 年 6 月 このガイドでは ヤマハデジタルミキシングコンソール TF シリーズ と I/O ラック Tio1608-D を使用したミキシングシステムのセットアップ手順や Tio1608-D の台数に応じたシステム例を紹介します TF シリーズは単体でも使用することができますが Tio1608-D を併用することで簡単にシステムを拡張することができ

More information

TD-UARTip 設計仕様書

TD-UARTip 設計仕様書 TD-HDLCip 設計仕様書 Version.23 -- TD-HDLCip 変更履歴 Ver.2 インレビアム初版 Ver.22 26/8/3 6 頁 25 頁 26 頁 XTLAST の機能説明修正 CPU リード / ライトタイミングに注意事項追記 送信 DMA ライトタイミングに注意事項追記 誤字脱字 文字の統一 Ver.22-2/4/3 6 頁 修正 Ver.23 24/4/ 8-22

More information

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

VelilogHDL 回路を「言語」で記述する 2. ソースを書く 数値表現 数値表現形式 : ss'fnn...n ss は, 定数のビット幅を 10 進数で表します f は, 基数を表します b が 2 進,o が 8 進,d が 10 進,h が 16 進 nn...n は, 定数値を表します 各基数で許される値を書くこ Verilog ビット幅 基数 2 進表現 1'b0 1 2 進 0 4'b0100 4 2 進 0100 4'd4 4

More information

株式会社日新テクニカ USB シリアル CAN 変換器 /8/22 ホームページ : メール

株式会社日新テクニカ USB シリアル CAN 変換器 /8/22 ホームページ :  メール USB シリアル CAN 変換器 http://www.nissin-tech.com info@nissin-tech.com 2011/8/22 copyright@2011 1 修正履歴 修正日 修正内容 2011/8/22 初作成 第一章 USB シリアル CAN 変換器の概要...3 第二章ドライバのインストール...4 第三章シリアル透明透明通信プロトコル...5 第四章モード設定設定ソフトソフトの使い方...7

More information

取扱説明書[SH-04E]

取扱説明書[SH-04E] SH-04E USB ドライバインストールマニュアル USB ドライバについて............................................................. ご使用になる前に................................................................. USB ドライバをインストールする...................................................

More information

VLAN の設定

VLAN の設定 この章の内容は 次のとおりです VLAN について, 1 ページ, 4 ページ VLAN について VLAN の概要 VLAN は ユーザの物理的な位置に関係なく 機能 プロジェクトチーム またはアプリケーションによって論理的にセグメント化されているスイッチドネットワークの端末のグループです VLAN は 物理 LAN と同じ属性をすべて備えていますが 同じ LAN セグメントに物理的に配置されていないエンドステーションもグループ化できます

More information

取扱説明書[SH-06D]

取扱説明書[SH-06D] SH-06D USB ドライバインストールマニュアル USB ドライバについて............................................................. ご使用になる前に................................................................. USB ドライバをインストールする...................................................

More information

<4D F736F F D E096BE8E9197BF5F984193AE F B40945C432E646F63>

<4D F736F F D E096BE8E9197BF5F984193AE F B40945C432E646F63> ~ 連動シャットダウン機能 ~ 図番 TT-4685-001 C 目次 1. 機能概要... 3 2. 構成... 3 2-1. マスターとスレーブ構成... 3 2-2. システム図... 4 2-3. 停電時の動作例... 4 3. セットアップ... 5 3-1. Windows 版のセットアップ... 5 (1) マスター側の設定... 5 (2) スレーブ側の設定... 6 (3) セットアップの確認...

More information