cancel
Showing results for 
Search instead for 
Did you mean: 

ST25R3916 Wake-up mode

MPeli.1
Associate III

Hello,

i have been trying to put the st25r3916 in wake-up mode but i detect high power consumptions (around 900 uA). I am using a very basic code just to test current consumtion, i2c communication seems to work, but maybe i am missing some parts.

int main(){
       rfalAnalogConfigInitialize();
 
	if(rfalInitialize() != ERR_NONE)
	{
 
	}
	else
	{
		rfalWakeUpModeStart(NULL);
        }
}

Am i missing some api calls?

Thanks,

Regards

52 REPLIES 52
Travis Palmer
ST Employee

Hello,

1bit corresponds to 13.06mV. 100dec should be equivalent to 1,306V on the RFI pins, 171dec should be 2,23326V. In general these values are good.

Your i2c connection is not entirely clear to me. Below is a schematic of all necessary connections do drive the ST25R3916-DISCO MB1414-B with an external MCU PCB.

All these connections are mandatory for i2c.

0693W000000UNNDQA4.png

Please let me know, if this solves your problem.

BR Travis

MPeli.1
Associate III

Hello,

Yes mine is the same, i just took the i2c and irq, pin 1-2-3 of cn100 connector as for page 26 of the user manual of the discovery board.

0693W000000UNtsQAG.png

Vbus (pin 2 of the image that you linked) was disconnected, but since switch is on 3v3 position it should be ok right?

I tried connecting it to 3v3 but nothing changes.

Thank you very much,

Regards

Travis Palmer
ST Employee

Hi,

At which Voltage is your MCU / MCU_IO running?

Is your MCU GND connected with the PSU GND?

Thanks, Travis

Hello Travis,

MCU is runnin at 3,3, and ground of mb1414-b and our MCU is shared and connected to the psu gnd, communications seems to work fine indeed.

Thank you very much,

Regards

Travis Palmer
ST Employee

HI,

Does this mean, that the problem has been solved? If yes, what solved the problem?

Or does it mean that the communication is fine, but the problem still exists?

Thanks for your answer!

Br Travis

Hello,

no, the problem is not solved, the communication seems to work fine but the problem still exists.

Thank you very much,

Regards

Ulysses HERNIOSUS
ST Employee

Hi,

we are still puzzled why you should experience such issues. It doesn't sound like a software / digital issue, but please provide anyhow:

  • A picture of your setup with the card causing these collisions
  • A logic analyzer trace of I2C and IRQ pin. We have good experiences with Saleae and Digiview but any should work. I2C dumps as you previously sent are harder to follow and don't give as good timing information and no information on IRQ state.

Regards, Ulysses

MPeli.1
Associate III

Hello,

here a brief setup scheme that shows our electrical connections and the trace derived from waveforms software.

For controlling the st25r3916 i am currently using a nrf51822 mcu, while for tag-a slave we are using a nrf52822 mcu with nfc that acts like a card slave.

I also include the source code used, that i derived from the st25r3916 discovery demo sources and rfal documentation.

rfalNfcDiscoverParam nfcParam;
rfalWakeUpConfig wuCfg ;
static rfalDpoEntry dpoSetup[] = {
// new antenna board
{.rfoRes=0, .inc=255, .dec=115},
{.rfoRes=2, .inc=100, .dec=0x00}
 
};
 
int main(){
 
        wuCfg.period           = RFAL_WUM_PERIOD_200MS;
	wuCfg.irqTout          = false;
	wuCfg.indAmp.enabled   = true;
	wuCfg.indPha.enabled   = false;
	wuCfg.cap.enabled      = false;
	wuCfg.indAmp.delta     = 2U;
	wuCfg.indAmp.reference = RFAL_WUM_REFERENCE_AUTO;
	wuCfg.indAmp.autoAvg   = true;
	wuCfg.swTagDetect      = false;
	wuCfg.cap.reference = 0;
 
	nfcParam.compMode = RFAL_COMPLIANCE_MODE_NFC;
	nfcParam.techs2Find = (uint16_t)RFAL_NFC_POLL_TECH_A;
	nfcParam.devLimit = 1;
	nfcParam.maxBR = RFAL_BR_106;
	nfcParam.totalDuration = 4000u;
	nfcParam.wakeupEnabled = false;
	nfcParam.wakeupConfigDefault = false;
	nfcParam.wakeupConfig = wuCfg;
	nfcParam.notifyCb = NULL;
	nfcParam.lmConfigPA.nfcidLen = RFAL_LM_NFCID_LEN_10;
 
 
	if(rfalNfcInitialize() != ERR_NONE)
	{
 
	}
	else
	{
		rfalNfcDiscover(&nfcParam);
		rfalDpoInitialize();
		rfalDpoSetMeasureCallback( rfalChipMeasureAmplitude );
		rfalDpoTableWrite(dpoSetup,sizeof(dpoSetup)/sizeof(rfalDpoEntry));
		rfalDpoSetEnabled(true);
		rfalSetPreTxRxCallback(&rfalPreTransceiveCb);
 
                while (1)										
	       {
                        rfalNfcWorker();
	       }
          }
}

 Thank you very much,

Regards

Here the brief electrical scheme

Ulysses HERNIOSUS
ST Employee

Hi,

unfortunately the trace is not usable. In the beginning it looks ok but later on (when the field got turned on?) it gets unreadable. Please try to see to improve the quality - twist wires, move them away from the antenna, etc.

For your reference I am attaching two screenshots of clearing an interrupt. The first one which looks ok. and a second one where the payloads make no sense at all.

Regards, Ulysses