8 votos

La pregunta del reloj teórico

Solo una pregunta teórica más que nada. ¿El señal del reloj tiene que tener el mismo ancho entre picos y valles?

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

Reloj Normal

Una señal de reloj aleatoria con datos (los datos siguen sincronizados con el reloj) (abajo):

Reloj Aleatorio

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

Nuevamente, no es que tenga planeado hacer esto, pero teóricamente, ¿hay alguna razón por la cual no podría usar un pin de salida estándar en el Raspberry Pi/Arduino como el reloj y otro pin como el dato?

Ejemplo de pseudocó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

0 votos

No todos los relojes son simétricos. Ciertos viejos microprocesadores necesitaban un reloj con ciclo de trabajo del 66% (si mal no recuerdo).

1 votos

La técnica descrita por tu pseudo-código se llama bit banging, y es algo perfectamente legítimo para hacer.

12voto

radagast Puntos 1363

Su señal de reloj es de flanco, en sus ejemplos en el flanco positivo. Puedes decirlo porque los datos tienen que estar estables un corto tiempo antes del flanco del reloj (tiempo de configuración), y si el reloj se activara en el flanco descendente coincidiría con el cambio de los datos.

Excepto por el tiempo de configuración, hay pocos restricciones: el reloj puede permanecer alto todo el tiempo que quiera. Sin embargo, tendrás que tener un tiempo mínimo bajo antes del próximo flanco ascendente.

7voto

GetFree Puntos 495

Un chip se comportará normalmente siempre y cuando lo opere dentro de los 'parámetros de operación normales' especificados en la hoja de datos. La mayoría de los chips solo tienen requisitos sobre el tiempo mínimo entre los flancos de reloj y el tiempo de configuración (datos estables en el flanco de reloj activo). Ninguno de estos se viola al estirar el reloj.

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

1voto

chrisbunney Puntos 228

Un simple chip con un "pin de reloj" no le importa cuándo llega el borde del reloj, solo que lo hace. Incluso, los pulsos isócronos son más para beneficio del software o hardware más complejo, por ejemplo, dispositivos basados en PLL.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X