Bonjour
J’ai besoin de diviser un signal carré d’une fréquence de 600Khz avec un CD4040 alimenté en 5 volts ,je devrais utiliser les pattes 2 ,3 ,7 pour les sorties binaires 32,16,2
Si je cable la patte 11 reset je n’ai pas de signal après les 3 sorties !
Il y a certainement une explication mais je n’arrive pas à trouver !
Je me suis inspiré de ce schéma
Il semble y avoir une confusion dans la façon dont tu envisage de diviser le signal carré avec ton CD4040. Le CD4040 est un compteur binaire asynchrone qui peut diviser un signal d’entrée en plusieurs sorties mais:
les broches 2, 3 et 7 du CD4040 ne sont pas les sorties binaires que tu as relevé. Voici la correspondance correcte :
Broche 2 (Q1) est la sortie correspondant à la première division par 2.
Broche 3 (Q2) est la sortie correspondant à la deuxième division par 4.
Broche 7 (Q3) est la sortie correspondant à la quatrième division par 8.
Cela signifie que si tu entres un signal carré de 600 kHz sur la broche d’horloge (pin 11) du CD4040 et que tu prends la sortie de la broche Q3 (pin 7), tu obtiendra un signal divisé par 8, ce qui devrait donner une fréquence de 75 kHz en sortie.
Assurez-toi également que ton signal d’horloge est propre et correctement connecté à la broche d’horloge (pin 11) pour que le compteur fonctionne correctement.
Je n’aime pas beaucoup cette façon d’utiliser des circuits logiques ! Et encore plus d’utiliser ses propres sorties pour le reset, c’est la garantie de glitchs et de fonctionnement pas très propre.
Le circuit tel que câblé ne peut pas fonctionner.
Pour moi, la solution la plus simple et la plus propre est d’utiliser un petit micro-contrôleur (PIC12 SO8 ou DIP8 ou PIC10 en SOT23), c’est réglé en quelques lignes de code. Si on sait les programmer…
Sinon, la division par 50 n’est pas immédiate et va demander plus de circuiterie.
De façon plus générale, pour faire des resst sur des compteurs, il est préférable et de loin d’être en logique synchrone. L’asynchrone devient vite un truc infâme… En logique programmable, faire un diviseur par 50 serait facile : un compteur avec resset synchrone sur le 24, va donc compter de 0 à 24, suivi d’un diviseur par 2. Avec des circuits classiques, cela fait vite de la tripaille et du câblage.
+1
Pour éviter les ennuis, il y a moyen de rajouter quelques circuit RC, c’est ce qui se faisait y’a longtemps.
Sans savoir d’ou sort le signal à diviser ni savoir à quoi est destiné le signal divisé il est difficile de proposer une solution adaptée au contraintes.
C’est sur qu’aujourd’hui un microcontrôleurs est la solution la plus logique.
finalement on se demande comment on faisait de la logique avant les µ proc.
c’est vrai on savait se servir d’un tableau de karnaugh et des graphes de temps
Avec des cartes pleines de circuits en DIP14 ! Qui se trainaient à quelques MHz. Puis avec des PAL, puis des EPLD et des FPGA. J’ai fait des trucs complexes avec des Xilinx, qu’il aurait été bien plus facile de faire avec des microcontrôleurs. Maintenant, je réserve les FPGA aux trucs très particuliers ou très rapides, et souvent associés à des microcontrôleurs. Des FPGA intègrent aussi des processeurs, ce n’est pas pour rien.
Il me semble que le CD4040 ne peut diviser que par des puissances de 2 (il était utilisé dans les déco pirates C+ pour obtenir du 12,8 KHz pour « décoder » le son).
Les choses étaient aussi infiniment plus simples. De toute façon avec une carte pleine de DIP14, cela ne faisait finalement pas beaucoup de logique.
Aujourd’hui, dès que l’on pousse un peu, la logique se synthétise avec du code VHDL et se simule, impossible de faire autrement (efficacement).
Bonsoir
Merci pour vos commentaires
Les pattes concernées sont bien 2,3 et 7 pour obtenir 50 ,j’ai aussi essayé avec un circuit 4081 quadruple ET ,le résultat est identique en laissant le reset patte 11 au 0 volt çà fonctionne tout de même mais le signal n’est pas terrible en sortie des 3 diodes !
J’avais envisagé aussi la tension assez basse 5 volts ce qui augmente le temps pour le reset !
J’aimerais bien comprendre
Je cherche une solution simple pour obtenir la division
Salutations Jean-Luc
Pour faire propre en restant dans l’esprit, on peut garder le CD4040 et avec un ET sur les sorties 16 et 8 décoder le 24. Attaquer l’entrée d’une bascule dont l’horloge est sur la même fréquence d’entrée, afin d’avoir en sortie un signal de reset presque synchrone, et ce signal sera de nouveau divisé par 2 par une bascule, toujours sur le 600kHz. Mais il faut rajouter une porte logique (ET entre la sortie du ET précédent et la sortie de la bascule sur l’état 24) sur ce reset pour générer le reset et pour que l’état 0 ne dure qu’un coup d’horloge… Il reste donc un truc pas très synchrone. Mais le fonctionnement sera propre. Sauf erreur !
Ca devrait fonctionner Hervé, mais il peut toujours y avoir un léger décalage entre le signal d’horloge d’entrée et le signal de reset généré comme dit.
Après est ce gênant dans l’application de Jean Luc ?
Le reset issu de la bascule étant synchrone, c’est mieux. Le problème est qu’il faut avec faire le reset, asynchrone du compteur. Je ne sais pas s’il y a un risque réel de n’avoir qu’une partie des bascules qui penne en compte le reset ainsi fait, et un réseau RC est en effet conseillé. Je n’aime vraiment pas la logique avec des signaux asynchrones, c’est toujours source de problèmes. Normalement, on resynchronise tout ce qui n’est pas synchrone et tout qui vient de l’extérieur (pour les fpga), afin de savoir toujours quelles sont les marges sur les signaux.
Bon, pour un circuit simple, on peut faire des entorses, mais cela donne vite de mauvaises habitudes.
Les signaux asynchrones peuvent entraîner des problèmes de délais et de métastabilité, en effet mais pour pour éviter ces problèmes, tu peux effectivement utiliser un réseau RC pour synchroniser le signal de reset que tu généres avec les bascules:
Générer le signal de reset tel que tu l’a décrit précédemment.
-Connecter ce signal de reset à l’entrée d’un circuit RC avec la résistance connectée à la sortie du signal de reset et la capacité connectée à la masse.
Connectez la sortie du circuit RC au reset du CD4040
Le circuit RC introduira un léger délai dans le signal de reset, ce qui permettra de s’assurer qu’il est bien synchronisé avec l’horloge du CD4040. Cela garantira que le compteur CD4040 réagit correctement au signal de reset.
Ca devrait contribuer à rendre la conception plus fiable en évitant les problèmes liés aux signaux asynchrones. Après pour le dimensionnement du circuit RC, c’est à voir en fonction de l’application, on en revient toujours là