Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
Example S32K312 PIT BTCU parallel ADC FIFO DMA DS3.5 RTD300 This example for S32K312 is based on this, example on S32K344 :-- https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-PIT-BTCU-parallel-ADC-FIFO-DMA-DS3-5-RTD300/ta-p/1732444 *******************************************************************************  The purpose of this demo application is to present a usage of the  ADC_SAR and BCTU IP Driver for the S32K3xx MCU.  The example uses the PIT0 trigger to trigger BCTU conversion list to  perform parallel conversions on ADC0/ADC1. Three ADC channels  are selected to be converted on each ADC:  ADC0: S8 , P0, S8  ADC1: S10, S13, S17  Converted results from BCTU FIFO are moved by DMA into result array.  ADC channel S10 is connected to board's potentiometer.  ------------------------------------------------------------------------------ * Test HW: S32K3X4EVB-Q172 * MCU: S32K312 * Compiler: S32DS3.5 * SDK release: RTD 3.0.0 * Debugger: PE Micro * Target: internal_FLASH ******************************************************************************** Set PIT Freeze Enable :--- Dinesh_Guleria_0-1707202447324.png BCTU will be do the parallel conversion for channel mentioned in BCTU list :-- Dinesh_Guleria_3-1707204479195.png   Dinesh_Guleria_1-1707202600904.png "NEW DATA DMA enable mask" :-- controls These bit field in MCR register Dinesh_Guleria_0-1707203759290.png "ADC target mask" :-- It controls "ADC_SEL " bit field in "Trigger Configuration (TRGCFG_0 - TRGCFG_71)" for single conversions you can enable only one instance so the possible values for target mask: 1 (0b001) ADC0 2 (0b010) ADC1 3 (0b100) ADC2| for list of conversions we can enable also parallel con version for example 3 (0b011) parallel conversion of ADC0 and ADC1 The trigger is configured as a list of parallel conversions ADC0, ADC1 in “Adc Target Mask”. List of ADC channels is defined in “BCTU List Items” while order is given by the “Adc Target Mask”: BctuListItems_0 is ADC0, BctuListItems_1 is ADC1 etc. Dinesh_Guleria_3-1707204011310.png Dinesh_Guleria_4-1707204043898.png Dinesh_Guleria_2-1707203974137.png Result :-- I connected VDD from board on adc_0_p0 (PTD1 : J412-1)  and adc_1_p2 (PTE0 J412-13). Also POT value on S10 of ADC-1 & ADC-0-VREFH value coming correct & STABLE. Dinesh_Guleria_1-1707330412160.png Dinesh_Guleria_0-1707330375235.png =========================Using  FIFO-2 ================= Dinesh_Guleria_0-1732514437470.png FIFO-2 Trigger & LIST Index :-- Dinesh_Guleria_1-1732514506589.png Dinesh_Guleria_2-1732514539640.png ADC channel conversion :-- Dinesh_Guleria_3-1732514707504.png
記事全体を表示
无用户界面的 mx8_ddr_stress_test i.MX8/i.MX8X/i.MX8DXL 具有 DDR 压力测试工具。这是一个窗口 UI 程序。 在某些情况下,i.MX 设备处于安全锁定状态。需要已签名的镜像才能运行。 例如,对单元故障字段进行返回分析,在现有的板上切换新的 DDR 部件。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: mx8_ddr_stress_test 无用户界面 mx8_ddr_stress_test(无 UI)的主要目的是处理和分析现场返修的、已启用安全关闭功能的设备。它使用与产品设备相同的DDR配置。 您的问题对我来说不太清楚。我想说,如果DDR压力UI版本可以实现,那么没有UI也可以实现。但它无法动态加载不同的配置。 这里是知识库空间。我只想回答有关“mx8_ddr_stress_test without UI”的问题。我不希望其他人感到困惑。 感谢您的理解。 如果您需要针对新的 DDR 硬件配置生成新的配置参数。您可以使用RPA生成符合您设计的内容。 请向恩智浦社区提交问题工单。我的同事会帮助您。
記事全体を表示
[Zephyr ® Series] Part 4: Overview and Practical Applications of Kconfig and Device Trees (Japanese Blog) Zephyr-series-4-title.png   From this point on, we'll be moving on to the advanced topics of Zephyr. This session will cover an overview of Kconfig and device trees, followed by hands-on programming exercises to help you utilize them effectively.   One of the key features of Zephyr RTOS, as mentioned previously, is its software scalability (reusability), which makes it easy to reuse software developed once in other projects or derivative products, enabling rapid development.   Furthermore, to support a wide range of hardware platforms, Zephyr employs a powerful configuration system called "Kconfig" and "Devicetree".   This allows you to port programs to different microcontroller boards simply by changing configuration files, without having to rewrite the source code in the same C/C++ language. This article explains the basic mechanisms of Kconfig and the device tree. As a practical application, we will modify the hardware-independent LED blinking program created in Part 3 to run on two different microcontroller boards: " FRDM-MCXA153 " and " FRDM-MCXN947 ".   To run the same application on different boards (microcontrollers and processors), we will explain practical programming methods using Kconfig and the device tree.     table of contents   Preparation Kconfig Basics Device tree fundamentals Best practices for improving software reusability Kconfig and the Device Tree in Practice Create a simple program (hands-on) 1. Program Specifications 2. Directory structure 3. Create Kconfig and prj.conf 4. Creating device tree overlays and board-specific settings 5. Hardware-independent common code (main.c) Create 6. Build and run summary Preparation   Hardware preparation   This article will primarily use the following boards to create and test programs. FRDM-MCXA153 (main use) Additionally, the following boards will be used as supplementary tools to verify the portability of the program you have created. FRDM-MCXN947   SW preparation   This guide assumes that you have already set up the Zephyr development environment (Zephyr SDK, West command, etc.). If you haven't set it up yet, please refer to the second article on environment setup. [Zephyr ® Series] Part 2: First Build and Testing (Japanese Blog)   We will be using the LED blinking program created in the third installment of the Zephyr series. If you haven't created it yet, we recommend creating it by referring to the previous article. [Zephyr ® Series] Part 3: First Steps in Blinking an LED and Software Reusability (Japanese Blog)   Kconfig Basics     Kconfig is a configuration system also used in the Linux kernel. In Zephyr, it is used to manage whether to "enable or disable" software features, or "what parameters to set," such as kernel functions, device drivers, subsystems, and application-specific settings. The following two files are important for Kconfig: The "Kconfig" file defines the selectable configuration items (symbols), their default values, and dependencies. "prj.conf" file *: This file is where application developers specify the values they want to set for items defined in "Kconfig" (such as enabling them with "y" or providing specific numerical values). Using Kconfig, you can exclude unnecessary code from compilation and optimize memory usage. Furthermore, the Kconfig and prj.conf files are all written in text format. How to enable the feature The prj.conf file enables features for the entire project. For example, the ADC, DAC, and OPAMP drivers are defined in Kconfig. When using the functions defined in Kconfig, you declare them by adding "CONFIG_" to the beginning of prj.conf. Kconfig:ADCの定義Kconfig: ADC definition prj.conf例prj.conf example   Device tree fundamentals   Devicetree例Example of a device tree   The device tree is a text file that describes what hardware (CPU, memory, peripherals, pin settings, etc.) a microcontroller supports, as well as the settings and configuration of that hardware. These settings and configurations are then expanded into macros.   Instead of directly writing hardware addresses into C code (hardcoding), information described in the device tree can be read through Zephyr macros, enabling hardware-independent programming. Nodes and Properties: Each element of hardware is represented as a "node" in a hierarchical structure, and register addresses, interrupt numbers, etc., are described as "properties." ".dts" and ".dtsi": Standard hardware configurations for each microcontroller and board are predefined within the Zephyr repository in ".dts" (Devicetree Source) and ".dtsi" (Include) files. dts: Described as the device tree of the board. dtsi: Describes the device tree of an SoC/microcontroller and is provided by the device manufacturer. ".overlay" file: This file is created when you want to override application-specific wiring (e.g., connecting an LED to a specific GPIO pin) or default settings.   Best practices for improving software reusability   To enhance software reusability in Zephyr, it is important to follow the following design principles: Separation of hardware-dependent and hardware-independent parts: C code (`main.c`) For example, avoid directly writing about specific microcontroller register operations or pin numbers. Leverage device tree aliases: Instead of directly referencing actual hardware nodes (e.g., `&red_led` or `&gpioa`), applications should reference abstract names defined in the `aliases` node (e.g., `led0`). This allows you to adapt to different boards simply by changing what the alias points to. Prepare a board-specific device tree (overlay) : When there are differences in some functions, such as in derivative products, you can overwrite (overlay) only the parts with hardware differences for each board. Switching features with Kconfig : Application behavior parameters and the on/off status of specific features are controlled using Kconfig symbols instead of C language "#define".   Kconfig and the Device Tree in Practice   From here, we will learn how to use Kconfig and the device tree by creating a simple program so that we can actually use them in practice .     Create a simple program (hands-on) The program will be created by modifying the LED blinking program we created last time, and will have the following specifications.   Here, as a practical exercise, we will create a common application that runs on both "FRDM-MCXA153" and "FRDM-MCXN947". 1. Program Specifications Source code : Use the code from "Part 3: Your First LED Blinking Program" and make the following modifications. LED blinking speed: The blinking interval can be set using Kconfig. Button Function (Enable/Disable): The button function can be enabled or disabled via Kconfig settings. When enabled, pressing the button will toggle between blinking and constant illumination of the LED. Outputting board name: At startup, the "device (board) name" configured in Kconfig will be output to standard output (terminal). 2. Directory structure   The project directory structure should be as follows:   Add the Kconfig file and boards folder to the "my_hello" folder of the LED blinking program you created last time. Any method of adding the files is fine. On Windows, use the PowerShell `ni` command or a text editor to create a new file and save it in the `my_hello` folder. In Linux, you can create a new, empty file using the `touch` command.   The files under "boards/" handle hardware differences and unique settings specific to each board.     my_hello/ ├── CMakeLists.txt ├── Kconfig <- 新規追加:アプリ独自のKconfig ├── prj.conf <- アプリの共通設定 ├── src/ │ └── main.c <- ハードウェア非依存の共通コード └── boards/ <- 新規作成フォルダ  ├── frdm_mcxa153.overlay <- 新規作成:FRDM-MCXA153用のデバイスツリー設定  ├── frdm_mcxa153.conf <- 新規作成:FRDM-MCXA153用のKconfig設定  ├── frdm_mcxn947_cpu0.overlay <- 新規作成:FRDM-MCXN947用のデバイスツリー設定  └── frdm_mcxn947_cpu0.conf <- 新規作成:FRDM-MCXN947用のKconfig設定   Note : By creating specific files within your application's directory, Zephyr's build system (West) will automatically recognize them and apply the settings. Adding Kconfig: You can add your own configuration symbols by placing a "Kconfig" file in your Applications folder. Board-specific settings ("boards/" directory): By creating a "boards" directory within your application and placing "[board name].overlay" or "[board name].conf" files there, the overlay and Kconfig overrides will be automatically applied only when building with that board as the target.   3. Create Kconfig and prj.conf First, create your own "Kconfig" in the application root directory and define application-specific parameters. my_hello/Kconfig   mainmenu "my LED blink" config CUSTOM_BLINK_RATE_MS int "LED blink rate in milliseconds" default 1000 help Set LED blink frequency. #LEDの点滅周期(ミリ秒)を設定します config ENABLE_BUTTON_TOGGLE bool "Enable button to toggle LED state" default y help Enable button to toggle LED state. # ボタン入力によるLEDの点滅/点灯状態>の切り替え機能を有効にします。 config BOARD_NAME_STRING string "Board Name String" default "Unknown Board" help Set board name for printf. # 標準出力に表示するボード名を設定します。 source "Kconfig.zephyr"     Next, as a common setting for the entire application, there is "prj.conf". This will be written. In this prj.conf file, use the Kconfig symbol you just created to configure it as follows: my_hello/prj.conf   # GPIOの有効化 CONFIG_GPIO=y # アプリケーションの共通設定 CONFIG_CUSTOM_BLINK_RATE_MS=500 CONFIG_ENABLE_BUTTON_TOGGLE=y   4. Creating device tree overlays and board-specific settings Create a directory called "boards" and prepare the necessary files for each board. Main board for FRDM-MCXA153     We map the button on the board (`sw2`) so that it can be accessed from the application using the standard alias `sw0`. `led0` is already in the board definition so it can be omitted here, but it can be explicitly overridden if needed.   my_hello/boards/frdm_mcxa153.overlay / { aliases { sw0 = &user_button_2; /* FRDM-MCXA153のユーザーボタン */ }; };   my_hello/boards/frdm_mcxa153.conf   CONFIG_BOARD_NAME_STRING="FRDM-MCXA153 Board"   By referencing the symbols in this .conf (board-specific Kconfig) within the application (main.c), it becomes possible to output the board name to standard output using the printf function. For FRDM-MCXN947 Similarly, we define "sw0" in the FRDM-MCXN947. This handles any differences in the hardware names of the buttons.   In fact, if the hardware names (which differ depending on the peripheral or instance) vary across boards, you assign the actual hardware to the alias node in the device tree. my_hello/boards/frdm_mcxn947_cpu0.overlay   / { aliases { sw0 = &user_button_3; /* FRDM-MCXN947のユーザーボタン */ }; };   my_hello/ boards/frdm_mcxn947_cpu0.conf   I'll try overriding the LED blinking speed to 250ms only when building with MCXN947.   CONFIG_BOARD_NAME_STRING="FRDM-MCXN947 Board" CONFIG_CUSTOM_BLINK_RATE_MS=250 The application code is the same for FRDM-MCXA153 and FRDM-MCXN947, but you can configure the blinking behavior of the LED separately here. 5. Hardware-independent common code (main.c) Create Write the following in "my_hello/src/main.c":   The LED control section reuses the hardware-independent code (using the "led0" alias) created in the previous article, and incorporates Kconfig and button control into it. my_hello/ src/main.c   #include #include #include /* Devicetreeのエイリアスを参照する */ /* どのボードでも、一番目のLEDは通常 "led0" と定義されています */ #define LED0_NODE DT_ALIAS(led0) #define SW0_NODE DT_ALIAS(sw0) /* エイリアスからGPIO仕様(ポート、ピン、フラグ)を取得 */ static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios); /* ボタン機能がKconfigで有効化されている場合のみコンパイルされる部分 */ #ifdef CONFIG_ENABLE_BUTTON_TOGGLE static const struct gpio_dt_spec sw = GPIO_DT_SPEC_GET(SW0_NODE, gpios); static struct gpio_callback button_cb_data; static bool is_blinking = true; void button_pressed(const struct device *dev, struct gpio_callback *cb, uint32_t pins) { is_blinking = !is_blinking; if (!is_blinking) { /* 点滅オフ時はLEDを点灯させた状態にする */ gpio_pin_set_dt(&led, 1); } } #endif //CONFIG_ENABLE_BUTTON_TOGGLE int main(void) { int ret; /* Kconfigで設定されたボード名を出力 */ printf("Starting application on %s\n", CONFIG_BOARD_NAME_STRING); /* デバイスの準備確認 */ if (!gpio_is_ready_dt(&led)) { return -1; } /* ピンの設定 (Devicetreeで定義された初期状態などを考慮して設定) */ ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE); if (ret < 0) { return -1; } #ifdef CONFIG_ENABLE_BUTTON_TOGGLE if (!gpio_is_ready_dt(&sw)) { return -1; } ret = gpio_pin_configure_dt(&sw, GPIO_INPUT); if (ret < 0) { return -1; } ret = gpio_pin_interrupt_configure_dt(&sw, GPIO_INT_EDGE_TO_ACTIVE); if (ret < 0) { return -1; } gpio_init_callback(&button_cb_data, button_pressed, BIT(sw.pin)); gpio_add_callback(sw.port, &button_cb_data); #endif //CONFIG_ENABLE_BUTTON_TOGGLE while (1) { #ifdef CONFIG_ENABLE_BUTTON_TOGGLE if (is_blinking) { ret = gpio_pin_toggle_dt(&led); } #else /* ピンの状態を反転 (ボタン機能が無効な場合は常に点滅) */ ret = gpio_pin_toggle_dt(&led); #endif //CONFIG_ENABLE_BUTTON_TOGGLE /* Kconfigで設定された点滅間隔で待機 */ k_msleep(CONFIG_CUSTOM_BLINK_RATE_MS); } return 0; }     6. Build and run Now, let's actually test its functionality. Please refer to the previous article for instructions on setting up the build environment and enabling the west command. First, navigate to the directory of your installed zephyrproject repository as shown in the command instructions below, enable west, and then proceed. Operation confirmed with FRDM-MCXA153 (main) Build using the following command and write it to the FRDM-MCXA153.   ## ホームディレクトリからZephyrprojectディレクトリに移動 cd ~/zephyrproject ## west環境を有効化 source .venv/bin/activate ## zephyr v4.3をチェックアウトしていない場合は、前回(第3回 初めてのLチカとソフトウェアの再利用性)を参考にv4.3をチェックアウトしてください。 west build -b frdm_mcxa153 my_hello west flash     Execution result   コンソール出力Console output   LED点滅、点灯モード切り替えLED flashing and steady light mode switching   The message "Starting application on FRDM-MCXA153 Board" will appear in the terminal. The LED blinks at 500ms intervals ("prj.conf"). (Settings). Pressing SW2 ("custom-sw") will turn it on, and pressing it again will return it to blinking. Operation confirmed with FRDM-MCXN947 We'll build the project using the exact same C source code, only changing the board specification.   # -pオプションを使用し、frdm_mcxa153のビルド情報をクリーンしてビルドします。 west build -p -b frdm_mcxn947//cpu0 my_hello west flash   Execution result   The contents of "boards/frdm_mcxn947_cpu0.conf" will be automatically applied, and the terminal will display "Starting application on FRDM-MCXN947 Board". The LED blinks rapidly at 250ms intervals (configured in "prj.conf"). Pressing SW3 (the button mapped to "user_button_3" on the MCXN947) will similarly switch between LED illumination and blinking. While the FRDM-MCXA153 and FRDM-MCXN947 use different GPIOs for controlling LEDs and switch buttons, the device tree effectively absorbs these differences, demonstrating how cleanly the application program and hardware are separated.   summary     In this session, we learned the basics of Kconfig and device trees in Zephyr, and practiced techniques to separate hardware-dependent parts from C code by utilizing them.   I believe you've experienced a powerful mechanism for reusing the same source code across multiple different boards, where hardware settings are absorbed by the device tree overlay (".overlay"), application parameters can be flexibly changed and features can be easily enabled or disabled using board-specific Kconfig files (".conf").   ========================== We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to "Technical Questions to NXP - How to Contact Us (Japanese Blog)" when making inquiries. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) Zephyr-series-4-title.png This document provides an overview of the device tree and Kconfig, features designed to enhance Zephyr's software reusability. It then outlines the steps required to utilize these features in practice. After reading through this Zephyr series, from the first installment to the fourth, you will be able to write programs using the Zephyr RTOS. General Purpose Microcontrollers MCX Japanese Blog
記事全体を表示
在 FRDM-IMX95 上调试 Ara240 模块 入门视频 (function() { var wrapper = document.getElementById('lia-vid-6393577020112w960h540r856'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (在我的视频中查看) 本指南提供分步说明,说明如何验证与 Ara240 模块的成功通信以及与 FRDM i.MX 95 开发板接口的运行时软件环境。 打破常规 熟悉 Ara240 模块 Ara240 Module [Top view]Ara240 模块 [俯视图] Ara240 Module [Back view]Ara240 模块 [后视图]      连接 M.2 模块 本节介绍如何将分立模块 Ara240 连接到 FRDM i.MX 95 开发板。FRDM i.MX 95 快速入门指南中的说明将引导您完成主板上预加载的嵌入式 Linux 映像的启动过程以及如何连接 USB 调试电缆。有关其他详细信息,请参阅 FRDM i.MX 95 开发板官方文档。 参考,引用: FRDM i.MX 95 快速入门指南 FRDM i.MX 95 开发板产品页面 FRDM i.MX 95 入门页面 ARA2-M2-16G-GT 入门 按照以下步骤将 Ara240 模块连接到 FRDM i.MX 95 开发板: 剧透 (加亮显示以阅读) 重要:在进行任何连接之前,请确保主板已关闭电源。 重要:在进行任何连接之前,请确保主板已关闭电源。 将 Ara240 模块插入 FRDM i.MX 95 开发板上的 M.2 Key-M 插槽。 使用提供的螺钉固定模块。 将风扇电缆连接到主板的风扇接头(有关接头的确切位置,请参阅 FRDM i.MX 95 主板文档)。 Connect the Ara240 to the FRDM i.MX 95 development board.将 Ara240 连接到 FRDM i.MX 95 开发板。 开启板电源 按照《FRDM-IMX95 入门》中的说明开启(启动)板。 开机后,检查风扇和 Ara240 模块的绿色 LED 指示灯是否亮起。   获取软件 本节将向您介绍 Ara240 Runtime 软件开发工具包 (SDK),这是 Ara240 SDK 的精简子集,旨在恩智浦平台上快速启用和执行。Runtime SDK 简化了安装和配置,使开发人员能够以最小的工作量在 Ara240 模块上快速部署和运行 AI/ML 工作负载。 概述 有关 Ara240 软件开发套件 (SDK) 的详细信息,请参阅 Ara240 软件发行说明 Ara240 入门页面仅概述了在特定 i.MX 开发平台上的使用情况 对于任何其他平台,请联系您的恩智浦代表寻求指导。 模块枚举和软件配置 本节提供有关在 FRDM i.MX 95 开发板上验证是否正确安装了 Ara240 模块和 Ara240 Runtime SDK 配置的说明。 验证设备检测 主板成功启动后,连接到串行调试端口以监测系统日志。要确认主板是否检测到 Ara240 模块,请运行以下命令: $ lspci | grep 1e58 预期输出: 0000:01:00.0 Processing accelerators: Device 1e58:0002 (rev 02) 启用 Ara240 设备 为了快速启用,Ara240 运行时 SDK 会在启动时启动。有关详细说明和环境设置步骤,请参阅Ara240 Runtime SDK 文档。 开发人员体验 本节概述了使用 FRDM i.MX 95 开发板支持 Ara240 运行时软件。 验证设置环境 使用以下指南来了解如何连接所需设备。对于大多数演示,你需要摄像头、键盘、鼠标、互联网连接和一个 HDMI 显示器。 Setup preparation for FRDM i.MX 95 board [Top view]FRDM i.MX 95 主板的设置准备 [顶部视图] Setup preparation for FRDM i.MX 95 board [Back view]FRDM i.MX 95 主板的设置准备 [返回视图] 剧透 (加亮显示以阅读) 注意:您可能需要使用 USB 集线器来同时连接键盘、鼠标和摄像头。 注意:您可能需要使用 USB 集线器来同时连接键盘、鼠标和摄像头。   运行时设置 说明 Runtime SDK 提供了一个完整的运行环境,可在 Ara240 模块上实现 AI/ML 加速。要运行演示应用程序,请确保 Ara240 启动过程已成功完成,系统已为演示评估做好准备。 请参阅 Runtime SDK 文档,了解有关以下方面的详细指导: 验证 Runtime SDK 的正确安装。 检查并更新 Ara240 固件版本。 验证代理服务启动状态。 在 Ara240 上执行基准测试。 按照这些步骤操作可确保模块正确初始化并可随时使用。Ara240 支持执行 CNN、LLM、VLM 和代理框架,使高级人工智能工作负载能够直接在 Ara 上运行。有关全面的示例和端到端工作流程指导,请参阅Ara SDK文档页面。 FRDM-IMX9
記事全体を表示
2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming 1. Test Configuration I2S configured as TDM Master, DSP mode with short WS 8 slots per frame, 32-bit per slot, frame length = 256 bit Using fsl_i2s_dma driver Dual-buffer ping-pong transfer FreeRTOS task waits on a semaphore from the DMA callback, fills the buffer, then calls I2S_TxTransferSendDMA to re-submit Test data pattern: fixed 0x000Axxxx (upper 16 bits = 0x000A, lower 16 bits contain slot index and sample sequence number) 2. Persistent One-Slot Downward Shift (100% Reproducible) Logic analyzer captures show: Transmitted data is consistently shifted down by exactly one slot Data intended for Slot 0 appears in the physical Slot 1 position Data intended for Slot 1 appears in the physical Slot 2 position By extension, data intended for Slot 7 appears in Slot 0 of the next frame (or is lost) This shift is stable after the stream starts; it does not drift further over time and remains a fixed 1-slot offset 3. Startup Data Misalignment (Intermittent) The logic analyzer occasionally observes: After the WS frame sync pulse, the DATA line remains at low level (all zeros) for a period After a blank interval of 1~3 frames, valid test data suddenly appears Once the blank interval ends, the data still exhibits the 1-slot offset described in item 2 Xanderwangx_0-1780141578772.png Audio(PDM | I2S | SAI) Re: 2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming Hello @Xanderwangx , Thank you for your post. Could you please let us know which NXP MCU you are using? Also, are you working with one of our evaluation boards or a custom board? Are you using the SDK example code, or is this based on your own implementation? If it is your own code, would you be able to share it with us for further analysis? BR Celeste Re: 2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming Hello @Xanderwangx , Thank you for your reply. However, the RT family is not within my support scope. I mainly support MCX and Kinetis family. Also, this is MCX channel, not for RT product. Could you please create a new post under i.MX RT Crossover MCUs - NXP Community? The RT support team will be able to assist you there. BR Celeste Re: 2S TDM Master: Persistent 1-slot downward shift during continuous DMA streaming MCU: MIMXRT685-EVK (i.MX RT685) Board: Custom product board based on RT685. I am using Loop DMA mode with ping-pong buffers. The DMA is configured with I2S_TransferSendLoopDMA() using 2 descriptors. In the DMA callback, I fill the next buffer and the loop continues automatically. void I2S1_TDM_Init(void) { I2S_Type *base = I2S1; /* I2S Configuration */ i2s_config_t cfg; I2S_TxGetDefaultConfig(&cfg); cfg.masterSlave = kI2S_MasterSlaveNormalMaster; cfg.mode = kI2S_ModeDspWsShort; /* TDM = DSP mode */ cfg.divider = 24576000 / (TDM_SAMPLE_RATE * TDM_SLOT_NUM * TDM_SLOT_WIDTH); cfg.dataLength = TDM_SLOT_WIDTH; /* 32-bit */ cfg.frameLength = TDM_FRAME_LENGTH; /* 256-bit */ cfg.oneChannel = false; cfg.position = 0; cfg.wsPol = true; /* DSP A or B */ I2S_TxInit(base, &cfg); /* Enable 8 slots (Primary + 3 Secondary Channels) */ /* Note: Using 4 channels to cover 8 slots with 32-bit data */ I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel1, false, 32 * 2); I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel2, false, 32 * 4); I2S_EnableSecondaryChannel(base, kI2S_SecondaryChannel3, false, 32 * 6); /* DMA Loop Transfer Setup */ DMA_Init(DMA0); DMA_EnableChannel(DMA0, I2S_TX_DMA_CH); DMA_SetChannelPriority(DMA0, I2S_TX_DMA_CH, kDMA_ChannelPriority3); DMA_CreateHandle(&dma_handle, DMA0, I2S_TX_DMA_CH); I2S_TxTransferCreateHandleDMA(base, &i2s_handle, &dma_handle, I2S1_Callback, tdm_xfer); I2S_TransferInstallLoopDMADescriptorMemory(&i2s_handle, tdm_desc, 2); if (I2S_TransferSendLoopDMA(base, &i2s_handle, &tdm_xfer[0], 2) != kStatus_Success) { while (1); /* Fails if TDM_FRAMES * 8 > DMA_MAX_TRANSFER_COUNT(1024) */ } } The slot offset is random across power cycles, not fixed.I also tried disable interrupts before and after the DMA transfer to force synchronization, but slot misalignment still occurs. Does I2S_TransferSendLoopDMA() guarantee frame-aligned DMA startup on RT685? If not, how to force alignment to WS boundary? i.MX-RT600 
記事全体を表示
S32K3 LPSPIに関する質問 NXPのエキスパートの皆様へ: GPIOピンを使用してLPSPIチップセレクト(CS)を手動で制御する場合、S32DS設定ツールのSpiCsPolarity設定は依然として影響しますか?ツールでPCS(周辺チップセレクト)の選択を無効にする必要がありますか?また、SpiHostRequestパラメータの目的は何ですか? focusdoit_0-1779058033130.png Re: S32K3 LPSPI pcs question こんにちは、 @focusdoit GPIOピンを使用してLPSPIチップセレクト(CS)を手動で制御する場合、S32DS設定ツールのSpiCsPolarity設定は依然として影響しますか? いいえ、動作には影響しないはずです。 チップセレクトとしてGPIOを使用する場合は、その制御はユーザーの責任となります。SpiCsPolarityパラメータは、LPSPI周辺機器によって管理されるハードウェア制御のCSに適用され、GPIO制御信号には適用されません。 ツールでPCS(周辺チップセレクト)の選択を無効にする必要がありますか? ConfigToolsで低レベルドライバ(IP)を使用する場合は、目的のピンをGPIOとして設定するだけでよく、PCSピンを設定する必要はありません。 高レベルドライバ(MCAL)の場合、ピンをGPIOとして設定することに加えて、SpiCsSelectionというパラメータがあります。このパラメータはCS_VIA_GPIOに設定する必要があります。この**CASE**、ドライバは通知(SpiJobStartNotificationノードとSpiJobEndNotificationノードで定義)を使用して、各SPIジョブのGPIOを介してCSピンを制御します。 また、SpiHostRequestパラメータの目的は何ですか? マスターモードでは、このパラメータにより、LPSPIモジュールはホストからの要求入力がアサートされた場合にのみ、新しいSPI転送を開始できます。LPSPIがビジー状態の場合、ホストからの要求入力は無視されます。 スレーブモードでは、送信可能なデータが利用可能になったときに、HREQ出力ピンがアサート状態になります。 BR、VaneB
記事全体を表示
Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi, Currently I am working with the NXP S32Z280-594EVB board. I created a Blink LED project for the R52_0_0 core using S32DS. I do not have the S32 Debug Probe, but I need to flash my project to the board. Please give me guidance on how to convert my project into a flashable image using the IVT method. Could you please share the procedure or any reference documents/examples for generating the flash image and booting it on the S32Z280 board without the debug probe? Thank you. Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Thank you for contacting us. I have received your question and will help you to check it. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Thank you for contacting us. You can try to refer to this links as the following contents for your question. creating a Blob Image using IVT S32Z2 How to reduce the binary size in S32Z2 Hope this information can help you. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your support. I followed your steps successfully. I reduced the .bin file size and created the flash image using the IVT method. However, after flashing the image, there is no output from the board. I tested a simple UART example code. The same UART code runs successfully on the M33 core, using the same pins and configuration. Then I created a new project for the R52_0_0 core, but the UART output is not showing. For the IVT configuration, I used the RAM start pointer address and RAM entry pointer address from the .ld file and .map file. Could you please help me solve this issue? Please let me know if there are any additional boot settings, memory settings, or R52-specific configurations required for the S32Z280 R52_0_0 core. suresh308531_0-1779168290104.png   BR, suresh Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Could you share your R52 UART project with me? I can help you to check it. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your support. I have attached my R52 UART project for your reference. Could you please check the project and help me identify why the R52_0_0 core is not booting/running after creating the IVT flash image? The IVT image is generated successfully and flashing also completes successfully, but there is no UART output from the R52 core. BR, Suresh Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 I have checked your project, please try to modify your code as the following contents. If you want to boot from R52 directly, please try to refer to the steps as the following. 1.Modify the file of startup.s to initial the RTU0 early, added for RTU0 SRAM initialization for boot target as R52 as the following picture. The startup.s patch file in the attachment.  Joey_z_0-1779178666469.png 2.Enable the partition1(use the function of Mcu_SetMode()) before use the clock initial as the following picture. Joey_z_1-1779178696373.png Joey_z_2-1779178770542.png 3.Set the board boot from QSPI. Hope this information can help you. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,suresh308531 Have you finished this application? I can continue support you if you still have any issue. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi,Suresh Thank you for your reply and information. You can contact us at any time if you have other issue. BR Joey Re: Guidance for IVT Flash Image Creation for R52_0_0 Core on S32Z280-594EVB Without Debug Probe. Hi Joey_z, Thank you for your reply and support. I successfully ran the project with the R52 core. Your suggested binary size reduction process and the startup.s file modifications helped me achieve this successfully. Currently, the project is working even without enabling the Partition 1 clock and without using the Mcu_SetMode() function. Thank you again for your guidance. BR, Suresh
記事全体を表示
Errata ERR053404: Use Cases for Different Message Buffer Configurations This article discusses the different use cases and configuration of the errata "ERR053404: FlexCAN: Message Buffer (MB) and Enhanced RX FIFO Filter Element (ERFFEL) Memory Corruption". The errata is impacting Messabe Buffers (MB) and Enhanced RX FIFO Filter Elements (ERFFEL), the impact of each MB or ERFFEL depends on the configuration of the payload buffer, MB and/or ERFFEL. In this post, we plan to provide some examples of such configuration and impact on the FlexCAN IP.  Taking a 64-byte payload as an example, the following configurations illustrate the trade-off between the number of Message Buffers (MBs) and acceptance filters: /* ERR053404: This errata explains affected words depends on MB payload size, this example applies for MB configured for 64-byte payload */ #define BYTES_IN_MB kFLEXCAN_64BperMB FLEXCAN_FDInit(EXAMPLE_CAN, &flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, true); 1. MB0 is not used, MB1 is used. In this configuration, ERFFEL[0–29] can be fully utilized as acceptance filters, while MB1–MB6 are available as Message Buffers, maximum ERFCR[NFE] is 14. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x140. Used ERFFEL[0–29], ERFCR[NFE]=14 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; flexcan_rx_mb_config_t mbConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */ FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0)); #define RX_MESSAGE_BUFFER_1 (1U) /* Setup Rx Message Buffer 1. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x121U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true); 2. MB0 and MB1 are not used. In this case, ERFFEL[0–31] are available for acceptance filtering, and MB2–MB6 are reserved as Message Buffers, maximum ERFCR[NFE] is 15. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x142. Used ERFFEL[0–31], ERFCR[NFE]=15 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x130, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x131, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x132, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x133, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x134, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x135, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x136, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x137, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x138, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x139, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13E, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x13F, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x140, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x141, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x142, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; 3. MB0 and MB1 are both used. Under this configuration, only ERFFEL[0–11] can be used as acceptance filters. ERFFEL[12–31] are not available, while MB0–MB6 can be used as Message Buffers, maximum ERFCR[NFE] is 5. The following code can be used as reference for the driver configuration for this case.  /* Config fifo filters to make it accept STD frame with ID 0x123 ~ 0x12E. Used ERFFEL[0–11], ERFCR[NFE]=5 */ uint32_t rxEnFifoFilter[] = {FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x123, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x124, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x125, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x126, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x127, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x128, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x129, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12A, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12B, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12C, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12D, 0, 0x3F, 0), FLEXCAN_ENHANCED_RX_FIFO_STD_MASK_AND_FILTER(0x12E, 0, 0x3F, 0)}; flexcan_enhanced_rx_fifo_config_t rxEhFifoConfig; flexcan_rx_mb_config_t mbConfig; /* Setup Enhanced Rx FIFO. */ rxEhFifoConfig.idFilterTable = rxEnFifoFilter; rxEhFifoConfig.idFilterPairNum = sizeof(rxEnFifoFilter) / sizeof(rxEnFifoFilter[0]) / 2U; rxEhFifoConfig.extendIdFilterNum = 0; rxEhFifoConfig.fifoWatermark = RX_MESSAGE_COUNT - 1U; /* Reduce the frequency to enter IRQ. */ rxEhFifoConfig.dmaPerReadLength = kFLEXCAN_19WordPerRead; rxEhFifoConfig.priority = kFLEXCAN_RxFifoPrioHigh; FLEXCAN_SetEnhancedRxFifoConfig(EXAMPLE_CAN, &rxEhFifoConfig, true); rxFifoXfer.framefd = &rxFrame[0]; rxFifoXfer.frameNum = RX_MESSAGE_COUNT; /* Set Rx Masking mechanism for MB. Only accept data frame with desired ID. */ FLEXCAN_SetRxMbGlobalMask(EXAMPLE_CAN, FLEXCAN_RX_MB_STD_MASK(0x7FFU, 0, 0)); #define RX_MESSAGE_BUFFER_0 (0U) /* Setup Rx Message Buffer 0. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x120U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_0, &mbConfig, true); #define RX_MESSAGE_BUFFER_1 (1U) /* Setup Rx Message Buffer 1. */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = FLEXCAN_ID_STD(0x121U); FLEXCAN_SetFDRxMbConfig(EXAMPLE_CAN, RX_MESSAGE_BUFFER_1, &mbConfig, true); Recommendation: To achieve a balanced trade-off between the number of Message Buffers and acceptance filters, Option 1 is recommended.
記事全体を表示
SE050E2HQ1/Z01Z3Z 的电容和铁氧体磁珠要求 您好,NXP团队, 我们在定制设计板中使用安全元件 P/N:SE050E2HQ1/Z01Z3Z。 在审查参考设计板 OM-SE050ARD 时,我们几乎没有什么顾虑,如下所示 1.是否严格要求在 VIN (12)、VOUT (15)、VCC (18)引脚上使用阻抗为 330 欧姆、频率为 100 MHz 的 P/N: BLM21PG331SN1D铁氧体磁珠? 2.我们是否还需要在 VSS (19) 引脚上添加铁氧体磁珠? 3.是否需要使用 0.033uF 电容或者我们可以使用 100nF 电容? kadamm_1-1777647134719.png 谢谢! Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好@kadamm 希望你一切顺利。 铁氧体磁珠主要与双接口操作(由非接触式接口提供)有关,以实现正确的电磁兼容性。 关于电容,您是否正在考虑只使用一个(共享)100nF 电容?如果是这样,我相信应该不会有什么大的不便。 Eduardo。 Re: Capacitor and Ferrite Bead requirement for SE050E2HQ1/Z01Z3Z 你好,爱德华多、 我们的设计没有采用 ISO 14443 或 ISO 7816 接口。因此,我们计划直接连接 VIN、VCC、VOUT 和 GND 引脚,而不使用铁氧体磁珠。此外,我们在引脚上放置一个 0.1 µF 电容以进行解耦。请问这种方法是否合适?   kadamm_0-1778561393143.png 谢谢!
記事全体を表示
AN14175: FlexIO QSPI for MCXN947 Hi,  I was reading through the following resource: Using FlexIO to emulate Quad SPI Controller, and wanted to try this on the MCXN947. The goal is to configure QSPI for MCXN947 as a slave, but I can't find that demo program in the SDK. I have the newest version of the IDE and SDK. Is there a different demo program I can use to try this?  Thanks! Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) MCXN Re: AN14175: FlexIO QSPI for MCXN947 Hello, The Software is in Application Note Software section in MCX N94, N54, N53, N52 and N24 MCUs | NXP Semiconductors page You can download it here Application Note Software for AN14175 Best Regards, Luis Re: AN14175: FlexIO QSPI for MCXN947 Do this code has been published ? Re: AN14175: FlexIO QSPI for MCXN947 Yes, you can download it here Application Note Software for AN14175 Best Regards, Luis
記事全体を表示
无法在 SImulink MBDT 中使用 UART_Echo 进行传输 嗨,恩智浦支持团队、 我目前正在使用 Simulink MBDT 处理 S32K358 MCU,并尝试使用 UART Echo 示例(UART_Asynchronous S32CT)实现 UART 通信。)当我从S32K3xx工具箱中构建和部署现有示例时,它可以按预期运行,并且我能够观察串行监视器中的回声数据。在默认设置中,使用 LPUART2。 不过,我的硬件设置要求使用 LPUART0(PTB0 和 PTB1)。我已在 S32 配置工具 (S32CT) 中相应更新了 UART 实例和引脚配置。在这些更改之后,该项目成功构建和部署,但是即使我在传输消息,我也没有在串行监测中收到任何回显数据。 我已经上传了 pdf 文件,其中包含详细说明的截图。 如果您能就我可能需要解决的其他配置或潜在疏忽提供指导,以便在 LPUART0 上实现正确的 UART 通信,我将不胜感激。 MBDT#SimulinkS32K3 Re: Can't transmit with UART_Echo in SImulink MBDT Naresh2000_0-1776926139513.png 上图是 UART_Echo 示例的配置设置。我在这里感到困惑。实际上,我的 UART 是 LPUART0。当我移除 LPUARAT2 并添加 LPUART0 时,我可以看到如下设置(图片附后): Naresh2000_1-1776926149365.png 中断名称:LPUART1 优先级: 0 处理程序:undefined_handler " 我的问题是,是否需要保持这些设置,还是需要更改处理程序和优先级?" Re: Can't transmit with UART_Echo in SImulink MBDT 你好 就这个问题谈几点看法: 你不必从 “驱动程序” 选项卡更新 Siul2_Port 元器件。只需更新 PINS 视图中外设使用的引脚即可。 SorinIBancila_0-1777475786708.png 启用新外围设备后,你需要进入平台—— > 中断控制器(你已经这样做了)和 MCU-> mcuModuleConfiguration-> mcuModuleSettingConfiguration-mcumodeSettingConfiguration-> mcuPressettingConfiguration-mcuPreserational 并启用外设时钟 SorinIBancila_1-1777476028484.png 关于未定义的处理程序,对于 LPUART0_IRQn,您可以使用以下处理程序:LPUART_UART_IP_0_IRQHandler。 优先级由您决定(数值越低,优先级越高)。 提示!在模型中添加一个变量,每一步都递增。然后,使用 FreeMASTER 检查主板是否正在运行,就好像某些配置不当一样,它可能会进入硬故障。即使未配置 UART,您仍然可以通过调试探头连接到电路板。 顺祝商祺! 索林-班奇拉 Re: Can't transmit with UART_Echo in SImulink MBDT 你好 我很高兴问题得到了解决。 如果您已经在使用 R2022b 和 S32DS 3.5,则可以继续使用这些版本。 顺祝商祺! 索林-班奇拉 Re: Can't transmit with UART_Echo in SImulink MBDT 感谢@SorinBancila 解决了这个问题。 我能否知道哪个版本的 MATLAB-Simulink& S32DS 最适合 FS26 (SBC) CDD 驱动程序?目前我使用的是 MATLAB R2022b 和 S32DS 3.5。 Re: Can't transmit with UART_Echo in SImulink MBDT Hii@SorinIBancila, 首先,非常感谢你及时、有益的回复,这非常有用。 我无法在 S32 配置工具中找到CDD_Sbc_fs26 驱动程序。经过研究,我了解到 MBDT 限制在 S32CT 中安装新软件,以防止用户破坏工具链。 在找到这个之前,我尝试使用 “帮助” → “安装新软件” 通过 S32 Design Studio 安装 FS26 软件包。然而,重新打开 Simulink 并检查 S32CT 后,CDD 驱动程序仍然不可用。看来S32设计工作室和Simulink S32配置工具是独立运行的,不共享已安装的组件。 作为一种解决方法,我从电池管理系统示例项目中复制了 FS26 初始化块。但是当我尝试构建、部署和启动模型时,我遇到了以下错误:致命错误:cdd_sbc_fs26.h:无此文件或目录 我目前处于困境,需要有关如何正确解决此问题以及集成所需的 FS26 驱动程序或其他任何方法的指导。 mbdt fs26 pmics-sbcs-多供应商处理器
記事全体を表示
使用 Yocto Scarthgap iMX8M Mini 实现 gltransformation 我想在 imx8M Mini Yocto 版本上将 " gltransformation " 添加到我的 gstreamer 中。我的 gst-inspect 中有其他"opengl" 库,但没有看到 gltransformation。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 为了进一步澄清我的问题,我正在尝试在最小的 Yocto 版本中做到这一点(没有 X11/Wayloand)。这是一个无头 RTSP 服务器,我想使用 gltransformation 来校正视频。 我能够通过修补 gstreamer 配方来启用 gltransformation 来添加 " 石墨烯 ",但是在无头使用它时遇到了问题。 Re: gltransformation with Yocto Scarthgap iMX8M Mini 你好@cjcdev 希望你一切都好。 能否请您详细介绍一下您提到的问题? "在使用它时遇到问题,无头" 。 顺祝商祺! 萨拉斯 Re: gltransformation with Yocto Scarthgap iMX8M Mini @Manuel_Salas 我正在尝试在 Headless(没有 X11/Wayland)的 Yocto 版本上使用 gltransformation。我可以使用测试启动进行普通的 rtsp 直播。但是,当我尝试使用 gltransformation 管道时,却出现了故障。 我通过创建 gstreamer1.0-plugins-base_%.bbappend 启用了石墨烯: PACKAGECONFIG:append =" 石墨烯" 这允许将 gltransformation 作为 gstreamer 插件的一部分进行构建,我可以在 gst-inspect 中看到它。 然而,当我尝试创建管道时,却遇到了问题。我试过几种不同的方法: # viv_egl_platform=GBM\ gst_gl_platform=EGL\ gst_gl_api=gles2\ gst_gl _window=GBM\ test-launch-p 8554-m /camera " (v4l2src 设备=/dev/video2 do-timestamp=true! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" (测试发布:8012):gstreamer-GL-Critical **:21:16:47.035:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 (测试发布:8012):gstreamer-gl-Critical **:21:16:49.201:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 EGL: [ 2128.886314] audit: type=1701 audit(1777670225.965:17):auid=4294967295 uid=0 gid=0 ses=4294967295 subj=uncredined pid=8095 comm= " gstglcontext " exe= " /usr/bin/test-launch " sig=11 re s=1 警告:Wayland 分段故障(核心已转储)不支持默认显示器 # EGL_PLATFORM=设备 \ GST_GL_PLATFORM=egl \ GST_GL_API=gles2 \ GST_GL_WINDOW=surfaceless \ test-launch -p 8554 -m /camera "( v4l2src device=/dev/video2 do-timestamp=true ! image/jpeg,width=2560,height=1440,framerate=30/1!jpegdec !glupload !gltransformation rotation-x=45 !gldownload !jpegenc !rtpjpegpay name=pay0 )" EGL: 警告:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:34.954:gst_gl_display_egl_from_gl_display: assertion 'native_display != 0' failed EGL: Warning:wayland 上不支持默认显示 (测试发布:8193):gstreamer-gl-Critical **:21:17:37.004:gst_gl_display_egl_from_gl_display: 断言 'native_display != 0' 失败 Re: gltransformation with Yocto Scarthgap iMX8M Mini 仅供参考--除非 Weston 正在运行(且 LCDIF 已启用),否则 gstreamer 中的 GPU 加速似乎无法工作。
記事全体を表示
frdm-i.mx93 无法在 M33 之后启动准备就绪;Linux 和 Windows 上的 UUU SDPS 启动超时 您好,恩智浦技术支持、 我正在请求帮助恢复 FRDM-i.MX93 主板。在 “M33 准备就绪” 之后,板在早期的 SPL 启动期间会立即停止,并且不会继续运行 BL31 或完全 U-Boot。在 SDPS 启动期间,UUU 恢复也会因超时而失败。 董事会详情: 板:FRDM-i.MX93 SoC shown in serial log: 0xa1009300 LC shown in serial log: 0x2040010 PMIC: PCA9451A DDR: 3733MTS 典型的串行输出: U-Boot SPL 2024.04+gde16f4f1722+p0(Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 LC: 0x2040010 PMIC: PCA9451A PMIC: Over Drive Voltage Mode DDR: 3733MTS DDR: 3733MTS M33 ready ok 重建的 2025 SPL 也出现了同样的停止点: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000) PMIC:PCA9451A PMIC:过载电压模式 DDR:3733MTS DDR:3733 MTS DDR:3733MTS M33 准备好了 使用的硬件设置: P1 = 外部电源,使用 45 W USB-C 墙式适配器进行测试 P16 = 调试串行控制台 P13 = microSD 卡插槽 P2 = 用于 UUU / 串行下载器模式的 USB-C 连接 我还测试了用墙壁适配器供电,而不是用电脑 USB 供电。行为没有改变。 测试的主机系统: Linux Mint / Ubuntu 主机 Windows 主机 已测试的 UUU 版本: uuu 1.5.141 uuu 1.5.243 主要问题是电路板达到 SPL,初始化 PMIC 和 DDR,然后打印 “M33 准备就绪”,然后什么也没发生。它永远不会达到 “正常启动”、“正在尝试从 BOOTROM 启动”、“注意:BL31” 或完整 U-Boot。从 SD 和 eMMC 启动时会发生这种情况。 在 USB 串行下载器模式下,UUU 会检测到主板: sudo ./uuu-lsusb 连接的已知 USB 设备 路径芯片 Pro Vid Pid bcdVersion 5:2 MX93 SDPS: 0x1FC9 0x014E 0x0001 但是,在 SDPS 启动期间,UUU 会失败。使用的命令是 sudo ./uuu-V-b emmc_all imx-boot-imx93frdm-sd.bin-flash_singlebootimx-image-full-imx93frdm.rootfs.wic.zst 在 Linux 系统上,故障是 启动 cmd: sdps: boot-scanterm-f imx-boot-imx93frdm-sd.bin-flash_singleboot-scanlimited 0x800000 Fail HID(W):LIBUSB_ERROR_TIMEOUT 在 Windows 系统中,故障是 启动 cmd: sdps: 启动-scanterm-f。\ imx-boot-imx93frdm-sd.bin-flash_singleboot-scanlimited 0x800000 14% 失败 HID (W):LIBUSB_ERROR_TIMEOUT (-7) 在 Linux 和 Windows 上进行了测试,结果相同。 测试过的图像: 我测试了恩智浦官方 frdm-i.mx93 Rev 4.0 演示映像包: LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93 启动映像哈希值为: 7aba6102e5ec64add64add632cd6667e77fa3f6f6f6f6f6f6fd72c314e4c01f2964c0fc056a5f imx-boot-imx93frdm-sd.bin-flash_singleboot 我还测试了自己的 Yocto 镜像 imx93frdm,它使用相同的启动映像哈希值。 我验证了 SD 启动选择是否有效。在未插入 SD 卡的 SD 启动模式下,没有串行输出。在插入 SD 卡的 SD 启动模式下,SPL 在 “M33 准备就绪” 时开始和停止。因此,SD 启动开关似乎正在工作。 我还验证了恩智浦官方的 .wic映像包含预期偏移量为 32 KiB/0x8000 的启动映像。使用的命令 wic=nxp.wic 启动=imx -启动-imx93frdm-sd.bin-flash_singleBoot xxd -l 64 -s $((32*1024))"$WIC" xxd -l 64 -s 0"$BOOT" cmp-n " $ (stat-c%s " $BOOT ") "-i $ ((32*1024)): 0 " $WIC " " $BOOT " & & echo " " NXP WIC 包含 32K 的启动映像" 恩智浦 WIC 不包含 32K 的启动映像 " 结果: 恩智浦 WIC 包含 32K 的启动映像 因此,SD 映像似乎正确包含了启动容器。 为了排除只有 2024.04 SPL 映像是问题所在,我使用 Flexbuild/U-Boot 构建了一个更新的启动映像。内置映像中的 SPL 显示: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000)恩智浦 FRDM-IMX93 我将这个新的 flash.bin 文件写入 SD 卡,偏移量为 32 KiB: sudo dd if=flash-imx93frdm-2025.bin of=/dev/sdX bs=1K seek=32 conv=fsync sync 然后,主板打印了新的 SPL 标语,确认它正在执行新的 SD 启动映像: U-Boot SPL 2025.04(2026 年 4 月 26 日-16:21:54 +0000) PMIC:PCA9451A PMIC:过载电压模式 DDR:3733MTS DDR:3733 MTS DDR:3733MTS M33 准备好了 但是,它仍然在同一时间停止了,没有继续使用BL31/Full U-Boot。 eMMC 状态: 最初,eMMC 启动到足以登录 Linux 的程度,但由于根文件系统中缺少 /bin/sh,根登录被中断。在尝试恢复过程中,eMMC 使用 .wic 文件从 SD Linux 重写。图像之后,在 “M33 准备就绪” 之后,eMMC 启动也会停止。但是,使用恩智浦官方镜像启动SD时以及重建的2025 SPL也会出现同样的停止点,因此当前的问题似乎早于Linux/rootFS。 我所相信的已经被排除: 串行端口错误:串行端口正常工作并显示 SPL 输出。 电脑电源不良:使用外置 45 W 墙式适配器测试。 错误的 SD 启动开关:没有 SD 卡的 SD 启动模式没有输出。 SD 映像中缺少启动映像:经过验证的启动映像存在于恩智浦官方 WIC 中的 0x8000/32 KiB。 Linux/rootFS 问题:故障发生在 BL31/Full U-Boot/Linux 之前。 UUU 的主机操作系统问题:UUU SDPS 启动超时出现在 Linux 和 Windows 上。 只有旧的 2024 SPL 是坏的:重建的 2025.04 SPL 也在 "M33 准备就绪 "后停止。 你能帮忙确定这是否是已知的 frdm-i.mx93 提前启动问题吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 你在使用我们发布的 BSP 版本吗? 适用于i.MX应用处理器的嵌入式Linux|恩智浦半导体 您正在使用并选择哪个版本的 BSP? 劳动节回来后,我会尝试在我们的电路板上进行测试,我将在下周三回到办公室然后进行测试,然后给你回复我的测试结果。 祝您有美好的一天 顺祝商祺! Rita Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我使用的是 LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93。图像 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我回到办公室将在我们的板上进行测试,然后告诉你结果。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 你想出来了吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows @Rita_Wang 我也遇到了同样的问题…… 我从未见过 BL31 使用我的 imx-image-full-imx93frdm.rootfs-20260705225501.wic.zst scarthgap 版本启动。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 您好,我目前也遇到了同样的问题。请问您找到解决方法了吗? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到同样的问题。是否有任何更新需要进行哪些操作才能使 imx93 从 SD 卡启动,或者使 UUU 正常工作? Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我们注意到该主板上的内存芯片与其他frdm-imx93主板有所不同。或许这有助于找到问题所在。 正常工作的板是微米级的,而故障板的品牌我不认识。   IMG_7007.jpegIMG_7007.jpeg   Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到了同样的问题。 这应该标记为高优先级,因为唯一可用的映像是出厂时在 eMMC 上提供的映像!如果重新刷写固件,我的 FRDM-IMX93 就彻底报废了,直到找到解决方案为止,我怀疑这与 DDR 内存时序有关。 我的程序也卡在了“M33 prepare ok”这里,这表明DDR配置/时序存在问题,而且我的主板也和上面@SynchronicIT帖子中的一样,使用了相同的“无名”DDR IC(制造商标志带有“J”)。 为什么这些电路板可以出厂时就带有 eMMC 上的可用镜像,而 NXP 提供的所有可用镜像都无法使用? 当我通过(出厂预装的)eMMC启动时(启动正常),u-boot 版本为: U-Boot SPL 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) 而从 NXP 下载的最新版本 (LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93.zip)“imx-boot-imx93frdm-sd.bin-flash_singleboot”文件是 u-boot 版本: U-Boot SPL 2024.04+gde16f4f1722+p0(2024年9月2日 10:44:35 +0000) 下面显示的是正常工作的工厂镜像 eMMC 的完整输出,以及不正常工作的 SD 卡刷入镜像和 UUU 上传的 u-boot 的完整输出。 * 工作正常(出厂预装eMMC)* U-Boot SPL 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) PMIC:PCA9451A PMIC:过驱动电压模式 DDR:3733MTS 找到匹配的 DRAM 2CS_2GB DRAM M33 准备就绪 正常启动 尝试从 BOOTROM 启动 启动阶段:主启动 图像偏移量 0x8000,页面大小 0x200,ivt 偏移量 0x0 通过 ROM_API 从 0x57800 加载镜像 注意:TRDC 初始化完成 通知:BL31:v2.12.0(版本):lf-6.18.2-1.0.0 通知:BL31:建造时间:2026年2月10日 07:53:18 U-Boot 2025.04-g99518e6b6f20(2026年2月2日 05:52:54 +0000) 重置状态:POR CPU:NXP i.MX93(52) Rev1.2 A55,频率 1700 MHz CPU:工业级温度范围(-40℃至105℃),工作温度24℃ 型号:NXP FRDM-IMX93 动态随机存取存储器(DRAM):2 GiB 板:V1.0(ADC2:684,ADC3:271) TCPC:供应商 ID [0x1fc9],产品 ID [0x5110],地址 [I2C2 0x52] SNK.Power3.0 on CC1 PDO 0:0 型,5000 mV,3000 mA [E] PDO 1:0 型,9000 mV,3000 mA [] PDO 2:0 型,12000 mV,3000 mA [] PDO 3:0 型,15000 mV,3000 mA [] PDO 4:0 型,20000 mV,3250 mA [] PDO 5:类型 3,未定义 请求 PDO 4:20000 mV,750 mA 源接受请求 PD源已准备就绪! tcpc_pd_receive_message:轮询 ALERT 寄存器,TCPC_ALERT_RX_STATUS 位失败,返回值为 -62 TCPC:供应商 ID [0x1fc9],产品 ID [0x5110],地址 [I2C2 0x50] 核心:229 个设备,32 个微类,设备树:独立 MMC:FSL_SDHC:0,FSL_SDHC:1 从 MMC 加载环境... 从 MMC(0) 读取... *** 警告 - CRC 校验错误,使用默认环境 视频链接设置失败 输入:串行 输出:串口 错误:串行 构建信息: - ELE固件版本2.0.5-7a34cee 切换到分区 #0,确定 mmc0(第 0 部分)是当前设备 UID:4a7ff07fa81b46d8b2b59146dfa5af84 闪存目标是 MMC:0 网络:eth0:以太网@42890000,eth1:以太网@428a0000 [PRIME] Fastboot:正常 正常启动 按任意键停止自动启动:0 u-boot=> * 无法正常工作 * U-Boot SPL 2024.04+gde16f4f1722+p0(Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 LC: 0x2040010 PMIC: PCA9451A PMIC: Over Drive Voltage Mode DDR: 3733MTS DDR: 3733MTS M33 ready ok - 悬挂 - Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我也遇到了同样的问题。我无法通过 uuu.exe 刷入任何镜像,输出相同的“HID(W): LIBUSB_ERROR_TIMEOUT (-7)”错误。我主板上的内存芯片也是“J”牌的,而不是美光的。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 补充一点关于具体 DDR 部件信息的数据,因为我认为替换的内存是关键,但我还没有看到确切的部件编号公布。 **板:** FRDM-IMX93,SCH-94611 REV B2(电路板标签 DRQ30063390) **SoC:** i.MX93(52) Rev1.2SOC 0xa1009300,LC 0x2040010 **PMIC:** PCA9451A **DDR:**原理图和用户指南指定使用 LPDDR4x Micron MT53E1G16D1FW-046。我板上实际安装的芯片标记为**JSL4BAG167ZAMF** — 而不是 Micron。这与本帖中其他人报告的情况一致(故障主板上使用“J”品牌的DDR内存,而正常工作的主板上使用Micron品牌的DDR内存)。 **问题出在DDR训练/验证环节,而非M33/ELE环节。**将正常工作的工厂 eMMC 启动程序与出现故障的公共电路板支持包。启动程序进行比较,就能清楚地看出这一点: 工作正常(工厂 eMMC、U-Boot SPL 2025.04,BL31 lf-6.18.2-1.0.0): ``` DDR:3733MTS 找到匹配的 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) M33 准备就绪 正常启动 ... ``` 失败 (LF_v6.6.36-2.1.0)公开版本(U-启动 SPL 2024.04,2024 年 9 月 2 日): ``` DDR:3733MTS DDR:3733MTS M33 准备就绪 - 悬挂 - ``` 正常工作的引导加载程序中存在“找到 动态随机存取存储器\(DRAM\) ... 动态随机存取存储器\(DRAM\) 匹配”这一行,而故障的引导加载程序中则不存在这一行。主板卡在了 DDR 验证即将完成的时刻,也就是 BL31 / 正常启动之前。所以这看起来像是 6.6.36 版本。DDR配置/时序与替换的DDR部件不匹配,而不是下游部件的问题。 正常工作的 eMMC 引导加载程序还报告 **ELE 固件版本 2.0.5-7a34cee**,比 6.6.36 代码包,软件包中提供的版本更新——注意,以防修复取决于 DDR 时序和 ELE 版本。 **为了节省时间,我已经排除了以下可能性**: - 版本:我自己的 Yocto imx93frdm 构建生成的 imx-启动 与工厂代码包,软件包 (sha256 7aba6102e5ec64add632cd6667e77fa3f6886fd72c314e4c01f2964c0fc56a5f) 字节级完全相同,所以这不是构建问题。 - SD 刷写:已验证启动容器大小为 32 KiB (0020 0287 magic),有效的 MBR (55aa),以及引导加载程序区域中的两个 FIT magic。 - 启动开关:SD 模式下,如果没有卡,则不会有串行输出;插入卡后,SPL 可以运行——因此 USDHC2/SD 选择是正确的。 - 电源:使用多个 USB-C 电源时结果相同。 - 主机/USB:在两个不同的 Linux 主机上,UUU SDPS 启动失败,出现 HID(W): LIBUSB_ERROR_TIMEOUT 错误。 - 硬件本身很好:板启动其出厂 eMMC 映像到 Linux,因此 DDR *可以* 由正确的引导加载程序进行训练。 **问题:** 1.适用于 REV B2 板卡的修正版 DDR 配置(非 Micron (JSL4BAG167ZAMF) DDR)是否已在任何当前公开的 电路板支持包。中提供?例如,6.6.52-2.2.0 或 6.12.x 版本——还是仅限于目前在 eMMC 上提供的较新的引导加载程序 (lf-6.18.2)? 2. 如果尚未有公开版本,是否可以发布更新后的 FRDM-IMX93 DDR 时序接头(或 lf-6.18.2 FRDM 引导加载程序),以便 SD 卡启动可以在这些板上工作? 如果这有助于缩小问题范围,我很乐意在这个板上运行诊断程序或测试候选引导加载程序/时序配置。 谢谢, jjudk Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 后续提供可行的解决方案,希望能帮助本帖中其他使用相同板/DDR组合的用户。 摘要:此次故障是公共 LF6.6.36-2.1.0 版本中的 DDR 训练问题。较新的 FRDM-IMX93 板上的电路板支持包,这些板配备了替代的(非 Micron)LPDDR4X 内存。升级到 **LF6.18.2 (Whinlatter) 电路板支持包。** 即可解决此问题——板可以训练其 DDR 并从 SD 卡正常启动。 板/DDR(参考,引用): - FRDM-IMX93,SCH-94611 REV B2 - 原理图上标明的是 Micron MT53E1G16D1FW 芯片;实际安装的芯片标记为 JSL4BAG167ZAMF(非 Micron 替代芯片)。 最终确认根本原因的是:工厂 eMMC 镜像(可以正常启动)使用了较新的引导加载程序——U-Boot SPL 2025.04。BL31 lf-6.18.2,内核 6.18.2 — 其 SPL 打印“找到 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) 匹配”,然后“M33 准备正常”。公开的 LF6.6.36SPL(U-启动 2024.04)不打印`动态随机存取存储器\(DRAM\) 已匹配`,并卡在`M33 准备正常`。 所以是 6.6.36DDR 配置不会训练这种替代内存,而 6.18.2 配置会。 工作流程——构建并启动 LF6.18.2 电路板支持包。: mkdir imx-bsp-6.18.2 && cd imx-bsp-6.18.2 仓库 init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-whinlatter -m imx-6.18.2-1.0.0.xml 仓库同步 发行版。=fsl-imx-xwayland MACHINE=imx93-11x11-lpddr4x-frdm source sources/meta-imx/tools/imx-setup-版本.sh -b 版本-frdm bitbake imx-image-core   请注意,机器名称为 `imx93-11x11-lpddr4x-frdm`(此电路板支持包。的原生名称——与 6.6.36 不同,不需要单独的 meta-imx-frdm 层)。 然后将生成的 `.wic.zst` 烧录到 SD 卡(解压缩并使用 dd 命令烧录到整个卡设备),将启动开关设置为 SD 卡(SW1 = 1 1 0 0),然后启动。REV B2 / JSL DDR 板的结果: DDR:3733MTS 找到匹配的 动态随机存取存储器\(DRAM\) 2CS_2GB 动态随机存取存储器\(DRAM\) M33 准备就绪 正常启动 ... NXP FRDM-IMX93 登录: `free -h` 确认全部 2GB 内存已训练完毕并可用。 NXP方面仍存在疑问:是否有计划将更新后的FRDM DDR配置向后移植到LF6.6.36-2.1.0?分支,供需要继续使用 6.6.36 版本的人使用?对于能够升级到 6.18.2 的用户来说,上述方法有效。 希望这能帮到其他人,省去调试的麻烦。 jjudk Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 嗨,丽塔, 请问这件事有任何最新进展吗?我们被这个问题困住了。 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 我已使用演示镜像 images LF_v6.6.36-2.1.0_images_FRDM_4.0_IMX93 在我们的 93FRDM REV B 版本板上进行了测试, 使用 UUU uuu 工具版本 uuu_1.5.243 分别在SD卡和eMMC上尝试,下载和启动都成功,没有重现您遇到的错误。 .\uuu.exe -b emmc_all imx-boot-imx93frdm-sd.bin-flash_singlebootimx-image-full-imx93frdm.rootfs.wic.zst Rita_Wang_0-1786613213510.pngRita_Wang_0-1786613213510.png Rita_Wang_1-1786613222942.pngRita_Wang_1-1786613222942.png Rita_Wang_2-1786613231468.pngRita_Wang_2-1786613231468.png Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 看来问题出在REV B2板上。请在REV B2上尝试一下 Re: FRDM-i.MX93 cannot boot past M33 prepare ok; UUU SDPS boot times out on Linux and Windows 大家好。 @Rita_Wang这不是“修改”的问题。我桌上有两块主板,版本相同,但LP DDR芯片不同。 然而,以下是你们团队的原话: LFU-956 imx93_frdm:为 i.MX93 FRDM 添加 2CS 2GB 动态随机存取存储器(DRAM) 支持 FRDM-IMX93 使用 Micron MT53E1G16D1FW 1CS 动态随机存取存储器(DRAM),但该芯片已停产。它将替换为 JSC JSL4BAG167ZAMF 2CS 动态随机存取存储器(DRAM)。对 1G 动态随机存取存储器\(DRAM\) 的支持将被取消。 在 i.MX93 FRDM 上添加 2CS 2GB 动态随机存取存储器\(DRAM\) 支持,以支持基于 1CS 和 2CS 动态随机存取存储器\(DRAM\) 的 FRDM-IMX93 板。 这是因为这两个芯片(见附图)具有不同的时序参数。正如@jjudk所说,唯一的解决办法是升级到新版本的固件。 就我而言,我只能继续使用旧版本。因此,我直接挑选了所需的补丁(请看这里: https ://github.com/nxp-imx/uboot-imx/commit/4c35a6086aedca2f6220382920242ad81ae372f6 ) 如果还有人遇到问题,我可以提供预编译好的版本。 -加布里埃尔
記事全体を表示
由于 高效密码学标准\\(SEC\\)/CAAM 未初始化,BL2 中的安全启动失败 secure_boot_test.png 安全启动在 BL2 中失败看起来是因为 高效密码学标准(SEC)/CAAM 未初始化。在仔细研究代码时,似乎没有直接调用 sec_init,但看起来配置函数是在它之前被调用的,因此全局变量无法获得 高效密码学标准(SEC) 区块地址的定义常量。即 NXP_CAAM_ADDR 值。当我对这个值进行硬编码时,我可以让它稍微进一点,但随后我出现了无法刷新/重置任务铃声的错误。 QorIQ LS1设备 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 你好 BL2中的这种安全启动失败是TF-A(可信固件-A)初始化流程中典型的 " chicken and egg " 问题,专门针对恩智浦Layerscape或i.MX平台。 当你对 NXP_CAAM_ADDR 进行硬编码并克服地址错误但遇到 Job Ring 刷新/RESET 错误时,这通常意味着 CAAM 硬件块要么没有时钟,要么处于过渡状态,要么被安全违规阻止。   1.初始化序列 sec_init 没有在配置函数之前被调用的原因,很可能是 bl2_main.c 中的顺序造成的。或特定平台的 plat_bl2_el3_setup.c 。 修复:确保在 bl2_el3_early_platform_setup 内调用 plat_ls_sec_init() (或与 SoC 类似的函数)。 全局变量问题:如果 NXP_CAAM_ADDR 没有弹出,请检查平台的 plat_get_caam_address() 函数是否返回 0,或者 BL2 转换表中的数据段是否没有正确映射。   2.为什么工作环冲洗失败 如果代码试图刷新作业环却失败了,请考虑以下三个罪魁祸首: 安全违规(最有可能):如果 SoC 处于 " Closed " 模式(已熔丝),CAAM 可能在从 bootROM 过渡到 BL2 的过程中触发了安全违规。网络安全违规会使 CAAM 处于 " Halted " 状态,在该状态下,在违规行为被清除之前,无法重置或使用工作戒指。 缺少时钟/功率:如果在 BL2 期间未在 DCFG(设备配置)或 PCC(外设时钟控制)中明确启用 高效密码学标准(SEC) 模块时钟门,则寄存器将可访问(如果幸运的话),但内部逻辑(如 Job Ring 控制器)不会响应重置命令。 主 ID (MID) 不匹配:作业环需要特定的主 ID 配置,以便 BL2(在 EL3 中运行)能够"自己的" 。如果 BootROM 将振铃分配到不同的 MID 但没有释放它们,BL2 在尝试 RESET 它们时会超时。   3.调试步骤 检查 SEC_VID(版本 ID)和 SEC_STA(状态)寄存器:在 Job Ring 重置呼叫之前阅读这些寄存器。如果状态寄存器显示网络安全违规,则需要找出触发该违规的原因(通常是前一阶段的身份验证失败)。 验证重置位:确保在切换重置位后等待足够长的时间。在某些芯片版本中,CAAM 重置所需的时间比 SDK 中提供的标准延迟环路长。 检查 TrustZone 设置:确保您正在访问的任务环在中央安全单元 (CSU) 或资源域控制器 (RDC) 中标记为 " Secure "。 此致 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 开机后,但在加载 SRKH 镜像寄存器并释放 CPU 之前,如果我检查 DCFG_CCSR_DEVDISR1 寄存器,我会发现位 22 (高效密码学标准(SEC)) 设置为 1。根据有关重置的文档,该寄存器应全部为 0。在启动过程的这么早期,这个值可能在哪里设置?我需要对 pbl 命令做些什么吗?RCW 是否有误?我确实看到在低功耗安全寄存器中检测到电源故障,但我也看到配置寄存器显示应忽略/不应对低功率篡改采取行动。 Re: Secure boot fails in BL2 because SEC/CAAM not initialized 好吧,谁能帮我确认一下? 在 TF-A 驱动程序/nxp/dcfg/dcfg.c 中我找到了一个用于检查是否启用 高效密码学标准(SEC) 的计算方法。它在 SVR_SEC_MASK 和寄存器 0x1ee00a4 的值之间进行比特& ,寄存器 0x1ee00a4 是一个只读寄存器。如果我正确读取了字段,那么 16-23 位的状态是否为 ls1043 或 ls1023,是否 高效密码学标准\(SEC\) 硬件是否启用。我看到该位的值为 0x00000001。哪个会是这个芯片上禁用的高效密码学标准(SEC)封锁,对吗?我参考了完整零件号的示意图并得到了 LS1043ASN7MNLB,当我查看恩智浦的网站显示高效密码学标准(SEC)已禁用时。这是否导致了我的安全启动问题?高效密码学标准(SEC)能否启用这款芯片,还是在它离开恩智浦后就一成不变了?我们需要考虑其他芯片吗,还是可以在没有高效密码学标准(SEC)的情况下进行安全启动? Re: Secure boot fails in BL2 because SEC/CAAM not initialized 支持人工智能复制粘贴?如果我们要走这条路,就需要进一步调整代理。如果 SoC 知道自己的代码库,那么它就应该知道 NXP_CAAM_ADDR 是在头文件中静态定义的,而不是先填充的。
記事全体を表示
I2CスイッチングアプリケーションでP3S0200を使用する場合、OEをGNDに接続すると、Sを介してスイッチングを行うことはできません。 P3S0200をI2Cスイッチングアプリケーションで使用する場合、OE端子がGNDに接続されているとスイッチングはできません。スイッチングは、電源を一度オフにしてから再度オンにすることでのみ可能です。 Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 以下は概略図です。 微信图片_20260409141630_225_32.png   Re: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図を共有していただけますか? 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 回路図をお送りしました。状況をご確認いただけますでしょうか?よろしくお願いいたします。 回复: P3S0200做I2C切换应用时,OE接GND,S不能实现切换 申し訳ありませんが、フォーラムの更新情報に問題があるようです。あなたの返信の通知が表示されません。 OE/S/A/Anを含む波形をキャプチャして、具体的な問題点を確認していただけますか? 例えば、切り替えるとき
記事全体を表示
利用 AAOS 14 在 i.MX8QuadMax 上启用双显示器 嗨,团队、 我正在使用 AAOS 14 在 i.MX8QuadMax 上启用多显示器,需要您的帮助。 目前,我连接了两个外部显示器,并测试了以下组合: 情况 i:LVDS0_CH0 + MIPI_DSI0 MIPI_DSI0 上出现 Android 屏幕 LVDS0_CH0 显示空白屏幕 情况 ii:LVDS1_CH0 + MIPI_DSI0 MIPI_DSI0 上出现 Android 屏幕 LVDS1_CH0 显示空白屏幕 情况 iii:LVDS0_CH0 + MIPI_DSI1 LVDS0_CH0 上出现 Android 屏幕 MIPI_DSI1 显示空白屏幕 情况 iv:LVDS1_CH0 + MIPI_DSI1 MIPI_DSI1 上出现 Android 屏幕 LVDS1_CH0 显示空白屏幕 要求: 我们需要任意两个端口(LVDS0_CH0、LVDS1_CH0、MIPI_DSI0、MIPI_DSI1)来同时显示 Android 屏幕。 此外,我还检查了 DRM 的状态: write /sys/class/drm/card0-HDMI-A-2/status on write /sys/class/drm/card1-HDMI-A-2/status on 输出显示已连接,但仍只有一个显示屏处于活动状态。 能否请您帮助我们了解启用双屏显示输出需要哪些配置或更改? 谢谢。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 您好@harshi03 ,能否分享一下您使用的是哪张 dtb 图像? 致敬, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 嗨,感谢您的回复 我附上了截图,显示了用于在 imx8qm 上闪烁的 dtbo 映像。 谢谢! Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14     您好, 感谢您的反馈, 按照要求,我分享了用于 i.MX8QM 闪存的 DTBO 映像。能否请您帮助我们了解启用双屏显示输出所需的正确配置步骤? 具体来说,我们希望得到以下方面的指导 启用两个活动显示管道 (LVDS/MIPI) 所需的设备树 (DTB/DTBO) 正确路由显示接口 (DCSS/LCDIF) 以实现同步输出 AAOS 14 支持多显示器所需的任何内核或 DRM 配置 是否需要对 init.rc 或显示服务配置进行额外更改 目前,虽然两个显示屏在 DRM 中都显示为"connected" ,但同时只有一个显示屏处于活动状态。 如果您能在 i.MX8QM 上共享支持双显示器的参考配置或示例设置,那将非常有帮助。 谢谢     Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@harshi03 AAOS 14 支持多显示器,dts 文件是 imx8qm-mek-car-m d.dts,请根据此 dts 进行修改。 android-imx_device_fsl/imx8q/mek_8q/BoardConfig.mk at android-14.0.0_2.2.0 - nxp-imx-android/android-imx_device_fsl - GitHub 致敬, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 要使用 AAOS 14 源代码在 imx8qm 上显示两个显示器,需要做哪些更改,请提供步骤。 谢谢& Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我附上了 imx8qm-mek.dts 文件以供审查,显示映射是否正确,附上的 dtb 图像也请查看并指导我是否需要对第二台显示器进行任何更改。请尽快回复。 谢谢& Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 您好@harshi03 您使用的是 AOSP 还是汽车 AOSP? 最美好的祝愿, Zhiming Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我使用的是汽车 AOSP(i.MX8 quad max 平台上的 AAOS 14)。 谢谢& 。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 感谢您的回复 按照建议,我们检查了 imx8qm-mek-car-md.dts 和 BoardConfig.mk(android-14.0.0_2. 2.0),并相应地更新了设置。 但是, imx8qm-mek-car-md.dts 文件似乎与源代码中已经存在的文件相同,我们 不清楚需要进行哪些具体修改。 即使验证了这一点,我们仍然只能看到一个活动的显示屏。请说明需要对 DTS 或配置进行哪些具体更改才能启用多显示器? 感谢并致意。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 我已经通过 MIPI_DSI0 将 LVDS0_CH0 和 MIPI_DSI0 连接到主板上,它显示的是主显示器,但是通过 LVDS0_CH0 它将其视为 HDMI 显示器。 DRM、HWC 和 SurfaceFlinger 都能正确检测到 HDMI 显示屏, adb shell dumpsys SurfaceFlinger --display-id 显示 了端口 0 和端口 1 的 显示屏。 logcat 还显示了 分辨率为 1920x1080 的 DisplayDeviceInfo{"HDMI 屏幕"}。 但是,重启后, adb shell dumpsys 显示 屏显示 HDMI, mIsEnabled=false。我启用了 config_enableMultiDisplay=true 和 config_enableDisplayPortInDisplayLayout=true,将占用映射从 INSTRUMENT_CLUSTER 改为 MAIN,添加了 /vendor/etc/displayconfig/display_layout_configuration.xml,并在 config_localPrivateDisplayPorts 中添加了端口 1 。我尝试了 和 XML 格式,但 LogicalDisplayMapper 仍然只应用了包含端口 0 的布局,因此 HDMI 端口 1 从未添加到活动布局中。 有时第二个显示屏会变成 mIsEnabled=true,但重启后 又会 变成 false 。您能否确认 display_layout_configuration.xml 的 XML 模式 是否 正确 ,以及 LogicalDisplayMapper/DeviceStateToLayoutMap 是否需要任何额外的框架覆盖、DTS 配置或 NXP 特定补丁才能永久启用 HDMI 逻辑显示? 谢谢,并致以问候。 Re: Dual Display Enablement on i.MX8QuadMax with AAOS 14 你好@刘志明、 现在我使用的是午餐 mek_8q_car-trunk_staging-userdebug 您能建议我们应该选择什么特定的午餐命令来启用多显示器功能吗? 谢谢!
記事全体を表示
[フィルター: スパム] dexter_travis の投稿本文が「loan」、ボード「1007forum-board」に一致しました。 [フィルター: スパム] dexter_travis の投稿本文が「loan」、ボード「1007forum-board」に一致しました。 投稿件名: Re: i.MX95 EVK と SJA1105Q-EVB の接続 投稿本文: 残念ながら、私はお客様に SJA1105 ボードを貸与しなければなりませんでした。彼らは、DSA 実装がニーズに適しているかどうかを確認するために、93 車載 EVK でこれをテストして使用しています。 現時点では 95 の結果を確認することはできません。 テストと検証をしていただきありがとうございます。ボードが戻ってきたら、あなたの結果を再現してみます。それまではこのチケットを閉じておけます。 本文のテキスト「loan」がフィルター パターン「loan」と一致しました。 ユーザー[id=241378,login=dexter_travis]による投稿は、エンドユーザー側で発生する次のエラーのため拒否されました: メッセージ本文にローンが含まれていますが、このコミュニティでは許可されていません。投稿を送信する前にこのコンテンツを削除してください。
記事全体を表示
i.MX93 - 1PPS入力とPTP 目標: GPS レシーバからの Pulse-Per-Second (PPS) 信号と GPRMC ログを使用して、ENET_QoS イーサネット コントローラ内で PTP 時間の同期を検証する ハードウェア: i.MX 93 ビルドルート: 2025.11.1 Linux: 6.12.16 Linuxptp : 4.4 デバイスツリーオーバーレイの変更: eqos のステータスを「無効」から「正常」に変更します usdhc2 pinctrl-* エントリから pinctrl_usdhc2_gpio および pinctrl_usdhc2_gpio_sleep エントリを削除します。 pinctrl_eqos と pinctrl_eqos_sleep に「MX93_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN 0x31E」エントリを追加します。 usdhc2 cd-gpiosエントリを削除し、broken-cdに置き換えます pinctrl_usdhc2_gpio ノードと pinctrl_usdhc2_gpio_sleep ノードを削除します。  ターゲット上のソフトウェアの場所: eMMCからの起動 LinuxカーネルとptpアプリをubootingしてSDカードから実行する  Linux PTPソフトウェアを実行中: ptp4l -E4H -i eth1 ts2phc -c /dev/ptp1 -s nmea --ts2phc.nmea_remote_host10.128.240.54 --ts2phc.nmea_remote_port3001 --ts2phc.ピンインデックス0 -l 7 -m PPS入力: 現在、GPS レシーバからの PPS 信号を受け入れるように FRDM i.MX 93 ボードに変更を加える前に、あらゆるイベントのタイムスタンプを検証しようとしています。これらのイベントを生成するために、SD カード ソケットの機械式スイッチの脚の間に絶縁体を挿入しています。SD2_nCD に接続された IO ピンを GPIO 入力として手動で設定し、このアクションによってピンの入力電圧が変化することを確認しました。ハードウェアによるイベント情報のタイムスタンプは、特定の周期性に依存すべきではないと私は想定しています。 テスト結果: ts2phcはGPRMCログを受信していますが、ログにはポーリングで常にゼロイベント情報が返されることが示されています。 devmem プログラムを使用したスクリプト経由でレジスタを調べると、次のようになります。 SW_MUX_CTL_PAD_SD2_CD_B 0x00000001 SW_PAD_CTL_PAD_SD2_CD_B 0x0000031E MAC_SYSTEM_TIME_SECONDS 0x69AB35B0 MAC_SYSTEM_TIME_NANOSECONDS 0x10642013 MAC_TIMESTAMP_STATUS 0x00000000 MAC_補助制御 0x00000010 MAC_AUXILIARY_TIMESTAMP_NANOSECONDS 0x00000000 MAC_AUXILIARY_TIMESTAMP_SECONDS 0x00000000 システム時間レジスタが適切に時間をカウントしていることがわかります 補助タイムスタンプ レジスタにはゼロ以外の値が表示されることはありません。リファレンス マニュアルでは、FIFO が空のときには常にゼロが読み取られるのか、それとも最新のタイムスタンプが返されるのかは明確ではありません。 SW_MUX_CTL_PAD_SD2_CD_B レジスタの SION ビットを 0 と 1 の両方に設定してこれを試しましたが、結果に違いはありませんでした。 pin_index マッピングが予想どおりでなかった場合に備えて、MAC_AUXILIARY_CONTROL レジスタの 4 つの ATSEN ビットをすべて設定してみましたが、結果に違いはありませんでした。 i.MX 93 アプリケーションプロセッサリファレンスマニュアル、Rev. 6、2025-07-01 を読んだときに生じた追加の質問: 第 43 章 TSN 対応イーサネット コントローラ (ENET_QoS)、セクション 43.5、表 417 には、2 つの異なるイベント入力 1588_EVENT_AUX_IN と 1588_EVENT_IN がリストされています。これら 2 つの信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_IN ポートは ENET_QoS 内で何に接続しますか?1588_EVENT_AUX_INはptp_aux_trig_i[0]に接続され、ATSEN0ビットによって制御されていると推測します。(これはカーネルと ts2phc が期待していることでもあるようです。)それは正しいですか? 第43章、セクション43.5、表417には、1つのイベント出力1588_EVENT_OUTがリストされています。この信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_OUT ポートは ENET_QoS 内で何に接続しますか?PPS 出力の 1 つに関連付けられていますか? 第 43 章では、タイムスタンプをトリガーするために ptp_aux_trig_i 入力のどのエッジ (立ち上がり/立ち下がり/両方) が使用されるかが指定されていないようです。 Re: i.MX93 - 1PPS input and PTP こんにちは、 NXP Semiconductors製品にご興味をお持ちいただきありがとうございます。 AUX_IN 信号は、現在の時刻 (この時刻は、どのアプリケーションでもタイムスタンプ値として使用されます) をタイムスタンプ FIFO にラッチすることをトリガーするために使用されます (以前のトリガー イベントから複数のタイムスタンプ値がある場合があります)。 EVENT_IN はメディア クロック生成および回復ブロックへの入力であり、次のトリガーに使用されます。 アプリケーションから読み取られたターゲットプレゼンテーション時間のキャプチャは、リカバリモードが有効になっている場合は MAC_PPSn_Target_Time_Seconds に結果を生成します。 生成モードが有効になっている場合、サンプリングされたトリガーで現在のプレゼンテーション時間をキャプチャします。 1588_EVENT_OUT は、プロセッサによって PPS 出力を駆動するために使用されます。 よろしくお願いします。 Re: i.MX93 - 1PPS input and PTP AUX_IN という用語を使用する場合、それは表 417 の 1588_EVENT_AUX_IN という用語と同じですか? もしそうなら、どの特定の ATSEN* ビットにマップされますか? AUX_IN (1588_EVENT_AUX_IN) は、SW_MUX_CTL_PAD_SD2_CD_B の ENET_QOS_1588_EVENT0_IN モードに接続しますか? Re: i.MX93 - 1PPS input and PTP こんにちは@Kevin_M はい、1588_EVENTx_AUX_IN です。次のフィールドを確認してください。これが AUX の使用法です。 PTGE プレゼンテーション時間生成の有効化 このビットが設定されると、プレゼンテーション時間生成が有効になります。 0 - プレゼンテーション時間生成が無効 1 - プレゼンテーション時間生成が有効 ... MAC_PPS0_ターゲット時間秒 PPS ターゲット時間秒レジスタ このフィールドには、時間を秒単位で格納します。 PPSターゲットタイム秒レジスタ このフィールドには時間が秒単位で保存されます。タイムスタンプ値が両方のターゲット タイムスタンプ レジスタと一致するかそれを超えると、MAC は PPS 信号出力を開始または停止し、MAC_PPS_CONTROL レジスタの対応する PPS 出力に対して選択されたターゲット タイム モードに基づいて割り込み (有効な場合) を生成します。 ... 43.7.9.1 メディアクロック生成のプログラミングガイドライン 1. PPSインスタンスをメディアクロック生成モードに設定するには、適切なプレゼンテーションタイムコントロール(サポートされている生成モード「1001-1011」)をMAC_PPS_CONTROLレジスタのPPSCMD(0番目のインスタンスの場合)/PPSCMD#i(1、2、3番目のインスタンスの場合)にプログラムします。 2. 選択されたPPSインスタンスに基づいて、アプリケーションは対応するmcg_pst_trig_i[#i]に適切なトリガー信号を駆動する必要があります。 ... 43.7.9.2 メディアクロックリカバリのプログラミングガイドライン 1. MAC_TIMESTAMP_CONTROL レジスタの PTGE フィールドを設定して、現在のプレゼンテーション時間 (CPT) カウンタを有効にします。システム時間の初期化値をプログラムすることに加えて、同等のプレゼンテーション時間の初期値で MAC_PRESN_TIME_UPDT レジスタを更新します。その後、MAC_TIMESTAMP_CONTROL レジスタの TSINIT フィールドが設定されます。 2. システム時間に使用される増分値は、現在のプレゼンテーション時間にも使用されます。これは、増分値がサブ秒およびサブナノ秒単位であるためです。 1.各ATSENはそれぞれのEVENTにマッピングされます 2. 正解です。ここでAUX_INを確認できます。https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h#L54 よろしくお願いいたします。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP私は PPS 出力を設定しようとしているわけではなく、IEEE 1722 と関係のあることもしようとしているわけではありません。ENET_QOS_1588_EVENT0_IN の状態が変化した瞬間にタイムスタンプを付けようとしています。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP さん、ENET_QoSで1588 PPSの入力がうまく機能しない理由について、まだ調査中でしょうか? Re: i.MX93 - 1PPS input and PTP @Kevin_Mこの問題の解決に何か進展はありましたか?私も同じ問題に直面しています。ENETインスタンスではPTPをPPS入力と同期させることはできますが、リファレンスマニュアルやドライバでEVENT0_INピンをENET_QOSで使用する方法が見つかりません。 Re: i.MX93 - 1PPS input and PTP ケビンさん、ありがとうございます。確かにそれが唯一の方法のようですが、stmmacドライバではまだ対応していないようなので、追加する必要がありますね。 Re: i.MX93 - 1PPS input and PTP NXPは、ENET_QoSのAUX TIMESTAMP機能がi.MX93チップの内部または外部のいずれにも接続されていないことを確認しました。 私は、1588_EVENT0_IN モードで SD2_CMD を介して PPS をルーティングし、MAC_PPS_CONTROL をプレゼンテーション時間制御オプション 0001 を使用するように設定して、PPS 信号の立ち上がりエッジでプレゼンテーション時間をキャプチャし、MAC_PPS0_TARGET_TIME_SECONDS でキャプチャされた時間を読み取ることに成功しました。まだ解決すべき細かい点はたくさんありますが、これは有望な解決策のように思えます。
記事全体を表示
FRDM-MCXW71 调试问题 您好,NXP团队: 我正在开发 FRDM-MCXW71 板,正在尝试调试 m cxw71_evk_cmsis_button_toggle_led 的示例和一些使用 mcuxPresso 编写 Visual Studio Code(版本 26.2.46)的 BLE 示例。但是,调试会话没有启动。 它显示了以下错误 无法启动:远程连接已关闭 (从目标选择扩展远程 172.0.0. 1:2356) 我还尝试过使用 LinkFlash(Linkflash v25.12.83)对板进行编程,但它显示了这个错误: 无法连接到核心 Et:31:无法连接到芯片的调试端口 PC: (100) 目标操作失败 在硬件方面,USB_ACT 绿色 LED 亮起,ISP_EN_MLINK 红色 LED 闪烁,USB LED 也亮起。 之前开发板运行良好,但现在我无法调试或刷新任何示例。 请问如何解决这个问题? 我附上了屏幕截图以供参考。#mcxw71 #FRDMMXCW71 模拟(ADC|CMP|DAC|OPAMPS) 核心与内存 FRDM 培训 MCXA MCXC MCX N USB Re: FRDM-MCXW71 debug issue 你好,希望你一切都好。 你能否确认一下你是否能够构建和调试这个之前的任何其他示例?您使用的是哪个版本的 SDK?您能够运行的最后一个示例是什么? 由于您使用的是 MCXW71-EVK 示例,能否请您尝试导入 FRDM-MCXW71 示例(标有"frdmmcxw71_cmsis_button_toggle_led" ),并告诉我是否有效?   谨致问候, Ana Sofia。 Re: FRDM-MCXW71 debug issue 你好, 感谢您的答复。 我使用的是 SDK 25.12 版本。早些时候,示例 mcxw71_evk_cmsis_button_toggle_led 在 FRDM-MCXW71 板上运行,BLE 示例也能正常运行。 收到您的回复后,我再次下载了 FRDM-MCXW71 SDK 25.12 版,并尝试调试和运行 frdmmcxw71_cmsis_button_toggle_led 示例。但是,我还是遇到了同样的问题:,同样的问题出现在 " 启动 GDB 服务器:"C:\\NXP\\LinkServer_25.12.83\\LinkServer.exe"-l5 gdbserver " mcxw716cxxxa: frdm-mcxw71 "--probe U04N4UXLTCAYZ--gdb-port 2330--no-boot--core primary--redlink-port 2440 请查看终端选项卡(GDB 服务器控制台)查看 " C:\NXP\LinkServer_25.12.83\ LinkServer.exe " 的输出 输出基数现在设置为十进制 10、十六进制 a、八进制 12。 输入基数现在设置为十进制 10,十六进制 a,八进制 12。 错误 103:无法启动 GDB:远程连接已关闭(从目标选择扩展远程 127.0.0. 1:2330)",你 能帮我理解如何解决这个问题吗? Re: FRDM-MCXW71 debug issue 恩智浦团队您好, ,能否请您在方便时提供最新信息? 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: FRDM-MCXW71 debug issue 恩智浦团队您好, ,能否请您在方便时提供最新信息? 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: FRDM-MCXW71 debug issue 你好   如果启动时发生错误,D7 LED 会快速闪烁。你能否尝试使用第 3.4 节使用 UM12063 FRDM-MCXW71 板用户手册的固件更新实用程序更新 MCU‑Link 固件中所述的步骤更新 MCU‑Link 调试固件?   使用 MCU-Link 调试 MCXW71 MCU 所需的跳线和连接器设置,请参见第 3.2 节 "支持的调试方案"。你能否帮我验证一下你的 FRDM 板上的这些设置,以及 JP5 是否已打开,这样 MCU‑Link 就可以正常启动。当 JP5 短路时,MCU‑Link 将被迫进入互联网服务提供商模式,无法遵循其标准启动顺序。   另外,为了确认一下,您之前运行的是哪个 BLE 示例?您测试过低功耗的例子吗?设备也有可能进入低功耗状态。   致以最诚挚的问候, Ana Sofia。 Re: FRDM-MCXW71 debug issue 你好@sofiaurueta, 1) D7 LED 以 1 秒间隔闪烁。我参考了用户手册第 3.4 和 3.2 节,并验证了跳线和连接设置。但是,使用 LinkFlash 和 VS Code 调试时,板仍然无法闪烁。前面提到的问题依然存在。 我只启动了 adv_ext_central_freertos 示例和按钮切换 LED 示例。我没有闪存过任何低功耗示例。 请问如何解决这个问题? Re: FRDM-MCXW71 debug issue 您好 , 能否请您在方便时提供最新信息? 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: FRDM-MCXW71 debug issue 您好 , 能否请您在方便时提供最新信息? 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: FRDM-MCXW71 debug issue 你好 你能试着进行一次大规模清除吗?在 J-Link Commander 中使用"unlock kinetis" 命令,或通过 MCUXpresso(使用图形用户界面闪存工具)使用大量擦除命令,同样有效。 之后,你可以尝试运行 hello_world 或 BLE 示例,以确保板正常运行。   如果还不行,我会尝试使用外部调试器。 希望这能帮到您。 致以最诚挚的问候, Ana Sofia。
記事全体を表示
How to do DPP test with two 88W8997 and one IW612 What's DPP? DPP:Device Provisioning Protocol It is also called: Wi-Fi Easy Connect. The DUT is a device that needs to join the network. It actively initiates DPP authentication (Initiator + Enrollee), which is configured by CTT1, and finally joins the Wi-Fi network provided by CTT2 (Responder + AP) as a STA. DPP Role introduction: CTT1 (Configurator) Reads DUT's bootstrap key Coordinates DPP Authentication/Configuration Sends Wi‑Fi credentials to the DUT DUT (Initiator + Enrollee + STA) Is the device being provisioned Initiates DPP Authentication toward CTT2 Receives Wi‑Fi credentials from CTT1 Connects as a STA to the AP on CTT2 CTT2 (Responder + AP + Enrollee) Responds to DUT’s DPP Authentication messages Operates as an AP using hostapd The DUT will join this AP after provisioning Below is the process flow: 1.Add a Configurator and generate QR code on CTT1 (configurator). 2.Authenticate the DUT on DUT(STA) 3.Generate the QR Code and get URI on CTT2 4.Enter the QR Code on CTT1 and authenticate 5.Update AP configuration on CTT2 6.The connection between the DUT (STA) and CTT2 (AP) is successful. DPP flow.png   Reference: https://docs.nxp.com/bundle/RM00297/page/connectivity-features/topics/wi-fi_easy_connect_dpp.html Wi-Fi Easy Connect Specification   The red fonts in the pdf are commands. The green fonts in the pdf are comments. CTT1:Configurator Typically, it's a mobile phone or PC used to scan QR codes and issue Wi-Fi credentials. IMX93-EVK+IW612 module imx93evk login: root root@imx93evk:~# uname -a Linux imx93evk 6.12.34-lts-next-gbe78e49cb433 #1 SMP PREEMPT Wed Sep  3 05:59:19 UTC 2025 aarch64 GNU/Linux root@imx93evk:~# cat /lib/firmware/nxp/wifi_mod_para.conf SDIW612 = { cfg80211_wext=0xf max_vir_bss=1 cal_data_cfg=none ps_mode=2 auto_ds=2 host_mlme=1 drv_mode=0x17 fw_name=nxp/sduart_nw61x_v1.bin.se } root@imx93evk:~# vi wpa_supplicant.conf root@imx93evk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx93evk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 678 root@imx93evk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx93evk:~# root@imx93evk:~# root@imx93evk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_CONFIGURATOR_ADD 1 > SET dpp_configurator_params " conf=sta-dpp configurator=1" OK > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=fc:84:a7:51:87:fc //MAC address of CTT1 itself. 1 > DPP_BOOTSTRAP_GET_URI 1  //Attention here, after this command, will generate a QR code, which will be use on DUT with command:DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; > DPP_LISTEN 2412 role=configurator OK //Hold on here, and now go to DUT side to authenticate the DUT with above QR Code. After authenticate on DUT, will auto output below logs. <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=0 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=1 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 freq=2412 result=SUCCESS <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 own=1 peer=-1 <3>DPP-CONF-REQ-RX src=20:4e:f6:bb:08:d9 <3>DPP-BAND-SUPPORT 81,82,83,84,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130 <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 //Now continue, after you generate the QR Code and get URI on CTT2. Enter the QR Code on CTT1 and authenticate: > DPP_QR_CODE DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;; 2 //On successfully adding QR Code, a bootstrapping info id is returned as shown 2 in above command and should input in below command DPP_AUTH_INIT > DPP_AUTH_INIT peer=2 conf=ap-dpp configurator=1 OK //Now go to CTT2 to update AP configurations. <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=0 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=2 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=22233c6d83a272944eeb9788870b0b564b46ba8d48fd80787f5cc22bcec95c87 own=-1 peer=2 <3>DPP-CONF-REQ-RX src=02:e9:3a:0d:b8:cd <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 > list_networks network id / ssid / bssid / flags > quit root@imx93evk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = SDIW612---18.99.3.p26.7-MM6X18540.p7-(FP92) interface_name="mlan0" firmware_major_version=18.99.3 uuid = 1653948cf99e5b2bbe5ad9b851d6151a bss_mode ="Managed" media_state="Disconnected" mac_address="fc:84:a7:51:87:fc" multicast_count="2" essid="" bssid="00:00:00:00:00:00" channel="0" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" num_tx_bytes = 0 num_rx_bytes = 0 num_tx_pkts = 0 num_rx_pkts = 0 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier off tx queue 0:  stopped tx queue 1:  stopped tx queue 2:  stopped tx queue 3:  stopped === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 1 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 0 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 7 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx93evk:~# DUT:Initiator + Enrollee + STA The device you want it to join the network. IMX8MQ-EVK+88W8997 module root@imx8mqevk:~# uname -a Linux imx8mqevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mqevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mqevk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 root@imx8mqevk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx8mqevk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 799 root@imx8mqevk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx8mqevk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; 1 > DPP_AUTH_INIT peer=1 role=enrollee OK <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=6785abbd108e5ef6fe780819634ef620fc6eb71715b92b07f393e58af7afa0b6 own=-1 peer=1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6InN0YSJ9XSwibmV0QWNjZXNzS2V5Ijp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoibjBQbXlSMVhUUE14WUNiM2tqYjF1Yjh3Q055bUUtREFTcE4tZ2I0ZDhDcyIsInkiOiJfbmlkd1V6NkFkM1AySy1RYVJuXzZTem9KYlJWRGt3d0VYeTdZU2JoMDU4In19.kfVVpSaFNaTfoLVE5Yu16bLMfpSlVXGlul07FNwQ7gLPlYOTGS5lbOLwCTkP246kSC1Wn-8MWSUXpxgpSpsX2A <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-PP-KEY 3039301306072a8648ce3d020106082a8648ce3d03010703220002a0008bd0723f2723408ef53550f5cbc55785ea625ec5265d81e16c0cd45a5e3a <3>DPP-NET-ACCESS-KEY 30770201010420cedd6e85e66768b1a8e14e2e048fd54b7f09277195c3db3f6b1887e8b449e872a00a06082a8648ce3d030107a144034200049f43e6c91d574cf3316026f79236f5b9bf3008dca613e0c04a937e81be1df02bfe789dc14cfa01ddcfd8af906919ffe92ce825b4550e4c30117cbb6126e1d39f <3>CTRL-EVENT-NETWORK-ADDED 0 <3>DPP-NETWORK-ID 0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND > DPP_STOP_LISTEN OK //All commands on DUT side finished until here. Now go to CTT2 side to continue, generate the QR Code and get URI on CTT2. <3>CTRL-EVENT-SCAN-RESULTS <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=5 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=6 <3>PMKSA-CACHE-ADDED 02:e9:3a:0d:b8:cd 0 <3>DPP-INTRO peer=02:e9:3a:0d:b8:cd status=0 version=2 <3>SME: Trying to authenticate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Trying to associate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Associated with 02:e9:3a:0d:b8:cd <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 99 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 195 <3>WPA: Key negotiation completed with 02:e9:3a:0d:b8:cd [PTK=CCMP GTK=CCMP] <3>CTRL-EVENT-CONNECTED - Connection to 02:e9:3a:0d:b8:cd completed [id=0 id_str=] > list_networks network id / ssid / bssid / flags 0       test    any     [CURRENT] > quit root@imx8mqevk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = PCIE8997--16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="mlan0" firmware_major_version=16.92.21 bss_mode ="Managed" media_state="Connected" mac_address="20:4e:f6:bb:08:d9" multicast_count="4" essid="test" bssid="02:e9:3a:0d:b8:cd" channel="1" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" multicast_address[2]="33:33:ff:bb:08:d9" multicast_address[3]="33:33:00:00:00:fb" num_tx_bytes = 2458 num_rx_bytes = 350 num_tx_pkts = 19 num_rx_pkts = 3 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 18 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 19 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 67 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mqevk:~# CTT2 (AP):Responder + AP + Enrollee IMX8MPlus EVK + 88W8997 module root@imx8mpevk:~# uname -a Linux imx8mpevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mpevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mpevk:~# hostapd hostapd.conf -B & [1] 1731 root@imx8mpevk:~# HT (IEEE 802.11n) with WPA/WPA2 requires CCMP/GCMP to be enabled, disabling HT capabilities rfkill: Cannot open RFKILL control device uap0: interface state UNINITIALIZED->ENABLED uap0: AP-ENABLED [1]+  Done                    hostapd hostapd.conf -B root@imx8mpevk:~# hostapd_cli hostapd_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'uap0' Interactive mode > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=02:e9:3a:0d:b8:cd //MAC address of CTT2 itself and returned 1 is bootstrap info id which require to get QR code in below command. 1> DPP_BOOTSTRAP_GET_URI 1 //Attention here, after this command, will generate a QR code, which will be use on CTT1 with command:DPP_QR_CODE. Then directly go to CTT1 to enter the QR Code. DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;;> //Hold on here, and now go to CTT1 to authenticate this AP with above QR Code. After authenticate on CTT1 with QR Code, will auto output below logs. Pay attention on the keys and connectors info, will use them later when you update the AP. > <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=8b3e0f88b70610446a84f53ea9d792f5631b2b87e30cd219a8059c6f7893c501 own=1 peer=-1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-NET-ACCESS-KEY 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS //Now update AP configurations on CTT2: //First disable AP: > disable <3>AP-DISABLED OK //Update AP parameters: > set ssid test OK > set wpa 2 OK > set wpa_key_mgmt DPP OK > set ieee80211w 2 OK > set rsn_pairwise CCMP OK > set dpp_connector eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ OK > set dpp_csign 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b OK > set dpp_netaccesskey 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 OK //Re-enable the AP after updates: > enable <3>AP-ENABLED OK //just wait here, it will output below logs after some seconds. > <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=5 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=6 status=0 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 result=SUCCESS <3>AP-STA-CONNECTED 20:4e:f6:bb:08:d9 dpp_pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 <3>EAPOL-4WAY-HS-COMPLETED 20:4e:f6:bb:08:d9 > quit > root@imx8mpevk:~# cat /proc/mwlan/adapter0/uap0/info driver_name = "uap" driver_version = PCIE8997--w8997o-V4, RF878X, FP92, 16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="uap0" firmware_major_version=16.92.21 media_state="Connected" mac_address="02:e9:3a:0d:b8:cd" num_tx_bytes = 462 num_rx_bytes = 2248 num_tx_pkts = 4 num_rx_pkts = 20 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 60 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started tkip_mic_failures = 0 ccmp_decrypt_errors = 0 wep_undecryptable_count = 0 wep_icv_error_count = 0 decrypt_failure_count = 0 mcast_tx_count = 20 failed_count = 3 retry_count = 0 multiple_retry_count = 0 frame_duplicate_count = 0 rts_success_count = 0 rts_failure_count = 0 ack_failure_count = 30 rx_fragment_count = 55 mcast_rx_frame_count = 18 fcs_error_count = 401368 tx_frame_count = 22 rsna_tkip_cm_invoked = 0 rsna_4way_hshk_failures = 0 === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 22 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 64 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 28229 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mpevk:~#
記事全体を表示