Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
The KW45 FlexCAN can trigger a receive interrupt and receive the messages sent by itself I am debugging the FlexCAN driver of the KW45 chip and have found that when the receive filter MASK is not configured, the FlexCAN module can trigger its own receive interrupt and receive the messages sent by itself. Is this behavior normal? If it is, what is the underlying reason? For example, modify the flexcan_interrupt_transfer code in the SDK as shown in the attachment.  uart log : ********* FLEXCAN Interrupt EXAMPLE ********* Message format: Standard (11 bit id) Message buffer 0 used for Rx. Message buffer 1 used for Tx. Interrupt Mode: Enabled Operation Mode: TX and RX --> Normal ********************************************* Please select local node as A or B: Note: Node B should start first. Node:A Press any key to trigger one-shot transmission Rx MB ID: 0x321, Rx MB data: 0x0, Time stamp: 60127 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x1, Time stamp: 3624 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x2, Time stamp: 18344 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x3, Time stamp: 56722 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x4, Time stamp: 55297 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x5, Time stamp: 53656 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x6, Time stamp: 30470 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x7, Time stamp: 22438 Press any key to trigger the next transmission! Rx MB ID: 0x321, Rx MB data: 0x8, Time stamp: 1009 Press any key to trigger the next transmission! Re: The KW45 FlexCAN can trigger a receive interrupt and receive the messages sent by itself Hello, I have resolved the issue and need to set:   flexcanConfig.disableSelfReception = TRUE;
View full article
S32K388 と MC33771B SPI BMS: MBDT、コード生成、AI 展開 NXPコミュニティの皆様、こんにちは。 実際のリチウムイオン電池パックをターゲットに、SPI通信を介してS32K388-Q289とFRDM-MC33771B-SPI-EVBを使用した統合BMSを開発しています。調査を進めるうちに、S32K3 シリーズに使用できる BMS 固有のサンプル プロジェクトとリファレンス実装が比較的少ないことに気付きました。そのため、このタイプのアプリケーションに推奨されるワークフローとサポートされているツールチェーンを確認するのは困難でした。 私の目標は、以下の内容を含む完全な組み込み BMS スタックを MCU に実装することです。 セル電圧/温度モニタリング(BCC経由) セルバランス制御 SOC / SOH推定アルゴリズム(ディープラーニングベースのアプローチを含む) MCU上でのリアルタイム操作 可能な場合はモデルベース デザインのワークフロー (そうでない場合は S32DS C プロジェクト) 最初に MATLAB/Simulink Model-Based Design Toolbox (MBDT) を使用する予定ですが、セットアップで完全なサポートが利用できない場合は、S32 Design Studio (S32DS) に進みます。 以下の質問についてご指導いただければ幸いです。 1) S32K3 BMSアプリケーション用のMBDTサポートおよびトレーニング・マテリアル BMS関連の開発(SPIベースのBCC通信、サンプリング/プロセッシング、保護ロジック、リアルタイム監視など)に特化したS32K3シリーズでMBDTを使用するための公式ドキュメント、ユーザーガイド、トレーニングコース、またはアプリケーションノートはありますか? 2) MBDTモデルとディープラーニングモデルの統合とコード生成 Simulink (MBDT) で BMS ロジックを開発し、Deep Learning Toolbox を使用して構築された SOC/SOH モデルを追加すると、次のようになります。 - これらを 1 つの統合 Simulink モデルに組み合わせることはできますか? - はいの場合、Embedded Coder を使用して統合モデルを C コード (またはその他のサポートされている組み込みコード) に自動的に生成し、S32K388 に展開できますか? 3) S32K388におけるリアルタイム推論の実現可能性 (2)のコード生成が実行可能であれば: - 展開されたモデルは、MCU 上のライブ バッテリー データ (電圧/電流/温度) を使用してリアルタイム推論 (SOC/SOH 推定) を実行できますか? - S32K388 には、推奨される制約やベスト プラクティス (固定小数点と浮動小数点、サポートされるレイヤーの種類、モデル サイズの制限、推論のタイミングに関する考慮事項など) はありますか? 4) MBDTにおけるセーフティ制約/保護ロジック セーフティのために、次のような保護ロジックを実装する必要があります。 - 過電圧/低電圧しきい値 - 過熱/低温しきい値 - 障害処理と安全状態の動作 これらの制限と保護ロジックを MBDT/Simulink に直接実装し、生成された組み込みコードに含めることは可能ですか? S32K ターゲットの参考例(BMS またはセーフティロジック)があれば、共有してください。 5) S32K388とFRDM-MC33771B-SPI-EVBおよび代替品との互換性 S32K388-Q289 は、BMS アプリケーション用に SPI 経由で MC33771B と連携するために正式にサポート/推奨されていますか? この組み合わせが推奨されない場合は、S32K3 ベースの BMS 開発用に公式にサポートされている BCC + リファレンス プラットフォーム (SPI または TPL) を提案していただけますか? 6) デバイス上でのトレーニング(オンライン学習)と推論のみのワークフロー 組み込み AI の観点から: - オンデバイス トレーニング (リアルタイムのバッテリー データを使用したオンライン学習) は S32K3 MCU でサポートまたは推奨されていますか? - または、PC でのオフライン トレーニング + MCU での推論のみというアプローチが推奨されますか? オフライントレーニングが推奨される場合、推奨されるワークフローを説明する公式リファレンスはありますか? 7) S32K388におけるAI推論のパフォーマンス/メモリガイダンス S32K3 (特に S32K388) 上で AI 推論を実行するためのベンチマークやガイドラインはありますか? - フラッシュ/RAM使用量の予想 - 典型的な推論レイテンシの範囲 - 最適化アプローチ(固定小数点、量子化、軽量アーキテクチャ) 😎 MBDT + DL 統合が推奨されない場合の推奨代替ワークフロー 完全な統合と自動コード生成が推奨/サポートされていない場合、S32K3 に AI モデルを展開するための推奨ワークフローは何ですか?例えば: - モデルを軽量なC推論コードに手動で変換する - CMSIS-NNのようなアプローチを使用する(該当する場合) - NXPミドルウェア/推奨ライブラリ/サンプル(例:eIQ)の使用 サポートありがとうございます。ドキュメントのリンク、トレーニング リファレンス、SDKs の例、ベスト プラクティスの推奨事項などがあれば、非常に役立ちます。 よろしくお願いいたします。 Re: S32K388 with MC33771B SPI BMS: MBDT, code generation, and AI deployment こんにちは@SonHyunTaek 、 プロジェクトに関する詳細な質問をコミュニティ フォーラムに投稿していただきありがとうございます。以下の回答は MBDT ソフトウェアの観点から提供されていることに注意してください。ハードウェアの観点からは、コンポーネントの組み合わせに関してより良いアプローチがある可能性があります。また、BMS の目標電圧とパック電流検知が必要かどうかを知っておくことも役立ちます。SPI 経由でコネクテッドされた単一の AFE を使用する予定なので、最大 48V の BMS システムをターゲットにしているものと想定します。 ご提案いただいたデバイスの組み合わせに関してですが、ハードウェア レベルでは、S32K3 は MC33771B と完全に互換性があります。しかし、ソフトウェアの観点から見ると、状況はより複雑になります。S32K3 用の MBDT は、MCAL レイヤーの NXP リアルタイム・ドライバ (RTD) 上にコードを生成するように構築されていますが、BMS 用の MBDT は、RTD と互換性のある BMS SDK 上にコードを生成します。BMS SDK には、Simulink からアクセスできるピン、クロック、ペリフェラルの外部構成ツールと、すぐに実行できるサンプルが含まれています。 ご注意ください: - MBDT for BMS 1.2.0 は、S32K388 をサポートしていない MBDT for S32K3 1.4.0 でのみ動作します。 - BMS SDKはRTD 3.0.0とのみ互換性があります。S32K3 1.4.0 の MBDT によって使用されます。当時、S32K388 は入手できませんでした。 - BMS 用 MBDT および S32K3 用 MBDT は、バッテリー ジャンクション ボックス機能を備えたハードウェアデザインで通常使用される MC33774、MC33775、MC33664、MC33665、MC33772C などの新しい AFE 部品のみをサポートします。 これらの制限はソフトウェア パッケージ (RTD および BMS SDK) に起因します。使用する予定の MC33771B には C SDK ドライバーが含まれていますが、S32K3 と MC33771B を接続するためのすぐに実行可能な互換性のある C ドライバーがないため、カスタム コードを使用して手動で MBDT に統合する必要があります。つまり、組み込み SW: MC33771B/MC33772B 用のバッテリー・セルコントローラ ソフトウェア ドライバでは、手動の C コーディングと MBDT への統合が必要です。これを実行する方法 (S32K1 用の MBDT に基づく) を説明した記事は、こちらにあります。 以下であなたの質問に答え、最後にいくつかの解決策を提案します。 1. MBDTのサポートとトレーニング 私たちが提供する最高のリソースは、 MBDT コミュニティページで入手できます。右側には、S32K3 用の MBDT を使用して基本的なタスクを実行する方法を説明した、モデルベース デザイン ツールボックスの初心者向けガイドがあります。さらに、バッテリー・マネジメントシステムについての洞察を提供する BMS ウェビナーもあります。 MathWorks と共同で作成した BMS に関する最新のウェビナーへのリンクは次のとおりです。 NXP S32 デバイス向けバッテリー システム開発の合理化。 2. ディープラーニングモデルの統合 MathWorks とのこれまでのコラボレーションでは、ディープラーニング ベースの充電状態 (SOC) 推定アルゴリズムを Simulink から直接展開し、PIL モードでテストすることに成功しました。はい、Embedded Coder は Simulink モデルから直接ニューラル ネットワークを生成でき、MBDT と組み合わせて S32K3 に展開できます。 関連するウェビナーへのリンクは次のとおりです。 NXP S32K3マイクロコントローラへのディープラーニングベースのSOC推定アルゴリズムの導入 3. S32K388におけるリアルタイム推論の実現可能性 はい、リアルタイム推論は実現可能です。以前の研究では、セル電圧、電流、温度を入力として使用しました。これらの値は実行時に AFE によって測定され、ニューラル ネットワークに提供されます。ベストプラクティスとして、PIL モードでの集中的なテストはパフォーマンスの評価に役立ちます。最適化手法を試して、最適な構成を特定することもできます。 4. セーフティ上の制約 セーフティ要件のロジックを Simulink に実装し、対応するコードを自動的に生成できます。MathWorks は、S32K3 で使用および展開した例を提供しています。 リチウムイオンバッテリー・マネジメントアルゴリズムの設計とテスト 5. S32K388とFRDM-MC33771B-SPI-EVBの互換性および代替品 Simulink からニューラル ネットワーク アプリケーションを直接テストするには、最新バージョンの S32K3 用 MBDT を使用します。これにより、展開の実現可能性を確認し、現時点で利用可能なすべての MCU に対してベンチマーク テストを実行できます。 ハードウェアの観点からは、いくつかのオプションがあります。 a. 提案されたソリューション(S32K358 + MC33771C)を続行する MC33771B ではなく、より新しく、SPI をサポートし、電流測定機能を備えている MC33771C から始めてください。カスタム コードを使用して MC33771C ドライバを Simulink に直接統合し、BMS 1.8.0 用の MBDT を使用できます。 b. サポートされているMCUを使用してSimulinkでBMS用のMBDTを使用する たとえば、セル監視用の MC33774/MC33775 と電流測定用の MC33772C を搭載した S32K358 (すべて SPI 経由)。このセットアップは、MBDT for BMS および MBDT for S32K3 1.4.0 で動作します。ただし、最初にニューラル ネットワークが S32K358 で実行されることをテストします。 c. AFE部品を搭載したS32K3または最新のBMA7318を使用する 注意: このCASE、BMS 用の MBDT を使用して Simulink からコードを展開することは直接サポートされていません。Simulink でアプリケーション ロジックとニューラル ネットワーク C コードを生成し、S32 Design Studio を使用して AFE と手動で統合することもできます。 6. デバイス上でのトレーニングと推論のみのワークフロー これはアプリケーションの要件によって異なります。これまでのアプローチは推論のみで、MATLAB でネットワークをトレーニングし、それを MCU に展開していました。推奨リソース: ディープラーニングを使用したバッテリー状態の推定。続いて、上記のポイント 2 で説明したウェビナーが開催されます。 7. S32K388におけるAI推論のパフォーマンスとメモリに関するガイダンス パフォーマンスはアプリケーションによって異なります。ニューラル ネットワークがすでにトレーニングされている場合は、生成されたコードを S32K3 ファミリの PIL モードでテストし、実行をプロファイルして、S32K388 がニーズを満たしているかどうかを判断します。参考までに、前述の SOC アルゴリズムは、S32K344 および S32K358 で正常にテストされました。 要約すると、Embedded Coder を使用すると、ニューラル ネットワークからコードを生成し、PIL モードでパフォーマンスをテストできます。検証後、生成されたコードを S32 Design Studio にインポートし、必要に応じて S32K388 に展開します。 お役に立てば幸いです。 マリウス
View full article
S32N55: sequence ID in gPTP bridge device when acting as a GM Hi team, I was testing the bridge device behavior in the gPTP example. I use the GrayVIP_1_0_22_0. According to the User Manual, if the bridge does not receive any Sync messages after StartupTimeoutS, it should start operating as a GM. However, I observed that in this situation, the Sequence ID in both Sync and Sync Follow-Up frames remains at 1024 and does not increase. After checking the related code, I found that when the bridge transitions to GM mode, the Sequence ID used for generating Sync messages is taken from the prSyncMachines[prDomain->u8SlaveMachineId].u16SequenceId of the slave port. If the slave port has not received any Sync messages, this value is never updated, which causes the Sequence ID in the Sync messages sent by the master port to remain unchanged. This behavior suggests that the bridge cannot function properly as a GM under this mechanism. Could you please help explain why the bridge is designed to behave this way? BR, Bridget GPTP_STACK Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hello @Bridget,  The team has picked up a case and will provide an answer as soon as possible  Best regards, Radu Re: S32N55: sequence ID in gPTP bridge device when acting as a GM Hi @Bridget, We are working to reproduce the issue and will discuss further steps in the team. I will get back to you. Thanks, Lukas Re: S32N55: sequence ID in gPTP bridge device when acting as a GM @Bridget, As it turns out, this behavior of the gPTP Bridge is intended, and in line with the 802.1as standard. The Bridge is supposed to relay Sequence ID received on master port. If the Grand Master is lost, the Sequence ID indeed stops being updated - this is one of the ways that downstream devices are able to tell when GM is lost. For a Bridge that never had a GM in the first place, the Sequence ID is random per standard. Our interpretation of random is that nothing about the Sequence ID is guaranteed, or should be assumed. A hardcoded 1024 is considered compliant to that (could be any other number). Is the Sequence ID causing issues in your application? As you have surely observed, Endpoints are perfectly capable of synchronizing to the Bridge, regardless of Sequence ID. Apologies for taking so long. Please do let me know if anything is unclear. BR, Lukas
View full article
使用 PN7160 — P2P 与 Type-4 标签模式在两个 Linux 板之间共享 Wi-Fi DPP 凭证? 您好,NXP团队, 我正在使用 PN7160 NFC控制器和恩智浦 Linux NFC 堆栈在两个 Linux 板(联发科 Genio 510 EVK)之间进行 Wi-Fi 接入 : https://github.com/NXPNFCLinux/linux_libnfc-nci 系统设置 Board-1 (M1) 使用 hostapd 充当 Wi-Fi 接入点 (AP) PN7160 支持 NFC Board-2 (M2) 使用 wpa_supplicant 充当 Wi-Fi 站 (STA) PN7160 支持 NFC 目前是 手动配置凭证时,Wi-Fi 接入点/STA 连接正常工作 nfcDemoApp 中的 NFC 读/写和轮询示例正常工作 目标 我想使用以 NFC 作为引导通道的 Wi-Fi DPP(Easy Connect)自动配置从 M1(AP)到 M2(STA)的 Wi-Fi 凭证 ,这 与 Wi-Fi 联盟的入门操作类似。 问题 1.NFC 模式选择 对于两块板之间的 Wi-Fi DPP 凭证配置: 是否应使用NFC 点对点(P2P / LLCP / SNEP)模式? 还是应该在接入点侧使用Type-4 Tag 仿真(NDEF、application/vnd.wfa.wsc 或 DPP URI),由 STA 充当 NFC 读卡器? 从Wi-Fi联盟的参考资料来看,NFC似乎主要用作引导渠道,但我想确认一下在使用 PN7160 时推荐的NFC模式。 2.使用恩智浦 demoapp 使用现有的linux_libnfc-nci demoapp 示例: 能否将Type-4 标签仿真示例扩展到: 在 M1(接入点)上模拟 Wi-Fi 配置标签 向 M2(STA)提供 Wi-Fi 接入数据 对于 Wi-Fi DPP 上载,推荐还是不推荐使用NFC P2P + SNEP? 3.Wi-Fi DPP 集成 一旦在 M2 上接收到 NFC 数据: 是建议的流量: NFC → DPP 引导信息(URI/公钥) 然后使用 wpa_supplicant通过 Wi-Fi 进行 DPP 验证? 恩智浦是否有集成方面的参考示例或指南: PN7160 NFC 栈 Linux wpa_supplicant DPP 命令 可实现AP-STA 自动连接? 摘要 我正在寻求以下方面的指导: Wi-Fi DPP 的正确 NFC 模式(P2P 与 Type-4 标签 如何重复使用或扩展现有的恩智浦演示应用程序 推荐架构,用于在两个 Linux 板之间实现安全、符合 Wi-Fi 联盟标准的接入 如有任何参考、样本流程或最佳实践,将不胜感激。 感谢您的支持。 致以最崇高的敬意, Niranjan Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 感谢您对我们的产品感兴趣。 建议的解决方案是使用我们的 "连接 "标签之一。在您描述的设置中,我们建议在 M1 (AP) 主板上连接 NTAG 5 Link 板。主机在 Tag 中生成要读取的正确的 NDEF 消息,并为安全访问配置所需的凭据。   如果您想使用 SNEP,则需要在双方都安装 NFC 阅读器。这将增加成本和 P2P 的实施,需要额外的指令交换。这还需要额外的符合规范的软件开发工作。   请记住,在接入点端使用 NTAG 5,您需要根据 NDEF 消息和 Type 5 标签内存配置规范的 NFC 论坛规范构建 NDEF 消息。有必要同时购买两种规格。 在 M2 板上,您将需要像 PN7160 这样的 NFC 读取器,它可以读取 NDEF 并与 AP 建立连接。 希望这些信息对您有所帮助。 Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 你好@Fabian_R 谢谢你的澄清。 我知道使用SNEP 需要在双方都安装 NFC 读卡器,这会增加 BOM 成本,而且由于P2P 命令交换和根据 NFC 规范进行额外的软件开发,也会增加复杂性。 不过,对于我们的使用案例,我们希望进一步评估这种方法。 能否请您就基于 SNEP 的解决方案澄清以下几点: 建筑指导 两个 Linux 板都应该在启用 P2P 读取器/启动器模式下运行吗? 一个板应该充当 SNEP 服务器,另一个板充当 SNEP 客户端,还是两者都需要支持这两个角色? 软件堆栈要求 能否使用linux_libnfc-nci 协议栈和演示应用程序(如 SNEP 或 P2P 示例)来实现? 基于 SNEP 的凭据交换是否需要对 NFC 栈进行任何特定的配置更改? 数据交换流程 是否建议通过 SNEP 有效载荷交换Wi-Fi DPP 引导信息(QR URI / 公钥)? 通过 NFC 接收数据后,应用程序是否应该直接在注册者端触发信号 wpa_supplicant DPP 命令? 合规方面的考虑 在这种情况下,基于 SNEP 的 P2P 通信是否需要遵守NFC 论坛的强制合规要求? 有关使用 SNEP 在两个 Linux 主板之间传输 Wi-Fi DPP 凭证的详细分步流程或参考实施指南将对我们评估可行性非常有帮助。 感谢您的支持。 Re: Wi-Fi DPP credential sharing between two Linux boards using PN7160 – P2P vs Type-4 Tag mode? 您好,先生, 我们提供的应用程序接口支持客户端和服务器角色。有关使用和实施的详细信息,请查阅规范(SNEP 和 LLCP)。P2P 的相关函数和实用程序可在 NfcLibrary/NdefLibrary/src/P2P_NDEF.c 中找到。 关于数据交换流问题,可以在Wifi联盟规格文档中找到此信息:连接移交技术规范和Wifi Easy Connect规范(设备配置协议)。 请记住,我们无法提供这些文件的具体内容。请务必购买。
View full article
FS32K144HAT0MMHT用セーフティ周辺ドライバ(SPD)に関するお問い合わせ – 入手状況と無料ソース こんにちは、チームの皆さん FS32K144HAT0MMHT MCU を使用して新しい ISO 26262 (ASIL-B) プロジェクトを開始しており、セーフティ ペリフェラル ドライバ (SPD) がどのように動作するかを理解したいと考えています。 SPD パッケージはどこからダウンロードできますか? また、NXP ソフトウェア ライセンス & サポート ポータルでは、SW32K1-SPD-D のような特定のパッケージ名が必要ですか? SPD は無料ですか、または標準の RTD/SDKs ダウンロードに含まれていますか、それとも別のライセンスが必要ですか? 初期開発で SPD ドライバを研究できるサンプルや無料ソースはありますか? SPD または関連リソースの検索に関するガイダンスがあれば幸いです。 ご回答をお待ちしています。 Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 S32K1 – セーフティ ペリフェラル ドライバ (SPD)には、次のドライバのみが含まれています。 S32K1用拡張MCEMドライバ、バージョン1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*M... 。 ドライバは、無料で入手できる S32K1xx 標準ソフトウェア パッケージに含まれています。 S32K1/S32M24x リアルタイム・ドライバ、ASR R21-11、バージョン 2.0.0 P04 と互換性があります。 ただし、このドライバの機能例は提供されていません。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 この SPD は生産をサポートします。実稼働環境での使用に適しているかどうか確認していただけますか? Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 はい、そうです。リリースノートを参照してください。 このバージョンは RTM (製造準備完了) レベルです。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 ご返答ありがとうございます。 最新の S32 Design Studio IDE をインストールし、リリースノートに記載されているように RTM (Ready to Manufacture) RTD SDK を使用しました。CAN サンプル プロジェクトは、提供された SDK と構成ツールを使用して直接生成されました。 ただし、この設定でも、次のビルド エラーが発生します。 致命的なエラー: Port_Ci_Port_Ip_Types.h:そのようなファイル、又はディレクトリはありません エラー発生場所: ボード/Port_Ci_Port_Ip_Cfg.c:56 #include "Port_Ci_Port_Ip_Types.h" Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 これは互換性の問題のようです。 正しい S32DS IDE バージョンでは、互換性のある RTD と、SPD リリース ノートに指定されている SPD のみをインストールする必要があります。追加の RTD バージョンは存在しない必要があります。複数の RTD バージョンが必要な場合は、個別の IDEs をインストールすることをお勧めします。 追加の質問は SPD とは関係がなくなったため、さらにサポートが必要な場合は新しいThreadを作成してください。 よろしくお願いいたします。 ダニエル
View full article
How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hi, I have the i.MX 8M Mini LPD4-EVK up and running, and I would like to perform power consumption measurements on specific independent power rails, such as VDD_1V8 and NVCC_DRAM_1V1. I have located the corresponding PMIC outputs (BUCK8 and BUCK7) on the schematic, but I noticed that there are no onboard shunt resistors (sense resistors) for these lines. Could you please advise on the best method to measure the current (or power) for these rails? Thanks! Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hello, In the case of i.MX8MM we do not have a board to do the power measurement in each power rail as occurs in other boards such as i.MX 8M Plus Evaluation Kit Enabling Power Measurement. If you need to measure this you need to design a new SOM board to include these shut resistors or maybe you could try to rework the board to add a shunt resistor in a trace. You can use the schematics of the mentioned board as reference to add the resistors and do the measurement. i.MX 8M Plus Power Measurement Board Design Files Best regards. Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Okay, thanks.
View full article
Problem of the CAN sampling point test value being too small for S32K3 Hi, NXP When developing with S32K311, an external crystal oscillator of 16 MHz is selected. When configuring CANFD, the CAN clock source uses the AIPS_PLAT_CLK at 60 MHz. 80% sampling point is configured for the data field, and TDC is enabled. However, the actual measured sampling point in CANOE can only reach 72%. This issue also occurs in tests on other models such as the S32K312 and S32K342. The following is one of our configurations where we set the sampling points and test data. We configured the sampling point to be 76%, but the actual test result was 67%. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong Could you please share your project, i will take time to test it. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi, @Senlent  We have modified multiple configurations. Under the condition that S32K3 is configured to 80%, the best result tested by CANoe is 72% Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong For CAN FD data phase the latest possible sample point must be set in CANoe. Then the VH6501 sends frames and lengthens the individual bits by one tick after each interval. This seems to be a configuration issue with your VH6501. You can try modifying the parameters here to 70%, 76.667%, and 80% and then testing again. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi,@Senlent  We consulted several experienced engineers. They described that there are also problems with the small sampling point test in S32K1 and K3, and this problem may not be strongly related to the MCU.However, the test results vary when different testing instruments are used. When using CANoe for testing, the test results are all on the low side. They suggest that the sampling point configured for S32K3 can be appropriately increased under the actual test requirement of 80%. You can use any NXP demo to conduct a test, and this phenomenon should be reproducible. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong This should still be a testing issue, not caused by the MCU. However, I will spend some time doing some simple tests. I will probably use an oscilloscope to test directly, which should be the most accurate measurement method. Re: Problem of the CAN sampling point test value being too small for S32K3 Hi,@Senlent  If you have more convincing results, please share them with us as well. We used some other instruments for testing, and the obtained sampling points are relatively close to what we expected in the settings. However, for customers, CANoe has a very high level of industry recognition. Best Regards, xianlong Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong It's possible that the client's tests are flawed; please trust your own testing. I will take some time to conduct a few tests, but this isn't a priority for me and may take a few days to get back to you. Re: Problem of the CAN sampling point test value being too small for S32K3 ok Re: Problem of the CAN sampling point test value being too small for S32K3 Hi@wuxianlong I'm sorry, I cannot perform this test. I do not have suitable interference equipment to conduct it, and the test results in the FLEXCAN report already prove that the test passed. I can send you the relevant proof privately. Re: Problem of the CAN sampling point test value being too small for S32K3 Thank you very much.
View full article
mke06128vqh4のuart0 こんにちは、友人の皆さん。私は MKE06Z128VQH4 マイクロコントローラを使用して設計したボードを持っており、その中でいくつかの出力と入力を使用しています。私は KBI 入力を 1 つ、タイマーを 3 つ、カウンターを 1 つ使用しています。SO、問題はありません。すでに設定を行っており、動作しています。 現在、UART0 シリアル ポートに取り組んでおり、USB-TTL シリアル アダプターを PC に接続してデータを受信または送信しています。SDKs ライブラリを使用して情報を送受信することができませんでした。MCUXpresso を使用した私の構成は画像のとおりです。 ピン: 時計には外部水晶12MHZがあります。 FLL にエラーがあるため、FEE オプションをCANません。FBELP を使用して設定を行っています。 UART0 では、割り込み受信および送信ポーリングを使用して構成を行っています。 インストールされている SDK は次のとおりです。 サンプルの SDK があります: これらの例を使用しても、UART0 を動作させることができません。何らかのガイダンスが必要です。UART0 を動作させるために数日間試行しています。 Re: uart0 in mke06128vqh4 こんにちは@Iotelctronic デモ版は変更せずにそのままご利用ください。 私の側でテストしましたが、問題は見つかりませんでした BR アリス Re: uart0 in mke06128vqh4 こんにちは、アリス!ポーリングを使用してデモでテストしましたが、機能しません。 codigo main.c: #include "pin_mux.h" #include "board.h" #include "fsl_uart.h" /******************************************************************************* * Definitions ******************************************************************************/ /* UART instance and clock */ #define DEMO_UART UART1 #define DEMO_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk) /******************************************************************************* * Prototypes ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ uint8_t txbuff[] = "Uart polling example\r\nBoard will send back received characters\r\n"; uint8_t rxbuff[20] = {0}; /******************************************************************************* * Code ******************************************************************************/ /*! * @brief Main function */ int main(void) { uint8_t ch; uart_config_t config; BOARD_InitBootPins(); BOARD_InitBootClocks(); config.baudRate_Bps = 115200U; config.parityMode = kUART_ParityDisabled; config.stopBitCount = kUART_OneStopBit; //config.txFifoWatermark = 0; //config.rxFifoWatermark = 1; config.enableTx = false; config.enableRx = false; // UART_GetDefaultConfig(&config); // config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE; // config.enableTx = true; //config.enableRx = true; UART_Init(DEMO_UART, &config, DEMO_UART_CLK_FREQ); UART_WriteBlocking(DEMO_UART, txbuff, sizeof(txbuff) - 1); while (1) { UART_ReadBlocking(DEMO_UART, &ch, 1); UART_WriteBlocking(DEMO_UART, &ch, 1); } } Re: uart0 in mke06128vqh4 こんにちは@Iotelctronic 1) クロックに関しては、12 MHz 水晶が正常に機能しているかどうかを確認し、構成を確認してください。 2) KE06 は DMA をサポートしていません。 よろしくお願いします。 BR アリス Re: uart0 in mke06128vqh4 こんにちは。問題を見つけました。レジスターを使用していた SDK の例やその他のプロジェクトは機能せず、常に間違ったデータと間違った文字が送信されました。私は外部の 12 MHz 水晶を使用していますが、その水晶では正確に 115200 のボー レートを生成できません。ただし、 12 MHz 水晶をはんだ付けせずに構成を 8 MHz に変更すると、正常に動作します。私の大きな疑問は、構成を 8 MHz に変更しても 12 MHz の水晶を変更しないとなぜ機能するのかということです。私が示しているコードは.freqで行った変更です= 8000000U。これについて説明はありますか?また、MKE06Z128VQH4 マイクロコントローラには UART で使用するための DMA があるかどうかもお聞きしたいです。 /*********************************************************************************************************************** * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file * will be overwritten if the respective MCUXpresso Config Tools is used to update this file. **********************************************************************************************************************/ /* * How to setup clock using clock driver functions: * * 1. call CLOCK_SetSimSafeDivs() to set the system clock dividers in SIM to safe value. * * 2. If external oscillator is used Call CLOCK_SetXtal0Freq() to set XTAL0 frequency based on board settings and * call CLOCK_InitOsc0() to init the OSC. * * 3. Call CLOCK_BootToXxxMode()/CLOCK_SetXxxMode() to set ICS run at the target mode. * * 4. If ICSIRCLK is needed, call CLOCK_SetInternalRefClkConfig() to enable the clock. * * 5. call CLOCK_SetSimConfig() to configure the divider in sim. */ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!GlobalInfo product: Clocks v7.0 processor: MKE06Z128xxx4 package_id: MKE06Z128VLK4 mcu_data: ksdk2_0 processor_version: 9.0.0 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ #include "clock_config.h" /******************************************************************************* * Definitions ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ /* System clock frequency. */ extern uint32_t SystemCoreClock; /******************************************************************************* ************************ BOARD_InitBootClocks function ************************ ******************************************************************************/ void BOARD_InitBootClocks(void) { BOARD_BootClockRUN(); } /******************************************************************************* ********************** Configuration BOARD_BootClockRUN *********************** ******************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!Configuration name: BOARD_BootClockRUN called_from_default_init: true outputs: - {id: Bus_clock.outFreq, value: 20 MHz} - {id: Core_clock.outFreq, value: 40 MHz} - {id: Flash_clock.outFreq, value: 20 MHz} - {id: ICSFF_clock.outFreq, value: 31.25 kHz} - {id: ICSIR_clock.outFreq, value: 37.5 kHz} - {id: LPO_clock.outFreq, value: 1 kHz} - {id: OSCER_clock.outFreq, value: 8 MHz} - {id: Plat_clock.outFreq, value: 40 MHz} - {id: System_clock.outFreq, value: 40 MHz} - {id: Timer_clock.outFreq, value: 20 MHz} settings: - {id: ICSMode, value: FEE} - {id: ICS.BDIV.scale, value: '1', locked: true} - {id: ICS.IREFS.sel, value: ICS.RDIV} - {id: ICS.RDIV.scale, value: '256'} - {id: ICS_C1_IRCLKEN_CFG, value: Enabled} - {id: OSC_CR_OSCEN_CFG, value: Enabled} - {id: OSC_CR_OSC_MODE_CFG, value: ModeOscLowPower} - {id: OSC_CR_RANGE_CFG, value: High} - {id: OSC_CR_RANGE_RDIV_CFG, value: High} - {id: SIM.DIV2.scale, value: '2'} - {id: SIM.DIV3.scale, value: '2', locked: true} sources: - {id: OSC.OSC.outFreq, value: 8 MHz, enabled: true} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /******************************************************************************* * Variables for BOARD_BootClockRUN configuration ******************************************************************************/ const ics_config_t icsConfig_BOARD_BootClockRUN = { .icsMode = kICS_ModeFEE, /* FEE - FLL Engaged External */ .irClkEnableMode = kICS_IrclkEnable, /* ICSIRCLK enabled, ICSIRCLK disabled in STOP mode */ .bDiv = 0x0U, /* Bus clock divider: divided by 1 */ .rDiv = 0x3U, /* FLL external reference clock divider: divided by 256 */ }; const sim_clock_config_t simConfig_BOARD_BootClockRUN = { .outDiv1 = 0x0U, /* DIV1 clock divider: divided by 1 */ .outDiv2 = 0x1U, /* DIV2 clock divider: divided by 2 */ .outDiv3 = 0x1U, /* DIV3 clock divider: divided by 2 */ .busClkPrescaler = 0x0U, /* bus clock optional prescaler */ }; const osc_config_t oscConfig_BOARD_BootClockRUN = { .freq = 8000000U, /* Oscillator frequency: 12000000Hz */ .workMode = kOSC_ModeOscLowPower, /* Oscillator low power */ .enableMode = kOSC_Enable, /* Enable external reference clock, disable external reference clock in STOP mode */ }; /******************************************************************************* * Code for BOARD_BootClockRUN configuration ******************************************************************************/ void BOARD_BootClockRUN(void) { /* Set the system clock dividers in SIM to safe value. */ CLOCK_SetSimSafeDivs(); /* Initializes OSC0 according to board configuration. */ CLOCK_InitOsc0(&oscConfig_BOARD_BootClockRUN); CLOCK_SetXtal0Freq(oscConfig_BOARD_BootClockRUN.freq); /* Set ICS to FEE mode. */ CLOCK_BootToFeeMode(icsConfig_BOARD_BootClockRUN.bDiv, icsConfig_BOARD_BootClockRUN.rDiv); /* Configure the Internal Reference clock (ICSIRCLK). */ CLOCK_SetInternalRefClkConfig(icsConfig_BOARD_BootClockRUN.irClkEnableMode); /* Set the clock configuration in SIM module. */ CLOCK_SetSimConfig(&simConfig_BOARD_BootClockRUN); /* Set SystemCoreClock variable. */ SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK; } Re: uart0 in mke06128vqh4 ありがとう、クロックの問題は水晶のはんだが12MHZではなく8MHZであることです
View full article
OTP mirror register map Subject: Request for PF5020 OTP Mirror Register Map Documentation Hi, We are currently working on communication between the PF5020 PMIC and an NXP controller. During our review of the PF5020 datasheet, we could not find detailed information regarding the OTP mirror register map, including register addresses and pin-level descriptions related to OTP configuration. The output voltages we need are 1.1v,1.8v and3.3v Could you please advise if this information is available in a separate document? This is essential for us to correctly interpret and configure the OTP-related settings in our system. We would appreciate your guidance or any relevant documentation you can share. Thank you in advance! Shivani  Re: OTP mirror register map Hi, Section 16.1 of the PF5020 datasheet provides a complete OTP mirror register map, including: - Register addresses  - Configuration fields such as:    OTP_VSWx for buck output voltages    OTP_VLDOx for LDO output voltages    OTP_SWx_SEQ for power-up sequencing    OTP_SWx_PDGRP for power-down grouping    OTP_SWxILIM for current limit settings    OTP_SWxUV_TH and OTP_SWxOV_TH for UV/OV thresholds The VDDOTP pin determines whether the device loads configuration from: - OTP fuses (when VDDOTP = GND) - Hardwired defaults (when VDDOTP = V1P5D) The TBBEN pin enables Try-Before-Buy (TBB) mode, allowing temporary configuration and testing of OTP settings before committing to fuse programming. Keep in mind that OTP programming is not allowed in production by the customer. Only NXP or authorized partners (lower volume) should perform this. During development you can use the KITPF502xSKTEVM. To configure the PF5020 for 1.1V, 1.8V and 3.3V, you would: - Set OTP_VSWx or OTP_VSWND1 to the appropriate values for 1.1V and 1.8V - Set OTP_VLDO1 or OTP_VSWND1 to 3.3V, depending on current requirements These values are programmable in the OTP mirror registers and can be tested in TBB mode before committing. BRs, Tomas
View full article
SBC FS26 R21-11 5.0.0 の MBDT への統合 こんにちは、 私は NXP Web サイト (MBDT 上の SBC FS26 R21-11 5.0.0) でこれらのドライバを見つけましたが、これを MBDT に統合できるかどうか、またできる場合はその方法を知りたいと思いました。 これらのドライバを含むフォルダーをコピーして RTD パスに貼り付けようとしましたが、S32CT を開いてもドライバを追加できないSO、正しい方法ではないと思います... ありがとうございます サイモン Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT SBC_FS26とMBDTを統合するための解決策は見つかりましたか?現在この件に取り組んでおり、何かアドバイスやご意見をいただければ大変ありがたいです。 Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT プライベートメッセージをご覧ください Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT この問題の解決策は見つかりましたか? 解決策はありますか?あるいは、何か試せるアイデアがあれば教えてください。 MBDT FS26 Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT こんにちは、残念ながら全く違います
View full article
AMF-DES-T2360 - EMI Made Simple: It's All About the Space! Signal integrity, EMI, RFI...They are all the result of how well you manage the Electromagnetic fields in your designs. EM fields live in spaces, not conductors. The material presented focuses on the basic physics of electromagnetic energy, presented in an entertaining and easy-to-understand format with plenty of diagrams. Attendees will discover how understanding the behavior of EM fields can help them to design PCBs that will be more robust and have better EMC performance. This is not rocket science, but an easy-to-understand application of PCB geometry. Signal integrity, EMI, RFI...They are all the result of how well you manage the Electromagnetic fields in your designs. EM fields live in spaces, not conductors. The material presented focuses on the basic physics of electromagnetic energy, presented in an entertaining and easy-to-understand format with plenty of diagrams. Attendees will discover how understanding the behavior of EM fields can help them to design PCBs that will be more robust and have better EMC performance. This is not rocket science, but an easy-to-understand application of PCB geometry.
View full article
Traffic bifurcation using VSP on LS1046ARDB 1. FMan VSP Hardware Overview 2. The usage of Virtual Storage Profiles 3. FMan VSP Driver 4. Traffic bifurcation using VSP on LS1046ARDB
View full article
例 S32R274 Watchdog_example S32DS_1.1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** *詳細な説明: * アプリケーションはFCCUとソフトウェアウォッチドッグを初期化します。SWTタイムアウトの期限が切れると、 ※マイコンはリセットされます。 * * マクロLONG_RESETは、どのリセットが実行されるかを定義します。LONG_RESET が 1 の場合、長い ※リセットを行い、それ以外はショートリセットを行います。 * * ------------------------------------------------------------------------------ *テストHW:S32R274RRUEVB、MPC57xxマザーボード ※MCU:S32R274KAMMM 1N58R * Fsys:PLL0 240MHz * Z4コア120MHz *デバッガ:Lauterbach Trace32 * PeMicroのUSB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、debug_ram、リリースモード) * EVB接続:デフォルト * * ******************************************************************************** <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** *詳細な説明: * アプリケーションはFCCUとソフトウェアウォッチドッグを初期化します。SWTタイムアウトの期限が切れると、 ※マイコンはリセットされます。 * * マクロLONG_RESETは、どのリセットが実行されるかを定義します。LONG_RESET が 1 の場合、長い ※リセットを行い、それ以外はショートリセットを行います。 * * ------------------------------------------------------------------------------ *テストHW:S32R274RRUEVB、MPC57xxマザーボード ※MCU:S32R274KAMMM 1N58R * Fsys:PLL0 240MHz * Z4コア120MHz *デバッガ:Lauterbach Trace32 * PeMicroのUSB-ML-PPCNEXUS ※対象:internal_FLASH(デバッグモード、debug_ram、リリースモード) * EVB接続:デフォルト * * ********************************************************************************
View full article
The LPC804 Programmable Logic Unit (PLU) This document is an introduction to the Programmable Logic Unit (PLU) provided for the LPC804 MCU device. PLU is used to create small combinatorial and/or sequential logic networks including simple state machines. This allows to replace external components like the 74xx series, which are used for the glue logic with the microcontroller and external devices, making simple the PCB and saving design costs. Figure 1. LPC80x MCU families The PLU is comprised of an array of 26 inter-connectable, 5-input Look-up Table (LUT) elements, and 4 flip-flops.  Each LUT element contains a 32-bit truth table (look-up table) register and a 32:1 multiplexer. During operation, the five LUT inputs control the select lines of the multiplexer. This structure allows any desired logical combination of the five LUT inputs. Figure 2. PLU Features The PLU is used to create small combinatorial and/or sequential logic networks including simple state machines. The PLU is comprised of an array of 26 inter-connectable, 5-input Look-up Table (LUT) elements, and 4 flip-flops. Eight primary outputs can be selected using a multiplexer from among all of the LUT outputs and the 4 flip-flops. An external clock to drive the 4 flip-flops must be applied to the PLU_CLKIN pin if a sequential network is implemented. Programmable logic can be used to drive on-chip inputs/triggers through external pin-to-pin connections. A tool suite is provided to facilitate programming of the PLU to implement the logic network described in a Verilog RTL design. Advantages Some advantages of the PLU are: Replace the combinational logic of the 7400 series. State machine design using Flip-flop. Address decoder. Pattern match. Low-power application. PLU works in deep-sleep and power-down mode. Programmable so PLU can be reprogrammed and reused. Seamless connection using SWM and PLU. Pin description There are up to six primary inputs into the PLU module, one clock input, and eight primary outputs. All the inputs are connected directly to the package pins via chip-level I/O multiplexing.  All these pins can be enabled by configuring the relevant SWM register (PINASSIGN_FIXED0). A particular logic network may not require all of the available inputs or outputs. The user can specify which inputs and outputs to use, and which package pins those inputs and outputs will connect to as part of the overall top-level IO configuration. Registers Programming the PLU to implement a particular logic network involves writing to the various Truth Table registers to specify the logic functions to be performed by each of the LUT elements, programming the Input multiplexer registers to select the five inputs presented to each LUT, and programming the Output multiplexer register to select the eight primary outputs from the PLU module. Programming of all of these registers is performed only during initialization. Table 1. PLU registers PLU Shield board with LPCXpresso804 The OM40001 package includes a shield board for use with the LPCXpresso804 board when prototyping programmable logic unit (PLU) designs. The PLU shield provides the following features to assist with this type of development: 5 slide switches to enable 5 possible PLU inputs to be connected to VDD (marked as VCC on the Shield) or GND through a resistor (to set those inputs to a logic 1 or zero). 8 LEDs with jumpers to connect/disconnect possible PLU outputs for visual status indication. Push button option for momentary / edge signal inputs. Low-frequency oscillator with 1024Hz and 8Hz outputs. The PLU shield also includes a test circuit that can be used to implement a simple continuity tester. Several signals from the LPC804 used on the PLU Shield are shared with other functions on the main LPCXpresso804 board. Please review jumper settings on the LPCXpresso804 board carefully before installing the PLU Shield. https://www.nxp.com/docs/en/user-guide/UM11083.pdf  Figure 3. LPCXpresso804 + PLU Shield = PLU demo board   PLU input options On/off switches S1 through S5 connect possible PLU inputs to VDD or GND via a resistor, enabling those inputs to be driven to a known, fixed state. PIO0_8 is connected to a push button (S6) and a 100kohm pull up to VDD; PIO0_8 will be grounded when the button is pressed. Table below shows these connections. Table 2. PLU input on/off switches. A digital oscillator circuit is also included on the Shield, with 1.024kHz and 8Hz outputs available. LPC804 signal PIO0_1 can be connected to these oscillator signals in order to provide a low-speed clock to the flip-flops in the PLU block. The center pin (2) of JP12 connects to PIO0_1, so a jumper can be placed onto JP12 to connect this signal to the required clock (see markings on the Shield silk screen.) An external clock can be provided to the PLU by connecting it to the center pin of JP12. PLU output options LEDs are used to monitor the PLU outputs. Due to the limited number of pins on the chip/board, some of the inputs and outputs are shared. Table 3. PLU shield LEDs. PLU examples You have two options to find a PLU example: Using the SDK for the LPCXpresso804. You can download the SDK for the LPCXpresso804 from Welcome | MCUXpresso SDK Builder The PLU project is a simple demonstration program of the SDK PLU driver. In this example, a number of switches are used act as PLU inputs and LEDs are used to monitor the PLU outputs to demonstrate the configuration and use of the Programmable Logic Unit (PLU). Using the LPC804 Example Code Bundle. Code Bundle, containing source code for drivers, example code and project files. You can download it from LPCXpresso804 board for LPC804 Microcontroller (MCU)|NXP  It is recommended to use the PLU configuration tool. Please check the following links for more details. PLU Tool Direct, LUT-based design: https://www.nxp.com/video/part-2-plu-tool-direct-lut-based-design:Part2-PLU-config-tool-verilog PLU Tool Schematic design: https://www.nxp.com/video/part-3-plu-tool-schematic-design:Part3-PLU-config-tool-schematic PLU Tool Importing Verilog files: https://www.nxp.com/video/part-4-plu-tool-importing-verilog-files:Part4-PLU-config-tool-directlut LPC800 LPCOpen Peripherals
View full article
FS65/45XX CAN short to GND function verify and test Because of sometimes customer test fail on CAN short GND function, below shows the test step and result for verify. So need emphasize that EVB only works on debug mode.  Do not confuse about Debug/Normal mode and INIT/Normal mode in the state machine. You can short CAN on EVB every CAN points to GND, but actual in application customer boards sometimes the distance between CAN points and GND is so long and with more noise on bus line. so please take care of this short function should be meet the spec in datasheet.  ----Test 1: Test under INIT mode, CAN short GND function works well. Short CAN_L to GND, has a flag on CANL_.     We can’t write the CAN_LIN_MODE register, only can read.  After read CAN_LIN_MODE register, we find that CAN works on the normal mode.         ----Test 2: Test under normal mode operation after configure INIT_INT register. Short CANL to GND, the CANL_ flag set ‘1’ ,this CAN short to GND works well, without re-set the CAN_LIN_MODE register, then we read the information that CAN works on normal mode.   Setting the CAN in sleep mode then short CANL to GND,can’t detect the fault bit.   Evaluation Board
View full article
低功耗模式,带 USB 唤醒 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis系列具有丰富的低功耗模式。客户可能会感到困惑,不知道如何从低功耗模式唤醒。 1) 在 VLPR、VLPW 中:NVIC 仍然对中断敏感,因此任何中断都会得到服务。 2)在停止、VLPS 状态下:设备只能通过USB唤醒中断唤醒。 3) 在LLS、VLLSx中:设备将无法从任何 USB 源 唤醒 。 4) LLWU 用于 唤醒 ,因此客户可以从任何可用的 LLWU 唤醒 源 唤醒 。 至于 USB模块,对于USB恢复事件有两种不同的中断。一个异步可以从低功耗模式 唤醒 ,由 USB 线路状态 的 变化触发。另一个是同步的,仅在检测到 K 状态(D+ = 0、D- = 1,表示全速)后 2.5 微秒触发。应用程序负责在需要时转换到低功耗模式,为此,它必须检查USB堆栈报告的设备状态。当在总线中检测到挂起条件时,将触发 SLEEP 中断并且堆栈将其状态更改为挂起;然后应用程序将转换到低功耗模式。当发生此 SLEEP 中断时,异步唤醒中断被启用,并在触发时被禁用(这是模块清除中断所必需的)。在正常情况下,同步恢复中断或复位中断将会随后被触发,导致堆栈状态转换为非挂起状态。然后应用程序就可以知道通信再次处于活动状态,并避免再次进入低功耗模式。
View full article
S32K3 上的 LDREX/STREX/CLREX——似乎在 SRAM 中也能正常工作? 我之前问过一个问题——https://community.nxp.com/t5/S32K/Understanding-Atomics-i-e-STREX-LDREX-on-S32K3/m-p/2356118 ——而回答似乎暗示,即使我仅在单核上使用 LDREX/STREX/CLREX,也无法依赖其行为来防止中断服务程序(ISRs)或中断请求(IRQs)与主线程发生冲突,尤其是当被检查的内存位于 SRAM 中时。 不过经过一些测试,结果似乎与我的预期一致——能否请设计团队确认,LDREX/STREX/CLREX 并不负责解决来自单个内核的访问冲突?我知道这无法阻止DMA与Cortex-M7内核之间的独占访问,但内核自身之间的访问又如何呢? Re: LDREX/STREX/CLREX on S32K3 - seems to work in SRAM? 你好 @kscz, 我也进行了测试,根据测试结果,我重新开启了这项讨论。 一旦有最新消息,我会尽快回复您。 此致, 丹尼尔 Re: LDREX/STREX/CLREX on S32K3 - seems to work in SRAM? 你好@kscz , 我已经确认,SRAM 中的行为与 TCM 中的行为相同。我已经据此更新了之前的回答。谢谢你指出这一点。 BR,丹尼尔
View full article
Flutter 在 IMX93 上的运行 你好 我有一个 IMX93 主板,我想在上面运行一个 Flutter 程序。我在 CPU 使用率方面遇到了很大问题(显示一个每秒刷新一次的时钟的静态画面时,CPU 使用率约为 20%% ;而滚动包含图片的整页内容时,CPU 使用率则超过 90%% )。这主要取决于栅格(在静态屏幕上,每秒约180毫秒)。我正在尝试启用 PxP,但要么是我无法启用,要么是 Flutter 无法使用它进行栅格化。 我看到 Flutter 使用的 API 包括 OpenGL ES、Vulkan 和 Metal,因此我不确定是否可以使用 PXP 来辅助 CPU。  谢谢!
View full article
在基于 NXP 的 SoM(Layerscape SoC)上调用 DDR 在我公司的几个月内,我们将准备好推出新的SoM(建立在恩智浦 LS1028 SoC 之上)。因此,我想向您--更有经验的开发人员--请教一些知识,您是如何进行 DDR 更新的?使用什么工具?如何进行 DDR 初始化?您要执行哪些步骤?关于 DDR 有哪些常见误区?我应该注意什么? Re: DDR bring-up on NXP based SoM (Layerscape SoC) 关于 DDR 验证,请遵循《QCVS_DDR_用户指南》。 成功完成 QCVS 验证后,点击"Generate processor expert code" 的图标,在 \ \Generated_Code\ddr_init1.c,then将优化的计时参数集成到 ATF ddr_init.c 中。   QCVS DDR 是 codewarrior Developer Suite Level 的一个工具。 您还可以从以下链接下载 codewarrior Developer Suite Level Evaluation Edition。 https://www.nxp.com/design/software/development-software/codewarrior-development-tools/codewarrior-network-applications/codewarrior-development-suites-for-networked-applications:CW-DS-NETAPPS 评估版可免费使用,但有时间限制。   调试工具用于连接 LS1028A 客户板和 codewarrior 开发者套件级别,请在以下链接中找到该工具: https://www.nxp.com/design/design-center/development-boards-and-designs/CW_TAP CodeWarrior TAP 高性能探针基础单元,支持以太网和 USB(单独订购提示)。 cwh-ctp-base-he CWH-CTP-CTX10-YE Layerscape 处理器(Coretex 10 引脚)   DDR 布局应遵循 AN5097 AN5097,DDR4 同步动态随机存取存储器(SDRAM) 内存接口的硬件和布局设计注意事项
View full article
RW612 TF-M NS:Flexcomm UART 无功能 - 时钟驱动器使用安全 CLKCTL1 地址 您好, 我发现了一个 Bug,当出现以下情况时,任何 Flexcomm UART 都会完全失效 为启用 TF-M 的 frdm_rw612/rw612/ns 构建。 根本原因:时钟驱动器使用安全 CLKCTL1 地址 (0x50021000) 启用 Flexcomm 时钟时。从 NS 世界中默默地写下这些文字 被忽视了,让外围没有了防护罩。所有 USART 寄存器的读数均为 0x00000000。 解决方法是在 UART 启动前通过 NS 别名手动启用时钟: volatile uint32_t *clkctl1_ns = (volatile uint32_t *)0x40021000UL; clkctl1_ns[0x508/4] = 0x01; clkctl1_ns[0x40/4] = (1UL<< 8); 我已经在 nxp-zephyr GitHub 上提交了一份错误报告: https://github.com/nxp-zephyr/nxp-zephyr/issues/35 有人遇到过这种情况吗?是否正在进行适当的修复? 谢谢! Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,@chofmeister。 请与我们分享您复制这种行为的步骤。我无法通过 MCUXpresso for VS Code 使用 psa_protected_storage 示例来重现这种行为,该示例使用 TF-M 和 UART 控制台,信息正在打印,因此 UART 外设的时钟是正确的。 此外,对于 FRDM-RW612,时钟初始化是在 soc.c 文件的 clock_init 函数中完成的。 Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 感谢您提供的链接。确认一下 - 我运行的是 4.3.0 版来自 nxp-zephyr 下游仓库,那里存在错误。 我阅读了《时钟配置》一文。据我所知,外设 时钟应在 init.c 或 soc.c 中的 board_early_init_hook() 中启用。 查看 frdm_rw612 init.c、我可以看到 Board_early_init_hook() 已在 上实现,但并未启用任何 Flexcomm 时钟。 根本原因特定于 TF-M NS 版本:HAL 时钟函数 (fsl_clock.c)使用安全 CLKCTL1 地址(0x50021000)。在 NS 世界中,对该地址的写入将被静默忽略,从而使 Flexcomm0 完全处于无时钟状态 - 所有 USART 寄存器的读数均为 0x00000000。 我目前的解决方法是在 UART 启动之前,在应用代码中直接写入 CLKCTL1 NS 别名 (0x40021000),这虽然有效,但 显然不是正确的长期解决方案。 根据这篇文章,修复可能属于 init.c 中的 board_early_init_hook() 。在 CONFIG_TRUSTED_EXECUTION_NONSECURE 保护下,使用 NS 别名地址。不过,在尝试公关之前,我想确保这与 团队的方法一致。 这是基于 RW612 的 TF-M NS 版本 的已知差距吗,是否有 建议的修复正在进行中? Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,@chofmeister,希望你一切都好。 我看到您在我们的下游存储库中提交的报告是您在 Zephyr 4.1.0 版本中发现的一个错误、能否请您确认一下,在我们最新的下游版本库(目前为 4.3.0)中是否仍然存在这种行为? 另外,我还建议查看Zephyr 中的时钟配置,因为 Zephyr 时钟管理子系统尚未支持时钟配置和启用。 Re: RW612 TF-M NS: Flexcomm UART non-functional — clock driver uses secure CLKCTL1 address 你好,RomanVR、 感谢您的回复。我可以在 soc.c 中看到时钟启动代码: #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm0), nxp_lpc_usart, okay))&& CONFIG_SERIAL CLOCK_SetFRGClock(&(const clock_frg_clk_config_t){0, kCLOCK_FrgPllDiv, 255, 0}); CLOCK_AttachClk(kFRG_to_FLEXCOMM0); #endif 代码是正确的,但底层 HAL 函数 (CLOCK_AttachClk、CLOCK_SetFRGClock)使用的是安全的 CLKCTL1 地址 (0x50021000)。在 NS 世界中,对该地址的写入会被 默默忽略,从而使 Flexcomm0 处于无时钟状态。所有 USART 寄存器的读数均为 0x00000000。 我还在 nxp-zephyr GitHub 仓库(问题 #35)上提交了一个错误, 贡献者 waqar-tahir 证实了这个问题,并指出这个问题已经在即将发布的 4.4 下游版本中得到解决。 目前,我的解决方法是在 UART 启动之前,在应用代码中直接写入 CLKCTL1 NS 别名 (0x40021000)。 希望这有助于澄清根本原因。
View full article