Component: TCP/IP (ENC28J60) (Comms: Networking): Difference between revisions
Appearance
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable"" |
m Text replacement - "width="10%" align="center" style="background-color:#D8C9D8;" align="center"" to "width="10%" align="center" class="mtx-class-macrohead"" |
||
| Line 73: | Line 73: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckArpPacketIsMyreplyArp''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckArpPacketIsMyreplyArp''' | ||
|- | |- | ||
| Line 87: | Line 87: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForARP''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForARP''' | ||
|- | |- | ||
| Line 106: | Line 106: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForIp''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForIp''' | ||
|- | |- | ||
| Line 125: | Line 125: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForPing''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForPing''' | ||
|- | |- | ||
| Line 139: | Line 139: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTCPPort''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTCPPort''' | ||
|- | |- | ||
| Line 158: | Line 158: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTCPType''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForTCPType''' | ||
|- | |- | ||
| Line 172: | Line 172: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ClientSendPacket''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ClientSendPacket''' | ||
|- | |- | ||
| Line 231: | Line 231: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ControlLEDs''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ControlLEDs''' | ||
|- | |- | ||
| Line 250: | Line 250: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FillTcpArray''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FillTcpArray''' | ||
|- | |- | ||
| Line 279: | Line 279: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FillTcpData''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FillTcpData''' | ||
|- | |- | ||
| Line 303: | Line 303: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetDataLength''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetDataLength''' | ||
|- | |- | ||
| Line 317: | Line 317: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetModuleRevision''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetModuleRevision''' | ||
|- | |- | ||
| Line 331: | Line 331: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetSendersMAC''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetSendersMAC''' | ||
|- | |- | ||
| Line 350: | Line 350: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTcpDataPointer''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTcpDataPointer''' | ||
|- | |- | ||
| Line 364: | Line 364: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | ||
|- | |- | ||
| Line 378: | Line 378: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''InitialiseDataLengthInfo''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''InitialiseDataLengthInfo''' | ||
|- | |- | ||
| Line 392: | Line 392: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeArpAnswerFromRequest''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeArpAnswerFromRequest''' | ||
|- | |- | ||
| Line 406: | Line 406: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeArpRequest''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeArpRequest''' | ||
|- | |- | ||
| Line 425: | Line 425: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeEchoReplyFromRequest''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeEchoReplyFromRequest''' | ||
|- | |- | ||
| Line 444: | Line 444: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpAckFromAny''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpAckFromAny''' | ||
|- | |- | ||
| Line 463: | Line 463: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpAckWithData''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpAckWithData''' | ||
|- | |- | ||
| Line 482: | Line 482: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpSynackFromSyn''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MakeTcpSynackFromSyn''' | ||
|- | |- | ||
| Line 501: | Line 501: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PacketReceive''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PacketReceive''' | ||
|- | |- | ||
| Line 515: | Line 515: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PacketSend''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PacketSend''' | ||
|- | |- | ||
| Line 534: | Line 534: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadArrayFromBuffer''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadArrayFromBuffer''' | ||
|- | |- | ||
| Line 563: | Line 563: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadRegister''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadRegister''' | ||
|- | |- | ||
| Line 582: | Line 582: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadStringFromBuffer''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadStringFromBuffer''' | ||
|- | |- | ||
| Line 606: | Line 606: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMyIPAddress''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMyIPAddress''' | ||
|- | |- | ||
| Line 640: | Line 640: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMyMACAddress''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMyMACAddress''' | ||
|- | |- | ||
| Line 684: | Line 684: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteRegister''' | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteRegister''' | ||
|- | |- | ||
Revision as of 14:17, 13 July 2026
| Author | Matrix TSL |
| Version | 2.2 |
| Category | Comms: Networking |
TCP/IP (ENC28J60) component
A set of routines used to control a ENC28J60 TCP/IP Module. Required connections VCC, Reset, GND, SCK, MISO, MOSI, CS. Leave these pins disconnected CLKOUT, ENC_WOL, ENC_INT
Component Source Code
Please click here to download the component source project: FC_Comp_Source_TCPIP_ENC28J60.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_TCPIP_ENC28J60.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Here is a simple example to help get started with the ENC28J60 module.
The example program creates a web page server on the network and will also respond to ping requests.
The HTML to drive the web pages is included in the flowchart near the bottom of the main program loop.
Macro reference
CheckArpPacketIsMyreplyArp
| CheckArpPacketIsMyreplyArp | |
| Return | |
CheckForARP
| CheckForARP | |
| Checks to see if the received data is an ARP request with my IP address. | |
| Length | |
| Return | |
CheckForIp
| CheckForIp | |
| Checks to see if the received data is an IP request with my IP address. | |
| Length | |
| Return | |
CheckForPing
| CheckForPing | |
| Checks to see if the received data is a Ping request | |
| Return | |
CheckForTCPPort
| CheckForTCPPort | |
| Checks to see if the received data is requesting the server port | |
| Port | |
| Return | |
CheckForTCPType
| CheckForTCPType | |
| Checks to what kind of TCP type the received data is requesting. Returns a bit field specifying the type of request. 0x01 = Ack Requires, 0x02 = Synchronise 0x10 = Ack | |
| Return | |
ClientSendPacket
| ClientSendPacket | |
| DestPort | |
| SourcePort | |
| Flags | |
| MaxSegmentSize | |
| ClearSeqAck | |
| NextAckNum | |
| DataLength | |
| DestMac | |
| DestIp | |
| Return | |
ControlLEDs
| ControlLEDs | |
| Allows both the LEDs on the Ethernet socket to be controlled. Useful for checking if the SPI communications are functioning correctly. | |
| Mode | |
| 0=Off, 1=On, 2=Auto | |
| Return | |
FillTcpArray
| FillTcpArray | |
| Position | |
| Count | |
| Data | |
| Return | |
FillTcpData
| FillTcpData | |
| Position | |
| Data | |
| Return | |
GetDataLength
| GetDataLength | |
| Returns the number of received data bytes after the headers | |
| Return | |
GetModuleRevision
| GetModuleRevision | |
| Requets the module revision number and returns the value supplied by the module's firmware. | |
| Return | |
GetSendersMAC
| GetSendersMAC | |
| Gets the MAC address from locations 6-11 of the IP Header | |
| MAC | |
| 6-byte Array to store the MAC address | |
| Return | |
GetTcpDataPointer
| GetTcpDataPointer | |
| Return | |
Initialise
InitialiseDataLengthInfo
| InitialiseDataLengthInfo | |
| Initialises the data pointers to allow us to craft a response containing data | |
| Return | |
MakeArpAnswerFromRequest
| MakeArpAnswerFromRequest | |
| Return | |
MakeArpRequest
| MakeArpRequest | |
| ServerIP | |
| Return | |
MakeEchoReplyFromRequest
| MakeEchoReplyFromRequest | |
| Length | |
| Return | |
MakeTcpAckFromAny
| MakeTcpAckFromAny | |
| Port | |
| Return | |
MakeTcpAckWithData
| MakeTcpAckWithData | |
| DataLength | |
| Return | |
MakeTcpSynackFromSyn
| MakeTcpSynackFromSyn | |
| Port | |
| Return | |
PacketReceive
| PacketReceive | |
| Attempts to receive a data packet from the ENC28J60 module. Returns the number of bytes received. | |
| Return | |
PacketSend
| PacketSend | |
| Attempts to transmit a data packet to the ENC28J60 module. | |
| Length | |
| Return | |
ReadArrayFromBuffer
ReadRegister
| ReadRegister | |
| Reads the value from a single register onboard the ENC28J60 module. | |
| Address | |
| Return | |
ReadStringFromBuffer
SetMyIPAddress
SetMyMACAddress
WriteRegister
| WriteRegister | |
| Writes a value to a single register onboard the ENC28J60 module. | |
| Address | |
| Data | |
| Return | |