Near Field Mode setting won't work

12 posts / 0 new
Last post
summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
Near Field Mode setting won't work

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?

JE_Dialog
Offline
Last seen:3 weeks 6 days ago
Staff
加入:2013-12-05 14:02
Hello Summer,, in SDK3.0.8

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

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
The function I posted here is

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?

JE_Dialog
Offline
Last seen:3 weeks 6 days ago
Staff
加入:2013-12-05 14:02
OK.. i will need to check

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.

  • 0x50002418 à 0xD030 (Default time)
  • 0x50002418 à 0x0030

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

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
Hi, here is my test procedure

Hi, here is my test procedure

  • First, I add #define NEAR_FIELD_MODE_ENABLED in rf_580.c, and useMaster Control Panelto scan my device.# def后ine NEAR_FIELD_MODE_ENABLED, the power leveldrops about 20 dbm(before: -45dbm, after: -68dbm)
  • Second, I #undef NEAR_FIELD_MODE_ENABLED, add SetWord16(RF_ENABLE_CONFIG13_REG, 0x0030) in app_adv_func().After adding SetWord16(RF_ENABLE_CONFIG13_REG, 0x0030), the power leveldoesn't change at all.(before: -45dbm, after: -45dbm)
summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
I read the value of register

I read the value of register RF_ENABLE_CONFIG13_REG back, and it is configured as excepted successfully, but still won't work.

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
So, what's wrong with my

So, what's wrong with my configuration?

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
Am I missing something here?

Am I missing something here?

JE_Dialog
Offline
Last seen:3 weeks 6 days ago
Staff
加入:2013-12-05 14:02
sorry for delay, we have

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

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
So what's next?

So what's next?

summer20100514
Offline
Last seen:4 years 4 months ago
Guru
加入:2014-12-30 05:01
Thank you

Thank you

JE_Dialog
Offline
Last seen:3 weeks 6 days ago
Staff
加入:2013-12-05 14:02
Hi, I just had feedback from

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