Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit05f0fd4

Browse files
committed
Adds GC9107 Driver
1 parent2a6c2e0 commit05f0fd4

File tree

2 files changed

+231
-0
lines changed

2 files changed

+231
-0
lines changed
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
# Copyright (c) 2024 - 2025 Kevin G. Schlosser
2+
3+
importtime
4+
frommicropythonimportconst# NOQA
5+
importlvglaslv
6+
7+
_SLPOUT=const(0x11)
8+
_INVON=const(0x21)
9+
_DISPON=const(0x29)
10+
_TEON=const(0x35)
11+
_MADCTL=const(0x36)
12+
_COLMOD=const(0x3A)
13+
_DFC=const(0xB6)
14+
_VREG1ACTL=0xC3
15+
_VREG1BCTL=0xC4
16+
_VREG2ACTL=0xC9
17+
_DOCA=const(0xE8)
18+
_REG_ENA2=const(0xEF)
19+
_SET_GAMMA1=const(0xF0)
20+
_SET_GAMMA2=const(0xF1)
21+
_SET_GAMMA3=const(0xF2)
22+
_SET_GAMMA4=const(0xF3)
23+
_REG_ENA1=const(0xFE)
24+
25+
26+
definit(self):
27+
param_buf=bytearray(12)
28+
param_mv=memoryview(param_buf)
29+
30+
self.set_params(_REG_ENA2)
31+
32+
param_buf[0]=0x14
33+
self.set_params(0xEB,param_mv[:1])
34+
35+
self.set_params(_REG_ENA1)
36+
self.set_params(_REG_ENA2)
37+
38+
param_buf[0]=0x14
39+
self.set_params(0xEB,param_mv[:1])
40+
41+
param_buf[0]=0x40
42+
self.set_params(0x84,param_mv[:1])
43+
44+
param_buf[0]=0xFF
45+
self.set_params(0x85,param_mv[:1])
46+
self.set_params(0x86,param_mv[:1])
47+
self.set_params(0x87,param_mv[:1])
48+
49+
param_buf[0]=0x0A
50+
self.set_params(0x88,param_mv[:1])
51+
52+
param_buf[0]=0x21
53+
self.set_params(0x89,param_mv[:1])
54+
55+
param_buf[0]=0x00
56+
self.set_params(0x8A,param_mv[:1])
57+
58+
param_buf[0]=0x80
59+
self.set_params(0x8B,param_mv[:1])
60+
61+
param_buf[0]=0x01
62+
self.set_params(0x8C,param_mv[:1])
63+
self.set_params(0x8D,param_mv[:1])
64+
65+
param_buf[0]=0xFF
66+
self.set_params(0x8E,param_mv[:1])
67+
self.set_params(0x8F,param_mv[:1])
68+
69+
param_buf[:2]=bytearray([0x00,0x20])
70+
self.set_params(_DFC,param_mv[:2])
71+
72+
color_size=lv.color_format_get_size(self._color_space)
73+
ifcolor_size==2:# NOQA
74+
pixel_format=0x55
75+
elifcolor_size==3:
76+
pixel_format=0x77
77+
else:
78+
raiseRuntimeError(
79+
f'{self.__class__.__name__} IC only supports '
80+
'lv.COLOR_FORMAT.RGB565 or lv.COLOR_FORMAT.RGB888'
81+
)
82+
83+
param_buf[0]=pixel_format
84+
self.set_params(_COLMOD,param_mv[:1])
85+
86+
param_buf[0]= (
87+
self._madctl(
88+
self._color_byte_order,
89+
self._ORIENTATION_TABLE# NOQA
90+
)
91+
)
92+
self.set_params(_MADCTL,param_mv[:1])
93+
94+
param_buf[:5]=bytearray([0x08,0x08,0x08,0x08,0x08])
95+
self.set_params(0x90,param_mv[:5])
96+
97+
param_buf[0]=0x06
98+
self.set_params(0xBD,param_mv[:1])
99+
100+
param_buf[0]=0x00
101+
self.set_params(0xBC,param_mv[:1])
102+
103+
param_buf[:3]=bytearray([0x60,0x01,0x04])
104+
self.set_params(0xFF,param_mv[:3])
105+
106+
param_buf[0]=0x13
107+
self.set_params(_VREG1ACTL,param_mv[:1])
108+
self.set_params(_VREG1BCTL,param_mv[:1])
109+
110+
param_buf[0]=0x22
111+
self.set_params(_VREG2ACTL,param_mv[:1])
112+
113+
param_buf[0]=0x11
114+
self.set_params(0xBE,param_mv[:1])
115+
116+
param_buf[:2]=bytearray([0x10,0x0E])
117+
self.set_params(0xE1,param_mv[:2])
118+
119+
param_buf[:3]=bytearray([0x21,0x0c,0x02])
120+
self.set_params(0xDF,param_mv[:3])
121+
122+
param_buf[:6]=bytearray([0x45,0x09,0x08,0x08,0x26,0x2A])
123+
self.set_params(_SET_GAMMA1,param_mv[:6])
124+
125+
param_buf[:6]=bytearray([0x43,0x70,0x72,0x36,0x37,0x6F])
126+
self.set_params(_SET_GAMMA2,param_mv[:6])
127+
128+
param_buf[:6]=bytearray([0x45,0x09,0x08,0x08,0x26,0x2A])
129+
self.set_params(_SET_GAMMA3,param_mv[:6])
130+
131+
param_buf[:6]=bytearray([0x43,0x70,0x72,0x36,0x37,0x6F])
132+
self.set_params(_SET_GAMMA4,param_mv[:6])
133+
134+
param_buf[:2]=bytearray([0x1B,0x0B])
135+
self.set_params(0xED,param_mv[:2])
136+
137+
param_buf[0]=0x77
138+
self.set_params(0xAE,param_mv[:1])
139+
140+
param_buf[0]=0x63
141+
self.set_params(0xCD,param_mv[:1])
142+
143+
param_buf[:9]=bytearray([
144+
0x07,0x07,0x04,0x0E,0x0F,0x09,0x07,0x08,0x03])
145+
self.set_params(0x70,param_mv[:9])
146+
147+
param_buf[0]=0x34
148+
self.set_params(_DOCA,param_mv[:1])
149+
150+
param_buf[:12]=bytearray([
151+
0x18,0x0D,0x71,0xED,0x70,0x70,0x18,0x0F,0x71,0xEF,0x70,0x70])
152+
self.set_params(0x62,param_mv[:12])
153+
154+
param_buf[:12]=bytearray([
155+
0x18,0x11,0x71,0xF1,0x70,0x70,0x18,0x13,0x71,0xF3,0x70,0x70])
156+
self.set_params(0x63,param_mv[:12])
157+
158+
param_buf[:7]=bytearray([0x28,0x29,0xF1,0x01,0xF1,0x00,0x07])
159+
self.set_params(0x64,param_mv[:7])
160+
161+
param_buf[:10]=bytearray([
162+
0x3C,0x00,0xCD,0x67,0x45,0x45,0x10,0x00,0x00,0x00])
163+
self.set_params(0x66,param_mv[:10])
164+
165+
param_buf[:10]=bytearray([
166+
0x00,0x3C,0x00,0x00,0x00,0x01,0x54,0x10,0x32,0x98])
167+
self.set_params(0x67,param_mv[:10])
168+
169+
param_buf[:7]=bytearray([0x10,0x85,0x80,0x00,0x00,0x4E,0x00])
170+
self.set_params(0x74,param_mv[:7])
171+
172+
param_buf[:2]=bytearray([0x3e,0x07])
173+
self.set_params(0x98,param_mv[:2])
174+
175+
self.set_params(_TEON)
176+
self.set_params(_INVON)
177+
178+
self.set_params(_SLPOUT)
179+
time.sleep_ms(120)# NOQA
180+
self.set_params(_DISPON)
181+
time.sleep_ms(20)# NOQA
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Copyright (c) 2024 - 2025 Kevin G. Schlosser
2+
3+
frommicropythonimportconst# NOQA
4+
5+
importlvglaslv# NOQA
6+
importlcd_bus# NOQA
7+
importdisplay_driver_framework
8+
9+
10+
STATE_HIGH=display_driver_framework.STATE_HIGH
11+
STATE_LOW=display_driver_framework.STATE_LOW
12+
STATE_PWM=display_driver_framework.STATE_PWM
13+
14+
BYTE_ORDER_RGB=display_driver_framework.BYTE_ORDER_RGB
15+
BYTE_ORDER_BGR=display_driver_framework.BYTE_ORDER_BGR
16+
17+
18+
_MADCTL_MH=const(0x04)# Refresh 0=Left to Right, 1=Right to Left
19+
_MADCTL_BGR=const(0x08)# BGR color order
20+
_MADCTL_ML=const(0x10)# Refresh 0=Top to Bottom, 1=Bottom to Top
21+
_MADCTL_MV=const(0x20)# 0=Normal, 1=Row/column exchange
22+
_MADCTL_MX=const(0x40)# 0=Left to Right, 1=Right to Left
23+
_MADCTL_MY=const(0x80)# 0=Top to Bottom, 1=Bottom to Top
24+
25+
26+
classGC9107(display_driver_framework.DisplayDriver):
27+
28+
_ORIENTATION_TABLE= (
29+
0,
30+
_MADCTL_MX|_MADCTL_MV,
31+
_MADCTL_MY|_MADCTL_MX,
32+
_MADCTL_MY|_MADCTL_MV
33+
)
34+
35+
def_set_memory_location(self,x1,y1,x2,y2):
36+
# Column addresses
37+
param_buf=self._param_buf# NOQA
38+
39+
ifself._rotationin (0,2):
40+
x1+=2
41+
x2+=2
42+
y1+=1
43+
y2+=1
44+
else:
45+
x1+=1
46+
x2+=1
47+
y1+=2
48+
y2+=2
49+
50+
returndisplay_driver_framework.DisplayDriver(self,x1,y1,x2,y2)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp