|
| 1 | +from machine import Pin, SPI |
| 2 | +import lcd |
| 3 | + |
| 4 | +TFA = const(0) |
| 5 | +BFA = const(0) |
| 6 | + |
| 7 | + |
| 8 | +# This is the command sequence that initialises the GC9A01 driver |
| 9 | +# cmd(int) args(bytes) delay(ms) |
| 10 | +init_tft_esp = ( |
| 11 | + (0xEF, b'', 0), |
| 12 | + (0xEB, b'\x14', 0), |
| 13 | + (0xFE, b'', 0), |
| 14 | + (0xEF, b'', 0), |
| 15 | + (0xEB, b'\x14', 0), |
| 16 | + (0x84, b'\x40', 0), |
| 17 | + (0x85, b'\xFF', 0), |
| 18 | + (0x86, b'\xFF', 0), |
| 19 | + (0x87, b'\xFF', 0), |
| 20 | + (0x88, b'\x0A', 0), |
| 21 | + (0x89, b'\x21', 0), |
| 22 | + (0x8A, b'\x00', 0), |
| 23 | + (0x8B, b'\x80', 0), |
| 24 | + (0x8C, b'\x01', 0), |
| 25 | + (0x8D, b'\x01', 0), |
| 26 | + (0x8E, b'\xFF', 0), |
| 27 | + (0x8F, b'\xFF', 0), |
| 28 | + (0xB6, b'\x00\x20', 0), |
| 29 | + (0x90, b'\x08\x08\x08\x08', 0), |
| 30 | + (0xBD, b'\x06', 0), |
| 31 | + (0xBC, b'\x00', 0), |
| 32 | + (0xFF, b'\x60\x01\x04', 0), |
| 33 | + (0xC3, b'\x13\xC4\x13', 0), |
| 34 | + (0xC9, b'\x22', 0), |
| 35 | + (0xBE, b'\x11', 0), |
| 36 | + (0xE1, b'\x10\x0E', 0), |
| 37 | + (0xDF, b'\x21\x0c\x02', 0), |
| 38 | + (0xF0, b'\x45\x09\x08\x08\x26\x2A', 0), |
| 39 | + (0xF1, b'\x43\x70\x72\x36\x37\x6F', 0), |
| 40 | + (0xF2, b'\x45\x09\x08\x08\x26\x2A', 0), |
| 41 | + (0xF3, b'\x43\x70\x72\x36\x37\x6F', 0), |
| 42 | + (0xED, b'\x1B\x0B', 0), |
| 43 | + (0xAE, b'\x77', 0), |
| 44 | + (0xCD, b'\x63', 0), |
| 45 | + (0x70, b'\x07\x07\x04\x0E\x0F\x09\x07\x08\x03', 0), |
| 46 | + (0xE8, b'\x34', 0), |
| 47 | + (0x62, b'\x18\x0D\x71\xED\x70\x70\x18\x0F\x71\xEF\x70\x70', 0), |
| 48 | + (0x63, b'\x18\x11\x71\xF1\x70\x70\x18\x13\x71\xF3\x70\x70', 0), |
| 49 | + (0x64, b'\x28\x29\xF1\x01\xF1\x00\x07', 0), |
| 50 | + (0x66, b'\x3C\x00\xCD\x67\x45\x45\x10\x00\x00\x00', 0), |
| 51 | + (0x67, b'\x00\x3C\x00\x00\x00\x01\x54\x10\x32\x98', 0), |
| 52 | + (0x74, b'\x10\x85\x80\x00\x00\x4E\x00', 0), |
| 53 | + (0x98, b'\x3E\x07', 0), |
| 54 | + (0x35, b'', 0), |
| 55 | + |
| 56 | +# (0x21, b'', 0), |
| 57 | +# (0x36, b'\x08', 0), |
| 58 | +# (0x3A, b'\x05', 0), |
| 59 | +# (0x11, b'', 120), |
| 60 | +# (0x29, b'', 20), |
| 61 | +) |
| 62 | + |
| 63 | +def config(): |
| 64 | + hspi = SPI(2, sck=Pin(14), mosi=Pin(13), miso=None) |
| 65 | + panel = lcd.SPIPanel(spi=hspi, dc=Pin(16), cs=Pin(15), pclk=60000000, width=240, height=240) |
| 66 | + st = lcd.GC9A01(panel, reset=Pin(17), backlight=Pin(18), color_space=lcd.BGR) |
| 67 | + st.backlight_on() |
| 68 | + st.reset() |
| 69 | + st.custom_init(init_tft_esp) |
| 70 | + st.init() |
| 71 | + st.invert_color(True) |
| 72 | + return st |
| 73 | + |
| 74 | + |
| 75 | +def color565(r, g, b): |
| 76 | + c = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3) |
| 77 | + return (c >> 8) | (c << 8) |
0 commit comments