Comunicazione tra PIC mediante RS485

8 Anni 3 Mesi fa #46 da FABRIZIO
Risposta da FABRIZIO al topic Comunicazione tra PIC mediante RS485
Ciao Luca, allora il collegamento dei due max485 avviene A con A e B con B se ho capito bene? Perché dal datasheet il cavo è tuistato e quindi non capisco bene. Poi passando al software: io tramite la scheda master decido cosa fare e invio il comando tramite la trasmissione, avendo opportunamente settato la porta TX del mio pic16f690 OUT e la porta RX a IN: Enable del MAX a 1, carico il byte del dato che devo inviare al registro TXREG ma un bit per volta o semplicemente un passaggio di valore dell'intero byte? Dopodiché pongo Enabled a 0.
Per ricevere, dalla scheda SLAVE, dopo aver anche qui settato la porta RX a IN e TX a OUT, Enable del MAX a 0 (e in tutte e due le schede impostato i registri TXSTA e RCSTA in modalità asyncrona, ecc.), porto a 1 il registro RCIE per attivare l'interrupt (che non ho capito dov'è) e leggere i dati RCREG (anche qui bit per bit o copiare il valore intero del registro?).

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
8 Anni 3 Mesi fa #47 da FABRIZIO
Risposta da FABRIZIO al topic Comunicazione tra PIC mediante RS485
Ciao Mauro pongo a te il quesito, allora il collegamento dei due max485 avviene A con A e B con B se ho capito bene? Perché dal datasheet il cavo è tuistato e quindi non capisco bene. Poi passando al software: io tramite la scheda master decido cosa fare e invio il comando tramite la trasmissione, avendo opportunamente settato la porta TX del mio pic16f690 OUT e la porta RX a IN: Enable del MAX a 1, carico il byte del dato che devo inviare al registro TXREG ma un bit per volta o semplicemente un passaggio di valore dell'intero byte? Dopodiché pongo Enabled a 0.
Per ricevere, dalla scheda SLAVE, dopo aver anche qui settato la porta RX a IN e TX a OUT, Enable del MAX a 0 (e in tutte e due le schede impostato i registri TXSTA e RCSTA in modalità asyncrona, ecc.), porto a 1 il registro RCIE per attivare l'interrupt (che non ho capito dov'è) e leggere i dati RCREG (anche qui bit per bit o copiare il valore intero del registro?).

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
8 Anni 3 Mesi fa #48 da alfa75
Risposta da alfa75 al topic Comunicazione tra PIC mediante RS485
Ciao
ti rispondo io
devi collegare A con A e B con B.
nel registro TXREG devi caricare il valore dell'intero byte.
il bit RCIE dovrebbe trovarsi nel registro PIE1 ma controlla nel datasheet perchè alcune volte cambiano i nomi
poi all'interno dell'interrupt dovrai controllare il bit RCIF che scatterà ad 1 quando il byte ricevuto contenuto all'interno del registro RCREG sarà pronto per essere letto.

prendi spunto dall'esempio qui sotto
www.settorezero.com/wordpress/corso-prog...tema-di-automazione/

Saluti
Andrea

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
8 Anni 3 Mesi fa #49 da FABRIZIO
Risposta da FABRIZIO al topic Comunicazione tra PIC mediante RS485
Ciao e grazie Andrea, allora confermi che quello che ho scritto è giusto? Cioè che il byte da inviare e quello ricevuto si leggono con una semplice espressione trasferendo l'intero valore e non fare routine per leggere e caricare su una variabile un bit per volta? Non ho ancora saldato la seconda terminazione da 120 ohm perché non ce l'ho ancora, spero che non mi dia problemi. Scusami ma sono soltanto un elettricista che si diletta a fare il programmatore amatoriale :-)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
8 Anni 3 Mesi fa #50 da FABRIZIO
Risposta da FABRIZIO al topic Comunicazione tra PIC mediante RS485
E ancora una cosa: ma bisogna includere nel firmware dei file .h per effettuare la comunicazione? io ho solo caricato il "pic.h". Ti chiedo questo perché non ho creato nessuna routine di interrupt oltre a quella del timer, quindi come fa a leggere il contenuto del registro RCIE?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login