Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of WIZnetInterface by
arch/ext/W5500.h@5:f432ae8f8708, 2015-06-15 (annotated)
- Committer:
- Soohwan Kim
- Date:
- Mon Jun 15 22:39:51 2015 +0900
- Revision:
- 5:f432ae8f8708
- Parent:
- 4:4930f81bbe98
- Child:
- 6:94a81e80c675
amend
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Soohwan Kim |
0:6f28332c466f | 1 | /* Copyright (C) 2012 mbed.org, MIT License |
Soohwan Kim |
0:6f28332c466f | 2 | * |
Soohwan Kim |
0:6f28332c466f | 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software |
Soohwan Kim |
0:6f28332c466f | 4 | * and associated documentation files (the "Software"), to deal in the Software without restriction, |
Soohwan Kim |
0:6f28332c466f | 5 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, |
Soohwan Kim |
0:6f28332c466f | 6 | * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is |
Soohwan Kim |
0:6f28332c466f | 7 | * furnished to do so, subject to the following conditions: |
Soohwan Kim |
0:6f28332c466f | 8 | * |
Soohwan Kim |
0:6f28332c466f | 9 | * The above copyright notice and this permission notice shall be included in all copies or |
Soohwan Kim |
0:6f28332c466f | 10 | * substantial portions of the Software. |
Soohwan Kim |
0:6f28332c466f | 11 | * |
Soohwan Kim |
0:6f28332c466f | 12 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
Soohwan Kim |
0:6f28332c466f | 13 | * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
Soohwan Kim |
0:6f28332c466f | 14 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
Soohwan Kim |
0:6f28332c466f | 15 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Soohwan Kim |
0:6f28332c466f | 16 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Soohwan Kim |
0:6f28332c466f | 17 | * |
Soohwan Kim |
0:6f28332c466f | 18 | */ |
Soohwan Kim |
0:6f28332c466f | 19 | |
Soohwan Kim |
0:6f28332c466f | 20 | #pragma once |
Soohwan Kim |
0:6f28332c466f | 21 | |
Soohwan Kim |
0:6f28332c466f | 22 | #include "mbed.h" |
Soohwan Kim |
0:6f28332c466f | 23 | #include "mbed_debug.h" |
Soohwan Kim |
0:6f28332c466f | 24 | |
Soohwan Kim |
0:6f28332c466f | 25 | #define TEST_ASSERT(A) while(!(A)){debug("\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);}; |
Soohwan Kim |
0:6f28332c466f | 26 | |
Soohwan Kim |
0:6f28332c466f | 27 | #define DEFAULT_WAIT_RESP_TIMEOUT 500 |
Soohwan Kim |
0:6f28332c466f | 28 | |
Soohwan Kim |
0:6f28332c466f | 29 | |
Soohwan Kim |
0:6f28332c466f | 30 | |
Soohwan Kim |
4:4930f81bbe98 | 31 | |
Soohwan Kim |
4:4930f81bbe98 | 32 | #define SOCK_ERROR 0 |
Soohwan Kim |
4:4930f81bbe98 | 33 | #define SOCKERR_SOCKNUM (SOCK_ERROR - 1) ///< Invalid socket number |
Soohwan Kim |
4:4930f81bbe98 | 34 | #define SOCKERR_SOCKOPT (SOCK_ERROR - 2) ///< Invalid socket option |
Soohwan Kim |
4:4930f81bbe98 | 35 | #define SOCKERR_SOCKINIT (SOCK_ERROR - 3) ///< Socket is not initialized |
Soohwan Kim |
4:4930f81bbe98 | 36 | #define SOCKERR_SOCKCLOSED (SOCK_ERROR - 4) ///< Socket unexpectedly closed. |
Soohwan Kim |
4:4930f81bbe98 | 37 | #define SOCKERR_SOCKMODE (SOCK_ERROR - 5) ///< Invalid socket mode for socket operation. |
Soohwan Kim |
4:4930f81bbe98 | 38 | #define SOCKERR_SOCKFLAG (SOCK_ERROR - 6) ///< Invalid socket flag |
Soohwan Kim |
4:4930f81bbe98 | 39 | #define SOCKERR_SOCKSTATUS (SOCK_ERROR - 7) ///< Invalid socket status for socket operation. |
Soohwan Kim |
4:4930f81bbe98 | 40 | #define SOCKERR_ARG (SOCK_ERROR - 10) ///< Invalid argrument. |
Soohwan Kim |
4:4930f81bbe98 | 41 | #define SOCKERR_PORTZERO (SOCK_ERROR - 11) ///< Port number is zero |
Soohwan Kim |
4:4930f81bbe98 | 42 | #define SOCKERR_IPINVALID (SOCK_ERROR - 12) ///< Invalid IP address |
Soohwan Kim |
4:4930f81bbe98 | 43 | #define SOCKERR_TIMEOUT (SOCK_ERROR - 13) ///< Timeout occurred |
Soohwan Kim |
4:4930f81bbe98 | 44 | #define SOCKERR_DATALEN (SOCK_ERROR - 14) ///< Data length is zero or greater than buffer max size. |
Soohwan Kim |
4:4930f81bbe98 | 45 | #define SOCKERR_BUFFER (SOCK_ERROR - 15) ///< Socket buffer is not enough for data communication. |
Soohwan Kim |
4:4930f81bbe98 | 46 | |
Soohwan Kim |
4:4930f81bbe98 | 47 | #define SOCK_ANY_PORT_NUM 0xC000; |
Soohwan Kim |
4:4930f81bbe98 | 48 | |
Soohwan Kim |
0:6f28332c466f | 49 | |
Soohwan Kim |
0:6f28332c466f | 50 | #define MAX_SOCK_NUM 8 |
Soohwan Kim |
0:6f28332c466f | 51 | |
Soohwan Kim |
0:6f28332c466f | 52 | #define MR 0x0000 |
Soohwan Kim |
0:6f28332c466f | 53 | #define GAR 0x0001 |
Soohwan Kim |
0:6f28332c466f | 54 | #define SUBR 0x0005 |
Soohwan Kim |
0:6f28332c466f | 55 | #define SHAR 0x0009 |
Soohwan Kim |
0:6f28332c466f | 56 | #define SIPR 0x000f |
Soohwan Kim |
4:4930f81bbe98 | 57 | #define INTLEVEL 0x0013 |
Soohwan Kim |
4:4930f81bbe98 | 58 | #define IR 0x0015 |
Soohwan Kim |
4:4930f81bbe98 | 59 | #define IMR 0x0016 |
Soohwan Kim |
4:4930f81bbe98 | 60 | #define SIR 0x0017 |
Soohwan Kim |
4:4930f81bbe98 | 61 | #define SIMR 0x0018 |
Soohwan Kim |
4:4930f81bbe98 | 62 | #define RTR 0x0019 |
Soohwan Kim |
4:4930f81bbe98 | 63 | #define RCR 0x001b |
Soohwan Kim |
4:4930f81bbe98 | 64 | #define UIPR 0x0028 |
Soohwan Kim |
4:4930f81bbe98 | 65 | #define UPORTR 0x002c |
Soohwan Kim |
4:4930f81bbe98 | 66 | #define PHYCFGR 0x002e |
Soohwan Kim |
0:6f28332c466f | 67 | |
Soohwan Kim |
0:6f28332c466f | 68 | // W5500 socket register |
Soohwan Kim |
0:6f28332c466f | 69 | #define Sn_MR 0x0000 |
Soohwan Kim |
0:6f28332c466f | 70 | #define Sn_CR 0x0001 |
Soohwan Kim |
0:6f28332c466f | 71 | #define Sn_IR 0x0002 |
Soohwan Kim |
0:6f28332c466f | 72 | #define Sn_SR 0x0003 |
Soohwan Kim |
0:6f28332c466f | 73 | #define Sn_PORT 0x0004 |
Soohwan Kim |
4:4930f81bbe98 | 74 | #define Sn_DHAR 0x0006 |
Soohwan Kim |
0:6f28332c466f | 75 | #define Sn_DIPR 0x000c |
Soohwan Kim |
0:6f28332c466f | 76 | #define Sn_DPORT 0x0010 |
Soohwan Kim |
0:6f28332c466f | 77 | #define Sn_RXBUF_SIZE 0x001e |
Soohwan Kim |
0:6f28332c466f | 78 | #define Sn_TXBUF_SIZE 0x001f |
Soohwan Kim |
0:6f28332c466f | 79 | #define Sn_TX_FSR 0x0020 |
Soohwan Kim |
4:4930f81bbe98 | 80 | #define Sn_TX_RD 0x0022 |
Soohwan Kim |
0:6f28332c466f | 81 | #define Sn_TX_WR 0x0024 |
Soohwan Kim |
0:6f28332c466f | 82 | #define Sn_RX_RSR 0x0026 |
Soohwan Kim |
0:6f28332c466f | 83 | #define Sn_RX_RD 0x0028 |
Soohwan Kim |
4:4930f81bbe98 | 84 | #define Sn_RX_WR 0x002a |
Soohwan Kim |
4:4930f81bbe98 | 85 | #define Sn_IMR 0x002c |
Soohwan Kim |
4:4930f81bbe98 | 86 | |
Soohwan Kim |
4:4930f81bbe98 | 87 | |
Soohwan Kim |
4:4930f81bbe98 | 88 | //Define for Socket Command register option value |
Soohwan Kim |
4:4930f81bbe98 | 89 | #define Sn_CR_OPEN 0x01 |
Soohwan Kim |
4:4930f81bbe98 | 90 | #define Sn_CR_LISTEN 0x02 |
Soohwan Kim |
4:4930f81bbe98 | 91 | #define Sn_CR_CONNECT 0x04 |
Soohwan Kim |
4:4930f81bbe98 | 92 | #define Sn_CR_DISCON 0x08 |
Soohwan Kim |
4:4930f81bbe98 | 93 | #define Sn_CR_CLOSE 0x10 |
Soohwan Kim |
4:4930f81bbe98 | 94 | #define Sn_CR_SEND 0x20 |
Soohwan Kim |
4:4930f81bbe98 | 95 | #define Sn_CR_SEND_MAC 0x21 |
Soohwan Kim |
4:4930f81bbe98 | 96 | #define Sn_CR_SEND_KEEP 0x22 |
Soohwan Kim |
4:4930f81bbe98 | 97 | #define Sn_CR_RECV 0x40 |
Soohwan Kim |
4:4930f81bbe98 | 98 | |
Soohwan Kim |
4:4930f81bbe98 | 99 | |
Soohwan Kim |
4:4930f81bbe98 | 100 | //Define for Socket Mode register option value |
Soohwan Kim |
4:4930f81bbe98 | 101 | #define Sn_MR_CLOSE 0x00 |
Soohwan Kim |
4:4930f81bbe98 | 102 | #define Sn_MR_TCP 0x01 |
Soohwan Kim |
4:4930f81bbe98 | 103 | #define Sn_MR_UDP 0x02 |
Soohwan Kim |
4:4930f81bbe98 | 104 | #define Sn_MR_MACRAW 0x04 |
Soohwan Kim |
4:4930f81bbe98 | 105 | #define Sn_MR_UCASTB 0x10 |
Soohwan Kim |
4:4930f81bbe98 | 106 | #define Sn_MR_ND 0x20 |
Soohwan Kim |
4:4930f81bbe98 | 107 | #define Sn_MR_BCASTB 0x40 |
Soohwan Kim |
4:4930f81bbe98 | 108 | #define Sn_MR_MULTI 0x80 |
Soohwan Kim |
4:4930f81bbe98 | 109 | |
Soohwan Kim |
4:4930f81bbe98 | 110 | #define Sn_IR_SENDOK 0x10 |
Soohwan Kim |
4:4930f81bbe98 | 111 | |
Soohwan Kim |
4:4930f81bbe98 | 112 | //Sn_IR values |
Soohwan Kim |
4:4930f81bbe98 | 113 | |
Soohwan Kim |
4:4930f81bbe98 | 114 | #define Sn_IR_TIMEOUT 0x08 |
Soohwan Kim |
4:4930f81bbe98 | 115 | #define Sn_IR_RECV 0x04 |
Soohwan Kim |
4:4930f81bbe98 | 116 | #define Sn_IR_DISCON 0x02 |
Soohwan Kim |
4:4930f81bbe98 | 117 | #define Sn_IR_CON 0x01 |
Soohwan Kim |
4:4930f81bbe98 | 118 | |
Soohwan Kim |
4:4930f81bbe98 | 119 | |
Soohwan Kim |
4:4930f81bbe98 | 120 | |
Soohwan Kim |
4:4930f81bbe98 | 121 | /* PHYCFGR register value */ |
Soohwan Kim |
4:4930f81bbe98 | 122 | #define PHYCFGR_RST ~(1<<7) //< For PHY reset, must operate AND mask. |
Soohwan Kim |
4:4930f81bbe98 | 123 | #define PHYCFGR_OPMD (1<<6) // Configre PHY with OPMDC value |
Soohwan Kim |
4:4930f81bbe98 | 124 | #define PHYCFGR_OPMDC_ALLA (7<<3) |
Soohwan Kim |
4:4930f81bbe98 | 125 | #define PHYCFGR_OPMDC_PDOWN (6<<3) |
Soohwan Kim |
4:4930f81bbe98 | 126 | #define PHYCFGR_OPMDC_NA (5<<3) |
Soohwan Kim |
4:4930f81bbe98 | 127 | #define PHYCFGR_OPMDC_100FA (4<<3) |
Soohwan Kim |
4:4930f81bbe98 | 128 | #define PHYCFGR_OPMDC_100F (3<<3) |
Soohwan Kim |
4:4930f81bbe98 | 129 | #define PHYCFGR_OPMDC_100H (2<<3) |
Soohwan Kim |
4:4930f81bbe98 | 130 | #define PHYCFGR_OPMDC_10F (1<<3) |
Soohwan Kim |
4:4930f81bbe98 | 131 | #define PHYCFGR_OPMDC_10H (0<<3) |
Soohwan Kim |
4:4930f81bbe98 | 132 | #define PHYCFGR_DPX_FULL (1<<2) |
Soohwan Kim |
4:4930f81bbe98 | 133 | #define PHYCFGR_DPX_HALF (0<<2) |
Soohwan Kim |
4:4930f81bbe98 | 134 | #define PHYCFGR_SPD_100 (1<<1) |
Soohwan Kim |
4:4930f81bbe98 | 135 | #define PHYCFGR_SPD_10 (0<<1) |
Soohwan Kim |
4:4930f81bbe98 | 136 | #define PHYCFGR_LNK_ON (1<<0) |
Soohwan Kim |
4:4930f81bbe98 | 137 | #define PHYCFGR_LNK_OFF (0<<0) |
Soohwan Kim |
4:4930f81bbe98 | 138 | |
Soohwan Kim |
4:4930f81bbe98 | 139 | //PHY status define |
Soohwan Kim |
4:4930f81bbe98 | 140 | #define PHY_CONFBY_HW 0 ///< Configured PHY operation mode by HW pin |
Soohwan Kim |
4:4930f81bbe98 | 141 | #define PHY_CONFBY_SW 1 ///< Configured PHY operation mode by SW register |
Soohwan Kim |
4:4930f81bbe98 | 142 | #define PHY_MODE_MANUAL 0 ///< Configured PHY operation mode with user setting. |
Soohwan Kim |
4:4930f81bbe98 | 143 | #define PHY_MODE_AUTONEGO 1 ///< Configured PHY operation mode with auto-negotiation |
Soohwan Kim |
4:4930f81bbe98 | 144 | #define PHY_SPEED_10 0 ///< Link Speed 10 |
Soohwan Kim |
4:4930f81bbe98 | 145 | #define PHY_SPEED_100 1 ///< Link Speed 100 |
Soohwan Kim |
4:4930f81bbe98 | 146 | #define PHY_DUPLEX_HALF 0 ///< Link Half-Duplex |
Soohwan Kim |
4:4930f81bbe98 | 147 | #define PHY_DUPLEX_FULL 1 ///< Link Full-Duplex |
Soohwan Kim |
4:4930f81bbe98 | 148 | #define PHY_LINK_OFF 0 ///< Link Off |
Soohwan Kim |
4:4930f81bbe98 | 149 | #define PHY_LINK_ON 1 ///< Link On |
Soohwan Kim |
4:4930f81bbe98 | 150 | #define PHY_POWER_NORM 0 ///< PHY power normal mode |
Soohwan Kim |
4:4930f81bbe98 | 151 | #define PHY_POWER_DOWN 1 ///< PHY power down mode |
Soohwan Kim |
0:6f28332c466f | 152 | |
Soohwan Kim |
0:6f28332c466f | 153 | class WIZnet_Chip { |
Soohwan Kim |
0:6f28332c466f | 154 | public: |
embeddist | 3:f8c6efc8bf83 | 155 | enum Protocol { |
embeddist | 3:f8c6efc8bf83 | 156 | CLOSED = 0, |
embeddist | 3:f8c6efc8bf83 | 157 | TCP = 1, |
embeddist | 3:f8c6efc8bf83 | 158 | UDP = 2, |
embeddist | 3:f8c6efc8bf83 | 159 | }; |
embeddist | 3:f8c6efc8bf83 | 160 | |
embeddist | 3:f8c6efc8bf83 | 161 | enum Command { |
embeddist | 3:f8c6efc8bf83 | 162 | OPEN = 0x01, |
embeddist | 3:f8c6efc8bf83 | 163 | LISTEN = 0x02, |
embeddist | 3:f8c6efc8bf83 | 164 | CONNECT = 0x04, |
embeddist | 3:f8c6efc8bf83 | 165 | DISCON = 0x08, |
embeddist | 3:f8c6efc8bf83 | 166 | CLOSE = 0x10, |
embeddist | 3:f8c6efc8bf83 | 167 | SEND = 0x20, |
embeddist | 3:f8c6efc8bf83 | 168 | SEND_MAC = 0x21, |
embeddist | 3:f8c6efc8bf83 | 169 | SEND_KEEP = 0x22, |
embeddist | 3:f8c6efc8bf83 | 170 | RECV = 0x40, |
embeddist | 3:f8c6efc8bf83 | 171 | |
embeddist | 3:f8c6efc8bf83 | 172 | }; |
embeddist | 3:f8c6efc8bf83 | 173 | |
embeddist | 3:f8c6efc8bf83 | 174 | enum Interrupt { |
embeddist | 3:f8c6efc8bf83 | 175 | INT_CON = 0x01, |
embeddist | 3:f8c6efc8bf83 | 176 | INT_DISCON = 0x02, |
embeddist | 3:f8c6efc8bf83 | 177 | INT_RECV = 0x04, |
embeddist | 3:f8c6efc8bf83 | 178 | INT_TIMEOUT = 0x08, |
embeddist | 3:f8c6efc8bf83 | 179 | INT_SEND_OK = 0x10, |
embeddist | 3:f8c6efc8bf83 | 180 | }; |
embeddist | 3:f8c6efc8bf83 | 181 | |
Soohwan Kim |
5:f432ae8f8708 | 182 | enum Status { |
Soohwan Kim |
5:f432ae8f8708 | 183 | SOCK_CLOSED = 0x00, |
Soohwan Kim |
5:f432ae8f8708 | 184 | SOCK_INIT = 0x13, |
Soohwan Kim |
5:f432ae8f8708 | 185 | SOCK_LISTEN = 0x14, |
Soohwan Kim |
5:f432ae8f8708 | 186 | SOCK_SYNSENT = 0x15, |
Soohwan Kim |
5:f432ae8f8708 | 187 | SOCK_ESTABLISHED = 0x17, |
Soohwan Kim |
5:f432ae8f8708 | 188 | SOCK_CLOSE_WAIT = 0x1c, |
Soohwan Kim |
5:f432ae8f8708 | 189 | SOCK_UDP = 0x22, |
Soohwan Kim |
5:f432ae8f8708 | 190 | }; |
Soohwan Kim |
5:f432ae8f8708 | 191 | |
Soohwan Kim |
4:4930f81bbe98 | 192 | |
Soohwan Kim |
4:4930f81bbe98 | 193 | uint16_t sock_any_port; |
Soohwan Kim |
4:4930f81bbe98 | 194 | |
Soohwan Kim |
0:6f28332c466f | 195 | /* |
Soohwan Kim |
0:6f28332c466f | 196 | * Constructor |
Soohwan Kim |
0:6f28332c466f | 197 | * |
Soohwan Kim |
0:6f28332c466f | 198 | * @param spi spi class |
Soohwan Kim |
0:6f28332c466f | 199 | * @param cs cs of the W5500 |
Soohwan Kim |
0:6f28332c466f | 200 | * @param reset reset pin of the W5500 |
Soohwan Kim |
0:6f28332c466f | 201 | */ |
Soohwan Kim |
4:4930f81bbe98 | 202 | WIZnet_Chip(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName reset); |
Soohwan Kim |
4:4930f81bbe98 | 203 | WIZnet_Chip(SPI* spi, PinName cs, PinName reset); |
Soohwan Kim |
0:6f28332c466f | 204 | |
Soohwan Kim |
0:6f28332c466f | 205 | /* |
Soohwan Kim |
4:4930f81bbe98 | 206 | * Set MAC Address to W5500 |
Soohwan Kim |
4:4930f81bbe98 | 207 | * |
Soohwan Kim |
4:4930f81bbe98 | 208 | * @return true if connected, false otherwise |
Soohwan Kim |
4:4930f81bbe98 | 209 | */ |
Soohwan Kim |
4:4930f81bbe98 | 210 | bool setmac(); |
Soohwan Kim |
4:4930f81bbe98 | 211 | |
Soohwan Kim |
4:4930f81bbe98 | 212 | /* |
Soohwan Kim |
4:4930f81bbe98 | 213 | * Set Network Informations (SrcIP, Netmask, Gataway) |
Soohwan Kim |
0:6f28332c466f | 214 | * |
Soohwan Kim |
0:6f28332c466f | 215 | * @return true if connected, false otherwise |
Soohwan Kim |
0:6f28332c466f | 216 | */ |
Soohwan Kim |
0:6f28332c466f | 217 | bool setip(); |
Soohwan Kim |
0:6f28332c466f | 218 | |
Soohwan Kim |
0:6f28332c466f | 219 | /* |
Soohwan Kim |
4:4930f81bbe98 | 220 | * Get Link Status |
Soohwan Kim |
4:4930f81bbe98 | 221 | * |
Soohwan Kim |
4:4930f81bbe98 | 222 | * @return true if Link up, false Link down |
Soohwan Kim |
4:4930f81bbe98 | 223 | */ |
Soohwan Kim |
4:4930f81bbe98 | 224 | bool linkstatus(); |
Soohwan Kim |
4:4930f81bbe98 | 225 | |
Soohwan Kim |
4:4930f81bbe98 | 226 | /* |
Soohwan Kim |
0:6f28332c466f | 227 | * Disconnect the connection |
Soohwan Kim |
0:6f28332c466f | 228 | * |
Soohwan Kim |
0:6f28332c466f | 229 | * @ returns true |
Soohwan Kim |
0:6f28332c466f | 230 | */ |
Soohwan Kim |
0:6f28332c466f | 231 | bool disconnect(); |
Soohwan Kim |
0:6f28332c466f | 232 | |
Soohwan Kim |
0:6f28332c466f | 233 | /* |
Soohwan Kim |
0:6f28332c466f | 234 | * Open a tcp connection with the specified host on the specified port |
Soohwan Kim |
0:6f28332c466f | 235 | * |
Soohwan Kim |
0:6f28332c466f | 236 | * @param host host (can be either an ip address or a name. If a name is provided, a dns request will be established) |
Soohwan Kim |
0:6f28332c466f | 237 | * @param port port |
Soohwan Kim |
0:6f28332c466f | 238 | * @ returns true if successful |
Soohwan Kim |
0:6f28332c466f | 239 | */ |
Soohwan Kim |
0:6f28332c466f | 240 | bool connect(int socket, const char * host, int port, int timeout_ms = 10*1000); |
Soohwan Kim |
0:6f28332c466f | 241 | |
Soohwan Kim |
0:6f28332c466f | 242 | /* |
Soohwan Kim |
0:6f28332c466f | 243 | * Set the protocol (UDP or TCP) |
Soohwan Kim |
0:6f28332c466f | 244 | * |
Soohwan Kim |
0:6f28332c466f | 245 | * @param p protocol |
Soohwan Kim |
0:6f28332c466f | 246 | * @ returns true if successful |
Soohwan Kim |
0:6f28332c466f | 247 | */ |
Soohwan Kim |
0:6f28332c466f | 248 | bool setProtocol(int socket, Protocol p); |
Soohwan Kim |
0:6f28332c466f | 249 | |
Soohwan Kim |
0:6f28332c466f | 250 | /* |
Soohwan Kim |
0:6f28332c466f | 251 | * Reset the W5500 |
Soohwan Kim |
0:6f28332c466f | 252 | */ |
Soohwan Kim |
0:6f28332c466f | 253 | void reset(); |
Soohwan Kim |
0:6f28332c466f | 254 | |
Soohwan Kim |
0:6f28332c466f | 255 | int wait_readable(int socket, int wait_time_ms, int req_size = 0); |
Soohwan Kim |
0:6f28332c466f | 256 | |
Soohwan Kim |
0:6f28332c466f | 257 | int wait_writeable(int socket, int wait_time_ms, int req_size = 0); |
Soohwan Kim |
0:6f28332c466f | 258 | |
Soohwan Kim |
0:6f28332c466f | 259 | /* |
Soohwan Kim |
0:6f28332c466f | 260 | * Check if a tcp link is active |
Soohwan Kim |
0:6f28332c466f | 261 | * |
Soohwan Kim |
0:6f28332c466f | 262 | * @returns true if successful |
Soohwan Kim |
0:6f28332c466f | 263 | */ |
Soohwan Kim |
0:6f28332c466f | 264 | bool is_connected(int socket); |
Soohwan Kim |
0:6f28332c466f | 265 | |
Soohwan Kim |
0:6f28332c466f | 266 | /* |
Soohwan Kim |
0:6f28332c466f | 267 | * Close a tcp connection |
Soohwan Kim |
0:6f28332c466f | 268 | * |
Soohwan Kim |
0:6f28332c466f | 269 | * @ returns true if successful |
Soohwan Kim |
0:6f28332c466f | 270 | */ |
Soohwan Kim |
0:6f28332c466f | 271 | bool close(int socket); |
Soohwan Kim |
0:6f28332c466f | 272 | |
Soohwan Kim |
0:6f28332c466f | 273 | /* |
Soohwan Kim |
0:6f28332c466f | 274 | * @param str string to be sent |
Soohwan Kim |
0:6f28332c466f | 275 | * @param len string length |
Soohwan Kim |
0:6f28332c466f | 276 | */ |
Soohwan Kim |
0:6f28332c466f | 277 | int send(int socket, const char * str, int len); |
Soohwan Kim |
0:6f28332c466f | 278 | |
Soohwan Kim |
0:6f28332c466f | 279 | int recv(int socket, char* buf, int len); |
Soohwan Kim |
0:6f28332c466f | 280 | |
Soohwan Kim |
0:6f28332c466f | 281 | /* |
Soohwan Kim |
0:6f28332c466f | 282 | * Return true if the module is using dhcp |
Soohwan Kim |
0:6f28332c466f | 283 | * |
Soohwan Kim |
0:6f28332c466f | 284 | * @returns true if the module is using dhcp |
Soohwan Kim |
0:6f28332c466f | 285 | */ |
Soohwan Kim |
0:6f28332c466f | 286 | bool isDHCP() { |
Soohwan Kim |
0:6f28332c466f | 287 | return dhcp; |
Soohwan Kim |
0:6f28332c466f | 288 | } |
Soohwan Kim |
0:6f28332c466f | 289 | |
Soohwan Kim |
0:6f28332c466f | 290 | bool gethostbyname(const char* host, uint32_t* ip); |
Soohwan Kim |
0:6f28332c466f | 291 | |
Soohwan Kim |
0:6f28332c466f | 292 | static WIZnet_Chip * getInstance() { |
Soohwan Kim |
0:6f28332c466f | 293 | return inst; |
Soohwan Kim |
0:6f28332c466f | 294 | }; |
Soohwan Kim |
0:6f28332c466f | 295 | |
Soohwan Kim |
0:6f28332c466f | 296 | int new_socket(); |
Soohwan Kim |
0:6f28332c466f | 297 | uint16_t new_port(); |
Soohwan Kim |
0:6f28332c466f | 298 | void scmd(int socket, Command cmd); |
Soohwan Kim |
0:6f28332c466f | 299 | |
Soohwan Kim |
0:6f28332c466f | 300 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 301 | void sreg(int socket, uint16_t addr, T data) { |
Soohwan Kim |
0:6f28332c466f | 302 | reg_wr<T>(addr, (0x0C + (socket << 5)), data); |
Soohwan Kim |
0:6f28332c466f | 303 | } |
Soohwan Kim |
0:6f28332c466f | 304 | |
Soohwan Kim |
0:6f28332c466f | 305 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 306 | T sreg(int socket, uint16_t addr) { |
Soohwan Kim |
0:6f28332c466f | 307 | return reg_rd<T>(addr, (0x08 + (socket << 5))); |
Soohwan Kim |
0:6f28332c466f | 308 | } |
Soohwan Kim |
0:6f28332c466f | 309 | |
Soohwan Kim |
0:6f28332c466f | 310 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 311 | void reg_wr(uint16_t addr, T data) { |
Soohwan Kim |
0:6f28332c466f | 312 | return reg_wr(addr, 0x04, data); |
Soohwan Kim |
0:6f28332c466f | 313 | } |
Soohwan Kim |
0:6f28332c466f | 314 | |
Soohwan Kim |
0:6f28332c466f | 315 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 316 | void reg_wr(uint16_t addr, uint8_t cb, T data) { |
Soohwan Kim |
0:6f28332c466f | 317 | uint8_t buf[sizeof(T)]; |
Soohwan Kim |
0:6f28332c466f | 318 | *reinterpret_cast<T*>(buf) = data; |
Soohwan Kim |
0:6f28332c466f | 319 | for(int i = 0; i < sizeof(buf)/2; i++) { // Little Endian to Big Endian |
Soohwan Kim |
0:6f28332c466f | 320 | uint8_t t = buf[i]; |
Soohwan Kim |
0:6f28332c466f | 321 | buf[i] = buf[sizeof(buf)-1-i]; |
Soohwan Kim |
0:6f28332c466f | 322 | buf[sizeof(buf)-1-i] = t; |
Soohwan Kim |
0:6f28332c466f | 323 | } |
Soohwan Kim |
0:6f28332c466f | 324 | spi_write(addr, cb, buf, sizeof(buf)); |
Soohwan Kim |
0:6f28332c466f | 325 | } |
Soohwan Kim |
0:6f28332c466f | 326 | |
Soohwan Kim |
0:6f28332c466f | 327 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 328 | T reg_rd(uint16_t addr) { |
Soohwan Kim |
0:6f28332c466f | 329 | return reg_rd<T>(addr, 0x00); |
Soohwan Kim |
0:6f28332c466f | 330 | } |
Soohwan Kim |
0:6f28332c466f | 331 | |
Soohwan Kim |
0:6f28332c466f | 332 | template<typename T> |
Soohwan Kim |
0:6f28332c466f | 333 | T reg_rd(uint16_t addr, uint8_t cb) { |
Soohwan Kim |
0:6f28332c466f | 334 | uint8_t buf[sizeof(T)]; |
Soohwan Kim |
0:6f28332c466f | 335 | spi_read(addr, cb, buf, sizeof(buf)); |
Soohwan Kim |
0:6f28332c466f | 336 | for(int i = 0; i < sizeof(buf)/2; i++) { // Big Endian to Little Endian |
Soohwan Kim |
0:6f28332c466f | 337 | uint8_t t = buf[i]; |
Soohwan Kim |
0:6f28332c466f | 338 | buf[i] = buf[sizeof(buf)-1-i]; |
Soohwan Kim |
0:6f28332c466f | 339 | buf[sizeof(buf)-1-i] = t; |
Soohwan Kim |
0:6f28332c466f | 340 | } |
Soohwan Kim |
0:6f28332c466f | 341 | return *reinterpret_cast<T*>(buf); |
Soohwan Kim |
0:6f28332c466f | 342 | } |
Soohwan Kim |
0:6f28332c466f | 343 | |
Soohwan Kim |
0:6f28332c466f | 344 | void reg_rd_mac(uint16_t addr, uint8_t* data) { |
Soohwan Kim |
0:6f28332c466f | 345 | spi_read(addr, 0x00, data, 6); |
Soohwan Kim |
0:6f28332c466f | 346 | } |
Soohwan Kim |
0:6f28332c466f | 347 | |
Soohwan Kim |
0:6f28332c466f | 348 | void reg_wr_ip(uint16_t addr, uint8_t cb, const char* ip) { |
Soohwan Kim |
0:6f28332c466f | 349 | uint8_t buf[4]; |
Soohwan Kim |
0:6f28332c466f | 350 | char* p = (char*)ip; |
Soohwan Kim |
0:6f28332c466f | 351 | for(int i = 0; i < 4; i++) { |
Soohwan Kim |
0:6f28332c466f | 352 | buf[i] = atoi(p); |
Soohwan Kim |
0:6f28332c466f | 353 | p = strchr(p, '.'); |
Soohwan Kim |
0:6f28332c466f | 354 | if (p == NULL) { |
Soohwan Kim |
0:6f28332c466f | 355 | break; |
Soohwan Kim |
0:6f28332c466f | 356 | } |
Soohwan Kim |
0:6f28332c466f | 357 | p++; |
Soohwan Kim |
0:6f28332c466f | 358 | } |
Soohwan Kim |
0:6f28332c466f | 359 | spi_write(addr, cb, buf, sizeof(buf)); |
Soohwan Kim |
0:6f28332c466f | 360 | } |
Soohwan Kim |
4:4930f81bbe98 | 361 | |
Soohwan Kim |
0:6f28332c466f | 362 | void sreg_ip(int socket, uint16_t addr, const char* ip) { |
Soohwan Kim |
0:6f28332c466f | 363 | reg_wr_ip(addr, (0x0C + (socket << 5)), ip); |
Soohwan Kim |
0:6f28332c466f | 364 | } |
Soohwan Kim |
4:4930f81bbe98 | 365 | |
Soohwan Kim |
4:4930f81bbe98 | 366 | void reg_rd_ip_byte(uint16_t addr, uint8_t* data) { |
Soohwan Kim |
4:4930f81bbe98 | 367 | spi_read(addr, 0x00, data, 4); |
Soohwan Kim |
4:4930f81bbe98 | 368 | } |
Soohwan Kim |
4:4930f81bbe98 | 369 | |
Soohwan Kim |
4:4930f81bbe98 | 370 | void reg_wr_ip_byte(uint16_t addr, uint8_t* data) { |
Soohwan Kim |
4:4930f81bbe98 | 371 | spi_write(addr, 0x04, data, 4); |
Soohwan Kim |
4:4930f81bbe98 | 372 | } |
Soohwan Kim |
4:4930f81bbe98 | 373 | |
Soohwan Kim |
4:4930f81bbe98 | 374 | ///////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 375 | // Common Register I/O function // |
Soohwan Kim |
4:4930f81bbe98 | 376 | ///////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 377 | /** |
Soohwan Kim |
4:4930f81bbe98 | 378 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 379 | * @brief Set Mode Register |
Soohwan Kim |
4:4930f81bbe98 | 380 | * @param (uint8_t)mr The value to be set. |
Soohwan Kim |
4:4930f81bbe98 | 381 | * @sa getMR() |
Soohwan Kim |
4:4930f81bbe98 | 382 | */ |
Soohwan Kim |
4:4930f81bbe98 | 383 | void setMR(uint8_t mr) { |
Soohwan Kim |
4:4930f81bbe98 | 384 | reg_wr<uint8_t>(MR,mr); |
Soohwan Kim |
4:4930f81bbe98 | 385 | } |
Soohwan Kim |
4:4930f81bbe98 | 386 | |
Soohwan Kim |
4:4930f81bbe98 | 387 | |
Soohwan Kim |
4:4930f81bbe98 | 388 | /** |
Soohwan Kim |
4:4930f81bbe98 | 389 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 390 | * @brief Get Mode Register |
Soohwan Kim |
4:4930f81bbe98 | 391 | * @return uint8_t. The value of Mode register. |
Soohwan Kim |
4:4930f81bbe98 | 392 | * @sa setMR() |
Soohwan Kim |
4:4930f81bbe98 | 393 | */ |
Soohwan Kim |
4:4930f81bbe98 | 394 | uint8_t getMR() { |
Soohwan Kim |
4:4930f81bbe98 | 395 | return reg_rd<uint8_t>(MR); |
Soohwan Kim |
4:4930f81bbe98 | 396 | } |
Soohwan Kim |
4:4930f81bbe98 | 397 | |
Soohwan Kim |
4:4930f81bbe98 | 398 | /** |
Soohwan Kim |
4:4930f81bbe98 | 399 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 400 | * @brief Set gateway IP address |
Soohwan Kim |
4:4930f81bbe98 | 401 | * @param (uint8_t*)gar Pointer variable to set gateway IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 402 | * @sa getGAR() |
Soohwan Kim |
4:4930f81bbe98 | 403 | */ |
Soohwan Kim |
4:4930f81bbe98 | 404 | void setGAR(uint8_t * gar) { |
Soohwan Kim |
4:4930f81bbe98 | 405 | reg_wr_ip_byte(GAR,gar); |
Soohwan Kim |
4:4930f81bbe98 | 406 | } |
Soohwan Kim |
4:4930f81bbe98 | 407 | |
Soohwan Kim |
4:4930f81bbe98 | 408 | /** |
Soohwan Kim |
4:4930f81bbe98 | 409 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 410 | * @brief Get gateway IP address |
Soohwan Kim |
4:4930f81bbe98 | 411 | * @param (uint8_t*)gar Pointer variable to get gateway IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 412 | * @sa setGAR() |
Soohwan Kim |
4:4930f81bbe98 | 413 | */ |
Soohwan Kim |
4:4930f81bbe98 | 414 | void getGAR(uint8_t * gar) { |
Soohwan Kim |
4:4930f81bbe98 | 415 | reg_rd_ip_byte(GAR,gar); |
Soohwan Kim |
4:4930f81bbe98 | 416 | } |
Soohwan Kim |
4:4930f81bbe98 | 417 | |
Soohwan Kim |
4:4930f81bbe98 | 418 | /** |
Soohwan Kim |
4:4930f81bbe98 | 419 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 420 | * @brief Set subnet mask address |
Soohwan Kim |
4:4930f81bbe98 | 421 | * @param (uint8_t*)subr Pointer variable to set subnet mask address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 422 | * @sa getSUBR() |
Soohwan Kim |
4:4930f81bbe98 | 423 | */ |
Soohwan Kim |
4:4930f81bbe98 | 424 | void setSUBR(uint8_t * subr) { |
Soohwan Kim |
4:4930f81bbe98 | 425 | reg_wr_ip_byte(SUBR, subr); |
Soohwan Kim |
4:4930f81bbe98 | 426 | } |
Soohwan Kim |
4:4930f81bbe98 | 427 | |
Soohwan Kim |
4:4930f81bbe98 | 428 | |
Soohwan Kim |
4:4930f81bbe98 | 429 | /** |
Soohwan Kim |
4:4930f81bbe98 | 430 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 431 | * @brief Get subnet mask address |
Soohwan Kim |
4:4930f81bbe98 | 432 | * @param (uint8_t*)subr Pointer variable to get subnet mask address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 433 | * @sa setSUBR() |
Soohwan Kim |
4:4930f81bbe98 | 434 | */ |
Soohwan Kim |
4:4930f81bbe98 | 435 | void getSUBR(uint8_t * subr) { |
Soohwan Kim |
4:4930f81bbe98 | 436 | reg_rd_ip_byte(SUBR, subr); |
Soohwan Kim |
4:4930f81bbe98 | 437 | } |
Soohwan Kim |
4:4930f81bbe98 | 438 | |
Soohwan Kim |
4:4930f81bbe98 | 439 | /** |
Soohwan Kim |
4:4930f81bbe98 | 440 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 441 | * @brief Set local MAC address |
Soohwan Kim |
4:4930f81bbe98 | 442 | * @param (uint8_t*)shar Pointer variable to set local MAC address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 443 | * @sa getSHAR() |
Soohwan Kim |
4:4930f81bbe98 | 444 | */ |
Soohwan Kim |
4:4930f81bbe98 | 445 | void setSHAR(uint8_t * shar) { |
Soohwan Kim |
4:4930f81bbe98 | 446 | reg_wr_mac(SHAR, shar); |
Soohwan Kim |
4:4930f81bbe98 | 447 | } |
Soohwan Kim |
4:4930f81bbe98 | 448 | |
Soohwan Kim |
4:4930f81bbe98 | 449 | /** |
Soohwan Kim |
4:4930f81bbe98 | 450 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 451 | * @brief Get local MAC address |
Soohwan Kim |
4:4930f81bbe98 | 452 | * @param (uint8_t*)shar Pointer variable to get local MAC address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 453 | * @sa setSHAR() |
Soohwan Kim |
4:4930f81bbe98 | 454 | */ |
Soohwan Kim |
4:4930f81bbe98 | 455 | void getSHAR(uint8_t * shar) { |
Soohwan Kim |
4:4930f81bbe98 | 456 | reg_rd_mac(SHAR, shar); |
Soohwan Kim |
4:4930f81bbe98 | 457 | } |
Soohwan Kim |
4:4930f81bbe98 | 458 | |
Soohwan Kim |
4:4930f81bbe98 | 459 | /** |
Soohwan Kim |
4:4930f81bbe98 | 460 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 461 | * @brief Set local IP address |
Soohwan Kim |
4:4930f81bbe98 | 462 | * @param (uint8_t*)sipr Pointer variable to set local IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 463 | * @sa getSIPR() |
Soohwan Kim |
4:4930f81bbe98 | 464 | */ |
Soohwan Kim |
4:4930f81bbe98 | 465 | void setSIPR(uint8_t * sipr) { |
Soohwan Kim |
4:4930f81bbe98 | 466 | reg_wr_ip_byte(SIPR, sipr); |
Soohwan Kim |
4:4930f81bbe98 | 467 | } |
Soohwan Kim |
4:4930f81bbe98 | 468 | |
Soohwan Kim |
4:4930f81bbe98 | 469 | /** |
Soohwan Kim |
4:4930f81bbe98 | 470 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 471 | * @brief Get local IP address |
Soohwan Kim |
4:4930f81bbe98 | 472 | * @param (uint8_t*)sipr Pointer variable to get local IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 473 | * @sa setSIPR() |
Soohwan Kim |
4:4930f81bbe98 | 474 | */ |
Soohwan Kim |
4:4930f81bbe98 | 475 | void getSIPR(uint8_t * sipr) { |
Soohwan Kim |
4:4930f81bbe98 | 476 | reg_rd_ip_byte(SIPR, sipr); |
Soohwan Kim |
4:4930f81bbe98 | 477 | } |
Soohwan Kim |
4:4930f81bbe98 | 478 | |
Soohwan Kim |
4:4930f81bbe98 | 479 | /** |
Soohwan Kim |
4:4930f81bbe98 | 480 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 481 | * @brief Set INTLEVEL register |
Soohwan Kim |
4:4930f81bbe98 | 482 | * @param (uint16_t)intlevel Value to set @ref INTLEVEL register. |
Soohwan Kim |
4:4930f81bbe98 | 483 | * @sa getINTLEVEL() |
Soohwan Kim |
4:4930f81bbe98 | 484 | */ |
Soohwan Kim |
4:4930f81bbe98 | 485 | void setINTLEVEL(uint16_t intlevel) { |
Soohwan Kim |
4:4930f81bbe98 | 486 | reg_wr<uint16_t>(INTLEVEL, intlevel); |
Soohwan Kim |
4:4930f81bbe98 | 487 | } |
Soohwan Kim |
4:4930f81bbe98 | 488 | |
Soohwan Kim |
4:4930f81bbe98 | 489 | |
Soohwan Kim |
4:4930f81bbe98 | 490 | /** |
Soohwan Kim |
4:4930f81bbe98 | 491 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 492 | * @brief Get INTLEVEL register |
Soohwan Kim |
4:4930f81bbe98 | 493 | * @return uint16_t. Value of @ref INTLEVEL register. |
Soohwan Kim |
4:4930f81bbe98 | 494 | * @sa setINTLEVEL() |
Soohwan Kim |
4:4930f81bbe98 | 495 | */ |
Soohwan Kim |
4:4930f81bbe98 | 496 | uint16_t getINTLEVEL() { |
Soohwan Kim |
4:4930f81bbe98 | 497 | return reg_rd<uint16_t>(INTLEVEL); |
Soohwan Kim |
4:4930f81bbe98 | 498 | } |
Soohwan Kim |
4:4930f81bbe98 | 499 | |
Soohwan Kim |
4:4930f81bbe98 | 500 | /** |
Soohwan Kim |
4:4930f81bbe98 | 501 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 502 | * @brief Set @ref IR register |
Soohwan Kim |
4:4930f81bbe98 | 503 | * @param (uint8_t)ir Value to set @ref IR register. |
Soohwan Kim |
4:4930f81bbe98 | 504 | * @sa getIR() |
Soohwan Kim |
4:4930f81bbe98 | 505 | */ |
Soohwan Kim |
4:4930f81bbe98 | 506 | void setIR(uint8_t ir) { |
Soohwan Kim |
4:4930f81bbe98 | 507 | reg_wr<uint8_t>(IR, (ir & 0xF0)); |
Soohwan Kim |
4:4930f81bbe98 | 508 | } |
Soohwan Kim |
4:4930f81bbe98 | 509 | |
Soohwan Kim |
4:4930f81bbe98 | 510 | /** |
Soohwan Kim |
4:4930f81bbe98 | 511 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 512 | * @brief Get @ref IR register |
Soohwan Kim |
4:4930f81bbe98 | 513 | * @return uint8_t. Value of @ref IR register. |
Soohwan Kim |
4:4930f81bbe98 | 514 | * @sa setIR() |
Soohwan Kim |
4:4930f81bbe98 | 515 | */ |
Soohwan Kim |
4:4930f81bbe98 | 516 | uint8_t getIR() { |
Soohwan Kim |
4:4930f81bbe98 | 517 | return reg_rd<uint8_t>(IR & 0xF0); |
Soohwan Kim |
4:4930f81bbe98 | 518 | } |
Soohwan Kim |
4:4930f81bbe98 | 519 | |
Soohwan Kim |
4:4930f81bbe98 | 520 | /** |
Soohwan Kim |
4:4930f81bbe98 | 521 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 522 | * @brief Set @ref IMR register |
Soohwan Kim |
4:4930f81bbe98 | 523 | * @param (uint8_t)imr Value to set @ref IMR register. |
Soohwan Kim |
4:4930f81bbe98 | 524 | * @sa getIMR() |
Soohwan Kim |
4:4930f81bbe98 | 525 | */ |
Soohwan Kim |
4:4930f81bbe98 | 526 | void setIMR(uint8_t imr) { |
Soohwan Kim |
4:4930f81bbe98 | 527 | reg_wr<uint8_t>(IMR, imr); |
Soohwan Kim |
4:4930f81bbe98 | 528 | } |
Soohwan Kim |
4:4930f81bbe98 | 529 | |
Soohwan Kim |
4:4930f81bbe98 | 530 | /** |
Soohwan Kim |
4:4930f81bbe98 | 531 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 532 | * @brief Get @ref IMR register |
Soohwan Kim |
4:4930f81bbe98 | 533 | * @return uint8_t. Value of @ref IMR register. |
Soohwan Kim |
4:4930f81bbe98 | 534 | * @sa setIMR() |
Soohwan Kim |
4:4930f81bbe98 | 535 | */ |
Soohwan Kim |
4:4930f81bbe98 | 536 | uint8_t getIMR() { |
Soohwan Kim |
4:4930f81bbe98 | 537 | return reg_rd<uint8_t>(IMR); |
Soohwan Kim |
4:4930f81bbe98 | 538 | } |
Soohwan Kim |
4:4930f81bbe98 | 539 | |
Soohwan Kim |
4:4930f81bbe98 | 540 | |
Soohwan Kim |
4:4930f81bbe98 | 541 | /** |
Soohwan Kim |
4:4930f81bbe98 | 542 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 543 | * @brief Set @ref SIR register |
Soohwan Kim |
4:4930f81bbe98 | 544 | * @param (uint8_t)sir Value to set @ref SIR register. |
Soohwan Kim |
4:4930f81bbe98 | 545 | * @sa getSIR() |
Soohwan Kim |
4:4930f81bbe98 | 546 | */ |
Soohwan Kim |
4:4930f81bbe98 | 547 | void setSIR(uint8_t sir) { |
Soohwan Kim |
4:4930f81bbe98 | 548 | reg_wr<uint8_t>(SIR, sir); |
Soohwan Kim |
4:4930f81bbe98 | 549 | } |
Soohwan Kim |
4:4930f81bbe98 | 550 | |
Soohwan Kim |
4:4930f81bbe98 | 551 | /** |
Soohwan Kim |
4:4930f81bbe98 | 552 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 553 | * @brief Get @ref SIR register |
Soohwan Kim |
4:4930f81bbe98 | 554 | * @return uint8_t. Value of @ref SIR register. |
Soohwan Kim |
4:4930f81bbe98 | 555 | * @sa setSIR() |
Soohwan Kim |
4:4930f81bbe98 | 556 | */ |
Soohwan Kim |
4:4930f81bbe98 | 557 | uint8_t getSIR() { |
Soohwan Kim |
4:4930f81bbe98 | 558 | return reg_rd<uint8_t>(SIR); |
Soohwan Kim |
4:4930f81bbe98 | 559 | } |
Soohwan Kim |
4:4930f81bbe98 | 560 | /** |
Soohwan Kim |
4:4930f81bbe98 | 561 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 562 | * @brief Set @ref SIMR register |
Soohwan Kim |
4:4930f81bbe98 | 563 | * @param (uint8_t)simr Value to set @ref SIMR register. |
Soohwan Kim |
4:4930f81bbe98 | 564 | * @sa getSIMR() |
Soohwan Kim |
4:4930f81bbe98 | 565 | */ |
Soohwan Kim |
4:4930f81bbe98 | 566 | void setSIMR(uint8_t simr) { |
Soohwan Kim |
4:4930f81bbe98 | 567 | reg_wr<uint8_t>(SIMR, simr); |
Soohwan Kim |
4:4930f81bbe98 | 568 | } |
Soohwan Kim |
4:4930f81bbe98 | 569 | |
Soohwan Kim |
4:4930f81bbe98 | 570 | /** |
Soohwan Kim |
4:4930f81bbe98 | 571 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 572 | * @brief Get @ref SIMR register |
Soohwan Kim |
4:4930f81bbe98 | 573 | * @return uint8_t. Value of @ref SIMR register. |
Soohwan Kim |
4:4930f81bbe98 | 574 | * @sa setSIMR() |
Soohwan Kim |
4:4930f81bbe98 | 575 | */ |
Soohwan Kim |
4:4930f81bbe98 | 576 | uint8_t getSIMR() { |
Soohwan Kim |
4:4930f81bbe98 | 577 | return reg_rd<uint8_t>(SIMR); |
Soohwan Kim |
4:4930f81bbe98 | 578 | } |
Soohwan Kim |
4:4930f81bbe98 | 579 | |
Soohwan Kim |
4:4930f81bbe98 | 580 | /** |
Soohwan Kim |
4:4930f81bbe98 | 581 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 582 | * @brief Set @ref RTR register |
Soohwan Kim |
4:4930f81bbe98 | 583 | * @param (uint16_t)rtr Value to set @ref RTR register. |
Soohwan Kim |
4:4930f81bbe98 | 584 | * @sa getRTR() |
Soohwan Kim |
4:4930f81bbe98 | 585 | */ |
Soohwan Kim |
4:4930f81bbe98 | 586 | void setRTR(uint16_t rtr) { |
Soohwan Kim |
4:4930f81bbe98 | 587 | reg_wr<uint16_t>(RTR, rtr); |
Soohwan Kim |
4:4930f81bbe98 | 588 | } |
Soohwan Kim |
4:4930f81bbe98 | 589 | |
Soohwan Kim |
4:4930f81bbe98 | 590 | /** |
Soohwan Kim |
4:4930f81bbe98 | 591 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 592 | * @brief Get @ref RTR register |
Soohwan Kim |
4:4930f81bbe98 | 593 | * @return uint16_t. Value of @ref RTR register. |
Soohwan Kim |
4:4930f81bbe98 | 594 | * @sa setRTR() |
Soohwan Kim |
4:4930f81bbe98 | 595 | */ |
Soohwan Kim |
4:4930f81bbe98 | 596 | uint16_t getRTR() { |
Soohwan Kim |
4:4930f81bbe98 | 597 | return reg_rd<uint16_t>(RTR); |
Soohwan Kim |
4:4930f81bbe98 | 598 | } |
Soohwan Kim |
4:4930f81bbe98 | 599 | |
Soohwan Kim |
4:4930f81bbe98 | 600 | /** |
Soohwan Kim |
4:4930f81bbe98 | 601 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 602 | * @brief Set @ref RCR register |
Soohwan Kim |
4:4930f81bbe98 | 603 | * @param (uint8_t)rcr Value to set @ref RCR register. |
Soohwan Kim |
4:4930f81bbe98 | 604 | * @sa getRCR() |
Soohwan Kim |
4:4930f81bbe98 | 605 | */ |
Soohwan Kim |
4:4930f81bbe98 | 606 | void setRCR(uint8_t rcr) { |
Soohwan Kim |
4:4930f81bbe98 | 607 | reg_wr<uint8_t>(RCR, rcr); |
Soohwan Kim |
4:4930f81bbe98 | 608 | } |
Soohwan Kim |
4:4930f81bbe98 | 609 | |
Soohwan Kim |
4:4930f81bbe98 | 610 | /** |
Soohwan Kim |
4:4930f81bbe98 | 611 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 612 | * @brief Get @ref RCR register |
Soohwan Kim |
4:4930f81bbe98 | 613 | * @return uint8_t. Value of @ref RCR register. |
Soohwan Kim |
4:4930f81bbe98 | 614 | * @sa setRCR() |
Soohwan Kim |
4:4930f81bbe98 | 615 | */ |
Soohwan Kim |
4:4930f81bbe98 | 616 | uint8_t getRCR() { |
Soohwan Kim |
4:4930f81bbe98 | 617 | return reg_rd<uint8_t>(RCR); |
Soohwan Kim |
4:4930f81bbe98 | 618 | } |
Soohwan Kim |
4:4930f81bbe98 | 619 | |
Soohwan Kim |
4:4930f81bbe98 | 620 | //================================================== test done =========================================================== |
Soohwan Kim |
4:4930f81bbe98 | 621 | |
Soohwan Kim |
4:4930f81bbe98 | 622 | /** |
Soohwan Kim |
4:4930f81bbe98 | 623 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 624 | * @brief Set @ref PTIMER register |
Soohwan Kim |
4:4930f81bbe98 | 625 | * @param (uint8_t)ptimer Value to set @ref PTIMER register. |
Soohwan Kim |
4:4930f81bbe98 | 626 | * @sa getPTIMER() |
Soohwan Kim |
4:4930f81bbe98 | 627 | */ |
Soohwan Kim |
4:4930f81bbe98 | 628 | void setPTIMER(uint8_t ptimer) { |
Soohwan Kim |
4:4930f81bbe98 | 629 | reg_wr<uint8_t>(PTIMER, ptimer); |
Soohwan Kim |
4:4930f81bbe98 | 630 | } |
Soohwan Kim |
4:4930f81bbe98 | 631 | |
Soohwan Kim |
4:4930f81bbe98 | 632 | /** |
Soohwan Kim |
4:4930f81bbe98 | 633 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 634 | * @brief Get @ref PTIMER register |
Soohwan Kim |
4:4930f81bbe98 | 635 | * @return uint8_t. Value of @ref PTIMER register. |
Soohwan Kim |
4:4930f81bbe98 | 636 | * @sa setPTIMER() |
Soohwan Kim |
4:4930f81bbe98 | 637 | */ |
Soohwan Kim |
4:4930f81bbe98 | 638 | uint8_t getPTIMER() { |
Soohwan Kim |
4:4930f81bbe98 | 639 | return reg_rd<uint8_t>(PTIMER); |
Soohwan Kim |
4:4930f81bbe98 | 640 | } |
Soohwan Kim |
4:4930f81bbe98 | 641 | |
Soohwan Kim |
4:4930f81bbe98 | 642 | /** |
Soohwan Kim |
4:4930f81bbe98 | 643 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 644 | * @brief Set @ref PMAGIC register |
Soohwan Kim |
4:4930f81bbe98 | 645 | * @param (uint8_t)pmagic Value to set @ref PMAGIC register. |
Soohwan Kim |
4:4930f81bbe98 | 646 | * @sa getPMAGIC() |
Soohwan Kim |
4:4930f81bbe98 | 647 | */ |
Soohwan Kim |
4:4930f81bbe98 | 648 | /* |
Soohwan Kim |
4:4930f81bbe98 | 649 | #define setPMAGIC(pmagic) \ |
Soohwan Kim |
4:4930f81bbe98 | 650 | WIZCHIP_WRITE(PMAGIC, pmagic) |
Soohwan Kim |
4:4930f81bbe98 | 651 | */ |
Soohwan Kim |
4:4930f81bbe98 | 652 | void setPMAGIC(uint8_t pmagic) { |
Soohwan Kim |
4:4930f81bbe98 | 653 | reg_wr<uint8_t>(PMAGIC, pmagic ); |
Soohwan Kim |
4:4930f81bbe98 | 654 | } |
Soohwan Kim |
4:4930f81bbe98 | 655 | /** |
Soohwan Kim |
4:4930f81bbe98 | 656 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 657 | * @brief Get @ref PMAGIC register |
Soohwan Kim |
4:4930f81bbe98 | 658 | * @return uint8_t. Value of @ref PMAGIC register. |
Soohwan Kim |
4:4930f81bbe98 | 659 | * @sa setPMAGIC() |
Soohwan Kim |
4:4930f81bbe98 | 660 | */ |
Soohwan Kim |
4:4930f81bbe98 | 661 | /* |
Soohwan Kim |
4:4930f81bbe98 | 662 | #define getPMAGIC() \ |
Soohwan Kim |
4:4930f81bbe98 | 663 | WIZCHIP_READ(PMAGIC) |
Soohwan Kim |
4:4930f81bbe98 | 664 | */ |
Soohwan Kim |
4:4930f81bbe98 | 665 | uint8_t getPMAGIC(uint8_t pmagic) { |
Soohwan Kim |
4:4930f81bbe98 | 666 | return reg_rd<uint8_t>(PMAGIC, pmagic); |
Soohwan Kim |
4:4930f81bbe98 | 667 | } |
Soohwan Kim |
4:4930f81bbe98 | 668 | /** |
Soohwan Kim |
4:4930f81bbe98 | 669 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 670 | * @brief Set PHAR address |
Soohwan Kim |
4:4930f81bbe98 | 671 | * @param (uint8_t*)phar Pointer variable to set PPP destination MAC register address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 672 | * @sa getPHAR() |
Soohwan Kim |
4:4930f81bbe98 | 673 | */ |
Soohwan Kim |
4:4930f81bbe98 | 674 | void setPHAR(uint8_t * phar) { |
Soohwan Kim |
4:4930f81bbe98 | 675 | reg_wr_mac(PHAR, phar); |
Soohwan Kim |
4:4930f81bbe98 | 676 | } |
Soohwan Kim |
4:4930f81bbe98 | 677 | |
Soohwan Kim |
4:4930f81bbe98 | 678 | /** |
Soohwan Kim |
4:4930f81bbe98 | 679 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 680 | * @brief Get local IP address |
Soohwan Kim |
4:4930f81bbe98 | 681 | * @param (uint8_t*)phar Pointer variable to PPP destination MAC register address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 682 | * @sa setPHAR() |
Soohwan Kim |
4:4930f81bbe98 | 683 | */ |
Soohwan Kim |
4:4930f81bbe98 | 684 | void getPHAR(uint8_t * phar) { |
Soohwan Kim |
4:4930f81bbe98 | 685 | reg_rd_mac(PHAR, phar); |
Soohwan Kim |
4:4930f81bbe98 | 686 | } |
Soohwan Kim |
4:4930f81bbe98 | 687 | |
Soohwan Kim |
4:4930f81bbe98 | 688 | /** |
Soohwan Kim |
4:4930f81bbe98 | 689 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 690 | * @brief Set @ref PSID register |
Soohwan Kim |
4:4930f81bbe98 | 691 | * @param (uint16_t)psid Value to set @ref PSID register. |
Soohwan Kim |
4:4930f81bbe98 | 692 | * @sa getPSID() |
Soohwan Kim |
4:4930f81bbe98 | 693 | */ |
Soohwan Kim |
4:4930f81bbe98 | 694 | void setPSID(uint16_t psid) { |
Soohwan Kim |
4:4930f81bbe98 | 695 | reg_wr<uint16_t>(PSID, psid ); |
Soohwan Kim |
4:4930f81bbe98 | 696 | } |
Soohwan Kim |
4:4930f81bbe98 | 697 | |
Soohwan Kim |
4:4930f81bbe98 | 698 | /** |
Soohwan Kim |
4:4930f81bbe98 | 699 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 700 | * @brief Get @ref PSID register |
Soohwan Kim |
4:4930f81bbe98 | 701 | * @return uint16_t. Value of @ref PSID register. |
Soohwan Kim |
4:4930f81bbe98 | 702 | * @sa setPSID() |
Soohwan Kim |
4:4930f81bbe98 | 703 | */ |
Soohwan Kim |
4:4930f81bbe98 | 704 | //uint16_t getPSID(void); |
Soohwan Kim |
4:4930f81bbe98 | 705 | uint16_t getPSID() { |
Soohwan Kim |
4:4930f81bbe98 | 706 | return reg_rd<uint16_t>(PSID); |
Soohwan Kim |
4:4930f81bbe98 | 707 | } |
Soohwan Kim |
4:4930f81bbe98 | 708 | |
Soohwan Kim |
4:4930f81bbe98 | 709 | /** |
Soohwan Kim |
4:4930f81bbe98 | 710 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 711 | * @brief Set @ref PMRU register |
Soohwan Kim |
4:4930f81bbe98 | 712 | * @param (uint16_t)pmru Value to set @ref PMRU register. |
Soohwan Kim |
4:4930f81bbe98 | 713 | * @sa getPMRU() |
Soohwan Kim |
4:4930f81bbe98 | 714 | */ |
Soohwan Kim |
4:4930f81bbe98 | 715 | void setPMRU(uint16_t pmru) { |
Soohwan Kim |
4:4930f81bbe98 | 716 | reg_wr<uint16_t>(PMRU, pmru); |
Soohwan Kim |
4:4930f81bbe98 | 717 | } |
Soohwan Kim |
4:4930f81bbe98 | 718 | |
Soohwan Kim |
4:4930f81bbe98 | 719 | /** |
Soohwan Kim |
4:4930f81bbe98 | 720 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 721 | * @brief Get @ref PMRU register |
Soohwan Kim |
4:4930f81bbe98 | 722 | * @return uint16_t. Value of @ref PMRU register. |
Soohwan Kim |
4:4930f81bbe98 | 723 | * @sa setPMRU() |
Soohwan Kim |
4:4930f81bbe98 | 724 | */ |
Soohwan Kim |
4:4930f81bbe98 | 725 | uint16_t getPMRU() { |
Soohwan Kim |
4:4930f81bbe98 | 726 | return reg_rd<uint16_t>(PMRU); |
Soohwan Kim |
4:4930f81bbe98 | 727 | } |
Soohwan Kim |
4:4930f81bbe98 | 728 | |
Soohwan Kim |
4:4930f81bbe98 | 729 | /** |
Soohwan Kim |
4:4930f81bbe98 | 730 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 731 | * @brief Get unreachable IP address |
Soohwan Kim |
4:4930f81bbe98 | 732 | * @param (uint8_t*)uipr Pointer variable to get unreachable IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 733 | */ |
Soohwan Kim |
4:4930f81bbe98 | 734 | void getUIPR(uint8_t * uipr) { |
Soohwan Kim |
4:4930f81bbe98 | 735 | reg_rd_ip_byte(UIPR,uipr); |
Soohwan Kim |
4:4930f81bbe98 | 736 | } |
Soohwan Kim |
4:4930f81bbe98 | 737 | |
Soohwan Kim |
4:4930f81bbe98 | 738 | /** |
Soohwan Kim |
4:4930f81bbe98 | 739 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 740 | * @brief Get @ref UPORTR register |
Soohwan Kim |
4:4930f81bbe98 | 741 | * @return uint16_t. Value of @ref UPORTR register. |
Soohwan Kim |
4:4930f81bbe98 | 742 | */ |
Soohwan Kim |
4:4930f81bbe98 | 743 | uint16_t getUPORTR() { |
Soohwan Kim |
4:4930f81bbe98 | 744 | return reg_rd<uint16_t>(UPORTR); |
Soohwan Kim |
4:4930f81bbe98 | 745 | } |
Soohwan Kim |
4:4930f81bbe98 | 746 | |
Soohwan Kim |
4:4930f81bbe98 | 747 | /** |
Soohwan Kim |
4:4930f81bbe98 | 748 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 749 | * @brief Set @ref PHYCFGR register |
Soohwan Kim |
4:4930f81bbe98 | 750 | * @param (uint8_t)phycfgr Value to set @ref PHYCFGR register. |
Soohwan Kim |
4:4930f81bbe98 | 751 | * @sa getPHYCFGR() |
Soohwan Kim |
4:4930f81bbe98 | 752 | */ |
Soohwan Kim |
4:4930f81bbe98 | 753 | void setPHYCFGR(uint8_t phycfgr) { |
Soohwan Kim |
4:4930f81bbe98 | 754 | reg_wr<uint8_t>(PHYCFGR, phycfgr); |
Soohwan Kim |
4:4930f81bbe98 | 755 | } |
Soohwan Kim |
4:4930f81bbe98 | 756 | |
Soohwan Kim |
4:4930f81bbe98 | 757 | /** |
Soohwan Kim |
4:4930f81bbe98 | 758 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 759 | * @brief Get @ref PHYCFGR register |
Soohwan Kim |
4:4930f81bbe98 | 760 | * @return uint8_t. Value of @ref PHYCFGR register. |
Soohwan Kim |
4:4930f81bbe98 | 761 | * @sa setPHYCFGR() |
Soohwan Kim |
4:4930f81bbe98 | 762 | */ |
Soohwan Kim |
4:4930f81bbe98 | 763 | uint8_t getPHYCFGR() { |
Soohwan Kim |
4:4930f81bbe98 | 764 | return reg_rd<uint8_t>(PHYCFGR); |
Soohwan Kim |
4:4930f81bbe98 | 765 | } |
Soohwan Kim |
4:4930f81bbe98 | 766 | |
Soohwan Kim |
4:4930f81bbe98 | 767 | /** |
Soohwan Kim |
4:4930f81bbe98 | 768 | * @ingroup Common_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 769 | * @brief Get @ref VERSIONR register |
Soohwan Kim |
4:4930f81bbe98 | 770 | * @return uint8_t. Value of @ref VERSIONR register. |
Soohwan Kim |
4:4930f81bbe98 | 771 | */ |
Soohwan Kim |
4:4930f81bbe98 | 772 | uint8_t getVERSIONR() { |
Soohwan Kim |
4:4930f81bbe98 | 773 | return reg_rd<uint8_t>(VERSIONR); |
Soohwan Kim |
4:4930f81bbe98 | 774 | } |
Soohwan Kim |
4:4930f81bbe98 | 775 | |
Soohwan Kim |
4:4930f81bbe98 | 776 | ///////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 777 | |
Soohwan Kim |
4:4930f81bbe98 | 778 | /////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 779 | // Socket N register I/O function // |
Soohwan Kim |
4:4930f81bbe98 | 780 | /////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 781 | /** |
Soohwan Kim |
4:4930f81bbe98 | 782 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 783 | * @brief Set @ref Sn_MR register |
Soohwan Kim |
4:4930f81bbe98 | 784 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 785 | * @param (uint8_t)mr Value to set @ref Sn_MR |
Soohwan Kim |
4:4930f81bbe98 | 786 | * @sa getSn_MR() |
Soohwan Kim |
4:4930f81bbe98 | 787 | */ |
Soohwan Kim |
4:4930f81bbe98 | 788 | void setSn_MR(uint8_t sn, uint8_t mr) { |
Soohwan Kim |
4:4930f81bbe98 | 789 | sreg<uint8_t>(sn, MR, mr); |
Soohwan Kim |
4:4930f81bbe98 | 790 | } |
Soohwan Kim |
4:4930f81bbe98 | 791 | |
Soohwan Kim |
4:4930f81bbe98 | 792 | /** |
Soohwan Kim |
4:4930f81bbe98 | 793 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 794 | * @brief Get @ref Sn_MR register |
Soohwan Kim |
4:4930f81bbe98 | 795 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 796 | * @return uint8_t. Value of @ref Sn_MR. |
Soohwan Kim |
4:4930f81bbe98 | 797 | * @sa setSn_MR() |
Soohwan Kim |
4:4930f81bbe98 | 798 | */ |
Soohwan Kim |
4:4930f81bbe98 | 799 | uint8_t getSn_MR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 800 | return sreg<uint8_t>(sn, Sn_MR); |
Soohwan Kim |
4:4930f81bbe98 | 801 | } |
Soohwan Kim |
4:4930f81bbe98 | 802 | |
Soohwan Kim |
4:4930f81bbe98 | 803 | /** |
Soohwan Kim |
4:4930f81bbe98 | 804 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 805 | * @brief Set @ref Sn_CR register |
Soohwan Kim |
4:4930f81bbe98 | 806 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 807 | * @param (uint8_t)cr Value to set @ref Sn_CR |
Soohwan Kim |
4:4930f81bbe98 | 808 | * @sa getSn_CR() |
Soohwan Kim |
4:4930f81bbe98 | 809 | */ |
Soohwan Kim |
4:4930f81bbe98 | 810 | void setSn_CR(uint8_t sn, uint8_t cr) { |
Soohwan Kim |
4:4930f81bbe98 | 811 | sreg<uint8_t>(sn, Sn_CR, cr); |
Soohwan Kim |
4:4930f81bbe98 | 812 | } |
Soohwan Kim |
4:4930f81bbe98 | 813 | |
Soohwan Kim |
4:4930f81bbe98 | 814 | /** |
Soohwan Kim |
4:4930f81bbe98 | 815 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 816 | * @brief Get @ref Sn_CR register |
Soohwan Kim |
4:4930f81bbe98 | 817 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 818 | * @return uint8_t. Value of @ref Sn_CR. |
Soohwan Kim |
4:4930f81bbe98 | 819 | * @sa setSn_CR() |
Soohwan Kim |
4:4930f81bbe98 | 820 | */ |
Soohwan Kim |
4:4930f81bbe98 | 821 | uint8_t getSn_CR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 822 | return sreg<uint8_t>(sn, Sn_CR); |
Soohwan Kim |
4:4930f81bbe98 | 823 | } |
Soohwan Kim |
4:4930f81bbe98 | 824 | |
Soohwan Kim |
4:4930f81bbe98 | 825 | /** |
Soohwan Kim |
4:4930f81bbe98 | 826 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 827 | * @brief Set @ref Sn_IR register |
Soohwan Kim |
4:4930f81bbe98 | 828 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 829 | * @param (uint8_t)ir Value to set @ref Sn_IR |
Soohwan Kim |
4:4930f81bbe98 | 830 | * @sa getSn_IR() |
Soohwan Kim |
4:4930f81bbe98 | 831 | */ |
Soohwan Kim |
4:4930f81bbe98 | 832 | void setSn_IR(uint8_t sn, uint8_t ir) { |
Soohwan Kim |
4:4930f81bbe98 | 833 | sreg<uint8_t>(sn, Sn_IR, (ir & 0x1F)); |
Soohwan Kim |
4:4930f81bbe98 | 834 | } |
Soohwan Kim |
4:4930f81bbe98 | 835 | |
Soohwan Kim |
4:4930f81bbe98 | 836 | /** |
Soohwan Kim |
4:4930f81bbe98 | 837 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 838 | * @brief Get @ref Sn_IR register |
Soohwan Kim |
4:4930f81bbe98 | 839 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 840 | * @return uint8_t. Value of @ref Sn_IR. |
Soohwan Kim |
4:4930f81bbe98 | 841 | * @sa setSn_IR() |
Soohwan Kim |
4:4930f81bbe98 | 842 | */ |
Soohwan Kim |
4:4930f81bbe98 | 843 | uint8_t getSn_IR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 844 | return (sreg<uint8_t>(sn, Sn_IR)) & 0x1F; |
Soohwan Kim |
4:4930f81bbe98 | 845 | } |
Soohwan Kim |
4:4930f81bbe98 | 846 | |
Soohwan Kim |
4:4930f81bbe98 | 847 | /** |
Soohwan Kim |
4:4930f81bbe98 | 848 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 849 | * @brief Set @ref Sn_IMR register |
Soohwan Kim |
4:4930f81bbe98 | 850 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 851 | * @param (uint8_t)imr Value to set @ref Sn_IMR |
Soohwan Kim |
4:4930f81bbe98 | 852 | * @sa getSn_IMR() |
Soohwan Kim |
4:4930f81bbe98 | 853 | */ |
Soohwan Kim |
4:4930f81bbe98 | 854 | void setSn_IMR(uint8_t sn, uint8_t imr) { |
Soohwan Kim |
4:4930f81bbe98 | 855 | sreg<uint8_t>(sn, Sn_IMR, (imr & 0x1F)); |
Soohwan Kim |
4:4930f81bbe98 | 856 | } |
Soohwan Kim |
4:4930f81bbe98 | 857 | |
Soohwan Kim |
4:4930f81bbe98 | 858 | /** |
Soohwan Kim |
4:4930f81bbe98 | 859 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 860 | * @brief Get @ref Sn_IMR register |
Soohwan Kim |
4:4930f81bbe98 | 861 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 862 | * @return uint8_t. Value of @ref Sn_IMR. |
Soohwan Kim |
4:4930f81bbe98 | 863 | * @sa setSn_IMR() |
Soohwan Kim |
4:4930f81bbe98 | 864 | */ |
Soohwan Kim |
4:4930f81bbe98 | 865 | uint8_t getSn_IMR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 866 | return (sreg<uint8_t>(sn, Sn_IMR)) & 0x1F; |
Soohwan Kim |
4:4930f81bbe98 | 867 | } |
Soohwan Kim |
4:4930f81bbe98 | 868 | |
Soohwan Kim |
4:4930f81bbe98 | 869 | /** |
Soohwan Kim |
4:4930f81bbe98 | 870 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 871 | * @brief Get @ref Sn_SR register |
Soohwan Kim |
4:4930f81bbe98 | 872 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 873 | * @return uint8_t. Value of @ref Sn_SR. |
Soohwan Kim |
4:4930f81bbe98 | 874 | */ |
Soohwan Kim |
4:4930f81bbe98 | 875 | uint8_t getSn_SR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 876 | return sreg<uint8_t>(sn, Sn_SR); |
Soohwan Kim |
4:4930f81bbe98 | 877 | } |
Soohwan Kim |
4:4930f81bbe98 | 878 | |
Soohwan Kim |
4:4930f81bbe98 | 879 | /** |
Soohwan Kim |
4:4930f81bbe98 | 880 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 881 | * @brief Set @ref Sn_PORT register |
Soohwan Kim |
4:4930f81bbe98 | 882 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 883 | * @param (uint16_t)port Value to set @ref Sn_PORT. |
Soohwan Kim |
4:4930f81bbe98 | 884 | * @sa getSn_PORT() |
Soohwan Kim |
4:4930f81bbe98 | 885 | */ |
Soohwan Kim |
4:4930f81bbe98 | 886 | void setSn_PORT(uint8_t sn, uint16_t port) { |
Soohwan Kim |
4:4930f81bbe98 | 887 | sreg<uint16_t>(sn, Sn_PORT, port ); |
Soohwan Kim |
4:4930f81bbe98 | 888 | } |
Soohwan Kim |
4:4930f81bbe98 | 889 | |
Soohwan Kim |
4:4930f81bbe98 | 890 | /** |
Soohwan Kim |
4:4930f81bbe98 | 891 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 892 | * @brief Get @ref Sn_PORT register |
Soohwan Kim |
4:4930f81bbe98 | 893 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 894 | * @return uint16_t. Value of @ref Sn_PORT. |
Soohwan Kim |
4:4930f81bbe98 | 895 | * @sa setSn_PORT() |
Soohwan Kim |
4:4930f81bbe98 | 896 | */ |
Soohwan Kim |
4:4930f81bbe98 | 897 | uint16_t getSn_PORT(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 898 | return sreg<uint16_t>(sn, Sn_PORT); |
Soohwan Kim |
4:4930f81bbe98 | 899 | } |
Soohwan Kim |
4:4930f81bbe98 | 900 | |
Soohwan Kim |
4:4930f81bbe98 | 901 | /** |
Soohwan Kim |
4:4930f81bbe98 | 902 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 903 | * @brief Set @ref Sn_DHAR register |
Soohwan Kim |
4:4930f81bbe98 | 904 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 905 | * @param (uint8_t*)dhar Pointer variable to set socket n destination hardware address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 906 | * @sa getSn_DHAR() |
Soohwan Kim |
4:4930f81bbe98 | 907 | */ |
Soohwan Kim |
4:4930f81bbe98 | 908 | void setSn_DHAR(uint8_t sn, uint8_t * dhar) { |
Soohwan Kim |
4:4930f81bbe98 | 909 | spi_write(Sn_DHAR, (0x0C + (sn << 5)), dhar, 6); |
Soohwan Kim |
4:4930f81bbe98 | 910 | } |
Soohwan Kim |
4:4930f81bbe98 | 911 | |
Soohwan Kim |
4:4930f81bbe98 | 912 | /** |
Soohwan Kim |
4:4930f81bbe98 | 913 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 914 | * @brief Get @ref Sn_MR register |
Soohwan Kim |
4:4930f81bbe98 | 915 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 916 | * @param (uint8_t*)dhar Pointer variable to get socket n destination hardware address. It should be allocated 6 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 917 | * @sa setSn_DHAR() |
Soohwan Kim |
4:4930f81bbe98 | 918 | */ |
Soohwan Kim |
4:4930f81bbe98 | 919 | void getSn_DHAR(uint8_t sn, uint8_t * dhar) { |
Soohwan Kim |
4:4930f81bbe98 | 920 | spi_read(Sn_DHAR, (0x08 + (sn << 5)), dhar, 6); |
Soohwan Kim |
4:4930f81bbe98 | 921 | } |
Soohwan Kim |
4:4930f81bbe98 | 922 | |
Soohwan Kim |
4:4930f81bbe98 | 923 | /** |
Soohwan Kim |
4:4930f81bbe98 | 924 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 925 | * @brief Set @ref Sn_DIPR register |
Soohwan Kim |
4:4930f81bbe98 | 926 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 927 | * @param (uint8_t*)dipr Pointer variable to set socket n destination IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 928 | * @sa getSn_DIPR() |
Soohwan Kim |
4:4930f81bbe98 | 929 | */ |
Soohwan Kim |
4:4930f81bbe98 | 930 | void setSn_DIPR(uint8_t sn, uint8_t * dipr) { |
Soohwan Kim |
4:4930f81bbe98 | 931 | spi_write(Sn_DIPR, (0x0C + (sn << 5)), dipr, 4); |
Soohwan Kim |
4:4930f81bbe98 | 932 | } |
Soohwan Kim |
4:4930f81bbe98 | 933 | |
Soohwan Kim |
4:4930f81bbe98 | 934 | /** |
Soohwan Kim |
4:4930f81bbe98 | 935 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 936 | * @brief Get @ref Sn_DIPR register |
Soohwan Kim |
4:4930f81bbe98 | 937 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 938 | * @param (uint8_t*)dipr Pointer variable to get socket n destination IP address. It should be allocated 4 bytes. |
Soohwan Kim |
4:4930f81bbe98 | 939 | * @sa SetSn_DIPR() |
Soohwan Kim |
4:4930f81bbe98 | 940 | */ |
Soohwan Kim |
4:4930f81bbe98 | 941 | void getSn_DIPR(uint8_t sn, uint8_t * dipr) { |
Soohwan Kim |
4:4930f81bbe98 | 942 | spi_read(Sn_DIPR, (0x08 + (sn << 5)), dipr, 4); |
Soohwan Kim |
4:4930f81bbe98 | 943 | } |
Soohwan Kim |
4:4930f81bbe98 | 944 | |
Soohwan Kim |
4:4930f81bbe98 | 945 | /** |
Soohwan Kim |
4:4930f81bbe98 | 946 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 947 | * @brief Set @ref Sn_DPORT register |
Soohwan Kim |
4:4930f81bbe98 | 948 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 949 | * @param (uint16_t)dport Value to set @ref Sn_DPORT |
Soohwan Kim |
4:4930f81bbe98 | 950 | * @sa getSn_DPORT() |
Soohwan Kim |
4:4930f81bbe98 | 951 | */ |
Soohwan Kim |
4:4930f81bbe98 | 952 | void setSn_DPORT(uint8_t sn, uint16_t dport) { |
Soohwan Kim |
4:4930f81bbe98 | 953 | sreg<uint16_t>(sn, Sn_DPORT, dport); |
Soohwan Kim |
4:4930f81bbe98 | 954 | } |
Soohwan Kim |
4:4930f81bbe98 | 955 | |
Soohwan Kim |
4:4930f81bbe98 | 956 | /** |
Soohwan Kim |
4:4930f81bbe98 | 957 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 958 | * @brief Get @ref Sn_DPORT register |
Soohwan Kim |
4:4930f81bbe98 | 959 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 960 | * @return uint16_t. Value of @ref Sn_DPORT. |
Soohwan Kim |
4:4930f81bbe98 | 961 | * @sa setSn_DPORT() |
Soohwan Kim |
4:4930f81bbe98 | 962 | */ |
Soohwan Kim |
4:4930f81bbe98 | 963 | uint16_t getSn_DPORT(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 964 | return sreg<uint16_t>(sn, Sn_DPORT); |
Soohwan Kim |
4:4930f81bbe98 | 965 | } |
Soohwan Kim |
4:4930f81bbe98 | 966 | |
Soohwan Kim |
4:4930f81bbe98 | 967 | /** |
Soohwan Kim |
4:4930f81bbe98 | 968 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 969 | * @brief Set @ref Sn_MSSR register |
Soohwan Kim |
4:4930f81bbe98 | 970 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 971 | * @param (uint16_t)mss Value to set @ref Sn_MSSR |
Soohwan Kim |
4:4930f81bbe98 | 972 | * @sa setSn_MSSR() |
Soohwan Kim |
4:4930f81bbe98 | 973 | */ |
Soohwan Kim |
4:4930f81bbe98 | 974 | void setSn_MSSR(uint8_t sn, uint16_t mss) { |
Soohwan Kim |
4:4930f81bbe98 | 975 | sreg<uint16_t>(sn, Sn_MSSR, mss); |
Soohwan Kim |
4:4930f81bbe98 | 976 | } |
Soohwan Kim |
4:4930f81bbe98 | 977 | |
Soohwan Kim |
4:4930f81bbe98 | 978 | /** |
Soohwan Kim |
4:4930f81bbe98 | 979 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 980 | * @brief Get @ref Sn_MSSR register |
Soohwan Kim |
4:4930f81bbe98 | 981 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 982 | * @return uint16_t. Value of @ref Sn_MSSR. |
Soohwan Kim |
4:4930f81bbe98 | 983 | * @sa setSn_MSSR() |
Soohwan Kim |
4:4930f81bbe98 | 984 | */ |
Soohwan Kim |
4:4930f81bbe98 | 985 | uint16_t getSn_MSSR(uint16_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 986 | return sreg<uint16_t>(sn, Sn_MSSR); |
Soohwan Kim |
4:4930f81bbe98 | 987 | } |
Soohwan Kim |
4:4930f81bbe98 | 988 | |
Soohwan Kim |
4:4930f81bbe98 | 989 | /** |
Soohwan Kim |
4:4930f81bbe98 | 990 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 991 | * @brief Set @ref Sn_TOS register |
Soohwan Kim |
4:4930f81bbe98 | 992 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 993 | * @param (uint8_t)tos Value to set @ref Sn_TOS |
Soohwan Kim |
4:4930f81bbe98 | 994 | * @sa getSn_TOS() |
Soohwan Kim |
4:4930f81bbe98 | 995 | */ |
Soohwan Kim |
4:4930f81bbe98 | 996 | void setSn_TOS(uint8_t sn, uint8_t tos) { |
Soohwan Kim |
4:4930f81bbe98 | 997 | sreg<uint8_t>(sn, Sn_TOS, tos); |
Soohwan Kim |
4:4930f81bbe98 | 998 | } |
Soohwan Kim |
4:4930f81bbe98 | 999 | |
Soohwan Kim |
4:4930f81bbe98 | 1000 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1001 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1002 | * @brief Get @ref Sn_TOS register |
Soohwan Kim |
4:4930f81bbe98 | 1003 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1004 | * @return uint8_t. Value of Sn_TOS. |
Soohwan Kim |
4:4930f81bbe98 | 1005 | * @sa setSn_TOS() |
Soohwan Kim |
4:4930f81bbe98 | 1006 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1007 | uint8_t getSn_TOS(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1008 | return sreg<uint8_t>(sn, Sn_TOS); |
Soohwan Kim |
4:4930f81bbe98 | 1009 | } |
Soohwan Kim |
4:4930f81bbe98 | 1010 | |
Soohwan Kim |
4:4930f81bbe98 | 1011 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1012 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1013 | * @brief Set @ref Sn_TTL register |
Soohwan Kim |
4:4930f81bbe98 | 1014 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1015 | * @param (uint8_t)ttl Value to set @ref Sn_TTL |
Soohwan Kim |
4:4930f81bbe98 | 1016 | * @sa getSn_TTL() |
Soohwan Kim |
4:4930f81bbe98 | 1017 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1018 | void setSn_TTL(uint8_t sn, uint8_t ttl) { |
Soohwan Kim |
4:4930f81bbe98 | 1019 | sreg<uint8_t>(sn, Sn_TTL, ttl); |
Soohwan Kim |
4:4930f81bbe98 | 1020 | } |
Soohwan Kim |
4:4930f81bbe98 | 1021 | |
Soohwan Kim |
4:4930f81bbe98 | 1022 | |
Soohwan Kim |
4:4930f81bbe98 | 1023 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1024 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1025 | * @brief Get @ref Sn_TTL register |
Soohwan Kim |
4:4930f81bbe98 | 1026 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1027 | * @return uint8_t. Value of @ref Sn_TTL. |
Soohwan Kim |
4:4930f81bbe98 | 1028 | * @sa setSn_TTL() |
Soohwan Kim |
4:4930f81bbe98 | 1029 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1030 | uint8_t getSn_TTL(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1031 | return sreg<uint8_t>(sn, Sn_TTL); |
Soohwan Kim |
4:4930f81bbe98 | 1032 | } |
Soohwan Kim |
4:4930f81bbe98 | 1033 | |
Soohwan Kim |
4:4930f81bbe98 | 1034 | |
Soohwan Kim |
4:4930f81bbe98 | 1035 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1036 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1037 | * @brief Set @ref Sn_RXBUF_SIZE register |
Soohwan Kim |
4:4930f81bbe98 | 1038 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1039 | * @param (uint8_t)rxbufsize Value to set @ref Sn_RXBUF_SIZE |
Soohwan Kim |
4:4930f81bbe98 | 1040 | * @sa getSn_RXBUF_SIZE() |
Soohwan Kim |
4:4930f81bbe98 | 1041 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1042 | void setSn_RXBUF_SIZE(uint8_t sn, uint8_t rxbufsize) { |
Soohwan Kim |
4:4930f81bbe98 | 1043 | sreg<uint8_t>(sn, Sn_RXBUF_SIZE ,rxbufsize); |
Soohwan Kim |
4:4930f81bbe98 | 1044 | } |
Soohwan Kim |
4:4930f81bbe98 | 1045 | |
Soohwan Kim |
4:4930f81bbe98 | 1046 | |
Soohwan Kim |
4:4930f81bbe98 | 1047 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1048 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1049 | * @brief Get @ref Sn_RXBUF_SIZE register |
Soohwan Kim |
4:4930f81bbe98 | 1050 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1051 | * @return uint8_t. Value of @ref Sn_RXBUF_SIZE. |
Soohwan Kim |
4:4930f81bbe98 | 1052 | * @sa setSn_RXBUF_SIZE() |
Soohwan Kim |
4:4930f81bbe98 | 1053 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1054 | uint8_t getSn_RXBUF_SIZE(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1055 | return sreg<uint8_t>(sn, Sn_RXBUF_SIZE); |
Soohwan Kim |
4:4930f81bbe98 | 1056 | } |
Soohwan Kim |
4:4930f81bbe98 | 1057 | |
Soohwan Kim |
4:4930f81bbe98 | 1058 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1059 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1060 | * @brief Set @ref Sn_TXBUF_SIZE register |
Soohwan Kim |
4:4930f81bbe98 | 1061 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1062 | * @param (uint8_t)txbufsize Value to set @ref Sn_TXBUF_SIZE |
Soohwan Kim |
4:4930f81bbe98 | 1063 | * @sa getSn_TXBUF_SIZE() |
Soohwan Kim |
4:4930f81bbe98 | 1064 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1065 | void setSn_TXBUF_SIZE(uint8_t sn, uint8_t txbufsize) { |
Soohwan Kim |
4:4930f81bbe98 | 1066 | sreg<uint8_t>(sn, Sn_TXBUF_SIZE, txbufsize); |
Soohwan Kim |
4:4930f81bbe98 | 1067 | } |
Soohwan Kim |
4:4930f81bbe98 | 1068 | |
Soohwan Kim |
4:4930f81bbe98 | 1069 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1070 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1071 | * @brief Get @ref Sn_TXBUF_SIZE register |
Soohwan Kim |
4:4930f81bbe98 | 1072 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1073 | * @return uint8_t. Value of @ref Sn_TXBUF_SIZE. |
Soohwan Kim |
4:4930f81bbe98 | 1074 | * @sa setSn_TXBUF_SIZE() |
Soohwan Kim |
4:4930f81bbe98 | 1075 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1076 | uint8_t getSn_TXBUF_SIZE(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1077 | return sreg<uint8_t>(sn, Sn_TXBUF_SIZE); |
Soohwan Kim |
4:4930f81bbe98 | 1078 | } |
Soohwan Kim |
4:4930f81bbe98 | 1079 | |
Soohwan Kim |
4:4930f81bbe98 | 1080 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1081 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1082 | * @brief Get @ref Sn_TX_FSR register |
Soohwan Kim |
4:4930f81bbe98 | 1083 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1084 | * @return uint16_t. Value of @ref Sn_TX_FSR. |
Soohwan Kim |
4:4930f81bbe98 | 1085 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1086 | uint16_t getSn_TX_FSR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1087 | return sreg<uint16_t>(sn, Sn_TX_FSR); |
Soohwan Kim |
4:4930f81bbe98 | 1088 | } |
Soohwan Kim |
4:4930f81bbe98 | 1089 | |
Soohwan Kim |
4:4930f81bbe98 | 1090 | |
Soohwan Kim |
4:4930f81bbe98 | 1091 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1092 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1093 | * @brief Get @ref Sn_TX_RD register |
Soohwan Kim |
4:4930f81bbe98 | 1094 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1095 | * @return uint16_t. Value of @ref Sn_TX_RD. |
Soohwan Kim |
4:4930f81bbe98 | 1096 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1097 | uint16_t getSn_TX_RD(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1098 | return sreg<uint16_t>(sn, Sn_TX_RD); |
Soohwan Kim |
4:4930f81bbe98 | 1099 | } |
Soohwan Kim |
4:4930f81bbe98 | 1100 | |
Soohwan Kim |
4:4930f81bbe98 | 1101 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1102 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1103 | * @brief Set @ref Sn_TX_WR register |
Soohwan Kim |
4:4930f81bbe98 | 1104 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1105 | * @param (uint16_t)txwr Value to set @ref Sn_TX_WR |
Soohwan Kim |
4:4930f81bbe98 | 1106 | * @sa GetSn_TX_WR() |
Soohwan Kim |
4:4930f81bbe98 | 1107 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1108 | void setSn_TX_WR(uint8_t sn, uint16_t txwr) { |
Soohwan Kim |
4:4930f81bbe98 | 1109 | sreg<uint16_t>(sn, Sn_TX_WR, txwr); |
Soohwan Kim |
4:4930f81bbe98 | 1110 | } |
Soohwan Kim |
4:4930f81bbe98 | 1111 | |
Soohwan Kim |
4:4930f81bbe98 | 1112 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1113 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1114 | * @brief Get @ref Sn_TX_WR register |
Soohwan Kim |
4:4930f81bbe98 | 1115 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1116 | * @return uint16_t. Value of @ref Sn_TX_WR. |
Soohwan Kim |
4:4930f81bbe98 | 1117 | * @sa setSn_TX_WR() |
Soohwan Kim |
4:4930f81bbe98 | 1118 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1119 | uint16_t getSn_TX_WR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1120 | return sreg<uint16_t>(sn, Sn_TX_WR); |
Soohwan Kim |
4:4930f81bbe98 | 1121 | } |
Soohwan Kim |
4:4930f81bbe98 | 1122 | |
Soohwan Kim |
4:4930f81bbe98 | 1123 | |
Soohwan Kim |
4:4930f81bbe98 | 1124 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1125 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1126 | * @brief Get @ref Sn_RX_RSR register |
Soohwan Kim |
4:4930f81bbe98 | 1127 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1128 | * @return uint16_t. Value of @ref Sn_RX_RSR. |
Soohwan Kim |
4:4930f81bbe98 | 1129 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1130 | uint16_t getSn_RX_RSR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1131 | return sreg<uint16_t>(sn, Sn_RX_RSR); |
Soohwan Kim |
4:4930f81bbe98 | 1132 | } |
Soohwan Kim |
4:4930f81bbe98 | 1133 | |
Soohwan Kim |
4:4930f81bbe98 | 1134 | |
Soohwan Kim |
4:4930f81bbe98 | 1135 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1136 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1137 | * @brief Set @ref Sn_RX_RD register |
Soohwan Kim |
4:4930f81bbe98 | 1138 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1139 | * @param (uint16_t)rxrd Value to set @ref Sn_RX_RD |
Soohwan Kim |
4:4930f81bbe98 | 1140 | * @sa getSn_RX_RD() |
Soohwan Kim |
4:4930f81bbe98 | 1141 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1142 | void setSn_RX_RD(uint8_t sn, uint16_t rxrd) { |
Soohwan Kim |
4:4930f81bbe98 | 1143 | sreg<uint16_t>(sn, Sn_RX_RD, rxrd); |
Soohwan Kim |
4:4930f81bbe98 | 1144 | } |
Soohwan Kim |
4:4930f81bbe98 | 1145 | |
Soohwan Kim |
4:4930f81bbe98 | 1146 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1147 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1148 | * @brief Get @ref Sn_RX_RD register |
Soohwan Kim |
4:4930f81bbe98 | 1149 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1150 | * @regurn uint16_t. Value of @ref Sn_RX_RD. |
Soohwan Kim |
4:4930f81bbe98 | 1151 | * @sa setSn_RX_RD() |
Soohwan Kim |
4:4930f81bbe98 | 1152 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1153 | uint16_t getSn_RX_RD(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1154 | return sreg<uint16_t>(sn, Sn_RX_RD); |
Soohwan Kim |
4:4930f81bbe98 | 1155 | } |
Soohwan Kim |
4:4930f81bbe98 | 1156 | |
Soohwan Kim |
4:4930f81bbe98 | 1157 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1158 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1159 | * @brief Get @ref Sn_RX_WR register |
Soohwan Kim |
4:4930f81bbe98 | 1160 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1161 | * @return uint16_t. Value of @ref Sn_RX_WR. |
Soohwan Kim |
4:4930f81bbe98 | 1162 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1163 | uint16_t getSn_RX_WR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1164 | return sreg<uint16_t>(sn, Sn_RX_WR); |
Soohwan Kim |
4:4930f81bbe98 | 1165 | } |
Soohwan Kim |
4:4930f81bbe98 | 1166 | |
Soohwan Kim |
4:4930f81bbe98 | 1167 | |
Soohwan Kim |
4:4930f81bbe98 | 1168 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1169 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1170 | * @brief Set @ref Sn_FRAG register |
Soohwan Kim |
4:4930f81bbe98 | 1171 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1172 | * @param (uint16_t)frag Value to set @ref Sn_FRAG |
Soohwan Kim |
4:4930f81bbe98 | 1173 | * @sa getSn_FRAD() |
Soohwan Kim |
4:4930f81bbe98 | 1174 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1175 | void setSn_FRAG(uint8_t sn, uint16_t frag) { |
Soohwan Kim |
4:4930f81bbe98 | 1176 | sreg<uint16_t>(sn, Sn_FRAG, frag ); |
Soohwan Kim |
4:4930f81bbe98 | 1177 | } |
Soohwan Kim |
4:4930f81bbe98 | 1178 | |
Soohwan Kim |
4:4930f81bbe98 | 1179 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1180 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1181 | * @brief Get @ref Sn_FRAG register |
Soohwan Kim |
4:4930f81bbe98 | 1182 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1183 | * @return uint16_t. Value of @ref Sn_FRAG. |
Soohwan Kim |
4:4930f81bbe98 | 1184 | * @sa setSn_FRAG() |
Soohwan Kim |
4:4930f81bbe98 | 1185 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1186 | uint16_t getSn_FRAG(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1187 | return sreg<uint16_t>(sn, Sn_FRAG); |
Soohwan Kim |
4:4930f81bbe98 | 1188 | } |
Soohwan Kim |
4:4930f81bbe98 | 1189 | |
Soohwan Kim |
4:4930f81bbe98 | 1190 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1191 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1192 | * @brief Set @ref Sn_KPALVTR register |
Soohwan Kim |
4:4930f81bbe98 | 1193 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1194 | * @param (uint8_t)kpalvt Value to set @ref Sn_KPALVTR |
Soohwan Kim |
4:4930f81bbe98 | 1195 | * @sa getSn_KPALVTR() |
Soohwan Kim |
4:4930f81bbe98 | 1196 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1197 | void setSn_KPALVTR(uint8_t sn, uint8_t kpalvt) { |
Soohwan Kim |
4:4930f81bbe98 | 1198 | sreg<uint8_t>(sn, Sn_KPALVTR, kpalvt); |
Soohwan Kim |
4:4930f81bbe98 | 1199 | } |
Soohwan Kim |
4:4930f81bbe98 | 1200 | |
Soohwan Kim |
4:4930f81bbe98 | 1201 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1202 | * @ingroup Socket_register_access_function |
Soohwan Kim |
4:4930f81bbe98 | 1203 | * @brief Get @ref Sn_KPALVTR register |
Soohwan Kim |
4:4930f81bbe98 | 1204 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1205 | * @return uint8_t. Value of @ref Sn_KPALVTR. |
Soohwan Kim |
4:4930f81bbe98 | 1206 | * @sa setSn_KPALVTR() |
Soohwan Kim |
4:4930f81bbe98 | 1207 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1208 | uint8_t getSn_KPALVTR(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1209 | return sreg<uint8_t>(sn, Sn_KPALVTR); |
Soohwan Kim |
4:4930f81bbe98 | 1210 | } |
Soohwan Kim |
4:4930f81bbe98 | 1211 | |
Soohwan Kim |
4:4930f81bbe98 | 1212 | ////////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 1213 | |
Soohwan Kim |
4:4930f81bbe98 | 1214 | ///////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 1215 | // Sn_TXBUF & Sn_RXBUF IO function // |
Soohwan Kim |
4:4930f81bbe98 | 1216 | ///////////////////////////////////// |
Soohwan Kim |
4:4930f81bbe98 | 1217 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1218 | * @brief Gets the max buffer size of socket sn passed as parameter. |
Soohwan Kim |
4:4930f81bbe98 | 1219 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1220 | * @return uint16_t. Value of Socket n RX max buffer size. |
Soohwan Kim |
4:4930f81bbe98 | 1221 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1222 | uint16_t getSn_RxMAX(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1223 | return (getSn_RXBUF_SIZE(sn) << 10); |
Soohwan Kim |
4:4930f81bbe98 | 1224 | } |
Soohwan Kim |
4:4930f81bbe98 | 1225 | |
Soohwan Kim |
4:4930f81bbe98 | 1226 | /** |
Soohwan Kim |
4:4930f81bbe98 | 1227 | * @brief Gets the max buffer size of socket sn passed as parameters. |
Soohwan Kim |
4:4930f81bbe98 | 1228 | * @param (uint8_t)sn Socket number. It should be <b>0 ~ 7</b>. |
Soohwan Kim |
4:4930f81bbe98 | 1229 | * @return uint16_t. Value of Socket n TX max buffer size. |
Soohwan Kim |
4:4930f81bbe98 | 1230 | */ |
Soohwan Kim |
4:4930f81bbe98 | 1231 | //uint16_t getSn_TxMAX(uint8_t sn); |
Soohwan Kim |
4:4930f81bbe98 | 1232 | uint16_t getSn_TxMAX(uint8_t sn) { |
Soohwan Kim |
4:4930f81bbe98 | 1233 | return (getSn_TXBUF_SIZE(sn) << 10); |
Soohwan Kim |
4:4930f81bbe98 | 1234 | } |
Soohwan Kim |
4:4930f81bbe98 | 1235 | |
Soohwan Kim |
0:6f28332c466f | 1236 | |
Soohwan Kim |
0:6f28332c466f | 1237 | protected: |
Soohwan Kim |
0:6f28332c466f | 1238 | uint8_t mac[6]; |
Soohwan Kim |
0:6f28332c466f | 1239 | uint32_t ip; |
Soohwan Kim |
0:6f28332c466f | 1240 | uint32_t netmask; |
Soohwan Kim |
0:6f28332c466f | 1241 | uint32_t gateway; |
Soohwan Kim |
0:6f28332c466f | 1242 | uint32_t dnsaddr; |
Soohwan Kim |
0:6f28332c466f | 1243 | bool dhcp; |
Soohwan Kim |
4:4930f81bbe98 | 1244 | |
Soohwan Kim |
4:4930f81bbe98 | 1245 | |
Soohwan Kim |
0:6f28332c466f | 1246 | |
Soohwan Kim |
0:6f28332c466f | 1247 | static WIZnet_Chip* inst; |
Soohwan Kim |
0:6f28332c466f | 1248 | |
Soohwan Kim |
0:6f28332c466f | 1249 | void reg_wr_mac(uint16_t addr, uint8_t* data) { |
Soohwan Kim |
0:6f28332c466f | 1250 | spi_write(addr, 0x04, data, 6); |
Soohwan Kim |
0:6f28332c466f | 1251 | } |
Soohwan Kim |
0:6f28332c466f | 1252 | |
Soohwan Kim |
0:6f28332c466f | 1253 | void spi_write(uint16_t addr, uint8_t cb, const uint8_t *buf, uint16_t len); |
Soohwan Kim |
0:6f28332c466f | 1254 | void spi_read(uint16_t addr, uint8_t cb, uint8_t *buf, uint16_t len); |
Soohwan Kim |
0:6f28332c466f | 1255 | SPI* spi; |
Soohwan Kim |
0:6f28332c466f | 1256 | DigitalOut cs; |
Soohwan Kim |
0:6f28332c466f | 1257 | DigitalOut reset_pin; |
Soohwan Kim |
0:6f28332c466f | 1258 | }; |
Soohwan Kim |
0:6f28332c466f | 1259 | |
Soohwan Kim |
0:6f28332c466f | 1260 | extern uint32_t str_to_ip(const char* str); |
Soohwan Kim |
0:6f28332c466f | 1261 | extern void printfBytes(char* str, uint8_t* buf, int len); |
Soohwan Kim |
0:6f28332c466f | 1262 | extern void printHex(uint8_t* buf, int len); |
Soohwan Kim |
0:6f28332c466f | 1263 | extern void debug_hex(uint8_t* buf, int len); |