Sommario:

ATMega1284 Quad Opamp Effects Box: 4 passaggi (con immagini)
ATMega1284 Quad Opamp Effects Box: 4 passaggi (con immagini)

Video: ATMega1284 Quad Opamp Effects Box: 4 passaggi (con immagini)

Video: ATMega1284 Quad Opamp Effects Box: 4 passaggi (con immagini)
Video: 4 awesome application of op-amps in circuits 2024, Luglio
Anonim
ATMega1284 Scatola di effetti Quad Opamp
ATMega1284 Scatola di effetti Quad Opamp

Lo Stomp Shield per Arduino di Open Music Labs utilizza un Arduino Uno e quattro operazionali come box effetti per chitarra. Simile alla precedente istruzione che mostra come portare l'Electrosmash Uno Pedalshield, ho anche portato la scatola degli effetti per chitarra Open Music Labs su ATMega1284P che ha otto volte più RAM rispetto a Uno (16kB contro 2kB).

Rispetto alla precedente istruibile utilizzando l'unità effetti ATMega1284, questa scatola presenta i seguenti vantaggi:

(1) Ha un mixer che mescola il segnale non elaborato con il segnale elaborato dall'MCU, il che significa che la qualità del segnale in uscita è molto migliorata.

(2) Esegue l'elaborazione dell'uscita a 16 bit per le due uscite PWM mentre la precedente casella degli effetti utilizza 8 bit per alcuni degli esempi come l'effetto di ritardo.

(3) Ha un potenziometro di feedback che può essere utilizzato per migliorare gli effetti - specialmente con l'effetto flanger/phaser circa il 30 percento di feedback aggiunge considerevolmente alla qualità dell'effetto.

(4) La frequenza del filtro passa-basso è di 10 kHz rispetto ai 5 kHz del precedente box effetti - questo significa che il segnale in uscita suona notevolmente "più nitido".

(5) Utilizza un trigger di interruzione diverso che può spiegare il livello di rumore notevolmente inferiore mostrato da questa casella di effetti.

Ho iniziato con il breadboarding dello Stompbox Shield Open Music Labs basato su Uno e sono rimasto così colpito dalle prestazioni di questo circuito di elaborazione del segnale a quattro OpAmp (anche quando si utilizza un Arduino Uno), che l'ho trasferito su stripboard per un uso più permanente.

Gli stessi quattro circuiti operazionali e il codice DSP sono stati poi portati su ATMega1284 - di nuovo, sorprendentemente a parte le modifiche non essenziali come l'assegnazione degli interruttori e del LED a una porta diversa e l'allocazione di 7.000 kilo-word invece di 1.000 kilo-word di RAM per il buffer di ritardo, è stato necessario apportare solo due modifiche essenziali al codice sorgente, ovvero passare a ADC0 da ADC2 e modificare le uscite Timer1/PWM OC1A e OC1B dalla porta B su Uno alla porta D (PD5 e PD4) su ATMega1284.

Come notato in precedenza, sebbene siano disponibili schede di sviluppo per ATMega1284 (Github: MCUdude MightyCore), è un esercizio facile acquistare il chip nudo (senza bootloader) (acquistare la versione PDIP che è compatibile con breadboard e strip-board), quindi caricare il fork di Mark Pendrith del bootloader Optiboot Maniacbug Mighty-1284p Core o MCUdude Mightycore, utilizzando uno come programmatore ISP, quindi caricare nuovamente gli sketch tramite Uno su AtMega1284. Dettagli e collegamenti per questo processo sono forniti nell'appendice 1 della precedente istruzione.

Passaggio 1: elenco delle parti

Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti

ATMega1284P (versione con pacchetto PDIP a 40 pin) Arduino Uno R3 (utilizzato come ISP per trasferire il boot loader e gli sketch su ATMega1284) OpAmp MCP6004 quad OpAmp (o simile RRIO (Rail to Rail Input and Output) come TLC2274) 1 x LED rosso 1 x cristallo 16 MHz 2 condensatori 27 pF 1 condensatore 3n9 1 condensatore 1n2 1 condensatore 820pF 2 condensatori 120 pF 4 condensatori 100n 3 condensatori elettrolitici 10uF 16v 4 resistenze 75k 4 resistenze 3k9 1 x 36k resistore 1 x resistore 24k 2 x resistori 1M 1 x resistore 470 ohm 3 x resistori 1k 2 x potenziometri 50k (lineari) 1 x potenziometro 10k (lineare) 3 x interruttori a pulsante (uno di questi deve essere sostituito con un 3-poli 2- modo interruttore a pedale se il box effetti verrà utilizzato per il lavoro dal vivo)

Fase 2: Costruzione

Costruzione
Costruzione

Il circuito 1 mostra il circuito utilizzato e Stripboard 1 è la sua rappresentazione fisica (Fritzing 1) con Foto 1 il circuito breadboard effettivo in funzione. Sono state apportate tre piccole modifiche al circuito: la polarizzazione dell'amplificatore operazionale a metà alimentazione condivisa viene utilizzata per tre stadi OpAmp, i resistori in parallelo da 3 x 75 k e 2 x 75 k ohm sono stati sostituiti con resistori singoli da 24 k e 36 k e i condensatori di retroazione sono stati aumentati a 120pF per questi due stadi OpAmp. Il controllo rotante è stato sostituito con due pulsanti che vengono utilizzati per aumentare o diminuire i parametri degli effetti. La connessione a tre fili all'ATMega1284 è mostrata sul circuito come ADC al pin 40, PWMlow dal pin 19 e PWMhigh dal pin 18. I tre pulsanti sono collegati ai pin 1, 36 e 35 e messi a terra all'altra estremità. Un LED è collegato tramite un resistore 470 al pin 2.

Fasi di ingresso e uscita dell'amplificatore operazionale: è importante utilizzare un amplificatore operazionale RRO o preferibilmente un amplificatore operazionale RRIO a causa della grande oscillazione di tensione richiesta all'uscita dell'amplificatore operazionale verso l'ADC di ATMega1284. L'elenco delle parti contiene una serie di tipi di amplificatori operazionali alternativi. Il potenziometro da 50k viene utilizzato per regolare il guadagno in ingresso a un livello appena al di sotto di qualsiasi distorsione e può anche essere utilizzato per regolare la sensibilità in ingresso per una sorgente di ingresso diversa da una chitarra come un lettore musicale. Il secondo stadio di ingresso dell'amplificatore operazionale e il primo stadio di uscita dell'amplificatore operazionale hanno un filtro RC di ordine superiore per rimuovere il rumore MCU generato digitalmente dal flusso audio.

Fase ADC: l'ADC è configurato per leggere tramite un'interruzione del timer. Un condensatore da 100nF dovrebbe essere collegato tra il pin AREF di ATMega1284 e la massa per ridurre il rumore poiché una sorgente Vcc interna viene utilizzata come tensione di riferimento - NON collegare direttamente il pin AREF a +5 volt!

DAC PWM Stage: Poiché ATMega1284 non dispone di un proprio DAC, le forme d'onda audio in uscita vengono generate utilizzando una modulazione a larghezza di impulso di un filtro RC. Le due uscite PWM su PD4 e PD5 sono impostate come byte alto e basso dell'uscita audio e mescolate con i due resistori (3k9 e 1M) in un rapporto 1:256 (byte basso e byte alto) - che genera l'uscita audio.

Passaggio 3: software

Il software è basato sugli sketch dei pedali stompbox di Open Music Labs e sono inclusi due esempi: un effetto flanger/phaser e un effetto delay. Anche in questo caso, come per l'istruzione precedente, gli interruttori e il LED sono stati spostati su altre porte lontane da quelle utilizzate dal programmatore ISP (SCLK, MISO, MOSI e Reset).

Il buffer di ritardo è stato aumentato da 1000 parole a 7000 parole e PortD è stato impostato come uscita per i due segnali PWM. Anche con l'aumento del buffer di ritardo, lo sketch utilizza ancora solo il 75% circa della RAM disponibile ATMega1284 da 16 kB.

Altri esempi come il tremolo dal sito Web Open Music Labs per il pedalSHIELD Uno possono essere adattati per l'uso da parte del Mega1284 modificando il file di intestazione di inclusione Stompshield.h:

(1) Modifica DDRB |= 0x06; // imposta le uscite pwm (pin 9, 10) su outputtoDDRD |= 0x30;

e

ADMUX = 0x62; // left aggiusta, adc2, internal vcc come riferimento ad ADMUX = 0x60; // regolazione sinistra, adc0, vcc interno come riferimento // Queste modifiche sono le SOLO modifiche al codice essenziali // durante il porting da Uno a ATMega1284

Per i due esempi qui inclusi, il file di intestazione è incluso nello schizzo, ovvero non è necessario utilizzare alcun file di intestazione

I pulsanti 1 e 2 vengono utilizzati in alcuni schizzi per aumentare o diminuire un effetto. Nell'esempio del ritardo aumenta o diminuisce il tempo di ritardo. Quando lo schizzo viene caricato per la prima volta, inizia con l'effetto di ritardo massimo. Per lo schizzo del phaser del flanger, prova ad aumentare il controllo del feedback per un effetto migliorato.

Per modificare il ritardo in un effetto eco (aggiungere ripetizione) modificare la linea:

buffer[posizione] = ingresso; // salva un nuovo campione

a

buffer[posizione] = (ingresso + buffer[posizione])>>1; // Usa questo per l'effetto eco

L'interruttore a pedale dovrebbe essere un interruttore a due vie a tre poli

Passaggio 4: collegamenti

Elettrosmash

Open Music Labs Musica

Pedale effetto ATMega

Consigliato: