0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试-米尔MYD-JX8MMA7

米尔电子 2023-03-02 09:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇测评由电子发烧友的优秀测评者“zealsoft”提供。

537bdf10-b899-11ed-ad0d-dac502259ad0.gif 本次测试内容为米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。

01.

测试例程pcie2screen
例程pcie2screen是配合MYD-JX8MMA7开发板所带的MYIR_PCIE_5T_CMOS 工程的测试例,它的作用是显示FPGA所连接的摄像头所采集的视频。运行该程序后屏幕会显示一个标题为demo的窗口。
538a3de4-b899-11ed-ad0d-dac502259ad0.png
使用鼠标点击 ready按钮,demo 窗口会显示连续的视频,说明摄像头、DDR、PCIE接口各部分正常。如果没有接摄像头,该程序会显示杂乱无章的图像。

该测试例的源码没有包括在SDK中,可以向米尔公司的技术人员索取。该实例程序是用Qt开发的,使用了OpenGL技术。程序包括以下几个主要的类:

  • MainWindow:QMainWindow子类,是显示窗口的。
  • uOpenglYuv:QOpenGLWidget子类,用于显示采集到的图像。该类的initializeGL函数用于初始化OpenGL。paintGL函数是用于绘制图像的,其中最核心的语句是:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, vW, vH, 0, GL_RGBA, GL_UNSIGNED_BYTE, pRGB);

其中的pRGB保存从FPGA读取的数据。从这句我们可以看出该程序所要求的图像的格式。

  • xdma_getImg:主线程类
  • xdma_programe:对RIFFA接口进行了封装,其中的read_pack用于读取FPGA数据,被主线程循环调用。其函数定义如下:

int xdma_programe::read_pack(char *pData, int len)
{
//int buffer[1920 * 1080];
//int buffer[1024 * 768];
int buffer[1280 * 720];
int i;

if(dev_fd != NULL)
{
fpga_send(dev_fd, 0, buffer, len / 4, 0, 1, 25000);
fpga_recv(dev_fd, 0, buffer, len / 4, 25000);
memcpy(pData, (char *)buffer, len);

return len;
}
else
{
return 0;
}
}

从函数中可以看出,在每次读数据前,该函数先向FPGA写一次数据(数据无意义,和FPGA的状态机有关),每次读入一整帧的数据。

02.

FPGA端程序的修改
FPGA端的逻辑控制在chnl_tester.v中,它定义了一个状态机,用于对数据收发进行控制。状态机定义如下:

always @(posedge CLK or posedge RST) begin
if (RST) begin
rLen <= #1 0;
rCount <= #1 0;
rState <= #1 0;
rData <= #1 0;
vout_vs_r <= #1 0;
end
else begin
case (rState)


3'd0: begin // Wait for start of RX, save length
if (CHNL_RX) begin
rLen <= #1 CHNL_RX_LEN;
rCount <= #1 0;
rState <= #1 3'd1;
end
end


3'd1: begin // Wait for last data in RX, save value
if (CHNL_RX_DATA_VALID) begin
rData <= #1 CHNL_RX_DATA;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
end
if (rCount >= rLen)begin
rState <= #1 3'd2;
end
end

3'd2: begin // Prepare for TX
if (read_valid) begin
rCount <= #1 0;
rState <= #1 3'd3;
end
end

3'd3: begin // Start TX with save length and data value
if (CHNL_TX_DATA_REN) begin
//rData <= #1 data_in;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
if (rCount >= rLen)
rState <= #1 3'd4; 
end
end
3'd4: begin
if (vout_vs_r)
rState <= #1 3'd5;
else begin
vout_vs_r <= #1 1;
rState <= #1 3'd4;
rCount <= #1 0;
end
end
3'd5: begin
if (vs_flag) begin
rState <= #1 3'd0;
vout_vs_r <= #1 0;
end
else
rState <= #1 3'd5;
end
endcase
end
end

我们手头没有摄像头进行测试,所以简单修改该程序,使程序发送蓝色渐变色带信号
核心修改如下:

……
reg [31:0] rColor = 0;
……
assign CHNL_TX_DATA = (read_en)? {rColor, rColor}:64'd0;
……
3'd3: begin // Start TX with save length and data value
if (CHNL_TX_DATA_REN) begin
//rData <= #1 data_in;
// if (rCount % 5 == 4)
rColor <= #1 rColor + 1;
if(rColor >= 255)
rColor <= #1 0;
rCount <= #1 rCount + (C_PCI_DATA_WIDTH/32);
if (rCount >= rLen)
rState <= #1 3'd4; 
end
end
……



03.

测试结果
我们没有修改ARM端的测试程序,仍然使用厂家提供的pcie2screen,只是重新烧写FPGA程序。程序的运行效果参见视频。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22571

    浏览量

    640733
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9611

    浏览量

    394333
  • 开发板
    +关注

    关注

    26

    文章

    6507

    浏览量

    121359
  • 米尔
    +关注

    关注

    0

    文章

    56

    浏览量

    8451
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    米尔TI AM62L开发板试用】创建开发环境

    【前言】 非常感谢米尔科技、电子发烧友论坛给了我这次米尔TI AM62L开发板试用的机会,本篇将分享如何创建开发环境,并实现编译一个helloworld。 【资料获取】 1、登录
    发表于 05-14 14:48

    新品!从MINI到工业米尔T153开发板工业场景全覆盖

    今年1月,米尔发布了MYD-YT153MX-MINI开发板,该产品精准切入国产核心在中端市场领域,具有极致性价比,自上市即获得良好的市场反响。为方便
    的头像 发表于 03-27 08:03 2235次阅读
    新品!从MINI到工业<b class='flag-5'>板</b>:<b class='flag-5'>米尔</b>T153<b class='flag-5'>开发板</b>工业场景全覆盖

    有奖丨米尔全志 T153 MINI开发板免费试用来啦

    米尔与全志合作发布的新品基于全志T153应用处理器的MYD-YT153MX-MINI开发板免费试用名额来啦~~米尔提供了3套价值399元的MYD
    的头像 发表于 01-29 08:04 720次阅读
    有奖丨<b class='flag-5'>米尔</b>全志 T153 MINI<b class='flag-5'>开发板</b>免费试用来啦

    如何移植EtherCAT Igh--基于米尔RK3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发板米尔基于瑞芯微RK3576开发板)的端移植E
    的头像 发表于 09-26 08:04 1w次阅读
    如何移植EtherCAT Igh--基于<b class='flag-5'>米尔</b>RK3576<b class='flag-5'>开发板</b>

    追加!30套FPGA开发板免费送!米尔-安路飞龙派创意秀活动再开启

    DR1M90开发板的创意秀,再次免费赠送30套FPGA开发板,旨在鼓励工程师突破思维边界,通过实践探索安路飞龙派产品的无限可能,为创新应用提供强力支持。报名条件:用户需关注米尔电子公众
    发表于 09-22 10:26

    Pico2-ICE FPGA开发板的应用示例

    FPGA 和 MCU 结合的开发板不多,而 Pico2‑ICE 则把小巧、灵活和易上手完美结合。搭载 RP2350 双核 RISC-V MCU + Lattice iCE40UP5K FPGA
    的头像 发表于 09-06 10:02 1397次阅读
    Pico<b class='flag-5'>2</b>-ICE <b class='flag-5'>FPGA</b><b class='flag-5'>开发板</b>的应用<b class='flag-5'>示例</b>

    米尔-安路MYD-YM90X 创意秀】点灯也是入门绝活

    ,而FPGA是并行执行的,也没有Delay函数可用,那怎么办呢,我想到了时钟。 然而,翻看米尔的【MYD-YM90X_硬件用户手册-V1.0.pdf】发现,本开发板只有1个PS端时钟,
    发表于 08-10 22:10

    米尔RK3506国产开发板测试用】1、硬件介绍、SDK开发环境和QT开发环境搭建

    ,根据开发板的IP地址设置主机,同时使用页面的上公私钥配置工具生成公私钥信息并部署公钥到开发板。 Sysroot:设置为Buildroot输出目录中的/myd_yr3506_emmc_br/host
    发表于 08-02 15:02

    如何部署流媒体服务实现监控功能--基于米尔TI AM62x开发板

    本文将介绍基于米尔电子MYD-YM62X开发板米尔基于TIAM62开发板)的部署流媒体服务实现监控功能方案的
    的头像 发表于 07-03 08:03 4030次阅读
    如何部署流媒体服务实现监控功能--基于<b class='flag-5'>米尔</b>TI AM62x<b class='flag-5'>开发板</b>

    有奖丨米尔 瑞芯微RK3506开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD
    的头像 发表于 06-19 08:04 1364次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3506<b class='flag-5'>开发板</b>免费试用

    基于米尔全志T536开发板的多协议物联网关的方案测试

    本文将介绍基于米尔电子MYD-LT536开发板米尔基于全志T536开发板)的多协议物联网关方案的开发
    的头像 发表于 06-19 08:03 2424次阅读
    基于<b class='flag-5'>米尔</b>全志T536<b class='flag-5'>开发板</b>的多协议物联网关的方案<b class='flag-5'>测试</b>

    有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 2162次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3562<b class='flag-5'>开发板</b>免费试用新增名额!

    ARM,NPU,FPGA三种核心的开发板米尔安路飞龙派开发板

    最近我发现一个有趣的开发板。这个开发板集合了ARM核心,NPU核心甚至还有FPGA核心。它就是米尔新出的YM90X
    的头像 发表于 06-13 08:03 2112次阅读
    有<b class='flag-5'>ARM</b>,NPU,<b class='flag-5'>FPGA</b>三种核心的<b class='flag-5'>开发板</b> — <b class='flag-5'>米尔</b>安路飞龙派<b class='flag-5'>开发板</b>

    有奖丨米尔 NXP i.MX91开发板免费试用来啦

    米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-
    的头像 发表于 06-05 08:02 1613次阅读
    有奖丨<b class='flag-5'>米尔</b> NXP i.MX91<b class='flag-5'>开发板</b>免费试用来啦

    基于米尔全志T536开发板的视频识别应用方案

    本文将介绍基于米尔电子MYD-LT536开发板米尔基于全志T536开发板)的视频识别应用方案测试
    的头像 发表于 06-05 08:01 2618次阅读
    基于<b class='flag-5'>米尔</b>全志T536<b class='flag-5'>开发板</b>的视频识别应用方案