ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
mcp2515_defs.h
Go to the documentation of this file.
1#pragma once
2
3namespace esphome {
4namespace mcp2515 {
5
6static const uint8_t CANCTRL_REQOP = 0xE0;
7static const uint8_t CANCTRL_ABAT = 0x10;
8static const uint8_t CANCTRL_OSM = 0x08;
9static const uint8_t CANCTRL_CLKEN = 0x04;
10static const uint8_t CANCTRL_CLKPRE = 0x03;
11
20
21enum TxbNCtrl : uint8_t {
22 TXB_ABTF = 0x40,
23 TXB_MLOA = 0x20,
24 TXB_TXERR = 0x10,
25 TXB_TXREQ = 0x08,
26 TXB_TXIE = 0x04,
27 TXB_TXP = 0x03
28};
29
47
48enum REGISTER : uint8_t {
75 MCP_TEC = 0x1C,
76 MCP_REC = 0x1D,
85 MCP_CNF3 = 0x28,
86 MCP_CNF2 = 0x29,
87 MCP_CNF1 = 0x2A,
90 MCP_EFLG = 0x2D,
125 MCP_RXB1DATA = 0x76
127
128static const uint8_t CANSTAT_OPMOD = 0xE0;
129static const uint8_t CANSTAT_ICOD = 0x0E;
130
131static const uint8_t CNF3_SOF = 0x80;
132
133// applies to RXBn_SIDL, TXBn_SIDL and RXFn_SIDL
134static const uint8_t SIDL_EXIDE_MASK = 0x08;
135
136static const uint8_t DLC_MASK = 0x0F;
137static const uint8_t RTR_MASK = 0x40;
138
139static const uint8_t RXB_CTRL_RXM_STD = 0x20;
140static const uint8_t RXB_CTRL_RXM_EXT = 0x40;
141static const uint8_t RXB_CTRL_RXM_STDEXT = 0x00;
142static const uint8_t RXB_CTRL_RXM_MASK = 0x60;
143static const uint8_t RXB_CTRL_RTR = 0x08;
144static const uint8_t RXB_0_CTRL_BUKT = 0x04;
145
146static const uint8_t MCP_SIDH = 0;
147static const uint8_t MCP_SIDL = 1;
148static const uint8_t MCP_EID8 = 2;
149static const uint8_t MCP_EID0 = 3;
150static const uint8_t MCP_DLC = 4;
151static const uint8_t MCP_DATA = 5;
152
153/*
154 * Speed 8M
155 */
156static const uint8_t MCP_8MHZ_1000KBPS_CFG1 = 0x00;
157static const uint8_t MCP_8MHZ_1000KBPS_CFG2 = 0x80;
158static const uint8_t MCP_8MHZ_1000KBPS_CFG3 = 0x80;
159
160static const uint8_t MCP_8MHZ_500KBPS_CFG1 = 0x00;
161static const uint8_t MCP_8MHZ_500KBPS_CFG2 = 0x90;
162static const uint8_t MCP_8MHZ_500KBPS_CFG3 = 0x82;
163
164static const uint8_t MCP_8MHZ_250KBPS_CFG1 = 0x00;
165static const uint8_t MCP_8MHZ_250KBPS_CFG2 = 0xB1;
166static const uint8_t MCP_8MHZ_250KBPS_CFG3 = 0x85;
167
168static const uint8_t MCP_8MHZ_200KBPS_CFG1 = 0x00;
169static const uint8_t MCP_8MHZ_200KBPS_CFG2 = 0xB4;
170static const uint8_t MCP_8MHZ_200KBPS_CFG3 = 0x86;
171
172static const uint8_t MCP_8MHZ_125KBPS_CFG1 = 0x01;
173static const uint8_t MCP_8MHZ_125KBPS_CFG2 = 0xB1;
174static const uint8_t MCP_8MHZ_125KBPS_CFG3 = 0x85;
175
176static const uint8_t MCP_8MHZ_100KBPS_CFG1 = 0x01;
177static const uint8_t MCP_8MHZ_100KBPS_CFG2 = 0xB4;
178static const uint8_t MCP_8MHZ_100KBPS_CFG3 = 0x86;
179
180static const uint8_t MCP_8MHZ_80KBPS_CFG1 = 0x01;
181static const uint8_t MCP_8MHZ_80KBPS_CFG2 = 0xBF;
182static const uint8_t MCP_8MHZ_80KBPS_CFG3 = 0x87;
183
184static const uint8_t MCP_8MHZ_50KBPS_CFG1 = 0x03;
185static const uint8_t MCP_8MHZ_50KBPS_CFG2 = 0xB4;
186static const uint8_t MCP_8MHZ_50KBPS_CFG3 = 0x86;
187
188static const uint8_t MCP_8MHZ_40KBPS_CFG1 = 0x03;
189static const uint8_t MCP_8MHZ_40KBPS_CFG2 = 0xBF;
190static const uint8_t MCP_8MHZ_40KBPS_CFG3 = 0x87;
191
192static const uint8_t MCP_8MHZ_33K3BPS_CFG1 = 0x47;
193static const uint8_t MCP_8MHZ_33K3BPS_CFG2 = 0xE2;
194static const uint8_t MCP_8MHZ_33K3BPS_CFG3 = 0x85;
195
196static const uint8_t MCP_8MHZ_31K25BPS_CFG1 = 0x07;
197static const uint8_t MCP_8MHZ_31K25BPS_CFG2 = 0xA4;
198static const uint8_t MCP_8MHZ_31K25BPS_CFG3 = 0x84;
199
200static const uint8_t MCP_8MHZ_20KBPS_CFG1 = 0x07;
201static const uint8_t MCP_8MHZ_20KBPS_CFG2 = 0xBF;
202static const uint8_t MCP_8MHZ_20KBPS_CFG3 = 0x87;
203
204static const uint8_t MCP_8MHZ_10KBPS_CFG1 = 0x0F;
205static const uint8_t MCP_8MHZ_10KBPS_CFG2 = 0xBF;
206static const uint8_t MCP_8MHZ_10KBPS_CFG3 = 0x87;
207
208static const uint8_t MCP_8MHZ_5KBPS_CFG1 = 0x1F;
209static const uint8_t MCP_8MHZ_5KBPS_CFG2 = 0xBF;
210static const uint8_t MCP_8MHZ_5KBPS_CFG3 = 0x87;
211
212/*
213 * Speed 12M
214 */
215
216static const uint8_t MCP_12MHZ_1000KBPS_CFG1 = 0x00;
217static const uint8_t MCP_12MHZ_1000KBPS_CFG2 = 0x88;
218static const uint8_t MCP_12MHZ_1000KBPS_CFG3 = 0x81;
219
220static const uint8_t MCP_12MHZ_500KBPS_CFG1 = 0x00;
221static const uint8_t MCP_12MHZ_500KBPS_CFG2 = 0x9B;
222static const uint8_t MCP_12MHZ_500KBPS_CFG3 = 0x82;
223
224static const uint8_t MCP_12MHZ_250KBPS_CFG1 = 0x01;
225static const uint8_t MCP_12MHZ_250KBPS_CFG2 = 0x9B;
226static const uint8_t MCP_12MHZ_250KBPS_CFG3 = 0x82;
227
228static const uint8_t MCP_12MHZ_200KBPS_CFG1 = 0x01;
229static const uint8_t MCP_12MHZ_200KBPS_CFG2 = 0xA4;
230static const uint8_t MCP_12MHZ_200KBPS_CFG3 = 0x83;
231
232static const uint8_t MCP_12MHZ_125KBPS_CFG1 = 0x03;
233static const uint8_t MCP_12MHZ_125KBPS_CFG2 = 0x9B;
234static const uint8_t MCP_12MHZ_125KBPS_CFG3 = 0x82;
235
236static const uint8_t MCP_12MHZ_100KBPS_CFG1 = 0x03;
237static const uint8_t MCP_12MHZ_100KBPS_CFG2 = 0xA4;
238static const uint8_t MCP_12MHZ_100KBPS_CFG3 = 0x83;
239
240static const uint8_t MCP_12MHZ_80KBPS_CFG1 = 0x04;
241static const uint8_t MCP_12MHZ_80KBPS_CFG2 = 0xA4;
242static const uint8_t MCP_12MHZ_80KBPS_CFG3 = 0x83;
243
244static const uint8_t MCP_12MHZ_50KBPS_CFG1 = 0x07;
245static const uint8_t MCP_12MHZ_50KBPS_CFG2 = 0xA4;
246static const uint8_t MCP_12MHZ_50KBPS_CFG3 = 0x83;
247
248static const uint8_t MCP_12MHZ_40KBPS_CFG1 = 0x09;
249static const uint8_t MCP_12MHZ_40KBPS_CFG2 = 0xA4;
250static const uint8_t MCP_12MHZ_40KBPS_CFG3 = 0x83;
251
252static const uint8_t MCP_12MHZ_33K3BPS_CFG1 = 0x08;
253static const uint8_t MCP_12MHZ_33K3BPS_CFG2 = 0xB6;
254static const uint8_t MCP_12MHZ_33K3BPS_CFG3 = 0x84;
255
256static const uint8_t MCP_12MHZ_20KBPS_CFG1 = 0x0E;
257static const uint8_t MCP_12MHZ_20KBPS_CFG2 = 0xB6;
258static const uint8_t MCP_12MHZ_20KBPS_CFG3 = 0x84;
259
260static const uint8_t MCP_12MHZ_10KBPS_CFG1 = 0x31;
261static const uint8_t MCP_12MHZ_10KBPS_CFG2 = 0x9B;
262static const uint8_t MCP_12MHZ_10KBPS_CFG3 = 0x82;
263
264static const uint8_t MCP_12MHZ_5KBPS_CFG1 = 0x3B;
265static const uint8_t MCP_12MHZ_5KBPS_CFG2 = 0xB6;
266static const uint8_t MCP_12MHZ_5KBPS_CFG3 = 0x84;
267
268/*
269 * speed 16M
270 */
271static const uint8_t MCP_16MHZ_1000KBPS_CFG1 = 0x00;
272static const uint8_t MCP_16MHZ_1000KBPS_CFG2 = 0xD0;
273static const uint8_t MCP_16MHZ_1000KBPS_CFG3 = 0x82;
274
275static const uint8_t MCP_16MHZ_500KBPS_CFG1 = 0x00;
276static const uint8_t MCP_16MHZ_500KBPS_CFG2 = 0xF0;
277static const uint8_t MCP_16MHZ_500KBPS_CFG3 = 0x86;
278
279static const uint8_t MCP_16MHZ_250KBPS_CFG1 = 0x41;
280static const uint8_t MCP_16MHZ_250KBPS_CFG2 = 0xF1;
281static const uint8_t MCP_16MHZ_250KBPS_CFG3 = 0x85;
282
283static const uint8_t MCP_16MHZ_200KBPS_CFG1 = 0x01;
284static const uint8_t MCP_16MHZ_200KBPS_CFG2 = 0xFA;
285static const uint8_t MCP_16MHZ_200KBPS_CFG3 = 0x87;
286
287static const uint8_t MCP_16MHZ_125KBPS_CFG1 = 0x03;
288static const uint8_t MCP_16MHZ_125KBPS_CFG2 = 0xF0;
289static const uint8_t MCP_16MHZ_125KBPS_CFG3 = 0x86;
290
291static const uint8_t MCP_16MHZ_100KBPS_CFG1 = 0x03;
292static const uint8_t MCP_16MHZ_100KBPS_CFG2 = 0xFA;
293static const uint8_t MCP_16MHZ_100KBPS_CFG3 = 0x87;
294
295static const uint8_t MCP_16MHZ_80KBPS_CFG1 = 0x03;
296static const uint8_t MCP_16MHZ_80KBPS_CFG2 = 0xFF;
297static const uint8_t MCP_16MHZ_80KBPS_CFG3 = 0x87;
298
299static const uint8_t MCP_16MHZ_83K3BPS_CFG1 = 0x03;
300static const uint8_t MCP_16MHZ_83K3BPS_CFG2 = 0xBE;
301static const uint8_t MCP_16MHZ_83K3BPS_CFG3 = 0x07;
302
303static const uint8_t MCP_16MHZ_50KBPS_CFG1 = 0x07;
304static const uint8_t MCP_16MHZ_50KBPS_CFG2 = 0xFA;
305static const uint8_t MCP_16MHZ_50KBPS_CFG3 = 0x87;
306
307static const uint8_t MCP_16MHZ_40KBPS_CFG1 = 0x07;
308static const uint8_t MCP_16MHZ_40KBPS_CFG2 = 0xFF;
309static const uint8_t MCP_16MHZ_40KBPS_CFG3 = 0x87;
310
311static const uint8_t MCP_16MHZ_33K3BPS_CFG1 = 0x4E;
312static const uint8_t MCP_16MHZ_33K3BPS_CFG2 = 0xF1;
313static const uint8_t MCP_16MHZ_33K3BPS_CFG3 = 0x85;
314
315static const uint8_t MCP_16MHZ_20KBPS_CFG1 = 0x0F;
316static const uint8_t MCP_16MHZ_20KBPS_CFG2 = 0xFF;
317static const uint8_t MCP_16MHZ_20KBPS_CFG3 = 0x87;
318
319static const uint8_t MCP_16MHZ_10KBPS_CFG1 = 0x1F;
320static const uint8_t MCP_16MHZ_10KBPS_CFG2 = 0xFF;
321static const uint8_t MCP_16MHZ_10KBPS_CFG3 = 0x87;
322
323static const uint8_t MCP_16MHZ_5KBPS_CFG1 = 0x3F;
324static const uint8_t MCP_16MHZ_5KBPS_CFG2 = 0xFF;
325static const uint8_t MCP_16MHZ_5KBPS_CFG3 = 0x87;
326
327/*
328 * speed 20M
329 */
330static const uint8_t MCP_20MHZ_1000KBPS_CFG1 = 0x00;
331static const uint8_t MCP_20MHZ_1000KBPS_CFG2 = 0xD9;
332static const uint8_t MCP_20MHZ_1000KBPS_CFG3 = 0x82;
333
334static const uint8_t MCP_20MHZ_500KBPS_CFG1 = 0x00;
335static const uint8_t MCP_20MHZ_500KBPS_CFG2 = 0xFA;
336static const uint8_t MCP_20MHZ_500KBPS_CFG3 = 0x87;
337
338static const uint8_t MCP_20MHZ_250KBPS_CFG1 = 0x41;
339static const uint8_t MCP_20MHZ_250KBPS_CFG2 = 0xFB;
340static const uint8_t MCP_20MHZ_250KBPS_CFG3 = 0x86;
341
342static const uint8_t MCP_20MHZ_200KBPS_CFG1 = 0x01;
343static const uint8_t MCP_20MHZ_200KBPS_CFG2 = 0xFF;
344static const uint8_t MCP_20MHZ_200KBPS_CFG3 = 0x87;
345
346static const uint8_t MCP_20MHZ_125KBPS_CFG1 = 0x03;
347static const uint8_t MCP_20MHZ_125KBPS_CFG2 = 0xFA;
348static const uint8_t MCP_20MHZ_125KBPS_CFG3 = 0x87;
349
350static const uint8_t MCP_20MHZ_100KBPS_CFG1 = 0x04;
351static const uint8_t MCP_20MHZ_100KBPS_CFG2 = 0xFA;
352static const uint8_t MCP_20MHZ_100KBPS_CFG3 = 0x87;
353
354static const uint8_t MCP_20MHZ_83K3BPS_CFG1 = 0x04;
355static const uint8_t MCP_20MHZ_83K3BPS_CFG2 = 0xFE;
356static const uint8_t MCP_20MHZ_83K3BPS_CFG3 = 0x87;
357
358static const uint8_t MCP_20MHZ_80KBPS_CFG1 = 0x04;
359static const uint8_t MCP_20MHZ_80KBPS_CFG2 = 0xFF;
360static const uint8_t MCP_20MHZ_80KBPS_CFG3 = 0x87;
361
362static const uint8_t MCP_20MHZ_50KBPS_CFG1 = 0x09;
363static const uint8_t MCP_20MHZ_50KBPS_CFG2 = 0xFA;
364static const uint8_t MCP_20MHZ_50KBPS_CFG3 = 0x87;
365
366static const uint8_t MCP_20MHZ_40KBPS_CFG1 = 0x09;
367static const uint8_t MCP_20MHZ_40KBPS_CFG2 = 0xFF;
368static const uint8_t MCP_20MHZ_40KBPS_CFG3 = 0x87;
369
370static const uint8_t MCP_20MHZ_33K3BPS_CFG1 = 0x0B;
371static const uint8_t MCP_20MHZ_33K3BPS_CFG2 = 0xFF;
372static const uint8_t MCP_20MHZ_33K3BPS_CFG3 = 0x87;
373
374} // namespace mcp2515
375} // namespace esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7