Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
6.12 内核中的 i.MX6ULL 以太网时钟错误 6.12 中的设备树示例对以太网 Phy 进行了硬编码,而不是修复我们在使用的 NXP 5.15 内核中不存在的这个错误。 我们最终编写了一个补丁,因为我们希望内核能够灵活地检测 PHY,而 fec 模块中存在这个问题。该补丁使得在加载驱动程序时读取物理寄存器,而不是在设备树中进行规避。 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 你只需要查看设备树的变化,就会发现新的 FEC 驱动程序偷工减料,不再有时钟,因此物理寄存器最初无法读取。如果你不打算使用多个物理供应商,那么这样做没问题。兼容行用于指定在没有时钟信号时值错误的物理层寄存器: https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi#L205 在较旧的内核(我们设备树的遗留版本)中,phy 不存在兼容行。此修复允许在读取 PHY 之前打开时钟,以便正确读取寄存器,因此不需要兼容线路,因为旧设备树中没有该线路: https://github.com/nxp-imx/linux-imx/blob/lf-5.4.y/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi#L224 我还没时间测试你们的电路板,因为我正忙着调试我们自己的电路板。我认为这是内核的退步。 Re: i.MX6ULL Ethernet Clock Bug in 6.12 kernel 你好, 感谢分享分析和补丁。 您是否已在 NXP EVK 开发板上验证过这一点? 顺祝商祺!
記事全体を表示
imx8mplusでlibcameraをセットアップして使用する方法 libcameraソフトウェアのISPをimx8mplusボード上で実行して、その動作効率を理解する必要があります。公式のlibcameraドキュメントによると、ハードウェアISPとISIの両方でIMX8MPをサポートしています。ISIからすると、ソフトウェアISIだと思います。しかし、この手順を実行するためのドキュメント/ガイドは不明瞭で、非常に分かりにくい。私はlibcameraを使い始めたばかりで、それが具体的にどのように動作するのか、そしてこのソフトウェアISPの部分でどのように役立つのかについて、多くの疑問があります。GStreamerのbayer2rgb要素もテストしましたが、結果には満足していません。 当社のSOMはimx8mplusで、カーネルバージョンは6.6.52-compulab-4.1-g94ac18e782b4-dirtyです。 ありがとうございます。 ヴィシュヌS i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to setup and use the libcamera on the imx8mplus こんにちは、   libcameraをBSPに実装する方法については、 i.MX Linuxユーザーガイド の 7.3.9章「Libcamera」 を参照してください。   参考までに、GitLab にオープンソースのリポジトリがあります。https://gitlab.com/ideasonboard/nxp/libcamera Re: How to setup and use the libcamera on the imx8mplus libcameraの正しいアップストリーム参照はhttps://gitlab.freedesktop.org/camera/libcameraです。また、ISPを持たないNXPデバイス向けにi.MX8MPやISI、SoftISPに対して非常に良好なサポートをしています。 しかし、6.6カーネルではi.MX8MPでlibcameraをサポートするには、6.6 NXP BSPにない追加のカーネルパッチが必要かもしれません。NXP BSPにこれらのパッチを追加できる https://git.ideasonboard.com/camera/meta-libcamera を始めましたが、これはFRDM-IXM8MPボード上でしかテストされていません。レイヤーにプラットフォームを追加するなら、どなたと協力してみたいと思っています。 マトリックスチャネルでコミュニケーションや質問をしたり、より直接的なlibcameraサポートを求めるメーリングリストに参加することもできます。 https://matrix.to/#/#libcamera:matrix.org https://lists.libcamera.org/listinfo/libcamera-devel
記事全体を表示
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 自社の基板の動作確認に追われているため、御社の基板をテストする時間がありませんでした。これはカーネルの退行だと考えています。
記事全体を表示
TEA2016 USB-I2C Programmer Unable to Program TEA2017AAT IC Hello, our customer is using NXP's "TEA2016 USB-I2C Programmer" to program the IC TEA2017AAT on the target board, and the previous burner can be used on Ringo software, including read/write. However, I bought some new programmers, and they look exactly the same as the previous ones, but I can't read/write the ICs of the target board with the same Ringo software. The specific connection is: PC- >burner- >target board. Just replacing the burner, all other conditions remain the same, but the new burner just doesn't work, the old burner works, and I can rule out the issue of the newly purchased burner being damaged, as the 3 new ones all have the same problem. Please advise me where the problem might be and what I need to do. The problem is shown in the attached picture. Thank you very much! Alternator Regulator Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC Your email with 126 is a low priority, please register with your company email to ask questionsticket via the link below: Home Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC What kind of company are you? Or you can leave a company e-mail address. Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC Hello. guoweisun One: Our burners are purchased from NXP's regular distributors, and we bought five of them for our customers. Second: These five burners are not unable to burn on all the customer's target boards, some boards are able to burn. But on the boards that can't be burned, they can be burned with the previous burners, so the customer finds it very strange, where exactly is the difference between the newly purchased ones and the old ones? I looked at the PCBs of both the new and old burners and they are the same version. It may be difficult to connect the photos of the boards, because the factory does not allow photos. But the old burner and the new burner are connected exactly the same way, with the same connecting wires, just replacing the burner gives two different results: the old one works, the new one does not. But the new burner can be recognized by the computer as a serial port, just that the serial port number is different from the one recognized by the old burner, for example, one is COM3 and the other is COM4, and I see that the software RINGO interface can't select the serial port, so it should be able to self-recognize internally. Third: the old burner When connecting to the computer, the customer's computer (one of the test) has three versions of RINGO, I have tested only one of the versions can be burned, this I do not think clear why? Fourth: burn the line with the burner's 6Pin interface, using four wires, two for the I2C interface, two for the power supply and ground, his board has no other power supply, directly with the burner's output power supply, I used a multimeter to measure, actually have 24V or so, so is it right? Of course, it is possible to burn. But when the new burner is connected, the power supply outputs the same 24V, but I can't burn it. Please help me to analyze how exactly I need to solve this problem, our customers are urging us every day because many boards cannot be burned with the new burner. Thank you very much! Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC Where did you purchase the burner? Also can you take a picture of the chip you burned? The whole connection Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC Hello, please allow me to describe the problem again, I have now changed to my company email as requested to re-register a user to ask the question. We are Dongguan Diyou Instrument Co., Ltd, we in DigiKey TECHNOLOGY through the agent to the customer on behalf of the purchase of a number of TER2016 burner: TEA2016DB1514USB-I2C interface board. The product diagram is shown in the attached picture. Now the problem encountered is described as follows: One: Our burners are purchased from NXP's regular distributors, and we bought five of them for our customers. Second: Because the customer also has old burners of the same model. These five new burners are not burnable on all the customer's target boards, some boards are burnable. But on the boards that couldn't be burned, it was possible to do so with the previous burners, so the customer found it very strange to find out what the difference was between the new ones and the old ones. I looked at the PCBs of both the new and old burners and they are the same version. It may be difficult to connect the photos of the boards, because the factory does not allow photos. But the old burner and the new burner are connected exactly the same way, with the same connecting wires, just replacing the burner gives two different results: the old one works, the new one does not. But the new burner can be recognized by the computer as a serial port, just that the serial port number is different from the one recognized by the old burner, for example, one is COM3 and the other is COM4, and I see that the software RINGO interface can't select the serial port, so it should be able to self-recognize internally. Third: the old burner When connecting to the computer, the customer's computer (one of the test) has three versions of RINGO, I have tested only one of the versions can be burned, this I do not think clear why? Fourth: burn the line with the burner's 6Pin interface, using four wires, two for the I2C interface, two for the power supply and ground, his board has no other power supply, directly with the burner's output power supply, I used a multimeter to measure, actually have 24V or so, so is it right? Of course, it is possible to burn. But when the new burner is connected, the power supply outputs the same 24V, but I can't burn it. Please help me to analyze exactly what needs to be done to solve this, the customer is urging us to solve this because many boards cannot be burned with the new burner. extremely grateful Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC Hello, I apologize for the delay in responding to the previous question after half a year, as the customer recently needed to reuse the programmer. Following up on the previous question: 1: The PCB is programmed without powering on. The power supply is directly drawn from the approximately 24V output of the programmer. 2: The new programmer cannot be used for programming, but the old programmer can be used for programming. 3: Actually, the version number and other information on the programmer board are all the same, and we bought it from an authorized distributor. I've attached an attachment with pictures. Please feel free to offer your advice; I'm currently unsure which direction to take to check for the problem.
記事全体を表示
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.
記事全体を表示
GuiGuiDer2.0.0を使用してターゲットデバイスを構築中にエラーが発生しました。 バージョン2.0.0を使用し、ARMを選択してfrdm_mcx947をベースにしたguiguiderプロジェクトを作成しました。GCCのバージョンは14.4.1です。 既にarm gccツールを設定済みです。 コンパイル中に次のエラーメッセージが発生しました: C:\Users\liujianhua>where arm-none-eabi-gcc D:\tools\GCC14\14.2\bin\arm-none-eabi-gcc.exe 11:41:00INFObuild-target Started11:41:00INFOTarget Executor initialized11:41:00INFOBuilding target with armgcc toolchain...11:41:00INFOStarting ARM GCC build...11:41:00INFOSearching for ARM GCC toolchain in system PATH...11:41:00INFOExecuting: where arm-none-eabi-gcc11:41:00INFO'where' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���11:41:00ERRORARM GCC not found in system PATH: Command failed with code 1: 'where' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� 11:41:00ERRORARM GCC build error: ARM GCC toolchain not found. Please install it and add to system PATH.11:41:00ERRORBuild failed: ARM GCC toolchain not found. Please install it and add to system PATH.11:41:00ERROROperation failed: ARM GCC toolchain not found. Please install it and add to system PATH. cmdを使ってコンパイラツールを見つけることに成功しました。 C:\Users\liujianhua>where arm-none-eabi-gcc D:\tools\GCC14\14.2\bin\arm-none-eabi-gcc.exe
記事全体を表示
TPL+33664+33774 I have been working on a BMS project recently and encountered the following issues.   The publicly available MC33664 datasheet downloaded from NXP’s official website does not contain any register descriptions for the MC33664 transceiver. In addition, the official demo code package I downloaded also lacks any routines for accessing and operating MC33664 internal registers. Does TPL3 communication require read/write access to MC33664’s registers?   If register operations are mandatory, could anyone share a complete MC33664 datasheet with full register specifications, as well as a sample demo project that implements MC33664 register read/write logic? Many thanks! Re: TPL+33664+33774 Hi, The datasheet you have downloaded is already the complete, full document. The MC33664 does not contain any internal registers and therefore does not require register read/write operations for TPL communication. The device acts as a transparent TPL physical-layer transceiver. It converts the MCU SPI transmit stream into TPL pulse-encoded signals and converts received TPL traffic back into SPI signals. As a result, communication with devices on the TPL network is performed by sending and receiving TPL frames through the SPI interface. You may be referring to the newer MC33665A gateway device, which does include internal registers, message queues, routing functions and a register-access protocol. The MC33665A full datasheet (available as a Secure file under NDA) therefore contains extensive register descriptions. We have SW device drivers available for both the MC33664 and MC33665 as part of the Gen1 SDK. As for the MC33664, the CDD layer on the MCU handles tasks such as pin timing to execute a wake-up sequence, configuring and managing two independent SPI blocks on the MCU simultaneously, interrupt routing etc. BRs, Tomas
記事全体を表示
An error occurred while building the target device using GuiGuiDer2.0.0. I have now created a guiguider project based on frdm_mcx947, using version 2.0.0, and selected ARM. The GCC version is 14.4.1. I have already configured the arm gcc tool. The following error message occurred during compilation: C:\Users\liujianhua>where arm-none-eabi-gcc D:\tools\GCC14\14.2\bin\arm-none-eabi-gcc.exe 11:41:00INFObuild-target Started11:41:00INFOTarget Executor initialized11:41:00INFOBuilding target with armgcc toolchain...11:41:00INFOStarting ARM GCC build...11:41:00INFOSearching for ARM GCC toolchain in system PATH...11:41:00INFOExecuting: where arm-none-eabi-gcc11:41:00INFO'where' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���11:41:00ERRORARM GCC not found in system PATH: Command failed with code 1: 'where' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� 11:41:00ERRORARM GCC build error: ARM GCC toolchain not found. Please install it and add to system PATH.11:41:00ERRORBuild failed: ARM GCC toolchain not found. Please install it and add to system PATH.11:41:00ERROROperation failed: ARM GCC toolchain not found. Please install it and add to system PATH. I was successful in finding the compiler tools using cmd: C:\Users\liujianhua>where arm-none-eabi-gcc D:\tools\GCC14\14.2\bin\arm-none-eabi-gcc.exe
記事全体を表示
TEA2016 USB-I2C プログラマーは TEA2017AAT IC をプログラムできません。 皆様、こんにちは。弊社のお客様はNXPの「TEA2016 USB-I2Cプログラマ」を使用して、ターゲットボード上のTEA2017AAT ICをプログラムされています。以前のプログラマはRingoソフトウェアで読み書きを含め問題なく動作していました。しかし、最近、以前のものと全く同じ外観の新しいプログラマをいくつか購入したのですが、同じRingoソフトウェアを使用してもターゲットボードのICの読み書きが全くできません。接続はPC -> プログラマ -> ターゲットボードです。プログラマのみを交換し、それ以外はそのままです。新しいプログラマは動作しませんが、古いものは動作します。新しいプログラマ3台すべてに同じ問題が発生しているため、新しいプログラマが破損している可能性は排除できます。問題の原因と対処方法についてご教示いただけますでしょうか?問題は添付画像をご覧ください。どうぞよろしくお願いいたします。 オルタネーターレギュレーター Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 126 のメールアドレスの優先度は非常に低いです。以下のリンクから、会社のメールアドレスを使用して質問チケットをご登録ください。 家 Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC どのような会社ですか? または、会社のメールアドレスを残すこともできます。 Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC こんにちは、グオウェイスン 1. 当社のプログラマーは NXP の正規代理店から購入しており、お客様用に 5 台購入しました。 2つ目:これら5つのプログラマは、すべてのお客様の対象ボードと互換性があるわけではありません。一部のボードはプログラム可能です。しかし、プログラムできなかったボードでも以前のプログラマはプログラムできたため、お客様を困惑させていました。新旧のプログラマの違いは一体何でしょうか?新旧のプログラマのPCBを調べたところ、同じバージョンでした。工場では写真撮影が禁止されているため、接続したボードの写真を提供することは困難です。ただし、新旧のプログラマの接続方法はまったく同じで、同じケーブルを使用しています。プログラマを交換するだけで、古いプログラマは動作しましたが、新しいプログラマは動作しませんでした。新しいプログラマは、コンピューターによってシリアルポートとして認識されますが、ポート番号が古いものと異なります(たとえば、1つはCOM3、もう1つはCOM4)。RINGOソフトウェアインターフェースではシリアルポートを選択できないため、内部に自己認識機能があるはずです。 3つ目に、古いバーナーをコンピュータに接続すると、お客様のコンピュータ(テスト用コンピュータの1台)にはRINGOの3つのバージョンがインストールされているのですが、テストしたところ、1つのバージョンしか書き込めませんでした。理由はわかりません。 4. プログラミングケーブルはプログラマの6ピンコネクタに接続し、4本のワイヤー(I2C用2本、電源とグランド用2本)が接続されています。ボードには他に電源はなく、プログラマの出力を直接使用しています。マルチメーターで測定したところ、約24Vを示しました。これは正しいでしょうか?はい、プログラミングは可能です。しかし、新しいプログラマを接続すると、出力も24Vになりますが、プログラミングに失敗します。 この問題の解決方法を分析していただければ幸いです。新人プログラマーが多くのボードをプログラムできないため、お客様から毎日問い合わせをいただいています。 どうもありがとうございます! Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC プログラマーはどこで買えますか? プログラムしたチップの写真も撮っていただけますか?接続方法全体も教えていただけますか? Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC こんにちは。問題について再度ご説明させてください。この質問をするために、メールアドレスを会社のメールアドレスに変更し、新しいユーザーアカウントを登録しました。 東莞迪有儀器有限公司でございます。お客様向けに、DigiKey社よりTER2016プログラマ( TEA2016DB1514 USB-I2Cインターフェースボード)を販売代理店経由で複数個購入しました。製品画像を添付しております。現在発生している問題は下記の通りです。 1. 当社のプログラマーは NXP の正規代理店から購入しており、お客様用に 5 台購入しました。 2つ目: お客様は同じ古いプログラマーも使用していました。これらの5台の新しいプログラマーは、お客様のすべてのターゲットボードと互換性があるわけではなく、一部のボードはプログラムできました。しかし、プログラムできなかったボードでは古いプログラマーが動作したため、お客様は新しいプログラマーと古いプログラマーの違いが何なのかと非常に混乱しました。私は新旧のプログラマーのPCBをチェックしましたが、それらは同じバージョンでした。工場では写真撮影が許可されていないため、接続されたボードの写真を撮るのは難しいかもしれません。しかし、新旧のプログラマーの接続方法はまったく同じで、同じ接続ケーブルを使用していました。プログラマーを交換するだけで、古いプログラマーは動作しましたが、新しいプログラマーは動作しませんでした。ただし、新しいプログラマーは、古いプログラマーとはシリアルポート番号が異なっているだけで、コンピューターによってシリアルポートとして認識されました(たとえば、1つはCOM3、もう1つはCOM4)。 RINGO ソフトウェア インターフェイスではシリアル ポートを選択できないことに気付きました。そのため、内部的に自己認識する必要があるようです。 3つ目に、古いバーナーをコンピュータに接続すると、お客様のコンピュータ(テスト用コンピュータの1台)にはRINGOの3つのバージョンがインストールされているのですが、テストしたところ、1つのバージョンしか書き込めませんでした。理由は分かりません。 4. プログラミングケーブルはプログラマの6ピンコネクタに接続し、4本のワイヤー(I2C用2本、電源とグランド用2本)が接続されています。ボードには他に電源はなく、プログラマの出力を直接使用しています。マルチメーターで測定したところ、約24Vを示しました。これは正しいでしょうか?はい、プログラミングは可能です。しかし、新しいプログラマを接続すると、出力も24Vになりますが、プログラミングに失敗します。 この問題の解決方法を分析していただけますか?新しいプログラマーでは多くのボードをプログラムできないため、お客様から解決を強く求められています。 どうもありがとう Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC こんにちは。前回の質問への回答が半年も遅れてしまい、申し訳ありません。お客様が最近、プログラマーを再利用する必要が生じたためです。 前の質問に続いて: 1:基板は電源を入れずにプログラムされます。電源はプログラマの約24V出力から直接供給されます。 2:新しいプログラマーはプログラミングに使用できませんが、古いプログラマーはプログラミングに使用できます。 3:実際、プログラマボードのバージョン番号やその他の情報はすべて同じで、正規代理店から購入しました。 写真を添付しました。何かアドバイスがあればぜひお聞かせください。現在、問題の原因究明のためにどの方向から調べれば良いのか分からずに困っています。
記事全体を表示
TPL+33664+33774 最近、BMSプロジェクトに取り組んでいて、以下の問題に遭遇しました。   NXPの公式ウェブサイトからダウンロードされた公開MC33664データシートには、MC33664トランシーバのレジスタ説明は含まれていません。さらに、私がダウンロードした公式デモコードパッケージには、内部レジスタへのアクセスや操作MC33664ルーチンが一切含まれていません。 TPL3の通信にはMC33664のレジスタへの読み書きアクセスが必要ですか?   レジスタ操作が必須なら、完全なMC33664データシートと、レジスタ読み書きロジックを実装したサンプルデモプロジェクトMC33664誰か共有できますか?どうもありがとうございました! Re: TPL+33664+33774 こんにちは、 ダウンロードされたデータシートは、既に完全な文書です。MC33664には内部レジスタが含まれていないため、TPL通信においてレジスタの読み書き操作は必要ありません。 このデバイスは透過的なTPL物理層トランシーバとして機能します。MCU SPIの送信ストリームをTPLパルス符号化信号に変換し、受信したTPLトラフィックを再びSPI信号に変換します。その結果、TPLネットワーク上のデバイスとの通信は、TPIインターフェースを通じてTPLフレームの送受信によって行われます。 あなたが言及しているのは、内部レジスタ、メッセージキュー、ルーティング機能、レジスタアクセスプロトコルを含む新しいMC33665Aゲートウェイデバイスのことかもしれません。そのため、MC33665Aの完全なデータシート(NDAに基づきセキュアファイルとして入手可能)には、詳細なレジスタの説明が含まれています。 Gen1 SDKの一部として、MC33664とMC33665の両方にSWデバイスドライバーを提供しています。MC33664については、MCUのCDD層が、ウェイクアップシーケンスを実行するピンタイミング、MCU上の2つの独立したSPIブロックを同時に設定・管理、割り込みルーティングなどのタスクを処理します。 BRs、トーマス
記事全体を表示
How to setup and use the libcamera on the imx8mplus We need to perform the libcamera software ISP on the imx8mplus board to understand how efficiently it can work. According to official libcamera documents it have the support for the IMX8MP for both hardware ISP and also with ISI. I think from the ISI it is with software ISI. But the documentation/guide to perform this is unclear and very confusing. I am new to libcamera and a lot of confusions on how it works exactly and how it is going to help us in this software ISP part. we have tested the gstreamer bayer2rgb element also, not satisfied with results.  Our som is imx8mplus & kernel version  6.6.52-compulab-4.1-g94ac18e782b4-dirty. Thanks and regards  Vishnu S i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to setup and use the libcamera on the imx8mplus Hello,   For the implementation of libcamera in our BSP you can refer to chapter 7.3.9 Libcamera in the i.MX Linux User's Guide    Also as reference there is an open source on GitLab  https://gitlab.com/ideasonboard/nxp/libcamera  Re: How to setup and use the libcamera on the imx8mplus The correct upstream reference for libcamera is https://gitlab.freedesktop.org/camera/libcamera and has very good support for i.MX8MP or the ISI and SoftISP for the NXP devices without an ISP. Howveer, on a 6.6 kernel, for libcamera support on i.MX8MP you might need benefit from additional kernel patches which are not in the 6.6 NXP BSP.  We've started https://git.ideasonboard.com/camera/meta-libcamera which can add these patches to the NXP BSP - but it's only been tested on the FRDM-IXM8MP board. We'd be happy to work with anyone to add more platforms to the layer. You can communicate and ask questions on the matrix channel or join the mailing list for more direct libcamera support: https://matrix.to/#/#libcamera:matrix.org https://lists.libcamera.org/listinfo/libcamera-devel
記事全体を表示
TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC         大家好,我司的客户使用NXP的“TEA2016 USB-I2C 编程器” 对目标板的IC TEA2017AAT进行编程,之前的烧录器可以在Ringo软件上进行使用,包括读写。但是新买了几台 烧录器,看起来和之前的烧录器一模一样,但是就是无法在同样的Ringo软件上对目标板的IC进行读写。具体的连接为:PC->烧录器->目标板子。只是更换烧录器,其他条件不变,但是新的烧录器就是不能用,旧的烧录器可以用,可以排除新买烧录器损毁的问题,因为新买的3台都一样的问题。请教各位,可能是哪里的问题,我需要怎样做。问题如附图所示。非常感谢! Alternator Regulator Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 您用126的邮箱是优先级很低的,请用公司邮箱注册提问ticket通过下面的链接: Home Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 你们是什么公司? 或者你留个公司的邮箱 Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 您好,guoweisun             一:我们的烧录器是向NXP的正规代理商进行购买的,我们给客户买了五个。            二:这五个烧录器并不是在所有的客户的目标板子上都不能烧录,有的板子是可以烧录的。但是在不能烧录的板子上,用之前的烧录器是可以烧录的,所以客户觉得非常奇怪,到底新买的和旧的之间的差异在哪里?我看了新的和旧的烧录器的PCB都是同一个版本的。连接板子的照片可能很难,因为厂里面不允许拍照。但是旧的烧录器和新的烧录器的连接方式一模一样,用的是同样的连接线,只是替换掉烧录器,就出现两种不同结果:旧的可以,新的就不行。但是新的烧录器是可以被电脑识别为一个串口的,只是串口号和旧的烧录器识别的串口号不一样,比如一个是COM3,一个是COM4,我看软件RINGO界面也不能选择串口,所以应该内部可以自识别。        三:旧的烧录器 在连接电脑的时候,客户的电脑(其中进行测试的一台)有三个版本的RINGO,我测试过也是只有其中一个版本可以进行烧录,这个我也想不清楚为什么?        四:烧录的线用烧录器的6Pin的接口,用了4根线,2根为I2C接口,两根为电源和地,他的板子没有其他电源供电,直接用烧录器的输出电源,我用万用表量过,居然有24V左右,这样是对的吗?当然,是可以烧录的。但是新的烧录器接上后,电源一样是输出24V,但是无法烧录。        请帮我分析一下到底需要如何解决,客户天天催我们,因为新的烧录器很多板子都不能烧录。 非常感谢! Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 烧录器哪里购买的? 另外您烧写的芯片能拍个照片吗?整个的连接方式 Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 您好,请允许我再次描述问题,我现在已经按照要求更换为公司邮箱来重新注册一个用户进行提问。         我们是东莞帝佑仪器有限公司,我们在DigiKey得捷上通过代理商给客户代购了多个TER2016的烧录器:TEA2016DB1514 USB-I2C接口板。产品图如附图所示。现在遇到的问题描述如下: 一:我们的烧录器是向NXP的正规代理商进行购买的,我们给客户买了五个。 二:因为客户也有同款的旧的烧录器。这五个新的烧录器并不是在所有的客户的目标板子上都不能烧录,有的板子是可以烧录的。但是在不能烧录的板子上,用之前的烧录器是可以烧录的,所以客户觉得非常奇怪,到底新买的和旧的之间的差异在哪里?我看了新的和旧的烧录器的PCB都是同一个版本的。连接板子的照片可能很难,因为厂里面不允许拍照。但是旧的烧录器和新的烧录器的连接方式一模一样,用的是同样的连接线,只是替换掉烧录器,就出现两种不同结果:旧的可以,新的就不行。但是新的烧录器是可以被电脑识别为一个串口的,只是串口号和旧的烧录器识别的串口号不一样,比如一个是COM3,一个是COM4,我看软件RINGO界面也不能选择串口,所以应该内部可以自识别。 三:旧的烧录器 在连接电脑的时候,客户的电脑(其中进行测试的一台)有三个版本的RINGO,我测试过也是只有其中一个版本可以进行烧录,这个我也想不清楚为什么? 四:烧录的线用烧录器的6Pin的接口,用了4根线,2根为I2C接口,两根为电源和地,他的板子没有其他电源供电,直接用烧录器的输出电源,我用万用表量过,居然有24V左右,这样是对的吗?当然,是可以烧录的。但是新的烧录器接上后,电源一样是输出24V,但是无法烧录。 请帮我分析一下到底需要如何解决,客户催促我们解决,因为新的烧录器很多板子都不能烧录.        非常感谢 Re: TEA2016 USB-I2C 编程器 无法编程TEA2017AAT IC 您好,抱歉时隔半年才来继续之前的问题,因为最近客户需要重新使用烧录器。 接之前的问题: 1:PCB板上进行烧录,PCB不上电,直接取烧录器输出的24V左右的电源来供电。 2:新的烧录器不能进行烧录,但是旧的烧录器可以进行烧录。 3:其实烧录器的板子上版本号等都一样,而且我们是从正规代理商买入。 我附上附件,里面有图片,请各位不吝指教,现在不知往那个方向检查问题。
記事全体を表示
TPL+33664+33774 我最近在做一个楼宇管理系统(BMS)项目,遇到了以下问题。   从 NXP 官方网站下载的公开 MC33664 数据手册中没有 MC33664 收发器的任何寄存器描述。此外,我下载的官方演示代码包也缺少访问和操作 MC33664 内部寄存器的任何例程。 TPL3 通信是否需要对 MC33664 的寄存器进行读/写访问?   如果寄存器操作是必需的,请问有人可以分享一份完整的 MC33664 数据手册,其中包含完整的寄存器规格,以及一个实现 MC33664 寄存器读/写逻辑的示例演示项目吗?非常感谢! Re: TPL+33664+33774 您好, 您下载的数据表已经是完整的文档了。MC33664 不包含任何内部寄存器,因此 TPL 通信不需要寄存器读/写操作。 该设备可用作透明的TPL物理层收发器。它将 MCU SPI 发送流转换为 TPL 脉冲编码信号,并将接收到的 TPL 流量转换回 SPI 信号。因此,与 TPL 网络上的设备通信是通过 SPI 接口发送和接收 TPL 帧来实现的。 您指的是较新的 MC33665A 网关设备,它确实包含内部寄存器、消息队列、路由功能和寄存器访问协议。因此,MC33665A 的完整数据手册(根据保密协议以安全文件形式提供)包含详尽的寄存器描述。 作为Gen1 SDK的一部分,我们提供了适用于 MC33664 和 MC33665 的软件设备驱动程序。至于 MC33664,MCU 上的 CDD 层负责处理诸如引脚定时以执行唤醒序列、同时配置和管理 MCU 上的两个独立的 SPI 模块、中断路由等任务。 BRs,托马斯
記事全体を表示
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の中にブレークポイントを入れることはできますか? よろしくお願いします、 ジュリアン
記事全体を表示
如何在 imx8mplus 上设置和使用 libcamera 我们需要在 imx8mplus 主板上运行 libcamera 软件 ISP,以了解它的工作效率。根据 libcamera 官方文件,它支持 IMX8MP 硬件 ISP 和 ISI。我认为从 ISI 来看,它与软件 ISI 有关。但是,执行此操作的文件/指南并不明确,而且非常混乱。我是 libcamera 的新手,对它的具体工作原理和如何帮助我们完成软件 ISP 部分有很多困惑。我们也测试了 gstreamer bayer2rgb 元件,但对结果不满意。 我们的操作系统是 imx8mplus& 内核版本 6.6.52-compulab-4.1-g94ac18e782b4-dirty。 谢谢并问候 Vishnu S i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to setup and use the libcamera on the imx8mplus 你好   要在我们的 电路板支持包 中实现 libcamera,可以参阅 i.MX Linux 用户指南 中的第 7.3.9 章 Libcamera   作为参考,GitLab 上还有一个开源 https://gitlab.com/ideasonboard/nxp/libcamera Re: How to setup and use the libcamera on the imx8mplus libcamera 的正确上游引用是https://gitlab.freedesktop.org/camera/libcamera并且对 i.MX8MP 或 ISI 和 SoftISP(适用于没有 ISP 的 NXP 设备)有很好的支持。 但是,在 6.6 内核上,要使 i.MX8MP 获得 libcamera 支持,您可能需要额外的内核补丁,而这些补丁在 6.6 NXP BSP 中并不存在。我们已经启动了https://git.ideasonboard.com/camera/meta-libcamera ,它可以将这些补丁添加到 NXP BSP 中 - 但它只在 FRDM-IXM8MP 板上进行了测试。我们乐于与任何人合作,为该层添加更多平台。 您可以通过矩阵频道进行交流和提问,或者加入邮件列表以获得更直接的 libcamera 支持: https://matrix.to/#/#libcamera:matrix.org https://lists.libcamera.org/listinfo/libcamera-devel
記事全体を表示
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
記事全体を表示
S32K3:睡眠模式下的 WKPU 唤醒中断行为 您好,NXP技术支持, 我们正在使用S32K312 MCU ,并配置了一个带有中断回调的WKPU(唤醒单元)通道。 注意:将 Wkpu[n] 的偏移量加上 4 -> n+4 我们想澄清一下当 ECU 进入低功耗模式时 WKPU 的行为。 我们的问题是: 如果 MCU 处于睡眠/待机模式,WKPU 是否会继续监控已配置的外部唤醒引脚? 当在睡眠/待机模式下检测到配置的外部边沿时,WKPU 是否会唤醒 MCU? MCU唤醒后,配置的WKPU中断回调会自动执行,还是需要额外的软件处理? 要确保从睡眠/待机模式唤醒,是否需要特定的 WKPU、NVIC 或电源管理单元配置? S32K312 支持的低功耗模式(睡眠、停止、待机等)之间,WKPU 唤醒行为是否存在差异? 我们使用NXP RTD驱动程序来驱动S32K312。 感谢您的支持。 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 配置 NVIC_ISER),则您的程序将跳转到唤醒中断函数。 S32K3 仅支持两种模式:运行和待机。 Julin_AragnM_7-1783635768438.png 但是,唤醒行为有所不同,因为 S32K3 可以选择正常待机退出或快速待机退出: Julin_AragnM_8-1783635776576.png RESET 和正常待机退出将执行 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 驱动程序作为外设? 这也没错。您可以使用回调配置来了解在 Standby 之前是否调用了 WKPU 请求。 如果需要回调,是否需要其他配置(例如,NVIC、中断路由、WKPU 设置或模式相关的限制)? 请参阅第一个回复。 能否在 MCU 退出待机状态(唤醒)后立即停止它,并在 WKPU_EXT_IRQ_SINGLE_ISR 内部设置断点,看看 MCU 是否会跳转到该断点? 此致, 朱利安
記事全体を表示
Software ISP on the IMX8Mini We are using a IMX8mini, previously we used to work with imx8mplus which has the inbuilt hardware ISP, but the IMX8Mini does't have the hardware ISP support.  What are the options do we have to do the debayering, 3A, gamma and other ISP functionalities. In my exploration, we found NXP Soft ISP not available on the imx8mini, libcamera is not officially supported on the imx8mini and we have no experience in integrating the libcamera and their pipeline handlers stuff. One more thing, in imx8mplus we routed video through the ISP or there is a provision to route video through ISI in capture mode. How does that happens in the imx8mini, no vvcam stack stuff? By the way, our camera doesnt have inbuilt ISP, we have to perform the software ISP on the processor itself. I hope some of you guys know this. Thanks and regrads S Vishnu   i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus Re: Software ISP on the IMX8Mini HI @SiddavatamVishnu, On the i.MX8M Mini, the camera data goes straight from the sensor to memory using CSI + ISI. ISI is not an ISP; it only moves images around and can resize them a bit. There is no stage where RAW images can be processed like on i.MX8M Plus, and there is no vvcam or Soft ISP stack available. Libcamera is supported only in a very limited way on i.MX8M Mini. It works only with cameras that already have an ISP inside the sensor (so‑called “smart cameras”). Libcamera on i.MX8MM does not add ISP features; it just helps manage capture. It cannot replace a missing ISP. Doing a full software ISP on the CPU is technically possible but not recommended due to high CPU load, power consumption, and complexity, and NXP does not provide or support such a solution on i.MX8M Mini. In i.MX8M Mini is capture only for cameras. If ISP features are required, they must be handled outside the SoC. Best Regards, Chavira Re: Software ISP on the IMX8Mini libcamera has a GPU implementation of the SoftISP which could be used on the i.MX8MM but may not give high throughput as I don't think the GPU on the i.MX8MM is very large. It functions, but not at high framerates, so it likely depends on what your requirements are.
記事全体を表示
IMX8Mini 上的软件 ISP 我们使用的是 IMX8mini,以前我们使用的是 IMX8mplus,它有内置硬件 ISP,但 IMX8Mini 不支持硬件 ISP。 我们可以选择哪些方式来进行去毛刺、3A、伽马和其他 ISP 功能。在我的探索中,我们发现imx8mini上不提供恩智浦软互联网服务提供商,imx8mini不正式支持libcamera,而且我们在集成libcamera及其流水线处理程序方面没有经验。 还有一件事,在imx8mplus中,我们通过互联网服务提供商路由视频,或者有配置在捕获模式下通过ISI路由视频。在没有 vvcam 栈的情况下,imx8mini 是如何做到这一点的? 顺便说一下,我们的相机没有内置 ISP,必须在处理器上执行软件 ISP。 我希望你们中有人知道这一点。 谢谢 S Vishnu i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: Software ISP on the IMX8Mini HI@SiddavatamVishnu, 在 i.MX8M Mini 上,摄像头数据通过 CSI + ISI 直接从传感器传输到内存。ISI 不是互联网服务提供商;它只能移动图像并调整其大小。i.MX8M Plus 没有处理 RAW 图像的阶段,也没有 vvcam 或 Soft ISP 栈。 i.MX8M Mini 仅以非常有限的方式支持 Libcamera。它只适用于传感器内已安装 ISP 的相机(即所谓的 "智能相机")。i.MX8mm 上的 libcamera 不添加 ISP 功能;它只是帮助管理捕获。 在 CPU 上执行完整的软件 ISP 在技术上是可行的,但由于 CPU 负载高、功耗大和复杂性高,因此不推荐使用,恩智浦也不提供或支持 i.MX8M Mini 上的此类解决方案。 在 i.MX8M Mini 中,只能为摄像机捕获。如果需要 ISP 功能,则必须在 SoC 外部处理。 致以最崇高的敬意 查维拉 Re: Software ISP on the IMX8Mini libcamera 有一个基于 GPU 的 SoftISP 实现,可以在 i.MX8MM 上使用,但可能不会提供高吞吐量,因为我认为 i.MX8MM 上的 GPU 并不大。它可以运行,但帧率不高,所以这可能取决于您的具体需求。
記事全体を表示
What Is Model-Based Design? A Practical Introduction for Modern Embedded Systems   Table of Contents Why embedded development needs a better workflow What Model-Based Design is A simple mental model: from idea to executable model to hardware Why engineers use it: the core advantages Verification along the way: MIL, SIL, PIL, HIL How NXP enables this with Model-Based Design Toolbox (MBDT) What comes next in this article series 1 Why embedded development needs a better workflow Modern embedded systems are no longer isolated functions running on a single controller. In today's vehicles and intelligent machines, applications span sensing, communication, control, safety logic, diagnostics, and multiple processing nodes that must work together as one system. As this complexity grows, traditional workflows based mainly on handwritten code and late-stage hardware testing become difficult to scale, hard to validate early in the development cycle, and slow to iterate. Issues are often discovered late, when integration becomes more costly and harder to manage. Model-Based Design offers an alternative approach designed to address these challenges. It enables earlier validation and a more structured development flow, where verification is not an afterthought, but part of every stage of development. 2 What Model-Based Design is   Picture1.png Model-Based Design is a visual way of programming, where you build your functionality by drawing an engineering diagram, and that diagram can be executed—either as a simulation on your computer or as code running on real hardware. In this approach, models become the central engineering artifact used to design, simulate, verify, and deploy embedded systems. Instead of starting from low-level implementation details, engineers create an executable model of the application behavior, simulate, verify, refine it, and then generate code for the target system. This model-centric workflow makes designs easier to understand, easier to reuse, and less prone to errors. It also enables model-based testing, where test cases can be derived directly from system models and used to verify behavior early in development. 3 A simple mental model: from idea to executable model to hardware A simple way to think about Model-Based Design is this: you describe what the system should do in an executable model, validate that behavior in simulation, and then carry the same design through to the final implementation. In this approach, the model is not just documentation—it becomes an active engineering asset used for design, simulation, verification, and code generation. This creates a direct path from idea to application, where requirements, design, prototyping, testing, and deployment are connected in one continuous workflow. 4 Why engineers use it: the core advantages One of the biggest advantages of Model-Based Design is that it changes where engineering effort is spent. Instead of focusing primarily on how to implement functionality at a low level, engineers can focus on what the system should do—its behavior, control strategy, and response to real-world scenarios. This approach also enables early validation. System behavior can be simulated on a PC before the final hardware is available, allowing issues to be detected earlier and reducing costly rework late in the development cycle. In addition, Model-Based Design enables hardware-independent simulation, where algorithms can be developed and validated before being tied to a specific target platform. This allows teams to explore designs faster and reuse validated functionality across different hardware solutions. As a result, teams benefit from: faster iteration during development improved traceability between design and implementation reduced integration risk more consistent validation across development stages Ultimately, this contributes directly to faster time-to-market, as development cycles are shortened and fewer late-stage issues need to be addressed. Some concrete examples can be found in the following articles: From Virtual Vehicle to All-Electric Off-Road UTV in Less Than a Year Dyson Accelerates New Product Development with System-Level Simulation 5 Verification along the way: MIL, SIL, PIL, HIL A key strength of Model-Based Design is that validation happens continuously throughout development. This is typically organized into several stages: Model-in-the-Loop (MIL): the model is tested against a simulated environment Software-in-the-Loop (SIL): generated code is executed on the host PC and compared to model behavior Processor-in-the-Loop (PIL): code runs on the target MCU to verify functional correctness and performance Hardware-in-the-Loop (HIL): the controller is tested against a real-time or emulated system before final deployment These stages provide a structured validation path, ensuring that issues are detected early and confidence is built progressively before running on final hardware. Model-Based Design also supports reuse and scalability. A validated model can be adapted, parameterized, or reused across multiple systems, reducing development effort and improving consistency. 6 How NXP enables this with Model-Based Design Toolbox (MBDT) Picture2.png To make this workflow practical on real embedded hardware, NXP provides the Model-Based Design Toolbox (or MBDT). This acts as a bridge between the MathWorks' and NXP's software ecosystems, and allows the entire workflow to be done from one environment, as depicted in the diagram above. Concretely, this allows engineers to use MATLAB and Simulink to design, simulate, verify, and automatically generate code that can run directly on NXP microcontrollers and processors. MBDT provides: block libraries for hardware access integration with configuration tools for pins, clocks, and peripherals support for PIL workflows code generation and deployment capabilities profiling and runtime monitoring through tools like FreeMASTER This creates a complete end-to-end flow—from model to validated application running on target hardware. Engineers can explore functionality at a high level, validate behavior through simulation, and deploy with confidence onto real systems. 7 What comes next in this article series In the articles that follow, we will move from this general introduction to concrete, real application examples. We will show how Model-Based Design and NXP tools can be applied across a modern system architecture, covering applications such as battery management, motor control, radar, steering, lighting, and parking sensors. Each example will illustrate how functions can be designed, validated in simulation, and deployed onto the appropriate hardware nodes. The key idea is simple: Model-Based Design helps engineers focus on system behavior while reducing the gap between concept, implementation, and validation. With NXP's Model-Based Design Toolbox, this approach can be carried from the modeling environment all the way to a running application on hardware. MBDT  https://www.nxp.com/mbdt https://mathworks.com/nxp 
記事全体を表示