EIA/TIA 568 A oppure B, come testarli

Apro questa discussione per rispondere alla ricerca di volontari scritta qui:

tra me e mio fratello Fabio ci abbiamo pensato un po'

ne abbiamo pensate tante, ma alla fine una buona ne è uscita (Fabio dice testualmente: 'è idea mia', io concordo: è proprio idea mia)

io non so disegnare e comunque non mi-ci interessa entrare nei dettagli, per ora
ci basta aver avuto l'Idea con la Maiuscola

si basa tutto su un partitore di tensione da mettere sul connettore in fondo al cavo da provare
vediamo se riesco a fare un disegnino

PIN             polo                    polo
              connettore 1         connettore 2


2------R--------1 - - - - - - - - - - - 1  -
                                                  R
A0--------------2 - - - - - - - - - - - 2  -
                                                  R
A1--------------3 - - - - - - - - - - - 3  -
                                                  R
A2--------------4 - - - - - - - - - - - 4  -
                                                  R
A3--------------5 - - - - - - - - - - - 5  -
                                                  R
A5--------------6 - - - - - - - - - - - 6  -
                                                  R
A6--------------7 - - - - - - - - - - - 7  -
                                                  R
3------R--------8 - - - - - - - - - - - 8  -

tutte le resistenza sono da 1K di precisione 2%

per riconoscere le tre tipologie possibile di cavi basta mettere alto il piedino 2
mettere basso il piedino 3 e misurare la tensione sui sei poli intermedi
se si trovano 6 tensioni decrescenti nell'ordine corretto è un cavo diretto
se l'ordine corrisponde a un cavo incrociato 10baseT è un cavo incrociato 10baseT, ovviamente
che va bene anche per 100baseTx
lo stesso se corrisponde a quello di un cavo incrociato 1000baseT4 (differente dal precedente)

se invece l'ordine non corrispondesse a nessuno dei tre casi avremmo poli invertiti
se mancasse una qualche tensione avremmo poli interrotti
se le tensioni fossero tutte a 5V sarebbe interrotto il polo 8
se fossero tutte 0 sarebbe interrotto il polo 1
se ci fossero due tensioni uguali ci sono poli in corto
e via così
per distinguere casi particolarmente fetenti servirà di invertire le uscite e/o mettere come uscita anche qualche ingresso analogico, insomma un bel lavoro di tabelle e calcoli di partitore

a proposito:
la piedinatura indicata è solo indicativa, in realtà bisogna tenere conto che nei cavi RJ45 la coppia 1 non è quella tra i poli 1 e 2 e che per compatibilità con gli impianti telefonici i cavi EIA/TIA568 hanno l'ordine delle coppie differente da quello naturale

insomma serve di lavorare di pazienza e scriversi qualche tabella, ma nulla di grave

Interessante. Così si capisce anche funzionano quelli da pochi euri.

Ah ma quello lo sapevamo già

È in pratica lo stesso circuito pubblicato settimana scorsa

8 linee uguali, collegate a un contatore cmos

Una sola uscita è alta per volta, le altre basse

Dall’uscita la corrente esce e illumina il led locale e quello dall’altra parte del cavo

Da li ritorna verso le 7 uscite basse attraversando i diodi in antiparallelo ai led

In effetti non serve un arduino per questo

Non ne hai mai smontato uno? Io sì

Il mio circuito ha il vantaggio di non usare unità remote e dare la diagnosi lato operatore

Mentre con quei cosi serve mettere il trasmettitore da un capo, ma leggere i led da tutti due capi del cavo

Concordo in pieno:

Il mio circuito ha il vantaggio...

alle volte Fabio si crede bravo quanto me :slight_smile:
scusatelo

Affinché il thread non venga di nuovo chiuso, voglio vedere negli schemi Arduino ed il codice ... o devo applicare il punto 16.11 del REGOLAMENTO ... ::slight_smile:

Guglielmo

guarda:

non è un problema mio
qualcuno ha chiesto

noi abbiamo indicato la via: cosa collegare all'arduino e come scrivere il programma

per il resto: mettersi d'accordo con la formica veloce, non con noi, grazie!

Salvorhardin:
non è un problema mio
qualcuno ha chiesto

NO, il problema è proprio tuo, perché se violi il REGOLAMENTO, è un TUO problema, che tu stia rispondendo a qualcuno o meno ... quindi ... evita questo genere di risposte ... grazie :slight_smile:

>speedyant: ... lo metti nel circuito quest'Arduino e butti giù il codice per renedere funzionale il tutto ? ::slight_smile:

Guglielmo

"Ci provo".

Il problema sono le tempistiche, quindi non aspettatevi cose in tempi rapidi, dove per rapidi intendo alcuni giorni…

Io potrei eventualmente, se proprio necessita un qualcosa di formalmente in topic, postare un "diagramma di flusso" dello sketch, ma anche in quel caso "devo trovare tempo"...

Sembrano scuse, ma purtroppo: "c'è grossa crisi!"

Mio fratello è ancora un po’ seccato per quello che lui considera un inutile rimbrotto

ma io sono superiore e pubblico comunque anche la parte SW

/*
    Programma di test per cavi EIA TIA 568

    Idea del dinamico duo
*/

int letture[6];
char * ordini[] = {"876543", "845673", "2345678"};
char * descrizioni[] = {"cavo diretto", "incrociato 10T", "incrociato 1000T"};
#define TIPI 3

void setup()
{
    Serial.begin(9600);
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    leggi();

    for (byte i = 0; i < TIPI; i++)
    {
        if (ordine(ordini[i]))
        {
            Serial.println(descrizioni[i]);

            while (1);
        }
    }

    Serial.println("cavo sconosciuto, probabilmente guasto");

    while (1);
}

void leggi()
{
    for (byte i = 0; i < 6; i++)
    {
        analogRead(i + 14);

        for (byte j = 0; j < 10; j++)
        {
            letture[i] = letture[i] + analogRead(i + 14);
        }

        letture[i] = letture[i] / 10;
        letture[i] = (letture[i] + 50) / 100;
    }
}

bool ordine(char * stringa)
{
    byte i = 0;

    while (stringa[i])
    {
        if (stringa[1] - '0' != letture[i])
        {
            return 0;
        }

        i++;
    }

    return 1;
}


void loop()
{
}

una mezz’oretta di lavoro, non di più

mi sono permesso di fare il superiore perché così posso indicare un’errore di Massimo “il Sindaco” Salvor
la resistenza al pin 3 deve essere da 2K, non da 1

grazie per l'ottimo spunto

nel pomeriggio provo

Karma

Appena ho tempo faccio degli esperimenti. Io avevo pensato qualcosa di più grezzo, "spazzolare" otto pin digitali e verificare i led del terminatore "remoto".
Ovvero il contrario di come fanno i tester "ufficiali"