openmv/usr/lib/lcd.py
iabdalkader 12d062d1bc Enable GPIO and SPI
* Fix GPIO/SPI code
* Use buffers in SPI read/write
* Add pin qstrs OMV2
* remove old led files
* Update LCD user examples
2014-08-10 19:39:19 +02:00

165 lines
2.8 KiB
Python

import spi, gpio
from time import sleep
rst = gpio.GPIO(gpio.PA1)
rs = gpio.GPIO(gpio.PA2)
cs = gpio.GPIO(gpio.PA7)
def reset():
rst.low()
sleep(100)
rst.high()
sleep(100)
def write_command(c):
cs.low()
rs.low()
spi.write(c)
cs.high()
def write_data(c):
cs.low()
rs.high()
spi.write(c)
cs.high()
def clear(c=0x00):
write_command(0x2C)
for i in range(120*160):
write_data(c)
write_data(c)
def write_image(image):
write_command(0x2C)
cs.low()
rs.high()
spi.write(image)
cs.high()
def init():
#HW reset
reset()
#LCD init sequence
#Sleep exit
write_command(0x11)
sleep (120)
#ST7735R Frame Rate
write_command(0xB1)
write_data(0x01)
write_data(0x2C)
write_data(0x2D)
write_command(0xB2)
write_data(0x01)
write_data(0x2C)
write_data(0x2D)
write_command(0xB3)
write_data(0x01)
write_data(0x2C)
write_data(0x2D)
write_data(0x01)
write_data(0x2C)
write_data(0x2D)
write_command(0xB4)
#Column inversion
write_data(0x07)
#ST7735R Power Sequence
write_command(0xC0)
write_data(0xA2)
write_data(0x02)
write_data(0x84)
write_command(0xC1)
write_data(0xC5)
write_command(0xC2)
write_data(0x0A)
write_data(0x00)
write_command(0xC3)
write_data(0x8A)
write_data(0x2A)
write_command(0xC4)
write_data(0x8A)
write_data(0xEE)
#VCOM
write_command(0xC5)
write_data(0x0E)
#MX, MY, MV, RGB mode
write_command(0x36)
write_data(0x60)
#ST7735R Gamma Sequence
write_command(0xe0)
write_data(0x0f)
write_data(0x1a)
write_data(0x0f)
write_data(0x18)
write_data(0x2f)
write_data(0x28)
write_data(0x20)
write_data(0x22)
write_data(0x1f)
write_data(0x1b)
write_data(0x23)
write_data(0x37)
write_data(0x00)
write_data(0x07)
write_data(0x02)
write_data(0x10)
write_command(0xe1)
write_data(0x0f)
write_data(0x1b)
write_data(0x0f)
write_data(0x17)
write_data(0x33)
write_data(0x2c)
write_data(0x29)
write_data(0x2e)
write_data(0x30)
write_data(0x30)
write_data(0x39)
write_data(0x3f)
write_data(0x00)
write_data(0x07)
write_data(0x03)
write_data(0x10)
# set column address
write_command(0x2a)
write_data(0x00)
write_data(0x00)
write_data(0x00)
write_data(0x9F)
# set row address
write_command(0x2b)
write_data(0x00)
write_data(0x00)
write_data(0x00)
write_data(0x77)
#Enable test command
write_command(0xF0)
write_data(0x01)
#Disable ram power save mode
write_command(0xF6)
write_data(0x00)
#65k mode
write_command(0x3A)
write_data(0x05)
#Display on
write_command(0x29)