Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
用于服装认证的 NFC 我们有兴趣使用 NFC 技术为未来的服装打上标签,让消费者能够辨别真伪。 我知道我们可以将每个 NFC 标签发送到指定的 URL,但我们希望防止造假者对芯片进行编程以指向相同的身份验证 URL。 经过一番研究,使用像 NTAG424 DNA 这样具有篡改功能的专用芯片以及与我们的服务器相关的公钥/私钥似乎是解决之道。 我认为您无法使用 NFC Tools 对具有此功能的芯片进行正确编程。 对于 NTAG213 等经典芯片,您可以在 URL 中发送芯片 UID,以便在服务器端进行检查,但问题是有人能找到正确的地址。 我的问题是 -- 你们是否有筹码和工具来帮助完成我们想做的事情? 如果是这样,我们需要哪些硬件、芯片、读卡器等来启动? Re: NFC for authenticating apparel @KaiLi我在网站上找到了 NDA 并提交了。希望完成这项工作后,有人能向我们展示实现目标所需的所有设备和软件。 Re: NFC for authenticating apparel @KaiLi还有,是否有任何资源可以解释如何将所有信息绑定到一个网站上,从而为每个芯片显示不同的信息? Re: NFC for authenticating apparel 谢谢@KaiLi 因此,我需要订购这本读物: https://www.nxp.com/part/MFEV730 什么是保密协议?不知道是什么意思。 是否有任何资源可以全面解释我们如何设置这一切,从哪里获取芯片,将每个芯片分配到一个特定的 URL,并确保只有该芯片可以到达那里? Re: NFC for authenticating apparel 你好@305 MFEV730 向您推荐,您可以从 PEGODA 免接触式智能读卡器 | 恩智浦半导体 订购,其中包括读卡器和 NTAG424DNA 样品 此外,您还需要申请 sw186658(RFID Discover v5.8),但这是在保密协议下提供的。 因此,如果您安装了 RFID Discover v5.8,并订购了 MFEV730,就可以开始使用了。
記事全体を表示
屏幕分辨率的高度能不能设置100以下的? 我的屏幕是256x64,然后64就没办法设置,要设置成100,还有其他的小屏幕就不好用这个软件开发 Re: 屏幕分辨率的高度能不能设置100以下的? 使用esp32,屏幕是led点阵屏,hub75接口的。为什么要限制分辨率呢,现在因为分辨率问题没把法使用改软件 Re: 屏幕分辨率的高度能不能设置100以下的? 我也有同样问题,用76*284的屏幕,软件只能100~2500的分辨率 Re: 屏幕分辨率的高度能不能设置100以下的? Hi @zhujianfeng  您可以详细描述一下您的问题么?你用什么芯片,用什么屏幕? BR Harry Re: 屏幕分辨率的高度能不能设置100以下的? 然后64就没办法设置 回复: 屏幕分辨率的高度能不能设置100以下的? 可以在xxx.guiguider文件中修改后再用guider打开
記事全体を表示
恩智浦汽车以太网:MACSec基础知识 第一部分 - 简介(日语博客) 介绍 近年来,随着车载通信速度的不断提高,车载以太网的引入取得了进展,但与此同时,安全性的重要性也日益凸显。 MACSec 为车载以太网提供安全功能。 推动车载以太网的引入 随着汽车技术的日益复杂,对车载高速通信的需求也随之增加,其背后有几个原因,其中包括: 更高分辨率的传感器、安全措施(冗余、CRC校验等) 从分布式处理向集中式处理过渡 从静态配置到动态配置(发货后添加和修改功能,资源共享) 减少网络类型 目前主流的CAN通信速度不足。 对能够将信息传递给特定接收者的系统的需求日益增长 CAN入侵者的威胁 CAN 是目前主流的车载通信技术,但 CAN 入侵者正构成日益严重的威胁,因为他们可以从外部(例如保险杠)非法连接到车载 CAN 网络,并控制车辆。 据说CAN入侵者很难对付,但以下是它们如何控制汽车的方法: 1. 将一个小设备连接到 CAN 总线上,并向 CAN 总线发送信号。 2. 禁用连接到 CAN 网络的防盗设备 3. 车辆被欺骗,误以为有智能钥匙存在,从而可以解锁并启动发动机。 随着车载以太网在未来不断普及,车载以太网网络也面临着类似的恶意攻击风险: 窃听通信 在传播中注入虚假信息 车辆盗窃 因此,NXP 提出了一种使用 MACsec(媒体访问控制安全)来加密数据链路层(第 2 层)通信的安全网络环境。 什么是MACsec? 现在,让我来解释一下 MACSec 规范。 媒体访问控制安全:用于保护以太网通信的安全技术 基于 IEEE 802.1AE-2018 标准 特征 解释 数据链路层加密 与 IPsec (第 3 层)和TLS (第 4 层)不同,MACsec直接在第 2层保护通信。 低通信开销的优势 低延迟和高吞吐量 加密过程在硬件层面进行了优化,从而在保持高吞吐量的同时,最大限度地减少了延迟。 提高网络安全性 确保节点间通信安全,提高内部网络安全。 应对以太网上的内部威胁和物理网络攻击(窃听、数据篡改) 内部威胁示例:网络中存在恶意节点 物理网络攻击示例:将攻击设备连接到以太网线路。 MACsec 通信帧结构 参数 正式名称 解释 MACsec 以太网类型   设置MACsec的以太网类型。设置值为“ 0x88E5”,表示下一帧是MACsec 帧。 特克斯和凯科斯群岛/安纳群岛 标签控制信息 关联号码 用于控制 MACsec 处理的信息 用于密钥管理和续订的标识符 SL 短款 表示加密数据的长度 PN 数据包编号 用于防止重放攻击的唯一编号 SCI 安全通道标识符 源节点标识符 颅内静脉 完整性检查值 数据篡改检测:能够检测传输过程中帧是否被更改。 身份验证:确保数据来自合法发送方 与普通通信帧相比,MACSec 通信帧插入了橙色高亮显示的部分(安全标签和 ICV)。 MACSec 通信帧主要有两种选择,可根据应用场景选择使用。 选项一:诚信 ICV 能够检测和验证数据是否被篡改,并丢弃无效数据。 方案二:诚信+保密 除了上述措施外,通信内容还会进行加密以确保保密性(请注意,加密和解密工作会产生延迟并需要额外的资源)。 加密算法和密钥管理 使用 MACSec,当需要对通信内容保密时,不仅可以使通信帧与 MACSec 兼容,还可以对通信内容进行加密。 MACsec 使用基于 AES(高级加密标准)的加密来确保数据机密性。 算法 解释 AES-GCM-128 使用 128 位密钥提供快速认证加密 AES-GCM-256 使用 256 位密钥以实现更强的加密   AES是一种常用的密钥加密方法 加密/解密使用同一个密钥。 它不是公钥密码系统 AES-GCM(伽罗瓦/计数器模式) 认证加密 数据加密和认证/篡改检查(ICV 计算)同时执行(→通常是分开执行)。 在 GCM 模式下输入明文时,输出密文和认证标签(ICV)。 MACsec加密通信的基本流程     [加密过程] 1. 根据 MKA(MACsec 密钥协商协议)交换用于加密和完整性检查的密钥 2. 使用密钥 发件人 对有效载荷进行加密 添加 ICV 字段 接收方 解密有效载荷 计算 ICV 并将计算出的 ICV 值与接收到的 ICV 字段值进行比较 → 检查 ICV 是否被篡改以及通信伙伴是否正确 3. MACsec 密钥会定期更新以增强安全性。 即使攻击者能够获取并解密密钥,等到他们能够使用时,新密钥也已经安装完毕,旧密钥已经失效。 使用 MKA 自动密钥交换 MACsec密钥管理( MKA ) 为了确保安全,MACsec 使用名为“MKA(MACsec 密钥协商)”的协议来交换和管理密钥。 MKA的主要角色 密钥交换和更新:通过 MACsec 通信的设备之间安全地交换加密密钥。 节点认证:确保只有授权节点才能参与 MACsec 通信。 应用安全策略:统一发送和接收策略 MKA 是 IEEE 802.1X 可扩展层认证 (EAPoL) 的一种实现。采用局域网认证协议(AAC)。 自动化密钥管理 以上我们简要介绍了 MACSec 实现的背景和规范。 下次,我们将讲解如何将其安装成实际设备。 参考信息 恩智浦汽车以太网网页 TJA1104,支持 MACsec 的 ASIL B 级汽车以太网 100BASE-T1 PHY 收发器网页 TJA1121,支持 MACsec 的 ASIL B 级汽车以太网 1000BASE-T1 PHY 收发器网页 =========================== 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 近年来,随着车载通信速度的不断提高,车载以太网的引入取得了进展,但与此同时,安全性的重要性也日益凸显。 MACSec 为车载以太网提供安全功能。 本文介绍了用于汽车以太网的MACSec 技术。 (阅读时间:10分钟) 汽车以太网 界面 安全 日本博客
記事全体を表示
S32K312 FlexCan的问题 亲爱的NXP社区工作人员你好,目前我想将S32K312的Flex CAN0配置为enhanced Rx FIFO和DMA接收CAN2.0和CANFD报文,我参考了社区中的所有示例,现在仍然存在发送正常,但是无法接收到消息的问题。能否麻烦您帮我查看一下我的初始化过程是否存在问题,以及中断回调函数是否正确配置呢? Re: S32K312 FlexCan的问题 这些都是一致的,我试一下把源工程的其余模块一个个移植去正常运行的测试工程能不能找到问题。 Re: S32K312 FlexCan的问题 Hi@Django_007 排查下工程的一些选项,例如工程的编译优先级是不是一样的 Re: S32K312 FlexCan的问题 enhanced_test是我新建的测试工程。 Re: S32K312 FlexCan的问题 我将flexcan相关的代码和.mex的配置移植到一个新的工程之后却能正常运行,但是我检查了很多次这两个项目并没有什么不同,您有什么思路吗? Re: S32K312 FlexCan的问题 好的我再创建一个工程尝试一下 Re: S32K312 FlexCan的问题 Hi@Django_007 好吧,我今天来不及帮你处理了,明天我再帮你看下。 或者我建议你创建一个新的工程,对照链接中的demo重新做个测试demo,看看是不是有什么地方自己的工程中疏漏了,如果还没有成功,你再把你创建的这个新的demo发给我,我帮你看下。 Re: S32K312 FlexCan的问题 还是没有解决,刚刚我测试时没注意发送的是MB配置接受的ID,enhanced RxFIFO配置接受的ID的CAN报文还是无法接收。 Re: S32K312 FlexCan的问题 Hi@Django_007 解决了?什么问题? Re: S32K312 FlexCan的问题 Hi@Django_007 我测试了你的代码,总体是没有任何问题的。你的代码里面mask是使用“Individual Mask Type.” 我简单的帮你改了下方便你测试。 1.0xface,拓展帧 2.0x01,标准帧,这里我将mask设置为全1, 3.新增0x12,标准帧 中断里面你需要为每个MB重新调用FlexCAN_Ip_Receive,否则你无法启动下一次接收的 附件是我测试的截图,关于mask的设置原理参考下面我之前写的文档,自己去深入的研究下 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K1xx-FlexCAN-Mask-Setting-Demo/ta-p/1519753 Re: S32K312 FlexCan的问题 抱歉,上传工程花费了一些时间,非常感谢您能抽空解决我的问题。 Re: S32K312 FlexCan的问题 Hi@Django_007 完整的测试工程贴上来,你提供的这两个文档我也没看到你使能中断之类的 Re: S32K312 FlexCan的问题 对不起,我已经被这个问题困扰一周了,这些示例我都有参考,并且在debug配置过程中返回的结果都是正常的,但是我发送can报文给MCU却无法接收到消息。 Re: S32K312 FlexCan的问题 Hi@Django_007 在这个S32K论坛里面,类似的问题至少有几十个,你自己下次多尝试搜索一下。 这里我给出我们knowledge base上的demo,你可以去参考(其实还可以搜到很多类似的) https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-FlexCAN-Ip-TX-RX-EnhanceRXFIFO-DMA-test-S32DS3-5/ta-p/2015832
記事全体を表示
PCA9633TK,芯片输出逻辑被颠倒的问题 PCA9633TK,我们为该芯片使用带有 5V 电源的 8 引脚代码包。我们使用两个输出,即 LED0 和 LED1,而 LED2 和 LED3 则处于悬浮状态,未被使用。 目前正在直接测试 PCA9633TK 的输入和输出,没有连接 LED。IIC 配置的 PWM0 值为 240,但是 LED0 输出的波形占空比非常低。IIC 配置的 PWM0 值为 15,但是 LED0 输出的波形占空比非常高。PCA9633 的输入和输出逻辑是相反的。寄存器配置如下: Address 0x00: Data 0x 01; Address 0x01: Data 0x 07; //INVRT=0 Address 0x02: Data 0x 28; Address 0x03: Data 0x 46; Address 0x08: Data 0x 0A; //LEDOUT=10 其他寄存器未配置。 造成这种现象的可能原因是什么? Re: PCA9633TK, The problem of chip output logic being reversed 亲爱的 Tanpo1989、 PCA9633 数据表中没有使用 "低边 LED 驱动器 "这一短语,但它清楚地描述了默认极性和行为: LED 输出为电流灌 LED 输出驱动器可配置为开漏(仅灌)或图腾极(灌和有限源)。在这两种情况下,LED 都打算从 VDD 连接到 LEDx 引脚,因此当输出处于低电平时,设备会反向电流。其表述如下 "LED 输出驱动器可编程为 5 V 下具有 25 mA 灌电流能力的开漏或 5 V 下具有 25 mA 灌电流、10 mA 源电流能力的图腾柱"。 默认开机状态 = 高电平(LED 关闭) RESET 后,输出为高电平,这意味着 LED 处于关闭状态。这意味着 LOW = LED 亮起。 致以最崇高的敬意 约瑟夫 Re: PCA9633TK, The problem of chip output logic being reversed 感谢您的回复。 PCA9633 手册在什么地方说明它是低边沿 LED 驱动器?表现为高 PWM 值 → 更长的低电平时间 → 在示波器上显示为低电平占空比。 Re: PCA9633TK, The problem of chip output logic being reversed 亲爱的 Tanpo1989、 当 PCA9633 用作低压侧 LED 驱动器时,在没有 LED/负载的情况下探测引脚电压,您看到的正是 PCA9633 的设计功能。 发生了什么?PCA9633 是一款低压侧 LED 驱动器。通过 INVRT=0 ,LED 引脚在 LED 本应亮起时变为低电平。因此,如果测量引脚电压,占空比看起来是反相的: PWM 值高 → 低电平时间长 → 高电平占空比小。 低 PWM 值 → 低电平时间短 → 高电平占空比大。 原因:您测量的是电压,而不是 LED 亮度。芯片按设计运行。 您的配置:将 LED 从 VDD 灌入 LEDn 正确。 LEDOUT=10 表示 PWM 控制, INVRT=0 表示正常。 选项: 真正的 LED:保持原样。 用于无 LED 的台架测试: 反转示波器通道或测量低占空比,或 暂时设置 INVRT=1 (但随后亮度与 PWM 会翻转)。 在 VDD 上添加一个电阻,以模拟负载。 底线:“反向” 效果仅仅是因为输出反向电流,因此 LOW = ON。 致以最崇高的敬意 约瑟夫
記事全体を表示
使用外部工具链 linux 内核版本在 ARM 上构建 Root 我正在尝试使用外部(官方 Arm 工具链)为 iMX6 板构建 Linux 版本,但我遇到了使用 sshd 的问题。 经过一番调查,官方的ARM工具链似乎带有Linux内核头文件 4.20 ,而我的实际内核是6.12。因此,sshd无法工作,因为某些缺失的系统调用会被 seccomp 阻止(例如 __NR_clock_gettime64 导致 SIGSYS) 问题是,是否有可能结合外部工具链使用实际的内核头文件? 以下是我目前掌握的情况 BR2_arm=y BR2_cortex_a9=y BR2_TOOLCHAIN_EXTERNAL=y BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.47" 我尝试添加 br2_package_host_linux_headers_custom_6_12 = 但它被忽略了。 Re: Buildroot on ARM with external toolchain linux kernel version 你好@rustyx 希望你一切都好。 不幸的是,恩智浦不支持 Buildroot,因此我无法为您的环境提供很多有用的信息。 您可以尝试在 yocto 环境中自行生成工具链。 请参见第 4.5.12 章如何在 i.MX Linux 用户指南的独立组网 (SA) 环境中版本 U-启动 和内核。 顺祝商祺! 萨拉斯
記事全体を表示
S32K344T172 时钟在示例 MBDT 项目中不工作 在学习使用带有 Simulink MBDT 的 S32K344 评估板时,我偶然发现了有关带有时钟输出的项目的问题(“s32k344_clockout_s32ct”,“s32k3xx_i2c_async_23st”,“s32k344_spi_async_interr_master_ebt”等......)。主要问题是任何引脚上都没有时钟输出,并且由于缺少时钟输出,SPI 的 MOSI 和 CP 引脚以及 I2C 的 SDA 上也没有数据信号。从硬件角度来看,评估板运行良好,因为当 SPI、I2C 和 NXP_S32 SDK 的时钟输出的示例代码上传到电路板时,时钟似乎可以工作。 为了使 MBDT 的示例项目能够在 S32K344EVB-T172 上运行,是否可能遗漏了任何其他设置和配置? 回复:S32K344T172 时钟在示例 MBDT 项目中不工作 你好@dragostoma , 谢谢您的帮助和澄清。我已将您的第一个回复标记为该问题的解决方案。我仍然对 Pin MSCR 值有疑问,因为我无法根据 S32K344 引脚排列电子表格设置适当的值,但我会将这个问题留给另一篇文章。 干杯!
記事全体を表示
S32K312 の SPI および SD カードの読み取りと書き込み用のドライバーはありますか? S32K312mcuを使ってSPI経由でSDカードの読み書きを行うプロジェクトに取り組んでいますが、いつも困惑しています。STM32のcubemxではSPIを設定すると自動的にSPIピンの初期化と有効化が行われるのに対し、S32DSでは再度設定が必要なのです。STM32のドライバコードを使って移植しようとしたのですが、いつも失敗してしまいます。そこで、S32K312またはS32K3シリーズ用のSPIおよびSDカードドライバをお持ちの方がいらっしゃいましたら、ぜひ教えてください。
記事全体を表示
闪光测试 您好,NXP团队, 我正在尝试使用你的功能检查我的闪存区域: FS_CM33_FLASH_HW16 (); 不幸的是它不起作用,返回值是常量 null。 我的 µC 设备是 LPC5536。有没有示例可以测试我的 lpc5536? 回复:闪光测试 你好,Hang, 谢谢您的支持!! 回复:闪光测试 嗨,Hang, 我已经向您发送了我的项目的链接。此外,还可以通过“MCUexpressoIDE”设置此示例。 我的项目配置:SDK向导->LPCxpresso55s36评估板(sdk_2.xlpc55s36)->组件(其他 -> 安全)NXP-Safety-IEC60730 ->高级项目设置(默认)。就这些。之后,您可以运行该项目,并且应该会出现 flash-error 错误 BR 托马斯 回复:闪光测试 你好,Hang, 目前我使用 LPC55S3x-EVK 板测试“lpcxpresso55s36_safety_iec60730b_Flash_Test”项目。如果我运行该项目,我会得到相同的错误代码“2”-> Flash-Test 错误。 您还可以在 LPC55s3x 套件上评估该项目吗? 回复:闪光测试 你好,Hang, 感谢您的快速回复。我已经测试了flashiap-example,它可以正常工作。当我添加 IEC60730b 库并测试FS_CM33_FLASH_HW16 () 函数,它返回 NULL。(CRC 故障)。我使用 LPC5536 µController……我需要为 HW-CRC 单元激活任何功能吗?
記事全体を表示
EB Tresos 激活失败 您好,我尝试使用 EB Client License Administrator V1.5.1 激活 EB Tresos,激活码为: 20EA-CB05-14E2-FC19(有效期至 2024 年 6 月 30 日) ,但失败了,以下是激活日志: 信息:可信存储初始化完成。 激活 NodeLocked 许可证 20EA-CB05-14E2-FC19,许可证数量:1 状态:4,正在创建请求 状态:5,请求已创建 状态:6,上下文已创建 状态:7,已连接到远程服务器 状态:8,请求已发送 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:10,等待响应 状态:9,轮询响应 状态:11,完成 错误:flxActAppActivationSend (50040,41147,10249) 无法获取锁:ELKB,CertificateQuantity,178844298 与 FlexNet Operations Server 的连接失败。 我该如何解决呢,谢谢! 回复:EB Tresos 激活失败 您好,什么时候可以拿到新的激活码? 回复:EB Tresos 激活失败 非常感谢
記事全体を表示
ImxRT 1176 LPSPI blocking function issue Hello, I’m working with LPSPI and using LPSPI_MasterTransferBlocking. Since this is a blocking function, I expect the LPSPI peripheral to be free once the transfer is complete. However, I observed something different. After the blocking transfer, I read the SR (Status Register) using LPSPI_GetStatusFlags, and the returned value was 0x1001101. Do you have any suggestions? Ideally, after the blocking transfer, the LPSPI should be idle. I’m sharing a code snapshot below for reference.  if((staus_flag & kLPSPI_ModuleBusyFlag) == kLPSPI_ModuleBusyFlag) { ret = STATUS_BUSY; PRINTF("SPI Busy, %x, %d\r\n", staus_flag, count); } else { masterXfer.txData = SpiTxData; masterXfer.rxData = SpiRxData; masterXfer.dataSize = spiTransferSize; masterXfer.configFlags = kLPSPI_MasterPcs0 | kLPSPI_MasterPcsContinuous; status = LPSPI_MasterTransferBlocking(LPSPI1, &masterXfer); ret = STATUS_SUCCESS; staus_flag = LPSPI_GetStatusFlags(IMU_SPI_IF); PRINTF("staus_flag: %x\r\n", staus_flag); count++; //sw_asm_delay_us(2U); } Re: ImxRT 1176 LPSPI blocking function issue Hi @chandan_uv , Thank you so much for your interest in our products and for using our community. Question:  After the blocking transfer, I read the SR (Status Register) using LPSPI_GetStatusFlags, and the returned value was 0x1001101. Answer: I check your LPSPI SR register value is 0x1001101, that is 0b0001 0000 0000 0001 0001 0000 0001, the TCF (Transfer Complete Flag) is 0,which means Transfer  Not complete. From IMXRT1170RM,  we can see the detail SR status TCF  description. In Master mode, indicates that all transfers have completed and that LPSPI has returned to Idle state and the transmit FIFO is empty. Question: Do you have any suggestions? Ideally, after the blocking transfer, the LPSPI should be idle. I’m sharing a code snapshot below for reference.  Answer: I suggest you can develop your project based on SDK demo. Please Verify the frame format configuration:  Make sure that the LPSPI settings (For example: Data Length, CPOL, CPHA) of the master device are exactly same to the slave device. Wish it helps you. If you still have question about it, please kindly let me know. Wish you a nice day! Best Regards MayLiu Re: ImxRT 1176 LPSPI blocking function issue BTW LPSPI1 and IMU_SPI_IF is same.
記事全体を表示
MKL03 从 VLSS3 唤醒后崩溃。 您好,NXP 支持人员。   我正在调试为 MKL03Z32VFK4R 制作的应用程序。 该系统由 3 伏电池供电,大部分时间保持 VLSS3 低功耗模式。 LLWU_P4 引脚(在该 MCU(微控制器)中为 PTB0)配置为在上升沿唤醒。 有一个开关连接到 PTB0,按下时会产生上升沿,从而唤醒 MCU。 唤醒后,执行一些任务,最后返回VLLS3模式。   应用程序运行正常,但有时会间歇性崩溃。 我使用 Nordic Semiconductors 的 PPK2(Power Profiler Kit 2)进行了一些捕获。   我连接了配置为 3 伏电源的 PPK2 来代替电池。 这样我就排除了电池电量低的可能性。 我还连接了 PPK2 的第二个 USB,以保证高达 1000 mA 的供电能力。 我还将 MCU 的 I/O 引脚连接到 PPK2 上的数字输入 D0。 我对 I/O 引脚进行了编程,以切换每行执行的代码,最初的目的是找出它卡在了哪里。   下面我给出一组数字:   图 1:显示连续成功的 PTB0 开关按压循环;   图 2:详细显示了有效的循环。   图03:显示停止的循环,观察时间线,在这种情况下,停止需要5分28秒多一点的时间;   图04:显示崩溃循环,但MCU已恢复;   图 5:放大显示几乎停止的循环的最后部分。注意,D0 开始显示出 toogle 动态,显然与图 04 类似。   我做了几次测试,发现该问题是间歇性的。 有时崩溃会在最初几个周期内发生,有时会持续很长时间,就像本例一样,崩溃发生在 5 分钟以上之后。 我想到了几个假设: 1 - 我认为可能是 VLLS3 唤醒后 ACKISO 标志未被“清除”。 但 MCU 继续崩溃,甚至无条件“清除” ACKISO 标志。 我注释掉了清除 ACKISO 的行,只是为了看看是否会导致 MCU 崩溃。 令人惊讶的是,MCU 并没有崩溃,并且像没有造成任何影响一样正常工作。   2 - 最初,程序调用函数“InitLLWU”,该函数配置LLWU以检测引脚LLWU_P4(PTB0)上的正边沿并启用LLWU中断。 然后调用函数“enter_vlls(3)”进入VLSS3模式。 我尝试将“InitLLWU”函数放在“enter_vlls(3)”函数中,在这种情况下,我在调用__WFI之前放置了“InitLLWU”一行。 我认为崩溃的原因是在 MCU 进入 VLSS3 模式之前发生的 LLWU 中断,但即使在这一改变之后,崩溃仍然发生。   3-一开始我以为图03所示的崩溃表示MCU被唤醒,重启损坏并导致MCU崩溃。 还有一些情况,例如图 04 和 05 中所示的情况,看起来像是崩溃的情况,但 MCU 设法恢复了。 尽管图 04 的初始部分没有出现切换,但在图 05 所示的最终部分中,切换动态与图 02 所示的非常相似。 起初我以为问题可能是由于进入 VLLS3 之前的设置不当造成的。 尽管循环无效,但 MCU 设法恢复,所以我认为问题发生在唤醒之后,可能是部分重置不成功,或者某些初始化失败。   这些是我迄今为止进行的测试和得出的结论。 如果有人有过类似的经历并能给我任何建议,我将不胜感激。   此致。 回复:从 VLSS3 唤醒后 MKL03 崩溃。 你好 Celeste_Liu,抱歉这么晚才回复。 我设法发现了这个问题。 问题与低功耗模式无关,而是与 MKL03Z32VFK4R 的第 19 个引脚有关。 我发现,在唤醒后发生部分复位后,引脚 19 恢复为默认配置,即 NMI(不可屏蔽中断)功能。 我使用引脚 19 作为 GPIO 输入,即作为 PTB5 来读取开关的状态。 我相信重置后,在将引脚配置为 PTB5 之前,一些噪音会激活 NMI 处理程序。 由于我不使用 NMI 函数,我看到默认的 NMI 处理程序是一个锁定处理器的 while(1){} 循环。 根据我在帖子中找到的指导,我通过禁用 NMI 选项解决了该问题: https://community.nxp.com/t5/MCUXpresso-General/debug-problem-on-KL03Z8/mp/949741 我将Flash_Config word4改为0xFFFF3BFE,并做了多次测试,确认问题已经解决。 我感谢你们的支持。 回复:从 VLSS3 唤醒后 MKL03 崩溃。 你好 Celeste_Liu,非常感谢你的反馈。 我在我的项目中没有使用 CMP 比较器模块。 您是否认为即使如此,ERR008010 勘误表仍然有意义? 无论如何,您能向我展示解决方法所建议的代码是什么样的吗? 此致。
記事全体を表示
S32K310 CAN MessageBuffer and HwObjectCount 我在使用EB配置S32K310的MCAL的CAN模块时产生一些疑问: 1.我在手册中看到S32K310的MessageBuffer大小是64,那么HwObjectCount的最大配置数是否与MessageBuffer相关,如果不相关的话,我想知道HwObjectCount的最大配置数收什么因素的限制?MessageBuffer的最大个数64又会影响什么配置?(在我个人的理解中,FIFO的大小应该是由HwObjectCount决定的,且HwObjectCount不应该超过MessageBuffer的大小) 2.CAN模块是否一定要搭配CANIF组件使用,MailBox是在使用CANIF时才会用到的概念吗?MailBox的大小与什么有关? 感谢帮助!
記事全体を表示
S32K344:IO 引脚的 VOH 和 VOL 最小值和最大值 大家好, 我们正在使用S32K344 MCU。数据表中没有 IO 引脚的 VOH、VOL 最小值和最大值。 请提供相同的信息。 仅存在 VIH 和 VIL 最小最大细节。 回复:S32K344:IO引脚的VOH和VOL最小值和最大值 好的,谢谢! 回复:S32K344:IO引脚的VOH和VOL最小值和最大值 显然你可以这样使用它。 回复:S32K344:IO引脚的VOH和VOL最小值和最大值 著名的! 我可以考虑这个典型的 VOH/VOL 来进行分析,而不是考虑 VOH/VOL 的最小值/最大值, VOH >= VDD_HV_A/B - 0.7V 音量 <= 0.7V 我是对的嗎?请确认 回复:S32K344:IO引脚的VOH和VOL最小值和最大值 VOH/VOL 在 IOH 和 IOL 规范中间接声明为该电流测量的条件。 例如,对于 IOH_33 条件是 VOH >= VDD_HV_A/B - 0.7V 输出焊盘的 VI 特性可以通过点和 和 <0mA; VDD_HV_A/B> 之间的线性近似来估算。 同样,IOL_33 条件是 VOL <= 0.7V。 这意味着 VI 特性为 < IOL_33 ; 0.7V > 和 < 0mA ; 0V > 您可以按照我上面描述的方式估计 VI 特性,也可以使用 IBIS 仿真模型。
記事全体を表示
RT1170 VDD_USB_1P8用電源 私のアプリケーションでは、R1170 の USB 機能は使用しないSO、VDD_USB_3P3 を電源に直接接続する予定です。 VDD_USB_3P3 を DCDC_ANA に接続しても問題ありませんか?それとも、代わりに外部の 1.8V 電源に接続する必要がありますか? Re: RT1170 Power supply for VDD_USB_1P8 こんにちは@Omar_Anguiano よろしくお願いします。 DCDC_ANA 出力電力が 150mA 未満の場合、 DCDC_ANA を使用しても問題ないことがわかりました。 Re: RT1170 Power supply for VDD_USB_1P8 DCDC_ANA の出力電力が 150mA であることを考慮することが重要です。この接続によって DCDC_ANA がこれを超えて駆動する場合は、受け入れられません。 よろしくお願いします、 オマール
記事全体を表示
LS1028ARDB I2C eeprom:如何加载 RCW 和引导加载程序 你好,我想知道如何在 I2C eeprom 中加载 RCW 和 BL,以便从这个源头启动主板。 我找到了这个主题:https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/m-p/1455702、但我也被卡住了。 我想知道需要加载哪个版本的 BL2,bl2_emmc、bl2_sd......但在我的 Yocto 编译中,并没有出现 bl2_i2c。 我需要修改什么才能生成这个吗?还是没有必要? 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 我知道这是个老话题,但我遇到的问题与这张票类似。 我按照步骤使用可启动的 SD 卡中的 u-boot 将 rcw 和 bl2 垃圾箱编程到 eeprom 中,并验证了数据存在于 EEPROM 中。当我将交换机重新配置为从 EEPROM 启动并捕获 j26 上的 i2c 流量时,我看到了: 看来 EEPROM 没有响应。 您能帮我弄明白如何让它像宣称的那样工作吗? Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 又见面了 我已经很久没有试过这个了,但它不起作用。 我一直在检查连接器 J26 上的 I2C 信号。当我启动板时,我只看到一个 I2C 命令。该命令是对 0x50 地址的写入请求。它没有来自 EEPROM 的 ACK: 这意味着 I2C 多路复用器的配置不正确,它没有连接到连接 EEPROM 的总线 0... 我相信 CPLD 应该配置这个设备以启用从 LS 到 EEPROM 的路径。 有什么变通办法可以让它正常工作吗?这是一个已知的问题吗? 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 请检查能否将 RCW 映像写入 i2c eeprom。 => tftp 0xa0000000 nxa22585/ls1028ardb/rcw_1500_gpu600.bin => i2c 写 0xa0000000 0x50 0.2 0x10c = > 重置 => i2c read 0x50 0.2 0x10c 0xc0000000 => md 0xc0000000 c0000000: aa55aa55 80100000 3c004010 00000030 U.U......@.<0... c0000010:00000000 00000000 00000000 018f0000 ................ c0000020: 0030c000 00000000 020031a0 00002580 ...0......1...%... c0000030: 00000000 00003296 00000000 00000010 .....2.......... c0000040: 00000000 00000000 00000000 ................ c0000050: 00000000 00000000 00000000 ................ c0000060: 00000000 00000000 00000000 ................ c0000070: 200e705a 00000000 bb580000 00000000 Zp.......X..... c0000080: 00000000 00000000 458ca4b5 334008bc ...........E..@3 c0000090: 00000001 33400154 47474747 33400158 ....T.@3GGGGX.@3 c00000a0: 47474747 334008bc 00000000 335008bc [email protected] c00000b0: 00000001 33500154 47474747 335008bc ....T.P3GGGG..P3 c00000c0: 00000000 33400890 00800401 33500890 [email protected] c00000d0: 00800401 33400098 00000000 33500098 [email protected] c00000e0: 00000000 31e00900 00000004 31e00400 .......1.......1 c00000f0: 1800d000 8000000a 00000400 1800d000 ................ => Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders ping@yipingwang Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 你好@yipingwang 在编写 bl2.bin 的过程中,板被冻结了,我相信加载不正确... 以下是捕获: 查看 LS1028ARDB 原理图,我认为 sw_cfg_wp 引脚应为 "0",以允许写入 eeprom: 我也设置了,但是写入过程冻结了,之后,一旦我切换到eeprom的启动选项,我就看不到任何打印的字符。 知道可能出了什么问题吗? 此致, 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 请尝试 https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/m-p/1455702中所附 i2c_ls1028a.zip 中的图像。 => tftp 0xa0000000 rcw_1500_gpu600.bin => i2c 写 0xa0000000 0x50 0.2 10c => tftp 0xa0000000 bl2.bin => i2c 写 0xa0000000 0x50 0x400.29431 请在与非闪存器上以 0x100000 的速度闪烁 fip 图像。 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 平@yipingwang,知道发生了什么吗? 此致, 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 您好, 感谢你的支持 看起来就像我执行时的样子: => i2c 写 0xa0000000 0x50 0x400.20x13431 处理器挂机了,所以我不确定 eeprom 中是否正确刷新了 bl2 二进制文件... 我已经在i2c写入命令中以十六进制格式写了大小。看起来已经完成了,我已经更换了启动开关,但在串行会话中什么也没打印... 我还有一个问题,是否需要重新刷新 fip?就我而言,我想用与非作为存储 uboot/kernel/rtfs 的地方。 谢谢! 伊穆古鲁扎 Re: LS1028ARDB I2C eeprom: how to load the RCW and the bootloaders 以下是更新后的步骤: $ bitbake rcw -c cleansstate $ bitbake rcw -c patch 进入 RCW 源代码文件夹 build_ls1028ardb/tmp/work/ls1028ardb-fsl-linux/rcw/git-r0/git/ls1028ardb/R_SQPP_0x85bb/,在 rcw_1500_gpu600.rcw 文件 .pbi的末尾添加以下命令 写 0x01e00400,0x1800d000 blockcopy 0xa,0x400,0x1800d000,0x9435 .结束 CCSR 写入命令: 在 DCFG 中存在的 启动位置指针低阶地址 (BOOTLOCPTRL) 寄存器中将启动位置指针 设置为 0x1800d000 。 区块复制命令: blockcopy 0x0a,0x400,0x00100000,0x9400 来源: I2C EEPROM = 0xa 源地址:0x400 目标地址:OCRAM (0x100000) 区块大小:B L2 二进制文件的大小(以字节为单位) $ bitbak rcw $ bitbake atf -c cleansstate $ bitbake atf 获取 build_ls1028ardb/tmp/deploy/images/ls1028ardb/atf/ 中的 atf 映像 bl2_flexspi_nor.pbl 和 fip_uboot.bin。 在 LS1028ARDB 的 U-Boot 启动上使用 I2C 编程 EEPROM = > i2c 探测器 有效芯片地址:00 50 52 53 57 66 67 77 7C = > i2c 写入 0xa0000000 0x50 0.2 0x11c = > i2c 读取 0x50 0.2 0x114 0x114 0x0000000 = > i2 c 写入 0xa0000000 0x50 0x400.2
記事全体を表示
IMX93QSB 的 Flexspi_nor_polling_transfer SDK 示例中的供应商 ID 问题 大家好 我使用适用于 VSCode 的 MCUXpresso 来测试类似 imx93-qsb 的定制板的外围设备。从 SDK 项目 " flexspi_nor_polling_transfer " 开始,我想测试或非闪存 MT25QU01GBBB8E12 的功能,它与示例中使用的芯片非常相似:MT25QU512ABB。 当谈到函数 flexspi_nor_get_vendor_id 时,它给出 0xFF 而不是 0x20,然后它会成功完成最后一次操作。         我使用的是与示例相同的 SPI 外设(SD3 焊盘上的 flexSPI1),我不明白为什么我没有正确读取 ID 供应商。谁能帮帮我? Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 值得一提的是,在扩展 SPI 模式下使用 IS25WX256 时,读 ID 命令 0x9E 也有问题。命令格式为 "FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x9e, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 4),"。每次使用时,我都会读到 `0x888cadce`。 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 你好@AldoG、 我试着在 flexspi_nor_get_vendor_id 功能中加入一些 PRINTF 命令,以了解 vendorID 值是怎么回事。 输出结果是这样的 我还尝试将 flashXfer.seqIndex 改为 4 *NOR_CMD_LUT_SEQ_IDX_READID,结果输出发生了变化: 我不知道在功能内部反复推敲是否会有帮助。也许问题出在 seqIndex 值本身。请告诉我您的想法。 此致, 鲍勃 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 您好, ,我发现您使用的正是原样,而不是我建议添加的内容。 我不认为是内存工作不正常,而是获取 ID 的 LUT 命令工作不正常,所以我才提到是否有可能检查发送是否正确。 致以最崇高的敬意/问候, Aldo。 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 你好 我很确定闪存运行良好,因为我已经能够使用这个 UUU 命令放置针对 或非-flash 的引导加载程序: uuu.exe-b qspi imx-启动-imx93-11x11-lpddr4x-evk-sd.bin-flash_singleboot 在 FlexSPI Serial NOR 中设置启动配置,我可以看到引导加载程序运行正常。但我还是不明白,为什么在 MCUXpresso 的 VScode 中使用该项目会出现问题。 如果您能帮助我,请告诉我,我也需要使用 iMX93 的 M33 内核。 谢谢! 鲍勃 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 您好, 感谢您的分享,我会仔细检查的。 同时,您有办法检查硬件上的信号吗? 致以最崇高的敬意/问候, Aldo。 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 你好,阿尔多、 谢谢你帮我。遗憾的是,对 LUT 的更改并不能解决问题,我仍然在 Vendor ID 上读取到 0xff 的值。我与大家分享整个 C 代码: /* * 版权所有 (c) 2016,飞思卡尔半导体有限公司 * 2016-2018 恩智浦版权所有 * 保留所有权利。 * * * SPDX 许可证标识符:BSD-3 条款 */ #include "pin_mux.h" #include "clock_config.h" #include " board.h " #include "fsl_debug_console.h" #include "fsl_rgpio.h" #include "fsl_lpi2c.h" #include "fsl_iomuxc.h" #include "fsl_lpi2c.c" #include "fsl_flexspi.h" #include "app.h" #include "fsl_debug_console.h" #include "fsl_cache.h" #include "pin_mux.h" #include "clock_config.h" #include " board.h " #include "fsl_common.h" /******************************************************************************* * 定义 ******************************************************************************/ /******************************************************************************* * 原型 ******************************************************************************/ /******************************************************************************* * 变量 ******************************************************************************/ /* 程序数据缓冲区应以 4 字节对齐,这样可以避免总线故障,因为此内存区域配置为 MPU 的设备内存。*/ SDK_ALIGN(静态 uint8_t s_nor_program_buffer[256], 4); 静态 uint8_t s_nor_read_buffer[256]; 外部 status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *基, uint32_t 地址); 外部 status_t flexspi_nor_flash_page_program(FLEXSPI_Type *基, uint32_t dstAddr, 常数 uint32_t *src); 外部 status_t flexspi_nor_get_vendor_id(FLEXSPI_Type *基础, uint8_t *vendorId); 外部 status_t flexspi_nor_enable_quad_mode(FLEXSPI_Type *基); 外部 status_t flexspi_nor_erase_chip(FLEXSPI_Type *基); 外部 void flexspi_nor_flash_init(FLEXSPI_Type *基); /******************************************************************************* * 代码 ******************************************************************************/ flexspi_device_config_t deviceconfig ={ .flexspiRootClk = 12000000, //12 MHz, ok per noi .闪存大小 = 闪存大小, .CSIntervalUnit = kFLEXSPI_CsIntervalUnit1SckCycle, .CSInterval = 2, .CSHoldTime = 3, .CSSetupTime = 3, .数据验证时间 = 0, .列空间 = 0, .启用 WordAddress = 0, .AWRSeqIndex = 0, .AWRSeqNumber = 0, .ARDSeqIndex = nor_cmd_lut_seq_idx_read, .ARDSeqNumber = 1, .AHBWriteWaitUnit = kFLEXSPI_AhbWriteWaitUnit2AhbCycle, .AHBWriteWaitInterval = 0, }; const uint32_t customLUT[自定义长度] ={ /* 快速读取四通道模式 -SDR */ [4 * nor_cmd_lut_seq_idx_read + 0] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0xEB, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_4PAD, 0x18), [4 * nor_cmd_lut_seq_idx_read + 1] = flexspi_lut_seq( kFLEXSPI_Command_DUMMY_SDR, kFLEXSPI_4PAD, 0x0A, kFLEXSPI_Command_READ_SDR, kFLEXSPI_4PAD, 0x04), /* 读取状态寄存器 */ [4 * nor_cmd_lut_seq_idx_readstatusreg] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0xB5, kFLEXSPI_Command_DUMMY_SDR, kFLEXSPI_4PAD, 0x0), [4 * nor_cmd_lut_seq_idx_readstatusreg + 1] = flexspi_lut_seq(kFLEXSPI_Command_READ_SDR, kFLEXSPI_4PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x0), /* 读取 ID */ [4 * nor_cmd_lut_seq_idx_readid] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x9E, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04),// modifica mia da 0x9F A 0X9E /* 写入启用 4 焊盘 */ [4 * nor_cmd_lut_seq_idx_writeenable_opi] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* 启用写入功能 */ [4 * nor_cmd_lut_seq_idx_writeenable] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0), /* 擦除扇区 */ [4 * nor_cmd_lut_seq_idx_erasesector] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0x20, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_4PAD, 0x18), /* 程序 */ [4 * nor_cmd_lut_seq_idx_pageprogram_quad] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0x32, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_4PAD, 0x18), [4 * nor_cmd_lut_seq_idx_pageprogram_quad + 1] = flexspi_lut_seq(kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_4PAD, 0x01, kFLEXSPI_Command_STOP, kFLEXSPI_4PAD, 0), /* 进入四重模式 */ [4 * nor_cmd_lut_seq_idx_enablequad] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x35, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x00), /* 虚拟写入,当 AHB 写入命令触发时,不执行任何操作。*/ [4 * nor_cmd_lut_seq_idx_write] = flexspi_lut_seq(kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x0, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0x0), /* 使用 Qual SDR 读取功能读取状态寄存器 */ [4 * nor_cmd_lut_seq_idx_readstatus_opi] = flexspi_lut_seq(kFLEXSPI_Command_SDR, kFLEXSPI_4PAD, 0x05, kFLEXSPI_Command_READ_SDR, kFLEXSPI_4PAD, 0x02), }; int main(void) { uint32_t i = 0; status_t 状态; uint8_t 供应商 ID = 0; pcal6524_handle_t 句柄; /* 关闭 clang-format */ const clock_root_config_t lpi2cClkCfg ={ .时钟关闭 = false, .mux = 0,// 24MHz 振荡源 .分隔 = 1 }; /* clang-format on */ BOARD_ConfigMPU(); BOARD_InitBootPins(); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); CLOCK_SetRootClock(BOARD_PCAL6524_I2C_CLOCK_ROOT, &lpi2cClkCfg); CLOCK_EnableClock(BOARD_PCAL6524_I2C_CLOCK_GATE); /* 为 M.2 或非闪存卡设置 3.3V */ BOARD_InitPCAL6524(&句柄); PCAL6524_SetDirection(&处理, (1 << BOARD_PCAL6524_EXT1_PWREN), kPCAL6524_Output); PCAL6524_SetPins(&处理, (1 << BOARD_PCAL6524_EXT1_PWREN)); flexspi_nor_flash_init(example_flexspi); PRINTF("\r\nFLEXSPI 示例启动!\r\n"); /* 获取供应商 ID。*/ 状态 = flexspi_nor_get_vendor_id(示例, &vendorID); 如果(status != kStatus_Success)     { 返回 状态;    } PRINTF("供应商 ID: 0x%x\("......")", vendorID); #if !(定义(xip_external_flash)) /* 擦除整个芯片 .*/ PRINTF("通过 FlexSPI 擦除整个芯片...\r\n"); 状态 = flexspi_nor_erase_chip(example_flexspi); 如果状态 !=kStatus_Success)     { 返回状态    } PRINTF("擦除完毕\r\n"); #endif /* 进入四重模式。*/ 状态 = flexspi_nor_enable_quad_mode(example_flexspi); 如果(status != kStatus_Success)     { 返回 状态;    } /* 擦除扇区。*/ PRINTF (" 通过 FlexSpi 擦除序列号 或非...\ r\n "); 状态 = flexspi_nor_flash_erase_sector(示例, 示例 * SECTOR_SIZE); 如果(status != kStatus_Success)     { PRINTF("擦除扇区失败 !\)"); 返回 -1;    } memset(s_nor_program_buffer, 0xFFU, ((s_nor_program_buffer)); DCACHE_InvalidateByRange(example_flexspi_amba_base + 示例 * ()()()()()(, flash_page_size); memcpy(s_nor_read_buffer, (void *)(example_flexspi_amba_base + 示例 * SECTOR_SIZE), ((s_nor_read_buffer)); 如果(memcmp(s_nor_program_buffer, s_nor_read_buffer, ((s_nor_program_buffer)))     { PRINTF("Erase data - read out data value incorrect !\r\n "); 返回 -1;    } 不然     { PRINTF("Erase data - successfully. \r\n");    } 为(i = 0; i < 0xFFU; i++)     { s_nor_program_buffer[i] = i;    } 状态 = flexspi_nor_flash_page_program(示例, 示例 * SECTOR_SIZE, (空格 *)s_nor_program_buffer); 如果(status != kStatus_Success)     { PRINTF("页面程序失败 !\r\n"); 返回 -1;    } DCACHE_InvalidateByRange(example_flexspi_amba_base + 示例 * ()()()()()(, flash_page_size); memcpy(s_nor_read_buffer, (void *)(example_flexspi_amba_base + 示例 * SECTOR_SIZE), ((s_nor_read_buffer)); 如果(memcmp(s_nor_read_buffer, s_nor_program_buffer, ((s_nor_program_buffer)) != 0)     { PRINTF("程序数据 - 读出数据值不正确 !\r\n "); 返回 -1;    } 不然     { PRINTF("程序数据 - 成功。 \r\n");    } 状态 = flexspi_nor_get_vendor_id(示例, &vendorID); 如果(status != kStatus_Success)     { 返回 状态;    } PRINTF("供应商 ID: 0x%x\("......")", vendorID); PRINTF("状态: %d\,......。", status); 虽然(1)     {    } } Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 您好, 感谢您的测试,那么很可能是在执行 READ ID 时 LUT 序列不正确,请尝试对 LUT 进行以下更改: /* 读 ID */ [4 * NOR_CMD_LUT_SEQ_IDX_READID] = FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD,0x9E, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04), 请尝试并告知我结果。 致以最崇高的敬意/问候, Aldo。 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 是的,我按照您的建议添加了这段代码: 遗憾的是,正如你所看到的,一切都没有改变: @AldoG你有其他想法吗? 谢谢! 鲍勃 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 您好, hw 上的一切看起来都很好,您能否尝试在数据编程后添加读取供应商 ID 的功能? 致以最崇高的敬意/问候, Aldo。 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 你好,阿尔多、 感谢您的回复。这些是连接 Re: Vendor ID issue in Flexspi_nor_polling_transfer SDK example for IMX93QSB 你好, 这可能是由于没有正确处理SPI内存上的RESET信号造成的,你能分享一下你是如何连接内存的吗? 如果您能提供一个小的原理图,那将会非常有帮助。 致以最崇高的敬意/问候, Aldo。
記事全体を表示
S32k312 的 PLL 计算 大家好 我在设计中使用的是 S32K312 微芯片。请帮我计算 PLL 的输出频率。我们使用的是 40 MHz 的外部晶振。你能提供一个计算示例吗?如果我们使用 40 MHz 晶振可以吗? 请提供 S32K312 的时钟计算器。 Re: PLL calculation for S32k312 你好@mogilipuri_harish,你能解决这个问题吗?我也遇到了同样的问题。我的配置完全相同,使用的是 MCAL 6.0.0 版 S32K312。 面对"PLL ODIV2 = 2" 超出范围的误差 Re: PLL calculation for S32k312 Hi@mogilipuri_hari sh 除数据表外,没有更多关于时钟配置的指导文件 如图所示,RTD 2.0.1 及以上版本有用于 S32K312 的例程。 Re: PLL calculation for S32k312 嗨 我正在尝试进行 PLL 时钟计算。您能提供一些如何进行计算的说明吗?比如参考文档。我没有在工具中找到 S32k312 示例,能否请您分享一下,这将对我有所帮助。 Re: PLL calculation for S32k312 您好, 供你参考,例如: PLL 输出频率范围必须在 640MHz~1,28GHz 之间。 Re: PLL calculation for S32k312 您好, 没有完全理解你的问题,你的意思是哪些分频器值可以改变? 图中的这些参数可以更改,您可以在 S32 DS 中查看这些时钟树配置。 Re: PLL calculation for S32k312 在这里,我们可以更改哪些变量值? Re: PLL calculation for S32k312 谢谢提醒 在 S32K312 中,CORE_CLK=160Mhz 仍可运行,但不建议客户使用这种方式,会有未知风险 Re: PLL calculation for S32k312 你好,森伦特、 实际上,S32k312 的核心时钟频率为 120Mhz。 Re: PLL calculation for S32k312 Hi@mogilipuri_harish FXOSC 的频率可以从 8MHz 到 40MHz,所以 40MHz 的晶振应该没问题。 您可以使用"S32 Design Studio for S32 Platform" 设置时钟树。 例如: PS: 我们提供的 S32K312EVB 使用 16MHz 外部晶振
記事全体を表示
ウォッチドッグタイマーMIMXRT1042XJM5Bのピン構成 親愛なるチームの皆様、 今後のプロジェクトでMIMXRT1042XJM5Bを使用する予定です。ウォッチドッグタイマーのピン配置を探しています。設定できる場所を教えてください。 ご連絡をお待ちしております。 よろしくお願いいたします。 バヴェシュ Re: Pin configuration for Watch Dog timer MIMXRT1042XJM5B こんにちは@bhaveshtirex 、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 「今後のプロジェクトで MIMXRT1042XJM5B を使用する予定で、ウォッチ ドッグ タイマーを設定 CAN ピン配置を探しています」に関して、IMXRT1040RM には WDOG 外部信号に関する説明がいくつかあります。 ピンの設定方法については、MCUXPresso IDEsのピンツールを使用することができます。 お役に立てれば幸いです。 まだ質問がある場合は、お気軽にご連絡ください。 素敵な一日をお過ごしください! よろしくお願いします メイリュー
記事全体を表示
i.MX 8X 安全启动-两方而不是一方的密钥-Yocto Linux 通常如何处理以下安全启动/信任链场景?有什么先例? 在大多数文档/示例中,场景很简单:同一家公司创建设备和应用程序软件,出售带有应用程序软件的设备,只需要存放密钥。 但是,就我们而言:我们生产基于i.MX 8X的设备。我们的客户为设备开发软件应用程序,然后将带有软件的设备出售给客户。 我们的钥匙在 AHAB SRK。但是,我们还需要在某个地方为客户提供密钥,以便他们可以签署软件更新... 我们为客户提供 Yocto 开发的 SDK 和 Linux rootfs。我们的客户不会自己执行 Yocto 版本。他们使用 SDK 版本应用程序软件。 就安全启动以及谁的密钥存储在哪里而言,通常如何处理这种情况有哪些先例?各方的术语是什么? 谢谢 Peter 安全 Re: i.MX 8X secure boot - keys for two parties rather than one - Yocto Linux 如果您还没有收到,请通知我。 此致 哈维 Re: i.MX 8X secure boot - keys for two parties rather than one - Yocto Linux 嗨,@Harvey021。谢谢。请问在哪里可以找到内部系统邮件?我查看了 "私人信息"/"收件箱",但里面是空的? Re: i.MX 8X secure boot - keys for two parties rather than one - Yocto Linux 你好@petero5 我已向您发送了内部系统邮件。 此致 哈维 Re: i.MX 8X secure boot - keys for two parties rather than one - Yocto Linux 你好@Harvey021谢谢,是的,我们使用的是带有 HSM 的 CST。 但我们仍在寻找最佳实践,即涉及两家公司而不是一家公司的信任链: A 公司制造该设备,构建 Yocto SDK 和 FIT 映像、U-启动、Linux 内核和 rootfs。 B 公司收到上述内容并开发应用程序(并创建应用程序分区)。 如果 A 写入 SRK 并关闭设备,则 B 可以相信设备和图像在发往它们的途中没有被篡改。 但是否需要一种方法来为应用分区注册 B 的公钥,或者将其纳入信任链? 谢谢 Peter Re: i.MX 8X secure boot - keys for two parties rather than one - Yocto Linux <7.3将 CST 与 CST 用户指南的硬件网络安全模块 > 一起使用可以作为参考。 您可以从IMX_CST_TOOL下载指南。 此致 哈维
記事全体を表示