Vivado CANFD IP 使用笔记

这篇具有很好参考价值的文章主要介绍了Vivado CANFD IP 使用笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. IP设置:

canfd ip,zynqmpsoc,fpga开发

 接口说明:

        APB接口用于配置IP内部寄存器、控制CAN报文收发;

        can_clk:默认给40Mhz;

        can_clk_x2:与can_clk同源,默认给80MHz;

        apb_clk:系统时钟;

波特率计算:

        80MHz / 2 / ((1+BRP)*((1+(1+TESG1)+(1+TESG2)));

寄存器表:

        基地址0x0000:IP核控制寄存器;

        基地址0x0100:TX寄存器;

        基地址0x2000:RX寄存器;

        基地址+0x0100(或0x0148...):CAN ID、扩展帧标识IDE;

        基地址+0x0104(或0x014C...):CAN报文字节长度、CANFD类型标识;

        基地址+0x0108(或0x0150...):CAN报文数据0-3字节;

        基地址+0x010C(或0x0154...):CAN报文数据4-7字节;

        基地址+0x0110(或0x0158...):CAN报文数据8-11字节;

        。。。

配置步骤:

        IP核配置:

                1. 复位IP核,对地址0x0000写数据0x00000001;

                2. 读取地址0x0018数据,获取IP状态,确保在配置模式下;

                3. 设置BRP,对地址0x0008的bit7-0写BRP值,如0x00000001,即BRP=1;

                4. 设置SJW、TESG1、TESG2的值,对地址0x000C写值,如0x00040421,即SJW=4,TESG1=33,TESG2=4,则波特率=80Mhz / 2 / ((1+1)*((1+(1+33)+(1+4))) = 40Mhz / (2*40) = 500k;

                5. 设置数据BRP、SJW、TESG1、TESG2,当CANFD数据域与控制域的波特率不一样时(BRS=1),数据域的波特率使用该BRP、TESG1、TESG2计算,如当设置can时钟为30MHz时:

                        地址0x0088写0,设置BRP=0;

                        地址0x008C写0x0001020A,设置SJW=1,TS2=2,TS1=10;

                        波特率:60MHz / 2 / ((1+0)*(1+(1+2)+(1+10))) = 2Mbps;

                6. 设置中断使能,地址0x0020写32‘hFFFFFFFF;

                7.(可选)如果要设置接收报文过滤,地址0x0a00写入32’hFFE7FFFE,在地址0x0A04写入要接收的ID号;

                8. 设置接收过滤UAF(不知道是啥-。-),地址0x00E0写入0x3;

                9. 设置RX FIFO水印寄存器0x00EC,写32‘hFFFFFFFF;

                10. 退出复位,地址0x0000写入0x00000000;

        TX配置:

                1. 地址0x0100写入TX报文的ID、扩展帧标识;

                2. 地址0x0104写入TX报文的字节长度、CANFD标识;

                3. 地址0x0108、0x010C写入TX报文的字节0-7;

                4. 地址0x0090写入0x1,标识TX Buffer ready;

        RX配置:

                1. 读取地址0x00E8,获取RX Buffer的状态,包括buffer的下标、buffer中的报文个数;

                2. 如果RX Buffer中有报文,按照下标index读取数据:

                3. 读取地址0x2100+index*0x48,获取RX报文ID;

                4. 读取地址0x2104+index*0x48,获取RX报文字节长度;

                5. 读取地址0x2108+index*0x48、0x210C+index*0x48,获取RX报文数据0-7字节;

                6. 对地址0x00E8地址写0x80,设置IRI为1,标识本次读取完成,将buffer下标指示到下一个buffer;文章来源地址https://www.toymoban.com/news/detail-716781.html

到了这里,关于Vivado CANFD IP 使用笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CANFD和CAN的区别

    FD全称是 Flexible Data-Rate, 顾名思义, 表示CAN-FD 的帧报文具有数据场波特率可变的特性, 即 仲裁场和数据控制场使用标准的通信波特率,而到数据场就会切换为更高的通信波特率, 车端常用的为2Mbit/s和5Mbit/s,从而达到提高通信速率的目的。 CAN-FD:可以理解成CAN协议的升级

    2023年04月14日
    浏览(42)
  • Vivado中使用IP核SelectIO配置LVDS学习笔记

             Ps.1: 起初将PLL、OSERDESE、ISERDESE的复位都接系统复位,但是由于PLL初始化需要一段时间导致data异常,将PLL复位取消后data正常(且系统复位要在PLL初始化完成之后)。           Ps.2: bitslip不使能时,ISERDESE不能解串。          顶层模块代码如下:      

    2024年02月15日
    浏览(44)
  • 车载网络测试 - CAN&CANFD - 基础篇_01

    问题思考: 一、为什么需要总线? 二、什么是CAN总线? 三、为什么是CAN总线? 四、曾经的车用总线             1、SAEJ1850(Class2)         2、SAEJ1708         3、K-Line         4、BEAN         5、 byteflight, K-Bus         6、D2B 五、当前的车用总线         

    2024年02月06日
    浏览(53)
  • CANfd 一次采样点和二次采样点

    采样点的定义 采样点是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。 首先我们需要了解Tq的概念,Tq是can控制器的最小时间周期称作时间份额(Time quantum,简称Tq),它是通过芯片晶振周期分频而来。传输的个bit位由若干个Tq组成,根据功能传输一个BIT位需要分

    2023年04月16日
    浏览(25)
  • STM32 CAN/CANFD软件快速配置(HAL库版本)

    控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他

    2024年02月09日
    浏览(40)
  • 速锐得智能汽车车身域CANFD控制芯片MCU接口电路原理图

    CAN总线技术不仅涉及汽车电子和轨道交通,还涉及 医疗器械、工业控制、智能家居和机器人网络互连,这些行业对CAN产品的稳定性和抗干扰能力都有很高的要求。   上篇我们讲了在汽车CAN FD上,数据出错可能导致数据位被错误地解析为填充位,或者填充位被错误地解析为数

    2024年02月16日
    浏览(53)
  • 【STM32】STM32 CANFD外设的几种消息接收过滤模式

    在控制器区域网络(CAN)系统中,正确配置消息过滤器对于有效管理网络通信至关重要。特别是在使用Flexible Data-rate Controller Area Network(FDCAN)时,选择合适的过滤器类型可以大大提高网络效率和消息处理速度。 STM32G47x芯片的CAN外设有如下几种接收消息过滤方法: 这是一种范

    2024年01月18日
    浏览(37)
  • 【FPGA】 十二、Vivado DDS IP核实现扫频信号

    文章目录 前言 一、DDS IP核概述 二、DDS IP核配置 三、调用DDS IP核 总结     在我前面的工程中,都是一些比较通用的设计工程,没有用到哪一家的IP核,所以代码具有很好的移植性;今天我就来讲一下基于Xilinx厂家的芯片做一期DDS的设计与验证,这里我所采用的EDA工具是Viva

    2024年02月03日
    浏览(47)
  • FPGA学习笔记(六): FIR IP核的使用

    1. 打开VIVADO,点击IP Catalog   2.搜索DDS,选择DDS Compiler,按照上节配置频率为3MHz和4MHz的DDS IP核。    这里注意不勾选Has Phase Out 这里注意不勾选Output TREADY     输出频率为3MHz 按照上述步骤,配置4MHz的DDS,同样不勾选Has Phase Out以及不勾选Output TREADY。 3. 点击IP Catalog,搜索mu

    2024年02月03日
    浏览(46)
  • FPGA学习笔记(五):DDS IP核的使用

     1. 打开VIVADO,点击IP Catalog    2.搜索DDS,选择DDS Compiler    3. 配置参数 (1) 设置主频频率 50MHz   (2) 选择sine,并且勾选Has Phase Out(相位输出)    (3) 勾选Output TREDAY  (4) 输入频率    (5) 同上述步骤,再加一个DDS IP核 4. 测试文件   5. 结果展示        

    2024年02月11日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包