Hi everyone.
I start write my network stack for PIC18F4550 + ENC28J60 for fun and test my code in Proteus.
I already wrote the frame layer, IP layer, ARP, ICMP, PING and all works great. The problem comes when a started the DHCP protocol.
After I send the DISCOVER packet and router send back the OFFER, my code dont recognise all received data.
Only first 100 bytes arrive, but WireShark shows a total of 598 byte on the wire.
All my preview code (frame layer, IP layer, ARP Protocol, ICMP, PING) uses less than 100 bytes of inbound traffic and all works nicelly.
To help the debug process, I enable the diagnostics of ENC28J60 in "Packets Send/Receive" option to "Full trace", then I notice that the incoming traffic in Proteus is limited to 100 bytes (length = 068 in debug line), the outbound trafic is normal.
To make a cross check of this issue, I try the sample project "Arduino with ENC28J60 Ethernet Shield", locate in proteus sample library.
And the simulation have same behavior, Proteus only see first 100 bytes of incoming data.
- I try to reinstall my copy of Proteus in my computer- Not work
- I try install on another computer - Not work, same issue
- I try disable the flowcontror of my network card (proteus help say to do for some reason) - No.......
- I try to install a brand new demo copy of Proteus 8.14 downloaded from LabCenter website and run the ENC28j60 sample project - Nop too
- I install the Microsoft loopback network adapter (virtual network card) help wireshark debug because its no internet traffic - Nooooo
- I google, I bing, I really try
Until ... I try a Windows 7 + Proteus 8.9 in a Virtual machine - This works.
Than I figure that are not error in my code, but a conflict between proteus and Windows 10
Anyone have a idea to solve this?
I use my laptop to develop all my projects and running a VM only for proteus is waste of battery time.
- Proteus in Windows 10:
- Proteus in a Windows 7 Virtual Machine