Съдържание:

ATMega1284P Педал за китара и музикални ефекти: 6 стъпки (със снимки)
ATMega1284P Педал за китара и музикални ефекти: 6 стъпки (със снимки)

Видео: ATMega1284P Педал за китара и музикални ефекти: 6 стъпки (със снимки)

Видео: ATMega1284P Педал за китара и музикални ефекти: 6 стъпки (със снимки)
Видео: Hex Game 01: Макетная плата и дизайн печатной платы 2024, Юли
Anonim
ATMega1284P Педал за китара и музикални ефекти
ATMega1284P Педал за китара и музикални ефекти

Портирах Arduino Uno ATMega328 Pedalshield (разработен от Electrosmash и отчасти базиран на работа в Open Music Lab) към ATMega1284P, който има осем пъти повече RAM от Uno (16kB срещу 2kB). Допълнително неочаквано предимство е, че Mega1284 build има много по -нисък компонент на шума - дотолкова, доколкото когато сравнявам Uno и Mega1284, използвайки една и съща поддръжка, не е неразумно да опиша Uno като „шумен“, а Mega1284 като „ тихо . По -голямата RAM означава, че може да се постигне много по -дълъг ефект на забавяне - и това се демонстрира от примера на скицата на Arduino, който включих. Фоновият дишащ шум при използване на ефекта Tremelo също (почти) липсва при ATMega1284.

Сравнение на три микропроцесора Atmel AVR, а именно 328P, който е Uno, 2560P, който е Mega2560, и Mega1284 показва, че последният има най -много RAM от трите:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO пина 23 32 86 Прекъсвания 2 3 8 Аналогов вход 6 8 16

Започнах с хляб на борда на Uno-базирания педал SHIELD, както в спецификацията на Electrosmash, но нямах същия RRO OpAmp, както е посочено. В резултат на това получих верига, която смятах, че дава приемливи резултати. Подробностите за тази версия на Uno са дадени в допълнение 2.

След това същата схема беше пренесена към ATMega1284 - изненадващо, освен несъществените промени, като например присвояване на превключвателите и светодиода към различен порт, и разпределяне на 12 000 kB вместо 2 000 kB RAM само за буфера за забавяне една съществена промяна трябваше да бъде направена в изходния код, а именно промяна на изходите на Timer1/PWM OC1A и OC1B от порт B на Uno към порт D (PD5 и PD4) на ATMega1284.

По -късно открих отличните модификации на електрическата верига от Пол Галахър и след тестването, това е схемата, която ще представя тук - но след това и с модификации: заместване на Uno с Mega1284, използвайки Texas Instruments TLC2272 като OpAmp и поради отличната производителност на шума на Mega1284, бих могъл да повиша и нискочестотния филтър.

Важно е да се отбележи, че въпреки че са налични дъски за разработка на ATMega1284 (Github: MCUdude MightyCore), това е лесно упражнение за закупуване на чип (без зареждащо устройство) чип (купете версията PDIP, която е хляб и лента за платки приятелски), след това заредете вилицата Mark Pendrith на зареждащия механизъм Maniacbug Mighty-1284p Core Optiboot или MCUdude Mightycore, като използвате Uno като програмист на ISP и след това отново заредите скици през Uno към AtMega1284. Подробности и връзки за този процес са дадени в допълнение 1.

Бих искал да призная трите най -важни източника, от които може да се получи допълнителна информация, и ще дам връзки към техните уебсайтове и края на тази статия: Electrosmash, Open Music Labs и Tardate/Paul Gallagher

Стъпка 1: Списък на частите

ATMega1284P (версия на PDIP 40 пинов пакет) Arduino Uno R3 (използва се като ISP за прехвърляне на зареждащото устройство и скици към ATMega1284) OpAmp TLC2272 (или подобен RRIO (железопътен към железопътен вход и изход) OpAmp като MCP6002, LMC6482, TL972) Червен LED 16 MHz кристал 2 x 27 pF кондензатори 5 x 6n8 кондензатори 270 pF кондензатор 4 x 100n кондензатори 2 x 10uF 16v електролитни кондензатори 6 x 4k7 резистори 100k резистор 2 x 1M резистори 470 ома резистор 1M2 резистор 100k потенциометър 3 x бутонни превключватели (един от тях трябва да бъдат заменени с 3-полюсен двупосочен крачен превключвател, ако кутията с ефекти ще се използва за работа на живо)

Стъпка 2: Строителство

Строителство
Строителство
Строителство
Строителство
Строителство
Строителство

Схема 1 показва използваната схема, а Брендборд 1 е нейното физическо представяне (Fritzing 1) със Снимка 1 действителната работеща верига с хляб. Може да е изгодно да имаш потенциометър като смесител за сух (равен на входа) и мокър (след обработка от MCU) сигнал, а Схема 2, Брендборд 2 и Снимка 2 (изброени в Приложение 2), дава подробности за веригата на предварително изградена схема, която включва такъв миксер за вход към изход. Също така погледнете Open Music Labs StompBox за друга реализация на миксер, използващ четири OpAmps.

Входни и изходни етапи на OpAmp: Важно е да се използва RRO или за предпочитане RRIO OpAmp поради големия размах на напрежението, необходим на изхода OpAmp към ADC на ATMega1284. Списъкът с части съдържа редица алтернативни типове OpAmp. Потенциометърът 100k се използва за регулиране на входната печалба до ниво точно под всяко изкривяване, а също така може да се използва за регулиране на входната чувствителност за входен източник, различен от китара, например музикален плейър. Изходният етап на OpAmp има RC филтър от по -висок ред за премахване на цифрово генерирания MCU шум от аудио потока.

Етап ADC: ADC е конфигуриран да чете през прекъсване през цялото време. Обърнете внимание, че 100nF кондензатор трябва да бъде свързан между AREF щифта на ATMega1284 и земята, за да се намали шума, тъй като вътрешен Vcc източник се използва като референтно напрежение - НЕ свързвайте щифта AREF към +5 волта директно!

DAC PWM етап: Тъй като ATMega1284 няма собствен DAC, изходните аудио вълни се генерират с помощта на широчинно -импулсна модулация на RC филтър. Двата PWM изхода на PD4 и PD5 са зададени като високи и ниски байтове на аудио изхода и се смесват с двата резистора (4k7 и 1M2) в съотношение 1: 256 (нисък байт и висок байт) - което генерира аудио изхода. Може да си струва да експериментирате с други двойки резистори, като двойка 3k9 1M ом, използвана от Open Music Labs в техния StompBox.

Стъпка 3: Софтуер

Софтуерът се основава на скици за електромашини, а включеният пример (pedalshield1284delay.ino) е адаптиран от скицата им за забавяне Uno. Някои от превключвателите и светодиодите са преместени на други портове далеч от използваните от ISP програмиста (SCLK, MISO, MOSI и Reset), буферът за забавяне е увеличен от 2000 байта на 12000 байта, а PortD е зададен като изход за двата ШИМ сигнала. Дори и с увеличаването на буфера за забавяне, скицата все още използва само около 70% от наличната 1284 RAM.

Други примери като октавер или тремоло от уебсайта за електромашини за педала SHIELD Uno могат да бъдат адаптирани за използване от Mega1284 чрез промяна на три раздела в кода:

(1) Промяна на DDRB | = ((PWM_QTY << 1) | 0x02); към DDRD | = 0x30; // Горната промяна е САМО съществената промяна на кода // при пренасяне от AtMega328 към ATMega1284

(2) Промяна #дефиниране на LED 13 #дефиниране на FOOTSWITCH 12 #дефиниране на TOGGLE 2 #дефиниране на PUSHBUTTON_1 A5 #дефиниране на PUSHBUTTON_2 A4

да се

#определи LED PB0 #дефинирай FOOTSWITCH PB1 #дефинирай PUSHBUTTON_1 A5 #дефинирай PUSHBUTTON_2 A4

(3) Промяна на pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)

да се

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

Бутоните 1 и 2 се използват в някои от скиците за увеличаване или намаляване на ефект. В примера на забавяне увеличава или намалява времето на забавяне. При първото зареждане на скицата започва с ефекта на максимално забавяне. натиснете бутона надолу - отнема около 20 секунди, за да отброите чак до позицията за забавяне - и след това натиснете и задръжте бутона нагоре. Чуйте как ефектът на свип при задържане на бутона променя ефекта на този на фазер, припев и фланжер, както и забавянето при отпускане на бутона.

За да промените забавянето на ехо ефект (добавете повторение) променете реда:

DelayBuffer [DelayCounter] = ADC_високо;

да се

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

Стъпковият превключвател трябва да бъде триполюсен двупосочен превключвател и трябва да бъде свързан, както е описано на уебсайта на electromash.

Стъпка 4: Връзки

Връзки
Връзки

(1) Electrosmash:

(2) Отворете Музикални лаборатории:

(3) Пол Галахър:

(4) 1284 Bootloader:

(5) 8 -битов AVR микроконтролер ATmega1284:

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

Стъпка 5: Приложение 1 Програмиране на ATMega1284P

Приложение 1 Програмиране на ATMega1284P
Приложение 1 Програмиране на ATMega1284P
Приложение 1 Програмиране на ATMega1284P
Приложение 1 Програмиране на ATMega1284P
Приложение 1 Програмиране на ATMega1284P
Приложение 1 Програмиране на ATMega1284P

Има няколко уебсайта, които дават добро обяснение как да програмирате голия чип ATMega1284 за използване с Arduino IDE. Процесът по същество е следният: (1) Инсталирайте вилицата Mark Pendrith на зареждащото устройство Maniacbug Mighty-1284p Core Optiboot в IDE на Arduino. (2) Свържете ATMega1284 към макет с минималната му конфигурация, която е 16 MHz кристал, 2 x 22 pF кондензатори, които заземяват двата края на кристала, Свържете двата заземителни щифта заедно (щифтове 11 и 31) и след това към заземяването на Arduino Uno, свържете Vcc и AVcc заедно (пинове 10 и 30), а след това към Uno +5v, след това свържете щифта за нулиране 9 към щифта Uno D10, щифта MISO 7 към UNO D12, MOSI щифт 8 към Uno D11 и SCLK щифт 7 към щифта Uno D13. (3) Свържете Uno към IDE на Arduino и заредете примерния скиц Arduino като ISP върху Uno. (4) Сега изберете 1284 "маниакална" мощна оптична зареждаща платка и изберете опцията Burn bootloader. (5) След това изберете дадена тук за пример скица 1284 и я качете, като използвате опцията Uno като програмист в менюто за скици.

Връзки, които обясняват процеса по -подробно, са:

Използване на ATmega1284 с Arduino IDEA Arduino Mightycore за големи AVR -та, подходящи за макети Създаване на прототип ATMega1284p Ардуино буутлоудър ATmega1284p

Стъпка 6: Приложение 2 Arduino Uno PedalSHIELD Вариант

Приложение 2 Arduino Uno PedalSHIELD Вариант
Приложение 2 Arduino Uno PedalSHIELD Вариант
Приложение 2 Arduino Uno PedalSHIELD Вариант
Приложение 2 Arduino Uno PedalSHIELD Вариант
Приложение 2 Arduino Uno PedalSHIELD Вариант
Приложение 2 Arduino Uno PedalSHIELD Вариант

Schematic3, Breadboard3 и Photo3 дават подробности за схемата, базирана на Uno, предшестваща изграждането на AtMega1284.

Може да е изгодно да имаш потенциометър като смесител за сух (равен на входа) и мокър (след обработка от MCU) сигнал, а Схема 2, Брендборд 2 и Снимка 2 дава подробности за веригата на предварително изградена схема който включва такъв микшер за вход към изход. Също така погледнете Open Music Labs StompBox за друга реализация на миксер, използващ четири OpAmps

Препоръчано: