公司动态

Vivado CANFD IP 使用笔记

📅 2026/7/14 15:21:33
Vivado CANFD IP 使用笔记
1. IP设置接口说明APB接口用于配置IP内部寄存器、控制CAN报文收发can_clk默认给40Mhzcan_clk_x2与can_clk同源默认给80MHzapb_clk系统时钟波特率计算80MHz / 2 / ((1BRP)*((1(1TESG1)(1TESG2)));寄存器表基地址0x0000IP核控制寄存器基地址0x0100TX寄存器基地址0x2000RX寄存器基地址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写数据0x000000012. 读取地址0x0018数据获取IP状态确保在配置模式下3. 设置BRP对地址0x0008的bit7-0写BRP值如0x00000001即BRP14. 设置SJW、TESG1、TESG2的值对地址0x000C写值如0x00040421即SJW4TESG133TESG24则波特率80Mhz / 2 / ((11)*((1(133)(14))) 40Mhz / (2*40) 500k;5. 设置数据BRP、SJW、TESG1、TESG2当CANFD数据域与控制域的波特率不一样时BRS1数据域的波特率使用该BRP、TESG1、TESG2计算如当设置can时钟为30MHz时地址0x0088写0设置BRP0地址0x008C写0x0001020A设置SJW1TS22TS110波特率60MHz / 2 / ((10)*(1(12)(110))) 2Mbps6. 设置中断使能地址0x0020写32‘hFFFFFFFF7.可选如果要设置接收报文过滤地址0x0a00写入32’hFFE7FFFE在地址0x0A04写入要接收的ID号8. 设置接收过滤UAF不知道是啥-。-地址0x00E0写入0x39. 设置RX FIFO水印寄存器0x00EC写32‘hFFFFFFFF10. 退出复位地址0x0000写入0x00000000TX配置1. 地址0x0100写入TX报文的ID、扩展帧标识2. 地址0x0104写入TX报文的字节长度、CANFD标识3. 地址0x0108、0x010C写入TX报文的字节0-74. 地址0x0090写入0x1标识TX Buffer readyRX配置1. 读取地址0x00E8获取RX Buffer的状态包括buffer的下标、buffer中的报文个数2. 如果RX Buffer中有报文按照下标index读取数据3. 读取地址0x2100index*0x48获取RX报文ID4. 读取地址0x2104index*0x48获取RX报文字节长度5. 读取地址0x2108index*0x48、0x210Cindex*0x48获取RX报文数据0-7字节6. 对地址0x00E8地址写0x80设置IRI为1标识本次读取完成将buffer下标指示到下一个buffer