页次: 1
0752ben 说:你好,达克罗德。
我的工程替换了71楼的 “完整FB-f1c100s.c文件”,编译成功后,修改pdat->timing.pixel_clock_hz ,情况是一样的,LCD_CLK硬件引脚就没有信号输出。启动时PLL_VIDEO时钟只有198MHZ,而全志要求和pixel时钟的倍数必须大于等于4,实际我发现大于等于6才行。所以33Mhz以上TCON时钟工作不正常
需要把PLL video时钟设高一点
把sys_clock.c中write32(F1C100S_CCU_BASE + CCU_PLL_VIDEO_CTRL, 0x81004107);
时钟输出=24000000*(0x41+1)/(0x07+1)=198Mhz
改为write32(F1C100S_CCU_BASE + CCU_PLL_VIDEO_CTRL, 0x81004103);
时钟输出=24000000*(0x41+1)/(0x03+1)=396Mhz
这时候pixel_clock_hz能设置成更高时钟了
你好,达克罗德,我还是没能调通1280*720分辨率输出。上个月忙起来,就没有时间研究了。请问您接付费外包吗?我的联系方式邮箱 243280383@qq.com
首先感谢楼主的贡献,源码在荔枝派F1C100S板上顺利的跑起来了。
下面有个问题想请教下:
我想修改液晶驱动函数,改成1024*768分辨率,通过VGA驱动15寸液晶屏。
VGA时序参考了 https://www.cnblogs.com/qidaiymm/p/6006039.html ,http://www.docin.com/p-540410877.html 查看了相关的VGA标准时序。修改了液晶初始化函数,但是一直不成功,不知道 除了 VGA的时序需要修改,还有那些参数需要修改?
代码如下:
void fb_f1c100s_init(framebuffer_t * fb)
{
int32_t i;
fb_f1c100s_pdata_t * pdat = &fb_f1c100s_pData;
pdat->virtdefe = phys_to_virt(F1C100S_DEFE_BASE);
pdat->virtdebe = phys_to_virt(F1C100S_DEBE_BASE);
pdat->virttcon = phys_to_virt(F1C100S_TCON_BASE);
pdat->clkdefe = "clkdefe";
pdat->clkdebe = "clkdebe";
pdat->clktcon = "clktcon";
pdat->rstdefe = 46; //请问这里是是什么参数?
pdat->rstdebe = 44; //请问这里是是什么参数?
pdat->rsttcon = 36; //请问达克罗德这里是是什么参数?
pdat->width = 1024; //分辨率
pdat->height = 768;
pdat->pwidth = 136; //h-pulse-width 水平脉冲宽度
pdat->pheight = 6; // v-pulse-width 垂直脉冲宽度
pdat->bits_per_pixel = 18;
pdat->bytes_per_pixel = 4;
pdat->index = 0;
pdat->vram[0] = dma_alloc_noncoherent(pdat->width * pdat->height * pdat->bytes_per_pixel);
pdat->vram[1] = dma_alloc_noncoherent(pdat->width * pdat->height * pdat->bytes_per_pixel);
pdat->timing.pixel_clock_hz = 65000000; //65MHZ 时钟
pdat->timing.h_front_porch = 24; //水平前沿值
pdat->timing.h_back_porch = 160; // //水平后沿值
pdat->timing.h_sync_len = 1344; //
pdat->timing.v_front_porch = 3; //垂直前沿值
pdat->timing.v_back_porch = 29; //垂直后沿值
pdat->timing.v_sync_len = 806;
pdat->timing.h_sync_active = false;
pdat->timing.v_sync_active = false;
pdat->timing.den_active = false;
pdat->timing.clk_active = false;
pdat->backlight = &led_pwm_bl;
fb->name = "fb-f1c100s";
fb->width = pdat->width;
fb->height = pdat->height;
fb->pwidth = pdat->pwidth;
fb->pheight = pdat->pheight;
fb->bpp = pdat->bytes_per_pixel * 8;
fb->priv = pdat;
f1c100s_clk_pll_video_set_enable(true);
f1c100s_clk_debe_init();
f1c100s_clk_defe_init();
f1c100s_clk_tcon_init();
// clk_enable(pdat->clkdefe);
// clk_enable(pdat->clkdebe);
// clk_enable(pdat->clktcon);
f1c100s_clk_defe_enable();
f1c100s_clk_debe_enable();
f1c100s_clk_tcon_enable();
if(pdat->rstdefe >= 0)
reset_f1c100s_deassert(&reset_2, pdat->rstdefe - reset_2.base);
if(pdat->rstdebe >= 0)
reset_f1c100s_deassert(&reset_2, pdat->rstdebe - reset_2.base);
if(pdat->rsttcon >= 0)
reset_f1c100s_deassert(&reset_2, pdat->rsttcon - reset_2.base);
for(i = 0x0800; i < 0x1000; i += 4)
write32(pdat->virtdebe + i, 0);
fb_f1c100s_init_hw(pdat);
}
网址的fb-f1c100s.c文件下载 fb-f1c100s.zip
页次: 1