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

Commit1c33fa3

Browse files
committed
adds new indev driver
1 parent248836a commit1c33fa3

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Copyright (c) 2024 - 2025 Kevin G. Schlosser
2+
3+
frommicropythonimportconst# NOQA
4+
importpointer_framework
5+
importmachine# NOQA
6+
importtime
7+
8+
_DATA_REG=const(0x80)
9+
_STATUS_REG=const(0xE0)
10+
_PAGE_REG=const(0xF0)
11+
12+
I2C_ADDR=0x40
13+
BITS=8
14+
15+
16+
classGSL1680(pointer_framework.PointerDriver):
17+
18+
def_read_reg(self,reg,num_bytes=None,buf=None):
19+
self._tx_buf[0]=reg>>8
20+
self._tx_buf[1]=reg&0xFF
21+
ifnum_bytesisnotNone:
22+
self._device.write_readinto(self._tx_mv[:2],self._rx_mv[:num_bytes])
23+
else:
24+
self._device.write_readinto(self._tx_mv[:2],buf)
25+
26+
def_write_reg(self,reg,value=None,buf=None):
27+
ifvalueisnotNone:
28+
self._tx_buf[0]=value
29+
self._device.write_mem(reg,self._tx_mv[:1])
30+
elifbufisnotNone:
31+
self._device.write_mem(reg,buf)
32+
33+
def__init__(
34+
self,
35+
device,
36+
wake_pin,
37+
touch_cal=None,
38+
startup_rotation=pointer_framework.lv.DISPLAY_ROTATION._0,# NOQA
39+
debug=False
40+
):
41+
self._tx_buf=bytearray(4)
42+
self._tx_mv=memoryview(self._tx_buf)
43+
self._rx_buf=bytearray(24)
44+
self._rx_mv=memoryview(self._rx_buf)
45+
46+
self._device=device
47+
48+
ifisinstance(wake_pin,int):
49+
wake_pin=machine.Pin(wake_pin,machine.Pin.OUT)
50+
51+
self._wake_pin=wake_pin
52+
53+
self._wake_up()
54+
time.sleep_ms(50)
55+
self._write_reg(_STATUS_REG,0x88)
56+
time.sleep_ms(10)
57+
self._write_reg(0xE4,0x04)
58+
time.sleep_ms(5)
59+
self._tx_buf[:4]=bytearray([0x00,0x00,0x00,0x00])
60+
self._write_reg(0xBC,buf=self._tx_mv[:4])
61+
time.sleep_ms(5)
62+
self._write_reg(0xE0,0x00)
63+
64+
super().__init__(
65+
touch_cal=touch_cal,startup_rotation=startup_rotation,debug=debug
66+
)
67+
68+
def_wake_up(self):
69+
# toggle wake pin
70+
self._wake_pin.value(1)
71+
time.sleep_ms(5)# NOQA
72+
self._wake_pin.value(0)
73+
time.sleep_ms(5)# NOQA
74+
self._wake_pin.value(1)
75+
time.sleep_ms(3)# NOQA
76+
77+
def_get_coords(self):
78+
self._read_reg(_DATA_REG,buf=self._rx_mv)
79+
data=self._rx_buf
80+
81+
touch_count=data[0]
82+
iftouch_count>0:
83+
x= ((data[5]<<8)&0xF)|data[4]
84+
y= ((data[7]<<8)&0xF)|data[6]
85+
86+
returnself.RELEASED,x,y

‎display_configs/ER-TFTMC050-3.toml‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
[MCU.esp32]
2+
BOARD ="ESP32_GENERIC_S3"
3+
BOARD_VARIANT ="SPIRAM_OCT"
4+
flash_size =16
5+
enable_jtag_repl ='n'
6+
enable_cdc_repl ='n'
7+
enable_uart_repl ='y'
8+
uart_repl_bitrate =115200
9+
10+
[I2C.Bus.i2c_bus]
11+
host =0
12+
scl =20
13+
sda =19
14+
freq =400000
15+
16+
[I80Bus.display_bus]
17+
data0 =11
18+
data1 =12
19+
data2 =13
20+
data3 =14
21+
data4 =15
22+
data5 =16
23+
data6 =17
24+
data7 =18
25+
dc =8
26+
wr =6
27+
cs =-1
28+
freq =80000000
29+
30+
[I2C.Device.indev_device]
31+
bus ="i2c_bus"
32+
dev_id ="gsl1680.I2C_ADDR"
33+
reg_bits ="gsl1680.BITS"
34+
35+
[LT7381.display]
36+
data_bus ="display_bus"
37+
display_width =800
38+
display_height =480
39+
backlight_pin =4
40+
reset_pin =21
41+
wait_pin =9
42+
color_space ="lv.COLOR_FORMAT.RGB565"
43+
44+
[display.set_power]
45+
params = [true]
46+
47+
[display.init]
48+
params = ["lt7381.TYPE_ER_TFTMC050_3"]
49+
50+
[GSL1680.indev]
51+
device ="indev_device"
52+
wake_pin =0
53+
54+
[display.set_backlight]
55+
params = [100]
56+
57+
[task_handler.TaskHandler]
58+
params=[]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp