merhabalar,
daha önceden stm32f429 discovery board ile ekran üzerinde çalışmalar yapmıştım. şimdi üzerindeki external sdram'i kullanmadan çalışmak istiyorum. ancak ekranı istediğim gibi kullanamıyorum. 7" lcd kullanacağım. ekranda hep taşmalar oluyor. frame buffer ı nasıl ayarlayabileceğimi bulamadım, yardımcı olur musunuz ?
Hocam lcd nizin driver ı kendi üstünde mi yoksa yine stm in ltdc peripheral i ile mi sürüyosunuz
ltdc ile sürüyorum. devrede sadece stm32f429 ve lcd var. 2mb hafızasını kullanıp ekrana fotoğraf basmak istiyorum.
Frame buffer olarak nereyi kullanıyonuz?
aslında orada sıkıntım var, 0x08000000 olarak deniyorum.
Linker menüsünde belirttiğim ayar buydu, kodda da buffer olarak bunu yazdım.
hocam uygulamanı ve maliyetini bilmiyorum ama sistemi değiştirme şansın varsa nextion ekranları kullan .5 dakkada süper tasarımlar yapmak mümkün
hocam şu an ssitemi çalıştırmam gerek, başka zaman inşallah o ekranları kullanabilirim.
ancak şimdi ekrana bir şeyler basabilmem gerekiyor.
Hocam 7"'i ram ile çalıştırdınız mı acaba?
Alıntı yapılan: yktronik - 02 Kasım 2016, 16:20:13
aslında orada sıkıntım var, 0x08000000 olarak deniyorum.
Linker menüsünde belirttiğim ayar buydu, kodda da buffer olarak bunu yazdım.
Hocam bahsetiğin adres flash adresi ve flash ı başlangıcı.Orda vector tablosu var.Eğer vektör tablosunu offsetlemediyseniz orayı zaten kullanamazsınız da.Ayrıca frame buffer ı sürekli yazılıp okunabilen biyer olması gerekir o sebeple ram de biyer belirlemeniz lazım.Linker scriptinde ekran çözünürlüğüne uygun bi alan belirleyip orayı frame buffer olarak kullanmanız lazım.
Fakat SDRAM kullanmak istemediğinizi söylediniz.Bu durumda --atıyorum-- 240*320 lik bi ekran için en az 225 kb(240*320*3 byte) lık bir ram alanına ihtiyacınız var.429 unki 256 kb.Geriye kalıyo 30 kb .O yüzden sdram kullansanız iyi olur.
öncesinde nandflash ile fotoğrafları saklayıp, ram ile ekranda gösteriyordum. ama çok fazla görseli olmayan bir şeyde bunları kullanmak istemedim, amacım kendi hafızasında fotoğrafı saklayıp ekrana basmak. sdram ve kendi 2m hafızası ile bunu yaptım ama şimdi sdram de kullanmak istemiyorum.
doğrudan kendi hafızasından ekrana basmak istiyorum. hocam daha önce bunu yapmadım, kendi ramini kullanırken nelere dikakt etmem gerekiyor, çözemedim. gerekirse fotoğraf basmam ama text yazmam lazım en azından ve ram alanını belirlemem lazım, nereye bir şey yazdıysam kabul etmedi. bu işlemcinin ram'i hangi adresten başlıyor ?
Hocam Ram kullandığınızdaki tarama değerlerini paylaşmanız mümkün mü?
LCD konfigürasyonunu.
Alıntı yapılan: yktronik - 02 Kasım 2016, 17:07:18
öncesinde nandflash ile fotoğrafları saklayıp, ram ile ekranda gösteriyordum. ama çok fazla görseli olmayan bir şeyde bunları kullanmak istemedim, amacım kendi hafızasında fotoğrafı saklayıp ekrana basmak. sdram ve kendi 2m hafızası ile bunu yaptım ama şimdi sdram de kullanmak istemiyorum.
doğrudan kendi hafızasından ekrana basmak istiyorum. hocam daha önce bunu yapmadım, kendi ramini kullanırken nelere dikakt etmem gerekiyor, çözemedim. gerekirse fotoğraf basmam ama text yazmam lazım en azından ve ram alanını belirlemem lazım, nereye bir şey yazdıysam kabul etmedi. bu işlemcinin ram'i hangi adresten başlıyor ?
Hocam mikronun ram'i 0x20000000 adresinden başlıyor.Ram kullanmadan ancak ekrana basacağınız şeyler sabitse yapabilirsiniz.Fakat interaktif bi şekilde sürecekseniz flash kullanarak yaparsanız çok yavaş olur.Çünkü frame buffer olarak kullanacağınız flash bölgesini her görüntü değişimde silip tekrar programlamanız gerekecek.
Hocam eğer sadece fotoğraf basacaksanız;
Frame buffer adresini her seferinde ekrana basacağınız flash'ın adresine set ederek de yapabilirsiniz yapacağınız şeyi.Ama dediğim gibi interaktif bişeyler olacak bu yöntem işe yaramaz.
hocam aslında tek bir fotoğraf olacak. ama o fotoğrafın flashta tam olarak neye denk geldiğini bulamıyorum. tek fotoğraf basacağım için bende flashın adresi frame buffer yapıp oradan görüntüyü almak istiyorum. o adrese nasıl ulaşabilirim ?
Hocam fotoğrafı flash'a nasıl gömdünüz direkt kodun içinde bi array aracılığı ile mi?Eğer öyleyse array adresi zaten imajın adresi oluyo.
array şeklinde gösterdim sonradan ve ekranda görüntüledim, ama şimdi aklıma geldi, flashın bufferi gösterdim ama ekrana ufak rakamlar basmam gerekecek ve onlarda fotoğraf idi, haliyle patladı sistem.
bu işten nasıl çıkarım aklıma bir şey gelmiyor
Hocam bir şeyler ters gibi.
Donanım şu şekilde Flash->FRAME_BUFFER->LTDC_DMA
LTDC donanımı verilen frame buffer alanını tarar matris şeklinde. Siz oraya flash alanı verirseniz, flash daki okuma sürelerinden dolayı sistem sapıtır gibi geldi bana.
Bu iş ram alanıyla olur gibi geldi bana.
Hucam burada bir takım bilgiler var. Olayı daha iyi anlamak adına belki faydalı olabilir.
https://www.picproje.org/index.php/topic,63205.msg490201.html#msg490201
Bu arada kullanıgınız TFT 7" olan sürücüsüz TFT mi.Markası var mı?
Birde 7" için Lcd tarama için gereken süreleri paylaşma şansınız var mı acaba?
Esen kalın.
frame buffer olarak imajın bufferını gösterdim, sıkıntısız bir şekilde ve hatta hızlı bir şekilde ekrana bunu basabiliyorum.
lcd şu an yanımda değil, çinden gelmiş 40 pinli sürücüsüz lcd.
ama flashta bulunan şeyi basmak yetmeyecek çünkü üzerinde 10 tane küçük simge basmam gerekiyor.
ram işine dönmek gerekecek sanırım.
Hocam frame buffer olarak flash ı göstermenin hız açısından problem olacağını düşünmüyorum.Zaten 429 180 mhz de 5 waitstate de flash'tan okuma yapabiliyor.
Fakat sizin istediğiniz durumda sabit bir flash alanının frame buffer olarak kullanamazsınız.Ancak şöyle bir şey yapabilirsiniz:
Kullanmadığınız bir flash sektörüne ekrana basmak frami yazıp o sektörün frame buffer yapabilirsiniz.
hocam 7" için Lcd tarama için gereken süreleri paylaşma şansınız var mı acaba?