[Analogique] un préampli pour enregistrement

Salut à tous,

Je suis ingé son, et je commence à intervenir de plus en plus sur des concerts pour des enregistrements live. Je déplace donc mon rack contenant :

  • un PC équipé de 2 cartes son (16 voies analogiques en tout, je passerai bientôt en 24 pistes, soit 3 cartes)
  • un ampli "super HIFI" des années 75
  • un préampli maison 24 voies pour adapter les niveaux de chaque entrée de mes cartes son.

Bref, en 5 minutes, j'ai câblé mon rack sur les sorties de la table de mixage et suis prêt à enregistrer.

Ce topic concerne donc l'amélioration du préampli maison que voilà :


c'est l'appareil avec une façade en cuivre, que je sérigraphierai plus tard...

Ce préampli comporte 24 circuits identiques : un ampli (OPA27, marche très bien!) avec un potar permettant de gérer un gain de -10dB à +10dB et 4 leds indiquant le niveau de sortie du préampli (-20dB, -6dB, 0dB, +6dB). Derrière, il y a 24 entrées et 24 sorties, logique.

Mon idée est de rajouter une section d'écoute qui prélèverait le signal sur chaque sortie, pour écouter au casque ce qui rentre dans chaque voie de la carte son. Une sorte de multiplexeur analogique, quoi.

Il n'existe pas spécialement de commutateur 24 positions, donc j'ai décidé de confier le taff à un UNO. Mais tant qu'à chercher des multiplexeurs analogiques, je me suis dit qu'on pouvait mettre des potentiomètres numériques sur chaque voie, avec un sommateur. Alors là, ça devient gros! J'ai donc planché sur la question, et j'ai retenu la solution suivante :

  • Chaque sortie du préampli arrive sur deux potars numérique renvoyant chacun le signal (de 0 à 100%) sur un sommateur (un simple AOP), pour avoir une sortie stéréo.
  • les potars seront gérés par une interface PC, via USB et arduino UNO.

Pour les potars, j'ai trouvé les AD5206 plutôt pas mal : 6 potentiomètres par boîtier, ça simplifiera le montage, un boîtier pouvant ainsi gérer 3 voies. je rajoute également un 9ième boîtier pour avoir trois entrées auxiliaires stéréo, ça peut toujours servir!

L'interface PC, inspirée de Cubase :

Les fonctions sont rudimentaires :

  • volume et panoramique de chaque voie
  • mute sur chaque voie (mute = couper la voie tout en conservant le réglage de volume)
  • solo sur chaque voie (mute toutes les autres voies, possibilité de n'écouter que la ou les voies sélectionnées)
  • affectation de chaque voie soit à la sortie master, soit en passant par l'un des 4 groupes (permet le réglage du volume de plusieurs voies en même temps)
  • les groupes sont munis de solo et mute

Bref, on arrive à une table de mixage 24 voies + 3 stéréo toute simple mais avec finalement pas mal de fonctions, juste avec deux potentiomètres par voie.

d'autres photos viendront, il faut encore que je trouve un revendeur qui propose les AD5206 en boîtier DIP, c'est de plus en plus rare!

Je vais donc avoir à faire une carte "mère" comportant l'arduino et l'ampliop "maser", ainsi que 9 cartes de volume qui s'enficheront dessus, chaque carte ayant 3 entrées.

la suite bientôt!

Super_Cinci:
d'autres photos viendront, il faut encore que je trouve un revendeur qui propose les AD5206 en boîtier DIP, c'est de plus en plus rare!

Bonjour Super Cinci
projet sympa
en DIP c'est dispo directement chez AD , mais en qte mini de 15
ou chez digikey à l'unité

Salut
Tu peux aussi regarder chez TI qui a racheté Burr Brown il y a quelques années et qui avait des multiplexeurs analogique d'excellente qualitée.
Pour les potars nums je sais pas.

A+

Artouste:
Bonjour Super Cinci
projet sympa
en DIP c'est dispo directement chez AD , mais en qte mini de 15
ou chez digikey à l'unité
http://www.digikey.fr/product-search/fr?x=18&y=20&lang=fr&site=fr&KeyWords=AD5206

Effectivement, même si c'est un peu plus cher... Chez AD, c'est pas évident, on n'entre pas chez eux comme ça... Il m'en faut 9, mais si j'en prends 15, ce ne sera pas perdu. Il y a 15 ans, je contrôlais déjà des potentiomètre numériques sur le port // d'un PC sous turbo Pascal... j'ai des milliers d'idées dans la tête!
Si ça marche bien, j'ai une table de mixage 24 voies dont je pourrais remplacer tous les potars par des ADxxxx, chose qui n'existe pas : la table analogique gérée par du numérique...
merci

barbudor:
Salut
Tu peux aussi regarder chez TI qui a racheté Burr Brown il y a quelques années et qui avait des multiplexeurs analogique d'excellente qualité.
Pour les potars nums je sais pas.

A+

Ce serait dommage de repasser aux Mux analos, alors que du côté PC, tout est déjà en place, et côté arduino, ce ne sera pas bien compliqué... Quoique si je suis motivé, un petit clavier avec un LCD permettrait du stand alone...

Ils ont des potars aussi : Analog | Embedded processing | Semiconductor company | TI.com

Bah je vais tenter quand même chez AD, en général, leurs composants ne sont pas trop pourris.

La suite des photos, j'ai sorti le préampli pour évaluer la place qu'il reste dedans...

Pour les puristes de la HIFI, mon câblage avec du mono-brin PTT sans blindage marche super, pas un pet de ronfle ni souffle, simplement parce que les préamplis sont en inverseurs (chaque signal d'entrée trouve son opposé dans le "toron", d'où annulation), et que les impédances sont optimisées pour être les plus basses possible (donc moins sensibles aux parasites).

Avec l'alimentation provisoire : deux transfos 12V / 1.5A, j'avais fait une alim avec un transfo classique et des 7815 et 7915 épaulés par des transistors de puissance, mais j'arrive jamais à faire quelque chose de potable, ça chauffe toujours beaucoup trop. Il se peut que je colle une alim de PC dedans, pour avoir du +5, +/-12, mais c'est un peu gros...

Comme j'ai pas mal de transfos de ce genre, on fera avec ça. J'ai collé des condos de filtrage partout dans les circuits, du coup, les alims ont du mal à démarrer (en gros, elles doivent charger l'équivalent de 16000µF, et elles n'aiment pas)... va falloir que je fasse aussi un circuit de démarrage en douceur...

J'ai préparé la "carte mère", les potentiomètres seront adressés par un 74xx154, ce qui me laissera encore quelques voies d'adressage s'il me reste un peu de place dans la boîte déjà bien remplie...

Voilà. Je mettrai également des schémas, si ça peut intéresser du monde.

et bah dit donc beau projet en perspective ^^ et sympa ce pré ampli cuivre sa fait très old school j'adore =)

Bon courage pour la suite.

Skizo !

skizoh:
et bah dit donc beau projet en perspective ^^ et sympa ce pré ampli cuivre sa fait très old school j'adore =)

Bon courage pour la suite.

Skizo !

Oui, pour le cuivre, c'est un choix facile, j'ai récupéré plus de 200Kg de plaques époxy double-face non présensibilisées qui partaient à la poubelle... Avec un coup de fer-à-repasser puis eau oxygénée / acide chlorhydrique, on grave ce qu'on veut dessus (méthode que j'utiliserai pour la "sérigraphie" quand tous mes circuits seront dans la boîte...). Pour faire de petites boîtes, il suffit de faire quelques points de soudure dans les coins pour relier les plaques, c'est super pratique! Et en plus, ça permet de faire des rails d'alimentation directement sur les plaques, gain de temps et de place!

Exemple d'un digicode que je suis en train de finir :

j'ai enlevé le cuivre sur la face avant, c'est un peu kaki, dommage...

La gravure marche aussi très bien avec un bon marqueur. C'est ma méthode de transfert qui reste à peaufiner, car soit ça colle pas (genre les plans de masse), soit ça bave, il est rare que j'arrive à un résultat correct sans repasser certaines pistes au marqueur.

J'attends une réponse de Analog Device, en espérant qu'ils acceptent de m'envoyer du sample... l'espoir fait vivre, non?

Oui l’espoir fait vivre c'est la cas de le dire xDDD

Super_Cinci:
J'attends une réponse de Analog Device, en espérant qu'ils acceptent de m'envoyer du sample... l'espoir fait vivre, non?

Bonjour Supercinci
Apres verif des vieux tiroirs :grin:
Si cela te permet d'avancer au moins dans ton ton code d'interfaçage , je peux t'envoyer 1ex de 5206 en 10K (DIP)
tes infos en MP

Ah ben dis donc, t'as des vieux tiroirs intéressants, toi!!!

AD m'a bien envoyé péter, il y a un an, j'avais eu quelqu'un de plus cool "au bout du fil". Il ne me reste plus que la solution digi-key, mais ta proposition est grandement intéressante : ça me permettrait de pondre un premier proto (j'ai tout dans mes vieux tiroirs à moi, sauf le 5206).

Je t'envoie un mp, et merci d'avance!

Bon, il faut bien avancer, alors ce matin, j'ai fait l'alim. il me faut +/-12V, et 5V.

J'ai pris des blocs secteur à découpage (j'en récupère plein à la déchetterie...), le plus long étant de les sortir de leurs boîtiers en plastique tout collé.

J'ai souder des pattes sur les entrées 220 et les sorties :

Puis présenté sur une plaque de cuivre :

Percé, puis de l'autre côté, dessiné les pistes avec mon petit marqueur :

Un bain rapide dans mon vilain mélange d'eau oxygénée et acide chlorhydrique, et soudage :

Et voilà mon alim :

Pour le +5, c'est un chargeur de portable, et il donne 5.15V à vide mais c'était le plus costaud que j'avais (800mA). Pour le +/-12, ils donnent 2 x 2A, juste ce qu'il faut! (car il faut bien alimenter les 100 leds de l'appareil).

Maintenant, je vais tester la commande du AD5206 que m'a envoyé Artouste (merci encore!) avec un arduino mega (je n'ai plus de UNO dispo...), puis la qualité audio (c'est juste pour brancher un casque d'écoute, l'audio ne passera pas par les potars numériques à l'enregistrement).

A suivre!

Bon, ben ça marche!

Avec ce code là :

/**********************************************
 * Programmation de potentiomètres numeriques *
 *            AD5206                          *
 **********************************************/
 
/* branchement :
 *  - @74LS154 : B3:0
 *  - Data     : B4
 *  - Clk      : B5
*/

#define MAX_POT 54
#define TEMPO 2

byte pot_data[MAX_POT];

void setup() {
  byte i;
  
  for (i=0; i<MAX_POT; i++){  // met toutes les valeurs à 0
    pot_data[i] = 0;
  }
  pot_init();
}

byte x;         // variable temp

void loop() {
    for (x = 0; x < 255; x++){
      pot_set(6, x);
    }
}

Avec la proc d'initialisation :

void pot_init(){ // initialise les potentiomètres à 0
  byte i;
  
  DDRB |= 0x3F;  // pins ctrl pot en sortie
  for (i = 0; i < MAX_POT; i++){  // met tous les potars à 0
    pot_set(i, 0);
  }  
  PORTB |= 0x0F;  // idle : 74LS154 = N°15;
  PORTB &= 0xCF;  //        sdi = 0; sck = 0;
}

et la fonction d'écriture sur les potars :

void pot_set(byte adress, byte data){  // envoie données sur potentiomètre
  byte b, pot;  // adresses décomposées
  byte value;  // valeur d'envoi en série
  byte i;
  
  b = adress / 6;                // décomposition des adresses boîtier
  pot = adress - (b * 6);        //                            potentiomètre
  PORTB &= (b | 0xC0);     // adressage 74LS154 : CS(b) = 0

  for (i = 0; i < 3; i++){                    // adresse A2:0
    value = pot << i;
    if (value & 0x04) {  // teste adresse[2-i]
      PORTB |= 0x10;    // adresse = 1
    } else {
      PORTB &= 0xEF;    // adresse = 0
    }
    PORTB |= 0x20;  // clock high
    PORTB &= 0xDF;  // clock low
  }
  for (i = 0; i < 8; i++){                    // data D7:0
    value = data << i;
    if (value & 0x80) {     // teste data[7-i]
      PORTB |= 0x10;    // data = 1
    } else {
      PORTB &= 0xEF;    // data = 0
    }
    PORTB |= 0x20;  // clock high
    PORTB &= 0xDF;  // clock low
  }
  
  PORTB &= 0xCF;   // idle PORTB
  PORTB |= 0x0F; 
}

Il n'y a pas de tempo dans les impulsions, vu que le composant accepte une clock min de 10ns, comme l'arduino ne saura jamais descendre en dessous de 62.5ns, on a de la marge.

le montage :

Le gros, c'est le démultiplexeur 74LS154 proposant 16 sorties, le petit, c'est le potar numérique.

Le signal :

J'ai mis le potar N°1 entre 0 et 5V, puis voilà ce qu'on trouve sur le wipper :

la rampe fait dans les 8,2ms de long (soit 256 écritures, ça donne un temps d'écriture d'environ 32µs). Donc pour mettre tous mes potars à jour (ils seront 54), il me faudra moins de 2ms, c'est raisonnable. l'idée est que les potars bougent en même temps que la souris du PC... à 550 MAJ possibles par seconde, je pense qu'on tient le bon bout. Il ne faudrait pas que ce soit la liaison série qui ralentisse le système... Si je tourne à 128Kbauds, (à moins que côté PC on puisse aller plus vite?), ça me ferait un temps de transfert max (1 octet de commande et 54 octets de données) de 3.5ms, je ne sais pas si c'est jouable, il faudra tester. Au pire, le pc n'enverra la commande que lorsqu'on relâche la souris... Par contre, si on ne touche qu'à une voie, la commande du potar peut être instantanée. à suivre et à voir.

youpi

Maintenant, on va tester en audio...

Alors pour moi, l'audio est validé, ça sonne très bien. La réponse en fréquence est un poil limitée (50KHz), mais ça passe, aucune différence à l'oreille sur un système HIFI au top (vive les années 80 et les gens qui se débarrassent de ces si bons matériels...)

Pour l'audio, il a fallu ruser un peu, car la potar numérique n'accepte qu'un signal compris entre 0 et 5V, donc un petit offset de 2.5V, une résistance pour diminuer le niveau, et un AOP pour le relever en sortie de potar...

Histoire de faire pratique, j'ai collé un vrai potar sur A0, et la loop :

byte x;

void loop() {
  x = analogRead(A0) >> 2;
  pot_set(10, x);
}

mais voilà, un vilain sifflement traine, c'est le clock permanent entre l'arduino et le AD5206 qui repisse dans l'ampliop. Qu'à cela ne tienne :

byte x, y;

void loop() {
  x = analogRead(A0) >> 2;
  if (x != y) {
    pot_set(10, x);
  }
  y = x;
}

Voilà. l'arduino n'envoie de signaux que si on bouge le potar.

L'usine à gaz :

Oui, pour contrôler le volume d'un signal audio, il y a bien moins cher et moins compliqué : le potar mécanique tout seul...

Bon, on n'a plus qu'à s'attaquer à la liaison série, côté PC et côté arduino. Je serais même tenté d'utiliser un écran LCD graphique de 12" avec un petit clavier, mais bon... c'est plus joli sur un PC! ou mon minitel?

Super_Cinci:
Alors pour moi, l'audio est validé, ça sonne très bien. La réponse en fréquence est un poil limitée (50KHz), mais ça passe, aucune différence à l'oreille sur un système HIFI au top (vive les années 80 et les gens qui se débarrassent de ces si bons matériels...)

Pour l'audio, il a fallu ruser un peu, car la potar numérique n'accepte qu'un signal compris entre 0 et 5V, donc un petit offset de 2.5V, une résistance pour diminuer le niveau, et un AOP pour le relever en sortie de potar...

Histoire de faire pratique, j'ai collé un vrai potar sur A0, et la loop :

Bonsoir supercinci
bon au moins tu aura avancé sur l’interfaçage
tu gere la courbe des AD en Log soft ou tu laisse ça simplement en Lin ?

Artouste:
Bonsoir supercinci
bon au moins tu aura avancé sur l’interfaçage
tu gere la courbe des AD en Log soft ou tu laisse ça simplement en Lin ?

Ouais, c'est bien grâce à toi, merci merci! :roll_eyes:

Pour cette histoire de course... bah... certainement un log soft, car c'est quand même un processeur 32 bits / 2GHz qui gère l'interface, donc c'est lui qui va se taper tout le sale boulot, l'arduino se contentera de recopier les données série sur les potars. Maintenant, il faut voir si c'est vraiment nécessaire, car le potar de 10K est monté en pont diviseur avec une résistance de charge de 22k, ce qui amène déjà une loi peu linéaire.

Je pense avoir trouvé un bon système de dialogue série : un octet code puis donnée(s). Cela me permet de modifier tous les potars avec un seul code (donc 55 octets), mais aussi deux octets pour un seul potar, avec à chaque coup une réponse de l'arduino qui renvoie le dernier octet de la commande reçue, il ne me reste plus qu'à trouver un moyen de faire un "reset" (genre serial.flush puis réactualisation de tous les potars) si jamais la réponse est erronée. Pour ça, je pense utiliser le code 0xFF qui serait prioritaire sur toute réception série, en limitant le max des potars à 254 (0xFE).

J'avais déjà mis des "if defined" dans serial.cpp permettant de ne pas compiler l'ISR série, et ainsi garder cette option pour un programme spécifique dans lequel on définit une constante "DMX", comme la réception DMX par exemple qui n'est pas compatible avec l'ISR du core arduino. à partir de là, il est facile de reconnaître le code "WARNING" et d'intervenir dans toute les procédures

le code arduino est fait et on peut maintenant parler de version bêta, reste le code VB6 où il ne manque plus que la liaison série à implémenter

Super_Cinci:
Pour cette histoire de course... bah... certainement un log soft, car c'est quand même un processeur 32 bits / 2GHz qui gère l'interface, donc c'est lui qui va se taper tout le sale boulot, l'arduino se contentera de recopier les données série sur les potars. Maintenant, il faut voir si c'est vraiment nécessaire, car le potar de 10K est monté en pont diviseur avec une résistance de charge de 22k, ce qui amène déjà une loi peu linéaire.

bonjour supercinci
oui effectivement et il faut aussi rester dans l’optique que ce n'est que pour du retour casque, pas du traitement de voies en direct

Artouste:
oui effectivement et il faut aussi rester dans l’optique que ce n'est que pour du retour casque, pas du traitement de voies en direct

C'est le genre d'argument avec lequel je suis tout-à-fait d'accord et qui me pousse donc à ne pas me prendre la tête de ce côté, la stabilité du système est bien plus importante... Cela dit, ça serait intéressant de voir la courbe de réponse du gain en dB par rapport à la valeur numérique envoyée, et la comparaison avec une loi logarithmique. un p'tit coup d'excel là-dessus et on sera tout de suite fixés!

Le projet risque de s'enterrer provisoirement aujourd'hui, car je récupère une machine monstrueuse en panne cet am, et j'aimerais la remettre en route le plus vite possible, il s'agit d'un "cutter" pour vynil (un plotter mais avec une pointe de découpe à la place du crayon) d'une largeur de travail de 1m20, genre la machine qui va me faire économiser grave sur le marquage (logo) du véhicule de l'association si elle repart... Au pire, ça deviendra une CNC de malade avec un petit arduino au milieu...

A suivre!

Super_Cinci:
...car je récupère une machine monstrueuse en panne cet am, et j'aimerais la remettre en route le plus vite possible, il s'agit d'un "cutter" pour vynil (un plotter mais avec une pointe de découpe à la place du crayon) d'une largeur de travail de 1m20, genre la machine qui va me faire économiser grave sur le marquage (logo) du véhicule de l'association si elle repart... Au pire, ça deviendra une CNC de malade avec un petit arduino au milieu...

A suivre!

je connais les découpeuses
1,20m de laize c'est déjà une belle machine.
Les machines HS le sont souvent à cause de l'empoussierement (Pb mécanique et échauffement de l'electronique) ouvrir d'abord avant d'essayer de brancher pour faire l'inspection "visuelle".
ensuite , et voir si il n'y a pas des zones "chauffées/noircies".
la pire des situations est le/les MCUS/memoire HS.
ça me fait penser que j'ai des plotters plumes HP (serie 747x) géré en HPGL , à voir si ça ne peut pas se décliner en "CNC PCB"

Oui, les plotters et découpeuses sont généralement mal menées, d'où cet encrassement. Il y a aussi la "loi des chimiques", les condensateurs qui crament trop vite car mal conçus. Une première vérif de la tête des chimiques me permettra de trouver une panne. L'avantage qu'on a sur ces machines, c'est qu'il est très rare que les moteurs crament, donc refaire une interface ne me gênerait pas trop. Une telle machine vaut bien quelques nuits blanches!

Je suis un adepte de la récup, donc je commence à avoir des méthodes d'inspection proches des normes de qualité... je suis confiant de ce côté, d'autant plus que cette machine ne me coûte que 1 euro symbolique (ah mince, c'est du HT... 1€20 symbolique alors. Bon, allez, 10 balles!). je prends en préventif 100m² de chutes de vinyle qui va avec pour 100€, c'est une liquidation amiable... Dommage, j'ai raté le PC qui allait avec...

Bon, en attendant, pause. Ah oui, je crois que j'ai un début d'abcès dentaire (gros coup de fatigue depuis hier soir, et depuis ce midi, une grosseur dans le palais qui commence à me gêner, et comme on est dimanche, c'est un signe! (du déjà vécu)), je risque donc de devenir désagréable ou absent quelques jours (soyons préventif...). XD C'est pas le moment, car la fête de la musique, c'est la période de l'année la plus speed pendant 15 jours, du non stop... (encore plus un signe)

A pluche!