Привет, спецы.
Имеется TFT WF57DTIBCDC со встроенным SSD1963, скачал pdf и на панель и на контролер, но маловато информации. Шина данных у этого TFT 16-ти разрядная, нужен пример инициализации SSD1963 и вывода примитивов. По форуму порылся, нашел кое что подобное, но только с применением 8-ми разрядной шины.
http://electronix.ru/forum/index.php?showt...&hl=SSD1963Спасибо.
tiburon
Apr 23 2011, 12:03
Цитата(Danis @ Apr 4 2011, 16:20)

Привет, спецы.
Имеется TFT WF57DTIBCDC со встроенным SSD1963, скачал pdf и на панель и на контролер, но маловато информации. Шина данных у этого TFT 16-ти разрядная, нужен пример инициализации SSD1963 и вывода примитивов. По форуму порылся, нашел кое что подобное, но только с применением 8-ми разрядной шины.
http://electronix.ru/forum/index.php?showt...&hl=SSD1963Спасибо.
А самого производителя и других спрашивать не пробовали?
Ivan Kuznetzov
Apr 28 2011, 03:09
А у меня другой вопросик:
Необходимо чтобы после отсылки массива изображения в SSD1963, счетчик адреса обнулялся сам, без посылки команды WriteRamPrepare?
tiburon
May 14 2011, 16:42
Цитата(Ivan Kuznetzov @ Apr 28 2011, 07:09)

А у меня другой вопросик:
Необходимо чтобы после отсылки массива изображения в SSD1963, счетчик адреса обнулялся сам, без посылки команды WriteRamPrepare?
Зроблен ваш дисплей Winstar, киньте вопрос мылом, мне так проще, а я спрошу Winstar, или можете сами их спросить, они нормально отвечают. Моё мыло на всякий случай tiburon10@inbox.ru
tiburon
May 16 2011, 04:00
http://www.raio.com.tw/E%20version/Member/e_member.join.htmДаташит я кинул мылом.
Ответ Hannstar: HSD070I651- c is a pretty old version . The latest one is HSD070I651-F.
Даташит я кинул Вам мылом.
tiburon
May 16 2011, 09:29
Файлы от Winstar ниже, Вам это нужно? Текстовый в теле.
//=============================================================
// WINSTAR Display Co.,Ltd
// LCM :WF57F 16 BIT (80-Series)
// Contraller: SSD1963
// Author :Brian lin 2009/04/08
// history :
//==============================================================
//=================================
// parameter define
//=================================
#include <reg52.h>
#include <stdio.h> // define I/O functions
#include <INTRINS.H> // KEIL FUNCTION
#define Data_BUS P1
#define Data_BUS1 P2
sbit IC_A0 =P3^0; // Data/command select L:Command,H:Data
sbit IC_WR =P3^7; // L: Write, H: Read
sbit IC_RD =P3^4; // Data Enable H-->L
sbit IC_CS =P3^1; // L: Chip select
sbit IC_UD =P3^5;//=P3^6; // L: UP to Down , H: Down to UP
sbit IC_LR =P3^2; // L: Left to Right , H: Right to Left
sbit IC_RST =P3^6;//=P3^5; // L: RESET
sbit STP =P2^0; // for winstar test board
sbit S_S =P2^1; // for winstar test board
//----------------------------------------------------------------------
void STP_SC(void)
{
unsigned char x,y,z;
z=P2;
P2=z|| 0x03;
if(S_S == 1)
{
do{
for(x=0;x<255;x++)
{
for(y=0;y<255;y++)
{}}
P2=z|| 0x03;
}while(STP == 0);
}
}
//;******************************************************************************
void Write_Command(unsigned char command)
{
IC_RD = 1;
IC_A0 = 0;
IC_WR = 0;
IC_CS = 0;
Data_BUS = command;
IC_CS = 1;
IC_WR = 1;
}
//;******************************************************************************
void Write_Data(unsigned char data1)
{
IC_RD = 1;
IC_A0 = 1;
IC_WR = 0;
IC_CS = 0;
Data_BUS = data1;
IC_CS = 1;
IC_WR = 1;
}
//==============================================================
void Command_Write(unsigned char command,unsigned char data1)
{
Write_Command(command);
Write_Data(data1);
}
//==============================================================
void SendData(unsigned long color)
{
IC_RD = 1;
IC_A0 = 1;
IC_WR = 0;
IC_CS = 0;
Data_BUS1 = ((color)>>8); //DB8OUT(Dat16bit>>8);
Data_BUS = color; //DB8OUT(Dat16bit);
IC_CS = 1;
IC_WR = 1;
}
//======================================================
// initial
//======================================================
void Initial_SSD1963 (void)
{
IC_RST = 0;
_nop_();
_nop_();
_nop_();
IC_RST = 1;
_nop_();
_nop_();
_nop_();
Write_Command(0x01); //Software Reset
Write_Command(0x01);
Write_Command(0x01);
Command_Write(0xe0,0x01); //START PLL
Command_Write(0xe0,0x03); //LOCK PLL
Write_Command(0xb0); //SET LCD MODE SET TFT 18Bits MODE
Write_Data(0x0c); //SET TFT MODE & hsync+Vsync+DEN MODE
Write_Data(0x80); //SET TFT MODE & hsync+Vsync+DEN MODE
Write_Data(0x01); //SET horizontal size=320-1 HightByte
Write_Data(0x3f); //SET horizontal size=320-1 LowByte
Write_Data(0x00); //SET vertical size=240-1 HightByte
Write_Data(0xef); //SET vertical size=240-1 LowByte
Write_Data(0x00); //SET even/odd line RGB seq.=RGB
Command_Write(0xf0,0x03); //SET pixel data I/F format=16bit(565 format)
Command_Write(0x3a,0x50); // SET R G B format = 5 6 5
//Write_Command(0xe6); //scan
//Write_Data(0xff); //
Write_Command(0xe6); //SET PCLK freq=6.4MHz ; pixel clock frequency
Write_Data(0x00);
Write_Data(0xe7);
Write_Data(0x4f);
Write_Command(0xb4); //SET HBP,
Write_Data(0x01); //SET HSYNC Tatol 440
Write_Data(0xb8);
Write_Data(0x00); //SET HBP 68
Write_Data(0x44);
Write_Data(0x0f); //SET VBP 16=15+1
Write_Data(0x00); //SET Hsync pulse start position
Write_Data(0x00);
Write_Data(0x00); //SET Hsync pulse subpixel start position
Write_Command(0xb6); //SET VBP,
Write_Data(0x01); //SET Vsync total 265=264+1
Write_Data(0x08);
Write_Data(0x00); //SET VBP=19
Write_Data(0x13);
Write_Data(0x07); //SET Vsync pulse 8=7+1
Write_Data(0x00); //SET Vsync pulse start position
Write_Data(0x00);
Write_Command(0x2a); //SET column address
Write_Data(0x00); //SET start column address=0
Write_Data(0x00);
Write_Data(0x01); //SET end column address=319
Write_Data(0x3f);
Write_Command(0x2b); //SET page address
Write_Data(0x00); //SET start page address=0
Write_Data(0x00);
Write_Data(0x00); //SET end page address=239
Write_Data(0xef);
Write_Command(0x29); //SET display on
}
//======================================================
WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
{
Write_Command(0x2a); //SET page address
Write_Data((s_x)>>8); //SET start page address=0
Write_Data(s_x);
Write_Data((e_x)>>8); //SET end page address=319
Write_Data(e_x);
Write_Command(0x2b); //SET column address
Write_Data((s_y)>>8); //SET start column address=0
Write_Data(s_y);
Write_Data((e_y)>>8); //SET end column address=239
Write_Data(e_y);
}
//=======================================
void FULL_ON(unsigned long dat)
{
unsigned int x,y;
WindowSet(0x0000,0x013f,0x0000,0x00ef);
Write_Command(0x2c);
for(x=0;x<240;x++)
{
for(y= 0;y<320;y++)
{
SendData(dat);
}
}
}
//=======================================
FRAME()
{
unsigned int i,j;
WindowSet(0x0000,0x013f,0x0000,0x00ef);
Write_Command(0x2c);
for(j= 0 ;j<40;j++)
{
for(i=0;i<8;i++)
{
SendData(0xffff); //white
}
}
for(j=0;j<238;j++)
{
SendData(0xf800); //red
for(i=0;i<159;i++)
{
SendData(0x0000); //black
SendData(0x0000); //black
}
SendData(0x001f); //blue
}
for(j= 0 ;j<40;j++)
{
for(i=0;i<8;i++)
{
SendData(0xffff); //white
}
}
}
//=======================================
void main()
{
IC_UD = 0;
IC_LR = 1;
Initial_SSD1963();
while(1)
{
//FRAME();
//STP_SC();
FULL_ON(0x0000);
STP_SC();
FULL_ON(0xf800); // red
STP_SC();
FULL_ON(0xbfe0);
STP_SC();
//FULL_ON(0x07e0); // green
//STP_SC();
FULL_ON(0x001f); // blue
STP_SC();
FULL_ON(0xf81f);
STP_SC();
FULL_ON(0xffff);
STP_SC();
}
}
Цитата(tiburon @ May 16 2011, 13:29)

Файлы от Winstar ниже, Вам это нужно? Текстовый в теле.
...
Спасибо! Я во всем разобрался уже.
Nikson1200
Jul 30 2011, 22:02
кому-нибудь удавалось на winstar'овских индикаторах управлять подсветкой? (SSD1963 позволяет это)
пробовал пример из даташита, да и методом научного тыка потыкал разные параметры. результат есть, но неудовлетворительный: подсветка гаснет буквально на доли секунды и снова возвращается в прежнее состояние. нужен рабочий пример.
Fynjisx
Mar 11 2012, 11:57
Цитата(Danis @ May 16 2011, 12:44)

Спасибо! Я во всем разобрался уже.
Скажите, когда Вы заливаете экран каким то цветом, у вас видно как он медленно заливается?
Цитата(Fynjisx @ Mar 11 2012, 14:57)

Скажите, когда Вы заливаете экран каким то цветом, у вас видно как он медленно заливается?
нет