私はFlexCAN1のS32K146 CPUに接続したUJA1169ATK/F/3を使っています。UJA1169ATK/F/3は、ウェイクアップフレーム(FDなし!)を伴うパーシャル・ネットワーキングで、システム全体をディープスリープモードから覚醒させるために使われます。
実際には、有効なフレームがCANバス内で送信されれば、すべてのことは正しく動作します(有効なフレームとは選択したフィルタリングマスクと互換性のあるフレームを指します)。
問題は、不要なフレーム(つまり、構文的には正しいが、使用中の WUP フィルタリングを通過しない、FD ではないフレーム)が送信された場合に発生します。こうしたフレームが送信されると、連続する有効なフレームはトランシーバを起動しなくなります。不要なフレームが存在すると、多くの場合、UJA1169ATK/F/3 が有効なフレームを正しく認識し、ウェイクアップする機能がロックされてしまうようです。
最初は、バス上の何かがバスエラーを発生させ、その結果UJA1169ATK/F/3がリセットモードに切り替えられ、RX信号を動かさずCPUに通知されなくなるのではないかと思います。しかし実際はそうではなく、CANモニターを使ってバスエラーは記録されませんでした(なお、私はWindowsアプリケーションでCAN BUS上のメッセージを生成し、別のアプリケーションでバスを監視しています。両アプリケーションとも別々のUSB/CANコンバーターを使用しています)。
どの問題が原因か心当たりはありますか?
こんにちは、ミシェルさん。
ご説明いただいた動作は、UJA1169Aの内部PNエラー処理に関連している可能性が最も高いです。
このデバイスは、内部にフレーム検出エラーカウンタを備えています。設定されたPNフィルターと一致しないフレーム列が受信された場合(またはPN評価で無効と解釈された場合)、このカウンターがオーバーフローし、PNフレーム検出エラー(PNFDE)を引き起こす可能性があります。
この状態が発生すると、SBCは有効なウェイクアップフレームを一時的に正しく認識できなくなる可能性があり、これがその後の有効なフレームがデバイスを起動しなくなる理由を説明できます。
PNFDEステータスビットを確認し、PN構成(ID/マスク、DLC、データマスク、データレート設定)を検証することをお勧めします。デバッグステップとして、データフィールド評価(PNDM = 0)を無効にして、問題がデータフィルタリングに関連しているかどうかを判断できます。
観察されたPNFDEの状態とPN構成を教えてください。分析をさらにサポートするために。
BRs、トーマス