Pregunta teórica del reloj

8

Solo una pregunta teórica más que nada. ¿La señal del reloj debe tener el mismo ancho entre las miradas y los canales?

Una señal de reloj normal con datos (abajo):

Unaseñalderelojaleatoriacondatos(losdatosaúnestánsincronizadosconelreloj)(abajo):

¿El chip (cualquier chip en general, pero como ejemplo, una serie en paralelo fuera de registro de desplazamiento) seguiría comportándose normalmente con un reloj más aleatorio? Si no, ¿por qué no?

Nuevamente, no es que esté planeando hacer esto, pero en teoría, ¿hay alguna razón por la que no pueda usar un pin de salida estándar en la Raspberry Pi / Arduino como reloj y otro pin como datos?

Ejemplo de pseudo código:

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
    
pregunta vimist

3 respuestas

12

Su señal de reloj es de activación de borde, en sus ejemplos en el borde positivo. Se puede saber porque los datos tienen que ser estables un poco antes del límite del reloj ( tiempo de configuración ), y si el reloj se enganchara en el flanco descendente coincidiría con el cambio de sus datos.

Excepto por el tiempo de configuración, hay pocas restricciones: el reloj puede permanecer alto todo el tiempo que quiera. Sin embargo, deberá tener un tiempo mínimo mínimo antes del siguiente flanco ascendente.

    
respondido por el radagast
7

Un chip se comportará normalmente siempre que lo opere dentro de los 'parámetros de operación normal' como se especifica en la hoja de datos. La mayoría de los chips solo tienen requisitos sobre el tiempo mínimo entre los bordes del reloj y el tiempo de configuración (datos estables al borde del reloj activo). Tampoco se violan al estirar el reloj.

En la práctica, una señal de reloj generada por software siempre tendrá grandes variaciones en el tiempo. El punto importante es que no haces las cosas demasiado rápido para el chip externo. Pero la sincronización de un registro de desplazamiento típico se expresa en decenas de ns, que es unas órdenes más rápidas que el 1 ms que observa.

    
respondido por el Wouter van Ooijen
1

A un chip simple con un "pin de reloj" no le importa cuando llega el borde del reloj, solo que sí. Incluso, los pulsos isócronos son más beneficiosos para el software o hardware más complejo, por ejemplo. Dispositivos basados en PLL.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas