FS23がLPOFFモードに入るように制御するために、S32K312を使用してSPI経由でFS23と通信しています。次のように、SPI を介して LPOFF コマンドを送信しました。
まず、SBC_FS23_M_SYS_CFG_ADDRレジスタの値を読み取ります。
Sbc_fs23_ReadRegister(1, SBC_FS23_M_SYS_CFG_ADDR, &M_Sys_Cfg_RxData);
次に、SBC_FS23_M_SYS_CFG_ADDRレジスタの読み取り値を書き込み、LPOFFスリープモードのSBC_FS23_M_GO2LPOFF_MASKを0x0040(1<<6)に設定しました。
Sbc_fs23_WriteRegister(1, SBC_FS23_M_SYS_CFG_ADDR, M_Sys_Cfg_RxData |SBC_FS23_M_GO2LPOFF_MASK、&pu16RxData_LDT);
しかし、FS23はLPOFFモードに入らず、再度レジスタ値を読み込んでも変化していませんでした。SPI通信が正常に機能していることを確認できます。外部ウェイクアップ ソースが接続されていません
コンフィギュレーションに問題があるのか、それともコンフィギュレーションが必要な他のレジスタがあるのか、教えてください。
M_IOWU_FLGレジスタ
1.M_SYS_CFGレジスタの値は21507(0101010000000011)です。
2.表記値は21571(0101010001000011)です。
書き込みが成功したかどうかを確認する 3.To、再読み取りする値も21507(0101010000000011)です。
この問題は何日も私を悩ませてきました。何か指導をお願いします。
きっとノーマルモードになっていると思いますので、レジスタSBC_FS23_M_SYS_CFG_ADDR(0x05)に書き込んでLPOFFモードに入りたいです。私の手順は次のとおりです。
ステップ1:SPIを介してレジスタSBC_FS23_M_SYS_CFG_ADDR(0x05)の値を読み取ります。
ステップ2:この値とSBC_FS23_M_GO2LPOFF_LPOFF(0x0001U << SBC_FS23_M_GO2LPOFF_SHIFT)の間でビットごとのOR演算を実行し、結果をSBC_FS23_M_SYS_CFG_ADDR(0x05)に書き戻してfs23をスリープモードにします。
M_STATESレジスタ値12295(バイナリ表現:0011000000000111)について、bit13は1でノーマルモードを示します。
M_SYS_CFGレジスタの値は 21507 (0101010000000011) ですが、正常に変更されていません。
本当に通常モードですか?LPOFFモードに入るためにどのようなコマンドを送信しましたか?
M_SYS_CFGレジスタを「xxxx x000 0100 0011」と書きます。試してみてください。「x」は任意の値を表します。
ステップ1:SPIを介してレジスタSBC_FS23_M_SYS_CFG_ADDR(0x05)の値を読み取ります。
[gw]读出来的值是多少这个寄存器?
ステップ2:この値とSBC_FS23_M_GO2LPOFF_LPOFF(0x0001U << SBC_FS23_M_GO2LPOFF_SHIFT)の間でビットごとのOR演算を実行し、結果をSBC_FS23_M_SYS_CFG_ADDR(0x05)に書き戻してfs23をスリープモードにします。
[gw]写进去 M_SYS_CFG register 的值是多少?写过以后有没有再读一下验证写成功有否?