AnsweredAssumed Answered

cr95hf rfid click TagDetect to Ready

Question asked by northwestern39 on Dec 1, 2016
Latest reply on Dec 6, 2016 by northwestern39
hi, i have some questions about cr95hf tag detect mode.question is tag detect mode algorithm. in tag detect mode click board power consumption is near 4mA. 
I want to wake up the host mcu with tag detection. After detecting tag, what should I follow in order to wake up the mcu and read the tag's id? 

How can I just set the interrupt to wake up mcu? 

i use this functions to calibrate and  to enter tag detection mode

void modeTagDetec()
{
    HAL_Delay(10);
  sdata[0]  = 0x0A;
  sdata[1]  = 0x21;
  sdata[2]  = 0x00;
  sdata[3]  = 0x79;
  sdata[4]  = 0x01;
  sdata[5]  = 0x18;
  sdata[6]  = 0x00;
  sdata[7]  = 0x20;
  sdata[8]  = 0x60;
  sdata[9]  = 0x60;
  sdata[10] = dataRef-8;
  sdata[11] = dataRef+8;
  sdata[12] = 0x3F;
  sdata[13] = 0x08;
  writeCmd(Idle, 0x0E);
    readCmd();
     
}
 
void Calibration() {
  HAL_Delay(1000);
  sdata[0] = 0x03;
  sdata[1] = 0xA1;
  sdata[2] = 0x00;
  sdata[3] = 0xF8;
  sdata[4] = 0x01;
  sdata[5] = 0x18;
  sdata[6] = 0x00;
  sdata[7] = 0x20;
  sdata[8] = 0x60;
  sdata[9] = 0x60;
  sdata[10] = 0x00;
  sdata[11] = 0x00;
  sdata[12] = 0x3F;
  sdata[13] = 0x01;
  writeCmd(Idle, 0x0E);
  readCmd();
     
    if(rdata[0]!=0x02) 
    {
         for(j=0; j<18; j++)
        {
            rdata[j] = 0;
             
             
             
        }
        writeCmd(Idle, 0x0E);
        readCmd();
         
    }
     
  sdata[11] = 0xFC;
   
  writeCmd(Idle, 0x0E);
  readCmd();
         
    if(rdata[0]!=0x01) 
    {
         for(j=0; j<18; j++)
        {
                rdata[j] = 0;
            HAL_GPIO_TogglePin(orange_led_GPIO_Port,orange_led_Pin);
            HAL_Delay(100);
            writeCmd(Idle, 0x0E);
            readCmd();
        }
         
    }
 
     
  sdata[11] = 0x7C;
   
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    sdata[11] = sdata[11]-0x40;
    else if (rdata[0]==0x02)
    sdata[11] = sdata[11]+0x40;
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
      rdata[j] = 0;
  }
   
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    sdata[11] = sdata[11]-0x20;
    else if (rdata[0]==0x02)
    sdata[11] = sdata[11]+0x20;
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
     rdata[j] = 0;
  }
  
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    sdata[11] = sdata[11]-0x10;
    else if (rdata[0]==0x02)
    sdata[11] = sdata[11]+0x10;
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
     rdata[j] = 0;
  }
   
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    sdata[11] = sdata[11]-0x08;
    else if (rdata[0]==0x02)
    sdata[11] = sdata[11]+0x08;
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
     rdata[j] = 0;
  }
   
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    sdata[11] = sdata[11]-0x04;
    else if (rdata[0]==0x02)
    sdata[11] = sdata[11]+0x04;
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
     rdata[j] = 0;
  }
  
  writeCmd(Idle, 0x0E);
  readCmd();
    if(rdata[0]==0x01)
    dataRef=sdata[11]-4;
    else if (rdata[0]==0x02)
    dataRef=sdata[11];
    else
    {
        writeCmd(Idle, 0x0E);
        readCmd();
    }
     
 for(j=0; j<18; j++)
    {
     rdata[j] = 0;
  }
}

Outcomes