Spisu treści:

ATMega1284 Quad Opamp Effects Box: 4 kroki (ze zdjęciami)
ATMega1284 Quad Opamp Effects Box: 4 kroki (ze zdjęciami)

Wideo: ATMega1284 Quad Opamp Effects Box: 4 kroki (ze zdjęciami)

Wideo: ATMega1284 Quad Opamp Effects Box: 4 kroki (ze zdjęciami)
Wideo: 4 awesome application of op-amps in circuits 2024, Lipiec
Anonim
Pole efektów ATMega1284 Quad Opamp
Pole efektów ATMega1284 Quad Opamp

Stomp Shield dla Arduino firmy Open Music Labs wykorzystuje Arduino Uno i cztery opampy jako skrzynkę efektów gitarowych. Podobnie jak w poprzedniej instrukcji, która pokazuje, jak przenieść Electrosmash Uno Pedalshield, przeniosłem również pudełko efektów gitarowych Open Music Labs do ATMega1284P, który ma osiem razy więcej pamięci RAM niż Uno (16kB w porównaniu z 2kB).

W porównaniu do poprzedniej instrukcji przy użyciu jednostki efektów ATMega1284, to pudełko ma następujące zalety:

(1) Posiada mikser, który miksuje sygnał nieprzetworzony z sygnałem przetworzonym przez MCU - oznacza to, że jakość sygnału na wyjściu jest znacznie poprawiona.

(2) Wykonuje 16-bitowe przetwarzanie wyjściowe dla dwóch wyjść PWM, podczas gdy poprzednie okno efektów używało 8-bitów dla niektórych przykładów, takich jak efekt opóźnienia.

(3) Posiada potencjometr sprzężenia zwrotnego, który może być użyty do wzmocnienia efektów - szczególnie w przypadku efektu flanger/phaser około 30 procent sprzężenia zwrotnego znacznie zwiększa jakość efektu.

(4) Częstotliwość filtru dolnoprzepustowego wynosi 10 kHz w porównaniu do 5 kHz w poprzedniej skrzynce efektów – oznacza to, że sygnał na wyjściu brzmi znacznie „ostrzej”.

(5) Wykorzystuje inny wyzwalacz przerwań, który może wyjaśniać znacznie niższy poziom szumu pokazywany przez to okno efektów.

Zacząłem od wejścia na pokład Open Music Labs Stompbox Shield opartego na Uno i byłem pod takim wrażeniem wydajności tego czterech obwodów przetwarzania sygnału OpAmp (nawet przy użyciu Arduino Uno), że przeniosłem go do stripboardu w celu bardziej trwałego użytku.

Ten sam układ czterech wzmacniaczy operacyjnych i kod DSP zostały następnie przeniesione do ATMega1284 – znowu, co zaskakujące, poza nieistotnymi zmianami, takimi jak przypisanie przełączników i diody LED do innego portu oraz przypisanie 7000 kilo słów zamiast 1000 kilosłowa pamięci RAM dla bufora opóźnienia, w kodzie źródłowym trzeba było dokonać tylko dwóch zasadniczych zmian, a mianowicie zmiany na ADC0 z ADC2 oraz zmianę wyjść Timer1/PWM OC1A i OC1B z Portu B na Uno na Port D (PD5 i PD4) na ATMega1284.

Jak wcześniej wspomniano, chociaż dostępne są płyty rozwojowe dla ATMega1284 (Github: MCUdude MightyCore), łatwo jest kupić sam (bez bootloadera) chip (kup wersję PDIP, która jest przyjazna dla płyt chlebowych i strip-board), następnie załaduj widelec Mark Pendrith z bootloadera Maniacbug Mighty-1284p Core Optiboot lub MCUdude Mightycore, używając Uno jako programisty ISP, a następnie ponownie ładuj szkice przez Uno do AtMega1284. Szczegóły i linki do tego procesu znajdują się w załączniku 1 do poprzedniej instrukcji.

Krok 1: Lista części

Lista części
Lista części
Lista części
Lista części

ATMega1284P (wersja pakietu 40-pinowego PDIP) Arduino Uno R3 (używany jako ISP do przesyłania programu ładującego i szkiców do ATMega1284) OpAmp MCP6004 quad OpAmp (lub podobny RRIO (Rail to Rail Input and Output) OpAmp, taki jak TLC2274) 1 x Czerwona dioda LED 1 x 16 MHz kryształ 2 x 27 pF kondensatory 1 x kondensator 3n9 1 x 1n2 kondensator 1 x 820 pF kondensator 2 x 120 pF kondensator 4 x 100 n kondensatory 3 x 10 uF 16 V kondensatory 4 x 75 k rezystory 4 x 3 k9 rezystory 1 x 36 k rezystor 1 x 24k rezystor 2 x 1M rezystor 1 x 470 om rezystor 3 x 1k rezystor 2 x 50k Potencjometr (liniowy) 1 x 10k Potencjometr (liniowy) 3 x przełączniki przyciskowe (jeden z nich należy zastąpić 3-biegunowym 2- way przełącznik nożny, jeśli skrzynka efektów będzie używana do pracy na żywo)

Krok 2: Budowa

Budowa
Budowa

Obwód 1 pokazuje używany obwód, a Stripboard 1 jest jego fizyczną reprezentacją (Fritzing 1), a zdjęcie 1 jest rzeczywistym pracującym obwodem. Dokonano trzech małych zmian w obwodach: Wspólna polaryzacja wzmacniacza operacyjnego na poziomie połowicznym jest używana dla trzech stopni OpAmp, równoległe rezystory 3 x 75 k i 2 x 75 k omów zostały zastąpione pojedynczymi opornikami 24 k i 36 k, a kondensatory sprzężenia zwrotnego zostały zwiększone do 120pF dla tych dwóch etapów OpAmp. Pokrętło zastąpiono dwoma przyciskami, które służą do zwiększania lub zmniejszania parametrów efektów. Trójprzewodowe połączenie z ATMega1284 jest pokazane w obwodzie jako ADC do pinu 40, PWMlow do pinu 19 i PWMhigh do pinu 18. Trzy przyciski są podłączone do pinów 1, 36 i 35 i uziemione na drugim końcu. Dioda LED jest podłączona przez rezystor 470 do pinu 2.

Etapy wejścia i wyjścia OpAmp: Ważne jest, aby użyć RRO lub najlepiej RRIO OpAmp ze względu na duże wahania napięcia wymagane na wyjściu OpAmp do ADC ATMega1284. Lista części zawiera szereg alternatywnych typów wzmacniaczy operacyjnych. Potencjometr 50k służy do regulacji wzmocnienia wejściowego do poziomu tuż poniżej wszelkich zniekształceń, a także może być używany do regulacji czułości wejściowej dla źródła wejściowego innego niż gitara, takiego jak odtwarzacz muzyczny. Drugi stopień wejściowy OpAmp i pierwszy stopień wyjściowy wzmacniacza operacyjnego mają filtr RC wyższego rzędu, aby usunąć generowany cyfrowo szum MCU ze strumienia audio.

ADC Stage: ADC jest skonfigurowany do odczytu przez przerwanie zegarowe. Kondensator 100nF powinien być podłączony między pinem AREF ATMega1284 a masą, aby zredukować szumy, ponieważ wewnętrzne źródło Vcc jest używane jako napięcie odniesienia - NIE podłączaj pinu AREF bezpośrednio do +5 woltów!

DAC PWM Stage: Ponieważ ATMega1284 nie posiada własnego przetwornika cyfrowo-analogowego, wyjściowe kształty fal audio są generowane przy użyciu modulacji szerokości impulsu filtra RC. Dwa wyjścia PWM na PD4 i PD5 są ustawione jako wysoki i niski bajt wyjścia audio i zmieszane z dwoma rezystorami (3k9 i 1M) w stosunku 1:256 (niski i wysoki bajt) - co generuje wyjście audio.

Krok 3: Oprogramowanie

Oprogramowanie jest oparte na szkicach pedałów stompboksowych Open Music Labs i zawiera dwa przykłady, a mianowicie efekt flanger/phaser i efekt opóźnienia. Ponownie, podobnie jak w przypadku poprzedniej instrukcji, przełączniki i dioda LED zostały przeniesione do innych portów z dala od tych używanych przez programistę ISP (SCLK, MISO, MOSI i Reset).

Bufor opóźnienia został zwiększony z 1000 słów do 7000 słów, a PortD został ustawiony jako wyjście dla dwóch sygnałów PWM. Nawet przy zwiększeniu bufora opóźnienia szkic nadal wykorzystuje tylko około 75% dostępnej pamięci ATMega1284 16 kB RAM.

Inne przykłady, takie jak tremolo ze strony Open Music Labs dla pedalSHIELD Uno, można dostosować do użycia przez Mega1284, zmieniając plik nagłówkowy nagłówka Stompshield.h:

(1) Zmień DDRB |= 0x06; // ustaw wyjścia pwm (piny 9, 10) na outputtoDDRD |= 0x30;

oraz

ADMUX = 0x62; // regulacja lewo, adc2, wewnętrzny vcc jako odniesienie do ADMUX = 0x60; // left adjust, adc0, internal vcc jako odniesienie // te zmiany są JEDYNYMI niezbędnymi zmianami w kodzie // podczas przenoszenia z Uno do ATMega1284

W przypadku dwóch przykładów zawartych tutaj plik nagłówkowy jest zawarty w szkicu - tzn. nie trzeba używać żadnych plików nagłówkowych

W niektórych szkicach przyciski 1 i 2 służą do zwiększania lub zmniejszania efektu. W przykładzie opóźnienia zwiększa lub zmniejsza czas opóźnienia. Kiedy szkic jest ładowany po raz pierwszy, zaczyna się z maksymalnym efektem opóźnienia. W przypadku szkicu fazera flangera, spróbuj zwiększyć kontrolę sprzężenia zwrotnego, aby uzyskać lepszy efekt.

Aby zmienić opóźnienie na efekt echa (dodać powtórzenie), zmień linię:

bufor[lokalizacja] = wejście; // przechowuj nową próbkę

do

bufor[lokalizacja] = (wejście + bufor[lokalizacja])>>1; // Użyj tego dla efektu echa

Przełącznik nożny powinien być przełącznikiem dwukierunkowym z trzema biegunami

Krok 4: Linki

Elektrosmash

Otwórz laboratoria muzyczne Muzyka

Pedał efektu ATMega

Zalecana: