Newsgroup: it.hobby.elettronica.digitale
Titolo: analizzatore di spetro

ciao,e da un po che ho intenzione di costruirmi un analizzatore di
spettro a led.
Io ho pensato di mettere una decina di lm3915 in modo da avere 10 bande
e filtrarli la frequenza di attivazzione in modo da aver
50hz,200hz.1000hz ecc.ecc
Pero tutto sto ambaradam e assai costoso, e quindi volevo chiedervi se
qualche modo in digitale per accendere10 bande da 10 led in base a 10
diverse frequenze?
ciao


c'e' un vecchio progetto di NE simile al tuo dove si usa un unico '3915 
e lo si multiplexa tra le N colonne di led e le N uscite del banco di 
filtri/rivelatori di picco.

 filtri/rivelatori di picco.
ok.ma
 puoi spiegarmi a grandi linee cosè il multiplex?

>
ok.ma
 puoi spiegarmi a grandi linee cosè il multiplex?
Credo che volgia dire che devi utilizzare un multiplexer analogico: ti crei 
i tuoi bacnhi di filtro (che dovranno essere molto selettivi, immagino) 
queste uscite da ogni banco vanno a finire nel multiplexer analogico e 
l'uscita del multiplexer va connessa col 3915.
Il multiplexer analogico funziona come quello digitale, tu selezioni una 
linea (in digitale ovviamente) e lui prende l'ingresso relativo e lo invia 
in uscita. Per esempio puoi dirgli di prendere la linea 2 oppure 4 o 5....
A questo punto con un semplice contatore binario passi tutte le linee una 
per una e dall'altra parte attivi la massa della colonna di led che devono 
accendersi.
Quello che avviene è abbastanza semplice il contatore seleziona per prima la 
linea 1 e contemporanemente collega a massa la colonna di led numero 1, il 
tuo mux analogico passa la prima banda al 3915 e costui la visualizza sui 
led. Poi si passa alla seconda banda. ecc... ecc... Se il tutto è molto 
veloce non sembrano tutti accesi. Forse un latch però non guasterebbe.
Ovviamente per selezionare le linee di led devi utilizzare un mux digitale 
con magari un driver in uscita che supporti una certa corrente di ritorno, 
oppure un mux digitale piu un certo numero di transistor.
Non è difficile da fare, se ti bastano otto colonne di led, allora hai 
bisogno din un mux analogico a 8 linee e un mux digitale a 8 linee + un 3915 
+ un contatore 3 bit (che sarebbe un 4 bit).
Sono stato sufficientemente confuso? :))
Emiliano. 


sii molto confuso,hai qualche nome di intergrato cosi cerco un poin
giro ?


www.ti.com
 cerca nella sezione dedicata ai chip logici, per fartene un'idea
a memoria multiplexer-demultiplexer analogici sono :
'4067
'405x
dal mio punto di vista ha poco senso chiedere sigle di componenti 'standard'
ultima cosa, probabilmente una soluzione piu' economica si puo' 
realizzare con un micro della serie pic18 a 40 pin ed il banco di filtri 
analogici visto che il micro integra:
il convertitore ADC ( 10 bit ) con il multiplexer d'ingresso ed 
abbastanza piedini per pilotare le barre a led ( diciamo che ti servono 
N+M pin per pilotare N colonne ad M led senza componenti aggiunti )
il software poi permetterebbe la scansione ciclica degli ingressi  e la 
visualizzazione sulle barre a led.
questo riduce enormemente la complessita' del progetto ( e le dimensioni 
dello stampato )
ti allego qui sotto uno schema di principio del circuito ( attento ai 
wrap delle linee lunghe
[FIDOCAD ]
LI 25 40 40 40
LI 40 40 40 50
LI 40 50 25 50
LI 25 50 25 40
LI 25 65 40 65
LI 40 65 40 75
LI 40 75 25 75
LI 25 75 25 65
LI 25 115 40 115
LI 40 115 40 125
LI 40 125 25 125
LI 25 125 25 115
LI 25 45 20 45
LI 20 45 20 70
LI 20 70 25 70
LI 20 70 20 95
LI 20 105 20 120
LI 20 120 25 120
LI 40 45 55 45
LI 40 70 55 70
LI 40 120 55 120
LI 20 45 5 45
TY 55 35 5 3 0 0 0 * Mux analogico
TY 10 30 5 3 0 0 0 * Banco di filtri
TY 30 95 5 3 0 0 0 * +++
RV 90 55 100 105
PL 100 80 125 80 4
TY 90 50 5 3 0 0 0 * 3915
PL 45 170 70 170 4
PL 70 170 105 170 4
RV 105 155 120 190
TY 100 150 5 3 0 0 0 * Decodifica
RV 125 70 135 90
RV 145 70 155 90
RV 195 70 205 90
TY 165 80 5 3 0 0 0 * +++
LI 130 90 130 160
LI 130 160 120 160
LI 120 165 125 165
LI 125 165 150 165
LI 150 165 150 90
LI 200 90 200 185
LI 200 185 120 185
SA 140 80
PL 135 80 145 80 4
PL 155 80 160 80 4
PL 180 80 195 80 4
PL 65 170 65 125 4
RV 55 40 75 125
LI 75 80 90 80
TY 130 60 5 3 0 0 0 * Display ( barre di led )
TY 210 20 5 3 0 0 0 * Note:
TY 210 35 5 3 0 0 0 * per N sottocanali, il mux e la decodifica devono 
essere a N canali
TY 210 45 5 3 0 0 0 * il contatore deve avere un numero di bit pari a 
log2(N)
TY 210 55 5 3 0 0 0 * chiaramente se N e' una potenza di 2 tutto si 
semplifica
TY 210 65 5 3 0 0 0 * la decodifica DEVE includere anche il circuito di 
pilotaggio dei led
TY 210 75 5 3 0 0 0 * nel caso il pilotaggio va realizzato con dei 
transistor aggiuntivi ( PNP ??? )
TY 5 160 5 3 0 0 0 * Clock
LI 30 170 5 170
RV 30 155 45 185
TY 25 150 5 3 0 0 0 * Contatore
TY 210 85 5 3 0 0 0 * questo e' comunque uno schema a blocchi e di principio
TY 210 95 5 3 0 0 0 * probabilmente sono necessarie alcune modifiche per 
renderlo effettivamente funzionante

ok.mi piace molto l' idea del pic pero ce un problemino, non ho la
minama idea di come funziona1

nel schema di fidocad che ai fatto al posto del decodificatore posso
anche mettere un mux al contrario?

 
in linea di principio puo' essere fatto , ma visto la disponibilita' 
delle decodifiche ( 74hc138 e similari), il costo che dovrebbe essere 
inferiore, ed il fatto che sarebbe una soluzione  un po' border-line e' 
piu' semplice usare una decodifica ( decoder )standard.
tieni conto che di multiplexer ne esistono di due tipi quelli analogici 
e quelli digitali tu devi usarne uno di quelli analogici.
non prendere di default le sigle che ti ho propinato , verifica che 
vadano bene nel circuito che stai mettendo su.

 ha scritto nel messaggio 
news:1160831241....@m73g2000cwd.googlegroups.com...

penso che il metodo da te proposto sia la soluzione più semplice
e di minor peso economico.
a meno che non ti compri un pic e fai una FFT su di un segnale d'ingresso...
se sai programmare bene la fai,
poi bisogna vedere se a 20MHz riesci ad avere una buona FFT.
poi il pic dovrebbe comunque pilotare parecchi led e barre quindi ti
trovi da campo a comprare integrati per aumentare gli output digitali.
(con un pic arrivi ad una decina e rotti di pin out digitali...)

ok.grazie  dei sugerimenti, appena ho un po di tempo provo con il
metodo datami da mmm e poi vi dirò come  e venuto!
ciao

si è un'alternativa valida :-)

sai dove posso rovare una guida per inizziare la mia lungha strada con
i pic?


prova a cercare su google,
comunque se sai programmare non è difficile anzi.
magari inizia con il basic per pic se non sai programmare.

 poi bisogna vedere se a 20MHz riesci ad avere una buona FFT.
40 mhz, 10 + 4xPLL, equivalenti a 10mips. Con il loro moltiplicatore hw č 
piů che suffiěciente (anche perchč vorrei sapere quanto buona pensi che 
debba essere una FFT per un vu-meter che ha un refresh di decine di ms....)
-- 
simone.bern
Mr. Heisemberg is not the only one who can affect a measurement by looking 
at it (Robert A. Pease)
zsimone...@zliberoz.it
 (Rimuovere i caratteri di zorro per rispondere 
via mail)

 (con un pic arrivi ad una decina e rotti di pin out digitali...)
navigare per 
www.microchip.com
ci sono pic in DIP40 da oltre 30 pin di I/O, senza parlare dei TQFP. In ogni 
caso come ha già spiegato mmm, si multiplexano le uscite, bastano N + M pin, 
dove N è il numero di colonne e M il numero di led per colonna, quindi, per 
8 colonne da 10 led, bastano 18 pin, senza integrati aggiuntivi. Ne trovi a 
scatafascio di pic18f così.

 ha scritto nel messaggio 
news:eh0n9n$juf$1...@emma.aioe.org...

prima di tutto non ho commesso errori nelle cose che ho detto quindi abbassa 
il tono con cui scrivi.
secondariamente le cose che dici sono abbastanza banali come il fatto di 
multiplexare le uscite,
cosa pensavi non lo sapessi, lui voleva una cosa semplice con pochi 
integrati e non so neppure quanti
led volesse pilotare. ho parlato in generale quindi se volevi aggiungere 
qualcosa ok,
ma se questo vuole essere il post del piccolo sapientino hai sbagliato di 
grosso.
questa arroganza nei NG č un vero schifo

 questa arroganza nei NG è un vero schifo
sono d'accordo, chissà dove andremo a finire...
1) 20Mhz sono 'una' delle scelte con i Pic18, non la massima velocità, 
diversamente da come suggeriva la tua frase
2) parlare di MHz con i Pic è fuorviante, visto che
    a) le singole istruzioni richiedono 4 cicli di clock.
    b) su molti pic c'è l'opzione di attivare il PLL interno.
Meglio parlare di MIPS.
3) hai risposto senza leggere i precedenti messaggi, come ti ho ricordato, 
sostenendo che fosse necessario hardware aggiuntivo per pilotare i led, a 
causa del pinout limitato, e questo, semplicemente, non è corretto. Poco 
male, dico...


 male, dico...
ma se non so a priori quanti led bisogna pilotare , è naturale che si può 
fare multiplexing... ma c'è un limite anche in questo.
non hai afferrato il senso del mio post precedente,
il problema è che tu credi che io abbia falsato chissà cosa...
a me non sembra, ho solo dato una risposta molto generica ma che faceva 
intravedere
una strada totalmente diversa per poter risolvere il problema e cioè 
utilizzare un unico integrato.
poi riguardo allo studio di fattibilità andrebbero specificati altri 
parametri come il refresh a cui vuole fare le bande etc...
che non sono stati specificati.
che vuoi che ti dica sapientino se volevi aggiungere qualcosa non vi era 
bisogno di arroganza.
potevi scrivere le stesse cose senza presumere che io non ne fossi a 
conoscenza.
Visto che sapevo benissimo tutto cio che hai scritto.
e visto che hai preso un bel granchio.


""
saluti


 generalmente, leggendo i messaggi a cui si intende rispondere:
se scrivi da molto tempo sui NG dovresti aver imparato che non si giudicano 
risposte generali.
impara ad usare meglio questo mezzo di comunicazione al posto che fare 
lezioni a tempo perso.
invece ti soffermi su delle cose non essenziali. puntini sulle i...


poroviamo a studiare un po' soluzioni alternative
diciamo che vogliamo fare 8 canali ( frequenze ) con 10 livelli ( 
l'lm3915 a memoria usa 10 led per 10 livelli )
cosa ci serve :
1) caso tutto discreto
0) matrice di led ( 80 led )
a) banco di 8 filtri / rivelatori di picco fatti ad operazionali
b) un mux analogico 8->1
c) lm3915
d) contatore a 3 bit
e) decodifica 3->8
f) oscillatore ( '555 o 4011 o ... ) con rete RC
g) eventuali transistor di pilotaggio delle colonne di led ( abbinati 
alla decodifica )
h) un po' ( abbastanza ) spazio sul pcb ( anche millefori la situazione 
  non cambia molto )
2) caso tutto digitale :
a) un micro con ADC 1 canale 10 bit e 8+10 uscite digitali l'ADC deve 
essere in grado di campionare almeno al doppio della max frequenza da 
visualizzare ( +- e' solo un bel vu-meter )
b) un po' di capacita' di programmare algoritmi numerici ( la famigerata 
FFT che pero' non morde mica )
da testare la possibilita' di accendere un solo led per volta in modo da 
eliminare del tutto altrimentoi bisogna aggiungere:
c) 8 e/o 10 transistor NPN/PNP per pilotare i led
d) pcb minimale
2) una soluzione ibrida : ( filtraggio analogico + ADC e driver LED con 
micro )
a) banco di filtri
b) un micro con 8 ingressi analogici e 8+10 uscite digitali, questa 
volta l'ADC puo' essere MOLTO piu' lento in quanto non si deve fare piu' 
la FFT ma le conversioni sono agganciate al refresh del "display"
c) 8 e/o 10 transistor NPN/PNP per pilotare i led
d) pcb intermedio ( ci sono i filtri )
nota bene:
nel caso della soluzione con micro e' possibile aggiungere alcune 
feature interessanti come la visualizzazione separata dell'ultimo picco 
avuto ( c'era un progetto di NE che lo faceva con il 3915 ed un po di 
barbatrucchi ) a costo zero ( e' solo una questione di software ).
vantaggi e svantaggi :
la versione analogica e' meglio espandibile nel numero di frequenze 
visualizzate , scala infatti in maniera proporzionale
la versione digitale pur usando ADC a 10 bit puo' mostrare un undicesimo 
  livello ( diciamo di overrange ) ( richiede una uscita in piu' )
studiamo ora un pic di riferimento ( finora il micro non era stato scelto ):
pic18f4620 ultima generazione, supportato da programmatori free , bello 
prestante e quindi eventualmentre riciclabile anche altri progetti.
40 pin dip , niente patemi d'animo per la saldatura
e' disponibile gratuito un compilatore C ed un sistema di sviluppo 
integrato ( ide - assemblatore - C - simulatore )
adc 10 bit - 13 ingressi
36 pin d'input output ( digitali e/o analogici )
tanta flash e ram ( anche troppa per il nostro progetto ma il futuro .... )
a noi servono 8+1+8+11  = 28 pin
8 ingressi analogici
1 ingresso vref
8 uscite per pilotare le colonne
11 usite per pilotare le righe
nel limite degli ingressi analogici c'e' spazio per aggiungere quelache 
altra frequenza ( diciamo fino a 12 ci si dovrebbe fare )
all'OP la valutazione delle preferenze personali e la scelta finale, 
diciamo che io sono propenso per l'ultima soluzione , buon compromesso 
tra semplicita' di programmazione e dimensione del circuito
P.S. nulla ti vieta di costruirne piu' di uno !!!

wow che disasto, e come parlare di agricoltura ad un comercialista.
comunque sarei propenso per il caso 2 ibrido;pero non ho ben capito
alqune cose tipo:
 " a) un micro con ADC 1 canale 10 bit e 8+10 uscite digitali  "
cosa intendi con ADC 1 canale
cosa intendi con 8+10 uscite
," scala infatti in maniera proporzionale"
cosa intendi con scala in maniera proporzionale
" la versione digitale pur usando ADC a 10 bit puo' mostrare un
undicesimo
  livello ( diciamo di overrange ) ( richiede una uscita in piu' )
cosa intendi con puo mostrare un undicesimo livello
 "a noi servono 8+1+8+11  = 28 pin
 
 11 uscite per pilotare le righe"
 
perche undici uscite e non 8

un altra cosa, ho visto sul datasheet che i pin 4 e 5 sono adibiti come
ingresso analogico, ma anche come voltaggio di riferimento per il
converter  A/D.
perqui nel caso io volessi usare questi pin come entrata non avrei piu
il voltaggio di  riferimento scendendo a 11 input analogici .
giusto?

 

dovrebbe essere possibile usare la tensione di alimentazione al pic come 
riferimento rendendo disponibili tutti gli ingressi ancora una volta 
RTFM attentamente :-)

ok,ci sono.
un ultima cosa cose RTFM?

 un ultima cosa cose RTFM?
ahhhhh!!
niente  niente o capito anche quello!


era un simpatico invito a leggere con attenzione sia i datasheet degli 
integrati che le applicazion note che spesso i produttori dei componenti 
mettono a disposizione.
appena si supera l'applicazione canonica del componente e' importante 
leggerli ( i datasheet ) per capire i dettagli di funzionamento 
dell'integrato.

mmm ha scritto:

e qui inizzia la parte bella : programmazzione del pic!
Speriamo bene

ciao, mi servirebbe un altro aiuto,non riesco programmare il pic cioe
non so cosa dirgli, sto studiando una guida in cui spiegano come far
lampeggiar un led,ma non riesco ad trovare una logica nella
programmazione.percui se qualquno mi mettesse una bozza del programmino
ne sarei molto grato( mi basta poca roba,giusto per capire la logica)


servono un po' di dettagli in piu' su cosa vuoi usare.
installati MPLAB ed il compilatore C per pic18 della microchip ( 
gratuito , sul loro sito )
installa tutto e programma in C, MPLAB contiene un simulatore e ti 
permette di provare anche i programmi in C col passo passo.
facci caso che dall'inizio ho velatamente consigliato micro della 
famiglia 18
se non sei particolarmente avvezzo alla programmazione embedded e vuoi 
partire in maniera piu' soft ho un consiglio diverso e forse piu' 
estremo : procurati un vecchio PC ( 386 486 ) magari un portatile e ci 
installi un compilatore C gratuito ( borland GNU ... ) e cominci a 
programmare su quella piattaforma. la porta parallela di fornisce un po' 
di pin di I/O hai almeno una seriale a disposizione e lavori senza 
patemi d'animo

ok,ho trovato MPLAB ma noon trovo il programmatore in C

 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011
comunque e' il link "Development Tools" e poi "MPLAB C18 Compiler" , 
devi poi scaricare la versione "Student" con i manuali