TFT ekran Hardware SPI sorunu

Başlatan ipek, 10 Temmuz 2018, 01:39:55

ipek

arkadaşım 2.4nch_240X320_ILI9341 sürücüsü olan bir tft hediye etti,çin malı dokunmatik çip yeri var fakat IC takılı değil neyse,arduino nano ile driverlerin içindeki örnekleri çalıştırayım dedim ,ekran süt beyaz,oysa seri portu açtığım zaman programın veri akışında olduğunu görebiliyorum.
kendi örneklerinde adam yazmış böyle yaparsan software şöyle yaparsan Hardware SPI çalışır diye,Soft ağır bir vaziyette fıstık gibi demo görüntü var,Hard'a aldığımda ekran süt beyaz..
şimdi mini iki sorum olacak,Çinli bu ekrana Hard desteği koymamışmıdır ?
ikinci sorum Arduino Nano CH340 Clon, yine klon Promini ile denedim foss...
hiç başınıza böyle bir şey geldimi ?
aynı yöntemleri TFT ST7735 ile deniyorum kusursuz çalışıyor,soft'ta tren gibi Hard'da bariz hızlı..

// These are the pins used for the UNO
// for Due/Mega/Leonardo use the hardware SPI pins (which are different)
#define _sclk 13
#define _miso 12
#define _mosi 11
#define _cs 10
#define _dc 9
#define _rst 8

//******************************************************************************
// Using software SPI is really not suggested, its incredibly slow
Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _mosi, _sclk, _rst, _miso);
//******************************************************************************
// Use hardware SPI
//Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _rst);
//******************************************************************************

RaMu

Alıntı yapılan: ipek - 10 Temmuz 2018, 01:39:55...
şimdi mini iki sorum olacak,Çinli bu ekrana Hard desteği koymamışmıdır ?
...
Böyle bir ihtimal yok SPI zaten süren tarafta software veya hardware olur.
Ancak ekran SPI destekli değilse SPI değil denir.
Ama ILI9341 entegresi doğru kurulursa SPI modu mevcut.

En muhtemel hata
hardware spi modunda çalışırken gerekli hardware spi pinlerinin "sclk, miso, mosi"
mcu dan ekrana bağlanmamış olması olabilir.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

ipek

Bağlantılar olması gereken doğru konfigürasyonda,ekranın üzerindeki baskı etiketi SPI yazısı ile başlıyor,böyle abuk sabuk işlerde beni bulur....
Arduino açık kaynak genele yaygın ama genel forumlardan aldığım yanıtlar,onu atın başka yerden alın gibi saçma sapan amaçtan uzak cevaplar,gözünü seveyim Microchip yirmi yıldır beraberiz,sana ihanet ettiğim için pişmanım....

RaMu

Hocam ekranın üzerindekini kastedmiyorum,
arduinonun hardware spi pinleri değilde
sıradan pinler bağlı olabilir demek istedim.

Arduinocuların atın tutun diye düşünmesi gayet normal.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

ipek

Nano'nun grafiksel güzel bir pin haritası var ,hangi pinin ne olması kuralı,,
sclk 13
miso 12
mosi 11
cs 10
dc 9
rst 8
benim bağlantılarım ile örtüşüyor sadece dc ve rst pinini istediğiniz pine atayabilirsiniz,diğerleri SPI için olmazsa olmaz pinlerdir diyor,bu forumdan zaten somut bir yanıt beklemiyordum,Arduino'nunmu Displayin hatasımı hem millette görsün istedim,zira sorduğum soruya 15 gündür Arduino cc'dende cevap gelemedi,gelenlerde kaale alınacak cevaplar değildi,tamam sistem kötü değil ama oturmamış,daha evvelde başıma gelmişti 12F675 Sleep ve Nap'i aynı anda kullanan bir program yazmıştım,program simulasyonda çalışmasına rağmen pic'e atıldığında çalışmadığı gibi pic bir daha okunup yazılamaz hale geliyordu,ne Basic formundan nede Microchip formundan bir yanıt alamamıştım,Ete hocamın formunda duruyor olması lazım,sadece basic formundan gelen mail hala drop'umda hala duruyor,denedik hayret ettik ,ama şu an bir çözüm öneremiyoruz diye..

Kabil ATICI

SPI hızını azaltarak sürmeyi deneyebilirsiniz. Eğer kablolar uzun olursa, SPI sinyalinin bozulma durumu olabilir. Onun için SPI hızını düşürerek bir denebilirsiniz. SPI düşük hızlarda istediğinizi veriyorsa, o zaman bağlantılarınız konusunda kabloları kısaltmanız gerekebilir.

Bir de SPI modları ile ilgili bir durum olabilir. Çalışma modlarında verinin inen kenarda veya yükselen kenarda olma durumu seçilebiliyor.
SPI yazılımsal olarak kontrol edildiğinde bunları rahatlıkla kontrol edebiliyorsunuz. Donanımsal durumda yaptığınız ayarlara iş düşüyor.
ambar7

ipek

Kabil hocam teşekkürler,önerilerinizi dikkate alacağım,
ekran ile Ardu arasında 3 cm'lik emaye teller var kapasite etkisi yaratmadığını düşünüyorum,

ekran ile Ardu arasına piyasa malı klasik 4 adet 2N7002 Jfet ile yapılmış konverter var,bunun hatalı olduğunu düşünmedim zira Soft SPI modunda gayet güzel çalışıyor,ama 16MHz yerine 8MHz ile denemem şart..

Kabil ATICI

ambar7

ogy

Bu ekranların arkasında jumper direnç oluyor. 5V ya da 3.3V beslemeye göre bu direnç takılıyor/sökülüyor. Buna baktınız mı?

ipek

sabah bir arkadaşım aradı konuyu görmüş,aynı TFT'den almış ve Hard SPI'da çalışmamış,benim gibi sabırlı ve araştırmacı olmadığından,2.4 yerine 2.8" SPI yine çin ekran temin etmiş,takar takmaz çalışmış,ekranın ön ve arka fotolarını yolladı hayret verici dercede eşleşiyor,toplu alım yaptığınızı düşünsenize yandı gülüm keten helva...

@ogy evet arka kısımda bir SOT-23 kasada voltaj regulatörü mevcut ve bunu kısa devre yapabilmen için Pad adacık mevcut,ve bağlı değil yani ekrana 5 Volt giriyor 3.3 volt çıkıyor.

yapacağım tek şey kaldı Kabil hocanın önerisi,Soft Mod'da iken bu 4 haberleşme pinini Logic analizörle gözlemleyip, Hard Mod'a geçtiğimde verileri kontrol etmek,bence buradan bir evrilme gibi bir şey çıkacak,iz sürmeye bayılırım,yeterki destek alabileyim,desteğini esirgemeyen dostlara teşekkürler...

Burak B

#10
Merhaba;

a-Si COG TFT kontrolcülerinde şunlara dikkat etmeniz gerekli;

1- Bu ekran gerçekten kullandığınız kod ile uyumlu bir chip mi barındırıyor. Piyasada tonla fason üretim kontrolcü var. Paralel haberleşme kullanarak ID read komutu (genelde R00h) ile bunu tespit etmeniz %80-90 muhtemeldir. Bazı fason chiplerde bu register bile orjinalmiş gibi değiştirilecek şekilde kullanıcıya göre ayarlanıyor.

2- IM (Interface Mode) pinleri Serial ve 3 pin ise 9-Bit haberleşeceksiniz D/C buradaki 9. bite tekabül edecek demektir. Bu durumda genelde MCU' lar 9 bit SPI desteklemediğinden software SPI kullanmak kaçınılmaz olabiliyor.

3- IM (Interface Mode) pinleri Serial ve 4 pin ise 8-Bit haberleşeceksiniz. D/C ayrı bir GPIO ile sürülecek. Burada chipin kabul ettiği SPI modu önemli. Mode 0 ve Mode 3 en yaygın destek görenler.

4- Bazı LCD'lerde IM pinleri FPC nin üzerinde boş dirençler ile ayarlanabilirken bazılarında hiç konmamış olabilir. Kimilerinde bu pinler direkt FPC' deki pinler ile kontrol edilebilir halde olur. Eğer FPC de bu pinlere yer verilmişse şanslısınız demektir. Bu pinleri uygun moda göre ayarladığınızdan emin olun.

5- Eğer 4 pin SPI kullanıyorsanız chipe bir veri göndermeden evvel dummy veri (0xFF) göndermeyi ihmal etmeyin. Ayrıca SPI haberleşme kurabildiğinizi ID registerları veya status registerları vasıtasıyla kontrol edebilirsiniz.

6- Lojik analizör en iyi yardımcınız olabilir.

Kolay gelsin.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

ipek

epey bir araştırma yaptım,Adafruit,Sparkfun,ve bunun gibi bir kaç marka display'ler sorunsuzca çalışabiliyor,arkadaşlarımla buna şahit oldum sadece ekranı değiştirip sokete takınca yoluna devam ediyor,bendeki çin klon ILI9341 registerleri olduğunu MISO pininden teyid ediyor,fakat riayet etmiyor,sanırım açıklamalarınızla tam örtüşüyor,çinliler bu sorgulamaları halletmişler,sadece breadbord'un arkasında QVGA sembolü bulunanlar HWSPI çalıştı,bunlarda işimi görmüyor 1.8" ve 2.2" bana gerekli olan 2.4" ile 2.8",ilginize çok teşekkür ederim.