Isi kandungan:

Kotak Kesan Quad Opamp ATMega1284: 4 Langkah (dengan Gambar)
Kotak Kesan Quad Opamp ATMega1284: 4 Langkah (dengan Gambar)

Video: Kotak Kesan Quad Opamp ATMega1284: 4 Langkah (dengan Gambar)

Video: Kotak Kesan Quad Opamp ATMega1284: 4 Langkah (dengan Gambar)
Video: Apa rasanya, jika kutup plus dan min speaker terbalik 2024, Julai
Anonim
Kotak Kesan Opega ATMega1284 Quad
Kotak Kesan Opega ATMega1284 Quad

The Stomp Shield untuk Arduino dari Open Music Labs menggunakan Arduino Uno dan empat opamps sebagai kotak kesan gitar. Sama seperti instruksional sebelumnya yang menunjukkan cara memindahkan Electrosmash Uno Pedalshield, saya juga telah menghantar kotak Open Music Labs Guitar Effects ke ATMega1284P yang mempunyai RAM lapan kali lebih banyak daripada Uno (16kB berbanding 2kB).

Berbanding dengan petunjuk sebelumnya yang menggunakan unit kesan ATMega1284, kotak ini mempunyai kelebihan berikut:

(1) Ia memiliki pengadun yang mencampurkan isyarat yang belum diproses dengan sinyal yang diproses MCU - yang bermaksud bahawa kualiti isyarat pada output jauh lebih baik.

(2) Ia melakukan pemprosesan output 16 bit untuk dua output PWM sedangkan kotak kesan sebelumnya menggunakan 8 bit untuk beberapa contoh seperti kesan kelewatan.

(3) Ini memiliki potensiometer umpan balik yang dapat digunakan untuk meningkatkan efek - terutama dengan efek flanger / phaser sekitar 30 persen maklum balas menambahkan kualitas kesannya.

(4) Kekerapan penapis lulus rendah adalah 10 kHz dibandingkan dengan 5 kHz dari kotak kesan sebelumnya - ini bermaksud isyarat pada output terdengar "lebih tajam".

(5) Ia menggunakan pemicu gangguan yang berbeza yang dapat menjelaskan tahap kebisingan yang jauh lebih rendah yang ditunjukkan oleh kotak kesan ini.

Saya bermula dengan menggunakan roti Open Music Labs berasaskan Uno Stompbox Shield dan saya sangat kagum dengan prestasi empat rangkaian pemprosesan isyarat OpAmp ini (walaupun menggunakan Arduino Uno), sehingga saya memindahkannya ke papan jalur untuk penggunaan yang lebih kekal.

Litar empat opamp dan kod DSP yang sama kemudian disalurkan ke ATMega1284 - sekali lagi, secara mengejutkan selain daripada perubahan yang tidak penting seperti menetapkan suis dan LED ke port yang berbeza, dan memperuntukkan 7, 000 kilo-kata dan bukannya 1, 000 kilo-kata RAM untuk penunda penundaan, hanya dua perubahan penting yang harus dibuat dalam kod sumber, iaitu menukar ke ADC0 dari ADC2, dan mengubah output Timer1 / PWM OC1A dan OC1B dari Port B di Uno ke Port D (PD5 dan PD4) di ATMega1284.

Seperti yang dinyatakan sebelum ini, walaupun papan pengembangan untuk ATMega1284 sudah tersedia (Github: MCUdude MightyCore), adalah mudah untuk membeli cip yang kosong (bebas bootloader) (beli versi PDIP yang mesra papan roti dan jalur-papan), kemudian muatkan garpu Mark Pendrith dari bootloader Maniacbug Mighty-1284p Core Optiboot atau MCUdude Mightycore, dengan menggunakan Uno sebagai pengaturcara ISP, dan kemudian memuatkan sketsa lagi melalui Uno ke AtMega1284. Perincian dan pautan untuk proses ini diberikan dalam lampiran 1 dari petunjuk sebelumnya.

Langkah 1: Senarai Bahagian

Senarai Bahagian
Senarai Bahagian
Senarai Bahagian
Senarai Bahagian

ATMega1284P (versi pakej PDIP 40 pin) Arduino Uno R3 (digunakan sebagai ISP untuk memindahkan boot loader dan lakaran ke ATMega1284) OpAmp MCP6004 quad OpAmp (atau RRIO serupa (Rail to Rail Input and Output) OpAmp seperti TLC2274) 1 x Kapasitor merah 1 x 16 MHz kristal 2 x 27 pF kapasitor 1 x 3n9 kapasitor 1 x 1n2 kapasitor 1 x 820pF kapasitor 2 x 120 pF kapasitor 4 x 100n kapasitor 3 x 10uF 16v kapasitor elektrolitik 4 x 75k perintang 4 x 3k9 perintang 1 x 36k perintang 1 x 24k perintang 2 x 1M perintang 1 x 470 ohm perintang 3 x 1k perintang 2 x 50k Potensiometer (linear) 1 x 10k Potensiometer (linear) 3 x suis butang tekan (salah satunya hendaklah diganti dengan 3-tiang 2- jalan kaki jika kotak kesan akan digunakan untuk kerja langsung)

Langkah 2: Pembinaan

Pembinaan
Pembinaan

Litar 1 menunjukkan litar yang digunakan dan Stripboard 1 adalah perwakilan fizikalnya (Fritzing 1) dengan Foto 1 litar papan roti sebenar yang sedang beroperasi. Tiga perubahan litar kecil telah dibuat: Bias opamp tahap bekalan separuh dikongsi digunakan untuk tiga tahap OpAmp, perintang selari 3 x 75k dan 2 x 75k ohm digantikan dengan perintang 24k dan 36k tunggal, dan kapasitor maklum balas ditingkatkan menjadi 120pF untuk dua tahap OpAmp ini. Alat kawalan putar diganti dengan dua tombol tekan yang digunakan untuk meningkatkan atau menurunkan parameter kesan. Sambungan tiga wayar ke ATMega1284 ditunjukkan pada litar sebagai ADC ke pin 40, PWMlow dari pin 19, dan PWMhigh dari pin 18. Ketiga butang tekan disambungkan ke pin 1, 36 dan 35 dan dibumikan di hujung yang lain. LED disambungkan melalui perintang 470 ke pin 2.

Tahap Input dan Output OpAmp: Penting bahawa RRO atau lebih baik OpAmp RRIO digunakan kerana ayunan voltan besar yang diperlukan pada output OpAmp ke ADC ATMega1284. Senarai bahagian mengandungi sebilangan jenis OpAmp alternatif. Potensiometer 50k digunakan untuk menyesuaikan keuntungan input ke tahap di bawah sebarang distorsi, dan juga dapat digunakan untuk menyesuaikan kepekaan input untuk sumber input selain gitar seperti pemain muzik. Tahap input OpAmp kedua dan tahap output opamp pertama mempunyai penapis RC susunan yang lebih tinggi untuk mengeluarkan bunyi MCU yang dihasilkan secara digital dari aliran audio.

Peringkat ADC: ADC dikonfigurasi untuk membaca melalui gangguan pemasa. Kapasitor 100nF harus dihubungkan antara pin AREF ATMega1284 dan arde untuk mengurangkan bunyi kerana sumber Vcc dalaman digunakan sebagai voltan rujukan - JANGAN sambungkan pin AREF ke +5 volt secara langsung!

Tahap DAC PWM: Oleh kerana ATMega1284 tidak mempunyai DAC sendiri, bentuk gelombang audio output dihasilkan menggunakan modulasi lebar nadi penapis RC. Dua output PWM pada PD4 dan PD5 ditetapkan sebagai byte tinggi dan rendah output audio dan dicampur dengan dua perintang (3k9 dan 1M) dalam nisbah 1: 256 (bait rendah dan bita tinggi) - yang menghasilkan output audio.

Langkah 3: Perisian

Perisian ini berdasarkan sketsa pedal stompbox Open Music Labs, dan dua contoh disertakan ialah kesan flanger / phaser, dan efek penundaan. Sekali lagi seperti petunjuk sebelumnya, suis dan LED telah dipindahkan ke port lain dari yang digunakan oleh programmer ISP (SCLK, MISO, MOSI dan Reset).

Penyangga kelewatan telah ditingkatkan dari 1000 kata menjadi 7000 kata, dan PortD telah ditetapkan sebagai output untuk dua isyarat PWM. Walaupun dengan peningkatan penangguhan kelewatan, lakaran masih menggunakan sekitar 75% RAM 16ega ATMega1284 yang tersedia.

Contoh lain seperti tremolo dari laman web Open Music Labs untuk pedalSHIELD Uno boleh disesuaikan untuk digunakan oleh Mega1284 dengan mengubah fail header include Stompshield.h:

(1) Tukar DDRB | = 0x06; // tetapkan output pwm (pin 9, 10) ke output keDDRD | = 0x30;

dan

ADMUX = 0x62; // kiri menyesuaikan, adc2, vcc dalaman sebagai merujuk kepada ADMUX = 0x60; // kiri kiri, adc0, vcc dalaman sebagai rujukan // Perubahan ini adalah HANYA perubahan kod penting // ketika membuat port dari Uno ke ATMega1284

Untuk dua contoh yang disertakan di sini, fail header disertakan dalam sketsa - iaitu tidak ada fail header yang perlu digunakan

Tombol tekan 1 dan 2 digunakan dalam beberapa lakaran untuk meningkatkan atau mengurangkan kesan. Dalam contoh kelewatan ia meningkatkan atau mengurangkan masa penundaan. Apabila lakaran dimuat pertama kali dimulakan dengan kesan kelewatan maksimum. Untuk lakaran flaser phaser cuba tingkatkan kawalan maklum balas untuk kesan yang lebih baik.

Untuk menukar kelewatan kepada kesan gema (tambah pengulangan) ubah garis:

penyangga [lokasi] = input; // simpan sampel baru

ke

penyangga [lokasi] = (input + penyangga [lokasi]) >> 1; // Gunakan ini untuk kesan echo

Alas kaki mestilah suis dua hala tiga tiang

Langkah 4: Pautan

Elektrosmash

Buka makmal Muzik Muzik

Pedal Efek ATMega

Disyorkan: