今日、私はSPIを再検討したい、SPIは、私が開始する方法がわからない、まだ無知である、または最初のコピーは、データシートをコピーします。
SPI
概要:
MC96F6432は、シリアル・ペリフェラル・インターフェース(SPI 2)で構成され、SPIシリアル周辺機器間の同期シリアルデータ転送を可能にします。4ラインを介して(のMoSi 2、MISO2、SCK2、SS2)全二重通信をすることが、サポートされているマスタおよびスレーブモード、シリアルクロックの極性は、位相を選択し、優先度の低いデータ伝送と優先度の高い送信データをすることができます。
ブロック図
データ送信/受信
ユーザは、SPI2の工程を経て伝送されるシリアルデータを使用することができ
- レジスタ選択SPICR SPI2動作モード(マスター/スレーブ、極性、位相)を制御することによって。
- SPI2マスタモード、スレーブ選択信号SS2(アクティブロー)として設定した場合、SPI2は、スレーブモードとして設定されたとき、信号SS2は、ホスト上から選択され
- ユーザーがSPODRデータレジスタにバイトを書き込むと、SPI2話すが動作を開始します。
- このとき、マスタSPI2文、SCK2によって生成シリアルクロックピンとして構成されている場合。マスタ8に送信し、スレーブは8からホストマシン(受信)する(送信)を送信しながら、スレーブモードの場合、シリアル・クロック・ピンは、マシンからホスト8(送信)に送信生成SCK2を有するであろう、一方8マスタがスレーブに送信(受信)
- 送信/受信動作を行う場合、SPIIFRビットがセットされます。SPI2割り込みが有効になっている場合は、割り込み要求。割り込みに対応する際に実行SPIIFRビットはハードウェアによってクリアされます。ユーザーが読み取るとSPI2割り込みが無効になっている場合、ステータスはSPIIFR SPISRビットがクリアされて登録して(読み取り/書き込み)のデータがSPIDRを登録します。
SS2ピンの機能
- ビットはSPI2スレーブモードに設定されている場合、SS2ピンは、一般的に入力されます。ピンSS2、SPI2論理演算にローレベルの信号であれば。ピンSS2にハイレベルの信号が、SPI2ロジックが停止した場合。この場合、ロジックは、データを受信していない、SPI2をリセットします。
- SPI2マスタモードでは、ユーザは、ピンSS2方向P17IOを選択することができる場合。SS2ピンが出力として設定されている場合、ユーザは、出力モードに設定してもよいSS2を入力モードに設定されている場合、SS端子にハイレベルの信号が、SS2端子にローレベルの信号があれば、ホストオペレーティングを保護するために入力しなければなりません別のスレーブとして選択され、そこにデータを送信するために開始されたSPI2のマスターシップ・ロジック。SPICR SPI2がスレーブになっている間、割り込みが有効になっている場合、回避バスの競合に、MSBビットは、SPISR、SPI2でSPIIFRビットをクリアする必要があり、割り込み要求が生成されます。
注意:
- ピンは、マスターモードSS2、ユーザソフトウェアによって指定されたSS2ピン出力値として設定されている場合。SPICRが方向SS2ピンを設定する前に決定されなければなりません。
- あなたはSS2ピン、SPISRの明確なSSENAビットを必要としない場合。だから、あなたはP17IO無料でそのスイッチを使用することができます。このとき、信号SS2は、ローレベルのユニットから、内部の高および低によって駆動されます。
- ピンが高いSS2に入っている場合、入力端子としてSS2は、SS_HIGHフラグがセットされます。手動でクリアするために0を書き込むことができます。
SPI2のタイミング図
図登録
USI0 SPIモード
USI0はSPIモードは次の特徴があり、業界標準のSPIモードに設定することができます。
- 全二重、三相同期データ転送
- マスターとスレーブモード
- サポートするすべてのモードは全てSPI0モード(0,1,2をmoed、及び3)
- また、データの送信順序エンディアンまたはビッグエンディアン
- ダブルバッファの送信と受信
- プログラム可能な転送速度
SPIモードが有効になっている:(USI0MSを[1 0] = 「11」)は、SS0 スレーブモード、又は設定された出力(マスターモード)でアクティブローの入力端子は0 USI0SSENある
注SPIモードは、RXD0は改名しましたMOSI0にMISO0、TXD0として。
USI0 SPIクロックのフォーマットとタイミング
異なるデバイスに適応するために、USI0データ転送クロックフォーマットを選択するためのクロック極性(CPOL0)と位相制御ビット(CPHA0)を有しています。
選択インバータクロックと直列に取り付けられCPOL0、CPHA0異なる位相のクロックとデータを選択します。注USI0MS:CPHA0 USI0ビットは、動作モードを決定し、CPOL0 USI0CR1レジスタのビット[10]異なる意味を持っている
4つのモードSPIのエピトープ
出力MISO0を駆動し始めるときCPHA0 = 0、SS0アクティブローを最初のデータビット値。最初のエッジはSCK0 MISO0それぞれマスタおよびスレーブデータ値取得MOSI0を引き起こします。SCK0第二エッジは、USI0は、第2のデータビット値を転送し、そして場合CPHA0 1が検出した場合ので=異なる、CPHA0 = 0、入力SS0機から転送処理は、ハイレベルに配置されなければなりません機械からの入力の立ち下がりエッジにSS0は、データの最初のビットを調製することができます。
シフタMOSI0(マスタ)への最初からのデータ転送をアクティブローSS0 MISO0スレーブが出力を駆動し始めたが、最初のエッジまでのデータSCK0が不明、最初のエッジSCK0 CPHA0 = 1、そしてMISO0(スレーブ)は、次のエッジは、それぞれ、機械入力SS0から第3端SCK0、第2のビット値とMOSI0 MISO0にUSI0転送データ、CPHA0 = 1、SCK0とホストマシンからのサンプリングデータとMOSI0 MISO0を引き起こしますハイレベルを維持する必要はありません。
SPI USI0再利用資源、SPIまたは非同期モードなどを同期モードので。送信USI0 SPIデータが空のフラグビット(DRE0 = 1)を登録検出することによって開始し、その後USI0DRにバイトを書き込みます。SCK0は、送信モジュールから生成されるので、送信手段が有効でない場合でも、マスタモード、(TXE0 = 0)は、データは、USI0DRに書き込まなければならない場合。