Innehållsförteckning:

ATMega1284P Pedal för gitarr och musikeffekter: 6 steg (med bilder)
ATMega1284P Pedal för gitarr och musikeffekter: 6 steg (med bilder)

Video: ATMega1284P Pedal för gitarr och musikeffekter: 6 steg (med bilder)

Video: ATMega1284P Pedal för gitarr och musikeffekter: 6 steg (med bilder)
Video: Roland GP6 flygel 2024, Juli
Anonim
ATMega1284P Pedal för gitarr- och musikeffekter
ATMega1284P Pedal för gitarr- och musikeffekter

Jag har portat Arduino Uno ATMega328 Pedalshield (som utvecklats av Electrosmash och delvis baserat på arbete på Open Music Lab) till ATMega1284P som har åtta gånger mer RAM än Uno (16kB mot 2kB). En extra oväntad fördel är att Mega1284 -byggnaden har en mycket lägre bruskomponent - i den mån när jag jämför Uno och Mega1284 med samma stödkretsar är det inte orimligt att beskriva Uno som "bullriga" och Mega1284 som " tyst". Det större RAM -minnet innebär att en mycket längre fördröjningseffekt kan uppnås - och det demonstreras av Arduino -skissexemplet som jag har inkluderat. Bakgrundsandningsbruset när du använder Tremelo -effekten är också (nästan) frånvarande med ATMega1284.

En jämförelse av tre Atmel AVR -mikroprocessorer nämligen 328P som är Uno, 2560P som är Mega2560 och Mega1284 visar att den senare har mest RAM -minne av de tre:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO Pins 23 32 86 Avbrott 2 3 8 Analog In 6 8 16

Jag började med att bräda ombord på Uno-baserade pedalSHIELD som i Electrosmash-specifikationen men jag hade inte samma RRO OpAmp som specificerat. Som ett resultat hamnade jag med en krets som jag ansåg ge acceptabla resultat. Information om denna Uno -version finns i bilaga 2.

Samma krets överfördes sedan till ATMega1284 - förvånansvärt förutom de icke -väsentliga ändringarna, till exempel att koppla omkopplare och lysdiod till en annan port, och tilldela 12 000 kB istället för 2 000 kB RAM för fördröjningsbufferten, bara en väsentlig ändring måste göras i källkoden, nämligen att ändra Timer1/PWM OC1A och OC1B -utgångarna från Port B på Uno till Port D (PD5 och PD4) på ATMega1284.

Jag upptäckte senare de utmärkta modifieringarna av elektrosmashkretsen av Paul Gallagher och efter testning är detta kretsen jag kommer att presentera här - men sedan också med modifieringar: byte av Uno med Mega1284, med hjälp av en Texas Instruments TLC2272 som OpAmp, och på grund av den utmärkta brusprestandan hos Mega1284 kan jag också höja lågpassfilterfrekvensnivån.

Det är viktigt att notera att även om utvecklingsbrädor för ATMega1284 finns tillgängliga (Github: MCUdude MightyCore), är det en enkel övning att köpa det nakna (bootloader-fria) chipet (köp PDIP-versionen som är brödbräda och bandbräda) 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 finns i bilaga 1.

Jag vill erkänna de tre viktigaste källorna från vilka ytterligare information kan erhållas och kommer att ge länkar till deras webbplatser och slutet av denna artikel: Electrosmash, Open Music Labs och Tardate/Paul Gallagher

Steg 1: Dellista

ATMega1284P (PDIP 40 -stifts paketversion) Arduino Uno R3 (används som en ISP för att överföra bagageutrustning och skisser till ATMega1284) OpAmp TLC2272 (eller liknande RRIO (Rail to Rail Input and Output) OpAmp som MCP6002, LMC6482, TL972) Röd LED 16 MHz kristall 2 x 27 pF kondensatorer 5 x 6n8 kondensatorer 270 pF kondensator 4 x 100n kondensatorer 2 x 10uF 16v elektrolytkondensatorer 6 x 4k7 motstånd 100k motstånd 2 x 1M motstånd 470 ohm motstånd 1M2 motstånd 100k Potentiometer 3 x tryckknappsbrytare (en av dem bör ersättas med en 3-polig 2-vägs fotbrytare om effektboxen ska användas för levande arbete)

Steg 2: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Schematisk 1 ger kretsen som används och Breadboard 1 är dess fysiska representation (Fritzing 1) med Foto 1 den egentliga brödbrädda kretsen i drift. Det kan vara fördelaktigt att ha en potentiometer som mixer för den torra (lika med ingången) och den våta (efter bearbetning av MCU) -signalen, och Schematisk 2, Breadboard 2 och Foto 2 (listad i bilaga 2) ger kretsdetaljer för en tidigare konstruerad krets som innehåller en sådan ingång till utmatningsblandare. Titta också på Open Music Labs StompBox för ytterligare en mixerimplementering med fyra OpAmps.

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. 100k 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. 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 för att läsa via ett avbrott hela tiden. Observera att en 100nF kondensator bör anslutas mellan AREF -stiftet på ATMega1284 och jordas 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 ställs in som höga och låga byte för ljudutgången och blandas med de två motstånden (4k7 och 1M2) i ett 1: 256 -förhållande (låg byte och hög byte) - vilket genererar ljudutmatningen. Det kan vara värt att experimentera med andra motståndspar som 3k9 1M ohm -paret som används av Open Music Labs i deras StompBox.

Steg 3: Programvara

Programvaran är baserad på elektrosmashskisser, och exemplet som ingår (pedalshield1284delay.ino) har anpassats från deras Uno -fördröjningsskiss. Några av switcharna och lysdioden hade 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 2000 byte till 12000 byte 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 70% av det tillgängliga 1284 RAM -minnet.

Andra exempel som octaver eller tremolo från electrosmash -webbplatsen för pedalenSHIELD Uno kan anpassas för användning av Mega1284 genom att ändra tre sektioner i koden:

(1) Ändra DDRB | = ((PWM_QTY << 1) | 0x02); till DDRD | = 0x30; // Ändringen ovan är den ENDAST viktiga kodändringen // vid överföring från AtMega328 till ATMega1284

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

till

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

(3) Ändra pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)

till

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

Tryckknapparna 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. tryck på nedåtknappen - det tar cirka 20 sekunder att räkna ner hela vägen till fördröjningsläget - och tryck sedan och håll in uppåtknappen. Lyssna på hur svepeffekten av att hålla inne knappen ändrar effekten till en phaser, refräng och fläns, samt fördröjningen när knappen släpps.

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

DelayBuffer [DelayCounter] = ADC_high;

till

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

Fotkontakten ska vara en trepolig tvåvägsbrytare och måste anslutas enligt beskrivningen på elektrosmashwebbplatsen.

Steg 4: Länkar

Länkar
Länkar

(1) Elektrosmash:

(2) Öppna Music Labs:

(3) Paul Gallagher:

(4) 1284 Bootloader:

(5) ATmega1284 8 -bitars AVR -mikrokontroller:

ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Microcontroller

Steg 5: Bilaga 1 Programmering av ATMega1284P

Bilaga 1 Programmering av ATMega1284P
Bilaga 1 Programmering av ATMega1284P
Bilaga 1 Programmering av ATMega1284P
Bilaga 1 Programmering av ATMega1284P
Bilaga 1 Programmering av ATMega1284P
Bilaga 1 Programmering av ATMega1284P

Det finns några webbplatser som ger en bra förklaring om hur man programmerar det nakna ATMega1284 -chipet för användning med Arduino IDE. Processen är i huvudsak följande: (1) Installera Mark Pendrith-gaffeln på Maniacbug Mighty-1284p Core Optiboot bootloader i Arduino IDE. (2) Anslut ATMega1284 på en brödbräda med sin minsta konfiguration som är en 16 MHz kristall, 2 x 22 pF kondensatorer som grundar kristallens två ändar, Anslut de två jordpinnarna tillsammans (stift 11 och 31) och sedan till Arduino Uno -marken, anslut Vcc och AVcc tillsammans (stift 10 och 30) och sedan till Uno +5v, anslut sedan återställningsstift 9 till Uno D10 -stift, MISO -stift 7 till UNO D12, MOSI stift 8 till Uno D11 och SCLK -stift 7 till Uno D13 -stift. (3) Anslut Uno till Arduino IDE och ladda skissexemplet Arduino som ISP på Uno. (4) Välj nu det 1284 "galna" mäktiga optibootkortet och välj alternativet Burn bootloader. (5) Välj sedan 1284 fördröjningsskissen som ges här som ett exempel och ladda upp den med hjälp av alternativet Uno som programmerare i skissmenyn.

Länkar som förklarar processen mer detaljerat är:

Använda ATmega1284 med Arduino IDEArduino Mightycore för stora breadboard -vänliga AVRs Bygga en ATMega1284p -prototyp Arduino ATmega1284p bootloader

Steg 6: Bilaga 2 Arduino Uno PedalSHIELD Variation

Bilaga 2 Arduino Uno PedalSHIELD Variation
Bilaga 2 Arduino Uno PedalSHIELD Variation
Bilaga 2 Arduino Uno PedalSHIELD Variation
Bilaga 2 Arduino Uno PedalSHIELD Variation
Bilaga 2 Arduino Uno PedalSHIELD Variation
Bilaga 2 Arduino Uno PedalSHIELD Variation

Schematic3, Breadboard3 och Photo3 ger detaljer om den uno-baserade kretsen som föregick AtMega1284-bygget.

Det kan vara fördelaktigt att ha en potentiometer som mixer för den torra (lika med ingången) och den våta (efter bearbetning av MCU) -signalen, och Schematisk 2, Breadboard 2 och Foto 2 ger kretsdetaljer för en tidigare konstruerad krets som innehåller en sådan inmatning till utmatningsblandare. Titta också på Open Music Labs StompBox för ytterligare en mixerimplementering med fyra OpAmps

Rekommenderad: