RIOT-OS / RIOT

RIOT - The friendly OS for IoT
https://riot-os.org
GNU Lesser General Public License v2.1
4.96k stars 1.99k forks source link

nRF53 support #18576

Open chrysn opened 2 years ago

chrysn commented 2 years ago

Description

Nordic has released a new series of microcontrollers with radio modules, nRF53, with its flagship nrf5340

It would be great to have support for them; relevant sub-items are:

Relevant boards

Boards that should be easy to add once the family is in are the thingy:53, nrf5340-dk and nrf5340-audio-dk.

(Generally, BLE audio is a really big new item in these, and that will be in high demand, judging from feedback from a hearing aid technician).

chrysn commented 2 years ago

I've had a look at the nRF5340 documentation and stay by my initial idea that the network core is a good initial target. It doesn't have all the peripherals the application core has (it only has one WDT while the application core has two, one UART where the application has 4, has no access to the PDM microphone driver and most importantly no USB) -- but it has access to RADIO, and all memory (flash and RAM) of the application core is also available to the MCU core (but with no DMA, and application flash is not executable).

By the way, the RADIO peripheral appears to be well documented, I haven't seen any hint at the necessity to use the softdevice other for than for convenience and easier certification.

sjanc commented 1 year ago

Just my 2 cents :)

Nimble (on Mynewt) on nRF5340 uses "classic split" architecture: application core runs host, networking core runs controller only and both communicates with standard HCI (via IPC transport).

If you start with support for application core first you may use Mynewt based blehci on networking core (if you reuse IPC HCI transport) and only later move to RIOT based controller (if needed).

I'd suggest starting with app core support first for one more reason: networking core is by default powered down and its reset needs to be pulled down from app core so you need "something" working on app core anyway to play with networking core (this is how I added support for nRF5340 in Mynewt, first app core, then networking core).

And last but not least, in latest NimBLE master nRF52x and nRF5340 PHYs are combined into single nRF5X driver, so updating NimBLE may also ease you with enabling radio on nrf53 if you already support nrf52 :)

dylad commented 1 year ago

I've started to work on adding nrf5340dk board to RIOT-OS. I'll focus on basic stuff at first (common nRFx peripherals).

dylad commented 1 year ago

Initial support for the application core was merged. Should we keep this one open ? Or should we migrate further discussions in #19267 ?