Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
HSE AB Swap 在裸机上运行正常,但在 S32K312 上设置 MCAL 时钟后失败。 您好, 我正在对 S32K312 MINI-EVB 进行 HSE-B AB Swap 测试,HSE 固件版本为 0.2.55.0(ab_swap 变体)。该板处于 OEM_PROD 生命周期,并且 Bank A 当前处于活动状态。两家银行的 HSE 固件版本相同。 我有一个工作参考,其中裸机主函数轮询 HSE INIT_OK,然后提交激活被动块服务。该调用返回成功,交换将在下次RESET时生效。Bank B 包含一个有效的 IVT,其指针已根据 RM00286 的第 11.3 节编译为较低的地址空间。 相同的 MU 提交代码,在 MCAL 时钟初始化后移入引导加载程序,返回 HSE 响应 55A5A26A(无效地址)。HSE INIT_OK 保持设置状态。在这种状态下,其他 HSE 服务(AES、RSA、安全散列算法(SHA))都能正常工作。工作运行和失败运行之间的唯一区别在于,引导加载程序路径在时钟初始化期间写入 MC_CGM MUX 0 分频器寄存器,保持源在 FIRC 上,但将 AIPS_SLOW 与 HSE_CLK 的比率从 1:1(SBAF 默认值)更改为 1:4。 我的主要问题是:对于激活被动区块服务而言,无效地址响应指的是什么,因为该服务不接受任何数据结构?在 HSE 达到 INIT_OK 状态后,是否有记录在案的重新配置 MC_CGM 分频器的步骤,以保持该特定服务的可用性? 我可以根据要求分享故障二进制文件、寄存器转储和时钟配置。 谢谢! Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 嗨,大卫, 感谢您对 DCF 客户端的指导。为了确保我第一次就能正确设置,请您澄清以下几点: 1. 你的列表中第 5 点指出 MC_CGM MUX 0 源必须是 PLL_PHI0。这是一个硬性要求——激活被动块服务是否要求系统时钟位于 PLL 上,还是也可以与运行在 FIRC (48 MHz) 上的系统一起工作? 2. 您能否分享一下同一份清单中的前 1 到 4 点?图片中只有第 5 点和第 6 点,我们怀疑缺少必要的前提条件。 3. 第 6 点给出了 120 MHz HSE 时钟场景下的 DCF 值。对于 48 MHz FIRC 配置,AIPS 慢时钟频率为 12 MHz(1:4 比率),应该在 UTEST_MISC DCF 记录的时钟模式和垫片控制位字段中编程什么值? 4. S32K312 上该记录的确切 UTEST 地址是什么?是否有示例或 Design Studio / Cyclone 算法文件可供我们安全地进行编程?由于 UTEST 是一次性可编程的,我们希望在编写之前确保万无一失。 5. 除了 UTEST_MISC 之外,AB Swap 是否还需要其他 DCF 记录,例如 UTEST 中的 OTA 启用标记,或者活动和被动块中的 OTA 指示符?如果可以,也请分享一下。板卡上下文:HSE 固件 0.2.55.0 ab_swap 变体,OEM_PROD 生命周期,INIT_OK 和 OEM SU 权限位已设置。 多谢, Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 我猜你还没有安装DCF客户端,而这是你所描述的使用方法所必需的。 davidtosenovjan_0-1786371576770.png Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 1)我不想截取第 5 点的屏幕截图,但我想截取第 6 点的屏幕截图。 2)摘自RM: davidtosenovjan_0-1786445766359.png 3)关键在于比例为 1:4。此外,RM嵌入式附件(S32K3xx_DCF_clients.xlsx)中也有描述。 davidtosenovjan_1-1786445766362.png 4) 要编程的 DCF 记录地址需要您自己找出(找到第一个位置为 0xFFFF_FFFF)。具体来说,地址应该在 0x1B000780 附近,但编程前请仔细检查。 请参阅以下文档以了解 DCF 记录: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC57xx-DCF-records/ta-p/1114884 此外,还有DCF计算器: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K344-DCF-Configurator/ta-p/1986243 我一直按如下方式使用 TRACE32 脚本: ; UTEST 程序 执行 ~~\demo\arm\flash\s32k3.cmm 仅准备 flash.程序 3. /OTP ;输入由 S32K344 DCF 配置器生成的行 数据集 0x1B000780 %QUAD 0x0010000460000101 ;dcf_client_utest_misc 闪光灯程序关闭 上述 DCF 计算器还允许您创建任何程序员/调试器都可以对其进行编程的 S 记录。 5) 当安装 AB_SWAP HSE 固件时,OTA 标志会自动编程,用户无需关心。我不知道还需要其他 DCF 配置。 Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 你好, 后续:我已经按照您的指示为 dcf_client_utest_misc 准备了 DCF 记录(值为 0x0010000460000101,目标地址为 0x1B000768 — 我板上的第一个空闲 QUAD,已验证)。然而,S32DS + PEmicro 多链路调试配置会静默跳过 UTEST 写入 — 闪存会话结束后,0x1B000768 处的字节仍然为 FFFFFFFFFFFFFFFF。 使用 PEmicro Multilink(或 S32DS 3.6.4 附带的任何工具)将单个 DCF 记录编程到 S32K312 上的 UTEST OTP 中的正确工具/步骤是什么?我需要特定的刷写算法文件、不同的调试配置,还是独立的 S32 刷写工具?
記事全体を表示
HSE AB Swapはベアメタル状態では動作するが、S32K312でMCALクロック設定後に失敗する。 こんにちは、 私は、HSEファームウェアバージョン0.2.55.0(ab_swapバリアント)を搭載したS32K312 MINI-EVB上で、HSE-B AB Swapに取り組んでいます。当該ボードはOEM_PRODライフサイクルにあり、バンクAは現在アクティブ状態です。両方のバンクは同じHSEファームウェアバージョンを使用しています。 ベアメタル環境でメイン関数がHSE INIT_OKをポーリングし、その後アクティブパッシブブロックサービスを送信する、動作するリファレンスがあります。その呼び出しは成功を返し、スワップは次のリセット時に適用されます。バンクBには、RM00286のセクション11.3に従って下位アドレス空間用にコンパイルされたポインタを含む有効なIVTが含まれています。 MCALクロック初期化後にブートローダーに移動された同じMU送信コードは、HSE応答55A5A26A(無効なアドレス)を返します。HSE INIT_OKは設定されたままです。他のHSEサービス(AES、RSA、SHA)はこの州で正常に機能しています。正常に動作する実行と失敗する実行の唯一の違いは、ブートローダーパスがクロック初期化中にMC_CGM MUX 0分周器レジスタに書き込み、ソースをFIRCに維持しつつ、AIPS_SLOWとHSE_CLKの比率を1:1(SBAFのデフォルト)から1:4に変更することです。 私の主な疑問は、アクティブパッシブブロックサービスにおいて、無効なアドレス応答が何を指すのかということです。このサービスはデータ構造を受け付けないのですが。HSEがINIT_OKに達した後、この特定のサービスが使用可能な状態を維持するために、MC_CGMディバイダを再構成するための手順が文書化されていますか? 故障したバイナリ、レジスタダンプ、クロック設定はリクエストがあれば共有できます。 よろしくお願いします。 Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 こんにちは、デイビッドさん。 DCFクライアントに関するご指導、ありがとうございました。最初の試みで正しく設定できるように、いくつか確認していただけますか: 1. リストの5番目の項目には、MC_CGM MUX 0のソースはPLL_PHI0でなければならないと書かれています。これは厳密な要件なのでしょうか?アクティベートパッシブブロックサービスはシステムクロックをPLLで行う必要がありますか?それともFIRC(48MHz)で動作するシステムでも動作可能ですか? 2. 同じリストの先のポイント1から4までを教えてもらえますか?画像にはポイント5と6しか表示されておらず、前提条件が不足していると思われます。 3. ポイント6は、120MHz HSEクロックシナリオにおけるDCF値を示しています。48 MHz FIRC構成で、AIPSスロークロックが12 MHz(1:4比)の場合、UTEST_MISC DCFレコードのクロックモードとガスケット制御ビットフィールドにはどのような値をプログラムすればよいでしょうか? 4. このレコードの正確なU S32K312 TESTアドレスはどこで、安全にプログラムできるサンプルやDesign Studio/Cycloneのアルゴリズムファイルはありますか?UTESTは一度しかプログラムできないため、書き込みを行う前に確実に確認しておきたい。 5. UTEST_MISC以外に、AB Swapに必要なDCFレコードはありますか?例えば、UTEST内のOTA有効化マーカーや、アクティブブロックとパッシブブロック内のOTAインジケーターなどです。はいの場合、それらも共有してください。ボードの状況: HSEファームウェア0.2.55.0 ab_swapバリアント、OEM_PRODライフサイクル、INIT_OKおよびOEM SU権限ビットが設定されています。 どうもありがとう、 Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 おそらく、あなたが説明したような使い方をするために必要なDCFクライアントの設定が完了していないのでしょう。 davidtosenovjan_0-1786371576770.png Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 1)私は5番目の項目ではなく、6番目の項目のスクリーンショットを撮りたかったのです。 2) これはRMから引用したものです。 davidtosenovjan_0-1786445766359.png 3) 重要な点は、1:4の比率です。また、RM埋め込み添付ファイル(S32K3xx_DCF_clients.xlsx)にも記載されています。 davidtosenovjan_1-1786445766362.png 4) プログラムする DCF レコードのアドレスは自分で見つける必要があります (0xFFFF_FFFF の最初の場所を見つける)。具体的にはアドレス0x1B000780付近にあるはずですが、プログラミング前に必ず確認してください。 DCFの記録を理解するには、以下の文書を参照してください。 https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC57xx-DCF-records/ta-p/1114884 また、DCFカリキュレータも存在します: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K344-DCF-Configurator/ta-p/1986243 私はTRACE32スクリプトを以下のように使用しています。 ; プログラムUTEST Do ~~\demo\arm\flash\s32K3.cmm PrepareOnly flash.Program 3. /OTP ;S32K344 DCFコンフィギュレータによって生成された行を挿入します data.set 0x1B000780 %QUAD 0x0010000460000101 ;dcf_client_utest_misc フラッシュプログラムオフ 前述のDCF電卓は、どのプログラマーやデバッガーでもプログラム可能なSレコードを作成することも可能です。 5) OTAフラグはHSEのFWをインストールする際に自動的にプログラムされAB_SWAP、ユーザーは気にする必要がありません。他に必要とされるDCFの設定については存じ上げません。 Re: HSE AB Swap works from bare metal but fails after MCAL clock setup on S32K312 こんにちは、 フォローアップ:ご指示に従って、dcf_client_utest_misc の DCF レコードを準備しました(値 0x0010000460000101、ターゲット アドレス 0x1B000768 - 私のボード上の最初の空き QUAD、確認済み)。しかし、S32DS + PEmicro マルチリンクのデバッグ構成では、UTEST 書き込みが黙ってスキップされるため、フラッシュセッション後も 0x1B000768 のバイトは FFFFFFFFFFFFFFFF のままになります。 PEmicro Multilink(またはS32DS 3.6.4に付属する任意のツール)を使用して、S32K312上のUTEST OTPに単一のDCFレコードをプログラムするための正しいツール/手順は何ですか?特定のフラッシュアルゴリズムファイル、別のデバッグ構成、またはスタンドアロンのS32 Flash Toolが必要ですか?
記事全体を表示
如何使用 NXP MBDT 在 S32K396BMS-EVB 上进入 MSDI MC33CD1030 的 LPM 模式 您好, 我需要一些 MBDT 参考设置或现成模型,以便在 CD1030 中使用 S32K396BMS-EVB 输入 LPM。 请支持。 谢谢! Re: How to enter in LPM mode of MSDI MC33CD1030 on S32K396BMS-EVB using NXP MBDT 你好, 在CD1030 数据手册(第 43/75 页)中,我们可以看到必须向 IC 发送一个特定的 SPI 字: SorinIBancila_0-1786537757981.png 要了解如何将 CD1030 集成到您的模型中,请查看以下文章: 如何操作:在 S32K396BMS-EVB 上使用 NXP MBDT 控制 MSDI MC33CD1030 此致, 索林·班奇拉
記事全体を表示
NXP MBDTを使用してS32K396BMS-EVB上のMSDI MC33CD1030をLPMモードにする方法 こんにちは、 S32K396BMS-EVBを使ってCD1030にLPMを入力するためのMBDTの参照設定や準備済みモデルが必要です。 サポートしてください。 よろしくお願いします。 Re: How to enter in LPM mode of MSDI MC33CD1030 on S32K396BMS-EVB using NXP MBDT こんにちは、 CD1030のデータシート(43/75ページ)では、特定のSPIワードをICに送信しなければならないことがわかります: SorinIBancila_0-1786537757981.png CD1030をモデルに統合する方法について詳しく知りたい方は、以下の記事をご覧ください。 やり方:NXP MBDTを使ったS32K396BMS-EVB上のMSDI MC33CD1030  敬具 ソリン・バンチラ
記事全体を表示
Matlab2023a 调用 S32DS3.5 时遇到错误 亲爱的MBDT团队:我们使用 MATLAB 2023a 脚本在编译 Simulink 模型后生成代码,然后调用 eclipsec.exe 进行无界面后台编译。构建完成后,将在 Simulink 诊断查看器中创建一个超链接,用于直接打开与已编译项目对应的工作区。该工作流在 S32DS 3.4 版本中运行非常顺利。然而,在升级到 S32DS 3.5.8 之后,出现了两个问题:问题 1:单击 Simulink 创建的超链接将启动后台进程 s32ds.exe,随后会弹出一个窗口,并立即关闭。我们尝试了多种解决方案,例如在 s32ds.ini 文件中添加参数 `"-vm \bin\javaw.exe" `(但这对 s32ds.exe 没有任何影响),并在系统环境变量中将 JDK 11 设为优先选项。这些尝试都没有解决问题。问题 2:如前所述,通过 MATLAB 脚本调用 eclipsec.exe 会触发屏幕截图中显示的错误:Java 已启动但返回退出代码 =1。我们将"\bin\javaw.exe、" 以及 JDK 11 的路径设置为系统环境变量的最前项。命令提示符正确显示了 Java 11(64 位),但 Simulink 编译时仍试图加载 jvm.dll。删除"client\jvm.dll 后"或者"server\jvm.dll" ,程序会改为定位 java.exe,但仍会报告错误,退出代码为 4。此外,在所有情况下,手动编译依然能够成功。所有相关的文件和设置都将上传以供您参考。请帮忙提供一些建议,以解决这个问题。谢谢。 Re: Matlab2023a Envokes S32DS3.5 Encountered Error 你好, 从你的信息来看,我理解你有一个 Simulink 模型,并使用 Embedded Coder 为其生成代码。然后您设置了一个使用 eclipsec 编译代码的工作流程。我发现的主要问题是 MATLAB 目前没有使用正确的 Java 版本。你有没有尝试就这个问题联系过他们? 此外,我怀疑您没有使用 NXP 开发的基于模型的设计工具箱(例如,S32K3、S32K1 等)。如果我错了,请告诉我。 此致, 索林·班奇拉
記事全体を表示
Matlab2023a が S32DS3.5 を呼び出す際にエラーが発生しました MBDTチームの皆様へ私たちは、Simulinkモデルをコンパイルした後、MATLAB2023aスクリプトを使用してコードを生成し、その後eclipsec.exeを呼び出してヘッドレスバックグラウンドコンパイルを実行しています。ビルドが完了すると、コンパイルされたプロジェクトに対応するワークスペースを直接開くためのハイパーリンクがSimulink Diagnostic Viewerに作成されます。このワークフローはS32DS 3.4で完璧に動作しました。しかし、S32DS 3.5.8にアップグレードした後、2 つの問題が発生しました: 問題 1: Simulink によって作成されたハイパーリンクをクリックすると、バックグラウンド プロセス s32ds.exe が起動します。するとポップアップ表示されてすぐに消える。s32ds.ini にパラメータ "-vm \bin\javaw.exe" を追加するなど、いくつかの解決策を試しましたが、s32ds.exe には影響がありませんでした。システム環境変数において、JDK 11のパスを優先的に指定する。これらの試みはいずれも問題を解決しなかった。問題 2: 前述のとおり、MATLAB スクリプト経由で eclipsec.exe を呼び出すと、スクリーンショットに示されているエラーが発生します: Java は起動しましたが、終了コード = 1 を返しました。システム環境変数の先頭に「\bin\javaw.exe」とJDK 11のパスを設定しました。コマンドプロンプトにはJava 11(64ビット)が正しく表示されているにもかかわらず、Simulinkコンパイルは依然としてjvm.dllのロードを試みます。「client\jvm.dll」を削除した後または「server\jvm.dll」の場合、プログラムは代わりにjava.exeを見つけますが、それでも終了コード=4のエラーを報告します。さらに、手動コンパイルはすべての場合において成功している。関連するすべてのファイルと設定は、参考のためにアップロードされます。この問題を解決するためのアドバイスをお願いします。ありがとう。 Re: Matlab2023a Envokes S32DS3.5 Encountered Error こんにちは、 あなたのメッセージから理解した限りでは、Simulinkモデルがあり、Embedded Coderを使ってそのコードを生成するようですね。これで、eclipsecを使用してコードをコンパイルするワークフローが設定できました。私が考える主な問題点は、MATLABが現在正しいJavaバージョンを使用していないことです。この問題について彼らに連絡を試みましたか? さらに、NXPが開発したモデルベースデザインツールボックス(例:Model-Based Design Toolbox)を使っていないのではないかと推測しています。S32K3、S32K1など)。もし私の考えが間違っていたら教えてください。 よろしくお願いします、 ソリン・バンシラ
記事全体を表示
我的项目有问题 早上好、 我正在使用你的一个评估板,特别是 FRDM-A-S32K344 板,并以 MATLAB 和 Simulink 中的 “s32k344_mc_pmsm_1SH_S32CT” 为例。我遇到的问题是,当我将接口连接到 Freemaster 时,有些变量没有出现,而是显示为一个问号;换句话说,它们没有被检测到或没有被执行。此外,我还在尝试加载 .elf文件,以防出现编译错误,但我收到了一些错误提示,称某些变量未被检测到。 你能帮帮我吗? JonAnder_Amante_0-1780474522107.png JonAnder_Amante_1-1780474600546.png 如果我尝试重新加载文件 .elf我有 JonAnder_Amante_2-1780474650900.png Re: Problem with my project 你好, 如果 FreeMASTER 项目中未检测到变量,请确保已从设置中正确选择 elf 文件。 如果设置正确,请检查模型中的变量是否设置为外部变量或波动变量。否则,FreeMASTER 将无法检测到它们。 此致, 索林·班奇拉
記事全体を表示
プロジェクトに問題があります おはよう、 私は御社の評価ボードの一つ、具体的にはFRDM-A-S32K344ボードを、MATLABおよびSimulinkの「S32K344_mc_pmsm_1sh_s32ct」サンプルで使用しています。私が抱えている問題は、インターフェースをFreemasterに接続した際に、一部の変数が表示されず、疑問符として表示されることです。つまり、それらの変数が検出されていないか、実装されていないということです。また、.elf ファイルをロードしようとしていますコンパイルエラーが発生した場合に備えてファイルを確認したところ、特定の変数が検出されないというエラーが表示されました。 手伝っていただけますか? JonAnder_Amante_0-1780474522107.png JonAnder_Amante_1-1780474600546.png .elf ファイルを再読み込みしようとすると私は持っている: JonAnder_Amante_2-1780474650900.png Re: Problem with my project こんにちは、 FreeMASTERプロジェクトで変数が検出されない場合は、設定からelfファイルが正しく選択されていることを確認してください。 正しく設定されていれば、モデル内で変数が外部か揮発性に設定されているか確認してください。そうでなければ、FreeMASTERはそれらを検出できません。 よろしくお願いします、 ソリン・バンシラ
記事全体を表示
有关运动控制的重要问题 您好, 我正在使用带驱动器 GD3000 和 Sunrise 电机的 S32K344MINI-EVB 板。我已经测试了一个你可以用项目 " s32K344: mc_pmsm_1SH_S32CT " 来管理电机速度的程序。我有不同的问题,因为我想证明新的选择。   JonAnder_Amante_1-1770196663700.png 1。我想使用评估板来实现电机的控制,所以我想控制FOC(2个控制器PI),但我想模拟工厂(电动机PMSM)和电力电子设备(GD3000)。在此示例中,如何对其进行修改以模拟工厂,同时继续执行评估板上的控制?我想我必须更改状态机模块的某些部分,但我不知道要更改什么。 2.能否告诉我从 GD3000(电机驱动器)向电机 PMSM 发送不同信号时使用的引脚?我在您的网站上看到了相关信息,但我不知道是否属实。我给你发了一份包含这些信息的 pdf 文件,尽管它不是同一个板,我认为大头针是一样的 (INFO_Driver_MOtor.pdf)。 谢谢大家、 Jon Ander Amante Re: Important question about motor control 你好,@JonAnder_Amante、 您可以在此处找到初始主题的答案:S32K3 MBDT 1.60 版本中缺少电机控制 PMSM 示例 顺祝商祺! 德拉古 Re: Important question about motor control 你好,我是@JonAnder_Amante、 为了使用 S32K344MINI-EVB,需要在板上进行以下修改: stefanvlad_0-1770819182442.png 1.取下 PCB 底部靠近直流插孔的电阻器R396和R397: stefanvlad_4-1770819788524.png 2.在 J4 连接器附近装入 0(零)欧姆电阻R413、R414和R418 : stefanvlad_3-1770819728806.png 这也是因为 VDD_HV_A 的电压为 3.3V,而不是 5V: stefanvlad_2-1770819465940.png 我们需要修改 Udc 和 Idc 增益参数: stefanvlad_6-1770820165900.png %% 应用规模 mbd_i_max = 20.625; mbd_u_dcb_max = 29.7;   之后我们可以将 DEVKIT-MOTORGD (GD3000) 板连接到 S32K344MINI-EVB 的顶部: stefanvlad_5-1770819975008.jpeg 现在打开 FreeMASTER,运行示例并检查 iABC 波形: stefanvlad_7-1770821519787.png 致以最崇高的敬意 Stefan V. Re: Important question about motor control 你好, 感谢您的答复。现在,我只想在板中实现对 FOC 的控制 " S32K344 MINI-EVB ",也就是说,我还有另一个方块它代表带有电力电子设备的电机 PMSM(Sunrise),但我必须使用带有 MBD 的 FOC 控制。在这个例子中,您能告诉我哪些区块必须保留,哪些区块必须删除吗? JonAnder_Amante_0-1770883302148.png 我认为必须将当前循环和速度循环保留在名为"state machine" 的块中,但问题是有许多变量和不同的块,它们之间有不同的跳转。 JonAnder_Amante_1-1770883826681.png 基本上,我的项目目标是使用与本项目相同的 FOC 控制,但使用另一个工厂。 谢谢大家, Jon Ander Amante Re: Important question about motor control 你好,我是@JonAnder_Amante、 我不太明白你还想用什么设备,也许是另一个发动机? 我们目前支持Sunrise 电机(参数见s32k344_mc_pmsm_2sh_s32ct_data.m)和 Linix 电机(参数见 s32k344_mc_pmsm_2sh_s32ct_data_linix.m)。 如果您还有其他马达,则需要相应地修改data.m文件中的参数,然后进行全新版本。 祝你愉快 Stefan V. Re: Important question about motor control 你好, 1.我想使用带参数的 Sunrise 电机,但我的问题是,SImulink 中是否有代表工厂的模块,因为我想一方面有工厂模块,另一方面有控制器模块。 2.此外,我向您发送了 "马达日出 "的参数,我不知道您是否能确认这些日期是真实的。 PARAM_Rs = 0.192;% Resistencia del estator [Ohms] 电阻器[欧姆]。 PARAM_Mpp = 2;% Pares de polos [-] PARAM_Ld = 0.000096;% Inductancia eje D [H] PARAM_Lq = 0.000107;% Inductancia eje Q [H] param_ke = 0.005872;% 恒定反电动势 [v.sec/rad] PARAM_J = 0.12e-4;% Inercia [kg.m2] PARAM_r32_F_IP_Wb_motor1 = 0.00518;% Flujo magnetico   %% 设计参数 LAZO DE CORRIENTE %环路带宽 = 150 [Hz] %环路衰减 = 1 [-] %Loop 采样时间 = 0.0001 [秒] %----------------------------------------------------- f_cutoff_current = 150;% Frecuencia de corte deseada [Hz] (关断电流) w0_current = 2 * pi * f_cutoff_current;% 自然频率[rad/s] xi_current = 0.707;% Amortiguamiento Ts_current = 1 /fsw;% Tiempo de muestreo   % Cálculos eje D Kp_D = (2 * xi_current * w0_current * PARAM_Ld) - PARAM_Rs; Ki_D = (w0_current^2) * PARAM_Ld; % 计算 Q Kp_Q = (2 * xi_current * w0_current * PARAM_Lq) - PARAM_Rs; Ki_Q = (w0_current^2) * PARAM_Lq;   % 电流环控制(根据 NXP GFLIB 计算) %---------------------------------------------------------------------- mbd_cloop_limit = 0.9;   % Eje D(D 轴) MBD_D_CC1SC = Kp_D + (Ki_D * Ts_current / 2); MBD_D_CC2SC = -Kp_D + (Ki_D * Ts_current / 2);   % Eje Q(Q 轴) MBD_Q_CC1SC = Kp_Q + (Ki_Q * Ts_current / 2); MBD_Q_CC2SC = -Kp_Q + (Ki_Q * Ts_current / 2); 2.我把在 Simulink 中使用的方案发给你。我的想法是 JonAnder_Amante_1-1771229540348.png JonAnder_Amante_2-1771229553893.png JonAnder_Amante_4-1771229596623.png JonAnder_Amante_3-1771229577117.png 我的想法是不使用实体电机,而是用照片中的绿色块来模拟它。并通过 MCLIB 块执行控制(电流环和速度环)。   谢谢大家; Re: Important question about motor control 早上好、 我正在使用你的一个评估板,特别是 FRDM-A-S32K344 板,并以 MATLAB 和 Simulink 中的 “s32k344_mc_pmsm_1SH_S32CT” 为例。我遇到的问题是,当我将接口连接到 Freemaster 时,有些变量没有出现,而是显示为一个问号;换句话说,它们没有被检测到或没有被执行。此外,我还在尝试加载 .elf文件,以防出现编译错误,但我收到了一些错误提示,称某些变量未被检测到。 你能帮帮我吗? JonAnder_Amante_0-1780475763418.png JonAnder_Amante_1-1780475763497.png 如果我尝试重新加载文件 .elf我有 JonAnder_Amante_2-1780475763491.png Re: Important question about motor control 你好, 如果 FreeMASTER 项目中未检测到变量,请确保已从设置中正确选择 elf 文件。 如果设置正确,请检查模型中的变量是否设置为外部变量或波动变量。否则,FreeMASTER 将无法检测到它们。 此致, 索林·班奇拉
記事全体を表示
モーター制御に関する重要な質問 こんにちは、 S32K344MINI-EVBボード、ドライバGD3000、Sunriseモーターを使用しています。プロジェクト「S32K344:mc_pmsm_1sh_s32ct」でモーターの速度を制御できるプログラムをテストしました。新しいオプションを試してみたいので、いくつか質問があります。   JonAnder_Amante_1-1770196663700.png 1. 評価ボードを使用してモーター制御を実現したいのですが、制御FOC(2つのPIコントローラ)を使用し、プラント(モーターPMSM)とパワーエレクトロニクス(GD3000)をシミュレーションしたいと考えています。この例では、プラントをシミュレーションしながら評価ボードから制御を実行できるようにどのように変更すればよいでしょうか?ステートマシン ブロックの何かを変更する必要があると思いますが、何を変更する必要があるかわかりません。 2. GD3000 (モーターのドライバ) からモーター PMSM にさまざまな信号を送信するために使用しているピンを教えてください。これについてはあなたのウェブサイトに情報が載っていますが、それが事実かどうかはわかりません。この情報を含む PDF をお送りします。同じボードではありませんが、ピンは同じだと思います (INFO_Driver_MOtor.pdf)。 皆様ありがとうございました。 ジョン・アンダー・アマンテ Re: Important question about motor control こんにちは、 @JonAnder_Amanteさん、 最初のスレッドの答えは、こちらにあります: S32K3 MBDT のバージョン 1.60 にモーター制御 PMSM の例がありません よろしくお願いいたします。 ドラゴス Re: Important question about motor control こんにちは、 @JonAnder_Amanteさん、 S32K344MINI-EVBを使用するには、ボードに次の変更を加える必要があります。 stefanvlad_0-1770819182442.png 1. DCジャックの近くのPCB下部にある抵抗器R396とR397を取り外します。 stefanvlad_4-1770819788524.png 2. J4コネクタの近くにある0オームの抵抗器R413 、 R414 、 R418を取り付けます。 stefanvlad_3-1770819728806.png また、VDD_HV_A には 5V ではなく 3.3V が供給されるため、 stefanvlad_2-1770819465940.png Udc ゲインと Idc ゲインのパラメータを変更する必要があります。 stefanvlad_6-1770820165900.png %% アプリケーションのスケール MBD_I_MAX = 20.625; MBD_U_DCB_MAX = 29.7;   この後、S32K344MINI-EVBの上にDEVKIT-MOTORGD(GD3000)ボードを接続できます。 stefanvlad_5-1770819975008.jpeg 次に、FreeMASTER を開いて例を実行し、iABC の波形を確認します。 stefanvlad_7-1770821519787.png よろしくお願いします、 ステファン V. Re: Important question about motor control こんにちは、 お返事ありがとうございます。現時点では、ボード「S32K344 MINI-EVB」で FOC の制御のみを実現したいと考えています。つまり、パワー エレクトロニクスを備えたモーター PMSM (Sunrise) を表すプラントの別のブロックがありますが、MBD で FOC の制御を使用する必要があります。この例では、どのブロックを保持し、どのブロックを削除する必要があるかを教えてください。 JonAnder_Amante_0-1770883302148.png 現在のループと速度ループを「ステート マシン」と呼ばれるブロックに保持する必要があると思いますが、問題は、変数が多く、ブロック間に異なるジャンプがあることです。 JonAnder_Amante_1-1770883826681.png 基本的に、私のプロジェクトの目標は、このプロジェクトと同じ FOC 制御を使用しながら、別のプラントを使用することです。 皆様ありがとうございました。 ジョン・アンダー・アマンテ Re: Important question about motor control こんにちは、 @JonAnder_Amanteさん、 他にどのようなプラントを使用したいのかよく分かりません。別のモーターでしょうか? 現在、 s32k344_mc_pmsm_2sh_s32ct_data.mのパラメータを持つSunriseモーターと、s32k344_mc_pmsm_2sh_s32ct_data_linix.mのパラメータを持つLinixモーターをサポートしています。 他のモーターがある場合は、data.m ファイルでパラメータを適宜変更し、クリーン ビルドを実行する必要があります。 良い一日を、 ステファン V. Re: Important question about motor control こんにちは、 1.私は Sunrise モーターとそのパラメータを使用したいのですが、プラントを表すブロックが SImulink にあるかどうかが疑問です。なぜなら、プラントのブロックを一方に、コントローラをもう一方に配置したいからです。 2. さらに、モーター サンライズのパラメータを送信しましたが、日付が正確であることを確認できるかどうかわかりません。 PARAM_Rs = 0.192; % レシステンシアデルエステーター [オーム] PARAM_Mpp = 2; % パレス デ ポロ [-] PARAM_Ld = 0.000096; % インダクタンス eje D [H] PARAM_Lq = 0.000107; % インダクタンス eje Q [H] PARAM_Ke = 0.005872; % 定常逆起電力 [V.sec/rad] PARAM_J = 0.12e-4;慣性% [kg.m2] PARAM_r32_F_IP_Wb_motor1 = 0.00518; % Flujo マグネティコ   %% パラメトロス ディセーニョ ラソ デ コリエンテ %ループ帯域幅 = 150 [Hz] %ループ減衰 = 1 [-] %ループサンプル時間 = 0.0001 [秒] %----------------------------------------------------- f_cutoff_current = 150; % 周波数 [Hz] w0_current = 2 * pi * f_cutoff_current; % 自然周波数 [rad/s] xi_current = 0.707; % アモルティグアミエント Ts_current = 1 /fsw; % ティエンポ デ ムエストレオ   % Cálculos eje D Kp_D = (2 * xi_current * w0_current * PARAM_Ld) - PARAM_Rs; Ki_D = (w0_current^2) * PARAM_Ld; % Cálculos eje Q Kp_Q = (2 * xi_current * w0_current * PARAM_Lq) - PARAM_Rs; Ki_Q = (w0_current^2) * PARAM_Lq;   % 電流ループ制御 (NXP GFLIB セグメンテーション計算) %---------------------------------------------------------------------- MBD_CLOOP_LIMIT = 0.9;   % Eje D (D軸) MBD_D_CC1SC = Kp_D + (Ki_D * Ts_current / 2); MBD_D_CC2SC = -Kp_D + (Ki_D * Ts_current / 2);   % Eje Q (Q軸) MBD_Q_CC1SC = Kp_Q + (Ki_Q * Ts_current / 2); MBD_Q_CC2SC = -Kp_Q + (Ki_Q * Ts_current / 2); 2. Simulink で使用しているスキームをお送りします。私のアイデアは JonAnder_Amante_1-1771229540348.png JonAnder_Amante_2-1771229553893.png JonAnder_Amante_4-1771229596623.png JonAnder_Amante_3-1771229577117.png 私のアイデアは、物理的なモーターを使用せず、写真に写っている緑色のブロックでそれをシミュレートすることです。MCLIB ブロックを使用して制御 (電流ループと速度ループ) を実行します。   皆様ありがとうございました。 Re: Important question about motor control おはよう、 私は御社の評価ボードの一つ、具体的にはFRDM-A-S32K344ボードを、MATLABおよびSimulinkの「S32K344_mc_pmsm_1sh_s32ct」サンプルで使用しています。私が抱えている問題は、インターフェースをFreemasterに接続した際に、一部の変数が表示されず、疑問符として表示されることです。つまり、それらの変数が検出されていないか、実装されていないということです。また、.elf ファイルをロードしようとしていますコンパイルエラーが発生した場合に備えてファイルを確認したところ、特定の変数が検出されないというエラーが表示されました。 手伝っていただけますか? JonAnder_Amante_0-1780475763418.png JonAnder_Amante_1-1780475763497.png .elf ファイルを再読み込みしようとすると私は持っている: JonAnder_Amante_2-1780475763491.png Re: Important question about motor control こんにちは、 FreeMASTERプロジェクトで変数が検出されない場合は、設定からelfファイルが正しく選択されていることを確認してください。 正しく設定されていれば、モデル内で変数が外部か揮発性に設定されているか確認してください。そうでなければ、FreeMASTERはそれらを検出できません。 よろしくお願いします、 ソリン・バンシラ
記事全体を表示
Freemaster 我为 S32K344-WB 构建了一个 Simulink 模型,让每隔 1 秒开启和关闭 LED。然后我将 ELF 文件导入 FreeMaster 并通过 J-Link 监测波形。然而,在我点击 "开始 "后,FreeMASTER 示波器上的信号电平保持在一条平线上,没有切换。当我按下主板上的物理RESET按钮时,LED 开始正常闪烁,但是 FreeMaster 中的波形显示暂停了。MCU 正常运行时,LED 不断闪烁,我应该如何配置设置,以便在 FreeMASTER 示波器上观察波形? Re: freemaster 你好, 首先,很抱歉回复晚了。 如果 FreeMASTER 已连接到评估板,而您又重置了评估板,则必须停止 FreeMASTER 连接并重新开始连接。否则,它会卡住。 实现你想要的效果的一种方法是将 LED 的状态存储在数据存储存储器中。应用 NOT 运算(将 LOW -> HIGH 和 HIGH -> LOW 互换),并将该值传递给 Dio_WriteChannel。这样,您可以将数据存储内存标记为易失性或外部,以便您可以将其加载到 FreeMASTER 项目中。 如果要对 DIO 通道执行读取和写入操作,则需要将引脚配置为 INOUT(S32CT 中的引脚选项卡)。 此致, 索林·班奇拉
記事全体を表示
FreeMASTER S32K344-WB用のSimulinkモデルを作成し、LEDを1秒ごとに点滅させるようにしました。その後、ELFファイルをFreeMASTERにインポートし、J-Linkを介して波形を監視しました。しかし、 「Go」をクリックした後、FreeMASTERオシロスコープの信号レベルは平坦な線のままで、変化しませんでした。基板上の物理的なリセットボタンを押すと、LEDは正常に点滅し始めたが、FreeMASTERの波形表示は一時停止した。MCUがLEDを連続的に点滅させながら正常に動作している状態で、FreeMASTERオシロスコープで波形を観測するには、どのように設定すればよいでしょうか? Re: freemaster こんにちは、 まず、返信が遅くなり申し訳ありません。 FreeMASTERがすでに基板に接続されている状態で評価ボードをリセットした場合、FreeMASTER接続を停止して再起動しなければなりません。そうしないと、詰まってしまうでしょう。 あなたが実現したいことを実現する一つの方法は、LEDの状態をデータストアメモリに保存することです。NOT演算を適用し(LOW→HIGHとHIGH→LOWの間で変更するため)、その値をDio_WriteChannelに渡します。こうすることで、データストアメモリを揮発性または外部にマークしてFreeMASTERプロジェクトに読み込めます。 DIOチャネルの読み書き操作を行いたいなら、ピンをINOUTに設定する必要があります(S32CTのPinsタブ)。 よろしくお願いします、 ソリン・バンシラ
記事全体を表示
Kinetis 和 LPC 的调试接口有什么建议? 我目前主要从事 Kinetis 系列芯片的开发工作,未来可能还会开发一些 LPC 芯片。我抽屉里装满了 P&E Micro 的调试接口,其中最常用的是 Cyclone ACP。 我有时会发现自己从 600 美元的 Cyclone 换成了 20 美元的 LPC-Link2,因为 Cyclone 与 MCUXpresso 存在很多奇怪的问题。说实话,LPC-Link2 基本能满足我的需求,只是速度有点慢。 我应该考虑使用Segger接口吗?请问有人可以推荐一款可靠、速度适中、在 MCUXpresso(最好也能在 CodeWarrior 11)中支持良好的接口吗?这款接口不会经常导致程序崩溃,也不会无法停止正在运行的目标。如果能支持追踪功能就更好了。 谢谢您! Re: Debug interface recommendations for Kinetis and LPC? 嗨@richard37 感谢您的帖子! 您不妨考虑一下 SEGGER J-Link。它与 MCUXpresso 一起使用时支持 Kinetis 和 LPC 设备,并且 CodeWarrior 11 也原生支持它。 如果您需要一种可以在开发环境和设备系列中使用的调试探针,那么它是一个很好的选择。
記事全体を表示
KinetisとLPC用のデバッグインターフェースのおすすめはありますか? 私は主にKinetisシリーズで開発をしており、近い将来LPCのパーツもいくつか手がけるかもしれません。P&E Microのデバッグインターフェースが引き出しいっぱいにあり、よく使っているCyclone ACPも含まれています。 時々、600ドルのCycloneから20ドルのLPC-Link2に切り替えることがあります。なぜなら、CycloneはMCUXpressoに多くの奇妙な問題があるからです。正直なところ、LPC-Link2は私の必要な機能のほとんどを満たしてくれるのですが、少し動作が遅いのが難点です。 Seggerインターフェースを検討しるべきでしょうか?MCUXpresso(そしてできればCodeWarrior 11でも)で十分にサポートされ、クラッシュや走行中のターゲットを止められない信頼性が高く、そこそこ高速なインターフェースを誰かおすすめできませんか?トレースサポートがあれば助かります。 よろしくお願いします! Re: Debug interface recommendations for Kinetis and LPC? こんにちは、@richard37さん 投稿ありがとうございます! SEGGER J-Linkを検討してみるのも良いかもしれません。MCUXpressoと組み合わせて使用した場合、KinetisとLPCの両方に対応しており、CodeWarrior 11でもネイティブサポートされています。 これにより、開発環境やデバイスファミリーの両方で使えるデバッグプローブが必要な場合に良い代替手段となります。
記事全体を表示
MCUXpresso SDK 最新版本 - 推荐的闪存数据存储方案 大家好,   我正在评估最新版本的 MCUXpresso SDK,并使用 NXP MCU。       对于将小型配置参数(设备设置、校准值、计数器等)保存到内部闪存中,目前推荐的方法是什么?     具体来说:   1. 使用专用闪存存储区还是 EEPROM 仿真(在支持的情况下)更好?   2. 频繁执行闪存写入操作时,是否存在性能或可靠性方面的考虑因素? 3. NXP 是否有任何示例项目来展示参数存储和损耗均衡的最佳实践? 4. 是否有推荐的用于管理持久配置数据的 SDK 库? 我已经查阅了现有的 SDK 文档,但我希望能够获得关于新项目推荐实施方法的指导。   Re: MCUXpresso SDK Latest Version - Recommended Approach for Flash Data Storage 你好@Manjuanth , 我看到您已将此帖子发布在 S32K 的产品论坛上,但是 S32K 的 MCU 与 MCUXpresso 不兼容,请改用S32 Design Studio 。请问您使用的是哪款恩智浦MCU? 此致, 朱利安
記事全体を表示
MCUXpresso SDK 最新バージョン - フラッシュデータストレージの推奨アプローチ チームの皆さん、こんにちは。   私は最新バージョンのMCUXpresso SDKを評価しており、NXP MCUを使って作業しています。       小さな設定パラメータ(デバイス設定、キャリブレーション値、カウンターなど)を内部フラッシュメモリに保存する場合、現在推奨されている方法は何でしょうか?     具体的には:   1. 専用のフラッシュストレージ領域を使用するのと、EEPROMエミュレーション(サポートされている場合)を使用するのとでは、どちらが良いでしょうか?   2. フラッシュメモリへの書き込み操作を頻繁に行う場合、パフォーマンスや信頼性に関して考慮すべき点はありますか? 3. NXPは、パラメータの保存とウェアレベリングに関するベストプラクティスを示すサンプルプロジェクトを提供していますか? 4. 永続的な設定データを管理するために推奨されるSDKライブラリはありますか? 利用可能なSDKドキュメントは確認しましたが、新規プロジェクトでの推奨実装アプローチについての指針をいただけるとありがたいです。   Re: MCUXpresso SDK Latest Version - Recommended Approach for Flash Data Storage こんにちは、 @Manjuanth さん。 S32Kの製品フォーラムに投稿されているのを見ましたが、S32KのMCUはMCUXpressoと互換性がなく、代わりに S32 Design Studioを使っています。どのNXPのMCUを使っているか教えてもらえますか? よろしくお願いします、 ジュリアン
記事全体を表示
MRF300AN 27MHz 参考设计 TVS 和电源时序 您好,NXP团队,关于MRF300AN-27MHz参考设计有两个问题:问题1:我可以在漏极和地之间连接一个110V TVS进行保护吗?Vds 为 133V。这是个好选择吗?Q2:正确的开机顺序是什么?栅极偏置先于漏极,还是漏极偏置先于栅极?另外,射频驱动应该缓慢增加功率还是可以直接施加全功率?谢谢。 Re: MRF300AN 27MHz Ref DesignTVS and Power Sequence 你好, 一般而言,TVS 反向截止电压应选择高于最大正常工作漏极电压,以防止正常工作期间发生意外导通,同时还能提供对异常瞬态事件的保护。 关于上电顺序,漏极电源可以在栅极偏置之前施加,反之亦然。在稳定且经过适当调整的电路中,这两种方法都是可以接受的。 此外,建议逐步增加射频驱动功率,而不是突然施加全功率驱动,因为这有助于确保更平稳的启动,并减少设备在运行条件下的压力。 希望这能帮到你!
記事全体を表示
MRF300AN 27MHzリファレンス設計TVSとパワーシーケンス こんにちは、NXPチームの皆さん。MRF300AN-27MHzのリファレンスデザインについて2つ質問があります。Q1:110V TVSをドレインからアースにかけて保護してもいいですか?Vdsは133Vです。これは良い選択でしょうか?Q2: 正確な電源オンシーケンスは何ですか?ゲートバイアスをドレインの前に置くべきか、ドレインバイアスをゲートの前に置くべきか?また、RFドライブはゆっくりと増やすべきでしょうか、それともフルドライブを直接適用してもいいのでしょうか?ありがとう。 Re: MRF300AN 27MHz Ref DesignTVS and Power Sequence こんにちは、 一般的に、TVSの逆スタンドオフ電圧は通常動作中の最大動作ドレイン電圧より高い位置に選択し、正常運転中の意図しない導電を防ぎつつ、異常な過渡現象からの保護も提供します。 電源アップシーケンスに関しては、ドレイン電源をゲートバイアスの前に、またはその逆に適用することができます。どちらの方法も、安定していて適切に調整された回路であれば許容範囲内である。 さらに、RFドライブを急激にフルドライブするのではなく、徐々にパワーアップさせることが推奨されており、これにより起動がスムーズになり、動作時のデバイスへの負荷も軽減されます。 お役に立てば幸いです!
記事全体を表示
i.MX8MP: SAI3オーディオを有効にしてM7を実行すると、SErrorとページフォルトが発生します。 NXP公式チームの皆様、こんにちは。 i.MX 8M Plus プラットフォームを使用し、 Linux A53 と FreeRTOS M7 を実行する システムを開発しています 。M7 を実行中に SAI3 オーディオインターフェースをLinuxに割り当てようとしたところ、カーネルクラッシュ(SError/ページフォルト)が発生しました。 1. ソフトウェアのバージョンと環境: カーネルバージョン: Linux 5.10.72 U-Bootバージョン: U-Boot 2021.04 M7 SDK: i.MX8MP 用 MCUXpresso SDK (rpmsg_lite_str_echo_rtos) 公式記事を参照してください: NXPナレッジベース: remoteprocを使用してM7ファームウェアを実行中にSAI3をテストする 2. システム構成:   <1> M7ファームウェア(m7.bin)はシステムパーティションに保存され、...U-Bootステージは、bootaux 0x007e0000コマンドを使用して直接起動されます。 <2> Cortex-A53 Linux側では、SAI3 + I2C3 + SDMA3バスに搭載された物理サウンドカードチップ(SGTL5000)を使用します。 <3> Cortex-M7は、GPIO2_IO09ピンでデータを取得し、高周波サンプリング割り込みをトリガーし、RPMsg仮想シリアルポート(/dev/ttyRPMSG30)を介してコア間でA53 Linuxとやり取りする役割を担っています。 3.発生した問題: サウンドカードのリソースがA53に調整されていない場合、/dev/ttyRPMSG30デバイスの動作は正常です。 現在、A53サウンドカードが必要です。公式記事「<リモートプロシージャコールでM7ファームウェアを実行中にSAI3をテストする>」に従って、以下の調整を行いましたが、カーネルの起動時に問題が発生します。変更点は以下のとおりです。 <1> カーネルのDTS設定が復元され、サウンドカードの設定が添付ファイル に示すようにA53に変更されました。 <2> u-boot dts: A53 にサウンドカードのリソースを割り当てます。例: <3> ATF、 SAI3、sdma3、i2c3をA53に割り当て、 imx8mp_bl31_setup.cを修正します。例: <4>M7 SDK: 添付の および に示されているように、AUDIO の変更に関連する BOARD_BootClockRUN および BOARD_RdcInit 関数に関するコメント。 4. カーネルのdmesgクラッシュログ: 以下のログに示すように、カーネル起動中にシステムがフリーズします。 [ 2.992289] i2c i2c-1: IMX I2C adapter registered [ 2.997631] SError Interrupt on CPU2, code 0xbf000002 -- SError [ 2.997634] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56 [ 2.997636] Hardware name: EMB-3512-V11-M7 (DT) [ 2.997638] Workqueue: events deferred_probe_work_func [ 2.997642] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--) [ 2.997644] pc : i2c_imx_probe+0x31c/0x8fc [ 2.997645] lr : i2c_imx_probe+0x2b0/0x8fc [ 2.997647] sp : ffff8000126a3af0 [ 2.997648] x29: ffff8000126a3af0 x28: ffff80001135c3f0 [ 2.997654] x27: ffff0000c50aa880 x26: 0000000000000023 [ 2.997660] x25: ffff0000c50aaca0 x24: ffff0000c50aa8f0 [ 2.997666] x23: ffff800011d7c090 x22: ffff0000c4410e40 [ 2.997672] x21: ffff80001135c428 x20: ffff0000c041d800 [ 2.997677] x19: ffff0000c041d810 x18: 0000000000000020 [ 2.997683] x17: 0000000000000000 x16: 0000000000000000 [ 2.997689] x15: ffff0000c44112b8 x14: 0000000000000000 [ 2.997695] x13: ffff0000c4410e40 x12: ffff8000126a3a70 [ 2.997700] x11: aaaaaaaaaaaaaaab x10: 0000000000000060 [ 2.997706] x9 : ffff800011b993b4 x8 : ffff800011b99000 [ 2.997712] x7 : 00007dfed2122a00 x6 : 000000000007a120 [ 2.997718] x5 : 0000000000b71aff x4 : 0000000000000002 [ 2.997723] x3 : 0000000000000002 x2 : 0000000000000000 [ 2.997729] x1 : ffff0000ff86ea08 x0 : ffff800013c8000c [ 2.997736] Kernel panic - not syncing: Asynchronous SError Interrupt [ 2.997741] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56 [ 2.997742] Hardware name: EMB-3512-V11-M7 (DT) [ 2.997744] Workqueue: events deferred_probe_work_func [ 2.997747] Call trace: [ 2.997748] dump_backtrace+0x0/0x1a0 [ 2.997750] show_stack+0x18/0x70 [ 2.997751] dump_stack+0xd0/0x12c [ 2.997752] panic+0x16c/0x334 [ 2.997754] nmi_panic+0x8c/0x90 [ 2.997755] arm64_serror_panic+0x78/0x84 [ 2.997757] do_serror+0x64/0x6c [ 2.997758] el1_error+0x90/0x110 [ 2.997760] i2c_imx_probe+0x31c/0x8fc [ 2.997762] platform_drv_probe+0x54/0xb0 [ 2.997763] really_probe+0xec/0x4d0 [ 2.997765] driver_probe_device+0x58/0xc0 [ 2.997766] __device_attach_driver+0xa8/0x10c [ 2.997768] bus_for_each_drv+0x78/0xd0 [ 2.997769] __device_attach+0xd8/0x180 [ 2.997771] device_initial_probe+0x14/0x20 [ 2.997773] bus_probe_device+0x9c/0xa4 [ 2.997774] deferred_probe_work_func+0x80/0xc0 [ 2.997776] process_one_work+0x1cc/0x350 [ 2.997777] worker_thread+0x2bc/0x46c [ 2.997779] kthread+0x154/0x160 [ 2.997780] ret_from_fork+0x10/0x30 [ 2.998109] SMP: stopping secondary CPUs [ 2.998111] Kernel Offset: disabled [ 2.998113] CPU features: 0x0240002,2000200c [ 2.998114] Memory Limit: none 問題点をご確認いただき、解決に役立つ関連文書や修正点がないかご検討ください。ご提案やご回答をお待ちしております。よろしくお願いいたします。 回复: i.MX8MP: SError & Page Fault when running M7 with SAI3 audio enabled 解決しました。M7側のオーディオ設定を完全に無効にする必要がありました。
記事全体を表示
i.MX8MP: SError & Page Fault when running M7 with SAI3 audio enabled Hello NXP official team: We are developing a system using the i.MX 8M Plus platform, running Linux A53 and FreeRTOS M7 . While attempting to allocate the SAI3 audio interface to Linux while running M7, we encountered a kernel crash (SError/page fault). 1. Software version and environment: Kernel version: Linux 5.10.72 U-Boot version: U-Boot 2021.04 M7 SDK: MCUXpresso SDK for i.MX8MP (rpmsg_lite_str_echo_rtos) Refer to the official article: NXP Knowledge Base: Test SAI3 while running M7 firmware with remoteproc 2. System configuration:   <1> The M7 firmware (m7.bin) is stored in the system partition and...The U-Boot stage is started directly using the command bootaux 0x007e0000. <2> On the Cortex-A53 Linux side, we use a physical sound card chip (SGTL5000) mounted on the SAI3 + I2C3 + SDMA3 bus. <3> The Cortex-M7 is responsible for acquiring data on the GPIO2_IO09 pin and triggering a high-frequency sampling interrupt, and interacting with the A53 Linux across cores via the RPMsg virtual serial port (/dev/ttyRPMSG30). 3. Problems encountered: If the sound card resources are not adjusted to A53, the operation of the /dev/ttyRPMSG30 device is normal; Currently, an A53 sound card is required. Following the official post < Test SAI3 while running M7 firmware with remoteproc >, the following adjustments were made, but kernel booting will cause issues. The changes are as follows: <1> The kernel DTS configuration has been restored, and the sound card configuration has been changed to A53, as shown in the attached <2> u-boot dts: Allocates sound card resources to the A53, such as <3> ATF, assign SAI3, sdma3, and i2c3 to A53, modify imx8mp_bl31_setup.c, such as: <4> M7 SDK: Comments on the BOARD_BootClockRUN and BOARD_RdcInit functions related to AUDIO changes, as shown in the attached and . 4. Kernel dmesg crash log: The system freezes during boot into the kernel, as shown in the following log: [ 2.992289] i2c i2c-1: IMX I2C adapter registered [ 2.997631] SError Interrupt on CPU2, code 0xbf000002 -- SError [ 2.997634] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56 [ 2.997636] Hardware name: EMB-3512-V11-M7 (DT) [ 2.997638] Workqueue: events deferred_probe_work_func [ 2.997642] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--) [ 2.997644] pc : i2c_imx_probe+0x31c/0x8fc [ 2.997645] lr : i2c_imx_probe+0x2b0/0x8fc [ 2.997647] sp : ffff8000126a3af0 [ 2.997648] x29: ffff8000126a3af0 x28: ffff80001135c3f0 [ 2.997654] x27: ffff0000c50aa880 x26: 0000000000000023 [ 2.997660] x25: ffff0000c50aaca0 x24: ffff0000c50aa8f0 [ 2.997666] x23: ffff800011d7c090 x22: ffff0000c4410e40 [ 2.997672] x21: ffff80001135c428 x20: ffff0000c041d800 [ 2.997677] x19: ffff0000c041d810 x18: 0000000000000020 [ 2.997683] x17: 0000000000000000 x16: 0000000000000000 [ 2.997689] x15: ffff0000c44112b8 x14: 0000000000000000 [ 2.997695] x13: ffff0000c4410e40 x12: ffff8000126a3a70 [ 2.997700] x11: aaaaaaaaaaaaaaab x10: 0000000000000060 [ 2.997706] x9 : ffff800011b993b4 x8 : ffff800011b99000 [ 2.997712] x7 : 00007dfed2122a00 x6 : 000000000007a120 [ 2.997718] x5 : 0000000000b71aff x4 : 0000000000000002 [ 2.997723] x3 : 0000000000000002 x2 : 0000000000000000 [ 2.997729] x1 : ffff0000ff86ea08 x0 : ffff800013c8000c [ 2.997736] Kernel panic - not syncing: Asynchronous SError Interrupt [ 2.997741] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56 [ 2.997742] Hardware name: EMB-3512-V11-M7 (DT) [ 2.997744] Workqueue: events deferred_probe_work_func [ 2.997747] Call trace: [ 2.997748] dump_backtrace+0x0/0x1a0 [ 2.997750] show_stack+0x18/0x70 [ 2.997751] dump_stack+0xd0/0x12c [ 2.997752] panic+0x16c/0x334 [ 2.997754] nmi_panic+0x8c/0x90 [ 2.997755] arm64_serror_panic+0x78/0x84 [ 2.997757] do_serror+0x64/0x6c [ 2.997758] el1_error+0x90/0x110 [ 2.997760] i2c_imx_probe+0x31c/0x8fc [ 2.997762] platform_drv_probe+0x54/0xb0 [ 2.997763] really_probe+0xec/0x4d0 [ 2.997765] driver_probe_device+0x58/0xc0 [ 2.997766] __device_attach_driver+0xa8/0x10c [ 2.997768] bus_for_each_drv+0x78/0xd0 [ 2.997769] __device_attach+0xd8/0x180 [ 2.997771] device_initial_probe+0x14/0x20 [ 2.997773] bus_probe_device+0x9c/0xa4 [ 2.997774] deferred_probe_work_func+0x80/0xc0 [ 2.997776] process_one_work+0x1cc/0x350 [ 2.997777] worker_thread+0x2bc/0x46c [ 2.997779] kthread+0x154/0x160 [ 2.997780] ret_from_fork+0x10/0x30 [ 2.998109] SMP: stopping secondary CPUs [ 2.998111] Kernel Offset: disabled [ 2.998113] CPU features: 0x0240002,2000200c [ 2.998114] Memory Limit: none Please take a look at the problem and see if there are any relevant documents or modifications that can resolve it. Looking forward to your suggestions and replies! Thank you! 回复: i.MX8MP: SError & Page Fault when running M7 with SAI3 audio enabled Resolved; the audio configuration on the M7 side needs to be completely disabled.
記事全体を表示