WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#76 2018-12-02 13:38:34

执念执战
会员
注册时间: 2018-11-27
累计积分: 4

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

在大佬的裸机代码基础上移植了ZLG_GUI并显示了旋转立方体。

gifeditor_20181202_114251.gif
可惜大佬没写例子的外设都还没摸索会,不然就多加点功能了。
另外,我想以此写一篇新手裸机教程,可以吗?

离线

#77 2018-12-02 13:46:22

basicdev
会员
注册时间: 2017-10-02
累计积分: 159

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

这个Demo真是666,这个是gif的吗,是不是用zlg gui模拟器导出的gif,方便分享代码吗?

离线

#78 2018-12-02 15:11:51

执念执战
会员
注册时间: 2018-11-27
累计积分: 4

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

basicdev 说:

这个Demo真是666,这个是gif的吗,是不是用zlg gui模拟器导出的gif,方便分享代码吗?

想多了,这个是荔枝派屏幕显示,手机拍下来,然后软件转成GIF的,图像质量一下降,颜色都没了,不好看了。
但这个的demo我已经写了教程,在博客园,有源码。 https://www.cnblogs.com/zhinianzhizhan/p/10051013.html   。
就是在荔枝派Nano上面移植显示的,要的话拿去。不过没有你说的GUI自己导出GIF的功能........它没有那么高级,图片显示函数都要自己写,简单的菜单等功能倒是能实现,虽然丑了点。而且我不清楚这个GUI是否免费,纯粹拿来玩。如果你想要你说的功能,得自己写或另外移植支持此功能的GUI了。另外,驱动代码就是本帖子的大神的作品,希望楼主允许。

最近编辑记录 执念执战 (2018-12-02 15:12:51)

离线

#79 2018-12-02 15:25:24

basicdev
会员
注册时间: 2017-10-02
累计积分: 159

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

执念执战 说:
basicdev 说:

这个Demo真是666,这个是gif的吗,是不是用zlg gui模拟器导出的gif,方便分享代码吗?

想多了,这个是荔枝派屏幕显示,手机拍下来,然后软件转成GIF的,图像质量一下降,颜色都没了,不好看了。
但这个的demo我已经写了教程,在博客园,有源码。 https://www.cnblogs.com/zhinianzhizhan/p/10051013.html   。
就是在荔枝派Nano上面移植显示的,要的话拿去。不过没有你说的GUI自己导出GIF的功能........它没有那么高级,图片显示函数都要自己写,简单的菜单等功能倒是能实现,虽然丑了点。而且我不清楚这个GUI是否免费,纯粹拿来玩。如果你想要你说的功能,得自己写或另外移植支持此功能的GUI了。另外,驱动代码就是本帖子的大神的作品,希望楼主允许。

感谢解惑, 拜读了你的帖子,简直就是小白从入门到精通啊,还提供源码下载。

离线

#80 2018-12-02 16:08:07

执念执战
会员
注册时间: 2018-11-27
累计积分: 4

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

basicdev 说:
执念执战 说:
basicdev 说:

这个Demo真是666,这个是gif的吗,是不是用zlg gui模拟器导出的gif,方便分享代码吗?

想多了,这个是荔枝派屏幕显示,手机拍下来,然后软件转成GIF的,图像质量一下降,颜色都没了,不好看了。
但这个的demo我已经写了教程,在博客园,有源码。 https://www.cnblogs.com/zhinianzhizhan/p/10051013.html   。
就是在荔枝派Nano上面移植显示的,要的话拿去。不过没有你说的GUI自己导出GIF的功能........它没有那么高级,图片显示函数都要自己写,简单的菜单等功能倒是能实现,虽然丑了点。而且我不清楚这个GUI是否免费,纯粹拿来玩。如果你想要你说的功能,得自己写或另外移植支持此功能的GUI了。另外,驱动代码就是本帖子的大神的作品,希望楼主允许。

感谢解惑, 拜读了你的帖子,简直就是小白从入门到精通啊,还提供源码下载。


实在是因为荔枝派吃灰太久,突然有大佬弄了个能入门的东西,所以想让其他还没入门的也感受一下。而且这些都是单片机思维的东西,一般的接触起来也简单。以后学一下更高级的东西再写移植这个立方体的教程。当然,如果楼主能放出点各个驱动的简单使用代码,我还打算弄个小掌机,基于这个3D显示写点小游戏,来更加深入的写点入门帖。可惜,人家能写出来源码,我都不会用,这个差距一下子就出来了......

离线

#81 2018-12-02 17:42:12

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,164

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

执念执战 说:
basicdev 说:
执念执战 说:

想多了,这个是荔枝派屏幕显示,手机拍下来,然后软件转成GIF的,图像质量一下降,颜色都没了,不好看了。
但这个的demo我已经写了教程,在博客园,有源码。 https://www.cnblogs.com/zhinianzhizhan/p/10051013.html   。
就是在荔枝派Nano上面移植显示的,要的话拿去。不过没有你说的GUI自己导出GIF的功能........它没有那么高级,图片显示函数都要自己写,简单的菜单等功能倒是能实现,虽然丑了点。而且我不清楚这个GUI是否免费,纯粹拿来玩。如果你想要你说的功能,得自己写或另外移植支持此功能的GUI了。另外,驱动代码就是本帖子的大神的作品,希望楼主允许。

感谢解惑, 拜读了你的帖子,简直就是小白从入门到精通啊,还提供源码下载。


实在是因为荔枝派吃灰太久,突然有大佬弄了个能入门的东西,所以想让其他还没入门的也感受一下。而且这些都是单片机思维的东西,一般的接触起来也简单。以后学一下更高级的东西再写移植这个立方体的教程。当然,如果楼主能放出点各个驱动的简单使用代码,我还打算弄个小掌机,基于这个3D显示写点小游戏,来更加深入的写点入门帖。可惜,人家能写出来源码,我都不会用,这个差距一下子就出来了......

感谢 @执念执战 这么细致入微的入门教程, 感谢移植这么漂亮的ZLG GUI。


@执念执战分享的代码:
minimal_f1c100s_framebuffer_zlggui.rar

我在linux下编译的时候有整数类型定义错误,所以稍稍改了一下通过编译: minimal_f1c100s_fb_zlggui.tgz

我换上了4.3寸液晶体验了一把:

离线

#82 2018-12-03 11:12:23

vigour1000
会员
注册时间: 2018-11-19
累计积分: 31

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

裸奔要做成stm32f103那样的标准库方式才好统一研究

离线

#83 2018-12-06 23:32:37

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

学习

离线

#84 2018-12-11 20:10:42

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

大侠,我编译的时候出现mksunxi无法编译,还请问大概是什么情况。
我已经使用root用户来编译了,还提示没有权限。
minimal_f1c100s.jpg

离线

#85 2018-12-11 20:31:04

达克罗德
会员
注册时间: 2018-04-10
累计积分: 483

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

小菜 说:

大侠,我编译的时候出现mksunxi无法编译,还请问大概是什么情况。
我已经使用root用户来编译了,还提示没有权限。
https://whycan.cn/files/members/1297/minimal_f1c100s.jpg

没遇到过,你试试把sunxitool的可执行文件用chmod 777处理下

离线

#86 2018-12-11 21:23:15

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

原来是tools/mksunxi/mksunxi没有执行权限。多谢指点。

离线

#87 2018-12-11 21:46:19

小菜
会员
注册时间: 2018-12-06
累计积分: 34

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

编译完的firmware.bin文件可以从SD卡里运行吗?还是必须要烧到flash中?

离线

#88 2018-12-11 22:01:36

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,164

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

小菜 说:

编译完的firmware.bin文件可以从SD卡里运行吗?还是必须要烧到flash中?

不行, spl(boot0)里面没有sd卡驱动,xboot最新的代码或许可以了

离线

#89 2018-12-18 09:04:43

dearsohucom
会员
注册时间: 2018-12-18
累计积分: 4

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

各位真牛逼,吾等在此膜拜!

离线

#90 2019-01-17 10:31:15

duckduckgo
会员
注册时间: 2018-12-13
累计积分: 42

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

ce-f1c100s-timer.c和cs-f1c100s-timer.c这两个有什么区别?

离线

#91 2019-01-17 17:11:18

siwen
会员
注册时间: 2019-01-17
累计积分: 7

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

我想买一款F1C200S的产品拆解一下,求产品链接。

离线

#92 2019-01-17 17:26:56

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,164

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

siwen 说:

我想买一款F1C200S的产品拆解一下,求产品链接。

C100,C500,C600都是同一个die,估计C200也差不多吧

离线

#93 2019-01-18 20:11:15

jw__liu
会员
注册时间: 2019-01-18
累计积分: 40

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

不错受到鼓舞 正在做nuc972的显示代码一天了还没头绪。

离线

#94 2019-01-23 13:45:37

Jin劲
会员
注册时间: 2018-04-06
累计积分: 154

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

A

A

AAAAAAAAAAAA

离线

#95 2019-01-28 13:35:36

xinyu_khan
会员
注册时间: 2019-01-15
累计积分: 31

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

学习了

离线

#96 2019-01-30 18:16:57

0752ben
会员
注册时间: 2019-01-30
累计积分: 5

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

首先感谢楼主的贡献,源码在荔枝派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

离线

#97 2019-01-30 18:25:56

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 6,164

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

@0752ben 厉害厉害, 感谢分享!

离线

#98 2019-01-30 19:02:33

达克罗德
会员
注册时间: 2018-04-10
累计积分: 483

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

那是几个显示相关模块的内部复位管,和时序没什么关系

离线

#99 2019-02-02 22:39:30

0752ben
会员
注册时间: 2019-01-30
累计积分: 5

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

你好,达克罗德
我在修改液framebuffer初始化函数的时候,void fb_f1c100s_init(framebuffer_t * fb)函数中,只要修改了频率参数,  您的代码中 原来pdat->timing.pixel_clock_hz = 33000000 ,只要这个参数一旦修改后,不管是变大还是变小。 F1C100S的LCD_CLK硬件引脚就没有信号输出了。
我尝试了下,查询液晶初始化的其他函数,实在没有发现问题所在。
请问下达克罗德,您的代码从XBOOT中移植出来,是否需要修改什么地方,才可以 实现其他分辨率的刷屏频率。

离线

#100 2019-02-03 08:15:57

达克罗德
会员
注册时间: 2018-04-10
累计积分: 483

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

0752ben 说:

你好,达克罗德
我在修改液framebuffer初始化函数的时候,void fb_f1c100s_init(framebuffer_t * fb)函数中,只要修改了频率参数,  您的代码中 原来pdat->timing.pixel_clock_hz = 33000000 ,只要这个参数一旦修改后,不管是变大还是变小。 F1C100S的LCD_CLK硬件引脚就没有信号输出了。
我尝试了下,查询液晶初始化的其他函数,实在没有发现问题所在。
请问下达克罗德,您的代码从XBOOT中移植出来,是否需要修改什么地方,才可以 实现其他分辨率的刷屏频率。

71楼的修改你改了吗
我最近要支持1024x600,成功了我发出来

离线

#101 2019-02-04 20:41:03

0752ben
会员
注册时间: 2019-01-30
累计积分: 5

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

你好,达克罗德。
我的工程替换了71楼的 “完整FB-f1c100s.c文件”,编译成功后,修改pdat->timing.pixel_clock_hz  ,情况是一样的,LCD_CLK硬件引脚就没有信号输出。

离线

#102 2019-02-10 02:01:11

达克罗德
会员
注册时间: 2018-04-10
累计积分: 483

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

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能设置成更高时钟了

离线

#103 2019-02-21 22:18:24

www220
会员
注册时间: 2018-02-09
累计积分: 46

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

有usb开源资料就爽了

离线

#104 2019-03-04 16:30:40

0752ben
会员
注册时间: 2019-01-30
累计积分: 5

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

达克罗德 说:
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

离线

#105 2019-03-04 19:35:14

达克罗德
会员
注册时间: 2018-04-10
累计积分: 483

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

0752ben 说:
达克罗德 说:
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

不好意思,实在没有时间,我只是业余玩玩,研究也很浅

离线

#106 2019-03-04 20:04:11

0752ben
会员
注册时间: 2019-01-30
累计积分: 5

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

达克罗德,谢谢你的回复

离线

#107 2019-03-05 09:42:18

www220
会员
注册时间: 2018-02-09
累计积分: 46

Re: F1C100S裸奔framebuffer+PWM+GPIO驱动

这种级别芯片跑裸奔实在太累了

离线

页脚