ciao a tutti ancora, ancora una volta chiedo dell'RS485, in particolare ho 2 MAX488 (2 per le prove, alla fine saranno circa 15) che supportano la RS485. ho preso quesit max perchè posso così sia trasmettere che ricevere da ognuno.
ora arriva il problema:
ho cercato in internet librerie e schemi per utilizzare la 485 con arduino e non ho trovato problemi, allora ho comprato i componenti (dando una ahimè troppo rapida occhiata ai datasheet) e mi trovo ora davanti a un dilemma
in pratica sugli 8 pin del max488 ci sono alimentazione, A e B (che vanno collegati con gli altri A e B degli altri "terminali"), DI, RO, Y e Z..
ora su tutti gli esempi che ho trovato non ho trovato nessun Y e Z e trovavo i pin RE e DE, l'RE usato per mettere il componente in ascolto o trasmissione (detto semplicemente), ma questo max488 allora come va collegato? ho visto il datasheet, sembra che oltre A e B collegati coi rispettivi bisogni collegare anche Y e Z ai corrispettivi, diventando così una trasmissione su 4 fili.
e poi a livello di codice arduino come gestisco il tutto? che pin devo portare high? devo trasmettere direttamente?
sto andando nel panicoi :-[
in pratica da quello che ho capito a fondo pagina mi basta collegare RX dell'atmega a RO del MAX e TX dell'atmega al DI del MAX e inizializzare la seriare e inviare i dati normalmente tramite Serial.write()? :o
scusa uwe ma sinceramente è la prima volta che uso questi integrati e questa comunicazione, i miei progetti erano controllo di sensori e al massimo una RS232..
grazie ypkdani ma quello l'avevo visto, usa una semplice comunicazione seriale ma col pin va a converitre lo stato tra trasmettitore e ricevitore, questo perchè non può accadere contemporanea, mentre nel mio IC non ho capito se si può saltare il processo di selezione del segnale
Tu vuoi usare la RS485 come collegamento una a tanti.
Questo si puó realizare solo con un protocollo di trasmissione dove solo uno dei tanti é attivo e non tutti. (in pratica come I2C).
Io ho solo una volta avuto una rete con RS485 e quella era fatta con dei interfaccia RS232 a RS485. Non ho mai avuto bisogno di metterci mano e percui non ho idea come funziona. So che fisicamnte i levelli di tensioni sono simmetriche sui 2 collegamenti di trassmisione ( nel senso quando uno é H l' altro é L e viceversa che da punto di sicurezza disturbi é meglio che la RS232.
scusami superlol, é la prima volta che li vedo questi integrati.
Come puoi vedere a pg 7 i MAX481,MAX483,MAX485,MAX487,MAX1487 sono pensati per lavorare a 2 fili e quindi devi gestire opportunamente la direzione dei buffer per evitare conflitti con gli altri dispositivi sul bus.
Invece i MAX488,MAX490 hanno due canali che lavorano indipendentemente in full-duplex, quindi non hanno bisogno di alcun segnale di controllo ma servono 4 fili.
Se la topologia è punto-punto allora puoi usarli in maniera trasparente come se fosse una RS232 se invece è punto-multipunto (o peggio ancora multimaster) devi ricorrere ad un protocollo per evitare conflitti.
Ho visto in funzione la modalità punto-multipunto a 2 fili in un sistema domotico basato su protocollo Modbus in cui un controller faceva un polling periodico su termostati, fancoil, chiller etc. a ciascuno dei quali era assegnato un indirizzo. In assenza di risposta entro un certo timeout si passava al successivo dispositivo, in questo modo si evita l'accesso contemporaneo al media trasmissivo.
tranqui uwe e grazie già di aver guardato il datasheet gratis
in teoria non dovrei far altro che alimentare il componente e attaccare direttamente il tutto :-/ mi passa un altro arduino tra poco e quindi ne ho 2 per il test... ora mi chiedo, l'atmel per la seriale ha un circuito di protezione vero?? ;D speriamo :o
proviamo come ho detto, in caso contrario non riceverò niente.. è che devo usare questa rete per fare fomunicare 13 terminali arduino a un pc, quindi ognuno deve trasmettere e ricevere..
speriamo vi farò sapere e se viene bene perchè no? metto in playground