STM32F407 Discovery Resim Basma Ornegi ( TFT LCD ye )

Başlatan M_B, 21 Temmuz 2012, 19:09:30

M_B

ST nin Firmware kutuphanesi ve FSMC pinleri kullanılarak 3.2 TFT Lcd resim basma ornegi resimleri.





/**
  ******************************************************************************
  * @file    main.c / Ekrana Resim Basma.
  * @author  M_B
  * @version V1.0.0
  * @date    21-Tem-2012
  * @brief   Sorunsuz calisiyor
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************
  */ 



/* Includes ------------------------------------------------------------------*/
#include "main.h"





#define MESSAGE1   "    M_B 2012     "
#define MESSAGE2   " STM32F4 Discovery  " 
#define MESSAGE3   " [url=https://www.picproje.org]www.picproje.org[/url]    "



GPIO_InitTypeDef GPIO_InitStructure;
static __IO uint32_t TimingDelay;

extern u8 gImage_01[];



/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */



int main (void)
{
  STM_EVAL_LEDInit(LED4);
  STM_EVAL_LEDInit(LED3);
	
  if (SysTick_Config(SystemCoreClock / 1000))
  { 
    /* Capture error */ 
    while (1);
  }
	
	STM322xG_LCD_Init();

  	LCD_Clear(LCD_COLOR_BLACK);
	LCD_SetTextColor(LCD_COLOR_GREEN);
	LCD_SetBackColor(LCD_COLOR_BLACK);
	
    LCD_SetFont(&LCD_DEFAULT_FONT);

 
  	LCD_DisplayStringLine(LINE(1), (uint8_t *)MESSAGE1);
  	LCD_DisplayStringLine(LINE(2), (uint8_t *)MESSAGE2);
  	LCD_DisplayStringLine(LINE(15), (uint8_t *)MESSAGE3);


  	Delay(2000);   	Delay(2000);	Delay(2000);   


	LCD_Clear(LCD_COLOR_BLACK);
	LCD_WriteBMP2(239, 319, 240, 320,gImage_01);	// Resim	 

   while(1)
   {
   	
	
	
  	 
   }
}


/**
  * @brief  Inserts a delay time.
  * @param  nTime: specifies the delay time length, in milliseconds.
  * @retval None
  */
void Delay(__IO uint32_t nTime)
{ 
  TimingDelay = nTime;

  while(TimingDelay != 0);
}

/**
  * @brief  Decrements the TimingDelay variable.
  * @param  None
  * @retval None
  */
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  { 
    TimingDelay--;
  }
}


#ifdef  USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *   where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t* file, uint32_t line)
{ 
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */
  while (1)
  {
  }
}
#endif

/**
  * @}
  */


/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

serhat1990

Ellerinize sağlık Hocam.

Bir sorum olacaktı...TFT ekranı nereden alabiliriz Hocam. Bu örnekte kullanmış olduğunuz Ekranı .

M_B

Hocam TFT ekranı ebaydan STM32F107 geliştirme kiti ile beraber aldım.

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

serhat1990

#3
Alıntı yapılan: M_B - 21 Temmuz 2012, 19:53:31
Hocam TFT ekranı ebaydan STM32F107 geliştirme kiti ile beraber aldım.

Anladım Hocam. Bende kit ile beraber alacaktım . Ekran olduğundan oldukça ucuza gelecek gibi :)

Teşekkür ederim...

camby

Güzel çalışma,

TFT'nin özellikleri ve driver'ı nedir ?

Ekran tarama süresini belirleyebildiniz mi ?


M_B

Alıntı yapılan: camby - 21 Temmuz 2012, 20:33:46
Güzel çalışma,

TFT'nin özellikleri ve driver'ı nedir ?

Ekran tarama süresini belirleyebildiniz mi ?
SSD1289 chip setli. HY32D olarak nette bulabilirsiniz.
Ekranı FSMC pin yapısıyla suruyoruz. Oldukca hızlı Ekrana peşi peş sıra resim basınca da duraksama gibi olaylar olmuyor.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet


camby

Alıntı yapılan: M_B - 22 Temmuz 2012, 03:27:38
SSD1289 chip setli. HY32D olarak nette bulabilirsiniz.
Ekranı FSMC pin yapısıyla suruyoruz. Oldukca hızlı Ekrana peşi peş sıra resim basınca da duraksama gibi olaylar olmuyor.

Sormak istediğim aslında : ilk pikseli koyduğunuz an ile son pikseli tamamladığınız an arasındaki süre. Başka bir deyişle resmin açılma süresi ?

Ardından aradığım soru ise : F4 ile tüm ekranı tek renk diyelim ( kırmızı ) yapmak istediğimizde bu işlem ne kadar sürede tamamlanır.

Bunun teorik hesabını ve pratikte ulaşabildiğimiz değeri ( C ve ASM ile ) bulmaya çalışıyorum.


Örneğin SS1963 ile 120 MHz'e kadar clock ile data yollayabiliyoruz. F4'ün GPIO hattı bile ancak max 50MHz. Bu durumda TFT'yi F4 ile bile tam hızda kullanamadığımızı görüyorum.

Yukarıdaki örnekte de durum benzer midir ?

M_B

Alıntı yapılan: camby - 22 Temmuz 2012, 11:38:32
Sormak istediğim aslında : ilk pikseli koyduğunuz an ile son pikseli tamamladığınız an arasındaki süre. Başka bir deyişle resmin açılma süresi ?

Ardından aradığım soru ise : F4 ile tüm ekranı tek renk diyelim ( kırmızı ) yapmak istediğimizde bu işlem ne kadar sürede tamamlanır.

Bunun teorik hesabını ve pratikte ulaşabildiğimiz değeri ( C ve ASM ile ) bulmaya çalışıyorum.


Örneğin SS1963 ile 120 MHz'e kadar clock ile data yollayabiliyoruz. F4'ün GPIO hattı bile ancak max 50MHz. Bu durumda TFT'yi F4 ile bile tam hızda kullanamadığımızı görüyorum.

Yukarıdaki örnekte de durum benzer midir ?
Hocam yukardaki sorularını hiç araştırmadım gerek te duymadım.
Örnek olması acısından iki video var.
Usteki bana ait ( Kosan at ;) )
Video0026.3gp

QuickTime Movie on STM32F4-Discovery
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ErsinErce


camby

50 MHz ile başka bir model ile karıştırdım heralde.

M_B
Alıntı yapılan: M_B - 22 Temmuz 2012, 03:27:38
Oldukca hızlı Ekrana peşi peş sıra resim basınca da duraksama gibi olaylar olmuyor.

Bu şekilde bir videonuz var mı ? 320 x 240 pix

M_B

Alıntı yapılan: camby - 22 Temmuz 2012, 14:37:22
50 MHz ile başka bir model ile karıştırdım heralde.

M_B
Bu şekilde bir videonuz var mı ? 320 x 240 pix
Şu anda yok ama yapmayı dusunuyorum.
SD kart olayını hallettıkten sonra.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

camby

Alıntı yapılan: ErsinErce - 22 Temmuz 2012, 12:41:50
GPIO hızları 150MHz'e kadar destek vermekte

(Resim gizlendi görmek için tıklayın.)

Datasheet'te Features bölümünde :
Alıntı YapUp to 136 fast I/Os up to 84 MHz
yazıyor.

Gösterdiğiniz blok diyagramda ise : GPIO'ya giden AHB1 veri yolu 168 MHz .

Ayrıca :
Alıntı Yap2.2.33 General-purpose input/outputs (GPIOs)

... Fast I/O handling allowing maximum I/O toggling up to 84 MHz....

150 MHz nerede belirtilmiş ?

ErsinErce



rev1 datasheet'te 150 yazan yer rev3 de 168 olarak değiştirilmiş

ve yine rev1 de 2.2.33 bölümü bulunmadığından direk erişim yapıldığı varsayılarak söylenmiş bir varsayımdı  :)

ama hâla datasheet'te TBD (to be defined) kısımlarının doldurulmasını dört gözle bekliyorum

electrical characteristic kısmında şüpheli şeyler bulunuyor,

ayrıca reference manual'de FSMC modülünün asenkron çalışan açıklamalarında HCLK ile aynı zamanlamada giden kısımlarda mevcut


XX_CİHAN_XX

Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.