Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
将采用 SE050E2 的 DLM 的 AES-GCM 身份验证标签长度设置为 12 字节 您好, 我目前正在使用 SE050E2 安全元件进行 AES-GCM 加密和解密操作。加密和解密 API 运行良好,特别是以下功能: sss_status_t sss_aead_one_go( sss_aead_t *context,const uint8_t*srcData,uint8_t *destData,size_t size,uint8_t *nonce,size_t nonceLen,const uint8_t *aad,size_t aadLen,uint8_t *tag,size_t *tagLen); 当身份验证标签长度为 16 字节时,此 API 可以完美运行。但是,我正在使用要求身份验证标签长度仅为 12 字节的 DLMS 协议有效负载。 当我使用这个 API 加密 DLMS 纯数据时,它会生成 16 字节的身份验证标签,但是 DLMS 标准需要一个 12 字节的标签。同样,对于解密而言,当加密的 DLMS 负载带有 12 字节的身份验证标签到达时,将这个 12 字节的标签传递给 API 会导致解密失败,因为 API 预计该标签为 16 字节。 我的问题是 有没有办法在 SE050E2 或其中间件中配置或设置身份验证标签长度,以便它可以按照 DLMS 标准的要求使用 12 字节的标签? 当前,API 在加密后始终返回 16 字节的标签,并且需要 16 字节的标签才能解密。我想确保与使用 12 字节标签的 DLMS 设备兼容,而不会导致解密错误。 如能就 SE050E2 的 AES-GCM 标签长度配置提供指导,或就处理 DLMS 标签大小不匹配的建议方法提供指导,我们将不胜感激。 先行感谢! BR, Faizy Re: Setting AES-GCM Authentication Tag Length to 12 Bytes for DLMS with SE050E2 感谢您的支持。 BR、 Faizy Re: Setting AES-GCM Authentication Tag Length to 12 Bytes for DLMS with SE050E2 你好@Faizy98、 这是在创建 AEAD 操作密钥时定义的。详情请参阅下文。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 -------------------------------------------------------------------------------
查看全文
S32K312 IAR EW 統合問題 NXPコミュニティの皆様、こんにちは。 S32K312 MCAL を IAR EW に統合する際に、次の問題が発生しました。 MCAL_ENABLE_USER_MODE_SUPPORT 定義済みマクロを有効にした後、次のエラーが発生しました: 関数「startup_getControlRegisterValue」および「startup_getAipsRegisterValue」の定義が見つかりませんでした。IM マニュアルによると、このマクロを有効にする必要があります。このマクロが有効になっていない場合、どのような影響がありますか? 次のコンパイル エラーが発生しました: エラー [Lp004]: 実際のサイズ (0x448) がブロック "interrupt_vector_init" の最大サイズ (0x410) を超えています。これをどう解決すればCANでしょうか? RTD: SW32K3_S32M27x_RTD_R21-11_6.0.0 EB: 29.0 MCU: S32K312 IDE: IAR EW 9.40.1 Re: S32K312 IAR EW Integrate Problem こんにちは@ben_chin 、 IAR EW 9.40.1 はサポートされていません。IAR Systems にお問い合わせください(https://www.iar.com/support)。 しかし、マクロが C コンパイラのプリプロセッサでのみ定義されている場合、S32DS でも同じエラーを再現 CAN。 C コンパイラ プリプロセッサとアセンブラ プリプロセッサの両方でマクロを定義する必要があります。 よろしくお願いいたします。 ダニエル
查看全文
如何为 S32DS 中的特定变量强制指定内存区域(RAM、闪存、数据闪存) 您好, 我正在使用S32K358和S32 Design Studio (S32DS)作为集成开发环境。我想为某些变量保留特定的内存区域,并确保这些分配在版本期间不受编译器或链接器的影响,尤其是在项目稍后引入新变量或数组时。 我的要求 1。专用 RAM 部分 我需要为自己的变量专门分配一部分内存。这些变量应放置在固定的内存位置,并且在将来的软件版本或更新期间不得被编译器/链接器移动或覆盖。 2。专用闪存/数据闪存部分(类似 EEPROM 的用法) 我想在闪存或数据闪存中为持久数据存储预留区域。例如 应用程序有效标志 引导程序有效标志 包含配置或运行状态数据的数组或结构 这些变量应存储在固定的内存地址上,不受固件重新编程或段落重新定位的影响,其功能与 EEPROM 类似。 我的问题 如何在S32DS 中配置项目设置,为变量(RAM、闪存或数据闪存)保留和分配特定的内存地址? 如何在代码中声明变量,以便将它们放入这些自定义内存区域? 如果 S32DS 或编译器没有为此提供直接设置,我如何手动修改链接器脚本以定义和保留这些特定内存区域? 感谢并致意 卡尔梅根 C Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,@karmegancjk、 1. 是的,如果您将变量/常量放在章节中,它就会保留在章节中。 2. 我想只有在写入访问时才会这样。 3. 如前所述,使用热电阻 FEE 驱动程序。 在驱动程序的安装目录中,您可以找到《FEE 用户手册》--其中特别提到了在引导加载程序和应用程序中使用 FEE 驱动程序时的用例。 此致, 丹尼尔 Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,丹尼尔 上述 "内存强制 "方法假定了未来应用程序代码大小的增加。编译器或代码能否访问我的自定义内存区域? 当我尝试直接访问 My_array[] 时,遇到了硬故障。 解释一下我的情况:我在 MCU 上运行了引导加载程序和应用程序代码。当从应用程序代码过渡到引导加载程序(或反之)时,我使用了诸如 application_valid_flag 和 boot_valid_flag 这样的标志。我想在自定义内存区域中声明这些标志,以确保它们不受内存地址增量或编译器优化的影响。此外,我还需要 16KB 闪存,我想把它当作 EEPROM 使用。重要的是,这 16KB 部分应保持不变。我该如何处理这种情况? 感谢并致意 卡尔梅根 C Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,@karmegancjk、 1. my_array 数据不能被覆盖。 您需要先擦除 0x00A00000 的整个扇区(0x00A00000 - 0x00A02000)。 改用 RTD FEE 驱动程序。 2. 当然,这是非易失性闪存。 此致, 丹尼尔 Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,丹尼尔 1.我检查了变量名及其内存位置,它们都列在 .map 中。锉刀 数组在 main.c 文件中声明锉刀 uint32_t my_array[10]__attribute__(( section(".my_section"))); 在链接器中,文件 记忆命令: 内存 { int_pflash : ORIGIN = 0x00400000, LENGTH = 0x00600000 /* 6144KB */ int_pflash0 : ORIGIN = 0x00A00000, LENGTH = 0x001D4000 /* 1872KB - 176KB (sBAF + HSE)*/         } 科室指挥: /* Flash 中的自定义部分 */ .pflash0: { KEEP(*(.my_section)) }> int_pflash0 地图文件 .pflash0 0x00a00000 0x28 *(.my_section) .my_section 0x00a00000 0x28 ./src/main.o 0x00a00000 my_array   我的问题是 如何使用数组 my_array[](读写操作)? 上电复位后,阵列 my_array [] 能否保留来自 0x00a00000 地址的数据? MCU - S32K358 SW - RTD 4.0.0 ide - s32ds 3.5.13IDE Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,卡尔梅根 C、 1. 在那里无法写作。 需要先擦除闪存扇区(0x2000 大小)。 您可以使用 DFlash 上的 FEE 驱动程序来处理闪存中的非易失变量。 2. 检查 .map文件。 您应该能够找到数据名称及其位置。 此致, 丹尼尔 Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,丹尼尔 如果在 int_pflash0 自定义闪存部分或 int_dflash0 自定义数据闪存部分放置一个变量,如何访问该变量?由于写入闪存需要高压操作,是否可以直接写入闪存或 DFlash 存储器区域中的变量? 如何验证我创建的闪存或 DFlash 内存区域是否正确? 感谢和问候, Karmegan C Re: How to Force Specific Memory Area for Specific Variables in S32DS (RAM, Flash, Data Flash) 嗨,@karmegancjk、 这取决于编译器。例如,GCC 不支持将变量直接放在特定地址上。相反,GCC 要求您将变量放在命名的部分中,然后使用链接器脚本将这些部分分配到特定的内存地址。 请参阅任何 RTD 示例,链接文件已经定义了多个内存部分。您可以通过参考这些现有章节并根据需要对其进行扩展来创建新章节。 例如,在int_sram_no_cacheable中放置变量: #pragma GCC section bss ".mcal_bss_no_cacheable" uint8_t variable; #pragma GCC section bss 下面是一个使用 ITCM 和 DTCM 的示例,链接器文件因此被修改。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-Siul2-Port-Ip-Example-S32K344-ITCM-DTCM-S32DS3-4-RTD300/ta-p/1605107 此致, 丹尼尔
查看全文
无法初始化项目的 cppcheck 您好, 我刚刚尝试安装 ccpcheck 插件等,但它拒绝运行: 我遇到了这个错误: 无法初始化项目的 cppcheck... 以下是异常堆栈跟踪: java.lang.NullPointerException:无法调用"org.eclipse.core.runtime.IPath.toFile()"因为"org.eclipse.cdt.core.settings.model.ACPathEntry.getLocation()" 的返回值为空 at com.googlecode.cppcheclipse.ui.ToolchainSettings.getIncludes(ToolchainSettings.java:182) at com.googlecode.cppcheclipse.ui.ToolchainSettings.getUserIncludes(ToolchainSettings.java:88) at com.googlecode.cppcheclipse.core.Checker. (Checker.java:81) at com.googlecode.cppcheclipse.ui.Builder$ResourceVisitor.processFile(Builder.java:199) at com.googlecode.cppcheclipse.ui.Builder$ResourceVisitor.visit(Builder.java:122) at org.eclipse.core.internal.resources.Resource.lambda$1(Resource.java:154) at org.eclipse.core.internal.resources.Resource.lambda$0(Resource.java:122) 在 org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:85) 在 org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90) 在 org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(ElementTreeIterator.java:90)doIteration(ElementTreeIterator.java:90) at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementTreeIterator.java:135) at org.eclipse.core.internal.resources.Resource.accept(Resource.java:131) at org.eclipse.core.internal.resources.Resource.accept(Resource.java:92) at org.eclipse.core.internal.resources.Resource.accept(Resource.java:154) at org.eclipse.core.internal.resources.Resource.accept(Resource.java:142) at com.googlecode.cppcheclipse.ui.Builder.processResource(Builder.java:306) at com.googlecode.cppcheclipse.ui.Builder.processResource(Builder.java:306)cppcheclipse.ui.commands.RunCodeAnalysis$RunCodeAnalysisJob.runResource(RunCodeAnalysis.java:26) at com.googlecode.cppcheclipse.ui.commands.ResourceSelectionJob.run(ResourceSelectionJob.java:44) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) 信息: MCUXpresso IDE v24.12 [版本 148] [2025-01-10] 我从这里下载了 Cppcheck 2.18: https://cppcheck.sourceforge.io/ 我按照以下说明进行了操作: https://github.com/cppchecksolutions/cppcheclipse/wiki/Installation 我在 PATH 环境变量中添加了 cppcheck 路径,并重新启动了 MCUXpresso。 有什么好办法吗? Re: Could not initialize cppcheck for project 你好,@rshipman、 这恐怕超出了恩智浦的支持范围,因为它与 Eclipse 级别的插件有关,而不是 MCUXpresso IDE 的问题。 我建议您查看以下链接: MCUXpresso IDE 上的静态代码分析工具 cppcheck - NXP Community java.lang.NullPointerException:无法初始化项目 lib-ltc 的 cppcheck - 问题 #98 - kwin/cppcheclipse BR, Edwin.
查看全文
i.MX93 自定义板 — DDR 配置与引导加载程序刷新顺序 你好 我们开发了一款基于恩智浦i.MX93的定制板,带有DDR4 RAM和闪存。换句话说,我们复制了 i.MX93 EVK 原理图的必要部分。 为了实现连接,我们保留了两个接口: - 通过 FTDI 调试 UART - USB1 用于 i.MX 闪存 根据我们对工作流程的理解: 1- 使用 NXP 配置工具配置DDR。 2- 我们需要闪存引导加载程序。 3- 最后,用 Yocto 闪存我们生成的 Linux 映像。 但是,我们不确定操作的正确顺序。 在 EVK 上,我们使用配置工具通过 USB 成功验证了 DDR 配置。 在我们的自定义板上,当我们尝试验证 DDR 配置(使用 i.MX 配置工具生成)时,无法建立通过 USB1 与 i.MX 的通信。 所以我的问题是 - 是先配置 DDR 再刷新引导程序,还是先刷新引导程序? -如果 DDR 配置确实是第一步,为什么我们的自定义板上的配置工具验证会失败,而它在 EVK 上运行良好? 如果能就正确的启动顺序和导致 USB 通信问题的潜在原因提供指导,将非常有帮助。 提前感谢!   Re: i.MX93 custom board – DDR configuration vs bootloader flashing order 1.板无法正确加电。是否验证了所有导轨都以正确的顺序和所需的电压启动?能否在 PC 的设备管理器中将板视为 HID 设备? 板已正确开机,电脑将其视为 HID 设备 2.Bootrom 不再响应。这种情况通常发生在 USB 连接出现问题时。 我用不同的 USB 电缆和电脑试过,都有销售问题。 3.是多个板以这种方式运行还是只有一个单元? 现在我们只用一块板进行测试,我要用另一块板进行测试 4. 我使用的零件编号是PIMX9352AVTMAB。 Re: i.MX93 custom board – DDR configuration vs bootloader flashing order 你好 此错误表示在将 DDR 应用程序加载到板时出现故障。这种行为有几个原因。 1.板无法正确加电。是否验证了所有导轨都以正确的顺序和所需的电压启动?能否在 PC 的设备管理器中将板视为 HID 设备? 2.Bootrom 不再响应。这种情况通常发生在 USB 连接出现问题时。有没有可能换一根 USB 电缆和一台电脑试试? 3.是多个板以这种方式运行还是只有一个单元? 4.能否告诉我们您使用的确切零件编号? 顺祝商祺! Re: i.MX93 custom board – DDR configuration vs bootloader flashing order 谢谢你的澄清,问题确实出在沟通上。 我已经解决了这个问题,通信也已启动,但我又遇到了另一个错误: ERROR memtool.common.base_test Application load ended with exception:由于配置错误,下载未完成! 您能告诉我可能是什么原因吗? 提前感谢您! 致以最诚挚的问候 Re: i.MX93 custom board – DDR configuration vs bootloader flashing order 你好 您对工作流程的理解是正确的。 - 是先配置 DDR 再刷新引导程序,还是先刷新引导程序? 你需要运行 DDR 压力测试来生成反初始化/定时来版本你的引导加载程序/镜像。在 DDR 压力测试期间,板将处于串行下载模式。 -如果 DDR 配置确实是第一步,为什么我们的自定义板上的配置工具验证会失败,而它在 EVK 上运行良好? 你收到的错误日志是由电脑主机与你的板的 UART COM 连接不稳定造成的。请检查您的板是否连接了正确的 COM 端口,并请检查原理图连接。 顺祝商祺!
查看全文
S32K348 设置端口 您好: 我创建了一个新项目,添加了端口设置并进行了调试。在线调试时,运行函数 (Port_Init(NULL_PTR);),s32ds sortware 会断开连接,如图所示: 脱机后,代码可以正常运行,端口设置也能正常工作。 程序无法在线调试。 请抽空回答,谢谢! Re: S32K348 set PORT HI 您似乎修改了"UnTouchedPortPins"中的 JTAG 引脚,导致调试中断,无法正常下载程序。请参阅S32K344 RTD、PORT/DIO 和调试中的讨论。 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。 -------------------------------------------------------------------------------
查看全文
Imx93 evk ONOFFボタンはスタンバイ機能にCAN使用できます。 こんにちは、imx93 evk の ONOFF ボタンは、短押しスタンバイと短押しウェイクアップ機能を再び CAN 実行しますか?どうやってそれを達成するのでしょうか? Re: Imx93 evk ONOFF button can be used for standby function. ああ、残念ですが、すでにお気づきですね。私の返答は無視してください。 Re: Imx93 evk ONOFF button can be used for standby function. @xiang_1001はい、ON/OFF ボタンは GPIO ラインにルーティングされ、さらに PMIC 入力に送られ、ウェイクアップ ソースとして機能するように構成CANます。 デフォルトの BSP の一部として、ONOFF ボタンを短く押すことで、システムを CAN サスペンド状態から復帰させることができます。「 echo mem > /sys/power/state 」を実行してサスペンド状態にしてから、オン/オフ ボタンを 1 回だけ押して復帰させてみることCANます。 または、オン/オフボタンをシステムの「サスペンド」に設定する場合は、次の手順を実行する必要があります。 1. conf ファイルを編集します - /etc/systemd/logind.conf HandlePowerKey変数を「suspend」に設定する 2. systemd-logindを再起動します。 systemctl で systemd-logind を再起動します。 この後、ONOFFボタンを短く押すことでimx93をサスペンド状態にすることができます。 回复: Imx93 evk ONOFF button can be used for standby function. この機能は、/etc /etc/systemd/logind.conf ファイルを変更することで実現されます。
查看全文
S32K312:未知信号处理程序将程序控制转到 LPI2C IRQ 处理程序 我正在使用配备 S32K312 MCU 的定制板。我想不断更改引脚配置和时钟配置,以实现省电功能。" 测试时,MCU 会将"卡在高功率状态,导致功耗增加。 当我将 PE-Micro 调试器连接到板并连接到正在运行的目标时,控件总是显示在 " lpi2c_IP_moduleirqHandler " 函数中。调试调用堆栈显示信号处理程序位于 0xffffffe9。 造成这种情况的原因是什么? #s32k312 Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 嗨,@himonkoch、 如果没有 SW + HW 来重新创建,就很难找到问题的根本原因。 无论如何,只有根据版本说明配置编译器选项,恩智浦才能保证RTD的功能。热电阻是在第 2.7.2 节所述的特定设置下开发和测试的,这一点我在之前的答复中已经说过。 如果您选择使用自定义编译器标志或优化级别,则有责任验证驱动程序在这些条件下的功能。 我很高兴新垃圾桶不再有这个问题了。 致以最诚挚的问候, Julián Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 你好@Julián_AragónM、 我照着做了,现在新的 bin 文件就没有这个问题了。谢谢您的帮助。 但是,我仍然想知道为什么优化首先会导致随机中断触发信号,因为后来我想减小二进制文件的大小。 Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 嗨,@himonkoch、 你可以通过右键单击所选项目并转到 " Properties > C/C++ 版本 > 设置 > 标准 S32DS C 编译器 > Optimization " 来更改当前编译配置的优化级别。 请记住,如相应代码包的版本说明中所述,RTD 软件包经过测试和交付的优化级别为-Os: 致以最诚挚的问候, Julián Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 你好@Julián_AragónM、 我会研究您发送的文件并尝试。 同时,当尝试在 Debug_FLASH 调试会话中重新创建问题时,这个问题从未出现过,功能的执行也没有中断。到目前为止,推送到 MCU 的固件是使用 Release_Flash 编译配置版本代码后生成的 bin 文件。据我所知,此版本配置包含编译器级别的优化。 为了证实这一理论,我最终使用DEBUG_Flash编译配置再次版本了代码,并将生成的bin文件直接推送到MCU中,等待问题发生,但事实并非如此。 有什么办法可以在 IDE 中更改 Release_Flash 版本的优化设置,以帮助改变结果吗? Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 嗨,@himonkoch、 很可能是的。 Arm 文档显示,0xFFFFFFE9 是指返回线程模式,异常返回使用主 SP 的浮点状态,返回后执行使用主 SP。 你可以参考以下文档:如何调试 ARM CORTEX M MCU 上的故障异常。您可以尝试通过堆栈回溯来查找故障地址,因为在堆栈回溯中,您还没有从中断中返回,还在处理程序中。 致以最诚挚的问候, Julián Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler @Julián_AragónM, 感谢您的回复。 是的,该功能是低功耗运行模式的一种实现方式,通过降低 FIRC 的输出频率和禁用 PLL,将时钟频率降至 3MHz。 我尝试了您提到的步骤 1.从低功耗运行模式切换出来时,AIPS_SLOW_CLK 和 LPI2C0_CLK 成功启用 2.IntCtrl_Ip_DisableIrq 和 IntCtrl_Ip_ClearPending 在模式切换前被调用,以禁用和清除与 I2C 相关的中断。 3.我在Lpi2c_Ip 头文件中找不到Lpi2c_Ip_MasterEndTransfer 函数。 卡在上述地址的问题依然存在。 在与我的团队进行内部讨论时,发现在调试一个不同的、不相关的问题时,执行被卡在了固件的同一个地址上。运行中的目标调试配置是否可能显示错误的问题地址? Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 你好@himonkoch 感谢您提供的补充信息。您是否特别使用了选项 E - 低速运行模式(CORE_CLK @ 3 MHz)? 我猜你被卡在Lpi2c_Ip_ModuleIRQHandler处,因为 LPI2C 中断仍处于启用或挂起状态,不过在不共享配置或例程的情况下很难进行测试。 例如,在切换时钟配置、中止或完成任何待处理的传输之前,可以使用 Lpi2c_Ip_MasterEndTransfer()。除此之外,还可以尝试通过 IntCtrl 驱动程序清除和禁用中断: IntCtrl_Ip_DisableIrq(LPI2C0_Master_Slave_IRQn); IntCtrl_Ip_ClearPending(LPI2C0_Master_Slave_IRQn) ; 最后,从 VLSR 返回时,请确保 AIPS_SLOW_CLK 和 LPI2C0_CLK 均已启用。 致以最诚挚的问候, Julián Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler @Julián_AragónM 这个功能没有利用微控制器的待机电源模式,而是我通过禁用某些时钟、降低整体时钟速度和禁用某些引脚输出来降低功耗。 这需要使用不同的时钟和引脚功能组,我在它们之间切换,以获得所需的输出。 此外,在过渡之前,我还调用了Lpi2c_Ip_MasterDeinit()函数来禁用任何 i2c 参与。 Re: S32K312: unknown signal handler taking program control to LPI2C IRQ handler 嗨,@himonkoch、 " 我想持续更改引脚配置和时钟配置以实现省电功能, 请说明您使用的是什么例程和配置。"? 您会反复待机和醒来吗?您参考过 S32K3 的低功耗示例吗? S32K3 电源管理单元 AN 和演示——恩智浦社区 & [RTD400 & 500 MCAL & IP] S32K3 电源管理单元 AN 和演示 ——恩智浦社区。 另外,在进入待机状态之前,您是否对 I2C 实例进行了去初始化? Lpi2c_Ip_MasterDeinit(instance); 请分享任何相关配置或代码片段。 致以最诚挚的问候, Julián
查看全文
NTAG424:使用 ChangeKey 修改 KeyNo0 的值后 您好, 根据 AN12196 文件中的示例,结合 NTAG 424 DNA - 安全 NFC T4T 兼容 IC 文件,在实施 ChangeKey 时遇到了以下问题: 1)存在情况 2:要更改的密钥编号 = 当前已验证会话的密钥编号(在 AN12196 号文件的示例中,当修改 KeyNo0 的值时,修改后的密钥值将用于 AuthenticeEV2First。AuthenticeEV2First 第 2 部分返回的响应代码为 91AE。即使修改后的密钥值设置为初始默认 16 字节 0,身份验证仍然失败。原因何在? 其他问题: 1)如何在镜像时设置占位符?为什么是 0?还有其他占位符吗? 2)SDMMACInputOffset 的设置似乎有一个可以设置的间隔范围。不同的价值观会产生影响吗? 期待您的支持。 谢谢你 Re: NTAG424:After using ChangeKey to modify the value of KeyNo0 我已通过电子邮件回复您,谢谢 Re: NTAG424:After using ChangeKey to modify the value of KeyNo0 你好@Queenie1 请与我们分享您的代码。 另外,您使用的阅读器具体是什么类型的?来自恩智浦?
查看全文
EB Tresos 激活失败 这是最新的激活码,但仍然失败。互联网没问题。 INFO:可信存储初始化完成。激活 NodeLocked 许可证 F3E2-B5AE-CC4E-C872,许可证数量:1 状态:4,创建请求状态:5,请求创建状态:6,上下文创建 状态:7,已连接远程服务器 状态:8,请求发送 状态:9,轮询响应 状态:11,完成 错误:flxActappActiv ationSend (50040,41147,10250) 连接到 FlexNet 操作服务器失败。 Re: EB Tresos Activate Fail 你好 检查互联网连接 确保电脑有稳定的网络连接。 暂时禁用 VPN 或防火墙,看看它们是否阻止了连接。 正确使用许可证工具 确保使用客户端许可证管理员而不是服务器许可证管理员进行激活   防火墙或代理设置 您的网络可能阻止了对 FlexNet 服务器的访问。请联系您的 IT 部门,将所需的功能域或端口列入白名单。 稍后重试激活 服务器可能暂时宕机或超载。等待并稍后再试对一些用户有效   联系支持 如果以上方法都不管用,请联系软件供应商的支持团队。如需 EB Tresos,请联系 Elektrobit 支持部门。 https://www.elektrobit.com/support/licensing/ 请注意,许可证服务器来自 Elektribit,因此我们只能检查 EB 提供给恩智浦的许可证是否有效。 顺祝商祺! Peter
查看全文
MDIORead 在 RMII 接口上总是返回 0xFFFF 你好,我一直在使用 s32k148 和 Microchip LAN8720A phy 子板,试图让它们通信。我设计了一个配套的印刷电路板,用于将信号从 phy 传输到 J16 连接器。我可以在开机时正确初始化 phy,将它插入 Windows 电脑时可以看到琥珀色和绿色 LED 灯,电脑端也可以看到 wireshark 活动。下一步是让板的 MAC 接口与 phy 通信,但这就是问题所在。我的代码尽可能模仿了 tja1101 的示例,但每次尝试运行时,主功能指令中 PHY_SHARED_ReadBasicStatus() 内的 ENET_DRV_MDIORead() 都会返回 0xFFFF。 以下是我仔细检查过的事项: - 50MHz 时钟符合规格要求,并且位于 phy 的 CLKIN 引脚和 J16 的 PTD11 上。 - 内部模块时钟和 MII_SPEED 位给出的 MDC 频率为 2.4MHz(内部模块时钟 = 48MHz,MII_SPEED 位 = 9)。 - 根据数据手册,phy 地址为 0(内部将 RXER/PHYADD0 拉低)。 我已将整个项目附在本帖后,以便确保初始化代码以及 phy 的数据表都没有问题。 我还用示波器测量了 MDIO 和 MDC 线路上的活动,但无法判断其形式是否正确。 谢谢您! Re: MDIORead always returning 0xFFFF on RMII interface 你好,我是@克里斯托弗-拉佐伊、 感谢您提醒我们您的假期。这样我就有足够的时间为您准备一份详细的答复。 感谢您提供的最新情况和详细的意见。 关于 MDIO 和 MDC 信号的电平转换器,请参阅随附的图片,了解 U14 (MDIO) 和 U22 (MDC) 在板上的位置(黄色的)。您可以使用示波器探测它们的行为,以验证信号完整性。我同意,如果板是新的,除非存在制造缺陷,否则损坏的可能性很小。 至于你关于设置时间的问题:在SMI接口上,在MDC的下一个上升沿对MDIO进行采样。这意味着设置时间要求适用于在该边缘之前有效的数据,不一定要在捕获中显示的当前边缘之前有效。因此,很容易满足设置时间的要求。 为了验证这种行为,我使用以下设置在 S32K148EVB-Q176 板上运行了 lwip_s32k148 示例: 软件: S32 设计工作室 v3.5 SDK: s32sdk_s32k1xx_rtm_401 硬件: rev-RMII 模式下的 TJA1103-SDBR 子板 PHY 地址:0x02 MDIO 线路上没有上拉电阻器 我 添加了 PHY 驱动程序并定义了 PHY 条目。 创建了一个 FreeRTOS 任务来闪烁 LED,并使用 PHY_Read()定期读取两个 PHY 寄存器。我将 MSCR 设置设为默认值,结果是 MDC 频率: ~2.39 MHz 保持时间:20 ns(MSCR.HOLDTIME = 0x0) 保持时间:170 ns(MSCR.HOLDTIME = 0x7 - 由调试器设置) 我尝试RESET PHY,但事实证明没有必要——所以我注释掉了相关的代码。 在电阻器 R46(MDIO)和 R38(MDC)上观察到信号。以下是完整的第 22 条读取交易的波形捕获: 目标 PHY: 0x02 读取寄存器:0x03 TJA1103 返回的数据:0xB013(游标之间) 请尝试在示波器上捕获完整的第 22 条交易以进行比较。波形应类似于管理数据输入/输出中描述的时序图-维基百科 我无法查看您的全部代码(但还是要感谢您的分享)。但请注意,PHY_Read(以及其他 PHY 函数)的第一个参数不是 PHY 地址,而是 PHY 条目索引,因此应为 0 或 PHY_INSTANCE_0。PHY 地址必须在 PHY 条目内设置。 顺祝商祺! 帕维尔 Re: MDIORead always returning 0xFFFF on RMII interface 我在 LAN8720A 的 1.5k 欧姆电阻上焊了一个 10k 欧姆电阻,它似乎太强了,把整个 3.3V 线路拉低到 1.5V 左右。它会破坏整个信号,所以这不是解决办法。收到我的 digi-key 订单后,我将尝试使用 1.5k 至 10k 之间的其他不同数值。请注意,我下周都在度假,因此无法跟进更多的调试工作。我将于美国东部时间 8 月 4 日星期一回来。 Re: MDIORead always returning 0xFFFF on RMII interface 你好,帕维尔,感谢你的详细解答。我将尝试增加 3.3V 线路的上拉电阻,看看是否能改善信号。 至于 TXB0104 双向电平移位器,我不确定如何测试它们,甚至不确定它们在板上的位置。您能指导我这样做吗?而且板很新,所以我非常怀疑它是否坏了,除非它有缺陷。 对于我提出的设置时间问题,您有什么建议吗?我觉得很奇怪的是,MDIO 信号在 MDC 的上升沿之前至少 10 ns 没有触发信号,如我的照片所示。我将保持时间参数设置为 1 个周期,在我的情况下,48 MHz 的保持时间约等于 20 ns。数据手册中明确规定,设置时间必须至少为 10 ns。我测试了 phy 的读取和写入操作,均未显示设置时间。 再次感谢您的支持! Re: MDIORead always returning 0xFFFF on RMII interface 你好,我是@克里斯托弗-拉佐伊、 感谢您的详细跟进和测量。请在下面找到答案和建议: MDIO 线路上的尖峰确实不同寻常。请尝试将上拉电阻增大到 10 kΩ 或更高。1.5 kΩ 上拉并非严格要求,在这种情况下可能过于激进。 S32K148-Q176 板在 MCU 和 PHY 之间使用 TXB0104 双向电平移位器。这些都会影响信号的形状和时间。请确认其操作是否正确,因为它们可能是 PTB4 上出现振铃或失真现象的原因。 关于驱动强度:设置为 "高 "时,输出驱动器(更多晶体管)会更强,从而改善上升/下降时间并提高电流能力。这有助于提高信号完整性,尤其是在较长的线路或电容负载上。S32K1 数据表中记录了两者的区别。 调整 MDC 频率意味着调整它以匹配 MDIO 线路的电气特性,包括上拉电阻、线路长度和寄生电容。虽然从技术上讲,MDC 的频率可达 2.5 MHz,但降低频率(如 500 kHz 或 250 kHz)有助于稳定边缘信号条件。不过,既然您已经尝试过了,但没有任何改善,那么问题可能出在其他地方。 除了 MDC 通过 MSCR 寄存器从 ENET 模块时钟派生之外,内核时钟与 MDC 时钟之间没有严格的依赖关系。只要 MDC 符合规范,内核时钟就不会直接影响 MDIO 时序。 顺祝商祺! 帕维尔 Re: MDIORead always returning 0xFFFF on RMII interface 另一件事是 LAN8720A 数据表中,在表 5-12 中写道,参考 MDC 的上升沿进行数据输入的 MDIO 信号设置时间应至少为 10 ns。但是,我已经使用不插电的 phy 测量了未上电的板上的信号,它们似乎根本没有设置时间。是我忘记设置参数了吗?我设置了保持时间,但没有设置设置时间。见下图 Re: MDIORead always returning 0xFFFF on RMII interface 我还测量了 3.3V 和接地之间 MDIO 线路的电阻。当我仅在 phy(未插入恩智浦板)上测量时,3.3V 的电压为 1.5k 欧姆,GND 为 120k 欧姆。但是,如果我在插入板(未通电)时进行测量,3.3V 时会得到 1.5k 欧姆,但到 GND 会得到 2.9k 欧姆。我相信 PTB4 在断电时可能会使其沉没,但这也意味着 MDIO 线路在不插入板时可以正常工作。 Re: MDIORead always returning 0xFFFF on RMII interface 看来我可能错了,我刚刚测量了 MDIO 线路上的信号,没有插入 PCB(没有 phy),这意味着没有任何东西会响应 MCU 的读取请求,而信号实际上看起来是干净的!它的整体形式与坏信号相同,这意味着在 MDIO 线路上,phy 与 MCU 的交互以某种方式破坏了 MCU 的信号。见下图 Re: MDIORead always returning 0xFFFF on RMII interface 此外,我还在 R46 电阻上测量了 MDIO 信号,以确保问题不是出在我的 PCB 上。请看下图 Re: MDIORead always returning 0xFFFF on RMII interface 你好,帕维尔、 很高兴知道这一点!我想它一定是内部自动控制的,但我想确认一下。不过,恐怕这并不能解决我的问题。正如我之前提到的,MDIO 线路在 MDC 的时钟周期之间的高电平和低电平逻辑之间出现了这些快速尖峰,看起来并不像它应有的样子。PTB4 的线路和行为仍然存在问题。 按照您的建议,我尝试将 MDC 速度从 1 MHz 降到 500KHz 再降到 250KHz,但结果还是一样。总是那些锋利的尖刺。MDC 时钟似乎影响了我从 phy 的基本寄存器 1 获得的读数,我认为这是因为 MDIO 线路的问题,因为在正常情况下,只要 MDC 的速度低于 2.5MHz,就不会影响任何事情。核心时钟和 MDC 时钟之间是否存在某种必须遵循的关系? 我还尝试设置了 PTB4 的上拉功能。我尝试了上拉和下拉,但都没有成功。我很想知道高驱动力强度和低驱动力强度之间有什么区别? 最后,我不确定"调整 MDC 频率是什么意思" 根据我的理解,只要频率低于 2.5 MHz 就没有问题。由于这条线路是 MAC 和 phy 之间唯一共享的通信线路,我认为在与 PTB4 配对时,线路的电气性能可能出了问题。您对测试的内容有什么其他想法,或者有任何其他在 S32k148EVB-Q176 上完成的类似项目成功的例子吗? 感谢您一直以来的支持,非常感谢! Re: MDIORead always returning 0xFFFF on RMII interface 你好,我是@克里斯托弗-拉佐伊、 MDIO 引脚(PTB4)由 ENET 外设控制,该外设可自动管理方向(TX/RX)和第 22 条操作期间的开漏行为。无需手动将引脚配置为漏极开路。 将 MDC 频率降至 1 MHz 是一个很好的举措。您可以尝试降低频率(如 500 kHz),以提高稳定性和可视性。您的 PHY 没有 MDC 最大时钟限制: MDC 边沿之间的最短时间为 160 ns。边缘之间没有最长间隔时间。最短周期时间(两个连续上升沿或两个连续下降沿之间的时间)为 400 ns。这些适中的时序要求使得微控制器的 I/O 端口可以轻松驱动该接口。 将驱动强度设置为 "高 "是一个很好的调整。 只需根据实际情况调整 MDC 频率即可。 顺祝商祺! 帕维尔 Re: MDIORead always returning 0xFFFF on RMII interface 你好,PaveIL、 非常感谢你的意见,你说的关于欠采样的问题是对的,我确实没有正确读取信号。我已经对它进行了正确的采样,以下是我的发现: -在每个 phy_read () 交易中,MDIO 总线上写入信号的 MAC 似乎到处都是,但是 PHY 写入总线上的内容看起来很干净。 - 从我链接的图片来看,MAC 似乎无法正确地将线路拉低以发送逻辑 0,这导致在整个写入持续时间内,0V 和 3.3V 之间出现非常尖锐的峰值。 - 就我所见,写入的时间似乎没有问题。 我研究了一下,怀疑是不是 J16 连接器的 MDIO/PTB4 引脚出了问题。如下图所示,我已经对其进行了正确配置,但它似乎并不像一个漏极开路集电极那样工作。 我修改了配置,将 MDC 频率设为 1 MHz,所以图片上的读数才是 1 MHz。此外,保持时间设定为 3 个模块时钟周期(48MHz)。 谢谢您! Re: MDIORead always returning 0xFFFF on RMII interface 我已经成功地从寄存器 1 读取了 phy ID 编号,因此我相信在这种情况下 0 是正确的地址 Re: MDIORead always returning 0xFFFF on RMII interface 您有没有尝试扫描其他 PHY 地址以防万一?我曾遇到过这样的情况:捆扎没有正确生效,PHY 出现在与预期不同的地址上。 Re: MDIORead always returning 0xFFFF on RMII interface 你好,我是@克里斯托弗-拉佐伊、 我已经查看了所有可用的配置文件、初始化代码和提供的示波器捕获。现在 MDC 信号已正确配置,并以 2.4 MHz 频率运行。MDIO 线路具有适当的 1.5 kΩ 外部上拉电阻,ENET 外设已正确初始化。因此,剩下的问题似乎与信号观测有关,而不是功能故障。 感谢您提供最新信息和分享所有数据。根据您的描述和示波器捕获的内容,您观察到的 MDIO 信号不稳定性很可能是由于采样不足所致。 每个 MDIO 事务(第 22 条读取)由 64 位组成,时钟频率约为 2.4 MHz → 总持续时间约为 27 µs。 由于时基为 500 µs/div,示波器每笔交易只能捕获几个样本。 这可能导致波形失真或部分失真,类似放电/充电曲线或 "V 形 "骤降。 由于 PHY 读取现在返回的是有效数据,而且 MDC 信号被确认为正确,因此 MDIO 线路很可能运行正常。 建议采取的下一步措施: 将示波器设置为 1-5 µs/格时。 在 MDC 上升沿触发。 在已知的 phy_read () 期间以单发模式捕获。 这样就可以观察到完整的 MDIO 交易并确认信号完整性。 顺祝商祺! 帕维尔 Re: MDIORead always returning 0xFFFF on RMII interface 此外,有时 MDIO 上的 V 形信号没有与 MDC 的下降沿同步,只能降到 1.5V-2V Re: MDIORead always returning 0xFFFF on RMII interface 下面是两个信号灯的更多合影 Re: MDIORead always returning 0xFFFF on RMII interface 最新的情况是,我发现我没有为 MDC 复用正确的引脚,更改引脚后,MDC 信号在 2MHz 频率下非常完美。不过,我在 MDIO 稳定性方面仍有问题。Mac 可以从 phy 读取数据,但链接的稳定性非常糟糕。我附上了一些示波器读取 MDIO 数据的图片。我逐渐明白,PTB4 引脚(MII_RMII_MDIO)应为开漏引脚,以便 MAC 和 Phy 都能向其写入数据。但我在引脚复用菜单中没有看到该选项,而且它被锁定为输入/输出引脚。我的印象是,phy 和 mac 出于某种原因正在争夺它。此外,图片上 3.3V 附近的信号看起来像是放电/充电曲线。
查看全文
RW612 上的持久存储,QSPI 闪存,mflash_drv 大家好,我正在尝试使用一些持久存储空间,这样我的应用程序就可以写入序列号,并在随后的开机过程中读取回来。我使用的是 uBlox Iris-W101,它包含一个带有 8 MB Fidelix QSPI 闪存的 RW612。应用程序代码是 XIP,它被闪存到 QSPI 闪存的 0x08000000 位置,恩智浦的 wifi 栈被闪存到 0x08400000 位置。一切正常。但我认为我可以擦除扇区并将一些数据写入接近末尾的地址,末尾地址是 0x08800000,因此我的位置是 0x087F0000。我不知道如何进行擦除和书写。我尝试使用"mflash_drv.c"函数 mflash_drv_sector_erase () 和 mflash_drv_page_program (),但是 erase 无法擦除(尝试在 0x08400000 处擦除 wifi 堆栈但数据没有变化)而且 page_program 陷入了循环。我在另一个话题中读到引导加载程序可能为了保护自己而锁定整个 QSPI 闪存?如果是这样,如何解锁一小部分以便我可以擦除/写入它?我只需使用普通变量读取或 memcpy () 就能从 QSPI 闪存中读取字节。我看到的话题是 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/mflash-drv-c-writing-to-flash-while-XIP/m-p/915590 感谢您的帮助,希望我能通过 XIP 应用程序进一步了解 mflash 驱动程序。 产品:WiFi RW6XX Re: Persistent storage on RW612, QSPI Flash, mflash_drv 好吧,我找到了。需要在 /linkscripts/main_data.ldt 中添加以下行文 *mflash_drv.o(.text .text*).杆状.rodata*) *fsl_flexspi.o(.text .text*).杆状.rodata*) 然后在 /linkscripts/main_text.ldt 中添加以下项目 *mflash_drv.o*fsl_flexspi.o 然后清理,然后版本,然后在启动期间将它们放在 RAM 中。再次感谢您,在我注意到这一点之前,我已经疑惑了很久。 Re: Persistent storage on RW612, QSPI Flash, mflash_drv 有意思因此,我现在使用的是 RW612 的最新 SDK,即 25.06.00。我正在开发 MCUBoot 引导加载器和与引导加载器兼容的应用程序示例。rdrw612bga_ota_mcuboot_server_wifi<--- 这个配置是正确的,因为首先启动加载工作正常,测试了整个过程。其次,我使用了与之前相同的代码,现在可以正常工作了,我可以使用 mflash_drv 擦除和写入,然后不使用 mflash_drv 也可以读回,就像 memcpy 一样,可以正确读取闪存内容。所以我只需要将 mflash_drv 文件配置到 RAM 中即可?您能解释一下 MCUXpresso 是如何做到这一点的吗?我现在正在研究,也许很快就能解决。谢谢! Re: Persistent storage on RW612, QSPI Flash, mflash_drv 你好,MattKow-Firefly,希望你一切都好。 当代码从外部闪存执行时,FlexSPI 模块被配置为与内存一起工作,以便执行 XIP,因此与 FlexSPI 模块相关的 API 需要从 RAM 执行。 我建议测试应用程序代码中心的以下 示例 ,该 示例 演示了从外部闪存访问 XIP。 将示例导入 MCUXpresso IDE: 单击"Import from Application Code Hub" 选项。(请注意,本示例需要使用 2.16.00 版 SDK) 进入应用程序代码中心窗口后,搜索示例的名称(来自外部或非闪存的 XIP,使用多端口 FlexSPI 模块配置外部 pSRAM),将其选中,然后单击 " Github 链接 " 然后等待 " Next > " 按钮可以使用。 点击"Next>" 按钮后,按照步骤从 git 仓库导入项目。最后,当项目在工作区中可用时,您就可以在您的设置上对其进行闪存和测试了。 如果有帮助,请告诉我。
查看全文
s32k146 基于MBDT在同一条SPI总线配置多个SPI从设备,SIMULINK报错 自开发一个控制器,用的MCU为S32K146  三条SPI总线都挂了多个SPI从设备。同一条SPI设备,存在每个从设备的时钟极性,相位,位宽不一致。这种情形在SIMULINK中根据不同的SPI从设备进行配置。SPI Reconfig模块用于同一总线上连接多个配置不同的从设备(如波特率、时钟极性/相位不同)。这个SPI Reconfig模块如何使用,有没SPI动态配置的示例。 Re: s32k146 基于MBDT在同一条SPI总线配置多个SPI从设备,SIMULINK报错 你好,Marius 使用 C 调用方法在 Simulink 中嵌入自定义 C 代码时,我们需要调用官方的 SPI deinit 函数和 SPI init 函数。但是,MATLAB 编译失败,提示找不到库函数,存在路径错误。如何正确设置路径?此外,既然还将使用 MBDT 软件包,那么这两个元器件如何在 Simulink 中共存和编译? 等待您的答复和帮助! Re: s32k146 基于MBDT在同一条SPI总线配置多个SPI从设备,SIMULINK报错 你好@lsw 根据您的使用情况,我认为您不仅需要重新配置 PCS,还需要重新配置 SPI 配置传输的某些设置。 遗憾的是,S32K1 的 MBDT 并不是为此而设计的,也没有任何区块可以帮助您支持这样做。 不过,还有一种方法,即使用自定义代码插入,本文已讨论过这种方法: https://community.nxp.com/t5/NXP-Model-Based-Design-Tools/How-to-use-your-own-C-code-in-our-Toolbox-Battery-Management/ta-p/1119004 你的情况比这更简单。 首先,您必须为 SPI 所需的第一个配置生成代码,并识别生成的代码序列,如下所示。 然后,你可以复制 lpspi_master_config_t 结构,并在其中填充所有连接到 SPI 总线的设备所需的设置。 每次要调整设置时,都需要先调用 LPSPI_DRV_MasterDeinit(uint32_t instance); 然后是带有所需参数的 Init 函数 LPSPI_DRV_MasterInit(0, &lpspiMasterState0, &spiConfig0); 希望这能帮到您, Marius
查看全文
i.MX 800 万像素热敏传感器已互换 HI 这确实很小,但是一位用户向我们询问了 i.MX 8MP 上的热区,这种行为与我们记录的内容没有感知(增加 cpu 负载会使 thermal_zone1 的上升速度比 zone0 快,而根据'类型'文件,zone0 应该是 cpu 传感器) 查看参考手册,它似乎同意 zone0 是 ANAMIX 与 zone1 CPU,所以 DTS 可能错了。 参考手册摘录: - TMU 可以访问芯片上的两个温度测量点。主探头位于 ANAMIX 内部,而远程探针位于 ARM 核心附近。TMU 监测这些站点,如果超过编程阈值,可以发出警报信号。持续捕获温度范围的上限和下限。一组报告寄存器允许读取监测地点的当前温度。 - 在 TMU_TPS 的位描述中,我们还看到"00 仅选择主探针" //"01 仅选择远程探针(靠近 A53)" ,确认索引 0 = anamix,索引 1 = cpu(在 TRITSR 和其他寄存器中,描述仅提及 probe0 和 probe1...) 而在 dts 中,cpu-thermal 使用 tmu 0,soc-thermal 使用 tmu 1,两者正好相反。 阈值是相同的,因此在实践中没有影响;这只是一个提醒。 Re: i.MX 8MP thermal sensors are swapped 感谢您的检查! 作为参考,我已经在内核中修复了这个问题,我注意到的一件事是,区域文件的顺序不是基于索引,而是基于dtb中的位置,所以我必须交换区块才能保留区域: https://github.com/atmark-techno/linux-5.10-at/commit/fe917c7d64b60d2214035cb9d61c5378f782f4d1 这很小,所以如果不一样的话,我可能会像下一个版本一样更新。 谢谢! Re: i.MX 8MP thermal sensors are swapped 你好@martinetd 我们将在下一个版本中修复这个问题。再次感谢。 此致 丹尼尔 Re: i.MX 8MP thermal sensors are swapped 你好@martinetd 感谢您的反馈,我正在检查,稍后会给您回复。 此致 丹尼尔
查看全文
闪存操作期间 S32K312 I2C 从站故障(RTD 5.0.0) 恩智浦专家,您好: 我在项目中使用 S32K312 作为 I2C 从站,连接到 I2C 主站 (FT4222)。 在这个项目中,只使用了 Mem43_Infls(Flash W/R)和 i2C 从属进程,来自主服务器的某些 I2C 消息将触发信号 flash erase & 写入子进程。 在我的测试中,I2C 从站很有可能在收到主站的信息后保持低电平。只有重新启动 I2C 从站才能恢复。 下图是 LA 的测量结果,我认为波形没有问题,因此可能不是电路问题。 我做了两个实验,下面是一些线索 Exp1.我注释了所有OsIf_SuspendAllInterrupts` 和 `SchM_Mem_43_INFLS.c` 中的SchM_Mem_43_INFLS.c`中的 `OsIf_ResumeAllInterrupts`。 故障率急剧下降,约 1/500 的可能性导致 I2C 从属设备故障。此外,事实证明闪存可以在没有中断暂停的情况下正常工作。 Exp2.我对 Flash API 进行了短截线,使其始终返回 E_OK,而不是操作闪存驱动程序。 这样,I2C 从站就不会出现故障(当然,Flash 没有任何功能)。 因此,我的问题是:我是否应该使用任何设置或调整来解决 I2C 从属设备故障问题?如果没有中断保护,闪存能否安全运行? 部分代码和 LA 记录见附件。我不能上传有关 I2C 从站的代码。 硬件设置: S32K312EVB-Q172 FT4222(I2C 主站),波特率:900KHZ-1000KHZ 软件设置: RTD: 5.0.0HF01 用于 S32V 的 S32 SDK Re: S32K312 I2C Slave Failure During Flash Operation(RTD 5.0.0) 你好@acnhyxgxl1、 请参阅 RTD 安装目录下的 RTD_MEM_43_INFLS_UM.pdf。 在同步模式下,驱动器在等待闪存操作完成时阻塞 I2C 总线。 BR,丹尼尔 Re: S32K312 I2C Slave Failure During Flash Operation(RTD 5.0.0) 我最初的设置是使用异步模式,但同步模式也可以完成我的任务。 我在 Mem43_Infls 中尝试了同步/异步两种模式,但似乎只有异步模式才能将数据正确写入闪存。 在同步模式下,尽管 `mem_43_infls_Write` 返回 `E_OK`,但是 Flash 的内容没有改变(通过 S32DS 内存接口进行监测)。 同步模式也无法解决 I2C 问题。每当 I2C 命令触发信号闪存擦除时,I2C 从机都会保持低电平。 附件是我的 mex 文件和 Flash HAL 源代码。也许你能提供一些线索。 Re: S32K312 I2C Slave Failure During Flash Operation(RTD 5.0.0) 你好@acnhyxgxl1、 看起来只有在 AsyncMode == FALSE 时才会调用该函数。 您是如何配置 INFLS 驱动程序的? 此致, 丹尼尔 Re: S32K312 I2C Slave Failure During Flash Operation(RTD 5.0.0) 我发现当闪存在 "Mem_43_INFLS_IPW_Erase"中 处理 "C40_Ip_AccessCode(Mem_43_INFLS_pConfigPtr->MemAcCallBackPtr); " 时,I2C 从站正在等待读取帧,这将导致 I2C 从站故障。 有什么对策可以解决这个问题吗?
查看全文
MIMXRT1166 和 IS25WXxxx - 未找到 SFDP 我有一块使用 1.8V 八进制闪存部分 IS25WX256 的定制板。当我尝试使用安全配置工具初始化内存时,出现错误 " SFDP 未找到 "。我的启动内存配置是: 我把熔丝 BT_FUSE_SEL 烧成了 1,把 BOOT_CFG1 [3:2] 烧到了 0b10(美光八进制)。 我得到的确切错误信息是 /opt/nxp/MCUX_Provi_v10/bin/_internal/tools/spsdk /opt/nxp/MCUX_Provi_v10/bin /opt/nxp/MCUX_Provi_v10/bin/_internal/tools/spsdk/blhost -t 5000 -u 0x15A2,0x0073 -j -- configure-memory 9 0x2000 /opt/nxp/MCUX_Provi_v10/bin { "command": "configure-memory", "response": [], "status": { "description": "20107 (0x4e8b) FlexSPINOR: SFDP Not Found.", "value": 20107 } } 附上 SPT 的全部日志。 我应该从哪里寻找可能的原因? Re: MIMXRT1166 and IS25WXxxx - SFDP Not Found 你好@tbonkers、 非常感谢您关注我们的产品并使用我们的社区。 请检查以下几点: 1:首先将 RT1166 启动模式设置为串行下载器模式。 2:使用 LPUART1 或 USB1 连接 PC 和 RT1166 主板。 3:仔细检查启动内存配置参数是否正确,然后单击 “测试” 按钮。 希望它能帮到你。 敬上 MayLiu
查看全文
MC33774A 上的电池平衡在约 4 小时后意外停止 您好,恩智浦技术支持、 我目前正在使用 MC33774A,遇到了一个与电池平衡稳定性有关的问题。 配置-设备:MC33774A,平衡计时器配置为:86,000 秒,此设置中仅连接 5 个单元 问题描述 在运行电池平衡数小时(通常超过 ~4 小时)后,一些电池通道会意外停止平衡,但不会报告任何错误标记或故障状态。 一旦某个小区信道突然停止,即使重新发出小区平衡 (CB) 命令,也无法再重新激活该小区的平衡。 日志摘录 首次出现(平衡激活,然后意外停止): 时间 SWITCH_MON_CFG0 BAL_STAT0 14808.679 0xAAAA 0x1F 14808.771 0xAAAA 0x1F 14808.865 0xAAAA 0x1F 14808.967 0x5555 0x1F 14809.069 0x5555 0x1F 14809.171 0xAAA0 0x15 => 意外停止 0x2 和 0x8 14809.273 0xAAA0 0x15 14809.375 0xAAA0 0x15 14809.477 0x5555 0x15 14809.579 0x5555 0x15 14809.681 0x5555 0x15 14809.783 0xAAA0 0x15 14809.885 0xAAA0 0x15 14809.987 0xAAA0 0x15 重新尝试启动平衡(受影响的通道无法重新启用): 时间 SWITCH_MON_CFG0 BAL_STAT0 4080.373 0x0 0x0 4080.475 0xAAA0 0x1F => 应该是 0xAAAA 而不是 0xAAA0 4080.577 0xAAA0 0x1F 4080.679 0x5555 0x1F 4080.781 0x5555 0x1F 问题 能否请您帮忙澄清一下: 为什么即使平衡计时器设置为 86,000 秒,某些电池单元平衡通道仍会在数小时后意外停止? 为什么停止时不会生成错误或故障标记? 为什么受影响的频道一旦停止就无法重新启动? 如果能就可能的错误配置、额外寄存器设置或已知限制提供指导,我们将不胜感激。 感谢您的支持。 Mark Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 若 IC 內部 even/odd switch 本身發生錯誤??这个应该怎么理解? MC33774相比MC33771和MC33775,采用了内部硬件以奇/偶通道以各自250ms定时器进行交替开启均衡,即一次奇/偶切换周期为500ms。 此500ms周期为固定值,无法更改 ◆ 奇/偶均衡切换的具体表现为: ➢ 在软件下发开启均衡指令后,不论下发的软件指令要求哪些通道开启均衡,内部硬件会先开启偶通道均衡(如果软件没有下发偶通道均 衡开启,此时均衡不会有动作),这里的偶通道是指第2/4/../18电芯电压通道。 ➢ 内部偶通道均衡计时器达到250ms后,才会切换到250ms的持续奇通道均衡,以此往复直到均衡停止 Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A Hi,     我們在串接 2 顆 MC33774A(CMU1、CMU2) 進行長時間 Cell Balancing(CB) 測試時,串接 18 cell.    現象摘要     CMU1 出現 1 次 fault:MC33774_BAL_SWITCH_FLT_STAT = 0xAAA8     CMU2 出現 2 次 fault:MC33774_BAL_SWITCH_FLT_STAT = 0xAAA8    read and clear fault, CB 繼續正常動作.    ven/Odd switch 由 33774A 內部交錯驅動;若 IC 內部 even/odd switch 本身發生錯誤,是否可能導致此型態(僅雙數通道)之 fault? Best regards, Mark     Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 还是跟之前一样的建议CB测试全部都要mount 上18个cell,然后看测试结果。 Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A Hi, 感謝您的回信, 我在進行 Cell Balancing (CB) 的過程中,遇到 BAL_SWITCH_FLT_STAT0 報告 Fault 的情況。 依照 Application Note 中 Missing Cell Case 的建議,我已經將以下相關寄存器設定為符合5個電芯的連接方式: PRMM_VC_OV_UV_CFG0, PRMM_VC_OV_UV_CFG1, BAL_SWITCH_MON_CFG0,BAL_SWITCH_MON_CFG1 不過,即使在這些設定下,仍然會發生 Switch Fault。 在 CB 過程中讀取到 Fault 後,會清除 Fault flag。 清除後,再次重新啟動 Cell Balancing,功能就可以恢復正常動作。 想請教的問題: 在上述情況下,發生 Switch Fault 是否屬於正常行為? 是否有其他建議的方法或配置,可以 避免此 Fault 的發生? 以上,還請協助確認,感謝! Best regards, Mark Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 1:我的建议是装配上所有的cells 不要只用5个cell测试 2:基于时间的CB测试步骤你参考下面 3:在正常采样+均衡的流程中,一般将BAL_GLOB_TO_TMR设置为较大值(FFFF),然后将BAL_TMR_CH时间设置为想要均衡的时长。 或者将两个时间都设置为较大值,根据采样结果手动关闭/重新开启均衡。 希望能对您有所帮助! Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A Hi,      請參考一下附件, 我們的設計是接5個cell.外部c5p到c18p會接起來.      關於CB的測試 我這邊另外用了兩個對照組.       1. 是連接外部c5p到c18p      2.沒有外接c5p到c18p 也就是完整的18cell      相同的設定5cell CB 38600秒,  但是 讀取 BAL_SWITCH_FLT_STAT0 1012h      1. 0xaaaa, 0x5555 切換      2. 0xa, 0x15 切換      經過2個多小時,       1. 0xaaaa, 0x5540, CB_status 0xa, cell 1,3,5 CB不動作了      已經超過5小時       2. 0xa, 0x15 切換 都正常.      對於我們5cell 連接的電路 是否需要修正?還是其他的建議                     Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 建议您不要用5个cell是去做测试,因为原理图上画的是全部的cell,我还是建议您使用全部的cells安装上去测试,看看测试结果。 Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 1:我还是要先看原理图      基本上是參考貴司提供的設計, 如附件 2:您的CB 测试是基于timer做的吗?如果是基于timer做的话我可以给你一个寄存器设置的示例,另外你有没有激活其他的CB设置?       是基於timer做的, 其他的CB设置指的? 原則上我們啟動CB的流程如下.       1.  enable 相對應的MC33774_BAL_CH_CFG0_OFFSET/ MC33774_BAL_CH_CFG1_OFFSET 1002h 1003h        2. enable CB - time 設定 0x2000 = 86000秒           a. 寫入 MC33774_BAL_GLOB_TO_TMR_OFFSET           b. 相對應的 MC33774_BAL_TMR_CH0_OFFSET           c.  MC33774_BAL_GLOB_CFG_OFFSET 寫入 0x1 | 0x2       3. diasble  CB           time 設定 0 寫入 相對應的 MC33774_BAL_TMR_CH0_OFFSET           邏輯上 是否正確?       3:当CB测试失败以后MC33774处于什么工作模式?          1. 維持 每100ms 讀取電池電壓 - application mode - enable auto pause          2. 以CMU1 為例 第二個跟第四個電池 無預警停止CBㄝ但是其他 1,3,5還繼續CB Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A 1:我还是要先看原理图 2:您的CB 测试是基于timer做的吗?如果是基于timer做的话我可以给你一个寄存器设置的示例,另外你有没有激活其他的CB设置? 3:当CB测试失败以后MC33774处于什么工作模式? Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A Hi,     實際上是每片板子都會發生在已組裝好的電池模組, 上面的現象是我寫一個測試程式測試出來的結果, 電路圖提供需要內部申請,  我們的設計是接5個電池,       CB 的步驟 CMU1對每個cell 執行下面的程式  , CMU2 第一個cell  , 只執行一次 if (enable) {     cbtimer = 0x2000;        status |= Bcc_774a_COM_WriteRegisters(drvConfig, devaddr, MC33774_BAL_GLOB_TO_TMR_OFFSET, &cbtimer, PHY_665A_ONE_REGISTER);        status |= Bcc_774a_COM_WriteRegisters(drvConfig, devaddr, MC33774_BAL_TMR_CH0_OFFSET + cellIndex, &cbtimer, PHY_665A_ONE_REGISTER);     cbxCfgVal = MC33774_BAL_GLOB_CFG_BALEN_ENABLED_ENUM_VAL | MC33774_BAL_GLOB_CFG_TMRBALEN_U16(MC33774_BAL_GLOB_CFG_TMRBALEN_STOP_ENUM_VAL)  | MC33774_BAL_GLOB_CFG_CHUV0BALEN_MASK;         status |= Bcc_774a_COM_WriteRegisters(drvConfig, devaddr, MC33774_BAL_GLOB_CFG_OFFSET, &cbxCfgVal, PHY_665A_ONE_REGISTER);     }else {     cbtimer = 0;     status |= Bcc_774a_COM_WriteRegisters(drvConfig, devaddr, MC33774_BAL_TMR_CH0_OFFSET + cellIndex, &cbtimer, PHY_665A_ONE_REGISTER);     }     其中 每100ms 會讀取 cell電壓, 附件為Freemaster log 1. 時間 2. CMU1 BAL_SWITCH_STAT0 3. CMU2 BAL_SWITCH_STAT0 4. CMU1 BAL_SWITCH_FLT_STAT0 5. CMU2 BAL_SWITCH_FLT_STAT0 6. CMU1 Fault status 7. CMU2 Fault status 8. CMU1  BAL_STAT0 9. CMU2  BAL_STAT0 以上,在實際電池上做CB的測試, 基本上也是前四個小時都正常, 四個小時後就會發生上述有的通道無預警的停止CB.  有勞幫忙確認一下問題. 感謝. Mark Re: Cell Balancing Stops Unexpectedly After ~4 Hours on MC33774A Hi 能否提供您的电路原理图 能否提供您的CB funciton的完整的配置,您是选择的哪种CB 功能,另外cells的电压有没有实时的监控?有没有数据? 您一共发现了多少块板子有这个现象,失效率多少?
查看全文
S32DS 和 S32 调试探针 - 在 S32R47 上调试 KQ8 的奇怪行为 我使用的是 S32DS 3.6.3使用 S32 调试探针在 S32R47 硬件目标上调试 KQ8 DSP 内核。在对 KQ8 应用程序进行单步调试(C HLL 步进,而非汇编指令步进)时,调试器会进入汇编代码的意外部分,最终卡住,系统挂起,需要重新启动。 我附上了一些奇怪行为的截图,似乎调试器开始步进 Xtensa C-runtime 设置或库代码,这在 HLL 步进模式下是不应该发生的。 我还附上了一段屏幕录制视频,显示了具体发生的情况。 客户(Hella/Forvia)报告了这一问题,他们正在寻求恩智浦的指导,请解释这一行为并建议如何避免。 提前感谢! Gary 优先级:高 S32DS 资料来源直接客户 Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 你好@GaryRK、 这确实是一个 S32 调试器问题,是由调试器内部设计的源步进和调试模块中的 KQ8 架构特性造成的。更确切地说,S32 调试器在源步进时是指令步进和运行到内部 bp 的混合。从设计上讲,KQ8 上的 Asm 步骤正在触发一个由调试模块处理的异常,但是如果同时触发另一个异常,则该异常将保持未处理状态,这就是这里发生的情况。我们也可以在劳特巴赫调试器上重现该错误,但使用的是指令步进模式。我们将想办法解决这个问题。在此之前,解决办法是尽可能在函数中使用 SW 断点。 此致, 亚历山德拉 Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 附上用于重现问题的 S32DS 项目 Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 你好,丹妮拉、 在使用具有正确 SRAM 区域定义的修改/自定义 gdbio-stacklocal LSP 时,问题仍然存在。我从我的同事马克那里拿到了改良版,我想这是你们团队做的。无论如何我都附上了它以供参考。 我认为这个问题是 S32 调试探针而不是 KQ8 可执行文件特有的。它似乎无法只执行 C/HLL 步进,并在 Xtensa 操作系统派生的汇编代码中卡住/丢失,这些代码看起来像函数序幕/前导和堆栈管理。 我所附的截图显示了一个例子:我正在步进程序,当输入一个常规的 C 函数时,调试器在一个奇怪的、意想不到的地方停止了 KQ8 的运行。 顺祝商祺! Gary Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 嗨,加里、 你遇到的问题很可能与 LSP 有关,S32DS 从 KQ8 核心配置中重复使用 LSP,其定义的 SRAM 大小为 64M 而不是 8M。为了防止这种行为,你可以手动编辑 LSP,也可以使用专用的代码包工具(例如 Xtensa Explorer)生成这样的 LSP。 顺祝商祺! 达妮埃拉 Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 如果有人见过这种情况,能否请您承认这里确实存在问题,以便我向海拉/福维亚提供一些初步反馈?我们每天都要与客户开会,他们要求我们提供最新信息。 谢谢! Gary Re: S32DS and S32 Debug Probe - Strange Behaviour Debugging KQ8 on S32R47 由于没有收到客户的反馈,因此关闭此问题。
查看全文
STRX - 用于从 GCC 编译器迁移的 GHS 编译器环境 嗨,团队、 客户希望用 GHS 取代 GCC 编译器选项。(S32DS 3.5 底座) 它们有自己的软件(bootlader 和 RTD base),由 gcc 编译器开发。 因此,我已指导他们参考下面的文档安装 GHS 编译器插件,并已安装完毕 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Install-GHS-Compiler-Plugin/ta-p/1436232?attachment-id=132569 但我有一些问题,因为我没有 GHS 编译器,无法在自己身边检查。能否请您检查一下问题? 1.能否提供将使用 GCC 编译器开发的 SW 移植到 GHS 编译器的指南,如在 S32DS 环境中定义__ghs__ 等? 2.我们是否有说明如何使用 GHS 编译器制作项目的文件。(我参考了前一张机票才知道)。 https://community.nxp.com/t5/S32-Design-Studio/GHS-Compiler-error-in-S32DS/m-p/889761 https://community.nxp.com/t5/S32-Design-Studio/GHS-toolchain-project-in-debug-configuration/m-p/1080580 https://community.nxp.com/t5/S32-Design-Studio/5744P-S32-Design-Studio-include-Green-Hills-Compiler-Problem/m-p/652339#comment-850410 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Install-Lauterbach-TRACE32-debugger-plug-in-into-S32/ta-p/1112237 此致, 马可 Re: STRX - GHS compiler environment for migration from GCC compiler 我在项目向导中添加了--为引导加载器附加 RTD。 Re: STRX - GHS compiler environment for migration from GCC compiler 嗨,马可、 遗憾的是,无法在现有项目中更改工具链类型(如从 gcc 改为 GHS)。最简单的方法是创建新项目,在项目向导中选择 GHS 工具链,然后从基于 gcc 的项目中复制现有源代码。
查看全文
[LEAR][S32k311][SBCFS2400] CS2CS 时间配置错误 你好,团队、 李尔在说 ---------------------------------------------------------------------------------------- 在我们使用 MCU S32k311 的项目中,当我们在用于 SBC (FS2400) 的 SPI 模块中配置以下参数时,遇到了一个问题,即 "CS2CS 时间 "的选定值超出了可接受的范围(配置值 = 10us)。 在 SPI UM 中,该参数允许使用的参数范围为 10ns 至 0.01s 能否请您检查一下这种限制来自何处?或者如何绕过它? 注:Tresos 版本 29.0.0 - RTD 5.0.0。 ---------------------------------------------------------------------------------------- BR 斯特凡诺 优先级:高 RTD 资料来源直接客户 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好,我是@StefanoGattazzo、 1.目前,我们将 CS2CS 配置为 2 µs。如果保持这个值不变,会产生什么影响? => 他们的目的是处理与SBC(FS2400)的数据收发。如果他们保留这个值,我不确定 LPSPI 是否能像他们期望的那样工作,他们必须检查这一点。 2. 如果我们采纳您的建议,有几个模块将受到更新频率的影响。能否请您说明对每个人的影响?在应用这些更改时,我们是否需要考虑任何限制或规范? => 我只大致回答了热电阻驱动器的模块问题。 对于通信模块:通常AIPS_PLAT_CLK 将用作计算波特率的时钟源。如果他们更改 AIPS_PLAT_CLK,则需要检查每个模块的配置参数(分频器和相关参数)以达到预期的波特率。 关于定时器模块:通常,AIPS_PLAT_CLK 将用作时钟源,用于生成定时器的时钟值。如果他们更改 AIPS_PLAT_CLK,则需要更改计时器分频器的值以达到预期的超时时间。 其他模块如 DMA、XRDC...AIPS_PLAT_CLK 会影响各模块的运行速度。 顺祝商祺! 丹 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好 DanNguyenDuy, 李尔回答道: ----------------------------------------------------------------------------------------- 我应用了您建议的更改,并确认降低时钟频率成功绕过了 Tresos 配置问题。谢谢您的建议。 我有两个后续问题: 目前,我们将 CS2CS 配置为 2 µs。如果保持这个值不变,会产生什么影响? 如果我们采纳您的建议,有几个模块将受到更新频率的影响。能否请您说明对每个人的影响?在应用这些更改时,我们是否需要考虑任何限制或规范? 使用 AIPS_PLAT_CLK 的模块(从 60 MHz 到 20 MHz): 模块 备注 LPSPI0 已使用 — 此模块触发信号了最初的问题。 FlexCAN 已使用,有什么影响? LPUART 未使用 - 是否有影响? FlexIO 未使用 - 是否有影响? QuadSPI 未使用 - 是否有影响? MSCM 已使用--有什么影响? INTM 已使用--有什么影响? SEMA42 未使用 - 是否有影响? EIM 未使用 - 是否有影响? CRC 已使用--有什么影响? FCCU 已使用--有什么影响? 机构风险管理 已使用--有什么影响? AXBS 已使用--有什么影响? XBIC 已使用--有什么影响? XRDC 已使用--有什么影响? eDMA 未使用 - 是否有影响? 使用 AIPS_SLOW_CLK 的模块(从 30 MHz 到 20 MHz): 模块 备注 LPUART 未使用 - 是否有影响? LPI2C 未使用 - 是否有影响? LPSPI[1...5] 未使用 - 是否有影响? SIUL2 已使用--有什么影响? MCM 有什么影响? VIRT_WRAPPER 未使用 - 是否有影响? MC_CGM 已使用--有什么影响? FIRC 已使用--有什么影响? SIRC 已使用--有什么影响? FXOSC 已使用--有什么影响? PLLDIG 已使用--有什么影响? MU_n 未使用 - 是否有影响? HSE_B 未使用 - 是否有影响? PMC 已使用--有什么影响? MC_ME 已使用--有什么影响? WKPU 未使用 - 是否有影响? REG_PROT 已使用--有什么影响? CMU_FC 已使用--有什么影响? CMU_FM 已使用--有什么影响? STCU2 已使用--有什么影响? TRGMUX 未使用 - 是否有影响? TSPC 已使用--有什么影响? PIT_0 已使用--有什么影响? PIT_1 已使用--有什么影响? SWT_n 未使用 - 是否有影响? RTC 未使用 - 是否有影响? 温度传感器 已使用--有什么影响? LPCMP_n 已使用--有什么影响? PFLASH/FLASH 已使用--有什么影响? PRAM/SRAM 已使用--有什么影响? JDC 已使用--有什么影响? --------------------------------------------------------------------------------------- BR 斯特凡诺 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好,我是@StefanoGattazzo、 有一个基于"SpiTimeCs2Cs" 和"PrescaledClock" 的公式来计算"DesiredTimeClock" 是否超出范围。 "预缩放时钟" 将根据波特率和 McuClockReferencePoint_AIPS_PLAT_CLK 的值进行计算。因此,要绕过您的问题,可以降低 McuClockReferencePoint_AIPS_PLAT_CLK 的值。 例如:将 McuClockReferencePoint_AIPS_PLAT_CLK 配置为 2.0E7,而不是 6.0E7 顺祝商祺! 丹 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好 DanNguyenDuy, 附上。 BR 斯特凡诺 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好,我是@StefanoGattazzo、 能否将 Spi.xdm 和 Mcu.xdm 文件发给我? 顺祝商祺! 丹 Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好 DanNguyenDuy, 李尔回答道: 在执行您关于 CS2CS 时序的建议后,AIPS_PLAT_CLK 频率从 60 MHz 降至 20 MHz。结果,SPI 通信波特率从所需的 3 兆赫降低到大约 2.875 兆赫(参见捕获 1)。尽管进行了配置调整,但由于时钟分频公式——20 MHz 不能均匀地除以 3,因此实现精确的 3 MHz 波特率还是不可行的(参见捕获 2)。 捕获 1: 捕获 2: 但是,在使用测试代码(捕获 3)进行物理测试时(在专属区域内连续发送两个 SPI 命令并测量了它们之间的间隔),发现 CS2CS 定时为 48 µs。该值超过了 5 µs 的要求并符合 SBC 规范(参见捕获 4)。 捕获 3: 捕获 4: 根据整体分析,如果我们保留当前配置--其中 CS2CS 设置为 2 µs,但测量的物理值为 48 µs--即使与预期配置不符,我们还能继续使用该设置吗?换句话说,依靠物理测试结果是否可以接受? BR Stefano Re: [LEAR][S32k311][SBCFS2400] CS2CS time config error 你好,我是@StefanoGattazzo、 这个问题应该由用户来回答,因为他们打算使用一个错误的现实配置。 顺祝商祺! 丹
查看全文