데이터 시트 상으로는 MX MT 값이 제법 중요해보이는데 MX,MY 값이 안보인다 -_-



[링크 : https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf]
BGR은 되는것 같고..
데이터 순서는 동일할텐데 화면을 뒤집으려면
ML / MH만 뒤집어야 하나?

-------
MAC - 0x48
초기값으로 설정된거

MAC - 0x00 (landscape + rgb)

MAC - 0x08 (landscape + bgr)

MAC - 0xC8 (landscape)
MX,MY를 설정해서 데이터 방향을 바꾸어서 180도 rotate

MAC - 0x28
portrait를 위해 MV(Row/Column Exchange)

MAC - 0x68 (portrait) - 0110 1000 (2)
Portrait 되니 좌우가 바뀌어서 이를 위해 MX(Column Address Order) 뒤집음

MAC - 0xA8 (portait invert + bgr) - 1010 1000 (2)
landscape 처럼 방향 뒤집으려면 MX/MY를 뒤집음

아래는 부팅 로그(참조용)
| rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:6992 load:0x40078000,len:14292 ho 0 tail 12 room 4 load:0x40080400,len:3688 entry 0x40080678 I (29) boot: ESP-IDF v4.3 2nd stage bootloader I (29) boot: compile time 14:34:09 I (29) boot: chip revision: 3 I (32) boot_comm: chip revision: 3, min. bootloader chip revision: 0 I (39) boot.esp32: SPI Speed : 40MHz I (43) boot.esp32: SPI Mode : DIO I (48) boot.esp32: SPI Flash Size : 2MB I (53) boot: Enabling RNG early entropy source... I (58) boot: Partition Table: I (62) boot: ## Label Usage Type ST Offset Length I (69) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (76) boot: 1 phy_init RF data 01 01 0000f000 00001000 I (84) boot: 2 factory factory app 00 00 00010000 00100000 I (91) boot: End of partition table I (95) boot_comm: chip revision: 3, min. application chip revision: 0 I (103) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0e41ch ( 58396) map I (133) esp_image: segment 1: paddr=0001e444 vaddr=3ffb0000 size=01bd4h ( 7124) load I (136) esp_image: segment 2: paddr=00020020 vaddr=400d0020 size=47344h (291652) map I (249) esp_image: segment 3: paddr=0006736c vaddr=3ffb1bd4 size=00ec8h ( 3784) load I (251) esp_image: segment 4: paddr=0006823c vaddr=40080000 size=0c740h ( 51008) load I (277) esp_image: segment 5: paddr=00074984 vaddr=50000000 size=00010h ( 16) load I (284) boot: Loaded app from partition at offset 0x10000 I (284) boot: Disabling RNG early entropy source... I (297) cpu_start: Pro cpu up. I (297) cpu_start: Starting app cpu, entry point is 0x40081160 I (0) cpu_start: App cpu up. I (313) cpu_start: Pro cpu start user code I (313) cpu_start: cpu freq: 160000000 I (313) cpu_start: Application information: I (318) cpu_start: Project name: lvgl-demo I (323) cpu_start: App version: 1 I (327) cpu_start: ELF file SHA256: af171cc858421945... I (333) cpu_start: ESP-IDF: v4.3 I (338) heap_init: Initializing. RAM available for dynamic allocation: I (345) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM I (351) heap_init: At 3FFCFB50 len 000104B0 (65 KiB): DRAM I (357) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM I (364) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM I (370) heap_init: At 4008C740 len 000138C0 (78 KiB): IRAM I (377) spi_flash: detected chip: generic I (381) spi_flash: flash io: dio W (385) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header. I (399) cpu_start: Starting scheduler on PRO CPU. I (0) cpu_start: Starting scheduler on APP CPU. APP LittlevGL Demo is start!~ lvgl_helpers->Display hor size: 320, ver size: 240 lvgl_helpers->Display buffer size: 20480 lvgl_helpers->Initializing SPI master for display lvgl_helpers->Configuring SPI host HSPI_HOST (1) lvgl_helpers->MISO pin: -1, MOSI pin: 13, SCLK pin: 14 lvgl_helpers->Max transfer size: 40960 (bytes) lvgl_helpers->Initializing SPI bus... disp_spi->Adding SPI device disp_spi->Clock speed: 40000000Hz, mode: 0, CS pin: 15 ILI9341->ili9341 Initialization.... I (1440) ILI9341: Enabling backlight. ILI9341->Display orientation: PORTRAIT ILI9341->0x36 command value: 0x48 lvgl_helpers->Initializing SPI master for touch I (1440) gpio: GPIO[36]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (1460) gpio: GPIO[39]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (1460) XPT2046: XPT2046 Initialization |
+
ili9341.c
| static void ili9341_set_orientation(uint8_t orientation) { // ESP_ASSERT(orientation < 4); const char *orientation_str[] = {"PORTRAIT", "PORTRAIT_INVERTED", "LANDSCAPE", "LANDSCAPE_INVERTED"}; printf("%s->Display orientation: %s\n",TAG, orientation_str[orientation]); #if defined CONFIG_LVGL_PREDEFINED_DISPLAY_M5STACK uint8_t data[] = {0x68, 0x68, 0x08, 0x08}; #elif defined (CONFIG_LVGL_PREDEFINED_DISPLAY_WROVER4) uint8_t data[] = {0x4C, 0x88, 0x28, 0xE8}; #elif defined (CONFIG_LVGL_PREDEFINED_DISPLAY_NONE) uint8_t data[] = {0x68, 0xA8, 0x08, 0xC8}; #endif printf("%s->0x36 command value: 0x%02X\n",TAG, data[orientation]); ili9341_send_cmd(0x36); ili9341_send_data((void *) &data[orientation], 1); } |
sdkconfig
width / height는 320,240 으로 하고 돌리며 된다.
다만 터치는 소스 수정이 좀 많이 필요할 듯.
# # LVGL TFT Display controller # CONFIG_LVGL_PREDEFINED_DISPLAY_NONE=y # CONFIG_LVGL_PREDEFINED_DISPLAY_WROVER4 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STACK is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STICK is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STICKC is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ERTFT0356 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ADA_FEATHERWING is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_RPI_MPI3501 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_WEMOS_LOLIN is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ATAG is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_RPI_RA8875 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_TTGO is not set CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_ILI9341=y CONFIG_LVGL_TFT_DISPLAY_PROTOCOL_SPI=y CONFIG_LVGL_PREDEFINED_PINS_NONE=y # CONFIG_LVGL_PREDEFINED_PINS_38V4 is not set # CONFIG_LVGL_PREDEFINED_PINS_30 is not set # CONFIG_LVGL_PREDEFINED_PINS_38V1 is not set # CONFIG_LVGL_PREDEFINED_PINS_TKOALA is not set CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9341=y # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9481 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9486 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9488 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ST7789 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ST7735S is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_HX8357 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_SH1107 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_SSD1306 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_FT81X is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_IL3820 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_RA8875 is not set CONFIG_LVGL_TFT_DISPLAY_SPI_HSPI=y # CONFIG_LVGL_TFT_DISPLAY_SPI_VSPI is not set CONFIG_LVGL_DISPLAY_ORIENTATION_PORTRAIT=y # CONFIG_LVGL_DISPLAY_ORIENTATION_PORTRAIT_INVERTED is not set # CONFIG_LVGL_DISPLAY_ORIENTATION_LANDSCAPE is not set # CONFIG_LVGL_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED is not set CONFIG_LVGL_DISPLAY_ORIENTATION=0 CONFIG_LVGL_DISPLAY_WIDTH=320 CONFIG_LVGL_DISPLAY_HEIGHT=240 CONFIG_LVGL_TFT_USE_CUSTOM_SPI_CLK_DIVIDER=y # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_1 is not set CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_2=y # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_3 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_4 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_5 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_6 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_7 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_8 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_9 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_10 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_12 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_16 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_20 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_24 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_32 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_40 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_48 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_80 is not set CONFIG_LVGL_TFT_CUSTOM_SPI_CLK_DIVIDER=2 # CONFIG_LVGL_INVERT_DISPLAY is not set # CONFIG_LVGL_INVERT_COLORS is not set CONFIG_LVGL_AXP192_PIN_SDA=21 CONFIG_LVGL_AXP192_PIN_SCL=22 |
'embeded > esp32' 카테고리의 다른 글
| esp32-wroom-32 보드 / arduino 개발툴 (0) | 2026.01.23 |
|---|---|
| esp32-2432S028 데모 빌드 (0) | 2026.01.21 |
| esp32-2432S028 데이터 시트 (0) | 2026.01.17 |
| esp32-2432S028 보드 st7789 spi lcd driver? (0) | 2026.01.16 |
| esp32 와 spi lcd 성능 비..교? (0) | 2026.01.12 |
