spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Progetti di Robot > Progettazione > Progetto robot MODDI (forum chiuso)

 
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 25-11-2006, 06.44.15
nonno_62 nonno_62 non è collegato
Robottaro sostenitore
 
Data registrazione: 25-11-2005
Residenza: sardegna
Età : 68
Messaggi: 572
Potenza reputazione: 75
nonno_62 E' un faro della comunità
Predefinito Rs232-rs485

Mi sto avvicinando alla necessità di avere un convertitore, bisogno non immediato .... ma insomma ....

C'era Self che si era già proposto con alcune soluzioni. Io ci ho pensato molto e mi sembra che ci sono tre soluzioni diverse:

1) Un max232 e due max485 (sempre che si possa tenere un max sempre in trasmissione ......), l'inconveniente sono gli echi di ritorno della trasmissione dal PC;

2) Un max232 e un max485 con un sistema di controllo di accesso alla trasmissione ricezione tipo quello realizzato da VincenzoV (software o hardware);

3) Un max232 e un max485 con l'utilizzo di un piccolo PIC per la conversione dei segnali e la gestione della scrittura/lettura;

Manco a dirlo io sono per la soluzione 3, per i seguenti motivi, Gestione di velocità diverse sui due bus e possibilità di riutilizzo del sistema (sostituendo il max232 con un ricetrasmettitore wifi) per le connessioni a bassa velocità wifi con moduli tipo aurel. (sarebbe bello fare uno schema già con le due soluzioni)

Cosa ne pensate voi? Mi ricollego anche al post precedente che moduli usare? eventualmente quale PIC? Certo per le prove andrebbe bene anche la soluzione 1 sicuramente molto più semplice da realizzare ..............

Dai ragazi .... fate i vostri commenti ....... che qui si svende tutto ..... (si scherza ovviamente)

Saluti Nonno

Ultima modifica di nonno_62 : 25-11-2006 alle ore 08.44.16
  #2  
Vecchio 25-11-2006, 09.54.21
L'avatar di selfservice
selfservice selfservice non è collegato
Moderator
 
Data registrazione: 16-11-2003
Residenza: Foligno
Messaggi: 1,183
Potenza reputazione: 88
selfservice E' circondato da una spettacolare aurea
Invia un messaggio via MSN a selfservice
Predefinito

e fare uno schema con tutte e tre le soluzioni?
se ci mettiamo un pic tanto vale metterci un altro max485 e poi gli echi li cancella il pic via software...
__________________
Beatu chi lu pota, beatu chi lu zappa, na paralise secca a chi ce mette l'acqua!
  #3  
Vecchio 25-11-2006, 10.30.23
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Robottaro sostenitore
 
Data registrazione: 18-03-2004
Residenza: Roma
Età : 58
Messaggi: 3,377
Potenza reputazione: 344
astrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da nonno_62 Visualizza messaggio
Cosa ne pensate voi? Mi ricollego anche al post precedente che moduli usare? eventualmente quale PIC? Certo per le prove andrebbe bene anche la soluzione 1 sicuramente molto più semplice da realizzare ..............
Le soluzioni basate sull'uso della linea RTS/CTS, o DTR/DSR, non vanno bene perchè Windows usa notevoli timeout per loro commutazioni, questa cosa crea non pochi problemi sulla 485.
Da notare che il progettino di V. Villa è molto datato e allora si usava ancora il DOS, infatti anche lui cita i possibili problemi sotto windows.
Non è nemmeno possibile usare due MAX485 perchè non si può tenerne uno fisso in trasmissione, il bus risulterebbe occupato e non utilizzabile da altri TX.
Il modo ottimale in assoluto è usare un processore con UART, si usa l'RX per ricevere il byte trasmesso dal MAX232 e il TX per inviarlo verso il MAX485 con relativa gestione del segnale di direzione, in questo caso serve poter impostare il corretto baudrate tramite jumper/dipswitch.
La gestione del segnale di direzione deve tenere conto del baudrate e usare un timer per misurare il time out tra due byte successivi, se questo è maggiore del tempo complessivo per trasmettere tre-quattro byte il MAX485 deve essere posto in ricezione.
__________________
Bye
  #4  
Vecchio 25-11-2006, 11.15.17
nonno_62 nonno_62 non è collegato
Robottaro sostenitore
 
Data registrazione: 25-11-2005
Residenza: sardegna
Età : 68
Messaggi: 572
Potenza reputazione: 75
nonno_62 E' un faro della comunità
Predefinito

Per Self .... azzz sempre per le cose più complicate

Citazione:
Orginalmente inviato da astrobeed Visualizza messaggio
Le soluzioni basate sull'uso della linea RTS/CTS, o DTR/DSR, non vanno bene perchè Windows usa notevoli timeout per loro commutazioni, questa cosa crea non pochi problemi sulla 485.
Da notare che il progettino di V. Villa è molto datato e allora si usava ancora il DOS, infatti anche lui cita i possibili problemi sotto windows.
C'è anche il progetto hardware che usa un temporizzatore 555 ..... Non ho capito bene come funziona comunque ....

Citazione:
Orginalmente inviato da astrobeed Visualizza messaggio
Non è nemmeno possibile usare due MAX485 perchè non si può tenerne uno fisso in trasmissione, il bus risulterebbe occupato e non utilizzabile da altri TX.
Lo supponevo ma non ne ero sicuro ...........

Citazione:
Orginalmente inviato da astrobeed Visualizza messaggio
Il modo ottimale in assoluto è usare un processore con UART, si usa l'RX per ricevere il byte trasmesso dal MAX232 e il TX per inviarlo verso il MAX485 con relativa gestione del segnale di direzione, in questo caso serve poter impostare il corretto baudrate tramite jumper/dipswitch.
La gestione del segnale di direzione deve tenere conto del baudrate e usare un timer per misurare il time out tra due byte successivi, se questo è maggiore del tempo complessivo per trasmettere tre-quattro byte il MAX485 deve essere posto in ricezione.
Si anche io penso sia la soluzione migliore anche se vorrei che si potesse usare il tx rx in ambo le direzioni.

Pensavo ad un sistema di questo tipo:

rs485->rs232 UART hardware verso rs485 (RX TX), Buffer di x caratteri dove il pic accumula i dati trasmessi se pertinenti con l'indirizzo, trasmissione verso rs232 e/o wifi tramite trasmissione software.

rs232->rs485 trasmissione attivata sul pin di INT del pic, ricezione software dalla rs232, accumulo su buffer e poi trasmissione con uart verso rs485.

Il ritardo nella trasmissione non credo che crei problemi, molti più problemi credo ci sarebbero agestire la contemporaneità della trasmissione. In ogni caso il sistema con il buffer può funzionare a due velocità differenti sui due canali .....

Per ultimo usando un pic serie 18 che ha tre INT esterni si potrebbero tenere collegati tutti e tre i dispositivi di trasmissione, rs485 su UART (velocità maggiore), rs232 sul primo INT e wifi sul secondo INT ......., così da avere anche un rs232<->wifi.

Per il pic, così passo alla serie 18, pensavo al 1320. Per il settaggio delle velocità vedo se usare un pulsante e un paio di led che ciclicamente settano le varie velocità per le varie periferiche.

Che ne pensate .... Beh l'idea è nata, quando la realizzerò è un'altra storia .... anche se già vorrei averla!

Saluti Nonno
  #5  
Vecchio 25-11-2006, 11.54.38
L'avatar di selfservice
selfservice selfservice non è collegato
Moderator
 
Data registrazione: 16-11-2003
Residenza: Foligno
Messaggi: 1,183
Potenza reputazione: 88
selfservice E' circondato da una spettacolare aurea
Invia un messaggio via MSN a selfservice
Predefinito

Citazione:
Orginalmente inviato da nonno_62 Visualizza messaggio
Per Self .... azzz sempre per le cose più complicate
no... ci stavo pensando poco fa e ho detto una cazzata... perchè non conviene mettere un altro max485 e cancellare l'eco col pic... dal momento che c'è il pic basta fargli commutare un solo max485...
lascia stare gli interrupt esterni, l'uart dei pic genera un interrupt ad ogni byte ricevuto...

io la butto là così... prendetemi poco sul serio... ma una CPLD???
__________________
Beatu chi lu pota, beatu chi lu zappa, na paralise secca a chi ce mette l'acqua!
  #6  
Vecchio 25-11-2006, 15.34.20
L'avatar di astrobeed
astrobeed astrobeed non è collegato
Robottaro sostenitore
 
Data registrazione: 18-03-2004
Residenza: Roma
Età : 58
Messaggi: 3,377
Potenza reputazione: 344
astrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua famaastrobeed La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da nonno_62 Visualizza messaggio
Per ultimo usando un pic serie 18 che ha tre INT esterni si potrebbero tenere collegati tutti e tre i dispositivi di trasmissione, rs485 su UART (velocità maggiore), rs232 sul primo INT e wifi sul secondo INT ......., così da avere anche un rs232<->wifi.
Come ti ha già detto self gli INT esterni non servono in questo caso perchè sia i PIC che gli AVR, per chi li preferisce, hanno già l'interrupt interno sulla seriale, cioè quando è disponibile un nuovo carattere scatta l'INT.
Sul discorso buffer c'è il "piccolo" problema che la RAM nelle MCU è sempre molto poca pertanto il buffer lo puoi fare molto piccolo, diciamo non più di 512 byte con un pic 18, se lavori con velocità diverse tra PC e RS485 il buffer si riempe in un attimo e puoi dire addio ai dati.
Devi lavorare con identiche velocità sia sul pc che sulla RS485.
La mia proposta è il modo più semplice in assoluto per realizzare un adattatore RS232/RS485 che sia affidabile e in grado di lavorare a tutti i vari baudrate, volendo i pic 18 hanno anche il supporto l'autobaudrate.
Con la tua proposta occorre implementare un'UART software oltre a quella hardware, non difficile da fare e nemmeno problematico con un processore che va 10 mips, oppure usare una MCU con due UART asincrone, questo è un pochino più difficile perchè la stragrande maggioranza delle MCU ha si due UART ma una è solo sincrona, specifica per comunicazioni seriali a due/tre fili come l'I2C o SPI.
__________________
Bye
  #7  
Vecchio 25-11-2006, 18.17.39
L'avatar di selfservice
selfservice selfservice non è collegato
Moderator
 
Data registrazione: 16-11-2003
Residenza: Foligno
Messaggi: 1,183
Potenza reputazione: 88
selfservice E' circondato da una spettacolare aurea
Invia un messaggio via MSN a selfservice
Predefinito

due usart indipendenti ce l'ha l'atmega128 ma è sprecato per una roba del genere...
riguardo al buffer è utile solo se la 485 viaggia a più di 115K, altrimenti si manda la seriale del pc al baudrate desiderato...
__________________
Beatu chi lu pota, beatu chi lu zappa, na paralise secca a chi ce mette l'acqua!
  #8  
Vecchio 26-11-2006, 10.35.30
nonno_62 nonno_62 non è collegato
Robottaro sostenitore
 
Data registrazione: 25-11-2005
Residenza: sardegna
Età : 68
Messaggi: 572
Potenza reputazione: 75
nonno_62 E' un faro della comunità
Predefinito

L'uso dell'INT ovviamente serve per innescare il timer per la usart software non certo per quella hardware .... per l'hardware lo so che c'è già il relativo interrupt, addirittura c'è un byte di buffer su alcuni modelli di uart hardware per PIC.

Se i messaggi sono di poche decine di byte e se il protocollo prevede una richiesta e l'attesa della relativa risposta, non vedo perchè dovrei saturare il buffer, basta memorizzare solo i dati relativi all'indirizzo del PC o della porta wifi ... Mentre per l'eventuale polling da rs485 della periferica si può pensare ad una risposta automatica, senza interessare la periferica colegata. Certo bisogna vedere anche come impostare il protocollo.

Inoltre la maggior parte di moduli wifi (aurel etc.), viaggiano a poche migliaia di byte/secondo, mentre la rs485 abbiamo detto che potremo settarla fino a un mega ...... Pensare di mandare tutto alla stessa velocità penso sia impossibile per questo motivo, anche i pc se non sbaglio si settano fino a 115 bps ......., insomma una forte limitazione.

Le usart software diventerebbero due, una lato rs232 e una lato wifi, due int di innesco e due timer di controllo (la serie 18 ne ha 4). Ovviamente non si deve pensare di usare tutto insieme, ma si può prevedere la possibiltà di accendere le task opportune per l'uso della scheda.

La usart software? Io l'ho già implementata e anche a stati finiti, prendendo spunto da una AN microchip, vabbè era a 4800 bps (su pic16f628 a 4 mhz).... ma credo che cambi poco anche a velocità superiori. Soprattutto perche l'eventuali trasmissioni su bus rs485 le bufferizzo, con uno spreco minimo di tempo ......

Non voglio e non devo loggare tutto il traffico, ma solo quello con l'indirizzo relativo alla scheda di interfaccia, al limite due indirizzi PC e wifi.

Per ultimo sulla rs232 posso implementare un xon xoff per evitare collisioni di collegamento .......

Non so, non mi rendo conto delle difficoltà reali, per questo ho aperto questo post, però l'idea di avere una scheda multifunzione così come la ho in testa io penso sia buona.

Saluti Nonno
  #9  
Vecchio 06-12-2006, 17.20.11
nonno_62 nonno_62 non è collegato
Robottaro sostenitore
 
Data registrazione: 25-11-2005
Residenza: sardegna
Età : 68
Messaggi: 572
Potenza reputazione: 75
nonno_62 E' un faro della comunità
Predefinito

Sono un pò testardo, pubblico lo schema così come lo ho in mente io, però con il frequentare il forum mi sono reso conto che ho veramente poca esperienza e spesso, anche dopo aver fatto, mi sono dovuto ricredere.

Perciò per il momento lascio decantare il progetto in attesa di raffreddare un pòl'entusiasmo, intanto così posso continuare con quello che ho già al fuoco.

Prima però un pò di ragionamenti che ci sono dietro a quanto fatto.

Volevo mettere sia l'RTF DATA SAW dell'aurel che il XBEE ma non c'entrano tutti e due in mezzo eurocard, anche se ci sto provando, e siccome è più facile da inserire nello schema e meno costoso l'aurel per ora ho messo quest'ultimo. (che motivazione stro....za, non ho trovato la libreria del xbee)

Pulsanti: devo trovare dei pulsanti facili da reperire e più piccoli, occupano un mare di spazio quelli che ho selezionato.

Attacco per l'antenna anche in questo caso con xbee non ce ne sarebbe bisogno, con l'aurel oltre al foro da 6 (che non trovato in libreria) ho previsto un connettore, ma credo che lo cambierò con una più semplice morsettiera ... altre idee.

Antenna: ma nonsi può sostituire con semplice spezzone di filo? costa 8 euro .......

Per ultimo non ho definitivamente mollato l'idea di farlo molto più semplice e funzioale ......

Ciao Nonno
Files allegati
Tipo file: zip interfaccia 1.zip (73.8 Kb, 47 visite)

Ultima modifica di nonno_62 : 06-12-2006 alle ore 17.25.49
  #10  
Vecchio 07-12-2006, 07.24.18
L'avatar di selfservice
selfservice selfservice non è collegato
Moderator
 
Data registrazione: 16-11-2003
Residenza: Foligno
Messaggi: 1,183
Potenza reputazione: 88
selfservice E' circondato da una spettacolare aurea
Invia un messaggio via MSN a selfservice
Predefinito

a occhio e croce direi che c'è un pò di tutto...
per il problema dello spazio dal momento che uno o monta l'aurel o lo xbee puoi sovrapporre i footprint.
è cosa buona e giusta metterci lo zoccolo per un AVR... un ATmega8 va più che bene...
x l'antenna va bene anche un pezzo di filo ma quella da 8€ da indubbiamente prestazioni migliori...
riguardo allo xbee si può montare sopra all'elettronica...

il pic18F1220 ha solo 256 byte di ram e 1k di flash, un pò poca ram se vogliamo farci un buffer e un pò poca flash per farci stare un uart software... soprattutto se uno usa gli aurel che a 115K a non ci arriveranno mai neanche distanti un palmo... l'atmega 8 ha 1K di ram e 8k di flash, già và meglio... quindi sarebbe da cambiare pic...

c'è un modo per convertire i disegni di eagle in orcad e viceversa?
__________________
Beatu chi lu pota, beatu chi lu zappa, na paralise secca a chi ce mette l'acqua!

Ultima modifica di selfservice : 07-12-2006 alle ore 12.29.13
 


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
RS485 comando relè maverikgoos Forum generale 30 21-09-2009 14.33.54
rs232 - pic pirata111 P. in C, C++ 1 12-06-2009 12.54.29
Comunicazione seriale rs232 e rs485 Kenophy Elettronica 0 13-02-2009 12.13.05
RS485 Anonymous E. Digitale 1 06-10-2005 10.37.04
collegare 2 pic attraverso rs485 fuzzy Elettronica 0 23-02-2005 14.51.01


Tutti gli orari sono GMT. Adesso sono le: 01.56.05.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB