STM32F439 EVM 보드 에는 SDIO방식의 SD Card 연결할 수 있는 SD 소켓이 할당되어 있고 이를 이용하여 SD Card의 BMP파일을 TFT LCD에 출력하는 테스트를 진행해 보았다.
'tft-lcd'에 해당되는 글 50건
- 2015.03.14 STM32F439 EVM - SD카드를 이용한 BMP파일 출력 테스트
- 2015.03.01 STM32F439 LCD EVM - TFT LCD Test
- 2015.03.01 STM32F439 EVM 테스트 보드 제작
- 2014.07.27 TM4C123 EVM - TFT-LCD 테스트
- 2014.01.12 [TMS320C28346] 7" TFT LCD 테스트
STM32F439 LCD EVM - TFT LCD Test
STM32F4 LTDC 핀맵
STM32F439 TFT-LCD 초기화 코드
uint8_t BSP_LCD_Init(void)
{
/* LTDC Configuration ----------------------------------------------------*/
LtdcHandler.Instance = LTDC;
/* Configure horizontal synchronization width */
LtdcHandler.Init.HorizontalSync = HSYNC;
/* Configure vertical synchronization height */
LtdcHandler.Init.VerticalSync = VSYNC;
/* Configure accumulated horizontal back porch */
LtdcHandler.Init.AccumulatedHBP = HBP;
/* Configure accumulated vertical back porch */
LtdcHandler.Init.AccumulatedVBP = VBP;
/* Configure accumulated active width */
LtdcHandler.Init.AccumulatedActiveW = ACTIVE_W-2;
/* Configure accumulated active height */
LtdcHandler.Init.AccumulatedActiveH = ACTIVE_H;
/* Configure total width */
LtdcHandler.Init.TotalWidth = TOTAL_WIDTH;
/* Configure total height */
LtdcHandler.Init.TotalHeigh = TOTAL_HEIGHT;
/* Configure R,G,B component values for LCD background color */
LtdcHandler.Init.Backcolor.Red= 0;
LtdcHandler.Init.Backcolor.Blue= 0;
LtdcHandler.Init.Backcolor.Green= 0;
/* LCD clock configuration */
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLLSAI.PLLSAIN = _PLLSAIN_CLK;
PeriphClkInitStruct.PLLSAI.PLLSAIR = PLLSAIR_DIV;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
/* Polarity */
LtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
LtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
LtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AL;
LtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
MspInit();
HAL_LTDC_Init(&LtdcHandler);
/* Initialize the SDRAM */
BSP_SDRAM_Init();
/* Initialize the font */
BSP_LCD_SetFont(&LCD_DEFAULT_FONT);
return LCD_OK;
}
STM32F439 EVM TFT-LCD커넥터 핀맵
기존 7" TFT-LCD 모듈 커넥터 연결하여 다양한 LCD 테스트 가능하다.
STM32F439 TFT LCD 제어 예제
아래는 간단히 LCD 초기화 하고 LCD에 Text 표시하는 예제이다.
STM32F439 TFT LCD 제어 테스트 예제 동영상
SD Card에 있는 BMP파일을읽어 TFT LCD에 출력하는 동영상
댓글을 달아 주세요
STM32F439 EVM 테스트 보드 제작
STM32F439 시리즈중 100이상 모델은 TFT-LCD 컨트롤러를 내장하고 있어 LCD출력할 프로젝트라면 사용하기 좋은 MCU이다.
TFT LCD 및 SDRAM, HDMI, 이더넷, USB등을 테스트 할 수 있는 176핀의 STM32F439IGT6 테스트 보드를 제작해 보았다.
기본적으로 기존에 제작한 핀맵을 기준으로 연결할 수 있도록 하고 나머지 핀들은 확장해서 테스트 할수 있도록 했다.
이 보드의 주요 기능은 7" TFT-LCD 모듈을 연결하여 여러가지 기능을 테스트 할수 있는 모듈이다.
기존 SRAM 방식의 TFT-LCD 모듈을 연결하여 테스트 가능하다.
기존 7" TFT-LCD 모듈 테스트 커넥터
7" TFT-LCD 테스트 커넥터
HDMI 출력 모듈 테스트 커넥터
댓글을 달아 주세요
TM4C123 EVM - TFT-LCD 테스트
TM4C123 보드를 이용하여 TFT-LCD를 적은 핀수로 테스트 할 수 있는 [LCD-CONV] 보드의 TFT-LCD 테스트를 진행 했다. TFT-LCD출력 속도는 18ms로 빠른데 SD Card 읽어들이는 속도가 상대적으로 느려 고속출력은 무리가 있어 보인다.
TI 제공 ROM 함수 사용시
320x240 한프레임 출력 시간이 100ms 정도 출력된다.
상당히 느리다..
#define _LCD_DAT_OUT(Data) ROM_GPIOPinWrite(GPIO_PORTC_BASE, 0xFF, Data>>8);\
LCD_DATA_LATCH();\
ROM_GPIOPinWrite(GPIO_PORTC_BASE, 0xFF, Data&0xFF)
레지스터 직접 제어시
18ms 로 상당히 빨라졌다.
#define _LCD_DAT_OUT(Data) PORTC = (Data>>8);\
LCD_DATA_LATCH();\
PORTC = Data
TM4C123 TFT-LCD 테스트 동영상
TM4C123 TFT-LCD 드라이버 코드
//-----------------------------------------------------------------------------
// TFT LCD Driver
#define TFT_DRV_HD66791 0
#define TFT_DRV_COM44 1
#define LCD_LAT_BIT BIT6
#define LCD_LAT_PORT GPIO2
#define LCD_LAT_ON() PD6 = BIT6;
#define LCD_LAT_OFF() PD6 = 0;
#define LCD_DATA_LATCH() LCD_LAT_ON();LCD_LAT_OFF();
#define LCD_RST_BIT BIT6
#define LCD_RST_PORT GPIOA
#define LCD_RST_ON()
#define LCD_RST_OFF()
#define LCD_WR_BIT BIT0
#define LCD_WR_PORT GPIO2
#define LCD_WR_OFF() (PD0 = 0);
#define LCD_WR_ON() (PD0 = BIT0);
#define LCD_RS_BIT BIT1
#define LCD_RS_PORT GPIO2
#define LCD_RS_OFF() (PD1 = 0);
#define LCD_RS_ON() (PD1 = BIT1);
#define LCD_EN_BIT BIT2
#define LCD_EN_PORT GPIO2
#define LCD_ENABLE() (PD2 = 0);
#define LCD_DISABLE() (PD2 = BIT2);
#define LCD_BL_BIT BIT3
#define LCD_BL_PORT GPIO2
#define LCD_BL_OFF() (PD3 = 0);
#define LCD_BL_ON() (PD3 = BIT3);
/*
#define _LCD_DAT_OUT(Data) ROM_GPIOPinWrite(GPIO_PORTC_BASE, 0xFF, Data>>8);\
LCD_DATA_LATCH();\
ROM_GPIOPinWrite(GPIO_PORTC_BASE, 0xFF, Data&0xFF)
*/
#define _LCD_DAT_OUT(Data) PORTC = (Data>>8);\
LCD_DATA_LATCH();\
PORTC = Data
#define TFTGpioInit() ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);\
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, 0xFF);\
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);\
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, 0xFF);
//-----------------------------------------------------------------------------
TM4C123 SD Card 드라이버 코드
//-----------------------------------------------------------------------------
// SD Card HAL
#define _DEBUG_FAT_FILE 1
#define MMC_CS_PORT GPIOA
#define MMC_CS_BIT BIT3
#define MMC_CS_INIT() ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);\
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, MMC_CS_BIT);
#define MMC_CS_HIGH() PA3 = BIT3
#define MMC_CS_LOW() PA3 = 0;
#define MMC_SpiInit() SPI0_Init()
#define MMC_SendByte SPI0_WriteReadByte
#define MMC_Send(Data) SPI0_WriteReadByte(Data)
#define MMC_Recv() SPI0_WriteReadByte(0xFF)
#define MMC_SPISpeed SPI0_SetSpeed
#define SPI_Mode3()
#define FAT_MAX_NUM_FILE 50
#define FCLK_SLOW() MMC_SPISpeed(SPI_SPEED_1MHZ)
#define FCLK_FAST() MMC_SPISpeed(SPI_SPEED_10MHZ)
//-----------------------------------------------------------------------------
댓글을 달아 주세요
[TMS320C28346] 7" TFT LCD 테스트
SSD1963 을 이용하여 TMS320C28346 보드에서 7" TFT LCD를 테스트 했다.
void Disp_Full_Color(unsigned int Color)
unsigned long i;//size;
Lcd_Cmd(0x2C);
for(i=0;i<384000;i++)
{
Lcd_Data(Color);
}
}
TMS320C28346 을이용한 7" TFT LCD 테스트 결과
TFT-LCD 테스트 동영상
댓글을 달아 주세요