Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Suoni con PWM

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto UtenteIsidoroKZ, Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteDirtyDeeds, Foto UtenteBrunoValente

0
voti

[11] Re: Suoni con PWM

Messaggioda Foto Utentec1b8 » 27 lug 2013, 14:30

Senza abbassare il clock al PIC potresti ipotizzare di generare l'onda quadra senza modulo PWM ma attraverso software utilizzando il timer0 e l'interrupt dello stesso.
In questo modo dovresti avere tutto il tempo di fare anche il resto.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[12] Re: Suoni con PWM

Messaggioda Foto UtenteStefDrums » 27 lug 2013, 15:14

mhhh, però anche riprodurre un tono a 500 Hz significherebbe entrare in ISR ogni millisecondo. va beh, mi sa che mi accontenterò del PWM...
Avatar utente
Foto UtenteStefDrums
241 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 347
Iscritto il: 20 feb 2013, 14:15

0
voti

[13] Re: Suoni con PWM

Messaggioda Foto Utenteguidoi8311 » 21 mar 2014, 17:38

Salve io dovrei leggere un file wave da SD e riprodurlo la parte iniziale, quella di leggere il file, funziona grazie alle librerie del MikroC ora il problema e come riprodurlo? io ho fatto alcune prove con un wave campionato a 8KHz qualità telefonica quindi ho impostato il PWM a suddetta frequenza e i valori letti man mano li invio al Duty ma quello che si sente sono solo rumori alti.
il PIC che uso è un 18f2550 con clock a 20Mhz e compilatore MikroC l'uscita del PWM e collegata ad un amplificatore senza filtri
Ne sarei grato se qualcuno avesse suggerimenti
Avatar utente
Foto Utenteguidoi8311
0 2
New entry
New entry
 
Messaggi: 66
Iscritto il: 3 lug 2013, 11:51

0
voti

[14] Re: Suoni con PWM

Messaggioda Foto Utentec1b8 » 21 mar 2014, 17:44

In uscita al PWM è necessario un filtro passa basso, senza il filtro senti la frequenza del PWM direttamente in uscita all'amplificatore.
Il filtro dovrebbe avere una frequenza di taglio max di 4kHz se la frequenza di campionamento è 8kHz.
La frequenza del PWM deve essere non inferiore alla frequenza di campionamento, ma può essere (anzi meglio) più alta possibile.
Molto importante è che la frequenza con cui vari il duty cycle del PWM sia esattamente uguale alla frequenza di campionamento (nel tuo caso 8kHz).
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[15] Re: Suoni con PWM

Messaggioda Foto Utenteguidoi8311 » 21 mar 2014, 18:03

c1b8 ha scritto:In uscita al PWM è necessario un filtro passa basso, senza il filtro senti la frequenza del PWM direttamente in uscita all'amplificatore.
Il filtro dovrebbe avere una frequenza di taglio max di 4kHz se la frequenza di campionamento è 8kHz.
La frequenza del PWM deve essere non inferiore alla frequenza di campionamento, ma può essere (anzi meglio) più alta possibile.
Molto importante è che la frequenza con cui vari il duty cycle del PWM sia esattamente uguale alla frequenza di campionamento (nel tuo caso 8kHz).

Grazie per la risposta volevo chiederti un'altra cosa e come faccio a calcolare il tempo dopo il quale variare il duty cycle perché io ora come leggo il valore lo invio al duty
Avatar utente
Foto Utenteguidoi8311
0 2
New entry
New entry
 
Messaggi: 66
Iscritto il: 3 lug 2013, 11:51

0
voti

[16] Re: Suoni con PWM

Messaggioda Foto Utentec1b8 » 21 mar 2014, 18:19

Utilizzerei un interrupt: timer impostato per generare un interrupt ogni 125 micro-secondi.
Nella routine di interrupt cambi il duty cycle del PWM ed imposti un flag per dire al main di andare a leggere il prossimo valore.
Attenzione che una routine di interrupt richiamata ogni 125 us, per non impallare tutto, deve durare molto poco, quindi non leggere la SD nella routine.
Devi anche accertarti che le librerie che utilizzi per leggera il prossimo valore dalla SD non siano troppo lente: devono leggere il valore sicuramente in meno di 125us, sarebbe bene che lo facessero in al massimo 60us.
Questo però non saprei come rilevarlo.
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[17] Re: Suoni con PWM

Messaggioda Foto Utenteguidoi8311 » 22 mar 2014, 14:57

ok grazie per le risposte oggi metterò in pratica i tuoi suggerimenti e vi farò sapere :D
Avatar utente
Foto Utenteguidoi8311
0 2
New entry
New entry
 
Messaggi: 66
Iscritto il: 3 lug 2013, 11:51

0
voti

[18] Re: Suoni con PWM

Messaggioda Foto Utenteguidoi8311 » 4 apr 2014, 16:04

Sono di nuovo qui a chiedervi consigli :cry: ho fatto varie prove e sono riuscito a far riprodurre un file wave campionato a 8KHz ho impostato la frequenza del PWM a 16KHz ed un filtro passa basso a 4KHz ed il tutto funziona perfettamente.
Ora ho provato ad eseguire un file a 22KHz quindi ho impostato il PWM a 44KHz ed il filtro all'incirca la meta di 22Khz ma il file riprodotto si sente rallentato ho cambiato anche quarzo con uno da 40Mhz
ho provato anche a realizzare un buffer software dove mi pre carico circa 200 valori che succesivamente mando in riproduzione e quando questa sta al 50% inizio a riempirla di nuovo ma il risultato non cambia.
Secondo voi dove sbaglio
Avatar utente
Foto Utenteguidoi8311
0 2
New entry
New entry
 
Messaggi: 66
Iscritto il: 3 lug 2013, 11:51

0
voti

[19] Re: Suoni con PWM

Messaggioda Foto Utentec1b8 » 4 apr 2014, 16:52

Potrebbe essere che la lettura della scheda SD, con un PIC, non sia così veloce da consentirti un campionamento a 22kHz.
Hai provato a verificare quale sia il tempo che serve per leggere dalla SD?
Fabio
Avatar utente
Foto Utentec1b8
3.595 3 8 13
G.Master EY
G.Master EY
 
Messaggi: 1770
Iscritto il: 15 gen 2009, 15:23

0
voti

[20] Re: Suoni con PWM

Messaggioda Foto Utenteguidoi8311 » 4 apr 2014, 16:59

c1b8 ha scritto:Potrebbe essere che la lettura della scheda SD, con un PIC, non sia così veloce da consentirti un campionamento a 22kHz.
Hai provato a verificare quale sia il tempo che serve per leggere dalla SD?

eh come dovrei fare? le funzioni che sto utilizzando non le ho scritte io ma sono interne al linguaggio che sto usando MiKroC comunque di sicuro sono inferiori a 125us perché a a 8Khz funziona tutto alla perfezione
Avatar utente
Foto Utenteguidoi8311
0 2
New entry
New entry
 
Messaggi: 66
Iscritto il: 3 lug 2013, 11:51

PrecedenteProssimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Google [Bot] e 26 ospiti