MCP2517FD应用总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/fengweibo112/article/details/90695305

简介

Microchip MCP2517FD外部CAN FD控制器是一款外形小巧、经济高效的外部CAN FD控制器,可通过可用的SPI接口轻松添加到微控制器中。可将CAN FD通道轻松添加到缺少CAN FD外设或没有足够CAN FD通道的微控制器上。MCP2517FD支持经典格式 (CAN 2.0B) 和CAN灵活数据速率 (CAN FD) 格式中的CAN帧,符合ISO11898-1:2015标准。

特点

 符合ISO11898-1:2015标准
 支持CAN 2.0B和CAN FD
 仲裁比特率高达1Mbps
 数据比特率高达8Mbps(CANFD相对与CAN的优势)
 SPI时钟速度高达20MHz(很容易就能在MCU中实现控制)
 31个FIFO可配置为发送或接收
 32个灵活的滤波器和屏蔽对象
 一个发送队列
 32位时间戳
 总线健康诊断和错误计数器
 VDD:2.7V - 5.5V
 最大有源电流:12mA(5.5V,40MHz CAN时钟)
 睡眠电流:10μA(典型值)
 温度范围:-40℃至+150℃
 封装:VDFN14(可湿性侧翼),SOIC14

功能框图

主要包括以下功能模块:
1.实现CAN FD协议、FIFO空间、和消息过滤功能。
2.采用SPI,通过读写SFR(Special Function Registers)和RAM,实现对设备的控制。
3.RAM控制模块:仲裁SPI和CAN FD对RAM空间的访问权。
4.Message RAM空间用于储存消息结构体
5.晶振作为CAN的输入时钟
6.LDO和POR(power on reset)电路
7.IO口
在这里插入图片描述

寄存器映射表

寄存器映射表如下图所示:
寄存器0x000到0x2EF是对CAN FD通信协议部分的寄存器配置。
0X4000到0xBFF,为2K的RAM空间,用于保存消息内容。
0XE00到0XE13是专门针对MCP2517FD芯片的控制寄存器,比如控制芯片的GPIO引脚等。
在这里插入图片描述

SPI操作方法

SFR和RAM都通过SPI接口访问,访问格式如下图所示。发送指令前,nCS引脚拉低,然后发送4位控制命令+12位地址(在SCK上升沿时数据写入)。在写指令过程中,数据在SCK下降沿读出。紧接着发送1个或多个字节的数据。最后nCS拉高结束整个指令过程。
在这里插入图片描述

SPI指令如下图:
执行复位:控制命令0b0000+地址0x000,设备复位。
读:控制命令0b0011
写:控制命令0b0010
读带CRC:控制命令0b1011
写带CRC:控制命令0b1010
安全模式写:控制命令0b1100
在这里插入图片描述

复位

拉低nCS,写入4位控制命令0b0000(4位控制命令),写入12位地址0x000,nCS拉高结束,设备复位。

SFR读

nCS拉低,写入4位控制命令0b0011,写入12位地址A,然后读取对应地址的数据DB[A],DB[A+1]…nCS拉高结束。

SFR写

nCS拉低,写入4位控制命令0b0010,写入12位地址A,写入数据DB[A],DB[A+1]…nCS拉高结束。

CAN控制寄存器CiCON

在这里插入图片描述
REQOP:请求运行模式。
选择CANFD模式:既可以支持CAN,也可以支持CANFD。
选择CAN模式:仅支持CAN,如果时CANFD,可能会有错误帧。
选择配置模式:在配置寄存器过程中,需要使用次模式。
TXQEN:发送Queue使能位。
使能传出队列功能过后,会在RAM空间中预留队列空间。
STEF:存储发送事件FIFO位。
使能过后,会保存发送消息在TEF(Transmit Event FIFO)中,并会预留此RAM空间。
BUSY:CAN:模块繁忙标志位,只读。
PXEDIS:扩展协议检测使能位。如果传输的时扩展ID,则接收到的寄存器中的FDF将会置位。

FIFO控制寄存器CiFIFOCONm

该寄存器可以设置发送和接收的FIFO空间大小,FIFO载入数据单元大小。
在这里插入图片描述

传输消息结构体

需要传输一条CAN/CANFD消息,需要往FIFO中写入如下图所示格式的消息内容,然后使能发送,则芯片会把数据写入FIFO的数据以CAN/CANFD协议标准发送出去。
在这里插入图片描述
SID11:CAN的标准ID是11位,扩展ID29位。SID11在FD模式下的标准ID扩展到12位。
EID:扩展ID。
SID:标准ID。
SEQ:Sequence(序列) 跟踪 传输事件FIFO中的 传输消息。
ESI:错误状态指示。
FDF:FD Fromat。说明使用的是CAN 还是CANFD,CAN中为显性(0),CANFD中为隐形(1).
BRS:隐形(0)时,切换到高速传输的时钟模式。
RTR:在CAN中使用,详见CAN协议标准。

说明:以上为个人对芯片的一些理解,如有错误,请指正。

猜你喜欢

转载自blog.csdn.net/fengweibo112/article/details/90695305
fd