Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
由 MCUxpresso IDE 生成的 Makefile 执行 大家好, 我们使用了 MCUxpresso IDE,导入了 imxrt1170 评估板的示例 SDK,并构建了项目文件。 MCUxpresso IDE 本身已自动生成了 Makefile 文件。所以我的问题是,如何在不使用 MCUxpresso 的情况下,在我的 Windows 系统中执行此 make 文件,例如使用 make all、make clean 和 make 命令来生成二进制文件(MCUxpresso 使用的是 .axf 文件)。 我还附上了 Makefile 文件,供您参考。 Re: Makefile execution generated by MCUxpresso IDE 你好, 我是Windows用户。使用MCUXpresso 的 makefiles 完全取决于%PATH%变量。 我发现从命令行运行“ make ”命令的最简单方法是按住Ctrl键并单击MCUXpresso IDE右下角的项目名称: danielholala_0-1784882835421.png 这将在您的项目目录中打开一个终端窗口,并将%PATH%正确设置,以便您可以输入“ make clean ”和“ make -j8 all ”以及类似的命令。 当然,您可以关闭 IDE,终端窗口仍会保持打开状态。您还可以检查%PATH%变量。在任何其他终端窗口中设置此路径,您也可以在那里运行 make 命令。 希望你能好好利用它。 此致, 丹尼尔 Re: Makefile execution generated by MCUxpresso IDE Eclipse 中自动生成的 make 文件(托管 make)不具备可移植性。您可以使用 SDK(非 IDE)中的 make 文件,或者更好的选择是使用 CMake 来获得一个可移植的构建系统。我正在使用https://mcuoneclipse.com/2023/04/19/building-a-triumvirate-from-eclipse-cdt-to-cmake-cmd-and-visual-studio-code/中描述的方法,以便同时使用 IDE、make 和 CMake 进行构建。 Re: Makefile execution generated by MCUxpresso IDE 嗨@Jeevan , 我认为你可以参考 gcc 项目在 SDK 中构建它,因为它也使用 makefile,而无需 IDE。 关于gcc版本方法,您可以参考SDK文档: SDK_2_14_0_MIMXRT1170-EVK\docs\MIMXRT1170-EVK MCUXpresso SDK 入门指南.pdf 第六章 使用 Arm ® GCC 运行演示 您还可以参考我的 Ubuntu 版本方法文档: https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/RT-Linux-SDK-build-based-on-Ubuntu/ta-p/1690185 希望对您有所帮助! 如果您还有任何疑问,请随时告诉我。 顺祝商祺! kerry
記事全体を表示
S32K396 RTD 5.0: eMIOS CH0/CH1 PWM Not Generated and Unexpected LCU Output Behavior Hi NXP Team, I am working on an S32K312 using S32 Design Studio 3.6.7 with RTD 5.0 (AUTOSAR 4.7). I have configured eMIOS to generate six PWM signals through eMIOS → TRGMUX → LCU → Output Pins for motor control. I am facing two issues: eMIOS CH0 and CH1 do not generate PWM, while CH2 to CH5 generate PWM correctly. Clock, Port, eMIOS MCL, eMIOS PWM, Global Time Base, TRGMUX, and LCU are all initialized successfully, and the PWM configuration for CH0 and CH1 is the same as the working channels. I have observed unexpected behavior with the LCU outputs. When I set LCU Output Index 4 to 0, Output 4 continues to generate PWM, but Output 5 becomes permanently OFF. Similarly, when I set LCU Output Index 2 to 0, Output 2 continues to generate PWM, but Output 3 becomes permanently OFF. I expected each LCU output to operate independently, but changing one output appears to affect the adjacent output. Could you please advise: Are there any hardware or RTD restrictions for using eMIOS CH0 and CH1 with the LCU? Is any additional TRGMUX or LCU configuration required for CH0 and CH1? Are LCU outputs internally paired or dependent in complementary mode? Is this behavior expected, or does it indicate an incorrect LCU/TRGMUX configuration or a known issue in RTD 5.0? I have attached my project and configuration files for reference. Thank you for your support. Re: S32K396 RTD 5.0: eMIOS CH0/CH1 PWM Not Generated and Unexpected LCU Output Behavior Hi @Esakki  I made a few tests by modifying the period, duty cycle, and phase shift of the PWM signals generated by eMIOS channels 0 and 1, based on the PMSM Motor Control Sensorless Dual Shunt FOC on FRDM-A-S32K312 demo application. During these tests, the LCU generated output signals as expected, which suggests that the eMIOS channels themselves do not have any inherent limitation in this use case. Based on the results, it appears that the current PWM configuration may be causing the LCU output to remain constantly low, even though both PWM signals are correctly routed to and received by the LCU.  I would recommend reviewing the previously shared demo application, as well as the example provided in the thread S32M27x/S32K3 – eMIOS/TRGMUX/LCU – [RTD600]. These examples demonstrate a working eMIOS → TRGMUX → LCU configuration and may serve as a useful reference. BR, vaneB
記事全体を表示
S32K312 上的 Fat 文件系统集成(RTD 6.0.0,非AUTOSAR、SPI SD卡驱动程序) 您好, 我已经成功地在 S32K312 EVB 上使用 RTD 6.0.0(非 AUTOSAR Lpspi_Ip 驱动程序)实现了通过 SPI 的 SD 卡驱动程序。 以下功能已实现: SD卡初始化(CMD0、CMD8、ACMD41、CMD58) 单块读取(CMD17) 单块写入(CMD24) 多块读取(CMD18) 多块写入(CMD25) 已通过向 SD 卡写入数据并成功读取数据验证了驱动程序。 现在我想添加对 FAT 文件系统的支持,以便在 PC 上创建、写入和读取文件。 我有几个问题: NXP 是否为使用 RTD 6.0.0(非 AUTOSAR)的 S32K312 提供或支持 FatFs 集成?如果没有,是否有其他 S32K3 设备的示例可供参考? NXP是否有任何中间件软件包可以将FatFs与SD卡集成? 如果没有官方示例,建议的方法是集成 Elm-Chan FatFs 库并实现所需的 diskio.c 函数。使用我现有的SD卡驱动程序进行接口? 是否有任何参考项目、应用笔记或示例库演示了在 S32K3 设备上集成 FAT 文件系统? 我有点困惑,不知道哪种方法更适合产品开发。任何指导或参考资料都将不胜感激。 谢谢! Re: Fat Filesystem Integration on S32K312 (RTD 6.0.0, Non-AUTOSAR, SPI SD Card Driver) 嗨@parvathitp 目前 S32K312 尚不支持 FatFS 文件系统。在 S32K3 系列中,FatFS 集成仅适用于包含 uSDHC 外设的设备,该外设提供微控制器和 SD 卡之间的硬件接口。 对于这些设备,我们提供了一个 SDHC 软件栈,通过 uSDHC 驱动程序简化对 SD 总线的访问,并实现与 FatFS 的集成。 社区帖子“将 FatFs 文件系统移植到 KL26 SPI SD 卡代码”中描述的方法和概念可能对您的实现有所帮助。虽然该示例基于 KL26 设备,但正如标题所示,它描述了如何将 FatFS 文件系统移植到不包含 SDHC/uSDHC 外围设备的设备上,这与您的用例类似。 BR,VaneB
記事全体を表示
Fat Filesystem Integration on S32K312 (RTD 6.0.0, Non-AUTOSAR, SPI SD Card Driver) Hi, I have successfully implemented an SD Card driver over SPI on the S32K312 EVB using RTD 6.0.0 (Non-AUTOSAR Lpspi_Ip driver). The following functionality is already working: SD card initialization (CMD0, CMD8, ACMD41, CMD58) Single block read (CMD17) Single block write (CMD24) Multiple block read (CMD18) Multiple block write (CMD25) The driver has been verified by successfully writing data to the SD card and reading it back. Now I would like to add FAT filesystem support so that files can be created, written, and read on a PC. I have a few questions: Does NXP provide or support FatFs integration for the S32K312 using RTD 6.0.0 (Non-AUTOSAR)? If not, are there any supported examples available for other S32K3 devices that can be used as a reference? Is there any middleware package from NXP for integrating FatFs with an SD card? If there is no official example, is the recommended approach to integrate the Elm-Chan FatFs library and implement the required diskio.c interface using my existing SD card driver? Are there any reference projects, application notes, or example repositories that demonstrate FAT filesystem integration on S32K3 devices? I am a bit confused about which approach is recommended for production development. Any guidance or references would be greatly appreciated. Thank you. Re: Fat Filesystem Integration on S32K312 (RTD 6.0.0, Non-AUTOSAR, SPI SD Card Driver) Hi @parvathitp  There is currently no specific FatFS support for the S32K312. Within the S32K3 family, FatFS integration is available only for devices that include the uSDHC peripheral, which provides the hardware interface between the microcontroller and an SD card. For these devices, an SDHC software stack is provided to simplify access to the SD bus through the uSDHC driver and to enable integration with FatFS. The approach and concepts described in the community thread "Porting FatFs file system to KL26 SPI SD card code" may be a useful reference for your implementation. Although the example is based on the KL26 device, as the title suggests, it describes how to port the FatFS file system to a device that does not include an SDHC/uSDHC peripheral, which is similar to your use case. BR, VaneB
記事全体を表示
构建 Yocto Linux 时出现基础文件错误 构建 Yocto 错误。当我按照 NXP 的 Yocto 指南进行版本时。如何修复此错误? 警告:失败的 setscene 任务的日志文件位于 /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/armv8a-poky-linux/ptest-runner/2.4.5+git/temp/log.do_package_setscene.1680451 警告:场景设置任务(/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.bb:do_package_setscene)执行失败,退出代码为“1”——将改为运行实际任务。 错误:base-files-3.0.14-r0 do_package:执行 exec_func_python() 自动生成的 Python 函数时出错: 导致此异常/失败的 Python 调用堆栈跟踪如下: 文件:'exec_func_python() autogenerated',行号:2,函数: 0001: *** 0002:perform_packagecopy(d) 0003: 文件:'/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/classes-global/package.bbclass',行号:363,函数:perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD} " 0362:perform_packagecopy[dirs] = "${PKGD} " *** 0363: 0364:python populate_packages() { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = " ${D} " 文件:'/usr/lib/python3.10/subprocess.py'行号:421,函数:check_output 0417:否则: 0418:空 = b'' 0419: kwargs['input'] = 空 0420: *** 0421: 返回 run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): 文件:'/usr/lib/python3.10/subprocess.py'lineno: 526, function: run 0522: # 我们不调用 process.wait()作为。 __exit__它能帮我们做到这一点。 0523:提高 0524: retcode = process.poll() 0525:如果检查并返回代码: *** 0526: 引发 CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: 返回 CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: 异常:subprocess.CalledProcessError:命令“tar --exclude=./sysroot-only”-cf - -C /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/image -p -S .| tar -xf - -C /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/代码包,软件包' 返回非零退出状态 2。 子进程输出: 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的 bin 路径未知 无法为“bin”分配绝对路径。 tar:./usr/bin:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./usr/lib:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径游戏 无法为“games”分配绝对路径。 tar:./usr/games:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar:./usr/share/dict:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar: ./usr/share/man:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar:./usr/share/doc:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 焦油:./usr/share/doc/base-files-3.0.14:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar:./usr/share/misc:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar: ./usr/share/common-licenses:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径共享 无法为“share”分配绝对路径。 tar:./usr/share:无法创建目录:地址错误 tar:./usr/share/info:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的 sbin 路径未知 无法为“sbin”分配绝对路径。 tar:./usr/sbin:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的源路径未知 无法为“src”分配绝对路径。 tar:./usr/src:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径包含 无法为“include”分配绝对路径。 tar:./usr/include:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径 tmp 无法为“tmp”分配绝对路径。 tar:./var/tmp:无法创建指向“volatile/tmp”的符号链接:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的基本路径未知,路径为本地路径 无法为“local”分配绝对路径。 tar:./var/local:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./var/lib:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./var/lib:无法创建目录:地址错误 tar:./var/lib/misc:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基路径,路径易失性 无法为“volatile”分配绝对路径。 tar:./var/volatile:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基路径,路径易失性 无法为“volatile”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基路径,路径易失性 无法为“volatile”分配绝对路径。 tar:./var/volatile:无法创建目录:地址错误 tar:./var/volatile/tmp:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基路径,路径易失性 无法为“volatile”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基路径,路径易失性 无法为“volatile”分配绝对路径。 tar:./var/volatile:无法创建目录:地址错误 tar:./var/volatile/log:无法创建目录:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径日志 无法为“log”分配绝对路径。 tar:./var/log:无法创建指向“volatile/log”的符号链接:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的基本路径未知,路径锁定 无法为“lock”分配绝对路径。 tar:./var/lock:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径假脱机 无法为“spool”分配绝对路径。 tar:./var/spool:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径备份 无法为“备份”分配绝对路径。 tar:./var/backups:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径运行 无法为“run”分配绝对路径。 tar:./var/run:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径为 nsswitch.conf 无法为“nsswitch.conf”分配绝对路径。 tar:./etc/nsswitch.conf:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径 hosts 无法为“hosts”分配绝对路径。 tar:./etc/hosts:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径问题.net 无法为“issue.net”分配绝对路径。 tar:./etc/issue.net:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径配置文件 无法为“profile”分配绝对路径。 tar:./etc/profile:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径默认值 无法为“default”分配绝对路径。 tar:./etc/default:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的基本路径未知,路径问题 无法为“issue”分配绝对路径。 tar:./etc/issue:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径骨架 无法为“skel”分配绝对路径。 tar:./etc/skel:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径骨架 无法为“skel”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径骨架 无法为“skel”分配绝对路径。 tar:./etc/skel:无法创建目录:地址错误 tar:./etc/skel/.profile:无法打开:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径骨架 无法为“skel”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径骨架 无法为“skel”分配绝对路径。 tar:./etc/skel:无法创建目录:地址错误 tar:./etc/skel/.bashrc:无法打开:没有该文件或目录 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径 mtab 无法为“mtab”分配绝对路径。 tar:./etc/mtab:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的基本路径未知,路径主机名 无法为“hostname”分配绝对路径。 tar:./etc/hostname:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径 fstab 无法为“fstab”分配绝对路径。 tar:./etc/fstab:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基本路径,路径 shell 无法为“shells”分配绝对路径。 tar:./etc/shells:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径 host.conf 无法为“host.conf”分配绝对路径。 tar:./etc/host.conf:无法打开:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 fd 4 的未知基础路径,路径 motd 无法为“motd”分配绝对路径。 tar:./etc/motd:无法打开:地址错误 tar:由于之前的错误,退出状态为失败。 错误:故障日志文件存储在:/home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/temp/log.do_package.1734591 错误:任务 (/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/recipes-core/base-files/base-files_3.0.14.bb:do_package) 执行失败,退出代码为“1” Re: base-files error when build the yocto linux 谢谢你。它已激活 Re: base-files error when build the yocto linux 在你的 Ubuntu 电脑上,运行命令“sudo apt install tar=1.34+dfsg-1build3”
記事全体を表示
s32k344、LPSPI、連続シーケンスのフレーム間のクロックギャップが小さい - NXP MCU S32K344 LPSPIモジュール(コントローラ)とHolt HI-35930(ペリフェラル)間の通信に問題が発生しています。 このコードは、それぞれ8ビットのワードである2つのフレームを書き込みます。LPSPI経由でARINC通信デバイスHI-35930へ送信する。設定がすべて正しいことを確認しました。cpol = 0、cpha = 0、LSBF = MSB、BYSW=no、RXMSK、TXMSK =0、TCR[FRMSZ]=7。 このコードは、TRC[CONT] および TRC[CONTC] ビットを使用して PCS を制御します。PCSは2フレームのシーケンス全体にわたって主張されたままです(図を参照)。時計も同様に、2つのフレームにわたって脈動する。SOUT信号には期待されるデータが含まれており、フレーム1はオペコード0x80、フレーム2はダミーデータ0x00です。 問題はSINにある。データがありません。(オペコード0x80はレジスタを読み取るためのもので、少なくとも1ビットがハイになっていることを期待していました。) RXCOUNTは各フレームで増加し、最大で2になります。 -同じ設定を使用して、同じオペコードとデータを1つの16ビットフレームに連結し、フレームが1つしかないためTRC[CONT]とTRC[CONTC]を0に設定します。TRC[FRMSZ]=15。送信は正常に機能し、SINは実際のデータを返します。 何が問題だと思いますか? 黄色 - PCS信号 ピンク - クロック信号 ブルー - MCUにとって罪 グリーン - MCUのSOUT   Re: s32k344, LPSPI small clock gap between frames of a continuous sequence MOSIとMISOのデータは空です。正しいSPIバスのハードウェア回路図設計はありますか? Re: s32k344, LPSPI small clock gap between frames of a continuous sequence こんにちは、 @ekmas-19 さん。 あなたは、送信されたデータは2バイト(0x80と0x00)であると説明しました。しかし、オシロスコープには、8ビットのフレームが2つではなく、わずかな間隔で区切られた32ビットのワードが2つはっきりと表示されている。これを詳しく説明してもらえますか? フレーム間の間隔については、これは想定される動作です。CONT = 1 は、フレーム間で CS/PCS をアサートするだけであり、SCK には影響しません。クロックはCONT = 0の場合とまったく同じように動作します。 よろしくお願いいたします。 ダニエル
記事全体を表示
FRDM-S32K344 マニュアルエラー こんにちは、 FRDM-A-S32K344開発ボードマニュアル(UM12406)の11ページに誤りがあります。このコメントは、コミュニティの皆さんと、私と同じ問題に遭遇した方々のために投稿します。 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外し、代わりにR42に部品を取り付けなければなりません。 正しくは: 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外す必要があります。そして代わりにR42にデータを入力する必要がある。」 または: 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外す必要があります。OTPエミュレーションモードに入るには、R42にデータを入力する必要があります。 Re: FRDM-S32K344 manual error ハイ ご報告ありがとうございます! R43を取り外し、R42を取り付けると、 FS26_VDEBUGの電圧はFS26データシートのVOTP (OTPエミュレーションモード)の範囲内になります。したがって、私はあなたの見解に賛成しますし、2番目の主張の方がより包括的だと思います。 この問題を報告するために著者に連絡させてください。 よろしくお願いいたします ロビン
記事全体を表示
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);」という行が現れると、デバッグプロセスが自動的に終了してしまいます。さらに、リセットボタンを押さなくてもリセットランプが点灯したままになり、結果としてデバイスが全く動作しなくなります。IP_MC_MEを使用すると、プログラムは正常に実行されますが、結果が何も生成されません。他のコンポーネントも起動しない。このコードスニペットはモデル388ではうまく動作していないようです。 Re: S32K388 JumpApp Only runs with core 0 active. こんにちは@zhangyu5454さん MCUがシステムリセットを経た場合、リセットのソースを読み取る必要があります。 電話してみていいよ Power_Ip_GetResetReason(); main() の開始時、 Power_Ip_Init(); おそらく根本原因はV15スイッチドモード電源であり、ハードウェアデザインと一致している必要があります。 danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png 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さん では、リセットの理由は何ですか? 推測するなら、POR/LVRだろう。 V15は基板上でどのように電源供給されていますか? Power_IPを適切に設定していますか? よろしくお願いいたします。 ダニエル よろしくお願いします。 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは、 @zhangyu5454 さん、 PCB上でSMPSを使用していると理解していますので、設定ツールで有効にする必要があります: danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png SXOSCについては、無効になっていることを確認してください。 danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 ご返信ありがとうございます。私はこれらの機能についてあまり詳しくありません。関連するサンプルファイルやチュートリアルファイルはありますか?S32K358のサンプルコードを参考にしようとしましたが、うまくいきませんでした。V15電源については、外部の3.3Vからトランジスタを介してマイクロコントローラで制御され1.5Vが生成され、1.1Vもマイクロコントローラ制御で生成されることがわかりました。また、私のハードウェア設計に32.768のクリスタルオシレーターがなく、プログラムがループ内でClock_Ip_ExtOsc.cで止まってしまうことにも気づきました Do { SxoscStatus = ((Clock_Ip_apxXosc[インスタンス]-統計>STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } 一方で(((0U == SxoscStatus) && (FALSE = TimeoutOccurredd)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png こんにちは、あなたの方法に従ってV15を有効にしてSXOSCを無効にしました。しかし、デバッグが `Power_Ip_PMC_PowerInit` 内の `IP_PMC->SMPSCONFIG = ConfigValue;` という行に到達すると(この行は `Power_Ip_Init` 内にあります)、デバッグセッションは自動的に終了し、ボードのリセットインジケータ LED は薄暗い一定の光で点灯したままになります。 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは、 @zhangyu5454 さん、 これら2つの書き込みにおけるConfigValueの値は何ですか? IP_PMC->CONFIG = ConfigValue; IP_PMC->SMPSCONFIG = ConfigValue; MCUは誤った電源モード設定のためにリセットされています。 次のループをmain()の最初に配置し、リセット後にデバッグできるようにします。 volatile uint32_t loop = 1; while (loop) { } ループ変数はデバッガから変更することで実行を継続できます。 ループ内でコードが停止したら、以下を呼び出します。 Power_Ip_GetResetReason() MCU_POWER_ON_RESETを返すはずです。 また、リセットイベントについての詳細を得るには、低電圧状態制御(LVSC)レジスタもご覧ください。 よろしくお願いいたします。 ダニエル Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは@zhangyu5454さん 共有してくれた設定値では、EVBでこの問題を再現できません。 XS32K388EVB-Q289を使用していますか?もしそうなら、ジャンパーJ118の位置を教えていただけますか? danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png カスタム基板を使用している場合は、回路図を共有してください。ここで共有したくない場合は、サポートチケットを作成し、そこに回路図を添付してください。 ありがとうございました。 BR、ダニエル Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @こんにちは@zhangyu5454 、 それを説明するのは難しい。 Power_Ipの初期化時にオシロスコープでV15とV11の電圧を測定できますか?
記事全体を表示
LPC5411X READ I am currently using SWD to debug the LPC54113 chip. I have halted the core and then set some debug registers starting with 0xE000. I found that when I read the internal flash of the chip, the address 0x0~0x200 always had incorrect data, resembling an interrupt vector table rather than the actual program stored in the FLASH. By reading from other addresses, the correct data can be obtained, all of which are 0xFFFFFFFF. The chip did not program any data. Through using JLINK for reading, the address 0x0~0x200 are 0xFFFFFFFF. However, JLINK uses FLM to write to RAM for reading, I cannot know how it processes the reading of the 0x0 to 0x200 address range. The steps I followed were: write abort, 0x1E write select, 0x0 write tar, 0x0 write csw, 0x23000012 and then read drw until the internal flash end address. vector.png  LPC541XX  LPC54xxx Re: LPC5411X READ I want to read the physical flash contents in 0x0, What should I do? I need to change AP bank or other operations? Re: LPC5411X READ Hello, You may be reading the Cortex-M memory alias rather than the physical flash contents. On the LPC54113, address 0x00000000 is mapped to the currently active memory (flash, boot ROM, or RAM) depending on the boot configuration and remap settings. If the device is blank, the boot ROM can present a valid vector table at 0x0, which explains why you see interrupt vectors instead of 0xFFFFFFFF.     Re: LPC5411X READ Hi, When reading memory through the SWD AHB-AP with TAR = 0x0 , the returned data reflects the current system memory mapping visible to the CPU. For LPC5411x devices, the first 512 bytes at address 0x00000000 are remapped to the Boot ROM, so the data observed in this region is a valid interrupt vector table rather than the actual contents stored in Flash.   If it is necessary to read the original contents of the physical Flash region from 0x00000000 to 0x000001FF, do not rely on a simple linear read using TAR = 0x0 and consecutive DRW accesses. Instead, a Flash algorithm or IAP-based method that can access the raw Flash array contents should be used, like you use Jlink to read.     BR Alice Re: LPC5411X READ The LPC5411X did not have the IAP sample for read physical flash. noread.png  
記事全体を表示
使用 ADC 触发唤醒 S32K312 MCU RTD3.0.0 S32DS3.5 您好, 我正在使用 S32k312 控制器 mini EVBKIT 来检查 MCU 的睡眠和唤醒功能。我正在尝试通过在 ADC 中施加低阈值和高阈值电压值,利用 ADC 中断唤醒 MCU。此功能能否使MCU唤醒? LavanyaPilli_1-1784889112438.png Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 你好@LavanyaPilli , 当然。如果您使用 PTA1 (ADC0_S9) 作为外部中断唤醒,您可以参考 S32K312_IOMUX.xlsx 文件查找分配的 WKPU 通道: Julin_AragnM_0-1785173159422.png PTA1 是 WKPU[5],但是由于有 4 个内部唤醒源,您还必须添加 +4 作为偏移量。这使得 PTA1 WKPU_CH_9。 Julin_AragnM_1-1785173923562.png 您必须初始化 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的唤醒设置。
記事全体を表示
imx8mp pcie内部时钟phy poweron failed --> -110 imx8mp + nxp linux6.1.55 内核在调试wifi时pcie出现以下问题,测试内部时钟,无波形,reset-gpio是高电平 ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y ) root@imx8mpevk:~# dmesg|grep pcie [ 2.241914] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [ 2.249233] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [ 2.257455] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [ 2.322972] phy phy-32f00000.pcie-phy.4: phy poweron failed --> -110 [ 2.322980] imx6q-pcie 33800000.pcie: waiting for PHY ready timeout! [ 2.323033] imx6q-pcie: probe of 33800000.pcie failed with error -110 设备树: &pcie_phy {     //clocks = <&hsio_blk_ctrl>;     clocks = <&clk IMX8MP_CLK_HSIO_AXI>;     clock-names = "ref";     fsl,clkreq-unsupported;     fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;     status = "okay"; }; &pcie {     pinctrl-names = "default";     pinctrl-0 = <&pinctrl_pcie0>;     reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>;     reset-gpio-active-high;     clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,          <&clk IMX8MP_CLK_PCIE_ROOT>,          <&clk IMX8MP_CLK_HSIO_AXI>;     clock-names = "pcie", "pcie_aux", "pcie_bus";     assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;     assigned-clock-rates = <10000000>;     assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;     // vpcie-supply = <&reg_pcie0>;     status = "okay";     // wifi_wake_host {     //  compatible = "nxp,wifi-wake-host";     //  interrupt-parent = <&gpio5>;     //  interrupts = <21 IRQ_TYPE_LEVEL_LOW>;     //  interrupt-names = "host-wake";     // }; }; 如果选用     clocks = <&hsio_blk_ctrl>;而不是clocks = <&clk IMX8MP_CLK_HSIO_AXI>; 则报错,并超时 root@imx8mpevk:~# dmesg|grep pcie [    4.081133] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [    4.088341] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [   13.028064] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [   13.035248] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [   13.049053] platform 33800000.pcie: deferred probe pending [   13.060015] platform 32f00000.pcie-phy: deferred probe pending    下面是我的原理图 gaotao_0-1784881982173.png 是哪个环节出了问题?求教!感谢!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 你好@gaotao 希望你一切都好。 从你的 DTS 来看,reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>和reset-gpio-active-high同时存在是矛盾的。 移除reset-gpio-active-high ,在 GPIO 规范中仅保留GPIO_ACTIVE_LOW ,或者如果您的硬件有反相器,则更改为GPIO_ACTIVE_HIGH 。 另外,请尝试应用以下补丁: https://www.spinics.net/lists/devicetree/msg558950.html https://www.spinics.net/lists/devicetree/msg558947.html https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html 这些补丁修改了 imx8mp-blk-ctrl.c 文件。驱动程序用于暴露合适的PLL时钟并对其进行配置。 顺祝商祺! 萨拉斯。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 十分感谢你的提醒,我会告知硬件部门的同事了解这个问题,若有后续进展我会再次联系并感谢 Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas ,非常感谢你的回复 1、reset-gpio-active-high;我也意识到了,已经删除了,感谢提醒 2、所以我应该使用 clocks = <&hsio_blk_ctrl>;再加那四个驱动补丁,而不是使用 clocks = <&clk IMX8MP_CLK_HSIO_AXI>;吧? 3、早些时候我也看到了社区别人回复说用那四个补丁,很可惜我们这边区域好像访问不到那个网站,我再想想办法,如果方便的话希望能直接贴出补丁,万分感谢! Re: imx8mp pcie内部时钟phy poweron failed --> -110 现在好像是不一样的问题了,报了Phy link never came up,是pcie自身还有问题,还是外设有问题? root@imx8mpevk:~/rtw# dmesg|grep pcie [ 2.264927] imx8-pcie-phy 32f00000.pcie-phy: wifi PCIe ref clk: 100000000 Hz [ 2.274508] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [ 2.281827] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [ 2.290063] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [ 2.336901] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 16G [ 3.410666] imx6q-pcie 33800000.pcie: Phy link never came up1 [ 4.481178] imx6q-pcie 33800000.pcie: Phy link never came up1 [ 4.487067] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 [ 4.570576] pcieport 0000:00:00.0: PME: Signaling with IRQ 223 我的外设是wifi芯片 8822ce,手动或者自动加载都不会有输出信息 root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0 Class 0604: 16c3:abcd 这次大概是啥问题呢?启动稳定之后我确实没测到参考时钟的波形(我的硬件决定我得拆了网卡才能测波形),没测到但是pcie输出确实改变了,至少 readl_poll_timeout通过了,reset我应该能保证是在高电平了
記事全体を表示
S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hi, I am using S32k312 controller mini EVBKIT, for checking the functionality of MCU sleep and wakeup. I am trying to make MCU-Wake up through ADC interrupt by giving low threshold and high threshold voltage value in ADC. Do this functionality work to make MCU wakeup. LavanyaPilli_1-1784889112438.png Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @LavanyaPilli Since ADC module is not available in Standby, you cannot use it to wakeup (unless the ADC pin is used as interrupt wakeup). However, LPCMP is available in Standby, and can be used instead: Julin_AragnM_2-1784927254532.png LPCMP reads the analog input pin voltage against a programmable DAC reference and generates a wakeup once the threshold is crossed. You can refer to the following examples: S32K312 : MCU wakeup using LPCMP trigger RTD3.0.0 S32DS3.5 [RTD600 IP] S32K3X4EVB-T172 LPCMP Wake-up S32K3 Low Power Management AN and demos Best regards, Julián Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hi, Thank you for the clarification. I will evaluate using the LPCMP for the Standby wakeup as you suggested. However, for our application requirements, we still need to implement the ADC interrupt wakeup functionality. Could you please assist me in verifying MEX file, if the ADC can be configured specifically as an external interrupt wakeup. Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @LavanyaPilli, Sure. If you are using PTA1 (ADC0_S9) as external interrupt wakeup, you can refer to the S32K312_IOMUX.xlsx file to find the assigned WKPU channel: Julin_AragnM_0-1785173159422.png PTA1 is WKPU[5], however, you must also add +4 as offset because of the 4 internal wake up sources. This makes PTA1 WKPU_CH_9. Julin_AragnM_1-1785173923562.png You must initialize the WKPU unit, and configure the respective channel: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); You can use the following low power examples as reference: S32K3 Low Power Management AN and demos Example S32K312 STANDBY wake up using CAN-0-RX and GPIO Switch DS3.5 RTD300 [RTD600 IP] S32K312EVB-Q172 Standby RAM GPIO Wake-up Best regards, Julián Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @Julián_AragónM , Thank you for the reference; it is very helpful. We are currently utilizing the CAN-based wakeup configuration. We will evaluate the ADC-based wakeup setup at a later stage.
記事全体を表示
IMX8MP PCIe内部クロックPHYの電源投入に失敗しました --> -110 imx8mp + nxp linux6.1.55カーネルで Wi-Fi をデバッグしているときに、PCIe で次の問題が発生しました: 内部クロックをテストしても波形が表示されず、reset-GPIO がハイレベルでした ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y )。) root@imx8mpevk:~# dmesg|grep pcie [2.241914] imx6q-pcie 33800000.pcie:ホストブリッジ /soc@0/pcie@33800000 範囲: [2.249233] imx6q-pcie 33800000.pcie:IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.257455] imx6q-pcie 33800000.pcie:MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.322972] phy phy-32f00000.pcie-phy.4:PHY電源投入失敗 --> -110 [2.322980] imx6q-pcie 33800000.pcie:PHY準備完了タイムアウトを待っています! [ 2.323033] imx6q-pcie: 33800000.pcie のプローブがエラー -110 で失敗しました デバイスツリー: &pcie_phy {     //clocks = <&hsio_blk_ctrl>; クロック = < &clk IMX8MP_CLK_HSIO_AXI >; 時計名 = "ref" ; fsl、clkreqはサポートされていません。 fsl、refclk-pad-mode = < IMX8_PCIE_REFCLK_PAD_OUTPUT >; ステータス = "正常" ; }; &pcie { pinctrl-names = "default" ; pinctrl-0 = < &pinctrl_pcie0 >; reset-gpio = < &gpio3 25 GPIO_ACTIVE_LOW >; GPIOアクティブハイをリセットします。 クロック = < &clk IMX8MP_CLK_HSIO_ROOT >, < &clk IMX8MP_CLK_PCIE_ROOT >、 < &clk IMX8MP_CLK_HSIO_AXI >; クロック名 = "pcie" , "pcie_aux" , "pcie_bus" ; 割り当てられたクロック = < &clk IMX8MP_CLK_PCIE_AUX >; 割り当てられたクロックレート = < 10000000 >; 割り当てられたクロックの親要素 = < &clk IMX8MP_SYS_PLL2_50M >;     // vpcie-supply = <&reg_pcie0>; ステータス = "正常" ;     // wifi_wake_host {     // compatible = "nxp,wifi-wake-host";     // interrupt-parent = <&gpio5>;     // 割り込み = <21 IRQ_TYPE_LEVEL_LOW>;     // interrupt-names = "host-wake";     // }; }; 選択された場合     clocks = <&hsio_blk_ctrl>; の代わりに clocks = <&clk IMX8MP_CLK_HSIO_AXI>; を使用します。 するとエラーが発生し、タイムアウトが発生します。 root@imx8mpevk:~# dmesg|grep pcie [4.081133]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました [4.088341]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました: -517 [13.028064]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました [13.035248]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました: -517 [13.049053]プラットフォーム 33800000.pcie:調査延期保留中 [13.060015]プラットフォーム 32f00000.pcie-phy:調査延期保留中    以下に私の回路図を示します。 gaotao_0-1784881982173.png 何が問題だったのでしょうか?助けてください!ありがとうございます!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 こんにちは、 @gaotaoさん お元気でお過ごしのことと思います。 DTSのreset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>とreset-gpio-active-highは矛盾しています。 GPIO 指定子からreset-gpio-active-highを削除し、 GPIO_ACTIVE_LOWのみを残すか、ハードウェアにインバータがある場合はGPIO_ACTIVE_HIGHに変更してください。 また、以下のパッチを適用してみてください。 https://www.spinics.net/lists/devicetree/msg558950.html https://www.spinics.net/lists/devicetree/msg558947.html https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html これらはimx8mp-blk-ctrl.cをパッチします。ドライバーが適切なPLLクロックを公開し設定します。 よろしくお願いいたします。 サラス。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 ご指摘いただき、誠にありがとうございます。ハードウェア部門の同僚にこの件について調査を依頼いたします。進展がありましたら、改めてご連絡させていただきます。重ねてお礼申し上げます。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas さん、ご返信ありがとうございます。 1. `reset-gpio-active-high;` という記述があることに気づき、既に削除しました。ご指摘ありがとうございました。 2. したがって、私は clocks = < &hsio_blk_ctrl >; と設定し、代わりに以下の4つのドライバパッチを追加します。 clocks = <&clk IMX8MP_CLK_HSIO_AXI>; ですよね? 3. コミュニティの別の方が先ほど、その4つのパッチを使用したと返信しているのを見ましたが、残念ながら私たちの地域ではそのウェブサイトにアクセスできないようです。何か方法を考えます。もし可能であれば、パッチを直接投稿していただけると助かります。どうもありがとうございます! Re: imx8mp pcie内部时钟phy poweron failed --> -110 どうやら問題は以前とは違うようです。「Phylinkが起動しなかった」と表示されます。PCIe自体に問題があるのでしょうか、それとも周辺機器に問題があるのでしょうか? root@imx8mpevk:~/rtw# dmesg|grep pcie [2.264927] imx8-pcie-phy 32f00000.pcie-phy:WiFi PCIe リファレンスクロック: 100000000 Hz [2.274508] imx6q-pcie 33800000.pcie:ホストブリッジ /soc@0/pcie@33800000 範囲: [2.281827] imx6q-pcie 33800000.pcie:IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.290063] imx6q-pcie 33800000.pcie:MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.336901] imx6q-pcie 33800000.pcie:iATU: アンロール T、4 ob、4 ib、アライン 64K、制限 16G [3.410666] imx6q-pcie 33800000.pcie:Phyリンクは一度も話題にならなかった1 [4.481178] imx6q-pcie 33800000.pcie:Phyリンクは一度も話題にならなかった1 [4.487067] imx6q-pcie 33800000.pcie:PCIホストブリッジからバス0000:00へ [4.570576] pcieポート0000:00:00.0:PME: IRQ 223によるシグナリング 私の周辺機器は8822ce Wi-Fiチップを使用していますが、手動でロードしても自動でロードしても、何も情報が出力されません。 root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0クラス0604: 16c3:abcd 今回は何が問題なのでしょうか?起動が安定した後、基準クロック波形を測定できませんでした(私のハードウェアでは波形を測定するためにネットワークカードを取り外す必要がありました)が、少なくともPCIe出力は変化しました... readl_poll_timeoutが成功したので、リセットがハイレベルであることを保証できるはずです。
記事全体を表示
LPC5411X 读取 我目前正在使用SWD调试LPC54113芯片。我已经停止了核心程序的运行,然后设置了一些调试寄存器,从 0xE000 开始。 我发现,当我读取芯片的内部闪存时,地址 0x0~0x200 始终包含错误数据,更像是中断向量表,而不是存储在闪存中的实际程序。通过读取其他地址,可以获取正确的数据,所有数据均为 0xFFFFFFFF。 芯片没有写入任何数据。通过使用 JLINK 进行读取,地址 0x0~0x200 为 0xFFFFFFFF。但是,JLINK 使用 FLM 向 RAM 写入数据进行读取,我不知道它是如何处理 0x0 到 0x200 地址范围的读取的。 我采取的步骤如下: 写入中止,0x1E 写入选择,0x0 写入 tar,0x0 写入 csw,0x23000012 然后读取 drw 文件,直到内部闪存结束地址为止。 vector.png LPC541XX LPC54xxx Re: LPC5411X READ 你好, 您可能正在读取 Cortex-M 内存别名,而不是物理闪存内容。在 LPC54113 上,地址 0x00000000 根据启动配置和重映射设置,映射到当前活动的内存(闪存、启动 ROM 或 RAM)。如果设备为空,启动 ROM 可以在 0x0 处呈现一个有效的向量表,这就解释了为什么你会看到中断向量而不是 0xFFFFFFFF。 Re: LPC5411X READ 我想读取地址 0x0 处的物理闪存内容,应该怎么做? 我需要更改AP银行或其他操作吗? Re: LPC5411X READ LPC5411X 没有用于读取物理闪存的 IAP 样品。 noread.png   Re: LPC5411X READ 您好, 当使用 TAR = 0x0 通过 SWD AHB-AP 读取内存时,返回的数据反映了CPU 可见的当前系统内存映射。对于 LPC5411x 设备,地址 0x00000000 的前 512 个字节被重新映射到启动 ROM ,因此在此区域中观察到的数据是有效的中断向量表,而不是存储在 Flash 中的实际内容。   如果需要读取物理 Flash 区域从 0x00000000 到 0x000001FF 的原始内容,不要依赖使用 TAR = 0x0 和连续 DRW 访问的简单线性读取。相反,应该使用 Flash 算法或基于 IAP 的方法来访问原始 Flash 阵列内容,就像使用 Jlink 读取一样。     BR 爱丽丝
記事全体を表示
S32K312 ADCトリガーRTD3.0.0 S32DS3.5を使ったMCUのウェイクアップ こんにちは、 私はS32k312コントローラーmini EVBKITを使っており、MCUのスリープとウェイクアップの機能チェックに使っています。ADCで低いしきい値と高いしきい値電圧値を付けることで、ADC割り込みを通じてMCUのウェイクアップを実現しようとしています。この機能を使ってMCUを起動させてください。 LavanyaPilli_1-1784889112438.png 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ファイルを参照できます: Julin_AragnM_0-1785173159422.png PTA1はWKPU[5]ですが、4つの内部ウェイクアップソースがあるため、オフセットとして+4も追加する必要があります。これにより、PTA1はWKPU_CH_9になります。 Julin_AragnM_1-1785173923562.png 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ベースのウェイクアップ設定については、後日評価する予定です。
記事全体を表示
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. danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png 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. Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Thanks for your reply. I don't know much about these functions. Is there any related example or tutorial files? I tried to follow the S32K358 example but didn't succeed. Regarding the V15 power supply, I found that it is generated from an external 3.3V through a transistor controlled by a microcontroller to make 1.5V, with 1.1V also generated under microcontroller control. I also noticed that my hardware design doesn't have a 32.768 crystal oscillator, and the program gets stuck in Clock_Ip_ExtOsc.c in the loop do { SxoscStatus = ((Clock_Ip_apxXosc[Instance]->STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } while ((0U == SxoscStatus) && (FALSE == TimeoutOccurred)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454, I understand that you are using an SMPS on the PCB, so it must be enabled in the Configuration Tool: danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png Regarding SXOSC, make sure it is disabled: danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png Hello I followed your method to enable V15 and disable SXOSC. However, when debugging reaches the line `IP_PMC->SMPSCONFIG = ConfigValue;`—located within `Power_Ip_PMC_PowerInit`, which is inside `Power_Ip_Init`—the debugging session terminates automatically, and the board's reset indicator LED remains lit with a dim, steady glow. Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454, What are the values of ConfigValue in these two writes? IP_PMC->CONFIG = ConfigValue; IP_PMC->SMPSCONFIG = ConfigValue; The MCU is resetting due to an incorrect power mode configuration. Place the following loop at the beginning of main() so that you can debug it after the reset. volatile uint32_t loop = 1; while (loop) { } The loop variable can be modified from the debugger to allow execution to continue. Once the code is halted in the loop, call: Power_Ip_GetResetReason() It should return MCU_POWER_ON_RESET. Also read the Low Voltage Status and Control (LVSC) register to obtain more information about the reset event. Regards, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hi @zhangyu5454, I cannot reproduce this issue on my EVB with the config values you shared. Are you using the XS32K388EVB-Q289? If so, could you please let me know the position of jumper J118? danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png If you are using a custom board, please share the schematic. If you prefer not to share it here, please create a support ticket and attach the schematic there. Thank you, BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @Hi @zhangyu5454, I have difficulties to explain it. Can you measure V15 and V11 voltage during the Power_Ip initialization using an oscilloscope?
記事全体を表示
The IMX8MP PCIe internal clock PHY poweron failed --> -110 imx8mp + nxp linux6.1.55 When debugging Wi-Fi in the kernel, the following issue occurred with PCIe: testing the internal clock showed no waveform, and reset-GPIO was at a high level ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y ).) root@imx8mpevk:~# dmesg|grep pcie [2.241914] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [2.249233] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.257455] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.322972] phy phy-32f00000.pcie-phy.4: Phy poweron failed --> -110 [2.322980] imx6q-pcie 33800000.pcie: waiting for PHY ready timeout! [ 2.323033] imx6q-pcie: probe of 33800000.pcie failed with error -110 Device tree: &pcie_phy {     //clocks = <&hsio_blk_ctrl>; clocks = < &clk IMX8MP_CLK_HSIO_AXI >; clock-names = "ref" ; fsl,clkreq-unsupported; fsl,refclk-pad-mode = < IMX8_PCIE_REFCLK_PAD_OUTPUT >; status = "okay" ; }; &pcie { pinctrl-names = "default" ; pinctrl-0 = < &pinctrl_pcie0 >; reset-gpio = < &gpio3 25 GPIO_ACTIVE_LOW >; reset-gpio-active-high; clocks = < &clk IMX8MP_CLK_HSIO_ROOT >, < &clk IMX8MP_CLK_PCIE_ROOT >, < &clk IMX8MP_CLK_HSIO_AXI >; clock-names = "pcie" , "pcie_aux" , "pcie_bus" ; assigned-clocks = < &clk IMX8MP_CLK_PCIE_AUX >; assigned-clock-rates = < 10000000 >; assigned-clock-parents = < &clk IMX8MP_SYS_PLL2_50M >;     // vpcie-supply = <&reg_pcie0>; status = "okay" ;     // wifi_wake_host {     // compatible = "nxp,wifi-wake-host";     // interrupt-parent = <&gpio5>;     // interrupts = <21 IRQ_TYPE_LEVEL_LOW>;     // interrupt-names = "host-wake";     // }; }; If selected     clocks = <&hsio_blk_ctrl>; instead of clocks = <&clk IMX8MP_CLK_HSIO_AXI>; Then an error will occur and a timeout will occur. root@imx8mpevk:~# dmesg|grep pcie [4.081133] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [4.088341] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [13.028064] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [13.035248] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [13.049053] platform 33800000.pcie: deferred probe pending [13.060015] platform 32f00000.pcie-phy: deferred probe pending    Below is my schematic diagram. gaotao_0-1784881982173.png What went wrong? I need your help! Thank you!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 Hello @gaotao  Hope you are doing very well. From your DTS reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW> and reset-gpio-active-high together are contradictory. Remove reset-gpio-active-high and keep only GPIO_ACTIVE_LOW in the GPIO specifier, or change to GPIO_ACTIVE_HIGH if your hardware has an inverter. Also, please try applying the below patches: https://www.spinics.net/lists/devicetree/msg558950.html  https://www.spinics.net/lists/devicetree/msg558947.html  https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html These patch the imx8mp-blk-ctrl.c driver to expose a proper PLL clock and configure it. Best regards, Salas. Re: imx8mp pcie内部时钟phy poweron failed --> -110 Thank you very much for reminding me. I will inform my colleagues in the hardware department to look into this issue. I will contact you again if there are any further developments and thank you again. Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas , thank you so much for your reply. 1. I also realized that `reset-gpio-active-high;` was there and have already deleted it. Thanks for reminding me. 2. Therefore, I should use clocks = < &hsio_blk_ctrl >; and add those four driver patches, instead of using... clocks = <&clk IMX8MP_CLK_HSIO_AXI>; right? 3. I also saw someone else in the community reply earlier that they used those four patches, but unfortunately it seems that we can't access that website in our area. I'll think of a way. If it's convenient, I hope you can post the patches directly. Thank you very much! Re: imx8mp pcie内部时钟phy poweron failed --> -110 It seems like the problem is different now. It's reporting "Phylink never came up". Is there a problem with the PCIe itself, or is there a problem with the peripheral? root@imx8mpevk:~/rtw# dmesg|grep pcie [2.264927] imx8-pcie-phy 32f00000.pcie-phy: wifi PCIe ref clk: 100000000 Hz [2.274508] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [2.281827] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.290063] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.336901] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 16G [3.410666] imx6q-pcie 33800000.pcie: Phy link never came up1 [4.481178] imx6q-pcie 33800000.pcie: Phy link never came up1 [4.487067] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 [4.570576] pcieport 0000:00:00.0: PME: Signaling with IRQ 223 My peripheral device uses an 8822ce Wi-Fi chip, and it doesn't output any information whether I load it manually or automatically. root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0 Class 0604: 16c3:abcd What could be the problem this time? After the startup stabilized, I couldn't measure the reference clock waveform (my hardware required me to remove the network card to measure the waveform), but the PCIe output did change, at least... The readl_poll_timeout passed, so I should be able to guarantee that reset is at a high level.
記事全体を表示
mc9s08qg8 code warrior (Classic IDE) v6.3 windows 11 I downloaded the file, but it will not install, the installer says my OS is wrong. I am using Windows 11 ? Re: mc9s08qg8 code warrior (Classic IDE) v6.3 windows 11 Hello, To use CodeWarrior in windows 11 please update to v11.1, I look for the MC9S08QG8 device and is available in this version. You can download from this link: CodeWarrior® for MCUs (Eclipse IDE)        11.1 Best Regards, Luis
記事全体を表示
s32k344, LPSPI small clock gap between frames of a continuous sequence - I am having a problem communicating between an NXP MCU S32K344 LPSPI module (Controller) and a Holt HI-35930 (Peripheral). The code is writing 2 frames, each an 8 bit word. over the LPSPI to an ARINC communication device HI-35930.  I verified all settings are correct. cpol = 0, cpha = 0,  LSBF = MSB, BYSW=no, RXMSK, TXMSK =0, TCR[FRMSZ]=7. The code uses the TRC[CONT and TRC[CONTC] bits to control the PCS. The PCS stays asserted for the entire sequence of 2 frames, see picture. The clock, likewise pulses over the 2 frames. The SOUT signal has the expected data on it, frame 1 = opcode 0x80, frame 2 - dummy data 0x00 The problem is with SIN. There is no data back. ( opcode 0x80 is to read a register where I was expecting at least one bit set high). The RXCOUNT does increment on each frame to a max of 2. -Using the same settings, I concatenate the same opcode and data into one 16-bit frame, set TRC[CONT and TRC[CONTC] = 0 since there is one frame TRC[FRMSZ]=15. The transmission works and SIN returns real data. What do you think is wrong here? Yellow - PCS signal Pink - Clock signal Blue - SIN to the MCU Green - SOUT from the MCU   Re: s32k344, LPSPI small clock gap between frames of a continuous sequence The data for MOSI and MISO is empty. Do you have right SPI bus hardware schematics design? Re: s32k344, LPSPI small clock gap between frames of a continuous sequence Hi @ekmas-19, You described the transmission as sending 2 bytes — 0x80 and 0x00. However, the oscilloscope clearly shows 2 x 32-bit words separated by a small gap, not 2 x 8-bit frames. Can you clarify this? Regarding the inter-frame gap — this is expected behaviour. CONT = 1 only keeps CS/PCS asserted between frames; it does not affect SCK. The clock behaves exactly as it would with CONT = 0. Regards, Daniel
記事全体を表示
s32k344,LPSPI 连续序列帧之间的小时钟间隙 - 我在NXP MCU S32K344 LPSPI模块(控制器)和Holt HI-35930(外设)之间通信时遇到问题。 该代码正在写入 2 个帧,每个帧为 8 位字。通过 LPSPI 连接到 ARINC 通信设备 HI-35930。我已确认所有设置均正确。cpol = 0,cpha = 0,LSBF = MSB,BYSW=否,RXMSK,TXMSK =0,TCR[FRMSZ]=7。 该代码使用 TRC[CONT 和 TRC[CONTC] 位来控制 PCS。PCS 在整个 2 帧序列中保持钳位,请参见图片。同样,时钟在这两帧画面中脉动。SOUT 信号包含预期数据,帧 1 = 操作码 0x80,帧 2 = 虚拟数据 0x00 问题出在SIN上。没有备份数据。(操作码 0x80 用于读取寄存器,我预期其中至少有一位设置为高电平)。 RXCOUNT 在每一帧都会递增,最大值为 2。 -使用相同的设置,我将相同的操作码和数据连接成一个 16 位帧,设置 TRC[CONT 和 TRC[CONTC] = 0,因为只有一个帧 TRC[FRMSZ]=15。传输正常,SIN 返回真实数据。 你觉得这里出了什么问题? 黄色 - PCS信号 粉色 - 时钟信号 蓝色 - SIN 至 MCU 绿色 - 来自 MCU 的 SOUT   Re: s32k344, LPSPI small clock gap between frames of a continuous sequence MOSI 和 MISO 的数据为空。你的SPI总线硬件原理图设计正确吗? Re: s32k344, LPSPI small clock gap between frames of a continuous sequence 你好@ekmas-19 , 你描述这次传输发送了 2 个字节——0x80 和 0x00。然而,示波器清楚地显示为 2 个 32 位字,中间有很小的间隙,而不是 2 个 8 位帧。你能解释一下吗? 关于帧间间隙——这是预期行为。CONT = 1 仅保持帧间 CS/PCS 钳位;它不影响 SCK。时钟的行为与 CONT = 0 时完全相同。 此致, 丹尼尔
記事全体を表示