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.
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.
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.
@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".
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
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.