Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 7 months ago.
20x4 LCD with SSD1803 confused?
Hello!
First, thank you for your great work of this library!
I'm trying to use this LCD: http://www.lcd-module.de/fileadmin/eng/pdf/doma/dip203-4e.pdf
It is a 4x20LCD with SSD1803 controller. I connect it via SPI.
When using your test-code with this setup:
.. // SPI Communication SPI spi_lcd(p5, p6, p7); // MOSI, MISO, SCLK .. //Native SPI 3 wire, 24 bits, SSD1803A TextLCD::SSD1803_3V3 TextLCD_SPI_N_3_24 lcd(&spi_lcd, p8, TextLCD::LCD20x4D, NC, TextLCD::SSD1803_3V3); // SPI bus, CS pin, LCDType=LCD20x4, BL=NC, LCDTCtrl=SSD1803 =Ok ..
I get:
When I use TextLCD::LCD20x4 as LCD-Type I get:
(The line-numbers get mixed up!)
Any idea what goes wrong here?
The memory-addresses shown on terminal for TextLCD::LCD20x4D look correct, for TextLCD::LCD20x4 are mixed up also:
TextLCD::LCD20x4 LCD Test. Columns=20, Rows=4 MemAddr(Col=0, Row=0)=0x00 MemAddr(Col=19, Row=0)=0x13 MemAddr(Col=0, Row=1)=0x40 MemAddr(Col=19, Row=1)=0x53 MemAddr(Col=0, Row=2)=0x14 MemAddr(Col=19, Row=2)=0x27 MemAddr(Col=0, Row=3)=0x54 MemAddr(Col=19, Row=3)=0x67
Thanks - Charly
Question relating to:
1 Answer
8 years, 7 months ago.
Hmm, I have just tested the latest version of the lib on the DOGM204N-A using:
TextLCD_SPI_N_3_24 lcd(&spi_lcd, p8, TextLCD::LCD20x4D, NC, TextLCD::SSD1803_3V3);
That looks fine.
The start addressvalues you get for the LCD20x4 are correct: 0x00, 0x40, 0x14, 0x54 You see that lines 2 and 3 just continue from where lines 0 and 1 finish.
The start addressvalues you get for the LCD20x4D should be: 0x00, 0x20, 0x40, 0x60 Is that what you see?
Make sure the lib is updated to the most recent version. I will have a look at the datasheet for your display.
Hi! Lib is up to date. For LCD20x4D I get this addresses:
LCD Test. Columns=20, Rows=4 MemAddr(Col=0, Row=0)=0x00 MemAddr(Col=19, Row=0)=0x13 MemAddr(Col=0, Row=1)=0x20 MemAddr(Col=19, Row=1)=0x33 MemAddr(Col=0, Row=2)=0x40 MemAddr(Col=19, Row=2)=0x53 MemAddr(Col=0, Row=3)=0x60 MemAddr(Col=19, Row=3)=0x73
Which are what the datasheet says they should be. But the display is as shown on the first picture.
Charly
I've just realized that there are more versions of SSD1803!
My display has SSD1803
Yours has SSD1803A
And they have different commands.... :-((
posted by 22 Dec 2015I am indeed suspicious about the controller on your board. The commandtable for Function Set is different between the datasheet in your link and the Solomon SSD1803A datasheet that I have. There is also a difference in the pins between the two datasheets: SSD1803A has D0/SCLK as combined pin, your datasheet has D0/SOD as combined pin. I will do some more digging, but the controller is different. It looks like a KS0078 or a KS0073 (with extended driver) which are 'almost compatible'. The lib doesnt support the KS0078 type for 20x4D, but you may try KS0073 instead.
Try
TextLCD_SPI_N_3_24 lcd(&spi_lcd, p8, TextLCD::LCD20x4D, NC, TextLCD::KS0073);
Hi Karl,
I had the same problem and read the datasheet of the SSD1803 controller and provided a fix for the display initialization. You can try (which worked fine for 20x4 display EA DIP203B): https://developer.mbed.org/users/0x6d61726b/code/TextLCD/
posted by 0x6d61726b 30 Apr 2017