@crazyd 不会keil啊
YuzukiTsuru 发布的帖子
-
回复: 有D1S/F133连接以太网的参考吗
参考一下这个,千兆网:
Yuzuki RV Router RISC-V 旁路由
https://bbs.aw-ol.com/topic/1583/share/3 -
Yuzuki RV Router RISC-V 旁路由
- 千兆以太网
- 2lane MIPI DSI 屏幕
- 支持CTP
- 1 USB 2.0 HOST
- 1 USB OTG、POWER
- XR829 Wi-Fi & BT
-
Tina 增加一个 Package 将交叉编译好的 bin 打包进去
在Package文件夹下新建文件夹 my_lvgl
目录结构. ├── bin │ ├── lib │ │ ├── kksk.so # 动态库 │ │ ├── libglog.so # 动态库 │ │ └── lvgl_1.so # 动态库 │ └── my_lvgl # my_lvgl 主程序 └── Makefile # 下面的Makefile
include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/package.mk PKG_NAME:=my_lvgl PKG_VERSION:=1.0.0 PKG_RELEASE:=1 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) SRC_CODE_DIR := ./bin define Package/$(PKG_NAME) SECTION:=My Package CATEGORY:=My LVGL DEPENDS:=+libc +libstdcpp + TITLE:=My LVGL endef # 这里放一些外部的库 define Package/$(PKG_NAME)/extra_provides echo 'libstdc++.so.6' && echo 'libc.so' endef define Package/$(PKG_NAME)/config # 留空 endef define Package/$(PKG_NAME)/Default # 留空 endef define Package/$(PKG_NAME)/description My LVGL endef define Build/Prepare $(INSTALL_DIR) $(PKG_BUILD_DIR)/ $(CP) -rf $(SRC_CODE_DIR)/* $(PKG_BUILD_DIR)/ endef define Build/Configure # 留空 endef define Build/Compile # 留空 endef #define Build/InstallDev # 留空 #endef define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/my_lvgl $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/lib* $(1)/usr/lib/ endef $(eval $(call BuildPackage,$(PKG_NAME)))
-
回复: xfel烧录不了32M nor flash
sunxi-fel烧写没问题
sudo sunxi-fel -p spiflash-write 0 flashimg.bin 100% [================================================] 33554 kB, 3045.6 kB/s SF: Detected mx25l25635f with page size 256 Bytes, erase size 64 KiB, total 32 MiB
-
回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(二:PCB焊接调试)
@lifanko 倒是没有什么额外条件,主要是3V3电压是4V就说明芯片没有正常工作
可以在立创那边参考一下:https://oshwhub.com/GloomyGhost/yuzukixr32f4
-
回复: OpenixCard - 在 Linux 系统刷写全志镜像到 SD 卡
更新了1.0.2版本
_____ _ _____ _ | |___ ___ ___|_|_ _| |___ ___ _| | | | | . | -_| | |_'_| --| .'| _| . | |_____| _|___|_|_|_|_,_|_____|__,|_| |___| |_| Copyright (c) 2022, YuzukiTsuru <GloomyGhost@GloomyGhost.com> Usage: OpenixCard [options] Optional arguments: -h --help shows help message and exits [default: false] -v --version prints version information and exits [default: false] -u --unpack Unpack Allwinner Image to folder [default: false] -d --dump Convert Allwinner image to regular image [default: false] -c --cfg Get Allwinner image partition table cfg file [default: false] -p --pack Pack dumped Allwinner image to regular image from folder [default: false] -i --input Input Allwinner image file or dumped image directory [required] eg. OpenixCard - TUI Interface -> NOT AVALIABLE OpenixCard -u -i <img> - Unpack Allwinner image to target OpenixCard -u -c -i <img> - Unpack Allwinner image to target and generate Allwinner image partition table cfg OpenixCard -d -i <img> - Convert Allwinner image to regular image OpenixCard -p -i <dir> - Pack dumped Allwinner image to regular image from folder
-
回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(二:PCB焊接调试)
@lifanko VDD VLX的电感有焊接吗,这个3V3需要芯片正常工作才会出的。如果芯片工作正常,没有倒灌应该没问题的,试试把板载UART全部去除看看还有没有这个问题。
-
回复: 【开源开发板】D1s-Nezha开发板全全开源上架(内含购买链接和全部软硬件资料)
@gonboy 这个开发板的CSI接口全部存在其他复用关系,所以不能接摄像头
-
回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(二:PCB焊接调试)
@lifanko XR32是内部有一个PMU,按reset也会reset那个PMU。量一下电感输出是不是1.4v,还有内存脚是不是1.2v
另外可以参考一下我的板子,验证基本没有问题的(除了摄像头不知道是软件还是硬件问题
-
回复: 真离谱:使用主线Buildroot编译Tina Linux系统,然后使用全志官方PhoenixSuit烧写SPI NAND
@allwinnertech 大概应该好像是没有的(?
-
回复: 【新手求助】D1s/f133-a 如何优化LVGL8?
新版本Tina下的Package里GUI里有一个LVGL的demo,可以看一下那里的实现。论坛里也有使用的例子。
基本上我测试下800*480,静态编译lvgl8大概40fps,开了双缓可以到70fps多,G2D性能提升感觉不大,但是G2D提供了屏幕旋转的功能,也可以同时渲染两个lvgl界面
-
回复: T113,F133视频播放bug
@mhcsoft 不是,是直接 tplayerdemo 进入REPL界面设置参数
参考:D1-H_Tina_Linux_多媒体解码_开发指南.pdf
-
回复: T113 sdNand启动经常在跑到根文件系统时挂掉,可能是什么原因?
- 检查 m kermel_menuconfig 有没有打开ext4相关驱动
- 检查mmcblk对应的rootfs分区是否正确
- 检查是否存在 cd 检测脚监测失败的情况(比较有可能
- 检查是否为sdc2,sdc2需要修改dtsi才可以驱动mmc设备
-
【开源硬件、软件】基于 D1-H 的 YuzukiRuler Pro 小尺子第二弹
上一版的是F1C200s的,传送门:【开源】YuzukiRuler 随身Linux小尺子
先来个图图
硬件资料
以下硬件资料在 CERN Open Hardware Licence Version 2 - Permissive 协议下开源硬件资料
PCB符合JLC免费打样工艺:4Layer,JLC2313 层叠阻抗,最小线距3.5mil,最小孔0.45/0.2mm
Github: https://github.com/YuzukiHD/YuzukiRulerPro
OSHWHub:https://oshwhub.com/gloomyghost/yuzukirulerpro软件资料
Buildroot: https://github.com/YuzukiHD/Buildroot-YuzukiSBC
Tina Linux: 待补全 -
回复: tina t113 现在支持systemd 和 视频硬解码?
@eddardzhu 看一下tplayerdemo的实现,基本上调用TPlayer不用gstreamer,不过我在d1-h上测试gstreamer没什么问题
-
回复: 请教下T113的Uboot是如何把fdt地址传给内核的?
请参阅:
tina-d1-h/lichee/brandy-2.0/u-boot-2018/board/sunxi/sunxi_replace_fdt.c
-
回复: 【已解决】D1s 调试 MIPI LCD 不亮
@smiletiger 是,但是如果开uboot的disp驱动,kernel就没有输出,关了uboot的就可以了
-
一图看懂 MIPI LCD 的初始化序列
屏厂一般会给这样的一个init code资料
{DSICMD_CMD,0x01}, {CMDDELAY_MS,120}, {DSICMD_CMD,0x11}, {CMDDELAY_MS,120}, {DSICMD_CMD,0xFF}, {DSICMD_DATA,0x77}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x11}, {DSICMD_CMD,0xD1}, {DSICMD_DATA,0x11}, {DSICMD_CMD,0x55}, {DSICMD_DATA,0xb0}, // 80 90 b0 {DSICMD_CMD,0xFF}, {DSICMD_DATA,0x77}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x10}, {DSICMD_CMD,0xC0}, {DSICMD_DATA,0x63}, {DSICMD_DATA,0x00}, {DSICMD_CMD,0xC1}, {DSICMD_DATA,0x09}, {DSICMD_DATA,0x02}, {DSICMD_CMD,0xC2}, {DSICMD_DATA,0x37}, {DSICMD_DATA,0x08}, {DSICMD_CMD,0xC7},//x-dir {DSICMD_DATA,0x04}, // rotate 0 : 0x00 rotate 180 :0x04 {DSICMD_CMD,0xCC}, {DSICMD_DATA,0x38}, {DSICMD_CMD,0xB0}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x11}, {DSICMD_DATA,0x19}, {DSICMD_DATA,0x0C}, {DSICMD_DATA,0x10}, {DSICMD_DATA,0x06}, {DSICMD_DATA,0x07}, {DSICMD_DATA,0x0A}, {DSICMD_DATA,0x09}, {DSICMD_DATA,0x22}, {DSICMD_DATA,0x04}, {DSICMD_DATA,0x10}, {DSICMD_DATA,0x0E}, {DSICMD_DATA,0x28}, {DSICMD_DATA,0x30}, {DSICMD_DATA,0x1C}, {DSICMD_CMD,0xB1}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x12}, {DSICMD_DATA,0x19}, {DSICMD_DATA,0x0D}, {DSICMD_DATA,0x10}, {DSICMD_DATA,0x04}, {DSICMD_DATA,0x06}, {DSICMD_DATA,0x07}, {DSICMD_DATA,0x08}, {DSICMD_DATA,0x23}, {DSICMD_DATA,0x04}, {DSICMD_DATA,0x12}, {DSICMD_DATA,0x11}, {DSICMD_DATA,0x28}, {DSICMD_DATA,0x30}, {DSICMD_DATA,0x1C}, {DSICMD_CMD,0xFF}, {DSICMD_DATA,0x77}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x11}, // enable bk fun of command 2 BK1 {DSICMD_CMD,0xB0}, {DSICMD_DATA,0x4D}, {DSICMD_CMD,0xB1}, {DSICMD_DATA,0x60}, //0x56 0x4a 0x5b {DSICMD_CMD,0xB2}, {DSICMD_DATA,0x07}, {DSICMD_CMD,0xB3}, {DSICMD_DATA,0x80}, {DSICMD_CMD,0xB5}, {DSICMD_DATA,0x47}, {DSICMD_CMD,0xB7}, {DSICMD_DATA,0x8A}, {DSICMD_CMD,0xB8}, {DSICMD_DATA,0x21}, {DSICMD_CMD,0xC1}, {DSICMD_DATA,0x78}, {DSICMD_CMD,0xC2}, {DSICMD_DATA,0x78}, {DSICMD_CMD,0xD0}, {DSICMD_DATA,0x88}, {CMDDELAY_MS,100}, {DSICMD_CMD,0xE0}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x02}, {DSICMD_CMD,0xE1}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x03}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x02}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x04}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x44}, {DSICMD_DATA,0x44}, {DSICMD_CMD,0xE2}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_CMD,0xE3}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x33}, {DSICMD_DATA,0x33}, {DSICMD_CMD,0xE4}, {DSICMD_DATA,0x44}, {DSICMD_DATA,0x44}, {DSICMD_CMD,0xE5}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0x26}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x03}, {DSICMD_DATA,0x28}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x05}, {DSICMD_DATA,0x2A}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x07}, {DSICMD_DATA,0x2C}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_CMD,0xE6}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x33}, {DSICMD_DATA,0x33}, {DSICMD_CMD,0xE7}, {DSICMD_DATA,0x44}, {DSICMD_DATA,0x44}, {DSICMD_CMD,0xE8}, {DSICMD_DATA,0x02}, {DSICMD_DATA,0x26}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x04}, {DSICMD_DATA,0x28}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x06}, {DSICMD_DATA,0x2A}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0x08}, {DSICMD_DATA,0x2C}, {DSICMD_DATA,0xA0}, {DSICMD_DATA,0xA0}, {DSICMD_CMD,0xEB}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0xE4}, {DSICMD_DATA,0xE4}, {DSICMD_DATA,0x44}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x40}, {DSICMD_CMD,0xED}, {DSICMD_DATA,0xFF}, {DSICMD_DATA,0xF7}, {DSICMD_DATA,0x65}, {DSICMD_DATA,0x4F}, {DSICMD_DATA,0x0B}, {DSICMD_DATA,0xA1}, {DSICMD_DATA,0xCF}, {DSICMD_DATA,0xFF}, {DSICMD_DATA,0xFF}, {DSICMD_DATA,0xFC}, {DSICMD_DATA,0x1A}, {DSICMD_DATA,0xB0}, {DSICMD_DATA,0xF4}, {DSICMD_DATA,0x56}, {DSICMD_DATA,0x7F}, {DSICMD_DATA,0xFF}, {DSICMD_CMD,0xFF}, {DSICMD_DATA,0x77}, {DSICMD_DATA,0x01}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_DATA,0x00}, {DSICMD_CMD,0x36}, // //U&D Y-DIR {DSICMD_DATA,0x10}, //rotate 0: 0x00 : rotate 180 :0x10 {DSICMD_CMD,0x3A}, {DSICMD_DATA,0x55}, {DSICMD_CMD,0x29},
对应的初始化序列
{0x01, 1, {0x00} }, {REGFLAG_DELAY, REGFLAG_DELAY, {120} }, {0x11, 1, {0x00} }, {REGFLAG_DELAY, REGFLAG_DELAY, {120} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x11} }, {0xd1, 1, {0x11} }, {0x55, 1, {0xb0} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x10} }, {0xc0, 2, {0x63, 0x00} }, // SCNL = (0x63 + 1) * 8 = 800 {0xc1, 2, {0x09, 0x02} }, // VFB=0x09 VBF=0x02 {0xc2, 2, {0x37, 0x08} }, // PCLK= 512 + (0x08 * 16) = 640 {0xc7, 1, {0x00} }, // x-dir rotate 0 : 0x00 rotate 180 :0x04 {0xcc, 1, {0x38} }, {0xb0, 16, {0x00, 0x11, 0x19, 0x0c, 0x10, 0x06, 0x07, 0x0a, 0x09, 0x22, 0x04, 0x10, 0x0e, 0x28, 0x30, 0x1c} }, {0xb1, 16, {0x00, 0x12, 0x19, 0x0d, 0x10, 0x04, 0x06, 0x07, 0x08, 0x23, 0x04, 0x12, 0x11, 0x28, 0x30, 0x1c} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x11} }, // enable bk fun of command 2 BK1 {0xb0, 1, {0x4d} }, {0xb1, 1, {0x5b} }, // 0x56 0x4a 0x5b {0xb2, 1, {0x07} }, {0xb3, 1, {0x80} }, {0xb5, 1, {0x47} }, {0xb7, 1, {0x8a} }, {0xb8, 1, {0x21} }, {0xc1, 1, {0x78} }, {0xc2, 1, {0x78} }, {0xd0, 1, {0x88} }, {REGFLAG_DELAY, REGFLAG_DELAY, {100} }, {0xe0, 3, {0x00, 0x00, 0x02} }, {0xe1, 11, {0x01, 0xa0, 0x03, 0xa0, 0x02, 0xa0, 0x04, 0xa0, 0x00, 0x44, 0x44} }, {0xe2, 12, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }, {0xe3, 4, {0x00, 0x00, 0x33, 0x33} }, {0xe4, 2, {0x44, 0x44} }, {0xe5, 16, {0x01, 0x26, 0xa0, 0xa0, 0x03, 0x28, 0xa0, 0xa0, 0x05, 0x2a, 0xa0, 0xa0, 0x07, 0x2c, 0xa0, 0xa0} }, {0xe6, 4, {0x00, 0x00, 0x33, 0x33} }, {0xe7, 2, {0x44, 0x44} }, {0xe8, 16, {0x02, 0x26, 0xa0, 0xa0, 0x04, 0x28, 0xa0, 0xa0, 0x06, 0x2a, 0xa0, 0xa0, 0x08, 0x2c, 0xa0, 0xa0} }, {0xeb, 7, {0x00, 0x01, 0xe4, 0xe4, 0x44, 0x00, 0x40} }, {0xed, 16, {0xff, 0xf7, 0x65, 0x4f, 0x0b, 0xa1, 0xcf, 0xff, 0xff, 0xfc, 0x1a, 0xb0, 0xf4, 0x56, 0x7f, 0xff} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x00} }, {0x36, 1, {0x00} }, // U&D Y-DIR rotate 0: 0x00 : rotate 180 :0x10 {0x3a, 1, {0x55} }, {0x29, 1, {0x00} }, {REGFLAG_END_OF_TABLE, REGFLAG_END_OF_TABLE, {} }
-
回复: 用T113S3驱动mipi屏幕,高速video模式下面没有时钟和数据输出
看看是不是这个问题,今天点了mipi发现了
D1s 调试 MIPI LCD 不亮
https://bbs.aw-ol.com/topic/1485/share/1 -
回复: 【已解决】D1s 调试 MIPI LCD 不亮
驱动文件
#include "d310t9362v1.h" static void lcd_power_on(u32 sel); static void lcd_power_off(u32 sel); static void lcd_bl_open(u32 sel); static void lcd_bl_close(u32 sel); static void lcd_panel_init(u32 sel); static void lcd_panel_exit(u32 sel); #define panel_reset(sel, val) sunxi_lcd_gpio_set_value(sel, 0, val) static void lcd_cfg_panel_info(panel_extend_para *info) { u32 i = 0, j = 0; u32 items; u8 lcd_gamma_tbl[][2] = { {0, 0}, {15, 15}, {30, 30}, {45, 45}, {60, 60}, {75, 75}, {90, 90}, {105, 105}, {120, 120}, {135, 135}, {150, 150}, {165, 165}, {180, 180}, {195, 195}, {210, 210}, {225, 225}, {240, 240}, {255, 255}, }; u32 lcd_cmap_tbl[2][3][4] = { { {LCD_CMAP_G0, LCD_CMAP_B1, LCD_CMAP_G2, LCD_CMAP_B3}, {LCD_CMAP_B0, LCD_CMAP_R1, LCD_CMAP_B2, LCD_CMAP_R3}, {LCD_CMAP_R0, LCD_CMAP_G1, LCD_CMAP_R2, LCD_CMAP_G3}, }, { {LCD_CMAP_B3, LCD_CMAP_G2, LCD_CMAP_B1, LCD_CMAP_G0}, {LCD_CMAP_R3, LCD_CMAP_B2, LCD_CMAP_R1, LCD_CMAP_B0}, {LCD_CMAP_G3, LCD_CMAP_R2, LCD_CMAP_G1, LCD_CMAP_R0}, }, }; items = sizeof(lcd_gamma_tbl) / 2; for (i = 0; i < items - 1; i++) { u32 num = lcd_gamma_tbl[i + 1][0] - lcd_gamma_tbl[i][0]; for (j = 0; j < num; j++) { u32 value = 0; value = lcd_gamma_tbl[i][1] + ((lcd_gamma_tbl[i + 1][1] - lcd_gamma_tbl[i][1]) * j) / num; info->lcd_gamma_tbl[lcd_gamma_tbl[i][0] + j] = (value << 16) + (value << 8) + value; } } info->lcd_gamma_tbl[255] = (lcd_gamma_tbl[items - 1][1] << 16) + (lcd_gamma_tbl[items - 1][1] << 8) + lcd_gamma_tbl[items - 1][1]; memcpy(info->lcd_cmap_tbl, lcd_cmap_tbl, sizeof(lcd_cmap_tbl)); } static s32 lcd_open_flow(u32 sel) { printk("=====================lcd_open_flow\n"); LCD_OPEN_FUNC(sel, lcd_power_on, 10); LCD_OPEN_FUNC(sel, lcd_panel_init, 120); LCD_OPEN_FUNC(sel, sunxi_lcd_tcon_enable, 120); LCD_OPEN_FUNC(sel, lcd_bl_open, 0); return 0; } static s32 lcd_close_flow(u32 sel) { printk("=====================lcd_close_flow\n"); LCD_CLOSE_FUNC(sel, lcd_bl_close, 0); LCD_CLOSE_FUNC(sel, lcd_panel_exit, 200); LCD_CLOSE_FUNC(sel, sunxi_lcd_tcon_disable, 0); LCD_CLOSE_FUNC(sel, lcd_power_off, 500); return 0; } static void lcd_power_on(u32 sel) { printk("=====================lcd_power_on\n"); sunxi_lcd_pin_cfg(sel, 1); sunxi_lcd_power_enable(sel, 0); // sunxi_lcd_power_enable(sel, 1); sunxi_lcd_delay_ms(50); /* reset lcd by gpio */ panel_reset(sel, 1); sunxi_lcd_delay_ms(5); panel_reset(sel, 0); sunxi_lcd_delay_ms(10); panel_reset(sel, 1); sunxi_lcd_delay_ms(120); } static void lcd_power_off(u32 sel) { printk("=====================lcd_power_off\n"); sunxi_lcd_pin_cfg(sel, 0); sunxi_lcd_delay_ms(20); panel_reset(sel, 0); sunxi_lcd_delay_ms(5); sunxi_lcd_power_disable(sel, 0); } static void lcd_bl_open(u32 sel) { printk("=====================lcd_bl_open\n"); sunxi_lcd_pwm_enable(sel); sunxi_lcd_backlight_enable(sel); } static void lcd_bl_close(u32 sel) { printk("=====================lcd_bl_close\n"); sunxi_lcd_backlight_disable(sel); sunxi_lcd_pwm_disable(sel); } #define REGFLAG_DELAY 0XFC #define REGFLAG_END_OF_TABLE 0xFD /* END OF REGISTERS MARKER */ struct LCM_setting_table { u8 cmd; u32 count; u8 para_list[32]; }; static struct LCM_setting_table lcm_initialization_setting[] = { {0x01, 1, {0x00} }, {REGFLAG_DELAY, REGFLAG_DELAY, {120} }, {0x11, 1, {0x00} }, {REGFLAG_DELAY, REGFLAG_DELAY, {120} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x11} }, {0xd1, 1, {0x11} }, {0x55, 1, {0xb0} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x10} }, {0xc0, 2, {0x63, 0x00} }, // SCNL = (0x63 + 1) * 8 = 800 {0xc1, 2, {0x09, 0x02} }, // VFB=0x09 VBF=0x02 {0xc2, 2, {0x37, 0x08} }, // PCLK= 512 + (0x08 * 16) = 640 {0xc7, 1, {0x00} }, // x-dir rotate 0 : 0x00 rotate 180 :0x04 {0xcc, 1, {0x38} }, {0xb0, 16, {0x00, 0x11, 0x19, 0x0c, 0x10, 0x06, 0x07, 0x0a, 0x09, 0x22, 0x04, 0x10, 0x0e, 0x28, 0x30, 0x1c} }, {0xb1, 16, {0x00, 0x12, 0x19, 0x0d, 0x10, 0x04, 0x06, 0x07, 0x08, 0x23, 0x04, 0x12, 0x11, 0x28, 0x30, 0x1c} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x11} }, // enable bk fun of command 2 BK1 {0xb0, 1, {0x4d} }, {0xb1, 1, {0x5b} }, // 0x56 0x4a 0x5b {0xb2, 1, {0x07} }, {0xb3, 1, {0x80} }, {0xb5, 1, {0x47} }, {0xb7, 1, {0x8a} }, {0xb8, 1, {0x21} }, {0xc1, 1, {0x78} }, {0xc2, 1, {0x78} }, {0xd0, 1, {0x88} }, {REGFLAG_DELAY, REGFLAG_DELAY, {100} }, {0xe0, 3, {0x00, 0x00, 0x02} }, {0xe1, 11, {0x01, 0xa0, 0x03, 0xa0, 0x02, 0xa0, 0x04, 0xa0, 0x00, 0x44, 0x44} }, {0xe2, 12, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }, {0xe3, 4, {0x00, 0x00, 0x33, 0x33} }, {0xe4, 2, {0x44, 0x44} }, {0xe5, 16, {0x01, 0x26, 0xa0, 0xa0, 0x03, 0x28, 0xa0, 0xa0, 0x05, 0x2a, 0xa0, 0xa0, 0x07, 0x2c, 0xa0, 0xa0} }, {0xe6, 4, {0x00, 0x00, 0x33, 0x33} }, {0xe7, 2, {0x44, 0x44} }, {0xe8, 16, {0x02, 0x26, 0xa0, 0xa0, 0x04, 0x28, 0xa0, 0xa0, 0x06, 0x2a, 0xa0, 0xa0, 0x08, 0x2c, 0xa0, 0xa0} }, {0xeb, 7, {0x00, 0x01, 0xe4, 0xe4, 0x44, 0x00, 0x40} }, {0xed, 16, {0xff, 0xf7, 0x65, 0x4f, 0x0b, 0xa1, 0xcf, 0xff, 0xff, 0xfc, 0x1a, 0xb0, 0xf4, 0x56, 0x7f, 0xff} }, {0xff, 5, {0x77, 0x01, 0x00, 0x00, 0x00} }, {0x36, 1, {0x00} }, // U&D Y-DIR rotate 0: 0x00 : rotate 180 :0x10 {0x3a, 1, {0x55} }, {0x29, 1, {0x00} }, {REGFLAG_END_OF_TABLE, REGFLAG_END_OF_TABLE, {} } }; static void lcd_panel_init(u32 sel) { u32 i = 0; sunxi_lcd_dsi_clk_enable(sel); sunxi_lcd_delay_ms(100); for (i = 0;; i++) { if (lcm_initialization_setting[i].count == REGFLAG_END_OF_TABLE) break; else if (lcm_initialization_setting[i].count == REGFLAG_DELAY) { sunxi_lcd_delay_ms(lcm_initialization_setting[i].para_list[0]); } else { dsi_gen_wr(sel, lcm_initialization_setting[i].cmd, lcm_initialization_setting[i].para_list, lcm_initialization_setting[i].count); } /* break; */ } } static void lcd_panel_exit(u32 sel) { sunxi_lcd_dsi_dcs_write_0para(sel, 0x10); sunxi_lcd_delay_ms(80); sunxi_lcd_dsi_dcs_write_0para(sel, 0x28); sunxi_lcd_delay_ms(50); } /*sel: 0:lcd0; 1:lcd1*/ static s32 lcd_user_defined_func(u32 sel, u32 para1, u32 para2, u32 para3) { return 0; } __lcd_panel_t d310t9362v1_panel = { /* panel driver name, must mach the name of * lcd_drv_name in sys_config.fex */ .name = "d310t9362v1", .func = { .cfg_panel_info = lcd_cfg_panel_info, .cfg_open_flow = lcd_open_flow, .cfg_close_flow = lcd_close_flow, .lcd_user_defined_func = lcd_user_defined_func, }, };
设备树文件
&lcd0 { lcd_used = <1>; lcd_driver_name = "d310t9362v1"; lcd_if = <4>; lcd_x = <480>; lcd_y = <800>; lcd_width = <40>; lcd_height = <67>; lcd_dclk_freq = <34>; lcd_hbp = <120>; lcd_ht = <624>; lcd_hspw = <48>; lcd_vbp = <28>; lcd_vt = <908>; lcd_vspw = <12>; lcd_dsi_if = <0>; lcd_dsi_lane = <2>; lcd_lvds_if = <0>; lcd_lvds_colordepth = <0>; lcd_lvds_mode = <0>; lcd_frm = <0>; lcd_hv_clk_phase = <0>; lcd_hv_sync_polarity= <0>; lcd_io_phase = <0x0000>; lcd_gamma_en = <0>; lcd_bright_curve_en = <0>; lcd_cmap_en = <0>; lcd_fsync_en = <0>; lcd_fsync_act_time = <1000>; lcd_fsync_dis_time = <1000>; lcd_fsync_pol = <0>; deu_mode = <0>; lcdgamma4iep = <22>; smart_color = <90>; lcd_gpio_0 = <&pio PD 9 GPIO_ACTIVE_HIGH>; lcd_bl_en = <&pio PE 12 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&dsi2lane_pins_a>; pinctrl-1 = <&dsi2lane_pins_b>; }
-
【已解决】D1s 调试 MIPI LCD 不亮
Uboot阶段背光不亮,进Linux后背光亮了但是没有显示。感觉Uboot的开屏也有问题,为什么开了这么多次
U-Boot 2018.05-00005-g7819edc-dirty (May 24 2022 - 13:34:56 +0800) Allwinner Technology [00.197]DRAM: 64 MiB [00.199]Relocation Offset is: 01ef2000 [00.203]secure enable bit: 0 [00.206]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz MBus=300Mhz [00.213]flash init start [00.215]workmode = 0,storage type = 1 [00.218][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00 [00.224][mmc]: get sdc_type fail and use default host:tm1. [00.230][mmc]: can't find node "mmc0",will add new node [00.235][mmc]: fdt err returned <no error> [00.239][mmc]: Using default timing para [00.242][mmc]: SUNXI SDMMC Controller Version:0x50310 [00.260][mmc]: card_caps:0x3000000a [00.263][mmc]: host_caps:0x3000003f [00.266]sunxi flash init ok [00.268]line:703 init_clocks [00.272]drv_disp_init [00.284]drv_disp_init finish [00.286]boot_gui_init:start [00.289]set disp.dev2_output_type fail. using defval=0 [00.294]=====================lcd_open_flow [00.298]=====================lcd_open_flow [00.302]=====================lcd_power_on [00.492]boot_gui_init:finish [00.502]=====================lcd_open_flow partno erro : can't find partition bootloader 54 bytes read in 4 ms (12.7 KiB/s) [00.982]bmp_name=bootlogo.bmp size 38454 38454 bytes read in 8 ms (4.6 MiB/s) [01.029]Loading Environment from SUNXI_FLASH... OK [01.051]out of usb burn from boot: not need burn key [01.066]=====================lcd_open_flow [01.081]Item0 (Map) magic is bad [01.083]the secure storage item0 copy0 magic is bad [01.109]Item0 (Map) magic is bad [01.112]the secure storage item0 copy1 magic is bad [01.117]Item0 (Map) magic is bad partno erro : can't find partition private root_partition is rootfs set root to /dev/mmcblk0p5 [01.134]update part info [01.139]update bootcmd [01.145]change working_fdt 0x42ab1da0 to 0x42a91da0 disable nand error: FDT_ERR_BADPATH No reserved memory region found in source FDT [01.176]update dts noncached_alloc(): addr = 0x42c95200 noncached_alloc(): addr = 0x42c95240 noncached_alloc(): addr = 0x42c95280 noncached_alloc(): addr = 0x42c[01.190]=====================lcd_open_flow [01.194]=====================lcd_bl_open [01.197]=====================lcd_open_flow [01.201]=====================lcd_open_flow [01.205]LCD open finish 95ac0 geth_sys_init:634: get node 'gmac0' error geth_sys_init fail! [01.213]Board Net Initialization Failed [01.217]No ethernet found. Hit any key to stop autoboot: 1 ... 0 [02.576]no vendor_boot partition is found Android's image name: d1s-rv_router Detect comp none [02.593] Starting kernel ... [ 0.209348][DISP]disp_module_init [ 0.210052]disp 5000000.disp: Adding to iommu group 0 [ 0.210823][DISP] disp_init,line:2386: [ 0.210830]smooth display screen:0 type:1 mode:4 [ 0.252283]display_fb_request,fb_id:0 [ 0.268371]Freeing logo buffer memory: 1500K [ 0.268990]disp_al_manager_apply ouput_type:1 [ 0.269256][DISP] lcd_clk_config,line:732: [ 0.269270]disp 0, clk: pll(408000000),clk(408000000),dclk(34000000) dsi_rate(34000000) [ 0.269270] clk real:pll(408000000),clk(408000000),dclk(102000000) dsi_rate(150000000) [ 0.269296][DISP] disp_sys_pwm_config,line:509: [ 0.269299]disp_sys_pwm_Config, handle is NULL! [ 0.269302][DISP] disp_sys_pwm_set_polarity,line:528: [ 0.269305]disp_sys_pwm_Set_Polarity, handle is NULL! [ 0.269554]=====================lcd_open_flow [ 0.269560]=====================lcd_power_on [ 0.270266]sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pd not found, using dummy regulator [ 1.875671]=====================lcd_bl_open [ 1.875682][DISP] disp_lcd_pwm_enable,line:1231: [ 1.875685]pwm device hdl is NULL [ 1.979054]Console: switching to colour frame buffer device 60x50 [ 2.053706][DISP]disp_module_init finish
-
回复: 咨询一个tina-linux 的uboot编译问题
@smiletiger 使用make全局编译然后再打包试试,我记得单独编译某个模块打包用不了,他没有复制文件过去
-
回复: 用T113S3驱动mipi屏幕,高速video模式下面没有时钟和数据输出
@smiletiger 不太清楚了,我之前试过D1s点mipi没啥问题,有没有可能是因为屏幕参数dts设置问题,之前确实遇到过配置有问题导致系统挂了的情况
-
回复: 用T113S3驱动mipi屏幕,高速video模式下面没有时钟和数据输出
@smiletiger 可能需要问一下fae,我用tina这里测试d1的video模式是没有问题的
-
回复: 关于Tina LINUX的config文件
不存在不应用进kernel的情况,板级目录下的config是自己复制进去的。m kernel_menuconfig的时候修改的也是板级目录下的config
-
回复: d1s system init 修改成procd-init tplayerdemo出问题
@mhcsoft 如果要使用这个INIT,要进行一下其他配置。我一般就busybox了