This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

PPI Timer2 weird behavior on Bluetooth connect

Hello!

We're using PPI to connect one pin to clear and capture events on Timer2. On pin low-to-high we're clearing the timer and on pin high-to-low, we're capturing the timer. We have S110 enables and inited on PCA10001 board.

The application works great until we connect the PCA10001 to the PCA10000 (via master control panel) at which moment the values from the timer become erratic and random. It stays the same after Bluetooth disconnect.

Parents
  • There should be a GPIOTE involved in the usecase you mentioned. GPIOTE will convert the pin state change into events, which should be connected to PPI to convert into a timer task. After configuration there is no software involved in clearing and capturing the timer value. It is done by hardware so S110 connections and disconecctions shall not effect this.

    1)Did you use different GPIOTE and PPI channels to configure the pin state change? 2) how are you reading these values, is your reading interrupt based?If your processing time for your interrupt is less than 100us, you could set the interrupt priority to APP_HIGH to see if that helps. 3)If pin state change is happening faster than the softdevice is allowing the app to read it then it is possible that after connection (softdevice blocks cpu for 1ms-6ms depending on packet length) then you are missing few read cycles of timer capture register.

  • I just had a hunt through some of my code. I have one app uses PPIs 0-2 and it sets them up early and never changes them - they appear to work even after advertising starts. This is S110 (that code uses V7 as I've not upgraded it yet). That's one piece of empirical evidence that the softdevice doesn't touch the PPI channels, it's certainly not meant to.

    Can you check the PPI config in the debugger when advertising starts and see if it's what you set it to earlier? You won't be able to continue after stopping but you should be able to tell if the config was messed up.

Reply
  • I just had a hunt through some of my code. I have one app uses PPIs 0-2 and it sets them up early and never changes them - they appear to work even after advertising starts. This is S110 (that code uses V7 as I've not upgraded it yet). That's one piece of empirical evidence that the softdevice doesn't touch the PPI channels, it's certainly not meant to.

    Can you check the PPI config in the debugger when advertising starts and see if it's what you set it to earlier? You won't be able to continue after stopping but you should be able to tell if the config was messed up.

Children
No Data
Related