Merhaba arkadaşlar;
STM32F4 discovery ve 7" TFT ekran ile bir uygulama yaptım. Ekranda butonlar oluşturup bir transistör ile led yakıp söndürme gibi basit bir uygulama ile ekran performansını değerlendirmek istedim. Sorunsuz bir şekilde çalıştı.
Hazırladığım pcb nin şasesine tesadüfen bir tornavida değmesi ile ekranın karardığını(ekran önce çizgili sonra ise tamamen siyah oluyor.) farkettim. İşlemciyi resetlediğimde düzeliyor. Bunu her defasında yapmasada zaman zaman yapıyor.
Çözmek için
1- Ekran beslemesine ve pcb beslemesine yakın yerlere 100nF taktım.
2- Besleme adaptörü yerine Li-po pil bağladım.
3-Ekran gövde şase ile PCB şaseyi blendajlı kablo ile birleştirdim.
Sonuç yine aynı.
Bu konudaki tecrübelerinizi paylaşırsanız memnun olurum. Teşekkürler.
20cm Data kablosu kullandım. Acaba ondan olabilir mi?
Ekran haricinde işlemcinin tornavidanın şaseye dokunmasından sonra da çalışmaya devam edip etmediğini inceleme şansın var mı?
Besleme ile ilgili bir sorun olabilir, işlemcinin kristal frekansını sürdürme konusunda bir sıkıntısı olabilir,
işlemci kartını metal bir plakanın üzerine monte edebilirsin.Metal plaka ile GND bağlanıp o şekilde denenebilir. Eğer bu şekilde çalışırsa kartın GND alanlarını büyütmen gerekebilir.
Osiloskop GND bağlantısı kartın GND ile bağlanıp o şekilde denenebilir. (Şase durumu)
Belki kendinizin belirttiği gibi kablo bağlantısı olabilir.
Üzerinde statik elektrik birikme olayı var mı? Varsa boşaltman gerekebilir.
Ekranda yada islemcide interface ile ilgili olupta nasil olsa calisiyor diyip kullanmadigin bosta bir pin varmi?
Discovery kit ve ssd1963 lü 7" lcd ile ben de denemeler yapmıştım. Öyle yaptığınızı sanmıyorum ama LCD besleme voltajlarını STM kit üzerinden alıyorsanız sorun çıkar. LCD'yi özellikle FSMC modül üzerinden sürerken arada kullandığınız kablonun boyu ve pinlerinin kalitesi iletişimi etkiliyor. Mesela bende ufak bir fiziksel harekette bile, hatta bazen durduk yerde LCD çöküyordu.
Bu arada boşta kalan ve arayüzü ilgilendiren pinlere ben hiç dikkat etmemiştim.
STM32F4 board un pinleri denk gelecek şekilde board yaptım. Yani Board u pcb nin üzerine soketle takıyorum.
Ekran çalışmadığında işlemci çalışıyor. Butona yüklediğim bir fonksiyon çalışıyor.
Kullanmadığım boşta olan pin var.
LCD besleme voltajını kit üzerinden değil de çizdiğim pcb üzerinden aldım.
PCB üzerinde lm2576 ile 5V ve AMS1117 ile 3.3V beslemesi yaptım.
Kullandığım tornavida ya da benzeri metal in elime değen kısmı yalıtkan.
işlemci beslemeni 7805 gibi bir entegre ile deneme şansın var mı?
Besleme devrendan kaynaklanıp kaynaklanmadığını görme açısından.
Var hocam hemen deniyorum.
Aynen devam hocam. Değişen bir şey yok.
Aslında osilaskop olsa belkide olayı daha kolay çözeceğiz ama malesef yok.
Problemin kaynağına yaklaştım sanırım.
Çıplak elle devre üzerinde bir noktaya dokunduktan sonra tornavida ile devrenin herhangi bir noktasına da dokunsam şase ve besleme dahil ekran gitmiyor.
Farklı bir deneme de stm32 board un herhangi bir noktasında elime gelen kısım yalıtkan olan tornavida ile kazıma hareketine benzer bir şey yaptığımda yine sorun oluyor. Yani Şase veya + olaması gerekmiyor.
Ekran karardığında backlight'ı da kapanıyor mu?
ssd1963'ün backlight için bir tane pwm çıkışı mevcut. Bu pini harici bir backlight konrolöre girmişlerse; bu pwm'i takip edip, ekran kapandığında pwm sinyalini gözleyebilirsin. Eğer pwm sorunsuz geliyorsa ssd1963'de problem olmaması gerekiyor. pwm geliyorsa backlight kontrölürü çalışmayı durduruyor olabilir.
Backlight kapanmıyor. Ekran çizgi çizgi ya da koyu bir tonda oluyor.
Ekranın arkasında
1-ssd1968-pwm
2- led A
3- always on
seçenekleri var. led A ve always on seçeneklerinde ekran çalışıyor. pwm seçeneği aktif edilince ekran çalışmıyor.
Devre girişine EMI filtre bağladım. DC çıkışına troid bağladım ama nafile. Zaten adaptörden olduğunu sanmıyorum. Çünkü batarya ile denedim ve sorun devam ediyor.
pwm'i seçiyorsan ssd'nin register larından pwm'in frekans ve duty ayarlarını yapıp aktif etmelisin.
Problem statik gerilimden kaynaklanabilir mi acaba? Benzer tft uygulamalarında resistive dokunmatik panelin uçlarının her birine tvs diyot bağlandığını görmüştüm. Panelde oluşabilecek statik gerileme karşı bir önlem sanırım.
Olabilir hocam. Çünkü panel rezistif ve daha önce panele dokununca benzer şeyleri yapıyordu gövdeye şase bağlayınca düzelmişti. Yarın ilk iş tvs diyodu bulup denemek olacak.
Malesef dokunmatik panelden değilmiş. Paneli tamamen söktüm. Panelin kodlarını da devre dışı bıraktım yine aynı sorun devam ediyor. STM32 nin çinden getittirdiğim başka bir board u var üzerinde 3.2" LCD var. Ona benzer şeyleri yapıyorum kesinlikle ekranda en küçük bir etkilenme yok. Acaba bu LCD de mi sorun var diye aklıma gelmeye başladı.
Bir dongu icinde LCD de karakter goruntuleyen kod parcasi yaz.
LCD kilitlendiginde senin rutin ne yapiyor bu soruya cevap ara. Bunun icin keil debug menude adim adim kodlari yurut. Belki buyuk ipucu yakalarsin.
Sorunun %99 kablo uzunluğundan ve kablodan kaynaklanıyordur,
Kablo uzunluğu max. 2-3cm olacak şekilde dene. Sorunun çözülmesi lazım
eğer 20cm uzatma lazım bana diyorsan shield'li kablo kullanman gerekir.
Pardon hocam shield'li kablo nedir?
Alıntı yapılan: respected - 10 Kasım 2013, 15:58:46
Pardon hocam shield'li kablo nedir?
(http://rapportinc.com/wp-content/uploads/2012/05/Braided-Shield-Molex-Crimp-Socket-Cable.jpg)
(http://www.hyperline.com/img/sharedimg/cable/cable_c8.jpg)
gibi cesitleri mevcut.
Yani kısaca Diş yuzeyi Gnd ile sarılı olan kablo
Flat kablo kullanacaksan şekildeki gibi ve bir çok çeşiti var google'a "shielded flat cable" yazarsan ve görsellerde aratırsan çeşitlerini görebilirsin.
(http://uk.farnell.com/productimages/farnell/standard/860810504-40.jpg)
Tamam. Teşekkürler. Yarın bu kabloyu bulup deneyeceğim. Neticeyi yazarım.
Satılan yeri bilen varsa yazabilir mi?
Teşekkürler
Benzeri şeyler bende de oluyordu stm32f4 discovery kit + ssd1289 lcd ile . Sorun kablolarda imiş. pcb çıkardım ve her iki kiti pcb ile birleştirdim ve besleme olarak ise harici besleme (2 adet 5 volt ve 3.3 volt 3 A ) kullandım besleme adaptörü ise 20w. şimdi sorunsuz çalışıyor.
Henüz shield li kablo bulamadım. Kablo boyunu 2 cm yaptım. Sorun aynen devam ediyor. Shield li kabloyu deneyeceğim. Oda olmazsa pcb yi birleştireceğim.
Diot Hocam;
Neden 2 Adet 5V kullanma ihtiyacı hissettin. Board ve LCD beslemelerini ayrı yerlerden mi verdin?
Alıntı yapılan: respected - 11 Kasım 2013, 11:42:39
Henüz shield li kablo bulamadım. KAblo boyunu 2 cm yaptım. Sorun aynen devam ediyor. Shield li kabloyu deneyeceğim. Oda olmazsa pcb yi birleştireceğim
Kabloyu 2cm yaptıktan sonra sorun hala devam ediyorsa sorun kablodan değildir. Ama yine 20cm kullanacaksan shield'li kablo kullanman gerekir. Eğer LCD'nin bazı pinlerini pull-up, pull-down veya floating ile sürüyorsan kolay logic değişim geçirebilir.
Sorun LCD'den görünüyor, lcd bozuk anlamında demiyorum lcd control hatlarından görünüyor mesela reset alıyordur veya benzeri bir durum. Eğer scop'un varsa bulabilirsin hangi hattan kaynaklandığını.
Scop'u external trigger moduna al, edge trigger yap, ve tetikleme olarak düşen kenar seç, lcdyi çalıştır, resim ekrana gelsin, scop problarını LCD reset'e bağla, reset normalde logic 1'de bekler, logic 0 olursa osiloskop tetiklenecektir ve sinyali yakalayacaktır. Scop'u resete bağladıktan sonra ekranı karartmayı dene, karardığında reset 0'a düştümü gözlemle, düşmedi ise sonraki control pine geç, mutlaka bunlardan biri veya birkaçı değişiyor olmalı.
CLR hocam sanırım dediğiniz gibi LCD den kaynaklanıyor. LCD yi doğrudan pcb üzerine bağladım. Sorun yinede aynı. Osilaskop için arkadaşımın yanına gitmem lazım.
Eğer söylediğiniz gibi RESET veya başka bir pinde bahsettiğiniz durum söz konusu ise çözüm nedir. Ne yapmam gerekir.
1 adet 5 volt 1 adet 3.3 volt besleme kullandım. 5 volt u discovery karta 3.3 voltu lcd ye verdim. Usb besleme yetmeyebiliyor ve sorunlar başlıyor. devrede 5 volt regüleyi 5 volt gereken yerlere 3.3 volt u da çevre birimlerin beslemesine verdim. (discovery karta değil).
Alıntı yapılan: respected - 11 Kasım 2013, 12:19:09
CLR hocam sanırım dediğiniz gibi LCD den kaynaklanıyor. LCD yi doğrudan pcb üzerine bağladım. Sorun yinede aynı. Osilaskop için arkadaşımın yanına gitmem lazım.
Eğer söylediğiniz gibi RESET veya başka bir pinde bahsettiğiniz durum söz konusu ise çözüm nedir. Ne yapmam gerekir.
LCD büyük ihtimalle sağlamdır, sorun pcb yada program kaynaklıdır tahminimce, yukarıda bahsettiğin gibi floating bir pin ayarı kullanmışsan ondan kaynaklanabilir.
Rest pini 0'a gidiyorsa bu lcd'den kaynaklı olmaz, işlemci pini veya pcb kaynaklı olabilir, belki lcd control pinlerinden biri açık devre durumundadır vs. Orasını senin bulman gerekir.
@CLR
Tamam hocam anladım. pcb ve board kontrolü yaptım ama tekrar yapacağım. Ben ekstra bir durum mudur bu diye sormuştum. Mesela STM32 de board da daha önce kullanılan ses entegresi ivme sensörü bağlantısı olan uçlar bu problemi yapar mı diye düşünmüştüm.
Çünkü board un aynısını kullandım.
Merhaba..
Devredeki ground hatları ince ise ondan kaynaklanabilir mi acaba. Hat endüktans etkisi yapabilir belki.
Sorun büyük ölçüde çözüldü gibi. Gördüğüm kadarı ile 2 farklı durum buna sebep oluyormuş.
1- Kablonun uzun olması
2- STM board un boşta kalan pinlerinin lehimlenmemesi. (örneğin 2 faklı gnd var. her ikisini de lehimlemek gerekiyor)
Önce kabloyu kısalttım sorun devam etti. Daha sonra uzun kablo ve boşta kalan bu gnd leri lehimledikten sonra tekrar denedim sorun devam etti.
Lehimleme ve ardından 2 cm kablo ile denedim ve sorun artık kalmadı. Blendajlı kablo aldım yarın onu 20 cm bağlayarak tekrar deneyeceğim.
Bu konuda fikirlerini yazan arkadaşlara teşekkür ederim.
Sanırım kesin çözümü hala bulamaşım. Zaman zaman aynı sıkıntı devam ediyor. Çalışmalar devam ediyor. Tam çözümü bulursam buraya yazacağım.
Bu problemle ilgili testlere farklı lcd ile de denedim malesef sonuç yine aynı.
Farkettiğim bir şey oldu. Mesela ekrana RESET ucunu bağlamazsam herhangi bir yerede dokunsam ekran kararmıyor. Fakat RESET bağlayınca kararıyor.
RESET ucunda 2.5 V gibi bir gerilim var. Acaba gerilimde oluşan parazitten dolayı 2.5V un altına düşüp ekranı karartıyor olabilir mi?
mesaj birleştirme:: 10 Aralık 2013, 01:23:02
/* LCD RST configuration */
GPIO_InitStructure.GPIO_Pin = LCD_RST_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(LCD_RST_PORT, &GPIO_InitStructure);
Reset ayarlamasında bir problem var mı?
Selamun aleyküm,
Aynı sorun şu an bende de oluyor sevgili respected, OV7670 kamera modülünden aldığım görüntüyü STM32F4 Disc.'e (RAM'e) yükleyip oradan da 7" LCD ekran üzerinde bir 160*120 çerçeve içerisine gönderiyorum. Görüntü gönderirken rastgele bir zamanda (0-5dk arası) sizinki gibi ekran birden karmaşaya dönüyor. bir süre sonra da siyahlaşmaya başlıyor.
Bulgular;
- Görüntü göndermeyip de bir döngüde ekranda bir yazıyı sürekli yeniliyorum. ortada görüntü yokken yarım saat çalıştı hata oluşmadı.
- Görüntü gönderirken piksel değerini "0" olarak gönderiyorum, yarım saatte hiç hata oluşmadı.
- Sizin söylediğiniz gibi reset bağlantısını kestim, değişen birşey yok.
- 5V bağlantısını Disc. board un üzerinden almıştım. Başlarda bundan olduğunu düşünüp önemsememiştim. Beslemeyi ayırınca da devam etti malesef.
- 3V3 ü hala Disc. üzerinden alıyorum. onu da ayıracağım bir de öyle deneyeceğim.
- Bu arada mikroC kullanıyorum. Kütüphanedeki komutlar düzgün çalışmıyordu. Bulduğum bir iki örnekten devşirme fonksiyon oluşturdum. Komutu "Sendindex" adlı fonksiyondan gönderdiğimde çalışıyor. MikroC içerisindeki TFT_Write_Data(); çalışmıyordu. Datayı da mikroC içerisindeki TFT_16bit_Write_Data(); fonksiyonu ile gönderiyordum. Piksel değerlerini gönderirken acaba değerlerden biri 0x28(Ekranı kapat) komutuna denk geliyor da ekran ondan mı kapanıyor diye düşünüyordum. Piksel değerlerini TFT_16bit_Write_Data(0x28);//renk); olarak gönderdim. Düşündüğüm doğruysa bu durumda hemen ekranın kapanması gerekir diye düşündüm ancak bu durumda da hata oluşmadı.
-içimden bir ses sorunun yazılımsal olduğunu söylüyor. çünkü döngüyle yazı yazdırırken, devrenin bütün açık pinlerine dokunuyorum. hareket ettiriyorum vs. hiçbir problem yok.
Sizde bir gelişme var mı?
Selamlar.
Piksel değeri gönderirken 2ms bekleme koydum, yarım saattir problem yok. Tabi bir kare 5 dakkada anca ekrana doluyor ama canı sağolsun:)
yani yeni varsayım: yüksek frekansta hatlarda sinyal bozulması oluyor. Devre Ekran arası mesafe 30cm civarı. Tahminim Aynı PCB üzerinde olursa (mesafe düşerse) sorun kalkar.
Malesef arkadaşım sorun hala devam ediyor. Söylediğin şeyleri bende denedim. Beslemeyi tamamen dışarıdan verdim. Kabloyu iptal edip doğrudan pcb üzerine bağladım. Çok kısa (3-4cm) kablo kullandım ve kablo üzerine gürültüyü azaltmak için nüve (flat kablo için yassı olanından) kullandım sorun hala çözülmedi.
Bendeki sorunda ekranı gürültüsüz yani motor benzeri cihazların olmadığı yerde kullanırsam ve ekranın herhangi bir yerinde dokunmaz isem sorun olmuyor. En azından 1 gün kesintisiz denedim sorun olmadı. Fakat motor veya endüktif yüklerin olduğu bir ortamda ekran kararıyor. Farklı bir kod yazarak ekran karardığı zaman işlemci de kilitleniyor mu diye kontrol ettim işlemci gayet güzel çalışıyor. SSD1963 lü başka bir firmaya ait farklı bir PCB dizaynı olan ekran aldım sorun ondada devam ediyor.
Sorunun yazılımsal olduğu konusu benimde kafamı karıştı.
- Yüksek frekans ya da FSMC olabilir bunun dışında başka alternatiflerde vardır muhtemelen. Çözüm için hala vakit buldukça uğraşıyorum. Çözersem burada paylaşırım mutlaka.
Merhaba,
Sorunu çözebildiniz mi? Sebebi konusunda çok meraklandım :)