こんにちは
組み込みLinuxarm144ホスト上のi2c経由で接続されたmcxc64を使用しています。テスト目的で、mcxc144で正常に動作し、i2cでLinuxホストと通信できるファームウェアを作成しました。今のところ、Windows開発マシンから直接jlinkプローブを使用してファームウェアをフラッシュします。
私の目標は、i2cを介して組み込みLinuxから直接mcxc144をフラッシュすることです。これは 組み込みのブートローダーで可能であると理解しているが、いくつかの問題に直面している。
・mcxc144を消去すると、ブートローダーで起動しないようです(i2cバスで表示されません)(NMIピンを高低で試してみましたが、同じです)
-ファームウェアが実行されているときに、i2cコマンドを作成して、ファームウェアをブートローダーに強制的に実行させます(単純なジャンプ0x1c000000)。この時点で、私は2つの行動をとっています。
->何もしないと、i2c バスに mcxc144 が 5 秒間 (デフォルトのブートローダー アドレス) 0x10 (ブートローダー ペリフェラルを有効にするデフォルトのタイムアウト) 表示され、その後何もない mcxc144 がフリーズします。
->この 5 秒間に ping パケットを送信すると、送信コマンドは失敗しますが、最後にファームウェアで mcxc144 が再起動します。
blhostを使用するようにSPDSKをダウンロードしようとしましたが、i2cプログラミングをサポートしていません。また、i2cをサポートする古いblhostバージョンも構築しましたが、pingパケットを手動で送信したときと同じことを行います。
まあ、もっと簡単な作業だと思っていたのですが、今は少し迷っています。
何かアイデアやコメントはありますか?
Hi @romainmoura
私は知ってうれしいです、結果を共有してくれてありがとう、私は解決策としてあなたの応答をマークしました。
ディエゴ
Hello,
簡単なフィードバックとして、i2cプログラミングは新しいPCBで動作しています。より強力なプルアップ抵抗を配置し、ガルバニックアイソレータとmcxc144の電源投入の間に遅延を追加します。
これで、blhost 2.6.2 を使用して .hex をロードできますファイル : blhost -i /dev/i2c-2 flash-image /lib/firmware/myFirmware.hex
よろしくお願いいたします。
Hi @romainmoura
私はこれをフォローアップしたいだけです、あなたはまだ問題に直面していますか?その間に何か他のものを見つけましたか?バス上の他のデバイスについて言及しているように、バス上のMCXのみを使用してテストするとよいでしょう。
よろしくお願いいたします
ディエゴ
返信ありがとうございます、frdmボードを確認します。私たちの設計では、mcxc144 はガルバニック アイソレータの背後にあり、i2c 通信に問題がありました。i2c ピン構成は、ブートローダー モードではまったく同じではない可能性があります。さらに、mcxc144 は i2c バス上だけではありませんが、これはおそらく役に立たないでしょう。
blhostは、SPSDKで、Linux上の直接ネイティブのi2cバスではなく、USB i2cブリッジを探しています。エラーは次のとおりです。
blhost -l i2c,0x10,100 -- プロパティ 1 を取得
SpsdkNoDeviceFoundError:指定されたインターフェース 'usbsio_i2c'とパラメータ 'config=i2c,0x10,100, timeout=5000'のデバイスが見つかりませんでした。
よろしくお願いいたします
こんにちは
私はMCXC444 frdmでI2C接続をテストしましたが、それは組み込みのブートローダーで動作します。frdmボードでは、I2Cはオンボードデバッガを介して提供され、ホストコンピュータとターゲットMCU間のUSB-to-I2Cブリッジとして機能します。frdmボードでI2Cを有効にするには、0 Ω抵抗R78とR79、および2.2k Ω抵抗R76とR77をはんだ付けする必要があります。だから多分あなたはfrdmとあなたの解決策をcompereすることができます。
SPSDKはI2Cプログラミングをサポートしています私はSPSDK 2.6.0とblhost -l i2c,0x10,100 -- get-property 1を使用しました。
ROM ブートは、フラッシュ コンフィギュレーション フィールドの FOPT レジスタで設定します。しかし、消去後の状態はROMを強制的に起動する必要があるため、これは問題にはなりません。
ROMはBCA構成に基づいて周辺機器を有効/無効にできますが、消去後、BCAが無効な状態にあるため、すべての周辺機器が有効になります。
これがお役に立てば幸いです。