Cuprins:

ATMega1284 Cutie de efecte Quad Opamp: 4 pași (cu imagini)
ATMega1284 Cutie de efecte Quad Opamp: 4 pași (cu imagini)

Video: ATMega1284 Cutie de efecte Quad Opamp: 4 pași (cu imagini)

Video: ATMega1284 Cutie de efecte Quad Opamp: 4 pași (cu imagini)
Video: Despre Multimetru LCR cu ATMEGA 328 2024, Iulie
Anonim
Caseta de efecte ATMega1284 Quad Opamp
Caseta de efecte ATMega1284 Quad Opamp

Stomp Shield pentru Arduino de la Open Music Labs folosește un Arduino Uno și patru opamps ca o cutie de efecte de chitară. Similar cu instructiunea anterioară care arată cum să portați Electrosmash Uno Pedalshield, am portat, de asemenea, caseta Open Music Labs Guitar Effects pe ATMega1284P care are de opt ori mai multă RAM decât Uno (16kB față de 2kB).

În comparație cu instrucțiunile anterioare folosind unitatea de efecte ATMega1284, această casetă are următoarele avantaje:

(1) Are un mixer care amestecă semnalul neprelucrat cu semnalul procesat MCU - ceea ce înseamnă că calitatea semnalului la ieșire este mult îmbunătățită.

(2) Procesează ieșirea pe 16 biți pentru cele două ieșiri PWM atunci când caseta de efecte anterioară folosește 8 biți pentru unele dintre exemple, cum ar fi efectul de întârziere.

(3) Are un potențiometru de feedback care poate fi utilizat pentru a spori efectele - în special cu efectul flanger / phaser, feedback de aproximativ 30% se adaugă considerabil la calitatea efectului.

(4) Frecvența filtrului trece-jos este de 10 kHz comparativ cu 5 kHz din caseta de efecte anterioară - acest lucru înseamnă că semnalul de la ieșire sună considerabil „mai clar”.

(5) Folosește un declanșator de întrerupere diferit care poate explica nivelul de zgomot considerabil mai redus arătat de această casetă de efecte.

Am început prin abordarea panoului Open Music Labs Stompbox Shield, bazat pe Uno, și am fost atât de impresionat de performanța acestui circuit de procesare a semnalului OpAmp (chiar și atunci când foloseam un Arduino Uno), încât l-am transferat pe bandă pentru o utilizare mai permanentă.

Aceleași patru circuite opamp și cod DSP au fost apoi portate la ATMega1284 - din nou, în mod surprinzător, în afară de modificările neesențiale, cum ar fi atribuirea comutatoarelor și LED-urilor la un port diferit și alocarea a 7 000 de kilograme în loc de 1 000 kilo-cuvânt RAM pentru buffer-ul de întârziere, doar două modificări esențiale trebuiau făcute în codul sursă, și anume schimbarea la ADC0 din ADC2 și schimbarea ieșirilor Timer1 / PWM OC1A și OC1B din portul B pe Uno în portul D (PD5 și PD4) pe ATMega1284.

Așa cum s-a menționat anterior, deși sunt disponibile plăci de dezvoltare pentru ATMega1284 (Github: MCUdude MightyCore), este un exercițiu ușor să cumpărați cipul gol (fără bootloader) (cumpărați versiunea PDIP care este compatibilă cu panourile și plăcile), apoi încărcați furca Mark Pendrith a încărcătorului de boot Maniacbug Mighty-1284p Core Optiboot sau MCUdude Mightycore, utilizând un Uno ca programator ISP, apoi încărcați schițele din nou prin Uno pe AtMega1284. Detaliile și legăturile pentru acest proces sunt date în apendicele 1 la instructajul anterior.

Pasul 1: Lista pieselor

Lista de componente
Lista de componente
Lista de componente
Lista de componente

ATMega1284P (versiune pachet PDIP 40 pini) Arduino Uno R3 (folosit ca ISP pentru a transfera încărcătorul de încărcare și schițe la ATMega1284) OpAmp MCP6004 quad OpAmp (sau RRIO similar (intrare și ieșire Rail to Rail) OpAmp precum TLC2274) 1 x LED roșu 1 x 16 MHz cristal 2 x 27 pF condensatori 1 x 3n9 condensator 1 x 1n2 condensator 1 x 820pF condensator 2 x 120 pF condensator 4 x 100n condensators 3 x 10uF 16v condensators electrolytic 4 x 75k resistors 4 x 3k9 resistors 1 x 36k rezistență 1 x rezistență 24k 2 rezistențe 1M rezistență 1 x 470 ohm rezistențe 3 x rezistențe 1k 2 x 50k Potențiometre (liniare) 1 x 10k Potențiometru (liniare) 3 comutatoare cu buton (unul dintre ele trebuie înlocuit cu un 3 poli 2- footswitch dacă caseta de efecte va fi folosită pentru munca live)

Pasul 2: Construcție

Constructie
Constructie

Circuitul 1 prezintă circuitul utilizat, iar Stripboard 1 este reprezentarea sa fizică (Fritzing 1), cu fotografia 1, circuitul real cu pană în funcțiune. Au fost făcute trei mici modificări de circuit: polarizarea opamp la jumătate de aprovizionare partajată este utilizată pentru trei trepte OpAmp, rezistențele paralele de 3 x 75k și 2 x 75k ohmi au fost înlocuite cu rezistențe unice de 24k și 36k, iar condensatorii de feedback au fost măriți la 120pF pentru aceste două etape OpAmp. Comanda rotativă a fost înlocuită cu două butoane care sunt utilizate pentru a mări sau micșora parametrii efectelor. Conexiunea cu trei fire la ATMega1284 este prezentată pe circuit ca ADC la pinul 40, PWMlow de la pinul 19 și PWMhigh de la pinul 18. Cele trei butoane sunt conectate la pinii 1, 36 și 35 și împământate la celălalt capăt. Un LED este conectat printr-un rezistor 470 la pinul 2.

Etape de intrare și ieșire OpAmp: Este important ca un RRO sau de preferință un RRIO OpAmp să fie utilizat datorită oscilației de tensiune mare necesară la ieșirea OpAmp către ADC-ul ATMega1284. Lista pieselor conține o serie de tipuri OpAmp alternative. Potențiometrul de 50k este utilizat pentru a regla câștigul de intrare la un nivel chiar sub orice distorsiune și poate fi, de asemenea, utilizat pentru a regla sensibilitatea de intrare pentru o altă sursă de intrare decât o chitară, cum ar fi un music player. A doua etapă de intrare OpAmp și prima etapă de ieșire opamp are un filtru RC de ordin superior pentru a elimina zgomotul MCU generat digital din fluxul audio.

Etapa ADC: ADC-ul este configurat pentru a fi citit printr-o întrerupere temporizată. Un condensator 100nF ar trebui să fie conectat între pinul AREF al ATMega1284 și masă pentru a reduce zgomotul, deoarece o sursă internă Vcc este utilizată ca tensiune de referință - NU conectați pinul AREF la +5 volți direct!

Etapa DAC PWM: Deoarece ATMega1284 nu are propriul DAC, formele de undă audio de ieșire sunt generate utilizând o modulație a lățimii impulsurilor unui filtru RC. Cele două ieșiri PWM de pe PD4 și PD5 sunt setate ca octeții mari și mici ai ieșirii audio și amestecate cu cele două rezistențe (3k9 și 1M) într-un raport 1: 256 (octet scăzut și octet ridicat) - care generează ieșirea audio.

Pasul 3: Software

Software-ul se bazează pe schițele pedalei stompbox Open Music Labs și sunt incluse două exemple și anume un efect flanger / phaser și un efect de întârziere. Din nou, ca și în cazul instructabilului anterior, comutatoarele și LED-ul au fost mutate în alte porturi departe de cele utilizate de programatorul ISP (SCLK, MISO, MOSI și Reset).

Tamponul de întârziere a fost mărit de la 1000 de cuvinte la 7000 de cuvinte, iar PortD a fost setat ca ieșire pentru cele două semnale PWM. Chiar și odată cu creșterea bufferului de întârziere, schița utilizează în continuare doar aproximativ 75% din RAM-ul ATMega1284 de 16 kB disponibil.

Alte exemple, cum ar fi tremolo de pe site-ul web Open Music Labs pentru pedala SHIELD Uno pot fi adaptate pentru a fi utilizate de Mega1284 prin schimbarea fișierului de antet include Stompshield.h:

(1) Schimbați DDRB | = 0x06; // setați ieșirile pwm (pinii 9, 10) la outputtoDDRD | = 0x30;

și

ADMUX = 0x62; // ajustare la stânga, adc2, vcc intern ca referință la ADMUX = 0x60; // ajustare la stânga, adc0, vcc intern ca referință // Aceste modificări sunt NUMAI modificările esențiale ale codului // la portarea de la Uno la ATMega1284

Pentru cele două exemple incluse aici, fișierul de antet este inclus în schiță - adică nu este necesar să se utilizeze fișiere de antet

Butoanele 1 și 2 sunt utilizate în unele schițe pentru a crește sau micșora un efect. În exemplul de întârziere crește sau scade timpul de întârziere. Când schița este încărcată pentru prima dată, începe cu efectul de întârziere maximă. Pentru schița fazerului flanger, încercați să măriți controlul feedback-ului pentru un efect îmbunătățit.

Pentru a schimba întârzierea la un efect de ecou (adăugați repetare) schimbați linia:

buffer [location] = intrare; // stochează eșantion nou

la

buffer [location] = (input + buffer [location]) >> 1; // Folosiți acest lucru pentru efectul de ecou

Comutatorul de picior trebuie să fie un comutator cu trei poli cu două căi

Pasul 4: Link-uri

Electrosmash

Deschideți laboratoare de muzică Muzică

Pedala de efect ATMega

Recomandat: