avatar_kartal_0689

dsPIC ile TFT Controller

Başlatan kartal_0689, 12 Şubat 2016, 16:44:35

kartal_0689

Herkese Merhaba Arkadaşlar,
dsPIC33FJ256GP710 mikrodenetleyicisiyle bir proje gerçekleştiriyorum.
Projemde 5" SSD1963 16-bit kontrollü TFT ekran kullanıyorum.
Çok hızlı görüntü işleme yapmıyorum bu projemde gerek te yok.
Ancak internette araştırıyorum ve sd karttan video oynatma işleri felan yapılabiliyor.
Şimdi ben TFT konusunda çok iyi değillim ve aşağıdaki soruları kafamda cevaplayamıyorum.
İşlemci frekansım 80MHZ (40MIPS)
Kullandığım derleyici MikroPascal Pro for dsPIC

1- Ben TFT ekranda bir karakterin üzerine yeni karakteri yazarken üzerine yazıyor. Bende arkaplan renginde boyayıp yeni karakteri basıyorum.
     Ancak video oynatırken nasıl görüntü hareket ederken üst üste yazmıyor. Zaten benim yöntemimle yapsam arka plan rengini neye göre
     boyayıp basacam ve bu kadar hızlı nasıl yapacam?
2- SD karttan resim okurken SPI olarak okuyorum ve TFT ye basıyorum.Okuma ve basma sürem max.2sn sürüyor. Bu süreyi nasıl kısaltabilirim.
3- DMA kontrol olayı nedir. Nasıl Gerçekleştirebilirim.Sanırım bu sorunu bu şekilde aşabilirim

Bu sorularda bana yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.
TURKEY/ANK

Mucit23

1. Sorunu tam anlayamadım aslında ama anladığım kadarıyla cevaplayayım yinede.
TFT lerde bir karakter basmak için karaktere ait datalar font dosyalarında tutulur. Her font için ayrı bir karakter tablosu bulunur ve fontlar 5x7, 8x12, 12x16 veya 16x24 gibi boyutlara sahip olabilir. Bu boyutlardan dahada büyük olabilir. Büyüklükteki sınır donanımın karşılayacağı kadardır diyebilir.

Fontlar ekrana basılırken TFT lerde genellikle pencere açma denilen işlem yapılır. Bu şu manaya gelir. Örneğin 320x240 boyutunda ekranımız olsun. Bu ekrananın herhangi bir noktasına 16x24 boyutlarında bir karakter basacaksak eğer o noktaya 16x24 boyutunda bir pencere açarız. Pencere açtığımız zaman TFT ekranın Gram sayacı sadece bizim açtığımız pencere içerisinde çalışır. Bize kazandırdığı ise her bir pixeli basmadan önce ekrana X ve Y kordinat vermemize gerek kalmaz dolayısıyla ekranı daha hızlı kullanmış oluruz.
Bunu anlamak için ekranın daha doğrusu kullanılan sürücünün yapısını bilmek gerekiyor aslında.

Bundan sonrası font datalarını ekrana göndermekten ibaret.

Font basarken iki farklı renk kullanacaksınız. birisi karakterin kendi rengi, Diğeri ise arka plan rengi. TFT kütüphanelerini incelerseniz TextColor ve BackColor şeklinde iki ayrı parametre olur.
Resim ve video basılıyorken zaten resim boyutu bellidir Yeni bir resim basılacaksa doğrudan eskisinin üzerine basılır. Eski resim otomatikmen silinir. Videoda da aynı durum geçerli.

2. Süreyi kısaltmanın birkaç yolu var.
   

  • Donanımın müsade ettiği müddetçe SPI clock hızını arttırma.
  • SDIO ile SD kartı sürme. Yarıbuçuk paralel sürmedir aslında. Tek bir Data hattı yerine 4 adet data hattı kullanılır. Sd kartlar normalde bu şekilde çalışır.

3. DMA MCU içerisindeki bir çeşit veri köprüsü diyebiliriz. Köprünün girişini veya çıkışını sen belirlersin. İşlemciyi meşgul etmenden arka planda veri transferi yapmaya yarar

Örnek vermek gerekirse. Örneğin ADC den 1000 adet örnek alıp bir diziye atman gerekiyor. Bunu DMA ile rahatlıkla yapabilirsin. ADC dönüşümü tamamladıktan sonra DMA'yı tetikler, DMA veriyi alıp Dizi değişkenin ilgili elemanına yazar. Bu işlemler sırasında MCU meşgul olmaz tamamen arka planda yürür.

Veya şöyle bir örnek vereyim kendim yaptım. Daha önce STM32F4 ile DCMI donanımını kullanarak kamera çalıştırmıştım. Kameradan görüntüyü DMA vasıtasıyla alıp TFT ekrana basıyordum. Dolayısıyla kameradan aldığım görüntü doğrudan TFT de görünüyordu. DCMI'da yeni bir data gelince DMA tetiklenip veriyi alıp LCD süren FSMC donanımına gönderiyordum. İşlem ayarlamaları yaptıktan sonra tamamen arka planda ve hiç işlem gücü harcamadan çalışıyordu. DMA nın mantığı budur. Genellikle yüksek boyutlu veri transferi yapılacağı durumlarda kullanılması arz eder.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

kartal_0689

Mucit23 çok teşekkür ederim verdiğin bilgiler için...
TURKEY/ANK

Powered by EzPortal