Newsgroup: it.hobby.elettronica.digitale
Titolo: Trasmissione seriale asincrona?

Ciao!
Mi sto studiando bene la trasmissione seriale per scrivere delle
routine per PIC che non hanno la USART integrata...
Mi sono orientato sulla trasmissione a 9600baud, 8 bit, no parity, 1
bit di stop.
Però non capisco bene come funziona la cosa:
9600 baud significa un dato ogni 104us...
Molte routine fanno questo:
- aspetto 52us (in modo da posizionarmi a metà del "gradino")
- leggo il bit e aspetto finchè questo è un bit di start...
E già qui non capisco: non mi è chiaro come sia possibile riconoscere
l'inizio di un ottetto di bit... come posso capire che una sequenza di
bit ha un inizio e non sto leggendo a metà dato?
Grazie!
 Luca
-----------------------------------------------------------------
La mia pagina dedicata all'elettronica:
--> 
http://www.dentella.it/elettronica
-----------------------------------------------------------------

  Luca
Diciamo che si parte dal presupposto che inizi ad aspettare il dato prima
che il dato arrivi.
Chiaramente se ti metti in ascolto quando la trasmissione è già iniziata
allora pigli bit per bot.
ciauz
Sergio

 ha scritto nel messaggio
news:vpro4u0ghhv5kpama...@4ax.com...


 - aspetto 52us (in modo da posizionarmi a metŕ del "gradino")
La mia forse č megalomania perché a queste velocitŕ non č necessario, ma io quando ho scritto qualche
anno fa una routine per la seriale con PIC, dopo aver rilevato il bit di start (in interrupt), campionavo i
bit che ricevevo in tre punti equispaziati centrati in mezzo al bit.
In questo modo avevo 3 campioni per ogni bit e il dato ricevuto lo calcolavo con il criterio di massima
ricorrenza (es: 110 --> 1), č come avere un codice ripetitivo (3,1).
Ciao
Ste

 routine per PIC che non hanno la USART integrata...
 
Prova a guardare anche questi documenti:
http://www.salire.fausernet.novara.it/old/castigliano/5f/relazione.htm
http://www.desantis.archimedianet.it/Appunti%20Elettronica/Interfaccia_RS232_Out.html
http://members.xoom.it/_XOOM/stor/elettronica/rs232/rs232.htm
Ciao, Salvo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:vpro4u0ghhv5kpama...@4ax.com...


ditemi se questo ragionamento può andare bene:
per non occupare risorse al PIC:
attivo come interrupt il fronte di salita (o discesa, dipende dalla
presenza o meno del MAX232 che inverte la linea RS232) sul pin RB0/INT
(parlo del 16F84). quando arriva lo start bit su rs232 parte
l'interrupt service routine che:
attende 52us (9600bps) e campiona RX assicurandosi che il bit di start
sia corretto e toglie l'interrupt su RB0 ed attiva l'interrupt TMR0
(precedentemente configurato per un'attesa di 104us). un contatore
settato ad 8 o 7 (a seconda dei bit trasmessi su seriale) scala di una
unità ogni volta che viene campionato un bit. una volta che il
contatore ha raggiunto lo zero, viene risettato ad otto (o sette) ,
viene campionato lo stop bit dopo altri 104us e viene disabilitato
l'int su TMR0 per ripristinare quello su RB0/INT...
in questa maniera non attendo mai nessun evento e posso far eseguire
al pic altre linee di codice esterne alla ISR...
dite che potrebbe andar bene come ragionamento?


gabriele bellini
[ remove _FUCKSPAM for e-mail forward ]
[ rimuovi _FUCKSPAM per rispondermi in e-mail ]


Complicato ma corretto... e passare ad un 16f628 che costa la metà ed ha una
USART harware? ;-)
ciao
Sergio


wrote:

grazie della dritta! ho fatto tutto questo discorso perchè avevo il
classico 16f84 sottomano e volevo "istruirlo" a rappresentare su
display HD44780 i dati che invio su seriale...ho fatto diversi listati
e ogni tanto mi prende la fissa di migliorare il codice ;o)
io conosco il pic16f84, che peraltro ha vistosamente aumentato il suo
prezzo presso il "negozietto" di elettronica...scommetto per tutte
queste carte pirata :o(
cmq proverò a cercare il 16f62x...sai se sono reperibili facilmente? e
il suo prezzo indicativo?
thanx 



Li trovi a Kg da 
www.elettroshop.it
 a 3,5 euro
Considera che la Microchip li considera l'evoluzione del F84 č pin to pin
compatibile, ma volendo ha anche 2 comparatori di tensione una USART, un PWM
e clock integrato.
Puoi in pratica portarlo a 16 I/O.
Per 3,5 Euro č un affare ;-)
ciao
Sergio

 ha scritto nel messaggio
news:vpro4u0ghhv5kpama...@4ax.com...
