aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gdisp/UC1610/UC1610.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gdisp/UC1610/UC1610.h')
-rw-r--r--drivers/gdisp/UC1610/UC1610.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/drivers/gdisp/UC1610/UC1610.h b/drivers/gdisp/UC1610/UC1610.h
new file mode 100644
index 00000000..f6d3d23d
--- /dev/null
+++ b/drivers/gdisp/UC1610/UC1610.h
@@ -0,0 +1,65 @@
+/*
+ * This file is subject to the terms of the GFX License. If a copy of
+ * the license was not distributed with this file, you can obtain one at:
+ *
+ * http://chibios-gfx.com/license.html
+ */
+
+#ifndef _UC1610_H
+#define _UC1610_H
+
+ // screen dimensions
+ #define UC1610_SCREEN_WIDTH 160
+ #define UC1610_SCREEN_HEIGHT 104
+ #define UC1610_PAGE_HEIGHT 4
+
+ // i2c header addresses
+ #define UC1610_ADDRESS_WC 0x78 // write commands
+ #define UC1610_ADDRESS_RS 0x79 // read satus
+ #define UC1610_ADDRESS_WD 0x7A // write data
+ #define UC1610_ADDRESS_RD 0x7B // read data
+
+ // hardware control commands
+ #define UC1610_SYSTEM_RESET 0xE2
+ #define UC1610_NOP 0xE3 // no operation
+ #define UC1610_SET_TEMP_COMP 0x24 // set temperature compensation, default -0.05%/°C
+ #define UC1610_SET_PANEL_LOADING 0x29 // set panel loading, default 16~21 nF
+ #define UC1610_SET_PUMP_CONTROL 0x2F // default internal Vlcd (8x pump)
+ #define UC1610_SET_LCD_BIAS_RATIO 0xEB // default 11
+ #define UC1610_SET_VBIAS_POT 0x81 // 1 byte (0~255) to follow setting the contrast, default 0x81
+ #define UC1610_SET_LINE_RATE 0xA0 // default 12,1 Klps
+ #define UC1610_SET_DISPLAY_ENABLE 0xAE // + 1 mask / 0 : exit sleep mode / entering sleep mode
+ #define UC1610_SET_LCD_GRAY_SHADE 0xD0 // default 24% between the two gray shade levels
+ #define UC1610_SET_COM_END 0xF1 // set the number of used com electrodes (lines number -1)
+
+ // ram address control
+ #define UC1610_SET_AC 0x88 // set ram addres control
+ #define UC1610_AC_WA_MASK 1 // automatic column/page increment wrap arroud (1 : cycle increment)
+ #define UC1610_AC_AIO_MASK (1 << 1) // auto increment order (0/1 : column/page increment first)
+ #define UC1610_AC_PID_MASK (1 << 2) // page addres auto increment order (0/1 : +1/-1)
+
+ // set cursor ram address
+ #define UC1610_SET_CA_LSB 0x00 // + 4 LSB bits
+ #define UC1610_SET_CA_MSB 0x10 // + 4 MSB bits // MSB + LSB values range : 0~159
+ #define UC1610_SET_PA 0x60 // + 5 bits // values range : 0~26
+
+ // display control commands
+ #define UC1610_SET_FIXED_LINES 0x90 // + 4 bits = 2xFL
+ #define UC1610_SET_SCROLL_LINES_LSB 0x40 // + 4 LSB bits scroll up display by N (7 bits) lines
+ #define UC1610_SET_SCROLL_LINES_MSB 0x50 // + 3 MSB bits
+ #define UC1610_SET_ALL_PIXEL_ON 0xA4 // + 1 mask / 0 : set all pixel on, reverse
+ #define UC1610_SET_INVERSE_DISPLAY 0xA6 // + 1 mask / 0 : inverse all data stored in ram, reverse
+ #define UC1610_SET_MAPPING_CONTROL 0xC0 // control mirorring
+ #define UC1610_SET_MAPPING_CONTROL_LC_MASK 1 //
+ #define UC1610_SET_MAPPING_CONTROL_MX_MASK (1 << 1) //
+ #define UC1610_SET_MAPPING_CONTROL_MY_MASK (1 << 2) //
+
+ // window program mode
+ #define UC1610_SET_WINDOW_PROGRAM_ENABLE 0xF8 // + 1 mask / 0 : enable / disable window programming mode,
+ // reset before changing boundaries
+ #define UC1610_SET_WP_STARTING_CA 0xF4 // 1 byte to follow for column number
+ #define UC1610_SET_WP_ENDING_CA 0xF6 // 1 byte to follow for column number
+ #define UC1610_SET_WP_STARTING_PA 0xF5 // 1 byte to follow for page number
+ #define UC1610_SET_WP_ENDING_PA 0xF7 // 1 byte to follow for page number
+
+#endif /* _SSD1306_H */