画了F1c200s的电路板,使用 LicheePI Zero 的教程实现了Linux的驱动和运行。
进行屏幕移植时出了问题。
在uboot移植上很顺利,改改屏幕分辨率和RGB配置参数,就正常显示了log界面。但是到了kernel启动阶段就花屏了,然后就黑屏了。
我在Linux源码中,参照多个教程,修改了suniv-f1c100s-licheepi-nano.dts:
panel: panel {
compatible = "lg,lb070wv8", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
并在panel-sample.c 中修改了对应的屏幕参数:
static const struct drm_display_mode lg_lb070wv8_mode = {
/* .clock = 33246,
.hdisplay = 800,
.hsync_start = 800 + 88,
.hsync_end = 800 + 88 + 80,
.htotal = 800 + 88 + 80 + 88,
.vdisplay = 480,
.vsync_start = 480 + 10,
.vsync_end = 480 + 10 + 25,
.vtotal = 480 + 10 + 25 + 10,
.vrefresh = 60,
*/
.clock = 10000,
.hdisplay = 320,
.hsync_start = 320 + 10,
.hsync_end = 320 + 10 + 5,
.htotal = 320 + 10 + 5 + 5,
.vdisplay = 960,
.vsync_start = 960 + 10,
.vsync_end = 960 + 10 + 10,
.vtotal = 960 + 10 + 10 + 2,
.vrefresh = 30,
};
static const struct panel_desc lg_lb070wv8 = {
.modes = &lg_lb070wv8_mode,
.num_modes = 1,
.bpc = 18,
.size = {
.width = 46,
.height = 91,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
};
编译后还是不显示。
然后又在 uboot 的menuconfig 中添加 mem=63M,也没用。
所以想请教,我需要怎么修改才能正常显示?
我最终的目的是希望能正常播放视频或图片。
另外,想请教有没有办法软件横屏显示(这款屏幕是ST7701S驱动芯片,问过厂家了,硬件旋转没有用,我也参考几个手册配置过对应的寄存器,确实没有用),只改分辨率的话,会显示不正常。
目前的开机画面如下:
离线
buildroot-tiny200 (F1C100/200s) 开发包近期更新内容 * 已支持DVP摄像头 *,支持SPI NAND
https://whycan.com/t_5221.html
离线
ST7701S只能软件旋转,硬件寄存器只能改镜像模式之类的。uboot好,到linux黑屏,看看是不是启动中间reset了屏幕,如果reset的话要重新用spi配置屏幕才会亮
离线