Select one of the symbols to view example projects that use it.
 
Outline
#include <stdint.h>
#define CH390_NCR
#define NCR_WAKEEN
#define NCR_FDX
#define NCR_LBK_MAC
#define NCR_RST
#define CH390_NSR
#define NSR_SPEED
#define NSR_LINKST
#define NSR_WAKEST
#define NSR_TX2END
#define NSR_TX1END
#define NSR_RXOV
#define NSR_RXRDY
#define CH390_TCR
#define TCR_TJDIS
#define TCR_PAD_DIS2
#define TCR_CRC_DIS2
#define TCR_PAD_DIS1
#define TCR_CRC_DIS1
#define TCR_TXREQ
#define CH390_TSRA
#define CH390_TSRB
#define TSR_TJTO
#define TSR_LC
#define TSR_NC
#define TSR_LCOL
#define TSR_COL
#define TSR_EC
#define CH390_RCR
#define RCR_DEFAULT
#define RCR_WTDIS
#define RCR_DIS_CRC
#define RCR_ALL
#define RCR_RUNT
#define RCR_PRMSC
#define RCR_RXEN
#define CH390_RSR
#define RSR_RF
#define RSR_MF
#define RSR_LCS
#define RSR_RWTO
#define RSR_PLE
#define RSR_AE
#define RSR_CE
#define RSR_FOE
#define CH390_ROCR
#define CH390_BPTR
#define CH390_FCTR
#define FCTR_HWOT
#define FCTR_LWOT
#define CH390_FCR
#define FCR_FLOW_ENABLE
#define CH390_EPCR
#define EPCR_REEP
#define EPCR_WEP
#define EPCR_EPOS
#define EPCR_ERPRR
#define EPCR_ERPRW
#define EPCR_ERRE
#define CH390_EPAR
#define CH390_EPDRL
#define CH390_EPDRH
#define CH390_WCR
#define WCR_LINKEN
#define WCR_SAMPLEEN
#define WCR_MAGICEN
#define WCR_LINKST
#define WCR_SAMPLEST
#define WCR_MAGICST
#define CH390_PAR
#define CH390_MAR
#define CH390_GPCR
#define CH390_GPR
#define CH390_TRPAL
#define CH390_TRPAH
#define CH390_RWPAL
#define CH390_RWPAH
#define CH390_VIDL
#define CH390_VIDH
#define CH390_PIDL
#define CH390_PIDH
#define CH390_CHIPR
#define CH390_TCR2
#define TCR2_RLCP
#define CH390_ATCR
#define ATCR_AUTO_TX
#define CH390_TCSCR
#define TCSCR_ALL
#define TCSCR_IPv6TCPCSE
#define TCSCR_IPv6UDPCSE
#define TCSCR_UDPCSE
#define TCSCR_TCPCSE
#define TCSCR_IPCSE
#define CH390_RCSCSR
#define RCSCSR_UDPS
#define RCSCSR_TCPS
#define RCSCSR_IPS
#define RCSCSR_UDPP
#define RCSCSR_TCPP
#define RCSCSR_IPP
#define RCSCSR_RCSEN
#define RCSCSR_DCSE
#define CH390_MPAR
#define CH390_SBCR
#define CH390_INTCR
#define INCR_TYPE_OD
#define INCR_TYPE_PP
#define INCR_POL_L
#define INCR_POL_H
#define CH390_ALNCR
#define CH390_SCCR
#define CH390_RSCCR
#define CH390_RLENCR
#define RLENCR_RXLEN_EN
#define RLENCR_RXLEN_DEFAULT
#define CH390_BCASTCR
#define CH390_INTCKCR
#define CH390_MPTRCR
#define MPTRCR_RST_TX
#define MPTRCR_RST_RX
#define CH390_MLEDCR
#define CH390_MRCMDX
#define CH390_MRCMDX1
#define CH390_MRCMD
#define CH390_MRRL
#define CH390_MRRH
#define CH390_MWCMDX
#define CH390_MWCMD
#define CH390_MWRL
#define CH390_MWRH
#define CH390_TXPLL
#define CH390_TXPLH
#define CH390_ISR
#define ISR_LNKCHG
#define ISR_ROO
#define ISR_ROS
#define ISR_PT
#define ISR_PR
#define ISR_CLR_STATUS
#define CH390_IMR
#define IMR_NONE
#define IMR_ALL
#define IMR_PAR
#define IMR_LNKCHGI
#define IMR_UDRUNI
#define IMR_ROOI
#define IMR_ROI
#define IMR_PTI
#define IMR_PRI
#define OPC_REG_W
#define OPC_REG_R
#define OPC_MEM_DMY_R
#define OPC_MEM_WRITE
#define OPC_MEM_READ
#define CH390_SPI_RD
#define CH390_SPI_WR
#define CH390_GPIO1
#define CH390_GPIO2
#define CH390_GPIO3
#define CH390_PHY
#define CH390_PHY_BMCR
#define CH390_PHY_BMSR
#define CH390_PHY_PHYID1
#define CH390_PHY_PHYID2
#define CH390_PHY_ANAR
#define CH390_PHY_ANLPAR
#define CH390_PHY_ANER
#define CH390_PHY_PAGE_SEL
#define CH390_PKT_NONE
#define CH390_PKT_RDY
#define CH390_PKT_ERR
#define CH390_PKT_ERR_WITH_RCSEN
Files
loading...
SourceVuESP-IDF Framework and Examplesstatic_ip samplemanaged_components/espressif__ch390/include/ch390.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 * * SPDX-FileContributor: 2023-2024 NanjingQinhengMicroelectronics CO LTD * SPDX-FileContributor: 2024 Sergey Kharenko * SPDX-FileContributor: 2024 Espressif Systems (Shanghai) CO LTD *//* ... */ #pragma once #include <stdint.h> #ifdef __cplusplus extern "C" { #endif /******************************************************************** * Register definition *//* ... */ #define CH390_NCR 0x00 // Network control reg #define NCR_WAKEEN (1<<6) // Enable wakeup function #define NCR_FDX (1<<3) // Duplex mode of the internal PHY #define NCR_LBK_MAC (1<<1) // MAC loop-back #define NCR_RST (1<<0) // Software reset #define CH390_NSR 0x01 // Network status reg #define NSR_SPEED (1<<7) // Speed of internal PHY #define NSR_LINKST (1<<6) // Link status of internal PHY #define NSR_WAKEST (1<<5) // Wakeup event status #define NSR_TX2END (1<<3) // Tx packet B complete status #define NSR_TX1END (1<<2) // Tx packet A complete status #define NSR_RXOV (1<<1) // Rx fifo overflow #define NSR_RXRDY (1<<0) #define CH390_TCR 0x02 // Transmit control reg #define TCR_TJDIS (1<<6) // Transmit jabber timer #define TCR_PAD_DIS2 (1<<4) // PAD appends for packet B #define TCR_CRC_DIS2 (1<<3) // CRC appends for packet B #define TCR_PAD_DIS1 (1<<2) // PAD appends for packet A #define TCR_CRC_DIS1 (1<<1) // CRC appends for packet A #define TCR_TXREQ (1<<0) // Tx request #define CH390_TSRA 0x03 // Transmit status reg A #define CH390_TSRB 0x04 // Transmit status reg B #define TSR_TJTO (1<<7) // Transmit jabber time out #define TSR_LC (1<<6) // Loss of carrier #define TSR_NC (1<<5) // No carrier #define TSR_LCOL (1<<4) // Late collision #define TSR_COL (1<<3) // Collision packet #define TSR_EC (1<<2) // Excessive collision #define CH390_RCR 0x05 // Receive control reg #define RCR_DEFAULT 0x00 // Default settings #define RCR_WTDIS (1<<6) // Disable 2048 bytes watch dog #define RCR_DIS_CRC (1<<4) // Discard CRC error packet #define RCR_ALL (1<<3) // Pass all multicast #define RCR_RUNT (1<<2) // Pass runt packet #define RCR_PRMSC (1<<1) // Promiscuous mode #define RCR_RXEN (1<<0) // Enable RX #define CH390_RSR 0x06 // Receive status reg #define RSR_RF (1<<7) // Rnt frame #define RSR_MF (1<<6) // Multicast frame #define RSR_LCS (1<<5) // Late collision seen #define RSR_RWTO (1<<4) // Receive watchdog time-out #define RSR_PLE (1<<3) // Physical layer error #define RSR_AE (1<<2) // Alignment error #define RSR_CE (1<<1) // CRC error #define RSR_FOE (1<<0) // FIFO overflow error //Receive status error mask(default) #define RSR_ERR_MASK (RSR_RF | RSR_LCS | RSR_RWTO | RSR_PLE | \ RSR_AE | RSR_CE | RSR_FOE)... #define CH390_ROCR 0x07 // Receive overflow count reg #define CH390_BPTR 0x08 // Back pressure threshold reg #define CH390_FCTR 0x09 // Flow control threshold reg #define FCTR_HWOT(ot) (( ot & 0xf ) << 4) #define FCTR_LWOT(ot) ( ot & 0xf ) #define CH390_FCR 0x0A // Transmit/Receive flow control reg #define FCR_FLOW_ENABLE (0x39) // Enable Flow Control #define CH390_EPCR 0x0B // EEPROM or PHY control reg #define EPCR_REEP (1<<5) // Reload EEPROM #define EPCR_WEP (1<<4) // Write EEPROM enable #define EPCR_EPOS (1<<3) // EEPROM or PHY operation select #define EPCR_ERPRR (1<<2) // EEPROM or PHY read command #define EPCR_ERPRW (1<<1) // EEPROM or PHY write command #define EPCR_ERRE (1<<0) // EEPROM or PHY access status #define CH390_EPAR 0x0C // EEPROM or PHY address reg #define CH390_EPDRL 0x0D // EEPROM or PHY low byte data reg #define CH390_EPDRH 0x0E // EEPROM or PHY high byte data reg #define CH390_WCR 0x0F // Wakeup control reg #define WCR_LINKEN (1<<5) // Link status change wakeup #define WCR_SAMPLEEN (1<<4) // Sample frame wakeup #define WCR_MAGICEN (1<<3) // Magic packet wakeup #define WCR_LINKST (1<<2) // Link status change event #define WCR_SAMPLEST (1<<1) // Sample frame event #define WCR_MAGICST (1<<0) // Magic packet event #define CH390_PAR 0x10 // MAC address reg #define CH390_MAR 0x16 // Multicast address reg #define CH390_GPCR 0x1E // General purpose control reg #define CH390_GPR 0x1F // General purpose reg #define CH390_TRPAL 0x22 // Transmit read pointer low byte address reg #define CH390_TRPAH 0x23 // Transmit read pointer high byte address reg #define CH390_RWPAL 0x24 // Receive write pointer low byte address reg #define CH390_RWPAH 0x25 // Receive write pointer high byte address reg #define CH390_VIDL 0x28 // Vendor ID low byte reg #define CH390_VIDH 0x29 // Vendor ID high byte reg #define CH390_PIDL 0x2A // Product ID low byte reg #define CH390_PIDH 0x2B // Product ID high byte reg #define CH390_CHIPR 0x2C // Chip reversion reg #define CH390_TCR2 0x2D // Transmit control reg II #define TCR2_RLCP (1<<6) // Retry Late Collision Packet #define CH390_ATCR 0x30 // Auto-Transmit control reg #define ATCR_AUTO_TX (1<<7) // Auto-Transmit Control #define CH390_TCSCR 0x31 // Transmit checksum and control reg #define TCSCR_ALL 0x1F #define TCSCR_IPv6TCPCSE (1<<4) // IPv6 TCP checksum generation #define TCSCR_IPv6UDPCSE (1<<3) // IPv6 UDP checksum generation #define TCSCR_UDPCSE (1<<2) // UDP checksum generation #define TCSCR_TCPCSE (1<<1) // TCP checksum generation #define TCSCR_IPCSE (1<<0) // IP checksum generation #define CH390_RCSCSR 0x32 // Receive checksum and control reg #define RCSCSR_UDPS (1<<7) // UDP checksum status #define RCSCSR_TCPS (1<<6) // TCP checksum status #define RCSCSR_IPS (1<<5) // IP checksum status #define RCSCSR_UDPP (1<<4) // UDP packet of current received packet #define RCSCSR_TCPP (1<<3) // TCP packet of current received packet #define RCSCSR_IPP (1<<2) // IP packet of current received packet #define RCSCSR_RCSEN (1<<1) // Receive checksum checking enable #define RCSCSR_DCSE (1<<0) // Discard checksum error packet #define CH390_MPAR 0x33 // MII PHY address reg #define CH390_SBCR 0x38 // SPI bus control reg #define CH390_INTCR 0x39 // INT pin control reg #define INCR_TYPE_OD 0x02 // Open drain output #define INCR_TYPE_PP 0x00 // Push pull output #define INCR_POL_L 0x01 // Low level positive #define INCR_POL_H 0x00 // High level positive #define CH390_ALNCR 0x4A // SPI alignment error count reg #define CH390_SCCR 0x50 // System clock control reg #define CH390_RSCCR 0x51 // Recover system clock control reg #define CH390_RLENCR 0x52 // Receive data pack length control reg #define RLENCR_RXLEN_EN 0x80 // Enable RX data pack length filter #define RLENCR_RXLEN_DEFAULT 0x18 // Default MAX length of RX data(div by 64) #define CH390_BCASTCR 0x53 // Receive broadcast control reg #define CH390_INTCKCR 0x54 // INT pin clock output control reg #define CH390_MPTRCR 0x55 // Memory pointer control reg #define MPTRCR_RST_TX (1<<1) // Reset TX Memory Pointer #define MPTRCR_RST_RX (1<<0) // Reset RX Memory Pointer #define CH390_MLEDCR 0x57 // More LED control reg #define CH390_MRCMDX 0x70 // Memory read command without address increment reg // Memory read command without data pre-fetch and address increment reg #define CH390_MRCMDX1 0x71 #define CH390_MRCMD 0x72 // Memory data read command with address increment reg #define CH390_MRRL 0x74 // Memory read low byte address reg #define CH390_MRRH 0x75 // Memory read high byte address reg #define CH390_MWCMDX 0x76 // Memory write command without ddress increment reg #define CH390_MWCMD 0x78 // Memory write command #define CH390_MWRL 0x7A // Memory write low byte address reg #define CH390_MWRH 0x7B // Memory write high byte address reg #define CH390_TXPLL 0x7C // Transmit pack low byte length reg #define CH390_TXPLH 0x7D // Transmit pack high byte length reg #define CH390_ISR 0x7E // Interrupt status reg #define ISR_LNKCHG (1<<5) // Link status change #define ISR_ROO (1<<3) // Receive overflow counter overflow #define ISR_ROS (1<<2) // Receive overflow #define ISR_PT (1<<1) // Packet transmitted #define ISR_PR (1<<0) // Packet received #define ISR_CLR_STATUS (ISR_LNKCHG | ISR_ROO | ISR_ROS | ISR_PT | ISR_PR) #define CH390_IMR 0x7F // Interrupt mask reg #define IMR_NONE 0x00 // Disable all interrupt #define IMR_ALL 0xFF // Enable all interrupt #define IMR_PAR (1<<7) // Pointer auto-return mode #define IMR_LNKCHGI (1<<5) // Enable link status change interrupt #define IMR_UDRUNI (1<<4) // Enable transmit under-run interrupt #define IMR_ROOI (1<<3) // Enable receive overflow counter overflow interrupt #define IMR_ROI (1<<2) // Enable receive overflow interrupt #define IMR_PTI (1<<1) // Enable packet transmitted interrupt #define IMR_PRI (1<<0) // Enable packet received interrupt // SPI commands #define OPC_REG_W 0x80 // Register Write #define OPC_REG_R 0x00 // Register Read #define OPC_MEM_DMY_R 0x70 // Memory Dummy Read #define OPC_MEM_WRITE 0xF8 // Memory Write #define OPC_MEM_READ 0x72 // Memory Read #define CH390_SPI_RD 0 #define CH390_SPI_WR 1 // GPIO #define CH390_GPIO1 0x02 #define CH390_GPIO2 0x04 #define CH390_GPIO3 0x08 // PHY registers #define CH390_PHY 0x40 #define CH390_PHY_BMCR 0x00 #define CH390_PHY_BMSR 0x01 #define CH390_PHY_PHYID1 0x02 #define CH390_PHY_PHYID2 0x03 #define CH390_PHY_ANAR 0x04 #define CH390_PHY_ANLPAR 0x05 #define CH390_PHY_ANER 0x06 #define CH390_PHY_PAGE_SEL 0x1F // Packet status #define CH390_PKT_NONE 0x00 /* No packet received */ #define CH390_PKT_RDY 0x01 /* Packet ready to receive */ #define CH390_PKT_ERR 0xFE /* Un-stable states mask */ #define CH390_PKT_ERR_WITH_RCSEN 0xE2 /* Un-stable states mask when RCSEN = 1 */173 defines #ifdef __cplusplus }{...} #endif
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.