【经验】用C语言抽象代码描述CAN控制器XL2515的初始化流程
![CAN控制器,XL2515,信路达](https://www.sekorm.com/front/website/images/sekormContent.jpg)
![CAN控制器,XL2515,信路达](https://www.sekorm.com/front/website/images/sekormContent.jpg)
随着汽车行业的高速发展,车上的功能越来越多,在本身MCU的CAN资源不足的情况下使用信路达推出的XL2515 CAN控制器来扩展CAN接口的也越来越多,今天我们就来详细看看如何使用这一款XL2515。
我们今天先说下XL2515的初始化,以C语言为例:
我们从下图的XL2515规格书中可以看到XL2515支持的SPI指令
首先我们先编写一个函数来完成XL2515相关复位、读、写、位修改指令操作。
入口参数:cmd: 对XL2515的相关命令; add: 地址信息; arg1,arg2: 命令的相关参数
返回:若命令要求有返回值,则返回相应的数据;如果没有返回值的,则返回0
unsigned char XL2515_SPI_CMD( unsigned char cmd, unsigned char addr, unsigned char arg1, unsigned char arg2 )
{
unsigned char data = 0x00;
switch(cmd)
{
case XL2515_CMD_RESET:
MCU_SPI_SendByte( XL2515_CMD_RESET );
break;
case XL2515_CMD_BITMOD:
MCU_SPI_SendByte( XL2515_CMD_BITMOD );
MCU_SPI_SendByte( addr );//地址字节
MCU_SPI_SendByte( arg1 );//屏蔽字节
MCU_SPI_SendByte( arg2 );//数据字节
break;
case XL2515_CMD_WRITE:
MCU_SPI_SendByte( XL2515_CMD_WRITE );
MCU_SPI_SendByte( addr );
MCU_SPI_SendByte( arg1 );
break;
case XL2515_CMD_READ:
MCU_SPI_SendByte( XL2515_CMD_READ );
MCU_SPI_SendByte( addr );
data = MCU_SPI_ReadByte();
break;
default:
data = 0x00;
break;
}
return data;
}
完成了XL2515指令后,初始化部分就可以直接调用这个函数了。
因为实际使用过程中初始化会根据应用不同设置的参数也不同(例如波特率),所以我们使用抽象代码来给大家描述一个完整的XL2515初始化流程。上图是我们下面代码中会用到的寄存器,其他抽象表述的相关寄存器的详细描述在XL2515的手册中也有类似的详细描述
void XL2515_Init()
{
//复位XL2515
XL2515_SPI_CMD( XL2515_CMD_RESET, 0, 0, 0 );
//进入配置模式
XL2515_SPI_CMD( XL2515_CMD_BITMOD, XL2515_CANCTRL, 0xe0, 0x80 );
//配置相关引脚
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_BFPCTRL, BFPCTRL_INIT_VAL, 0);
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_TXRTSCTRL, TXRTSCTRL_INIT_VAL, 0);
//设置波特率
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_CNF1, CNF1_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_CNF2, CNF2_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_CNF3, CNF3_INIT_VAL, 0 );
//配置中断
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_CANINTE, CANINTE_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_CANINTF, CANINTF_INIT_VAL, 0 );
//复位XL2515的错误标志寄存器
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_EFLG, EFLG_INIT_VAL, 0);
//配置TXBnCTRL(发送缓冲器控制寄存器)
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_TXB0CTRL, TXBnCTRL_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_TXB1CTRL, TXBnCTRL_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_TXB2CTRL, TXBnCTRL_INIT_VAL, 0 );
//配置接收缓冲器控制寄存器
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXB0CTRL, RXB0CTRL_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXB1CTRL, RXB1CTRL_INIT_VAL, 0 );
//配置XL2515的验收滤波寄存器
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXF0SIDL, RXF0SIDL_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXF0SIDH, RXF0SIDH_INIT_VAL, 0 );
//配置XL2515的验收屏蔽寄存器
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXM0SIDL, RXM0SIDL_INIT_VAL, 0 );
XL2515_SPI_CMD( XL2515_CMD_WRITE, XL2515_RXM0SIDH, RXM0SIDH_INIT_VAL, 0 );
//进入正常工作模式
XL2515_SPI_CMD( XL2515_CMD_BITMOD, XL2515_CANCTRL, 0xe7, 0x04 );
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由土肥圆提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】用C语言抽象代码描述XL2515 CAN控制器的发送例程
随着汽车行业的高速发展,车上的功能越来越多,在本身MCU的CAN资源不足的情况下使用信路达推出的XL2515 CAN控制器来扩展CAN接口的也越来越多,我们就来详细看看如何使用这一款XL2515,今天讲XL2515的发送,依然以C语言为例。
【经验】信路达XL2515 CAN控制器发送复位命令及读写操作的方法分析
信路达推出的XL2515是一款独立CAN控制器,用于主控没有集成CAN控制器模块或者CAN控制器模块不够的情况。XL2515可以和MCP2515软硬件兼容。本篇文章来分析一下如何向XL2515发送复位命令,以及读写数据。
【经验】用C语言抽象代码描述XL2515 CAN控制器的接收例程
随着汽车行业的高速发展,车上的功能越来越多,在本身MCU的CAN资源不足的情况下使用信路达推出的XL2515 CAN控制器来扩展CAN接口的也越来越多,今天我们就来详细看看如何使用这一款XL2515。
【选型】国产带SPI接口的独立CAN控制器XL2515-TSS可替代MCP2515T-I/ST,性能参数基本一致
信路达推出的XL2515-TSS是带SPI接口的独立CAN控制器,本文将对比信路达的XL2515-TSS和MicroChip的MCP2515T-I/ST的主要参数,讨论两者替换的可行性。
【选型】国产CAN扩展芯片可替代MCP2515,性能参数基本一致,满足应用需求
在当下的芯慌环境下,工业储能项目的开发中,采用信路达CAN扩展芯片XL2515-TSS或芯力特的SIT2515T-I/ST替代Microchip的MCP2515T-I/ST是完全满足使用要求的。
XL82C250、XD82C250 CAN控制器接口芯片
XL82C250和XD82C250是CAN控制器接口芯片,提供差分CAN总线与CAN控制器之间的发送和接收功能,支持高达1 Mbps的通信速率。这些芯片完全兼容ISO 11898标准,具有低电流待机模式、短路保护、高电磁干扰免疫性等特点。
信路达 - CAN CONTROLLER INTERFACE CHIP,CAN控制器接口芯片,CAN CONTROLLER INTERFACE CHIPS,XL82C250,XD82C250
XL1050 CAN总线收发器
XL1050是一款CAN总线收发器,用于连接控制器区域网络(CAN)协议控制器和物理总线。它适用于高速应用,最高可达1 MBaud,主要用于乘用车。该设备提供对总线的差分发送能力和对CAN控制器的差分接收能力。
信路达 - CAN总线收发器,CAN BUS TRANSCEIVER,XL1050,INDUSTRIAL CONTROL AUTOMATION,乘用车,智能仪表,HIGH SPEED,PASSENGER CARS,工业控制自动化,SECURITY SYSTEMS,INTELLIGENT INSTRUMENTATION,AUTOMOTIVE ELECTRONICS,道路交通管理自动化,电平转换器,POINT-TO-MULTIPOINT COMMUNICATIONS,BUILDING AUTOMATION SYSTEMS,POINT-TO-POINT COMMUNICATIONS,LEVEL CONVERTER,高速,楼宇自动化系统,串行服务器,ROAD TRAFFIC CONTROL AUTOMATION,点对多点通信,SERIAL SERVERS,汽车电子,安全系统,点对点通信
信路达(XINLUDA)电源管理/运算放大器/数据转换/模拟开关/逻辑器件选型指南
XINLUDA was founded in 2018, and is a high-tech enterprise integrating integrated circuit design, product application solution development and sales into a whole industrial chain, which can provide customers with one-stop services.
信路达 - 驱动程序,编码器解码器,DRIVERS,MULTIPLEXERS,MULTIPLEXER,达林顿晶体管,模拟数字转换器,DARLINGTON TRANSISTORS,EXPANDERS,FREQUENCY TO VOLTAGE CONVERTER,COUNTER,COMPARATORS,DCDC CONVERTER,CAN BUS CONTROLLER,无刷直流电动机控制器,多路复用器,膨胀器,定时器,逻辑电路,PMW CONTROLLERS,ANALOG CHIPSETS,逆变器,LOGIC CHIPSETS,移位寄存器,比较器,计数器,选择器,BRUSHLESS DC MOTOR CONTROLLER,LED DRIVERS,缓冲剂,LOW SIDE DRIVERS,线性调节器,DCDC转换器,频率-电压转换器,高端驱动器,LED LIGHTING DRIVER,LED驱动器,LED照明驱动器,模拟芯片组,ENCODERS DECODERS,BUFFERS,射频开关,低压侧驱动器,INVERTER,RF SWITCH,逻辑芯片组,多工器,CAN总线收发器,CAN BUS TRANSCEIVERS,CAN总线控制器,CAN 收发器,运算放大器,OPERATIONAL AMPLIFIERS,ANALOG TO DIGITAL CONVERTER,TIMER,LOGIC CIRCUIT,PMW控制器,HIGH SIDE DRIVERS,CAN TRANSCEIVER,AUDIO POWER AMPLIFIER,SELECTORS,LINEAR REGULATORS,SHIFT REGISTERS,音頻功放,XD71055,XH2596-12,XL285-2.5,XD293-8,XL33035,XL2981,XD74C923,XL386,XL1413,XD3485,XD13600,XL9555SS,XL258,XL17358,XD14016,XL494,XL1881,XL485CS,XL1403,XT285-2.5,XD74C922,XL3140,XD74LS93,XL124,XD3140,XD74LS95,XL9910,XL2843,XL2845,XD74LS90,XL33290,XL3232-TS,XL2515-TSS,XD13700,XL232-TS,XL2113SPBF,XL239,XL8574ATM,XL62004,XD74LS83,XL4067-SS,XL3485,XD74LS86,XL62003,XD74LS85,XD2981,XB402U-L27,XL2003-TS,XA2163,XB3480M3-3.3,XL324TSS,XL75176AD,XL7650-8,XL7135CD,XLV358D,XL2903-TS,XL224,XL2110PBF,XL7705B,XL75176AP,XL8574ATS,XD386-1,XH2576-ADJ,XL74LS04,XL7555,XL74LS06,XL74LS07,XL8574T,XL9555D,XL74LS00,XL2543,XL74LS02,XA2179-S13,XD4136,XH2596-5.0,XL9170,XD2515,XD3846,XD297,XL2594-5.0,XL393-KR,XT336-5.0,XL2803AG,XL293-20,XL339,XL336-5.0,XL217,XL1682,XL74LS11,XL331,XL2594-ADJ,XL74LS14,XZ298N,XL74LS10,XD2525,XD62004,XD62002,XD62003,XH2576-5.0,XL567,XL324,XL74LS08,XL8870,XL7660,XP8255,XH2596-ADJ,XL74LS27,XD8870,XD7660,XL13085,XT78L05,XL74LS20,XD33035,XL8574TM,XD8255-2,XL2112SPBF,XD393,XL8574TS,XL293D-8,XL555,XL485-SS,XD833,XLV358-MS,XD14553,XL317,XD9170,XD7705B,XL298P,XL74HC597-TS,XL3842,XL551,XL3844,XD7555,XL3843,XL74LS30,XL3846,XL2515,XL3845,XL74LS32,XL1307,XL549,XL548,XL224-TS,XD4052,XD74LS181,XD754410,XD4051,XD3085,XL9535,XD4053,XD74LS30,XL2904D,XL5615,XL2902,XL74HC165,XL2901,XD4059,XH2596-3.3,XL2903,XD3403,XD3525,XD3526,XLB574AT,XD14538,XD494,XA2214-S14,XD8574AP,XD2907-14,XL9555QF24,XB385M3-2.5,XD258,XH2576-12,XL236-2.5,XD74LS194,XL1000,XD4060,XD74LS20,XD74LS192,XD74LS21,XD74LS193,XD74LS190,XD2543N,XL62783,XL82C251,XD4066,XL4514,XD4069,XD82C55-5,XA214-G4C,XD7219,XL232Z,XL2904-KR,XD124,XD485,XD74HC165,XD33063,XH2576-3.3,XL7221,XL2112PBF,XL232K,XL13700,XD17358,XL2594-12,XD74LS27,XL4067,XD74LS163,XL2903-KR,XD74LS161,XD74LS283,XL07Z,XD7221,XL7219,XD74LS10,XD74LS160,XL2525Z,XD4514,XD14514,XD232,XD231,XD4518,XD14518,XD0832CC,XD7650-14,XD74LS14,XL293-TS,XD74LS279,XD74LS11,XD239,XD358,XD74LS157,XD74LS154,XL2113PBF,XB431-LM,XL2551,XD1307,XL3526,XL193,XD2902N,XD5615,XD74LS08,XD2901,XD2903,XD54563,XD2904,XD54562,XP71055,XD74LS02,XD74LS00,XL620,XD14069,XD74LS06,XD74LS07,XD74LS04,XL2525K,XL13600,XL3085,XD224,XD74LS166,XL386-MS,XL5532,XL3232,XD40192,XD74LS75,XD74LS76,XD74LS73,XD74LS74,XT385-1.2,XL2803A,XD1413,XL74HC245,XD74HC597,XD331,XL358D,XD4538,XD34063,XL2902-TS,XD74LS138,XD74LS139,XB431-TL,XD17324,XD339,XL74LS157,XL1050,XL62083,XD74LS132,XL1051,XL1042,XL74HC165-TS,XD74LS153,XL33063,XL1044,XL4310,XD74LS151,XD14051,XD14052,XL297,XD14053,XD13085,XL385-1.2,XL4558,XD7650-8,XD7135,XD2002,XD1403,XD2003,XL74HC595,XD293-16,XD2004,XL74HC597,XL393-TS,XA213-G4J,XD74HC245,XL293-KR,XD1881,XB61040,XD2803,XL78L05A,XA17-G4K,XD2804,XL74LS148,XD74LS147,XD74LS148,XD74LS145,XB61041,XD567,XD324,XL1040,XL358-KR,XL34063,XL9555,XD74LS54,XL285-1.2,XL2003,XL2004,XD74LS51,XD4553,XL258-KR,XL2515QF20,XL2804,XD8574P,XD551,XL2026-2,XL2026-1,XB385M3-1.2,XL74LS139,XL74LS138,XD07,XT336-2.5,XL158,XD74LS112,XL336-2.5,XL3525Z,XL2982SL,XD555,XL833,XL393,XL2110,XD74LS42,XL385-2.5,XL2112,XL2113,XD74HC4514Z,XD3232,XL3525K,XL74C922,XD62783,XD3914,XB3480M3-5.0,XT385-2.5,XL2110SPBF,XD74LS248,XD74LS47,XD549,XD548,XD74LS247,XL9535QF24,XD74LS48,XL0832DR,XL74C923,NEW ENERGY,ELECTRIC POWER SYSTEM,汽车,储能系统,INDUSTRIAL,电动自行车,SMART HOME,电力系统,充电器,SMART BUILDING,AUTOMOTIVE,新能源,E-BIKE,ENERGY STORING SYSTEM,EV,智能家居类,CHARGER,电动汽车,MINERAL EQUIPMENT,矿物设备,工业,智能建筑
【应用】SPI独立接口的国产CAN协议控制器解决充电桩多路CAN需求
本文介绍信路达SPI接口独立CAN控制器XL2515实现充电桩应用串口SPI转CAN。支持CAN技术规范2.0A/B,传输速率达1Mbps;高速SPI接口,支持SP1 0.0和1.1 两种模式;可编程时钟脉冲输出引脚,可作其他芯片时钟信号源。
适用于24 V系统的XL82C251、XD82C251 CAN收发器
该资料介绍了XL82C251和XD82C251两款CAN控制器接口芯片,作为CAN收发器,它们提供在差分CAN总线和CAN控制器之间的发送和接收功能,支持高达1 Mbps的信号速率。这些设备完全符合“ISO 11898-24 V”标准,具有多种特性,包括抗射频干扰、短路保护、低电流待机模式等。
信路达 - CAN 收发器,CAN控制器接口芯片,CAN CONTROLLER INTERFACE CHIPS,CAN TRANSCEIVER,XL82C251,XD82C251
【选型】国产CAN收发器XL1050可Pin-Pin替换TJA1050T,助力工业控制信号传输
本文重点推荐信路达的XL1050,可Pin-Pin替换TJA1050T进行差分信号传输。XL1050相比TJA1050T,I/O口支持电压既支持3.3V、又支持5V的CAN总线和控制器;两者引脚分布和定义完全相同,无需改版,可以实现兼容设计。
【选型】国产CAN总线控制器可Pin-Pin替换MICROCHIP的MCP2515-I/SO,电气性能基本一致
在SPI总线转CAN控制器的产品设计中,以前硬件工程师常用的IC型号是美国微芯公司的MCP2515-ISO,本文从电性能参数、PIN脚对比以及外围应用电路等方面说明国产信路达的CAN总线控制器XL2515可Pin to Pin替代。
XL2551、XD2551高速CAN收发器
XL2551和XD2551是高速CAN收发器,用于CAN协议控制器与物理总线之间的接口。它们提供差分发送和接收能力,完全兼容ISO-11898标准,支持高达1 Mb/s的速率。产品特性包括高速操作、ISO-11898标准兼容性、12V和24V系统适用性、低电流待机操作、高噪声免疫性等。
信路达 - 高速CAN收发器,HIGH-SPEED CAN TRANSCEIVERS,高速CAN,容错器件,HIGH-SPEED CAN, FAULT-TOLERANT DEVICE,XL2551,XD2551
带SPI接口的XL2515独立CAN控制器
该资料介绍了XL2515独立CAN控制器,它是一款符合CAN 2.0B规范的控制器。具有双接收掩码和六个接收过滤器,可同时发送和接收标准、扩展数据帧以及远程帧。采用低功耗CMOS技术,支持高速SPI接口,适用于多种应用场景。
信路达 - STAND-ALONE CAN CONTROLLER,控制器区域网络控制器,独立CAN控制器,CAN控制器,CAN CONTROLLER,CONTROLLER AREA NETWORK CONTROLLER,XL2515-TSS,XL2515,XL2515QF20
电子商城
现货市场
服务
![](https://files.sekorm.com/opt/fileStore/srms/serviceManage/icon/2022/06/2e7fb23238ad6bbdb0051a7eeaf9b178.png)
可定制排针排母间距:0.8~2.54mm,排数:1~3,电流:最大不超过10A;环境温度:-45度~+125度;寿命/拔插次数:不超过5000次。
最小起订量: 5000 提交需求>
![](https://files.sekorm.com/opt/fileStore/srms/serviceManage/icon/2021/06/2e7fb23238ad6bbdb0051a7eeaf9b178.png)
可定制连接器单PIN电流最大不超过10A;环境温度:-45度~+125度;寿命/拔插次数:不超过5000次。
最小起订量: 5000 提交需求>
登录 | 立即注册
提交评论