The last time I worked on the electronics was when I got the switching boost circuit working. The crashes I saw with it is why I did so much code work since then. This week, I wanted to get back into electronics. Since it has been a while I started by reviewing the schematic. First thing I reviewed was the Lithium cell charger circuit. It matches the reference design in the AAT3672 datasheet and it matches the PCB. I should test it before I spin another set of boards. I put a note on the schematic to remind myself to do that.
I then looked at the switched boost circuit. It turns out I don’t need L2, the real problem was in software. I removed L2 from the schematic. The resistor R5 was changed to 47 Ohms. I updated that on the schematic. Next I looked at the USB to Serial Bridge, I have two cuts with Jumpers on the board, I checked them against the schematic. The schematic matches the patch I had made.
Next I compared the patches I made to the SPI RAM against a pinout of the ESP-12F I found online. ESP-12F pins 9 – 14 on the schematic matches the PCB with the modifications I have made. Pin 16 is no longer connected and Pin 18(GPIO0) is connected. I had made this change back when I was testing the SPI RAM. With this change, D4, Q6, R26, and R27 are unnecessary. I removed them from the schematic and tied GPIO0 to U2 Pin1 and disconnected it from U10 Pin 6. I then tied GPIO15 to U10 Pin6 with a net label called A_SEL. I have yet to test IO2 and IO3, Which will require running the RAM in QIO mode. In QIO mode, IO2/IO3 shouldn’t matter because when I read them back out of the RAM will come back out on the same pins they went in.
I have yet to test the level shift chip(U3). I don’t like how hard U3 is to solder so I researched a different part to do the same thing. The new part I found is a TI TXB0108PWR which works very nearly the same as what I already had designed in but comes in a 20 pin TSSOP which is easier to solder. The Pin order is different. The part is only US $1.88 in singles at Digikey. I proceeded to change U3 to the new part on the schematic. The datasheet recommends that OE be held low until both Vcca and Vccb are on. I put a PNP transistor in to pull OE low anytime Vt is not driven. As I dug into the datasheet, I found that this chip would not work for I2C.
So I did a little more research and I found another chip from TI. The TXS0108EPWR works with SPI and I2C. It has the same pinout as the TI TXB0108PWR so adding it to the schematic was really easy, I changed the name in the schematic. This part is US $2.00 on Digikey.
I uploaded the updated hardware design to Github. Click on the hardware link in the right column to go get it.
Have you used level shifters before? Have you decided on a chip only to find out that it was missing one crucial component? How did you fix it?