データシートには、FIFO から値を読み取る方法がまったく明記されていません。
個々のトリプレットを繰り返し読む必要があるか
for each triplet
{
sensor_comm_read( handle, FXLS896xAF_BUF_X_LSB, 6, data );
}それとも、1回のバースト読み取りですべてのトリプレットを取得できるのでしょうか?
sensor_comm_read( handle, FXLS896xAF_BUF_X_LSB, number_of_triplets*6, data );つまり、FIFO にさらにデータがある限り、自動インクリメントはBUF_Z_MSBからBUF_X_LSBにループバックしますか?
こんにちは、アンドリューニールさん
BUF_STATUS[BUF_CNT]は必要なトリプレットの数を示しているSO、必要な合計バースト長はBUF_STATUS[BUF_CNT]値の6倍になりますか?
ご指摘の通りです。混乱を招いてしまい申し訳ございません。あなたの努力に感謝します。
よろしくお願いいたします。
デビッド
良い。
SO、FIFO 全体を読み取るには1 回のバーストだけが必要なのでしょうか?
BUF_STATUS[BUF_CNT]は必要なトリプレットの数を示しているSO、必要な合計バースト長はBUF_STATUS[BUF_CNT]値の6倍になりますか?
表20は確かに分かりにくいと思います
確かにそうですね!
そのトピックに関する他のThreadを更新します。
こんにちは、 andrewneilさん
表 20 は確かにわかりにくいですが、あなたの理解は正しいです。つまり、これは自動インクリメント機能と F_READ=0 を使用した場合の予想されるレジスタ シーケンスです。
よろしくお願いいたします。
デビッド
@diazmarin09 -複数のバースト読み取り手順を実行する必要があります
本当に?
すでに述べたように、データシートの表 20 は非常にわかりにくいです。
しかし、私は今それを理解できたと思います:
したがって、0x0B から始まる 13 バイトの通常 (F_READ=0) バースト読み取りの結果は次のようになります。
あり?
それとも私はまだ表20を理解していないのでしょうか?
こんにちは、 andrewneilさん
誤解を招いてしまい申し訳ございません。
正解です。バッファ全体を読み取るには、複数のバースト読み取り手順を実行する必要があります。
よろしくお願いいたします。
デビッド
申し訳ありませんが、質問にはまったく答えていません。
問題は、FIFO全体を読み取ることです。
つまり、BUF_Z_MSB (0x11) を読み取った後のバースト読み取りでは何が起こるかということです。
ドライバをダウンロードしましたが、このことは示されていません。
こんにちは、 andrewneilさん
すべてが順調であることを願っています。NXP コミュニティをご利用いただきありがとうございます。
出力データのバイト順序はSENS_CONFIG2[LE_BE]を介してプログラム可能で、デフォルトはリトルエンディアンモードです。
SENS_CONFIG2[F_READ] = 1の場合、自動インクリメントメカニズムはMSBレジスタをスキップします。この操作により、出力データ サイズが XYZ サンプルごとに 6 バイトから 3 バイトに短縮されます。
以下のリンクからドライバの例をダウンロードし、デザインの参考として使用することをお勧めします。
この情報がお役に立てれば幸いです。
よろしくお願いいたします。
デビッド