ディレクトリ
まず、実験の目的
第二に、実験環境
第三に、実験手順
四、ポートの設定
五、SPI設定
VI。機能説明
七、機能説明
八、データの送信順序
================================================== ============
1、実験目的
(1)は、データ送信SPIを介して、通信します。
第二に、実験環境
Window10
サーバー:窓
パテWinSCPをとサーバ間の対話ソフトウェア
AUTOSARバージョン:4.2.2
Tresosスタジオ23.0
MCALバージョン:S32K14X_MCAL4_2_RTM_HF8_1_0_1
コンパイル環境:グリーンヒル201714
第三に、実験手順
1.変更EB構成SPI
EB内の構成、オブジェクト・ファイルが生成されることを確認2。
MCAL MCALプロジェクトファイル3.コピーテンプレートプロジェクトファイル交換プロジェクト
4.バッチファイルを実行し、テンプレートプロジェクトファイルをコピーします
アップロードエンジニアリングWinSCPの5.
6.コンパイルコマンドパテ
7.ローカルのダウンロードに素敵なプロジェクトをコンパイルします
8. PEダウンロードデバッギング
ポートモジュール、MCUモジュール(SPI参照)、SPIモジュール:に記載のモジュール
10. 関与割り込み のSPI 割り込み。
四、ポートの設定
味噌SPI0の例では、ピンの方向に注意を払うと、特にチップマニュアルの方向への参照、以下のテーマで
マスタとスレーブモードの違いに注意してください。
五、SPI設定
設定するには、チャンネル、ExternDevice 、PhyUnit 続く、仕事やシーケンスを。
EBおよびIBに、ストレージスペースを選択し、IBが内部的に保存されている1、EBは、外部記憶装置です。AUTOSAR割り当てられた内部記憶装置によって画定される内部空間は、外部メモリは、一般的にアレイ内のスペースを割り当てる方法を用い、自身を設けてもよいです。
2.データ転送のセットのサイズは、ハードウェアがマシンから設定要件に応じて、長いプルを選択するチップです。
3.このパラメータは、最大データ・バッファ・サイズ(データ要素の数)を含んでのみチャネルEBに適用されます。
4. 2進数で、MSBは、最高加重ビットです。そして、左端の小数点の数字は同様のビット。典型的には、MSBは右端、左端の進数、LSB 2進数で配置されています。ここでは、最高の加重ビットからの送信の開始を指示。
ExternDeviceの(学び設定する前に、以下に示すような構成のSPI プロトコル・ノート)
1.設定SPIボーレート、SPIプロトコルを参照してください。注のボーレート
2.チップセレクト信号伝送チャネル選択
3.端からチップセレクト信号のレベル、データ伝送がローレベルの開始時に見ることができるようにして得られたロジック・アナライザ・データ。
4 。不明、保留中のお問い合わせ
PHAの原理(位相)に対応する収集データに信号取得エッジ、第一縁又は第2のエッジデータ取得、
6. SPIチップセレクトハードウェアユニット。
この原理に対応するパラメータ7. 5は、POL(位相)であります
8.不明、保留中のお問い合わせ
PhyUnitの図のように設定。
ハードウェアユニットを選択します
2.設定マスタモード
3.設定された基準クロック
4.データ伝送方法
ジョブ図のように設定。
さらに、スルーの構成チャネルに追加されSpiChannelList に。
シーケンス図のように設定。
VI。機能説明
Spi_SetupEB (SpiConf_SpiChannel_P_BOOST_SSN、SampleApp_ucSource、SampleApp_ucDest、32 )。
第1及び第2のパラメータは、送信された空間、自分の定義バッファ受信されます。
例えば:
#define SPI_DATA_LENGTH 8
Spi_DataBufferType SampleApp_ucSource [SPI_DATA_LENGTH] = { 1 、2 、3 、4 、5 、6 、7 、8 }。
Spi_DataBufferType SampleApp_ucDest [SPI_DATA_LENGTH]。
送信すべきデータの数:三番目のパラメータ
髪 |
送信データ長は8と16の32ビットとすることができます |
伝記 |
各データ転送は、8ビット |
受け取ります |
髪は16、32ビットのタイプを受信している場合は保存された受け入れの種類によると、それは2つの変数を保持します |
例 |
髪が受信さUINT32 0x00010000; [0] 0000 [1]は0x0001 |
概して |
通常送受信タイプは、8つのマクロは次のように定義されるように定義されるSpi_DataBufferType |
七、実装コード
セットアップ/ AsyncTransmit(EB)
登録SPI割り込み
sys_registerIsrHandler (LPSPI0_IRQn、(UINT32)&Spi_LPspi_IsrTDF_LPSPI_0)。
sys_enableIsrSource (LPSPI0_IRQn、0x50を)。
定義されたバッファ・スペース
#define SPI_DATA_LENGTH 8
Spi_DataBufferType SampleApp_ucSource [SPI_DATA_LENGTH] = { 1 、2 、3 、4 、5 、6 、7 、8 }。
Spi_DataBufferType SampleApp_ucDest [SPI_DATA_LENGTH]。
初期化
Spi_Init (&Spi_PBCfgVariantPredefined)。
Spi_SetAsyncMode (SPI_INTERRUPT_MODE)。
トランスミッション
Spi_SetupEB (SpiConf_SpiChannel_P_BOOST_SSN、SampleApp_ucSource、SampleApp_ucDest、8 )。
Spi_AsyncTransmit (SpiConf_SpiSequence_SpiSequence_BOOST)。
書き込み/ AsyncTransmit /読む(IB)
最初の3つの手順は同じです
トランスミッション
Spi_WriteIB (SpiConf_SpiChannel_P_BOOST_SSN、SampleApp_ucSource)。
Spi_AsyncTransmit (SpiConf_SpiSequence_SpiSequence_BOOST)。
Spi_ReadIB (SpiConf_SpiChannel_P_BOOST_SSN、SampleApp_ucDest)。
八、データの送信順序
シーケンスを送信する0x201です
DMAモード
0102のDMA転送オーダー
FIFOモード
送信順序0201
結論:
DMA:最初の送信高透過低8 8
FIFO:8つの送信高透過低8の最初の。