Newsgroup: it.hobby.elettronica.digitale
Titolo: RTS/DTR

Ho la necessità di impostare una comunicazione seriale fra PC e PIC
attraverso due moduli ricetrasmittenti Aurel (in half duplex).
Dalla parte del PIC no problem, ma dalla parte PC come faccio a
commutare l'RX con il TX? Si tratta solo di mandare a uno logico i pin
corrispondenti del modulo. Ho visto che programmi come IC-Prog, usati
con programmatori seriali come Ludipipo, abilitano l'MCLR e il VCC.
Utilizzando cosa? RTS e DTR in modo improprio?
Grazie, ciao.

 commutare l'RX con il TX? Si tratta solo di mandare a uno logico i pin
Non hai bisogno di ulteriori linee oltre all'rx ed al tx anche perchè
con due soli moduli puoi solo trasmettere un segnale (e riceverne uno
solo). Usi la comunicazione asincrona. Anche via cavo tra pc e pc 
bastano tre fili (rx-tx-massa).
-- 
Just got a new car for my hubby. Great trade.... 
News 2000 [v 2.06] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

Aggiungo:
se i segnali interessati sono RTS e DTR, è possibile comandarli a
piacimento da Visual Basic? Come?

Utilizzando due modili RTX puoi avere una comunicazione bidirezionale
half duplex, commutando da rx a tx quando serve. Il mio problema è
proprio quello di commutare lato PC...


dall'help in linea dell'oggetto MSComm ...
DTREnable=valore
RTSEnable=valore
tu HAI installato l'help in linea del VB, vero ?

 proprio quello di commutare lato PC...
Si, ma ma hai due moduli sia per il PIC che per il PC o hai due 
moduli in tutto? In questo caso puoi appunto usare la semplice 
comunicazione asincrona, come ti ho detto.
-- 
Lady Thatcher: The origin of mad cow disease! 
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000


Perdonami, continuo a non capire ciò che vuoi dirmi.
Io HO due soli moduli, uno per il PIC, uno per ilo PC.
Ogni modulo è ricetrasmittente, ma O riceve, O trasmette (da qui l'half 
duplex).
Quindi quando il modulo del PIC è in trasmissione, naturalmente quello del 
PC deve stare in ricezione. Non esistono altre possibilità di comunicazione.
Per passare dallo stato di ricezione a quello di trasmissione, è sufficiente 
disalimentare la sezione ricevente (portando a 0 il relativo pin del modulo) 
e alimentare quella trasmittente, per poi invertire i segnali quando 
necessita invertire il senso della comunicazione.
E, fin qui, è tutto facile.
Dal lato PIC, tramite firmware è facile abilitare i pin per fare quanto 
sopra, ma dal lato PC, attraverso la seriale, bisogna sfruttare altri 
segnali SOLO per commutare il modulo Aurel da ricezione a trasmissione. 
Quelli relativi alla comunicazione sono già al loro posto...

 necessita invertire il senso della comunicazione.
Perchè fai tutto ciò? Non puoi semplicemente lasciare tutto acceso?
Le sezioni riceventi non si disturbano per niente, quelle trasmittenti le
usi una alla volta: al massimo ti arriva un eco di quello che stai
trasmettendo sul tuo stesso ricevitore, ma non mi sembra un problema...
Io almeno in un progetto che ho fatto tempo fa facevo così.
Forse usiamo moduli diversi, ma mi sembra strano...
--
...:::Zmaster:::...
zmaster.adsl[ANTISPAMSYSTEM]@
tin.it
www.zmaster.tk

 ha scritto nel messaggio 
news:rO%ue.69599$75.34...@news4.tin.it...

Non so, non avevo considerato questa configurazione, forse pensavo che il 
ricevitore potesse danneggiarsi, dato che condivide l'andenna col tx.
Proverò e, se hai ragione, mi hai risolto il problema :) 

 usi una alla volta: al massimo ti arriva un eco di quello che stai
Non č del tutto vero, dipende dalla configurazione del ricevitore, 
essendo direttamente collegato alla stessa antenna del Tx va sicuramente 
in saturazione e se č del tipo con comparatore e filtro sul valore medio 
del segnale ci puň mettere molto tempo (qualche centinaio di 
millisecondi) prima che si ristabilizzi e il ricevitore inizi a 
funzionare correttamente di nuovo.


Si è possibile con il controllo mscomm di visualbasic, ma non sono molto 
precisi.
La comunicazione seriale in windows è gestita e bufferizzata dal sistema 
operativo e dal driver hardware, non c'è un modo in vb per sapere quando 
  hai effettivamente trasmesso tutti i caratteri, per cui se chiami la 
tua funzione di trasmissione e subito dopo alzi/abbassi il dtr/rts ti 
capiterà sicuramente che il dtr/rts farà commutare il tuo modulo ancora 
prima che tutti i caratteri siano stati inviati.

 ha scritto:

Ci sono diversi problemi con RTS\, ne abbiamo parlato a lungo anche qui:
http://shorterlink.com/?DXNZZ6
ciao
  Stefano