Socket APIs
Classes | Macros | Typedefs | Enumerations | Functions | Variables
wizchip_conf.h File Reference

WIZCHIP Config Header File. More...

#include <stdint.h>
#include "W5500/w5500.h"
Include dependency graph for wizchip_conf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  __WIZCHIP
 The set of callback functions for W5500:WIZCHIP I/O functions W5200:WIZCHIP_IO_Functions_W5200. More...
 
struct  __WIZCHIP::_CRIS
 
struct  __WIZCHIP::_CS
 
union  __WIZCHIP::_IF
 
struct  wiz_PhyConf_t
 
struct  wiz_NetInfo_t
 
struct  wiz_NetTimeout_t
 

Macros

#define _WIZCHIP_   5500
 Select WIZCHIP. More...
 
#define _WIZCHIP_IO_MODE_NONE_   0x0000
 
#define _WIZCHIP_IO_MODE_BUS_   0x0100
 
#define _WIZCHIP_IO_MODE_SPI_   0x0200
 
#define _WIZCHIP_IO_MODE_BUS_DIR_   (_WIZCHIP_IO_MODE_BUS_ + 1)
 
#define _WIZCHIP_IO_MODE_BUS_INDIR_   (_WIZCHIP_IO_MODE_BUS_ + 2)
 
#define _WIZCHIP_IO_MODE_SPI_VDM_   (_WIZCHIP_IO_MODE_SPI_ + 1)
 
#define _WIZCHIP_IO_MODE_SPI_FDM_   (_WIZCHIP_IO_MODE_SPI_ + 2)
 
#define _WIZCHIP_ID_   "W5500\0"
 
#define _WIZCHIP_IO_MODE_   _WIZCHIP_IO_MODE_SPI_VDM_
 Define interface mode.
. More...
 
#define _WIZCHIP_IO_BASE_   0x00000000
 Define I/O base address when BUS IF mode. More...
 
#define _WIZCHIP_SOCK_NUM_   8
 The count of independant socket of WIZCHIP. More...
 
#define PHY_CONFBY_HW   0
 Configured PHY operation mode by HW pin. More...
 
#define PHY_CONFBY_SW   1
 Configured PHY operation mode by SW register. More...
 
#define PHY_MODE_MANUAL   0
 Configured PHY operation mode with user setting. More...
 
#define PHY_MODE_AUTONEGO   1
 Configured PHY operation mode with auto-negotiation. More...
 
#define PHY_SPEED_10   0
 Link Speed 10. More...
 
#define PHY_SPEED_100   1
 Link Speed 100. More...
 
#define PHY_DUPLEX_HALF   0
 Link Half-Duplex. More...
 
#define PHY_DUPLEX_FULL   1
 Link Full-Duplex. More...
 
#define PHY_LINK_OFF   0
 Link Off. More...
 
#define PHY_LINK_ON   1
 Link On. More...
 
#define PHY_POWER_NORM   0
 PHY power normal mode. More...
 
#define PHY_POWER_DOWN   1
 PHY power down mode. More...
 

Typedefs

typedef struct __WIZCHIP _WIZCHIP
 The set of callback functions for W5500:WIZCHIP I/O functions W5200:WIZCHIP_IO_Functions_W5200. More...
 
typedef struct wiz_PhyConf_t wiz_PhyConf
 
typedef struct wiz_NetInfo_t wiz_NetInfo
 
typedef struct wiz_NetTimeout_t wiz_NetTimeout
 

Enumerations

enum  ctlwizchip_type {
  CW_RESET_WIZCHIP, CW_INIT_WIZCHIP, CW_GET_INTERRUPT, CW_CLR_INTERRUPT,
  CW_SET_INTRMASK, CW_GET_INTRMASK, CW_SET_INTRTIME, CW_GET_INTRTIME,
  CW_GET_ID, CW_RESET_PHY, CW_SET_PHYCONF, CW_GET_PHYCONF,
  CW_GET_PHYSTATUS, CW_SET_PHYPOWMODE, CW_GET_PHYPOWMODE, CW_GET_PHYLINK
}
 
enum  ctlnetwork_type {
  CN_SET_NETINFO, CN_GET_NETINFO, CN_SET_NETMODE, CN_GET_NETMODE,
  CN_SET_TIMEOUT, CN_GET_TIMEOUT
}
 
enum  intr_kind {
  IK_WOL = (1 << 4), IK_PPPOE_TERMINATED = (1 << 5), IK_DEST_UNREACH = (1 << 6), IK_IP_CONFLICT = (1 << 7),
  IK_SOCK_0 = (1 << 8), IK_SOCK_1 = (1 << 9), IK_SOCK_2 = (1 << 10), IK_SOCK_3 = (1 << 11),
  IK_SOCK_4 = (1 << 12), IK_SOCK_5 = (1 << 13), IK_SOCK_6 = (1 << 14), IK_SOCK_7 = (1 << 15),
  IK_SOCK_ALL = (0xFF << 8)
}
 
enum  dhcp_mode { NETINFO_STATIC = 1, NETINFO_DHCP }
 
enum  netmode_type { NM_FORCEARP = (1<<1), NM_WAKEONLAN = (1<<5), NM_PINGBLOCK = (1<<4), NM_PPPOE = (1<<3) }
 

Functions

void reg_wizchip_cris_cbfunc (void(*cris_en)(void), void(*cris_ex)(void))
 Registers call back function for critical section of I/O functions such as WIZCHIP_READ, WIZCHIP_WRITE, WIZCHIP_READ_BUF and WIZCHIP_WRITE_BUF. More...
 
void reg_wizchip_cs_cbfunc (void(*cs_sel)(void), void(*cs_desel)(void))
 Registers call back function for WIZCHIP select & deselect. More...
 
void reg_wizchip_bus_cbfunc (uint8_t(*bus_rb)(uint32_t addr), void(*bus_wb)(uint32_t addr, uint8_t wb))
 Registers call back function for bus interface. More...
 
void reg_wizchip_spi_cbfunc (uint8_t(*spi_rb)(void), void(*spi_wb)(uint8_t wb))
 Registers call back function for SPI interface. More...
 
int8_t ctlwizchip (ctlwizchip_type cwtype, void *arg)
 Controls to the WIZCHIP. More...
 
int8_t ctlnetwork (ctlnetwork_type cntype, void *arg)
 Controls to network. More...
 
void wizchip_sw_reset (void)
 Reset WIZCHIP by softly. More...
 
int8_t wizchip_init (uint8_t *txsize, uint8_t *rxsize)
 Initializes WIZCHIP with socket buffer size. More...
 
void wizchip_clrinterrupt (intr_kind intr)
 Clear Interrupt of WIZCHIP. More...
 
intr_kind wizchip_getinterrupt (void)
 Get Interrupt of WIZCHIP. More...
 
void wizchip_setinterruptmask (intr_kind intr)
 Mask or Unmask Interrupt of WIZCHIP. More...
 
intr_kind wizchip_getinterruptmask (void)
 Get Interrupt mask of WIZCHIP. More...
 
int8_t wizphy_getphylink (void)
 get the link status of phy in WIZCHIP. No use in W5100 More...
 
int8_t wizphy_getphypmode (void)
 get the power mode of PHY in WIZCHIP. No use in W5100 More...
 
void wizphy_reset (void)
 Reset phy. Vailid only in W5500. More...
 
void wizphy_setphyconf (wiz_PhyConf *phyconf)
 Set the phy information for WIZCHIP without power mode. More...
 
void wizphy_getphyconf (wiz_PhyConf *phyconf)
 Get phy configuration information. More...
 
void wizphy_getphystat (wiz_PhyConf *phyconf)
 Get phy status. More...
 
int8_t wizphy_setphypmode (uint8_t pmode)
 set the power mode of phy inside WIZCHIP. Refer to PHYCFGR in W5500, PHYSTATUS in W5200 More...
 
void wizchip_setnetinfo (wiz_NetInfo *pnetinfo)
 Set the network information for WIZCHIP. More...
 
void wizchip_getnetinfo (wiz_NetInfo *pnetinfo)
 Get the network information for WIZCHIP. More...
 
int8_t wizchip_setnetmode (netmode_type netmode)
 Set the network mode such WOL, PPPoE, Ping Block, and etc. More...
 
netmode_type wizchip_getnetmode (void)
 Get the network mode such WOL, PPPoE, Ping Block, and etc. More...
 
void wizchip_settimeout (wiz_NetTimeout *nettime)
 Set retry time value(RTR) and retry count(RCR). More...
 
void wizchip_gettimeout (wiz_NetTimeout *nettime)
 Get retry time value(RTR) and retry count(RCR). More...
 

Variables

_WIZCHIP WIZCHIP
 

Detailed Description

WIZCHIP Config Header File.

Version
1.0.0
Date
2013/10/21
Revision history
<2013/10/21> 1st Release
Author
MidnightCow

Copyright (c) 2013, WIZnet Co., LTD. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright 

notice, this list of conditions and the following disclaimer.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file wizchip_conf.h.

Macro Definition Documentation

#define _WIZCHIP_   5500

Select WIZCHIP.

Todo:
You should select one, 5100, 5200 ,5500 or etc.

ex> #define _WIZCHIP_ 5500

Definition at line 59 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_NONE_   0x0000

Definition at line 61 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_BUS_   0x0100

Bus interface mode

Definition at line 62 of file wizchip_conf.h.

Referenced by reg_wizchip_bus_cbfunc().

#define _WIZCHIP_IO_MODE_SPI_   0x0200

SPI interface mode

Definition at line 63 of file wizchip_conf.h.

Referenced by reg_wizchip_spi_cbfunc().

#define _WIZCHIP_IO_MODE_BUS_DIR_   (_WIZCHIP_IO_MODE_BUS_ + 1)

BUS interface mode for direct

Definition at line 69 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_BUS_INDIR_   (_WIZCHIP_IO_MODE_BUS_ + 2)

BUS interface mode for indirect

Definition at line 70 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_SPI_VDM_   (_WIZCHIP_IO_MODE_SPI_ + 1)

SPI interface mode for variable length data

Definition at line 72 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_SPI_FDM_   (_WIZCHIP_IO_MODE_SPI_ + 2)

SPI interface mode for fixed length data mode

Definition at line 73 of file wizchip_conf.h.

#define _WIZCHIP_ID_   "W5500\0"

Definition at line 97 of file wizchip_conf.h.

#define _WIZCHIP_IO_MODE_   _WIZCHIP_IO_MODE_SPI_VDM_

Define interface mode.
.

Todo:
Should select interface mode as chip.

Definition at line 113 of file wizchip_conf.h.

#define _WIZCHIP_IO_BASE_   0x00000000

Define I/O base address when BUS IF mode.

Todo:
Should re-define it to fit your system when BUS IF Mode (_WIZCHIP_IO_MODE_BUS_, _WIZCHIP_IO_MODE_BUS_DIR_, _WIZCHIP_IO_MODE_BUS_INDIR_).

ex> #define _WIZCHIP_IO_BASE_ 0x00008000

Definition at line 129 of file wizchip_conf.h.

#define _WIZCHIP_SOCK_NUM_   8

The count of independant socket of WIZCHIP.

Definition at line 138 of file wizchip_conf.h.

Referenced by ctlwizchip(), and wizchip_init().

#define PHY_CONFBY_HW   0

Configured PHY operation mode by HW pin.

Definition at line 278 of file wizchip_conf.h.

Referenced by wizphy_getphyconf().

#define PHY_CONFBY_SW   1

Configured PHY operation mode by SW register.

Definition at line 279 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), and wizphy_setphyconf().

#define PHY_MODE_MANUAL   0

Configured PHY operation mode with user setting.

Definition at line 280 of file wizchip_conf.h.

Referenced by wizphy_getphyconf().

#define PHY_MODE_AUTONEGO   1

Configured PHY operation mode with auto-negotiation.

Definition at line 281 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), and wizphy_setphyconf().

#define PHY_SPEED_10   0

Link Speed 10.

Definition at line 282 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), and wizphy_getphystat().

#define PHY_SPEED_100   1

Link Speed 100.

Definition at line 283 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), wizphy_getphystat(), and wizphy_setphyconf().

#define PHY_DUPLEX_HALF   0

Link Half-Duplex.

Definition at line 284 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), and wizphy_getphystat().

#define PHY_DUPLEX_FULL   1

Link Full-Duplex.

Definition at line 285 of file wizchip_conf.h.

Referenced by wizphy_getphyconf(), wizphy_getphystat(), and wizphy_setphyconf().

#define PHY_LINK_OFF   0

Link Off.

Definition at line 286 of file wizchip_conf.h.

Referenced by wizphy_getphylink().

#define PHY_LINK_ON   1

Link On.

Definition at line 287 of file wizchip_conf.h.

Referenced by wizphy_getphylink().

#define PHY_POWER_NORM   0

PHY power normal mode.

Definition at line 288 of file wizchip_conf.h.

Referenced by wizphy_getphypmode().

#define PHY_POWER_DOWN   1

PHY power down mode.

Definition at line 289 of file wizchip_conf.h.

Referenced by wizphy_getphypmode(), and wizphy_setphypmode().

Function Documentation

void reg_wizchip_cris_cbfunc ( void(*)(void)  cris_en,
void(*)(void)  cris_ex 
)

Registers call back function for critical section of I/O functions such as WIZCHIP_READ, WIZCHIP_WRITE, WIZCHIP_READ_BUF and WIZCHIP_WRITE_BUF.

Parameters
cris_en: callback function for critical section enter.
cris_ex: callback function for critical section exit.
Todo:
Describe WIZCHIP_CRITICAL_ENTER and WIZCHIP_CRITICAL_EXIT marco or register your functions.
Note
If you do not describe or register, default functions(wizchip_cris_enter & wizchip_cris_exit) is called.

Definition at line 127 of file wizchip_conf.c.

References __WIZCHIP::_CRIS::_enter, __WIZCHIP::_CRIS::_exit, __WIZCHIP::CRIS, wizchip_cris_enter(), and wizchip_cris_exit().

void reg_wizchip_cs_cbfunc ( void(*)(void)  cs_sel,
void(*)(void)  cs_desel 
)

Registers call back function for WIZCHIP select & deselect.

Parameters
cs_sel: callback function for WIZCHIP select
cs_desel: callback fucntion for WIZCHIP deselect
Todo:
Describe wizchip_cs_select and wizchip_cs_deselect function or register your functions.
Note
If you do not describe or register, null function is called.

Definition at line 141 of file wizchip_conf.c.

References __WIZCHIP::_CS::_deselect, __WIZCHIP::_CS::_select, __WIZCHIP::CS, wizchip_cs_deselect(), and wizchip_cs_select().

void reg_wizchip_bus_cbfunc ( uint8_t(*)(uint32_t addr)  bus_rb,
void(*)(uint32_t addr, uint8_t wb)  bus_wb 
)

Registers call back function for bus interface.

Parameters
bus_rb: callback function to read byte data using system bus
bus_wb: callback function to write byte data using system bus
Todo:
Describe wizchip_bus_readbyte and wizchip_bus_writebyte function or register your functions.
Note
If you do not describe or register, null function is called.

Definition at line 155 of file wizchip_conf.c.

References __WIZCHIP::_IF::_read_byte, _WIZCHIP_IO_MODE_BUS_, __WIZCHIP::_IF::_write_byte, __WIZCHIP::_IF::BUS, __WIZCHIP::IF, __WIZCHIP::if_mode, wizchip_bus_readbyte(), and wizchip_bus_writebyte().

void reg_wizchip_spi_cbfunc ( uint8_t(*)(void)  spi_rb,
void(*)(uint8_t wb)  spi_wb 
)

Registers call back function for SPI interface.

Parameters
spi_rb: callback function to read byte usig SPI
spi_wb: callback function to write byte usig SPI
Todo:
Describe wizchip_spi_readbyte and wizchip_spi_writebyte function or register your functions.
Note
If you do not describe or register, null function is called.

Definition at line 171 of file wizchip_conf.c.

References __WIZCHIP::_IF::_read_byte, _WIZCHIP_IO_MODE_SPI_, __WIZCHIP::_IF::_write_byte, __WIZCHIP::IF, __WIZCHIP::if_mode, __WIZCHIP::_IF::SPI, wizchip_spi_readbyte(), and wizchip_spi_writebyte().

int8_t wizphy_getphylink ( void  )

get the link status of phy in WIZCHIP. No use in W5100

Definition at line 427 of file wizchip_conf.c.

References getPHYCFGR, PHY_LINK_OFF, PHY_LINK_ON, and PHYCFGR_LNK_ON.

Referenced by ctlwizchip().

int8_t wizphy_getphypmode ( void  )

get the power mode of PHY in WIZCHIP. No use in W5100

Definition at line 448 of file wizchip_conf.c.

References getPHYCFGR, PHY_POWER_DOWN, PHY_POWER_NORM, and PHYCFGR_OPMDC_PDOWN.

Referenced by ctlwizchip().

void wizphy_reset ( void  )

Reset phy. Vailid only in W5500.

Definition at line 469 of file wizchip_conf.c.

References getPHYCFGR, PHYCFGR_RST, and setPHYCFGR.

Referenced by ctlwizchip(), wizphy_setphyconf(), and wizphy_setphypmode().

Variable Documentation

_WIZCHIP WIZCHIP

\ref _WIZCHIP instance

Definition at line 110 of file wizchip_conf.c.

Referenced by WIZCHIP_READ(), WIZCHIP_READ_BUF(), WIZCHIP_WRITE(), and WIZCHIP_WRITE_BUF().