zinkwazi / traffic-pcb-sb

1 stars 0 forks source link

ESP32 Strapping pins need well-defined values #5

Closed jdbaptista closed 1 week ago

jdbaptista commented 2 weeks ago

See this discussion and 3 Boot Configurations of the datasheet. I don't know much about this but came across it and will do more research soon.

jdbaptista commented 2 weeks ago

These may configure things that don't matter for our application? The only one we definitely need to enable is U0TXD printing (I think).

jdbaptista commented 1 week ago

Additionally, GPIO6-11 and GPIO16-17 are not recommended for use. See 2 Pins of the datasheet. I'm sure they can be used and we will probably have to but it is good to look more into why this recommendation exists.

Edit: Section 3.2 External Flash & SRAM of the esp32-wroom-32 datasheet states that GPIO6-11 are connected to SPI flash and therefore cannot be used as regular GPIO pins.

Edit: We aren't actually using GPIO6-11 for this very reason; they aren't made available in the wroom-32 package. Rather, they are the SDO/SDI/.../SCK/SCS pins.

jdbaptista commented 1 week ago

Strapping of MTDO (IO15) and GPIO5 don't matter because they only configure the initial timing of the SDIO slave, which is not used in our application and can be changed after booting. MTDO also configures debug logging over U0TXD during boot, which we don't care about.

GPIO0 and GPIO2 are used for programming, which is setup properly right now.

The only pin that is problematic is MTDI (IO12) which controls the voltage to the wroom-32 SPI flash module and needs to be pulled low. I am going to move interrupt lines to the input only GPIO lines and move a few things around to set MTDI and MTDO to NC (ie. high impedance). This will enable debug logging during boot and provide the correct power to the SPI flash module.

jdbaptista commented 1 week ago

Fixed with commit 9996acc.