Innholdsfortegnelse:

ATMega1284 Quad Opamp Effects Box: 4 trinn (med bilder)
ATMega1284 Quad Opamp Effects Box: 4 trinn (med bilder)

Video: ATMega1284 Quad Opamp Effects Box: 4 trinn (med bilder)

Video: ATMega1284 Quad Opamp Effects Box: 4 trinn (med bilder)
Video: PID demo 2024, Juli
Anonim
ATMega1284 Quad Opamp Effects Box
ATMega1284 Quad Opamp Effects Box

Stomp Shield for Arduino fra Open Music Labs bruker en Arduino Uno og fire opamps som en gitareffektboks. I likhet med den forrige instruksjonsboken som viser hvordan du porter Electrosmash Uno Pedalshield, har jeg også portet Open Music Labs Guitar Effects -boksen til ATMega1284P som har åtte ganger mer RAM enn Uno (16kb versus 2kB).

Sammenlignet med den forrige instruerbare bruken av ATMega1284 -effektenheten, har denne boksen følgende fordeler:

(1) Den har en mikser som blander det ubehandlede signalet med MCU -behandlet signal - det betyr at kvaliteten på signalet ved utgangen er mye bedre.

(2) Den utfører 16 -bits utdatabehandling for de to PWM -utgangene der den tidligere effektboksen bruker 8 bits for noen av eksemplene, for eksempel forsinkelseseffekten.

(3) Den har et tilbakemeldingspotensiometer som kan brukes til å forsterke effektene - spesielt med flanger/phaser -effekten gir ca. 30 prosent tilbakemelding betydelig effekt av kvaliteten.

(4) Lavpassfilterfrekvensen er 10 kHz sammenlignet med 5 kHz i den forrige effektboksen - dette betyr at signalet ved utgangen høres betraktelig "sprøere" ut.

(5) Den bruker en annen avbryterutløser som kan forklare det vesentlig lavere støynivået som denne effektboksen viser.

Jeg begynte med å gå ombord på Uno-baserte Open Music Labs Stompbox Shield, og jeg var så imponert over ytelsen til denne fire OpAmp-signalbehandlingskretsen (selv når jeg brukte en Arduino Uno), at jeg overførte den til stripboard for mer permanent bruk.

Den samme fire opamp-kretsen og DSP-koden ble deretter portet til ATMega1284-igjen, overraskende bortsett fra de ikke-essensielle endringene som å tildele bryterne og LED-en til en annen port, og tildele 7 000 kilo-ord i stedet for 1 000 kilo-ord RAM for forsinkelsesbufferen, måtte bare to viktige endringer gjøres i kildekoden, nemlig endring til ADC0 fra ADC2, og endring av Timer1/PWM OC1A og OC1B-utgangene fra Port B på Uno til Port D (PD5 og PD4) på ATMega1284.

Som tidligere nevnt, selv om utviklingsbrett for ATMega1284 er tilgjengelige (Github: MCUdude MightyCore), er det en enkel øvelse å kjøpe den blanke (bootloaderfrie) brikken (kjøp PDIP-versjonen som er brød- og stripebrettvennlig), last deretter Mark Pendrith-gaffelen til Maniacbug Mighty-1284p Core Optiboot bootloader eller MCUdude Mightycore, ved å bruke en Uno som ISP-programmereren, og deretter laste skisser igjen via Uno til AtMega1284. Detaljer og lenker for denne prosessen er gitt i vedlegg 1 til den forrige instruksjonsboken.

Trinn 1: Deleliste

Deleliste
Deleliste
Deleliste
Deleliste

ATMega1284P (PDIP 40 -pinners pakkeversjon) Arduino Uno R3 (brukes som en ISP for å overføre bagasjelasteren og skisser til ATMega1284) OpAmp MCP6004 quad OpAmp (eller lignende RRIO (Rail to Rail Input and Output) OpAmp som TLC2274) 1 x Rød LED 1 x 16 MHz krystall 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 elektrolytiske kondensatorer 4 x 75k motstander 4 x 3k9 motstander 1 x 36k motstand 1 x 24k motstand 2 x 1M motstander 1 x 470 ohm motstand 3 x 1k motstander 2 x 50k Potensiometre (lineær) 1 x 10k potensiometer (lineær) 3 x trykknappbrytere (en av dem bør byttes ut med en 3-polet 2- måte fotbryter hvis effektboksen skal brukes til levende arbeid)

Trinn 2: Konstruksjon

Konstruksjon
Konstruksjon

Krets 1 viser kretsen som brukes og Stripboard 1 er dens fysiske representasjon (Fritzing 1) med Foto 1 den faktiske brødbrettede kretsen i drift. Det ble gjort tre små kretsendringer: Den delte opamp-forspenningen på halvt forsyningsnivå brukes i tre OpAmp-stadier, parallellmotstandene på 3 x 75k og 2 x 75k ohm ble erstattet med enkle 24k og 36k motstander, og tilbakemeldingskondensatorene ble økt til 120pF for disse to OpAmp -stadiene. Dreiekontrollen ble erstattet med to trykknapper som brukes til å øke eller redusere effektparametere. Tretrådstilkoblingen til ATMega1284 er vist på kretsen som ADC til pin 40, PWMlow fra pin 19 og PWMhigh fra pin 18. De tre trykknappene er koblet til pins 1, 36 og 35 og jordet i den andre enden. En LED er koblet via en 470 motstand til pin 2.

OpAmp inngangs- og utgangstrinn: Det er viktig at en RRO eller fortrinnsvis en RRIO OpAmp brukes på grunn av den store spenningssvingningen som kreves ved OpAmp -utgangen til ADC til ATMega1284. Delelisten inneholder en rekke alternative OpAmp -typer. 50k potensiometeret brukes til å justere inngangsforsterkningen til et nivå like under enhver forvrengning, og det kan også brukes til å justere inngangssensitiviteten for en annen inngangskilde enn en gitar, for eksempel en musikkspiller. Det andre OpAmp -inngangstrinnet og det første opamp -utgangstrinnet har et RC -filter av høyere orden for å fjerne den digitalt genererte MCU -støyen fra lydstrømmen.

ADC Stage: ADC er konfigurert til å lese via et tidsavbrudd. En 100nF kondensator bør kobles mellom AREF -pinnen på ATMega1284 og jord for å redusere støy ettersom en intern Vcc -kilde brukes som referansespenning - IKKE koble AREF -pinnen til +5 volt direkte!

DAC PWM Stage: Siden ATMega1284 ikke har sin egen DAC, genereres utgangsbølgeformene ved hjelp av en pulsbreddemodulering av et RC -filter. De to PWM -utgangene på PD4 og PD5 er satt som høye og lave byte på lydutgangen og blandet med de to motstandene (3k9 og 1M) i et 1: 256 -forhold (lav byte og høy byte) - som genererer lydutgangen.

Trinn 3: Programvare

Programvaren er basert på Open Music Labs stompbox pedal sketches, og to eksempler er inkludert, nemlig en flanger/phaser -effekt, og en delay -effekt. Igjen, som med den forrige instruksjonen, hadde bryterne og LED -en blitt flyttet til andre porter vekk fra de som ble brukt av ISP -programmereren (SCLK, MISO, MOSI og Reset).

Forsinkelsesbufferen er økt fra 1000 ord til 7000 ord, og PortD er satt som utgang for de to PWM -signalene. Selv med økningen i forsinkelsesbufferen bruker skissen fremdeles bare omtrent 75% av tilgjengelig ATMega1284 16 kB RAM.

Andre eksempler som tremoloen fra nettstedet Open Music Labs for pedalSHIELD Uno kan tilpasses for bruk av Mega1284 ved å endre inkluderingsoverskriften Stompshield.h:

(1) Endre DDRB | = 0x06; // sett pwm -utganger (pinner 9, 10) til outputtoDDRD | = 0x30;

og

ADMUX = 0x62; // venstre juster, adc2, intern vcc som referanse til ADMUX = 0x60; // venstrejustering, adc0, intern vcc som referanse // Disse endringene er de BARE viktige kodeendringene // ved overføring fra Uno til ATMega1284

For de to eksemplene som er inkludert her, er overskriftsfilen inkludert i skissen - det vil si at ingen overskriftsfiler trenger å brukes

Trykknapper 1 og 2 brukes i noen av skissene for å øke eller redusere en effekt. I forsinkelseseksemplet øker eller reduserer det forsinkelsestiden. Når skissen først lastes inn, starter den med maksimal forsinkelseseffekt. For flanger phaser -skissen, prøv å øke tilbakemeldingskontrollen for en forbedret effekt.

For å endre forsinkelsen til en ekkoeffekt (legg til repetisjon), endre linjen:

buffer [plassering] = input; // lagre ny prøve

til

buffer [location] = (input + buffer [location]) >> 1; // Bruk dette for ekkoeffekt

Fotbryteren skal være en trepolet toveisbryter

Trinn 4: Lenker

Elektrosmash

Åpne Music labs Music

ATMega effektpedal

Anbefalt: