Posted by retromaster on February 8, 2011
First of all, the Cumulus project now has a home page :).
I’ve made a couple of important updates to the Cumulus firmware. First, I made sure that support for both Epson and Phillips LCD controllers is in place and working well (Nokia 6610 LCDs come mainly in these two flavors, as is well known now). There are a few relevant differences between the controllers, mostly in initialization of the controller and handling of screen orientation.
I also implemented bootloader support (i.e. SD card firmware update). It proved to be a little trickier than I first thought, mostly due to compiler issues and a misleading example from Microchip. The main issue was that the compiler does not actually load the table pointer for the erase operation unless you actually issue a dummy read operation first. Now it all seems to be working fine. Right now, the bootloader is larger than it needs to be (there is an embedded font I used for printing debugging messages on the LCD) and verification is missing but these are easy to fix and finalize (before a binary firmware release is made).
I’ve also populated one of the CumuluBus boards that I received and I am glad to say that it works fine.
Posted in Projects, Retrocomputing | Tagged: 18F46K20, 6610, Atmos, bootloader, Cumulus, flash, Floppy Emulator, LCD, Oric, PIC18 | Leave a Comment »
Posted by retromaster on November 1, 2010
Cumulus driving the Nokia 6610 LCD
Nokia 6610 LCD Closeup
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.
Posted in Projects, Retrocomputing | Tagged: 18F46K20, 6610, Atmos, Cumulus, Floppy Emulator, LCD, LM2660, Nokia, Oric, PIC18 | Leave a Comment »