Go Down

Topic: RS485 su arduino (Read 796 times) previous topic - next topic

D4ng3R92

Ciao a tutti! Premetto che non sono molto esperto su queste cose:

Ho un antenna rfid che ( dovrebbe ) trasmettere i dati sulla interfaccia rs485. E' possibile leggere i dati che manda con arduino senza convertitori? come si potrebbe fare?

Vi ringrazio.

Federico Vanzati

#1
Sep 12, 2011, 07:12 pm Last Edit: Sep 12, 2011, 07:18 pm by Federico Vanzati Reason: 1
Boh, se la RS485 della tua antenna ha livelli logici TTL (0-5V) probabilmente è fattibile implementare l'interfaccia a livello software in arduino perchè i livelli sarebbero compatibili. Ma credo che sarebbe uno sbattimento assurdo oltre che uno spreco di risorse, visto che esistono dei convertitori che costano molto poco. vedi SN75176, LCT485 o max485
F

astrobeed


probabilmente è fattibile implementare l'interfaccia a livello software in arduino perchè i livelli sarebbero compatibili.


No perché la RS485 non lavora con il concetto di livelli logici in tensione, indipendentemente dalla tensione che facilmente è a 5V, ma può essere di meno come di più.
La RS485 è un bus differenziale, 0 e 1 vengono riconosciuti non in base alla tensione rispetto a GND, ma in base alla tensione, e la polarità, presente su A e B che sono slegati da GND pertanto non direttamente referenziabili con i livelli logici di Arduino o altro IC logico.
Morale della favola è indispensabile utilizzare un apposito transceiver per la RS485 quali i già citati MAX485 e SN75176, quest'ultimo anzianotto come tecnologia, ma praticamente indistruttibile, molto usato in ambito industriale al posto del delicato MAX485 (saltano che è un piacere).

hreplo

anche i SN75176 saltano che è in piacere in ambito industriale... sopratutto se i cavi passano nelle stesse gallerie dei 30kV... Comunque TTL e 485/422 vanno adattati con i chip sopracitati.

astrobeed


anche i SN75176 saltano che è in piacere in ambito industriale...


Tra i 75176 e i MAX485 non c'è paragone come robustezza, certo che se li usi in condizioni limite salta tutto, in tutti i casi si presuppone che sulla parte 485/422 siano previste anche tutte le protezioni del caso e compatibili con quello che può arrivare.


avenue33

I implemented a MAX485 485/422 translator successfully. 

How fast could I go? The 485 bus I'm trying to connect to runs at 921600 bps.

The 921600-baud speed has a 7,8% error with a 16 MHz crystal but matches perfectly with a 14,7456 Mhz one

So I changed the 16 MHz crystal for a 14,7456 MHz one and updated, compiled and uploaded the boot loader accordingly.

But I'm stuck here because how could I set the RX/TX port with that 921600 bps speed?

Thank you for your help.

Janos

Un altro convertitore che puoi utilizzare è l'ADM485.
http://it.rs-online.com/web/p/ricetrasmettitori-bus-di-linea/0412905/

Occhio, però, che con un solo integrato puoi fare solo l'half-duplex e non full-duplex come la 232 in quanto serve una coppia di fili per ogni trasmissione. L'integrato che ti ho citato ha anche due pin per abilitare e disabilitare l'RX e il TX, uno attivo basso e l'altro attivo alto. Se li cortocircuiti e li colleghi ad un pin dell'arduino puoi abilitare o no la trasmissione.

Ti allego il link a una libreria per implementare il modbus, la quale già prevede che tu indichi (se ne hai la necessità) quale pin deve svolgere la funzione di TX-EN.

https://sites.google.com/site/jpmzometa/arduino-mbrt

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy