📄 gt2510.h
字号:
/***************************************************************************/
/* 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 + -