Obsah:

ATMega1284P Kytarový a hudební efektový pedál: 6 kroků (s obrázky)
ATMega1284P Kytarový a hudební efektový pedál: 6 kroků (s obrázky)

Video: ATMega1284P Kytarový a hudební efektový pedál: 6 kroků (s obrázky)

Video: ATMega1284P Kytarový a hudební efektový pedál: 6 kroků (s obrázky)
Video: Микроконтроллеры ATMEL - ATmega1284P-AU 2024, Listopad
Anonim
ATMega1284P pedál pro kytarové a hudební efekty
ATMega1284P pedál pro kytarové a hudební efekty

Portoval jsem Arduino Uno ATMega328 Pedalshield (vyvinutý společností Electrosmash a částečně založený na práci v Open Music Lab) na ATMega1284P, který má osmkrát více RAM než Uno (16 kB proti 2 kB). Další neočekávanou výhodou je, že sestava Mega1284 má mnohem nižší hlukovou složku - do té míry, že když porovnám Uno a Mega1284 se stejným obvodem podpory, není nerozumné popisovat Uno jako „hlučné“a Mega1284 jako „ klid . Větší RAM znamená, že lze dosáhnout mnohem delšího efektu zpoždění - a to ukazuje příklad skici Arduina, který jsem zahrnoval. Hluk dýchání na pozadí při použití efektu Tremelo také u ATMega1284 (téměř) chybí.

Porovnání tří mikroprocesorů Atmel AVR, konkrétně 328P, což je Uno, 2560P, což je Mega2560, a Mega1284 ukazuje, že ten druhý má ze všech těchto RAM nejvíce RAM:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO piny 23 32 86 Přerušení 2 3 8 Analogový vstup 6 8 16

Začal jsem chlebem nastupujícím na pedálSHIELD na bázi Uno jako ve specifikaci Electrosmash, ale neměl jsem stejný RRO OpAmp, jak je uvedeno. V důsledku toho jsem skončil s obvodem, který jsem považoval za přijatelný. Podrobnosti o této verzi Uno jsou uvedeny v příloze 2.

Tentýž obvod byl poté přenesen do ATMega1284 - překvapivě kromě nepodstatných změn, jako je přiřazení přepínačů a LED k jinému portu a přidělení 12 000 kB namísto 2 000 kB RAM pro vyrovnávací paměť zpoždění, pouze jedna zásadní změna musela být provedena ve zdrojovém kódu, a to změna výstupů Timer1/PWM OC1A a OC1B z Portu B na Uno na Port D (PD5 a PD4) na ATMega1284.

Později jsem objevil vynikající úpravy obvodu elektrosmash od Paula Gallaghera a po testování je to obvod, který zde představím - ale pak také s úpravami: nahrazení Uno Mega1284, použití Texas Instruments TLC2272 jako OpAmp, a kvůli vynikajícímu šumu Mega1284 jsem mohl také zvýšit úroveň frekvence dolní propusti.

Je důležité si uvědomit, že ačkoliv jsou k dispozici vývojové desky pro ATMega1284 (Github: MCUdude MightyCore), je snadné si koupit holý čip (bez bootloaderu) (koupit verzi PDIP, která je chlebová deska a pásová deska) friendly), poté načtěte vidlici Mark Pendrith bootloaderu Maniacbug Mighty-1284p Core Optiboot nebo MCUdude Mightycore pomocí Uno jako programátoru ISP a poté načtěte náčrty znovu přes Uno do AtMega1284. Podrobnosti a odkazy na tento proces jsou uvedeny v příloze 1.

Chtěl bych ocenit tři nejdůležitější zdroje, ze kterých lze získat další informace, a poskytnout odkazy na jejich webové stránky a konec tohoto článku: Electrosmash, Open Music Labs a Tardate/Paul Gallagher

Krok 1: Seznam dílů

ATMega1284P (verze balíčku PDIP 40 pinů) Arduino Uno R3 (používá se jako ISP k přenosu zavaděče a skic do ATMega1284) OpAmp TLC2272 (nebo podobný RRIO (Rail to Rail vstup a výstup) OpAmp jako MCP6002, LMC6482, TL972) Červená LED 16 MHz krystal 2 x 27 pF kondenzátory 5 x 6n8 kondenzátory 270 pF kondenzátor 4 x 100n kondenzátory 2 x 10uF 16v elektrolytické kondenzátory 6 x 4k7 odpory 100k odpor 2 x 1M odpory 470 ohmový odpor 1M2 odpor 100k potenciometr 3 x tlačítkové spínače (jeden z nich by mělo být nahrazeno 3pólovým 2cestným nožním spínačem, pokud bude efektový box použit pro živou práci)

Krok 2: Stavba

Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce

Schéma 1 udává použitý obvod a Breadboard 1 je jeho fyzické znázornění (Fritzing 1) s fotografií 1 skutečný obvod s obložením chleba v provozu. Může být výhodné mít potenciometr jako směšovač pro signál suchý (stejný jako vstup) a mokrý (po zpracování pomocí MCU) a Schéma 2, Breadboard 2 a Foto 2 (uvedené v příloze 2), podrobnosti o obvodu dříve zkonstruovaného obvodu, který obsahuje takový směšovač vstupu a výstupu. Podívejte se také na StompBox Open Music Labs pro další implementaci mixu pomocí čtyř OpAmps.

Fáze vstupu a výstupu OpAmp: Je důležité, aby byl použit RRO nebo nejlépe RRIO OpAmp, protože je vyžadováno velké kolísání napětí na výstupu OpAmp do ADC ATMega1284. Seznam dílů obsahuje řadu alternativních typů OpAmp. Potenciometr 100k slouží k nastavení vstupního zesílení na úroveň těsně pod jakýmkoli zkreslením a lze jej také použít k nastavení vstupní citlivosti pro jiný vstupní zdroj než pro kytaru, například pro hudební přehrávač. Výstupní stupeň OpAmp má RC filtr vyššího řádu pro odstranění digitálně generovaného šumu MCU ze zvukového proudu.

Fáze ADC: ADC je nakonfigurován tak, aby celou dobu četl pomocí přerušení. Všimněte si toho, že mezi pin AREF ATMega1284 a uzemnění by měl být připojen kondenzátor 100nF, aby se snížil šum, protože jako referenční napětí se používá interní zdroj Vcc - NEPŘIPOJUJTE pin AREF na +5 voltů přímo!

Fáze DAC PWM: Jelikož ATMega1284 nemá vlastní DAC, jsou výstupní zvukové vlny generovány pomocí pulzně šířkové modulace RC filtru. Dva výstupy PWM na PD4 a PD5 jsou nastaveny jako vysoké a nízké bajty zvukového výstupu a smíchány se dvěma odpory (4k7 a 1M2) v poměru 1: 256 (nízký bajt a vysoký bajt) - který generuje zvukový výstup. Může být užitečné experimentovat s jinými páry odporů, jako je pár 3k9 1M ohm používaný Open Music Labs v jejich StompBoxu.

Krok 3: Software

Software je založen na skicách elektrosmash a zahrnutý příklad (pedalshield1284delay.ino) byl upraven z jejich náčrtu zpoždění Uno. Některé přepínače a LED byly přesunuty na jiné porty, než jaké používal programátor ISP (SCLK, MISO, MOSI a Reset), vyrovnávací paměť zpoždění byla zvýšena z 2 000 bajtů na 12 000 bajtů a PortD byl nastaven jako výstup pro dva signály PWM. I s nárůstem vyrovnávací paměti zpoždění skica stále používá pouze asi 70% dostupné 1284 RAM.

Jiné příklady, jako je octaver nebo tremolo z webu electrosmash pro pedalSHIELD Uno, lze upravit pro použití Mega1284 změnou tří sekcí v kódu:

(1) Změnit DDRB | = ((PWM_QTY << 1) | 0x02); do DDRD | = 0x30; // Výše uvedená změna je POUZE zásadní změnou kódu // při portování z AtMega328 do ATMega1284

(2) Změnit #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

na

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

(3) Změnit pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, VÝSTUP)

na

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, VÝSTUP);

Tlačítka 1 a 2 se v některých náčrtcích používají ke zvýšení nebo snížení účinku. V příkladu zpoždění zvyšuje nebo snižuje dobu zpoždění. Když je skica poprvé načtena, začne s efektem maximálního zpoždění. stiskněte tlačítko dolů - odpočítávání až do polohy zpoždění vypnutí trvá přibližně 20 sekund - a poté stiskněte a podržte tlačítko nahoru. Poslechněte si, jak efekt rozmítání podržením tlačítka změní účinek na efekt phaseru, chorusu a lemování, stejně jako zpoždění při uvolnění tlačítka.

Chcete -li změnit zpoždění na efekt ozvěny (přidat opakování), změňte řádek:

DelayBuffer [DelayCounter] = ADC_high;

na

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

Nožní spínač by měl být třípólový dvousměrný přepínač a musí být připojen podle popisu na webové stránce elektroškrt.

Krok 4: Odkazy

Odkazy
Odkazy

(1) Elektrosmash:

(2) Otevřete Music Labs:

(3) Paul Gallagher:

(4) 1284 Bootloader:

(5) ATmega1284 8bitový mikrokontrolér AVR:

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

Krok 5: Dodatek 1 Programování ATMega1284P

Dodatek 1 Programování ATMega1284P
Dodatek 1 Programování ATMega1284P
Dodatek 1 Programování ATMega1284P
Dodatek 1 Programování ATMega1284P
Dodatek 1 Programování ATMega1284P
Dodatek 1 Programování ATMega1284P

Existuje několik webových stránek, které poskytují dobré vysvětlení, jak naprogramovat holý čip ATMega1284 pro použití s Arduino IDE. Proces je v podstatě následující: (1) Nainstalujte vidlici Mark Pendrith bootloaderu Maniacbug Mighty-1284p Core Optiboot do Arduino IDE. (2) Zapojte ATMega1284 na prkénko s minimální konfigurací, kterou je krystal 16 MHz, 2 x 22 pF kondenzátory, které uzemní dva konce krystalu, propojte dva zemnící piny dohromady (piny 11 a 31) a poté k uzemnění Arduino Uno, spojte Vcc a AVcc dohromady (piny 10 a 30) a poté k Uno +5v, poté připojte resetovací pin 9 ke kolíku Uno D10, pin MISO 7 k UNO D12, The MOSI pin 8 na Uno D11 a pin SCLK 7 na pin Uno D13. (3) Připojte Uno k Arduino IDE a načtěte příklad skici Arduino jako ISP na Uno. (4) Nyní vyberte mocnou desku 1284 „maniak“s optibootem a zvolte možnost Burn bootloader. (5) Poté vyberte skicu 1284 uvedenou zde jako příklad a nahrajte ji pomocí možnosti Uno jako programátor v nabídce skic.

Odkazy, které proces podrobněji vysvětlují, jsou:

Použití ATmega1284 s Arduino IDEArduino Mightycore pro velké AVR vhodné pro prkénko Budování prototypu ATMega1284p Arduino ATmega1284p bootloader

Krok 6: Příloha 2 Variace Arduino Uno PedalSHIELD

Příloha 2 Variace Arduino Uno PedalSHIELD
Příloha 2 Variace Arduino Uno PedalSHIELD
Příloha 2 Variace Arduino Uno PedalSHIELD
Příloha 2 Variace Arduino Uno PedalSHIELD
Příloha 2 Variace Arduino Uno PedalSHIELD
Příloha 2 Variace Arduino Uno PedalSHIELD

Schematic3, Breadboard3 a Photo3 uvádí podrobnosti o obvodu na bázi Uno, který předcházel sestavení AtMega1284.

Může být výhodné mít potenciometr jako směšovač pro suchý (stejný jako vstup) a mokrý (po zpracování pomocí MCU) signálu a Schéma 2, Breadboard 2 a Foto 2 uvádí detaily obvodu dříve vytvořeného obvodu který zahrnuje takový vstupně -výstupní směšovač. Podívejte se také na StompBox Open Music Labs pro další implementaci mixu pomocí čtyř OpAmps

Doporučuje: