MCP2518FD(一)——简介

目录

1. 是什么?

2. 模块构成

2.1 典型应用

 2.2 内存映射

3. SPI时序

4. 对于该器件的配置操作


1. 是什么?

 MCP2518FD是一款经济高效的小尺寸CAN FD控制器,可通过SPI接口轻松添加到单片机中。因此, CAN FD通道可以轻松添加到缺少CAN FD外设或者没有足够CANFD通道的单片机。带SPI接口的外部CAN FD控制器,也就是用于把MCU的SPI接口转为CAN接口。

MCP2518FD(一)——简介_第1张图片

引脚说明:

MCP2518FD(一)——简介_第2张图片


2. 模块构成

2.1 典型应用

MCP2518FD(一)——简介_第3张图片

从上图可以看出mcp2518fd模块由两部分构成,一部分就是主体mcp2518fd,另一部分就是CANFD收发器ATA6563。 

 所以引脚说明里的TXCAN和RXCAN就是指的MCP2518FD与CANFD收发器之间的通信关系。

 2.2 内存映射

SPI接口用于通过访问MCP2518FD和CANFD收发器的寄存器,以及RAM来控制器件,所以内存映射部分也分为这三块:MCP2518FD的特殊功能寄存器地址+CANFD特殊功能寄存器地址+RAM的地址.
 

MCP2518FD(一)——简介_第4张图片

  •  0X00-0X2EF: CANFD控制器寄存器地址;
  •  0x400-0xBFF: RAM地址;
  •  0xE00-0XE13: MCP2518FD寄存器地址;

3. SPI时序

MCP2518FD(一)——简介_第5张图片

我们要配置寄存器,要通过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也可以这样定义。

指令:

MCP2518FD(一)——简介_第6张图片


4. 对于该器件的配置操作

首先写好基本的SPI驱动程序,在此基础写好针对该器件的SPI读写操作函数,主要有哪些呢?

我们要操作SFR和RAM,也就是对它们的读写操作:

  • 读写onebyte;
  • 读写halfword;
  • 读写oneWord; 

根据手册可知:还有带CRC的读写,还有一种带CRC的安全写。这些手册提到的基本功能函数,可以都写出来。

具体配置过程再续............

 

 

 

你可能感兴趣的:(底层,外围器件,ARM,嵌入式,单片机)