Vai al contenuto
PLC Forum


Info Su Rs485 - Protocollo di comunicazione


papero

Messaggi consigliati

Ciao ragazzi, ho un problema...

Sto cercando di far comunicare dei PIC con il PC, dato che le distanze di comunicazione sono lunghe, e i PIC sono più di uno ho pensato di usare la linea RS485.

Ho fatto dei test di comunicazione tramite la 232 "classica" quindi usando i MAX232, e tutto va regolare, ma appena metto i MAX485... cominciano i problemi.

La linea funziona, e riesco a ferli comunicare, ma invece di ricevere i caratteri ASCII che invio al PIC, ricevo dei caratteri stranissimi.

So che la linea è bilanciata, e su alcuni siti ho visto che vengono puotati i +5V e il GND in uscita al 485, ma del datasheet del MAX, non c'è nulla. Mi sapete dire se servono?

Inoltre, c'è un protocollo di comunicazione particolare, oppure posso inviare delle stringhe e dati nornalmente come se stessi usando una RS232 classica?

Attualmente per semplificarmi la vita ho trovato dei MAX490, che lavorano in fullduplex quindi senza bisogno di abilitare le linee di trasmissione, ma non li ho ancora provati, vorrei prima chierirmi meglio le idee.

Grazie a tutti in anticipo!

Link al commento
Condividi su altri siti


ifachsoftware

Se vuoi lavorare come con la RS232 puoi usare un semplice convertitore RS422 (4 fili) e non hai problemi.

Se vuoi lavorare a 2 fili , con il pic devi gestire un segnale in piu' per abilitare trasmissione o ricezione (e modificare di conseguenza il protocollo) mentre sul lato PC devi mettere un convertitore RS232->RS485 con gestione automatica della direzione altrimenti devi gestire anche li il protocollo 485.

Ciao :)

Link al commento
Condividi su altri siti

Utilizza pullup/puldown per fissare le linee della 485.

altrimenti se tutti i driver sono in ricezione la linea non è fissata in alcun modo

Controlla i tempi di commutazione. Se interroghi il PIC dal PC aspetta prima di rispondere.

Il driver lato PC potrebbe essere ancora commutato in trasmissione.

Di soltio si mette un ritardo programmabile per evitare collisioni.

leggi questo spiega come calcolare le resistenxe di polarizzazione della 485.

Modificato: da accacca
Link al commento
Condividi su altri siti

Domanda banale. La porta del PC è RS232, l'hai interfacciata con un convertitore 232-485 prima di collegarla al PIC?

Link al commento
Condividi su altri siti

Si, ho un convertitore 232 - 485 sul pc, e dal pic ho montato il solo 485.

Riguardo all'abilitazione della linea di trasmissione penso di aver risolto il problema usando 4 max 485 ovviamente in fase sperimentale...

Praticamente dal pc ne uso uno abilitato alla trasmissione, l'altro alla ricezione, idem sul pic.

sembra che va tutto bene, solo che non riesco a far ricevere al pic le stringhe.

Se invio una lettera da visualizzare su un LCD, mi visualizza un carattere completamente diverso, di solito sono simboli, se lo invio direttamente dal pic, tutto è regolare.

Preciso che parlo di un 18F252 con frequenza di 4MHZ so che è poco, ma per ora ho solo questo a disposizione...

Altra domanda, forse banale... La linea va alimentata oppure no?

Link al commento
Condividi su altri siti

Devi alimentare i MAX485. Sei sicuro che i MAX in ricezione (lato PIC) siano abilitati nella direzione giusta?. Inveve di MAX485 potresti usare altri integrati maxim con linea 422; è identica alla 485 solo ch eè bidirezionale (full duplex) come la 232.

Link al commento
Condividi su altri siti

infatti adesso do reperito dei max490 che sono fullduplex, e tra un po li provo.

comunque ho fatto una prova banale, inviare un dato farmelo rimandare, mi ritorna dei caratteri completamente strani...

non capisco, gli invio la lettera a, e mi rimanda dei simboli strani...

da che dipende? mi sono bloccato...

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...