Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
KW45 blhost を使用してキーを書き込むことができません 写真に示すように、ヒューズ 0x20 はまだ焼き付けられていないため、blhost を使用してキーを書き込むことはできません。これはなぜでしょうか? Re: KW45 Cannot write key using blhost こんにちは カスタム ボードを使用していますが、このボードにはまだキーが書き込まれていません。現在、NXP が提供するデモ キーを使用しています。キー書き込みとNBUファームウェアのアップグレードをテストしたいと思います。AN14003ドキュメントとリファレンス・マニュアルを参照しています。ISP UARTを使用してヒューズの取得と書き込みを行います。私の知る限り、ブート構成ピンをプルアップするだけで、このチップはISPモードに入ることができます。SO far、UARTを使用してチップのフラッシュを消去および書き込みCANますが、ヒューズに書き込むときに、上図に示す状況が発生します。 Re: KW45 Cannot write key using blhost Hello   NXP 開発ボード [KW45B41Z-EVK / KW45-LOC] を使用しているか、カスタム ボードを使用しているか確認していただけますか?これは必要なキーに影響を与えるためです。   ヒューズを焼くためのガイドや指示に従っているかどうか確認していただけますか?   ボードはISPモードになっていますか?   ヒューズを燃やす方法は元に戻すことができないことに注意することが重要です。したがって、ヒューズを変更する場合は注意することをお勧めします。   よろしくお願いいたします。 ルイス Re: KW45 Cannot write key using blhost これは当社のボードの最小システムデザイン回路図ですが、このデザインに問題があるかどうかお伺いしてもよろしいでしょうか? Re: KW45 Cannot write key using blhost こんにちは、 カスタムボードの設計を確認するには、 KW45(オートモーティブ)またはK32W1 / MCXW71(IoT /インダストリアル)を使用して初めてPCBを正しく構築する最良の方法という投稿を確認することをお勧めします。この投稿には、 KW45ハードウェア設計推奨事項の推奨事項を含む、KW45ボードに必要な全体的な特性が含まれています。 キーがまだ書き込まれていないとおっしゃったように、デバイスにキーをプログラムする必要があります。RoTKTH キーと SB3KDK キーをフューズに書き込むことが不可欠です。また、画像のエラーは、SB3KDK キーのプログラミングに失敗したことを示しています。 KW45 カスタム ボードが KW45B41Z-EVK と同じように使用するのか、それともカスタム エンド アプリケーション用なのか確認していただけますか? KW45ボードをKW45B41Z-EVKと同じ機能で使用する場合は、AN14003の5.2.1章に記載されているデフォルトのSBKDKおよびRoTKTHキーを使用できます。 ボードを別のカスタムエンドアプリケーションで使用する場合は、カスタムキーと署名されたイメージを生成する必要があります(4.2章とJupyter Notebookの例で説明されているプロセス)。カスタムキーの場合は、.sb3を生成する必要があります。.xipを使用したファイルカスタム キーを構成するファイル。 よろしくお願いいたします。 ルイス
記事全体を表示
用于服装认证的 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
記事全体を表示
用于 MCAL 的 S32k311 ADC 模块 你好@nxp 我正在为 S32k31xevb- q100 配置 ADC 模块。我使用的是基于 Autosar 的 MCAL 层配置。就我而言,我使用的是没有中断方法的软件触发信号。它正在进入这个函数但是我的 adC 值无法转换 adc_sar_IP_startConversion(physicalHWUNITID、ADC_SAR_IP_CONV_CH AIN_NOR MAL);造成这种情况的原因是什么? Re: S32k311 ADC module for MCAL 你好@Senlent, ,我会再检查一下我这边的情况,然后告诉你。 Re: S32k311 ADC module for MCAL Hi@dhanabharathi 测试硬件基于 S32K31XEVB,结果与我的想法一致。 我附上了项目和测试结果供你参考。 Re: S32k311 ADC module for MCAL 您好@Senlent ,我按照您的步骤进行了操作,但问题依然存在。 Re: S32k311 ADC module for MCAL Hi@dhanabharathi 我认为您的配置没有问题,只是您的代码有误。 问题 1. #defineadc_bandgap 5980u /* Vbandgap~ 14 位分辨率时为 1.2V,3.3V VrefH */ #else #defineadc_bandgap 3932u /* Vbandgap~ 1.2V,分辨率为 14 位,5V VrefH */ #endif 如果 VREF 为 5V,那么 ADC_BANDGAP 为 3932,而不是 5980。 问题 2. if ((ResultBufferDma[0u]>> 1U != AdcReadGroupResult[0u]) || \ (ResultBufferDma[1u]>> 1U != AdcReadGroupResult[1u]) || \ (ResultBufferDma[2u] != RESULT_BUFF_VAL) ||\ (AdcReadGroupResult[2u] != ADC_RESULT_BUFF_VAL) || \\ (ADC_TOLERANCE((ResultBufferDma[0u]>> 1U), ADC_BANDGAP))| \ (ADC_TOLERANCE((ResultBufferDma[1u]>> 1U), ADC_VREFH))\ ) 应删除这两行代码。最初的演示仅安装了两个采样通道,但您目前使用的是 4 个采样通道。这种判断会导致您无法进行下一次采样。 Re: S32k311 ADC module for MCAL 你好@Senlent, 我附上了项目文件。 Re: S32k311 ADC module for MCAL Hi@dhanabharathi 请分享您的整个项目,我会花时间进行测试。 Re: S32k311 ADC module for MCAL 你好@Senlent OK。我明白了。 我验证了 VREFH 为 5.0 V。但是,当我向ADC供电4.0 V时,转换结果偏离了5 V参考的预期值。你能帮我查看潜在的原因(参考选择、校准、采样时间或引脚布线)吗? Re: S32k311 ADC module for MCAL Hi@dhanabharath " 我的 ADC 读数似乎是使用内部 2.5 V 参考计算的 " 除非您的 VREFH 引脚有问题,否则这是不可能的 不能通过软件修改 ADC 参考电压 VREF。 这与您当前为 VREFH 和 VREFL 引脚选择的外部电压有关。 如果你指的是如何在硬件中修改外部 ADC 参考电压,那么你 需要检查硬件设计并进行修改。 Re: S32k311 ADC module for MCAL 你好@Senlent, 不,我没明白你的意思。 Re: S32k311 ADC module for MCAL Hi@dhanabharathi vrefh 和 vrefl 是 ADC 的高参考电压点和低参考电压点,对应于引脚的 vrefh 和 vrefl 引脚 你能理解我的解释吗? Re: S32k311 ADC module for MCAL 嗨 @Senlent, 我会清楚地解释一下我的 ADC 读数似乎是使用内部 2.5 V 参考计算的,但我的输入使用 3.3 V 参考(电位计在 5 V 上)。如何将 ADC 参考从 2.5 V 更改为 5 V,以便计算 V_measured = (ADC_value / (2^n − 1)) × Vref 使用 5V? Re: S32k311 ADC module for MCAL Hi@dhanabharathi 我不明白你的意思。VREF 不应该修复吗?I 难道不是在硬件设计时确定的吗? 如果我误解了你的问题,请告诉我。 Re: S32k311 ADC module for MCAL hi@Senlent OK,谢谢。 还有一个问题。 当通过模拟引脚读取数据时。VREF 总是只消耗 2.5 V。我需要 3.3 伏或 5 伏 Vref。我无法设置 Vref 电压。配置设置无效。我附上了图片供你参考 Re: S32k311 ADC module for MCAL Hi@dhanabharathi 你没有在你的项目中添加和配置 " Rm " 元器件。
記事全体を表示
使用 TapLinx v4.1.0 在 POS SAM 插槽上使用外部 SAM(卡)验证/读取 DESFire EV2/EV3 亲爱的恩智浦 TapLinx 支持团队 我正在集成 TapLinX (v4.1.0)在安 卓 POS 设备上,需要有关使用安装在 POS SAM 插槽中的外部 SAM(安全访问模块)时从 MIFARE DESFire EV2/EV3 卡安全读取/写入 数据的推荐方法的指导。 环境& 硬件 TapLinx SDK:v4.1.0 POS 设备:安卓 POS(可根据要求提供型号)、安卓 13 NFC:正常(TapLinx 可通过 IsoDep/Android NFC 检测该 POS 上的卡类型) 卡:MIFARE DESFire EV2 / EV3 SAM:外部 SAM 卡/模块可用,且 POS 有一个SAM 插槽;POS 供应商 SDK 提供 API 打开 SAM 通道并发送/接收 APDU(如 exchangeApdu(...) 我们希望达到的目标 我们希望使用外部 SAM(插入 POS SAM 插槽)对 DESFire 卡进行安全验证(这样密钥就不会暴露在应用程序中),然后在卡会话通过验证后使用 TapLinx 执行 DESFire 读/写操作。 问题/请求 是否使用 TapLinx v4.1.0在 TapLinx 处理 DESFire 协议和文件操作的同时,是否提供任何官方或推荐的集成模式来使用外部 SAM(插入 POS SAM 插槽)执行 DESFire 身份验证? 如果支持或建议进行这种整合,请提供: 演示 EV2/EV3 的SAM ↔ TapLinx 中继流程的示例代码(或伪代码)(首选 AES)。具体来说 如何调用启动卡牌挑战的 TapLinx 方法(例如 AuthenticateEv2First 或等效方法),捕获挑战数据,通过 APDU 将其发送给 SAM,然后将 SAM 的响应传回 TapLinx(例如 AuthenticateEv2Next)。 TapLinX 中可简化 SAM 桥接的任何辅助类或方法(例如,推荐的 APDU 成帧或预期的字节格式)。 TapLinx 期望用于身份验证交换的 APDU 格式,或 TapLinx 方法与您推荐用于 SAM 操作的 APDU 之间的映射指南。 如果 TapLinx 不直接提供 SAM 集成,推荐的安全流程(最佳做法)是什么? 中继卡挑战 SAM(在 POS SAM 插槽中)、 使用 SAM 计算响应(密码图/MAC),以及 将这些结果输入 TapLinx,这样 DESFire 会话就通过了验证,并可进行安全读/写。 如果您能分享任何涉及 TapLinx + 外部 SAM (POS) 集成的示例项目、技术说明或内部文档,将非常有帮助。 您能分享的任何示例代码或推荐模式都将加速我们的集成,并有助于确保我们实施一个安全、可维护的解决方案。 代码示例 示例代码 离线验证 离线版本 在线认证 Re: Using external SAM (card) on POS SAM slot to authenticate/read DESFire EV2/EV3 with TapLinx v4.1 我们的 TapLinx 还不支持外部 SAM,因此没有推荐的方法。
記事全体を表示
使用外部工具链 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-启动 和内核。 顺祝商祺! 萨拉斯
記事全体を表示
闪光测试 您好,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 勘误表仍然有意义? 无论如何,您能向我展示解决方法所建议的代码是什么样的吗? 此致。
記事全体を表示
LPCXpresso824 MAX 无法自动波特率进行 ISP 我有一块LPCXpresso824 MAX板。我知道它正在工作,因为我可以运行 UART 的 SDK 示例,当然还有“blinky”。 我正在尝试将其置于 ISP 模式并使用Flashmagic加载文件。在加载 blinky 的情况下(因此我知道用户代码是否正在运行),我按住 SW2 并重置电路板,然后释放 SW2。 这应该将电路板置于 ISP 模式,我可以看到我的 LED 不再闪烁,表明用户代码没有运行。 然后我尝试使用 Flashmagic(9600 波特)进行同步,但它超时并显示“自动波特失败”。我尝试过: 1.JP3 的两种设置(电路板为 RevC) 2. 按住 SW2 并“重置 SW3”以及物理断开/重新连接 USB 电缆,重新启动进入 ISP 模式。 我肯定遗漏了什么,我做错了什么?
記事全体を表示
IMX93のAndroid OS 皆さん、こんにちは 私はIMX93評価キットで作業を開始しており、Android OSで動作するかどうか疑問に思っていましたが、Androidはi.MX8シリーズのプロセッサに提供されていることがわかりますが、ドキュメントやフォーラムにはi.MX9についての言及はありません(私が知る限り)。 i.MX93用のAndroid OS BSPは開発中ですか、それともi.MX9でAndroidを実行する予定はありませんか? よろしくお願いします。 イワン 日時:IMX93のAndroid OS ベルンハルトの明確化をありがとう - 今、より理にかなっています 日時:IMX93のAndroid OS Android 10 以降では、3D GPU を搭載していない i.MX デバイスを除外する必要がありました。i.MX 93のCPUパワーが小型のAndroidベースの製品では問題ないとしても、特にGPU + Extensionsなど、満たされていないAndroidの要件がいくつかあります。 最終的には、それを実装することは技術的には可能ですが、マーケティングの観点からは、NXP独自のAndroidバージョンを作成することは意味がありません。 よろしく ベルンハルト。
記事全体を表示
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 がこれを超えて駆動する場合は、受け入れられません。 よろしくお願いします、 オマール
記事全体を表示
关于使用 EB 的自由基的问题(针对 K3) 你好,团队 我可以问一下 EB 配置的 freertos 吗? 我正在尝试用 EB 配置为自由落体进行设置。 此时此刻,我有一个问题... 在 S32DS freertos 示例中,SYST 由 "vTaskStartScheduler "启动。 没问题。 但是,通过 EB(基于 MCAL),初始值如下。 问题来自 MCAL 初始代码。那些正在使用 OSIF 计数器... 然而,OSIF_init 并没有使 SYST. 例如,当前 val(SYST_CVR) 为 0。 我不知道如何在 "vTaskStartScheduler"(或 MCAL 配置)之前进行 SYST 配置。 问题是 如何踢 OSIF 计数器? 我是否要在 MCAL init 之前实现"vTaskStartScheduler" ? 谢谢。 EB TRESOS 许可证 RTD S32DS Re: Question aobut freertos with EB(for K3) 您好, 我认为该解决方案是正确的,因为我们将其提供给了RTD,但不知何故它没有发布到此RTD版本。 此致, 乔治 Re: Question aobut freertos with EB(for K3) Hi Quan Le 感谢您的支持。 但是,我的问题没有得到任何答复。 如果我失去了一些反馈,请告诉我。 (或者我需要等待 Jira 的反馈吗?) 谢谢。 Re: Question aobut freertos with EB(for K3) 嗨,@Luke_Chun。如果我的回答对您有帮助,请点击"接受为解决方案" 关闭主题。 Re: Question aobut freertos with EB(for K3) 您好,由于您的补丁仅适用于 OsIf 模块 => ,我已将此主题发送给 RTD 团队。 让我们看看他们是如何使用你的解决方案的。 https://jira.sw.nxp.com/browse/ARTD-184603 Re: Question aobut freertos with EB(for K3) 你好@lequana2 通过 K3 案例,我们找到了热电阻与 Freertos 的问题所在。 RTD 在 EB 和 S32CT 中都出现了同样的问题。 Syst 的第一个问题(我最初的问题)可以通过配置序列来解决。 不过,带 K3 的热电阻不适合带热电阻中断的 Freertos。 因此,我们为它制作了一些补丁并贴上了。 请问这种方法对吗? 或者有什么指导意见? 谢谢! Re: Question aobut freertos with EB(for K3) 你好@lequana2 感谢您的回复。 这里有更多信息。 1.客户的目标项目基于 EB,但客户没有使用 Autosar / OS。 客户希望使用 freertos。因此,我正在寻找与弗莱托斯集成的 EB。 明白了,只需点击几下鼠标,S32DS 和 S32CT 就可以使用 freertos。 2.S32K324, Rtd 4.0.0P14 HF1,freertos 版本未修复。 我使用的是 freertos 5.0.0,但请告诉我,freertos 版本是否会更改... 谢谢。 Re: Question aobut freertos with EB(for K3) 你好@Luke_Chun我来自 FreeRTOS 团队。请问,为什么 Tresos 需要 FreeRTOS?因为正如你所看到的,我们为 DS 做出了承诺,而且效果很好。如果您有这样的情况,我们或许可以提供更好的支持,并在未来加入 Tresos 样品。 关于 OsIf,也许 Base Bundle 团队@RaduPruna可以为他提供支持。但我们需要您当前的环境(哪个 NPI、哪个 RTD 版本、哪个 FreeRTOS 版本......),以便更好地提供支持。 最后,FreeRTOS 团队还能为您提供哪些相关支持?
記事全体を表示
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。
記事全体を表示