- Messaggi: 243
- Ringraziamenti ricevuti 0
Comunicazione tra PIC mediante RS485
8 Anni 10 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?).
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
- Autore della discussione
- Elite Member
Riduci
Di più
8 Anni 10 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?).
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
- Autore della discussione
- Elite Member
Riduci
Di più
- Messaggi: 243
- Ringraziamenti ricevuti 0
8 Anni 10 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
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
- Platinum Member
Riduci
Di più
- Messaggi: 527
- Ringraziamenti ricevuti 86
8 Anni 10 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
- Autore della discussione
- Elite Member
Riduci
Di più
- Messaggi: 243
- Ringraziamenti ricevuti 0
8 Anni 10 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
- Autore della discussione
- Elite Member
Riduci
Di più
- Messaggi: 243
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.