Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
SC667512MVAのデータシートを入手する方法 親愛なるNXPサポートチームへ、 公式の SC667512MVAデータシートをどのように入手できるかをお尋ねしたいので書いています。   この書類を入手するために必要な手続きについて教えてください。 よろしくお願いします。 よろしくお願いいたします。 Re: How to obtain datasheet for SC667512MVA こんにちは@シェニエ SC667512MVAはカスタム部品番号です。カスタムデバイスのドキュメントは、その部品が開発された特定のお客様のみが利用可能です。残念ながら、このデバイスに関するドキュメントの共有やアクセスの許可はありません。 よろしくお願いいたします。 ルーカス
記事全体を表示
SPC input to WUU not waking device [Working with MCXN947] I have voltage detect interrupts enabled (resets disabled) in SPC in both low-power and active modes (resets disabled, bandgaps enabled). SPC0->ACTIVE_CFG:  3f101615 SPC0->LP_CFG:      3f221515 SPC0->VD_IO_CFG:   0000000a SPC0->VD_SYS_CFG:  0000000a SPC0->VD_CORE_CFG: 0000000a I've enabled SPC as a wake-up source in the WUU (WUU->ME bit is set). The SPC interrupt works in active mode, but not in power-down mode, i.e. the processor doesn't wake to handle the SPC interrupt. MCXN Re: SPC input to WUU not waking device I think it may be working, but there's a large difference in the response between active and power-down mode.  In active mode, the SPC interrupt will respond more quickly and go off repeatedly, but from power-down mode, it takes much longer to trigger the interrupt and it only triggers once. Re: SPC input to WUU not waking device Hi @robert_hines  The wake-up latency from Power-down mode is expected to be longer than the interrupt response time in Active mode. In Power-down mode, most of the MCU is in a static state. One of the trade-offs of entering a deeper low-power mode is the increased latency when entering and exiting that mode. Regarding the issue where the interrupt only occurs once, I suspect there may be an issue in the application code handling. Could you please refer to the power_mode_switch example included in the SDK and compare the implementation with your code? If the issue still persists, please provide a simple project that can reproduce the problem on the FRDM-MCXN947 board. I will be happy to investigate it further. Thank you. BR Alice Re: SPC input to WUU not waking device The context is: - FreeRTOS port - Going into power-down mode with PM_EnterLowPower( ) using a low-power timer. - IRQHandlers use setFromISR() and portYIELD_FROM_ISR() - a high-priority task is waiting for the event bits set from ISR, xEventGroupWaitBits() - some interrupts are routed through the WUU so that they are available in powerdown mode, including some external pins (seem to work fine) and some internal modules (VBAT, LPTMR, TDET, SPC) that seem to work fine, with the exception of SPC being slow/unresponsive. - The SPC interrupt is disabled in the IRQHandler and re-enabled after being processed in the high-priority task that is waiting for event bits to be set.  This waiting task also calls PM_EnterLowPower() again after processing event bits. The "problem" is that the SPC interrupt doesn't respond like the others.  When it does wake up the processor, it goes back to sleep and doesn't trigger again.  When it goes off in active mode, it does keep firing (PM_EnterLowPower() can't put the processor back into powerdown mode).
記事全体を表示
MCU-Link - Linkserver - Injection of unwanted cyclecounts at performance tests Hello there, First of all: everything written is from a claude agent, because everything I make is done inside an obsidian Repo and it is faster to let the agent write 🙂  I am doing cycle-accurate timing measurements on an FRDM-MCXN947 for my master's thesis, where I compare the scheduling overhead of some real-time operating systems. Every number I report is a difference of two DWT->CYCCNT reads, so the measurement has to be repeatable down to the single cycle. It is not, and after a fairly long investigation I have narrowed the cause down to one mechanism that I cannot confirm from the documentation. I would like to ask whether my explanation is actually correct, because if it is wrong then I have excluded everything else and have no candidate left. The short version of the question: while a debug session is open, LinkServer periodically reads DHCSR and CPACR to find out whether the core has halted. Both of these are SCS registers inside the private peripheral bus, so the access is serviced inside the core and never appears on the code bus or the system bus. My assumption is that such an access nevertheless competes with the core's own instruction fetches and data accesses somewhere inside the core, and that this is what costs my measurement a few cycles every time a poll lands inside the measured window. Is that assumption right? Setup The board is an FRDM-MCXN947 and I am using core0 only, at 150 MHz for the real measurements and at 12 MHz for a control experiment described further down. I debug through the on-board MCU-Link with LinkServer, which speaks CMSIS-DAP v2 over USB bulk, and I have tried SWD wire clocks of both 50 and 500. The launch configuration passes --no-rtos and --semihost-port=-1, and liveWatch is disabled, so the IDE should not be reading anything from the target while the core runs. The code under test executes from RAM at 0x2000_0000, which means it is fetched over the system bus. Caches and RAM ECC are off. There is a second, separate variation in how the image gets into RAM: for most of the work the probe simply loads it there, but for one experiment I stored the image in flash and copy it into RAM during startup, because an image that only exists in RAM cannot start without a probe to load it in the first place. That distinction matters only for that one experiment, and I mention it now so the setup is unambiguous later. The thing being measured is an empty counting loop, executed a given number of times and timed by reading CYCCNT before and after. I repeat each measurement 64 times. Problem Running the identical measurement twice does not give the identical answer. On the empty loop the 64 values spread over three to six cycles, and on real application code roughly nine out of a hundred thousand iterations come out one to ten cycles above all the others. The deviations only ever go upward, never downward, and the minimum value is perfectly stable and reproducible. What was most informative is that the spread grows with the length of the measurement window rather than being a fixed cost per measurement call, which already rules out a constant overhead somewhere in my instrumentation. Here is the full sweep. Each cell is 64 measurements of the empty loop; "outliers" counts how many of the 64 came out above the first one, and min and max are given as cycles above the loop's clean value. Core Loop count SWD 50: outliers min max SWD 500: outliers min max Core F loops outliers per 64 MEasurements min jitter count max jitter count outliers/64mea. min jitter max jitter 12 MHz 100 0 +13 +13 0 +13 +13   1 000 4 +13 +15 7 +13 +16   10 000 24 +13 +16 18 +13 +17   100 000 55 +13 +23 57 +13 +22   1 000 000 56 +40 +69 59 +45 +102 150 MHz 100 0 +13 +13 0 +13 +13   1 000 0 +13 +13 1 +13 +15   10 000 4 +13 +15 3 +13 +15   100 000 13 +13 +15 16 +13 +17   1 000 000 53 +13 +20 60 +13 +25 Three things come out of this table. First, the constant +13 is not part of the problem. It shows up as the minimum in every cell that has not saturated, at both core clocks and at both wire speeds, and it is simply the loop prologue plus the CYCCNT read itself. Because it is independent of both the core clock and the probe, it is a fixed bias that I subtract, and everything above +13 is what I am actually chasing. Second, and this is the important one, the disturbance follows wall-clock time and not the number of cycles executed. If you compare the two clocks at the same loop count, there are consistently more outliers at 12 MHz than at 150 MHz: four against zero and seven against one at a thousand iterations, twenty-four against four and eighteen against three at ten thousand, fifty-five against thirteen and fifty-seven against sixteen at a hundred thousand. The instruction stream is identical in both cases and therefore executes the same number of cycles, and the only thing that differs is that the 12 MHz run takes 12.5 times longer in real time. Third, the SWD wire clock makes no difference at all. Across the ten matched pairs above the counts scatter in both directions and stay within counting noise, so a tenfold change in wire rate leaves them alone. Whatever sets the pace, it is not the wire. Excluded as root cause I want to be upfront that a lot of this was ruled out by actually reading the relevant register back from the target with the session open, rather than by assuming that the reset default still held. On the SoC side, CPU1, eDMA0, eDMA1 and the SmartDMA are all disabled, RAM ECC is off and the code cache is off, so nothing else is contending for memory. On the trace side, ITM is disabled, no stimulus port is enabled, timestamps are off, the stall-for-trace bit is clear and ETM is off, which means nothing is generating trace packets and therefore nothing can be stalling in order to deliver them. Within the DWT, PC sampling is off, exception trace is off, all the event counters are off, the watchpoint comparators are unused, and the performance monitor is off. TRCENA is of course set, but it has to be set in both the disturbed and the undisturbed case because CYCCNT depends on it, so it cannot be the difference between them. Interrupts and exceptions are out on grounds of size alone. Any exception on this core costs somewhere between twenty-five and fifty cycles, and my deviations are one to ten. There is no small version of an exception, so the entire class is excluded regardless of what the interrupt masks say. Breakpoints are out for a similar reason: an FPB comparator costs nothing until it matches, and when it matches it halts the core rather than delaying it slightly. The code under test is out because of a control experiment. An empty loop contains no data-dependent work whatsoever and therefore cannot vary on its own, and it varies anyway. So the cause is in the platform, not in what I am measuring. That left debugger memory reads as by far the most promising explanation, and I would like to explain why I dropped it, because it is the mechanism most people would reasonably suspect. A debug read of SRAM does leave the core and would genuinely fight the core for the bus port, so the mechanism would work perfectly. The trouble is that it does not happen. Every read the IDE performs travels as a GDB m packet, and in the gdbserver log there is not a single packet between the $vCont;c that starts execution and the host interrupt thirty-two seconds later. Every memory read in that log sits after the halt, which is just the IDE filling its views once the core has stopped. The same argument disposes of the even more attractive theory that the debugger is reading CYCCNT itself, which would contend with my measurement directly: that would also appear as an m packet, and it does not, and liveWatch is disabled anyway. What it seems to be To separate the probe from the session I ran the identical binary with the probe physically plugged in but with no debug session open. This is the experiment that needed the flash-to-RAM copy at startup I mentioned earlier, since a RAM-only image has no way to get loaded without a probe. The probe stayed connected for both runs, so the only difference between them was whether a session was attached. Without a debug session the jitter is gone. Same binary, same clock, same boot path. So it is not the probe being connected, and it is not the build: a probe that is merely attached but issuing no transactions costs nothing, and attaching a session brings the jitter back. At that point I had a disturbance that is definitely caused by the session, that is paced by real time rather than by the core clock, and for which I had eliminated every mechanism I could think of. To find out what LinkServer sends while the core is running, I captured the MCU-Link's CMSIS-DAP bulk endpoints with USBPcap and Wireshark. Two DAP_Transfer requests repeat continuously, roughly every fifty milliseconds. I should immediately qualify that number. The polling does not look like a fixed timer, because the host appears to send the next request only after the previous response has come back, which makes the interval at least partly event-driven — host turnaround plus USB latency plus whatever delay the host inserts of its own accord. So fifty milliseconds is an order-of-magnitude figure for how often it repeats, not a period I would want to quote, and it also means I cannot cleanly reason backwards from the rate. The first request reads DHCSR and CPACR together. On the wire it is 05 00 06 08 00 00 00 00 05 f0 ed 00 e0 0f 08 00 00 00 00 05 88 ed 00 e0 0f, which decodes as: # Req Decode Data Target access 1 08 DP write SELECT 0x00000000 none (DP-internal) 2 05 AP write TAR 0xE000EDF0 (DHCSR) none (AP-internal) 3 0f AP read DRW — 1 read, PPB 4 08 DP write SELECT 0x00000000 none (DP-internal) 5 05 AP write TAR 0xE000ED88 (CPACR) none (AP-internal) 6 0f AP read DRW — 1 read, PPB The answers were DHCSR = 0x01100001, meaning the core is running with secure debug enabled and instructions retiring, and CPACR = 0x00F00003, meaning the FPU is fully accessible. The second request is 05 00 03 08 00 00 00 00 05 f0 ed 00 e0 0f, which is just the first half of the above and asks only whether the core has halted, without the FPU check. So the entire traffic reaching the target during my measurement window is two PPB reads, or one in the case of the shorter request. The SELECT and TAR writes produce no target access at all, since they are internal to the DP and the AP respectively, and only the two DRW reads actually go anywhere. I checked the transfer count against the data-word count and confirmed a direct value-to-register mapping with no posted-read shift on this adapter, so I am confident about which value belongs to which address. Both addresses are SCS registers inside the PPB, and neither appears on the SoC bus matrix. There is no SRAM access anywhere in this, and there is no access to the core register file either, since nothing goes through the DCRSR/DCRDR keyhole, which would require the core to be halted first. For completeness: a separate seventy-one-transfer dump of S0 to S31 and FPSCR does appear in the capture, but only at a moment when the core was halted at a stopAtSymbol breakpoint, not during the run. My guess is that CPACR is bundled with DHCSR precisely so that the adapter already knows whether the floating-point registers are live at the instant the core does halt. Assumption to check:  What I currently believe is happening is this. The request enters the core through the D-AHB debug port and is then arbitrated by the core's internal interconnect against the core's own instruction fetches and data accesses. Being resolved inside the core does not put the access on a path that is disjoint from execution; it still meets execution at a shared internal stage. The core holds priority, so in the normal case the debug access waits and the core carries on unaffected. The residual cost appears only when a debug beat is already in flight and cannot be preempted, in which case the core has to wait for that beat to finish. That wait would be exactly what I observe: a few cycles, always upward, and only on the fraction of measurement windows that a poll happens to fall inside. Questions: Is the mechanism I described above actually correct? Does a DAP-originated read of a PPB or SCS register such as DHCSR or CPACR, arriving over the D-AHB debug port, contend with the running core's own accesses inside the M33 in a way that can stall it by a small number of cycles? Or is the debug port genuinely disjoint from the execution path for PPB targets, in which case I have excluded everything and am still missing the real cause? Is this documented anywhere? I have the Cortex-M33 TRM (100230_0100_07_en) and can see the D-AHB and the internal interconnect in it, but I have not found any statement about what a debug access to core-internal PPB space costs while the core is running. A pointer to the right section, or to anything MCXN947-specific about how the DAP is integrated on this part, would help me a great deal. Would CYCCNT even see such a stall? In other words, is the core genuinely held up, so that these are real execution cycles that CYCCNT counts, rather than CYCCNT being perturbed by some other route? Is there any way to slow down or disable the halt-state poll in LinkServer? That would give me the clean confirmation I am after: change the poll rate and see whether the outlier rate follows. I have not been able to find a setting for it, and anything that reduces or stops the periodic DHCSR read while the core runs would work for this test. If the mechanism is real, is measuring with no session attached simply the correct practice for cycle-accurate work on this part? That is what I do now, and where a session is unavoidable I fall back on taking the minimum across many windows and reporting how many deviated and by how much. I would like to know whether that is the accepted answer, or whether there is a supported way to measure cleanly with a live session. Core and Memory Development Board Re: MCU-Link - Linkserver - Injection of unwanted cyclecounts at performance tests Hi @hms-isyu  Thank you for your detailed analysis. I'm sorry, but this question is beyond the typical scope of NXP MCU application support. I can help with MCXN947, MCU-Link, SDK, and device usage questions. However, the behavior you are investigating involves Cortex-M33 debug architecture and cycle-accurate performance analysis, which is outside my area of expertise. For questions related to the injection of additional cycle counts during performance measurements, I would recommend contacting Arm support for further guidance. Thank you for your understanding. BR Alice
記事全体を表示
[i.MX95/AAOS16] Bringup support HW: i.MX95 15x15 SW: AAOS16_1.3.0 We patched about all files. But, still has a kernel boot problem. Need a Richard-kim's support. Re: [i.MX95/AAOS16] Bringup support Hello @Jaeheon-Sim_Mobis, Please find the revised guideline attached. I have also attached all the patched files with the correct directory structure so that you can directly overwrite them in your source tree. Thank you. Re: [i.MX95/AAOS16] Bringup support Will this work for the 15x15 frdm-mx95? Re: [i.MX95/AAOS16] Bringup support No, those patches are for custom board based on i.MX95 15x15 EVK.
記事全体を表示
MCU-Link - 链路服务器 - 性能测试中注入不必要的周期计数 你好呀, 首先:所有代码都是由 Claude 代理编写的,因为我所有的工作都在 Obsidian 仓库中完成,让代理编写代码速度更快。 🙂  我正在对 FRDM-MCXN947 进行周期精确计时测量,作为我的硕士论文的一部分,我在其中比较了一些实时操作系统的调度开销。我报告的每个数字都是两次 DWT->CYCCNT 读数的差值,因此测量结果必须能够重复到单个循环。事实并非如此,经过相当长时间的调查,我已将原因缩小到一种我无法从文档中确认的机制。我想请问一下我的解释是否正确,因为如果我的解释是错误的,那么我已经排除了所有其他可能性,就没有剩下的候选人了。 问题的简短版本是:当调试会话打开时,LinkServer 会定期读取 DHCSR 和 CPACR,以确定核心是否已停止运行。这两个都是私有外设总线内的 SCS 寄存器,因此访问是在内核内部进行的,永远不会出现在代码总线或系统总线上。我的假设是,这种访问仍然会与核心内部的指令获取和数据访问发生竞争,而这正是每次轮询落在测量窗口内时,我的测量都会消耗几个周期的原因。这个假设正确吗? 设置 该板为 FRDM-MCXN947,我只使用了 core0,实际测量频率为 150 MHz,而对照实验(详见下文)频率为 12 MHz。我通过板载 MCU-Link 和 LinkServer 进行调试,它通过 USB 批量传输 CMSIS-DAP v2,我已经尝试了 50 和 500 的 SWD 线时钟。用上市,不用发布配置传递了 --no-rtos 和 --semihost-port=-1,并且 liveWatch 已禁用,因此在核心运行时,IDE 不应该从目标读取任何内容。 被测代码从 RAM 的 0x2000_0000 处执行,这意味着它是通过系统总线获取的。缓存和内存纠错功能已关闭。图像进入 RAM 的方式还有第二种不同的变化:对于大多数工作,探针会直接将其加载到 RAM 中,但在一个实验中,我将图像存储在闪存中,并在启动时将其复制到 RAM 中,因为如果没有探针首先加载它,仅存在于 RAM 中的图像就无法启动。这种区别只对那一次实验有意义,我现在提一下是为了避免以后的设置产生歧义。 被测量的是一个空的计数循环,执行给定的次数,并通过在执行前后读取 CYCCNT 来计时。每项测量重复64次。 问题 两次进行相同的测量并不会得到相同的结果。在空循环中,64 个值分布在三到六个周期内;而在实际应用程序代码中,大约每十万次迭代中就有九次比其他所有迭代多出一到十个周期。偏差只会向上,不会向下,最小值完全稳定且可重复。最有启发性的是,价差会随着测量窗口长度的增加而增长,而不是每次测量调用都有固定成本,这已经排除了我的仪器中存在恒定开销的可能性。 以下是全部内容。每个单元格是空循环的 64 次测量;“异常值”统计了 64 次测量中有多少次高于第一次测量值,最小值和最大值以高于循环干净值的循环次数表示。 核心循环计数 SWD 50:异常值最小值最大值 SWD 500:异常值最小值最大值 核心 F 循环 每 64 次测量中的异常值 最小抖动计数 最大抖动计数 异常值/64mea。 最小抖动 最大抖动 12 MHz 100 0 +13 +13 0 +13 +13   1000 4 +13 +15 7 +13 +16   10000 24 +13 +16 18 +13 +17   100000 55 +13 +23 57 +13 +22   100万 56 +40 +69 59 +45 +102 150 MHz 100 0 +13 +13 0 +13 +13   1000 0 +13 +13 1 +13 +15   10000 4 +13 +15 3 +13 +15   100000 13 +13 +15 16 +13 +17   100万 53 +13 +20 60 +13 +25 从这张表格中可以得出三点结论。首先,常数 +13 不是问题的一部分。在两种核心时钟和两种线速下,它在每个未饱和的单元格中都显示为最小值,它只是循环序言加上 CYCCNT 读取本身。因为它与核心时钟和探针都无关,所以我减去的是一个固定的偏置,而所有高于 +13 的值都是我实际追求的目标。 其次,也是最重要的一点,干扰遵循的是实际时钟时间,而不是执行的周期数。如果比较两个时钟在相同循环次数下的情况,12 MHz 的异常值始终比 150 MHz 的异常值多:在 1000 次迭代时,12 MHz 的异常值比 150 MHz 的异常值多 4 个,150 MHz 的异常值比 0 个;在 10000 次迭代时,12 MHz 的异常值比 150 MHz 的异常值多 7 个,150 MHz 的异常值比 1 个;在 10000 次迭代时,12 MHz 的异常值比 150 MHz 的异常值多 24 ...50 MHz 的异常值多 24 个,150 MHz 的异常值比 150 MHz 的异常值多 24 个,150 MHz两种情况下指令流完全相同,因此执行的周期数也相同,唯一的区别是 12 MHz 的运行时间比 12 MHz 的运行时间长 12.5 倍。 第三,SWD 线时钟没有任何作用。在上述十对匹配数据中,计数结果在两个方向上分散,并且保持在计数噪声范围内,因此即使线路速率变化十倍也不会影响它们。决定节奏的因素并非电线。 排除根本原因 我想坦白地说,很多可能性都是通过在会话打开的情况下实际从目标读取相关寄存器来排除的,而不是假设RESET默认值仍然有效。 在 SoC 端,CPU1、eDMA0、eDMA1 和 SmartDMA 都被禁用,RAM ECC 也已关闭,代码缓存也已关闭,因此没有其他任何东西会争用内存。在跟踪方面,ITM 已禁用,未启用激励端口,时间戳已关闭,跟踪暂停位已清除,ETM 也已关闭,这意味着没有任何东西会生成跟踪数据包,因此也没有任何东西会暂停以传递它们。在 DWT 中,PC 采样已关闭,异常跟踪已关闭,所有事件计数器均已关闭,监视点比较器未使用,性能监测也已关闭。TRCENA 当然是设置好的,但是无论是否受到干扰,都必须设置 TRCENA,因为 CYCCNT 依赖于它,所以它不可能是两者之间的区别。 仅从大小角度来看,中断和异常就被排除在外。任何对这一核心的例外情况都会花费二十五到五十个周期,而我的偏差是一到十个周期。没有小版本的例外情况,因此无论中断掩码如何规定,整个类都会被排除在外。出于类似的原因,断点也被弃用了:FPB 比较器在匹配之前不消耗任何资源,而匹配时会停止核心运行,而不是稍微延迟核心运行。 由于需要进行对照实验,被测代码已移除。空循环不包含任何与数据相关的工作,因此它本身不会发生变化,但它仍然会发生变化。所以问题出在平台上,而不是我所衡量的指标上。 这样看来,调试器内存读取是目前为止最有希望的解释,我想解释一下我为什么放弃了它,因为这是大多数人都会合理怀疑的机制。对 SRAM 的调试读取会离开内核,并且会与内核争夺总线端口,因此该机制可以完美地工作。问题是,这种情况并没有发生。IDE 执行的每次读取操作都会以 GDB m 数据包的形式传输,但在 gdbserver 日志中,从开始执行的 $vCont;c 到 32 秒后的主机中断之间,没有一个数据包。日志中读取的每一次内存都是在程序停止后才出现的,这只是 IDE 在核心停止后填充其视图的过程。同样的论点也驳斥了调试器正在读取 CYCCNT 本身这一更具吸引力的理论,该理论将直接与我的测量结果相冲突:它也会显示为 m 数据包,但事实并非如此,而且 liveWatch 无论如何都被禁用了。 它看起来像是 为了将探针与会话分离,我运行了相同的二进制文件,同时将探针物理连接到电脑上。 但是没有打开调试会话。这项实验需要在启动时进行闪存到内存的复制。 如前所述,由于仅 RAM 映像没有探测就无法加载。探测器仍在运行 两次运行都连接上了,所以它们之间的唯一区别是是否附加了会话。 如果没有调试会话,抖动就会消失。相同的二进制文件、相同的时钟、相同的启动路径。所以这不是…… 探针已连接,但并非版本:探针只是连接上但没有发出任何信号。 交易无需任何费用,但附加会话又会恢复抖动。 那时我受到了干扰,这肯定是由会话引起的,而且会话的节奏是实时的。 而不是通过核心时钟,为此我已经排除了我能想到的所有机制。 为了找出 LinkServer 在核心运行时发送的内容,我使用 USBPcap 和 Wireshark 捕获了 MCU-Link 的 CMSIS-DAP 批量端点。两个 DAP_Transfer 请求持续重复,大约每隔 50 毫秒重复一次。 我应该立即对这个数字进行限定。轮询看起来不像是一个固定的计时器,因为主机似乎只有在收到前一个响应后才会发送下一个请求,这使得间隔至少部分是由事件驱动的——主机周转时间加上 USB 延迟加上主机自行插入的任何延迟。所以 50 毫秒是一个数量级数字,表示它重复的频率,而不是一个我想引用的周期,这也意味着我不能从速率中清晰地反推。 第一个请求同时读取了 DHCSR 和 CPACR。线路上的信息为 05 00 06 08 00 00 00 00 05 f0 ed 00 e0 0f 08 00 00 00 00 05 88 ed 00 e0 0f,解码后为: # 请求解码数据目标访问 1 08 DP 写入 SELECT 0x00000000 无(DP内部) 2 05 AP 写 TAR 0xE000EDF0 (DHCSR) 无(AP内部) 3 0F AP 阅读 DRW — 1次阅读,PPB 4 08 DP 写入 SELECT 0x00000000 无(DP内部) 5 05 AP 写 TAR 0xE000ED88(CPACR) 无(AP内部) 6 0F AP 阅读 DRW — 1次阅读,PPB 答案是 DHCSR = 0x01100001,表示内核正在启用安全调试并执行指令,CPACR = 0x00F00003,表示 FPU 完全可访问。第二个请求是 05 00 03 08 00 00 00 00 05 f0 ed 00 e0 0f,它只是上面请求的前半部分,只询问核心是否已停止运行,而没有进行 FPU 检查。 因此,在我的测量窗口期间到达目标的全部流量为两次 PPB 读取,或者在较短的请求情况下为一次。SELECT 和 TAR 写入操作根本不会产生任何目标访问,因为它们分别是 DP 和 AP 内部的,只有两个 DRW 读取操作才会真正访问目标。我检查了传输计数与数据字计数,确认了该适配器上存在直接的值到寄存器映射,没有读取后移位,因此我确信哪个值属于哪个地址。 这两个地址都是 PPB 内部的 SCS 寄存器,并且都没有出现在 SoC 总线矩阵上。其中没有任何 SRAM 访问,也没有对核心寄存器文件的访问,因为没有任何东西会通过 DCRSR/DCRDR 密钥孔进行访问,这需要先停止核心运行。为了完整起见:捕获中确实出现了 S0 到 S31 和 FPSCR 的单独 71 次传输转储,但仅在核心在 stopAtSymbol 断点处停止时出现,而不是在运行期间出现。我的猜测是,CPACR 与 DHCSR 捆绑在一起,正是为了使适配器在内核停止运行的那一刻就已经知道浮空寄存器是否处于活动状态。 待检验的假设: 我目前认为正在发生的事情是这样的。请求通过 D-AHB 调试进入核心。 端口,然后由核心内部互连仲裁,以对抗核心自身的指令。 获取和数据访问。在核心内部解决并不意味着访问路径一定是这样的 虽然与执行过程脱节,但它仍然在共享的内部阶段与执行过程相遇。核心优先。 因此,在正常情况下,调试访问会等待,而核心程序会继续运行而不受影响。剩余成本 仅当调试节拍已在进行中且无法被抢占时才会出现,在这种情况下,核心 必须等到那个节拍结束。我观察到的正是这种等待:几个周期,总是如此。 向上,并且仅在民意调查恰好落入的测量窗口的一部分上。 问题: 我上面描述的机制是否正确?通过 D-AHB 调试端口到达的 DAP 发起的对 PPB 或 SCS 寄存器(例如 DHCSR 或 CPACR)的读取操作,是否会与 M33 内部正在运行的内核自身的访问操作发生冲突,从而导致 M33 停滞几个周期?或者,调试端口是否真的与 PPB 目标的执行路径不相干?如果是这样,我已经排除了所有可能的原因,但仍然找不到真正的原因。 这方面有任何书面记录吗?我有 Cortex-M33 TRM (100230_0100_07_en),可以看到其中的 D-AHB 和内部互连,但我没有找到任何关于在内核运行时对内核内部 PPB 空间进行调试访问的成本的说明。如果能提供指向正确章节的链接,或者任何关于 MCXN947 中 DAP 如何集成到该部件上的具体信息,将对我有很大的帮助。 CYCCNT 会出现这样的停滞吗?换句话说,核心是否真的被阻塞,以至于这些是 CYCCNT 计算的真实执行周期,而不是 CYCCNT 受到其他途径干扰的周期? 有没有办法减慢或禁用 LinkServer 中的停止状态轮询?这样就能给我想要的明确确认:改变轮询率,看看异常值率是否随之改变。我一直没能找到相关的设置,任何能在核心运行时减少或停止周期性 DHCSR 读取的操作都适用于此测试。 如果该机制是真实存在的,那么对于该零件而言,在不附加任何测量步骤的情况下进行测量是否就是进行周期精确工作的正确做法?这就是我现在所做的,如果无法避免进行会话,我会取多个窗口中的最小值,并报告有多少窗口偏离了最小值以及偏离了多少。我想知道这是否是公认的答案,或者是否有官方支持的方法可以在实时会话中进行干净利落的测量。 核心与内存 开发板 Re: MCU-Link - Linkserver - Injection of unwanted cyclecounts at performance tests 你好@hms-isyu 感谢您详尽的分析。 很抱歉,这个问题超出了恩智浦MCU应用支持的通常范围。我可以解答有关 MCXN947、MCU-Link、SDK 和设备使用方面的问题。但是,您正在调查的行为涉及 Cortex-M33 调试架构和周期精确性能分析,这超出了我的专业领域。 对于有关在性能测量期间注入额外循环计数的问题,我建议联系 Arm 支持部门以获取进一步指导。 感谢您的理解。 BR 爱丽丝
記事全体を表示
How to obtain datasheet for SC667512MVA Dear NXP Support Team, I am writing to ask how I can obtain the official datasheet of SC667512MVA.   Please advise the required procedure to get this document. Thank you. Best regards Re: How to obtain datasheet for SC667512MVA Hi @shenye  SC667512MVA is a custom part number. Documentation for custom devices is only available to the specific customer for whom the part was developed. Unfortunately, we do not have permission to share or provide access to documentation related to this device. Regards, Lukas
記事全体を表示
MCU-Link - Linkserver - 性能テストにおける不要サイクルカウントの注入 こんにちは、 まず最初に、書かれている内容はすべてClaudeエージェントによるものです。なぜなら、私が作成するものはすべてObsidianリポジトリ内で作成され、エージェントに書き込ませる方が速いからです。 🙂  私は修士論文のために、FRDM-MCXN947を用いてサイクル精度のタイミング測定を行っており、いくつかのリアルタイムオペレーティングシステムのスケジューリングオーバーヘッドを比較しています。報告するすべての数値は2つのDWT->CYCCNT読み取り値の差なので、測定は1サイクル単位で繰り返し可能でなければなりません。違いますし、かなり長い調査の末、原因はドキュメントから確認できない一つのメカニズムに絞り込みました。私の説明が本当に正しいかどうか確認したいのですが、もし間違っているとしたら、他の可能性をすべて排除してしまい、候補が一人も残っていないことになります。 質問の要点を簡潔にまとめると、デバッグセッションが開いている間、LinkServerは定期的にDHCSRとCPACRを読み取り、コアが停止したかどうかを確認します。これらはどちらもプライベート周辺バス内のSCSレジスタであり、アクセスはコア内で処理され、コードバスやシステムバスには表示されません。私の仮定では、そのようなアクセスはコア内部の命令フェッチやデータアクセスと競合しており、これが測定ウィンドウ内にポールが届くたびに数サイクルのコストを落とす原因だと思います。その推測は正しいですか? 設定 ボードはFRDM-MCXN947で、コア0のみを使用しています。実際の測定では150MHz、後述する制御実験では12MHzを使用しています。搭載MCU-Linkを使ってLinkServerを使ってデバッグしており、これはUSBでCMSIS-DAP v2を言語し、SWDの50と500のワイヤークロックも試しました。起動設定は--no-rtosと--semihost-port=-1を通過し、liveWatchは無効化されているため、コアが動作している間はIDEがターゲットから何かを読み取ることはありません。 テスト対象のコードは、RAMのアドレス0x2000_0000から実行されます。つまり、システムバス経由でフェッチされるということです。キャッシュとRAM ECCは無効になっています。画像がRAMに入る方法にはもう一つ別のバリエーションがあります。ほとんどの作業ではプローブが単にRAMに読み込みますが、ある実験では画像をフラッシュに保存し、起動時にRAMにコピーしました。なぜなら、RAMにしか存在しないイメージはプローブなしでは起動できないからです。その区別はその実験に限っていて、今ここで言及するのは後で明確に設定できるようにするためです。 計測対象は、指定された回数だけ実行される空のカウントループであり、実行前後にCYCCNTを読み取ることで時間を計測します。私はそれぞれの測定を64回繰り返します。 問題 同じ測定を2回行っても、同じ結果は得られない。空ループでは64の値が3〜6サイクルにわたって分散し、実際のアプリケーションコードでは10万回中約9回が他のすべての反復より1〜10サイクル上に出てきます。偏差は常に上昇する一方であり、下降することは決してなく、最小値は完全に安定しており、再現性も高い。最も参考になったのは、測定間隔の長さに応じて変動するコストが、測定呼び出しごとの固定コストではないという点です。これは、私の計測機器のどこかに一定のオーバーヘッドが存在する可能性をすでに排除しています。 これが全容です。各セルは空のループの64回の測定値です。「外れ値」は、64回のうち最初の値を超えた回数をカウントし、minとmaxはループのクリーン値からのサイクル数として示されます。 コアループ数 SWD 50: 外れ値最小値最大値 SWD 500: 外れ値最小値最大値 コアF ループ 64回の測定あたりの外れ値 最小ジッター数 最大ジッター数 外れ値/64mea。 最小ジッター 最大ジッター 12MHz 100 0 +13 +13 0 +13 +13   1000 4 +13 +15 7 +13 +16   10000 24 +13 +16 18 +13 +17   100000 55 +13 +23 57 +13 +22   1,000,000 56 +40 +69 59 +45 +102 150MHz 100 0 +13 +13 0 +13 +13   1000 0 +13 +13 1 +13 +15   10000 4 +13 +15 3 +13 +15   100000 13 +13 +15 16 +13 +17   1,000,000 53 +13 +20 60 +13 +25 この表からは3つのことが分かります。まず、定数+13は問題の一部ではありません。これは、コアクロックとワイヤ速度の両方において、飽和していないすべてのセルで最小値として現れ、ループのプロローグとCYCCNTの読み取り自体に単純に一致します。これはコアクロックとプローブの両方から独立しているため、私が減算する固定バイアスであり、+13を超える値はすべて私が実際に追い求めているものです。 第二に、そしてこれが重要な点だが、この障害は実行されたサイクル数ではなく、実際の時間経過に比例する。同じループ回数で2つのクロックを比較すると、150 MHzよりも12 MHzの方が一貫して外れ値が多くなります。1000回の反復では4対0、7対1、1万回の反復では24対4、18対3、10万回の反復では55対13、57対16です。命令ストリームは両者とも同一であるため、同じサイクル数を実行し、唯一の違いは12 MHzの実行がリアルタイムで12.5倍長くかかることです。 第三に、SWDワイヤークロックは全く影響しません。上記の10組の一致した対では、カウントは両方向に散乱し、カウントノイズ内にとどまるため、ワイヤーレートが10倍に変化してもカウントは残ります。何がペースを決めるにせよ、それはワイヤーではない。 根本原因から除外 最初に断っておきたいのは、リセット時のデフォルト値がまだ有効であると仮定するのではなく、セッションを開いた状態でターゲットから関連するレジスタを実際に読み戻すことによって、これらの可能性の多くが排除されたということです。 SoC側では、CPU1、eDMA0、eDMA1、SmartDMAはすべて無効化されており、RAMのECCもコードキャッシュもオフなので、他のメモリが競合していません。トレース側では、ITMが無効化され、刺激ポートも有効化されず、タイムスタンプもオフ、ストール・フォー・トレースビットはクリアでETMもオフになります。つまり、トレースパケットが何も生成されていないため、何もストールしていないため、それを配信するものが何も起こらないということです。DWT内では、PCサンプリングがオフで、例外トレースがオフで、すべてのイベントカウンタがオフで、ウォッチポイントコンパレータも使われず、パフォーマンスモニターもオフです。TRCENAはもちろん設定されていますが、CYCCNTが依存しているため、妨害されたCASEと未攪乱のCASEの両方に設定されている必要があります。したがって、それが両者の違いにはなりません。 割り込みと例外は、その規模の大きさという理由だけで除外されます。このコアにおける例外処理は、25~50サイクル程度のコストがかかり、私の場合は1~10の誤差が生じる。例外の小さなバージョンは存在せず、割り込みマスクが何を言おうとクラス全体が除外されます。ブレークポイントも同様の理由で使われていません。FPBコンパレータはマッチするまでコストがかかり、マッチするとコアを停止させるため、わずかに遅延しません。 対照実験の結果、テスト対象のコードは除外されました。空ループにはデータ依存的な仕事が一切含まれないため、それ自体で変化することはなく、いずれにせよ変化します。つまり、原因は私が測定しているものではなくプラットフォームにあります。 左デバッガメモリの読み取り値は、これまでで最も有望な説明であり、私がそれを却下した理由を説明したいと思います。なぜなら、それはほとんどの人が合理的に疑うであろうメカニズムだからです。SRAMのデバッグリードはコアから離れ、バスポートをめぐってコアと戦うため、この仕組みは完璧に機能します。問題は、それが起こらないということだ。IDEが行うすべての読み取りはGDB mパケットとして移動し、gdbserverログには$vCont間に単一のパケットはありません。実行を開始し、ホストが32秒後に割り込みます。そのログで読み取られるすべてのメモリは停止後に残っており、これはコアが停止した後にIDEがビューを埋めるだけです。同じ議論は、デバッガがCYCCNT自体を読み取っているという、さらに魅力的な理論を否定する。この理論は私の測定結果と直接矛盾する。なぜなら、それもmパケットとして現れるはずだが、実際には現れず、いずれにせよliveWatchは無効になっているからだ。 どうやら プローブをセッションから分離するために、プローブを物理的に接続した状態で同一のバイナリを実行しました。 しかし、デバッグセッションは開かれていません。これは、起動時にフラッシュメモリからRAMへのコピーが必要だった実験です。 前述したように、RAMのみのイメージはプローブなしではロードする方法がないためです。探査機はそのまま残った 両方のランでコネクテッドだったので、違いはセッションが接続されているかどうかだけでした。 デバッグセッションを行わないと、ジッターは解消される。同じバイナリ、同じクロック、同じブートパス。SO、 プローブがコネクテッドなのではなく、単に接続されているだけで「いいえ」を発信するプローブではありません トランザクションはコストがかかりませんし、セッションを接続するとジッターが戻ります。 その時点で、セッション自体が確実に引き起こした乱れがあり、リアルタイムでペースが調整されています コアクロックでではなく、私は考えられる限りのあらゆるメカニズムを排除していました。 コアが稼働している間にLinkServerが何を送信しているかを調べるために、USBPcapとWiresharkでMCU-LinkのCMSIS-DAPバルクエンドポイントをキャプチャしました。2つのDAP_Transferリクエストが、約50ミリ秒ごとに継続的に繰り返される。 その数字については、すぐに補足説明をしなければなりません。ポーリングは固定タイマーのようには見えません。なぜなら、ホストは前の応答が返ってきた後に次のリクエストを送るように見えるため、この間隔は少なくとも部分的にイベント駆動型です — ホストのターンアラウンドとUSBレイテンシ、さらにホストが自ら挿入する遅延が加わるのです。つまり50ミリ秒は、繰り返しの頻度を示す桁違いの数字であり、引用したい期間ではありません。また、その速度からきれいに逆算することもできません。 最初の要求では、DHCSRとCPACRが一緒に記載されています。回線上のデータは 05 00 06 08 00 00 00 00 05 f0 ed 00 e0 0f 08 00 00 00 00 05 88 ed 00 e0 0f であり、これをデコードすると次のようになります。 # Req デコードデータ ターゲットアクセス 1 08 DP書き込みSELECT 0x00000000 なし(DP内部) 2 05 AP は TAR を書きます 0xE000EDF0 (DHCSR) なし(AP内部) 3 0F AP通信はDRWを読んだ。 — 1読了、PPB 4 08 DP書き込みSELECT 0x00000000 なし(DP内部) 5 05 AP は TAR を書きます 0xE000ED88 (CPACR) なし(AP内部) 6 0F AP通信はDRWを読んだ。 — 1読了、PPB 回答は、DHCSR = 0x01100001 であり、これはコアがセキュアデバッグを有効にして命令をリタイアしていることを意味します。また、CPACR = 0x00F00003 であり、これはFPUに完全にアクセスできることを意味します。2 番目の要求は 05 00 03 08 00 00 00 00 05 f0 ed 00 e0 0f で、これは上記の前半部分のみで、FPU チェックなしでコアが停止したかどうかのみを尋ねます。 SO、測定ウィンドウ中にターゲットに到達する全トラフィックは2PPB読み取り、短いリクエストの場合は1回です。SELECTとTARの書き込みは、それぞれDPとAP内部にあるため、ターゲットアクセスは一切発生しません。実際にどこかへ行くのは2回のDRW読み取りだけです。転送カウントとデータワードカウントを照合し、このアダプターでposted-readシフトなしの直接的な値-レジスタ対応を確認したので、どの値がどのアドレスに属しているか確信を持っています。 両方のアドレスはPPB内のSCSレジスタであり、どちらもSoCバスマトリックスには表示されません。この中にはSRAMアクセスはなく、コアレジスタファイルにもアクセスできません。なぜなら、DCRSR/DCRDRキーホールを通るものは一切入らないため、コアを先に停止させる必要があるからです。補足として、S0からS31およびFPSCRの71転送分のダンプが別途キャプチャに含まれていますが、これはコアがstopAtSymbolブレークポイントで停止した時点のみであり、実行中ではありません。私の推測では、CPACRはDHCSRとセットされているため、コアが停止した瞬間に浮動小数点レジスタが稼働しているかどうかをアダプターがすでに把握できるようにしているのだと思います。 確認すべき前提条件: 私が現在考えているのは、こういうことです。リクエストはD-AHBデバッグを通じてコアに入ります ポートはコア内部のインターコネクトによって、コア自身の命令に対して仲裁されます フェッチやデータアクセス。コア内で解決されているからといって、アクセスが 実行から分離;それでも実行は共有された内部段階で行われます。コアが優先され、 SO、通常のCASEではデバッグアクセスが待機し、コアは影響を受けずに継続されます。残留費用 デバッグビートがすでに進行中でプリエンプトできない場合にのみ現れ、その場合コアは そのビートが終わるのを待たなければなりません。その待ち時間はまさに私が観察している通りです。数サイクル、いつも 上昇傾向を示し、しかも世論調査がたまたま含まれる測定期間のごく一部に限られる。 質問: 私が上で説明したメカニズムは、実際には正しいのでしょうか?DHCSRやCPACRなどのPPBやSCSレジスタのDAP発端読み取りは、D-AHBデバッグポート経由で到着し、M33内で実行中のコア自身のアクセスと競合し、わずかなサイクルだけストップさせることができるのでしょうか?それとも、デバッグポートはPPBターゲットの実行パスから本当に切り離していて、すべて除外してしまい、本当の原因が見つからないのでしょうか? これはどこかに文書化されていますか?私はCortex-M33 TRM(100230_0100_07_en)を持っていて、D-AHBと内部インターコネクトが見えますが、コアが稼働している間にコア内部PPB空間へのデバッグアクセスにかかる費用については何も見つかりませんでした。適切な箇所、あるいはMCXN947特有のDAPの統合方法に関する情報があれば、大変助かります。 CYCCNTはそもそもそのような停滞を認識できるだろうか?言い換えれば、コアは本当に支えられていて、CYCCNTがカウントする実際の実行サイクルであり、他のルートによって妨害されているのではないかということです。 LinkServerの停止状態ポーリングを遅くしたり、無効にしたりする方法はありますか?そうすれば、私が求めている明確な確認が得られるでしょう。つまり、投票頻度を変更して、外れ値の発生率がそれに追随するかどうかを確認するのです。それに関する設定は見つからず、コアの実行中に定期的なDHCSR読み取りを減らすか停止させるものであれば、このテストには有効です。 もしその仕組みが実在するなら、セッションを接続せずに測定することは、この部品のサイクル精度を正確に測定するための正しい方法なのでしょうか?それが今の私のやり方で、セッションが避けられない場合は、複数のウィンドウにわたって最小値を取得し、どれだけのウィンドウがどれだけずれたかを報告するという方法に頼っています。それが一般的な回答なのか、それともライブセッションで正確に測定するための適切な方法があるのかを知りたいです。 コアとメモリ 開発ボード Re: MCU-Link - Linkserver - Injection of unwanted cyclecounts at performance tests こんにちは、 @hms-isyu さん。 詳細な分析をありがとうございました。 申し訳ありませんが、この質問はNXP MCUアプリケーションのサポートの通常の範囲を超えています。MCXN947、MCU-Link、SDK、デバイス使用に関する質問にはお手伝いできます。しかし、あなたが調査している挙動はCortex-M33のデバッグアーキテクチャとサイクル精度の高いパフォーマンス解析に関わっており、私の専門外です。 パフォーマンス測定時に追加サイクルカウントを注入することに関する質問は、Armサポートにお問い合わせください。 ご理解いただきありがとうございます。 BR アリス
記事全体を表示
如何获取 SC667512MVA 的数据手册 尊敬的恩智浦技术支持团队: 我写信是为了询问如何才能获得SC667512MVA的官方数据手册。   请告知获取此文件所需的步骤。 谢谢! 顺祝商祺! Re: How to obtain datasheet for SC667512MVA 嗨@shenye SC667512MVA 是一个定制零件编号。定制设备的文档仅提供给为之开发该设备的特定客户。很遗憾,我们没有权限分享或提供与此设备相关的文档。 问候, 卢卡斯
記事全体を表示
S32K311 LCU Rise/Fall Filter Deadtime Occasionally Reduced from 2 µs to 1 µs Hi NXP Team, I am using an S32K311 with RTD 5.0. The PWM signals are generated by eMIOS0 and routed directly to the LCU0 outputs: eMIOS0_CH0 -> LCU0_OUT0 eMIOS0_CH1 -> LCU0_OUT1 eMIOS0_CH2 -> LCU0_OUT2 eMIOS0_CH3 -> LCU0_OUT3 eMIOS0_CH4 -> LCU0_OUT4 eMIOS0_CH5 -> LCU0_OUT5   The LCU is configured to insert deadtime using the Rise/Fall Filter.   Configuration MCU: S32K311 RTD Version: 5.0 PWM source: eMIOS0 Deadtime generation: LCU Rise/Fall Filter Rise Filter on Highside Channels = 192 Fall Filter on Lowside Channels = 192 Configured deadtime = 2 µs Observed behavior Most switching events generate the expected 2 µs deadtime. However, occasionally one transition (either the rising edge or the falling edge) has only about 1 µs deadtime instead of 2 µs. This occurs intermittently while the PWM frequency and duty cycle remain unchanged. The attached logic analyzer capture shows this behavior. Questions Is this variation expected when using the LCU Rise/Fall Filter? Are there any synchronization requirements between the eMIOS outputs and the LCU filter? Can the LCU filter occasionally shorten the programmed delay due to internal synchronization or clock-domain crossing? Is there any known limitation or errata related to the Rise/Fall Filter on the S32K311? Any guidance would be appreciated. Thank you. Re: S32K311 LCU Rise/Fall Filter Deadtime Occasionally Reduced from 2 µs to 1 µs Hi@Esakki 1. Your value  192 = 2 µs  implies an LCU filter tick of about: 2us / 192 = 10.4167 ns -> 1/ 10.4167 ns = 96MHz, If the effective LCU/peripheral clock or prescaler changes, or if a different clock is selected than assumed, the real delay changes. 2.Using an oscilloscope for testing is more accurate, and the waveform is related to the external capacitive reactance; a large capacitive reactance can also cause waveform instability.
記事全体を表示
需要协助解决NBP8FD4ST1压力传感器SPI通信问题 您好, 我正在使用NBP8FD4ST1压力传感器和S32K146微控制器。传感器的CS_B/WAKE-UP引脚连接到微控制器的 GPIO 引脚。 逻辑分析仪的信号映射关系如下: D0 → SCLK D1 → CS_B D3 → 就绪 D5 → 中同轴 D7 → MOSI 在通信序列中,当我将CS_B引脚拉低以请求 SPI 通信时, READY引脚如预期般置位。READY 变为高电平后,我发送SPIOPS 寄存器 READ命令 (0x00E1) 。但是,该传感器在 MISO 上始终返回0x0000 。因此,固件验证失败,随后 CS_B 引脚被拉高以终止事务。 请问您能否帮我确认一下我的 SPI 通信序列是否正确,或者我是否遗漏了任何必要的步骤,例如数据手册中描述的唤醒序列、虚拟传输或 SPIOPS 处理? 我还附上了逻辑分析仪的截图供您参考。 感谢您提前给予的支持。 此致, 普拉蒂尤莎。 Pratyusha_0-1783666219816.png 压力传感器 Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor 你好, Pratyusha, 请注意,NXP 的 MEMS 传感器业务(包括 NBP8FD4ST1 等压力传感器)已转让给意法半导体。自 2026 年 2 月 2 日起,这些传感器的技术支持、产品文档和开发活动将由 STM 负责。因此,很遗憾,我们无法再为 NBP8FD4ST1 提供技术支持。 我建议您直接通过STM的支持渠道或社区论坛联系他们,那里的传感器专家可以帮助您解决实施和通信方面的问题。 BRs,托马斯 Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor 从你的图表 D0 → SCLK 来看,读取 SPIOPS 时没有时钟信号? Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor @suncongjohnson谢谢你的回复。我已经将 SPI 外设配置为 16 位传输,因此我期望每次 SPI 事务都会产生 16 个 SCLK 脉冲。但是,当发出 SPIOPS READ命令时,D0 (SCLK) 线上不会产生 SCLK 信号。 const lpspi_master_config_t lpspiCom1_MasterConfig0 = { 每秒比特数= 1000000U, .whichPcs= LPSPI_PCS0, .pcs极性= LPSPI_ACTIVE_LOW, .isPcs连续= true, .bitcount= 16U, .lpspiSrcClk= 8000000U, .clkPhase= LPSPI_CLOCK_PHASE_1ST_EDGE, .clkPolarity= LPSPI_SCK_ACTIVE_HIGH, .lsbFirst= false, .转移类型= LPSPI_USING_INTERRUPTS, .rxDMAChannel= 255, .txDMAChannel= 255, 。打回来= NULL, .callbackParam= NULL, };
記事全体を表示
i.MXRT685S: Boot from external flash via HS SPI bus I have an external SPI NOR flash device wired to the HS SPI bus interface (Flexcomm 14) on a RT685s. I want to boot from this flash device; however, I've read that the only master boot options are a FlexSPI boot, SD boot, and eMMC boot. Is it possible to boot from this external flash using the high-speed SPI bus (Flexcomm 14)? If so, what are the requirements/setup steps I must follow to execute this? Re: i.MXRT685S: Boot from external flash via HS SPI bus Here below is some application notes for reference for NOR boot  AN12751 How to Enable Recovery Boot from QSPI Flash AN12773 How to Enable Master Boot from Serial NOR Flash Re: i.MXRT685S: Boot from external flash via HS SPI bus Hi @lgibarra9, It is not possible to boot from an external SPI NOR Flash using the High-Speed SPI bus from FC14. This bus can be used (besides run-time SPI communication) to download an image when the MCU is in ISP mode. But for normal boot operation from an external flash, the High-Speed SPI bus is not an option, so your SPI NOR flash should instead be connected to the FlexSPI bus. BR, Edwin.
記事全体を表示
Regarding FEE initialization time Hi, NXP expert, I have an issue with the S32K312 feed initialization time and would like to consult about it. The details are as follows: I configured two fee storage clustergroups, one primary and one standby. The standby is a backup of the primary. A total of 19 blocks were configured, and the blocks are stored in both the primary and standby. The software version is Mcal RTD4.0.0 HF02, and Burst mode is enabled. Chenxu1_0-1785460201957.png Test method: Upon power-up, the initialization time is printed (after calling Mem_43_INFLS_Initt(), MemAcc_Initt(), and Fee_Init(), wait for the Fee_GetStatus() interface to return MEMIF_IDLE), and all blocks are written with data once. The test results are as follows: Number of power-ups Initialization time (ms) illustrate 1 8 2 15 3 twenty three 4 40 5 48 6 57 7 65 8 74 9 82 10 90 11 99 12 107 13 115 14 124 15 133 16 141 17 149 18 158 19 166 20 175 twenty one 183 twenty two 192 twenty three 200 twenty four 209 25 217 26 226 27 234 28 8 Cluster paging Based on the above tests, we found that the time for each increment changes very quickly. Therefore, we would like to inquire whether there is a formula for calculating the initial time and whether it can be optimized. Re: 关于FEE初始化时间 Hi @Chenxu1  There is no formula provided by the FEE driver documentation to calculate the initialization time. The initialization time depends on the actual state of the FEE storage, such as the amount of stored data, number of records, and whether any cluster recovery or swap is required. The main configuration parameter that can improve initialization performance is FeeDataBufferSize, as a larger buffer allows more data to be processed per Fls_MainFunction cycle. See please Fee user manual for details. For a realistic estimate, the initialization time should be measured on the target configuration after prolonged FEE usage and multiple write cycles. Regards, Lukas Re: 关于FEE初始化时间 Yes, this has been discussed here several times. For example: https://community.nxp.com/t5/S32K/S32K312-FEE-FLS-INIT-time/m-p/2024041 Regards, Lukas Re: 关于FEE初始化时间 Hi, Currently, writing 16 bytes causes the next initialization to take 2ms longer. At this point, there's no page switching involved—just reinitializing and reading 16 bytes again, which adds 2ms. Is this normal?
記事全体を表示
RW612 - PM4 current is abnormal. Hi Experts. We have recently been using the u-blox W10 module in some of our mass-production products. However, we have observed that the PM4 current consumption varies significantly from module to module, ranging from around 300 µA up to 1 mA. To further investigate, I tested with two FRDM-RW612 development kits, without making any rework or modifications, and programmed both with the Power Manager Test (bare-metal) sample application from the NXP SDK v25.6.0. On DK1, measuring current through JP9, the PM4 current consumption is around 400 µA, which is as expected. On DK2, under the exact same test conditions, the PM4 current consumption is around 1 mA. I repeated this test 120 times, and the results were consistently the same. Interestingly, when I applied hot air to DK2, the PM4 current dropped to ~400 µA (normal value). But after a few minutes of cooling, the current rose back to ~1 mA. Reapplying hot air again would temporarily bring the current back down. Could you please advise how I should analyze this issue? I am using the official development kits and the unmodified sample code, and I can reproduce the problem reliably. Re: RW612 - PM4 current is abnormal. Hi Daniel. The yellow cable on this K.O. board is used to measure the current of VPA with 0 ohms resistance(R218). WeiliWang_0-1758787079290.png Also,i have sent a private message. Could you check it? Re: RW612 - PM4 current is abnormal. Hi, I tested the power manager test with the 25.09 SDK using 2 FRDM-RW612 board. Nevertheless, I got expected results with both of them. DanielRuvalcaba_4-1758773852825.png The measurement is on JP9. Could you please tell me what the cables in your KO FRDM board are for? Regards, Daniel. Re: RW612 - PM4 current is abnormal. Hi Daniel. The K.O. board yellow cable for measuring VPA current. I've removed the R218 for measuring the VPA current WeiliWang_0-1758687668677.png Re: RW612 - PM4 current is abnormal. Hi, Sorry for the delay. I don't currently have a way to measure current consumption, but I should be able to do it tomorrow. Please give me some time to gather the measurements. By the way, could you please tell me what the cables in the KO FRDM are for? Regards, Daniel. Re: RW612 - PM4 current is abnormal. Hi Daniel. Here's another update: We used the uBlox IRIS-W106-30B module. We opened the shielding cover and measured the current leakage in the ublox IRIS-W106-30B module under a specific test condition (K.O. case). We found a current leakage of 657 µA at VPA. Therefore, based on the experimental results, the source of the leakage current in both the FRDM612 and ublox IRIS-W106-30B appears to be the current drawn from the VPA. Re: RW612 - PM4 current is abnormal. Hi Daniel. My FRDM's picture is below: WeiliWang_0-1758328990924.png WeiliWang_1-1758329028621.png WeiliWang_2-1758329081576.png WeiliWang_3-1758329134480.png Re: RW612 - PM4 current is abnormal. Hi, Could you please share a picture of your FRDMs? We are checking this. Please give me some time until I get an update to share. Regards, Daniel. Re: RW612 - PM4 current is abnormal. Hi Daniel. I've identified the 700µA "gap current"; my measurements show that this current is being drawn from the VPA pin. Is this issue something that can be resolved through software updates or patches? We have already purchased 1560 units from U-blox, and our client is about to undergo RF certification in six different countries. I need to know if this problem can be fixed. Is it possible to solve this problem using a patch? WeiliWang_0-1758251280118.png Re: RW612 - PM4 current is abnormal. Hi Daniel. also I have tried tested PM3 mode For the PM3 mode. both the FRDM612 are the same. the PM3 current consumption about 0.96mA However, when entering PM4 mode, the problematic FRDM612 will become 1.19mA, while the normal FRDM is about 0.47mA Re: RW612 - PM4 current is abnormal. Hi Daniel. Sorry, JP9: 474mA should be corrected to 474uA, not mA. Also, I looked at the power tree after JP9, except for JP7 and JP5. If I want to analyze this further, can I only measure R218 and R196 to identify the power consumption sources? Would measuring the power tree of these two paths be helpful to you? I have uploaded the FRDM612 schematic in the attached file. FRDM-RW612-SCH.pdf WeiliWang_0-1758180854622.png Re: RW612 - PM4 current is abnormal. Hi,  Thank you for such detailed information. I just want to be completely sure I understand your setup. I will need to do some testing on my side.  Meanwhile, please confirm if this is a typo: "This means that I have approximately 800mA of leakage". Aren't these 800uA? You also mentioned "On DK1, measuring current through JP9, the PM4 current consumption is around 400 µA, which is as expected.". But you also mentioned "FRDM1(O.K case) JP9:474mA JP5:21uA JP7:444uA.". Is the measure on JP9 474uA instead of 474mA? Regards, Daniel. Re: RW612 - PM4 current is abnormal. Hi Daniel. Your understanding is very correct. I studied AN14464. I used three current meters to measure JP9, JP5, and JP7. The results are as follows: FRDM1(O.K case) JP9:474mA JP5:21uA JP7:444uA. FRDM2(K.O case) JP9:1.26mA JP5:21uA JP7:448uA. In K.O.'s case, I noticed that JP9 consumed 1.26mA, but JP5 and JP7 combined consumed 469uA. This means that I have approximately 800mA of leakage coming from somewhere below the JP9 node. Do you have any suggestions that I can try to troubleshoot? We're using the Ublox W10 and are experiencing this issue. We've done some small-scale production. 413 modules have a current draw between 300 and 500uA. 70 modules have a current draw between 501 and 800uA. 32 modules have a current draw between 801 and 900uA. 15 modules have a current draw between 901 and 1050uA. Re: RW612 - PM4 current is abnormal. Hi, Could you please help me confirm the following? You ran the same test using the same example on two FRDM boards. FRDM 1 shows normal current consumption, even when hot air is applied. FRDM 2 consumes about 1 mA more than FRDM 1 under normal conditions, but when hot air is applied, its current consumption drops to match that of FRDM 1. Is my understanding correct? For reference, I recommend taking a look at AN14464. Regards, Daniel Re: RW612 - PM4 current is abnormal. Was this issue ever resolved? I’m seeing similar behavior on an RW612-based module. In PM3, the total VDD current consumption is 318 µA, while in PM4 it increases to 425 µA. I measured VPA current directly and observed 877 nA in PM3 compared to 330 µA in PM4.
記事全体を表示
料金の初期化時間について NXPのエキスパートの方、こんにちは。S32K312のフィード初期化時間に問題があり、ご相談させていただきたいのですが。詳細は以下のとおりです。 プライマリとスタンバイの2つのデータストレージクラスタグループを設定しました。スタンバイはプライマリのバックアップです。合計19個のブロックが設定され、これらのブロックはプライマリとスタンバイの両方に保存されます。ソフトウェアバージョンはMcal RTD4.0.0 HF02で、バーストモードが有効になっています。 Chenxu1_0-1785460201957.png 試験方法: 電源投入時に初期化時刻が出力され(Mem_43_INFLS_Initt()、MemAcc_Initt()、Fee_Init() を呼び出した後、Fee_GetStatus() インターフェースが MEMIF_IDLE を返すまで待機)、すべてのブロックにデータが一度書き込まれます。 試験結果は以下のとおりです。 パワーアップアイテムの数 初期化時間(ミリ秒) 例示する 1 8 2 15 3 23 4 40 5 48 6 57 7 65 8 74 9 82 10 90 11 99 12 107 13 115 14 124 15 133 16 141 17 149 18 158 19 166 20 175 21 183 22 192 23 200 24 209 25 217 26 226 27 234 28 8 クラスタページング 上記のテスト結果から、各増分にかかる時間が非常に速く変化することが分かりました。そこで、初期時間を計算する式が存在するかどうか、また、その式を最適化できるかどうかをお伺いしたいと思います。 Re: 关于FEE初始化时间 こんにちは@Chenxu1 FEEドライバのドキュメントには初期化時間を計算するための公式は提供されていません。初期化時間は、保存されているデータ量、レコード数、クラスタの復旧やスワップが必要かどうかなど、FEEストレージの実際の状態によって異なります。初期化性能を向上させる主な構成パラメータはFeeDataBufferSizeであり、バッファが大きいほどFls_MainFunctionサイクルあたりより多くのデータを処理できます。詳細は「Please Fee ユーザーマニュアル」をご覧ください。より現実的な見積もりを行うには、初期化時間を、FEEを長時間使用し、複数回の書き込みサイクルを行った後の対象構成で測定する必要があります。 よろしくお願いいたします。 ルーカス Re: 关于FEE初始化时间 こんにちは、 現在、16バイトを書き込むと、次の初期化に2ミリ秒余計に時間がかかります。この時点では、ページ切り替えは発生せず、単に再初期化して16バイトを再度読み込むだけなので、2ミリ秒余計に時間がかかります。これは普通のことですか? Re: 关于FEE初始化时间 はい、この件についてはここで何度か議論されています。例えば: https://community.nxp.com/t5/S32K/S32K312-FEE-FLS-INIT-time/m-p/2024041 よろしくお願いいたします。 ルーカス
記事全体を表示
Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor Hi, I am using the NBP8FD4ST1 pressure sensor with the S32K146 microcontroller. The CS_B/WAKE-UP pin of the sensor is connected to a GPIO pin on the microcontroller. The logic analyzer signal mapping is as follows: D0 → SCLK D1 → CS_B D3 → READY D5 → MISO D7 → MOSI During the communication sequence, when I pull the CS_B pin low to request SPI communication, the READY pin is asserted as expected. After READY goes high, I send the SPIOPS register read command (0x00E1). However, the sensor always returns 0x0000 on MISO. As a result, the firmware validation fails, and the CS_B pin is subsequently driven high to terminate the transaction. Could you please help me understand whether my SPI communication sequence is correct or if I am missing any required step, such as the wake-up sequence, dummy transfer, or SPIOPS handling described in the datasheet? I have also attached the logic analyzer screenshots for reference. Thank you in advance for your support. Best regards, Pratyusha. Pratyusha_0-1783666219816.png Pressure Sensors Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor Hi Pratyusha, Please note that NXP's MEMS Sensors business, including pressure sensors such as the NBP8FD4ST1, has been transferred to STMicroelectronics. Effective February 2, 2026, technical support, product documentation and development activities for these sensors are now handled by STM. As a result, we are unfortunately no longer able to provide technical support for the NBP8FD4ST1. I recommend that you contact STM directly through their support channels or community forum, where the sensor experts can assist you with your implementation and communication troubleshooting. BRs, Tomas Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor from your chart D0 → SCLK, there is no clock signal when you read SPIOPS? Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor @suncongjohnson Thanks for your reply. I have configured the SPI peripheral for 16-bit transfers, so I expect 16 SCLK pulses to be generated for each SPI transaction. However, when issuing the SPIOPS read command, no SCLK signal is generated on the D0 (SCLK) line. const lpspi_master_config_t lpspiCom1_MasterConfig0 = { .bitsPerSec = 1000000U, .whichPcs = LPSPI_PCS0, .pcsPolarity = LPSPI_ACTIVE_LOW, .isPcsContinuous = true, .bitcount = 16U, .lpspiSrcClk = 8000000U, .clkPhase = LPSPI_CLOCK_PHASE_1ST_EDGE, .clkPolarity = LPSPI_SCK_ACTIVE_HIGH, .lsbFirst = false, .transferType = LPSPI_USING_INTERRUPTS, .rxDMAChannel = 255, .txDMAChannel = 255, .callback = NULL, .callbackParam = NULL, };
記事全体を表示
如何将配置文件放入 S32DS 中进行版本、调试……项目 I just started with AUTOSAR and I have S32K144EVB I want to find instructions on how to use Tresos to generate config file and put it in S32DS for debug, build... Can anyone tell exactly where I should start from where? Re: How to put config file to S32DS for build, debug.... project 对于任何使用 S32DS 并试图正确设置版本和调试配置的人来说,这都是一个很有帮助的问题。查阅了一些相关资料(包括普特南法院判决书参考,引用)后,我发现配置步骤更容易遵循。关键似乎在于正确放置配置文件并确保项目设置指向该文件。如果能提供一个清晰的步骤示例,对于初学者来说就更容易理解了。 Re: How to put config file to S32DS for build, debug.... project 所得税的概念涉及对个人、公司、合伙企业和其他实体所赚取的收入进行评估和征税。 Re: How to put config file to S32DS for build, debug.... project 从现有项目文件生成新项目。构造 3. 调试是第五个。最终目的地。9……我们的 IDE 和开发环境 Eclipse 将开始加载。然后……转到“文件”>“新建”>“S32DS 应用程序项目”……导航到版本配置中的 (1) C/C++ 构建、(2) 设置和 (3) 目标处理器。 [[ ## completed ## ] Re: How to put config file to S32DS for build, debug.... project 从现有项目文件创建项目。3. 建筑物。5. 调试。6. 终端。9……它将开始加载我们将用于编写和测试代码的Eclipse环境和IDE。然后,它会……文件>新建>S32DS应用程序项目……在版本设置中,转到(1)C/C++版本,(2)设置,(3)目标处理器
記事全体を表示
How to put config file to S32DS for build, debug.... project I just started with AUTOSAR and I have S32K144EVB I want to find instructions on how to use Tresos to generate config file and put it in S32DS for debug, build... Can anyone tell exactly where I should start from where? Re: How to put config file to S32DS for build, debug.... project This is a helpful question for anyone working with S32DS and trying to get the build and debug setup right. I found the configuration steps easier to follow after checking a few related resources including Putnam Court Judgments for reference. The key seems to be placing the config file correctly and ensuring the project settings point to it. A clear step-by-step example would make this even easier for beginners to follow. Re: How to put config file to S32DS for build, debug.... project The concept of income tax involves the assessment and taxation of income earned by individuals to get help, corporations, partnerships, and other entities. Re: How to put config file to S32DS for build, debug.... project Generation of a new project from an existing project file. Construction 3. Debugging is the fifth. A final destination. 9 ... Our IDE and development environment, Eclipse, will begin to load. This will then... Go to File > New >S32DS Application Project... Navigate to (1) C/C++ Build, (2) Settings, and (3) Target Processor in the build's configuration. Re: How to put config file to S32DS for build, debug.... project Creating a project from existing project file. 3. Building. 5. Debugging. 6. Terminal. 9 ... It will begin to load the eclipse environment and IDE we will be using to write and test code. It will then ... File > New >S32DS Application Project ... In the build settings, go to (1) C/C++ Build, (2) Settings, (3) Target Processor
記事全体を表示
关于FEE初始化时间 Hi,NXP专家,我遇到一个S32K312 FEE初始化的时间想咨询一下,描述如下: 我配置了2个fee存储的clustergroup,一个主区,一个备区,备区是主区的备份,共配置了19个block,block同时存储在主区和备区中。软件版本Mcal RTD4.0.0 HF02,使能了Burst mode。 Chenxu1_0-1785460201957.png 测试方法: 上电时打印初始化时间(调用Mem_43_INFLS_Initt(),MemAcc_Initt(),Fee_Init()后等待Fee_GetStatus()接口返回MEMIF_IDLE),所有block写入一次数据 测试结果如下: 上电次数 初始化时间(ms) 说明 1 8 2 15 3 23 4 40 5 48 6 57 7 65 8 74 9 82 10 90 11 99 12 107 13 115 14 124 15 133 16 141 17 149 18 158 19 166 20 175 21 183 22 192 23 200 24 209 25 217 26 226 27 234 28 8 Cluster换页 根据以上实测发现每次递增的时间变化很快,所以想咨询一下有没有初始胡时间的计算公式、是否可以优化? Re: 关于FEE初始化时间 嗨@Chenxu1 FEE驱动程序文档中没有提供计算初始化时间的公式。初始化时间取决于 FEE 存储的实际状态,例如存储的数据量、记录数,以及是否需要任何集群恢复或交换。能够提高初始化性能的主要配置参数是 FeeDataBufferSize,因为更大的缓冲区允许每个 Fls_MainFunction 周期处理更多的数据。详情请参阅收费用户手册。为了进行实际的估计,应该在长时间使用 FEE 和多次写入周期后,在目标配置上测量初始化时间。 此致, Lukas Re: 关于FEE初始化时间 是的,这个问题之前已经讨论过好几次了。例如: https://community.nxp.com/t5/S32K/S32K312-FEE-FLS-INIT-time/m-p/2024041 此致, Lukas Re: 关于FEE初始化时间 你好, 目前,写入 16 字节会导致下次初始化时间延长 2 毫秒。此时不涉及页面切换——只是重新初始化并再次读取 16 个字节,这会增加 2 毫秒。这正常吗?
記事全体を表示
MX8-DSI-OLED1 Display part No and sequence. Hi Team, We are planning to use MX8-DSI-OLED1 accessory in our custom board as well. Could you please share the display part no and if there is any power sequence to be maintained. Re: MX8-DSI-OLED1 Display part No and sequence. Hi Team, Any updates on this? Re: MX8-DSI-OLED1 Display part No and sequence. Hello, Could you share what kind of information you are looking for? The display for the MX8-DSI-OLED1A (raydium rm67199) is a MIPI-DSI OLED display with touch support. Following are some key features: • 5.49" FHD (1080p@60fps) AMOLED display • 16.7 M (RGB*8bits) display color • Touch screen • 4-lane MIPI-DSI interface for display • I2C interface for touch and control Also, note that for this part there is not much information we can share. Best regards/Saludos, Aldo. Re: MX8-DSI-OLED1 Display part No and sequence. Hi @AldoG I would like to understand if there is any power up sequence to be followed for these rails. VDD_1V8 VEXT_3V3 VDD_5V
記事全体を表示
圧力センサのSPI通信に関する支援NBP8FD4ST1必要 こんにちは、 S32K146マイクロコントローラでNBP8FD4ST1圧力センサーを使っています。センサーの CS_B/WAKE-UP ピンはマイクロコントローラのGPIOピンに接続されています。 ロジックアナライザの信号マッピングは以下のとおりです。 D0 → SCLK D1 → CS_B D3 → 準備完了 D5 → MISO D7 → MOSI 通信シーケンス中に、 CS_BピンをローレベルにプルダウンしてSPI通信を要求すると、 READYピンは期待どおりにアサートされます。READYがハイになった後、 SPIOPSレジスタ読み取りコマンド(0x00E1)を送信します。しかし、MISOではセンサーは常に 0x0000 戻ってしまいます。その結果、ファームウェアの検証が失敗し、CS_Bピンがハイレベルに駆動されてトランザクションが終了します。 私のSPI通信シーケンスが正しいのか、それともデータシートに記載されているウェイクアップシーケンス、ダミー転送、SPIOPS処理など、必要なステップを見落としているのか教えていただけますか? 参考までに、ロジックアナライザのスクリーンショットも添付しました。 サポートにあらかじめ感謝いたします。 よろしくお願いします、 プラチューシャ。 Pratyusha_0-1783666219816.png 圧力センサ Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor こんにちは、プラティウシャさん。 なお、NXPのMEMSセンサ事業、NBP8FD4ST1などの圧力センサはSTMicroelectronicsに移管されました。2026年2月2日付で、これらのセンサの技術サポート、製品ドキュメント、開発活動はSTMが担当しています。その結果、残念ながらNBP8FD4ST1の技術サポートは提供できません。 サポートチャネルやコミュニティフォーラムを通じて直接STMに連絡することをお勧めします。センサの専門家が実装やコミュニケーションのトラブルシューティングをサポートいたします。 BRs、トーマス Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor あなたのチャートのD0→SCLKから、SPIOPSを読み取る際にクロック信号がないということでしょうか? Re: Assistance Required with SPI Communication on NBP8FD4ST1 Pressure Sensor @suncongjohnsonご返信ありがとうございます。SPIペリフェラルは16ビット転送に設定しているので、SPIトランザクションごとに16回のSCLKパルスが生成されると予想しています。しかし、SPIOPSの読み取りコマンドを発行しても、D0(SCLK)ラインにはSCLK信号が生成されません。 const lpspi_master_config_t lpspiCom1_MasterConfig0 = { .bitsPerSec= 1000000U、 .whichPcs= LPSPI_PCS0、 .pcs極性= LPSPI_ACTIVE_LOW、 .isPcsContinuous= 真、 .bitcount= 16U、 .lpspiSrcClk= 8000000U、 .clkPhase= LPSPI_CLOCK_PHASE_1ST_EDGE、 .clkPolarity= LPSPI_SCK_ACTIVE_HIGH、 .lsbFirst= 偽、 .transferType= LPSPI_USING_INTERRUPTS、 .rxDMAChannel= 255、 .txDMAChannel= 255、 。折り返し電話= NULL、 .callbackParam= NULL、 };
記事全体を表示