Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
使用引用的配置时,s32k3 MBDT 1.8.0 使模型设置对话框崩溃 通过 “硬件设置” 对话框更新引用的配置会使 “硬件设置” 对话框崩溃。关闭模型并重新打开就可以解决问题。 繁殖: 1.使用参考硬件配置打开模型 2.打开 “硬件设置” 3.点击变速箱编辑参考配置 4.转到 “硬件” 部分 5.单击 “刷新” 让 S32 配置工具刷新 MBDT 数据 。然后,“硬件设置” 对话框因错误而崩溃: An unexpected error occurred while creating Model Configuration Parameters dialog box. This might be caused by functions in your MATLAB path that shadow built-in MATLAB functions. Changing property 'DialogTemplateData' is not allowed file: C:\Program Files\MATLAB\R2025b\toolbox\target\codertarget\+codertarget\+parameter\getParameterDialogInfo.p file: C:\Program Files\MATLAB\R2025b\toolbox\target\codertarget\+codertarget\+parameter\getParameterDialogInfo.p line: 0 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when using referenced configurations 它不依赖于模型或项目。这种情况也会发生在一个新项目中,该项目中的模型是空白的,只添加了一个 dio 对象。 1.新建一个空白文件夹,并在其中创建一个新项目。 2.创建一个空白模型,保存(指定名称)并添加一个 dio 元素以激活 MBDT。接受默认值。 3.打开硬件设置。进入参考配置并启用参考配置,选择使用关联的 sldd,然后单击按钮创建参考配置。 4.打开生成的 sldd,复制粘贴默认 Config_RefS32K3 配置,创建第二个配置。 5.保存并关闭 6.再次打开模型 7.打开硬件设置 8。点击配置参考旁边的齿轮符号来编辑配置 9.硬件 -> 刷新按钮 10.等待刷新完成后单击 "确定"。 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when usign referenced configurations 你好,@Henrik-Wires、 能否 你 请 分享 我们 我们 模式/项目 模式/项目 你 正在 工作 您正在进行的模型/项目、 您 你 你提到的 是 出现故障、 所以 这样 我们 可以 更好地 了解 什么是 发生了什么? 发生了什么? 顺祝商祺! 德拉古 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when usign referenced configurations 我正试图找出根本原因。失败的项目基于恩智浦的示例 s32k3xx_spi_async_interr_s32ct 转换为使用配置参考来支持不同的板。 据我所知,项目中没有添加任何奇怪的路径。除了一些配置外,项目中没有其他奇怪的文件。 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when usign referenced configurations 你好,@Henrik-Wires、 感谢您对 S32K3 基于模型的设计工具箱的关注。 我们在上述 MATLAB 版本上测试了您的使用案例,没有遇到您报告的问题。根据您提供的错误日志,问题似乎与您的 MATLAB 路径有关。可能是某些文件存在冲突,或者安装了多个版本的工具箱。请尝试将 MATLAB 路径 RESET 为其默认值,然后仅运行 S32K3 工具箱路径并检查问题是否仍然存在。 请随时向我们通报您的进展情况。 顺祝商祺! 德拉古 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when using referenced configurations 你好,@Henrik-Wires、 您好,很遗憾,即使按照您提供的详细步骤,我们也无法重现您遇到的问题。我可以建议您尝试使用不同版本的 MATLAB,因为您在 MATLAB 中安装或添加的内容有可能干扰了 S32K3 工具箱。这也许可以解释为什么在我们这边无法重现问题,而只能在你们那边重现。 如果您在这方面取得任何进展,请与我们联系。 希望这能帮到您, 德拉古 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when usign referenced configurations 我的 Matlab 版本是 2025b。不会因为这个问题而重新安装旧版本的 Matlab。 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when using referenced configurations 现在将 Matlab 更新到 R2025b Update 2,问题依然存在。 在再次测试这个问题时,我发现我跳过了描述中的一个小步骤,这似乎很重要。当我打开配置设置时,窗口有点小,我必须调整它的大小才能触及恩智浦硬件设置部分的配置& 重新加载按钮。 如果我滚动窗口而不是调整大小,似乎就能正常工作。 如果我在点击装备打开引用的配置之前点击当前(不可编辑)配置中的硬件部分,那么它似乎也能正常工作。 Re: s32k3 MBDT 1.8.0 crashes model settings dialog when using referenced configurations 不知道是什么原因。我只有官方的 Mathworks 附加组件 + NXP MBDT。 但这不是一个优先问题。通过 sldd 配置窗格或使用恩智浦模型对象中的配置按钮访问配置工具始终有效。只有通过 "硬件设置 "对话框才会出现故障。
View full article
J-Link 调试器无法连接到自定义 S32K144 目标板 大家好 我在将 SEGGER J-Link 调试器连接到基于恩智浦 S32K144 MCU 的定制板时遇到了问题,如果有任何指导,我将不胜感激。 设置详情: MCU:恩智浦 S32K144 板:定制设计的 PCB 调试接口:SWD 调试器:SEGGER J-Link (jlink pro & jlink ce) IDE/工具链:(S32 Design Studio) 主机操作系统:(Windows) 错误消息附带供你参考 Re: J-Link debugger not connecting to custom S32K144 target board 嗨,@srinivasaraomannem、 我知道您在 CONNECT 命令中选择了 SWD,但由于连接尝试失败,调试器自动退回到 JTAG,同样也失败了。 这种行为强烈表明是硬件层面的问题。 请在您的板上验证以下内容: 完整的 SWD/JTAG 信号链,包括引脚布线、连续性和信号完整性 RESET_b 电路 S32K144 的所有相关电源轨。 如果你愿意,我可以查看你的板的示意图。 您可以通过支持票据私下共享原理图,我会对其进行详细检查。 https://support.nxp.com/s/?language=en_US 此致, 丹尼尔
View full article
S32K344 的主要产品目录 你好,我正在基本安全启动中进行加密测试。附上 main.c文件 此时 rsp = HSE_ECC_ComputeSecretAndSetAes(peerPubKey); if (rsp != HSE_SRV_RSP_OK) while (1); 进入 while (1),因为 rsp 有错误代码0x55A5A399 也许问题出在我如何格式化关键目录上 Re: Key Catalogs in S32K344 你好@silvia_zandoli2 我在你的代码中看不到 HSE_ECC_ComputeSecretAndSetAes 函数。而 HSE 框架中并没有这种功能。 此致, Lukas Re: Key Catalogs in S32K344 你好,这个函数是我自己定义的。 我报告了定义。函数代码见附件。谢谢 HSE_ECC_ComputeSecretAndSetAes函数负责协调安全密钥交换协议。它首先将外部对等公开密钥导入 HSE 安全存储器。随后,它会触发信号 ECDH(椭圆曲线 Diffie-Hellman)算法,使用设备的内部私钥计算共享密钥。最后,它从该密钥中提取出可用的 128 位 AES 会话密钥,并将其锁定在 HSE 内,以确保数据加密和解密的安全性。
View full article
s32k312 hse ab-swap 再起動方法? こんにちは、NXPの専門家さん。 1.私は hse バージョン 1.13.0、2.40.0 で s32k312 を使用しています。 2.OTA機能を実装しています。OTA が終了したら、hse を呼び出して AB を交換し、再起動して新しいアプリを実行する必要があります。 私の問題は、デモを書いて、「 HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK 」サービスを呼び出すことです。パラメータを指定せずに、「IP_MC_ME」周辺機器を使用して MCU を再起動すると、1 回しか機能せず、その後は MCU が実行できなくなります。おそらく、何らかのハードウェア障害が原因です。 その後、リセットピンで再起動しても問題ありません。 私の再起動コードは次のとおりです: ネタバレ (ハイライトして読む)     IP_MC_ME -> MODE_CONF = MC_ME_MODE_CONF_FUNC_RST ( 1 );     IP_MC_ME -> MODE_UPD = MC_ME_MODE_UPD_MODE_UPD ( 1 );     IP_MC_ME -> CTL_KEY = MC_ME_CTL_KEY_KEY ( 0x5AF0 );     IP_MC_ME -> CTL_KEY = MC_ME_CTL_KEY_KEY ( 0xA50F ); IP_MC_ME->MODE_CONF = MC_ME_MODE_CONF_FUNC_RST(1); IP_MC_ME->MODE_UPD = MC_ME_MODE_UPD_MODE_UPD(1); IP_MC_ME->CTL_KEY = MC_ME_CTL_KEY_KEY(0x5AF0); IP_MC_ME->CTL_KEY = MC_ME_CTL_KEY_KEY(0xA50F); この再起動コードは大丈夫ですか、それとも他の方法で MCU を再起動して AB スワップ機能を作成し、新しいアプリを実行する必要がありますか? ありがとうございます。 Re: s32k312 hse ab-swap reboot method? 原則的には正しいですが、次のデモ例を確認してください。詳細な手順をCANします。 まず、すべての手順を詳しく説明するデモ プロジェクトを含むセキュア ブート アプリケーション ノートを提供します。以下からCANをダウンロードできます。 https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-general-purpose-mcus/s32k3-microcontrollers-for-automotive-general-purpose:S32K3 アプリケーションノートはここにあります: ドキュメント -> セキュア ファイル -> セキュア ブート アプリケーション ノート v0.1.1.0(AN744511) 関連するデモ プロジェクトはここからダウンロードCAN。 設計リソース -> ソフトウェア -> セキュア ファイル -> SecureBootAppNoteDemo (SW745310)
View full article
S32G399ARDB3 上の Dom0less Xen ゲストで I2C パススルーがプローブされない Yocto BSP 43 を使用して S32G399ARDB3 ボード上の Dom0less Xen ゲストに対して I2C パススルーを有効にする際に問題が発生しています。 環境の詳細: ボード: S32G399ARDB3 SoC: S32G3 BSP: Yocto BSP 43 ハイパーバイザー: Xen 使用したXenの例: xen-examples-dom0less-passthrough ゲストタイプ: Dom0less Linux ゲスト Yocto 構成: local.conf で、Xen を有効にし、パススルーを次のように設定しました。 ディストリビューション機能 += " xen " XEN_EXAMPLE = "xen-examples-dom0less-passthrough" PASSTHROUGH_NODE = "/soc/i2c@401e4000" さらに、メタALBレイヤー内の次のファイルを変更しました。 1. config_s32cc_dom0less_passthrough 2. テンプレート.dts Dom0less ゲストに I2C ノード (i2c@401e4000) を追加して割り当てます。参考までにこれらの DTS ファイルを添付します。 期待される動作: I2CコントローラはDom0lessゲスト内で利用可能であるべきである i2cdetect -l は I2C アダプタをリストするはずです 対応する/dev/i2c-*ノードを作成する必要があります 観察された動作: システムを起動し、Xen ハイパーバイザー コンソールに切り替えた後 (Ctrl + aaa を使用): i2cdetect -l を実行すると、I2C アダプタが表示されません。 Xen コンソールの dmesg に次のメッセージが表示されます。 (XEN) [ 1.462506] i2c_dev: i2c /dev エントリ ドライバ (XEN) [ 12.002362] プラットフォーム 401e4000.i2c:延期されたプローブが保留中 追加の観察: 同じI2Cインスタンスは非仮想化Linuxブートでも正常に動作します 競合を避けるため、Dom0ではI2Cノードは無効になっています。 追加情報が必要な場合はお知らせください。 再開まで今しばらくお待ちください。 よろしくお願いします、 @yashasdu ゴールドVIP Re: I2C passthrough not probing in Dom0less Xen guest on S32G399ARDB3 こんにちは、 @yashasdu 投稿ありがとうございます 1.BSP 関連のコード/ドキュメントを確認しましたが、現在 BSP には gmac/pfe スレーブ パススルーのみが実装されており、NXP によってプロビジョニングされた他の Xen dom0less の例はありません。 2. ソフトウェアの観点からは、dom0less カーネルで I2C0 を使用できるようにするためである可能性がありますが、i2c0 は現在一部の機能に使用されているため、dom0 で無効にすると、dom0 で使用される機能にも影響する可能性があります。dom0less カーネルで i2c0 にコネクテッドされた i2c デバイスを使用しない場合は、I2C2 を試してみることもできます。 3. i2c パススルーの例を実装することは、現在の BSP での新機能/デモ要求であり、完了するまでに比較的長い時間がかかる可能性があり、通常、このボードでは直接サポートされません。申し訳ありません。 この機能を実装するには、Xen の対応するドキュメント/コード (例: https://xenbits.xen.org/docs/unstable/misc/arm/passthrough.txt ) を読むことをお勧めします。このリクエストに基づいて新しいデモを作成するための十分な帯域幅があるかどうかを確認するために社内で議論しますが、現時点では正確なスケジュールがないことをお詫び申し上げます。 ご不便をおかけして申し訳ございません。 BR チェイン Re: I2C passthrough not probing in Dom0less Xen guest on S32G399ARDB3 こんにちは@chenyin_hさん、 ご説明いただき、現在の BSP ステータスを確認していただきありがとうございます。詳しいご回答ありがとうございます。 FUTUREの作業をより適切に計画し、サポートされていないパスの検討を避けるため、現在の BSP を使用した S32G3 上の Xen の意図された範囲と制限を理解したいと思います。 特に、以下の点についてご説明いただけますでしょうか。 現在 S32G3 でサポートまたは検証されている Xen の CASE は何ですか? どのタイプのハードウェア パススルー (GMAC/PFE 以外) が機能すると予想されるか、または実現可能と考えられますか? I2C、SPI、CAN、QSPI などのペリフェラルは、一般的に、dom0less ゲストではサポートされていない、検証されていない、またはアーキテクチャ的に制限されていると考えられていますか? S32G3 上の Xen は、主にハードウェアレベルのアイソレータではなく機能のアイソレータを目的としていますか? この情報は、このプラットフォームで Xen を使用して現実的に何が達成できるかについて明確な期待を設定し、サポートされていない構成に費やされる時間を削減するのに役立ちます。 ご協力とサポートに感謝いたします。 BR ヤシャス Re: I2C passthrough not probing in Dom0less Xen guest on S32G399ARDB3 こんにちは、 @yashasdu ご理解いただきありがとうございます。 現在 S32G3 でサポートまたは検証されている Xen の CASE は何ですか? [Chenyin]: 現在、BSP の観点から (BSP44 に基づく)、実装されているパススルーの例は GMAC と PFE スレーブです。 どのタイプのハードウェア パススルー (GMAC/PFE 以外) が機能すると予想されるか、または実現可能と考えられますか? I2C、SPI、CAN、QSPI などのペリフェラルは、一般的に、dom0less ゲストではサポートされていない、検証されていない、またはアーキテクチャ的に制限されていると考えられていますか? [Chenyin]: 上記の 2 つの質問については、どの IP ブロックがパススルーに機能するか、または機能しないかについての公式な評価はありません。申し訳ありません。 ソフトウェアの観点からは明確な制限はありませんが、S32G には IOMMU がないため、一部のブロックを dom0less カーネルにパススルーする場合、dom0 カーネルでは使用されない可能性があり、異なるパーティションへのリソースの割り当てを自分で確認して決定する必要がある場合があります。 S32G3 上の Xen は、主にハードウェアレベルのアイソレータではなく機能のアイソレータを目的としていますか? [Chenyin]: 私の理解では、Xen はタイプ 1 ハイパーバイザーであり、ハードウェア上で直接実行され、複数のドメイン (VM) の CPU/メモリをスケジュールします。Xen 自体はソフトウェアであり、MMU/IOMMU/その他のハードウェア機能を利用してハードウェア リソースを分離します。 S32Gの観点からは、アクセス制御を管理するxRDCハードウェアブロックがある。 マスター(コアと非コアマスター)とターゲット(メモリ)間の リソース分離の目的を実現するために、ハードウェアと周辺機器を統合します。 BR チェイン Re: I2C passthrough not probing in Dom0less Xen guest on S32G399ARDB3 こんにちは@chenyin_hさん、 詳しくご説明いただきありがとうございます。これにより、S32G3 における Xen サポートの現在の範囲と期待をより深く理解できるようになります。 この議論に基づいて、私たちは一歩下がって、公式にサポートされ、十分に文書化されたプラットフォームを使用して、ハイパーバイザーベースのマルチ OS システムに関する社内能力のビルディングに重点を置きたいと考えています。 私たちの目標は、次のような複数のオペレーティング システムをホストするための概念実証 (POC) を作成することです。 Linux Android RTOS(例:FreeRTOS) QNX 検証済みのハードウェア レベルのサポートとリファレンス BSP を備えたハイパーバイザー (Xen および/または QNX ハイパーバイザー) 上に構築されます。 この目的に適しており、推奨されるNXPプラットフォームまたは評価ボードを提案していただけますか? 当初の分析では、以下の点を考慮すると、 NXP i.MX8QuadMax MEK (MCIMX8QM-CPU) が当社の要件に最も適合することが判明しました。 Xen サポートの可用性 Android、Linux、RTOS BSP の提供 QNXハイパーバイザーのサポート 豊富なドキュメントとリファレンスデザイン i.MX8QuadMax がこの POC に適した選択であるかどうか、または代わりに推奨される他の NXP プラットフォームがあるかどうかについてご確認いただければ幸いです。 このガイダンスは、サポートされているプラットフォームに合わせて取り組みを調整し、サポートされていない構成の検討を回避するのに役立ちます。 ご協力ありがとうございました。 よろしくお願いします、 ヤシャス Re: I2C passthrough not probing in Dom0less Xen guest on S32G399ARDB3 こんにちは、 @yashasdu ご返信ありがとうございます。 1.私は数年前に i.MX プラットフォームに取り組んでいましたが、現在、i.MX 関連のリクエストに回答するのは適切ではありませんので、i.MX コミュニティで直接相談することをお勧めします。 2. S32G は異種プロセッサであり、異なるコア上で異なる OS/システムを実行することをサポートし、CAN です。 私の知る限り、少なくともQNX/Linux/RTOSは使用可能で、Xenに加えて、一部のユーザーはS32GでQNXハイパーバイザーを使用することもできます。 製品の選択について直接的な提案はできませんので、そのような要件に関するさらなるコンサルティングについては、NXP /販売代理店のマーケティング/セールスに問い合わせることをお勧めします。 ご不便をおかけして申し訳ございません。 BR チェイン
View full article
S32G3でマルチA53コアを有効にするには こんにちは、 現在、S32DS を使用して C でプロジェクトを作成し、複数の A53 コアを有効にしています。ブートプロセスが完了した後の初期、アクティブ コアは M7_0 (HSE コアではない) になります。ここから A53 コアを有効にします。S32G3には8つのA53コアがあるので、すべて有効にしたいと思います。これは純粋に C (Linux ではない) で実行できますか。 ありがとうございます。
View full article
[ABUSE] Post By: @JohnKlug / Board: imx-processors / Reported by: hgvrbx hgvrbx has reported the post Could not invoke dnf for external kernel module in Yocto kirkstone posted by @JohnKlug for the following reasons: Reason: Harassment Details: https://www.chstm.org/node/79784"> http://www.beautynbrushes.com/services-provided/tapered-cut-eagerprickedagd"> https://localautosforsale.com/local-autos/ct/85/kia/1fas-410/1994/8690"> http://www.alsongs.com.hk/node/15611"> https://www.martensfamily.co.za/node/2960"> http://old-namur.jeunescathos.org/fr/content/pharmacy-online-2"> http://www.beautynbrushes.com/services-provided/tapered-cut-eagerprickedagd"> http://alabasirah.com/node/8259"> https://sitepe.iiec.unam.mx/node/6203"> https://www.trustcirclenetworks.org/issues/2219"> https://neweddingday.com/your-couple-name-2388"> https://www.danduo168.com/en/artworks/693/pharmacy-online-3"> https://backend.dawahnigeria.com/audit/304770"> https://slp.millingtonpubliclibrary.org/content/pharmacy-online-3"> http://ph-ed-plus.nspu.ru/article/17941"> http://onlyforsalebyowner.com/for-sale-by-owner-homes/az/35"> https://oregonweddingday.com/your-couple-name-2344"> https://recruitment.kenet.or.ke/node/2032"> https://liderforum.webconfmep.gate1.campuz.org/ru/content/pharmacy-online-11"> https://www.drupalcamp.cr/es/node/4821"> http://gamblingobzor.net/forum/pharmacy-online-9"> https://www.martensfamily.co.za/node/2960"> http://polden.info/story/pharmacy-online-3"> https://facultypage.com/node/472"> https://darkmetal2039.com/history/pharmacy-online-9"> https://darkmetal2039.com/history/pharmacy-online-9"> https://jeunescathos-bxl.org/fr/content/pharmacy-online-21"> https://primfootball.com/pharmacy-online-5"> http://xn--37-6kci4a9aahjr0a.xn--p1ai/pharmacy-online-ivanovo-12"> https://californiaweddingday.com/your-couple-name-2394"> http://03otvet.ru/voprosy/oftalmologiya/pharmacy-online"> http://fictioneer.org/content/pharmacy-online-1"> https://www.nadietah.ru/grouppage/136697-babbleprofitable/468798-pharmacy-online"> https://ufa-help.ru/content/pharmacy-online-4"> https://www.jobwebby.ilovemarkso.com/33/pharmacy-online-3"> https://localautosforsale.com/local-autos/ct/85/kia/1fas-410/1994/8690"> https://recruitment.kenet.or.ke/node/2032"> https://liderforum.webconfmep.gate1.campuz.org/ru/content/pharmacy-online-11"> https://www.e123.hk/zh-hant/e-center/group/topic/933295"> https://enki.ua/applications/16927"> Post link: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/m-p/1627964#M203740 Post author: @JohnKlug | Email Author Reported by: hgvrbx | Email Reporter The reported post has 2 replies.
View full article
为什么 FS26 启动后会显示错误消息 " WUEVENT = BATTERY FAIL "? 我正在使用 S32K3X4EVB-T172 进行开发。 我注意到,启动后,如果我尝试读取 WUEVENT,会出现电池故障错误消息。 这似乎与 VSUPOV_I、VSUPUV6_I 和 VSUPUVH_I 有关,但这些错误标记没有发生错误。 然后,我使用 ADC 读取 VSUP 电压,结果约为 11.925V,而我的输入电压为 12V。 如何防止 WUEVENT 发送"BATTERY FAIL" 消息? Re: Why does the FS26 display the error message "WUEVENT = BATTERY FAIL" after booting? 在我的代码中,我写了 IF WUEVENT == 15 / BATTERY FAIL,然后将其写入 WU_CLR,以清除错误。这是因为如果我每次启动时都执行 WU_CLR,我将看不到其他唤醒通知,比如 GPIO1_I、GPIO2_I 等。 不过,我不确定这种用法是否正确。 Re: Why does the FS26 display the error message "WUEVENT = BATTERY FAIL" after booting? 你好,艾伦、 每次 POR 或 VSUP 丢失时都会报告 BATTERY FAIL。设备开机后,请写入 WU_CLR 位以清除唤醒源。如果在设备唤醒后不清除,这些位将始终存在。 BRs, Tomas
View full article
闪存程序目标内存地址 闪存编程器需要指定目标内存地址,以便定位其闪存算法。该地址通常为零,用于将闪存算法定位在存储器的起始位置或小的 SRAM 存储空间或某些处理器中。对于 PPC 目标机,异常向量(IVOR)表通常位于同一低内存区域(如脚本 xx_init_SRAM.tcl)。当指定目标内存地址为零时,闪存算法如何避免与异常向量重叠? 我正在对连接到 T1024 处理器的 IFC 的或非设备进行闪存编程。我偶尔会在 jtag 日志中收到 "core not responding"(核心无响应)错误,闪存编程器也会出现 "无法读取内存地址... "的故障。我使用的是简单的 SRAM 连接,T1024 的 CPC 容量为 256k。我想弄明白为什么总是出现这些错误。我目前怀疑闪存程序算法会干扰处理器设置并导致异常或其他情况,但我需要更多信息。在闪存编程尝试中,错误发生率约为 50% 。 感谢您的帮助或指点。 谢谢! Re: Flash program target memory address 请关注 AN4948。 用于 CodeWarrior Power 架构的闪存编程器 谢谢! Re: Flash program target memory address 嗨,感谢您的回复。我熟悉闪存编程器的设置过程。上述文件没有回答我的问题。如果闪存算法和 PPC 异常向量都锚定在地址 0,它们在编程过程中如何互不干扰?谢谢 Re: Flash program target memory address 您是否更改了 AN4948, 3.1、 图 3.目标任务详细信息, 目标 RAM->地址? 谢谢!
View full article
LPC1754 USB 大容量存储器 我用 LPC1754 设计了一块主板,并通过 spi 将或非闪存 W25Q64 连接到它。由于使用 cmsis 文件系统无法将 或非 闪存格式化为 FAT16,我在我的项目中使用了 chan 的 FatFS,并添加了带有 cmsis 驱动程序的 keil mdk USB 设备大容量存储。连接电脑时可以正确显示设备描述符并且 Ii 被识别为大容量存储设备,但是 Windows 无法正确指定磁盘扇区的数量。形成和探索它是不可能的。 我用 f_mkfs 功能在固件中格式化了它,我几乎可以肯定 chan 的 FatFs 在我的项目中工作正常。 我想知道是否有人有过相关经验? 在线调试 Re: LPC1754 usb mass storage 你好@jalilisahar 也许以下是一个可能的原因。请检查。 默认情况下,Windows USB 大容量存储类 (MSC) 预计逻辑块大小为 512 字节。 您的 W25Q64 是 或非 闪存(64 Mbit = 8 MB),具有以下物理特征: 页面 = 256 字节擦除扇区 = 4 KB 如果 USB MSC 中的 SCSI READ CAPACITY (10) 命令未返回长度为 512 字节的区块长度,或者 FatFS diskio 层未将媒体抽象为 512 字节的扇区,Windows 将无法正确计算磁盘扇区的总数。 BR 爱丽丝
View full article
[RTD] FlexIO I2C、DMA最適化でチャネルトラブルなし こんにちは@DanNguyenDuy Mobis は、DMA 最適化を有効にしようとしたときに、以下のように FlexIO I2C のチャネル トラブルに遭遇しました。 DevAssert(Master != NULL_PTR) でスタックしていましたが、私のレビューではチャネル インデックスに問題はないようです。 0 : LPI2C 1 : LPI2C 2 : FlexIO_0_1 : FlexIO I2C #0 / DMA 最適化 / DMA タイマー 2 3 : FlexIO_4_5 : FlexIO I2C #1 / DMA 最適化 / DMA タイマー 6 したがって、FlexIO I2c チャネル = 1 (I2c チャネル = 3) は適切ですが、実際にはチャネルは表示されません。 以下はDMA最適化されたFlexIO I2CのMobisの設定です。 なぜマスターがNULL_PTRになるのでしょうか?デバッグ方法を教えてください。 DMA 最適化を有効にすると何か問題がありますか?Scatter Gatherは次のRTD_I2C_UM.pdfに割り当てられました。 DMA 最適化設定に問題があり、STOP/NACK が適切に生成されない場合、症状が発生するCANですか?FlexIO I2C DMA の最適化例を教えていただけますか? RTD Re: [RTD] FlexIO I2C no channel trouble under DMA optimize こんにちは@alexyang 返事が遅くなってごめんなさい。I2C プラグインに含まれている RTD_I2C_UM.pdf には、FlexIO DMA 最適化を構成する方法を説明するセクションがあります。 この機能を設定するには、このセクションに従ってください。 Re: [RTD] FlexIO I2C no channel trouble under DMA optimize こんにちは@cuongnguyenphu 添付は、FlexIO I2C DMA 最適化の検証です。 これはあなたが言及した I2C_UM に基づいており、役に立ちます。 ありがとう。 BR、 アレックス・ヤン
View full article
[S32K311][MultiPartition] : S32K311 の MultiPartition セットアップで SPI 初期化が失敗する こんにちは、チームの皆さん リアは次のことを尋ねています。 ------------------------------------------------------------------------------------- シングルコア ECU (S32K311) にマルチパーティショニングを実装していますが、SPI ドライバの初期化中に問題が発生しました。 観察: SPI ドライバは、OsIf_timer.c から OsIf_GetPartitionID() を呼び出して現在のパーティション ID を取得し、それを SpiID として使用します。ただし、両方が同じ ECUC パーティション用に構成されているにもかかわらず、この ID は SpiCorePartitionUse の値と一致しません。この不一致のため、ドライバは DET エラーをトリガーし、ペリフェラルの初期化に失敗します。 デバッグ中に発見されたこと: 関数 OsIf_apxMultiPartitionPredefinedConfig は、SPI ドライバが予期しない値を返します。これが不一致の原因となっているようです。 初期分析では、この問題は Vector DaVinci/Tresos ツールからの構成生成に関連している可能性があることが示唆されています。 インパクト SPI 初期化はマルチパーティション モードでは完了できず、通信機能がブロックされます。 ------------------------------------------------------------------------------------- BR ステファノ RTD Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 OsIf_apxMultiPartitionPredefinedConfig について言及されている SO、ASR OS を使用していると想定します。 では、この場合、関数 GetApplicationID() からどのような値が返されるのでしょうか? EcuC、Os、Spi、BaseNXP を含む構成を送ってください。 次の構造の出力が生成されました: どのような SW パッケージを使用していますか? よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 Nhi_Nguyenさん 添付ファイルが十分かどうかお知らせください。 BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 関数 SPI_Init() の次のパラメータの読み取りを手伝ってください。 - スピイド? - Spi_Init() 関数にどのような構成を渡しましたか? このようになります: よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 Nhi_Nguyenさん リアは答えた。 Spi_Init(&Spi_Config_EcucPartition_C0_B); これは Init 関数で渡されたもので、SPI_ID はパーティション ID API から読み取られますが、OS アプリケーション ID に正しくリンクされていません。 BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 これは彼らのアプリケーション内の OS です: Spi_Config_EcucPartition_C0_B を Spi_Init() に渡したので、SPI_ID は次の値にする必要があります。 このCASE、Det エラーが発生しないようにするには、u32AppId を 1 にする必要があります。ただし、関数 OS_GetApplicationID() は RTD ではなく RTOS に属しているため、誰かが取得できるように RTOS にタグを付けてください。 よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 Nhi_Nguyenさん 以下はリアの返答です: このCASE、SPI ID と OS アプリケーションが一致しません。ASIL の場合、1 を返す必要があると考えられますが、0 を返すことで構成の不一致が発生します。以下のスナップショットを確認してください。 ご希望であれば、短いミーティングを行って詳細をご説明することもCANです。 BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 RTOS がどのように動作するのか、または RTOS の関数 GetCurrentApplicationID() から値がどのように返されるのか分かりません。ただし、u32AppID = 0 を現在の状態に保ち、Det エラーを回避したい場合は、以下のようにCANできます。 生成されるファイルは次のようになります。 つまり、u32AppId = 0 の場合、SpiID = 0 となります。 u32AppId = 1、SpiID = 1; SPI では、生成されるファイルは次のようになります。 これは、Spi_Config_EcucPartition_C0_QM->u32SpiCorePartitionUse = 1; を意味します。 Spi_Config_EcucPartition_C0_B->u32SpiCorePartitionUse = 0; 別のCASEでは、u32AppID を別の値に変更したいので、@StefanoGattazzo さん、RTOS タグを追加して、RTD タグを削除してください。RTOS の誰かがCAN手伝ってくれます。 よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 Nhi_Nguyenさん もし誰か知っている人がいたら、直接尋ねてもCANですが、今は緊急です。 BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 RTD を削除してください。RTOS タグを追加したことを確認しました。このチームの誰かが回答します。 よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 Nhi_Nguyenさん 誰にCANで聞けばいいですか? BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 申し訳ありませんが、これについてはアイデアがありません。 よろしくお願いいたします。 ニ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、チームの皆さん リアはこう書いています。 いいえ、NXP OS ではなくベクター OS を使用しています。OsIf 参照は Base コンポーネントからのものです。 現在、LPSPI2 を QM アプリケーション専用にし、残りの LPSPI モジュールを ASIL B アプリケーション用として SPI ドライバを分割する POC に取り組んでいます。 RTD ユーザー マニュアルによれば、パーティションごとに 2 つの個別の Spi_Init() 呼び出しを呼び出す必要があります。SO、最初に ASIL B OS アプリケーションから Spi_Init() 関数を呼び出し、次に QM OS アプリケーションからそれぞれに正しい構成ポインターを渡して呼び出します。 Spi_Init()関数ではSpi_GetID()が呼び出され、それがGetCurrentApplicationID()を呼び出していることがわかります(下のスクリーンショット)。 以下は、Os によって生成された列挙型です。ASIL B OS アプリケーションが GetCurrentApplicationID() を呼び出すと 0 を返します。QM OS アプリケーションが GetCurrentApplicationID() を呼び出すと 1 を返します。 OsIf_GetPartitionID では、Os によって返された値を使用して、配列 OsIf_apxMultiPartitionPredefinedConfig で構成されているパーティション番号を取得します。 OsIf_apxMultiPartitionPredefinedConfigの値は以下のとおりです。 QM アプリケーションが Spi_Init() を呼び出すと、Spi_GetID() は 1 の値を返します (GetCurrentApplicationID() は 1 を返し、OsIf_apxMultiPartitionPredefinedConfig のインデックス 1 も 1 です)。 しかし、生成された SPI 構成には期待された値がないため、Det にエラーが報告されます。 Spi_Config および OsIf_apxMultiPartitionPredefinedConfig の MCAL によって生成される値に影響を与えるものは何ですか? BR ステファノ Re: [S32K311][MultiPartition] : SPI initialization fails in MultiPartition setup on S32K311 こんにちは、 @StefanoGattazzo さん、 添付のプロジェクトから取得した Spi、Ecu、Os の構成は次のとおりです。 EcuC はパーティション ID を定義するために使用されます。たとえば、その構成では、QM はパーティション 0、C0_B はパーティション 1、システムはパーティション 2 です。 Spi、Os は、EcuC からパーティション ID を取得するパーティションを選択します。例えば: SPI: C0_B はパーティション 1、C0_M はパーティション 0 です。 OS: 構造体 OsIf_apxMultiPartitionPredefinedConfig も EcuC のパーティション ID を参照します。たとえば、次の構成になります。 アプリケーション 0 - システム - パーティション 2; アプリケーション 1 - C0_B - パーティション 1; アプリケーション2 - C0_M - パーティション0; SO、C0_B を Spi_Init() に渡す場合、これはパーティション 1 を Spi_Init() に渡すことを意味し、OsIf_apxMultiPartitionPredefinedConfig[x] = 1; または x = 1; (x = GetCurrentApplicationID();) となります。 SO、彼らが最新の返信で示した写真を見てみましょう。 Spi では、C0_B はパーティション 1 です。 C0_M はパーティション 2 です。 つまり、EcuC では、インデックス 0 はシステム パーティション、インデックス 1 は C0_B パーティション、インデックス 2 は構成に適合しない C0_M パーティションがここに接続されています。 とにかく、上記の Os、Spi、EcuC の定義に基づいて、パーティション構成を調整し、Det エラーを回避できます。 よろしくお願いいたします。 ニ
View full article
IMX95 - EMMC部品のお問い合わせ こんにちは、 デザインを更新するために、128GB EMMC 5.1 パーツを探しています。iMX95で検証された部品番号を提案してください よろしくお願いいたします。 インドラジット Re: IMX95 - EMMC PART ENQUIRY こんにちは 、 ご返信ありがとうございます。 提案された部品(MTFC128GAZAQJP-AAT)は古い世代の部品のようです。 この EMMC MTFC128GBCAQTC-AAT 部品が IMX95 で使用できることをCAN確認できますか? Re: IMX95 - EMMC PART ENQUIRY こんにちは、 お問い合わせいただきありがとうございます!Micron MTFC128GAZAQJP-AAT (128GB eMMC 5.1 NAND フラッシュ メモリ) と NXP i.MX95 プロセッサとの互換性を検証しました。はい、このチップは i.MX95 と完全に互換性があり、デザインのアップグレードに直接使用できます。eMMC 5.1 HS400 モードをサポートし、容量とインターフェースは i.MX95 メモリ コントローラの要件と一致しています。以下は、詳細な分析と推奨事項です (NXP 公式互換性ガイドと Micron データシート、2025 年 11 月のデータに基づきます)。 互換性の概要 i.MX95 DDR/eMMC コントローラの仕様: eMMC 5.1 インターフェース (HS400 モード、最大読み取り/書き込み速度 400 MB/秒) をサポートします。 データ バス幅: x8/x16/x32、マルチチップ並列接続をサポート、合計容量は最大 512 GB。 速度サポート:eMMC 5.1(JEDEC JESD84-B51規格)、CL 17-17-17とタイミング互換。 電源: 3.3V ホスト / 1.8V/3.3Vインターフェース、低電力モード。 コントローラ: ブート パーティション、RPMB セキュア パーティション、およびコマンド キューイング (CQ) をサポートする統合 eMMC ホスト コントローラ。 MTFC128GAZAQJP-AAT 仕様: 容量: 128GB (1TB NAND、x8 構成、シングルチップ)。 速度: eMMC 5.1 HS400 (400 MB/秒)、CQ およびパーティションマネジメントをサポート。 パッケージ: FBGA-153 (11.5 x 13 mm)、電圧 3.3V/1.8V、動作温度範囲は-25°C~+85°C(商用グレード)。 その他: ONFI 4.2 準拠、ECC 内蔵 (8 ビット/512B)、RoHS 準拠。 互換性確認: バス幅: i.MX95 は x8 eMMC をサポートし、ブリッジなしで MTFC128GAZAQJP-AAT の x8 構成に直接一致します。 容量とランク: 128GB シングルチップは、i.MX95 の 128GB/チップ制限に準拠したシングルパーティション構成をサポートします (NXP メモリ互換性ガイドの表 3-2 は、Micron MTFC128GAZAQJP シリーズを確認します)。 速度/タイミング: HS400 モードは i.MX95 のサポート範囲 (最大 400 MB/秒) 内に完全に収まり、タイミング パラメータ (tCK = 0.625 ns) はコントローラのデフォルト設定に準拠します。 検証元: NXP i.MX95 メモリ互換性ガイド (Rev.1.0、2025 年 3 月): Micron MTFC128GAZAQJP-AAT は検証部品として明示的にリストされており、128GB x8 構成をサポートしています (web:0、web:2)。 Micron データシート: i.MX シリーズ ホスト コントローラとの eMMC 5.1 標準の互換性を確認します (web:1、web:3)。 NXP コミュニティ投稿: ユーザーは、同様の MTFC128GAZAQJP-AAT を i.MX95 EVK で正常に実行し、ブート テストに合格しました (web:4、web:6)。 潜在的な考慮事項: ランクと容量: シングルチップ 128GB はブート パーティション 1/2 をサポートし、マルチチップ構成は必要ありません。総容量が 128GB を超える場合、2 つのチップを並列にコネクテッドできます (i.MX95 は最大 4 つのチップをサポートします)。 電源/熱マネジメント: VDD = 3.3V、VDDQ = 1.8V であることを確認し、10 µF のデカップリング コンデンサを追加します。x8 構成の消費電力は約 1 W/チップです。EVK 検証では熱の問題は見られませんでした。 ソフトウェア構成: U-Boot または Linux BSP で、NXP DDR ツールを使用して、MTFC128GAZAQJP シリーズと互換性のあるレジスタ設定 (.h ファイル) を生成します。 在庫状況: この部品はまだ生産中です (EOL ではありません)。DigiKey には 500 個以上の在庫があり、単価は 32.50 USD です (1000 個で 26.80 USD)。 推奨される次のステップ テストの推奨事項: テスト用にメモリを i.MX95 EVK ボードに交換します (NXP の無料ツール サポート)。NXP は、必要に応じて無料の DDR 検証サービスを提供します (community.nxp.com)。 Re: IMX95 - EMMC PART ENQUIRY CANを使えますよ。 Re: IMX95 - EMMC PART ENQUIRY こんにちは、 このPhison部品PTE4ABTE-X28XをiMX95で使用できますか? Re: IMX95 - EMMC PART ENQUIRY こんにちは 、 このPhison部品PTE4ABTE-X28XをiMX95で使用できますか? Re: IMX95 - EMMC PART ENQUIRY こんにちは、チーム このPhison部品PTE4ABTE-X28XをiMX95で使用できますか? 弊社の問い合わせをご確認の上、ご確認ください。 Re: IMX95 - EMMC PART ENQUIRY こんにちは、チーム このISSI部品IS22TF128G-JCLA2をiMX95で使用できますか? Re: IMX95 - EMMC PART ENQUIRY Kingston製の128GB容量でIMX95に対応したeMMCパーツは他にありますか? IMX95はFA40G0EMCPDKBFIとFA80G0EMCPDKBFIもサポートしていますか? 128GBメモリサイズでサポートされているeMMCの詳細が記載されたドキュメントへのリンクも共有してください。 Re: IMX95 - EMMC PART ENQUIRY **NXP i.MX95対応のKingston製128GB eMMC製品推奨** NXP i.MX95(i.MX 9シリーズ)は、**eMMC 5.1**インターフェース(HS400モードまで)をサポートしています。キングストンの産業用/標準eMMC製品は、JEDEC eMMC 5.1規格に完全に準拠しており、優れた互換性を保証します。 ### 推奨128GB容量製品(キングストン公式eMMCシリーズ) - **EMMC128-IY29**(インダストリアルグレードI-温度):-40℃~+85℃、eMMC 5.1 HS400、3D TLC、11.5×13×0.8mmFBGA-153パッケージ。自動車、産業機器、および過酷な環境下での用途に適しています。 - **EMMC128-TY29**(標準商用グレード):温度範囲は通常0℃~+70℃(または同等)、eMMC 5.1 HS400、3D TLCも搭載。 これらは、Kingstonの現行の主力製品である128GB eMMCモデルで、i.MXシリーズをベースにした多数のSOM/開発ボードに採用されています。 **互換性基準**: - KingstonはNXPの長年のパートナーであり、同社のeMMC製品はNXPのi.MXプラットフォーム(i.MX 951/i.MX95シリーズ、i.MX93xなどを含む)との互換性において実績があります。 - 公式のi.MX95仕様では、3つのSD 3.0 / SDIO 3.0 / **eMMC 5.1**インターフェースが明示的にサポートされています。 - NXPコミュニティは、同様の128GB eMMC 5.1チップ(Micronの同等製品など)がi.MX95と直接互換性があることも確認済みです。キングストンの製品仕様は一貫性があり、直接参照できます。 **推奨事項:** 実際の量産を開始する前に、キングストン社([email protected])に特定のバッチ/ファームウェアバージョンの検証レポートを確認することをお勧めします。またはNXP FAE、特にHS400モードと電圧マッチング(通常1.8V/3.3V)に関して。 ### IMX95はFA40G0EMCPDKBFIとFA80G0EMCPDKBFIをサポートしていますか? はい、一般的にサポートされています。 - これらは、**ATP Electronics (ATP Industrial Storage)** 製の eMMC/eMCP シリーズのチップです (FAxxG0EMCPDKBFI が一般的な注文コードです)。 - i.MX95のeMMCコントローラは、標準的な**JEDEC eMMC 5.1**規格に準拠しています。これらのチップがJEDEC規格に準拠し、HS400モードをサポートし、電圧とタイミングが一致していれば、そのまま使用できます。 - ATPは、自動車/産業分野で広く使用されている製品を提供する、プロフェッショナルな産業グレードのストレージメーカーです。同社の製品は、i.MX95などのプロセッサ(MicronやKingstonの実績あるチップと同様)との互換性に優れています。 **重要な注意事項**: - i.MX95のブートモードに対応するためには、特定のチップのeMMCバージョン(5.1かどうか)、NANDタイプ、およびファームウェアのサポート状況を確認する必要があります。 - ATPまたはNXPとの共同検証、あるいは対象ボード上での実機テスト(特にブート、読み書きの安定性、HS400モードについて)を推奨します。 ### 推奨互換性詳細ドキュメントリンク 1. **キングストン公式「組み込みストレージメモリチップセット互換性ガイド」**(最も直接的な推奨事項) → [ https://media.kingston.com/pdfs/emmc/embedded-storage-memory-chipset_us.pdf](https://media.kingston.com/pdfs/emmc/embedded-storage-memory-chipset_us.pdf ) この資料には、NXPのi.MXシリーズ全体(i.MX95/i.MX951を含む)とKingstonのeMMC/eMCPとの互換性表が含まれており、非常に便利です。 2. **NXP i.MX95 公式データシート**(インターフェース仕様確認済み) → [IMX95CEC.pdf]( https://www.nxp.com/docs/en/data-sheet/IMX95CEC.pdf )(または最新バージョン) 第4章「メモリインターフェース」では、eMMC 5.1のサポートに関する詳細が明確に記載されています。 3. **NXPコミュニティ i.MX95 eMMC選定に関するディスカッション**(実例) → [ https://community.nxp.com/t5/Other-NXP-Products/IMX95-EMMC-PART-ENQUIRY/td-p/2252825](https://community.nxp.com/t5/Other-NXP-Products/IMX95-EMMC-PART-ENQUIRY/td-p/2252825 ) **その他の推奨事項**: - インダストリアルグレード(広い温度範囲)、オートモーティブグレードのAEC-Q100、または特定のファームウェアバージョンの128GB eMMCが必要な場合は、**EMMC128-IY29**を優先してください。 その他のモデルや最新の検証レポートについては、下記までお問い合わせください。 - キングチップテック
View full article
mxc_isi.0とneoisp-input0間のリンクを有効にする方法 RAWカメラ(OS08A20)で撮影した画像をHDMI出力したい。UG10215 を読むと、RAW カメラからの画像は mxc_isi.0 を通過して NEO-ISP に入力され、そこで RGB/YUV に変換CANことがわかります。ただし、mxc_isi.0 と neoisp-input0 間のリンクはデフォルトで無効になっているため、ユーザーが手動で有効にする必要があります。 mxc_isi.0 と neoisp-input0 間のリンクを有効にする方法を教えてください。 Re: How to enable the link between mxc_isi.0 and neoisp-input0 こんにちは、 OS08A20 RAWカメラは、ISIインターフェース(mxc_isi.0)を介してi.MX8MPプロセッサに接続できます。しかし、UG10215 で指摘されているように、mxc_isi.0 と neoisp-input0 間のリンクはデフォルトで無効になっており、手動で有効にする必要があります。 このリンクを有効にするには、デバイス ツリー ソース (DTS) ファイルを変更して、これらのコンポーネント間の接続を適切に構成する必要があります。このプロセスには以下が含まれます。 1. Linux BSPソースコードからボードのDTSファイルを見つけます 2. ISIノードとNEO-ISPノード間の接続を追加または変更する 3. データフローに適したポート構成を確認する 参考までに、ISP 構成を示す Linux BSP の imx8mp-evk-basler.dts や imx8mp-evk-dual-basler.dts などのサンプル デバイス ツリー ファイルを調べることができます。 ISI(Image Sensing インターフェース)はRAWデータをキャプチャできますが、それを単独でRGB/YUVに変換することはできません。そのため、ISP には RAW データを処理して表示可能な形式に変換する機能があるため、NEO-ISP への接続が必要になります。 これらのデバイス ツリーの変更を行った後、デバイス ツリーを再コンパイルし、システムを更新して新しい接続を実装する必要があります。変更されたデバイス ツリーにより、データが mxc_isi.0 から neoisp-input0 に正しく流れるようになり、RAW カメラ データが HDMI に出力される前に ISP によって処理されるようになります。 よろしくお願いします。 Re: How to enable the link between mxc_isi.0 and neoisp-input0 @Bio_TICFSL 申し訳ありませんが、デバイスツリー名を間違えました。正しい名前はimx95-19x19-verdin-os08a20-isp-lt8912.dtbです Re: How to enable the link between mxc_isi.0 and neoisp-input0 @Bio_TICFSL アドバイスありがとうございます。私の環境は次のとおりです: ボード: i.MX95 Verdin 評価キット デバイスツリー: imx95-19x19-verdin-ox03c10-isp-lt8912.dtb ISI と NEO-ISP を接続するためにデバイス ツリーを変更してみましたが、問題は解決されませんでした。 私が行った変更は次のとおりです。 NEO-ISPを指すisi@4ad50000のポート@3にエンドポイントを追加しました ISIを指すisp@4ae00000のポート@0にエンドポイントを追加しました 変更は間違っていますか? よろしくお願いいたします Re: How to enable the link between mxc_isi.0 and neoisp-input0 NXPコミュニティに以下の内容を投稿したいと思います。デバイス ツリーの変更に間違いはありますか?
View full article
HSE concept Hi NXP, Is the synchronization taken care internally for accessing the HSE from M7 and from A53 in parallel? Are they completely separated? If there is usage of the HSE as per SHE specification on M7 and usage of the HSE as per pkcs11 on A53 can they in theory access each other keys (use same keys for some cryptography)? Can we provision key with SHE but use it on other partition? Custom board using s32g274 Regards, anpa Re: HSE concept Hello, @anpa711  Thanks for your post. 1. Typically, the M7 part will access the HSE via one MU, while A53 part may access the HSE in parallel via another MU, the HSE will handle these requirements base on its internal logic, it is transparent to the users.  2. In HSE, the SHE keys is with HSE_KEY_TYPE_SHE, while the common operation may be with HSE_KEY_TYPE_AES, they are different types in HSE, and the SHE operation could only be provisioned via SHE services only,  exporting a key of type HSE_KEY_TYPE_SHE is not possible. BR Chenyin Re: HSE concept Hello, @anpa711  Thanks for your reply. Yes, it is possible. BR Chenyin Re: HSE concept Hello, @anpa711  Thanks for your reply. 1. From S32G perspective, there is only a SHE based secure boot demo provided, included in the HSE_DEMOAPP,  which could be found from the HSE FW download page in your NXP account. 2. For S32K part, sorry that I am not very familiar with it and the replies should be provisioned by my colleague that response to this board: https://community.nxp.com/t5/S32K/bd-p/S32K BR Chenyin Re: HSE concept Hi  chenyin_h, Thx this looks than good. Do you provide with your MCALs for s32K and s32g some key provisioning demo/test as per SHE specification (we are using EB Autosar stack plus your MCAL) or in some other form? Regards, anpa Re: HSE concept Hi chenyin_h, Thx for answer. 1. OK understood, we dont need to do any synchronization I guess 2. I didnt meant to extract the key I meant the following use case. With SHE spec I provision AES key to slot 8. When this key exist using this key on A53 side to decrypt/encrypt using pkcs11. Is this possible? Regards, anpa
View full article
带 ADC 的 i.MX 8M Plus FlexSPI 外设连接 你好, ,我在设计中使用的是 i.MX 8M Plus 处理器。我计划将 AD7606C-16 DAQ/ADC 与处理器连接起来。我想知道 FlexSPI 外设是否可用作 QuadSPI 或八进制 SPI 连接,以获得最大的 ADC 转换吞吐量。处理器数据表建议仅将 FlexSPI 外设用于内存。它可以与 ADC 等其他设备一起使用吗?如果有人已经在这种设计上取得了成功,请告诉我们。 AD7606C-16 数据表: https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606c-16.pdf 另外,为什么 PMIC 和处理器都有 RTC 晶体连接?对于计时来说,一个不就够了吗?是否有任何内部时序要求需要 PMIC 的 RTC 晶体?如果是这样,内部 32k 振荡器不就足够了吗? PMIC 数据表:https://www.nxp.com/docs/en/data-sheet/PCA9450.pdf 谢谢, Sakthimurugan i.MX 8M | i.MX 8M Mini | i.MX 8M Nano PMIC Re: i.MX 8M Plus FlexSPI Peripheral connection with ADC Q1&A. 没有 FlexSPI 也无济于事。AD7606C‑16 未实现 QuadSPI 或 Octal SPI;其串行端口为单位 SPI(RD/SCLK + DOUT),该设备还提供 16 位并行读取路径。i.MX 8M Plus FlexSPI 模块针对存储器设备(或非/与非、HyperBus)进行了优化,虽然可以通过自定义 LUT 序列强制它与某些非内存外设通信,但它不会将 1 位 SPI ADC 转换为四/八进制 SPI,也不是流式传输 ADC 数据的最佳工具 Q2&A. 一个也可以。对实际应用没有任何限制。CLK_32K_OUT 仅适用于外部设备,PCA9450 本身不使用此时钟。当 CLK_32K_OUT 未使用时,可通过将 XTAL_IN(引脚 10)连接至 GND 来移除 R65、QZ1、C156 和 C157。如有必要,可以从 GPIO1_IO00 为外部设备输出 32kHz 时钟。这意味着无论连接到 i.MX8MP 还是 PCA9450,都只需要一个 32.768KHz 晶振。内部 32k 振荡器不够精确
View full article
スタンバイ モードから機能をリセットした後のウェイクアップ ソースの認識。 こんにちは、NXPさん 私はスリープウェイクアップアプリケーションに取り組んでいます。スタンバイウェイクアップ用のウェイクアップスリープ構成を構成しました。 私の質問は、スタンバイ ウェイクアップから機能をリセットした後、ウェイクアップ ソースをどのように知ることができるかということです。 Re: Wakeup Source Recognition after function reset from standby mode. こんにちは@aryandis 、 ウェイクアップ後、WISR/WISR_64 レジスタを読み取って、ウェイクアップの原因となったソースを特定CAN。スタンバイ終了後も値はそのまま保持されるため、スタンバイ RAM に保存したり、高速スタンバイ終了を使用したりする必要はありません。 Mcu_GetResetReason() は、前回のリセットがスタンバイ終了だったか、その他のリセット (HW、SW、WDG など) だったかを返しますが、ウェイクアップ ソース用の API はありません。 レジスタを読み取る場合は、メイン ルーチンがレジスタを保存する前にクリアしないようにし、立ち下がりエッジを使用する場合はパッド保持を有効にする必要があることに注意してください (このコミュニティ投稿を参照してください: Solved: WISR_64 no correct after wakeup from fast standby mode on S32K312 - NXPコミュニティ )。 コミュニティからの低電力の例をCAN参照できます。 S32K3 パワーマネージメント AN とデモ - NXPコミュニティ [RTD400 & 500 MCAL & IP] S32K3 パワーマネージメント AN とデモ - NXPコミュニティ MCAL レイヤーは、ウェイクアップ ソースを報告する EcuM モジュールも提供しますが、RTD パッケージは EcuM のスタブ ファイルのみを提供します。これらは参照用として使用することを目的としており、アプリケーションのニーズに応じて変更/置換できます。 よろしくお願いします、 ジュリアン Re: Wakeup Source Recognition after function reset from standby mode. 私は Autosar スタックを使用しているため、ウェイクアップ ソース ID が必要です。 機能リセット後にスタンバイ ドメインに保存するために WISR/WISR_64 値を構成するにはどうすればよいですか? CANどのように設定すればよいか教えていただけますか。 Re: Wakeup Source Recognition after function reset from standby mode. こんにちは@aryandis 、 はい、これはWkpu_Ip_GetInputState() を呼び出し、対応する WKPU チャネルが設定されている場合は TRUE を返し、フラグをクリアします。 ウェイクアップ (スタンバイ終了) 後、NVIC レジスタはデフォルトにリセットされます (すべてのペリフェラル割り込みが無効になります) が、WKPU レジスタの値と以前の状態は保持されます。したがって、ウェイクアップ後にプラットフォーム関数を呼び出してウェイクアップの割り込みを有効にすると(WKPU_IRQn に NVIC_ ISER を構成する)、プログラムはウェイクアップ割り込み関数にジャンプし、どのウェイクアップ ソースが発生したかを判別できます。 ウェイクアップ後の実行モードでウェイクアップの割り込みを有効にするプラットフォーム関数を呼び出さない場合は、Wkpu_Ip_GetInputState() 関数を呼び出してウェイクアップ ソースを判別できます。 ウェイクアップ後に直接レジスタを読み取るCAN。 よろしくお願いします、 ジュリアン Re: Wakeup Source Recognition after function reset from standby mode. はい、質問が1つあります。  EcuMモジュールを有効にし、EcuM_CheckWakeup()内でIcu_Checkwakeup()を呼び出しました。しかし、ICUウェイクアップイベント情報が発生してもEcuM_CheckWakeup()をトリガーできないという問題があります。(チャネル状態がRUNNINGであるため、EcuM_CheckWakeup()を呼び出すことができないためです。) EcuM_CheckWakeup() をどのようにトリガーすればよいですか? ISR と同じウェイクアップ ピンを作成して、EcuM_CheckWakeup()->Icu_CheckWakeup() を呼び出してビット ステータスを WAKEUP_STATE に設定し、EcuM_SerWakeupEvent() を呼び出すことはできますか? ISR として CAN 場合、どうすれば CAN できますか? Re: Wakeup Source Recognition after function reset from standby mode. こんにちは@aryandis 、 申し訳ありませんが、おっしゃる通りです。Icu_Init() 関数を呼び出すと、プラットフォーム 関数を呼び出す前に割り込みフラグがクリアされ、現在のモードが ICU_NORMAL_MODE に変更されます。SO、それ以前に Icu_Init() を呼び出すことはできません。これはドライバの制限のようです。社内チームにフィードバックをお願いします。 また、Icu_GetInputState() 関数内では、Icu_Init() 関数によって初期化する必要があるグローバル変数を使用します。このような状況では、Wkpu_Ip_GetInputState() 関数を呼び出して WISR または WISR_64 のステータスを確認してクリアするか、直接読み取ることができると思います。 よろしくお願いします、 ジュリアン Re: Wakeup Source Recognition after function reset from standby mode. 同じ問題をデバッグしたところ、ウォーム リセットのスタンバイ ウェイクアップ後の Icu_Init の開始時に ICU_NORMAL_MODE が設定されているため、ICU_CurrentMode が原因で EcuM_Checkwakeup が呼び出されなかったことがわかりました。 ウェイクアップ後に EcuM_Cehckwakeup が呼び出されるSOするにはどうすればいいですか? Re: Wakeup Source Recognition after function reset from standby mode. こんにちは、Julian_AragonM さん。スタンバイウェイクアップ後に Icu_Init() で現在のモードを ICU_NORMAL_MODE に変更することに関して、チームに一度連絡していただけますか。これを回避するにはどうすればよいですか? Re: Wakeup Source Recognition after function reset from standby mode. ウェイクアップ ソースは動作しており、ウェイクアップ後に Icu_ReportEvent が来ますが、Icu_CuurentMode 変数が原因で、Icu_Init() から ICU_NORMAL_MODE に初期化され、EcuM_CheckWakeup が呼び出されません。 EcuM_CheckWakeup は Icu_ReportwakeupAndOverFlow ICU ドライバから呼び出されています。 Icu_ReportwakeupAndOverFlow には、変数 Icu_CuurentMode から ICU_MODE_SLEEP マクロまでの条件チェックがあります。 Re: Wakeup Source Recognition after function reset from standby mode. こんにちは、 @aryandis さん。 Icu NORMAL モードでは、ウェイクアップ ソースの処理が妨げられることはありません。Icu が EcuM チェック ウェイクアップを妨げているコード部分を共有していただけますか?ICU モードに関係なく、Icu_CheckWakeup() が呼び出されることは CAN です。 社内チームからも返答がありました。 1.ご存知のとおり、Icu モジュールは、MCAL レイヤーでウェイクアップ ソースを直接チェックできる機能を提供していません。Icu はウェイクアップ ソース情報を EcuM モジュールに転送し、このモジュールはウェイクアップ ソースをチェックします。RTD ドライバでは、EcuM はスタブ モジュールであり、参照として使用することを目的としており、アプリケーションのニーズに応じて変更/置換できます。 ECU 状態マネージャの仕様は次のとおりです。 2. Icu 構成で、ユーザーが「IcuWkpuStandbyWakeSupport」を有効にすると、Icu_Init() は WISR フラグをクリアしません。 プロジェクトで、Wkpu_Ip レイヤーのウェイクアップ ソースを確認するには、以下のコードを参照します。 Icu_Init() 関数の前に Platform_Init(NULL_PTR); を呼び出すと、何らかの理由で WISR フラグが消去されることがわかりました。SO、この関数を Icu_Init() 関数の後に呼び出しました。 よろしくお願いします、 ジュリアン Re: Wakeup Source Recognition after function reset from standby mode. はい、正解です。そして、 Icu_CheckWakeup () は、マッピングした EcuM_CheckWakeup から呼び出されます。また、EcuM_CheckWakeup は、RTD の Icu_ReportWakeupAndOverflow API から呼び出され、SLEEP_MODE をチェックする条件を持ちます。SLEEP_MODE なしで EcuM_CheckWakeup がどのようにトリガーされるか。 それとも、ISR から EcuM_Checkwakeup を呼び出す必要がありますか? これはRTD 3.0.0のスナップショットです Re: Wakeup Source Recognition after function reset from standby mode. こんにちは@aryandis 、 Icu_CheckWakeup () は、ウェイクアップ後に (通常は EcuM によって) 呼び出され、ICU がソースを検証し、それが有効かどうかを EcuM に通知できるようにするためのパブリック AUTOSAR ICU API です。ドライバがSLEEPモードにあるかどうかには依存しません。 Icu_ReportWakeupAndOverflow () は RTD 内部および非 AUTOSAR であり、割り込みコンテキストからすぐにウェイクアップ (およびオーバーフロー) を報告するロジックをバンドルします。   ウェイクアップ後に、Icu_Init() を NORMAL に設定し (IcuWkpuStandbyWakeupSupport = true で WKPU フラグが保持されることを確認)、マップされた EcuM ウェイクアップ ソースを使用して Icu_CheckWakeup() を呼び出すことをお勧めします。これは、Icu_CurrentMode が NORMAL であっても機能します。   よろしくお願いします、 ジュリアン Re: Wakeup Source Recognition after function reset from standby mode. こんにちは@aryandis 、 私の見解では、選択肢は 2 つあります。 1.スタンバイ終了後、EcuM ステート マシンが RUN に移行する前に、 EcuM_Checkwakeup () を呼び出します。これにより、スタンバイ中にウェイクアップ ソースが処理されます。ウェイクアップ ソースが有効な場合、ECU は RUN 状態に戻ります。 これは、ECU 状態マネージャの仕様に記載されています。 2. ISR コンテキストを介してこれを呼び出すと、ウェイクアップ ソースが直ちに処理されます。 よろしくお願いします、 ジュリアン
View full article
启用硬件加密引擎 你好,先生、 目前我正在使用恩智浦Layerscape 1046ARDB套件,在该套件中,我正在使用名为InnTel IPsec-MB的软件加密设备执行L2FWD-Crypto代码。此外,TLS 也与它并行运行,以进行密钥交换 现在,我想将我的代码移植到工具包中,目的是使用硬件加密引擎。下面是我提出的相关问题。 Q1) 如何启用套件中的硬件加密引擎? 我目前的命令是 meson 安装版本--crossfile config/Arm/arm64-dpaa-linux_gcc-denableDrivers=总线/dpaa、mempool/dpaa、crypto/dpaa_sec 但只有在 "驱动程序 "部分出现了 dma、raw、crypto dpaa,而在 "已启用驱动程序 "部分却没有出现。 如何解决? Q2) DPDK 早期版本中提供了 KNI,而新版本中却没有。那么,为此提供的替代方案是什么呢? Re: Enable Hardware Crypto Engine 你好 我已经在内核模块中启用了 CAAM。现在我遇到的问题是 : Q1) (最后几行输出dmesg | grep -i caam) 设备 caam-keygen 已注册 caam_jr 17300000.jr : 冲洗作业环 2 失败。 探测 17300000.jr 失败,错误 -5。 Q2) 对于 af-xdp,来自eno1端口的流量是这样处理的 sudo ethtool -L eno1 combined 2 # 添加一条流量规则,将指向端口 443 的 TCP 流量引导到 RX 队列 1 sudo ethtool -N eno1 flow-type tcp4 dst-port 443 action 1 ./dpdk_app ... --vdev="net_af_xdp0,iface=eno1,start_queue=1,queue_count=1"... nb_rx = rte_eth_rx_burst(portid、 0, pkts_burst, MAX_PKT_BURST); 在这里,我给出了数据传输的特定端口号。 请标明查询内容。 Re: Enable Hardware Crypto Engine 你好 问题 1) 启用硬件加密引擎:问题似乎出 在你的 meson 版本 命令上。要在 DPDK 中支持 DPAA 加密加速,您需要正确包含 DPAA 网络安全驱动程序。检查是否安装了所需的依赖项和正确的 Linux 头文件。命令中的语法看起来正确,但您可能需要确保版本环境具有所有必要的先决条件。 尝试在命令中添加 DPAA 高效密码学标准驱动程序的完整路径: ``` meson setup 版本 --crossfile config/Arm/arm64_dpaa_linux_gcc -Denable_drivers=总线/dpaa,mempool/dpaa,crypto/dpaa_sec ``` 如果你在启用的驱动程序部分仍然看不到它,请验证 DPAA 加密加速器已正确初始化您的内核以及所需的 DPDK 库已正确安装。 Q2) 关于 KNI(内核网卡接口)替代方案: 在较新的 DPDK 版本中,KNI 已被弃用和移除。推荐的替代方案是: 1. AF_XDP(地址系列 eXpress 数据路径)- 提供高性能数据包处理接口 2. AF_PACKET - 用于数据包处理的标准套接字接口 3. Virtio-user - 适用于用户空间网络应用程序 对于与 L2fwd-crypto 并行运行的 TLS 密钥交换的特定用例,AF_XDP 作为 KNI 替代品可能会提供最佳性能特征。   此致
View full article
I²C 总线概述(日本博客) 0. 目录 目录 什么是I²C? 1.1 历史和规格 1.2 控制器/目标 物理/电气特性 2.1 信号线数量:SDA、SCL 2.2 开漏输出(线与门) 2.3 时钟频率 2.4 连接拓扑 协议 3.1 必需功能和可选功能 3.2 数据传输单元 3.3 公交车状态:换乘的开始和结束 3.4 交易结构 3.5 写入和读取事务 参考资料 1. 什么是 I²C? 1.1 历史和规格 I²C (I²C)总线是一种串行总线规范,由荷兰飞利浦公司(现为恩智浦半导体公司)于 1982 年开发和发布。 I²C 是“集成电路间电路” (Inter Integrated Circuit )的缩写,写作“IIC”,其中重叠的“I”是平方的。 当年开发这条总线的时代,电视和无线电电路尚在使用可变电阻和可变电容器,通过线圈芯的螺丝进行调整和设置。I²C取代了这些,并开始被用作总线,以通过设备中内置的控制器和工厂计算机来控制各项功能并实现其自动化。 为此,原始时钟频率设置为 100 kHz,并且没有预料到会有大量的数据传输。 上世纪 80 年代末我加入飞利浦时,实验室配备了闭路电视(计算机控制电视)和其他设备来演示这一概念。 当前的I²C 规范由恩智浦半导体公司(NXP Semiconductors)管理,该公司原为飞利浦半导体部门。该规范以《 I²C 总线规范及用户手册》 (文档编号 UM10204 )的形式发布,最新版本为 Rev.7。日文版Rev.5 也以《 I²C 总线规范及用户手册》的形式发布。Rev.5 和 Rev.7 的区别在于:图 41 和图 42 的修改、表 5 的新增内容、主/从模式改为控制器/目标模式(与 I3C 类似),以及在第 9 章中新增了“I3C 概述”(详情请参见 Rev.1 中的表 1:修订历史)。由于这些差异不影响 I²C 规范的主要内容,因此日文版可作为参考。 1.2 控制器/目标 I²C 通信始终以主从关系进行。用于指代这些角色的术语分别是控制器和目标[图 1]。 图 1:控制器和目标 该规范允许多个控制器存在于一条 I²C 总线上。 旧规范中使用了“主/从”术语,但现在已改为“控制器/目标”。 2. 物理/电气特性 2.1 信号线数量:SDA、SCL I²C 是一种双线串行总线,一根线用于传输时钟信号,一根线用于传输数据信号。由于数据与时钟信号同步交换,因此它被归类为“同步串行接口”。 数据通信可以双向进行,但由于它通过单条数据线传输,因此无法同时进行,必须交替切换。正因如此,这种通信方式被称为半双工,而不是全双工,后者允许同时进行发送和接收。 时钟信号线和数据信号线分别称为SCL(串行时钟线)和SDA(串行数据线) 。 数据以比特为单位进行传输或接收,并与时钟周期同步。 2.2 开漏输出(线与门) I²C 的一个显著特点是使用一种称为“开漏”的方法来产生信号。 在许多通信应用中,使用一种称为推挽的方法来输出数字信号。推挽是一种当输出高电平信号时,在信号线上输出(推)特定电压,而输出低电平信号时,将信号线拉至地线(拉)的方法[图 2-a]。 开漏输出与“上拉”输出类似,都是输出低电平,但当输出高电平时,电路会进入高阻抗状态。在这种状态下,连接到信号线的上拉电阻可以确保获得指定的电压[图2-b]。 图 2-a:推挽输出 图 2-b:开漏输出 那么,为什么要采用这种输出方法呢? 这是因为 I²C 允许多个设备同时输出到同一信号线。当多个设备处于输出状态时,即使只有一个设备输出低电平,信号也会变为低电平。 这种连接方式,即当所有设备输出高电平时信号为高电平,否则为低电平,称为“线与”[图 3]。 图 3:已接线并连接   I²C 具有名为“时钟拉伸”和“多控制器”的可选功能。这些功能允许连接到同一总线的多个设备同时输出,并使用开漏连接来管理它们的状态。 I²C 高电平电压在规范中没有明确定义。上拉电阻所连接的电源电压 (VDD) 因器件而异。通信时,必须使用连接器件之间通用的电压。在许多情况下,VDD 使用 5V 或 3.3V 等电压,但在 SoC 芯片和其他电压越来越低的器件中,有时会使用 1V 或更低的电压。I²C输入信号电压在 0.3VDD 或更低时设置为低电平,在 0.7VDD 或更高时设置为高电平,因此,当连接电压不同的 I²C 总线时,必须使用“信号电压转换器( VLT :电压电平转换器)”。要转换此信号电压,需要选择一个与 I²C 兼容的器件,并考虑到 I²C 信号是双向开漏信号。 使用 I²C 时,还必须考虑信号的模拟特性。这是指由于漏极开路而导致信号输出发生变化所需的时间。从高电平到低电平的下降时间很快,但从低电平到高的上升时间则可能很慢,具体取决于总线的状态。具体来说,随着连接设备数量的增加或信号线长度的增加,上升时间会变慢。这是因为信号线的电容增大了[图 4]。 每种模式都限制了允许的电容值,这决定了 I²C 时钟速度的上限。 图 4:电容和信号上升时间   2.3 时钟频率 I²C 根据可使用的最大时钟频率定义了“模式”[表 1]。 最基本的模式称为标准模式( Sm ),工作频率低于 100kHz 。 其次是上限为 400kHz 的快速模式( Fm )。大多数控制器和目标设备都支持 Sm 和 Fm 模式。 还有快速模式增强版( Fm+ ),其时钟速度可以低于 1MHz ,适用于数据速率高的应用。 此外,还有一种最高速度可达3.4MHz的高速模式( HS 模式或Hs )。这种高速模式有其特定的协议,用于切换到该速度进行通信,并且需要桥接器才能与其他模式混合通信。目前配备支持此模式控制器的设备并不多。 针对特殊应用,还规定了一种超高速模式。该模式的时钟频率上限为 5MHz,并且通信方向限制为从控制器到目标设备的单向通信,因此与其他模式不兼容。 当使用“I²C”而未提及模式时,通常指的是最常见的标准模式或快速模式,本博客也将基于这些模式。 模式 缩写 最大时钟频率 评论 标准模式 小 100kHz 最受欢迎的模式 一般来说,I²C 指的是最高兼容 400kHz 频率的 Fm 接口。 快速模式 调频 400kHz 第一模式+ FM+ 1MHz 规格参数包括更高的速度、电流消耗和母线容量 许多微控制器中都安装了具有这种功能的控制器。 高速模式 赫斯 3.4MHz 收养案例并不多。 兼容SM和FM。通过协议切换到HS模式。 在总线上混合使用 Sm 和 Fm 设备时需要桥接器。 超快模式 UFm 5MHz 只写加速模式 需配合专用控制器和目标设备使用。与其他 I²C 模式不兼容。 表1:各模式的频率和特征   2.4 连接拓扑 任何连接到 I²C 的设备都连接到两条信号线:SCL 和 SDA 。 这种连接方式称为“多点连接”。每个设备都通过两根导线“悬挂”连接[图5]。可连接的设备数量受“总线容量”的限制。信号线越长,连接的设备越多,总线容量就越大。 通信发生在“控制器”和“目标”之间。所有通信均由控制器发起。 在 I²C 中,控制器和目标之间每次传输都是一对一进行的。虽然可以有意地让多个目标拥有相同的地址,但从控制器的角度来看,只能“与一个地址通信”[图 6]。 控制器通过目标地址指定要通信的设备,并指示数据传输方向。 控制器控制所有传输(开始和结束、指定通信目标和传输方向以及向 SCL 输出时钟)。 也可以在同一条 I²C 总线上连接多个控制器。这可以通过使用名为“多控制器”的可选 I²C 功能来实现。 在这种配置下,一旦一个控制器完成数据传输,另一个控制器即可进行通信。此外,还建立了总线仲裁机制,以应对多个控制器同时开始传输数据的情况。 在多控制器配置中,所有连接的控制器都必须支持这种仲裁机制。 然而,采用多控制器配置的系统并不多见。虽然许多微控制器和其他设备内置的 I²C 控制器支持多控制器,但大多数简单的系统都使用单个控制器。 在本文中,我们将只考虑单个控制器的情况,以便解释 I²C 的基本原理。 图 5 :多点连接   图 6:与单个目标地址的通信 3. 协议 3.1 必需功能和可选功能 该协议决定了数据传输方式。 I²C协议包含必需功能和可选功能。上一节提到的多控制器就是一个可选功能。如前所述,本文将不讨论可选功能,而只解释必需功能。 I²C 的必要功能和可选功能总结在[表 2]中。 表 2:I²C 功能。必需/可选(摘自 I²C 规范(日文版:rev5.0)) I²C 通信通常具有以下结构: 沟通开始 数据传输 沟通结束 作为此原理的应用,也可以在不先结束上一次通信的情况下开始下一次通信(重复开始)。 数据传输部分可以传输 1 字节到多个字节的数据。 传输开始后的第一个字节总是从控制器传输到目标,并指定目标地址和后续数据传输的方向(发送或接收) 。 I²C 规范对第二个字节之后可以传输的字节数没有施加任何特殊限制[图 7]。 在与同一目标通信时,如果需要在发送和接收数据之间切换;或者在与不同目标通信时,需要重新开始通信,并再次指定目标地址和传输方向。 图 7:I²C 通信的基本结构 3.2 数据传输单元 通信的基本单位是 9 位,其中 8 位是数据,后跟 1 位。数据为 8 位,最高有效位 (MSB) 在前。最后一位是确认位,它以与发送数据相反的方向返回,用于确认每次通信。在 I²C 中,数据传输始终以 9 位为单位进行 [图 8]。 数据以每个时钟周期发送或接收一位。 数据变化与时钟同步。SDA 只能在 SCL 为低电平时改变状态(从低电平变为高电平或从高电平变为低电平),并且在 SCL 为高电平时保持低电平或高电平[图 9]。 图 8:每次 8 位数据传输都会返回一个 1 位确认信息。   图 9:SCL 低时 SDA 信号的变化 3.3 公交车状态:换乘的开始和结束 通信的开始和结束分别由开始条件和停止条件通知,它们标志着传输的结束。 如前所述,“只有当 SCL 为低时才允许 SDA 更改”,但此启动/停止条件是一个例外。 当 SCL 为高电平时,如果 SDA 从高电平变为低电平,则为启动条件。类似地,当 SCL 为高电平时,如果 SCL 从低电平变为高电平,则为停止条件[图 10]。 图 10:启动和停止条件 在启动条件发出后,正在进行转账的状态称为“忙碌”;在停止条件发出后,没有正在进行转账的状态称为“空闲”。启动条件在空闲状态下发起。 控制器输出启动/停止条件和 SCL。 起始条件之后的 9 位传输用于指定目标地址和传输方向。 然后数据通过一次或多次连续的 9 位传输进行传输。 除了开始条件和停止条件之外,还定义了“重复开始条件”来分隔数据传输。 启动条件是公交车处于自由状态,但必须先满足停止条件,公交车才能进入自由状态。 如果控制器执行连续传输,则可以省略此停止条件。重复启动条件会直接启动下一次传输,而无需经过自由状态(图 11)。 图 11:重复起始条件   当在前一次传输中生成启动条件而未生成停止条件时,就会出现重复启动条件。重复启动条件在功能上与普通启动条件相同。除非另有明确说明,否则下文中的启动条件均指重复启动条件。 在多控制器环境中,提供重复启动条件是为了允许一个控制器在保持总线所有权的同时,连续执行多次传输操作。这是因为一旦总线空闲,另一个控制器就可以立即启动传输操作。通过保持总线繁忙状态而不使用停止条件,控制器可以维持总线的所有权。 从现在开始,为了方便起见,我们将把从(重复)开始条件到停止条件,或者从(重复)开始条件到下一个重复开始条件的单元称为“事务”。 3.4 交易结构 事务(图 12)总是以起始条件开始。起始条件之后,控制器发送的数据指定目标地址和传输方向。 图 12:基本 I2C 传输示例及波形(写入事务示例)   目标地址是7 位信息,用于指定要与之通信的设备。通信将与匹配此地址的设备进行(I²C 规范将“10 位寻址”定义为一个选项,但由于大多数情况下使用 7 位寻址,因此我们不再赘述)。 在7位地址之后,会发送一个指定传输方向(读/写)的位。如果该位为“0”,则表示从控制器到目标的写传输;如果该位为“1”,则表示从目标到控制器的读传输。 目标地址第七位之后的第九位加上一个读/写位是确认位。该位是目标端返回的低电平信号。 如果控制器输出的目标地址所指定的设备存在,则目标设备会向 SDA 输出低电平作为确认位。此时,控制器输出高电平,因此如果目标设备不存在,SDA 将保持高电平。换句话说,如果目标设备存在,则确认位为低电平;如果目标设备不存在,则确认位为高电平。当此确认位为低电平时,称为ACK (确认);当其为高电平时,称为NACK (不确认)。 输出目标地址和传输方向,如果返回 ACK,则数据传输继续进行。如果目标地址不存在且返回 NACK,则事务到此结束(控制器发出停止条件或重复启动条件)。 如果数据传输方向为写,则接下来的 8 位数据从控制器传输到目标设备,然后目标设备向控制器发送 1 位确认位。 如果是读取传输,控制器会将 SDA 保持高电平,并与 SCL 同步读取目标输出的 8 位数据。此读取传输始终包含一个确认位。控制器会将附加在读取传输数据上的确认位输出。如果读取传输继续进行,则返回 ACK;如果传输要中止,则返回 NACK。 ACK/NACK 对 I²C 通信至关重要。这是因为 ACK 机制允许通信在持续检查对方状态的同时进行。当收到 NACK 时,通信即告终止。 根据 I²C 规范,NACK 发生的条件如下: 目标地址指定的设备在总线上不存在。 目标设备当前正在执行一些处理操作,不处于可以与控制器通信的状态,因此无法发送或接收数据。 目标设备无法理解传输过程中接收到的数据或命令。 传输过程中,目标设备无法接收更多数据字节。 在读取传输过程中,当控制器通知目标设备传输完成时 3.5 写入和读取事务 在单次事务中,数据传输方向是恒定的。因此,如果您向目标设备写入数据,然后再从中读取数据,则会发生连续的事务。 例如,当指定目标设备的寄存器号并从中读取数据时,可以先执行写入传输,然后再执行读取传输。 在这种类型的传输中,某些目标设备需要重复的启动条件来分隔事务,而另一些设备在重复启动条件的情况下可能无法按预期运行。这取决于目标设备的具体规格,因此您必须谨慎操作。 4. 参考资料 I2C 总线规范和用户手册(版本 5.0)日文版) I2C 总线规范和用户手册(版本 7.0)英文版) NXP社区博客:I²C硬件调试 NXP社区博客:I3C:下一代串行总线 NXP社区博客:SPI总线概述 Interface 2024 年 3 月刊(CQ Publishing) :专题文章“从零开始的串行通信 [使用 Pico 进行 UART/I2C/SPI 通信]” 晶体管技术特刊第 161 期“测量、测量、测量电路与技术汇编”附录:“2 线串行接口 I²C 的详细说明”——以上杂志文章摘自该文章。 首次登场: 《晶体管技术》,2014年10月刊(CQ出版社),“基础知识:双线串行接口I²C的详细说明”,第152-176页 Interface Magazine,2024 年 3 月刊(CQ Publishing),“从零开始构建 I²C 和 SPI ②...I²C 通信标准”,第 55-61 页 ← 上述文章的更新和重新组织版本。 在这篇博文中,我摘录、补充并修改了解释通信规范的部分。 变更历史记录: 2025年2月3日:第一版 2025-02-04:“4.在“参考资料”部分添加了博文“I²C 硬件调试”。 2025 年 3 月 5 日:第 2.2 节 开漏输出(有线和嵌入式)更正了参考图号。 2025-11-30:更正了一处拼写错误。 2026-04-03:更正了原始条目。 ========================= 我们目前无法回复此帖子“评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问,请参阅“ NXP技术问题-如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接询问负责人。) I²C 总线用于微控制器/处理器与外围设备之间的通信。 虽然这种串行总线应用非常广泛,但我还是想借此机会简要介绍一下它的起源。 通信标准 界面 日本博客
View full article
什么是电池管理系统(BMS)?(日文博客) 电动汽车普及的原因是什么? 近年来,全球汽车行业正迅速向电动汽车转型。这不仅是一项技术创新,更是一项由多种因素复杂相互作用驱动的重大社会变革,其中包括: 环境因素:为应对全球变暖,需要减少二氧化碳排放。 电动汽车作为一种可持续的交通工具,因其在运行过程中不排放废气而备受关注。 政策支持:欧洲、中国和其他国家正在努力禁止销售汽油动力汽车。 此外,政府还出台了补贴等政策来促进电动汽车的购买,从而加速了电动汽车的普及。 技术进步:电池性能的提高正在改善电动汽车的续航里程和充电时间。 价格等障碍已经降低,使其成为普通消费者的现实选择。 在此背景下,如何安全管理电池并充分利用其便利性(这对电动汽车至关重要)的技术变得越来越重要。 什么是电池? 电池决定了电动汽车的性能、安全性和使用寿命。 电动汽车电池通常由数十到数百个相互连接的电池单元组成。 电池单元的化学结构多种多样,但每个单元的电压通常约为 3V。 出于组装方便等原因,有时会将多个电池单元捆绑在一起形成一个模块,称为电池模块。 电池组是一种将电池模块、BMS(如下所述)、电缆等部件封装在一个外壳中的设备。 电动汽车电池的总电压范围从几百伏到有时超过 1000 伏不等。 什么是电池管理系统(BMS)?它的作用是保护电池。 电池管理系统 (BMS)是一种用于安全高效地使用电池的管理系统。 电池管理系统 (BMS) 是一个持续监控电池状态并检测和控制异常情况的装置,从而防止事故发生,维护安全,并最大限度地提高性能。 鉴于上述原因,对于电动汽车等使用的可充电高压电池,始终需要电池管理系统 (BMS)。 电动汽车等车辆使用的高压电池的电池管理系统 (BMS) 通常由多个模块组成,每个模块对电池都起着至关重要的作用。 在这里,我们将介绍恩智浦设想的三种典型组件。 CMU(细胞监测单元) CMU 是连接到电池模块上的一个单元,用于测量每个电池单元的电压和温度。 从安全角度来看,实时准确掌握每个电池单元的状态至关重要。该系统具有以下功能: 防止过充和过放 细胞平衡以实现所有细胞的有效利用 早期发现异常细胞 CMU 提供准确的数据,以提高电池的整体稳定性和使用寿命。 CMU 也称为电池管理单元、BCC(电池单元控制器)。 BJB(电池接线盒) BJB 是一种测量整个电池组电流和电压的装置,具有保护功能,可在发生异常情况时物理切断电流。 它包含高压继电器、熔断器、电流传感器等元件,具有以下功能: 过电流和短路检测 安全充电和放电控制 发生异常情况时可靠地中断电流 万一出现问题,BJB 可保护电池、整车以及最终车内人员的安全,从而确保安全。 BJB的另一个名称:电池组监控器(仅用于监控功能) 电池管理单元 (BMU) BMU 是控制整个 BMS 并为其做出决策的中央单元。 它整合来自CMU和BJB的数据,并根据上位机的指令分析和控制电池状态。它具有以下功能: 荷电状态 (SOC) 估算 健康状况 (SOH) 评估 与其他单元(例如车辆ECU和充电器)的通信 电池管理单元 (BMU) 及其控制是决定电动汽车行驶效率和安全性的重要因素。 恩智浦的电池管理系统解决方案 随着电动汽车的发展,电池管理系统(BMS)也需要高精度、高可靠性和高安全性。 恩智浦提供符合这些要求的实用BMS参考设计。 基于ETPL的800V电池管理系统(BMS)参考设计 *ETPL:电传输协议链路 功能安全设计符合 ASIL D 标准 可扩展配置,支持高达 800V 的电压 提供的软件驱动程序 以下文件概述了恩智浦在电气化领域所做的努力。 我们希望您能浏览并了解更多关于我们产品及其功能的信息。 恩智浦的电气化解决方案  这些材料对于计划设计电池管理系统的工程师来说是非常有用的解决方案。 =========================== 更改历史记录 2025年8月28日:博客文章 ========================= 我们目前无法回复此帖子“评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问,请参阅“ NXP技术问题-如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接询问负责人。) ​ 以下是电池管理系统(BMS)的概述。 电动汽车普及的原因是什么? 什么是电池? 什么是电池管理系统(BMS)?它的作用是保护电池。 恩智浦的电池管理系统解决方案 如果未来与BMS有业务往来的人能够读到这篇文章,我会很高兴。 (阅读时间:5分钟) 介绍 日本博客
View full article