簡単な組み込みプログラミング: I2CおよびSPIバスのプログラミング方法

発行者

4番目のビデオでは、I2CおよびSPIバスをプログラムする方法について説明します。これらは、同じバス上の外部コンポーネントと通信するために必要です。

SPIをデモンストレーションするために、SCBコンポーネントも使用されますが、今回はSPIとして構成されています。L6474データシートには、バスを構成するためのすべての仕様が記載されています。SDIはCKの立ち上がりエッジでサンプリングされ、SDOはCKの立ち下がりエッジでラッチされると言われています。SPI仕様では、これはCPHA = 1およびCPOL = 1に変換されます。MSBが先頭である必要があり、これはMotorolaの標準プロトコルです。各バイトの送信後、チップセレクトをハイに上げなければなりません。

この構成は、SPIコンポーネントをクリックしたときにポップアップ表示されるGUIに入力されます。この演習の目的は、L6474構成レジスタを読み取ることです。アドレスは0x18、デフォルト値は0x2E88です。この値を取得するには、バイナリ値bx0011 1000 = 0x38を含むGetParamコマンドを送信する必要があります。プロトコルでは、2バイトのデータを受信するために、GatParamコマンドの後に2つのNOP関数を送信する必要があります。


 コードを書く前に、ピン配置を設定する必要があります。Arduinoのルールに従うと、SPIピンはポート0、ピン0、1、2、3です。L6474もリセットする必要があり、ピンはポート0のピン5にあります。


PSOCによって生成されたSPI APIを使用すると、プログラムは再びシンプルになります。デバイスをリセットすると、SPIブロックが開始されます。関数setUpDefaultValuesL6474が呼び出され、アドレス0x18にコマンドGetParamが送信され、その後に2つのNOP関数が続きます。SPIM_SendCommandPacketはバッファ {0x38, 0x00, 0x00} で呼び出され、関数SPIM_spiUartPutArrayによって転送される配列に格納されます。送信されたバイト数は受信されたバイト数と等しいため、受信バッファ サイズがこの数になると、すべてのデータを受信したことがわかります。このデータは抽出され、バッファがクリアされます。
 

Arduinoシールドの大きな利点は、すべてのピンに簡単にアクセスできることです。ロジック アナライザーは交換パケットをスニッフィングし、デバッグ フェーズで多くの時間を節約できます。以下に示すように、0x38が送信され、それぞれ0x2Eと0x88の2つのパケットが受信されました。.SPIバスは期待どおりに動作し、PSOCはモーター ドライバーL6474と通信しました。

 



最新ビデオ

Sorry, your filter selection returned no results.

We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy here