cancel
Showing results for 
Search instead for 
Did you mean: 

What is DTB0?

Šatov
Associate II

I was looking at the BLE_Sync sample code, when I stumbled upon something I couldn't find documented.

void DTB_Init(void)
{
  /* Enable the peripheral clock of GPIO Port A */
  RCC->AHBENR |= 1<<3;
   
  /* PA1 tx/rx req*/
  GPIOA->MODER   |= (2<<2);   // Alternate Function Mode
  GPIOA->AFR[0]    |= (7<<4);   // Alternate Function Mode 7
  
  /*Access to DTB0_DIG_ENG through RRM register starting from offest 0x100*/
  RRM->DTB0_DIG_ENG = 0x0D; /*Enabling Blue #0 mode*/
}

What is exactly DTB0?

Thanks!

5 REPLIES 5
AndyR1
Senior

Hello @?atov​ 

I couldn't find any specific documention but looking in RM0479 and directly in SDK sources here what I understood :

The RRM stands for Radio Ressource Management of the MR_BLE and DTBx is to change the Radio FSM directly through a test bus, if you have a look in function like RADIO_StopTone and RADIO_StartTone, there is byte like 0x39 which should correspond to a FSM state

0693W00000JQBroQAH.pngAndy.

Šatov
Associate II

Thanks. RADIO_StartTone and RADIO_StopTone fiddle with DTB5_DIG_ENG register, which is more documented in RM0480. The code snippet I posted plays with DTB0_DIG_ENG, which is not documented. I guess that's a way for the firmware to talk to MR_BLE.

Another thing that I find undocumented, is the alternate function 7 for PA1 that seems to be enabled in line 8.

AndyR1
Senior

I didn't know this RM0480, thanks

AndyR1
Senior

4 I/O operating modes in RM0479

"The AF5 and AF7 configurations are ST internal only (for design, validation or engineering

teams) and should not be proposed to external customers"

Šatov
Associate II

ooops 🙂

That sentence is not in version 2 of RM0479 from July 2021, btw.