2 segnali PWM con DC diversi
se non hai modo di toccare la MCU direi che sia meglio gestire l'encoder con intrruzioni e dedicare i PWM al motore. Dai collegamenti con la MCU dovresti capire se questa era la scelta del progetto originale.
Per la frequenza, non ho fatto i calcoli ma 300Hz sono una frequenza bassa, per cui non mi sorprende che debba abbassare la frequenza del clock. Potresti usare il pre-scaler, ma dovresti vedere qual'è il valore minimo.
Considera che per frequenze basse la risoluzione effettiva del PWM peggiora (trovi le formule sul datasheet).
A frequenze alte i driver potrebbero non funzionare bene e il motore potrebbe dissipare più energia scaldandosi.
Ciononostante le tue frequenze in gioco non sono alte. Per alte direi piuù dell'ordine di 50-100KHz.
A seconda del tipo di controllo che vuoi avere, 4MHz potrebbero o meno bastare, ma dovrai fare qualche compromesso.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
se non hai modo di toccare la MCU direi che sia meglio gestire l'encoder con intrruzioni e dedicare i PWM al motore. Dai collegamenti con la MCU dovresti capire se questa era la scelta del progetto originale.
non vorrei rifare il tutto, e dallo schema originale l'encoder e' collegato al ccp2a del pic quindi credo che venga utilizzato il capture per l'encoder.
Per la frequenza, non ho fatto i calcoli ma 300Hz sono una frequenza bassa, per cui non mi sorprende che debba abbassare la frequenza del clock. Potresti usare il pre-scaler, ma dovresti vedere qual'è il valore minimo.
fatto un po' di calcoli ed effettivamente per avere un PWM a 300 Hz bisogna utilizzare per forza una frequenza di clock di 4MHz o meno...
ho analizzato meglio il tracciato originale e ho notato un piccolo sfasamento tra l'inizio dei due segnali pwm dell'ordine di 62,5 nS questo mi porta a pensare che il progetto originale usa un clock di 64MHz e quindi un periodo di 15.625 nS, considerando che una istruzione impiega 4 "colpi" di clock (15.625x4=62.5).. se questo e' vero il pwm generato deve per forza essere generato via software.
Sperando che il mio ragionamento non sia del tutto sballato,
Saluto, Ringrazio e programmo...
Carlo
Carlo Incoronato
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Inco
- Autore della discussione
- New Member
- Messaggi: 8
- Ringraziamenti ricevuti 0
Se l'encoder è collegato sul pin RB3 potrebbe far uso delle interruzioni.
CCP2 è anche su RC1.
La configurazione avviene con i configuration registers.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Inco
- Autore della discussione
- New Member
- Messaggi: 8
- Ringraziamenti ricevuti 0
Si prega Accedi o Crea un account a partecipare alla conversazione.
- firstcolle
- Platinum Member
- Messaggi: 362
- Ringraziamenti ricevuti 39
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.