[ST_MICRO]/STM32F42015. 6. 29. 14:14

[STM32F4_ZE_NET] FSMC 테스트 - TFT LCD 출력 테스트


[STM32F4_ZE_NET] FSMC 테스트 - TFT LCD 출력 테스트





STM32F4의 FSMC를 이용하면 TFT-LCD를 버스 방식으로 제어 가능하다.


STM32F4의 FSMC는 4개의 64MB로 할당 가능하다.






STM32F405 FSMC 블록도





STM32F405 FSMC 테스트 초기화 코드


초기화 코드

#define LCD_BANK_ADDR                   ((uint32_t)0x6C000000)
#define _LCD_CMD_OUT(Data)              (*(uint16_t *) (LCD_BANK_ADDR) = Data)
#define _LCD_DAT_OUT(Data)              (*(uint16_t *) (LCD_BANK_ADDR) = Data)
#define _LCD_DATA(p)                    (*(volatile uint16_t*) (LCD_BANK_ADDR + (p<<1)))

#define Lcd_Cmd(reg)                    _LCD_DATA(0x0000) = reg;

#define Lcd_Data(dat)                   _LCD_DATA(0x0002) = dat;




테스트 코로 테스트 해 보면 CMD출력 할때 RS(A1)가 low가 되는것을 확인 할 수 있다.

       while(1)
       {
              Lcd_Cmd(0x0200);Lcd_Data(0x0000);
              Lcd_Cmd(0x0201);Lcd_Data(0x0000);
              Delay(delay_time);
       }







/CS와 /WR 신호를 확인 해 보면 4개의 /CS,/RS가 출력 되는것을 확인 할 수 있다.

타이밍을 최적화 해 보면 300ns 내에 4개의 명령이 수행 되는것을 확인 할 수 있다.

  /* Timing */
  Timing.AddressSetupTime = 4;
  Timing.AddressHoldTime = 4;
  Timing.DataSetupTime = 8;
  Timing.BusTurnAroundDuration = 6;
  Timing.CLKDivision = 2;
  Timing.DataLatency = 2;




LCD에 이미지 한장 출력하는데 7.5ms 정도 소요된다.






TFT-LCD에 BMP 파일 출력 해보면 정상 적으로 잘 출력 되는것을 확인 할 수 있다.








Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F4012015. 6. 29. 12:27

STM32F401 회로 설계시 주의사항

STM32F401 회로 설계시 주의사항

기존 STM32F4의 PB11 (64핀 기준 30번핀, 100핀 기준 48번핀) 이 VCAP로 대치되어 있으므로 주의가 필요하다. 

이부분만 호환 할 수 있도록 설계하면 동일하게 사용할 수 있다.








Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F42014. 12. 15. 18:17

STM32F4 UART interrupt 테스트

STM32F4 UART interrupt 테스트



void U0_SetInt(void)

{

    /* NVIC for USART1 */

    HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);

    HAL_NVIC_EnableIRQ(USART1_IRQn);

    

      /* Enable the UART Data Register not empty Interrupt */

    __HAL_UART_ENABLE_IT(&UartHandle, UART_IT_RXNE);

}




void USART1_IRQHandler(void)

{

    U0_PutByte(U0_GetByte());

}


Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F43x2014. 11. 5. 12:08

STM32F4 Software Reset Test (소프트웨어 리셋)

STM32F4 Software Reset Test (소프트웨어 리셋)



void SoftReset(void)

{

    #define AIRCR_VECTKEY_MASK    (0x05FA0000)    

    SCB->AIRCR = AIRCR_VECTKEY_MASK | 0x04;    

}




STM32F429 에서 소프트웨어 리셋 테스트 예제

int main(void)

{


    HAL_Init();


    //Configure the System clock to have a frequency of 180 MHz

    SystemClock_Config();


    Led1Init();

    Led1On();

    Delay(2000);

    Led1Off();

    Delay(2000);


    SoftReset();

    while(1)

    {

    }


return 0;

}


Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F43x2014. 6. 18. 11:58

STM32F429 180Mhz 클럭 구동 설정

STM32F429 180Mhz 클럭 구동 설정


STM32F429는 180Mhz까지 구동 가능하다. 기존 STM32F4 코드 system_stm32f4xx.c 파일에서 수정가능하다.


#if _USE_MAINCLK_168MHZ

// 168Mhz

#define PLL_N      336

  

uint32_t SystemCoreClock = 168000000;

#endif




#if _USE_MAINCLK_180MHZ

// 180Mhz

#define PLL_N      360


uint32_t SystemCoreClock = 180000000;

#endif


Posted by nexp

댓글을 달아 주세요