資源簡介
使用FPGA操作CAN協議芯片MCP2515實現CAN多種通訊協議操作

代碼片段和文件信息
#include?“mcp2515.h“?
/*RXB0‘s?data?registers:*/?
unsigned?char?RXB0D[8]={RXB0D0RXB0D1RXB0D2RXB0D3RXB0D4RXB0D5RXB0D6RXB0D7};?
/*TXB0‘s?data?registers:*/?
unsigned?char?TXB0D[8]={TXB0D0TXB0D1TXB0D2TXB0D3TXB0D4TXB0D5TXB0D6TXB0D7};
void?MCP2515_Init(void)?
{?
????unsigned?char?dummy;?
????/*First?initialize?the?SPI?periphere*/?
????/*Then?initialize?the?MCP2515.Step?as?follow:?
????1>Get?into?configuration?mode?by?reset?MCP2515?or?write?the?bit?of?CANCTRL.REQOP.?
????2>Check?the?CANSTAT?by?ReadByte_MCP2515(CANSTAT)?if?MCP2515?is?already?into?configuration?mode.?
????3>Configurate?the?registers?to?set?the?baudrate:CN1CN2CN3.?
????4>Configurate?TXRTSCTRL?to?set?the?function?of?TXnRTS?pin.?
????5>Configurate?TRXBnCTRL?to?set?the?pirority?of?transmit?mailbox:TXB0TXB1TXB2.?
????6>Configurate?TXBn‘SID?EID?and?DLC.This?step?can?configurate?when?you?are?in?normal?mode.?
????7>Configurate?RXFnSIDH?and?RXFnSIDL?to?resceive?the?specific?ID.?
????8>Configurate?RXMnSIDH?and?RXMnSIDL?to?mask?the?RXFnSID‘s?ID.?
????9>Configurate?CANINTE?to?enable?or?disable?the?interrupts.?
????10>Return?to?the?normal?mode?and?double?check?if?it?is?return?to?the?normal?mode?by?CANSTAT.?
????*/???
????/*Flip?into?the?Configuration?Mode*/?
????MCP2515_Reset();?
????_delay_(0x4000);/*?1ms?_delay_?using?Fcpu?=?16Mhz*/
????//Set?the?baudrate?
????//set?CNF1SJW=00lengthe?is?1TQBRP=49TQ=[2*(BRP+1)]/Fsoc=2*50/8M=12.5us?
????SendByte_MCP2515(CNF1CAN_125Kbps);?
????//set?CNF2SAM=0caputre?one?timePHSEG1=(2+1)TQ=3TQPRSEG=(0+1)TQ=1TQ?
????SendByte_MCP2515(CNF20x80|PHSEG1_3TQ|PRSEG_1TQ);?
????//set?CNF3PHSEG2=(2+1)TQ=3TQwhen?CANCTRL.CLKEN=1set?CLKOUT?pin?to?output?
????SendByte_MCP2515(CNF3PHSEG2_3TQ);?
????/*?
????3?Transimit?Buffers:TXB0TXB1TXB2?
????2?Receive???Buffers:RXB0RXB1?
????6?ID?Filter:RXF0~RXF5?
????2?ID?Mask?Regieter:RXM0RXM1?
????*/?
?????//configurate?RXB0‘?registers?
//?????SendByte_MCP2515(RXB0CTRL0x60);//Receive?all?frames?from?CAN?bus?
?????SendByte_MCP2515(RXB0CTRL0x20);//RXB0?just?receive?the?standard?frames??
?????SendByte_MCP2515(RXF0SIDH0xFF);//Fileter?register?
?????SendByte_MCP2515(RXF0SIDL0xE0);//Just?receive?ID=0x7FF?frame?
?????SendByte_MCP2515(RXF1SIDH0xFD);//Fileter?register?
?????SendByte_MCP2515(RXF1SIDL0xC0);//Just?receive?ID=0x7EE?frame?
?????SendByte_MCP2515(RXM0SIDH0xFF);//Mask?register?
?????SendByte_MCP2515(RXM0SIDL0xE0);?
????//Configurate?TXB0‘s?ID?and?DLC?registers?
????SendByte_MCP2515(TXB0SIDH0xFF);//Standard?ID?
????SendByte_MCP2515(TXB0SIDL0xE0);//Standard?ID?
????SendByte_MCP2515(TXB0DLCDLC_1);//DLC?
?????/*Set?the?RXB0?or?RXB1?interrupt?enableling*/?
//????SendByte_MCP2515(CANINTERX0IE);//Enable?RXB0?interrupt
?????SendByte_MCP2515(CANCTRLREQOP_NORMAL?|?CLKOUT_ENABLED);//Go?into?the?normal?mode?
??????dummy=ReadByte_MCP2515(CANSTAT);?
????????if?(OPMODE_NORMAL?!=?(dummy?&?0xE0))?
??????????SendByte_MCP2515(CANCTRLREQOP_NORMAL?|?CLKOUT
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-08-08?22:32??CAN_MCP2515_fpga\
?????文件????????3078??2018-05-21?23:37??CAN_MCP2515_fpga\CAN_SPI_TR.v
?????文件????????2898??2018-04-22?10:53??CAN_MCP2515_fpga\CAN_SPI_TR.v.bak
?????文件???????48696??2018-05-24?23:52??CAN_MCP2515_fpga\CAN_TR.v
?????文件???????27203??2018-04-22?12:47??CAN_MCP2515_fpga\CAN_TR.v.bak
?????目錄???????????0??2018-10-23?19:16??CAN_MCP2515_fpga\db\
?????文件?????????206??2018-07-17?22:05??CAN_MCP2515_fpga\db\.cmp.kpt
?????文件??????269110??2018-04-27?15:20??CAN_MCP2515_fpga\db\altsyncram_0324.tdf
?????文件??????270198??2018-04-26?21:13??CAN_MCP2515_fpga\db\altsyncram_1324.tdf
?????文件??????232118??2018-04-26?21:08??CAN_MCP2515_fpga\db\altsyncram_3324.tdf
?????文件??????185328??2018-04-25?21:18??CAN_MCP2515_fpga\db\altsyncram_5324.tdf
?????文件??????203830??2018-04-26?22:44??CAN_MCP2515_fpga\db\altsyncram_6324.tdf
?????文件??????204918??2018-04-27?13:57??CAN_MCP2515_fpga\db\altsyncram_7324.tdf
?????文件??????312630??2018-04-28?14:24??CAN_MCP2515_fpga\db\altsyncram_8324.tdf
?????文件??????151607??2018-05-27?23:42??CAN_MCP2515_fpga\db\altsyncram_8424.tdf
?????文件??????264758??2018-04-27?15:13??CAN_MCP2515_fpga\db\altsyncram_9324.tdf
?????文件??????432310??2018-05-05?19:58??CAN_MCP2515_fpga\db\altsyncram_b324.tdf
?????文件??????199472??2018-04-26?20:15??CAN_MCP2515_fpga\db\altsyncram_d324.tdf
?????文件??????286518??2018-04-28?08:43??CAN_MCP2515_fpga\db\altsyncram_e324.tdf
?????文件??????425782??2018-05-05?12:06??CAN_MCP2515_fpga\db\altsyncram_h324.tdf
?????文件??????136368??2018-04-25?22:27??CAN_MCP2515_fpga\db\altsyncram_j224.tdf
?????文件??????417078??2018-05-04?21:20??CAN_MCP2515_fpga\db\altsyncram_j324.tdf
?????文件??????432311??2018-05-26?09:44??CAN_MCP2515_fpga\db\altsyncram_k424.tdf
?????文件??????265846??2018-04-27?15:03??CAN_MCP2515_fpga\db\altsyncram_p224.tdf
?????文件??????130928??2018-04-25?20:23??CAN_MCP2515_fpga\db\altsyncram_r224.tdf
?????文件??????239728??2018-04-26?20:41??CAN_MCP2515_fpga\db\altsyncram_t224.tdf
?????文件??????142896??2018-04-25?22:24??CAN_MCP2515_fpga\db\altsyncram_v224.tdf
?????文件????????4343??2018-04-25?21:08??CAN_MCP2515_fpga\db\alt_pll1_altpll.v
?????文件????????1683??2018-04-25?20:23??CAN_MCP2515_fpga\db\cmpr_efc.tdf
?????文件????????2005??2018-04-25?20:23??CAN_MCP2515_fpga\db\cmpr_ifc.tdf
?????文件????????2164??2018-04-25?20:23??CAN_MCP2515_fpga\db\cmpr_kfc.tdf
............此處省略113個文件信息
- 上一篇:verilog語言教程
- 下一篇:把玩鏈接器(iOS分享)
評論
共有 條評論