Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
SAF85xx HSEアップデート SMR こんにちは、NXPさん。 コードの内容変更 により署名バイトのみが変更され 、コードサイズ、開始アドレス、キー、署名へのポインタなどが変更されていない場合でも、SMRを更新する必要がありますか? Re: SAF85xx HSE Update SMR こんにちは、 SMR(セキュアメモリ領域)エントリには、HSEがアプリケーションイメージを検証するために使用するメタデータが含まれています。たとえ: サイズは変わりません 開始アドレスは変わりません キーハンドルは変更なし 署名ポインターは変更されません …コードの内容に変更を加えると署名が変わり、HSEは新しい署名を検証する必要がある。 このため、署名を保持するSMRエントリを更新された署名バイトで書き換える必要があります。 SMRエントリは認証済みブートチェーンの一部です。HSEは、対応するSMRエントリに新しい署名が反映されていない限り、更新されたバイナリを検証できません。 参考情報:AptivにはNXPの専属FAEがおりますので、詳細についてはお気軽にお問い合わせください。 よろしくお願いいたします。 ピーター Re: SAF85xx HSE Update SMR ご回答ありがとうございます。 Re: SAF85xx HSE Update SMR こんにちは、 もし私が新しいアプリケーション+新しい署名(新しいアプリケーションと地図)をフラッシュした場合はどうでしょうか。「コードサイズ、開始アドレス、キー、署名へのポインタ」が変更されない場合、SMRを再インストールする必要がありますか?
View full article
asoc-simple-card:升级到内核 6.18.x 后出现解析错误 您好, 这是我为内核 6.6.52 编写的工作 DT: / { codec: max98357a@0{ compatible = "maxim,max98357a"; #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&sdmode_en>; sdmode-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; status = "okay"; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "SAI3 MAX98357A"; simple-audio-card,format = "i2s"; simple-audio-card,widgets = "Speaker","Speakers"; simple-audio-card,routing = "Speakers","Speaker"; simple-audio-card,bitclock-master = <&cpu_dai>; simple-audio-card,frame-master = <&cpu_dai>; cpu_dai: simple-audio-card,cpu { sound-dai = <&sai3>; clocks = <&clk IMX8MP_CLK_SAI3>; clock-names = "mclk"; //system-clock-frequency = <&clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; dai-tdm-slot-num = <2>; dai-tdm-slot-width = <32>; }; codec_dai: simple-audio-card,codec { sound-dai = <&codec>; //clocks = <&clk IMX8MP_CLK_SAI3>; }; }; }; &sai3{ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai3>; #sound-dai-cells = <0>; clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_AUDIO_PLL1_OUT>, <&clk IMX8MP_AUDIO_PLL2_OUT>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k"; assigned-clocks = <&clk IMX8MP_CLK_SAI3>, <&clk IMX8MP_AUDIO_PLL1>, <&clk IMX8MP_AUDIO_PLL2>; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>, <&clk IMX8MP_AUDIO_PLL1_OUT>; // Try common MCLK rates that divide well to 48 kHz multiples // Option A: 24.576 MHz (very common for MAX98357A + 48 kHz) assigned-clock-rates = <24576000>, // PLL2 for 48 kHz <22579200>; // PLL1 for 44.1 kHz // Option B (if 44.1 kHz needed later): use PLL1 + 22579200 //assigned-clock-rates = <22579200>; fsl,sai-asynchronous; fsl,sai-mclk-direction-output; status = "okay"; }; 升级到内核 6.18.20 后,SAI3 无法探测,而且我的声卡也无法工作。 启动日志显示: 平台声音:延迟探测待处理:asoc-simple-card:解析错误 从内核 6.6.52 到 6.18.x,DT 语法有哪些变化?我没有找到任何相关信息。我该如何调查解析错误? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: asoc-simple-card: parse error after upgrading to kernel 6.18.x 你好, 能否请您分享一下您的dmesg日志? 顺祝商祺! Re: asoc-simple-card: parse error after upgrading to kernel 6.18.x 嗨,豪尔赫, dmesg 日志和运行设备树(./dtc -I fs -O dts /proc/device-tree > /tmp/running.dts)随附的。
View full article
When GUIGuider-2.0.0 generates C code, the folder under the generated folder is completely empty. When using GUIGuider-2.0.0 on Windows 11 to generate C code, the folders under the "generated" folder are all empty, even though the logs show successful generation. This happens on the same computer as GUI-Guider-1.10.1-GA, which generates the code perfectly. I've tried various methods, including disabling antivirus software and running it as administrator, but the problem persists. Has anyone encountered the same issue? I would appreciate any help. 21:10:08 INFO [gg_event] gg_event_layer_sys.c Generated 21:10:08 INFO [gg_event] gg_event_layer_top.c Generated 21:10:08 INFO [gg_event] gg_event_layer_bottom.c Generated 21:10:08 INFO update-sdk Started 21:10:08 INFO Target Executor initialized 21:10:08 SUCCESS SDK template updated successfully 21:10:08 SUCCESS Operation completed in 0.00s 21:10:08 INFO [gg_event] gg_event_screen.c Generated 21:10:08 INFO [gg_event] gg_event.h Generated 21:10:08 INFO [gg_event] Generation completed 21:10:08 SUCCESS === Code generation completed successfully === Re: GUIGuider-2.0.0生成C代码时generated文件下面的文件夹全是空的 I reinstalled the system but it still didn't work; GUI Guider 1.10 works fine. I added a button to a blank project. Re: GUIGuider-2.0.0生成C代码时generated文件下面的文件夹全是空的 Hello @IFYINT , Sorry to keep you waiting. Could you please share the project where the problem occurred? We'll try to reproduce it. BR Celeste Re: GUIGuider-2.0.0生成C代码时generated文件下面的文件夹全是空的 I tried it on my Windows 11 PC, but I couldn't reproduce your problem: Would it be convenient for you to try a different computer? Re: GUIGuider-2.0.0生成C代码时generated文件下面的文件夹全是空的 It works on a different computer and can generate files normally, but it's not working on this computer. It worked fine on version 1.10 before.
View full article
i.MX RT1050 下载算法 我现在开发环境是MCUXPRESSO IDE ,用的是i.MX RT1050 。我了解到因为i.MX RT1050 没有内部flash,所以在使用外部flash时需要下载算法。但是这个下载算法又和自己选用的flash有关。官方有没有说明怎么样得到自己想要的下载算法可以快速用起来? Re: i.MX RT1050 下载算法 Hi SDFDSFSF , 建议您按照以下顺序做: 1. 在工程属性里选择外部Flash下载算法,NXP提供了一些主流Flash下载算法。 您可以右键工程->Properties->MCU settings->Memory details选择NXP支持的flash驱动: MCUXpresso的flash驱动通常放在nxp\LinkServer_xx.x.xx\binaries\Flash下面,以.cfx为扩展名。 2. 如果选择的Flash支持SFDP,优先尝试SFDP driver 在MCUXpresso中可以选择类似MIMXRT1050_SFDP_QSPI.cfx这样的Driver。这类 SFDP driver 的意义是通过 flash 自描述参数减少对具体料号专用算法的依赖。 3. 使用模板自己做 请参考应用手册 https://www.nxp.com/docs/en/application-note/AN13386.pdf 生成客户自定义cfx文件。修改时关键参数要来自外部flash datasheet和SDK里的flexspi_nor_polling demo的测试结果。 除了下载算法,还需要XIP/Boot Header配置,请参考Solved: Flash interface initialization - NXP Community  以上是基本的方法。您可以告诉更具体的情况,比如您使用的是什么型号的Flash,您现在进行到哪一步遇到什么具体的困难,这样能更好的帮助到您。 Best Regards, Shelly Zhang i.MX RT1050 下载算法 我用的是JLINK,在MCUXpresso中选择的是MIMXRT1050_SFDP_QSPI.cfx。下载失败 Re: i.MX RT1050 下载算法 怎么样自己做一个JLINK在MCUXpresso ide里面用的 imxrt1052的现在算法? 我的flash是WINBOD 25Q256JVEQ. 我现在的MCUXpresso ide版本是MCUXpresso IDE v25.6。SDK_EVBK是26.06.00。我不知道用哪个例程可以修改生成自己想要的下载算法。 Re: i.MX RT1050 下载算法 Dear @SDFDSFSF , 参考示例在nxp/LinkServer目录下,工程名为iMXRT1050_QSPI: 如果你的引脚跟评估板不一样,需要修改引脚配置。Flash的配置也需要根据datasheet修改。 请确认以下事项: 1. Flash硬件引脚是否配置正确。必须根据RT1050硬件开发手册配置FlexSPI引脚: 只能选择A组或B组,FlexSPI_DQS需要悬空。 2. 在SDK中导入evkbimxrt1050_flexspi_nor_polling_transfer的example,根据flash的datasheet修改flash的配置。(这步可以省略,这步只是为了验证flash的配置是否正确) 3. 将正确的flash配置修改到工程iMXRT1050_QSPI。这步请参考 https://www.nxp.com/docs/en/application-note/AN13386.pdf Best Regards, Shelly Zhang Re: i.MX RT1050 下载算法 可能是您的硬件引脚配置跟评估板有差异,建议您修改iMXRT1050_QSPI工程自己生成cfx文件。 Re: i.MX RT1050 下载算法 我再MCUXpresso IDE下面用JLINK 有关系吗?我看到有的说在是MCXPpresso IDE算法仅能在CMSIS-DAP类型仿真器下使用?
View full article
S32K148EVB-Q176 收到的却是 UJA1131 而不是 UJA1132 您好, 我最近购买了一块S32K148EVB-Q176板。根据文档和原理图,我原本以为它会配备 UJA1132,但我收到的板子却是 UJA1131。 正因如此,我只有一个 LIN 接口,而我原本期望的是 UJA1132 的功能。 我只是想问一下这是否正常。S32K148EVB-Q176 是否有不同版本,配备不同的 SBC,还是我收到了错误的板? 谢谢! Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 你好@sousou54 , 感谢您提交的报告。目前该问题正在调查中。 请您提供产品包装盒上白色大标签的照片?标签上的信息可以帮助我们识别板的制造细节。 由于标签可能包含产品特定信息,您可以私信分享照片,或者通过开通支持案例(支持)来分享照片,而不是公开发布。 此致, 朱利安 Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 你好@sousou54 , 特此通知,我已收到您的照片,并已转发给相关团队。 我正在等待回复。感谢您的理解与合作。 此致, 朱利安 Re: S32K148EVB-Q176 received with UJA1131 instead of UJA1132 嗨@sousou54 , 有关此事的更多信息,请联系您的 NXP 代表或您购买此套件的代理商。他们应该能够提供帮助。 此致, 朱利安
View full article
通过禁用 i.MX95 上的 CPU/GPU/VPU 来降低功耗 您好,NXP, 我们正在寻找降低基于 i.MX95 的系统整体功耗的方法。 请问您能否帮忙解答以下问题? 是否可以在不需要时完全关闭单个 CPU 核心的电源? 如果我们的应用程序不使用 GPU 和 VPU,是否可以完全关闭它们? 如果不需要使用 CPU/GPU/VPU,是否可以在启动后默认禁用它们以进一步降低功耗?(通过设备树?) 是否有推荐的软件配置或参考文档可以实现最低的功耗? 我们的电路板支持包 基于 Yocto 5.2 / Linux 6.12.x。 谢谢。 顺祝商祺! 肖恩 Linux Re: Reducing Power Consumption by Disabling CPU/GPU/VPU on i.MX95 关于您的问题: 是否可以在不需要时完全关闭单个 CPU 核心的电源? A:是的,可以。 如果我们的应用程序不使用 GPU 和 VPU,是否可以完全关闭它们? A:是的,如果不用它们的话。 如果不需要使用 CPU/GPU/VPU,是否可以在启动后默认禁用它们以进一步降低功耗?(通过设备树?) 答:是的,对于 GPU/VPU 类平台设备,通常的做法是将相关的设备树节点状态设置为“禁用”;这样 Linux 就不会注册/探测该设备。 是否有推荐的软件配置或参考文档可以实现最低的功耗? A:我们有 AN14449 — i.MX 95 功耗测量:测量低功耗用例、BCU 程序、DSM、Linux 挂起和 BBSM 的主要参考。 如有任何疑问,请随时联系我们。 祝你今天过得愉快
View full article
S32K344 QSPI Initializes SCLK不按我们希望出来 我用S32K344 LQFP176 做一个访问QSPI外设的产品,我们期望把QSPI做成和LSPI类似的应用,不是用QSPI访问FLASH,而是普通的设备。 我已经配置了时钟树QSPI_SFCK为20MHz,也将相关FLASH的寄存器关掉了,使用了LUT表,调试过程中也看到LUT执行了,但是QSPI的SCLK没有产生,SD0-SD3上面有超高速的波形出来。可以帮我看看怎么使用这个QSPI访问非FLASH设备吗? Re: S32K344 QSPI Initializes SCLK不按我们希望出来 S32K344 QuadSPI 模块主要用作串行闪存接口,而不是用作任意 QSPI 外设的通用 LSPI 类接口。QSPI_SFCK 时钟配置仅为 QuadSPI 模块提供时钟源;它不会自动生成外部 SCLK。外部 SCKFA 信号仅作为闪存导向的 LUT/IP 命令引擎执行的有效 QuadSPI 命令序列的一部分而生成。因此,如果连接的设备不遵循类似闪存的命令/地址/数据协议,或者 LUT 序列/引脚配置与此类事务不匹配,则该行为可能不适合此应用。对于通用外部设备,如果所需的协议可以在该设备中实现,则应使用 LSPI。如果必须使用 QuadSPI,则外部设备协议需要与 QuadSPI 闪存式事务模型兼容,并且需要相应地检查 LUT 序列、引脚复用、片选、命令/地址/数据阶段和 IP 命令触发。
View full article
S32K348-GPIO EIRQ 到 DMA 请求 尊敬的恩智浦技术支持团队: 我现在尝试的方法,将 GPIO PTD6 设置为 EIRQ14,上升沿检测,我想将此引脚信号映射到 DMA 通道,我尝试从 PIT_1 Timer[0] 获取当前值。这是自由奔跑模式。 看起来 SIUL2 已正确设置为 PTDA,当信号发生器发出的信号 (1Hz) 连接到相关的 MCU 引脚时,我可以看到该引脚切换。 但是DMA对我来说不起作用 我的猜测是,我的问题在于找不到从 PTD6 -> DMAMUX -> DMA 通道 4 的正确链路,也找不到在哪里可以找到这些信息。 从 S32K3xx_DMAMUX_map.xlsx 文件中我得到了以下内容: 我的第一个问题是:哪个源->请求是专用的 PTD6(EIRQ14)? RM手册中的表44与此有何关联? 以下是我目前正在编写的部分代码: 设置 PTD6 void Setup_PTD6_EIRQ14_for_DMA ( void ) { /* 1. 通过 MSCR 寄存器配置物理引脚 PTD6 */     // PTD6 对应于索引 MSCR[102](如您的屏幕截图所示)     IP_SIUL2 -> MSCR [ 102 ] = 0 ; // 清除寄存器     IP_SIUL2 -> MSCR [ 102 ] |= ( 1 << 19 ); // IBE = 1(输入缓冲使能 - 将引脚配置为输入)     IP_SIUL2 -> IMCR [ 542 - ( 512 )] = 3u ;     // 可选:如果信号是浮动的,您可以启用上拉(PUE=1,PUS=1)或下拉(PUE=1,PUS=0) /* 2. 激活 EIRQ[14] 线上的边缘检测 */     我们希望捕获每个上升沿的时间戳     IP_SIUL2 -> IREER0 |= ( 1 << 14 ); // IREER0[EIRE14] = 1 (启用上升沿)     IP_SIUL2 -> IFEER0 &= ~ ( 1 << 14 ); // IFEER0[EIRE14] = 0 (禁用下降沿) /* 3. 请求路由:从中断更改为 DMA */     // 此步骤确保边沿不会唤醒 CPU(NVIC),而是触发 DMA 线路。     IP_SIUL2 -> DIRSR0 |= ( 1 << 14 ); // DIRSR0[DIRS14] = 1 (选择 DMA 请求而不是中断) /* 4. 最终启用 EIRQ[14] 的 DMA 请求生成 */     IP_SIUL2 -> DIRER0 |= ( 1 << 14 ); // DIRER0[EIRE14] = 1 (激活 DMA 请求线) }   并建立DMA通道: void Setup_eDMA_Channel4_Capture_PIT1 ( void ) { /* 1. eDMA 通道 4 的 DMAMUX 初始化 */     // 将 EIRQ14(源 14)映射到 eDMA 通道 4     IP_DMAMUX_1 -> CHCFG [ 4 ] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE ( 7u ); // EIRQ14 是 DMAMUX_1 的源 7     //IP_DMAMUX_0->CHCFG[4] = 0U; /* 2. 通道 4 的 TCD 配置指向 PIT_1(完全符合 S32K3 裸机语法) */     // 来源:PIT_1 定时器 0 的当前值     IP_TCD -> TCD4_SADDR = ( uint32_t ) & ( IP_PIT_1 -> TIMER [ 0 ]. CVAL );     IP_TCD -> TCD4_SOFF  = 0 ; // 源值不递增     IP_TCD -> TCD4_ATTR  = 0x0202 ; // 32 位源,32 位目标     // 次要循环:每次触发传输的字节数     // 在 S32K3 中,这对应于 NBYTES_MLOFFNO 寄存器(无次要循环链接)     IP_TCD -> NBYTES4 . TCD4_NBYTES_MLOFFNO = 4 ; // 每次触发信号传输 4 字节(32 位)     // 目标位置:内存中的数组     IP_TCD -> TCD4_DADDR = ( uint32_t ) dma_timestamps ;     IP_TCD -> TCD4_DOFF  = 4 ; // 每次边沿移动后,RAM 中的数据左移 4 个字节     // 循环缓冲区:填充完整个数组后循环回到数组开头     IP_TCD -> TCD4_DLAST_SGA = - ( BUFFER_SIZE * 4 );     // 主要循环计数器:循环中的总迭代次数     //IP_TCD->CITTER4.TCD4_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD -> CITER4 . TCD4_CITER_ELINKNO = BUFFER_SIZE ;     IP_TCD -> BITER4 . TCD4_BITER_ELINKNO = BUFFER_SIZE ; /* 3. 通过官方宏激活硬件触发信号的 eDMA 通道 */     //IP_TCD->CH4_CSR |= DMA_TCD_CH4_CSR_ERQ_MASK; /* 3. 硬件触发信号的 eDMA 通道激活(启用异步模式) */     // 位 0 (ERQ) = 1 -> 启用硬件触发信号     // 位 2 (EARQ) = 1 -> 启用来自外部引脚的异步请求 (SIUL2 EIRQ)     IP_TCD -> CH4_CSR |= 3u ; // ERQ=1,EARQ=1 }   我想关键就在这里: IP_DMAMUX_1 -> CHCFG [ 4 ] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE ( 7u ); // EIRQ14 是 DMAMUX_1 的源 7 我有点困惑,不知道应该使用哪个 IP_DMAMUX 和哪个 DMAMUX_CHCFG_SOURCE,也不知道哪里可以找到相关的正确信息。 此致 翁德雷   Re: S32K348-GPIO EIRQ to DMA request 你好@OndrejK “这是否意味着MCU有32个TCD通道,其中TCD 0到15对DMAMUX_0有效,TCD 15到31对DMAMUX_1有效? ” 是的,这些信息可以在数据手册中找到,我复制下来供您参考。 Re: S32K348-GPIO EIRQ to DMA request 你好 Senlent, 感谢您的解答。 请问您能否指出您所说的TCD映射的含义是从哪里产生的? 这是否意味着,MCU 有 32 个 TCD 通道,其中 TCD 0 到 15 对 DMAMUX_0 有效,而 TCD 15 到 31 对 DMAMUX_0 无效? 对于 DMAMUX_1? 所以,我对DMAMUX和eDMA的相关信息仍然有些困惑。 此致 翁德雷 Re: S32K348-GPIO EIRQ to DMA request 你好@OndrejK 你的理解是正确的: PTD6->EIRQ14->DMAMUX1.SOURCE 7. IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u); // EIRQ14 is source 7 for DMAMUX_1 但是,TDC 设置不正确。 我的理解是,它们应该如下所示: IP_DMAMUX_1->CHCFG[0] ->TCD 16 IP_DMAMUX_1->CHCFG[4] -> TCD 20 而不是 TCD4 Re: S32K348-GPIO EIRQ to DMA request 嗨 SenLent, 我根据观察结果对代码进行了一些修改。 这是我最新的代码: 主初始化: Setup_PTD6_EIRQ14_for_DMA ();     setup_PIT1_Timer0_FreeRunning ();     Setup_DMAMUX_Channel0_ToTCD16_Capture_PIT1 ();      //清除 EIRQ14 中断标志      IP_SIUL2 -> DISR0 = ( 1 << 14 ); 以下是其余代码: void Setup_PTD6_EIRQ14_for_DMA ( void ) {     // 1. Aktivácia hodinového deliča pre filtre v SIUL2 (ak už nie je povolený inde)     IP_SIUL2 -> IFCPR = 0U ; // 功能时钟的 Nastavenie deličky filtra (bez dodatočného delenia) // 2. Voliteľne vypnite 过滤器预 daný EIRQ 索引 alebo ho nastavte na minimálny počet cyklov // Pre EIRQ14(v závislosti od mapovania registrov IFMCR):     IP_SIUL2 -> IFMCR [ 14 ] = 0U ; // 0U vypína digitalálny过滤器,hrana prechádza okamžite ako čistý Hardvérový触发器 /* 1. 通过 MSCR 寄存器配置物理引脚 PTD6 */     // PTD6 对应于索引 MSCR[102](如您的屏幕截图所示)     IP_SIUL2 -> MSCR [ 102 ] = 0 ; // 清除寄存器     IP_SIUL2 -> MSCR [ 102 ] |= ( 1 << 19 ); // IBE = 1(输入缓冲使能 - 将引脚配置为输入)     IP_SIUL2 -> IMCR [ 542 - ( 512 )] = 3u ;     // 可选:如果信号是浮动的,您可以启用上拉(PUE=1,PUS=1)或下拉(PUE=1,PUS=0) /* 2. 激活 EIRQ[14] 线上的边缘检测 */     我们希望捕获每个上升沿的时间戳     IP_SIUL2 -> IREER0 |= ( 1 << 14 ); // IREER0[EIRE14] = 1 (启用上升沿)     IP_SIUL2 -> IFEER0 &= ~ ( 1 << 14 ); // IFEER0[EIRE14] = 0 (禁用下降沿) /* 3. 请求路由:从中断更改为 DMA */     // 此步骤确保边沿不会唤醒 CPU(NVIC),而是触发 DMA 线路。     IP_SIUL2 -> DIRSR0 |= ( 1 << 14 ); // DIRSR0[DIRS14] = 1 (选择 DMA 请求而不是中断) /* 4. 最终启用 EIRQ[14] 的 DMA 请求生成 */     IP_SIUL2 -> DIRER0 |= ( 1 << 14 ); // DIRER0[EIRE14] = 1 (激活 DMA 请求线) }   void Setup_DMAMUX_Channel0_ToTCD16_Capture_PIT1 ( void ) { /* 1. eDMA 通道 4 的 DMAMUX 初始化 */    // Podľa NXP tabuľky prislúcha SIUL2 DMA 请求 4 zdrojový 索引 7u     //IP_DMAMUX_1->CHCFG[4] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE(7u);     //按照文档操作,先禁用通道 4,然后配置它,最后启用它。     IP_DMAMUX_1 -> CHCFG [ 0 ] = 0u ; /* 2. 通道 4 的 TCD 配置指向 PIT_1(完全符合 S32K3 裸机语法) */     // 来源:PIT_1 定时器 0 的当前值     IP_TCD -> TCD16_SADDR = ( uint32_t ) & ( IP_PIT_1 -> TIMER [ 0 ]. CVAL );     IP_TCD -> TCD16_SOFF  = 0 ; // 源值不递增     IP_TCD -> TCD16_ATTR  = 0x0202 ; // 32 位源,32 位目标     // 次要循环:每次触发传输的字节数     // 在 S32K3 中,这对应于 NBYTES_MLOFFNO 寄存器(无次要循环链接)     IP_TCD -> NBYTES16 . TCD16_NBYTES_MLOFFNO = 4 ; // 每次触发传输 4 字节(32 位)     // 目标位置:内存中的数组     IP_TCD -> TCD16_DADDR = ( uint32_t ) dma_timestamps ;     IP_TCD -> TCD16_DOFF  = 4 ; // 每次边沿移动后,RAM 中的数据左移 4 个字节     // 循环缓冲区:填充完整个数组后循环回到数组开头     IP_TCD -> TCD16_DLAST_SGA = - ( BUFFER_SIZE * 4 );     // 主要循环计数器:循环中的总迭代次数     //IP_TCD->CITTER20.TCD20_CITER_ELINKNO = BUFFER_SIZE;     IP_TCD -> CITER16 . TCD16_CITER_ELINKNO = BUFFER_SIZE ;     IP_TCD -> BITER16 . TCD16_BITER_ELINKNO = BUFFER_SIZE ;     //IP_TCD->CH16_CSR |= 3u; // ERQ=1,EARQ=1     //启用DMAMUX通道0     IP_DMAMUX_1 -> CHCFG [ 0 ] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE ( 6u ); __asm volatile ( "nop" ); __asm volatile ( "nop" );     IP_TCD -> CH16_CSR |= 3u ; }   我仍然无法通过 EIRQ(14) 启动 DMA 传输,即使出现此断言。在调试器中,当我改变MCU PTD6引脚上的信号时,可以看到标志出现。 接下来,我可以通过 TCD16_CSR START 位手动启动 DMA 传输,TCD 通道上的 CITTER 值会减小,并且 PIT1_TIMER[0] 中的值会被存储到我的 dma_timestamps 数组中。 顺便说一下:这应该在“普通”SRAM部分定义。我之前将其设置为数据缓存段,导致出现 DMA“目标总线错误”。 新定义: __attribute__ ((对齐( 32 ))) __attribute__ ((部分( ".mcal_data" ))) uint32_t dma_timestamps [ BUFFER_SIZE ];   但是,如果我跳过手动 START(从代码开始就不需要设置),并且我更改 PTD6 引脚上的信号,DMA 通道不会执行任何操作,CITTER 寄存器保持在初始化值。 请问您能帮我找出问题所在吗? 我仍然认为 PTD6-EIRQ(14) 钳位标志与 TCD16 通道之间的连接存在问题。 可能是DMAMUX通道的正确来源? 对于 DMAMUX1-CH[0],我测试了所有信号源(1 到 😎 我尝试了DMAMUX Excel表格中列出的SUIL2实例,但没有成功,而且我也不确定我的步骤是否正确。     Re: S32K348-GPIO EIRQ to DMA request 你好@OndrejK 我创建了一个演示供您参考,使用 PTD6 触发 DMA 进行单次数据传输。 它基于 S32K344 + RTD 7.0.1。 我已经测试过了; 我可以向你保证,我的理解是正确的。 对于 PTD6,来源应为 7。  IP_DMAMUX_1 -> CHCFG [ 0 ] = DMAMUX_CHCFG_ENBL_MASK | DMAMUX_CHCFG_SOURCE ( 7u ); Re: S32K348-GPIO EIRQ to DMA request 你好 Senlent, 非常感谢你提供的例子。 经过一些修改,我现在有了可以运行的示例。我附上了修改后的项目文件,其中存在一个重要问题: 在整个 DMA TCD 通道完全配置之前,已设置了启用 DMA 请求的 SIUL ICU。在这种情况下,TCD_SADDR 和 TCD_DADDR 为空(值为零),之后在 SUIL 中启用 DMA 请求导致 DMA 错误 - “源总线错误”,这让我明白了。 更改初始化顺序后。例如,它开始对我有用。 但我仍然不太理解DMAMUX通道和TCD通道之间的确切关系。 您写道,DMAMUX 应该配置为 CHCGF[0]。 在我们的 S32k344 定制开发板上下载并启动应用程序后,我发现 DMAMUX-CHCFG[3] 已配置,并且确切地说,在函数Dma_Mux_Ip_Init_Privileged 的代码行中,有一行代码导致了此配置: RegisterIndex = DMA_MUX_IP_GATE_OFFSET((pConfig->pChannelConfigArr[ChannelCount].Channel)); 这是 lauterbach Trace32 调试器的屏幕截图,您可以在其中看到所有初始化步骤之后的最终设置: 在将 RTD 更新到 7.0.1 版本后,我在 Design Studio 中配置如下: 这样理解是否正确?这里可以选择 3 个 DMA 复用源,这意味着什么? Re: S32K348-GPIO EIRQ to DMA request 你好@OndrejK 听到这个消息真好。 对于刚入门的开发人员来说,这个配置工具可能会让他们感到困惑。 对于 S32K348,没有 DMAMUX_3;只有 DMAMUX_0 和 DMAMUX_1。 •对于 S32K310、S32K311 和 S32K312:DMAMUX_0 通道 0–5 和 DMAMUX_1 通道 0–5 分别映射到 eDMA 传输控制描述符 (TCD) 0–5 和 eDMA 传输控制描述符 (TCD) 6–11。因此,不应编程 DMAMUX_0 通道 6-15 和 DMAMUX_1 通道 6-15;但是,如果进行了编程,任何访问都将导致通道 8-15 出现错误响应,或者通道 6-7 没有错误响应。 •对于其余的 S32K3xx 设备:DMAMUX_0 通道 0–15 和 DMAMUX_1 通道 0–15 分别映射到 eDMA 传输控制描述符 (TCD) 0–15 和 eDMA 传输控制描述符 (TCD) 16–31。 以上内容摘自数据手册,很容易理解: “ DMA硬件通道”对应于TCD编号。 当您选择 DMA_CHANNEL_0 到 DMA_CHANNEL_15 时,默认使用 DMAMUX_0; 当您选择 16–31 时,默认使用 DMAMUX_1。 例如,在本主题中,PTD6 对应于 DMAMUX_1 的源 7,因此“DMA 硬件通道”可以设置为 DMA_CHANNEL_16 到 DMA_CHANNEL_31 之间的任何值。 我们再举一个例子:如果您选择 EIRQ 7 来触发 DMA,则“DMA 硬件通道”可以设置为 DMA_CHANNEL_0 到 DMA_CHANNEL_15 之间的任何值。 Re: S32K348-GPIO EIRQ to DMA request 嗨 SenLent, 关于选择DMA通道,我的想法是可以从相关的DMA_MUX组中自由选择一个。 同时,我测试了其他 DMA_MUX<-> 和 TCD 的组合,在我这边只有下一个组合可以正常工作。 IP_DMAMUX_1->CHCFG[3] 和 TCD16。 接下来我尝试了其他方法: IP_DMAMUX_1->CHCFG[4] 和 TCD17。 IP_DMAMUX_1->CHCFG[0] 和 TCD16。 请问为什么只有 IP_DMAMUX_1->CHCFG[3] 和 TCD16?在职的 ? IP_DMAMUX_1->CHCFG[xx] 与 TCDyy 之间是什么关系? Re: S32K348-GPIO EIRQ to DMA request 你好@OndrejK 正确的顺序是: IP_DMAMUX_0>CHCFG[0] 和 TCD0。 IP_DMAMUX_0->CHCFG[1] 和 TCD1。 IP_DMAMUX_0->CHCFG[2] 和 TCD2。 IP_DMAMUX_0->CHCFG[3] 和 TCD3。 IP_DMAMUX_0->CHCFG[4] 和 TCD4。 IP_DMAMUX_0->CHCFG[5] 和 TCD5。 IP_DMAMUX_0->CHCFG[6] 和 TCD6。 IP_DMAMUX_0->CHCFG[7] 和 TCD7。 IP_DMAMUX_0->CHCFG[8] 和 TCD8。 IP_DMAMUX_0->CHCFG[9] 和 TCD9。 IP_DMAMUX_0->CHCFG[10] 和 TCD10。 IP_DMAMUX_0->CHCFG[11] 和 TCD11。 IP_DMAMUX_0->CHCFG[12] 和 TCD12。 IP_DMAMUX_0->CHCFG[13] 和 TCD13。 IP_DMAMUX_0->CHCFG[14] 和 TCD14。 IP_DMAMUX_0->CHCFG[15] 和 TCD15。 IP_DMAMUX_1->CHCFG[0] 和 TCD16。 IP_DMAMUX_1->CHCFG[1] 和 TCD17。 IP_DMAMUX_1->CHCFG[2] 和 TCD18。 IP_DMAMUX_1->CHCFG[3] 和 TCD19。 IP_DMAMUX_1->CHCFG[4] 和 TCD20。 IP_DMAMUX_1->CHCFG[5] 和 TCD21。 IP_DMAMUX_1->CHCFG[6] 和 TCD22。 IP_DMAMUX_1->CHCFG[7] 和 TCD23。 IP_DMAMUX_1->CHCFG[8] 和 TCD24。 IP_DMAMUX_1->CHCFG[9] 和 TCD25。 IP_DMAMUX_1->CHCFG[10] 和 TCD26。 IP_DMAMUX_1->CHCFG[11] 和 TCD27。 IP_DMAMUX_1->CHCFG[12] 和 TCD28。 IP_DMAMUX_1->CHCFG[13] 和 TCD29。 IP_DMAMUX_1->CHCFG[14] 和 TCD30。 IP_DMAMUX_1->CHCFG[15] 和 TCD31。
View full article
ソフトウェアライセンス延長の期限切れ申請   サポートチームの皆様、 添付画像に示すように、S32DSのライセンスの有効期限が近づいていることを通知するメールを受け取りました。 現在進行中の作業では、引き続きS32DSを使用する必要があります。ソフトウェアを使い続けられるようにライセンスを延長してもらえますか? ご協力ありがとうございます。 よろしくお願いいたします。 Re: Request for Software License Extension Due to Expiration こんにちは、 あなたのアカウントを確認したところ、ライセンスは2028年まで有効です。 Re: Request for Software License Extension Due to Expiration 件名:S32 Design Studioライセンスを自分のNXPアカウントに移管/再登録する方法 こんにちは、 私は元マネージャーから仕事用PCを引き継ぎましたが、S32 Design Studioは私のではなく彼のNXPアカウントでまだ有効化されています。そのため、私のマシンにインストールされているライセンスの有効期限が切れてしまったようです。 自分のライセンスが2028年まで有効であることを確認したので、このPCのS32DSを前の所有者ではなくNXPのアカウントとライセンスに切り替えたいと考えています。 正しい手順を教えてもらえますか?具体的には: 1. 前のアカウントに紐づいた既存のアクティベーションを無効化または解除する方法はありますか? 2. 自分のアカウント認証情報でS32DSを再アクティベートできますか?それとも完全なアンインストールとクリーンインストールが必要ですか? ご協力ありがとうございます。 よろしくお願いいたします。
View full article
NXPS32K358: ブートローダーがアプリケーションにジャンプした後にFreeRTOSタスクが実行されない サンプルアプリケーションプロジェクトを作成し、それをブートローダーとして使用しています。実際のアプリケーションプロジェクトは同一で、唯一の違いはフラッシュスタートのアドレスだけです。 ブートローダーは無事にアプリケーションにジャンプし、アプリケーションは実行を開始します。しかし、アプリケーション内ではxTaskCreate()関数は実行されません。 ブートローダーからFreeRTOSベースのアプリケーションにジャンプする際に、追加の設定が必要ですか?例えば、FreeRTOSタスクを作成・実行する前に、起動、割り込み、ベクターテーブル、スタックポインタ、スケジューラ関連の設定などを行う必要がありますか? 私はそのことを紹介しました コミュニティからの統一ブートローダーデモ チケット。解決策は得られませんでした。問題はFreeRTOSを含めたときだけで、RTOSなしでアプリケーションは問題なく動作することです。  S32K344では動作しますが、NXPS32K358では動作しません。 追加情報が必要な場合はお知らせください。 Re: NXPS32K358: FreeRTOS Tasks Not Running After Bootloader Jumps to Application 私たちのプロジェクトで使用されているブートローダーからアプリケーションへのジャンプコード: void Boot_JumpToApp(uint32 i_AppAddr) { uint32_t appStack; uint32_t 関数; uint8 i;   DisableAllInterrupts();   S32_SysTick->CSRr = 0; S32_SysTick->RVR = 0; S32_SysTick->CVR = 0;   for(i = 0; i < 10; i++)     { S32_NVIC->ICER[i] = 0xFFFFFFFFU; S32_NVIC->ICPR[i] = 0xFFFFFFFFU;    } appStack = *(volatile uint32_t *)0x00442000; __set_MSP(appStack); S32_SCB->VTOR = 0x00442000; func = *(uint32_t volatile *)(((uint32_t)0x00442004)); (* (void (*) (void)) func)(); } Re: NXPS32K358: FreeRTOS Tasks Not Running After Bootloader Jumps to Application こんにちは、 @Indhumathi さん。 根本原因を絞り込むために、以下の割り込みハンドラが実際に実行されているか確認していただけますか? SVCハンドラ(vPortSVCHandler)—最初のFreeRTOSタスクを開始する役割を担う PendSVハンドラー(vPortPendSVHandler)—タスク間のコンテキスト切り替えを担当 SysTick ハンドラ (vPortSysTickHandler / xPortSysTickHandler) — FreeRTOS のティック処理を担当 最も簡単な確認方法は、アプリケーション内の各ハンドラのエントリにブレークポイントやGPIOトグルを配置することです。 ありがとうございました。 よろしくお願いいたします。 ダニエル
View full article
S32K118 FlexIO こんにちは、 FlexIOモジュールをS32K118でモーターホールセンサー信号の両端検出を実装する件について相談したいです。 現在、BLDCモーターからの3つのホールフィードバック信号の立ち上がりエッジと立ち下がりエッジの両方を取得する必要があります。FlexIOピンを入力キャプチャチャネルとして設定しようとしています。しかし、FlexIOで立ち上がりエッジと立ち下がりエッジを同時に検出するように設定する方法がよくわかりません。 デュアルエッジキャプチャのための適切なFlexIOタイマーとシフターの設定ワークフローを共有してもらえますか?それに、割り込みがすべてのエッジでトリガーできるのか、またS32K118 FlexIOをホール信号サンプリングに使う場合に既知の制限や注意点があるのかも知りたいです。どうもありがとうございます。 Re: S32K118 FlexIO こんにちは、 @Niuyanlin さん、 もし**アプリケーション**がBLDCモーターフィードバックのホールセンサーなら、FTMモジュールを検討することをお勧めします。 以下の適用ノートでは、シングルエッジおよびデュアルエッジキャプチャの設定方法とキャプチャ割り込みの生成方法が記載されています:AN5303: S32KにおけるFlexTimerモジュールの機能と動作モード – アプリケーションノート。 「ホールセンサーは独立したFTM(FTM_CHx)のチャンネルに接続されています。FTMはホールセンサー信号の降下エッジと上昇エッジの両方を検出し、キャプチャ割り込みを生成します。" 一方、FlexIOはタイマー減衰モードを通じて間接的に入力キャプチャ動作を構築する必要があり、動作は可能ですが、私の意見ではFTMモジュールの方が適しています。 よろしくお願いします、 ジュリアン
View full article
Authentication of another bootloader while S32K312 MCU SecureBoot is enabled Hello, I would like to inquire if there is a way to re-authenticate when changing the FBL after activating Secureboot. When changing to a different FBL while Secureboot is enabled, the META Data values ​​generated via the HMAC Key change. As the FBL is changed, the HSE needs to recalculate the META Data using the HMAC Key; however, because the HMAC Key is deleted due to the new FBL, recalculating the META Data becomes impossible. Consequently, a reset occurs due to a verification failure at the FBL, making it impossible to launch the application. Is there a way to re-authenticate the changed FBL using the HMAC Key, thereby allowing both the FBL and the application to run normally?   Re: Authentication of another bootloader while S32K312 MCU SecureBoot is enabled Hi @jeongwoo  That is essentially the purpose of Secure Boot: to prevent execution of software that fails authentication. The key question is whether you still have access to the debug interface, or whether the issue must be recovered in the field without debugger access. In the field, if there is no alternate/recovery image that was designed with such functionality in advance (for example, importing an HMAC key, generating a new authentication tag, accepting a new externally generated authentication tag, or reinstalling/reconfiguring the SMR), then recovery is generally not possible. If you have access to the debug interface, the simplest solution is typically to calculate a new authentication tag externally and program the updated tag into flash using a debugger. This approach requires that the HSE_SMR_CFG_FLAG_INSTALL_AUTH flag was set when the SMR was installed. If HSE_SMR_CFG_FLAG_INSTALL_AUTH was not set, HSE uses the internally stored hash for verification. In that case, updating the authentication tag alone is not sufficient and the SMR must be reinstalled with the new image parameters. Regards, Lukas Re: Authentication of another bootloader while S32K312 MCU SecureBoot is enabled Hello Lukas, In the previous state, our controller does not have HSE_SMR_CFG_FLAG_INSTALL_AUTH set. I'm trying to apply the method you mentioned — reinstalling the SMR with new image parameters. Is the relevant part of Fota_S32k3_SecureBootProcess shown below correct? pSmrEntryInstall->accessMode = HSE_ACCESS_MODE_ONE_PASS; pSmrEntryInstall->entryIndex = 0u; pSmrEntryInstall->pSmrEntry = (HOST_ADDR)&smrEntry; pSmrEntryInstall->pSmrData = (HOST_ADDR)IVT.pAppImg_addr_0; /* pointing to active partition */ pSmrEntryInstall->smrDataLength = smrEntry.smrSize; pSmrEntryInstall->pAuthTag[0] = (HOST_ADDR)smrEntry.pInstAuthTag[0]; /* pointing to passive partition */ pSmrEntryInstall->pAuthTag[1] = (HOST_ADDR)smrEntry.pInstAuthTag[1]; /* pointing to passive partition */ pSmrEntryInstall->authTagLength[0] = HmacTagLength; pSmrEntryInstall->authTagLength[1] = HmacTagLength; If this is correct, when I run the HSE_SRV_ID_SMR_ENTRY_INSTALL service, the HseResponse is returned as 0xA5AA5317, which corresponds to: #define HSE_SRV_RSP_KEY_EMPTY ((hseSrvResponse_t)0xA5AA5317UL) indicating that the key is empty. (As I asked previously, I suspect this is displayed because that part has been erased.) I would greatly appreciate it if you could guide me on how to inject the key or otherwise resolve this issue. Thank you very much. Re: Authentication of another bootloader while S32K312 MCU SecureBoot is enabled Hi @jeongwoo  I can see no problem in those parameters. But you shared only hseSmrEntryInstallSrv_t but not hseSmrEntry_t (pSmrEntryInstall->pSmrEntry = (HOST_ADDR)&smrEntry;). Structure hseSmrEntry_t contains other important parameters needed for installation. To confirm if the key is erased or not, you can use service HSE_SRV_ID_GET_KEY_INFO, structure struct hseGetKeyInfoSrv_t. Using this service, you will get information in hseKeyInfo_t, so you can check the state of key. Regards, Lukas
View full article
KW45B41Z EVK not programming over on board Debugger MCU Link. Hi, I am trying to program the KW45B41Z-EVK using the kw45b41zevk_hello_world SDK example code. When I start debugging, the onboard debugger gets detected, but then I get the following error: 0 Available SWD Devices detected. Connect a device and try again. I have connected the USB cable to J14 and left JP22 open (to program using the onboard debugger itself). Also, JP28 pins 1 and 2 are shorted, as mentioned in the KW45UM. However, even after that, I am unable to program and debug the example. I have also tried the kw45b41zevk_led_blinky SDK example, but it behaves in the same way. I also tried using an external debugger to debug the board by shorting JP22, as mentioned in the KW45UM, but I am getting the same issue. I have attached a screenshot of the issue I am facing. I also tried to erase the flash and write the image using the Secure Provisioning Tool. First, I entered ISP mode by shorting JP25 to enable SW4, then long-pressed SW4 and Reset (SW3). Once the Test Connection passed, I erased the flash (location 0x00000000, size 0x100000) successfully. Then I used the following image: ${SPT_INSTALL_BIN}\data\sample_data\targets\KW45B41Z8\source_images\kw45b41zevk_led_blinky.s19 I was able to build and program the image successfully, and the intended RGB LED1 is also blinking indicating that KW45B41Z microcontroller is working fine. However, even after this, I am still unable to program or debug the board. Re: KW45B41Z EVK not programming over on board Debugger MCU Link. Hi, @kaif1  Which IDE are you using?  MCUXpresso IDE or MCUXpresso for VS Code? Let me have a try on my side, then let you know the default jumper settings. Best regards, Christine.
View full article
Getting a Dev Board PCB imported to Altium Our team is working with the S32K148-Q176 Evaluation Board RevB. We are designing a board to interface with the evaluation board and were trying to get a model of it to aid in that endeavor. The files are saved as a BRD when downloaded from your site. We use Altium here and so we cannot import that file. Would your engineering team be able to convert the .BRD to an ASCII .alg file, or another file format that altium can import? Re: Getting a Dev Board PCB imported to Altium Hi @rollypoli  Unfortunately, I do not have a way to convert the Allegro BRD database into Altium format. For similar requests in the past, I have typically recommended using the free Cadence Allegro viewer. Cadence provides a free viewer that can open BRD files and allows you to inspect the PCB database directly. Using the measurement and inspection tools available in the viewer, you should be able to accurately determine the placement and spacing of the connectors, mounting holes, and other mechanical features. This is usually sufficient to reproduce the board outline and connector locations on your own Altium design so that the new PCB remains mechanically compatible with the original board. The free Cadence viewer can be downloaded from: https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/allegro-downloads-start.html While this is not as convenient as having a native Altium design file, it has worked well for customers who needed to reference an Allegro PCB layout and recreate the relevant mechanical dimensions in another CAD tool. Regards, Lukas Re: Getting a Dev Board PCB imported to Altium Do you have the ability to convert it from a .brd to a .alg (ascII) allegro file? I will look at the viewer
View full article
S32K148 FlexCAN 仅输出 SOF 脉冲,然后进入总线关闭状态 我用S32DS开发了这个程序。当尝试发送 CAN 帧时,TX 引脚上只会输出一个短的低电平脉冲,后续的 ID 和数据位会被截断,因此无法发送完整的帧。USB-CAN 分析仪未收到任何数据,FlexCAN 控制器直接进入总线关闭状态。 我已经检查了时钟配置和寄存器值,并测试了不同的 CAN 通道,但问题仍然没有解决。我想找出哪个配置参数设置错误。感谢您的帮助。 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 感谢你的回复。我想更正并补充我之前匆忙写成的消息中的一些重要细节。 主板:这是第三方主板(不是 NXP EVB),型号为 S32K148_REV2_Q144。值得注意的是:我发现卖家提供的原理图存在错误(标注的收发器位置与实际 PCB 丝印不符),因此该电路板的参考设计文档可能并不完全可靠。 官方 CAN 示例:我尝试构建 Can_example_S32K148,但遇到了与 CAN 本身无关的环境问题(缺少工具链/包含路径,最终 Port_Ci_Port_Ip.h 和 Port_Ci_Port_Ip_Cfg.h 之间出现版本不匹配错误——“不同的供应商 ID”/“AutoSar 版本号不同”)。这看起来像是 RTD 包版本与我的项目不匹配,而不是 IDE 版本问题。我会尝试解决这个问题,但我认为这与硬件问题的核心无关。 新证据(来自您已审阅过的我自己的项目):自从我上次留言以来,我使用逻辑分析仪进行了更深入的验证: MB8 内容 100% 正确— 直接从 CDD_CanTransmit() 之后的寄存器读取:CS=0x0C080000 (CODE=0xC 待定,DLC=8),ID=0x00400304 (>>18 = 0x10,与配置匹配),DATA=0x01020304/0x05060708 (与我的 8 字节有效载荷完全匹配)。 引脚上的 TX 信号也正确——同时探测 PTE5 和收发器的 TXD 输入(200MHz 逻辑分析仪),两个波形相同,证实 PCB 走线良好。 但传输在大约 8-9 位转换后中止(大致为 SOF + 几个仲裁位),控制器随后进入总线关闭状态(ESR1 确认 FLTCONF=11,TXERRCNT 每次尝试递增)。 即使正确连接了 USB-CAN 分析仪并启用了 120Ω 终端(总线未浮空), CANH/CANL 也显示为零活动。作为对照测试,我在另一块已知可正常工作的 STM32 板上运行了相同的设置(浮空与终端),终端后 CANH 显示出了正确的转换。在我的 S32K148 板上,在相同的端接条件下,CANH/CANL 保持完全平坦。 在 CAN1 上也出现了同样的结果(不同的引脚/收发器)。 由于 MCU 端的 TXD 信号在收发器输入端之前均已确认正常,但即使正确端接,CANH/CANL 信号也始终没有响应,因此我怀疑是收发器输出级(或两个通道共用的某个部分,例如……)出现了问题。电源瞬态行为——我只能用逻辑分析仪检查,无法用示波器检查。 问题: “TXD 在收发器输入端正确,但 CANH/CANL 在正确端接下完全平坦”是否更强烈地表明收发器硬件故障,还是存在其他常见的板级问题(使能/待机电路、电源去耦)也可能导致这种症状? 当总线上没有实际活动时,FlexCAN 是否应该在发送完前几个仲裁位后中止(而不是完成整个帧并在 ACK 时失败)?我想确认一下我对位监控机制的理解是否正确。 对于示例项目中的 RTD 版本不匹配问题——是否有办法检查哪个 RTD 版本与给定的 S32 配置工具版本匹配,以便我可以获取匹配的示例包? 再次感谢您的帮助。 此致敬礼,艾普丽尔 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 我非常惊讶,也很感谢您回复我的问题。   我使用的是自己设计的硬件板;只有电源电路与官方 EVB 原理图不同,而其余电路与参考设计一致。 我测试了官方的 CAN 示例项目。我只配置了 CAN0 引脚,而没有启用和配置 MCAL 层中的 PORT 模块,但项目一直编译失败。   具体的编译错误是: “f ../board/Port_Ci_Port_Ip_Cfg.h:47:10: 致命错误: Port_Ci_Port_Ip_Types.h: 没有该文件或目录”。   我的自定义项目文件中已有此头文件,但是导入此官方示例项目后,代码生成过程中并未自动生成此头文件。 缺少头文件错误是否可能是由于 IDE 软件版本不匹配造成的?目前我正在使用S32DS 为 S32 平台进行开发,现在我正在下载S32DS for ARM 2.2.2来切换开发环境。 期待您的指导。   顺祝商祺!   四月 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 从你的项目来看,配置和流程似乎都是正确的。请问您使用的是恩智浦半导体的S32K148EVB芯片,还是您自己设计的芯片? 您是否尝试过测试 RTD 中包含的 Can_example_S32K148 项目?您可以简单地添加 CAN0 引脚并禁用环回模式以启用 Tx/Rx 并测试该程序。 最后,您是否确认两个节点(S32K148 和 CAN 分析仪)都设置为相同的位时序和协议配置(CAN 与 CAN FD)?您可以使用以下工具来计算值: MPC5xxx/S32Kxx/LPCxxxx:CAN / CAN FD 位定时计算。 如果您使用的是自定义设计,您可以参考S32K148 EVB 的原理图和S32K1xx 硬件设计指南,了解 CAN 接口设计和建议。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 1. 是的,这表明是收发器故障,而不是模块配置问题。能否确认一下您的定制设计中使用的是哪种收发器? 我建议检查 STB、EN、S、RS、WAKE、INH 或类似引脚与实际安装的收发器是否匹配。 S32K148 EVB 使用UJA1132HW ,但是,如果您使用的是TJA1043之类的芯片,则必须将其配置为正常模式( STB_N = 高EN = 高)。 2. 是的,如果收发器实际上没有驱动总线,那么在几个仲裁位之后提前中止是合理的。 3. 通常情况下,“不同的供应商 ID”/“AutoSAR 版本号不同”错误会在导入项目并尝试使用不同的 RTD / S32 配置工具版本更新配置时出现;但是,如果您只是从“文件 -> 新建 -> 从示例创建 S32DS 项目”导入示例,则应该不会有任何兼容性问题: 从您分享的项目来看,您使用的是 S32K1 RTD 3.0.0。然而,当我导入 QLP04 项目时,从属性中可以看到配置的是 GCC 11.4: 根据 RTD 版本说明,3.0.0QLP04 仅支持 NXP GCC 10.2: 我不确定你是如何导入和编译这个项目的,但请确保你至少安装了 S32DS 3.6.4 版本。仅安装了一个RTD软件包。S32DS不支持同时安装多个RTD版本。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 感谢您提供的补充信息。 1. 关于 TJA1051,确实该收发器只有 S 引脚用于配置正常模式,但是,请检查您是否使用的是TJA1051T/E衍生型号,因为该型号有一个额外的 EN 引脚,您必须将其拉高: 2. “找不到文件”错误很可能是由于端口配置错误,从而导致工具生成了错误的代码。您在端口容器中遇到的错误是由于“引脚”功能组名称应该以“端口容器名称”+“外围设备功能组名称”的形式命名造成的,在您的情况下应该是“ PortContainer_0_VS_0 ”。 在申请RMA之前,能否请您测试一下我附上的项目?这是 MCAL 中的一个简单的测试代码,它使 Rx 以中断模式运行,Tx 以轮询模式运行。成功回波 10 帧后,绿色 LED 指示灯会切换状态。 我使用 PCAN-USB 分析仪,通过 J11 CAN 接头对该程序进行了测试,设置如下: 我可以看到帧已成功回放,并且绿色 LED 指示灯每 10 帧切换一次: 由于我使用的是 S32K148-EVB,因此不需要启用收发器,但是,在您的设置中,请检查TJA1051 是否已正确启用(以及是否还需要启用 EN 引脚)。 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 嗨,朱利安, 再次感谢您的耐心等待——自从我上次发消息以来,又有一些更新。 收发器检查:我仔细查看后确认它是TJA1051 ,而不是 UJA1132 系列 SBC。这个只有一个使能引脚(S 引脚),在我的板上硬连接到地(= 正常模式),所以你提到的多引脚 STB_N/EN 逻辑在这里并不适用——控制电路的这一部分看起来已经是正确的了。 与第二个独立项目进行交叉验证:我为该板(从经销商处购买)构建并运行了一个完全不同的 CAN 演示,使用了较旧的 Processor Expert/S32 SDK 堆栈 — can_pal — 而不是 RTD/AUTOSAR。按下按钮后,CAN_Send() 函数被正确调用,但我注意到返回值始终为 STATUS_BUSY (0x002),这意味着之前的传输实际上从未完成。就像我的 RTD 项目一样,USB-CAN 分析仪在所有三个通道上都没有接收到任何信号。现在我有两个完全独立的驱动程序堆栈,它们都给出了相同的结果,这让我相当确信这不是我这边的软件/配置问题。 关于官方示例项目:我按照您的建议将 GCC 版本切换回 10.2,但在构建过程中仍然遇到同样的“文件未找到”错误。我进一步研究了一下,现在怀疑这可能与端口模块(MCAL 层)未完全配置有关——似乎存在一个与端口模块和引脚工具的功能组链接方式相关的验证错误,但我无论尝试什么都无法正确配置它。 它们就是一个例子: 这是我之前自己搭建的项目的一部分: 鉴于目前的情况——控制引脚接线看起来正确,引脚上的 TXD 也已确认正确,并且两个独立的软件堆栈在所有三个通道上都显示出一致的“无总线活动”/传输卡顿行为——您认为这是否足以将其视为硬件故障并进行 RMA,或者还有其他值得先检查的地方吗? 再次感谢你在这件事上提供的帮助。 此致敬礼,艾普丽尔 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@April , 我很高兴现在一切都按预期运行了! 请问之前的错误原因是什么?是简单的硬件连接问题吗? 祝你今天也过得愉快! 此致, 朱利安 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好,朱利安, 我迫不及待地想告诉你,现在一切都完美运行了!我非常激动地与大家分享这个好消息。我已经订购了全新的MCU板和CAN收发器进行重新测试,这次通信运行完美无瑕。原来我之前遇到的持续 BusOff 错误完全是硬件故障。 我还加载了您附加的测试项目,它也运行良好。你的示例代码可以像你描述的那样流畅地发送和接收 CAN 帧。 我非常感谢您这些天来给予我的所有耐心指导。我完全被这个问题难住了,独自一人根本无法解决这个问题,是你的详细回复帮我摆脱了困境。 祝您身体健康,工作顺利,天天幸福! 此致, 四月 Re: S32K148 FlexCAN Only Output SOF Pulse then Enter BusOff 你好@Julián_AragónM , 哈哈,不是线路问题。原有的 TJA1051 收发器模块存在缺陷,导致了 BusOff 问题。 再次非常感谢您的帮助!^_^ 此致, 四月
View full article
HSE INSTALL S32K311 下面的所有内容都是从附件中复制 S32DS版本:S32DS.3.5_b220726_win32.x86_64 (1).exe RTD版本:SW32K3_RTD_R21-11_3.0.0_P07_D2306_DS_updatesite.zip S32K311支持包版本:SW32K3_S32DS_3.5.6_D2309.zip SBAF版本:SBAF_S32K311_0_0_15_0, Bin文件:s32k311_Secure_Baf_0.12.0_0.15.0.6_pb230804.bin.pink HSE版本:HSE_FW_S32K311_0_2_40_0, bin文件为s32k311_hse_fw_0.12.0_2.40.0_pb230730.bin.pink 使用FULL_MEM 没有安全启动 当前遇到的一个问题 程序运行会一直卡在这里while ( FALSE == HSE_CheckStatus(HSE_STATUS_INIT_OK) );             Re: HSE INSTALL S32K311 这个是补充的printf信息 DCMROF21: 0x00040000 HSE GPR3: 0x000000C0 Current_SBAF_Version-0x4039c020: 0x00000C00 LC 配置字-0x4039C02C: 0x00000000 生命周期相关信息-0x402AC200: 0x00000000 HSE Status: 0x00000000 我从网上查阅资料,是不是芯片出场自带的SBAF不识别我现在使用的HSE固件? Re: HSE INSTALL S32K311 我怀疑是SBAF没有将flash中的hse固件复制到hse_nvm中,如果是这个问题,我应该怎么解决 Re: HSE INSTALL S32K311 这个是我打印的数据 DCMROF21: 0x00040000 HSE GPR3: 0x000000C0 HSE Status: 0x00000000 HSE 固件未启动(NVM 空或固件损坏) Re: HSE INSTALL S32K311 嗨@iiiddd 请问能否提供 HSE_CONFIG_GPR3 (0x4039C028) 的值?位 0 表示 HSE 固件是否存在。 BR,VaneB Re: HSE INSTALL S32K311 我在编写 UTEST 时调用了 RTD 库。 gHsePort_FlsIf.writeApi(UTEST_BASE_ADDR,(uint8_t*)hseFwFeatureFlag,FW_FEATURE_FLAG_LEN); 将使用 FLS_MAX_VIRTUAL_SECTOR 定义。我的 RTD 库默认值为 135,但访问地址 0x1B000000UL 需要 136。我使用的RTD库与HSE不兼容吗? Re: HSE INSTALL S32K311 嗨@iiiddd HSE_CONFIG_GPR3[0] 位未设置,这表明设备上不存在 HSE 硬件。 作为参考,下图显示了为在 S32K311 设备上安装 HSE FW FULL_MEM 而配置的链接器文件示例: Re: HSE INSTALL S32K311 我在调试时发现 pflash 中有与 hse 固件对应的数据。你的意思是说,sbaf 未能将 pflash 中的固件复制到 hsenvm 中吗?如果这是问题所在,那么可能是什么原因造成的呢?
View full article
mc9s08qg8 代码战士(经典 IDE)v6.3 Windows 11 我下载了文件,但是无法安装,安装程序提示我的操作系统不兼容。我使用的是Windows 11系统。 Re: mc9s08qg8 code warrior (Classic IDE) v6.3 windows 11 你好, 要在Windows 11系统中使用CodeWarrior,请更新至v11.1版本。我正在寻找 MC9S08QG8 设备,并且有此版本可供选择。 您可以从此链接下载: CodeWarrior ® for MCUs (Eclipse IDE) 11.1 此致敬礼,路易斯
View full article
i.MX8MplusのFinite-State Machine (FSM)について Toradex社のVeridin i.MX8Mplusを弊社で採用しております。 その際に、SoMの電源操作にSOM_PW_ON信号を入力しています。(i.mx8MPlusSoCのONOFF信号に直結)。※添付のオシロスコープの波形を参照してください。   SoM側の回路構成上High(1.8V)となるはずが起動後800msec程度、約0.3~0.4Vの中間電位となってしまします。 SoC側のONOFF信号としてのこの電位(0.3から0.4V)がどう扱われるのかを知りたいです。 データシートやリファレンスマニュアルには記載がありませんでした。 ONOFFの短時間の(<5s)操作ではシャットダウンに移行するケースがあるかと思いますが、操作の判定としてはHigh⇒Lowのエッジ及び、Lowの継続時間が条件となりますでしょうか その詳細な時間についてもmim/maxの時間を教えて頂きたいです。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MplusのFinite-State Machine (FSM)について i.MX8M Plusの場合、ONOFFはレベルホールドボタン入力として処理され、0/50/100/500 msの条件と5/10/15秒の強制オフタイミングが設定可能で、観測された0.3~0.41.8V ONOFFネット上のVは、利用可能な入力閾値のドキュメントによって最も一貫して論理低と解釈されます。 Re: i.MX8MplusのFinite-State Machine (FSM)について 回答ありがとう御座います。 > 観測された0.3~0.41.8V ONOFFネット上のVは、利用可能な入力閾値のドキュメントによって最も一貫して論理低と解釈されます。 ちなみに、論理低と解釈される電圧閾値についても教えて頂けますでしょうか? また、論理低と解釈される場合、起動後800msec程度ONOFFは論理低がが続き、論理高に変化します。 その場合、ボタン入力があったと判定されるのでしょうか? 心配しているのはボタン入力により、起動直後にシャットダウン移行の判定となるケースがないかという事です。 Re: i.MX8MplusのFinite-State Machine (FSM)について > ちなみに、論理低と解釈される電圧閾値についても教えて頂けますでしょうか? 申し訳ございません。論理高と解釈される電圧閾値が知りたいです。 Re: i.MX8MplusのFinite-State Machine (FSM)について 回答ありがとう御座います。 > 観測された0.3~0.41.8V ONOFFネット上のVは、利用可能な入力閾値のドキュメントによって最も一貫して論理低と解釈されます。 ちなみに、論理高と解釈される電圧閾値についても教えて頂けますでしょうか? また、論理低と解釈される場合、起動後800msec程度ONOFFは論理低がが続き、論理高に変化します。 その場合、ボタン入力があったと判定されるのでしょうか? 心配しているのはボタン入力により、起動直後にシャットダウン移行の判定となるケースがないかという事です。 NXP TechSupport担当者様 本件如何でしょうか? もう一点追加で質問ですが、 ONOFFはレベルホールドボタン入力として処理され、0/50/100/500 msの条件 の所ですが、デフォルトは0となっていると思います。この場合、ノイズ等で一瞬、論理高もしくは論理低の閾値を超えた場合はレベルホールドされる事となりますでしょうか? このデフォルト設定では、ノイズを受けた場合に一瞬でも現状レベルホールドしている論理と逆の論理判定となるものが入った場合に誤動作する可能性があるのかを心配しております。 Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 様 何件か質問追加質問しております。 お手数ですがご回答をお願い致します。 Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 様 確認状況いかがでしょうか? 回答をお願いします。 Re: i.MX8MplusのFinite-State Machine (FSM)について メッセージを逃してすみません。確認をお手伝いしますし、来週返信します。 素敵な一日をお過ごしください Re: i.MX8MplusのFinite-State Machine (FSM)について @Rita_Wang 様 お世話になります。 パル技研 毛利です。 そろそろ1週間が経過しますが、回答の状況いかがでしょうか? よろしくお願いいたします。
View full article
i.MX RT1050 Download Algorithm My current development environment is MCUXPRESSO IDE, using the i.MX RT1050. I understand that because the i.MX RT1050 doesn't have internal flash, an algorithm needs to be downloaded when using external flash. However, this downloaded algorithm is dependent on the chosen flash memory. Does the official documentation explain how to obtain the desired downloaded algorithm for quick and easy use? Re: i.MX RT1050 下载算法 Hi SDFDSFSF, We suggest you do it in the following order: 1. Select an external Flash download algorithm in the project properties. NXP provides some mainstream Flash download algorithms. You can right-click the project -> Properties -> MCU settings -> Memory details and select the NXP-supported flash driver: The flash driver for MCUXpresso is usually located under nxp\LinkServer_xx.x.xx\binaries\Flash, with the .cfx extension. 2. If the selected Flash memory supports SFDP, try the SFDP driver first. In MCUXpresso, you can choose a driver like MIMXRT1050_SFDP_QSPI.cfx. The significance of this type of SFDP driver is that it reduces the dependence on specific part number-specific algorithms through flash self-describing parameters. 3. Create your own using a template. Please refer to the application manual : https://www.nxp.com/docs/en/application-note/AN13386.pdfGenerate a custom CFX file. When modifying it, key parameters should be derived from test results of the external flash datasheet and the flexspi_nor_polling demo in the SDK. In addition to the download algorithm, XIP/Boot Header configuration is also required. Please refer to Solved: Flash interface initialization - NXP Community. The above are the basic methods. You can provide more specific details, such as what model of Flash you are using, what specific difficulties you are encountering at this stage, and this will help you better. Best Regards, Shelly Zhang i.MX RT1050 下载算法 I'm using J-Link, and in MCUXpresso I selected MIMXRT1050_SFDP_QSPI.cfx. Download failed. Re: i.MX RT1050 下载算法 How can I create my own J-Link algorithm for the IMXRT1052 in the MCUXpresso IDE? My Flash file is WINBOD 25Q256JVEQ. My current MCUXpresso IDE version is MCUXpresso IDE v25.6. SDK_EVBK is version 26.06.00. I don't know which example program can be modified to generate the download algorithm I want. Re: i.MX RT1050 下载算法 Dear @SDFDSFSF , The reference example is located in the nxp/LinkServer directory, with the project name iMXRT1050_QSPI: If your pinouts differ from the evaluation board, you will need to modify the pinout configuration. The Flash configuration also needs to be modified according to the datasheet. Please confirm the following: 1. Check if the Flash hardware pins are configured correctly. The FlexSPI pins must be configured according to the RT1050 hardware development manual : Only group A or group B can be selected, and FlexSPI_DQS needs to be left floating. 2. Import the evkbimxrt1050_flexspi_nor_polling_transfer example into the SDK, and modify the flash configuration according to the flash datasheet. (This step can be omitted; it's only to verify that the flash configuration is correct.) 3. Modify the correct flash configuration in the iMXRT1050_QSPI project. Please refer to the following for this step. https://www.nxp.com/docs/en/application-note/AN13386.pdf Best Regards, Shelly Zhang Re: i.MX RT1050 下载算法 It's possible that your hardware pin configuration differs from the evaluation board. We suggest you modify the iMXRT1050_QSPI project to generate the cfx file yourself. Re: i.MX RT1050 下载算法 Is it okay if I use J-Link in the MCUXpresso IDE? I've seen some people say that the MCUXpresso IDE algorithm can only be used in CMSIS-DAP type emulators?
View full article
KW45B41Z EVKが搭載デバッガーMCUリンクでプログラムされていないこと。 こんにちは、 kw45b41zevk_hello_world SDKのサンプルコードを使ってKW45B41Z-EVKをプログラムしようとしています。デバッグを開始すると、オンボードデバッガーは検出されますが、その後、次のエラーが発生します。 検出された利用可能なSWDデバイスは0個です。 デバイスを接続して、もう一度お試しください。 USBケーブルは J14 に接続し、 JP22はオン ボードデバッガでプログラムするために開いたままにしています。また、 KW45UMで述べられているように、 JP28のピン1と2は短絡されています。しかし、その後もサンプルプログラムをプログラミングしたりデバッグしたりすることができません。 kw45b41zevk_led_blinky SDKの例も試しましたが、同じように動作します。 KW45UMで説明されているように、外部デバッガを使用してJP22をショートさせてボードのデバッグも試みましたが、同じ問題が発生します。 発生している問題のスクリーンショットを添付しました。 セキュアプロビジョニングツールを使用して、フラッシュメモリを消去してイメージを書き込むことも試しました。まず、 JP25をショートさせてSW4を有効にし、次にSW4とリセット(SW3)を長押ししてISPモードに入りました。接続テストが成功した後、フラッシュメモリ(位置0x00000000 、サイズ0x100000 )の消去に成功しました。次に、以下の画像を使用しました。 ${SPT_INSTALL_BIN} \data\sample_data\targets\KW45B41Z8\source_images\kw45b41zevk_led_blinky.s19 画像の構築とプログラムは無事にでき、意図した RGB LED1 も点滅しており、KW45B41Z マイクロコントローラが正常に動作していることを示しています。しかし、それでもなお、基板のプログラミングやデバッグができません。 Re: KW45B41Z EVK not programming over on board Debugger MCU Link. こんにちは、 @kaif1 どのIDEを使っていますか? MCUXpresso IDEまたはMCUXpresso for VS Code? 私の方で試してみて、デフォルトのジャンパー設定をお知らせします。 よろしくお願いいたします。 Christine。
View full article