Are there any limitations on the GPIOs I assign to peripherals on a custom board I am making for the nRF9151? Are there particular GPIOs that would be 'better' assigned for specific protocol ports (i.e. I2C, SPI, UART)

I am currently working on creating a custom PCB which features an nRF9151 module. I am currently working on pin assignment for our peripherals. Given Zephyr uses a device tree, it appears that any GPIOs on the nRF9151 can be assigned to any particular peripheral. I have worked with ESP32 in the past, and I know some of the 'GPIOs' they list, are actually reserved for specific things like communicating with an external flash chip etc. I would appreciate confirmation from one of your engineers that we may use any of the available GPIOs, other than those obviously labeled for things such as SWD and Trace, for our peripheral connection. This would make our PCB design much easier, as we could design our firmware and device tree around whichever GPIOs we  have selected to make routing traces simpler on the PCB. 

For a summary we will require the following peripherals and associated protocols:

  • 2x UART ports
  • 1x I2C port
  • 2x SPI port  (one for an external flash chip)
  • 8 GPIOs , 2 with hardware interrupts. 
  • Any external debugger pins (SWD and trace pins needed

I would like confirmation that

1. We can use all of these concurrently on a single nRF9151 chip.  (There seems to be more than enough GPIOs, its just a matter of their abilities) 

2. We are free to assign any of these GPIOs to any of the listed protocols / ports / peripherals so that we can be confident moving forward with our pin assignment and traces on the PCB.

For refernce I have completed the nRF Connect SDK fundamentals course, but have not yet started the Intermediate course. That being said the answer to this question would allow our hardware engineers to continue their work while I move onto completing these courses.

Thank you!

Related