This repository provides MPLAB X IDE projects that can work out of the box. The solutions that are included in the repository include functionality for UDP, TCP Server and TCP Client Demos. Note that the TCP/IP Lite stack needs to be serviced every 1 second and the timer callback function needs to be set to 1 second.
More details can be found at the following links:
- MPLAB® X IDE v5.40 or later (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 v2.20 or later (microchip.com/mplab/compilers)
- TCP/IP Lite Stack v3.0.0
- Ethernet Drivers Library v3.0.0
- TCPIP Demo GUI v2.0
- Wireshark Tool
- PIC18 PoE Main Board (dm160230)
- PIC18F67J60
- Open MPLABX IDE.
- From the downloaded projects, open ethxxj60-udp-solution.X.
- Open Windows Command Prompt application on your PC. Type “ipconfig” to get the IP address of your PC.
- Sending UDP Packets: In udp_demo.c, under the function UDP_DEMO_Send ():
- Receiving UDP Packets: In Source Files\MCC generated files\ udpv4_port_handler_table.c, add the following code:
- Click on Program Device to program the code to the device.
- Launch Wireshark. From the Capture menu, click Options.
Select an Interface from the list to which your board and PC are connected, click Start for capturing packets.
e.g.: Local Area Network - In Wireshark, notice the DHCP packets handshake to get the device IP address.
- In Wireshark, double click on “Offer” packet. Expand “Dynamic Host Configuration Protocol” to get the device IP address.
- Open the Java application TCPIP_Demo.exe. Go to the UDP tab and assign the same port number as ‘DestPort’ (65531). Click on ‘Listen’ button. Click “Allow Access” if warning occurs. Assign the IP Address of your board which is found from step 9(192.168.0.37). Click on ‘Claim’ button.
- In Wireshark, set the filter field as bootp||udp.port==65531.
- In Demo GUI, type data(e.g.: “PIC8F67J60”)inside Send Data box and press the Send button and observe the Wireshark capture.
- On the IoT PoE Main Board, press the Switch S1 and observe the Wireshark capture.
- Open MPLABX IDE.
- From the downloaded projects, open ethxxj60-tcp-client-solution.X.
- Click on Program Device to program the code to the device.
- Launch Wireshark. From the Capture menu, click Options.
Select an Interface from the list to which your board and PC are connected, click Start for capturing packets.
e.g.: Local Area Network - In Wireshark, set the filter field as bootp||tcp.port==65534.
- Open the Java application TCPIP_Demo.exe. Go to the TCP Server Demo tab and assign the port number as ‘65534’. Click on ‘Listen’ button. The status of the TCP Connection is printed inside the STATUS text box.
- After the connection is established:
- Push ‘Disconnect’ button, to close the TCP Connection. A client disconnected message will appear on the STATUS text box.
- Open MPLABX IDE.
- From the downloaded projects, open ethxxj60-tcp-server-solution.X.
- Click on Program Device to program the code to the device.
- Launch Wireshark. From the Capture menu, click Options.
Select an Interface from the list to which your board and PC are connected, click Start for capturing packets.
e.g.: Local Area Network - In Wireshark, notice the DHCP packets handshake to get the device IP address.
- In Wireshark, double click on “Offer” packet. Expand “Dynamic Host Configuration Protocol” to get the device IP address.
- Open the Java application TCPIP_Demo.exe. Go to the TCP Client Demo tab, assign the device IP address as Server IP address in the GUI. Assign the port number as ‘7’. Click on ‘Connect’ button. The status of the TCP Connection is printed inside the STATUS text box.
- After the connection is established:
- Push ‘Disconnect’ button, to close the TCP Connection. TCP server closing the connection message will appear on the STATUS text box.