I've thrown everything at the ESP-12F based board to get it to run at 62.5MHz. One of the HATs using my own ESP8266 layout works great with 1-bit SDIO at 62.5MHz. But this ESP-12F based proto doesn't.
At 41.66MHz, the SDIO host goes through the usual negotiation and then kicks the clock into drive. But at 62.5MHz, the SDIO host keeps retrying negotiation and the kernel log fills with "-110 timeout" errors.
But with the exact same settings, the other HAT works fine and comes up with a 62.5MHz clock.
Taking a suggestion from @David Lowe I got rid of the termination resistors. Til now I'd included them at the recommendation of the ESP8266 hardware guide and other SDIO designs I've seen. However the board works just as well without them running at 41.66MHz 1-bit SDIO. Actually the edges look better defined.
Good news though: @jacksonliam 's script to clear the flash's QE bit works properly after getting rid of the resistors.
I then threw a 33uF cap across the 3.3V rail, because that's what we do when we're at a loss. Of course it's not the supply, since SDIO negotiation doesn't present nearly as much dynamic load as WiFi operation. If the supply were an issue, I would have seen problems at the lower speed when transmitting.
Because it was late and I was frustrated, I pried off the lid to get at the flash. Some groundplane was torn up in the process, and I wasn't delicate with removing the flash. Miraculously it still works at the default bus speed, but at 62.5MHz the Pi still won't negotiate.
I have a couple of things left to try, but I'm about to cut my losses and forget about high speed for now.
Here's the carnage:
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Any chance you could tell us which pins on the ESP module (and preferably their RPi counterparts) are needed to put the chip in 1-bit SDIO mode? I'm having issues finding any real documentation for these ESP modules.
Are you sure? yes | no
You're right, my instructions aren't up to date with my current design work. I'll be working on that this week. (edit: instructions updated!)
In general, 1-bit SDIO needs SD_CLK, SD_CMD, SD_D0, and SD_D1.
Are you sure? yes | no
I would consider hot air the only sane thing to remove such a lid. Even a cheap hat air gun is better than destructive work with a knife.
Are you sure? yes | no
I fully agree with you. But in this case it was late, I was desparate, and the module in question is only $2.
Are you sure? yes | no
What is a good way to obtain such a PCB for the ESP module (or one with an ESP chip)?
Are you sure? yes | no
I don't have a reliable pcb design at the moment for the ESP-12 module board, and the chip based board is kind of tedious to build by hand. Hopefully I'll have another rev of the board ready soon that can be ordered from OSHPark.
Are you sure? yes | no
It just occured to me... wouldn't it be easier, in the future in such a situation, to cut the metal tin with a retractable blade knife and open it like a can of sardines? :)
Are you sure? yes | no
That, or using hot air would have been the sane thing to do.
Are you sure? yes | no
But you leave sharp edges! I've removed one by the usual trick of holding it with tweezers and heating it until the board falls off, the flash decided to jump off the board too, two birds... :-D
Are you sure? yes | no