1 2 Previous Next 17 Replies Latest reply on Feb 4, 2015 9:42 AM by joaquin.lopez.contreras.2

    Implementing an OLED display

    user_279968365

      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.

        • 1. Re: Implementing an OLED display
          user_1377889

          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

          • 2. Re: Implementing an OLED display
            user_279968365

            Sorry...now with the documents.

               

            Joaquin

            • 3. Re: Implementing an OLED display
              user_1377889

              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

              • 4. Re: Implementing an OLED display
                user_279968365

                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.

                • 5. Re: Implementing an OLED display
                  ki.leung

                  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.

                  • 6. Re: Implementing an OLED display
                    user_279968365

                    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.

                    • 7. Re: Implementing an OLED display
                      user_1377889

                      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
                       

                      • 8. Re: Implementing an OLED display
                        user_14586677

                        A discussion here that might help -

                           

                         

                           

                        www.cypress.com/

                           

                         

                           

                        Regards, Dana.

                        • 9. Re: Implementing an OLED display
                          ki.leung
                                  What kinds of issues did you find?   
                          • 10. Re: Implementing an OLED display
                            user_279968365

                            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.

                            • 11. Re: Implementing an OLED display
                              user_1377889

                              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

                              • 12. Re: Implementing an OLED display
                                user_279968365

                                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

                                • 13. Re: Implementing an OLED display
                                  ki.leung

                                  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.

                                  • 14. Re: Implementing an OLED display
                                    joaquin.lopez.contreras.2

                                    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.

                                    1 2 Previous Next