W5500
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 
57 #define _WIZCHIP_IO_BASE_ 0x00000000
58 
59 #define _WIZCHIP_IO_MODE_NONE_ 0x0000
60 #define _WIZCHIP_IO_MODE_BUS_ 0x0100
61 #define _WIZCHIP_IO_MODE_SPI_ 0x0200
62 //#define _WIZCHIP_IO_MODE_IIC_ 0x0400
63 //#define _WIZCHIP_IO_MODE_SDIO_ 0x0800
64 // Add to
65 //
66 
67 #define _WIZCHIP_IO_MODE_BUS_DIR_ (_WIZCHIP_IO_MODE_BUS_ + 1)
68 #define _WIZCHIP_IO_MODE_BUS_INDIR_ (_WIZCHIP_IO_MODE_BUS_ + 2)
70 #define _WIZCHIP_IO_MODE_SPI_VDM_ (_WIZCHIP_IO_MODE_SPI_ + 1)
71 #define _WIZCHIP_IO_MODE_SPI_FDM_ (_WIZCHIP_IO_MODE_SPI_ + 2)
77 #if (_WIZCHIP_ == 5100)
78  #define _WIZCHIP_ID_ "W5100\0"
79 // #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_DIR_
80 // #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_INDIR_
81  #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_
82 
83 #elif (_WIZCHIP_ == 5200)
84  #define _WIZCHIP_ID_ "W5200\0"
85 // #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_BUS_INDIR_
86  #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_
87 #elif (_WIZCHIP_ == 5500)
88  #define _WIZCHIP_ID_ "W5500\0"
89  // #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_FDM_
90  #define _WIZCHIP_IO_MODE_ _WIZCHIP_IO_MODE_SPI_VDM_
91  #include "w5500.h"
92 #else
93  #error "Unknown defined _WIZCHIP_. You should define one of 5100, 5200, and 5500 !!!"
94 #endif
95 
96 #ifndef _WIZCHIP_IO_MODE_
97  #error "Undefined _WIZCHIP_IO_MODE_. You should define it !!!"
98 #endif
99 
100 #if _WIZCHIP_ > 5100
101  #define _WIZCHIP_SOCK_NUM_ 8
102 #else
103  #define _WIZCHIP_SOCK_NUM_ 4
104 #endif
105 /*********************************************************
106 * WIZCHIP BASIC IF functions for SPI, SDIO, I2C , ETC.
107 *********************************************************/
108 typedef struct __WIZCHIP
109 {
110  uint16_t if_mode;
111  uint8_t id[5];
112  struct _CRIS
113  {
114  void (*_enter) (void);
115  void (*_exit) (void);
116  }CRIS;
117  struct _CS
118  {
119  void (*_select) (void);
120  void (*_deselect)(void);
121  }CS;
122  union
123  {
124  struct
125  {
126  uint8_t (*_read_byte) (uint32_t AddrSel);
127  void (*_write_byte) (uint32_t AddrSel, uint8_t wb);
128  }BUS;
129  struct
130  {
131  uint8_t (*_read_byte) (void);
132  void (*_write_byte) (uint8_t wb);
133  }SPI;
134  // To be added
135  //
136  }IF;
137 }_WIZCHIP;
138 
139 extern _WIZCHIP WIZCHIP;
140 
147 void reg_wizchip_cris_cbfunc(void(*cris_en)(void), void(*cris_ex)(void));
153 void reg_wizchip_cs_cbfunc(void(*cs_sel)(void), void(*cs_desel)(void));
160 void reg_wizchip_bus_cbfunc(uint8_t (*bus_rb)(uint32_t addr), void (*bus_wb)(uint32_t addr, uint8_t wb));
167 void reg_wizchip_spi_cbfunc(uint8_t (*spi_rb)(void), void (*spi_wb)(uint8_t wb));
168 
169 
170 #endif