Mundarija:

ATMega1284P gitara va musiqa effektlari pedali: 6 qadam (rasmlar bilan)
ATMega1284P gitara va musiqa effektlari pedali: 6 qadam (rasmlar bilan)

Video: ATMega1284P gitara va musiqa effektlari pedali: 6 qadam (rasmlar bilan)

Video: ATMega1284P gitara va musiqa effektlari pedali: 6 qadam (rasmlar bilan)
Video: avr assembler # 2 2024, Iyul
Anonim
ATMega1284P gitara va musiqa effektlari pedali
ATMega1284P gitara va musiqa effektlari pedali

Men Arduino Uno ATMega328 Pedalshield -ni (Electrosmash tomonidan ishlab chiqilgan va qisman Ochiq Musiqa Laboratoriyasida ishlagan) ATMega1284P -ga Uno -ga qaraganda sakkiz barobar ko'proq operativ xotira (16kB va 2kB) qo'ydim. Qo'shimcha kutilmagan foyda shundaki, Mega1284 konstruktsiyasining shovqin darajasi ancha past - men Uno va Mega1284 ni bir xil qo'llab -quvvatlash sxemasi bilan taqqoslaganimda, Unoni "shovqinli" va Mega1284 "deb ta'riflash asossiz emas. tinch ". Kattaroq operativ xotira uzoqroq kechiktirish effektini olish mumkinligini anglatadi va bu men kiritgan Arduino eskiz misolida ko'rsatiladi. Tremelo effektidan foydalanganda orqa fon shovqini ATMega1284 bilan ham deyarli yo'q.

Uchta Atmel AVR mikroprotsessorlarini taqqoslash, ya'ni 328P - bu Uno, 2560P - Mega2560 va Mega1284 - bu ikkalasida ham eng ko'p RAMga ega ekanligini ko'rsatadi:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO pinlari 23 32 86 uzilishlar 2 3 8 analog 6 6 16

Men Electrosmash spetsifikatsiyasida bo'lgani kabi Uno-ga asoslangan pedalSHIELD-ni joylashtirishni boshladim, lekin menda RRO OpAmp ko'rsatilganidek yo'q edi. Natijada, men maqbul natijalar beradigan deb hisobladim. Ushbu Uno versiyasining tafsilotlari 2 -ilovada keltirilgan.

Xuddi shu sxema ATMega1284 -ga ko'chirildi - ajablanarli joyi shundaki, kalitlarni va LEDni boshqa portga o'rnatish va kechiktirish buferi uchun 2 000 kB RAM o'rniga 12 000 kB ajratish. manba kodiga bitta muhim o'zgartirish kiritilishi kerak edi, ya'ni Timo1/PWM OC1A va OC1B chiqishlarini Uno portidagi B portidan ATMega1284 d portiga (PD5 va PD4) o'zgartirish.

Keyinchalik men Pol Gallagher tomonidan elektromashin sxemasining ajoyib modifikatsiyasini kashf qildim va sinovdan so'ng, men bu erda taqdim etadigan sxema - bundan keyin ham o'zgartirishlar bilan: Uno -ni Mega1284 bilan almashtirish, Texas Instruments TLC2272 ni OpAmp sifatida ishlatish va Mega1284-ning ajoyib shovqin ishlashi tufayli men past chastotali filtr chastotasini ham ko'tarishim mumkin edi.

Ta'kidlash joizki, ATMega1284 uchun ishlab chiqish platalari mavjud bo'lsa-da (Github: MCUdude MightyCore), yalang'och (yuklamaslik) chipini sotib olish (PDIP versiyasini sotib oling-non taxtasi va lenta). do'stona), keyin Maniacbug Mighty-1284p Core Optiboot bootloader yoki MCUdude Mightycore-ning Mark Pendrit vilkasini yuklang, Uno-ni ISP dasturchisi sifatida ishlating, so'ngra Uno orqali AtMega1284-ga eskizlarni qayta yuklang. Bu jarayonning tafsilotlari va havolalari 1 -ilovada keltirilgan.

Men qo'shimcha ma'lumot olish mumkin bo'lgan eng muhim uchta manbani tan olishni istardim va o'z veb -saytlariga havolalar va ushbu maqolaning oxirini beraman: Electrosmash, Open Music Labs va Tardate/Paul Gallagher

1 -qadam: qismlar ro'yxati

ATMega1284P (PDIP 40 pinli paketli versiya) Arduino Uno R3 (yuklovchi va eskizlarni ATMega1284 -ga o'tkazish uchun ISP sifatida ishlatiladi) OpAmp TLC2272 (yoki shunga o'xshash RRIO (Rail to Rail Input and Output) OpAmp, MCP6002, LMC6482, TL972) Qizil LED 16 MGts kristalli 2 x 27 pF kondansatörler 5 x 6n8 kondansatörler 270 pF kondansatör 4 x 100n kondansatörler 2 x 10uF 16v elektrolitik kondansatörler 6 x 4k7 qarshilik 100k qarshilik 2 x 1M qarshilik 470 ohmli qarshilik 1M2 rezistor 100k Potansiyometr 3 x tugmachali kalit (bitta agar effektlar qutisi jonli ish uchun ishlatilsa, ulardan 3 qutbli ikki tomonlama oyoq almashtirgich bilan almashtirilishi kerak)

2 -qadam: qurilish

Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish

1-sxema ishlatilgan sxemani beradi va Breadboard 1-uning jismoniy tasviri (Fritzing 1), 1-rasmda haqiqiy non-taxtali sxemasi ishlaydi. Quruq (kirishga teng) va nam (MCU tomonidan qayta ishlanganidan keyin) signallari uchun mikser sifatida potentsiometrga ega bo'lish foydali bo'lishi mumkin va 2 -sxema, 2 -jadval va 2 -rasm (2 -ilovada keltirilgan) chiqish mikseriga bunday kirishni o'z ichiga olgan ilgari qurilgan sxemaning sxemasi. To'rt OpAmps yordamida mikserni boshqa ishga tushirish uchun Open Music Labs StompBox -ga qarang.

OpAmp kirish va chiqish bosqichlari: ATMega1284 ning ADC -ga OpAmp chiqishida katta voltaj o'zgarishi tufayli RRO yoki afzalroq RRIO OpAmp -dan foydalanish muhim. Qismlar ro'yxati bir qator muqobil OpAmp turlarini o'z ichiga oladi. 100k potentsiometr kirish daromadini har qanday buzilishdan past darajaga moslashtirish uchun ishlatiladi va undan musiqa pleyeri kabi gitardan boshqa kirish manbaiga kirish sezuvchanligini sozlash uchun ham foydalanish mumkin. OpAmp chiqish bosqichida audio oqimdan raqamli ishlab chiqarilgan MCU shovqinini olib tashlash uchun yuqori darajadagi RC filtri mavjud.

ADC bosqichi: ADC har doim uzilish orqali o'qiladigan qilib tuzilgan. Shuni esda tutingki, shovqinni pasaytirish uchun ATMega1284 AREF pimi va tuproq o'rtasida 100nF kondansatör ulanishi kerak, chunki ichki Vcc manbai mos yozuvlar zo'riqishida ishlatiladi - AREF pinini +5 voltga to'g'ridan -to'g'ri ulamang!

DAC PWM bosqichi: ATMega1284 o'z DAC -ga ega emasligi sababli, chiqish tovush to'lqinlari RC filtrining impuls kengligi modulyatsiyasi yordamida yaratiladi. PD4 va PD5 -dagi ikkita PWM chiqishi audio chiqishning yuqori va past baytlari sifatida o'rnatiladi va ikkita rezistor (4k7 va 1M2) bilan 1: 256 nisbatda (past bayt va yuqori bayt) aralashtiriladi - bu ovoz chiqishini yaratadi.. Open Music Labs o'z StompBox -da ishlatadigan 3k9 1M ohmli juftlik kabi boshqa qarshilik juftlari bilan tajriba o'tkazishga arziydi.

3 -qadam: dasturiy ta'minot

Dastur electrosmash eskizlariga asoslangan va uning misoli (pedalshield1284delay.ino) Uno kechiktirish eskiziga moslashtirilgan. Ba'zi kalitlar va LEDlar ISP dasturchisi (SCLK, MISO, MOSI va Reset) ishlatadigan portlardan boshqa portlarga ko'chirildi, kechiktirish buferi 2000 baytdan 12000 baytgacha oshirildi va PortD sifatida o'rnatildi. ikkita PWM signallari uchun chiqish. Kechiktirish tamponining ko'payishi bilan ham, eskizda mavjud bo'lgan 1284 RAMning atigi 70% ishlatiladi.

PedalSHIELD Uno uchun electrosmash veb -saytidan oktavr yoki tremolo kabi boshqa misollar Mega1284 tomonidan kodning uch qismini o'zgartirish orqali moslashtirilishi mumkin:

(1) DDRBni o'zgartirish | = ((PWM_QTY << 1) | 0x02); DDRD uchun | = 0x30; // Yuqoridagi o'zgarish - bu ATMega328 -dan ATMega1284 -ga ko'chirishda faqat kodning muhim o'zgarishi.

(2) #define LED 13 ni belgilang #FOOTSWITCH 12ni belgilang #TOGGLE 2ni belgilang #PUSHBUTTON_1 A5ni belgilang #PUSHBUTTON_2 A4

ga

#LED PB0ni belgilang #POBUTWITCH PB1ni aniqlang #PUSHBUTTON_1 A5ni belgilang #PUSHBUTTON_2 A4

(3) pinMode -ni o'zgartirish (FOOTSWITCH, INPUT_PULLUP); pinMod (TOGGLE, INPUT_PULLUP); pinMod (PUSHBUTTON_1, INPUT_PULLUP); pinMod (PUSHBUTTON_2, INPUT_PULLUP); pin rejimi (LED, chiqish)

ga

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMod (PUSHBUTTON_1, INPUT_PULLUP); pinMod (PUSHBUTTON_2, INPUT_PULLUP); pin rejimi (LED, OUTPUT);

Ba'zi eskizlarda effektni kuchaytirish yoki kamaytirish uchun 1 va 2 tugmachalari ishlatiladi. Kechiktirish misolida u kechikish vaqtini oshiradi yoki kamaytiradi. Eskiz birinchi marta yuklanganda u maksimal kechiktirish effektidan boshlanadi. pastga tugmachasini bosing - kechikish holatiga to'liq hisoblab chiqish uchun 20 soniya vaqt ketadi - keyin yuqoriga tugmachasini bosib ushlab turing. Eshiting, tugmani bosib ushlab turish effekti faza, xor va flanj effektini qanday o'zgartiradi, shuningdek tugma qo'yib yuborilishining kechikishi.

Kechikishni echo effektiga o'zgartirish uchun (takrorlashni qo'shing) qatorni o'zgartiring:

DelayBuffer [DelayCounter] = ADC_high;

ga

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

Oyoq kaliti uch qutbli ikki tomonlama kalit bo'lishi kerak va elektromash veb -saytida tasvirlanganidek ulanishi kerak.

4 -qadam: havolalar

Havolalar
Havolalar

(1) Elektrmash:

(2) Musiqa laboratoriyalarini oching:

(3) Pol Gallager:

(4) 1284 yuklovchi:

(5) ATmega1284 8bit AVR mikrokontroller:

ElectrosmashOpenlabs MusicPaul Gallagher1284 yuklovchi 11284 yuklovchi 2ATmega1284 8bit AVR mikrokontroller

5 -qadam: 1 -ilova ATMega1284P dasturlash

1 -ilova ATMega1284P dasturlash
1 -ilova ATMega1284P dasturlash
1 -ilova ATMega1284P dasturlash
1 -ilova ATMega1284P dasturlash
1 -ilova ATMega1284P dasturlash
1 -ilova ATMega1284P dasturlash

Yalang'och ATMega1284 chipini Arduino IDE bilan ishlash uchun qanday dasturlash mumkinligi haqida yaxshi tushuntirish beradigan bir nechta veb -saytlar mavjud. Jarayon asosan quyidagicha: (1) Arduino IDE-ga Maniacbug Mighty-1284p Core Optiboot bootloader-ning Mark Pendrit vilkasini o'rnating. (2) ATMega1284 ni minimal konfiguratsiyali non panelida, 16 MGts kristalli, 2 x 22 pFli kristalli, kristalning ikki uchini bir -biriga bog'lab qo'ying, ikkita tuproqli pimni bir -biriga ulang (11 va 31 -pinlar), so'ngra Arduino Uno -ga Vcc va AVcc -ni bir -biriga ulang (10 va 30 -pinlar), keyin Uno +5v -ga ulang, keyin tiklash pinini 9 -ni Uno D10 -ga, MISO -pin -7 -ni UNO D12 -ga, MOSI -ga ulang. pin 8 ni Uno D11 ga va SCLK pin 7 ni Uno D13 piniga ulang. (3) Uno -ni Arduino IDE -ga ulang va Internet -provayder sifatida Arduino -ning eskizini Uno -ga yuklang. (4) Endi 1284 "manyak" qudratli optiboot taxtasini tanlang va yuklash vositasini yoqish variantini tanlang. (5) Keyin bu erda misol sifatida berilgan 1284 kechiktirish chizmasini tanlang va eskizlar menyusida dasturchi sifatida Uno -dan foydalanib yuklang.

Jarayonni batafsil tushuntirib beradigan havolalar:

ATmega1284 -ni Arduino IDEArduino Mightycore -dan foydalanib, keng o'lchamli AVR -lar uchun ATMega1284p prototipini yaratishArduino ATmega1284p yuklovchi.

6 -qadam: 2 -ilova Arduino Uno PedalSHIELD varianti

2 -ilova Arduino Uno PedalSHIELD varianti
2 -ilova Arduino Uno PedalSHIELD varianti
2 -ilova Arduino Uno PedalSHIELD varianti
2 -ilova Arduino Uno PedalSHIELD varianti
2 -ilova Arduino Uno PedalSHIELD varianti
2 -ilova Arduino Uno PedalSHIELD varianti

Schematic3, Breadboard3 va Photo3 AtMega1284 tuzilishidan oldingi Uno-ga asoslangan sxema haqida ma'lumot beradi.

Quruq (kirishga teng) va ho'l (MCU tomonidan qayta ishlanganidan keyin) signallari uchun mikser sifatida potentsiometrga ega bo'lish foydali bo'lishi mumkin va 2 -sxema, 2 -jadval va 2 -rasmda ilgari qurilgan sxemaning sxemasi ko'rsatilgan. Chiqish mikseriga bunday kirishni o'z ichiga oladi. To'rt OpAmps yordamida mikserni boshqa ishga tushirish uchun Open Music Labs StompBox -ga qarang

Tavsiya: