我買的正點原子7寸1024*600的RGB螢屏,移植跟著正點原子走,很簡單,但這是建立在uboot基本移植成功的基礎上;uboot初始化螢屏主要在mx6ull_xxx_emmc.h 和 mx6ull_xxx_emmc.c 這兩個板級檔案中,后期用其他LCD的時候,有什么坑再來添,
一般修改 LCD 驅動重點注意以下幾點:
針對NXP imx6ull-14x14-emmc的uboot LCD驅動移植程序
- 1.初始化LCD引腳
- 2.LCD 背光引腳 GPIO 的配置
- 3.LCD 配置引數是否正確
1.初始化LCD引腳
- 找到自己的板級檔案,在mx6ull_xxx_emmc.c中的lcd_pads結構體,因為正點原子的螢屏IO基本兼容NXP的螢屏IO,所以基本沒有什么改動,但是沒有復位引腳,只需要把LCD-IO結構體中的復位引腳注釋掉即可,如果自己畫的板子,注意修改;
在759行左右:
MX6_PAD_SNVS_TAMPER9__GPIO5_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL),
在765行do_enable_parallel_lcd函式中,注釋LCD復位輸出:
void do_enable_parallel_lcd(struct display_info_t const *dev)
{
enable_lcdif_clock(dev->bus);
imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads));
/* Reset the LCD */
//gpio_direction_output(IMX_GPIO_NR(5, 9) , 0);
//udelay(500);
//gpio_direction_output(IMX_GPIO_NR(5, 9) , 1);
/* Set Brightness to high */
gpio_direction_output(IMX_GPIO_NR(1, 8) , 1);
}
2.LCD 背光引腳 GPIO 的配置
背光IO兼容NXP的,不需要改動,如果自己畫的板子,注意修改;
/* Use GPIO for Brightness adjustment, duty cycle = period. */
MX6_PAD_GPIO1_IO08__GPIO1_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL),
/* Set Brightness to high */
gpio_direction_output(IMX_GPIO_NR(1, 8) , 1);
3.LCD 配置引數是否正確
在mx6ull_xxx_emmc.c中,NXP通過配置LCD引數結構體,有點復雜,其中包括了 LCD 的解析度、素格式等引數,跟單片機的初始化不一樣;其中的引數去查找廠商提供的螢屏資料手冊便知道了,這是正點原子的7寸螢屏資料,
struct display_info_t const displays[] = {{
.bus = MX6UL_LCDIF1_BASE_ADDR,
.addr = 0,
.pixfmt = 24,
.detect = NULL,
.enable = do_enable_parallel_lcd,
.mode = {
.name = "TFT7016",
.xres = 1024,
.yres = 600,
.pixclock = 19531,
.left_margin = 140,
.right_margin = 160,
.upper_margin = 20,
.lower_margin = 12,
.hsync_len = 20,
.vsync_len = 3,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED
} } };
打開 include/configs/mx6ull_xxx_emmc.h,搜索找到所有如下陳述句:
panel=TFT43AB
將其改為:
panel=TFT7016
這里可以自己命名,
下載驗證,如果LCD上有個NXP的彩色標志和uboot版本號(編譯時間),說明移植成功,下一步就是網路驅動的移植了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/103289.html
標籤:其他
上一篇:排障集錦:九九八十一難之第十七難!-------------Docker容器docker run -d后臺啟動不了的問題
