Usage of Q2687 external interrupt that is muxed with UART1


#1

I am trying to use the externral interrupt INT3 on a Q2687RD (FW 7.51.0). INT3 is multiplexed with the DTR signal of UART1 and with GPIO41. So, it gets tricky.

I first disable UART1 with

adl_atCmdCreate ( "AT+WMFM=0,0,1", FALSE, ( adl_atRspHandler_t ) NULL, NULL );

and then I subscribe to the interrupt. This is the sequence of commands I use for the interrupt subscription:

adl_irqConfig_t Config;
        Config.PriorityLevel = 0;                             // Lowest priority
        Config.Enable = TRUE;                                 // Interrupt handler enabled
        Config.Options = ADL_IRQ_OPTION_PRE_ACKNOWLEDGEMENT;  // Auto-read option set
        // Subscribe to the IRQ service
        extIntIrqHandle = adl_irqSubscribeExt ( cbExtIntIrqHandler, ADL_IRQ_NOTIFY_LOW_LEVEL, &Config );

        /* Set ExtInt signal sensitivity */
        adl_extintConfig_t irq_ExtIntSettings;
        irq_ExtIntSettings.Sensitivity = ADL_EXTINT_SENSITIVITY_FALLING_EDGE;
        irq_ExtIntSettings.Filter = ADL_EXTINT_FILTER_DEBOUNCE_MODE;
        irq_ExtIntSettings.FilterDuration = 1;

        /* Subscribe to start/stop command if all is OK for IRQ subscription */
        if ( OK <= extIntIrqHandle  )
        {
        /* Subscribe to the ExtInt service */
                extIntHandle = adl_extintSubscribe (3, extIntIrqHandle, 0, &irq_ExtIntSettings );
        }

I check the return values extIntIrqHandle and extIntHandle and both are positive. If instead of

extIntHandle = adl_extintSubscribe (3, extIntIrqHandle, 0, &irq_ExtIntSettings );

I use

extIntHandle = adl_extintSubscribe (1, extIntIrqHandle, 0, &irq_ExtIntSettings );

I subscribe to INT1 and this works fine. INT1 is triggered and executed without problems.

Also, if I configure the pin that corresponds to INT3 as GPIO it also works fine. This tells me that there is no problem with the hardware.

To summarize: since INT1 can be used just fine and the only difference between INT1 and INT3 is that INT3 is multiplexed with a signal from UART1 I conclude that UART1 causes the problem somehow. However, I deactivate UART1 before subscription and all return values (extIntIrqHandle and extIntHandle) are positive which means the subscription went through successfully.

I don’t know where to look next. I think I will try to downgrade the FW, but this is a long shot.

Any suggestions will be highly appreciated.

Thanks!


#2

Downgrading to 7.47 didn’t help either.