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!