Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
Main Page
Related Pages
Supported Boards
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Enumerations
Data Structures
Data Structures
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
w
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerator
Related Symbols
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
n
p
q
r
s
t
u
v
w
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
►
RIOT OS
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
enc28j60_regs.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Freie Universität Berlin
3
*
4
* This file is subject to the terms and conditions of the GNU Lesser
5
* General Public License v2.1. See the file LICENSE in the top level
6
* directory for more details.
7
*/
8
19
#ifndef ENC28J60_REGS_H
20
#define ENC28J60_REGS_H
21
22
#ifdef __cplusplus
23
extern
"C"
{
24
#endif
25
30
#define CMD_RCR 0x00
/* read control register */
31
#define CMD_RBM 0x3a
/* read buffer memory */
32
#define CMD_WCR 0x40
/* write control register */
33
#define CMD_WBM 0x7a
/* write buffer memory */
34
#define CMD_BFS 0x80
/* bit field set */
35
#define CMD_BFC 0xa0
/* bit field clear */
36
#define CMD_SRC 0xff
/* system reset command (soft reset) */
43
#define ADDR_READ_PTR 0x00
44
#define ADDR_WRITE_PTR 0x02
45
#define ADDR_TX_START 0x04
46
#define ADDR_TX_END 0x06
47
#define ADDR_RX_START 0x08
48
#define ADDR_RX_END 0x0a
49
#define ADDR_RX_READ 0x0c
50
#define ADDR_RX_WRITE 0x0e
57
#define REG_EIE 0x1b
58
#define REG_EIR 0x1c
59
#define REG_ESTAT 0x1d
60
#define REG_ECON2 0x1e
61
#define REG_ECON1 0x1f
68
#define REG_B0_ERDPTL 0x00
/* read data pointer - low byte */
69
#define REG_B0_ERDPTH 0x01
/* read data pointer - high byte */
70
#define REG_B0_EWRPTL 0x02
/* write data pointer - low byte */
71
#define REG_B0_EWRPTH 0x03
/* write data pointer - high byte */
72
#define REG_B0_ETXSTL 0x04
/* TX start pointer - low byte */
73
#define REG_B0_ETXSTH 0x05
/* TX start pointer - high byte */
74
#define REG_B0_ETXNDL 0x06
/* TX end pointer - low byte */
75
#define REG_B0_ETXNDH 0x07
/* TX end pointer - high byte */
76
#define REG_B0_ERXSTL 0x08
/* RX start pointer - low byte */
77
#define REG_B0_ERXSTH 0x09
/* RX start pointer - high byte */
78
#define REG_B0_ERXNDL 0x0a
/* RX end pointer - low byte */
79
#define REG_B0_ERXNDH 0x0b
/* RX end pointer - high byte */
80
#define REG_B0_ERXRDPTL 0x0c
/* RX read pointer - low byte */
81
#define REG_B0_ERXRDPTH 0x0d
/* RX read pointer - high byte */
82
#define REG_B0_ERXWRPTL 0x0e
/* RX write pointer - low byte */
83
#define REG_B0_ERXWRPTH 0x0f
/* RX write pointer - high byte */
84
#define REG_B0_EDMASTL 0x10
/* DMA start pointer - low byte */
85
#define REG_B0_EDMASTH 0x11
/* DMA start pointer - high byte */
86
#define REG_B0_EDMANDL 0x12
/* DMA end pointer - low byte */
87
#define REG_B0_EDMANDH 0x13
/* DMA end pointer - high byte */
88
#define REG_B0_EDMADSTL 0x14
/* DMA destination pointer - low byte */
89
#define REG_B0_EDMADSTH 0x15
/* DMA destination pointer - high byte */
90
#define REG_B0_EDMACSL 0x16
/* DMA checksum - low byte */
91
#define REG_B0_EDMACSH 0x17
/* DMA checksum - high byte */
98
#define REG_B1_EHT0 0x00
/* hash table - byte 0 */
99
#define REG_B1_EHT1 0x01
/* hash table - byte 1 */
100
#define REG_B1_EHT2 0x02
/* hash table - byte 2 */
101
#define REG_B1_EHT3 0x03
/* hash table - byte 3 */
102
#define REG_B1_EHT4 0x04
/* hash table - byte 4 */
103
#define REG_B1_EHT5 0x05
/* hash table - byte 5 */
104
#define REG_B1_EHT6 0x06
/* hash table - byte 6 */
105
#define REG_B1_EHT7 0x07
/* hash table - byte 7 */
106
#define REG_B1_EPMM0 0x08
/* pattern match mask - byte 0 */
107
#define REG_B1_EPMM1 0x09
/* pattern match mask - byte 1 */
108
#define REG_B1_EPMM2 0x0a
/* pattern match mask - byte 2 */
109
#define REG_B1_EPMM3 0x0b
/* pattern match mask - byte 3 */
110
#define REG_B1_EPMM4 0x0c
/* pattern match mask - byte 4 */
111
#define REG_B1_EPMM5 0x0d
/* pattern match mask - byte 5 */
112
#define REG_B1_EPMM6 0x0e
/* pattern match mask - byte 6 */
113
#define REG_B1_EPMM7 0x0f
/* pattern match mask - byte 7 */
114
#define REG_B1_EPMCSL 0x10
/* pattern match checksum - low byte */
115
#define REG_B1_EPMCSH 0x11
/* pattern match checksum - high byte */
116
#define REG_B1_EPMOL 0x14
/* pattern match offset - low byte */
117
#define REG_B1_EPMOH 0x15
/* pattern match offset - high byte */
118
#define REG_B1_ERXFCON 0x18
/* receive filter control register */
119
#define REG_B1_EPKTCNT 0x19
/* packet count */
126
#define REG_B2_MACON1 0x00
/* MAC control register 1 */
127
#define REG_B2_MACON3 0x02
/* MAC control register 3 */
128
#define REG_B2_MACON4 0x03
/* MAC control register 4 */
129
#define REG_B2_MABBIPG 0x04
/* back-to-back inter-packet gap */
130
#define REG_B2_MAIPGL 0x06
/* non-back-to-back inter-packet gap - low byte */
131
#define REG_B2_MAIPGH 0x07
/* non-back-to-back inter-packet gap - high byte */
132
#define REG_B2_MACLCON1 0x08
/* retransmission maximum */
133
#define REG_B2_MACLCON2 0x09
/* collision window */
134
#define REG_B2_MAMXFLL 0x0a
/* maximum frame length - low byte */
135
#define REG_B2_MAMXFLH 0x0b
/* maximum frame length - high byte */
136
#define REG_B2_MICMD 0x12
/* MIIM command */
137
#define REG_B2_MIREGADR 0x14
/* MIIM register address */
138
#define REG_B2_MIWRL 0x16
/* MIIM write data register - low byte */
139
#define REG_B2_MIWRH 0x17
/* MIIM write data register - high byte */
140
#define REG_B2_MIRDL 0x18
/* MIIM read data register - low byte */
141
#define REG_B2_MIRDH 0x19
/* MIIM read data register - high byte */
148
#define REG_B3_MAADR5 0x00
/* MAC address - byte 5 */
149
#define REG_B3_MAADR6 0x01
/* MAC address - byte 6 */
150
#define REG_B3_MAADR3 0x02
/* MAC address - byte 3 */
151
#define REG_B3_MAADR4 0x03
/* MAC address - byte 4 */
152
#define REG_B3_MAADR1 0x04
/* MAC address - byte 1 */
153
#define REG_B3_MAADR2 0x05
/* MAC address - byte 2 */
154
#define REG_B3_EBSTSD 0x06
/* built-in self-test fill seed */
155
#define REG_B3_EBSTCON 0x07
/* built-in self-test control register */
156
#define REG_B3_EBSTCSL 0x08
/* built-in self-test checksum - low byte */
157
#define REG_B3_EBSTCSH 0x09
/* built-in self-test checksum - high byte */
158
#define REG_B3_MISTAT 0x0a
/* MIIM status register */
159
#define REG_B3_EREVID 0x12
/* Ethernet revision ID */
160
#define REG_B3_ECOCON 0x15
/* clock output control */
161
#define REG_B3_EFLOCON 0x17
/* Ethernet flow control */
162
#define REG_B3_EPAUSL 0x18
/* pause timer value - low byte */
163
#define REG_B3_EPAUSH 0x19
/* pause timer value - high byte */
170
#define REG_PHY_PHCON1 0x00
171
#define REG_PHY_PHSTAT1 0x01
172
#define REG_PHY_PHID1 0x02
173
#define REG_PHY_PHID2 0x03
174
#define REG_PHY_PHCON2 0x10
175
#define REG_PHY_PHSTAT2 0x11
176
#define REG_PHY_PHIE 0x12
177
#define REG_PHY_PHIR 0x13
178
#define REG_PHY_PHLCON 0x14
185
#define EIE_INTIE 0x80
186
#define EIE_PKTIE 0x40
187
#define EIE_DMAIE 0x20
188
#define EIE_LINKIE 0x10
189
#define EIE_TXIE 0x08
190
#define EIE_TXERIE 0x02
191
#define EIE_RXERIE 0x01
198
#define EIR_PKTIF 0x40
199
#define EIR_DMAIF 0x20
200
#define EIR_LINKIF 0x10
201
#define EIR_TXIF 0x08
202
#define EIR_TXERIF 0x02
203
#define EIR_RXERIF 0x01
210
#define ESTAT_INT 0x80
211
#define ESTAT_BUFFER 0x40
212
#define ESTAT_LATECOL 0x10
213
#define ESTAT_RXBUSY 0x40
214
#define ESTAT_TXABRT 0x20
215
#define ESTAT_CLKRDY 0x01
222
#define ECON1_TXRST 0x80
223
#define ECON1_RXRST 0x40
224
#define ECON1_DMAST 0x20
225
#define ECON1_CSUMEN 0x10
226
#define ECON1_TXRTS 0x08
227
#define ECON1_RXEN 0x04
228
#define ECON1_BSEL1 0x02
229
#define ECON1_BSEL0 0x01
230
#define ECON1_BSEL_MASK 0x03
237
#define ECON2_AUTOINC 0x80
238
#define ECON2_PKTDEC 0x40
239
#define ECON2_PWRSV 0x20
240
#define ECON2_VRPS 0x40
247
#define ERXFCON_UCEN 0x80
248
#define ERXFCON_ANDOR 0x40
249
#define ERXFCON_CRCEN 0x20
250
#define ERXFCON_PMEN 0x10
251
#define ERXFCON_MPEN 0x08
252
#define ERXFCON_HTEN 0x04
253
#define ERXFCON_MCEN 0x02
254
#define ERXFCON_BCEN 0x01
261
#define MACON1_TXPAUS 0x08
262
#define MACON1_RXPAUS 0x04
263
#define MACON1_PASSALL 0x02
264
#define MACON1_MARXEN 0x01
271
#define MACON3_PADCFG2 0x80
272
#define MACON3_PADCFG1 0x40
273
#define MACON3_PADCFG0 0x20
274
#define MACON3_TXCRCEN 0x10
275
#define MACON3_PHDREN 0x08
276
#define MACON3_HFRMEN 0x04
277
#define MACON3_FRMLNEN 0x02
278
#define MACON3_FULDPX 0x01
285
#define MACON4_DEFER 0x40
286
#define MACON4_BPEN 0x20
287
#define MACON4_NOBKOFF 0x10
294
#define MABBIPG_FD 0x15
295
#define MABBIPG_HD 0x12
302
#define MAIPGL_FD 0x12
309
#define MICMD_MIISCAN 0x02
310
#define MICMD_MIIRD 0x01
317
#define MISTAT_NVALID 0x04
318
#define MISTAT_SCAN 0x02
319
#define MISTAT_BUSY 0x01
326
#define EFLOCON_FULDPXS 0x04
327
#define EFLOCON_FCEN1 0x02
328
#define EFLOCON_FCEN0 0x01
329
#define EFLOCON_FCEN_MASK 0x03
336
#define PHCON1_PRST 0x8000
337
#define PHCON1_PLOOPBK 0x4000
338
#define PHCON1_PPWRSV 0x0800
339
#define PHCON1_PDPXMD 0x0100
346
#define PHSTAT1_PFDPX 0x1000
347
#define PHSTAT1_PHDPX 0x0800
348
#define PHSTAT1_LLSTAT 0x0004
349
#define PHSTAT1_JBSTAT 0x0002
356
#define PHCON2_FRCLNK 0x4000
357
#define PHCON2_TXDIS 0x2000
358
#define PHCON2_JABBER 0x0400
359
#define PHCON2_HDLDIS 0x0100
366
#define PHSTAT2_TXSTAT 0x2000
367
#define PHSTAT2_RXSTAT 0x1000
368
#define PHSTAT2_COLSTAT 0x0800
369
#define PHSTAT2_LSTAT 0x0400
370
#define PHSTAT2_DPXSTAT 0x0200
371
#define PHSTAT2_PLRITY 0x0020
378
#define PHIE_PLNKIE 0x0010
379
#define PHIE_PGEIE 0x0002
386
#define PHIR_PLNKIF 0x0010
387
#define PHIR_PGIF 0x0004
394
#define PHLCON_LACFG(x) ((x & 0xf) << 8)
395
#define PHLCON_LBCFG(x) ((x & 0xf) << 4)
396
#define PHLCON_LFRQ(x) ((x & 0x3) << 2)
397
#define PHLCON_STRCH 0x0002
404
#define FRAME_4_RECV_OK 0x80
405
#define FRAME_4_LENGTH_OOR 0x40
406
#define FRAME_4_LENGTH_ERR 0x20
407
#define FRAME_4_CRC_ERR 0x10
408
#define FRAME_4_CARRIER_EVT 0x04
409
#define FRAME_4_LONG_EVT 0x01
410
411
#define FRAME_5_VLAN 0x40
412
#define FRAME_5_UKWN_OPCODE 0x20
413
#define FRAME_5_PAUSE 0x10
414
#define FRAME_5_RCV_CTRL 0x08
415
#define FRAME_5_DRIPPLE 0x04
416
#define FRAME_5_BCAST 0x02
417
#define FRAME_5_MCAST 0x01
424
#define TX_PHUGEEN 0x08
425
#define TX_PPADEN 0x04
426
#define TX_PCRCEN 0x02
427
#define TX_POVERRIDE 0x01
430
#ifdef __cplusplus
431
}
432
#endif
433
434
#endif
/* ENC28J60_REGS_H */
Generated on Thu Apr 3 2025 20:13:17 by
1.12.0