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日
    浏览(31)
  • Vivado中使用IP核SelectIO配置LVDS学习笔记

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月03日
    浏览(34)
  • 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日
    浏览(44)
  • FPGA学习笔记(二):clk IP核的使用

     1.打开VIVADO,点击IP Catalog   2. 搜索clk,选择Clocking Wizard   3. 配置参数 (1) 选择MMCM      (2) 设置主频50Mhz  (3) 设置输出的4个clk的参数,分别是50M,25M,100M,100M反相。Phase表示相位,0表示同相,180表示反相。      (3) 其他参数  4. 测试文件 其中clk_wiz的例化可参考模板。点击

    2024年02月12日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包