NHD-12864WDY3 Control
I'm having trouble finding documentation regarding non-grayscale control. In your datasheet, you give examples regarding grayscale control and how its broken down into nibbles. But I can't find anything regarding if grayscale isn't enabled, are the pixels still nibble based or does it change to bit based? A couple of examples I see seem to contradict each other so clarification is needed.
-
Hi adunkin,
Please reference our Arduino sample code written for the NHD-2.7-12864WDY3 display that calls the command for using the default grayscale settings in the initialization sequence and uses a traditional transmission for the data and command routines. The function 'ImageDisplay_12864' should be reviewed demonstrates how each input byte is broken down and transmitted in order to convert the information to an image on-screen.
Arduino Sample Code: https://www.newhavendisplay.com/resources_dataFiles/excode/txt/Arduino/NHD-2.7-12864.txt
For this particular display, 1 nibble will correspond to 1 pixel. Setting custom grayscale settings will not affect the data and command routine transmissions and only affects the pixel intensity.
Best,0 -
I have looked at the example and have 1 last question. It appears the example is parsing the character array and then sending 1 byte per pixel. But this contradicts what is indicated in the SSD1322 datasheet which says each nibble is for a pixel. Also, when I put the device in gray-scale mode and send bytes over parallel 6080 interface, only the most significant nibble appears to change the pixels. So if I send 0x80 10 times, it turns 10 pixels gray, rather than what I would think it would do and set 1 pixel gray, 1 pixel off, for a total of 20 times.
0 -
Hi adunkin,
In a typical design using the SSD1322 controller, an intersection of 1 Segment line and 1 Common line will form a pixel, and 4 Segments are a part of each RAM column address. The Ram column address ranges from 0 - 77 hex, or 0 - 120 decimal. The SSD1322 controller is designed to support a max resolution of 480-segments x 128-commons, and each of the 120 columns of the SSD1322 consists of 4 Segments (120 x 4 = 480). One nibble (4 bits or 1/2 a byte) is responsible for 1 segment or 1 pixel, so 2 sequential bytes will write to 4 segments or 4 pixels of 1 column. The value of the nibble (Range: 0 - F hex) will dictate the grayscale intensity of the pixel.
This can be better visualized on pg. 22 of the SSD1322 datasheet: https://www.newhavendisplay.com/app_notes/SSD1322.pdf
Our NHD-2.7-12864WDY3 display was designed with 2 SEG lines intersecting with 1 COM line to form a pixel (also shown on our drawing), so this changes the equation such that 2 sequential bytes are responsible for 2 pixels instead of 4 pixels.
Our example code is parsing through the hex table data and spreading each byte value over 8 pixels, as this hex data generated is for a 128x64 BMP image with 8 pixels per byte.
I hope this is helpful.0
Please sign in to leave a comment.
Comments
3 comments