liuweiele 发表于 2010-5-18 23:23:03

共享开源:S3C2450 驱动 群创7寸TFT(AT070TN83,800x480);原理图+驱动源码

一款本人设计的 多用途 TFT LCD接口板,支持群创 5.0, 5.6, 7.0三种TFT;
一块LCD驱动板可在多款ARM开发板上直接使用(Mini2440,TQ2440,TQ6410,UT2416,UT2450,Idea6410);
以下是原理图及S3C2450下的驱动源码:

liuweiele 发表于 2010-5-18 23:23:54

原理图;
点击此处下载 ourdev_555171.rar(文件大小:181K) (原文件名:原理图.rar)

liuweiele 发表于 2010-5-18 23:24:59

基于S3C2450的驱动程序源码:
点击此处下载 ourdev_555174.rar(文件大小:4K) (原文件名:S3C2450_GDev.rar)

liuweiele 发表于 2010-5-18 23:25:46

初始化代码:


static        int        lcd_init(void)
{


        int x,y,m,n;
        U8 pagewidth_in_byte=0,offsize_in_byte=0;       
        U8 clkval=0;
        U16 hsync_cnt,vclk_cnt;
        U16 lcd_horizon_value,lcd_line_value;
        U8 lcd_vbpd,lcd_vfpd,lcd_vspw,lcd_hbpd,lcd_hfpd,lcd_hspw;
        U8 lcd_frame_rate;       
        int i;


        rMISCCR |= (1<<28);// select LCD controller for TFT lcd controller
        rGPCUDP   = 0xAAAAAAAA;
        rGPCCON   = 0xAAAAAAAA;
        rGPDUDP   = 0xAAAAAAAA;
        rGPDCON   = 0xAAAAAAAA;
        rGPLCON = rGPLCON & ~(0x3ff<<20) | (0x1<< 28) | (0x1<< 26) | (0x1<< 24) | (0x1<< 22) | (0x1<< 20);
        rGPLDAT |= (0x1f<<10);


        rGPBUDP &= ~0x3;
        rGPBCON = (rGPBCON & ~((3<<6)|(3<<2)|(3<<0))) | ((1<<6)|(1<<2)|(1<<0)); // Backlight Pwm control
        rGPBDAT|=((1<<0) |(1<<3));

        rGPBDAT &= ~(1<<1);

        lcd_horizon_value = LCD_XSIZE;
        lcd_line_value = LCD_YSIZE;
        lcd_vbpd = VBPD;
        lcd_vfpd = VFPD;
        lcd_vspw = VSPW;
        lcd_hbpd = HBPD;
        lcd_hfpd = HFPD;
        lcd_hspw = HSPW;
        lcd_frame_rate = FRAME_RATE;



        pagewidth_in_byte = lcd_horizon_value/8*16;               
        offsize_in_byte = 0;
       
        hsync_cnt         = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);
        vclk_cnt        = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);
        //clkval = (U8)(((float)CPU_GetHclkHZ()/(float)(hsync_cnt*vclk_cnt*lcd_frame_rate*2))+0.5)-1;       
        clkval                = 5;       

        rWINCON0 &= ~0x01;
        rWINCON1 &= ~0x01;
       
        rVIDCON0 &= (~3); // ENVID Off using Per Frame method

        rVIDCON0 = (VIDOUT<<22)|(L1_DATA16<<19)|(L0_DATA16<<16)|(PNRMODE<<13)|(CLKVALUP<<12)|(clkval<<6)|(0<<5)|(CLKDIR<<4)|(CLKSEL_F<<2)|(0<<0);

       
        rVIDCON1 = (VCLK_INVERTED<<7)|(HSYNC_INVERTED<<6)|(VSYNC_INVERTED<<5)|(VDEN_INVERTED<<4);

        rVIDTCON0 = ((lcd_vbpd-1)<<16)|((lcd_vfpd-1)<<8)|(lcd_vspw-1);
        rVIDTCON1 = ((lcd_hbpd-1)<<16)|((lcd_hfpd-1)<<8)|(lcd_hspw-1);
        rVIDTCON2 = ((lcd_line_value-1)<<11)|(lcd_horizon_value-1);

        #if(LCD_BPP==16)
        rWINCON0 = (BITSWP<<18)|(BYTSWP<<17)|(HAWSWP<<16)|(WINCONx_16WORD_BURST<<9)|(WINCONx_16BPP_565<<2); // 16word burst, 16bpp,
        #endif
       
        #if(LCD_BPP==24)
        rWINCON0 = (BITSWP<<18)|(BYTSWP<<17)|(HAWSWP<<16)|(WINCONx_16WORD_BURST<<9)|(WINCONx_24BPP_888<<2); // 16word burst, 24bpp,
        #endif
       
        rVIDOSD0A = (0<<11)|(0);
        rVIDOSD0B = (lcd_horizon_value-1)<<11|(lcd_line_value-1);       
       
        rVIDW00ADD0B0 = (U32)LCD_Buffer;               
        rVIDW00ADD1B0 = (U32)LCD_Buffer + LCD_BUF_SIZE;
        rVIDW00ADD2B0 = (offsize_in_byte<<13)|(LCD_XSIZE*sizeof(LCD_COLOR));
       
        rDITHMODE = (1<<5)|(1<<3)|(1<<1)|(1<<0);
        //rDITHMODE = 0;
       
        rWINCON0 |= 0x1;
        rVIDCON0 |= (1<<5)|0x3;
//?        rINTSUBMSK |= (0xf << IRQ_SUB_LCD1);        // MASK all LCD Sub Interrupt
       
        DebugPrintf("S3C2450_LCDInit End(800x480)\n");

}

liuweiele 发表于 2010-5-18 23:29:37

JPG格式原理图:

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555175.JPG
(原文件名:原理图.JPG)

liuweiele 发表于 2010-5-18 23:30:41

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555176.JPG
(原文件名:PCB.JPG)

liuweiele 发表于 2010-5-18 23:32:52

安装和显示效果:

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555177.jpg
(原文件名:照片 2357.jpg)

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555178.jpg
(原文件名:照片 2359.jpg)

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555179.jpg
(原文件名:照片 2504.jpg)

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555180.jpg
(原文件名:照片 2508.jpg)

http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555181.jpg
(原文件名:照片 2514.jpg)

lrzxc 发表于 2010-5-18 23:39:47

好帖子,我喜欢

liuweiele 发表于 2010-5-18 23:39:58

LCD屏数据手册:

点击此处下载 ourdev_555182.pdf(文件大小:771K) (原文件名:EK070TN83.pdf)

quzegang 发表于 2010-5-19 00:08:32

请问下楼主AT070TN83价格大概是多少呢?

liuweiele 发表于 2010-5-19 00:18:26

看情况而定...

cqfeiyu 发表于 2010-5-19 00:18:40

不错的东西,用的ADS还是MDK开发的,用于工业显示面板就爽了

liuweiele 发表于 2010-5-19 00:22:58

回复【11楼】cqfeiyu
-----------------------------------------------------------------------

ADS

cqfeiyu 发表于 2010-5-19 00:37:26

有全部源码吗,学习一下,有开发板没?

durgy 发表于 2010-5-19 01:01:25

MARK一下

liuweiele 发表于 2010-5-19 01:02:00

回复【13楼】cqfeiyu
-----------------------------------------------------------------------

你想要哪些源码?

zbjzxc 发表于 2010-5-19 01:13:12

记号~~

cqfeiyu 发表于 2010-5-19 01:23:44

S3C2450的任务就是显示吗?运行操作系统不,如何接收命令,数据,串口通讯还是USB通讯,还是总线通讯,带FIFO不等等疑问非常多

Excellence 发表于 2010-5-19 08:19:57

GUI是UCGUI吗?

liouravr 发表于 2010-5-19 08:27:34

LZ给你2450的串口测试程序啊,要ADS1.2的工程文件,可以吗?

ShawnLinson 发表于 2010-5-19 08:34:47

前排广告位招租。。。。

master5888 发表于 2010-5-19 08:48:15

mark

Scanner 发表于 2010-5-19 08:48:42

CPU使用率是如何计算出来的呢?

Meteora 发表于 2010-5-19 08:49:23

留名

liumaojun_cn 发表于 2010-5-19 08:49:52

mark

niba 发表于 2010-5-19 08:52:57

贴贴精品。。必顶

electricit 发表于 2010-5-19 09:01:58

楼主显示器相当大

liuweiele 发表于 2010-5-19 09:35:42

回复【17楼】cqfeiyu
s3c2450的任务就是显示吗?运行操作系统不,如何接收命令,数据,串口通讯还是usb通讯,还是总线通讯,带fifo不等等疑问非常多
-----------------------------------------------------------------------

目前已经是多线程OS + GUI + FS(修改过的FatFs);
通过串口终端作为控制台向系统发送命令和回馈信息
通过USB将系统的RAM盘,NandFlash,SD卡模拟成USB Mass Store与电脑交换数据

liuweiele 发表于 2010-5-19 09:36:10

OS是继GUI之后的新作:
目前支持信号量和消息队列两种线程间通讯方式;
256级优先级,支持相同优先级的线程,无限线程数

zhiyuan1106 发表于 2010-5-19 09:42:55

mark

liuweiele 发表于 2010-5-19 09:59:09

回复【18楼】Excellence 精益求精
gui是ucgui吗?

-----------------------------------------------------------------------

跟ucGUI相比,区别就大了~~~

damoplus 发表于 2010-5-19 11:03:18

好东西!顶LZ,离酷不远了

liuweiele 发表于 2010-5-19 11:24:28

回复【26楼】electricit
-----------------------------------------------------------------------

电脑显示器?

liuweiele 发表于 2010-5-19 11:27:28

回复【26楼】electricit
楼主显示器相当大
-----------------------------------------------------------------------

用大分辨率的屏幕可以同时做很多事;

liouravr 发表于 2010-5-19 14:01:25

LZ给个2450的串口测试程序啊,随便给个ADS1.2的工程文件y有吗?

liuweiele 发表于 2010-5-19 14:24:09

#include "System.h"


//===========================[ UART ]==============================

volatile unsigned int DebugUartCh=1;

void SelectDebugUart(unsigned int ch) // ch0 ~ ch3. added by junon 060530
{
        DebugUartCh = ch;
        if (ch>3) DebugUartCh = 1; // default UART channel 1
}

#ifdef                __NANDBL
void InitDebugUart(unsigned int baud) // edited by junon 060530
{
        int ch;
        UART_REGS *pUartRegs;
        unsigned int temp;
       
        // select UART function
        rUCON0 &= ~(0x3);//receive disable before gpio set to prevent dummy data input
        rUCON1 &= ~(0x3);//receive disable
        rUCON2 &= ~(0x3);//receive disable
        rUCON3 &= ~(0x3);//receive disable        
       
        temp = (rGPHCON & ~0xffff ) | 0xaaaa;
        rGPHCON = temp;//set uart mode, keep uart mode if it was to prevent gpio set to input, uart
                                     //it will cause cause rx fifo dummy data input.

        for (ch=0;ch<4;ch++)
        {
                pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*ch);       
                pUartRegs->rUlCon = 0x3; //Line control register : Normal,No parity,1 stop,8 bits
             //11]                                                                       
             // Clock Sel,Tx Int,Rx Int, Rx Time Out, Rx err, Loop-back, Send break,Transmit Mode, Receive Mode
             //1   0          0       0    ,   0            1         0               0   ,       01                  01
             //   PCLK2      PulsePulse    Disable    GenerateNormal      Normal      Interrupt or Polling
                pUartRegs->rUCon = 0x845;
                //pUartRegs->rUbrDiv = ((int)(PCLK/16./baud+0.5)-1);   //Baud rate divisior register 0
                pUartRegs->rUbrDiv = 26;   //Baud rate divisior register 0
                pUartRegs->rUfCon = 0x6; //UART FIFO control register, FIFO disable, fifo reset
                pUartRegs->rUmCon = 0x0; //UART MODEM control register, AFC disable
        }
       
}
#else
void InitDebugUart(unsigned int baud) // edited by junon 060530
{
        int ch;
        float DIV_VAL;
        int UDIV_SLOT;
        volatile UART_REGS *pUartRegs;
        unsigned int temp;
               
        // select UART function
        rUCON0 &= ~(0x3);//receive disable before gpio set to prevent dummy data input
        rUCON1 &= ~(0x3);//receive disable
        rUCON2 &= ~(0x3);//receive disable
        rUCON3 &= ~(0x3);//receive disable
       
        temp = (rGPHCON & ~0xffff ) | 0xaaaa;
        rGPHCON = temp;//set uart mode, keep uart mode if it was to prevent gpio set to input, uart
                                     //it will cause cause rx fifo dummy data input.

        for (ch=0;ch<4;ch++)
        {
                pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*ch);       
                pUartRegs->rUlCon = 0x3; //Line control register : Normal,No parity,1 stop,8 bits
             //11]                                                                       
             // Clock Sel,Tx Int,Rx Int, Rx Time Out, Rx err, Loop-back, Send break,Transmit Mode, Receive Mode
             //1   0          0       0    ,   0            1         0               0   ,       01                  01
             //   PCLK2      PulsePulse    Disable    GenerateNormal      Normal      Interrupt or Polling
/*
                pUartRegs->rUCon = 0x245;
                pUartRegs->rUbrDiv = ((int)(PCLK/16./baud+0.5)-1);   //Baud rate divisior register 0
                pUartRegs->rUfCon = 0x0; //UART FIFO control register, FIFO disable
                pUartRegs->rUmCon = 0x0; //UART MODEM control register, AFC disable
                pUartRegs->rUdivSlot= 0x54AA; //UART MODEM control register, AFC disable
*/
                DIV_VAL = ((float)PCLK/16./baud)-1;

                pUartRegs->rUCon = 0x845;
                pUartRegs->rUbrDiv = (int)DIV_VAL;   //Baud rate divisior register 0
                pUartRegs->rUfCon = 0x6; //UART FIFO control register, FIFO disable, tx, rx fifo reset
                pUartRegs->rUmCon = 0x0; //UART MODEM control register, AFC disable

                UDIV_SLOT = (int)( (DIV_VAL-(int)DIV_VAL)*16 );
                switch (UDIV_SLOT) {
                case 0 : pUartRegs->rUdivSlot = 0; break;
                case 1 : pUartRegs->rUdivSlot = 0x0080; break;
                case 2 : pUartRegs->rUdivSlot = 0x0808; break;
                case 3 : pUartRegs->rUdivSlot = 0x0888; break;
                case 4 : pUartRegs->rUdivSlot = 0x2222; break;
                case 5 : pUartRegs->rUdivSlot = 0x4924; break;
                case 6 : pUartRegs->rUdivSlot = 0x4a52; break;
                case 7 : pUartRegs->rUdivSlot = 0x54aa; break;
                case 8 : pUartRegs->rUdivSlot = 0x5555; break;
                case 9 : pUartRegs->rUdivSlot = 0xd555; break;
                case 10 : pUartRegs->rUdivSlot = 0xd5d5; break;
                case 11 : pUartRegs->rUdivSlot = 0xddd5; break;
                case 12 : pUartRegs->rUdivSlot = 0xdddd; break;
                case 13 : pUartRegs->rUdivSlot = 0xdfdd; break;
                case 14 : pUartRegs->rUdivSlot = 0xdfdf; break;
                case 15 : pUartRegs->rUdivSlot = 0xffdf; break;
                }
        }
//        printf("DIV_VAL:%f , UDIV_SLOT:%d\n", DIV_VAL, UDIV_SLOT);
}
#endif



unsigned int Uart_putc(unsigned int c) // edited by junon 060530
{
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       

        if(c=='\n') {
                while(!(pUartRegs->rUtrStat & 0x2));
                pUartRegs->rUtxh = '\r';
        }
        while(!(pUartRegs->rUtrStat & 0x2));       //Wait until THR is empty.
        pUartRegs->rUtxh = c;
        return c;
}



unsigned int Uart_getc(void) // edited by junon 060530
{
        unsigned int chRx;
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       
       
        while(!(pUartRegs->rUtrStat & 0x1)); //Receive data ready
        chRx = pUartRegs->rUrxh;

        return chRx;
}

#ifndef                __NANDBL

int GetIntNum( void)
{
    char str;
    char *string = str;
    int base   = 10;
    int minus    = 0;
    int result   = 0;
    int lastIndex;   
    int i,j;
   
    gets(string);

        i=0; j=0;
        do {
                if (string==0x8) {
                        if (i>0)        i--;
                } else
                        string=string;
        } while(string!=0);


    if(string=='-') {
      minus = 1;
      string++;
    }
   
    if(string=='0' && (string=='x' || string=='X')) {
      base    = 16;
      string += 2;
    }
   
    lastIndex = strlen(string) - 1;
   
    if(lastIndex<0)
      return -1;
   
    if(string=='h' || string=='H' ) {
      base = 16;
      string = 0;
      lastIndex--;
    }

    if(base==10) {
      result = atoi(string);
      result = minus ? (-1*result):result;
    }
    else {
      for(i=0;i<=lastIndex;i++) {
            if(isalpha(string)) {
                if(isupper(string))
                  result = (result<<4) + string - 'A' + 10;
                else
                  result = (result<<4) + string - 'a' + 10;
            }
            else
                result = (result<<4) + string - '0';
      }
      result = minus ? (-1*result):result;
    }
    return result;
}



void Uart_TxEmpty(void)       // added 060624
{
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       

        while(!(pUartRegs->rUtrStat & 0x4)); //Wait until tx shifter is empty.
}


char Uart_GetKey(void) // added 060624
{
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       

        if(pUartRegs->rUtrStat & 0x1)    //Receive data ready
                return pUartRegs->rUrxh;
        else
                return 0;
}


// UART data download function, moved 060718
int UartDownAddress;
U32 UartDownProgramSize;

unsigned int DownloadData(void)
{
    int i;
    U16 checkSum=0,dnCS;
    U32 fileSize=10;
    U8 *downPt, key;
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       

        printf(" Type the download address : ");
        UartDownAddress = GetIntNum();
        if(UartDownAddress == (-1))
                UartDownAddress = 0x31000000;
       
    printf("Do you want to download through Debug UART port from 0x%x? : ",UartDownAddress);
    key=getchar();
    printf("%c\n",key);
    if((key=='n')||(key=='N')) return 0;

    downPt=(U8 *)UartDownAddress;   
    printf("UartDownAddress = %x\n",UartDownAddress);

    printf("Download the plain binary file(.BHC) to be written through UART1 channel\n");
    printf("The file format : <n+6>(4)+(n)+CS(2)\n");
    printf("To transmit .BIN file : wkocm2 xxx.BIN /1 /d:1\n");
    printf("Download methods : COM:8Bit,NP,1STOP\n");

    printf("\nSTATUS : ");
    rINTMSK=BIT_ALLMSK;
   
    //tmp=pUartRegs->rUrxh; //To remove overrun error state.

    i=0;   
    while(i<fileSize)
    {
      while(!(pUartRegs->rUtrStat&0x1));
            *(downPt+i)=pUartRegs->rUrxh;
      if(i==3)
      {
            fileSize=*((U8 *)(UartDownAddress+0))+
            (*((U8 *)(UartDownAddress+1))<<8)+
            (*((U8 *)(UartDownAddress+2))<<16)+
            (*((U8 *)(UartDownAddress+3))<<24);
      }
   
      if((i%1000)==0)
            pUartRegs->rUtxh = '#';
      i++;
    }

    UartDownProgramSize=fileSize-6;

    for(i=4;i<(fileSize-2);i++)
    {
      checkSum+=*((U8 *)(i+UartDownAddress));
    }

    dnCS=*((U8 *)(UartDownAddress+fileSize-2))+
          (*( (U8 *)(UartDownAddress+fileSize-1) )<<8);

    if(checkSum!=dnCS)
    {
      printf("Checksum Error!!! MEM : %xDN : %x\n",checkSum,dnCS);
      return 0;
    }

    printf("\nDownload O.K.\n");
    return 1;
}


unsigned int AUTO_DownloadData(int downaddr)
{
    int i;
    U16 checkSum=0,dnCS;
    U32 fileSize=10;
    U8 *downPt, key;
        volatile UART_REGS *pUartRegs;

        pUartRegs = (UART_REGS *)(UART_REG_BASE+UART_REG_OFFSET*DebugUartCh);       

        printf(" Type the download address : 0x%x",downaddr);
        //UartDownAddress = GetIntNum();
        UartDownAddress = downaddr;
        if(UartDownAddress == (-1))
                UartDownAddress = 0x31000000;
       
    //printf("Do you want to download through Debug UART port from 0x%x? : ",UartDownAddress);
    //key=getchar();
    //printf("%c\n",key);
    //if((key=='n')||(key=='N')) return 0;

    downPt=(U8 *)UartDownAddress;   
    printf("UartDownAddress = %x\n",UartDownAddress);

    printf("Download the plain binary file(.BHC) to be written through UART1 channel\n");
    printf("The file format : <n+6>(4)+(n)+CS(2)\n");
    printf("To transmit .BIN file : wkocm2 xxx.BIN /1 /d:1\n");
    printf("Download methods : COM:8Bit,NP,1STOP\n");

    printf("\nSTATUS : ");
    rINTMSK=BIT_ALLMSK;
   
    //tmp=pUartRegs->rUrxh; //To remove overrun error state.

    i=0;   
    while(i<fileSize)
    {
      while(!(pUartRegs->rUtrStat&0x1));
            *(downPt+i)=pUartRegs->rUrxh;
      if(i==3)
      {
            fileSize=*((U8 *)(UartDownAddress+0))+
            (*((U8 *)(UartDownAddress+1))<<8)+
            (*((U8 *)(UartDownAddress+2))<<16)+
            (*((U8 *)(UartDownAddress+3))<<24);
      }
   
      if((i%1000)==0)
            pUartRegs->rUtxh = '#';
      i++;
    }

    UartDownProgramSize=fileSize-6;

    for(i=4;i<(fileSize-2);i++)
    {
      checkSum+=*((U8 *)(i+UartDownAddress));
    }

    dnCS=*((U8 *)(UartDownAddress+fileSize-2))+
          (*( (U8 *)(UartDownAddress+fileSize-1) )<<8);

    if(checkSum!=dnCS)
    {
      printf("Checksum Error!!! MEM : %xDN : %x\n",checkSum,dnCS);
      return 0;
    }

    printf("\nDownload O.K.\n");
    return 1;
}



//===========================[ BOARD LED ]================================

void Init_LED(void)
{
        // LED1,2,4,8 -> GPC 0,5,6,7 in SMDK2450
        rGPCCON = (rGPCCON&~(0x3<<0))|(0x1<<0);
        rGPCCON = (rGPCCON&~(0x3f<<10))|(0x15<<10);
        rGPCUDP        &= ~((0x3f<<10)|(0x3<<0)); // pull-up/down disable
}

void Led_Display(int data)
{
    rGPCDAT = (rGPCDAT & ~((0x7<<5)|(0x0<<0))) | (((data>>1) & 0x7)<<5) |((data & 0x1)<<0);
}


#endif

//===========================[ Initializing Console ]================================

void Console(unsigned int ch) // edited by junon 060530
{
        SelectDebugUart(ch); // ch0 ~ ch3
        InitDebugUart(115200);
#ifndef                __NANDBL
        SetResTDelay(1000); // Resolution of TDelay is 1000us=1ms
        InitTDelayFunc();
        Init_LED();
#endif
}

jiki119 发表于 2010-5-25 16:08:07

楼主,你的图能打开,但是确实空白的,怎么回事呀?

durgy 发表于 2010-5-25 16:12:25

mark一下

liumaojun_cn 发表于 2010-5-25 17:17:40

mark

liuweiele 发表于 2010-5-25 19:21:53

回复【36楼】jiki119
楼主,你的图能打开,但是确实空白的,怎么回事呀?
-----------------------------------------------------------------------

什么图?

liouravr 发表于 2010-5-25 19:38:45

lz发一个2450的工程文件啊,ADS的.........不行吗

liuweiele 发表于 2010-5-25 21:25:42

回复【40楼】liouravr
lz发一个2450的工程文件啊,ads的.........不行吗
-----------------------------------------------------------------------

源码都提供了,你自己难道连ADS工程也不会建吗~~~~

wuxi_stl 发表于 2010-5-25 21:26:26

mark

liuweiele 发表于 2010-5-26 10:02:06

回复【36楼】jiki119
楼主,你的图能打开,但是确实空白的,怎么回事呀?
-----------------------------------------------------------------------

原理图为 power logic 格式

liouravr 发表于 2010-5-26 13:47:37

缺文件啊,而且,还有很多设置,你还说对了,我真不会.............

cookie2g 发表于 2010-5-26 14:19:51

mark

liuweiele 发表于 2010-5-27 01:25:51

回复【44楼】liouravr
缺文件啊,而且,还有很多设置,你还说对了,我真不会.............
-----------------------------------------------------------------------

无语......

wogo 发表于 2010-5-27 08:32:13

回复【46楼】liuweiele Liuwei
回复【44楼】liouravr
缺文件啊,而且,还有很多设置,你还说对了,我真不会.............
-----------------------------------------------------------------------
无语......
-----------------------------------------------------------------------

不错。哼哼哈哈

zjn8888 发表于 2010-5-27 09:58:44

不错。哼哼哈哈

tigerchen 发表于 2010-6-1 12:00:19

MARK

smartzou 发表于 2010-6-1 12:21:55

六一节快乐哈O(∩_∩)O!

nick870208 发表于 2010-6-10 23:29:12

非常好!

tom919 发表于 2010-9-12 16:32:01

这几天正在参考这个程序,LZ能提供一下驱动里面用到的GUI.h吗?有些设置应该在这里面。谢谢!
a_tang2008#%#163.com(请把#%#换成@)

yulri 发表于 2010-9-16 16:37:34

飞熊!

sxndwg 发表于 2010-10-15 08:04:19

绝对经典。正需要

winterv 发表于 2010-11-1 17:08:37

请问lz还有空pcb没,我想买一块

zjn8888 发表于 2010-11-1 17:15:23

楼主真是个好人

liuweiele 发表于 2010-11-1 20:00:55

回复【55楼】winterv
请问lz还有空pcb没,我想买一块
-----------------------------------------------------------------------

你是否在广东省内?

ag_wang 发表于 2010-11-1 21:02:38

不错,显示功能很强大!

liuweiele 发表于 2010-11-1 22:16:52

回复【58楼】ag_wang
不错,显示功能很强大!
-----------------------------------------------------------------------

新版更强大:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4357508&bbs_page_no=1&search_mode=4&search_text=liuweiele&bbs_id=9999

winterv 发表于 2010-11-2 22:52:12

回复【57楼】liuweieleLiuwei
-----------------------------------------------------------------------

没有,我在北京,方便吗

liuweiele 发表于 2010-11-2 22:58:05

回复【60楼】winterv
回复【57楼】liuweieleliuwei
-----------------------------------------------------------------------
没有,我在北京,方便吗
-----------------------------------------------------------------------

算很远了.

winterv 发表于 2010-11-8 07:10:52

回复【61楼】liuweieleLiuwei
-----------------------------------------------------------------------

请问:
(1)lcd是怎么固定在pcb上的捏?
(2)触摸屏是怎么固定在lcd上的捏?
(3)支持AT070TN83 v.1否?
(4)邮费我自理,价格合适的话可否卖我一块?

bmagui 发表于 2010-11-8 08:34:25

mark

adamshi 发表于 2010-11-9 14:05:54

LZ,我用的CPU是2440,屏是AT056TN53 ,GPB1接LCD_adj(3脚)调背光亮度;不控制时,屏显示正常,不过PWM一输出,屏就有水波纹,占空比越小,波纹越大,这问题如何解决?

10086 发表于 2010-12-20 13:55:56

一个字,强!

z0586 发表于 2010-12-20 14:03:42

回复【57楼】liuweiele Liuwei
回复【55楼】winterv
请问lz还有空pcb没,我想买一块
-----------------------------------------------------------------------
你是否在广东省内?
-----------------------------------------------------------------------

我在广东省内,不过我想买个焊接好的连屏一起

Jerry88 发表于 2010-12-21 10:44:16

d

geniusjia 发表于 2010-12-21 17:32:57

高手做的东西就是牛!

enterout123 发表于 2010-12-21 18:54:28

原理图是用啥软件做的?打不开啊。

JIARONG 发表于 2010-12-22 14:06:08

回复【69楼】enterout123
-----------------------------------------------------------------------

我用PADS-POWERLOGIC3.0软件也打不开啊,提示不能打开二进制文件

JIARONG 发表于 2010-12-22 15:52:35

原理图不全啊

layneyeh 发表于 2010-12-22 23:09:44

学习学习,给力

alwaysGo 发表于 2011-5-7 14:49:06

看帖难得回,今天必须谢谢楼主~ 开源无敌~~~~~~~

zrch123 发表于 2011-6-25 17:41:30

LZ 能不给发一个LCD与S3C2450连接图,能不给一个LCD是如何写数据命令等进去的datasheet
谢谢LZ了

zrch123 发表于 2011-6-25 17:42:10

回复【73楼】alwaysGo
-----------------------------------------------------------------------

LZ 能不给发一个LCD与S3C2450连接图,能不给一个LCD是如何写数据命令等进去的datasheet
谢谢LZ了

lwbjun 发表于 2011-7-3 21:01:48

mark

maxsuntech 发表于 2011-7-4 09:53:52

板主善人 mark

flyforyou85 发表于 2011-7-4 10:31:50

不错啊!好好哦看看资料1

alexmayer 发表于 2011-7-4 18:11:25

标记一下!

谢谢楼主。

Heloiness 发表于 2011-7-5 16:15:38

学习。

alexmayer 发表于 2011-7-7 09:20:44

Mark!

fc201fc 发表于 2011-7-7 14:10:48

MARK

hong601 发表于 2011-8-16 00:18:59

这个驱动移植到2416上面可以吗?2450中用到加速了吗?

newbuddy 发表于 2011-8-29 18:10:37

果断顶!好帖!

qq64468856 发表于 2011-8-30 10:44:40

放个板凳

yongshi128 发表于 2011-8-31 21:51:15

果断顶!好帖!

liuweiele 发表于 2011-9-5 14:18:04

回复【91楼】dearwind153
回复【39楼】liuweieleliuwei
回复【36楼】jiki119
楼主,你的图能打开,但是确实空白的,怎么回事呀?
-----------------------------------------------------------------------
什么图?
-----------------------------------------------------------------------
就是这个原理图是空白,请问lz是用什么软件打开的,我用protel99se,和altium desginer打开都是空白的

/////////////////////////////////////

power logic

coursesq 发表于 2011-9-5 14:27:47

lz总是有硬货,支持

YFM_LMM 发表于 2011-9-7 19:06:52

mark

szkalwa 发表于 2011-9-27 15:30:25

一定要MARK

szkalwa 发表于 2011-9-27 15:33:23

请问楼主怎样才能支持AT070TN92呢,50PIN的LCD,谢谢!

seaso 发表于 2011-9-27 23:01:12

不错,顶

hefanghua 发表于 2011-10-7 22:26:30

牛人,强烈围观。
mark ARM高手

jiespring 发表于 2013-1-30 14:42:22

楼主好人
马克备用
谢谢

jz701209李 发表于 2013-2-5 15:16:52

谢谢楼主.....

lndevt 发表于 2013-3-7 11:14:14

感谢分享

qsjit 发表于 2013-4-12 09:36:22

兄弟可以上传一个S3C2450的封装库吗?

qsjit 发表于 2013-4-12 09:45:11

你好!可以给一个S3C2450的封装库吗? 请发到qsjit@163.com谢谢!

qsjit 发表于 2013-4-12 09:54:23

你好!可以给一个S3C2450的封装库吗? 请发到qsjit@163.com谢谢!
页: [1] 2
查看完整版本: 共享开源:S3C2450 驱动 群创7寸TFT(AT070TN83,800x480);原理图+驱动源码