22 gennaio 08, 11:29 | #1 (permalink) Top |
User Data registr.: 22-01-2008
Messaggi: 4
| Pic Rs232
Ciao a tutti. Quello che avrei bisogno e' realizzare un multiplexr di segnali NMEA. Alla base del mio problema sta quale PIC utilizzare, considerando come vincoli il numero di entrate e uscite di cui avrei bisogno. In particolare, mi servirebbero 5 entrate RS232 e 2 uscite sempre RS232. Sapreste gentilmente indicarmi quale piu' potrebbe essermi utile...e se per caso avete letto in giro qualcosa di simile potreste inviarmi il link? Grazie a tutti. Ciao Fa |
22 gennaio 08, 21:26 | #2 (permalink) Top |
User Data registr.: 11-06-2007 Residenza: Sansepolcro (Ar)
Messaggi: 1.948
|
Non so se ci sia um micro con 7 rs232 hardware, certamente puoi farlo in maniera software anche se devi trovare compromessi tra le velocità di polling e l'aggiornamento dei dati. Se l'aggiornamento non deve essere veloce e puoi fare in modo che i dispositivi nmea sparino di continuo i dati, puoi permetterti di metterti in ascolto di una seriale alla volta per un certo tempo, per esempio 200ms in modo che nel giro di 1 secondo li hai ascoltati tutti. Ovviamente se da una seriale ricevi la stringa che aspetti poi passare subito all'altra in modo da accelerare il processo. Per le uscite non ci sono grossi problemi anche se le fai software dal momento che decidi tu quando sparare le stringhe. Io personalmente faccio grande use di basic sui pic, anche se è lento e occupa abbastanza memoria (rispetto all'assembler), è molto immediato come sviluppo e tratta abbastanza bene le seriali in modo software. Già lavorare in C sarebbe un vantaggio ma per me è uno sconosciuto... Ciao
__________________ Modifica Optic 8Ch ---- Luci Programmabili ---- RcSwitch ---- Il Mio Sito HK500GT & Flymentor - HK450 & SMPilot- SMTech450 & SMPilot --- SM-PILOT [ The Stabilizer ] |
23 gennaio 08, 09:34 | #3 (permalink) Top |
User Data registr.: 22-01-2008
Messaggi: 4
|
Grazie mille per la risposta. Sapresti indicarmi anche qualche link con qualcosa di simile a quanto mi hai descritto?? In particolare mi servirebbe aiuto per quanto riguarda l'individuazione dei PIC da utilizzare sia per swappare sulle N porte seriali, sia per il pic da programmare per fare il vero compito. Preferirei molto programmare il PIC in C. Grazie ancora. Fapic. |
23 gennaio 08, 14:16 | #4 (permalink) Top |
Guest
Messaggi: n/a
|
Ciao,fino a 19200 Baud/s con un (esempio) 16F84 a 4Mhz in Assembler riesci a leggere e scrivere contemporaneamente in real time cioè anche sovrappose come segnali tutte e 5 le porte,dipende poi come vuoi gestire internamente i dati.... Come Pic io ti consiglio il 16F628 che costa la metà del 16F84 e và fino a 20 Mhz,ha + memoria,+ porte ecc. (ti rimando al data Sheet) Comunque dipende poi da quello che devi fare,come sono legate le periferiche? Cioè il GPS ti dà una stringa al secondo o mezzo secondo,è fisso il tempo e non puoi leggere quando vuoi,se le altre periferiche sono MCU puoi usare un Pic serie 12 con 8 piedini configurando una Rs232 ed utilizzando il protocollo I2c per comunicare con le altre MCU essendo questo un protocollo bidirezionale studiato appositamente per gestire una linea multiutenza con gestione di attese,+ veloce ecc. In tal caso puoi programmare il Pic benissimo in Basic abbassando tantissimo i tempi di sviluppo e,se devi scabiare un mucchio di dati inserire una ram o Eeprom in I2c ed utilizzarla per memorizzare tutti i dati da passare che poi ogni MCU và a prendersi quando vuole o ne ha bisogno. Insomma puoi fare a tuo piacere,dipende tutto da che cosa vuoi fare,a cosa servono le altre 4 porte? Ciao! |
23 gennaio 08, 15:20 | #5 (permalink) Top |
User Data registr.: 22-01-2008
Messaggi: 4
|
Molto bene. Allora..le periferiche sono i vari strumenti presenti su un'imparcazione, quindi pilota automatico, bolinometro, GPS, ecoscandaglio, piu' un'uscita. Direi che usare un 16F628 puo' andare piu' che bene...sto cercando in rete qualche schema vedere qualche esempio per connettere almeno 2 rs232 al 16F628. se riesci a mandarmi qualcosa...te ne sarei molto grato. Il discorso del Pic serie 12 con 8 piedini per configurare un RS232...non mi e' molto chiaro...ovvero: Ogni PIC serie 12 serve per creare l'interfaccia tra l'rs232 e il protocollo I2C? Come capirai dalle mie domande...mi serve vedere qualche esempio per chiarirmi le idee.... grazie ancora...soprattutto per la pazienza. Ciao |
23 gennaio 08, 17:16 | #6 (permalink) Top |
Guest
Messaggi: n/a
|
Quindi adesso mi è tutto molto + chiaro ,bolinometro ed ecoscandaglio penso (correggimi se sbaglio) abbiano l'uscita come il GPS cioè ogni tot tempo inviano i dati,questi ovviamente devono essere gestiti in modo tale da poter leggergli indifferentemente dal momento di invio,anche sovrapposti. Il pilota automatico utilizzerà l'Rs232 come "porta" in sola ricezione quindi aspetta gli siano inviati i dati e l'altra uscita penso tu la voglia tenere per un eventuale Computer o quant'altro comunque immagino "un'uscita" dati che può aspettare.(si parla sempre di mS) A questo punto userei solo il 16F628,facciamo un pò di conti: premettendo che gli strumenti "trasmittenti" probabilmente (GPS sicuro) lavorano con codici ASCII possiamo configurare il tutto esempio a 4800 Baud ed abbiamo che una stringa da 8 Bit + 1 di inizio e 1 di fine ci mette (1s/4800Baud)*10bit = 2.083mS ed il singolo bit 0.2083mS o si può tradurre in 208.3 uS (microsecondi). Il Pic lavorando a 4Mhz in quel tempo (Assembler) esegue 208 istruzioni... Sono un'enormità per scansionare 3 porte visto che lo fai in poche istruzioni. Poi esagerando in quel tempo ti stà anche il ciclo per scrivere sulle uscite usando tutto a livello Software e ci puoi fare pure i calcoli (se serve interpretare le stringhe). Se lo usi in questo modo usi un solo piedino per porta visto che sarebbero unidirezionali e te ne resterebbero pure 11 libere...(quel pic ne ha 16) Tieni conto anche che 4Mhz sono con l'oscillatore interno al Pic mentre se usi un quarzo lo porti a 20Mhz di istruzioni in quel tempo al porto che 208 ne fai 1040!!! Ovvio che come software c'è un pò da lavorare specialmente se fai calcoli, se lo usi solo per trasferimento vai come una freccia (sempre assembler) Alternativa,investi un pò di + come soldi ((te la caverai con una ventina di Euro)) ti scarichi Mikrobasic (gratis non commerciale fino a 2K) ed usi un pic serie 12 con oscillatore interno ogni porta e in 20 minuti crei un programma di conversione di "standard" da Rs232 a I2C,sicuramente stai molto meno a livello di tempo ed usi un Pic Master ( 16F628 ) per gestire calcoli e conversioni dati, in Basic è una cosa immediata e la versione Free ti basta abbondantemente. Ovvio che stò parlando di piattaforme per uso non commerciale!!! Fammi sapere! |
23 gennaio 08, 17:28 | #7 (permalink) Top |
User Data registr.: 22-01-2008
Messaggi: 4
|
Gia'...hai capito quello che voglio fare. Leggendo in rete, ho visto che non e' possibile connettere direttamente il piedino Rx della porta seriale al pic, visto che uno e' un segnale +-13V, mentre l'altro e' un segnale TTL. Per risolvere il problema, devo utilizzare un convertitore...in rete ho letto del MAX232, confermi? A questo punto, cercando di pensare a una prematura lista della spesa, mi dovrei procurare: 1 MAX232 per ogni entrata, 1 pic 16F628 e 1MAX232 per l'uscita elaborata. corretto? Per quanto riguarda invece la programmazione del 16F628, devo necessariamente comprarmi un programmatore, o e' comuqnue effettuabile utilizzando una particolare entrata del 16F628, magari settando qualcosa di particolare? Nel qual caso, potrei pensare a una ulteriore porta rs232 utile solo a provvedere alla programmazione del PIC. Altra domanda...e' molto probabile che abbia necessita' di conservare in memoria i dati letti da una periferica, in attesa che i dati delle altre periferiche arrivino. Essendo dati NMEA, in formato ASCII, potrei ritrovarmi ad avere problemi nella gestione della memoria? Grazie ancora. |
23 gennaio 08, 20:15 | #8 (permalink) Top |
User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
|
Scusa se dico la mia, ma... lascia stare o trova qualcuno che ti può realizzare il tutto! Con un PIC come quello non puoi fare quello che ti serve e soprattutto non puoi nemmeno pensare di farlo se parti da zero. Prima di pensare alla lista della spesa scaricati MPLAB dal sito della Microchip (è l'ambiente di sviluppo per i pic) e incomincia ad imparare ad usarlo: puoi scrivere e simulare tutto il programma per il 628 e vedere se funziona. A quel punto puoi pensare al programmatore e agli altri componenti. Resta comunque un fatto: non puoi gestire tre seriali asincrone in polling software senza avere almeno tre timer ed interrupt separati e magari avanzando anche il tempo per fare anche qualche elaborazione dei dati letti! Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. |
24 gennaio 08, 00:10 | #9 (permalink) Top | |
User Data registr.: 11-06-2007 Residenza: Sansepolcro (Ar)
Messaggi: 1.948
| Citazione:
Forse lo si può fare se imposti le seriali a baud bassi, ma secondo me ci vuole un bel PIC18 fatto lavorare a 40Mhz (10mhz x4 con pll) e poi devi lavorare molto di cesello, devi sviscerare così tanto la seriale in assembler al punto di impazzire!!! Almeno per le mie capacità! L'assembler sinceramente è bello e potentissimo, ma quello che fai in un mese lo puoi fare in 2 giorni in basic o in C, ovviamente non puoi spingere molto come in asm. Comunque se ti servono i pic li puoi prendere come samples sul sito microchip, ne inviano 3 campioni di 4 tipi diversi (12 in tutto) basta avere un indirizzo e-mail che sia registrato con un dominio commerciale o professionale. Tanto per intenderci non deve essere @tele2 @libero @alice etc.. Per quanto riguarda il max232 con ognuno puoi convertire 2 linee da ttl a 232 e altre due linee da 232 a ttl, lo schema si trova sul datasheet. Se ti interessa solo ricevere puoi evitare il max e mettere un partitore che ti porta i +12v della seriale a circa 5v con un diodo per tagliare via il -12v, ovviamente devi invertire la logica con cui leggi il pin, è meno professionale e sicuro ma se hai linee corte funziona alla grande, già sperimentato Ciao...
__________________ Modifica Optic 8Ch ---- Luci Programmabili ---- RcSwitch ---- Il Mio Sito HK500GT & Flymentor - HK450 & SMPilot- SMTech450 & SMPilot --- SM-PILOT [ The Stabilizer ] | |
24 gennaio 08, 01:01 | #10 (permalink) Top | |
User Data registr.: 21-01-2004 Residenza: Milano
Messaggi: 989
| Citazione:
Non a caso vendono le UART già fatte... Michele
__________________ __________________________________________________ The worst day flying is better than the best day working. | |
Bookmarks |
| |
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
Cavo rs232 per riceventi synt multiplex | Rondone_64 | Radiocomandi | 3 | 23 dicembre 06 23:11 |
usb rs232 converter | ady | Circuiti Elettronici | 29 | 18 aprile 06 13:53 |
Interfaccia rs232 o parallela x mx-12 jr | hasby | Simulatori | 2 | 13 dicembre 05 23:44 |