Output mode for GPIO pins 12, 13, 14, 15 not working?
Posted: Thu Aug 10, 2017 7:34 am
I have configured 13 pins on my device to be GPIO_MODE_OUTPUT. I set the pull-up mode to FLOATING. I set the drive capability to MAX.
When I write to the set and clear registers or the data register all pins toggle except for pins 12-14.
I have tried every combination of modes and pull-ups and nothing makes this work. I used the special RTC functions to deregister these pins.
If I change the pull mode to up or down then the physical pin will change states. I even tried a brand new ESP-WROOM32 module because I thought perhaps there is a chance my first one could be defective.
I assume other people have tried all GPIO pins and they do work. My program is so simple, could the RTOS be doing something?
Here is an example of the program I am running to debug this:
When I write to the set and clear registers or the data register all pins toggle except for pins 12-14.
I have tried every combination of modes and pull-ups and nothing makes this work. I used the special RTC functions to deregister these pins.
If I change the pull mode to up or down then the physical pin will change states. I even tried a brand new ESP-WROOM32 module because I thought perhaps there is a chance my first one could be defective.
I assume other people have tried all GPIO pins and they do work. My program is so simple, could the RTOS be doing something?
Here is an example of the program I am running to debug this:
Code: Select all
void app_main(void)
{
nvs_flash_init();
int xx;
for (xx = 0; xx < GPIO_PIN_COUNT; xx++)
{
if (GPIO_IS_VALID_OUTPUT_GPIO(xx) && (xx < 6 || xx > 11))
{
gpio_set_direction(xx, GPIO_MODE_OUTPUT); //Latch
}
}
while(1)
{
GPIO.out_w1ts = 0xFFFFFFFF;
vTaskDelay(50 / portTICK_PERIOD_MS);
GPIO.out_w1tc = 0xFFFFFFFF;
vTaskDelay(50 / portTICK_PERIOD_MS);
}
}
}