Go Down

Topic: 2.7 SSD1325 OLED problem (Read 2027 times) previous topic - next topic

liming

Sep 12, 2013, 04:31 am Last Edit: Sep 12, 2013, 07:35 am by liming Reason: 1
Hi All,

I buy this 2.7 OLED with SSD1325 drive IC...
http://www.aliexpress.com/store/product/2-7-inch-white-OLED-module-OLED-display/805369_567293542.html

and I follow the url to match pin with UNO and code with u8glib library.
http://www.dfrobot.com/wiki/index.php/2.7%22_OLED_12864_display_module_SKU:_FIT0328

But it doesn't work and I have no idea to debug.
Does the pin match correct? I am not sure where the SPI pins are on the PCB, I suppose the wiki on dfrobot.com is right.

thanks!

olikraus

One reason could be, that the SPI mode is not enabled. In fact i wonder how this is done. Often there are jumpers or solder pads to enable SPI mode. Maybe you can attach a picture of the back side of the display to verify this.

The SPI pins are shared with the lines for 8-Bit parallel mode. You can find this information in the datasheet of the controller.

Oliver


liming

Hi Oliver,

Here is picture of the back side of the display.

It's datasheet pdf.
http://www.dfrobot.com.cn/download/TW28642270B.pdf

thanks!

liming

#3
Sep 12, 2013, 04:40 pm Last Edit: Sep 12, 2013, 06:05 pm by liming Reason: 1
Do I need to remove R20 to R21 and R18 to R19?

You should probably reread the datasheet. Open page 14 and follow the instruction for SPI.

olikraus

@TheCoolest
In the initial thread it was written that the display is from aliexpress, but the datasheed given is from dfrobot. So i do not think that the datasheet is helpfull in this case.

@liming
Quote
Do I need to remove R20 to R21 and R18 to R19?

Exactly. Setting BS1 and BS2 to zero (that means resoldering both resistors to the 0 position) will put the display into SPI mode. The datasheet of the controller and also the datasheet from dfrobot will tell you where to find the SPI pins.
D0 = CLK
D1 = Data In
D/C = A0

Oliver

liming

#6
Sep 13, 2013, 03:05 pm Last Edit: Sep 13, 2013, 03:28 pm by liming Reason: 1

@TheCoolest
In the initial thread it was written that the display is from aliexpress, but the datasheed given is from dfrobot. So i do not think that the datasheet is helpfull in this case.

@liming
Quote
Do I need to remove R20 to R21 and R18 to R19?

Exactly. Setting BS1 and BS2 to zero (that means resoldering both resistors to the 0 position) will put the display into SPI mode. The datasheet of the controller and also the datasheet from dfrobot will tell you where to find the SPI pins.
D0 = CLK
D1 = Data In
D/C = A0

Oliver


Thanks a lot! OLED displayed "Hello World"!
But another question is that the backlight is dark, should I need to add another power to some pins(V0)? my arduino only supply 5V.
thanks!

olikraus

OLEDs do not have a backlight.

Oliver

liming


OLEDs do not have a backlight.

Oliver


Sorry, my mistake.  I means that the light of font is dark blue. When I power on my uno,  the font is white and bright and then it becomes dark blue. By the way, I use the "hello world" sample code without any modify.
Thanks.

olikraus

Hi

OLEDs require some power. OLEDs of that size can easily draw 100mA and more (up to 400mA). The question is, how do you power your OLED. If the OLED is powered by the 3.3V output of the Arduino, then the power could break down after some (short) time. As far as i remember, the Arduino 3.3V can only provide 50mA. Maybe enough as long as the OLED is black, but insufficient as soon as something is displayed. I suggest to power the OLED by some external source (I often use 2x AA in my projects).

Another option might be, that the init sequence for the OLED is incorrect. The init sequence in u8glib has been written for the NHD OLED, so it might be different for your OLED. But from your description, i assume, that your power source can not provide enough current.

Oliver

liming

Hi Oliver,

Yes, I use the UNO for my OLED power supply, but I use 5V not 3.3V. I also try use 3.3V on UNO as you said, but there is no words appeared.

I try to use 2X AA as you said for external source, the OLED screen flash once(font is white and bright) and then disappear.

I use another power bank(0.5A) and plug a USB FTDI(3.3V and GND pins to OLED) for OLED power supply, the screen is fine. But, if I press reset button on UNO
at this time, the screen will be become no words on OLED.

Does it mean that OLED needs to reset with UNO at the same time? All my testings above are power on UNO first and then power on OLED, if there are words appear, I will press reset button once on UNO.

thanks!


Hi

OLEDs require some power. OLEDs of that size can easily draw 100mA and more (up to 400mA). The question is, how do you power your OLED. If the OLED is powered by the 3.3V output of the Arduino, then the power could break down after some (short) time. As far as i remember, the Arduino 3.3V can only provide 50mA. Maybe enough as long as the OLED is black, but insufficient as soon as something is displayed. I suggest to power the OLED by some external source (I often use 2x AA in my projects).

Another option might be, that the init sequence for the OLED is incorrect. The init sequence in u8glib has been written for the NHD OLED, so it might be different for your OLED. But from your description, i assume, that your power source can not provide enough current.

Oliver

liming

If there are no other solutions, I maybe power on arduino first and then power on OLED. The steps I tested are fine.
wdt_reset() can reset arduino and didn't affect OLED, so I didn't worry about the HW button on arduino.

thanks!

olikraus

You could connect the reset input of the OLED with a digital pin of the Arduino. Add the pin number of that pin to the u8glib constructor. This will allow u8glib to control the reset of the OLED.

Oliver

liming

Hi Oliver,

Thanks for your help first during the past few days.

I try to connect reset pin(16) of the OLED to my UNO's ping 8 and add pin number to u8glib constructor --U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9, 8).
But the situation didn't get better effect.

I have no idea to modify, I will use a 2N7002 to control the voltage to power on UNO first and then power on OLED.

thanks again!


You could connect the reset input of the OLED with a digital pin of the Arduino. Add the pin number of that pin to the u8glib constructor. This will allow u8glib to control the reset of the OLED.

Oliver

olikraus

Indeed, i am also running out of ideas.

:(

Oliver

Go Up