Component: TCP/IP Dummy (ENC28J60) (Comms: Networking): Difference between revisions
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable"" |
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead"" |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 98: | Line 98: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckArpPacketIsMyreplyArp''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 112: | Line 112: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckForARP''' | ||
|- | |- | ||
| colspan="2" | Checks to see if the received data is an ARP request with my IP address. | | colspan="2" | Checks to see if the received data is an ARP request with my IP address. | ||
| Line 131: | Line 131: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckForIp''' | ||
|- | |- | ||
| colspan="2" | Checks to see if the received data is an IP request with my IP address. | | colspan="2" | Checks to see if the received data is an IP request with my IP address. | ||
| Line 150: | Line 150: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckForPing''' | ||
|- | |- | ||
| colspan="2" | Checks to see if the received data is a Ping request | | colspan="2" | Checks to see if the received data is a Ping request | ||
| Line 164: | Line 164: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckForTCPPort''' | ||
|- | |- | ||
| colspan="2" | Checks to see if the received data is requesting the server port | | colspan="2" | Checks to see if the received data is requesting the server port | ||
| Line 183: | Line 183: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''CheckForTCPType''' | ||
|- | |- | ||
| colspan="2" | 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 | | colspan="2" | 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 | ||
| Line 197: | Line 197: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''ClientSendPacket''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 256: | Line 256: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''ControlLEDs''' | ||
|- | |- | ||
| colspan="2" | Allows both the LEDs on the Ethernet socket to be controlled. Useful for checking if the SPI communications are functioning correctly. | | colspan="2" | Allows both the LEDs on the Ethernet socket to be controlled. Useful for checking if the SPI communications are functioning correctly. | ||
| Line 275: | Line 275: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''FillTcpArray''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 304: | Line 304: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''FillTcpData''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 328: | Line 328: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''GetDataLength''' | ||
|- | |- | ||
| colspan="2" | Returns the number of received data bytes after the headers | | colspan="2" | Returns the number of received data bytes after the headers | ||
| Line 342: | Line 342: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''GetModuleRevision''' | ||
|- | |- | ||
| colspan="2" | Requets the module revision number and returns the value supplied by the module's firmware. | | colspan="2" | Requets the module revision number and returns the value supplied by the module's firmware. | ||
| Line 356: | Line 356: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''GetSendersMAC''' | ||
|- | |- | ||
| colspan="2" | Gets the MAC address from locations 6-11 of the IP Header | | colspan="2" | Gets the MAC address from locations 6-11 of the IP Header | ||
| Line 375: | Line 375: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''GetTcpDataPointer''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 389: | Line 389: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | Initialises the SPI connection to the TCPIP module and sets up some initial values. Flashes the LEDs on and off twice to confirm SPI comms are active. LEDs are then configured to auto functionality. | | colspan="2" | Initialises the SPI connection to the TCPIP module and sets up some initial values. Flashes the LEDs on and off twice to confirm SPI comms are active. LEDs are then configured to auto functionality. | ||
| Line 403: | Line 403: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''InitialiseDataLengthInfo''' | ||
|- | |- | ||
| colspan="2" | Initialises the data pointers to allow us to craft a response containing data | | colspan="2" | Initialises the data pointers to allow us to craft a response containing data | ||
| Line 417: | Line 417: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeArpAnswerFromRequest''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 431: | Line 431: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeArpRequest''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 450: | Line 450: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeEchoReplyFromRequest''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 469: | Line 469: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeTcpAckFromAny''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 488: | Line 488: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeTcpAckWithData''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 507: | Line 507: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''MakeTcpSynackFromSyn''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 526: | Line 526: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''PacketReceive''' | ||
|- | |- | ||
| colspan="2" | Attempts to receive a data packet from the ENC28J60 module. Returns the number of bytes received. | | colspan="2" | Attempts to receive a data packet from the ENC28J60 module. Returns the number of bytes received. | ||
| Line 540: | Line 540: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''PacketSend''' | ||
|- | |- | ||
| colspan="2" | Attempts to transmit a data packet to the ENC28J60 module. | | colspan="2" | Attempts to transmit a data packet to the ENC28J60 module. | ||
| Line 559: | Line 559: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''ReadRegister''' | ||
|- | |- | ||
| colspan="2" | Reads the value from a single register onboard the ENC28J60 module. | | colspan="2" | Reads the value from a single register onboard the ENC28J60 module. | ||
| Line 578: | Line 578: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''ReadStringFromBuffer''' | ||
|- | |- | ||
| colspan="2" | Reads a string from the buffer at location specified for the number of bytes specified. If a space character is encountered then the macro will return straight away without the space character in the string. | | colspan="2" | Reads a string from the buffer at location specified for the number of bytes specified. If a space character is encountered then the macro will return straight away without the space character in the string. | ||
| Line 602: | Line 602: | ||
{| 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%" | | width="90%" class="mtx-class-macrohead" | '''WriteRegister''' | ||
|- | |- | ||
| colspan="2" | Writes a value to a single register onboard the ENC28J60 module. | | colspan="2" | Writes a value to a single register onboard the ENC28J60 module. | ||
| Line 627: | Line 627: | ||
{| class="mtx-class-macrotable wikitable" | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|} | |} | ||
Latest revision as of 14:23, 13 July 2026
| Author | Matrix TSL |
| Version | 2.0 |
| Category | Comms: Networking |
TCP/IP Dummy 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_Dummy.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_TCPIP_ENC28J60_Dummy.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.
ENC28J60 Example
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 | |
| [[File:]] - | 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 | |
ReadRegister
| ReadRegister | |
| Reads the value from a single register onboard the ENC28J60 module. | |
| Address | |
| Return | |
ReadStringFromBuffer
WriteRegister
| WriteRegister | |
| Writes a value to a single register onboard the ENC28J60 module. | |
| Address | |
| Data | |
| Return | |
Property reference
| Properties |