RS485 su arduino

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.

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

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

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.

hreplo:
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.

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.

Un altro convertitore che puoi utilizzare è l'ADM485.

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