Boot/EN Auto-program transistor circuits

markwj
Posts: 90
Joined: Tue Mar 08, 2016 5:03 am

Boot/EN Auto-program transistor circuits

Postby markwj » Fri Oct 27, 2017 3:20 am

I've been unable to get SDCARD to work reliably, and have narrowed the issue down to the Boot/EN auto-program transistor circuit. My IO0 and IO2 are tied, as per recommendation.

On the original DEVKIT-C (v1, I think), these switches never worked reliably. I got into the habit of holding down the boot button until flash started.

I just got a Geikcreit board (similar to DEVKIT-C) and that works well, including the SD CARD. But, I still get it jammed in 'waiting for download' after flashing (with IO2 and IO0 tied, and a 10K pull-up on IO2). A power on / off unplug cycle resolves that.

From what I can tell, we're on the fourth revision of auto-program transistor circuits.
  • The first DEVKIT C used 1K resistors
  • The second DEVKIT C used 1K resistors
  • The third DEVKIT C uses 12K resistors
  • The ROVER KIT adds a third transistor (to control IO2 independently) and 100K resistors
Geikcreit uses two transistors (EN and IO0, as per DEVKIT C) and 12K resistors.

S8050 transistors look the same on all of these, as does the circuit schematic (except for the ROVER KIT addition of a third transistor).

Anybody know what is going on with this? What was the problem with the first DEVKIT C boards? What is the fix to make those work?

And, most importantly, what is the current recommended way of doing this?

Thanks, Mark.

markwj
Posts: 90
Joined: Tue Mar 08, 2016 5:03 am

Re: Boot/EN Auto-program transistor circuits

Postby markwj » Wed Nov 01, 2017 4:59 am

With a simple breadboard using standard Espressif example code and a Geikcreit development board. Wiring is GPIO14 -> CLK, GPIO15->CMD, CPIO2->D0, GPIO0->GPIO2 link, GND and 3.3V. 10K Pullups on CLK, CMD, D0 and D3. Software is set to 1bit SD mode.

In that case, GPIO0/GPIO2 has 2.567v. Pressing BOOT key brings GPIO0/GPIO2 to 0v, and back to 2.567v when release the button. During SDCARD test, GPIO0/GPIO2 is at around 0.682v.

With monitor connected, if I flash, GPIO0/GPIO2 is 0.323v. Screen says:

Code: Select all

rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
Pressing boot key goes to 0v, then releasing it goes back to 0.323v.

Pressing RESET key, no change. Stuck.

Disconnecting terminal monitor, no change. Stuck.

Reconnecting terminal monitor, no change. Stuck.

Removed link between GPIO0 and GPIO2. Now GPIO0 measures 3.3v and GPIO2 measures 0v.

Reconnection link between GPIO0 and GPIO2. Now GPIO0/GPIO2 measures 3.3v, boot ok, and SDCARD test runs ok.

So, it seems the transistor reset circuitry is not working correctly. Ideas? This is just a standard development board and the standard library example.

Who is online

Users browsing this forum: No registered users and 188 guests