Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
AMMCLIB COS_FLT wave fault Hi,  I've encountered a very strange problem. When using the Simulink model of the AMMCLIB library, the output of the floating-point cosine function has spikes. Why is this? I can use the sin function and the cos function in the Simulink standard library normally.I hope to get your help. Chris_Tigger_0-1754322560482.png matlab version : 2025a AMMCLIB version: 1.1.22 回复: AMMCLIB COS_FLT wave fault The input can be -pi ~pi ,I think.
查看全文
Example MPC5748G FlexCAN RXFIFO SDK PA RTM200 S32DS.Power.2017.R1 ******************************************************************************** Detailed Description: Configures the FlexCAN 0 to transmit and receive a CAN message  Baudrate to is set to 500kbps. In this config, RXFIFO is used to receive a messages. 16 filter elements are defined in the RXFIFO table. Both standard and extended IDs are used. MB10 is moreover used to receive a message with given standard ID. MB11 is used to transmit a message upon button press. The callback function is installed as well and is it called each time message is received in MB10, RXFIFO or message is transmitted. NOTE! Termination resistor (120Ohm) have to be placed on transceivers output             12V power supply must be connected. ------------------------------------------------------------------------------ Test HW: DEVKIT-MPC5748G Maskset: 0N78S Target : FLASH Fsys: 160 MHz PLL ******************************************************************************** General
查看全文
Rules - 2015 Registration requirements Minimum skills Previous experience with C or Java is needed. Previous experience with Linux systems is needed. Experience with embedded programming is a PLUS but not a MUST. Team one to three members from either Politechnica University of Bucharest or Military Technical Academy. Linux Embedded Challenge 2015
查看全文
S32K 示例 S32K1xx S32K144 示例 S32K144 CMP 轮询 S32DS2.0 示例 S32K144 验证后门访问密钥 S32DS1.3 示例 S32K144 FlexCAN0 RXFIFO DMA nonSDK S32DS13 示例 S32K144 PDB ADC 触发 DMA ISR S32DS 示例 S32K144 Flash RW simple S32DS 示例 S32K144 DMA 内存复制测试 S32DS S32K144 EEEPROM 使用示例 示例 S32K144 EEEPROM 使用 - 无 SDK 示例 S32K144 RTC VLPS 示例 S32K144 WDOG RCM 中断 示例 S32K144 SRAM ECC 注入  S32K144 RAM 保留示例 S32DS.R1 示例 S32K144 I2C主设备 MPL3115A2 S32DSR1_v3 示例S32K144 FlexCAN RXFIFO DMA S32DS.ARM.2018.R1  示例 S32K144_printf_implementation - S32DS_1.0 示例 S32K144 在 FreeRTOS 下使用 UART printf/scanf - S32DS 示例 使用 LPIT 定时器实现可配置周期函数调用的 S32K144 SDK 示例 S32K144 .noinit章节用法 示例 S32K144 PDB ADC DMA S32DS.ARM.2018.R1 示例 S32K144 RAM 自检简单 S32DS 2018.R1 示例 S32K144 位置无关代码  示例 S32K144 FlexCAN 虚拟网络停止模式测试 S32DS.ARM.2.2 示例 S32K144 LPIT DMA LPSPI 示例 S32K144 FlexCAN TX/RX/Error ISR 测试 S32DS2.2 示例 S32K144 FlexIO 空闲检测 S32DS2.2 S32K146 示例 S32K146 Set_whole_FlexRAM-as_RAM S32DS.ARM.2.2 S32K148 示例 S32K148 PDB0-PDB1 环 S32DS3.4 RTM4.0.3 示例 S32K148 PDB0-PDB1 环 DMA S32DS3.4 RTM4.0.3 示例 S32K148 GPIO 中断 S32K116 示例 S32K116 WDOG 快速测试 示例 S32K116 LPUART LIN 从机 TXRX ISR S32DS.ARM.2.2 示例 S32K116 FlexCAN PN 停止 S32DS.ARM.2.2 示例 S32K116 FlexCAN VLPR 测试 S32DS.ARM.2.2 S32K118 示例 S32K118-SRAM-keep_data_over_SW_reset v0_1 S32DS.ARM.2.2 S32K3xx S32K344 示例 S32K344 PIT BTCU ADC DMA DS3.4 RTD100   示例 S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO 测试 S32DS3.4 RTD200   示例 Siul2_Port_Ip_Example_S32K344_ITCM_DTCM S32DS3.4RTD300   示例 S32K358 FlexCAN TXRX ISR S32DS35 RTD400/500    
查看全文
Importing a Wrapped Key Blob into ELS Using NXP_DIE_KEK_SK on RW612 Introduction When provisioning secrets into an RW612 device, one common requirement is to securely load cryptographic keys without ever exposing the plaintext key material to application software. The EdgeLock Secure Subsystem (ELS) provides a secure mechanism for accomplishing this by allowing a wrapped key blob to be imported directly into an ELS key slot. The wrapping key is derived from device-unique root material inside the secure enclave. This article demonstrates how to: Derive the die-specific NXP_DIE_KEK_SK Import and unwrap the blob using ELS Store the resulting key in an ELS keyslot Remove temporary key material after provisioning The imported key never exists in plaintext in application memory, significantly reducing the attack surface compared to software-based key management. Understanding the Key Hierarchy Before looking at the implementation, it is useful to understand the different keys involved. NXP_DIE_MK_SK(NXP_DIE_INT_MK_SK) This is the 256-bit die master key derived from UDF and PUF using the KEYPROV operation. Characteristics: Die unique Not exportable Used as a root-of-trust Occupies key slot 0 on RW612 The key is loaded via dedicated secret key bus from PUF into ELS and XOR with a UDF derived key using KEYPROV, where it is used as a main key for further derivation of all remaining keys used by ROM. Applications never directly access the key material. NXP_DIE_KEK_SK This 256-bit key is derived from the master key using CKDF. It used for the wrapping of RFC3394 blobs stored in the OTP fuse region. Purpose: Acts as a Key Encryption Key (KEK) Used only for wrapping or unwrapping other keys Can be generated dynamically when needed In this example the KEK is stored temporarily in key slot 5. Imported Key The final key imported from the wrapped blob depends on how the blob was originally generated using the HSM provisioning flow (for example, via HSM_STORE_KEY and later loaded with loadkeyblob ). The imported key may represent a customer-defined security asset such as: Customer master key ( CUST_CKDFK_FLAG ) HKDF master key ( CUST_HKDFK_FLAG ) HMAC key ( CUST_HMACK_FLAG ) CMAC key ( CUST_CMACK_FLAG ) AES key ( CUST_AESK_FLAG ) Key unwrap-only key ( CUST_KUOK_FLAG ) Regardless of the key type, the import process remains the same. The key material is never exposed to application software during this process. Once imported, the key can be used directly by ELS for the cryptographic operations associated with its intended purpose, while remaining protected within the secure subsystem. Prerequisites FRDM-RW612 Key blob wrapped using RFC3394 format using HSM_STORE_KEY Key blob programmed to OTP fuses using LoadKeyBlob command. Required Headers: #include "mcux_els.h" #include "mcuxClEls.h" #include "mcux_pkc.h" #include "fsl_romapi_otp.h" Step 1 – Derive NXP_DIE_KEK_SK The wrapped blob is protected using a Key Encryption Key (KEK). On RW612, the KEK can be derived from the device master key ( NXP_DIE_MK_SK ) using the official recipe constants. The derivation operation uses  masterKeyIdx = 0;  which corresponds to NXP_DIE_MK_SK  and produces a new key in the target slot. Example: static const uint8_t derivation_data[12] = { 0x94, 0xbe, 0x03, 0xac, 0x8b, 0x59, 0x32, 0x45, 0x11, 0x7f, 0xf8, 0x3f }; mcuxClEls_Ckdf_Sp800108_Async( masterKeyIdx, target_slot, targetKeyProperties, derivation_data);   Wait for completion: mcuxClEls_WaitForOperation(MCUXCLELS_ERROR_FLAGS_CLEAR);   Verify that the derived key slot becomes active before proceeding. Step 2 – Retrieve the Wrapped Blob The example reads the blob directly from OTP memory. otp_fuse_read(starting_fuse_index + i, &fuse_word); Each fuse word contains four bytes.   These words are assembled into a contiguous buffer: blob_data[i * 4 + 0] = (fuse_word >> 0) & 0xFF; blob_data[i * 4 + 1] = (fuse_word >> 8) & 0xFF; blob_data[i * 4 + 2] = (fuse_word >> 16) & 0xFF; blob_data[i * 4 + 3] = (fuse_word >> 24) & 0xFF; The resulting buffer contains the RFC3394 wrapped key. Step 3 – Import and Unwrap the Blob Once the KEK exists and the blob has been retrieved, the import operation can begin. Configure ELS for RFC3394 import: mcuxClEls_KeyImportOption_t options; options.word.value = 0; options.bits.kfmt = MCUXCLELS_KEYIMPORT_KFMT_RFC3394; Perform the import: mcuxClEls_KeyImport_Async( options, blob_data, blob_length, kek_slot, target_slot); Parameters: Parameter Purpose blob_data Wrapped key blob blob_length Blob size kek_slot Slot containing NXP_DIE_KEK_SK target_slot Destination keyslot Wait for completion: mcuxClEls_WaitForOperation(MCUXCLELS_ERROR_FLAGS_CLEAR); If successful, ELS unwraps the blob internally and places the resulting key into the destination key slot. No plaintext key material is exposed to software. Step 4 – Clean Up Temporary KEK After the blob has been imported, delete the temporary KEK: mcuxClEls_KeyDelete_Async(kek_slot); mcuxClEls_WaitForOperation(MCUXCLELS_ERROR_FLAGS_CLEAR); This leaves only the imported key resident inside ELS. Next Steps At this point, the wrapped key blob has been successfully imported into the target ELS key slot, and the temporary NXP_DIE_KEK_SK has been removed. The imported key is now available for use by ELS-protected cryptographic operations without exposing the underlying key material to application software. The next step is to validate the imported key by performing the operation it was provisioned for. Depending on the key type, this may include: AES encryption or decryption operations HMAC generation or verification CMAC generation or verification HKDF-based key derivation Importing or unwrapping additional key material Secure firmware or data encryption workflows A successful cryptographic operation confirms that: The blob was read correctly from storage. The NXP_DIE_KEK_SK derivation completed successfully. The RFC3394 unwrap operation succeeded. The key was installed into the intended ELS keyslot with the expected properties. For production deployments, this import mechanism provides a secure method for provisioning customer keys generated with the HSM tooling while ensuring that plaintext key material never leaves the ELS security boundary.
查看全文
Kernel Deadlock When VPP Crashes on LX2160A (LSDK‑20.05, VPP 22.06, DPDK 21.11) Dear NXP Support, We are seeing a kernel deadlock when VPP crashes on our LX2160A‑based custom hardware. Below are our environment details and the observed behavior. 1. System and Software Versions SoC / Board: LX2160A, custom hardware Data plane: DPDK + VPP LSDK: 20.05 Kernel: 4.19.90-rt35 MC firmware: 10.36.0 VPP: 22.06 DPDK: 21.11 2. DPAA2 Interface Mapping dprc.1/dpni.7 (interface: eth4, end point: dpmac.3) dprc.1/dpni.1 (interface: eth1, end point: dpmac.4) dprc.1/dpni.0 (interface: eth0, end point: dpsw.0.1) dprc.1/dprc.3/dpni.6 (end point: dpmac.9) dprc.1/dprc.3/dpni.5 (end point: dpmac.7) dprc.1/dprc.3/dpni.4 (end point: dpmac.8) 3. VPP LCP and TAP/TUN Configuration VPP LCP is creating TAP pairs (tap1/N3, tap2/cu, tap3/cu2). itf-pair: [0] TenGigabitEthernet0 tap1 N3 10 type tap itf-pair: [1] TenGigabitEthernet1 tap2 cu 11 type tap itf-pair: [2] TenGigabitEthernet2 tap3 cu2 12 type tap 4. Problem Description When VPP crashes or terminates abnormally: The vpp_main process enters uninterruptible sleep (D state). A kernel worker thread is blocked on rtnl_lock. ps -eo pid,stat,comm,args | grep vpp_main 21670 Dl vpp_main [vpp_main] ps -eo pid,comm,wchan | grep -E ip 9510 kworker/0:0+ipv rtnl_lock cat /proc/21670/stack [<0>] __switch_to+0xe8/0x150 [<0>] __flush_work.isra.13+0x134/0x248 [<0>] flush_work+0xc/0x18 [<0>] rollback_registered_many+0x1a8/0x560 [<0>] unregister_netdevice_queue+0x90/0x118 [<0>] __tun_detach+0x37c/0x390 [<0>] tun_chr_close+0x30/0x90 [<0>] __fput+0x8c/0x1b8 [<0>] ____fput+0xc/0x18 [<0>] task_work_run+0x90/0xb0 [<0>] do_exit+0x2b4/0x9a0 [<0>] do_group_exit+0x38/0xa0 [<0>] get_signal+0xac/0x5c8 [<0>] do_signal+0x80/0x2a8 [<0>] do_notify_resume+0xd0/0x110 [<0>] work_pending+0x8/0x10 [<0>] 0xffffffffffffffff cat /proc/9510/stack [<0>] __switch_to+0xe8/0x150 [<0>] rtnl_lock+0x14/0x20 [<0>] addrconf_verify_work+0xc/0x20 [<0>] process_one_work+0x1e0/0x318 [<0>] worker_thread+0x40/0x440 [<0>] kthread+0x128/0x130 [<0>] ret_from_fork+0x10/0x18 [<0>] 0xffffffffffffffff how to fix it ! Re: Kernel Deadlock When VPP Crashes on LX2160A (LSDK‑20.05, VPP 22.06, DPDK 21.11) You could use Layerscape Linux Distribution POC Rev. 6.1.55_2.2.0 release. It integrates: DPDK v22.11 VPP v2302
查看全文
[フィルター: smut] RadoslavB の投稿本文が「cock」、ボード「ap-ソフトウェア-サポート」に一致しました。 [フィルター: smut] RadoslavB の投稿本文が「cock」、ボード「ap-software-support」に一致しました。 投稿題名: Re: S32K324のBISTデバッグに関する質問 投稿本文: こんにちは@Luke_Chun 、 Bist_GetExecStatus が BIST_BUSY を返す場合、このビットが設定されている(BIST 操作がまだ完了していない)ことを意味します。 しかし、スクリーンショットを見るとこのビットは 0 なので、なぜ BIST_BUSY が返されるのか分かりません。 Bist_Specific_GetExecStatus() をデバッグしてみると、次のようになります: uint32 ReadRunSw = SAFETYBASE_REG_READ32 ( BIST_STCU_RUNSW_REG ); MBIST11 も実行されていることがわかります。これは、お客様アプリケーションでは使用すべきではない BIST_DIAGNOSTIC_CFG を実行していることを意味します。BIST_SAFETYBOOT_CFG を実行させてください。 クロック設定を部分的にしかカバーしていないスニペットから、クロック設定を検証できません。お客様はクロックのMCUプラグイン設定を比較する必要がありますが、私の能力ではこの点についてお手伝いできません。繰り返しになりますが、すべてのクロックを最大周波数で有効にするだけで十分です。 敬具、 ラドスラフ 本文のテキスト「cock」がフィルターパターン「cock」と一致しました。 ユーザー[id=155006,login=RadoslavB]による投稿には、メッセージ uid 2300499 があります。 投稿へのリンク: Re: S32K324のBISTデバッグに関する質問
查看全文
FS32K142 的电源问题 尊敬的恩智浦专家 本设计中使用的 MCU 是 FS32K142HFT0MLF。 我的问题是:这个设备可以用 3.3 V 电源供电吗,即 VDD = +3.3V? 期待您的回复。 顺颂商祺。 远 Re: Power supply issue with FS32K142 你好@Julián_AragónM 很高兴收到您的回复。 你的回答回答了我的问题。非常感谢。 顺祝商祺! 远 Re: Power supply issue with FS32K142 你好,@FAR1234、 S32K1 可以在 3.3V 电压下工作。它支持 2.7 V 至 5.5 V 的工作电压范围。这意味着它可以在 3.3 V 或 5 V 电压下运行,具体取决于您的设计要求。 有关 3.3 V 时的 5.3 直流电电气规格,请参阅 S32K1xx 数据表中的第 5.3 章。 致以最诚挚的问候, Julián
查看全文
KW45 知识中心 KW45 的三核架构集成了一个 96 MHz CM33 应用核心、专用 CM3 无线模块内核和一个隔离的 EdgeLock 安全区域。基于闪存的无线模块内核具有专用 SRAM,可提供高度可配置和可升级的软件实施无线模块,从而将主内核上的资源释放给客户应用空间。 符合低功耗蓝牙 5.3 标准的无线模块最多可同时支持 24 个安全连接。EdgeLock 安全区域的隔离执行环境提供了一套加密加速器、密钥存储操作和安全生命周期管理,最大限度地减少了主要内核安全责任。 KW45 MCU 还集成了 FlexCAN,有助于无缝集成到汽车的车载或工业 CAN 通信网络中。FlexCAN 模块可以支持 CAN 的灵活数据传输速率 (CAN FD),以实现更高带宽和更低延迟。 neidys_vargas_0-1729795404448.png KW45 方框图 neidys_vargas_0-1730123110234.png KW45 架构框图 文件 参考手册 Datasheet Errata Secure Reference 手册** 认证 SESIP 认证 SESIP ST PSA认证 RED 认证 欧盟符合性声明 (EVK) 欧盟符合性声明(LOC) 日本 MIC KW45-LOC _TELEC-20250221请参见下方附件 蓝牙规范 蓝牙 5.0 功能概述 蓝牙 5.1 功能概述 蓝牙 5.2 功能概述 Bluetooth_5.3_功能概述 Bluetooth_5.4_功能概述 Bluetooth_6_Feature_Overview 评估板 KW45 KW45-EVK KW45-EVK 原理图 KW45-EVK设计文件 KW45-EVK 用户手册 KW45-LOC 用户手册 KW45-EVK快速入门 应用笔记 软件、硬件和外设: AN14122 :如何在 KW45 上使用 RTC本应用笔记介绍了如何在 BLE 演示中配置和使用 RTC 外围设备 AN14141:在 KW45 低功耗蓝牙连接堆栈中启用看门狗定时器模块 。本应用笔记描述了在连接堆栈演示中实现 WDOG 定时器的过程。 AN13855:将 OTAP 客户端服务集成到 KW45/K32W1 蓝牙 LE 外围设备中 本应用笔记提供了将空中编程客户端服务集成到 BLE 外围设备的步骤和过程。 AN13584:Kinetis KW45 和 K32W1 负载拉动报告 本应用笔记描述了负载拉动特性的测量方法及相关结果。 AN13860:使用 OTAP 工具为 KW45/K32W1 创建固件更新镜像 本应用笔记提供了通过 OTAP 工具在 KW45 开发板上创建并升级镜像的步骤。 AN14077:将 KW45 (1MB) 迁移至 KW45 (512kB) 的步骤  本应用笔记描述了从 1MB 闪存迁移至 512kB 闪存所需的初始步骤。 电源管理: AN13230:Kinetis KW45 和 K32W1 蓝牙低功耗 (BLE) 功耗分析  本应用笔记提供了关于 KW45 无线微控制器 (MCU) 的功耗信息,包括硬件设计及优化以实现低功耗运行。 AN13831:KW45/K32W1 电源管理硬件  本应用笔记描述了在 KW45/K32W1 微控制器中用于电源管理的不同模块的使用方法。 射频: AN13687:K32W1 802.15.4 应用连接性测试 本应用笔记介绍了如何使用连接性测试工具来测试 K32W1 802.15.4 的射频性能。 AN13728:KW45 射频系统评估报告(适用于蓝牙低功耗和 IEEE 802.15.4 应用)本应用笔记提供了 KW45 开发板在蓝牙低功耗(2FSK 调制)和 IEEE 802.15.4(OQPSK 调制)应用中的射频评估测试结果。还描述了可以用于执行测试的设置和工具。  AN14098: KW45-LOC 射频测试报告  本应用笔记提供了KW45B41Z定位板的基本射频测试结果。  AN13228:用于 BLE 应用的 KW45-EVK 射频系统评估报告 本应用笔记提供了 KW45B41Z-EVK 在 BLE 应用中使用二进制频移键控调制的射频评估测试结果。 AN13229:KW45-EVK 与射频系统共存的评估报告(适用于 BLE 应用)本应用笔记提供了 KW45B41Z-EVK 在 BLE 应用(2FSK 调制)中的射频评估测试结果 AN13512:Kinetis 无线产品系列 BLE 与 Wi-Fi 共存应用  本应用笔记介绍了 K32W1/4X 低功耗产品系列对 Wi-Fi 信号的抗干扰能力,并提供了改善与 Wi-Fi 共存的方法  安全性: AN13859:KW45/K32W1 系统内编程工具  本应用笔记提供了在 ISP 模式下启动 KW45/K32W1 微控制器并建立各种串行连接以与微控制器通信的步骤。 AN1403:在批量生产中通过串行线调试(SWD)为KW45闪存编程以应用和无线固件 。本应用笔记详细介绍了在批量生产中通过SWD编写、烧录和设置所有必要参数的步骤。  AN13883: 通过 SPSDK 使用 ISP 更新 KW45 无线电固件  本应用笔记提供了在 ISP 模式下启动 KW45/K32W1 MCU 并使用安全二进制文件更新无线电固件的步骤。 AN14109:使用SEC工具实现KW45和K32W148安全启动 本应用笔记提供了使用 SEC GUI 工具,通过签名镜像和安全二进制文件实现 KW45/K32W1 MCU 安全启动的步骤。 AN13838:KW45 和 K32W148 安全启动使用 SPSDK 命令行工具本应用笔记提供了使用 SPSDK 命令行工具,通过签名镜像和安全二进制文件实现 KW45/K32W1 MCU 安全启动的步骤。 AN13931:KW45 和 K32W148 的生命周期管理 本应用笔记提供了使用 SEC GUI 和 SPSDK 命令行工具来转换 KW45/K32W1 MCU 的过渡生命周期的步骤。 AN14174:KW45/K32W148 使用 NPX 进行闪存加密本应用笔记提供了在 KW45/K32W1 微控制器上启用实时加密的步骤。 AN14158:KW45/K32W148 上的调试认证本应用笔记介绍了如何进行调试认证,以便在现场安全地调试应用程序。  AN14544:EdgeLock 2GO 服务适用于 MPU 和 MCU 本应用笔记介绍了 NXP 设备的 EL2GO 服务。该服务允许在不受信任的环境中为设备进行信任配置。 支持 如果您对 KW45 有任何疑问,请在我们的无线 MCU 社区中留下您的问题!此处 有用链接 参考设计 - NXP 社区 [MCUXSDK] 如何使用 GitHub SDK 适用于 KW4x、MCXW7x、MCXW2x - NXP 社区此社区帖子逐步介绍了如何使用 GitHub SDK [MCUXSDK] GitHub SDK - 蓝牙 LE 平台文档 - NXP 社区此社区帖子提供了 BLE 平台的文档。  使用 KW45/KW47/MCXW71/MCXW72 的信号频率分析仪 (SFA) 模块进行时钟测量 - NXP 社区:该社区提供了如何使用信号频率分析仪的步骤 首次正确构建 PCB 的最佳方式是使用 KW45(汽车)或 K32W1/MCXW71(物联网/工业)... 社区:在此社区中,您可以找到使用 KW45 或 K32W148 和 MCXW71 构建 PCB 的重要链接,所有链接均涉及无线电性能、低功耗和无线电认证 (CE/FCC/ICC) 如何在 Kinetis 系列产品上使用 HCI_bb 并进入 DTM 模式:本文分为两部分: 如何将HCI_bb二进制文件烧录到Kinetis产品中。 使用 R&S CMW270 进行射频测量 BLE HCI 应用程序设置发射机/接收机测试命令:本文提供了相关步骤,展示用户如何向设备发送串行命令。 Bluetooth LE HCI 黑盒快速入门指南:本文介绍了一个简单流程,能让用户通过串行命令控制无线电。 Kinetis (K32/38/KW45 & K32W1/MCXW71)功率配置工具: 此页面专门介绍 Kinetis (KW35/KW38/KW45) 和 MCX W7x (MCX W71) 功率配置工具。它将帮助您估算您的应用程序(汽车或物联网)的功耗,并评估您解决方案的电池寿命。 KW45/K32W1 32MHz 和 32kHz 振荡裕度:本文提供了电路中振荡裕度的正确配置。 基于 KW45 的 CS 1 对多演示NXP - 信道探测   培训 BLE Introduction  射频开关比较 吸收型/反射型 ETSI / FCC / ARIB 标准比较与要求 BLE 信道探测  - 概述 BLE 信道探测 - RF 硬件 BLE 信道探测 - ANSYS 建模工具 BLE 信道探测 - 天线原型验证测量 设备 无线设备: 本文提供了有助于项目开发的设备链接  开发工具  SDK 构建器: MCUXpresso SDK 提供开源驱动程序、中间件和参考示例应用程序,以加快软件开发。 SDK GitHub:SDK 开源驱动程序、中间件和参考示例在 GitHub 上。 NXP MCUXpresso: MCUXpresso 集成开发环境 (IDE) 提供了高级编辑、编译和调试功能,并增加了 MCU 专用的调试功能。支持与所有通用 Arm Cortex-M 的连接。  NXP SPSDK:是一个统一、可靠且易于使用的Python SDK库,适用于 NXP MCU 产品组合,为客户快速制作原型到生产部署提供坚实的基础。 NXP SEC工具: MCUXpresso安全配置工具是一款基于 GUI 的应用程序,用于简化在 NCP MCU 设备上生成和配置可启动的可执行文件。 NXP OTAP Tool: 是一款帮助用户对 NXP 开发板执行空中固件更新的应用程序。 配置工具: MCUXpresso 配置工具是一套集成的配置工具套件,这些工具允许开发人员快速构建自定义 SDK,并利用引脚、时钟和外设生成初始化 C 代码或自定义板支持的寄存器值。 无线 MCU 的 SDK 示例: 这些无线示例包含许多常见的蓝牙配置。 **对于安全文件,必须请求额外的访问权限。  动手实践培训 产品:K32W1 协议:802.15.4 协议:BLE -> 连接性 协议:蓝牙 协议:Matter 协议:Thread 协议:Zigbee
查看全文
Watch The Freescale Cup EMEA Finals LIVE A Livecast has been set up for you to enjoy The Freescale Cup EMEA Finals on 28-29 April that are hosted at the Politecnico of Torino. Connect on Freescale Cup 2015 live streaming - SeLM - Politecnico di Torino Freescale Cup Content
查看全文
Using the HiFi DSP for Inferencing ML Models on i.MX RT Devices This article will describe how to use the HiFi modules found on certain NXP microcontrollers as an optional method for inferencing a model.  There are several ways of running a TFLite neural network model on NXP microcontrollers: Inference a model only using the main core of the device (CM33 or M7) MCX N i.MX RT1050 i.MX RT1060 i.MX RT1170 i.MX RT1180 i.MX RT595 i.MX RT685 i.MX RT700 Inference a model directly on the HiFi4 or HiFi1 core (on supported platforms) i.MX RT595 i.MX RT685 i.MX RT700 Use the Neutron NPU to accelerate inference of a model - with the CM33 controlling the NPU and acting as a fallback for any non-NPU supported layers i.MX RT700 MCX N Use the Neutron NPU to accelerate inference of a model - with the HiFi4 controlling the NPU and acting as a fallback for any non-NPU supported layers i.MX RT700   This article will cover options #2 and #4 which make use of the HiFi DSP module. Running a model on the HiFi4 (option #2) will be much faster than running a model just on the CM33/M7 (option #1). However using the NPU (options #3 and #4) will be significantly faster than only using the DSP due to the hardware optimizations that an NPU provides for neural network calculations. The exact performance gains will be model specific, and also depend on the layer(s) that may not have been converted to use the NPU as NeutronGraph nodes. The accuracy should remain the very similar regardless of method being used. Any type of TFLite neural network model can be ran on the HiFi1/HiFi4 as those DSP modules are just being used accelerate the neural network math that the model uses. CIFAR10 on i.MX RT700 using default MCUXpresso SDK projects: CM33: 105.925ms HiFi1*: 148.487ms HiFi4: 12.312ms NPU w/ CM33 Fallback: 1.048ms NPU w/ HiFi4 Fallback: 0.983ms *HiFi1 runs at 32MHz   Software requirements: Go to the Cadence i.MX RT700 or Cadence i.MX RT685 pages to download the following software. Xtensa Xplorer IDE License Key HIFI DSP Configuration File (NEWLIB) If using a HiFi4 example then download the HiFi4 license and DSP configuration files. Likewise, if using a HiFi1, then will need the HiFi1 license and DSP configuration files. Also you will need to download the Windows or Linux version of these files depending on which host OS you are using on your PC. Finally add the following global system variables which should be set based on the location that Xtensa Explorer was installed (assuming RT700 with HiFi4): XCC_DIR= \XtDevTools\install\tools\RI-2023.11-win32\XtensaTools XTENSA_CORE= rt700_hifi4_RI23_11_nlib MCUXpresso SDK HiFi ML Examples: There are several HiFi related examples in MCUXpresso SDK for i.MX RT700: tflm_cifar10 – Uses Neutron NPU to inference the CIFAR10 model and uses the CM33 as the fallback for any non-NPU operators. tflm_cifar10_hifi1 – Uses HiFi1 to inference the CIFAR10 model. Does not use the Neutron NPU tflm_cifar10_hifi4 – Uses HiFi4 to inference the CIFAR10 model. Does not use the Neutron NPU tflm_cifar10_hifi4_neutron – Uses Neutron NPU to inference the CIFAR10 model and uses the HiFi4 as the fallback for any non-NPU operators. tflm_label_image – Uses Neutron NPU to inference the CIFAR10 model and uses the CM33 as the fallback for any non-NPU operators. tflm_label_image_hifi4 - Uses HiFi4 to inference the Mobilenet model. Does not use the Neutron NPU When using the HiFi eIQ projects provided in MCUXpresso SDK, ensure that the SDK is: Located in a short filename path (ie C:\nxp\RT700), as an excessively long filename path can cause compile issues Directory path contains no spaces If using VS Code import as a Repository project instead of Free Standing. Ensure using at least MCUXPresso SDK 26.03 as there are several important fixes in the 26.03 release for HiFi4 projects Extending Memory Area in HiFi4 Examples for Larger Models: Open:  \boards\mimxrt700evk\eiq_examples\tflm_cifar10_hifi4_neutron\linker\hifi4\min-rt\ldscripts\elf32xtensa.x  And make modifications below to extend the memory used for models.  dsp_core_seg :  org = 20200000, len = 0x200000  dsp_core_ncache_seg :  org = 0x20400000, len = 0x180000  anthony_huereca_9-1783320725255.png   _memmap_mem_dsp_core_start = 0x20200000;  _memmap_mem_dsp_core_end   = 0x20580000;  _memmap_seg_dsp_core_start = 0x20200000;  _memmap_seg_dsp_core_max   = 0x20580000;    anthony_huereca_10-1783320808490.png  Ensure that the stack heap is at 0x2058_0000:    PROVIDE(__stack = 0x20580000);    _heap_sentry = 0x20580000;    anthony_huereca_11-1783320872686.png   Now larger models will compile successfully in Xtensa.    Then after copying in the compiled HiFi4 binary files into the MCUXpresso IDE project, modify source/dsp_config.h file to update the DSP_SRAM_ADDRESS:    anthony_huereca_12-1783321027565.png  Then clean and build the project.   HiFi Lab: See the attached lab document for more details on using the HiFi DSP modules to inference models.    
查看全文
MCUXpresso Config Tools : Clocks Toolの使い方 (日本語ブログ) 目次 はじめに Clocks Toolはどのような場面で活用するのか Config Toolsのインストール Clocks Toolの画面構成 Clocks Toolを使うための基本用語 デモンストレーション:CPUコア・クロック設定を変更し、LEDの点滅速度を変更する おまけ1 - 既にプリセットとして、クロック設定が準備されている おまけ2 - 自動で初期化コードを生成した設定値はどこに はじめに  MCUXpressoは、NXPが提供するマイコン開発用ソフトウェアプラットフォームで、MCUXpresso IDEに加えて、MCUXpresso for VSC (Visual Studio Code)や、 ペリフェラル設定を支援するConfig Toolsも提供しています。  Config Toolsは、ピン設定を行う「Pins Tool」や、クロック構成を設定する「Clocks Tool」などで構成されており、マイコン周辺の初期設定をGUI上で直感的に分かりやすく行える点が特長です。本記事では、この中から クロック設定を担当する「Clocks Tool」 に焦点を当てて解説します。なお「Pins Tool」の使い方については、以下の記事をご参考ください。 MCUXpresso Config Tools : Pins Toolの使い方 (日本語ブログ) クロック設定は、マイコンの性能・消費電力・各ペリフェラルの動作に直結する重要な要素です。一方で、クロックツリーは構成が複雑で、「どのクロックがどこで使われているのか分かりにくい」と感じる方も多いのではないでしょうか。Clocks Toolを使うことで、クロックソースや分周設定、各ペリフェラルへのクロック供給状況を可視化しながら設定・確認できます。また設定内容に応じた初期化コードを自動生成することもできます。 MCUXpresso IDEをインストールした場合には、Config Toolsも一緒にインストールされるため、IDEに内蔵された機能として利用可能です。一方、近年組み込み開発においても利用が広がっている Visual Studio Code(VSC)環境では、MCUXpresso関連の拡張機能をインストールすることで、同様にConfig Tools(Clocks Toolを含む)を利用できます。Config Toolsの機能自体は、IDE版とVSC版で大きな違いはありません。 本記事では、VS Code環境におけるConfig Toolsのインストール方法から、ツールの使い方を説明し、最後にFRDM-MCXN947を用いて、実際にClocks Tool内でCPUクロック設定を変更し、LEDの点滅速度を変えるデモンストレーションを紹介します。 動画でもご覧いただきます。視聴はこちらのリンク MCUXpresso Clocks Toolの使い方(VS Code環境)から Clocks Toolはどのような場面で活用するのか? 既存の内部クロック設定(クロック・ツリー)を確認したいとき 各モジュールへの動作周波数を調整・最適化したいとき 低消費電力を意識して、クロック周波数を落とす構成を検討したいとき Config Toolsのインストール VS Code環境におけるConfig Toolsのインストール方法について解説します。 ※MCUXpresso for VS Codeのインストールがお済みでない方はこちらのブログをご参照ください。 MCUXpresso for VSCとSDKのインストール (日本語ブログ) VS Codeを起動後、左側のパネルからMCUXpressoを選択し、Quick Start PanelよりOpen MCUXpresso Installerをクリックしてください。 Kogiso_0-1778572125810.png Installerが立ち上がりますので、MCUXpresso Configuration Toolsを選択し、右上のInstallをクリックしてください。 (今回のブログではMCUXpresso Config Tools v26.03 をInstallしています) Kogiso_1-1779262222580.png インストールの開始と同時にMyNXPへのログインを求められます。 Kogiso_2-1778572191255.png ログインの後、License Agreementが表示されますので内容をご確認のうえ同意してください。 ※インストール後は、VS Codeを再起動してください。 Q. もしインストールに失敗した場合は? A. 以下ウェブサイトからのご自身のPC OS環境に応じたインストーラーをダウンロードして、試してください。 MCUXpresso Config Tools | NXPマイクロコントローラ (MCU) 向けソフトウェア開発 | NXP Semiconductors) インストールを進めると初期画面で以下のような画面が表示されますが、該当がなければ閉じて問題ありません。 Kogiso_3-1778572212609.png VS CodeからConfig Toolsを呼び出すにはSDKをインストールし、サンプルをインポート後、プロジェクトを右クリックすると Open with MCUXpresso Config Toolsが現れますので、こちらをクリックしてください。 ※この一連のプロセスは最後のデモンストレーションで詳細に説明するので、ここでは割愛します。  しばらくするとConfig Toolsが起動します。 Kogiso_0-1779263924259.png なおMCUXpresso IDEを使用している場合、Config Toolsは標準で統合されており、上部タブから直接起動できます。 Kogiso_5-1778572280128.png Clocks Toolの画面構成 Config Tools起動後、画面右側のパネルでツールの切り替えが可能です。 今回は「Clocks」を選択します。 Kogiso_6-1778572331001.png クロック設定を変更する際によく使用するClocks Diagramは、画面左上から選択することができます。 画面右下のProblemビューには、設定内容に関するエラーや警告が表示されます。 Kogiso_0-1779261646084.png クロック設定に誤りがあり、エラーが発生するとProblemビューにはエラーの発生箇所と原因が表示されます。またClock Diagram上にも該当箇所が赤色でハイライト表示されるため、問題箇所を視覚的に特定できます。 例えば、CPUクロックが規定の最大値を超えるような設定を行った場合、その旨のエラー(下記)が表示されます。 Kogiso_1-1778634860572.png Clocks Toolを使うための基本用語 ここではClocks Toolを使用するうえで、Clock Diagram上に表示される基本用語を整理します。 Clock Tree (クロック・ツリー) クロックがどこで生成され、どのように分配・選択され、各ブロックへ供給されるかを示した構成図(ツリー図)です。Clocks Toolでは、このClock Treeを視覚的に確認しながら設定を行います。 Clock Source (クロック供給源) クロックの起点となる信号源です。内蔵RCクロックや外部クリスタル(振動子)、外部クロック入力などが該当し、クロックツリーの上流に配置されます。 MCX N947では、標準で48MHzの内蔵RCクロック(FIRC)がClock Sourceとして使用されます。 Kogiso_8-1778572482107.png PLL (Phase Locked Loop) Clock Sourceを入力として、安定した高周波クロックを生成する回路です。 倍率設定や分周設定によって出力周波数を調整でき、CPUや高速バス向けのクロックを柔軟に作ることができます。 ここでは、Clock Sourceである48MHzの入力クロックをもとに300MHzのクロック(48MHz/8*50=300MHz)を生成しています。 Kogiso_9-1778572553141.png DIV (Divider : 分周器) クロック周波数を分割して調整するための機能です。 CPU、バス、各ペリフェラルごとに分周設定が用意されており、必要な動作周波数に調整するために使用されます。 以下では、PLL0で生成された300MHzのクロックから150MHzのクロック(300MHz/2=150MHz)を生成しています。 Kogiso_0-1778575383641.png Mux (Multiplexer:マルチプレクサ) 複数のクロック候補の中から、どのクロックを使用するかを切り替えるための機構です。 選択を切り替えることで、下流に供給されるクロックが変わります。 下図では、2つのMUXが存在し、左側は内蔵RCクロックからの48MHzのクロックを選択、右側はDIV(PLL0_PDIV)により分周された150MHzを選択しています。 Kogiso_10-1778572690176.png デモンストレーション:CPUコア・クロック設定を変更し、LEDの点滅速度を変更する ここでは実際にClocks Tool上でCPUに供給されるクロックを変更し、評価ボード上のLEDの点滅速度が変更するかを見ていきます。 ハードウェアの準備 本稿で使用する評価ボード ・FRDM-MCXN947 SDKのインストール VS Code内の左側のパネルからMCUXpressoのアイコンを選択した状態で「Import Repository」をクリックしてください。 Kogiso_11-1778572835161.png その後、左から2番目の「REMOTE ARCHIVE」をクリックし、Packageにて「FRDM-MCXN947」を検索してください。「947」と打ち込むとすぐにFRDM-MCXN947が候補として表示されます。 Kogiso_12-1778572855885.png Name名、Location名、Create Gitへのチェックは任意に設定して下さい。 ※NameおよびLocation名については、「小文字の英数字」「アンダースコア(_)またはハイフン(-)」のみを使用し、(\, /, :, *, ?, ", <, >, |)などの記号(プログラムの動作不良の原因になりうる)やスペースを避けるのが無難です。 最後に「I agree」にチェックを入れた後、「Import」をクリックするとSDKのインストールが開始しますので、しばらくお待ちください。画面右下に"Repository successfully imported"が表示されたら完了です。 Kogiso_13-1778572880338.png サンプルコードのインポート SDKのインストールが完了したら、サンプルコードのインポートへと進みます。 左側のパネルから「Import Example From Repository」をクリックしてください。 Kogiso_14-1778572955527.png 右側に表示された各タブ内で、「Repository」では先ほどインポートしたSDKを選択、 「Board」はFRDM-MCXN947を選択してください。 「Template」では、今回はLEDの点滅速度を変えるデモンストレーションですので、 「led」と打ち込んで表示される「driver_examples/gpio/gpio_led_output_cm33_core0」で試してみます。 Kogiso_15-1778572977361.png その後、Toolchainを選択して「Import」をクリックしてください。 Kogiso_16-1778572998907.png ConfigToolsを開く インポートしたサンプル上で右クリックして、「Open with MCUXpresso Config Tools」を選択してください。少し待つとConfig Toolsが立ち上がります。 Kogiso_17-1778573044565.png Config Toolsが開いたらまずは右側のパネルにあるOverviewを確認します。このサンプルにおいては、ClocksとPinsの2つが緑色(ONの状態)になっており、2つのツールが有効であることを示しています。 Kogiso_18-1778573085903.png では、Clock Diagramを見てみましょう。 Clock SourceであるFIRC 48MHzからPLL(PLL0)、DIV(PLL0_PDIV)、MUX(SCSSEL)を経由して、MAIN Clock 150MHzが生成されています。 Kogiso_19-1778573132716.png 続いて、少し下にスクロールダウンしてCPUに供給されるクロックを見てみます。今回のサンプル・アプリケーションでは、「System_clock」がCPUコア・クロックに該当します。 MAIN Clock 150MHzは途中でDIVを経由しますが、System Clockに150MHzのまま供給されています。後ほど、この途中に存在するDIVの値を変更し、System Clockに入力されるクロックを変更することでLEDの点滅速度の変化を見ます。 Kogiso_20-1778573194903.png CPU Clock 150MHzの状態のLEDの点滅速度を確認する 先ずは、何の変更もしていない150MHzの状態でLEDの点滅速度を見てみましょう。一旦Config Toolsを閉じて、VS Codeを開きます。 ビルドの前にボード(FRDM-MCXN947)とPCを接続します。 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 Clockを50MHzに変更してLEDの点滅速度を確認する 続いて、Clocks Toolを用いてCPUコア・クロックを150MHzから50MHzへと変更します。 再度Config ToolsのClocks Toolを開いてください。Clocks Diagramを少し下にスクロールダウンして、System ClockにつながるDIV(AHBCLKDIV)を変更します。変更の際には変更したいDIVの内の数字をクリックするとプルダウンで選択することができます。ここで1/3を選択するとSystem Clockが50MHzに変化します。 ※クロック設定を変更する際には、Clock Sourceに近い上流のクロック設定を変更すると、下流に存在する複数のクロック設定に影響を及ぼす可能性があるので注意してください。 Kogiso_0-1779430403587.png この状態でサンプルコードを書き換えます。まずはConfig Toolsの画面左上にあるUpdate Codeをクリックしてください。表示されるダイアログで「OK」を選択してください。 Kogiso_26-1778573845631.png この状態でVS Codeに戻ると、画面上部にチェックボックスが3つ並んで表示されますので、チェックが入った状態でOKをクリックしてください。少し待つと、Clocks Toolでの変更が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を使ってクロックの変更をしましたが、Clocks Toolにはあらかじめ複数のクロック設定がプリセットとして用意されています。Config ToolsにてClocks Toolを選択し、画面上部からFRO 12MHz / FRO HF 48MHz / FRO HF 144MHz…と任意のクロックを選ぶことができます。 Kogiso_0-1778574158553.png たとえば「BOARD_BootClockPLL_100M」を選んでみると、Clock Source、PLL、DIV、それぞれが先ほどと異なることがわかります。例としてClock Sourceは24MHzの外部クロック(SOSC)となっています。 Kogiso_1-1778574179336.png おまけ2 - 自動で初期化コードを生成した設定値はどこに? Clock Toolsを用いてクロック設定を自動更新(Update Code)した後、実際の初期化コードにどのように反映されるのかを見てみます。 インポートしたサンプルのProject FilesからCソースファイル(gpio_led_output.c)を確認します。 Kogiso_2-1778574228909.png Cソースファイルの中身を見ていくと、Pin、Clock、Debug consolの初期化を実行するコードが存在します。 Kogiso_3-1778574247421.png BOARD_InitHardware(); 上で右クリックし、Go to Definition をクリックするとさらに詳細を見ることができます。 Kogiso_4-1778574280972.png Pin、Clock、Debug consolのそれぞれ初期化を実行するためのコードがあります。BOARD_InitBootClocks(); で右クリックし「Go to Definition(もしくは"fn + F12")」を選択し、さらに詳細を見てみます。 遷移先のファイル(clock_config.c)は、FRDM‑MCXN947 の起動時クロック構成を定義する生成コードです。 スクロールダウンしていくと先ほど説明した通り、複数のクロック構成(FRO 12MHz / FRO HF 48MHz / FRO HF 144MHz / PLL 150MHz / PLL 100MHz)がプリセットとして用意されていることがわかります。下記画像では規定値である PLL150Mとなっていますが、 Kogiso_5-1778574353197.png 例えばこの部分をBOARD_BootClockFROHF48Mに変更すると Kogiso_6-1778574378576.png プリセットとして準備されているFRO HF 48Mのクロック構成にて初期化が実行されます。 Kogiso_7-1778574399078.png 次にFRO HF 48Mのまま、Clocks Tool上で直接DIVの変更を行うとクロック構成およびコードがどのように変化するか見てみます。赤枠で囲んだテキスト&設定部分が変更されます。 Kogiso_8-1778574466864.png 更に、Clocks Tool上でSystem ClockへとつながるDIVを1/2、つまり48→24MHzへ変更し、Update Codeを行うと、DIVの変更により赤枠が変わったことがおわかりいただけると思います。 Kogiso_9-1778574928326.png   なお、Clocks Tool側でも変更前後の差分を確認することができます。 クロック設定を変更後、Update Codeをクリックした際に以下のようなダイアログが表示されます。差分が生じたファイルにはファイル名の右側に change と表示されます。これをクリックすると差分を見ることができます。 Kogiso_2-1779431079086.png clock_config.c の差分を確認します。左側(Newly generated)が変更後のファイル、右側(On disk)が変更前のファイルです。System Clockに差分が生じているのが確認できると思います。 差分が生じた箇所は色が変更しているので視覚的にわかりやすいです。 Kogiso_3-1779431340110.png   マイコン、プロセッサには、機能集約が進んでいるため、内部のクロックツリーも非常に複雑化しています。このようなクロック可視化ツールがないと、現実的に設計・評価は難しいと思いますので、是非ご活用ください。   参考資料 解説動画: MCUXpresso Clocks Tooの使い方(VS Code環境)    =========================​ 本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。​ お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。​ (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。) MCUXpresso Config Toolsの中から「Clocks Tool」にフォーカスし、クロック設定の基本および設定方法を解説します。VS Code環境での導入方法から、CPUクロック変更によるLED点滅デモまで紹介します。 (作業時間:10分 *MCUXpresso for VSC (Visual Studio Code), SDKをインストールしている前提) MCUXpresso MCX SW | Downloads 日本語ブログ
查看全文
FXPS71407 相对压力值 你好! 我使用的是 FXPS71407!我将数据类型配置为 0x0,即相对压力数据。然后读取 snsdata0,结果是 0x0。但正如数据表如下所示:板处于恒定压力中,16 位寄存器中的数据必须是 0x75C0,但是 0x0。有什么问题吗? 谢谢您! gangli_weride_1-1735548844485.png Re: FXPS71407 relative pressure value 你好 我仍在与专家联系,让我与你们分享一下信息。 "寄存器 0x40 中不应写入任何内容,这很可能是导致问题的原因"。 希望这些信息对您有所帮助 祝你愉快,好运连连。 Re: FXPS71407 relative pressure value 你好,拉法: 我将数据类型配置为 0x0",配置是指写入寄存器还是写入闪存?:写入寄存器 如果没有写入闪存,能否确认是否向寄存器 0x40 写入了任何内容? 以下是我的设置: physaddr 为 0x1 所有设置均通过 CRM 命令发送: DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x1a 0xf0 0xf8 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x40 0x00 0xe9 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x42 0x00 0x14 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x26 0x1a 0xb8 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x23 0x0f 0xb9 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x44 0x10 0x92 0 DSI3-MasterGen2.exe DSI3da 0 5 8 1000 crm2 0x1 0x8 0x44 0x00 0x3c 0 谢谢! Re: FXPS71407 relative pressure value 你好 我联系了一位专家,他告诉我以下几点。 "我将数据类型配置为 0x0",配置是指写入寄存器还是写入闪存? 如果写入闪存,上述问题同样适用。 (施加到 BUS_I 的电压) 如果没有写入闪存,能否确认是否向寄存器 0x40 写入了任何内容? 如果是,他们能分享设置吗? 您能确认这些信息吗?我将等待您的答复。 Re: FXPS71407 relative pressure value UF2 没有锁定。寄存器 0x5f 的值为 0x00 Re: FXPS71407 relative pressure value 你好 P_CAL_ZERO 寄存器是 UF2,如果 UF2 被锁定,可能会导致保存数值时出现问题,请检查 UF2 是否被锁定。 RafaR_0-1735588291638.png 祝你愉快,好运连连。
查看全文
imx95 电源模式 我正在开发一款运行 Linux 6.12(基于 Yocto)的自定义 i.MX95 板。我遇到了与 USB3 主机控制器有关的挂起到内存(深度睡眠)故障。当执行 echo mem> /sys/power/state 时,系统会中止 xhci-hcd 的挂起:WARN: xHC CMD_RUN 超时,紧接着 PM: failed to suspend async: error -110.启用 USB 主机模式时,即使没有活动的 USB 流量,问题也会持续出现。我使用的是由 GPIO 控制的固定 5V VBUS 稳压器,USB3 控制器、PHY、时钟和功率域在 DTS(附后)中定义。我的要求是在低电源模式下完全关闭 USB VBUS 的电源,同时允许系统成功进入深度睡眠。我附上了完整的暂停/恢复 dmesg 日志和与 USB 相关的相关 DTS 节点以供参考。我希望得到指导,了解在 i.MX95 上避免 xHCI 挂起超时所需的正确 DTS 和/或驱动程序处理方法。 Re: imx95 low power mode 您能否向我们分享详细步骤,以便我们在 EVK 板上复现它?谢谢 Re: imx95 low power mode 在自定义板中我使用 fusb302 但未作为 usb3.0 启用,我们将其用作 usb2.0。 但在进入深度睡眠时(echo mem> /sys/power/state ),xhci-hcd 驱动程序出现错误。 测试设置: • SoC:i.MX95 • 操作系统:Yocto Linux(内核 6.x、电路板支持包) • USB 模式:主机(xHCI、USB3)• 连接设备:USB 闪存盘(大容量存储) 正常启动板。 将 USB 存储设备连接到 USB3 主机端口。 使用 lsusb 验证枚举并确认设备可访问。 使用以下命令进入电源模式: echo mem > /sys/power/state 在此步骤本身之后它会显示错误。 使用配置的唤醒源(电源按钮/ GPIO)恢复系统。 恢复后,观察到 USB 设备是: 未检测到,或 在 dmesg 中显示 xHCI / DWC3 相关错误,或 需要重新插入 USB 才能重新工作。 ERROR LOGS : echo mem> /sys/power/state [ 117.057281] PM: suspend entry (deep) [ 117.066009] Filesystems sync:0.005 seconds [ 117.071209] Freezing user space processes [ 117.076800] Freezing user space processes completed (elapsed 0.001 seconds) [ 117.083781] OOM killer disabled. [117.087011] 冻结剩余的可冻结任务 [117.132725] 冻结剩余已完成的可冻结任务(已经 0.041 秒) [117.140164] printk:暂停主机(使用 no_console_suspend 调试) [117.156868] sd 0:0:0:0:0:[sda] 同步 SCSI 缓存 [117.267552] xhci52-hcd xhci-hcd.2.auto:警告:xHC CMD_RUN 超时 [117.267611] xhci-hcd xhci-hcd.2.auto:PM:dpm_run_callback ():platform_pm_suspend 返回 -110 [117.267631] xhci-hcd xhci-hcd.2.auto:无法暂停异步:-110 [117.267702] 下午:一些 设备无法挂起,或者检测到提前唤醒事件 [117.268017] hub 1-0:1.0:hub_ext_port_status 失败(错误 = -108) [117.268044] USB usb1-port1:无法禁用(错误 = -108)[117.516365] 下午:恢复设备花了 0.248 秒 [117.570639] OOM 杀手已启用。 [ 117.573777] 重新启动任务......完成。 [ 117.575261] sd 0:0:0:0: [sda] 测试单元就绪失败:Result: hostbyte=0x01 driverbyte=DRIVER_OK [ 117.578423] random: crng reseeded on system resumption [ 117.587117] sda: detected capacity change from 120164352 to 0 [ 117.598136] PM: suspend exit -sh: echo: write error:连接超时 Re: imx95 low power mode 嗨@kannappan、 好了,我们要放元旦假期了。当我回到办公室时我会在我们的板上试一试然后给你回复。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode 嗨@kannappan、 对不起,这周太忙了,我下周会为您测试并与您分享结果。 祝您有美好的一天 顺祝商祺! Rita Re: imx95 low power mode HI@Rita_Wang, 对于上述问题是否有任何答复。 谨致 Kannappan
查看全文
SPIサンプルコード こんにちは。私は「Spi_Transfer_S32K312」というプロジェクトでNXP が提供する spi サンプル コードを勉強しています。コード内の各関数の意味を知りたいのですが、ヘッダーファイルの場所を知ることはCANですか? mingimin_0-1766466097344.png Re: spi example code こんにちは@mingimin ヘッダー ファイルは、プロジェクト ディレクトリ内の RTD → include の下にあります。 さらに、S32K3/S32M27x SPI ドライバ統合マニュアルと RTD に付属のユーザー マニュアルを確認することをお勧めします。これらのドキュメントには、ドライバの制限、ハードウェアとソフトウェアの要件、使用ガイドライン、構成手順など、ドライバに関する詳細情報が記載されています。これらは、ドライバの行動や能力をより深く理解するのに役立ちます。 これらのリソースは、たとえば次のパスにあります: C:\NXP\S32DS.3.5\S32DS\software\PlatformSDK_S32K3\RTD\Spi_TS_T40D34M50I0R0\doc 正確なパスは、S32DS のバージョンとインストール ディレクトリによって異なる場合があることに注意してください。 BR、ヴェインB
查看全文
S32K314 の ADC セルフテスト (スクエアチェック) サポート こんにちは、 UM Square Checkのドキュメントには、ADCセルフテスト機構について記載されています。しかし、「セーフティ機構」を確認すると、ADCセルフテストは「NONE(なし)」と表示されており、S32K314パッケージのSquare Check (SCheck)設定にもこのオプションは見つかりません。 この機能をCANで有効にする方法や設定方法を教えてください。 優先度: 高 SAFETY_SW Re: ADC Self-Test (Square Check) Support for S32K314 こんにちは、チームの皆さん アップデートはありますか? よろしくお願いします。 Re: ADC Self-Test (Square Check) Support for S32K314 こんにちは、チームの皆さん アップデートはありますか? よろしくお願いします。 Re: ADC Self-Test (Square Check) Support for S32K314 こんにちは@JasonTsengSG 、 私の理解では、これらはより高いパフォーマンスとトラクションインバーターおよびモーター制御 (eTPU) の追加サポートを備えた新しい K3 派生製品です。 S32K3E_SW_アーキテクチャ.docx RMとSMはイントラネットで見つけることができます。ここでは(K3Eの代わりに、このK3サブグループを指すために特定のK396派生名を使用することもできます): Zebra - ドキュメント - S32K396 - すべてのドキュメント オートモーティブ セーフティ ソフトウェア - リリース_1.0.6 - すべてのドキュメント 敬具、 ラドスラフ Re: ADC Self-Test (Square Check) Support for S32K314 こんにちは、ラドスラフさん。 S32K3E と S32Kxx の違いは何ですか? どちらも S32K396、S32K394、S32K376、S32K374、S32K366、S32K364 のグループだそうです。 S32K3E 固有の RM および HW セーフティマニュアルはどこにあるか教えていただけますか? よろしくお願いします。 Re: ADC Self-Test (Square Check) Support for S32K314 わかりやすい説明をありがとう、ラドスラフ。
查看全文
88Q9098: STA モードで ofdma/mu-mimo を有効/無効にすることは可能ですか? 私はこの答えを見つけるためにSO一生懸命努力してきましたが、できませんでした。 私が望んでいたのは、有効/無効にする機能を追加することでした DL-OFDMA、UL-OFDMA、DL-MU-MIMO、次回 AP に接続するときの UL-MU-MIMO これらを有効にするのはAPによって行われることは承知していますが、 しかし、それがどのような形をとるかは気にしません。例えば、能力を変えるとか、 私はこれを次のように動作させたいのです: DL-OFDMAを有効にすると、APがそれを使用しようとすると動作します。 STA で無効にすると、AP が無効にしようとしても機能しなくなります。 可能であれば、それは完璧です。 しかし、たとえそれが不可能であっても、私はSO感謝します。 本当にあなたの助けが必要です。 よろしくお願いします。 Re: 88Q9098: Is it possible to enable/disable ofdma/mu-mimo in STA mode? サポートありがとうございます Re: 88Q9098: Is it possible to enable/disable ofdma/mu-mimo in STA mode? こんにちは@nhk OFDMA/MU-MIMO 機能は AP 側でのみ設定できます。STA はこれを無効にできませんでした。STA は AP によって指定された通信プロトコルを使用して通信します。 よろしくお願いいたします。 ショーン
查看全文
verify serial download port through USB2 on i.MX95-A1 EVK with DDR tool in i.MX config-tools Tested on i.MX95-19x19 EVK wit MX95 A1 version, since MX95 A1 has both USB1 and USB2 enabled as SDP. MX95 B0 will only enable one USB port as SDP, and SDP on USB1 and USB2 will be in different part-number. Need to test with config-tools version 25.03, since 25.06 and above only support MX95-B0.   Requirement: 1. USB2.0 cable with type-A male to type-A male. 2. rework on MX95 EVK: Remove R288 on base board, to disable VBUS output on USB2.(MX95 USB2 act as USB device in SDP mode, PC is USB host)     Connect USB cable from PC to MX95-EVk USB2 and power up MX95-EVK. On PC/laptop, in Window Device Manager, should be able to see new HID device popped up. change the configuration of config-tools, by default MX95 USB1 PID is set(0x015D), modify it to the PID of MX95 USB2(0x015C): =================================== Maybe customer could change the files for their USB2 ID 1. C:\\nxp\\i.MX_CFG_25.03\\bin\\python3\\spsdk\\data\\devices\\mimx9596\\database.yaml vid: 0x1FC9 pid: 0x015D 2. C:\\nxp\\i.MX_CFG_25.03\\bin\\python3\\memtool\\common\\sdp_interface.py "MIMX95": (0x1FC9, 0x015D) =================================== without modifying PID, you will see the following error when running DDR Tools: Untitled1.png the test procedure shall also work on MX95-B0 with USB2 as SDP. On MX95, need to modify the configuration of the Config-Tools to run DDR test if the SDP is through USB2. MX95 A1(engineering version, not for production) has both USB1 and USB2 enabled as SDP. MX95 B0 will only enable one USB port as SDP, and SDP on USB1 and USB2 will be in different part-number. i.MX Processors
查看全文
aarch64Linuxカーネルメモリ管理 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> aarch64 linuxカーネルメモリマッピングレイアウトと基本的な管理内容についての簡単な紹介。 内容は次のとおりです。 実行後のカーネルの仮想メモリのレイアウトとマッピング i.MX8QM/QXPカーネル予約メモリレイアウト カーネルメモリの割り当て方法と技術(Buddy、cma、IONなど) DMAバッファ管理、SWIOTLB、IOMMU GPU メモリ管理 さまざまなユースケースに合わせてメモリをカスタマイズする方法 安定性とパフォーマンスを向上させるためにCMAの使用を避ける方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> aarch64 linuxカーネルメモリマッピングレイアウトと基本的な管理内容についての簡単な紹介。 内容は次のとおりです。 実行後のカーネルの仮想メモリのレイアウトとマッピング i.MX8QM/QXPカーネル予約メモリレイアウト カーネルメモリの割り当て方法と技術(Buddy、cma、IONなど) DMAバッファ管理、SWIOTLB、IOMMU GPU メモリ管理 さまざまなユースケースに合わせてメモリをカスタマイズする方法 安定性とパフォーマンスを向上させるためにCMAの使用を避ける方法
查看全文
eIQ Toolkit for MCU - 入门实验室 eIQ Toolkit 使用直观的GUI(名为eIQ Portal)和开发工作流工具以及命令行主机工具选项(作为eIQ ML软件开发环境一部分)支持机器学习开发。 开发人员可以创建、优化、调试和导出ML模型,以及导入数据集和模型,快速训练并部署神经网络模型和ML工作负载。 eIQ Portal提供可直接集成到eIQ推理引擎(如TensorFlow Lite和TensorFlow Lite for Microcontrollers)的输出TensorFlow Lite模型。使用名为Model Runner的工具,eIQ Toolkit还可以生成运行时洞察,帮助优化i.MX RT和i.MX设备上的神经网络架构。 这些实验将介绍如何使用eIQ Portal。建议按照以下顺序进行: 数据导入实验室 Model Runner实验室 这些实验室为使用FRDM-MCXN947和i.MX RT1170-EVK而编写,但也可以使用其他支持eIQ的设备。 MCX N i.MX RT1050 i.MX RT1060 i.MX RT1064 i.MX RT1160 i.MX RT1170 i.MX RT1180 i.MX RT500 i.MX RT600 有关eIQ Toolkit中包含的Time Series Studio工具的详细信息,请参阅Time Series Studio实验指南。 为了 i.MX RT
查看全文