Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
LS1046A DDR4 32GB DDR4サイズサポート こんにちは、 32GBのDDR4メモリLS1046Aサポートされているのか知りたいです。また、DDR3Lでも動作しますか? Re: LS1046A DDR4 32GB DDR4 Size Support yipingwangさん、迅速なご回答ありがとうございます。LS1034AでサポートされるDDRの最大サイズはどれくらいでしょうか? Re: LS1046A DDR4 32GB DDR4 Size Support 1. 32 GB DDR4 LS1046Aサポートしていますか? はい。 2. DDR3L LS1046ACAN動作しますか? いいえ。 LS1043A 32ビットDDR3L/DDR4コントローラをサポートし、LS1046A/LS1088Aは64ビットDDR4コントローラをサポートします。 Re: LS1046A DDR4 32GB DDR4 Size Support LS1043A LS1043Aリファレンスマニュアル/製品概要によると、最大32GBのDDR/メインメモリをサポートしています
View full article
DMAディスクリプタを使用して1024バイトを超えるデータを受信する(LPC55S69) コミュニティの皆様、こんにちは。 DMAの最大転送サイズが1024バイトであることを考慮すると、 DMAを介して大量のデータ(2000バイト以上)をLPC55S69ボードに受信する方法を見つけるのに苦労していました。 「usart_dma_double_buffer_transfer」の例を見てみましたが、例えば以下のような機能が古くなっていました。 DMA_PrepareTransfer() は DMA_PrepareChannelTransfer() に、DMA_SubmitTransfer() は DMA_SubmitChannelTransfer() に、DMA_CreateDescriptor() は DMA_SetupDescriptor() に変更されました。SO、例には表示されなかったこれらの新しい関数の新しい入力パラメータ、特に新しいDMA_SetupDescriptor()にあるDMAの転送構成パラメータ "xfercfg" を入力するのに少し迷ってしまいました。 [[ ## completed ##]] 「dma_channel_chain」というサンプルコードも確認しましたが、新しい関数のいくつかについて別の視点を得るのに役立ちましたが、まさに私が探していたものではありませんでした。 さらに、 DMA卓球アプリケーション - NXPコミュニティという記事も見ましたが、私が使っていたLPCボードとは完全に互換性がありませんでした。 オンラインで得た情報をまとめ、キーボードに頭を打ち付けて、 ついに目的の場所にたどり着き、DMAを通じて大量のデータを受け取った。 (データはそれぞれ1024バイトの3つの異なるバッファに保存されます) SO、この 機会にコードを共有して、同じ 道を歩んでいる方の助けになれたり、指針を提供できればと思っています。また、この素晴らしいコミュニティから学んだことを少しでも還元したいと思っています。 (これは質問というわけではなく、議論の余地があるトピックであることを考えると、ここに投稿しても問題ないことを願っています。) 幸運を祈ります! #include "fsl_usart_dma.h" #include "fsl_dma.h" #define NUMBER_DESCRIPTORS 3 #define DESCRIPTOR_TRANSFER_SIZE 1024 #define RX_BUFFER_SIZE 1024 uint8_t g_data_buffer[RX_BUFFER_SIZE]; uint8_t g_data_1[RX_BUFFER_SIZE]; uint8_t g_data_2[RX_BUFFER_SIZE]; uint8_t g_data_3[RX_BUFFER_SIZE]; /* Custom Descriptors (Must be 16-byte aligned) */ SDK_ALIGN(dma_descriptor_t g_Desc[NUMBER_DESCRIPTORS], 16); /* equal to writing: __attribute__((aligned(FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE))) dma_descriptor_t g_Desc[NUMBER_DESCRIPTORS] = {0}; or DMA_ALLOCATE_LINK_DESCRIPTORS_AT_NONCACHEABLE(g_Desc, NUMBER_DESCRIPTORS); */ /* Function definitions ****************************************************************************/ //Initialising Rx DMA to receive data bigger than 1024 bytes. void init_USART_DMA(void){ //Channel configuration for DMA descriptor dma_channel_config_t channelConfig; /* 1. System/Peripheral Level Init */ // Done in peripheral.c, initialized the functions USART_Init(), DMA_EnableChannel(), DMA_CreateHandle(), USART_TransferCreateHandleDMA(). /*I have not used the function DMA_SubmitChannelDescriptor(), by giving as input the g_ChannelTable, as it would not allow to receive data. the g_ChannelTable variable should be initalized as follow: //Allocates the mandatory, 512-byte aligned master table in RAM used by the hardware to manage all DMA channels SDK_ALIGN(dma_descriptor_t g_ChannelTable[FSL_FEATURE_DMA_MAX_CHANNELS], 512); then call the function here in the code DMA_SubmitChannelDescriptor(FLEXCOMM5_USB_PC_RX_Handle,g_ChannelTable); */ /* 2. Enable USART RX DMA requests */ USART_EnableRxDMA(FLEXCOMM5_USB_PC_PERIPHERAL, true); /* 3. Prepare the Descriptor Configuration Variable Flags */ //Intermediate Descriptors, where it jumps from one to another /* Common XFER configuration options for intermediate descriptors (1, 2,...) */ /* reload = true (keeps the chain moving to the next descriptor) */ /* intA = false (we only want the final interrupt when everything is done) */ uint32_t intermediatexfercfg = DMA_CHANNEL_XFER( true, /* reload: true to move to the next descriptor */ false, /* clrTrig: false */ false, /* intA: false */ false, /* intB: false */ sizeof(uint8_t), /* width: 1 byte for USART char processing */ kDMA_AddressInterleave0xWidth, /* srcInc: 0x (read from fixed USART FIFO address) */ kDMA_AddressInterleave1xWidth, /* dstInc: 1x (increment buffer pointer by 1 byte) */ DESCRIPTOR_TRANSFER_SIZE /* totalBytes: DESCRIPTOR_TRANSFER_SIZE */ ); //Final Descriptor, where it stops jumping to another descriptor /* Final XFER configuration options for the last descriptor */ /* reload = false (this is the end of the chain) */ /* clrTrig = true (stop the DMA hardware channel) */ /* intA = true (fire the completion interrupt) */ uint32_t finalxfercfg = DMA_CHANNEL_XFER( false, /* reload: false because this is the terminal descriptor */ true, /* clrTrig: true to clear peripheral hardware requests */ true, /* intA: true to fire our completion interrupt */ false, /* intB: false */ sizeof(uint8_t), /* width: 1 byte for USART char processing */ kDMA_AddressInterleave0xWidth, /* srcInc: 0x (read from fixed USART FIFO address) */ kDMA_AddressInterleave1xWidth, /* dstInc: 1x (increment buffer pointer by 1 byte) */ DESCRIPTOR_TRANSFER_SIZE /* totalBytes: DESCRIPTOR_TRANSFER_SIZE */ ); /* 4. Configure the Custom Descriptors structure */ //Descriptor #0 DMA_SetupDescriptor( &g_Desc[0], intermediatexfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_1[0], /* Destination address: RAM buffer */ &g_Desc[1] /* Point to next descriptor */ ); //Descriptor #1 DMA_SetupDescriptor( &g_Desc[1], intermediatexfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_2[0], /* Destination address: RAM buffer */ &g_Desc[2] /* Point to next descriptor */ ); //Descriptor #2 (final) DMA_SetupDescriptor( &g_Desc[2], finalxfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_3[0], /* Destination address: RAM buffer */ NULL /* Final descriptor, does not move to another*/ ); /* 5. Set up Head Transfer to execute first descriptor first */ /* Point the initial hardware channel block straight to the first buffer to save data */ DMA_PrepareChannelTransfer( &channelConfig, /* 1. Pointer to configuration structure */ (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* 2. Source start address */ (void *)&g_data_1[0], /* 3. Destination start address */ DMA_CHANNEL_XFER( /* 4. Initial transfer settings bitmask */ true, /* reload: true to step into linked descriptor */ false, false, false, sizeof(uint8_t), kDMA_AddressInterleave0xWidth, kDMA_AddressInterleave1xWidth, DESCRIPTOR_TRANSFER_SIZE ), kDMA_PeripheralToMemory, /* 5. Transfer type enum path */ NULL, /* 6. Hardware Trigger parameters (NULL uses default peripheral request) */ &g_Desc[1] /* 7. Address of next descriptor. (including already 2nd descriptor, as this will already transfer all the data to begining of rxBuffer like first descriptor would have done*/ ); DMA_SubmitChannelTransfer(&FLEXCOMM5_USB_PC_RX_Handle,&channelConfig); DMA_StartTransfer(&FLEXCOMM5_USB_PC_RX_Handle); } LPC55xx ペリフェラル Re: Using DMA Descriptors to receive Data bigger than 1024 bytes (LPC55S69) こんにちは、 調査結果とコードを共有していただきありがとうございます。このコミュニティは発見を共有したり、質問したり、指導やサポートを提供したりするのに素晴らしい場所SO、ここに投稿していただき感謝しています。 さらにご不明な点やご要望がございましたら、お気軽にお問い合わせください。 敬具、ルイス
View full article
xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK Board: MIMXRT700-EVK SDK Version: SDK_26_06_00_MIMXRT700-EVK Example: SDK_26_06_00_MIMXRT700-EVK/mcuxsdk/middleware/cadence/multicore-xaf/examples/xaf_record/cm/ Build Configuration: Default example without modifications After starting DMIC recording using the shell command: record_dmic en The DSP reports a component setup failure, preventing the recording pipeline from functioning correctly. console output ****************************** DSP audio framework demo start ****************************** [CM33 Main] Configure codec [DSP_Main] Cadence Xtensa Audio Framework [DSP_Main] Library Name: Audio Framework (Hostless) [DSP_Main] Library Version: 3.6 [DSP_Main] API Version: 3.4 [DSP_Main] start [DSP_Main] established RPMsg link [CM33 Main] DSP image copied to DSP TCM [CM33 Main][APP_DSP_IPC_Task] start [CM33 Main][APP_Shell_Task] start Copyright 2024 NXP >> record_dmic en [CM33 CMD] Setting VIT language to en [DSP_Main] Number of channels 1, sampling rate 16000, PCM width 32 [CM33 CMD] [APP_DSP_IPC_ Task] response from DSP, cmd: 13, error: 0 [DSP Record] Audio Device Ready [CM33 CMD] DSP DMIC Recording started [DSP Record] comp_setup failure: 4294967294 [CM33 CMD] To see VIT functionality say wakeword and command [CM33 CMD] [APP_DSP_IPC_ Task] response from DSP, cmd: 13, error: 4294967295 [CM33 CMD] DSP DMIC Recording started [CM33 CMD] To see VIT functionality say wakeword and command Expected Behavior After executing: record_dmic en The DMIC recording pipeline should initialise successfully, allowing audio capture and VIT wake-word detection without any component setup errors. Actual Behavior The DSP reports: [DSP Record] comp_setup failure: 4294967294 followed by an IPC response with: error: 4294967295 As a result, the recording pipeline does not function as expected. Request  Could you please help identify the following? What causes the comp_setup failure, 4294967294, in the default xaf_record example? Does this indicate a missing DSP component, codec configuration issue, or another initialisation problem? Is there any known issue or patch for the xaf_record example in SDK 26.06.00? Are any additional configuration steps required before using the record_dmic command? Any guidance on debugging this issue would be appreciated. Evaluation Board Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK Please find the above reply. Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK Hi @suhas1503 , Could you please provide some information about the IDE you're using? Is it MCUXpresso IDE or VS Code? I tried to reproduce the issue in MCUXpresso IDE, but it ran fine. I didn't find anything related to “[DSP VIT]” in your log information. I suspect this might be due to missing content in your local project rather than a software bug. Best regards, Gavin Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK I was able to reproduce the issue using the same package. I’ll conduct an internal investigation to see if there are any discrepancies. This may take some time. In the meantime, I recommend that you continue development based on the MCUXpresso IDE project to save the time. Once the issues with the SDK package based on the ARM GCC toolchain have been resolved, you can port your project over. Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK We have downloaded the sdk from the below link; also attaching the snap; we downloaded sdk version 26.06.00 https://mcuxpresso.nxp.com/download/c7b3a37a7e9e773a92291031541e9b58 we are compiling and flashing through command line Build command:  west build -b mimxrt700evk middleware/cadence/multicore-xaf/examples/xaf_record/cm -d build/ -- -Dcore_id=cm33_core0 -Dtarget=flash_debug Flash command: LinkServer flash MIMXRT798S:MIMXRT700-EVK load dsp_xaf_record_cm33_core0.elf
View full article
SGTL5000XNLA3/R2 はアクティブな部分です チームの皆さん、こんにちは。 この部品SGTL5000XNLA3/R2はアクティブですか?新しいデザインにCANを使えますか? データシートはEOLと記載されています Re: SGTL5000XNLA3/R2 is part is active わかりました。ご回答ありがとうございます。 Re: SGTL5000XNLA3/R2 is part is active SGTL5000XNLA3 製品情報 |NXP Semiconductors データシートには以下のように記載されています。
View full article
S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 如题,我希望连续输出时钟,便于我下游设备基于此时钟做数据处理。 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 你好@Zhangbohan , 遗憾的是,S32K3 SPI 模块不支持连续 SCK。一种方法是使用“连续传输”: "在主模式下,CONT 信号会在帧大小结束时钳位 PCS 信号,直到收到开始新帧的命令字为止。" 另一种选择是使用 GPIO 作为 CS,并通过软件进行控制。 无论哪种方式,当数据被推送到SPI发送缓冲区时,都会生成SPI SCK信号。如果使用标准驱动器(MCAL 或 RTD),则 SCK 脉冲将由驱动器通过向 FIFO 推送数据来控制,用户无法控制。 据我所知,只有 S32K9-K7-K6 设备的 DSPI 模块支持连续 SCK 模式。摘自S32K39参考手册: 此致, 朱利安 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 非常感谢您的回复,我重新评估了我的方案,再请教您一个问题,S32K344,QSPI是否支持DMA传输,我在寄存器层面看到了有相关寄存器;但是在QSPI_IP中,没有使能和通道配置选项;在MCAL层,似乎可以配置。这让我不太确定,是否有QSPI+DMA的支持,是否有相关例程?现有的例程“Mem_43_EXFLS”,我看到里面没有使用DMA。
View full article
Fault flag clearing behavior of FS6500 Hi team, I have a question regarding the fault flag clearing behavior of FS6500.   According to the datasheet, the LPOOF (bit0) and DFS (bit1) flags inside the MODE register (address 0x15) shall be cleared only by Power-on reset or register read operation. However, from my hardware test:   Writing to the MODE register also clears LPOOF and DFS fault bits unexpectedly.   There is no description in the datasheet mentioning that write access can clear these status flags. Could you help explain the root cause for this phenomenon?   Is this intended silicon behavior or undocumented side effect?   Thanks & Best regards   DEVKIT-MPC5744P FS6500  Re: Fault flag clearing behavior of FS6500 Hello, Check you write instruction. In most software drivers, a register write is implemented as a read-modify-write (RMW) sequence. If the datasheet specifies that reading MODE clears LPOOF/DFS, then the flags may already be cleared during the read phase. The subsequent write merely creates the impression that the write operation caused the clearing. Best regards, Peter
View full article
imx93 AHAB SGK 支持 imx93 现在支持安全启动签名的 SGK 还是仅支持 SRK? 应用笔记 12312 " 在支持 AHAB 的设备上安全启动 " 在第 3 章中说: 注意:对于 i.MX8ULP 和 i.MX93,当前版本固件仅支持 SRK。 现在还支持 SGK 吗?如果是,来自哪个固件版本? Re: imx93 AHAB SGK support 现在依然如此。i.MX93 不支持 SGK。 此致 哈维 Re: imx93 AHAB SGK support 您好,请问imx91支持SGK吗?(参考手册上说支持)
View full article
etpuc mpc5775 我想运行 eTPUC 中 cw 函数选择器中的一个函数。我知道 etpuc 的起始/结束 RAM 地址(与 mpc5777c_vars_c.h 相同)。我相应地修改了 etpuc 的my_system_etpu_init 函数。我只是复制函数文件(比如crank),然后为etpuc生成新文件。 在运行所有程序并暂停程序时,调试器卡住,显示“PC:找不到“0x800400”的源”。 哪里出了问题? Re: etpuc mpc5775 下面有几篇应用笔记,关于 etpu 初始化代码有哪些更改? AN5374:应用程序中的 eTPU 库使用 – 应用笔记 AN4907:发动机控制 eTPU 库 – 应用笔记 AN2864:eTPU 的通用 C 函数 – 应用笔记 AN4908:发动机控制 eTPU 演示应用 – 应用笔记 Re: etpuc mpc5775 eTPU代码是如何生成的?您是使用函数选择器生成了完整的函数集,还是只复制了 CRANK 函数文件? 能否分享一下您修改后的 my_system_etpu_init() 实现? 初始化过程中,生成的 eTPU 代码映像是否已成功加载到 SCM 中? 能否提供生成的 eTPU 项目文件(例如:etpu_set.c,etpu_set.h)? 电脑总是停在 0x800400 这个错误代码处,还是会变化?
View full article
使用 ADC 触发唤醒 S32K312 MCU RTD3.0.0 S32DS3.5 您好, 我正在使用 S32k312 控制器 mini EVBKIT 来检查 MCU 的睡眠和唤醒功能。我正在尝试通过在 ADC 中施加低阈值和高阈值电压值,利用 ADC 中断唤醒 MCU。此功能能否使MCU唤醒? Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 你好@LavanyaPilli , 当然。如果您使用 PTA1 (ADC0_S9) 作为外部中断唤醒,您可以参考 S32K312_IOMUX.xlsx 文件查找分配的 WKPU 通道: PTA1 是 WKPU[5],但是由于有 4 个内部唤醒源,您还必须添加 +4 作为偏移量。这使得 PTA1 WKPU_CH_9。 您必须初始化 WKPU 单元,并配置相应的通道: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); 您可以参考以下低功耗示例: S32K3 低功耗管理 AN 和演示 示例 S32K312 在待机状态下通过 CAN-0-RX 和 GPIO 开关 DS3.5 唤醒 RTD300 [RTD600 IP] S32K312EVB-Q172 待机 RAM GPIO 唤醒 此致, 朱利安 Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 您好, 谢谢你的解释。 我将按照您的建议,评估使用 LPCMP 进行待机唤醒。但是,对于我们的应用需求,我们仍然需要实现ADC中断唤醒功能。 请问您能否协助我验证 MEX 文件,看看 ADC 是否可以专门配置为外部中断唤醒? Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 你好@Julián_AragónM , 谢谢你的参考,引用,这很有帮助。我们目前采用的是基于 CAN 总线的唤醒配置。我们将在稍后阶段评估基于ADC的唤醒设置。
View full article
UM11490 和蓝牙经典 尊敬的NXP技术支持: 我们的一位客户正在运行 UM11490 第 149 页中的以下命令,但看不到任何波形。 请检查并确认是否缺少任何其他命令/条件。 谢谢! 顺祝商祺! 码头 ------------------------------------ # RESET root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x0003 < HCI 命令:ogf 0x03,ocf 0x0003,plen 0 > HCI 事件:0x0e plen 4 01 03 0C 00 # 启用扫描 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x001a 0x3 < HCI 命令:ogf 0x03,ocf 0x001a,plen 1 03 > HCI 事件:0x0e plen 4 01 1A 0C 00 # 启用事件过滤器 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x0005 0x02 0x00 0x02 < HCI 命令:ogf 0x03,ocf 0x0005,plen 3 02 00 02 > HCI 事件:0x0e plen 4 01 05 0C 00 # 进入测试模式 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x06 0x0003 < HCI 命令:ogf 0x06,ocf 0x0003,plen 0 > HCI 事件:0x0e plen 4 01 03 18 00 # 启动TX变速器 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0x01 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 < HCI 命令:ogf 0x3f、ocf 0x0019、plen 18 80 80 80 80 01 00 01 01 0D 03 0F 00 00 00 00 00 00 04 > HCI 事件:0x0e plen 4 01 19 FC 00 # 停止TX传输 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0xF F 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 < HCI 命令:ogf 0x3f、ocf 0x0019、plen 18 80 80 80 80 FF 00 01 01 0D 03 0F 00 00 00 00 00 00 04 > HCI 事件:0xff plen 6 19 01 39 00 00 00 -------------------- 在发送数据之前停止对蓝牙低功耗 (BLE) 和经典蓝牙 (Classic) 的扫描 ---------------- # RESET root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x0003 < HCI 命令:ogf 0x03,ocf 0x0003,plen 0 > HCI 事件:0x0e plen 4 01 03 0C 00 # 启用扫描 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x001a 0x3 < HCI 命令:ogf 0x03,ocf 0x001a,plen 1 03 > HCI 事件:0x0e plen 4 01 1A 0C 00 # 启用事件过滤器 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x0005 0x02 0x00 0x02 < HCI 命令:ogf 0x03,ocf 0x0005,plen 3 02 00 02 > HCI 事件:0x0e plen 4 01 05 0C 00 # 进入测试模式 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x06 0x0003 < HCI 命令:ogf 0x06,ocf 0x0003,plen 0 > HCI 事件:0x0e plen 4 01 03 18 00 # 禁用蓝牙扫描 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x03 0x001a 0x0 < HCI 命令:ogf 0x03,ocf 0x001a,plen 1 00 > HCI 事件:0x0e plen 4 01 1A 0C 00 # 禁用经典扫描 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x08 0x000C 0x00 0x00 < HCI 命令:ogf 0x08,ocf 0x000c,plen 2 00 00 > HCI 事件:0x0e plen 4 01 0C 20 00 # 启动TX变速器 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0x01 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 < HCI 命令:ogf 0x3f、ocf 0x0019、plen 18 80 80 80 80 01 00 01 01 0D 03 0F 00 00 00 00 00 00 04 > HCI 事件:0x0e plen 4 01 19 FC 00 # 停止TX传输 root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0xFF 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 < HCI 命令:ogf 0x3f、ocf 0x0019、plen 18 80 80 80 80 FF 00 01 01 0D 03 0F 00 00 00 00 00 00 04 > HCI 事件:0xff plen 6 19 01 63 07 00 00 ** 在进入测试模式前禁用扫描时,TX 传输停止会显示以下信息: root@myboard:/home/BTtest# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0xFF 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 < HCI 命令:ogf 0x3f、ocf 0x0019、plen 18 80 80 80 80 FF 00 01 01 0D 03 0F 00 00 00 00 00 00 04 > HCI 事件:0xff plen 6 19 01 ED 04 00 00 适用于 5 GHz Wi-Fi -------------------------------------------------------------------------------- 参数:连续发射,带宽 = 40 MHz,802.11ac无DFS,CH = 40,MCS0(13.5),功率 = 14 dBm root@myboard:/home/BTtest# cat /proc/mwlan/adapter0/config 硬件状态=0 netlink_num=31 驱动模式=7 hssetpara=7,0xff,200,400 sdcmd52rw=0 0x0 0x00 rf_test_mode=1 tx_antenna=1 接收天线=1 band=1 bw=1 频道=44 radio_mode[0]=3 radio_mode[1]= 总处方药包数=0 接收多播/广播数据包计数=0 接收函数调用错误数据包计数=0 发射功率=14 2 0 tx_continuous=0 tx_frame=1 4352 0xaaa 1024 1 20 4294967295 0 0 4294967295 0 0 0 -1 -1 -1 -1 -1 -1 -1 05:43:3f:c4:51:ff he_tb_tx=0 触发帧=0 otp_mac_add_rd_wr= 00:00:00:00:00:00 Re: UM11490 and Bluetooth Classic 嗨@Christine_Li , 抱歉,我没理解上下文: 内核版本:lf-6.6.52-2.2.2 已与 6.6.y 合并社区内核 固件版本:IW612-18.99.3.p25.7独立的蓝牙/WiFi固件,没有组合固件 产品:IW612 UM11490 版本:修订版1.8 — 2025年6月2日 以下详情将尽快公布。 加载固件时,dmesg 日志或控制台日志会显示出来。 频谱分析仪设置的屏幕截图 在此期间,如果您还有任何需要,请随时告知我们。 谢谢! 顺祝商祺! 码头 Re: UM11490 and Bluetooth Classic 嗨, @pierluigi_p 您使用的是哪款Wi-Fi/蓝牙产品? 你的Linux内核版本是多少?WiFi/蓝牙驱动程序和固件版本? 从命令日志来看,所有 HCI 命令均已成功完成,并且 TX 启动命令已被控制器接受。此外,TX stop 命令返回的厂商特定事件包含非零数据包计数器,这表明控制器认为在测试期间已传输了数据包。 因此,该问题似乎并非由测试序列中缺少 HCI 命令引起。 我建议您查看: 频谱分析仪中心频率和跨度设置。 通过 TX 测试命令配置的蓝牙通道。 板上的射频天线配置。 蓝牙固件是否已正确加载。 您能否也分享一下: 所使用的芯片型号(IW416/IW612等)? 具体是哪个版本的UM11490? 加载固件时,dmesg 日志或控制台日志会显示什么? 你加载的是组合固件还是仅BT固件? 频谱分析仪设置的截图? 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 补充一点,我们尝试了 HackRF 的不同设置(增益和图形调整),可以看到 2.4 GHz(wifi)波形。此外,我们还测试了 imx-firmware 存储库中不同版本的不同固件,其中包括一个用于 RF 测试的固件( https://github.com/nxp-imx/imx-firmware/blob/lf-6.1.1_1.0.0/nxp/FwImage_IW612_SD/IW612_SD_RFTest/sduart_nw61x_rftm_v1.bin.se中的 sduart_nw61x_rftm_v1.bin.se),但均未成功。 Re: UM11490 and Bluetooth Classic 皮尔和克里斯汀,你们好 我是 Helbert,在 Veriscite 论坛上发起这个帖子的开发者。 以下是一些关于测试的附件: dmesg 日志(不包含电源配置信息): Dmesg 日志(包含电源配置信息): 频谱分析仪截图和 5 GHz 的配置文件(包括我自己的实现和 NXP 的实现) 修改后 注意:我们发现,当功率值为 -1 时,我们使用默认值,但也尝试了不同的值。 NXP脚本: 经典蓝牙测试的屏幕截图: 如图所示,没有生成波形。 BLE测试运行中的屏幕截图: BLE测试后的屏幕截图(波形中断): 从下图可以看出,测试结束时波形中断了。 模块信息日志: 已测试的 HCI 命令: Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 谢谢你提供详细信息。 我需要查看一下你的信息和截图,然后再回复你。 请给我一些时间。 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 嗨,Christine,有人提出我的二手SoM里可以再加一个Murata模块。我拆解了地雷,发现它的零件编号是:LBEE5PL2DL 因此,我需要检查一下2EL的指令是否也适用于这个型号。 Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 感谢您提供详细信息。 您的截图中只显示了一些背景噪音,没有任何有用的射频波形信息。 请问: 1.您正在使用我们的IW612-EVK吗?或者任何模块?如果是模块,请问您能否告知一下模块的零件编号? 2.您的硬件与测试设备的连接情况如何? 3.您的问题是关于蓝牙还是Wi-Fi? 如果是针对蓝牙的测试,我看到了您的测试命令,根据我们的射频测试指南,停止命令是: hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0xFF 但您正在发送: root@oaslv:/home/hexagon# hcitool -i hci0 cmd 0x3F 0x0019 0x80 0x80 0x80 0x80 0xFF 0x00 0x01 0x01 0x0D 0x03 0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x04 请严格按照我们的指导命令执行操作。 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 你好克里斯汀,谢谢你的核实。 1. 您使用的是我们的 IW612-EVK 模块吗?还是其他模块?如果是模块,能否告知您模块的零件编号? 我们已将该模块集成到 Variscite DART-IMX8M 系统模块 (SoM) 中https://variscite.com/system-on-module-som/i-mx-8/i-mx-8m-plus/dart-mx8m-plus/ 它的零件编号是:LBES5PL2EL.4 2.您的硬件与测试设备的连接情况如何? 我们通过 HackRF One 设备无线访问设备的无线电,该设备可以使用其天线捕获信号(但它也会捕获其他信号;这就是您看到一些噪声的原因)。 3 - 你的问题是关于蓝牙还是Wi-Fi? 两者皆适用。对于传统蓝牙,我们无法看到生成的波形(只有低功耗蓝牙可以),而对于 Wi-Fi,我们无法捕获 5 GHz 频段的信号。 关于 hci 命令,我看到了两种说法,NXP/Murata 的文档中都推荐了这两种说法。 在 AN14114 中,我们在第 47 页找到了简短的命令。 在 UM11490 中,第 150 页有很长的命令。 对于经典的蓝牙连接,我想我已经找到了解决方案。检查 UM11490 时,该命令的解释如下: hcitool -i hci0 cmd 文档中的示例将 tx_test_interval 设置为 0x0D,在这种情况下,间隔似乎有点长,因此,很难看到生成的波形。听起来像是噪音。将此参数设置为 0x01 时,我可以看到稳定的波形。此外,由于它是低带宽波形,所以我降低了频率范围。所以,我认为这解决了蓝牙问题。 但是,我仍然看不到 5 GHz 的波形。你有什么建议吗? 非常感谢您的帮助 Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 请尝试将初始捕获的带宽从 40MHz 改为 20MHz? echo "tx_frame=0" >> /proc/mwlan/adapter0/config echo "bw=0" >> /proc/mwlan/adapter0/config 您的回读显示  bw=1  ,AN14114 将其定义为 40 MHz ;  bw=0  是 20 MHz 。 对于 HackRF 观察而言,20 MHz 是更好的首次测试,因为在窄带或边缘 SDR 设置上,40 MHz Wi-Fi 更难清晰地捕获/识别。 请问它在 20MHz 下是否运行良好?然后我们逐步过渡到 40MHz。   顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 嗨,克里斯汀,我没看到这条消息,回复的是另一条。 是的,我尝试过不同的黑白设置,但我倾向于认为问题可能归因于某些地区的限制和噪声。 Re: UM11490 and Bluetooth Classic 你好,克里斯汀, 非常感谢您的支持。 经过一番调试,我发现这里可能存在问题。使用此处提供的文件更改区域时: https://github.com/murata-wireless/nxp-linux-calibration/tree/imx-6-6-23/murata/files/2DL我注意到 iw reg set 存在问题 基本上,我参考了这里发布的想法: https://murata.my.site.com/muratacommunity/s/question/0D5RC00001HGuiQ0AT/rf-test-mode-firmware-and-tools-for-murata-type-2dl-module-not-working 我使用了 2EL(和 2DL,它们是一样的)对应的文件,但在切换区域时,我注意到 iw reg get 并没有改变它的位置,并显示了以下消息: 因此,当使用文件 *txpower*.bin 更改驱动程序要使用的区域时,我们并没有更改系统区域。我发现,根据所选区域和应用于收音机的设置,这有可能阻止波形被触发。 我删除了 regulatory.db*我从 Murata 那里获取了文件,并使用了原始文件,而且它似乎表现得更好。我成功触发了一些5GHz的波形,但其他一些波形我认为被噪声掩盖了。 请问iw寄存器组/寄存器以及所使用的监管文件是否会影响波形生成? 如果答案是肯定的,那么我认为我们找到了问题的根源。这不是固件/脚本/校准文件的问题,而是地区限制。你觉得这个推断合理吗?还是你怀疑另有其他嫌疑人? 再次非常感谢! Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 谢谢你的信息,很高兴听到蓝牙现在可以正常工作了。 现在我们来重点讨论 Wi-Fi 5G 射频测试模式问题。 LBEE5PL2DL 模块的芯片组是我们 NXP 的 WiFi/蓝牙芯片组:IW611。 IW611 和 IW612 的区别在于:IW612 支持 802.15.4,但 IW611 不支持。 但对于 WiFi 和蓝牙来说,IW611 和 IW612 是相同的。 所以这意味着, 2EL 的命令也适用于此型号(LBEE5PL2DL)。 现在请按照 AN14114 的第 2 部分“Wi-Fi RF 测试模式”来设置您的板子并开始 WiFi 5G RF 测试。 从你分享的 cat /proc/mwlan/adapter0/config 的输出结果来看,我没有发现任何可疑之处。唯一需要注意的是:请检查您的测试设备连接以及硬件连接。 同时,让我内部确认一下这两个模块是否支持射频测试。我确认的是:我们可以在 IW611 或 IW612 EVK 板上进行测试,但对于这两个模块,我需要检查是否需要进行任何硬件改造才能测试射频性能。 如有任何更新,我会通知您。 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 嗨,克里斯汀 我正在验证该命令,您是对的,但我不知道为什么这些参数(SHORT_PREAMBLE 和 ADVANCED_CODING)显示为 -1(表示为4294967295)。 或许在代码的最初实现中,它们被错误地设置为了 -1。不过,根据您的要求,现在我们可以生成 5 GHz (tx_frame) 的波形了。对于 tx_continuous,我可以看到波形,但幅度很低(几乎看不见)。 您可以在下图查看帧生成过程: 尝试触发连续信号时,我可以看到波形,但波形非常平滑。 我使用了上述配置。 我认为无法看到通道波形的问题是,我们设备中的噪声比生成的波形要大。我要求硬件团队使用功能更强大的频谱分析仪进行验证。我正在等待他们的回复,以便结束关于非生成波形的问题。 但是关于区域的问题,你认为这可以解释为什么有些波形没有生成吗?   Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 请尝试使用以下命令: echo "tx_continuous=1 0 0xAAA 0 3 0x1100" >> /proc/mwlan/adapter0/config 而不是使用 tx_frame 命令? 我在你之前的输出“cat /proc/mwlan/adapter0/config”中找到了 tx_frame=1 4352 0xaaa 1024 1 20 4294967295 0 0 4294967295 0 0 0 -1 -1 -1 -1 -1 -1 -1 05:43:3f:c4:51:ff 我担心它可能无法被正确识别。 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 是的,错误的区域/监管功能域配置也可以解释为什么某些5GHz Wi-Fi波形无法生成,或者为什么设备在某些信道上完全不发射信号。   你们的硬件团队是否打算使用功能更强大的频谱分析仪进行验证? 关于这个案子,我还能为您做些什么吗?   顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 你好,克里斯汀, 我认为这一确认以及他们在另一个无噪音环境下进行的测试证实,现在一切都运行正常了。 非常感谢您的支持。 很高兴见到你 Re: UM11490 and Bluetooth Classic 你好, @HelbertPaulino 感谢您的回复,很高兴听到一切都运行正常了。 那么,能否请您将我的回答标记为本帖的解决方案,以便我们关闭此问题? 此外,如果您将来有任何其他主题方面的问题,也请随时向我们创建新案例。 我们一直很乐意为您提供支持! 顺祝商祺! Christine。 Re: UM11490 and Bluetooth Classic 再次非常感谢你,克里斯汀。 我会这么做。 🙂
View full article
FS6500的故障标志清除行为 大家好, 我有一个关于 FS6500 故障标志清除行为的问题。   根据数据手册,MODE 寄存器(地址 0x15)内的 LPOOF(位 0)和 DFS(位 1)标志只能通过上电复位或寄存器读取操作清除。 然而,根据我的硬件测试:   向 MODE 寄存器写入数据还会意外地清除 LPOOF 和 DFS 故障位。   数据手册中没有说明写入操作可以清除这些状态标志。 您能否帮忙解释一下造成这种现象的根本原因?   这是硅芯片的预期行为还是未记录的副作用?   谢谢 & 此致敬礼   DEVKIT-MPC5744P FS6500 Re: Fault flag clearing behavior of FS6500 你好, 请检查您的书写说明是否正确。 在大多数软件驱动程序中,寄存器写入操作都是以读-修改-写 (RMW) 序列实现的。 如果数据手册规定读取 MODE 会清除 LPOOF/DFS,那么这些标志可能在读取阶段就已经被清除了。随后的写入操作只会造成写入操作导致清除的假象。 顺祝商祺! Peter
View full article
Update on S32K388 BIST issue: Soft reset causing peripheral init failure in App Hi NXP Support Team, Following up on the previous BIST hard reset issue: we applied your proposed change, and the BIST now successfully performs a soft reset instead. To adapt to this soft reset and avoid double MCU clock initialization, we initially kept the MCU clock initialization in the Application. However, after the BIST soft reset and jumping to the App, the clock re-initialization was taking an unusually long time. We suspect this delay and lock-up occurred because the clocks were already initialized by the Boot Manager, causing conflicts during the second attempt. To resolve that extreme delay, we removed the MCU clock initialization from the Application entirely, leaving it exclusively in the Boot Manager. Unfortunately, this has introduced a new issue: after jumping to the Application, the system now hangs during peripheral initialization (specifically FlexCAN), which points back to a clock availability issue. Could you advise on the correct clock configuration strategy here? Specifically, does the BIST soft reset disrupt the clocks initialized by the BM in a way that requires re-initialization in the App, and how can we properly hand off the clocks between the BM and App without causing lockups or extreme delays? Re: Update on S32K388 BIST issue: Soft reset causing peripheral init failure in App Hi @HazemIhab, I haven't found your previous BIST hard reset issue in any support ticket or community thread. I understand you see ST_DONE functional reset. After the reset the clock configuration is reset, so it needs to be initialized. If you use the RTD drivers, the Clock_Ip_InitClock() function resets all the clocks to a safe state first — which is probably the delay you see if you initialize the clocks in both the Boot Manager and the application. It can be configured in the Boot Manager only, but you need to make sure the driver enables all the clocks the application needs — in this case the FlexCAN clock. Also, all the system clocks must match one of the clock options listed in the RM, e.g. Table 156. Option A - High Performance mode (CM7_CORE_CLK @ 160 MHz) (For S32K388/S32K389). BR, Daniel Re: Update on S32K388 BIST issue: Soft reset causing peripheral init failure in App Hello @danielmartynek  Thanks for the explanation. To clarify our setup: our Boot Manager (BM) and Application (App) already use the exact same clock configuration, including the FlexCAN clock settings. To avoid the delay from the safe-state reset, we let the BM initialize all clocks and removed Clock_Ip_InitClock() from the App. However, when the App tries to initialize FlexCAN after the jump, the system still hangs with a clock-related error. Re: Update on S32K388 BIST issue: Soft reset causing peripheral init failure in App Hi @HazemIhab, I understand there is a fault exception, can you confirm? If so, you need to find more information about the exception to confirm it is really clock related. https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-HARDFAULT-Handling-Interrupt-DS3-5-RTD300/ta-p/1806259 https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX/ta-p/1595570 https://community.nxp.com/t5/S32K-Knowledge-Base/Fault-handling-on-S32K14x/ta-p/1114447 If there is no exception, but the execution is stuck in a loop, where exactly? Also, as I mentioned, all the system clocks must match one of the clock options listed in the RM, e.g. Table 156. Option A - High Performance mode (CM7_CORE_CLK @ 160 MHz) (For S32K388/S32K389) can you confirm? Thank you, BR, Daniel
View full article
使用 DMA 描述符接收大于 1024 字节的数据 (LPC55S69) 大家好, 考虑到 DMA 的最大传输大小为 1024 字节,我一直难以找到一种方法,通过 DMA 将大量数据(超过 2000 字节)接收到我的 LPC55S69 板。 我查看了示例“usart_dma_double_buffer_transfer”,但是其中一些函数已经过时,例如: DMA_PrepareTransfer() 变为 DMA_PrepareChannelTransfer(),DMA_SubmitTransfer() 变为 DMA_SubmitChannelTransfer(),DMA_CreateDescriptor() 变为 DMA_SetupDescriptor()。因此,我在填写这些新函数的新输入参数时有点迷茫,这些参数在示例中没有出现,主要是参数“xfercfg”,即新 DMA_SetupDescriptor() 中 DMA 描述符的传输配置。 我还查看了示例“dma_channel_chain”,它帮助我从另一个角度了解了一些新功能,但它并不完全符合我的需求。 此外,我还查看了NXP 社区的文章“DMA Ping-Pong 应用” ,但它与我正在使用的 LPC 板并不完全兼容。 在综合了我能从网上获取的信息,并绞尽脑汁敲击键盘之后,我终于达到了我想要的目标,即通过 DMA 接收大量数据。(将数据保存到 3 个不同的缓冲区中,每个缓冲区大小为 1024 字节) 因此,我借此机会分享这段代码,希望能对那些曾经和我一样迷茫的人有所帮助或提供一些指导。我也想尽我所能,将我从这个美好的社区学到的一切回馈给大家。 (希望在这里发帖没问题,因为这与其说是一个问题,不如说是一个可以讨论的话题。) 祝你好运! #include "fsl_usart_dma.h" #include "fsl_dma.h" #define NUMBER_DESCRIPTORS 3 #define DESCRIPTOR_TRANSFER_SIZE 1024 #define RX_BUFFER_SIZE 1024 uint8_t g_data_buffer[RX_BUFFER_SIZE]; uint8_t g_data_1[RX_BUFFER_SIZE]; uint8_t g_data_2[RX_BUFFER_SIZE]; uint8_t g_data_3[RX_BUFFER_SIZE]; /* Custom Descriptors (Must be 16-byte aligned) */ SDK_ALIGN(dma_descriptor_t g_Desc[NUMBER_DESCRIPTORS], 16); /* equal to writing: __attribute__((aligned(FSL_FEATURE_DMA_LINK_DESCRIPTOR_ALIGN_SIZE))) dma_descriptor_t g_Desc[NUMBER_DESCRIPTORS] = {0}; or DMA_ALLOCATE_LINK_DESCRIPTORS_AT_NONCACHEABLE(g_Desc, NUMBER_DESCRIPTORS); */ /* Function definitions ****************************************************************************/ //Initialising Rx DMA to receive data bigger than 1024 bytes. void init_USART_DMA(void){ //Channel configuration for DMA descriptor dma_channel_config_t channelConfig; /* 1. System/Peripheral Level Init */ // Done in peripheral.c, initialized the functions USART_Init(), DMA_EnableChannel(), DMA_CreateHandle(), USART_TransferCreateHandleDMA(). /*I have not used the function DMA_SubmitChannelDescriptor(), by giving as input the g_ChannelTable, as it would not allow to receive data. the g_ChannelTable variable should be initalized as follow: //Allocates the mandatory, 512-byte aligned master table in RAM used by the hardware to manage all DMA channels SDK_ALIGN(dma_descriptor_t g_ChannelTable[FSL_FEATURE_DMA_MAX_CHANNELS], 512); then call the function here in the code DMA_SubmitChannelDescriptor(FLEXCOMM5_USB_PC_RX_Handle,g_ChannelTable); */ /* 2. Enable USART RX DMA requests */ USART_EnableRxDMA(FLEXCOMM5_USB_PC_PERIPHERAL, true); /* 3. Prepare the Descriptor Configuration Variable Flags */ //Intermediate Descriptors, where it jumps from one to another /* Common XFER configuration options for intermediate descriptors (1, 2,...) */ /* reload = true (keeps the chain moving to the next descriptor) */ /* intA = false (we only want the final interrupt when everything is done) */ uint32_t intermediatexfercfg = DMA_CHANNEL_XFER( true, /* reload: true to move to the next descriptor */ false, /* clrTrig: false */ false, /* intA: false */ false, /* intB: false */ sizeof(uint8_t), /* width: 1 byte for USART char processing */ kDMA_AddressInterleave0xWidth, /* srcInc: 0x (read from fixed USART FIFO address) */ kDMA_AddressInterleave1xWidth, /* dstInc: 1x (increment buffer pointer by 1 byte) */ DESCRIPTOR_TRANSFER_SIZE /* totalBytes: DESCRIPTOR_TRANSFER_SIZE */ ); //Final Descriptor, where it stops jumping to another descriptor /* Final XFER configuration options for the last descriptor */ /* reload = false (this is the end of the chain) */ /* clrTrig = true (stop the DMA hardware channel) */ /* intA = true (fire the completion interrupt) */ uint32_t finalxfercfg = DMA_CHANNEL_XFER( false, /* reload: false because this is the terminal descriptor */ true, /* clrTrig: true to clear peripheral hardware requests */ true, /* intA: true to fire our completion interrupt */ false, /* intB: false */ sizeof(uint8_t), /* width: 1 byte for USART char processing */ kDMA_AddressInterleave0xWidth, /* srcInc: 0x (read from fixed USART FIFO address) */ kDMA_AddressInterleave1xWidth, /* dstInc: 1x (increment buffer pointer by 1 byte) */ DESCRIPTOR_TRANSFER_SIZE /* totalBytes: DESCRIPTOR_TRANSFER_SIZE */ ); /* 4. Configure the Custom Descriptors structure */ //Descriptor #0 DMA_SetupDescriptor( &g_Desc[0], intermediatexfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_1[0], /* Destination address: RAM buffer */ &g_Desc[1] /* Point to next descriptor */ ); //Descriptor #1 DMA_SetupDescriptor( &g_Desc[1], intermediatexfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_2[0], /* Destination address: RAM buffer */ &g_Desc[2] /* Point to next descriptor */ ); //Descriptor #2 (final) DMA_SetupDescriptor( &g_Desc[2], finalxfercfg, (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* Source address: USART FIFO Read Register */ &g_data_3[0], /* Destination address: RAM buffer */ NULL /* Final descriptor, does not move to another*/ ); /* 5. Set up Head Transfer to execute first descriptor first */ /* Point the initial hardware channel block straight to the first buffer to save data */ DMA_PrepareChannelTransfer( &channelConfig, /* 1. Pointer to configuration structure */ (void *)&FLEXCOMM5_USB_PC_PERIPHERAL->FIFORD, /* 2. Source start address */ (void *)&g_data_1[0], /* 3. Destination start address */ DMA_CHANNEL_XFER( /* 4. Initial transfer settings bitmask */ true, /* reload: true to step into linked descriptor */ false, false, false, sizeof(uint8_t), kDMA_AddressInterleave0xWidth, kDMA_AddressInterleave1xWidth, DESCRIPTOR_TRANSFER_SIZE ), kDMA_PeripheralToMemory, /* 5. Transfer type enum path */ NULL, /* 6. Hardware Trigger parameters (NULL uses default peripheral request) */ &g_Desc[1] /* 7. Address of next descriptor. (including already 2nd descriptor, as this will already transfer all the data to begining of rxBuffer like first descriptor would have done*/ ); DMA_SubmitChannelTransfer(&FLEXCOMM5_USB_PC_RX_Handle,&channelConfig); DMA_StartTransfer(&FLEXCOMM5_USB_PC_RX_Handle); } LPC55xx 外设 Re: Using DMA Descriptors to receive Data bigger than 1024 bytes (LPC55S69) 你好, 感谢您分享您的研究结果和代码。社区是分享发现、提出问题、提供指导和支持的好地方,所以我们感谢您在这里发帖。 如果您需要任何进一步的帮助,请与我们联系。 此致敬礼,路易斯
View full article
S32K312 ADCトリガーRTD3.0.0 S32DS3.5を使ったMCUのウェイクアップ こんにちは、 私はS32k312コントローラーmini EVBKITを使っており、MCUのスリープとウェイクアップの機能チェックに使っています。ADCで低いしきい値と高いしきい値電圧値を付けることで、ADC割り込みを通じてMCUのウェイクアップを実現しようとしています。この機能を使ってMCUを起動させてください。 Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 ご説明いただきありがとうございます。 ご指摘いただいたとおり、スタンバイウェイクアップにLPCMPを使用することを検討してみます。しかし、アプリケーション要件に関しては、ADC割り込みウェイクアップ機能の実装が必要です。 ADCを外部割り込みウェイクアップとして特定設定できるかどうか、MEXファイルの検証を手伝ってもらえますか? Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 @LavanyaPilli さん。 もちろん。PTA1(ADC0_S9)を外部割り込みウェイクアップとして使用している場合は、割り当てられたWKPUチャネルを見つけるためにS32K312_IOMUX.xlsxファイルを参照できます: PTA1はWKPU[5]ですが、4つの内部ウェイクアップソースがあるため、オフセットとして+4も追加する必要があります。これにより、PTA1はWKPU_CH_9になります。 WKPUユニットを初期化し、それぞれのチャネルを設定する必要があります: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); 以下の低消費電力の例を参考にしてください: S32K3の低消費電力管理ANとデモ 例:CAN-0-RXおよびGPIOスイッチDS3.5 RTD300を使用してS32K312スタンバイ・モードからウェイクアップする [RTD600 IP] S32K312EVB-Q172 スタンバイRAM GPIOウェイクアップ よろしくお願いします、 ジュリアン Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 @Julián_AragónM さん、 参考資料をありがとうございます。大変参考になりました。現在、CANベースのウェイクアップ構成を使用しています。ADCベースのウェイクアップ設定については、後日評価する予定です。
View full article
xaf_record 示例在 SDK_26_06_00_MIMXRT700-EVK 中因 comp_setup 失败而失败 板: MIMXRT700-EVK SDK 版本: SDK_26_06_00_MIMXRT700-EVK 示例:SDK_26_06_00_MIMXRT700-EVK/mcuxsdk/中间件/cadence/multicore-xaf/examples/xaf_record/cm/ 版本配置:默认示例,未做任何修改 使用 shell 命令 record_dmic en 启动 DMIC 录音后 DSP 报告元器件设置失败,导致录制管道无法正常工作。 控制台输出 ****************************** DSP音频框架演示开始 ****************************** [CM33 主控] 配置编解码器 [DSP_Main] Cadence Xtensa 音频框架 [DSP_Main] 库名称:音频框架(无主机) [DSP_Main] 库版本:3.6 [DSP_Main] API 版本:3.4 [DSP_Main] 开始 [DSP_Main] 已建立 RPMsg 连接 [CM33 主控] DSP 图像已复制到 DSP TCM [CM33 主程序][APP_DSP_IPC_Task] 开始 [CM33 主程序][APP_Shell_Task] 开始 版权所有 2024 NXP >> record_dmic en [CM33 CMD] 设置 VIT 语言为英语 [DSP_Main] 通道数:1,采样率:16000,PCM 带宽:32 [CM33 CMD] [APP_DSP_IPC_Task] 来自 DSP 的响应,命令:13,错误:0 [DSP 录音] 音频设备已准备就绪 [CM33 CMD] DSP DMIC 录音已开始 [DSP 记录] comp_setup 失败:4294967294 [CM33 CMD] 要查看 VIT 功能,请说出唤醒词和命令 [CM33 CMD] [APP_DSP_IPC_Task] 来自 DSP 的响应,命令:13,错误:4294967295 [CM33 CMD] DSP DMIC 录音已开始 [CM33 CMD] 要查看 VIT 功能,请说出唤醒词和命令 预期行为 执行后: record_dmic en DMIC 录制管道应成功初始化,从而实现音频捕获和 VIT 唤醒词检测,而不会出现任何元器件设置错误。 实际行为 DSP报告: [DSP 记录] comp_setup 失败:4294967294 随后是IPC的回应: 错误:4294967295 因此,录制管道无法按预期运行。 要求 请问您能否帮忙辨认以下物品? 默认 xaf_record 示例中导致 comp_setup 失败(错误代码 4294967294)的原因是什么? 这是否表明缺少 DSP 元器件、编解码器配置问题或其他初始化问题? SDK 26.06.00 中的 xaf_record 示例是否存在已知问题或补丁? 使用 record_dmic 命令之前是否需要任何额外的配置步骤? 非常感谢您能提供任何关于调试此问题的指导。 评估板 Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 嗨@suhas1503 , 请问您能否提供一下您正在使用的集成开发环境(IDE)的相关信息?是MCUXpresso IDE还是VS Code? 我尝试在 MCUXpresso IDE 中重现该问题,但运行正常。 在您的日志信息中,我没有找到任何与“[DSP VIT]”相关的内容。我怀疑这可能是由于本地项目中缺少内容造成的,而不是软件错误。 此致, 加文 Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 我们已从以下链接下载了 SDK;同时附上截图;我们下载的 SDK 版本为 26.06.00。 https://mcuxpresso.nxp.com/download/c7b3a37a7e9e773a92291031541e9b58 我们正在通过命令行进行编译和烧录。 版本命令: west build -b mimxrt700evk 中间件/cadence/multicore-xaf/examples/xaf_record/cm -d build/ -- -Dcore_id=cm33_core0 -Dtarget=flash_debug 闪存命令: LinkServer flash MIMXRT798S:MIMXRT700-EVK load dsp_xaf_record_cm33_core0.elf Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 请查收以上回复。 Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 我使用相同的软件包重现了该问题。 我将展开内部调查,看看是否存在任何出入。这可能需要一些时间。与此同时,我建议您继续基于 MCUXpresso IDE 项目进行开发,以节省时间。 一旦基于 Arm GCC 工具链的 SDK 代码包,软件包的问题得到解决,你就可以移植你的项目了。
View full article
etpuc mpc5775 eTPUCのcw関数セレクタから関数の1つを実行させたいです。私はetpucの開始/終了RAMアドレスを認識しています(mpc5777c_vars_c.hと同じです)。それに応じて、etpuc 用にmy_system_etpu_init を修正しました。私は(crankのような)関数ファイルをコピーして、etpuc用の新しいファイルを生成するだけです。 すべてを実行してプログラムを中断すると、デバッガーが停止します。PC: "0x800400" のソースが利用できません 何が問題なのでしょうか? Re: etpuc mpc5775 以下にいくつかのアプリケーションノートがありますが、ETPUイニシエーションコードについて何が変更されましたか? AN5374:アプリケーションにおけるeTPUライブラリの使用 – アプリケーションノート AN4907:エンジン制御eTPUライブラリ – アプリケーションノート [[ ## completed ##]] AN2864:eTPUの一般的なC機能 – アプリケーションノート AN4908:エンジン制御eTPUデモアプリケーション – アプリケーションノート [[ ## completed ##]] Re: etpuc mpc5775 eTPUコードはどのように生成されたのですか?関数セレクタを使って完全な関数セットを生成しましたか?それともCRANK関数ファイルをコピーしただけですか? あなたの修正されたmy_system_etpu_init()実装を教えてもらえますか? 初期化中に生成されたeTPUコードイメージはSCMに正常にロードされましたか? 生成されたeTPUプロジェクトファイル(例:)etpu_set.c、etpu_set.h)? PCは常に0x800400で停止するのですか、それとも毎回異なるのですか?
View full article
S32K388 JumpApp 仅在核心 0 处于活动状态时运行。 我创建了一个引导加载程序,并将其放置在地址 0x400000 到 0x420000 处。每次我通过串口更新程序时,只有核心 0 继续运行。如何才能让其他核心也运行起来? S32_SCB->VTOR = 0x00422000; __asm volatile(         "msr msp, % 0" : : "r" (appStack) : “记忆” ); ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. 嗨@zhangyu5454 , 您可以在启动代码中启用核心。请参阅默认 S32DS 项目的启动代码(startup_cm7.s)。 例如,如果 CM7_2_ENABLE == 1,则启动代码将在系统启动期间启用 CM7_2。 也可以稍后通过 CM7_0 应用程序启用内核,方法是直接配置相关寄存器,或者使用 MCU MCAL 驱动程序或 Power_Ip 驱动程序。请参考以下示例: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889 BR,丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active. 感谢您的回复。我尝试使用 Power_Ip,但是当程序中出现“Power_Ip_Init(&Power_Ip_HwIPsConfigPB);”这行代码时,调试过程会自动结束。此外,即使我不按下 RESET 按钮,RESET 指示灯仍然亮着,导致设备完全无法运行。当我使用 IP_MC_ME 时,程序运行正常,但没有产生任何结果。其他元器件也无法启动。这段代码似乎对 388 型号不太适用。 Re: S32K388 JumpApp Only runs with core 0 active. 嗨@zhangyu5454 , 如果 MCU 发生系统RESET,则需要读取RESET源。 您可以致电 Power_Ip_GetResetReason(); 在 main() 函数开头之前 Power_Ip_Init(); 根本原因可能是 V15 开关电源——它必须与硬件设计相匹配。 BR,丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 根据您的建议,我将在 int main(void) 部分中实现它。调用了 Power_Ip_GetResetReason() 函数。然而,测试结果依然没有改变。   int main(void) { Power_Ip_GetResetReason(); Power_Ip_Init(&Power_Ip_HwIPsConfigPB); Clock_Ip_Init(&Mcu_aClockConfigPB[0]); Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); 当(1) { Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 嗨@zhangyu5454 , 那么RESET的原因是什么? 如果让我猜的话,应该是POR/LVR。 V15在PCB板上是如何供电的? 您是否已相应地配置 Power_Ip? 此致, 丹尼尔 谢谢!
View full article
无法为 SE051C2 生成代码 各位同事,大家好!我正在尝试将 SE051 与 FRDM-MCXN947 开发板集成。我参考了 AN13030 指南,并按照所有步骤操作,直到运行 Python 脚本生成代码,但遇到了以下错误: 找不到“cmake.exe”。假设'cmake.exe'已在路径中并且正在运行。 信息: __main__ :正在预处理 C:\Users\yash.bawankar\Downloads\se05x_mw_v04.08.01\simw-top/ext/open62541/tools/schema/Opc.Ua.NodeSet2.Minimal.xml 信息: __main__ :正在为后端生成代码:open62541 信息: __main__ :节点集生成代码已成功打印 请告诉我我遗漏了什么。 FRDM 培训 MCX N 安全(Edgelock | 安全启动 | OTP) Re: Unable to generate code for SE051C2 你好@yashbawankar , 你是打算在窗户下面建造微波设备吗?如果答案是肯定的,请确保满足以下先决条件: • 已安装 Visual Studio • 已安装 Python 3.8 32 位版本 有关先决条件安装步骤的更多详细信息,请参阅https://www.nxp.com/docs/en/application-note/AN12398.pdf 。您可以在https://www.nxp.com/docs/en/application-note/AN12398.pdf的第 8 章中找到 cmake 安装步骤。 希望对您有所帮助。 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 -------------------------------------------------------------------------------
View full article
S32K388 JumpApp Only runs with core 0 active. I created a bootloader program and placed it at addresses 0x400000 to 0x420000. Whenever I update the program via serial port, only Core 0 continues to run. How can I enable the other cores to also run? S32_SCB->VTOR = 0x00422000;     __asm volatile(         "msr msp, %0"         :         : "r"(appStack)         : "memory");     ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. Hi @zhangyu5454, You can enable the cores in the startup code. Refer to the startup code (startup_cm7.s) of the default S32DS project. For example, if CM7_2_ENABLE == 1, the startup code will enable CM7_2 during system startup. The cores can also be enabled later from the CM7_0 application, either by configuring the relevant registers directly or by using the MCU MCAL driver or the Power_Ip driver. Refer to this example: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889 BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active. Thank you for your response. I have tried using Power_Ip, but when the line “Power_Ip_Init(&Power_Ip_HwIPsConfigPB);” appears in the program, the debugging process automatically ends. Moreover, even when I don’t press the reset button, the reset light remains illuminated, resulting in the device not being able to operate at all. When I use IP_MC_ME, the program runs normally, but it doesn’t produce any results. The other components also fail to start. This code snippet seems not to work well for model 388. Re: S32K388 JumpApp Only runs with core 0 active. Hi @zhangyu5454, If the MCU goes through a system reset, you need to read the source of the reset. You can call  Power_Ip_GetResetReason(); at the beginning of main() before  Power_Ip_Init(); Likely root cause is the V15 Switched-mode power supply - it must match the HW design. BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 According to your advice, I will implement it in the int main(void) section. Power_Ip_GetResetReason() was called. However, the test results remain unchanged.   int main(void) { Power_Ip_GetResetReason();         Power_Ip_Init(&Power_Ip_HwIPsConfigPB);     Clock_Ip_Init(&Mcu_aClockConfigPB[0]);         Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); while (1) { Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hi @zhangyu5454, What is the reset reason then? If I had to guess, it would be a POR/LVR. How is V15 powered on the PCB? Do you configure Power_Ip accordingly? Regards, Daniel Thank you.
View full article
SDK_26_06_00_MIMXRT700-EVK で、xaf_record の例が comp_setup の失敗により失敗する ボード: MIMXRT700-EVK SDK Version: SDK_26_06_00_MIMXRT700-EVK 例: SDK_26_06_00_MIMXRT700-EVK/mcuxsdk/middleware/cadence/multicore-xaf/examples/xaf_record/cm/ ビルド構成:変更なしのデフォルト例 シェルコマンド record_dmic en を使用して DMIC 録音を開始した後 DSPはコンポーネントセットアップの失敗を報告し、記録パイプラインが正しく機能しなくなります。 コンソール出力 ****************************** DSPオーディオフレームワークのデモ開始 ****************************** [CM33 メイン] コーデックの設定 [DSP_Main]Cadence Xtensa オーディオフレームワーク [DSP_Main]ライブラリ名:Audio Framework(ホストレス) [DSP_Main]ライブラリバージョン:3.6 [DSP_Main]APIバージョン:3.4 [DSP_Main] スタート [DSP_Main] RPMsgリンクを確立しました [CM33メイン]DSPイメージをDSP TCMにコピー [CM33メイン][APP_DSP_IPC_Task] スタート [CM33メイン][APP_Shell_Task] スタート 著作権 2024 NXP >> record_dmic en [CM33 CMD]VIT 言語を en に設定する [DSP_Main]チャネル数1、サンプリングレート16000、PCM幅32 [CM33 CMD][APP_DSP_IPC_タスク]DSPからの応答、cmd: 13、エラー: 0 [DSPレコード]オーディオデバイス準備完了 [CM33 CMD]DSP DMIC録音開始 [DSP記録] comp_setup故障:4294967294 [CM33 CMD]VIT機能を見るにはwakewordとcommandを選んでください [CM33 CMD][APP_DSP_IPC_タスク]DSPからの応答、cmd: 13、error: 4294967295 [CM33 CMD]DSP DMIC録音開始 [CM33 CMD]VIT機能を見るにはwakewordとcommandを選んでください 期待される動作 実行後: record_dmic en DMIC録音パイプラインは正常に初期化され、コンポーネント設定エラーなしに音声キャプチャやVITウェイクワード検出が可能になります。 実際の行動 DSPの報告は以下の通りです: [DSP記録] comp_setup故障:4294967294 続いて、IPCからの応答が以下のように表示されます。 エラー: 4294967295 その結果、レコーディングパイプラインが期待どおりに機能しない。 要望 以下の点を特定するのを手伝ってもらえますか? デフォルトのxaf_recordサンプルで、comp_setupエラー4294967294が発生する原因は何ですか? これはDSPコンポーネントの欠落、コーデック設定の問題、あるいは他の初期化の問題を示しているのでしょうか? SDK 26.06.00のxaf_record例に対して既知の問題やパッチはありますか? record_dmicコマンドを使用する前に、追加の設定手順が必要ですか? この問題のデバッグに関するアドバイスをいただければ幸いです。 評価ボード Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 上記の回答をご確認ください。 Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 同じパッケージで問題を再現できました。 内部調査を実施し、矛盾点がないか確認します。これには時間がかかるかもしれません。その間、時間を節約するためにMCUXpresso IDEプロジェクトをベースに開発を続けることをお勧めします。 ARM GCCツールチェーンに基づくSDKパッケージの問題が解決したら、プロジェクトを移植できます。 Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK こんにちは@suhas1503さん 使っているIDEについて何か情報を教えていただけますか?MCUXpresso IDEですか、それともVS Codeですか? MCUXpresso IDEで問題を再現しようとしましたが、問題なく動作しました。 ログ情報には「[DSP VIT]」に関するものは見つかりませんでした。これはソフトウェアのバグというよりは、ローカルプロジェクトにコンテンツが不足していることが原因かもしれません。 よろしくお願いします、 ギャビン Re: xaf_record Example Fails with comp_setup failure in SDK_26_06_00_MIMXRT700-EVK 以下のリンクからSDKsをダウンロードしました。また、スナップの取り付けも行います。SDKsバージョン26.06.00をダウンロードしました https://mcuxpresso.nxp.com/download/c7b3a37a7e9e773a92291031541e9b58 [[ ## completed ##]]コマンドライン経由でコンパイルとフラッシュを行っています ビルドコマンド: west build -b mimxrt700evk middleware/cadence/multicore-xaf/examples/xaf_record/cm -d build/ -- -Dcore_id=cm33_core0 -Dtarget=flash_debug フラッシュコマンド: LinkServer フラッシュ MIMXRT798S:MIMXRT700-EVK ロード dsp_xaf_record_cm33_core0.elf
View full article