Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
LS1021A 物联网网关参考设计 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> LS1021A 物联网网关参考设计 包含在套件中 Linux BSP和OpenWRT 参考设计(提供原理图、布局和BOM) 硬件快速入门指南和用户指南 如果您符合以下情况,您可能对该产品感兴趣: 需要一个随时可用的高性能物联网网关参考平台 需要内置 WiFi 和 Arduino 连接 想要一个可立即制造的硬件设计 主要硬件特点: 1 Gb QSPI NOR闪存 1 GB DDR3L SDHC 插槽 — 最大支持 32 GB,已安装 4 GB 1x 1 Gb/s以太网(SGMII) 1x 1 Gb/s以太网(RGMII) 2x mini PCIe (x1) slots 1x mSATA插槽 1x 终端(USB转UART) x 四线 LP-UART 至 Arduino 连接器(Thread、ZigBee、蓝牙等) • 多路复用 LCD/QE 接口 24 位 LVDS LCD 接口 QE UART 至 PROFIBUS 或 RS485 接头(需要外部收发器) • USB 3.0 2x 端口 - USB-A 2x 端口至 mini PCIe 插槽 • 13x GPIO 或 8x FTM (PWM) • 6x 中断 • 1 个 SPI • I 2 C1 总线板 EEPROM 启动 EEPROM Arduino 连接器传感器/PHY 等,待定 • I 2 C2 GPIO 扩展 ADC 传感器/PHY 等,待定 认证:FCC B类和CE 本产品的全部内容 产品图 点击此处购买 LS1021A 物联网网关参考设计 物联网物理组件 网关 SOC: QorIQ LS1021A 主板/模块: QorIQ LS1021A IoT网关参考设计 FRDM-KW24D512 软件: Linux BSP OpenWRT 通信基础设施
查看全文
适用于 ARM 2018.R1 的 S32 Design Studio - 更新 2 现已发布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 ARM ® 2018.R1 版 S32 设计工作室  Update 2          新增内容 此更新添加了对 S32K118 裸板设备的支持 ,并进行了一些小修复。这是一个累积更新,包含之前 更新 1 的所有内容 。 安装说明 此更新适用于 在线的 (通过 Eclipse Updater)或 离线安装(直接下载链接) 在线的 安装: 进入菜单“帮助”->“安装新软件...”对话框  select predefined update site "S32DesignStudio - http://www.nxp.com/lgfiles/updates/Eclipse/S32DS_ARM_2018.R1/updatesite" 选择所有可用项目并单击“下一步”按钮   离线安装: 转到 S32 Design Studio for ARM 产品页面 -> 下载部分或使用 直接链接下载更新存档 zip 文件 启动 S32DS 并转到“帮助”->“安装新软件...” 添加一个新的 “Archive” 仓库,然后浏览并选择您在之前步骤中下载的更新归档.zip 文件。 选择所有可用项目并单击“下一步”按钮。   这将启动更新安装过程。 概述
查看全文
16位SAR ADC校准 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1. 校准的工作原理 有三个主要子块对于理解 Kinetis SAR 模块的工作原理非常重要。有一个电容式 DAC、一个比较器和控制模块的 SAR 引擎。在这些区块中, DAC 最容易受到可能导致 SAR 线性问题的变化的影响。 DAC 采用三组二进制加权电容器按组排列而成,如图 1 所示。代表 SAR 最高有效位 (B15:B11) 的电容器直接连接到比较器的输入。下一组五个电容器(B10:B6)通过故意加大尺寸的缩放电容器连接到 MSB 阵列的顶板。构成 SAR 最低有效位 (B5:B0) 的最后六个电容器通过另一个缩放电容器相应地连接到中间电容器组的顶板。 图 1.DAC电容的排列 仅校准 MSB 电容器组。由于第一个缩放电容器故意尺寸过大,每个未校准的 MSB 电容器的有效电容都会太小,无法产生准确的结果。然而,因为它们总是太小,我们可以测量每个电容器单独引起的误差量,并将其添加到结果中。 校准从最小的 LSB 电容器 B11 开始。SAR 对所有低于或等于被测电容器 (CUT) 的电容器上的 Vrefl 进行采样,同时将所有较小的电容器连接到 Vrefh。当发生这种情况时,所有 MSB 电容器的顶板都保持在 VDDA。采样阶段完成后,MSB 电容器的顶板可以浮动,而未经测试的 MSB 的底板则连接到 Vrefl。这使得电荷从 CUT 重新分配到较小的电容器。最后,执行 11 位 SAR 算法(对应于小于 MSB 阵列的 11 个电容器),该算法产生的结果指示 CUT 与理想尺寸电容器相比的误差量。对正侧和负侧 DAC 上的五个 MSB 中的每一个重复此过程,并且报告的五个错误值相应地与五个 MSB 相对应。所有这些误差值的幅度都大致相同,单位为 16 位 LSB。参见图 2 的示例。 图 2. 第 11 位校准示例 DAC MSB 误差是累积的。也就是说,如果设置了 DAC 的第 11 位,那么错误就是该位的错误。然而,如果设置了 DAC 的第 12 位,则总误差等于第 12 位报告的误差加上第 11 位报告的误差。对于每个 MSB,误差按如下方式计算,其中 Ex 是在校准其相应 MSB 位时发现的误差: 当 DAC 的第 11 位被设置时:CLx0 = E0。 当 DAC 的第 12 位被设置时:CLx1 = E0+E1。 当 DAC 的第 13 位被设置时:CLx2 = E2 + E1 + 2E0。 当 DAC 的第 14 位被设置时:CLx3 = E3 + E2 + 2E1 + 4E0。 当 DAC 的第 15 位设置时:CLx4 = E4 + 2E3 + 4E2 + 8E1 + 16E0 图3. 校准误差对ADC响应的影响 这些值随后会被放入每个 CLxx 校准结果寄存器中。图 3 显示了如果所有 CLxx 寄存器均设置为零,误差将如何累积。失调和增益寄存器也是基于这些值计算的。因此,增益和失调寄存器仅校准 SAR 本身内部的误差。自校准无法补偿电路板或系统级增益或失调问题。 2. 推荐的校准程序 从以上描述可以看出,校准过程实际上是多次连续的模数转换。这些转换容易受到所有 ADC 转换中相同误差源的影响。由于主要测量的是 MSB 电容大小的误差,因此建议以适当的方式配置 SAR,以便在校准 SAR 的环境中实现尽可能精确的转换。 噪声是造成此过程中批次间差异的主要原因,因此应采取措施降低校准过程中噪声的影响。例如: 所有数字 IO 应保持静默,并且应禁用不必要的模块。 Vrefh 应尽可能稳定且电压较高,因为 Vrefh 越高意味着 ADC 代码宽度越大。隔离的 Vrefh 引脚是理想的。缺少这一点,使用隔离的 VDDA 作为参考比使用 VREFO 更好。 使用的时钟应尽可能无噪声,并且小于或等于 6 MHz。为此,校准所需的时钟源顺序应为 OSC > PLL > FLL > ASYNC 硬件平均应设置为最大 32 个样本。 低功耗转换位应设置为 0。 校准应在室温下进行。 高速转换和采样时间加法器在大多数情况下不会产生太大影响,并且校准程序完全忽略了 Diff 和 Mode 位。 应针对上述条件下芯片上的每个 SAR 实例获取校准值。它们应该存储在非易失性存储器中,然后在 ADC 寄存器值被清除时写入适当的寄存器中。 在某些情况下,存在的系统噪声仍然会导致校准程序表现出大于期望的运行间变化。一个经验法则是重复校准几次并查看 CLx0 寄存器。如果该寄存器中报告的值相差超过三,则可以实施以下程序。运行校准程序几次。二十到四十次。将每个校准寄存器的值放入相应的数组中。对每个数组执行冒泡排序并找到每个校准寄存器的中值。按照典型校准结果的描述使用这些中值。 Kinetis E系列MCU Kinetis EA系列MCU Kinetis K系列MCU Kinetis L系列MCU Kinetis V系列MCU/单片机 Kinetis W系列MCU
查看全文
MPC5777C CSE CSE_ECR=0X02 命令序列错误 大家好, 客户目前正在做CSE密钥加载&擦除(用for循环,先加载密钥再擦除密钥约10000次)测试实验。 但是经过10000次测试后,再次打开MCU电源,密钥无法再加载或擦除,并且CSE_ECR = 0x02报告命令序列错误,并且其他CSE命令发送到CSE时也会出现此错误。CANCEL 是 CSE 唯一会接受且不会出现 0x02 错误的命令。此问题与此工单相同,但没有正确答案: https://community.nxp.com/t5/MPC5xxx/MPC5777C-CSE-Problem/mp/589107#M4239 所以问题是如何处理这个问题,因为在这种情况下密钥不能再被加载或擦除,并且 CSE 命令也不能被 CSE 核心接受。 我比较了正常芯片(在 EVB 上用新芯片替换)和问题芯片,发现 SR_BFN 位和 CSE_ECR 位不同,SR_BFN 位表示安全启动完成,但我没有在问题芯片上启用安全启动。 错误一: 正常一个: 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi Lukas, 听起来很有道理,如果这一点应该注意Key擦除,那么应该在文档中弄清楚,因为在我们正常的调试过程中,在调用DEBUG_CHAL + DEBUG_AUTH时,我们可能会意外重启或再次打开电路板。 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi Lukas, 有没有任何文档提到这一点? 回复:MPC5777C CSE CSE_ECR=0X02 命令序列错误 Hi @Zhongling_Lang  最有可能的是,这是由于意外重置或 MCU 电源循环之前的超时时间太短造成的(在闪存上执行的擦除周期越多,擦除闪存所需的时间就越长)。 如果由 DEBUG_CHAL+DEBUG_AUTH 命令触发的擦除操作因意外重置而终止,则会导致 CSE 无法使用并且无法恢复。 无论如何,这不是实际应用中预期的用例。DEBUG_CHAL+DEBUG_AUTH 应该只在开发期间使用,而不是在现场使用。 此致, Lukas
查看全文
SDK 未显示 安装了S32DS V4, 按照手册安装必要的软件, 在项目创建期间无法看到 SDK 按照以下文档中的步骤操作  #nxp S32G2  回复:SDK 未显示 Hi, 看起来这个问题与下面显示的社区帖子相同: S32G3 开发板,无法找到 SD 卡中没有的 FSL 镜像 - NXP Community 上述社区主题已提供信息。 请告知我们。 回复:SDK 未显示 HI @Daniel-Aguirre , 我面临两个问题。 我将 Micor USB 电缆连接到 PC 和 J4 连接器。未检测到 USB。 2)构建不完整 回复:SDK 未显示 Hi, 感谢您的反馈。 您能帮助我们分享您安装了哪个 RTD 包吗?您能看到您的设置下的可用示例吗?您在上一个窗口中选择了哪个 GCC 版本? 请告知我们。 回复:SDK 未显示 你好@Daniel-Aguirre 我尝试过同样的事情,但没有成功。如果您需要任何其他详细信息,请告诉我。 回复:SDK 未显示 Hi, 您能帮助我们分享您安装了哪个 RTD 包吗?您能看到您的设置下的可用示例吗?您在上一个窗口中选择了哪个 GCC 版本?针对这一问题,我们还可以推荐以下 HOWTO: 如何:使用 S32 RTD(无 AUTOSAR)为 S32G 创建闪烁 LED 应用项目 - NXP 社区 请告知我们。
查看全文
如何解释 MC33665 TPL2 消息 我正在学习 MC33665 数据表。5.2.3 TPL2协议,消息长度为48bit,但是第二个16bit数据大于16bit,我该如何理解 我的意思是 MS =1bit,RADD=7bit,MADD=1bit,CADD=3bit,DADD=6bit,总共 18bit,大于 16bit? 回复:如何解释 MC33665 TPL2 消息 Hi, AN13281 被归类为需要保密协议 (NDA) 的安全文件。 您可以直接从以下位置下载: https://www.nxp.com/webapp/sd/collateral/1644500428545720962128?version=0.1 或来自: https://www.nxp.com/mynxp/secure-files 如果您的安全访问权限有任何问题,请联系支持人员。 BRs, Tomas 回复:如何解释 MC33665 TPL2 消息 我在哪里可以获得 AN13281。我的安全访问出错了。我拿到 MC33665A 数据表后它就不能用了 回复:如何解释 MC33665 TPL2 消息 Hi, 请查看我们的 AN13281 - 它详细描述了 TPL2 消息帧并提供了其他有用的信息。 BRs, Tomas
查看全文
关于Android和Linux千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 千兆以太网应该是我们imx6平台最漂亮的功能之一,它将给众多客户带来更加丰富多彩的梦想。 但最近很多人反映使用Android和Linux在性能上存在很大的差距。现在让我在此进行探索。 同样的硬件,同样的内核,性能却不同,为什么? 在linux下,其数据吞吐量可以达到400Mbps,在JB下,只能达到200Mbps。 从下面的信息我们可以看出它应该与丢帧有关。 root@android:/# busybox ifconfig eth0 eth0 链路封装:以太网 HWaddr 00:04:9F:02:6C:E1 inet地址:192.168.0.100广播:192.168.0.255掩码:255.255.255.0 inet6 地址:fe80::204:9fff:fe02:6ce1/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:7382672错误:71828 丢弃:789 超限:71828 帧:71828 TX 数据包:4147006 错误:0 丢弃:0 超限:0 载波:0                collisions:0 txqueuelen:1000 RX 字节数:2568845018(2.3 GiB)TX 字节数:284789020(271.5 MiB) 在TCP协议栈中,iperf测试用例涉及三个缓冲区:tcp_mem;tcp_rmem;tcp_wmem。 它们都由三个变量描述,这些变量对 iperf 测试结果有很大影响。 在Linux中,我为它们获取了一个快照:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      18240      24320     36480      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     778240      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     778240 在 Android 中,我也将它们与以下内容进行比较:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      9285      12380     18570      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     396160      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     396160 tcp_mem 变量定义 TCP 堆栈在内核内存管理中的行为方式。第一个值告诉内核低阈值。 第二个值告诉内核从什么时候开始降低内存使用率。第三个告诉内核最多可以使用多少个内存页。 如果达到该值,TCP 流和数据包就会开始被丢弃,直到达到安全水平。 在 tcp_rmem 中,第一个值定义每个 TCP 连接的最小接收缓冲区,并且该缓冲区始终分配给 TCP 套接字。第二个值定义 默认接收缓冲区大小。第三个指定了可以为 TCP 套接字分配的最大接收缓冲区。 在 tcp_wmem 中,还给出了三个变量来描述每个 TCP 套接字的 TCP 发送缓冲区。 我们可以在内核代码中检查这些值是如何产生的。在 kernel_imx/net/ipv4/sysctl_net_ipv4.c 中有一个算法+450。 限制= nr_free_buffer_pages() / 8;     limit = max(limit, 128UL); sysctl_tcp_mem[0] = 限制 / 4 * 3; sysctl_tcp_mem[1] = 限制; sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2; /* 将每个插槽的限制设置为不超过压力阈值的 1/128 */ 限制 = ((无符号长整型)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); max_wshare = min(4UL*1024*1024,限制);     max_rshare = min(6UL*1024*1024, limit);     sysctl_tcp_wmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_wmem[1] = 16*1024; sysctl_tcp_wmem[2] = max(64*1024,max_wshare);     sysctl_tcp_rmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_rmem[1] = 87380; sysctl_tcp_rmem[2] = max(87380,max_rshare); 从上面的算法中,我们可以看到 tcp_mem、tcp_wmem[2]、tcp_rmem[2] 都与 nr_free_buffer_pages() 相关,nr_free_buffer_pages() 代表 ZONE_DMA 和 ZONE_NORMAL 内可分配的可用 RAM 数量。 所以到这里,我们就能找到Android和Linux之间性能差距的根本原因了。运行不同的操作系统时,可用 RAM 之间存在很大差距。 事实上,在android中,Google已经引入了一种通过属性来调整这些值的机制。 现在我们使用默认的AOSP值,您可以在device/fsl/imx6/etc/init.rc中引用它们。对于wifi和以太网,它们都使用net.tcp.buffersize.wifi。 # 定义各种网络的 TCP 缓冲区大小 # 读取最小值、读取初始值、读取最大值、写入最小值、写入初始值、写入最大值 setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.wifi524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.lte524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.umts4094,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.hspa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsupa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsdpa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hspap4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.edge4093,26280,35040,4096,16384,35040 setprop net.tcp.buffersize.gprs4092,8760,11680,4096,8760,11680 setprop net.tcp.buffersize.evdo4094,87380,262144,4096,16384,262144 我尝试改变上述值,但不幸的是没有得到明显的改善。嗨,为什么? 那么另一个话题,tcp_mem 和 tcp_rmem 如何在内核中协同工作?在 android 中,我们只有办法调整 tcp_rmem 或 tcp_wmem 设置,而没有办法调整 tc_mem。 以“iperf -c”为例,tcp_rmem将根据千兆以太网时钟的频率进行填充。然后它将 根据tcp_mem的大小重新打包,如果tcp_mem较小,则会触发更多次,如果超过最大值 将会触发丢帧。然后将通过 TCP 启动重新传输。最后,性能就会下降。这就像使用千兆上网但用的是垃圾笔记本一样。 您仍然无法享受千兆以太网的良好性能。 为什么内核在 ipv4 中这样计算 tcp_mem?也许他们考虑的是单一高带宽和多连接之间的平衡。 你可以想象如果我们将 tcp_mem 更改为使用一个很大的值,它可能会导致主板由于内存分配不足而拒绝连接 在 tcp 初始化中。在这里我将给出几种提高我们的Android以太网性能的方法。 在电路板设计阶段扩大内存大小。 我已经通过在我们的 SabreAuto 板上测试再次检查了这一点,该板的内存为 2G,其下载速度可以达到 270 Mbps,而通过 Sabresd 则可达 50Mbps。 尽量使用老版本的android,如果能用ICS,可以放弃JB4.3。与较新的 Android 版本相比,旧版本占用的内存更少,并且会留下更多的可用内存。使用 ICS,我们可以达到 380 Mbps 的下载速度,而在 JB4.3 中,只能达到 210 Mbps。 如果您在非常重要的情况下使用 sabresd 的千兆以太网,那么如果您可以抛出其他内存消耗器(如 GPU),则可以平衡它。我已经检查过,如果我们禁用 GPU,JB4.3 中的性能可以达到 340 Mbps,提高约 50%。 改变tcp_mem算法,扩大其最大值阈值。就像您可以将上面的“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2”更改为“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 3”。您可以看到不再出现丢帧现象。或者您也可以参考如何:网络/TCP/UDP 调整来对其进行硬编码。但正如其作者所说,不建议用于支持多个用户或多个连接。因为它可能导致主板由于内存分配不足而拒绝连接。 通过 android 中的以下补丁调整 tcp_rmem 和 tcp_wmem。您将获得双向 320Mbps。但是如果您使用 ifconfig 工具设置静态 ip,您将无法设置这些参数。对于AOSP的框架现在只支持DHCP。对于这种情况,您可以在进行测试之前在控制台中手动回显这些参数。 Gerrit 代码审查 Gerrit 代码审查 更改内核的调度策略配置。 禁用 CONFIG_FAIR_GROUP_SCHED 并且仅启用 CONFIG_RT_GROUP_SCHED 会带来一些增强。 经过上述更改,我已经使用 android4.3GA 在 Sabresd RevC1 上进行了测试,双向速率均可达到390~400Mbps。 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我也想让客户关注这个主题,以便他们可以分享他们的结果。 顺祝商祺! —马赫什 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Jianzheng, 您能否将此文档留在此审核区域(而非您的私人空间),直到审核过程完成?当文档在自己的空间中,并且没有被限制查看时,社区中的每个人都可以看到该文档。在将文档移至公共社区之前,我们希望从中删除所有审核意见。 谢谢! 授予 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您能否尝试像我在本文中提供的补丁一样更改tcp_rmem 和 tcp_wmem 的大小? 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 我们正在使用 Android ICS(3.0.35 内核)开发 i.MX6Q,并且有以下疑问。 1) 您提到,通过使用 Android ICS,您已经实现了 380 Mbps 的下载速度(来自主板的 iperf -c)。我想知道它是否稳定(差异很小)?或者下载时速度是否会出现波动(200~400Mbps范围内)? 2)如果波动结果范围是 200~400Mbps,您知道如何解决这种不稳定性吗? 谢谢! 阿吉斯·PV 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我建议您在文档评论中“@提及”您的审阅者(如本文所示),并要求他们成为您的指定审阅者,并将他们引导至此暂存区域的主页以获取审阅者的说明。基本上,他们所要做的就是审查文档,向您提供一些反馈,然后在您做出必要的更改后,他们会重新审查并提交“我同意”的评论。相当简单。
查看全文
「Configure...「Dio」ブロック内の「」ボタン エラー「指定されたパスが見つかりません。」「構成...「Dio」ブロックの「」ボタン。 私はこのトレーニングビデオを段階的に追っています。 https://www.nxp.com/design/training/deploying-autosar-and-non-autosar-software-components-on-nxp-s32k3-with-mathworks-tools:TIP-AUTOSAR-SOFTWARE-NXP-S32K3-MATHWORKS-TOOLS 9:42に、「Configure...「Dio」ブロックの「」ボタンをクリックすると、EBTresosが開きます。 しかし、私はこのエラー情報を得ました。 私のハードウェア設定: EB tresos v29をインストールしました。 Re:「Configure...「Dio」ブロック内の「」ボタン Hi, @xianzhi_g , S32K3 のモデルベース デザイン ツールボックスにご関心をお寄せいただき、ありがとうございます。 直面している問題は、EB tresos フォルダが見つからないことです。次の図に示すように、C:\EB\tresos\bin ではなく C:\EB\tresos パスを選択していることを確認します。 お役に立てば幸いです。 ドラゴス
查看全文
无法在 S32K396-BGA-DC1 评估板上运行 MBDT s32k3xx_dio_ebt 示例 你好 我们最近购买了一块 S32K396-BGA-DC1 评估板,用于评估未来项目的 S32K396 MCU。 由于我们将使用 Simulink 模型进行应用程序开发,因此我尝试使用 MBDT 工具箱。 我可以毫无问题地安装工具箱,但我无法运行 s32k3xx_dio_ebt 示例。 我认为我已经在模型参数中设置了正确的目标 我正在使用安装在板上的“Open SDA”调试器。跳线 J16、J17、J18 和 J19 已相应设置。该电路板通过 USB 连接到我的笔记本电脑(电路板上的 USB 连接器旁边有绿色 LED 灯)。 模型下载参数设置如下 模型已建立,但当 Simulink 尝试将代码加载到开发板中时,过程失败 这是日志的内容 GNU gdb (GDB src=g2b2d27aa26 bld=gd2333b8c -vs=GDB-12-1 -L64 -W32 耳臂) 12.1 版权所有 (C) 2022 自由软件基金会,Inc. 许可证 GPLv3+:GNU GPL 版本 3 或更高版本 < http://gnu.org/licenses/gpl.html > 这是免费软件:您可以自由更改和重新分发它。 在法律允许的范围内,不提供任何担保。 输入“显示复制”和“显示保修”以了解详情。 该 GDB 配置为“--host=i686-mingw32 --target=arm-none-eabi”。 输入“show configuration”获取配置详细信息。 有关错误报告说明,请参阅: < https://www.gnu.org/software/gdb/bugs/ >。 在线查找 GDB 手册和其他文档资源: < http://www.gnu.org/software/gdb/documentation/ >。 如需帮助,请输入“help”。 输入“apropos word”来搜索与“word”相关的命令... 从 C:/Matlab/AddOn_2023b/Toolboxes/NXP_MBDToolbox_S32K3/S32K3_Examples/dio/s32k3xx_dio_ebt/s32k3xx_dio_ebt.elf 读取符号… tcp:localhost:7224:连接超时。 当你的目标是“exec”时,你不能这样做 顺便说一下,当发生错误时,红色 LED 会亮起。 有人能帮我吗? 谢谢 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 很高兴听到! 我刚刚将您的附加帖子转发给了 S32 设计工作室团队。 如果您在使用 MBDT for S32K3 时遇到任何其他问题,请告知我们 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 有用 ! 我知道您给我的指南,但是查看文档,我并不清楚在使用 J1 12V 电源时必须设置那些跳线。 无论如何,现在很明显我错了 顺便说一句,万一你也可以帮助我,我还有另一个关于在 S32 Design Studio 中安装 S32K396 支持包的案例: https://community.nxp.com/t5/S32K/Fail-to-install-S32K396-development-package-fails/mp/2053684#M46329 非常感谢你的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 感谢您提供的图片。我注意到,您的主板上的 J4、J6 和 J7 位于 1-2 位置,对应于 JP1 电源,如S32K396-BGA-DC1 连接器和跳线说明表所示,您可以在以下链接中找到该表 由于目前您的设置中 JP1 上没有连接,因此您需要更改跳线位置以确保 MCU 所需的电压。 为此,以及完整的逐步硬件设置,我建议您查看S32K396-BGA-DC1 评估板入门指南,以便能够根据您的硬件设计设置电源,并正确配置电路板上所有必要的跳线。 如果这有帮助,请告诉我们, Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 感谢您的努力。 当我的电路板仅通过 J1 连接器供电(未连接 USB)时,只有 D4 LED 亮起。D1、D2 和 D3 保持关闭状态 当 USB 电缆连接时,即使 J1 未连接,D30 LED 也会亮起 当 USB 和 J10 都连接时,我仍然只有 D4 和 D30 处于打开状态。我正尝试以这种状态下载代码。 如您所见,D2、D3 和 D4 始终处于关闭状态。这是个问题吗? 谢谢 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 您的下载设置似乎正确,因为您选择使用 JTAG 将代码下载到 FLASH 存储器中。 我已尝试在我的设置上运行该示例,我想提一下我已采取的步骤: - 通过 12V CON_1_PWR J1连接器为电路板供电, - 通过SW10启用外部电源,将其切换到1-2位置(请注意,根据电路板的原理图, J3也需要放置在 1-2 位置) 执行这些操作后, D1、D1、D3、D4 LED(MCU 电源输入指示灯)也应亮起。 您能否告诉我们,按照这些步骤操作后,除了电路板上 USB 连接器旁边的 LED 灯亮起之外,MCU 电源输入指示灯是否也亮起? 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 非常感谢您的帮助。 我已经更改了“配置项目模板” 我也下载并安装了 PE Micro 驱动程序(并重新启动了计算机),但不幸的是它并没有解决问题。 您能否确认我的“下载”设置是否正确? 连接失败后,我注意到日志中有一些有趣的东西 这是否意味着 MCU 已在运行? 该板是全新的,所以我猜没有可以在闪存中运行的代码 是否有任何跳线需要设置以告诉 MCU 从 JTAG 而不是闪存启动? 再次感谢您的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 通过查看您遇到的错误,我认为问题可能与缺少PEmicro 硬件接口驱动程序安装有关。这些驱动程序对于使用板载 OpenSDA 调试器是必需的。 您能否检查这些驱动程序是否已安装?如果没有,您可以从 PEmicro 官方网站下载并安装它们。 此外,如果您打算使用 S32K396-BGA-DC1,您可以直接选择我们为该板提供的默认配置项目,因为 S32K396-Q289 选择与 EVB 的 BGA-DC 版本相匹配。根据该板的硬件特性,为 S32K396-BGA-DC1 提供的配置项目启用了外设、引脚和时钟,因此从该项目开始而不是从已经选择的开始可能会很有用。   请让我们知道这是否有帮助或者是否需要我们提供进一步的详细信息。 Irina
查看全文
无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 尝试通过 UUU 将我从 NXP 下载的 imx 8 nano EVK Linux 映像写入我的 imx 8 nano EVK。我认为这应该是一件非常简单、平常的事情。但它失败了。 我下载了LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK。 使用最新的 UUU,v 1.5.182。 UUU 识别 nano 并开始处理,但很快失败并出现错误:LIBUSB_ERROR_TIMEOUT。 我已重试多次,但每次都失败。 仅供参考:我还有一个 mini EVK,我可以毫无问题地将 mini EVK 图像写入其中。 知道是什么原因导致失败吗?又该如何解决呢? 以下是我的运行输出: PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 2:1 MX815 SDPS: 0x1FC9 0x013E 0x0001 2D2A6A09DAB58857 PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -V . uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Build in config: Pctl Chip Vid Pid BcdVersion Serial_No ================================================== SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff] SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff] SDPS: MX8DXL 0x1fc9 0x0147 SDPS: MX28 0x15a2 0x004f SDPS: MX815 0x1fc9 0x013e SDPS: MX865 0x1fc9 0x0146 SDPS: MX8ULP 0x1fc9 0x014a SDPS: MX8ULP 0x1fc9 0x014b SDPS: MX93 0x1fc9 0x014e SDPS: MX91 0x1fc9 0x0159 SDPS: MX95 0x1fc9 0x015d SDPS: MX95 0x1fc9 0x015c SDP: MX7D 0x15a2 0x0076 SDP: MX6Q 0x15a2 0x0054 SDP: MX6D 0x15a2 0x0061 SDP: MX6SL 0x15a2 0x0063 SDP: MX6SX 0x15a2 0x0071 SDP: MX6UL 0x15a2 0x007d SDP: MX6ULL 0x15a2 0x0080 SDP: MX6SLL 0x1fc9 0x0128 SDP: MX7ULP 0x1fc9 0x0126 SDP: MXRT106X 0x1fc9 0x0135 SDP: MX8MM 0x1fc9 0x0134 SDP: MX8MQ 0x1fc9 0x012b SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff] SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998] SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998] SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999] SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff] SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998] FBK: 0x066f 0x9afe FBK: 0x066f 0x9bff FBK: 0x1fc9 0x0153 FB: 0x0525 0xa4a5 FB: 0x18d1 0x0d02 FB: 0x3016 0x0001 FB: 0x1fc9 0x0152 FB: 0x0483 0x0afb Wait for Known USB Device Appear... New USB Device Attached at 2:1-2D2A6A09DAB58857 2:1-2D2A6A09DAB58857>Start Cmd:SDPS: boot -f imx-boot-imx8mnddr3levk-sd.bin-flash_ddr3l_evk 10%2:1-2D2A6A09DAB58857>Fail HID(W): LIBUSB_ERROR_TIMEOUT (-7)(20.05s) libusb: warning [libusb_exit] device 2.0 still referenced libusb: warning [libusb_exit] device 1.0 still referenced libusb: warning [libusb_exit] device 2.6 still referenced libusb: warning [libusb_exit] device 1.1 still referenced libusb: warning [libusb_exit] device 2.2 still referenced PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Windows 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 您的回复促使我更仔细地查看下载选项。我现在看到有两个名称中带有“nano”:i.MX 8M Nano DDR3L EVK 和 i.MX 8M Nano EVK。我猜名称中没有“DDR3”的是DDR4。 使用非 DDR3 下载有效。 仅供参考,我使用了命令: uuu .\LF_v6.6.36-2.1.0_images_IMX8MNEVK.zip 确实希望在线信息能够更好地设计以获得成功。 谢谢你的帮助。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 您正在将 DDR3 二进制文件刷入 LPDDR4 板,请尝试刷入正确的LPDDR4 板。 uuu -b imx-boot-imx8mnevk-sd.bin-flash_evk imx-image-full-imx8mnevk.wic 此致 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 再次尝试附加图片。似乎使用 jpg 文件比使用 .zip 文件效果更好。      回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 我确实附加了一个带有图像的 zip 文件,但现在在线程中看不到它。然后我尝试再次回复并附加一个简单的文本文件,但我认为它没有起作用。该文件似乎开始上传;显示在拖放框中,但随后消失了。并且消息“允许的最大附件数”计数保持在 5。因此,我怀疑图片压缩包是否附加在了我上一条消息中。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 也许您指的是顶部和底部的图片。随附的。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 感谢您对恩智浦半导体产品的关注, 您能分享一下您的两块板子的顶部和底部的图片吗? 此致
查看全文
如何在 i.MX 配置工具中为 i.mx6ull 分配中断 下午好,亲爱的恩智浦!我该如何在这个工具中分配中断?我已经配置了所有引脚,现在我必须为其分配中断并为各种中断编写自己的中断处理程序。但我无法找到如何以及在何处使用此工具来执行此操作。 我正在使用 Linux,所以我认为我必须以某种方式将引脚声明为中断源,然后编写驱动程序将其分配给该引脚,但现在我不明白如何做到这一点。 聚苯乙烯 很明显我应该把 dtsi 文件放在哪里,但我应该把另外 4 个(iomux_config.c(h))放在哪里,pin_mux.c(h))SDK 中生成的文件? i.MX6 全部 i.MX6UL 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 谢谢你!我是这样想的,那么,我将以 Linux 风格来做这件事) 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 我问了我们的 Pin 工具成员,他们说中断向量的初始化或来自 GPIO 引脚的中断不是 i.mx 6ULL 引脚工具数据的一部分。 GPIO 中断的初始化是 GPIO 外设初始化的一部分,应该在 GPIO 驱动程序中。 和您提到的一样。 B.R 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 我读过这篇文章,但我找不到关于如何为引脚分配中断的解决方案。也许我应该只将引脚标记为中断,然后手动编写 Linux 驱动程序,但我找不到如何将引脚标记为中断。 我该如何理解这一点 - 我无法在此工具中将引脚标记为中断,我只能看到这个引脚是否可以成为中断,然后我应该在 Linux 设备树中手动执行此操作? 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 据我所知,配置工具中的 Pin 工具似乎没有您请求的功能(为 i.mx6ull 分配中断),此外,我还会联系所有者仔细检查这一点。 PS:我认为这个文件不用于放入SDK。请参阅附件第3章以进一步了解。
查看全文
FreeRTOS プロジェクトで LPTMR KSDK ドライバーを使用する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetisソフトウェア開発キット(KSDK)は、Kinetisマイクロコントローラ上でアプリケーションを開発するためのソフトウェア・フレームワークです。フレームワークのソフトウェアコンポーネントには、ペリフェラルドライバー、ミドルウェア、およびリアルタイムオペレーティングシステムが含まれます。 KSDKはFreeRTOS OSを提供し、選択されたドライバーは追加のレイヤーの形でFreeRTOSサポートを提供します。このソリューションにより、RTOSベースのアプリケーションへのドライバ統合が容易になります。 FreeRTOS レイヤーを持つドライバーは次のとおりです。 • UART / LPUART / LPSCI • I2C / LPI2C • SPI / LPSPI FreeRTOS OS のドライバーは、標準の KSDK 周辺機器ドライバーの上に構築されたレイヤーで、マルチスレッド (RTOS) 認識を実現します。ラッパーは、I/O 操作が完了するまで呼び出し元のタスクをブロックし、他のタスクをバックグラウンドで実行できるようにする API を提供します。これは、基になるドライバーの非同期 API と RTOS タスク同期オブジェクトを使用して実現されます。基盤となるドライバーは、適切に動作するために有効な割り込みを必要とします。 さらに、KSDKベアメタルドライバーを使用することも可能です。このドキュメントでは、FreeRTOS および SDK 2.0 プロジェクトで LPTMR ドライバーを使用する方法について説明します。この例では、SDK 2.0、FRDMK64F、および FreeRTOS を使用しています。 FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する方法を知りたい場合は、以下のリンクを確認してください https://community.freescale.com/docs/DOC-330183 GPIOとLPTMRの例: はじめに この例では、青色の LED を 1 秒ごとに切り替えます。この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。 サンプルコードの記述 まず、FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する必要がありますので、以下のリンクを確認してください。      https://community.freescale.com/docs/DOC-330183 2.新しいプロジェクトを作成したら、pin_mux.c を開きますポートクロックを有効にし、必要なピンをGPIOとして構成するためのファイル(FRDM-K64Fの場合、RGB LEDはGPIO信号を介して接続されます:赤からPTB22、青からPTB21、緑からPTE26)。 3.さらに、pin_mux.c で lptmr モジュールのクロックを有効にする必要がありますファイル。 4.main.c でファイルには fsl_lptmr.h を含める必要がありますとfsl_gpio.h. 5.main 関数で、新しいタスクを作成します。このタスクは、LPTMR ドライバーと GPIO ドライバーを初期化します。この例では、新しいタスク関数の名前は task_init です。 /* RTOSタスクを作成 */ xTaskCreate( task_init、                  "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                  NULL); 6.task_init関数コードを記述します。 ある。KSDK GPIO ドライバーの使用: GPIO を初期化するには、ユーザー ファイルでピン構成 (入力または出力) を定義します。次に、 GPIO_PinInit() 関数を呼び出します。 今回は青色LEDが接続されているピンPTB21を出力として設定しました。 gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,}; GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); GPIO ピンをコンフィギュレーションすると、次の GPIO 操作を使用できます。 GPIO出力操作。 GPIO_WritePinOutput  (GPIO_Type *base, uint32_t pin, uint8_t output) GPIO_SetPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_ClearPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_TogglePinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO 入力操作。 GPIO_ReadPinInput (GPIO_Type ※ベース、uint32_tピン) board.h ファイルには、この操作の定義が含まれています。例えば: /*!< ターゲットLED_BLUEの切り替え */ #define LED_BLUE_TOGGLE() \ GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO、1U<< BOARD_LED_BLUE_GPIO_PIN) b.KSDK LPTMR ドライバーを使用する場合: LPTMR_Init () は、アプリケーションの先頭で LPTMR ドライバーを使用して呼び出す必要があります。この関数は lptmr_config_t 構造体を初期化し、この構造体は LPTMR 周辺機器の構成設定を保持します。この構造体を適切な既定値に初期化するには、LPTMR_GetDefaultConfig() 関数を呼び出し、構成構造体インスタンスへのポインターを渡します。config構造体は、フラッシュに存在するようにconstにすることができます。 デフォルト値は次のとおりです。 config->timerMode = kLPTMR_TimerModeTimeCounter; config->pinSelect = kLPTMR_PinSelectInput_0; config->pinPolarity = kLPTMR_PinPolarityActiveHigh; config->enableFreeRunning = false; config->bypassPrescaler = true; config->prescalerClockSource = kLPTMR_PrescalerClock_1; config->value = kLPTMR_Prescale_Glitch_0; LPTMRを設定した後、タイマー期間を設定する必要があります。LPTMR_SetTimerPeriod() は、タイマーが 0 からここで設定されたカウント値と等しくなるまでカウントします。カウント値はCMRレジスタに書き込まれます。 最後に、LPTMR_StarTimer () を使用してタイマーを開始します。この関数を呼び出した後、タイマーはCMRレジスタ値までカウントアップします。タイマがCMR値に達してからインクリメントするたびに、トリガパルスが生成され、タイムアウト割込みフラグが設定されます。タイマー割り込みが有効になっている場合も、割り込みがトリガーされます。 この例では、次の行で LPTMR を構成して開始します。 /* LPTMR の設定 */ LPTMR_GetDefaultConfig(&lptmrConfig); /* LPTMR を初期化します */ LPTMR_Init(LPTMR0, &lptmrConfig); /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); /* カウント開始 */ LPTMR_StartTimer(LPTMR0);                   c.この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。したがって、無限ループでは、LPTMR_GetStatusFlags()関数がチェックします ステータスフラグ (このフラグが設定されている場合は、LED を切り替えて、LPTMR_ClearStatusFlags() 関数を使用してフラグをクリアします。 (1) ながら    {    if (LPTMR_GetStatusFlags(LPTMR0) )           { LED_BLUE_TOGGLE();                      LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag);               } } 7.この時点で、サンプルをビルドしてデバッグできます。 完全なコード GPIO と LPTMR の例 #include #include「ボード.h」 #include「pin_mux.h」 #include 「clock_config.h」 #include「fsl_debug_console.h」 #include 「fsl_device_registers.h」 #include 「fsl_lptmr.h」 #include 「fsl_gpio.h」 /* FreeRTOS カーネルには以下が含まれます。*/ #include「FreeRTOS.h」 #include「task.h」 #include「queue.h」 #include「timers.h」 /* タスクの優先順位。*/ #define task_PRIORITY (configMAX_PRIORITIES-1) /******************************************************************************* *定義 ******************************************************************************/ /* LPTMR ドライバーのソースクロックを取得 */ #define LPTMR_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_LpoClk) static void task_init(void *pvParameters); /******************************************************************************* * Variables ******************************************************************************/ volatile uint32_t lptmrCounter = 0U; int main(void) {        /* ボード ハードウェアを初期化 します。*/ BOARD_InitPins(); BOARD_BootClockRUN();        BOARD_InitDebugConsole();        /* ここにコードを追加 */        /* RTOSタスクを作成 */ xTaskCreate( task_init、                      "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                      NULL); vTaskStartScheduler();        for(;;){ /* メイン関数から離れないようにするための無限ループ */               __asm(「NOP」); /* ループ中のブレークポイント停止として使用するもの */        } } static void task_init(void *pvParameters) {        for (;;){               lptmr_config_t lptmrConfig; PRINTF("初期化タスクを実行しています。\r\n");               /* イニット 出力LEDGPIO。*/               gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,};               GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); PRINTF("LED BLUE 初期化済み \r\n");               /* LPTMR の設定 */               /*                * lptmrConfig.timerMode = kLPTMR_TimerModeTimeCounter;                * lptmrConfig.pinSelect = kLPTMR_PinSelectInput_0; * lptmrConfig.pinPolarity = kLPTMR_PinPolarityActiveHigh; * lptmrConfig.enableFreeRunning= false;                * lptmrConfig.bypassPrescaler = true; * lptmrConfig.prescalerClockSource= kLPTMR_PrescalerClock_1;                * lptmrConfig.value = kLPTMR_Prescale_Glitch_0;                */               LPTMR_GetDefaultConfig(&lptmrConfig);               /* LPTMR を初期化します */               LPTMR_Init(LPTMR0, &lptmrConfig);               /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); PRINTF("低電力タイマー モジュールが初期化されました \r\n");               /* カウント開始 */               LPTMR_StartTimer(LPTMR0); (1) ながら {                      if (LPTMR_GetStatusFlags(LPTMR0) ) { lptmrCounter ++; LED_BLUE_TOGGLE(); LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag); } }        } }
查看全文
A71CH - 常见问题解答 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文收集了有关A71CH解决方案的常见问题 (FAQ) , NXP 的物联网安全 IC 支持“即插即用”物联网安全方法。 我该如何开始? 特性 支持包 订单详细信息 我该如何开始? 如何使用 A71CH 开始开发? 如何开始使用 i.MX6UltraLite? 如果我想将我的设备加入 Google Cloud IoT 核心,我该如何开始? 如果我想将我的设备加入 AWS IoT Core,该如何开始? 特性 哪些类型的凭证可以存储在 A71CH 中? 如何使用 A71CH 进行相互认证? 支持包 在哪里可以找到 A71CH 支持材料? A71CH 支持包包括什么? 订单详细信息 如何订购 A71CH Arduino 兼容开发套件? 如何订购 A71CH IC? A71CH
查看全文
基于模型的 S32K144 电机控制设计方法 - 第一部分 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 简介 该应用程序基于 S32K144(gpio_s32k14_mbd_rtw)的基本 GPIO 示例。该应用程序经过扩展,可以满足运行无传感器 PMSM 磁场定向控制算法的电机控制应用的需求。因此,实现了某些模式(状态)和转换(事件)。 注意:有限状态机理论定义了状态和事件(转换)。以下设计使用的方法在某些时候似乎混合了状态和转换。有些状态仅运行一次,因此它们可能仅被视为转换。然而,该设计被视为一个示例,并且可以在对外部事件的额外检查方面进行扩展,从而使这些“一次性”状态成为实际状态。该设计因恩智浦汽车电机控制开发套件而广为人知,并得到了大多数客户的认可。因此,MATLAB Simulink 也提出了相同的概念。 有限状态机设计 应用程序结构应该引入一个系统工具来处理电机控制的所有任务以及发生故障时的硬件保护。因此,设计了一个有限状态机来使用 MATLAB Simulink Stateflow Chart(Stateflow 库/图表)来控制应用程序状态。 电机控制应用至少需要两种状态——“就绪”状态表示的“停止”和“运行”状态表示的“运行”。然而,需要实施一些额外的状态来覆盖例如上电情况,程序等待各种辅助系统(系统基础芯片、直流母线充满电、内存检查等)。此外,电机控制应用,特别是无传感器磁场定向控制需要额外的状态来校准传感器并启动具有已知位置的电机。因此,从 READY 状态到 RUN 状态的转换是通过 CALIB(传感器校准)和 ALIGN(初始转子位置对准或检测)状态的初始化序列完成的。要停止电机,应用程序通过 INIT(状态变量初始化)返回到 READY 状态。 INIT 状态旨在清除所有内部累加器和其他变量(但参数可以在运行时更改,并且不会重置为默认设置),而 RESET 状态则用于在使用 FreeMASTER 或其他用户界面更改电机控制参数的情况下启用上电或“默认配置”或“软复位”初始化。 所有状态都与状态机图表块中追踪的输出事件相链接。这些事件可用作调用处理程序(状态函数)的触发点。转换由状态机的输入值驱动,通过简单的比较将其视为事件(例如[u==e_start])。要改变状态,就应该改变事件/输入值。如果事件发生了变化,则状态机仅在存在与当前状态和事件相关联的现有动作的情况下才改变状态。 状态机设计用于应用程序中,使用事件输入(发出事件信号)、状态输出(指示当前状态)和事件触发器输出(调用状态函数/处理程序)。已构建以下应用程序来展示状态机使用的示例。 下表显示了状态和事件的命名: 状态 目的 Value 重置 开机/默认设置/软复位状态。可能包括一些硬件检查序列或故障检测。 1 Init 控制状态变量(积分器、斜坡、累加器、变量等)的初始化。可能包括故障检测 2 一切就绪 待机状态,准备开启。包括故障检测,例如直流母线过压或高温 3 CALIB 校准状态用于校准 ADC 通道(消除偏移)。包括故障检测 4 Align 对准状态,找到转子位置并准备启动。包括故障检测 5 运行 电机以开环或无传感器模式运行。包括故障检测 6 故障 故障状态关闭电源转换器和所有外围设备,进入安全状态。 7 输入事件是引发当前状态改变的触发器。 输入事件 目的 Value e_init_done 当 Init 状态成功完成任务时断言 1 e_start 当用户发送开启命令时断言 2 e_calib_done 当所有必需的 ADC 通道都校准后置位 3 e_align_done 当初始转子对准/位置检测完成时断言 4 紧急停止 当用户发送关闭命令时断言 5 e_fault 发生故障情况时断言 6 错误清除 当用户发送“清除故障”命令或情况允许时, 7 e_reset 当用户发送“重置”命令以使用默认设置重新开始时,断言 8 输出事件用于触发电机控制状态处理程序并与实际状态相对应。每次状态机调用都会触发这些事件。因此,状态机应该与控制算法保持一致。例如,它应放置在 ADC“转换完成”中断程序或 PWM 重新加载中断程序内。 有限状态机的使用 状态机应与控制算法很好地配合使用。控制电机的常用方法是将周期性中断与 ADC 转换完成或 PWM 重新加载事件(中断)联系起来。在收集所有外部信息(电压、电流、二进制输入等)之后,应在此事件处理程序中调用状态机,以让状态机决定下一步应调用哪个状态。 状态机内部的内部事件/状态处理由状态机块定义清楚地描述。输出事件触发器配置为向状态机提供清晰的基于功能的代码接口。这意味着,输出事件应连接到用于处理状态任务的函数。例如,在运行状态下,每次状态机调用都会触发 run() 输出事件,而在运行状态函数中则会调用整个电机控制算法。如果要通过输入信息来切换状态,则需要编写一个简单的条件来改变事件变量(定义为全局变量)。例如,如果用户发送“停止”命令,则事件设置为“e_stop”,状态机将切换到初始状态。 为了更复杂地触发输出功能,可以在状态机定义中编程额外的输出事件。 模板状态处理程序函数基于函数调用者块。一般来说,功能块可以与全局变量一起工作,因此不需要输入或输出。由于全局事件变量,事件驱动状态机可以对状态处理程序函数内部或状态机外部抛出的事件做出反应(例如基于其他异步中断)。下面显示了一个简单模板的示例。 在这个例子中,该函数代表重置状态,它应该在上电重置后运行,或者将所有变量设置为其默认设置。因此,第一部分专门介绍与硬件相关的设置,第二部分介绍与应用程序相关的设置。第三部分检查所有任务是否完成。如果是,则抛出 e_reset_done 事件(存储到 Event 变量中)。在这种情况下,ResetStatus 变量显然总是从零变为二,而不受其他影响。因此,最终条件可能会被删除(甚至通过编译期间的 MATLAB 优化过程)。如果存在外部条件,例如等待设置外部引脚,那么使用这样的“状态”变量作为完成状态任务的绿灯并抛出“完成”事件是有意义的。 嵌入式C代码实现 在默认设置中,MATLAB Embedded Coder 以 switch-case 结构的方式生成状态机代码。这对于进一步的代码调试或手动编辑可能不是很有用。因此,函数调用子系统块参数应按如下所示进行更改。函数打包选项设置为“不可重复使用函数”,其他设置可以保留默认值。这将使状态机代码结构保持在 switch-case 中,但是状态处理程序函数调用将生成为静态函数(而不是将代码放在 switch-case 中)。 以下代码示例是 stateMachineTest.c 中生成的状态机代码的一部分示例代码。状态机根据 State 变量进行决策,该变量内部存储在 stateMachineTest_DW.is_c1_stateMachineTest 中。根据 stateMachineTest_DW.Event,启动转换。最后,调用状态处理函数,在本例中为 stateMachineTest_Resetstate()。 void stateMachineTest_step(void) { /* ...  */       switch (stateMachineTest_DW.is_c1_stateMachineTest) { /* ... */       case stateMachineTest_IN_Reset:             rtb_y = 1U;             /* During 'Reset': ' :35' */             if (stateMachineTest_DW.Event == stateMachineTest_e_reset_done) {               /* Transition: ' :37' */               stateMachineTest_DW.is_c1_stateMachineTest = stateMachineTest_IN_Init;               /* Entry 'Init': ' :1' */               rtb_y = 2U;             } else if (stateMachineTest_DW.Event == stateMachineTest_e_fault) {               /* Transition: ' :46' */               stateMachineTest_DW.is_c1_stateMachineTest = stateMachineTest_IN_Fault;               /* Entry 'Fault': ' :18' */               rtb_y = 7U;             } else {               /* Outputs for Function Call SubSystem: ' /Reset state' */               /* Event: ' :49' */               stateMachineTest_Resetstate();               /* End of Outputs for SubSystem: ' /Reset state' */             }             break; /* ... */       }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /* ... */ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 重置状态函数是根据 Simulink 模型中每个块中设置的优先级进行编译的。如果没有设置优先级,则默认优先级基于将它们添加到模型的顺序。因此,按照逻辑顺序的要求验证并最终改变优先级非常重要。此设置可以在块属性中更改,如下所示。模型更新(Ctrl+D)后,优先级设置显示为每个块右上角的数字。 状态机测试应用程序 测试应用程序旨在测试状态机的所有功能,针对 S32K144EVB。为了指示活动状态,RGB LED 二极管与闪烁频率结合使用。板载按钮 SW2 和 SW3 用于控制应用程序。该应用程序在 10 毫秒中断例程中运行(由采样时间给出)。有一个独立的 LPIT 中断控制 LED 闪烁。 上电复位后,设备被配置并进入复位状态,在此执行额外的硬件和应用程序设置。然后,应用程序进入 INIT 状态,模拟延迟约 2 秒,由蓝色 LED 二极管快速闪烁表示。延迟后,自动进入READY状态。 两个按钮均由另一个状态机处理,该状态机可检测短按和长按按钮。虽然短按没有直接指示,但长按由打开的红色 LED 二极管指示。 短按SW2,应用程序启动,首先进入CALIB状态,然后进入ALIGN状态,最后进入RUN状态。CALIB 和 ALIGN 状态由蓝色 LED 的较高频率闪烁指示,而 RUN 状态由绿色 LED 亮起指示。 该应用程序引入了速度命令的模拟,可以通过长按 SW2(向上)或 SW3(向下)在 0 到 10,000 的范围内进行更改。此外,为了模拟故障情况,一旦速度命令达到 5,000 的值,就会抛出 e_fault 事件。进入故障状态,红色 LED 闪烁表示进入故障状态。要清除故障,应同时按下 SW2 和 SW3。进入 INIT 状态,蓝色 LED 二极管快速闪烁表示进入 INIT 状态。 下表显示了功能和 LED 指示。 按钮 Press lenght 功能 SW2 短按 启动应用程序 SW2 long press 增加速度命令(红色LED二极管亮起指示) SW3 短按 停止应用程序 SW3 long press 降低速度命令(红色LED二极管亮起指示) SW2 + SW3 短按 清除故障 状态 LED 闪烁 重置 - Init 蓝色 第 50 期 一切就绪 蓝色 第 500 期 CALIB 蓝色 第250期 Align 蓝色 周期 100 运行 绿色 始终开启 故障 红 周期 100 any 红 当检测到长按 SW2 或 SW3 时始终亮起 运行示例 该示例可以与 S32K14x、v3.0.0 的基于模型的设计工具箱一起构建和运行。此版本是使用 MATLAB R2017a 创建的。在运行此示例之前,请遵循 NXP 社区页面上的说明和课程。建议使用未连接扩展板的 S32K144EVB,但此示例不使用任何硬件接口,但以下情况除外(请参阅 S32K144EVB 文档): S32K144引脚 S32K144EVB连接器 用法 PTD15 J2.2 GPIO 输出/强度:高/红色 LED PTD0 J2.6 GPIO 输出/强度:高/蓝色 LED PTD16 J2.4 GPIO 输出/强度:高/绿色 LED PTC12 J2.10 GPIO 输入/按钮 SW2 PTC13 J2.12 GPIO 输入/按钮 SW3 PTC6 J4.4 UART1/RxD/FreeMASTER PTC7 J4.2 UART1/TxD/FreeMASTER 该应用程序还可与 FreeMASTER 应用程序配合使用。用户可以连接到目标并观看或控制应用程序。FreeMASTER 项目也已附加,但是,在构建和运行应用程序后,需要在 FreeMASTER 项目设置中更新 ELF 文件位置。 示例模型
查看全文
构建 SDK 1.3.2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我最近下载了 SDK 1.3.2从飞思卡尔的 SDK下载站点下载并有机会尝试将其安装在我身边的 P3041DS 系统上。ISO 中有很多信息,但我想我会逐步完成初始构建以记录流程。 首先要注意的是,有多个 ISO 映像可用。 我已经有一台 Ubuntu lucid 机器,我用它作为构建机器。所以我不需要虚拟图像。我需要源文件 - 所以我下载了 QorIQ_SDK_V1-3-2_SOURCE_ISO,并且我将在 P3041 上尝试这个,所以我下载了 e500mc 二进制文件。二进制文件不是必需的,但它可以显著加快构建速度。 下载完成后,首先要安装源 ISO 源 ISO 中有一个安装脚本。我运行它并让它做它的事情。值得注意的是,文档目录中包含文档。如果您访问documents/START_HERE.html,您将获得有关 SDK 的基于 html 的文档。而且,如果您继续深入研究并转到documents/sdk_documentation/pdf,您会发现一些有关各种功能的 pdf 文档。文档 QorIQ_SDK_Infocenter.pdf 是从Freescale 信息中心网站获取的 SDK 文档的完整集合。 一旦安装了源,我就对二进制文件执行相同的操作。 确保在源的顶部安装二进制文件(即在同一目录中)。 然后我们调用 FSL poky 脚本 - 来设置构建。 在这个命令中,-m 告诉它你要构建到哪台机器。-j 表示 make 要生成的作业数,-t 表示要并行运行的 bitbake 任务数。 此时我已准备好开始构建。对于想要构建的图像,我有一些选择 - 我将使用核心图像,其中包含一些更常见的包。因此,此时我需要确保我位于 build_p3041ds_release 目录中,并发出命令 bitbake fsl-image-core 这将启动构建过程。 当一切都完成后,我可以在build_p3041ds_release/tmp/demply/images目录中找到我的图像。 就我而言,我有相当多的图像,因为我实际上已经构建了核心和完整的图像。接下来,我必须抓取这些图像并将它们部署到我的目标。 QorIQ P1设备 QorIQ P2设备 QorIQ P3 设备 QorIQ P4设备 QorIQ P5设备
查看全文
MPC5777C针对S32DS双核执行的优化 Hello, 现在我的 MPC5777CEVB 已经有了一个稳定的双核执行环境(顺便说一句,感谢您在之前帖子中的回答!),我正在尝试了解更精细的细节,以便获得该 MCU 的最佳性能和可预测性。在我的实验过程中,我思考了许多问题: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? -最后,在S32DS环境中是否有SDA使用的示例或文档? 谢谢! Ricardo 回复:MPC5777C针对S32DS中的双核执行进行优化 也许您需要按如下方式启用它: https://www.nxp.com.cn/docs/en/release-note/S32SDK_Power_Architecture-RN.pdf 关于中断: 两个核心的中断请求在同一周期内触发。然而,ISR 处理是特定于应用程序的。 回复:MPC5777C针对S32DS中的双核执行进行优化 Hi David, 感谢大家的回答!我将重点讨论那些我可能不理解的内容: - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 确实,我正在向两个核心发送中断。查看 S32DS 知识库中提供的示例时,只有一个核心服务于中断,并且必须设置 PIT_TFLG0[TIF](显然,要重置中断,直到 PIT0 再次设置它)。我想知道中断是否在同一个时钟周期内发送到两个内核,这样如果其中一个内核在 ISR 功能启动时立即设置 PIT_TFLG0[TIF],则不会存在另一个内核“看不到”中断的风险,因为其中一个内核已清除该中断。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思? 我的错!我指的是小数据区。虽然我可以让它们在 GHS 环境中工作,但我不明白 gcc 如何处理它们......它正在创建 .sdata和 .sbss部分并默认在那里分配东西,但它看起来并不像在执行由 r13 索引的访问。 回复:MPC5777C针对S32DS中的双核执行进行优化 嵌入的答案: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? 有两个专用闪存端口,它们不根据地址分割,因此不需要创建多个 TLB 条目。 - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 SRAM 根据地址线 18 分为两半(见表 9-2)。XBAR 从属端口分配)。如果一个核心访问从属端口 2,而第二个核心访问从属端口 4(或其他),则可能会很有益,因为两个访问是并行进行的。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? 300MHz 为最大未调制频率,306MHz 为包含频率调制。 - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? EBI 最大频率保持不变,这实际上意味着 300MHz 版本必须使用比 264MHz 版本更低的 EBI 频率,因为 CLKOUT 分频器没有提供更多选项。 - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? 您可能还要注意停车管制。理想情况下,我已经回答过,每个核心访问不同的 SRAM 一半,每个核心访问不同的闪存地址(有内部预取缓冲区,但访问同一地址不会同时运行,可能会导致等待状态)。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思?
查看全文
加速度计:FXLN83XX 分线板 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FXLN83XX 是一款 3 轴、低功耗、低重力加速度计,配有 CMOS 信号调节和控制 ASIC,采用小型 3 x 3 x 1 毫米 QFN 封装。X、Y 和 Z 轴的模拟输出在内部补偿零重力偏移和灵敏度,然后缓冲到输出垫。无论 VDD 电源电压如何,输出均具有固定的 0 g 偏移 0.75 V。可以使用外部电容器独立设置每个轴的输出信号的带宽。主机可以将 FXLN83XXQ 置于低电流关断模式以节省电量。 以下是从 OSH park 下载的 FXLN83XX 分线板的渲染图: 该板的布局设计: 在附件部分,您可以找到原理图源文件 (SCH)、原理图 PDF 文件、布局源文件 (BRD)、Gerber 文件 (GTL、GBL、GTS、GBS、GTO、GBO、GKO、XLN) 和 BOM 文件。    如果您对其他传感器的更多类似分线板的设计感兴趣,请前往Freescale 传感器分线板设计 - 主页Freescale 传感器分线板设计 - 主页 加速度传感器
查看全文
NXP Connects - 中国 - 2018年9月5-6日 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 汽车电子 汽车雷达信号处理加速 AD/ADAS Overview  使用时间敏感网络 (TSN) 和以太网构建您的汽车网络 未来汽车网络中的 CAN——了解不同的趋势和解决方案 电气化——高压电动汽车功率逆变器系统及GD3100评测 电气化——用于高压电池管理系统的 MC3377x 电池控制器 探索汽车通用 MCU 产品组合 GPIS触摸传感解决方案 MCU:MagniV ®集成解决方案深入探究 下一代功能安全架构 NXP 的 xEV 能源管理解决方案 NXP 汽车门禁——迈向智能门禁的路线图(NFC、BLE、UWB、SE) OTA 更新——完整系统解决方案的要求 汽车电源管理解决方案_Connects China S32通用底盘概述 S32雷达处理器,产品革命 汽车网关的兴起与发展 xEV HV牵引电机功率逆变器平台 人工智能、使能技术、安全与解决方案 低成本边缘计算节点中的机器学习 (ML) 和人工智能 (AI) 愿景  边缘计算——何时、为何以及如何_Connects China 一秒内即可启动?了解详情_Connects China EdgeScale:云端安全边缘设备和应用管理解决方案_Connects China 学习如何使用 MCUXpresso 软件和工具快速启动并运行 i.MX/MCU 安全功能概述 使用 OpenWRT、Yocto、Ubuntu 还是您自己的定制 Linux ®发行版?了解恩智浦如何轻松利用多发行版方法进行软件开发_Connects China 智能机械和工业自动化 恩智浦完整的电机控制解决方案 开放工业Linux ® (OpenIL)——安全、稳健、实时的工业和自动化应用_Connects China 时间敏感网络 (TSN) 和精确时间协议 (PTP):挑战、机遇和解决方案 多媒体体验 NXP MCU 和 MPU 语音和音频解决方案,面向 AI-IoT 市场 智能网络与计算 用于移动宽带的DAS和小型基站 采用 GaN 技术,适用于 1GHz 以上蜂窝频段的高功率射频应用 采用 LDMOS 技术的蜂窝频段高功率射频应用 SD-CPE——与虚拟机(Docker 等)一起部署并由 Orchestrator 管理的 CPE SD-WAN——按需灵活网络带宽管理的概念与应用 智能世界解决方案和多模连接 快速充电器/适配器 (TEA1936+ TEA199x+ TEA1903x/05x);LLC 谐振交流/直流电源 (TEA19161+ TEA19162+ TEA1995) i.MX RT 支持和参考解决方案 i.MX RT 概述及内存扩展设计安全性 NXP无线充电解决方案及设计简介 低成本、经过生产验证的智能电子锁解决方案 MiGLO ® _连接中国 NTAG ®智能传感器_中国互联 恩智浦智能家居、楼宇和照明连接解决方案以及面向消费、医疗、工业物联网和汽车市场的 BLE 低功耗解决方案 电源调节/市场趋势以及恩智浦AC/DC电源解决方案概述 快速物联网原型开发套件_Connects China 智能放大器软件_连接中国 Type-C端到端解决方案_Connect China 低功耗物联网应用传感器的使用技巧和窍门_Connects China 新兴趋势与创新 恩智浦基于 Arm ® Cortex ® -M 内核的 MCU 产品组合概述 安全防篡改认证_Connects China
查看全文
LPCXpresso54608: 箱から出して & はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> まず、LPCXpresso54608ボード のユーザーマニュアルをダウンロードします。ドキュメントをスキャンしたら、始めましょう! LPCXpresso54608を接続します(以下に示すように)。プリロードされたOut of Boxデモが表示されます。このデモには、 Draupner TouchGFXが使用されています。スクリーンショットを以下に示します。 プリロードされたデモを探索したら、さらに詳しく知りたいと思うでしょう。 このためには、LPCXpresso54608開発ボード用のMCUXpressoソフトウェア開発キット(SDK)を構成してビルドする必要があります。 登録するか、ログイン資格情報を使用してサインインし、NXPからソフトウェアをダウンロードします。 LPCXpresso54608 の設定は、「LPCXpresso54608」と入力するか、boards>LPC>LPCXpresso54608 を選択するという 2 つの方法のいずれかで作成できます。 ボードを選択すると、「Select Configuration」または「Specify Additional Configuration Settings」の2つのオプションが表示されます。 (設定を指定する名前を付けると、複数の設定が識別しやすくなるため、設定を指定することをお勧めします)。   手記: デフォルトでは、SDK BuilderはWindowsのデフォルトのツールチェーンとしてIARを選択します。 このチュートリアルでは、開発ホストOSとしてWindowsを使用します。 これが目的のツールチェーンまたはOSでない場合は、「追加の構成設定を指定する」を選択してください 次のウィンドウが表示され、IAR、Keil、またはBothのSDKをダウンロードできます(「All toolchains」を選択)。 この段階では、ダウンロードに必要なミドルウェアを指定することもできます。 これらは「Select Optional Middleware」で選択または選択解除できます 選択したら、[SDK ビルダーに移動] を選択します。 ノート:パッケージのダウンロードが許可される前に、情報の更新を求められる場合があります。これが発生した場合は、上部の赤いリンクを選択して問題を解決します。情報が更新されたら、上部の「概要」をクリックし、「SDK Builder」を再度選択すると、元の画面に戻ることができます。 今すぐダウンロードを押す前に、最後にもう一度ファイルの名前を変更する機会があります。「今すぐダウンロード」を選択すると、ライセンス契約が表示され、同意するとダウンロードが開始されます。 パッケージ化された.zipをダウンロードしたらお気に入りのユーティリティを使用して、既知の場所に抽出します --> IARがデフォルトのツールチェーンとして選択されている場合は、ここから続行してください。 --> KEIL がデフォルトのツールチェーンとして選択されている場合は、ここで続行します。 --> MCUXpressoがデフォルトのツールチェーンとして選択されている場合は、ここから続行してください(2017年3月発売予定) LPCマーケティング LPC546xx 日時:LPCXpresso54608:箱から出して&はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> すぐに使えるデモ(Draupner)のソース/バイナリをどこでダウンロードできるか知っている人はいますか?私は最近、この特定のデモがプリロードされたこの正確な開発キット(OM13092 - LPCXpresso54608)を購入しました。これは、公式のスタートガイドとビデオのショーケースでもあります。ただし、このデモのソース/バイナリを見つけることができません。 このボードには、Sprinklerと呼ばれる別の新しいデモがあるようで、バイナリとソースは https://touchgfx.com/nxp-semiconductors/lpc5460x/ で利用できます。このデモのコンパイルに問題があり、"TouchGFX NXP LPC54608 Board Support Package - Installation V1.5" pdfの指示に従った後、次のエラー・メッセージが表示されます。 make: *** ターゲットを 'C:/nxp/TouchGFX_NPX_LPC54608_BSP/touchgfx/os/FreeRTOS8.2.0/OSWrappers.cpp' にするルールはありません。「TouchGFXPort/OS/OSWrappers.o」が必要です。止める。 リンクからダウンロードしたBSP https://touchgfx.com/nxp-semiconductors/lpc5460x/ 単にOSWrappers.cppファイルが含まれていません。インストールドキュメントまたはBSPが更新されていないかどうかわかりません。SDKビルダーサイトから生成してダウンロードしたSDKのバージョンは2.3.1です。スプリンクラー BSP が最新の SDK バージョンでサポートされなくなったか、最新の SDK がデモ ソースを壊した可能性があります。LPCExpresso54608の古いバージョンのSDKをどこで取得/生成するのかわかりません。NXPプラットフォームを使用するのはこれが初めてです。 日時:LPCXpresso54608:箱から出して&はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 上記のMCUExpressページはどこにありますか?"--> MCUXpressoがデフォルトのツールチェーンとして選択されている場合は、ここに進んでください(2017年3月発売予定)" 日時:LPCXpresso54608:箱から出して&はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 裏面JP1を確認してください、開いているはずです 日時:LPCXpresso54608:箱から出して&はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは 今月初め、私はOM13092を体験 する機会を得ました 。 今日、私はこの素晴らしい開発ボードを受け取りました。 しかし同時に、 システムが機能しないという白い画面の現象も見つけました 。 残念ながら、この問題の原因 を分析する時間が ありませんでした。 この問題 の手順は次のとおりです:リセットボタンを3秒ほど長押ししてから、数回すばやく短く押しますで囲まれています。 日時:LPCXpresso54608:箱から出して&はじめに <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MCUXpressoを待っています
查看全文
imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2020年3月13日:imx_builder_03122020.tgz--- 更改 i.MX8MN 配置。 2019年12月11日:imx_builder_12112019.tgz --- 添加支持 L4.19.35_1.1.0 2019年8月28日:imx_builder_08282019.tgz --- 添加 i.MX8MM 2019年7月3日:imx_builder_07032019.tgz --- 添加 i.MX8QM: build_i.MX8 2020 年 2 月 26 日:imx_builder_02262020 --- 添加 i.MX8MN,为 build_i.MX8、build_i.MX8X 添加 spl m4,带有 L4.14.98_2.0.0_ga、L4.14.98_2.2.0、L4.19.35_1.1.0 imx_builder_02262020: imx_builder |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.19.35_1.1.0 |-- 构建 -> build_i.MX8X/L4.19.35_1.1.0 |-- 构建_i.MX6 | |-- L3.0.x | |-- L3.1x.xx | |-- L4.14.xx | |-- L4.19.xx |`-- L4.1.xx |-- 构建_i.MX8 | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- 构建_i.MX8M | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MM | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MN |`-- L4.19.35 |-- 构建_i.MX8X | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- dts -> linux/arch/arm/boot/dts |-- dts64 -> linux/arch/arm64/boot/dts/freescale |-- dts_uboot -> u-boot/arch/arm/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx | -- m4_img | |-- m4_1_image.bin->rpmsg_lite_str_echo_rtos_imxcm4.bin | |-- m4_image.bin -> 电源模式开关.bin |`--readme.txt |-- Makefile -> 构建/Makefile |-- 其他 | |-- clk_模块 ||-- cryptodev-linux-1.8 | |-- helloworld_模块 | |-- key_blob_模块 |`-- spi |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 工具链 |`-- scfw |-- u-boot -> bsp/uboot-imx `--版本.MK imx_builder是一组用于构建u-boot、Linux kernel、atf、scfw、imx-mkimage的Makefile。您可以称之为独立构建。 以下是尝试的步骤。 您可以使用 -n 来获取详细的构建步骤。 例如:make atf -n 制作 linux.Image -n 以 L4.14.78_ga 为例: 1. Untar  imx_builder_02282019.tgz 2.阅读里面的Standalone_Build_Preparation.pdf,准备bsp。 3.准备工具链(从 yocto 获取 populate_sdk、从 linaro 获取、从 buildroot 获取等) 4. 按照 SCFW 移植套件准备 scfw 工具链。 5. 按照Standalone_Build_Preparation.pdf 检查构建结构是否正确。 构建结构 以 L4.14.78_1.0.0_ga 为例。 在 REL 中准备 rel_imx_4.14.78_1.0.0_ga 创建指向 REL/rel_imx_4.14.78_1.0.0_ga 的符号链接 创建指向 build_i.MX8X 的符号链接   imx_builder/ |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.14.78_1.0.0_ga |-- 构建 -> build_i.MX8X |-- 构建_i.MX6 |-- 构建_i.MX8M |-- 构建_i.MX8X |   |-- Makefile -> Makefile.4.14.78_ga |   |-- Makefile.4.14.78_ga | |-- 自述文件 | |-- 设置_4.14.78_1.0.0_ga.MK | |-- 设置.MK -> 设置_4.14.78_1.0.0_ga.MK | `--版本.MK |-- dts -> linux/arch/arm/boot/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx |-- Makefile -> 构建/Makefile |-- 其他 |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 | ` --rel_imx_4.14.78_1.0.0_ga |       |-- firmware-imx-8.0.bin |       |-- imx-atf |       |-- imx-mkimage | |-- imx-sc-firmware-1.1.bin(可选) | |-- imx-scfw-移植套件-1.1.tar.gz |       |-- linux-imx |       `-- uboot-imx |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 独立构建准备.pdf |-- 工具链 |   `-- scfw |` --gcc-arm-none-eabi-6-2017-q2-更新 |-- u-boot -> bsp/uboot-imx `--VERSION.MK -> 构建/VERSION.MK 概述 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常感谢您的脚本。 我有一个类似的,它删除了 linunx-imx、uboot-imx 中的 .git,以使 bsp 变小。 我认为到目前为止它还不是 imx_builder 的一部分。 我最初的想法是让客户了解独立构建。并且很容易看到单个步骤,这在 Yocto 中有点难以阅读。 imx_builder 适合像您这样的专业用户。您可以添加任何新功能,例如准备 bsp。 非常感谢您对我的 imx_builder 感兴趣。 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, BiyongSUN ,谢谢你的更新。 这是用于填充 bsp 目录的脚本(getSw.sh)。使用版本rel_imx_5.4.24_2.1.0,对于固件 imx,i.MX_Linux_Release_Notes.pdf 具有此版本的版本 (8.8)。要使用其他 Linux 版本,请更新所需版本的 TAG 和 FWR 变量。 #!/bin/bash TAG="rel_imx_5.4.24_2.1.0" FWR="8.8" CAF="https://source.codeaurora.org/external/imx" MAD="wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO" wget ${MAD}/firmware-imx-${FWR}.bin for repo in linux-imx uboot-imx imx-atf imx-mkimage; do     git clone ${CAF}/${repo} -b ${TAG}; done ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在imx_builder的初始版本中,我只是添加了一个非常小的 rootfs 用于测试目的。 并且我决定不再支持rootfs。但我没有删除规则。 实际上,我通过 buildroot 制作了小型测试 rootfs。 根文件系统:rootfs.tar #$(RM)$(ROOTFS_DIR)/dev/null$(OUT_ROOTFS) # fakeroot -- sh -c 'mknod -ma=rw $$0/dev/null c 1 3 && cd $$0 && tar jfvc $$1 *' ${ROOTFS_DIR} ${OUT_ROOTFS} #$(RM)$(OUT_ROOTFS_TAR)$(OUT_ROOTFS_UBI) # 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} # 假根 -- ${FS_UBI_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_UBIFS} ${OUT_ROOTFS_UBI} ${FS_UBI_DIR} 根文件系统.tar: $(RM) $(OUT_ROOTFS_TAR) 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} rootfs.cpio: $(RM) $(OUT_ROOTFS_CPIO) 假根 -- ${FS_CPIO_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_CPIO} 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> imx_builder_03122020.tgz,并构建 i.MX 8MM,Makefile 已为 rootfs.tar 定义目标,但是在 SETTINGS.MK 中缺少定义的${FS_TAR_SCRIPT} : FS_DIR=${PWD}/fs FS_TAR_DIR=${FS_DIR}/tar FS_TAR_SCRIPT=${FS_TAR_DIR}/rootfs.tar.gz.sh imx_builder 中可以提供所有子目录的完整 FS_DIR 和脚本吗? 丢失的: fs/tar fs/ubi fs/cpio 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 是否需要进行任何修改才能启用 imx8qxp 的安全启动?
查看全文