MCU
STM32F746G DISCOVERY(ST)
IDE
STM32CubeIDE
목표
LCD I/F를 이용하여 TFT LCD 출력

 

- 이전 글과 달리 IDE를 ATOLLIC → CubeIDE로 변경

- ATOLLIC은 CubeMX와 ATOLLIC을 따로 설치해야 하나, CubeIDE = CubeMX + IDE 통합 환경

- 사용상의 큰 다른점은 없으나, ATOLLIC에서 생성한 프로젝트를 CubeIDE에서 바로 사용할 수 없고 Import 해서 사용해야 함


1. LTDC(LCD-TFT Display Controller)

STM32F746G DISCOVERY Board에는 480 x 272 해상도의 4.3인치 터치패널이 있는 TFT-LCD가 달려있다.

Red : Green : Blue = 5 : 6 : 5 = 16bit Color에 480x272 해상도의 한 화면을 그릴때 메모리를 계산해 보면,

- 480 x 272 x 2byte = 261,120byte = 261Kbytes

- STM32F746의 SRAM이 320Kbytes인데, 한 화면을 그리고 나면 메모리가 없다.

그래서 외부 SDRAM을 프레임 버퍼 메모리로 사용해야 하므로, LCD 설정에 앞서 SDRAM을 설정 해야 한다.


2. STM32F746 DISCOVERTY LCD + TOUCH 관련 회로도

 

MCU

 

 

Backlight driver & PFC of LCD panel

 

3. LTDC 설정

3-1. RGB565(16 bits)

 

3-2. Clock Configuration : LCD Clock 9.6MHz로 설정

 

3-3. LTDC Parameter Settings

3-4. LTDC Layer Settings : Layer 설정

3-5. LTDC GPIO Settings : Data Bus 결선 확인

아래 회로도를 확인하여, LTDC에서 기본으로 지정하는 포트가 아니고 DISCOVERY Board에서 지정하는 포트로 변경해야 한다.

MCU

 

 

3-6. LCD DSP와 Backlight Pin 설정

 

4. RNG 설정

- 화면에 색을 랜덤으로 바꾸기 위해 Random Number Generator 를 enable

- GENERATE CODE


5. main.c 수정

- 네모 표시함수를 작성

/* USER CODE BEGIN 0 */

void buf_rect(uint16_t  *pBuf, uint32_t start_x, uint32_t stop_x,
              uint32_t start_y,uint32_t stop_y,uint16_t color)
{
    for(uint32_t j=start_y; j<stop_y; j++)
    {
        for(uint32_t i=start_x; i<stop_x; i++)
        {
            *(pBuf + j*480 + i) = (uint16_t)color;
        }
    }
}
 

 

- pBuf 주소를 지정

/* USER CODE BEGIN 1 */
    uint16_t  *pBuf = (uint16_t *)0xC0000000;
/* USER CODE END 1 */
 

 

- SDRAM 초기화 함수와 LTDC 프레임 버퍼 주소 지정

/* USER CODE BEGIN 2 */
    BSP_SDRAM_Initialization_sequence(REFRESH_COUNT);
    HAL_LTDC_SetAddress(&hltdc, pBuf, 0);  // Reconfigure the frame buffer Address
/* USER CODE END 2 */
 

 

- random 함수를 발생시키는 함수를 추가하고 여기서 발생한 32bit 정수를 반씩 나누어 색으로 이용하는 함수를 작성

	while (1)
	{
	/* USER CODE END WHILE */
	
	/* USER CODE BEGIN 3 */
		uint32_t rng_val = HAL_RNG_GetRandomNumber(&hrng);
		printf("RNG_val = 0x%08lx \r\n",rng_val);
		buf_rect(pBuf, 0,240,0,136,rng_val & 0xffff);  	rng_val >>= 16;
		buf_rect(pBuf, 240,480,0,136,rng_val & 0xffff);
	
		rng_val = HAL_RNG_GetRandomNumber(&hrng);
		printf("RNG_val = 0x%08lx \r\n",rng_val);
		buf_rect(pBuf, 0,240,136,272,rng_val & 0xffff);  	rng_val >>= 16;
		buf_rect(pBuf, 240,480,136,272,rng_val & 0xffff);
		HAL_Delay(500);
	}
	/* USER CODE END 3 */
 
STM32F746 LCD 테스트

 

'ST > STM32F746DIS' 카테고리의 다른 글

STM32F746G DISCOVERY - CAMERA I/F  (0) 2025.04.19
STM32F746G DISCOVERY - LCD + TOUCH  (0) 2025.04.19
STM32F746G DISCOVERY - SDRAM  (0) 2025.04.19
STM32F746G DISCOVERY - TIM(IC, OC, PWM)  (0) 2025.04.19
STM32F746G DISCOVERY - TIMER  (0) 2025.04.19

 

1. LCD(Liquid Crystal Display)

- LCD는 "액정 표시 장치"로서, 액정을 사용하여 이미지를 표시하는 플랫 패널 디스플레이 기술

- 이전에는 CRT(Cathode Ray Tube) 기술이 주로 사용되었으며, 전자빔을 사용하여 유리 진공관 내부의 화면에 이미지를 형성하는 방식으로 작동

- CRT는 크기가 크고 무거워서 이동이 어렵고 전력 소비가 높은 단점이 있었으며, 해상도와 화질 면에서도 한계

- LCD는 이후에 등장한 기술로, 각 픽셀은 액정 분자의 상태를 변경하여 빛을 통과시켜 이미지를 형성

- LED(Light Emitting Diode) 백라이트를 사용하는 LED 디스플레이 기술이 LCD를 발전시켰으며, 더 밝고 효율적인 조명을 제공하고 색상 표현력과 에너지 효율성을 향상

- 또한, OLED(Organic Light Emitting Diode) 기술도 등장하여 각 픽셀이 독립적으로 발광하여 더 얇고 유연한 디스플레이를 만들 수 있게 되었음

 

2. TFT (Thin Film Transistor)

- TFT는 "반도체 박막 트랜지스터"의 약자

- TFT 디스플레이는 각 픽셀마다 반도체 박막 트랜지스터를 사용하여 화면의 밝기와 색을 제어

- TFT는 액정 분자의 회전을 통해 빛의 통과를 제어하여 디스플레이에 이미지를 형성하는 LCD 기술

- 이 기술은 전기적으로 각 픽셀을 제어하여 고해상도 이미지를 표시할 수 있습니다.

- TFT는 빠른 응답 속도와 낮은 전력 소비로 유명하며, 게이밍 모니터와 휴대전화에서 널리 사용됩니다.

- LCD 패널에서 TFT는 각 픽셀에 백라이트를 밝히는 방식으로 작동하여 화면을 조절합니다.

- 디스플레이의 각 부분을 독립적으로 조절할 수 있어 고화질 이미지를 표시할 수 있습니다.

 

3. 패널 유형

3-1. TN (Twisted Nematic)

- TN 기술은 LCD (Liquid Crystal Display) 패널에서 가장 일반적으로 사용되는 기술

- 주로 게이밍 모니터나 저가형 모니터에 사용

- 빠른 응답 속도와 낮은 가격이 장점

- 시야각이 제한되고 색재현성이 낮은 단점

 

3-2. VA (Vertical Alignment)

- VA 기술은 명암비와 색재현성을 개선하는 데 중점을 둔 LCD 기술

- TN보다 명암비가 더 높고, IPS보다 색재현성이 더 뛰어남

- TV 및 엔터테인먼트 목적에 주로 사용되며, 광대역 시야각과 깊은 검은색을 표현하는 데 우수

- 반응 속도가 상대적으로 느리고 가격이 높은 편

 

3-3. IPS (In-Plane Switching)

- IPS 기술은 LCD 패널의 시야각과 색재현성을 향상시키는 데 중점을 둔 기술

- 시야각이 넓고 색상 정확도가 높아 그래픽 작업이나 전문적인 작업에 적합

- 반응 속도는 느리지만, 최근의 IPS 패널은 더 빠른 속도

- 전체적으로 IPS 기술은 고품질의 이미지와 넓은 시야각을 제공

 

4. 패널 유형에 따른 비교

특징
TN
VA
IPS
사용되는 기술
TFT
TFT
TFT
시야각
좁음
(약 160도)
넓음
(약 178도)
매우 넓음
(약 178도)
응답속도
빠름
(일반적으로 1ms 이내)
느림
(일반적으로 5ms 이상)
보통
(일반적으로 4ms 이내)
명암비
낮음
(일반적으로 1000:1 이하)
매우 높음
(일반적으로 2000:1 이상)
높음
(일반적으로 1000:1 이상)
색재현도
낮음
(일반적으로 6비트)
중간
(일반적으로 8비트)
높음
(일반적으로 8비트 이상)
색정확도
낮음
중간
매우 높음
주요 용도
게이밍, 저가형 모니터 등
TV, 엔터테인먼트 목적 등
그래픽 작업, 전문적인 작업 등
가격
상대적으로 저렴
보통
보통

요약하자면,

- TFT는 LCD 기술의 하위 카테고리로 색을 표현하는 방식

- TN, VA, IPS는 TFT 디스플레이 기술의 한 유형

'전자 부품 > LCD' 카테고리의 다른 글

LCD - LVDS, MIPI, HDMI 인터페이스 비교  (0) 2025.03.16

+ Recent posts