Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
FRDM-S32K344 マニュアルエラー こんにちは、 FRDM-A-S32K344開発ボードマニュアル(UM12406)の11ページに誤りがあります。このコメントは、コミュニティの皆さんと、私と同じ問題に遭遇した方々のために投稿します。 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外し、代わりにR42に部品を取り付けなければなりません。 正しくは: 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外す必要があります。そして代わりにR42にデータを入力する必要がある。」 または: 具体的には、FS26をデバッグモードに保つために、抵抗器R43はデフォルトで取り付けられています。通常モードを有効にするには、R43を取り外す必要があります。OTPエミュレーションモードに入るには、R42にデータを入力する必要があります。 Re: FRDM-S32K344 manual error ハイ ご報告ありがとうございます! R43を取り外し、R42を取り付けると、 FS26_VDEBUGの電圧はFS26データシートのVOTP (OTPエミュレーションモード)の範囲内になります。したがって、私はあなたの見解に賛成しますし、2番目の主張の方がより包括的だと思います。 この問題を報告するために著者に連絡させてください。 よろしくお願いいたします ロビン
View full article
S32K388 JumpAppは、コア0がアクティブな場合にのみ動作します。 ブートローダープログラムを作成し、アドレス0x400000から0x420000に配置しました。シリアルポート経由でプログラムをアップデートすると、コア0だけが動作し続ける。他のコアも動かすにはどうすればいいですか? S32_SCB->VTOR = 0x00422000; __asm volatile(         「msr msp、 % 0」 : : "r" (appStack) : "メモリ" ); ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. こんにちは@zhangyu5454さん スタートアップコードでコアを有効にすることができます。デフォルトのS32DSプロジェクトの起動コード(startup_cm7.s)を参照してください。 例えば、CM7_2_ENABLE == 1 の場合、起動コードはシステム起動時に CM7_2 を有効にします。 コアは、CM7_0アプリケーションから後から有効化することも可能で、関連するレジスタを直接設定するか、MCU MCALドライバやPower_Ipドライバを使用することで可能です。この例を参照してください。 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889 BR、ダニエル Re: S32K388 JumpApp Only runs with core 0 active. ご回答ありがとうございます。Power_Ip を使ってみましたが、プログラムに「Power_Ip_Init(&Power_Ip_HwIPsConfigPB);」という行が現れると、デバッグプロセスが自動的に終了してしまいます。さらに、リセットボタンを押さなくてもリセットランプが点灯したままになり、結果としてデバイスが全く動作しなくなります。IP_MC_MEを使用すると、プログラムは正常に実行されますが、結果が何も生成されません。他のコンポーネントも起動しない。このコードスニペットはモデル388ではうまく動作していないようです。 Re: S32K388 JumpApp Only runs with core 0 active. こんにちは@zhangyu5454さん MCUがシステムリセットを経た場合、リセットのソースを読み取る必要があります。 電話してみていいよ Power_Ip_GetResetReason(); main() の開始時、 Power_Ip_Init(); おそらく根本原因はV15スイッチドモード電源であり、ハードウェアデザインと一致している必要があります。 danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png BR、ダニエル Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 あなたのアドバイスに従って、int main(void) セクションに実装します。Power_Ip_GetResetReason() が呼び出されました。しかし、検査結果は変わっていない。   int main(void) { Power_Ip_GetResetReason(); Power_Ip_Init(&Power_Ip_HwIPsConfigPB);     Clock_Ip_Init(&Mcu_aClockConfigPB[0]); Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); (1) ヤージュ Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは@zhangyu5454さん では、リセットの理由は何ですか? 推測するなら、POR/LVRだろう。 V15は基板上でどのように電源供給されていますか? Power_IPを適切に設定していますか? よろしくお願いいたします。 ダニエル よろしくお願いします。 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは、 @zhangyu5454 さん、 PCB上でSMPSを使用していると理解していますので、設定ツールで有効にする必要があります: danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png SXOSCについては、無効になっていることを確認してください。 danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 ご返信ありがとうございます。私はこれらの機能についてあまり詳しくありません。関連するサンプルファイルやチュートリアルファイルはありますか?S32K358のサンプルコードを参考にしようとしましたが、うまくいきませんでした。V15電源については、外部の3.3Vからトランジスタを介してマイクロコントローラで制御され1.5Vが生成され、1.1Vもマイクロコントローラ制御で生成されることがわかりました。また、私のハードウェア設計に32.768のクリスタルオシレーターがなく、プログラムがループ内でClock_Ip_ExtOsc.cで止まってしまうことにも気づきました Do { SxoscStatus = ((Clock_Ip_apxXosc[インスタンス]-統計>STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } 一方で(((0U == SxoscStatus) && (FALSE = TimeoutOccurredd)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png こんにちは、あなたの方法に従ってV15を有効にしてSXOSCを無効にしました。しかし、デバッグが `Power_Ip_PMC_PowerInit` 内の `IP_PMC->SMPSCONFIG = ConfigValue;` という行に到達すると(この行は `Power_Ip_Init` 内にあります)、デバッグセッションは自動的に終了し、ボードのリセットインジケータ LED は薄暗い一定の光で点灯したままになります。 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは、 @zhangyu5454 さん、 これら2つの書き込みにおけるConfigValueの値は何ですか? IP_PMC->CONFIG = ConfigValue; IP_PMC->SMPSCONFIG = ConfigValue; MCUは誤った電源モード設定のためにリセットされています。 次のループをmain()の最初に配置し、リセット後にデバッグできるようにします。 volatile uint32_t loop = 1; while (loop) { } ループ変数はデバッガから変更することで実行を継続できます。 ループ内でコードが停止したら、以下を呼び出します。 Power_Ip_GetResetReason() MCU_POWER_ON_RESETを返すはずです。 また、リセットイベントについての詳細を得るには、低電圧状態制御(LVSC)レジスタもご覧ください。 よろしくお願いいたします。 ダニエル Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 こんにちは@zhangyu5454さん 共有してくれた設定値では、EVBでこの問題を再現できません。 XS32K388EVB-Q289を使用していますか?もしそうなら、ジャンパーJ118の位置を教えていただけますか? danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png カスタム基板を使用している場合は、回路図を共有してください。ここで共有したくない場合は、サポートチケットを作成し、そこに回路図を添付してください。 ありがとうございました。 BR、ダニエル Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @こんにちは@zhangyu5454 、 それを説明するのは難しい。 Power_Ipの初期化時にオシロスコープでV15とV11の電圧を測定できますか?
View full article
LPC5411X READ I am currently using SWD to debug the LPC54113 chip. I have halted the core and then set some debug registers starting with 0xE000. I found that when I read the internal flash of the chip, the address 0x0~0x200 always had incorrect data, resembling an interrupt vector table rather than the actual program stored in the FLASH. By reading from other addresses, the correct data can be obtained, all of which are 0xFFFFFFFF. The chip did not program any data. Through using JLINK for reading, the address 0x0~0x200 are 0xFFFFFFFF. However, JLINK uses FLM to write to RAM for reading, I cannot know how it processes the reading of the 0x0 to 0x200 address range. The steps I followed were: write abort, 0x1E write select, 0x0 write tar, 0x0 write csw, 0x23000012 and then read drw until the internal flash end address. vector.png  LPC541XX  LPC54xxx Re: LPC5411X READ I want to read the physical flash contents in 0x0, What should I do? I need to change AP bank or other operations? Re: LPC5411X READ Hello, You may be reading the Cortex-M memory alias rather than the physical flash contents. On the LPC54113, address 0x00000000 is mapped to the currently active memory (flash, boot ROM, or RAM) depending on the boot configuration and remap settings. If the device is blank, the boot ROM can present a valid vector table at 0x0, which explains why you see interrupt vectors instead of 0xFFFFFFFF.     Re: LPC5411X READ Hi, When reading memory through the SWD AHB-AP with TAR = 0x0 , the returned data reflects the current system memory mapping visible to the CPU. For LPC5411x devices, the first 512 bytes at address 0x00000000 are remapped to the Boot ROM, so the data observed in this region is a valid interrupt vector table rather than the actual contents stored in Flash.   If it is necessary to read the original contents of the physical Flash region from 0x00000000 to 0x000001FF, do not rely on a simple linear read using TAR = 0x0 and consecutive DRW accesses. Instead, a Flash algorithm or IAP-based method that can access the raw Flash array contents should be used, like you use Jlink to read.     BR Alice Re: LPC5411X READ The LPC5411X did not have the IAP sample for read physical flash. noread.png  
View full article
使用 ADC 触发唤醒 S32K312 MCU RTD3.0.0 S32DS3.5 您好, 我正在使用 S32k312 控制器 mini EVBKIT 来检查 MCU 的睡眠和唤醒功能。我正在尝试通过在 ADC 中施加低阈值和高阈值电压值,利用 ADC 中断唤醒 MCU。此功能能否使MCU唤醒? LavanyaPilli_1-1784889112438.png Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 你好@LavanyaPilli , 当然。如果您使用 PTA1 (ADC0_S9) 作为外部中断唤醒,您可以参考 S32K312_IOMUX.xlsx 文件查找分配的 WKPU 通道: Julin_AragnM_0-1785173159422.png PTA1 是 WKPU[5],但是由于有 4 个内部唤醒源,您还必须添加 +4 作为偏移量。这使得 PTA1 WKPU_CH_9。 Julin_AragnM_1-1785173923562.png 您必须初始化 WKPU 单元,并配置相应的通道: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); 您可以参考以下低功耗示例: S32K3 低功耗管理 AN 和演示 示例 S32K312 在待机状态下通过 CAN-0-RX 和 GPIO 开关 DS3.5 唤醒 RTD300 [RTD600 IP] S32K312EVB-Q172 待机 RAM GPIO 唤醒 此致, 朱利安 Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 您好, 谢谢你的解释。 我将按照您的建议,评估使用 LPCMP 进行待机唤醒。但是,对于我们的应用需求,我们仍然需要实现ADC中断唤醒功能。 请问您能否协助我验证 MEX 文件,看看 ADC 是否可以专门配置为外部中断唤醒? Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 你好@Julián_AragónM , 谢谢你的参考,引用,这很有帮助。我们目前采用的是基于 CAN 总线的唤醒配置。我们将在稍后阶段评估基于ADC的唤醒设置。
View full article
imx8mp pcie内部时钟phy poweron failed --> -110 imx8mp + nxp linux6.1.55 内核在调试wifi时pcie出现以下问题,测试内部时钟,无波形,reset-gpio是高电平 ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y ) root@imx8mpevk:~# dmesg|grep pcie [ 2.241914] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [ 2.249233] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [ 2.257455] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [ 2.322972] phy phy-32f00000.pcie-phy.4: phy poweron failed --> -110 [ 2.322980] imx6q-pcie 33800000.pcie: waiting for PHY ready timeout! [ 2.323033] imx6q-pcie: probe of 33800000.pcie failed with error -110 设备树: &pcie_phy {     //clocks = <&hsio_blk_ctrl>;     clocks = <&clk IMX8MP_CLK_HSIO_AXI>;     clock-names = "ref";     fsl,clkreq-unsupported;     fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;     status = "okay"; }; &pcie {     pinctrl-names = "default";     pinctrl-0 = <&pinctrl_pcie0>;     reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>;     reset-gpio-active-high;     clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,          <&clk IMX8MP_CLK_PCIE_ROOT>,          <&clk IMX8MP_CLK_HSIO_AXI>;     clock-names = "pcie", "pcie_aux", "pcie_bus";     assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>;     assigned-clock-rates = <10000000>;     assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>;     // vpcie-supply = <&reg_pcie0>;     status = "okay";     // wifi_wake_host {     //  compatible = "nxp,wifi-wake-host";     //  interrupt-parent = <&gpio5>;     //  interrupts = <21 IRQ_TYPE_LEVEL_LOW>;     //  interrupt-names = "host-wake";     // }; }; 如果选用     clocks = <&hsio_blk_ctrl>;而不是clocks = <&clk IMX8MP_CLK_HSIO_AXI>; 则报错,并超时 root@imx8mpevk:~# dmesg|grep pcie [    4.081133] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [    4.088341] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [   13.028064] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [   13.035248] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [   13.049053] platform 33800000.pcie: deferred probe pending [   13.060015] platform 32f00000.pcie-phy: deferred probe pending    下面是我的原理图 gaotao_0-1784881982173.png 是哪个环节出了问题?求教!感谢!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 你好@gaotao 希望你一切都好。 从你的 DTS 来看,reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>和reset-gpio-active-high同时存在是矛盾的。 移除reset-gpio-active-high ,在 GPIO 规范中仅保留GPIO_ACTIVE_LOW ,或者如果您的硬件有反相器,则更改为GPIO_ACTIVE_HIGH 。 另外,请尝试应用以下补丁: https://www.spinics.net/lists/devicetree/msg558950.html https://www.spinics.net/lists/devicetree/msg558947.html https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html 这些补丁修改了 imx8mp-blk-ctrl.c 文件。驱动程序用于暴露合适的PLL时钟并对其进行配置。 顺祝商祺! 萨拉斯。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 十分感谢你的提醒,我会告知硬件部门的同事了解这个问题,若有后续进展我会再次联系并感谢 Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas ,非常感谢你的回复 1、reset-gpio-active-high;我也意识到了,已经删除了,感谢提醒 2、所以我应该使用 clocks = <&hsio_blk_ctrl>;再加那四个驱动补丁,而不是使用 clocks = <&clk IMX8MP_CLK_HSIO_AXI>;吧? 3、早些时候我也看到了社区别人回复说用那四个补丁,很可惜我们这边区域好像访问不到那个网站,我再想想办法,如果方便的话希望能直接贴出补丁,万分感谢! Re: imx8mp pcie内部时钟phy poweron failed --> -110 现在好像是不一样的问题了,报了Phy link never came up,是pcie自身还有问题,还是外设有问题? root@imx8mpevk:~/rtw# dmesg|grep pcie [ 2.264927] imx8-pcie-phy 32f00000.pcie-phy: wifi PCIe ref clk: 100000000 Hz [ 2.274508] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [ 2.281827] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [ 2.290063] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [ 2.336901] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 16G [ 3.410666] imx6q-pcie 33800000.pcie: Phy link never came up1 [ 4.481178] imx6q-pcie 33800000.pcie: Phy link never came up1 [ 4.487067] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 [ 4.570576] pcieport 0000:00:00.0: PME: Signaling with IRQ 223 我的外设是wifi芯片 8822ce,手动或者自动加载都不会有输出信息 root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0 Class 0604: 16c3:abcd 这次大概是啥问题呢?启动稳定之后我确实没测到参考时钟的波形(我的硬件决定我得拆了网卡才能测波形),没测到但是pcie输出确实改变了,至少 readl_poll_timeout通过了,reset我应该能保证是在高电平了
View full article
S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hi, I am using S32k312 controller mini EVBKIT, for checking the functionality of MCU sleep and wakeup. I am trying to make MCU-Wake up through ADC interrupt by giving low threshold and high threshold voltage value in ADC. Do this functionality work to make MCU wakeup. LavanyaPilli_1-1784889112438.png Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @LavanyaPilli Since ADC module is not available in Standby, you cannot use it to wakeup (unless the ADC pin is used as interrupt wakeup). However, LPCMP is available in Standby, and can be used instead: Julin_AragnM_2-1784927254532.png LPCMP reads the analog input pin voltage against a programmable DAC reference and generates a wakeup once the threshold is crossed. You can refer to the following examples: S32K312 : MCU wakeup using LPCMP trigger RTD3.0.0 S32DS3.5 [RTD600 IP] S32K3X4EVB-T172 LPCMP Wake-up S32K3 Low Power Management AN and demos Best regards, Julián Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hi, Thank you for the clarification. I will evaluate using the LPCMP for the Standby wakeup as you suggested. However, for our application requirements, we still need to implement the ADC interrupt wakeup functionality. Could you please assist me in verifying MEX file, if the ADC can be configured specifically as an external interrupt wakeup. Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @LavanyaPilli, Sure. If you are using PTA1 (ADC0_S9) as external interrupt wakeup, you can refer to the S32K312_IOMUX.xlsx file to find the assigned WKPU channel: Julin_AragnM_0-1785173159422.png PTA1 is WKPU[5], however, you must also add +4 as offset because of the 4 internal wake up sources. This makes PTA1 WKPU_CH_9. Julin_AragnM_1-1785173923562.png You must initialize the WKPU unit, and configure the respective channel: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); You can use the following low power examples as reference: S32K3 Low Power Management AN and demos Example S32K312 STANDBY wake up using CAN-0-RX and GPIO Switch DS3.5 RTD300 [RTD600 IP] S32K312EVB-Q172 Standby RAM GPIO Wake-up Best regards, Julián Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 Hello @Julián_AragónM , Thank you for the reference; it is very helpful. We are currently utilizing the CAN-based wakeup configuration. We will evaluate the ADC-based wakeup setup at a later stage.
View full article
IMX8MP PCIe内部クロックPHYの電源投入に失敗しました --> -110 imx8mp + nxp linux6.1.55カーネルで Wi-Fi をデバッグしているときに、PCIe で次の問題が発生しました: 内部クロックをテストしても波形が表示されず、reset-GPIO がハイレベルでした ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y )。) root@imx8mpevk:~# dmesg|grep pcie [2.241914] imx6q-pcie 33800000.pcie:ホストブリッジ /soc@0/pcie@33800000 範囲: [2.249233] imx6q-pcie 33800000.pcie:IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.257455] imx6q-pcie 33800000.pcie:MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.322972] phy phy-32f00000.pcie-phy.4:PHY電源投入失敗 --> -110 [2.322980] imx6q-pcie 33800000.pcie:PHY準備完了タイムアウトを待っています! [ 2.323033] imx6q-pcie: 33800000.pcie のプローブがエラー -110 で失敗しました デバイスツリー: &pcie_phy {     //clocks = <&hsio_blk_ctrl>; クロック = < &clk IMX8MP_CLK_HSIO_AXI >; 時計名 = "ref" ; fsl、clkreqはサポートされていません。 fsl、refclk-pad-mode = < IMX8_PCIE_REFCLK_PAD_OUTPUT >; ステータス = "正常" ; }; &pcie { pinctrl-names = "default" ; pinctrl-0 = < &pinctrl_pcie0 >; reset-gpio = < &gpio3 25 GPIO_ACTIVE_LOW >; GPIOアクティブハイをリセットします。 クロック = < &clk IMX8MP_CLK_HSIO_ROOT >, < &clk IMX8MP_CLK_PCIE_ROOT >、 < &clk IMX8MP_CLK_HSIO_AXI >; クロック名 = "pcie" , "pcie_aux" , "pcie_bus" ; 割り当てられたクロック = < &clk IMX8MP_CLK_PCIE_AUX >; 割り当てられたクロックレート = < 10000000 >; 割り当てられたクロックの親要素 = < &clk IMX8MP_SYS_PLL2_50M >;     // vpcie-supply = <&reg_pcie0>; ステータス = "正常" ;     // wifi_wake_host {     // compatible = "nxp,wifi-wake-host";     // interrupt-parent = <&gpio5>;     // 割り込み = <21 IRQ_TYPE_LEVEL_LOW>;     // interrupt-names = "host-wake";     // }; }; 選択された場合     clocks = <&hsio_blk_ctrl>; の代わりに clocks = <&clk IMX8MP_CLK_HSIO_AXI>; を使用します。 するとエラーが発生し、タイムアウトが発生します。 root@imx8mpevk:~# dmesg|grep pcie [4.081133]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました [4.088341]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました: -517 [13.028064]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました [13.035248]imx8-pcie-phy 32f00000.pcie-phy:IMX PCIe PHYクロックの取得に失敗しました: -517 [13.049053]プラットフォーム 33800000.pcie:調査延期保留中 [13.060015]プラットフォーム 32f00000.pcie-phy:調査延期保留中    以下に私の回路図を示します。 gaotao_0-1784881982173.png 何が問題だったのでしょうか?助けてください!ありがとうございます!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 こんにちは、 @gaotaoさん お元気でお過ごしのことと思います。 DTSのreset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW>とreset-gpio-active-highは矛盾しています。 GPIO 指定子からreset-gpio-active-highを削除し、 GPIO_ACTIVE_LOWのみを残すか、ハードウェアにインバータがある場合はGPIO_ACTIVE_HIGHに変更してください。 また、以下のパッチを適用してみてください。 https://www.spinics.net/lists/devicetree/msg558950.html https://www.spinics.net/lists/devicetree/msg558947.html https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html これらはimx8mp-blk-ctrl.cをパッチします。ドライバーが適切なPLLクロックを公開し設定します。 よろしくお願いいたします。 サラス。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 ご指摘いただき、誠にありがとうございます。ハードウェア部門の同僚にこの件について調査を依頼いたします。進展がありましたら、改めてご連絡させていただきます。重ねてお礼申し上げます。 Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas さん、ご返信ありがとうございます。 1. `reset-gpio-active-high;` という記述があることに気づき、既に削除しました。ご指摘ありがとうございました。 2. したがって、私は clocks = < &hsio_blk_ctrl >; と設定し、代わりに以下の4つのドライバパッチを追加します。 clocks = <&clk IMX8MP_CLK_HSIO_AXI>; ですよね? 3. コミュニティの別の方が先ほど、その4つのパッチを使用したと返信しているのを見ましたが、残念ながら私たちの地域ではそのウェブサイトにアクセスできないようです。何か方法を考えます。もし可能であれば、パッチを直接投稿していただけると助かります。どうもありがとうございます! Re: imx8mp pcie内部时钟phy poweron failed --> -110 どうやら問題は以前とは違うようです。「Phylinkが起動しなかった」と表示されます。PCIe自体に問題があるのでしょうか、それとも周辺機器に問題があるのでしょうか? root@imx8mpevk:~/rtw# dmesg|grep pcie [2.264927] imx8-pcie-phy 32f00000.pcie-phy:WiFi PCIe リファレンスクロック: 100000000 Hz [2.274508] imx6q-pcie 33800000.pcie:ホストブリッジ /soc@0/pcie@33800000 範囲: [2.281827] imx6q-pcie 33800000.pcie:IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.290063] imx6q-pcie 33800000.pcie:MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.336901] imx6q-pcie 33800000.pcie:iATU: アンロール T、4 ob、4 ib、アライン 64K、制限 16G [3.410666] imx6q-pcie 33800000.pcie:Phyリンクは一度も話題にならなかった1 [4.481178] imx6q-pcie 33800000.pcie:Phyリンクは一度も話題にならなかった1 [4.487067] imx6q-pcie 33800000.pcie:PCIホストブリッジからバス0000:00へ [4.570576] pcieポート0000:00:00.0:PME: IRQ 223によるシグナリング 私の周辺機器は8822ce Wi-Fiチップを使用していますが、手動でロードしても自動でロードしても、何も情報が出力されません。 root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0クラス0604: 16c3:abcd 今回は何が問題なのでしょうか?起動が安定した後、基準クロック波形を測定できませんでした(私のハードウェアでは波形を測定するためにネットワークカードを取り外す必要がありました)が、少なくともPCIe出力は変化しました... readl_poll_timeoutが成功したので、リセットがハイレベルであることを保証できるはずです。
View full article
LPC5411X 读取 我目前正在使用SWD调试LPC54113芯片。我已经停止了核心程序的运行,然后设置了一些调试寄存器,从 0xE000 开始。 我发现,当我读取芯片的内部闪存时,地址 0x0~0x200 始终包含错误数据,更像是中断向量表,而不是存储在闪存中的实际程序。通过读取其他地址,可以获取正确的数据,所有数据均为 0xFFFFFFFF。 芯片没有写入任何数据。通过使用 JLINK 进行读取,地址 0x0~0x200 为 0xFFFFFFFF。但是,JLINK 使用 FLM 向 RAM 写入数据进行读取,我不知道它是如何处理 0x0 到 0x200 地址范围的读取的。 我采取的步骤如下: 写入中止,0x1E 写入选择,0x0 写入 tar,0x0 写入 csw,0x23000012 然后读取 drw 文件,直到内部闪存结束地址为止。 vector.png LPC541XX LPC54xxx Re: LPC5411X READ 你好, 您可能正在读取 Cortex-M 内存别名,而不是物理闪存内容。在 LPC54113 上,地址 0x00000000 根据启动配置和重映射设置,映射到当前活动的内存(闪存、启动 ROM 或 RAM)。如果设备为空,启动 ROM 可以在 0x0 处呈现一个有效的向量表,这就解释了为什么你会看到中断向量而不是 0xFFFFFFFF。 Re: LPC5411X READ 我想读取地址 0x0 处的物理闪存内容,应该怎么做? 我需要更改AP银行或其他操作吗? Re: LPC5411X READ LPC5411X 没有用于读取物理闪存的 IAP 样品。 noread.png   Re: LPC5411X READ 您好, 当使用 TAR = 0x0 通过 SWD AHB-AP 读取内存时,返回的数据反映了CPU 可见的当前系统内存映射。对于 LPC5411x 设备,地址 0x00000000 的前 512 个字节被重新映射到启动 ROM ,因此在此区域中观察到的数据是有效的中断向量表,而不是存储在 Flash 中的实际内容。   如果需要读取物理 Flash 区域从 0x00000000 到 0x000001FF 的原始内容,不要依赖使用 TAR = 0x0 和连续 DRW 访问的简单线性读取。相反,应该使用 Flash 算法或基于 IAP 的方法来访问原始 Flash 阵列内容,就像使用 Jlink 读取一样。     BR 爱丽丝
View full article
S32K312 ADCトリガーRTD3.0.0 S32DS3.5を使ったMCUのウェイクアップ こんにちは、 私はS32k312コントローラーmini EVBKITを使っており、MCUのスリープとウェイクアップの機能チェックに使っています。ADCで低いしきい値と高いしきい値電圧値を付けることで、ADC割り込みを通じてMCUのウェイクアップを実現しようとしています。この機能を使ってMCUを起動させてください。 LavanyaPilli_1-1784889112438.png Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 ご説明いただきありがとうございます。 ご指摘いただいたとおり、スタンバイウェイクアップにLPCMPを使用することを検討してみます。しかし、アプリケーション要件に関しては、ADC割り込みウェイクアップ機能の実装が必要です。 ADCを外部割り込みウェイクアップとして特定設定できるかどうか、MEXファイルの検証を手伝ってもらえますか? Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 @LavanyaPilli さん。 もちろん。PTA1(ADC0_S9)を外部割り込みウェイクアップとして使用している場合は、割り当てられたWKPUチャネルを見つけるためにS32K312_IOMUX.xlsxファイルを参照できます: Julin_AragnM_0-1785173159422.png PTA1はWKPU[5]ですが、4つの内部ウェイクアップソースがあるため、オフセットとして+4も追加する必要があります。これにより、PTA1はWKPU_CH_9になります。 Julin_AragnM_1-1785173923562.png WKPUユニットを初期化し、それぞれのチャネルを設定する必要があります: /* WKPU configuration */ Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB); Wkpu_Ip_EnableInterrupt(WKPU_INST, Wkpu_Ip_ChannelConfig_PB[0].hwChannel); 以下の低消費電力の例を参考にしてください: S32K3の低消費電力管理ANとデモ 例:CAN-0-RXおよびGPIOスイッチDS3.5 RTD300を使用してS32K312スタンバイ・モードからウェイクアップする [RTD600 IP] S32K312EVB-Q172 スタンバイRAM GPIOウェイクアップ よろしくお願いします、 ジュリアン Re: S32K312 MCU wakeup using ADC trigger RTD3.0.0 S32DS3.5 こんにちは、 @Julián_AragónM さん、 参考資料をありがとうございます。大変参考になりました。現在、CANベースのウェイクアップ構成を使用しています。ADCベースのウェイクアップ設定については、後日評価する予定です。
View full article
S32K388 JumpApp Only runs with core 0 active. I created a bootloader program and placed it at addresses 0x400000 to 0x420000. Whenever I update the program via serial port, only Core 0 continues to run. How can I enable the other cores to also run? S32_SCB->VTOR = 0x00422000;     __asm volatile(         "msr msp, %0"         :         : "r"(appStack)         : "memory");     ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. Hi @zhangyu5454, You can enable the cores in the startup code. Refer to the startup code (startup_cm7.s) of the default S32DS project. For example, if CM7_2_ENABLE == 1, the startup code will enable CM7_2 during system startup. The cores can also be enabled later from the CM7_0 application, either by configuring the relevant registers directly or by using the MCU MCAL driver or the Power_Ip driver. Refer to this example: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889 BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active. Thank you for your response. I have tried using Power_Ip, but when the line “Power_Ip_Init(&Power_Ip_HwIPsConfigPB);” appears in the program, the debugging process automatically ends. Moreover, even when I don’t press the reset button, the reset light remains illuminated, resulting in the device not being able to operate at all. When I use IP_MC_ME, the program runs normally, but it doesn’t produce any results. The other components also fail to start. This code snippet seems not to work well for model 388. Re: S32K388 JumpApp Only runs with core 0 active. Hi @zhangyu5454, If the MCU goes through a system reset, you need to read the source of the reset. You can call  Power_Ip_GetResetReason(); at the beginning of main() before  Power_Ip_Init(); Likely root cause is the V15 Switched-mode power supply - it must match the HW design. danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 According to your advice, I will implement it in the int main(void) section. Power_Ip_GetResetReason() was called. However, the test results remain unchanged.   int main(void) { Power_Ip_GetResetReason();         Power_Ip_Init(&Power_Ip_HwIPsConfigPB);     Clock_Ip_Init(&Mcu_aClockConfigPB[0]);         Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); while (1) { Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hi @zhangyu5454, What is the reset reason then? If I had to guess, it would be a POR/LVR. How is V15 powered on the PCB? Do you configure Power_Ip accordingly? Regards, Daniel Thank you. Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Thanks for your reply. I don't know much about these functions. Is there any related example or tutorial files? I tried to follow the S32K358 example but didn't succeed. Regarding the V15 power supply, I found that it is generated from an external 3.3V through a transistor controlled by a microcontroller to make 1.5V, with 1.1V also generated under microcontroller control. I also noticed that my hardware design doesn't have a 32.768 crystal oscillator, and the program gets stuck in Clock_Ip_ExtOsc.c in the loop do { SxoscStatus = ((Clock_Ip_apxXosc[Instance]->STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } while ((0U == SxoscStatus) && (FALSE == TimeoutOccurred)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454, I understand that you are using an SMPS on the PCB, so it must be enabled in the Configuration Tool: danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png Regarding SXOSC, make sure it is disabled: danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png Hello I followed your method to enable V15 and disable SXOSC. However, when debugging reaches the line `IP_PMC->SMPSCONFIG = ConfigValue;`—located within `Power_Ip_PMC_PowerInit`, which is inside `Power_Ip_Init`—the debugging session terminates automatically, and the board's reset indicator LED remains lit with a dim, steady glow. Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454, What are the values of ConfigValue in these two writes? IP_PMC->CONFIG = ConfigValue; IP_PMC->SMPSCONFIG = ConfigValue; The MCU is resetting due to an incorrect power mode configuration. Place the following loop at the beginning of main() so that you can debug it after the reset. volatile uint32_t loop = 1; while (loop) { } The loop variable can be modified from the debugger to allow execution to continue. Once the code is halted in the loop, call: Power_Ip_GetResetReason() It should return MCU_POWER_ON_RESET. Also read the Low Voltage Status and Control (LVSC) register to obtain more information about the reset event. Regards, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hi @zhangyu5454, I cannot reproduce this issue on my EVB with the config values you shared. Are you using the XS32K388EVB-Q289? If so, could you please let me know the position of jumper J118? danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png If you are using a custom board, please share the schematic. If you prefer not to share it here, please create a support ticket and attach the schematic there. Thank you, BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @Hi @zhangyu5454, I have difficulties to explain it. Can you measure V15 and V11 voltage during the Power_Ip initialization using an oscilloscope?
View full article
The IMX8MP PCIe internal clock PHY poweron failed --> -110 imx8mp + nxp linux6.1.55 When debugging Wi-Fi in the kernel, the following issue occurred with PCIe: testing the internal clock showed no waveform, and reset-GPIO was at a high level ( https://github.com/nxp-imx/linux-imx/tree/lf-6.1.y ).) root@imx8mpevk:~# dmesg|grep pcie [2.241914] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [2.249233] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.257455] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.322972] phy phy-32f00000.pcie-phy.4: Phy poweron failed --> -110 [2.322980] imx6q-pcie 33800000.pcie: waiting for PHY ready timeout! [ 2.323033] imx6q-pcie: probe of 33800000.pcie failed with error -110 Device tree: &pcie_phy {     //clocks = <&hsio_blk_ctrl>; clocks = < &clk IMX8MP_CLK_HSIO_AXI >; clock-names = "ref" ; fsl,clkreq-unsupported; fsl,refclk-pad-mode = < IMX8_PCIE_REFCLK_PAD_OUTPUT >; status = "okay" ; }; &pcie { pinctrl-names = "default" ; pinctrl-0 = < &pinctrl_pcie0 >; reset-gpio = < &gpio3 25 GPIO_ACTIVE_LOW >; reset-gpio-active-high; clocks = < &clk IMX8MP_CLK_HSIO_ROOT >, < &clk IMX8MP_CLK_PCIE_ROOT >, < &clk IMX8MP_CLK_HSIO_AXI >; clock-names = "pcie" , "pcie_aux" , "pcie_bus" ; assigned-clocks = < &clk IMX8MP_CLK_PCIE_AUX >; assigned-clock-rates = < 10000000 >; assigned-clock-parents = < &clk IMX8MP_SYS_PLL2_50M >;     // vpcie-supply = <&reg_pcie0>; status = "okay" ;     // wifi_wake_host {     // compatible = "nxp,wifi-wake-host";     // interrupt-parent = <&gpio5>;     // interrupts = <21 IRQ_TYPE_LEVEL_LOW>;     // interrupt-names = "host-wake";     // }; }; If selected     clocks = <&hsio_blk_ctrl>; instead of clocks = <&clk IMX8MP_CLK_HSIO_AXI>; Then an error will occur and a timeout will occur. root@imx8mpevk:~# dmesg|grep pcie [4.081133] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [4.088341] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [13.028064] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [13.035248] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock: -517 [13.049053] platform 33800000.pcie: deferred probe pending [13.060015] platform 32f00000.pcie-phy: deferred probe pending    Below is my schematic diagram. gaotao_0-1784881982173.png What went wrong? I need your help! Thank you!           i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: imx8mp pcie内部时钟phy poweron failed --> -110 Hello @gaotao  Hope you are doing very well. From your DTS reset-gpio = <&gpio3 25 GPIO_ACTIVE_LOW> and reset-gpio-active-high together are contradictory. Remove reset-gpio-active-high and keep only GPIO_ACTIVE_LOW in the GPIO specifier, or change to GPIO_ACTIVE_HIGH if your hardware has an inverter. Also, please try applying the below patches: https://www.spinics.net/lists/devicetree/msg558950.html  https://www.spinics.net/lists/devicetree/msg558947.html  https://www.spinics.net/lists/devicetree/msg558949.html https://www.spinics.net/lists/devicetree/msg558948.html These patch the imx8mp-blk-ctrl.c driver to expose a proper PLL clock and configure it. Best regards, Salas. Re: imx8mp pcie内部时钟phy poweron failed --> -110 Thank you very much for reminding me. I will inform my colleagues in the hardware department to look into this issue. I will contact you again if there are any further developments and thank you again. Re: imx8mp pcie内部时钟phy poweron failed --> -110 @Manuel_Salas , thank you so much for your reply. 1. I also realized that `reset-gpio-active-high;` was there and have already deleted it. Thanks for reminding me. 2. Therefore, I should use clocks = < &hsio_blk_ctrl >; and add those four driver patches, instead of using... clocks = <&clk IMX8MP_CLK_HSIO_AXI>; right? 3. I also saw someone else in the community reply earlier that they used those four patches, but unfortunately it seems that we can't access that website in our area. I'll think of a way. If it's convenient, I hope you can post the patches directly. Thank you very much! Re: imx8mp pcie内部时钟phy poweron failed --> -110 It seems like the problem is different now. It's reporting "Phylink never came up". Is there a problem with the PCIe itself, or is there a problem with the peripheral? root@imx8mpevk:~/rtw# dmesg|grep pcie [2.264927] imx8-pcie-phy 32f00000.pcie-phy: wifi PCIe ref clk: 100000000 Hz [2.274508] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [2.281827] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [2.290063] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [2.336901] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 16G [3.410666] imx6q-pcie 33800000.pcie: Phy link never came up1 [4.481178] imx6q-pcie 33800000.pcie: Phy link never came up1 [4.487067] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 [4.570576] pcieport 0000:00:00.0: PME: Signaling with IRQ 223 My peripheral device uses an 8822ce Wi-Fi chip, and it doesn't output any information whether I load it manually or automatically. root@imx8mpevk:~/rtw# insmod rtw88_core.ko root@imx8mpevk:~/rtw# insmod rtw88_pci.ko root@imx8mpevk:~/rtw# insmod rtw88_8822c.ko root@imx8mpevk:~/rtw# insmod rtw88_8822ce.ko root@imx8mpevk:~/rtw# root@imx8mpevk:~/rtw# lsmod | grep rtw rtw88_8822ce 16384 0 rtw88_8822c 475136 1 rtw88_8822ce rtw88_pci 28672 1 rtw88_8822ce rtw88_core 208896 2 rtw88_pci,rtw88_8822c root@imx8mpevk:~/rtw# lspci 00:00.0 Class 0604: 16c3:abcd What could be the problem this time? After the startup stabilized, I couldn't measure the reference clock waveform (my hardware required me to remove the network card to measure the waveform), but the PCIe output did change, at least... The readl_poll_timeout passed, so I should be able to guarantee that reset is at a high level.
View full article
mc9s08qg8 code warrior (Classic IDE) v6.3 windows 11 I downloaded the file, but it will not install, the installer says my OS is wrong. I am using Windows 11 ? Re: mc9s08qg8 code warrior (Classic IDE) v6.3 windows 11 Hello, To use CodeWarrior in windows 11 please update to v11.1, I look for the MC9S08QG8 device and is available in this version. You can download from this link: CodeWarrior® for MCUs (Eclipse IDE)        11.1 Best Regards, Luis
View full article
s32k344, LPSPI small clock gap between frames of a continuous sequence - I am having a problem communicating between an NXP MCU S32K344 LPSPI module (Controller) and a Holt HI-35930 (Peripheral). The code is writing 2 frames, each an 8 bit word. over the LPSPI to an ARINC communication device HI-35930.  I verified all settings are correct. cpol = 0, cpha = 0,  LSBF = MSB, BYSW=no, RXMSK, TXMSK =0, TCR[FRMSZ]=7. The code uses the TRC[CONT and TRC[CONTC] bits to control the PCS. The PCS stays asserted for the entire sequence of 2 frames, see picture. The clock, likewise pulses over the 2 frames. The SOUT signal has the expected data on it, frame 1 = opcode 0x80, frame 2 - dummy data 0x00 The problem is with SIN. There is no data back. ( opcode 0x80 is to read a register where I was expecting at least one bit set high). The RXCOUNT does increment on each frame to a max of 2. -Using the same settings, I concatenate the same opcode and data into one 16-bit frame, set TRC[CONT and TRC[CONTC] = 0 since there is one frame TRC[FRMSZ]=15. The transmission works and SIN returns real data. What do you think is wrong here? Yellow - PCS signal Pink - Clock signal Blue - SIN to the MCU Green - SOUT from the MCU   Re: s32k344, LPSPI small clock gap between frames of a continuous sequence The data for MOSI and MISO is empty. Do you have right SPI bus hardware schematics design? Re: s32k344, LPSPI small clock gap between frames of a continuous sequence Hi @ekmas-19, You described the transmission as sending 2 bytes — 0x80 and 0x00. However, the oscilloscope clearly shows 2 x 32-bit words separated by a small gap, not 2 x 8-bit frames. Can you clarify this? Regarding the inter-frame gap — this is expected behaviour. CONT = 1 only keeps CS/PCS asserted between frames; it does not affect SCK. The clock behaves exactly as it would with CONT = 0. Regards, Daniel
View full article
s32k344,LPSPI 连续序列帧之间的小时钟间隙 - 我在NXP MCU S32K344 LPSPI模块(控制器)和Holt HI-35930(外设)之间通信时遇到问题。 该代码正在写入 2 个帧,每个帧为 8 位字。通过 LPSPI 连接到 ARINC 通信设备 HI-35930。我已确认所有设置均正确。cpol = 0,cpha = 0,LSBF = MSB,BYSW=否,RXMSK,TXMSK =0,TCR[FRMSZ]=7。 该代码使用 TRC[CONT 和 TRC[CONTC] 位来控制 PCS。PCS 在整个 2 帧序列中保持钳位,请参见图片。同样,时钟在这两帧画面中脉动。SOUT 信号包含预期数据,帧 1 = 操作码 0x80,帧 2 = 虚拟数据 0x00 问题出在SIN上。没有备份数据。(操作码 0x80 用于读取寄存器,我预期其中至少有一位设置为高电平)。 RXCOUNT 在每一帧都会递增,最大值为 2。 -使用相同的设置,我将相同的操作码和数据连接成一个 16 位帧,设置 TRC[CONT 和 TRC[CONTC] = 0,因为只有一个帧 TRC[FRMSZ]=15。传输正常,SIN 返回真实数据。 你觉得这里出了什么问题? 黄色 - PCS信号 粉色 - 时钟信号 蓝色 - SIN 至 MCU 绿色 - 来自 MCU 的 SOUT   Re: s32k344, LPSPI small clock gap between frames of a continuous sequence MOSI 和 MISO 的数据为空。你的SPI总线硬件原理图设计正确吗? Re: s32k344, LPSPI small clock gap between frames of a continuous sequence 你好@ekmas-19 , 你描述这次传输发送了 2 个字节——0x80 和 0x00。然而,示波器清楚地显示为 2 个 32 位字,中间有很小的间隙,而不是 2 个 8 位帧。你能解释一下吗? 关于帧间间隙——这是预期行为。CONT = 1 仅保持帧间 CS/PCS 钳位;它不影响 SCK。时钟的行为与 CONT = 0 时完全相同。 此致, 丹尼尔
View full article
Is i.MX 9 "there yet"? I started a project in a few years ago and NXP's i.MX 9 line of MPUs were beginning to be released but they were largely unobtainable so I went with a beefy i.MX 8. At this stage, it's way more power than I need and I'd like to move to a much smaller MPU. I was planning on getting the smallest i.MX 8 but the i.MX91 is the smallest cpu they have. I was wondering if I would be better off with the 91 instead of a more mature 8. Thermals are my primary concern so I would assume new is always better, but I just don't know if they are "there yet" since they are still fairly new. A more apples to apples port moving to an 8 could also be a motivator.
View full article
LPC5411X 読み取り 現在、LPC54113チップのデバッグにSWDを使用しています。コアを停止させてから、0xE000から始まるデバッグレジスタをいくつか設定しました。 チップ内部フラッシュを読み取ると、アドレス0x0~0x200は常に誤ったデータが表示され、FLASHに保存されている実際のプログラムではなく割り込みベクターテーブルのように見えました。他のアドレスから読み取ることで、すべて0xFFFFFFFFされた正しいデータを得ることができます。 そのチップはデータを何も書き込んでいなかった。JLINKを使用して読み取ると、アドレス0x0~0x200は0xFFFFFFFFになります。しかし、JLINKは読み込みのためにRAMに書き込みを行うためにFLMを使っており、0x0のアドレス範囲への読み込みをどのように処理しているのか0x200わかりません。 私が実行した手順は以下のとおりです。 書き込み中止、0x1E 選択書き込み、0x0 tar を書き込む、0x0 cswを書き込む、0x23000012 そしてDRWを読み取り、内部フラッシュエンドアドレスまで読みます。 vector.png LPC541XX LPC54xxx Re: LPC5411X READ こんにちは、 物理的なフラッシュの内容ではなく、Cortex-Mのメモリエイリアスを読み取っている可能性があります。LPC54113では、アドレス0x00000000は、ブート構成とリマップ設定に応じて、現在アクティブなメモリ(フラッシュ、ブートROM、またはRAM)にマッピングされます。デバイスが空の場合、ブートROMは有効なベクターテーブルを0x0に表示できるため、割り込みベクターが表示される理由0xFFFFFFFF。 Re: LPC5411X READ 0x0番地の物理フラッシュメモリの内容を読み取りたいのですが、どうすればいいですか? 買掛金口座やその他の取引を変更する必要がありますか? Re: LPC5411X READ LPC5411Xには、物理フラッシュを読み取るためのIAPサンプルがありませんでした。 noread.png   Re: LPC5411X READ こんにちは、 TAR = 0x0 を使用して SWD AHB-AP を介してメモリを読み取ると、返されるデータはCPU から見える現在のシステムメモリマッピングを反映します。LPC5411xデバイスでは、 アドレス0x00000000の最初の512バイトがブートROMに再マッピングされるSO、この領域で観察されるデータはFlashに保存された実際の内容ではなく有効な割り込みベクターテーブルとなります。   物理フラッシュ領域の元の内容を0x00000000から0x000001FFまで読み取る必要がある場合は、 TAR = 0x0 アクセスと連続した DRW アクセスを使った単純な線形読み込みに頼らないでください。代わりに、Jlinkを使って読み取るのと同じように、Flashの生のFlash配列内容にアクセスできるFlashアルゴリズムやIAPベースの方法を使うべきです。     BR アリス
View full article
base-files error when build the yocto linux Build the yocto error. When i build and follow to guide of nxp by yocto. How to fix the error? WARNING: Logfile for failed setscene task is /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/armv8a-poky-linux/ptest-runner/2.4.5+git/temp/log.do_package_setscene.1680451 WARNING: Setscene task (/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.bb:do_package_setscene) failed with exit code '1' - real task will be run instead ERROR: base-files-3.0.14-r0 do_package: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: 0001: *** 0002:perform_packagecopy(d) 0003: File: '/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/classes-global/package.bbclass', lineno: 363, function: perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD}" 0362:perform_packagecopy[dirs] = "${PKGD}" *** 0363: 0364:python populate_packages () { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = "${D}" File: '/usr/lib/python3.10/subprocess.py', lineno: 421, function: check_output 0417: else: 0418: empty = b'' 0419: kwargs['input'] = empty 0420: *** 0421: return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): File: '/usr/lib/python3.10/subprocess.py', lineno: 526, function: run 0522: # We don't call process.wait() as .__exit__ does that for us. 0523: raise 0524: retcode = process.poll() 0525: if check and retcode: *** 0526: raise CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: return CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: Exception: subprocess.CalledProcessError: Command 'tar --exclude=./sysroot-only -cf - -C /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/image -p -S . | tar -xf - -C /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/package' returned non-zero exit status 2. Subprocess output: got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path bin couldn't allocate absolute path for 'bin'. tar: ./usr/bin: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./usr/lib: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path games couldn't allocate absolute path for 'games'. tar: ./usr/games: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/dict: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/man: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/doc: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/doc/base-files-3.0.14: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/misc: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/common-licenses: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path share couldn't allocate absolute path for 'share'. tar: ./usr/share: Cannot mkdir: Bad address tar: ./usr/share/info: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path sbin couldn't allocate absolute path for 'sbin'. tar: ./usr/sbin: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path src couldn't allocate absolute path for 'src'. tar: ./usr/src: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path include couldn't allocate absolute path for 'include'. tar: ./usr/include: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path tmp couldn't allocate absolute path for 'tmp'. tar: ./var/tmp: Cannot create symlink to ‘volatile/tmp’: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path local couldn't allocate absolute path for 'local'. tar: ./var/local: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./var/lib: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./var/lib: Cannot mkdir: Bad address tar: ./var/lib/misc: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path volatile couldn't allocate absolute path for 'volatile'. tar: ./var/volatile: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path volatile couldn't allocate absolute path for 'volatile'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path volatile couldn't allocate absolute path for 'volatile'. tar: ./var/volatile: Cannot mkdir: Bad address tar: ./var/volatile/tmp: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path volatile couldn't allocate absolute path for 'volatile'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path volatile couldn't allocate absolute path for 'volatile'. tar: ./var/volatile: Cannot mkdir: Bad address tar: ./var/volatile/log: Cannot mkdir: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path log couldn't allocate absolute path for 'log'. tar: ./var/log: Cannot create symlink to ‘volatile/log’: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lock couldn't allocate absolute path for 'lock'. tar: ./var/lock: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path spool couldn't allocate absolute path for 'spool'. tar: ./var/spool: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path backups couldn't allocate absolute path for 'backups'. tar: ./var/backups: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path run couldn't allocate absolute path for 'run'. tar: ./var/run: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path nsswitch.conf couldn't allocate absolute path for 'nsswitch.conf'. tar: ./etc/nsswitch.conf: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path hosts couldn't allocate absolute path for 'hosts'. tar: ./etc/hosts: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path issue.net couldn't allocate absolute path for 'issue.net'. tar: ./etc/issue.net: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path profile couldn't allocate absolute path for 'profile'. tar: ./etc/profile: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path default couldn't allocate absolute path for 'default'. tar: ./etc/default: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path issue couldn't allocate absolute path for 'issue'. tar: ./etc/issue: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path skel couldn't allocate absolute path for 'skel'. tar: ./etc/skel: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path skel couldn't allocate absolute path for 'skel'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path skel couldn't allocate absolute path for 'skel'. tar: ./etc/skel: Cannot mkdir: Bad address tar: ./etc/skel/.profile: Cannot open: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path skel couldn't allocate absolute path for 'skel'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path skel couldn't allocate absolute path for 'skel'. tar: ./etc/skel: Cannot mkdir: Bad address tar: ./etc/skel/.bashrc: Cannot open: No such file or directory got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path mtab couldn't allocate absolute path for 'mtab'. tar: ./etc/mtab: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path hostname couldn't allocate absolute path for 'hostname'. tar: ./etc/hostname: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path fstab couldn't allocate absolute path for 'fstab'. tar: ./etc/fstab: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path shells couldn't allocate absolute path for 'shells'. tar: ./etc/shells: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path host.conf couldn't allocate absolute path for 'host.conf'. tar: ./etc/host.conf: Cannot open: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path motd couldn't allocate absolute path for 'motd'. tar: ./etc/motd: Cannot open: Bad address tar: Exiting with failure status due to previous errors ERROR: Logfile of failure stored in: /home/vmc/Desktop/imx-yocto-bsp/build-wayland/tmp/work/imx8mqevk-poky-linux/base-files/3.0.14/temp/log.do_package.1734591 ERROR: Task (/home/vmc/Desktop/imx-yocto-bsp/sources/poky/meta/recipes-core/base-files/base-files_3.0.14.bb:do_package) failed with exit code '1' Re: base-files error when build the yocto linux Thanks u. It actived Re: base-files error when build the yocto linux On your ubuntu PC, run the command "sudo apt install tar=1.34+dfsg-1build3"
View full article
S32Gコアリセット こんにちは、NXPさん。 S32G399特定のM7コアの独立リセットを他のコアの通常の動作に影響を与えずにサポートしているのか知りたいです。 Re: S32G Core RESET こんにちは、 @ChuanG 投稿ありがとうございます。 はい、サポートされています。一般的には、M7_1/2/3のオン/オフをM7_0上で動作するアプリケーションで行われます BR チェイン
View full article
FRDM-S32K344 manual error Hello, There is a mistake on page 11 of FRDM-A-S32K344 development board manual (UM12406) . I'm posting this comment for the community and for anyone who runs into the same problem I did. "Specifically, resistor R43 is populated by default to keep the FS26 in debug mode. To enable normal mode, R43 must be removed and R42 must be populated instead." Should be: "Specifically, resistor R43 is populated by default to keep the FS26 in debug mode. To enable normal mode, R43 must be removed. and R42 must be populated instead." or: "Specifically, resistor R43 is populated by default to keep the FS26 in debug mode. To enable normal mode, R43 must be removed. R42 must be populated to enter in OTP emulation mode." Re: FRDM-S32K344 manual error Hi Thank you for the report! When R43 is removed and R42 is populated, the voltage of FS26_VDEBUG will be within the VOTP (OTP emulation mode) range of the FS26 DataSheet. Therefore, I agree with your point of view, and I think the second statement is more comprehensive. Let me contact the author to report this issue. Best Regards, Robin
View full article
S32K388 JumpApp 仅在核心 0 处于活动状态时运行。 我创建了一个引导加载程序,并将其放置在地址 0x400000 到 0x420000 处。每次我通过串口更新程序时,只有核心 0 继续运行。如何才能让其他核心也运行起来? S32_SCB->VTOR = 0x00422000; __asm volatile(         "msr msp, % 0" : : "r" (appStack) : “记忆” ); ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. 嗨@zhangyu5454 , 您可以在启动代码中启用核心。请参阅默认 S32DS 项目的启动代码(startup_cm7.s)。 例如,如果 CM7_2_ENABLE == 1,则启动代码将在系统启动期间启用 CM7_2。 也可以稍后通过 CM7_0 应用程序启用内核,方法是直接配置相关寄存器,或者使用 MCU MCAL 驱动程序或 Power_Ip 驱动程序。请参考以下示例: https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889 BR,丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active. 感谢您的回复。我尝试使用 Power_Ip,但是当程序中出现“Power_Ip_Init(&Power_Ip_HwIPsConfigPB);”这行代码时,调试过程会自动结束。此外,即使我不按下 RESET 按钮,RESET 指示灯仍然亮着,导致设备完全无法运行。当我使用 IP_MC_ME 时,程序运行正常,但没有产生任何结果。其他元器件也无法启动。这段代码似乎对 388 型号不太适用。 Re: S32K388 JumpApp Only runs with core 0 active. 嗨@zhangyu5454 , 如果 MCU 发生系统RESET,则需要读取RESET源。 您可以致电 Power_Ip_GetResetReason(); 在 main() 函数开头之前 Power_Ip_Init(); 根本原因可能是 V15 开关电源——它必须与硬件设计相匹配。 danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png BR,丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 根据您的建议,我将在 int main(void) 部分中实现它。调用了 Power_Ip_GetResetReason() 函数。然而,测试结果依然没有改变。   int main(void) { Power_Ip_GetResetReason(); Power_Ip_Init(&Power_Ip_HwIPsConfigPB); Clock_Ip_Init(&Mcu_aClockConfigPB[0]); Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); 当(1) { Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 嗨@zhangyu5454 , 那么RESET的原因是什么? 如果让我猜的话,应该是POR/LVR。 V15在PCB板上是如何供电的? 您是否已相应地配置 Power_Ip? 此致, 丹尼尔 谢谢! Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 你好@zhangyu5454 , 我知道您在PCB板上使用了SMPS电源,因此必须在配置工具中启用它: danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png 关于SXOSC,请确保已禁用: danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 谢谢你的回复。我不太了解这些功能。是否有相关的示例或教程文件?我尝试按照 S32K358 的示例进行操作,但没有成功。关于 V15 电源,我发现它是由外部 3.3V 电压通过微控制器控制的晶体管产生 1.5V 电压,同时在微控制器控制下还会产生 1.1V 电压。我还注意到我的硬件设计中没有 32.768 晶振(晶体振荡器),程序卡在了 Clock_Ip_ExtOsc.c 的循环中。 做 { SxoscStatus = ((Clock_Ip_apxXosc[Instance]->STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } while ((0U == SxoscStatus) && (FALSE == TimeoutOccurred)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 你好@zhangyu5454 , 这两次写入操作中 ConfigValue 的值分别是多少? IP_PMC->CONFIG = ConfigValue; IP_PMC->SMPSCONFIG = ConfigValue; 由于电源模式配置错误,MCU正在复位。 将以下循环放在 main() 函数的开头,以便在重置后进行调试。 volatile uint32_t loop = 1; while (loop) { } 可以通过调试器修改循环变量,以允许程序继续执行。 当代码在循环中停止执行时,调用: Power_Ip_GetResetReason() 它应该返回 MCU_POWER_ON_RESET。 另外,请查阅低电压状态和控制(LVSC)寄存器,以获取有关 RESET 事件的更多信息。 此致, 丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png张宇5454_0-1786934052028.png 您好,我按照您的方法启用了V15并禁用了SXOSC。但是,当调试到达 `Power_Ip_PMC_PowerInit` 中的 `IP_PMC->SMPSCONFIG = ConfigValue;` 行(该行位于 `Power_Ip_Init` 内部)时,调试会话会自动终止,并且板载 RESET 指示灯 LED 会保持微弱而稳定的亮光。 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 嗨@zhangyu5454 , 我用你分享的配置值在我的EVB上无法重现这个问题。 您使用的是 XS32K388EVB-Q289 吗?如果可以的话,请问您能否告知跳线 J118 的位置? danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png 如果您使用的是定制电路板,请分享原理图。如果您不想在此处分享,请创建支持工单并将原理图附加到工单中。 谢谢! BR,丹尼尔 Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @嗨@zhangyu5454 , 我很难解释清楚。 您能否使用示波器测量 Power_Ip 初始化期间的 V15 和 V11 电压?
View full article