• 990.020 MuIN USB - Interfaccia USB per calibro digitale


    Vediamo in questo articolo come trasformare la nostra MuIN USB in una semplice interfaccia USB per un calibro digitale, sfruttando un apposito firmware.

    Bisogna innanzitutto sapere che attualmente i calibri digitali non hanno un sistema di trasmissione dati standardizzato, essi possono difatti inviare i dati seguendo diversi protocolli:


    • Protocollo BCD
    • Protocollo "Sylvac" o 2x24
    • Protocollo 1x24
    • Protocollo Digimatic (usato esclusivamente dagli strumenti prodotti dalla Mitutoyo)

    Il firmware qui presentato funziona esclusivamente con un calibro operante con il protocollo 1x24 per cui è necessario, prima di intraprendere questa realizzazione, che verifichiate con un oscilloscopio o con un analizzatore logico che il vostro calibro segua tale standard di comunicazione. Non è purtroppo possibile fare una valutazione "estetica" perchè la manifattura dei calibri digitali è molto simile a dispetto delle marche ed ogni produttore ha deciso di seguire uno standard di trasmissione differente. Da un'analisi statistica sembra comunque che il protocollo che si sta diffondendo maggiormente è l'1x24 seguito dal 2x24. Il protocollo BCD sembra oramai in disuso, mentre il Digimatic è usato solo dagli strumenti della Mitutoyo.

    Ulteriori informazioni sul funzionamento del protocollo 1x24 con cenni sugli altri protocolli è possibile trovarle in questa pagina in cui viene anche illustrato il pinout di un calibro digitale e un semplice sistema di connessione: http://www.settorezero.com/wordpress...otocollo-1x24/

    I calibri digitali operano con una batteria a bottone da 1.5V per cui i livelli logici non sono direttamente compatibili con una logica TTL a 5V quale è il PIC18F2550 montato sulla MuIN USB. E' necessario pertanto traslare i livelli dei segnali DATA e CLOCK tramite una piccola interfaccia. Questo può essere realizzato in molti modi differenti (comparatori, porte logiche, level shifter, transistor) per cui avete ampia scelta di realizzazione. Personalmente ho scelto la via del comparatore, se volete utilizzare il comparatore, ne esistono molti in commercio. Personalmente ho utilizzato un LM339 che è un comparatore quadruplo, per cui mezzo integrato rimane utilizzato, voi potete anche usare un LM393.

    Hardware

    Lo schema dei collegamenti dal calibro all'interfaccia verso la MuIN USB è il seguente:



    Qualche cenno sul sistema di adattamento dei segnali del calibro tramite l'utilizzo di un comparatore è possibile trovarlo in questa pagina: http://www.settorezero.com/wordpress...e-logiche-ttl/

    L'interfaccia la potete realizzare in maniera semplice su una 1000Pads Mini Basic Board:


    Vi spiego brevemente il funzionamento del circuito qui proposto. L'interfaccia basata sull' LM 393 viene alimentata a 5V direttamente dalla MuIN USB la quale preleva la tensione dalla porta USB (per fare questo è necessario settare i jumper come indicato dalle frecce nella figura).

    L'ingresso invertente (-) dei comparatori è posto ad un livello di tensione pari a circa 0.8V (più o meno la metà del valore di tensione della batteria che alimenta il calibro) grazie al partitore formato dalle resistenze da 47K e 10K. Sugli ingressi non invertenti (+) vengono inviati i segnali prelevati dal calibro (DATA e CLOCK, corrispondenti rispettivamente ai pin 2 e 3 sul connettore del calibro). All'uscita del comparatore otterremo i segnali logici traslati di livello: in particolare il livello alto del calibro, che è a 1.5V, viene portato a 5V in maniera da poter essere correttamente interpretato dal picmicro. Dal momento che l'uscita del comparatore dell' LM393 è open collector è necessario inserire una resistenza di pullup che è stata fissata ad 1K.

    E' ovviamente necessario collegare la massa (GND) del calibro a quella dell'interfaccia e quindi a quella della MuIN USB in modo da avere un riferimento comune. Sembra un'ovvietà ma molti alle prime armi dimenticano sempre questa informazione basilare.

    L'alimentazione dalla MuIN USB può essere prelevata in diversi punti, in particolare tutta la fila bassa di strip è collegata a GND e quella appena sopra è collegata a +5V (previa impostazione del jumper).

    Il segnale DATA andrà collegato al pin RB2 e il segnale di CLOCK al pin RB3.

    Volendo è possibile aggiungere un pulsante verso massa sul pin RB0, questo per sfruttare una funzione del firmware che permette la ricezione della misura solo dopo pressione del pulsante, altrimenti di default i dati vengono inviati di continuo.

    Firmware

    Una volta montata l'interfaccia e verificato con un tester che le tensioni sono corrette, possiamo passare a caricare sulla MuIN USB il firmware modificato che permette di interfacciarsi con il calibro:

    muin_caliper.zip

    Il firmware è stato scritto per sfruttare il bootloader, per cui fate riferimento all'apposito articolo per capire come procedere.

    Una volta caricato il firmware è necessario rimuovere il jumper, utilizzato per far entrare la MuIN USB in modalità bootloader, e premere il pulsante di reset con già l'interfaccia di adattamento collegata.

    Se l'interfaccia viene collegata dopo aver collegato la MuIN al PC, il sistema non funziona in quanto l'USB si troverà a prelevare più corrente di quanta ne ha richiesta durante l'enumerazione, per cui è necessario prima collegare l'interfaccia e solo dopo collegare la MuIN al computer.

    Dopo fatto questo la MuIN USB verrà riconosciuta come una normale porta COM, potrebbe essere necessario fornire il file .INF che ne permette la corretta installazione: è possibile scaricarlo nell'area downloads (il file da scaricare è indicato come VCom driver).

    Software

    E' possibile leggere la misura dal calibro sul pc utilizzando il programma gratuito scaricabile da questa pagina: http://www.settorezero.com/wordpress...liper-readout/

    In aggiunta è possibile leggere le misure anche da un qualsiasi programma terminale (es.: hyperterminal) impostando una velocità di comunicazione qualsiasi, 8 bit dati, nessuna parità, 1 bit di stop, nessun controllo di flusso

    Comandi e Funzionamento

    Oltre a ricevere le misure è possibile comunicare con l'interfaccia per settarne altre caratteristiche di funzionamento. I comandi da inviare sono costituiti da un solo carattere ASCII scritto indifferentemente maiuscolo o minuscolo non seguito da invio.

    Normalmente l'interfaccia invia i dati in continuo così come letti dal calibro:

    [eventuale segno negativo][misura][unità di misura][carriage return]

    Ma è possibile far inviare i dati secondo altre due modalità:

    -invio dati su pressione del pulsante collegato a RB0 : per attivare questa modalità è necessario inviare la lettera S
    -invio dati su ricezione seriale : per attivare questa modalità è necessario inviare la lettera U, il carattere che permette di ricevere la lettura è lo spazio (32)

    per tornare alla modalità invio dati in continuo basta inviare la lettera C

    in ogni caso la modalità di invio dati appena impostata non viene memorizzata, se si vuole fare in modo che la modalità scelta venga salvata e quindi mantenuta alla successiva riaccensione dell'interfaccia, è necessario inviare la lettera M. In questo modo la modalità invio dati corrente viene memorizzata nell'eeprom interna del picmicro e richiamata al successivo riavvio. Dopo aver inviato il comando M l'interfaccia risponderà con un OK se l'operazione è andata a buon fine o con ERROR se c'è stato un problema.

    La modalità invio dati corrente può essere visualizzata inviando il comando R, il calibro restituisce C, S o U a seconda della modalità attiva, indicando in pratica la stessa lettera usata per dare il comando.

    Quando il calibro è collegato correttamente e l'interfaccia riceve le misure, il led L1 posto sulla MuIN USB lampeggia. Il led rimane acceso fisso quando il calibro non è collegato correttamente o è spento. In tal caso l'interfaccia restituisce la stringa OFF.