Mündəricat:

ATMega1284 Dörd Opamp Təsir Kutusu: 4 Addım (Şəkillərlə birlikdə)
ATMega1284 Dörd Opamp Təsir Kutusu: 4 Addım (Şəkillərlə birlikdə)

Video: ATMega1284 Dörd Opamp Təsir Kutusu: 4 Addım (Şəkillərlə birlikdə)

Video: ATMega1284 Dörd Opamp Təsir Kutusu: 4 Addım (Şəkillərlə birlikdə)
Video: ОУ схемы: Аналоговые компьютеры на операционных усилителях 2024, Noyabr
Anonim
ATMega1284 Dörd Opamp Təsiri Qutusu
ATMega1284 Dörd Opamp Təsiri Qutusu

Open Music Labs -dan Arduino üçün Stomp Shield, gitara effektləri qutusu olaraq bir Arduino Uno və dörd opampdan istifadə edir. Electrosmash Uno Pedalshield -in necə bağlanacağını göstərən əvvəlki təlimata bənzər olaraq, Open Music Labs Guitar Effects qutusunu Uno -dan (16kB -ə qarşı 2kB) səkkiz qat daha çox RAM -a malik ATMega1284P -yə də köçürdüm.

ATMega1284 effekt vahidindən istifadə edərək əvvəlki təlimatla müqayisədə bu qutu aşağıdakı üstünlüklərə malikdir:

(1) İşlənməmiş siqnalı MCU işlənmiş siqnalı ilə qarışdıran bir qarışdırıcıya malikdir - bu o deməkdir ki, çıxışdakı siqnalın keyfiyyəti xeyli yaxşılaşmışdır.

(2) Əvvəlki effektlər qutusu gecikmə effekti kimi bəzi nümunələr üçün 8 bit istifadə edərkən, iki PWM çıxışı üçün 16 bit çıxış emalı edir.

(3) Efektləri gücləndirmək üçün istifadə edilə bilən bir geribildirim potensiometrinə malikdir - xüsusən flanşer/faza təsiri ilə təxminən yüzdə 30 geribildirim effektin keyfiyyətinə əhəmiyyətli dərəcədə əlavə edir.

(4) Aşağı keçid filtr tezliyi, əvvəlki effektlər qutusunun 5 kHz ilə müqayisədə 10 kHz -dir - bu, çıxışdakı siqnalın xeyli "xırtıldayan" səslənməsi deməkdir.

(5) Bu təsir qutusunun göstərdiyi xeyli aşağı səs -küy səviyyəsini izah edə biləcək fərqli bir kəsmə tetikleyicisindən istifadə edir.

Uno əsaslı Open Music Labs Stompbox Shield-ə çörək taxmaqla başladım və bu dörd OpAmp siqnal emal sxeminin (o cümlədən bir Arduino Uno istifadə edərkən belə) işindən o qədər təsirləndim ki, daha daimi istifadə üçün lövhəyə köçürdüm.

Eyni dörd opamp dövrəsi və DSP kodu daha sonra ATMega1284-ə köçürüldü-təəccüblü olaraq açarları və LED-i fərqli bir limana təyin etmək və 1 000 əvəzinə 7 000 kilo söz ayırmaq kimi vacib olmayan dəyişikliklərdən başqa. gecikmə tamponu üçün kilo-söz RAM, mənbə kodunda yalnız iki əsas dəyişiklik edilməli idi, yəni ADC2-dən ADC0-a dəyişmək və Uno üzərindəki B Portundan Timer1/PWM OC1A və OC1B çıxışlarını D Portu (ATMega1284 -də PD5 və PD4).

Daha əvvəl qeyd edildiyi kimi, ATMega1284 üçün inkişaf lövhələri mövcud olsa da (Github: MCUdude MightyCore), çılpaq (yükləyicisiz) çip almaq (çörək taxtası və lövhə üçün uyğun olan PDIP versiyasını almaq) asan bir məşqdir., sonra Maniacbug Mighty-1284p Core Optiboot önyükleyicisinin 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ı əvvəlki təlimatın 1 -ci əlavəsində verilmişdir.

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

Parça siyahısı
Parça siyahısı
Parça siyahısı
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 MCP6004 dörd OpAmp (və ya oxşar RRIO (Dəmiryol Girişinə və Çıxışına) OpAmp, məsələn TLC2274) 1 x Qırmızı LED 1 x 16 MHz kristal 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 10 uF 16v elektrolitik kondansatör 4 x 75k müqavimət 4 x 3k9 müqavimət 1 x 36k müqavimət 1 x 24k müqavimət 2 x 1M müqavimət 1 x 470 ohm müqavimət 3 x 1k müqavimət 2 x 50k Potensiometr (xətti) 1 x 10k Potensiometr (xətti) 3 x düymə açarı (bunlardan biri 3-qütblü 2 ilə əvəz olunmalıdır) Efektlər qutusu canlı iş üçün istifadə ediləcəyi təqdirdə ayaq açma yolu)

Addım 2: Tikinti

Tikinti
Tikinti

Dövrə 1, istifadə olunan dövrə göstərir və Stripboard 1, fiziki şəkil (Fritzing 1), Şəkil 1 ilə işləyən əsl çörək taxtalı dövrədir. Üç kiçik dövrə dəyişikliyi edildi: Üç OpAmp mərhələsi üçün paylaşılan yarım təchizat səviyyəli opamp yanlılığı istifadə olunur, 3 x 75k və 2 x 75k ohm paralel rezistorlar tək 24k və 36k rezistorlar ilə əvəz olunur və əks əlaqə kondansatörləri artırılır. Bu iki OpAmp mərhələsi üçün 120pF. Döner idarəetmə, təsir parametrlərini artırmaq və ya azaltmaq üçün istifadə olunan iki düymə ilə əvəz edildi. ATMega1284-ə üç telli əlaqə, 40-cı pin üçün ADC, 19-dan PWMlow və 18-dən PWMhigh olaraq göstərilir. Üç düymə 1, 36 və 35-ci pinlərə bağlanır və digər ucunda torpaqlanır. Bir LED 470 rezistoru ilə pin 2 -ə bağlanır.

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. 50k 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 çalar kimi gitaradan başqa bir giriş mənbəyi üçün giriş həssaslığını tənzimləmək üçün də istifadə edilə bilər. İkinci OpAmp giriş mərhələsi və birinci 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 bir taymer fasiləsi ilə oxumaq üçün qurulmuşdur. Daxili Vcc mənbəyi istinad gərginliyi olaraq istifadə edildiyindən səs -küyü azaltmaq üçün ATMega1284 -ün AREF pimi ilə torpaq arasında 100nF kondansatör bağlanmalı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 (3k9 və 1M) qarışdırılır (aşağı bayt və yüksək bayt) - səs çıxışı yaradır..

Addım 3: Proqram təminatı

Proqram, Open Music Labs stompbox pedal eskizlərinə əsaslanır və iki nümunəyə flanger/phaser effekti və gecikmə effekti daxildir. Yenə əvvəlki təlimatlarda olduğu kimi, açarlar və LED ISP proqramçısı tərəfindən istifadə edilənlərdən (SCLK, MISO, MOSI və Sıfırla) başqa limanlara köçürüldü.

Gecikmə tamponu 1000 sözdən 7000 sözə qədər artırıldı və PortD iki PWM siqnalının çıxışı olaraq təyin edildi. Gecikmə tamponunun artmasına baxmayaraq, eskiz hələ mövcud ATMega1284 16 kB RAM -ın yalnız 75% -ni istifadə edir.

PedalSHIELD Uno üçün Open Music Labs veb saytındakı tremolo kimi digər nümunələr, Stompshield.h başlıq faylını dəyişdirərək Mega1284 tərəfindən istifadəyə uyğunlaşdırıla bilər:

(1) DDRB dəyişdirin | = 0x06; // pwm çıxışlarını (sancaqlar 9, 10) outputtoDDRD olaraq təyin edin | = 0x30;

ADMUX = 0x62; // ADMUX = 0x60 -a istinad olaraq sol tənzimləmə, adc2, daxili vcc; // sol tənzimləmə, adc0, daxili vcc istinad olaraq // Bu dəyişikliklər YALNIZ vacib kod dəyişiklikləridir // Uno -dan ATMega1284 -ə daşınarkən

Buraya daxil edilmiş iki nümunə üçün başlıq faylı eskizə daxil edilmişdir - yəni heç bir başlıq faylından istifadə edilməsinə ehtiyac yoxdur

Təsviri artırmaq və ya azaltmaq üçün bəzi eskizlərdə 1 və 2 düymələri 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. Flanger phaser eskizi üçün təkmilləşdirilmiş bir təsir üçün geribildirim nəzarətini artırmağa çalışın.

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

tampon [yer] = giriş; // yeni nümunə saxla

tampon [yer] = (giriş + tampon [yer]) >> 1; // Bunu əks -səda effekti üçün istifadə edin

Ayaq açarı üç qütblü iki tərəfli keçid olmalıdır

Addım 4: Bağlantılar

Electrosmash

Musiqi laboratoriyalarını açın Musiqi

ATMega Effekt Pedalı

Tövsiyə: