ENC28J60 / HR911105A 17/20

Buenos acudo como ultima instancia a la ayuda de este foro, compre una shield para mi arduino UNO, viene con 12 pines. La idea es comunicarme a traves de Modbus a un plc y hacer la lectura de una entrada analogica.

El problema es que no consigo conectarme, he probado la libreria ethercat-master que es la que aconsejan simplemente para probar como ejemplo, y mas especifico en mi caso ModbusIP_ENC28J60.h con el ejemplo de Tempsensor.

He probado a conectarlo como aconsejan en el hilo Wrong ethernet module? 12 pins on ENC28J60 - Networking, Protocols, and Devices - Arduino Forum

Arduino Module
digital 12 SO
digital 11 ST
digital 13 SCK
digital 8 CS
5V 5V
Gnd GND

Incluso conectando una fuente de alimentacion aparte. He contactado con el fabricante y no me hace mucho caso. Y la gran mayoria de lo que encuentro en la web son shields de 10 pin. Tambien he probado como dice el readme de la libreria Ethercard-master:

PIN Connections (Using Arduino UNO):

VCC - 3.3V
GND - GND
SCK - Pin 13
SO - Pin 12
SI - Pin 11
CS - Pin 10 # Selectable with the ether.begin() function

Por favor si alguien tiene mi problema una ayudita no vendria mal.

/*
  Modbus-Arduino Example - TempSensor (Modbus IP ENC28J60)
  Copyright by André Sarmento Barbosa
  http://github.com/andresarmento/modbus-arduino
*/

#include <EtherCard.h>
#include <Modbus.h>
#include <ModbusIP_ENC28J60.h>

//Modbus Registers Offsets (0-9999)
const int SENSOR_IREG = 100;
//Used Pins
const int sensorPin = A0;

//ModbusIP object
ModbusIP mb;

long ts;

void setup() {
    // The media access control (ethernet hardware) address for the shield
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    // The IP address for the shield
    byte ip[] = { 192, 168, 1, 120 };
    //Config Modbus IP
    mb.config(mac, ip);

    // Add SENSOR_IREG register - Use addIreg() for analog Inputs
    mb.addIreg(SENSOR_IREG);

    ts = millis();
}

void loop() {
   //Call once inside loop() - all magic here
   mb.task();

   //Read each two seconds
   if (millis() > ts + 2000) {
       ts = millis();
       //Setting raw value (0-1024)
       mb.Ireg(SENSOR_IREG, analogRead(sensorPin));
   }
}

En el ultimo mes dos o tres consultas de este tipo. te invito a buscarlas y leerlas. Estan en esta sección y/o Proyectos.

Gracias surbyte