8651|10

5979

帖子

8

TA的资源

版主

楼主
 

EE_BeagleBone_Cape之LCD [复制链接]

作者:chenzhufly QQ:36886052 ( 转载请注明出处) 1. 概述 这篇文档是关于EE_BeagleBone_Cape LCD,内容不是很多,图形界面的编程不再这里加以讨论和学习,主要说说硬件的配置和测试。 2. LCD硬件设计点滴 我使用的是群创的7寸屏,这里主要注意一下AM3359的LCD控制器数据线和群创RGB的连接关系就可以了。如下所示
  1. lcd_data0 B1
    lcd_data1 B2
    lcd_data2 B3
    lcd_data3 B4
    lcd_data4 B5
    lcd_data5 G0
    lcd_data6 G1
    lcd_data7 G2
    lcd_data8 G3
    lcd_data9 G4
    lcd_data10 G5
    lcd_data11 R1
    lcd_data12 R2
    lcd_data13 R3
    lcd_data14 R4
    lcd_data15 R5
复制代码
以下两篇文章还是比较有用的: 1) am335x接入LVDS显示器总结 https://bbs.eeworld.com.cn/viewthread.php?tid=329624 2) 给BeagleBone加装1280*800的LCD模块 https://bbs.eeworld.com.cn/thread-332175-1-1.html###zoom 3. LCD相关驱动 3.1 初始化 不管加什么模块,第一件事情都是初始化,需要在beaglebone_dev_cfg中增加初始化函数。
  1. /* Beaglebone Rev A3 and after */
    static struct evm_dev_cfg beaglebone_dev_cfg[] = {
    {mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {lcdc_init, DEV_ON_BASEBOARD,, PROFILE_NONE},
    {NULL, 0, 0},
    };
复制代码
接个我们看看lcdc_init都干了些什么事情, 1. 管脚分配 2. 配置时钟 3. 注册设备
  1. static void lcdc_init(int evm_id, int profile)
    {
setup_pin_mux(lcdc_pin_mux);
  • if (conf_disp_pll(300000000)) {
    pr_info("Failed configure display PLL, not attempting to"
    "register LCDC\n");
    return;
    }
  • if (am33xx_register_lcdc(&TFC_S9700RTWV35TR_01B_pdata))
    pr_info("Failed to register LCDC device\n");
    return;
    }
    复制代码3.2 Pin_mux 看看和LCD相关的管脚分配吧,也就如下的一些信号了。
    1. /* Module pin mux for LCDC */
      static struct pinmux_config lcdc_pin_mux[] = {
      {"lcd_data0.lcd_data0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data1.lcd_data1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data2.lcd_data2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data3.lcd_data3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data4.lcd_data4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data5.lcd_data5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data6.lcd_data6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data7.lcd_data7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data8.lcd_data8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data9.lcd_data9", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data10.lcd_data10", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data11.lcd_data11", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data12.lcd_data12", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data13.lcd_data13", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data14.lcd_data14", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"lcd_data15.lcd_data15", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
      | AM33XX_PULL_DISA},
      {"gpmc_ad8.lcd_data16", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad9.lcd_data17", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad10.lcd_data18", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad11.lcd_data19", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad12.lcd_data20", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad13.lcd_data21", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad14.lcd_data22", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"gpmc_ad15.lcd_data23", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
      {"lcd_vsync.lcd_vsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"lcd_hsync.lcd_hsync", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"lcd_pclk.lcd_pclk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {NULL, 0},
      };
    复制代码
    这是关于LCD的一些配置信息
    1. static struct lcd_ctrl_config lcd_cfg = {
      &disp_panel,
      .ac_bias = 255,
      .ac_bias_intrpt = 0,
      .dma_burst_sz = 16,
      .bpp = 32,
      .fdd = 0x80,
      .tft_alt_mode = 0,
      .stn_565_mode = 0,
      .mono_8bit_mode = 0,
      .invert_line_clock = 1,
      .invert_frm_clock = 1,
      .sync_edge = 0,
      .sync_ctrl = 1,
      .raster_order = 0,
      };
    复制代码
    1. struct da8xx_lcdc_platform_data TFC_S9700RTWV35TR_01B_pdata = {
      .manu_name = "ThreeFive",
      .controller_data = &lcd_cfg,
      .type = "TFC_S9700RTWV35TR_01B",
      };
    复制代码
    我们还是需要深入的了解一下TFC_S9700RTWV35TR_01B在什么地方定义的,以后我们改其他的屏就在这个地方了drivers/video/Da8xx-fb.c ,正好的我的7寸屏和这个配置比较匹配,就不需要修改了,省事!
    1. static struct da8xx_panel known_lcd_panels[] = {
      /* Sharp LCD035Q3DG01 */
      [0] = {
      .name = "Sharp_LCD035Q3DG01",
      .width = 320,
      .height = 240,
      .hfp = 8,
      .hbp = 6,
      .hsw = 0,
      .vfp = 2,
      .vbp = 2,
      .vsw = 0,
      .pxl_clk = 4608000,
      .invert_pxl_clk = 1,
      },
      /* Sharp LK043T1DG01 */
      [1] = {
      .name = "Sharp_LK043T1DG01",
      .width = 480,
      .height = 272,
      .hfp = 2,
      .hbp = 2,
      .hsw = 41,
      .vfp = 3,
      .vbp = 3,
      .vsw = 10,
      .pxl_clk = 7833600,
      .invert_pxl_clk = 0,
      },
      /* ThreeFive S9700RTWV35TR */
      [2] = {
      .name = "TFC_S9700RTWV35TR_01B",
      .width = 800,
      .height = 480,
      .hfp = 39,
      .hbp = 39,
      .hsw = 47,
      .vfp = 13,
      .vbp = 29,
      .vsw = 2,
      .pxl_clk = 30000000,
      .invert_pxl_clk = 0,
      },
      };
    复制代码
    1. struct da8xx_panel {
      const char name[25]; /* Full name _ */
      unsigned short width;
      unsigned short height;
      int hfp; /* Horizontal front porch */
      int hbp; /* Horizontal back porch */
      int hsw; /* Horizontal Sync Pulse Width */
      int vfp; /* Vertical front porch */
      int vbp; /* Vertical back porch */
      int vsw; /* Vertical Sync Pulse Width */
      unsigned int pxl_clk; /* Pixel clock */
      unsigned char invert_pxl_clk; /* Invert Pixel clock */
      };
    复制代码
    4. 相关测试结果
    5. PDF下载 EE_BeagleBone_Cape之LCD.pdf (671.19 KB, 下载次数: 295)

    最新回复

    嗯,正需要呢,谢谢楼主!  详情 回复 发表于 2013-12-22 11:34

    点评

    楼主的文章正需要!感谢分享啊!!!!!:loveliness:  详情 回复 发表于 2013-7-14 18:07
    点赞 关注
    个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
    ===================================
    做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
     

    回复
    举报

    166

    帖子

    226

    TA的资源

    一粒金砂(中级)

    沙发
     
    楼主 V5
     
     

    回复

    2002

    帖子

    24

    TA的资源

    五彩晶圆(高级)

    板凳
     
    漂亮,佩服
     
     
     

    回复

    1173

    帖子

    3

    TA的资源

    五彩晶圆(初级)

    4
     
    酷毙了
     
     
     

    回复

    11

    帖子

    0

    TA的资源

    一粒金砂(中级)

    5
     
    lz的电路板原理图都时开放的么?
     
     
     

    回复

    5979

    帖子

    8

    TA的资源

    版主

    6
     
    是开放的,呵呵,没找到?
    个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
    ===================================
    做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
     
     
     

    回复

    20

    帖子

    0

    TA的资源

    一粒金砂(中级)

    7
     
    支持一下,楼主做的不错啊
     
     
     

    回复

    1246

    帖子

    19

    TA的资源

    五彩晶圆(初级)

    8
     

    回复 楼主chenzhufly 的帖子

    楼主的文章正需要!感谢分享啊!!!!!
     
     
     

    回复

    19

    帖子

    0

    TA的资源

    一粒金砂(中级)

    9
     
    感谢LZ
     
     
     

    回复

    910

    帖子

    657

    TA的资源

    五彩晶圆(初级)

    10
     
    谢谢楼主。楼主V5:rose:
    个人签名天下难事,必做于易;天下大事,必做于细。
    与其博览群书,不如精读一本。
     
     
     

    回复

    3

    帖子

    0

    TA的资源

    一粒金砂(初级)

    11
     
    嗯,正需要呢,谢谢楼主!
     
     
     

    回复
    您需要登录后才可以回帖 登录 | 注册

    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表