Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
CLRC66301B 掉电模式仍消耗 2 mA 而不是 nA 您好,恩智浦社区 我正在使用 CLRC66301B NFC 读卡器IC 并尝试通过将 PDOWN 引脚设为高电平来激活掉电模式 (3.3)V),详见数据手册。但是,电流消耗保持在2 mA,而数据表显示掉电时电流消耗应在8 nA至40 nA之间。 设置详情: PDOWN 引脚:3.3 V(恒定高电平) VDDs:VDD(TX)、VDD(AUX)、VDD(MCU)电压均为 3.3 V 接口:I²C(测试期间空闲) XTAL:连接 27.12 MHz 晶体 当前测量期间无通信或活动 测量电流: ~2 mA 问题 1.在断言 PDOWN 之前是否需要对寄存器进行配置? 2。IRQ、XTAL、IFSEL 或其他 GPIO 能否阻止进入真正的掉电模式? 3.PDOWN 是否需要使用 VDD 或 RESET 进行额外的定时或排序? 如有任何见解或建议,我们将不胜感激。 谢谢! 乌玛桑卡尔 NFC 控制器解决方案 Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 您好, 当您提到当 SDA 和 SCL 物理断开时电流消耗会降低时,是指您移除了该引脚上的所有连接(同时移除主机 MCU 和上拉电阻器),还是指这些线路仅与主机 MCU 断开? 另外,能否请您描述一下测量所用的方法、设备和测试点? Eduardo。 Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 亲爱的恩智浦团队 我使用带有 CLRC66303B 芯片的官方 CLEV6630ARD 板进行了掉电电流测试。只有在进行任何 I²C 通信之前物理断开 SDA 和 SCL 时,电流才会达到 ~40 nA。如果使用一次 I²C,即使将 PDOWN 设为高电平,电流也会保持在 2 mA 以上。 请说明在进入 PDOWN 之前,I²C 线路应该做些什么?具体来说 在断言 PDOWN 之前,MCU 是否应将 SDA 和 SCL 设置为高阻抗(输入,无拉)? 之前的任何 I²C 通信是否会阻止芯片进入真正的硬掉电? 谢谢! Follow-Up: CLRC66303 – High Current in Hard Power-Down Mode (CLEV6630ARD-Based Design) 亲爱的恩智浦团队 我之前曾就 CLRC66301HN 的硬掉电电流提出过问题,你的回复建议迁移到 CLRC663 Plus 系列 (CLRC66303)。此后我改用 CLRC66303B,使用基于 CLEV6630ARD 参考设计的定制板,我想继续提供最新的测试结果。 你之前的回复侧重于 LPCD 行为和 AN11783,但这个问题仅涉及通过 PDOWN 引脚进行硬掉电,没有RF场或 LPCD 处于活动状态。 掉电电流测量 (CLRC66303B): > 当 PDOWN 处于低电平时(芯片处于活动状态,RF场 开启):~100 mA >当 PDOWN 为高电平且存在 I²C 上拉时:~1.2 mA >当 PDOWN 为高且 I²C 线路被驱动为低时: ~6.6 mA >当 PDOWN 为高电平且 I²C 线路在使用前已物理断开时:~40 nA 只有在进行任何 I²C 通信之前物理断开 SDA 和 SCL 连接时,芯片才会在 PDOWN 模式下消耗 ~40 nA 电流。如果只使用一次 I²C,则即使在 PDOWN 钳位高电平之后,电流仍保持高电平。 硬件设置摘要: 芯片:CLRC66303B,I²C 模式。 微控制器:TI CC2652R7,100 kHz I²C 电压:3.3 V 调节 上拉:SDA/SCL 上 4.7 kΩ 至 3.3 V 未使用的引脚:按照数据表拉动 未启用射频或 LPCD 功能 方案设计:基于 CLEV6630ARD(附后) 需要澄清的问题: 1.在 PDOWN 模式期间,SDA/SCL 是否内部偏置? 2。即使后来将PDOWN设置为高电平,之前的任何I²C活动是否会阻止真正的掉电? 3.在断言 PDOWN 之前,是否有必要将 MCU I²C 引脚设置为 Hi-Z(输入,无拉)? 4.是否有恩智浦推荐的方法,可在硬 PDOWN 模式下可靠地实现<100 nA,而无需物理断开 I²C 线路? 我们的目标是确保电池的使用寿命,并且必须实现数据手册中规定的低功耗性能。如果有任何专门关于 PDOWN 行为和 I²C 漏电流的指导或文档,我们将不胜感激。 IMG_20250715_182911.jpg 附上示意图以供参考。 顺祝商祺! Umasankar C Re: CLRC66301B Power-Down Mode Still Consumes 2 mA Instead of nA 你好@Umasankarc 希望你一切顺利。 我知道你使用的是基于 CLRC66301HN(非增强版)的自定义板,对吗?如果是,请考虑我们建议改用 CLRC663 plus 系列 (CLRC66303)。 引脚 PDOWN 的高电平应启用硬掉电。数据手册中描述的掉电电流 (Ipd) 相当于 CLRC663 芯片中所有电源电流的总和;但是,嵌入在板中的外部元器件可能会消耗额外的功率。 AN11783 CLRC663 plus《电源卡检测》第 3.4 节中描述了一些低功耗设计建议。 Eduardo。
記事全体を表示
SE050 初始配置 您好, 我正在尝试与 EdgeLock se050 芯片通信。我正在使用恩智浦的 “Plug & Trust 中间件迷你代码包”,我已经能够编译和执行他们提供的示例。我可以读取芯片的版本,但当我尝试读取一个对象时,会出现错误,并且在准备摘要符号之前的 ht ex_sss_entry 中,示例无法继续。 我的假设是,I2C 通信是正确的,但认证可能不正确,这就是我无法访问 se050 对象的原因。我想问一下,如果你们对这个芯片进行了首次配置,你们使用的是哪种验证方法,是否有我们可以使用的凭证。 亲切的问候, Iván Re: se050 initial configuration 看来硬件连接没有启用。也许您应该检查 I2C 连接并启用 GPIO。您可以参考附带 Raspberry Pi 的 EdgeLock SE05x 快速入门指南获取帮助。您使用的是哪种硬件平台? Re: se050 initial configuration 你好,我是@ivangonzalezcano、 感谢您提供的信息!我刚刚回复了您关于同一主题的私人信件,但如果您更愿意在这里讨论,我也没有意见。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: se050 initial configuration 嗨,@Kan_Li、 我使用的是 SE050F 变体。 谢谢。 Re: se050 initial configuration 你好,我是@ivangonzalezcano、 您用来玩迷你 MW 的 SE050 变体是什么? 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 -------------------------------------------------------------------------------
記事全体を表示
EBtresos 激活码 您好, 我试图在 AUTOSAR 中使用 EBtresos,但未能激活。 激活代码 :B25C-AEB-4319-BAB1 ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过允许的最大数量 (0)。 与 FlexNet Operations Server 的连接失败。 因此,我需要另一个激活代码才能使用 EBtresos。 谢谢! Re: EBtresos activate code 不便之处,敬请原谅。 激活码已更新,请点击S32K3 标准软件-> Automotive SW - EB tresos Studio / AUTOSAR 配置工具 -> EB tresos Studio 29.0.0 Re: EBtresos activate code 您好, 单击 "升级 " 按钮。 KyrieLeng_1-1752732856208.png Re: EBtresos activate code 很抱歉,最近几天有几位客户报告了这个问题,称激活代码 :B25C-AEBB-4319-BAB1 不可用。 我的同事还没有回复我,所以请暂时点击 "升级"按钮。 Re: EBtresos activate code 我也有同样的问题 Re: EBtresos activate code HI 我暂时无法使用这个激活码:B25C-AEBB-4319-BAB1 我已经向我的同事报告了这个问题。 您还有其他 2025 年到期的激活码吗? 如果您使用的激活码将于 2025 年到期,那么请 点击 EB 客户端许可证管理员中的 "升级 "按钮来延长有效期。 hit the UPGRADE button in the EB Client License Administrator to extend the expiration date.png 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。 -------------------------------------------------------------------------------
記事全体を表示
S32K144 で自動 CAN バスオフ回復を無効にするにはどうすればいいですか? こんにちは、みんな! S32K144CAN バスオフをオフにした後、自動回復を無効にするにはどうすればよいですか? バスオフをオフにした後、手動で回復する必要があります。 Re: S32K144 怎么关闭CAN busoff自动恢复? こんにちは@pidcy このバージョンにはチェックするオプションがありません。チェックするオプションは S32 DS V3.X バージョンに用意されています。 レジスタに直接書き込むことで、BOFFREC をオフにすることができます。 Re: S32K144 怎么关闭CAN busoff自动恢复? 私は IDE バージョン 2.2 を使用していますが、使用しているバージョンは何ですか? Re: S32K144 怎么关闭CAN busoff自动恢复? こんにちは@pidcy 私の IDE はすべて、自動回復を有効または無効にするオプションを提供しています。また、レジスタ操作を通じて直接自動回復を無効にすることもできます。 例: CAN0 -> CTRL1 |= 0x40 ;//BOFFREC = 1
記事全体を表示
如何在 S32K144 中使用 WDOG 的备份 RESET。 有人在丢失总线时钟的 MCU 中成功使用 备份RESET 功能吗。 如果是这样,你能在评论中发布你的想法或程序吗。 非常感谢,我相信有人已经重新爱上了这个功能。 Re: How to use the Backup Reset of WDOG in S32K144. 你好@王亮 你能澄清一下你所说的 " MCU 没有正确 RESET 是什么意思吗 "?例如,按下 RESET 按钮后,程序是否无法启动、挂起或出现意外行为? 为了更好地了解问题,首先,在触发信号 RESET 之前,请确保所有系统标志和监视程序计时器都已正确清除。另外,尝试通过断开并重新连接板来完成整个电源循环,而不仅仅是按下RESET按钮。这样可以确保所有内部状态和外设都完全重新初始化,如果MCU在多次RESET后陷入未定义状态,这会有所帮助。 Re: How to use the Backup Reset of WDOG in S32K144. Hi@VaneB、 你是最棒的。我会成为你的粉丝。今天我从 SPLL 源代码设置了 bus_CLK,然后我在 WDOG 的 ISR 中关闭了 SPLL。成功 RESET 了 MCU,这样程序就可以运行到代码的开头。 但是有一些问题。并非所有的备份都能让 MCU RESET。因为在 MCU 通过备份功能 RESET 之后,我按下 EVB 上的 RESET 按钮使程序从一开始就重新运行。一次没问题,两次都可以,但是,我第三次按下 RESET 按钮,单片机没有正确 RESET。所以拉动,你知道原因吗? 为了帮助更多的人使用备份功能,我在评论中发布了我的操作步骤。 首先,将 WDOG 设置为启用 INT 并连接 LPO_CLK。 其次,从 SPLL 源设置 Bus_clk。重要的是,不要让 HSRUN 的时钟比 RUN 的时钟快三倍。 最后,将 SCG->SOSCCSR&= ~(0x1<< 0) ; 放入 WDOG_ISR。 最后但并非最不重要的一点是,记得在 " main " 的开头添加大量的延迟时间,否则,如果备份失败,你将无法通过 J-Link 连接到 MCU。 以上就是全部内容,希望能对您有所帮助。 Re: How to use the Backup Reset of WDOG in S32K144. 你好@王亮 对不起,我刚才没有表达清楚。你说得对,不能禁用总线时钟。不过,您可以使用 PLL 作为系统时钟源,然后禁用 PLL 来模拟故障条件进行测试。 Re: How to use the Backup Reset of WDOG in S32K144. 嗨,@VaneB. 我想用来控制相关时钟的寄存器可能意味着 PCC 寄存器。但我已经读过关于 PCC 的手册。告诉我,PCC 无法控制与 WDOG 连接的总线时钟。所以我无法用你的方法完成它。 Re: How to use the Backup Reset of WDOG in S32K144. 你好@王亮 要模拟故障状况和评估看门狗响应,一种方法可能是通过软件禁用总线时钟。这可以通过修改相关的时钟控制寄存器来停止通信总线的时钟信号来实现。 Re: How to use the Backup Reset of WDOG in S32K144. 你好,早上好。 我曾经使用过不是计数器总线时钟的时钟源并启用了中断。但是我不知道如何在我的程序运行时使用软件方法使总线时钟失效,这样微控制器就没有使用备份功能。 Re: How to use the Backup Reset of WDOG in S32K144. 你好@王亮 正如 S32K1xx 系列参考手册中所述,为确保备份 RESET 功能的正常运行,必须使用不是计数器总线时钟的时钟源并启用中断。 如果总线时钟出现故障,系统将无法再监测计数器。那是备份 RESET 开始的时候。它分别监测计数器,如果发现两次溢出,它将自动 RESET 系统以恢复。 BR、VaneB
記事全体を表示
生成 LIN 堆栈配置文件 您好! 我正在尝试在 MCUXpresso IDE 中为没有专用的演示版的板创建一个 LIN 堆栈应用程序。我看到其他板上有一些 lin_cfg.c/.h 文件已经包含在 " source " 目录中,但我不知道如何生成或配置它们。MCUXpresso 中是否集成了与 S32DS 中类似的工具?或者,原始演示中的文件是如何创建的? 非常感谢 Re: LIN stack configuration file generation 嗨,@SarMol、 非常感谢您关注我们的产品并使用我们的社区。 请告诉我您使用的是哪种恩智浦芯片。 顺祝商祺! MayLiu
記事全体を表示
Zephyr 支持村田 2FR 型模块 你好 我在我的定制板上使用村田2FR型模块。另一方面,我的大部分固件都是在 FRDM_RW612 板上开发的。 现在我正在尝试将我当前的固件(针对 frdm_rw612)移植到我的自定义板上。因为我很难做到这一点,所以我从简单的 hello-world Zephyr 示例开始。 我正在尝试创建自己的板配置。FCB 会有所不同,因为嵌入式 或非 SPI 闪存与 FRDW_RW612 不同。Murata 给了我 2 个附件文件,用于配置 FreeRTOS 闪存。我尝试使用它们并替换 MX25U51245GZ4I00_FCB.c 然后我使用以下命令(也由村田提供)通过 ISP 刷新我的板: set comport=COM9 set timeout=-t 60000 if [%comport%]==[] (set /p "comport=Enter COM Port (if COM port 7 then enter COM7): ") blhost.exe -p %comport% %timeout% -- write-memory 0x20001000 fcb_WIN.bin blhost.exe -p %comport% %timeout% -- configure-memory 0x9 0x20001000 blhost.exe -p %comport% %timeout% -- get-property 0x19 0x9 blhost.exe -p %comport% %timeout% -- flash-erase-region 0x08000000 0x1000 blhost.exe -p %comport% %timeout% -- fill-memory 0x20001000 0x04 0xf000000f blhost.exe -p %comport% %timeout% -- configure-memory 0x9 0x20001000 blhost.exe -p %comport% %timeout% -- flash-erase-region 0x08000000 0x10000 blhost.exe -p %comport% %timeout% -- write-memory 0x08000400 sdk20-app-wb.bin sdk20-app-wb.bin 是他们的 hello world 名称,我将用我的固件文件名替换该文件名。(我还更新了之前的闪存擦除区域),根据我的固件大小删除了足够的字节。 最终,当我刷新板时,它可以使用 Murata 的原始 sdk20-app-wb.bin(板 RESET 并在 USART 上写入 " hello-world++ "),但它不适用于我的 zerphy Hello World 示例(MCU 总是在 ISP 模式下重启)。 我做错了什么?你有这个村田模块的板配置吗?我为以太网 phy 和 flexcomm3 usart 使用了相同的引脚(与 FRDM_RW612 相同)。你有与这个村田模块相匹配的板配置吗? 谢谢! 亚瑟 Re: Murata Type 2FR module support by Zephyr 你好@_Arthur_,希望你一切都好。 你能否确认一下你是否要将自定义板添加到你的 Zephyr 项目中,以及你构建的应用程序是否适用于 frdm rw612? 对于任何基于 SoC 的定制板,不仅需要调整内存 FCB,还需要调整设备树、yaml 文件和 CMakeList。请参阅 Zephyr 板移植指南,获取更多具体建议,为您的板添加支持 Zephyr 项目。 另外,请确保在 CMakeList 中更改了板路径中对您的 FCB 的参考(对于 FRDM-RW612,此路径位于 boards/nxp/frdm_rw612)。 RomanVR_1-1760993952086.png 如果这些信息有用,请告诉我。
記事全体を表示
S32K142 の ECC を使用して SRAM のシングルビット エラーを修正するにはどうすればよいですか? SRAMでシングルビットエラーが発生しました。「AN12522 S32K1xx ECCエラー処理」ドキュメントには、エラー処理の3つの方法が紹介されています。シングルビットエラーの修正は自動で行われるのでしょうか?3つの処理方法はどのように設定すればよいでしょうか?ERMはエラー修正イベントの報告のみを行うのでしょうか?それとも、ERMが有効になっていなくてもシングルビットエラーを修正できるのでしょうか? S32K14x および S32K11x デバイスは、単一ビット エラーを同じ方法で処理します。エラー報告モジュール (ERM) は、(有効な場合) 割り込みを生成して、CR0[ESCIEx] ビットを 1 に設定することで有効にできる単一ビット訂正イベントを通知できます。イベントが発生した後にエラーを処理する方法は 3 つあります。 1.通常の MCU 動作: MCU は障害を検出し (障害検出時間)、それを修正します (障害反応時間)。この時点で、MCU は正常に動作し続けます。 2. 障害を管理するための適切な機能安全メカニズムを備えています。MCU は障害を検出し (障害検出時間)、それを修正します (障害反応時間)。この時点で、ソフトウェアは safe_state_system に切り替える必要があります (safe_state_system とは、人身傷害や健康被害が発生する可能性が不当に低い動作モードです)。safe_state_system はユーザーが定義する必要があります。 3. 適切な機能安全メカニズムがない場合: MCU は障害を検出し (障害検出時間)、その後修正しますが、ユーザーにはエラーが発生したことが通知されません。フォールト トレランス時間間隔 (FTTI) が経過した後に危険が発生する可能性があります。 Re: S32K142 ECC如何更正SRAM单比特错误 こんにちは@minsky SRAM 読み取り操作中、ECC デコード ロジックが自動的に動作し、シングル ビット エラー訂正とマルチ ビット訂正不可能な ECC エラー検出を実現します。 複数ビットの訂正不可能なエラーが検出されると、2 サイクルの AHB バス エラー応答が生成され、AHB バスのデータ転送は終了しますが、ターゲット アドレスの SRAM データは変更されません。 https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247485836&idx=1&sn=c34d036624606761ad8f67c279251183&chksm=e9124d0ade65c41c2a4d9f4b9fcc7c73b58bd3575828f4afb590646e405aae163765f81da942&scene=21#wechat_redirect https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247485852&idx=1&sn=a696a936e3645843e555e02d4355f1c4&chksm=e9124d1ade65c40c20ac22924a6c3109ed11706fc346fdeeeee4488411a714515e3700006213&scene=21#wechat_redirect
記事全体を表示
PWMキャプチャのプリスケーラ設定に関する問題 タコの外部周波数をキャプチャするために PWM 入力を使用しています。 標準設定ではすべて正常に動作しますが、初期化中にプリスケーラを適用すると pwmConfig.プリスケール= kPWM_Prescale_Divide_64 ; または設定することで void PWM_SetClockMode CVAL2とCVAL3の値は常に0x00であり、カウンタはカウントしていない 私の信号の周波数は200Hzです Re: Problems Setting Prescaler for PWM capture こんにちは、 私も同じ問題に遭遇しました。 4 つの PWM ペリフェラルのいずれかのクロック パースケーラを kPWM_Prescale_Divide_1 以外の値で設定すると、選択した PWM ペリフェラルのカウンターはまったく動作しません。 私はimxrt1062プロセッサとMCUXpresso IDE v11.9.1を使用しています。 できるだけ早くサポートしていただければ幸いです。 以下は、PWM ペリフェラルを設定および初期化するコードの一部です。 静的void pwm_init ( void ) { pwm_config_t pwmConfig; pwm_input_capture_param_tキャプチャ設定; pwm_fault_param_t障害構成; /* PWMのデフォルト設定を読み取る */ PWM_GetDefaultConfig(&pwmConfig); pwmConfig.clockSource = kPWM_BusClock ;​ pwmConfig.prescale = kPWM_Prescale_Divide_2 ;​ pwmConfig.pairOperation = kPWM_Independent ;​ pwmConfig.initializationControl = kPWM_Initialize_LocalSync ;​ pwmConfig. reloadLogic = kPWM_ReloadImmediate ; pwmConfig. reloadSelect = kPWM_LocalReload ; pwmConfig. reloadFrequency = kPWM_LoadEveryOportunity ; pwmConfig.forceTrigger = kPWM_Force_LocalSync ;​ pwmConfig.enableDebugMode = true; PWM_Init(PWM1_BASEADDR、 kPWM_Module_3 、&pwmConfig); PWM_Init(PWM2_BASEADDR、 kPWM_Module_3 、&pwmConfig); PWM_Init(PWM3_BASEADDR、 kPWM_Module_1 、&pwmConfig); PWM_Init(PWM4_BASEADDR、 kPWM_Module_1 、&pwmConfig); // 障害構成 PWM_FaultDefaultConfig(&faultConfig); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* ワンショットポーリング用のPWMのキャプチャ入力を設定します */ キャプチャConfig.captureInputSel = true; キャプチャ構成。エッジ0 = kPWM_RiseAndFallEdge ; キャプチャーConfig.edge1 = kPWM_Disable ; キャプチャ設定。enableOneShotCapture = false; キャプチャ構成。edgeCompareValue = 1; PWM_SetupInputCapture(PWM1_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM2_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM3_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM4_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、&captureConfig); PWM_SetPwmLdok(PWM1_BASEADDR、 kPWM_Control_Module_3 、true); PWM_SetPwmLdok(PWM2_BASEADDR、 kPWM_Control_Module_3 、true); PWM_SetPwmLdok(PWM3_BASEADDR、 kPWM_Control_Module_1 、true); PWM_SetPwmLdok(PWM4_BASEADDR、 kPWM_Control_Module_1 、true); PWM_StartTimer(PWM1_BASEADDR、 kPWM_Control_Module_3 ); PWM_StartTimer(PWM2_BASEADDR、 kPWM_Control_Module_3 ); PWM_StartTimer(PWM3_BASEADDR、 kPWM_Control_Module_1 ); PWM_StartTimer(PWM4_BASEADDR、 kPWM_Control_Module_1 ); }   Problems Setting the Prescaler for PWM capture こんにちは。元の投稿者と同じ問題が発生しました。仕切りコードを削除したり、仕切り1に設定したりするとカウンターは正常に動作しますが、仕切り2以上に設定するとカウンターが停止します。原因は何でしょうか? void Capture_config(void) { pwm_input_capture_param_t pwm_input_capture; gpio_pin_config_t PWM_pin_config; //初始化输入捕获管脚 IOMUXC_SetPinMux(PWM2_PWMA03_IOMUXC, 0U); //设置外部引脚的复用功能 IOMUXC_SetPinConfig(PWM2_PWMA03_IOMUXC, PWMC_INPUT_PAD_CONFIG_DATA); //设置引脚的 pad 属性 PWM_pin_config.direction = kGPIO_DigitalInput; PWM_pin_config.interruptMode = kGPIO_NoIntmode; GPIO_PinInit(PWM2_PWMA03_GPIO, PWM2_PWMA03_GPIO_PIN, &PWM_pin_config); //初始化输入捕获配置参数 pwm_input_capture.captureInputSel = false; pwm_input_capture.edge0 = kPWM_RisingEdge; //pwm_input_capture.edge1 = kPWM_FallingEdge; pwm_input_capture.enableOneShotCapture = false; //pwm_input_capture.edgeCompareValue = 10; //当captureInputSel为FALSE时,此处设值无意义 pwm_input_capture.fifoWatermark = 0; PWM_SetupInputCapture(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_PwmA, &pwm_input_capture); //开启捕获中断 //set_IRQn_Priority(PWM2_3_IRQn,Group4_PreemptPriority_0, Group4_SubPriority_0);//设置中断优先级 //PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable| kPWM_CaptureA1InterruptEnable ); PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable ); EnableIRQ(PWM2_3_IRQn); } /** * @brief 初始化 PWM 配置参数 * @retval 无 */ void PWM_config(void) { pwm_config_t pwmConfig;//定义pwm 配置结构体 PWM_Deinit(PI_PWM_BASEADDR, kPWM_Module_3); /*设置AHB总线时钟和IP总线时钟*/ CLOCK_SetDiv(kCLOCK_IpgDiv, 0x3); /* Set IPG PODF to 3, divede by 4 */ /*设置pwm 错误输入为高电平,表示没有错误,只有当pwm 没有错误输入或者禁止错误检测才能正常输出pwm波*/ XBARA_Init(XBARA1); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault0); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault1); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault2); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault3); PWM_GetDefaultConfig(&pwmConfig); pwmConfig.reloadLogic = kPWM_ReloadPwmFullCycle; //新值在上一个pwm周期输出结束之后加载到缓冲寄存器中 pwmConfig.pairOperation = kPWM_Independent; // 工作在独立模式 pwmConfig.clockSource = kPWM_BusClock; pwmConfig.enableDebugMode = true; // 使能DebugMode pwmConfig.prescale = kPWM_Prescale_Divide_128; //1320000000/128/65535=16Hz=PWM最小频率 //初始化 PWM 并且判断初始化是否成功 if (PWM_Init(PI_PWM_BASEADDR, kPWM_Module_3, &pwmConfig) == kStatus_Fail) { PRINTF("PWM initialization failed\n"); } Capture_config(); PWM_SetPwmLdok(PI_PWM_BASEADDR,kPWM_Control_Module_3 , true); PWM_StartTimer(PI_PWM_BASEADDR, kPWM_Control_Module_3 ); } Re: Problems Setting Prescaler for PWM capture こんにちは@mexp2さん、 まず初めに、ご返答が遅くなりましたことをお詫び申し上げます。 念のため確認ですが、 kPWM_Prescale_Divide_128をどこに配置しているか教えてください。pwmConfig.prescale=kPWM_Prescale_Divide_128;と記述すると良いかもしれません。pwmConfig.pairOperation=kPWM_Independent の後;PWM_Init()の前。また、どのクロック ソースを使用していますか? 最後に、プリスケーラの値を 64 未満にしてみませんか? よろしくお願いいたします、ラウル。 Re: Problems Setting Prescaler for PWM capture imxRT1062をSDK v2.13.0で使用します。 /* Read the PWM default configuration */ PWM_GetDefaultConfig(&pwmConfig); pwmConfig.reloadLogic = kPWM_ReloadImmediate; pwmConfig.pairOperation = kPWM_Independent; pwmConfig.enableDebugMode = true; /* Init the pwm */ if( PWM_Init(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, &pwmConfig) == kStatus_Fail) { PRINTF("Can't initialize PWM\n"); return; } /* Configure the capture input of the PWM for one shot polling */ pwm_input_capture_param_t captureConfig; captureConfig.captureInputSel = false; captureConfig.edge0 = kPWM_RisingEdge; captureConfig.edge1 = kPWM_RisingEdge; captureConfig.enableOneShotCapture = true; PWM_SetupInputCapture(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, TACHOPUMP_SIGNAL, &captureConfig); PWM_SetPwmLdok(TACHOPUMP_PERIPHERAL, timerBitmask, true); PWM_StartTimer(TACHOPUMP_PERIPHERAL, timerBitmask); このコードではすべて期待通りに動作しますが、設定にプリスケーラを追加すると pwmConfig.prescale = kPWM_Prescale_Divide_128; カウンターはもうカウントしていない Re: Problems Setting Prescaler for PWM capture こんにちは@mexp2さん、 お元気でお過ごしでしょうか。 さらにデバッグするために使用する i.MX プロセッサを指定してください。 ありがとう、よろしく。 サンケト・パレック
記事全体を表示
使用矢量 CAN 接口在 CANOE 上测试与 s32k144 的 CAN 通信 你好我想借助矢量 CAN 接口测试使用 CANOE 的 s32k144 板的 CAN 通信。但不知道如何才能做到。如果您有任何支持或参考,欢迎您开始使用。 Re: Testing CAN communication with s32k144 on CANOE using vector CAN interface 你好,Julian AragonM,感谢您的回复。我可以使用矢量 CAN 接口在 CANOE 上查看 CAN 日志,方法是将 CAN 线一端直接连接到 s32k144 CAN 引脚& ,另一端连接到矢量提供的电缆上,矢量 CAN 接口不带终端电阻。 Re: Testing CAN communication with s32k144 on CANOE using vector CAN interface 你好,我是@Chandrakant、 你可以参考 AN5413:S32K1xx 系列食谱 ——应用笔记。第 2.9 和 2.10 节提供了一些配置 FlexCAN 的例程。 您也可以参考 RTD 示例,但请记住,最新代码包中的示例配置为 " loopback " 操作,这意味着不使用收发器。您必须为通信配置引脚,并将操作更改为"正常/用户模式" 。 有一份 HOWTO 列表:S32DS - HOWTO 列表 - NXP 社区,解释了如何从较新的 SW 安装和导入示例。 致以最诚挚的问候, Julián
記事全体を表示
s32g llce insmod llce_can.ko エラー 私は S32G399A チップを使用し、カーネルを手動でコンパイルし、LLCE ファームウェアとドライバーをルート ファイル システムに統合しましたが、下の画像に示すように、LLCE CAN ドライバーを手動でロードするときにエラーが発生しました。 これはファームウェアの互換性の問題でしょうか?それとも依存関係が不足していることが原因でしょうか? ご返信をお待ちしております! エンジニアの皆様 私は S 3 2 G 3 9 9 A チップを使用しており、カーネルを手動でコンパイルし、LLCE ファームウェアとドライバーをルート ファイル システムに統合し、LLCE CAN ドライバーを手動でロードしていますが、以下に示すようにエラーが発生しました。 ファームウェアの互換性の問題がありますか、それとも他の依存関係が不足していますか? ご返信をお待ちしております! liuchi_0-1753877704319.png Re: s32g llce insmod llce_can.ko err この問題は解決しました。カーネルイメージをLLCE関連ドライバすべてを対象にコンパイルされた統合版イメージに更新すると、正常にロードできるようになります。 Re: s32g llce insmod llce_can.ko err こんにちは ログから判断すると、llce_can.ko が依存する他のモジュールが事前にロードされていなかった可能性があります。BSPUM の以下のセクションを参照して、もう一度お試しください。 chenyin_h_0-1753933304930.png BR チェイン
記事全体を表示
NTAG5 Boost (NTA53321G0FTTZ) - NFC 在接通外部电源时停止工作 大家好, 我正在制作一个定制 PCB,其中包括NTAG5 Boost(零件编号 NTA53321G0FTTZ)。 我没有使用能量收集,而是通过电缆为板供电。 问题: 当板未通电时,我可以毫无问题地使用手机的 NFC 扫描、读取和写入 NTAG5。 只要我为板接上外部电源,NTAG5 就会完全从 NFC 中消失 ——它根本无法扫描、读取或被检测到。 立即关闭板使其可以再次扫描。 预期用例: 我想在I²C 主模式下使用 NTAG5(NFC 到 I²C 桥接器)。 从数据表中,我了解到仲裁器可以控制 NFC/I²C 访问,我想知道当 I²C 端处于活动状态时,它是否会阻止 NFC 字段访问。 我试过的 验证了我的布线 - SDA/SCL 线路是用 ~3.3 kΩ 上拉连接的。 未连接能量收集引脚。 尝试了不同的 CONFIG_1 设置(USE_CASE_CONF = I²C Master,PT_TRANSFER_DIR = NFC → I²C)。 确认配置值已正确写入。 检查了 ED/PWM0 引脚是否被故意驱动为低电平(但我不确定在我的情况下是否需要上拉)。 我怀疑: 可能是配置或默认开机设置问题。 可能是仲裁器或 ED 引脚状态在通电时阻塞了 NFC。 或者,NTAG5 默认为 I²C 从属行为,并 "等待 "I²C,实际上忽略了 NFC。 问题 有没有人见过类似的情况,即施加 VCC 时 NTAG5 停止响应 NFC? 上电后是否需要明确配置 ED/PWM0 引脚或仲裁器模式? ED 上没有上拉装置会导致这种情况吗? 在没有 MCU 主机控制 NTAG5 的情况下使用 I²C 主控模式时,有什么已知的问题吗? 如果有任何见解或经验,我将不胜感激--我已经在这个问题上纠结了一段时间。 谢谢您! 互联标签解决方案 接触式智能卡读卡器芯片 NFC 控制器解决方案 NFC 前端解决方案 NFC读卡器库 Re: NTAG5 Boost (NTA53321G0FTTZ) – NFC stops working when external power is applied 你好@eleng 由于您使用的是小型天线,主动通信模式 (NTAG 5 升压数据表第 8.2.2 节)。不过,这种配置要求为集成电路提供 Vcc 和 Vcc_tx。 请确保您提供的是 Vcc_tx,并遵循《NTAG 5 Boost 天线设计指南》中的建议。 NTAG 5 升压型天线设计指南. 由于这与您在内部票单中提交的主题相同,我们将在该票单中继续沟通。 Eduardo。
記事全体を表示
适用于 S32K 的独立组网 (SA) 恩智浦 GCC 工具链 我找到了下载工具链的位置。看来我想要的是: NXP_GCC11-4_eARMv7_gf703eb2-LINUX 但它说这是一个 .bin 文件但当我使用"bash file.bin" 或"chmod +x file.bin 运行它时;./file.bin"我收到以下错误信息。 为什么 Java 会参与其中?是否有这些工具的压缩包版本。GCC工具有一个 tarball,但我认为这不是改编自恩智浦的编译器(我需要它来版本 RTD)。 准备安装 从安装程序存档中提取安装资源... 为本系统环境配置安装程序... 无法从 PATH 环境变量中找到 Java 虚拟机。在 运行该程序之前,您必须安装一个虚拟机。
記事全体を表示
S32R47 IPCF v0.8.0 - UM API 规范与 Linux API 不同 亲爱的 AP 支持专家 在尝试使用 S32R47 IPCF v0.8.0 版本的 UM 用于: 通过 LLM(恩智浦的 Copilot)生成代码,用于 一个 S32R47/A53/Linux 用户空间应用程序 在轮询模式下 我遇到了 UM 中描述的 API 与 ipc-shm 模块中可用的 API 之间的差异: ipc_shm_is_channel_not_empty, ipc_shm_get_message_from_channel& ipc_shm_get_channel_type(GET_DATA_API)[第 7.32、7.33 节& 7.34,第 44 页]在 Linux 中不存在(参见:https://github.com/nxp-auto-linux/ipc-shm/blob/SW32R47_IPCF_0.8.0/ipc-shm.h#L162、 & c.f. 其他内核可用的 API : https://bitbucket.sw.nxp.com/projects/IPCF/repos/ipcf/browse/src/common/ipc-shm.h?at=refs%2Ftags% 2FSW32R47_IPCF_0.8.0#293) UM Sektion 7 API 中列出的错误代码在 Linux 上根本不存在。而不是使用 errno。 必须在 UM 中说明这两种分歧 我看到我们的内部存储库 1. 中的开发已经解决了这个问题(即GET_DATA_API将成为未来版本的一部分,从而消除了未来版本中的差异)。 对于 2:这种分歧是否经过深思熟虑?如果是,则必须在 UM 中提及。如果不行,也许可以放弃在 Linux 上使用 errno,以便在所有内核上使用完全相同的 api,尽管在 Linux 上使用 errno 更符合规范。另外,也可以尝试将所有非 Linux 系统使用的错误代码与 errno 统一起来,但这感觉很危险。 致以最崇高的敬意, Leonard Hübner IPCF Re: S32R47 IPCF v0.8.0 - UM API Spec diverges from Linux API 你好@leonard-huebner、 以下是有关您的询问的一些说明: 1.这将在 2026 年 3 月的下一个版本中推出。 2。未来版本的新用户手册将单独列出 RTOS 和 Linux 类型的章节。    因此,从下一个版本开始,这些问题将得到解决。 祝您愉快, Marius
記事全体を表示
将 Android 映像闪存到 i.MX 8M Mini EVK 时进度卡住 你好,我一直在尝试将 Android 9 安装到定制平板电脑中。使用的板是 i.MX 8M Mini EVK,我的前辈委托我在里面刷安卓 9。我想尽一切办法闪屏,但它总是卡在 [======= 100% ================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link 不再回复。有办法解决这个问题吗?谢谢。哦而且我还用了 UUU 作为刷新方法 其他信息:我不小心安装了错误的镜像后我的设备也陷入了启动循环中所以是的,但我仍然可以访问 SDP PS D:\platform-tools>.\uuu_imx_android_flash.bat -f imx8mm -tos -e 本脚本使用 uuu 1.2.135 版本验证,请与此版本保持一致。 支持 dtbo 支持 双插槽 生成行以闪存 u-boot-imx8mm-trusty.imx 到 bootloader0 的分区 生成行到闪存分区表。img 到 gpt 的分区 生成行到 dtbo_a 的分区 生成行到 dtbo_a 的分区 生成行到启动_a 的分区 生成行到闪存系统.img 到系统的分区 生成行到闪存系统的分区 _a 生成行到 flash vendor.img 到 vendor_a 的分区 生成行以 flash vbmeta-imx8mm.img 到 vbmeta_a 的分区 生成行将 dtbo-imx8mm.img 闪存到 dtbo_b 分区的行 生成到 flash 启动_b 分区的线路 生成到启动_b 分区的行 生成到 flash system_b 分区的行。img 到 vendor_b 的分区 生成行 flash vbmeta-imx8mm.img 到生成的分区,开始调用 vbmeta_b uuu 脚本生成的分区,开始调用 uuu 使用为恩智浦 imx 芯片生成的 uuu 脚本 uuu(通用更新实用程序)— libuuu_1.5.201-0-g727fc2b 成功 0 失败 0 1:1-1/ 1 [================ 100% =================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Progress stuck while flashing an android image to i.MX 8M Mini EVK 你好, 如果卡在这里,串行日志会显示错误。 致敬, Zhiming
記事全体を表示
SDRAMのSEMC構成 こんにちは、 私はカスタム NXP RT1176 ボードを使用していますが、SDRAM の SEMC インターフェースでは、ハードウェアはアドレス ライン A0 ~ A11 のみを提供します。この構成では、最大 16MB の SDRAM にアクセスできます。 ただし、32MB を使用したいSO、64MB SDRAM 部品 (Alliance AS4C32M16SB) を選択し、A12 アドレス ラインをフローティングのままにしました。私の意図は、デバイスの下位 32MB を使用することです。 私は SEMC を 64MB に設定し、メモリ範囲を 0x80000000 から 0x80FFFFFF にマッピングしました。この領域では、特定のアドレスで 16 ビットの読み取り/書き込み障害が発生しています。 興味深いことに、0x81000000 から 0x81FFFFFF (上位 32MB) までのメモリにアクセスすると、正常に動作します。 設定に使用したコードを添付しました。これをCAN確認して、改善が必要かどうか、またはこの種のセットアップ (A12 フローティングを使用) が有効であり、SEMC でサポートされているかどうかをお知らせください。 よろしくお願いします、 パバナクマールAG Re: SEMC Configuration for SDRAM A12 は SDRAM 側で低く保持する必要があります (製造元に確認することをお勧めします)。 BR、 オマール Re: SEMC Configuration for SDRAM @Omar_Anguiano さん、返信ありがとうございます。 当社のボードでは、A12 はコントローラ側と SDRAM 側の両方でフローティングになっています。おっしゃるとおり、A12 は既知のロジック レベルに保持される必要があります。以下を明確にしていただけますか: このCASE、A12 にはどのロジック レベル (HIGH または LOW) を使用すればよいですか? 両側で A12 を同じ既知のレベルに駆動する必要がありますか、それとも SDRAM 側でのみ設定すれば十分ですか? Re: SEMC Configuration for SDRAM フローティングラインを避けてください。理想的には、A12 を浮いたままにせず、既知のロジック レベルに接続して下位半分にアクセスできるようにします。 BR、 オマール
記事全体を表示
LPC55S36 I3Cマスターは、読み取り長がスレーブデータサイズを超えるとハングします。 I3C 通信用に 2 つのLPC5536-EVKボードをコネクテッドし、1 つを I3C マスターとして、もう 1 つを I3C スレーブとして構成しました。マスターの指定された読み取り長がスレーブによって提供されたデータの量を超える場合、マスターは読み取り関数I3C_MasterTransferBlockingで停止します。波形に基づくと、信号は正しいように見える、SO問題はマスター側にあると考えています。 私が提供した例では、スレーブのデータは [0x01, 0x02] で、長さは 2 バイトだけです。ただし、マスターは読み取り長を 3 に指定します。したがって、2 番目のバイトの終わりに、スレーブは T ビットを 0 として返して、メッセージの終了を示します。 テスト手順: (1)スレーブボードをリセットする (2)マスターボードをリセットする T ビットの定義については、MIPI I3C 基本仕様 v1.1.1 を参照してください。 セクション5.1.2.3.4、SDRターゲットの9番目のビットはデータの終わりとして返された(読み取られた)データです I2C では、ターゲットからの読み取りではコントローラのみが読み取りを終了するため、ターゲットは返すデータの量を制御できないという問題があります。対照的に、I3C SDR では、ターゲットが返すデータ ワードの数を制御しますが、必要に応じて I3C コントローラが読み取りを途中で中止することもできます。 ... bell_huang_0-1753257005599.png bell_huang_1-1753257030765.png Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size ユーザーは I3C_MasterTransferNonBlocking によって実際に転送されたバイト数を判別することはできませんが、私のアプリケーションには十分なようです。 Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size I3C_MasterTransferNonBlockingに切り替えてみました。ハングアップすることはありませんが、スレーブが実際に提供したバイト数をユーザーが知る方法はありません。私が共有した例では、転送数 = 2 などの情報を返す必要があります。 lpcxpresso55s36_i3c_interrupt_b2b_transfer_master の例を使用したテストでは、dataSize を 50 に変更したにもかかわらず、コードはその後 32 バイトの固定値を出力します。これは、スレーブが指定した転送数と一致します。 実際のアプリケーションでは、保留中の読み取り通知を伴う IBIに関する別の投稿で述べたCASEなど、IBI が発生してプライベート読み取りが実行された後、スレーブの転送カウントは予測不可能であり、変化するCANがあります。マスターが大きなバッファを使用して読み取り転送関数を呼び出す場合、転送関数は実際に転送されたカウントを返す必要があります。 Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size こんにちは@bell_huang テストしてみました。 おっしゃる通り、 そして、この I3C_MasterReceive 関数をチェックしました。 /* Check RX data */ if ((0UL != rxSize) && (0UL != (base->MDATACTRL & I3C_MDATACTRL_RXCOUNT_MASK))) { *buf++ = (uint8_t)(base->MRDATAB & I3C_MRDATAB_VALUE_MASK); rxSize--; if ((flags & (uint32_t)kI3C_TransferDisableRxTermFlag) == 0UL) { if ((!isRxAutoTerm) && (rxSize == 1U)) { base->MCTRL |= I3C_MCTRL_RDTERM(1U); } } } データサイズに応じてデータを読み取ります。 そして、i3c 割り込みデモをテストしたところ、この機能がサポートされていることがわかりました。 Harry_Zhang_0-1753346197214.png dataSizeを50に設定しました。 Harry_Zhang_1-1753346281166.png そして決してハングアップしません。 お試しになることができます。 BR ハリー
記事全体を表示
[SDK 2.6.11无线元器件]-BLE 控制器库在 MCU KW38 中引发了硬故障 您好, 我正在开发一个在 MCU KW38 上运行的 BLE 应用程序。该应用程序非常简单,它扫描 BLE 广告,如果数据符合特定模式,就通过 CAN 发送。我使用 nrfConnect 来模拟被跟踪的 BLE 设备。 该应用程序依赖 SDK_2.6.11_FRDM-KW38 中包含的 BLE 库来支持 BLE 连接。 应用程序的行为符合预期,但最终 BLE 控制器库引发了硬故障。具体来说,就是函数 ll_update_adv_report_event()。更多详情,请参阅附件中的截屏。 重现该问题所需的时间在很大程度上取决于环境中存在的 BLE 设备的密度。在家里,失败需要几分钟甚至几小时。然而,在办公室里,这只需要一分钟。 这个问题是众所周知的吗? 有什么建议可以找出/解决这个问题? 注意:我启用了所有与内存故障(stackoverflow 和 malloc 失败)相关的 FreeRTOS 挂钩,以跟踪这是否是与内存不足有关的问题,但它们都没有被触发信号。 hardfault_kw38.png Re: [SDK 2.6.11 wireless component] - BLE Controller library raises a hardfault in MCU KW38 Hello 为了尝试确定所述问题,我们需要确认您的应用程序基于哪个示例,以及我们在尝试复制时需要做哪些修改。 强烈建议在开始定制代码时,以恩智浦提供的示例为基础,然后根据客户要求进行修改。 你能帮我们确认一下你之前能否在开发板上测试 SDK 中的任何 BLE 示例吗? 顺祝商祺! 路易斯 Re: [SDK 2.6.11 wireless component] - BLE Controller library raises a hardfault in MCU KW38 你好,路易斯, ,感谢您的快速回复。SDK 升级是我们路线图的一部分,但我们一直在使用 SDK 2.6.11。多年,希望在有保障的情况下实现过渡。我们将按照您建议的解决方案开始工作,但与此同时,我们希望了解问题所在,以便评估如何利用当前的 SDK 解决这个问题。有什么想法/建议吗? Re: [SDK 2.6.11 wireless component] - BLE Controller library raises a hardfault in MCU KW38 你好,希望你一切都好、 我强烈建议使用最新 SDK 中的示例作为启动自定义项目代码的基础;这样可以避免 BLE 相关问题,并获得最新 SDK 版本的改进。 FRDM-KW38 的最新 SDK 版本是 2.6.15。 涉及多个设备连接的一个示例是无线 Uart 示例, 该应用程序起初充当 GAP 中心节点,它进入 GAP 有限发现程序并搜索要连接的其他无线 UART 设备;您可以切换到外围设备角色,当设备进入 GAP 常规可发现模式并等待 GAP 中央备注连接时。该应用程序需要更多的资源,只需牢记即可。 请尝试更新到最新的 SDK,并告诉我您的发现。 如果您有任何进一步的问题,请随时向我提出。 顺祝商祺! 路易斯
記事全体を表示
S32G SerSes PFE SMGII 配置 亲爱的工程师们 我正在使用 S 3 2 G 3 9 9 A 并在设计中参考 R D B 3。目前,我想对 S e r d e s 进行如下配置。 liuchi_0-1754488159787.png Re: S32G SerSes PFE SMGII Config 你好,@liuchi 谢谢您的帖子。 1 对于这两个板,serdes1 的工作模式是什么?都是模式 3? 2. 你在使用哪个电路板支持包? BR 切宁
記事全体を表示
iMXRT1170 提高性能 在MIMXRT1170-EVKB上,我们正在评估处理器的处理能力。 目前,我们从 freertos_hello_cm7 项目示例开始创建了一个测试应用程序。 我们的测试处理内存位于 SRAM_OC1 和 SRAM_OC2,因为我们需要多达 700KB 的内存来进行处理。 %% 我们猜测是内存出现了瓶颈。 我们已经验证了高速缓存是否正常工作,因为禁用高速缓存后,处理时间缩短了 x10。 有没有人提供一些提示,说明需要验证哪些事项,或者需要以不同于 freeRTOS 基本示例的方式进行配置,以改进结果? > Re: iMXRT1170 improve performances 遗憾的是,无法在 RT1170 上将这两个区域几乎连成一体。 BR, Omar Re: iMXRT1170 improve performances 在对该文件和其他文件进行分析后,我们进行了一些测量。 首先,我们做了一个进行大量内存访问的示例处理。 使用内存160kB 如果放在 DTC 中,我们得到的处理时间比放在 OCRAM 中要长 50% 。 如果我们使用 200KB 的内存来处理一部分数据,那么将内存放置在 DTC 中的处理时间比 OCRAM 长 80% 。 结果还是没有达到预期效果,因此我们仍在对配置进行深入研究。 有一个新问题:DTC 内存位于 0x20000000,而 OCRAM 位于 0x20200000。有没有办法让它们实际上是毗连的,这样我们就可以在同一个虚拟空间中分配所有内存,而且一部分内存将位于快速内存库中,另一部分内存将位于慢速内存库中? Re: iMXRT1170 improve performances OCRAM 的性能明显低于 TCM,使用高速缓存后性能会有所提高,但似乎并没有明显改善。 为了提高性能,可以将 DTCM 用于存储关键数据,如果 DTCM 的空间不够,可以将其重新定位:AN12077:使用 i.MX RT FlexRAM — 应用笔记 BR, Omar
記事全体を表示