spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Progetto robot MODDI > Comunicazione e protocollo

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 28-06-2010, 07.51.11
valerio_it valerio_it non è collegato
Nuovo robottaro
 
Data registrazione: 06-06-2009
Residenza: Pisa
Età : 35
Messaggi: 8
Potenza reputazione: 0
valerio_it E' per ora ancora un mistero
Predefinito Scheda Seriale per PIC

Ciao a tutti,

sto costruendo una scheda seriale per la comunicazione con il PC e sto avendo più di un problema. Ho seguito gli schemi in rete che utilizzano il max232 come integrato per la conversione dei valori logici di tensione. Se vado però ad inviare o ricevere dati tramite hyperterminal non funziona nulla. Lavorando invece senza il collegamento con il PC, ma cortocircuitando il tx e rx del max232, sembra funzionare tutto. Allora mi chiedo potrebbe essere un problema di cavo di collegamento? Non ho trovato in rete informazioni concrete su come considerare dei dispositivi DTE o DCE, quindi chiedo a voi aiuto. Da quello che ho capito, la scheda seriale del PC va considerata DTE mentre la UART del PIC una DCE, giusto?? Detto questo devo utilizzare un cavo seriale diritto oppure un cavo incrociato (null modem)??

grazie a tutti per gli eventuali suggerimenti
Rispondi citando
  #2  
Vecchio 28-06-2010, 08.53.29
L'avatar di guiott
guiott guiott è collegato
Robottaro master
 
Data registrazione: 23-04-2004
Residenza: Roma
Età : 54
Messaggi: 469
Potenza reputazione: 96
guiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua famaguiott La sua reputazione è oltre la sua fama
Invia un messaggio via AIM a guiott Invia un messaggio via MSN a guiott Invia un messaggio via Yahoo a guiott Send a message via Skype™ to guiott
Predefinito

Purtroppo le definizioni cambiano da ambiente ad ambiente. Nel caso del PIC non puoi più parlare di DCE e DTE. Le definizioni di TX e RX nel datasheet sono dal punto di vista del PIC, quindi RX significa il pin dal quale deve entrare il segnale e TX il pin dal quale esce il segnale. Nel senso canonico delle definizioni potremmo dire che il PIC deve essere considerato un DTE come il PC e quindi per collegarli devi usare un cavo crossed. Oppure invertire i collegamenti a livello MAX232-PIC.
__________________
Ciao
Guido
------
www.guiott.com
Rispondi citando
  #3  
Vecchio 28-06-2010, 09.19.24
L'avatar di sergio_camici
sergio_camici sergio_camici non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Milano - Binasco
Età : 45
Messaggi: 1,865
Potenza reputazione: 141
sergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da guiott Visualizza messaggio
Purtroppo le definizioni cambiano da ambiente ad ambiente. Nel caso del PIC non puoi più parlare di DCE e DTE. Le definizioni di TX e RX nel datasheet sono dal punto di vista del PIC, quindi RX significa il pin dal quale deve entrare il segnale e TX il pin dal quale esce il segnale. Nel senso canonico delle definizioni potremmo dire che il PIC deve essere considerato un DTE come il PC e quindi per collegarli devi usare un cavo crossed. Oppure invertire i collegamenti a livello MAX232-PIC.
In pratica è *sempre* necessario collegare il TX di un dispositivo con RX dell'altro e viceversa, tutto sta a vedere su quali pin del connettore siano stati portati.
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
Rispondi citando
  #4  
Vecchio 29-06-2010, 06.03.58
roby123 roby123 non è collegato
Nuovo robottaro
 
Data registrazione: 01-10-2009
Residenza: Romagna
Messaggi: 27
Potenza reputazione: 0
roby123 E' per ora ancora un mistero
Predefinito

Io divideriei il problema, mi spiego meglio, la seriale come hai scritto te e confermato da Sergio e Guiott, e' "complicata" per molti aspetti.
Per il momento non considerare i concetti di DTE DCE ed i cari controlli, concentrati su 3 piedini e piu' precisamente il TX, RX, GND. Con questi 3 piedini puoi gia' fare molto per non dire tutti.
Ora, se posso dati un consiglio lasia perdere il terminale di windows (da parecchi casini, esperienza personale), usa altri programmi tipo Putty ultima versione o TeraTerm, sono molto facili da usare e ti fanno vedere "tutto" quello che gira sulla seriale.
Prima di abbanare il software ovviamente rimane il problema del settaggio della seriale, ovviamente la velocita' di trasmissione deve essere uguale per entrambe i dispositivi cosi' come la lunghezza della "parola" ed in fine il numero di bit detti STOP. Ovviamente utilizzando solo 3 fili devi disabilitare tutti i controlli di flusso e correzioni, se servono le implementerai poi ....
Abbandonando il software per i "fili".... comincia con il fare un ponticello fra' 2 e 3 del tuo connettore seriale a 9 pin e vedi se hai una risposta sul terrminale, se non e' cosi'.... ci sono gia' dei problemi.
Stesso procedimento dopo il max232, invece di andare sul pic, fai il ponte. se non funzia.... nella parte max c'e' qualeche cosa che non va.

Ad ogni modo per il discorso DTE o DCE e' una convenzione che si utilizza per dichiarare come e' "configurata" fisicamente la seriale di comunicazione, quindi come e' gia' stato detto, basta invertire qualche filo e il gioco e' fatto.

Facci sapere come vanno le prove.
Ciao
Rispondi citando
  #5  
Vecchio 04-07-2010, 17.09.25
valerio_it valerio_it non è collegato
Nuovo robottaro
 
Data registrazione: 06-06-2009
Residenza: Pisa
Età : 35
Messaggi: 8
Potenza reputazione: 0
valerio_it E' per ora ancora un mistero
Predefinito

Allora vi aggiorno sulle mie varie prove-tentativi:

1) Ho verificato facendo un corto tra i pin di ricezione e trasmissione della porta seriale del pic e funziona tutto alla perfezione. A questo punto deve essere un problema di cavo o di impostazione della porta seriale su computer.

2) La mia scheda madre non ha una porta seriale integrata quindi ho comprato una scheda PCI (http://www.moschip.com/mcs9835.php) ho installato i driver opportuni e in gestione periferiche mi viene fuori una cosa del genere:
PCI Serial PORT COM9
PCI Serial PORT COM10
Facendo alcuni tentativi vedo che sulla COM 9 qualcosa viene trasmesso.

Qui però ho 2 problemi:

1) Con TeraTerm non posso aprire una connessione su COM9 quindi provo con hyperTerminal (ma proverò anche con il software che mi avete consigliato). Apro la connesisone e digito ma non vedo nulla sullo schermo LCD del mio PIC. Allora disconnetto e con la comunicazione disconnessa digito un carattere da tastiera ed oltre ad attivarsi il canale di comunicazione mi appare un carattere distorto su LCD. A questo punto se continuo a digitare non appare più nulla. Devo ripetere il procedimento e cioè disconnettere il canale e poi digitare un carattere su tastiera. Non so se questo possa essere un problema legato a buffer o altro quindi chiedo a voi se ne sapete qualcosa.

2) Il carattere ricevuto è distorto cioè non è quello che digito ma un altro carattere ascii. Questo credo che dipenda dalle impostazione della UART (tutti i parametri delle porte seriali PIC e computer sono uguali). Con la libreria della microchip utilizzando la OpenUsart devo impostare il valore spbrg (anche se mi sembra sia solo un valore utile per le trasmissioni e io non riesco a ricevere correttamente). Sul datasheet del PIC ci sono valori per una frequenza di 8 mhz, 10 mhz, 20 mhz e 40 mhz ma io ho un 18f2520 con PLL abilitato che mi porta la velocità a 32 Mhz e non so per questo valore quanto debba essere spbrg.

Vi allego le inpostazioni su PIC:

#pragma config OSC = INTIO67 // Oscillatore interno
#pragma config MCLRE = ON // Reset Attivo
#pragma config WDT = OFF // Whatch dog disattivato
#pragma config PWRT = ON // Power UP timer abilitato
#pragma config LVP = OFF // Programmazione LVP disabilitata
#pragma config BOREN = OFF // Brown out Reset disabilitato
#pragma config DEBUG = ON // Debug ON

OSCCONbits.IRCF0 = 1; // Settiamo il clock
OSCCONbits.IRCF1 = 1; // Interno a 8Mhz
OSCCONbits.IRCF2 = 1;

OSCTUNEbits.PLLEN = 1; // Abilitiamo il PLL ora siamo a 8x4=32Mhz

OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
51 );

Ho impostato il baudrate a 9600 e disabilitato i controlli di flusso.

Grazie a tutti per le risposte.

Ciao Valerio
Rispondi citando
  #6  
Vecchio 07-07-2010, 07.53.44
valerio_it valerio_it non è collegato
Nuovo robottaro
 
Data registrazione: 06-06-2009
Residenza: Pisa
Età : 35
Messaggi: 8
Potenza reputazione: 0
valerio_it E' per ora ancora un mistero
Predefinito

Grazie a tutti ho risolto.. Per prima cosa avevo saldato male la massa sul connettore seriale della scheda del PIC e poi ho dovuto utilizzare un cavo diritto e non incrociato. Non so come mai ma così funziona tutto alla perfezione, probabilmente la scheda PCI che ho comprato richiede un cavo diritto.

Alla prossima, grazie dei consigli..

Ciao Valerio
Rispondi citando
Rispondi


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 is Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Seriale su pgc pgd gyppe Elettronica Digitale 0 17-03-2010 13.47.34
Scheda Seriale XBEE max_robot Elettronica Generale 15 19-10-2008 13.19.27
implementazione ricezione seriale da scheda inerziale lukakà Comunicazione e protocollo 0 05-03-2007 14.34.35
Seriale Cyber'93 Elettronica Generale 14 20-04-2005 14.01.21
seriale Iguana Elettronica Generale 4 18-06-2004 22.38.18


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


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