こんにちは、
私たちは設計上、SDK ver 4.0.0でFS2600とS32K3を使用しています。および S32DS バージョン 3.5 ビルド ID: 240726、アップデート 13。OSとしてFreeRTOSが使用されています。
初期化中に、このコードが呼び出されます。
Std_ReturnType initFs26Driver()
{
Std_ReturnType retVal = E_NOT_OK;
/* Initializes the FS26 driver */
retVal = Sbc_fs26_Init(&Sbc_fs26_xConfig_BOARD_InitPeripherals);
if (retVal != E_OK)
{
return retVal;
}
/* Configures the device */
retVal |= Sbc_fs26_InitDevice();
if (retVal != E_OK)
{
return retVal;
}
/* Fault Error Counter should decrease to zero */
uint8 u8FaultErrorCounterValue = 0U;
retVal |= Sbc_fs26_GetFaultErrorCounterValue(&u8FaultErrorCounterValue);
if ((retVal != E_OK) || (u8FaultErrorCounterValue != 0U))
{
return retVal;
}
/* Sbc device should be in FS_STATES_FS0B_ASSERT */
Sbc_fs26_RxFrameType rxData = {0};
retVal |= Sbc_fs26_ReadRegister(TRUE, SBC_FS26_FS_STATES_ADDR, &rxData);
if((retVal != E_OK) || ((rxData.u16ReadData & SBC_FS26_FS_FS_STATES_MASK) != SBC_FS26_FS_FS_STATES_FS0B_ASSERT))
{
return retVal;
}
return E_OK;
}Sbc_fs26_InitDevice() 関数でエラーが発生します。具体的には、Sbc_fs26_WaitInitFSClosed() -> Sbc_fs26_WaitInitFSClosed() でエラーが発生します。
InitFS は閉じられておらず、Sbc_fs26_GetDeviceState は FS_STATES_INIT_FS を返します。これは、画像 DeviceStateisInitFs.JPG に示されています。
使用した設定ファイルを添付しました。なぜこれが失敗しているのか教えてもらえますか?
よろしくお願いいたします。
@Kazarian さん、この問題は解決できましたか?
Sbc_fs26_InitDeviceの実行中に、FS26チップがFS0B_ASSERT状態からNORMAL_FS状態に移行できなかった主な原因は何でしたか?
ありがとう。
こんにちは
私はソフトウェアエンジニアではなく、FS26のみをサポートしています。FS26がノーマルモードに入るには下の写真をご覧ください。ドライブをステップバイステップで照合して動作を確認します。
guoweisun_0-1727054262186.pngguoweisun_0-1727054262186.png
こんにちは@guoweisun
RTD API を使用しています。RTD の関数 Sbc_fs26_InitDevice(); は既にあなたが言及したロジックを実装していますが、
/* Close initialization phase by sending first watchdog refresh. */
eReturnValue = Sbc_fs26_WdRefresh();は呼び出されず、Sbc_fs26_WaitInitFSClosed() はステータス エラー 0x1 を返します。設定が間違っている可能性はありますか?
Kazarian_0-1726826557141.pngKazarian_0-1726826557141.png
ハイ
INITフェーズでは、故障エラーカウントをゼロにするためにWDをリフレッシュし、その後閉じる必要があります。WDの供給が間違っているか正しいか確認してもらえますか?
NXPチームの皆様、こんにちは。
上記の話題について何か進展はありますか?
ありがとうございます。
最初の投稿に関連する画像を添付しました