目录
1. 是什么?
MCP2517FD是一款经济高效的小尺寸CAN FD控制器,可通过SPI接口轻松添加到单片机中。因此, CAN FD通道可以轻松添加到缺少CAN FD外设或者没有足够CANFD通道的单片机。带SPI接口的外部CAN FD控制器,也就是用于把MCU的SPI接口转为CAN接口。
引脚说明:
2. 模块构成
2.1 典型应用
从上图可以看出mcp2517fd模块在系统中正常使用需由两部分构成,一部分就是主体mcp2517fd,另一部分就是CANFD收发器ATA6563(其他收发器亦可)。
所以引脚说明里的TXCAN和RXCAN就是指的MCP2518FD与CANFD收发器之间的通信关系。
2.2 内存映射
SPI接口用于通过访问MCP2517FD和CANFD收发器的寄存器,以及RAM来控制器件,所以内存映射部分也分为这三块:MCP2517FD的特殊功能寄存器地址+CANFD特殊功能寄存器地址+RAM的地址.
- 0X00-0X2EF: CANFD控制器寄存器地址;
- 0x400-0xBFF: RAM地址;
- 0xE00-0XE13: MCP2518FD寄存器地址;
3. SPI时序
我们要配置寄存器,要通过SPI总线发数据过去,相对于外设就是SDI接口的数据:Command + Address + Data.
- 第一个字节:4位命令+4位地址;
- 第二个字节:8位地址;
- 第三个字节及以后:都是数据;
所以往寄存器写一个字节时序可以这么写:
// write one byte
spiTransmitBuffer[0] = (uint8_t) ((CMD << 4) + ((ADDR >> 8) & 0xF));
spiTransmitBuffer[1] = (uint8_t) (ADDR& 0xFF);
spiTransmitBuffer[2] = txdata;
同理,写halfWord或者one Word也可以这样定义。
指令:
4. 对于该器件的配置操作
首先写好基本的SPI驱动程序,在此基础写好针对该器件的SPI读写操作函数,主要有哪些呢?
我们要操作SFR和RAM,也就是对它们的读写操作:
- 读写onebyte;
- 读写halfword;
- 读写oneWord;
根据手册可知:还有带CRC的读写,还有一种带CRC的安全写。这些手册提到的基本功能函数,可以都写出来。
具体配置过程再续............