señal de reloj en protocolos de comunicacion

Foro que trata temas de programación en varios lenguajes.
Ya sea programación en general, videojuegos, microcontroladores, sistemas operativos, ... lo que sea con tal de que sea programado desde un PC.
Excepto la programación de robots, que tienen su propio subforo.

Moderador: nake

Sonyeoneon
¿Ordenador?¿Qué es eso? [Limitado]
Mensajes: 1
Registrado: Vie Ago 28, 2015 1:48 pm

señal de reloj en protocolos de comunicacion

Mensajepor Sonyeoneon » Sab Ene 13, 2018 7:46 pm

hola que tal, ire directo a mi duda, cuando uno quiere hacer una interfaz a travez de un microcontrolador, tenemos que mandar una señal de reloj al aparato a controlar, dependiendo su integrado quelo controle, por ejemplo, un control de nes tiene un 4021, mi pregunta es, o los conocidos de las lcd de 16x2, mi duda aqui es, se manda esta señal a travez de un pin digital cualquiera del microcontrolador, pero, como hago que esta señal tenga el timing necesario segun el datasheet del aparato, y como tengo esta señal "independiente " a los bits de control e informacion.
uso el ejemplo del control ya que encontre un tutorial de arduino:
https://www.allaboutcircuits.com/projec ... duino-uno/

segun entendi por el codigo, la señal de reloj se hace manualmente, pero no encontre valores de tiempo, por lo que puede, ¿puede ser cualquiera e interrumpida? o hay algo de lo que me estoy perdiendo?
Avatar de Usuario
nake
管理者 (Admin)
Mensajes: 1994
Registrado: Vie Jun 04, 2010 4:10 pm
Ubicación: (sin(3t), 0, 0, t+10)
Contactar:

Re: señal de reloj en protocolos de comunicacion

Mensajepor nake » Lun Ene 15, 2018 6:29 am

Hola,

El reloj lo puedes generar con el pin que quieras. Normalmente el datasheet te dice la velocidad de clock máxima y no la mínima (puedes tener un clock que va a muy pocos Hz pero no a varios GHz por ejemplo), así que no te debes de preocupar mucho en el caso de un arduino porque es muy lento.
Respecto al mano de la NES, el chip 4021 que dices no es más que un shift register, así que no importa que el reloj sea una señal de reloj periódica real ni nada así porque un shift-register funciona en plan: "cada vez que llega un pulso en clock, manda el siguiente bit por la línea de datos en serie"; pero por otro lado, otro aparato que uses puede tener otras condiciones que debes de mirar.

Si necesitas una señal de clock de verdad (señal periódica y estable a una cierta frecuencia), tendrás que pasar como bien dices a usar interrupciones, que además, te dará la independencia que dices (las interrupciones se ejecutan en paralelo a tu código normal). Pero eso sí, que se ejecute en paralelo implica también que si tu código toca las otras líneas de datos, que no sepas en qué tick del reloj se hayan ejecutado a no ser que los controles todos durante la interrupción.

Cómo hacer que esa señal cumpla ciertos requisitos de timing dependerá de como la implementes. Normalmente con los registros que definen cada cuánto tiene que saltar la interrupción + la frecuencia del reloj del arduino puedes sacar un buen rango de frecuencias de reloj a generar.
Mi clave pública de correo electrónico: http://www.nakerium.com/nakerium.gpg (Si no sabes lo que es lee este artículo)
Click aquí para ver mi email.


Programo aplicaciones a la carta (con soporte de por vida, para ingeniería o informática) y doy asesoramiento en seguridad informática. Si quieres más información mándame un email o un mensaje privado.

Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados