Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Diviseur programmable PLL




  1. #1
    quentin08

    Diviseur programmable PLL

    Bonjour,

    Je suis en train de mettre au point un diviseur programmable pour une PLL en synthétiseur de fréquences. J'utilise 3 circuits 4510 en décompteurs que j’initialise à une valeur comprise entre 1 et 999. Lorsque les 3 compteurs sont en fin de cycle, leur sorties /CO passent à 0, et je me sert de ça pour activer en même temps les 3 entrées de chargement parallèle à travers un NOR pour remettre l'ensemble à la valeur définie par les 12 bits en entrée. Et le cycle recommence. Ce montage est donc un diviseur programmable
    Jusque là, tout va bien, mais je me pose deux questions :

    1)
    Le pulse en sortie du NOR est très court car sitôt l'info de chargement parallèle envoyée, les /CO se remettent à 1, et je me dis qu'un des compteurs peut fonctionner plus lentement que les autres, et ne comprenne pas à temps qu'il faut se recharger à la valeur de base. A la simulation, ça marche, mais je n'ai pas testé en vrai. Ce risque existe t-il vraiment ?


    2)
    Le pulse en sortie du NOR étant très court, es ce que ce signal peut être utilisé sur le comparateur 3 états du circuit PLL 4046 ?
    Je sais que ce circuit détecte les fronts montants, et non les états logiques, mais vu qu'ils sont très brefs, je me demande si ça ne va pas poser problème

    Merci

    -----

    Images attachées Images attachées
    Maximator c'est comme Actimel : ça agit à l'intérieur et ça se voit à l'extérieur

  2. Publicité
  3. #2
    luc_1049

    Re : Diviseur programmable PLL

    Bonjour

    Avez vous cherché sur www une note d'application de la pll 4046 voire un logiciel pour dimensionner les passifs (r et c du filtre) . La littérature existe je l'ai utilisé à l'époque...
    cdlt

  4. #3
    PA5CAL

    Re : Diviseur programmable PLL

    Bonjour
    Citation Envoyé par quentin08 Voir le message
    je me dis qu'un des compteurs peut fonctionner plus lentement que les autres
    Oui, c'est un fait qu'on constate en pratique.

    Citation Envoyé par quentin08 Voir le message
    ... et ne comprenne pas à temps qu'il faut se recharger à la valeur de base. A la simulation, ça marche, mais je n'ai pas testé en vrai. Ce risque existe t-il vraiment ?
    Le risque existe, mais surtout du fait des délais introduits par la réalisation. En effet, le temps de propagation des signaux dépend des caractéristiques des portes logiques, mais également pour une grande part des capacités, résistances et inductances parasites du circuit.

    Citation Envoyé par quentin08 Voir le message
    Le pulse en sortie du NOR étant très court, es ce que ce signal peut être utilisé sur le comparateur 3 états du circuit PLL 4046 ?
    Je sais que ce circuit détecte les fronts montants, et non les états logiques, mais vu qu'ils sont très brefs, je me demande si ça ne va pas poser problème
    Même problème, même réponse.


    Pour avoir l'assurance que le montage fonctionnera, il faut évaluer les impédances du circuit réalisé pour déterminer les délais correspondants puis reprendre les temps spécifiés par le constructeur des circuits logiques, afin de vérifier que, dans le cas de figure le plus défavorable, la valeur initiale du compteur sera bien enregistrée et l'impulsion sera bien prise en compte par la PLL.

    Au fait, de quelle technologie s'agit-il ? 4000, HC, HCT ?
    Dernière modification par PA5CAL ; 05/12/2017 à 10h39.


  5. #4
    PA5CAL

    Re : Diviseur programmable PLL

    Dans le cas où la durée minimale de l'impulsion ne pourrait pas être garantie ou s'avérerait insuffisante, on doit modifier le circuit afin d'imposer le fonctionnement attendu.
    Dernière modification par PA5CAL ; 05/12/2017 à 11h41.

  6. #5
    jiherve

    Re : Diviseur programmable PLL

    Bonjour,
    On se demande comment cela divise correctement car le branchement est en mode ripple clock, en chainant les CI# et CO# on obtiendra un fonctionnement plus fiable car les compteurs fonctionneront de manière synchrone!
    Ensuite l'ajout d'une bascule D (4013) en aval du CO# compteur MSB on obtiendra un pulse de largeur constante pour piloter la 4046 .
    JR
    l'électronique c'est pas du vaudou!

  7. A voir en vidéo sur Futura
  8. #6
    PA5CAL

    Re : Diviseur programmable PLL

    En fait, ce n'est pas si simple. Dans le cas du chaînage des CI et CO pour un fonctionnement totalement synchrone, les constructeurs mettent justement en garde contre le risque d'apparition d'un glitch sur les CO des étages supérieurs du fait d'une possible différence de vitesse entre les compteurs utilisés. Ce glitch ne gêne pas le (dé-)comptage, mais pourrait activer intempestivement une bascule située en aval.

  9. #7
    DAUDET78

    Re : Diviseur programmable PLL

    Citation Envoyé par PA5CAL Voir le message
    Ce glitch ne gêne pas le (dé-)comptage, mais pourrait activer intempestivement une bascule située en aval.
    ce qui est le cas de son /LE qui recharge les compteurs. La solution fiable :
    Citation Envoyé par jiherve
    Ensuite l'ajout d'une bascule D (4013) en aval du CO# compteur MSB on obtiendra un pulse de largeur constante
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  10. Publicité
  11. #8
    PA5CAL

    Re : Diviseur programmable PLL

    Je ne sais pas si le glitch est gênant pour le rechargement des compteurs. Les documents de chez feu Motorola qui montrent des applications de ce type semblent indiquer que non (après, peut-on vraiment leur faire confiance ? ...).

    Sinon, l'idée de la bascule est intéressante, mais seulement si le signal CO (ou bien le PE issu de la porte NOR) est mémorisé avec un décalage par rapport à l'instant du changement d'état des compteurs, par exemple si l'entrée d'horloge de cette bascule reçoit un signal en opposition de phase avec l'horloge des compteurs.

    Il faudrait donc rajouter un inverseur sur l'entrée d'horloge de la 4013 pour régler le problème.

    Si l'on part effectivement sur des circuits CD4xxx ou HEF4xxx, alors pourrait utiliser un boîtier 4000 qui contient deux portes NOR à trois entrées et une porte inverseuse.

    synchro-PE.png
    Dernière modification par PA5CAL ; 05/12/2017 à 17h18.

  12. #9
    DAUDET78

    Re : Diviseur programmable PLL

    Pas besoin de NOR . On monte les compteurs en synchrone ( Cout -> Cin du suivant)
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  13. #10
    PA5CAL

    Re : Diviseur programmable PLL

    En effet. La porte NOR n'est nécessaire que dans le mode ripple clock. Au temps pour moi.

    On pourra donc utiliser une fonction inverseuse issue d'un autre circuit logique, ou créer le retard nécessaire à l'aide d'une résistance et d'une capa.
    Dernière modification par PA5CAL ; 05/12/2017 à 19h08.

  14. #11
    jiherve

    Re : Diviseur programmable PLL

    Bonsoir
    La bascule doit être clockée par l’horloge des compteurs surtout pas par une horloge décalée justement pour ignorer les glitch.

    JR
    l'électronique c'est pas du vaudou!

  15. #12
    PA5CAL

    Re : Diviseur programmable PLL

    Ça pourrait donner ça :

    synchro-PE2.png

    En prenant une valeur de R×C inférieure au tiers de la durée minimale de l'état haut de l'horloge et de celle de son état bas, le retard vaut 0,7×R×C environ. Ce retard doit alors être supérieur au temps maximum de propagation entre le front montant de l'horloge et le CO du dernier compteur.

  16. #13
    PA5CAL

    Re : Diviseur programmable PLL

    Citation Envoyé par jiherve Voir le message
    La bascule doit être clockée par l’horloge des compteurs surtout pas par une horloge décalée justement pour ignorer les glitch.
    Le décalage est obligatoire, mais rien n'oblige à ce qu'il corresponde exactement à la durée de l'état haut du signal d'horloge, vu que le front descendant de ce dernier n'a aucune action sur le fonctionnement synchrone.

    Par ailleurs, rien ne garantit a priori que le signal d'horloge produise un retard suffisant, notamment si la fréquence est élevée et/ou le rapport cyclique très différent de 50%.

    On peut cadencer la bascule sur le fond descendant de l'horloge, mais cela risque également d'imposer d'ajouter un boîtier rien que pour l'inverseur. La solution consistant à introduire un retard fixe peut donc présenter un certain intérêt.
    Dernière modification par PA5CAL ; 05/12/2017 à 19h49.

  17. #14
    jiherve

    Re : Diviseur programmable PLL

    Re
    si la bascule reçoit sur son entrée D le RCO# du dernier étage elle se trouve alors dans la position et le rôle d'un n+unieme compteur mais au lieu de compter elle remettra en forme le signal.
    Mais bien sur c'est la sortie de la bascule qui fera le chargement, il faudra alors compter n-2 (998 au lieu de 999 pour faire 1000)
    JR
    Dernière modification par jiherve ; 05/12/2017 à 20h10.
    l'électronique c'est pas du vaudou!

  18. #15
    PA5CAL

    Re : Diviseur programmable PLL

    (Grosse fatigue, vivement les vacances ! )

    Mes réponses à partir de la #8 ne doivent pas être prises en compte.

    En fait, la solution de la bascule ne convient simplement pas, car tout l'intérêt du circuit proposé est de réaliser une division de fréquence correspondant au nombre décimal programmé et affiché (par exemple, si l'on entre "129", alors on s'attend à ce qu'il divise par 129, et pas par 130 ou par 131).


    Si l'on cadence la bascule directement avec l'horloge des compteurs, le front montant de celle-ci survient juste avant le changement d'état de /CO. Par rapport à une division de fréquence normale, cela introduit dans le cycle un pas supplémentaire correspondant aux sorties à "000" et /CO=0. PE ne passe à 1 qu'au début du pas suivant ("999"), entraînant la réinitialisation du compteur ("129" par exemple) et la remise à 1 de /CO. Mais au moment du front d'horloge suivant, PE est encore à 1 et le compteur reste donc sur la valeur d'initialisation durant un autre pas supplémentaire. Comme PE passe à 0, le décomptage reprend au front d'horloge d'après. Le diviseur étant programmé pour "129", le cycle donnerait :
    ...
    "002"
    "001"
    "000"
    "999"="129"
    "129"
    "128"
    ...
    soit une division de la fréquence par 131.


    En décalant l'horloge de la bascule, j'imaginais régler ce problème (en plus de celui du glitch) en forçant la réinitialisation des compteurs à la valeur programmée lorsqu'ils arrivent à "000", le front montant de l'horloge des compteurs survenant après le changement d'état de /CO. Mais ce faisant, la valeur programmée est encore maintenue après le front suivant car PE n'est pas encore repassé à l'état haut. Le diviseur étant programmé pour "129", le cycle donnerait :
    ...
    "002"
    "001"
    "000"="129"
    "129"
    "128"
    ...
    soit une division de la fréquence par 130. Donc, « chou blanc » !


    Si le 4510 a une entrée PE asynchrone, c'est précisément pour pouvoir faire correspondre l'arrivée à zéro des compteurs avec le passage à la valeur programmée dans le même pas de décomptage.

    Sauf à réaliser un circuit avec un fonctionnement différent qui présenterait beaucoup moins d'intérêt pour l'utilisateur, il faut s'en tenir à une impulsion sur PE suffisamment longue pour initialiser tous les compteurs et qui se termine avant le front d'horloge suivant le passage à 0 de /CO.

  19. #16
    PA5CAL

    Re : Diviseur programmable PLL

    Oups... « la valeur programmée est encore maintenue après le front suivant car PE n'est pas encore repassé à 0. »

  20. #17
    PA5CAL

    Re : Diviseur programmable PLL

    Il me semble utile de préciser le risque que j'ai évoqué dans ma réponse #3.

    Quel que soit le mode de (dé-)comptage (« ripple clocking » ou synchrone), il est possible que le signal commandant les entrées PE ne produise pas l'effet escompté dans les mêmes délais sur tous les compteurs :
    - d'une part les délais de propagation internes peuvent varier d'un compteur à l'autre,
    - d'autre part, le signal peut mettre un temps variable pour atteindre les entrées des différents compteurs (notamment si ceux-ci sont physiquement espacés, par exemple montés sur des modules d'affichage disjoints).

    Ainsi, on peut par exemple imaginer une situation où le compteur des centaines réagirait beaucoup plus rapidement que le compteur des unités et où le signal PE commun parviendrait beaucoup plus vite au compteur des centaines qu'au compteur de unités.

    Le compteur des centaines pourrait alors invalider le signal PE produit via sa sortie /CO avant que le compteur des unités n'ait pu s'initialiser complètement, ce qui ferait repartir le décompte du diviseur depuis une valeur différente de celle programmée.


    Pour prolonger le signal sur les entrées PE sur une durée garantissant l'initialisation complète de tous les compteurs :

    • dans le cas particulier du mode « ripple clocking » (avec les sorties /CO indépendantes entre elles), on peut passer le signal PE à 1 quand toutes les sorties /CO sont à 0, puis le repasser à 0 quand toutes les sorties /CO sont à 1. Ce fonctionnement correspond à une bascule RS avec un NOR sur le S et un AND sur le R.

    div4510rs.png

    Toutefois, ce circuit ne garantit pas que l'impulsion convienne à la PLL.

    • on peut démarrer une impulsion de durée fixe :
    - en mode « ripple clocking », quand toutes les sorties /CO sont à 0 (porte NOR)
    - en mode synchrone, quand la sortie /CO du dernier compteur passe à 0 après avoir éliminé les glitches évoqués précédemment (voir ci-dessous).

    Ce fonctionnement peut être réalisé par un monostable comme celui-ci :

    div4510ms.png


    Dans le cas du mode synchrone (chaînage /CO --> /CI), le circuit conseillé par les constructeurs pour supprimer les glitches sur le dernier /CO est le suivant. Les glitches sont masqués par les niveaux hauts du signal d'horloge.

    div4510sync.png

    Pour rappel, dans le mode « ripple clocking » (comme dans le schéma du sujet) on a :

    div4510nor.png

  21. #18
    PA5CAL

    Re : Diviseur programmable PLL

    J'ai remis ma main sur mes anciens schémas de diviseurs de fréquence.

    Dans le cas particulier du mode « ripple clocking » (avec les sorties /CO indépendantes entre elles), on passe le signal PE à 1 quand toutes les sorties /CO sont à 0, puis on le repasser à 0 quand l'horloge passe à 0. Le fonctionnement correspond à une bascule RS avec un NOR sur le S et un NOT sur le R. La durée de l'impulsion produite est alors maîtrisée.

    div4510rs2.png

    (La solution donnée précédemment ne convient que dans le cas de rapports de division fixes, avec les entrées du AND connectées aux /CO des compteurs dont le chiffre du diviseur est non nul.)
    Dernière modification par PA5CAL ; 06/12/2017 à 10h03.

  22. #19
    jiherve

    Re : Diviseur programmable PLL

    Bonjour,
    avec un chargement asynchrone géré de façon asynchrone quant à son activation on ne peut pas diviser exactement le mieux qui puisse être fait c'est d'utiliser une bascule comme indiqué précédemment mais avec en plus un rebouclage de Q ou Q# sur le reset ou preset de la bascule au moyen d'un RC retardateur pour éviter d'avoir une répétition de la valeur chargée,mais il y aura un glitch sur la valeur du compteur qui passera de 0 à MAX momentanément avant de revenir à la valeur chargée, le compteur chargé à n compte exactement n+1 cycles (ce qui n'est pas vraiment un problème) toute autre solution comptera n + xxns (delais).
    JR
    l'électronique c'est pas du vaudou!

  23. #20
    PA5CAL

    Re : Diviseur programmable PLL

    Citation Envoyé par jiherve Voir le message
    avec un chargement asynchrone géré de façon asynchrone quant à son activation on ne peut pas diviser exactement
    Pas d'accord. La fréquence obtenue reste, quoi qu'il en soit, très exactement égale à celle de l'horloge divisée par le nombre programmé.

    D'un cycle sur l'autre l'impulsion périodique sera toujours générée dans les mêmes conditions par rapport au signal horloge. Même si le fonctionnement est asynchrone, il n'introduit au mieux que des délais fixes par rapport au comptage synchrone, ce qui ne modifie pas la fréquence produite.

    Autrement dit, si on programme une division par "250" en partant d'une horloge de 1 MHz, on obtiendra toujours des impulsions présentant une période de 250 µs, ni plus ni moins. Et si la fréquence d'horloge varie, alors la fréquence de sortie variera exactement dans le même rapport de proportion.

    (...) le compteur chargé à n compte exactement n+1 cycles (ce qui n'est pas vraiment un problème)
    Je pense au contraire que tout l'intérêt d'utiliser des compteurs BCD réside dans le fait de pouvoir diviser exactement par le nombre décimal programmé, et que ne pas pouvoir profiter de cette propriété serait problématique. Car quitte à ne pas entrer directement la valeur de division décimale qu'on recherche, il serait plus simple d'utiliser directement des compteurs binaires.
    Dernière modification par PA5CAL ; 06/12/2017 à 15h42.

  24. #21
    jiherve

    Re : Diviseur programmable PLL

    Bonsoir
    oui si le pulse de chargement est assez court.

    JR
    Dernière modification par jiherve ; 06/12/2017 à 18h21.
    l'électronique c'est pas du vaudou!

  25. #22
    annjy

    Re : Diviseur programmable PLL

    bsr,

    je n'ai pas envie d'étudier en détail le circuit...(assez bizarre à mon gout)
    2 pistes:
    - on colle un monostable en sortie du NOR
    - on travaille sur les fronts montants ou descendants sur certains circuits...

    Cdlt,
    JY

    PS : à ma connaissance, aucun circuit n'est spécifié en temps de propagation min.
    Dernière modification par annjy ; 06/12/2017 à 19h50.

  26. #23
    quentin08

    Re : Diviseur programmable PLL

    Bonjour,
    Merci à tous, j'ai essayé de suivre vos commentaires mais j'ai pas tout compris !

    Citation Envoyé par luc_1049
    Avez vous cherché sur www une note d'application de la pll 4046 voire un logiciel pour dimensionner les passifs (r et c du filtre) . La littérature existe je l'ai utilisé à l'époque...
    cdlt
    gwgidaz m'a montré une manière simple de calculer le filtre passe bas dans un autre topic. Ma question concerne surtout le retour de la boucle vers le comparateur de phase

    Citation Envoyé par PA5CAL
    Oui, c'est un fait qu'on constate en pratique.
    C'est bien ce que je pensais, maintenant j'en suis sûr ! Merci d'avoir levé de doute

    Citation Envoyé par PA5CAL
    il faut évaluer les impédances du circuit réalisé pour déterminer les délais
    Je ne savais pas que les impédances pouvaient jouer sur les délais

    Citation Envoyé par PA5CAL
    Au fait, de quelle technologie s'agit-il ? 4000, HC, HCT ?
    Le montage sera fait avec des circuits 4000

    Citation Envoyé par jiherve
    On se demande comment cela divise correctement car le branchement est en mode ripple clock, en chainant les CI# et CO# on obtiendra un fonctionnement plus fiable car les compteurs fonctionneront de manière synchrone!
    Ensuite l'ajout d'une bascule D (4013) en aval du CO# compteur MSB on obtiendra un pulse de largeur constante pour piloter la 4046 .
    J'ai modifié la montage pour qu'il fonctionne en synchrone

    Je vois qu'il y a du pour et contre pour l'utilisation de la bascule D
    Je vois aussi que l'idée du monostable est apparue plusieurs fois; je ne dis pas que c'est la meilleure solution, mais c'est une solution que je comprends. Je ne suis pas vraiment à l'aise avec les bascules
    Il produit un pulse bien plus large que sur le premier schéma, là, on est sûr que les compteurs ont le temps de comprendre qu'il faut se recharger
    Le pulse a une durée correspondante du passage de VT+ à VT- de la NAND 4093

    J'ai mis le montage à jour
    Images attachées Images attachées
    Maximator c'est comme Actimel : ça agit à l'intérieur et ça se voit à l'extérieur

  27. #24
    annjy

    Re : Diviseur programmable PLL

    bsr,

    un RC avec trigger de schmitt derrière (4093), c'est comme un monostable.
    ça devrait fonctionner.....(durée de l'impulsion générée en sortie des 4093 << 1/2 période de l'horloge)

    cdlt,
    JY

Discussions similaires

  1. diviseur programmable pour PLL
    Par boy30 dans le forum Électronique
    Réponses: 14
    Dernier message: 05/06/2012, 11h24
  2. Diviseur de tension programmable ou interrupteur analogique
    Par MathieuGeoffroy dans le forum Électronique
    Réponses: 9
    Dernier message: 25/04/2012, 15h12
  3. Atténuateur programmable et pont diviseur.
    Par doeul dans le forum Électronique
    Réponses: 13
    Dernier message: 19/07/2011, 14h04
  4. Réponses: 3
    Dernier message: 09/06/2009, 18h02