ST25R3920B Wake-Up Mode
Hello,
I am using the ST25R3920B NFC reader in wake-up. My goal was the interrupt pin only came to 1 when it detected the presence of a smartphone (or other strong RF fields), however currently the interrupt pin comes to 1 periodically without any RF sources close enough. This is my current configuration:
if (rfalNfcGetState() != RFAL_NFC_STATE_IDLE)
rfalNfcDeactivate(RFAL_NFC_DEACTIVATE_IDLE);
/* Retrieve default discovery parameters */
rfalNfcDefaultDiscParams(&m_discParam);
//m_discParam.notifyCb = m_fncPollNotification;
m_discParam.p2pNfcaPrio = true;
m_discParam.totalDuration = 1000;
m_discParam.techs2Find = flags;
m_discParam.wakeupEnabled = true;
m_discParam.wakeupConfigDefault = false;
/* Wake up mode configurations */
m_discParam.wakeupConfig.period = RFAL_WUM_PERIOD_50MS; // Check every 800 ms
m_discParam.wakeupConfig.swTagDetect = false;
m_discParam.wakeupConfig.irqTout = false;
/* ST25R3920B does not support capacitive sensing */
m_discParam.wakeupConfig.cap.enabled = false;
m_discParam.wakeupConfig.indPha.enabled = false;
m_discParam.wakeupConfig.indAmp.enabled = true;
m_discParam.wakeupConfig.indAmp.autoAvg = true;
m_discParam.wakeupConfig.indAmp.delta = 50;
m_discParam.wakeupConfig.indAmp.aaWeight = RFAL_WUM_AA_WEIGHT_8;
m_discParam.wakeupConfig.indAmp.reference = 200;
m_discParam.wakeupConfig.cap.reference = RFAL_WUM_REFERENCE_AUTO;
m_discParam.wakeupConfig.indPha.reference = RFAL_WUM_REFERENCE_AUTO;
m_pollDuration = duration;
ReturnCode rc = rfalNfcDiscover(&m_discParam);
if (rc != ERR_NONE)
{
platformLog("rfalNfcDiscover, with ret=0x%x\n", (uint8_t) rc);
return -EBUSY;
}
rfalNfcWorker();
int ret = gpio_pin_interrupt_configure(NFC_IRQ_PIN.port, NFC_IRQ_PIN.pin, GPIO_INT_ENABLE);
if(ret != 0)
return ret;
gpio_init_callback(&callbackDataNFC, NFCGpioCallback, BIT(NFC_IRQ_PIN.pin));
ret = gpio_add_callback(NFC_IRQ_PIN.port, &callbackDataNFC);Am I doing something wrong?
BR
