您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]这坑爹的AT070TN92显示器,TFT的啊 。... 
本帖共有2880个阅读者
发表帖子 发表投票 回复主题
[求助]这坑爹的AT070TN92显示器,TFT的啊 。。。。
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]这坑爹的AT070TN92显示器,TFT的啊 。。。。

处理方式:SYNC模式,DE通过10K拉高(不连接BF532任何IO),起作用的HS,VS2个信号,时序已经和说明书上匹配,就它娘的没反应,现象为白屏白屏,就是显示不出图像,调试看到SDRAM内存数据,图像正确。

知道的朋友给个参考啊。。。


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/16 17:08:55
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

这是初始化程序:

其中:HS_PNT=800,VS_PNT=480

hs_pnt_blank=1056,vs_pnt_blank=525

时钟为33.3MHZ.

void InitDMA(void)
{  
*pDMA0_START_ADDR = &DisplayBuffer[0][0];

*pDMA0_X_COUNT = hs_pnt;
*pDMA0_X_MODIFY = 2;
*pDMA0_Y_COUNT = vs_pnt_blank;
*pDMA0_Y_MODIFY = 2;
*pDMA0_CONFIG = 0x1034;
}

void InitPPI(void)
{
*pPPI_CONTROL = 0x781e;
*pPPI_DELAY = 46;
*pPPI_COUNT = hs_pnt-1;
*pPPI_FRAME = vs_pnt_blank;
}

void InitTimer(void)
{
*pTIMER1_PERIOD  = hs_pnt_blank;
*pTIMER1_WIDTH  = 35;
*pTIMER1_CONFIG  = 0x00a9;
*pTIMER2_PERIOD  = hs_pnt_blank*vs_pnt_blank;
*pTIMER2_WIDTH  = hs_pnt_blank*10;
*pTIMER2_CONFIG  = 0x00a9;
}

void PPI_TMR_DMA_Enable(void)
{
*pDMA0_CONFIG |= 0x1;
asm("ssync;");
InitTimer();  
*pPPI_CONTROL |= 0x1;  
asm("ssync;");
*pTIMER_ENABLE|= 0x0006;
asm("ssync;");
}

void PPI_TMR_DMAR_Disable(void)
{
*pDMA0_CONFIG &= (~0x1);
*pPPI_CONTROL &= (~0x1);
}


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/16 17:10:41
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
也试过DE拉低,还不行。

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/17 11:25:00
forgetall(论坛新手)
forgetall
头衔:社区公民
帮派:无帮无派
帖数:28
金钱:295
积分:29
注册时间:2011/12/13
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
示波器看过波形没


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/12/17 13:22:25
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
看过了。等明天发个波形上来。

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/17 19:21:03
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2011121820273420.jpg [ 49.95 KB 838×578 ] (缩略时请点击查看原图)

 


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/18 20:29:38
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2011121820461711.jpg [ 47.31 KB 836×582 ] (缩略时请点击查看原图)

 


上传的图片
  2011121820463411.jpg [ 51.39 KB 837×592 ] (缩略时请点击查看原图)

 


上传的图片
  2011121820465611.jpg [ 51.58 KB 835×581 ] (缩略时请点击查看原图)

 


上传的图片
  201112182047711.jpg [ 66.02 KB 837×584 ] (缩略时请点击查看原图)

 


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/18 20:48:31
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

它娘的,终于搞定了,这狗日的供应商,给我的是一个坏屏幕。。。。

贴出源程序,SCLK为100MHZ,TFT‘DCLK为33.3MHZ...



#define lcd_c

#include <cdefBF532.h>
#include <ccblkfn.h>
#include <sys\exception.h>
#include <math.h>
#include <signal.h>
#include <stdlib.h>
#include "public.h"
#include "lcd.h"

section("sdram0_bank1") unsigned char DisplayBuffer[vs_pnt][hs_pnt*3];
section("sdram0_bank1") unsigned char DisplayBuffer_565[vs_pnt][hs_pnt*3];

void LCD_Init(void)
{
InitDMA();
InitPPI();
InitTimer();
PPI_TMR_DMA_Enable();
}

void InitDMA(void)
{  
*pDMA0_START_ADDR = &DisplayBuffer_565[0][0];
*pDMA0_X_COUNT = hs_pnt;
*pDMA0_X_MODIFY = 2;
*pDMA0_Y_COUNT = vs_pnt;
*pDMA0_Y_MODIFY = 2;
*pDMA0_CONFIG = 0x1034;
}

void InitPPI(void)
{
*pPPI_CONTROL = 0x781e;
*pPPI_DELAY = 10;
//*pPPI_COUNT = hs_pnt_blank-1;
*pPPI_COUNT = hs_pnt-1;
*pPPI_FRAME = vs_pnt;
}

void InitTimer(void)
{
*pTIMER1_PERIOD  = hs_pnt_blank;
*pTIMER1_WIDTH  = 35;
*pTIMER1_CONFIG  = 0x00a9;
*pTIMER2_PERIOD  = hs_pnt_blank*vs_pnt_blank;
*pTIMER2_WIDTH  = hs_pnt_blank*10;
*pTIMER2_CONFIG  = 0x00a9;
}

void PPI_TMR_DMA_Enable(void)
{
*pDMA0_CONFIG |= 0x1;
asm("ssync;");
InitTimer();  
*pPPI_CONTROL |= 0x1;  
asm("ssync;");
*pTIMER_ENABLE|= 0x0006;
asm("ssync;");
}

void PPI_TMR_DMAR_Disable(void)
{
*pDMA0_CONFIG &= (~0x1);
*pPPI_CONTROL &= (~0x1);
}

/*
void bgrtorgb24(void)
{
int i,j;
int a,b,c;
for(i=0;i<272;i++)
{
  for(j=0;j<1440;j++)
  {
   TempBuffer_img[i][j] = Inputdata[i*1440+j+54];  
  }
}
for(i=0;i<272;i++)
{
  for(j=0;j<480;j++)
  {
      a = TempBuffer_img[i][j*3];
      b = TempBuffer_img[i][j*3+1];
      c = TempBuffer_img[i][j*3+2];
      TempBuffer_img[i][j*3] = c;
      TempBuffer_img[i][j*3+1] = b;
      TempBuffer_img[i][j*3+2] = a;
  }
}

for(i=0;i<272;i++)
{
  for(j=0;j<1440;j++)
  {
   DisplayBuffer[i][j] = (TempBuffer_img[271-i][j]);
  }
}
}
*/
void COLOR_Bar(void)
{
int i,j;

for(i=0;i<480;i++)
{
  for(j=0;j<80;j++)
   {
    DisplayBuffer[i][j*3+0] = 0x00;
    DisplayBuffer[i][j*3+1] = 0x00;
    DisplayBuffer[i][j*3+2] = 0xff;
   }
  for(j=80;j<160;j++)
   {
    DisplayBuffer[i][j*3+0] = 0xff;
        DisplayBuffer[i][j*3+1] = 0x00;                                                                                                                                                                                                                                                                                                   DisplayBuffer[i][j*3+1] = 0x00;
    DisplayBuffer[i][j*3+2] = 0x00;//red
   }
  for(j=160;j<240;j++)
   {
    DisplayBuffer[i][j*3+0] = 0x00;
    DisplayBuffer[i][j*3+1] = 0xff;
    DisplayBuffer[i][j*3+2] = 0x00;//green
   }
  for(j=240;j<320;j++)
   {
    DisplayBuffer[i][j*3+0] = 0x00;
    DisplayBuffer[i][j*3+1] = 0x00;
    DisplayBuffer[i][j*3+2] = 0xff;//blue
   }
  for(j=320;j<400;j++)
   {
    DisplayBuffer[i][j*3+0] = 0xff;
    DisplayBuffer[i][j*3+1] = 0xff;
    DisplayBuffer[i][j*3+2] = 0x0;//red+green
   }
  for(j=400;j<480;j++)
   {
    DisplayBuffer[i][j*3+0] = 0x00;
    DisplayBuffer[i][j*3+1] = 0xff;
    DisplayBuffer[i][j*3+2] = 0xff;//red+blue
   }
  for(j=480;j<560;j++)
   {
    DisplayBuffer[i][j*3+0] = 0xff;
    DisplayBuffer[i][j*3+1] = 0x00;
    DisplayBuffer[i][j*3+2] = 0xff;//green+blue
   }
  for(j=560;j<640;j++)
   {
    DisplayBuffer[i][j*3+0] = 0xff;
    DisplayBuffer[i][j*3+1] = 0xff;
    DisplayBuffer[i][j*3+2] = 0xff;
   }
  for(j=640;j<720;j++)
   {
    DisplayBuffer[i][j*3+0] = 0x00;
    DisplayBuffer[i][j*3+1] = 0xff;
    DisplayBuffer[i][j*3+2] = 0x00;//green
   }
  for(j=720;j<800;j++)
   {
    DisplayBuffer[i][j*3+0] = 0xff;
    DisplayBuffer[i][j*3+1] = 0x00;
    DisplayBuffer[i][j*3+2] = 0;//blue
   }
}  
}
        
void RGB888_RGB565(unsigned char *src, int src_len, unsigned char *dst)
{
    int i = 0;
    int j = 0;
    
    if (src_len % 3 != 0)
    {
        return;
    }
    for (i = 0; i < src_len; i += 3)
    {
        dst[j] = src[i] >> 3; // B
        dst[j] |= ((src[i+1] & 0x07) << 5); // G
        dst[j+1] = src[i+2] & 0xF8; // R
        dst[j+1] |= (src[i+1] >> 5); // G
        j += 2;
    }
}

#undef lcd_c


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/19 17:57:39
尊贵身份标志
夜色飘摇(论坛版主)
夜色飘摇
头衔:社区公民
帮派:无帮无派
帖数:350
金钱:1773
积分:332
注册时间:2011/6/8
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
做开发最担心的就是这,查了好久,最后发现是硬件问题,恭喜你,同时也谢谢你的分享.

我要成为勇敢的海上战士!
等级:论坛版主 参考IP地址:*.*.*.*
2011/12/20 18:08:56
forgetall(论坛新手)
forgetall
头衔:社区公民
帮派:无帮无派
帖数:28
金钱:295
积分:29
注册时间:2011/12/13
9信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
确实坑爹

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/12/21 9:28:43
11
1
1/2
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159146 Call, 1 Queries, Processed in 0.015625 second(s),