qn1563361544

qn1563361544

0个粉丝

20

问答

0

专栏

0

资料

qn1563361544  发布于  2020-07-27 12:56:04
采纳率 0%
20个问答
5948

海思软件配置的LVDS同步码和直接查看寄存器中的同步码不一样

 
FPGA通过LVDS接口发送数据过来,海思侧需要设置同步码,按照手册设置同步码,如下:
[code]combo_dev_attr_t LVDS_4lane_CHN0_12BIT_NOWDR_ATTR =
{
    .devno                  = 0,                 
    .input_mode             = INPUT_MODE_LVDS,
    .data_rate              = MIPI_DATA_RATE_X2,   // 1 pixel per clock/2 pixel per clock
    .img_rect               = {0, 0, 608, 600},   
    {
        .lvds_attr          =
        {
            .input_data_type        = DATA_TYPE_RAW_8BIT,
            .wdr_mode               = HI_WDR_MODE_NONE,
            .sync_mode              = LVDS_SYNC_MODE_SOF,
            .vsync_attr             = {LVDS_VSYNC_NORMAL, 0, 0},
            .fid_attr               = {LVDS_FID_NONE, HI_TRUE},
            .data_endian            = LVDS_ENDIAN_LITTLE,
            .sync_code_endian       = LVDS_ENDIAN_LITTLE,
            .lane_id                = {0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
            .sync_code              =
            {
                 /* each vc has 4 params, sync_code:
                     sync_mode is SYNC_MODE_SOF: SOF, EOF, SOL, EOL
                     sync_mode is SYNC_MODE_SAV: invalid sav, invalid eav, valid sav, valid eav  */
                {   
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D}
                },

               {   
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D}
                },

                {   
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D}
                },
                {   
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D},
                    {0xAB, 0xB6, 0x80, 0x9D}
                }
            }
        }
    }
};[/code]
在海思的文档《Hi3559A╱C V100 ultra-HD Mobile Camera SoC 用户指南》查看MIPI Rx的寄存器中有下面的描述


我用himd.l 工具去查看相应地址的时候打印信息如下:
查看 LVDS 同步码寄存器设置:
~ # himd.l 0x11A40030 1
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:168}cmdstr:himd.l
====dump memory 0x11A40030====
0000:  00ab00ab 000ab0ab 00ab00ab 00ab00ab
[END]

发现Lane 0、1、2、3的同步码都有错误,我试着改变软件层次的配置,例如改为:
[code]  .sync_code              =
            {
                 /* each vc has 4 params, sync_code:
                   sync_mode is SYNC_MODE_SOF: SOF, EOF, SOL, EOL
                   sync_mode is SYNC_MODE_SAV: invalid sav, invalid eav, valid sav, valid eav  */
                {
                    {0x02, 0x03, 0x00, 0x01}, //PHY0_lane0
                    {0x22, 0x23, 0x20, 0x21},
                    {0x12, 0x13, 0x10, 0x11},
                    {0x32, 0x33, 0x30, 0x31}
                },

                {
                    {0x02, 0x03, 0x00, 0x01}, //PHY0_lane1
                    {0x22, 0x23, 0x20, 0x21},
                    {0x12, 0x13, 0x10, 0x11},
                    {0x32, 0x33, 0x30, 0x31}
                },

                {
                    {0x02, 0x03, 0x00, 0x01}, //PHY0_lane2
                    {0x22, 0x23, 0x20, 0x21},
                    {0x12, 0x13, 0x10, 0x11},
                    {0x32, 0x33, 0x30, 0x31}
                },

                {
                    {0x02, 0x03, 0x00, 0x01}, //PHY0_lane3
                    {0x22, 0x23, 0x20, 0x21},
                    {0x12, 0x13, 0x10, 0x11},
                    {0x32, 0x33, 0x30, 0x31}
                }

            }[/code]
然后查看lane0、1、2、3的寄存器内容如下:
~ # himd.l 0x11A40030 1
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:168}cmdstr:himd.l
====dump memory 0x11A40030====
0000:  00020002 00020002 00020002 00020002
[END]

发现软件配置的同步码并没有设置到对应的寄存器中,似乎只将对应的第一个字节设置进去,不是很清楚为什么会这样?有人遇到过类似的问题吗》请教一下,十分感谢!
我来回答
回答3个
时间排序
认可量排序

qn1563361544

0个粉丝

20

问答

0

专栏

0

资料

qn1563361544 2020-07-28 11:15:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=161171&ptid=80990]qn1563361544 发表于 2020-7-28 10:57[/url]
软件配置的同步码和在寄存器中查看的是一致的,这个问题已解决,但是检测到帧同步信号之后的数据还是没有, ...[/quote]

海思文档上面介绍LVDS同步码和数据传输有以下两种模式:
附件:
附件:
这两种传输模式是海思硬件可以实现区分,来选择是哪一种模式,还是需要在海思侧软件来进行配置,但我在手册上没有找到相关的介绍,有人能帮忙解答一下吗?
谢谢!

qn1563361544

0个粉丝

20

问答

0

专栏

0

资料

qn1563361544 2020-07-28 10:57:22
认可0
软件配置的同步码和在寄存器中查看的是一致的,这个问题已解决,但是检测到帧同步信号之后的数据还是没有,查看/proc/umap/vi 发现是有中断过来的,但是  IntCnt 和 LostFrame几乎是一样的,请问有人知道这是为什么吗?

加速度

0个粉丝

1

问答

0

专栏

0

资料

加速度 2021-10-13 16:59:42
认可0

请问 检测到帧同步信号之后的数据还是没有这个问题解决了吗

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区