Çin malı telefon ekranları

Başlatan serdararikan, 05 Mart 2010, 22:39:33

serdararikan

evet dediğin registerde tft nin sürücü entegresi hakkında bir ID var.yaklaşık olarak hepsi aynı şeklide haberleşiyor.Ayrıca microchip graphics solution içinde hemen hemene tüm driverler için örnek kodlar mevcut ama malesef hepsi PIC24 ve PIC32 için...

ahmet2004


8k1231 1..40 adres register değerleri:


Not: Resim ekledim bazı arkadaşlara duyurulur.

serdararikan

üstad senin bu mesajları gördükçe şu ekranı sürmek için sabırsızlanıyorum.bende ekranı aldım faka şimdi ona bi board tasarlamalıyım.Bide ekranın touch unu kullandınmı???

ahmet2004

Evet hem analog hem dijital(spi entegresi ile) ve analog direkt X+ x- y+ y- ile kullanım internette analog

touch kodları mevcut.

serdararikan

spi  entegresi dediğin adx olan entegre sanırım?

airforce

#50
@serdararikan

Aldığımız LCD ekranı breadboard üzerinde kullanabilmek amacıyla yaptım. Arka aydınlatmayı harici besleme ve pwm ile sürmek için ufak bir smd transistör ekledim. Bu kartı LCD ekranın tam altına çift tarflı bant ile yapıştırıp kullanmayı düşünüyorum.

http://rapidshare.com/files/391532421/V3.00.LYT.html

@ahmet2004

Kullandığınız dil nedir? Programı paylaşmanız mümkün mü?

ahmet2004

pic16,pic18,pic32,atmega serileri,Lpc1768,Lpc2148,Stm32f103ret6 kullandığım entegreler bu tft için.

picbasic proton ccs hepsinde yazılabilir bir zorluk yok ama tabii herkesin kapasitesi farklı.Bu forumdaki çoğu arkadaş bunları biliyor zaten.

Pin sayısı çok olduğu için ona uygun adetli işlemci seçiyoruz.

Yukardada verilmiş linkleri incelersen kod kaynıyor zaten kod vermiyorum(herkesin kodu kendine özel).

Zaten verdiğim register değerlerine bakarsanız çözersiniz.

Aslında SPI ile çalışan TFT almakta fayda var.İlerleyen zamanda ondanda alıp deneyim.Deneyimlerimi yazarım.

Bu tftnin hem lehimlemesi zor hemde gereksiz bu kadar pin kullanmak pek tavsiye etmiyorum.

Özdisanda vardı TSC2046 hangisini kullanırsanız.Piyasada hangisini bulursanız touch entegresinin onu kullanabilirsiniz.

airforce

#52
Aklıma takılan şeyleri sormak istiyorum

1-LCD ekrana kaç bit adres gönderiliyor?
2-adres+data şeklinde sürülebiliyor mu?
3-adresin önce düşük değerliklimi yüksek değerlikli kısmımı gönderiliyor?
3-16 bit lcd nin giriş uçlarına adresi yazdırdım cs rd wr uçlarından 1-0 dediğimde mi okuyor?(veya zaman beklemesi ile mi oluyor?)
4- 20h 21h adresleri nedir nasıl kullanılır?


Renkler bu şekilde gönderiliyormuş anladığım kadarıyla

              Bits 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
           Color  R   R   R   R   R   G   G   G   G   G   G   B   B   B   B   B
BRIGHTBLUE  0   0   0   0   0   0   0    0   0   0    0  1   1   1   1   1

Teşekkürler...

serdararikan

bu soruların tamamına datasheeti inceleyerek cevap bulabilirsin.

ahmet2004

1- 16bit adres kullanılıyor.
2- Önce adres yazılıyor Sonra data yazılıyor veya okunuyor.
3- 16bitlik gönderim olduğu için hepsi birden veriliyor.
3- Pdf'deki Zamanlamalara uyarak yapabilirsin.
3- 20 ve 21 nolu adresler Ekranın Grafik pixel adresi yani x ve y pixel adresi.
4- Bu şekildeki belirlediğimiz bitleri 22 nolu adrese yazarsan piksel meymadana gelir.(R   R   R   R   R   G   G   G   G   G   G   B   B   B   B   B)

50-51-52-53 nolu adreslere yazılan adresler ile lcd üzerinde pencere tanımlıyoruz.

Başka bir şey öğrenmek istiyorsan yaz.

airforce

Çok teşekkürler ilginiz için

İncelediğim programlarda ilk LCD açılırken çok sayıda ayarlamalar yapılıyor. Anladığım kadarıyla da register adresini mesela 22h  16 bite  0022h olarak yazıyoruz RS=0 WR=0 yapıyoruz (şekildeki gibi) sonra datayı 16bite yüklüyoruz RGB bu sefer sadece WR=0 - 1 yaptığımızda 1 pixel e görüntü vermiş oluyoruz?

[IMG]http://img695.imageshack.us/img695/3379/modzw.png[/img]


ahmet2004

#56


***

airforce

#57
@ahmet2004
cevabınız silindi sanırım? "***"

LCD ye ilk yüklediğiniz datalar hangileri? Bulduğum programda baya fazla miktarda. Sizin 1 den 40 a verdiğiniz register görüntüsünü inceledim ancak bu aşağıdaki ayarlara pek benzetemedim.

/*** Setup display for ILI9320 driver IC ***/ 
    SetReg(0xe5,0x8000);		//start osc
    SetReg(0x00,0x0001);
    DelayMs(10);
    SetReg(0xa4,0x0001);       	//calb
    SetReg(0x07,0x0000);	//display control(1)
    DelayMs(10);	

/*** Display Setting ***/	
	SetReg(0x01, 0x0000);	//Driver output control (1)
	SetReg(0x02, 0x0700);	//LCD driving control
	SetReg(0x03, 0x1028); 	//Entry mode  //1030
	SetReg(0x04, 0x0000);	//Resize control
	SetReg(0x08, 0x0202);	//Display control (2)
	SetReg(0x09, 0x0000);	//Display control (3)

/*** Power Control ***/
	SetReg(0x07, 0x0101);	//power control 1 BT, AP
	SetReg(0x17, 0x0001);
	SetReg(0x10, 0x0000);
	SetReg(0x11, 0x0007);	//power control 2 DC, VC
	SetReg(0x12, 0x0000);	//power control 3 VRH
	SetReg(0x13, 0x0000);	//power control 4 VCOM amplitude
	DelayMs(20);
	SetReg(0x10, 0x16B0);   //power control 1 BT,AP
	SetReg(0x11, 0x0037);   //power control 2 DC,VC
	DelayMs(50);
	SetReg(0x12, 0x013E);   //power control 3 VRH
	DelayMs(50);
	SetReg(0x13, 0x1A00);   //power control 4 vcom amplitude
	SetReg(0x29, 0x000F);   //power control 7 VCOMH
	DelayMs(50);
	SetReg(0x20, 0x0000);   //Horizontal GRAM Address Set
	SetReg(0x21, 0x0000);   //Vertical GRAM Address Set
	SetReg(0x50, 0x0000);   //Horizontal Address Start Position
	SetReg(0x51, 0x00EF);   //Horizontal Address end Position (239)
	SetReg(0x52, 0x0000);   //Vertical Address Start Position
	SetReg(0x53, 0x013F);   //Vertical Address end Position (319)
	SetReg(0x60, 0xA700);   //Driver Output Control 2
	SetReg(0x61, 0x0001);   //Base Image Display Control
	SetReg(0x6a, 0x0000);   //Base Image Display Control
	SetReg(0x90, 0x0010);   //Panel Interface Control 1
	SetReg(0x92, 0x0000);   //Panel Interface Control 2
	SetReg(0x93, 0x0000);   //Panel Interface Control 3
    
 /*** GAMMA Control ***/
    	SetReg(0x30, 0x0007);
    	SetReg(0x31, 0x0403);
    	SetReg(0x32, 0x0404);   
    	SetReg(0x35, 0x0002);
    	SetReg(0x36, 0x0707);
    	SetReg(0x37, 0x0606);
    	SetReg(0x38, 0x0106);
    	SetReg(0x39, 0x0007);
    	SetReg(0x3c, 0x0700);
    	SetReg(0x3d, 0x0707);
	SetReg(0x07, 0x0173);

// Disable LCD 
    CS_LAT_BIT = 1;

    DelayMs(30);
}


Şuan baskı devremin çıkmasını bekliyorum. Geldiğinde ilk denemelerimi yapacağım. Hesapladığım kadarıyla bir renkli resmi ekranda göstermek için 150 kbyte alana ihtiyaç var 24xx serisi eepromları inceledim ancak yeterli olmadığını gördüm. Bu sebeple SD-MMC kart kullanmayı düşünüyorum.

Bmp formatındaki resimlerin her pixeli 24 bitten oluşuyormuş. Bmp içerisindeki okunan 8bit (256) mavi değerini 8 e bölersek max 5 bit(32) boyutunda bir değer elde ederiz ve lcd ye uygun hale getirmiş oluruz?


yeşil için 256/4=64 (6-bit)
kırmızı için 256/8=32(5-bit)


Kesin cümleler kurmaktan kaçınıyorum araştırmalarım ve gördüklerimi benim gibi bilmeyenler varsa paylaşmak amaçlı yazıyorum yanlışlıklar varsa lütfen düzeltiniz.

Teşekkürler...

ahmet2004

Tft de yatay veya dikey kullanım , (0.0)pikselin başlangıcı ekran bildirimleri yönleri herkes tarafından farklı yapılabiliyor.

O değerler üstünde fazla durma pcb ni çıkar ben sana yardım ederim ama önce sen bir dene.

Ben burdayım.
 

airforce

Cumartesi günü çalışmalara başlayacağım. İlginiz için çok teşekkür ederim.