Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
需要澄清 S32K312 的 PWM 引脚映射方法 嗨,团队、 在使用 S32K312 100 引脚 MCU 进行电机控制开发时,我们考虑了以下两种 PWM 输出映射方法。 方法-1 使用 eMIOS 通道和基于 LCU 的输出: PTA0 - PWMU_HS - eMIOS_0_CH[17]_Y - LCU0_OUT4 PTA1 - PWMU_LS - eMIOS_0_CH[9]_H - LCU0_OUT5 PTA2 - PWMV_HS - eMIOS_1_CH[19]_Y - LCU0_OUT3 PTA3 - PWMV_LS - eMIOS_1_CH[20]_Y - LCU0_OUT2 PTD2 - PWMW_HS - eMIOS_1_CH[21]_Y - LCU0_OUT1 PTD3 - PWMW_LS - eMIOS_1_CH[22]_X - LCU0_OUT0 方法 2 使用另一种 PWM 映射选项: PTB16 - PWMU_HS - eMIOS_0_CH[4]_G PTB13 - PWMU_LS - eMIOS_0_CH[1]_G - LCU0_OUT3 PTB17 - PWMV_HS - eMIOS_0_CH[5]_G PTB14 - PWMV_LS - eMIOS_0_CH[2]_G - LCU0_OUT7 PTB1 - PWMW_HS - eMIOS_0_CH[7]_G PTB0 - PWMW_LS - eMIOS_0_CH[3]_G - LCU1_OUT5 我们需要恩智浦方面进一步明确应选择哪种 PWM 映射方法,以及每种方法的实际效果或局限性。 请就以下几点提出建议: 建议在电机控制应用中采用哪种方法? 每种方法的优缺点是什么? 是否有任何与同步、死区时间插入、ADC 触发信号、故障处理或 LCU/TRGMUX 使用相关的注意事项? 在最终确定设计方案之前,我们是否需要考虑软件或硬件方面的限制? 请根据您的经验和参考设计分享您的建议。 关于 希瓦 Re: Clarification Required on PWM Pin Mapping Approach for S32K312 嗨,@VaneB、 对于 S32K312 100 引脚 MCU,我们考虑采用以下 PWM 引脚映射选项: 引脚网络名称 相位侧 eMIOS 通道 LCU 输出 PTA0 PWMU_HS - U 高压侧 eMIOS_1_CH[6]_H LCU0_OUT6 PTA1 PWMU_LS - U 低压侧 eMIOS_1_CH[15]_H LCU0_OUT11 PTA2 PWMV_HS - V 高压侧 eMIOS_1_CH[19]_Y LCU0_OUT3 PTA3 PWMV_LS - V 低压侧 eMIOS_1_CH[20]_Y LCU0_OUT2 PTD2 PWMW_HS - W 高压侧 eMIOS_1_CH[21]_Y LCU0_OUT1 PTD3 PWMW_LS - W 低压侧 eMIOS_1_CH[22]_X LCU0_OUT0 在这种方法中,所有六个 PWM 输出都通过同一个 eMIOS_1 实例进行映射。我们相信,这可能有利于同步和电机控制 PWM 的生成。 请确认这种理解是否正确。 另外,请说明 eMIOS 通道类型 H、Y 和 X 在此配置中的含义和影响。我们想了解这些通道类型是否会对 PWM 生成、同步、死区时间控制、ADC 触发或 LCU TRGMUX 的使用产生重大影响。 请审查并指导我们该 PWM 引脚映射是否适合我们的电机控制应用。 关于 希瓦 Re: Clarification Required on PWM Pin Mapping Approach for S32K312 你好@SHIVAKUMAR55 方法 2 将所有 PWM 通道保留在单个 eMIOS 实例中,这样就可以共享时基,从而更容易实现干净的相位对齐和更简单的整体定时。 另一方面,方法 1 采用类似于 S32K344 三相无传感器 PMSM 电机控制参考设计中使用的 emiOS → TRGMUX → LCU 方法,将信道分布在多个 emiOS 实例上,并通过 LCU 进行路由。如果您需要更大的灵活性,例如高级输出调节、死区时间控制或稍后添加故障处理功能,这种设置会非常有用。 不过,由于方法 1 使用了多个 eMIOS 实例,因此配置工作会更多一些,同步性也会更差一些。实际上,一个好的方法是从方法 2 开始,因为它简单且定时行为可靠,只有在以后的设计需要更高级的控制或功能安全功能时,才转向基于 LCU 的解决方案,例如方法 1。 如需更多指导,建议参阅包含 S32K344 应用笔记和相关软件的 3 相无传感器 PMSM 电机控制套件: S32K344 无刷直流和永磁同步电机控制开发套件(MCSPTE1AK344) BR、VaneB Re: Clarification Required on PWM Pin Mapping Approach for S32K312 你好@SHIVAKUMAR55 是的,你的理解是正确的。 关于EMIOS信道类型,如S32K3xx参考手册修订版12的表403中所述,每种支持的模式都取决于特定的信道类型。并非所有模式都适用于每种通道类型,因此必须根据所需的功能仔细选择合适的通道类型。
記事全体を表示
MCXN947: how assign CMC0 to secure privileged mode The RM indicates it should be set to Secure and Privileged and that I can use the AHBSC register to do this. The SRM says the AHBSC register does not affect the privilege status of the CMC0 register So how do I examine/ change the security level if this register? MCXN Re: MCXN947: how assign CMC0 to secure privileged mode Hi @ClarkS  There is a training session on how to configure TrustZone. Please refer to it here: TrustZone configuration training Learn how to create a secure/nonsecure application and debug on a secure Cortex M33 NXP device.   Thank you.   BR Alice Re: MCXN947: how assign CMC0 to secure privileged mode Thank you for this, Alice. I didn’t know of this article. I’ll study it.  Re: MCXN947: how assign CMC0 to secure privileged mode Turns out this was just a collection of slides from an old presentation. I did not see any reference to the CMC peripheral.  The slides did remind me to check the Config Tools app so I downloaded the most recent version. Inspection of the Tee tool did not find the CMC0 register at all.  So how do I determine the security level of  this peripheral and especially the SRS and SSRS registers.  Also the RM should probably be updated since the note in it to use the AHBSC register to configure its permissions appears to be incorrect. Re: MCXN947: how assign CMC0 to secure privileged mode Hello @ClarkS  There is some confusion in the documentation. I have escalated it to  internall team and will share any updates with you. Thank you.   BR Alice Re: MCXN947: how assign CMC0 to secure privileged mode Thank you, Alice. Looks like it defaults to SECURE / PRIVILEGED like I hoped it was. I appreciate getting the SRM updated! Re: MCXN947: how assign CMC0 to secure privileged mode Hi @ClarkS  Thanks for your patience.  CMC access permission is controlled by AHBSC AIPS_BRIDGE_GROUP0_MEM_RULE1[1:0]. This will be fixed in the next version of RM. Thank you. BR Alice Thank you. 
記事全体を表示
emac_mii_rmii_tx クロックに関する質問 スクリーンショットはlwip_baremetal_s32k344.mexからのものですが、emac_mii_rmii_txはスイッチMII_TX_CLKからのものですか? Re: emac_mii_rmii_tx clock question こんにちは、 lwip_baremetal_s32k344 の例では、xMII インターフェースを RMII モードに設定し、emac_mii_rmii_tx が入力として使用され、50MHz の基準クロックを期待するようにします (そのため、/2 分周器があります)。 SJA1110のようなスイッチでは、RMII REF_CLK機能はMIIx_RX_CLKまたはMIIx_TX_CLKピンで利用可能であり、柔軟性を高めるためにソフトウェアで選択できます。 BR、ペトル
記事全体を表示
RT1180 evkmimxrt1180_multicore_trigger_cm33 デモで cm7 を起動できません # デバッグ目的 CM7コアを起動して実行するための、汎用的なCM33コアプロジェクトを作成したい。 # 参考資料 NXP SDK 26.03 の evkmimxrt1180_multicore_trigger_cm33 # デバッグ手順 1. evkmimxrt1180_multicore_trigger_cm33プロジェクトをコンパイルします。 2. evkmimxrt1180_hello_world_cm7プロジェクトをコンパイルします。 3.ボードをISPモードに切り替え、MCUXpresso Secure Provisioning Toolを開き、RT1180開発ボードを選択して、evkmimxrt1180_multicore_trigger_cm33.axfをロードします。 ethan_dang1_0-1779176778254.png 4. evkmimxrt1180_hello_world_cm7.axf を追加します。 ethan_dang1_1-1779176812168.png 5. 「イメージの作成」ボタンをクリックして、結合されたイメージファイルを生成します。 ethan_dang1_2-1779176829449.png 6. 「画像を書き込む」ボタンをクリックします。 ethan_dang1_3-1779176842477.png 7.ボードを通常モードに切り替えてから電源を入れます。CM33コアの出力は正常ですが、CM7コアの出力は空になっていることがわかります。 ethan_dang1_4-1779176861995.png Re: RT1180 evkmimxrt1180_multicore_trigger_cm33 demo can't kickoff cm7 こんにちは、@ethan_dang1 さん。 NXP MIMXRTシリーズにご関心をお寄せいただきありがとうございます! このリンク先の指示に従っていますか? https://mcuxpresso.nxp.com/mcuxsdk/latest/html/boards/RT/evkmimxrt1180/gettingStarted/topics/use_SPT_tool_and_multicore_trigger_image.html このガイドで述べたように、「CM7 XIP イメージは外部 FLASH から実行され、multicore_trigger CM33 イメージは内部 RAM から実行される」場合は eFuse の変更は不要ですが、もう 1 つの場合は必要です。 しかし、あなたが提供してくれたスクリーンショットを見ると、CM33はTCMから実行されておらず、CM7もフラッシュメモリから実行されていないようです。 よろしくお願いします、 ギャビン
記事全体を表示
FRDM-MCXN947: Ee(42) tflm_modelrunnerのフラッシュ後、コアに接続できませんでした tflm_modelrunner SDKのサンプル(FreeRTOS + lwIP、USE_RTOS定義済み)をフラッシュした後、私のFRDM-MCXN947はSWDに応答しなくなりました。LinkServer v25.6とMCU-Link V3.128はEe(42)を報告します。一括消去を含むすべての操作において、コアへの接続に失敗しました。MCU-Linkプローブはデバイスマネージャーで正しく検出されています。SW3+RESETを押すと、WindowsはUSBの列挙を検出しますが、ドライバはインストールされず、blhostはデバイスが見つからないと報告します。 基板を復元するにはどうすればよいですか? 追記:Linuxではled_blinkyのサンプルをダウンロードできましたが、Windows 10では問題が解決しません。 また、どちらのオペレーティングシステムでも、通常は次のような警告が表示されます。 「プロジェクトはデバイスMCXN947用に構成されていますが、選択されたプローブはデバイスMCXN947VDFTに接続されていると報告しています。」本当に続けますか? 初めてプログラムをダウンロードしようとしたとき(これが関係あるかどうかはわかりません)。 Re: FRDM-MCXN947: Ee(42) Could not connect to core after flashing tflm_modelrunner 更新情報 - 解決済み: WindowsのデバイスマネージャーからMCU-Linkデバイスのエントリをアンインストールし、再接続時にWindowsがそれらを再列挙できるようにすることで、問題は解決しました。 具体的には、ユニバーサルシリアルバスデバイスの下にある「MCU-LINK FRDM-MCXN947 CMSIS-DAP」と、ポート(COMとLPT)の下にある対応するMCU-Link VComポートの2つのエントリが削除されました。USBケーブルを再接続すると、Windowsは両方のドライバを自動的に再インストールし、LinkServerはプローブを正しく開くことができました。 根本原因は、WindowsにおけるUSBデバイスの状態の破損にあるようで、これはおそらくtflm_modelrunnerファームウェア(FreeRTOS + lwIP)を使用した以前のセッション中に発生したものと思われます。プローブはシステムから認識され、正しく列挙されましたが、redlinkserv.exe によってそのハンドルを開くことができませんでした。そのため、一括消去、フラッシュ、gdbserver を含むすべての操作で Ee(42) エラーが発生していました。IDEを再インストールし、redlinkserv.exeを置き換えます。USBレジストリエントリを削除しても問題は解決しなかった。デバイスマネージャーからデバイスを再登録することで、問題が解決しました。
記事全体を表示
Arm用S32DSでは、スローアクティベーションを取得できません(FNPエラー)。 こんにちは、Ubuntu 25.10 上で S32DS for Arm をインストールする際に問題が発生しています。 インストール中にオンライン/オフラインの有効化をクリックしても、FNPエラー2が発生します。 misisnikk_0-1778848240687.png ./S32DS_ARM_Linux_v2.2.bin としてインストールしています フォーラムで紹介されていたlicfix.zipの手順に従ってみましたが、うまくいきませんでした。 BR ミハル Re: S32DS for Arm, not possible to get throw activation (FNP error) こんにちは、ミハルさん。 返信が遅くなり申し訳ありません。お客様のアカウントを確認したところ、手動アップロードでS32DSを有効化できたようですが、よろしいでしょうか? Re: S32DS for Arm, not possible to get throw activation (FNP error) こんにちは、ジリさん。 プロジェクトを開始する必要があったため、MCU の部分については Windows に移行し、そこでインストール/アクティベーションを行うことができました。 それから、デバッグのためだけにUbuntu上でVS Codeを使い始めたのですが、問題なく動作しています。 いずれにしても、Ubuntu 16.4 にインストール/アクティベートすることはできませんでした。Ubuntu 24.4 の Docker 環境でもインストールを試みましたが、アクティベーションしようとするとインストールがフリーズしてしまいます。エラーは表示されません。
記事全体を表示
带有 GDB 客户端 9.2 包的 S32 设计工作室 3.6 我想在 S32 设计工作室 3.6.6 中安装适用于 ARM 嵌入式处理器的 " GDB 客户端 9.2 版本 1701 "。我无法将这个包离线 /explicit 包含到 IDE 中。版本 3.6.6目前使用的是 GDB 客户端 15.1。这可能吗? Re: S32 design studio 3.6 with GDB client 9.2 package 你好@sushil_zero 最简单的方法是安装 S32 Design Studio for S32 Platform v3.6.3,其中已包含所需的工具链版本。 安装完成后,您可以将现有的 S32 Design Studio v3.6.3 升级到 v3.6.6,详细步骤请参阅 S32 Design Studio 3.6.6 的第 4.2 节。在下载 IDE 的同一链接中提供了 RFP 安装指南。 BR、VaneB Re: S32 design studio 3.6 with GDB client 9.2 package 您好, 如上述答复所述。 我尝试安装 3.6.3 版和 3.6.1,但它们的 GDB 版本都是 15,所以我无法让 gdb 10.2 与 gcc 10.2 兼容。我可以安装 3.5.X 并升级到 3.6.6 吗?能行吗? Re: S32 design studio 3.6 with GDB client 9.2 package 你能给我一个适用于 S32 设计工作室 3.6.6 的恩智浦 GDB 9.2 软件包的链接吗 Re: S32 design studio 3.6 with GDB client 9.2 package 你好@sushil_zero 你可以尝试从以下链接下载独立编译器:适用于 S32 设计工作室的 S32 编译器。 下载后,将软件包解压缩到以下目录:C:\NXP\S32DS.3.6.6\ S32DS\ build_tools\ gcc_v10.2 解压缩后,S32DS 应自动检测版本工具。如果没有检测到,仍可通过项目属性手动选择。 Re: S32 design studio 3.6 with GDB client 9.2 package 你好@sushil_zero 必须说明的是,S32K3 RTD 版本为 2.0.x、3.0.0,并且最新的版本是使用 GCC 版本 10.2 开发的。使用不同版本的工具链可能会导致兼容性问题,而且无法保证功能的正确性。 如果您计划移植您的项目,建议在迁移到最新的 RTD 版本的同时,也迁移到最新的集成开发环境版本。但是,如果您希望保持相同的 RTD 版本,我们强烈建议您使用最初开发和测试该软件的 IDE 版本(S32DS 3.4),因为这有助于避免潜在的兼容性问题。 Re: S32 design studio 3.6 with GDB client 9.2 package 嗨,维恩: 您为我提供了 3.6.6 版 GCC 编译器的路径 但 3.6.7 版工具中已经提供了 gcc 10.2。我的问题是 GDb 被固定在 15.1 版,而我无法在 3.6.6 中获得 GDb 9.2 或 10.2 版。 另外,如果你能告诉我 3.6.7 支持的设备。使用默认 GNU 工具(gdb 15 和 gcc 11.4)和默认 RTD(3.0.0 或 4.0.0)是否支持 S32k344。 在 3.4 版本中,我使用 RTD 2.0.0 和 gcc 15 和 gcc 11.4。 我希望移植到 3.6 版本,因为我的 *&^%## 经理认为最新版本更好。 Re: S32 design studio 3.6 with GDB client 9.2 package 我坚信 3.4 是最好的解决方案,而且我已经有了一个可行的解决方案。但由于管理层要求我使用 5.0.0 版本,您能否确认我们是否可以使用 3.6.7 版本的编译器和调试器在 s32k344 上开发一个带有 RTD 5.0.0 的固件项目。有任何特定版本的 gcc 和 GDB 推荐吗?
記事全体を表示
在 S32K144 上进行闪存操作时出现异常 我引用了 S32K144 的 flash_partitioning 项目示例,并开发了自己的测试代码,其中启用了 SyStick 中断。 但是,我发现执行一些与闪存相关的API会触发DefaultISR异常,从而导致程序无法正常运行。如果我取消第 162 行并执行 INT_SYS_DisableIRQGlobal();,程序就能正常运行。   Flash 驱动程序 API不支持中断嵌套吗?调用这些应用程序接口时,有必要禁用全局中断吗?   此外,我还发现,每次生成代码时,无论我是否设置了 Flash 配置中的回调,它都会重置为空。   S32DS: 3.5 RTD: 4.0.1       Re: An exception occurs during Flash operation on S32K144 Hi@ZDDL "Flash 驱动程序 API 不支持中断嵌套吗?在调用这些应用程序接口时,是否有必要禁用全局中断? 外设中断可以中断当前的闪存擦除和编程命令,转而从中断向量表中检索相应的中断向量(中断 ISR 功能地址),并跳转执行中断 ISR 功能。 因此,如果 MCU 的中断向量表和/或外设中断 ISR 功能与当前闪存擦除或编程 API 操作的目标闪存块属于同一个 RWW 分区,则必须先禁用 CPU 全局中断,然后在执行闪存擦除或编程命令后再重新启用;否则将发生闪存RWW错误。 " 此外,我还发现每次生成代码时,Flash 配置中的回调都会重置为 NULL " 您使用的是 RTM 4.0.1、而不是 RTD 4.0.1(最新的 RTD 版本实际上是 RTD 3.0.X)。 这是一个已知错误,已在 RTM 4.0.3 中修复。 Re: An exception occurs during Flash operation on S32K144 有人能帮忙回答这个问题吗? Re: An exception occurs during Flash operation on S32K144 Hi@ZDDL RWW- 读取-写入(Read-While-Write)。在另一个内存资源中执行命令操作时,能同时从一个内存 资源中读取数据。 S32K144 只有一个闪存块>BLOCK0。 "SysTick_Handler()" ,编译后位于 BLOCK0。 因此,在这种情况下操作闪存时,可能会出现 RWW 错误。 您可以参考"CCIF_Handler" 并将"SysTick_Handler" 置于 SRAM 中。 Re: An exception occurs during Flash operation on S32K144 对不起,我的回复晚了。我不太了解 S32K144 的 RWW 分区。你有相关的文件可供参考吗? 我不确定您是否检查过我提供的 EE_Test 项目。我将中断向量表置于默认地址 0x00000000,然后程序擦除 pFlash 的最后一个扇区。S32K144 的整个 pFlash 区域是否位于同一个 RWW 分区中? ld.jpg   erase.jpg
記事全体を表示
WDOG 无法使用 8 位序列刷新 我无法使用 4 个 8 位写入来刷新 S32K144 的看门狗。16 位和 32 位都可以接受,但 8 位不行。我尝试了图片中的 8 位写入法,但都失败了: 如果 WDOG_CS[CMD32EN]为 0,刷新写入序列可以是 - 两个 16 位写入 (0xA602, 0xB480) 或四个 8 位写入 (0xA6, 0x02, 0xB4, 0x80);如果 WDOG_CS[CMD32EN]为 1,刷新写入序列可以是 - 一个 32 位写入 (0xB480_A602)。 到 CNT 寄存器。这两种方法都必须在 WDG 超时之前发生;否则, 监视程序会重置 MCU。 Re: WDOG cannot use 8-bit sequence refresh 启动刷新序列前,请禁用全局 中断。否则,如果中断发生在刷新 写入完成之前,则可能导致 刷新序列无效。序列结束后,恢复全局 中断控制状态。 中断检查提示 Re: WDOG cannot use 8-bit sequence refresh 我确认在喂狗之前和之后都中断了开关。在同样的情况下,只改变进料顺序和使用 16 位进料方法成功了,但 8 位进料方法失败了,调整 8 位进料顺序也不起作用。 Re: WDOG cannot use 8-bit sequence refresh 你好 @GXY, WDOG 支持 8 位刷新序列,但对时序要求非常严格。即使标准 C 代码生成 STRB 指令,该序列也可能由于在字节写入之间插入了额外的堆栈访问或地址重新加载而失败。使用紧凑的 GCC 内联汇编代码块有助于确保 8 位刷新操作能够可靠地执行。 static inline void WDOG_Refresh8_AsmInline(void) { __asm volatile( // "mrs r2, PRIMASK \n" // "cpsid i \n" // "dsb \n" "ldr r0, =0x40052004 \n" "movs r1, #0xA6 \n" "strb r1, [r0, #1] \n" "movs r1, #0x02 \n" "strb r1, [r0, #0] \n" "movs r1, #0xB4 \n" "strb r1, [r0, #1] \n" "movs r1, #0x80 \n" "strb r1, [r0, #0] \n" // "dsb \n" // "isb \n" // "msr PRIMASK, r2 \n" ); } 此致, 丹尼尔
記事全体を表示
FRDM-MX95 5 sai? FRDMで5つのSAIチャンネルすべてを有効にすることは可能でしょうか?あるいは、FRDM-MX95にはどのような制限があるのでしょうか?設定方法についても知りたいです。OSとしてはAndroid AutomotiveかYoctoを使う予定ですが、まだどちらにするか決めていません。 Android マルチメディア Re: FRDM-MX95 5 sai? つまり、完全な機能を利用するにはSAI3しか選択肢がないということでしょうか? デバイスツリーを表示して、各GPIOピンを好きなように変更できるGUIプログラムはありますか? TDMモードに設定して、**オーディオ**をアナログ・デバイセズのADSP-21594に送信し、他の機器からの**オーディオ**入力とメイン出力をADSP-21594で処理させることは可能でしょうか? sai3 tdmストリームからのオーディオ出力が何であるかご存知ですか?32/768ですか? Re: FRDM-MX95 5 sai? こんにちは、 @FlynHawaiian さん SAI1-5は以下のパッドに接続できます SAI1: I2C2_SCL / I2C2_SDA UART2_RXD SAI1_TXFS / SAI1_TXC / SAI1_TXD0 / SAI1_RXD0 SAI2: IMX95_PAD_ENET2_XXX/IMX95_PAD_XSPI1_XXX SAI3: GPIO_IO12 GPIO_IO16~GPIO_IO21 GPIO_IO26 SAI4: ENET2_TD[2:0] ENET2_RXC ENET2_RD[1:0] XSPI1_DATA[3:0] XSPI1_SCLK XSPI1_SS0_B SAI5: SD3_CLK / SD3_CMD / SD3_DATA[3:0] XSPI1_DATA[7:4] XSPI1_DQS XSPI1_SS1_B 次に、FRDMのデバイスツリー構成(arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts)を見てみましょう。 SAI モジュール 現在、完全に多重化することは可能ですか? 主な理由 SAI1 いいえ、部分的にだけです 一部のSAI1 PADは lpi2c2 で占有されており、 mqs1 SAI2 基本的にいいえ メインPADグループ ENET2_* はイーサネットとMDIOによって占有されています。 SAI3 はい、おすすめです 関連する GPIO_IO PADは現在のDTSでは使用されていません SAI4 いいえ、部分的にだけです メインPADグループ ENET2_* はイーサネットで占有されており、一部の XSPI1 のPADはGPIO機能でも占有されている。 SAI5 いいえ、部分的にだけです SD3_* usdhc3 / WiFi SDIO が使用されており、一部の XSPI1 PAD も使用されています。 よろしくお願いします、 志明
記事全体を表示
S32K314 的 LIN 主站模式下无法接收从站响应帧 基于S32K388 EVB学习LIN 例程,在附件的例程中Master Send Data,Slave Node 接收OK 学习Master Recive Slave node data,发现: 1、Slave Node 对Master Send PID已经响应,示波器看到Slave Node存在数据反馈 2、debug Code ,Master Node 发现Lpuart_Lin_Ip_GetStatus()函数返回值一直不是LPUART_LIN_IP_STATUS_RX_OK 3、debug Code,Lin的回调函数LinMasterCallback()一直未进入 不知道该份例程哪些支付配置不正确,请基于帮助 Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 Hi@Ryan_xjl 我检查了你的工程,但是我无法测试,因为你所使用的是LPUART0,S32K388EVB应该不支持该端口作为LIN。 你的配置我没有发现有什么问题,只有我说的,LPUART0在S32K388EVB上不是LIN口,没有LIN收发器。 Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 非常感谢你协助,当前可以收到Slave Node的响应帧并且数据解析正确 但是发现一个问题,如果Master 持续发送,坚持一段时间就无法收到Salve数据,Lpuart_Lin_Ip_GetStatus()返回值为LPUART_LIN_IP_STATUS_RX_NO_RESPONSE 持续发修改的Code部分为: Ryan_xjl_0-1778520957950.png Debug Code,发现Master发送一段时间状态为: Ryan_xjl_1-1778521094031.png Master restart之后又可以持续一段时间,不清楚是否有可以指导一下,如果需要修改后的例程,说一下 Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 Hi@Ryan_xjl 如果你的发送正常,你把下面这个地方修改为TX,那么是可以进入callback的,对应的事件应该为“LPUART_LIN_IP_TX_COMPLETED” Senlent_0-1778494558803.png 附件是基于S32K344EVB修改的,我可以进入callback Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 你好,我当前板子的确使用的是UART0作为LIN,并且LIN Master Send没有问题,说明硬件是OK,如下图 Ryan_xjl_0-1778493794752.png 请问,你是否可以分享一份例程,支持LIN Master 接收的程序(支持Callback),例程可以基于RTD就可以 我自己修改学习也可以,再次感谢 Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 Hi@Ryan_xjl 这个你需要用示波器或者逻辑分析仪去看一下,master发送的数据是否正常,slave端是否进行了响应。 感觉像是slave端没有做出响应。 Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 你好, 发现一个现象不清楚是否与Slave设备是否有关系,我有2款LIN(Slave)设备和1款LIN模拟器 当LIN Master硬件和对应固件不变(前面的例程),LIN模拟器和其中1款LIN Slave是正常的,Master接收数据也正常,但是另外1款LIN Slave设备出现上面现象(运行一段时间就收不到LIN Slave反馈数据),示波器测量发现Master没有发送数据(帧头) Re: S32K314 的 LIN 主站模式下无法接收从站响应帧 Hi@Ryan_xjl 只从你的现象描述来看可能和slave有关, 但是凭这些信息无法定位到你的这个现象的具体原因,这个还是需要你自己使用调试器和逻辑分析仪工具捕获到问题发生时的状态来定位问题的原因。
記事全体を表示
基于 S32K358 的 SPD BIST 您好: 使用 S32_SAF (SPD) v1.0.6 中的 Bist_Run () API 在 S32K358 上执行 STCU2 在线 BIST (LBIST + M BIST),通过软件触发器进行开机自检。 平台 MCU: NXPS32K358, Cortex-M7 RTD: 6.0.0 (autosar 4.7) SPD: S32_SAF v1.0.6、版本 S32_SAF_1_0_6_20250818 系统时钟:FIRC 48MHz → PLL 160MHz PMIC: FS27(调试模式) runsw=0x301 (启用 LBSWPLLEN + MBSWPLLEN):LOCKESW 在 STCU 启动后立即触发。寄存器转储显示 LB_END0=0x0, MB_END0=0x0 - 没有执行一个测试通道。这表明 PLL 锁定错误发生在 STCU 初始化期间,而非 BIST 执行期间。 ERR_STAT=0x180000 表示 LOCKESW& WDTOSW 失败 runsw=0x1 (无 PLL 监控):无论是否初始化 PLL,微控制器都会永久挂起并且永远不会重置。这表明 STCU 硬件需要 PLL 时钟才能运行,但 0x1 并未激活 PLL 维护机制。 这就产生了 矛盾:设置 PLL 启用位会导致立即 LOCKESW;不设置会导致 MCU 挂起。 我的问题是,S32K358 上的 STCU2 软件触发器 (RUNSW) 的正确配置和顺序是什么?或者有什么特殊设置? 附件是我的主代码,请帮助我们检查问题所在,谢谢。 Re: BIST of SPD based on S32K358 你好,我是@danielmartynek: 我成功测试了 MCU BIST,您能帮我检查一下是否正确吗?我不知道为什么当我使用 Mcu_GetResetReason 函数时,系统会卡在 Bist_Run 函数中,所以我现在直接读取地址就可以了。以下是我的 bist 功能: void BSW_BistHandler(void) { uint32_t stcu_cfg = *(volatile uint32_t *)0x403A000CUL; if (stcu_cfg == 0U) { if ((*(volatile uint32_t *)0xE000EDF0UL& 0x1UL) == 0U) { Bist_Run(BIST_SAFETYBOOT_CFG); for(;;) {} else { Printf( Debugger attached. } else { Printf("Debugger attached, BIST skipped\r\n"); } } else { Bist_StatusType status = Bist_GetExecStatus(BIST_SAFETYBOOT_CFG); uint32_t errStat = Bist_GetRawErrorStatus(); /* 讀取 stcu 暫存器:LBIST/MBIST 完成狀態與成功狀態 */ uint32_t lb_end = *(volatile uint32_t *)(0x403A005CUL); /* LB_END0 */ uint32_t lb_stat = *(volatile uint32_t *)(0x403A004CUL);/* LB_STAT0 (1=pass) */ uint32_t mb_end = *(volatile uint32_t *)(0x403A014CUL); /* MB_END0 */ uint32_t mb_stat = *(volatile uint32_t *)(0x403A010CUL); /* MB_STAT0 (1=pass) */ Printf("=== MCU BIST Result ===\r\n"); Printf(" Status :%d (%s)\r\n", status, (status == BIST_OK) ?"OK": (status == BIST_FAILED) ?"FAILED": (status == BIST_ERROR) ?"ERROR": (status == BIST_NORUN) ?"NORUN": (status == BIST_INTEGRITY_FAIL) ?"INTEGRITY_FAIL": (status == BIST_BUSY) ?"BUSY":"UNKNOWN"); Printf(" ERR_STAT : 0x%08X\r\n", errStat); Printf(" LBIST END : 0x%X STAT:0x%X (expect END=0x1, STAT=0x1)\r\n", lb_end, lb_stat); Printf(" MBIST END : 0x%04X STAT: 0x%04X (expect END=0x1FFE, STAT=0x1FFE)\r\n", mb_end, mb_stat); } 结果是这样的 BillWen_0-1778228397922.png 如果我遗漏了什么,请告诉我,谢谢。 谢谢! BR, BillWen Re: BIST of SPD based on S32K358 嗨,丹尼尔, ,我遵循了第 3.4.1 节中的先决条件: -Bist_Run() 在 Mcu_DistributePllClock() 之后和 Mcu_SetMode() 之前调用 - 在 BIST 之前不进行外设初始化 - PLL 处于锁定和分布状态 (160MHz) - 未连接调试器 (DHCSR C_DEBUGEN = 0) BIST reset 后的 STCU2 寄存器转储: - RUNSW = 0x00000300 (BIST 由 0x301 触发) - CFG = 0x1021E000 (PTR=0x81, LB_DELAY=0xF, WRP=0) - WDG = 0x000061A7 - ERR_STAT = 0x00180000 (LOCKESW + WDTOSW) - LB_END0 = 0x00000000 (未完成 LBIST 频道) - MB_END0 = 0x00000000 (未完成 MBIST 频道) STCU 配置写得正确(CFG、WDG 值匹配), 但是 LOCKESW 会在锁定阶段立即生效,根本不执行任何测试信道。 这种情况一直发生在 S32K358 上。 在 S32K358 的 SW 触发 BIST 期间,什么会导致 LOCKESW? 在 STCU 锁定测试的 SRAM 块之前,是否需要额外的时钟门控或 MC_ME 分区配置 ? 感谢 BR、BillWen Re: BIST of SPD based on S32K358 嗨,@BillWen、 PLL 是先决条件之一,必须启用。 danielmartynek_0-1778146612597.png 看起来你配置了系统时钟,然后立即执行电源模式过渡: Mcu_SetMode(McuModeSettingConf_0); 您能否尝试移除该调用,然后再次进行测试? BR,丹尼尔 Re: BIST of SPD based on S32K358 嗨,@BillWen、 它究竟卡在 Bist_Run() 的什么地方? Re: BIST of SPD based on S32K358 你好 ,我是@danielmartynek: 在上次的答复中, 我已经可以运行Bist_Run 函数并得到结果,我只是想让你确认 BIST 过程是否正确。 谢谢! BR, BillWen Re: BIST of SPD based on S32K358 嗨,@BillWen、 是的,这看起来是正确的。您获得了所有预期的 BIST 结果。 BR,丹尼尔
記事全体を表示
我想建一个 EIS 电池管理系统 我想建一个 电池管理系统。除了通过 NDA 获取集成电路和数据表,就没有其他办法了吗?这是出于个人研究目的。 我是一名学生,目前正在韩国忠南国立大学攻读硕士和博士学位。 我目前正在对电池管理系统硬件设计和固件进行全面研究,我想用恩智浦IC替换现有的集成电路并整合EIS功能。 我不确定该大学是否与恩智浦签订了保密协议,也不知道如何验证。由于我通常只从 DigiKey 购买产品,这是我第一次尝试获取此类信息,如果给您带来不便,我深表歉意。 #BMA7418 EIS BCC #BMA8420 EIS BCC #TAA3033 #FS26 PMIC 碰巧的是,每个 IC 的参考固件源代码也可用吗? 我在你们的资料中看到[白皮书]--EIS 迁出~电池系统后,与你们进行了交谈。 Re: I want to build an EIS BMS 亲爱的公园 如果您不确定贵校是否签署了 NDA,请在此处创建新的票据。我们的 NDA 代表将为您检查,如果尚未签署 NDA,而您希望签署,他/她将带您完成整个过程。 相关文件、硬件、软件等通常可在其产品页面上找到。请查看以下链接。 BMA7418 BMA7418 、 BMA8420 、 TAA3033 、 FS26 。 文件通常是保密的,在 "安全 "部分下,可在有效的保密协议下下载。 JozefKozon_0-1778139969975.png 有关软件,请向下滚动到每个链接中的软件部分。 JozefKozon_1-1778140030918.png 点击下载选项。它将带您进入软件驱动程序。 JozefKozon_2-1778140090744.png JozefKozon_3-1778140107516.png 致以最崇高的敬意 约瑟夫
記事全体を表示
i.MX93 ISP 支持 IMX378 4056x2160 RAW8 输入和缩放 您好, 我想通过 libcamera 在 i.MX93 上使用 IMX378 传感器。 预定的管道是 IMX378 输出:4056x2160 @ 25 fps RAW8 ISP 缩放/降采样至约 2500x2000,以便进一步处理 启用 ISP 去层 我发现 I.MX93 支持高达每秒 200 Mpixel 的信号源和高达 2000 的水平分辨率。如果输入值为 4056x2160,是否有可能重新缩放为 2500x2000(可能需要旋转为 2000x2500,以适应水平限制)? Re: i.MX93 ISP support for IMX378 4056x2160 RAW8 input and scaling 你好@jr001, 不行。 i.MX93 最多只能处理 2000 像素宽的摄像头输入,而你的传感器输出的是 4056 像素宽,这就太大了。 另外,您的数据传输速率有点过高,所以也超过了上限。 ISP 缩放发生在芯片接受图像之后。因此,你不能先输入一个大图像,然后再把它缩小,它到达时必须已经足够小了。 致以最崇高的敬意 查维拉
記事全体を表示
切実に答えを求めています:3つのコアを使用したS32K389HHT0MJGSTの全体的な消費電力評価に関する質問です。 公式のPETパッケージにはS32K389がS32K3に含まれていないため、S332K344モデルを使用しています。周辺機器はスクリーンショットに示されています。ただし、S32K389は3つのコアすべてを連続モードで動作させる必要があります。全体の消費電力を推定したいのですが、3.3V電源、105℃でS32K389のクロック速度は160MHzです。PETのS32K344の周辺機器アプリケーション選択を使用した場合、全体の消費電力はどのくらいになるでしょうか?あるいは、どのように計算すればよいでしょうか?開発ボードがないため、おおよその見積もりしかできません。専門家の方の助けが切実に必要です。 Re: 跪求答案:关于S32K389HHT0MJGST使用三核心整体功耗的评估问题 こんにちは 近年、PET測定装置のアップデートは比較的緩やかであったため、S32K3x8シリーズは公式サイトからダウンロードできなくなっています。実際、PET測定装置の主なデータソースはデータシートです。 S32K3データシートRev14の「6.7 供給電流」および「6.8 動作モード」のデータを直接参照することをお勧めします。 また、技術サポートのご依頼は、会社のメールアドレスで登録されたアカウントから送信していただくようお願いいたします。そうすることで、お客様の問題を優先的に対応できます。リソースに限りがあるため、一般的なメールアカウント(gmail.com、qq.comなど)からのメールには対応できません。ご理解のほどよろしくお願いいたします。 よろしくお願いします、 ロビン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - 最後の投稿から7週間はスレッドをフォローしますが、それ以降の返信は無視されます。 後日、関連する質問がある場合は、新しいスレッドを作成し、閉じられたスレッドを参照してください。 -------------------------------------------------------------------------------
記事全体を表示
FRDM-MCXA156 调试连接失败 - "Wire Ack 故障"/"无法连接到核心" 摘要 我正在使用 MCUXpresso IDE 和板载 M CU -Link(LinkServer)调试器使用恩智浦 FRDM-MCXA156 开发板 。 在尝试进入串行下载器 (ISP) 模式后,我无法擦除、闪存或调试目标 MCU。 调试器正确检测到板载探针,但无法连接到目标 MCU 内核。 板/软件信息 板:恩智浦 FRDM-MCXA156 开发板 MCU:MCXA156 IDE:MCUXpresso IDE 版本 25.6.136 调试器后台LinkServer RedlinkMulti 驱动程序 v25.6 探头:板载 MCU-Link 操作系统:Windows SDK 示例:hello_world 问题描述 最初,板工作正常。 我想让主板进入串行下载器模式(ISP 模式),所以我按照主板程序进行操作: 保持SW3(ISP) 按下并释放 SW1 (RESET) 版本 SW3 之后,我尝试再次使用 MCUXpresso 的调试器。 从那时起 调试失败 清除失败 Flash 故障 检测到板载 MCU-Link,但无法访问目标内核。 错误 1:导线检查故障 尝试连接时: 无法连接探头索引 1 的导线。 错误:导线检查故障 - 目标已连接? 无法连接探头索引 1 的导线。 错误:导线检查故障 - 目标已连接? 堆栈跟踪: 错误:导线检查故障 - 目标已连接? at com.nxp.mcuxpresso.core.debug.support.linkserver.redlink.client.RedlinkServerClient.checkServerReply(...) at com.nxp.mcuxpresso.core.debug.support.linkserver.redlink.client.RedlinkServerClient.wireConnect(...) ... 错误 2:擦除失败 执行擦除时 执行闪存操作 "擦除"(擦除闪存) 检查 MCU 信息... 扫描目标... 执行闪光动作... LinkServer 输出: LinkServer RedlinkMulti 驱动程序 v25.6 找到芯片 XML 文件 ...MCXA156.xml 连接测头 1 核心 0 Ee(42)。无法连接核心。 重试... 服务器正常,但无法连接 1 号核心 0 号探针 Ee(42)。无法连接核心。 连接失败:Ee(42).无法连接核心。 与芯片调试端口无连接 目标操作失败 无法执行操作! 命令失败,退出代码为 1 我的尝试 正常 RESET 已发布 ISP 按钮 按下 RESET 重试调试 结果:失败失败 电源循环 未拔插的 USB 重新连接的板 结果:失败失败 通过 MCUXpresso 擦除 使用的闪存工具 → 擦除 结果: 与芯片调试端口无连接 经过验证的探头探测 MCUXpresso 已正确检测到 MCU-Link。 因此,探头本身似乎是正常的。 问题 进入 ISP 模式后,MCXA156 能否保持 SWD 不可用的状态? 我的固件是否禁用了 SWD 引脚或锁定了调试访问? FRDM-MCXA156 的建议恢复路径是什么? 在RESET下连接? 通过 MCU Boot Utility 进行大规模擦除? 能否完全恢复 MCU-Link 固件? 如果没有正确退出,进入串行下载器模式是否会影响以后的 SWD 调试? 更多信息 板手册指出: SW3= ISP 按钮(目标引导程序入口) SW1 = RESET 我使用的是板载调试器,而不是外部探头。 请提供有关 MCXA156 调试锁与 ISP 交互作用的任何恢复程序或已知问题。 MCXA Re: FRDM-MCXA156 Debug Connection Failure — “Wire Ack Fault” / “Could not connect to core” Hello 能否与我们分享一下您的跳线配置? JP5:ISP_EN_SWD_ACT 短路 这将强制 MCU-Link 进入 ISP 模式,对 MCU-Link 内部闪存重新编程。 JP6:VCOM_DIS 打开 [VCOM 启用] JP7:SWD_DIS 打开 [SWD 启用] JP8:SWD_CLK 短路 [SWD 启用时钟] JP2:MCU_DIGITAL_POW 短路 [VDD_MCU 电源] 此信息来自 [FRDM-MCXA156 板用户手册] 第 1.6 章表 4 能否与我们分享所附探针在 MCUXpresso 中的显示方式? 您能否帮助我们尝试通过 JP5 进入 ISP 以强制 ISP 模式;然后尝试进行大规模擦除? 这是用于大规模擦除的 ISP 命令: 首先通过成功响应识别设备 >blhost -p COMxx,115200 -- get-property 1 然后,在成功响应后进行 Mass 擦除: >blhost -p COMxx,115200 -- flash-erase-all 在 ISP 路径中,您可以进入禁用调试或减少命令的 ROP 状态。 请参阅 MCXA156 参考手册第 20.2.5 章图 29 第 732 页。 以及第 20.3.2 章生命周期状态转换 最诚挚的问候,路易斯 Re: FRDM-MCXA156 Debug Connection Failure — “Wire Ack Fault” / “Could not connect to core” 你好,路易斯, 感谢您的详细指导。 解决方案奏效,问题已成功解决。 我通过 JP5 强制进入 ISP 模式,然后使用以下命令执行了大规模擦除: blhost -p COMxx,115200 -- get-property 1 blhost -p COMxx,115200 -- flash-erase-all 在大规模擦除成功完成后,探针恢复了正常工作。 再次感谢您的支持以及对 ISP 路径和生命周期状态的详细解释。 谨致问候,乌代
記事全体を表示
IMX8M Plus NPU - 分批 TFLite 推理显示每幅图像速度没有提升 你好,恩智浦、 我们使用 libvx_delegate.so 在 IMX8M Plus NPU 上运行量化(uint8)TFLite 细分模型 外部代表。该模型是基于 MobileNet 的 UNet,输入形状为 [batch, 256, 256, 3]。 为了测试更大的批次规模是否能提高吞吐量,我们为每种批次规模(1、2、4、8、16、32、64)创建了一个单独的.tflite 文件,每种批次规模在转换时都是固定的。然后,我们测量了 10 次试验的总推理时间和每次图像推理时间。 预期行为由于 NPU 能够摊销开销并更好地进行流水线执行,因此随着批次大小的增加, 每个图像的时间应该会减少。 观察到的行为 总推理时间与批次大小大致呈线性关系,在所有批次大小中,每个图像的推理时间都是相同的。批处理没有带来吞吐量方面的好处。 results.png 我们的问题 IMX8M Plus 上的 VX 委托/NPU 是否真正支持批次执行,还是无论批次大小都按顺序处理图像? 是否有最大限度提高吞吐量的推荐方法,例如是在不同的线程中使用多个解释器实例,还是使用不同的批处理 API? 是否需要启用任何 eIQ / TIM-VX 设置以实现真正的批处理并行性? 如有任何见解,不胜感激。谢谢。 Re: IMX8M Plus NPU — Batched TFLite inference shows no per-image speedup 你好,我是@gabriel_gosden、 感谢您联系恩智浦支持中心! 1) i.MX8M Plus NPU 不支持真正的批处理执行。即使 TFLite 模型以固定的批次尺寸进行转换,VX/TIM-VX 堆栈也会按顺序处理批次中的每个图像。这就是为什么总推理时间与批量大小呈线性关系,而每个图像的延迟时间保持不变的原因。 2) 建议的方法是使用一个批次的大小,并将重点放在主机端的流水线和并行性上。典型的策略包括在不同的线程中运行预处理、NPU 推理和后处理,在某些情况下使用多个 TFLite 解释器实例来重叠 CPU 的工作并减少空闲时间。任何吞吐量的提升都来自于更好的流水线利用率,而不是 NPU 的批处理并行性。 3) 没有 eIQ、VX 或 TIM-VX 设置能在 i.MX8M Plus 上实现真正的批处理并行性。这种限制是结构性的,而不是可配置的。您的测量结果表明,NPU 的使用是正确而有效的,批处理在这种硬件上根本无法带来吞吐量优势。 致以最崇高的敬意 查维拉
記事全体を表示
MPC5744P CPU 在某些条件下崩溃,但原因不明 Hello 我们正在使用 MPC5744P(MAPBGA257 封装,1N15P cut)实现汽车应用,该封装与 MC33908 SBC 集成在一起。编译器为 S32DS 2.1,-O1 优化。我们已经在 3 台不同的产品上重现了这一现象,因此我们希望这不是芯片故障。这就是迄今为止的工作流程: 到目前为止,应用程序开发工作进展顺利。在某些情况下,添加一定数量的代码会导致核心完全挂起。 -首先,在重现问题时会检查 SBC RESET 条件:重置线路未切换到低电平,这意味着 SBC 不会由于功能异常而诱发重置。因此,我们重点关注 MPC 核心。 - 应用程序已使用 TRACE32(劳特巴赫 Powerdebug Pro)进行了检测,一旦达到条件,就会出现 DEBUG PORT FAIL 条件。使用重置检测功能,我们能够获得跟踪信息。在函数返回值等于 1 的 UINT8_T 变量后,应用程序崩溃。这意味着将 1 分配给 R3,然后分配 SE_BLR。 - 除了跳转到 ISR 序幕的 IVOR4 外,0 至 32 的 IVOR 都正确地使用了分支到自身指令,因此不会出现 IVOR 陷阱。 - 在验证问题可以在同一地址重现后,会在该地址设置一个断点,以检查崩溃前的系统状态。系统在断点处停止。LR 寄存器正常,堆栈正常,一切正常。 - 然后,采取单一执行步骤重现崩溃,但没有成功。程序成功通过正常流程。 - 但是,如果在任何时候恢复程序流程(不再步进),应用程序会在几毫秒后崩溃(!!)。 - 再次检查跟踪转储,我们发现这是同一个函数,但返回值不同。在不同的会议中,它甚至可以是另一种不同的功能。 - 在函数中添加 UINT8_T 全局间谍变量后,崩溃发生的内存地址就会改变。 - 在应用程序中完全无关的地方修改大量代码就可以消除这种行为。 正如你所看到的,它非常不可靠,我们不知道该从哪里继续诊断这个问题。附加代码几乎没有任何用处,因为引发这个错误的条件非常特殊,而且正如你所看到的,故障点会随着未知因素的变化而变化。 PS: 我们的问题与此类似: https://community.nxp.com/t5/MPC5xxx/Lauterbach-reports-MPC5602D-is-in-state-running-reset-what-does/td-p/589249 只不过,我们可以追踪到执行失败点。顺便说一下,SWT 在启动时是禁用的。为什么 CPU 不会出现 IVORx 异常? Re: MPC5744P CPU crash under certain conditions, but unknown cause 我知道这个话题已有 4 年了... 但我似乎遇到了这个话题中描述的问题,但是使用的是 mpc5777C 设备。我们还在使用 MC33908 SBC。由于我们的 CPU RESET 问题,我们一直观察到外部复位线路未处于低电平状态,出现故障情况时,TRACE32 中的 " 调试端口出现故障 ",观察到导致故障的类似指令集(返回一个值给函数,然后返回 SE_BLR),参见 TRACE32 影响 RESET 等。相似之处非常惊人。看起来 CPU 刚刚停止处理。 有没有找到解决这个问题的办法? Re: MPC5744P CPU crash under certain conditions, but unknown cause 您好,别担心,我已经打开了一个因未活动而被勾选的支持。 我希望我们能尽快想出一个解决方案,因为该应用程序目前不可靠,除非在任何细微的软件更改之后进行了100%的代码覆盖率测试(就像添加一个1字节的全局调试变量一样小)。你会明白,这不是一个可以忍受的开发工作流程。 Re: MPC5744P CPU crash under certain conditions, but unknown cause 对于没有我的消息,我深表歉意。由于家庭原因,我目前不在办公室。是的,如果没有其他回复,请为此创建一个票单。感谢您的理解。 Re: MPC5744P CPU crash under certain conditions, but unknown cause 由于没有回复,我是否应该开支持单? Re: MPC5744P CPU crash under certain conditions, but unknown cause 更多信息。 我们手动禁用了 DMA 传输和中断,并通过手动设置条件合成了问题。 崩溃仍然会发生,因此我们可以放弃 DMA 和中断的影响。 此外,如果我们在冲突行(发生崩溃的地方)设置硬件断点,它就会断开,而步进是正常的。但是,如果我们设置一个软件断点,崩溃仍然会发生(不会中断)。 Re: MPC5744P CPU crash under certain conditions, but unknown cause 在进一步测试中,我发现在系统中添加一个单独的全局变量就可以消除这种崩溃行为。 目前我们还不能保证在其他情况下不会出现这个问题。 我真的很困惑这个问题,因为没有答案,我想这不是一个很常见的问题。 最主要的原因是,即使是劳特巴赫 Powerdebug Pro 系统也无法解决这个问题,无法提供 CPU 寄存器的任何一点信息,以确定引起事件的原因。 Re: MPC5744P CPU crash under certain conditions, but unknown cause Hello 对于这个问题,您还有其他建议吗? 谢谢 Re: MPC5744P CPU crash under certain conditions, but unknown cause 问题依然存在。 到目前为止 闪存时序已在 PFCR1 中根据数据手册值进行了调整。 MC_RGM DES 和 FES 寄存器已检出,未进行任何功能/破坏性 RESET。 我们已经能够为 100% 可重现故障创造条件。如果在崩溃前逐步执行指令(使用断点),则不会发生崩溃。但如果进入自由运行模式,系统就会崩溃,查看跟踪报告,崩溃发生在我们之前中断的那条指令中。 你有什么其他办法可以试试吗? 谢谢 Re: MPC5744P CPU crash under certain conditions, but unknown cause 感谢您的反馈, 你用示波器测量过RESET信号吗?MCU 被 RESET 了吗? RESET 信号是在引发此故障的可重现事件期间测量的。RESET 信号始终处于高电平,因此不会进行外部 RESET。 根据您的描述,您说调试器会影响行为,也就是说故障不会发生。另外,基本上你说的行为是不可预测但可重复的。 是的,基本上,如果你能准确闯入系统挂起的点,就能成功通过指令。但是,当离开步进模式并连续运行时,系统就会挂在这个点上。 此外,请记住,更改软件(添加变量、添加代码)可能会、也可能不会改变系统挂起的点。但是,一旦改变,这种挂起就可以 100% 重现。 我会首先检查时钟配置。在数据表第 3.16.3 节中您已经定义了闪存等待状态的规定数量。 检查 2.9.1 系统时钟频率限制 此外,还有几处勘误需要检查: ERR010639 ERR010640 ERR011073 https://www.nxp.com/docs/en/errata/MPC5744P_1N65H.pdf https://www.nxp.com/docs/en/errata/MPC5744P_1N15P.pdf 该系统已在不同条件下工作了数千小时,但从未出现过这种情况。某些软件版本会引发这种行为。时钟配置和闪存等待状态之间的关系是什么?只是问问,看看这些假设。 关于时钟问题,在已知情况下,开机很长时间后都会出现这个问题。您提到的错误似乎与开机有关,对吗? 最让我困惑的是,系统并没有挂起任何已知的异常处理程序。调试器检测到内核处于暂停/关闭/RESET状态,并且没有明显的症状:就在内核挂起之前,LR 正常,堆栈指针远远落后于堆栈大小。 我还根据 E200 分支检查程序软件检查了软件版本,没有问题。 经与同事核实,我们发现多年前在 MPC5744P QFP144 版本中也出现过这种情况。因此,不仅仅是这个 BGA257 1N15P 部件。 说真的,我不知道该怎么继续。 我会研究你们的建议,但任何额外的提示都将不胜感激!"。 PS:时钟模式入口代码,启动时执行: /* 启用所有模式 */ MC_ME.ME.R = 0x000005E2; /* 在每种运行模式下外设都处于开启状态 */ MC_ME.RUN_PC[0].R = 0x000000FE; /******************** Configure XOSC for DRUN **********************/ /* Enable EXT OSC First */ XOSC.CTL.B.OSCM = 0x1; /* Change OSC mode to LCP (Loop Controlled Pierce Mode) */ XOSC.CTL.B.EOCV = 0x80; /* Set End of Count Value for when to check stabilization.*/ /* 在 DRUN 模式下启用 XOSC 并选择作为 SYS_CLK */ MC_ME.D RUN_M C.R = 0x00130031;/* RE 进入 DRUM 模式,更新配置 */ MC_ME.MCTL.R = 0x30005AF0;/* 模式 & 密钥 */ MC_ME.MCTL.R = 0x3000A50F; /* 模式密钥 */ MC_ME.MCTL.R = 0x3000A50F; /* 模式密钥 */ MC_ME.MCTL.R = 0x3000A50F; /* 模式密钥 */ MC_ME.MC* 模式 & 键反转 */ while (MC_ME.GS.B.S_MTRANS == 1); /* 等待模式进入完成 */ while (MC_ME.GS.B.S_CURRENT_MODE! = 0x3); /* 检查是否已进入 DRUN 模式 */ while (! MC_ME.GS.B.S_XOSC); /* 等待时钟稳定 */ /******************** PLL0,PLL1 ****************/ /* 将 XOSC 路由到 PLL1 */ MC_CGM. AC4_SC.B.SELCTL = 1;/* 路由 XOSC PLL0 */ MC_CGM.AC3_SC.B.SELCTL = 1;/* 路由 XOSC PLL0 */ MC_CGM.AC3_SC.B.SELCTL = 1; /* 路由 XOSC PLL0 */ MC_CGM. AC3_SC.B.SELCCTL = 1; /* 为 160 MHz 配置 PLL0 分频器 fpll0_VCO = (fpll0_ref x PLL0DV [MFD] x 2) /PLL0DV [PREDIV] = 40MHz x 8 x 2/1 = 640 MHz fpll0_phi = fpll0_ref x PLL0DV [MFD]/(PLL0DV [PREDIV] x PLL0DV [RFDPHI]] = 40MHz x 8/(1 x 2) = 160 MHz fPLL0_PHI1 = fPLL0_ref x PLL0DV[MFD] / (PLL0DV[PREDIV] x PLL0DV[RFDPHI1]) = 40MHz x 8 / (1 x 4) 😎 = 40 MHz */ PLLDIG.PLL0DV.B.RFDPHI1 = 8; PLLDIG.PLL0DV.B.RFDPHI = 2; PLLDIG.PLL0DV.B.PREDIV = 1; PLLDIG.PLL0DV.B.MFD = 8; /* 为 200 MHz 配置 PLL1 分频器 fpll 1_vco = fpll1_ref x (PLL1DV [MFD] + PLL1FD [FRCDIV] /2^12) = 40MHz x 20 + 0 = 800 MHz fpll1_phi = fpl l1_ref * (PLL1DV [MFD] + PLL1FD [FRCDIV] /2^12)/(2 x PLL1DV [RFDDIV] /2^12)/(2 x [RFDDI] PHI]) = 40MHz x (20 + 0)/(2 x 2) = 200 MHz */ PLLDIG.PLL1DV.B.RFDPHI = 2;PLLDIG.PLL1DV.B.MFD = 20;/* 在 DRUN 模式下启用 PLL0/PLL1 并将 PLL1 设置为 SYS_C LK */ MC_M E.DRUN_MC.R = 0x001300F4; /********************************** ** 配置时钟分频器 ****************/ S_****************/ S_****************/ S_****************/ S****************/ S****************/ IUL2.MSCR [22] .R = 0x22800001; /* 配置--> CLK_OUT (B6) */ //MC_CGM.AC6_SC.B.SELCTL = 0; /* 源 AC6 是内部 RCOSC */ //MC_CGM.AC6_SC.B.SELCTL = 2; /* 源 AC6 是 PLL0 PHI */ MC_CGM.AC6_SC.B.SELCTL = 1;/* 来源 AC6 是 XOSC */ MC_CGM.AC6_SC.B.SELCTL = 4;/* 来源 AC6 是 PLL1 PHI--> */ MC_CGM.AC6_DC0.R = 0x80090000;/* 辅助时钟选择 6 分频器 0 — > div 乘以 10 (CLK_OUT)--> */ MC_CGM.AC0_ SC.B.SELCTL = 2;/* 源 AC0 是 PLL0 PHI */ MC_CGM.AC0_DC0.R = 0x80000000;/* 源 AC0 是 PLL0 PHI */ MC_CGM.AC0_DC0.R = 0x80000000;/* 源 AC0 是 PLL0 PHI */ MC_CGM.AC0_DC 0.R = 0x8* 辅助时钟选择 0 分频器 0 div 乘 1 (MOTC_CLK) */ MC_CGM.AC0_DC1.R = 0x80070000; /* 辅助时钟选择 0 分频器 1 div 乘以 8 (SWG_CLK) */ MC_CGM.AC0_DC2.R = 0x80010000; /* 辅助时钟选择 0 分频器 2----> > div by 2 (ADC_CLK) */ MC_CGM.AC1_DC0.R = 0x80010000; /* 辅助时钟选择 1 分频器 0--> — > div 乘 4 (FRAY_PLL_CLK) */ MC_CGM.AC1_DC1.R = 0x80030000; /* 辅助时钟选择 1 分频器 1--> div 乘以 4 (SENT_CLK) */ MC_CGM.AC2_DC0.R = 0x80030000; /* 辅助时钟选择 2 分频器 0--> div 乘以 4 (CAN_PLL_CLK) */ MC_CGM.SC_DC 0.R = 0x80030000; //80070000 div 乘以 8,25mhz /* 80030000 系统时钟选择分频器 0--> div 乘以 4 (pbridgex_clk) k)-> DSPI 时钟 = 50MHz,PIT 时钟 = 50 MHz */ /******************** 启动内核 **********************/ /* 在 RUN3:0、DRUN、SAFE、TEST 模式下运行的主内核和校验器内核 */ MC_ME.CCTL0.R = 0x00FE; */ PRAMC.PRCR1.B.FT_DIS = 1; /******************** 执行模式更改 **********************/ /* 模式更改后重新进入 DRUN 模式,启动内核,时钟树& PLL1 */ MC_ME.MCTL.R = 0x30005AF0; /* 模式 键 */ MC_ME.MCTL.R = 0x3000A50F; /* 模式 键反转。MCTL.R = 0x30005AF0; /* 模式& Key */ MC_ME.MCTL.R = 0x3000A50F; /* 模式& Key inverted */ while(MC_ME.GS.B.S_MTRANS == 1); /* 等待模式输入完成 */ while(MC_ME.GS.B.S_CURRENT_MODE != 0x3); /* 检查 DRUN 模式是否进入 */ PS 2: PFCR1 寄存器的值是否会影响这一挂起问题?挂起前,软件未执行任何 FLASH 写入操作。 Re: MPC5744P CPU crash under certain conditions, but unknown cause 你用示波器测量过RESET信号吗?MCU 被 RESET 了吗? 根据您的描述,您说调试器会影响行为,也就是说故障不会发生。另外,基本上你说的行为是不可预测但可重复的。 我会首先检查时钟配置。在数据表第 3.16.3 节中您已经定义了闪存等待状态的规定数量。 检查 2.9.1 系统时钟频率限制 此外,还有几处勘误需要检查: ERR010639 ERR010640 ERR011073 https://www.nxp.com/docs/en/errata/MPC5744P_1N65H.pdf https://www.nxp.com/docs/en/errata/MPC5744P_1N15P.pdf
記事全体を表示
IPTV 最近いくつかのIPTVサービスを試してみたところ、チャネル数も豊富でストリーミングもスムーズで、かなり安定したサービスを見つけました。 興味のある方は、ぜひチェックしてみてください: https://strimiotv.com/ 他の人が何を使っているのかも知りたいです 👍 オーディオ(PDM | I2S | SAI)
記事全体を表示
How to: MSDI MC33CD1030 on S32K396BMS-EVB using NXP MBDT Introduction The following article shows a basic configuration and model for S32K396BMS-EVB that configures the SPI to communicate with the MC33CD1030 MSDI IC mounted on the evaluation board. Prerequisite software The following software tools were used to develop and deploy the application onto the S32K396BMS-EVB board. MATLAB® R2024b or later Simulink ® MATLAB ® Coder™ Simulink ® Coder™ Embedded Coder ® Support Package for ARM ® Cortex ® -M Processors S32K3 MBDT Toolbox Version 1.4.0 BMS MBDT Toolbox Version 1.2.0 FreeMASTER Run-Time Debugging Tool   Prerequisite hardware The application is developed for the following hardware*: S32K396BMS-EVB Debug probe (used to deploy the example and to connect the FreeMASTER application to the board) 12V power supply   Configuration project In this chapter, I show most important settings that must be to allow the MCU to enter standby mode and to be able to wake up and switch to RUN mode again. For more details, please download the files attached and consult the configuration project. Pins configuration   For the CD1030, only the SPI pins must be configured; LPSPI3 PCS1: PTF18 (OUTPUT) LPSPI3 CLOCK: PTF13 (OUTPUT) LPSPI3 SIN: PTF12 (INPUT) LPSPI3 SOUT: PTF15 (OUTPUT)   SorinIBancila_0-1777471509980.png Figure 1. Configuration Pins tab - LPSPI pins   Peripherals configuration Platform component The interrupt must be configured for the LPSPi3. To configure it, please go to PLATFORM -> Interrupt Controller and add a new entry into the table, as below. SorinIBancila_1-1777471606813.png Figure 2. Configuration Platform Component - Enable LPSPI3 interrupt MCU Component The peripheral clock must be enabled and it can be done from the MCU component -> McuModuleConfiguration -> McuModeSettingsConf. SorinIBancila_2-1777471646182.png Figure 3. Configuration MCU Component - Enable LPSPI3 peripheral clock SPI Component The MCU communicates with MC33CD1030 over the LPSPI3. First step is to configure the Spi -> SpiGeneral -> SpiPhyUnit SorinIBancila_3-1777471737967.png Figure 4. Configuration SPI Component - SpiPhyUnit (LPSPI3) Then, the Spi->SpiDriver must be configured. Important! The frame size of the SPI messages: It must be 32-bit wide and MSB. SorinIBancila_4-1777471790174.png Figure 5. Configuration SPI Component - SpiChannel   SorinIBancila_5-1777471818464.png Figure 6. Configuration SPI Component - SpiExternalDevice SorinIBancila_6-1777471857095.png Figure 7. Configuration SPI Component - SpiJob   SorinIBancila_7-1777471913175.png Figure 8. Configuration SPI Component - SpiSequence   Model configuraiton The Simulink model used to communicate with the MC33CD1030 can be seend in the picture below. It can also be found in the achieve attached to this article. The initialization of the model sets the AsyncMode to interrupt. SorinIBancila_1-1777472543316.png Figure 9. Simulink Model - Initialization subsystem   The application executes the following tasks at each step: Set up the External Buffer for the LPSPI3 SpiChannel_CD1030. The input for the block must be an array of 4 uint8 elements (in total 4 bytes - 32bit). The control word is the last element, while the first 3 elements are the configure words. The Dest Data output is a data story memory configured as uint8 with the size equal to 4.  Send the command to the MC33CD1030 IC and receive the previous result in CD1030_RecvData_SG data store Increment a variable to check that the application is running SorinIBancila_0-1777473333102.png Figure 10. Simulink Model - Full Overview   Validation To validate the application, the FreeMASTER tool is used to connect to the board and initiate the sequence to enter standby mode. To connect the board, you can use the LPUART1 (J6 connector), baud rate 115200. If everything is properly configured, in the FreeMASTER you should see the following in the Variable Watch: The SPI_SetAsyncMode_Status, CD1030_SetupEB_Status and SPI_Transmit_Status should all be 0. The CD1030_RecvData_SG (BIN) and CD1030_RecvData_SG (HEX) should display the content of the CD1030's register 0x3E Read switch status registers SG. The step_counter should increment at each step execution. SorinIBancila_1-1777473443463.png Figure 11. FreeMASTER Project - Variable Watch To test that the CD1030 is working, I connect the J10_6 (SG0 - KEY_ON_DIN) to either GND or VCC and we can see that the last bit of the register changes. SorinIBancila_2-1777473882992.png  Figure 12. FreeMASTER Project - J10_6 connected to GND SorinIBancila_3-1777473915113.png  Figure 13. FreeMASTER Project - J10_6 connected to VCC   Conclusion In this article, I presented a basic implementation that allows the S32K396 communicate with the MC33CD1030 IC over the SPI. For further details, please consult the MC33CD1030 reference manual. Example Models
記事全体を表示