Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 22 gennaio 08, 10: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
FaPIC non è collegato   Rispondi citando
Vecchio 22 gennaio 08, 20:26   #2 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 10-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 ]
marcosinatti non è collegato   Rispondi citando
Vecchio 23 gennaio 08, 08: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.
FaPIC non è collegato   Rispondi citando
Vecchio 23 gennaio 08, 13:16   #4 (permalink)  Top
jijuja
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!
  Rispondi citando
Vecchio 23 gennaio 08, 14: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
FaPIC non è collegato   Rispondi citando
Vecchio 23 gennaio 08, 16:16   #6 (permalink)  Top
jijuja
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!
  Rispondi citando
Vecchio 23 gennaio 08, 16: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.
FaPIC non è collegato   Rispondi citando
Vecchio 23 gennaio 08, 19:15   #8 (permalink)  Top
User
 
L'avatar di MSchiepp
 
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.
MSchiepp non è collegato   Rispondi citando
Vecchio 23 gennaio 08, 23:10   #9 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 10-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Citazione:
Originalmente inviato da MSchiepp
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

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 ]
marcosinatti non è collegato   Rispondi citando
Vecchio 24 gennaio 08, 00:01   #10 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da marcosinatti
Forse lo si può fare se imposti le seriali a baud bassi, ...
Il problema è leggermente diverso: è evidente che non è difficile 'contare' un impulso che dura 200uS con un micro che ha un ciclo di istruzioni di 1uS, ma il problema è che non si riesce a rilevarne e contarne contemporaneamente (e correttamente!) quattro che arrivano in modo completamente asincrono: non è quindi un problema di assembler o C, ma di risorse del micro che non consentono di fare queste cose.
Non a caso vendono le UART già fatte...

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Cavo rs232 per riceventi synt multiplex Rondone_64 Radiocomandi 3 23 dicembre 06 22:11
usb rs232 converter ady Circuiti Elettronici 29 18 aprile 06 12:53
Interfaccia rs232 o parallela x mx-12 jr hasby Simulatori 2 13 dicembre 05 22:44



Tutti gli orari sono GMT +2. Adesso sono le 01:50.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002