Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
MCXC242VFMとMCXC244VFMのピン配置の違い こんにちは、 MCXC242VFMチップで基板を設計していますが、もしフラッシュやRAMが増えた場合に備えて、MCXC244VFMとピン同士で互換性のあるものにしたいと思っています。 MCUXpressoの設定ツールを見ると、MCXC242VFMとMCXC244VFMでいくつかのピンが異なるようですが、ピン配置の違いを詳細に説明したドキュメントは見つかりません。NXPのウェブサイトで調べられる唯一の情報は、製品選択ツールによるとMCXC242VFMはI2SがなくGPIOが24個と報告されているのに対し、MCXC244VFMはI2Sが1つ、GPIOが23個あるということです。私のプロジェクトでは、I2Sには興味がありません。 この2つのチップのピン配置とピン割り当ての違いを明確に記載した文書を誰か教えていただけませんか? 敬具 ミケーレ・ペルラ ボード設計 MCX C パッケージとIO|GPIO Re: MCXC242VFM vs MCXC244VFM pinout differences こんにちは、 @MichelePerla さん MCXC242VFMとMCXC244VFMの両方が32-QFNパッケージで利用可能ですが、完全にピンツーピン互換であるとは限りません。MCX C24XおよびMCX C44Xのリファレンスマニュアルにあるピン割り当て表を比較してください。 特に、両デバイス間ではいくつかのピン配置が異なっている。例えば、ピン5はMCXC242VFMにUSB_VDD、VOUT33はMCXC244VFMに、ピン6はMCXC242VFMのPTE16ですが、MCXC244VFMのVREGINです。ピン9にもアナログ/リファレンス関連の異なる定義があります。したがって、基板が両方のデバイスをサポートすることを意図している場合、回路図やPCB設計でこれらのピンを慎重に確認する必要があります。 MCXC242 RM: MCX C24X サブファミリ参照マニュアル Alice_Yang_2-1783650917873.png MCXC244 RM: MCX C44X サブファミリ参照マニュアル Alice_Yang_0-1783650899990.png お役に立てば幸いです。 BR アリス
View full article
PMIC PF8200 I2C寄存器默认值/RESET值 我正在使用采用 OTP 配置的 PF8200。 我需要通过 SCFW 将一些寄存器加载新值,以更改 PMIC 配置。 未被 OTP 值加载的寄存器位在数据手册中没有指定默认值。 这些值决定了加载 OTP 尚未加载的所有寄存器是否有用。 谢谢; Re: PMIC PF8200 I2C register default/reset values 感谢您的快速回复。 我没有找到任何关于它们上电后默认值的信息。 请问我可以在哪里找到这些信息? Re: PMIC PF8200 I2C register default/reset values 你好, 上电后,未从 OTP 加载的寄存器或位将被初始化为其默认值。因此,除非您需要与默认设置不同的值,否则无需通过 SCFW 配置所有非 OTP 寄存器。 要确定是否需要额外的初始化,请将您期望的配置与默认寄存器值进行比较。 请参阅PF82 系列 I2C 寄存器映射表 希望这能帮到你! Re: PMIC PF8200 I2C register default/reset values 请问您对哪些注册表感兴趣? Re: PMIC PF8200 I2C register default/reset values 例如,寄存器 05 INT_MASK_1。 但所有寄存器均指定为 OFF_TOGGLE。 谢谢。
View full article
RDDRONE-BMS772开发板配件 RDDRONE-BMS772开发板配件 抱歉,你没听懂我的意思。我目前的研究是关于电池状态估计,这需要测量真实电池的电压、电流和温度数据。因此,我不需要电池模拟器;我需要的是真正的电池。所以,我需要一块与我的开发板兼容的电池,以及一个特定型号的配套电池充电器。另外,链接中提到的 PEMicro 适配器和 SEGGER J-Link Mini 调试器是调试或编程开发板所必需的硬件吗?开发板能否直接连接到电脑进行调试和编程?这些适配器和调试器在市场上可以买到吗?此外,除了您提到的硬件之外,开发板是否还有其他必要的硬件元器件?如果是,请列出详细的配件类别及其对应的型号。非常感谢您对这些问题的详细解答。 抱歉,你没明白我的意思,我目前的研究是关于电池状态估计的,需要测量真实电池的电压和温度数据,所以我不需要电池模拟器,我需要真实的电池,所以我需要改装开发板的电池和对应电池充电器的具体型号;以及那个链接里提到的PEMicro适配器以及SEGGER J-Link迷你调试器是开发板或者烧录算法必须的硬件吗?开发板不能直接连接到电脑上进行调试和烧录程序吗?这些调试器和调试器在可以买到吗?还有,开发板除了你提到的这几个硬件以外还必须硬件吗?如果有的话请帮我列出详细的配件类别及其对应的型号;请您详细解答一下这些疑问,万分感谢。 Re: RDDRONE-BMS772 Development Board Accessories RDDRONE-BMS772开发板配件 亲爱的 Fan007, 对于电池状态估计研究,RDDRONE-BMS772 支持真正的 3S 至 6S 锂离子/锂聚合物电池组(6 V 至 26 V),并且不需要特定的电池型号。所选电池必须包含电池平衡连接器。 需要使用与所选电池化学成分和电芯数量兼容的充电器。RDDRONE-BMS772 无需专用的 电池管理系统 通信接口,因为必要时它可以断开充电路径。 对于固件开发和调试,NXP 建议使用外部 SWD 调试器,例如 PEMicro Universal Multilink 或 SEGGER J-Link Mini。RDDRONE-BMS772 没有板载 USB 调试接口,因此需要使用外部调试器。这些调试器在市场上均有销售。 对于电池特性分析和 SOC/SOH 算法开发,强烈建议使用可编程电子负载 (E-load) 进行受控充放电测试。   最诚挚的问候, 约瑟夫
View full article
#S32K312 IO input config joshua9264_0-1783597102225.png I want to used LPUART0 RX,need config IMCR[699],but spec only IMCR[473],So ,what should I do ? Re: #S32K312 IO input config Hi @joshua9264  It is noted in Section 10.1.2 of the S32K3xx Reference Manual, Rev. 12, that: "IMCRs defined in the attached IOMUX file have an offset of 512 with respect to the IMCR number defined in SIUL2 memory map section." To help clarify how the offset is applied, an example is also provided in Section 4.4.3 of the RM. BR, VaneB Re: #S32K312 IO input config yes,I found it. thank you
View full article
i.MX95 是否支持 LPDDR5X 内存? i.MX95 是否支持 LPDDR5X 内存? 如果 MR8[1:0]=01 或 MR5 ID 不在您的支持列表中 i.MX95 如何检查是否受支持?查看MR登记册? Re: Does i.MX95 support LPDDR5X memory? 感谢您快速提交申请。 Re: Does i.MX95 support LPDDR5X memory? 正如你所说,“MR8[1:0] = 01 表示该设备仅支持 LPDDR5X”。 MR8[1:0]=00 支持 LPDDR5,MR8[1:0]=01 支持 LPDDR5x。 那么 MR8[1:0]=?? 应该支持 LPDDR5 和 LPDDR5x 吗? Re: Does i.MX95 support LPDDR5X memory? 是的,i.MX95 可以与许多 LPDDR5X 设备配合使用,但前提是这些设备也支持 LPDDR5 向下兼容模式。 i.MX95 不支持仅支持 LPDDR5X 的设备。 因此,检查内存是否受支持不仅仅是查看 MR8[1:0] 或 MR5 厂商 ID 的问题。 MR8[1:0] = 01 表示该设备仅支持 LPDDR5X 内存。 → 将其视为 不支持 对于 i.MX95,因为 NXP 表示不能使用仅支持 LPDDR5X 的设备。 MR5 制造商/设备 ID 不在 NXP 的验证列表中 → 是 未经恩智浦验证 但这本身并不等同于“不可能”。您仍然需要从内存数据手册中确认该器件是否支持 LPDDR5 模式,并符合支持的密度/组织/时序约束,然后在电路板设计中进行验证。
View full article
i.MX6ULLの6.12カーネルにおけるイーサネットクロックバグ デバイスツリーの例は、6.12のハードコードで、このバグを修正する代わりにイーサネット物理を使いました。NXP 5.15カーネルには存在しませんでした。 最終的にパッチを作成することになったのは、fecモジュールで不具合が生じているPHY検出の柔軟性をカーネルに求めたかったからです。このパッチにより、デバイスツリー内の回避ではなく、ドライバがロードされた際にphyレジスタが読み込まれるようになっています。 On i.MX6UL boards that hang both RMII PHYs on FEC2's MDIO bus, PHY@0 uses the FEC1 (ENET1) RMII reference clock. Kernel 6.12 routes that clock through ENET1_REF_SEL, which may not be active when FEC2 reads PHY@0's ID during of_mdiobus_register(), yielding a bogus ID (0x01080108) and binding the generic PHY driver. Briefly enable FEC1's enet_clk_ref (looked up from DT, not via probe defer) around of_mdiobus_register() so the PHY ID read succeeds without changing FEC probe order and breaking FEC_QUIRK_SINGLE_MDIO. --- drivers/net/ethernet/freescale/fec_main.c | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 811a66062..46f37be0c 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -2540,6 +2540,39 @@ static int fec_enet_mii_probe(struct net_device *ndev) return 0; } +static bool fec_enet_mdio_has_phy_addr0(struct device_node *mdio) +{ + struct device_node *child; + u32 reg; + + for_each_available_child_of_node(mdio, child) { + if (of_property_read_u32(child, "reg", ®)) + continue; + if (reg == 0) { + of_node_put(child); + return true; + } + } + return false; +} + +static struct clk *fec_enet_get_rmii_master_refclk(void) +{ + struct device_node *np = NULL; + struct clk *clk; + + while ((np = of_find_compatible_node(np, NULL, "fsl,imx6ul-fec"))) { + if (of_get_child_by_name(np, "mdio")) { + of_node_put(np); + continue; + } + clk = of_clk_get_by_name(np, "enet_clk_ref"); + of_node_put(np); + return clk; + } + return NULL; +} + static int fec_enet_mii_init(struct platform_device *pdev) { static struct mii_bus *fec0_mii_bus; @@ -2553,6 +2586,8 @@ static int fec_enet_mii_init(struct platform_device *pdev) u32 mii_speed, holdtime; u32 bus_freq; int addr; + struct clk *rmii_master_refclk = NULL; + bool peer_ref_enabled = false; /* * The i.MX28 dual fec interfaces are not equal. @@ -2662,7 +2697,26 @@ static int fec_enet_mii_init(struct platform_device *pdev) fep->mii_bus->priv = fep; fep->mii_bus->parent = &pdev->dev; + if (node && fec_enet_mdio_has_phy_addr0(node)) { + rmii_master_refclk = fec_enet_get_rmii_master_refclk(); + if (IS_ERR(rmii_master_refclk)) { + err = PTR_ERR(rmii_master_refclk); + goto err_out_free_mdiobus; + } + if (rmii_master_refclk) { + err = clk_prepare_enable(rmii_master_refclk); + if (err) + goto err_out_free_mdiobus; + peer_ref_enabled = true; + usleep_range(100, 200); + } + } + err = of_mdiobus_register(fep->mii_bus, node); + if (peer_ref_enabled) + clk_disable_unprepare(rmii_master_refclk); + if (!IS_ERR_OR_NULL(rmii_master_refclk)) + clk_put(rmii_master_refclk); if (err) goto err_out_free_mdiobus; of_node_put(node); Re: i.MX6ULL Ethernet Clock Bug in 6.12 kernel こんにちは、 分析結果とパッチを共有していただきありがとうございます。 NXP EVKボードでこれを検証できましたか? よろしくお願いいたします。 Re: i.MX6ULL Ethernet Clock Bug in 6.12 kernel デバイスツリーの変更を見れば、新しいFECドライバが手抜きし、クロックがなくなり、物理レジスタが最初に読み取れないことがわかります。PHY に複数のベンダーを使用する予定がない場合は、これで問題ありません。互換性のある行は、クロック信号がない場合に不正な値を持つPHYレジスタを指定するために必要です。 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi#L205 古いカーネル(デバイスツリーの起源)では、phy の互換性ラインは存在しませんでした。この修正により、物理を読み取る前にクロックをオンにしてレジスタを正しく読み取ることが可能になり、互換性のあるラインは不要になります。以前のデバイスツリーにはなかったためです。 https://github.com/nxp-imx/linux-imx/blob/lf-5.4.y/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi#L224 自社の基板の動作確認に追われているため、御社の基板をテストする時間がありませんでした。これはカーネルの退行だと考えています。
View full article
RDDRONE-BMS772 開発ボード アクセサリ RDDRONE-BMS772开发板配件 申し訳ありません、私の言っていることが伝わらなかったようですね。現在私が取り組んでいる研究は、バッテリーの状態推定に関するもので、そのためには実際のバッテリーの電圧、電流、温度のデータを測定する必要があります。したがって、バッテリーシミュレータは必要ありません。本物のバッテリーが必要だ。そこで、開発ボードに対応したバッテリーと対応するバッテリー・チャージャの特定モデルが必要です。また、PEMicroアダプターやSEGGER J-Link Miniデバッガは、デバッグや開発ボードのプログラミングに必要なハードウェアにリンクに記載されていますか?開発ボードを直接コンピュータに接続してデバッグやプログラミングはできないのでしょうか?これらのアダプターやデバッガはマーケットで入手可能ですか?さらに、あなたが挙げたハードウェア以外に、開発ボードに必要な他のハードウェアコンポーネントはありますか?もしそうであれば、詳細なアクセサリーカテゴリーとその対応モデルを記載してください。これらの質問に詳細なご回答をいただき、誠にありがとうございました。 注意、私たちの意思は理解していません、私たちの現在の研究は電池の状態に関するものであり、実際の電池の電圧と温度のデータを測定する必要があるため、電池モジュールは必要ありません、私たちは必要としていますこれは真の電池であるため、適切なパネルの電池と電池充電器の特定の型名が必要です。また、ここで言及されている PEMicro アダプターと SEGGER も必要です。 Jリンクミニエディタは公開パネルまたは計算法に必須のハードウェアですか? 公開パネルに直接接続することはできませんこれらのアダプターとコントローラーは、市街にある場合もありますか?そうですね、公開パネルには、上記のハードウェアのほかに、必須のハードウェアもありますか?私は、詳細なアクセサリの種類とそれに対応する型名を列挙しました。これらの疑問を、時間とともに詳しく解決していきます。 Re: RDDRONE-BMS772 Development Board Accessories RDDRONE-BMS772开发板配件 Fan007様へ バッテリー状態推定研究のために、RDDRONE-BMS772は実際の3Sから6Sのリチウムイオン/リチウムポバッテリーパック(6Vから26V)をサポートしており、特定のバッテリーモデルを必要としません。選択するバッテリーには、セルバランスコネクタが含まれている必要があります。 選択したバッテリーの種類とセル数に対応した充電器が必要です。RDDRONE-BMS772は必要に応じて充電経路を切断できるため、専用のBMS通信インターフェースは必要ありません。 ファームウェアの開発およびデバッグには、PEMicro Universal MultilinkやSEGGER J-Link Miniなどの外部SWDデバッガの使用をNXPは推奨します。RDDRONE-BMS772にはオンボードUSBデバッグインターフェースが搭載されていないため、外部デバッガが必要です。これらのデバッガーは市販されている。 バッテリーの特性評価やSOC/SOHアルゴリズムの開発においては、制御された充放電試験を実施するために、プログラム可能な電子負荷(E-load)の使用を強く推奨します。   敬具、 ヨゼフ
View full article
PN7642 PN7642 GPT 是否支持 GPIO 引脚上的硬件输入捕获?如果可以,哪些GPIO可以连接到GPT捕获通道?如果不是,那么对于 125 kHz RFID 处理,推荐的 ASK/FSK 边沿时间戳标记方法是什么? Re: pn7642 你好@AlexPI 希望你一切都好。 通用定时器可能不支持此功能。或许您可以考虑使用 SCTimer/PWM 模块;有关此模块的更多信息,请参阅安全用户手册(需要签署 NDA,并且必须通过安全访问权限 | NXP 半导体申请)。 问候, 爱德华多。
View full article
S32K3: スリープモード中のWKPUウェイクアップ割り込み動作 こんにちは、NXPサポートの皆さん、 S32K312 MCUを使用しており、割り込みコールバック付きのWKPU(ウェイクアップユニット)チャネルを設定しています。 注:Wkpu[n]に+4のオフセットを加算します -> n+4 ECUが低電力モードに入った際のWKPUの動作について明確にしたいと思います。 私たちの質問は次のとおりです。 MCUがスリープ/スタンバイモードの場合、WKPUは設定済みの外部ウェイクアップピンを引き続き監視しますか? 設定済みの外部エッジがスリープ/スタンバイモードで検出された場合、WKPUはMCUを起動させますか? MCUが起動した後、設定されたWKPU割り込みコールバックは自動的に実行されるのか、それとも追加のソフトウェア処理が必要になるのか? スリープ/スタンバイモードからの覚醒を保証するために、特定のWKPU、NVIC、または電源管理の設定が必要ですか? S32K312でサポートされている低電力モード(スリープ、ストップ、スタンバイなど)間で、WKPUのウェイクアップ動作に違いはありますか? 私たちはこのS32K312にNXP RTDドライバを使用しています。 再開まで今しばらくお待ちください。 Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode こんにちは、NXP チームの皆様、 迅速なご対応ありがとうございます。 私はNXP S32K312 MCUを使っています。PTB2(WKPUチャネル8)に外部割り込みソース(WKPU)を設定しました。割り込みは、センサーINT2ピンがアサートした際にMCUをスリープ/スタンバイモードから起動させることを目的としています。 私の質問は次のとおりです。 外部WKPU割り込みを受信した場合、ウェイクアップ後に設定されたコールバック関数を自動的に呼び出すべきでしょうか? それとも、WKPUは外部ソースがWKPUピンの入力として設定されているときだけウェイクアップイベントを発生させ、PTB2をEIRQピンとして設定し、WKPU**ドライバ**を**ペリフェラル**として使う必要があるのでしょうか? コールバックが想定される場合、追加の設定(NVIC、割り込みルーティング、WKPU設定、モード依存の制限など)が必要ですか? 私の現在の実装では、外部割り込みは実行モードでEIRQ/ECUとして設定するとMCUを正常に起動させますが、スタンバイモードでは動作せず(Wkpuがピンとペリフェラルの両方に設定されている場合)、設定されたコールバックは実行されません。 WKPUの期待される挙動とコールバック実行に必要な設定について、説明していただけますか? よろしくお願いします。 Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode こんにちは、 @Dia さん。 はい、WKPUエンジンは複数の設定可能な非同期ウェイクアップイベントからチップをウェイクアップする機能を持っています。 はい。こちらがWKPUの起床イベント後の待機出口シーケンスです: スタンバイモード終了後、以下のイベントが発生します。 目覚めのイベントが訪れる FIRCは(スタンバイモードで無効になっている場合)電源がオンになります。 PMCはFPMへの移行プロセスを開始します(例えば、ラストマイルレギュレータを有効にし、チップにV1_RUN電源を供給します)。 MC_PCUは実行ドメインとスタンバイドメインの分離を解消します ドメインリセット解除(スタンバイエントリ時にアサートされる)を実行すると、チップはこのドメインの機能リセット終了シーケンスを実行します。 チップは動作実行モードに入ります 追加の設定が必要です。ウェイクアップフラグレジスタはウェイクアップ後も保持されるため、ウェイクアップユニットのNVIC→ISERがコードで有効化されるとウェイクアップISRを入力できます。したがって、ウェイクアップ後、実行モードでプラットフォーム関数を呼び出してウェイクアップ用の割り込みを有効にする(WKPU_IRQnにISERを設定しNVIC_)すると、プログラムはウェイクアップ割り込み機能にジャンプします。 S32K3は2つのモードのみをサポートしています:ランとスタンバイ。 Julin_AragnM_7-1783635768438.png しかし、ウェイクアップの挙動には違いがあり、S32K3は通常のスタンバイ出口または高速スタンバイ出口を選択できます。 Julin_AragnM_8-1783635776576.png リセットと通常のスタンバイ終了はHSE sBAFの初期化コードとHSE_FW検証の両方を実行し、高速スタンバイ終了は時間を節約するためにバイパスし、ユーザー定義のアドレスで起動します。詳細については、S32K3XXのリファレンスマニュアルにある 図176 (電源起動シーケンス)を参照してください。 S32K3の低電力管理ANやデモのパワーマネージメントドキュメントを調べてみることをおすすめします。 最新の例も参照できます:[RTD600 MCAL & IP] S32K3 低パワーマネージメントANやデモ。 よろしくお願いします、 ジュリアン Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode こんにちは、 @Dia さん。 外部WKPU割り込みを受信した場合、ウェイクアップ後に設定されたコールバック関数を自動的に呼び出すべきでしょうか? 割り込み初期化を呼び出すと、WKPU_EXT_IRQ_SINGLE_ISR()が入力されます。コールバックを使う場合は、割り込み初期化を呼び出す前に以下の行を追加できます: Wkpu_Ip_u32ChState[0].chInit = TRUE; Wkpu_Ip_u32ChState[0].notificationEnable = TRUE; Wkpu_Ip_u32ChState[0].WkpuChannelNotification = Wkpu_Callback; IntCtrl_Ip_Init(&IntCtrlConfig_0); ISRの処理が完了すると、WKPUコールバックが開始されます。 それとも、WKPUは外部ソースがWKPUピンの入力として設定されているときだけウェイクアップイベントを発生させ、PTB2をEIRQピンとして設定し、WKPU**ドライバ**を**ペリフェラル**として使う必要があるのでしょうか? これも妥当な意見です。コールバック設定を使って、WKPUリクエストがスタンバイ前に呼び出されたかどうかを確認できます。 コールバックが想定される場合、追加の設定(NVIC、割り込みルーティング、WKPU設定、モード依存の制限など)が必要ですか? 最初の回答を参照してください。 スタンバイ出口(ウェイクアップ)直後にMCUを止めて、MCUがジャンプしているかどうかを確認するためにWKPU_EXT_IRQ_SINGLE_ISRの中にブレークポイントを入れることはできますか? よろしくお願いします、 ジュリアン
View full article
pn7642 Does PN7642 GPT support hardware Input Capture on GPIO pins? If yes, which GPIOs can be connected to GPT capture channels? If not, what is the recommended method for timestamping ASK/FSK edges for 125 kHz RFID processing? Re: pn7642 Hello @AlexPI Hope you are doing well. General Purpose Timers may not support such feature. Perhaps you could consider the SCTimer/PWM module; more information on this can be found in the secure User Manual (NDA is required, and must be requested through the Secure Access Rights | NXP Semiconductors). Regards, Eduardo.
View full article
PMIC PF8200 I2C register default/reset values I am using the PF8200 with an OTP configuration. I need to load some registers by SCFW with new values to change the PMIC configuration. The register bits which are not loaded by OTP values do not have default values specified in datasheet.  What are these values to know if it is useful or not to load all the registers not already loaded by OTP. Thanks; Re: PMIC PF8200 I2C register default/reset values Thanks for quick answer. I do not find any information about their default values after power-up. Please, let me inform where I can find this information ! Re: PMIC PF8200 I2C register default/reset values Hello, Registers or bits that are not loaded from OTP are initialized to their default values after power-up. Therefore, it is not necessary to configure all non-OTP registers through SCFW unless you need values different from the default settings. To determine whether additional initialization is required, please compare your desired configuration against the default register values. Please see PF82 family I2C register Map Hope this helps! Re: PMIC PF8200 I2C register default/reset values Could you please confirm which registers you are interested in?  Re: PMIC PF8200 I2C register default/reset values For example, register 05 INT_MASK_1. But all registers specified as OFF_TOGGLE. Thanks.
View full article
S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode Hello NXP Support, We are using the S32K312 MCU and have configured a WKPU (Wake-Up Unit) channel with an interrupt callback. Note: Add +4 offset to Wkpu[n] -> n+4 We would like to clarify the behaviour of the WKPU when the ECU enters a low-power mode. Our questions are: If the MCU is in Sleep/Standby mode, does the WKPU continue monitoring the configured external wake-up pin? When the configured external edge is detected during Sleep/Standby mode, will the WKPU wake the MCU? After the MCU wakes up, will the configured WKPU interrupt callback be executed automatically, or is additional software handling required? Are there any specific WKPU, NVIC, or Power Management configurations required to ensure wake-up from Sleep/Standby mode? Are there any differences in WKPU wake-up behaviour between the supported low-power modes (Sleep, STOP, STANDBY, etc.) on the S32K312? We are using the NXP RTD drivers for the S32K312. Thank you for your support. Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode Hi NXP Team, Thanks for your quick response. I am using the NXP S32K312 MCU. I have configured an external interrupt source (WKPU) on PTB2 (WKPU Channel 8). The interrupt is intended to wake the MCU from Sleep/Standby mode when the Sensor INT2 pin asserts. My question is: When an external WKPU interrupt is received, should the configured callback function be invoked automatically after wake-up? Or does the WKPU only generate a wake-up event when the external source is configured as an input on the WKPU pin, and do I need to configure PTB2 as an EIRQ pin and use the WKPU driver as the peripheral? If a callback is expected, are there any additional configurations required (e.g., NVIC, interrupt routing, WKPU settings, or mode-dependent limitations)? In my current implementation, the external interrupt successfully wakes the MCU when configured as EIRQ/ECU in Run mode, but it does not work in Standby mode(Wkpu configured in both pin and peripherals), and the configured callback is not executed. Could you please clarify the expected WKPU behavior and the required configuration for callback execution? Thank you. Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode Hi @Dia, Yes, the WKPU engine has the wake-up capability to the chip from multiple configurable asynchronous wake-up events. Yes. Here is the standby exit sequence after a WKPU wake-up event: After Standby mode exit, the following events occur: A wake-up event arrives FIRC gets powered up (if disabled in Standby mode) PMC starts the transition process to FPM (for example, enables the last-mile regulator and provides V1 _RUN supply to the chip) MC_PCU removes the isolation between Run and Standby domains Run domain reset deasserts (it’s asserted on Standby entry) and the chip undergoes a functional reset exit sequence for this domain The chip enters Run mode of operation Additional configuration is needed. Since the wakeup flag register is retained after waking up, the wakeup ISR can be entered once the NVIC→ISER of Wakeup Unit is enabled by code. So, after wake-up and in Run mode, if you call Platform functions to enable interrupt for wake-up (configure NVIC_ ISER for WKPU_IRQn) then your program will jump into wake-up interrupt function. S32K3 only supports two modes: Run & Standby. Julin_AragnM_7-1783635768438.png However, there is a difference in wake-up behavior, as S32K3 can select normal Standby exit, or Fast Standby exit: Julin_AragnM_8-1783635776576.png Reset and normal Standby exit will perform both the HSE sBAF initialization code and HSE_FW verification, while fast standby exit will bypass it to save time, and boot to a user defined address. You can refer to Figure 176 (Power-up sequence) from the S32K3XX reference manual for further details. I suggest looking into the low power management documentation from S32K3 Low Power Management AN and demos. You can also refer to the latest examples: [RTD600 MCAL & IP] S32K3 Low Power Management AN and demos. Best regards, Julián Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode Hi @Dia, When an external WKPU interrupt is received, should the configured callback function be invoked automatically after wake-up? After calling interrupt initialization, WKPU_EXT_IRQ_SINGLE_ISR() will be entered. If you need to use callback, you can add the following lines before calling interrupt initialization: Wkpu_Ip_u32ChState[0].chInit = TRUE; Wkpu_Ip_u32ChState[0].notificationEnable = TRUE; Wkpu_Ip_u32ChState[0].WkpuChannelNotification = Wkpu_Callback; IntCtrl_Ip_Init(&IntCtrlConfig_0); After ISR is serviced, WKPU callback will be entered.  Or does the WKPU only generate a wake-up event when the external source is configured as an input on the WKPU pin, and do I need to configure PTB2 as an EIRQ pin and use the WKPU driver as the peripheral? This is valid as well. You can use callback configuration to know if a WKPU request was called before Standby. If a callback is expected, are there any additional configurations required (e.g., NVIC, interrupt routing, WKPU settings, or mode-dependent limitations)? See first response. Can you stop MCU right after Standby exit (wake-up), and place a breakpoint inside WKPU_EXT_IRQ_SINGLE_ISR to see if MCU is jumping to it?  Best regards, Julián
View full article
RDDRONE-BMS772 Development Board Accessories RDDRONE-BMS772开发板配件 I apologize, you didn't understand me. My current research is about battery state estimation, which requires measuring the voltage, current, and temperature data of a real battery. Therefore, I don't need a battery simulator; I need a real battery. So, I need a battery compatible with my development board and a specific model of the corresponding battery charger. Also, are the PEMicro adapter and SEGGER J-Link Mini debugger mentioned in the link necessary hardware for debugging or programming the development board? Can't the development board be directly connected to a computer for debugging and programming? Are these adapters and debuggers available on the market? Furthermore, besides the hardware you mentioned, are there any other necessary hardware components for the development board? If so, please list the detailed accessory categories and their corresponding models. Thank you very much for your detailed answers to these questions. 抱歉,你没理解我的意思,我目前的研究是关于电池状态估计的,需要测量真实电池的电压电流和温度数据,所以我不需要电池模拟器,我需要的是真实的电池,所以我需要适配开发板的电池和对应电池充电器的具体型号;并且那个链接里提到的PEMicro适配器以及SEGGER J-Link Mini调试器是开发板调试或者烧录算法必须的硬件吗?开发板不能直接连接到电脑上进行调试和烧录程序吗?这些适配器和调试器在市面上可以买到吗?还有,开发板除了你提到的这几个硬件之外还有别的必须硬件吗?如果有的话请帮我列出详细的配件类别及其对应的型号;请您详细解答一下这些疑问,万分感谢。 Re: RDDRONE-BMS772 Development Board Accessories RDDRONE-BMS772开发板配件 Dear Fan007, For battery state estimation research, the RDDRONE-BMS772 supports real 3S to 6S Li-ion/LiPo battery packs (6 V to 26 V) and does not require a specific battery model. The selected battery must include a cell-balancing connector.  A charger compatible with the selected battery chemistry and cell count is required. No dedicated BMS communication interface is needed, as the RDDRONE-BMS772 can disconnect the charging path when necessary. For firmware development and debugging, NXP recommends an external SWD debugger such as a PEMicro Universal Multilink or SEGGER J-Link Mini. The RDDRONE-BMS772 does not include an onboard USB debug interface, so an external debugger is necessary. These debuggers are commercially available. For battery characterization and SOC/SOH algorithm development, a programmable electronic load (E-load) is also highly recommended to perform controlled charge/discharge testing.    With Best Regards, Jozef
View full article
i.MX6ULL Ethernet Clock Bug in 6.12 kernel The device tree example in 6.12 hard codes the Ethernet Phy rather than fixing this bug which did not exist in the NXP 5.15 kernel we were using. We ended up writing a patch because we would like the flexibility of the kernel detecting the PHY which is broken in the fec module.  This patch causes the phy registers to be read when the driver is loaded, rather than circumvention in device tree. On i.MX6UL boards that hang both RMII PHYs on FEC2's MDIO bus, PHY@0 uses the FEC1 (ENET1) RMII reference clock. Kernel 6.12 routes that clock through ENET1_REF_SEL, which may not be active when FEC2 reads PHY@0's ID during of_mdiobus_register(), yielding a bogus ID (0x01080108) and binding the generic PHY driver. Briefly enable FEC1's enet_clk_ref (looked up from DT, not via probe defer) around of_mdiobus_register() so the PHY ID read succeeds without changing FEC probe order and breaking FEC_QUIRK_SINGLE_MDIO. --- drivers/net/ethernet/freescale/fec_main.c | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 811a66062..46f37be0c 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -2540,6 +2540,39 @@ static int fec_enet_mii_probe(struct net_device *ndev) return 0; } +static bool fec_enet_mdio_has_phy_addr0(struct device_node *mdio) +{ + struct device_node *child; + u32 reg; + + for_each_available_child_of_node(mdio, child) { + if (of_property_read_u32(child, "reg", ®)) + continue; + if (reg == 0) { + of_node_put(child); + return true; + } + } + return false; +} + +static struct clk *fec_enet_get_rmii_master_refclk(void) +{ + struct device_node *np = NULL; + struct clk *clk; + + while ((np = of_find_compatible_node(np, NULL, "fsl,imx6ul-fec"))) { + if (of_get_child_by_name(np, "mdio")) { + of_node_put(np); + continue; + } + clk = of_clk_get_by_name(np, "enet_clk_ref"); + of_node_put(np); + return clk; + } + return NULL; +} + static int fec_enet_mii_init(struct platform_device *pdev) { static struct mii_bus *fec0_mii_bus; @@ -2553,6 +2586,8 @@ static int fec_enet_mii_init(struct platform_device *pdev) u32 mii_speed, holdtime; u32 bus_freq; int addr; + struct clk *rmii_master_refclk = NULL; + bool peer_ref_enabled = false; /* * The i.MX28 dual fec interfaces are not equal. @@ -2662,7 +2697,26 @@ static int fec_enet_mii_init(struct platform_device *pdev) fep->mii_bus->priv = fep; fep->mii_bus->parent = &pdev->dev; + if (node && fec_enet_mdio_has_phy_addr0(node)) { + rmii_master_refclk = fec_enet_get_rmii_master_refclk(); + if (IS_ERR(rmii_master_refclk)) { + err = PTR_ERR(rmii_master_refclk); + goto err_out_free_mdiobus; + } + if (rmii_master_refclk) { + err = clk_prepare_enable(rmii_master_refclk); + if (err) + goto err_out_free_mdiobus; + peer_ref_enabled = true; + usleep_range(100, 200); + } + } + err = of_mdiobus_register(fep->mii_bus, node); + if (peer_ref_enabled) + clk_disable_unprepare(rmii_master_refclk); + if (!IS_ERR_OR_NULL(rmii_master_refclk)) + clk_put(rmii_master_refclk); if (err) goto err_out_free_mdiobus; of_node_put(node); Re: i.MX6ULL Ethernet Clock Bug in 6.12 kernel You only need to look at device tree changes to see that the new fec driver cuts corners and no longer has a clock, so the phy registers do not read initially. This is fine if you do not plan on having multiple vendors for the phy. The compatible line is needed to specify the phy register which has a bad value when there is no clock: https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi#L205 In older kernels (the heritage of our device tree) the compatible line was not present for the phy. This fix allows the clock to be turned on before reading the phy so registers can be read properly, so the compatible line is not required, as it was not there in older device trees: https://github.com/nxp-imx/linux-imx/blob/lf-5.4.y/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi#L224 I have not had time to test your boards as I am busy getting our boards to work. I consider this to be a regression in the kernel. Re: i.MX6ULL Ethernet Clock Bug in 6.12 kernel Hello, Thanks for sharing the analysis and patch. Have you been able to validate this on an NXP EVK board? Best regards.
View full article
如何在LVGL中流畅地显示相机帧? 您好,我正在使用MIMXRT1176DMAA芯片。该板配备MIPI摄像头和MIPI液晶显示屏,液晶显示屏主要用于显示LVGL GUI。 目前,我希望在屏幕上显示摄像头的图像,同时在摄像头画面上叠加一些 LVGL 标签。我尝试通过 LVGL Canvas 显示相机帧,但这种方法在将相机帧传输到 Canvas 时引入了额外的处理开销,导致 CPU 使用率高和相机画面卡顿。 请问这个问题有解决办法吗?例如,LCDIFV2 的层功能能否用于在不同的层上显示内容?非常感谢您能提供任何建议。 Re: How to smoothly display camera frames in LVGL? 你好@Vinos ,如果这不是秘密,那解决方案是什么? 此致敬礼 Re: How to smoothly display camera frames in LVGL? 已解决。 Re: How to smoothly display camera frames in LVGL? 经过尝试,我发现只有在 LVGL 任务关闭时,相机屏幕才能流畅运行。目前,Layer0 是 GUI,Layer1 是摄像头。当 Layer0 关闭且 Layer1 打开时,我想添加另一个 Layer2。在 Layer3 的中心,应该有一个空心圆,除了弧形部分以外,其余部分都是透明的。 因此,我使用了 ARGB4444 格式,并通过在 LCD 上绘制一个正方形进行了简单的测试(启用 Layer0 并禁用 Layer1;或者禁用 Layer0 并启用 Layer1)。然而,生成的图像并不透明。每当调用 LCDIFV2_SetLayerBlendConfig 函数时,LCD 上的 Layer3 都不会显示图像。但是,如果将此函数注释掉,液晶显示屏将显示预期的非透明图像。 以下是代码,请参考 SDK 中的示例“lcdifv2_embedded_alpha_cm7”。 #define LCD_WIDTH 480 #define LCD_HEIGHT 640 #define CENTER_LAYER 2 #define DEMO_FB0_ADDR ((uint32_t)s_frameBuffer[0]) AT_NONCACHEABLE_SECTION_ALIGN( uint8_t s_frameBuffer[1][LCD_HEIGHT][LCD_WIDTH][2], 32); void DEMO_FillFrameBuffer(void) { uint32_t x, y; for (y = 0; y < LCD_HEIGHT; y++) { for (x = 0; x < LCD_WIDTH; x++) { s_frameBuffer[0][y][x][0] = 0x11; s_frameBuffer[0][y][x][1] = 0x11; } } } void lcd_center_layer_init() { DEMO_FillFrameBuffer(); /* Layer 1: ARGB4444 */ const lcdifv2_buffer_config_t fb1Config = { .strideBytes = (LCD_WIDTH * 2), .pixelFormat = kLCDIFV2_PixelFormatARGB4444, }; const lcdifv2_blend_config_t blend1Config = { .alphaMode = kLCDIFV2_AlphaEmbedded, }; LCDIFV2_SetLayerBufferConfig(LCDIFV2, CENTER_LAYER, &fb1Config); LCDIFV2_SetLayerSize(LCDIFV2, CENTER_LAYER, 240, 240); LCDIFV2_SetLayerOffset(LCDIFV2, CENTER_LAYER, 0, 0); /* comment or not */ LCDIFV2_SetLayerBlendConfig(LCDIFV2, CENTER_LAYER, &blend1Config); LCDIFV2_SetLayerBufferAddr(LCDIFV2, CENTER_LAYER, DEMO_FB0_ADDR); LCDIFV2_EnableLayer(LCDIFV2, CENTER_LAYER, true); LCDIFV2_TriggerLayerShadowLoad(LCDIFV2, CENTER_LAYER); } 我的代码有错误吗?谢谢。 Re: How to smoothly display camera frames in LVGL? @Vinos ,你好! 请查看以下链接: https://github.com/lvgl/lvgl/issues/262我相信这对您的询问会很有帮助。 如果对你有帮助,请告诉我! 埃德温。 Re: How to smoothly display camera frames in LVGL? 谢谢你的建议。我尝试了第二种解决方案,但是在 LVGL 中,背景是白色的,上面有一些标签。实际结果是,除了标签之外,白色背景完全覆盖了相机图像。如何将这些白色背景设置为透明? Re: How to smoothly display camera frames in LVGL? 嗨@Vinos , 我不清楚您打算如何申请这份申请,所以以下是我的建议: 请参考示例“SDK_MIMXRT1170-EVK\boards\evkmimxrt1170\driver_examples\csi\mipi_rgb”。需要将摄像机捕获的视频与 LVGL 的帧缓冲区进行合成。有两种方法可以做到这一点: 1)将相机图像从相机输出缓冲区复制到LVGL的帧缓冲区。虽然可以用 memcpy 实现,但性能会很差,所以我建议改用 DMA。 2) 直接使用另一层 LCDIFv2 作为相机的输出缓冲区,然后 LCDIFv2 硬件在显示屏上合成不同的层而无需复制。 BR, 埃德温。
View full article
Does i.MX95 support LPDDR5X memory? Does i.MX95 support LPDDR5X memory? If MR8[1:0]=01 or MR5 ID is not in your support list How do i.MX95 check supported or not? check MR register? Re: Does i.MX95 support LPDDR5X memory? Thanks for your quickly apply. Re: Does i.MX95 support LPDDR5X memory? As you said "MR8[1:0] = 01 means the device is LPDDR5X-only " MR8[1:0]=00 support LPDDR5, MR8[1:0]=01 support LPDDR5x. So what should MR8[1:0]=?? support LPDDR5 and LPDDR5x ? Re: Does i.MX95 support LPDDR5X memory? Yes, i.MX95 can work with many LPDDR5X devices, but only if those devices also support LPDDR5 backward-compatibility mode. i.MX95 does NOT support LPDDR5X-only devices.  Therefore, checking whether a memory is supported is not simply a matter of looking at MR8[1:0] or MR5 vendor ID alone. MR8[1:0] = 01 means the device is LPDDR5X-only → treat it as not supported for i.MX95, because NXP states LPDDR5X-only devices cannot be used. MR5 manufacturer/device ID is not in NXP’s validated list → it is not validated by NXP , but that alone is not the same as “impossible.” You still need to confirm from the memory datasheet that the part supports LPDDR5 mode and matches the supported density/organization/timing constraints, then validate it in the board design.
View full article
キーファクタープラグインで画像を作成する際のエラー spsdkとspsdk-pluginsをインストールして、keyfactorプラグインを使ってRT1064用のイメージを作成しました。venvでbuild_image_win.batファイルを起動すると、エラーが発生します。 SPSDKError: SPSDK: シグネチャプロバイダーはconfig type=keyfactorから作成できませんでした;url=... ログファイルに以下のエラーが表示されています。 INFO:spsdk.utils.service_provider:読み込み中プラグイン: spsdk.sp INFO:spsdk.utils.service_provider:キーファクター型のSignatureProviderが見つかりませんでした。 デバッグ:spsdk.apps.utils.utils:SPSDK:シグネチャプロバイダーはconfig type=keyfactorから作成できませんでした。URL 以下に示すように、環境のアクティブな Python エントリ ポイントを検査するテストを実行しました。 "python -c "import importlib.metadata;print([p.namep は に importlib.metadata.entry_points(group='spsdk.sp')]))」テスト結果は良好で、重要な要素はアクティブなPythonエントリポイントにあります。 ビルドバッチファイルとYAMLファイルを添付しました。 この問題をどう解決すればいいですか? Re: Error when building a image using keyfactor plugin こんにちは、 @cleo さん、 プラグインが正常に読み込まれなかったようです。https://github.com/nxp-mcuxpresso/spsdk_plugins/tree/master/keyfactorのガイドに従いましたか? https://github.com/nxp-mcuxpresso/spsdk_pluginsを参照してください。詳細については、こちらをご覧ください。 お役に立てば幸いです。 すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 -------------------------------------------------------------------------------
View full article
#S32K312 IO 输入配置 joshua9264_0-1783597102225.png 我想使用LPUART0 RX,需要配置IMCR[699],但规范中只列出了IMCR[473],那我该怎么办? Re: #S32K312 IO input config 嗨@joshua9264 S32K3xx 参考手册第 12 版第 10.1.2 节指出: “附件 IOMUX 文件中定义的 IMCR 相对于 SIUL2 内存映射部分中定义的 IMCR 编号有 512 的偏移量。” 为了帮助阐明如何应用偏移量,RM 第 4.4.3 节还提供了一个示例。 BR,VaneB Re: #S32K312 IO input config 是的,我找到了。谢谢
View full article
i.MX95はLPDDR5Xメモリをサポートしていますか? i.MX95はLPDDR5Xメモリをサポートしていますか? もしMR8[1:0]=01またはMR5 IDがサポートリストにない場合 i.MX95がサポートされているかどうかを確認するにはどうすればよいですか?MR登録簿を確認してください。 Re: Does i.MX95 support LPDDR5X memory? 迅速なご応募ありがとうございます。 Re: Does i.MX95 support LPDDR5X memory? あなたが言ったように、「MR8[1:0] = 01 は、デバイスが LPDDR5X 専用であることを意味します」 MR8[1:0]=00はLPDDR5をサポートし、MR8[1:0]=01はLPDDR5xをサポートします。 では、MR8[1:0]=??LPDDR5とLPDDR5xはサポートできますか? Re: Does i.MX95 support LPDDR5X memory? はい、i.MX95は多くのLPDDR5Xデバイスで動作しますが、それらのデバイスがLPDDR5の後方互換性モードをサポートしている場合に限ります。 i.MX95はLPDDR5X専用デバイスをサポートしていません。 したがって、メモリがサポートされているかどうかを確認するには、単にMR8[1:0]やMR5のベンダーIDだけを見るだけでは不十分です。 MR8[1:0] = 01 はデバイスがLPDDR5Xのみであることを意味します NXPはi.MX95では サポートされていない として扱→。NXPはLPDDR5Xのみデバイスは使用できないと明記している。 MR5の製造元/デバイスIDはNXPの検証済みリストに含まれていません。 → それは NXPによる検証は行われていません しかし、それだけでは「不可能」と同じではない。それでも、メモリデータシートで部品がLPDDR5モードをサポートし、対応される密度・組織・タイミングの制約に合致しているかを確認し、基板設計で検証する必要があります。
View full article
Error when building a image using keyfactor plugin I have installed spsdk and spsdk-plugins to build an image for RT1064 using the keyfactor plugin. When I am launching in venv the build_image_win.bat file I keep getting an error  SPSDKError: SPSDK: Signature provider could not be created from config type=keyfactor;url=... The log file shows the below error. INFO:spsdk.utils.service_provider:Loading plugins: spsdk.sp INFO:spsdk.utils.service_provider:SignatureProvider of type keyfactor was not found. DEBUG:spsdk.apps.utils.utils:SPSDK: Signature provider could not be created from config type=keyfactor;url I ran a test to  inspect the environment's active Python entry points as shown below "python -c "import importlib.metadata; print([p.name for p in importlib.metadata.entry_points(group='spsdk.sp')])"  " and the result of the test is good, keyfactor is in the active Python entry points. I have attached the build batch file and the yaml file. How can I fix this issue? Re: Error when building a image using keyfactor plugin Hi @cleo , Looks like the plugin was not loaded successfully. Did you follow the guide from  https://github.com/nxp-mcuxpresso/spsdk_plugins/tree/master/keyfactor ?  Please refer to https://github.com/nxp-mcuxpresso/spsdk_plugins for more details. Hope that helps, Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
View full article