こんにちは、
MMA8452Q を自動スリープ/ウェイクに設定しようとしていますが、まったく成功しません。加速度センサは、単純な XYZ データを出力するように設定できたため、正常に動作します。
ウェイク/スリープ機能の設定方法を説明していると思われるドキュメント AN4074 (MMA8451、2、3Q を使用した自動ウェイク/スリープ) をダウンロードしましたが、やはり機能しませんでした。ドキュメントの最後の 8 ページにある疑似コードを実行したところ、例ではデバイスのスリープ タイムアウト期間を 20 秒に設定すると記載されているにもかかわらず、疑似コード内で ASLP_COUNT レジスタ (0x29) 値に関連する変更/更新を特定できなかったことに気付きました。
レジスタ 0x29 の設定方法について誰か教えてもらえませんか?このレジスタのビット D7 ~ D0 をどのように設定すればよいのか、(ドキュメントを読んでも)わかりません。ウェイクスリープ機能を設定するときに、このレジスタに書き込む必要がある値は何ですか?
プロトタイプの開発段階では、現在加速度センサをスリープ状態にして、デバイスを振った後に起動させることだけを試みています。そのため、コード/疑似コード/説明は何でも歓迎します。
Google でいくつかのコード サンプルとライブラリを見つけることができましたが、autp-wake-sleep を設定する方法を示す例やコードは 1 つもありませんでした。どのようなご指示でも大歓迎です!
事前に感謝いたします。
フラビオ
トーマス、
あなたは素晴らしいです!!!!
あなたのコードは私に大いに役立ち、私の問題を解決してくれました!
君は最高だよ!
ご返信よろしくお願いします。
ご回答よろしくお願いします。
フラビオ
こんにちは、フラビオさん。
AN4074の8ページにある擬似コードは確かに不完全です。添付のFRDM-KL25Zボード用に作成したサンプルコードでは、自動ウェイク/スリープ機能の使い方を説明しています。トランジェント関数はMMA8451Qのウェイクアップに使用し、タイムアウト時間は5秒に設定されています。 ```MMA8452Q データシートの 36 ページの表 51 を見ると、時間ステップは選択した ODR によって異なることがわかります。1.56Hz の場合は 640 ミリ秒、その他のすべての ODR 値の場合は 320 ミリ秒です。添付のサンプル コードでは、ODR は 100Hz に設定されており、必要なタイムアウト期間は 5 秒、SO ASLP_COUNT レジスタに書き込む必要がある値は 16 または 0x10 (=5 秒/320 ミリ秒 = 約 16) になります。
お役に立てれば幸いです。他にご質問がございましたら、お知らせください。
追伸:もし私の回答がご質問の解決に役立った場合は、「正解」または「役に立った」と評価していただけると幸いです。ありがとうございます。