Domanda teorica sull'orologio


8

Solo una domanda teorica più di ogni altra cosa. Il segnale dell'orologio deve avere la stessa larghezza tra sbirciate e trogoli?

Un normale segnale di clock con dati (sotto):

Orologio normale

Un segnale di clock casuale con dati (i dati sono ancora sincronizzati con l'orologio) (sotto):

Orologio casuale

Il chip (qualsiasi chip in generale, ma ad esempio un seriale in parallelo con registro a scorrimento in uscita) si comporterebbe normalmente con un clock più casuale? In caso contrario, perché no?

Ancora una volta, non sto pianificando di farlo, ma teoricamente c'è qualche ragione per cui non potrei usare un pin di uscita standard su Raspberry Pi / Arduino come orologio e un altro pin come dati?

Esempio di pseudo codice:

fakeClockPin = 1;
dataPin = 2;

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

Non tutti gli orologi sono simmetrici. Alcuni vecchi microprocessori necessitavano di un clock del 66% (se ricordo bene).
HL-SDK,

1
La tecnica descritta dal tuo pseudo-codice si chiama bit banging ed è una cosa perfettamente legittima da fare.
Phil Frost,

Risposte:


12

Il segnale del tuo orologio sta innescando il limite, nei tuoi esempi sul fronte positivo. Si può dire perché i dati devono essere stabili poco prima del limite dell'orologio ( tempo di impostazione ) e se l'orologio si bloccherebbe sul fronte di discesa coinciderebbe con la modifica dei dati.

Fatta eccezione per il tempo di installazione, ci sono alcuni vincoli: l'orologio può rimanere alto fino a quando lo desidera. Dovrai comunque avere un tempo minimo basso, prima del successivo fronte di salita.


7

Un chip si comporterà normalmente fintanto che lo farà funzionare entro i "parametri di funzionamento normale" come specificato nella scheda tecnica. La maggior parte dei chip richiede solo il tempo minimo tra i bordi dell'orologio e il tempo di configurazione (dati stabili al bordo dell'orologio attivo). Né vengono violati allungando l'orologio.

In pratica, un segnale di clock generato dal software avrà sempre grandi variazioni nei tempi. Il punto importante è che non fai le cose troppo velocemente per il chip esterno. Ma il tempismo di un tipico registro a scorrimento è espresso in 10 di ns, che è di alcuni ordini più veloce di 1 ms che si osserva.


1

Un semplice chip con un "perno dell'orologio" non importa quando arriva il bordo dell'orologio, solo che lo fa. Inoltre, gli impulsi isocroni sono più a vantaggio del software o di hardware più complesso, ad esempio dispositivi basati su PLL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.