Segnale Pseudo PWM
13 Anni 8 Mesi fa #1
da gcupini
Segnale Pseudo PWM è stato creato da gcupini
Ciao a tutti,
Segnale Pseudo PWM
Per azionare un Motore Brushless, il regolatore abbinato pretende, (ma le informazioni del data sheet sono scarse e confuse) una segnale di tipo PWM con Periodo 20mS (50Hz) e un Duty che può variare da 1 a 2 mS. Le notizie confuse riguardano il Periodo in quanto nelle info del regolatore c'è scritto “ciò che è importante non è il periodo esatto, ma il tempo durante il quale il segnale è alto, che deve variare da 1 a 2 ms” al fine di regolarne la velocità.
Qualcuno ha usato questi regolatori ? Cosa è importante ?
Io intendevo usare un PIC 16F88 ed il suo segnale PWM per governare il regolatore MA …..!!
Premesso che non posso abbassare la frequenza del clock interno a meno di 1 MHZ. Devo eseguire numerose operazioni e sarebbe meglio tenere la frequenza del clock di 4 MHZ. E che il massimo valore del (TMR2 Prescale Value) è 16.
SEGUE che:
Tpwm =[(PR2) + 1] • 4 •(TMR2 Prescale Value) •1/ FOSC
[(PR2) + 1] =FOSC•Tpwm /[4 •(TMR2 Prescale Value) ]=10^6 * 0,02 / (4*16)= 2*10^4/64 = 10000/32= 310
Ma PR2 a 8 bit contiene al massimo 255!!?
DEVO FARE UNA PROVA o DEVO RIPIEGARE su una seconda possibilità che mi viene in mente :
Usare due Timer con Interrupt : il primo alza il pin e il secondo lo abbassa calcolando i valori dei registri Timer per ottenere il giusto tempo?
Se avete idee da sottoporre saranno apprezzate!
Grazie in anticipo Giovanni.
Segnale Pseudo PWM
Per azionare un Motore Brushless, il regolatore abbinato pretende, (ma le informazioni del data sheet sono scarse e confuse) una segnale di tipo PWM con Periodo 20mS (50Hz) e un Duty che può variare da 1 a 2 mS. Le notizie confuse riguardano il Periodo in quanto nelle info del regolatore c'è scritto “ciò che è importante non è il periodo esatto, ma il tempo durante il quale il segnale è alto, che deve variare da 1 a 2 ms” al fine di regolarne la velocità.
Qualcuno ha usato questi regolatori ? Cosa è importante ?
Io intendevo usare un PIC 16F88 ed il suo segnale PWM per governare il regolatore MA …..!!
Premesso che non posso abbassare la frequenza del clock interno a meno di 1 MHZ. Devo eseguire numerose operazioni e sarebbe meglio tenere la frequenza del clock di 4 MHZ. E che il massimo valore del (TMR2 Prescale Value) è 16.
SEGUE che:
Tpwm =[(PR2) + 1] • 4 •(TMR2 Prescale Value) •1/ FOSC
[(PR2) + 1] =FOSC•Tpwm /[4 •(TMR2 Prescale Value) ]=10^6 * 0,02 / (4*16)= 2*10^4/64 = 10000/32= 310
Ma PR2 a 8 bit contiene al massimo 255!!?
DEVO FARE UNA PROVA o DEVO RIPIEGARE su una seconda possibilità che mi viene in mente :
Usare due Timer con Interrupt : il primo alza il pin e il secondo lo abbassa calcolando i valori dei registri Timer per ottenere il giusto tempo?
Se avete idee da sottoporre saranno apprezzate!
Grazie in anticipo Giovanni.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- gcupini
- Autore della discussione
- Visitatori
13 Anni 8 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Segnale Pseudo PWM
Ciao Giovanni,
quando le frequenze in gioco sono troppo basse non si riesce ad utilizzare facilmente il modulo PWM integrato nei PIC a meno di non scendere molto in frequenza.
Il tuo problema è molto simile ai servo per modellismo in cui le tempistiche e frequenze in gioco sono le stesse.
In questi casi potresti utilizzare un semplice delay opportuno e ripetere in loop il tutto.
Questo approccio molto semplice blocca però la CPU sul loop e non riesci a fare molto altro.
Inoltre il PIC rimarrebbe sempre attiva.
La seconda soluzione più usata e che permette di utilizzare la CPU anche per altre applicazioni/calcoli è facendo uso di un Timer e delle interruzioni. Usando le interruzioni hai anche la possibilità di spegnere la CPU in attesa che il conteggio generi l'interrupt.
Sul seguente post trovi i Tool sviluppati da Gianni (SettoreZero) e da Spazzoli.
Strumenti per impostare i Timer del PIC
Saluti,
Mauro
quando le frequenze in gioco sono troppo basse non si riesce ad utilizzare facilmente il modulo PWM integrato nei PIC a meno di non scendere molto in frequenza.
Il tuo problema è molto simile ai servo per modellismo in cui le tempistiche e frequenze in gioco sono le stesse.
In questi casi potresti utilizzare un semplice delay opportuno e ripetere in loop il tutto.
Questo approccio molto semplice blocca però la CPU sul loop e non riesci a fare molto altro.
Inoltre il PIC rimarrebbe sempre attiva.
La seconda soluzione più usata e che permette di utilizzare la CPU anche per altre applicazioni/calcoli è facendo uso di un Timer e delle interruzioni. Usando le interruzioni hai anche la possibilità di spegnere la CPU in attesa che il conteggio generi l'interrupt.
Sul seguente post trovi i Tool sviluppati da Gianni (SettoreZero) e da Spazzoli.
Strumenti per impostare i Timer del PIC
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.