⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gt2510.h

📁 MCP2510的CAN控制器程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/***************************************************************************/
/*                     MCP2510 Driver(MSP430X147) H-File                   */
/***************************************************************************/

#ifndef _2510_H
#define _2510_H

	#include"gtconst.h"
	
	#define CANBAUD_10K		0
	#define CANBAUD_20K		1
	#define CANBAUD_50K		2
	#define CANBAUD_100K	3
	#define CANBAUD_200K	4
	#define CANBAUD_250K	5
	#define CANBAUD_500K	6
	#define CANBAUD_800K	7
	#define CANBAUD_1000K	8	

	extern void vInitMcp(unsigned char cbaudindex);
	extern void vDelayTime(unsigned int itime);
	extern void vResetMcp(void);
	extern unsigned char cReadMcpReg(unsigned char address);
	extern unsigned char cReadMcpStatus(void);
	extern void vWriteMcpReg(unsigned char address, unsigned char spidata);
	extern void vRTSMcp(unsigned char TxBuff);
	extern void vDelayTime(unsigned int itime);
	extern unsigned char cSimSPIRead(void);
	extern void vSimSPIWrite(unsigned char cbyte);
	extern BOOL bMcp2510Tx(unsigned long lcanid, unsigned char *cbytes);
	extern BOOL bMcp2510Rx(unsigned long *lcanid, unsigned char *cbytes);
	
	#define MCPBAUD_10K_CNF1	0X31
	#define MCPBAUD_10K_CNF2	0XED
	#define MCPBAUD_10K_CNF3	0X02

	#define MCPBAUD_20K_CNF1	0X18
	#define MCPBAUD_20K_CNF2	0XED
	#define MCPBAUD_20K_CNF3	0X02

	#define MCPBAUD_50K_CNF1	0X09
	#define MCPBAUD_50K_CNF2	0XED
	#define MCPBAUD_50K_CNF3	0X02

	#define MCPBAUD_100K_CNF1	0X03
	#define MCPBAUD_100K_CNF2	0XAD
	#define MCPBAUD_100K_CNF3	0X02

	#define MCPBAUD_200K_CNF1	0X02
	#define MCPBAUD_200K_CNF2	0XAD
	#define MCPBAUD_200K_CNF3	0X02

	#define MCPBAUD_250K_CNF1	0X01
	#define MCPBAUD_250K_CNF2	0XAD
	#define MCPBAUD_250K_CNF3	0X02

	#define MCPBAUD_500K_CNF1	0X00
	#define MCPBAUD_500K_CNF2	0XAD
	#define MCPBAUD_500K_CNF3	0X02

	#define MCPBAUD_800K_CNF1	0X00
	#define MCPBAUD_800K_CNF2	0X92
	#define MCPBAUD_800K_CNF3	0X02

	#define MCPBAUD_1000K_CNF1	0X00
	#define MCPBAUD_1000K_CNF2	0X89
	#define MCPBAUD_1000K_CNF3	0X02

#define MCPCMD_RESET	0XC0//Resets internal registers to default state, set configuration mode.
#define MCPCMD_READ		0X03//Read data from register beginning at selected address.
#define MCPCMD_WRITE	0X02//Write data to register beginning at selected address.
#define MCPCMD_RTS		0X80//Begin transmission for the transmit buffers.
#define MCPCMD_RDSTATUS	0XA0//read status

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXB0CTRL	0X30//TRANSMIT BUFFER 0 CONTROL REGISTER
#define MCPREG_TXB1CTRL	0X40//TRANSMIT BUFFER 1 CONTROL REGISTER
#define MCPREG_TXB2CTRL	0X50//TRANSMIT BUFFER 2 CONTROL REGISTER

#define TBCBIT_ABTF		0X40//1 = Message was aborted
                            //0 = transmission successfully
#define TBCBIT_MLOA		0X20//1 = Message lost arbitration while being sent
                            //0 = not lose
#define TBCBIT_TXERR	0X10//1 = A bus error occurred while being transmitted,
                            //0 = No bus error
#define TBCBIT_TXREQ	0X08//1 = Buffer is currently pending transmission
                            //(MCU sets this bit to request message be transmitted - bit is
                            // automatically cleared when the message is sent)
                            // 0 = Buffer is not currently pending transmission
                            //(MCU can clear this bit to request a message abort)
#define TBCBITS_TXPHIGH	0X03//Transmit Buffer Priority, 11 = Highest Message Priority
#define TBCBITS_TXPMHIGH 0X02//Transmit Buffer Priority, 10 = High Intermediate Message Priority
#define TBCBITS_TXPMLOW	0X01//Transmit Buffer Priority, 11 = Low Intermediate Message Priority
#define TBCBITS_TXPLOW	0X00//Transmit Buffer Priority, 00 = Lowest Message Priority

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXRTS	0X0D//TX0-2RTS PIN CONTROL AND STATUS REGISTER
#define TRCBIT_B2RTS	0X20//Reads state of TX2RTS pin when in Digital Input mode
                            //Reads as '0' when pin is in 'request-to-send' mode
#define TRCBIT_B1RTS	0X10//Reads state of TX1RTS pin when in Digital Input mode
                            //Reads as '0' when pin is in 'request-to-send' mode
#define TRCBIT_B0RTS	0X08//Reads state of TX0RTS pin when in Digital Input mode
                            //Reads as '0' when pin is in 'request-to-send' mode
#define TRCBIT_B2RTSM	0X04//1 = Pin is used to request message transmission of TXB2 buffer (on falling edge)
                            //0 = Digital input
#define TRCBIT_B1RTSM	0X02//1 = Pin is used to request message transmission of TXB1 buffer (on falling edge)
                            //0 = Digital input
#define TRCBIT_B0RTSM	0X01//1 = Pin is used to request message transmission of TXB0 buffer (on falling edge)
                            //0 = Digital input

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXB0SIDH 0X31//TXBnSIDL - TRANSMIT BUFFER 0 STANDARD IDENTIFIER HIGH, Bit3 - Bit10
#define MCPREG_TXB1SIDH 0X41//TXBnSIDL - TRANSMIT BUFFER 1 STANDARD IDENTIFIER HIGH, Bit3 - Bit10
#define MCPREG_TXB2SIDH 0X51//TXBnSIDL - TRANSMIT BUFFER 2 STANDARD IDENTIFIER HIGH, Bit3 - Bit10

#define MCPREG_TXB0SIDL 0X32//TXBnSIDL - TRANSMIT BUFFER 0 STANDARD IDENTIFIER LOW, Bit0 - Bit2
#define MCPREG_TXB1SIDL 0X42//TXBnSIDL - TRANSMIT BUFFER 1 STANDARD IDENTIFIER LOW, Bit0 - Bit2
#define MCPREG_TXB2SIDL 0X52//TXBnSIDL - TRANSMIT BUFFER 2 STANDARD IDENTIFIER LOW, Bit0 - Bit2
//bit 7-5 SID<2:0>: Standard Identifier Bits <2:0>
//bit 4 Unimplemented: Reads as '0’
//bit 3 EXIDE: Extended Identifier Enable
//1 = Message will transmit extended identifier
//0 = Message will transmit standard identifier
//bit 2 Unimplemented: Reads as '0’
//bit 1-0 EID<17:16>: Extended Identifier Bits <17:16>

#define TSIDLBITS_EXIDE	0X08//1 = Message will transmit extended identifier
			    //0 = Message will transmit standard identifier

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXB0EID8 0X33//TXBnEID8 - TRANSMIT BUFFER 0 EXTENDED IDENTIFIER HIGH, Bit8 - Bit15
#define MCPREG_TXB1EID8	0X43//TXBnEID8 - TRANSMIT BUFFER 1 EXTENDED IDENTIFIER HIGH, Bit8 - Bit15
#define MCPREG_TXB2EID8 0X53//TXBnEID8 - TRANSMIT BUFFER 2 EXTENDED IDENTIFIER HIGH, Bit8 - Bit15

#define MCPREG_TXB0EID0	0X34//TRANSMIT BUFFER 0 EXTENDED IDENTIFIER LOW, Bit0 - Bit7
#define MCPREG_TXB1EID0	0X44//TRANSMIT BUFFER 1 EXTENDED IDENTIFIER LOW, Bit0 - Bit7
#define MCPREG_TXB2EID0	0X54//TRANSMIT BUFFER 2 EXTENDED IDENTIFIER LOW, Bit0 - Bit7

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXB0DLC	0X35//TRANSMIT BUFFER 0 DATA LENGTH CODE
#define MCPREG_TXB1DLC	0X45//TRANSMIT BUFFER 0 DATA LENGTH CODE
#define MCPREG_TXB2DLC	0X45//TRANSMIT BUFFER 0 DATA LENGTH CODE

#define TDLCBIT_RTR	0X40//Remote Transmission Request Bit
                            //1 = Transmitted Message will be a Remote Transmit Request
                            //0 = Transmitted Message will be a Data Frame
#define TDLCBIT_LEN8    0X08//Data Length Code
                            //Sets the number of data bytes to be transmitted (0 to 8 bytes)

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_TXB0D0	0X36//TRANSMIT BUFFER 0 DATA BYTE 0
#define MCPREG_TXB0D1	0X37//TRANSMIT BUFFER 0 DATA BYTE 1
#define MCPREG_TXB0D2	0X38//TRANSMIT BUFFER 0 DATA BYTE 2
#define MCPREG_TXB0D3	0X39//TRANSMIT BUFFER 0 DATA BYTE 3
#define MCPREG_TXB0D4	0X3A//TRANSMIT BUFFER 0 DATA BYTE 4
#define MCPREG_TXB0D5	0X3B//TRANSMIT BUFFER 0 DATA BYTE 5
#define MCPREG_TXB0D6	0X3C//TRANSMIT BUFFER 0 DATA BYTE 6
#define MCPREG_TXB0D7	0X3D//TRANSMIT BUFFER 0 DATA BYTE 7

#define MCPREG_TXB1D0	0X46//TRANSMIT BUFFER 1 DATA BYTE 0
#define MCPREG_TXB1D1	0X47//TRANSMIT BUFFER 1 DATA BYTE 1
#define MCPREG_TXB1D2	0X48//TRANSMIT BUFFER 1 DATA BYTE 2
#define MCPREG_TXB1D3	0X49//TRANSMIT BUFFER 1 DATA BYTE 3
#define MCPREG_TXB1D4	0X4A//TRANSMIT BUFFER 1 DATA BYTE 4
#define MCPREG_TXB1D5	0X4B//TRANSMIT BUFFER 1 DATA BYTE 5
#define MCPREG_TXB1D6	0X4C//TRANSMIT BUFFER 1 DATA BYTE 6
#define MCPREG_TXB1D7	0X4D//TRANSMIT BUFFER 1 DATA BYTE 7

#define MCPREG_TXB2D0	0X56//TRANSMIT BUFFER 2 DATA BYTE 0
#define MCPREG_TXB2D1	0X57//TRANSMIT BUFFER 2 DATA BYTE 1
#define MCPREG_TXB2D2	0X58//TRANSMIT BUFFER 2 DATA BYTE 2
#define MCPREG_TXB2D3	0X59//TRANSMIT BUFFER 2 DATA BYTE 3
#define MCPREG_TXB2D4	0X5A//TRANSMIT BUFFER 2 DATA BYTE 4
#define MCPREG_TXB2D5	0X5B//TRANSMIT BUFFER 2 DATA BYTE 5
#define MCPREG_TXB2D6	0X5C//TRANSMIT BUFFER 2 DATA BYTE 6
#define MCPREG_TXB2D7	0X5D//TRANSMIT BUFFER 2 DATA BYTE 7

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_RXB0CTRL	0X60//RXB0CTRL - RECEIVE BUFFER 0 CONTROL

#define RB0CBITS_RXALL	0X60//11 = Turn mask/filters off; receive any message
//#define --	0X40//10 = Rx only valid messages with extended 
                            //identifiers that meet filter criteria
#define RB0CBITS_RXSF	0X20//01 = Rx only valid messages with 
                             //standard identifiers that meet filter criteria
#define RB0CBITS_RXAF	0X00//00 = Rx all valid messages using 
                            //either standard or extended identifiers that meet filter criteria
#define RB0CBITS_RXRTR	0X08//Received Remote Transfer Request
                            //1 = Remote Transfer Request Received
                            //0 = No Remote Transfer Request Received
#define RB0CBITS_BUKT	0X04//Rollover Enable
                            //1 = RXB0 message will rollover and be written to RXB1 if RXB0 is full
                            //0 = Rollover disabled
#define RB0CBITS_BUKTBK	0X02//Read Only Copy of BUKT Bit (used internally by the MCP2515)
#define RB0CBITS_FILTIT0 0X01//Filter Hit - indicates which acceptance filter enabled reception of message
                            //1 = Acceptance Filter 1 (RXF1)
                            //0 = Acceptance Filter 0 (RXF0)
                            
/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_RXB1CTRL	0X70//RXB0CTRL - RECEIVE BUFFER 0 CONTROL

#define RB0CBITS_RXALL	0X60//11 = Turn mask/filters off; receive any message
#define RB0CBITS_RXEF	0X40//10 = Rx only valid messages with extended 
                            //identifiers that meet filter criteria
#define RB0CBITS_RXSF	0X20//01 = Rx only valid messages with 
                             //standard identifiers that meet filter criteria
#define RB0CBITS_RXAF	0X00//00 = Rx all valid messages using 
                            //either standard or extended identifiers that meet filter criteria
#define RB0CBITS_RXRTR	0X08//Received Remote Transfer Request
                            //1 = Remote Transfer Request Received
                            //0 = No Remote Transfer Request Received
#define RB0CBITS_BUKT	0X04//Rollover Enable
                            //1 = RXB0 message will rollover and be written to RXB1 if RXB0 is full
                            //0 = Rollover disabled
#define RB0CBITS_BUKTBK	0X02//Read Only Copy of BUKT Bit (used internally by the MCP2515)
#define RB0CBITS_FILTIT0 0X01//Filter Hit - indicates which acceptance filter enabled reception of message
                            //1 = Acceptance Filter 1 (RXF1)
                            //0 = Acceptance Filter 0 (RXF0)

/////////////////////////////////////////////////////////////////////////////////////
#define MCPREG_BFPCTRL      0X0C//RXnBF PIN CONTROL AND STATUS

#define BFPCTRLBIT_B1BFS    0X20//RX1BF Pin State (digital output mode only)
                                //Reads as '0' when RX1BF is configured as interrupt pin
#define BFPCTRLBIT_B0BFS    0X10//RX0BF Pin State (digital output mode only)
                                //Reads as '0' when RX0BF is configured as interrupt pin
#define BFPCTRLBIT_B1BFE    0X08//RX1BF Pin Function Enable
                                //1 = Pin function enabled, operation mode determined by B1BFM bit
                                //0 = Pin function disabled, pin goes to high-impedance state
#define BFPCTRLBIT_B0BFE    0X04//RX0BF Pin Function Enable
                                //1 = Pin function enabled, operation mode determined by B0BFM bit
                                //0 = Pin Function disabled, pin goes to high-impedance state
#define BFPCTRLBIT_B1BFM    0X02//RX1BF Pin Operation Mode
                                //1 = Pin is used as interrupt when valid message loaded into RXB1
                                //0 = Digital output mode
#define BFPCTRLBITS_B0BFM   0X01//RX0BF Pin Operation Mode
                                //1 = Pin is used as interrupt when valid message loaded into RXB0
                                //0 = Digital output mode
#define MCPREG_RXB0SIDH     0X61//RECEIVE BUFFER 0 STANDARD IDENTIFIER HIGH
#define MCPREG_RXB1SIDH     0X71//RECEIVE BUFFER 1 STANDARD IDENTIFIER HIGH

#define MCPREG_RXB0SIDL     0X62//RECEIVE BUFFER 0 STANDARD IDENTIFIER LOW
#define MCPREG_RXB1SIDL     0X72//RECEIVE BUFFER 1 STANDARD IDENTIFIER LOW

#define RXBSIDLBITS_SID3    0XE0//Standard Identifier Bits <2:0>
                               //These bits contain the three least significant bits of 
                               //the Standard Identifier for the received message
                               
#define RXBSIDLBITS_SRR    0X10//Standard Frame Remote Transmit Request Bit (valid only if IDE bit = '0')
                                //1 = Standard Frame Remote Transmit Request Received
                                //0 = Standard Data Frame Received
#define RXBSIDLBIT_IDE     0X08//Extended Identifier Flag
                                //1 = Received message was an Extended Frame
                                //0 = Received message was a Standard Frame
#define RXBSIDLBITS_EID2    0X03//<17:16>: Extended Identifier Bits <17:16>
                                //These bits contain the two most significant bits of 
                                //the Extended Identifier for the received message

#define MCPREG_RXB0EID8     0X63//RECEIVE BUFFER 0 EXTENDED IDENTIFIER HIGH,Extended Identifier Bits <15:8>
#define MCPREG_RXB1EID8     0X73//RECEIVE BUFFER n EXTENDED IDENTIFIER HIGH,Extended Identifier Bits <15:8>

#define MCPREG_RXB0EID0     0x64//RECEIVE BUFFER n EXTENDED IDENTIFIER LOW,Extended Identifier Bits <7:0>
#define MCPREG_RXB0EID1     0x74//RECEIVE BUFFER n EXTENDED IDENTIFIER LOW,Extended Identifier Bits <7:0>

#define MCPREG_RXB0DLC		0X65//RECEIVE BUFFER n DATA LENGHT CODE
#define MCPREG_RXB1DLC		0X75//RECEIVE BUFFER n DATA LENGHT CODE

#define RXBDLCBIT_RTR       0X40//Extended Frame Remote Transmission Request Bit (valid only when RXBnSIDL.IDE = 1)
                                //1 = Extended Frame Remote Transmit Request Received
                                //0 = Extended Data Frame Received
#define RXBDLCBITS_DLC      0X07//bit 3-0 DLC<3:0>: Data Length Code
                                //Indicates number of data bytes that were received
                                
#define MCPREG_RXB0DM_START  0X66//RECEIVE BUFFER n DATA BYTE M
#define MCPREG_RXB1DM_START  0X76//RECEIVE BUFFER n DATA BYTE M

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -