Domanda:
3 Hz dal cristallo di un orologio
Padu Merloti
2014-08-09 09:24:08 UTC
view on stackexchange narkive permalink

Ho un motore passo-passo con angolo di passo di 2 gradi. Voglio visualizzare i secondi usando un ago collegato a questo stepper.

Il cristallo dell'orologio si divide bene per produrre impulsi di 1Hz, quindi ogni secondo posso comandare allo stepper di ruotare di 3 impulsi CW (360 gradi / 60 secondi = 6 gradi al secondo. Poiché lo stepper va di 2 gradi per passo, ho bisogno di 3 di tali impulsi).

Ora supponiamo che io voglia usare ogni passo per visualizzare i secondi in modo più fluido. Avrei bisogno di azionare il motore ogni 1/3 di secondo, o a 3 Hz.

Sto cercando di scoprire qual è il modo migliore per farlo.

Un ovvio il trucco è usare una frequenza più alta (sto usando 64Hz) e tollerare un po 'di jitter. C'è un altro modo che mi dia l'esatto 3Hz su 32,768kHz? (anche sapendo che uno non è divisibile per l'altro?)

A proposito, sto usando un MSP430, ma questo problema potrebbe essere portato su qualsiasi altra piattaforma.

PLL e un divisore di frequenza.
E se si utilizzassero tre cristalli da 1Hz, ciascuno spostato di 1/3 di fase?
Sette risposte:
placeholder
2014-08-09 10:20:32 UTC
view on stackexchange narkive permalink

Potresti fare un rapporto di trasmissione 3: 1 e fare il divisore a 32768.

32768 = 10.923 + 10.923 + 10.922 che indica una macchina a stati che prima conta fino a 10.923 ripetizioni e poi rilascia un conteggio, sarebbe accurato ogni 3 secondi. Il peggior errore assoluto che vedresti è 31 PPM che riguarda ciò che il cristallo può fare (a seconda del tuo cristallo).

Andy aka
2014-08-09 12:46:48 UTC
view on stackexchange narkive permalink

Prendi l'onda quadra da 32.768 Hz e alimentala attraverso un filtro passa banda da 98 kHz per lasciare (principalmente) la sua terza armonica - questo è abbastanza banale. Ora hai 3 volte 32.768 Hz che puoi dividere con il circuito precedente che hai usato per ottenere 3 Hz.

Chris Stratton
2014-08-10 01:04:45 UTC
view on stackexchange narkive permalink

È vero che 32768 Hz non divide per 3 Hz, ma non è di molto.

Serve una soluzione che appaia visivamente fluida e accurata in media nel tempo .

Crea semplicemente una logica che:

Conta 10923 clock di ingresso e fa un passo
Conta 10923 clock di ingresso e fa un passo Conta 10922 clock di input e fa un passo

e si ripete.

Avresti bisogno di strumentazione o di un esperimento sensibile per determinare che ogni terzo impulso è. 009% più corto.

user51012
2014-08-09 17:06:43 UTC
view on stackexchange narkive permalink

La soluzione digitale è prendere qualcosa come un accumulatore a 8 bit e aggiungervi 3 ogni 128 impulsi. Ogni volta che trasporta, azionare il motore. Il jitter risultante non sarà evidente e annullerà a lungo termine. Un accumulatore più lungo (e di conseguenza un pre-divisore più corto) ridurrà il jitter, uno più corto lo aumenterà. Probabilmente puoi passare a un accumulatore a quattro bit (e predivisione entro il 2048) senza molta differenza distinguibile: quindi interpolerebbe prendendo 5 orologi da portare in 2 su 3 casi e 6 orologi da portare in 1 su 3 3 casi.

Bruce Abbott
2014-08-09 11:20:45 UTC
view on stackexchange narkive permalink

Attendi l'impulso di 1 secondo ed esegui il primo passaggio, quindi ritarda di 333 ms prima di eseguire ciascuno degli altri due passaggi. potresti non ottenere esattamente passi uguali, ma dovrebbe essere abbastanza vicino da non notare la differenza (e la frequenza media sarà esattamente 3Hz).

Spehro Pefhany
2014-08-09 22:19:01 UTC
view on stackexchange narkive permalink

Lo stepper si muove a passi discreti ogni volta che cambi lo stato delle bobine, quindi una certa quantità di "nervosismo" è inevitabile se guidi lo stepper in quel modo.

Se micro-passi il motore puoi ottenere un gran numero di passi per giro, evita essenzialmente del tutto il nervosismo (ci sarà una certa non linearità di movimento, ma dovrebbe essere impercettibile a meno che il tuo ago non sia molto, molto lungo) e ottieni un movimento scorrevole dell'ago (un Santo Graal tra alcuni appassionati di orologi). Eviterebbe anche qualsiasi vibrazione da smorzamento insufficiente.

Se vuoi restare con i 2 ° passi, puoi aggiungere 0x0C a un registro a 8 bit a 64Hz e far girare il motore ogni volta ottieni un riporto.

Ecco come appare il jitter: meno di +/- 8 millisecondi, che non sarà visibile:

Time = 0.328125 delta = 0.328125Time = 0.656250 delta = 0.328125Time = 0.984375 delta = 0.328125Time = 1.328125 delta = 0.343750Time = 1.656250 delta = 0.328125Time = 1.984375 delta = 0.328125Time = 2.328125 delta = 0.343750Time = 2.656250 delta5 = 0.328125Time = 0.328125 delta37 Tempo = 3.656250 delta = 0.328125Time = 3.984375 delta = 0.328125Time = 4.328125 delta = 0.343750Time = 4.656250 delta = 0.328125Time = 4.984375 delta = 0.328125Time = 5.328125 delta = 0.343750Time = 5.656250 delta5 = 0.328125 6.328125 delta = 0.343750Time = 6.656250 delta = 0.328125Time = 6.984375 delta = 0.328125Time = 7.328125 delta = 0.343750Time = 7.656250 delta = 0.328125Time = 7.984375 delta = 0.328125Time = 8.328125 delta = 0.343750Time = 8.656250 delta = 0.328125Time = 8.984375 delta = 0.328125Time = 9.328125 delta = 0.343750 Time = 9.656250 delta = 0.328125Time = 9.984375 delta = 0.328125Time = 10.328125 delta = 0.343750Time = 10.656250 delta = 0.328125Time = 10.984375 delta = 0.328125Time = 11.328125 delta = 0.343750Time = 11.6562125 delta5 12.328125 delta = 0.343750Time = 12.656250 delta = 0.328125Time = 12.984375 delta = 0.328125Time = 13.328125 delta = 0.343750Time = 13.656250 delta = 0.328125Time = 13.984375 delta = 0.328125Time = 14.328125 delta5 delta5 = 0.34.650 delta51450 delta5 = 0.328125Time = 15.328125 delta = 0.343750Time = 15.656250 delta = 0.328125Time = 15.984375 delta = 0.328125

Lo stesso metodo potrebbe essere utilizzato per controllare un motore micro-passo, solo con passaggi più fini come 2 ° / 16.

EM Fields
2014-08-10 12:37:18 UTC
view on stackexchange narkive permalink

Per quelli di voi che amano l'hardware, di seguito è riportato uno schema della soluzione del contatore a doppio modulo del segnaposto, ma senza il possibile errore di 31PPM.

Se si desidera giocare con il circuito, l'elenco dei circuiti di LTspice e i file di supporto sono qui.

Lo schema seguente mostra i preset per un clock a 32768Hz, mentre la versione LTspice ha il conteggio - e il tempo - ridotto drasticamente per mantenere il sim venga eseguito per sempre, ma per mostrare comunque il funzionamento del contatore a doppio modulo.

enter image description here



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...