am5728_am5728-idk - CSDN
  • 硬件:AM5728开发板;Artix-7开发板 软件:Linux am57xx-evm 4.4.19;Vivado 2015.2 作者:杭州矢志信息科技有限公司 邮箱:admin@sysjoint.com AM5728外设接口丰富,有V-PORT接口、PCIe、GPMC、USB、UART等等,...

    硬件:AM5728开发板;Artix-7开发板
    软件:Linux am57xx-evm 4.4.19;Vivado 2015.2
    作者:杭州矢志信息科技有限公司
    邮箱:admin@sysjoint.com

    AM5728外设接口丰富,有V-PORT接口、PCIe、GPMC、USB、UART等等,通常与FPGA之间高速数据通信可以选择V-PORT、PCIe、GPMC,这里以实现起来最简单的GPMC为例,实现了从FPGA到AM5728的高速数据搬运。

    AM5728的ARM端运行Linux 4.4内核操作系统,通过GPMC接口采用DMA的方式读取FPGA端的数据,读取32KB数据大概用了540us,即60MB/s左右的速度,实际上通过配置GPMC接口的时间参数和工作模式,速度还可以更快。

    • GPMC接口介绍

    GPMC的全称是 General-Purpose Memory Controller,即通用存储控制器,是TI的Sitara 系列处理器AM5728用来与外部存储设备例如NOR FLASH、NAND FLASH、SRAM等等通信的一个接口。这个接口并不是AM5728特有的,在BeagleBone Black、AM33XX等芯片上也有类似接口。

    1.1 硬件连接方式

    参考SPRUHZ6I 15.4.6.1.2 在AM5728中把GPMC接口配置为异步模式并设置NOR FLASH、非地址数据线复用的模式与FPGA通信,但只用16位数据线,不用地址线,即采用类似于FIFO的方式与FPGA通信。目前实际只使用到了如下I/O口,信号方向如下图所示。

    GPMC_D[15:0]:  16位数据线

    GPMC_nCS:      片选信号

    GPMC_nOE:      输出使能时钟

    FPGA_nRST:     用于通知FPGA读写指针复位

    FPGA_nIRQ:     用于通知ARM读取一块数据

    1.2 硬件接口协议

    采用异步方式读取,即不使用GPMC_CLK,FPGA端在GPMC_nOE的下降沿把数据送出去。

    目前这种工作模式下的GPMC接口,我们只需要关心以下几个时间:

    即CS有效时间,OE有效时间,GPMC读取数据时间,GPMC单个读取周期。

    • Linux驱动实现

    Linux 4.4 版本内核采用设备树dts的方法编写驱动,与2.6版本时候有较大区别,4.4版本内核中关于GPMC接口的API几乎没有导出,通过API来操作不可行,必须使用编写设备树方法。

    AM5728的dts文件路径:linux-4.4.19-g5e4091a-v1.3\arch\arm\boot\dts

    内核实现的gpmc驱动在:linux-4.4.19-g5e4091a-v1.3\drivers\memory\omap-gpmc.c

    关于 dts 的编程方法可以参考:

    https://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/overview

    以及阅读Linux内核目录下的文档:

    Documentation\devicetree\bindings\mtd\gpmc-nor.txt

    配置方面主要包括与GPMC相关的7个配置寄存器CONFIG1-CONFIG7,GPMC端口初始化等等。

    (1)首先确保在 文件dra7.dtsi中引入了GPMC控制器,如下:

    (2)接着在 am57xx-beagle-x15-common.dtsi 加入 GPMC 管脚初始化配置

    (3)最后在实现一个自己的GPMC设备节点,其中关键的时序参数如下,在这里我们设置GPMC的片选CS6地址为0x10000000,大小为16MB,GPMC的单个读取周期为30ns。

    • 采用DMA传输

    AM5728带有System DMA和Enhanced DMA,Linux 4.4 之后内核中 EDMA 相关的API不对外导出,因此暂时只能采用通用的DMA API操作,实现DMA搬运。

    需要注意的是,DMA中配置的地址都为物理地址,即DMA传送到源端为外设的地址即GPMC的物理地址,目的地端为你申请的内存空间物理地址。

    • 实验验证

    (1)使用memread读取GPMC端口数据

    memread中使用mmap方法把GPMC的物理地址0x10000000映射到用户空间。在用户空间通过CPU读取GPMC端口数据,抓取CS6n和OEn的波形如下,目前没有用到DMA传送,只是在Linux循环读取,可以看见每个周期里片选信号CS6n都会维持很长一段高电平的时间,GPMC一次的读取周期大概为200ns。

    通道1为片选信号CS6n,通道2为输出使能信号OEn

    这样的速率大概只有 16bit / 200ns = 10MB/s

    (2)使用DMA传输

    编译并使用insmod工具加载DMA驱动edmatest.ko,抓取CS6n和OEn的波形如下,使用DMA传送,这下读周期就小了很多了,大概只有30ns,和GPMC参数里设置的完全一致。读取32KB数据大概用了540us,即60MB/s左右的速度。实际上通过配置GPMC接口的时间参数和工作模式,速度还可以更快。

    (3)FPGA端对应的代码,FPGA端的代码只要是实现在每个OEn信号下降沿来的时候,把16bit的数据送到GPMC_DATA端口,并自加一次。

    (4)Linux端读取数据并做校验

    校验通过,说明数据一致性正确!至此AM5728与FPGA通过GPMC接口用DMA实现数据高速传输,验证可行!

    • 源代码下载

    设备树文件:http://sysjoint.com/files/dts.zip

    Linux 下 memread 参考代码:http://sysjoint.com/files/memread.zip

    Linux 下 edmatest 参考代码:http://sysjoint.com/files/edmatest.zip

    FPGA端对应代码比较简单就不上传了。

    整个实验过程中涉及到的细节很多,如有错误之处请不吝指出!

    参考资料:

    https://e2e.ti.com/support/arm/sitara_arm/f/791/t/512464

    https://e2e.ti.com/support/arm/sitara_arm/f/791/p/315716/1530903#pi316653=1

    https://github.com/fpga-logi/logi-kernel/commit/42066f774425afb196dc0f8f1ad40f450da34115

    http://valentfx.com/wiki/index.php?title=LOGI_-_BBB_GPMC_Bus-_HW

    展开全文
  • AM5728调试经历

    2017-03-17 11:11:32
    由于本科生毕业设计的要求,研究生导师希望能够尽快的搭建出基于DSP的视觉处理平台,所以选择使用AM5728这样一款高性能的ARM+DSP,笔者是只菜鸟,博文中有些错误还请大家提出,一起探讨。

    AM5728调试经历(1)

    由于本科生毕业设计的要求,研究生导师希望能够尽快的搭建出基于DSP的视觉处理平台,所以选择使用AM5728这样一款高性能的ARM+DSP,笔者是只菜鸟,博文中有些错误还请大家提出,一起探讨。
    AM5728的基本资料网上很多,芯片手册上也很详细,在这里就不多说了。我刚开始接触到DSP的时候真的很头疼,完全不知道应该怎么下手,网上給的AM5728的demo也不是特别多,特别是一开始就使用这么高端的DSP,并且涉及到SYS/BIOS,在这里可以首先给大家推荐一个博主写的文章:http://blog.csdn.net/tostq
    其实,在学习过程中,自己慢慢的发现TI给了很多的参考文献,但是基本上都是英文的文献,只要有耐心去看TI給的参考文献,里面还是可以有很多收获的。

    • SYS/BIOS的下载以及安装
      TI最新的软件Processor SDK RTOS已经集成了之前开发SYS/BIOS的基本工具,所以只用在TI的官网上下载安装即可。安装“ti-processor-sdk-rtos-am57xx-evm-03.02.00.05-Windows-x86-Install”到Windows的任意非中文路径。安装后即可以在安装目录下看到以下目录(我将CCS和SDK工具安装在一个文件夹下了):
      这里写图片描述
    • 生成 AM572x 平台例程
      由于 ti-processor-sdk-rtos SDK 包是一个综合的 SDK 适用于 TI 其他系列产品, 需要使用脚本生成适用于 AM572x 平台的例程,以下介绍如何生成 AM572x 平台的 RTOS 例程。
      (1)进入 RTOS SDK 安装路径下的“pdk_am57xx_1_0_5/packages”目录:
      这里写图片描述
      右键打开 pdksetupenv.bat 文件(可以使用 Notepad++软件打开), 修改环境变量:
      ( a) 修改 SDK_INSTALL_PATH 为 RTOS SDK 安装路径(此处安装在 E:/ti)。
      ( b) 修改 TOOLS_INSTALL_PATH 为 CCS 的安装路径(此处 CCS 安装在 e:/ti)。
      这里写图片描述
      在该目录下的空白处,按住“ Shift+鼠标右键” ,选择“在此处打开命令窗口”,
      进入 Windows 命令终端。
      这里写图片描述
      在 Windows 命令终端输入 pdksetupenv.bat,设置环境变量。
      这里写图片描述
      在这里,AM5728的基本环境就已经配置完成了。
      笔者的开发环境为:Windows7 64位+CCS6.1.3+ROTS 03.02.00.05
      后续可能涉及到Linux的系统在详细介绍,笔者使用的是在VMware Workstation11虚拟机上跑ubuntu14.04系统。
    展开全文
  • am5728开始。。。

    2017-11-06 21:20:28
    从今天起本人将正式把自己学习5728的过程连载在这里,希望自己可以坚持下去 现在张自己画的PCB,核心板买的创龙的,无奈底板太贵,本人的工资已经拖了全世界后腿了 简单介绍下硬件:参照TI IDK设计。4网口(2路千兆2...

    从今天起本人将正式把自己学习5728的过程连载在这里,希望自己可以坚持下去

    现在张自己画的PCB,核心板买的创龙的,无奈底板太贵,本人的工资已经拖了全世界后腿了

    简单介绍下硬件:参照TI IDK设计。4网口(2路千兆2路PRU)、HDMI、USB2.0/3.0、SATA2.0、PCIE、GPMC总线、LCD/RGB/LVDS/MIP、3.5音频输入输出

    9路串口、1路SPI等等


    展开全文
  • AM5728_PRU系列开篇

    2019-02-26 11:24:45
    接下来会开一个新的系列聊聊PRU(program realtime unit)的裸机以及linux端的驱动程序。各位工业界的朋友敬请关注

    接下来会开一个新的系列聊聊PRU(program realtime unit)的裸机以及linux端的驱动程序。各位工业界的朋友敬请关注

    展开全文
  • 主要来总结AM5728开发所碰到的问题和一些资料的整理:(开发环境ubuntu 14.04 64bit) SDK安装篇: 这里主要是参考匠牛的开发文档,安装过程如下: 1:TI官网下载最新的SDK 2:chmod 0777ti-processor-sdk-...
  • AM5728调试经历(2)

    2017-03-21 16:47:11
    AM5728调试经历(2) 这次的主要内容是在Linux上安装CCS6.1.3软件,以及一些基本的操作,为后面建立做基本的工程做准备
  • 浅谈AM5728裸板调试

    2019-05-18 17:19:12
    一、浅谈ARM裸板调试 1.连接仿真器,读写寄存器 将硬件仿真器插到ARM板的JTAG口上,然后连接PC,现在的ARM仿真器好像都是通过USB和PC相连了。连接好后,就给板子上电,然后打开PC端的调试软件,我在这里用的是ARM11...
  • 关于AM5728的视频捕捉和显示 1.  AM5728对显示和捕捉的支持: AM5728视频捕捉和显示系统不再像DM8168那样有个HVPSS来管理视频的捕捉显示及处理。而是由两个子系统视频输入端口VIP和显示子系统DSS构成。VIP和...
  • AM5728 uboot 执行流程

    2020-02-27 22:51:20
    am5728的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img 第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard、SPI、NOR),然后跳转至第二级bootloader。这些代码应该是...
  • 下面给大家分享一下由广州创龙自主原创的AM5728系列开发视频教程,主要了介绍AM5728的硬件资源、优势以及应用方向,在此基础上,讲解AM5728在工业以太网上的具体应用方案。在介绍完AM5728的硬件资源后,会对AM5728的...
  • 本文记载了我在对接AM5728视频相关模块(VIP,VPE)时遇到的一些问题以及解决方式,问题罗列是按照时间线梳理的。仅供各位看官参考,才学疏浅,大家共同进步!!! 问题1:AM5728开发板对接官网...
  • 本次PCIe通信案例测试基于AM5728平台,篇幅较长,共分为三部分,分别阐述:AM57x与Artix-7FPGA、AM57x与Kintex-7 FPGA、AM57x与TMS320C66x DSP的PCIe通信测试,供大家参考学习。3 AM57x与TMS320C66x DSP的PCIe通信...
  • 广州创龙基于TI Sitara AM5728(浮点双DSPC66x +双ARMCortex-A15)+Xilinx Artix-7FPGA设计的TL5728F-EVM开发板是一款DSP+ARM+FPGA架构的开发平台,该平台适用于电力采集、电机控制器、雷达信号采集分析、医用仪器、...
  • 基于 TI AM5728 浮点双 DSP C66x +双 ARM Cortex-A15 工业控制及高性能音视频处理器; 多核异构 CPU,集成双核 Cortex-A15、双核 C66x 浮点 DSP、双核 PRU-ICSS、双核 Cortex-M4 IPU、双核 GPU 等处理单元,支持 ...
  • 广州创龙基于TI Sitara AM5728(浮点双DSPC66x +双ARMCortex-A15)+Xilinx Artix-7FPGA设计的TL5728F-EVM开发板是一款DSP+ARM+FPGA架构的开发平台,该平台适用于电力采集、电机控制器、雷达信号采集分析、医用仪器、...
  • 本次PCIe通信案例测试基于AM5728平台,篇幅较长,共分为三部分,分别阐述:AM57x与Artix-7FPGA、AM57x与Kintex-7 FPGA、AM57x与TMS320C66x DSP的PCIe通信测试,供大家参考学习。1 AM57x与Artix-7FPGA的PCIe通信测试...
  • ➢ SOM-XM5728是信迈科技基于 TI AM5728 处理器的工业级核心板,采用沉金无铅、十层板、工业级设计,可应用于运动控制系统、机器视觉处理系统、图像识别系统、音频分析系统、视频分析系统,高端测量仪器等行业应用。...
  • AM5728是TI Sitara系列高性能SOC,得益于异构多核处理架构,CPU内集成了多核DSP、多核PRU、IVA-HD、GPU等协处理单元,通过硬件加速的方式极大增强CPU的数据、多媒体处理能力,可满足工业协议支持、大数据计算、实时...
  • 本次PCIe通信案例测试基于AM5728平台,篇幅较长,共分为三部分,分别阐述:AM57x与Artix-7FPGA、AM57x与Kintex-7 FPGA、AM57x与TMS320C66x DSP的PCIe通信测试,供大家参考学习。2 AM57x与Kintex-7FPGA的PCIe通信2.1 ...
  • 使用的平台是创龙TL5728-IDK,下面简单介绍一下板子的基本情况:Ø 基于TI AM5728浮点双DSP C66x +双ARM Cortex-A15工业控制及高性能音视频处理器;Ø 支持1路1080P60或2路720P60或4路720P30视频硬件编解码,...
1 2 3 4 5 ... 20
收藏数 483
精华内容 193
关键字:

am5728