Implementation of the RA8875 LCD controller with esp_lcd component.
LCD controller | Communication interface | Component name | Link to datasheet |
---|---|---|---|
RA8875 | Parallel Intel 8080 | esp_lcd_ra8875 | WIKI |
Packages from this repository are uploaded to Espressif's component service.
You can add them to your project via idf.py add-dependancy
, e.g.
idf.py add-dependency esp_lcd_ra8875==1.0.0
Alternatively, you can create idf_component.yml
. More is in Espressif's documentation.
For detailed usage, please go to LCD documentation.
esp_lcd_i80_bus_handle_t i80_bus = NULL;
esp_lcd_i80_bus_config_t bus_config = {
.clk_src = LCD_CLK_SRC_PLL160M,
.dc_gpio_num = BOARD_DISP_PARALLEL_DC,
.wr_gpio_num = BOARD_DISP_PARALLEL_WR,
.data_gpio_nums = {
BOARD_DISP_PARALLEL_DB0,
BOARD_DISP_PARALLEL_DB1,
BOARD_DISP_PARALLEL_DB2,
BOARD_DISP_PARALLEL_DB3,
BOARD_DISP_PARALLEL_DB4,
BOARD_DISP_PARALLEL_DB5,
BOARD_DISP_PARALLEL_DB6,
BOARD_DISP_PARALLEL_DB7,
BOARD_DISP_PARALLEL_DB8,
BOARD_DISP_PARALLEL_DB9,
BOARD_DISP_PARALLEL_DB10,
BOARD_DISP_PARALLEL_DB11,
BOARD_DISP_PARALLEL_DB12,
BOARD_DISP_PARALLEL_DB13,
BOARD_DISP_PARALLEL_DB14,
BOARD_DISP_PARALLEL_DB15,
},
.bus_width = BOARD_DISP_PARALLEL_WIDTH,
.max_transfer_bytes = (BOARD_DISP_PARALLEL_HRES) * 80 * sizeof(uint16_t),
.psram_trans_align = 64,
.sram_trans_align = 4,
};
ESP_ERROR_CHECK(esp_lcd_new_i80_bus(&bus_config, &i80_bus));
esp_lcd_panel_io_handle_t io_handle = NULL;
esp_lcd_panel_io_i80_config_t io_config = {
.cs_gpio_num = BOARD_DISP_PARALLEL_CS,
.pclk_hz = 20 * 1000 * 1000,
.trans_queue_depth = 10,
.dc_levels = {
.dc_idle_level = 0,
.dc_cmd_level = 1,
.dc_dummy_level = 0,
.dc_data_level = 0,
},
.flags = {
.swap_color_bytes = 1,
.pclk_idle_low = 0,
},
.lcd_cmd_bits = 16,
.lcd_param_bits = 8,
};
ESP_ERROR_CHECK(esp_lcd_new_panel_io_i80(i80_bus, &io_config, &io_handle));
const esp_lcd_panel_ra8875_config_t vendor_config = {
.wait_gpio_num = BOARD_DISP_PARALLEL_WAIT,
.lcd_width = BOARD_DISP_PARALLEL_HRES,
.lcd_height = BOARD_DISP_PARALLEL_VRES,
.mcu_bit_interface = BOARD_DISP_PARALLEL_WIDTH,
};
esp_lcd_panel_dev_config_t panel_config = {
.reset_gpio_num = BOARD_DISP_PARALLEL_RST,
.color_space = ESP_LCD_COLOR_SPACE_RGB,
.bits_per_pixel = 16,
.vendor_config = (void*)&vendor_config,
};
ESP_ERROR_CHECK(esp_lcd_new_panel_ra8875(io_handle, &panel_config, &lcd_panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_reset(lcd_panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_init(lcd_panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_disp_on_off(lcd_panel_handle, true));
Copy to Clipboard
idf.py add-dependency "espressif/esp_lcd_ra8875^1.0.0"
Copy to Clipboard
Copy to Clipboard