Two network boards with one EB006 and 16F887 ?

For Flowcode users to discuss projects, flowcharts, and any other issues related to Flowcode 5.
To post in this forum you must have a registered copy of Flowcode 5 or higher.

Moderator: Benj

Post Reply
Brendan
Posts: 227
Joined: Tue Nov 27, 2012 12:53 pm
Location: Cambridge, UK
Contact:

Two network boards with one EB006 and 16F887 ?

Post by Brendan »

My engineering team is currently developing systems and embedded code for bespoke internal test applications.

One requirement is to test connectivity through a MagJack Gigabit balun connector (1000BASE-T, requiring all four pairs to function), so I've proposed we simply loop-back the test path through the four magJack baluns using two EB023 100BAST-TX network boards (upstream and downstream paths occupying two pairs each) and simply perform a card-to-card ping test. The finished test unit will therefore be self-contained, operating independently without need of network.

The approach in principle works perfectly, though does the collective see any issues servicing two EB023 network boards with a single EB006 fitted with a 16F887 PIC (manufacturer-recommended replacement for the popular 877A)? I'm asking this to save possible wasted time trying to get such a project working if I should need to throw another EB006 at it.

Experienced advice and recommendations very much appreciated.

Thanks in advance,

Brendan

User avatar
Benj
Matrix Staff
Posts: 14929
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Contact:

Re: Two network boards with one EB006 and 16F887 ?

Post by Benj »

Hello Brendan,

I would go straight for the 16F1939 devices rather then the 887 as these are now pretty much old hat too. The 19xx devices have more features and cost less.

Running two boards from a single EB006 does work ok as we do this for the Firewall example program. Whether or not you will be able to process enough to keep up with demand depends on how much traffic is going to be going through the PIC. Some of the dsPIC devices run up to 70MIPs which may be more suited to high end or high throughput applications.

Brendan
Posts: 227
Joined: Tue Nov 27, 2012 12:53 pm
Location: Cambridge, UK
Contact:

Re: Two network boards with one EB006 and 16F887 ?

Post by Brendan »

Hello Ben.

Thank you very much indeed for your advice and recommendations, and I'll certainly grab a few of those PICs you recommend. Fortunately, for professional test equipment development, I have the luxury of not having to worry much about hardware costs (particularly as Flowcode and eBlocks save a heap of otherwise costly time and CAD resource), and I've seen a few seasoned colleagues and manager peers already showing interest in our new productivity tool-set :wink:

As I'd prefer to limit focus on one or more 'ideal' PICs for general familiarity and convenience for future projects, if you have some monster 'dream' PICs in mind (regardless of cost) then please feel free to suggest. We'll doubtless cross-grade to the dsPIC or other micros for more demanding projects further down the line, but just breaking things in with a few simpler starter projects at the moment.

So a single EB006/PIC it is until proven otherwise, and in this case we only need to process a 32-Byte looped-back ping in realtime. Unlike running through a wider network and switches however, there is a passive direct connection between the cards for the test loop so no external latency giving ground to processing cycles, and therefore my tentative concern for this particular application questioning possible need of two independent EB006/PICs.

As always, I'll post back once we've proven working principles for future reference.

With thanks and best regards,

Brendan

Brendan
Posts: 227
Joined: Tue Nov 27, 2012 12:53 pm
Location: Cambridge, UK
Contact:

Re: Two network boards with one EB006 and 16F887 ?

Post by Brendan »

Just to follow-up on the successes and failures with this project...

I modified the published 'Ping' demo code for the eBlock Internet Board and initially installed to two separate EB006 development platforms equipped with the prescribed 16F1939 PICs. As expected, each was reliably pinging the other via both a network switch and crossed network cable. I should however mention that both Magjack LEDs on each network board illuminated constantly with the crossover cable connected between them, but no interference to ping operations. The amber LEDs flashed together in response to sending a ping.

I then further modified the code with a second TCP/IP component, of-course with its own separate IP and hardware address, allowing the two network boards to share the one EB006 development board and PIC. I didn't have a cable to share common-able lines so each network board is connected to a separate port, driven in software mode. This is when some rather odd behaviour came to light...

First, I separately connect the two network boards to the two ports of the same network switch as above and each will ping the other without a problem. However, I then link the two boards with the same crossover cable used above and neither responds to a ping. As in the case above with separate EB006/network boards talking, both Magjack LEDs illuminate constantly with the crossover cable connected between the boards, and both amber LEDs flash as before when sending a ping, exactly as when there wasn't a problem before.

I haven't starting digging at this stage or currently have the code to post, but welcome any suggestions that might suggest something more fundamental in nature. I'll not pretend to be familiar with TCP-IP network protocols (etc), but exploring the possibility of Rx buffer over-runs in the absence of network switch latency/buffering I reduced the ping bytes to 8 and still no-go.

In practice, not a problem running two PICs each serving its own network card, but where possible I do like to understand and deal with issues properly rather than dodge them. The PIC is running a 20MHz Xtal, so currently looking like faster processing capability is required to service the real-time demands of two network boards connected directly :?


Thanks in advance,

Brendan

Post Reply