Interrupt triggers regardles edge definition on GPIO4/5

FrenkR
Posts: 44
Joined: Thu Dec 04, 2014 9:25 am

Interrupt triggers regardles edge definition on GPIO4/5

Postby FrenkR » Wed May 20, 2015 5:39 am

I have AI-Thinker ESP-07 and 3 GPIOs defined as follows(GPIO4, GPIO5 and GPIO14):

Code: Select all

   // input IN0
   PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
   GPIO_DIS_OUTPUT(4);
   PIN_PULLDWN_DIS(PERIPHS_IO_MUX_GPIO4_U); // disable pullodwn
   PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO4_U); // pull - up pin

   // input IN1
   PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
   GPIO_DIS_OUTPUT(5);
   PIN_PULLDWN_DIS(PERIPHS_IO_MUX_GPIO5_U); // disable pullodwn
   PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO5_U); // pull - up pin

   // input IN2
   PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
   GPIO_DIS_OUTPUT(14);
   PIN_PULLDWN_DIS(PERIPHS_IO_MUX_MTMS_U); // disable pullodwn
   PIN_PULLUP_EN(PERIPHS_IO_MUX_MTMS_U); // pull - up pin

triggering event definition is:

Code: Select all

   gpio_pin_intr_state_set(GPIO_ID_PIN(4), GPIO_PIN_INTR_NEGEDGE);
   gpio_pin_intr_state_set(GPIO_ID_PIN(5), GPIO_PIN_INTR_NEGEDGE);
   gpio_pin_intr_state_set(GPIO_ID_PIN(14), GPIO_PIN_INTR_NEGEDGE);

ESP pins are GPIO 4, 5, and 14. All pins have 10k resistors are connected to VCC as external pull-ups. Optocoupler is PC817C. When signal arrives, optocoupler connects ground with pin (state on GPIO pin is changed from VCC to 0).
For GPIO4 and 5, interrupt is triggered in positive and negative edge(2 interrupts per signal change). GPIO14 works as expected(1 interrupt). I also made second board and behave the same.
Can you check for interrupt routines in SDK for GPIOs 4 and 5 and "GPIO_PIN_INTR_NEGEDGE" definition, please?
Rgds,
Frenk

eriksl
Posts: 159
Joined: Fri May 22, 2015 6:22 pm

Re: Interrupt triggers regardles edge definition on GPIO4/5

Postby eriksl » Sat Aug 01, 2015 2:36 am

Reproduced here. Please fix!

Who is online

Users browsing this forum: No registered users and 70 guests