Taula de continguts:

Pedal d'efectes de guitarra i música ATMega1284P: 6 passos (amb imatges)
Pedal d'efectes de guitarra i música ATMega1284P: 6 passos (amb imatges)

Vídeo: Pedal d'efectes de guitarra i música ATMega1284P: 6 passos (amb imatges)

Vídeo: Pedal d'efectes de guitarra i música ATMega1284P: 6 passos (amb imatges)
Vídeo: An Exit Most Fraught | Critical Role | Campaign 3, Episode 48 2024, Desembre
Anonim
Pedal d'efectes de guitarra i música ATMega1284P
Pedal d'efectes de guitarra i música ATMega1284P

He portat l’Arduino Uno ATMega328 Pedalshield (desenvolupat per Electrosmash i en part basat en el treball a l’Open Music Lab) a l’ATMega1284P que té vuit vegades més RAM que l’Uno (16kB contra 2kB). Un avantatge inesperat addicional és que la versió Mega1284 té un component de soroll molt inferior, fins al punt que quan comparo l’Uno i el Mega1284 amb els mateixos circuits de suport no és irracional descriure l’Uno com a "sorollós" i el Mega1284 com a " tranquil". La memòria RAM més gran significa que es pot obtenir un efecte de retard molt més llarg, i això ho demostra l'exemple d'esbós d'Arduino que he inclòs. El soroll respiratori de fons quan s’utilitza l’efecte Tremelo també és (gairebé) absent amb l’ATMega1284.

Una comparació de tres microprocessadors Atmel AVR és a dir, el 328P que és l’Uno, el 2560P que és el Mega2560 i el Mega1284 mostra que aquest darrer té la major quantitat de memòria RAM dels tres:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 Pins IO 23 32 86 Interrupcions 2 3 8 Entrada analògica 6 8 16

Vaig començar pensant en el pedalSHIELD basat en Uno com a l'especificació Electrosmash, però no tenia el mateix RRO OpAmp que s'especificava. Com a resultat, vaig acabar amb un circuit que vaig considerar que donava resultats acceptables. Els detalls d’aquesta versió de l’Uno es donen a l’apèndix 2.

Aquest mateix circuit es va portar a l'ATMega1284, sorprenentment a part dels canvis no essencials com assignar els commutadors i el LED a un port diferent i assignar 12.000 kB en lloc de 2.000 kB de RAM per al buffer de retard, només calia fer un canvi essencial al codi font, és a dir, canviar les sortides Timer1 / PWM OC1A i OC1B del port B de l’Uno al port D (PD5 i PD4) de l’ATMega1284.

Més tard vaig descobrir les excel·lents modificacions del circuit d’electrosmash de Paul Gallagher i després de provar-ho, aquest és el circuit que presentaré aquí, però també amb modificacions: substitució de l’Uno pel Mega1284, mitjançant un Texas Instruments TLC2272 com a OpAmp, i a causa de l'excel·lent rendiment de soroll del Mega1284, també podria elevar el nivell de freqüència del filtre de pas baix.

És important tenir en compte que, tot i que hi ha disponibles plaques de desenvolupament per a l'ATMega1284 (Github: MCUdude MightyCore), és un exercici senzill comprar el xip nu (sense carregador d'arrencada) (compreu la versió PDIP que és panellera i panellera) friendly) i, a continuació, carregueu la forquilla Mark Pendrith del carregador d’arrencada Core Optiboot Maniacbug Mighty-1284p o l’MCUdude Mightycore mitjançant l’ús d’un Uno com a programador d’ISP i, a continuació, carregueu de nou els esbossos mitjançant l’Uno a l’AtMega1284. Els detalls i enllaços d’aquest procés es donen a l’apèndix 1.

M’agradaria reconèixer les tres fonts més importants de les quals es pot obtenir més informació i donaré enllaços als seus llocs web i al final d’aquest article: Electrosmash, Open Music Labs i Tardate / Paul Gallagher

Pas 1: llista de peces

ATMega1284P (versió del paquet PDIP 40 pins) Arduino Uno R3 (utilitzat com a ISP per transferir el carregador d’arrencada i els esbossos a l’ATMega1284) OpAmp TLC2272 (o similar RRIO (entrada i sortida de rail a rail) OpAmp com MCP6002, LMC6482, TL972) LED vermell 16 MHz cristall 2 x 27 pF condensadors 5 x 6n8 condensadors 270 pF condensador 4 x 100n condensadors 2 x 10uF 16v condensadors electrolítics 6 x 4k7 resistències 100k resistències 2 x 1M resistències 470 ohm resistències 1M2 resistències 100k Potenciòmetre 3 x polsadors (un d'ells s'hauria de substituir per un interruptor de peu bidireccional de 3 pols si la caixa d'efectes s'utilitzarà per treballar en viu)

Pas 2: construcció

Construcció
Construcció
Construcció
Construcció
Construcció
Construcció

L’esquema 1 dóna el circuit utilitzat i la Taula de pa 1 és la seva representació física (Fritzing 1) amb la Foto 1 el circuit real de panell en funcionament. Pot ser avantatjós tenir un potenciòmetre com a mesclador per al senyal sec (igual a l’entrada) i humit (després de processar-lo mitjançant la MCU), i l’esquema 2, la placa de pa 2 i la foto 2 (que figuren a l’apèndix 2) dóna detalls del circuit d’un circuit construït prèviament que incorpora aquesta entrada al mesclador de sortida. Mireu també l'Open Music Labs StompBox per obtenir una altra implementació del mesclador mitjançant quatre OpAmps.

Etapes d'entrada i sortida OpAmp: és important que s'utilitzi un RRO o preferiblement un RRIO OpAmp a causa del gran voltatge que es necessita a la sortida OpAmp a l'ADC de l'ATMega1284. La llista de peces conté una sèrie de tipus OpAmp alternatius. El potenciòmetre de 100 k s’utilitza per ajustar el guany d’entrada a un nivell just per sota de qualsevol distorsió, i també es pot utilitzar per ajustar la sensibilitat d’entrada d’una font d’entrada diferent d’una guitarra com ara un reproductor de música. L'etapa de sortida OpAmp té un filtre RC d'ordre superior per eliminar el soroll MCU generat digitalment del flux d'àudio.

Etapa ADC: l'ADC està configurat per estar llegint tot el temps mitjançant una interrupció. Tingueu en compte que s’ha de connectar un condensador de 100nF entre el pin AREF de l’ATMega1284 i la terra per reduir el soroll ja que s’utilitza una font Vcc interna com a tensió de referència. NO connecteu el pin AREF a +5 volts directament.

Etapa DAC PWM: com que l'ATMega1284 no té el seu propi DAC, les formes d'ona d'àudio de sortida es generen mitjançant una modulació d'amplada d'impuls d'un filtre RC. Les dues sortides PWM de PD4 i PD5 es configuren com els bytes alt i baix de la sortida d’àudio i es barregen amb les dues resistències (4k7 i 1M2) en una proporció 1: 256 (byte baix i byte alt), que genera la sortida d’àudio.. Pot valer la pena experimentar amb altres parells de resistències com el parell 3k9 1M ohm que utilitzen Open Music Labs al seu StompBox.

Pas 3: programari

El programari es basa en els esbossos d’electrosmash i l’exemple inclòs (pedalshield1284delay.ino) s’ha adaptat del seu sketch de retard Uno. Alguns dels commutadors i LED s’havien mogut a altres ports allunyats dels que feia servir el programador ISP (SCLK, MISO, MOSI i Reset), la memòria intermèdia de retard s’ha augmentat de 2000 bytes a 12000 bytes i PortD s’ha definit com a sortida per als dos senyals PWM. Fins i tot amb l’augment de la memòria intermèdia de retard, l’esbós encara només utilitza aproximadament el 70% de les 1284 RAM disponibles.

Altres exemples com l'octaver o el tremolo del lloc web electrosmash per al pedalSHIELD Uno es poden adaptar per al seu ús pel Mega1284 canviant tres seccions del codi:

(1) Canvieu DDRB | = ((PWM_QTY << 1) | 0x02); a DDRD | = 0x30; // El canvi anterior és l'ÚNIC canvi de codi essencial // quan es porta de l'AtMega328 a l'ATMega1284

(2) Canvia #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

a

#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

(3) Canvieu pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, SORTIDA)

a

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT);

Els polsadors 1 i 2 s’utilitzen en alguns esbossos per augmentar o disminuir un efecte. A l'exemple de retard, augmenta o disminueix el temps de retard. Quan es carrega l'esbós per primera vegada, comença amb l'efecte de retard màxim. premeu el botó cap avall (triga uns 20 segons a comptar el compte enrere fins a la posició de retard) i, a continuació, manteniu premut el botó amunt. Escolteu com l’efecte d’escombrat de mantenir el botó canvia l’efecte d’un faser, un cor i una brida, així com el retard en deixar anar el botó.

Per canviar el retard a un efecte d'eco (afegir repetició), canvieu la línia:

DelayBuffer [DelayCounter] = ADC_high;

a

DelayBuffer [DelayCounter] = (ADC_high + (DelayBuffer [DelayCounter])) >> 1;

El pedal hauria de ser un interruptor bidireccional de tres pols i ha d’estar connectat tal com es descriu al lloc web d’electrosmash.

Pas 4: enllaços

Enllaços
Enllaços

(1) Electrosmash:

(2) Obrir Music Labs:

(3) Paul Gallagher:

(4) Carregador d'arrencada 1284:

(5) Microcontrolador AVR ATmega1284 de 8 bits:

Electrosmash Openlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Microcontroller

Pas 5: Apèndix 1 Programació de l'ATMega1284P

Apèndix 1 Programació de l'ATMega1284P
Apèndix 1 Programació de l'ATMega1284P
Apèndix 1 Programació de l'ATMega1284P
Apèndix 1 Programació de l'ATMega1284P
Apèndix 1 Programació de l'ATMega1284P
Apèndix 1 Programació de l'ATMega1284P

Hi ha uns quants llocs web que ofereixen una bona explicació sobre com programar el xip ATMega1284 per utilitzar-lo amb l’IDE Arduino. El procés és essencialment el següent: (1) Instal·leu la forquilla Mark Pendrith del carregador d’arrencada Core Optiboot Maniacbug Mighty-1284p a l’IDE Arduino. (2) Connecteu l'ATMega1284 a una placa de configuració mínima que és un cristall de 16 MHz, condensadors de 2 x 22 pF que fonamenten els dos extrems del cristall, connecteu els dos pins de terra junts (pins 11 i 31) i, a continuació, a la terra Arduino Uno, connecteu Vcc i AVcc junts (pins 10 i 30) i, a continuació, a l’Uno + 5v i, a continuació, connecteu el pin de reset 9 al pin Uno D10, el pin 7 MISO a l’UNO D12, el MOSI el pin 8 a l’Uno D11 i el pin 7 SCLK al pin Uno D13. (3) Connecteu l’Uno a l’IDE Arduino i carregueu l’esquema Arduino com a ISP a l’Uno. (4) Ara seleccioneu la potent placa optiboot 1284 "maníaca" i trieu l'opció Grava el carregador d'arrencada. (5) A continuació, seleccioneu l'esbós de retard 1284 que es dóna aquí com a exemple i pengeu-lo utilitzant l'opció Uno com a programador al menú d'esbossos.

Els enllaços que expliquen el procés amb més detall són:

Utilització de l’ATmega1284 amb l’Arduino IDEA Arduino Mightycore per AVRs compatibles amb taulers grans Construint un prototip ATMega1284p Arduino ATmega1284p bootloader

Pas 6: Apèndix 2 Variació Arduino Uno PedalSHIELD

Apèndix 2 Variació Arduino Uno PedalSHIELD
Apèndix 2 Variació Arduino Uno PedalSHIELD
Apèndix 2 Variació Arduino Uno PedalSHIELD
Apèndix 2 Variació Arduino Uno PedalSHIELD
Apèndix 2 Variació Arduino Uno PedalSHIELD
Apèndix 2 Variació Arduino Uno PedalSHIELD

Schematic3, Breadboard3 i Photo3 ofereixen detalls del circuit basat en Uno que va precedir la versió AtMega1284.

Pot ser avantatjós tenir un potenciòmetre com a mesclador per al senyal sec (igual a l’entrada) i humit (després de processar-lo mitjançant la MCU), i l’esquema 2, la placa de pa 2 i la foto 2 dóna els detalls del circuit d’un circuit construït prèviament que incorpora aquesta mescla d’entrada a sortida. Mireu també l'Open Music Labs StompBox per obtenir una altra implementació del mesclador amb quatre OpAmps

Recomanat: