DPPI NRFX Support NRF54L15

DPPI is not able to build with SDK 2.8.

The issue seems to be the NRF54L15 has 4 DPPI peripherals, yet the NRFX hal version 2.8 only works with one.

// Driver for single instance DPPI
#if NRFX_CHECK(NRFX_DPPI_ENABLED) && (!defined(DPPIC_COUNT) || (DPPIC_COUNT == 1))


Would it be recommended to clone the latest release of the NRFX hal to get support for the 54L15?
Parents
  • Hi Luke, 
    If you take a look at \zephyr\modules\hal_nordic\nrfx\CMakeLists.txt  you can find this:

    So nrfx_gppi_dppi_ppib_lumos.c is used, not nrfx_dppi.c. 

  • Hmm, so it looks like I should be using the "gppi" library -  #include <helpers/nrfx_gppi.h> then correct?  

    I am trying to create multiple low-power PWM on the 54L15 with the GRTC and the GPIOTE.  I could do this on the 52 series, however this had a dedicated RTC that I could use for PWM.  With the 54L, it looks like there is just one global RTC with multiple CC channels.  is it still possible set up multiple low power PWMs using the GRTC and GPIOTE with the PPI events/tasks?   

  • LukeC said:
    I should be using the "gppi" library -  #include <helpers/nrfx_gppi.h> then correct?  

    Correct. 

    LukeC said:
    I am trying to create multiple low-power PWM on the 54L15 with the GRTC and the GPIOTE.  I could do this on the 52 series, however this had a dedicated RTC that I could use for PWM.  With the 54L, it looks like there is just one global RTC with multiple CC channels.  is it still possible set up multiple low power PWMs using the GRTC and GPIOTE with the PPI events/tasks?   

    I don't think it's a problem. I haven't tried to test connecting the CC event to GPIOTE via GPPI but I assume it should work. Note that there is a PWM on the GRTC that you may want to use directly. 

  • Note that there is a PWM on the GRTC that you may want to use directly. 

    Yes, I think that will work for some projects, however, this project I need 4 low-power PWM's.  Ideally, I would like to be able to set their frequency a bit higher at 1khz which should be doable from the LF_RC clock source.

    Question: Is there an event to restart a CC channel on the GRTC using the PPI?

    My plan was as follows:

    CC0 - PWM duty factor CC channel, on event set pin 

    CC1 - PWM base clock channel, on event clear pin

    I have this working, but each of these CC channels is one shot only,

    I need a way to set up a GPPI channel to restart CC0/CC1 on a CC1 event.  I only see capture tasks as a possible task endpoint for the PPI to connect to.  It seems like I need a CC1 restart task to accomplish this.

    Perhaps my approach is flawed? Is there a better way to configure the GRTC through the PPI to create a very low-power PWM?

    I saw CC[0] allows for an interval periodic setting. I might be able to make a PWM using a toggle task on the GPIOTE, but that is only one channel.

Reply
  • Note that there is a PWM on the GRTC that you may want to use directly. 

    Yes, I think that will work for some projects, however, this project I need 4 low-power PWM's.  Ideally, I would like to be able to set their frequency a bit higher at 1khz which should be doable from the LF_RC clock source.

    Question: Is there an event to restart a CC channel on the GRTC using the PPI?

    My plan was as follows:

    CC0 - PWM duty factor CC channel, on event set pin 

    CC1 - PWM base clock channel, on event clear pin

    I have this working, but each of these CC channels is one shot only,

    I need a way to set up a GPPI channel to restart CC0/CC1 on a CC1 event.  I only see capture tasks as a possible task endpoint for the PPI to connect to.  It seems like I need a CC1 restart task to accomplish this.

    Perhaps my approach is flawed? Is there a better way to configure the GRTC through the PPI to create a very low-power PWM?

    I saw CC[0] allows for an interval periodic setting. I might be able to make a PWM using a toggle task on the GPIOTE, but that is only one channel.

Children
No Data
Related