Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: camby - 07 Ocak 2013, 01:20:05

Başlık: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 01:20:05
STM32F4 ile Random Number Generator uygulaması :

- Üretilen random sayılar 32 bit .
- Renkler ve dairelere ait kordinatlar üretilen random sayılar ile belirleniyor.
- Renk datası 24 bit
- X ekseni 320 piksel , Y ekseni 240 piksel
- 32 bit'lik random sayılar kullanılacak yere göre ölçülendiriliyor. Örneğin renk için random sayı 256'ya bölündüğünde 24 bitlik skala'ya alınmış oluyor.
- RNG amaçlı bir çalışma olduğundan sadece main.c dosyasını paylaşıyorum.

Bülent hoca'nın şu linkte yapmış olduğu RNG örneğini görsel hale getirdim sadece : https://www.picproje.org/index.php/topic,35896.0.html (https://www.picproje.org/index.php/topic,35896.0.html)


http://www.youtube.com/watch?v=LiQbAo0lsNQ# (http://www.youtube.com/watch?v=LiQbAo0lsNQ#)


main.c :

/*----------------------------------------------------------------------------
* Name: STM32F407XX Denemeleri
* Purpose: Temel Islemler - RNG - Random Number Generator
* Note(s):
*----------------------------------------------------------------------------
* Tarih : 06.01.2013
*----------------------------------------------------------------------------*/

#include "STM32F4xx.h"
#include "GPIO.h"
#include "SSD1963_Driver.h"
#include "delay_ms.h"

unsigned int Random[512];
unsigned int Kor_x[512];
unsigned int Kor_y[512];

//====== Timer 7 Interrupt Handler ============================================
void TIM7_IRQHandler()
{
volatile static char LedFlag = 0;

TIM7->SR = 0;                           // UIF: Update interrupt flag
LedFlag = (LedFlag+1)&1;
if (LedFlag==1) GPIOD->ODR |= (1<<13);  // Ledler yansin
else GPIOD->ODR &=~ (1<<13);            // Ledler sonsun

}

//====== Timer7 Init ==========================================================
void Timer7_Init(void)
{
// Timer7 clock 84 MHZ , Prescaler 42.000 -> Her 1/2000 sn 0.5 ms'de bir deger 1 artar.

RCC->APB1ENR |= (1UL << 5);                // Enable Timer7 clock   ( 84 MHz )
TIM7->CR1 = 0x0080;              // 1: TIMx_ARR register is buffered
TIM7->PSC = 42000-1;            // Prescaler : 42000
TIM7->ARR = 2000;                 // Auto-Reload : 2000
TIM7->DIER = 0x0001;                    // Update interrupt enabled.0;       
NVIC->ISER[1] = (1<<55-32);        // NVIC ISER 55 , TIM7
TIM7->CR1|=0x0001;                    // Counter Enable
}

//====== MAIN function ========================================================
int main (void)
{
unsigned short i;

GPIO_Init();
Initial_SSD1963();
Timer7_Init();

Ekran_Doldur(siyah);
Cizgi_Cek(75,10,180,0,1,beyaz);
text_yaz(75,1,"SSD1963 RNG Test - STM32F407VG",1,5,beyaz);

RCC->AHB2ENR |= (1<<6);        // RNGEN: Random number generator clock enable
    RNG->CR |= (1<<2);                    // RNGEN: Random number generator enable
 
    for(i=0;i<512;i++)                  // 512 adet random sayi uretilsin
    {
while (!(RNG->SR&1));        // kullanilabilir sayi olusumunu bekle
Random [ i ] = RNG->DR;
}

for(i=0;i<512;i++)                  // 512 adet random sayi uretilsin
    {
while (!(RNG->SR&1));        // kullanilabilir sayi olusumunu bekle
Kor_x [ i ] = RNG->DR;
}

for(i=0;i<512;i++)                  // 512 adet random sayi uretilsin
    {
while (!(RNG->SR&1));        // kullanilabilir sayi olusumunu bekle
Kor_y [ i ] = RNG->DR;
}

while(1) // Loop forever               
{   
text_yaz(75,110,"Picproje.org",3,20,beyaz);
delay_ms(1500);

for(i=0;i<512;i++)                 
{
delay_ms(2);
daire_olustur(Kor_x[i]/(4294967296/320),Kor_y[i]/(4294967296/240),21,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,beyaz);
}
for(i=512;i>0;i--)                 
{
delay_ms(2);
daire_olustur(Kor_y[i]/(4294967296/320),Kor_x[i]/(4294967296/240),21,Random[i]/256);
}
for(i=0;i<512;i++)                 
{
delay_ms(1);
daire_olustur(Random[i]/(4294967296/320),Kor_x[i]/(4294967296/240),21,Kor_y[i]/256);
text_yaz(75,110,"Picproje.org",3,0,sari);
}
for(i=0;i<512;i++)                 
{
delay_ms(2);
Piksel_Koy_RNG(Kor_x[i]/(4294967296/320),Kor_y[i]/(4294967296/240),6,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,sari);
}
for(i=512;i>0;i--)                 
{
delay_ms(2);
Piksel_Koy_RNG(Kor_y[i]/(4294967296/320),Kor_x[i]/(4294967296/240),6,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,mavi);
}
for(i=0;i<512;i++)                 
{
delay_ms(2);
Piksel_Koy_RNG(Random[i]/(4294967296/320),Kor_x[i]/(4294967296/240),6,Kor_y[i]/256);
text_yaz(75,110,"Picproje.org",3,0,yesil);
}
}
}

Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: yldzelektronik - 07 Ocak 2013, 03:00:09
Hocam tft ilgi çekiciymiş.Hikayesi nedir?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 07 Ocak 2013, 08:42:18
Hocam Merhaba

Geçenlerde bende SSD1963 çipi 480X272 Çözünürlüğe sahip bir Bir LCD satın almıştım. Finallerden dolayı daha üzerinde hiç uğraşamadım. Mümkünse SSD1963 Driver dosyanızı paylaşabilirmisiniz.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 09:47:43
Alıntı yapılan: yldzelektronik - 07 Ocak 2013, 03:00:09
Hocam tft ilgi çekiciymiş.Hikayesi nedir?
Winstar WF57B - Özdisan

Özdisanda başka çeşitleri de var.


@Mucit23

Daha önce OptimusPrime isimli üye driver'ı paylaşmış , SSD1963'e ait ,  ben de oradan yararlandım. Bu kodları kullanabilirsiniz , kullanırken SSD1963 datasheet ve uygulama pdf'leri de açık olursa , üzerinde istediğiniz gibi değişiklik yapabilirsiniz.

Burası da çok yararlı :

http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963%20Eval%20Board%20Rev2A.htm (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963%20Eval%20Board%20Rev2A.htm)
http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963QL9.htm (http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963QL9.htm)
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 07 Ocak 2013, 10:12:50
Hocam Sanırım Buradaki başlıktan bahsediyorsunuz.

https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979 (https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979)

Kodları kullandığım işlemciye göre uygurmam gerekecek.

SSD1963 ile daha önce hiç uğraşmadım. Çok yabancıyım bu çipe.

Bendeki TFT dediğim gibi 480X272,

@OptimusPrime nın verdiği kodları biraz inceledim. .h dosyasında ekranın boyutunu belirleyen parametreler var.

LCD_VERTICAL_MAX       239
LCD_HORIZONTAL_MAX           319

Şeklinde Ekran Boyutunu değiştirmek için Bu iki parametre ile oynamak yeterlimidir?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 11:02:43
Alıntı yapılan: Mucit23 - 07 Ocak 2013, 10:12:50
Hocam Sanırım Buradaki başlıktan bahsediyorsunuz.

https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979 (https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979)

Kodları kullandığım işlemciye göre uygurmam gerekecek.

SSD1963 ile daha önce hiç uğraşmadım. Çok yabancıyım bu çipe.

Bendeki TFT dediğim gibi 480X272,

@OptimusPrime nın verdiği kodları biraz inceledim. .h dosyasında ekranın boyutunu belirleyen parametreler var.

LCD_VERTICAL_MAX       239
LCD_HORIZONTAL_MAX           319

Şeklinde Ekran Boyutunu değiştirmek için Bu iki parametre ile oynamak yeterlimidir?

pardon linki yapıştırmayı unutmuşum.

SSD1963 Zor bir çip değil , dökümanlarınızı hazırlayıp başına oturduğunuzda çözülecektir ki örnek kodlar da var. Ayrıca çip 120 MHz'de çalıştığından STM32F4 ile bile çalışırken hiç bekleme yapmaya gerek kalmıyor. Bu da kolaylık sağlıyor.


Arkadaşın verdiği kodları doğrudan kullanmadım , oradaki akışa bakarak terkrar yazdım.


Doğru bir şekilde init işlemini yaptığınızda olay çözülür.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: memo333 - 07 Ocak 2013, 14:20:19
ssd1963ü 24bit nasıl sürdünüz?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 14:57:26
Alıntı yapılan: memo333 - 07 Ocak 2013, 14:20:19
ssd1963ü 24bit nasıl sürdünüz?

Winstar WF57B TFT'lerin arayüzü 8 bit.

Datasheet 13. sayfada da SSD1963'ün arayüz seçenekleri belirtilmiş : http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf (http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf)

Bu durumda kullanılabilecek sadece tek bir format bulunuyor. 8 bit x 3.

SSD1963'ün , set_pixel_data_interface ( 0xF0 ) komutu ile bu ayar da yapılabiliyor. Datasheet : http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf (http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf)

8 bit'lerin son 2 bitleri de kullanılmıyor. Yani aslında 18bit renk , 24 bit formatta gönderiliyor.

Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 07 Ocak 2013, 15:11:19
6 bit renk çözünürlüğü yetiyormu?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 15:20:28
Alıntı yapılan: Mucit23 - 07 Ocak 2013, 15:11:19
6 bit renk çözünürlüğü yetiyormu?

R , G ve B için 6'şar bit , toplam 18 bit. 262144 renk ediyor. Görüntüler renkler fena değil gibi. Tabi 24 bit ekran da deneyip karşılaştıramadım.

(http://img402.imageshack.us/img402/6636/garf.jpg)
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: yldzelektronik - 07 Ocak 2013, 15:44:40
Bu tip uygulamalarda soketler beni nedense ürkütüyor.Sizin çözümünüz nasıl oldu?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 16:06:54
FFC konnektör genelde TFT satılan yerde bulunuyor. Denemek için ise küçük bir PCB ile DIP dişi konnektöre çevirmek yeterli. Yukardaki resimde ve videodaki küçük kahverengi PCB gibi..



Yada şu :

(http://www.newhavendisplay.com/images/NHD-FFC40-front.jpg)
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: sseedat - 07 Ocak 2013, 16:12:43
stm için tft ekran almayı düşünüyorumda ne tür bişey almalıyım daha önce hiç tft kullanmadım ona göre bişeyler önerebilirmisiniz.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 07 Ocak 2013, 16:18:11
TFT alırken Piyasada bol örnek bol driver bulunanları almaya bak. Almakla iş bitmiyor çünkü.

Bana kalırsa SSD1289 lu 3.2" bir TFT uğraşmak için Yeterlidir.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: sseedat - 07 Ocak 2013, 16:21:31
bu ürün uygun gibi fiyatıda iyi alayım bundan birtane.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: memo333 - 07 Ocak 2013, 16:24:20
Alıntı yapılan: camby - 07 Ocak 2013, 14:57:26
Winstar WF57B TFT'lerin arayüzü 8 bit.

Datasheet 13. sayfada da SSD1963'ün arayüz seçenekleri belirtilmiş : http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf (http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf)

Bu durumda kullanılabilecek sadece tek bir format bulunuyor. 8 bit x 3.

SSD1963'ün , set_pixel_data_interface ( 0xF0 ) komutu ile bu ayar da yapılabiliyor. Datasheet : http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf (http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf)

8 bit'lerin son 2 bitleri de kullanılmıyor. Yani aslında 18bit renk , 24 bit formatta gönderiliyor.

http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf)

burada sf 17de aynı tabloda 8*3 olarak 24 bit sürülebildiğini söylüyor.

SSD1963te bir ara kafamı karıştırmıştı bu konu. Bir eski datasheet var bir de yeni ama elinizdeki ssd1963 hangisi?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: yldzelektronik - 07 Ocak 2013, 16:49:34
Psp 1000 lerin tftlerindeki kontrolcü nedir?Bilgisi olan var mı?
Data sı burda

http://www.sharpsme.com/webfm_send/1894 (http://www.sharpsme.com/webfm_send/1894)

yanlız bişey merak ediyorum.Bu tip ekranları sürmek için harici (spi,i2c,usb,usart vs) entegreler muhakkak mevcuttur ancak ne diye aramak gerek?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 07 Ocak 2013, 17:09:52
Alıntı yapılan: memo333 - 07 Ocak 2013, 16:24:20
http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf)

burada sf 17de aynı tabloda 8*3 olarak 24 bit sürülebildiğini söylüyor.

SSD1963te bir ara kafamı karıştırmıştı bu konu. Bir eski datasheet var bir de yeni ama elinizdeki ssd1963 hangisi?

Evet ama dediğim gibi , 8 bit RGB 'lerin düşük değerlikli 2 bitleri kullanılmıyor.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 30 Ocak 2013, 14:07:15
Hocam kullandığınız LCD nin Dokunmatik paneli varmıydı?
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 30 Ocak 2013, 14:46:48
yok maalesef , dokunmatiksiz versiyondu..
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: Mucit23 - 30 Ocak 2013, 15:09:20
Özdisana Telefon açtım bana LCD için 85 Dolar fiyat verdi. Dokunmatik varmı diye sordum. Yok onu ayrı getirtmemiz gerekiyor dedi. Şimdi Acaba Özdisanın bana verdiği fiyat içerisine neler dahil? Bu lcd lerin üzerinde SSD1963 bulunan birde kontrol boardı olması lazım. Acaba fiyata o dahilmi? kafam karıştı açıkçası.

Nuray elektronik diye bir firmaya sordum. Onlarda 85 dolar fiyat verdi. Dokunmatiğede 51 dolar fiyat verdi. İkisi birlikte çok pahalı oluyor.

Hem dokunmatik, Hem de Kontrol kartını üzerinde bulunduran bir sürekli satın almada problem çıkarmayacak ortalama 5" civarında TFT nereden bulurum?

Aslında Çinde çok güzel TFT ler var

http://www.ebay.com/itm/5-inch-TFT-800-x-480-LCD-Display-Module-16M-colors-Touch-Panel-Screen-SSD1963-/181004141865?pt=LH_DefaultDomain_0&hash=item2a24b00529 (http://www.ebay.com/itm/5-inch-TFT-800-x-480-LCD-Display-Module-16M-colors-Touch-Panel-Screen-SSD1963-/181004141865?pt=LH_DefaultDomain_0&hash=item2a24b00529)

Mesela bu

Hobby amaçlı üzerinde çalışmak için uygun ama sürekli temin edilebilirliği yok..
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: camby - 30 Ocak 2013, 15:23:17
Alıntı yapılan: Mucit23 - 30 Ocak 2013, 15:09:20
Özdisana Telefon açtım bana LCD için 85 Dolar fiyat verdi. Dokunmatik varmı diye sordum. Yok onu ayrı getirtmemiz gerekiyor dedi. Şimdi Acaba Özdisanın bana verdiği fiyat içerisine neler dahil? Bu lcd lerin üzerinde SSD1963 bulunan birde kontrol boardı olması lazım. Acaba fiyata o dahilmi? kafam karıştı açıkçası.

Mucit Hocam, videodaki tft ekranın fiyatıdır o. Ekranın arka kısmında kontrol kartı var ve kartta SSD1963 bulunuyor. Bu ekran da WF57B'nin dokunmatiksiz modeli. Modelin tam uzantısı kolayımda yok şuan.

Farklı bit arayüzleri , SSD1963'süz , farklı ekran boyutları ve dokunmatikli gibi çeşitlenmeler var modellerde.

Size verilen büyük ihtimal : 8bit ssd1963 5.7inc dokunmatik ekran yok.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: erhanmete - 30 Ocak 2013, 17:49:35
Kitronix 3.5" TFT LCD Module With Touch Panel (K350QVG-V1-F/ FS-K350QVG-V2+konnektörü

40$
fakat minumum 5 adet olarak gönderebilirim.
isteyen olursa. elimdede sürekli mevcut hatta şu an 2000 adet var.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: M_B - 30 Ocak 2013, 21:54:24
@Camby hocam;

  text_yaz(75,1,"SSD1963 RNG Test - STM32F407VG",1,5,beyaz);

fonksiyonun iceriğini görebilirmiyiz.
Veya komple lcd nin driverini.
Başlık: Ynt: STM32F4 Discovery ile TFT üzerinde RNG Uygulaması
Gönderen: M_B - 11 Mart 2013, 16:23:44
@Camby hocam;
http://www.aliexpress.com/item/7-inch-TFT-LCD-module-800x480-SSD1963-w-touchpad-PWM-arduino-AVR-STM32-ARM-16190/733449464.html (http://www.aliexpress.com/item/7-inch-TFT-LCD-module-800x480-SSD1963-w-touchpad-PWM-arduino-AVR-STM32-ARM-16190/733449464.html)
urunu aldım. ( Bugun geldi ).
Sizin Kullandığınız Ekranın driveri ni alabilirmiyim. Veya elinizde bu ekrana göre driveriniz varmı?
bu konuda yardımınız dokunabilirmi?

Teşekkürler.