Skip to content

Commit 98f65e4

Browse files
committed
Big update to the lcd bus classes
1 parent 4ca4f69 commit 98f65e4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+5923
-2819
lines changed

api_drivers/common_api_drivers/display/axs15231b/axs15231b.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def set_params(self, cmd, params=None):
134134
cmd <<= 8
135135
cmd |= _WRITE_CMD << 24
136136

137-
self._data_bus.tx_param(cmd, params)
137+
self._data_bus.tx_param(cmd, params, False)
138138

139139
def _set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
140140
if y1 == 0:
@@ -148,18 +148,19 @@ def _set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
148148
param_buf[1] = x1 & 0xFF
149149
param_buf[2] = (x2 >> 8) & 0xFF
150150
param_buf[3] = x2 & 0xFF
151-
152-
self._data_bus.tx_param(_CASET, self._param_mv)
153-
154151
if self.__qspi:
152+
self._data_bus.tx_param(_CASET, self._param_mv, True)
153+
155154
cmd &= 0xFF
156155
cmd <<= 8
157156
cmd |= _WRITE_COLOR << 2
158157
else:
158+
self._data_bus.tx_param(_CASET, self._param_mv, False)
159+
159160
param_buf[0] = (y1 >> 8) & 0xFF
160161
param_buf[1] = y1 & 0xFF
161162
param_buf[2] = (y2 >> 8) & 0xFF
162163
param_buf[3] = y2 & 0xFF
163-
self._data_bus.tx_param(_RASET, self._param_mv)
164+
self._data_bus.tx_param(_RASET, self._param_mv, True)
164165

165166
return cmd

api_drivers/common_api_drivers/display/ili9225/ili9225.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,28 +35,28 @@ def _set_memory_location(self, x1, y1, x2, y2):
3535

3636
param_buf[0] = (x1 >> 8) & 0xFF
3737
param_buf[1] = x1 & 0xFF
38-
self._data_bus.tx_param(_HWINADDR1, self._param_mv[:2])
38+
self._data_bus.tx_param(_HWINADDR1, self._param_mv[:2], False)
3939

4040
param_buf[0] = (x2 >> 8) & 0xFF
4141
param_buf[1] = x2 & 0xFF
42-
self._data_bus.tx_param(_HWINADDR2, self._param_mv[:2])
42+
self._data_bus.tx_param(_HWINADDR2, self._param_mv[:2], False)
4343

4444
# Page addresses
4545
param_buf[0] = (y1 >> 8) & 0xFF
4646
param_buf[1] = y1 & 0xFF
47-
self._data_bus.tx_param(_VWINADDR1, self._param_mv[:2])
47+
self._data_bus.tx_param(_VWINADDR1, self._param_mv[:2], False)
4848

4949
param_buf[0] = (y2 >> 8) & 0xFF
5050
param_buf[1] = y2 & 0xFF
51-
self._data_bus.tx_param(_VWINADDR2, self._param_mv[:2])
51+
self._data_bus.tx_param(_VWINADDR2, self._param_mv[:2], False)
5252

5353
param_buf[0] = (x1 >> 8) & 0xFF
5454
param_buf[1] = x1 & 0xFF
55-
self._data_bus.tx_param(_RAMADDRSET1, self._param_mv[:2])
55+
self._data_bus.tx_param(_RAMADDRSET1, self._param_mv[:2], False)
5656

5757
param_buf[0] = (y1 >> 8) & 0xFF
5858
param_buf[1] = y1 & 0xFF
59-
self._data_bus.tx_param(_RAMADDRSET2, self._param_mv[:2])
59+
self._data_bus.tx_param(_RAMADDRSET2, self._param_mv[:2], True)
6060

6161
return _RAMWR
6262

api_drivers/common_api_drivers/display/lt7381/lt7381.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def _set_memory_location(self, x_start, y_start, x_end, y_end):
209209
self.set_params(_CURH_L, x_start & 0xff)
210210
self.set_params(_CURH_H, (x_start >> 8) & 0xFF)
211211
self.set_params(_CURV_L, y_start & 0xFF)
212-
self.set_params(_CURV_H, (y_start >> 8) & 0xFF)
212+
self._disp_drv.tx_param(_CURV_H, (y_start >> 8) & 0xFF, True)
213213

214214
return _MRWDP
215215

@@ -236,4 +236,4 @@ def _flush_cb(self, _, area, color_p):
236236
data_view = color_p.__dereference__(size)
237237

238238
self._data_bus.tx_color(cmd, data_view, x1, y1, x2, y2, self._rotation,
239-
self._disp_drv.flush_is_last())
239+
self._dither, self._disp_drv.flush_is_last())

api_drivers/common_api_drivers/display/nv3041a/nv3041a.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def _flush_ready_cb(self, *_):
169169

170170
def set_params(self, cmd, params=None):
171171
cmd = self.__cmd_modifier(cmd)
172-
self._data_bus.tx_param(cmd, params)
172+
self._data_bus.tx_param(cmd, params, False)
173173

174174
def _set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
175175
return self._dummy_set_memory_location(x1, y1, x2, y2)
@@ -182,7 +182,7 @@ def _dummy_set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
182182
param_buf[2] = (x2 >> 8) & 0xFF
183183
param_buf[3] = x2 & 0xFF
184184

185-
self._data_bus.tx_param(self.__caset, self._param_mv)
185+
self._data_bus.tx_param(self.__caset, self._param_mv, True)
186186

187187
def _flush_cb(self, _, area, color_p):
188188
x1 = area.x1 + self._offset_x
@@ -199,8 +199,11 @@ def _flush_cb(self, _, area, color_p):
199199

200200
data_view = color_p.__dereference__(size)
201201

202-
# Divide buffer in 2 chunks:
203-
first_chunk = int(size / 2)
202+
half_height = int(height / 2)
204203

205-
self._data_bus.tx_color(self.__ramwr, data_view[:first_chunk], x1, y1, x2, y2, self._rotation, False)
206-
self._data_bus.tx_color(self.__ramwrc, data_view[first_chunk:], x1, y1, x2, y2, self._rotation, self._disp_drv.flush_is_last())
204+
first_chunk = width * half_height * lv.color_format_get_size(self._color_space)
205+
206+
self._data_bus.tx_color(self.__ramwr, data_view[:first_chunk], x1, y1, x2, half_height - 1, self._rotation,
207+
self._dither, False)
208+
self._data_bus.tx_color(self.__ramwrc, data_view[first_chunk:], x1, height - half_height - 1, x2, y2, self._rotation,
209+
self._dither, self._disp_drv.flush_is_last())

api_drivers/common_api_drivers/display/ra8876/ra8876.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -556,32 +556,32 @@ def _set_memory_location(self, x_start, y_start, x_end, y_end):
556556

557557
# set active window start X/Y
558558
buf[0] = x_start & 0xFF
559-
self.set_params(_AWUL_X0, mv)
559+
self._data_bus.tx_param(_AWUL_X0, mv, False)
560560
buf[0] = (x_start >> 8) & 0xFF
561-
self.set_params(_AWUL_X1, mv)
561+
self._data_bus.tx_param(_AWUL_X1, mv, False)
562562
buf[0] = y_start & 0xFF
563-
self.set_params(_AWUL_Y0, mv)
563+
self._data_bus.tx_param(_AWUL_Y0, mv, False)
564564
buf[0] = (y_start >> 8) & 0xFF
565-
self.set_params(_AWUL_Y1, mv)
565+
self._data_bus.tx_param(_AWUL_Y1, mv, False)
566566

567567
# set active window width and height
568568
buf[0] = (x_end - x_start) & 0xFF
569-
self.set_params(_AW_WTH0, mv)
569+
self._data_bus.tx_param(_AW_WTH0, mv, False)
570570
buf[0] = ((x_end - x_start) >> 8) & 0xFF
571-
self.set_params(_AW_WTH1, mv)
571+
self._data_bus.tx_param(_AW_WTH1, mv, False)
572572
buf[0] = (y_end - y_start) & 0xFF
573-
self.set_params(_AW_HT0, mv)
573+
self._data_bus.tx_param(_AW_HT0, mv, False)
574574
buf[0] = ((y_end - y_start) >> 8) & 0xFF
575-
self.set_params(_AW_HT1, mv)
575+
self._data_bus.tx_param(_AW_HT1, mv, False)
576576

577577
# set cursor
578578
buf[0] = x_start & 0xff
579-
self.set_params(_CURH0, mv)
579+
self._data_bus.tx_param(_CURH0, mv, False)
580580
buf[0] = (x_start >> 8) & 0xFF
581-
self.set_params(_CURH1, mv)
581+
self._data_bus.tx_param(_CURH1, mv, False)
582582
buf[0] = y_start & 0xFF
583-
self.set_params(_CURV0, mv)
583+
self._data_bus.tx_param(_CURV0, mv, False)
584584
buf[0] = (y_start >> 8) & 0xFF
585-
self.set_params(_CURV1, mv)
585+
self._data_bus.tx_param(_CURV1, mv, True)
586586

587587
return _MRWDP

api_drivers/common_api_drivers/display/rgb_display/rgb_display.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ def __init__(
5656
rgb565_byte_swap=rgb565_byte_swap,
5757
_cmd_bits=8,
5858
_param_bits=8,
59-
_init_bus=True
59+
_init_bus=True,
60+
_sw_rotation=True
6061
)
6162

6263
def init(self):

api_drivers/common_api_drivers/display/rm68120/rm68120.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ def _set_memory_location(self, x1, y1, x2, y2):
3030
param_buf[2] = (x2 >> 8) & 0xFF
3131
param_buf[3] = x2 & 0xFF
3232

33-
self._data_bus.tx_param(_CASET, self._param_mv[:4])
33+
self._data_bus.tx_param(_CASET, self._param_mv[:4], False)
3434

3535
# Page addresses
3636
param_buf[0] = (y1 >> 8) & 0xFF
3737
param_buf[1] = y1 & 0xFF
3838
param_buf[2] = (y2 >> 8) & 0xFF
3939
param_buf[3] = y2 & 0xFF
4040

41-
self._data_bus.tx_param(_PASET, self._param_mv[:4])
41+
self._data_bus.tx_param(_PASET, self._param_mv[:4], True)
4242

4343
return _RAMWR
4444

@@ -57,4 +57,4 @@ def _on_size_change(self, _):
5757
0x00,
5858
self._madctl(self._color_byte_order, ~rotation, self._ORIENTATION_TABLE) # NOQA
5959
])
60-
self._data_bus.tx_param(_MADCTL, param_buf)
60+
self._data_bus.tx_param(_MADCTL, param_buf, False)

api_drivers/common_api_drivers/display/spd2010/spd2010.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def _flush_ready_cb(self, *_):
166166

167167
def set_params(self, cmd, params=None):
168168
cmd = self.__cmd_modifier(cmd)
169-
self._data_bus.tx_param(cmd, params)
169+
self._data_bus.tx_param(cmd, params, False)
170170

171171
def _set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
172172
param_buf = self._param_buf # NOQA
@@ -176,14 +176,14 @@ def _set_memory_location(self, x1: int, y1: int, x2: int, y2: int):
176176
param_buf[2] = (x2 >> 8) & 0xFF
177177
param_buf[3] = x2 & 0xFF
178178

179-
self._data_bus.tx_param(self.__caset, self._param_mv)
179+
self._data_bus.tx_param(self.__caset, self._param_mv, False)
180180

181181
param_buf[0] = (y1 >> 8) & 0xFF
182182
param_buf[1] = y1 & 0xFF
183183
param_buf[2] = (y2 >> 8) & 0xFF
184184
param_buf[3] = y2 & 0xFF
185185

186-
self._data_bus.tx_param(self.__raset, self._param_mv)
186+
self._data_bus.tx_param(self.__raset, self._param_mv, True)
187187

188188
def _flush_cb(self, _, area, color_p):
189189
x1 = area.x1 + self._offset_x
@@ -199,4 +199,5 @@ def _flush_cb(self, _, area, color_p):
199199
size = width * height * lv.color_format_get_size(self._color_space)
200200

201201
data_view = color_p.__dereference__(size)
202-
self._data_bus.tx_color(self.__ramwr, data_view, x1, y1, x2, y2, self._rotation, False)
202+
self._data_bus.tx_color(self.__ramwr, data_view, x1, y1, x2, y2, self._rotation,
203+
self._dither, self._disp_drv.flush_is_last())

api_drivers/common_api_drivers/display/ssd1306/ssd1306.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ def _flush_cb(self, _, area, color_p):
140140

141141
self._param_buf[0] = x1
142142
self._param_buf[1] = x2
143-
self.set_params(_SET_COL_ADDR, self._param_mv[:2])
143+
self._data_bus.tx_param(_SET_COL_ADDR, self._param_mv[:2], False)
144144

145145
self._param_buf[0] = y1
146146
self._param_buf[1] = y2
147-
self.set_params(_SET_PAGE_ADDR, self._param_mv[:2])
147+
self._data_bus.tx_param(_SET_PAGE_ADDR, self._param_mv[:2], True)
148148

149149
size = (
150150
(area.x2 - area.x1 + 1) *
@@ -156,4 +156,4 @@ def _flush_cb(self, _, area, color_p):
156156
# what converts from the C_Array object the binding passes into a
157157
# memoryview object that can be passed to the bus drivers
158158
data_view = color_p.__dereference__(size)
159-
self._data_bus.tx_color(0, data_view, x1, y1, x2, y2, self._rotation, self._disp_drv.flush_is_last())
159+
self._data_bus.tx_color(0, data_view, x1, y1, x2, y2, self._rotation, self._dither, self._disp_drv.flush_is_last())

api_drivers/common_api_drivers/display/ssd1351/ssd1351.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ def _set_memory_location(self, x1, y1, x2, y2):
2929
param_buf[2] = (x2 >> 8) & 0xFF
3030
param_buf[3] = x2 & 0xFF
3131

32-
self._data_bus.tx_param(_CASET, self._param_mv[:4])
32+
self._data_bus.tx_param(_CASET, self._param_mv[:4], False)
3333

3434
# Page addresses
3535
param_buf[0] = (y1 >> 8) & 0xFF
3636
param_buf[1] = y1 & 0xFF
3737
param_buf[2] = (y2 >> 8) & 0xFF
3838
param_buf[3] = y2 & 0xFF
3939

40-
self._data_bus.tx_param(_PASET, self._param_mv[:4])
40+
self._data_bus.tx_param(_PASET, self._param_mv[:4], True)
4141

4242
return _RAMWR

0 commit comments

Comments
 (0)