Socket APIs
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
Ethernet
wizchip_conf.h
Go to the documentation of this file.
1
//*****************************************************************************
2
//
39
//
40
//*****************************************************************************
41
50
#ifndef _WIZCHIP_CONF_H_
51
#define _WIZCHIP_CONF_H_
52
53
#include <stdint.h>
59
#define _WIZCHIP_ 5500 // 5100, 5200, 5500
60
61
#define _WIZCHIP_IO_MODE_NONE_ 0x0000
62
#define _WIZCHIP_IO_MODE_BUS_ 0x0100
63
#define _WIZCHIP_IO_MODE_SPI_ 0x0200
64
//#define _WIZCHIP_IO_MODE_IIC_ 0x0400
65
//#define _WIZCHIP_IO_MODE_SDIO_ 0x0800
66
// Add to
67
//
68
69
#define _WIZCHIP_IO_MODE_BUS_DIR_ (_WIZCHIP_IO_MODE_BUS_ + 1)
70
#define _WIZCHIP_IO_MODE_BUS_INDIR_ (_WIZCHIP_IO_MODE_BUS_ + 2)
72
#define _WIZCHIP_IO_MODE_SPI_VDM_ (_WIZCHIP_IO_MODE_SPI_ + 1)
73
#define _WIZCHIP_IO_MODE_SPI_FDM_ (_WIZCHIP_IO_MODE_SPI_ + 2)
76
#if (_WIZCHIP_ == 5100)
77
#define _WIZCHIP_ID_ "W5100\0"
78
83
// #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_DIR_
84
// #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_INDIR_
85
#define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_
86
87
#elif (_WIZCHIP_ == 5200)
88
#define _WIZCHIP_ID_ "W5200\0"
89
93
// #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_INDIR_
94
#define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_
95
#include "W5200/w5200.h"
96
#elif (_WIZCHIP_ == 5500)
97
#define _WIZCHIP_ID_ "W5500\0"
98
112
//#define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_FDM_
113
#define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_VDM_
114
#include "
W5500/w5500.h
"
115
#else
116
#error "Unknown defined _WIZCHIP_. You should define one of 5100, 5200, and 5500 !!!"
117
#endif
118
119
#ifndef _WIZCHIP_IO_MODE_
120
#error "Undefined _WIZCHIP_IO_MODE_. You should define it !!!"
121
#endif
122
129
#define _WIZCHIP_IO_BASE_ 0x00000000 //
130
131
#if _WIZCHIP_IO_MODE_ & _WIZCHIP_IO_MODE_BUS
132
#ifndef _WIZCHIP_IO_BASE_
133
#error "You should be define _WIZCHIP_IO_BASE to fit your system memory map."
134
#endif
135
#endif
136
137
#if _WIZCHIP_ > 5100
138
#define _WIZCHIP_SOCK_NUM_ 8
139
#else
140
#define _WIZCHIP_SOCK_NUM_ 4
141
#endif
142
143
144
/********************************************************
145
* WIZCHIP BASIC IF functions for SPI, SDIO, I2C , ETC.
146
*********************************************************/
151
typedef
struct
__WIZCHIP
152
{
153
uint16_t
if_mode
;
154
uint8_t
id
[6];
155
158
struct
_CRIS
159
{
160
void (*
_enter
) (void);
161
void (*
_exit
) (void);
162
}
CRIS
;
166
struct
_CS
167
{
168
void (*
_select
) (void);
169
void (*
_deselect
)(void);
170
}
CS
;
174
union
_IF
175
{
179
struct
180
{
181
uint8_t (*
_read_byte
) (uint32_t AddrSel);
182
void (*
_write_byte
) (uint32_t AddrSel, uint8_t wb);
183
}
BUS
;
187
struct
188
{
189
uint8_t (*
_read_byte
) (void);
190
void (*
_write_byte
) (uint8_t wb);
191
}
SPI
;
192
// To be added
193
//
194
}
IF
;
195
}
_WIZCHIP
;
196
197
extern
_WIZCHIP
WIZCHIP
;
198
203
typedef
enum
204
{
205
CW_RESET_WIZCHIP
,
206
CW_INIT_WIZCHIP
,
207
CW_GET_INTERRUPT
,
208
CW_CLR_INTERRUPT
,
209
CW_SET_INTRMASK
,
210
CW_GET_INTRMASK
,
211
CW_SET_INTRTIME
,
212
CW_GET_INTRTIME
,
213
CW_GET_ID
,
214
215
#if _WIZCHIP_ == 5500
216
CW_RESET_PHY
,
217
CW_SET_PHYCONF
,
218
CW_GET_PHYCONF
,
219
CW_GET_PHYSTATUS
,
220
CW_SET_PHYPOWMODE
,
221
#endif
222
CW_GET_PHYPOWMODE
,
223
CW_GET_PHYLINK
224
}
ctlwizchip_type
;
225
230
typedef
enum
231
{
232
CN_SET_NETINFO
,
233
CN_GET_NETINFO
,
234
CN_SET_NETMODE
,
235
CN_GET_NETMODE
,
236
CN_SET_TIMEOUT
,
237
CN_GET_TIMEOUT
,
238
}
ctlnetwork_type
;
239
246
typedef
enum
247
{
248
#if _WIZCHIP_ > 5200
249
IK_WOL
= (1 << 4),
250
#endif
251
252
IK_PPPOE_TERMINATED
= (1 << 5),
253
254
#if _WIZCHIP_ != 5200
255
IK_DEST_UNREACH
= (1 << 6),
256
#endif
257
258
IK_IP_CONFLICT
= (1 << 7),
259
260
IK_SOCK_0
= (1 << 8),
261
IK_SOCK_1
= (1 << 9),
262
IK_SOCK_2
= (1 << 10),
263
IK_SOCK_3
= (1 << 11),
264
#if _WIZCHIP_ > 5100
265
IK_SOCK_4
= (1 << 12),
266
IK_SOCK_5
= (1 << 13),
267
IK_SOCK_6
= (1 << 14),
268
IK_SOCK_7
= (1 << 15),
269
#endif
270
271
#if _WIZCHIP_ > 5100
272
IK_SOCK_ALL
= (0xFF << 8)
273
#
else
274
IK_SOCK_ALL
= (0x0F << 8)
275
#endif
276
}
intr_kind
;
277
278
#define PHY_CONFBY_HW 0
279
#define PHY_CONFBY_SW 1
280
#define PHY_MODE_MANUAL 0
281
#define PHY_MODE_AUTONEGO 1
282
#define PHY_SPEED_10 0
283
#define PHY_SPEED_100 1
284
#define PHY_DUPLEX_HALF 0
285
#define PHY_DUPLEX_FULL 1
286
#define PHY_LINK_OFF 0
287
#define PHY_LINK_ON 1
288
#define PHY_POWER_NORM 0
289
#define PHY_POWER_DOWN 1
290
291
292
#if _WIZCHIP_ == 5500
293
299
typedef
struct
wiz_PhyConf_t
300
{
301
uint8_t
by
;
302
uint8_t
mode
;
303
uint8_t
speed
;
304
uint8_t
duplex
;
305
//uint8_t power; ///< set by @ref PHY_POWER_NORM or @ref PHY_POWER_DOWN
306
//uint8_t link; ///< Valid only in CW_GET_PHYSTATUS. set by @ref PHY_LINK_ON or PHY_DUPLEX_OFF
307
}
wiz_PhyConf
;
308
#endif
309
314
typedef
enum
315
{
316
NETINFO_STATIC
= 1,
317
NETINFO_DHCP
318
}
dhcp_mode
;
319
324
typedef
struct
wiz_NetInfo_t
325
{
326
uint8_t
mac
[6];
327
uint8_t
ip
[4];
328
uint8_t
sn
[4];
329
uint8_t
gw
[4];
330
uint8_t
dns
[4];
331
dhcp_mode
dhcp
;
332
}
wiz_NetInfo
;
333
338
typedef
enum
339
{
340
#if _WIZCHIP_ == 5500
341
NM_FORCEARP
= (1<<1),
342
#endif
343
NM_WAKEONLAN
= (1<<5),
344
NM_PINGBLOCK
= (1<<4),
345
NM_PPPOE
= (1<<3),
346
}
netmode_type
;
347
352
typedef
struct
wiz_NetTimeout_t
353
{
354
uint8_t
retry_cnt
;
355
uint16_t
time_100us
;
356
}
wiz_NetTimeout
;
357
366
void
reg_wizchip_cris_cbfunc
(
void
(*cris_en)(
void
),
void
(*cris_ex)(
void
));
367
368
376
void
reg_wizchip_cs_cbfunc
(
void
(*cs_sel)(
void
),
void
(*cs_desel)(
void
));
377
386
void
reg_wizchip_bus_cbfunc
(uint8_t (*bus_rb)(uint32_t addr),
void
(*bus_wb)(uint32_t addr, uint8_t wb));
387
396
void
reg_wizchip_spi_cbfunc
(uint8_t (*spi_rb)(
void
),
void
(*spi_wb)(uint8_t wb));
397
408
int8_t
ctlwizchip
(
ctlwizchip_type
cwtype,
void
* arg);
409
419
int8_t
ctlnetwork
(
ctlnetwork_type
cntype,
void
* arg);
420
421
422
/*
423
* The following functions are implemented for internal use.
424
* but You can call these functions for code size reduction instead of ctlwizchip() and ctlnetwork().
425
*/
426
431
void
wizchip_sw_reset
(
void
);
432
441
int8_t
wizchip_init
(uint8_t* txsize, uint8_t* rxsize);
442
448
void
wizchip_clrinterrupt
(
intr_kind
intr);
449
455
intr_kind
wizchip_getinterrupt
(
void
);
456
462
void
wizchip_setinterruptmask
(
intr_kind
intr);
463
469
intr_kind
wizchip_getinterruptmask
(
void
);
470
471
#if _WIZCHIP_ > 5100
472
int8_t
wizphy_getphylink
(
void
);
473
int8_t
wizphy_getphypmode
(
void
);
474
#endif
475
476
#if _WIZCHIP_ == 5500
477
void
wizphy_reset
(
void
);
478
483
void
wizphy_setphyconf
(
wiz_PhyConf
* phyconf);
489
void
wizphy_getphyconf
(
wiz_PhyConf
* phyconf);
495
void
wizphy_getphystat
(
wiz_PhyConf
* phyconf);
501
int8_t
wizphy_setphypmode
(uint8_t pmode);
502
#endif
503
509
void
wizchip_setnetinfo
(
wiz_NetInfo
* pnetinfo);
510
516
void
wizchip_getnetinfo
(
wiz_NetInfo
* pnetinfo);
517
523
int8_t
wizchip_setnetmode
(
netmode_type
netmode);
524
530
netmode_type
wizchip_getnetmode
(
void
);
531
538
void
wizchip_settimeout
(
wiz_NetTimeout
* nettime);
539
546
void
wizchip_gettimeout
(
wiz_NetTimeout
* nettime);
547
548
#endif // _WIZCHIP_CONF_H_
Generated on Fri May 2 2014 15:47:17 for Socket APIs by
1.8.4