Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
I.MX8MP Ethernet Camera Hello, Since the i.MX8MP does not support virtual channels, we would like to stream four Ethernet cameras simultaneously, as illustrated in the diagram below (which belongs to a different S32 processor); therefore, our question is whether the i.MX8MP is capable of decoding and streaming four 1080p @ 30 fps Ethernet camera streams at the same time, given that the Reference Manual indicates support for VLAN-tagged frames and AVB, but the VPU provides only a single hardware decoder.   Thanks, Best Regards.         Re: I.MX8MP Ethernet Camera Hello, Yes the iMX8MP could handle that, and the gstreamer is the tool that we use to decode all your streams. Regards
記事全体を表示
Failed to load static DPL with 8x DPDMUX Hi Community, Using dynamic creation of DPDMUXs and DPNIs successfully, and generate the DPL by following commands: 8x ls-addni --fs-entries=8 --num-queues=8 -n source /usr/local/dpdk/dpaa2/dynamic_dpl.sh ... 8x restool dpdmux create 8x restool dprc connect dprc.1 --endpoint1= .n.0/1/2 --endpoint2= / /dpni.k> restool dprc generate-dpl dprc.1 > dpl-8-dpdmux.dts Update the static DPL with dpl-8-dpdmux.dtb (generate by dtc tool) for uboot to initiate MC layout. The error shows as blow: [E, mem_mng_get_phys_mem:655] MAJOR mem. manager memory allocation failed [E, mem_mng_get_phys_mem:658] Required size 0x000040000 alignment 0x000000100 exceeds available memory for partition ID 7 [E, init_bman_bp:399, DPDMUX] ID[6] - dpbp_allocate_buffers(), failed to allocate dpbp buffers [E, init_infrastructure:3750, DPDMUX] swlib_init_bman_bp : -12 [E, dpdmux_init:4487, DPDMUX] init_infrastructure : -12 [E, mem_mng_get_phys_mem:655] MAJOR mem. manager memory allocation failed [E, mem_mng_get_phys_mem:658] Required size 0x000040000 alignment 0x000000100 exceeds available memory for partition ID 7 [E, init_bman_bp:399, DPDMUX] ID[7] - dpbp_allocate_buffers(), failed to allocate dpbp buffers [E, init_infrastructure:3750, DPDMUX] swlib_init_bman_bp : -12 [E, dpdmux_init:4487, DPDMUX] init_infrastructure : -12 [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@6 and dpmac@9 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@6 and dpni@15 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@6 and dpni@7 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@7 and dpmac@10 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@7 and dpni@16 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, resman_is_link_permitted:6375, RESMAN] Object wasn't found [E, linkman_probe_cb:205] No common ancestor - Failed to connect dpdmux@7 and dpni@8 [E, subnode_process:155] Probing module 'connection' return error code -1. Continue dpl processing... [E, dpl_process:527] Error while parsing 'connections'. Skip processing the rest of DPL. [E, main:198] DPL processing failed; continuing...  Is there any limitation on the static DPL to support same layout as dynamic way? QorIQ LS2 Device Re: Failed to load static DPL with 8x DPDMUX Hi yipingwang, Using '--max-dmat-entries' in dynamic creating layout don't change the final dts by 'restool dprc generate-dpl dprc.1'. So, I just give it a try by adding following elements 'mem-size' and 'max-dmat-entries' in .dts. manually: dpdmux@0 {     compatible = "fsl,dpdmux";     options = "DPDMUX_OPT_CLS_MASK_SUPPORT", "DPDMUX_OPT_AUTO_MAX_FRAME_LEN";     method = "DPDMUX_METHOD_CUSTOM";     manip = "DPDMUX_MANIP_NONE";     num_ifs = <0x2>;     mem-size = <0x100>;  // this is manually added by me     max-dmat-entries = <0x8>; // this is manually added by me }; Unfornately this doesn't fix it, the same error message showing from MC debug. Please also check my dpl as enclosed. Re: Failed to load static DPL with 8x DPDMUX Please try whether the following method is possible. When you create DPDMUX, please specify "--max-dmat-entries=8" to reduce the resource allocation. --max-dmat-entries= max entries in DPDMUX address table. Default is 64. If your problem persists, please share your whole console log to create DPDMUX and generate DPL file. In addition, which processor are you using? Re: Failed to load static DPL with 8x DPDMUX Hi, I've managed to fix this issue by correcting the DPL parameter names.
記事全体を表示
FreeMASTER を S32K3、Simulink MBDT、Segger JLink で使用すると問題が発生する こんにちは、 当社では、S32K311 を使用する独自設計のハードウェアを保有しています。 Segger JLink (Ver 7.98d) を使用して、Simulink 自体からターゲットをビルドしてフラッシュすることができました。 データ ストア メモリ変数を監視/変更するための FreeMASTER プロジェクトを作成しました。Segger JLink との通信ウィザードを設定し、接続が成功することを確認しました。 FreeMASTER で「GO」ボタンを押すと、ターゲットがフリーズ状態になるように見えます。たとえば、このモデルでは、Alive LED が点滅していますが、「GO」ボタンを押すと停止します。後で「STOP」を押しても何も変わりません。 電源をリセットすると、プログラムはデフォルトに戻り、変更した変数値も取得されませんでした。 FreeMASTER Config ブロックを使用する必要がありますか (接続タイプは Serial/CAN と記載されていますが)?モデル内で FreeMASTER Config ブロックを使用せずに変数を監視/変更することは可能ですか? 何が足りないのか教えてください。 Re: Running into issues using FreeMASTER with S32K3, Simulink MBDT, Segger JLink こんにちは、 @beginner100さん FreeMASTERプロジェクトで変数を監視するには、 FreeMASTER Configブロックが必須です。現在の進捗状況についてお知らせいただけますか?また、可能であれば、FreeMASTERの設定に関する追加情報もご提供いただけますでしょうか? 最新の S32K3 Toolbox バージョン1.8.0 (NXP Model-Based Design Toolbox for S32K3 バージョン 1.8.0 - 製品リリース発表) をインストールすることもお勧めします。 よろしくお願いいたします。 ドラゴス
記事全体を表示
如何下载芯片的相关资源的文档 例如:S32K3xx_interrupt_map.xlsx Re: 如何下载芯片的相关资源的文档 Hi@PQF 在官网下载数据手册和指导手册。在指导手册的附件中可以找到你要的这些文档。 https://www.nxp.com/products/S32K3
記事全体を表示
STM32Cube IDEからMCUXpresso IDEへ STアプリケーションのポーティング このセクションでは、STM32Cube IDEで開発されたアプリケーションを、NXP MCU用の互換SDKを使用してNXP MCUXpresso IDEに移行するプロセスについて概説します。 STM32Cube IDEに慣れているユーザーの場合、同様の開発環境を維持することで移行が容易になり、学習曲線を緩和できます。この例では、STM32デバイス用に元々開発されたI2Cベースのアプリケーションを、NXP MCU用に再作成し、適応させます。 移行は、必要なI2Cドライバを含む最小限のプロジェクトをMCUXpresso IDEで作成することから始まります。元のSTアプリケーションは、同じボード上のコンポーネント間の通信に2つのI2Cインスタンスを利用します。この機能を再現するには、2組のI2Cピンを初期化する必要があります。さらに、アプリケーションはプッシュボタン入力とLED出力を使用して動作の変化を示すため、MCUxpressoピン構成ツールを使用して対応するGPIOを設定する必要があります。 移行を開始するには、元のSTプロジェクトのメイン・ソース・ファイルと、STの標準ドライバ・セットに含まれていないカスタム・ソース・ファイルを、新しいNXPプロジェクトに組み込む必要があります。 以下の手順は、MCUXpresso IDEでの初期プロジェクトセットアップの概要を示すものです。 [Create a new C/C++ project(新しいC/C++プロジェクトを作成)]を選択します。 ターゲットとなるMCU(例:MCXA156)を選択します。 [Next(次へ)]をクリックします。 [Drivers(ドライバ)]セクションを展開します。 I2Cを選択してください。 [Next(次へ)]をクリックします。 [Finish(完了)]をクリックします。 プロジェクトを作成すると、基本的な「Hello World」のサンプルが含まれます。このテンプレートを開始点として使用できます。メインソースファイルのすべてのコンテンツ(初期マクロ定義を除く)は、アプリケーションロジックを統合するために段階的に置き換えることができ、モジュール式で制御された移行プロセスを可能にします。 次のステップでは、元のSTプロジェクトから新しく作成したMCUXpressoプロジェクトにメインソースファイルを転送します。このプロセス中、標準なSTは含まれ、ドライバ参照は除外されますが、カスタムヘッダーファイルが必要な場合を除きます。この場合、カスタムヘッダは使用されていないため、コアアプリケーションロジックのみが移行されます。 STソース・ファイル内の関数呼び出しの多くは、STM32固有のHAL APIに依存しています。これらの機能は見直され、NXP SDKの同等の機能に体系的に置き換えられます。このアプローチでは、main()ルーチン内の各関数を解析してその目的を理解し、それをNXP環境の対応する実装に置き換えます。   STプロジェクトの簡単の概要: 割込み優先度の設定 複数の割込みが同時に発生した際に優先度レベルを管理するよう、マイクロコントローラの割込みシステムを設定します。 パワー・ペリフェラル・クロックのイネーブルメント パワーマネージメント設定を構成するための前提条件として、パワー(PWR)ペリフェラル・クロックを有効にします。 パワーマネージメントのセットアップ 内部コンポーネント全体のエネルギー効率とパフォーマンスを最適化するために、STM32U5xxマイクロコントローラのパワーマネージメント機能を初期化します。 System Clock Configuration マイクロコントローラのタイミングシステムを設定し、160 MHzの周波数で動作するように構成します。 ペリフェラルの初期化 ペリフェラルのピン構成や機能設定を確立します。このアプリケーションでは、I2C1がフォロワー、I2C3がリーダーとして構成されています。 LED初期化 LEDを低アクティブ状態で開始し、初期状態または通信フィードバックを示すために点灯するように設定します。 GPIO Polling for Button Press GPIO入力ピンの状態を継続的に監視します。ボタンが押されていないと、LEDは速く点滅します。一度押すと、ループは終了し、LEDは点灯したままです。 I2C通信開始 マスター側からI2C通信プロセスを開始し、2つのI2Cインターフェース間のデータ転送を実行します。 NXP SDKではどのように処理されていますか? 割込み優先度の設定 この機能はCMSISコアNVIC機能を通じてサポートされており、直接再利用できます。必要なプリエンプション優先度レベルを確立するには、マクロを定義する必要があります。 クロックと電源の設定 これらの機能は、boardフォルダ内のclock_config.cにあるBOARD_InitBootClocks関数に統合されています。この関数は、NXP MCUのシステムクロックと電源設定の両方を初期化します。 ペリフェラルとピンの初期化 ペリフェラルのセットアップは2つの関数に分かれています。 BOARD_InitBootPins(pin_mux.c内)はI2CとGPIOのピン設定を処理します。 BOARD_InitBootPeripherals(peripherals.c内)はI2Cペリフェラルの初期化とGPIO割込み設定を管理します。 LEDの初期化 GPIOピンは、希望する初期状態に応じて出力を「ハイ」または「ロー」に設定できます。LEDはGPIO_PinWriteを使用して切り替えたり設定したりできます。 ボタン押下のGPIOポーリング この動作は、GPIO_PinReadを使用してボタンの状態を監視するカスタムポーリング関数を使用して再現できます。 I2C通信開始 I2Cマスター通信はLPI2C_MasterStartを使用して開始され、指定されたスレーブデバイスとのデータ転送プロセスが始まります。 Clock Config Toolを使用したクロックの初期化 MCUXpresso IDEには、統合構成ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 システムクロックを設定するには、MCUXpresso IDE内のクロックツールを開きます。 クロック図は選択したMCUでサポートされている構成を示しています。この例では、デバイスの最大コアクロック周波数は96MHzです。これはアプリケーションの要件を満たしているので、デフォルトのクロック設定を変更する必要はありません。 I2Cインスタンスのペリフェラル・クロックを有効にするには、MCUXpresso Config Tools内のクロック構成図に移動します。図をスクロールして利用可能なペリフェラルを見つけ、適切なクロックソースを選択してI2Cモジュールをアクティブにします。 I2C0およびI2C3ペリフェラルのクロックソースを設定するには、クロック構成図の各インスタンスに関連付けられているCLKSELフィールドをダブルクリックします。このセットアップでは、I2C0およびI2C3の両方のクロックソースとしてFRO_HF_DIVを選択します。 次に、クロック構成図で対応するフィールドを選択してクロック分周器を構成します。詳細はインターフェースの右上パネルに表示されます。I2Cペリフェラルへのクロックパスを有効にするには、「Divider clock is running(クロック分周期が実行中)」オプションが選択されていることを確認してください。 この段階で、I2Cペリフェラルクロックは正常に有効化されています。 構成の変更を適用してプロジェクトに統合するには、「コードの更新」をクリックしてください。このアクションにより、対応するソースファイルが生成され、新しい設定がプロジェクト構造に反映されます。 Pins Config Toolを使用したピンの初期化 MCUXpresso IDEには、統合設定ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 I2Cピンの構成を開始するには、MCUXpresso IDEの構成ツールメニューから「Open Pins(ピンを開く)」を選択します。 フィルタ機能を使用して、I2Cインスタンス0と互換性のある使用可能なピンを検索します。ボードの回路図を確認した後、ヘッダー経由でアクセスできるピンP0_16とP0_17が選択されました。LPI2C0:SDAとLPI2C0:SCLを構成オプションから選択して、これらのピンに適切なI2C機能を割り当てます。 I2Cインスタンス3の構成プロセスを繰り返します。ボードの回路図に基づき、P3_27ピンとP3_28ピンがこのインスタンス用に選択されています。ピン構成ツールでLPI2C3:SDAとLPI2C3:SCLを選択し、適切な機能を割り当てます。 ピンの選択が完了すると、各ピンのルーティングと設定を表示する構成テーブルが生成されます。このテーブル内で、ルーティングの詳細を使用して、必要に応じてピンを設定します。I2Cピンに対して、通信中の適切な信号の整合性を確保するために、内部プルアップ抵抗を有効にしてください。 I2Cピンの構成に加えて、入力用と出力用の2つのGPIOピンを設定する必要があります。このボードでは、SW2(P1_7)がボタン入力機能、P3_0がLED出力に割り当てられています。 ピン構成テーブルのルーティング詳細内で、入力GPIOと出力GPIOの両方の動作を定義します。アプリケーション要件に基づいて、LEDをアクティブにするために、出力ピンをロジック・ロー状態(論理0を選択)に初期化する必要があります。入力ピンに対して、ボタンの押下を正確に登録するために、立ち下がりエッジでの割込み検出を有効にします。 構成を確定し、変更をプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。これにより、必要なソースファイルが生成され、選択した設定がプロジェクト構造に適用されます。 Peripheral Config Toolを使用したペリフェラルの初期化 MCUXpresso IDEには統合構成ツールがあり、プロジェクトエクスプローラからアクセスできます。これらのツールを起動するには、インターフェースの右上にあるドロップダウンメニューを使用します。 ペリフェラルの構成を開始するには、MCUXpresso IDE内の構成ツールメニューから「Open Peripherals(ペリフェラルを開く)」を選択します。 このビューでは、各インスタンスのGPIOとI2C設定の初期化に集中してください。続行するには、 「Peripheral Drivers(ペリフェラル・ドライバ)」を選択して、対象デバイスで利用可能なサポートされているドライバのリストにアクセスします。 GPIO1設定 利用可能なペリフェラル・オプションを絞り込むには、ペリフェラル・ドライバ・ビューの検索フィールドに「GPIO」と入力します。関連するオプションが表示されたら、「OK」をクリックしてGPIOの設定を進めます。 ボタン入力に割り当てられているP1_7の割込み機能を有効にするには、まず新しいペリフェラル・ドライバを選択します。フィルタを使用してGPIOを検索し、適切なドライバを選択して、GPIO1割込みハンドラをアクティブ化します。 I2C3リーダー/マスター構成 I2Cペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して利用可能なオプションをフィルタリングします。該当するドライバが表示されたら、アプリケーションに適したドライバを選択し、「OK」をクリックして続行します。 I2C3をマスター(リーダー)デバイスとして設定し、割り込み駆動のデータ転送を有効にします。この設定により、I2C3インスタンスは通信を開始し、割り込みメカニズムを使用してデータ送信を処理できるため、応答性と効率が向上します。 さらに、I2C3ペリフェラルの割込みハンドラを有効にします。適切な優先度レベルを設定し、送信データ・レディ・フラグを有効にして、割り込みによるデータ転送をサポートします。 I2C0フォロワー/スレーブの構成 I2C0フォロワー・ペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して、利用可能なドライバをフィルタリングします。該当するドライバが表示されたら、適切なものを選択し、「OK」をクリックして構成を進めます。 I2C0をスレーブ(フォロワー)デバイスとして構成します。割込み駆動型転送方式を有効にし、通信に使用するスレーブアドレスを指定します。この設定により、I2C0インスタンスはマスタ要求に応答し、割込み経由でデータ受信を処理できるようになります。 さらに、I2C0ペリフェラルの割込みハンドラを有効にします。適切な優先レベルを設定し、割り当てられたフォロワーアドレスを検証し、受信データ・レディ・フラグをアクティブにして、割り込み駆動型のデータ受信をサポートします。 設定を適用してプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。このアクションにより、必要なソースファイルが生成され、すべてのペリフェラルとピンの構成がプロジェクト構造に反映されることを確認します。 Config Toolsが生成したファイル MCUXpresso構成ツールは、選択した設定に基づいて自動的にソースコードを生成し、メインアプリケーションへの統合を効率化します。この生成されたコードには、前のステップで構成されたクロック、ピン、およびペリフェラルの初期化ルーチンが含まれます。生成されたすべてのファイルは、プロジェクト構造内のboardディレクトリ内に整理されます。 board.c NXPの開発ボードを使用してプロジェクトを作成する場合、デフォルト構成には、シリアル端末通信用のデバッグUARTピンの初期化が含まれます。この場合、UART機能は不要であり、board.c内の対応する関数は使用されません。 clock_config.c このファイルには、すべてのシステムクロック設定が含まれています。BOARD_InitBootClocks関数を使用して、クロック周波数と電源モードの設定を初期化します。このアプリケーションでは、システムは96 MHzで動作するように構成されています。 peripherals.c このファイルには、Config Toolsで構成されたペリフェラルの初期化コードが含まれています。この例では、I2CインスタンスとGPIO割込みの両方のセットアップルーチンが含まれています。BOARD_InitPeripherals関数を使用することもできますが、生成されたコードをアプリケーション内の特定の場所に選択的に統合し、必要な実行シーケンスに合わせる方が効果的な場合がよくあります。 pin_mux.c このファイルは、I2CとGPIOの割り当てを含む、アプリケーション用に選択されたすべてのピン構成を定義します。UARTピンはデフォルトで含まれていますが、このプロジェクトでは使用しません。BOARD_InitBootPins機能を使ってピン設定を適用してください。 さらに、元のSTアプリケーションにはキャッシュ初期化機能(mx_ICache_init)が含まれています。NXP SDKでは、キャッシュ構成がスタートアップコード内で処理されます。これは、デバイスフォルダの下にあるSystem_MCU.cのSystemInit関数で確認できます。 初期化関数の置き換え クロックとピンの初期化 NXPベースのプロジェクトの主な機能では、システムクロックとピン構成が、構成ツールによって生成された関数を使用して初期化されます。 BOARD_InitBootClocks BOARD_InitBootPins 周辺機器の初期化 ペリフェラルの初期化コードは、Config Tools によって生成されたperipherals.cから提供されます。コードの最初のブロックは、優先度レベルとNVIC構成を含むGPIO割込みハンドラを設定します。 続いて、I2Cマスタとスレーブのインスタンスが、それぞれの割込みハンドラと優先レベルとともに初期化されます。この段階では、割込みフラグはまだ有効になっていません。割込みフラグは、適切なシーケンスを確保し、早すぎる割込みのトリガを回避するために、データ転送機能において後でアクティブ化されます。 peripherals.cファイルには、スレーブ操作用にLPI2C0ペリフェラルを初期化するためのコードスニペットが含まれています。このコードは、目的の実行フローに合わせて、メイン機能やアプリケーション内の他の適切な場所に選択的に組み込むことができます。 MCUXpresso IDEの構成ツールは必要な初期化コードを効果的に生成しますが、アプリケーション内でこのコードの最も適切な配置するのは開発者の責任です。この決定は、実装される特定のプロトコルやペリフェラルに必要な操作シーケンスに基づいて行う必要があります。 たとえば、I2C通信では、データ転送は割込みによって管理されます。タイミングを考慮せずにLPI2C0_init機能を使用すると、割込みが早期に発生し、トランザクションが不完全になったり、誤って管理されたりする可能性があります。 適切に実行するために、推奨されるシーケンスは以下のとおりです。 ペリフェラルと関連する割り込みハンドラを初期化します。 I2Cトランザクションを開始します。 マスタ操作とスレーブ操作の両方で割込みを有効にします。 このアプリケーションでは、初期化はmain()関数内で実行され、割込みフラグは、正しいタイミングとコントロールを維持するため、後からHandle_I2C_Master関数内で選択的に有効化されます。 アクション関数の置き換え SYSTICKの初期化 SYSTICKタイマは、LED点滅速度の制御など、アプリケーション内での遅延操作をサポートするように構成されています。SYSTICKの初期化に関する詳細な手順は以下のセクションで説明されています。 ボタンポーリングとLED制御 この機能は、ボタン入力を継続的にポーリングするカスタム関数を通じて実装されます。ユーザーの操作を待つ間、LEDが切り替わり、準備完了を示します。ボタンを押すと、LEDが点灯したままになり、I2Cデータ転送フェーズに進んでいることを示します。 I2Cマスタの処理 Handle_I2C_Master関数は、NXP SDKのI2Cペリフェラル用に提供されているドライバAPIを使用して実装されています。この関数はI2Cトランザクションを開始し、通信シーケンスを管理します。 マスターおよびスレーブI2Cインスタンスの割込みハンドラは、ペリフェラルの初期化コードから派生しています。この段階では、アプリケーションが必要とする特定の動作をサポートするために、関連する割込みフラグが選択的にイネーブルされます。 WaitForUserButtonPress 関数 GPIO割り込みハンドラのカスタマイズを開始するには、MCUXpresso IDE内でPeripherals Config Toolを開きます。そこから、自動生成されたGPIO用のIRQハンドラをコピーすることができます。このコードは、アプリケーションの特定の要件に合わせて修正することができます。 ペリフェラルを構成した後、コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたIRQハンドラコードをメインのソースファイル(できれば上部周辺)に貼り付けて、アクセスと整理を容易にします。 修正が加えられ、whileループ内に制御変数が含まれるようになり、アプリケーションはボタンが押されるまで実行を一時停止するようになりました。これにより、プログラムはユーザーの操作後にのみ進行し、アプリケーションの意図したフローに沿うことが保証されます。 WaitForUserButtonPress機能は、GPIOの切り替え操作と書き込み操作を利用してLEDの状態を制御し、遅延メカニズムを使用してポーリングループ中の点滅間隔を管理します。遅延を実装するには、SYSTICKタイマーを初期化し、それに応じて構成します。 さらに、アプリケーション内の時間ベースの操作をサポートするために、対応するSYSTICK割込みハンドラとともにグローバルカウンター変数が導入されました。 main()関数内では、ボタンのポーリングロジックの前にSYSTICKタイマーの初期化を追加する必要があります。これにより、ユーザー入力を待機するループに入る前に、遅延メカニズムが完全に動作することが保証されます。 最終的なWaitForUserButtonPress関数には以下が含まれます。 GPIO操作でLED状態の切り替えと制御を行います。 ボタンの状態を継続的にチェックし、押下イベントが検出されたときにのみ続行するwhileループ。 GPIO_* APIは、NXP GPIOドライバライブラリの一部であり、初期化、ピン制御、割込み処理などのさまざまな操作に使用されます。コード内で強調表示されているマクロ(IDEs内では通常ピンクで表示)は、Config Toolsによって生成され、pin_mux.hで定義されます。 アプリケーションで使用される遅延機能は、前述のカスタムSYSTICKベースの関数によって実装されています。 利用可能なGPIO APIの全セットを見るには、fsl_gpio.hヘッダーファイルを参照してください。このファイルは、ポートとピンレベルの制御、構成、割込み管理など、GPIO操作の包括的なサポートを提供します。 I2C割り込みハンドラのカスタマイズ GPIOハンドラと同様の方法でI2C割込みハンドラをカスタマイズするには、まずMCUXpresso IDEでペリフェラル設定ツールを開きます。次に、I2C0用に自動生成されたIRQハンドラを見つけてコピーします。これは、アプリケーションの特定の要件を満たすように変更できる基本テンプレートとして機能します。 コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたI2C割込みハンドラコードをメインソースファイルに貼り付けます。整理とアクセス性を高めるため、できれば上部に貼り付けてください。 Peripherals Config Toolから自動生成された割り込みハンドラをコピーして、I2C3に対し、同じプロセスを繰り返します。このハンドラはI2C0で採用されている方法と同様に、カスタマイズのベースとして利用できます。 I2C割り込みハンドラの統合 元のSTベースのプロジェクトでは、各I2Cインスタンスは、標準操作用とエラー処理用の2つの割込みハンドラを使用していました。ただし、今回の移行で使用されるNXP MCUは、I2Cインスタンスごとに1つの割込みベクタを提供し、標準状態とエラー状態の両方を処理します。 その結果、元の4つのハンドラの機能を、各I2Cインスタンスに1つずつ、合計2つに統合する必要があります。これには、元の割込みロジックを慎重に確認して、マージされた実装で関連するすべてのフラグと動作が保持されるようにする必要があります。 たとえば、元のプロジェクトのスレーブハンドラは、アドレス一致フラグをチェックし、検出されると、データを受信する準備ができているかどうかを確認します。NXP環境における同等の動作は、統合された割込みハンドラ内で適切なステータスフラグを監視することで実装され、アドレス認識とデータ受信の両方が正しく処理されることを保証します。 スレーブハンドラ I2Cスレーブ割込みハンドラは、マスタデバイスが0x7Eでスレーブにアドレスを指定するときにトリガーされます。このアドレスの一致を検出すると、スレーブは要求を確認し、着信データを受信する準備をします。 ハンドラの2番目の部分はデータ受信プロセスを管理します。マスタから送信された各バイトを処理し、送信終了を示すNACK(Not Acknowledge)状態を監視し、受信したデータを指定されたバッファに保存します。これにより、スレーブは通信シーケンスを正しく処理し、すべてのデータが受信された後にスムーズに転送を終了します。 マスタハンドラ I2Cマスタ割込みハンドラは マスタ転送レディ・フラグを監視し、ペリフェラルが次のバイトのデータを送信する準備ができていることを示します。この状態を検出すると、ハンドラは送信バッファをチェックして、送信すべき追加データが残っているかどうかを判断します。送信の進行状況を追跡するためにカウンタが使用されます。 適切なマスタ送信動作を使用して、ハンドラは次のバイトを送信し、バッファポインタを進めます。最後のバイトが送信されると、ハンドラはSTOP条件を発行して、データ転送シーケンスの完了を通知します。 Handle_I2C_Master関数 Handle_I2C_Master関数は、I2C通信プロセスの開始と管理を担当します。最初に、MasterStartコマンドを発行して、指定されたアドレスのスレーブデバイスとの通信を開始します。スレーブからの確認応答が成功すると、対応する割り込みルーチンを通じてデータ転送が処理されます。 この関数はまた、マスタおよびスレーブの両方のI2Cインスタンスの割込みハンドラを初期化します。前述のように、トランザクションシーケンスを中断させる可能性のある早すぎる割込みトリガを防ぐために、マスタが通信を開始した後に割り込みを有効にすることが重要です。 データ転送が完了し、スレーブが想定されるすべてのバイトを受信すると、関数はLEDを定常状態に設定して終了し、実行の成功とアプリケーションフローの終了を示します。 まとめ MCUXpresso IDEを使用してアプリケーションをSTM32開発環境からNXP MCXプラットフォームに移行するには、構造化された体系的なアプローチが必要です。統合構成ツールを利用し、STM32とNXP SDKコンポーネント間の機能の同等性を理解することで、開発者はパフォーマンスと機能を維持しながらアプリケーションを効果的に移行できます。 このガイドでは、I2Cベースのアプリケーションを複製する際の主要な手順を概説しています。これには、プロジェクトのセットアップ、ペリフェラルの構成、ピンとクロックの初期化、および割込み処理が含まれます。ツールは自動生成されたコードを通じて強力な基盤を提供しますが、信頼性の高い操作を保証するために、初期化とランタイムロジックのシーケンスと統合を慎重に検討する必要があります。 両方の環境を明確に理解し、アプリケーションロジックを慎重に適応させることで、開発者は移行プロセスを合理化し、NXP MCXプラットフォームが提供する機能を最大限に活用できます。
記事全体を表示
无 PHY 的 IMX8MP RGMII 连接 您好, 我正试图在不使用物理层的情况下建立与交换机的以太网 RGMII 连接。根据其他帖子,我将我的设备树配置如下: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec>, <&pinctrl_fec_phy>; phy-mode = "rgmii"; status = "okay"; fixed-link { speed = <1000>; full-duplex; }; }; pinctrl_fec: fecgrp { fsl,pins = , , , , , , , , , , , , , ; }; pinctrl_fec_phy: fecphygrp { fsl,pins = , ; }; ethtool 显示检测到链接:是,ifconfig 显示已分配 IP 地址。但是我无法 ping 到板或从板上执行 ping 操作。您能确认针脚的设置是否正确吗?谢谢。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: IMX8MP RGMII Connection with No PHY 谢谢您的答复,我已经看过那份文件,它帮我走到了今天。不过,我仍然需要进一步的帮助,才能让事情顺利进行。 Re: IMX8MP RGMII Connection with No PHY 请参阅所附文件,该文件对您的情况非常有用 Re: IMX8MP RGMII Connection with No PHY 对于 RGMII,当前电路板支持包默认支持此功能,你可以参考 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-evk.dts#L390
記事全体を表示
組み込みシステム開発におけるベストDevOpsプラクティス 皆さん、 組み込みシステム開発における DevOps の実装に関するベストプラクティスについて議論したいと思いました。組み込みシステムには特有の課題があることは誰もが知っていますが、DevOps の原則を組み合わせ、適切なDevOps ソリューションを活用することで、ワークフローを大幅に改善することができます。 私が役に立つと思ったいくつかの方法を以下に示します。 自動ビルドとCI/CD 組み込みシステムでは、自動ビルド パイプラインの設定が非常に重要です。CI/CD を使用すると、テスト、フラッシュ、実際のデバイスへのデプロイメントを自動化できるため、エラーを早期に検出できます。 ファームウェアとハードウェアのバージョン管理 ファームウェアをソフトウェアのように扱う – バージョン管理に Git または同様のツールをハードウェア抽象化レイヤー (HAL) とともに使用すると、ソフトウェアとハードウェアの両方の依存関係を同期して管理するのに役立ちます。 ハードウェア・イン・ザ・ループ(HIL)による継続的インテグレーション HIL テストを CI パイプラインに統合すると、シミュレートされた環境だけでなく、実際のシナリオに対しても検証できるようになります。これにより、実際のハードウェアでのみ発生する問題を検出できるようになります。 組み込みソフトウェアのコンテナ化 ソフトウェア環境のレプリケーションに Docker または同様のツールを使用すると、組み込みプラットフォームで作業する場合でも、開発、テスト、展開の各フェーズ全体で一貫性が確保されます。 あなたのご意見や、効果的だとわかった追加の実践方法をぜひお聞かせください。組み込み開発ワークフローに DevOps をどのように統合していますか? DSC Re: Best DevOps Practices for Embedded Systems Development 私たちはまさにあなたが提案していることを実行しようとしています。具体的な方法についてのアドバイスはありますか?
記事全体を表示
PN7642 RF Design-in Tips and Tricks Prerequities:  PN7642 design-in recommendations   1// Impedance tuning  PN76 family antenna design guide The target impedance is chosen based on the target application. If full power is required (e.g., POS terminals). The target impedance of 15-17 Ω is recommended. For lower power applications using ULPCD, the higher impedance is typically preferred, 30-50 Ω (symmetrical tuning).   2// Dynamic power control  PN7642 - Basic RF power limitation using DPC   3// H-Field check  There are given limits, especially for the maximum H-field radiated by the reader. Exceeding these limits might lead to destroying the NFC Card/NFC Tag.   The H-Field can be measured with the help of test equipment, as  ISO 10373-6 Test PICC EMVCo 3.0 Test PICC  For indication only, the customers can use "smart" Field Strength Probes as shown below:      4// HF Attenuator value  Turn on the RF Field with the DPC set and enabled from the previous step  Read the CLIF_RXCTRL_STATUS register and check the HF_ATT_VAL as shown below.  The value for the "unloaded" condition with full power shall be approximately 35-45dec.  If the value is out of this range, the customer is required to adjust the Rx resistors to reach this value.  5// Receiver settings  Check the "Power" range and Communication Range with the default settings provided by NXP.  Power Range -> The distance at which the NFC Tag can still generate its answer, but the NFC Reader does not see it  Communication Range -> The distance at which the NFC Tag can still communitate with the NFC Reader  Ideally, Power Range ≈ Communication Range Also, the NFC Reader should not generate any false communications as e.g., "HAL COLLISION ERROR".  The optimisation of the receiver can be done in the following way:  Enter DPC Calibration  Go to the "ARC" menu and "disable" the ARC algorithm This will force the IC to use the RX settings from the following Register/EEPROM SIGPRO_RM_TECH_REG DGRM_RSSI_REG   5.1// SIGPRO_RM_TECH_REG (RM_MF_GAIN parameter) This parameter basically defines the gain of the input amplifier.  Select SIGPRO_RM_TECH_REG  Switch "operation" to EEPROM and choose the required technology  Increase the RM_MF_GAIN to 0x02 (it depends on the setup).     5.2// DGRM_RSSI_REG (DGRM_SIGNAL_DETECT_TH_OVR_VAL parameter) This parameter defines a threshold from which the internal logic starts to decode the incoming signal.  If the threshold is too low or very close to the noise floor, the system can detect the noise as an NFC Communication.  It is therefore,  Threshold + margin > noise floor The best routine is to perform "Signal Detection Threshold" analysis. This can be done with the help of the NFC Cockpit (described in PN7642 design-in recommendations) As a result, the user can obtain the mean value of the "Noise," and suggested "DGRM_SIGNAL_DETECT_TH_OVR_VAL" threshold based on the inserted "Margin."  Maring (m) + Noise mean value (μ) = Threshold  6+16=23 Then this value shall be written in "DGRM_RSSI_REG" EEPROM as shown below.    6// ULPCD Settings  The default values are typically a very good starting point as such. In the first phase, the user needs to take care of the RSSI Threshold value and ULPCD VDDPA.  ULPCD VDDPA should be chosen in such a way that the HF Attenuator value is not 0x00! The typical value for HF Attenuator in ULPCD is around 0x05-0x0B.   6.1// RSSI Threshold evaluation  For a proper RSSI Threshold selection, it is recommended to perform the ULPCD Calibration, e.g., 20 times, and check the "jitter" of the RSSI signal for your device.  If you see that the RSSI value is jittering, e.g., 5 units as shown above. The absolute minimum threshold for this case is 6. Generally, the margin of 2 units is sufficient. So in this case, the optimum threshold will be 7. 
記事全体を表示
imx95 verdin-evk mlan/moal サポート こんにちは、リストの皆さん 次のボードの Wi-Fi/Bluetooth をサポートするために、Linux-imx カーネルと mwifiex コンポーネントのタグlf-6.6.3-1.0.0 を使用しています。 8<-- U-Boot SPL 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) SOC: 0xa1009500 LC: 0x40010 SYS ブート理由: por、発生元: -1、エラー: -1 SYS シャットダウン理由: por、発生元: -1、エラー: -1 DDRMIXがパワーアップしました 通常のブート MMC1から起動しようとしています プライマリセットが選択されました MMC/SD 0xacc00からイメージをロードする お知らせ: BL31: v2.8(リリース):android-14.0.0-imx95-demo-1-g8dbe28631 通知: BL31: 構築日時: 2024年1月22日 17:57:56 U-Boot 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) CPU: i.MX95 rev1.1(1800MHz) CPU: オートモーティブ温度グレード (-40℃~125℃)、22℃ LM ブート理由: por、origin: -1、errid: -1 LM シャットダウン理由: por、発生元: -1、エラー: -1 モデル: Toradex i.MX95 19X19 TITAN EVK [..] -->8 私はimx95-19x19-titan.dtbを使用していますが、この dtb にノードがなくても Wi-Fi がどのようにサポートされるのか疑問に思っています。この dtb を逆コンパイルすると、Bluetooth 用のノードが 1 つあります (動作していません)。 8<-- [..] シリアル番号@42590000 { 互換性 = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart"; <0x42590000 0x1000> レジスタ<0x00 0x42 0x04> =; 割り込み<0x11 0x90> =; クロック =; クロック名 = "ipg"; dmas<0x27 0x16 0x00 0x01 0x27 0x15 0x00 0x00> =; dma-names = "rx", "tx"; ステータス = "正常"; pinctrl-names = "デフォルト"; ピンコントロール-0 =<0x2e> �; ファンドル =<0xcf> �; ブルートゥース { 互換性 = "nxp、88w8987-bt"; fw-init-baudrate<0x2dc6c0> =; }; }; [..] -->8 しかし、Wi-Fi のノードがありません。 どうすれば正常に動作するのでしょうか? モジュール mlan と moal をロードすると「正常」になりますが、新しいネットワーク インターフェースがありません。 8<-- root@target-imx95-verdin-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [ 1451.671079] mlan: ツリー外のモジュールをロードするとカーネルが汚染されます。 [ 1451.705854] wlan: MWLANドライバを読み込んでいます [ 1451.709988] wlan: バス ドライバに登録... [ 1451.714385] wlan: バスドライバへの登録が完了しました [ 1451.718855] wlan: ドライバが正常にロードされました -->8 何か手がかりはありますか? ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは@ebio 、 ご反応いただきありがとうございます。 toradex (git://git.toradex.com/linux-toradex.git)からカーネルリポジトリを取得します。ブランチtoradex_6.6-2.2.x-imxを選択し、カーネルをビルドします。 imx カーネル リポジトリとは対照的に、「wifi」を含む dtb ファイル名がいくつかあります。 8<-- % arch/arm64/boot/dts/freescale -iname "imx95*wifi*.dtb" を検索 arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-yavia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-yavia.dtb -->8 ご想像のとおり、Toradexから必要なものを抽出し、NXPカーネルリポジトリ(タグ: lf-6.6.3-1.0.0)のDTBを適応させようとしています。😞 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts インデックス ccb88efde3c1..859183be58dc 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts @@ -189,6 +189,20 @@ reg_usdhc2_vmmc: レギュレータ-usdhc2 { アクティブハイを有効にする; }; + /* Wi-Fi を追加 */ + reg_wifi_en: レギュレーター Wifi-en { + 互換 = 「レギュレータ固定」; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pwr_en>; + /* PMIC_EN_WIFI */ + gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; + アクティブハイを有効にする; + レギュレータ最大マイクロボルト = <3300000>; + レギュレータ最小マイクロボルト = <3300000>; + レギュレータ名 = "PDn_MAYA-W260"; + 起動遅延時間 = <2000>; + }; + reg_pcie0: レギュレータ-pcie { compatible = "レギュレータ固定"; レギュレータ名 = "PCIE_WLAN_EN"; @@ -676,6 +690,19 @@ &usdhc2 { ステータス = "正常"; }; +/* Wi-Fiサポートを追加 */ +/* モジュール内 Wi-Fi */ +&usdhc3 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + ピンctrl-0 = <&pinctrl_usdhc3>; + ピンctrl-1 = <&pinctrl_usdhc3>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + 電源を停止したままにします。 + 取り外し不可。 + vmmc-supply = <&reg_wifi_en>; + ステータス = "正常"; +}; + &enetc_port0 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc0>; @@ -1142,6 +1169,32 @@ IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e >; }; + + + /* WB SKU ではモジュール内 Wi-Fi、それ以外の場合はモジュール固有の SDIO */ + pinctrl_usdhc3: usdhc3grp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA0 */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + ; /* SD3_DATA3 */ + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + , /* SD3_DATA3 */ + ; /* SD3_DATA4 */ + }; + + pinctrl_wifi_pwr_en: wifipwrengrp { + /* PMIC_EN_WIFI */ + fsl、ピン = ; + }; + }; &vpuctrl { -->8 ご想像のとおり、動作しません。 nxp カーネル タグ 6.6.3-1.0.0 では、なぜ nxp は dtb を提供しないのでしょうか? ドキュメントhttps://www.nxp.com/docs/en/user-guide/UG10163.pdfに驚きました第11.1章/11.3章wifi/bluetooth カーネル モジュールをロードする方法を説明します。このドキュメントはカーネルタグLF6.12.34_2.1.0に基づいていることを知っていますしかし、同じハードウェア サポートが提供されると期待できます。 また、カーネルと imx95-verdin-wifi-dev.dtb の起動を試みましたが、scmi の非互換性のため失敗しました。 この問題を解決するのに NXP についてが適切な会社なのか、それとも Toradex の方が優れているのか教えてください。 ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、 Linux カーネル タグ lf-6.6.3-1.0.0 を使用する i.MX95 プラットフォームの場合、88w8987 モジュールの WiFi サポートには適切なデバイス ツリー構成が必要です。デバイス ツリーには Bluetooth ノードがありますが、WiFi ノードがないためインターフェースが表示されません。 WiFi では、88w8987 モジュールと適切にインターフェースするために、デバイス ツリー内に SDIO ノードが必要です。mlan および moal モジュールをロードすると、ログに「ドライバが正常にロードされました」と表示されるため正常にロードされますが、適切なデバイス ツリー構成がないとハードウェアを検出できないため、ネットワーク インターフェースを作成できません。 1. デバイスツリーファイル(imx95-19x19-titan.dtb)にSDIOノードを追加する必要があります。88w8987 モジュールの WiFi コンポーネントを参照します。 2. ノードには通常、次のものが含まれます。 - SDIOコントローラの互換文字列 - 移動できないプロパティ - システムのサスペンド中も電源をオンにしたままにする - WiFi固有の設定 3. WiFi ノードと Bluetooth ノードの両方を含む i.MX8MM EVK など、88w8987 をサポートする他の i.MX ボードの既存の実装を参照します。 Toradex ボードを使用している場合は、i.MX95 モジュールで WiFi を有効にするために推奨されている特定の実装の詳細については、Toradex のドキュメントも確認することをお勧めします。 よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、リストの皆さん 自分自身に答えています^^。 linux-imx 用のタグlf-6.6.3-1.0.0で WiFi を作成するには、次の手順に従います。 コミット483162118e93に従って、ファイルarch/arm64/boot/dts/freescale/imx95-19x19-titan.dtsを変更します。 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts インデックス 38f985d5f87c..3c0a2708114e 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts @@ -18,6 +18,18 @@ ダミーレジスタ: ダミーレジスタ { レギュレータ最小マイクロボルト = <3300000>; レギュレータ最大マイクロボルト = <3300000>; }; + + usdhc3_pwrseq: usdhc3_pwrseq { + 互換性 = "mmc-pwrseq-simple"; + リセットgpio = <&i2c7_pcal6524_23 11 GPIO_ACTIVE_HIGH>; + }; + + /delete-node/ reg_serdes_stby; + /delete-node/ レギュレータ MAC スタンバイ; + /delete-node/ reg_m2_pwr; + /delete-node/ reg_slot_pwr; + /delete-node/ レギュレータ-m2-pwr; + /delete-node/ レギュレータスロット電源; }; &reg_can1_stby { @@ -48,11 +60,40 @@ &reg_aqr_en { gpio = <&i2c7_pcal6524_23 21 GPIO_ACTIVE_HIGH>; }; +&reg_pcie0 { + /delete-property/ vin-supply; + gpio = <&i2c7_pcal6524_23 18 GPIO_ACTIVE_HIGH>; +}; + +&pcie0 { + リセットgpio = <&i2c7_pcal6524_23 17 GPIO_ACTIVE_LOW>; +}; + +&pcie1 { + /delete-property/ vpcie-supply; + リセットgpio = <&i2c7_pcal6524_23 16 GPIO_ACTIVE_LOW>; +}; + +&pcie1_ep { + /delete-property/ vpcie-supply; +}; + &reg_serdes_en { vin-supply = <&dummy_reg>; gpio = <&gpio4 28 GPIO_ACTIVE_LOW>; }; +&usdhc3 { + pinctrl-names = "default"; + ピンctrl-0 = <&pinctrl_usdhc3>; + mmc-pwrseq = <&usdhc3_pwrseq>; + vmmc-電源 = <&reg_pcie0>; + バス幅 = <4>; + 電源を停止したままにします。 + 取り外し不可。 + ステータス = "正常"; +}; + &enetc_port1 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc1>; @@ -161,4 +202,15 @@ pinctrl_pwm_3_dsi_hpd_gpio: dsihpdgrp { IMX95_PAD_GPIO_IO12__GPIO2_IO_BIT12 0x31e >; }; + + pinctrl_usdhc3: usdhc3grp { + fsl、ピン = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; -->8 リポジトリhttps://github.com/nxp-imx/mwifiex/からドライバをコンパイルします。タグ lf-6.6.3-1.0.0で、 mlan.ko moal.koをターゲットディレクトリ /usr/lib/modules/6.6.3-gccf0a99701a7/updates/ にコピーします。 https://github.com/nxp-imx/imx-firmware.gitからタグ lf-6.6.3-1.0.0のファームウェアを取得し、 sduart_nw61x_v1.bin.se をターゲットディレクトリ /lib/firmware/nxp/ にコピーします。 ターゲットにモジュールをロードするには 8<-- root@imx95-19x19-lpddr5-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [..] [ 2690.237289] NXP 802.11 アダプタ uap0 を登録 [ 2690.250018] NXP 802.11 アダプタ wfd0 を登録 [ 2690.254421] wlan: バージョン = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92)-dbg [ 2690.267643] wlan: バスドライバへの登録が完了しました [ 2690.272323] wlan: ドライバが正常にロードされました [..] --->8 新しいネットワーク インターフェースmlan0、uap0、wfd0が作成されます。 チケットを閉じることができます。 これが役に立つことを願います。 よろしくお願いします。
記事全体を表示
AHBによるフラッシュ書き込みアクセス こんにちは。mimxrt1050 コントローラと NOR フラッシュ QSPI でフラッシュ書き込みアクセスがサポートされているかどうかを知りたいです。これは HyperFlash でのみ利用可能であると読みましたが、確認したいと思います。 よろしくお願いします。 ブートROM|ブート|フラッシュ コアとメモリ Re: Flash write access with AHB こんにちは、Sam。現在、IP 操作は動作していますが、NOR フラッシュ QSPI は AHB を使用したフラッシュ書き込みをサポートできますか? Re: Flash write access with AHB @vanessa_dis MIMXRT1050 の FlexSPI コントローラは、QSPI NOR フラッシュの読み取り、書き込み、消去操作を完全にサポートしています。EVK ボードで使用するには、デフォルトの HyperFlash チップからスイッチするためのハードウェアの変更のみが必要です。 https://www.nxp.com/docs/en/application-note/AN12108.pdfQSPIフラッシュからのブートを有効にする方法 Re: Flash write access with AHB こんにちは、 私はAHBアドバンストハイパフォーマンスバスを恐れています Re: Flash write access with AHB @vanessa_dis あなたの言いたいことは分かりました。 はい、i.MX RT1050 および RT1060 シリーズの FlexSPI コントローラは、AHB バスを使用した外部 QSPI NOR フラッシュへの書き込みアクセスを完全にサポートしています。この機能は HyperFlash に限定されません。 FlexSPIコントローラは、シリアルNORフラッシュ(QSPIをカバー)、HyperFlash、HyperRAMなど、さまざまな外部メモリタイプをサポートする柔軟なアーキテクチャで設計されています。 。コントローラは、サポートされているこれらのデバイスに対して、AHBバスを介してメモリマップされた読み取りおよび書き込みアクセスを提供します。 。 https://www.nxp.com/docs/en/nxp/application-notes/AN12239.pdf Re: Flash write access with AHB HAB(ハイアシュアランスブーツ)の詳細をお問い合わせいただきましたか? https://spsdk.readthedocs.io/en/stable/images/hab.html 安全なアクセスで以下の AN を参照してください (申し訳ありませんが、直接送信することはできません。アクセスを申請するか、地元の営業/FAE にお問い合わせください)。 AN12681 i.MX RT10xxでHABセキュアブートを使用する方法 [AN979510]
記事全体を表示
无法安装S32K3xx开发包和FreeMASTER串行通信驱动程序版本1.3.0 我已经收到了S32K3X4EVB-T172。 问题 1 :当我尝试安装 S32DS 3.5.9 时,我无法通过SW32_S32DS_3.5.9_D2312.zip安装S32K3xx 开发包,仅显示S32 Design Studio 平台包和S32 Design Studio 平台工具包。 2.获取软件:2.2 安装S32K3xx开发包 打开关于 S32 平台的 S32 设计工作室对话框(菜单 → 帮助 → 关于 S32 平台的 S32 设计工作室)显示以下内容: 面向 S32 平台的 S32 设计工作室 版本:3.5 版本号:231219(更新 9) 问题 2 :我已经在步骤“2.4获取运行时调试工具”,但我无法在S32DS 扩展和更新对话框(菜单 → 帮助 → S32DS 扩展和更新)上安装“FreeMASTER 串行通信驱动程序版本 1.3.0”。 错误信息如下: 操作详情 正在安装的软件:com.nxp.s32ds.s32k3.sdk.freemaster.feature.feature.group 1.3.0.202312191400缺少要求:com.nxp.s32ds.s32k3.sdk.freemaster.feature.feature.group 1.3.0.202312191400 需要“org.eclipse.equinox.p2.iu;com.nxp.s32ds.s32k3.dev.feature.feature.group 1.0.0”但找不到。 安装详情: 软件包:适用于 Arm 嵌入式处理器 12.1 Build 1702 的 GDB 客户端;版本:1702;构建 ID:202309251304 软件包:S32 Design Studio 平台软件包;版本:3.5.9;版本号:202312191958 软件包:S32K3 RTD AUTOSAR R21-11 版本 3.0.0;版本:3.0.0;版本号:202303311831 软件包:S32K3.P01 RTD AUTOSAR R21-11 版本 3.0.0;版本:3.0.0;版本号:202304031555 软件包:GNU ARM PEMicro 接口调试支持;版本:5.1.7;版本号:202112141853 软件包:S32 Design Studio 平台工具包;版本:3.5.9;版本号:202312191958 软件包:NXP GCC for Arm Embedded Processors Build 1620;版本:1620;版本号:202005201521 软件包:S32 Design Studio Debugger Core;版本:3.5.9;版本号:202312191723 回复:无法安装S32K3xx开发包和FreeMASTER串行通信驱动程序版本1.3 我已经安装了FreeMASTER 1.3.0 RTM (FMASTERSW32.exe),之后我从 SW32K3xx_S32DS_3.5.0_D2303.zip 安装了 S32K3xx 开发包(从以前的版本 S32DS 3.5.3 上传)。
記事全体を表示
S32K3xx FlexCAN 传统和增强型 RXFIFO DMA 我正在研究 S32K344 FlexCAN,在使用 FlexCAN 时我遇到了一些问题。 1.DMA在S32K344中实际上是如何工作的?以及如何使用它? 2. 如何将传统 FIFO 与 DMA 以及增强型 FIFO 与 DMA 集成 3. 使用 DMA 会产生什么后果?
記事全体を表示
RT1052のSDRAMチップの交換に関する問題 私の RT1052 ボードは IS42S16160 32MB SDRAM を使用しており、完璧に動作します。しかし、IS42S16400 8MB SDRAMに交換した後、正常に動作しなくなりました。どのような設定を変更する必要がありますか? i.MX RT Re: Issues with Replacing SDRAM Chips on RT1052 わかりました。私の質問に対する答えをありがとうございます! Re: Issues with Replacing SDRAM Chips on RT1052 2 バンクまたは 8 列の SDRAM デバイス タイプはサポートされていません。 よろしくお願いします、 オマール Re: Issues with Replacing SDRAM Chips on RT1052 RT1052 は 8 ビットの row_addr をサポートしていますか?SEMC_SDRAM_COL8() は CAN ませんか? Re: Issues with Replacing SDRAM Chips on RT1052 sdramconfig 変数でデバイスの memsize を変更する必要があります。これは、2 つの違いがサイズのみであるCASEです。タイミングにさらに違いがある場合は、データシートの仕様に従って残りのパラメータを調整する必要があります。 両方のピン配置は似ていますか? よろしくお願いします、 オマール
記事全体を表示
PCA9539 RESET 问题取决于 I²C 连接状态 你好 我正在使用 PCA9539 I/O 扩展器,遇到了意外的 RESET 问题,这似乎取决于 I2C 连接状态。 问题如下: 我通过 I²C 通信将 PCA9539 的所有输出端口配置为高电平。 输出引脚按预期保持高电平。 但是,当我移除 SDA/SCL 探头(用于监控 I2C 总线)时,PCA9539 似乎 RESET 了——输出引脚恢复到默认状态。 在此过程中,VCC 保持稳定,持续供电,RESET 引脚通过上拉电阻器保持高电平。 MCU 没有故意发出 RESET 信号或电源重启 其他说明: 在相同的测试条件下,PCA9538 没有出现这个问题。 存在 I2C 上拉电阻。 电源稳定,可与电容解耦。 RESET 引脚在事件期间未显示异常活动。 我怀疑,断开探测器连接时出现故障或启动/停止状态不完整可能会导致 PCA9539 的内部 I2C 状态机进入故障状态,从而导致类似RESET的行为。但是,我没有找到任何文件可以确认 PCA9539 是否可以在不明确 RESET 或重新通电的情况下清除其输出寄存器。 据我所知,就 I2C I/O 扩展器而言,只要有电源供应,无论是否连接了 I2C 探头,它都应保持其配置。您能确认这种理解是否正确吗? 问题 在任何情况下,PCA9539 可以在没有 RESET 引脚断言或电源循环的情况下 RESET 其输出寄存器或 I2C 逻辑? 拆除探头期间 SDA/SCL 出现的故障是否会导致设备进入故障状态并丢失其配置的输出? 既然 PCA9539 和 PCA9538 的功能相似,为什么 PCA9539 会出现这种行为,而 PCA9538 却不会? 不管 I²C 总线连接如何,只要有电源,I2C I/O 扩展器都应保持其配置,这是否正确? 如果您对此行为有任何见解或官方文件,我们将不胜感激。 谢谢!
記事全体を表示
CST 4.0.1 の Openssl バージョン こんにちは、 NXPからCST 4.0.1(コード署名ツール)をダウンロードし、 docsフォルダ内のドキュメント(具体的にはUG10106 )を確認したところ、セクション3.1.1に遭遇しました。CST はUbuntu 22.04をサポートし、 OpenSSL 3.2.0が必要であると記載されています。 しかし、私の現在のUbuntu 22.04システムにはOpenSSL 3.0.2が搭載されています。インストールされました。OpenSSL 3.2.0へのアップグレードが心配です既存のシステム依存関係が壊れる可能性があります。CST を使用するには、本当に OpenSSL をアップグレードする必要がありますか?もしSOなら、システムに影響を与えずにそれを実行する最も安全な方法は何ですか? 参考までに、UG10106 のスクリーンショットも添付しました。 ありがとうございます カルティーク Re: Openssl Version for CST 4.0.1 こんにちは@kartheek ! NXP サポートにお問い合わせいただきありがとうございます。 CST ツールの推奨バージョンは OpenSSL 3.2.0 です。 残念ながらOpenSSL 3.0.2のバージョンはテストしていません。このツールを使用する場合は、システムにインストールされているバージョンの CST ツールを試すことをお勧めします。ツールが期待どおりに動作しない場合は、ユーザー ガイドで推奨されているバージョンをインストールしてみてください。 よろしくお願いいたします。 チャビラ
記事全体を表示
S32K314 HSE ADKP こんにちは、NXP ADKP(UID多様化によるHSE静的パスワード)機能を開発しています。質問が2つあります。 1、ADKP パスワードを設定するためにインターフェース HSE_ProgramAdkp() を呼び出すと、応答は HSE_SRV_RSP_OK です。HSE_CalculateAdkpHash() を実行した後、インターフェース HSE_ReadAdkp() を呼び出すと、今度は応答が HSE_SRV_RSP_NOT_ALLOWED です。なぜかわかりません。 2、JTAG セキュア デバッグが有効になっている場合、消去して再プログラムしたいです。この時点では、最初に S32DS PE デバッグまたは Trace32 を使用して JTAG のロックを解除し、次に Jlink を使用して対応する操作を実行することしかできませんか?CANロック解除プロセスはプログラムフラッシュ内で実行できますか? ご返信をお待ちしております! よろしくお願いいたします! Re: S32K314 HSE ADKP ご返信ありがとうございます! 1、これは「S32K3_HSE_DemoExamples_1_0_0」、具体的にはそのファイル内のS32K344_DemoAppTemplateに基づいています。 Re: S32K314 HSE ADKP 1) これはどのサンプルコードに基づいていますか? 2) 決してそうではありません。セキュア デバッグを適用すると、リセットのたびにパスワードを入力する必要があり、永続的なロック解除はできなくなります。これはデバッガーでサポートされる必要があります。私は PeMicro と TRACE32 を認識しています。Segger については、サポートに問い合わせてください。サポートされているかどうかはわかりませんが、次のThreadではサポートされていないと言われています。 https://community.nxp.com/t5/S32K/s32k3-secure-debug-interface/mp/1954589
記事全体を表示
Example S32K312 ADC_IP Continuous Scan DMA S32DS36 RTD600 * ================================================================================================== * Detailed Description: * * This example shows how to implement ADC continuous scan with DMA read. * ADC1 is set to perform continuous scan of 4 channels (S10/S11/S12,S13) with DMA request enabled * for last channel S13. DMA reads respective sequential ADC data registers in one major loop. * * ADC1 channel S10 is connected to board's potentiometer, converted value is used to dim board's LED. * * ================================================================================================== * Test HW: S32K312EVB-Q172 * MCU: S32K312_172LQFP * Compiler: S32DS 3.6.3 * RTD release: S32K3_S32M27x Real-Time Drivers ASR R21-11 Version 6.0.0 * Debugger: On-Board Debugger (J40), Lauterbach * Target: Internal_FLASH * ==================================================================================================   Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction.  
記事全体を表示
AMF-DES-T2360 - EMIをシンプルに:それはすべてスペースについてです! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シグナルインテグリティ、EMI、RFI...これらはすべて、設計の電磁場をどれだけうまく管理できるかの結果です。電磁界は空間に存在し、導体ではありません。提示された資料は、電磁エネルギーの基本的な物理学に焦点を当てており、たくさんの図を含む面白くて理解しやすい形式で提示されています。参加者は、EMフィールドの動作を理解することで、より堅牢でEMC性能が向上するPCBを設計するのにどのように役立つかを発見できます。これはロケット科学ではなく、PCBジオメトリの理解しやすいアプリケーションです。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シグナルインテグリティ、EMI、RFI...これらはすべて、設計の電磁場をどれだけうまく管理できるかの結果です。電磁界は空間に存在し、導体ではありません。提示された資料は、電磁エネルギーの基本的な物理学に焦点を当てており、たくさんの図を含む面白くて理解しやすい形式で提示されています。参加者は、EMフィールドの動作を理解することで、より堅牢でEMC性能が向上するPCBを設計するのにどのように役立つかを発見できます。これはロケット科学ではなく、PCBジオメトリの理解しやすいアプリケーションです。
記事全体を表示
Kinetis Lシリーズ・マイクロコントローラ:エネルギー効率化の基準 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis Lシリーズ・マイクロコントローラは 、新しいARM® Cortex-M0™+プロセッサの優れたエネルギー効率と使いやすさに加え、Kinetisの32ビット・マイクロコントローラ・ポートフォリオの性能、ペリフェラル・セット、イネーブルメント、拡張性を兼ね備えています。 Kinetis Lシリーズは、優れたダイナミック電流とストップ電流、優れた処理性能、幅広いオンチップ・フラッシュ・メモリ容量、広範なアナログ、コネクティビティ、HMIペリフェラル・オプションを組み合わせることで、パワークリティカルな設計を8ビットおよび16ビット・マイクロコントローラの制約から解放します。 Kinetis Lシリーズ・マイクロコントローラ は、ARM Cortex-M4ベースの Kinetis Kシリーズとハードウェアおよびソフトウェアとも互換性があり、より多くのパフォーマンス、メモリ、および機能の統合に向けたスケーラブルな移行パスを提供します。 Kinetis Lシリーズ・マイクロコントローラは、フリースケールのエネルギー効率の高い製品ソリューションです。 詳細については、Freescale.com\Lseriesをご覧ください。 Kinetis Lシリーズ・マイクロコントローラ Re:Kinetis Lシリーズ・マイクロコントローラ:エネルギー効率ベンチマーク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis Lシリーズとエネルギー効率ベンチマークは、FTF Americas 2012のステージでライブで紹介されました。 基調講演のデモ録音を確認してください。
記事全体を表示
示例 MPC5744P PMC SW 触发自检 GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 本例演示了 PMC SW 触发的自检配置和执行 * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC57xx * 掩模组:1N15P 和 0N15P * 目标:internal_FLASH * Fsys: 200 MHz PLL,带 40 MHz 晶振参考 * ******************************************************************************** 修订历史: 1.0 2016年4月4日 b21190(Vlna Peter)初始版本 1.1 2017 年 4 月 20 日 b21190(Vlna Peter)添加了软件 PMC 自检 ********************************************************************************************/ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 本例演示了 PMC SW 触发的自检配置和执行 * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC57xx * 掩模组:1N15P 和 0N15P * 目标:internal_FLASH * Fsys: 200 MHz PLL,带 40 MHz 晶振参考 * ******************************************************************************** 修订历史: 1.0 2016年4月4日 b21190(Vlna Peter)初始版本 1.1 2017 年 4 月 20 日 b21190(Vlna Peter)添加了软件 PMC 自检 ********************************************************************************************/
記事全体を表示