ioLibrary for Cortex M series
wizchip_conf.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
39 //
40 //*****************************************************************************
41 
42 #ifndef _WIZCHIP_CONF_H_
43 #define _WIZCHIP_CONF_H_
44 
45 #include <stdint.h>
50 #define _WIZCHIP_ 5500 // 5100, 5200, 5500
51 
52 #define _WIZCHIP_IO_MODE_NONE_ 0x0000
53 #define _WIZCHIP_IO_MODE_BUS_ 0x0100
54 #define _WIZCHIP_IO_MODE_SPI_ 0x0200
56 #define _WIZCHIP_IO_MODE_BUS_DIR_ (_WIZCHIP_IO_MODE_BUS_ + 1)
57 #define _WIZCHIP_IO_MODE_BUS_INDIR_ (_WIZCHIP_IO_MODE_BUS_ + 2)
59 #define _WIZCHIP_IO_MODE_SPI_VDM_ (_WIZCHIP_IO_MODE_SPI_ + 1)
60 #define _WIZCHIP_IO_MODE_SPI_FDM_ (_WIZCHIP_IO_MODE_SPI_ + 2)
63 #if (_WIZCHIP_ == 5500)
64 
67  #define _WIZCHIP_ID_ "W5500\0"
68 
72 // #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_FDM_
73  #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_VDM_
74 
75  #include "W5500/w5500.h"
76 #else
77  #error "Unknown defined _WIZCHIP_. You should define one of 5100, 5200, and 5500 !!!"
78 #endif
79 
80 #ifndef _WIZCHIP_IO_MODE_
81  #error "Undefined _WIZCHIP_IO_MODE_. You should define it !!!"
82 #endif
83 
84 /*
85  * @brief Define I/O base address when BUS IF mode.
86  * @todo Must re-define it to fit your system when BUS IF Mode.
87  */
88 
89 //#define _WIZCHIP_IO_BASE_ 0x00000000 // TODO : Must re-define it to fit your system when BUS IF Mode.
90 
91 #if _WIZCHIP_IO_MODE_ & _WIZCHIP_IO_MODE_BUS
92  #ifndef _WIZCHIP_IO_BASE_
93  #error "You should be define _WIZCHIP_IO_BASE to fit your system memory map."
94  #endif
95 #endif
96 
97 #if _WIZCHIP_ > 5100
98  #define _WIZCHIP_SOCK_NUM_ 8
99 #else
100  #define _WIZCHIP_SOCK_NUM_ 4
101 #endif
102 
103 
104 #define DEFAULT_MAC_ADDR "00:08:DC:70:80:22"
105 #define DEFAULT_IP_ADDR "192.168.11.123"
106 #define DEFAULT_SN_MASK "255.255.255.0"
107 #define DEFAULT_GW_ADDR "192.168.11.1"
108 #define DEFAULT_DNS_ADDR "168.126.63.1"
109 
110 /*********************************************************
111 * WIZCHIP BASIC IF functions for SPI, SDIO, I2C , ETC.
112 *********************************************************/
113 typedef struct __WIZCHIP
114 {
115  uint16_t if_mode;
116  uint8_t id[6];
117  struct _CRIS
118  {
119  void (*_enter) (void);
120  void (*_exit) (void);
121  }CRIS;
122  struct _CS
123  {
124  void (*_select) (void);
125  void (*_deselect)(void);
126  }CS;
127  union
128  {
129  struct
130  {
131  uint8_t (*_read_byte) (uint32_t AddrSel);
132  void (*_write_byte) (uint32_t AddrSel, uint8_t wb);
133  }BUS;
134  struct
135  {
136  uint8_t (*_read_byte) (void);
137  void (*_write_byte) (uint8_t wb);
138  }SPI;
139  // To be added
140  //
141  }IF;
142 }_WIZCHIP;
143 
144 extern _WIZCHIP WIZCHIP;
145 
146 
155 void reg_wizchip_cris_cbfunc(void(*cris_en)(void), void(*cris_ex)(void));
156 
157 
165 void reg_wizchip_cs_cbfunc(void(*cs_sel)(void), void(*cs_desel)(void));
166 
175 void reg_wizchip_bus_cbfunc(uint8_t (*bus_rb)(uint32_t addr), void (*bus_wb)(uint32_t addr, uint8_t wb));
176 
185 void reg_wizchip_spi_cbfunc(uint8_t (*spi_rb)(void), void (*spi_wb)(uint8_t wb));
186 
187 
191 void wizchip_sw_reset(void);
192 
200 int8_t wizchip_init(uint8_t* txsize, uint8_t* rxsize);
201 
202 
203 #endif // _WIZCHIP_CONF_H_