Shift register con la Raspberry Pi

1

Recientemente he comprado unos 74HC595N ( hoja de datos ) Cambia los registros para jugar usando mi Raspberry Pi. La Raspberry Pi tiene un reloj de propósito general que creo que debería poder usar, pero no estoy seguro de cómo funcionaría esto.

¿Debo programar programáticamente que el pin de datos vaya alto, luego que el pin del reloj vaya alto, luego tire del pin del reloj nuevamente solo para cambiar un 1 al registro?

He escrito un código que usa los pines GPIO estándar para enviar el pin de datos alto o bajo y luego pulso el reloj para cambiar el bit al registro de desplazamiento, que parece estar funcionando (aunque está actuando un poco extraño a veces, ¿por eso me pregunto si tengo la idea correcta de usar el reloj?)

Siento que he redactado la pregunta bastante mal, pero no puedo pensar en otra manera de explicar mi problema. Si tiene alguna pregunta, haré todo lo posible para responderlas.

EDITAR: Ahora me pregunto si podría estar aumentando debido a mis niveles de voltaje. La hoja de datos dice que si está alimentando el chip con 4.5v, la tensión ALTA mínima es 3.15v. Estoy usando 5v para alimentarlo (no aparece en la hoja de datos). También dice que si lo estás alimentando con 6v, el mínimo de volumen ALTO es de 4.2v, ¿así que tal vez no esté alcanzando el umbral de voltaje de vez en cuando? Aunque todavía estoy interesado en cómo usar el reloj correctamente.

    
pregunta vimist

1 respuesta

3

Tu idea sobre la configuración programada del reloj y los pines de datos es correcta. Esta técnica a menudo se llama 'bit banging'. Para averiguar qué falla, debes publicar tu código.

El problema de 5V / 3.3V podría muy bien ser tu problema. Intente alimentar los HC595 desde 3.3V para ver cómo afecta el problema.

El chip en el RaPi tiene un hardware dedicado que se puede usar para interactuar con el periférico SPI como el HC595. Pero a menos que necesite cambiar los datos a la velocidad máxima, el uso de tal periférico no merece la pena: el bloqueo de bits es mucho más fácil.

PD, habla sobre el reloj y los pines de datos, ¿sabe que hay un segundo reloj (reloj de espera) que debe pulsar una vez por byte transferido, y que hay algunos otros pines (restablecer, habilitar) que deben también se mantendrá en el nivel apropiado?

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas