AnsweredAssumed Answered

JN5179 using DIO12 as input and output handshake line

Question asked by Jurij Huebner on Apr 30, 2017
Latest reply on May 22, 2017 by Castaneda Lopez

Hello all,

 

I am using DIO12  as handshake line. If Host controller trigger DIO12, JN5179 will wake up. If JN5179 trigger DIO12 Host controller, it will wake up. 

DIO12 is configured as PULL DOWN and if trigger it will generate an HIGH SIGNAL for a couple of ms.

 

My issue I am trying to solve is, if JN5179 is trigger the DIO12 it will generate an interrupt by it self, but  interrupts were disabled for this time. How could it be that interrupts are detected if they are disabled.

Here is my source snippet:

 

PUBLIC void APP_setHANDSHAKE(void){
vAHI_DioWakeEnable(0, APP_HANDSHAKE_DIO_MASK);
/* Turn on pull-ups for DIO lines with buttons connected */
DBG_vPrintf(TRACE_APP_BUTTON, "\nAPP Button: Start HANDSHAKE");
/* Disable HANDSHAKE interrupt*/
DBG_vPrintf(TRACE_APP_BUTTON, "\nAPP Button: Disable HANDSHAKE interrupt");
/* Enable HANDSHAKE as output*/
vAHI_DioSetDirection(0, APP_HANDSHAKE_DIO_MASK);
/* Enable HANDSHAKE output = on*/
vAHI_DioSetOutput(APP_HANDSHAKE_DIO_MASK, 0);
/* Set start HANDSHAKE Timer*/
DBG_vPrintf(TRACE_APP_BUTTON, "\nAPP Button: Start Timer");
ZTIMER_eStart(u8TimerHANDSHAKE, ZTIMER_TIME_MSEC(2));
}
PUBLIC void APP_cbTimerHANDSHAKE(void * pvParam) {
/* Enable HANDSHAKE output = 0ff*/
vAHI_DioSetOutput(0, APP_HANDSHAKE_DIO_MASK);
/* Enable HANDSHAKE as input*/
vAHI_DioSetDirection(APP_HANDSHAKE_DIO_MASK, 0);
/* Enable HANDSHAKE interrupt*/
vAHI_DioWakeEnable(APP_HANDSHAKE_DIO_MASK, 0);
DBG_vPrintf(TRACE_APP_BUTTON, "\nAPP Button: Stop HANDSHAKE");
}

Outcomes