In TextLCD_I2C_N Class, added void setContrast(unsigned char c) function as temporary. This is for ST7032i non-volume type contrast control.

Dependents:   LPC1114_data_logger RTC_w_COM Frequency_Counter_w_GPS_1PPS CW_Decoder_using_FFT_on_F446 ... more

Fork of TextLCD by Wim Huiskamp

In TextLCD_I2C_N Class, added void setContrast(unsigned char c) function as temporary.

Committer:
kenjiArai
Date:
Tue Aug 04 03:55:44 2020 +0000
Revision:
31:f8e67a681560
Parent:
30:4c57a022a56c
added #include "Stream.h" (need to run on mbed-os6.2.0)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 30:4c57a022a56c 1 /* mbed TextLCD Library, for LCDs based on HD44780 controllers
kenjiArai 30:4c57a022a56c 2 * Copyright (c) 2014, WH
kenjiArai 30:4c57a022a56c 3 * 2014, v01: WH, Extracted from TextLCD.h as of v14
kenjiArai 30:4c57a022a56c 4 * 2014, v02: WH, Added AC780 support, added I2C expander modules, fixed setBacklight() for inverted logic modules. Fixed bug in LCD_SPI_N define
kenjiArai 30:4c57a022a56c 5 * 2014, v03: WH, Added LCD_SPI_N_3_8 define for ST7070
kenjiArai 30:4c57a022a56c 6 * 2015, v04: WH, Added support for alternative fonttables (eg PCF21XX)
kenjiArai 30:4c57a022a56c 7 * 2015, v05: WH, Clean up low-level _writeCommand() and _writeData(), Added support for alt fonttables (eg PCF21XX), Added ST7066_ACM for ACM1602 module, fixed contrast for ST7032
kenjiArai 30:4c57a022a56c 8 * 2015, v06: WH, Performance improvement I2C portexpander
kenjiArai 30:4c57a022a56c 9 * 2015, v07: WH, Fixed Adafruit I2C/SPI portexpander pinmappings, fixed SYDZ Backlight
kenjiArai 30:4c57a022a56c 10 * 2015, v08: WH, Added defines to reduce memory footprint (eg LCD_ICON), added some I2C portexpander defines
kenjiArai 30:4c57a022a56c 11 * 2015, v09: WH, Added defines to reduce memory footprint (LCD_TWO_CTRL, LCD_CONTRAST, LCD_UTF8_FONT),
kenjiArai 30:4c57a022a56c 12 * Added UTF8_2_LCD decode for Cyrilic font (By Andriy Ribalko). Added setFont()
kenjiArai 30:4c57a022a56c 13 *
kenjiArai 30:4c57a022a56c 14 * Permission is hereby granted, free of charge, to any person obtaining a copy
kenjiArai 30:4c57a022a56c 15 * of this software and associated documentation files (the "Software"), to deal
kenjiArai 30:4c57a022a56c 16 * in the Software without restriction, including without limitation the rights
kenjiArai 30:4c57a022a56c 17 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
kenjiArai 30:4c57a022a56c 18 * copies of the Software, and to permit persons to whom the Software is
kenjiArai 30:4c57a022a56c 19 * furnished to do so, subject to the following conditions:
kenjiArai 30:4c57a022a56c 20 *
kenjiArai 30:4c57a022a56c 21 * The above copyright notice and this permission notice shall be included in
kenjiArai 30:4c57a022a56c 22 * all copies or substantial portions of the Software.
kenjiArai 30:4c57a022a56c 23 *
kenjiArai 30:4c57a022a56c 24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
kenjiArai 30:4c57a022a56c 25 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
kenjiArai 30:4c57a022a56c 26 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
kenjiArai 30:4c57a022a56c 27 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
kenjiArai 30:4c57a022a56c 28 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 30:4c57a022a56c 29 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
kenjiArai 30:4c57a022a56c 30 * THE SOFTWARE.
kenjiArai 30:4c57a022a56c 31 */
kenjiArai 30:4c57a022a56c 32 #ifndef MBED_TEXTLCDCONFIG_H
kenjiArai 30:4c57a022a56c 33 #define MBED_TEXTLCDCONFIG_H
kenjiArai 30:4c57a022a56c 34
kenjiArai 30:4c57a022a56c 35 //Select hardware interface options to reduce memory footprint (multiple options allowed)
kenjiArai 30:4c57a022a56c 36 #define LCD_I2C 1 /* I2C Expander PCF8574/MCP23008 */
kenjiArai 30:4c57a022a56c 37 #define LCD_SPI 1 /* SPI Expander SN74595 */
kenjiArai 30:4c57a022a56c 38 #define LCD_I2C_N 1 /* Native I2C bus */
kenjiArai 30:4c57a022a56c 39 #define LCD_SPI_N 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 40 #define LCD_SPI_N_3_8 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 41 #define LCD_SPI_N_3_9 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 42 #define LCD_SPI_N_3_10 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 43 #define LCD_SPI_N_3_16 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 44 #define LCD_SPI_N_3_24 1 /* Native SPI bus */
kenjiArai 30:4c57a022a56c 45
kenjiArai 30:4c57a022a56c 46 //Select options to reduce memory footprint (multiple options allowed)
kenjiArai 30:4c57a022a56c 47 #define LCD_UDC 1 /* Enable predefined UDC example*/
kenjiArai 30:4c57a022a56c 48 #define LCD_PRINTF 1 /* Enable Stream implementation */
kenjiArai 30:4c57a022a56c 49 #define LCD_ICON 1 /* Enable Icon implementation -2.0K codesize*/
kenjiArai 30:4c57a022a56c 50 #define LCD_ORIENT 1 /* Enable Orientation switch implementation -0.9K codesize*/
kenjiArai 30:4c57a022a56c 51 #define LCD_BIGFONT 1 /* Enable Big Font implementation -0.6K codesize */
kenjiArai 30:4c57a022a56c 52 #define LCD_INVERT 1 /* Enable display Invert implementation -0.5K codesize*/
kenjiArai 30:4c57a022a56c 53 #define LCD_POWER 1 /* Enable Power control implementation -0.1K codesize*/
kenjiArai 30:4c57a022a56c 54 #define LCD_BLINK 1 /* Enable UDC and Icon Blink control implementation -0.8K codesize*/
kenjiArai 30:4c57a022a56c 55 #define LCD_CONTRAST 1 /* Enable Contrast control implementation -0.9K codesize*/
kenjiArai 30:4c57a022a56c 56 #define LCD_TWO_CTRL 1 /* Enable LCD40x4 (two controller) implementation -0.1K codesize*/
kenjiArai 30:4c57a022a56c 57 #define LCD_FONTSEL 0 /* Enable runtime font select implementation using setFont -0.9K codesize*/
kenjiArai 30:4c57a022a56c 58
kenjiArai 30:4c57a022a56c 59 //Select option to activate default fonttable or alternatively use conversion for specific controller versions (eg PCF2116C, PCF2119R, SSD1803, US2066)
kenjiArai 30:4c57a022a56c 60 #define LCD_DEF_FONT 1 //Default HD44780 font
kenjiArai 30:4c57a022a56c 61 //#define LCD_C_FONT 1 //PCF21xxC font
kenjiArai 30:4c57a022a56c 62 //#define LCD_R_FONT 1 //PCF21xxR font
kenjiArai 30:4c57a022a56c 63 //#define LCD_UTF8_FONT 1 /* Enable UTF8 Support (eg Cyrillic tables) -0.4K codesize*/
kenjiArai 30:4c57a022a56c 64 //#define LCD_UTF8_CYR_B 1 /* Select specific UTF8 Cyrillic table (SSD1803 ROM_B) */
kenjiArai 30:4c57a022a56c 65
kenjiArai 30:4c57a022a56c 66 //Pin Defines for I2C PCF8574/PCF8574A or MCP23008 and SPI 74595 bus expander interfaces
kenjiArai 30:4c57a022a56c 67 //Different commercially available LCD portexpanders use different wiring conventions.
kenjiArai 30:4c57a022a56c 68 //LCD and serial portexpanders should be wired according to the tables below.
kenjiArai 30:4c57a022a56c 69 //
kenjiArai 30:4c57a022a56c 70 //Select Serial Port Expander Hardware module (one option only)
kenjiArai 30:4c57a022a56c 71 #define DEFAULT 1
kenjiArai 30:4c57a022a56c 72 #define ADAFRUIT 0
kenjiArai 30:4c57a022a56c 73 #define DFROBOT 0
kenjiArai 30:4c57a022a56c 74 #define LCM1602 0
kenjiArai 30:4c57a022a56c 75 #define YWROBOT 0
kenjiArai 30:4c57a022a56c 76 #define GYLCD 0
kenjiArai 30:4c57a022a56c 77 #define MJKDZ 0
kenjiArai 30:4c57a022a56c 78 #define SYDZ 0
kenjiArai 30:4c57a022a56c 79 #define WIDEHK 0
kenjiArai 30:4c57a022a56c 80 #define LCDPLUG 0
kenjiArai 30:4c57a022a56c 81
kenjiArai 30:4c57a022a56c 82 #if (DEFAULT==1)
kenjiArai 30:4c57a022a56c 83 //Definitions for default (WH) mapping between serial port expander pins and LCD controller
kenjiArai 30:4c57a022a56c 84 //This hardware supports the I2C bus expander (PCF8574/PCF8574A or MCP23008) and SPI bus expander (74595) interfaces
kenjiArai 30:4c57a022a56c 85 //See https://mbed.org/cookbook/Text-LCD-Enhanced
kenjiArai 30:4c57a022a56c 86 //
kenjiArai 30:4c57a022a56c 87 //Note: LCD RW pin must be connected to GND
kenjiArai 30:4c57a022a56c 88 // E2 is used for LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 89 // BL may be used to control backlight
kenjiArai 30:4c57a022a56c 90
kenjiArai 30:4c57a022a56c 91 //I2C bus expander (PCF8574/PCF8574A or MCP23008) interface
kenjiArai 30:4c57a022a56c 92 #define LCD_BUS_I2C_D4 (1 << 0)
kenjiArai 30:4c57a022a56c 93 #define LCD_BUS_I2C_D5 (1 << 1)
kenjiArai 30:4c57a022a56c 94 #define LCD_BUS_I2C_D6 (1 << 2)
kenjiArai 30:4c57a022a56c 95 #define LCD_BUS_I2C_D7 (1 << 3)
kenjiArai 30:4c57a022a56c 96 #define LCD_BUS_I2C_RS (1 << 4)
kenjiArai 30:4c57a022a56c 97 #define LCD_BUS_I2C_E (1 << 5)
kenjiArai 30:4c57a022a56c 98 #define LCD_BUS_I2C_E2 (1 << 6)
kenjiArai 30:4c57a022a56c 99 #define LCD_BUS_I2C_BL (1 << 7)
kenjiArai 30:4c57a022a56c 100
kenjiArai 30:4c57a022a56c 101 #define LCD_BUS_I2C_RW (1 << 6)
kenjiArai 30:4c57a022a56c 102
kenjiArai 30:4c57a022a56c 103 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 104 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 105 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 106 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 107 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 108 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 109 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 110 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 111 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 112
kenjiArai 30:4c57a022a56c 113 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 114
kenjiArai 30:4c57a022a56c 115 //Select I2C Portexpander type (one option only)
kenjiArai 30:4c57a022a56c 116 #define PCF8574 1
kenjiArai 30:4c57a022a56c 117 #define MCP23008 0
kenjiArai 30:4c57a022a56c 118
kenjiArai 30:4c57a022a56c 119 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 120 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 121 #endif
kenjiArai 30:4c57a022a56c 122
kenjiArai 30:4c57a022a56c 123 #if (ADAFRUIT==1)
kenjiArai 30:4c57a022a56c 124 //Definitions for Adafruit i2cspilcdbackpack mapping between serial port expander pins and LCD controller
kenjiArai 30:4c57a022a56c 125 //This hardware supports both an I2C expander (MCP23008) and an SPI expander (74595) selectable by a jumper.
kenjiArai 30:4c57a022a56c 126 //Slaveaddress may be set by solderbridges (default 0x40). SDA/SCL has pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 127 //See http://www.ladyada.net/products/i2cspilcdbackpack
kenjiArai 30:4c57a022a56c 128 //
kenjiArai 30:4c57a022a56c 129 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 130 // E2 is not available on this hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 131 // BL is used to control backlight
kenjiArai 30:4c57a022a56c 132 //Note: The pinmappings are different for the MCP23008 and the 74595!
kenjiArai 30:4c57a022a56c 133
kenjiArai 30:4c57a022a56c 134 //I2C bus expander (MCP23008) interface
kenjiArai 30:4c57a022a56c 135 #define LCD_BUS_I2C_0 (1 << 0)
kenjiArai 30:4c57a022a56c 136 #define LCD_BUS_I2C_RS (1 << 1)
kenjiArai 30:4c57a022a56c 137 #define LCD_BUS_I2C_E (1 << 2)
kenjiArai 30:4c57a022a56c 138 #define LCD_BUS_I2C_D4 (1 << 3)
kenjiArai 30:4c57a022a56c 139 #define LCD_BUS_I2C_D5 (1 << 4)
kenjiArai 30:4c57a022a56c 140 #define LCD_BUS_I2C_D6 (1 << 5)
kenjiArai 30:4c57a022a56c 141 #define LCD_BUS_I2C_D7 (1 << 6)
kenjiArai 30:4c57a022a56c 142 #define LCD_BUS_I2C_BL (1 << 7)
kenjiArai 30:4c57a022a56c 143
kenjiArai 30:4c57a022a56c 144 #define LCD_BUS_I2C_E2 (1 << 0)
kenjiArai 30:4c57a022a56c 145 #define LCD_BUS_I2C_RW (1 << 0)
kenjiArai 30:4c57a022a56c 146
kenjiArai 30:4c57a022a56c 147 //SPI bus expander (74595) interface
kenjiArai 30:4c57a022a56c 148 #define LCD_BUS_SPI_0 (1 << 0)
kenjiArai 30:4c57a022a56c 149 #define LCD_BUS_SPI_RS (1 << 1)
kenjiArai 30:4c57a022a56c 150 #define LCD_BUS_SPI_E (1 << 2)
kenjiArai 30:4c57a022a56c 151 #define LCD_BUS_SPI_D7 (1 << 3)
kenjiArai 30:4c57a022a56c 152 #define LCD_BUS_SPI_D6 (1 << 4)
kenjiArai 30:4c57a022a56c 153 #define LCD_BUS_SPI_D5 (1 << 5)
kenjiArai 30:4c57a022a56c 154 #define LCD_BUS_SPI_D4 (1 << 6)
kenjiArai 30:4c57a022a56c 155 #define LCD_BUS_SPI_BL (1 << 7)
kenjiArai 30:4c57a022a56c 156
kenjiArai 30:4c57a022a56c 157 #define LCD_BUS_SPI_E2 (1 << 0)
kenjiArai 30:4c57a022a56c 158 #define LCD_BUS_SPI_RW (1 << 0)
kenjiArai 30:4c57a022a56c 159
kenjiArai 30:4c57a022a56c 160 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 161 #define PCF8574 0
kenjiArai 30:4c57a022a56c 162 #define MCP23008 1
kenjiArai 30:4c57a022a56c 163
kenjiArai 30:4c57a022a56c 164 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 165 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 166 #endif
kenjiArai 30:4c57a022a56c 167
kenjiArai 30:4c57a022a56c 168 #if (DFROBOT==1)
kenjiArai 30:4c57a022a56c 169 //Definitions for DFROBOT LCD2004 Module mapping between serial port expander pins and LCD controller
kenjiArai 30:4c57a022a56c 170 //This hardware uses PCF8574 and is different from earlier/different Arduino I2C LCD displays
kenjiArai 30:4c57a022a56c 171 //Slaveaddress hardwired to 0x4E. SDA/SCL has pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 172 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
kenjiArai 30:4c57a022a56c 173 //
kenjiArai 30:4c57a022a56c 174 //Definitions for DFROBOT V1.1
kenjiArai 30:4c57a022a56c 175 //This hardware uses PCF8574. Slaveaddress may be set by jumpers (default 0x40).
kenjiArai 30:4c57a022a56c 176 //SDA/SCL has pullup Resistors onboard and features a voltage level converter 3V3 <-> 5V.
kenjiArai 30:4c57a022a56c 177 //See http://www.dfrobot.com/index.php?route=product/product&product_id=135
kenjiArai 30:4c57a022a56c 178 //
kenjiArai 30:4c57a022a56c 179 //
kenjiArai 30:4c57a022a56c 180 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 181 // E2 is not available on default Arduino hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 182 // BL is used to control backlight
kenjiArai 30:4c57a022a56c 183
kenjiArai 30:4c57a022a56c 184 //I2C bus expander PCF8574 interface
kenjiArai 30:4c57a022a56c 185 #define LCD_BUS_I2C_RS (1 << 0)
kenjiArai 30:4c57a022a56c 186 #define LCD_BUS_I2C_RW (1 << 1)
kenjiArai 30:4c57a022a56c 187 #define LCD_BUS_I2C_E (1 << 2)
kenjiArai 30:4c57a022a56c 188 #define LCD_BUS_I2C_BL (1 << 3)
kenjiArai 30:4c57a022a56c 189 #define LCD_BUS_I2C_D4 (1 << 4)
kenjiArai 30:4c57a022a56c 190 #define LCD_BUS_I2C_D5 (1 << 5)
kenjiArai 30:4c57a022a56c 191 #define LCD_BUS_I2C_D6 (1 << 6)
kenjiArai 30:4c57a022a56c 192 #define LCD_BUS_I2C_D7 (1 << 7)
kenjiArai 30:4c57a022a56c 193
kenjiArai 30:4c57a022a56c 194 #define LCD_BUS_I2C_E2 (1 << 1)
kenjiArai 30:4c57a022a56c 195
kenjiArai 30:4c57a022a56c 196 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 197 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 198 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 199 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 200 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 201 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 202 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 203 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 204 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 205
kenjiArai 30:4c57a022a56c 206 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 207
kenjiArai 30:4c57a022a56c 208
kenjiArai 30:4c57a022a56c 209 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 210 #define PCF8574 1
kenjiArai 30:4c57a022a56c 211 #define MCP23008 0
kenjiArai 30:4c57a022a56c 212
kenjiArai 30:4c57a022a56c 213 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 214 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 215 #endif
kenjiArai 30:4c57a022a56c 216
kenjiArai 30:4c57a022a56c 217 #if ((YWROBOT==1) || (LCM1602==1))
kenjiArai 30:4c57a022a56c 218 //Definitions for YWROBOT LCM1602 V1 Module mapping between serial port expander pins and LCD controller.
kenjiArai 30:4c57a022a56c 219 //Very similar to DFROBOT. Also marked as 'Funduino'. This hardware uses PCF8574.
kenjiArai 30:4c57a022a56c 220 //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has no pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 221 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
kenjiArai 30:4c57a022a56c 222 //
kenjiArai 30:4c57a022a56c 223 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 224 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 225 // BL is used to control backlight.
kenjiArai 30:4c57a022a56c 226
kenjiArai 30:4c57a022a56c 227 //I2C bus expander PCF8574 interface
kenjiArai 30:4c57a022a56c 228 #define LCD_BUS_I2C_RS (1 << 0)
kenjiArai 30:4c57a022a56c 229 #define LCD_BUS_I2C_RW (1 << 1)
kenjiArai 30:4c57a022a56c 230 #define LCD_BUS_I2C_E (1 << 2)
kenjiArai 30:4c57a022a56c 231 #define LCD_BUS_I2C_BL (1 << 3)
kenjiArai 30:4c57a022a56c 232 #define LCD_BUS_I2C_D4 (1 << 4)
kenjiArai 30:4c57a022a56c 233 #define LCD_BUS_I2C_D5 (1 << 5)
kenjiArai 30:4c57a022a56c 234 #define LCD_BUS_I2C_D6 (1 << 6)
kenjiArai 30:4c57a022a56c 235 #define LCD_BUS_I2C_D7 (1 << 7)
kenjiArai 30:4c57a022a56c 236
kenjiArai 30:4c57a022a56c 237 #define LCD_BUS_I2C_E2 (1 << 1)
kenjiArai 30:4c57a022a56c 238
kenjiArai 30:4c57a022a56c 239 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 240 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 241 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 242 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 243 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 244 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 245 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 246 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 247 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 248
kenjiArai 30:4c57a022a56c 249 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 250
kenjiArai 30:4c57a022a56c 251 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 252 #define PCF8574 1
kenjiArai 30:4c57a022a56c 253 #define MCP23008 0
kenjiArai 30:4c57a022a56c 254
kenjiArai 30:4c57a022a56c 255 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 256 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 257 #endif
kenjiArai 30:4c57a022a56c 258
kenjiArai 30:4c57a022a56c 259 #if ((GYLCD==1) || (MJKDZ==1))
kenjiArai 30:4c57a022a56c 260 //Definitions for Arduino-IIC-LCD GY-LCD-V1, for GY-IICLCD and for MJKDZ Module mapping between serial port expander pins and LCD controller.
kenjiArai 30:4c57a022a56c 261 //Very similar to DFROBOT. This hardware uses PCF8574.
kenjiArai 30:4c57a022a56c 262 //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 263 //See http://arduino-info.wikispaces.com/LCD-Blue-I2C
kenjiArai 30:4c57a022a56c 264 //
kenjiArai 30:4c57a022a56c 265 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 266 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 267 // BL is used to control backlight, reverse logic: Low turns on Backlight. This is handled in setBacklight()
kenjiArai 30:4c57a022a56c 268
kenjiArai 30:4c57a022a56c 269 //I2C bus expander PCF8574 interface
kenjiArai 30:4c57a022a56c 270 #define LCD_BUS_I2C_D4 (1 << 0)
kenjiArai 30:4c57a022a56c 271 #define LCD_BUS_I2C_D5 (1 << 1)
kenjiArai 30:4c57a022a56c 272 #define LCD_BUS_I2C_D6 (1 << 2)
kenjiArai 30:4c57a022a56c 273 #define LCD_BUS_I2C_D7 (1 << 3)
kenjiArai 30:4c57a022a56c 274 #define LCD_BUS_I2C_E (1 << 4)
kenjiArai 30:4c57a022a56c 275 #define LCD_BUS_I2C_RW (1 << 5)
kenjiArai 30:4c57a022a56c 276 #define LCD_BUS_I2C_RS (1 << 6)
kenjiArai 30:4c57a022a56c 277 #define LCD_BUS_I2C_BL (1 << 7)
kenjiArai 30:4c57a022a56c 278
kenjiArai 30:4c57a022a56c 279 #define LCD_BUS_I2C_E2 (1 << 5)
kenjiArai 30:4c57a022a56c 280
kenjiArai 30:4c57a022a56c 281 //SPI bus expander (74595) interface
kenjiArai 30:4c57a022a56c 282 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 283 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 284 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 285 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 286 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 287 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 288 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 289 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 290
kenjiArai 30:4c57a022a56c 291 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 292
kenjiArai 30:4c57a022a56c 293 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 294 #define PCF8574 1
kenjiArai 30:4c57a022a56c 295 #define MCP23008 0
kenjiArai 30:4c57a022a56c 296
kenjiArai 30:4c57a022a56c 297 //Force Inverted Backlight control
kenjiArai 30:4c57a022a56c 298 #define BACKLIGHT_INV 1
kenjiArai 30:4c57a022a56c 299 #endif
kenjiArai 30:4c57a022a56c 300
kenjiArai 30:4c57a022a56c 301 #if (SYDZ==1)
kenjiArai 30:4c57a022a56c 302 //Definitions for SYDZ Module mapping between serial port expander pins and LCD controller.
kenjiArai 30:4c57a022a56c 303 //Very similar to DFROBOT. This hardware uses PCF8574A.
kenjiArai 30:4c57a022a56c 304 //Slaveaddress may be set by switches (default 0x70). SDA/SCL has pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 305 //See ebay
kenjiArai 30:4c57a022a56c 306 //
kenjiArai 30:4c57a022a56c 307 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 308 // E2 is not available on default hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 309 // BL is used to control backlight
kenjiArai 30:4c57a022a56c 310
kenjiArai 30:4c57a022a56c 311 //I2C bus expander PCF8574A interface
kenjiArai 30:4c57a022a56c 312 #define LCD_BUS_I2C_RS (1 << 0)
kenjiArai 30:4c57a022a56c 313 #define LCD_BUS_I2C_RW (1 << 1)
kenjiArai 30:4c57a022a56c 314 #define LCD_BUS_I2C_E (1 << 2)
kenjiArai 30:4c57a022a56c 315 #define LCD_BUS_I2C_BL (1 << 3)
kenjiArai 30:4c57a022a56c 316 #define LCD_BUS_I2C_D4 (1 << 4)
kenjiArai 30:4c57a022a56c 317 #define LCD_BUS_I2C_D5 (1 << 5)
kenjiArai 30:4c57a022a56c 318 #define LCD_BUS_I2C_D6 (1 << 6)
kenjiArai 30:4c57a022a56c 319 #define LCD_BUS_I2C_D7 (1 << 7)
kenjiArai 30:4c57a022a56c 320
kenjiArai 30:4c57a022a56c 321 #define LCD_BUS_I2C_E2 (1 << 1)
kenjiArai 30:4c57a022a56c 322
kenjiArai 30:4c57a022a56c 323 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 324 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 325 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 326 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 327 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 328 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 329 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 330 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 331 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 332
kenjiArai 30:4c57a022a56c 333 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 334
kenjiArai 30:4c57a022a56c 335 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 336 #define PCF8574 1
kenjiArai 30:4c57a022a56c 337 #define MCP23008 0
kenjiArai 30:4c57a022a56c 338
kenjiArai 30:4c57a022a56c 339 //Force Inverted Backlight control
kenjiArai 30:4c57a022a56c 340 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 341 #endif
kenjiArai 30:4c57a022a56c 342
kenjiArai 30:4c57a022a56c 343 #if (WIDEHK==1)
kenjiArai 30:4c57a022a56c 344 //Definitions for WIDE.HK I2C backpack mapping between serial port expander pins and LCD controller
kenjiArai 30:4c57a022a56c 345 //This hardware uses an MCP23008 I2C expander.
kenjiArai 30:4c57a022a56c 346 //Slaveaddress is hardcoded at 0x4E. SDA/SCL has pullup Resistors onboard (3k3).
kenjiArai 30:4c57a022a56c 347 //See http://www.wide.hk
kenjiArai 30:4c57a022a56c 348 //
kenjiArai 30:4c57a022a56c 349 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 350 // E2 is not available on this hardware and so it does not support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 351 // BL is used to control backlight
kenjiArai 30:4c57a022a56c 352 //
kenjiArai 30:4c57a022a56c 353
kenjiArai 30:4c57a022a56c 354 //I2C bus expander (MCP23008) interface
kenjiArai 30:4c57a022a56c 355 #define LCD_BUS_I2C_D4 (1 << 0)
kenjiArai 30:4c57a022a56c 356 #define LCD_BUS_I2C_D5 (1 << 1)
kenjiArai 30:4c57a022a56c 357 #define LCD_BUS_I2C_D6 (1 << 2)
kenjiArai 30:4c57a022a56c 358 #define LCD_BUS_I2C_D7 (1 << 3)
kenjiArai 30:4c57a022a56c 359 #define LCD_BUS_I2C_RS (1 << 4)
kenjiArai 30:4c57a022a56c 360 #define LCD_BUS_I2C_RW (1 << 5)
kenjiArai 30:4c57a022a56c 361 #define LCD_BUS_I2C_BL (1 << 6)
kenjiArai 30:4c57a022a56c 362 #define LCD_BUS_I2C_E (1 << 7)
kenjiArai 30:4c57a022a56c 363
kenjiArai 30:4c57a022a56c 364 #define LCD_BUS_I2C_E2 (1 << 5)
kenjiArai 30:4c57a022a56c 365
kenjiArai 30:4c57a022a56c 366 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 367 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 368 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 369 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 370 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 371 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 372 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 373 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 374 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 375
kenjiArai 30:4c57a022a56c 376 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 377
kenjiArai 30:4c57a022a56c 378 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 379 #define PCF8574 0
kenjiArai 30:4c57a022a56c 380 #define MCP23008 1
kenjiArai 30:4c57a022a56c 381
kenjiArai 30:4c57a022a56c 382 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 383 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 384 #endif
kenjiArai 30:4c57a022a56c 385
kenjiArai 30:4c57a022a56c 386 #if (LCDPLUG==1)
kenjiArai 30:4c57a022a56c 387 //Definitions for Jeelabs LCD_Plug I2C backpack mapping between serial port expander pins and LCD controller
kenjiArai 30:4c57a022a56c 388 //This hardware uses an MCP23008 I2C expander.
kenjiArai 30:4c57a022a56c 389 //Slaveaddress is hardcoded at 0x48. SDA/SCL has no pullup Resistors onboard.
kenjiArai 30:4c57a022a56c 390 //See http://jeelabs.net/projects/hardware/wiki/lcd_plug
kenjiArai 30:4c57a022a56c 391 //
kenjiArai 30:4c57a022a56c 392 //Note: LCD RW pin must be kept LOW
kenjiArai 30:4c57a022a56c 393 // E2 is available on a plug and so it does support LCD40x4 (second controller)
kenjiArai 30:4c57a022a56c 394 // BL is used to control backlight
kenjiArai 30:4c57a022a56c 395 //
kenjiArai 30:4c57a022a56c 396
kenjiArai 30:4c57a022a56c 397 //I2C bus expander (MCP23008) interface
kenjiArai 30:4c57a022a56c 398 #define LCD_BUS_I2C_D4 (1 << 0)
kenjiArai 30:4c57a022a56c 399 #define LCD_BUS_I2C_D5 (1 << 1)
kenjiArai 30:4c57a022a56c 400 #define LCD_BUS_I2C_D6 (1 << 2)
kenjiArai 30:4c57a022a56c 401 #define LCD_BUS_I2C_D7 (1 << 3)
kenjiArai 30:4c57a022a56c 402 #define LCD_BUS_I2C_RS (1 << 4)
kenjiArai 30:4c57a022a56c 403 #define LCD_BUS_I2C_E2 (1 << 5)
kenjiArai 30:4c57a022a56c 404 #define LCD_BUS_I2C_E (1 << 6)
kenjiArai 30:4c57a022a56c 405 #define LCD_BUS_I2C_BL (1 << 7)
kenjiArai 30:4c57a022a56c 406
kenjiArai 30:4c57a022a56c 407 #define LCD_BUS_I2C_RW (1 << 5)
kenjiArai 30:4c57a022a56c 408
kenjiArai 30:4c57a022a56c 409 //SPI bus expander (74595) interface, same as I2C
kenjiArai 30:4c57a022a56c 410 #define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4
kenjiArai 30:4c57a022a56c 411 #define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5
kenjiArai 30:4c57a022a56c 412 #define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6
kenjiArai 30:4c57a022a56c 413 #define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7
kenjiArai 30:4c57a022a56c 414 #define LCD_BUS_SPI_RS LCD_BUS_I2C_RS
kenjiArai 30:4c57a022a56c 415 #define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2
kenjiArai 30:4c57a022a56c 416 #define LCD_BUS_SPI_E LCD_BUS_I2C_E
kenjiArai 30:4c57a022a56c 417 #define LCD_BUS_SPI_BL LCD_BUS_I2C_BL
kenjiArai 30:4c57a022a56c 418
kenjiArai 30:4c57a022a56c 419 #define LCD_BUS_SPI_RW LCD_BUS_I2C_RW
kenjiArai 30:4c57a022a56c 420
kenjiArai 30:4c57a022a56c 421 //Force I2C portexpander type
kenjiArai 30:4c57a022a56c 422 #define PCF8574 0
kenjiArai 30:4c57a022a56c 423 #define MCP23008 1
kenjiArai 30:4c57a022a56c 424
kenjiArai 30:4c57a022a56c 425 //Inverted Backlight control
kenjiArai 30:4c57a022a56c 426 #define BACKLIGHT_INV 0
kenjiArai 30:4c57a022a56c 427 #endif
kenjiArai 30:4c57a022a56c 428
kenjiArai 30:4c57a022a56c 429
kenjiArai 30:4c57a022a56c 430 //Bitpattern Defines for I2C PCF8574/PCF8574A, MCP23008 and SPI 74595 Bus expanders
kenjiArai 30:4c57a022a56c 431 //Don't change!
kenjiArai 30:4c57a022a56c 432 #define LCD_BUS_I2C_MSK (LCD_BUS_I2C_D4 | LCD_BUS_I2C_D5 | LCD_BUS_I2C_D6 | LCD_BUS_I2C_D7)
kenjiArai 30:4c57a022a56c 433 #if (BACKLIGHT_INV == 1)
kenjiArai 30:4c57a022a56c 434 #define LCD_BUS_I2C_DEF (0x00 | LCD_BUS_I2C_BL)
kenjiArai 30:4c57a022a56c 435 #else
kenjiArai 30:4c57a022a56c 436 #define LCD_BUS_I2C_DEF 0x00
kenjiArai 30:4c57a022a56c 437 #endif
kenjiArai 30:4c57a022a56c 438
kenjiArai 30:4c57a022a56c 439 #define LCD_BUS_SPI_MSK (LCD_BUS_SPI_D4 | LCD_BUS_SPI_D5 | LCD_BUS_SPI_D6 | LCD_BUS_SPI_D7)
kenjiArai 30:4c57a022a56c 440 #if (BACKLIGHT_INV == 1)
kenjiArai 30:4c57a022a56c 441 #define LCD_BUS_SPI_DEF (0x00 | LCD_BUS_SPI_BL)
kenjiArai 30:4c57a022a56c 442 #else
kenjiArai 30:4c57a022a56c 443 #define LCD_BUS_SPI_DEF 0x00
kenjiArai 30:4c57a022a56c 444 #endif
kenjiArai 30:4c57a022a56c 445
kenjiArai 30:4c57a022a56c 446
kenjiArai 30:4c57a022a56c 447 /* PCF8574/PCF8574A I2C portexpander slave address */
kenjiArai 30:4c57a022a56c 448 #define PCF8574_SA0 0x40
kenjiArai 30:4c57a022a56c 449 #define PCF8574_SA1 0x42
kenjiArai 30:4c57a022a56c 450 #define PCF8574_SA2 0x44
kenjiArai 30:4c57a022a56c 451 #define PCF8574_SA3 0x46
kenjiArai 30:4c57a022a56c 452 #define PCF8574_SA4 0x48
kenjiArai 30:4c57a022a56c 453 #define PCF8574_SA5 0x4A
kenjiArai 30:4c57a022a56c 454 #define PCF8574_SA6 0x4C
kenjiArai 30:4c57a022a56c 455 #define PCF8574_SA7 0x4E
kenjiArai 30:4c57a022a56c 456
kenjiArai 30:4c57a022a56c 457 #define PCF8574A_SA0 0x70
kenjiArai 30:4c57a022a56c 458 #define PCF8574A_SA1 0x72
kenjiArai 30:4c57a022a56c 459 #define PCF8574A_SA2 0x74
kenjiArai 30:4c57a022a56c 460 #define PCF8574A_SA3 0x76
kenjiArai 30:4c57a022a56c 461 #define PCF8574A_SA4 0x78
kenjiArai 30:4c57a022a56c 462 #define PCF8574A_SA5 0x7A
kenjiArai 30:4c57a022a56c 463 #define PCF8574A_SA6 0x7C
kenjiArai 30:4c57a022a56c 464 #define PCF8574A_SA7 0x7E
kenjiArai 30:4c57a022a56c 465
kenjiArai 30:4c57a022a56c 466 /* MCP23008 I2C portexpander slave address */
kenjiArai 30:4c57a022a56c 467 #define MCP23008_SA0 0x40
kenjiArai 30:4c57a022a56c 468 #define MCP23008_SA1 0x42
kenjiArai 30:4c57a022a56c 469 #define MCP23008_SA2 0x44
kenjiArai 30:4c57a022a56c 470 #define MCP23008_SA3 0x46
kenjiArai 30:4c57a022a56c 471 #define MCP23008_SA4 0x48
kenjiArai 30:4c57a022a56c 472 #define MCP23008_SA5 0x4A
kenjiArai 30:4c57a022a56c 473 #define MCP23008_SA6 0x4C
kenjiArai 30:4c57a022a56c 474 #define MCP23008_SA7 0x4E
kenjiArai 30:4c57a022a56c 475
kenjiArai 30:4c57a022a56c 476 /* MCP23008 I2C portexpander internal registers */
kenjiArai 30:4c57a022a56c 477 #define IODIR 0x00
kenjiArai 30:4c57a022a56c 478 #define IPOL 0x01
kenjiArai 30:4c57a022a56c 479 #define GPINTEN 0x02
kenjiArai 30:4c57a022a56c 480 #define DEFVAL 0x03
kenjiArai 30:4c57a022a56c 481 #define INTCON 0x04
kenjiArai 30:4c57a022a56c 482 #define IOCON 0x05
kenjiArai 30:4c57a022a56c 483 #define GPPU 0x06
kenjiArai 30:4c57a022a56c 484 #define INTF 0x07
kenjiArai 30:4c57a022a56c 485 #define INTCAP 0x08
kenjiArai 30:4c57a022a56c 486 #define GPIO 0x09
kenjiArai 30:4c57a022a56c 487 #define OLAT 0x0A
kenjiArai 30:4c57a022a56c 488
kenjiArai 30:4c57a022a56c 489 /* ST7032i I2C slave address */
kenjiArai 30:4c57a022a56c 490 #define ST7032_SA 0x7C
kenjiArai 30:4c57a022a56c 491
kenjiArai 30:4c57a022a56c 492 /* ST7036i I2C slave address */
kenjiArai 30:4c57a022a56c 493 #define ST7036_SA0 0x78
kenjiArai 30:4c57a022a56c 494 #define ST7036_SA1 0x7A
kenjiArai 30:4c57a022a56c 495 #define ST7036_SA2 0x7C
kenjiArai 30:4c57a022a56c 496 #define ST7036_SA3 0x7E
kenjiArai 30:4c57a022a56c 497
kenjiArai 30:4c57a022a56c 498 /* ST7066_ACM I2C slave address, Added for ACM1602 module */
kenjiArai 30:4c57a022a56c 499 #define ST7066_SA0 0xA0
kenjiArai 30:4c57a022a56c 500
kenjiArai 30:4c57a022a56c 501 /* PCF21XX I2C slave address */
kenjiArai 30:4c57a022a56c 502 #define PCF21XX_SA0 0x74
kenjiArai 30:4c57a022a56c 503 #define PCF21XX_SA1 0x76
kenjiArai 30:4c57a022a56c 504
kenjiArai 30:4c57a022a56c 505 /* AIP31068 I2C slave address */
kenjiArai 30:4c57a022a56c 506 #define AIP31068_SA 0x7C
kenjiArai 30:4c57a022a56c 507
kenjiArai 30:4c57a022a56c 508 /* SSD1803 I2C slave address */
kenjiArai 30:4c57a022a56c 509 #define SSD1803_SA0 0x78
kenjiArai 30:4c57a022a56c 510 #define SSD1803_SA1 0x7A
kenjiArai 30:4c57a022a56c 511
kenjiArai 30:4c57a022a56c 512 /* US2066/SSD1311 I2C slave address */
kenjiArai 30:4c57a022a56c 513 #define US2066_SA0 0x78
kenjiArai 30:4c57a022a56c 514 #define US2066_SA1 0x7A
kenjiArai 30:4c57a022a56c 515
kenjiArai 30:4c57a022a56c 516 /* AC780 I2C slave address */
kenjiArai 30:4c57a022a56c 517 #define AC780_SA0 0x78
kenjiArai 30:4c57a022a56c 518 #define AC780_SA1 0x7A
kenjiArai 30:4c57a022a56c 519 #define AC780_SA2 0x7C
kenjiArai 30:4c57a022a56c 520 #define AC780_SA3 0x7E
kenjiArai 30:4c57a022a56c 521
kenjiArai 30:4c57a022a56c 522 /* SPLC792A is clone of ST7032i */
kenjiArai 30:4c57a022a56c 523 #define SPLC792A_SA0 0x78
kenjiArai 30:4c57a022a56c 524 #define SPLC792A_SA1 0x7A
kenjiArai 30:4c57a022a56c 525 #define SPLC792A_SA2 0x7C
kenjiArai 30:4c57a022a56c 526 #define SPLC792A_SA3 0x7E
kenjiArai 30:4c57a022a56c 527
kenjiArai 30:4c57a022a56c 528 //Some native I2C controllers dont support ACK. Set define to '0' to allow code to proceed even without ACK
kenjiArai 30:4c57a022a56c 529 //#define LCD_I2C_ACK 0
kenjiArai 30:4c57a022a56c 530 #define LCD_I2C_ACK 1
kenjiArai 30:4c57a022a56c 531
kenjiArai 30:4c57a022a56c 532
kenjiArai 30:4c57a022a56c 533 // Contrast setting, 6 significant bits (only supported for controllers with extended features)
kenjiArai 30:4c57a022a56c 534 // Voltage Multiplier setting, 2 or 3 significant bits (only supported for controllers with extended features)
kenjiArai 30:4c57a022a56c 535 #define LCD_DEF_CONTRAST 0x20
kenjiArai 30:4c57a022a56c 536
kenjiArai 30:4c57a022a56c 537 //ST7032 EastRising ERC1602FS-4 display
kenjiArai 30:4c57a022a56c 538 //Contrast setting 6 significant bits (0..63)
kenjiArai 30:4c57a022a56c 539 //Voltage Multiplier setting 3 significant bits:
kenjiArai 30:4c57a022a56c 540 // 0: 1.818V
kenjiArai 30:4c57a022a56c 541 // 1: 2.222V
kenjiArai 30:4c57a022a56c 542 // 2: 2.667V
kenjiArai 30:4c57a022a56c 543 // 3: 3.333V
kenjiArai 30:4c57a022a56c 544 // 4: 3.636V (ST7032 default)
kenjiArai 30:4c57a022a56c 545 // 5: 4.000V
kenjiArai 30:4c57a022a56c 546 // 6: 4.444V
kenjiArai 30:4c57a022a56c 547 // 7: 5.000V
kenjiArai 30:4c57a022a56c 548 #define LCD_ST7032_CONTRAST 0x28
kenjiArai 30:4c57a022a56c 549 #define LCD_ST7032_RAB 0x04
kenjiArai 30:4c57a022a56c 550
kenjiArai 30:4c57a022a56c 551 //ST7036 EA DOGM1603 display
kenjiArai 30:4c57a022a56c 552 //Contrast setting 6 significant bits
kenjiArai 30:4c57a022a56c 553 //Voltage Multiplier setting 3 significant bits
kenjiArai 30:4c57a022a56c 554 #define LCD_ST7036_CONTRAST 0x28
kenjiArai 30:4c57a022a56c 555 #define LCD_ST7036_RAB 0x04
kenjiArai 30:4c57a022a56c 556
kenjiArai 30:4c57a022a56c 557 //SSD1803 EA DOGM204 display
kenjiArai 30:4c57a022a56c 558 //Contrast setting 6 significant bits
kenjiArai 30:4c57a022a56c 559 //Voltage Multiplier setting 3 significant bits
kenjiArai 30:4c57a022a56c 560 #define LCD_SSD1_CONTRAST 0x28
kenjiArai 30:4c57a022a56c 561 #define LCD_SSD1_RAB 0x06
kenjiArai 30:4c57a022a56c 562
kenjiArai 30:4c57a022a56c 563 //US2066/SSD1311 EastRising ER-OLEDM2002-4 display
kenjiArai 30:4c57a022a56c 564 //Contrast setting 8 significant bits, use 6 for compatibility
kenjiArai 30:4c57a022a56c 565 #define LCD_US20_CONTRAST 0x3F
kenjiArai 30:4c57a022a56c 566 //#define LCD_US20_CONTRAST 0x1F
kenjiArai 30:4c57a022a56c 567
kenjiArai 30:4c57a022a56c 568 //PCF2113, PCF2119 display
kenjiArai 30:4c57a022a56c 569 //Contrast setting 6 significant bits
kenjiArai 30:4c57a022a56c 570 //Voltage Multiplier setting 2 significant bits
kenjiArai 30:4c57a022a56c 571 #define LCD_PCF2_CONTRAST 0x20
kenjiArai 30:4c57a022a56c 572 #define LCD_PCF2_S12 0x02
kenjiArai 30:4c57a022a56c 573
kenjiArai 30:4c57a022a56c 574 //PT6314 VFD display
kenjiArai 30:4c57a022a56c 575 //Contrast setting 2 significant bits, use 6 for compatibility
kenjiArai 30:4c57a022a56c 576 #define LCD_PT63_CONTRAST 0x3F
kenjiArai 30:4c57a022a56c 577
kenjiArai 30:4c57a022a56c 578 //SPLC792A is clone of ST7032i
kenjiArai 30:4c57a022a56c 579 //Contrast setting 6 significant bits (0..63)
kenjiArai 30:4c57a022a56c 580 //Voltage Multiplier setting 3 significant bits:
kenjiArai 30:4c57a022a56c 581 // 0: 1.818V
kenjiArai 30:4c57a022a56c 582 // 1: 2.222V
kenjiArai 30:4c57a022a56c 583 // 2: 2.667V
kenjiArai 30:4c57a022a56c 584 // 3: 3.333V (SPLC792A default)
kenjiArai 30:4c57a022a56c 585 // 4: 3.636V
kenjiArai 30:4c57a022a56c 586 // 5: 4.000V
kenjiArai 30:4c57a022a56c 587 // 6: 4.444V
kenjiArai 30:4c57a022a56c 588 // 7: 5.000V
kenjiArai 30:4c57a022a56c 589 #define LCD_SPLC792A_CONTRAST 0x28
kenjiArai 30:4c57a022a56c 590 #define LCD_SPLC792A_RAB 0x04
kenjiArai 30:4c57a022a56c 591
kenjiArai 30:4c57a022a56c 592 #endif //MBED_TEXTLCDCONFIG_H