Driving the SmartDisplay, first impressions
After a bit of trial and error and the help of a co-worker I got the NKK SmartDisplay up and running. First of all the chip select pin is an active low and initially I had it tied directly to ground. That resulted in very erratic and random operation. Chip select is now tied to a pin on the pic with a 10k pullup and then set low at the start of the program.
http://www.nkksmartswitch.com/media/pdf/IS01DBFRGB.pdf
To display anything useful you have to use shiftout with MSBFIRST and send the command $40 and then $FF to turn on all three leds for a white background. Next send $41 and $FF all leds at full brightness.
To send data to the lcd it expects $55 and then the full 256 bytes to set every pixel (64x32). When sending display data LSBFIRST must be used. The display is non addressable so any changes need to be made to the array and sending out the entire contents again. Right now that is 32 SHIFTOUT commands with 8 hex values each. The display has its own RAM so it does not need to be written to continuously.
We plan to use the display as an indicator that's only updated when the user makes changes to a pot, almost like a volume indicator. Drawing the letters pixel by pixel isn't that big a deal. I found the article at EDN using an excel sheet to get the hex values.
Tell me if I'm on the right track as far as updating the display. An initial array template is created and written to RAM or the EEPROM at startup. Then the contents are read and sent to the display. Numbers 0-9 will be defined as a group of bytes and be given the corresponding variable name. If an update is needed the hex values for the digit are written to the relevant part of the array in memory and then the entire contents are sent to the display.
The chip I'm using is the 16F876A but I'm not sure where this should be done, in the EEPROM or data RAM? I found the post by Mel about using code space as extra memory but which to actually go with? Any feedback is appreciated.