74HC595 y 74HC165 con Arduino

Una duda que tengo.
Si tengo diez 74HC595 en un PIC16F886, si quiero usar el bit 5 del tercer 595 de los 10 que hay. ¿Qué hay que hacer?

Siempre me ha llamado la atención. Con el protocolo I2C si lo entiendo y en ASM, pero esto del SPI dicen que es más fácil, por cierto, si lo es, pero no me entero.



Sigo haciendo pruebas.

Si tienes 10 registros externos estamos hablando 8x10 bits, es decir cada trama de envío deberá tener 80 bits. Para acceder al bit 5 del 3er registro necesitas modificar el bit 8+8+5=21 de la variable y luego actualizar el estado de todos los registros a la vez.

SPI es mucho más fácil que el I2C y mucho más veloz

Saludos
 
Si tienes 10 registros externos estamos hablando 8x10 bits, es decir cada trama de envío deberá tener 80 bits. Para acceder al bit 5 del 3er registro necesitas modificar el bit 8+8+5=21 de la variable y luego actualizar el estado de todos los registros a la vez.

SPI es mucho más fácil que el I2C y mucho más veloz

Saludos

Hola:

Como son 80 pines de salida. Creo que hay que manejar los 80 bits. Si hago 8+8+5 y lo envío la primera vez, pues bien. Si vuelvo a enviar lo mismo, lo anterior se desplazará en las otras salidas, así que bajo mi punto de vista, hay que tocar todos los bits que hay, de los 80 enciendes un Led que quieras. ;) Espero haberme explicado de lo que quiero decir.

Voy a comprar más 74HC595 y 74HC165 para manejarlos.

Saludos.
 
Si, concuerdo, quizá me expliqué mal pero yo me refiero a modificar el bit 8+8+5 de la variable y luego enviar TODOS los 10x8 bits.
También está la recomendación del 74HC164 que es similar al 74HC595 salvo que el primero no tiene el pin de latch si no solamente datos y reloj, a mi parecer está más optimizado para implementar el protocolo SPI.
 
Bueno:

Sí, hay que modificar las variables, vete a saber si hay que poner unas 80 variables de tipo constante por cada pin. ;)

Ya que tengo comprado el 74HC595 y el 74HC165, no me quejo, ejjejeje. Aunque es bueno la información que me has dado que existe el funcionamiento que indicas con el 74HC164.

Si usas sensores tipo contacto físico como pulsadores, en un libro recomiendan un disparador de schmitt como este 74HC14. Compré dos proque no conocía otro que tengan 8 entradas y que no sean inversores. Ahora intentaré comprar el que me recomendaron y se llama 74HC7541. Esto no tienen nada que ver con los antirebores si no la callidad de la señal cuadrada. Así me aseguro ya que crearé una PCB y quiero las cosas bien hechas si errores tontos. Tampoco debo olvidar que cada integrado se aconseja tener su condensador de 100 nF para evitar ruidos.

Voya rediseñar el circuito con Proteus de estos IC y lo subo aquí.

Muchas gracias por las ayudas a tod@s. ;)
 
Se necesita un Byte por cada chip 74HC595 o 74HC165, y desde tu aplicación modificas o "enmascaras" el bit que quieras del correspondiente Byte, utilizando los operadores que requieras (NOT, OR, XOR, AND, ETC) en realidad no es tan complicado como se pudiera pensar.

Te reitero que este conjunto de chips, los llevo utilizando en esta configuración hace mas de 25 años con un desempeño increíble y desde entonces siempre he utilizado optoacopladores para tener libre de interferencias (rebotes) a mi interface, en estos mas de 25 años, jamas he tenido que substituir un solo chip 74HC595 o 74HC165 , aunque si he substituido algunos optoacopladores que por razones totalmente desastrosas y ajenas al diseño que los han llegado a dañar...

Yo te recomiendo evitar el uso de protoboards ya que en un principio son muy prácticos pero de repente se vuelven una calamidad que yo evito a toda costa y prefiero en plaqueta perforada universal para dejar todo debidamente soldado.

Saludos :apreton:
 
Hola:

Lo de la protoboard es para hacer pruebas. Primero simulador, luego protoboar y por último una PCB. No hay que fiarse y seguro que lo sabes, que simulador tiene problemas o comportamiento a veces nada realista.

fsdafasdfsad-1278447.png

Ver zoom.

Pensando bien, haré una placa PCB preparada para hacer pruebas mejor que estar todo el día perdiendo el tiempo con la protoboard y me vuelvo loco por cables que no hacen buen contacto. Es buena idea. Hay que hacer hasta Jumper para la configuración de ciertos pines de estos IC por si acaso. Yaharé má adelante un mini proyecto de eso.

Si, es mejor usar optoacopladores para protección con la electrónica. Como son muchos optoacopladores y requiere un cierto espacio, ya mandé a pedir que me traigan el 74HC7541 por el tema de histéresis. No tiene nada que ver con antirebotes. ;)

Saludos.
 
Hola:

Teniendo por fin desde hace meses el Proteus 8.5 SP0 y el simulador de Arudino UNO.

Descargar Librería Arduino.

aaaaaaaaaaaaaaaa.png

Cuando entrego los primeros bits, quiero saber si a ustedes se les suma un bit más. Por ejemplo, desde siempre, en la primera tonga de bits, me sale 9 bits, del 8 al 0 tal como muestra en el simulador.

¿Les pasa lo mismo?

La segunda vez seguida que lo hago, a partir de aquí por cada ronda de 8 bits, son siempre 8 como debe ser.

aaaaaaaaaaaaaaaa2.png

Les dejo el simulador hecho del 74HC595. Tenía esperanza de que estuviera bien Proteus 8.5 SP0, pero veo que sigue haciendo las mismas cosas o suspuesto error que con el Proteus 7.x. Si prueban avisan por aquí si les pasa lo mismo.

Lo que hago es:
Desde que pulse Clock, me sale el bit 8 cuando debería ser el bit 7 hasta llegar a 0.
Dejo pulsado Data, luego Clock otra vez para dejarlo en 1. Así con la combinación que quiera.
Al final pulso Latch para que se vea los estados almacenados en la barra de Leds.

Tutorial funcionamiento:

Si hacen estas pruebas avisan si les ocurre lo mismo. Recuerdo que al tenerlo en la protoboard, cosa que lo volveré a montar otra vez, nunca guarda 9 bits, siempre 8 de entrada.

Saludos.
 

Adjuntos

  • 74HC595_y_74HC165_02.zip
    19 KB · Visitas: 9
Última edición:
... Pues acabo de probar la simulación del archivo que subiste y funcionó bien a la primera.
8 pulsos de reloj y 8 datos .. desde el bit0 hasta el bit7.
 
Gracias por probar.

FAltó decir que versión exacta usas del Proteus, la verdad es que me tiene negro, como puedes ver en l aiagen de arriba, la primera ronda me hace del bit 8 al bit 0, cuando en realidad debe ser de bit 7 al bit 0.

Eso de que te funciona del bit 0 al bit 7 no es así, es bit 7 del bit 0, empieza desde el mayor peso de bits al menor. ;)

Para los que me preguntaron en pribado:


El pin número 10 /MR, para resetear o borrar la memoria interna que tengas del 74HC595. Normalmente se deja fijo en estado alto o uno o 5V.

El pin número 13 /OE para activar o desactivar el 74HC595.

Saludos.
 
Última edición:
Atrás
Arriba