Cumulus LCD Interface
Posted by retromaster on November 1, 2010
I built a user interface daughterboard for Cumulus. It contains a Nokia 6610 LCD screen and a few buttons (I haven’t installed the buttons yet). I decided to give this some priority at this point since it should be quite helpful for debugging.
I chose the Nokia 6610 screen because it’s readily available, cheap, and easy to drive with an SPI interface, with a lot of examples on the net. On the downside, it’s rather small and slow, but I think it’s still quite a bit better than using a character LCD module.
The board contains a LM2660 in voltage-doubler configuration to supply the backlight voltage. It generates 10V from the 5V input from the Cumulus mainboard, and a 120 Ohm series resistor limits the current, with the voltage drop over the backlight being approximately 7V. One interesting quirk is that, the LM2660 datasheet specifies a Schottky diode being required for oscillator startup, but in my case, it seems the diode actually prevented the LM2660 from working. I am not sure what could be the cause of this.
Another issue I had to solve (probably due to my misinterpretation of the LCD pinout) is that connecting the 3.3V pins to the 3.3V supply from the Cumulus mainboard caused the contrast to be completely bogus. Disconnecting the 3.3V supply (leaving only the backlight supply) fixed the issue.
I managed to get both the Epson and Phillips controllers to work. The built-in 18F46K20 SPI module supports only 8-bit transmission. However, the EUSART module can transmit 9 bits in synchronous mode. So, I used the EUSART module. There is one problem, though. The bit order is reversed. This is not a problem for fixed values like commands but care must be taken when transmitting coordinates or color values. It should still perform significantly better than bit banging.