Newsgroup: it.hobby.elettronica.digitale
Titolo: AIUTO PIC E PORTA RS232

salve a tutti, sono nuovo qui, volevo chiedervi una cosa.
sto facendo questo progetto di tanzilli,
http://www.tanzilli.com/?id=218
 , ho collegato tutto correttamente ed
ho fatto anche un programma in visual basic per il controllo della
seriale. il problema e che non funziona, ho provato a vedere con uno
oscilloscopio la stringa che esce dal MAX ma non esce quello che
dovrebbe uscire, ma una stringa di 20 bit che non corrisponde nemmeno
minimanente al codice ascii della letttera che invio.
qualcuno mi può aiutare??

Sbagli qualcosa!

 Sbagli qualcosa!
mmmm, questo lo avevo immaginato, ma non so dove. tu mi puoi aiutare?
non so se sai come   fare delle verifiche.

p.c...@fastwebnet.it
 ha scritto:

Con le info che hai postato non si può certo far qualcosa!
Ti conviene partire dal circuito d'esempio e dal software dell'esempio
per poi modificarlo passo passo!

 qualcuno mi può aiutare??
Da quello che dici, tenderei a pensare più che altro ad un problema
del software di gestione della porta. Controlla che le impostazioni
siano corrette nel tuo programma.

Darwin ha scritto:

si si pure il l'ho pensato, non conosci un programma per gestire la
seriale che funziona??
ho provato anche il programma che sta sul sito, lcdprint, ma mi da un
errore, e mi chiude la porta com.

 errore, e mi chiude la porta com.
Beh, io proverei con un qualunque programma di emulazione di terminale.
Io non uso Windows da un bel po' (e non mi manca) e non so darti
maggiori indicazioni, comunque, ma mi sembra che ce ne siano diversi e
che permettano di impostare tutte le caratteristiche della porta
seriale (velocità, bit di start, stop, numero di bit eccetera...).
Batti un tasto e dovrebbe inviarti sulla seriale il codice
corrispondente.  Mi sembra comunque che Windows XP ponga delle
difficoltà in più rispetto a Windows 98 per comunicare con le porte,
ma troverai sicuramente un programma in grado di funzionare (non ce
n'è uno con il sistema?).
Prova.

Darwin ha scritto:

io so che ci sta hyperterminal, ma nn mi permette di inviare dati sulla
porta. o almeno nn so  come si fa

 ha scritto nel messaggio 
news:1149172233.1...@f6g2000cwb.googlegroups.com...


 fammi sapere
io l'ho impostato in questo modo, ma poi quando mi trovo nella
schermata del programma, come faccio ad inviare i dati?non mi fa
scrivere nulla.
il firmware del pic dovrebbe funzionare, l'ho copiato uguale dal sito
senza modifiche. cmq proverò il pic basic.

 ha scritto nel messaggio 
news:1149235318....@j55g2000cwa.googlegroups.com...
www.spy-service.it
 ha scritto:


Hai impostato l'handshake su 'Nessuno' (a meno che tu non gestisca da pic 
anche le linee RTS/CTS/... o il protocollo xon/xoff) ?


a parte il consiglio giustissimo sull'handshaking, l'hyperterminal ha 
l'echo locale disabilitato di default, e' sufficiente scrivere per 
trasmettere, a video vedrai solo l'eventuale 'ritorno' dal microcontroller.
e' possibile anche settare l'echo locale ma in genere da piu' fastidio 
che altro

mmm ha scritto:

ok ho capito, cmq l'handshake corrisponde al controllo di flusso? se è
cosi allora è impostato su nessuno, i bps a 9600, bit dati 8, parità
nessuna e bit di stop 1.  con hyperterminal ho provato e mi invia i
dati, ho controllato con il programma portmon. vorrei passarvi il file
log del programma, forse voi ne capite più di me, come faccio?


comincia col semplice:
LEVA il microcontroller e cortocircuta TXD e RXD dal lato TTL sul max
a questo punto dovresti vedere l'echo di quello che digiti.
fai questa prova cortocircuitando sia direttamente sul max sia 
cortocircuitando sul micro ( pin 17 e 18 )
verifica inoltre che il quarzo del micro stia oscillando regolarmente ( 
e a quale frequenza )

 e a quale frequenza )
allora, ho fatto le verifiche, ed ho notato che se cortocircuito il pin
11 e 12 del max non escono i caratteri su hypert. la stessa cosa se
cortocircuito il pic. se cortocircuito i fili prima del max invece
funziona. che significa questo? che il max non funziona?  come faccio a
verificare il quarzo?e a quale frequenza oscilla?
grazie


hai TOLTO il microcontroller dal circuito vero ?
potresti avere sia problemi di collegamento, sia un max difettoso, sia 
un max che non sta funzionando per qualche altro problema:
in primis evita SEMPRE durante le prove di cortocircuitare insieme due 
uscita ( esempio il TXD della seriale del PC col TXD del max )
hai usato un cavo seriale dritto ?
controlla accuratamente i collegamenti e le polarita' dei condensatori 
intorno al max
sul pin 2 del max dovresti leggere circa   9 .. 10 V
sul pin 6 del max dovresti leggere circa - 9 .. - 10 V ( NEGATIVI 
rispetto massa)
su 1,3,4,5 dovresti vedere con l'oscilloscopio delle tensioni pulsanti
se non hai sbagliato nulla e' il max cotto
per il quarzo usa l'oscilloscopio e una sonda x10 e vedi il segnale sui 
pin 16 e 15
oscilla alla frequenza stampata sul quarzo stesso, dovresti essere in 
grado di fare una misura di frequenza approssimativa usando l'oscilloscopio
se non lo conosci questo e' un buon link per schemi di connettori e cavi
http://www.hardwarebook.net/

 
http://www.hardwarebook.net/
ho tolto il micorcontroller.
collegamenti fatti bene, le tensioni invece non corrispondono, leggo
sia sul pin 2 che sul 6 5V. ora non ho l'oscilloscopio a portata di
mano, se conosci un metodo per verificare il qurzo senza; cmq da quello
scritto sopra e un 4Mhz c'è scritto 4000T5MR.
a un ultima cosa, sto utilizzando la porta seriale con il connettore
tagliato, e ho solo i tre fili di trasmissione ricezione e massa.

ho risorlto il problema della tensione, ora sui pin ho 9v e -9v. se
cortocircuito rx e tx dopo il max (pin 11 e 12) con hyperterminal non
vedo nulla, non esce nessun carattere.


senza il microcontroller
scollega il max anche dalla seriale del PC
senza alcun cortocircuito ti test
applica al pin 11 alternativamente 0 e 5 V,
sul pin 14 dovresti leggere alternativamente 9 e -9 ( non ricordo in che 
ordine
applica al pin 13 alternativamente 9 e -9 V ( prelevabili stesso dal max )
sul pin 12 dovresti leggere aleternativamente 0 e 5 V ( ancora una volta 
non ricordo in che ordine )
ora cortocircuita i pin 14 e 13 del max
applica al pin 11 alternativamente 0 e 5 V
sul pin 12 dovresti leggere 0 e 5 V ( nello stesso ordine )
questo passaggio fallo anche applicando le tensioni di 0 e 5 V sul pin 
17 del micro e rileggendo le tensioni sul pin 18 del micro stesso
controlla anche attentamente se il cavo verso il PC sia sano
e' sufficiente collegare TXD RXD e massa per avere la 
trasmissione/ricezione.


tanto per curiosita' , di dove sei ?

mmm ha scritto:

ok dopo faccio tutte queste prove e ti faccio sapere.
sono della provincia di napoli tu?


io di napoli
sai 'Ciro' suona come un campanello d'allarme

mmm ha scritto:

a bene pure tu di napoli. io di torre del greco per la precisone.
cmq ho fatto le verifiche che mi hai chiesto ha passato tutti i "test",
invece di 9V mi esce qualcosa in meno tipo 8V o 7,7V ma penso vada
bene, poi l'esperto sei tu.
con il pic invece o non ho capito bene cosa fare, oppure  non funziona.
io ho dato l'alimentazione, ho applicato 5V al pin 17 e sul 18 non ci
stava tensione, con 0V la stessa cosa.

p.c...@fastwebnet.it
 ha scritto:

hey, ho risolto il problema, sostituendo il max232 con 1 bc337 per la
tx e un bc335 per la tx. cmq vorrei capire xkè il max non funziona
correttamente.

 
sono contento,
per risolto intendi che ora il PC ed il pic comunicano tra loro o cosa ?
devo dire la verita' non mi piace molto la soluzione con i transistor , 
sopratutto in trasmissione ( dal PIC al PC ) potrebbe essere una 
soluzione marginale ( con possibili problemi di funzionamento )
direi che vale la pena continuare ad investigare che problema aveva il 
max232 e risolverlo
magari rimontando a parte un circuito col solo max232 per rifare le prove.

 magari rimontando a parte un circuito col solo max232 per rifare le prove.
certo, domani vado al negozio e compro un max nuovo e dei condensatore
da 10micro come riporta sul sito di tanzilli (ora ho quelli da 1 micro
come porta sul datasheet del max)
comunque ti ringrazio per il tuo aiuto, ho capito come funzionava
hyperterminal e il funzionamento del max. ma tu ci lavori prorio con
ste cose??