Electronics > Beginners
Can't get SSD1306 OLED working on custom PCB
Majek Ondrovic:
Hi everyone,
I'm having a lot of trouble with some OLED displays on a custom PCB-- they are the SSD1306 128x64 0.96" variety and I need to use them with I2C and 3.3v. I ordered them off Aliexpress here (perhaps that was my mistake!). They didn't post a data sheet so I decided to copy the Adafruit OLED Schematic and adapt it...Unfortunately I screwed up a few things in translation.
I attached the original schematic which I had made through JLCPCB. I realized that I forgot to connect /RES and /CS, as they appear to be pulled up in the Adafruit schematic. I tried bodging them together with the DC/I2C_SAO pin next to them which had a 10k pull-up, but I don't know if I'm allowed to join these together or if they need individual pull-ups.
I also forgot pull-ups on the I2C bus so I bodged in some 4.7k resistors. Still no luck.
Then I checked some data sheets like this one from buydisplay.com and noticed different values for the capacitors, so I changed out for the new caps and still it did not work. I also attached the schematic with changes that reflect my bodges/fixes. It seems like it could be a power issue, because if I read voltage at the charge pump capacitors I get 2.5v on one side and less voltage on the other side which drains away as I meter it..
What's so frustrating is that the rest of my circuit functions as expected, and it runs these I2C pre-made OLEDs with no issue. I'm pretty lost at this point. Did I get a bad batch of OLEDs? I want to get new PCBs asap but I feel there may still be mistakes in the design :(
Thanks in advance for your help and guidance!!
bson:
According to the datasheet, C1P,C1N,C2P,C2N should be left unconnected.
VCC is the panel driving supply and can't be less than VDD, but yours doesn't seem to be connected to any supply at all?
Iref sources VCC-2.5V internally and the resistor should provide 12.5µA of sink current for 100µA drive current at a contrast value of 255. Apparently this is normal? So the value of the external resistor between GND and the Iref pin should be R=(VCC-2.5)/12.5µ. Conversely, the 390kΩ on the schematic suggests a VCC of 7.375V... does that look right? If VCC were 12V this should be 760kΩ.
Psi:
C1P,C1N,C2P,C2N looks suspiciously like a voltage doubler to run LEDs,
I agree, no power connected to VCC looks wrong.
You need to be sure this is correct.
It's possible the chip has a mode where it internally produces a regulated VCC from another rail. But also possible it needs a VCC and this is why its not working.
bson:
Also, I'm not sure you can (or should) just tie RES# high. The datasheet specifies a power-on sequence:
Power ON sequence:
1. Power ON VDD
2. After VDD become stable, set RES# pin LOW (logic low) for at least 3us (t1) (4) and then HIGH (logic
high).
3. After set RES# pin LOW (logic low), wait for at least 3us (t2). Then Power ON VCC.(1)
4. After VCC become stable, send command AFh for display ON. SEG/COM will be ON after 100ms
(tAF).
MarkF:
Well, I don't get it. The first schematic seems to match the Adafruit product using the SSD1306.
You can compare:
Edit- Sorry. I totally missed your comment of using the Adafruit design.
Navigation
[0] Message Index
[#] Next page
Go to full version