Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Arduino mega e comunicazione RS485, ma non comunica.....

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteJocman » 6 mar 2023, 21:24

Ciao a tutti.
Sto avendo un problema a far comunicare una scheda arduino mega tramite protocollo RS485.
La situazione è la seguente.
Ho intenzione di collegare dei pannelli con dei pulsanti ad un simulatore di volo; nella community è stato messo a disposizione un ambiente di programmazione / interfacciamento eccezionale (per chi fosse curioso basta cercare DCSBIOS).
Il tutto è basato su Arduino Nano / Mega.
Mi sono autocostruito due tipi di interfacce RS485 (basate su chip MAX487), una da agganciare ai Nano e una ai Mega.
Le interfacce funzionano, ho realizzato diversi pannelli interfacciati con i nano e fanno il loro dovere (almeno corna facendo...)
Adesso sto provando ad utilizzare un mega, ma non c'è verso di farlo comunicare.
Ho fatto tutti i test possibili, ma non ne vengo a capo e non so che altro provare:
- ho collegato la scheda Mega in modalità diretta (seriale via USB) e ottengo il risultato
- se cambio la modalità della Mega da diretta a RS485 (tramite la sua interfaccia) invece non va (led RX spento)
- l'interfaccia per i Mega funziona, infatti ho provato a collegarci un nano, comunica (led RX attivo) e ottengo risultati
- ho provato a collegare come terminali TX/RX tutte e 4 le possibili coppie presenti sul Mega, ma non c'è verso.
- non c'è alcun conflitto di indirizzi in quanto sto testando una scheda per volta


Prima di rivolgermi alla community (inglese) vorrei provare a chiedere consiglio qui (lingua madre :D ) ....

il codice tipo è il seguente:
Codice: Seleziona tutto
/*
  The following #define tells DCS-BIOS that this is a RS-485 slave device.
  It also sets the address of this slave device. The slave address should be
  between 1 and 126 and must be unique among all devices on the same bus.
*/

#define DCSBIOS_RS485_SLAVE 1
#define DCSBIOS_IRQ_SERIAL


/*
  The Arduino pin that is connected to the
  /RE and DE pins on the RS-485 transceiver.
*/
#define TXENABLE_PIN 2

#include "DcsBios.h"

/* paste code snippets from the reference documentation here */

void setup() {
  DcsBios::setup();
}

void loop() {
  DcsBios::loop();
}


Ovviamente nel fare i test, quando passavo da RS485 a Seriale facevo le dovute variazioni abilitando / disabilitando le rispettive linee:

Codice: Seleziona tutto
#define DCSBIOS_RS485_SLAVE 1
#define DCSBIOS_IRQ_SERIAL


e

Codice: Seleziona tutto
#define TXENABLE_PIN 2




Grazie

Andrea


--------------------
Corretto nel titolo da RS485 a RS485 Foto UtenteGioArca67
Ultima modifica di Foto UtenteGioArca67 il 6 mar 2023, 22:40, modificato 1 volta in totale.
Motivazione: Correzione titolo da RS486 a RS485
Avatar utente
Foto UtenteJocman
25 3
New entry
New entry
 
Messaggi: 89
Iscritto il: 17 lug 2019, 16:55
Località: Parma

0
voti

[2] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteJocman » 13 mar 2023, 19:23

Negli ultimi giorni ho fatto un po' di test vari, soprattutto riprogrammando le varie schede.
Le cose mi lasciano un po' perplesso (ma in buona parte penso sia dovuto alla mia ignoranza)
Proprio oggi sto riprovando a far funzionare un Mega su RS485.
Ho scollegato tutta la pulsantiera, collegato TX/RX sui pin TX0/RX0 (invece che TX1/RX1), ricaricato lo sketch e simulato le pressioni dei vari tasti semplicemente cortocircuitando GND ai vari pin.
Ho ottenuto risposta, nel senso che vedo i pulsanti (a video) premersi. Tuttavia c'è un ritardo di quasi 1,5 secondi tra la "pressione" del pulsante fisico e la risposta di virtuale; questo sia alla "pressione" che al "rilascio". E' un comportamento normale o anomalo? in altri pannelli, se utilizzo un Nano la risposta è pressocchè immediata.
Ho provato quindi a ricollegare la pulsantiera fisica, ma questa volta non ottengo risposta.
Farò altri test (tentativi).

Opinioni?
Avatar utente
Foto UtenteJocman
25 3
New entry
New entry
 
Messaggi: 89
Iscritto il: 17 lug 2019, 16:55
Località: Parma

0
voti

[3] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteWALTERmwp » 13 mar 2023, 20:35

Foto UtenteJocman, a me non sembra chiara la tua esposizione, scrivi di cose che solo tu hai davanti e non ne fornisci una rappresentazione.
Inoltre, per sapere cosa funziona e cosa no, dovremmo andarci a sfogliare il DCSBIOS?
Dando per assodato, per ora, che su quel fronte è tutto a posto, si potrebbe focalizzare l'attenzione sull'hardware per cui: utilizzando FidoCadJ, riporta uno schema che illustra le connessioni, quindi i pin delle varie schede(Nano, Mega, MAX487 ed altri eventuali componenti o moduli), le resistenze di bilanciamento e tutto il resto.
Per rappresentare una scheda o un componente basta che disegni un rettangolino, non devi andare a cercare in nessuna libreria.
Inoltre, della configurazione che rappresenterai, dovrai specificare il comportamento.
Magari, così, qualcuno può cominciare a farsi un'idea.
Riporta anche il link(non devono essere gli altri ad andarselo a cercare) del progetto "dal quale trai ispirazione".

Saluti

p.s.
il post dell'altro thread che hai aperto, copialo aggiungendo un nuovo post a questa discussione; se la storia è la stessa sono inutili altri fronti.

p.p.s.
La RS485 non è un protocollo è una interfaccia che trasmette utilizzando due fili e basa l'interpretazione del segnale sul valore del differenziale della tensione.
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8986
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[4] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteJocman » 14 mar 2023, 1:37

Innanzitutto, grazie per la risposta.

WALTERmwp ha scritto:Foto UtenteJocman,
Inoltre, per sapere cosa funziona e cosa no, dovremmo andarci a sfogliare il DCSBIOS?

Assolutamente no; la parte software funziona, almeno visto il numero di utenti che la utilizza, e visto che comunque se collego una sola interfaccia la parte software fa quello che mi aspetto

WALTERmwp ha scritto:Foto UtenteJocmanutilizzando FidoCadJ, riporta uno schema che illustra le connessioni, quindi i pin delle varie schede(Nano, Mega, MAX487 ed altri eventuali componenti o moduli), le resistenze di bilanciamento e tutto il resto.


In calce ho messo quello che è lo schema dell'interfaccia che ho realizzato. E' analoga sia per arduino Nano che Mega. Ho riportato le connessioni tipo che dovrebbe pilotare. oltre a quelle, a volte dovrei pilotare dei display led tramite MAX7219, ma al momento soprassiedo (anche se le prove fatte - sempre con una sola interfaccia RS485) funzionano

WALTERmwp ha scritto:Foto UtenteJocmanriporta anche il link(non devono essere gli altri ad andarselo a cercare) del progetto "dal quale trai ispirazione".


Non "traggo ispirazione" da nessun link in particolare: sui forum di simulazione si parla di utilizzare interfacce RS485 per connettere più schede arduino con DCSBIOS, mi sono documentato in rete per diverso tempo (sono 5 anni che mi ci dedico) su cosa fossero e come si potessero realizzare e me ne sono realizzata un prototipo sulla base di quello che avevo capito.
Se poi ti riferisci ad altro tipo di "ispirazione", non so....


Avatar utente
Foto UtenteJocman
25 3
New entry
New entry
 
Messaggi: 89
Iscritto il: 17 lug 2019, 16:55
Località: Parma

0
voti

[5] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteJocman » 14 mar 2023, 1:39

WALTERmwp ha scritto:Foto UtenteJocmanp.s.
il post dell'altro thread che hai aperto, copialo aggiungendo un nuovo post a questa discussione; se la storia è la stessa sono inutili altri fronti.


Eccolo:
Nel continuare la mia disavventura con la trasmissione RS485, mi sono accorto di un problema; avrei una mezza idea di cosa possa essere, ma non so come (né se) poter rimediare.
Al di là del problema con il Mega e l'RS45 di cui all'altro mio post, oggi ho riscontrato un problema con invece la parte gestita dai Nano.
Non penso sia un problema di protocollo (pardon, interfaccia) RS485, ma siccome ho cercato di fare tutto un sistema integrato, per forza di cose non riesco a scindere il problema.
Fino ad oggi, mi sono limitato a realizzare gli sketch dei vari Nano (fino ad ora una decina) ed a provarli solo singolarmente via RS485 collegando in pratica la Master ad una sola Slave.
Oggi ho provato a fare un primo collegamento RS485 a cascata con due Nano slaves.
La situazione, schematizzando, è questa:
i Nano vanno montati su una interfaccia RS485 che ho autocostruito. Ogni interfaccia ha due prese RJ45, che nelle mie intenzioni dovrebbero servire per fungere da ponte per i dati RS485 (i dati entrano da una RJ45 ed escono dall'altra verso la slave successiva) e, siccome avanzano diversi pin sui connettori RJ45, avevo pensato di utilizzarli per alimentare anche le interfacce e i Nano montati sopra, quindi lungo il cavo di rete viaggiano anche i 5V/GND. in questo modo eviterei diversi cavi di alimentazione.
Singolarmente, una Nano slave funziona a perfezione, ma nel momento in cui ne ho messe 2 in cascata (diciamo A e B), quella collegata direttamente alla Master (A) funziona, mentre quella in cascata (B) non da segni vita; se inverto l'ordine, B funziona ma A no.
Inoltre su B è presente un potenziometro: in entrambe i casi, il potenziometro è l'unico che mi viene letto (quindi funziona).
Il dubbio che mi è venuto è: quando si collega un pulsante ad arduino, funziona nel momento in cui il piedino cui è collegato viene connesso al GND.
Nel sistema che ho realizzato io, l'alimentazione è comune a tutti gli slave della catena (in questo caso 2); potrebbe essere questo il problema? Cioè tutti gli arduino si ritroverebbero a condividere lo stesso GND (che non penso sia da fare - questa è la mia mezza idea di quale sia il problema)
Se è così, è risolvibile (e come) mantenendo un'unica linea di alimentazione?
L'intenzione è di utilizzare un solo alimentatore per tutto quello che sarà il sistema finale (ho disponibile un alimentatore 5V/50A)
Avatar utente
Foto UtenteJocman
25 3
New entry
New entry
 
Messaggi: 89
Iscritto il: 17 lug 2019, 16:55
Località: Parma

0
voti

[6] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteMarcoD » 14 mar 2023, 8:13

Lo schema sembra corretto.
Nel Nano, cosa è l'ingresso D3 connesso con interruttore a massa?

Suppongo che nella configurazione di prova ci siano un master e due slave (slave1 e slave2).
I due slave devono avere indirizzi differenti, li hanno?
Puoi verificare con un oscilloscopio o (al peggio con un LED+330ohm ) che il segnale del DE commuti quando lo slave indirizzato risponde e va in trasmissione?
O_/
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[7] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto Utenteluxinterior » 14 mar 2023, 10:03

Oscilloscopio ? analizzatore stati logici ? Abbiamo qualcosa ?
Poi puoi acquistare a pochi euro un convertitore USB-485 lo colleghi alla tua linea 485 e al PC Tramite un programma monitor della porta seriale (gratuito) vedi tutto quello che passa sulla 485.
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

1
voti

[8] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto Utentestandardoil » 14 mar 2023, 13:28

Jocman ha scritto:Assolutamente no; la parte software funziona, almeno visto il numero di utenti che la utilizza, e visto che comunque se collego una sola interfaccia la parte software fa quello che mi aspetto



ma se la parte SW non è fallata

e quella H è semplicissima e standard, dove potrebbe essere il problema

ovvero, secondo te, io dove potrei cercarlo per aiutarti, se non mi dai nessun appiglio?

io idee ne avrei, magari fallate anch'esse, ma almeno alternative...
ma se non mi dai elementi, non mostri un minimo di dettagli...
Avatar utente
Foto Utentestandardoil
547 2 4
Stabilizzato
Stabilizzato
 
Messaggi: 420
Iscritto il: 15 lug 2022, 19:14

0
voti

[9] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteWALTERmwp » 14 mar 2023, 15:17

Concordo con le osservazioni che sono state fatte.
@Jocman, da parte mia mi permetto un'altra osservazione, e comunque considera le critiche con un approccio costruttivo.
Il tuo metodo espositivo non è corretto, ma lo condividi con altri utenti che come te fanno spesso confusione: se non hai la minima idea di cosa non funziona non ha senso che tu ti prodighi nel suggerire le vulnerabilità della tua architettura.
Se sai cosa non funziona poni rimedio altrimenti è meglio se ti concentri nella esposizione e a fornire informazioni il più circostanziate possibili.

Almeno adesso c'è una bozza di schema che può servire per provare a fare chiarezza.
In quel disegno tu hai riportato un Nano, è il Master?
C'è attaccato anche uno Slave, e se si dove è collegato?
Ai connettori RJ45 cosa hai collegato e come?
Sulla linea RS485 occorrono le resistenze di terminazione ma non si vedono, è una assenza della quale sei consapevole?
Gli Slave che inserisci sulla linea, pare di capire che lo hai fatto, hanno un indirizzo univoco?

Poi, la linea di trasmissione RS485 non deve avere la conformazione di una stella o simili rappresentazioni ma deve essere lineare, ovvero partire da un punto per arrivare ad un altro: in mezzo si collegano gli altri nodi.
Non è una banalità, deve esserci ordine, per più motivi.
Inoltre, meglio se i due fili della 485 sono twistati(intrecciati tra loro); per questo, prima di tentare ottimizzazioni con i fili collegati ai connettori RJ45, dovresti metterti in una condizione ortodossa in modo da eliminare quante più incognite possibili.
Se in qualche modo l'assemblato ti funziona non è detto che vada bene perché magari staresti sperimentando in una condizione precaria e appena tocchi(aggiungi) qualcosa non ottieni i risultati attesi.
Forse non è così, o forse si, ma noi "da qui" non possiamo scrivere più di tanto.
E ci sarebbe molto altro, ma intanto questo.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8986
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[10] Re: Arduino mega e comunicazione RS485, ma non comunica.....

Messaggioda Foto UtenteThEnGi » 14 mar 2023, 15:58

WALTERmwp ha scritto:Sulla linea RS485 occorrono le resistenze di terminazione ma non si vedono, è una assenza della quale sei consapevole?

Aggiungo un ipotesi: Non è che sta usando quei modulini per Arduino ? In quel caso hai le terminazioni (resistenza 120 Ohm) su ogni modulo. Sei fuori specifica, ma probabilmente funziona lo stesso.....

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti