Innehållsförteckning:

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

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

Video: ATMega1284 Quad Opamp Effects Box: 4 steg (med bilder)
Video: 4 awesome application of op-amps in circuits 2024, Juli
Anonim
ATMega1284 Quad Opamp Effects Box
ATMega1284 Quad Opamp Effects Box

Stomp Shield för Arduino från Open Music Labs använder en Arduino Uno och fyra opampar som en gitarreffektlåda. I likhet med den tidigare instruerbara som visar hur man portar Electrosmash Uno Pedalshield, har jag också portat boxen Open Music Labs Guitar Effects till ATMega1284P som har åtta gånger mer RAM än Uno (16kB mot 2kB).

Jämfört med den tidigare instruerbara användningen av ATMega1284 -effektenheten har denna låda följande fördelar:

(1) Den har en mixer som blandar den obearbetade signalen med den MCU -bearbetade signalen - det betyder att kvaliteten på signalen vid utgången är mycket bättre.

(2) Den gör 16 -bitars utdatabehandling för de två PWM -utgångarna medan den tidigare effektrutan använder 8 bitar för några av exemplen, till exempel fördröjningseffekten.

(3) Den har en feedbackpotentiometer som kan användas för att förbättra effekterna - särskilt med flanger/phaser -effekten bidrar cirka 30 procent feedback avsevärt till effektens kvalitet.

(4) Lågpassfilterfrekvensen är 10 kHz jämfört med 5 kHz i den tidigare effektboxen - det betyder att signalen vid utgången låter avsevärt "krispigare".

(5) Den använder en annan avbrottsutlösare som kan förklara den betydligt lägre ljudnivån som visas i denna effektruta.

Jag började med att gå ombord på Uno-baserade Open Music Labs Stompbox Shield och jag var så imponerad av prestandan hos denna fyra OpAmp-signalbehandlingskrets (även när jag använde en Arduino Uno), att jag överförde den till stripboard för mer permanent användning.

Samma fyra opamp-kretsar och DSP-kod överfördes sedan till ATMega1284-igen, överraskande förutom de icke-väsentliga förändringarna som att tilldela omkopplare och lysdioder till en annan port och tilldela 7 000 kilo-ord istället för 1 000 kilo-ord RAM för fördröjningsbufferten, endast två väsentliga ändringar måste göras i källkoden, nämligen byte till ADC0 från ADC2, och ändring av Timer1/PWM OC1A och OC1B-utgångarna från port B på Uno till port D (PD5 och PD4) på ATMega1284.

Som tidigare noterats, även om utvecklingsbrädor för ATMega1284 är tillgängliga (Github: MCUdude MightyCore), är det en enkel övning att köpa det bara (bootloader-fria) chipet (köp PDIP-versionen som är brödbräda och strip-board-vänlig), ladda sedan Mark Pendrith-gaffeln på Maniacbug Mighty-1284p Core Optiboot bootloader eller MCUdude Mightycore, genom att använda en Uno som ISP-programmerare och sedan ladda skisser igen via Uno till AtMega1284. Detaljer och länkar för denna process ges i bilaga 1 till den föregående instruktionsboken.

Steg 1: Dellista

Reservdelar
Reservdelar
Reservdelar
Reservdelar

ATMega1284P (PDIP 40 -stifts paketversion) Arduino Uno R3 (används som en ISP för att överföra bagageutrustning och skisser till ATMega1284) OpAmp MCP6004 quad OpAmp (eller liknande RRIO (Rail to Rail Input and Output) OpAmp som TLC2274) 1 x Röd LED 1 x 16 MHz kristall 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 motstånd 4 x 3k9 motstånd 1 x 36k motstånd 1 x 24k motstånd 2 x 1M motstånd 1 x 470 ohm motstånd 3 x 1k motstånd 2 x 50k Potentiometrar (linjär) 1 x 10k Potentiometer (linjär) 3 x tryckknappsbrytare (en av dem bör ersättas med en 3-polig 2- sätt fotpedal om effektboxen ska användas för levande arbete)

Steg 2: Konstruktion

Konstruktion
Konstruktion

Krets 1 visar kretsen som används och Stripboard 1 är dess fysiska representation (Fritzing 1) med Foto 1 den faktiska brödbrädda kretsen i drift. Tre små kretsändringar gjordes: Den delade opamp-förspänningen på halv leveransnivå används för tre OpAmp-steg, parallellmotstånden 3 x 75k och 2 x 75k ohm ersattes med enkla 24k och 36k motstånd och återkopplingskondensatorerna ökades till 120pF för dessa två OpAmp -steg. Vridkontrollen ersattes med två tryckknappar som används för att öka eller minska effektparametrar. Tretrådsanslutningen till ATMega1284 visas på kretsen som ADC till stift 40, PWMlow från stift 19 och PWMhög från stift 18. De tre tryckknapparna är anslutna till stift 1, 36 och 35 och jordas i andra änden. En lysdiod är ansluten via ett 470 -motstånd till stift 2.

OpAmp In- och Output Stages: Det är viktigt att en RRO eller företrädesvis en RRIO OpAmp används på grund av den stora spänningssvängning som krävs vid OpAmp -utgången till ADC för ATMega1284. Dellistan innehåller ett antal alternativa OpAmp -typer. 50k potentiometern används för att justera ingångsförstärkningen till en nivå strax under eventuell förvrängning, och den kan också användas för att justera ingångskänsligheten för en annan ingångskälla än en gitarr, till exempel en musikspelare. Det andra OpAmp -ingångssteget och det första opamp -utgångssteget har ett RC -filter av högre ordning för att ta bort det digitalt genererade MCU -bruset från ljudströmmen.

ADC -steg: ADC: n är konfigurerad att läsa via ett timeravbrott. En 100nF kondensator bör anslutas mellan AREF -stiftet på ATMega1284 och jord för att minska brus eftersom en intern Vcc -källa används som referensspänning - anslut INTE AREF -stiftet till +5 volt direkt!

DAC PWM -steg: Eftersom ATMega1284 inte har sin egen DAC, genereras de utgående ljudvågformerna med hjälp av en pulsbreddsmodulering av ett RC -filter. De två PWM -utgångarna på PD4 och PD5 är inställda som ljudets höga och låga byte och blandas med de två motstånden (3k9 och 1M) i ett 1: 256 -förhållande (låg byte och hög byte) - vilket genererar ljudutmatningen.

Steg 3: Programvara

Programvaran är baserad på Open Music Labs stompbox -pedalskisser, och två exempel ingår nämligen en flanger/phaser -effekt och en fördröjningseffekt. Återigen, som med föregående instruktioner, hade switcharna och lysdioden flyttats till andra portar bort från dem som används av ISP -programmeraren (SCLK, MISO, MOSI och Reset).

Fördröjningsbufferten har ökats från 1000 ord till 7000 ord och PortD har ställts in som utgång för de två PWM -signalerna. Även med ökningen av fördröjningsbufferten använder skissen fortfarande bara cirka 75% av det tillgängliga ATMega1284 16 kB RAM.

Andra exempel som tremolon från Open Music Labs webbplats för pedalSHIELD Uno kan anpassas för användning av Mega1284 genom att ändra inkludera header -filen Stompshield.h:

(1) Ändra DDRB | = 0x06; // ställ in pwm -utgångar (stift 9, 10) till outputtoDDRD | = 0x30;

och

ADMUX = 0x62; // vänsterjustering, adc2, intern vcc som referens till ADMUX = 0x60; // vänsterjustering, adc0, intern vcc som referens // Dessa ändringar är de ENDAST viktiga kodändringarna // vid överföring från Uno till ATMega1284

För de två exemplen som ingår här ingår rubrikfilen i skissen - dvs inga rubrikfiler behöver användas

Tryckknappar 1 och 2 används i några av skisserna för att öka eller minska en effekt. I fördröjningsexemplet ökar eller minskar fördröjningstiden. När skissen först laddas börjar den med maximal fördröjningseffekt. För flanger phaser -skissen, försök att öka feedbackkontrollen för en förbättrad effekt.

För att ändra fördröjningen till en ekoeffekt (lägg till repetition) ändra raden:

buffert [plats] = input; // lagra nytt prov

till

buffert [plats] = (ingång + buffert [plats]) >> 1; // Använd detta för ekoeffekt

Fotkontakten ska vara en trepolig tvåvägsbrytare

Steg 4: Länkar

Elektrosmash

Öppna Music labs Music

ATMega effektpedal

Rekommenderad: