Mündəricat:

ATMega1284P gitara və musiqi effektləri pedalı: 6 addım (şəkillərlə birlikdə)
ATMega1284P gitara və musiqi effektləri pedalı: 6 addım (şəkillərlə birlikdə)

Video: ATMega1284P gitara və musiqi effektləri pedalı: 6 addım (şəkillərlə birlikdə)

Video: ATMega1284P gitara və musiqi effektləri pedalı: 6 addım (şəkillərlə birlikdə)
Video: ATMEGA644 транзистор тестeр 2024, Iyul
Anonim
ATMega1284P Gitara və Musiqi Efektləri Pedalı
ATMega1284P Gitara və Musiqi Efektləri Pedalı

Arduino Uno ATMega328 Pedalshield -i (Electrosmash tərəfindən hazırlanmış və qismən Açıq Musiqi Laboratoriyasındakı işlərə əsaslanaraq) Uno -dan səkkiz qat daha çox RAM -a malik ATMega1284P -yə (2kB -ə qarşı 16kB) köçürdüm. Əlavə gözlənilməz bir üstünlük, Mega1284 quruluşunun daha aşağı səs -küy komponentinə sahib olmasıdır - eyni dəstəyi istifadə edərək Uno və Mega1284 -ü müqayisə edərkən Uno -nu "səs -küylü" və Mega1284 -ü "kimi təsvir etmək əsassız deyil. sakit ". Daha böyük RAM, daha uzun bir gecikmə effektinin əldə edilə biləcəyi deməkdir və bu da daxil etdiyim Arduino eskiz nümunəsi ilə göstərilir. Tremelo effektini istifadə edərkən arxa planda nəfəs alma səsləri ATMega1284 -də də (demək olar ki) yoxdur.

Üç Atmel AVR mikroprosessorunun, yəni Uno olan 328P, Mega2560 olan 2560P və Mega1284 -ün müqayisəsi, ikisinin ən çox RAM -a sahib olduğunu göstərir:

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 Fasilələr 2 3 8 Analog 6 6 16

Electrosmash spesifikasiyasındakı kimi Uno-based pedalSHIELD-ə çörək taxmaqla başladım, amma göstərildiyi kimi eyni RRO OpAmp yox idi. Nəticədə məqbul nəticələr verməyi düşündüyüm bir dövrə ilə sona çatdım. Bu Uno versiyasının təfərrüatları Əlavə 2 -də verilmişdir.

Eyni dövrə daha sonra ATMega1284 -ə köçürüldü - təəccüblü olaraq açarları və LED -i fərqli bir limana təyin etmək və gecikmə tamponu üçün 2 000 kB RAM yerinə 12 000 kB ayırmaq kimi vacib olmayan dəyişikliklərdən başqa. mənbə kodunda vacib bir dəyişiklik edilməli idi, yəni Uno üzərindəki Timer1/PWM OC1A və OC1B çıxışlarını ATMega1284 üzərindəki Port D (PD5 və PD4) olaraq dəyişdirmək lazım idi.

Daha sonra Paul Gallagher tərəfindən electrosmash sxemində edilən əla dəyişiklikləri kəşf etdim və testdən sonra burada təqdim edəcəyim sxem budur - amma sonra da dəyişikliklərlə: Uno -nun MeGa1284 ilə əvəz edilməsi, Texas Instruments TLC2272 -nin OpAmp olaraq istifadə edilməsi və Mega1284-ün əla səs-küy performansı səbəbindən aşağı keçidli filtr tezliyi səviyyəsini də qaldıra bilərdim.

Qeyd etmək vacibdir ki, ATMega1284 üçün inkişaf lövhələri mövcud olsa da (Github: MCUdude MightyCore), çılpaq (önyükleyicisiz) çip almaq (çörək və lövhə olan PDIP versiyasını satın almaq) asan bir məşqdir dostluq), sonra Maniacbug Mighty-1284p Core Optiboot bootloader və ya MCUdude Mightycore'un Mark Pendrith çəngəlini ISO proqramçısı olaraq Uno istifadə edərək yükləyin və sonra Uno vasitəsilə yenidən eskizləri AtMega1284-ə yükləyin. Bu prosesin detalları və bağlantıları Əlavə 1 -də verilmişdir.

Əlavə məlumat əldə edə biləcəyimiz və veb saytlarına və bu məqalənin sonuna bağlantılar verəcək ən vacib üç mənbəni qəbul etmək istərdim: Electrosmash, Open Music Labs və Tardate/Paul Gallagher

Addım 1: Parça siyahısı

ATMega1284P (PDIP 40 pin paket versiyası) Arduino Uno R3 (yükləyicini və eskizləri ATMega1284 -ə köçürmək üçün ISP olaraq istifadə olunur) OpAmp TLC2272 (və ya oxşar RRIO (Dəmiryol Girişinə və Çıxışına) OpAmp, məsələn MCP6002, LMC6482, TL972) Qırmızı LED 16 MHz kristal 2 x 27 pF kondansatörler 5 x 6n8 kondansatör 270 pF kondansatör 4 x 100n kondansatör 2 x 10uF 16v elektrolitik kondansatör 6 x 4k7 müqavimət 100k müqavimət 2 x 1M müqavimət 470 ohm müqavimət 1M2 müqavimət 100k Potansiometr 3 x düymə açarları (bir Efektlər qutusu canlı iş üçün istifadə ediləcəyi təqdirdə onlardan 3 kutuplu 2 tərəfli ayaq açarı ilə əvəz olunmalıdır)

Addım 2: Tikinti

Tikinti
Tikinti
Tikinti
Tikinti
Tikinti
Tikinti

Şematik 1, istifadə olunan dövrə verir və Breadboard 1, fiziki şəkilidir (Fritzing 1), Foto 1 ilə işləyən əsl çörək taxtalı dövrə. Quru (girişə bərabər) və yaş (MCU tərəfindən işləndikdən sonra) siqnalı üçün bir qarışdırıcı olaraq potensiometrin olması və Şematik 2, Çörək Paneli 2 və Şəkil 2 (Əlavə 2 -də verilmiş) verilməsi faydalı ola bilər. çıxış mikserinə belə bir girişi ehtiva edən əvvəllər qurulmuş bir dövrənin dövrə detalları. Dörd OpAmps istifadə edərək başqa bir qarışdırıcı tətbiq etmək üçün Open Music Labs StompBox -a baxın.

OpAmp Giriş və Çıxış Mərhələləri: ATMega1284 -ün ADC -nə OpAmp çıxışında tələb olunan böyük gərginlik yellənməsi səbəbindən RRO və ya tercihen RRIO OpAmp istifadə edilməsi vacibdir. Parça siyahısında bir sıra alternativ OpAmp növləri var. 100k potensiometr, giriş qazancını hər hansı bir təhrifin altındakı bir səviyyəyə düzəltmək üçün istifadə olunur və musiqi pleyeri kimi gitardan başqa bir giriş mənbəyi üçün giriş həssaslığını tənzimləmək üçün də istifadə edilə bilər. OpAmp çıxış mərhələsi, rəqəmsal olaraq yaradılan MCU səs -küyünü səs axınından çıxarmaq üçün daha yüksək dərəcəli RC filtrinə malikdir.

ADC Mərhələsi: ADC hər zaman fasilə ilə oxumaq üçün qurulmuşdur. Diqqət yetirin ki, ATMega1284 -ün AREF pimi ilə şasi arasında daxili Vcc mənbəyi istinad gərginliyi olaraq istifadə edildiyindən, yerə 100nF kondansatör qoşulmalıdır - AREF pinini +5 volta birbaşa qoşmayın!

DAC PWM Mərhələsi: ATMega1284 -ün öz DAC -ı olmadığı üçün çıxış səs dalğa formaları bir RC filtrinin nəbz eni modulyasiyası ilə yaradılır. PD4 və PD5 üzərindəki iki PWM çıxışı, səs çıxışının yüksək və aşağı baytları olaraq təyin edilir və 1: 256 nisbətində iki rezistorla (4k7 və 1M2) qarışdırılır (aşağı bayt və yüksək bayt) - səs çıxışı yaradır.. Open Music Labs tərəfindən StompBox -da istifadə olunan 3k9 1M ohm cütü kimi digər müqavimət cütləri ilə təcrübə aparmağa dəyər ola bilər.

Addım 3: Proqram təminatı

Proqram, electrosmash eskizlərinə əsaslanır və daxil olan nümunə (pedalshield1284delay.ino), Uno gecikmə eskizindən uyğunlaşdırılmışdır. Bəzi açarlar və LEDlər ISP proqramçısı (SCLK, MISO, MOSI və Sıfırlama) tərəfindən istifadə edilənlərdən başqa limanlara köçürüldü, gecikmə tamponu 2000 baytdan 12000 bayta qədər artırıldı və PortD olaraq təyin edildi. iki PWM siqnalı üçün çıxış. Gecikmə tamponunun artmasına baxmayaraq, eskiz hələ də mövcud 1284 RAM -ın yalnız 70% -ni istifadə edir.

PedalSHIELD Uno üçün electrosmash veb saytından oktavr və ya tremolo kimi digər nümunələr, kodun üç hissəsini dəyişdirərək Mega1284 tərəfindən istifadəyə uyğunlaşdırıla bilər:

(1) DDRB dəyişdirin | = ((PWM_QTY << 1) | 0x02); DDRD -ə | = 0x30; // Yuxarıdakı dəyişiklik, ATMega328 -dən ATMega1284 -ə daşınarkən YALNIZ vacib kod dəyişikliyidir.

(2) #define LED 13 dəyişdirin #FOOTSWITCH 12 təyin edin #TOGGLE 2 təyin edin #PUSHBUTTON_1 A5 #təyin PUSHBUTTON_2 A4

#defin LED PB0 #ayaq anahtarı PB1 #təyin PUSHBUTTON_1 A5 #təyin PUSHBUTTON_2 A4

(3) PinMode dəyişdirin (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, Çıxış)

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, Çıxış);

1 və 2 düymələri bəzi eskizlərdə təsiri artırmaq və ya azaltmaq üçün istifadə olunur. Gecikmə nümunəsində gecikmə müddətini artırır və ya azaldır. Eskiz ilk dəfə yükləndikdə maksimum gecikmə effekti ilə başlayır. aşağı düyməsini basın - gecikmə mövqeyinə qədər geri saymaq təxminən 20 saniyə çəkir və sonra yuxarı düyməsini basıb saxlayın. Düyməni tutmağın süpürmə effektinin faza, xor və flanş effektinə necə təsir etdiyini və düymənin buraxıldığı gecikməni dinləyin.

Gecikməni əks -səda effektinə çevirmək üçün (təkrar əlavə edin) xətti dəyişdirin:

DelayBuffer [DelayCounter] = ADC_high;

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

Ayaq açarı üç qütblü iki tərəfli keçid olmalı və electrosmash saytında təsvir edildiyi kimi bağlanmalıdır.

Addım 4: Bağlantılar

Bağlantılar
Bağlantılar

(1) Electrosmash:

(2) Musiqi Laboratoriyalarını açın:

(3) Paul Gallagher:

(4) 1284 Bootloader:

(5) ATmega1284 8bit AVR Mikrokontrolör:

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

Addım 5: Əlavə 1 ATMega1284P proqramlaşdırılması

Əlavə 1 ATMega1284P proqramlaşdırılması
Əlavə 1 ATMega1284P proqramlaşdırılması
Əlavə 1 ATMega1284P proqramlaşdırılması
Əlavə 1 ATMega1284P proqramlaşdırılması
Əlavə 1 ATMega1284P proqramlaşdırılması
Əlavə 1 ATMega1284P proqramlaşdırılması

Çılpaq ATMega1284 çipinin Arduino IDE ilə istifadəsi üçün necə proqramlaşdırılacağını yaxşı izah edən bir neçə veb sayt var. Proses əsasən aşağıdakı kimidir: (1) Maniacbug Mighty-1284p Core Optiboot önyükleyicisinin Mark Pendrith çəngəlini Arduino IDE-yə quraşdırın. (2) ATMega1284 -ü minimum konfiqurasiyası olan bir çörək taxtasına bağlayın, 16 MHz kristal, kristalın iki ucunu bağlayan 2 x 22 pF kondansatörlü, iki torpaq pinini bir -birinə bağlayın (pinlər 11 və 31) və sonra Arduino Uno torpağına Vcc və AVcc -ni birləşdirin (pinlər 10 və 30), sonra Uno +5v -ə, sonra sıfırlama pin 9 -u Uno D10 pininə, MISO pin 7 -ni UNO D12 -yə, MOSI -yə bağlayın. pin 8 -i Uno D11 -ə və SCLK pin 7 -ni Uno D13 -ə bağlayın. (3) Uno -nu Arduino IDE -yə qoşun və eskiz nümunəsini Arduino -nu Uno -ya ISP olaraq yükləyin. (4) İndi 1284 "manyak" qüdrətli optiboot lövhəsini seçin və Burn bootloader seçimini seçin. (5) Sonra nümunə olaraq burada verilən 1284 gecikmə eskizini seçin və eskizlər menyusunda proqramçı olaraq Uno istifadə edərək yükləyin.

Prosesi daha ətraflı izah edən bağlantılar:

ATmega1284 -dən Arduino IDEArduino Mightycore ilə geniş çörək taxtası dostu AVR -lər üçün istifadə edin ATMega1284p prototipinin qurulmasıArduino ATmega1284p yükləyicisi

Addım 6: Əlavə 2 Arduino Uno PedalSHIELD Variantı

Əlavə 2 Arduino Uno PedalSHIELD Variantı
Əlavə 2 Arduino Uno PedalSHIELD Variantı
Əlavə 2 Arduino Uno PedalSHIELD Variantı
Əlavə 2 Arduino Uno PedalSHIELD Variantı
Əlavə 2 Arduino Uno PedalSHIELD Variantı
Əlavə 2 Arduino Uno PedalSHIELD Variantı

Schematic3, Breadboard3 və Photo3, AtMega1284 quruluşundan əvvəl Uno əsaslı dövrənin detallarını verir.

Quru (girişə bərabər) və yaş (MCU tərəfindən işləndikdən sonra) siqnalı üçün bir qarışdırıcı olaraq potansiyometrin olması daha faydalı ola bilər və Şematik 2, Breadboard 2 və Şəkil 2 əvvəllər qurulmuş bir dövrənin dövrə detallarını verir. çıxış mikserinə belə bir girişi ehtiva edir. Dörd OpAmps istifadə edərək başqa bir qarışdırıcı tətbiq etmək üçün Open Music Labs StompBox -a baxın

Tövsiyə: