Sergio Bianchi Inserito: 9 dicembre 2003 Segnala Share Inserito: 9 dicembre 2003 Ciao a tutti, vorrei chiarire un dubbio sull' interfacciamento seriale RS232 tra un PC e un PIC16876.Voglio realizzare un circuito che tramite un MAX232 vada ad interfacciarsi con PIC per lo scambio di alcune stringhe della lunghezza di circa 20 caratteri in entrambe i sensi. Non devo gestire controlli di flusso quindi userò solo linee TX e RX. Le domande sono:Meglio utilizzare il PIC con USART integrato (PIC16F876), oppure come ho visto in alcuni esempi, i segnali TTL del MAX232 che vanno su linee normali di I/O del PIC (immagino con appesantimento del firmware)??Se uso l' USART integrato che configurazione quarzo-condensatori devo usare considerando che il mio baudrate sarà di 19200??Qualcuno ha un esempio per l' invio e la ricezione di stringhe nel PIC16F876??Purtroppo non ho trovato esempio pratico del mio caso nei vari siti, quindi mi affido voi!Grazie Link al commento Condividi su altri siti More sharing options...
k6233 Inserita: 9 dicembre 2003 Segnala Share Inserita: 9 dicembre 2003 Ciao,Se non ti interessa gestire in modo particolare la seriale, quindi non ti necessita avere un buffer di ricezione a parte per immagazzinare i dati mentre il tuo programma gira, puoi usare delle routine dedicate.Se invece ti interessa che il tuo programma giri senza dipendere dalla comunicazione allora devi usare per forza l' uart.Per quanto riguarda l'uart se ti scarichi i data sheet della microchip vi sono delle tabelle che ti indicano come settare l' sprg per avere 19200 baud in base al quarzo installato, come gestire gli interrupt di tx e rx e tanto altro.Per quanto riguarda le routine software dovresti trovare qualcosa su www.tanzilli.com, io personalmente le uso molto ma in basic (è più sbrigativo anche se meno prestante!).Saluti, Marco Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 9 dicembre 2003 Segnala Share Inserita: 9 dicembre 2003 Ciao Sergio,Se hai a disposizione un 16F876 sicuramente ti conviene usare la USART interna.Questa USART gestisce direttamente un buffer di entrata e uno di uscita .Per trasmettere un byte lo devi solo caricare in un registro e il PIC si gestira' da solo tutta la trasmissione.Anche la ricezione e' automatica , quando un carattere e' ricevuto lo puoi prelevare da in registro specifico , ne puo' memorizzare 3 prima di andare un overflow.Quando riceve un carattere puo' scatenare un interrupt che ti permette di fare altre cose senza preoccuparti della seriale ....Tutto questo e' relativamente difficile farlo senza USART .... ovvero puoi farlo , ma mentre invii il byte non puoi fare niente .Se uso l' USART integrato che configurazione quarzo-condensatori devo usare considerando che il mio baudrate sarà di 19200?? Link al commento Condividi su altri siti More sharing options...
Sergio Bianchi Inserita: 10 dicembre 2003 Autore Segnala Share Inserita: 10 dicembre 2003 Grazie per le delucidazioni molto utili.Adesso ho le idee + chiare e proverò a "smanettare" un pò!Quello che vorrei fare è ricevere un frame di circa 20 caratteri, alcuni fissi ed altri dati, quindi rispondere con una stringa simile dove cambiano i valori dei dati.Capisco benissimo che non sia semplice come usare mscomm di VB, ma il buffer di ricezione si limita a 3 caratteri dlgcom?Ciao Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 11 dicembre 2003 Segnala Share Inserita: 11 dicembre 2003 ma il buffer di ricezione si limita a 3 caratteri dlgcom? Link al commento Condividi su altri siti More sharing options...
maghiro Inserita: 14 dicembre 2004 Segnala Share Inserita: 14 dicembre 2004 domanda: io sto usando la usart della 1pic 16f876 e non riesco a ricevere correttamente i byte che la pic mi invia,so usando MSComm sotto visual c++ 6.0 e ho che alcuni valori mi si convertono, probabilmente perche' male interpretati. qualcuno sa come aiutarmi? Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora