Registre à décalage avec le Raspberry Pi

vimist

Registre à décalage avec le Raspberry Pi


J’ai récemment acheté des registres à décalage 74HC595N ( fiche technique ) pour jouer avec mon Raspberry Pi. Le Raspberry Pi a une horloge à usage général que je pense que je devrais pouvoir utiliser, mais je ne sais pas comment cela fonctionnerait.

Dois-je avoir à dire par programmation à la broche de données d’aller haut, puis à la broche d’horloge d’aller haut, puis à la tirer à nouveau bas juste pour décaler un 1 dans le registre?

J’ai écrit du code qui utilise les broches GPIO standard pour envoyer la broche de données haute ou basse, puis impulsionne l’horloge pour décaler le bit dans le registre à décalage, ce qui semble fonctionner (bien qu’il agisse un peu étrangement parfois, ce qui est pourquoi je demande si j’ai la bonne idée d’utiliser l’horloge?)

Je pense que j’ai formulé la question assez mal, mais je ne peux pas penser comment expliquer mon problème autrement. Si vous avez des questions, je ferai de mon mieux pour y répondre.

EDIT: Je me demande maintenant si cela pourrait agir à cause de mes niveaux de tension. La fiche technique indique que si vous alimentez la puce en utilisant 4,5 V, la haute tension minimale est de 3,15 V. J’utilise 5v pour l’alimenter (non répertorié sur la fiche technique). Il indique également que si vous l’alimentez avec 6 V, la tension HAUTE minimale est de 4,2 V, alors peut-être que je ne frappe pas le seuil de tension de temps en temps? Je suis toujours intéressé par la façon d’utiliser correctement l’horloge.

Réponses


 Wouter van Ooijen

Votre idée sur la programmation de l’horloge et des broches de données est correcte. Cette technique est souvent appelée «coup de bits». Pour savoir ce qui ne va pas, vous devez publier votre code.

Le problème 5V / 3.3V pourrait très bien être votre problème. Essayez d’alimenter le HC595 à 3,3 V pour voir comment cela affecte le problème.

La puce du RaPi dispose d’un matériel dédié qui peut être utilisé pour s’interfacer avec un périphérique SPI comme le HC595. Mais à moins que vous n’ayez besoin de déplacer des données à la vitesse maximale, l’utilisation d’un tel périphérique ne vaut pas la peine: le bit banging est beaucoup plus facile.

PS vous parlez de l’horloge et des broches de données, savez-vous qu’il y a une deuxième horloge (maintenez l’horloge) que vous devez pulser une fois par octet transféré, et qu’il y a quelques autres broches (reset, enable) qui doivent également être conservées au niveau approprié?

vimist

Merci pour votre réponse. Si j’alimente la puce à partir de l’alimentation 3,3 V, je suppose que je peux toujours utiliser le 3,3 V comme HAUT pour mon entrée de données car il ne spécifie pas de tension maximale? De plus, si je peux utiliser n’importe quelle broche GPIO comme horloge, pourquoi y a-t-il une horloge à usage général? Merci encore 🙂

Ignacio Vazquez-Abrams

Ou passez à 74HCT à la place (qui a un VIH de 2,4 V minimum, dans les spécifications CMOS de 3,3 V; n’essayez tout de même pas de reconnecter une sortie au RPi).

Wouter van Ooijen

@ Chief17: Je ne comprends pas la première question de votre remarque. La puce spécifie bien sûr une tension d’entrée maximale: Vcc.

vimist

Je voulais dire une tension maximale pour la signalisation HIGH, mais je l’ai essayé et cela fonctionne parfaitement maintenant. En réponse à votre dernier paragraphe, oui je suis au courant et j’ai tout branché et travaillé 🙂 Merci pour votre aide

 

#à, avec, décalage», Le, Pi, Raspberry, registre»

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *