Hello,
I know that the NRF_TEMP peripheral is a restricted peripheral and should be accessed with the sd_temp_get function when the soft device is running. Heck I even posted in a thread about that 3 years ago. That said, that piece of knowledge eluded me while I was implementing some temperature compensation code on both an nRF51 and and nRF52. The nRF51 is using soft device v10.0.0 and the nRF52 is using soft device 132 v3.0.0.
In both cases the code is accessing NRF_TEMP->TASKS_START and DATA_READY approximately once per minute. The soft devices are enabled and running either advertising or in a connection. However, there is no hard fault or assert generated in either case counter to what I would have expected. Leading me to ask why these calls are working. Are we just getting "lucky" most of the time and we can expect random failures until we convert to the proper usage of the sd_temp_get function? Or, are there some conditions under which it just works to access the registers directly even though it is a restricted peripheral?
Thanks, John