Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
TJA1120A 1000BASE-T1 Linux 端配置 我们的ECU板基于am72a7,采用TJA1120A PHY和DP83TG721EVM-MC媒体转换器。 目前链接已开启 root@am62axx-evm:~# dmesg | grep eth [ 0.000000] psci: probing for conduit method from DT. [ 0.944429] optee: probing for conduit method. [ 1.352845] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006 [ 1.365779] am65-cpsw-nuss 8000000.ethernet: Use random MAC address [ 1.452604] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5 [ 1.459737] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32 [ 1.467615] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1 [ 1.488042] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19 [ 5.875382] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:00] driver [Micrel KSZ9031 Gigabit PHY] (irq=POLL) [ 5.890378] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii link mode [ 6.618291] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:04] driver [NXP C45 TJA1120] (irq=POLL) [ 6.629693] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii link mode [ 6.662963] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off [ 38.194116] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down [ 116.023614] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off 我将 TJA1120 的 eth0 设置为从模式,并通过硬件跳线将主设备配置为媒体变流器。 root@am62axx-evm:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 1000baseT1/Full Supported pause frame use: Symmetric Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: 1000baseT1/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off master-slave cfg: forced slave master-slave status: slave Port: Twisted Pair PHYAD: 4 Transceiver: external MDI-X: Unknown Supports Wake-on: d Wake-on: d Current message level: 0x000020f7 (8439) drv probe link ifdown ifup rx_err tx_err hw Link detected: yes SQI: 7/7 root@am62axx-evm:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 64:1C:10:1C:06:E2 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::661c:10ff:fe1c:6e2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:24044 (23.4 KiB) 现在我已经将我的ECU设置为192.168.1.100我的电脑(连接到媒体变流器)连接到 192.168.1.101 ping 命令没有生效,但是当我用电脑 ping ECU 时,ECU 上的 LED 指示灯会闪烁。 acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7185ms pipe 4 自动以太网是否需要进行任何额外配置? Re: TJA1120A 1000BASET1 Linux side configuration 你好@vikyhre , 根据新的日志,1000BASE-T1 端似乎工作正常。检测到 TJA1120 PHY,链路速度为 1 Gbit/s,主/从状态正确,SQI 报告为 7/7。 然而,以太网接口统计信息仍然显示 RX 数据包为零,而 TX 数据包却在增加。这表明接收到的帧没有到达 Linux MAC/网络协议栈。 请重新检查 Linux 设备树中的 RGMII 时序配置。日志显示接口配置为“phy/rgmii”。如果您的电路板设计要求 PHY 提供内部 RGMII 延迟,则设备树通常应使用“rgmii-id”而不是普通的“rgmii”实例。RGMII 延迟配置不匹配会导致出现以下情况:PHY 链路已建立且 SQI 良好,但 Linux 无法成功接收数据包。 您能否在电脑端使用 Wireshark 检查一下,看看是否能看到 ECU 发送的任何帧?例如,在 ECU 上启动 eth0 后,请检查 PC 上是否捕获到来自 ECU MAC 地址的 ARP、IPv6 邻居发现或任何其他以太网帧。 同时,请在 ECU 端运行 tcpdump,并从 PC 端进行 ping 操作: tcpdump -ni eth0 -e arp 或 icmp 如果没有捕获到 ARP/ICMP 数据包,并且 RX 计数器保持为零,则问题很可能仍然出在 MAC 到 PHY 的 RGMII 路径或其设备树定时配置中,而不是出在 1000BASE-T1 链路本身中。 顺祝商祺! 帕维尔 Re: TJA1120A 1000BASET1 Linux side configuration Pavel,正如你所说,我已将 CONFIG3,4 引脚连接到 RGMII-ID(根据 TJA1120A 数据手册 6.7.2,我尝试了 RGMII-ID 和 RGMII-ID (TX/RX))。同时将 phy-mode 设置为“rgmii-id”。 &cpsw_port1 { status = "okay"; phy-mode = "rgmii-id"; phy-handle = <&cpsw3g_phy0>; }; 这反映在 dmesg 中 [ 6.817790] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-id link mode 但是 ping 命令仍然不起作用。 acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable From 192.168.1.101 icmp_seq=7 Destination Host Unreachable From 192.168.1.101 icmp_seq=8 Destination Host Unreachable From 192.168.1.101 icmp_seq=9 Destination Host Unreachable From 192.168.1.101 icmp_seq=10 Destination Host Unreachable From 192.168.1.101 icmp_seq=11 Destination Host Unreachable From 192.168.1.101 icmp_seq=12 Destination Host Unreachable From 192.168.1.101 icmp_seq=13 Destination Host Unreachable From 192.168.1.101 icmp_seq=17 Destination Host Unreachable From 192.168.1.101 icmp_seq=18 Destination Host Unreachable From 192.168.1.101 icmp_seq=19 Destination Host Unreachable From 192.168.1.101 icmp_seq=20 Destination Host Unreachable From 192.168.1.101 icmp_seq=21 Destination Host Unreachable From 192.168.1.101 icmp_seq=22 Destination Host Unreachable From 192.168.1.101 icmp_seq=23 Destination Host Unreachable From 192.168.1.101 icmp_seq=24 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 25 packets transmitted, 0 received, +21 errors, 100% packet loss, time 24598ms pipe 4 但我按照您说的,尝试在电脑上进行ping测试的同时监测ECU端。 root@am62axx-evm:~# tcpdump -ni eth0 -e arp or icmp [ 36.233694] am65-cpsw-nuss 8000000.ethernet eth0: entered promiscuous mode [ 36.240729] kauditd_printk_skb: 5 callbacks suppressed [ 36.240737] audit: type=1700 audit(1748612373.780:19): dev=eth0 prom=256 old_ prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 36.257330] audit: type=1300 audit(1748612373.780:19): arch=c00000b7 syscall= 208 success=yes exit=0 a0=4 a1=107 a2=1 a3=fffffb4ab040 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty S2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 36.285128] audit: type=1327 audit(1748612373.780:19): proctitle=74637064756D 70002D6E690065746830002D6500617270006F720069636D70 tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 13:39:47.956062 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:47.956161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:49.001519 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:49.001576 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:50.025527 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:50.025574 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:51.049972 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:51.050015 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:52.073514 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:52.073561 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:53.097481 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:53.097522 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:54.121912 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:54.121951 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:55.145488 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:55.145526 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:56.169569 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:56.169613 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:57.193883 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:57.193925 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:58.217586 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:58.217629 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:59.241465 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:59.241500 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:00.265877 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:00.265913 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:01.289403 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:01.289468 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:02.313582 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:02.313638 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:03.337456 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:03.337503 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:04.361696 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:04.361800 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:05.385632 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:05.385679 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:06.409875 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:06.409933 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:07.433415 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:07.433464 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:08.457402 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:08.457451 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:09.482122 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:09.482161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:10.505290 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:10.505346 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:11.529470 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:11.529514 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:12.554164 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:12.554205 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:13.577538 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:13.577575 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:14.601223 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:14.601263 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:15.625718 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:15.625758 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:16.649218 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:16.649272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:17.673325 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:17.673371 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:18.698021 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:18.698065 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:19.721618 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:19.721706 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:20.745228 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:20.745272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:21.770216 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:21.770260 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:22.793695 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:22.793738 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:23.817397 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:23.817436 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 ^C 72 packets captured 72 packets received by filter 0 packets dr[ 88.275081] am65-cpsw-nuss 8000000.ethernet eth0: left promiscuous mode opped by kernel [ 88.287106] audit: type=1700 audit(1748612425.824:20): dev=eth0 prom=0 old_prom=256 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 88.340396] audit: type=1300 audit(1748612425.824:20): arch=c00000b7 syscall=57 success=yes exit=0 a0=4 a1=1 a2=2 a3=1d22f010 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 88.367618] audit: type=1327 audit(1748612425.824:20): proctitle=74637064756D70002D6E690065746830002D6500617270006F720069636D70 4c:cf:7c:bf:f6:a1 是我电脑以太网端口的 MAC 地址。 这些消息在电脑端显示“目标主机不可达”后约 2 秒开始出现。 Re: TJA1120A 1000BASET1 Linux side configuration 你好@vikyhre , 谢谢你的更新。这项新成果非常有用。 我们现在可以假设 RGMII-ID 有效。 一个重要的观察结果是,来自 PC 的 ARP 请求是 VLAN 0 优先级标记帧: 以太网类型 802.1Q,VLAN 0,以太网类型 ARP 而 ECU ARP 回复是未标记的 ARP 帧。请检查 PC 接口、桥接、VLAN、QoS 或驱动程序/卸载配置是否需要带标签的流量,或者未带标签的 ARP 回复是否被过滤或未与 ARP 请求关联。 注意:以下 Linux 命令仅供参考,可能需要根据您的具体 Linux 发行版、网络接口名称和系统配置进行调整。 请捕获PC端的流量: sudo tcpdump -eni -vvv '(arp or icmp or vlan)' 然后再次开始 ping 命令。 如果 PC 捕获未显示来自 ECU MAC 地址 `64:1c:10:1c:06:e2` 的 ARP 回复,则问题仍然出在 ECU 到 PC 的传输路径或媒体转换器路径中。   如果 PC 捕获显示 ARP 回复,但 PC 仍然报告“目标主机不可达”,则问题很可能出在 PC 端的 Linux 网络/VLAN/过滤配置中。   作为额外的隔离测试,请尝试在电脑上添加静态 ARP 条目:   sudo ip neigh replace 192.168.1.100lladdr 64:1c:10:1c:06:e2 dev nud permanent   然后重复 ping 命令,同时捕获两端的流量。 顺祝商祺! 帕维尔 Re: TJA1120A 1000BASET1 Linux side configuration 你好@vikyhre , 所以问题似乎出在ECU到PC的传输方向上: ECU MAC TX 路径, RGMII TX MAC 和 TJA1120A 之间的时序/延迟配置, TJA1120 传输路径, 媒体变流器接收路径, 或者可能是 RGMII 接口上的信号完整性/板级时序问题。 CONFIG 引脚连接定义了 RESET 后的默认配置,但当 NXP TJA11xx Linux 驱动程序处于活动状态时,PHY 可以通过 MDIO 根据 Linux 设备树重新配置。所以,用销钉捆扎实际上没有任何效果。 1.如果只有一个方向受到影响,则测试适用的方向性 RGMII 延迟变体可能很有用,例如: phy-mode = "rgmii-id"; /* RX 和 TX 内部延迟 */ phy-mode = "rgmii-rxid"; /* 仅接收内部延迟 */ phy-mode = "rgmii-txid"; /* 仅发送内部延迟 */ phy-mode = "rgmii"; /* 无 PHY 内部延迟 */ 另外,请确保所选的 Linux phy 模式与您的硬件设计中预期的 MAC/PHY 延迟所有权相匹配。   2. 同时,我还建议从 ECU 向 PC 发送流量,并检查 RGMII TX 引脚上是否有活动。例如,您可以运行: ping *I eth0 192.168.1.101   并用示波器监测 MAC 和 TJA1120A 之间的 RGMII TX 信号,特别是 TXC、 TX_CTL、 TXD[3:0]。 如果 Linux 尝试发送数据时这些引脚上没有任何活动,则问题可能仍然出在 PHY 之前的 MAC/驱动程序/配置路径中。如果 RGMII TX 引脚上有活动,但在 PC 端未观察到有效帧,则应重点关注 RGMII TX 时序、延迟配置、信号质量或媒体转换器接收路径。   3.请重复静态 ARP 测试,同时强制 PC 使用预期接口: sudo ip neigh replace *92.168.1.100lladdr 64:1c:10:1c:06*e2 dev eno1 nud permanent ip 邻居*显示 192.168.1.100开发 eno1 ip rou*e 获取 192.168.1.100 sudo tcpdump -*ni eno1 -vvv '(arp 或 icmp)' ping *I eno1 192.168.1.100 注意:以上 Linux 命令仅供参考,可能需要根据您的具体 Linux 发行版、网络接口名称和系统配置进行调整。 如果静态 ARP 条目有效,PC 就不再需要发送 ARP 请求。它应该直接向ECU MAC地址发送ICMP回显请求帧。这些帧至少应该在 PC 端的 tcpdump 中可见。如果即使 PC 端的 tcpdump 也未显示出站 ICMP 帧,请检查 PC 的路由、邻居表和接口选择。 如果在 PC 端可以看到传出的 ICMP 帧,但在 ECU 端看不到,则说明 PC 到 ECU 方向的单播流量仍然无法完全正常工作。如果 ECU 接收到 ICMP 帧并生成回复,但 PC 没有接收到回复,则问题仍然存在于 ECU 到 PC 的传输方向上。   顺祝商祺! 帕维尔 Re: TJA1120A 1000BASET1 Linux side configuration 当然,帕维尔,我也尝试在电脑端监测流量。 acs@a-tract-10:~$ sudo tcpdump -eni eno1 -vvv '(arp or icmp or vlan)' tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes 20:53:50.356677 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:51.372439 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:52.396579 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:53.420576 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:54.444417 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:55.468262 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:56.492603 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:57.516072 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:58.540535 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:59.564468 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:00.588407 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:01.612074 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 ^C 12 packets captured 12 packets received by filter 0 packets dropped by kernel 在 PC 端的 tcpdump 中,没有收到来自 64:1c:10:1c:06:e2 的响应。 添加静态 ARP 条目后,ECU 和 PC 端的 tcpdump 均未捕获到任何消息。 似乎是ECU PHY没有响应。
View full article
HSEをインストールしたS32K311:ソフトウェアクラッシュとMCUリセット、デバッガの接続ができません NXPチームの皆様、こんにちは。 バックグラウンド: MCU: S32K311 AUTOSAR RTD MCAL: SW32K3_S32M27x_RTD_R21-11_6.0.0_QLP01 HSE FW (フルメモリ): s32k3x1_hse_fw_0.12.0_2.55.0_pb250225.bin 詳細な調査報告書はPDFファイルで添付されています。 主な争点 ソフトウェアがクラッシュし、MCUはClock_Ip_DistributePll()でリセットされます。さらに、デバッガーが接続できない場合もあります。 デバッガをホットアタッチしようとした際、リセット理由としてHSE_CLK_FAILが報告されることがありました。 上記の手順、IVTおよびDCFの記録を確認し、この問題がなぜ起こっているのか、その解決策についてもご確認いただけますか。追加情報が必要な場合はお知らせください。 HSEの設置手順、IVTの設定、DCF記録を確認し、なぜこの問題が発生しているのか、またどのように解決できるのか教えていただけますか? 追加情報が必要な場合はお知らせください。 よろしくお願いします、 シュバム・パルデシ Re: S32K311 with HSE Installed: Software Crash and MCU Reset, Debugger Unable to Attach 70秒と20秒は、リセットからHSE_STATUS_INIT_OKまでの時間です。つまり、基本的に起動時間だけが含まれているということですね? どのデバイスでも同じように動作しますか? Re: S32K311 with HSE Installed: Software Crash and MCU Reset, Debugger Unable to Attach こんにちは、 @davidtosenovjan 当社のソフトウェアはFBLとAPPLで構成されており、どちらも同じ機能リセット機構を使用しています。 APPLがリセットを開始すると、この問題は発生しません。 FBLがリセットを開始すると、Clock_Ip_DistributePll()内でAPPL起動時にソフトウェアがクラッシュします。 当初は、Mcu_InitClock() の後、Mcu_DistributePllClock() の前に HSE_STATUS_INIT_OK のチェックを追加しました。これにより墜落は回避された。しかし、HSE_STATUS_INIT_OKが設定されるまでには約20秒かかり、その後、実際のAPPLの起動が続行されました。 本日、添付のスクリーンショットに示すように、HSE_STATUS_INIT_OK チェックを APPL の Mcu_Init() より前の段階に移動しました。 この手順を実行すると、HSE_STATUS_INIT_OKがほぼ即座に設定され、クラッシュは発生しなくなります。 以下の点を明確にしていただけますか? FBLとAPPLは同じリセットメカニズムを使用しているにもかかわらず、なぜこの問題はFBLによってリセットが開始された場合にのみ発生するのでしょうか? Mcu_InitClock() の後に HSE_STATUS_INIT_OK をチェックすると約 20 秒かかるのに、Mcu_Init() の前にチェックするとほぼすぐに利用可能になるのはなぜですか? FBLではHSE_STATUS_INIT_OKチェックが不要なのに、APPLの起動時には必要となるのはなぜですか? 明確な根本原因の説明と推奨される初期化手順を提示してください。現在のソリューションが堅牢であり、本番環境で問題を引き起こさないことを確認する必要があります。 追加の詳細情報や時計の設定に関する詳細情報が必要な場合はお知らせください。 よろしくお願いします、 シュバム・パルデシ
View full article
TJA1120A 1000BASET1 Linux side configuration We are using TJA1120A PHY on our ECU board based on am72a7, and DP83TG721EVM-MC Media Converter.  Right now the Link is ON  root@am62axx-evm:~# dmesg | grep eth [ 0.000000] psci: probing for conduit method from DT. [ 0.944429] optee: probing for conduit method. [ 1.352845] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006 [ 1.365779] am65-cpsw-nuss 8000000.ethernet: Use random MAC address [ 1.452604] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5 [ 1.459737] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32 [ 1.467615] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1 [ 1.488042] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19 [ 5.875382] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:00] driver [Micrel KSZ9031 Gigabit PHY] (irq=POLL) [ 5.890378] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii link mode [ 6.618291] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:04] driver [NXP C45 TJA1120] (irq=POLL) [ 6.629693] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii link mode [ 6.662963] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off [ 38.194116] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down [ 116.023614] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off I made TJA1120 eth0 to slave mode, and configured(HW Jumpers) master to Media converter root@am62axx-evm:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 1000baseT1/Full Supported pause frame use: Symmetric Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: 1000baseT1/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off master-slave cfg: forced slave master-slave status: slave Port: Twisted Pair PHYAD: 4 Transceiver: external MDI-X: Unknown Supports Wake-on: d Wake-on: d Current message level: 0x000020f7 (8439) drv probe link ifdown ifup rx_err tx_err hw Link detected: yes SQI: 7/7 root@am62axx-evm:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 64:1C:10:1C:06:E2 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::661c:10ff:fe1c:6e2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:24044 (23.4 KiB) Now i have set my ECU to 192.168.1.100 and my PC(connected to Media Converter) to 192.168.1.101 Ping is not happening but LED indicators on ECU blink when I ping from my PC acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7185ms pipe 4 Is there any extra configuration to be done for Auto-Ethernet? Re: TJA1120A 1000BASET1 Linux side configuration Hello @vikyhre , Based on the new logs, the 1000BASE-T1 side seems to be working correctly. The TJA1120 PHY is detected, the link is up at 1 Gbit/s, the master/slave status is correct and SQI is reported as 7/7. However, the Ethernet interface statistics still show RX packets equal to zero while TX packets are increasing. This suggests that the received frames are not reaching the Linux MAC/network stack. Please re-check the RGMII timing configuration in the Linux device tree. The log shows that the interface is configured as "phy/rgmii". If your board design expects the PHY to provide the internal RGMII delays, the device tree should typically use "rgmii-id" instead of plain "rgmii" instance. A mismatch in RGMII delay configuration can result in exactly this behavior: PHY link up and good SQI, but no successful packet reception by Linux. Could you also check with Wireshark on the PC side whether any frames transmitted by the ECU are visible there? For example, after bringing eth0 up on the ECU, please check whether ARP, IPv6 neighbor discovery or any other Ethernet frames from the ECU MAC address are captured on the PC. At the same time, please run tcpdump on the ECU side while pinging from the PC: tcpdump -ni eth0 -e arp or icmp If no ARP/ICMP packets are captured and the RX counter remains zero, the issue is most likely still in the MAC-to-PHY RGMII path or its device-tree timing configuration, not in the 1000BASE-T1 link itself. Best regards, Pavel Re: TJA1120A 1000BASET1 Linux side configuration Pavel, just as you said I made CONFIG3,4 pins to RGMII-ID (as per 6.7.2 of TJA1120A Datasheet, I tried both RGMII-ID and RGMII-ID (TX/RX) ). Also set phy-mode as "rgmii-id" &cpsw_port1 { status = "okay"; phy-mode = "rgmii-id"; phy-handle = <&cpsw3g_phy0>; };  This was reflected in dmesg [ 6.817790] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-id link mode But pinging was still not working acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable From 192.168.1.101 icmp_seq=7 Destination Host Unreachable From 192.168.1.101 icmp_seq=8 Destination Host Unreachable From 192.168.1.101 icmp_seq=9 Destination Host Unreachable From 192.168.1.101 icmp_seq=10 Destination Host Unreachable From 192.168.1.101 icmp_seq=11 Destination Host Unreachable From 192.168.1.101 icmp_seq=12 Destination Host Unreachable From 192.168.1.101 icmp_seq=13 Destination Host Unreachable From 192.168.1.101 icmp_seq=17 Destination Host Unreachable From 192.168.1.101 icmp_seq=18 Destination Host Unreachable From 192.168.1.101 icmp_seq=19 Destination Host Unreachable From 192.168.1.101 icmp_seq=20 Destination Host Unreachable From 192.168.1.101 icmp_seq=21 Destination Host Unreachable From 192.168.1.101 icmp_seq=22 Destination Host Unreachable From 192.168.1.101 icmp_seq=23 Destination Host Unreachable From 192.168.1.101 icmp_seq=24 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 25 packets transmitted, 0 received, +21 errors, 100% packet loss, time 24598ms pipe 4 But i tried to monitor on ECU side while pinging from my PC as you said root@am62axx-evm:~# tcpdump -ni eth0 -e arp or icmp [ 36.233694] am65-cpsw-nuss 8000000.ethernet eth0: entered promiscuous mode [ 36.240729] kauditd_printk_skb: 5 callbacks suppressed [ 36.240737] audit: type=1700 audit(1748612373.780:19): dev=eth0 prom=256 old_ prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 36.257330] audit: type=1300 audit(1748612373.780:19): arch=c00000b7 syscall= 208 success=yes exit=0 a0=4 a1=107 a2=1 a3=fffffb4ab040 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty S2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 36.285128] audit: type=1327 audit(1748612373.780:19): proctitle=74637064756D 70002D6E690065746830002D6500617270006F720069636D70 tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 13:39:47.956062 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:47.956161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:49.001519 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:49.001576 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:50.025527 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:50.025574 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:51.049972 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:51.050015 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:52.073514 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:52.073561 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:53.097481 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:53.097522 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:54.121912 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:54.121951 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:55.145488 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:55.145526 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:56.169569 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:56.169613 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:57.193883 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:57.193925 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:58.217586 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:58.217629 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:59.241465 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:59.241500 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:00.265877 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:00.265913 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:01.289403 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:01.289468 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:02.313582 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:02.313638 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:03.337456 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:03.337503 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:04.361696 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:04.361800 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:05.385632 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:05.385679 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:06.409875 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:06.409933 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:07.433415 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:07.433464 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:08.457402 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:08.457451 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:09.482122 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:09.482161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:10.505290 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:10.505346 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:11.529470 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:11.529514 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:12.554164 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:12.554205 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:13.577538 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:13.577575 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:14.601223 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:14.601263 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:15.625718 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:15.625758 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:16.649218 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:16.649272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:17.673325 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:17.673371 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:18.698021 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:18.698065 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:19.721618 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:19.721706 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:20.745228 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:20.745272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:21.770216 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:21.770260 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:22.793695 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:22.793738 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:23.817397 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:23.817436 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 ^C 72 packets captured 72 packets received by filter 0 packets dr[ 88.275081] am65-cpsw-nuss 8000000.ethernet eth0: left promiscuous mode opped by kernel [ 88.287106] audit: type=1700 audit(1748612425.824:20): dev=eth0 prom=0 old_prom=256 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 88.340396] audit: type=1300 audit(1748612425.824:20): arch=c00000b7 syscall=57 success=yes exit=0 a0=4 a1=1 a2=2 a3=1d22f010 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 88.367618] audit: type=1327 audit(1748612425.824:20): proctitle=74637064756D70002D6E690065746830002D6500617270006F720069636D70 4c:cf:7c:bf:f6:a1 is MAC Address of Ethernet Port in my PC These messages start around 2s after Destination Host Unreachable shown in PC side. Re: TJA1120A 1000BASET1 Linux side configuration Sure Pavel, i tried to monitor traffic on PC side too acs@a-tract-10:~$ sudo tcpdump -eni eno1 -vvv '(arp or icmp or vlan)' tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes 20:53:50.356677 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:51.372439 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:52.396579 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:53.420576 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:54.444417 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:55.468262 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:56.492603 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:57.516072 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:58.540535 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:59.564468 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:00.588407 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:01.612074 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 ^C 12 packets captured 12 packets received by filter 0 packets dropped by kernel There is no response from 64:1c:10:1c:06:e2 in this tcpdump on PC side Also adding static ARP entry resulted in no messages in tcpdump on both ECU and PC side Seems like ECU PHY is the one not responding Re: TJA1120A 1000BASET1 Linux side configuration Hello @vikyhre , Thank you for the update. The new result is very useful. We may assume for now, that RGMII-ID works. One important observation is that the ARP requests from the PC are VLAN 0 priority-tagged frames: ethertype 802.1Q, vlan 0, ethertype ARP while the ECU ARP replies are untagged ARP frames. Please check whether the PC interface, bridge, VLAN, QoS or driver/offload configuration expects tagged traffic or whether untagged ARP replies are filtered or not associated with the ARP request. Note: The Linux commands below are intended as examples and may need to be adapted according to your specific Linux distribution, network interface name and system configuration. Please capture the traffic on the PC side: sudo tcpdump -eni -vvv '(arp or icmp or vlan)' Then start the ping again. If the PC capture does not show the ARP replies from ECU MAC address `64:1c:10:1c:06:e2`, then the issue is still in the ECU-to-PC transmit path or media-converter path.   If the PC capture shows the ARP replies, but the PC still reports “Destination Host Unreachable”, then the issue is most likely in the PC-side Linux network/VLAN/filtering configuration.   As an additional isolation test, please try adding a static ARP entry on the PC:   sudo ip neigh replace 192.168.1.100 lladdr 64:1c:10:1c:06:e2 dev nud permanent   Then repeat the ping while capturing traffic on both sides. Best regards, Pavel Re: TJA1120A 1000BASET1 Linux side configuration Hello @vikyhre , so the issue appears to be on the ECU-to-PC transmit direction: ECU MAC TX path, RGMII TX timing / delay configuration between the MAC and TJA1120A, TJA1120 transmit path, media converter receive path, or potentially signal integrity / board-level timing on the RGMII interface. The CONFIG pin strapping defines the default configuration after reset, but when the NXP TJA11xx Linux driver is active, the PHY can be reconfigured through MDIO according to the Linux device tree. So, pin strapping has actually no effect. 1. If only one direction is affected, it may be useful to test the applicable directional RGMII delay variants, for example: phy-mode = "rgmii-id";    /* RX and TX internal delay */ phy-mode = "rgmii-rxid";  /* RX internal delay only */ phy-mode = "rgmii-txid";  /* TX internal delay only */ phy-mode = "rgmii";       /* no PHY internal delay */ And, please make sure that the selected Linux phy-mode matches the intended MAC/PHY delay ownership for your hardware design.   2. In parallel, I would also recommend generating traffic from the ECU toward the PC and checking whether there is activity on the RGMII TX pins. For example, you can run: ping *I eth0 192.168.1.101   and monitor the RGMII TX signals by oscilloscope between the MAC and TJA1120A, especially  TXC, TX_CTL, TXD[3:0]. If there is no activity on these pins while Linux is trying to transmit, the issue may still be in the MAC/driver/configuration path before the PHY. If there is activity on the RGMII TX pins, but no valid frames are observed on the PC side, then the focus should be on RGMII TX timing, delay configuration, signal quality, or the media-converter receive path.   3. Please also repeat the static ARP test while explicitly forcing the PC to use the expected interface: sudo ip neigh replace *92.168.1.100 lladdr 64:1c:10:1c:06*e2 dev eno1 nud permanent ip neigh*show 192.168.1.100 dev eno1 ip rou*e get 192.168.1.100 sudo tcpdump -*ni eno1 -vvv '(arp or icmp)' ping *I eno1 192.168.1.100 Note: The Linux commands above are intended as examples and may need to be adapted according to your specific Linux distribution, network interface name and system configuration. With a valid static ARP entry, the PC should no longer need to send ARP requests. It should transmit ICMP Echo Request frames directly to the ECU MAC address. These frames should be visible at least in the PC-side tcpdump. If even the PC-side tcpdump does not show outgoing ICMP frames, please check the PC routing, neighbor table and interface selection. If outgoing ICMP frames are visible on the PC side but not on the ECU side, then the PC-to-ECU direction is still not fully working for unicast traffic. If the ECU receives the ICMP frames and generates replies, but the PC does not receive them, then the issue remains in the ECU-to-PC transmit direction.   Best regards, Pavel
View full article
i.MX8MP Hardware H.264 Encoder (VC8000E/Hantro) Not Working – V4L2 Encoder Poll Error "Operation not We are trying to enable hardware H.264 encoding on the i.MX8M Plus platform using the Hantro VC8000E encoder. Kernel Configuration Enabled CONFIG_VIDEO_IMX8M_VDOA=y CONFIG_MXC_HANTRO=y CONFIG_MXC_HANTRO_V4L2=y CONFIG_MXC_HANTRO_VC8000E=y CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VIDEO_V4L2=y CONFIG_MEDIA_SUPPORT=y Device Tree VPU/VC8000E nodes have been enabled in DTS. &vpu_g1 { status = "okay"; };   &vpu_g2 { status = "okay"; };   &vpu_vc8000e { status = "okay"; };   &vpu_v4l2 { status = "okay"; };     Test Pipeline used:- GST_DEBUG=3 gst-launch-1.0 \ videotestsrc ! videoconvert ! v4l2h264enc ! fakesink     GST_DEBUG=3 gst-launch-1.0 videotestsrc ! videoconvert ! v4l2h264enc ! fakesink Fontconfig error: No writable cache directories Fontconfig error: No writable cache directories 0:00:01.324000750 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x120000: 'AVR (Audio Visual Research)' is not mapped 0:00:01.324100250 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x180000: 'CAF (Apple Core Audio File)' is not mapped 0:00:01.324135000 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x100000: 'HTK (HMM Tool Kit)' is not mapped 0:00:01.324179500 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0xc0000: 'MAT4 (GNU Octave 2.0 / Matlab 4.2)' is not md 0:00:01.324212875 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0xd0000: 'MAT5 (GNU Octave 2.1 / Matlab 5.0)' is not md 0:00:01.324245125 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x210000: 'MPC (Akai MPC 2k)' is not mapped 0:00:01.324283000 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0xe0000: 'PVF (Portable Voice Format)' is not mapped 0:00:01.324318750 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x160000: 'SD2 (Sound Designer II)' is not mapped 0:00:01.324363125 50377 0xaaaaf19f5a40 WARN default gstsfelement.c:97:gst_sf_create_audio_template_caps: format 0x190000: 'WVE (Psion Series 3)' is not mapped Fontconfig error: No writable cache directories Fontconfig error: No writable cache directories 0:00:06.638305750 50254 0xaaaafd743f80 WARN GST_REGISTRY gstregistry.c:2003:gst_update_registry: registry update failed: Error writing registry cache to /home/devuser/.cacy Setting pipeline to PAUSED ... ====== V4L2ENC: 1.24.0 build on Jul 24 2024 02:25:45. ====== 0:00:06.800120125 50254 0xaaaafd743f80 WARN v4l2 gstv4l2object.c:5230:gst_v4l2_object_probe_caps: Failed to probe pixel aspect ratio with VIDIOC_t Pipeline is PREROLLING ... 0:00:06.802941500 50254 0xffffb4000b70 FIXME default gstutils.c:4088:gst_element_decorate_stream_id_internal: Creating random stream-id, consider implemd Redistribute latency... 0:00:06.847293500 50254 0xffffb4000b70 WARN v4l2bufferpool gstv4l2bufferpool.c:875:gst_v4l2_buffer_pool_start: Uncertain or not enough buffers, enabld 0:00:06.889086250 50254 0xffffb4000b70 WARN v4l2 gstv4l2object.c:6189:gst_v4l2_object_poll: error: poll error 1: Operation not permitted (1) ERROR: from element /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: Could not read from resource. Additional debug info: /usr/src/debug/gstreamer1.0-plugins-good/1.24.0.imx/sys/v4l2/gstv4l2object.c(6189): gst_v4l2_object_poll (): /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: poll error 1: Operation not permitted (1) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... 0:00:06.892575000 50254 0xffffb4000b70 WARN v4l2videoenc gstv4l2videoenc.c:941:gst_v4l2_video_enc_handle_frame: error: Failed to process frame. 0:00:06.892941125 50254 0xffffb4000b70 WARN v4l2videoenc gstv4l2videoenc.c:941:gst_v4l2_video_enc_handle_frame: error: Maybe be due to not enough memory or fr ERROR: from element /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: Failed to process frame. Additional debug info: /usr/src/debug/gstreamer1.0-plugins-good/1.24.0.imx/sys/v4l2/gstv4l2videoenc.c(941): gst_v4l2_video_enc_handle_frame (): /GstPipeline:pipeline0/v4l2h264enc:v4l2h264enc0: Maybe be due to not enough memory or failing driver ERROR: pipeline doesn't want to preroll. 0:00:06.898059500 50254 0xffffb4000b70 WARN basesrc gstbasesrc.c:3175:gst_base_src_loop: error: Internal data stream error. 0:00:06.898398750 50254 0xffffb4000b70 WARN basesrc gstbasesrc.c:3175:gst_base_src_loop: error: streaming stopped, reason error (-5) ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error. Additional debug info: /usr/src/debug/gstreamer1.0/1.24.0.imx/libs/gst/base/gstbasesrc.c(3175): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: streaming stopped, reason error (-5) ERROR: pipeline doesn't want to preroll. 0:00:06.927425375 50254 0xaaaafd743f80 WARN bufferpool gstbufferpool.c:1429:gst_buffer_pool_set_flushing: can't change flushing state of inactivl 0:00:06.928232250 50254 0xaaaafd743f80 WARN bufferpool gstbufferpool.c:1429:gst_buffer_pool_set_flushing: can't change flushing state of inactivl Freeing pipeline ... Request Please provide: Complete list of required kernel configurations for i.MX8MP hardware encoding. Required DTS entries for VC8000E/Hantro encoder. Required firmware files and their expected locations. Required GStreamer plugins/packages. Required multimedia libraries (imx-gst plugins, vpu wrappers, etc.). Any CMA/memory requirements. Validation procedure to verify encoder driver initialization. Recommended test pipelines for H.264 hardware encoding. i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
View full article
外部ウォッチドッグを使用したPMICの動作(Wdg_43_VR5510) PMIC用に外部ウォッチドッグ(Wdg_43_VR5510)を実装しました。しかし、Pmic_VR5XX_TimeoutLoops_StateTransistion で無限ループに陥っています(下記参照)。 現在、状態はINIT_FS状態です。状態図によると、状態をINIT_FSからWait_ABIST2に変更するには、適切なウォッチドッグ更新が必要です。 最初のウォッチドッグ更新が256ms以内に正常に行われるようにするため、EcuM初期化中にWdg_43_VR5510_Init関数の後にウォッチドッグトリガーAPIを呼び出しました。 最初の監視機関の刷新をどのように、どこで行うべきかを知る必要がある。つまり、状態遷移はINIT_FSからwait_ABIST2へと起こるということです。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) こんにちは、 @Jerry_cao さん。 お問い合わせいただきありがとうございます。しかし、元の投稿はほぼ2年間閉鎖されているため、そのThreadでの支援を継続することはできません。 S32G - NXPコミュニティであなたの問題について新しい投稿を作成してください。私たちのチームは喜んでさらにサポートいたします。 BR セレステ Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) NXPチームの皆様、こんにちは。 現在VR5510 PMICのデバッグを行っているのですが、ウォッチドッグの更新に関連するリアルタイムスケジューリングの問題に遭遇しました。 MCAL I2C ウォッチドッグのリフレッシュ (I2C を介して VR5510 ウォッチドッグにフィードする) は、 同期 手術。同期待機は割り込みコンテキスト内から呼び出されるため、CPUをブロックし、他のタスクのリアルタイムスケジューリングを低下させます。 ドライバーの設定やコードに 非同期 オプションがあるのに気づきました。しかし実際には同期のビジー待機(I2C転送が完了するまでブロックとポーリングを行う)を実行しているため、実際には転送を呼び出し元から切り離すことはありません。 私の質問: VR5510のウォッチドッグリフレッシュを公式にサポートされた方法で実行することは可能ですか? 真のノンブロッキング (例えば割り込み駆動かDMA駆動のI2C)で、他のタスクを停止させないために? 非同期オプションがノンブロッキングであることが想定されている場合、現在の同期ビジーウェイト動作は既知の制限事項でしょうか、それとも私の側の設定の問題でしょうか? 何かご助言、設定例、またはサンプルコードをご提供いただければ大変ありがたいです。 よろしくお願いします。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) こんにちは、SagarZalaさん、 S32 Design Studio(S32DS)の標準化された2つの例を試したことはありますか?彼らも同じ問題を抱えるのだろうか?彼らはあなたにとって非常に良い参考資料となるかもしれません。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) こんにちは、 ご返信ありがとうございます。 私はRTDバージョン4.0.2を使用しています。I2Cは既に高速に設定済みで、 WD_WINDOWも1024msに設定されています。しかし、それでもうまくいきません。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 親愛なる@SagarZala様、 ご質問ありがとうございます。VR5510は一般的にS32Gマイクロプロセッサ と組み合わせられます。そのため、VR5510の利用可能なドライバはS32G RTDパッケージ内で提供されるべきです。使用しているRTDのバージョンと、具体的な例を教えてください。 RTD 4.0.0バージョンを例にすると、パスC:\NXP\SW32G_RTD_4.4_4.0.0\eclipse\plugins\Wdg_43_VR5510_TS_T40D11M40I0R0\docの下に「RTD_WDG_43_VR5510_IM」と「RTD_WDG_43_VR5510_UM」のドキュメントがあります。文書「RTD_WDG_43_VR5510_UM」に詳細が記載されています。 ウォッチドッグタイマーはI2Cコマンドによって起動され、I2Cの速度に依存することに留意すべきである。I2Cの速度が低い場合、ウォッチドッグタイマーが作動ウィンドウのオープン時間内に正常にトリガーされない可能性があります。この問題を避けるために、ユーザーはI2cを高速で設定し、有効な期間は長いウィンドウを使うことを推奨します。 ウォッチドッグのリフレッシュを設定するには、WD_WINDOW[3:0]を設定してリフレッシュ時間を取得します。次の図に示すように: 「Document VR5510 製品 data sheet」(表45ページ、60ページ)を参照してください。ウォッチドッグウィンドウの期間設定は、以下のスクリーンショットに示すとおりです。WD(廃液排出)期間を正しく設定した後、WDに正しく給紙する必要があります。 上記の情報がお役に立てば幸いです。 よろしくお願いいたします。 セレステ
View full article
S32DS 3.6.7 RTD 7.0.1 P02 HSEコード生成エラー S32DS 3.6.7を使用してS32K358のHSE 関連の RTD コードを生成しようとしています。しかし、問題が発生しました。 まず、以下の更新サイトを下記の順序でインストールしました。 SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip インストール状況は下の画像に示されています。 次に、下記のSDKを選択して新しいプロジェクトを作成しました。 次に、以下に示すように、Config ToolsにBaseNXPとHseのコンポーネントを追加しました。 しかし、以下の検証エラーが発生します。 Issue: Hse is not found in the toolchain/IDE project. The project will not compile! Level: Error Type: Validation Tool: Toolchain/IDE project Origin: Peripherals Target: Toolchain/IDE project: M7_0_0 Resource: platform.driver.Hse この問題をどう解決し、HSE関連のRTDコードを正常に生成すればよいでしょうか? Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error こんにちは、 以下のパッケージをインストールしてコードを生成しようとしましたが、同じ検証エラーが出ます。 ご提案の通り、まずRTD関連の拡張機能をすべてアンインストールし、その後、以下のパッケージのみをインストールしました。 - SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip インストール状況は以下のとおりです。 しかし、これを実行した後は、下の画像のように新しいプロジェクトを作成する際にSDKを選択できなくなりました。 この問題を解決するにはどうすれば良いですか? Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error こんにちは、 @wodudwo さん。 ソフトウェアパッケージの欠落がないことを確認するために、IDEにインストールされているパッケージと以下の画像に示されているものを比較していただけますか? さらに、S32K3 RTDに関連するすべてのパッケージをアンインストールし、名前に「P02」が含まれているパッケージだけを再インストールしてみましょう。 BR、VaneB Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error こんにちは、 @wodudwo さん。 インストール手順の1つが抜けている可能性があります。以下は、私がパッケージをうまくインストールするために使っている手順です: すでにいくつかのパッケージをインストールしているので、まずはS32K3デバイス向けのRTDに関連するすべてのパッケージをアンインストールすることをお勧めします。S32K3およびS32Mデバイス向けのS32 Configuration Tools R1.8 NPIデータパッケージも含めて、これらはRTDパッケージに依存しているためです。 - 以下の更新サイトを追加してください。 SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite_updated_D20260630.zip - 名前にP02を含むパッケージのみを選択しインストールする。インストールに必要な追加の依存パッケージを自動的に選択・インストールできるようにします。 インストールが正常に完了するまで待ち、S32DSを再起動してください。 - 再起動後、S32K3およびS32Mデバイスコンポーネント用のすべてのS32構成ツールR1.8 NPIデータパッケージを選択してインストールします。ここでも、S32DSが必要な依存関係を自動的に選択するように設定してください。 インストールが正常に完了するまで待ち、S32DSを再度再起動してください。 これらの手順を踏んだ結果、IDEsに6つのRTD 7.0.1パッケージ(P02を含む)がインストールされました。このセットアップで、HSEドライバをプロジェクトに問題なく追加できます。
View full article
KW47 extended advertising Hi, The sdk version I'm using is 26.06 . The routine is kw47loc_loc_reader_freertos . #define gAppIsPeripheral_d                   1U   It was found that the return value of calling BluetoothLEHost_StartExtAdvertising is 4(gBleFeatureNotSupported_c)  I'd like to use extended advertising. Please give me your support.   Thanks!   Re: KW47 extended advertising Hello, Hope you are doing well. What modifications have you made in the example? In order to configure Extended Advertising in an application, the first steps are to set the extended advertising parameters with Gap_SetExtAdvertisingParameters and setting the advertising data by calling Gap_SetExtAdvertisingData. For the full setup sequence and parameter details, please check this guide: Extended advertising — MCUXpresso SDK Documentation   Hope this helps! Best regards, Ana Sofia.
View full article
PWM捕获功能在frdm_mcxw72板上无法工作 你好, 我尝试在frdm_mcxw72板上练习pwm捕获示例,但不幸的是,串口工具中的打印消息只显示“捕获周期错误-134 ”。我确信有 1Khz、50% 占空比的 PWM 信号注入到 frdm_mcxw72 板的 PTA21 引脚中。 我从演示案例中导入了整个项目文件,没有任何改动,只是添加了覆盖文件,以下是覆盖文件设置。 请帮忙查一下为什么打印信息不正确。提前致谢! Re: PWM Capture can't work in frdm_mcxw72 board 你好, 希望你一切都好。请问您使用的是哪个 Zephyr 仓库? 另外,你是从哪些例子入手的?你修改过什么吗? 顺祝商祺! 里卡多 Re: PWM Capture can't work in frdm_mcxw72 board 你好, 请问您使用的是哪个代码仓库? 您使用的是上游还是下游? 另外,这个示例在您那边无需修改就能正常运行吗? 顺祝商祺! 里卡多 Re: PWM Capture can't work in frdm_mcxw72 board 嗨,里卡多, 仓库版本为V4.4.1.0,以下是我的步骤 1. 从仓库导入捕获示例应用程序 2. 将 DTS overlay 文件添加到板文件夹中,overlay 文件的内容已在第一条消息中发布。 3. 将固件编译并烧录到我手中的frdm_mcxw72开发板上,打印信息为: “捕获周期错误”,看起来板状态正常,因为我没有注入 PWM 信号,但是将 PWM 信号注入 PTA21 引脚后,打印消息仍然相同。     Re: PWM Capture can't work in frdm_mcxw72 board 嗨,里卡多 这是仓库版本 我只更新了覆盖文件,如果没有这个文件,就无法成功版本。 顺祝商祺! Re: PWM Capture can't work in frdm_mcxw72 board 你好, 请问您使用的是上游系统还是下游系统? 顺祝商祺! 里卡多 Re: PWM Capture can't work in frdm_mcxw72 board 嗨,里卡多, 抱歉,我不太明白这里的“上游”和“下游”是什么意思。我猜应该是下游。或者您能否修改其他描述?
View full article
S32K311 with HSE Installed: Software Crash and MCU Reset, Debugger Unable to Attach Hello NXP Team, Background: MCU: S32K311 AUTOSAR RTD MCAL: SW32K3_S32M27x_RTD_R21-11_6.0.0_QLP01 HSE FW (Full Memory): s32k3x1_hse_fw_0.12.0_2.55.0_pb250225.bin Full Investigation Report attached in PDF Main Issue The software crashes and the MCU resets in Clock_Ip_DistributePll(). In addition, the debugger is sometimes unable to attach. When I tried to hot-attach the debugger, the reset reason was sometimes reported as HSE_CLK_FAIL. Can you check mainly the above procedure, IVT and DCF records and additionally information why this issue is occurring and its solution, Please let us know if any additionally information is needed. Could you please check the HSE installation procedure, IVT configuration, and DCF records, and advise why this issue is occurring and how it can be resolved? Please let us know if any additional information is required. Best regards, Shubham Pardeshi Re: S32K311 with HSE Installed: Software Crash and MCU Reset, Debugger Unable to Attach Hello @davidtosenovjan  Our software consists of FBL and APPL, and both use the same Functional reset mechanism. When APPL initiates the reset, the issue is not observed. When FBL initiates the reset, the software crashes during APPL startup inside Clock_Ip_DistributePll(). Initially, we added a check for HSE_STATUS_INIT_OK after Mcu_InitClock() and before Mcu_DistributePllClock(). This prevented the crash. However, it took approximately 20 seconds for HSE_STATUS_INIT_OK to be set, after which the actual APPL startup continued. Today, we moved the HSE_STATUS_INIT_OK check to an earlier stage, before Mcu_Init() in APPL, as shown in the attached screenshot. With this sequence, HSE_STATUS_INIT_OK is set almost immediately, and the crash is no longer observed. Could you please clarify the following? Why does this issue occur only when the reset is initiated by FBL, even though FBL and APPL use the same reset mechanism? Why does HSE_STATUS_INIT_OK take approximately 20 seconds when checked after Mcu_InitClock(), but become available almost immediately when checked before Mcu_Init()? Why is the HSE_STATUS_INIT_OK check not required in FBL, but appears to be required during APPL startup? Please provide a clear root-cause explanation and the recommended initialization sequence. We need to ensure that the current solution is robust and will not cause any issues in production. Please let us know if any additional details or clock configuration details are required. Best regards, Shubham Pardeshi Re: S32K311 with HSE Installed: Software Crash and MCU Reset, Debugger Unable to Attach Mentioned 70 and 20 seconds are times from reset to HSE_STATUS_INIT_OK. So basically only boot time is included, correct? Does it behave the same way on every device?
View full article
TJA1120A 1000BASET1 Linux側の構成 ECUボードTJA1120A am72a7ベースのPHYとDP83TG721EVM-MCメディアコンバーターを使っています。 現在、リンクは有効です root@am62axx-evm:~# dmesg | grep eth [ 0.000000] psci: probing for conduit method from DT. [ 0.944429] optee: probing for conduit method. [ 1.352845] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006 [ 1.365779] am65-cpsw-nuss 8000000.ethernet: Use random MAC address [ 1.452604] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5 [ 1.459737] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32 [ 1.467615] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1 [ 1.488042] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19 [ 5.875382] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:00] driver [Micrel KSZ9031 Gigabit PHY] (irq=POLL) [ 5.890378] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii link mode [ 6.618291] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:04] driver [NXP C45 TJA1120] (irq=POLL) [ 6.629693] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii link mode [ 6.662963] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off [ 38.194116] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down [ 116.023614] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off eth0からスレーブモードTJA1120設定し、ハードウェアジャンパーをマスターからメディアコンバーターに設定しました root@am62axx-evm:~# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 1000baseT1/Full Supported pause frame use: Symmetric Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: 1000baseT1/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: off master-slave cfg: forced slave master-slave status: slave Port: Twisted Pair PHYAD: 4 Transceiver: external MDI-X: Unknown Supports Wake-on: d Wake-on: d Current message level: 0x000020f7 (8439) drv probe link ifdown ifup rx_err tx_err hw Link detected: yes SQI: 7/7 root@am62axx-evm:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 64:1C:10:1C:06:E2 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::661c:10ff:fe1c:6e2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:24044 (23.4 KiB) ECUを192.168.1.100に設定しました。そして私のPC(メディアコンバーターに接続)は192.168.1.101に変換しています ピングは発生していませんが、PCからピングするとECUのLEDインジケーターが点滅します。 acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7185ms pipe 4 車載イーサネットで追加設定は必要ですか? Re: TJA1120A 1000BASET1 Linux side configuration こんにちは、 @vikyhre さん。 新しいログを見る限り、1000BASE-T1側は正常に動作しているようです。TJA1120 PHYが検出され、リンクは1 Gbit/sで確立され、マスター/スレーブの状態は正しく、SQIは7/7と報告されています。 しかし、イーサネットインターフェースの統計では、受信パケットはゼロであり、送信パケットは増加しています。これは受信フレームがLinuxのMAC/ネットワークスタックに届いていないことを示唆しています。 LinuxデバイスツリーでRGMIIのタイミング設定を再確認してください。ログにはインターフェースが「phy/rgmii」として設定されていることが示されています。基板設計でPHYが内部RGMII遅延を提供することを想定している場合、デバイスツリーは通常単なる「rgmii」インスタンスではなく 「rgmii-id」 を使うべきです。RGMIIの遅延設定の不一致はまさにこのような動作を引き起こすことがあります:PHYリンクアップと良好なSQIはあるものの、Linuxによるパケット受信は成功しません。 PC側のWiresharkでECUから送信されたフレームが見えるかどうかも確認してもらえますか?例えば、eth0をECUに起動した後、ECUのMACアドレスからのARP、IPv6の隣接検出、その他のイーサネットフレームがPC上でキャプチャされているか確認してください。 同時に、PCからpingを実行しながら、ECU側でtcpdumpを実行してください。 tcpdump -ni eth0 -e arp または icmp ARP/ICMPパケットがキャプチャされず、RXカウンタがゼロのままの場合、問題は1000BASE-T1リンク自体ではなく、MAC-to-PHY RGMIIパスまたはそのデバイスツリーのタイミング構成にある可能性が最も高いです。 よろしくお願いいたします。 パベル Re: TJA1120A 1000BASET1 Linux side configuration パベルさん、おっしゃる通り、CONFIG3、4ピンをRGMII-IDに設定しました(TJA1120Aデータシートの6.7.2に従って、RGMII-IDとRGMII-ID(TX/RX)の両方を試しました)。また、phy-modeを「rgmii-id」に設定してください。 &cpsw_port1 { status = "okay"; phy-mode = "rgmii-id"; phy-handle = <&cpsw3g_phy0>; }; これはdmesgに反映された。 [ 6.817790] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-id link mode しかし、pingは依然として機能していなかった。 acs@a-tract-10:~$ ping 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. From 192.168.1.101 icmp_seq=1 Destination Host Unreachable From 192.168.1.101 icmp_seq=2 Destination Host Unreachable From 192.168.1.101 icmp_seq=3 Destination Host Unreachable From 192.168.1.101 icmp_seq=4 Destination Host Unreachable From 192.168.1.101 icmp_seq=5 Destination Host Unreachable From 192.168.1.101 icmp_seq=6 Destination Host Unreachable From 192.168.1.101 icmp_seq=7 Destination Host Unreachable From 192.168.1.101 icmp_seq=8 Destination Host Unreachable From 192.168.1.101 icmp_seq=9 Destination Host Unreachable From 192.168.1.101 icmp_seq=10 Destination Host Unreachable From 192.168.1.101 icmp_seq=11 Destination Host Unreachable From 192.168.1.101 icmp_seq=12 Destination Host Unreachable From 192.168.1.101 icmp_seq=13 Destination Host Unreachable From 192.168.1.101 icmp_seq=17 Destination Host Unreachable From 192.168.1.101 icmp_seq=18 Destination Host Unreachable From 192.168.1.101 icmp_seq=19 Destination Host Unreachable From 192.168.1.101 icmp_seq=20 Destination Host Unreachable From 192.168.1.101 icmp_seq=21 Destination Host Unreachable From 192.168.1.101 icmp_seq=22 Destination Host Unreachable From 192.168.1.101 icmp_seq=23 Destination Host Unreachable From 192.168.1.101 icmp_seq=24 Destination Host Unreachable ^C --- 192.168.1.100 ping statistics --- 25 packets transmitted, 0 received, +21 errors, 100% packet loss, time 24598ms pipe 4 しかし、あなたの言うとおり、PCからpingしながらECU側を監視しようとしました。 root@am62axx-evm:~# tcpdump -ni eth0 -e arp or icmp [ 36.233694] am65-cpsw-nuss 8000000.ethernet eth0: entered promiscuous mode [ 36.240729] kauditd_printk_skb: 5 callbacks suppressed [ 36.240737] audit: type=1700 audit(1748612373.780:19): dev=eth0 prom=256 old_ prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 36.257330] audit: type=1300 audit(1748612373.780:19): arch=c00000b7 syscall= 208 success=yes exit=0 a0=4 a1=107 a2=1 a3=fffffb4ab040 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty S2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 36.285128] audit: type=1327 audit(1748612373.780:19): proctitle=74637064756D 70002D6E690065746830002D6500617270006F720069636D70 tcpdump: verbose output suppressed, use -v[v]... for full protocol decode listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 13:39:47.956062 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:47.956161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:49.001519 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:49.001576 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:50.025527 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:50.025574 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:51.049972 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:51.050015 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:52.073514 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:52.073561 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:53.097481 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:53.097522 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:54.121912 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:54.121951 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:55.145488 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:55.145526 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:56.169569 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:56.169613 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:57.193883 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:57.193925 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:58.217586 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:58.217629 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:39:59.241465 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:39:59.241500 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:00.265877 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:00.265913 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:01.289403 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:01.289468 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:02.313582 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:02.313638 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:03.337456 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:03.337503 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:04.361696 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:04.361800 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:05.385632 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:05.385679 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:06.409875 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:06.409933 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:07.433415 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:07.433464 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:08.457402 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:08.457451 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:09.482122 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:09.482161 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:10.505290 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:10.505346 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:11.529470 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:11.529514 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:12.554164 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:12.554205 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:13.577538 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:13.577575 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:14.601223 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:14.601263 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:15.625718 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:15.625758 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:16.649218 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:16.649272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:17.673325 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:17.673371 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:18.698021 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:18.698065 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:19.721618 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:19.721706 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:20.745228 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:20.745272 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:21.770216 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:21.770260 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:22.793695 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:22.793738 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 13:40:23.817397 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 64: vlan 0, p 0, ethertype ARP (0x0806), Request who-has 192.168.1.100 tell 192.168.1.101, length 46 13:40:23.817436 64:1c:10:1c:06:e2 > 4c:cf:7c:bf:f6:a1, ethertype ARP (0x0806), length 42: Reply 192.168.1.100 is-at 64:1c:10:1c:06:e2, length 28 ^C 72 packets captured 72 packets received by filter 0 packets dr[ 88.275081] am65-cpsw-nuss 8000000.ethernet eth0: left promiscuous mode opped by kernel [ 88.287106] audit: type=1700 audit(1748612425.824:20): dev=eth0 prom=0 old_prom=256 auid=4294967295 uid=0 gid=0 ses=4294967295 [ 88.340396] audit: type=1300 audit(1748612425.824:20): arch=c00000b7 syscall=57 success=yes exit=0 a0=4 a1=1 a2=2 a3=1d22f010 items=0 ppid=701 pid=713 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="tcpdump" exe="/usr/bin/tcpdump" subj=kernel key=(null) [ 88.367618] audit: type=1327 audit(1748612425.824:20): proctitle=74637064756D70002D6E690065746830002D6500617270006F720069636D70 4c:cf:7c:bf:f6:a1は私のPCのイーサネットポートのMACアドレスです これらのメッセージは、PC側で「宛先ホストに到達できません」と表示されてから約2秒後に始まります。 Re: TJA1120A 1000BASET1 Linux side configuration もちろん、パベル。私もPC側でトラフィックを監視しようと試みました。 acs@a-tract-10:~$ sudo tcpdump -eni eno1 -vvv '(arp or icmp or vlan)' tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes 20:53:50.356677 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:51.372439 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:52.396579 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:53.420576 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:54.444417 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:55.468262 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:56.492603 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:57.516072 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:58.540535 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:53:59.564468 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:00.588407 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 20:54:01.612074 4c:cf:7c:bf:f6:a1 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.100 tell 192.168.1.101, length 28 ^C 12 packets captured 12 packets received by filter 0 packets dropped by kernel PC側のtcpdumpでは、64:1c:10:1c:06:e2からの応答がありません。 また、静的ARPエントリを追加した結果、ECU側とPC側の両方でtcpdumpにメッセージが表示されなくなりました。 ECU PHYが応答していないようです。 Re: TJA1120A 1000BASET1 Linux side configuration こんにちは、 @vikyhre さん。 したがって、問題はECUからPCへの送信方向にあるようです: ECU MAC TX パス、 MACとTJA1120A間のRGMII TXタイミング/遅延設定、 TJA1120送信経路、 メディアコンバータ受信経路、 またはRGMIIインターフェース上の信号整合性/ボードレベルのタイミングも考慮されます。 CONFIGピンのストラップはリセット後のデフォルト構成を定義しますが、NXP TJA11xx Linux**ドライバ**がアクティブな場合、Linuxデバイスツリーに従ってMDIOを通じてPHYを再構成できます。つまり、ピンストラップは実際には効果がありません。 1.片方向のみが影響を受ける場合は、例えば以下の通り、該当する方向性RGMII遅延バリアントをテストすると良いでしょう。 phy-mode = "rgmii-id"; /* RXおよびTXの内部遅延 */ phy-mode = "rgmii-rxid"; /* 受信内部遅延のみ */ phy-mode = "rgmii-txid"; /* TX内部遅延のみ */ phy-mode = "rgmii"; /* PHY内部遅延なし */ また、選択したLinuxの物理モードが、ハードウェア設計の意図されたMAC/PHY遅延所有権と一致していることを確認してください。   2. 並行して、ECUからPCへのトラフィックを生成し、RGMII TXピンにアクティビティがあるかどうかを確認することもお勧めします。例えば、以下を実行できます: ping *I eth0 192.168.1.101   そして、MACとTJA1120A間のRGMII TX信号をオシロスコープで監視する。 TXC、 TX_CTL、 TXD[3:0]。 Linuxが送信を試みている間にこれらのピンに活動がなければ、問題はPHYの前のMAC/ドライバー/設定パスにまだ存在している可能性があります。RGMII TXピンに活動があるがPC側で有効なフレームが検出されない場合は、RGMII TXのタイミング、遅延設定、信号品質、またはメディアコンバータ受信経路に注目すべきです。   3. また、PCに期待されるインターフェースを強制しつつ、静的ARPテストを繰り返してください: sudo ip neigh replace *92.168.1.100lladdr 64:1c:10:1c:06*e2 dev eno1 nud permanent ip neigh*show 192.168.1.100dev eno1 ip rou*e get 192.168.1.100 sudo tcpdump -*ni eno1 -vvv '(arp または icmp)' ping *I eno1 192.168.1.100 注:上記のLinuxコマンドはあくまで例であり、特定のLinuxディストリビューション、ネットワークインターフェース名、システム構成に応じて調整が必要になる場合があります。 有効な静的ARPエントリがあれば、PCはARPリクエストを送信する必要がなくなります。ICMPエコー要求フレームをECUのMACアドレスに直接送信する必要があります。これらのフレームは、少なくともPC側のtcpdumpで確認できるはずです。PC側のtcpdumpでも出力ICMPフレームが表示されない場合は、PCルーティング、隣接テーブル、インターフェース選択を確認してください。 PC側では送信ICMPフレームが確認できるのにECU側では確認できない場合、PCからECUへのユニキャストトラフィックの通信はまだ完全には機能していない。ECUがICMPフレームを受信して応答を生成するにもかかわらず、PCがそれを受信しない場合、問題はECUからPCへの送信方向にあると考えられます。   よろしくお願いいたします。 パベル Re: TJA1120A 1000BASET1 Linux side configuration こんにちは、 @vikyhre さん。 最新情報のご提供ありがとうございます。この新しい結果は非常に有用です。 現時点では、RGMII-IDは正常に動作すると仮定してよいだろう。 重要な点として、PCからのARP要求はVLAN 0優先度タグ付きフレームであるということが挙げられる。 ethertype 802.1Q、vlan 0、ethertype ARP 一方、ECUのARP応答はタグなしのARPフレームである。PCインターフェース、ブリッジ、VLAN、QoS、またはドライバー/オフロード構成がタグ付きトラフィックを想定しているか、タグなしのARP応答がARPリクエストにフィルタリングされているか、または関連していないかを確認してください。 注:以下のLinuxコマンドはあくまで例であり、特定のLinuxディストリビューション、ネットワークインターフェース名、システム構成に応じて調整が必要になる場合があります。 PC側のトラフィックをキャプチャしてください。 sudo tcpdump -eni -vvv '(arp または icmp または vlan)' それから再びpingを開始します。 PCキャプチャでECU MACアドレス「64:1c:10:1c:06:e2」からのARP応答が表示されない場合、問題は依然としてECUからPCへの送信パスまたはメディアコンバーターパスにあります。   PCキャプチャでARPの返信が表示されても、PCが「宛先ホストに到達不可」と表示される場合、PC側のLinuxネットワーク/VLAN/フィルタリング設定に問題がある可能性が高いです。   追加の隔離テストとして、PCに静的なARPエントリを追加してみてください。   sudo ip neigh replace 192.168.1.100lladdr 64:1c:10:1c:06:e2 dev nud permanent   次に、両側のトラフィックをキャプチャしながら、ピングを繰り返します。 よろしくお願いいたします。 パベル
View full article
使用外部看门狗的 PMIC 行为 (Wdg_43_VR5510) 我已经为 PMIC 实现了外部看门狗(Wdg_43_VR5510)。但它在 Pmic_VR5XX_TimeoutLoops_StateTransistion 中陷入了无限循环(见下文)。 目前它处于 INIT_FS 状态,根据状态图,我们需要进行一次良好的看门狗刷新,才能将状态从 INIT_FS 更改为 Wait_ABIST2。 为了满足 256ms 内首次有效看门狗刷新的要求,我们在 EcuM 初始化期间的 Wdg_43_VR5510_Init 函数之后调用了看门狗触发 API。 我们需要知道如何以及在哪里调用第一个监控程序刷新。因此,状态转换从 INIT_FS 到 wait_ABIST2。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 你好@Jerry_cao , 感谢您与我们联系。然而,原帖已关闭近两年,因此我们无法继续在该帖下为您提供支持。 请在S32G - NXP 社区中为您的问题创建一个新帖子,我们的团队将很乐意为您提供进一步的帮助。 BR 塞莱斯特 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 您好,NXP团队, 我目前正在调试 VR5510 PMIC,遇到了与看门狗刷新相关的实时调度问题。 MCAL I2C 看门狗刷新(通过 I2C 向 VR5510 看门狗提供数据)的实现方式如下: 同步 手术。由于我们是在中断上下文中调用它,因此同步等待会阻塞 CPU,并降低其他任务的实时调度性能。 我注意到有一个 异步 驱动程序配置/代码中的选项。然而,实际上它仍然执行同步忙等待(它会阻塞并轮询,直到 I2C 传输完成),因此它实际上并没有将传输与调用者解耦。 我的问题: 是否有官方支持的方法可以刷新 VR5510 看门狗? 真正无阻塞 (例如是否采用中断驱动或DMA驱动的I2C协议,以避免阻塞其他任务? 如果异步选项预期是非阻塞的,那么当前的同步忙等待行为是已知的限制还是我的配置问题? 任何指导、参考配置或示例代码都将不胜感激。 谢谢! Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 你好 SagarZala, 我想知道您是否尝试过 S32 设计工作室 (S32DS) 中的两个现成示例?他们会遇到同样的问题吗?或许他们能成为你很好的推荐人。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 您好, 谢谢回复。 我使用的是 RTD 版本 4.0.2。我已经将 I 2C 配置为高速,并且WD_WINDOW 也配置为 1024ms。但它仍然不起作用。 Re: Behavior of PMIC using external Watchdog (Wdg_43_VR5510) 亲爱的@SagarZala , 谢谢你的提问。VR5510 通常与 S32G 微处理器搭配使用。为此,应在 S32G RTD 软件包下提供 VR5510 的可用驱动程序。您使用的是哪个版本的RTD?具体是哪个示例? 以 RTD 4.0.0 版本为例,您可以在路径 C:\NXP\SW32G_RTD_4.4_4.0.0\eclipse\plugins\Wdg_43_VR5510_TS_T40D11M40I0R0\doc 下找到文档“RTD_WDG_43_VR5510_IM”和“RTD_WDG_43_VR5510_UM”。文件“RTD_WDG_43_VR5510_UM”中有更详细的描述。 值得一提的是,看门狗是通过 I2c 命令触发的,并且取决于 I2c 速度。当 I2c 速度较低时,看门狗可能无法在看门狗的窗口打开时间内成功触发。为避免此问题,我们建议用户将 I2c 配置为高速,并在启用 I2c 时使用较大的窗口周期。 要设置看门狗刷新,您可以配置 WD_WINDOW [3:0] 来获取刷新时间。如下图所示: 请参阅“ Document VR5510 产品数据手册”第 60 页表 45。监视窗口周期配置,如下截图所示。设置好正确的 WD 周期时间后,需要正确地给 WD 供料。 希望以上信息对您有所帮助。 顺祝商祺! 塞莱斯特
View full article
关于8M+实时精度 您好,我们想更多地了解 8M Plus 在实时应用方面的功能。是否有关于TSN、实时性能或抖动方面的测试报告或相关资料? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Regarding 8M Plus Real time Accuracy 面积 可用材料 它包含什么 实时 CPU/RTOS 延迟 鱼叉用户指南 测量实时延迟 i.MX 8M Plus / Zephyr 包括 IRQ 延迟和任务延迟(单位:纳秒)。示例结果:空载 IRQ 延迟最小值/平均值/最大值/标准差 = 625 / 796 / 11,125 / 1,798 ns 任务延迟 = 2,583 / 2,671 / 13,041 / 6,045 ns 。在 Linux 系统下,CPU + 内存负载,IRQ 延迟 = 625 / 798 / 4,250 / 4,674 ns ,任务延迟 = 2,583 / 2,670 / 14,333 / 10,407 ns 。 实时基准测试方法 Harpoon 用户指南 — 实时延迟应用程序 将基准定义为硬件 IRQ 事件与软件操作之间的时间差,使用硬件计时器以亚微秒精度进行测量。 TSN 能力 i.MX 8M Plus 产品/参考资料 i.MX 8M Plus 包含双千兆以太网接口,其中一个以太网接口支持 TSN,并使用集成式 800 MHz Arm Cortex-M7 用于工业实时控制。 TSN硬件标准 i.MX 8M Plus 参考手册 TSN支持包括 IEEE 802.1Qbv 时间感知整形器 , 802.1Qav 基于信用的整形者 , IEEE 1588v2 PTP 以太网模块实现了 802.1Qbv-2015 , 802.3br , 和 802.1Qbu 与帧抢占相关的TSN功能。 TSN 测试/验证环境 实时边缘计算用户指南 描述了用于评估 i.MX 8M Plus TSN 功能的 TSN 测试环境,包括流量生成/分析以及对延迟、抖动和同步精度的监控。 TSN抖动/延迟示例 实时边缘用户指南 — TSN 端点示例应用程序 提供 TSN 端点统计信息,包括流量延迟最小值/平均值/最大值和备注 延迟约为 503 微秒 和 延迟抖动约为 300 纳秒 在所示示例中。 TSN 应用演示 AN13588 演示 GenAVB/TSN 实时控制应用。它描述了一个 2毫秒周期 ,一个 400 微秒预留/保证的控制流量窗口 以及一个用于调度、处理时间、流量正确性和延迟的统计线程。 TSN 802.1Qbv 演示 AN13995 演示了使用 i.MX 8M Plus 的 TSN 802.1Qbv,并解释了时间感知整形技术如何利用固定的重复周期来提供确定性的延迟;它还包含 Linux 版本。  tc  /  taprio  配置示例。   Re: Regarding 8M Plus Real time Accuracy @yipingwang 感谢您提供信息。请问您能否也向我们提供有关 iMX8M Plus EVK 的信息? 谢谢。 Re: Regarding 8M Plus Real time Accuracy 我们了解到,i.MX95 EVK 尚未正式发布任何公开的“实时性能报告”。但是,NXP 内部确实对 i.MX95 平台进行了实时基准测试。内部基准测试文档表明,已在运行实时边缘软件和 PREEMPT_RT Linux 的 i.MX95 LPDDR5 EVK 上执行了 cyclictest 和 EtherCAT 性能评估。报告的例子包括:在 6 小时的压力测试期间,循环测试的最大延迟约为 38 µs;在记录的测试条件下,EtherCAT 滤波后的最大抖动约为 12 µs。由于实时性能很大程度上取决于 BSP 版本、内核配置、CPU 隔离、工作负载和网络流量,因此这些值应被视为参考测量值,而不是保证的应用级限制。   请参阅https://www.nxp.com/docs/en/user-guide/REALTIMEEDGEUG.pdf 作为支持的基准测试平台,并提供详细的循环测试、压力测试和 rt_latency 测试程序。 Re: Regarding 8M Plus Real time Accuracy 我们的代理商告知我们,目前还没有关于 NXP i.MX95 EVK 实时性能或抖动的官方性能报告。 但是,他们还提供了描述评估实时延迟的测试方法(例如,循环测试)的文档。 这导致我们这边有些困惑。由于存在标准化的测试方法,我们假设此类测试一定已在内部执行过——至少在参考 EVK 平台上执行过。 因此,我们想澄清如下: NXP 是否对 i.MX95 EVK 进行过任何实时性能(例如延迟、抖动)的内部测量? 如果可以,是否有任何参考结果或基准结果可以分享? 我们了解到,实时性能可能会因系统配置和工作负载而异。然而,即使是受控条件下的基准结果(例如,默认 BSP,最小负载)对于初步评估也非常有帮助。 感谢您的支持。 Re: Regarding 8M Plus Real time Accuracy REALTIMEEDGEUG (实时边缘软件用户指南)( https://www.nxp.com/docs/en/user-guide/REALTIMEEDGEUG.pdf ) 实时边缘软件(最相关) 恩智浦半导体的实时边缘软件正式支持 i.MX8M Plus EVK,并包含以下内容: PREEMPT_RT Linux TSN 协议栈 IEEE 802.1AS (gPTP) 同步 TSN流量整形和调度 EtherCAT、OPC-UA、CAN 相关工业协议 使用 Cortex-A53 + Cortex-M7 的异构实时操作 内部文件REALTIMEEDGEUG指出,实时边缘软件提供: 实时网络(TSN) 实时 Linux (PREEMPT_RT) 纯RTOS/裸机选项 监狱隔断 工业协议支持 支持 i.MX 8M Plus LPDDR4 EVK NXP 应用笔记AN13995 – 使用 i.MX 8M Plus 进行 TSN 802.1Qbv 演示 实时优势产品概览材料中描述了 PREEMPT_RT + TSN 支持 Re: Regarding 8M Plus Real time Accuracy @yipingwang非常感谢您提供的信息。
View full article
S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error I am trying to generate the HSE-related RTD code for S32K358 using S32DS 3.6.7, but I have encountered an issue. First, I installed the following Update Sites in the order shown below: SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip The installation status is shown in the image below. Next, I created a new project by selecting the SDK shown below. Then, I added the BaseNXP and Hse components in Config Tools as shown below. However, the following validation error occurs: Issue: Hse is not found in the toolchain/IDE project. The project will not compile! Level: Error Type: Validation Tool: Toolchain/IDE project Origin: Peripherals Target: Toolchain/IDE project: M7_0_0 Resource: platform.driver.Hse How can I resolve this issue and successfully generate the HSE-related RTD code? Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error Hello, I tried generating the code with the following package installed, but I still encounter the same validation error. As you suggested, I first uninstalled all RTD-related extensions and then installed only the following package: - SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip The installation status is shown below. However, after doing this, I can no longer select any SDK when creating a new project, as shown in the image below. What should I do to resolve this issue? Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error Hi @wodudwo  To verify that there are no missing software packages, could you please compare the packages installed in your IDE with those shown in the following image? Additionally, let's try uninstalling all packages related to S32K3 RTD and then reinstall only the packages that contain "P02" in their name. BR, VaneB Re: S32DS 3.6.7 RTD 7.0.1 P02 HSE code generation error Hi @wodudwo  I believe one of the installation steps may be missing. Below is the procedure I use to install the packages successfully: Since you have already installed some packages, I recommend first uninstalling all packages related to RTD for S32K3 devices, including the S32 Configuration Tools R1.8 NPI Data Package for S32K3 and S32M devices, as these have dependencies on the RTD packages. - Add the following update sites: SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite.zip SW32K3_RTD_R23-11_7.0.1_P02_D2603_DesignStudio_updatesite_updated_D20260630.zip - Select and install only the packages that contain P02 in their name. Allow S32DS to automatically select and install any additional dependent packages required for the installation. - Wait for the installation to complete successfully and allow S32DS to restart. - After the restart, select and install all S32 Configuration Tools R1.8 NPI Data Package for S32K3 and S32M devices components. Again, allow S32DS to automatically select any required dependencies. - Wait for the installation to complete successfully and allow S32DS to restart once more. After following these steps, I end up with six RTD 7.0.1 packages (including P02) installed in my IDE. With this setup, I am able to add the HSE drivers to my projects without any issues.
View full article
KW47拡張広告 こんにちは、 私が使っているSDKのバージョンは26.06です。 ルーチンは kw47loc_loc_reader_freertos です。 #define gAppIsPeripheral_d                   1U   BluetoothLEHost_StartExtAdvertising の呼び出しの戻り値は 4(gBleFeatureNotSupported_c) であることが判明しました。 拡張広告を利用したいです。どうかサポートしてください。   よろしくお願いします!   Re: KW47 extended advertising こんにちは、 あなたの調子が良いといいのですが。 サンプルコードにどのような変更を加えましたか?アプリケーション内で拡張広告を設定するには、最初のステップはGap_SetExtAdvertisingParametersで拡張広告パラメータを設定し、Gap_SetExtAdvertisingDataを呼び出して広告データを設定することです。 セットアップ手順とパラメータの詳細については、こちらのガイドをご覧ください: 拡張広告 — MCUXpresso SDKドキュメント   お役に立てば幸いです! よろしくお願いします、 アナ・ソフィア。
View full article
RT1064 400kHzでのI2C通信異常 RT1064デバイスのI2C2インターフェースはモジュールAに接続されます。通信異常は400kHzで発生しますが、100kHzでは正常に動作します 1. 同じシリーズ内の異なるモデルのモジュールBを400kHzで接続することは問題ありません 2. 波形の観点からは、ホストクロックが伸縮され、モジュールAに接続された後に復元される異常に相当します 追伸:デバイスのI2Cドライバーポートを別の1064デバイスに実装し、モジュールAをテストしましたが、400kで問題ありません その理由は何でしょうか? 1. 図1 モジュールA ロジックアナライザの400kHzにおける異常波形 2. 図2:モジュールAの100kHzにおけるロジックアナライザの波形 3. 図3:モジュールBの400kHzにおける波形 i.MXRT 106x Re: RT1064 I2C communication abnormality at 400kHz こんにちは、 @foreverwlh2025 さん。 追加のご説明ありがとうございます。これは非常に重要な指摘です。   あなたの観察からすると、問題はモジュールA自体の異常というよりも、2段ADUM1251アイソレーションリンクによる400 kHz I2Cのタイミングマージン不足に関連している可能性が高いようです。 ライズ時間が規格内であっても、RT1064ではLPI2Cマスター側の400kHz構成、特にMCFGR2[FILTSCL/FILTSDA]およびMCCR0/MCCR1の確認を推奨します。なぜなら、RT1064のマスター同期レイテンシはライズ時間だけでなく、デジタルフィルターやタイミングパラメータ設定にも影響を受けるからです。 プロジェクトで実際に使用されている構成を読み、RT1064リファレンスマニュアル第47章の表47-5「LPI2C例タイミング構成」と比較することをお勧めします。 特に、選択したクロック条件における以下の設定が、サンプル値と一致しているかどうかを確認してください。 I2Cモジュールクロックソース 目標ボーレート:400Kbps PRESCALE FILTSCL / FILTSDA セソルド クロックロ CLKHI データビデオ お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: RT1064 I2C communication abnormality at 400kHz 追加情報として、昨日ポジショニングにいくつかの進展がありました: ハードウェア拡張は以下の通りです: マザーボード:RT1064--- ADUM1251 3.3V~5V サブボード:ADUM1251 - モジュールA 5V~3.3V 検証の結果、ハードウェアリンクの2層にADUM1251を追加した後、モジュールAで通信異常が発生したことが判明した。しかし、ADUM1251を取り外すと、400kで通信が正常に戻った。その理由は何でしょうか? 追伸:ハードウェアエンジニアは、ADUM1251は通信レイテンシを増加させるだけで、それ以外には影響がないと考えています Re: RT1064 I2C communication abnormality at 400kHz こんにちは、@mayliu1 当社の製品はまもなくリリースされ、数日間この問題を調査してきました。できるだけ早くご返信いただければ、大変ありがたいです! Re: RT1064 I2C communication abnormality at 400kHz ハイ 補足情報 1.2人のハードウェアエンジニアはオシロスコープで問題の波形を確認し、上昇時間は100+ns以内の要件を満たしました 2. I2Cの初期化および読み書き機能ドライバを別のタイプのRT1064デバイスに移植し、モジュールAを問題なくテストしました 以下の図は、別のデバイスモジュールAの波形を示しています。テスト用ロジックアナライザー 疑い: 1.ストレッチ後に時計が異常に回復するなら、他にどんな理由が考えられますか 2. 前回の返信で言及されたMCFGR2のような設定設定専用機能はありますか?I2C初期化プロセスで設定するインターフェースは見当たりませんでした ----上昇時間が満たされた場合、これらのレジスタ設定を考慮する必要はないのでしょうか? Re: RT1064 I2C communication abnormality at 400kHz こんにちは、 @foreverwlh2025 さん、 私たちの製品にご関心を寄せ、コミュニティをご利用いただき、本当にありがとうございます。 これはモジュールAの問題ではなく、その特定のRT1064 LPI2C2バスの400 kHzのタイミングマージンの問題だと思います。 RT1064では、LPI2Cのタイミングはバスの上昇時間、バス負荷、プルアップ抵抗、グリッチフィルタ レイテンシの影響を受けます。 リファレンス・マニュアルRT1064RMでは、上昇時間が長いと同期レイテンシが増加すると説明されています。(第47.3.1.4章を参照)タイミングパラメータ) マスターグリッチフィルターMCFGR2[FILTSCL/FILTSDA]は、**レイテンシ**がSCLの最低ロー/ハイ期間を下回るように設定されなければならず、RT1064はMCCR0/MCCR1の400 kbpsタイミング設定の例を提供しています。表47-5をご確認ください。LPI2Cのタイミング構成例 したがって、モジュールAがバスエッジをわずかに遅くしたり、実効負荷を変えたりすると、バスは400kHzで故障しても100kHzでは動作し続けることがあります。 お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: RT1064 I2C communication abnormality at 400kHz 10 MHzのLPI2C機能クロックは、RT1064リファレンスマニュアルの400 kbpsのタイミング設定例には記載されていません。 このクロックを使用すれば400kbpsのボーレートを生成することは可能ですが、自動生成されるタイミングパラメータは、特にtLOW、tHIGH、セットアップ/ホールドタイミング、およびデータ有効タイミングに関して、I2C仕様と照らし合わせて慎重に検証する必要があります。 デザインリスクを減らすために、リファレンス・マニュアルに示されている48 MHzなどの検証済みクロックソースを使用することが推奨されています。 Re: RT1064 I2C communication abnormality at 400kHz 以下は印刷設定です。どのパラメータを調整する必要があるでしょうか? 追伸:どうやら自動インターフェース割り当てによるようです Re: RT1064 I2C communication abnormality at 400kHz 60MHzと8MHzの両方を変更してみましたが、それでもうまくいきませんでした。下図の赤い枠で囲まれた部分は、修正後に印刷された値を示しており、マニュアルに記載されている値とは異なっています。 Re: RT1064 I2C communication abnormality at 400kHz こんにちは、 @foreverwlh2025 さん。 I2Cクロックを設定する方法はいくつかあります。 提案として、8 MHzと60 MHzを試してみるのも良いでしょう。この2つのクロック設定は比較的簡単に達成できます。 SDKのデモを使っています: 「evkmimxrt1064_lpi2c_edma_b2b_transfer_master」 方法1:LPI2Cクロックソースを60MHzに設定する 時計の分周器を0に設定するだけです。 方法2:LPI2Cクロックソースを8MHzに設定する MCUXpresso IDEsクロックツールを使い、以下の通りに設定してください。クロックソースとしてOSC_CLKを選択し、分周器を3に設定すると、LPI2C(I2C)モジュール用の8MHzクロックが生成されます。 お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: RT1064 I2C communication abnormality at 400kHz 現在のI2Cクロックは、SDK2_13_0-EVK-MIMXRT1064 \ ボード \ evkmimxrt1064 \ river_deamples \ lpi2cディレクトリ内のサンプル構成に基づいて構成されています。 #define LPI2C_CLOCK_SELECT(0U) #define LPI2C_CLOCK_DIVIDER(5U) CLOCK_SetMux(kCLOCK_Lpi2cMux、LPI2C_CLOCK_SELECT); CLOCK_SetDiv(kCLOCK_Lpi2cDiv、LPI2C_CLOCK_DIVIDER); ---正確な8MHzか48MHzをどうやって修正すればいいですか?(時計の木が見えないようですね) Re: RT1064 I2C communication abnormality at 400kHz こんにちは、 @foreverwlh2025 さん。 レジスタを直接設定してみるのも良いでしょう。 例えば、60 MHzのI2Cクロックを使用する場合、以下の構成を適用できます。 お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: RT1064 I2C communication abnormality at 400kHz 図に示すように、パラメータに対応するようにレジスタ設定を変更しようとしましたが、60MHzでは改善がありませんでした。良いモジュールでも8MHzでは正常に動作しません Re: RT1064 I2C communication abnormality at 400kHz 原因が特定され、問題のあるモジュールではクロックの伸縮が400kHzで発生することになります。 しかし、私たちが使っているアイソレータチップはSCLの双方向に対応していません。アイソレーターチップを交換した後、 検査結果は正常だった。この注文は閉じていけます
View full article
board.h missing extern C guard This is a bug report. I am using SDK_2.16.000 for the MCXA153. When I use the "Create a new C/C++ project" wizard in MCUXpresso and create a new C++ project, the generated code fails to build because of  undefined reference to `BOARD_InitDebugConsole()' This is because board.h is missing the extern C guard, which can be fixed as follows: #ifdef __cplusplus extern "C" { #endif void BOARD_InitDebugConsole(void); #ifdef __cplusplus } #endif Development Board MCXA Re: board.h missing extern C guard More that a year after you've made a promise, the bug is still there when creating a C++ project in a fresh installation (december, 2025): undefined reference to `BOARD_InitDebugConsole()' Does anyone at NXP is taking care of its customers? Re: board.h missing extern C guard Dear @aberger , Based on your feedback, we have reproduced the issue and have indeed identified the corresponding problem. Thank you for your contribution to the NXP Community with your answer! We have submitted the bug to the relevant team and hope to update the corresponding patch as soon as possible. Best Regard Liu Re: board.h missing extern C guard Hello @fjrg76  Thank you for reporting this issue. I sincerely apologize for my delayed response. In our internal system, once a case has been closed for more than one month, we no longer receive reminders or notifications when new updates are added to the case. I sincerely apologize for any inconvenience this may have caused. Regarding this issue, I will confirm it with our SDK team and get back to you as soon as possible. As a kind reminder, if you have any further questions or concerns in the future, please create a new support ticket. This will allow us to see your request promptly and provide a timely response. Alternatively, you may contact me directly, and I will get back to you as soon as I see your message. Thank you for your understanding and patience. BR Alice
View full article
PNEV5180B 2.0 PN5180 Altium 原理图 PNEV5180B 2.0 PN5180 原理图是否有 ALtium 格式? 此外,PCB板也很有用,主要用于NFC天线。 我们想使用PN5180,并希望尽快投入使用。 Re: PNEV5180B 2.0 PN5180 Altium Schematics 你好@David-Lightbug 希望你一切都好。 非常抱歉,PN5180 设计文件暂不可用。或许您可以参考PN5180 评估板快速入门指南,其中包含一些显示相关原理图的图片。另外,请参考PN5180天线设计。 如果可能的话,我建议考虑使用PN5190 | NFC 前端进行支付。以下是与PNEV5190BP相关的设计文件: -模块板 底板 问候, 爱德华多。 Re: PNEV5180B 2.0 PN5180 Altium Schematics 您好, 浏览 Altium 原理图,它们似乎都是 BGA 封装/ 你有 PNEV5190M(BGA 封装电路图)和 PNEV5190BP,也是 BGA。 我找到了评估板手册 PNEV5180B,其中显示了 QFN 封装,但没有显示 Altium 文件。 你能帮忙吗? Re: PNEV5180B 2.0 PN5180 Altium Schematics 您好, 感谢您的快速回复。 我将改用PN5190。 该代码是否与 PN5180 兼容/类似?我这样问是因为我注意到有 PN5180 的 Arduino 库,但没有 PN5180 的。 你们有图书馆吗?我们只想尽快启动并开始使用该产品。板设计很可能在两周内完成并制作完成。 谢谢! Re: PNEV5180B 2.0 PN5180 Altium Schematics 您好, 我们提供适用于 PN5190 的NFC读取器库。该库是为 NXP 产品组合中的一些主机 MCU 设计的,例如 LPC1769 和 Kinetis K82;将功能移植到第三方平台不在我们的支持范围内,必须完全由客户完成。您可以参考以下文章,并将其作为移植工作的参考: -将 NFC 阅读器库与 LPC55S69 结合使用 - NFC读取器库移植 FRDM_K64F -将 NFC 阅读器库移植到 i.MX RT1050 - NXP 社区 PN5190 的可用设计文件基于我们的开发板 ( PNEV5190BP ),该开发板嵌入了 BGA 封装。VFLGA40 封装也有一个参考设计:模块板 PN5190 HVQFN 设计文件;但是,该文件的目的是说明此特定封装所需的连接。 问候, 爱德华多。
View full article
8M以上のリアルタイム精度について こんにちは。8M Plusのリアルタイムアプリケーションに関する機能について、さらに詳しく知りたいと思います。TSNやリアルタイムパフォーマンス、ジッターに関するテストレポートや関連資料はありますか? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Regarding 8M Plus Real time Accuracy エリア 入手可能な資料 内容物 リアルタイムCPU/RTOSレイテンシ ハープーンユーザーガイド  i.MX 8M Plus / Zephyr でリアルタイムレイテンシを測定し、IRQレイテンシやタスクレイテンシ(ns単位)も含まれます。例としての結果:no-load IRQ レイテンシ min/avg/max/stddev = 625 / 796 / 11,125 / 1,798 ns タスクレイテンシ = 2,583 / 2,671 / 13,041 / 6,045 ns 。Linux CPU + メモリ負荷の場合、IRQレイテンシ= 625 / 798 / 4,250 / 4,674 ns 、タスクレイテンシ= 2,583 / 2,670 / 14,333 / 10,407 ns です。 リアルタイムベンチマーク方法 Harpoon ユーザーガイド — RT レイテンシアプリケーション ベンチマークをハードウェアIRQイベントとソフトウェア動作間の時間差と定義し、ハードウェアタイマーとサブマイクロ秒単位の精度で測定します。 TSNの能力 i.MX 8M Plus製品/リファレンスマテリアル i.MX 8M PlusはデュアルGbイーサネットを搭載し、そのうち1つはTSNに対応し、産業用リアルタイム制御には統合 800 MHzのArm Cortex-M7 を使用します。 TSNハードウェア規格 i.MX 8M プラスリファレンスマニュアル TSNのサポートには 、IEEE 802.1Qbv Time-Aware Shaper 、 802.1Qav Credit-Based Shaper 、 IEEE 1588v2 PTP 、およびイーサネットブロック実装 802.1Qbv-2015が含まれます 、 802.3br 、 そして 802.1Qbu フレームプリエンプション関連のTSN関数。 TSNテスト/検証環境 リアルタイムエッジユーザーガイド トラフィック生成・解析およびレイテンシ、ジッター、同期精度の監視を含む8M Plus TSNの能力を評価するためのTSNテスト環境 i.MX 説明します。 TSNジッター/レイテンシの例 リアルタイムエッジユーザーガイド — TSNエンドポイントサンプルアプリ トラフィックの最小/平均/最大レイテンシやノート レイテンシは約503μs と レイテンシ ジッターは約300 ns を含むTSNエンドポイント統計を提供します。 TSNアプリケーションデモ AN13588 GenAVB/TSNのリアルタイム制御アプリケーションを実証します。これは 2ミリ秒サイクル  、400μsの予約/保証制御トラフィックウィンドウ 、スケジューリング、プロセッシングタイミング、トラフィックの正確性、レイテンシのための統計スレッドを記述しています。 TSN 802.1Qbv デモ AN13995 8M Plus i.MX を用いたTSN 802.1Qbvの実演と、時間認識シェーピングが固定リピーティングサイクルを用いてデターミニスティックなレイテンシを提供する方法を説明しています。また、Linux  tc  /  taprio  configurationの例も含まれています。   Re: Regarding 8M Plus Real time Accuracy @yipingwang 情報を提供していただきありがとうございます。iMX8M Plus EVKについても情報を教えていただけますか? ありがとうございます。 Re: Regarding 8M Plus Real time Accuracy i.MX95 EVKに関する公式な「リアルタイム性能レポート」は公開されていないことを承知しております。しかし、NXPはi.MX95プラットフォーム上でリアルタイムのベンチマークを内部で行っています。内部ベンチマーク文書によると、cyclictestおよびEtherCATのパフォーマンス評価は、Linux上でリアルタイムエッジソフトウェアを実行するi.MX95 LPDDR5 EVK上で実施PREEMPT_RTされています。報告された例としては、6時間のストレスNGテストにおける最大周期テスト**レイテンシ**約38μsや、EtherCATのフィルタによる最大ジッター約12μsが報告されています。リアルタイム性能はBSPバージョン、カーネル構成、CPU分離、ワークロード、ネットワークトラフィックに大きく依存するため、これらの値はアプリケーションレベルの保証された制限ではなく、参照の測定とみなすべきです。   詳細については、 https://www.nxp.com/docs/en/user-guide/REALTIMEEDGEUG.pdfを参照してください。 サポートされるベンチマークプラットフォームとして、詳細なサイクリックテスト、ストレス、rt_latency手順を提供します。 Re: Regarding 8M Plus Real time Accuracy 代理店からは、NXP i.MX95 EVKのリアルタイムパフォーマンスやジッターに関する公式なパフォーマンスレポートは現在存在しないと伝えられました。 しかし、リアルタイムレイテンシを評価するためのテスト手法(例:cyclictest)についてのドキュメントも提供しました。 これは我々の側で多少の混乱を招いている。標準化されたテスト手法が存在することから、そのようなテストは少なくともリファレンスEVKプラットフォーム上で内部で実施されたと仮定します。 したがって、以下の点を明確にしたいと思います。 NXPはi.MX95 EVKのリアルタイム性能(例:レイテンシ、ジッター)の内部測定を行ったことはありますか? もしそうなら、共有できる参考や基準の結果はありますか? リアルタイムのパフォーマンスは、システム構成やワークロードによって変動する可能性があることを理解しています。しかし、管理された条件下(例えば、デフォルトのBSP、最小負荷)でのベースライン結果であっても、初期評価には非常に役立つだろう。 再開まで今しばらくお待ちください。 Re: Regarding 8M Plus Real time Accuracy REALTIMEEDGEUG (リアルタイムエッジソフトウェアユーザーガイド)(https://www.nxp.com/docs/en/user-guide/REALTIMEEDGEUG.pdf) .リアルタイムエッジソフトウェア(最も関連性が高い) NXPの Real-Time Edgeソフトウェア は公式にi.MX8M Plus EVKをサポートし、以下を含みます: PREEMPT_RT Linux TSNスタック IEEE 802.1AS (gPTP) 同期 TSNトラフィックシェーピングとスケジューリング EtherCAT、OPC-UA、CAN関連の産業用プロトコル Cortex-A53 + Cortex-M7を用いた異種リアルタイム動作 内部文書 REALTIMEEDGEUG によると、Real-Time Edge Softwareは以下の機能を提供します: リアルタイムネットワーキング(TSN) リアルタイムLinux(PREEMPT_RT) 純粋なRTOS/ベアメタルオプション 刑務所の仕切り インダストリアルプロトコルサポート i.MX 8M Plus LPDDR4 EVKのサポート NXPアプリケーションノート AN13995 – i.MX 8M Plusを用いたTSN 802.1Qbvデモンストレーション リアルタイムエッジのSix Pack資料(PREEMPT_RT+TSNサポートを説明する) Re: Regarding 8M Plus Real time Accuracy @yipingwang情報を提供していただき、本当にありがとうございました。
View full article
PWM Capture can't work in frdm_mcxw72 board Hi, I tried to practice the pwm capture sample in  frdm_mcxw72 board, but unfortunately, the print message in serial tool only show " capture cycle err -134" . I'm sure there is the 1Khz, 50% duty cycle pwm signal inject into the PTA21 pins in frdm_mcxw72 board. i imported the whole project files from the demo case,  there is no change that i only added the overlay file,   below is the overlay files setting. can you help check the reason why there is no correct print information. thanks in advance! Re: PWM Capture can't work in frdm_mcxw72 board Hello, Hope you are doing well. Could you please clarify what Zephyr repo are you using? Also, are you starting from any of the examples? Did you modify something? Best Regards, Ricardo Re: PWM Capture can't work in frdm_mcxw72 board Hi Ricardo, The repo version is V4.4.1.0,  below is the my steps  1. Import the capture example application from the repo  2. Add the  DTS overlay file in the board folder, the content of the overlay file  posted in first message. 3. build and flash into the frdm_mcxw72 board in my hand,  the print message is  "capture cycle err" ,  it looks the board state is ok because i didn't inject the pwm signal , but the print message is the same after the pwm signal injected into PTA21 pins.     Re: PWM Capture can't work in frdm_mcxw72 board Hello, Could you please clarify what repository are you using? Are you using Upstream or Downstream? Also, is the example working on your side without modifications? Best Regards, Ricardo Re: PWM Capture can't work in frdm_mcxw72 board Hi Ricardo here is the repo version  i only update the overlay file,  it will be  can't build successfully if there is no this file. Best regards! Re: PWM Capture can't work in frdm_mcxw72 board Hello, Could you please clarify if you are using Upstream or Downstream? Best Regards, Ricardo Re: PWM Capture can't work in frdm_mcxw72 board Hi Ricardo, Sorry, i didn't very understand  what's the "Upstream" or "Downstream" here . i guess it should be the downstream. or can you change another description?
View full article
IMXRT LPUARTの非ブロッキング転送APIはエラー処理を困難にする こんにちは、 私は、割り込みベースのノンブロッキング転送を行うためのLPUARTの「転送」APIについて調べています。LPUART割り込みなどの「ハッピーケース」処理をうまくラップし、準備ができたときにだけデータを受信できる良い高水準APIを提供しているようです。アイドル状態、受信準備完了、送信完了などの処理。しかし、これによってUARTエラーの処理が非常に困難になる。 LPUART_TransferHandleIRQ関数内にはエラー処理がなく、fsl_lpuart.cのその関数の直後には「ユーザーによって実装される」というコメントを含む偽の空LPUART_TransferHandleErrorIRQがあります。これは完全に未完成に見える。 UARTエラーを実際に処理する唯一の方法は、デフォルトのLPUARTx_IRQHandler関数を上書きし、LPUARTx_RX_DriverIRQHandler(またはTX)を呼び出す代わりに、自分でエラーを処理し、「ハッピーCASE」割り込みを元のLPUARTx_RX/TX_DriverIRQHandlerに渡してLPUART_TransferHandleErrorIRQに呼び出すようにすることのようです。 さらに、転送APIの外部でLPUART_EnableInterruptsを呼び出してエラー割り込みを自分で有効にし、エラー処理の中でLPUART_DisableInterruptsを呼び出してそれらをクリアするなどの処理を行う必要があります。 エラー処理にこれだけの手間をかけるのは、かなり面倒な作業のように思える。なぜこの機能が転送API自体に組み込まれていないのでしょうか? -m Re: IMXRT LPUART non-blocking transfer API makes error handling difficult こんにちは、 @nxp16 さん。 詳細なフィードバックをありがとうございます。SDKは各ペリフェラル機能の共通ユースケースを提供するためのものなので、少し曖昧な部分もあることは理解しています。このようなご意見も参考にしながら、私たちは常にAPIの改善に取り組んでいます。ご提案ありがとうございます。今後のリリースでもLPUARTのエラー処理が実装されることを願っています。 一方で、どのエラー条件を扱いたいのか、どのデバイスを使っているのか教えていただけますか?その情報をもとに、実装に役立つエラー条件に関するドキュメントを提案できます。 BR ハビブ Re: IMXRT LPUART non-blocking transfer API makes error handling difficult 考えられるすべてのエラー。これは、転送APIはあるがエラー処理がないほぼすべてのペリフェラル(SPI、I2Cなど)に当てはまります。IMXRT1172のLPUARTには、特にフレーミングエラー、パリティエラー、ノイズエラーがあり、これらは適切に処理されていません。残念ながら現状、これらのペリフェラルは転送API使用時のエラー処理にハッキングが必要です。SDKハンドラーを呼び出す前に、エラーを確認するために実際のデフォルトのIRQハンドラをオーバーライドしなければなりませんでした。 ありがとうございます -m Re: IMXRT LPUART non-blocking transfer API makes error handling difficult こんにちは、 @nxp16 さん。 追加の開発期間が必要になる可能性があることは理解していますが、SDKsの改善に引き続き取り組んでいます。参考として、SDK(バージョン26.6)の関数「LPUART_TransferHandleIRQ」の構造を確認し、アプリケーションが必要とする類似の回復フローを実装できます。 BR ハビブ Re: IMXRT LPUART non-blocking transfer API makes error handling difficult こんにちは、 @nxp16 さん。 他に質問がありましたら、お気軽にお知らせください。 BR ハビブ Re: IMXRT LPUART non-blocking transfer API makes error handling difficult はい、既に似たようなものを実装しています。送っていただきありがとうございます。
View full article