Fuzzquest - Episode #2

Où l'on parle de la Fuzz Factory.

Son

Fuzz Face

Circuit mythique, effet favori de Hendrix, bla bla bla ...

Fuzz Factory

La Fuzz Factory est une modification assez basique du circuit originel. Ca donne ça:

Cet effet existe depuis déjà un bout de temps, Matthew Bellamy de Muse s'en sert depuis longtemps.

http://www.musewiki.org/007_Manson

Je ne suis pas un fan de Muse - genre plutôt pas du tout en fait - mais il est important de noter pour exactitude : c'est le groupe le plus connu qui utilise cet effet (que je sache).

Circuit

Les petits gars d'Electrosmash ont fait une anlyse du circuit original de la Fuzz Face:

https://www.electrosmash.com/fuzz-face

Je n'ai pas trouvé d'analyse de la Fuzz Factory, donc l'on va tâcher de le faire ici rapidement, puis je vais parler des modifications que je compte y apporter. Le circuit que j'ai pris pour référence est le suivant:

fuzz_factory_schematic.png

Que l'on peut trouver par exemple ici:

https://www.diystompboxes.com/smfforum/index.php?topic=82385.0

Ce schéma n'étant pas très lisible (l'alim est en bas, c'est perturbant), je préfère dans ce sens:

zvex-fuzzfactory-rev1-1.gif

Trouvable ici:

http://revolutiondeux.blogspot.com/2010/06/zvex-fuzz-factory.html

Il y a deux modifications principales:

  • Ajout d'un étage d'entrée (Q1)
  • Ajout de potars COMP, GATE et STAB.

L'étage d'entrée autour de Q1 est un montage en émetteur commun, qui va donc amplifier, mais aussi changer la polarisation du signal, de façon à permettre d'alimenter la suite du circuit en 9V, et pas en -9V comme sur la Fuzz Face d'origine. Avantage non-négligeable, cette histoire d'alim négative étant un des points qui rend la Fuzz Face difficile à intégrer dans une chaîne d'effets. Pour cet étage, d'origine on utilise un simple 2N3904, transistor silicium ultra-standard, avec un gain qu'on qualifiera de "moyen". La valeur ajoutée de ce transistor est assez faible, dans la suite de l'analyse, je ne le comptabiliserai pas, et donc si je parle de "premier" et "deuxième" transistor, il s'agira des deux transistors PNP.

Le potar de COMP, est en parallèle du potar de gain. Comme vu dans l'article d'Electrosmash, le fonctionnement du potar de gain est de modifier le pont diviseur vers la résistance de contre-réaction de 47k, de façon à changer le gain général du circuit. Cette configuration - un potar avec un condo sur le wiper - permet de limiter l'action du pont diviseur au signal AC, sans toucher au signal DC, donc la polarisation. Et donc, la valeur du potar définit la polarisation du deuxième transistor du circuit, sa position définit le niveau de signal AC qui est renvoyé dans la contre-réaction. Ajouter un potar en parallèle - plus exactement en résistance variable - permet de faire varier la résistance "DC équivalente" du potar sans modifier son comportement de potentiomètre. Et donc, le potar de gain continuer à faire varier le taux de signal AC renvoyé vers la contre-réaction, mais sa valeur est modifiée, et donc la polarisation du deuxième transistor est modifiée (pour rappel, la polarisation du deuxième transistor est définie par la résistance totale équivalente des potars GAIN + COMP, en série avec la jonction B-E du transistor, la résistance de 470 Ohms, et le potar de GATE).

Le potar de GATE, puisqu'on y vient, est en série avec la résistance de collecteur du premier transistor, et fait donc varier la polarisation des deux transistors.

Le potar de STAB - comprendre "stability" - est celui qui m'intéresse vraiment. Il est en série sur l'alimentation du circuit, et c'est lui qui va provoquer l'auto-oscillation du circuit, en augmentant l'impédance de l'alim, ce qui rend le tout instable - et donc auto-oscillant.

Les potars COMP et GATE jouent surtout sur la texture du son, alors que STAB et GAIN vont interagir pour faire varier la fréquence de l'auto-oscillation du circuit. D'ailleurs, dans le circuit que j'ai mis dans ma guitare, j'ai trois trimmers pour COMP, GATE et VOLUME, et ce sont les potars de GAIN et STAB que j'ai rendu accessibles, car ce sont ceux qui permettent vraiment de jouer.

Simulation

Simulons donc, et voyons ce que cela donne.

Si on fixe STAB à 0, COMP à ~1k, GATE au max, on va obtenir un comportement assez proche de la Fuzz Face "vanilla".

fuzz_factory_base_sch_02.PNG

Si on rentre un signal audio en entrée, on tombe sur un comportement très "fuzz", grosse saturation asymétrique, gain monstrueux. Jusque-là tout va bien:

fuzz_factory_base_02_sim_01.PNG

Si on enlève le signal d'entrée (je mets une résistance de 200k à la masse), et que l'on met tous les potars à la moitié, on obtient une oscillation automatique du circuit:

fuzz_factory_base_02_sim_02.PNG

Regardons dans le détail ce qu'il se passe dans le circuit:

fuzz_factory_base_sch_04.PNG

fuzz_factory_base_03_sim_01.PNG

Avec une résistance série sur l'alim de l'ordre de grandeur des autres résistances du circuit, la tension commune des transistors va être plus faible, mais surtout va être impactée par le courant consommé par le circuit. C'est principalement le condensateur de gain, du fait de sa forte valeur, qui va se charger à travers le potar de gain et la résistance de STAB.

Zoomons un peu pouvoir foir ce qu'il se passe en détail:

fuzz_factory_base_04_sim_01.PNG

En particulier, j'ai affiché ici les tension B-E des deux transistors Q22 (courbe bleue foncée) et Q3 (courbe rouge). L'on remarque que Q2 est à peu près passant en permanence, par contre Q3 oscille entre passant / bloqué, c'est donc lui qui provoque l'oscillation, nous avons affaire à un circuit oscillateur astable. Pour comprendre ce qu'il se passe, il faut partir d'un des deux états et observer ce qui bouge jusqu'à faire basculer dans l'autre état.

Lorsque Q3 est passant (Vbe = 0.6V, vourbe rouge), l'on remarque que le condensateur de gain se charge à travers Q3 (I(Cgain), courbe rose), ce qui fournit le courant de base de Q3. Vu qu'il y a du courant qui fuit à travers le feedback, il arrive un moment où il ne circule plus assez de courant à travers la base de Q3 pour le rendre passant. Ça se voit en visualisant les courants:

fuzz_factory_base_04_sim_02.PNG

(Attention, l'axe des courants est à droite)

On voit bien le courant de base de Q3 passer à 0, et c'est là que la bascule s'opère. Q3 devenant bloqué, il n'y a plus de courant qui sort vers la masse, et donc Cgain va se décharger dans Rgain et Rcomp. Vu qu'il se décharge, la tension à ses bornes diminue, donc Vfeedback remonte, se rapproche de Vstab, et donc le Vbe de Q2 diminue, donc Q2 passe moins de courant, donc Vpol diminue (Vpol = Ic(Q2) * (R1 + Rgate)). D'un côté Vfeedback monte (Ve(Q3)), de l'autre Vpol diminue (Vb(Q3)), donc au bout d'un moment il y a suffisamment de tension aux bornes de la jonction B-E de Q3 pour le rendre passant à nouveau.

Pendant tout ce temps, Q1 est passant, du fait de la polarisation par R10 (220k), il fait plus ou moins current sink à travers C4, et donc aspire du courant en AC. D'ailleurs, si on ouvre le circuit au niveau de C4 plus rien n'oscille, et si on modifie la valeur de C4 on fait bouger la fréquence d'oscillation (plus C4 est gros, plus la fréquence est basse, sans surprise).

Augmenter la valeur de COMP augmente la fréquence, à priori parce qu'il amortit moins la redistribution du courant de Cgain à travers le feedback (pincettes : j'ai un doute là-dessus). D'ailleurs, si on met une valeur trop faible il amortit tellement qu'il n'y a plus d'oscillation du tout, et si on met une valeur trop forte ça oscille tellement haute fréquence que le signal est absorbé par les passe-bas des composants (le circuit est globalement assez passe-bas). La plage d'oscillation semble se situer entre 2k et 9k.

Jouer sur le potar de GAIN va aussi modifier la fréquence. Plus on augmente le gain (wiper vers l'alim, pour couper le feedback, donc augmenter le gain global du circuit), plus la fréquence est basse. A mon avis, cela est équivalent à augmenter la valeur de COMP, et cela a donc le même effet sur la décharge de Cgain.

Autre comportement intéressant : il y a une sorte d'effet de seuil avec le signal d'entrée, qui fait que en-dessous d'un certain niveau du signal d'entrée c'est l'auto-oscillation du circuit qui prévaut, et à partir d'un certain niveau d'entrée, le signal d'entrée reprend la main:

fuzz_factory_base_04_sim_03.PNG

Ici j'ai mis un signal d'entrée à 1kHz / 5mVp-p, et je fais monter son volume. On voit bien que le signal de sortie commence par osciller à la fréquence du circuit, puis c'est le signal d'entrée qui finit par prendre la main.

Et si on change les transistors ? J'ai chopper les modèles high gain et low gain de l'AC128, et j'ai recopié le circuit pour pouvoir le comparer side-by-side avec les 2N3907 de base que j'ai mis pour mes simus précédentes:

fuzz_factory_base_05_sim_01.PNG

En vert avec les 2N3907, en bleu avec les AC128 (low gain en Q2, high gain en Q3). La forme des signaux est vraiment la même, juste ça n'oscille pas à la même fréquence, ce qui n'est pas très surprenant, les AC128 oscillent légèrement plus haut. Voilà voilà ...

Mais alors, au fait, qu'est-ce qui fait que le stab fait osciller le circuit ? Honnêtement je ne sais pas l'expliquer exactement. Il faudrait pour cela faire une analyse précise de la fonction de transfert du circuit, en modéliser l'intégralité, et sur du circuit à transistors je ne suis pas du tout à l'aise. Peut-être que je m'attèlerai à cette tâche plus tard, mais à court-terme je préfère avancer sur mon projet plutôt que me prendre la tête sur des analyses théoriques qui ne vont pas me faire forcément avancer. Néanmoins, je suspecte fortement deux choses:

  • Introduire une résistance augment l'impédance de l'alimentation, ce qui doit créer des pics de résonance, pour savoir quoi comment il faudrait modéliser tout en détail.
  • La présence de la résistance fournit un chemin supplémentaire pour le signal AC entre Q2 et Q3, ce qui facilite les oscillations.

Analyse de l'étage d'entrée

Regardons quand-même l'étage d'entrée - le reste du circuit est quasi-identique à la Fuzz Face. On peut simplifier l'étage d'entrée de la façon suivante:

fuzz_factory_base_sch_05a.PNG

Cette simplification est légèrement abusive. En effet, nous avons là un circuit émetteur commun, plus précisément un montage "collector feedback bias", dont la théorie nous dit que le gain en tension est:

Av = Vout / Vin = -gm x Rc

Avec: gm = Ic / Vt

Avec Vt = 26mV. Or, ici on a pas représenté le reste du circuit, qui est connecté entre la résistance de STAB et la pull-up de 10k. Or, ce circuit va consommer du courant et modifier Ic. Pour avancer on va prendre une hypothèse, prendre le courant de polarisation sur la simu du circuit complet, et on verra plus tard pour modéliser dans le détail ce paramètre. Sur le circuit de base Ic varie entre 670µA (STAB = 0).

Bon, si on approxime, on va avoir:

Vout = Vin x (-(Vcc - Vbe) / (10k + STAB) / Vt x (10k + STAB)) = Vin x (-(Vcc - Vbe) / Vt)

Théoriquement les valeurs des résistances disparaissent de l'équation. Bon, en pratique ce n'est pas vraiment le cas, mais on va rester sur cette approximation dans un premier temps. En prenant en compte les simus, j'ai une variation de gain entre 5.25 et 6.7, ce qui n'est pas énorme.

Principe proposé

Mon idée est d'utiliser le circuit comme VCO.

Je veux pouvoir contrôler l'oscillation intrinsèque, pour cela il faut que je puisse modifier la position des potars de gain et de stab. Sur le circuit de base, ce sont des potars qui sont en direct dans le circuit, donc il faut vraiment faire varier des valeurs de résistances. Pour faire de la commande numérique de valeur de résistance, on a plusieurs solutions possibles:

  • Digipot : simple à utiliser, straightforward, mais cher et limité en résolution.
  • JFET : se commande en tension, pas cher, mais fonction de transfert non-linéaire.
  • LDR + LED / Vactrol : limité en range, réponse non-linéaire, casse-pieds à faire (LDR) ou trop cher pour ce que c'est et chiant à approvisionner (Vactrol).

Pour le gain, c'est très pénible car il faut vraiment un pont diviseur, et ça ne joue pas tant que ça sur la fréquence. Il faudrait soit faire un circuit ultra-pointu à base de JFET (grmpf ...) soit un digipot, et donc subir la résolution limitée (et le coût exorbitant) de ces choses.

Jouer sur le potar de stab me semble plus intéressant, car ça joue vraiment sur la fréquence intrinsèque, et c'est seulement une résistance série, connectée en pull-up sur l'alimentation, donc ça peut se faire avec un JFET. Dans le même ordre d'idée, je pourrais aussi jouer sur le potar de COMP, vu qu'en plus il est en pull-up. Mais comme il est en série, et polarisé plus bas que la résistance de STAB, j'ai un peu peur de ne pas arriver à driver correctement un JFET à son niveau. Bon, on verra plus tard.

Globalement, j'aimerais bien utiliser du contrôle numérique aussi pour pouvoir avoir une interface pratique, et des presets mémorisables. La base, quoi.

Après réflexion et en première approche, je vais me tourner vers un circuit à base de JFET pour le contrôle du STAB, et un digipot pour le gain. Je ferai le VCO avec le contrôle du stab, et je me servirai du gain pour "affiner" le "voicing", ou déplacer la range de fréquence. J'aurai donc de la précision en résolution sur le STAB, qui servira pour faire une PLL précise, et le gain aura une résolution plus faible, mais ce n'est pas très grave car il ne servira qu'à "décaler" la plage de fonctionnement du STAB.

Archi (idées)

Partant de ce principe de base de fonctionnement en VCO, j'ai plusieurs idées sur l'archi que je veux mettre en oeuvre. Car il y a plusieurs points qui imposent un système un peu complexe.

  • Oscillation à amplitude 'fixe'
  • Interaction avec le signal d'entrée
  • Détection de fréquence
VCO / synthétiseur PLL

Approche simpliste : je ne met pas de signal d'entrée, je laisse le circuit osciller tout seul et je fais varier son oscillation en jouant sur le STAB. La consigne vient soit d'une commande MIDI, ou d'une lecture de la fréquence du signal d'entrée. Cela revient à faire une re-synthèse d'un signal. Pour que ça ait du sens il faut aussi gérer l'enveloppe du signal, sinon le circuit sort du son en permanence même quand il n'y a aucun son en entrée (ou aucune note demandée en MIDI).

Si l'archi "standard" de la Fuzz Factory (la pédale d'origine, quoi, sans modif) est représentée comme ça:

archi_base_01.jpg

Alors mon archi PLL se représente comme ça:

archi_pll_01.jpg

Accordage du circuit avec la fréquence d'entrée

Une approche plus poussée serait d'accorder automatiquement l'oscillation intrinsèque du circuit avec la fréquence du signal d'entrée, même si le signal d'entrée a une amplitude suffisante pour prendre la main sur le circuit. Il est fort probable que ça n'ait pas beaucoup d'intérêt, vu que c'est le signal d'entrée qui a la main sur la fréquence qui sort du circuit, mais sait-on jamais ? Ça pourrait donner des choses intéressantes. Entre autres, j'imagine - mais peut-être je me plante - qu'on pourrait faire une sorte de générateur automatique de feedback, qui ferait que le circuit continuerait une note jouée lorsque l'amplitude du signal de la guitare diminue suffisamment pour que l'oscillation intrinsèque du circuit reprenne la main. Et même plus généralement, le réglage du GAIN et du STAB modifiant la texture du son, ça pourrait être intéressant de faire varier la texture avec la fréquence d'entrée.

Le problème technique principal avec ce mode de fonctionnement, c'est qu'il y a un signal en entrée du circuit, qui va générer le son qui en sort. De ce fait, il ne sera pas possible de se baser dessus pour asservir la position des potars, car ce ne sera pas le circuit qui oscille, mais la guitare qui génère le son qui en sort. Donc il ne sera pas possible de faire une PLL ici.

Il y a deux approches possibles. La première consiste à ne pas faire de contre-réaction, et asservir "à l'aveugle" en partant de tables de valeurs et en espérant que le circuit oscille à la fréquence attendue. Le gros problème, c'est qu'avec les dérives de composants, et surtout la dérive en température, il n'y a aucun garantie que les fonctions de transferts restent constantes, et on va avoir une fréquence d'oscillation qui va bouger par rapport à la consigne. Potentiellement ça peut être marrant, mais ça peut aussi être d'une mocheté infâme. Pour contourner le problème, avec une approche "feedback generator", on peut faire un ajustement au moment où le signal de guitare diminue suffisamment pour laisser la main à l'oscillation intrinsèque du circuit. Tant que le signal de la guitare est prépondérant on ne regarde pas le signal de sortie, et on applique des paramètres théoriques en suivant le signal d'entrée, et tant pis si ce n'est pas juste, et quand on détecte que le signal de la guitare est suffisamment faible pour que l'oscillation reprenne le dessus, là on regarde le signal de sortie et on s'asservit pour ré-accorder dans le détail. Bon, je doute que ça marche bien. Rester sur une table sans feedback pourrait par contre faire un effet detune sympathique.

L'autre approche que j'ai en tête est d'avoir deux circuits en parallèle. L'un est connecté à la guitare et la sortie, l'autre est en l'air, et c'est ce deuxième circuit qui va être utilisé pour la PLL. L'idée, c'est de se servir de ce deuxième circuit comme "golden sample", de le faire fonctionner en PLL comme dans l'archi précédente, de l'asservir sur la fréquence du signal d'entrée, et d'utiliser les paramètres ainsi obtenus sur l'autre circuit, qui est lui effectivement utilisé pour générer le son de sortie. Pour que ça marche, il faut qu'il n'y ait pas de dispersion entre les deux circuits, et je n'ai absolument aucun idée de la dispersion qu'il peut y avoir entre deux circuits identiques. Grosso-modo, ce qui va surement jouer ce sont les caractéristiques des transistors et JFETs - vu que ce sont les paramètres les plus dispersifs dans ce circuit. Donc, si les JFETs entre le golden sample et l'autre circuit ont des caractéristiques trop éloignées, on sera complétement désaccordé. Comment contre-balancer ça ?

Là on a plusieurs façons de s'y prendre. Une solution est de tâcher d'avoir des composants avec les caractéristiques les plus proches possibles. Basiquement faire du tri, ce qui ne m'enchante guère. En plus il va falloir se démerder pour que les composants soient les plus proches les uns des autres sur le PCB, de façon à être sur qu'ils sont toujours à la même température. Grmpf ...

Une autre solution serait de trouver d'autres grandeurs de comparaison, autres que l'oscillation du circuit. Par exemple, si il y a une correspondance entre les points de polarisation et la fréquence d'oscillation, et que cette correspondance est indépendante des caractéristiques intrinsèques des composants, alors on pourrait les mesurer sur le golden sample, et asservir l'autre circuit non pas sur la fréquence, mais sur ces mesures. De ce fait on aurait deux boucles de régulation:

  • Une régulation sur la fréquence du golden sample, avec en consigne la fréquence du signal de guitare, en grandeur de mesure / comparaison la fréquence du signal de sortie, et en paramètre les potars du golden sample.
  • Une régulation sur le point de polarisation du circuit principal, avec en consigne les points de polarisation du golden sample, en grandeur de mesure / comparaison les points de polarisation du circuit principal, et en paramètre les potars du circuit principal.

Petit schéma :

archi_golden_02.jpg

Maintenant la question à 100 balles : est-ce que la fonction de transfert entre la fréquence de sortie et la polarisation est vraiment moins dépendante des caractéristiques intrinsèques des composants que la fonction de transfert entre la fréquence de sortie et les paramètres d'entrée (positions des potars) ? Je n'ai aucun moyen de le savoir aujourd'hui. Il faudrait que j'étudie plus en détail le circuit complet, que je le modélise plus précisément la fonction de transfert complète, et surtout la relation entre les caractéristiques des composants et la fréquence de sortie. Vaste programme ...

A noter qu'il est possible d'avoir des transistors doubles dans le même boîtier, avec une garantie sur leur appairage. Cela permettrait, en les partageant entre les deux circuits, d'avoir une garantie de non-dispersion (voir, par exemple, ici chez NXP). Cela sera utile si la dispersion des caractéristiques des transistors s'avèrent être un paramètre menant dans la dispersion générale des deux circuits. Ce que je n'ai aucun moyen de quantifier. Mais il est à noter que ce genre de composant existe. Par exemple, on trouve les 2N3906 dans ce format :)

Mélangeur

Avoir un blend ? Grmpf ... Ça ne me semble pas une bonne idée.

Points techniques

Circuit de test

Je me suis monté un circuit de test pour mettre au point les différents concepts, avant de passer à la saisie / routage, ça m'évitera des déconvenues. Sur cette maquette, j'ai mis Gate et Comp fixes, aux alentours de 4.7k. On verra plus tard pour jouer avec COMP.

Je vais faire des essais morceau de schéma par morceau de schéma, et à chaque fois que j'ai un truc qui marche sur breadboard, monter le circuit sur carte à pastilles. L'idée c'est de ne pas régresser, parce que ce ne serait pas la première fois que je fais un circuit qui fonctionne sur breadboard, que je le met dans un sac, que les fils se barrent, et que je n'arrive pas à refaire fonctionner le circuit après ça.

Essais avec JFETs

J'ai commencé par ce circuit:

fuzz_factory_mod_sch_01.PNG

fuzz_factory_mod_01_sim_01.PNG

Ayant beaucoup de difficultés à comprendre le fonctionnement détaillé des JFET, je ne sais pas choisir vraiment un modèle adapté 'par avance'. J'ai fait une série d'essais avec plusieurs modèles différents, pour voir comment le circuit se comporte. J'ai mis une résistance parallèle de 4k7, 47k de pull-up sur la gate et 1k de résistance série. Je drive avec un TL072 en suiveur, avec un potar sur le 9V en entrée.

J'ai testé les modèles suivants, avec les range de fréquences suivantes:

  • BF256 : ne marche pas. Je vais arrêter d'utiliser ces JFET, ils ne sont vraiment pas utilisables.
  • BFR31 : 100Hz - 1kHz
  • J201 : 100Hz - 1.5kHz
  • 2SK932 : 100 Hz - 10kHz
  • MMBT4393 : 100Hz - 4kHz
  • BF862 : 100Hz - 400kHz

J'hésite donc entre les 3 derniers, qui ont les range les plus larges.

DAC

Donc on va partir sur du PWM + filtrage. Il y a trois points techniques à résoudre:

  • Convertir 3.3V -> 9V
  • Avoir suffisamment de résolution
Convertisseur 3.3V -> 9V

Idéalement il me faudrait un vrai buffer. Mais bon, on peut aussi faire moins cher et plus simple, genre avec un comparateur + seuil. Ce n'est pas parfait, mais ça fait le taf, et ce sont des composants que j'ai sous la main.

Résolution

Pour être suffisamment précis sur la fréquence générée, il faut beaucoup de résolution sur le DAC, surtout que la fonction de transfert est totalement pas linéaire. Or, sur du PWM "basique", vu qu'on veut être à une fréquence élevée pour ne pas trop avoir besoin de filtrage, on va avoir une résolution pas élevée en sortie du MCU. Pour augmenter la résolution, je pensais utiliser un truc de renard trouvé ici:

http://wiki.openmusiclabs.com/wiki/PWMDAC

Avec deux sorties PWM en 8b its on obtiens un DAC 16bits. Ca me plait très beaucoup, surtout que c'est très simple à faire, c'est globalement un pont R-256R. Par contre il faut bien que je réfléchisse à la façon dont je vais l'intégrer avec le convertisseur 3V3->9V. Est-ce que je fais un DAC en 3.3V et que j'amplifie ? Ou bien est-ce que je génère deux PWMs en 9V que je mélange ?

La première solution va générer moins de bruit, mais il va falloir que je fasse gaffe à la polarisation de mes signaux. Je dois générer un signal qui varie depuis 9V et en descendant, donc il me faut du rail-up en sortie. Par contre, en sortie de mon MCU je vais avoir des signaux en 0-3.3V, donc il faut du rail-down en entrée. Je doute fortement de l'existence d'un tel animal. je pourrais contourner le problème en utilisant un AOP rail-down genre LM2903 pour amplifier de 3.3V vers, disons, 7V, puis décaler le signal pour le passer de 1V à 8V, puis le re-décaler de 2V à 9V avec un rail-up. Ça pourrait faire la blague, mais ça impose au moins deux ampli-ops de modèle différent. Après, c'est peut-être pas pire qu'autre chose ...

Je peux peut-être m'en sortir avec des AOP rail-to-rail en entrée, car ceux-ci sont, la plupart du temps, par construction capables de gérer des signaux qui dépassent la tension d'alim. A noter que ça ne marche bien évidemment que pour leur entrée, pas leur sortie, qui sinon devraient générer une tension de sortie plus élevée que la tension d'alim, ce qui n'est physiquement pas possible. Je sais qu'il existe des AOP avec pompe de charge intégrée, qui permettent de dépasser allègrement les tensions d'alim en entrée et en sortie, mais je préfère ne pas les utiliser, ils sont hors-de-prix, et avec la pénurie actuelle je préfère ne pas dépendre de composants trop spécifiques.

Sinon, s'il faut que je génère directement deux PWMs de 0-9V, puis que je les mélange. Et là je doute que je puisse m'en sortir avec de simple comparateurs en sortie collecteur ouvert, il va me falloir du vrai buffer avec sortie push-pull, pour que le pont R-256R fonctionne. Or, la plupart des buffers logiques à sorties MOS en push-pull ont des tensions de seuil très proches de la tension d'alim. Par exemple des 4050 (sextuple buffer) alimentés en 10V vont avoir des seuils haut à 7V, donc impossible à driver avec du 3.3V. Après je peux les driver avec des comparateurs en open-collector, si ils tiennent la fréquence ça peut le faire.

Une autre méthode bourrin serait d'utiliser des ponts en H (ou demi-pont en H) intégrés, mais c'est surdimensionné (+ appros). Sinon il faut que je le bricole des push-pull en discret à partir de MOSFETs, c'est peut-être déjà plus envisageable.

Honnêtement je pense que le plus pratique c'est comparateur open-collector + buffer 9V en CMOS.

Détection de fréquence

On ne va pas faire compliqué : comparateur à 0V sur le signal d'entrée + input capture sur le MCU. Tout autre solution serait trop compliquée.

Le signal de sortie de la Fuzz Face est très riche harmoniquement, la fréquence et le rapport cyclique modulent légèrement, ce qui donne le son cool que je veux obtenir. Cela signifie aussi que la mesure doit le prendre en compte pour ne pas chercher à corriger des variations qu'on veut garder. Le fait de mesurer la fréquence en ne lisant qu'un seul type de front (montant ou descendant) permettra de s'affranchir de la variation du rapport cyclique. Reste à voir pour la variation de fréquence, et à part faire du filtrage SW je ne vois pas ce que je peux faire. J'espère que ça sera gérable, mais je n'ai aucune idée de la chance de réussite du truc ...

Détection d'enveloppe

Diode + capa + AOP. Je suis tenté de le faire en SW, mais j'ai un doute sur ma capacité à faire un détecteur d'enveloppe SW correct. Donc dans le doute je monterai un détecteur à diode / AOP, et une entrée ADC directe à côté, et je verrai bien ce qui marche le mieux.

L'on utilisera un LM1458, cela va de soi (AOP compensé pour driver la capa).

AGC

Il me faut un VCA. Plusieurs options:

  • JFET
  • OTA (trouvable, LM13700)
  • OTA "discret" à base de LTP
  • digipot

La troisième option me semble la plus réaliste, efficace et simple à mettre en oeuvre.

A SUIVRE ...

Ajouter un rétrolien

URL de rétrolien : http://blog.randagodron.eu/index.php?trackback/72

Haut de page