MCP2517FD应用总结

简介

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协议标准。

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

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
带SPI接口的外部CAN FD控制器 特性 通用 • 带SPI接口的外部CAN FD控制器 • 最高1 Mbps的仲裁比特率 • 最高8 Mbps的数据比特率 • CAN FD控制器模式 - CAN 2.0B和CAN FD混合模式 - CAN 2.0B模式 • 符合ISO 11898-1:2015 报文FIFO • 31个FIFO,可配置为发送或接收FIFO • 1个发送队列(Transmit Queue, TXQ) • 带32位时间戳的发送事件FIFO(Transmit Event FIFO, TEF) 报文发送 • 报文发送优先级: - 基于优先级位域,和/或 - 使用发送队列(Transmit Queue, TXQ)先发 送ID最小的报文 • 可编程自动重发尝试:无限制、 3次尝试或禁止 报文接收 • 32个灵活的过滤器和屏蔽器对象 • 每个对象均可配置为过滤: - 标准ID + 前18个数据位或 - 扩展ID • 32位时间戳 特殊功能 • VDD: 2.7V至5.5V • 工作电流:最大20 mA(5.5V, 40 MHz CAN时钟) • 休眠电流: 10 µA(典型值) • 报文对象位于RAM中: 2 KB • 最多3个可配置中断引脚 • 总线健康状况诊断和错误计数器 • 收发器待机控制 • 帧起始引脚,用于指示总线上报文的开头 • 温度范围: - 高温(H): –40°C至+150°C 振荡器选项 • 40、 20 或 4 MHz 晶振或陶瓷谐振器;或外部时钟 输入 • 带预分频器的时钟输出 SPI接口 • 最高20 MHz SPI时钟速度 • 支持SPI模式0,0和1,1 • 寄存器和位域的排列方式便于通过SPI高效访问 安全关键型系统 • 带CRC的SPI命令,用于检测SPI接口上的噪声 • 受纠错码(Error Correction Code, ECC)保护的 RAM 其他特性 • GPIO引脚: INT0和INT1可配置为通用I/O • 漏极开路输出: TXCAN、 INT、 INT0 和 INT1 引脚 可配置为推/挽或漏极开路输出

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值