TTK4155 Lab Node 1
Term project in the NTNU course TTK4155 Embedded and Industrial Computer Systems Design
Loading...
Searching...
No Matches
mcp.h
Go to the documentation of this file.
1
#ifndef MCP2515_H
2
#define MCP2515_H
3
4
#define MCP2515_RXF0SIDH 0x00
5
#define MCP2515_RXF0SIDL 0x01
6
#define MCP2515_RXF0EID8 0x02
7
#define MCP2515_RXF0EID0 0x03
8
#define MCP2515_RXF1SIDH 0x04
9
#define MCP2515_RXF1SIDL 0x05
10
#define MCP2515_RXF1EID8 0x06
11
#define MCP2515_RXF1EID0 0x07
12
#define MCP2515_RXF2SIDH 0x08
13
#define MCP2515_RXF2SIDL 0x09
14
#define MCP2515_RXF2EID8 0x0A
15
#define MCP2515_RXF2EID0 0x0B
16
#define MCP2515_CANSTAT 0x0E
17
#define MCP2515_CANCTRL 0x0F
18
#define MCP2515_RXF3SIDH 0x10
19
#define MCP2515_RXF3SIDL 0x11
20
#define MCP2515_RXF3EID8 0x12
21
#define MCP2515_RXF3EID0 0x13
22
#define MCP2515_RXF4SIDH 0x14
23
#define MCP2515_RXF4SIDL 0x15
24
#define MCP2515_RXF4EID8 0x16
25
#define MCP2515_RXF4EID0 0x17
26
#define MCP2515_RXF5SIDH 0x18
27
#define MCP2515_RXF5SIDL 0x19
28
#define MCP2515_RXF5EID8 0x1A
29
#define MCP2515_RXF5EID0 0x1B
30
#define MCP2515_TEC 0x1C
31
#define MCP2515_REC 0x1D
32
#define MCP2515_RXM0SIDH 0x20
33
#define MCP2515_RXM0SIDL 0x21
34
#define MCP2515_RXM0EID8 0x22
35
#define MCP2515_RXM0EID0 0x23
36
#define MCP2515_RXM1SIDH 0x24
37
#define MCP2515_RXM1SIDL 0x25
38
#define MCP2515_RXM1EID8 0x26
39
#define MCP2515_RXM1EID0 0x27
40
#define MCP2515_CNF3 0x28
41
#define MCP2515_CNF2 0x29
42
#define MCP2515_CNF1 0x2A
43
#define MCP2515_CANINTE 0x2B
44
#define MCP2515_CANINTF 0x2C
45
#define MCP2515_EFLG 0x2D
46
#define MCP2515_TXB0CTRL 0x30
47
#define MCP2515_TXB1CTRL 0x40
48
#define MCP2515_TXB2CTRL 0x50
49
#define MCP2515_RXB0CTRL 0x60
50
#define MCP2515_RXB0SIDH 0x61
51
#define MCP2515_RXB0SIDL 0x62
52
#define MCP2515_RXB0DLC 0x65
53
#define MCP2515_RXB1CTRL 0x70
54
#define MCP2515_RXB1SIDH 0x71
55
#define MCP2515_RXB1SIDL 0x72
56
#define MCP2515_TXB0EID0 0x34
57
#define MCP2515_RXB1DLC 0x75
58
#define MCP2515_RXB1D0 0x76
59
60
61
#define MCP2515_TX_IRQ 0x1C
// EN IRQ on transmit
62
#define MCP2515_TX01_IRQ 0x0C
// EN TXB0 and TXB1 IRQ
63
#define MCP2515_RX_IRQ 0x03
// EN RX IRQ
64
#define MCP2515_NO_IRQ 0x00
// Disable all IRQ
65
66
#define MCP2515_TX01_MASK 0x14
67
#define MCP2515_TX_MASK 0x54
68
69
// SPI commands
70
#define MCP2515_WRITE 0x02
71
72
#define MCP2515_READ 0x03
73
74
#define MCP2515_BITMOD 0x05
75
76
#define MCP2515_LOAD_TX0 0x40
77
#define MCP2515_LOAD_TX1 0x42
78
#define MCP2515_LOAD_TX2 0x44
79
80
#define MCP2515_RTS_TX0 0x81
81
#define MCP2515_RTS_TX1 0x82
82
#define MCP2515_RTS_TX2 0x84
83
#define MCP2515_RTS_ALL 0x87
84
85
#define MCP2515_READ_RX0 0x90
86
#define MCP2515_READ_RX1 0x94
87
88
#define MCP2515_READ_STATUS 0xA0
89
90
#define MCP2515_RX_STATUS 0xB0
91
92
#define MCP2515_RESET 0xC0
93
94
#define MCP2515_TXRTS_CONF 0x07
95
96
//Setting for 500kb/s
97
#define MCP2515_BRP 0x03
98
#define MCP2515_VAL_CNF1 0x03
// BRP=0, SJW=1 TQ // Change this t 0x00 for 1Mbps 0x01 for 250kbps, and 0x03 for 125kbps
99
#define MCP2515_VAL_CNF2 0xB1
// BTLMODE=1, PHSEG1=8 TQ, PRSEG=3 TQ
100
#define MCP2515_VAL_CNF3 0x05
101
102
// CANCTRL Register
103
#define MODE_NORMAL 0x00
104
#define MODE_SLEEP 0x20
105
#define MODE_LOOPBACK 0x40
106
#define MODE_LISTENONLY 0x60
107
#define MODE_CONFIG 0x80
108
#define MODE_POWERUP 0xE0
109
#define MODE_MASK 0xE0
110
#define ABORT_TX 0x10
111
#define MODE_ONESHOT 0x08
112
#define CLKOUT_ENABLE 0x04
113
#define CLKOUT_DISABLE 0x00
114
#define CLKOUT_PS1 0x00
115
#define CLKOUT_PS2 0x01
116
#define CLKOUT_PS4 0x02
117
#define CLKOUT_PS8 0x03
118
119
120
// CNF1 Register
121
#define SJW1 0x00
122
#define SJW2 0x40
123
#define SJW3 0x80
124
#define SJW4 0xC0
125
126
127
// CNF2 Register
128
#define BTLMODE 0x80
129
#define SAMPLE_1X 0x00
130
#define SAMPLE_3X 0x40
131
132
133
// CNF3 Register
134
#define SOF_ENABLE 0x80
135
#define SOF_DISABLE 0x00
136
#define WAKFIL_ENABLE 0x40
137
#define WAKFIL_DISABLE 0x00
138
139
140
// CANINTF Register Bits
141
#define MCP2515_RX0IF 0x01
142
#define MCP2515_RX1IF 0x02
143
#define MCP2515_TX0IF 0x04
144
#define MCP2515_TX1IF 0x08
145
#define MCP2515_TX2IF 0x10
146
#define MCP2515_ERRIF 0x20
147
#define MCP2515_WAKIF 0x40
148
#define MCP2515_MERRF 0x80
149
150
// TXnRTS config register
151
#define MCP2515_TXRTSCTRL 0x0D
152
153
// CAN transmit buffer 0 message ID and message length registers
154
#define MCP2515_TXB0SIDH 0x31
155
#define MCP2515_TXB0SIDL 0x32
156
#define MCP2515_TXB0EID8 0x33
157
158
// CAN transmit buffer 0 message registers
159
#define MCP2515_TXB0D0 0x36
160
161
// CAN receive buffer 0 message registers
162
#define MCP2515_RXB0D0 0x66
163
164
// CAN read status bits
165
#define rx_buff_0_full 0x01
166
#define rx_buff_1_full 0x02
167
#define tx_buff_0_busy 0x04
168
#define tx_buff_0_empty 0x08
169
#define tx_buff_1_busy 0x10
170
#define tx_buff_1_empty 0x20
171
#define tx_buff_2_busy 0x40
172
#define tx_buff_2_empty 0x80
173
174
// CAN Transmit Buffer Data Length Code
175
#define TXB0DLC 0x35
176
177
#define CAN_INTERRUPT_ISR_REGISTER INT2
178
#define CAN_INTERRUPT_PIN PE0
179
180
181
#endif
/* MCP2515_H */
include
mcp.h
Generated by
1.15.0