各位大佬好, 小弟在使用M4(匠芯定制品),碰到下面两个问题,试过几各种方法未能解决,还请大神们指点一二。谢谢!!
1、MCU 接口屏,如何关掉.first_line 与 .other_line 命令? 只想一整屏刷一次,故不要发送0X2C,0X3C
static struct panel_dbi dbi = {
.type = I8080,
.format = I8080_RGB565_8BIT,
.first_line = 0x2C,
.other_line = 0x3C,
.commands = {
.buf = st7789v_commands,
.len = ARRAY_SIZE(st7789v_commands),
}
};
寄存器 0x100 I8080_COMMAND_CTL 只有设置或者默认值,无法关闭呀。
2、 MCU 屏如何才能一次刷完整屏,也就是CS为0后刷完一整屏,而不是一行一行的刷。 请问更改底层哪位位置可实现一次刷一屏? 或者提供个DEMO?
3、MIPI 接口如何才能读取? 把下面设置为1后压根读不到且超时; 请问是否有正常可读取的DEMO?
/* mipi-dsi dcs get display id from screen when panel enable */
#define DCS_GET_DISPLAY_ID 0
离线
明天让FAE同事看一下
离线
明天让FAE同事看一下
感谢!
离线
哪个型号的芯片还有是luban-lite?
离线
哪个型号的芯片还有是luban-lite?
启明智显的M4 对应你们SOC 应该是 D21X定制版
luban-lite
RTT+LVGL
谢谢!
最近编辑记录 TXXG (2024-07-05 07:53:03)
离线
@TXXG
第一点我们是关闭不了,8080刷屏要在前面加command的
离线
@TXXG
第一点我们是关闭不了,8080刷屏要在前面加command的
谢谢大佬的回复,请问2和3点能实现么?
离线
乘风 说:@TXXG
第一点我们是关闭不了,8080刷屏要在前面加command的谢谢大佬的回复,请问2和3点能实现么?
spi接口的屏本来就是一屏刷的
离线
TXXG 说:乘风 说:@TXXG
第一点我们是关闭不了,8080刷屏要在前面加command的谢谢大佬的回复,请问2和3点能实现么?
spi接口的屏本来就是一屏刷的
你看时序, 是一行一行来的, 正常一屏是写入2C后,刷完一整屏数据 ,而不是其它行(除第一行)用3C 继续写,且CS 每行选中一次
另外就 MIPI 在平台里虽然 有设置读功能,但实际根据读不到,一读就超时。
/* mipi-dsi dcs get display id from screen when panel enable */
#define DCS_GET_DISPLAY_ID 1
设置为1后的打印信息如下:
aic_dsi_set_vm()165 mipi-dsi screen id: 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
dsi_cmd_wr()539 Timeout during wait phy stop state 0
底层调用的函数如下:
static int aic_dsi_set_vm(const struct display_timing *timing, int enable)
{
struct aic_dsi_comp *comp = aic_dsi_request_drvdata();
struct panel_dsi *dsi = comp->panel->dsi;
if (enable) {
dsi_dcs_lw(comp->regs, false);
dsi_set_vm(comp->regs, dsi->mode, dsi->format,
dsi->lane_num, comp->vc_num, timing);
} else {
dsi_set_vm(comp->regs, DSI_MOD_CMD_MODE, dsi->format,
dsi->lane_num, comp->vc_num, timing);
dsi_dcs_lw(comp->regs, true);
#if DCS_GET_DISPLAY_ID
dsi_cmd_wr(comp->regs, MIPI_DSI_DCS_READ, 0,
(u8[]){ MIPI_DCS_GET_DISPLAY_ID }, 1); //MIPI_DCS_GET_DISPLAY_ID
aic_delay_ms(120);
pr_info("mipi-dsi screen id: %x\n", readl(comp->regs + DSI_GEN_PD_CFG));
#endif
}
aic_dsi_release_drvdata();
return 0;
}
最近编辑记录 TXXG (2024-07-10 08:25:48)
离线
明天让FAE同事看一下
大佬还请帮忙让技术大佬帮忙看看。谢谢!!!
离线
官方文档有比较详细的mipi屏移植步骤。
mipi屏配置文件得管屏厂家要。依葫芦画瓢编写luban-lite下的驱动代码就可以了。
离线
官方文档有比较详细的mipi屏移植步骤。
mipi屏配置文件得管屏厂家要。依葫芦画瓢编写luban-lite下的驱动代码就可以了。
你们试过没有? MIPI读的功能, 根本不行,或者你们随便发个能读的DEMO我们试下?
详细 的MIPI移植步骤也可以我们验证一下。邮箱: rd01_xh@163.com
谢谢回复!
最近编辑记录 TXXG (2024-07-10 09:37:16)
离线
@TXXG
每行刷屏是因为是用硬件实现的,显示引擎把每行数据以并行接口时序传输到显示接口转换,所以这个平台的刷屏就是按行去刷每帧数据。并不是传统的用CPU实现的数据传输。
离线