Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
单通道 ABS SB0401 监测模块问题 你好@nxp、 我使用的是 SB0401 单通道 ABS 模块 IC,其 SPI 主控芯片是恩智浦 S32K31xEVB-Q48 MCU。我每 10 毫秒传输一次监控/模块数据,但是 SB0401 监控模块似乎会重复 RESET/重启(大约每 50 毫秒一次)。与此同时,每次 SPI 传输时,我的 SPI "错误计数 "都会增加。 以下是设置和我的具体问题。 硬件/软件设置 MCU(SPI Master):s32k31xEVB-Q48(S32K31x 系列) 设备:SB0401(单通道 ABS 模块 IC) 接口:SPI (LPSPI)(基于 DMA 传输) 周期性传输:每 10 毫秒 观察到的问题:SB0401 监控模块每大约 50 毫秒 RESET/重启 一次(参见随附日志) 观察到的行为 每次传输 SPI 字节/字时,错误计数器都会增加。 我从 SB0401 报文 18 中读取 AR(种子),并根据 AR 计算 MR。 尽管定期发送帧,SB0401 监控模块仍会RESET。 问题 MR 计算与 AR 比较(信息 18) 每次 SPI 传输时,我的错误次数都会增加。 我使用从 SB0401 报文 18 中收到的 AR 值计算 MR。 在这种情况下,错误计数器是否会在每次传输时递增,还是表示 MR/AR 逻辑不正确? 请确认与 AR 相关的正确的 MR 计算流程/计时(消息 18)以及任何常见的陷阱(例如,使用过时的 AR、错误的字节/位提取、定时窗口、计数器对齐)。 写入报文 0 时的 ACK 位置 如果我将数据写入 信息 0在 TxBuf[0]我应该在哪里检查确认? 举例说明:对于写入 TxBuf[0]中,ACK 是否出现在 RxBuf[0](同一字)中,还是在 RxBuf[1](下一个字)? 如果定义了 "ACK 出现在下一个 SPI 字/帧中 "的规则,请分享确切的映射。 参考 SW / CDD 驱动程序 是否有任何用于 SB0401(C 源代码或 AUTOSAR 风格的 CDD 集成)的参考 CDD / 示例驱动程序可供共享以获取指导? 如果不可共享,你能推荐官方的 SB0401 软件包/应用说明/参考实现细节吗? Re: Single channel ABS SB0401 Monitoring Module Issue HI 是否可以在这里显示您的公司和项目信息? Re: Single channel ABS SB0401 Monitoring Module Issue 你好@guoweisun 好的。 公司: Ettiksoft technologies Pvt ltd: Ettiksoft technologies Pvt ltd. 项目: 两轮车单通道 ABS。 Re: Single channel ABS SB0401 Monitoring Module Issue 你好@guoweisun 好的 还有其他参考代码,比如这个模块的行为。 Re: Single channel ABS SB0401 Monitoring Module Issue 对于我无法在此发布的示例代码,您能否从案例端口提交票据? 家用 Re: Single channel ABS SB0401 Monitoring Module Issue 让我再次查看有关这个特殊部分的参考代码。 Re: Single channel ABS SB0401 Monitoring Module Issue 该部件没有 CDD 或其他软件驱动器,参考原理图也需要客户签署保密协议然后共享。
查看全文
linux6.12+imx8mp内核报告Fixed dependency cycle(s) with xxx linux6.12+imx8mp内核启动时报告: [ 0.057737] /soc@0: 固定了与 /soc@0/bus@30000000/efuse@30350000/unique-id@8 的依赖循环 [ 0.058809] /soc@0/bus@32c00000/lcd-controller@32fc6000:修正了与 /soc@0/bus@32c00000/hdmi@32fd8000 的依赖循环 [ 0.058972] /soc@0/bus@32c00000/hdmi@32fd8000:修正了与 /soc@0/bus@32c00000/lcd-controller@32fc6000 的依赖循环 [ 0.059239] /soc@0/interrupt-controller@38800000: 修正了与 /soc@0/interrupt-controller@38800000 的依赖循环 [ 0.061960] /soc@0/bus@30000000/pinctrl@30330000: 修复了与 /soc@0/bus@30000000/pinctrl@30330000/miscgrp 的依赖循环 [ 0.061986] /soc@0/bus@30000000/pinctrl@30330000: Fixed dependency cycle(s) with /soc@0/bus@30000000/pinctrl@30330000/hoggrp [ 0.062566] imx8mp-pinctrl 30330000.pinctrl:initialized IMX pinctrl driver [ 0.063301] /soc@0/bus@30000000/efuse@30350000: Fixed dependency cycle(s) with /soc@0/bus@30000000/clock-controller@30380000 [ 0.064431] /soc@0/bus@30000000/efuse@30350000: Fixed dependency cycle(s) with /soc@0/bus@30000000/clock-controller@30380000 [ 0.065497] /soc@0/bus@30000000/clock-controller@30380000: 修正了与 /soc@0/interrupt-controller@38800000 的依赖循环 [ 0.074336] /soc@0/bus@32c00000/lcd-controller@32fc6000:修正了与 /soc@0/bus@32c00000/hdmi@32fd8000 的依赖循环 [ 0.074446] /soc@0/bus@32c00000/hdmi@32fd8000:修复了 /soc@0/bus@32c00000/lcd-controller@32fc6000 的依赖循环 [ 0.076363] /soc@0/bus@32c00000/lcd-controller@32fc6000:修正了与 /soc@0/bus@32c00000/hdmi@32fd8000 的依赖循环 [ 0.076855] /soc@0/bus@32c00000/lcd-controller@32fc6000:修正了与 /soc@0/bus@32c00000/hdmi@32fd8000 的依赖循环 [ 0.076990] /soc@0/bus@32c00000/hdmi@32fd8000:修正了与 /soc@0/bus@32c00000/lcd-controller@32fc6000 的依赖循环 原因是什么?需要处理吗? Re: linux6.12+imx8mp内核报告Fixed dependency cycle(s) with xxx Hi @machangbao  这是正常的,不用处理。 Best Regards, Zhiming Re: linux6.12+imx8mp内核报告Fixed dependency cycle(s) with xxx Hi @machangbao  这是内核上游引入得补丁,具体commit信息是: driver core: fw_devlink: Stop trying to optimize cycle detection logic commit bac3b10b78e54b7da3cede397258f75a2180609b upstream. In attempting to optimize fw_devlink runtime, I introduced numerous cycle detection bugs by foregoing cycle detection logic under specific conditions. Each fix has further narrowed the conditions for optimization. It's time to give up on these optimization attempts and just run the cycle detection logic every time fw_devlink tries to create a device link. The specific bug report that triggered this fix involved a supplier fwnode that never gets a device created for it. Instead, the supplier fwnode is represented by the device that corresponds to an ancestor fwnode. In this case, fw_devlink didn't do any cycle detection because the cycle detection logic is only run when a device link is created between the devices that correspond to the actual consumer and supplier fwnodes. With this change, fw_devlink will run cycle detection logic even when creating SYNC_STATE_ONLY proxy device links from a device that is an ancestor of a consumer fwnode. 6.12上面的fw_devlink框架相比以前更健壮,Fixed dependency cycle(s) with表示 fw_devlink 检测到环,并通过调整链接策略(例如降级某些 link 类型或不创建某些 link)来解决问题。这不是错误,而是信息提示,说明系统在启动时处理了潜在的死锁风险。 driver core: fw_devlink: Make cycle detection more robust fw_devlink could only detect a single and simple cycle because it relied mainly on device link cycle detection code that only checked for cycles between devices. The expectation was that the firmware wouldn't have complicated cycles and multiple cycles between devices. That expectation has been proven to be wrong. For example, fw_devlink could handle: +-+ +-+ |A+------> |B+ +-+ +++ ^ | | | +----------+ But it couldn't handle even something as "simple" as: +---------------------+ | | v | +-+ +-+ +++ |A+------> |B+------> |C| +-+ +++ +-+ ^ | | | +----------+ But firmware has even more complicated cycles like: +---------------------+ | | v | +-+ +---+ +++ +--+A+------>| B +-----> |C|<--+ | +-+ ++--+ +++ | | ^ | ^ | | | | | | | | | +---------+ +---------+ | | | +------------------------------+ And this is without including parent child dependencies or nodes in the cycle that are just firmware nodes that'll never have a struct device created for them. The proper way to treat these devices it to not force any probe ordering between them, while still enforce dependencies between node in the cycles (A, B and C) and their consumers. So this patch goes all out and just deals with all types of cycles. It does this by: 1. Following dependencies across device links, parent-child and fwnode links. 2. When it find cycles, it mark the device links and fwnode links as such instead of just deleting them or making the indistinguishable from proxy SYNC_STATE_ONLY device links. This way, when new nodes get added, we can immediately find and mark any new cycles whether the new node is a device or firmware node. Best Regards, Zhiming
查看全文
关于 encrypted_xip_platform_*.c(在 mcuboot 中)的文档 你好, 在 mcuboot 源代码中,可以找到恩智浦提供的许多文件来处理加密 xip:sdk_25_06_00_evk-mimxrt1020/中间件/mcuboot_opensource/启动/nxp_mcux_SDK/Encrypted_XIP/ 在我的项目中,我使用 RT117x、RT105x 和 RT102x,因此要处理 BEE 和 OTFAD 外设。 我搜索了这些文件的文档和示例,例如https://mcuxpresso.nxp.com/mcuxsdk/latest/html/middleware/mcuboot_opensource/README.html#,但没有找到我要找的东西。 我需要知道 特性 用法示例 API 参考 我的使用案例如下: boot_images.png 图像 0 是第二阶段引导加载程序。它实现了 USB 主机大容量存储堆栈,这是更新设备的唯一方法。 图片 1 是实际应用。 我认为两幅图像都需要加密,但我并不确定。 你能告诉我在哪里可以找到使用这些来源的参考设计吗? 此外,由于有两个图像,我需要 mcuboot 2.2.0(2.1.0对多幅图像无效)。 如此处所示,2.1.0 版已集成到最后一个 SDK 中: mastupristi_0-1754315658319.png 顺祝商祺! 最大值 Re: doc about encrypted_xip_platform_*.c (in mcuboot) 你好@mastupristi 很抱歉延迟回复。 作为替代方案,目前我们有基于 MCUboot 的SBL,可以实现加密 XIP。不过,它是基于旧版本的 MCUBoot。 我一直在内部检查,我的 SDK 团队说 SDK 现在内置了最新版本的 MCUboot。 基本上,您希望获得的附加信息包括......: 特性 用法示例 API 参考 但用于加密应用程序,对吗?我们是否可以说,关于将片上 OTFAD 与 MCUBoot 结合使用的示例目前对您有用? 迪亚戈
查看全文
Debian 12 Installation Guide for i.MX8MM, i.MX8MP and i.MX8MN: GPU, VPU and Multimedia Packages This guide is a continuation from our latest Debian 12 Installation Guide for iMX8MM, iMX8MP, iMX8MN and iMX93. Here we will describe the process to install the multimedia and hardware acceleration packages, specifically GPU, VPU and Gstreamer on i.MX8M Mini, i.MX8M Plus and i.MX8M Nano. The guide is based on the one provided by our colleague Build Ubuntu For i.MX8 Series Platform - NXP Community, which requires to previously build an image using Yocto Project with the following distro and image name. Distro name - fsl-imx-wayland Image name – imx-image-multimedia For more information please check our BSP documentation i.MX Yocto Project User’s Guide. Hardware Requirements Linux Host Computer (Ubuntu 20.04 or later) USB Card reader or Micro SD to SD adapter SD Card Evaluation Kit Board for the i.MX8M Nano, i.MX8M Mini, i.MX8M Plus Software Requirements Linux Ubuntu (20.04 tested) or Debian for Host Computer BSP version 6.1.55 built with Yocto Project After built the image we can start the installation by following the steps below: GPU Installation The GPU Installation consists of copy the files from packages imx-gpu-g2d, imx-gpu-viv, libdrm to the Debian system. As our latest installation guide, we will continue naming “mountpoint” to the directory where Debian system is mounted on our host machine. Regarding the path provided on each step, we put labels and that you will need to change based on your environment. These are the paths that Yocto Project uses to save the packages. However, this could change on your environment and you can find the work directory from each package using the following command: bitbake -e | grep ^WORKDIR= This command will show you the absolute path of the package work directory. 1. Install GPU Packages $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/imx-gpu-g2d/6.4.11.p2.2-r0/image/* mountpoint $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/imx-gpu-viv/1_6.4.11.p2.2-aarch64-r0/image/* mountpoint $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/libdrm/2.4.115.imx-r0/image/* mountpoint 2. Install Linux IMX Headers and IMX Parser $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/linux-imx-headers/6.1-r0/image/* mountpoint $ sudo cp -Pra /tmp/work/armv8a-poky-linux/imx-parser/4.8.2-r0/image/* mountpoint   3. Use chroot $ sudo LANG=C.UTF-8 chroot mountpoint/ qemu-aarch64-static /bin/bash   4. Install Dependencies $ apt install libudev-dev libinput-dev libxkbcommon-dev libpam0g-dev libx11-xcb-dev libxcb-xfixes0-dev libxcb-composite0-dev libxcursor-dev libxcb-shape0-dev libdbus-1-dev libdbus-glib-1-dev libsystemd-dev libpixman-1-dev libcairo2-dev libffi-dev libxml2-dev kbd libexpat1-dev autoconf automake libtool meson cmake ssh net-tools network-manager iputils-ping rsyslog bash-completion htop resolvconf dialog vim udhcpc udhcpd git v4l-utils alsa-utils git gcc less autoconf autopoint libtool bison flex gtk-doc-tools libglib2.0-dev libpango1.0-dev libatk1.0-dev kmod pciutils libjpeg-dev 5. Create a folder for Multimedia Installation. Here we will clone all the multimedia repositories.  $ mkdir multimedia_packages $ cd multimedia_packages   6. Build Wayland $ git clone https://gitlab.freedesktop.org/wayland/wayland.git $ cd wayland $ git checkout 1.22.0 $ meson setup build --prefix=/usr -Ddocumentation=false -Ddtd_validation=true $ cd build $ ninja install 7. Build Wayland Protocols IMX $ git clone https://github.com/nxp-imx/wayland-protocols-imx.git $ cd wayland-protocols-imx $ git checkout wayland-protocols-imx-1.32 $ meson setup build --prefix=/usr -Dtests=false $ cd build $ ninja install 8. Build Weston $ git clone https://github.com/nxp-imx/weston-imx.git $ cd weston-imx $ git checkout weston-imx-11.0.3 $ meson setup build --prefix=/usr -Dpipewire=false -Dsimple-clients=all -Ddemo-clients=true -Ddeprecated-color-management-colord=false -Drenderer-gl=true -Dbackend-headless=false -Dimage-jpeg=true -Drenderer-g2d=true -Dbackend-drm=true -Dlauncher-libseat=false -Dcolor-management-lcms=false -Dbackend-rdp=false -Dremoting=false -Dscreenshare=true -Dshell-desktop=true -Dshell-fullscreen=true -Dshell-ivi=true -Dshell-kiosk=true -Dsystemd=true -Dlauncher-logind=true -Dbackend-drm-screencast-vaapi=false -Dbackend-wayland=false -Dimage-webp=false -Dbackend-x11=false -Dxwayland=false $ cd build $ ninja install VPU Installation To install VPU and Gstreamer please follow the steps below: 1. Install firmware-imx $ sudo cp -Pra /tmp/work/all-poky-linux/firmware-imx/1_8.22-r0/image/lib/* mountpoint/lib/ 2. Install VPU Driver $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/imx-vpu-hantro/1.31.0-r0/image/* mountpoint $ sudo cp -Pra /tmp/work/armv8a- -poky-linux/imx-vpuwrap/git-r0/image/* mountpoint 3. Use chroot $ sudo LANG=C.UTF-8 chroot mountpoint/ qemu-aarch64-static /bin/bash   4. Install dependencies for Gstreamer Plugins $ apt install libgirepository1.0-dev gettext liborc-0.4-dev libasound2-dev libogg-dev libtheora-dev libvorbis-dev libbz2-dev libflac-dev libgdk-pixbuf-2.0-dev libmp3lame-dev libmpg123-dev libpulse-dev libspeex-dev libtag1-dev libbluetooth-dev libusb-1.0-0-dev libcurl4-openssl-dev libssl-dev librsvg2-dev libsbc-dev libsndfile1-dev 5. Change directory to multimedia packages. $ cd multimedia-packages   6. Build gstreamer $ git clone https://github.com/nxp-imx/gstreamer -b lf-6.1.55-2.2.0 $ cd gstreamer $ meson setup build --prefix=/usr -Dintrospection=enabled -Ddoc=disabled -Dexamples=disabled -Ddbghelp=disabled -Dnls=enabled -Dbash-completion=disabled -Dcheck=enabled -Dcoretracers=disabled -Dgst_debug=true -Dlibdw=disabled -Dtests=enabled -Dtools=enabled -Dtracer_hooks=true -Dlibunwind=disabled -Dc_args=-I/usr/include/imx $ cd build $ ninja install 7. Build gst-plugins-base $ git clone https://github.com/nxp-imx/gst-plugins-base -b lf-6.1.55-2.2.0 $ cd gst-plugins-base $ meson setup build --prefix=/usr -Dalsa=enabled -Dcdparanoia=disabled -Dgl-graphene=disabled -Dgl-jpeg=disabled -Dopus=disabled -Dogg=enabled -Dorc=enabled -Dpango=enabled -Dgl-png=enabled -Dqt5=disabled -Dtheora=enabled -Dtremor=disabled -Dvorbis=enabled -Dlibvisual=disabled -Dx11=disabled -Dxvideo=disabled -Dxshm=disabled -Dc_args=-I/usr/include/imx $ cd build $ ninja install 8. Build gst-plugins-good $ git clone https://github.com/nxp-imx/gst-plugins-good -b lf-6.1.55-2.2.0 $ cd gst-plugins-good $ meson setup build --prefix=/usr -Dexamples=disabled -Dnls=enabled -Ddoc=disabled -Daalib=disabled -Ddirectsound=disabled -Ddv=disabled -Dlibcaca=disabled -Doss=enabled -Doss4=disabled -Dosxaudio=disabled -Dosxvideo=disabled -Dshout2=disabled -Dtwolame=disabled -Dwaveform=disabled -Dasm=disabled -Dbz2=enabled -Dcairo=enabled -Ddv1394=disabled -Dflac=enabled -Dgdk-pixbuf=enabled -Dgtk3=disabled -Dv4l2-gudev=enabled -Djack=disabled -Djpeg=enabled -Dlame=enabled -Dpng=enabled -Dv4l2-libv4l2=disabled -Dmpg123=enabled -Dorc=enabled -Dpulse=enabled -Dqt5=disabled -Drpicamsrc=disabled -Dsoup=enabled -Dspeex=enabled -Dtaglib=enabled -Dv4l2=enabled -Dv4l2-probe=true -Dvpx=disabled -Dwavpack=disabled -Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfixes=disabled -Dximagesrc-xdamage=disabled -Dc_args=-I/usr/include/imx $ cd build $ ninja install 9. Build gst-plugins-bad $ git clone https://github.com/nxp-imx/gst-plugins-bad -b lf-6.1.55-2.2.0 $ cd gst-plugins-bad $ meson setup build --prefix=/usr -Dintrospection=enabled -Dexamples=disabled -Dnls=enabled -Dgpl=disabled -Ddoc=disabled -Daes=enabled -Dcodecalpha=enabled -Ddecklink=enabled -Ddvb=enabled -Dfbdev=enabled -Dipcpipeline=enabled -Dshm=enabled -Dtranscode=enabled -Dandroidmedia=disabled -Dapplemedia=disabled -Dasio=disabled -Dbs2b=disabled -Dchromaprint=disabled -Dd3dvideosink=disabled -Dd3d11=disabled -Ddirectsound=disabled -Ddts=disabled -Dfdkaac=disabled -Dflite=disabled -Dgme=disabled -Dgs=disabled -Dgsm=disabled -Diqa=disabled -Dkate=disabled -Dladspa=disabled -Dldac=disabled -Dlv2=disabled -Dmagicleap=disabled -Dmediafoundation=disabled -Dmicrodns=disabled -Dmpeg2enc=disabled -Dmplex=disabled -Dmusepack=disabled -Dnvcodec=disabled -Dopenexr=disabled -Dopenni2=disabled -Dopenaptx=disabled -Dopensles=disabled -Donnx=disabled -Dqroverlay=disabled -Dsoundtouch=disabled -Dspandsp=disabled -Dsvthevcenc=disabled -Dteletext=disabled -Dwasapi=disabled -Dwasapi2=disabled -Dwildmidi=disabled -Dwinks=disabled -Dwinscreencap=disabled -Dwpe=disabled -Dzxing=disabled -Daom=disabled -Dassrender=disabled -Davtp=disabled -Dbluez=enabled -Dbz2=enabled -Dclosedcaption=enabled -Dcurl=enabled -Ddash=enabled -Ddc1394=disabled -Ddirectfb=disabled -Ddtls=disabled -Dfaac=disabled -Dfaad=disabled -Dfluidsynth=disabled -Dgl=enabled -Dhls=enabled -Dkms=enabled -Dcolormanagement=disabled -Dlibde265=disabled -Dcurl-ssh2=disabled -Dmodplug=disabled -Dmsdk=disabled -Dneon=disabled -Dopenal=disabled -Dopencv=disabled -Dopenh264=disabled -Dopenjpeg=disabled -Dopenmpt=disabled -Dhls-crypto=openssl -Dopus=disabled -Dorc=enabled -Dresindvd=disabled -Drsvg=enabled -Drtmp=disabled -Dsbc=enabled -Dsctp=disabled -Dsmoothstreaming=enabled -Dsndfile=enabled -Dsrt=disabled -Dsrtp=disabled -Dtinyalsa=disabled -Dtinycompress=enabled -Dttml=enabled -Duvch264=enabled -Dv4l2codecs=disabled -Dva=disabled -Dvoaacenc=disabled -Dvoamrwbenc=disabled -Dvulkan=disabled -Dwayland=enabled -Dwebp=enabled -Dwebrtc=disabled -Dwebrtcdsp=disabled -Dx11=disabled -Dx265=disabled -Dzbar=disabled -Dc_args=-I/usr/include/imx $ cd build $ ninja install 10. Build imx-gst1.0-plugin $ git clone https://github.com/nxp-imx/imx-gst1.0-plugin -b lf-6.1.55-2.2.0 $ cd imx-gst1.0-plugin $ meson setup build --prefix=/usr -Dplatform=MX8 -Dc_args=-I/usr/include/imx $ cd build $ ninja install 11. Exit chroot $ exit Verify Installation For verification process, boot your target from the SD Card. (Review your specific target documentation) 1. Verify Weston For this verification you will need to be root user. # export XDG_RUNTIME_DIR=/run/user/0 # weston 2. Verify VPU and Gstreamer Use the following Gstreamer pipeline for Hardware Accelerated VPU Encode. # gst-launch-1.0 videotestsrc ! video/x-raw, format=I420, width=640, height=480 ! vpuenc_h264 ! filesink location=test.mp4 Then you can reproduce the file with this command: # gplay-1.0 test.mp4 Finally, you have installed and verified the GPU, VPU and Multimedia packages. Now, you can start testing audio and video applications. Graphics & Display i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Multimedia Yocto Project
查看全文
MCX A146VFT MCX A146VFT is not available for download on the official website. MCXA Re: MCX A146VFT Hello @jubilation The page I see when I click on it is not quite the same as yours, on my side I need to manually enter the model number and then click Request to apply, not in the form of a drop down option like in your screenshot. I've tried to submit the request and have received it now. I'll send it to you later via private case. BR Celeste Re: MCX A146VFT _1-1770015167319.png There is no download option for VFT packages on this page Re: MCX A146VFT Hello @Jubilee. Thank you for your post. package information for the MCXA146VFT can be found at SOT619-28: HVQFN48 | NXP Semiconductors. If I have misunderstood you and you are asking for other information, please let me know. Have a nice life. BR Celeste
查看全文
Mifare Classic クローンをHandyに こんにちは、良い一日を。当ジムでは、Mifare Classic EV1(MF1S50)チップを搭載したリストバンドを使用しています。このチップを複製してモバイルフォンに保存し、代わりにモバイルフォンのNFCセンサを使用する方法はありますか?つまり、リストバンドではなく、スマートフォン本体を使ってログインすることは可能でしょうか?もしそうなら、どうすればいいですか?私は既にNXP TagInfoとNXP TagWriterという2つのアプリを試してみました。残念ながら、それらのツールを使ってもうまく動作させることができませんでした。あるいは、途中でどこかでミスをしてしまったのかもしれません。手伝っていただけませんか?ゲラベルク(テューリンゲン州)より、心からのご挨拶を申し上げます。 タッチ・センサ Re: Mifare Classic clone to Handy こんにちは、 @digamcrown 残念ながら、MIFARE Classic EV1カードを複製してスマートフォンのNFCインターフェースで直接使用することはできません。 主な理由は以下のとおりです。 スマートフォンはMIFARE Classicカードのエミュレーションをサポートしていません(NFCコントローラーではCrypto-1はサポートされていません)。カードUIDはモバイルデバイス上で複製できません。 モバイルオペレーティングシステム(Android/iOS)は、セキュリティ上の理由から低レベルのNFCアクセスを制限しています。 したがって、NXP TagInfoやTagWriterといったツールでは、この機能を実現することはできません。 Re: Mifare Classic clone to Handy こんにちは、 こんにちは、 MIFARE Classicカードはセキュアメモリを搭載しているため、ジムのシステムを提供している業者に連絡して、スマートフォンにデジタルバッジを作成できるソリューションを提供しているかどうかを問い合わせるべきです。 MIFARE 2GOについては、https://www.nxp.com/products/security-and-authentication/secure-service-2go-platform/mifare-2go :MIFARE2GO をご覧ください。
查看全文
MCUXpresso 配置工具:如何使用时钟工具(日语博客) 目录 介绍 Clocks Tool 适用于哪些情况? 安装配置工具 Minecraft 工具的屏幕配置 时钟工具使用基本术语 演示:更改 CPU 核心时钟设置并改变 LED 闪烁速度。 奖励 1 - 时钟设置已作为预设提供。 附加题 2 - 初始化代码自动生成的设置值在哪里? 介绍 MCUXpresso 是恩智浦半导体 (NXP) 提供的一款微控制器开发软件平台。除了 MCUXpresso IDE 之外,它还提供 MCUXpresso for VSC(Visual Studio Code)和配置工具,以辅助外设配置。 配置工具包含多个工具,例如用于设置引脚的“引脚工具”和用于配置时钟设置的“时钟工具”。其主要特点是可以通过图形用户界面 (GUI)直观便捷地完成微控制器外设的初始设置。本文将重点介绍负责时钟设置的“时钟工具” 。有关“引脚工具”的使用说明,请参阅以下文章。 MCUXpresso 配置工具:引脚工具的使用方法(日语博客) 时钟设置是直接影响微控制器性能、功耗和各外设运行的关键因素。然而,时钟树可能非常复杂,难以理解各个外设正在使用哪个时钟。时钟工具允许您可视化和配置时钟源、分频设置以及每个外设的时钟供电状态。它还可以根据设置自动生成初始化代码。 安装MCUXpresso IDE时,配置工具也会一并安装,使其成为IDE的内置功能。另一方面,在近年来嵌入式开发领域日益流行的Visual Studio Code ( VSC ) 环境中,您也可以通过安装MCUXpresso相关扩展来使用配置工具(包括时钟工具)。IDE版本和VSC版本在配置工具的功能上并无显著差异。 本文 解释了如何在 VS Code 环境中安装 配置工具 ,如何使用这些工具,并最终演示了如何在 时钟工具 中更改 CPU 时钟设置,以及如何使用 FRDM-MCXN947 改变 LED 闪烁速度。 您还可以观看视频。点击此链接观看:如何使用 MCUXpresso 时钟工具(VS Code 环境) Clocks Tool适用于哪些情况? 当您想要检查现有的内部时钟设置(时钟树)时 当您需要调整和优化每个模块的工作频率时。 当您想要考虑一种既能降低时钟频率又能降低功耗的配置时。 安装配置工具 本指南解释了如何在VS Code环境中安装Config Tools 。 *如果您尚未为 VS Code 安装 MCUXpresso ,请参阅此博客文章。 安装适用于 VSC 和 SDK 的 MCUXpresso(日文博客) 启动VS Code后,从左侧面板中选择MCUXpresso ,然后从快速启动面板中单击“打开 MCUXpresso 安装程序” 。 Kogiso_0-1778572125810.png 安装程序将启动。选择MCUXpresso 配置工具,然后单击右上角的“安装” 。 (这篇博文介绍了 MCUXpresso 配置工具 v26.03 的安装过程。) Kogiso_1-1779262222580.png 安装开始后,系统会提示您登录MyNXP 。 Kogiso_2-1778572191255.png 登录后,将显示许可协议。请阅读并同意其内容。 *安装完成后请重启VS Code。 问:如果安装失败怎么办? A. 请从以下网站下载适合您电脑操作系统环境的安装程序并进行尝试。 MCUXpresso 配置工具 | NXP 微控制器 (MCU) 软件开发 | NXP 半导体 安装过程中,初始屏幕上会出现以下界面。如果您没有看到任何相关信息,可以将其关闭。 Kogiso_3-1778572212609.png 要从VS Code访问配置工具,请安装SDK ,导入示例,然后右键单击您的项目。 “使用 MCUXpresso 配置工具打开”将出现;单击它。 *整个过程将在最终演示中详细解释,因此我们在此省略。 配置工具将在短时间内启动。 Kogiso_0-1779263924259.png 如果您使用的是 MCUXpresso IDE,则配置工具默认已集成,可以直接从顶部选项卡启动。 Kogiso_5-1778572280128.png Minecraft 工具的屏幕配置 启动配置工具后,您可以使用屏幕右侧的面板在工具之间切换。 这次,我们将选择“时钟”。 Kogiso_6-1778572331001.png 时钟图(在更改时钟设置时经常用到)可以从屏幕左上角选择。 屏幕右下角的“问题”视图会显示与您的设置相关的任何错误或警告。 Kogiso_0-1779261646084.png 如果由于时钟设置不正确而出现错误,“问题”视图将显示错误的位置和原因。此外,时钟图上的相关区域将以红色突出显示,以便您直观地识别问题。 例如,如果将 CPU 时钟设置为超过指定的最大值,则会显示错误消息(如下所示)。 Kogiso_1-1778634860572.png 时钟工具使用基本术语 本节阐明了使用时钟工具时时钟图上显示的基本术语。 时钟树 这是一个配置图(树状图),展示了时钟的生成位置、分配和选择方式,以及如何将它们提供给每个模块。时钟工具允许您在查看此时钟树的同时配置设置。 时钟源 这是作为时钟起始点的信号源。它包括内部RC时钟、外部晶体(振荡器)和外部时钟输入,位于时钟树的上游。 在 MCX N947 中,默认情况下使用内置的48MHz RC时钟(FIRC)作为时钟源。 Kogiso_8-1778572482107.png PLL(锁相环) 该电路以时钟源为输入,产生稳定的高频时钟。 通过设置倍频器和分频器可以调节输出频率,从而为 CPU 和高速总线灵活地创建时钟。 这里,基于48MHz输入时钟(即时钟源)生成300MHz时钟(48MHz/8*50=300MHz) 。 Kogiso_9-1778572553141.png 除号 (DIV ) 此功能允许您对时钟频率进行分频和调整。 CPU 、总线和每个外围设备都有分频设置,用于调整到所需的运行频率。 在以下示例中,由 PLL0 生成的 300MHz 时钟生成 150MHz 时钟(300MHz/2=150MHz)。 Kogiso_0-1778575383641.png 多路复用器(Mux ) 该机制允许您从几个可选时钟中切换使用哪个时钟。 切换选择项会改变下游提供的时钟信号。 在下图所示的电路中,有两个多路复用器;左边的多路复用器从内部RC时钟中选择48MHz时钟,右边的多路复用器选择150MHz时钟除以DIV(PLL0_PDIV) 。 Kogiso_10-1778572690176.png 演示:更改 CPU 核心时钟设置并改变LED闪烁速度。 在这里,我们将使用时钟工具实际改变提供给CPU 的时钟,看看评估板上的LED闪烁速度是否会发生变化。 硬件准备 本文使用的评估板是 FRDM-MCXN947 安装 SDK 在VS Code左侧面板中选择MCUXpresso 图标,然后单击“导入存储库”。 Kogiso_11-1778572835161.png 接下来,点击左侧第二个选项“远程存档”,然后在“软件包”部分搜索“ FRDM-MCXN947 ”。输入“ 947 ”后, FRDM-MCXN947 将立即显示为建议。 Kogiso_12-1778572855885.png 您可以根据需要设置名称、位置和“创建 Git”复选框。 *对于名称和位置名称,最好只使用小写字母数字字符和下划线(_)或连字符(-) ,并避免使用符号( \、/、:、*、?、"、、| )(这可能会导致程序故障)和空格。 最后,勾选“我同意”复选框,然后点击“导入”开始安装SDK 。请稍候片刻。当屏幕右下角显示“存储库导入成功”时,安装即完成。 Kogiso_13-1778572880338.png 导入示例代码 SDK安装完成后,即可导入示例代码。 点击左侧面板中的“从存储库导入示例”。 Kogiso_14-1778572955527.png 在右侧显示的每个选项卡中,“存储库”下,选择您刚刚导入的SDK 。 请为“主板”选择FRDM-MCXN947 。 在这个“模板”演示中,我们将改变LED的闪烁速度。 尝试输入“ led ”,然后选择出现的“ driver_examples/gpio/gpio_led_output_cm33_core0 ”。 Kogiso_15-1778572977361.png 接下来,选择工具链并点击“导入” 。 Kogiso_16-1778572998907.png 打开配置工具 右键单击导入的示例,然后选择“使用 MCUXpresso 配置工具打开”。稍等片刻,配置工具将启动。 Kogiso_17-1778573044565.png 配置工具打开后,首先查看右侧面板中的概览。在本例中, “时钟”和“引脚”均显示为绿色(开启) ,表示这两个工具均已启用。 Kogiso_18-1778573085903.png 现在,让我们来看一下时钟图。 150MHz 的主时钟由48MHz时钟源FIRC 通过PLL (PLL0) 、 DIV (PLL0_PDIV)和MUX (SCSSEL)生成。 Kogiso_19-1778573132716.png 接下来,向下滚动一点,可以看到提供给CPU 的时钟。在本示例应用程序中,“ System_clock”对应于CPU 核心时钟。 主时钟频率为 150MHz ,中间经过一个分频器(分布式变量),但仍然以150MHz的频率提供给系统时钟。稍后,我们将改变这个分频器的值,从而改变输入到系统时钟的时钟信号,并观察LED闪烁速度的变化。 Kogiso_20-1778573194903.png 检查 CPU 时钟频率设置为 150MHz 时的 LED 闪烁速度。 首先,我们来看看 CPU 时钟频率设置为150MHz且不做任何更改时的 LED 闪烁速度。关闭配置工具并打开VS Code 。 在组装之前,将电路板( FRDM-MCXN947)连接到电脑。 Kogiso_21-1778573253173.png 连接建立后,调试导入的示例(构建、写入和运行应用程序)。 Kogiso_4-1779431772140.png 调试过程完成后,程序将在断点处停止,因此请点击屏幕顶部的“|▶”图标。 Kogiso_23-1778573283897.png 如视频所示,红色LED灯将开始闪烁。这是时钟频率为150MHz (默认设置)时的闪烁速度。 (function() { var wrapper = document.getElementById('lia-vid-6395306957112w304h540r743'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (显示我的视频) 要停止,请点击方形图标(即使停止调试后,程序仍会在板上继续运行,因此 LED 会继续闪烁,但请暂时忽略这一点) 。 Kogiso_24-1778573665179.png 将 CPU 时钟频率改为 50MHz,并检查 LED 闪烁速度。 接下来,我们将使用ClocksTool将 CPU 核心时钟从 150MHz 更改为50MHz 。 再次打开配置工具中的时钟工具。在时钟图中向下滚动一点,然后更改连接到系统时钟的DIV(AHBCLKDIV) 。更改时,单击要更改的 DIV 中的数字,然后从下拉菜单中进行选择。此处选择1/3会将系统时钟更改为50MHz 。 *更改时钟设置时请注意,更改靠近时钟源的上游时钟设置可能会影响下游的多个时钟设置。 Kogiso_0-1779430403587.png 现在,我们将重写示例代码。首先,单击“配置工具”屏幕左上角的“更新代码” 。在出现的对话框中,选择“确定”。 Kogiso_26-1778573845631.png 在此状态下返回VS Code后,屏幕顶部会出现三个复选框。请确保选中它们,然后单击“确定” 。稍等片刻,时钟工具中所做的更改将应用到VS Code中的示例代码。 *如果 SDK 版本不同,则可能不会显示此内容。 Kogiso_27-1778573865307.png 如果成功,屏幕右下角将显示以下消息。 Kogiso_28-1778573878068.png 再次运行调试测试,完成后,使用“|▶”运行示例应用程序。 LED灯将开始闪烁。这是50MHz时钟频率下的闪烁速度。显然,它比150MHz时钟频率下的闪烁速度要慢。 (function() { var wrapper = document.getElementById('lia-vid-6395308518112w304h540r499'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (显示我的视频) 演示到此结束。感谢各位的参与。 奖励 1 - 时钟设置已作为预设提供。 之前的步骤需要使用DIV 函数更改时钟,而时钟工具则预配置了多种时钟设置。在配置工具中选择时钟工具,然后从屏幕顶部选择所需的时钟:FRO 12MHz / FRO HF 48MHz / FRO HF 144MHz… Kogiso_0-1778574158553.png 例如,如果您选择“BOARD_BootClockPLL_100M ” ,您会发现时钟源、 PLL和DIV都与之前不同。例如,时钟源是24MHz 的外部时钟(SOSC) 。 Kogiso_1-1778574179336.png 附加题 2 - 用于自动生成初始化代码的设置在哪里? 我们将研究如何使用时钟工具自动更新时钟设置(更新代码),以及这如何在实际初始化代码中体现。 检查导入示例的项目文件中的 C 源文件 (gpio_led_output.c)。 Kogiso_2-1778574228909.png 如果你查看C源文件,你会发现初始化引脚、时钟和调试控制台的代码。 Kogiso_3-1778574247421.png 右键单击BOARD_InitHardware();然后单击“转到定义”以查看更多详细信息。 Kogiso_4-1778574280972.png 代码中包含初始化 引脚 、 时钟 和 调试控制台的 功能。 右键单击 BOARD_InitBootClocks(); 并选择“ 转到定义”(或“fn + F12”) 以查看更多详细信息。 目标文件(clock_config.c)是 FRDM-MCXN947这是定义启动时钟配置的生成代码。 向下滚动页面,您会看到,如前所述,有多种时钟配置( FRO 12MHz / FRO HF 48MHz / FRO HF 144MHz / PLL 150MHz / PLL 100MHz )作为预设选项。下图显示的是PLL150MHz的默认值。 Kogiso_5-1778574353197.png 例如,如果您将此部分更改为BOARD_BootClockFROHF48M Kogiso_6-1778574378576.png 初始化将使用FRO HF 48M时钟配置执行,该配置已准备就绪。 Kogiso_7-1778574399078.png 接下来,我们来看看在保持FRO HF 48M不变的情况下,直接在时钟工具中修改DIV 值时,时钟配置和代码会发生怎样的变化。红色框内的文本和设置将会改变。 Kogiso_8-1778574466864.png 此外,如果您将时钟工具中连接到系统时钟的DIV更改为1/2 ,即从48MHz更改为 24MHz,然后运行更新代码,您将看到由于 DIV 的变化,红色帧发生了变化。 Kogiso_9-1778574928326.png   您还可以使用时钟工具查看更改前后的差异。 更改时钟设置后,点击“更新代码”将显示如下所示的对话框。存在差异的文件,其文件名右侧会显示“更改”字样。点击此字样即可查看差异。 Kogiso_2-1779431079086.png clock_config.c我们来检查一下区别。左侧(新生成)显示的是修改后的文件,右侧(磁盘上)显示的是原始文件。您应该能够看到系统时钟存在差异。 出现差异的区域用不同的颜色突出显示,使其在视觉上很容易被发现。 Kogiso_3-1779431340110.png   由于微控制器和处理器的功能集成度不断提高,其内部时钟树变得极其复杂。如果没有像这样的时钟可视化工具,设计和评估此类系统几乎是不可能的,所以请务必使用它。   参考资料 教程视频:如何在 VS Code 环境下使用 MCUXpresso Clocks Too   =========================​ 我们目前无法 回复 此帖子“ 评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但 在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。) 本指南重点介绍 MCUXpresso 配置工具中的“时钟工具”,解释其基本原理和设置时钟的方法。内容涵盖从在 VS Code 环境中安装到演示 CPU 时钟变化引起的 LED 闪烁等各个方面。 (预计耗时:10 分钟 *假设已安装 MCUXpresso for VSC(Visual Studio Code)SDK) MCUXpresso MCX SW | 下载 日本博客
查看全文
AUT-N1925 UCODE DNA - 世界初のセキュリティ付きUHFタグIC <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> NXPの最新世代のパッシブUHF RFIDは、UCODE® DNAと呼ばれ、自動車両識別(AVI)システムで使用できるため、適切に登録されていない車両のドライバーの識別と収集が容易になります。車両登録用のAVIシステムでは、リーダーを道路の上、下、または脇に設置できます。また、ハンドヘルドデバイスに埋め込んで、政府関係者が使用することもできます。車両に取り付けられたタグは、リーダーのRFフィールドによって生成されたエネルギーを使用するため、バッテリーは必要なく、タグの寿命は非常に長いです。暗号化ベースのセキュリティにより、エラーが最小限に抑えられ、不正行為が実質的に排除されます。車両の所有者(および料金徴収者)は、読み取りが非常に正確で安全性が高いため、適切な人物に請求されていることを確信できます。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> NXPの最新世代のパッシブUHF RFIDは、UCODE® DNAと呼ばれ、自動車両識別(AVI)システムで使用できるため、適切に登録されていない車両のドライバーの識別と収集が容易になります。車両登録用のAVIシステムでは、リーダーを道路の上、下、または脇に設置できます。また、ハンドヘルドデバイスに埋め込んで、政府関係者が使用することもできます。車両に取り付けられたタグは、リーダーのRFフィールドによって生成されたエネルギーを使用するため、バッテリーは必要なく、タグの寿命は非常に長いです。暗号化ベースのセキュリティにより、エラーが最小限に抑えられ、不正行為が実質的に排除されます。車両の所有者(および料金徴収者)は、読み取りが非常に正確で安全性が高いため、適切な人物に請求されていることを確信できます。 セキュアなコネクテッド&自動運転車
查看全文
需要 S32K342 FOTA 引导加载程序架构指南(基于 UART 的更新) 您好,NXP团队, 我们正在为 S32K342 开发定制的固件空中升级 (FOTA) 解决方案,希望获得有关推荐的闪存架构和启动流程的指导。 MCU详情 设备:S32K342 PFlash:2 MB 银行 0:1 MB 银行 1:1 MB DFlash:128 KB 当前状态 我们使用UART作为固件更新接口。 目前为止,我们已成功做到: 通过 UART 接收固件(.bin 文件)。 将完整的二进制文件存储到闪存中 确认接收到的图像已正确存储。 我们剩下的挑战是实现引导加载程序架构和应用程序切换机制。 我们希望就以下问题获得澄清: 1. 推荐的FOTA Flash布局 对于 S32K342 双镜像 FOTA 实现,推荐的内存布局是什么? 具体来说,我们想知道以下方面的推荐地点: 引导加载程序 应用插槽 A 应用插槽 B 元数据/启动标志 版本信息 CRC 回滚信息 提供一份包含地址的内存映射示例将非常有帮助。 2. 推荐的启动流程 请问有人能解释一下NXP推荐的完整启动顺序吗? 例如: 重置 引导加载程序启动 检查启动标志 选择活动应用程序 验证图像(CRC/签名) 跳转到应用程序 我们希望能得到流程图或对整个流程的解释。 3. 从引导加载程序跳转到应用程序 对于 S32K342,标准的 Cortex-M7 跳转序列是否足够? 例如: 从应用程序基地址读取 MSP 从基数 + 4 读取 Reset_Handler 设置 MSP 更新 VTOR 跳转到 Reset_Handler 在转移控制权之前,是否有任何 S32K342 特有的要求或初始化步骤? 4. 双应用图像 如果应用 A 和应用 B 位于不同的闪存地址: 每个应用程序都应该有自己的链接脚本吗? 或者,NXP 是否有推荐的构建双槽应用的方法? 5. 闪存库的使用 由于 S32K342 有两个 1 MB 的 PFlash 存储区: 推荐的方法是否是: 从 Bank 0 执行引导加载程序 将新固件编程到 Bank 1 中。 验证成功后切换执行 两个 PFlash 存储体之间是否存在读写限制或擦除/编程限制? 6. 元数据存储 理想的存储地点在哪里? 活动图像标志 图像有效性 Firmware version CRC 回滚状态 这些物品应该存放在: 保留 PFlash DFlash 另一个专用的区域? 7. 基于UART的FOTA 由于我们的更新接口是 UART,我们想知道推荐的工作流程。 以下流程是否正确? 个人电脑 │ UART │ 引导加载程序接收 .bin 文件 │ 将固件存储到非活动闪存插槽中 │ 验证CRC │ 更新启动元数据 │ RESET MCU │ 引导加载程序选择新映像 │ 跳转至应用程序 或者恩智浦是否推荐其他方法? 8. AB_SWAP 与自定义引导加载程序 对于 S32K342 的生产 FOTA 而言,HSE AB_SWAP 是否是强制性的? 或者,具有双应用程序插槽的完全自定义引导加载程序也是一种受支持且常用的架构吗? 如果您有任何专门介绍 S32K342 FOTA、UART 固件更新或双映像引导加载程序的应用笔记、参考项目、引导加载程序示例或文档,我们将非常感谢您提供这些参考资料。 感谢您的支持。 S32K3 S32DS-ARM Re: S32K342 FOTA Bootloader Architecture Guidance Required (UART-Based Update) 你好@bavinkumar_02 1.对于 S32K342,AB_SWAP 只有一种可能的设置。参见“3.5.3.2HSE固件参考手册中提供了“AB_SWAP”模式下闪存布局的图示,该手册可从“文档”->“安全文件”下载: https://www.nxp.com/products/S32K3 就您的情况而言,最方便、最常见的布局是: lukaszadrapa_0-1782731189993.png 必须安装 AB_SWAP 版本的 HSE 固件(交换是 HSE 的一项功能,没有 HSE 固件就无法执行此操作)。固件已安装到两个分区,并且如图所示,它占用了两个分区中最后的 176KB。 因为整个数据块都被交换了,所以两个数据块中必须有完全相同的引导加载程序副本。其余部分分配给申请。 代码始终从活动块运行,因此引导加载程序和所有应用程序都是针对活动块中的地址编译的。 当引导加载程序更新应用程序时,它会将应用程序编程为被动阻塞,因此在闪存编程期间不会出现边读边写的问题。应用程序编程完成后,即可触发 HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK HSE 服务。下次RESET后,分区将被交换,引导加载程序将像往常一样跳转到应用程序(跳转到当前活动块中的新应用程序)。 2. 流程取决于应用程序。在现代汽车应用中,简单的基于 CRC 的验证已不再被认为足够。软件的完整性和真实性通常通过安全启动机制来保证。在 S32K3 设备上,这是由硬件网络安全引擎 (HSE) 处理的,它会执行加密验证(例如)。基于签名)在启动过程中自主进行。预计量产汽车系统将利用这些硬件支持的网络安全功能,而不是仅仅依赖 CRC 验证。 我们提供安全启动应用笔记,其中包括演示项目。可从以下网址下载: https://www.nxp.com/products/S32K3 应用笔记请点击此处查看: 文档 -> 安全文件 -> 安全启动应用笔记 v0.1.1.0(AN744511) 相关演示项目可在此处下载: 设计资源 -> 软件 -> 安全文件 -> SecureBootAppNoteDemo (SW745310) 您可以在 HSE 演示示例中找到其他安全启动示例: https://www.nxp.com/webapp/Download?colCode=S32K3_HSE_DemoExamples 三种模式——高级安全启动、基本安全启动和 SHE 安全启动——都有相应的示例。建议启用高级安全启动。 请参阅所有项目中包含的 Readme.md 文件。 3. 是的,这是标准的跳转序列。强烈建议在跳转之前取消初始化引导加载程序初始化的所有资源。 4. 如上所述,代码始终从活动分区执行,因此应用程序始终使用相同的链接器文件。 5. 前面已经讨论过了。 6.这取决于用户。您可以将数据存储在应用程序映像后面,或者存储在数据闪存中。 7. 对于生产汽车用例而言,从数据传输的角度来看,所提出的流程总体上是正确的,但正如前面提到的,我不建议依赖 CRC 作为主要的验证机制。 在汽车应用中,接收到的图像通常会受到加密保护——例如,图像可能会被加密,并且其真实性/完整性会通过数字签名(而不仅仅是 CRC)来验证。 此外,在使用 HSE AB_SWAP 机制时,引导加载程序在 RESET 后不会简单地通过软件元数据选择新映像。新映像被编程到被动分区并成功验证后,应用程序/引导加载程序应调用 HSE 服务 HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK。这将激活被动块,因此RESET后设备将从新激活的分区启动。 8. HSE AB_SWAP 并非严格强制要求,但对于 S32K342 上的量产汽车 FOTA 解决方案,强烈建议使用。 如果没有 HSE 就实施 FOTA,那就意味着您没有利用 S32K3 平台的一个关键优势。这些设备的主要优点是内置支持 HSE 处理的 A/B 交换(分区重映射)。如果没有它,引导加载程序就必须手动管理一切。 具体而言,不包括 HSE AB_SWAP: 你需要自己实现一种机制来选择 A/B 图像。 您需要仔细管理地址空间,并将每个应用程序链接到不同的固定位置。 图像之间的切换不会由硬件自动处理,而完全由您的软件处理。 除了 HSE AB 交换功能之外,没有其他硬件支持的重映射机制可用。 此外,您还将失去与 AB_SWAP 集成的安全启动的简洁性和稳健性。借助 HSE,图像激活、验证和分区之间的切换以更加可控和高效的方式进行处理,符合汽车网络安全要求。 总之,虽然不考虑 HSE 也能做到这一点,但这会大大增加复杂性,并消除该平台的关键优势。 您可以查看“S32K3XX HSE 和 OTA 高级培训 [TR744101]”,该培训文档可从以下链接下载:文档 -> 安全文件: https://www.nxp.com/products/S32K3 问候, 卢卡斯
查看全文
eIQ and MCUXpresso SDK 26.03 with VSCode There are some items to be aware of when using eIQ projects in VSCode with MCUXpresso SDK 26.03 Debugger hangs when debugging eIQ examples on i.MX RT700 in VSCode There are two work-arounds available: 1) Use a JLink to debug the project instead of the default CMSIS-DAP interface. To do this: Install LinkServer Put a jumper on JP20 on the i.MX RT700 EVK, Update the MCULink firmware to use JLink by running C:\NXP\LinkServer_25.12.83\MCU-LINK_installer\scripts\program_JLINK.cmd Take off the jumper on JP20.  2) Alternatively update the linker file in the eIQ project:  Open the MIMXRT798Sxxxx_cm33_core0_flash.ld linker file in Repository->mcusdk->examples->_boards->mimxrt700evk->eiq_examples->tflm_label_image->cm33_core0->gcc  (use the path based on the eIQ project name that you are trying to use) In that linker file go to line 198 to 203 and replace the .ncache section with the code below:   .npu_ncache (NOLOAD) :   {       KEEP(*(.npu_ncache_data))       KEEP(*(.npu_ncache_data*))   } > m_ncache   ASSERT(. < 0x20580000, "Error: .npu_ncache cannot go beyond SRAM P18")   .ncache (NOLOAD) :   {     *(NonCacheable)     . = ALIGN(4);     __noncachedata_end__ = .;     /* define a global symbol at ncache data end */   } > m_ncache anthony_huereca_0-1767760539733.png anthony_huereca_1-1767760621035.png i.MX RT700 eIQ HiFi4 and HiFi1 projects cannot be imported or compiled in VSCode or command line GCC. In VSCode use the "Repository" import option. To compile the projects you must install Xtensa Xplorer, the RT700 license, and RT700 NewLib DSP Configuration file. Then add the following environmental variables: XCC_DIR=/ /XtDevTools/install/tools/RI-2023.11-win32/XtensaTools XTENSA_CORE=rt700_hifi4_RI23_11_nlib The project can then be compiled with command-line GCC with: west build -p always --sysbuild examples/eiq_examples/tflm_cifar10_hifi4/cm --toolchain armgcc --config flash_debug -b mimxrt700evk -Dcore_id=cm33_core0 Note that if using HiFi1 projects then XTENSA_CORE should be set to rt700_hifi1_RI23_11_nlib Also an additional compile option called -mlongcalls needs to be used to avoid issues when adding additional operators the ops list. Inside \mcuxsdk\examples\_boards\mimxrt700evk\eiq_examples\tflm_cifar10_hifi4\hifi4 edit the reconfig.cmake file in the mcux_add_xtensa_configuration options: mcux_add_xtensa_configuration( CC "-DXOS_CLOCK_FREQ=237500000 -std=c99 -mlongcalls" CX "-stdlib=libc++ \ -mlongcalls \ -std=c++17" ) A warning message comes up in eIQ Neutron SDK 3.1.2 If using eIQ Neutron SDK 3.1.2 then the follow warning will appear on the serial terminal during the model initialization: Unable to save model handle, call neutronModelUnprepare() when done This warning is not relevant for Neutron C devices like RT700 and MCX N and can be ignored as it does not impact inference time or accuracy. It will be fixed in the next eIQ Neutron SDK release. Some eIQ files that are commonly modified are shared among all eIQ examples For example, the Neutron libraries are shared among all eIQ examples. This can cause version compatibility issues with the default eIQ examples if the eIQ Neutron libraries are updated with eIQ Neutron SDK. This is because the eIQ projects in MCUXPresso SDK were converted using Neutron Converter 3.0.0 and the Neutron libraries in the SDK are shared among all eIQ projects.  To work around this, either revert the Neutron libraries back to version 3.0.0 or else download a separate repository to use the default eIQ examples. 
查看全文
Question about ENEDC(S32K3) Hello Team May I ask about ENEDC of K3? Customer uses MCAL with RTD.  However, I did not find the information of RTD about ENEDC. from MSCM, it is showing only ISR core assign configuration.  May I ask, how to enable ENEDC using RTD(MCAL)? Thank you.  Safety_SW Source: Direct Customer Source: NXP Internal Re: Question about ENEDC(S32K3) Thanks for your explanation! Re: Question about ENEDC(S32K3) Hi @Luke_Chun , as per my understanding from RM description, it is needed to enable these bits if you want to have report path form the gaskets to FCCU active. This is why sCheck is enabling these bits otherwise it would be not possible to test the report path. I have to agree that this is essential setup and maybe a lot of K3 customers are not even aware of this setup (just enabling related FCCU channel, but not these bits). Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hello @RadoslavB  Thanks for your explanation, but I’m not sure about the ENEDC’s proposal. Could you confirm my understanding?  Does ENEDC need to use only “TEST”? Or Is it need to enable for Safety application? (such as, if User wishes to use the check of eDMA Read, ENEDC’s bit2 will be “set” by manually with FCCU configuration.) Thank you.  Re: Question about ENEDC(S32K3) Hi @Luke_Chun , there is no request for configuring MSCM peripheral registers in SAF. The sCheck tests internally enables these registers when it is testing latent faults in associated EDC gaskets, but enabling those bits for application is not covered by any NXP SW. Therefore, customer shall enable these registers manually. For S32K5 there has been defined sBoot check for enablement these registers but again, AFAIK configuration is not in scope of any NXP SW. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @Luke_Chun, I don't support issues related to Safety driver. To request support from them, you should remove "RTD" label and keep only "Safety_SW" label in your post. Or you can raise a new post only for Safety_SW. Best regards, Dan Re: Question about ENEDC(S32K3) Hi @DanNguyenDuy  Thanks for your update. I also checked Safety drive but I did not find which one is related with ENEDC... May I ask, how to check about it? Thank you. Re: Question about ENEDC(S32K3) Hi @Luke_Chun, RTD driver is not supported for configurating ENEDC. From my point of view, you should check this feature in modules of Safety driver because this register is related to FCCU. Best regards, Dan Re: Question about ENEDC(S32K3) Adding snippet from K3 HW Safety Manual: So right now it is up to customer to follow this AoU - configuration and check is not supported by NXP at the moment. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @Luke_Chun , there is support for configuration of the INTM peripheral, you can find it in RTD Platform plugin - Interrupt Monitors. On SAF side, sCheck does have INTM latent faults test, but sBoot is not checking any INTM configuration register. In my opinion if Interrupt is as detection/reaction mechanism for safety related fault, then SM1.INT_MON must be active and customer shall fulfill SM4.INT_CHK, sBoot should double check such a configuration. Kind Regards, Radoslav Re: Question about ENEDC(S32K3) Hi @RadoslavB  may I ask one more question? How about the INTM_MM? Is this same with ENEDC? (RTD or SAF does not support for configuration INTM_MM enable. User has to do the configuration INTM_MM by user code.) Thank you.   
查看全文
基于 RT1170 通过 USB DFU 更新固件 基于 RT1170 通过 USB DFU 更新固件 基于 RT1170 通过 USB DFU 更新固件 开发环境 准备dfu-util 准备dfu-util 的步骤 运行演示 使用 SDK 中的预建固件 使用自定义固件 无需借助外部编程工具即可在现场执行微控制器 (MCU) 固件升级是一项必要的功能。 对于支持 USB 设备控制器的 MCU,USB 设备固件更新 (DFU) 类提供了一种解决方案。USB_DFU 引导加载程序只需要一台 PC 和一根 USB 电缆。 RT系列也提供了此功能。以 RT1170 为例,SDK 中 USB 类下提供了一个 DFU 项目。该项目基于 MCUXpresso IDE。通过运行 SDK 中的 dev_dfu_freertos_cm7 项目,RT1170 将被枚举为 dfu 设备,并且在通过另一根 USB 电缆将其连接到主机 PC 后,用户可以使用“dfu-util”实用程序将固件下载到该设备。 开发环境 软件环境: SDK版本:2.15.000 IDE: MCUXpresso IDE 演示项目: dev_dfu_freertos_cm7 主机软件: dfu-util 下载链接: dfu-util 对于 Windows 64 位:下载dfu-util-0.9-win64.zip   硬件环境: 主板:RT1170-EVKB   Preparing dfu-util dfu-util用于将固件下载到 DFU 设备,但它不会将 CRC32 添加到固件中。由于 SDK 中的 DFU demo 会验证 CRC32,以确保写入 Flash 的固件没有位错误,因此需要修改dfu-util源代码。 准备dfu-util 的步骤 安装依赖项 sudo apt-get build-dep libusb-1.0-0 dfu-util sudo apt-get 安装 gcc-mingw-w64-x86-64 下载dfu-util和libusb源代码 git克隆https://git.code.sf.net/p/dfu-util/dfu-util git 克隆https://github.com/libusb/libusb.git 修改源代码中的 CRC 代码 修改dfu_file.c中的dfu_store_file函数,将CRC32添加到Firmware后缀。 /* 如果有后缀,则写入 */ 如果(写入后缀){ uint8_t dfusuffix[DFU_SUFFIX_LENGTH]; dfusuffix[0] = 文件->bcdDevice & 0xff; dfusuffix[1] = 文件->bcdDevice >> 8; dfusuffix[2] = 文件->idProduct & 0xff; dfusuffix[3] = 文件->idProduct >> 8; dfusuffix[4] = 文件->idVendor & 0xff; dfusuffix[5] = 文件->idVendor >> 8; dfusuffix[6] = 文件->bcdDFU & 0xff; dfusuffix[7] = 文件->bcdDFU >> 8; dfusuffix[8] = 'U'; dfusuffix[9] = 'F'; dfusuffix[10] = 'D'; dfusuffix[11] = DFU_SUFFIX_LENGTH; /*crc = dfu_file_write_crc(f, crc, dfusuffix, DFU_SUFFIX_LENGTH - 4);*/ dfusuffix[12] = crc; dfusuffix[13] = crc >> 8; dfusuffix[14] = crc >> 16; dfusuffix[15] = crc >> 24; crc = dfu_file_write_crc(f,crc,dfusuffix + 12, 4); }   构建libusb mkdir -p构建 cd libusb-1.0.24 ./autogen.sh PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig./configure --host=x86_64-w64-mingw32 --prefix=$PWD/../build 制作 进行安装 光盘 .. Build dfu-util cd dfu-util-0.11 ./autogen.sh PKG_CONFIG_PATH=$PWD/../build/lib/pkgconfig./configure --host=x86_64-w64-mingw32 --prefix=$PWD/../build 制作 进行安装 光盘 .. 完成这些步骤后,新构建的工具将位于/build/bin文件夹中。 Gavin_Jia_0-1733384039454.png 打开 Windows 的 cmd。使用新的dfu-suffix.exe运行以下命令,CRC32 将添加到固件中。 dfu-suffix.1 exe -a你的固件 Gavin_Jia_1-1733384039494.png 运行演示 使用 SDK 中的预建固件 SDK 提供了一个预编译的固件二进制文件 ( dev_hid_mouse_bm.bin ),其中已包含 CRC32 校验码。请按以下步骤操作: 使用 MCUXpresso IDE 将dev_dfu_freertos_cm7演示刷入 EVKB 板。 Gavin_Jia_2-1733384039655.png   通过 USB 将开发板连接到主机 PC。 Gavin_Jia_3-1733384039682.png 在 USB 设备描述符中,我们找到供应商 ID 和产品 ID: Gavin_Jia_4-1733384039793.png   运行以下命令下载固件: dfu-util.exe -d <你的视频:进程号> -D <你的固件> 下载后,DFU 演示将验证 CRC32 并在 RAM 中执行新的固件。该设备将被枚举为 USB 鼠标,在屏幕上以矩形图案移动。 使用自定义固件 使用自定义固件时,请确保图像加载到正确的地址(例如,0x10000)。如果偏移量不正确,即使 CRC 校验通过,DFU 演示也将无法加载固件。 Gavin_Jia_5-1733384039909.png 构建和加载自定义固件: 将hello_world_cm7项目导入 MCUXpresso IDE。 在托管链接器脚本设置中,启用“将应用程序链接到 RAM”。 Gavin_Jia_6-1733384040028.png 调整内存设置以匹配 DFU 项目要求,确保 ITCM 是第一个 RAM 区域。 Gavin_Jia_7-1733384040294.png 构建项目并生成二进制文件。 Gavin_Jia_8-1733384040455.png 使用修改后的dfu-util工具将 CRC32 附加到二进制文件并将其下载到开发板。验证自定义固件是否正确执行。 CRC 添加: Gavin_Jia_9-1733384040480.png 新固件加载成功: Gavin_Jia_10-1733384040568.png 中文版及演示版请见此链接: https://www.nxpic.org.cn/module/forum/forum.php?mod=viewthread&tid=803149&fromuid=3253523 动手实践培训
查看全文
imx8mp ドキュメント こんにちは、 以下のリビジョン番号の文書が欲しいです IMX8MPIEC Rev.2、2023年2月データシート IMX8MPRM Rev.1、2023年6月版リファレンスマニュアル よろしくお願いいたします ラビンドラ Re: imx8mp docs こんにちは、 あなたが探している i.MX 8M Plus ドキュメントの最新リビジョンは次の通りであることを確認できます: 1. IMX8MPIEC Rev.2、02/2023 データシート - これはデータシートの現在のバージョンです。 2. IMX8MPRM Rev.1、06/2023 リファレンス マニュアル - これはリファレンス マニュアルの現在のバージョンです。 両方のドキュメントは、NXP の Web サイトからダウンロードできます。以下の場所からアクセスできます。 - データシート: https://www.nxp.com/webapp/Download?colCode=IMX8MPIEC - リファレンス・マニュアル: https://www.nxp.com/webapp/Download?colCode=IMX8MPRM これらのドキュメントには、i.MX 8M Plus プロセッサの最新の仕様と情報が記載されています。ドキュメントの改訂版間で仕様が異なる場合は、常に最新の改訂版が古いバージョンに優先します。   よろしくお願いします。    
查看全文
VS Code の MCUXpresso: SDK サンプルの操作 このガイドでは、次の内容について説明します。 スタンドアロン SDK からサンプル プロジェクトをインポートする方法 ビルド、フラッシュ、デバッグの方法 シリアルモニターの使い方 (マイビデオで視聴) MCUXpresso for VS Code
查看全文
DES-N1855 PCBおよびシステム環境向けの高速SERDESモデリング <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ネットワーキング デバイスは、10 Gbps を超える高速差動シグナリングを使用します。高速チャネルのトランスミッタ(TX)およびレシーバ(RX)素子の回路設計には、PCBおよびシステムの信号損失をオフセットする機能があります。このセッションでは、高速信号チャネルとその特性を確認し、TX回路とRX回路が一般的に信号損失を相殺するためにどのように使用されているかを説明します。また、これらのTXおよびRX回路を効果的に機能させるために必要なチャネルの主要な特性も示します。このセッションでは、PCBチャネルの最大長、最適化が必要なPCB固有の構造、および5〜10Gbps動作のためのIBIS-AMIモデルの使用についても説明します。NXPのPCB設計からのチャネルの例も含まれます。 ビデオプレゼンテーションを見る <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ネットワーキング デバイスは、10 Gbps を超える高速差動シグナリングを使用します。高速チャネルのトランスミッタ(TX)およびレシーバ(RX)素子の回路設計には、PCBおよびシステムの信号損失をオフセットする機能があります。このセッションでは、高速信号チャネルとその特性を確認し、TX回路とRX回路が一般的に信号損失を相殺するためにどのように使用されているかを説明します。また、これらのTXおよびRX回路を効果的に機能させるために必要なチャネルの主要な特性も示します。このセッションでは、PCBチャネルの最大長、最適化が必要なPCB固有の構造、および5〜10Gbps動作のためのIBIS-AMIモデルの使用についても説明します。NXPのPCB設計からのチャネルの例も含まれます。 ビデオプレゼンテーションを見る デザイン |ソフトウェア&サービス
查看全文
MCUXpresso IDE - Release History This document contains a history of the releases of MCUXpresso IDE, with links to the announcement blog for each release. Receive email notification for new releases If you would like to receive notifications when a new version of MCUXpresso IDE is released, please make sure to follow this document.   Release History June 2025 MCUXpresso IDE v25.06 December 2024 MCUXpresso IDE v24.12 September 2024 MCUXpresso IDE v24.9 July 2024 MCUXpresso IDE v11.10.0 April 2024 MCUXpresso IDE v11.9.1 January 2024 MCUXpresso IDE v11.9.0 October 2023 MCUXpresso IDE v11.8.1 August 2023 MCUXpresso IDE v11.8.0  March 2023 MCUXpresso IDE v11.7.1  January 2023 MCUXpresso IDE v11.7.0  October 2022 MCUXpresso IDE v11.6.1  July 2022 MCUXpresso IDE v11.6.0  April 2022 MCUXpresso IDE v11.5.1  January 2022 MCUXpresso IDE v11.5.0  September 2021 MCUXpresso IDE v11.4.1  August 2021 MCUXpresso IDE v11.4.0 b6224 replaced by b6237 to fix an eclipse updater issue. July 2021 MCUXpresso IDE v11.4.0  April 2021 MCUXpresso IDE v11.3.1  January 2021 MCUXpresso IDE v11.3.0  October 2020 MCUXpresso IDE v11.2.1  July 2020 MCUXpresso IDE v11.2.0   March 2020 MCUXpresso IDE v11.1.1  December 2019 MCUXpresso IDE v11.1.0  MCUXpresso IDE v11.1.0 SDK Handling Hotfix (January 2020) September 2019 MCUXpresso IDE v11.0.1 MCUXpresso IDE v11.0.1 Segger-LPC Debug Hotfix (September 2019) MCUXpresso IDE v11.0.1 LPC55xx Debug Hotfix (October 2019) June 2019 MCUXpresso IDE v11.0.0 February 2019 MCUXpresso IDE v10.3.1 December 2018 MCUXpresso IDE v10.3.0 July 2018 MCUXpresso IDE v10.2.1 May 2018 MCUXpresso IDE v10.2.0 January 2018 MCUXpresso IDE v10.1.1 November 2017 MCUXpresso IDE v10.1.0 July 2017 MCUXpresso IDE v10.0.2 March 2017 MCUXpresso IDE v10.0.0
查看全文
s32k322 EMAC RMII 问题 您好, 我们 我们 使用 的 恩智浦 S32K322 微控制器 并 经历 以太网 以太网 接收 问题: TX 传输 正常工作 正常、 但 RX 接收 不 不 功能.关于 硬件 硬件方面 硬件方面、 硬件方面 RMII 接口 是 直接 与 直接连接到 以太网 以太网 交换机、 并且 我们 我们 验证了 开关 电路板 PCB 迹线 长度 匹配 和 阻抗 控制 满足 设计 设计 符合设计要求。用于 功率 排序、 我们 目前 确保 手动 确保 开关 开关 完成 其 开机 之前 在 S32K322。 测试期间 测试期间、 我们 我们 开关 开关 发送 ARP 数据包 并 已 测量到 测量了 与 RX 信号 波形 用 示波器 示波器、 所有 所有 所有 看起来 正确。然而 然而 S32K322 EMAC 不 不 进入 接收 接收 中断 (与 相同 波形 成功 成功 接收到 在 另一个 ECU 平台)。我们 我们还 还 检查了 我们还检查了 EMAC 接收 和 错误 计数器 中的 寄存器中的 和错误计数器、 和 都 读取 为 零.所有 时钟 频率 配置 已 已 时钟频率配置 频率配置 正确。 正确。请 帮助 提供 额外的 故障排除 意见 或 建议。   顺祝商祺! 李永祥 Re: s32k322 EMAC RMII issue 你好@PavelL、 感谢您的答复。我们已经检查了所提供的一些要点。 只有在交换机完全启动并运行(确认与其他端口通信)后,才会接通 MCU 的电源。我们增加了图中所示的延迟,但无济于事。 我们检查了时钟并重新配置了它,但 RX 计数器仍然没有显示新的计数。 在外设配置中选择 RMII 模式。 交换机可以从 TX 方向正确接收和转发 RMII 帧到其他端口,因此交换机配置似乎是正确的。我们还扫描了交换机和 MCU RX0/RX1 信号提供的 TXCLK,波形看起来很好,交换机的帧没有明显问题。 我们正在对照参考示例进行交叉检查。 我们使用的是 RTD 6.0.0。测试项目附后,以供验证(代码混乱,敬请原谅,这是测试固件)。   顺祝商祺! 李永祥 Re: s32k322 EMAC RMII issue 你好@YongxiangLi、 有几个方面看起来值得首先检查。 由于发送工作正常,但 RX 数据包计数器和 RX 错误计数器都保持为 0,我目前怀疑 EMAC 根本无法识别有效的 RMII 接收活动,而不是接收帧后再丢弃它们。   最重要的检查是   1) 初始化期间的 RMII 参考时钟计时 在执行 emac/引脚/时钟初始化之前,请验证来自交换机的外部 50 MHz RMII 参考时钟是否已经存在并稳定在 S32K322 引脚上。很可能需要增加较小的延迟,正如 S32K3-T-BOX 所建议的那样。另请注意下面代码片段的第一行: PavelL_0-1781082817961.png 2) MCU 内部的 RMII 时钟配置 对于 S32K3 RMII,MAC 在 EMAC_MII_RMII_TX_CLK 上使用 50 MHz 的 RMII 参考时钟,而外部 RX_CLK 引脚不在 RMII 模式下使用。但是,仍需要正确配置内部 EMAC RX/TX 时钟(100 Mbps 通常为 25 MHz,源自 50 MHz RMII 参考时钟)。请仔细检查 EMAC 时钟多路复用器/分频器设置。 用于 S32K3 的 RMII 时钟 3) RMII 模式选择 请确认 gmac 驱动程序(用于 EMAC 外设)确实配置为 RMII 模式(而非 MII),并且在初始化过程中尽早进行了选择。   4) 开关侧 RMII 模式 由于您的 MAC 直接连接到交换机端口,而不是分立的 PHY,因此还请验证交换机端口是否真正配置为 RMII/rev-RMII 运行,并且正在向 MCU 驱动正确的 50 MHz 参考时钟。   5) 或者,您可以将您的项目与我的 S32K344 EMAC lwIP 项目进行比较 S32K 示例   为了缩小范围,请与我们分享一下: - 您使用的是哪个版本的 S32K3 RTD 驱动程序? - 能否至少分享您项目的简约版本或 mex 文件?   顺祝商祺! 帕维尔 Re: s32k322 EMAC RMII issue 你好@YongxiangLi、 我仔细审查了您的项目,对每个细节都格外关注。我实在想不出Rx为什么对你不起作用。虽然有些细节可以调整,但这些调整微乎其微。 您使用的是哪种 VDD_HV_B? 作为诊断步骤,您还可以尝试在 GMAC 驱动程序中启用混杂模式。 这样,MAC 就能接受所有传入帧,而不受目标 MAC 地址过滤的限制,这有助于判断问题是与帧过滤相关,还是接收路径在更底层出现了故障。 如果启用混杂模式后行为未发生改变,且接收计数器仍保持为零,那么问题很可能出在数据包过滤层之下(例如 RMII 时钟、接收路径初始化或 DMA/描述符处理)。 作为另一个有用的调试步骤,我建议您退一步,从标准的 InternalLoopback 示例开始,并根据您的硬件平台进行调整。 首先,请验证 InternalloopBack 示例在您的主板上是否能正常运行。这有助于确认 GMAC 的基本初始化、描述符处理、缓冲区配置以及软件流程在 S32K322 上均按预期运行。 之后,您可以取消勾选“内部环回模式”,并将该项目作为与外部交换机通信的最小基线。换句话说,使示例尽可能接近有效的参考设计,并再次测试帧的传输和接收。 这种方法有助于确定问题是源于与交换机的硬件接口(例如 RMII 时序/时钟),还是由当前项目中更高层级的软件集成差异所导致。 顺祝商祺! 帕维尔 Re: s32k322 EMAC RMII issue 你好@PavelL  感谢您的耐心支持。我们将按照您的建议在周末继续进行调查,并将于下周一或周二给您回复。 顺祝商祺! 李永祥 Re: s32k322 EMAC RMII issue 你好@PavelL、 很抱歉回复晚了。我们根据最近的研究结果进行了进一步的测试。我们测试了混杂模式,但结果没有变化。 我们还有一点观察结果:在重新设计 PCB 并实现外部环回后,MCU 能够接收自己发送的帧。然而,同一台交换机使用相同的配置,通过同一端口,经由 RMII 与另一产品板上的不同 MCU 成功通信。这让我们非常困惑,究竟是什么原因导致了这个问题。 我们将继续进行分析。我们目前的计划是通过让MCU TX和交换机输出相同的包来比较波形。然而,这在实施上具有挑战性,我们仍在努力——交换机转发的帧并不干净,因为它们包含许多其他数据包,会干扰波形捕获。 我们非常感谢您能提供任何其他建议。   顺祝商祺! 李永祥 Re: s32k322 EMAC RMII issue 你好@YongxiangLi、 谢谢你的更新。 根据您最新的观察,下一步的一个有用方法可能是通过交换机本身创建一个更可控的交换机到 MCU 接收测试。   由于 MCU 端的外部环回功能正常,这表明基本的 GMAC TX/RX 路径和软件流程是功能正常的。因此,隔离从开关输出到 MCU RMII 接收接口的特定路径可能很有帮助。   如果你的交换机支持,你可以尝试以下方法之一: 1. 配置一个非常简单的静态 L2 转发路径,以便将已知的测试帧仅转发到 MCU RMII 端口。 2. 或者,如果支持,可以使用端口镜像生成向 MCU 端口的受控出口帧。 如果交换机支持,我还建议暂时禁用所有端口的 MAC 地址学习功能。   无论哪种情况,我都建议禁用或过滤所有其他不必要的流量,如果可能的话,禁用转发到所有其他端口。目标是只让一个已知的帧模式到达 MCU,以便更清晰地捕获 RMII 接收波形(REF_CLK、CRS_DV、RXD0、RXD1)。 顺祝商祺! 帕维尔
查看全文
[i.MX] Dual Wi-Fi(5GHz, 2.4GHz) + BLEによるheart Beatソフトデモ コンテンツ: - i.MX 2台を使用してデュアルバンドWi-Fi(5GHz、2.4GHz)とBLEをテストできます。 - 上記の手作業の分析 詳細については、readmeを参照してください。 テスト環境: 2 台の i.MX 8M Plus EVK または 2 台の i.MX 8M Quad EVK。 試し済みBSP: imx-image-full、LF6.12.20_2.0.0 ローカル conf 設定: IMAGE_INSTALL:append = "bluez5 bluez5-noinst-tools bluez5-obex openobex obexftp glibc-gconv-utf-16 glibc-utils python3-pybluez bluez-tools ppp" 以下は分析結果の例です Yusei_Uegama_0-1767601030292.png コンテンツ: - i.MX 2台を使用してデュアルバンドWi-Fi(5GHz、2.4GHz)とBLEをテストできます。 - 上記の手作業の分析 i.MX プロセッサ SW | ダウンロード 日本語ブログ
查看全文
MPC 8347ECZQAGD8 Does anyone have the BSDL file for this device? What is this device ID Code? Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO)
查看全文
ST7701ドライバ Hello ST7701 ディスプレイ コントローラと通信しようとしています。 いくつか例はありますか?可能であれば、共有していただける方はいらっしゃいますか? i.MX RT1170 ボードを使用しています。SDK のサンプルには、HX8394、RM68191、および RM68200 ディスプレイ コントローラ用のドライバが見つかりました。ST7701 に似たものを見つけたいと思います。 誰か助けてくれませんか? ありがとうございます。 フランチェスコ・ソリート Re: ST7701 drivers こんにちは、 @SolitoFrancescoさん、 現時点では、 ST7701 ディスプレイ コントローラ用の SDK にはドライバ サポートがありません。このコントローラとの統合は手動で行う必要があります。 ディスプレイ コントローラとの互換性を保つには、LCDIF モジュールの解像度値、同期信号、クロック周波数を調整することが重要です。EVK を使用する場合は、SDK ドライバを使用して次の関数の値を調整できます。 BOARD_InitLcdifClock() BOARD_InitMipiDsiClock() BOARD_SetMipiDsiConfig () これらの関数は同期値のマクロとともにすべて「display_support.c」で参照されています。このファイルは、ディスプレイ コントローラ のサポートを調整するときに重点的に扱うファイルになります。   また、次のアプリケーションノートも必ずご覧ください。LCDディスプレイのセットアップ方法やその他の役立つ考慮事項について、さらに詳しく説明しています。i.MX RT eLCDIF RGBモードの使用例(NXP.com)   BR、 エドウィン。 Re: ST7701 drivers おはよう ディスプレイ製造元とドライバ製造元から受け取った指示に従って、ご指摘のファイルを変更しました。MIPI を介してドライバ レジスタに書き込み、読み取ることができます。オシロスコープで差動 MIPI 波形を見ることはできますが (「構成」フェーズ後も)、ディスプレイにはまだ何も表示されません。私は「mipi_dsi_compiance_test」というNXP SDK のデモ例を使用しています。 もっと助けていただけますか? ありがとうございます。 フランチェスコ・ソリート Re: ST7701 drivers こんにちは、 @SolitoFrancescoさん、 実行中にコードをデバッグできましたか?何かエラーメッセージが印刷されていますか?データ ラインにはどのようなデータ パターンが表示されますか?これらのパターンは、readme.md ファイルに記載されている予想されるパターンと一致していますか? BR、 エドウィン。 Re: ST7701 drivers こんにちは。サンプル プロジェクトは、ディスプレイ DEMO_PANEL_RK055MHD091 で正常に動作します。次に、最終的なアプリケーションで使用するパネルに切り替えました。解像度が異なる (480x800) ため、定義を調整しました。その後、ドライバを変更しました(fsl .hおよび.cファイル) を読み込み、ディスプレイと通信できるようになりました。レジスタへの書き込みと読み出しが可能です。しかし、ディスプレイの構成後、サンプル プロジェクトがイメージ バッファーの送信を開始すると、オシロ スコープ上で MIPI 波形が表示されますが、ディスプレイには何も表示されません。専用コマンドを使用してすべてのピクセルをオンにしてみたところ、画面が完全に白く表示されるため、ディスプレイは壊れていないと考えられます。私が理解できないのは、問題がディスプレイの構成にあるか、またはサンプル プロジェクトで適応させる必要がある他の何かにあるかということです。ディスプレイメーカーとコントローラメーカーに問い合わせましたが、各方面からの可能な限りの支援が必要です。ディスプレイに搭載されているコントローラー用の fsl ドライバーを入手することは可能ですか?Sitronix ST7701 です。私にお知らせください。ありがとう、そしてよろしく。フランチェスコ Re: ST7701 drivers こんにちは、 私も同じ状況です (同じドライバと解像度、ベースは開発ボードで動作したテスト例です)。コントローラーは構成されており、ステータスも読み取ることができ (エラーなし)、DSI ラインにデータも存在しますが、画面には何も表示されません。 dsi_dpi_config の videoMode を kDSI_DpiBurst から他のモードに変更しても効果はありません。 画面がビデオストリームを受け入れていないようですね? Re: ST7701 drivers こんにちは、フランチェスコさん。 ディスプレイを動作させることができました。 DisplayTFT_SetMipiDsiConfig 関数に次の行を追加します。 dsiConfig.enableNonContinuousHsClk= 真; たとえば、次の行の後: DSI_GetDefaultConfig(&dsiConfig); dsiConfig.numLanes = DISPLAY_MIPI_DSI_LANE_NUM; dsiConfig.autoInsertEoTp= 真; ディスプレイ IC が正しく構成されており (必要な場合は、画面の構成を共有できます)、ディスプレイ クロック (私の設定は約 26 MHz) も正しく構成されていることを前提としています。 よろしくお願いいたします、クリス Re: ST7701 drivers こんにちは、リノ ご提案ありがとうございます。私のアプリケーションでも動作するようです。素晴らしい。おそらく何かをより適切に設定する必要があると思いますが、今は画面に画像が表示されるようになりました。 可能であれば、設定を共有していただければ、私の設定と比較して、より改善することができます。何か違うことが分かったらここでお知らせします。 改めて感謝申し上げます。enableNonContinuousHsClk 設定はどこで思いつきましたか? 敬具、 フランチェスコ Re: ST7701 drivers こんにちは、リノ 私の設定とあなたの設定を比較しています(最後にここにアップロードします)。 その間、私が気づいたのは、私が使用しているのは ST7701 ですが、おそらくあなたは ST7701S (末尾に S が付く) を使用しているということです。似ていると思いますが、よく分かりません。 気づいたことは、初期化をまったく行わなくてもディスプレイが機能するようになったことです。起動は「ゆっくり」で明るさも低いですが、動作します。次に、0xE0 から 0xEF までの設定 (ST7701 データシートに記載されていない) のみを送信すると、ディスプレイが非常に高速に起動し、正しい色で表示されます。その他の設定はすべて必要ないようです(奇妙に聞こえます)。 連絡を取り合いましょう。終わったら比較を共有します。 改めてお礼申し上げます。 敬具、 フランチェスコ Re: ST7701 drivers こんにちは、 ファイルは SDK 内の他のドライバに基づいて作成されました。 遅延を短いものに変更することもできます。 今朝、設定手順を確認し、ディスプレイメーカーの推奨に従っていくつか変更してみましたが、それ以上の改善が見られなかったため、DSI 設定自体を詳しく調べ始めました。クロックは正常で、ビデオ モード (バースト モード) も正常であることはわかっているので、残されたオプションは DSI 自体のオプションのみでした。 以下の内容(およびドキュメントの他の部分)を理解します。 https://docs.nxp.com/bundle/AN13573/page/topics/連続クロックと非連続クロック.html BR、クリス Re: ST7701 drivers こんにちは、リノ お約束どおり、あなたと私の設定の比較を添付ファイルでご覧ください。詳しくは触れませんでしたが、私や皆さんが相違点の中に何か興味深いものを見つけたら、ぜひここに書き続けましょう。 敬具 フランチェスコ Re: ST7701 drivers こんにちは、フランチェスコさん。 遅れてごめんなさい。 あなたの比較を見て、多くの違いに気づきました。それは、一部は画面自体によるものです(私たちはガラス/タッチ/スクリーンのサンドイッチを使用しており、それに対する構成修正がありました - 少なくともサプライヤーはそう説明していました) 🙂 ) が表示されます。 電源制御などの一部の設定は起動には必要ありませんが、品質の向上(コントラスト/ガンマ設定)に必要です。 面白いのは、それを実行しているかどうかに関係なく、この「Sunlight Readable Enhancement」と呼ばれる機能全体が必須だということです。このデータに基づいて、最適なパラメータを自動的に設定します。これらが間違っているか欠落している場合(デフォルト値)、自動的に設定されるまでに時間がかかります -> そのため、お気づきのとおり、起動が遅くなります。 ドキュメント自体はかなりイライラさせるもので、多くのコマンドはドキュメント化されておらず、それらなしでは画面を完全に起動することが不可能な場合がよくあります。これはこのモデルに限ったことではなく、他のいくつかの Sitronix モデルでも同様の現象が発生しました。 敬具、 クリス
查看全文