Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_param.funcs.php on line 1407

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_param.funcs.php on line 1407
Catégorie: "Bonnes manières électroniques" - Loubardes

Catégorie: "Bonnes manières électroniques"

Routage achevé

par Le Grincheux  


Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_misc.funcs.php on line 764

Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_misc.funcs.php on line 764

Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_misc.funcs.php on line 764

Le routage de la carte de gestion des alimentations n'a pas été simple mais il est achevé. Comme contrainte, je voulais une carte contenant la partie filtrage du secteur, alimentation isolée, régulation et la logique séquentielle. Je voulais aussi avoir des voyants indiquant l'état des différents registres.

Le circuit complet tient sur un PCB de quatre couches FR4 35µm pour toutes les couches de dimension 40cm par 18cm. J'aurais pu le faire plus petit en prenant des composants CMS, mais cela aurait nécessité l'intervention d'un câbleur professionnel, ce qui, pour de très petites séries, a un coût prohibitif.

Routage achevé

Fig. 1 : vue d'ensemble

On voit mal de loin, alors voici une vue de plus près. Il y a du monde. Les pistes de signal font 0,254 mm (10 mils).

Routage achevé

Fig. 2 : détail

Cette carte sera fabriquée par Safe-PCB. Je travaille de longue date avec eux, ils font un excellent travail sur des cartes huit couches avec des pistes de 5 mils. Cela ne devrait donc pas leur poser de problème.

Une dernière image pour la route, une vue 3D. Je n'ai pas tous les modèles de composants, certaines empreintes sont vides mais cela donne une bonne idée du résultat.

Routage achevé

Fig. 3 : vue 3D de la carte de gestion des alimentations

Naturellement, les normes CE ont été respectées durant le routage. Le logo n'est pas usurpé.

Vers une automatisation du calcul des quines

par Le Grincheux  

L'automate doit comporter une bascule de plus. De huit variables, les tables de vérités passent à neuf, soit cinq cent douze états pour huit variables de sorties. Cela commence à faire beaucoup lorsqu'on le fait à la main. J'ai trouvé un outil en mode texte pour réduire les quines : qmc (en version 0.6.3). Il ne reste plus qu'à générer automatiquement un fichier d'entrée pour cet outil directement depuis les tables de transitions.

#!/usr/local/bin/rpl -csp

/*
 * Format du fichier d'entrée :
 * 010X00X
 * *1111111
 * *X000X01
 *
 * Le X correspond à une valeur indifférente. Les entiers binaires
 * spécifiés doivent donner une combinaison vraie. Les lignes
 * commençant par une étoile indiquent un résultat indifférent.
 */

TRANSITIONS
<<
    { "length*(1)" }
    { { "name" "transitions.in" } "sequential" "old"
            "readonly" "flow" }
    open format

    0
    -> F_IN NB_LIGNES
    <<
        while
            F_IN "end of file" inquire not
        repeat
            ""
            do
                F_IN read 1 get
            until
                if
                    dup "\n" same
                    F_IN "end of file" inquire or
                then
                    drop true
                else
                    +
                    false
                end
            end

            if
                dup "" same not
            then
                'NB_LIGNES' incr
            else
                drop
            end

        end

        F_IN close
        NB_LIGNES ->list
    >>

    1
    -> LISTE I
    <<
        do
            LISTE I get ucase
            -> E
            <<
                if
                    E "X" pos dup
                then
                    // Il y a au moins un X
                    -> P
                    <<
                        { "0" "1" } forall J
                            if
                                P 1 same
                            then
                                J E 2 over size sub +
                            elseif
                                P E size same
                            then
                                E 1 over size 1 - sub J +
                            else
                                E 1 P decr sub J +
                                E P incr E size sub +
                            end
                        next

                        LISTE swap I swap put swap
                        1 ->list + 'LISTE' sto
                    >>
                else
                    // Pas de X, on passe au suivant
                    drop
                    'I' incr
                end
            >>
        until
            LISTE size I same
        end

        LISTE l->t << < >> sort
    >>

    forall I
        if
            I "*" pos
        then
            "x" "# " I 2 over size sub + "b" + str-> b->r ->str +
        else
            "# " I + "b" + str-> b->r ->str
        end

        disp
    next
>>

Je concède que c'est un peu sauvage, mais cela fonctionne parfaitement pour mon usage. Cet outil prend le fichier transitions.in et écrit sur la sortie standard un fichier correspondant et attendu par qmc. Le langage RPL/2 est toujours disponible au même endroit.

Machine de Moore

par Le Grincheux  

Je réchigne à utiliser un microprocesseur ou un microcontrôleur pour surveiller quelque chose d'aussi simple qu'une alimentation, fût-elle une alimentation avec temporisation d'un amplificateur utilisant des tubes électroniques.

À bien regarder, l'automate — ici, une machine de Moore synchrone avec une horloge à 4 Hz — comporte six états :

  • repos : toutes les alimentations sont éteintes ;
  • allumage : les basses tensions de chauffage montent progressivement (quatre secondes de temps de montée pour éviter les pics de courant dans les filaments de chauffage) ;
  • chauffage : maintien des basses tensions de chauffage durant soixante secondes (les soixante secondes sont suffisantes, j'ai testé les émissions des cathodes des différents tubes au lampemètre et il y a une bonne marge) ;
  • haute tension : allumage progressif de la haute tension (quatre secondes là encore) avec polarisation automatique des tensions de chauffage ;
  • maintien : basse et haute tensions présentes, amplificateur en fonctionnement nominal ;
  • extinction : la haute tension est coupée mais le chauffage des tubes reste encore actif soixante-quatre secondes ;
  • défaut : une tension (chauffage ou haute tension) est en défaut et les deux alimentations sont coupées.

Sur le diagramme d'états suivant, les états sur les transitions indiquent les variables d'entrée dans l'ordre suivant :

  1. position de l'interrupteur général (1 : marche, 0 : arrêt) ;
  2. présence de la basse tension de chauffage (1 : présence, 0 : absence) ;
  3. présence de la haute tension (1 : présence, 0 : absence) ;
  4. compteur de cycles valant 15 (1 : compteur valant 15, 0 : compteur différent de 15) ;
  5. compteur de cycles valant 255 (1 : compteur valant 255, 0 : compteur différent de 255).

Les quatre variables de sortie sont dans l'ordre :

  1. commande de la basse tension ;
  2. commande de la haute tension ;
  3. maintien du compteur de cycles à zéro ;
  4. défaut.

Le compteur de cycles est un simple compteur 8 bits déjà étudié dans un article précédent.

Fig. 1 : automate de gestion de l'alimentation (le même en grand)

L'automate comportant sept états, il requiert trois bascules. Le lien entre les sorties de ces bascules et les variables de sortie vérifie la table de vérité suivante :

États Basse tension Haute tension Reset compteur Défaut
000 1
001 1
010 1
011 1 1
100 1 1 1
101 1
110 X X X X
111 1 1

Tab. 1 : table de vérité des sorties en fonction des états internes

Pour éviter les rebonds sur les sorties, des verrous synchrones seront utilisés derrière la logique combinatoire. L'automate fonctionnant sur fronts descendants de l'horloge, cette logique combinatoire utilisera les fronts montants.

Choix des régulations

par Le Grincheux  

Lors d'un article précédent, j'ai présenté un circuit de régulation performant pour les différents filaments de chauffage. Chacune de ces cartes est capable de fournir 6,3V et 1,5A. Le refroidissement des composants de ces cartes, principalement des transistors de puissance se fait par convection naturelle.

Les doubles triodes peuvent être chauffées en 6,3V 300mA ou en 12,6V 150mA. Pour des raisons de symétrie et parce que rien n'assure que les filaments soient rigoureusement identiques, ils seront alimentés en 6,3V 300mA parfaitement régulés. Cette régulation permet d'assurer une durée de vie des tubes correcte et indépendante de la tension du secteur ainsi que d'éviter une ronflette à 50Hz.

En revenant au schéma de principe de l'amplificateur, un œil averti constatera d'une part que les deux canaux se partagent les tube V4 et V9, et d'autre part que les tensions de cathode de tous les tubes sont faibles à l'exception des tubes V9, V3B et V7B. Les tubes V3 et V7 sont disponibles chez JJ sous la référence ECC832. Mais la tension de cathode de leurs deux triodes est très différente (plus de 100V d'écart). Le schéma est donc remanié de la façon suivante :

  • V1, V2, V5 et V6 ne changent pas. Ces quatre tubes nécessitent 1,2A pour leurs filaments de chauffage. Les tensions de cathode de tous ces tubes étant inférieures à 2V, le point froid de la régulation des filaments sera fixé à 30V. Une carte de régulation est suffisante ;
  • V11, V12, V13 et V14 ne changent pas non plus. Ces quatre pentodes de puissante requièrent chacune 1,5A sous 6,3V. Les cathodes étant à une tension inférieure à 1V, il faut utiliser quatre cartes de régulation dont les points froids sont fixés à 30V ;
  • les parties gauches de V3 (V3A) et V7 (V7A) sont des demi-ECC83 qui ont intérêt à être couplées avec V4A et V4B. Leurs tensions de cathode sont identiques. De la même manière, les tensions de cathode des pentodes V8 et V10 sont du même ordre de grandeur.. Le chauffage de l'ensemble de ces tube demande ainsi 1A et une carte de régulation dont le point froid est fixé à 30V ;
  • V3B et V7B sont deux demi-ECC82 qui peuvent être couplées respectivement avec les inverseurs de phase V9A et V9B. Les tensions de cathode de ces deux tubes sont respectivement 115V et 72V. Une carte de régulation avec un point froid aux alentours de 130V suffit aux 600mA requis par les filaments.

Cette modification de la répartition des tubes permet d'une part d'assurer une polarisation positive à tous les filaments de chauffage ainsi qu'une totale isolation entre les deux canaux. Le prix à payer est la présence de sept cartes de régulation juste pour l'alimentation des filaments.

Dernière constatation : le push-pull de sortie est monté en mode pentode et non en configuration ultra-linéaire. Dans un tel cas, lorsque le signal demande à l'alimentation haute tension un fort courant comme lors d'un coup de grosse caisse, l'alimentation va bien entendu le lui donner. Or cette tension, prélevée après un simple filtrage en pi derrière la haute tension, va s'écrouler durant un bref laps de temps dépendant de la constante de temps de l'alimentation.

Comme les caractéristiques d'une pentode dépendent de la tension écran, la restitution sera moyenne. Il faut noter qu'il s'agit là de l'un des facteurs qui est responsable du son rond des tubes, souvent décrié par les défenseurs des transistors. À savoir : graves mal tenus et ampleur artificielle du son.

Un bon amplificateur à tubes n'est pourtant rien de tout cela. D'une part, les triodes (comme les 300B) n'ont pas ce problème, d'autre part, il est possible de réguler la tension de l'écran de manière indépendante de la haute tension d'anode des pentodes de pusisance. Sur une pentode, un écran régulé signifie une stabilité des caractéristiques du tube, ce qui se traduit par des attaques plus franches, une dynamique accrue et des graves beaucoup mieux tenus.

Ainsi, après avoir étudié une régulation pour les filaments de chauffage, il convient d'étudier des régulations pour la haute tension des push-pull d'EL34, une seconde régulation pour les tensions de grille écran de ces pentodes de puissance et une troisième régulation pour tous les autres tubes du montage. Naturellement, il faut ces trois régulations pour chacun des deux canaux.

Réduction du bruit

par Le Grincheux  

L'alimentation régulée présentée hier fournit une tension régulée et filtrée de bonne qualité pour les filaments de chauffage. Néanmoins, l'ajout de condensateurs sur les diodes rapides de redressement et d'une bobine sans ferrite permet de supprimer toute ronflette qui pourrait être réinjectée sur les masses par le bruit de commutation des diodes.

Par ailleurs, ces alimentations sont commandées au travers de relais. L'ajout d'un condensateur au primaire du transformateur devrait éviter de trop forts arcs électriques lors de l'ouverture du circuit. Voici donc les circuits modifiés.

Fig. 1 : alimentation des filaments des tubes de basses puissances (en grand)


Fig. 2 : alimentation des filaments des tubes de puissance (en grand)


Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_param.funcs.php on line 2201

Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/_core/_param.funcs.php on line 2201
1 2


Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/sessions/model/_hit.class.php on line 932

Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /export/home/bertrand/web/blog/b2evolution/blogs/inc/sessions/model/_hit.class.php on line 933