Table des matières:

ATMega1284 Quad Opamp Effects Box : 4 étapes (avec photos)
ATMega1284 Quad Opamp Effects Box : 4 étapes (avec photos)

Vidéo: ATMega1284 Quad Opamp Effects Box : 4 étapes (avec photos)

Vidéo: ATMega1284 Quad Opamp Effects Box : 4 étapes (avec photos)
Vidéo: 4 awesome application of op-amps in circuits 2024, Juillet
Anonim
Boîte d'effets Quad Opamp ATMega1284
Boîte d'effets Quad Opamp ATMega1284

Le Stomp Shield pour Arduino d'Open Music Labs utilise un Arduino Uno et quatre amplis op comme boîte d'effets pour guitare. Semblable à l'instruction précédente qui montre comment porter l'Electrosmash Uno Pedalshield, j'ai également porté la boîte d'effets pour guitare Open Music Labs sur l'ATMega1284P qui a huit fois plus de RAM que l'Uno (16 Ko contre 2 Ko).

Par rapport à la précédente instructable utilisant l'unité d'effets ATMega1284, cette boîte présente les avantages suivants:

(1) Il a un mélangeur qui mélange le signal non traité avec le signal traité MCU - cela signifie que la qualité du signal à la sortie est bien améliorée.

(2) Il effectue un traitement de sortie 16 bits pour les deux sorties PWM alors que la boîte d'effets précédente utilise 8 bits pour certains des exemples tels que l'effet de retard.

(3) Il a un potentiomètre de rétroaction qui peut être utilisé pour améliorer les effets - en particulier avec l'effet flanger/phaser, environ 30 pour cent de rétroaction ajoute considérablement à la qualité de l'effet.

(4) La fréquence du filtre passe-bas est de 10 kHz par rapport aux 5 kHz de la boîte d'effets précédente - cela signifie que le signal à la sortie sonne considérablement plus "croustillant".

(5) Il utilise un déclencheur d'interruption différent, ce qui peut expliquer le niveau de bruit considérablement plus faible affiché par cette boîte d'effets.

J'ai commencé par tester le Stompbox Shield d'Open Music Labs basé sur Uno et j'ai été tellement impressionné par les performances de ce circuit de traitement du signal à quatre OpAmp (même en utilisant un Arduino Uno), que je l'ai transféré sur un stripboard pour une utilisation plus permanente.

Les mêmes quatre circuits opamp et le même code DSP ont ensuite été portés sur l'ATMega1284 - encore une fois, de manière surprenante, à part les changements non essentiels tels que l'attribution des commutateurs et de la LED à un port différent et l'attribution de 7 000 kilo-mots au lieu de 1 000 kilo-mot de RAM pour le tampon de retard, seuls deux changements essentiels ont dû être apportés dans le code source, à savoir le changement de ADC0 à partir de ADC2, et le changement des sorties Timer1/PWM OC1A et OC1B du port B sur l'Uno vers le port D (PD5 et PD4) sur l'ATMega1284.

Comme indiqué précédemment, bien que des cartes de développement pour l'ATMega1284 soient disponibles (Github: MCUdude MightyCore), c'est un exercice facile d'acheter la puce nue (sans chargeur de démarrage) (achetez la version PDIP qui est compatible avec les planches à pain et les planches à ruban), puis chargez le fork Mark Pendrith du chargeur de démarrage Maniacbug Mighty-1284p Core Optiboot ou du MCUdude Mightycore, en utilisant un Uno comme programmeur ISP, puis chargez à nouveau les croquis via Uno vers l'AtMega1284. Les détails et les liens pour ce processus sont donnés dans l'annexe 1 du précédent instructable.

Étape 1: Liste des pièces

Liste des pièces
Liste des pièces
Liste des pièces
Liste des pièces

ATMega1284P (version de package PDIP 40 broches) Arduino Uno R3 (utilisé comme FAI pour transférer le chargeur de démarrage et les croquis vers l'ATMega1284) OpAmp MCP6004 quad OpAmp (ou RRIO similaire (Rail to Rail Input and Output) OpAmp tel que TLC2274) 1 x LED rouge 1 x cristal 16 MHz 2 condensateurs 27 pF 1 condensateur 3n9 1 condensateur 1n2 1 condensateur 820pF 2 condensateurs 120 pF 4 condensateurs 100n 3 condensateurs électrolytiques 10uF 16v 4 résistances 75k 4 résistances 3k9 1 x 36k résistance 1 x résistance 24k 2 x résistances 1M 1 x résistance 470 ohm 3 x résistances 1k 2 x 50k Potentiomètres (linéaires) 1 x 10k Potentiomètre (linéaire) 3 x boutons poussoirs (l'un d'eux doit être remplacé par un 3-pôles 2- façon footswitch si la boîte d'effets va être utilisée pour le travail en direct)

Étape 2: Construction

Construction
Construction

Le circuit 1 montre le circuit utilisé et Stripboard 1 est sa représentation physique (Fritzing 1) avec la photo 1 le circuit réel en fonctionnement. Trois petits changements de circuit ont été apportés: la polarisation partagée de l'ampli-op à demi-niveau d'alimentation est utilisée pour trois étages OpAmp, les résistances parallèles 3 x 75k et 2 x 75k ohms ont été remplacées par des résistances simples de 24k et 36k, et les condensateurs de rétroaction ont été augmentés à 120pF pour ces deux étages OpAmp. La commande rotative a été remplacée par deux boutons poussoirs qui permettent d'augmenter ou de diminuer les paramètres des effets. La connexion à trois fils à l'ATMega1284 est indiquée sur le circuit comme ADC à la broche 40, PWMlow à partir de la broche 19 et PWMhigh à partir de la broche 18. Les trois boutons-poussoirs sont connectés aux broches 1, 36 et 35 et mis à la terre à l'autre extrémité. Une LED est connectée via une résistance 470 à la broche 2.

Étages d'entrée et de sortie OpAmp: Il est important qu'un RRO ou de préférence un RRIO OpAmp soit utilisé en raison de la grande oscillation de tension requise à la sortie OpAmp vers l'ADC de l'ATMega1284. La liste des pièces contient un certain nombre de types OpAmp alternatifs. Le potentiomètre 50k est utilisé pour ajuster le gain d'entrée à un niveau juste en dessous de toute distorsion, et il peut également être utilisé pour ajuster la sensibilité d'entrée pour une source d'entrée autre qu'une guitare telle qu'un lecteur de musique. Le deuxième étage d'entrée OpAmp et le premier étage de sortie OpAmp ont un filtre RC d'ordre supérieur pour supprimer le bruit MCU généré numériquement du flux audio.

ADC Stage: L'ADC est configuré pour lire via une interruption de minuterie. Un condensateur de 100 nF doit être connecté entre la broche AREF de l'ATMega1284 et la terre pour réduire le bruit car une source Vcc interne est utilisée comme tension de référence - NE PAS connecter la broche AREF directement au +5 volts !

Etage DAC PWM: comme l'ATMega1284 ne possède pas son propre DAC, les formes d'onde audio de sortie sont générées à l'aide d'une modulation de largeur d'impulsion d'un filtre RC. Les deux sorties PWM sur PD4 et PD5 sont définies comme les octets hauts et bas de la sortie audio et mélangées avec les deux résistances (3k9 et 1M) dans un rapport 1:256 (octet bas et octet haut) - ce qui génère la sortie audio.

Étape 3: Logiciel

Le logiciel est basé sur les esquisses de pédales pédales d'Open Music Labs, et deux exemples sont inclus, à savoir un effet flanger/phaser et un effet de délai. Encore une fois, comme avec l'instructable précédent, les commutateurs et la LED ont été déplacés vers d'autres ports loin de ceux utilisés par le programmeur du FAI (SCLK, MISO, MOSI et Reset).

Le tampon de retard a été augmenté de 1000 mots à 7000 mots, et PortD a été défini comme sortie pour les deux signaux PWM. Même avec l'augmentation de la mémoire tampon de retard, l'esquisse n'utilise toujours qu'environ 75% de la RAM ATMega1284 16 Ko disponible.

D'autres exemples tels que le trémolo du site Web Open Music Labs pour le pedalSHIELD Uno peuvent être adaptés pour être utilisés par le Mega1284 en modifiant le fichier d'en-tête Stompshield.h:

(1) Modifier DDRB |= 0x06; // définit les sorties pwm (broches 9, 10) sur outputtoDDRD |= 0x30;

et

ADMUX = 0x62; // ajustement à gauche, adc2, vcc interne comme référence à ADMUX = 0x60; // ajustement à gauche, adc0, vcc interne comme référence // Ces changements sont les SEULS changements de code essentiels // lors du portage de l'Uno vers l'ATMega1284

Pour les deux exemples inclus ici, le fichier d'en-tête est inclus dans l'esquisse - c'est-à-dire qu'aucun fichier d'en-tête n'a besoin d'être utilisé

Les boutons poussoirs 1 et 2 sont utilisés dans certains des croquis pour augmenter ou diminuer un effet. Dans l'exemple du retard, il augmente ou diminue le temps de retard. Lorsque l'esquisse est chargée pour la première fois, elle démarre avec l'effet de retard maximal. Pour l'esquisse du phaser du flanger, essayez d'augmenter le contrôle du feedback pour un effet amélioré.

Pour changer le délai en effet d'écho (ajouter une répétition), changez la ligne:

tampon[emplacement] = entrée; // stocker le nouvel échantillon

à

tampon[emplacement] = (entrée + tampon[emplacement])>>1; // Utilisez ceci pour l'effet d'écho

La pédale doit être un interrupteur bidirectionnel à trois pôles

Étape 4: Liens

Electrosmash

Labos musicaux ouverts Musique

Pédale d'effet ATMega

Conseillé: