When I enable NFM by #define NEAR_FIELD_MODE_ENABLED, it works as excepted. But when I use the following function, it seems won't work at all.
void rf_nfm_enable(void)
{
near_field_mode = true;
SetWord16(RF_ENABLE_CONFIG13_REG, 0x0030);
}
What's the reason? How can I enable and disable NFM successfully?

Hello Summer,, in SDK3.0.8 there is a new API for enabling and disabling NFM : please see UM-B-015 for details of the API for enabling / disabling NFM.
BR JE_Dialog
The function I posted here is just the one in SDK3.0.8, so I understand how to use the API function. But in fact, it won't work at all, it's still in 0dbm mode, not -20dbm mode. Why?
Hello summer, can you describe your set-up in how you are measuring ? I just looked up our itnernal report on how we test :
We take a standard dev board DUT was wired connected to CBT and TxPower measurements were performed with two different settings:
EXPERT DK with a QFN48 Daughter board and tested with Rhode & Schwarz CBT.
RF cable & attenuator of -6dB for connecting DUT and CBT
We then switched between 0xD030 and 0x0030 in program address 0x50002418 to obesrve near field mode implementation.
We then monitored on 3 channels the output drop of -20dB (approx) according to specification.
Note that you won't see any reduction in power supply current...
BR JE_Dialog
Hi, here is my test procedure
I read the value of register RF_ENABLE_CONFIG13_REG back, and it is configured as excepted successfully, but still won't work.
So, what's wrong with my configuration?
Am I missing something here?
sorry for delay, we have several people out on vacation due to Easter. . We have spotted a possible error with the API and we are just checking that . I hope to have confirmation tomorrow.
BR JE_Dialog
So what's next?
Thank you
Hi, I just had feedback from the team :
The code for has been changed to following: taking the preferred value for normal mode (NFM = False).
void rf_nfm_disable(void)
{
near_field_mode = false;
SetWord16(RF_ENABLE_CONFIG13_REG, PREF_RF_ENABLE_CONFIG13_REG);
}
Old (false) situation as in SDK3.0.8:
void rf_nfm_disable(void)
{
near_field_mode = false;
SetWord16(RF_ENABLE_CONFIG13_REG, 0);
}
The preferred setting is set as follows:
#define PREF_RF_ENABLE_CONFIG13_REG 0xD030
BR JE_Dialog