2 ethernet shield con la mac duplicada

Hola a todos.
Tengo dos Arduino Mega 2560 cada una de ellas con una ethernet shield.
El problema es que las dos shield tienen la misma direcion MAC y no puedo tenerlas a la vez en la misma red. Aunque les cambie la direccion mac por programa, no me las cambia en la tarjeta (visto con el ipscanner).
Necesito tener las dos tarjetas en la misma red para poder enviar ordenes, desde un solo PC a traves de TCP, a una o a otra para controlar equipos en dos ubicaciones distintas.
A ver si alguien me puede decir como se puede hacer esto.

Un saludo y gracias de antemano por vuestras respuestas.

No son la Ethernet Shield oficial de Arduino, ¿no? Porque éstas llevan una MAC 'aleatoria' que empieza por 90-A2-DA escrita en una pegatina, y aun así perfectamente les puedes poner la MAC que quieras desde tu programa Arduino.

Si son shield oficiales de Arduino (o por lo menos eso pone en la placa). Me venian sin esa pegatina que me dices y por mas que intento cambiar la mac por programa no me la cambia. Incluso he puesto todos los bytes iguales para probar.

mmm, no estaría mal que pusieras una foto, para ver que versión de todas es y si es original

Ahi teneis una foto de la tarjeta.

He oido en algun lugar que habia problemas con el timming y macs de algunos ethernet shields(algo que ver con el driver del FTDI).

Sabes que version de firmware tienes?

Si no lo sabes escribe avrdude -c arduino -p m328p -P [COM6] -v -v en el "command prompt" de windows
COM6= tu puerto.

Si no tienes el avrdude instalado tienes que ir a este folder de arduino
cd ..\arduino-0022\hardware\tools\avr\bin
una vez alli lanzar:
avrdude -c arduino -p m328p -P [COM6] -v

en uno de los ejemplos para este shield comienza asi

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1, 177 };

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
Server server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();

cambiando la variable " mac[] " puedes hacer que tengan macs distintas.

un saludo