海思Hi3536 BT.1120转HDMI 显示开机画面

danny032 2020-05-08 04:29:07
我的是V100R001C02SPC060版本的SDK,参照https://blog.csdn.net/weixin_36704535/article/details/78581291 这篇文章把LOGO文件烧写到spi nor Flash 。

把这条语句改:
run_command("startvo 0 32 12",1); ==》run_command("startvo 0 52 12",1); HDMI VGA BT.1120同时输出输出开画面。

设置后开机BT.1120没有画面,原因两个:1.端口复用没有配置为BT.1120输出,2.sii9022没有驱动

参照SDK中(Hi3536_SDK_V2.0.6.0\package\mpp_single\mpp_single\ko ) pinmux,sh 里面的端口复用

#I2S&BT1120(16BIT的BT1120视频+I2S2的音频)
himm 0x120F0190 0x3; # 00:GPIO12_0 01:VOU1120_DATA0 10:I2S0_SD_RX 11:I2S2_MCLK
himm 0x120F0194 0x3; # 00:GPIO12_1 01:VOU1120_DATA1 10:I2S0_SD_TX 11:I2S2_BCLK_TX
himm 0x120F0198 0x1; # 00:TEST_CLK_OUT 01:VOU1120_DATA2 10:SFC_NAND_BOOT_PIN0(硬件复用) 11:GPIO12_2
himm 0x120F019c 0x1; # 00:GPIO12_3 01:VOU1120_DATA3 10:SFC_NAND_BOOT_PIN2(硬件复用)
himm 0x120F01a0 0x1; # 00:GPIO12_4 01:VOU1120_DATA4 10:I2S0_WS_TX
himm 0x120F01a4 0x1; # 00:GPIO12_5 01:VOU1120_DATA5 10:I2S0_WS_RX
himm 0x120F01a8 0x1; # 00:GPIO12_6 01:VOU1120_DATA6 10:I2S0_BCLK_RX
himm 0x120F01ac 0x1; # 00:GPIO12_7 01:VOU1120_DATA7 10:I2S0_BCLK_TX
himm 0x120F01b0 0x1; # 00:GPIO13_0 01:VOU1120_DATA8 10:I2S0_MCLK 11:SFC_NAND_BOOT_PIN1
himm 0x120F01b4 0x1; # 00:PWM_SVB1 01:VOU1120_DATA9 10:GPIO13_1
himm 0x120F01b8 0x3; # 00:GPIO13_2 01:VOU1120_DATA10 11:I2S2_WS_TX
himm 0x120F01bc 0x3; # 00:GPIO13_3 01:VOU1120_DATA11 10:PCIE_REFCLK_SEL(硬件复用) 11:I2S2_SD_TX
himm 0x120F01c0 0x1; # 00:GPIO13_4 01:VOU1120_DATA12 10:SDIO0_CWPR 11:UART0_TXD
himm 0x120F01c4 0x1; # 00:GPIO13_5 01:VOU1120_DATA13 10:SDIO0_CDATA0 11:UART0_RXD
himm 0x120F01c8 0x1; # 00:GPIO13_6 01:VOU1120_DATA14 10:SDIO0_CCLK_OUT
himm 0x120F01cc 0x1; # 00:GPIO13_7 01:VOU1120_DATA15 10:SDIO0_CCMD
himm 0x120F01d0 0x1; # 000:GPIO11_0 001:VOU1120_DATA16 010:SDIO0_CDATA3 011:
himm 0x120F01d4 0x1; # 000:GPIO11_1 001:VOU1120_DATA17 010:SDIO0_CDATA2 011:
himm 0x120F01d8 0x1; # 000:GPIO11_2 001:VOU1120_DATA18 010:SDIO0_CARD_DETECT 011:
himm 0x120F01dc 0x1; # 000:GPIO11_3 001:VOU1120_DATA19 010:SDIO0_CARD_POWER_EN 011:
himm 0x120F01e0 0x1; # 00:GPIO14_6 01:VOU1120_CLK 10:SDIO0_CDATA1

改成
run_command("mw.b 0x120f0190 0x03 ",1);
.....
.....
.........
........
run_command("mw.b 0x120f01e0 0x01 ",1);

写入(arch/arm/lib/board.c 文件)的void LogintImage(void)函数尾部 重新编译uboot 第一完成。

我试过把代码直接写入vou.c文件里面,不能正常输出,具体不知道为什么。

第二步:sii9024驱动问题,我试过各种方法使用Hi3536的I2C来初始化SII9024但是都没成功,最后还是乖乖的外挂了一个8位的MCU再开始的时候单独写初始化的参数。下面一组初始化代码我试验过可用。
Delayms(300);
//HW Reset
ISendStr(WriteDeviceAddress,0x82,0x25);
ISendStr(WriteDeviceAddress,0x08,0x36);
ISendStr(WriteDeviceAddress,0x7c,0x14);
ISendStr(WriteDeviceAddress,0xc7,0x00);
Delayms(100);
//9022 PLL Set:
ISendStr(WriteDeviceAddress,0xBC,0x01);
ISendStr(WriteDeviceAddress,0xBD,0x82);
ISendStr(WriteDeviceAddress,0xBE,0x35);
//9022A PLL Set
ISendStr(WriteDeviceAddress,0x08,0x70);

ISendStr(WriteDeviceAddress,0x00,0x8C);
ISendStr(WriteDeviceAddress,0x01,0x0A);
ISendStr(WriteDeviceAddress,0x02,0x70);
ISendStr(WriteDeviceAddress,0x03,0x17);
ISendStr(WriteDeviceAddress,0x04,0x5A);
ISendStr(WriteDeviceAddress,0x05,0x03);
ISendStr(WriteDeviceAddress,0x06,0x0D);
ISendStr(WriteDeviceAddress,0x07,0x02);
ISendStr(WriteDeviceAddress,0x63,0x00);

//Color Space
ISendStr(WriteDeviceAddress,0x08,0x70);
ISendStr(WriteDeviceAddress,0x09,0x00);
ISendStr(WriteDeviceAddress,0x0A,0x00);
ISendStr(WriteDeviceAddress,0x60,0x04);

ISendStr(WriteDeviceAddress,0xBC,0x01);
ISendStr(WriteDeviceAddress,0xBD,0x82);
ISendStr(WriteDeviceAddress,0xBE,0x35);
//Power Up
ISendStr(WriteDeviceAddress,0x1E,0x00);

我是海思芯片的初学者,有不对的地方请指正!



...全文
651 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧