こんにちは、
UART 構成の LPC55s16 ホストを介して PN7642 評価ボード上のホスト インターフェース (HIF) を使用して成功した人はいますか?
SPI モードでは接続でき、PN7642 ブートローダーは期待どおりに応答します。ucHost_Utils コードを UART 構成 (4 か所) に変更し、HostSel スイッチを UART モードに変更すると、PN7642 ブートローダーが応答しなくなります。
追加の設定が必要か、または UART 構成で HIF を使用する方法を具体的に説明するドキュメントを知っている人はいますか?
何かご提案はございますか?
--キース
こんにちは、
問題を再現することができ、次の回避策を実装することができました。UART HIF は、前述のように J68 に直接コネクテッドする必要があります。
EduardoZamora_0-1760132346504.png
ピン DWL_REQ、VEN、IRQ は次のように LPC にコネクテッドする必要があります。
EduardoZamora_1-1760132373181.png
J45 と J20 のジャンパーを取り外さず、オス対オスのジャンパーで直接接続してください。オンボードの HOSTSEL スイッチもそれに応じて設定してください。
EduardoZamora_2-1760132397129.png
ソフトウェアの例に関しては、いくつか変更が必要です。「lpc55S16Board_Init」関数に次の行を追加してください。
EduardoZamora_4-1760132518115.png
「phHdll_Lib_HalHwExchange」関数で、Rx FIFOを空にするために次の行を追加してください。
EduardoZamora_5-1760132560814.png
この同じファイルに「fsl_usart.h」をインクルードします。図書館。
fsl_usart.c::USART_ReadBlocking() 内受信フラグをクリアした後、625 行目をコピーして再度貼り付けてください。
EduardoZamora_6-1760132613453.png
この後、プロジェクトと通信をテストしてください。
よろしくお願いいたします。
エドゥアルド。
エドゥアルド、
はい、GPIO ポート 1 は初期化されています。コードは以下のように実行されます。ただし、これは SPI モード (前述のとおり問題なく動作します) でも同じで、このモードでも DWL_REQ と IRQ が必要です。
KB1_0-1759875253298.png
あなたが述べたように、Clock Attach コードはコード内に存在しません。「 kFRO12M_to_FLEXCOMM2 」はどこにも使用されていません。ただし、デバッグ UART にはクロック アタッチがあります。これは、HIF 用の PN7642 に接続するために使用するポートではないと思いますか?
KB1_1-1759875616284.png
ここで行き詰まってしまうのです...fsl_usart.c::USART_ReadBlocking()
KB1_2-1759875778644.png
ブロッキング送信はエラーなしで戻り、その後結果を取得するために読み取りが試行されますが、受信バッファには何もないようです。
このコードがテスト済みであり、ダウンロード モードで PN7642 ブートローダーに正常に接続できることをCAN確認できますか?
--キース
こんにちは、
J68への直接接続に加えて、LPC55S16ボードの初期化中にポート1がすでに初期化されているかどうかを確認することをお勧めします(つまり、GPIO_PortInit(GPIO, 1) )。
また、Flexcomm2がクロックされているかどうかを確認してください(つまりCLOCK_AttachClk(kFRO12M_to_FLEXCOMM2) )。
よろしくお願いいたします。
エドゥアルド。
こんにちは、エドゥアルドさん。
迅速で丁寧なご返信をいただきSOありがとうございます。あなたの提案にはすべて従っていると思いますが、メモの一部は確認が必要です...
>> PHBAL_HIF_SELECT_UART"を"定義済みシンボル"に追加
ucHost_Utils プロジェクトの 4 つの異なるコンポーネント (Hdll_Lib、SecureDownloadLib、HifEx_Counterpart、および DownloadLibEx1) に対してビルド構成 Debug_LPC55s16_PIN_BASED_UART を選択すると、そのシンボルが定義され、プリプロセッサ ビルド設定で確認しました。
PN7642 の SDK バージョンと FW リンクの関連付けについては認識していますが、それがマターになるほど進んでいるかどうかはわかりません。私は LPC55s16 ホスト コード (SDKs - SDK_2.x_LPCXpresso55S16、v3.14.0 を使用) を実行していますが、ホスト経由で UART 経由で PN7642 に基本的な接続すらありません。
ここで重要な点は、LPC55s16 ホスト ボードを PN7642 EVK ボードにマウントして実行しており、すべての J68 ポジショニングにジャンパーがあり、SPI モードで PN7642 と正常にCAN通信してダウンロードできることだと思います。私が行った唯一の変更は、ビルド構成と HOSTSEL スイッチを UART モードに変更することですが、これは機能しません。SO、これは基本的な接続が正しいことを意味しているのではないでしょうか。
両方のモードで実行すると、ホストが PN7642 をリセットできることがわかります (赤色の LED が点滅)。ただし、UART モードでは、ファームウェア バージョンを要求するとハングします (オプション 1)。
SPI と UART のモードをスイッチするために調整する必要がある他のものはありますか?
--キース
こんにちは@KB1
あなたの調子が良いといいのですが。
ひょっとすると、C/C++ ビルド > 設定 > MCU C コンパイラ > プリプロセッサの「定義済みシンボル」に「PHBAL_HIF_SELECT_UART」を追加しましたか (未定義シンボルからは削除しましたか)?
SDK は特定のファームウェア バージョンにバインドされていることに留意してください。OM27642: 開発キット(PN7642 C100 バリアントを組み込んでいます) には、ファームウェア v01.00 がデフォルトで付属しています。PN7642 の FW バージョンが SDKs で使用される FW と一致しない場合、いくつかの問題や予期しない動作が発生する可能性があります。
さらに、最新の SDK バージョンを使用していることを確認してください (最新のパブリック SDK は v02.15.004 です)PN7642 SDK から check_nxpfw_update デモを実行できます。PN7642 と SDK のファームウェア バージョンが一致しない場合は、このデモを使用して FW を更新できます。
PN7642 EVK には、ユーザーが PN7642 IC のさまざまな構成をテストできるようにするジャンパー、マルチプレクサ、レベル シフターがいくつか含まれています。テストとして、J68 を使用して LPC55 を HIF に直接接続することをお勧めします。この接続により、 PN76xx RFP ボードの回路図に従ってこれらのデバイスをバイパスし、ATX_x ホスト インターフェース ピンに直接接続できるためです。
EduardoZamora_0-1758664949758.png
よろしくお願いいたします。
エドゥアルド。