Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
S32 Design Studio 3.6.0 - 主要功能 (在 “我的视频” 中查看) 这段短视频介绍了 S32 Design Studio 3.6.0 版本所引入的主要功能。 视频展示了 S32DS 3.5 版本与 3.6 版本在产品架构及版本变更方面的对比,随后简要概述了新引入的主要功能,这些功能会对所有使用该工具集新版本的用户产生影响。 Eclipse IDE 使用和设置 概述
查看全文
Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction Board: Custom S32G399A based module, derived from S32G-VNP-RDB3. PFE_MAC1 connected via RGMII (PE_02–PE_13) to an NXP SJA1110A switch port 2, configured as the DSA CPU port (in-tree sja1105 driver, kernel 6.x BSP43.0). Topology: - PFE_MAC0: SGMII via SerDes1 lane1, Mode 1 - PFE_MAC1: RGMII to SJA1110A port 2 (DSA CPU port) — the port in question - PFE_MAC2: SGMII via SerDes0 lane1 The S32G MACs are configured as follows: +---------+--------------+------------------+ |                    | LANE 0               | LANE 1                        | +---------+--------------+------------------+ | SERDES0    | GMAC (SGMII) | PFE_MAC2 (SGMII)  | | SERDES1      | NOT USED        | PFE_MAC0 (SGMII) | +---------+--------------+------------------+ Full U-Boot hwconfig: hwconfig=pcie0:mode=sgmii,clock=ext,fmhz=100,xpcs_mode=both;pcie1:mode=sgmii,clock=ext,fmhz=100,xpcs_mode=0 pfeng_mode=enable,sgmii,rgmii,sgmii DTS for port@2 (switch side): port@2 { reg = <2>; label = "OBC-1"; ethernet = <&pfe_netif1>; phy-mode = "rgmii"; rx-internal-delay-ps = <0>; tx-internal-delay-ps = <0>; fixed-link { speed = <1000>; full-duplex; }; }; DTS for pfe_netif1 (MAC side): &pfe_netif1 { phy-mode = "rgmii"; status = "okay"; fixed-link { speed = <1000>; full-duplex; }; }; PFE_MAC1 (pfe1) link state — confirmed up and correctly configured at the Linux/driver level: dmesg at boot: [ 5.264108] pfeng 46000000.pfe: netif name: pfe1 [ 5.274127] pfeng 46000000.pfe: netif(pfe1) linked phyif: 1 [ 5.279692] pfeng 46000000.pfe: netif(pfe1) mode: std [ 5.284853] pfeng 46000000.pfe: netif(pfe1) HIFs: count 1 map 02 [ 6.012884] pfeng 46000000.pfe pfe1 (uninitialized): Subscribe to HIF1 [ 6.019438] pfeng 46000000.pfe pfe1 (uninitialized): Host LLTX disabled [ 6.026270] pfeng 46000000.pfe pfe1 (uninitialized): Enable HIF1 [ 6.032374] pfeng 46000000.pfe pfe1 (uninitialized): setting MAC addr: 00:04:9f:be:ef:01 [ 6.040545] pfeng 46000000.pfe pfe1 (uninitialized): PTP HW addend 0x80000000, max_adj configured to 46566128 ppb [ 6.060939] pfeng 46000000.pfe pfe1 (uninitialized): Registered PTP HW clock successfully on EMAC1 [ 6.070441] pfeng 46000000.pfe pfe1: registered [ 6.207482] pfeng 46000000.pfe pfe1: configuring for fixed/rgmii link mode [ 6.214306] pfeng 46000000.pfe pfe1: Set TX clock to 125000000Hz [ 6.220158] pfeng 46000000.pfe pfe1: Link is Up - 1Gbps/Full - flow control off [ 5.257995] pfeng 46000000.pfe: EMAC0 interface mode: 4 [ 5.290707] pfeng 46000000.pfe: EMAC1 interface mode: 9 [ 5.323320] pfeng 46000000.pfe: EMAC2 interface mode: 4 [ 5.354571] pfeng 46000000.pfe: Interface selected: EMAC0: 0x4 EMAC1: 0x9 EMAC2: 0x4 [ 5.382609] pfeng 46000000.pfe: TX clock on EMAC0 for interface sgmii installed [ 5.390050] pfeng 46000000.pfe: RX clock on EMAC0 for interface sgmii installed [ 5.404998] pfeng 46000000.pfe: TX clock on EMAC1 for interface rgmii installed [ 5.419918] pfeng 46000000.pfe: Defer enabling of RX clock on EMAC1 for interface rgmii (ret: -5) [ 5.434235] pfeng 46000000.pfe: TX clock on EMAC2 for interface sgmii installed [ 5.448374] pfeng 46000000.pfe: RX clock on EMAC2 for interface sgmii installed [ 5.667058] pfeng 46000000.pfe: EMAC timestamp external mode bitmap: 0 [ 5.998447] pfeng 46000000.pfe pfe0 (uninitialized): Registered PTP HW clock successfully on EMAC0 [ 6.060939] pfeng 46000000.pfe pfe1 (uninitialized): Registered PTP HW clock successfully on EMAC1 [ 6.130296] pfeng 46000000.pfe pfe2 (uninitialized): Registered PTP HW clock successfully on EMAC2 [ 6.215040] pfeng 46000000.pfe: RX clock on EMAC1 for interface rgmii installed Live DTB confirms the kernel matches the source DTS: # cat /proc/device-tree/soc/pfe@46000000/ethernet@11/phy-mode rgmii ip a output: 6: pfe1: mtu 1536 qdisc mq state UP group default qlen 1000 link/ether 00:04:9f:be:ef:01 brd ff:ff:ff:ff:ff:ff inet6 fe80::204:9fff:febe:ef01/64 scope link All SJA1110 DSA slave ports correctly enumerated. This confirms the sja1105 DSA driver bound successfully to pfe1 as the CPU port/DSA master and parsed the static config without error. Clock tree: both TX and RX RGMII clocks enabled and attached to the correct consumer: # cat /sys/kernel/debug/clk/clk_summary | grep pfe1 pfe1_tx_mii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id pfe1_rx_mii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id pfe1_tx_rmii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id pfe1_rx_rmii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id pfe1_tx_rgmii 1 1 0 125000000 0 0 50000 Y ethernet@11 tx_rgmii pfe1_rx_rgmii 1 1 0 125000000 0 0 50000 Y ethernet@11 rx_rgmii pfe1_tx_sgmii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id pfe1_rx_sgmii 0 0 0 125000000 0 0 50000 Y deviceless no_connection_id So pfe1 is UP, LOWER_UP, correctly bound to the SJA1110 as DSA master, running in RGMII mode with both clocks enabled — this rules out pfe1 being down, unbound, or misconfigured at the Linux/driver level. The open question is specifically whether frames actually cross the physical RGMII pins between PFE_MAC1 and SJA1110 port 2. Issue: No traffic appears to cross the RGMII bus between PFE_MAC1 and SJA1110 port 2 in either direction, despite everything on both sides of that bus being independently up: Test 1 — S32G -> switch direction Setup: ip addr add 192.168.1.100/24 dev EPS-100bt1-9 ethtool -S pfe1 | grep '^ p02_' > before tcpdump -i pfe1 -e -nn -c 20 > capture.txt & arping -c 10 -I EPS-100bt1-9 192.168.1.6 ethtool -S pfe1 | grep '^ p02_' > after # arping -c 10 -I EPS-100bt1-9 192.168.1.6 ARPING 192.168.1.6 from 192.168.1.100 EPS-100bt1-9 Sent 10 probes (10 broadcast(s)) Received 0 response(s) $ cat capture.txt tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on pfe1, link-type NULL (BSD loopback), snapshot length 262144 bytes 18:08:36.352535 AF Unknown (4294967295), length 64: 0x0000: ffff 0004 9fbe ef01 dadb 0c09 0806 0001 ................ 0x0010: 0800 0604 0001 0004 9fbe ef01 c0a8 0164 ...............d 0x0020: ffff ffff ffff c0a8 0106 0000 0000 0000 ................ 0x0030: 0000 0000 0000 0000 0000 0000 ............ [... 9 more identical ARP frames, all correctly DSA-tagged (dadb 0c09) and well-formed, plus one unrelated IPv6 background frame interleaved ...] # diff before after --- before +++ after @@ -1,4 +1,4 @@ - p02_: 1 + p02_: 0 p02_n_runt: 0 p02_n_soferr: 0 p02_n_alignerr: 0 # grep n_rxfrm before after before: p02_n_rxfrm: 0 after: p02_n_rxfrm: 0 Test 2 — switch -> S32G direction Setup Partner board is a separate SJA1105 switch based board. # ping -c 10 -I t1-6 192.168.1.100 (run on a separate SJA1105/1110-family switch board connected to our port 9 / 100BASE-T1 / EPS-100bt1-9) # diff before after (ethtool -S EPS-100bt1-9) - n_rxfrm: 0 + n_rxfrm: 9 <- port 9 physically received 9 frames from the wire # diff before after - p02_n_txfrm: 0 + p02_n_txfrm: 9 <- switch fabric forwarded all 9 toward the CPU port # tcpdump -i pfe1 -e -nn -c 20 (same window) listening on pfe1, link-type NULL (BSD loopback), snapshot length 262144 bytes [-- nothing captured --] Port 9 received 9 real frames; the fabric forwarded all 9 toward port 2 — but nothing arrived at pfe1. So the SJA1110's own fabric counters show all 9 frames successfully forwarded from port 9 to port 2's egress. But tcpdump -i pfe1 -e -nn on the S32G during this exact test shows NOTHING received. So the DSA/software layer on the S32G side believes it's sending (case 1). The switch's internal fabric believes it's sending toward the CPU port (case 2). Neither side has any confirmation that the other actually received anything across the physical RGMII bus. Every layer adjacent to this bus works individually; the bus itself has no confirmed successful crossing in either direction. What's been ruled out so far: - pfeng_mode / hwconfig (xpcs_mode) — confirmed correct; EMAC1 mode is RGMII (0x9), not SGMII (it was previously misconfigured as SGMII due to xpcs_mode=both on SerDes1 forcing PFE_MAC1's XPCS into SGMII; corrected to xpcs_mode=0 since PFE_MAC0 alone only needs XPCS0) - PFE_MAC1 TX/RX clock enablement — confirmed enabled at the correct rate (125MHz) in clk_summary - DSA tagging and CPU port binding — confirmed working (port netdevs exist, frames get tagged with the correct destination port in the DSA header) - SJA1110 internal fabric/forwarding — confirmed working between two other ports (9 and 2) using real external traffic - BASE-T1 link partner — confirmed passing real frames into the switch (port 9 n_rxfrm increments from genuine wire traffic) What hasn't been ruled out / open questions: - Whether 1000 Mbps RGMII with zero internal delay on both MAC and switch sides (rx/tx-internal-delay-ps=0, plain "rgmii" not "rgmii-id") is compatible without delay added by board trace length — have not yet tried forcing the link down to 100 Mbps as a timing-margin test 1. Is rx/tx-internal-delay-ps=0 on both ends at 1000 Mbps RGMII expected to work, or does this combination typically require delay compensation unless the PCB explicitly accounts for it? 2. Am I missing any other configuration? Happy to share full register dumps, if required. Appreciate any pointers before we probe the PE_02-13 bus with a logic analyzer (limited probe access due to board layout, so it is not so convenient currently. Thanks. Re: Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction Hi @Joey_z @db16122 I am attaching the relevant sections of the schematics here. The connection flow is as follows: We use PE_02 to PE_13 on the S32G3 chip shown in s32g3_pfe_mac1_connections.png for the PFE_MAC1. They go to a board to board connector (shown in Board_to_board_connector.png) that routes these signals to  a different board that has the switch. The switch connections are shown in SJA1110_A.png and SJA1110_B.png. So the connection is PE_xx pins -> board connectors -> switch (SJA1110) Please let me know if you have any questions. I have also raised a support ticket ( #00990408) with the same details.  Re: Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction Hi,pcentauri92 Thank you for your reply. Please provide me with the schematic diagrams related to your ETH, particularly the ones for PFE_MCA1 and SJA1110 sections. You can create an internal support system case. In the information description, @Joey, then provide your schematic diagram information. Refer to this website: https://support.nxp.com BR Joey Re: Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction Hi @Joey_z , Thank you for the response. The module in question here is a custom design that uses the S32G399A chip along with the NXP SJA1110A ethernet switch. We based this design on the S32G-VNP-RDB3 development platform but we made quite a few changes from the base design. The PFE_MAC1 using RGMII is one of those changes.  I am also attaching the dts file override where we change the PFE_MAC1 mode and pinmux here. PFE_MAC1 mode configuration: /* pfe_mdio1 is already disabled in the base config in s32gxxxa-rdb.dtsi */ &pfe_mdio1 { /* occupied by GMAC0 */ status = "disabled"; }; /* * pfe_netif1 = PFE_MAC1 — management port to Switch-A port 2. * Overrides the base "sgmii" stub in s32gxxxa-rdb.dtsi. * Plain "rgmii" (no -id/-txid) since both MAC and switch add zero delay. * No phy-handle: the link partner is the SJA1110A switch, described as a * fixed-link on switch port@2. MDIO is not needed for link management here. */ &pfe_netif1 { phy-mode = "rgmii"; status = "okay"; fixed-link { speed = <1000>; full-duplex; }; }; PFE_MAC1 pinmux: /* * PFE_MAC1 RGMII pinmux — management port to Switch-A. * * All RX pad SSS values confirmed from S32G3 IOMUX spreadsheet. * TX path: output pads only, no IMCR needed. * RX path: input pads + IMCR registers to route pads into PFE_MAC1. * * Note: PE_07 (TXD3) uses FUNC3, not FUNC2. Similarly PE_08 (RX_CLK) output uses FUNC3; its IMCR (CR#859) uses FUNC2. */ pfe1rgmii_pins: pfe1rgmii_pins { /* TX outputs: PE_02=TX_CLK, PE_03=TX_EN, PE_04=TXD0, PE_05=TXD1, PE_06=TXD2 PE_07 (TXD3) */ pfe1rgmii_grp0 { pinmux = , /* PE_02: PFE_MAC1_TX_CLK */ , /* PE_03: PFE_MAC1_TX_EN */ , /* PE_04: PFE_MAC1_TXD0 */ , /* PE_05: PFE_MAC1_TXD1 */ , /* PE_06: PFE_MAC1_TXD2 */ ; /* PE_07: PFE_MAC1_TXD3 */ output-enable; slew-rate = ; }; /* RX inputs — pads set to FUNC0 (input mode); routing into PFE_MAC1 is handled by the IMCR entries in pfe1rgmii_grp2 below. NXP input mux pattern: pad=FUNC0 + IMCR=FUNC2 */ pfe1rgmii_grp1 { pinmux = , /* PE_08: input */ , /* PE_09: input */ , /* PE_10: input */ , /* PE_11: input */ , /* PE_12: input */ ; /* PE_13: input */ input-enable; slew-rate = ; }; /* IMCR input mux — selects which pad drives each PFE_MAC1 RX signal. CR#866 routes PE_02 (TX_CLK pad) back into PFE_MAC1_TX_CLK_I; required even for RGMII TX because the MAC samples its own TX_CLK internally. All entries at FUNC2 per S32G3 IOMUX spreadsheet. */ pfe1rgmii_grp2 { pinmux = , /* CR#866: PFE_MAC1_TX_CLK_I ← PE_02 */ , /* CR#859: PFE_MAC1_RX_CLK_I ← PE_08 */ , /* CR#865: PFE_MAC1_RXDV_I ← PE_09 */ , /* CR#861: PFE_MAC1_RXD_I[0] ← PE_10 */ , /* CR#862: PFE_MAC1_RXD_I[1] ← PE_11 */ , /* CR#863: PFE_MAC1_RXD_I[2] ← PE_12 */ ; /* CR#864: PFE_MAC1_RXD_I[3] ← PE_13 */ }; }; Please let me know if you need any other information.    Re: Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction any schematics sharing from hardware side for RGMII bus between PFE_MAC1 and SJA1110 port 2 ? Re: Custom S32G399A board: No frames cross switch-facing RGMII bus in either direction Hi,pcentauri92 Thank you for your detail information According to my understanding, there seems to be a problem with the communication when using PFE_MAC1 RGMAII and Port 2 of SJA1110A on your development board. Is that correct? The default configuration of S32G-VNP-RDB3 is that PFE_MAC0/1 operates in SGMII mode and is connected to SJA1110. On your development board, why did you consider using RGMII mode? It is recommended to modify the corresponding software configuration. BR Joey
查看全文
i.mxrt1176 不带 DQS 的最大 NOR 闪存速度 我正在尝试更好地了解连接到 FlexSpi2 的串行 NOR 速度限制,因为我们遇到了性能问题。 在一篇关于使用不带 DQS 引脚的 FlexSPI 的 1060 系列的知识库文章中,似乎将 serialClkFreq 限制为 60MHz。 但是,对于 RT1176,我们已经成功地在 SDR 模式下以 100MHz 运行了 或非 Flash,尽管未能以 120MHz 启动,但看似没有问题。 同样,DDR 的频率为 50MHz,而 60MHz 则失效。 第"30.3.17.2 节 接收时钟源特性" 简单说明了不带 DQS 引脚的最大频率"最低" 。 是像 1060 系列知识库文章提到的那样将接口限制在 60MHz 还是以 100MHz 运行 SDR 模式符合规格?还是以 50MHz 运行 DDR 模式更好? 在没有 DQS 的情况下,有什么优化性能的技巧吗? https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/Everything-you-need-to-know-about-DQS-pin-on-FlexSPI-and-SEMC/ta-p/1977399 Re: i.MXRT1176 Max NOR flash speed without DQS 你好@anbn、 感谢您对 NXP MIMXRT 系列的关注! 如果使用 MCR0[RXCLKSRC]=0x0 (内部环回,不使用 DQS 引脚),数据手册限制在 SDR 模式下为 60 MHz,在 DDR 模式下为 30 MHz。因此,在这种模式下,100 MHz SDR 不在公布的规格范围内。 参考手册将 RXCLKsrc=0x0 标记为 “最低”, RXCLKsrc=0x1 标记为 “中”;实际频率限制在数据表中定义。数据表指定 RXCLKsrc=0x0 为 60 MHz SDR / 30 MHz DDR, RXCLKsrc=0x1 为 133 MHz SDR。 如果使用 FlexSPi2 辅助引脚组,则该引脚组不提供 DQS 键盘,因此 ROM 启动仅支持低速读取。因此,此引脚选项不适用于高性能 XIP/启动 操作。 因此,如果您当前的主板连接没有可用的 DQS 焊盘,则应将其评估为 60 MHz SDR/30 MHz DDR。如果需要更高的读取性能,建议使用具有 DQS 的引脚组,并配置 RXCLKsrc=0x1 。 致以最诚挚的问候, Gavin
查看全文
mm9z1_638の現在の精度は1%の要件を超えています こんにちは、Nxpパートナー AN12301 キャリブレーション ガイドを実行した後、mm9z1_638 からの現在の読み取り値を記録します。精度要件の 1% を超える読み取りが 3 ~ 5 件あることがわかりました。ソフトウェアまたはハードウェアのローパス フィルターはありますか?ローパス係数をどのように決定しますか?ガイドラインを参照しますか? Re: mm9z1_638 current accuracy is out of 1% requirement こんにちは、トーマス ありがとうございます。別の電流源を変更します。失敗条件が修正されました。 しかし、6Aの精度は+/-1%を満たすことができず、ノイズは約100mAです。100mA のノイズを減らすための提案はありますか?または 100mA のノイズは許容できます。 Br、 マイク・リャン Re: mm9z1_638 current accuracy is out of 1% requirement こんにちは、Mikeさん データを見ると、定期的に低い数値が出ているようですが、これはどこから来ているのでしょうか?これはテスト機器またはソフトウェアからのものでしょうか? この定期的なイベントが問題を引き起こしているようです。 よろしくお願いいたします。 トーマス
查看全文
The KW45 FlexCAN can trigger a receive interrupt and receive the messages sent by itself I am debugging the FlexCAN driver of the KW45 chip and have found that when the receive filter MASK is not configured, the FlexCAN module can trigger its own receive interrupt and receive the messages sent by itself. Is this behavior normal? If it is, what is the underlying reason? For example, modify the flexcan_interrupt_transfer code in the SDK as shown in the attachment.  uart log : ********* FLEXCAN Interrupt EXAMPLE ********* Message format: Standard (11 bit id) Message buffer 0 used for Rx. Message buffer 1 used for Tx. Interrupt Mode: Enabled Operation Mode: TX and RX --> Normal ********************************************* Please select local node as A or B: Note: Node B should start first. Node:A Press any key to trigger one-shot transmission Rx MB ID: 0x321, Rx MB data: 0x0, Time stamp: 60127 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x1, Time stamp: 3624 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x2, Time stamp: 18344 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x3, Time stamp: 56722 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x4, Time stamp: 55297 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x5, Time stamp: 53656 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x6, Time stamp: 30470 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x7, Time stamp: 22438 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x8, Time stamp: 1009 Press any key to trigger the next transmission! Re: The KW45 FlexCAN can trigger a receive interrupt and receive the messages sent by itself Hello, I have resolved the issue and need to set:   flexcanConfig.disableSelfReception = TRUE;
查看全文
S32K388 と MC33771B SPI BMS: MBDT、コード生成、AI 展開 NXPコミュニティの皆様、こんにちは。 実際のリチウムイオン電池パックをターゲットに、SPI通信を介してS32K388-Q289とFRDM-MC33771B-SPI-EVBを使用した統合BMSを開発しています。調査を進めるうちに、S32K3 シリーズに使用できる BMS 固有のサンプル プロジェクトとリファレンス実装が比較的少ないことに気付きました。そのため、このタイプのアプリケーションに推奨されるワークフローとサポートされているツールチェーンを確認するのは困難でした。 私の目標は、以下の内容を含む完全な組み込み BMS スタックを MCU に実装することです。 セル電圧/温度モニタリング(BCC経由) セルバランス制御 SOC / SOH推定アルゴリズム(ディープラーニングベースのアプローチを含む) MCU上でのリアルタイム操作 可能な場合はモデルベース デザインのワークフロー (そうでない場合は S32DS C プロジェクト) 最初に MATLAB/Simulink Model-Based Design Toolbox (MBDT) を使用する予定ですが、セットアップで完全なサポートが利用できない場合は、S32 Design Studio (S32DS) に進みます。 以下の質問についてご指導いただければ幸いです。 1) S32K3 BMSアプリケーション用のMBDTサポートおよびトレーニング・マテリアル BMS関連の開発(SPIベースのBCC通信、サンプリング/プロセッシング、保護ロジック、リアルタイム監視など)に特化したS32K3シリーズでMBDTを使用するための公式ドキュメント、ユーザーガイド、トレーニングコース、またはアプリケーションノートはありますか? 2) MBDTモデルとディープラーニングモデルの統合とコード生成 Simulink (MBDT) で BMS ロジックを開発し、Deep Learning Toolbox を使用して構築された SOC/SOH モデルを追加すると、次のようになります。 - これらを 1 つの統合 Simulink モデルに組み合わせることはできますか? - はいの場合、Embedded Coder を使用して統合モデルを C コード (またはその他のサポートされている組み込みコード) に自動的に生成し、S32K388 に展開できますか? 3) S32K388におけるリアルタイム推論の実現可能性 (2)のコード生成が実行可能であれば: - 展開されたモデルは、MCU 上のライブ バッテリー データ (電圧/電流/温度) を使用してリアルタイム推論 (SOC/SOH 推定) を実行できますか? - S32K388 には、推奨される制約やベスト プラクティス (固定小数点と浮動小数点、サポートされるレイヤーの種類、モデル サイズの制限、推論のタイミングに関する考慮事項など) はありますか? 4) MBDTにおけるセーフティ制約/保護ロジック セーフティのために、次のような保護ロジックを実装する必要があります。 - 過電圧/低電圧しきい値 - 過熱/低温しきい値 - 障害処理と安全状態の動作 これらの制限と保護ロジックを MBDT/Simulink に直接実装し、生成された組み込みコードに含めることは可能ですか? S32K ターゲットの参考例(BMS またはセーフティロジック)があれば、共有してください。 5) S32K388とFRDM-MC33771B-SPI-EVBおよび代替品との互換性 S32K388-Q289 は、BMS アプリケーション用に SPI 経由で MC33771B と連携するために正式にサポート/推奨されていますか? この組み合わせが推奨されない場合は、S32K3 ベースの BMS 開発用に公式にサポートされている BCC + リファレンス プラットフォーム (SPI または TPL) を提案していただけますか? 6) デバイス上でのトレーニング(オンライン学習)と推論のみのワークフロー 組み込み AI の観点から: - オンデバイス トレーニング (リアルタイムのバッテリー データを使用したオンライン学習) は S32K3 MCU でサポートまたは推奨されていますか? - または、PC でのオフライン トレーニング + MCU での推論のみというアプローチが推奨されますか? オフライントレーニングが推奨される場合、推奨されるワークフローを説明する公式リファレンスはありますか? 7) S32K388におけるAI推論のパフォーマンス/メモリガイダンス S32K3 (特に S32K388) 上で AI 推論を実行するためのベンチマークやガイドラインはありますか? - フラッシュ/RAM使用量の予想 - 典型的な推論レイテンシの範囲 - 最適化アプローチ(固定小数点、量子化、軽量アーキテクチャ) 😎 MBDT + DL 統合が推奨されない場合の推奨代替ワークフロー 完全な統合と自動コード生成が推奨/サポートされていない場合、S32K3 に AI モデルを展開するための推奨ワークフローは何ですか?例えば: - モデルを軽量なC推論コードに手動で変換する - CMSIS-NNのようなアプローチを使用する(該当する場合) - NXPミドルウェア/推奨ライブラリ/サンプル(例:eIQ)の使用 サポートありがとうございます。ドキュメントのリンク、トレーニング リファレンス、SDKs の例、ベスト プラクティスの推奨事項などがあれば、非常に役立ちます。 よろしくお願いいたします。 Re: S32K388 with MC33771B SPI BMS: MBDT, code generation, and AI deployment こんにちは@SonHyunTaek 、 プロジェクトに関する詳細な質問をコミュニティ フォーラムに投稿していただきありがとうございます。以下の回答は MBDT ソフトウェアの観点から提供されていることに注意してください。ハードウェアの観点からは、コンポーネントの組み合わせに関してより良いアプローチがある可能性があります。また、BMS の目標電圧とパック電流検知が必要かどうかを知っておくことも役立ちます。SPI 経由でコネクテッドされた単一の AFE を使用する予定なので、最大 48V の BMS システムをターゲットにしているものと想定します。 ご提案いただいたデバイスの組み合わせに関してですが、ハードウェア レベルでは、S32K3 は MC33771B と完全に互換性があります。しかし、ソフトウェアの観点から見ると、状況はより複雑になります。S32K3 用の MBDT は、MCAL レイヤーの NXP リアルタイム・ドライバ (RTD) 上にコードを生成するように構築されていますが、BMS 用の MBDT は、RTD と互換性のある BMS SDK 上にコードを生成します。BMS SDK には、Simulink からアクセスできるピン、クロック、ペリフェラルの外部構成ツールと、すぐに実行できるサンプルが含まれています。 ご注意ください: - MBDT for BMS 1.2.0 は、S32K388 をサポートしていない MBDT for S32K3 1.4.0 でのみ動作します。 - BMS SDKはRTD 3.0.0とのみ互換性があります。S32K3 1.4.0 の MBDT によって使用されます。当時、S32K388 は入手できませんでした。 - BMS 用 MBDT および S32K3 用 MBDT は、バッテリー ジャンクション ボックス機能を備えたハードウェアデザインで通常使用される MC33774、MC33775、MC33664、MC33665、MC33772C などの新しい AFE 部品のみをサポートします。 これらの制限はソフトウェア パッケージ (RTD および BMS SDK) に起因します。使用する予定の MC33771B には C SDK ドライバーが含まれていますが、S32K3 と MC33771B を接続するためのすぐに実行可能な互換性のある C ドライバーがないため、カスタム コードを使用して手動で MBDT に統合する必要があります。つまり、組み込み SW: MC33771B/MC33772B 用のバッテリー・セルコントローラ ソフトウェア ドライバでは、手動の C コーディングと MBDT への統合が必要です。これを実行する方法 (S32K1 用の MBDT に基づく) を説明した記事は、こちらにあります。 以下であなたの質問に答え、最後にいくつかの解決策を提案します。 1. MBDTのサポートとトレーニング 私たちが提供する最高のリソースは、 MBDT コミュニティページで入手できます。右側には、S32K3 用の MBDT を使用して基本的なタスクを実行する方法を説明した、モデルベース デザイン ツールボックスの初心者向けガイドがあります。さらに、バッテリー・マネジメントシステムについての洞察を提供する BMS ウェビナーもあります。 MathWorks と共同で作成した BMS に関する最新のウェビナーへのリンクは次のとおりです。 NXP S32 デバイス向けバッテリー システム開発の合理化。 2. ディープラーニングモデルの統合 MathWorks とのこれまでのコラボレーションでは、ディープラーニング ベースの充電状態 (SOC) 推定アルゴリズムを Simulink から直接展開し、PIL モードでテストすることに成功しました。はい、Embedded Coder は Simulink モデルから直接ニューラル ネットワークを生成でき、MBDT と組み合わせて S32K3 に展開できます。 関連するウェビナーへのリンクは次のとおりです。 NXP S32K3マイクロコントローラへのディープラーニングベースのSOC推定アルゴリズムの導入 3. S32K388におけるリアルタイム推論の実現可能性 はい、リアルタイム推論は実現可能です。以前の研究では、セル電圧、電流、温度を入力として使用しました。これらの値は実行時に AFE によって測定され、ニューラル ネットワークに提供されます。ベストプラクティスとして、PIL モードでの集中的なテストはパフォーマンスの評価に役立ちます。最適化手法を試して、最適な構成を特定することもできます。 4. セーフティ上の制約 セーフティ要件のロジックを Simulink に実装し、対応するコードを自動的に生成できます。MathWorks は、S32K3 で使用および展開した例を提供しています。 リチウムイオンバッテリー・マネジメントアルゴリズムの設計とテスト 5. S32K388とFRDM-MC33771B-SPI-EVBの互換性および代替品 Simulink からニューラル ネットワーク アプリケーションを直接テストするには、最新バージョンの S32K3 用 MBDT を使用します。これにより、展開の実現可能性を確認し、現時点で利用可能なすべての MCU に対してベンチマーク テストを実行できます。 ハードウェアの観点からは、いくつかのオプションがあります。 a. 提案されたソリューション(S32K358 + MC33771C)を続行する MC33771B ではなく、より新しく、SPI をサポートし、電流測定機能を備えている MC33771C から始めてください。カスタム コードを使用して MC33771C ドライバを Simulink に直接統合し、BMS 1.8.0 用の MBDT を使用できます。 b. サポートされているMCUを使用してSimulinkでBMS用のMBDTを使用する たとえば、セル監視用の MC33774/MC33775 と電流測定用の MC33772C を搭載した S32K358 (すべて SPI 経由)。このセットアップは、MBDT for BMS および MBDT for S32K3 1.4.0 で動作します。ただし、最初にニューラル ネットワークが S32K358 で実行されることをテストします。 c. AFE部品を搭載したS32K3または最新のBMA7318を使用する 注意: このCASE、BMS 用の MBDT を使用して Simulink からコードを展開することは直接サポートされていません。Simulink でアプリケーション ロジックとニューラル ネットワーク C コードを生成し、S32 Design Studio を使用して AFE と手動で統合することもできます。 6. デバイス上でのトレーニングと推論のみのワークフロー これはアプリケーションの要件によって異なります。これまでのアプローチは推論のみで、MATLAB でネットワークをトレーニングし、それを MCU に展開していました。推奨リソース: ディープラーニングを使用したバッテリー状態の推定。続いて、上記のポイント 2 で説明したウェビナーが開催されます。 7. S32K388におけるAI推論のパフォーマンスとメモリに関するガイダンス パフォーマンスはアプリケーションによって異なります。ニューラル ネットワークがすでにトレーニングされている場合は、生成されたコードを S32K3 ファミリの PIL モードでテストし、実行をプロファイルして、S32K388 がニーズを満たしているかどうかを判断します。参考までに、前述の SOC アルゴリズムは、S32K344 および S32K358 で正常にテストされました。 要約すると、Embedded Coder を使用すると、ニューラル ネットワークからコードを生成し、PIL モードでパフォーマンスをテストできます。検証後、生成されたコードを S32 Design Studio にインポートし、必要に応じて S32K388 に展開します。 お役に立てば幸いです。 マリウス
查看全文
S32N55: sequence ID in gPTP bridge device when acting as a GM Hi team, I was testing the bridge device behavior in the gPTP example. I use the GrayVIP_1_0_22_0. According to the User Manual, if the bridge does not receive any Sync messages after StartupTimeoutS, it should start operating as a GM. However, I observed that in this situation, the Sequence ID in both Sync and Sync Follow-Up frames remains at 1024 and does not increase. After checking the related code, I found that when the bridge transitions to GM mode, the Sequence ID used for generating Sync messages is taken from the prSyncMachines[prDomain->u8SlaveMachineId].u16SequenceId of the slave port. If the slave port has not received any Sync messages, this value is never updated, which causes the Sequence ID in the Sync messages sent by the master port to remain unchanged. This behavior suggests that the bridge cannot function properly as a GM under this mechanism. Could you please help explain why the bridge is designed to behave this way? BR, Bridget GPTP_STACK Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hello @Bridget,  The team has picked up a case and will provide an answer as soon as possible  Best regards, Radu Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hi @Bridget, We are working to reproduce the issue and will discuss further steps in the team. I will get back to you. Thanks, Lukas Re: S32N55: sequence ID in gPTP bridge device when acting as a GM @Bridget, As it turns out, this behavior of the gPTP Bridge is intended, and in line with the 802.1as standard. The Bridge is supposed to relay Sequence ID received on master port. If the Grand Master is lost, the Sequence ID indeed stops being updated - this is one of the ways that downstream devices are able to tell when GM is lost. For a Bridge that never had a GM in the first place, the Sequence ID is random per standard. Our interpretation of random is that nothing about the Sequence ID is guaranteed, or should be assumed. A hardcoded 1024 is considered compliant to that (could be any other number). Is the Sequence ID causing issues in your application? As you have surely observed, Endpoints are perfectly capable of synchronizing to the Bridge, regardless of Sequence ID. Apologies for taking so long. Please do let me know if anything is unclear. BR, Lukas
查看全文
使用 PN7160 — P2P 与 Type-4 标签模式在两个 Linux 板之间共享 Wi-Fi DPP 凭证? 您好,NXP团队, 我正在使用 PN7160 NFC控制器和恩智浦 Linux NFC 堆栈在两个 Linux 板(联发科 Genio 510 EVK)之间进行 Wi-Fi 接入 : https://github.com/NXPNFCLinux/linux_libnfc-nci 系统设置 Board-1 (M1) 使用 hostapd 充当 Wi-Fi 接入点 (AP) PN7160 支持 NFC Board-2 (M2) 使用 wpa_supplicant 充当 Wi-Fi 站 (STA) PN7160 支持 NFC 目前是 手动配置凭证时,Wi-Fi 接入点/STA 连接正常工作 nfcDemoApp 中的 NFC 读/写和轮询示例正常工作 目标 我想使用以 NFC 作为引导通道的 Wi-Fi DPP(Easy Connect)自动配置从 M1(AP)到 M2(STA)的 Wi-Fi 凭证 ,这 与 Wi-Fi 联盟的入门操作类似。 问题 1.NFC 模式选择 对于两块板之间的 Wi-Fi DPP 凭证配置: 是否应使用NFC 点对点(P2P / LLCP / SNEP)模式? 还是应该在接入点侧使用Type-4 Tag 仿真(NDEF、application/vnd.wfa.wsc 或 DPP URI),由 STA 充当 NFC 读卡器? 从Wi-Fi联盟的参考资料来看,NFC似乎主要用作引导渠道,但我想确认一下在使用 PN7160 时推荐的NFC模式。 2.使用恩智浦 demoapp 使用现有的linux_libnfc-nci demoapp 示例: 能否将Type-4 标签仿真示例扩展到: 在 M1(接入点)上模拟 Wi-Fi 配置标签 向 M2(STA)提供 Wi-Fi 接入数据 对于 Wi-Fi DPP 上载,推荐还是不推荐使用NFC P2P + SNEP? 3.Wi-Fi DPP 集成 一旦在 M2 上接收到 NFC 数据: 是建议的流量: NFC → DPP 引导信息(URI/公钥) 然后使用 wpa_supplicant通过 Wi-Fi 进行 DPP 验证? 恩智浦是否有集成方面的参考示例或指南: PN7160 NFC 栈 Linux wpa_supplicant DPP 命令 可实现AP-STA 自动连接? 摘要 我正在寻求以下方面的指导: Wi-Fi DPP 的正确 NFC 模式(P2P 与 Type-4 标签 如何重复使用或扩展现有的恩智浦演示应用程序 推荐架构,用于在两个 Linux 板之间实现安全、符合 Wi-Fi 联盟标准的接入 如有任何参考、样本流程或最佳实践,将不胜感激。 感谢您的支持。 致以最崇高的敬意, Niranjan Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 感谢您对我们的产品感兴趣。 建议的解决方案是使用我们的 "连接 "标签之一。在您描述的设置中,我们建议在 M1 (AP) 主板上连接 NTAG 5 Link 板。主机在 Tag 中生成要读取的正确的 NDEF 消息,并为安全访问配置所需的凭据。   如果您想使用 SNEP,则需要在双方都安装 NFC 阅读器。这将增加成本和 P2P 的实施,需要额外的指令交换。这还需要额外的符合规范的软件开发工作。   请记住,在接入点端使用 NTAG 5,您需要根据 NDEF 消息和 Type 5 标签内存配置规范的 NFC 论坛规范构建 NDEF 消息。有必要同时购买两种规格。 在 M2 板上,您将需要像 PN7160 这样的 NFC 读取器,它可以读取 NDEF 并与 AP 建立连接。 希望这些信息对您有所帮助。 Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 你好@Fabian_R 谢谢你的澄清。 我知道使用SNEP 需要在双方都安装 NFC 读卡器,这会增加 BOM 成本,而且由于P2P 命令交换和根据 NFC 规范进行额外的软件开发,也会增加复杂性。 不过,对于我们的使用案例,我们希望进一步评估这种方法。 能否请您就基于 SNEP 的解决方案澄清以下几点: 建筑指导 两个 Linux 板都应该在启用 P2P 读取器/启动器模式下运行吗? 一个板应该充当 SNEP 服务器,另一个板充当 SNEP 客户端,还是两者都需要支持这两个角色? 软件堆栈要求 能否使用linux_libnfc-nci 协议栈和演示应用程序(如 SNEP 或 P2P 示例)来实现? 基于 SNEP 的凭据交换是否需要对 NFC 栈进行任何特定的配置更改? 数据交换流程 是否建议通过 SNEP 有效载荷交换Wi-Fi DPP 引导信息(QR URI / 公钥)? 通过 NFC 接收数据后,应用程序是否应该直接在注册者端触发信号 wpa_supplicant DPP 命令? 合规方面的考虑 在这种情况下,基于 SNEP 的 P2P 通信是否需要遵守NFC 论坛的强制合规要求? 有关使用 SNEP 在两个 Linux 主板之间传输 Wi-Fi DPP 凭证的详细分步流程或参考实施指南将对我们评估可行性非常有帮助。 感谢您的支持。 Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 您好,先生, 我们提供的应用程序接口支持客户端和服务器角色。有关使用和实施的详细信息,请查阅规范(SNEP 和 LLCP)。P2P 的相关函数和实用程序可在 NfcLibrary/NdefLibrary/src/P2P_NDEF.c 中找到。 关于数据交换流问题,可以在Wifi联盟规格文档中找到此信息:连接移交技术规范和Wifi Easy Connect规范(设备配置协议)。 请记住,我们无法提供这些文件的具体内容。请务必购买。
查看全文
FS32K144HAT0MMHT用セーフティ周辺ドライバ(SPD)に関するお問い合わせ – 入手状況と無料ソース こんにちは、チームの皆さん FS32K144HAT0MMHT MCU を使用して新しい ISO 26262 (ASIL-B) プロジェクトを開始しており、セーフティ ペリフェラル ドライバ (SPD) がどのように動作するかを理解したいと考えています。 SPD パッケージはどこからダウンロードできますか? また、NXP ソフトウェア ライセンス & サポート ポータルでは、SW32K1-SPD-D のような特定のパッケージ名が必要ですか? SPD は無料ですか、または標準の RTD/SDKs ダウンロードに含まれていますか、それとも別のライセンスが必要ですか? 初期開発で SPD ドライバを研究できるサンプルや無料ソースはありますか? SPD または関連リソースの検索に関するガイダンスがあれば幸いです。 ご回答をお待ちしています。 Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 S32K1 – セーフティ ペリフェラル ドライバ (SPD)には、次のドライバのみが含まれています。 S32K1用拡張MCEMドライバ、バージョン1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*M... 。 ドライバは、無料で入手できる S32K1xx 標準ソフトウェア パッケージに含まれています。 S32K1/S32M24x リアルタイム・ドライバ、ASR R21-11、バージョン 2.0.0 P04 と互換性があります。 ただし、このドライバの機能例は提供されていません。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 この SPD は生産をサポートします。実稼働環境での使用に適しているかどうか確認していただけますか? Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 はい、そうです。リリースノートを参照してください。 このバージョンは RTM (製造準備完了) レベルです。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 ご返答ありがとうございます。 最新の S32 Design Studio IDE をインストールし、リリースノートに記載されているように RTM (Ready to Manufacture) RTD SDK を使用しました。CAN サンプル プロジェクトは、提供された SDK と構成ツールを使用して直接生成されました。 ただし、この設定でも、次のビルド エラーが発生します。 致命的なエラー: Port_Ci_Port_Ip_Types.h:そのようなファイル、又はディレクトリはありません エラー発生場所: ボード/Port_Ci_Port_Ip_Cfg.c:56 #include "Port_Ci_Port_Ip_Types.h" Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 これは互換性の問題のようです。 正しい S32DS IDE バージョンでは、互換性のある RTD と、SPD リリース ノートに指定されている SPD のみをインストールする必要があります。追加の RTD バージョンは存在しない必要があります。複数の RTD バージョンが必要な場合は、個別の IDEs をインストールすることをお勧めします。 追加の質問は SPD とは関係がなくなったため、さらにサポートが必要な場合は新しいThreadを作成してください。 よろしくお願いいたします。 ダニエル
查看全文
How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hi, I have the i.MX 8M Mini LPD4-EVK up and running, and I would like to perform power consumption measurements on specific independent power rails, such as VDD_1V8 and NVCC_DRAM_1V1. I have located the corresponding PMIC outputs (BUCK8 and BUCK7) on the schematic, but I noticed that there are no onboard shunt resistors (sense resistors) for these lines. Could you please advise on the best method to measure the current (or power) for these rails? Thanks! Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hello, In the case of i.MX8MM we do not have a board to do the power measurement in each power rail as occurs in other boards such as i.MX 8M Plus Evaluation Kit Enabling Power Measurement. If you need to measure this you need to design a new SOM board to include these shut resistors or maybe you could try to rework the board to add a shunt resistor in a trace. You can use the schematics of the mentioned board as reference to add the resistors and do the measurement. i.MX 8M Plus Power Measurement Board Design Files Best regards. Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Okay, thanks.
查看全文
Problem of the CAN sampling point test value being too small for S32K3 Hi, NXP When developing with S32K311, an external crystal oscillator of 16 MHz is selected. When configuring CANFD, the CAN clock source uses the AIPS_PLAT_CLK at 60 MHz. 80% sampling point is configured for the data field, and TDC is enabled. However, the actual measured sampling point in CANOE can only reach 72%. This issue also occurs in tests on other models such as the S32K312 and S32K342. The following is one of our configurations where we set the sampling points and test data. We configured the sampling point to be 76%, but the actual test result was 67%. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong Could you please share your project, i will take time to test it. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi, @Senlent  We have modified multiple configurations. Under the condition that S32K3 is configured to 80%, the best result tested by CANoe is 72% Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong For CAN FD data phase the latest possible sample point must be set in CANoe. Then the VH6501 sends frames and lengthens the individual bits by one tick after each interval. This seems to be a configuration issue with your VH6501. You can try modifying the parameters here to 70%, 76.667%, and 80% and then testing again. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi,@Senlent  We consulted several experienced engineers. They described that there are also problems with the small sampling point test in S32K1 and K3, and this problem may not be strongly related to the MCU.However, the test results vary when different testing instruments are used. When using CANoe for testing, the test results are all on the low side. They suggest that the sampling point configured for S32K3 can be appropriately increased under the actual test requirement of 80%. You can use any NXP demo to conduct a test, and this phenomenon should be reproducible. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong This should still be a testing issue, not caused by the MCU. However, I will spend some time doing some simple tests. I will probably use an oscilloscope to test directly, which should be the most accurate measurement method. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi,@Senlent  If you have more convincing results, please share them with us as well. We used some other instruments for testing, and the obtained sampling points are relatively close to what we expected in the settings. However, for customers, CANoe has a very high level of industry recognition. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong It's possible that the client's tests are flawed; please trust your own testing. I will take some time to conduct a few tests, but this isn't a priority for me and may take a few days to get back to you. Re: Problem of the CAN sampling point test value being too small for S32K3 ok Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong I'm sorry, I cannot perform this test. I do not have suitable interference equipment to conduct it, and the test results in the FLEXCAN report already prove that the test passed. I can send you the relevant proof privately. Re: Problem of the CAN sampling point test value being too small for S32K3 Thank you very much.
查看全文
mke06128vqh4のuart0 こんにちは、友人の皆さん。私は MKE06Z128VQH4 マイクロコントローラを使用して設計したボードを持っており、その中でいくつかの出力と入力を使用しています。私は KBI 入力を 1 つ、タイマーを 3 つ、カウンターを 1 つ使用しています。SO、問題はありません。すでに設定を行っており、動作しています。 現在、UART0 シリアル ポートに取り組んでおり、USB-TTL シリアル アダプターを PC に接続してデータを受信または送信しています。SDKs ライブラリを使用して情報を送受信することができませんでした。MCUXpresso を使用した私の構成は画像のとおりです。 ピン: 時計には外部水晶12MHZがあります。 FLL にエラーがあるため、FEE オプションをCANません。FBELP を使用して設定を行っています。 UART0 では、割り込み受信および送信ポーリングを使用して構成を行っています。 インストールされている SDK は次のとおりです。 サンプルの SDK があります: これらの例を使用しても、UART0 を動作させることができません。何らかのガイダンスが必要です。UART0 を動作させるために数日間試行しています。 Re: uart0 in mke06128vqh4 こんにちは@Iotelctronic デモ版は変更せずにそのままご利用ください。 私の側でテストしましたが、問題は見つかりませんでした BR アリス Re: uart0 in mke06128vqh4 こんにちは、アリス!ポーリングを使用してデモでテストしましたが、機能しません。 codigo main.c: #include "pin_mux.h" #include "board.h" #include "fsl_uart.h" /******************************************************************************* * Definitions ******************************************************************************/ /* UART instance and clock */ #define DEMO_UART UART1 #define DEMO_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk) /******************************************************************************* * Prototypes ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ uint8_t txbuff[] = "Uart polling example\r\nBoard will send back received characters\r\n"; uint8_t rxbuff[20] = {0}; /******************************************************************************* * Code ******************************************************************************/ /*! * @brief Main function */ int main(void) { uint8_t ch; uart_config_t config; BOARD_InitBootPins(); BOARD_InitBootClocks(); config.baudRate_Bps = 115200U; config.parityMode = kUART_ParityDisabled; config.stopBitCount = kUART_OneStopBit; //config.txFifoWatermark = 0; //config.rxFifoWatermark = 1; config.enableTx = false; config.enableRx = false; // UART_GetDefaultConfig(&config); // config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE; // config.enableTx = true; //config.enableRx = true; UART_Init(DEMO_UART, &config, DEMO_UART_CLK_FREQ); UART_WriteBlocking(DEMO_UART, txbuff, sizeof(txbuff) - 1); while (1) { UART_ReadBlocking(DEMO_UART, &ch, 1); UART_WriteBlocking(DEMO_UART, &ch, 1); } } Re: uart0 in mke06128vqh4 こんにちは@Iotelctronic 1) クロックに関しては、12 MHz 水晶が正常に機能しているかどうかを確認し、構成を確認してください。 2) KE06 は DMA をサポートしていません。 よろしくお願いします。 BR アリス Re: uart0 in mke06128vqh4 こんにちは。問題を見つけました。レジスターを使用していた SDK の例やその他のプロジェクトは機能せず、常に間違ったデータと間違った文字が送信されました。私は外部の 12 MHz 水晶を使用していますが、その水晶では正確に 115200 のボー レートを生成できません。ただし、 12 MHz 水晶をはんだ付けせずに構成を 8 MHz に変更すると、正常に動作します。私の大きな疑問は、構成を 8 MHz に変更しても 12 MHz の水晶を変更しないとなぜ機能するのかということです。私が示しているコードは.freqで行った変更です= 8000000U。これについて説明はありますか?また、MKE06Z128VQH4 マイクロコントローラには UART で使用するための DMA があるかどうかもお聞きしたいです。 /*********************************************************************************************************************** * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file * will be overwritten if the respective MCUXpresso Config Tools is used to update this file. **********************************************************************************************************************/ /* * How to setup clock using clock driver functions: * * 1. call CLOCK_SetSimSafeDivs() to set the system clock dividers in SIM to safe value. * * 2. If external oscillator is used Call CLOCK_SetXtal0Freq() to set XTAL0 frequency based on board settings and * call CLOCK_InitOsc0() to init the OSC. * * 3. Call CLOCK_BootToXxxMode()/CLOCK_SetXxxMode() to set ICS run at the target mode. * * 4. If ICSIRCLK is needed, call CLOCK_SetInternalRefClkConfig() to enable the clock. * * 5. call CLOCK_SetSimConfig() to configure the divider in sim. */ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!GlobalInfo product: Clocks v7.0 processor: MKE06Z128xxx4 package_id: MKE06Z128VLK4 mcu_data: ksdk2_0 processor_version: 9.0.0 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ #include "clock_config.h" /******************************************************************************* * Definitions ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ /* System clock frequency. */ extern uint32_t SystemCoreClock; /******************************************************************************* ************************ BOARD_InitBootClocks function ************************ ******************************************************************************/ void BOARD_InitBootClocks(void) { BOARD_BootClockRUN(); } /******************************************************************************* ********************** Configuration BOARD_BootClockRUN *********************** ******************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!Configuration name: BOARD_BootClockRUN called_from_default_init: true outputs: - {id: Bus_clock.outFreq, value: 20 MHz} - {id: Core_clock.outFreq, value: 40 MHz} - {id: Flash_clock.outFreq, value: 20 MHz} - {id: ICSFF_clock.outFreq, value: 31.25 kHz} - {id: ICSIR_clock.outFreq, value: 37.5 kHz} - {id: LPO_clock.outFreq, value: 1 kHz} - {id: OSCER_clock.outFreq, value: 8 MHz} - {id: Plat_clock.outFreq, value: 40 MHz} - {id: System_clock.outFreq, value: 40 MHz} - {id: Timer_clock.outFreq, value: 20 MHz} settings: - {id: ICSMode, value: FEE} - {id: ICS.BDIV.scale, value: '1', locked: true} - {id: ICS.IREFS.sel, value: ICS.RDIV} - {id: ICS.RDIV.scale, value: '256'} - {id: ICS_C1_IRCLKEN_CFG, value: Enabled} - {id: OSC_CR_OSCEN_CFG, value: Enabled} - {id: OSC_CR_OSC_MODE_CFG, value: ModeOscLowPower} - {id: OSC_CR_RANGE_CFG, value: High} - {id: OSC_CR_RANGE_RDIV_CFG, value: High} - {id: SIM.DIV2.scale, value: '2'} - {id: SIM.DIV3.scale, value: '2', locked: true} sources: - {id: OSC.OSC.outFreq, value: 8 MHz, enabled: true} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /******************************************************************************* * Variables for BOARD_BootClockRUN configuration ******************************************************************************/ const ics_config_t icsConfig_BOARD_BootClockRUN = { .icsMode = kICS_ModeFEE, /* FEE - FLL Engaged External */ .irClkEnableMode = kICS_IrclkEnable, /* ICSIRCLK enabled, ICSIRCLK disabled in STOP mode */ .bDiv = 0x0U, /* Bus clock divider: divided by 1 */ .rDiv = 0x3U, /* FLL external reference clock divider: divided by 256 */ }; const sim_clock_config_t simConfig_BOARD_BootClockRUN = { .outDiv1 = 0x0U, /* DIV1 clock divider: divided by 1 */ .outDiv2 = 0x1U, /* DIV2 clock divider: divided by 2 */ .outDiv3 = 0x1U, /* DIV3 clock divider: divided by 2 */ .busClkPrescaler = 0x0U, /* bus clock optional prescaler */ }; const osc_config_t oscConfig_BOARD_BootClockRUN = { .freq = 8000000U, /* Oscillator frequency: 12000000Hz */ .workMode = kOSC_ModeOscLowPower, /* Oscillator low power */ .enableMode = kOSC_Enable, /* Enable external reference clock, disable external reference clock in STOP mode */ }; /******************************************************************************* * Code for BOARD_BootClockRUN configuration ******************************************************************************/ void BOARD_BootClockRUN(void) { /* Set the system clock dividers in SIM to safe value. */ CLOCK_SetSimSafeDivs(); /* Initializes OSC0 according to board configuration. */ CLOCK_InitOsc0(&oscConfig_BOARD_BootClockRUN); CLOCK_SetXtal0Freq(oscConfig_BOARD_BootClockRUN.freq); /* Set ICS to FEE mode. */ CLOCK_BootToFeeMode(icsConfig_BOARD_BootClockRUN.bDiv, icsConfig_BOARD_BootClockRUN.rDiv); /* Configure the Internal Reference clock (ICSIRCLK). */ CLOCK_SetInternalRefClkConfig(icsConfig_BOARD_BootClockRUN.irClkEnableMode); /* Set the clock configuration in SIM module. */ CLOCK_SetSimConfig(&simConfig_BOARD_BootClockRUN); /* Set SystemCoreClock variable. */ SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK; } Re: uart0 in mke06128vqh4 ありがとう、クロックの問題は水晶のはんだが12MHZではなく8MHZであることです
查看全文
OTP mirror register map Subject: Request for PF5020 OTP Mirror Register Map Documentation Hi, We are currently working on communication between the PF5020 PMIC and an NXP controller. During our review of the PF5020 datasheet, we could not find detailed information regarding the OTP mirror register map, including register addresses and pin-level descriptions related to OTP configuration. The output voltages we need are 1.1v,1.8v and3.3v Could you please advise if this information is available in a separate document? This is essential for us to correctly interpret and configure the OTP-related settings in our system. We would appreciate your guidance or any relevant documentation you can share. Thank you in advance! Shivani  Re: OTP mirror register map Hi, Section 16.1 of the PF5020 datasheet provides a complete OTP mirror register map, including: - Register addresses  - Configuration fields such as:    OTP_VSWx for buck output voltages    OTP_VLDOx for LDO output voltages    OTP_SWx_SEQ for power-up sequencing    OTP_SWx_PDGRP for power-down grouping    OTP_SWxILIM for current limit settings    OTP_SWxUV_TH and OTP_SWxOV_TH for UV/OV thresholds The VDDOTP pin determines whether the device loads configuration from: - OTP fuses (when VDDOTP = GND) - Hardwired defaults (when VDDOTP = V1P5D) The TBBEN pin enables Try-Before-Buy (TBB) mode, allowing temporary configuration and testing of OTP settings before committing to fuse programming. Keep in mind that OTP programming is not allowed in production by the customer. Only NXP or authorized partners (lower volume) should perform this. During development you can use the KITPF502xSKTEVM. To configure the PF5020 for 1.1V, 1.8V and 3.3V, you would: - Set OTP_VSWx or OTP_VSWND1 to the appropriate values for 1.1V and 1.8V - Set OTP_VLDO1 or OTP_VSWND1 to 3.3V, depending on current requirements These values are programmable in the OTP mirror registers and can be tested in TBB mode before committing. BRs, Tomas
查看全文
Traffic bifurcation using VSP on LS1046ARDB 1. FMan VSP Hardware Overview 2. The usage of Virtual Storage Profiles 3. FMan VSP Driver 4. Traffic bifurcation using VSP on LS1046ARDB
查看全文
例 S32R274 Watchdog_example S32DS_1.1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** *詳細な説明: * アプリケーションはFCCUとソフトウェアウォッチドッグを初期化します。SWTタイムアウトの期限が切れると、 ※マイコンはリセットされます。 * * マクロLONG_RESETは、どのリセットが実行されるかを定義します。LONG_RESET が 1 の場合、長い ※リセットを行い、それ以外はショートリセットを行います。 * * ------------------------------------------------------------------------------ *テストHW:S32R274RRUEVB、MPC57xxマザーボード ※MCU:S32R274KAMMM 1N58R * Fsys:PLL0 240MHz * Z4コア120MHz *デバッガ:Lauterbach Trace32 * PeMicroのUSB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、debug_ram、リリースモード) * EVB接続:デフォルト * * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** *詳細な説明: * アプリケーションはFCCUとソフトウェアウォッチドッグを初期化します。SWTタイムアウトの期限が切れると、 ※マイコンはリセットされます。 * * マクロLONG_RESETは、どのリセットが実行されるかを定義します。LONG_RESET が 1 の場合、長い ※リセットを行い、それ以外はショートリセットを行います。 * * ------------------------------------------------------------------------------ *テストHW:S32R274RRUEVB、MPC57xxマザーボード ※MCU:S32R274KAMMM 1N58R * Fsys:PLL0 240MHz * Z4コア120MHz *デバッガ:Lauterbach Trace32 * PeMicroのUSB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、debug_ram、リリースモード) * EVB接続:デフォルト * * ********************************************************************************
查看全文
低功耗模式,带 USB 唤醒 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis系列具有丰富的低功耗模式。客户可能会感到困惑,不知道如何从低功耗模式唤醒。 1) 在 VLPR、VLPW 中:NVIC 仍然对中断敏感,因此任何中断都会得到服务。 2)在停止、VLPS 状态下:设备只能通过USB唤醒中断唤醒。 3) 在LLS、VLLSx中:设备将无法从任何 USB 源 唤醒 。 4) LLWU 用于 唤醒 ,因此客户可以从任何可用的 LLWU 唤醒 源 唤醒 。 至于 USB模块,对于USB恢复事件有两种不同的中断。一个异步可以从低功耗模式 唤醒 ,由 USB 线路状态 的 变化触发。另一个是同步的,仅在检测到 K 状态(D+ = 0、D- = 1,表示全速)后 2.5 微秒触发。应用程序负责在需要时转换到低功耗模式,为此,它必须检查USB堆栈报告的设备状态。当在总线中检测到挂起条件时,将触发 SLEEP 中断并且堆栈将其状态更改为挂起;然后应用程序将转换到低功耗模式。当发生此 SLEEP 中断时,异步唤醒中断被启用,并在触发时被禁用(这是模块清除中断所必需的)。在正常情况下,同步恢复中断或复位中断将会随后被触发,导致堆栈状态转换为非挂起状态。然后应用程序就可以知道通信再次处于活动状态,并避免再次进入低功耗模式。
查看全文
S32K3 上的 LDREX/STREX/CLREX——似乎在 SRAM 中也能正常工作? 我之前问过一个问题——https://community.nxp.com/t5/S32K/Understanding-Atomics-i-e-STREX-LDREX-on-S32K3/m-p/2356118 ——而回答似乎暗示,即使我仅在单核上使用 LDREX/STREX/CLREX,也无法依赖其行为来防止中断服务程序(ISRs)或中断请求(IRQs)与主线程发生冲突,尤其是当被检查的内存位于 SRAM 中时。 不过经过一些测试,结果似乎与我的预期一致——能否请设计团队确认,LDREX/STREX/CLREX 并不负责解决来自单个内核的访问冲突?我知道这无法阻止DMA与Cortex-M7内核之间的独占访问,但内核自身之间的访问又如何呢? Re: LDREX/STREX/CLREX on S32K3 - seems to work in SRAM? 你好 @kscz, 我也进行了测试,根据测试结果,我重新开启了这项讨论。 一旦有最新消息,我会尽快回复您。 此致, 丹尼尔 Re: LDREX/STREX/CLREX on S32K3 - seems to work in SRAM? 你好@kscz , 我已经确认,SRAM 中的行为与 TCM 中的行为相同。我已经据此更新了之前的回答。谢谢你指出这一点。 BR,丹尼尔
查看全文
Flutter 在 IMX93 上的运行 你好 我有一个 IMX93 主板,我想在上面运行一个 Flutter 程序。我在 CPU 使用率方面遇到了很大问题(显示一个每秒刷新一次的时钟的静态画面时,CPU 使用率约为 20%% ;而滚动包含图片的整页内容时,CPU 使用率则超过 90%% )。这主要取决于栅格(在静态屏幕上,每秒约180毫秒)。我正在尝试启用 PxP,但要么是我无法启用,要么是 Flutter 无法使用它进行栅格化。 我看到 Flutter 使用的 API 包括 OpenGL ES、Vulkan 和 Metal,因此我不确定是否可以使用 PXP 来辅助 CPU。  谢谢!
查看全文
在基于 NXP 的 SoM(Layerscape SoC)上调用 DDR 在我公司的几个月内,我们将准备好推出新的SoM(建立在恩智浦 LS1028 SoC 之上)。因此,我想向您--更有经验的开发人员--请教一些知识,您是如何进行 DDR 更新的?使用什么工具?如何进行 DDR 初始化?您要执行哪些步骤?关于 DDR 有哪些常见误区?我应该注意什么? Re: DDR bring-up on NXP based SoM (Layerscape SoC) 关于 DDR 验证,请遵循《QCVS_DDR_用户指南》。 成功完成 QCVS 验证后,点击"Generate processor expert code" 的图标,在 \ \Generated_Code\ddr_init1.c,then将优化的计时参数集成到 ATF ddr_init.c 中。   QCVS DDR 是 codewarrior Developer Suite Level 的一个工具。 您还可以从以下链接下载 codewarrior Developer Suite Level Evaluation Edition。 https://www.nxp.com/design/software/development-software/codewarrior-development-tools/codewarrior-network-applications/codewarrior-development-suites-for-networked-applications:CW-DS-NETAPPS 评估版可免费使用,但有时间限制。   调试工具用于连接 LS1028A 客户板和 codewarrior 开发者套件级别,请在以下链接中找到该工具: https://www.nxp.com/design/design-center/development-boards-and-designs/CW_TAP CodeWarrior TAP 高性能探针基础单元,支持以太网和 USB(单独订购提示)。 cwh-ctp-base-he CWH-CTP-CTX10-YE Layerscape 处理器(Coretex 10 引脚)   DDR 布局应遵循 AN5097 AN5097,DDR4 同步动态随机存取存储器(SDRAM) 内存接口的硬件和布局设计注意事项
查看全文
RW612 TF-M NS:Flexcomm UART 无功能 - 时钟驱动器使用安全 CLKCTL1 地址 您好, 我发现了一个 Bug,当出现以下情况时,任何 Flexcomm UART 都会完全失效 为启用 TF-M 的 frdm_rw612/rw612/ns 构建。 根本原因:时钟驱动器使用安全 CLKCTL1 地址 (0x50021000) 启用 Flexcomm 时钟时。从 NS 世界中默默地写下这些文字 被忽视了,让外围没有了防护罩。所有 USART 寄存器的读数均为 0x00000000。 解决方法是在 UART 启动前通过 NS 别名手动启用时钟: volatile uint32_t *clkctl1_ns = (volatile uint32_t *)0x40021000UL; clkctl1_ns[0x508/4] = 0x01; clkctl1_ns[0x40/4] = (1UL<< 8); 我已经在 nxp-zephyr GitHub 上提交了一份错误报告: https://github.com/nxp-zephyr/nxp-zephyr/issues/35 有人遇到过这种情况吗?是否正在进行适当的修复? 谢谢! Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,@chofmeister。 请与我们分享您复制这种行为的步骤。我无法通过 MCUXpresso for VS Code 使用 psa_protected_storage 示例来重现这种行为,该示例使用 TF-M 和 UART 控制台,信息正在打印,因此 UART 外设的时钟是正确的。 此外,对于 FRDM-RW612,时钟初始化是在 soc.c 文件的 clock_init 函数中完成的。 Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 感谢您提供的链接。确认一下 - 我运行的是 4.3.0 版来自 nxp-zephyr 下游仓库,那里存在错误。 我阅读了《时钟配置》一文。据我所知,外设 时钟应在 init.c 或 soc.c 中的 board_early_init_hook() 中启用。 查看 frdm_rw612 init.c、我可以看到 Board_early_init_hook() 已在 上实现,但并未启用任何 Flexcomm 时钟。 根本原因特定于 TF-M NS 版本:HAL 时钟函数 (fsl_clock.c)使用安全 CLKCTL1 地址(0x50021000)。在 NS 世界中,对该地址的写入将被静默忽略,从而使 Flexcomm0 完全处于无时钟状态 - 所有 USART 寄存器的读数均为 0x00000000。 我目前的解决方法是在 UART 启动之前,在应用代码中直接写入 CLKCTL1 NS 别名 (0x40021000),这虽然有效,但 显然不是正确的长期解决方案。 根据这篇文章,修复可能属于 init.c 中的 board_early_init_hook() 。在 CONFIG_TRUSTED_EXECUTION_NONSECURE 保护下,使用 NS 别名地址。不过,在尝试公关之前,我想确保这与 团队的方法一致。 这是基于 RW612 的 TF-M NS 版本 的已知差距吗,是否有 建议的修复正在进行中? Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,@chofmeister,希望你一切都好。 我看到您在我们的下游存储库中提交的报告是您在 Zephyr 4.1.0 版本中发现的一个错误、能否请您确认一下,在我们最新的下游版本库(目前为 4.3.0)中是否仍然存在这种行为? 另外,我还建议查看Zephyr 中的时钟配置,因为 Zephyr 时钟管理子系统尚未支持时钟配置和启用。 Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,RomanVR、 感谢您的回复。我可以在 soc.c 中看到时钟启动代码: #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm0), nxp_lpc_usart, okay))&& CONFIG_SERIAL CLOCK_SetFRGClock(&(const clock_frg_clk_config_t){0, kCLOCK_FrgPllDiv, 255, 0}); CLOCK_AttachClk(kFRG_to_FLEXCOMM0); #endif 代码是正确的,但底层 HAL 函数 (CLOCK_AttachClk、CLOCK_SetFRGClock)使用的是安全的 CLKCTL1 地址 (0x50021000)。在 NS 世界中,对该地址的写入会被 默默忽略,从而使 Flexcomm0 处于无时钟状态。所有 USART 寄存器的读数均为 0x00000000。 我还在 nxp-zephyr GitHub 仓库(问题 #35)上提交了一个错误, 贡献者 waqar-tahir 证实了这个问题,并指出这个问题已经在即将发布的 4.4 下游版本中得到解决。 目前,我的解决方法是在 UART 启动之前,在应用代码中直接写入 CLKCTL1 NS 别名 (0x40021000)。 希望这有助于澄清根本原因。
查看全文