3834|1

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

AM1808 调试STN LCD问题 [复制链接]

最近再用AM1808 调STN 4bpp LCD,直接用的是RASter 模式 问题是初始化之后只能看到PCLK有输出,LCD_HSYNC,LCD_VSYNC都没有变化一直为0,
觉得是controller这边设置的问题,附上我的初始化程序,请帮忙看看是哪里出问题了,谢谢!!

unsigned int i =0,j=0;
unsigned short  image2[38432/2];
    for(i=0;i<16;i++)
{
     if(i==0)
     {
       image2 = 0x2000;
     }
     else
     {
       image2 = i;
     }
}
    for(i=16;i<(38432/2);i++)
    {
     image2 = 0xFFFF;
    }
PSCModuleControl(SOC_PSC_1_REGS, HW_PSC_LCDC, PSC_POWERDOMAIN_ALWAYS_ON,
       PSC_MDCTL_NEXT_ENABLE);
    LCDPinMuxSetup();
    /* Configure backlight/power control pins */
    ConfigRasterDisplayEnable();
    /* disable raster */
    RasterDisable(SOC_LCDC_0_REGS);
   
    /* configure the pclk */
    //RasterClkConfig(SOC_LCDC_0_REGS, 7833600, 150000000);
    RasterClkConfig(SOC_LCDC_0_REGS, 6000000, 150000000);//最快4.5MHZ PCLK
    /* configuring DMA of LCD controller */ //framebuffer size 最好是burst-size的整数倍
/*    RasterDMAConfig(SOC_LCDC_0_REGS, RASTER_DOUBLE_FRAME_BUFFER,
                    RASTER_BURST_SIZE_16, RASTER_FIFO_THRESHOLD_8,
                    RASTER_BIG_ENDIAN_DISABLE);
                    //RASTER_SINGLE_FRAME_BUFFER,
*/
    RasterDMAConfig(SOC_LCDC_0_REGS, RASTER_DOUBLE_FRAME_BUFFER,
              RASTER_BURST_SIZE_8, RASTER_FIFO_THRESHOLD_8,
                        RASTER_BIG_ENDIAN_DISABLE);
    /* configuring modes(ex:tft or stn,color or monochrome etc) for raster controller */
    //RasterModeConfig(SOC_LCDC_0_REGS, RASTER_DISPLAY_MODE_TFT,
    //                 RASTER_PALETTE_DATA, RASTER_COLOR, RASTER_RIGHT_ALIGNED);
    RasterModeConfig(SOC_LCDC_0_REGS, RASTER_DISPLAY_MODE_STN,
                         RASTER_PALETTE_DATA, RASTER_MONOCHROME, RASTER_MONO4B);
    /* frame buffer data is ordered from least to Most significant bye */
    RasterLSBDataOrderSelect(SOC_LCDC_0_REGS);
   
    /* disable nibble mode */
    //RasterNibbleModeDisable(SOC_LCDC_0_REGS);
    RasterNibbleModeEnable(SOC_LCDC_0_REGS);//enable nibble mode for 1 ,2, 4 bpp
     /* configuring the polarity of timing parameters of raster controller */
  /*  RasterTiming2Configure(SOC_LCDC_0_REGS, RASTER_FRAME_CLOCK_LOW |
                                            RASTER_LINE_CLOCK_LOW  |
                                            RASTER_PIXEL_CLOCK_LOW |
                                            RASTER_SYNC_EDGE_RISING|
                                            RASTER_SYNC_CTRL_ACTIVE|
                                            RASTER_AC_BIAS_HIGH     , 0, 255);
*/
    //d0-d3在PCLK 上升沿打到数据线上,在下降沿被屏的PCLK latch, VSYNC/HSYNC
       //都在PCLK的上升沿驱动,AC_BIAS 在STN模式下被忽略
    RasterTiming2Configure(SOC_LCDC_0_REGS, RASTER_FRAME_CLOCK_HIGH |
                                      RASTER_LINE_CLOCK_HIGH  |
                                      RASTER_PIXEL_CLOCK_HIGH |
                                                RASTER_SYNC_EDGE_RISING|
                                                RASTER_SYNC_CTRL_ACTIVE|
                                                RASTER_AC_BIAS_LOW     , 0, 255);
    /* configuring horizontal timing parameter */
   //RasterHparamConfig(SOC_LCDC_0_REGS, 480, 41, 2, 2);
    RasterHparamConfig(SOC_LCDC_0_REGS, 320, 2, 1, 1);
    /* configuring vertical timing parameters */
   //RasterVparamConfig(SOC_LCDC_0_REGS, 272, 10, 3, 3);
    RasterVparamConfig(SOC_LCDC_0_REGS, 240, 1, 0, 0);
   /* configuring fifo delay to */
   RasterFIFODMADelayConfig(SOC_LCDC_0_REGS, 2);
RasterDMAFBConfig(SOC_LCDC_0_REGS,
                      (unsigned int)image2,
                      (unsigned int)image2 + sizeof(image2) - 2,
                      0);
    RasterDMAFBConfig(SOC_LCDC_0_REGS,
                         (unsigned int)image2,
                         (unsigned int)image2 + sizeof(image2) - 2,
                         1);
    //enable End of frame interrupt////
    //RasterEndOfFrameIntEnable(SOC_LCDC_0_REGS);
    // enable raster
    RasterEnable(SOC_LCDC_0_REGS);
while(1)
    {
     i = HWREG(SOC_LCDC_0_REGS + LCDC_LCD_STAT);
     i = i & 0x300;
     if(i!=0)
     {
      //HWREG(SOC_LCDC_0_REGS + LCDC_RASTER_CTRL) &=~ LCDC_RASTER_CTRL_RASTER_EN;
      j = HWREG(SOC_LCDC_0_REGS + LCDC_LCD_STAT) & i ;
      HWREG(SOC_LCDC_0_REGS + LCDC_LCD_STAT) = j ;
      if (j & RASTER_END_OF_FRAME0_INT_STAT)
      {
         myRasterDMAFBConfig(SOC_LCDC_0_REGS,
                                         (unsigned int)image2,
                                         (unsigned int)image2 + sizeof(image2) - 2,
                                         0);
      }
      else if(j & RASTER_END_OF_FRAME1_INT_STAT)
      {
       myRasterDMAFBConfig(SOC_LCDC_0_REGS,
                                      (unsigned int)image2,
                                       (unsigned int)image2 + sizeof(image2) - 2,
                                       1);
       }
     }
}

最新回复

"RASTER_END_OF_FRAME1_INT_STAT"这个变量是哪个头文件包函的  详情 回复 发表于 2014-10-29 09:03
点赞 关注
 

回复
举报

6

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
"RASTER_END_OF_FRAME1_INT_STAT"这个变量是哪个头文件包函的
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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