Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
KW45B41Z-EVK: CAN 变速器 恩智浦支持人员你好, 目前我正在开发恩智浦 KW45B41Z-EVK 板。我的目标是从 BLE 板上传输 CAN 帧。我曾尝试使用 SDK 示例,但它不能提供 CAN 的直接接口。 我无法传输 CAN 帧。仅供参考,我正在使用 Technica CAN 捕获模块。 期待您的及时帮助。 所以,我开发了一个自定义应用程序,以下是代码供你参考: #include"fsl_debug_console.h" #include"fsl_flexcan.h" #include "board.h" #include"app.h"   /******************************************************************************* * 定义 ******************************************************************************/ /* 修正 MISRA_C-2012 第 17.7 条规则。*/ #define LOG_INFO (void)PRINTF   #ifndef USE_CANFD #define USE_CANFD (1) #endif   #ifndef EXAMPLE_CAN_BIT_RATE #define EXAMPLE_CAN_BIT_RATE (500000U) #endif   #ifndef EXAMPLE_CAN_BIT_RATE_FD #define EXAMPLE_CAN_BIT_RATE_FD (2000000U) #endif #define USE_PHY_TJA1152 (1) #if (defined(USE_CANFD)&& USE_CANFD) /* * DWORD_IN_MB DLC BYTES_IN_MB 最大 MB 数 * 2 8 kFLEXCAN_8BperMB 32(1 个 RAM 块) 64(2 个 RAM 块) 96(3 个 RAM 块) * 4 10 kFLEXCAN_16BperMB 21(1 个 RAM 块) 42(2 个 RAM 块) 63(3 个 RAM 块) * 8 13 kFLEXCAN_32BperMB 12(1 个 RAM 块) 24(2 个 RAM 块) 36(3 个 RAM 块) * 16 15 kFLEXCAN_64BperMB 7(1 个 RAM 块) 14(2 个 RAM 块) 21(3 个 RAM 块) * * 每个消息缓冲区中的 Dword,以字节为单位的数据长度,有效负载大小必须一致, * 信息缓冲区的限制与每个有效载荷配置相对应: */ #define DWORD_IN_MB (16) #define DLC (15) #define BYTES_IN_MB kFLEXCAN_64BperMB #else #define DLC (8) #endif /******************************************************************************* * 原型 ******************************************************************************/   /******************************************************************************* * 变量 ******************************************************************************/ flexcan_handle_t flexcanHandle; volatile bool txComplete = false; flexcan_mb_transfer_t txXfer; #if (defined(USE_CANFD)&& USE_CANFD) flexcan_fd_frame_t frame; #else flexcan_frame_t frame; #endif static const uint32_t kFlexcanTxId = 0x123U; #if (defined(USE_CANFD)&& USE_CANFD) static const uint8_t kPayloadSize = 64U; static const uint8_t kFrameLength = (uint8_t)DLC; #else static const uint8_t kPayloadSize = 8U; static const uint8_t kFrameLength = (uint8_t)DLC; #endif   /******************************************************************************* * 代码 ******************************************************************************/ /*! * CAN 收发器简要配置功能 */ static void FLEXCAN_PHY_Config(void) { /* 始终确保收发器待机引脚处于驱动状态。*/ GPIO_PortSet(EXAMPLE_STB_RGPIO, 1u<< EXAMPLE_STB_RGPIO_PIN);   #if (defined(USE_PHY_TJA1152)&& USE_PHY_TJA1152) /* 初始化 TJA1152。*/ /* STB=H,配置 CAN 信息将通过 TXD 引脚从本地主机发送。*/   /* 必须传输带有标准标识符 0x555 的经典 CAN 报文 在 TJA1152 確認之前,本地主機控制器將 * 儲存在 TJA1152 中。 * 自动检测比特率。不要设置 frame.brs = 1U,以保持标称值 * CANFD 帧数据阶段的比特率。*/ frame.id = FLEXCAN_ID_STD(0x555); frame.format = (uint8_t)kFLEXCAN_FrameFormatStandard; frame.type = (uint8_t)kFLEXCAN_FrameTypeData; frame.length = 0U; txXfer.mbIdx = (uint8_t)TX_MESSAGE_BUFFER_NUM; #if (defined(USE_CANFD)&& USE_CANFD) txXfer.framefd =&frame; (void)FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #else txXfer.frame =&frame; (void)FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #endif while (!txComplete)     { }; txComplete = false;   /* 配置欺骗保护。*/ /* 在传输白名单中添加 0x321 和 0x123。*/ frame.id = FLEXCAN_ID_EXT(0x18DA00F1); frame.format = (uint8_t)kFLEXCAN_FrameFormatExtend; frame.type = (uint8_t)kFLEXCAN_FrameTypeData; frame.length = 6U; #if (defined(USE_CANFD)&& USE_CANFD) frame.dataWord[0]= CAN_WORD_DATA_BYTE_0(0x10) | CAN_WORD_DATA_BYTE_1(0x00) | CAN_WORD_DATA_BYTE_2(0x33) | CAN_WORD_DATA_1(0x00) | CAN_WORD_DATA_BYTE_2(0x33) CAN_WORD_DATA_BYTE_3(0x21); frame.dataWord[1]= CAN_WORD_DATA_BYTE_4(0x11) | CAN_WORD_DATA_BYTE_5(0x23); (void)FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #else frame.dataWord0 = CAN_WORD0_DATA_BYTE_0(0x10) | CAN_WORD0_DATA_BYTE_1(0x00) | CAN_WORD0_DATA_BYTE_2(0x33) | CAN_WORD0_DATA_BYTE_2(0x33) | CAN_WORD0_DATA_BYTE_2(0x33) CAN_WORD0_DATA_BYTE_3(0x21); frame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0x11) | CAN_WORD1_DATA_BYTE_5(0x23); (void)FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #endif while (!txComplete)     { }; txComplete = false;   /* 配置命令信息 ID。*/ /* 只接受本地重新配置。保持 CONFIG_ID 为默认值 0x18DA00F1。*/ frame.length = 5U; #if (defined(USE_CANFD)&& USE_CANFD) frame.dataWord[0]= CAN_WORD_DATA_BYTE_0(0x60) | CAN_WORD_DATA_BYTE_1(0x98) | CAN_WORD_DATA_BYTE_2(0xDA) | CAN_WORD_DATA_1(0x98) | CAN_WORD_DATA_BYTE_2(0xDA) CAN_WORD_DATA_BYTE_3(0x00); frame.dataWord[1]= CAN_WORD_DATA_BYTE_4(0xF1); (void)FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #else frame.dataWord0 = CAN_WORD0_DATA_BYTE_0(0x60) | CAN_WORD0_DATA_BYTE_1(0x98) | CAN_WORD0_DATA_BYTE_2(0xDA) | CAN_WORD0_DATA_BYTE_2(0xDA) CAN_WORD0_DATA_BYTE_3(0x00); frame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0xF1); (void)FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #endif while (!txComplete)     { }; txComplete = false;   /* 离开配置模式。*/ /* 仅配置到易失性存储器中。*/ frame.length = 8U;   #if (defined(USE_CANFD)&& USE_CANFD) frame.dataWord[0]= CAN_WORD_DATA_BYTE_0(0x71) | CAN_WORD_DATA_BYTE_1(0x02) | CAN_WORD_DATA_BYTE_2(0x03) | CAN_WORD_DATA_2(0x03) CAN_WORD_DATA_BYTE_3(0x04); frame.dataWord[1]= CAN_WORD_DATA_BYTE_4(0x05) | CAN_WORD_DATA_BYTE_5(0x06) | CAN_WORD_DATA_BYTE_6(0x07) | CAN_WORD_DATA_BYTE_5(0x06) | CAN_WORD_DATA_BYTE_6(0x07) CAN_WORD_DATA_BYTE_7(0x08); (void)FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #else frame.dataWord0 = CAN_WORD0_DATA_BYTE_0(0x71) | CAN_WORD0_DATA_BYTE_1(0x02) | CAN_WORD0_DATA_BYTE_2(0x03) | CAN_WORD0_DATA_BYTE_1(0x03) | CAN_WORD0_DATA_BYTE_2(0x03) CAN_WORD0_DATA_BYTE_3(0x04); frame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0x05) | CAN_WORD1_DATA_BYTE_5(0x06) | CAN_WORD1_DATA_BYTE_6(0x07) | CAN_WORD1_DATA_6(0x07) CAN_WORD1_DATA_BYTE_7(0x08); (void)FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #endif while (!txComplete)     { }; txComplete = false;   LOG_INFO("Initialize TJA1152 successfully!\r\n\rn");   /* 初始化 TJA1152 结束。*/ #endif   /* 版本收发器待机状态以驱动 CANH/CANL。*/ GPIO_PortClear(EXAMPLE_STB_RGPIO, 1u<< EXAMPLE_STB_RGPIO_PIN); }   /*! * 简短的 FlexCAN 回电功能 */ static FLEXCAN_CALLBACK(flexcan_callback) { LOG_INFO("status:%d\n", status); 开关     { 情况 kStatus_FLEXCAN_TxIdle: 如果 (TX_MESSAGE_BUFFER_NUM == result) { txComplete = true;        } 打破;   默认: 打破;    } }   /*! * @brief 主要功能 */ int main(void) { flexcan_config_t flexcanConfig; uint8_t txCounter = 0U;   /* 初始化板硬件。*/ BOARD_InitHardware();   LOG_INFO("********* FLEXCAN Continuous TX EXAMPLE *********\r\n"); LOG_INFO(" Message format:Standard (11 bit id)/r\n"); #if (defined(USE_CANFD)&& USE_CANFD) LOG_INFO(" Frame type : CAN FD with BRS\r\n"); LOG_INFO(" Nominal/Data bit rates:%u /%u bps\r\n", EXAMPLE_CAN_BIT_RATE, EXAMPLE_CAN_BIT_RATE_FD); LOG_INFO (" 有效负载长度:%u 字节\ r\n ", KPayloadSize); #else LOG_INFO(" Frame type : Classical CAN\r\n"); LOG_INFO(" Bit rate :%u bps\r\n", EXAMPLE_CAN_BIT_RATE); LOG_INFO (" 有效负载长度:%u 字节\ r\n ", KPayloadSize); #endif LOG_INFO(" Message buffer%d used for Tx.\r\n", TX_MESSAGE_BUFFER_NUM); LOG_INFO(" Interrupt Mode: Enabled\r\n"); LOG_INFO(" Operation Mode: Continuous transmit\r\n"); LOG_INFO("*********************************************\r\n\r\n"); LOG_INFO("Starting continuous CAN transmissions on ID 0x%3x\r\n\r\n", kFlexcanTxId);   /* 获取 FlexCAN 模块默认配置。*/ /* * flexcanConfig.clkSrc = kFLEXCAN_ClkSrc0; * flexcanConfig.bitRate = 1000000U; * flexcanConfig.bitRateFD = 2000000U; * flexcanConfig.maxMbNum = 16; * flexcanConfig.enableLoopBack = false; * flexcanConfig.enableSelfWakeup = false; * flexcanConfig.enableIndividMask = false; * flexcanConfig.disableSelfReception = false; * flexcanConfig.enableListenOnlyMode = false; * flexcanConfig.enableDoze = false; */ FLEXCAN_GetDefaultConfig(&flexcanConfig);   flexcanConfig.bitRate = EXAMPLE_CAN_BIT_RATE; flexcanConfig.disableSelfReception = true; #if (defined(USE_CANFD)&& USE_CANFD) flexcanConfig.bitRateFD = EXAMPLE_CAN_BIT_RATE_FD; #endif   #if defined(EXAMPLE_CAN_CLK_SOURCE) flexcanConfig.clksrc=EXAMPLE_CAN_CLK_SOURCE; #endif   /* 如果需要特殊的量子设置,请设置定时参数。*/ #if (defined(SET_CAN_QUANTUM)&& SET_CAN_QUANTUM) flexcanConfig.timingConfig.phaseSeg1 = PSEG1; flexcanConfig.timingConfig.phaseSeg2 = PSEG2; flexcanConfig.timingConfig.propSeg = PROPSEG; #if (defined(FSL_FEATURE_FLEXCAN_HAS_FLEXIBLE_DATA_RATE)&& FSL_FEATURE_FLEXCAN_HAS_FLEXIBLE_DATA_RATE) flexcanConfig.timingConfig.fphaseSeg1 = FPSEG1; flexcanConfig.timingConfig.fphaseSeg2 = FPSEG2; flexcanConfig.timingConfig.fpropSeg = FPROPSEG; #endif #endif   #if (defined(USE_IMPROVED_TIMING_CONFIG)&& USE_IMPROVED_TIMING_CONFIG) flexcan_timing_config_t timing_config; memset(&timing_config, 0, sizeof(flexcan_timing_config_t)); #if (defined(USE_CANFD)&& USE_CANFD) 如果(FLEXCAN_FDCalculateImprovedTimingValues(EXAMPLE_CAN, flexcanConfig.bitRate、flexcanConfig.bitRateFD、 EXAMPLE_CAN_CLK_FREQ,&timing_config))     { /* 更新改进后的定时配置*/ memcpy(&(flexcanConfig.timingConfig),&timing_config, sizeof(flexcan_timing_config_t));    } 不然     { LOG_INFO("未找到改进的定时配置。只是使用了默认的 configuration\r\n\r\n" );    } #else 如果(FLEXCAN_CalculateImprovedTimingValues(EXAMPLE_CAN, flexcanConfig.bitRate、EXAMPLE_CAN_CLK_FREQ,&timing_config))     { /* 更新改进后的定时配置*/ memcpy(&(flexcanConfig.timingConfig),&timing_config, sizeof(flexcan_timing_config_t));    } 不然     { LOG_INFO("未找到改进的定时配置。只是使用了默认的 configuration\r\n\r\n" );    } #endif #endif   #if (defined(USE_CANFD)&& USE_CANFD) FLEXCAN_FDInit(EXAMPLE_CAN,&flexcanConfig, EXAMPLE_CAN_CLK_FREQ, BYTES_IN_MB, true); #else FLEXCAN_Init(EXAMPLE_CAN,&flexcanConfig,EXAMPLE_CAN_CLK_FREQ); #endif   /* 创建 FlexCAN 句柄结构并设置回调函数。*/ FLEXCAN_TransferCreateHandle(EXAMPLE_CAN,&flexcanHandle, flexcan_callback, NULL);   /* 设置 Tx 信息缓冲区。*/ #if (defined(USE_CANFD)&& USE_CANFD) FLEXCAN_SetFDTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true); #else FLEXCAN_SetTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true); #endif   /* 配置 CAN 收发器 */ FLEXCAN_PHY_Config();   当(true)时     { frame.id = FLEXCAN_ID_STD(kFlexcanTxId); frame.format = (uint8_t)kFLEXCAN_FrameFormatStandard; frame.type = (uint8_t)kFLEXCAN_FrameTypeData; frame.length = kFrameLength; #if (defined(USE_CANFD)&& USE_CANFD) frame.brs = 1U; frame.edl = 1U; for (uint8_t wordIdx = 0U; wordIdx< DWORD_IN_MB; wordIdx++) { uint8_t baseValue = (uint8_t)(wordIdx * 4U); frame.dataWord[wordIdx] = CAN_WORD_DATA_BYTE_0((uint32_t)txCounter + baseValue)| CAN_WORD_DATA_BYTE_1(0x55U + baseValue) | CAN_WORD_DATA_BYTE_1(0x55U + baseValue) CAN_WORD_DATA_BYTE_2(0xAAU + baseValue) | CAN_WORD_DATA_BYTE_2(0xAAU + baseValue) | CAN_WORD_DATA_BYTE_3(0xFFU - baseValue);      } #else frame.dataWord0 = CAN_WORD0_DATA_BYTE_0(txCounter) | CAN_WORD0_DATA_BYTE_1(0x55U) | CAN_WORD0_DATA_BYTE_1(0x55U) | CAN_WORD0_DATA_BYTE_1(0x55U) CAN_WORD0_DATA_BYTE_2(0xAAU) | CAN_WORD0_DATA_BYTE_3(0xFFU); frame.dataWord1 = CAN_WORD1_DATA_BYTE_4(0x11U) | CAN_WORD1_DATA_BYTE_5(0x22U) | CAN_WORD1_DATA_BYTE_5(0x22U) | CAN_WORD1_DATA_5(0x22U) CAN_WORD1_DATA_BYTE_6(0x33U) | CAN_WORD1_DATA_BYTE_7(0x44U); #endif   txXfer.mbIdx = (uint8_t)TX_MESSAGE_BUFFER_NUM; #if (defined(USE_CANFD)&& USE_CANFD) txXfer.framefd =&frame; (void)FLEXCAN_TransferFDSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #else txXfer.frame =&frame; (void)FLEXCAN_TransferSendNonBlocking(EXAMPLE_CAN,&flexcanHandle,&txXfer); #endif   while (!txComplete) { }; txComplete = false;   txCounter++;    } } Re: KW45B41Z-EVK: CAN Transmission 你好 希望你一切顺利。请说明"不提供与 CAN" 的直接接口是什么意思? 您能否尝试使用示波器或分析仪检查 J10 连接器。 我建议你看看你的板上的 flexcan_interrupt_transfer 示例。 请告诉我您的发现。 顺祝商祺! 里卡多
記事全体を表示
VF61 上 ESAI 模块的 I2S 时钟输出 我们希望在为 Toradex colibri VF61 定制的分线板上使用 I 2S 麦克风,该分线板提供 ESAI 连接。我在设备树下创建了本应激活 ESAI 并将其作为 Linux中的声卡提供;但是当我开始录制时,ESAI 的任何一个时钟引脚上都无法检测到时钟信号。(注:我必须对内核的某些部分进行调整,才能写入ESAI注册表并开始记录,日志附后)。 #include "vf610-colibri-eval-v3.dts" &iomuxc { vf610-colibri { pinctrl_gpio_bl_on: gpio_bl_on { fsl,pins = < VF610_PAD_PTB19__GPIO_41 0x30 >; }; // Pin/pad definitions are in vf610-pinfunc.h in the same dir. as this file // Output only pins - not needed for our use case // VF610_PAD_PTC2__ESAI_SDO0 0x30d2 // VF610_PAD_PTC3__ESAI_SDO1 0x30d2 esai_pins: esai_pins { fsl,pins = < VF610_PAD_PTC0__ESAI_SCKT 0x31C3 VF610_PAD_PTC1__ESAI_FST 0x31C3 VF610_PAD_PTC4__ESAI_SDO2 0x0041 VF610_PAD_PTC5__ESAI_SDO3 0x0041 VF610_PAD_PTC6__ESAI_SDI0 0x0041 VF610_PAD_PTC7__ESAI_SDI1 0x0041 >; }; }; }; &clks { clocks = <&sxosc>, <&fxosc>; clock-names = "sxosc", "fxosc"; }; &aips0 { esai: esai@40062000 { compatible = "fsl,vf610-esai"; reg = <0x40062000 0x1000>; // Base address and size of ESAI registers #sound-dai-cells = <0>; interrupts = <88 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks VF610_CLK_ESAI>, <&clks VF610_CLK_ESAI>, <&clks VF610_CLK_ESAI>; clock-names = "core", "extal", "fsys"; assigned-clocks = <&clks VF610_CLK_PLL4>, <&clks VF610_CLK_PLL4_MAIN_DIV>, <&clks VF610_CLK_ESAI_SEL>, <&clks VF610_CLK_ESAI_DIV>, <&clks VF610_CLK_ESAI>; assigned-clock-parents = <&clks VF610_CLK_PLL4_BYPASS_SRC>, <&clks VF610_CLK_PLL4_AUDIO>, <&clks VF610_CLK_PLL4_MAIN_DIV>, <&clks VF610_CLK_ESAI_EN>, <&clks VF610_CLK_ESAI_DIV>; assigned-clock-rates = <768000000>, <48000000>, <0>, <12000000>, <0>; dmas = <&edma0 0 30>, <&edma0 0 31>; dma-names = "rx", "tx"; fsl,fifo-depth = <128>; fsl,esai-rx-channels = <4>; fsl,esai-tx-channels = <2>; // fsl,esai-synchronous; pinctrl-names = "default"; pinctrl-0 = <&esai_pins>; status = "okay"; }; }; / { sph0645: mic-codec { compatible = "linux,snd-soc-dummy"; #sound-dai-cells = <0>; status = "okay"; }; pure-digital-sound { compatible = "simple-audio-card"; simple-audio-card,name = "ESAI-Multi-Channel"; status = "okay"; simple-audio-card,dai-link@0 { format = "i2s"; bitclock-master = <&esai>; frame-master = <&esai>; // This is pristine hacking. 48 kHz * 1024 = audio_ext_clk.clock-frequency. // Really just a hack to trigger the code that registers sound card for input. mclk-fs = <128>; cpu { sound-dai = <&esai>; system-clock-frequency = <6000000>; dai-tdm-slot-num = <2>; // Number of slots dai-tdm-slot-width = <32>; // Width in bits per slot //dai-tdm-slot-rx-mask = <1 1 1 1 0 0>; }; codec { sound-dai = <&sph0645>; }; }; }; }; 当我使用 arecord -v -D hw:1,0 -c 2 -f S24_LE -r 46875 -d 5 test.wav 剧透 (高亮部分可供阅读) 请注意,VF61 中提供的振荡器的采样频率很奇怪,它的频率似乎是 24 Mhz,但由于时钟树的要求以及除法器和乘法器的硬件限制,ESAI 的最终时钟频率无法达到 3.072 MHz,而这是 I2S 麦克风在 48 kHz 采样率下产生 64 位立体声采样所需的频率。 请注意,VF61 中提供的振荡器的采样频率很奇怪,它的频率似乎是 24 Mhz,但由于时钟树的要求以及除法器和乘法器的硬件限制,ESAI 的最终时钟频率无法达到 3.072 MHz,而这是 I2S 麦克风在 48 kHz 采样率下产生 64 位立体声采样所需的频率。 结果(包括我的内核调试输出)失效,示波器在ESAI时钟引脚上没有显示任何时钟信号(例如,在UART引脚上示波器能正确显示数据信号)。 arecord -v -D hw:1,0 -c 2 -f S24_LE -r 46875 -d 5 test.wav [ 1713.779730] fsl-esai-dai 40062000.esai: Startup: syncx=0 Recording WAVE 't[ 1713.786470] fsl-esai-dai 40062000.esai: SYSCLK clk_id=2 freq=6000000 dir=1 est.wav' : Signed[ 1713.794171] fsl-esai-dai 40062000.esai: HWP slot_width=32 params_rate=46875 slots=2 24 bit Little En[ 1713.803342] fsl-esai-dai 40062000.esai: BCLK ratio=2 hck_rate=6000000 freq=3000000 tx=0 dian, Rate 46875 [ 1713.812834] fsl-esai-dai 40062000.esai: HWP[ub] REG_ESAI_xCR(tx)=220 channels=2 Hz, Stereo [ 1713.821634] fsl-esai-dai 40062000.esai: HWP[ub] REG_ESAI_xFCR(tx)=24 [ 1713.829056] fsl-esai-dai 40062000.esai: HWP[ub] mask=7ff3e val=27f04 [ 1713.835458] fsl-esai-dai 40062000.esai: HWP[ub] REG_ESAI_xCR(tx)=220 mask=7c00 val=7c00 [ 1713.843499] fsl-esai-dai 40062000.esai: HWP[ub] REG_ESAI_PRRC [ 1713.849311] fsl-esai-dai 40062000.esai: HWP[ub] REG_ESAI_PCRC [ 1713.855197] fsl-esai-dai 40062000.esai: HWP return Hardware PCM card[ 1713.881667] fsl-esai-dai 40062000.esai: Trigger: tx=0 channels=2 pins=1 cmd=1 [ 1713.889006] fsl-esai-dai 40062000.esai: Trigger[START]: REG_ESAI_xFCR(tx)=24 REG_ESAI_xCR(tx)=220 ESAI_xCR_TE(pins)=1 ESAI_xCR_RE(pins)=1 1 'ESAI-Multi-Channel' device 0 subdevice 0 Its setup is: stream : CAPTURE access : RW_INTERLEAVED format : S24_LE subformat : STD channels : 2 rate : 46875 exact rate : 46875 (46875/1) msbits : 32 buffer_size : 29295 period_size : 5859 period_time : 124992 tstamp_mode : NONE tstamp_type : MONOTONIC period_step : 1 avail_min : 5859 period_event : 0 start_threshold : 1 stop_threshold : 29295 silence_threshold: 0 silence_size : 0 boundary : 1919877120 appl_ptr : 0 hw_ptr : 0 arecord: pcm_read[ 1723.895948] fsl-esai-dai 40062000.esai: Trigger: tx=0 channels=2 pins=1 cmd=0 :2096: read error: Input/output error 我对通过 Linux 的设备树处理硬件还很陌生。以前,我直接在微控制器程序中编写注册表。 那么,为了让 ESAI 模块成为 I2S 时钟主控器并真正向 ESAI 时钟引脚发送时钟信号,我在设备树中错过了什么?当然,录制采样是我的总体目标,因此 DMA 配置可能也有欠缺。 感谢您提供的任何小提示。 马丁 Linux VF6xx Re: I2S clocks output from ESAI module on VF61 clk_summary的内容如下(为便于阅读而缩短),因此 Linux 接受了我的设置。无论上述麦克风是否支持,即使驱动器不接受数据,时钟信号也会出现。 关于制造商的建议,我已经在 Toradex 论坛上提出了问题,但至今没有得到答复。 clock enable_cnt prepare_cnt rate accuracy phase ---------------------------------------------------------------------------------------- ... sxosc 0 0 32768 0 0 ftm3_fix_sel 0 0 32768 0 0 ftm2_fix_sel 0 0 32768 0 0 ftm1_fix_sel 0 0 32768 0 0 ftm0_fix_sel 0 0 32768 0 0 fxosc 1 1 24000000 0 0 fast_clk_sel 6 6 24000000 0 0 pll7_bypass_src 1 1 24000000 0 0 pll7 1 1 480000000 0 0 pll7_bypass 1 1 480000000 0 0 pll7_usb_host 1 1 480000000 0 0 usbphy1 1 1 480000000 0 0 ... pll4_bypass_src 1 1 24000000 0 0 pll4 1 1 768000000 0 0 pll4_bypass 1 1 768000000 0 0 pll4_audio 1 1 768000000 0 0 pll4_audio_div 1 2 48000000 0 0 esai_sel 0 1 48000000 0 0 esai_en 0 1 48000000 0 0 esai_div 0 1 12000000 0 0 esai 0 1 12000000 0 0 sai2_sel 0 0 48000000 0 0 sai2_en 0 0 48000000 0 0 sai2_div 0 0 48000000 0 0 sai0_sel 1 1 48000000 0 0 sai0_en 1 1 48000000 0 0 sai0_div 1 1 48000000 0 0 ... Re: I2S clocks output from ESAI module on VF61 你好 首先,我建议你咨询制造商电路板支持包是否能够支持该麦克风,并确认不需要额外的驱动程序。 cat /sys/kernel/debug/clk/clk_summary -n 确认无误后,请检查是否正确配置并启用了 ESAI 时钟,可通过下一条命令查看: 查看 ESAI 及其父时钟,确认它们已启用并以预期频率运行。 您试过使用 fsl,esai-synchronous; 取消注释吗? 顺祝商祺!
記事全体を表示
LX2160A 上の Linux で UART2 を有効にする方法は? こんにちは、 LX2160A 上の Linux で UART1 と UARAT2 の両方を有効にしたいと思います。 カーネルバージョン: 5.15.71 dts での構成は問題ないようです。 UART 制御レジスタを確認してください。UART2 が有効になっていません。 ルート@localhost:~# devmem2 0x21d0030 32 0x00000300 ルート@localhost:~# devmem2 0x21c0030 32 0x00000B01 コメントをいただけますか? 本当にありがとう! 趙 Re: How to enable UART2 in Linux on LX2160A? こんにちは、ケン。 ご親切なサポートありがとうございます。 よろしくお願いいたします。 趙 Re: How to enable UART2 in Linux on LX2160A? 親愛なる趙昭さん fsl-lx2160a.dtsi は、2023 年にお客様からのツリー外パッチを通じて追加され、2024 年に当社のブランチにマージされました。現在は完全にサポートされています。 コミット参照: git show 8b4a8708d37c1174f6a8ee0b8c78ad78c89df8e4 Re: How to enable UART2 in Linux on LX2160A? ありがとう、Yiping。 よろしくお願いいたします。 趙 Re: How to enable UART2 in Linux on LX2160A? このパッチを適用した後、lx2160ardb_tfa_defconfig で CONFIG_SERIAL_PROBE_ALL=y を有効にしてください。 この方法は LSDK 21.08 で検証済みです。 Re: How to enable UART2 in Linux on LX2160A? それは理にかなっています。 少なくとも LF-5.15.y では、パッチがすでに u-boot メインラインに統合されていることを確認しました。 Re: How to enable UART2 in Linux on LX2160A? はい、このパッチを u-boot に適用する必要があります。次に、Linux で UART1 と UART2 を確認します。 Re: How to enable UART2 in Linux on LX2160A? こんにちは、イーピンさん 大変助かりました。ありがとうございます。 パッチを確認しましたが、u-boot に関するものでした。 Linux で UART2 を有効にすると、u-boot 内のすべての UARTs がプローブされるようになるということですか? ありがとうございます 趙 Re: How to enable UART2 in Linux on LX2160A? 以下のパッチを試してください https://patchwork.ozlabs.org/project/uboot/cover/[email protected]/ このパッチを適用した後、lx2160ardb_tfa_defconfig で CONFIG_SERIAL_PROBE_ALL=y を有効にします。 Re: How to enable UART2 in Linux on LX2160A? ところで、UART2 を有効にするために UARTCR のレジスタを変更しようとしましたが、まだ機能しません。
記事全体を表示
LS1028A RCW_COMPLETIONR ERR_CODE 0x54 ? 您好, 我目前正在尝试推出一款基于 LS1028ARDB 的定制 LS1028A 板(非常接近)。 我尝试从 SD 卡启动(CFG_RCW_SRC [3:0] = 1000)。ASLEEP 仍处于钳位状态,用我的调试器我能看见 RCW_COMPLETIONR 寄存器显示 "ERR_CODE 0x54"。 LS1028ARM 没有描述 0x54 错误... 但它两次显示 0x53 错误:0h53-ERROR_ALT_I2C_BOOT_NT_SUPPORTED-I2C 启动不支持辅助流 0h53-ERROR_DRIVER_INIT_FAILED-根据初始状态值跳过二级流中的 hal_init ()。 第二个"0h53" 是对 0h54 错误代码的解释吗?如果是,这意味着什么? 对于同一个注册器,LX2160A 文档显示了 0x54:" ERROR_DRIVER_INIT_FAILED-在加载 RCW 时初始化设备驱动程序时出现错误。在读取 RCW 字节 " 之前,先初始化基于 rcw 源的设备驱动程序。因此,错误名称相同,但解释不同... 这个错误是什么意思(对于 LS1028A)? 谢谢! g. Re: LS1028A RCW_COMPLETIONR ERR_CODE 0x54 ? 我正在检查 ERR 代码。 您是否根据 AN12028_QorIQ LS1028A 设计检查表 (第 146 页,图 6)确认了 PORESET_B、HRESET_B、RESET_ REQ _B 和 ASLEEP 序列? S@@ LEEP 仍处于钳位,信号电压是多少,高还是低? 你会将 LS1028A 客户板与 CWTAP 连接吗。 请在 ccs 中运行以下命令: (bin) 9% 删除所有 (bin) 10% config cc cwtap:10.193.20.99//客户 IP 地址 (bin) 11% show cc 0: CodeWarrior TAP (cwtap: 10.193.20.99)CC 软件 ver.{0.0} (bin) 12% ccs::config_chain {ls1028a dap} (bin) 13% display ::ccs::get_config_chain 链条位置 0:LS1028A 链条位置 1:CoreSight ATB 漏斗 连锁位置 2:CoreSight TMC 连锁位置 3:CoreSight TMC 链条位置 4:CoreSight ATB 漏斗 链条位置 5:CoreSight ATB 漏斗 链条位置 6:CoreSight ATB 漏斗 链条位置 7:CoreSight ATB 漏斗 链位置 8:CoreSight CTI 连锁位置 9:CoreSight CTI 链位置 10:Cortex-A5 链式位置 11:Cortex-A5 PMU 链位置 12:Cortex-A72 连锁位置 13:CoreSight CTI 链位置 14:Cortex-A72 PMU 链位置 15:Cortex-A72 ETM 链位置 16:Cortex-A72 链位置 17:CoreSight CTI 链式位置 18:Cortex-A72 PMU 链位置 19:Cortex-A72 ETM 链条位置 20:DAP 链式位置 21:SAP2 (bin) 14% ccs::reset_too_debug 谢谢!
記事全体を表示
MDBにプログラムをロードしようとすると問題が発生する こんにちは、 Simulinkin バージョン 2022b のモデルベース デザインで「s32k344_mc_pmsm_2sh_s32ct」の例を使用しています。キット MCSPTE1AK344 にロードしようとすると、うまくロードできず、結果が得られません。さらに、.mexファイルはそれは間違っているので、誰かが .mex でプロジェクトを提供できますか? 何か解決策を教えていただけますか? ありがとうございました。 Re: Problem with my Kit MCSPTE1AK344 こんにちは、 @JonAnder_Amanteさん、 残念ですが、S32K344-T172 回路図で電圧を確認できます。ブロック図もあります。 S32K3X4EVB-T172評価ボードから新しいボードを注文できます または、新しいS32K312MINI-EVB評価ボードを注文することもできます。 よろしくお願いいたします。 ステファン V. Re: Problem with my Kit MCSPTE1AK344 こんにちは、 今日、プロジェクトをロードしましたが、突然 LED が消え、チップ FS26 が熱くなり始めたSO、ショートしてしまったかどうかわかりません。 Re: Problem with my Kit MCSPTE1AK344 こんにちは、 @JonAnder_Amanteさん、 FreeMASTER プロジェクトはベアメタルのS32K3 モーター制御 SW の例から取得されているため、一部の変数は Simulink モデルに実装されていないため、「?」と表示されます。 セットアップに関してどのような問題がありましたか?CANフィードバックをいただけますか? また、このトピックを閉じるには、問題の解決に役立ったトピックの「解決策として承認」ボタンを押すことをお勧めします。 よろしくお願いいたします。 ステファン V. Re: Problem with my Kit MCSPTE1AK344 こんにちは、 エンジンを正常に回転させることに成功しましたが、疑問があります。freemaster を開くと、問い合わせのある変数がいくつかありますが、その理由はわかりません。 よろしくお願いいたします Re: Problem with my Kit MCSPTE1AK344 こんにちは@JonAnder_Amante 開いたFreeMaster S32K_PMSM_Sensorless.pmpxファイルはMBDT S32K3ツールボックスからのものではなく、C:\NXP\MC_DevKits\MCSPTE1AK344\sw\ MCSPTE1AK344_PMSM_FOC_2Sh_llのベアメタルCコードからのものです。 S32K3\src\S32K3_Examples\mc\PMSM\ s32k344_mc_pmsm_2sh_s32ctから MBDT S32K3 ツールボックス プロジェクトを使用します。 モデルs32k344_mc_pmsm_2sh_s32ct .mdl を開き、CTRL+B を押してビルドしてデプロイします。 または.elfをフラッシュすることもできますS32K344ボード上のファイルをMatlabコマンドでダウンロード: >> mbd_s32k3.nxp.download.jtag('s32k344_mc_pmsm_2sh_s32ct.elf','S32K344') 対応するFreeMasterファイルを開きます: s32k344_mc_pmsm_2sh_s32ct . pmpx 次に、下の写真のように、S32K344-T172 ボードとの接触を良くするために、GD3000 ピン ヘッダーを押すようにお願いしました。   3 番目に、以下のように GD3000 ボードに 12V 電源をコネクテッドしましたか?   CAN、ボードとセットアップの写真を送っていただけますか? 上記の手順を実行しましたか? Re: Problem with my Kit MCSPTE1AK344 こんにちは、 すべてのコネクテッドはうまく行っていますが、同じ問題が発生します。SO、LED は常に赤になります。さらに、フリーマスターのインターフェースを見ると、現在の Ia と現在の Ib で異なる問題が発生しています。 Re: Problem with my Kit MCSPTE1AK344 こんにちは@JonAnder_Amante MCSPTE1AK344入門 | NXP Semiconductorsの手順に従いましたか? 3.4 電源プラグを差し込む スイッチ  SW1  OFF 位置(完全に左に回した位置)にします。 12V電源アダプターを接続する そしてスイッチ  SW1  を ON の位置(右いっぱい)にします。 EVBに電源が投入されると、電圧レギュレータに隣接する4つのオレンジ色のLEDが供給電圧(12 V、5 V、3.3 V、および1.5 V)の存在を示します。 また、ピン ヘッダーを押して、GD3000 ボードが S32K344-T172 ボードに正しく挿入されているかどうかも確認します。 よろしくお願いいたします。 ステファン V. Re: Problem with my Kit MCSPTE1AK344 こんにちは、 プログラムをロードすることはできますが、LED は常に赤のまま、青や緑に変わりません。私のプログラム例は「S32K344_mc_pmsm_2sh_S32ct」で、matlab のバージョンは R2022b です。何か解決策はありますか? Re: Problem when I try load my project in Simulink こんにちは、 プログラムをロードすることはできますが、LED は常に赤のまま、青や緑に変わりません。私のプログラムの例は「S32K344_mc_pmsm_2sh_S32ct」で、matlab のバージョンは R2022b です。何か解決策はありますか? Re: Problem with my Kit MCSPTE1AK344 こんにちは、 @JonAnder_Amanteさん、 以下の点に留意してください: S32 Design Studioはデバッグに使用される IDE ですが、これがなくてもツールボックスの適切な機能には影響しません。S32 構成ツールは、ピン、クロック、ペリフェラル、およびモデルの構築に必要なすべての設定を構成するユーティリティです。S32 Configuration Tools も S32 Design Studio に統合されているため、混乱を招き、誤解を招く可能性があります。ただし、現状では S32 Design Studio をインストールする必要はありません。 さらに、画像に写っているものは空ではありません。上部バーのドロップダウン メニューからAdc_Pins_MBDTという名前の機能グループを選択するだけで、ADC ペリフェラル用に設定されたピンだけが表示されます。機能グループセクションをクリックすると、必要なピンを選択できるようになります。 提示された画像は「ピン」タブのものですが、 「ペリフェラル」タブに切り替えると、個々のペリフェラルの構成設定を表示できます。同様に、変更または検査する必要があるものに応じて、ピン、ペリフェラル、またはクロックのタブを切り替えることができます。 お役に立てば幸いです。 ドラゴス Re: Problem when I try load my program in MDB こんにちは、 @JonAnder_Amanteさん、 提供されたスクリーンショットにはADC_POT0ピン PTA11 がありますが、Adc_Pins_MBDT 以外を選択すると、機能グループにさらに多くのピンが表示されます。 また、ピン名を押して並べ替えると、使用されている緑色で強調表示されたピンがすべて表示されます。 詳細については、 MR-CANHUBK344のデジタル入力/出力の操作に関する包括的なガイドをご覧ください - NXPコミュニティ よろしくお願いいたします。 ステファン V. Re: Problem when I try load my project in Simulink こんにちは、 @JonAnder_Amanteさん、 上記のリンクを送信しましたが、もう一度、ここにあります: https://www.pemicro.com/downloads/download_file.cfm?download_id=53 よろしくお願いいたします。 ステファン V. Problem with my Kit MCSPTE1AK344 こんにちは、 申し訳ありませんが、重要な質問があります。モデルベース デザインで Simulink を使用していますが、アプリケーション S32 Design studio をインストールしていません。MCSPTE1AK344 キットを購入し、「S32K344_mc_pmsm_2sh_s32ct」というプロジェクトの例をコンパイルしようとしています。コンパイルは成功しましたが、ピンやペリフェラルの設定を開くと、何も表示されません (この画像では設定を確認できます)。構成をよく確認するために S32 Design studio をインストールする必要があるかどうかはわかりません。さらに、Simulink の Matlab では 2022b バージョンを使用しているため、Matlab、Simulink、S32 Design Studio のバージョンも重要です。 皆様ありがとうございました。 Re: Problem when I try load my program in MDB こんにちは、 解決策は見つかりましたが、別の問題があります。プロジェクトをデバッグしましたが、先ほど説明した例では、ピンが構成されていないため、S32 Config ツールの構成は空です。例は「S32K344_mc_pmsm_2sh_s32ct」です。あなたが私をCAN助けてくれるかどうか分かりません。ありがとう   Re: Problem when I try load my project in Simulink こんにちは、 すでに USB ケーブルをボードと PC にコネクテッドしていますが、デバイス マネージャを確認しましたが、PE マイクロ ドライバは見つかりません。どれをインストールする必要があるか教えていただけますか? ありがとう、 Re: Problem when I try load my project in Simulink こんにちは、 @JonAnder_Amanteさん、 S32K3用のMBDTをご利用いただきありがとうございます。 MCSPTE1AK344入門 | NXP Semiconductorsの手順に従うことをお勧めします。 ボードとPCにUSBケーブルをコネクテッドしましたか? 3.5 デバッガケーブルを接続する マイクロUSBケーブルを  J40  オンボード S32K3 デバッガーを介してデバッグするためのコネクタ。   はいの場合は、デバイス マネージャを開いて、PEMicro が OpenSDA デバッグ ドライバおよび OpenSDA CDC シリアル ポートとして表示されるかどうかを確認できます。 そうでない場合は、 PEmicroハードウェアインターフェースドライバ、v.12(7/8/10/11)から最新のPEmicroドライバをインストールする必要があります。 よろしくお願いいたします。 ステファン V. Re: Problem when I try load my project in Simulink エラーを表示しようとすると、次のようになります: Problem when I try load my project in Simulink こんにちは、 キット MCSPTE1AK344 を購入しましたが、ロードしようとすると別の問題が発生します。「 s32k344_mc_pmsm_2sh_s32ct」というプロジェクトを開いたのですが、いつも同じエラーが発生します。ロード手順を試してみましたが、何も表示されません。 ありがとうございました。 ジョン・アンダー・アマンテ
記事全体を表示
S32k118q048 用于 CAN FD 报文的 EVB SBC 编程。 你好, 我有一个恩智浦 S32k118q048 EVB,我想用它来发送 CAN FD 报文。我想查看 CANoe Vector 收发器上的信息。不过,我想确认一下:在发送 CAN 报文之前,我是否必须对 SBC 进行编程,以使通信激活。还是说 SBC 默认情况下已经可以用于 CAN 报文传输? Re: S32k118q048 EVB SBC programming for CAN FD messages. 你好,@yousefdessouki123、 当板交付时,SBC 处于强制正常模式,CAN 收发器处于启用状态。无需对其进行配置。有关此模式的更多详细信息,请查看 UJA1169 产品数据手册第 7 章。 此外,UJA1169 收发器需要 12V 电源。 致以最诚挚的问候, Julián
記事全体を表示
AFT05MP075N 需要 222mhz 的阻抗 我想知道 AFT05MP075N 频率为 222mhz。 虚拟测试 Re: Need impedance for AFT05MP075N at 222mhz 您好 恐怕我们没有 AFT05MP075N 的222MHZ特性数据。整个阻抗测量过程既费力又费时,因为必须对每个感兴趣的频率进行重复测量。请注意,允许进行表征的频率范围是电路调谐的频率范围。对于其他频率,必须设计和建造额外的测试电路,这就解释了为什么有时很难让半导体制造商为特殊工作条件(例如不同的频率、不同的功率级或不同的工作电压)提供阻抗数据。
記事全体を表示
BURY / MB:EB Tresos 配置,用于 S32K342 中加密驱动程序的新代码删除 团队 直接客户BURY在集成恩智浦上天向Bury发布的新的Code Drop S32K3XX_S32M27x_P20_CD01时面临着EB Tresos的配置问题。 客户怀疑交付的代码掉落具有与原始代码相同的模块 ID,因此 EB Tresos 无法将其识别为更新。 是否有任何变通方法可以正确配置,以获得更新加密驱动程序的可见性? 附上客户反馈和发送给客户的如何下载此代码 Drop 的说明。 BSSM 合同:否 客户公司*:BURY 项目名称*:835_069 Mercedes 50W WCH EPP (Huawei) https://nxp.lightning.force.com/lightning/r/Opportunity/0062p00001VNuIDAA1/view 客户联络点* (姓名& 电子邮件):Sebastian Draus [email protected] 软件& 硬件信息: 基于 S32K342 的 MWCT2D16 代码包信息*:RTD4.0.0 AS 4.4.0 硬件*(板/芯片组/平台):客户自己的板 SW 版本*: EB TRESOS 许可证 优先级:高 RTD 安全加密 资料来源直接客户 Re: BURY / MB: EB Tresos configuration for new Code Drop of Crypto Driver in S32K342 @Mateusz_Choromanski 在我 看来,客户同时安装了 P20 和 P24,而 EB Tresos 无法重新识别新的代码包。 请让他们按照以下步骤卸载旧代码包 P20: 1.前往 EB Tresos 目录:EB\ tresos\ links 此文件夹包含所有已安装代码包的路径。查找并删除 .link 文件 这将使 EB Tresos 断开与已安装的 RTD P20 的链接。 1.1 其他步骤:你可以通过访问已安装的 RTD 目录来永久卸载旧的 RTD 软件包-> uninst.exe 2.重新启动 EB Tresos。前往帮助 > EB Tresos 详情...> 模块注册表 确保只有 1 个加密代码包版本 P24 而不是 P20 和 P24  
記事全体を表示
编译 MPC5775K 外部中断时遇到的错误 亲爱的先生 当我为 MPC5775K 编译外部中断程序时,参考示例"Example-MPC5775K-PIT-ISR-v1_0-GHS614" ,使用 S32DS Power2.1、我遇到了这些错误的编译结果(图 1)。这些错误(图 2 和图 3)来自文件"Vector_SW_VLE - Z4.s" 。文件没有被编辑过,但为什么会出现这些错误?如何解决这些问题? 谢谢,并致以问候。 Re: Errors met when compiling external interrupt for MPC5775K 非常感谢。您的建议非常有帮助! 谢谢& 。 Re: Errors met when compiling external interrupt for MPC5775K 你好@yongzhiliu "Example-MPC5775K-PIT-ISR-v1_0-GHS614" 如后缀所示,这是一个用于 GreenHills MULTI IDE 而非 S32 Design Studio 的项目。语法不同。 有必要在 S32DS 中创建新项目,并使用 S32DS 项目中的启动文件和中断/异常相关文件。 您可以查看以下项目,了解如何在 S32DS 中处理中断: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/Example-MPC5775K-DSPI-with-interrupts-S32DS-1-0/ta-p/1119830 其他例子可在此处找到: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445 最重要的是,MPC5775K 并不面向大众市场,无法订购。因此,我们不为该设备提供支持。请访问这样或更新的替换网站: https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32r-radar-processing/radar-microcontroller:S32R294 问候, Lukas
記事全体を表示
LPCScrypt not running on Windows 11 25H2 [LPCScrypt version 2.1.3_83] For booting and flashing an old LPC1857 we use LPCScrypt for updating device firmware. Since Windows 11 25H2 LPCScrypt is broken: calling it on the command line (ie PowerShell) leads to "Error: Error from CreateProcess: The system cannot find the file specified" Sysinternal's Process Monitor leads to the assumption that LPCScrypt is performing a wmi query by using "wmic path Win32_PnPEntity where (service like '%usbser%' and name like '%lpc%') get.exe". But wmic is declared deprecated since 2016 and had been removed from Windows 11 since 25H2 (see Windows Management Instrumentation Command-line (WMIC) removal from Windows - Microsoft Support) Request to NXP dev team: Is this issue known yet? How to get it to work in the future? Re: LPCScrypt not running on Windows 11 25H2 Hi ErichStyger, you are right. By upgrading from Windows 10 wmic is kept in Windows 11. But I had to setup a fresh Windows 11 system and came accross that issue. Re: LPCScrypt not running on Windows 11 25H2 Thank you for the information. My workaround was to add wmic support to Windows 11 as follows open system settings as an administrator, go to optional features (...further features...) and add wmic  or by using "DISM /Online /Add-Capability /CapabilityName:WMIC" [see Install WMIC to a Windows 11 computer - Microsoft Q&A] Regards, Mathias Re: LPCScrypt not running on Windows 11 25H2 Probably because I have upgraded from Win10 to Win11, I still have WMIC on my machine: Re: LPCScrypt not running on Windows 11 25H2 I recently upgraded from Win10 to Win11 25H2. But so far, I have not seen an issue with LPCScrypt (yet). Using the one packaged with LinkServer v25.9.134 (see below) Updating my LPC-Link2 with LPCScrypt worked fine. Not an expert on WMIC, but according to the information it is gone in 25H2, chatGTP suggested to copy wmic.exe and wmic.exe.mui from an older Windows version to 25H2. NXP is aware of the issue, and there might be an updated LPCScrypt in a next LinkServer release. Re: LPCScrypt not running on Windows 11 25H2 Hello @mathiasmonse  Thanks for your question. If WMIC support is removed, yes, you can try to install it. Or  use an earlier Windows version or to run LPCScrypt on Linux or macOS. BR Alice
記事全体を表示
S32K3 HSE: Export EDDSA Public Key I am able to generate an ED25519 key pair with the Key Generation Service, and I would like to be able to export the public key later with the Key Export Service. However, the HSE returns a HSE_SRV_RSP_NOT_ALLOWED when I attempt to export the public key. When I generate the key I use the following parameters: Service ID: HSE_SRV_ID_KEY_GENERATE targetKeyHandle = key_handle; keyInfo: keyFlags = HSE_KF_USAGE_SIGN | HSE_KF_USAGE_VERIFY | HSE_KF_ACCESS_EXPORTABLE keyBitLen = HSE_KEY256_BITS keyCounter = 0 smrFlags = 0 keyType = HSE_KEY_TYPE_ECC_PAIR specific.eccCurveId = HSE_EC_25519_ED25519 keyGenScheme = HSE_KEY_GEN_ECC_KEY_PAIR sch.eccKey.pPubKey = (HOST_ADDR)pub_key_output_ptr; And when I export the key: Service ID: HSE_SRV_ID_EXPORT_KEY targetKeyHandle = key_handle; // Same Key Handle keyInfo: keyFlags = HSE_KF_USAGE_VERIFY | HSE_KF_ACCESS_EXPORTABLE keyBitLen = HSE_KEY256_BITS keyCounter = 0 smrFlags = 0 keyType = HSE_KEY_TYPE_ECC_PAIR specific.eccCurveId = HSE_EC_25519_ED25519 pKey[0] = (HOST_ADDR)pub_key_output_ptr; pKeyLen[0] = (HOST_ADDR)&g_identity_key_len;   Are there any parameter's that are missing or configured incorrectly? Re: S32K3 HSE: Export EDDSA Public Key Thank you Lukas, I was missing setting the HSE_INVALID_KEY_HANDLE's. I see now in the header files: Must be set to #HSE_INVALID_KEY_HANDLE if not used. Re: S32K3 HSE: Export EDDSA Public Key Hi @MHan  I can see nothing wrong in those parameters. Because the public ECC key is exported in plain and not authenticated, did you configured cipherKeyHandle and authKeyHandle as HSE_INVALID_KEY_HANDLE (0xFFFFFFFF)? Setting of HSE_INVALID_KEY_HANDLE to these key handles ensures that authentication and encryption parameters are ignored. Also try to disable data cache to confirm it is not cache issue. Regards, Lukas
記事全体を表示
s32k1:同じFTMチャネルでPWM周波数とデューティサイクルを測定する方法 こんにちは、 S32K1xxとFTM 入力キャプチャを使用して PWM 信号を測定しています。 現在、1 つのチャネル (例: FTM0_CH1) を使用して周波数を取得できます。 同じチャネルを使用して周波数とデューティ サイクルの両方を測定するにはどうすればよいでしょうか? SDK またはプロセッサ Expert 構成を使用して、同じ FTM チャネル内でエッジ (立ち上がり/立ち下がり) を切り替えることは可能ですか? 例や推奨方法があれば教えていただけると幸いです。 よろしくお願いします! Re: s32k1:How to measure PWM frequency and duty cycle on the same FTM channel こんにちは、レオさん。返信ありがとうございます。 現在のプロジェクトでは、 S32 Design Studio for Arm v2.2 そして S32SDK_S32K1xx_RTM_3.0.0なので、最新の IDEs または SDKs バージョンにアップグレードするのは便利ではありません。 ご提供いただいたサンプルをダウンロードし、それをどのように設定すれば良いか理解しました。 デューティサイクル そして 周期測定。しかし、私の主な疑問は、どのように使用するかということです 単一チャネル 両方を測定する PWMデューティサイクルと周期 同時に、つまり、両方の例を 1 つに結合する方法です。 デューティ サイクルと周期測定の両方の例を一緒に実装する方法が見つからなかったSO、コード内のキャプチャ エッジ (立ち上がり/立ち下がり) を切り替えて測定を実行してみました。 このアプローチが許容可能または推奨されるかどうかを確認してください。 static uint32_t read_ts32_ch2(void) { uint32_t ovf_before = g_ftm_ovf; (void)FTM0->CONTROLS[2].CnSC; // Clear CHF step 1 uint32_t cap32 = FTM0->CONTROLS[2].CnV; // Clear CHF step 2 & get timestamp uint16_t cap16 = (uint16_t)(cap32 & 0xFFFFu); // Only the lower 16 bits are valid uint32_t ovf_after = g_ftm_ovf; // If overflow occurred after capture and cap16 is small, // assume the capture happened before the overflow and apply compensation if ((ovf_after != ovf_before) && (cap16 < 0x8000u)) { ovf_before++; } return (ovf_before << 16) | cap16; } #if 1 // Function works but sometimes has errors due to edge-switching jitter void FTM0_CH2_Input_Detect(void) { uint32_t cap_ts = read_ts32_ch2(); // Captured channel counter value //bool PwmIOStatus = FTM_DRV_GetChnEventStatus(FTM0,2); // ---------- Rising edge ---------- //if (PwmIOStatus & (1u << 2)) //{ if(!waiting_fall) { /* ---------- Rising edge ---------- */ rise_prev = rise_curr; rise_curr = cap_ts; /* Arm the next edge: falling edge */ waiting_fall = 1; FTM0->CONTROLS[2].CnSC = (FTM0->CONTROLS[2].CnSC & ~(FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK)) | (FTM_CnSC_ELSB_MASK); if (got_first_rise) { period_cnt = (uint32_t)(rise_curr - rise_prev); if (period_cnt == 0u) { got_first_rise = 0; } /* Protection */ else { pwm_freq_hz = frequency / period_cnt; } } else { got_first_rise = 1; } } else { /* ---------- Falling edge ---------- */ fall_curr = cap_ts; /* Switch back to rising edge */ waiting_fall = 0; FTM0->CONTROLS[2].CnSC = (FTM0->CONTROLS[2].CnSC & ~(FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK)) | (FTM_CnSC_ELSA_MASK); if (got_first_rise && (fall_curr >= rise_curr)) { high_cnt = (uint32_t)(fall_curr - rise_curr); if ((period_cnt != 0) && (pwm_freq_hz != 0)) { // duty_pct = ((float)high_cnt * 100.0f) / (float)period_cnt; new_sample = 1; } } } /* Redundant flag clear */ // FTM0->STATUS = (1u << 2); //} } 回复: s32k1:How to measure PWM frequency and duty cycle on the same FTM channel こんにちは、レオさん。返信ありがとうございます。 現在のプロジェクトでは、 S32 Design Studio for Arm v2.2とS32SDK_S32K1xx_RTM_3.0.0を使用しているSO、最新の IDEs または SDKs バージョンにアップグレードするのは便利ではありません。 ご提供いただいた例をダウンロードし、デューティ サイクルと周期の測定を取得するように構成する方法を理解しました。しかし、私の主な疑問は、 1 つのチャネルを使用してPWM デューティ サイクルと周期の両方を同時に測定する方法、つまり、両方の例を 1 つに組み合わせる方法です。 デューティ サイクルと周期測定の両方の例を一緒に実装する方法が見つからなかったSO、コード内のキャプチャ エッジ (立ち上がり/立ち下がり) を切り替えて測定を実行してみました。 このアプローチが許容可能または推奨されるかどうかを確認してください。 static uint32_t read_ts32_ch2(void) { uint32_t ovf_before = g_ftm_ovf; (void)FTM0->CONTROLS[2].CnSC; // Clear CHF step 1 uint32_t cap32 = FTM0->CONTROLS[2].CnV; // Clear CHF step 2 & get timestamp uint16_t cap16 = (uint16_t)(cap32 & 0xFFFFu); // Only the lower 16 bits are valid uint32_t ovf_after = g_ftm_ovf; // If overflow occurred after capture and cap16 is small, // assume the capture happened before the overflow and apply compensation if ((ovf_after != ovf_before) && (cap16 < 0x8000u)) { ovf_before++; } return (ovf_before << 16) | cap16; } #if 1 // Function works but sometimes has errors due to edge-switching jitter void FTM0_CH2_Input_Detect(void) { uint32_t cap_ts = read_ts32_ch2(); // Captured channel counter value //bool PwmIOStatus = FTM_DRV_GetChnEventStatus(FTM0,2); // ---------- Rising edge ---------- //if (PwmIOStatus & (1u << 2)) //{ if(!waiting_fall) { /* ---------- Rising edge ---------- */ rise_prev = rise_curr; rise_curr = cap_ts; /* Arm the next edge: falling edge */ waiting_fall = 1; FTM0->CONTROLS[2].CnSC = (FTM0->CONTROLS[2].CnSC & ~(FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK)) | (FTM_CnSC_ELSB_MASK); if (got_first_rise) { period_cnt = (uint32_t)(rise_curr - rise_prev); if (period_cnt == 0u) { got_first_rise = 0; } /* Protection */ else { pwm_freq_hz = frequency / period_cnt; } } else { got_first_rise = 1; } } else { /* ---------- Falling edge ---------- */ fall_curr = cap_ts; /* Switch back to rising edge */ waiting_fall = 0; FTM0->CONTROLS[2].CnSC = (FTM0->CONTROLS[2].CnSC & ~(FTM_CnSC_ELSA_MASK | FTM_CnSC_ELSB_MASK)) | (FTM_CnSC_ELSA_MASK); if (got_first_rise && (fall_curr >= rise_curr)) { high_cnt = (uint32_t)(fall_curr - rise_curr); if ((period_cnt != 0) && (pwm_freq_hz != 0)) { // duty_pct = ((float)high_cnt * 100.0f) / (float)period_cnt; new_sample = 1; } } } /* Redundant flag clear */ // FTM0->STATUS = (1u << 2); //} } Re: s32k1:How to measure PWM frequency and duty cycle on the same FTM channel 当社製品にご興味をお持ちいただき、また当社コミュニティに貢献していただき、ありがとうございます。 RTD の最新バージョンに更新すると、最近のバグ修正とパフォーマンスの向上のメリットが得られます。現在使用しているバージョンは数リリース前のものなので、安定性と互換性に影響する可能性があります。RTD を最新の状態に保つことで、最新の機能や拡張機能にアクセスできるようになります。 S32K1xx シリーズを使用した開発では、最新の S32DS および RTD バージョンを使用することをお勧めします。 • S32 Design Studio 3.6.4 – Windows/Linux • S32K1_S32M24X リアルタイム・ドライバ AUTOSAR R21-11 バージョン 3.0.0 IDEをダウンロードするには、 S32プラットフォーム用のS32 Design Studioページにアクセスしてください-> ダウンロード -> S32 Design Studio 3.6.4 – Windows/Linux RTD をダウンロードするには、 S32K1ページ-> デザイン リソース -> ソフトウェア -> S32K1 用リアルタイム・ドライバ -> オートモーティブ SW - S32K1_S32M24x - Cortex-M 用リアルタイム・ドライバにアクセスしてください。 各SWへのインストールフロー/詳細についてはリリースノートをご確認ください。 … SW をインストールしたら、デューティ サイクルと周期の測定については添付の例を参照できます。 ftm0_ch0 (PTD15) を PWM として、ftm1_ch2 (PTC14) を ICU として設定します。SO、テストのために接続してください。さらに、PTD16 はデバッグ目的のためだけに、測定開始前と測定停止後に切り替わります。 式タブで結果を確認します: デューティサイクルの例 期間の例 次の RTD を使用して例が構築およびテストされました。 - S32K1_S32M24X リアルタイム・ドライバ AUTOSAR R21-11 バージョン 3.0.0 この情報が役に立つことを願います。リアルタイム・ドライバ (RTD) の使用に関してさらに質問がある場合は、お気軽にお問い合わせください。
記事全体を表示
I.MX 93 FRDMがhello_worldでクラッシュする こんにちは、 ダウンロードしたバージョン: https://github.com/nxp-real-time-edge-sw/heterogeneous-multicore/tree/main(v2.9-202407) 起動すると、数秒間動作しますが、その後常に同じ場所でクラッシュします (これにより、u-boot がリセットされます)。スクリーンショットを参照してください。いつも同じ場所でクラッシュするのは普通ですか? よろしくお願いします、 Re: I.MX 93 FRDM crashes on hello_world 再、 プレビルドはこちら: (Linux 6.12.34_2.1.0): https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX FRDM-IMX93 をフラッシュするには UUU を使用します。 Linux の起動を停止して u-boot に入り、次のコマンドを入力します。 ファットロード mmc 1:0 0xD0000000 hello_world_ca55_RTOS0_UART2.bin dcache フラッシュ; icache フラッシュ; CPU リリース 1 0xD0000000 ファットロード mmc 1:0 0xD1000000 hello_world_ca55_RTOS1_UART1.bin dcache フラッシュ; icache フラッシュ; 0xD1000000 に移動 それでは正常に動作しています!!! そこで、FRDM-IMX93 用の私のツールチェーンを使用して u-boot をビルドする方法と、それを UUU でフラッシュするスクリプトを調べてもらえますか? よろしくお願いいたします。 Re: I.MX 93 FRDM crashes on hello_world こんにちは、 まず、今日は 異種マルチコア v3.2-202507 すると結果は同じになります。 hello_world の例のビルドを作成する手順は次のとおりです。 ./CMSIS_5-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./FreeRTOS-Kernel-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./heterogeneous-multicore-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./lwip-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./mcuxsdk-middleware-multicore-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./mcux-sdk-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./rpmsg-lite-Real-Time-Edge-v3.2-202507.zip を解凍します。 ./soem-Real-Time-Edge-v3.2-202507.zip を解凍します。 mv ./FreeRTOS-Kernel-Real-Time-Edge-v3.2-202507 ./FreeRTOS-Kernel mv ./heterogeneous-multicore-Real-Time-Edge-v3.2-202507 ./heterogeneous-multicore mv ./mcux-sdk-リアルタイムエッジ-v3.2-202507 ./mcux-sdk mv ./CMSIS_5-リアルタイムエッジ-v3.2-202507 ./mcux-sdk/CMSIS mkdir ミドルウェア mv ./mcuxsdk-middleware-multicore-リアルタイムエッジ-v3.2-202507 ./middleware/multicore mv ./lwip-リアルタイムエッジ-v3.2-202507 ./middleware/lwip mv ./rpmsg-lite-リアルタイムエッジ-v3.2-202507 ./middleware/multicore/rpmsg_lite mv ./soem-Real-Time-Edge-v3.2-202507 ./middleware/soem エラーがない場合は echo でインストールが成功しました。SO、インストールを試みます… コアのエコー: cd ./異種マルチコア ARMGCC_DIR=~/toolchains/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/ をエクスポートします。 ./build_apps.sh a-core mcimx93evk_ca55 フリートス m コアのエコー: ARMGCC_DIR=~/toolchains/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/ をエクスポートします。 ./build_apps.sh m-core mcimx93evk_cm33 フリートス エコー、掃除しましょう…: ./build_apps.sh クリーン エコー終了 SO、よろしければリンクをご覧ください: https://github.com/nxp-real-time-edge-sw/heterogeneous-multicore/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/mcux-sdk/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/FreeRTOS-Kernel/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/lwip/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/mcuxsdk-middleware-multicore/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/rpmsg-lite/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-real-time-edge-sw/soem/releases/tag/Real-Time-Edge-v3.2-202507 https://github.com/nxp-mcuxpresso/CMSIS_5/releases/tag/Real-Time-Edge-v3.2-202507 この場合のビルドは問題ありません: .binをアップロードするにはimx93 では SD カードを使用し、コンピューターから直接イメージを書き込み、SD を評価ボードに接続します。 SO、ここで私の画像を見ることができます: 次に、表示されている U-Boot について説明します。 リポジトリはこちらです: https://github.com/u-boot/u-boot/releases/tag/v2025.10 次にこれもダウンロードします: https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.21.bin https://github.com/nxp-imx/imx-atf/tree/lf_v2.8 https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-sentinel-0.11.bin このドキュメントを使用して続行します: https://docs.u-boot.org/en/latest/board/nxp/imx93_frdm.html しかし、ここでは、次の 2 つのコマンドにツールチェーンを使用します。 PLAT=imx93 CROSS_COMPILE=/ホーム/tcouille/toolchains/Arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf- bl31 を作成します。 そして : $ export CROSS_COMPILE=/home/tcouille/toolchains/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin/aarch64-none-elf- $ make imx93_frdm_defconfig $ make 次に、UUU を使用します: : https://github.com/nxp-imx/mfgtools/releases/tag/uuu_1.5.201 次のように入力します: ./uuu -v -b emmc_all .\flash.bin このコマンドを入力して、2 つの cortex-A で 2 つの hello_world サンプルを起動します。 ファットロード mmc 1:0 0xD0000000 hello_world_ca55_RTOS0_UART2.bin dcache フラッシュ; icache フラッシュ; CPU リリース 1 0xD0000000 ファットロード mmc 1:0 0xD1000000 hello_world_ca55_RTOS1_UART1.bin dcache フラッシュ; icache フラッシュ; 0xD1000000 に移動 そして数秒後、u-boot がリセットされます... よろしくお願いいたします。 Re: I.MX 93 FRDM crashes on hello_world こんにちは、 このボードのスクリプトをCANますか: mcimx93evk_ca55 ここで再現を試みるテスト対象の uboot のバージョン。 敬具
記事全体を表示
S32DS 3.6.4 can't found RTD Hello! Recently, I installed S32DS 3.6.4 & RTD 6.0.0. However, when I attempt to create a new app project, I am unable to select RTD. How can I fix it? Re: S32DS 3.6.4 can't found RTD Thank you for your interest in our products and for contributing to our community. According to RTD 6.0.0 Release Notes: So when you create a new project, please make sure you select NXP GCC 10.2.0 in the following step: I hope this information is helpful.
記事全体を表示
OPWMCB Mode in eMIOS – Lead vs. Trail Edge Hi I’ve been working with eMIOS PWM IP in OPWMCB mode and wanted to understand the practical difference between these two configurations: EMIOS_PWM_IP_MODE_OPWMCB_TRAIL_EDGE EMIOS_PWM_IP_MODE_OPWMCB_LEAD_EDGE To investigate, I created a simple test project and observed the output signals. Surprisingly, I couldn’t see any noticeable difference between the two modes on the waveform. Here’s my setup: Time base: Channel 23 Channels: CH1 and CH2 generating center-aligned PWM The same time base also triggers the ADC at the middle of the period for current sampling. My questions: What is the actual difference between these two OPWMCB modes? Under what conditions does this difference become visible? For my design (center-aligned PWM with ADC sampling at mid-period), which mode is best and why? Looking forward to your insights and explanations! Re: OPWMCB Mode in eMIOS – Lead vs. Trail Edge Thank you for your interest in our products and for contributing to our community. Regarding your questions: 1&2 .- The main difference is noted with deadtime insertion. The trail edge mode increasing high time. Alternatively, by selecting the lead edge mode, deadtime insertion decrease high time. For more details, please refer to 6.4. OPWMCB example project section of S32M27x/S32K3 – eMIOS Usage. On the other hand, it could also affect the flag event (I don't remember having tried it.), and therefore the interrupt and triggering support. For reference consult 6.6. PWM design considerations section. And please test it on your own taking as reference the 6.1 OPWMB example project. 3.- Such topic is addressed in https://community.nxp.com/t5/S32K/Design-Strategy-for-Complementary-PWM-Generation-for-motor/td-p/2170567 I hope this information is helpful.
記事全体を表示
项目无法作为 IAR EW 导出 我按照"HOWTO: Export S32DS Project to IAR EW (S32K14x/S32K11x)" 中的说明操作,但在"Export" 中找不到"Project Info Export Wizard" 选项。 Re: The project cannot be exported as IAR EW 你好、 这一功能在配备处理器专家的旧版 S32DS 中也有。我对 IAR Workbench 不熟悉,但我想您可以将项目作为 ProjectInfo.xml 导入 WB IDE。
記事全体を表示
How Do You Ensure Reliability and Redundancy in Large Enterprise Storage Environments? Hello everyone, As our enterprise storage needs grow, maintaining high reliability, redundancy, and performance is more important than ever. We’re actively exploring best practices to ensure our enterprise storage infrastructure remains both resilient and efficient, with minimal risk of data loss or downtime. I’d love to hear from others managing large-scale storage environments. What strategies and technologies have you found to be the most effective in ensuring reliability and redundancy? Here are a few specific areas I’m interested in: RAID configurations: Which RAID level works best for large environments and why? Data replication: How do you ensure fast and reliable replication? Backup strategies: How often do you back up critical data, and do you leverage cloud or offsite solutions? Disaster recovery: Tips for designing a robust disaster recovery plan? Fault tolerance: How do you effectively manage hardware failure or network issues? Automation: How does automation play a role in improving reliability? Looking forward to hearing your thoughts and experiences!
記事全体を表示
RT1176 custom board no access to LPUART1 or JTAG/SWD ... I have a custom board, that is very close to the EVKB board, except no USB or MIPI. I cannot seem to access serial downloader mode to use the Secure Provisioning Tool via UART, nor obtain any access via JTAG/SWD for programming. The chip seems to be working, on that there is an ON/OFF button that when held for 5 seconds, or whatever the length is, powers the chip off, and then pressing the button again powers it on. I've double-triple checked everything, and it nearly matches the EVKB board, however one things I noticed that was not done was to connect VDD_MIPI_* or VDD_USB_* to anything, again, as the board doesn't use MIPI or USB. Could not connecting those power pins be causing the problems I'm having with accessing UART or JTAG/SWD? Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... The image I posted is from that red circled area, and I am using the exact components, values as detailed in the EVKB there. Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Hi @application_ninja , In MIMXRT1170-EVKB board  , RC delay time is 30000*0.00000022=0.0066s  =6.6ms. Please check your board, if your board use the same RC delay circuit, Please use an oscilloscope to measure the signal circled in red in the image. Best Regards Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... As an FYI, this is what my delay circuit looks like...  Blue being DCDC_IN and yellow being DCDC_PSWITCH. Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Not sure what you mean by: "VDD_SNVS_DIG is internal LDO output.", so is 0v output correct for this, or not? My custom board is nearly identical to the EVKB except for not using MIPI/USB/AUDIO. I've gone over things many times, just cannot figure out why I cannot get it into serial downloader mode nor use JTAG/SWD to program it. Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Hi @application_ninja , VDD_SNVS_DIG is  internal LDO output. 1: I suggest you can compare your customed board with MIMXRT1170-EVKB board, check the difference. 2: If you have MIMXRT1170-EVKB board, did you try modify the MIMXRT1170-EVKB board same as your customed board? Best Regards Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Apparently VDD_SNVS_DIG is low, and controlled by software, so my design is correct? https://www.nxp.com/docs/en/data-sheet/IMXRT1170BCEC.pdf "The power rail VDD_SNVS_DIG is controlled by software." Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... OK, so it's looking like I'm not getting anything on VDD_SNVS_DIG, not sure why, but any thoughts as to what could cause this off hand? Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... That was going to be my next steps, however quite difficult to test / probe, thus my first questions to see if not connecting those VDD_MIPI_* and VDD_USB_* could be the cause, since everything else seems to power up correctly and I get correct voltages everywhere. Thank you. Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Hi @application_ninja , Could you use an oscilloscope to check if the power-up sequence is normal, especially the RC delay circuit?  Best Regards MayLiu Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Yes, thank you, I have verified all that, I have a positive voltage on BOOT_CFG_0, and have positive voltage on the RXD LPUART1 pin coming from the chip, so everything appears as though it should be working, but I get nothing from the secure provisioning tool, nor from the sdphost tool. All my power rails look good, proper voltages, my ONOFF button works, reset button, just really stumped as to why I cannot program / read the chip. Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Hi @application_ninja , Thanks for your updated information. First, I suggest you follow the HDUG recommended design for your customed hardware development board. Second, please check the Boot Mode pins settings of your custom development board. If you want use the Secure Provisioning Tool via UART, you need set as serial downloader mode. Third,  Only LPUART1 support serial downloader mode. Wish it helps you. Best Regards MayLiu Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Yes, I am aware of that document, but that does not answer my question, and as you have confirmed what the document states, those are "recommendations", they are not listed as "requirements" for proper board operation. So going by the way you have stated and the documentation reads, as "recommended" they do not have to be performed for proper board  / chip operation. Which leads back to my question, could not doing these "recommendations" cause the problems I am seeing? Re: RT1176 custom board no access to LPUART1 or JTAG/SWD ... Hi @application_ninja , Thank you so much for your interest in our products and for using our community. In MIMXRT1170HDUG, it describe that Unused pins recommendation  https://www.nxp.com/webapp/Download?colCode=MIMXRT1170HDUG Please follow the  Recommended connections for unused analog interfaces. Wish it helps you. If you still have question about it, please kindly let me know.  Best Regards MayLiu
記事全体を表示
Inference Degradation on i.MX95 Neutron NPU Dear NXP Technical Support Team, We are currently developing a pose estimation model using ResNet as the backbone, and are considering deploying it on a product based on the i.MX95 platfo However, we are encountering significant degradation in inference accuracy when running quantized models on the Neutron NPU. Our investigation revealed that even with standard classification models, quantized models that perform correctly on the CPU show degraded results after conversion for NPU execution. This issue also affects ResNet, which we use as our backbone. Through partial NPU assignment testing using neutron-converter, we confirmed that the degradation occurs when layers other than specific Conv2D layers are assigned to the NPU. We would appreciate your insights regarding the following: What could be the cause of the inference degradation? For example, quantization or conversion parameter issues, hardware limitations of the NPU, or bugs in the neutron-converter. Are there any known issues related to this problem? For example, bugs in BSP 6.12.20 or eIQ Toolkit 1.16.0, known limitations when running ResNet models on the NPU, or any other documented issues with the i.MX95 NPU. What countermeasures can we take to mitigate this issue? Development Environment Hardware: i.MX95 EVK BSP Version: 6.12.20_2.0.0(NXP) eIQ Toolkit: 1.16.0 (Windows) Model Conversion Pipeline PyTorch → ONNX: torch.onnx (opset version 15) ONNX → TensorFlow (.pb): PINTO0309/onnx2tf INT8 Quantization: tensorflow.lite.TFLiteConverter (version 2.12.0) NPU Conversion: neutron-converter (version 2.0.2+0X0cebb80a) Inference Results When executing on the NPU, the inference accuracy drops drastically. We tested with quantized models of MobileNetV2 and ResNet18 (from torchvision) using ImageNetV2 (500 samples): model float32 CPU Accuracy (Top1 / Top5) int8 CPU Accuracy (Top1 / Top5) int8 NPU Accuracy (Top1 / Top5) MobileNetV2 70.2% / 89.4% 68.4% / 88.6% 0.2% / 0.8% ResNet18 64.0% / 86.6% 63.6% / 87.4% 0.0% / 0.6% Additional Test We performed partial NPU assignment tests using the --include-operators option in neutron-converter on the quantized ResNet18 model. We observed that assigning layers other than specific Conv2D layers to the NPU leads to inference degradation. case NPU assignment result Accuracy Top1 / Top5 Baseline none (all CPU) ー(baseline) 63.6 / 87.4 % Case 1 all bad 0.0 / 0.6 % Case 2 Conv2D layers which in/out shape is [1×56×56×64] good 64.0 / 87.4 % Case 3 Case 2 + Add layers bad 0.0 / 0.6 % Case 4 Case 2 + other Conv2D layers bad 0.0 / 0.8 % Thank you so much for your support. Best regards, Ryosuke Re: Inference Degradation on i.MX95 Neutron NPU Hello, Please note that the i.MX95 is still in pre-production stage so we cannot offer support to it, please contact your local NXP Sales/NXP FAE for further assistance. Best regards/Saludos, Aldo.
記事全体を表示
S32 Design Studio v3.6.x および LQFP パッケージ用の S32K39x ピンツール こんにちは、 既存の例をインポートすることと、S32K396 用の RTD 6 QLP01 を使用して新しいアプリケーション プロジェクトを生成することの両方を試しました。 ピン ツールのグラフィック表示は BGA パッケージでは見栄えが良いのですが、パッケージを 176LQFP に変更すると、LQFP パッケージの上部にピンがなくなります (すべて左、右、下部にあります)。 これは対処が予定されている問題ですか、それとも私のインストールの問題ですか? ありがとうございます! Re: S32 Design Studio v3.6.x and S32K39x Pins tool for LQFP package バグレポートが S32 Design Studio チームに送信されました。彼らはこのバグを確認し、FUTUREリリースで修正する予定です。 Re: S32 Design Studio v3.6.x and S32K39x Pins tool for LQFP package ハイ この問題を報告していただきありがとうございます。この問題は S32DS チームに報告済みです。返答が届き次第お知らせします。 現在、ピンのポジショニングが正しく表示されていません。S32K396RM (Rev. 4 11 2024).pdf のS32K36_IOMUX.xlsxファイルのS32K396_176lqfp_EPを参照してください。正しいピンのポジショニング。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 ---------------------------------------------------------------------------------
記事全体を表示