ldqmoon 发表于 2011-2-19 15:36:28

上传自己写的使用M051芯片点亮SSD1963

点击此处下载 ourdev_617071AMOX17.pdf(文件大小:1.64M) (原文件名:如何使用M051芯片点亮SSD1963.pdf)
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_617072PZO573.JPG
(原文件名:IMG_0137.JPG)


程序已经上传了,在这里 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4522181&bbs_page_no=1&search_mode=3&search_text=ldqmoon&bbs_id=9999

_yuming 发表于 2011-2-19 15:54:07

问一下您的SSD1963的版本是多少的。。我用0.2的初始化不行,用V1.1的也不行不知道是不是我的屏坏了、。

我的初始化代码

/**************************************************************************************
函数功能:初始化SSD1963
输入:    无
输出:          无
注意:    无
**************************************************************************************/
void InitSSD1963(void)
{
    //GPIOB->BSRR = GPIO_Pin_0;//禁止芯片操作
        LCD_RST_H();
    LCD_CS_H();
        LCD_RD_H();
        LCD_WR_H();
        LCD_RST_L();
        DelayMs(100);
        LCD_RST_H();
        DelayMs(100);

        WriteCommand(0x01);                //软复位
       
        WriteCommand(0xE2);                //Set PLL with OSC = 10MHz (hardware),        Multiplier N = 35, 250MHz < VCO < 800MHz = OSC*(N+1), VCO = 360MHz
       
        LCD_CS_L();
        WriteData(0x35);                //参数1
        WriteData(0x02);                //参数2 Divider M = 2, PLL = 360/(M+1) = 120MHz
        WriteData(0x04);                //参数3 Validate M and N values
        LCD_CS_H();

        WriteCommand(0xE0);                // Start PLL command
        LCD_CS_L();
        WriteData(0x01);                // enable PLL
        LCD_CS_H();
       
        DelayMs(1);
       
        WriteCommand(0xE0);                // Start PLL command again
        LCD_CS_L();
        WriteData(0x03);                // now, use PLL output as system clock       
        LCD_CS_H();
       
        DelayMs(5);        
       
       
        WriteCommand(0x01);                //软复位
        DelayMs(10);
       
        /*****************************************************************
        * 7" TFT model # TY700TFT800480
        *****************************************************************/
        //Set LSHIFT freq, i.e. the DCLK with PLL freq 120MHz set previously
        //Typical DCLK for TY700TFT800480 is 33.3MHz(datasheet), experiment shows 30MHz gives a stable result
        //30MHz = 120MHz*(LCDC_FPR+1)/2^20
        //LCDC_FPR = 262143 (0x3FFFF)
        //Time per line = (DISP_HOR_RESOLUTION+DISP_HOR_PULSE_WIDTH+DISP_HOR_BACK_PORCH+DISP_HOR_FRONT_PORCH)/30 us = 1056/30 = 35.2us
        WriteCommand(0xE6);
   
        LCD_CS_L();
        WriteData((LCD_FPR >> 16) & 0xFF);
        WriteData((LCD_FPR >> 8) & 0xFF);
        WriteData(LCD_FPR & 0xFF);
        LCD_CS_H();       
       
        //Set LCD mode, varies from individual manufacturer
        WriteCommand(0xB0);
       
        LCD_CS_L();
        WriteData(0x03);//0x10                                // set 18-bit for 7" panel TY700TFT800480
        WriteData(0x00);                                  // set Hsync+Vsync mode
        WriteData(mHIGH((TFT_WIDTH-1)));                 // Set LCD panel size(DISP_HOR_RESOLUTION = 800) H
        WriteData(mLOW((TFT_WIDTH-1)));                // Set LCD panel size(DISP_HOR_RESOLUTION = 800) L
        WriteData(mHIGH((TFT_HEIGHT-1)));                // Set LCD panel size(DISP_VER_RESOLUTION = 480) H
        WriteData(mLOW((TFT_HEIGHT-1)));                // Set LCD panel size(DISP_VER_RESOLUTION = 480) L
        WriteData(0x00);//0x00                                // RGB sequence
        LCD_CS_H();
       
       
        //Set horizontal period
        WriteCommand(0xB4);
       
        LCD_CS_L();
        WriteData(mHIGH(TFT_HSYNC_PERIOD));
        WriteData(mLOW(TFT_HSYNC_PERIOD));
        WriteData(mHIGH((TFT_HSYNC_PULSE + TFT_HSYNC_BACK_PORCH)));
        WriteData(mLOW((TFT_HSYNC_PULSE + TFT_HSYNC_BACK_PORCH)));
        WriteData(TFT_HSYNC_PULSE-1);
        WriteData(0x00);
        WriteData(0x00);
        WriteData(0x00);
        LCD_CS_H();
               
        //Set vertical period
        WriteCommand(0xB6);
       
        LCD_CS_L();
        WriteData(mHIGH(TFT_VSYNC_PERIOD));
        WriteData(mLOW(TFT_VSYNC_PERIOD));
        WriteData(mHIGH((TFT_VSYNC_PULSE + TFT_VSYNC_BACK_PORCH)));
        WriteData(mLOW((TFT_VSYNC_PULSE + TFT_VSYNC_BACK_PORCH)));
        WriteData(TFT_VSYNC_PULSE-1);
        WriteData(0x00);
        WriteData(0x00);
        LCD_CS_H();
       

//        WriteCommand(0x3A);        //Set pixel format, i.e. the bpp
//        LCD_CS_L();
//        WriteData(0x55);         //set 16bpp
//        LCD_CS_H();
               
        WriteCommand(0x36);        //Set pixel format, i.e. the bpp
        LCD_CS_L();
        WriteData(0x00);         //set 16bpp
        LCD_CS_H();
       
        WriteCommand(0xF0);        //设置SSD1963同CPU接口为16bit Set pixel data interface
        LCD_CS_L();
        WriteData(0x03);        //16-bit(565 format) data for 16bpp PIC32MX only
        LCD_CS_H();       
       
        //WriteCommand(0x21);        //进入图形颜色翻转模式
       
//    WriteCommand(0xBC);//重要
//       
//        LCD_CS_L();
//    WriteData(brightness);//亮度值
//    WriteData(contrast);//对比度值
//    WriteData(saturation);//饱和度值
//    WriteData(0x01);//处理机允许
//        LCD_CS_H();
      
        WriteCommand(0x29);        // Turn on display; show the image on display
       
        WriteCommand(0xB8);        //设置GPIO配置
        LCD_CS_L();
        WriteData(0x0F);        //GPIO is controlled by host; 4个IO设置成输出
        WriteData(0x01);        //GPIO0 使用正常的IO功能
        LCD_CS_H();
//
//        WriteCommand(0xBA);        //设置GPIO配置
//        LCD_CS_L();
//        WriteData(0x02);        //GPIO0 使用正常的IO功能
//        LCD_CS_H();
       
        s1963gpio = Down2Up2Left2Right;//LCD方向设置
        SetS1963GpioOut();        //设置固定的输出值
}

ldqmoon 发表于 2011-2-19 16:21:03

你是总线方式还是IO模拟的?
用我程序里的初始化试下

SSD1963调试时比较麻烦, 先确定好1.2v电压正常,时序选择正确。 然后量一下晶振两端的电压,看是不是0.6v左右, 没问题的话再看软件


初始化后回读一下看看是不是你写进去的数据。

ldqmoon 发表于 2011-2-19 16:21:43

如果有示波器的话,可以量量引脚的波形,没波形的话屏就还没坏

_yuming 发表于 2011-2-19 16:44:22

我用的是IO模拟方式,1.2V电压正常,现在是能控制SSD1963的PWM端口打开屏的背光,,现在屏能显示了,但是是屏显示不正常,是一片蓝,不是纯蓝色,是杂七杂八的蓝色。

ldqmoon 发表于 2011-2-19 17:17:53

估计是屏和1963的数据位有问题, 是多少位接的?

_yuming 发表于 2011-2-19 18:49:30

SSD1963和屏是18位接口。。

ldqmoon 发表于 2011-2-27 13:30:25

如何了?
我的QQ是28773030, QQ上聊吧

ldqmoon 发表于 2011-3-3 09:58:48

更改文中一处笔误:
M051会在P3.1为低,复位时进入ISP状态。

更改为
M051会在P3.2为低,复位时进入ISP状态。




点击此处下载 ourdev_619610EVN6JL.pdf(文件大小:1.64M) (原文件名:如何使用M051芯片点亮SSD1963.pdf)

xorX 发表于 2011-3-3 10:05:18

猛顶,多大的屏啊

sankunchai 发表于 2011-3-18 08:26:14

MARK

ccao 发表于 2011-5-28 11:22:03

mark

rubylee 发表于 2011-9-14 09:35:23

留待后用...

firewind 发表于 2013-1-11 22:19:59

ldqmoon 发表于 2011-2-19 16:21 static/image/common/back.gif
你是总线方式还是IO模拟的?
用我程序里的初始化试下



如果晶振电压为零,是不是就是芯片坏了。。。

maxiang1985 发表于 2013-2-25 16:40:50

ldqmoon 发表于 2011-2-19 16:21 static/image/common/back.gif
你是总线方式还是IO模拟的?
用我程序里的初始化试下



你好,问你一下你这里有读取LCD屏的某个点的颜色值?有的话给我好吗?谢谢

ssq91 发表于 2014-10-25 10:53:04

_yuming 发表于 2011-2-19 18:49
SSD1963和屏是18位接口。。

您好,,看您搞这个SSD1963已经很长时间了吧,小弟有一个疑问想请教:怎么修改SSD1963的四个GPIO的输出值呢??我每次都是在初始化函数里设置过一次之后,,以后就改不了了。。。麻烦您指点一点,,多谢。。我的QQ:1786094591
页: [1]
查看完整版本: 上传自己写的使用M051芯片点亮SSD1963