Entendiendo la señal de entrada del reloj

3

Estoy escribiendo un programa para controlar una pantalla LCD de matriz de puntos y mostrar algo de texto a través de la interfaz del puerto serie de la PC. La pantalla LCD tiene un Pin para ingresar Señales de reloj . He buscado mucho en Internet acerca de las señales de entrada del reloj, pero todavía no lo entiendo completamente. Sin embargo, lo que obtuve es que la señal del reloj es una cadena continua de ON y OFF, una después de la otra, y se debe enviar al dispositivo en paralelo con los datos. Cuando su estado cambia, empuja los datos al dispositivo. El período de tiempo de cada pulso de ENCENDIDO o APAGADO debe ser el mismo que el pulso de datos.

Clock Signal: 10101010
Data Signal : 11010011

Ahora, si tengo razón, ¿por qué no simplemente usamos un oscilador adecuado con dispositivo para producir señales de reloj? Y si me equivoco, guíame en la dirección correcta.

    
pregunta Farid-ur-Rahman

4 respuestas

3

No estoy muy seguro de lo que está preguntando aquí, pero con este tipo de interfaz, lo ideal es que tenga control tanto de la línea del reloj como de la línea de datos, de modo que pueda asegurarse de que la línea de datos esté estable en el borde (esto puede ser ascendente o descendente) de la línea del reloj, que bloquea los datos en el dispositivo.
Si observa el diagrama a continuación, puede ver que la línea de datos es estable en el flanco ascendente del reloj. Entre la transmisión, la línea del reloj puede detener el cambio de estado. A veces, el cambio inicial del estado de la línea del reloj se puede usar para indicar el inicio de una transmisión.

Puede usar un oscilador, siempre que su línea de datos esté sincronizada con él, para poder determinar cuándo cambiar de estado. Un oscllator externo no sincronizado haría las cosas más complejas, ya que tendría que leer su valor para determinar esto. Además, como señala Camil, no podrías cambiar las velocidades.

    
respondido por el Oli Glaser
2

Espero haber entendido tu pregunta, tal vez esto ayude:

Si tiene una frecuencia de reloj única en la que se ejecuta su dispositivo, necesitará el mismo reloj (ciclo) en ambos extremos. Ahora, debido a los cambios en la temperatura o la fabricación del cristal, estas dos frecuencias se separarán y ya no sabrá cuándo tomar exactamente la muestra de su señal. Ahora, si tiene una señal de reloj adicional, haga lo siguiente:

  • Ponga los datos en la línea de datos (1 o 0)
  • Espere a que se estabilice (tiempo de subida / caída si se produce un cambio de 0 a 1 o de 1 a 0)
  • Transición del pin del reloj (en este momento, los datos se muestrean en el registro): este es el único momento en el que el estado actual de los datos es relevante.

El mismo proceso descrito a tiempo: * Tiempo = 0.0: cambiar la línea de datos de 0 a 1 * Tiempo = 0.1: la línea de datos se ha elevado a 1 y ahora está estable * Tiempo = 0.5: la señal del reloj va de alto a bajo: este es el momento de muestreo * Tiempo = 1.0: cambiar la línea de datos al siguiente bit

Ahora, si no tiene una señal de reloj, no tiene forma de saber cuándo muestrear la señal de datos. Hay métodos que son capaces de "generar" una señal de reloj de una serie de 0 y 1 en la línea de datos, pero esto no es tan común, además de que es necesario sincronizarlos de vez en cuando.

    
respondido por el Tom L.
1

Un oscilador es solo otra forma de generar una señal de reloj. La generación de una señal de reloj con su computadora o microcontrolador (que a su vez utiliza un oscilador como referencia de tiempo) no produce ninguna diferencia real en la forma o amplitud de la onda (ceteris paribus).

Sin embargo, usar un oscilador (en realidad, un reloj) significaría solo una frecuencia de reloj rígida y no una garantía inherente de la coherencia de fase (sincronización) con la señal de datos.

Verá, hay muchos problemas que pueden afectar la pantalla LCD y la computadora que la controla, incluyendo:

  • La computadora podría estar ocupada con otras tareas y aún no tiene datos listos para enviar a la pantalla LCD
  • La pantalla LCD no podría estar lista para recibir los siguientes bytes de datos aún
  • La temperatura puede ser más alta / más baja que hace unos minutos, lo que hace que los osciladores se aceleren / desaceleren

Para lidiar con el mundo en constante cambio, la computadora debe crear una señal de reloj para acompañar la señal de datos que básicamente le dice a la pantalla LCD cuando está bien leer los datos que envía la computadora.

De esta manera, la señal de reloj de la computadora puede no contener realmente una frecuencia constante, pero sufrir largas pausas cuando los datos no están disponibles.

Tenga cuidado al hacer que la frecuencia del reloj sea demasiado alta. La interfaz de datos de la pantalla LCD tiene una velocidad máxima a la que puede escuchar nuevos datos. Si lo marca con demasiada frecuencia, puede dañar los datos entrantes y la pantalla LCD puede mostrar un ruido pseudoaleatorio.

Aquí hay una captura de pantalla de un monitor LCD "overclockeado":

    
respondido por el Keelan
1

El uso de un oscilador fijo para proporcionar una señal de reloj para los datos es una posibilidad, sin embargo, tiene un costo.

Quienquiera que sea la fuente del reloj es el jefe del tiempo, y todo lo demás debe cumplir con ese tiempo.

Si usa un reloj externo como un oscilador (probablemente con algunos separadores), entonces el dispositivo que obtiene los datos debe tomar ese reloj como una entrada y asegurarse de que siempre proporcione los datos lo suficientemente pronto, es decir, un "Tiempo de configuración" antes del borde del reloj activo, más cualquier posible sesgo de reloj entre la fuente y el destino. Si puede hacer tal garantía, hace que el trabajo de diseño del receptor sea muy sencillo, ya que el receptor puede agregar el requisito de que la velocidad de reloj sea constante.

Algunos dispositivos, como los convertidores de señal digital a analógico, pueden tener requisitos muy estrictos de estabilidad (formalmente, bajo jitter o en términos de comunicación, bajo ruido de fase) de la frecuencia de reloj, y su rendimiento se ve seriamente afectado cuando esto no ocurre. el caso.

Pero otros dispositivos (especialmente aquellos con tasas relativamente bajas y donde solo se reciben datos en una memoria de algún tipo (su LCD puede ser un ejemplo) pueden estar perfectamente bien con un reloj que funciona de manera irregular, por ejemplo, en ráfagas. Esto puede facilitar mucho la tarea de obtener los datos del software, ya que la fuente puede esperar hasta que tenga los datos preparados y presentar esos datos, antes de que active el reloj. Con este tipo de interfaz, una forma muy fácil de manejarlo desde una PC más antigua (a velocidades de datos bajas a moderadas) fue usar dos bits de datos del puerto paralelo, y hacer "bit bang" el flujo de datos mediante la afirmación explícita y la depuración. Afirmando el reloj y las señales de datos en el software. Esto normalmente lograría la sincronización relativa correcta (datos válidos antes del reloj) pero con un grado considerable de variación en la sincronización general. Desafortunadamente, este método no funciona bien con dispositivos de E / S conectados por USB ya que la alta latencia del USB lo hace lento, y por lo general no funcionará con las líneas de datos de los adaptadores de impresora USB centronics (aunque puede ser posible). con las líneas de control, o actuando más literalmente como una impresora).

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas