📄 mcp2515.h
字号:
/****************************************************************************/
/* Purpose: Register definition for the MCP2510/MCP2515 CAN Controller */
/* Version: 1.0 */
/* Author: Yangrufeng */
/* Date: 4.6.2005 */
/* www: www.microcontroller-starterkits.de */
/* email: */
/* Software: ICCAVR */
/* Hardware: ATMega16 */
/****************************************************************************/
/****************** Port defintions ATMega128Evoboard ***********************/
#define HW_SPI PORTB
#define DDR_SPI DDRB
#define CS_CAN 2
/****************** SPI values **********************************************/
#define WRITE_MCP 0x02
#define READ_MCP 0x03
#define RESET_MCP 0xC0
#define RTS 0x80
#define READ_STAT 0xA0
#define BIT_MODIFY 0x05
/****************** Register ************************************************/
#define RXF0SIDH 0x00
#define RXF0SIDL 0x01
#define RXF0EID8 0x02
#define RXF0EID0 0x03
#define RXF1SIDH 0x04
#define RXF1SIDL 0x05
#define RXF1EID8 0x06
#define RXF1EID0 0x07
#define RXF2SIDH 0x08
#define RXF2SIDL 0x09
#define RXF2EID8 0x0A
#define RXF2EID0 0x0B
#define BFPCTRL 0x0C
#define TXRTSCTRL 0x0D
#define CANSTAT 0x0E
#define CANCTRL 0x0F
#define RXF3SIDH 0x10
#define RXF3SIDL 0x11
#define RXF3EID8 0x12
#define RXF3EID0 0x13
#define RXF4SIDH 0x14
#define RXF4SIDL 0x15
#define RXF4EID8 0x16
#define RXF4EID0 0x17
#define RXF5SIDH 0x18
#define RXF5SIDL 0x19
#define RXF5EID8 0x1A
#define RXF5EID0 0x1B
#define TEC 0x1C
#define REC 0x1D
#define RXM0SIDH 0x20
#define RXM0SIDL 0x21
#define RXM0EID8 0x22
#define RXM0EID0 0x23
#define RXM1SIDH 0x24
#define RXM1SIDL 0x25
#define RXM1EID8 0x26
#define RXM1EID0 0x27
#define CNF3 0x28
#define CNF2 0x29
#define CNF1 0x2A
#define CANINTE 0x2B
#define CANINTF 0x2C
#define EFLG 0x2D
#define TXB0CTRL 0x30
#define TXB0SIDH 0x31
#define TXB0SIDL 0x32
#define TXB0EID8 0x33
#define TXB0EID0 0x34
#define TXB0DLC 0x35
#define TXB0D0 0x36
#define TXB0D1 0x37
#define TXB0D2 0x38
#define TXB0D3 0x39
#define TXB0D4 0x3A
#define TXB0D5 0x3B
#define TXB0D6 0x3C
#define TXB0D7 0x3D
#define TXB1CTRL 0x40
#define TXB1SIDH 0x41
#define TXB1SIDL 0x42
#define TXB1EID8 0x43
#define TXB1EID0 0x44
#define TXB1DLC 0x45
#define TXB1D0 0x46
#define TXB1D1 0x47
#define TXB1D2 0x48
#define TXB1D3 0x49
#define TXB1D4 0x4A
#define TXB1D5 0x4B
#define TXB1D6 0x4C
#define TXB1D7 0x4D
#define TXB2CTRL 0x50
#define TXB2SIDH 0x51
#define TXB2SIDL 0x52
#define TXB2EID8 0x53
#define TXB2EID0 0x54
#define TXB2DLC 0x55
#define TXB2D0 0x56
#define TXB2D1 0x57
#define TXB2D2 0x58
#define TXB2D3 0x59
#define TXB2D4 0x5A
#define TXB2D5 0x5B
#define TXB2D6 0x5C
#define TXB2D7 0x5D
#define RXB0CTRL 0x60
#define RXB0SIDH 0x61
#define RXB0SIDL 0x62
#define RXB0EID8 0x63
#define RXB0EID0 0x64
#define RXB0DLC 0x65
#define RXB0D0 0x66
#define RXB0D1 0x67
#define RXB0D2 0x68
#define RXB0D3 0x69
#define RXB0D4 0x6A
#define RXB0D5 0x6B
#define RXB0D6 0x6C
#define RXB0D7 0x6D
#define RXB1CTRL 0x70
#define RXB1SIDH 0x71
#define RXB1SIDL 0x72
#define RXB1EID8 0x73
#define RXB1EID0 0x74
#define RXB1DLC 0x75
#define RXB1D0 0x76
#define RXB1D1 0x77
#define RXB1D2 0x78
#define RXB1D3 0x79
#define RXB1D4 0x7A
#define RXB1D5 0x7B
#define RXB1D6 0x7C
#define RXB1D7 0x7D
/****************** Bit defintions ******************************************/
// Register BFPCTRL
#define B1BFS 0x5
#define B0BFS 0x4
#define B1BFE 0x3
#define B0BFE 0x2
#define B1BFM 0x1
#define B0BFM 0x0
// Register TXRTSCTRL
#define B2RTS 0x5
#define B1RTS 0x4
#define B0RTS 0x3
#define B2RTSM 0x2
#define B1RTSM 0x1
#define B0RTSM 0x0
// Register CANSTAT
#define OPMOD2 0x7
#define OPMOD1 0x6
#define OPMOD0 0x5
#define ICOD2 0x3
#define ICOD1 0x2
#define ICOD0 0x1
// Register CANCTRL
#define REQOP2 0x7
#define REQOP1 0x6
#define REQOP0 0x5
#define ABAT 0x4
#define CLKEN 0x2
#define CLKPRE1 0x1
#define CLKPRE0 0x0
// Register CNF3
#define WAKFIL 0x6
#define PHSEG22 0x2
#define PHSEG21 0x1
#define PHSEG20 0x0
// Register CNF2
#define BTLMODE 0x7
#define SAM 0x6
#define PHSEG12 0x5
#define PHSEG11 0x4
#define PHSEG10 0x3
#define PRSEG2 0x2
#define PRSEG1 0x1
#define PRSEG0 0x0
// Register CNF1
#define SJW1 0x7
#define SJW0 0x6
#define BRP5 0x5
#define BRP4 0x4
#define BRP3 0x3
#define BRP2 0x2
#define BRP1 0x1
#define BRP0 0x0
// Register CANINTE
#define MERRE 0x7
#define WAKIE 0x6
#define ERRIE 0x5
#define TX2IE 0x4
#define TX1IE 0x3
#define TX0IE 0x2
#define RX1IE 0x1
#define RX0IE 0x0
// Register CANINTF
#define MERRF 0x7
#define WAKIF 0x6
#define ERRIF 0x5
#define TX2IF 0x4
#define TX1IF 0x3
#define TX0IF 0x2
#define RX1IF 0x1
#define RX0IF 0x0
// Register EFLG
#define RX1OVR 0x7
#define RX0OVR 0x6
#define TXBO 0x5
#define TXEP 0x4
#define RXEP 0x3
#define TXWAR 0x2
#define RXWAR 0x1
#define EWARN 0x0
// Register TXB0CTRL, TXB1CTRL, TXB2CTRL
#define ABTF 0x6
#define MLOA 0x5
#define TXERR 0x4
#define TXREQ 0x3
#define TXP1 0x1
#define TXP0 0x0
// Register RXB0CTRL
#define RXM1 0x6
#define RXM0 0x5
#define RXRTR 0x3
#define BUKT 0x2
#define BUKT1 0x1
#define FILHIT0 0x0
// Register RXB1CTRL
#define FILHIT2 0x2
#define FILHIT1 0x1
#define FILHIT0 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -