Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
适用于 MCSPTR2AK396 开发套件的 lwip_FreeRTOS_s32k396 示例项目 你好!我正在使用 S32K396 MCSPTR2AK396 三相永磁同步电机控制开发套件。为了测试基础固件,我安装了以下软件包: S32DS_3.6.5_RFP_win32 S32K3_ETPU_SW_4.9_2.0.1_D2512 SW32K3_S32M27x_RTD_R23-11_7.0.0_QLP03_D2512 SW32K3_FreeMASTER_Driver_1.5.0_D2512 S32K3xx_AMMCLIB_RTM_1_1_45_BIN MCSPTR2AK396_SW GCC 版本 10.2 经过多次尝试同步所有软件版本均告失败后,终于成功了,基础固件开始运行。不过,接下来我想测试以太网通信功能,而这正是我目前遇到的尚未解决的问题。 我还安装了: SW32K3_FreeRTOS_11.1.0_0.8.0_CD1_D2603 SW32K3_TCPIP_STACK_4.0.0_D2512 我尝试了测试项目 lwip_FreeRTOS_s32k396,但它始终无法编译,总是出现错误;描述中总是存在冲突和其他问题。我尝试使用最新版本的 SW32K3_TCPIP_STACK_5.0.0_CD01_D2605,并且在更新代码过程中必须进行文件替换。最终,固件编译成功,虽然出现了一些警告,但没有出现错误。 之后,我便开始进行测试。我的系统设置如下:个人电脑 -> GeekStore 100BT1-PRO2 汽车变流器 ( http://pinzhi-tech.com.cn/en/home_eng/product_list_100base-t1_eng/100bt1-pro2_eng/ )-> MCSPTR2AK396。我调整了计算机上以太网连接的 IP 地址和固件中指定的 IP 地址,使它们位于同一子网中。然而,从计算机尝试 ping 电机的分配 IP 地址却失败了,尽管变流器显示网络轮询正在进行中。 问题可能出在哪里?是不是我不应该使用最新版本的 TCPIP_STACK?电路板本身是否存在问题?控制器板上的标签标明了版本 B1 和 B。是否可以获取专门针对这些修订的更多文档(在网站上,我只看到了修订版 A 的文档)?任何建议或疑问,我都非常感激。 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 你好@Anna_Anna , 是的,是 fsdata.c之前版本中报告的 EthIf.c 文件问题已修复;EthIf.c来自 RTD 的文件只是一个短截线。我们提供了自己的 EthIf 最小实现,因此可以安全地将 RTD 中的文件从项目中排除。 其次,是的,根据您的描述,该示例似乎运行正常。需要进行连接,并且应该按照所述方式进行(将CRS_DV布线/焊接至PTD14 )。 此致, 朱利安 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 谢谢,我稍后会尝试这种方法,并向你汇报结果。 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 你好@Anna_Anna , 首先,我不确定 TCPIP v4.0.0 存在哪些错误,因为它也与 RTD 7.0.0 兼容。FreeRTOS 7.0.0 CD01 软件包,但是最新的 TCPIP 协议栈 (v5.0.0) 可以正常工作。能否告知一下您修改了哪些文件? 我顺利地导入、生成和编译了该项目。我的环境:S32DS v3.6.0,RTD v7.0.1、FreeRTOS v7.0.0 CD 01 和 TCPIP 协议栈版本 5.0.0CD 01。 MCSPTR2AK396似乎存在设计缺陷。EMAC_MII_RMII_RX_DV ( PTD14 ) 未连接到RX_CTL - CONFIG6 : MCSPTR2AK396 EVB 以太网连接,CRS_DV 信号澄清。 也就是说,该任务和操作系统是否正在运行? xTickCount — 如果 RTOS 滴答中断处于活动状态,则此值应持续递增。 xSchedulerRunning — 如果调度程序正在运行,则应将其设置为 1。 此致, 朱利安   Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 你好@Julián_AragónM ! 使用 TCPIP v4.0.0 构建测试项目时遇到的问题已通过从构建过程中排除 fsdata.c 和 EthIf.c 这两个文件得到解决。此冲突似乎已在 5.0.0 版本中自动解决。 我还通过 S32DS 调试器的“表达式”窗口检查了变量 xSchedulerRunning 和 xTickCount 的值。xSchedulerRunning 的值确实为 1,而 xTickCount 的值依次递增(1、5001、10001……),这让我得出结论:FreeRTOS 在板载上运行正常,问题不在于软件。如果我理解正确,剩下的唯一原因就是硬件问题——TJA1103A 上的 CRS_DV (CONFIG6) 引脚与 PTD14 引脚之间没有连接?要解决这个问题,我需要将这两个触点焊接在一起吗?请确认。 此致, 安娜 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 你好 关于设计文件,我可以看到 MCSPTR2AK396 的硬件设计包包含 B2 版本: Julin_AragnM_3-1786576291659.pngJulin_AragnM_3-1786576291659.png 此致, 朱利安 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit 你好。在我将 MCU 的引脚 41 (PTD 14) 和 TJA1103A 的引脚 25 (RX_CTL/CONFIG6) 焊接好之后,ping 功能就真正开始工作了。谢谢!
記事全体を表示
AFT05MP075GNR1 Hi, i want to understand the test circuit of the AFT05MP075N . i Tried to Replicate it in QucsStudio but it doesn't work. ag_martinez_0-1786897992439.pngag_martinez_0-1786897992439.pngag_martinez_0-1786897992439.png ag_martinez_1-1786898112546.pngag_martinez_1-1786898112546.pngag_martinez_1-1786898112546.png I also want to make a BW=200MHz filter with it. How i adapt the circuit to my need. Re: AFT05MP075GNR1 Hello ag_martinez Good day! Unfortunately, I haven't used the simulator you're using, so I can't make a complete comparison, but from what I can see, I can tell you the following: In ADS/AWR, the original layout includes: tee discontinuities, mitered bends, open-end effects, coupling effects. Furthermore, I understand that the AWR simulation "takes into account" the parasitic effects that may be present in the package. The image quality of your schematic is a bit blurry and doesn't allow me to see all your components correctly, but in short, AWR takes into account many more effects that can occur in the components, which makes it more difficult (and I don't recommend it) to create an accurate representation manually in other simulators. We apologize for any inconvenience this may cause. I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck. Re: AFT05MP075GNR1 Thanks. Do you recommend use the circuit given in the datasheet or do you have some strategy to implement a custom circuit for the specific application? If so, what's that strategy? It's hard to obtain the exact pcb and i don't think i can have the dielectric of the datasheet, so i have to recalculate all the transmission lines. Have any advise?
記事全体を表示
QorIQ T1022 DDR検証スイートは良好なマージンで通過しますが、アプリケーション中にメモリ破損が確認されています こんにちは、 私たちは QorIQ T1022 設計を用いており、NXP DDR Validation Suiteを使ったDDRの起動と検証を完了しました。 結果は有望だ。 DDRの検証テストはすべて正常に合格しました。 試験したすべての条件下で、良好な時間的余裕を達成しました。 ストレステスト中に検証スイートからエラーは報告されませんでした。 しかし、メインアプリケーションを読み込んで実行すると、 メモリ関連の問題や破損が見られます。これらの問題は、DDR検証テストだけでは再現できません。 これにより、実際のアプリケーションワークロード下でのみ発生する可能性のある問題を検出するために、追加のメカニズムやテスト手法を使えばよいのではないかという疑問が生じています。 私たちは以下の点を理解することに関心があります。 T1022の標準的なDDR検証スイートテストで回避できるDDRやメモリサブシステムの問題にはどのようなものがありますか? DDRのトレーニングや検証で検出されなかった問題を暴露できる既知のアプリケーションレベルのシナリオはありますか? T1022には、根本原因を特定するのに役立つ追加のストレステスト、パフォーマンスモニター、エラーカウンター、デバッグ技術などがありますか? DDRの検証で優れたマージンが示されたにもかかわらず、後に本番環境でメモリ破損や不安定が観察された状況に遭遇した方はいらっしゃいますか? 追加の診断、ハードウェアチェック、ソフトウェアデバッグの方法についてのアドバイスをいただけると大変ありがたいです。 よろしくお願いします。 QorIQ T1デバイス Re: QorIQ T1022 DDR Validation Suite Passes with Good Margin, but Memory Corruption Seen in Applicat こんにちは、 QCVS DDRvツールは、シングルコアからJTAG経由で逐次的かつデターミニスティックなアクセスパターンを用いてDDRのタイミングマージン(書き込みレベリング、読み書き/書き込みセンタリング、クロック調整)をテストします。運動はしない: マルチマスター/マルチコア同時アクセス — T1022は2つのe5500コアとDPAA(データパスアクセラレーションアーキテクチャ)を持ち、フレームマネージャ、キューマネージャ、DMAエンジンが同時にDDRバスを巡って競合します。競合によって引き起こされるタイミング違反は、実際のトラフィック状況下でのみ発生します。 キャッシュコヒーレンシーストレス — キャッシュフラッシュ、無効化、整合性のあるDMA転送を含むアプリケーションワークロードは、検証スイートが生成しないアクセスパターンを作り出します。 熱および電源の変動 — 室温で軽負荷時に測定されたDDRマージンは、SoCがフル稼働中でAVDD_DDR電源が負荷下で低下すると著しく劣化することがあります。 DQマッピングエラー — DQ_MAPnレジスタが誤っている場合、コントローラは既知のトレーニングパターンを用いる検証には合格しますが、実際のアプリケーション トラフィック下ではデータを破損させる可能性があります。これはT1022固有の既知の問題です。 周辺のシングルビットECCエラー — 検証スイートが十分なトランザクションを蓄積せず、SBE閾値報告をトリガーできない場合もありますが、数時間稼働する実際のアプリケーションは静かに処理します。 DQマッピングの設定ミス DQ_MAPnレジスタはDRAMのDQ信号をコントローラにマッピングします。これらが誤ると、コントローラはトレーニングパターンを正しく解釈できず、実際のワークロード下でデータ破損が発生します。NXPはT1022設計でこれを確認しており、すべてのDQn_MAPレジスタをクリア(1:1マッピングのために0に設定)が推奨される診断ステップです。 メモリの順序付け/パイプライン効果(PowerPC e5500) e5500コアには、メモリの順序付けの細かい違いがよく記録されています。書き込みは、特に明示的なmsync/isyncバリアがない場合、後続の読み取りが行われる前にDDRに完全にコミットされない可能性があります。NXPのアプリケーションチームは、 「エラー注入が無効になる前に書き込みがメモリに完全にコミットされない可能性がある。その後の読み取りでキャッシュまたはパイプラインにヒットし、ECCロジックがすぐにトリガーされない可能性がある」と確認した。アプリケーションコード、DMA設定時の欠落障壁、共有メモリ構造などは、実際には一貫性の順序の問題である明らかな破損を引き起こすことがあります。 ECCシングルビットエラー蓄積 T1022 DDRコントローラーはECCをサポートしています。シングルビットエラー(SBE)はハードウェアによって暗黙的に訂正されますが、ERR_SBE[SBEC]にカウントされます。SBEカウンタがしきい値ERR_SBE[SBET]を超えると、重大な割り込みが発生します。検証トラフィックが少ない場合、このしきい値に達することはありません。実際の応用では、蓄積されたSBEが最終的に修正不能なマルチビットエラー(MBE)となり、致命的となり、データは復元できません。 アプリケーションのクラッシュとして現れるマルチビットECCエラー NXPはQorIQプラットフォーム(P2020、T1042)で、アプリケーションクラッシュ(例:有効なアドレスでのlwz命令のフォールト)がDDRのMBEイベント情報に起因したCASEを記録しています。クラッシュはソフトウェアのバグではなく、e5500コアがDDRコントローラから破損したデータを受け取り、IVOR1マシンチェック例外を発生させたためです。重要なのは、メモリ領域がキャッシュ禁止されている場合でも、MCSRレジスタは0xA000(修正不能なL1キャッシュ/タグエラー)を表示します。これはDDRコントローラがコアがL1エラーとして登録する破損データ信号を主張するためです ボード設計を以下の基準と比較してください: AN3940 — DDR3 SDRAMメモリインターフェースのハードウェアおよびレイアウトデザインの考慮事項 AN5097 — DDR4 SDRAMメモリインターフェースのハードウェアおよびレイアウトデザインの考慮事項 AN4039 — PowerQUICCおよびQorIQ DDR3 SDRAMコントローラレジスタ設定の考慮事項 特に注意すべき点は、AVDD_DDR電源のノイズとデカップリング、DDRリセット信号のルーティング(HRESET_BからDRAM RESETへ)、および終端抵抗の値です。 よろしくお願いします。
記事全体を表示
PB16 中取消 Flash 保护 大家好! 请问如何解除 MC9S08PB16 第一个扇区 (0xC000 - 0xDFF) 的安全限制,以便使用 PB16 参考手册第 10 章中描述的 flash 命令将 RAM 中的数据保存到闪存的这一部分?希望有人能帮帮我。 问候! Re: Unprotecting Flash in PB16 你好, 能否请您描述一下您用来保护内存扇区的命令和流程? 您指的是第 10.3.5.2 节中的命令吗?表 10-4 或第 10.3.9.1 章表 10-10 中的 Flash 命令? 您是否已设置 FPROT 寄存器以保护闪存中的区域? 第 10.3.8.2 章描述了通过擦除闪存来解除 MCU 安全的方法,如果这可以帮助您解除扇区的安全。 此致敬礼,路易斯
記事全体を表示
Device with MK22FN1M0VLQ12 resetting loop after working for some time Hi guys, I have a device that runs on a MK22FN1M0VLQ12. The thing is that after working for some time it starts to get stuck on a reset loop at startup. First i thought it was a problem with corrupted flash memory (the application saves logs in the flash). I used a ping-pong strategy to resolve that. But some devices returned with a similar problem. I tried to debug one of the devices and without setting any breakpoint it always stops at ASerialLDD2_Init or IntFlashLdd1_Erase, both are functions generated by processor expert. Other devices I used memory dump and was able to see that the memory was indeed corrupted so that's why I fixed how I use the FLASH. Other important note is that some times it happens after some months, other almost after a year. Also i have devices installed over a year and a half that are running ok. Other thing is that I tried to memory dump (with usbdm) this device, and trying to read the same address, sometimes it reads fine, and sometimes it returns ARM Transation Fault. Anyone seem anything like that? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time Thank you for the reply I will look into it, as the problem is happening at a time that coincides with a memory reading command. Although there's a pin that is setting HIGH when it should not. This pin is initialized as a LOW output. That being said, is there something that would explain why it was pausing in those function while debugging? Before the reading command the only time ASerialLDD2_Init() is called is within PE_low_level_init(). I am using a PE Micro multilink to debug. Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time Hello @Rigolon , Thanks for your post. I think this looks more like a Flash-operation-related fault or Flash-content corruption issue, rather than an issue in ASerialLDD2_Init or IntFlashLdd1_Erase themselves. The RM states that if the MCU reads an FTFE resource while it is being manipulated by an active Flash command, FSTAT[RDCOLERR] is set, and the read data is not guaranteed. You can refer to AN4835 , it also says:" Interruption of an erase or program command can lead to corruption of the flash contents. Interruptions could include reset, loss of power, or a conflict with code running on processor."  This matches the observation that reading the same address sometimes succeeds and sometimes returns an ARM Transaction Fault : if a Flash region is corrupted or in an indeterminate state, reading it may trigger a bus fault; in similar cases, erasing the affected sector, or mass erase if needed, is used to recover the Flash array. Please refer to Solved: Find corruption on internal Flash MK22FX512VLH12 - NXP Community for more details. Hope it helps. BR Celeste Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time Thank you for the reply I will look into it, as the problem is happening at a time that coincides with a memory reading command. Although there's a pin that is setting HIGH when it should not. This pin is initialized as a LOW output. That being said, is there something that would explain why it was pausing in those function while debugging? Before the reading command the only time ASerialLDD2_Init() is called is within PE_low_level_init(). I am using a PE Micro multilink to debug. Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time how about the failing rate?If the failing rate is higher than 50%,please share the error log for further analysis. Meanwhile does your application have requirement to program and erase internal flash very often? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time Hello @Rigolon , Thanks for the additional details. The debugger halting at ASerialLDD2_Init or IntFlashLdd1_Erase without a breakpoint is a strong indicator that a fault (e.g., HardFault or BusFault) is occurring, not that execution is actually reaching those functions normally. A likely cause is corruption in the vector table region of Flash, if the fault handler vectors are corrupted, the MCU may jump to an incorrect address that happens to land near those PE-generated functions. You can check the HFSR、CFSR、BFAR、MMFAR registers.  And you can also refer to the way in How to debug a HardFault on an ARM Cortex-M MCU | Interrupt to verify whether it is indeed a Hard Fault. Hope it helps. BR Celeste
記事全体を表示
设备(型号为 MK22FN1M0VLQ12)工作一段时间后出现复位循环 嗨,大家好, 我有一个运行在 MK22FN1M0VLQ12 上的设备。 问题是,运行一段时间后,它在启动时会陷入重置循环。 起初我以为是闪存损坏的问题(该应用程序将日志保存在闪存中)。我采用了乒乓球式策略来解决这个问题。 但有些设备退回来时也存在类似问题。我尝试调试其中一个设备,但没有设置任何断点,它总是在 ASerialLDD2_Init 或 IntFlashLdd1_Erase 处停止,这两个函数都是由处理器专家生成的。我用内存转储功能检查了其他设备,发现内存确实损坏了,所以我就修复了闪存的使用方式。 另一点需要注意的是,有时这种情况会在几个月后发生,有时则会在一年后发生。另外,我还有一些设备已经安装了一年半以上,目前运行正常。 另外,我尝试使用 usbdm 对该设备进行内存转储,并尝试读取相同的地址,有时读取正常,有时返回 ARM 事务错误。 有人遇到过类似的情况吗? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 谢谢你的回复 我会调查一下,因为这个问题发生的时间恰好与内存读取命令的时间重合。虽然有一个引脚在不应该置为高电平的时候置为高电平。该引脚初始化为低电平输出。 也就是说,在调试过程中,有没有什么原因可以解释为什么它会在这些函数处暂停?在读取命令之前,ASerialLDD2_Init() 仅在 PE_low_level_init() 中被调用。 我正在使用PE Micro多链路进行调试。 Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 谢谢你的回复 我会调查一下,因为这个问题发生的时间恰好与内存读取命令的时间重合。虽然有一个引脚在不应该置为高电平的时候置为高电平。该引脚初始化为低电平输出。 也就是说,在调试过程中,有没有什么原因可以解释为什么它会在这些函数处暂停?在读取命令之前,ASerialLDD2_Init() 仅在 PE_low_level_init() 中被调用。 我正在使用PE Micro多链路进行调试。 Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 你好@Rigolon , 感谢你的帖子。 我认为这更像是 Flash 操作相关的故障或 Flash 内容损坏问题,而不是 ASerialLDD2_Init 或 IntFlashLdd1_Erase 本身的问题。RM 指出,如果 MCU 在受到活动的 Flash 命令操作时读取 FTFE 资源,则会设置 FSTAT[RDCOLERR],并且无法保证读取的数据。 您可以参考AN4835 ,其中也提到:“擦除或编程命令的中断会导致闪存内容损坏。中断可能包括RESET、断电或与处理器上运行的代码发生冲突。这与以下观察结果相符:读取同一地址有时会成功,有时会返回 ARM 事务错误:如果 Flash 区域损坏或处于不确定状态,读取它可能会触发总线故障;在类似情况下,擦除受影响的扇区,或在必要时进行批量擦除,用于恢复 Flash 阵列。请参阅“已解决:查找内部 Flash MK22FX512VLH12 的损坏 - NXP 社区”了解更多详情。 希望对您有所帮助。 BR 塞莱斯特 Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 失败率如何?如果失败率高于 50%,请提供错误日志以便进一步分析。 同时,您的应用程序是否需要频繁地对内部闪存进行编程和擦除? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 你好@Rigolon , 感谢您提供的更多细节。如果调试器在没有断点的情况下在 ASerialLDD2_Init 或 IntFlashLdd1_Erase 处停止,则强烈表明发生了故障(例如 HardFault 或 BusFault),而不是表示执行实际上正常到达了这些函数。一个可能的原因是 Flash 的向量表区域损坏,如果故障处理向量损坏,MCU 可能会跳转到错误的地址,而该地址恰好落在 PE 生成的函数附近。 您可以查看 HFSR、CFSR、BFAR 和 MMFAR 寄存器。 您还可以参考“如何在 ARM Cortex-M MCU 上调试 HardFault | 中断”中的方法,来验证它是否确实是 HardFault。 希望对您有所帮助。 BR 塞莱斯特
記事全体を表示
S32M276XX LVR(low voltage reset) function test Hi NXP technician, I want to make a hardware test about the LVR(Low voltage reset) function on VDD_HV_A pin of S32M276 IC. The S32M276 is SoC IC, all power are generated internally, So How could I verify this function on PCBA level? Kindly ask you for any suggestion. Ted_Qiao_0-1787054923749.pngTed_Qiao_0-1787054923749.png Re: S32M276XX LVR(low voltage reset) function test Hi @Ted_Qiao, LVR is enabled by default, and generates a POR. After a chip POR event, you can determine which power domain caused it by reading the PORF and LVRx flags in Low Voltage Status And Control (LVSC) register. You can externally limit the IC's voltage supply to try and generate a LVD event, or LVR POR, and check the LVRAF flag. Best regards, Julián
記事全体を表示
AFT05MP075GNR1 こんにちは、 AFT05MP075Nのテスト回路について理解したいです。QucsStudioで再現しようとしましたが、うまくいきませんでした。 ag_martinez_0-1786897992439.pngag_martinez_0-1786897992439.pngag_martinez_0-1786897992439.png ag_martinez_1-1786898112546.pngag_martinez_1-1786898112546.pngag_martinez_1-1786898112546.png それを使って帯域幅200MHzのフィルタも作りたいと思っています。回路を自分のニーズに合わせて調整する方法。 Re: AFT05MP075GNR1 こんにちは、ag_martinezさん 良い一日! 残念ながら、あなたが使っているシミュレータは使ったことがないので完全な比較はできませんが、私が見た限りでは以下の点をお伝えできます: ADS/AWRでは、元のレイアウトには以下が含まれます。 T字管の不連続性、 マイター曲げ、 オープンエンド効果、 カップリング効果。 さらに、AWRシミュレーションはパッケージ内に存在する可能性のある寄生効果を「考慮」していると理解しています。 あなたの回路図の画質が少しぼやけていて、すべてのコンポーネントを正しく見ることができませんが、要するにAWRはコンポーネント内で起こりうる多くの影響を考慮しているため、他のシミュレータで正確な表現を作成するのが難しくなります(そしておすすめしません)。 ご迷惑をおかけして申し訳ございません。 この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。 良い一日をお過ごしください。幸運を祈ります。 Re: AFT05MP075GNR1 ありがとう。データシートに記載されている回路を使うことをおすすめしますか?それとも特定の用途に合わせたカスタム回路を実装する戦略はありますか?もしそうなら、その戦略は何ですか? 正確なPCBを入手するのは難しく、データシートの誘電体も手に入らないと思うので、すべての伝送線路を再計算しなければなりません。何かアドバイスはありますか?
記事全体を表示
MK22FN1M0VLQ12搭載デバイスが、しばらく動作後にリセットループに陥る。 こんにちは、みんな、 私はMK22FN1M0VLQ12を搭載したデバイスを持っています。 問題は、しばらく動作させた後、起動時にリセットループに陥ってしまうことです。 最初はフラッシュメモリの破損(アプリケーションがログをフラッシュに保存します)の問題かと思いました。私は卓球の戦略を使ってそれを解決しました。 しかし、一部の端末は同様の問題を抱えたまま返品された。あるデバイスのデバッグを試みましたが、ブレークポイントを設定しなくても常にASerialLDD2_InitかIntFlashLdd1_Eraseで止まります。どちらもプロセッサエキスパートが生成する関数です。他のデバイスではメモリダンプを使ったところ、メモリが確かに破損していることが分かったので、FLASHの使い方を直しました。 もう一つ重要な点は、それが数か月後に起こる場合もあれば、ほぼ1年後に起こる場合もあるということです。また、1年半以上前に設置したデバイスの中には、問題なく動作しているものもあります。 もう一つは、USBでメモリダンプを試みて同じアドレスを読み取ろうとしたところ、時には問題なく読み取れる時もあれば、ARMトランスエーションフォルトを返すこともあります。 誰か、そんな感じの人を見たことがありますか? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time ご返信ありがとうございます メモリ読み取りコマンドの実行時と重なるタイミングで問題が発生しているため、調査してみます。ただし、本来HIGHになるべきではないピンがHIGHに設定されている箇所があります。このピンはLOW出力として初期化されます。 とはいえ、デバッグ中にそれらの関数で一時停止する理由を説明できるような何かはあるのでしょうか?読み取りコマンドの前にASerialLDD2_Init()が呼び出されるのは、PE_low_level_init()内のみです。 デバッグにはPE Microマルチリンクを使用しています。 Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time こんにちは、 @Rigolon さん。 投稿ありがとうございます。 これはASerialLDD2_InitやIntFlashLdd1_Erase自体の問題というよりは、フラッシュメモリの動作に関連する障害、あるいはフラッシュメモリの内容の破損の問題のように見えます。RMは、MCUがアクティブなフラッシュコマンドで操作されている間にFTFEリソースを読み取ると、FSTAT[RDCOLERR]が設定され、読み込みデータが保証されないと述べています。 AN4835を参照すると、そこには「イレイズやプログラムコマンドの中断はフラッシュの内容の破損を引き起こす可能性があります」とも書かれています。中断にはリセット、電力喪失、プロセッサ上で動作するコードとの競合などが含まれます。」これは、同じアドレスを読み取っても時に成功し、時にはARMトランザクションフォールトが返されるという観察と一致します。フラッシュ領域が破損したり不確定状態にある場合、それを読み取ることでバスフォールトが発生する可能性があります。同様の場合、影響を受けたセクターの消去や必要に応じてマス消去によってフラッシュアレイを復元します。詳細については、「解決済み:内部フラッシュ MK22FX512VLH12の破損を探す - NXPコミュニティ」をご覧ください。 お役に立てば幸いです。 BR セレステ Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time ご返信ありがとうございます メモリ読み取りコマンドの実行時と重なるタイミングで問題が発生しているため、調査してみます。ただし、本来HIGHになるべきではないピンがHIGHに設定されている箇所があります。このピンはLOW出力として初期化されます。 とはいえ、デバッグ中にそれらの関数で一時停止する理由を説明できるような何かはあるのでしょうか?読み取りコマンドの前にASerialLDD2_Init()が呼び出されるのは、PE_low_level_init()内のみです。 デバッグにはPE Microマルチリンクを使用しています。 Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time 失敗率はどうでしょうか?失敗率が50%を超える場合は、詳細な分析のためにエラーログを共有してください。 一方で、あなたのアプリケーションは内部フラッシュを頻繁にプログラムして消去する義務がありますか? Re: Device with MK22FN1M0VLQ12 resetting loop after working for some time こんにちは、 @Rigolon さん。 追加情報ありがとうございます。ブレークポイントを設定せずにデバッガが ASerialLDD2_Init または IntFlashLdd1_Erase で停止する場合、実行がこれらの関数に正常に到達していることを示すのではなく、障害(ハードフォルトやバスフォルトなど)が発生している可能性が高いことを示しています。おそらく原因はFlashのベクトルテーブル領域の破損であり、フォールトハンドラベクターが破損すると、MCUはPE生成関数の近くに誤ったアドレスにジャンプすることがあります。 HFSR、CFSR、BFAR、MMFARのレジスターを確認できます。 また、「ARM Cortex-M MCU |割り込みして、それが本当にハードフォルトかどうかを確認しましょう。 お役に立てば幸いです。 BR セレステ
記事全体を表示
S32K3 FS26 新 WDG 周期无法工作 你好, 在我的板上,上电复位后,我将 FS26 看门狗周期配置为 无限 在初始化期间。然后我退出调试模式并进入正常模式(读取的值来自 SBC_FS26_FS_STATES_ADDR 是 0xB )。 之后,我将监视程序周期更改为 64毫秒 (如屏幕截图所示),执行一次看门狗刷新(馈送),返回值表示成功。 WD_RFR_CNT 增加 1,阅读 SBC_FS26_FS_WDW_DURATION_ADDR 给予 0xB0CD ,确认周期已成功更新为 64 毫秒。 但是,如果我之后停止喂养看门狗, 没有发生错误或RESET。 相反,如果我将看门狗周期配置为 64 毫秒 初始化期间 然后,在退出调试模式后,不再向看门狗提供数据。 做 按预期触发重置。 为什么在正常模式下,即使寄存器写入和刷新都成功,当周期从无限变为 64ms 时,看门狗仍然不起作用? Jason22_0-1785918605528.pngJason22_0-1785918605528.pngJason22_0-1785918605528.pngJason22_0-1785918605528.png S32K344 RTD7.0.0 FS26 6.0.0 S32DS3.6.4 EB30.0 BR, 杰森 Re: S32K3 FS26 new WDG period not work 你好, 哦!回复时我忘记切换账号了——Jason07是我的另一个账号。 BR, 杰森 Re: S32K3 FS26 new WDG period not work 你好, 非常感谢您的回复。 我将监视周期设置为 无限 在初始化期间,根据驱动程序代码,某些操作仅在周期为 INFINITE 时执行——例如,在执行期间关闭 INIT_FS。 Sbc_fs26_InitDevice() 函数,并调用 Sbc_fs26_WdRefresh 里面 Sbc_fs26_清除故障错误计数器 清除故障错误计数器。 Jason07_1-1785986004068.pngJason07_1-1785986004068.pngJason07_1-1785986004068.pngJason07_1-1785986004068.png Jason07_2-1785986074130.pngJason07_2-1785986074130.pngJason07_2-1785986074130.pngJason07_2-1785986074130.png 如果我将周期设置为有限值,则 Sbc_fs26_WaitFailsafeRelease 在 Sbc_fs26_FsxbRelease 中返回 E_NOT_OK ,并且 FS26 会一直处于待处理状态。 FS_STATES_FS0B_ASSERT 状态,无法过渡到 FS_STATES_NORMAL_FS 。 Jason07_0-1785985959468.pngJason07_0-1785985959468.pngJason07_0-1785985959468.pngJason07_0-1785985959468.png BR, 杰森 Re: S32K3 FS26 new WDG period not work 你好, 由于在 INIT_FS 关闭时监视程序已被禁用,因此监视程序不会启动。 配置 WDW_PERIOD[3:0] = 0000 选择无限打开窗口。根据 FS26 看门狗规范,看门狗窗口只能在初始化阶段禁用,并且禁用会在初始化阶段结束后生效。以这种方式禁用的看门狗随后不能通过向 FS_WDW_DURATION 写入有限值而在正常模式下启用。 寄存器读取成功确认新的 WDW_PERIOD 字段已写入,递增的 WD_RFR_CNT 确认刷新已被接受。这些观察结果表明,看门狗超时监控功能并未重新启用。 如果在初始化期间启用了有限周期的看门狗,则支持运行时周期更改。因此,在 INIT_FS 期间配置有限的看门狗周期,例如,如果需要较长的初始化间隔,则最大有限周期为 1024 毫秒。进入正常模式后,周期可以更改为 64 毫秒。新的有限期限将在下一次监控程序刷新后生效。 这种行为也解释了为什么在初始化期间配置 64 毫秒时会发生 RESET:在这种情况下,当 INIT_FS 关闭时,看门狗将被启用。 petervlna_0-1785930476258.pngpetervlna_0-1785930476258.pngpetervlna_0-1785930476258.pngpetervlna_0-1785930476258.png 从功能安全角度来看,禁用看门狗会导致无限状态,因为比较是在硬件中进行的,匹配成功时标志位总是会上升。 顺祝商祺! Peter Re: S32K3 FS26 new WDG period not work 你好, 根据观察到的行为,在 NORMAL_FS 中将 WDW_PERIOD 从无限打开窗口更改为 64 毫秒后,FS26 看门狗监控似乎没有启动。 寄存器写入成功,读取值 (0xB0CD) 证实了这一点,并且看门狗刷新命令继续被接受,WD_RFR_CNT 递增表明了这一点。然而,在刷新停止后没有任何看门狗超时反应,这表明看门狗的监督本身并未激活。 当看门狗周期配置为无限打开窗口时,Sbc_fs26_NormalFSSequence() 通过发出立即看门狗刷新来关闭 INIT_FS。同样,Sbc_fs26_ClearFaultErrorCounter() 使用连续的看门狗刷新来清除故障错误计数器,因为在无限模式下没有看门狗窗口时间限制。 当配置了有限的监视周期时,驱动程序会遵循不同的路径。看门狗刷新必须与有效的看门狗窗口同步,驱动程序使用看门狗定时机制(pfWdgNotification、定时器同步和 Sbc_fs26_TimeWaitClearFault()),而不是发出连续的立即刷新。 petervlna_0-1786002507583.pngpetervlna_0-1786002507583.pngpetervlna_0-1786002507583.pngpetervlna_0-1786002507583.png Re: S32K3 FS26 new WDG period not work 你好@Jason22 你解决这个问题了吗? 在调用 Sbc_fs26_InitDevice 之后,您是否成功地将 FS26 从 FS0B_ASSERT 状态切换到NORMAL_FS 状态? 谢谢。 Re: S32K3 FS26 new WDG period not work 感谢您的解答。 Re: S32K3 FS26 new WDG period not work 你好@Djuric 只有当看门狗周期初始化为无穷大时,才能进入正常模式。如果监视周期的初始值是有限的,则无法进入正常模式。
記事全体を表示
S32M276XX LVR(低電圧リセット)機能テスト NXPの技術者さん、こんにちは。 S32M276 ICのVDD_HV_AピンにおけるLVR(低電圧リセット)機能について、ハードウェアテストを実施したいと考えています。S32M276はSoC ICで、すべての電力は内部で発生しています。では、この機能をPCBAレベルでどうやって検証すればよいのでしょうか?何かご提案がありましたら、お気軽にお尋ねください。 Ted_Qiao_0-1787054923749.pngTed_Qiao_0-1787054923749.png Re: S32M276XX LVR(low voltage reset) function test こんにちは、 @Ted_Qiao さん。 LVRはデフォルトで有効になっており、PORを生成します。チップPORイベントの後、Low Voltageの PORF と LVRx フラグを読み取ることで、どの電力領域が原因かを特定できます ステータス&コントロール(LVSC)レジスタ。 ICの電圧供給を外部から制限してLVDイベント(LVR POR)を発生させ、LVRAFフラグを確認することができます。 よろしくお願いします、 ジュリアン
記事全体を表示
MCSPTR2AK396開発キット用のlwip_FreeRTOS_s32k396サンプルプロジェクト こんにちは!私はS32K396 MCSPTR2AK396と共に3相永久磁石同期モーター制御開発キットを使っています。ベースファームウェアをテストするために、以下のスタックをインストールしました。 S32DS_3.6.5_RFP_win32 S32K3_ETPU_SW_4.9_2.0.1_D2512 SW32K3_S32M27x_RTD_R23-11_7.0.0_QLP03_D2512 SW32K3_FreeMASTER_Driver_1.5.0_D2512 S32K3xx_AMMCLIB_RTM_1_1_45_BIN MCSPTR2AK396_SW GCC バージョン 10.2 すべてのソフトウェアバージョンを同期しようと何度か試みましたが失敗しましたが、最終的には動作し、ベースのファームウェアが動作し始めました。しかし、次にイーサネット通信機能をテストしたいと思ったところ、そこで未解決の問題に直面しました。 さらに以下のものをインストールしました: SW32K3_FreeRTOS_11.1.0_0.8.0_CD1_D2603 SW32K3_TCPIP_STACK_4.0.0_D2512 そして、テストプロジェクトlwip_FreeRTOS_s32k396を試してみましたが、エラーなしでコンパイルできたことは一度もありませんでした。常に説明の矛盾やその他の問題が発生していました。SW32K3_TCPIP_STACK_5.0.0_CD01_D2605の最新バージョンを使ってみたところ、コード更新処理中にファイルの置換を行う必要がありました。最終的に、ファームウェアは警告は表示されたものの、エラーは発生せずにコンパイルされた。 その後、テストに移りました。私は次のようにシステムをセットアップしました:パーソナルコンピュータ - > GeekStore 100BT1-PRO2 オートモーティブ コンバーター(http://pinzhi-tech.com.cn/en/home_eng/product_list_100base-t1_eng/100bt1-pro2_eng/)-> MCSPTR2AK396。パソコンのイーサネット接続とファームウェアで指定されたIPアドレスを同じサブネットに割り当てました。しかし、コンピュータからモーターの割り当てられたIPにpingを試みましたが失敗しましたが、コンバーターからはネットワークのポーリングが進行中であることが示されています。 何が原因なのでしょうか?もしかすると、最新バージョンのTCPIP_STACKを使うべきではなかったのでしょうか?基板自体に問題がある可能性はありますか?コントローラーボードのステッカーには、リビジョンB1とBが示されています。これらの改訂版専用の追加ドキュメントを入手することは可能でしょうか(ウェブサイトで、改訂Aのドキュメントしか見かけませんでした)?何かアドバイスや不明点があれば、ぜひお聞かせください。 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit こんにちは、 @Anna_Anna さん、 はい、fsdata.cまた、以前のリリースにおける EthIf.c の問題が報告され、修正されました。RTDからのファイルは単なるスタブです。EthIfの最小限実装も提供しているので、RTDのファイルはプロジェクトから安全に除外できます。 第二に、はい、あなたの説明から判断すると、その例は正しく動作しているようです。接続は必要であり、前述のとおりに行う必要があります( CRS_DVをPTD14に配線/はんだ付けする)。 よろしくお願いします、 ジュリアン Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit ありがとうございます。後ほどこの方法を試してみて、結果をご報告します。 Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit こんにちは、 @Anna_Anna さん、 まず、TCPIP v4.0.0にはどのようなエラーがあったのか分かりません。なぜなら、RTD 7.0.0とも互換性があるからです。およびFreeRTOS 7.0.0 CD01パッケージですが、最新のTCPIPスタック(v5.0.0)は問題ありません。ファイルの改変内容について教えてもらえますか? プロジェクトのインポート、生成、コンパイルは問題なく完了しました。私の環境: S32DS v3.6.0、RTD v7.0.1、FreeRTOS v7.0.0 CD 01、およびTCPIPスタックバージョン5.0.0CD 01。 どうやらMCSPTR2AK396設計上の見落としがあるようです。 EMAC_MII_RMII_RX_DV (PTD14)はRX_CTLに接続されていません - CONFIG6:MCSPTR2AK396 EVB イーサネット コネクティビティ、信号の明確化CRS_DV。 とはいえ、タスクとOSは実行されていますか? xTickCount — RTOSのティック割り込みがアクティブな場合、これは継続的に増加するはずです。 xSchedulerRunning — スケジューラが実行されている場合は、これを 1 に設定する必要があります。 よろしくお願いします、 ジュリアン   Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit こんにちは、 @Julián_AragónM! TCPIP v4.0.0を使ってテストプロジェクトを構築する際の問題は、fsdata.cとEthIf.cの2つのファイルをビルドから除外することで解決されました。この競合はバージョン5.0.0で自動的に解決されたようです。 また、S32DSデバッガのExpressionsウィンドウからxSchedulerRunningとxTickCountの変数の値も確認しました。xSchedulerRunningは確かに1の値を受け取り、2つ目の値は順次増加します(1、5001、10001...)。これにより、FreeRTOSは基板上で正しく動作しており、問題はソフトウェアにあるのではないと結論づけています。私の理解が正しければ、残っている唯一の原因はハードウェアの問題で、TJA1103AのCRS_DV(CONFIG6)とPTD14ピンの間に接続がないということですか?これを解決するには、この2つの接点をはんだ付けする必要がありますか?確認してください。 よろしくお願いします、 アンナ Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit こんにちは デザインファイルについてですが、MCSPTR2AK396のハードウェアデザインパッケージにはリビジョンB2が含まれているのが確認できます。 Julin_AragnM_3-1786576291659.pngJulin_AragnM_3-1786576291659.png よろしくお願いします、 ジュリアン Re: lwip_FreeRTOS_s32k396 example project for MCSPTR2AK396 Development Kit こんにちは。MCUのピン41(PTD 14)とTJA1103Aのピン25(RX_CTL/CONFIG6)をはんだ付けした後、ピンが本当に機能し始めました。ありがとう!
記事全体を表示
LIN communication failure during E-Flash write A LIN communication failure is detected during the write operation of 100 bytes of data to the internal EEPROM. Please suggest an appropriate LIN communication recovery method. Re: LIN communication failure during E-Flash write Hi @SivaB  Could you please let us know which exact S32K device you are using? One possible explanation is that the Emulated EEPROM operation takes a relatively long time, and the resulting delay may prevent the software from servicing LIN interrupts within the required timing constraints. Another possibility is a Read-While-Write conflict. During flash erase/program operations, code or data located in the flash block currently being programmed or erased cannot be fetched/read. If such code or data is required by the application, this could cause the application to crash, which would subsequently result in the observed LIN communication failures. Could you also clarify what happens when the issue occurs? Does the application crash completely, or does it continue running and only the LIN communication stop working? Regards, Lukas Re: LIN communication failure during E-Flash write S32K144: The application is functioning as expected. However, LIN communication fails, and after the failure occurs, LIN communication cannot be recovered. The EEPROM programming/storage time is approximately 175 ms.
記事全体を表示
T1040 mEMAC TX_FIFO_OVFL は、別のポートがリンクを失ったときにポートで動作します。 私は1G mEMAC RGMIIインターフェースを使ってT1040のイーサネット問題をデバッグしています。別のポートが物理的なリンクを切った場合(例えばケーブルが切断されている場合)、イーサネットポートでパケットロスが発生しています。これは、両方のポートが高速データ転送速度で動作している場合に最も頻繁に発生するようです。 問題が発生すると、健康なポートの割り込みイベントレジスタ(「IEVENT」)に「TX_FIFO_OVFL」ビットが設定されているのが見えます。 私の現在の解釈では、アクティブに送信中のmEMACが物理的なリンクを失うと、FMan/mEMAC送信経路の何らかの要因によって、別のmEMACがTX FIFOを十分に速く使い切ることが一時的に妨げられる、ということだ。正常なポートは最終的に`IEVENT[TX_FIFO_OVFL]`を報告し、フレームが失われます。しかし、この行動を引き起こす共通のリソースやメカニズムはまだ特定していません。 私の質問は以下のとおりです。 * これは既知のT1040 / FMan v3 / mEMACシリコンの問題ですか、それともエラタムですか? * 1G mEMACポート間で共有リソースがあり、送信中に一方のポートでキャリアが失われ、別のポートの送信FIFOに一時的に影響が出る可能性があるか? * PHYがリンクを失った場合、QMIデキューの停止、BMI TXポートの無効化、mEMAC TX/RXの無効化、mEMACのリセットなど、必要なシーケンスはありますか? * オーバーフローが発生する前に「TX_FIFO_OVFL」状態を検出できるmEMACやFManステータスレジスタはありますか? * この状況で「TX_FIFO_OVFL」を防ぐために推奨されるFMan/mEMACやPHYの設定変更はありますか? よろしくお願いします。 Re: T1040 mEMAC TX_FIFO_OVFL on port when another port loses link こんにちは、 T1040/FMan v3のシリコンエラッタで、ピアポートのリンク喪失によって正常なポートで TX_FIFO_OVFL トリガーされることを具体的に説明したものは、公式には文書化されていません。T1040チップの正誤表はNDA(秘密保持契約)によって管理されており、一般には公開されていませんが、T1040 mEMACに関して、そのようなクロスポートTX FIFOオーバーフローの正誤表は確認されていません。 観察されている現象は、シリコンの欠陥というよりも、共有されているFMan BMIリソース内のアーキテクチャ上の相互作用によるものである可能性が最も高いです。   よろしくお願いします。 Re: T1040 mEMAC TX_FIFO_OVFL on port when another port loses link こんにちは、 共有される4つのBMIリソースは、TNUM(タスク)、DMAチャネル、FIFO(MURAM)、パイプライン深度です。FIFOサイズ、パイプライン深度( DPDE )、FIFOの低閾値( FLCL )の変更で改善が見られなかったため、DMAチャネル層が最もボトルネックであり、MURAM割り当てではありません。 T1040 FManは、すべてのアクティブなTXポートで共有される固定されたDMAチャネルプールを持っています。各ポートのTXパスは以下のとおりです。 CPU → QMI dequeue → BMI opens DMA read (DDR → MURAM) → TX FIFO → mEMAC → wire     停止したポートがリンクを失い、 COMMAND_CONFIG[TX_EN] クリアすると、mEMAC はワイヤへの送信を停止しますが、既にパイプラインの途中にあるフレーム、特に BMI TX ポートが既に DMA 読み取りトランザクション (DDR → MURAM TX FIFO) を発行しているフレームは、すぐには完了しません。DMA読み取りによって既にデータがTX FIFOに移動されている可能性があり、FMan DMAエンジンは現在、FIFOを消費するMACに依存する「DMA完了/EBD(外部バッファ記述子)解放」確認応答を待っています。 TX_EN=0 ではMACが消費されないため、DMAトランザクションは開かれたままになります。 停止したポートで開いているDMAトランザクションは、共有DMAチャネルスロットを保持します。高負荷時には、健康なポートのBMI TXパスが十分なDMAチャネルスロットを獲得できず、DDRからデータを迅速に取得できず、TX FI→FOが一時的に空になり→その後MACのドレインレート→ TX_FIFO_OVFL よりも速く戻ってしまいます。 よろしくお願いします。 Re: T1040 mEMAC TX_FIFO_OVFL on port when another port loses link ありがとう。この行動を引き起こすと予想される共有のBMIリソースや仲裁メカニズムを特定しますか? FMBM_PFS[IFSZ]、FMBM_TFP[DPDE]、およびFMBM_TFP[FLCL]への変更をテストしましたが、意味のある変化は見られませんでした。また、IF_STATUS[RGLINK]が低下したらエンキューをやめ、mEMAC TXをすぐに無効にしていますが、健康なポートでもパケットが失われることがあります。 この相互作用からポートを分離するための、文書化された、または推奨される構成はありますか?また、どのBMIリソースが枯渇したり、ブロックされたり、健康なmEMACがTX FIFOを消耗させないようにしているかを示すカウンター、ステータスレジスタ、デバッグ機構はありますか? Re: T1040 mEMAC TX_FIFO_OVFL on port when another port loses link ご説明ありがとうございます。1G TXポートのFMBM_PP設定を確認しました。これらはデフォルト値で設定されています。 MXT = 3:最大4つの同時処理タスク MXD = 2:最大3件の未処理DMA要求 ポートごとのリソース制限についても実験してみました。DMA要求や同時処理タスクの設定を増減しました。これはTX FIFOオーバーフローに関して目立った改善をもたらさなかった。 デフォルト設定では1GのTXポートは未処理のDMA要求が3件しか持てないため、1つの停止した1Gポートが他のポートに大きな影響を与えるほどの共有DMAリソースを消費する理由がよくわかりません。 84エントリのFMan v3 DMAコマンドキューとは別に、より小さな共有DMAチャネル/リソースプールが存在するのでしょうか?それとも、少数のDMAトランザクションが停止することでヘッドオブラインブロッキングや他のポートからのDMAトランザクションの進行を妨げることがあるのでしょうか? また、リンクダウンポートからの未処理のDMAトランザクションがこの状態でも実際に開いていることを確認するためのDMAステータス/デバッグレジスタやカウンターはありますか?
記事全体を表示
R45 MIPICSI2 バッファビューエラー 親愛なる、 私たちはR45 MIPIを使用して他のチップのMIPIからデータを受信していますが、現在、R45は一定時間データを受信した後、バッファエラーを報告するようになりました。MIPIの送信速度は600Mbps、R45の受信速度も600Mbpsです。 R45リファレンスマニュアルでは、バッフォーフ誤差を次のように説明しています。   evalin_1-1729739919559.pngevalin_1-1729739919559.png R45 CSI2はどのような状況でこのエラーを報告するのでしょうか?よろしくお願いします。 Re: R45 MIPICSI2 BUFFOVF ERR こんにちは、ピーターさん@petervlna 現在、私たちのチームはNXP S32R45を使用していますが、私たちも同じエラーに遭遇しました。ADCデータをR45 CSI2インターフェース(送信元は別のチップ)に送信しています。場合によっては、0x80000エラーコードが解消されないことがあります。(MIPIからSRAMへのADCデータ、そしてDDRメモリへの保存、ADCキャプチャは常に「バックグラウンド」(12msで2MBデータ)を実行、SPTプロセッシングはフォアグラウンドに、中間データは 何かご提案はございますか? よろしくお願いします! Re: R45 MIPICSI2 BUFFOVF ERR こんにちは、 内部バッファが満杯の場合、手動で表現します。 データがいっぱいになってオーバーフローが発生する前に、必ずデータを空にする/転送してください。 DMAまたはコアトリガーによるデータ転送速度が遅すぎるのかもしれません。 よろしくお願いいたします。 ピーター
記事全体を表示
QorIQ T1022 DDR 验证套件以良好优势通过,但在应用程序中发现内存损坏。 你好, 我们正在使用QorIQ T1022设计,并已使用 NXP DDR 验证套件完成了 DDR 启动和验证。 结果令人鼓舞: 所有DDR验证测试均成功通过。 我们在所有测试条件下都取得了良好的时间裕度。 压力测试期间,验证套件未报告任何错误。 然而,当我们加载并运行主应用程序时,我们开始观察到一些似乎与内存相关的问题/损坏。仅使用 DDR 验证测试无法重现这些问题。 这就引出了一个问题:我们是否应该使用其他机制或测试方法来检测可能仅在真实应用程序工作负载下才会出现的问题。 我们感兴趣的是了解: T1022 上的标准 DDR 验证套件测试可以检测出哪些类型的 DDR 或内存子系统问题? 是否存在已知的应用层面的场景,可以暴露出在 DDR 训练和验证过程中未检测到的问题? T1022 上是否有其他压力测试、性能监视器、错误计数器或调试技术可以帮助确定根本原因? 有没有人遇到过这样的情况:DDR验证结果显示裕量极佳,但后来在生产应用中却出现了内存损坏或不稳定的情况? 非常感谢您能提供任何关于其他诊断方法、硬件检查或软件调试方法的指导。 谢谢! QorIQ T1 设备 Re: QorIQ T1022 DDR Validation Suite Passes with Good Margin, but Memory Corruption Seen in Applicat 你好, QCVS DDRv 工具通过 JTAG 从单个内核使用顺序、确定性访问模式来测试 DDR 时序裕量(写入均衡、读/写居中、时钟调整)。它不进行锻炼: 多主/多核并发访问 — T1022 具有两个 e5500 内核以及 DPAA(数据路径加速架构),帧管理器、队列管理器和 DMA 引擎同时争用 DDR 总线。只有在实际流量下才会出现由竞争引起的时序违规。 缓存一致性压力 — 涉及缓存刷新、失效和一致性 DMA 传输的应用程序工作负载会创建验证套件永远不会生成的访问模式。 散热和电源变化——在室温下轻负载下测量的 DDR 裕量,在 SoC 满负荷运行时,AVDD_DDR 电源在负载下下降时,可能会显著降低。 DQ 映射错误 — 如果 DQ_MAPn 寄存器不正确,控制器可能仍然会通过验证(使用已知的训练模式),但在实际应用流量下会损坏数据。这是T1022特有的一个已记录的问题。 边缘单比特 ECC 错误 — 验证套件可能不会累积足够的交易来触发 SBE 阈值报告,而运行数小时的实际应用程序会默默地累积这些错误。 DQ映射错误配置 DQ_MAPn 寄存器提供 动态随机存取存储器(DRAM) DQ 信号到控制器的映射。如果这些是错误的,控制器就无法正确解释训练模式,并且在实际工作负载下会发生数据损坏。NXP 已在 T1022 设计中证实了这一点:清除所有 DQn_MAP 寄存器(对于 1:1 映射设置为 0)是建议的诊断步骤。 内存排序/流水线效应(PowerPC e5500) e5500 核心的内存顺序细节有据可查。写入操作可能无法在后续读取操作之前完全提交到 DDR,尤其是在没有显式 msync/isync 屏障的情况下。恩智浦的应用团队已确认: “在错误注入被禁用之前,写入操作可能尚未完全提交到内存。随后的读取操作可能会命中缓存或流水线,而不会立即触发 ECC 逻辑。”应用程序代码中缺少 DMA 设置或共享内存结构周围的屏障,可能会导致表面上的损坏,而这实际上是一致性排序问题。 ECC单比特错误累积 T1022 DDR 控制器支持 ECC。单比特错误 (SBE) 由硬件默默纠正,但计入 ERR_SBE[SBEC]。如果 SBE 计数器超过阈值 ERR_SBE[SBET],则会产生严重中断。在验证流量较小的情况下,永远不会达到此阈值。在实际应用中,累积的 SBE 最终可能会变成无法纠正的多位错误 (MBE),这是致命的——数据无法恢复。 多位ECC错误表现为应用程序崩溃 NXP 已记录了 QorIQ 平台(P2020、T1042)上的案例,其中应用程序崩溃(例如,lwz 指令在看似有效的地址上发生故障)可追溯到 DDR 中的 MBE 事件。崩溃不是软件错误——而是 e5500 内核从 DDR 控制器接收到损坏的数据,并引发 IVOR1 机器检查异常。重要的是,即使内存区域被缓存抑制,MCSR 寄存器仍然显示 0xA000(不可纠正的 L1 缓存/标记错误),因为 DDR 控制器会发出一个损坏数据信号,该信号被内核识别为 L1 错误。 将您的电路板设计与以下内容进行交叉核对: AN3940 — DDR3 同步动态随机存取存储器(SDRAM) 内存接口的硬件和布局设计考虑因素 AN5097 — DDR4 同步动态随机存取存储器\\(SDRAM\\) 内存接口的硬件和布局设计考虑因素 AN4039 — PowerQUICC 和 QorIQ DDR3 SDRAM 控制器寄存器设置注意事项 请特别注意:AVDD_DDR 电源噪声和去耦、DDR 复位信号路由(HRESET_B 到 动态随机存取存储器(DRAM) RESET)以及终端电阻值。 此致
記事全体を表示
S32K3 FS26 新しいWDG期間が動作しません こんにちは、 私のボードでは、電源投入リセット後、FS26ウォッチドッグ周期を次のように設定します。 無限 初期化中。その後、デバッグモードを終了してノーマルモードに入ります( SBC_FS26_FS_STATES_ADDR は 0xB )。 その後、ウォッチドッグ期間を次のように変更します。 64ミリ秒 (スクリーンショットに示されているように)ウォッチドッグの更新(フィード)を1回実行し、戻り値が成功を示します。 WD_RFR_CNT 1ずつ増加し、 SBC_FS26_FS_WDW_DURATION_ADDR 与える 0xB0CD は、期間が 64 ms に正常に更新されたことを確認します。 しかし、この時点以降に番犬に餌を与えるのをやめると、 エラーやリセットは発生しません。 対照的に、ウォッチドッグ周期を64msに設定すると 初期化中 デバッグモードを終了した後、ウォッチドッグにフィードしない する 想定どおりリセットが発生します。 レジスタへの書き込みとリフレッシュの両方が成功しているにもかかわらず、ノーマルモードで周期を無限から64msに変更した場合、ウォッチドッグが有効にならないのはなぜですか? Jason22_0-1785918605528.pngJason22_0-1785918605528.pngJason22_0-1785918605528.pngJason22_0-1785918605528.png S32K344 RTD7.0.0 FS26 6.0.0 S32DS3.6.4 EB30.0 BR、 ジェイソン Re: S32K3 FS26 new WDG period not work こんにちは、 おお!返信時にアカウントを変えるのを忘れていました。Jason07は私の別のアカウントです。 BR、 ジェイソン Re: S32K3 FS26 new WDG period not work こんにちは、 ご返信いただき、誠にありがとうございます。 ウォッチ ドッグの期間をこう設定した理由は 初期 化中の無限 とは、ドライバーコードによれば、特定の操作は周期が無限である場合にのみ行われることを意味します。例えば、 Sbc_fs26_InitDevice() 関数の実行中にINIT_FSを閉じ たり、 故障エラーカウンターを消 すために Sbc_fs26_WdRefresh inside Sbc_fs26_ClearFaultErrorCounter を呼び出し たりします。 Jason07_1-1785986004068.pngJason07_1-1785986004068.pngJason07_1-1785986004068.pngJason07_1-1785986004068.png Jason07_2-1785986074130.pngJason07_2-1785986074130.pngJason07_2-1785986074130.pngJason07_2-1785986074130.png 期間を有限値に設定すると、 Sbc_fs26_WaitFailsafeRelease は Sbc_fs26_FsxbRelease 内で E_NOT_OK を返し、FS26 は FS_STATES_FS0B_ASSERT 状態、移行できない FS_STATES_NORMAL_FS 。 Jason07_0-1785985959468.pngJason07_0-1785985959468.pngJason07_0-1785985959468.pngJason07_0-1785985959468.png BR、 ジェイソン Re: S32K3 FS26 new WDG period not work こんにちは、 INIT_FSが閉じられた際にウォッチドッグが無効化されたため、ウォッチドッグはアクティブになりません。 WDW_PERIOD[3:0] = 0000 に設定すると、無限に開くウィンドウが選択されます。FS26ウォッチドッグ仕様によると、ウォッチドッグウィンドウは初期化フェーズ中のみ無効化でき、無効化は初期化フェーズが閉じられた時点で有効となります。このように無効化されたウォッチドッグは、有限値をFS_WDW_DURATIONに書き込むことでNORMALモードで有効化することはできません。 レジスタの読み取りが成功したことで、新しいWDW_PERIODフィールドが書き込まれたことが確認され、WD_RFR_CNTの値がインクリメントされたことで、更新が受け入れられたことが確認できます。これらの観測結果は、ウォッチドッグタイムアウト監視が再び有効になったことを示すものではありません。 ウォッチドッグタイマーが初期化時に有限期間で有効化されている場合、実行時における期間変更がサポートされます。したがって、長い初期化間隔が必要な場合は、INIT_FS 中に有限のウォッチドッグ期間を設定してください。たとえば、最大有限期間を 1024 ms に設定してください。ノーマルモードに入ると、周期を64msに変更できます。新しい有限期間は、次回の監視システム更新後に有効になります。 この動作は、初期化時に64msの設定時にリセットが起こる理由も説明しています。この場合、INIT_FSが閉じるとウォッチドッグが有効化されます。 petervlna_0-1785930476258.pngpetervlna_0-1785930476258.pngpetervlna_0-1785930476258.pngpetervlna_0-1785930476258.png セーフティの観点から、ウォッチドッグ無効化で無限状態に到達します。比較はハードウェアにあり、フラグはマッチ中に必ず上がるからです。 よろしくお願いいたします。 ピーター Re: S32K3 FS26 new WDG period not work こんにちは、 観測された動作に基づくと、NORMAL_FSでWDW_PERIODをInfinite Open Windowから64 msに変更した後、FS26ウォッチドッグ監視が開始されないようです。 レジスタへの書き込みは、読み出し値(0xB0CD)によって確認され、WD_RFR_CNTのインクリメントによって示されるように、ウォッチドッグのリフレッシュコマンドは引き続き受け入れられます。しかし、更新が停止された後にウォッチドッグのタイムアウト反応が全く見られないことから、ウォッチドッグ監視自体がアクティブではないことがわかる。 ウォッチドッグ期間が「無限オープンウィンドウ」に設定されている場合、Sbc_fs26_NormalFSSequence() は即時ウォッチドッグ更新を発行して INIT_FS を閉じます。同様に、Sbc_fs26_ClearFaultErrorCounter() は、連続したウォッチドッグのリフレッシュを使用して障害エラーカウンタをクリアします。これは、無限モードではウォッチドッグウィンドウのタイミング制限がないためです。 有限のウォッチドッグ期間を設定すると、ドライバは異なる経路をたどります。ウォッチドッグの更新は有効なウォッチドッグウィンドウと同期されなければならず、ドライバーは連続した即時リフレッシュの代わりにウォッチドッグタイミング機構(pfWdgNotification、タイマー同期、Sbc_fs26_TimeWaitClearFault())を使用します。 petervlna_0-1786002507583.pngpetervlna_0-1786002507583.pngpetervlna_0-1786002507583.pngpetervlna_0-1786002507583.png Re: S32K3 FS26 new WDG period not work こんにちは、@Jason22 この問題は解決できましたか? Sbc_fs26_InitDevice の呼び出し後、 FS26 を FS0B_ASSERT 状態から NORMAL_FS 状態に正常に移行できましたか? ありがとう。 Re: S32K3 FS26 new WDG period not work ご回答ありがとうございます。 Re: S32K3 FS26 new WDG period not work Hello@Djuric ノーマルモードは、ウォッチドッグ周期が無限大に初期化された場合にのみ入ることができます。ウォッチドッグ周期の初期値が有限の場合、通常モードには入ることができません。
記事全体を表示
R45 MIPICSI2 BUFFOVF ERR Dear, We use R45 MIPI to receive data from other chip mipi, but now R45 will report a buffove error after receiving data for a period of time. The MIPI sending rate is 600M, and the R45 receiving rate is also 600M. The R45 Reference manual describes buffovf errors as follows:   evalin_1-1729739919559.pngevalin_1-1729739919559.png Under what circumstances will R45 CSI2 report this error?Thanks. Re: R45 MIPICSI2 BUFFOVF ERR Hi, Peter @petervlna      Now our team are using NXP S32R45 S32R45 , we encountered the same error too. We transmit ADC data to R45 CSI2 interface (sender is other chip). Sometimes the 0x80000 error code will persist.  ( ADC data from MIPI to SRAM, and then save to DDR memory, the ADC capture is always running "background"(2MB data in 12ms), also SPT processing is in foreground, intermediate data saved to Any suggestions? Thanks! Re: R45 MIPICSI2 BUFFOVF ERR Hello, As manual express in the case that internal buffer is full. Make sure you empty/transfer data before it is full and overflow happen. Maybe your DMA or core triggered data transfer is too slow. Best regards, Peter
記事全体を表示
[IMX8MQ]GPU hang and cannot be recovery We have a custom board based on the IMX8MQ which runs a web-based UI.  In our test scenario, the issue can be reproduced in roughly two to three hours. When the problem occurs, a flood of GPU‑related error logs are generated, after which the entire UI freezes. Other kernel‑level functions remain usable. We have implemented GPU recovery measures, yet they fail to restore normal GPU operation. A full device reboot is the only workaround. OS: Android 11.0.0_2.0.0 (Linux 5.10.9 kernel) Can you please help us in providing a way to either: 1. Fix this issue 2. Recover the GPU Re: [IMX8MQ]GPU hang and cannot be recovery The most practical fix path is to move off Android 11.0.0_2.0.0 / Linux 5.10.9 and test at least Android 11.0.0_2.2.0, preferably 11.0.0_2.6.0 if you must stay on Android 11. NXP’s Android release page shows 11.0.0_2.0.0 uses Linux 5.10.9, while later Android 11 drops use newer BSPs: 11.0.0_2.2.0 uses Linux 5.10.35, 11.0.0_2.4.0 uses Linux 5.10.52, and 11.0.0_2.6.0 uses Linux 5.10.72 for i.MX 8M Quad EVK images . I also found an NXP community trace stating that an RD GPU patch fixed a similar Android 11 issue in Android 11.0.0_2.2.0, and that it was a “major patch associated with GPU” later carried into Android 11/12 . For recovery: I would not rely on a software-only GPU reset once the Vivante/galcore GPU is hard-hung. The evidence I found shows galcore can attempt “GPU hang, automatic recovery” and report “recovery done,” but the same trace then continues into an AXI BUS ERROR GPU state dump . Another report notes that the reset_gpu path did nothing because there was “no registered reset control” . In practice, if galcore automatic recovery fails, the robust field workaround is a controlled system reboot, not only restarting SurfaceFlinger/WebView or the UI process. Recommended action plan: Reproduce on NXP i.MX8MQ EVK or NXP demo image if possible. If the issue appears only on the custom board, prioritize board-port differences: DDR timing/training, GPU power rail behavior, thermal, and device-tree memory carveouts. NXP guidance for similar i.MX8MQ custom-board GPU problems is to reproduce on the reference board with NXP demo images; if the failure is custom-board-only, rerun DDR tests and rebuild with updated LPDDR4 coefficients . Update BSP / GPU driver stack. Your release is Android 11.0.0_2.0.0 with Linux 5.10.9. Later NXP Android 11 releases exist for i.MX8MQ, including 11.0.0_2.2.0, 2.4.0, and 2.6.0 . Because a GPU-related Android 11 fix is specifically associated with 11.0.0_2.2.0 , first test your workload on 11.0.0_2.2.0 or newer before investing in elaborate runtime recovery. Check DDR size and GPU-addressable memory placement. Several i.MX8M-family GPU hangs/errors are tied to memory configuration. One NXP thread says the Vivante GPU driver in a GA release did not support the 4 GB memory address range and that limiting the system to 3 GB with mem=3072MiB avoided the AXI BUS ERROR failure . Another note states the GPU can only handle physical memory in the 0x10000000 to 0x80000000 area and suggests assigning CMA memory into low memory to avoid addresses above that range . As a quick experiment, boot with reduced memory, for example mem=3072MiB , and see whether the 2–3 hour failure disappears. Review CMA / contiguous GPU memory. NXP support recommends increasing CMA to about 25% of total DDR for similar i.MX8M GPU crash scenarios . The Android guidance also mentions using galcore.contiguousSize=xxx on the kernel command line to set GPU memory size . If your UI uses WebView/WebGL/video/canvas heavily, CMA exhaustion or fragmentation over a few hours is a plausible cause. Try GPU driver boot-parameter mitigations. For debug, test: galcore.powerManagement=0 to disable GPU power management galcore.baseAddress=0x40000000 galcore.physSize=0 to disable GPU flat mapping galcore.contiguousSize=xxx to tune contiguous GPU memory These should be treated as isolation tests first, not final production changes, unless they clearly eliminate the failure. Verify GPU power rail and operating mode. The i.MX8MQ datasheet lists VDD_GPU nominal-mode operation as 0.81–1.05 V, typical 0.9 V, with maximum GPU frequency 800 MHz; overdrive mode is 0.9–1.05 V, typical 1.0 V, with maximum GPU frequency 1 GHz . Absolute maximum for VDD_GPU is 1.1 V, noted for overdrive . Do not simply raise the rail to 1.1 V as a “fix”; instead, confirm the actual rail, ripple, droop during UI/GPU load, PMIC sequencing, and whether your GPU frequency/OPP matches the configured voltage. Use reboot as the production recovery fallback. You can still attempt a less disruptive recovery sequence — stop UI app/WebView, stop SurfaceFlinger, unload/reload galcore if built as a module — but the documented module operation is only normal insmod / rmmod handling , not guaranteed recovery from a wedged hardware state. If the kernel is alive but GPU logs flood and galcore recovery fails, trigger a controlled reboot from a watchdog/health monitor. Minimal triage matrix: Test Expected interpretation Run same test on NXP 11.0.0_2.2.0+ image If fixed, root cause is likely already addressed by later GPU/BSP patches. Boot with mem=3072MiB If fixed, suspect 4 GB / high physical address / GPU memory placement issue. Increase/relocate CMA into low memory If fixed, suspect GPU contiguous-memory allocation/addressing. Add galcore.powerManagement=0 If fixed, suspect GPU power-management transition/clock/rail interaction. Measure VDD_GPU during failure window If droop/ripple correlates, fix PMIC/rail/OPP configuration. Reproduce on EVK If EVK is stable, focus on custom board DDR, power, thermal, and device tree.
記事全体を表示
NXPコード署名ツール(CST)のFIPS 140-3レベル3準拠 NXPチームの皆様、こんにちは。 現在、セキュアブートの実装、およびイメージ署名に使用する鍵と証明書の生成・管理には、NXPコード署名ツール(CST)を使用しています。 製品セキュリティ要件の一環として、CSTベースのコード署名プロセスのFIPS 140-3レベル3準拠を理解する必要があります。 以下の点を明確にしていただけますか? 1.NXPコード署名ツール(CST)自体は、FIPS 140-3に準拠しているか、またはFIPS 140-3レベル3の要件について検証済みですか? もしそうであれば、関連する認証、検証の詳細、または準拠を裏付ける公式のNXP文書を共有していただけると助かります。 ありがとう Re: FIPS 140-3 Level 3 Compliance of NXP Code Signing Tool (CST) CSTはNXPのコード署名ツールとして文書化されており、FIPS 140-3レベル3の認証を受けた暗号モジュールとしては文書化されていません。
記事全体を表示