Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

OMAP-L138 giving a interrupt, but ISR is 0x0000 - bank 6, bit 13 connected to a pushbutton

$
0
0

Hello, I am using the OMAP-L138, and have encountered a problem with the interrupt generated by GPIO bank 6, bit 13.  The input pin R17 is tied to a cap sense push-button.  Often, I will receive an interrupt, but upon inspection of the Interrupt Status Register, I find it at 0x0000.  So, although I have received an interrupt from GPIO bank 6, it reads that no pin caused it.

This behavior does not happen consistently...sometimes, I will receive an interrupt and will find the expected value 0x2000 in the Interrupt Status Register.

Here are the GPIO settings that are in use:

        const int  CAP_EVENTS_BANKSET = 3;          // interrupt is routed to bank 6
        const rv_uint32  CAP_SNS_INT_BIT_MASK = (1 << 13);        // GP6[13], Capsense interrupt: Input

        _GPIO_Regs_ptr->BANKSET[CAP_EVENTS_BANKSET].DIR |= CAP_SNS_INT_BIT_MASK;        //input
        _GPIO_Regs_ptr->BANKSET[CAP_EVENTS_BANKSET].SET_FAL_TRIG |= CAP_SNS_INT_BIT_MASK;
        _GPIO_Regs_ptr->BANKSET[CAP_EVENTS_BANKSET].CLR_RIS_TRIG |= CAP_SNS_INT_BIT_MASK;
        _GPIO_Regs_ptr->BINTEN |= 1 << 6; //bank 6 enabled

I do not set CLR_FAL_TRIG67 or SET_RIS_TRIG67, so they are at power up defaults.

        const rv_uint32 _PINMUX13_VALUE = 0x00088800;
        const rv_uint32 _PINMUX13_MASK  = 0x000FFF00;
        _PINMUX_regs_ptr->PINMUX13 &= ~_PINMUX13_MASK;
        _PINMUX_regs_ptr->PINMUX13 |=  _PINMUX13_VALUE;

Capsense Interrupt input is routed to: PRU0_R30[31]/UHPI_HRDY/PRU1_R30[12]/GP6[13] (R17).
I have verified this on the schematic.

Any suggestions where we should be looking for the problem?


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>