13 Replies Latest reply on May 17, 2013 4:04 PM by user_78878863

    Character LCD

    user_256808807
              Can I use a 4x20 LCD with Character LCD on PSoC 5LP? Thank you   
        • 1. Re: Character LCD
          user_78878863
                  Yes.   
          • 2. Re: Character LCD
            user_78878863
                    Long answer: I see no mentioning in the 'Character LCD' component data sheet limiting the number of rows or columns. So you can just give it a go and see whether you can access the rows 2 and 3. If this doesn't work properly, you can always set the cursor address manually by using the LCD_Char_WriteControl() call.   
            • 3. Re: Character LCD
              user_1377889

              One of my customers used a 4x20 char LCD and experienced some strange behaveour concerning the LCD_Position() to tell the device where a line starts. Could be overcome easily.

                 

               

                 

              Bob

              • 4. Re: Character LCD
                ki.leung

                We use it for a 2 * 40 display, just need some change to the libarary. It is doable.

                • 5. Re: Character LCD
                  junichi.hiraoka
                          Why not. Actually I'm using a 4x20 LCD with PSoC5. The routine LCD_Position( row, col ); is working properly.   
                  • 6. Re: Character LCD
                    user_78878863
                            Depending on the actual controller, the displays behave a little bit different when it comes to addressing the additional lines (IIRC the memory location used for them might be different). Its best to look up the datasheet and compare with the library implementation. @Cypress: would it be possible to include that functionality in the official component?   
                    • 7. Re: Character LCD
                      user_14586677
                              Here is generated API, sorry for the layout, Forum SW as usual doing its worst - 176:.\Generated_Source\PSoC5/LCD1.c **** /******************************************************************************* 177:.\Generated_Source\PSoC5/LCD1.c **** * Function Name: LCD1_Position 178:.\Generated_Source\PSoC5/LCD1.c **** ******************************************************************************** 179:.\Generated_Source\PSoC5/LCD1.c **** * 180:.\Generated_Source\PSoC5/LCD1.c **** * Summary: 181:.\Generated_Source\PSoC5/LCD1.c **** * Moves active cursor location to a point specified by the input arguments 182:.\Generated_Source\PSoC5/LCD1.c **** * 183:.\Generated_Source\PSoC5/LCD1.c **** * Parameters: 184:.\Generated_Source\PSoC5/LCD1.c **** * row: Specific row of LCD module to be written 185:.\Generated_Source\PSoC5/LCD1.c **** * column: Column of LCD module to be written 186:.\Generated_Source\PSoC5/LCD1.c **** * 187:.\Generated_Source\PSoC5/LCD1.c **** * Return: 188:.\Generated_Source\PSoC5/LCD1.c **** * None. 189:.\Generated_Source\PSoC5/LCD1.c **** * 190:.\Generated_Source\PSoC5/LCD1.c **** * Note: 191:.\Generated_Source\PSoC5/LCD1.c **** * This only applies for LCD displays which use the 2X40 address mode. 192:.\Generated_Source\PSoC5/LCD1.c **** * This results in Row 2 offset from row one by 0x28. 193:.\Generated_Source\PSoC5/LCD1.c **** * When there are more than 2 rows, each row must be fewer than 20 characters.   
                      • 8. Re: Character LCD
                        user_78878863

                        Actually 20 characters per line should be OK. Depending on the actual controller the 3rd line starts at address 0x14 (which allows 20 characters in the first line) or on 0x20.

                        • 9. Re: Character LCD
                          user_14586677

                          The API code seems clear it will not support 4 X 20 with this comment in

                             

                          code generated -

                             

                           

                             

                          When there are more than 2 rows, each row must be fewer than 20 characters

                             

                           

                             

                          Odd, given the Hitachi/Renesas controller, 44780,  is inherently 80 character device, for which

                             

                          the module is fashioned after,.

                             

                           

                             

                          In PSOC 1 it does support 4 X 20, I use one in a design.

                             

                           

                             

                          Regards, Dana.

                          • 10. Re: Character LCD
                            ki.leung

                            But 4*20 is 80...

                            • 11. Re: Character LCD
                              user_78878863

                              @dana: did you look at this code?

                                 

                              First, the comment says "This only applies for LCD displays which use the 2X40 address mode".

                                 

                              Second, even then it specifies that the offset between the rows is 0x28, so clearly there can be 20 rows with 20 characters each in this space.

                                 

                              Third, the code actually handles 4 rows, and it knows about the starting position for each of the four lines (see the LCD_Char_1_ROW_x_START constants).

                                 

                              So the answer should be: "yes, the LCD_Char component can handle 4x20 displays, but you might need to set the cursor on your own when the memory layout of the LCD module in question is different".

                              • 12. Re: Character LCD
                                user_14586677

                                No, I did not look at API code in depth.

                                   

                                 

                                   

                                The qualifier comes right out of 44780 DS -

                                   

                                 

                                   

                                •  2-line display (N = 1) (Figure 4)

                                   


                                 Case 1: When the number of display characters is less than 40 ×2 lines, the two lines are displayed
                                from the head. Note that the first line end address and the second line start address are not
                                consecutive. For example, when just the HD44780 is used, 8 characters ×2 lines are displayed. See
                                Figure 5.

                                   

                                 

                                   

                                But you are correct, I did misinterpret that qualifier.
                                 

                                   

                                 

                                   

                                Your comment, 20 rows each with 20 chars,  the 44780 standard is 80 chars total

                                   

                                display memory, or am I misinterpreting what you said ?

                                   

                                 

                                   

                                The short answer to original post is if module is 44780 compatible, it should handle

                                   

                                a 4 x 20 display, like it does in the PSOC 1 implementation.

                                   

                                 

                                   

                                Regards, Dana.

                                • 13. Re: Character LCD
                                  user_78878863

                                  Now I miss the edit-button too :) That should have been "4 rows with 20 characters"...