こんにちは、
私はSJA1105SMBEVM評価ボード(MPC574xB/C/G + SJA1105P/Q/R/Sゲートウェイ評価キット、Digi-Key経由で568-SJA1105SMBEVM-NDとして購入)を持っています。オンボードのMPC5748Gのコードフラッシュが機能していないようです。下記の診断内容について妥当性を確認させていただきたいのと、RMA(返品承認)手続きを進める前に、文書化された回復手順が存在するかどうかを知りたいです。
兆候
この基板は開封以来、工場出荷時のファームウェアを一度も実行していません。「Alive」LED D3(AH1721セクション5.4)は一度も点滅したことがなく、実際、基板上のどのLEDも一度も点滅したことがない。
S32DS for Power Architecture v2.1とPEmicro USB Multilink Universalを使ったsja1105smbevm_tc10example例プロジェクトのプログラミングは、次の段階で無期限に止まります。
プログラミングの手順は、消去、空白チェック、プログラム、検証です(デフォルト)。
CMD>VC
オブジェクトファイルのCRC-16をデバイス範囲と照合しています...
ブロック 00FA0000-00FA0003 ...
(14分以上観察した結果)この地点から先に進むことは決してない。00FA0000-00FA0003はわずか4バイト(RCHW)であり、CMD>VCは消去前に実行されるプリチェックなので、セッションの最初のフラッシュリードで失敗します。
既に除外済み
- J6ジャンパー:ジャンパーが装着されていない基板が出荷されていたため、電源投入後約21秒でレギュレーターがシャットダウンしました(AH1721セクション6.4)。ピン2-3にジャンパー線を接続することで修正しました。基板はこれで無期限に電源供給され続ける。D3は相変わらず瞬きをしない。
- PEmicroプローブファームウェア:Qorivva MPC5xxx / ST SPC5xxxではなくARM向けに設定されました。PEFirmwareConfig.exeを使用して修正し、正しいアーキテクチャのファームウェア11.52になりました。これにより、別の「空白チェック中にエラーが発生しました」というダイアログは表示されなくなりましたが、フラッシュ読み取りエラーは解決されませんでした。
- 起動設定でセミホスティングが無効になっています。
- デバッグシフト周波数を5000kHzから1000kHzに下げ、リセット遅延を500msに上げ、JTAGリボンケーブルをポートA/J10に再接続しました。
- 検閲: PEmicro は検閲がないと報告し、正常にインサーキットデバッグモードに入ります。
S32DSバイパス時の診断
pegdbserver_power_console.exeを直接実行し、powerpc-eabivle-gdbを使用してメモリをプローブします。
接続は正常です。
P&Eインターフェース検出 - フラッシュバージョン11.52
デバイスIDコードは$00000082です
リセットスクリプト(s32e200_mpc574xg.mac)を開始します...
$40000000から$400BFFFFまでのRAMを初期化しています。
リセットスクリプトが完了しました。
MPC574xG デバイスが検出されました。
デバイスはmpc5748gです。
モードはインサーキットデバッグです。
メモリプローブの結果:
=== RAM書き込み/読み出し @ 0x40001000 (0xDEADBEEFに書き込み) ===
0x40001000: 0xdeadbeef <- OK
=== SIUL2 MIDR1 @ 0xFFFC0004 ===
0xfffc0004: 0x57483020 0x42004700 <- PARTNUM 0x5748、OK
=== コードフラッシュ ===
0xfa0000: 0x00fa0000 0x00fa0004 0x00fa0008 0x00fa000c
0xfa0010: 0x00fa0010 0x00fa0014
0xf90000: 0x00f90000 0x00f90004 0x00f90008 0x00f9000c
0x1000000: 0x01000000 0x01000004
フラッシュワードはそれぞれ、自身のアドレスとして読み上げられる。それはデータではなく、消去されたフラッシュメモリが読み取るであろう0xFFFFFFFFでもありません。RAMの書き込み/読み取り、ペリフェラルの読み取り、レジスタの読み取りはすべて正常に動作します。
テスト対象のアドレスは、サンプルプロジェクト自身のリンカースクリプト(Project_Settings/Linker_Files/linker_flash.ld)からのものです。
flash_rchw : org = 0x00FA0000、len = 0x4
FLASH_BASE_ADDR = 0x01000000
SRAM_BASE_ADDR = 0x40000000
これは両方の症状を説明しているように思われる。リセット時、BAMはハードウェアのRchWを0x00FA0000から取得し、デバッガを使わずにゴミデータを読み込み、有効なブートヘッダーを見つけず、アプリケーションコードを起動しません。そしてブランクチェック/CMD>VCはどちらもフラッシュ読み取りなので、プログラミングは失敗します。
質問
この状態のMPC5748Gに対して、例えばマス消去やフラッシュコントローラの再初期化など、事前のフラッシュ読み取りを必要としない文書化された復旧手順はありますか?S32DSは常に最初に検証読み取りを行いますが、これがハングする操作なので、裸消去を試みることはできませんでした。スタンドアロンツール(PROGPPCNEXUSなど)が適切なアプローチであれば、ご教示ください。
そうでなければ、この基板は不良品として扱われるべきでしょうか?
ありがとうございます。
こんにちは、
フラッシュメモリを読み取れるということは、そのデバイスは正常だと思います。
簡単なサンプルを読み込んでデバッグしてみてください。例えば、以下のいずれかの例:
https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445#MPC5748G
上記のいずれの場所にもブートヘッダーが見つからない場合、BAFは
デバイスのライフサイクルステータス。ライフサイクルがCUST_DELIV(顧客)にある場合
Delivery)またはMCUプロダクションで、シリアルブートを試みます。そうでなければ、ブートは失敗しました。
そしてBAFは破壊的なリセットを発行する
よろしくお願いいたします。
ピーター
Flashを読み取れません。
Example_MPC5748G_FlexCAN_RXFIFO_SDK303.zipをダウンロードしましたが、S32DSでコンパイルに失敗します。
Claudeを使って、RAM上で動作するシンプルな「点滅」プロジェクトをセットアップしました。それはターゲットボードにロードされ、問題なく動作しました。次に、フラッシュメモリから実行するためのデバッグ構成を作成しました。起動が98%で停止します。「sja1105smbevm_tc10example」と全く同じ問題です。デバッグ起動時にフラッシュメモリからの読み取り中にハングアップする。コンソールタブの最新メッセージ:
プログラミングアルゴリズムを読み込んでいます...
終わり。
プログラミングの手順は、消去、空白チェック、プログラム、検証です。{default}
CMD>VC
オブジェクトファイルのCRC-16をデバイス範囲と照合しています...
ブロック 00FA0000-00FA0003 ...
クロードはこう結論づけた。
これでチップを開けずに得られる限りの詳細な診断が得られます:
-
-
-
私の結論:
ハードウェアに不具合があります。戻ります。