INHOUDSOPGAWE:

ATMega1284 Quad Opamp Effects Box: 4 stappe (met foto's)
ATMega1284 Quad Opamp Effects Box: 4 stappe (met foto's)

Video: ATMega1284 Quad Opamp Effects Box: 4 stappe (met foto's)

Video: ATMega1284 Quad Opamp Effects Box: 4 stappe (met foto's)
Video: PID demo 2024, Julie
Anonim
ATMega1284 Quad Opamp Effects Box
ATMega1284 Quad Opamp Effects Box

Die Stomp Shield vir Arduino van Open Music Labs gebruik 'n Arduino Uno en vier opamps as 'n kitaar -effekkas. Soortgelyk aan die vorige instruksies wat wys hoe u die Electrosmash Uno Pedalshield moet oordra, het ek ook die Open Music Labs Guitar Effects -boks oorgeplaas na die ATMega1284P wat agt keer meer RAM het as die Uno (16kB versus 2kB).

In vergelyking met die vorige instruksies wat die ATMega1284 -effekteenheid gebruik het, het hierdie boks die volgende voordele:

(1) Dit het 'n menger wat die onverwerkte sein met die MCU -verwerkte sein meng - dit beteken dat die kwaliteit van die sein by die uitset baie verbeter word.

(2) Dit verwerk 16 bis -uitvoeruitsette vir die twee PWM -uitsette, terwyl die vorige effekboks 8 bisse gebruik vir sommige voorbeelde, soos die vertragingseffek.

(3) Dit het 'n terugvoerpotensiometer wat gebruik kan word om die effekte te verbeter - veral met die flanger/phaser -effek dra ongeveer 30 persent terugvoer aansienlik by tot die kwaliteit van die effek.

(4) Die laagdeurlaatfilterfrekwensie is 10 kHz in vergelyking met die 5 kHz van die vorige effekboks - dit beteken dat die sein by die uitset aansienlik "krakeriger" klink.

(5) Dit maak gebruik van 'n ander onderbrekingssneller wat die aansienlik laer geraasvlak wat deur hierdie effekboks aangedui word, kan verduidelik.

Ek het begin met die aan boord van die Uno-gebaseerde Open Music Labs Stompbox Shield en ek was so beïndruk met die prestasie van hierdie vier OpAmp-seinverwerkingsbaan (selfs wanneer ek 'n Arduino Uno gebruik), dat ek dit na stripboard oorgeplaas het vir meer permanente gebruik.

Dieselfde vier opamp-stroombaan en DSP-kode is daarna na die ATMega1284 oorgedra-weer, verrassend afgesien van die nie-noodsaaklike veranderinge, soos om die skakelaars en LED aan 'n ander poort toe te ken en 7 000 kilo-woorde toe te ken in plaas van 1, 000 kilo-woord RAM vir die vertragingsbuffer, moes slegs twee noodsaaklike veranderinge in die bronkode aangebring word, naamlik verander na ADC0 van ADC2, en die verandering van die Timer1/PWM OC1A en OC1B uitsette van poort B op die Uno na poort D (PD5 en PD4) op die ATMega1284.

Soos voorheen opgemerk, hoewel ontwikkelingsborde vir die ATMega1284 beskikbaar is (Github: MCUdude MightyCore), is dit 'n maklike oefening om die kaal (selflaaivrye) skyfie te koop (koop die PDIP-weergawe wat brood- en strookbordvriendelik is), laai dan die Mark Pendrith-vurk van die Maniacbug Mighty-1284p Core Optiboot-laaiprogram of die MCUdude Mightycore, deur 'n Uno as die ISP-programmeerder te gebruik, en laai dan weer sketse via die Uno na die AtMega1284. Besonderhede en skakels vir hierdie proses word in bylaag 1 van die vorige instruksies gegee.

Stap 1: Onderdele lys

Onderdele lys
Onderdele lys
Onderdele lys
Onderdele lys

ATMega1284P (PDIP 40 -pins pakket weergawe) Arduino Uno R3 (gebruik as 'n ISP om die laaiplader en sketse oor te dra na die ATMega1284) OpAmp MCP6004 quad OpAmp (of soortgelyke RRIO (Rail to Rail Input and Output) OpAmp soos TLC2274) 1 x Rooi LED 1 x 16 MHz kristal 2 x 27 pF kapasitors 1 x 3n9 kondensator 1 x 1n2 kondensator 1 x 820pF kondensator 2 x 120 pF kondensator 4 x 100n kondensators 3 x 10uF 16v elektrolitiese kapasitors 4 x 75k weerstande 4 x 3k9 weerstande 1 x 36k weerstand 1 x 24k weerstand 2 x 1M weerstande 1 x 470 ohm weerstand 3 x 1k weerstande 2 x 50k potensiometers (lineêr) 1 x 10k potensiaalmeter (lineêr) 3 x drukknopskakelaars (een van hulle moet vervang word met 'n 3-polige 2- footswitch as die effekboks vir lewendige werk gebruik gaan word)

Stap 2: Konstruksie

Konstruksie
Konstruksie

Kring 1 toon die stroombaan wat gebruik word en Strookbord 1 is die fisiese voorstelling daarvan (Fritzing 1) met Foto 1 die werklike broodbord in werking. Drie klein kringveranderings is aangebring: Die gedeelde opamp-vooroordeel op halfvoorsieningsvlak word gebruik vir drie OpAmp-fases, die 3 x 75k en 2 x 75k ohm parallelle weerstande is vervang met enkele 24k en 36k weerstande, en die terugvoerkapasitors is verhoog tot 120pF vir hierdie twee OpAmp -stadiums. Die draaiknop is vervang met twee drukknoppies wat gebruik word om die effekparameters te verhoog of te verlaag. Die driesdraadverbinding met die ATMega1284 word op die kring aangedui as ADC na pen 40, PWMlow vanaf pen 19 en PWMhigh vanaf pen 18. Die drie drukknoppies is aan penne 1, 36 en 35 gekoppel en aan die ander kant geaard. 'N LED is via 'n 470 -weerstand aan pen 2 gekoppel.

OpAmp In- en Output Fases: Dit is belangrik dat 'n RRO of verkieslik 'n RRIO OpAmp gebruik word vanweë die groot spanningswaai wat nodig is by die OpAmp -uitset na die ADC van die ATMega1284. Die onderdele -lys bevat 'n aantal alternatiewe OpAmp -tipes. Die 50k potensiometer word gebruik om die invoerversterking aan te pas op 'n vlak net onder enige vervorming, en dit kan ook gebruik word om die insetgevoeligheid vir 'n ander invoerbron as 'n kitaar soos 'n musiekspeler aan te pas. Die tweede OpAmp -invoerstadium en die eerste opamp -uitsetfase het 'n RC -filter van 'n hoër orde om die digitaal gegenereerde MCU -geraas uit die klankstroom te verwyder.

ADC -fase: Die ADC is ingestel om te lees via 'n timeronderbreking. 'N 100nF -kondensator moet tussen die AREF -pen van die ATMega1284 en die aarde gekoppel word om geraas te verminder, aangesien 'n interne Vcc -bron as 'n verwysingsspanning gebruik word - moenie die AREF -pen direk aan +5 volt koppel nie!

DAC PWM -fase: Aangesien die ATMega1284 nie sy eie DAC het nie, word die uitvoer -klankgolfvorms gegenereer met behulp van 'n polswydte -modulasie van 'n RC -filter. Die twee PWM -uitsette op PD4 en PD5 word as die hoë en lae grepe van die klankuitset gestel en gemeng met die twee weerstande (3k9 en 1M) in 'n 1: 256 -verhouding (lae byte en hoë byte) - wat die klankuitset genereer.

Stap 3: sagteware

Die sagteware is gebaseer op die Open Music Labs stompbox pedaal sketse, en twee voorbeelde is ingesluit naamlik 'n flanger/phaser -effek en 'n vertragingseffek. Net soos met die vorige instruksies, is die skakelaars en LED na ander hawens verskuif weg van die wat deur die ISP -programmeerder (SCLK, MISO, MOSI en Reset) gebruik is.

Die vertragingsbuffer is verhoog van 1000 woorde tot 7000 woorde, en PortD is ingestel as die uitset vir die twee PWM seine. Selfs met die toename in die vertragingsbuffer, gebruik die skets nog steeds slegs ongeveer 75% van die beskikbare ATMega1284 16 kB RAM.

Ander voorbeelde soos die tremolo van die Open Music Labs -webwerf vir die pedalSHIELD Uno kan aangepas word vir gebruik deur die Mega1284 deur die insluit -koplêer Stompshield.h te verander:

(1) Verander DDRB | = 0x06; // stel pwm -uitsette (penne 9, 10) in op outputtoDDRD | = 0x30;

en

ADMUX = 0x62; // links verstel, adc2, interne vcc as verwysing na ADMUX = 0x60; // links verstel, adc0, interne vcc as verwysing // Hierdie veranderinge is die ENIGSTE noodsaaklike kodeveranderinge // wanneer dit van die Uno na die ATMega1284 oorgedra word

Vir die twee voorbeelde wat hier ingesluit is, is die koptekstlêer in die skets ingesluit - dit wil sê dat geen koplêers gebruik moet word nie

Drukknoppies 1 en 2 word in sommige van die sketse gebruik om 'n effek te verhoog of te verminder. In die vertragingsvoorbeeld vergroot of verminder dit die vertragingstyd. As die skets die eerste keer gelaai word, begin dit met die maksimum vertragingseffek. Vir die flanger phaser -skets, probeer om die terugvoerbeheer te verhoog vir 'n verbeterde effek.

Om die vertraging na 'n eggo -effek te verander (voeg herhaling by) verander die reël:

buffer [ligging] = invoer; // stoor nuwe monster

aan

buffer [plek] = (invoer + buffer [ligging]) >> 1; // Gebruik dit vir eggo effct

Die voetschakelaar moet 'n drie -polige tweerigtingskakelaar wees

Stap 4: Skakels

Elektrosmash

Maak Music labs oop Musiek

ATMega -effekpedaal

Aanbeveel: