在线时间2095 小时
UID3253523
注册时间2016-3-21
NXP金币1734
该用户从未签到
超级版主
- 积分
- 19946
- 最后登录
- 2024-4-19
|
本帖最后由 小恩GG 于 2021-5-13 16:28 编辑
背景介绍在AN12302应用手册中,展示了修改sd_jpeg工程以驱动1280X800 LCD 扩展板的步骤,但最近SDK软件库版本内的sd_jpeg工程的软件结构已与应用手册中的sd_jpeg工程差别巨大,所以此篇经验分享针对最近版本的sd_jpeg工程介绍代码修改步骤。 Fig1 NXP LCD扩展板 修改LCD 尺寸和HSW/HBP/HFP/VSW/VBP/VFP参数
在display_support.h中,
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #define DEMO_PANEL_WIDTH 1280 //480
- #define DEMO_PANEL_HEIGHT 800 //272U
复制代码
在display_support.c中,
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #define DEMO_HSW 10 //41
- #define DEMO_HFP 70 //4
- #define DEMO_HBP 80 //8
- #define DEMO_VSW 3 //10
- #define DEMO_VFP 10 //4
- #define DEMO_VBP 10 //2
复制代码- # 修改DOTCLK时钟频率(pixel clock)
- /*******************************************************************************
- * Code
- ******************************************************************************/
- /* Initialize the LCD_DISP. */
- void BOARD_InitLcdifPixelClock(void)
- {
-
- clock_video_pll_config_t config = {
- .loopDivider = 52,
- .postDivider = 16,
- .numerator = 0,
- .denominator = 0,
- };
- CLOCK_InitVideoPll(&config);
- /*
- * 000 derive clock from PLL2
- * 001 derive clock from PLL3 PFD3
- * 010 derive clock from PLL5
- * 011 derive clock from PLL2 PFD0
- * 100 derive clock from PLL2 PFD1
- * 101 derive clock from PLL3 PFD1
- */
- CLOCK_SetMux(kCLOCK_LcdifPreMux, 2);
- CLOCK_SetDiv(kCLOCK_LcdifPreDiv, 1);
- CLOCK_SetDiv(kCLOCK_LcdifDiv, 0);
- }
复制代码
配置LCDIF_CTRL2寄存器提升LCD模块性能
- 在fsl_dc_fb_elcdif.c中的DC_FB_ELCDIF_Init(const dc_fb_t *dc)函数内
- status_t DC_FB_ELCDIF_Init(const dc_fb_t *dc)
- {
- const dc_fb_elcdif_config_t *dcConfig;
- elcdif_rgb_mode_config_t elcdifConfig = {0};
- dc_fb_elcdif_handle_t *dcHandle = dc->prvData;
- if (0 == dcHandle->initTimes++)
- {
- dcConfig = (const dc_fb_elcdif_config_t *)(dc->config);
- elcdifConfig.panelWidth = dcConfig->width;
- elcdifConfig.panelHeight = dcConfig->height;
- elcdifConfig.hsw = dcConfig->hsw;
- elcdifConfig.hfp = dcConfig->hfp;
- elcdifConfig.hbp = dcConfig->hbp;
- elcdifConfig.vsw = dcConfig->vsw;
- elcdifConfig.vfp = dcConfig->vfp;
- elcdifConfig.vbp = dcConfig->vbp;
- elcdifConfig.bufferAddr = 0;
- elcdifConfig.dataBus = dcConfig->dataBus;
- elcdifConfig.pixelFormat = DC_FB_ELCDIF_DEFAULT_PIXEL_FORMAT_ELCDIF;
- elcdifConfig.polarityFlags = dcConfig->polarityFlags;
- dcHandle->height = dcConfig->height;
- dcHandle->width = dcConfig->width;
- dcHandle->elcdif = dcConfig->elcdif;
- ELCDIF_RgbModeInit(dcHandle->elcdif, &elcdifConfig);
- }
- /*Change the burst length and the outstanding cycle issuing capability in the
- LCDIF_CTRL2 register.*/
- dcHandle->elcdif->CTRL2 = 0x00700000;
- return kStatus_Success;
- }
复制代码
修改BOARD_SDRAM和NCACHE_REGION的空间分配
Fig 2
‘成品’演示
硬件准备- 在RT1050EVKB板中,用零欧姆电阻代替R67并拆下电容器C88;
- 连接LCD扩展板J1与RT1050EVKB板J8;
- 将LCD扩展板J3引脚1连接到RT1050EVK板J1引脚10,并连接LCD扩展板J3引脚2
连接到RT1050EVK板的J1引脚8; - 使用跳线将RT1050板J1的pin1和pin2短路,可使用外置5V适配器给板子供电,因为USB供电带不动1280x800 LCD屏;
图片准备运行工程 ,图片显示 (如下图所示)
|
|