mirror of
https://github.com/YuzuZensai/MCUFRIEND_kbv.git
synced 2026-01-31 14:57:48 +00:00
add support for R61526A
This commit is contained in:
@@ -200,6 +200,8 @@ uint16_t MCUFRIEND_kbv::readID(void)
|
|||||||
return 0x1511;
|
return 0x1511;
|
||||||
if (ret == 0x1520) //?R61520: [xx 01 22 15 20]
|
if (ret == 0x1520) //?R61520: [xx 01 22 15 20]
|
||||||
return 0x1520;
|
return 0x1520;
|
||||||
|
if (ret == 0x1526) //?R61526: [xx 01 22 15 26]
|
||||||
|
return 0x1526;
|
||||||
if (ret == 0x1581) //R61581: [xx 01 22 15 81]
|
if (ret == 0x1581) //R61581: [xx 01 22 15 81]
|
||||||
return 0x1581;
|
return 0x1581;
|
||||||
if (ret == 0x1400) //?RM68140:[xx FF 68 14 00] not tested yet
|
if (ret == 0x1400) //?RM68140:[xx FF 68 14 00] not tested yet
|
||||||
@@ -213,7 +215,9 @@ uint16_t MCUFRIEND_kbv::readID(void)
|
|||||||
// if (msb = 0x38 && ret == 0x8000) //unknown [xx 38 80 00] with D3 = 0x1602
|
// if (msb = 0x38 && ret == 0x8000) //unknown [xx 38 80 00] with D3 = 0x1602
|
||||||
if (msb == 0x00 && ret == 0x8000) //HX8357-D [xx 00 80 00]
|
if (msb == 0x00 && ret == 0x8000) //HX8357-D [xx 00 80 00]
|
||||||
return 0x8357;
|
return 0x8357;
|
||||||
if (ret == 0x8552) //ST7789V: [xx 85 85 52]
|
if (msb == 0xFF && ret == 0xFFFF) //R61526 [xx FF FF FF]
|
||||||
|
return 0x1526; //subsequent begin() enables Command Access
|
||||||
|
if (ret == 0x8552) //ST7789V: [xx 85 85 52]
|
||||||
return 0x7789;
|
return 0x7789;
|
||||||
if (ret == 0xAC11) //?unknown [xx 61 AC 11]
|
if (ret == 0xAC11) //?unknown [xx 61 AC 11]
|
||||||
return 0xAC11;
|
return 0xAC11;
|
||||||
@@ -462,6 +466,13 @@ void MCUFRIEND_kbv::setAddrWindow(int16_t x, int16_t y, int16_t x1, int16_t y1)
|
|||||||
if (rotation == 2) y += OFFSET_9327, y1 += OFFSET_9327;
|
if (rotation == 2) y += OFFSET_9327, y1 += OFFSET_9327;
|
||||||
if (rotation == 3) x += OFFSET_9327, x1 += OFFSET_9327;
|
if (rotation == 3) x += OFFSET_9327, x1 += OFFSET_9327;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if 1
|
||||||
|
if (_lcd_ID == 0x1526 && (rotation & 1)) {
|
||||||
|
int16_t dx = x1 - x, dy = y1 - y;
|
||||||
|
if (dy == 0) { y1++; }
|
||||||
|
else if (dx == 0) { x1 += dy; y1 -= dy; }
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (_lcd_capable & MIPI_DCS_REV1) {
|
if (_lcd_capable & MIPI_DCS_REV1) {
|
||||||
WriteCmdParam4(_MC, x >> 8, x, x1 >> 8, x1);
|
WriteCmdParam4(_MC, x >> 8, x, x1 >> 8, x1);
|
||||||
@@ -549,7 +560,7 @@ void MCUFRIEND_kbv::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
CS_IDLE;
|
CS_IDLE;
|
||||||
if (!(_lcd_capable & MIPI_DCS_REV1))
|
if (!(_lcd_capable & MIPI_DCS_REV1) || ((_lcd_ID == 0x1526) && (rotation & 1)))
|
||||||
setAddrWindow(0, 0, width() - 1, height() - 1);
|
setAddrWindow(0, 0, width() - 1, height() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -994,16 +1005,31 @@ void MCUFRIEND_kbv::begin(uint16_t ID)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x1520:
|
case 0x1520:
|
||||||
|
_lcd_capable = AUTO_READINC | MIPI_DCS_REV1 | MV_AXIS | READ_24BITS;
|
||||||
|
static const uint8_t R61520_regValues[] PROGMEM = {
|
||||||
|
0x01, 0, //Soft Reset
|
||||||
|
TFTLCD_DELAY8, 120*2, // .kbv will power up with ONLY reset, sleep out, display on
|
||||||
|
0x28, 0, //Display Off
|
||||||
|
0xB0, 1, 0x00, //Command Access Protect
|
||||||
|
0xC0, 1, 0x0A, //DM=1, BGR=1
|
||||||
|
0x11, 0, //Sleep Out
|
||||||
|
TFTLCD_DELAY8, 150,
|
||||||
|
0x29, 0, //Display On
|
||||||
|
0x3A, 1, 0x55, //Pixel read=565, write=565
|
||||||
|
};
|
||||||
|
init_table(R61520_regValues, sizeof(R61520_regValues));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x1526:
|
||||||
_lcd_capable = AUTO_READINC | MIPI_DCS_REV1 | MV_AXIS | READ_24BITS;
|
_lcd_capable = AUTO_READINC | MIPI_DCS_REV1 | MV_AXIS | READ_24BITS;
|
||||||
static const uint8_t R61526_regValues[] PROGMEM = {
|
static const uint8_t R61526_regValues[] PROGMEM = {
|
||||||
0x01, 0, //Soft Reset
|
0x01, 0, //Soft Reset
|
||||||
TFTLCD_DELAY8, 120*2, // .kbv will power up with ONLY reset, sleep out, display on
|
TFTLCD_DELAY8, 120*2, // .kbv will power up with ONLY reset, sleep out, display on
|
||||||
0x28, 0, //Display Off
|
0x28, 0, //Display Off
|
||||||
// 0xB0, 2, 0x00, 0x00, //Command Access Protect
|
0xB0, 1, 0x03, //Command Access Protect
|
||||||
// 0xC0, 8, 0x0A, 0x4F, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, //DM=1, BGR=1
|
0xE2, 1, 0x3F, //Command Write Access
|
||||||
0xB0, 1, 0x00, //Command Access Protect
|
0xC0, 1, 0x22, //REV=0, BGR=1, SS=0
|
||||||
0xC0, 1, 0x0A, //DM=1, BGR=1
|
0x11, 0, //Sleep Out
|
||||||
0x11, 0, //Sleep Out
|
|
||||||
TFTLCD_DELAY8, 150,
|
TFTLCD_DELAY8, 150,
|
||||||
0x29, 0, //Display On
|
0x29, 0, //Display On
|
||||||
0x3A, 1, 0x55, //Pixel read=565, write=565
|
0x3A, 1, 0x55, //Pixel read=565, write=565
|
||||||
|
|||||||
Reference in New Issue
Block a user