Hi,
I am using LAUNCHXL-28027 board. SYSCLOCK is 60MHz.
I have three input GPIO for external interrupt.
- GPIO3 --> XINT1 : pulse width 250ns, duration 600us
- GPIO5 --> XINT2 (it uses for ADCINT1): 4MHz, duty 50%
- GPIO4 --> XINT3 : pulse width 250ns, duration 500us
When I run this, XINT3 is not working.
However, if GPIO5 input frequency is lower like 2MHz, then XINT3 is working.
Input GPIO rate is under 2MHz?
Thank you in advance.
- Jae Yang Park -
===
My configuration is:
//GPIO3, XINT1
void gpio3_config(void)
{
// Set GPIO3
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // GPIO3 - general purpose I/O
GpioCtrlRegs.GPADIR.bit.GPIO3 = 0; // 0: input, 1: output
GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 0; // Qualification 00: Synchronize to SYSCLK, 01: 3 Samples, 10: 6 Samples, 11: Asynchronous
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0; // Sampling periods (n=0xFF) = 510 x Tsysclkout = 510 x 16.67ns = 8.5us, n=1, 33.34ns
EDIS;
// GPIO3 is XINT1
EALLOW;
GpioIntRegs.GPIOXINT1SEL.all = 3; // XINT1 is GPIO3
EDIS;
// Configure XINT1
XIntruptRegs.XINT1CR.bit.POLARITY = 0; // 0: falling, 1: rising, 2: falling, 3: both
XIntruptRegs.XINT1CR.bit.ENABLE = 1; // Enable XINT1
}
//GPIO4, XINT3
void gpio4_config(void)
{
// Set GPIO4
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // GPIO4 - general purpose I/O
GpioCtrlRegs.GPADIR.bit.GPIO4 = 0; // 0: input, 1: output
GpioCtrlRegs.GPAQSEL1.bit.GPIO4 = 0; // Qualification 00: Synchronize to SYSCLK, 01: 3 Samples, 10: 6 Samples, 11: Asynchronous
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0; // Sampling periods (n=0xFF) = 510 x Tsysclkout = 510 x 16.67ns = 8.5us
EDIS;
// GPIO4 is XINT3
EALLOW;
GpioIntRegs.GPIOXINT3SEL.all = 4; // XINT3 is GPIO4
EDIS;
// Configure XINT3
XIntruptRegs.XINT3CR.bit.POLARITY = 0; // 0: falling, 1: rising, 2: falling, 3: both
XIntruptRegs.XINT3CR.bit.ENABLE = 1; // Enable XINT3
}
// GPIO5, XINT2
void gpio5_config(void)
{
// Set GPIO5
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; // GPIO5 - general purpose I/O
GpioCtrlRegs.GPADIR.bit.GPIO5 = 0; // 0: input, 1: output
GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0; // Qualification 00: Synchronize to SYSCLK, 01: 3 Samples, 10: 6 Samples, 11: Asynchronous
GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0; // Sampling periods (n=0xFF) = 510 x Tsysclkout = 510 x 16.67ns = 8.5us
EDIS;
// GPIO5 is XINT2
EALLOW;
GpioIntRegs.GPIOXINT2SEL.all = 5; // XINT2 is GPIO5
EDIS;
// Configure XINT2
XIntruptRegs.XINT2CR.bit.POLARITY = 0; // 0: falling, 1: rising, 2: falling, 3: both
XIntruptRegs.XINT2CR.bit.ENABLE = 1; // Enable XINT2
}