Does Zephyr support PPI/SPIM communication?

Hello All,

 

I hope all is well. I have now been using Nordic ICs for close to 10 years and have become familiar with SDK5 and developed multiple applications using it. I am currently in the process of trying to learn the new Zephyr SDK for our new design and have made some nice progress. Where I am currently stuck is I need to use PPI to communicate with external peripherals and I am not sure which path I should go down on. From what I have been reading, it seems to me that in order to use PPI with SPIM, one must use the nrfx driver instead of the Zephyr. Here are few questions and concerns that I have:

 

  1. Is there a way to implement PPI/SPIM using the Zephyr SDK?
  2. If one must use the nrfx driver, what are the long-term repercussions? For example, I have read that if you one uses the nrfx driver, the power management unit(PMU) system will not know anything about the SPI instance and functions; and hence, it can not optimize power for it. If that is the case, doesn’t this almost render the use of PPI inadequate?
  3. I don't see any flags like NRFX_SPIM_FLAG_HOLD_XFER, and/or  NRFX_SPIM_FLAG_TX_POSTINC for PPI implementation. 
  4. Is there an example for the nRF52833 that shows how to implement PPI using Zephyr driver. there really needs to be more examples and documentations on this subject. any links and/or examples would be greatly appreciated.   

 

I have already coded my peripheral SPI communications using the Zephyr driver and now may have to restart from the beginning if PPI is not supported in the Zephyr SDK. These are some of the questions and concerns that I have. As always, your help is greatly appreciated and I look forward to all your responses.

 

Regards,

Parents Reply Children
Related