概述
连接方式是fpga 输出5组2 data lane+1lane clk的lvds信号给3559,3559设置为2lane*8 的模式进行数据接收。
使用Hi3559A V100R001C02SPC020 版本的sdk包进行开发时,发现数据接收不到,显示接收不到同步头,打印信息如下:
cat /proc/umap/hi_mipi
Module: [MIPI], Build Time: [Dec 21 2018, 17:12:09]
-----MIPI LANE DIVIDE MODE---------------------------------------------------------------------------------------------
MODE LANE DIVIDE
11 2+2+2+2+2+2+2+2
-----MIPI DEV ATTR-----------------------------------------------------------------------------------------------------
Devno WorkMode DataRate DataType WDRMode LinkId ImgX ImgY ImgW ImgH
0 LVDS X1 RAW12 None 0 0 0 3840 2160
-----MIPI LANE INFO-----------------------------------------------------------------------------------------------------
Devno LaneCnt LaneID
0 2 0, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-----MIPI LINK INFO------------------------------------------------------
LinkIdx LaneCount LaneId PhyData0 PhyData1 AlignedData0 AlignedData1 ValidLane
0 2 0, 2 0x0 0x0 0x0 0x0 Invalid
-----LVDS DETECT INFO----------------------------------------------------
Devno VC width height
0 0 0 0
0 1 0 0
0 2 0 0
0 3 0 0
-----LVDS LANE DETECT INFO----------------------------------------------------
Devno Lane width height
0 0 1 0
0 2 1 0
之后查找原因使用4lane*4模式,也是只用2lane进行数据传输可以接收到数据。开始怀疑是mipi rx驱动部分有些问题,于是使用Hi3559A V100R001C02SPC010这个版本的mipi rx部分的驱动替换掉原来的驱动打印信息如下:
cat /proc/umap/hi_mipi
Module: [MIPI], Build Time: [Jul 12 2018, 21:38:02]
-----MIPI LANE DIVIDE MODE---------------------------------------------------------------------------------------------
MODE LANE DIVIDE
11 2+2+2+2+2+2+2+2
-----MIPI DEV ATTR-----------------------------------------------------------------------------------------------------
Devno WorkMode DataRate DataType WDRMode LinkId ImgX ImgY ImgW ImgH
0 LVDS X1 RAW12 None 0 0 0 3840 2160
-----MIPI LANE INFO-----------------------------------------------------------------------------------------------------
Devno LaneCnt LaneID
0 2 0, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-----MIPI LINK INFO------------------------------------------------------
LinkIdx LaneCount LaneId PhyData0 PhyData1 AlignedData0 AlignedData1 ValidLane
0 2 0, 2 0x29 0x29 0x94 0x94 0, 2
-----LVDS DETECT INFO----------------------------------------------------
Devno VC width height
0 0 3840 2160
0 1 0 0
0 2 0 0
0 3 0 0
-----LVDS LANE DETECT INFO----------------------------------------------------
Devno Lane width height
0 0 1920 2161
0 2 1920 2161
可以发现数据接收已经没有问题了。于是对比了一下海思这个两个版本的mipi rx驱动发现有个地方进行了更改:Hi3559AV100_SDK_V2.0.2.0packagedrvinterdrvmipimipi_hal.c
int get_index_for_lane(short lane)
{
if((8 == lane)||(9 == lane)||(12 == lane)||(13 == lane))
{
return 0;
}
if((10 == lane)||(11 == lane)||(14 == lane)||(15 == lane))
{
return 1;
}
return -1;
}
int mipi_drv_get_lane_index_for_dev(lane_divide_mode_t lane_divide_mode, combo_dev_t devno, short lane)
{
#if 0
if(0 == (devno % 2))
{
return ( lane - (2 * devno));
}
else
{
if (lane == ((2 * devno) - 1))
{
return 0;
}
else
{
return 1;
}
}
#endif
int lane_index = -1;
switch(lane_divide_mode)
{
case LANE_DIVIDE_MODE_0:
if (0 == devno)
{
if (0 <= lane && 15 >= lane)
{
lane_index = lane%4;
}
}
break;
更改的版本说明文档《Hi3559A╱C V100R001C02SPC020 版本描述文件.doc》里面有说明这部分更改的原因
但更改后会导致设置的模式里面只要是2lane data接收数据的那个通道会出问题。
最后
以上就是不安服饰为你收集整理的海思3559 2lane*8 模式的全部内容,希望文章能够帮你解决海思3559 2lane*8 模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复