こんにちは、
NXP MCXA185VLHカスタムボードを使っており、CMPA/PFR構成を通じてデフォルトのROM ISP UARTピンを変更しようとしています。
1. 目的
ISPのUARTピンMCXA185デフォルトは以下の通りです:
LPUART2
TX: P2_2
RX:P2_3
ROM ISP UARTを以下に変更したいです:
LPUART4
TX: P3_27
RX:P3_28
私はSecure Provisioning Tool(SPT)/SPSDK 3.10.0とMCU-LINK Proをデバッグプローブとして使用しています。
2. CMPA ISP_UART_CFG構成
PFR設定ツールで、ISP_UART_CFGを次のように設定しました:
UART_RX_PIN 0x7C
UART_RX_FUNC_SLOT 0b0011
UART_ISP_FLEXCOM 0b0100
UART_TX_PIN 0x7B
UART_TX_FUNC_SLOT 0b0011
UART_BAUD_RATE AUTO_BAUDRATE / 0b0000
ピンのエンコーディングによると、私の理解は以下の通りです:
0x7B → P3_27
0x7C → P3_28
したがって、意図された構成は次のようになります:
LPUART4
TX = P3_27
RX = P3_28
機能スロット = 3
ボーレート=オートボー検出
MCXA185ドキュメントにはLPUART4もインスタンス4として記載されているので、対応するUART_ISP_FLEXCOM値を設定しました。
3. CMPA生成とプログラミング
CMPAのバイナリはSPT/SPSDKで生成しました。
生成されたスクリプトは正常に実行されました。
重要なコマンド/結果は以下のとおりです。
# ## Create CMPA page - binary ## #
pfr.exe export -c pfr_write_cmpa.yaml -o pfr_write_cmpa.bin
成功しました。(CMPAバイナリが生成されました)
次に、ブートローダーの接続を確認しました。
blhost -t 2000 -p COM8,115200 -j -- get-property 1 0
そして返ってきた:
ヤージュ
「コマンド」: 「get-property」
"応答": [
1258488320
],
"状態": {
「説明」: 「0 (0x0) 成功」
「値」: 0
}
}
そしてCMPAは削除された。
pfr.exe erase-cmpa -p COM8,115200 -f mcxa185
結果:
mcxa185上のCMPAページアドレス、リビジョン:最新版は0x7e000です
CMPAのページは削除されました。
次に、CMPAをプログラミングしました。
blhost -t 5000 -p COM8,115200 -j -- write-memory 0x0007E000 pfr_write_cmpa.bin
結果:
ヤージュ
「コマンド」:「メモリ書き込み」
"応答": [
256
],
"状態": {
「説明」: 「0 (0x0) 成功」
「値」:0
}
}
したがって、CMPAは消去と書き込みの両方で成功を報告した。
4. MCU-LINK Proを経由してISPモードに移行する
私はMCU-LINK Proを使っています:
NXP Semiconductors MCU-LINK Pro(r0CF)CMSIS-DAP V2.241
シリアル:JE3OY43UTRELI
デバッグメールボックスは正常に開始します:
nxpdebugmbox -i pyocd cmd -f mcxa185 start
結果:
デバッグ開始 メールボックス成功
その後、MCUをISPモードに強制的に切り替えます:
NXPDEBUGMBOX -i pyocd cmd -f mcxa185 ispmode -m 0
結果:
ISPモードへの移行は成功しました
デバッグメールボックスは、MCUがISPモードに正常に入ったと報告します。
5. 新しいISPピンへのUART接続
カスタムボードにはUSBからUARTへのアダプターを接続しています。
アダプターは以下の接続先に取り付けられています:
MCXA185 P3_27 / P3_28
シリアルポートは以下の通りです:
COM27
このつながりは以下の通りに交差します:
USB-UART TX → MCXA185 P3_28(RX)
USB-UART RX ← MCXA185 P3_27(テキサス州)
GND→GND
私は以下でテストしています:
115200ボー
6. BLHOSTが新しいISP UARTで応答しない
ISPモードに入った後、以下を実行します:
blhost -t 10000 -p COM27,115200 -j -- get-property 1
しかし、私は以下のようなものを得ています:
SpsdkNoDeviceFoundError: 与えられたインターフェース「uart」およびパラメータ「port=COM27、baudrate=115200、timeout=10000」に対するデバイスは検出されませんでした。
そのため、ROM ISPブートローダーはCOM27/P3_27/P3_28経由で応答していません。
ISPモードに入った際に、シリアルモニターに以下の表示が見られました。
[RX] - 00
しかし、有効なBLHOST応答を受け取ることができません。
7. COM27が物理的に検出される
nxpdevscanはMCU-LINK Proおよび関連するUSBデバイスを正しく表示していますが、以下の通りです:
UARTデバイスをスキャン中...何も見つからなかった
USB-UARTアダプター自体はWindowsでCOM27として利用可能で、シリアルモニター/BLHOSTで使用されています。
8. オリジナルISP UART作品
ISP UART構成を変更する前は、元のISP UARTを通じて以下の方法でMCUと通信できました:
blhost -t 10000 -p COM8,115200 -j -- get-property 1
その作品は無事に戻った:
{
「コマンド」: 「プロパティ取得」
「応答」:[
1258488320
],
「ステータス」:{
「説明」:「0(0x0)成功。」、
「価値」:0
}
}
これにより、以下のことが確認されます:
MCUは機能しています。
ROM ISPは正常に動作しています。
BLHOST/SPSDKは正常に動作します。
USB-UARTアダプタとシリアル通信の設定は正常に動作します。
この問題は、ISPのUART設定をP3_27/P3_28に変更した後に発生します。
9. デバッグメモリアクセスの問題
また、MCU-LINK Proを通じてCMPAの内容を直接確認しようとしました。
CMPAの所在地は以下の通りです:
0x0007E000
私は以下を使いました:
NXPDEBUGMbox -i pyocd mem-tool read-memory -f mcxa185 -a 0x0007E000 -c 0x100 -h
しかし、以下の内容が出ました:
SPSDKAppError: SPSDK: メモリアクセスポートが見つかりません!
私も試してみました:
nxpdebugmbox -i pyocd mem-tool test-connection -f mcxa185
返された結果:
接続テストは正常に終了しませんでした。
リカバリーリセットを有効にしてみました:
nxpdebugmbox -i pyocd -o enable_recovery_reset=True mem-tool read-memory -f mcxa185 -a 0x0007E000 -c 0x100 -h
しかし、同じ結果を受け取った。
メモリアクセスポートが見つかりません!
しかし、デバッグメールボックス自体は引き続き起動可能です:
デバッグ開始 メールボックス成功
ISPモードに入ることができます:
ISPモードへの移行は成功しました
10. SPT接続の問題
再度PFR設定ウィンドウを使おうとすると、次のように表示されました:
PFR構成、MCXA185、COM8[ボー=115200]
そして次のように報告しました:
接続の問題です。接続ダイアログで設定を確認してください。
UARTポートを開けなかった:
ポート『COM8』を開けませんでした。アクセス拒否。
これは別のCOMポートアクセスの問題のようで、COM8はすでに別のアプリケーションやプロセスで使用されていました。
追伸。また、セキュアプロビジョニングツールでISP_MISC_CFG : ISP_UART_CUSTを設定し、電源サイクルも行いました。ドキュメントやサポートを通じて見つけられることはすべてやりましたが、私が小さなミスをする可能性は全くありません。どうか私の問題解決を手伝ってください。
よろしくお願いします。
こんにちは、 @Alice_Yang さん。
CMPAのプログラミング後、既に完全な電源リセットを実行しました。
提案されたとおり、ISPピンを使用してISPモードに入ることも試しました。しかし、MCXA185は設定済みのISP UART経由では応答せず、 blhostはデバイスがPINGに応答しないと報告します。
よろしくお願いします。
よろしくお願いします。
ウダイ
こんにちは、@udaysinghg70