Trouble with EA DOGS104-A LCD Display Module

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
I am attempting to integrate an EA-DOGS104-A LCD character display, so far I have had no success.
Does anyone have experience with this part?

I am using a PIC18F24k22 MCU, programming in C.
Using SPI to communicate.
The MCU runs from +5, the display has it's own 3.3V regulator.
I am using a resistor divider to do the voltage level translation.

I have been checking every detail I can think of, but the display does nothing.
I would have better luck connecting my MCU to a block of wood.

Thanks!
 

Attachments

Ian Rogers

Joined Dec 12, 2012
1,136
I'm pretty sure SPI on the pic chucks out MSB first so that throws a spanner in!!

In your "build" you'll have to do a swap nibble and reverse the bits... bit 7 will equal bit 0 etc...

How you have to send the sync bits is 0xF8 + RW + RS.. Where RW = 0x4 and RS = 0x2..
 

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
Yes- Microchip SPI does send MSB first, I call a function in "service_spi" that reverses the bit order.

On the scope trace, you can see the 0XF8 which comes out "0X1F" in reverse order.
It all looks right, that's why I am so frustrated.

The initialization commands all begin RS=0 and RW=0, so "0X1F" should be correct.
My command buffer is 16 bits, I use bit 15 as a flag to build either a command, (RS=0) or data word. (RS=1)


Thanks for taking the time to look at this.
 

Ian Rogers

Joined Dec 12, 2012
1,136
Sorry I missed this bit...

Your reverse seems to swap out the nibbles, I take it lookup[] holds 16 nibbles reversed??

I may just try this on the sim to see if the bits fall right!!

I too can't see what's wrong.

BTW... display_ command_buffer().. is this serviced after the Init() as I can't see it!!
 

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
Yes- I have attached the .H file with the bit - reverse lookup table.

The Init routine loads up the buffer array, then the service_command_manager function gets serviced from main

Great to have another pair of eyes on this.
 

Attachments

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
UPDATE
I wrote to the manufacturer for help:

The suggestion was to add a RESET pulse before attempting to send data.
I implemented the RESET, and of course... nothing.

I was very skeptical about the reset idea, inspecting the data sheet for the LCD controller shows it has a POWER ON RESET function block internally. Unless this block doesn't work, an additional reset would not help.

The reset timing I implemented is luxuriously slow: a 5 ms LOW going pulse, followed by 100 ms for it to get it's ducks in a row internally.

I submitted my findings to the manufacturer, let's hope for some new ideas.

Until then, it's a block of wood that glows a soft amber color.
 

Attachments

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
UPDATE #2 (I am an idiot)

After a little back and forth with the manufacturer, they suggested that I send photos of my board, which seemed like a reasonable idea.

The kind gentleman working with me replied, " Thanks for the photos. But I do see an LED backlight only but no display EA DOGS104-N ??"

This whole time I only had the freakin BACK LIGHT module! it is exactly the same form factor and has the same number of pins as the actual display. The back light clips onto the back of the display, so it has holes for all the pins.

I ordered the actual display, and am now feeling pretty hilariously stupid.
 

Thread Starter

Sensacell

Joined Jun 19, 2012
3,784
UPDATE #3

I received the real, actual display module.
Plugged it in and got it working.
One quirk is that it really needs an external RESET pulse to work, it seems the internal POR circuit suggested by the LCD Controller data sheet does not work. This is a little annoying, it eats another IO line to generate the RESET signal.

POR_Circuit.png
 
Top