Ethernet interface on custom carrier board

Good evening,

Following on from this post, I’m looking at ways of sending data to/from an MCU which will be installed on my custom carrier board. The MCU has a 10/100 ethernet interface, as well as SPI, UART, I2C, etc. I would like to use ethernet, as I’d prefer to keep the other interfaces free, and I wouldn’t make use of the ethernet interfaces on either the MCU or the Apalis otherwise.

My questions:

  1. Would serialising data on the MCU (e.g. an array of longs), sending it to the Apalis module via TCP/IP, then deserialising the array on the Apalis be a good approach?
  2. If the answer to 1 above is yes, are there any special considerations when it comes to connecting the two ethernet interfaces together? The example schematics in the Apalis evaluation board and carrier board design documents only feature ethernet interfaces with an external ethernet socket (excerpt from the Apalis carrier board design attached as reference). Given I’m not using a Gigabit connection, the 4 Gigabit-only lines will be left unused (per the diagram below). What about the ETH1_ACT, ETH1_LINK and ETH1_CTREF lines? Can all of them be left unused as well?

If the answer to 1 above is ‘no’, and there’s a better method for sending ~2Mbit/s worth of data between the MCU and the Apalis module I’ll happily consider it!

Ethernet is probably the most generic approach but may be considered a little bit of an overkill for your simple 2Mbit/s use case. Software-wise, given such generic approach, one may even make use of some RPC framework taking care of the whole serialisation/deserialisation. But of course, you may also simply do your own socket programming.

Thanks @marcel.tx! I wholeheartedly agree that 10/100 ethernet is overkill, but I’d rather have plenty of overhead for future development to the platform than be approaching the limit from the beginning. Thank you for raising the RPC approach, that’s not something I’ve come across before. I’ve had a cursory look and the eRPC system by NXP seems like it might work nicely. Are you able to provide any input with regards to question 2 concerning hardware design/considerations?

Dear @jars121,
I will try to help you with your HW related questions:

Capacitive Coupling: on our production tester, we implemented already an easy connection between Ethernet interfaces using only capacitors.
The connection implemented has been: Apalis Module → 100nF Capacitors → PCB Traces (which represent the cable) → 100nF Capacitors → Ethernet switch.

I think that it should even work with only one series capacitor but we never actually tried that. The connection described below has been validated and it is used to test all our Apalis and Colibri modules.
This approach has been used for both 100Mbit and Gigabit Ethernet interfaces.

Regarding the signals ETH1_ACT, ETH1_LINK and ETH1_CTREF, you can definitely leave these signals unconnected.

I hope this helps, please don’t hesitate to use again the community if needed.

Thank you very much @diego.tx, much appreciated as always! This is exactly what I’d hoped to hear. I’ve spent the last day or so building a TCP client/server capability using direct ethernet connections with a crossover capable, so it’s reassuring to know that I can utilise the same approach on the custom carrier board with direct traces.

You are welcome @jars121, it is really a pleasure!