Newsgroup: it.hobby.elettronica.digitale
Titolo: Quale PIC per convertitore di protocollo ?

Dovendo implementare un convertitore di "protocollo" su linea seriale
RS232 (devo prendere alcuni dati in arrivo a 4800 o 9600 baud su una rs232
da un dispositivo, effettuare alcune trasformazioni su di essi e spedirli
verso un pc sempre su rs232 alla medesima velocita), quale pic potrei
usare ?
Suppongo occorra una usart e suppongo pure che le routine di base per
l'I/O seriale possano essere trovate già fatte, giusto ?
MazE
--
per rispondere togliete gli "*" dall'email - remove "*" from address to reply
http://www.bccmp.com/mazzetti/pagine/sottoscala.html

forse con il solo 16f84 che puo' gestire la seriale fino a 9600 bps (vedi certe
"schedine") e con il picbasic che dispone delle istruzioni necessarie
(serin,serout).
ciao

 l'I/O seriale possano essere trovate già fatte, giusto ?
Ti consiglio di usare un PIC 16F876, facilmente reperibile intorno alle
20Klire, al suo interno trovi anche la USART.
Con il quarzo a 4Mhz ottieni facilmente, semplicemente settando il valore di
un registro, sia il baud rate a 4800 che quello a 9600 con grande
precisione, sicuramente maggiore di quella ottenibile via software.
Sul sito della Microchip tra le note tecniche trovi svariati esempi per
l'uso dell'USART e per le comunicazione seriali in generale.
Se ti fa comodo posso darti io dei sorgenti di funzioni in C che
inizializzano la seriale, ricevono/tramettono un carattere,
ricevono/trasmettono una stringa (max 32 caratteri per via del limitato
spazio ram dei PIC)
--
Ciao
Marco d'Ambrosio  
m.dam...@libero.it
http://www.razzimodellismo.it
    ACME I-RM-05 / TRA #08224 L1
http://web.tiscalinet.it/mda
http://digilander.iol.it/robotica

spazio ram dei PIC)
grazie, ma al momento lavoro in assembler


 Pensi sia possibile ?
Sarebbero troppo costosi 2 pic che colloquiano tra loro tramite I2C?
Forse ti risolveresti qualche problema (Non ultimo hai il doppio dello
spazio codice ed il doppio della ram :-)))

 usare ?
Da quanto ho capito dal dispositivo ricevi solamente dati (al max invii uno
XOFF o XON se il controllo di flusso è di questo tipo) ed al PC invii
solamente (tranne XON/XOFF),  se e' cosi' ti conviene usare la usart
integrata nel PIC (il 16F87x e' ottimo) "spezzata" fra i due canali: la
ricezione sul remoto e la trasmissione sul pc; e usare una usart software
per i canali mancanti (moolto meno impegnati); inoltre se il controllo è HW
non devi neanche farla.
Se ho capito bene il tuo problema fammi sapere che ho pronti tutti i pezzi
di software (assembler) che ti servono: usart ad interrupt (usa un timer con
prescaler del pic e richiede un quarzo da 4915200 Hz, assai reperibile e che
da un errore 0% anche su quella HW), "bufferizzatore" dei dati ricevuti con
controllo della sintassi del protocollo (che dovrai adattare al tuo
protocollo), invio dei dati presenti in un buffer (formato, chiaramente,
come quello di ricezione da piu' byte). Mi manca il controllo/generazione di
parita' (che devo avere su qualche blocknotes e che comunque e' fatto con
una decina di istruzioni) e chiaramente la "traduzione" fra i due
protocolli.
Fammi sapere.
Ciao
Massimiliano


 usare ?
Secondo me un PIC16F84 a 4 MHz puo` bastare, anche se non ha uno UART
(dovresti ricevere i bit "a mano", ma se devi fare solo quello o quasi non
e` affatto difficile, basta usare il timer e lasciar perdere la gestione con
interrupt).
A parte quello probabilmente ti serve un MAX232 per adattare i livelli
logici; credo che nemmeno i PIC dotati di UART abbiano I/O compatibili
RS232.
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/

Fammi sapere.
ok, grazie in anticipo, se dovrò effettivamente realizzare il tutto ti
faccio un fischio.


RS232.
no in effetti, il MAX l'avevo sottointeso ovviamente.
Se poi dovrò gestire anche altri segnali della seriale passerò a qualche
altro membro dell'ampia famiglia della maxim


Fammi sapere.
ok, grazie in anticipo, se dovrò effettivamente realizzare il tutto ti
faccio un fischio.
MazE
