まず私の質問を述べさせていただきます。
最初に質問を述べると混乱してしまうと思う、SO質問の後で私の環境と、この質問に至った経緯を説明します。
■質問
1.MCUXpresso IDEs を使用しない場合のダウンロード時間は約 90 秒です。少し長いようですが、適切でしょうか?
また、この時間を短縮する方法はありますか?
2. MCUXpresso IDEsを使用する場合と使用しない場合で、F1[0x5c] を同じにするにはどうすればよいですか?
IDEs でダウンロードできるようにしたいと思います。
■ 環境
- MCUXpresso IDE バージョン v25.6 [ビルド 136] [2025-06-27]
- SDKバージョン25.06.00、マニフェストバージョン 3.15.0
- SDKsの例: evkbmimxrt1170_a2dp_sink_cm7
- WiFiモジュール:U-Blox MAYA-W266-00B
■ 変更概要
1. WiFiモジュール定義値: WIFI_IW612_BOARD_RD_M2
2. ボードのBluetooth HCI UART設定(board.h)
pin_mux.c 以降UART2 を設定すると、この定義は UART7 から UART2 に変更されました。
3. 初期化プロセスの変更(main.c、コントローラ_wifi_nxp.c)
- GPIOクロックを有効にする(main.c)
- #if セクションに「WIFI_IW612_BOARD_RD_M2」を追加します。(コントローラ_wifi_nxp.c)
- 必要に応じて WiFi モジュールを初期化する (controller_wifi_nxp.c)
- 必要に応じて include 宣言と関数を追加しました (controller_wifi_nxp.c)
4. #undef CONFIG_WIFI_SDIO_DEBUG を無効にしました (wifi_config.h)
5. #ifセクションに「WIFI_IW612_BOARD_RD_M2」を追加しました(edgefast_bluetooth_app.h)
6. controller_hci_uart_get_configuration関数の有効化(hardware_init.c)
7. ピン設定の変更(ピンの追加や値の変更を含む)(pin_mux.c/h)
この変更は ConfigTool Pins を使用して行われました。
8. sdio_interface_send関数の準備状態を変更しました(fwdnld_sdio.c)
9. wlan_sdio_init_ioport関数を変更してCMDポートを無効にしました(sdio.c)
■ 状況(背景、原因、解決策)
● 背景
MCUXpresso IDEs で起動すると、firmware_download 関数が SUCCESS を返しません。
sdio_interface_send 関数が準備状態の確認に失敗し、コンソールに次のログが表示されます。
[wifi_io] 0x30068ae4からコネクティビティファームウェアのコピーを開始します
[wifi_io] 圧縮されていない画像が見つかりました。ダウンロードを開始します。長さ: 1092508
[wifi_io] エラー: wlan_card_status() でエラーが発生しました
[wifi_io] エラー: カードタイムアウト sdio_interface_send:313
アサートエラー " API_SUCCESS == 結果 ": ファイル "controller_wifi_nxp.c" 行 "347" 関数名 "controller_init"
ただし、MCUXpresso IDE がコネクテッドされておらず、デバイスの電源を入れ直すことで起動した場合、ファームウェアのダウンロードは成功します。ダウンロードが成功した場合のログを以下に示します。
[wifi_io] 0x30068704からコネクティビティファームウェアのコピーを開始します
[wifi_io] 圧縮されていない画像が見つかりました。ダウンロードを開始します。長さ: 1092508
[wifi_io] ファームウェア準備完了
[wifi_io] WLAN FWのダウンロードに成功しました
●原因
調査の結果、起動時にMCUXpresso IDEがコネクテッドされているかどうかによって、ONになるReadyビットが異なることが判明しました。
MCUXpresso IDE のコネクテッドの有無による違いは以下のとおりです。
- MCUXpresso IDE - 番号: F1[0x5c] = 0x0d (CARD_IO_READY、CIS_CARD_RDY、DN_LD_CARD_RDY)
- MCUXpresso IDE - 番号: F1[0x5c] = 0x88 (DN_LD_CP_RDY, CARD_IO_READY)
*F1は機能1を示します。
※準備ビットのリストも添付しております。
● 解決策
現時点では解決策を見つけることができません。
そのため、判断基準を以下のように変更いたしました。
【変更前】
wlan_card_status(DN_LD_CARD_RDY | CARD_IO_READY) == true の場合
【変更後】
ブール値の ready_by_card = wlan_card_status(DN_LD_CARD_RDY | CARD_IO_READY);
ブール ready_by_cmd = wlan_card_status(DN_LD_CP_RDY | CARD_IO_READY);
if (ready_by_card || ready_by_cmd)
上記の手順を実行した後でも、IDEs を使用してダウンロードすることができませんでした。
このため、私はここで調査を終了し、ここで質問することにしました。
■ 添付ファイル
プロジェクトファイルセット: evkbmimxrt1170_a2dp_sink_cm7_nexty.7z
準備ビットステータス: F1-5C_bit.png
実行ログとIDEコネクテッド: COM12_20251029_082435_connectIDE-1.log、COM12_20251029_083226_connectIDE-2.log
IDE がコネクテッドされていない状態での実行ログ: COM12_20251029_082814_disconnectIDE.log
■ 追伸
IDE がコネクテッドされていない場合、ファームウェアのダウンロードが成功した後、controller_hci_uart_init 関数は戻りません。現在この問題を調査中です。
この段階で何かご意見がありましたら、ぜひお知らせください。
宜しくお願いします、
五十嵐正幸さん。
@masayuki_igarashi さん、こんにちは。
あなたの質問にお答えします:
1. はい、Bluetooth 経由で接続することはCAN。「bt_settings_init」関数は Bluetooth の状態と構成を永続的に保存するためのものであるため、リセット時にすべての Bluetooth 設定を再初期化する必要があります。
2. 残念ながら、ソースコードが公開されていないすべての提供ライブラリは、一般アクセスされることを意図していません。
問題に関しては、サンプルをカスタム ボードに移植するプロセスを容易にするため、MIMXRT1170-EVKB でサンプルをテストすることを強くお勧めします。
こんにちは、 @RomanVR 。
この回答では 2 つの点を報告します。
1. RT1170EVKBサンプルプログラムの動作状況
2. このサンプルプログラムの変更点
1. RT1170EVKBサンプルプログラムの動作状況
以下のサンプルプログラムが動作することを確認いたしました。
2. このサンプルプログラムの変更点(概要)
追加の質問
宜しくお願いします、
五十嵐正幸さん。
こんにちは@masayuki_igarashiさん、お元気にお過ごしでしょうか。
Hello World の例を試してみて、その例がカスタム ボードで適切に実行されるかどうかを共有していただけませんか?
さらに、カスタム ボードを開発する際には、メモリ仕様、GPIO の場所など、考慮すべき事項があることにご注意ください。より具体的な設計ガイドラインについては、 MIMXRT1160/1170 プロセッサのハードウェア開発ガイドを参照してください。
また、カスタム ボード上で実行するためにワイヤレス アプリケーションにどのような変更を加えたかを明確にしていただけますか?
@masayuki_igarashi さん、こんにちは。
混乱をおかけして申し訳ございません。共有いただいたガイド ( MIMXRT1170-EVKB および Murata 2EL M.2 モジュールのハードウェア再作業ガイド) は、ボードに必要な再作業を行うための正しいガイドです。
さらなる発見がありましたらお知らせください。
こんにちは、 @Ricardo_Zamora
「MIMXRT1170-EVKB および Murata M.2 モジュールのハードウェア リワーク ガイド」を確認しました。
情報では、MIMXRT1060-EVKC の写真を使用し、コンポーネントの位置について説明しました。
MIMXRT1170-EVKB の回路図やレイアウト ファイルで検索しても、一部のコンポーネントが見つかりません。
R93 と J55 は MIMXRT1170-EVKB の回路図やレイアウト ファイルには存在せず、J54 は MIMXRT1170-EVKB の M.2 インターフェース ソケットであるようです。
上記のガイドの内容は、おそらく MIMXRT1060-EVKC 向けでしょうか?
SO、同様のガイドを見つけたので、以下に示します。
タイトル: 「MIMXRT1170-EVKB および Murata 2EL M.2 モジュールのハードウェアリワークガイド」
URL: https://mcuxpresso.nxp.com/mcuxsdk/latest/html/middleware/edgefast_bluetooth/docs/HWRGEFBTPALUG/topi...
上記のガイドは、RT1170-EVKB で Bluetooth を実行するためにハードウェアを変更する正しい方法ですか?
そうでない場合は、MIMXRT1170-EVKB のガイドがあるかどうかをお知らせください。
宜しくお願いします、
五十嵐正幸さん。
こんにちは@Ricardo_Zamoraさん、
お返事ありがとうございます。
ボードのやり直しが必要だとは知りませんでした。提供していただいたURLを確認させていただきます。
まず、ご要望のボードの写真を添付いたしますのでご確認ください。
先ほども申し上げましたが、私は手直しが必要であることを認識していなかったため、添付の写真の基板は手直し前の状態となっております。
ご清聴ありがとうございました。
よろしくお願いします、
五十嵐正幸さん。
こんにちは@masayuki_igarashiさん、お元気にお過ごしでしょうか。
ボードのセットアップ(モジュール接続を含む)の詳細な写真を共有していただけますか?
Bluetooth UART および PCM インターフェースの場合、 MIMXRT1170-EVKB および Murata M.2 モジュールのハードウェア再作業ガイドに示されているように、MIMXRT1170-EVKB の再作業が必要であることに注意してください。
さらに、変更されていないワイヤレスサンプルを再加工したボードにフラッシュしたときに、この動作が続くかどうかを確認します。
結果をお知らせください。
よろしくお願いいたします。
リカルド