Mundarija:

ATMega1284 Quamp Opamp effektlari qutisi: 4 qadam (rasmlar bilan)
ATMega1284 Quamp Opamp effektlari qutisi: 4 qadam (rasmlar bilan)

Video: ATMega1284 Quamp Opamp effektlari qutisi: 4 qadam (rasmlar bilan)

Video: ATMega1284 Quamp Opamp effektlari qutisi: 4 qadam (rasmlar bilan)
Video: The Ultimate Op-Amp Comparison - Bandwidth, Slew Rate, Frequency Response, CMRR & More! 2024, Iyul
Anonim
ATMega1284 to'rtta opamp effektlari qutisi
ATMega1284 to'rtta opamp effektlari qutisi

Open Music Labs -dan Arduino uchun Stomp Shield gitara effektlari qutisi sifatida Arduino Uno va to'rtta opampdan foydalanadi. Electrosmash Uno Pedalshield -ni qanday ulashni ko'rsatadigan oldingi ko'rsatmaga o'xshab, men ham Open Music Labs Guitar Effects qutisini Uno -dan sakkiz barobar ko'proq RAMga ega ATMega1284P -ga o'tkazdim (16kB va 2kB).

ATMega1284 effektlar birligidan foydalanib, oldingi ko'rsatma bilan taqqoslaganda, bu quti quyidagi afzalliklarga ega:

(1) Unda ishlov berilmagan signalni MCU qayta ishlangan signali bilan aralashtirib yuboradigan mikser bor - bu shuni anglatadiki, chiqishda signal sifati ancha yaxshilanadi.

(2) U ikkita PWM chiqishi uchun 16 bitli chiqishni qayta ishlaydi, oldingi effektlar qutisi kechiktirish effekti kabi ba'zi misollar uchun 8 bitdan foydalangan.

(3) U effektlarni kuchaytirish uchun ishlatilishi mumkin bo'lgan teskari aloqa potentsiometriga ega, ayniqsa, flanj -faza effekti bilan taxminan 30 foizlik teskari aloqa effekt sifatiga sezilarli darajada qo'shiladi.

(4) Past o'tkazgichli filtr chastotasi, oldingi effektlar qutisining 5 kHz ga nisbatan 10 kHz ni tashkil qiladi - bu signal signalining "keskin" ovozini bildiradi.

(5) U boshqa effektli tetikni ishlatadi, bu esa bu effektlar qutisida ko'rsatilgan shovqin darajasini ancha pastligini tushuntirishi mumkin.

Men Uno-ga asoslangan Open Music Labs Stompbox Shield-ni nonga o'tirishdan boshladim va shu to'rtta OpAmp signalni qayta ishlash sxemasidan juda ta'sirlandim (hatto Arduino Uno-dan foydalanganda ham), men uni doimiy foydalanish uchun lenta taxtasiga o'tkazdim.

Xuddi shu to'rtta opamp sxemasi va DSP kodi ATMega1284-ga ko'chirildi-ajablanarlisi shundaki, kalitlarni va LEDni boshqa portga o'rnatish va 1 000 o'rniga 7 000 kilo so'z ajratish kabi muhim o'zgarishlardan tashqari. kechiktiruvchi bufer uchun RAMning kilo-so'z, manba kodida faqat ikkita muhim o'zgartirish kiritilishi kerak edi, ya'ni ADC2 dan ADC0 ga o'zgartirish va Uno dagi Port B dan Timer1/PWM OC1A va OC1B chiqishlarini D portiga o'zgartirish (PD5 va PD4) ATMega1284 -da.

Yuqorida aytib o'tilganidek, ATMega1284 uchun ishlab chiqarish platalari mavjud bo'lsa-da (Github: MCUdude MightyCore), yalang'och (yuklamaslik) chipini sotib olish (PDIP versiyasini sotib oling, non va taxta uchun qulay)., 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 oldingi ko'rsatmaning 1 -ilovasida keltirilgan.

1 -qadam: qismlar ro'yxati

Qismlar ro'yxati
Qismlar ro'yxati
Qismlar ro'yxati
Qismlar ro'yxati

ATMega1284P (PDIP 40 pinli paketli versiya) Arduino Uno R3 (yuklovchi va eskizlarni ATMega1284 ga o'tkazish uchun ISP sifatida ishlatiladi) OpAmp MCP6004 to'rtta OpAmp (yoki shunga o'xshash RRIO (Rail to Rail Input and Output) OpAmp, masalan TLC2274) 1 x Qizil LED 1 x 16 MGts kristalli 2 x 27 pF kondansatörler 1 x 3n9 kondansatör 1 x 1n2 kondansatör 1 x 820pF kondansatör 2 x 120 pF kondansatör 4 x 100n kondansatör 3 x 10uF 16v elektrolitik kondansatkichlar 4 x 75k qarshilik 4 x 3k9 rezistor 1 x 36k qarshilik 1 x 24k rezistor 2 x 1M rezistor 1 x 470 ohmli rezistor 3 x 1k rezistor 2 x 50k potentsiometr (chiziqli) 1 x 10k potentsiometr (chiziqli) 3 x tugmachali kalit (ulardan bittasini 3 qutbli 2- bilan almashtirish kerak) Agar effektlar qutisi jonli ish uchun ishlatilsa, oyoqni almashtirish usuli)

2 -qadam: qurilish

Qurilish
Qurilish

1-sxema ishlatilgan sxemani ko'rsatadi va Stripboard 1-bu jismoniy tasvir (Fritzing 1), 1-rasmda haqiqiy non-taxtali sxemasi. Uchta kichik sxemaga o'zgartirishlar kiritildi: umumiy OpAmp bosqichlari uchun yarim ta'minlangan darajadagi opamp yonma-yonligi ishlatiladi, 3 x 75k va 2 x 75k ohmli parallel rezistorlar bitta 24k va 36k rezistorlar bilan almashtirildi va teskari aloqa kondansatörleri Ushbu ikkita OpAmp bosqichi uchun 120pF. Aylanadigan boshqaruv elementi effekt parametrlarini oshirish yoki kamaytirish uchun ishlatiladigan ikkita tugmachaga almashtirildi. ATMega1284 ga uch simli ulanish sxemada 40-pinli ADC, 19-pindan PWMlow va 18-pinli PWMhigh sifatida ko'rsatilgan. Uchta tugma 1, 36 va 35-pinlarga ulangan va boshqa uchida topraklangan. LED 470 rezistor orqali pin 2 ga ulanadi.

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. 50k potentsiometr kirish daromadini har qanday buzilishdan past darajaga sozlash uchun ishlatiladi, shuningdek, musiqa pleyeri kabi gitardan boshqa kirish manbaiga kirish sezuvchanligini sozlash uchun ham ishlatilishi mumkin. Ikkinchi OpAmp kirish bosqichi va birinchi opamp chiqish bosqichi audio oqimidan raqamli MCU shovqinini olib tashlash uchun yuqori darajali RC filtriga ega.

ADC bosqichi: ADC taymer uzilishi orqali o'qiladigan qilib tuzilgan. Shovqinni pasaytirish uchun ATMega1284 ning 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 (3k9 va 1M) bilan 1: 256 nisbatda (past bayt va yuqori bayt) aralashtiriladi - bu ovoz chiqishini yaratadi..

3 -qadam: dasturiy ta'minot

Dastur Open Music Labs stompbox pedalining eskizlariga asoslangan va ikkita misol - flanjer/faza effekti va kechiktirish effekti. Oldingi ko'rsatmalarda bo'lgani kabi, kalitlar va LEDlar ISP dasturchisi ishlatadigan boshqa portlarga ko'chirilgan (SCLK, MISO, MOSI va Reset).

Kechiktirish buferi 1000 so'zdan 7000 so'zgacha oshirildi va PortD ikkita PWM signalining chiqishi sifatida o'rnatildi. Kechiktirish tamponining ko'payishi bilan ham, eskizda hali ham mavjud ATMega1284 16 kB tezkor xotiraning atigi 75 foizi ishlatiladi.

SHIELD Uno pedalining Open Music Labs veb -saytidagi tremolo kabi boshqa misollar, Stompshield.h sarlavha faylini o'zgartirib, Mega1284 tomonidan foydalanishga moslashtirilishi mumkin:

(1) DDRBni o'zgartirish | = 0x06; // pwm chiqishlarini (pinlar 9, 10) outputtoDDRD ga o'rnating | = 0x30;

va

ADMUX = 0x62; // ADMUX = 0x60 ga mos ravishda chap sozlash, adc2, ichki vcc; // chapga sozlash, adc0, ichki vcc mos yozuvlar sifatida // Bu o'zgarishlar faqat kodning muhim o'zgarishidir // Uno -dan ATMega1284 -ga ko'chirilganda.

Bu erda keltirilgan ikkita misol uchun, sarlavha fayli eskizga kiritilgan, ya'ni sarlavha fayllaridan foydalanish shart emas.

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. Flanesli faser eskizini yaxshilash uchun teskari aloqa nazoratini kuchaytirishga harakat qiling.

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

bufer [manzil] = kirish; // yangi namunani saqlang

ga

bufer [manzil] = (kirish + bufer [manzil]) >> 1; // Buni echo effekt uchun ishlating

Oyoq kaliti uch qutbli ikki tomonlama kalit bo'lishi kerak

4 -qadam: havolalar

Electrosmash

Musiqa laboratoriyalarini oching

ATMega effektli pedal

Tavsiya: