© Copyright 2009-2011 WIZnet Co., Inc. All rights reserved. 34
Sn_TX_RR (Socket n TX Read Pointer Register) [R] [0x0422-0x0423, 0x0522-0x0523,
0x0622-0x0623, 0x0722-0x0723] [0x0000]
This register shows the address that transmission is finished at the TX Memory. With the SEND
command of Socket n Command Register, it transmits data from current Sn_TX_RR to
Sn_TX_WR and automatically changes after transmission is finished. Therefore, after
transmission is finished, Sn_TX_RR and Sn_TX_WR will have same value. When reading this
register, user should read upper byte (0x0422, 0x0522, 0x0622, 0x0722) first and lower byte
(0x0423, 0x0523, 0x0623, 0x0723) later to get the correct value.
Sn_TX_WR (Socket n TX Write Pointer Register) [R/W] [0x0424-0x0425, 0x0524-0x0525,
0x0624-0x0625, 0x0724-0x0725] [0x0000]
This register offers the location information to write the transmission data. When reading this
register, user should read upper byte (0x0424, 0x0524, 0x0624, 0x0724) first and lower byte
(0x0425, 0x0525, 0x0625, 0x0725) later to get the correct value.
Caution: This register value is changed after the successfully executed the send command to
Sn_CR.
Ex) In case of 2048(0x0800) in S0_TX_WR,
But this value itself is not the physical address to write. So, the physical address should be
calculated as follow.
1. Socket n TX Base Address (hereafter we'll call gSn_TX_BASE) and Socket n TX Mask
Address (hereafter we'll call gSn_TX_MASK) are calculated on TMSR value. Refer to
the psedo code of the Initialization if the detail is needed.
2. The bitwise-AND operation of two values, Sn_TX_WR and gSn_TX_MASK give result
the offset address(hereafter we'll call get_offset) in TX memory range of the socket.
3. Two values get_offset and gSn_TX_BASE are added together to give result the
physical address(hereafter, we'll call get_start_address).
Now, write the transmission data to get_start_address as large as you want. (* There's a case
that it exceeds the TX memory upper-bound of the socket while writing. In this case, write
the transmission data to the upper-bound, and change the physical address to the
gSn_TX_BASE. Next, write the rest of the transmission data.)
After that, be sure to increase the Sn_TX_WR value as much as the data size that indicates
the size of writing data. Finally, give SEND command to Sn_CR(Socket n Command Register).
Refer to the psedo code of the transmission part on TCP Server mode if the detail is needed.