【MAFS2019】AD7794評価基板にNucleoL432KC搭載<SPI接続調査>

EVAL AD7794基板 PC接続して専用アプリで動作させようとしたけど、設定がわからなくて動作できませんでした。アナログデバイス社からの回答では、専用アプリ上でしか接続できないようです。そこで、6分力センサ用基板として、EVALボードにCPUを搭載して、AD7794をCPUでSPI接続する回路製作しました。

●結線
電源:基板上に高精度レギュレータADP3303があるのでそこにCPUから5Vをいれる回路にしました。
①5V-LK8コネクタの5V供給側とマイコン側5Vを結線
②SPI MOSI,MISO,SCLCK,SSELの4線をEVAL基板からCPUのSPIに結線
NUCLEO L432KCだと PA_7,PA_6,PA_5,PA_4となります。

 

●SPIの調査
=>今まではライブラリー使ってしかSPI接続したことないから初めて学習です
SPIの一般的解説記事判り易かったのはこの3つです。
①MOSI MISOって何だ
この記事に用語解説ありました。
http://www.asahi-net.or.jp/~gt3n-tnk/SPI1.html

MOSI=Master Output Slave Input
MISO=Master Input Slave Output
SCLK=Serial peripheral serial CLocK
SSEL=Slave Select

②原理解説
初歩基本は、京都シナプス様が判り易いです。
https://synapse.kyoto/glossary/glossary.php?word=SPI

シンプルに整理されている方がいます。
http://www.picfun.com/f1/f05.html

●AD7794のSPI仕様
https://www.analog.com/media/jp/technical-documentation/data-sheets/ad7794_jp.pdf

pdfの16ページからレジスタの説明があります。

①コミュニケーションレジスタ
「コミュニケーション・レジスタは、8ビットの書込み専用レジスタです。ADCとの通信はすべて、コミュニケーション・レジスタへの
書込み動作により開始されなければなりません。コミュニケーション・レジスタに書き込まれたデータによって、次の動作が読出し/書込みのどちらなのか、またどのレジスタに対してこの動作を実行するのかが決まります。読出しまたは書込み動作の場合、選択されたレジスタに対する後続の読出しまたは書込み動作が完了した時点で、インターフェースはコミュニケーション・レジスタへの書込み動作待ちの状態に戻ります。」

②データ読み出し
コミュニケーションレジスタの3BIT目を1にすると以下の動作をする
「データ・レジスタの連続読出し動作。このビットを1に設定すると(そしてデータ・レジスタを選択すると)、シリアル・インターフェースが設定され、データ・レジスタの連続読出しが可能になります。すなわち、RDY____ピンがローレベルに遷移して変換の終了が確認された後でSCLKパルスが印加されると、データ・レジスタの内容が自動的にDOUTピンに送られます。データ読み出しの場合、コミュニケーション・レジスタに書込みを行う必要はありません。この連続読出しモードをイネーブルにするには、01011100の命令をコミュニケーション・レジスタに書き込む必要があります。連続読出しモードを終了するには、RDY____ピンがローレベルの間に01011000の命令をコミュニケーション・レジスタに書き込みます。連続読出しモードの間ADCは、このモードの終了命令を受信できるようにDINライン上のアクティビティをモニタします。さらに、32個の連続的な1がDIN上で確認されると、リセットが実行されます。したがって、連続読出しモード時は、デバイスに命令が書き込まれるまで、DINをローレベルに保持してください。CR1~CR0 0 正常に動作させるため、これらのビットにロジック0を設定してください。」 

これで、連続データが読み込めるみたいですが、SPIのコマンドリファレンスをみるとhttps://os.mbed.com/docs/mbed-os/v5.10/mbed-os-api-doxy/classmbed_1_1_s_p_i.html#a594e0eb0068da0fdc3d57e2d018c1994

data=spi.write(int value)でvalueを送ったらdataがかえってくるので、送受信が
writeだけでできてしまいます。2線(MOSI,MISO)が自動で動いてくれるみたいです

virtual int write ( int value )
virtual

Write to the SPI Slave and return the response.

Parameters
value Data to be sent to the SPI slave.
Returns
Response from the SPI slave.

●以後
プログラム作ってデバッグしてみます一発で動けばラッキーですが
そうは問屋が卸さないと思いますのでじっくりやります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です