What is the minimum hold time for an input GPIO to generate an IN EVENT on a GPIOTE channel?

I have an application where I need to count clock cycles on a GPIO input. I'm configuring a GPIOTE channel N to generate an IN EVENT on rising edge of an input GPIO PIN (the clock signal) and then publishing the IN EVENT to a DPPI channel that is triggering the COUNT TASK of a TIMER that is configured in Counter mode.

This implementation works perfectly as long as the clock is not too high in frequency. For example, when the clock is 48 kHz my counter accurately counts the clock cycles. At higher frequencies (e.g. 3 MHz) the Counter is only capturing about 2/3 of the clock cycles. At much higher frequencies (e.g. 12 MHz), the Counter doesn't capture any clock cycles.

In the nRF5340 product spec, the GPIOTE section references a spec for minimum hold time when operating in Low-Latency mode (tGPIOTE,HOLD,LL) but the Electrical Specification section for the GPIOTE module is empty.

My question is what is the value of tGPIOTE,HOLD,LL? Or alternately, what is the maximum frequency of an input signal in order to reliably generate the IN EVENT in the GPIOTE module?

Thank you

Kevin Doss, Shure, Inc.

Parents Reply
  • Similar topic, but it doesn't answer my  question. I'm doing the opposite thing... I have clock signal feeding into a GPIO input pin and I need to count clock cycles. My solution works, but there is a limit to the how high the frequency of the input clock signal can be before the counter becomes inaccurate or at some point totally non-functional. I'm trying to to discover what that limit is. I believe it's limited by the tGPIOTE,HOLD,LL spec for the GPIOTE module, but that spec is not disclosed in the nRF 5340 Prodect Spec.

    Thanks

Children
Related