Socket APIs: Ethernet/W5500/w5500.h Source File

Wiznet Socket API

w5500.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
43 //
44 //*****************************************************************************
45 
46 //
47 
48 #ifndef _W5500_H_
49 #define _W5500_H_
50 
51 #include <stdint.h>
52 #include "wizchip_conf.h"
53 
55 #if (_WIZCHIP_ == 5500)
56 
58 #define _W5500_IO_BASE_ 0x00000000
59 
60 #define _W5500_SPI_READ_ (0x00 << 2) //< SPI interface Read operation in Control Phase
61 #define _W5500_SPI_WRITE_ (0x01 << 2) //< SPI interface Write operation in Control Phase
62 
63 #define WIZCHIP_CREG_BLOCK 0x00 //< Common register block
64 #define WIZCHIP_SREG_BLOCK(N) (1+4*N) //< Socket N register block
65 #define WIZCHIP_TXBUF_BLOCK(N) (2+4*N) //< Socket N Tx buffer address block
66 #define WIZCHIP_RXBUF_BLOCK(N) (3+4*N) //< Socket N Rx buffer address block
67 
68 #define WIZCHIP_OFFSET_INC(ADDR, N) (ADDR + (N<<8)) //< Increase offset address
69 
70 
72 // Definition For Legacy Chip Driver //
74 #define IINCHIP_READ(ADDR) WIZCHIP_READ(ADDR)
75 #define IINCHIP_WRITE(ADDR,VAL) WIZCHIP_WRITE(ADDR,VAL)
76 #define IINCHIP_READ_BUF(ADDR,BUF,LEN) WIZCHIP_READ_BUF(ADDR,BUF,LEN)
77 #define IINCHIP_WRITE_BUF(ADDR,BUF,LEN) WIZCHIP_WRITE(ADDR,BUF,LEN)
78 
79 //-------------------------- defgroup ---------------------------------
197 //------------------------------- defgroup end --------------------------------------------
198 //----------------------------- W5500 Common Registers IOMAP -----------------------------
214 #define MR (_W5500_IO_BASE_ + (0x0000 << 8) + (WIZCHIP_CREG_BLOCK << 3))
215 
221 #define GAR (_W5500_IO_BASE_ + (0x0001 << 8) + (WIZCHIP_CREG_BLOCK << 3))
222 
228 #define SUBR (_W5500_IO_BASE_ + (0x0005 << 8) + (WIZCHIP_CREG_BLOCK << 3))
229 
235 #define SHAR (_W5500_IO_BASE_ + (0x0009 << 8) + (WIZCHIP_CREG_BLOCK << 3))
236 
242 #define SIPR (_W5500_IO_BASE_ + (0x000F << 8) + (WIZCHIP_CREG_BLOCK << 3))
243 
249 #define INTLEVEL (_W5500_IO_BASE_ + (0x0013 << 8) + (WIZCHIP_CREG_BLOCK << 3))
250 
266 #define IR (_W5500_IO_BASE_ + (0x0015 << 8) + (WIZCHIP_CREG_BLOCK << 3))
267 
284 //M20150401 : Rename SYMBOE ( Re-define error in a compile)
285 //#define IMR (_W5500_IO_BASE_ + (0x0016 << 8) + (WIZCHIP_CREG_BLOCK << 3))
286 #define _IMR_ (_W5500_IO_BASE_ + (0x0016 << 8) + (WIZCHIP_CREG_BLOCK << 3))
287 
294 #define SIR (_W5500_IO_BASE_ + (0x0017 << 8) + (WIZCHIP_CREG_BLOCK << 3))
295 
303 #define SIMR (_W5500_IO_BASE_ + (0x0018 << 8) + (WIZCHIP_CREG_BLOCK << 3))
304 
313 //M20150401 : Rename SYMBOE ( Re-define error in a compile)
314 //#define RTR (_W5500_IO_BASE_ + (0x0019 << 8) + (WIZCHIP_CREG_BLOCK << 3))
315 #define _RTR_ (_W5500_IO_BASE_ + (0x0019 << 8) + (WIZCHIP_CREG_BLOCK << 3))
316 
323 //M20150401 : Rename SYMBOE ( Re-define error in a compile)
324 //#define RCR (_W5500_IO_BASE_ + (0x001B << 8) + (WIZCHIP_CREG_BLOCK << 3))
325 #define _RCR_ (_W5500_IO_BASE_ + (0x001B << 8) + (WIZCHIP_CREG_BLOCK << 3))
326 
332 #define PTIMER (_W5500_IO_BASE_ + (0x001C << 8) + (WIZCHIP_CREG_BLOCK << 3))
333 
339 #define PMAGIC (_W5500_IO_BASE_ + (0x001D << 8) + (WIZCHIP_CREG_BLOCK << 3))
340 
346 #define PHAR (_W5500_IO_BASE_ + (0x001E << 8) + (WIZCHIP_CREG_BLOCK << 3))
347 
353 #define PSID (_W5500_IO_BASE_ + (0x0024 << 8) + (WIZCHIP_CREG_BLOCK << 3))
354 
360 #define PMRU (_W5500_IO_BASE_ + (0x0026 << 8) + (WIZCHIP_CREG_BLOCK << 3))
361 
369 #define UIPR (_W5500_IO_BASE_ + (0x0028 << 8) + (WIZCHIP_CREG_BLOCK << 3))
370 
378 #define UPORTR (_W5500_IO_BASE_ + (0x002C << 8) + (WIZCHIP_CREG_BLOCK << 3))
379 
385 #define PHYCFGR (_W5500_IO_BASE_ + (0x002E << 8) + (WIZCHIP_CREG_BLOCK << 3))
386 
387 // Reserved (_W5500_IO_BASE_ + (0x002F << 8) + (WIZCHIP_CREG_BLOCK << 3))
388 // Reserved (_W5500_IO_BASE_ + (0x0030 << 8) + (WIZCHIP_CREG_BLOCK << 3))
389 // Reserved (_W5500_IO_BASE_ + (0x0031 << 8) + (WIZCHIP_CREG_BLOCK << 3))
390 // Reserved (_W5500_IO_BASE_ + (0x0032 << 8) + (WIZCHIP_CREG_BLOCK << 3))
391 // Reserved (_W5500_IO_BASE_ + (0x0033 << 8) + (WIZCHIP_CREG_BLOCK << 3))
392 // Reserved (_W5500_IO_BASE_ + (0x0034 << 8) + (WIZCHIP_CREG_BLOCK << 3))
393 // Reserved (_W5500_IO_BASE_ + (0x0035 << 8) + (WIZCHIP_CREG_BLOCK << 3))
394 // Reserved (_W5500_IO_BASE_ + (0x0036 << 8) + (WIZCHIP_CREG_BLOCK << 3))
395 // Reserved (_W5500_IO_BASE_ + (0x0037 << 8) + (WIZCHIP_CREG_BLOCK << 3))
396 // Reserved (_W5500_IO_BASE_ + (0x0038 << 8) + (WIZCHIP_CREG_BLOCK << 3))
397 
403 #define VERSIONR (_W5500_IO_BASE_ + (0x0039 << 8) + (WIZCHIP_CREG_BLOCK << 3))
404 
405 
406 //----------------------------- W5500 Socket Registers IOMAP -----------------------------
437 #define Sn_MR(N) (_W5500_IO_BASE_ + (0x0000 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
438 
456 #define Sn_CR(N) (_W5500_IO_BASE_ + (0x0001 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
457 
474 #define Sn_IR(N) (_W5500_IO_BASE_ + (0x0002 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
475 
497 #define Sn_SR(N) (_W5500_IO_BASE_ + (0x0003 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
498 
505 #define Sn_PORT(N) (_W5500_IO_BASE_ + (0x0004 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
506 
513 #define Sn_DHAR(N) (_W5500_IO_BASE_ + (0x0006 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
514 
523 #define Sn_DIPR(N) (_W5500_IO_BASE_ + (0x000C << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
524 
533 #define Sn_DPORT(N) (_W5500_IO_BASE_ + (0x0010 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
534 
540 #define Sn_MSSR(N) (_W5500_IO_BASE_ + (0x0012 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
541 
542 // Reserved (_W5500_IO_BASE_ + (0x0014 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
543 
550 #define Sn_TOS(N) (_W5500_IO_BASE_ + (0x0015 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
551 
557 #define Sn_TTL(N) (_W5500_IO_BASE_ + (0x0016 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
558 // Reserved (_W5500_IO_BASE_ + (0x0017 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
559 // Reserved (_W5500_IO_BASE_ + (0x0018 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
560 // Reserved (_W5500_IO_BASE_ + (0x0019 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
561 // Reserved (_W5500_IO_BASE_ + (0x001A << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
562 // Reserved (_W5500_IO_BASE_ + (0x001B << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
563 // Reserved (_W5500_IO_BASE_ + (0x001C << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
564 // Reserved (_W5500_IO_BASE_ + (0x001D << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
565 
576 #define Sn_RXBUF_SIZE(N) (_W5500_IO_BASE_ + (0x001E << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
577 
587 #define Sn_TXBUF_SIZE(N) (_W5500_IO_BASE_ + (0x001F << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
588 
598 #define Sn_TX_FSR(N) (_W5500_IO_BASE_ + (0x0020 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
599 
610 #define Sn_TX_RD(N) (_W5500_IO_BASE_ + (0x0022 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
611 
624 #define Sn_TX_WR(N) (_W5500_IO_BASE_ + (0x0024 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
625 
633 #define Sn_RX_RSR(N) (_W5500_IO_BASE_ + (0x0026 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
634 
646 #define Sn_RX_RD(N) (_W5500_IO_BASE_ + (0x0028 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
647 
655 #define Sn_RX_WR(N) (_W5500_IO_BASE_ + (0x002A << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
656 
665 #define Sn_IMR(N) (_W5500_IO_BASE_ + (0x002C << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
666 
672 #define Sn_FRAG(N) (_W5500_IO_BASE_ + (0x002D << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
673 
685 #define Sn_KPALVTR(N) (_W5500_IO_BASE_ + (0x002F << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
686 
687 //#define Sn_TSR(N) (_W5500_IO_BASE_ + (0x0030 << 8) + (WIZCHIP_SREG_BLOCK(N) << 3))
688 
689 
690 //----------------------------- W5500 Register values -----------------------------
691 
692 /* MODE register values */
697 #define MR_RST 0x80
698 
708 #define MR_WOL 0x20
709 
716 #define MR_PB 0x10
717 
724 #define MR_PPPOE 0x08
725 
732 #define MR_FARP 0x02
733 
734 /* IR register values */
739 #define IR_CONFLICT 0x80
740 
746 #define IR_UNREACH 0x40
747 
752 #define IR_PPPoE 0x20
753 
758 #define IR_MP 0x10
759 
760 
761 /* PHYCFGR register value */
762 #define PHYCFGR_RST ~(1<<7) //< For PHY reset, must operate AND mask.
763 #define PHYCFGR_OPMD (1<<6) // Configre PHY with OPMDC value
764 #define PHYCFGR_OPMDC_ALLA (7<<3)
765 #define PHYCFGR_OPMDC_PDOWN (6<<3)
766 #define PHYCFGR_OPMDC_NA (5<<3)
767 #define PHYCFGR_OPMDC_100FA (4<<3)
768 #define PHYCFGR_OPMDC_100F (3<<3)
769 #define PHYCFGR_OPMDC_100H (2<<3)
770 #define PHYCFGR_OPMDC_10F (1<<3)
771 #define PHYCFGR_OPMDC_10H (0<<3)
772 #define PHYCFGR_DPX_FULL (1<<2)
773 #define PHYCFGR_DPX_HALF (0<<2)
774 #define PHYCFGR_SPD_100 (1<<1)
775 #define PHYCFGR_SPD_10 (0<<1)
776 #define PHYCFGR_LNK_ON (1<<0)
777 #define PHYCFGR_LNK_OFF (0<<0)
778 
779 /* IMR register values */
785 #define IM_IR7 0x80
786 
792 #define IM_IR6 0x40
793 
799 #define IM_IR5 0x20
800 
806 #define IM_IR4 0x10
807 
808 /* Sn_MR Default values */
817 #define Sn_MR_MULTI 0x80
818 
826 #define Sn_MR_BCASTB 0x40
827 
836 #define Sn_MR_ND 0x20
837 
844 #define Sn_MR_UCASTB 0x10
845 
851 #define Sn_MR_MACRAW 0x04
852 
853 //#define Sn_MR_IPRAW 0x03 /**< IP LAYER RAW SOCK */
854 
859 #define Sn_MR_UDP 0x02
860 
865 #define Sn_MR_TCP 0x01
866 
871 #define Sn_MR_CLOSE 0x00
872 
873 /* Sn_MR values used with Sn_MR_MACRAW */
884 #define Sn_MR_MFEN Sn_MR_MULTI
885 
893 #define Sn_MR_MMB Sn_MR_ND
894 
901 #define Sn_MR_MIP6B Sn_MR_UCASTB
902 
903 /* Sn_MR value used with Sn_MR_UDP & Sn_MR_MULTI */
910 #define Sn_MR_MC Sn_MR_ND
911 
912 /* Sn_MR alternate values */
916 #define SOCK_STREAM Sn_MR_TCP
917 
921 #define SOCK_DGRAM Sn_MR_UDP
922 
923 
924 /* Sn_CR values */
937 #define Sn_CR_OPEN 0x01
938 
948 #define Sn_CR_LISTEN 0x02
949 
960 #define Sn_CR_CONNECT 0x04
961 
973 #define Sn_CR_DISCON 0x08
974 
979 #define Sn_CR_CLOSE 0x10
980 
987 #define Sn_CR_SEND 0x20
988 
997 #define Sn_CR_SEND_MAC 0x21
998 
1005 #define Sn_CR_SEND_KEEP 0x22
1006 
1013 #define Sn_CR_RECV 0x40
1014 
1015 /* Sn_IR values */
1020 #define Sn_IR_SENDOK 0x10
1021 
1026 #define Sn_IR_TIMEOUT 0x08
1027 
1032 #define Sn_IR_RECV 0x04
1033 
1038 #define Sn_IR_DISCON 0x02
1039 
1044 #define Sn_IR_CON 0x01
1045 
1046 /* Sn_SR values */
1052 #define SOCK_CLOSED 0x00
1053 
1060 #define SOCK_INIT 0x13
1061 
1068 #define SOCK_LISTEN 0x14
1069 
1077 #define SOCK_SYNSENT 0x15
1078 
1085 #define SOCK_SYNRECV 0x16
1086 
1094 #define SOCK_ESTABLISHED 0x17
1095 
1102 #define SOCK_FIN_WAIT 0x18
1103 
1110 #define SOCK_CLOSING 0x1A
1111 
1118 #define SOCK_TIME_WAIT 0x1B
1119 
1126 #define SOCK_CLOSE_WAIT 0x1C
1127 
1133 #define SOCK_LAST_ACK 0x1D
1134 
1141 #define SOCK_UDP 0x22
1142 
1143 //#define SOCK_IPRAW 0x32 /**< IP raw mode socket */
1144 
1151 #define SOCK_MACRAW 0x42
1152 
1153 //#define SOCK_PPPOE 0x5F
1154 
1155 /* IP PROTOCOL */
1156 #define IPPROTO_IP 0 //< Dummy for IP
1157 #define IPPROTO_ICMP 1 //< Control message protocol
1158 #define IPPROTO_IGMP 2 //< Internet group management protocol
1159 #define IPPROTO_GGP 3 //< Gateway^2 (deprecated)
1160 #define IPPROTO_TCP 6 //< TCP
1161 #define IPPROTO_PUP 12 //< PUP
1162 #define IPPROTO_UDP 17 //< UDP
1163 #define IPPROTO_IDP 22 //< XNS idp
1164 #define IPPROTO_ND 77 //< UNOFFICIAL net disk protocol
1165 #define IPPROTO_RAW 255 //< Raw IP packet
1166 
1167 
1179 #define WIZCHIP_CRITICAL_ENTER() WIZCHIP.CRIS._enter()
1180 
1181 #ifdef _exit
1182 #undef _exit
1183 #endif
1184 
1196 #define WIZCHIP_CRITICAL_EXIT() WIZCHIP.CRIS._exit()
1197 
1198 
1200 // Basic I/O Function //
1202 
1209 uint8_t WIZCHIP_READ (uint32_t AddrSel);
1210 
1218 void WIZCHIP_WRITE(uint32_t AddrSel, uint8_t wb );
1219 
1227 void WIZCHIP_READ_BUF (uint32_t AddrSel, uint8_t* pBuf, uint16_t len);
1228 
1236 void WIZCHIP_WRITE_BUF(uint32_t AddrSel, uint8_t* pBuf, uint16_t len);
1237 
1239 // Common Register I/O function //
1241 
1247 #define setMR(mr) \
1248  WIZCHIP_WRITE(MR,mr)
1249 
1250 
1257 #define getMR() \
1258  WIZCHIP_READ(MR)
1259 
1266 #define setGAR(gar) \
1267  WIZCHIP_WRITE_BUF(GAR,gar,4)
1268 
1275 #define getGAR(gar) \
1276  WIZCHIP_READ_BUF(GAR,gar,4)
1277 
1284 #define setSUBR(subr) \
1285  WIZCHIP_WRITE_BUF(SUBR, subr,4)
1286 
1287 
1294 #define getSUBR(subr) \
1295  WIZCHIP_READ_BUF(SUBR, subr, 4)
1296 
1303 #define setSHAR(shar) \
1304  WIZCHIP_WRITE_BUF(SHAR, shar, 6)
1305 
1312 #define getSHAR(shar) \
1313  WIZCHIP_READ_BUF(SHAR, shar, 6)
1314 
1321 #define setSIPR(sipr) \
1322  WIZCHIP_WRITE_BUF(SIPR, sipr, 4)
1323 
1330 #define getSIPR(sipr) \
1331  WIZCHIP_READ_BUF(SIPR, sipr, 4)
1332 
1339 #define setINTLEVEL(intlevel) {\
1340  WIZCHIP_WRITE(INTLEVEL, (uint8_t)(intlevel >> 8)); \
1341  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(INTLEVEL,1), (uint8_t) intlevel); \
1342  }
1343 
1344 
1351 //M20150401 : Type explict declaration
1352 /*
1353 #define getINTLEVEL() \
1354  ((WIZCHIP_READ(INTLEVEL) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(INTLEVEL,1)))
1355 */
1356 #define getINTLEVEL() \
1357  (((uint16_t)WIZCHIP_READ(INTLEVEL) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(INTLEVEL,1)))
1358 
1365 #define setIR(ir) \
1366  WIZCHIP_WRITE(IR, (ir & 0xF0))
1367 
1374 #define getIR() \
1375  (WIZCHIP_READ(IR) & 0xF0)
1376 
1382 #define setIMR(imr) \
1383  WIZCHIP_WRITE(_IMR_, imr)
1384 
1391 #define getIMR() \
1392  WIZCHIP_READ(_IMR_)
1393 
1400 #define setSIR(sir) \
1401  WIZCHIP_WRITE(SIR, sir)
1402 
1409 #define getSIR() \
1410  WIZCHIP_READ(SIR)
1411 
1417 #define setSIMR(simr) \
1418  WIZCHIP_WRITE(SIMR, simr)
1419 
1426 #define getSIMR() \
1427  WIZCHIP_READ(SIMR)
1428 
1435 #define setRTR(rtr) {\
1436  WIZCHIP_WRITE(_RTR_, (uint8_t)(rtr >> 8)); \
1437  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(_RTR_,1), (uint8_t) rtr); \
1438  }
1439 
1446 //M20150401 : Type explict declaration
1447 /*
1448 #define getRTR() \
1449  ((WIZCHIP_READ(_RTR_) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_RTR_,1)))
1450 */
1451 #define getRTR() \
1452  (((uint16_t)WIZCHIP_READ(_RTR_) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(_RTR_,1)))
1453 
1454 
1461 #define setRCR(rcr) \
1462  WIZCHIP_WRITE(_RCR_, rcr)
1463 
1470 #define getRCR() \
1471  WIZCHIP_READ(_RCR_)
1472 
1473 //================================================== test done ===========================================================
1474 
1481 #define setPTIMER(ptimer) \
1482  WIZCHIP_WRITE(PTIMER, ptimer)
1483 
1490 #define getPTIMER() \
1491  WIZCHIP_READ(PTIMER)
1492 
1499 #define setPMAGIC(pmagic) \
1500  WIZCHIP_WRITE(PMAGIC, pmagic)
1501 
1508 #define getPMAGIC() \
1509  WIZCHIP_READ(PMAGIC)
1510 
1517 #define setPHAR(phar) \
1518  WIZCHIP_WRITE_BUF(PHAR, phar, 6)
1519 
1526 #define getPHAR(phar) \
1527  WIZCHIP_READ_BUF(PHAR, phar, 6)
1528 
1535 #define setPSID(psid) {\
1536  WIZCHIP_WRITE(PSID, (uint8_t)(psid >> 8)); \
1537  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(PSID,1), (uint8_t) psid); \
1538  }
1539 
1546 //uint16_t getPSID(void);
1547 //M20150401 : Type explict declaration
1548 /*
1549 #define getPSID() \
1550  ((WIZCHIP_READ(PSID) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(PSID,1)))
1551 */
1552 #define getPSID() \
1553  (((uint16_t)WIZCHIP_READ(PSID) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(PSID,1)))
1554 
1561 #define setPMRU(pmru) { \
1562  WIZCHIP_WRITE(PMRU, (uint8_t)(pmru>>8)); \
1563  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(PMRU,1), (uint8_t) pmru); \
1564  }
1565 
1572 //M20150401 : Type explict declaration
1573 /*
1574 #define getPMRU() \
1575  ((WIZCHIP_READ(PMRU) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(PMRU,1)))
1576 */
1577 #define getPMRU() \
1578  (((uint16_t)WIZCHIP_READ(PMRU) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(PMRU,1)))
1579 
1585 //M20150401 : Size Error of UIPR (6 -> 4)
1586 /*
1587 #define getUIPR(uipr) \
1588  WIZCHIP_READ_BUF(UIPR,uipr,6)
1589 */
1590 #define getUIPR(uipr) \
1591  WIZCHIP_READ_BUF(UIPR,uipr,4)
1592 
1598 //M20150401 : Type explict declaration
1599 /*
1600 #define getUPORTR() \
1601  ((WIZCHIP_READ(UPORTR) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(UPORTR,1)))
1602 */
1603 #define getUPORTR() \
1604  (((uint16_t)WIZCHIP_READ(UPORTR) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(UPORTR,1)))
1605 
1612 #define setPHYCFGR(phycfgr) \
1613  WIZCHIP_WRITE(PHYCFGR, phycfgr)
1614 
1621 #define getPHYCFGR() \
1622  WIZCHIP_READ(PHYCFGR)
1623 
1629 #define getVERSIONR() \
1630  WIZCHIP_READ(VERSIONR)
1631 
1633 
1635 // Socket N register I/O function //
1637 
1644 #define setSn_MR(sn, mr) \
1645  WIZCHIP_WRITE(Sn_MR(sn),mr)
1646 
1654 #define getSn_MR(sn) \
1655  WIZCHIP_READ(Sn_MR(sn))
1656 
1664 #define setSn_CR(sn, cr) \
1665  WIZCHIP_WRITE(Sn_CR(sn), cr)
1666 
1674 #define getSn_CR(sn) \
1675  WIZCHIP_READ(Sn_CR(sn))
1676 
1684 #define setSn_IR(sn, ir) \
1685  WIZCHIP_WRITE(Sn_IR(sn), (ir & 0x1F))
1686 
1694 #define getSn_IR(sn) \
1695  (WIZCHIP_READ(Sn_IR(sn)) & 0x1F)
1696 
1704 #define setSn_IMR(sn, imr) \
1705  WIZCHIP_WRITE(Sn_IMR(sn), (imr & 0x1F))
1706 
1714 #define getSn_IMR(sn) \
1715  (WIZCHIP_READ(Sn_IMR(sn)) & 0x1F)
1716 
1723 #define getSn_SR(sn) \
1724  WIZCHIP_READ(Sn_SR(sn))
1725 
1733 #define setSn_PORT(sn, port) { \
1734  WIZCHIP_WRITE(Sn_PORT(sn), (uint8_t)(port >> 8)); \
1735  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_PORT(sn),1), (uint8_t) port); \
1736  }
1737 
1745 //M20150401 : Type explict declaration
1746 /*
1747 #define getSn_PORT(sn) \
1748  ((WIZCHIP_READ(Sn_PORT(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_PORT(sn),1)))
1749 */
1750 #define getSn_PORT(sn) \
1751  (((uint16_t)WIZCHIP_READ(Sn_PORT(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_PORT(sn),1)))
1752 
1760 #define setSn_DHAR(sn, dhar) \
1761  WIZCHIP_WRITE_BUF(Sn_DHAR(sn), dhar, 6)
1762 
1770 #define getSn_DHAR(sn, dhar) \
1771  WIZCHIP_READ_BUF(Sn_DHAR(sn), dhar, 6)
1772 
1780 #define setSn_DIPR(sn, dipr) \
1781  WIZCHIP_WRITE_BUF(Sn_DIPR(sn), dipr, 4)
1782 
1790 #define getSn_DIPR(sn, dipr) \
1791  WIZCHIP_READ_BUF(Sn_DIPR(sn), dipr, 4)
1792 
1800 #define setSn_DPORT(sn, dport) { \
1801  WIZCHIP_WRITE(Sn_DPORT(sn), (uint8_t) (dport>>8)); \
1802  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_DPORT(sn),1), (uint8_t) dport); \
1803  }
1804 
1812 //M20150401 : Type explict declaration
1813 /*
1814 #define getSn_DPORT(sn) \
1815  ((WIZCHIP_READ(Sn_DPORT(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_DPORT(sn),1)))
1816 */
1817 #define getSn_DPORT(sn) \
1818  (((uint16_t)WIZCHIP_READ(Sn_DPORT(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_DPORT(sn),1)))
1819 
1827 #define setSn_MSSR(sn, mss) { \
1828  WIZCHIP_WRITE(Sn_MSSR(sn), (uint8_t)(mss>>8)); \
1829  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_MSSR(sn),1), (uint8_t) mss); \
1830  }
1831 
1839 //M20150401 : Type explict declaration
1840 /*
1841 #define getSn_MSSR(sn) \
1842  ((WIZCHIP_READ(Sn_MSSR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_MSSR(sn),1)))
1843 */
1844 #define getSn_MSSR(sn) \
1845  (((uint16_t)WIZCHIP_READ(Sn_MSSR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_MSSR(sn),1)))
1846 
1854 #define setSn_TOS(sn, tos) \
1855  WIZCHIP_WRITE(Sn_TOS(sn), tos)
1856 
1864 #define getSn_TOS(sn) \
1865  WIZCHIP_READ(Sn_TOS(sn))
1866 
1874 #define setSn_TTL(sn, ttl) \
1875  WIZCHIP_WRITE(Sn_TTL(sn), ttl)
1876 
1877 
1885 #define getSn_TTL(sn) \
1886  WIZCHIP_READ(Sn_TTL(sn))
1887 
1888 
1896 #define setSn_RXBUF_SIZE(sn, rxbufsize) \
1897  WIZCHIP_WRITE(Sn_RXBUF_SIZE(sn),rxbufsize)
1898 
1899 
1907 #define getSn_RXBUF_SIZE(sn) \
1908  WIZCHIP_READ(Sn_RXBUF_SIZE(sn))
1909 
1917 #define setSn_TXBUF_SIZE(sn, txbufsize) \
1918  WIZCHIP_WRITE(Sn_TXBUF_SIZE(sn), txbufsize)
1919 
1927 #define getSn_TXBUF_SIZE(sn) \
1928  WIZCHIP_READ(Sn_TXBUF_SIZE(sn))
1929 
1936 uint16_t getSn_TX_FSR(uint8_t sn);
1937 
1944 //M20150401 : Type explict declaration
1945 /*
1946 #define getSn_TX_RD(sn) \
1947  ((WIZCHIP_READ(Sn_TX_RD(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_TX_RD(sn),1)))
1948 */
1949 #define getSn_TX_RD(sn) \
1950  (((uint16_t)WIZCHIP_READ(Sn_TX_RD(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_TX_RD(sn),1)))
1951 
1959 #define setSn_TX_WR(sn, txwr) { \
1960  WIZCHIP_WRITE(Sn_TX_WR(sn), (uint8_t)(txwr>>8)); \
1961  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_TX_WR(sn),1), (uint8_t) txwr); \
1962  }
1963 
1971 //M20150401 : Type explict declaration
1972 /*
1973 #define getSn_TX_WR(sn) \
1974  ((WIZCHIP_READ(Sn_TX_WR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_TX_WR(sn),1)))
1975 */
1976 #define getSn_TX_WR(sn) \
1977  (((uint16_t)WIZCHIP_READ(Sn_TX_WR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_TX_WR(sn),1)))
1978 
1979 
1986 uint16_t getSn_RX_RSR(uint8_t sn);
1987 
1988 
1996 #define setSn_RX_RD(sn, rxrd) { \
1997  WIZCHIP_WRITE(Sn_RX_RD(sn), (uint8_t)(rxrd>>8)); \
1998  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_RX_RD(sn),1), (uint8_t) rxrd); \
1999  }
2000 
2008 //M20150401 : Type explict declaration
2009 /*
2010 #define getSn_RX_RD(sn) \
2011  ((WIZCHIP_READ(Sn_RX_RD(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_RX_RD(sn),1)))
2012 */
2013 #define getSn_RX_RD(sn) \
2014  (((uint16_t)WIZCHIP_READ(Sn_RX_RD(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_RX_RD(sn),1)))
2015 
2022 //M20150401 : Type explict declaration
2023 /*
2024 #define getSn_RX_WR(sn) \
2025  ((WIZCHIP_READ(Sn_RX_WR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_RX_WR(sn),1)))
2026 */
2027 #define getSn_RX_WR(sn) \
2028  (((uint16_t)WIZCHIP_READ(Sn_RX_WR(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_RX_WR(sn),1)))
2029 
2037 #define setSn_FRAG(sn, frag) { \
2038  WIZCHIP_WRITE(Sn_FRAG(sn), (uint8_t)(frag >>8)); \
2039  WIZCHIP_WRITE(WIZCHIP_OFFSET_INC(Sn_FRAG(sn),1), (uint8_t) frag); \
2040  }
2041 
2049 //M20150401 : Type explict declaration
2050 /*
2051 #define getSn_FRAG(sn) \
2052  ((WIZCHIP_READ(Sn_FRAG(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_FRAG(sn),1)))
2053 */
2054 #define getSn_FRAG(sn) \
2055  (((uint16_t)WIZCHIP_READ(Sn_FRAG(sn)) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(Sn_FRAG(sn),1)))
2056 
2064 #define setSn_KPALVTR(sn, kpalvt) \
2065  WIZCHIP_WRITE(Sn_KPALVTR(sn), kpalvt)
2066 
2074 #define getSn_KPALVTR(sn) \
2075  WIZCHIP_READ(Sn_KPALVTR(sn))
2076 
2078 
2080 // Sn_TXBUF & Sn_RXBUF IO function //
2082 
2088 //M20150401 : Type explict declaration
2089 /*
2090 #define getSn_RxMAX(sn) \
2091  (getSn_RXBUF_SIZE(sn) << 10)
2092 */
2093 #define getSn_RxMAX(sn) \
2094  (((uint16_t)getSn_RXBUF_SIZE(sn)) << 10)
2095 
2102 //M20150401 : Type explict declaration
2103 /*
2104 #define getSn_TxMAX(sn) \
2105  (getSn_TXBUF_SIZE(sn) << 10)
2106 */
2107 #define getSn_TxMAX(sn) \
2108  (((uint16_t)getSn_TXBUF_SIZE(sn)) << 10)
2109 
2124 void wiz_send_data(uint8_t sn, uint8_t *wizdata, uint16_t len);
2125 
2140 void wiz_recv_data(uint8_t sn, uint8_t *wizdata, uint16_t len);
2141 
2149 void wiz_recv_ignore(uint8_t sn, uint16_t len);
2150 
2152 #endif
2153 
2155 #endif // _W5500_H_
uint16_t getSn_TX_FSR(uint8_t sn)
Get Sn_TX_FSR register.
uint16_t getSn_RX_RSR(uint8_t sn)
Get Sn_RX_RSR register.
void wiz_recv_data(uint8_t sn, uint8_t *wizdata, uint16_t len)
It copies data to your buffer from internal RX memory.
void WIZCHIP_READ_BUF(uint32_t AddrSel, uint8_t *pBuf, uint16_t len)
It reads sequence data from registers.
void wiz_send_data(uint8_t sn, uint8_t *wizdata, uint16_t len)
It copies data to internal TX memory.
void WIZCHIP_WRITE(uint32_t AddrSel, uint8_t wb)
It writes 1 byte value to a register.
void WIZCHIP_WRITE_BUF(uint32_t AddrSel, uint8_t *pBuf, uint16_t len)
It writes sequence data to registers.
void wiz_recv_ignore(uint8_t sn, uint16_t len)
It discard the received data in RX memory.
uint8_t WIZCHIP_READ(uint32_t AddrSel)
It reads 1 byte value from a register.
WIZCHIP Config Header File.
Generated on Wed May 4 2016 16:43:58 for Socket APIs by   doxygen 1.8.9.1