查看: 981|回复: 0

[原创] AN12302中的sd_jpeg工程修改

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
19946
最后登录
2024-4-19
发表于 2021-5-13 16:23:42 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2021-5-13 16:28 编辑

背景介绍
AN12302应用手册中,展示了修改sd_jpeg工程以驱动1280X800 LCD 扩展板的步骤,但最近SDK软件库版本内的sd_jpeg工程的软件结构已与应用手册中的sd_jpeg工程差别巨大,所以此篇经验分享针对最近版本的sd_jpeg工程介绍代码修改步骤。
7748584-8f4853cefc376c13.png
Fig1 NXP LCD扩展板
修改LCD 尺寸和HSW/HBP/HFP/VSW/VBP/VFP参数

在display_support.h中,
  1. /*******************************************************************************
  2. * Definitions
  3. ******************************************************************************/
  4. #define DEMO_PANEL_WIDTH  1280    //480
  5. #define DEMO_PANEL_HEIGHT 800     //272U
复制代码

在display_support.c中,
  1. /*******************************************************************************
  2. * Definitions
  3. ******************************************************************************/
  4. #define DEMO_HSW 10      //41
  5. #define DEMO_HFP 70       //4
  6. #define DEMO_HBP 80       //8
  7. #define DEMO_VSW 3        //10
  8. #define DEMO_VFP 10       //4
  9. #define DEMO_VBP 10       //2
复制代码
  1. # 修改DOTCLK时钟频率(pixel clock)
  2. /*******************************************************************************
  3. * Code
  4. ******************************************************************************/
  5. /* Initialize the LCD_DISP. */
  6. void BOARD_InitLcdifPixelClock(void)
  7. {
  8.    
  9.     clock_video_pll_config_t config = {
  10.         .loopDivider = 52,
  11.         .postDivider = 16,
  12.         .numerator   = 0,
  13.         .denominator = 0,
  14.     };

  15.     CLOCK_InitVideoPll(&config);
  16.     /*
  17.      * 000 derive clock from PLL2
  18.      * 001 derive clock from PLL3 PFD3
  19.      * 010 derive clock from PLL5
  20.      * 011 derive clock from PLL2 PFD0
  21.      * 100 derive clock from PLL2 PFD1
  22.      * 101 derive clock from PLL3 PFD1
  23.      */
  24.     CLOCK_SetMux(kCLOCK_LcdifPreMux, 2);

  25.     CLOCK_SetDiv(kCLOCK_LcdifPreDiv, 1);

  26.     CLOCK_SetDiv(kCLOCK_LcdifDiv, 0);
  27. }
复制代码

配置LCDIF_CTRL2寄存器提升LCD模块性能

  1. 在fsl_dc_fb_elcdif.c中的DC_FB_ELCDIF_Init(const dc_fb_t *dc)函数内
  2. status_t DC_FB_ELCDIF_Init(const dc_fb_t *dc)
  3. {
  4.     const dc_fb_elcdif_config_t *dcConfig;
  5.     elcdif_rgb_mode_config_t elcdifConfig = {0};

  6.     dc_fb_elcdif_handle_t *dcHandle = dc->prvData;

  7.     if (0 == dcHandle->initTimes++)
  8.     {
  9.         dcConfig = (const dc_fb_elcdif_config_t *)(dc->config);

  10.         elcdifConfig.panelWidth    = dcConfig->width;
  11.         elcdifConfig.panelHeight   = dcConfig->height;
  12.         elcdifConfig.hsw           = dcConfig->hsw;
  13.         elcdifConfig.hfp           = dcConfig->hfp;
  14.         elcdifConfig.hbp           = dcConfig->hbp;
  15.         elcdifConfig.vsw           = dcConfig->vsw;
  16.         elcdifConfig.vfp           = dcConfig->vfp;
  17.         elcdifConfig.vbp           = dcConfig->vbp;
  18.         elcdifConfig.bufferAddr    = 0;
  19.         elcdifConfig.dataBus       = dcConfig->dataBus;

  20.         elcdifConfig.pixelFormat   = DC_FB_ELCDIF_DEFAULT_PIXEL_FORMAT_ELCDIF;
  21.         elcdifConfig.polarityFlags = dcConfig->polarityFlags;

  22.         dcHandle->height = dcConfig->height;
  23.         dcHandle->width  = dcConfig->width;
  24.         dcHandle->elcdif = dcConfig->elcdif;

  25.         ELCDIF_RgbModeInit(dcHandle->elcdif, &elcdifConfig);
  26.     }
  27.    /*Change the burst length and the outstanding cycle issuing capability in the
  28.     LCDIF_CTRL2 register.*/
  29.     dcHandle->elcdif->CTRL2 = 0x00700000;

  30.     return kStatus_Success;
  31. }
复制代码

修改BOARD_SDRAM和NCACHE_REGION的空间分配
7748584-61b409e899ba37ee.png

Fig 2

适当增加Heap和stack的大小
7748584-9c6a8dcfc414968d.png

Fig 3



‘成品’演示
硬件准备
  • 在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屏;
图片准备
通过在线网站:https://www.img2go.com/convert-to-jpg将科比自传动画短片《亲爱的篮球》转换成1280x800的jpg图片并放入SD卡内
运行工程 ,图片显示 (如下图所示)
7748584-e1a8d053d9101a78.jpg



7748584-11a2f4307c3ae6da.jpg



7748584-95e924a759b10d90.jpg

















回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-20 10:45 , Processed in 0.117919 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表