- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello all:
I have an application that actually has a LCD and working without problem. My customer wants to replace the LCD by an OLED display. I attach the datasheet and the application note for the new OLED display.
For the normal LCD (I mean, Hitachi 44780 compatible, 4 bit-interface) I placed on the schematic a Character LCD component and I followed Cypress Application Notes for this type of displays, but for the new OLED I havent found any information or application. As you can read in the documentation, the display use a RS0010 driver instead of Hitachi 44780, and are not fully equivalent
I have several questions:
(1) What component should I use for the OLED display?
(2) is there any Application Note for OLED displays?
(3) what approach should I follow to implement this display on a PSOC5?
Thanks in advance,
Joaquin.
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link to datasheet of the OLED is not attached, please update. There are OLED modules on the market using other interfaces like I2C or SPI which could help you in getting a result faster with lesser PSoC pins. Depends mostly on the assumed count of sold devices.
When interfacing to a completely different display-driver you will have to re-write that piece of code. What kind of development board(s) have you got?
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are many examples in the application notes. You will have to write your own driver, but that's not too much work with all the code snippets. You will have to select your Interface, 8 bit, 4 bit or serial SPI.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, thank you.
Could you tell one or two aplication notes examples? I was looking for them using the word "OLED" and I didnt find any usefull.
Regards,
Joaquin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You don't need to change do anything if you are using OLED module with drivers included.
Most modules are designed to be drop in replacement for HD44780 LCD module.
The module you use seems to be HD44780 compatiable, from software point of view, that should be little change -unless you SPI interface.
For LCD modules, some needs to adjust the bias to get the correct contrast, but OLED doesn't need this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
H L, No, they are not compatible. OLED uses a driver which is light different to 44780. I have an application running with the LCD module, so the first thing I did was to replace the LCD by the OLED module, and I saw that they are not compatible, they dont have the same behaviuor.
Bob, please, could you tell me an Aplication Note using and OLED? It is just to see how they focus the issue.
Thanks in advance,
Joaquín.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When you type "OLED" into the "Keyword Search"-field on top of this page which will give you some results, but I think that this will not help you too much.
The best source for your driver are the examples in the .pdf you attached. All possible configurations are handled there, including the 4-bit and SPI versions.
When you start programming and get stuck, post your complete project and we will have a look at. To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
H L, if I use the same firmware for the OLED that I was using for the LCD (it is a 16x2) , the texts are not shown correctly, they appear shifted, nothing in the second file, etc...it is not readable anymore. The clear command does not work....
Sorry but still I am relatively new to PSOC, so, to use the OLED, I understand that you recommend me:
* Do not use the component LCD_Char on the schematic
* Place individual output ports pins in the schematic and asigned them an appropiate pin of the cypress chip.
* Create a header with the pins definition according to the documentation on the Raystar Oled Application note, for example,
pin 3_5=RD
pin 3_6=R/W
...
and then, in a .c file, create functions to manage of the OLED as for example, Initial_IC(), WriteIns(), WriteData()....
Do you agree?
Thanks in adavance,
Joaquin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is principially the correct way.
You wrote
* Create a header with the pins definition according to the documentation on the Raystar Oled Application note, for example,
pin 3_5=RD
pin 3_6=R/W
This is handled a little bit easier: you may use symbolic pin-names which you reference in your C-file. At a different place in the IDE you assign real pins to your symbolic names. Very helpful when you are in need of changing pins due to layout constrains.
The functions you need to access your pins or group of pins are
PinName_Write(BitPattern);
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your fast reply...do you sleep sometime? je,je..
Once I finish (maybe next year) I will try to upload the files in case some can help.
Happy new year!!!
Joaquin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you search the web, you may find existing C and h files to drive HD44780 type LED. copy those files and modify to your need.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear All,
With some delay, I finish this job.
To work with and OLED you must have an schematic similar to that I have upload (OLED_schematic.png) and then assign the pins in your device as in figure Pin_Assigment.png, for example.
Then you can add to the project the following myLCD_Char.c/.h files and "include" in your main. These files come from the original files that PSOC Creator creates whe you place a LCD_CHAR component , that is, files LCD_Char.c/.h. I copy this original files to myLCD_Char files and add a new function called "void OLED_Char_Init(void)". This function is the only different function to use with an OLED instead a LCD.
So, when yo want use an OLED just initialize the OLED with "OLED_Char_Init()". If you want to work in the same project with an classical LCD use "LCD_Char_Init()". The rest of functions and functionality remain the same. All the LCD C examples of Cypress should work with this in mind.
If you need further details do not hesitate to post here or mail me (joaquin@cerroelectronic.com). Take this at it is, I am not an expert in PSOC Creator neither in LCD/OLED.
Hope this can help you.
Regars,
Joaquin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you post your initialization code from OLED_Char_Init(void)?
I'm also trying to get one of these OLED's working on PSOC, and I'm having the same problems. I've copied the sample initialization from the datasheet, with no luck.
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, no problem.
Please find attached a .zip file with all the data needed, it seems, I forgot last time to upload this file.
The code for OLED_Char_init() can be found in myChar_LCD.c file.
Hope it is usefull for you. If you see any mistake do not hesitate to post it.
Regads,
Joaquin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks!
Yeah, that's almost exactly what I've been trying. I do have it nearly working now. Still some strange issues, but I'll figure them out.
One odd thing that's happening now, is that row 0 and row 1 will reverse. Meaning that setting position(0,0) text will end up in line 2 and position(1,0) text will go to line 1. This seems to happen based on seemingly meaningless differences in the initialization (like changing a delay from 10ms to 100ms in between two write(0x0) calls). It's still better than before, when I couldn't get the row to change at all.
Another problem I'm still having, is I can't get the cursor to appear (solid or blinking). Everything else looks good, that's the only big issue I've noticed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Yes I had more or less the same problems as you describe. I was playing also with delays between commands but I didnt get any conclusion.
One important thing I learnt making test with OLED/LCD is to switch off/on th LCD (power off/on) to test new commands, because bad or malformed previous commands can disturb your actual test.
Regards,
Joaquin.