Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
こんにちは、NPU!i.MX 9でTFLiteモデルを実行 以下は、Pytorch と Tensorflow でシンプルなモデルをトレーニングし、i.MX93 Ethos-65 ニューラル プロセッシング ユニット (NPU) を使用してアプリケーションにデプロイするためのガイドです。 このガイドに従うと、次のことが達成されます。 MNISTデータセットでシンプルなCNNをトレーニングする モデルを tflite に変換し、量子化して i.MX93 NPU (Ethos-65) 用にコンパイルします。 モデルによって数字を描画および識別できる簡単なアプリケーションを実行します。 前提条件 このガイドに従うには次のものが必要です: Yocto イメージ、C++ の例では GTKMM3 のサポートが必要ですが、Python の例では事前にビルドされたイメージを使用できます。 i.MX93ボード Pythonの例を実行する アプリケーションの実装は Python と C++ の両方で提供されます。Pythonアプリケーションを使用する場合は、代わりに事前に構築された完全なイメージを使用できます。Python スクリプトをターゲットにコピーして、次のように実行するだけです。 # Running quantized example on the CPU ./run.py -m cnn_tf_quant.tflite # Running example on the Ethos NPU ./run.py -m cnn_tf_quant_vela.tflite -d /usr/lib/liblitert_ethosu_delegate.so 添付ファイルには事前に構築されたモデルが提供されていますが、モデルのトレーニングと生成に使用される手順とスクリプトも含まれています (以下を参照)。 GTKMM3 サポート付きのイメージのビルディング (C++ の例のみ) デモンストレーションに使用される GUI アプリケーションはGTKMM3 ( GTKライブラリの C++ ラッパー) で記述されているため、GTKMM3 をサポートするイメージが必要ですが、幸いなことに、これを Yocto イメージに簡単に統合できるレシピが既にあります。 イメージをビルドするには、 Yocto ユーザー ガイドの指示に従うだけです。この記事の執筆時点では最新の BSP は 6.12.49_2.2.0 なので、これを使用します。 ホストとインストールされたリポジトリですべての要件を設定したら、次のようにビルド環境を設定できます。 リポジトリ init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml リポジトリ同期 ターゲットに応じてビルド ディレクトリを設定できるようになりました。例として、X11 をサポートする Wayland グラフィックスとiMX93 Freedomボードを使用します。 ディストリビューション=fsl-imx-xwayland マシン=imx93-11x11-lpddr4x-frdm ソース imx-setup-release.sh -b 93-frdm-xwayland ボードに合った MACHINE 構成を選択するだけです。 これでビルドを開始する準備がほぼ整いました。まだイメージに GTKMM3 サポートを追加する必要があります。conf/local.conf の下にある local.conf ファイルを変更し、次のコードを追加するだけです。 IMAGE_INSTALL:append = "gtkmm3" ビルド時に問題が発生しないように、gtkmm3 の前にスペースがあることを確認してください。ビルドはリソースを大量に消費するため、ビルド中にメモリ不足の問題が発生する可能性があります。一度にビルドを試みる同時レシピの数を制限するために、以下も追加することをお勧めします。 BB_NUMBER_THREADS="8" PARALLEL_MAKE="-j8" BB_PRESSURE_MAX_CPU ?= "50000" BB_PRESSURE_MAX_IO ?= "100000" BB_PRESSURE_MAX_MEMORY ?= "25000" その後、local.conf は次のようになります。 Screenshot from 2025-12-30 13-00-44.png 注意:ビルドを完了するには 500 GB 以上必要なので、マシンに十分なストレージ容量があることを確認してください。 これでビルドを開始できます。GTKMM アプリケーションをソースからビルドする場合は、利用可能な SDK が必要であり、次のように作成します。 bitbake imx-image-full -c populate_sdk 画像を作成するには、次のようにするだけです。 bitbake imx-image-full すべての Tensorflow Lite ライブラリとさまざまな例が含まれているため、完全なイメージが必要です。 ビルドが完了したら、ツールチェーンをインストールし、イメージをボードにフラッシュできます。 ツールチェーンをインストールするには: ./tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64 -imx-image-full-armv8a-imx93-11x11-lpddr4x-frdm-toolchain-6.12-walnascar.sh その後、ツールチェーンを使用するたびに次の操作を実行します。 ソース /opt/fsl-imx-xwayland/6.12-walnascar-full-gtkmm3/environment-setup-armv8a-poky-linux イメージを SD カードにフラッシュするには: zstdcat imx-image-full-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst | sudo dd of=/dev/mmcblk0 bs=1M conv=fsync これで、アプリケーションを構築し、いくつかのモデルをトレーニングしてデプロイする準備が整いました。 GTKMM3 ビルディング アプリケーション (C++) アプリケーションのソースはここにあります。また、ビルド済みのバイナリも提供されており、ここに添付されています。 アプリケーションには、マウスまたはタッチ ディスプレイを使用して数字を簡単に描画できる描画領域と、描画領域をクリアするためのボタンと、モデルの実行をトリガーして数字を予測するためのボタンの 2 つのボタンが含まれています。 window_example.png 最初からビルドするには、CMake と、GTKMM3 をサポートするツールチェーン (上記参照) が必要です。プロジェクトをビルドするには、次の手順に従ってください。 sudo apt install cmake git クローンhttps://github.com/ManRod2982/drawing_window_imx cd drawing_window_imx/drawing_window_cpp/ ソース /opt/fsl-imx-xwayland/6.12-walnascar-full-gtkmm3/environment-setup-armv8a-poky-linux cmake -B ビルド -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake cmake --build ビルド この後、ビルド ディレクトリの下に window というバイナリが作成され、それをターゲットの SD カードに簡単にコピーできるようになります。 Linux を使用している場合はファイルシステムがマウントされるので、バイナリをルート ディレクトリにコピーするだけです。 sudo cp build/window /media/user/root/root/ ボードへの接続がすでに確立されている場合も SCP を使用できます。 scp ビルド/ウィンドウ [email protected]:/root そして、この後、ターゲット上でアプリケーションを次のように起動できます。 ./window -m model_path [オプション] -d delegate_path [オプション] -v アプリケーションでは次の 3 つのパラメータが受け入れられます。 モデルへのパス: -m または --model_path [オプション] デリゲートへのパス(存在する場合): -d または --delegate_path。指定されていない場合は、 XNN デリゲートを使用して CPU 上でモデルの実行が試行されます。 [オプション] 詳細フラグ。存在する場合、モデルはより多くの情報を出力します。 ここで、実行するモデルが必要です。 シンプルなCNNモデルのトレーニング このリリースの機械学習ユーザーガイドを見てみましょう。各デバイスで利用可能なコンピューティング エンジンに関するさまざまなフレームワークのサポートは次のとおりです。 Screenshot from 2025-12-30 16-24-57.png Tensorflow Lite とLiteRT (Tensorflow Lite の最新リリースであり、今後リリースされる唯一のもの) は、i.MX9 ファミリのほとんどのコンピューティング エンジンで広くサポートされているフレームワークです。このガイドでは、例として C++ を使用し、LiteRT の現在のリリースでは Python のみがサポートされているため、Tensorflow Lite を使用しますが、インターフェースとプロセスはほぼ同じです。 環境の設定 サンプル リポジトリには、モデルをトレーニングして tflite 形式に変換するために使用されるさまざまな Python スクリプトが含まれています。次の手順を実行するには、python3 のインストールが必要です。 仮想環境を設定することをお勧めします。 python3 -m venv myenv ソース myenv/bin/activate pip インストール -r 要件.txt これにより、Tensorflow と Pytorch の両方に必要なすべてのパッケージがインストールされます。 Tensorflowでモデルをトレーニングする Tensorflow を使用すると、モデルを量子化して Tensorflow Lite に変換するための簡単なパスが可能になり、畳み込みニューラル ネットワーク (CNN) アーキテクチャは次のようになります。 model = tf.keras.models.Sequential([ tf.keras.layers.Input(batch_shape=(1, 28, 28, 1)), tf.keras.layers.Conv2D(16, 5, padding='same', activation='relu'), tf.keras.layers.Conv2D(32, 3, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.MaxPool2D(2, strides=(2,2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(100, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) train_tf.pyスクリプトを実行してモデルをトレーニングすることができます。通常のノートPCでトレーニングするには約 2 分かかり、テスト データセットで 99.05% の精度を達成します。フレームワークの詳細については、公式のTensorflow ドキュメントを参照してください。 スクリプトを実行した後、 eIQ ツールキットモデル ビジュアライザーまたはNetron.app を使用してモデルを視覚化できます。 cnn_tf.keras (1).png i.MX93 には、重み、バイアス、入力が整数である必要があるArm Ethos-65 NPUが搭載されており、現在のモデルは float32 を使用しているため、モデルを量子化する必要があります。これを実現するには、モデルを量子化して tflite に変換する tf2quant_tflite.py を実行します。 cnn_tf_quant.tflite.png 整数の入力と出力を取り、重みとバイアスも量子化されており、ファイル サイズの違いが簡単に確認できます。 Screenshot from 2025-12-30 17-46-15.png 量子化モデルは 555 KB ですが、float32 モデルは 2.2 MB です。これは、float32 では重みとバイアスをそれぞれ保存するのに 4 バイトが必要なのに対し、量子化モデルでは 1 バイトしか必要ないからです。 これで、ターゲットで使用できるモデルができました。ただし、現状では、XNN デリゲートを使用して CPU 上で実行されます。モデルを実行するには、次のようにするだけです。 ./window -m cnn_tf_quant.tflite これで、Arm Ethos NPU 用に量子化モデルをコンパイルできるようになりました。eIQ ツールキットが使用されます。モデル ツールを使用してモデルを開きます。 2025-12-30_17-53.png 量子化されたモデル(この場合は cnn_tf_quant.tflite)があるフォルダーに移動して開きます。モデルを視覚化できるはずです。オプション メニューをクリックして変換を選択します。 2025-12-30_17-55.png i.MX93 コンバータを選択すると、保存先フォルダも選択するように求められます。 2025-12-30_17-56.png 宛先フォルダを選択した後、すべてがうまくいけば変換が完了し、Ethos で実行できるように最適化されたモデルを視覚化できるようになります。NPU でサポートされていない操作はすべて CPU によって表示および実行されます。この単純な例では、すべての操作は NPU によって実行されます。 cnn_tf_quant_vela.tflite.png そして、次のようにしてターゲット上でモデルを実行できるようになりました。 ./window -m cnn_tf_quant_vela.tflite -d /usr/lib/libethosu_delegate.so Pytorchでモデルをトレーニングする リポジトリには、畳み込みニューラル ネットワークを使用して MNIST データ セットをトレーニングするサンプル モデルが含まれています。モデル構造は次のとおりです。 NeuralNetwork( (cnn): Sequential( (0): Conv2d(1, 16, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2)) (1): ReLU() (2): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1)) (3): ReLU() (4): Dropout(p=0.2, inplace=False) (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (6): Flatten(start_dim=1, end_dim=-1) (7): Linear(in_features=5408, out_features=100, bias=True) (8): ReLU() (9): Dropout(p=0.2, inplace=False) (10): Linear(in_features=100, out_features=10, bias=True) ) ) Pytorch モデルは、Tensorflow lite (量子化なし) に簡単に変換して CPU 上で実行できます。また、 Open Neural Network Exchange モデル (ONNX)も同様です。ただし、最近リリースされたExecutorchは組み込みデバイス上の Pytorch モデル用の推論モデルであり、現在そのサポートが進められています。 Pytorch モデルは pytorch_model.py で定義されています。 #!/usr/bin/env python3 import torch from torch import nn # Define model class NeuralNetwork(nn.Module): def __init__(self): super().__init__() self.cnn = nn.Sequential( # Input 28x28x1, after padding 32x32x1, output 28x28x16 nn.Conv2d(in_channels=1, out_channels=16, kernel_size=5, padding=2), nn.ReLU(), # Input 28x28x16, output 26x26x32 nn.Conv2d(in_channels=16, out_channels=32, kernel_size=3), nn.ReLU(), nn.Dropout(p=0.2), # Input 26x26x32, output 13x13x32 nn.MaxPool2d(kernel_size=2, stride=2), nn.Flatten(), nn.Linear(13*13*32, 100), nn.ReLU(), nn.Dropout(p=0.2), nn.Linear(100, 10) ) def forward(self, x): logits = self.cnn(x) return logits トレーニングは train_pytorch.py を実行して実行され、テスト データセットで 99.3% の精度を達成し、通常のノートPCで完了するまでに約 7 分かかります。フレームワーク自体とトレーニング プロセスの詳細については、公式のpytorch ドキュメントを参照してください。 その後、pytorch モデルは pytorch_model.pth に保存されますが、pytorch はグラフ情報ではなく重みとバイアスのみを保存します。保存したモデルをnetronまたはeIQ ツールキットモデル ビジュアライザーで視覚化すると、分離された重みとバイアスを観察できます。 pytorch_model.pth.png モデルをより良く視覚化するために、スクリプトpytorch2onnx.pyを使用してONNX形式に変換するだけです。そして、Neutron 上でモデルのグラフを視覚化できるようになりました。 pytorch_cnn.onnx.png 注: ONNX は量子化して量子化されたモデルを tflite に変換する方法も提供している可能性がありますが、onnx-tf のテストではツールが最新の Tensorflow フレームワークと同期していないようでした。Tensorflow で同様のモデルを作成し、量子化してエクスポートする方が簡単でした。 これでモデルを tflite にエクスポートできるようになりました。モデルは量子化されていないため、CPU (XNN デリゲート) 上で実行されます。エクスポートするには、 pytorch2tflite.py を実行し、エクスポートされたモデルを視覚化できるようになりました。 pytorch_cnn.tflite.png そして、次のようにしてこのモデルをターゲット上で実行できます。 ./window -m pytorch_cnn.tflite モデルのデプロイと実行 これで、数字を描画できるアプリケーションと、それらの数字を検出できるモデルができましたが、アプリケーションはそのモデルを実行して結果を取得できる必要があります。これが次のステップです。 ターゲット上でモデルを実行できるようにするには、次のことが必要です。 モデルをロードする tfliteインタープリターを作成する 外部デリゲートがある場合はロードする テンソルを割り当てる C++の例 ここでは最小限の例が提供されていますが、NPU でモデルを実行するために必要な外部デリゲートの読み込みは含まれていません。 必要なヘッダーは次のとおりです。 #include "tensorflow/lite/delegates/external/external_delegate.h" #include "tensorflow/lite/interpreter.h" #include "tensorflow/lite/interpreter_builder.h" #include "tensorflow/lite/kernels/register.h" #include "tensorflow/lite/model_builder.h" TFLite APIを使用して次のようにモデルをロードできるようになりました。 std::unique_ptr<:flatbuffermodel> model = tflite::FlatBufferModel::BuildFromFile(model_path); ここでインタープリターを作成する必要があります。そのためには、モデルだけでなく操作リゾルバーも必要です。 tflite::ops::builtin::BuiltinOpResolver resolver; std::unique_ptr<:interpreter> interpreter; tflite::InterpreterBuilder(*model, resolver)(&interpreter); デリゲートが必要な場合は、それを作成して実行グラフを更新し、インタープリターがサポートされている操作でデリゲートを呼び出すことを認識できるようにする必要があります。 // Create external delegate option and pass the delegate library TfLiteExternalDelegateOptions external_delegate_options = TfLiteExternalDelegateOptionsDefault(delegate_path); // Create the External Delegate. This will load the delegate. TfLiteDelegate *external_delegate = TfLiteExternalDelegateCreate(&external_delegate_options); // Add External Delegate into TFLite Interpreter to automatically delegate nodes. if (interpreter->ModifyGraphWithDelegate(external_delegate) != kTfLiteOk) { std::cerr << "Failed to add delegate" << std::endl; } これで、モデルにテンソルを割り当てることができます。 // Allocate tensors for the model if (interpreter->AllocateTensors() != kTfLiteOk) { std::cerr << "Failed to allocate tensors" << std::endl; } これで、モデルを使用して推論を実行する準備が整いました。 最後のステップは、入力バッファにデータを入力し、インタープリタを呼び出して、出力バッファから結果を取得することです。次の例では、float モデルを使用しています。 // Fill input buffers // Note: The buffer of the input tensor with index `i` of type T can // be accessed with `T* input = interpreter->typed_input_tensor (i);` float *input_tensor = interpreter->typed_input_tensor (0); std::memcpy(input_tensor, input.data(), input.size() * sizeof(float)); // Run inference if (interpreter->Invoke() != kTfLiteOk) { std::cerr << "Failed to invoke Interpreter!" << std::endl; return {}; } // Read output buffers // Note: The buffer of the output tensor with index `i` of type T can // be accessed with `T* output = interpreter->typed_output_tensor (i);` float *output_tensor = interpreter->typed_output_tensor (0); std::memcpy(output, output_tensor, output.size() * sizeof(float)); 私たちのサンプル アプリケーションでは、インタープリターの作成と推論の呼び出しは NnModel というクラスにラップされています。その実装はリポジトリで確認できますが、変更なしで float モデルと int8 モデルの両方を処理できます。 クラスはメイン ルーチン内でインスタンス化され、予測ボタンがクリックされるたびに推論が呼び出されます。 // Create model with parsed parameters NnModel nn(model_path, delegate_path, verbose); void Window::on_predict_clicked() { // Save screen to file std::cout << "Predict clicked!" << std::endl; // Call inference on NnModel depending on the type // the model expects int number; auto data_type = nn_.get_dtype(); switch (data_type) { case kTfLiteFloat32: { std::vector drawing = mouse_drawing.export_to_vector (28, 28, 255.0); std::vector output_vec_f = nn_.infer (drawing); number = get_max_index (output_vec_f); break; } case kTfLiteInt8: { std::vector drawing = mouse_drawing.export_to_vector (28, 28, 255.0); std::vector output_vec_int = nn_.infer (drawing); number = get_max_index (output_vec_int); break; } default: std::cerr << "Cannot handle input type: " << std::to_string(data_type) << std::endl; break; } std::string display = "You drew a: " + std::to_string(number); std::cout << display << std::endl; text_view.set_text(display); } Pythonの例 Python でインタープリターを作成するプロセスはほぼ同じですが、デリゲートが使用されている場合はそれをロードし、モデルをロードしてテンソルを割り当てる必要があります。 この例では、代わりに LiteRT が使用されていますが、API は同じままで、必要な変更は解釈されたものがどこからインポートされるかだけです。 次の最小限のコードを使用して、モデルと外部デリゲートを読み込むことができます。 from ai_edge_litert.interpreter import Interpreter # Create interpreter if delegate_path is not None: # attempt to load external delegate if provided (platform specific) try: from ai_edge_litert.interpreter import load_delegate delegate = load_delegate(delegate_path) self.interpreter = Interpreter(model_path=model_path, experimental_delegates=[delegate]) except Exception as e: raise RuntimeError(f"Failed to load delegate: {e}") else: self.interpreter = Interpreter(model_path=model_path) self.interpreter.allocate_tensors() これで使用できるインタープリターができました。入力テンソルを入力し、インタープリターを呼び出して、モデルからの結果を含む出力テンソルを取得するだけです。 # Set input input_details = self.interpreter.get_input_details()[0] self.interpreter.set_tensor(input_details['index'], input_data) # Run inference self.interpreter.invoke() # Get results out_details = self.interpreter.get_output_details()[0] output_data = self.interpreter.get_tensor(out_details['index']) これらの手順は、 nn_model.pyの下のラッパー クラスに含まれています。 モデルのベンチマーク リリースには、ランダムな入力を生成し、モデルで推論を実行するのにかかる時間を測定するための事前構築されたベンチマーク ツールが付属しています。以下は、i.MX93 でさまざまなモデルを実行した結果です。 ./benchmaark_model --graph=モデル --num_threads=コア数   CPU 1コア CPU 2コア NPU pytorch_cnn.tflite 1559.61米ドル 1023.22米ドル N/A cnn_tf_quant.tflite 585.37米ドル 379.69米ドル N/A cnn_tf_quant_vela.tflite N/A N/A 221.84米ドル これはもちろん単なる例ですが、専用ハードウェア上で実行すると推論速度が大幅に向上することがわかります。 以下は、Pytorch と Tensorflow でシンプルなモデルをトレーニングし、i.MX93 Ethos-65 ニューラル プロセッシング ユニット (NPU) と i.MX95 eIQ Neutron NPU を使用してアプリケーションにデプロイするためのガイドです。
View full article
RDB3 Linux 以太网配置 本文档为在恩智浦 S32G-VNP-RDB3 开发板上配置和测试网络连接提供了实用指南。它概述了准备硬件和软件环境、设置网络参数以及验证主板与主机系统之间通信的基本步骤。该指南还解释了板网络架构的关键方面,并提供了在 Linux 和 U-Boot 级别调整配置的说明。其目的是为从事汽车网络应用以太网支持和验证的工程师提供参考。 本文档是对之前的 S32G-VNP-RDB2 参考设计以太网支持指南的更新,其中纳入了特定于 RDB3 平台和更新 电路板支持包 版本的更改和注意事项。 S32G
View full article
EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 这个McuPGOOD_POLARITYControl配置项在该路径下找不到 WeiCh_0-1768130067532.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 我不确定你是否可以下载,你可以尝试一下,如果不可以,请联系你的代理商或者FAE来获取评估权限。 https://www.nxp.com/design/design-center/software/automotive-software-and-tools/real-time-drivers-rtd:AUTOMOTIVE-RTD Senlent_0-1768200790023.png Senlent_1-1768200797066.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 在哪可以下载30.0.0吗?30.0.0能打开29.0.0的工程吗? Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 我看这个版本适配的EB Tresos版本应该是30.0.0,不是你所使用的版本。 Senlent_0-1768199372924.png Senlent_1-1768199522861.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 你这界面的风格不对阿,新版本的风格和之前旧的完全不一样的,你的界面还是老版本的风格。 Senlent_0-1768279446361.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh ok,不客气 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 在下载界面有这样的提示,你要修改后缀 Senlent_0-1768283803016.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 好像有点问题,运行setup提示没有安装包,可以解压EBtresosStudio_EBtresosStudio.zip后直接打开应用,但应用界面还是旧的: WeiCh_0-1768283416600.jpeg Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 这是30.0.0的界面,好像还是没有这个配置项。 WeiCh_0-1768274791066.png Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 已经可以了,感谢!
View full article
[过滤器:垃圾邮件] nismkiki 的帖子正文匹配了 " phon**epe ",板 " 电源管理单元 "。 [过滤器:垃圾邮件] nismkiki 的帖子正文匹配了 " phon**epe ",板 " 电源管理单元 "。 帖子主题:如何退还错误的交易 职位机构: 如何从 PhonePe 上的错误交易中取回钱款(客户服务号码 📞076995 95414) 如果您不小心将钱汇入了错误的帐户或在 PhonePe 上进行了错误的交易(客户服务号码 👉+9176,,995,,,954,,,14👈),请按照以下步骤操作:在 PhonePe 应用程序中进行投诉。如何取回在 PhonePe 上意外支付的款项? 通过应用程序提出投诉: 打开 PhonePe 应用程序 → 我的(或设置)→ 帮助 & 支持 → 交易问题。TAP错误的交易 → 选择提出投诉 → 写下原因(例如,错误的账户、重复付款)→ 提交。   联系官方客服: 致电:080-6872-7374(免费电话)或 +91-22-6872-7374 提供:注册手机号码、交易编号、唯一参考号码(URN)。电子邮件:[[email protected]](mailto:[email protected])请在邮件主题行注明"Wrong Transaction Reversal" ,并发送您的手机号码、交易 ID 和问题描述。   向银行申请退款: 请就近前往银行网点或通过网上银行/手机银行提交书面申请。获取并保留银行的UTR号码(唯一交易参考)以进行撤销。   后续行动和预防措施: 尽快(最多 48 小时内)提交投诉。妥善保存截图、收据和交易 ID。切勿将您的 OTP、密码或个人信息透露给任何非官方号码或个人。仅使用官方渠道(上述提供的应用程序、网站、电话号码/电子邮件)。   注意:撤销程序通常需要 7-10 个工作日。如果没有及时收到退款,请再次联系客户服务中心或银行。 正文"PhonePe(客户服务号码 📞076995 95414) 如果您不小心将钱汇入了错误的帐户或在 PhonePe 上进行了错误的交易(客户服务号码 👉+9176,,995,,,954,,,14👈),请按照以下步骤操作:在 PhonePe 应用程序中进行投诉。如何取回在 PhonePe 上意外支付的款项" 匹配的过滤模式"phon**epe" 。 用户[id=258406,login=nismkiki]的发帖因以下最终用户面临的错误而被拒绝: 邮件正文包含 PhonePe(客户服务号码 📞076995 95414) 如果您不小心将钱汇入了错误的帐户或在 PhonePe 上进行了错误的交易(客户服务号码 👉+9176,,995,,,954,,,14👈),请按照以下步骤操作:在 PhonePe 应用程序中进行投诉。如何取回不小心在 PhonePe 上支付的款项,这在本社区是不允许的。请在发送您的帖子前删除这些内容。
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
如何使用恩智浦 os08a20 摄像头在 iMX95 Verdin EVK 中将数据流推送到显示屏 我最近从https://www.nxp.com/design/design-center/development-boards-and-designs/4K-MIPI-CMOS-CAMERA-MODULE 购买了 X-IMX-OS08A20 摄像头模块。 我已将其连接到 iMX95 Verdin EVK 套件,摄像头能被正确检测并成功探测。 我使用的是以下 dtb-imx95-19x19-verdin-os08a20-isp-lt8912.dtb 我正在运行以下 v4l2 命令,并能使用 stream-mmap 命令获取 v4l2 数据流。以下是我使用的命令 media-ctl -d /dev/media0 -l"'os08a20 2-0036':0 -> 'csidev-4ad30000.csi':0[1]" media-ctl -d /dev/media0 -l"'csidev-4ad30000.csi':1 -> '4ac10000.syscon:formatter@20':0[1]" media-ctl -d /dev/media0 -l"'4ac10000.syscon:formatter@20':1-> 'crossbar':2[1]" media-ctl -d /dev/media0 -l"'crossbar':5 -> 'mxc_isi.0':0[1]" media-ctl -d /dev/media0 -l"'mxc_isi.0':1-> 'mxc_isi.0.捕获': 0 [1] " echo "媒体设置" media-ctl -d /dev/media0 -R "'os08a20 2-0036' [1/0->0/0[1]]" media-ctl -d /dev/media0 -R "'csidev-4ad30000.csi' [0/0->1/0[1]]" media-ctl -d /dev/media0 -R "'4ac10000.syscon:formatter@20' [0/0->1/0[1]]" media-ctl -d /dev/media0 -R"'crossbar' [2/0->5/0[1]]" echo"routing done" media-ctl -d /dev/media0 -V"'os08a20 2-0036':0/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'csidev-4ad30000.csi':0/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'4ac10000.syscon:formatter@20':0/0[fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'crossbar':2/0 [fmt:SBGGR10/3840x2160 field:none]" media-ctl -d /dev/media0 -V"'mxc_isi.0':0/0[fmt:SBGGR10/3840x2160 field:none]" echo"linking Completed" 我运行以下命令,用 v4l2 获取帧数,结果达到了预期的 30 fps。 < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < 30.04 fps < < < < < < < < < < < < 48< < < < < < < < < < < < < < < < 30.04 fps <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<30.04 fps 我正试图将它推送到显示器上,却遇到了这个问题。 root @imx95 -19x19-verdin:~# gst-launch-1.0libcamerasrc !video/x-raw,format=BGRx,width=3840,height=2160 !视频转换 !fpsdisplaysink video-sink=autovideosink text-overlay=true 设置管道为 PAUSED ... [0:01:33.994814097][774] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) Pipeline is live and does not need PREROLL ... [0:01:34.098980249][780] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 管道已 PREROLLED ... 将管道设置为正在播放 ... ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error. 附加调试信息: /usr/src/debug/libcamera/0.5.0.imx/src/gstreamer/gstlibcamerasrc.cpp(682):gst_libcamera_src_task_enter ():/GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: streaming stopped, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. 执行在 0:00:00.000314034 后结束 将管道设置为 NULL ... [0:01:34.099615025][780] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error. 附加调试信息: /usr/src/debug/libcamera/0.5.0.imx/src/gstreamer/gstlibcamerasrc.cpp(682):gst_libcamera_src_task_enter ():/GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: streaming stopped, reason not-negotiated (-4) Freeing pipeline ... cam -c 1 --info [0:01:09.047021603][772] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:01:09.152506530][772] WARN ISI imx8-isi.cpp:353无法找到支持的 YUV/RGB 格式 使用摄像机 /base/soc/bus@42000000/i2c@42530000/os08a20_mipi@36 作为 cam0 0: 3840x2160-SBGGR10 * Pixelformat:SBGGR10 (3840x2160)-(3840x2160)/(+1,+1) - 3840x2160 * Pixelformat:SBGGR12 (3840x2160)-(3840x2160)/(+1,+1) - 3840x2160 到目前为止,我还没有导出有关 libcamera 的 MATCH_LIST,以上就是这些日志。 之后,我导出 export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo,imx8-isi' root@imx95-19x19-verdin:~# cam -c 1 --info [0:01:46.524765885][782] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:01:46.642824790][783] INFO NxpNeoIPA neo_ipa.cpp:128nxpneo: IPANxpNeo NXPNEO_IPA_v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) 使用摄像机 /base/soc/bus@42000000/i2c@42530000/os08a20_mipi@36 作为 cam0 0: 3840x2160-BGR888 * Pixelformat:R8 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R10 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R12 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:R16 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV21 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV61 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV12 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XBGR8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:BGR888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:RGB888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XRGB8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:NV16 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:YUYV (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:XVUY8888 (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 * Pixelformat:UYVY (1920x1080)-(3840x2160)/(+0,+0) - 1920x1080 - 3840x2160 之后,当我运行以下 gstreamer 命令时,数据流没有开始。该进程在被杀死之前不会有任何反应。 root @imx95 -19x19-verdin:~# GST_DEBUG=3 gst-launch-1.0libcamerasrc !视频转换 !autovideosink 将管道设置为 PAUSED ... [0:04:17.443233635][794] INFO Camera camera_manager.cpp:326libcamera v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) [0:04:17.562332552][798] INFO NxpNeoIPA neo_ipa.cpp:128nxpneo: IPANxpNeo NXPNEO_IPA_v0.5.0+330-7fce0333-dirty (2025-06-04T12:23:54UTC) Pipeline is live and does not need PREROLL .. 0:00:00.203418021 794 0xffffa4000b70 FIXME default gstutils.c:4169:gst_element_decorate_stream_id_internal: 创建随机 stream-id,请考虑采用确定性方式创建 stream-id 管道已 PREROLLED ... 设置管道为播放状态 ... 0:00:00.203987701 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_to_caps:不支持 DRM 格式 R10 0:00:00.204038448 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_to_caps:不支持 DRM 格式 R12 新时钟:GstSystemClock 0:00:00.204228106 794 0xffffa4000b70 WARN default gstlibcamera-utils.cpp:345:gst_libcamera_stream_formats_too_caps:不支持 DRM 格式 XVUY [0:04:17.578186764][799] INFO Camera camera.cpp:1205配置数据流: (0) 3840x2160-NV21 0:00:00.0/ 99:99:99. 如何克服这一问题。请您在这方面给我指点迷津。 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera https://community.nxp.com/t5/i-MX-Processors/How-to-display-video-capture-by-OS08A20-camera-via-HDMI-LT8912/m-p/2170756/page/2 上述链接包含与流媒体有关的相同查询。由于我找不到解决方案,能否请您检查并确认提供了什么解决方案。谢谢。 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 我没有这个板可以重现这个问题,我用 imx95-19x19-evk-os08a20-isp-it6263-lvds0.dtb 测试了 HDMI,没有任何问题,请联系供应商来支持这个问题,或者尝试使用其他 dtb 文件再次进行测试 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 有没有什么解决办法,因为我看到很多人都在为同样的问题苦恼。我们已经买了全套设备和相机。如果您能提供以下帮助,将对我们大有裨益 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 目前我们不支持 Verdin EVK,因为 imx95 仍处于预生产阶段,我无法在板上重现这个,参考你的日志,问题与显示方面有关,你需要联系第三方公司检查他们是否对此进行了验证 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 您可以联系 https://www.toradex.com/support Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 这个问题与恩智浦imx95 evk板不支持的lt8912有关,所以我无法重现这个问题并对其进行调试,而Verdin板支持的当前政策是客户需要联系Verdin进行检查,因为imx95仍处于试生产阶段,我们还没有支持第三方公司板,如果我能在我的板上重现这个问题,我可以尝试给你建议或解决方案,但是由于此问题只能在他们的板上使用他们的软件重现,因此请在当前阶段直接与他们联系 Re: How to push stream to display in iMX95 Verdin EVK with the NXP os08a20 camera 我已经从恩智浦克隆了内核源代码,并正在使用它(关于 SW)。在我的情况下,摄像头也能正常探测,并获得 v4l2 数据流。您能否帮我联系一下 Verdin 的联系人,以澄清这个问题。谢谢
View full article
针对同步动态随机存取存储器(SDRAM)版本构建的 RT1170 调试 您好, 我正在使用 MCUXpresso 及其 SDK 为 RT1170 开发一个应用程序。 所提供的示例项目似乎都是使用 “DTC” RAM 版本的。与许多其他用户一样,我的应用程序太大了,无法容纳在那里,所以我正在尝试使用“同步动态随机存取存储器(SDRAM)”。 在尝试了论坛上其他一些帖子(尤其是https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979)中提出的解决方案后现在,我可以执行我的程序,如果应用程序已闪存,我还可以调试程序。 但是,如果我使用 “将应用程序链接到RAM” 进行版本和执行,那么一旦遇到断点,应用程序通常会卡在那里。 我的假设是这是因为我没有正确初始化同步动态随机存取存储器(SDRAM)。上述文章使用 “rt1050_SDRAM_init.scp 作为调试器初始化 同步动态随机存取存储器(SDRAM) 控制器的连接脚本”。如果我使用这个文件,失败也就不足为奇了。 我不知道如何调整这个脚本才能在 RT1170 上运行。有没有人这样做过,或者能提供如何生成的建议? 感谢您提供的任何帮助。 Re: RT1170 debugging when application is built for SDRAM 你好@ Jingpan 按照提供的步骤,使用 RT1170_BriefOverview_v210.pdf 中提到的修改刷新 hello world,我可以在调试模式下使用同步动态随机存取存储器(SDRAM)。 但是在这种变化之后,同步动态随机存取存储器(SDRAM)也用于存储代码。 在我的应用程序中,我希望代码存储在闪存中,而 BOARD_SDRAM 仅用于堆和堆栈部分。 我将把我的应用程序闪存到闪存中,该应用程序的堆和栈部分将使用 BOARD_SDRAM。 请指导我进行所需的更改。 Re: RT1170 debugging when application is built for SDRAM 谢谢@ Jingpan、 我只需要添加 .scp文件,结果成功了。 我已经掌握了第 5、第 6 和第 8 步,但我会试试其他步骤。 如果有帮助我还在 board.c 中做了以下更改,我认为这等同于<https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979>中描述的 RT1170_SDRAM_NOT_CACHED: #ifdef USE_SDRAM #ifndef RT1170_SDRAM_NOT_CACHED /* 区域 9 设置:内存为普通类型,不可共享,外部/内部回写 */ MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64MB); #else MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_64MB); #endif /* RT1170_SDRAM_NOT_CACHED */ #endif Re: RT1170 debugging when application is built for SDRAM 你好@robert_s、 此脚本适用于 RT1050/60,但不适用于 RT1170/60。您可以使用附带的脚本。除脚本文件外,您还需要执行其他步骤。 在 C/C++ 版本 > MCU 属性设置中的内存详细信息中,将 BOARD_SDRAM 移至 SRAM_DTC_M7 上方。 连接脚本使用 RT1170_connect_M7_wake_M4_SDRAM_init.scp。 在附加选项中添加 --cachelib libm7_cache.so。 如果使用 USB/以太网/SDHC,请将 DMA 缓冲区放入非缓存区。 在 MCU C 编译器> 预处理器中添加 USE_SDRAM。 在属性中选择链接到 ram->设置->受管链接器脚本 如果项目与 USB 关联,则在 MCU C 编译器> 预处理器中添加 DATA_SECTION_IS_CACHEABLE=1。 如果项目与不带 freertos 的 USB 主机相关联,则将堆放入 DTCM 或不可缓存区域 (bm) 此致, 景
View full article
iMX6ULLコンソールUARTがRS-485を使用する他のUARTに干渉する カーネル lf-6.6.52-2.2.1 を搭載した iMX6ULL システム。コンソールは、ttymxc3 上の RS-485 シリアル ポートである ttymxc0 に設定されています。トランシーバ「Drive Enable」は SNVS_TAMPER7 にコネクテッドであり、次の DTS があります。 &iomuxc_snvs { pinctrl_rs485_snvs: rs485grp_snvs { fsl,pins = < MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x1b0b1 /* RS485.DE as RTS */ >; }; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rs485>, <&pinctrl_rs485_snvs>; fsl,dte-mode; rts-gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; linux,rs485-enabled-at-boot-time; status = "okay"; label = "rs485"; }; データがコンソールに出力されると、RS-485 シリアル ポートに干渉が発生することに気付きました。RTS/DE 信号が 5 ~ 10 ミリ秒遅延することがあります。これは 9600 bps で 3.5 文字より長いため、ホストがまだバスを駆動しているため、デバイスからの応答が文字化けすることになります。これは次のようにCANできます: while true;do echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >/dev/kmsg;done これは既知の問題ですか? i.MX6UL ソフトウェア不具合の疑い Yocto Project Re: iMX6ULL console UART interferes with other UART using RS-485 こんにちは@astrand これは Linux カーネルではよくある問題のようです。こちらは LWN.NET での議論です。printk/console は遅いデバイスです。大量のログが発生した場合、カーネルはメッセージをコンソールに同期的に書き込む必要があります。このプロセス中、関連するロックが保持され、CPU 時間が消費され、他のタスクのスケジュールと割り込み処理が遅延されます。コンソールが RS-485 シリアル ポートと異なる場合でも、システム全体のスケジュール/ソフト割り込み/タスク キューは依然として遅くなります。これにより、UART 送信完了イベント情報がドライバに到達し、その後 DE ビットをプルダウンするまでの時間が遅延されます。詳細については、そのディスカッションを参照してください。 https://lwn.net/Articles/909980/ 実行時にCAN、コンソールのログレベルを低く設定するか、 rs485-rts-dts の遅延。 echo "4 4 1 7" > /proc/sys/kernel/printk よろしくお願いします、 志明
View full article
关于CANFD中二次采样点偏移SSP Offset的设置问题 在ISO 11898-1 2015,SSP要求是在普通采样点SP之前,但是公司规范中定义了 SSP offset 等于TSEG1,相当于SSP和SP在同一个位置。那么这个就失去了SSP的快速检测错误的功能。请问这个规范中固定的SSP offset是否合理。 例如:规范中要求CANFD采样点配置建议,其中SSP Offset =TSEG1 alvin_yan_1-1765418531494.png alvin_yan_0-1765418752423.png   Re: 关于CANFD中二次采样点偏移SSP Offset的设置问题 您好, 我不知道 ISO 11898-1 2015 的确切措辞,也不知道您的图片来自何处。也许这只是误读。 符合 ISO 标准的 CAN FD 控制器使用 TDC 来测量回路延迟,并使用可配置的 SSP 使发射器能够在更高的数据速率下正确检测数据错误。省略 TDC/SSP 会使这一机制失效,从而降低错误检测的鲁棒性。 PetrS_0-1765447065178.png 图示 TX 输出:代表控制器传输的 CAN FD 位。 RX 输入:代表收发器延迟后的接收比特。 TDC 测量:控制器测量 TX 和 RX 之间的环路延迟。 TDC 偏移:用户可配置的值,添加到测量的延迟中。 SSP 位置:计算公式为 SSP = TDC 测量值 + TDC 偏移。 SSP 不应该在 TX 功能域中的主 SP 之前。相反,在对 RX 信号进行采样时,它的位置应在考虑收发器延迟后与正确的比特中心对齐。从 TX 的角度看,SSP 出现的时间比正常 SP 晚,因为 RX 信号由于物理延迟而滞后于 TX。将 TDC 偏移量设置为等于标称 SP 可确保 RX 采样点与接收位处于同一时间,但可以自由设置,即位于位中间,这对于错误检测和数据完整性是最佳选择。 ISO 11898‑1 要求 SSP 进行发射器延迟补偿,而不是 TX 功能域中的早期错误检测。目标是确保发射器在延迟后能够正确验证自己的位。 BR, Petr Re: 关于CANFD中二次采样点偏移SSP Offset的设置问题 再次感谢
View full article
LS1046A RDB: LinuxのGPIO割り込み処理パフォーマンスをテストするためのGPIO こんにちは、 私は LS1046ARDB を使用しており、割り込みレイテンシを測定したいと考えています。私の目標は、外部信号発生器 (入力 GPIO) を介して割り込みをトリガーし、それに応じて別のピン (出力 GPIO) を切り替えて、オシロスコープで遅延を測定することです。 GPIO として多重化できるボード ヘッダー上のアクセス可能なピンを探しています。 私のアイデアは、IEEE-1588 ヘッダー (J11) を使用することですが、これが機能するかどうか、また何をしなければならないかはわかりません。 リファレンス・マニュアルには、EC2 ピンは RCW (EC2 = 1) を介して GPIO3 として設定できると記載されています。 RCW で EC2=1 を設定すると、これらの信号は J11 にルーティングされますか? LS1046A RDB には、これに使用できる他の簡単にアクセスできるピンはありますか? ご協力いただきありがとうございます QorIQ LS1デバイス Re: LS1046A RDB: GPIOs for testing gpio interrupt handling performance of linux ご協力いただきありがとうございます!これで動作するはずです。GPIO_2[1]、GPIO_2[2]、GPIO_2[3]はTP14、TP13、TP11に対応していることがわかりました。 Re: LS1046A RDB: GPIOs for testing gpio interrupt handling performance of linux SPI 信号と多重化されたGPIOを使用できます。 GPIO_2[1]、GPIO_2[2]、GPIO_2[3] SPIインターフェースはRDBでは使用されず、テストポイントに終端されます。 「表3-8」を参照してください。詳細については、LS1046ARM の「SPI 信号構成」を参照してください。
View full article
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 :    Tomas_Parizek_0-1764148815270.jpeg Note: The most critical position occurs when the card is placed directly on the NFC antenna . In this case, if the H-field exceeds the maximum allowed level, the output power must be reduced using DPC settings. 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.  Tomas_Parizek_1-1764147827990.png 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 Tomas_Parizek_0-1764153827503.png 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).   Tomas_Parizek_0-1764154133976.png   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.    Tomas_Parizek_0-1764155707250.png 6// ULPCD Settings  We recommend the following ULPCD Settings as a starting point.  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.  Tomas_Parizek_1-1782466350613.png If you see that the RSSI value is jittering, e.g., 1 unit as shown above. The absolute minimum threshold for this case is 2. However, it is always recommended to include adequate margin (To prevent false wake-ups).   Generally, the margin of 2 units is sufficient. So in this case, the optimum threshold will be 4. 
View full article
MCX W72 ナレッジハブ MCX W72xファミリーは、96MHzのArm ® Cortex ® -M33コアと、Matter、Thread、Zigbee、Bluetooth LEをサポートするマルチプロトコル無線サブシステムを搭載しています。専用のコアとメモリを備えた独立した無線サブシステムは、メインCPUの負荷を軽減し、主要アプリケーションのためにCPUを温存するとともに、FUTURE無線規格をサポートするためのファームウェアアップデートを可能にする。MCX W72xは、統合されたEdgeLock ® Secure Enclave Core Profileによる高度なセキュリティ機能も提供し、認証情報共有のためのNXPのEdgeLock 2GOクラウドサービスにも対応します。 MCX W72xファミリは、Bluetoothチャネルサウンディング機能を搭載し、測距レイテンシを低減するための専用オンチップ測位演算エンジンを備えています。アプリケーション固有のコード、接続スタック、および無線によるファームウェアアップデートをサポートするための追加メモリを搭載しています。さらに、無線サブシステムは、Bluetooth Low Energyスタックと並行して、ThreadまたはZigbeeのフルスタックを実行できます。これにより、無線機のリアルタイム処理がアプリケーションとは別のコアで実行されるため、信頼性の高い無線性能が実現します。 NXPが長年にわたり培ってきた産業用エッジソリューション提供の実績に基づき、MCX Wシリーズは-40℃~125℃の広い動作温度範囲と、オプションのCANインターフェースを含む産業アプリケーション向け**ペリフェラル**を提供し、長期的な産業利用をサポートするNXPの15年間の製品寿命延長プログラムの一部となります。 MCX Wシリーズは、 MCUXpresso開発者エクスペリエンス 組み込みシステム開発を最適化、簡素化、加速化する。 joseAntonio_ruiz_0-1739550415233.png   joseAntonio_ruiz_1-1739550414945.png セキュリティ認証 PSA認定レベル2 SESIPセキュリティターゲット SESIP KW47/MCXW72 SESIP証明書とSTはTrustCBにあります Webサイト 規制認証 欧州連合適合宣言書 - FRDM MCXW72 Bluetoothの要件 認定製品 | Bluetooth ®テクノロジーウェブサイト Q360996: KW47 / MCX W72 Bluetooth LE 6.0 (チャンネルサウンディング) コントローラー Q332147: KW47 / MCX W72 Bluetooth LE 6.0 (チャンネルサウンディング) ホスト 文書 MCX W72製品ファミリーデータシート MCX W72 リファレンスマニュアル MCX W72の正誤表 MCXW72 ハードウェア設計ガイド   MCX W72プラットフォームでのMatterの利用開始 NXP MCX W72 で OpenThread を使い始める   FRDM-MCXW72 ユーザーマニュアル FRDM-MCXW72の入門ガイド   MCX W72-LOC ユーザーマニュアル ブルートゥース Bluetooth技術にご興味がありますか? Bluetooth Low Energy Primer – BLEの基礎を理解するために必読の書。 Bluetooth ®仕様 -規格、プロトコル、技術文書の完全なリスト。 受賞歴と表彰 毎年、Bluetooth Special Interest Group (SIG) は、Bluetooth 技術の発展に貢献したとして同業者から認められたワーキンググループ、委員会メンバー、貢献者の努力と献身を称えています。 2024: チャネル Sounding 2025年:チャネルサウンディング振幅ベースの攻撃耐性、LEテストモードの機能強化、および測距プロファイルとサービス。 Bluetooth機能の概要 Bluetooth_5.0_機能の概要 Bluetooth_5.1_Feature_Overview Bluetooth_5.2_機能概要 Bluetooth_5.3_機能概要 Bluetooth_5.4_機能概要 Bluetooth 6の機能概要 Bluetooth 6.1の機能概要 Bluetooth 6.2 機能概要 Bluetooth 6.3 機能概要 アプリケーションノート ソフトウェア、ハードウェア、ペリフェラル: AN14850 MCX W72によるアプリケーションパフォーマンスの向上:このアプリケーションノートでは、汎用組み込みアプリケーションのパフォーマンスを向上させるために、MCX W72マイクロコントローラのデュアルコアアーキテクチャを使用する方法について説明します。 AN14937 MCX W72の32kHzクリスタルレスモード:このアプリケーションノートでは、MCX W72デバイスの32kHzクリスタルレスモードに関する情報を提供します。このモードを使用すると、32kHzのクロック精度を損なうことなく、システムのコストを削減できます。フリーランニング発振器(FRO32K)は32kHzクロックソースとして使用され、MCX W72の信号周波数アナライザ(SFA)モジュールを介して32MHz RF発振器に対して校正されます。 AN14745 MCX W72 のスマート電源スイッチの機能、使用方法、および性能:このアプリケーション ノートでは、MCX W72マイクロコントローラのスマート電源スイッチの使用方法について説明します。MCX W72には、接続されたコンポーネント(MCX W72の電源ドメインを含む)のオン/オフを切り替えるプログラム可能なソリッドステートスイッチが内蔵されています。 AN14747 MCX W72 のロードプルテストレポート:この文書では、供給電流、送信電力、および高調波レベルを測定する目的について説明します。これらの測定値は、被試験デバイス(DUT)が受ける複素出力負荷の振幅と位相を調整しながら監視されます。 パワーマネージメント:  AN14739 MCX W72 Bluetooth Low Energy 消費電力分析:このドキュメントでは、MCXW72-EVK ボードを使用した MCX W72 (IIoT) ワイヤレス MCU の消費電力分析について説明します。 AN14745 MCX W72マイクロコントローラのスマートパワースイッチの機能と使用方法:このアプリケーションノートでは、MCX W72マイクロコントローラのスマートパワースイッチの使用方法について説明します。MCX W72には、コネクテッドコンポーネント(MCX W72の電源ドメインを含む)のオン/オフを切り替えるプログラム可能なソリッドステートスイッチが内蔵されています。 AN14841 802.15.4 MCX W72 の マター および ZigBee 消費電力分析:このドキュメントでは、Kinetis MCX W72 (IIoT) ワイヤレス MCU の消費電力分析について説明します。 AN14742 MCX W72用電源管理ハードウェア:このアプリケーションノートでは、 MCX W72マイクロコントローラにおける電源管理専用の各種モジュールの使用方法について説明します。 AN14664 Kinetis BLEアプリケーション向けコインセルハードウェア推奨事項:この文書では、コインセルレベルでの電流ピークを最小限に抑えるためのハードウェアおよびソフトウェアソリューションについて説明します。 AN14889 :Bluetooth Low EnergyおよびIEEE 802.15.4向けFRDM-MCXW72無線周波数システム評価レポートこの文書では、Bluetooth Low Energy(2FSK変調)およびIEEE 802.15.4(OQPSK変調)アプリケーション向けFRDM-MCXW72ボードの無線周波数(RF)評価試験結果を示します。 RF: AN14865 KW47およびMCX W72用チャネルサウンディングの基礎:このドキュメントでは、CSテクノロジーの基礎と、カスタムソリューションやアプリケーションでどのように使用できるかについての概要を説明します。 AN14779 KW47およびMCX W72用プリントチャネルサウンディングアンテナ:このアプリケーションノートは、NXPがKW47およびMCX W72コントローラ向けに設計した、プリント回路基板(PCB)上に実装されたプリントアンテナに焦点を当てています。 AN14832 チャンネルサウンディングボードを設計するための基本的な手順 - 多様性のないシンプルなPCBの作成: この文書では、最小限のCSサブシステムの例を示します。無線周波数(RF)経路は、CSアプリケーション全体の特性に大きな影響を与えるため、特に注意が払われます。 AN14747 MCX W72用ロードプルテストレポート:この文書では、供給電流、送信電力、および高調波レベルを測定する目的について説明します。これらの測定値は、被試験デバイス(DUT)が受ける複素出力負荷の振幅と位相を調整しながら監視されます。 AN14868 ANSYSにおけるチャネルサウンディングのRFモデリング:チャネルサウンディングのシミュレーションと解析の手法に焦点を当てる ANSYSツールを使用した無線通信システム AN14855 さまざまな環境におけるチャネルサウンディングテスト:このアプリケーションノートは、 Bluetoothチャネルサウンディング(CS)は、Bluetooth周波数帯域における2つのデバイス間の距離を測定する技術です。精度に影響を与える主要な要因について説明します。 AN14869 複雑なチャネルサウンディングボードを設計するための基本的な手順:高度なCS機能をサポートするハードウェアの作成に焦点を当て、精度を向上させ、マルチパス伝搬などの問題を軽減するために、アンテナダイバーシティや最適化されたRFパスなどが含まれます。 AN2731 2.4GHz通信用小型平面アンテナ:このドキュメントは、アンテナ設計に関する網羅的な解説ではありません。むしろ、お客様がアプリケーションに適したアンテナタイプを選択できるよう、基板レイアウトとアンテナの基本について十分な理解を深めていただくこと、また、パフォーマンスの問題や遅延につながる典型的なレイアウトミスを回避していただくことを目的としています。 セキュリティ: AN14648 MCX W72 インシステムプログラミングユーティリティ:このドキュメントでは、MCX W72 MCUをISPモードで起動し、MCUと通信するための各種シリアル接続を確立する手順を説明します。 AN14613 MCX W72 セキュアブート(SECツール使用): MCX W72は、低消費電力でセキュリティの高いシングルチップ無線MCUです。フラッシュメモリの内容を暗号化データとして保存でき、瞬時に復号化できます。これにより、機密データやアルゴリズムの保護に役立ちます。 AN14646 MCX W72 でのデバッグ認証:このアプリケーション ノートでは、MCUXpresso Secure Provisioning Tool (SEC) を使用したデバッグ認証の手順について説明します。 AN14728 MCX W72 NPXを使用したフラッシュ暗号化:セキュリティ上の理由から、フラッシュメモリに保存されているアプリケーションコードとデータを暗号化して保護する必要性が高まっています。NVM PRINCE XEX(NPX)は、フラッシュメモリコントローラ(FMC)内のモジュールで、最大4つのフラッシュ領域の内容を保護することができます。NPXは、フラッシュコンテンツのオンザフライでの低遅延暗号化と復号化を実行し、開発者とCortex-M33プラットフォームに対して透過的です。開発者の視点から特別な操作は必要ありません。 AN14644 MCX W72 ライフサイクルの管理:このドキュメントでは、ユーザーが利用できるライフサイクルステージ、ライフサイクルへのアクセス方法、ライフサイクルの制限、次のライフサイクルへの移行方法について説明します。 AN14670 EdgeLock 2GO の SPSDK による MCU のプロビジョニング: EdgeLock 2GO は、NXP が運営するフルマネージドのクラウドプラットフォームであり、NXP MCU、MPU、および EdgeLock SE05x セキュアエレメントを統合した IoT デバイスの容易な展開と保守のためのセキュアなプロビジョニングサービスを提供します。 AN14624 EdgeLock 2GO のセキュアプロビジョニングツール (SEC) による MCU のプロビジョニング: EdgeLock 2GO は、NXP が運営するフルマネージドクラウドプラットフォームであり、NXP MCU、MPU、および EdgeLock SE05x セキュアエレメントを統合した IoT デバイスの容易な展開と保守のためのセキュアプロビジョニングサービスを提供します。 AN14544 EdgeLock 2Go MPUおよびMCU向けサービス: EdgeLock 2GOは、IoTデバイスのプロビジョニングと管理のためのNXPのサービスプラットフォームです。これにより、製造時または現場で、デバイスに鍵と証明書を安全にインストールし、デバイスのライフサイクル全体を通して認証情報を最新の状態に保つことができます。EdgeLock 2GOは、各デバイスのセキュリティ機能を活用することで、IoT機器群全体にわたって最適なレベルのセキュリティを実現します。 Bluetoothトレーニング Bluetooth Low Energy 6.0 NXP トレーニング MCX Wシリーズ トレーニング - NXPコミュニティ   RFスイッチ比較:吸収型/反射型 規格比較:ETSI / FCC / ARIBの要件 BLEチャネルサウンディング - 概要 BLEチャネルサウンディング - RFハードウェア BLEチャネルサウンディング - ANSYSモデリングツール BLEチャネルサウンディング - アンテナプロトタイプの検証測定 装置 無線機器:この記事では、プロジェクト開発に役立つ機器へのリンクを提供します。 役立つリンク集 KW47-EVKおよびFRDM-MCXW72用デバッグプローブファームウェアのインストールこの記事では、NXPのMCU-LINKインストーラを使用して、KW47-EVKおよびFRDM-MCXW72用のCMSIS-DAP/SEGGER J-linkファームウェアをインストールする方法について説明します。 KW47/MCXW72のワイヤレス環境におけるNBUのアップデートこの記事では、NBUファームウェアのアップデート方法について説明します。 MCUXpresso for Visual Studio Code でデモ例をインポートして実行する方法:この記事では、MCUXpresso for Visual Studio Code で、ARM GCC ツールチェーンを使用した新しい SDK からデモ例をインポートして実行する方法について説明します。 [MCUXSDK] KW4x、MCXW7x、MCXW2x 用 GitHub SDK の使い方 - NXP コミュニティこのコミュニティ投稿では、GitHub SDK の使い方をステップバイステップで解説します。 [MCUXSDK] GitHub SDK - Bluetooth LEプラットフォームのドキュメント - NXPコミュニティこのコミュニティ投稿では、BLEプラットフォームのドキュメントを提供します。 KW47(オートモーティブ)またはMCXW72(IoT/インダストリアル)を使用してPCBを初回から正しく構築する最良の方法:このコミュニティでは、KW45またはK32W148とMCXW71を使用してPCBを構築するための重要なリンクと、無線性能、低消費電力、無線認証(CE/FCC/ICC)に関するすべての情報を提供しています。 駆動強度変更時の DCDC 障害に対する回避策の実装駆動強度を低く変更し、DCDC 出力電圧が現在の出力電圧以上になったときに、まれに DCDC 障害が発生することがあります。 Kinetisファミリー製品でHCI_bbを使用し、DTMモードにアクセスする方法:この記事は2つのパートで構成されています。 HCI_bbバイナリをKinetis製品に書き込む方法。 R&S CMW270を使用してRF測定を実施する BLE HCIアプリケーションでトランスミッタ/レシーバのテストコマンドを設定する:この記事では、ユーザーがデバイスにシリアルコマンドを送信する方法を示す手順を説明します。 Bluetooth LE HCIブラックボックス クイックスタートガイド:この記事では、シリアルコマンドを使用してユーザーが無線を制御できるようにする簡単な手順について説明します。 Kinetis (../45/47/43;MCX W71/72/70) および MCX W23 パワープロファイルツール (ローカライゼーションを含む) : このページは、Kinetis (KW35/KW38/KW45/KW47/KW43) および MCX W7x (MCX W71/W72/W70) パワープロファイルツール専用です。このツールを使用すると、アプリケーション (自動車または IIoT) の消費電力を推定し、ソリューションのバッテリー寿命を評価できます。 KW47/MCXW72 32MHz & 32kHz 発振マージン: この記事では、回路の発振マージンを適切に設定する方法を説明します。 動画 NXPチャネルサウンディング技術とGoogle Pixel 10のインターフェースこれは、MCX W72 LOCボードがチャネルサウンディングを使用してGoogle Pixel 10スマートフォンと通信する様子を示すデモです。   サポート MCX W72に関するご質問がある場合は、弊社のワイヤレスMCUコミュニティにご質問をお寄せください。 ここ
View full article
i.MX95 上の dm-eiq-genai-flow-demonstrator に必要な BSP バージョン こんにちは、チーム 私は、Yocto 環境内で動作する i.MX95 プラットフォーム上の dm-eiq-genai-flow-demonstrator (GenAI Flow) を調査しています。以下を明確にしていただけますか: 1.デモをエンドツーエンドで実行するために最低限必要な BSP バージョン (例: L6.12.20_2.0.0) は何ですか? 2.この BSP には、LLM 推論 (RAG) をサポートするために必要なすべての要素 (更新された Neutron デリゲート、TFLite ランタイム、ツールなど) が含まれていますか? 3.このデモに推奨される追加の Yocto メタレイヤーまたはイメージレシピ (たとえば、meta-eiq-genai) はありますか? ご意見をよろしくお願いします! よろしくお願いします、 ヴァルシル・ガンジー Re: BSP Version Required for dm-eiq-genai-flow-demonstrator on i.MX95 こんにちは、ヴァルシルさん。 ご質問ありがとうございます。 それらの質問に答えてみたいと思います。 1. このパッケージは当初、i.MX95 rev Ax の Q1 BSP L6.12.3-1.0.0 用に作成されました。 2. このQ1 BSPには、LLM推論でNeutronを活用するために必要な機能が直接含まれていません。そのため、このパッケージはメタレイヤーを提供しています。 3. この meta-eiq-genai-flow メタレイヤーは、Neutron 上の LLM 操作を高速化し、CPU リソースの一部を解放するための Onnxruntime Neutron 実行プロバイダーを追加する可能性を提供します。これにはカーネルと Neutron Fw 用の関連パッチ/ファイルが含まれます。なお、このプロジェクトでは TF Lite ではなく onnxruntime を使用しています。 とはいえ、 Q2 BSP (例:L6.12.20_2.0.0)が本日リリースされます。i.MX95のB0リビジョンをサポートしていますが、NeutronのLLMアクセラレーションが利用できないため、CPUモードのみで動作します。 ありがとう、そしてよろしく。 ピエール  
View full article
カスタムM7セカンダリブートローダー i.MX RT1176 こんにちは、現在、m7 と m4 の両方のコア FW は QSPI フラッシュ FlexSPI1 0x30000000 に格納されています。最初に M7 が起動し、次に QPSI から ID のエイリアスにイメージをコピーしてコア M4 を起動します0x20200000。すべて正常に機能しています。 次に、特定の検証に基づいてM7コアを起動し、M7がm4を起動するカスタムブートローダーを追加したいと思います。また、M7 / M4または両方のファームウェアのOTAも処理されます。 標準のセカンダリブートローダーコードはありますか?参考までにシェアしてください。 ありがとうございます
View full article
i.MX8MPカーネルブートロゴとyoctoプロジェクトのスプラッシュイメージを独自のカスタムロゴと画像に変更する方法 NXPサポートチーム様 U-Boot の最初から表示されるロゴや画像をすべて変更したいと思います。 HDMI モニターをボードに接続すると、4 匹のペンギンと、進行状況バー付きの Yocto プロジェクト イメージが表示されます。 それらの画像を自分のカスタム画像に変更したいと思います。 どのように変更すればよいか教えてください。 私は Yocto Linux imx を初めて使用するので、可能であれば詳しく説明してください。 よろしくお願いします。 Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i こんにちは、 @Rita_Wan 8MP_LVDS_patchに基づいて、U-Boot でディスプレイを正常に動作させることができました。しかし、カーネル部分を追加すると、U-Boot とカーネル表示間のシームレスな遷移が実現できませんでした。カーネル側では異常な動作 (画面のちらつき) が見られますが、U-Boot の表示はまったく正常です。 これについて何か提案をいただけませんか?問題の原因は何でしょうか? Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i こんにちは@bych 、 試すのに簡単な方法を見つけました: Linuxカーネルロゴ netpbm ツールを使用して、png 画像を ppm 画像に変換します。 $ pngtopnm linux_logo.png > linux_logo.pnm $ pnmquant 224 linux_logo.pnm > linux_logo_clut224.pnm $ pnmtoplainpnm linux_logo_clut224.pnm > logo_linux_clut224.ppm   変換した ppm ファイルをカーネルのドライバ/video/logo/ ディレクトリに配置し、logo_linux_clut224.ppm ファイルを置き換えます。 カーネルを再コンパイルすると、ロゴが新しい画像に置き換えられます。 お試しになることができます。 良い一日をお過ごしください Bset よろしく リタ Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i 私は i.MX8M Plus プロセッサをベースにした独自のカスタム ボードを持っていますが、このカスタム ボードは i.MX8M Plus EVK ボードと同じように設計されています。 ボードの起動に成功し、HDMI 経由のディスプレイも正常に表示されます。 しかし、私はブート ロゴ (4 つのペンギン) とスプラッシュ スクリーン (進行状況バー付きの Yocto プロジェクト ロゴ) を独自のカスタム ロゴに変更したいだけです。 パッチを提供してもらいましたが、そのパッチを u-boot またはカーネルに適用する方法がわかりません。 これらのパッチの使用方法と適用方法を教えてください。 ありがとう。 Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i あなたの手にあるボードは何ですか?nxp ボード、または自分でデザインしたボードでは、すでにボードを起動して表示していますか? Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i これらのパッチをどのように適用すればよいか教えていただけますか?これまでパッチを適用したことがありません... Re: How to change i.MX8MP kernel boot logo and yocto project splashimage to my own custom logo and i LVDS で実現されている u-boot およびカーネルのパッチを参照できます。方法はほぼ同じです。 U-Boot とカーネル間の i.MX 8MP LVDS シームレス ディスプレイ (连续显示) - NXPコミュニティ
View full article
requset activation code for S32DS V2.2 The license of S32 Design Studio for ARM v2.2 was expired.  Please give me a valid code. Re: requset activation code for S32DS V2.2 Hi,  your S32DS license has been extended. 
View full article
S32K344 CAN 接收 参考 "Can_Example_S32K344 "示例项目。 CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_WRITE "变为 "STD_ON","Can_43_FLEXCAN_MainFunction_Read" "被禁用,因此无法接收 CAN 信号。 Can_43_FLEXCAN_MainFunction_Read_CanMainFunctionRWPeriods_0" 未启用。 我已经安装了 3 个频道,“FLEXCAN_0”、“FLEXCAN_2” 和 “FLEXCAN_5”。 CAN_43_FLEXCAN_setting_07.png CAN_43_FLEXCAN_setting_06.png CAN_43_FLEXCAN_setting_05.png CAN_43_FLEXCAN_setting_03.png CAN_43_FLEXCAN_setting_02.png CAN_43_FLEXCAN_setting_01.png CAN_43_FLEXCAN_setting_04.png         附带的是 "FLEXCAN_0 "的 "Can_43_FLEXCAN "设置屏幕。 Re: S32K344 CAN receive 你好,@toru88、 应该没有问题。传输时,请确认波特率和采样点是否设置正确。您使用的是两块板还是 CAN 分析仪工具? 社区中有一些 CAN 示例,请参考: [RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCAN 示例中断/轮询-恩智浦社区 示例 S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO DMA 测试 S32DS3.5RTD400 - NXP 社区 示例 S32K358 FlexCAN TXRX ISR S32DS35 RTD400/500 - NXP Community 致以最诚挚的问候, Julián Re: S32K344 CAN receive 你好,胡利安 由于无法更改到版本 6.0,我能够通过执行以下定义进行构建。 这个答复有问题吗? #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_0 CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_0 #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_1CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_1 #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_2 CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_2 #defineCAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_3 CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_3 #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_4CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_4 #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_5 CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_5 我正在尝试让它工作,但无法发送/接收 CAN。 我参考 “Can_Example_S32K344” 进行设置。 我认为如果取消选中 "Can Loop Back Mode(可回环模式)",就可以从外部发送/接收 CAN 数据。 CAN 数据接收到 MCU 的终端。 是否有任何在 CAN 总线上发送和接收帧的示例代码? 致以最诚挚的问候, toru88 Re: S32K344 CAN receive 你好,@toru88、 你说得对。我测试了您的项目,没有生成主函数 RW 周期的正确定义。但是,这个问题似乎已在6.0.0版本中修复(我目前正在使用RTD代码包)。您能将 RTD 更新到新版本吗? 如果没有,只需编辑Can_43_FLEXCAN_Cfg.h即可。文件,如下所示。 从这里: /** * @brief Period for cyclic call of Main Function Read/Write */ #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_0 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_1 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_2 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_3 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_4 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_5 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_WRITE (STD_ON) #define CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_READ (STD_ON) 对此 /** * @brief Period for cyclic call of Main Function Read/Write */ #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_0 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_1 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_2 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_3 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_4 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_WRITE_PERIOD_CanMainFunctionRWPeriods_5 (0.001F) #define CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_WRITE (STD_ON) #define CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_READ (STD_ON) Re: S32K344 CAN receive 你好,胡利安 我有同样的设置,但结果不同。 无法生成 RWPeriods_0/1/2。 附上设置屏幕截图。 我还附上了正在开发的 S32K 项目。 请检查 "AGV_CTRL.mex"。 用户程序已删除。 S32K Design Studio for S32 Platform 的版本为 "Verison 3.5"。 致以最诚挚的问候, toru88 Re: S32K344 CAN receive 你好,@toru88、 当仅定义了 1 个 RW 周期时,使用单个函数进行轮询: void Can_43_FLEXCAN_MainFunction_Read(void); 另一方面,当定义多个周期时,会针对不同的时间要求定义多个轮询函数: void Can_43_FLEXCAN_MainFunction_Read_CanMainFunctionRWPeriods_0(void); void Can_43_FLEXCAN_MainFunction_Read_CanMainFunctionRWPeriods_1(void); // etc. 但是,您还需要在 CanHardwareObject 容器中正确配置 CAN 实例各自的 RWperiod,否则,在生成代码时,将不会生成 RWPeriods_0/1/2/3: Julin_AragnM_2-1753122323908.png Julin_AragnM_3-1753122328501.png Julin_AragnM_4-1753122358711.png 致以最诚挚的问候, Julián Re: S32K344 CAN receive 你好 Julián_AragónM 感谢您的答复。 感谢您的回复。 CAN_43_FLEXCAN_MAINFUNCTION_MULTIPLE_WRITE "变为 "STD_ON","Can_43_FLEXCAN_MainFunction_Read "从编译目标中删除。 以下定义尚未完成。 - CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_0 - CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_1 - CAN_43_FLEXCAN_MAINFUNCTION_READ_PERIOD_CanMainFunctionRWPeriods_2 由于未设置该定义,因此无法启用以下功能。 因此,在 Main 中调用的代码中会出现编译错误。 -can_43_flexcan_mainfunction_read_canMainFunctionrwperiods_0-can_43_flexcan_mainfunction_read_canMainfunctionrwperiods_1-can_43_flexcan_mainfunctionrwperiods_read_c anMainfunctionrwp 该代码尚未运行,无法版本。 顺祝商祺! toru88 Re: S32K344 CAN receive 你好,@toru88、 您能提供更多信息吗?您是否在 FlexCAN 接收方面遇到问题?您提到""Can_43_FLEXCAN_MainFunction_Read" 已禁用,因此无法接收 CAN。",您的主代码中是否无法读取帧? 如果可能,请分享您的项目(或 main.c文件),这样我就能了解你的日常工作是什么了。 此外,您还可以参考 RTD 中的示例。它们与本培训演示中显示的相同:S32K3xx 通信模块:带有 rtd 和低级驱动程序的 flexcan。 这些项目配置为环回,因此需要启用正常/用户模式并初始化收发器输出引脚(CAN_H& CAN_L)。 还有一些社区帖子提供了一些实例: 示例 S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO DMA 测试 S32DS3.5RTD400 - NXP 社区 已解决:S32K344 EVB 与 MCAL FLEXCAN TJA1153 - NXP Community 致以最诚挚的问候, Julián
View full article
S32G3:热关机 嗨,团队 硬件:基于 S32G3。 读取 1 区温度(A-core)时。当温度达到 "64 摄氏度 "时,硬件将重新启动。 下面是 Linux 系统的信息。连续读取三个区域的温度值,问题发生时的值如下。 64350(0 区) 64350(1 区) 62850(2 区) kernel[435]:[ 7919.187233] thermalthermal_zone1: a53_cores:达到临界温度,正在关闭 内核[435]:[ 7919.187252] 重新启动:硬件保护关闭(温度过高) 在 Linux DTS 中配置的警戒温度为 80 度,临界温度为 100 度,尽管我们配置了 100 度,但在 64 度时仍可观察到重启。 Re: S32G3: Thermal Shutdown 你好,@yellapu_anishkh 感谢您的回复。 自 BSP39 以来,有几个与 TMU 相关的问题,其中一些已在 BSP40 中修复,而另一些已在以后的版本中修复,如果可能的话,我建议在 BSP42 上对其进行测试 BR 切宁 Re: S32G3: Thermal Shutdown 您好, 我看到了该驱动程序的一个提交 (c5697686c8d19ff1edbce015fa5562ba2a2065e6)。评论中提到了它,但 Jira ID (ALB-10663) 并不匹配。请您确认一次。 Re: S32G3: Thermal Shutdown 你好,@yellapu_anishkh 感谢您的回复。 我检查了源代码,建议尽可能在 BSP42(或更新版本)下对您的情况进行测试,因为从这个版本开始应用了一些错误修复,从现有信息来看,您提到的错误也得到了修复。 BR 切宁 Re: S32G3: Thermal Shutdown 您好, 在 BSP39 上可以观察到这种情况,BSP39 版本说明中提到了以下问题。 我查看了从 BSP39 到 BSP44 的版本说明,发现当前的错误尚未修复。能否请您确认一下,是否已经修复? yellapu_anishkh_0-1753164457500.png Re: S32G3: Thermal Shutdown 你好,@yellapu_anishkh 谢谢您的帖子。 我知道你可以在基于 S32G3 的定制板上对其进行测试,对吗?我能知道你在使用哪个版本的电路板支持包吗?一旦确认,我会首先检查内核代码。 BR 切宁
View full article
S32G 无法通过串行端口编程的问题 S32G3 你好,根据问题,我再次使用 S32G399A 芯片。正常启动后,我连接串行端口,然后使用闪存工具进行刻录。错误报告界面如下所示,电流可下降约 30mA(12V 电源)。请您帮我找出原因,并确定我应该从哪个方向进行调查。谢谢。 LONGGANGSU_0-1753251671159.png Re: The issue of S32G failing to be programmed through the serial port 此问题已解决,谢谢回复。 Re: The issue of S32G failing to be programmed through the serial port 您好,从您更新的信息来看,问题有可能与您的时钟设计有关。 目前而言,在 S32 Flash 工具中,没有支持S32G3 custom board+Oscillator的功能,我并没有看到有目前可用的相关二进制文件来支持您的情况。 给您带来的不便很抱歉。 BR Chenyin Re: The issue of S32G failing to be programmed through the serial port 你好, 1、我现在根据S32G-VNP-RDB3设计的自己主板。 2,Flash Tool :Version: 2.3.2,如下图。 LONGGANGSU_0-1753267499379.png 3、我自己的主板,Flash型号是:MX25UW51245GXDQ00。 我现在遇到的这个问题,是否是因为时钟的问题引起? 我的时钟现在使用的是单端时钟。部分原理图如下。 LONGGANGSU_1-1753267647526.png 然后,我下午把我的BOOTMOD[1:0]改为1:0后,可以烧录到SRAM中,并且串口也能打印出“hello world”,但是仍不能烧录到Flash。帮忙分析下原因。谢谢。 Re: The issue of S32G failing to be programmed through the serial port 你好,@龙岗素 谢谢您的帖子。 我知道你愿意刷新 S32G 板的 QSPI。 1。我能知道你是否在使用定制板吗?还是恩智浦的 RDB3/EVB3? 2.使用的是哪个版本的闪存工具? 3.如果是定制板,QSPI 的部件号是多少,它是你在 Flash 工具中选择的吗? BR 切宁
View full article
NXP:蓝牙与信道探测天线 这些幻灯片是为马德里卡洛斯三世大学的欧洲天线学校准备的。内容: - 关于NXP和无线控制器 - 关于信道探测和NXP解决方案 - CS天线设计及功能测试 - CS天线阵列与CS定位
View full article