ESP32-S2能否支持8位串行RGB?目前代码编译不通过

mlpl902
Posts: 4
Joined: Mon Oct 25, 2021 6:05 am

ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby mlpl902 » Mon Oct 25, 2021 6:29 am

乐鑫技术支持您好:
看ESP32-S2手册上写的是支持8位串口RGB的。但是在编译esp-idf master代码时出错。
我有一片LCD是8位串行RGB接口(驱动芯片HX8238D),想用手头ESP32-S2-WROOM模块来驱动显示。
利用master测试代码test_rgb_panel.c修改后编译,选择ESP32-S3芯片时编译通过,但是更改为ESP32-S2芯片时报错。
想请问ESP32-S2是否支持8位串口RGB,若支持什么时候有支持ESP32-S2的8位串口RGB的驱动代码?
另外自己改S3 RGB驱动在S2使用的话请提供些修改思路。
谢谢!
以下为测试代码,在S3上编译通过,我没有S3模块无法测试。现在需要让该代码能够在S2下运行。

#include <stdio.h>
#include <string.h>
#include "esp_lcd_panel_rgb.h"
#include "esp_lcd_panel_ops.h"
#include "soc/soc_caps.h"
#include "esp_err.h"
#include "esp_log.h"
#include "driver/gpio.h"
#include "esp_system.h"
static const char *TAG = "example";
#define TEST_LCD_H_RES (480)
#define TEST_LCD_V_RES (272)

#define TEST_LCD_VSYNC_GPIO (8)
#define TEST_LCD_HSYNC_GPIO (9)
#define TEST_LCD_DE_GPIO (10)
#define TEST_LCD_PCLK_GPIO (11)
#define TEST_LCD_DATA0_GPIO (0) // B0
#define TEST_LCD_DATA1_GPIO (1) // B1
#define TEST_LCD_DATA2_GPIO (2) // B2
#define TEST_LCD_DATA3_GPIO (3) // B3
#define TEST_LCD_DATA4_GPIO (4) // B4
#define TEST_LCD_DATA5_GPIO (5) // G0
#define TEST_LCD_DATA6_GPIO (6) // G1
#define TEST_LCD_DATA7_GPIO (7) // G2
/*
#define TEST_LCD_DATA8_GPIO (11) // G3
#define TEST_LCD_DATA9_GPIO (12) // G4
#define TEST_LCD_DATA10_GP*IO (13) // G5
#define TEST_LCD_DATA11_GPIO (14) // R0
#define TEST_LCD_DATA12_GPIO (15) // R1
#define TEST_LCD_DATA13_GPIO (16) // R2
#define TEST_LCD_DATA14_GPIO (17) // R3
#define TEST_LCD_DATA15_GPIO (18) // R4
*/
#define TEST_LCD_DISP_EN_GPIO (12)



// RGB driver consumes a huge memory to save frame buffer, only test it with PSRAM enabled
void app_main(void)
{
ESP_LOGI(TAG, "lcd rgb lcd panel");
#define TEST_IMG_SIZE (100 * 100 * sizeof(uint16_t))
uint8_t *img = malloc(TEST_IMG_SIZE);
// TEST_ASSERT_NOT_NULL(img);

esp_lcd_panel_handle_t panel_handle = NULL;
esp_lcd_rgb_panel_config_t panel_config = {
.data_width = 8, //16
.disp_gpio_num = TEST_LCD_DISP_EN_GPIO,
.pclk_gpio_num = TEST_LCD_PCLK_GPIO,
.vsync_gpio_num = TEST_LCD_VSYNC_GPIO,
.hsync_gpio_num = TEST_LCD_HSYNC_GPIO,
.de_gpio_num = TEST_LCD_DE_GPIO,
.data_gpio_nums = {
TEST_LCD_DATA0_GPIO,
TEST_LCD_DATA1_GPIO,
TEST_LCD_DATA2_GPIO,
TEST_LCD_DATA3_GPIO,
TEST_LCD_DATA4_GPIO,
TEST_LCD_DATA5_GPIO,
TEST_LCD_DATA6_GPIO,
TEST_LCD_DATA7_GPIO,
/*
TEST_LCD_DATA8_GPIO,
TEST_LCD_DATA9_GPIO,
TEST_LCD_DATA10_GPIO,
TEST_LCD_DATA11_GPIO,
TEST_LCD_DATA12_GPIO,
TEST_LCD_DATA13_GPIO,
TEST_LCD_DATA14_GPIO,
TEST_LCD_DATA15_GPIO,
*/
},
.timings = {
.pclk_hz = 12000000,
.h_res = TEST_LCD_H_RES,
.v_res = TEST_LCD_V_RES,
.hsync_back_porch = 43,
.hsync_front_porch = 2,
.hsync_pulse_width = 1,
.vsync_back_porch = 12,
.vsync_front_porch = 1,
.vsync_pulse_width = 1,
},
.flags.fb_in_psram = 1,
};
// Test stream mode and one-off mode
for (int i = 0; i < 2; i++) {
panel_config.flags.relax_on_idle = i;
ESP_ERROR_CHECK(esp_lcd_new_rgb_panel(&panel_config, &panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_reset(panel_handle));
ESP_ERROR_CHECK(esp_lcd_panel_init(panel_handle));

for (int i = 0; i < 200; i++) {
uint8_t color_byte = esp_random() & 0xFF;
int x_start = esp_random() % (TEST_LCD_H_RES - 100);
int y_start = esp_random() % (TEST_LCD_V_RES - 100);
memset(img, color_byte, TEST_IMG_SIZE);
esp_lcd_panel_draw_bitmap(panel_handle, x_start, y_start, x_start + 100, y_start + 100, img);
}

ESP_ERROR_CHECK(esp_lcd_panel_del(panel_handle));
}
free(img);
}

ESP_morris
Posts: 290
Joined: Wed Sep 05, 2018 6:23 am

Re: ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby ESP_morris » Tue Oct 26, 2021 8:14 am

驱动还不支持,serial RGB 是 S2上的SPI独有的一种模式。
master分支上的RGB驱动是给S3芯片的,基于S3上一个单独的LCD外设,且只能支持16bit 并口的RGB屏幕 (sync和DE都可以).

另外,因为RGB LCD需要占用大面的内存,片内的SRAM肯定是不够用的,所以要放在片外的PSRAM中,同时DMA也需要支持PSRAM访问。目前S2上的EDMA还没有release,SRGB驱动需要等那之后再开始。

mlpl902
Posts: 4
Joined: Mon Oct 25, 2021 6:05 am

Re: ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby mlpl902 » Tue Oct 26, 2021 8:52 am

谢谢回复!
1、驱动还不支持,serial RGB 是 S2上的SPI独有的一种模式。
我这个LCD只能是8-bit Serial RGB驱动,所以请看看什么时候能够推出S2的RGB驱动,我好测试下,谢谢!

2、master分支上的RGB驱动是给S3芯片的,基于S3上一个单独的LCD外设,且只能支持16bit 并口的RGB屏幕 (sync和DE都可以)
只能支持16bit吗?我看资料中是支持8-16位并行RGB,请确认下。
若8bit并行RGB可行,有个问题,S3芯片的8bit并行RGB能否替代S2芯片的serial RGB?或者修改下也行。毕竟一个点要传RGB三次数据。
Attachments
捕获1.JPG
捕获1.JPG (21.66 KiB) Viewed 4293 times
捕获.JPG
捕获.JPG (36.84 KiB) Viewed 4293 times

ESP_morris
Posts: 290
Joined: Wed Sep 05, 2018 6:23 am

Re: ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby ESP_morris » Thu Oct 28, 2021 4:04 am

不好意思误导你了,经过确认硬件是支持8bit数据位宽的,是可以替代S2上的sRGB模式的,驱动未来会添加。你有推荐的sRGB LCD的型号吗?

mlpl902
Posts: 4
Joined: Mon Oct 25, 2021 6:05 am

Re: ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby mlpl902 » Thu Oct 28, 2021 5:35 am

淘宝搜HX8238应该可以找到8位串行RGB接口的LCD。
如如下链接就是。
https://item.taobao.com/item.htm?spm=a2 ... t=2#detail

mlpl902
Posts: 4
Joined: Mon Oct 25, 2021 6:05 am

Re: ESP32-S2能否支持8位串行RGB?目前代码编译不通过

Postby mlpl902 » Thu Apr 07, 2022 3:40 am

@ESP_morris
您好,距离上次发帖已经快半年了,想请问下ESP32-S3芯片驱动8bit Serial RGB的代码发布了没有?或者ESP32-S2芯片驱动8bit Serial RGB的代码发布了也可以,我目前S2和S3模组都有了,现在就等代码来驱动8bit Serial RGB了,谢谢!
如代码没有发布,请问下预计什么时候能够发布呢?

Who is online

Users browsing this forum: No registered users and 35 guests