Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

STM32 PWM in quadratura

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] STM32 PWM in quadratura

Messaggioda Foto UtenteHad3s » 3 giu 2025, 10:36

Buongiorno, qualcuno più esperto di me saprebbe dirmi se c'è un modo di ottenere due segnali PWM in quadratura in uscita da due pin di un chip stm?
Sto usando una scheda nucleo-f401re.
Avatar utente
Foto UtenteHad3s
35 5
New entry
New entry
 
Messaggi: 67
Iscritto il: 20 ago 2021, 11:50

0
voti

[2] Re: stm32 PWM in quadratura

Messaggioda Foto UtenteEcoTan » 3 giu 2025, 12:58

Premesso che di stm32 non so nulla, noto che parli di segnali PWM in quadratura, non in controfase, pertanto suppongo che il segnale abbia un suo andamento periodico (che non c'entra con la frequenza del PWM essendo necessariamente più lento di quella).
In generale occorre spezzare il periodo in 4 parti, o quadranti, successivi:
Quadrante 1 - massimo del segnale 1
Quadrante 2 - massimo del segnale 2
Quadrante 3 - minimo del segnale 1
Quadrante 4 -minimo del segnale 2
Scambiando min-max di un segnale cambia il verso di rotazione.
Queste operazioni, che io sappia, vanno affidate al firmware.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5420
Iscritto il: 29 gen 2014, 8:54

0
voti

[3] Re: stm32 PWM in quadratura

Messaggioda Foto Utentegill90 » 3 giu 2025, 17:24

So che la famiglia F334 ha la possibilità di usare sia un HRTIMER (DPWM ad altissima risoluzione, intorno ai 200ps), sia timer advanced/general purpose con una funzione dedicata chiamata "combined PWM" che fa esattamente quello che cerchi tu (un PWM allineato con l'inizio, l'altro che si attiva dopo un delay fisso).

Purtroppo leggendo il datasheet del tuo modello mi pare che questa funzione non ci sia, per cui direi che la soluzione più immediata è quella di usare un timer come master che genera un trigger (ad es. TRGO) quando raggiunge un certo livello (nel tuo caso, un output compare posto a 1/4 del tuo periodo), e un altro timer in modalità slave che si resetta quando sopraggiunge il TRGO, così da sincronizzarsi dove ti serve.

Posso chiederti a cosa ti serve e che risoluzione richiedi?
Avatar utente
Foto Utentegill90
4.146 3 7 12
G.Master EY
G.Master EY
 
Messaggi: 1134
Iscritto il: 1 set 2011, 16:18

0
voti

[4] Re: stm32 PWM in quadratura

Messaggioda Foto UtenteHad3s » 3 giu 2025, 18:08

gill90 ha scritto:
Posso chiederti a cosa ti serve e che risoluzione richiedi?


è un caso studio di fattibilità per verificare quanto si può andare veloci con questo micro, in teoria il passo successivo è usarlo con un encoder ad alta risoluzione che usa segnali in quadratura.
Lo scopo per il momento è proprio verificare la risoluzione massima ottenibile con questo.
Avatar utente
Foto UtenteHad3s
35 5
New entry
New entry
 
Messaggi: 67
Iscritto il: 20 ago 2021, 11:50

0
voti

[5] Re: stm32 PWM in quadratura

Messaggioda Foto UtenteMarcoD » 3 giu 2025, 19:30

è un caso studio di fattibilità per verificare quanto si può andare veloci con questo micro, ...
Lo scopo per il momento è proprio verificare la risoluzione massima ottenibile con questo.

Sono poco competente, e forse la mia terminologia è obsoleta, ma cosa ti aspetti?
Due segnali in quadratura di frequenza
1 MHz, 100 kHz oppure 10 kHz ?

con quali dissimmetrie (jitter ? ) di sfasamento?

Con una risoluzione nella variazione di frequenza di 1 kHz o 10 kHz?
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[6] Re: stm32 PWM in quadratura

Messaggioda Foto Utenteluxinterior » 3 giu 2025, 19:47

In effetti non è molto chiaro cosa chiedi
prima chiedi come generare due PWM in quadratura
poi parli di encoder
Non ho capito se vuoi leggere un encoder o generare due PWM.

LSTM32 ha timer molto sofisticati sicuramente c'è il modo per gestire le PWM Probabilmente esiste qualche appnoe da cui trarre ispirazione
La lettura encoder può avvenire con interfaccia dedicata su alcuni delgi Nmila STM32 bisogna verificare se il 401 può farlo.

Se cerchi encoder ad altar sioluzione (finoa 24bit) non sono encoder con i classici segnali ABZ ma hanno un interfaccia SSI che NON è SPI.

Perdi un paio di minuti per descrivere bene cosa ti serve pi qualcuno che ti aiuta si trova.
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

0
voti

[7] Re: stm32 PWM in quadratura

Messaggioda Foto UtenteHad3s » 4 giu 2025, 11:45

Mi scuso poiché sono stato poco chiaro, in effetti la questione è un poco confusa di per sé, questa cosa che sto facendo col PWM è solo un esercizio nell'attesa che arrivi l'encoder...

ringrazio comunque tutti per l'attenzione e gli spunti, mi sono messo a fare dei tentativi vediamo che esce fuori..
Avatar utente
Foto UtenteHad3s
35 5
New entry
New entry
 
Messaggi: 67
Iscritto il: 20 ago 2021, 11:50

0
voti

[8] Re: stm32 PWM in quadratura

Messaggioda Foto UtenteMarcoD » 4 giu 2025, 11:56

questa cosa che sto facendo col PWM è solo un esercizio nell'attesa che arrivi l'encoder...

Quindi stai realizzando un simulatore di un encoder, presumo per collaudare il circuito/software di lettura/decodifica dei segnali generati dall'encoder fisico.
E' una cosa buona e giusta =D>
Io, che non saprei come farlo bene, lo farei con uno sketch arduino, eseguendo un loop con periodicità 1 ms, con due pulsanti "+" e "-" comando aumenta/diminuisci della frequenza.
Quando la frequenza passa per lo zero (l'encoder simulato si ferma e inverte il moto) lo sfasamento fra i due segnali inverte polarità.
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[9] Re: STM32 PWM in quadratura

Messaggioda Foto UtenteEcoTan » 4 giu 2025, 12:22

Per fare un esempio (a me noto), le MCU dsPic33 tipo MC hanno un modulo denominato QEI per encoder in quadratura che fornisce direttamente in un registro la posizione decodificata. Si può fare anche a software usando i normali ingressi digitali ma non è tanto semplice e finisce per consumare più risorse.

P.S. se poi parliamo di velocità, penso che il modulo hardware sia imbattibile
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5420
Iscritto il: 29 gen 2014, 8:54

2
voti

[10] Re: STM32 PWM in quadratura

Messaggioda Foto Utenteluxinterior » 4 giu 2025, 16:23

Simulare un encoder è cosa buona e giusta.
Spesso la macchina con l'encoder fisico è ferma per qualche intervento meccanico opoure in fase di collaudo puoi collaudare automazione senza avere la macchina a disposizione, o dover "accrocchiare" qualcosa per far girare un encoder

I segnali encoder non sono PWM (che è frequenza fissa e duty cycle variabile) Il segnale encoder varia in frequenza mantenendo il segnale sempre 50%periodo alto e 50% del periodo basso. Quindi se tu vuoi simulare l'encoder con i timer STM32 devi variare il clock o il preset che divide il clock dei timer non il set del Timer
So che non è chiaro per esempio
tu imposti li timer set a 100 ogni volta che il timer conta 100 commuta un pin. Se cambi la frequenza del timer arriva a 100 più rapidamente e vedi le commutazioni più veloci ma sempre 50% alto e 50% basso.
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti