Pages: [1]   Go Down
Author Topic: RS485 su arduino  (Read 666 times)
0 Members and 1 Guest are viewing this topic.
(TN) italy
Offline Offline
Jr. Member
**
Karma: 0
Posts: 74
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Global Moderator
Milano, Italy
Offline Offline
Edison Member
*****
Karma: 15
Posts: 1163
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: September 12, 2011, 12:18:10 pm by Federico Vanzati » Logged

F

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 50
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

France
Offline Offline
God Member
*****
Karma: 9
Posts: 613
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: