This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Strange Timer granularity issue on nRF53832 project

I am attempting to use TIMER4 on an nRF53832 using SDK 12.2.0 but I seem to be running into some sort of granularity issue.

Specifically, if set up the timer with 16MHz clocking and 32 bit width and I then use compare register 1, I seem to only get a granularity of about 45 microseconds.

I am toggling a GPIO line and measuring how long it takes between the timer starting from a zero count until the compare event is received using an oscilloscope to measure the time difference. If I set the compare register for 60 microseconds (960) ticks, I measure the the time difference on the 'scope as 52.0 microseconds. I then tried increasing the compare register setting by 5 microseconds (80 ticks) each try. At 70 microseconds, the measured interval is 97.2 microseconds. The measured time difference remained at 97.2 microseconds for each 5 microsecond compare register value up to 95 microseconds where I stopped measuring.

I assume there is some setup value (maybe in sdk_config.h) that I need to set appropriately but I have not had any success in trying to figure this out. Any ideas on where I should look?

Parents Reply
  • Not sure where Nordic documents it, but keil seemed to know the SAADC event registers. Seems like it should be something like: NRF_SAADC->EVENTS_RESULTDONE So, if you wanted to you can use that to drive the task. Not sure if you'll still be able to have it also drive an interrupt handler at the same time. If you look around in the NRF headers you should be able to find it out for sure how the event is defined. Generally Nordic seems to comment the header files well.

Children
No Data
Related