Hi NXP Community,
I'm working with the MaaxBoard i.MX93 (Cortex-M33) and trying to implement input capture using the TPM peripheral (Timer). I understand that for proper input capture, the GPIO must support TPMx_Channely via IOMUX.
However, I have a signal on a GPIO pin (e.g., GPIO3_IO05) which does not support TPM capture in the IOMUX.
I am able to read its value via GPIO_PinRead() and see it toggling, but I want to measure the pulse width or frequency (i.e., high-time, low-time, or edge timestamps).
Is there any workaround to use non-TMR-connected GPIOs for input capture (e.g., using interrupts or polling)?
If yes, how to configure GPIO interrupt with precise timestamp logging using SysTick or any other timer?
Is there an example in the MCUXpresso SDK for i.MX93 that shows GPIO interrupt-based edge timing or pulse measurement?
Any suggestions or best practices for accurate timing measurement via software-only methods on GPIOs would be helpful.
Thanks!
Hello @Manjunathb
I hope you are doing very well.
Unfortunately we have not an example to do it without the TPM PAD.
But taking a look to the MaaxBoard, it appears you can do it with the GPIO12:
And you can use the TPM Example on the SDK because that PAD is used:
Best regards,
Salas.
I updated app.h and pinmux.c inside input capture driver code although its NOT working.
what is the problem in this its not triggering (not reading input value, when specific pin making high and low ?
Hello @Manjunathb
Can you try the TPM example from SDK?
It should works without any modification.
Best regards,
Salas.
I tried just changing configuration part in app.h and i checked its not working ?
I have working on Maaxboard OSM93 board , inside this i did not get the pinout of this , after updating pinmux with correct pin also its not working ?