Indholdsfortegnelse:

ATMega1284 Quad Opamp Effects Box: 4 trin (med billeder)
ATMega1284 Quad Opamp Effects Box: 4 trin (med billeder)

Video: ATMega1284 Quad Opamp Effects Box: 4 trin (med billeder)

Video: ATMega1284 Quad Opamp Effects Box: 4 trin (med billeder)
Video: EEVblog #500 - Live Show 2024, Juli
Anonim
ATMega1284 Quad Opamp Effects Box
ATMega1284 Quad Opamp Effects Box

Stomp Shield til Arduino fra Open Music Labs bruger en Arduino Uno og fire opamps som en guitareffektboks. I lighed med den tidligere instruerbare, der viser, hvordan du porter Electrosmash Uno Pedalshield, har jeg også portet boksen Open Music Labs Guitar Effects til ATMega1284P, der har otte gange mere RAM end Uno (16kB versus 2kB).

Sammenlignet med den tidligere instruerbare anvendelse af ATMega1284 -effektenheden, har denne boks følgende fordele:

(1) Den har en mixer, der blander det ubehandlede signal med det MCU -behandlede signal - det betyder, at kvaliteten af signalet ved udgangen er meget forbedret.

(2) Det udfører 16 bit outputbehandling for de to PWM -udgange, hvor den tidligere effektboks bruger 8 bits til nogle af eksemplerne, f.eks. Forsinkelseseffekten.

(3) Den har et feedbackpotentiometer, der kan bruges til at forstærke effekterne - især med flanger/phaser -effekten øger ca. 30 procent feedback betydeligt effekten af kvaliteten.

(4) Lavpasfilterfrekvensen er 10 kHz sammenlignet med 5 kHz i den tidligere effektboks - det betyder, at signalet ved udgangen lyder betydeligt "sprødere".

(5) Den bruger en anden afbrydelsesudløser, som kan forklare det betydeligt lavere støjniveau, der vises i denne effektboks.

Jeg startede med at gå om bord på Uno-baserede Open Music Labs Stompbox Shield, og jeg var så imponeret over udførelsen af dette fire OpAmp signalbehandlingskredsløb (selv når jeg brugte en Arduino Uno), at jeg overførte det til stripboard til mere permanent brug.

Det samme fire opamp-kredsløb og DSP-kode blev derefter portet til ATMega1284-igen overraskende bortset fra de ikke-væsentlige ændringer som f.eks. At tildele switches og LED til en anden port og tildele 7.000 kilo-ord i stedet for 1.000 kilo-ord RAM til forsinkelsesbufferen, skulle der kun foretages to væsentlige ændringer i kildekoden, nemlig ændring til ADC0 fra ADC2 og ændring af Timer1/PWM OC1A og OC1B-output fra Port B på Uno til Port D (PD5 og PD4) på ATMega1284.

Som tidligere bemærket, selvom udviklingsbrætter til ATMega1284 er tilgængelige (Github: MCUdude MightyCore), er det en let øvelse at købe den bare (bootloader-fri) chip (køb PDIP-versionen, der er brød-og strip-board venlig), indlæs derefter Mark Pendrith-gaffelen på Maniacbug Mighty-1284p Core Optiboot bootloader eller MCUdude Mightycore ved at bruge en Uno som internetudbyder og derefter indlæse skitser igen via Uno til AtMega1284. Detaljer og links til denne proces er angivet i tillæg 1 til den tidligere instruerbare.

Trin 1: Deleliste

Liste over dele
Liste over dele
Liste over dele
Liste over dele

ATMega1284P (PDIP 40 pin pakkeversion) Arduino Uno R3 (bruges som en internetudbyder til at overføre bagagerummet og skitser til ATMega1284) OpAmp MCP6004 quad OpAmp (eller lignende RRIO (Rail to Rail Input and Output) OpAmp såsom TLC2274) 1 x Rød LED 1 x 16 MHz krystal 2 x 27 pF kondensatorer 1 x 3n9 kondensator 1 x 1n2 kondensator 1 x 820pF kondensator 2 x 120 pF kondensator 4 x 100n kondensatorer 3 x 10uF 16v elektrolytkondensatorer 4 x 75k modstande 4 x 3k9 modstande 1 x 36k modstand 1 x 24k modstand 2 x 1M modstande 1 x 470 ohm modstand 3 x 1k modstande 2 x 50k Potentiometre (lineær) 1 x 10k potentiometer (lineær) 3 x trykknapkontakter (en af dem bør erstattes med en 3-polet 2- måde fodkontakt, hvis effektboksen skal bruges til levende arbejde)

Trin 2: Konstruktion

Konstruktion
Konstruktion

Kredsløb 1 viser det anvendte kredsløb og Stripboard 1 er dets fysiske repræsentation (Fritzing 1) med Foto 1 det faktiske brødbrættede kredsløb i drift. Der blev foretaget tre små kredsløb: Den delte opamp-bias på halvt forsyningsniveau bruges til tre OpAmp-trin, 3 x 75k og 2 x 75k ohm parallelle modstande blev udskiftet med enkelte 24k og 36k modstande, og feedback kondensatorerne blev forøget til 120pF til disse to OpAmp -stadier. Drejekontrollen blev udskiftet med to trykknapper, der bruges til at øge eller reducere effektparametre. Tretrådsforbindelsen til ATMega1284 er vist på kredsløbet som ADC til pin 40, PWMlow fra pin 19 og PWMhigh fra pin 18. De tre trykknapper er forbundet til ben 1, 36 og 35 og jordet i den anden ende. En LED er forbundet via en 470 modstand til pin 2.

OpAmp Input og Output Stages: Det er vigtigt, at der bruges en RRO eller fortrinsvis en RRIO OpAmp på grund af den store spændingssving, der kræves ved OpAmp -udgangen til ADC'en i ATMega1284. Delelisten indeholder en række alternative OpAmp -typer. 50k potentiometeret bruges til at justere inputforstærkningen til et niveau lige under enhver forvrængning, og det kan også bruges til at justere inputfølsomheden for en anden inputkilde end en guitar, f.eks. En musikafspiller. Det andet OpAmp -indgangstrin og det første opamp -udgangstrin har et RC -filter af højere orden for at fjerne den digitalt genererede MCU -støj fra lydstrømmen.

ADC -fase: ADC'en er konfigureret til at aflæse via en timerafbrydelse. En 100nF kondensator bør tilsluttes mellem AREega -stiften på ATMega1284 og jord for at reducere støj, da en intern Vcc -kilde bruges som en referencespænding - tilslut IKKE AREF -stiften til +5 volt direkte!

DAC PWM -fase: Da ATMega1284 ikke har sin egen DAC, genereres output -lydbølgeformer ved hjælp af en pulsbreddemodulation af et RC -filter. De to PWM -udgange på PD4 og PD5 er indstillet som lydens høje og lave byte og blandes med de to modstande (3k9 og 1M) i et 1: 256 -forhold (lav byte og høj byte) - som genererer lydoutput.

Trin 3: Software

Softwaren er baseret på Open Music Labs stompbox pedal sketches, og to eksempler er inkluderet, nemlig en flanger/phaser -effekt og en delay -effekt. Igen som med den tidligere instruerbare var switches og LED blevet flyttet til andre porte væk fra dem, der blev brugt af ISP -programmereren (SCLK, MISO, MOSI og Reset).

Forsinkelsesbufferen er blevet øget fra 1000 ord til 7000 ord, og PortD er blevet indstillet som output for de to PWM -signaler. Selv med stigningen i forsinkelsesbufferen bruger skitsen stadig kun ca. 75% af den tilgængelige ATMega1284 16 kB RAM.

Andre eksempler, f.eks. Tremoloen fra Open Music Labs -webstedet til pedalSHIELD Uno, kan tilpasses til brug af Mega1284 ved at ændre inkluderingsoverskriftsfilen Stompshield.h:

(1) Skift DDRB | = 0x06; // indstil pwm -udgange (ben 9, 10) til outputtoDDRD | = 0x30;

og

ADMUX = 0x62; // venstrejustering, adc2, intern vcc som reference til ADMUX = 0x60; // venstrejustering, adc0, intern vcc som reference // Disse ændringer er de KUN væsentlige kodeændringer // ved overførsel fra Uno til ATMega1284

For de to eksempler, der er inkluderet her, er header -filen inkluderet i skitsen - dvs. ingen header -filer skal bruges

Trykknapper 1 og 2 bruges i nogle af skitserne til at øge eller reducere en effekt. I forsinkelseseksemplet øges eller formindskes forsinkelsestiden. Når skitsen først indlæses, starter den med den maksimale forsinkelseseffekt. For flanger phaser -skitsen, prøv at øge feedback -kontrollen for en forbedret effekt.

For at ændre forsinkelsen til en ekkoeffekt (tilføj gentagelse) skal du ændre linjen:

buffer [placering] = input; // gem ny prøve

til

buffer [placering] = (input + buffer [placering]) >> 1; // Brug dette til ekkoeffekt

Fodkontakten skal være en trepolet tovejskontakt

Trin 4: Links

Elektrosmash

Åbn Music labs Music

ATMega effektpedal

Anbefalede: