i.MX RT peripheral wake from System Idle

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

i.MX RT peripheral wake from System Idle

1,503件の閲覧回数
TomGibson
Contributor III

AN12094 indicates that peripherals besides GPIO/RTC/USB may be used as wakeup sources for low power modes. I am using as a basis for my application the code sample which uses FreeRTOS and supports wake from GPIO and GPT, to allow wake from Ethernet and and SDIO on Interrupt when in System Idle. Is this feasible, or is wakeup from Ethernet restricted to more standardised methods such as Magic Packet etc?

0 件の賞賛
返信
4 返答(返信)

1,487件の閲覧回数
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @TomGibson,

To answer your question, the ENET's module built-in method of causing a wakeup event is only via a reception of a magic packet, as described on the WAKEUP bit field of the Interrupt Event Register (ENET_EIR).

That said, I believe I may not be completely understanding the context you talk about. If you are somehow syncing the GPIO or GPT with ENET events, then technically you could use the interruption events from those other modules to indirectly cause an ENET wakeup. But I may be misinterpreting your application.

BR,
Edwin.

0 件の賞賛
返信

1,478件の閲覧回数
TomGibson
Contributor III

Hi @EdwinHz 

Thanks for getting back to me. What I would like to do is have the ENET peripheral IRQ cause the processor to exit System Idle, in the same fashion as the GPIO IRQ in the code sample. Maybe I'm reading too much into the document, but AN12085 Table 4 indicates that in System Idle "all the peripheral[s] can remain active" which I had interpreted as including Ethernet, and also interpreted as meaning that the relevant peripherals could still generate IRQ signals.

Ideally for my use case the same events that are processed by ENET_ReceiveIRQHandler in fsl_enet.c would cause the processor to resume from WFI(), if this is possible. I can see that this wouldn't work for lower power suspend modes because Table 4 indicates that all PLLs would be shut off for Low Power Idle/Suspend. However, my interpretation of the application note was that in System Idle any peripheral can be kept active and therefore available for IRQ, but I am not currently able to translate the example which uses GPIO IRQ to the ENET peripheral. Is my interpretation wrong?

Thanks!

0 件の賞賛
返信

1,440件の閲覧回数
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @TomGibson,

The ENET's IRQ does not have the capability of doing a wakeup on it's own. The ENET peripheral would have to be configured using the ENET_EIR register's WAKEUP bit to be able to exit the MCU from System Idle.

I believe what the Table 4 of the aforementioned AppNote is referring to is that usage of the rest of the peripherals is not restricted, as they can remain active rather than forcefully being shut down to save power. This, however, cannot be extrapolated to mean that any peripheral's IRQ will wakeup the MCU.

BR,
Edwin.

0 件の賞賛
返信

1,345件の閲覧回数
TomGibson
Contributor III

Hi @EdwinHz,

Thanks for confirming this is the case. I am able to work around this with GPIO for now. Is the capability of a particular peripheral to wake the MCU documented elsewhere, since the AppNote isn't explicit on this?

Thank you.

Tom

0 件の賞賛
返信