Sisukord:

ATMega1284P kitarri- ja muusikatefektide pedaal: 6 sammu (piltidega)
ATMega1284P kitarri- ja muusikatefektide pedaal: 6 sammu (piltidega)

Video: ATMega1284P kitarri- ja muusikatefektide pedaal: 6 sammu (piltidega)

Video: ATMega1284P kitarri- ja muusikatefektide pedaal: 6 sammu (piltidega)
Video: Ламповый VS Твердотельный VS Цифровой 2024, November
Anonim
ATMega1284P kitarri- ja muusikatefektide pedaal
ATMega1284P kitarri- ja muusikatefektide pedaal

Olen teisaldanud Arduino Uno ATMega328 Pedalshieldi (välja töötatud Electrosmashi poolt ja osaliselt Open Music Labis tehtud töö põhjal) ATMega1284P -sse, millel on kaheksa korda rohkem RAM -i kui Uno -l (16 kB versus 2 kB). Täiendav ootamatu eelis on see, et Mega1284 ehitisel on palju väiksem mürakomponent - sel määral, et kui võrrelda Uno ja Mega1284 sama tugiskeemi kasutades, pole mõistlik kirjeldada Unot kui "mürarikast" ja Mega1284 kui " vaikne ". Suurem RAM tähendab, et saab saavutada palju pikema viivituse efekti - ja seda näitab ka minu lisatud Arduino visandinäide. Hingamise taustamüra Tremelo efekti kasutamisel puudub (peaaegu) ka ATMega1284 puhul.

Kolme Atmel AVR mikroprotsessori, nimelt 328P, mis on Uno, 2560P, mis on Mega2560, ja Mega1284 võrdlus näitab, et viimasel on kolmest kõige rohkem RAM -i:

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 Katkestused 2 3 8 Analog In 6 8 16

Alustasin Uno-põhise pedalSHIELD-i leivaga, nagu oli kirjas Electrosmashi spetsifikatsioonis, kuid mul ei olnud sama RRO OpAmp-i, nagu täpsustatud. Selle tulemusena jõudsin ringrajani, mis minu arvates andis vastuvõetavaid tulemusi. Selle Uno versiooni üksikasjad on toodud 2. lisas.

See sama vooluahel kanti seejärel ATMega1284 -sse - üllatavalt peale ebaoluliste muudatuste, nagu lülitite ja LED -de määramine teisele pordile ning viivituspuhvri jaoks eraldati 12 000 kB RAM -i asemel 2 000 kB. üks oluline muudatus tuli teha lähtekoodis, nimelt Timer1/PWM OC1A ja OC1B väljundite muutmine Uno pordist B porti D (PD5 ja PD4) ATMega1284.

Hiljem avastasin Paul Gallagheri suurepärased muudatused elektrilöögi vooluringis ja pärast katsetamist tutvustan seda vooluahelat - kuid siis ka muudatustega: Uno asendamine Mega1284 -ga, kasutades OpAmpina Texas Instruments TLC2272 ja Mega1284 suurepärase mürataseme tõttu võiksin tõsta ka madalpääsfiltri sagedustaset.

Oluline on märkida, et kuigi ATMega1284 arendusplaadid on saadaval (Github: MCUdude MightyCore), on palja (alglaadurivaba) kiibi ostmine lihtne (ostke PDIP-versioon, mis on leiva- ja ribaplaat) sõbralik), seejärel laadige Maniacbug Mighty-1284p Core Optiboot alglaaduri või MCUdude Mightycore'i Mark Pendrithi kahvel, kasutades ISP programmeerijana Uno ja laadides seejärel visandid uuesti Uno kaudu AtMega1284-sse. Selle protsessi üksikasjad ja lingid on toodud 1. lisas.

Tahaksin tunnustada kolme kõige olulisemat allikat, kust on võimalik saada lisateavet ning anda linke nende veebisaitidele ja selle artikli lõppu: Electrosmash, Open Music Labs ja Tardate/Paul Gallagher

Samm: osade loend

ATMega1284P (40 -pin PDIP -paketi versioon) Arduino Uno R3 (kasutatakse Interneti -teenuse pakkujana alglaaduri ja visandite ülekandmiseks ATMega1284 -le) OpAmp TLC2272 (või sarnane RRIO (rööpast rööbasteni sisend ja väljund) OpAmp, näiteks MCP6002, LMC6482, TL972) Punane LED 16 MHz kristall 2 x 27 pF kondensaatorid 5 x 6n8 kondensaatorid 270 pF kondensaator 4 x 100n kondensaatorid 2 x 10uF 16v elektrolüütkondensaatorid 6 x 4k7 takistid 100k takisti 2 x 1M takistid 470 oomi takisti 1M2 takisti 100k potentsiomeeter 3 x nuppude lülitid (üks neist tuleks asendada 3-pooluselise 2-suunalise jalglülitiga, kui efektide kasti kasutatakse reaalajas tööks)

2. etapp: ehitamine

Ehitus
Ehitus
Ehitus
Ehitus
Ehitus
Ehitus

Skeem 1 näitab kasutatud vooluringi ja leivaplaat 1 on selle füüsiline esitus (Fritzing 1) koos fotoga 1 tegeliku leivaplaadi vooluringi. Võib olla kasulik kasutada potentsiomeetrit kuiva (võrdne sisendiga) ja märja (pärast töötlemist MCU) signaaliga ning skeem 2, leivaplaat 2 ja foto 2 (loetletud 2. liites) annab Varem ehitatud vooluahela üksikasjad, mis sisaldavad sellist sisendit väljundsegistisse. Vaadake ka Open Music Labsi StompBoxi, et leida neli mikserit, kasutades nelja OpAmp -i.

OpAmp sisendi ja väljundi etapid: On oluline, et kasutataks RRO -d või eelistatavalt RRIO OpAmp -i, kuna ATMega1284 ADC -l on vajalik suur pinge kõikumine. Osade loend sisaldab mitmeid alternatiivseid OpAmp -tüüpe. 100k potentsiomeetrit kasutatakse sisendvõimendi reguleerimiseks tasemele, mis jääb veidi alla igasuguse moonutuse, ning seda saab kasutada ka sisenditundlikkuse reguleerimiseks muule sisendallikale kui kitarr, näiteks muusikapleier. OpAmp väljundastmel on kõrgema astme RC filter, mis eemaldab helivoo digitaalselt loodud MCU müra.

ADC etapp: ADC on konfigureeritud lugema katkestuse kaudu kogu aeg. Pange tähele, et müra vähendamiseks tuleks ATMega1284 AREF -tihvti ja maanduse vahele ühendada 100 nF kondensaator, kuna võrdluspingena kasutatakse sisemist Vcc -allikat - ÄRGE ühendage AREF -pinti +5 voldiga otse!

DAC PWM etapp: Kuna ATMega1284 -l pole oma DAC -i, genereeritakse väljundheli lainekujud RC -filtri impulsi laiuse modulatsiooni abil. PD4 ja PD5 kaks PWM -väljundit on seatud heliväljundi kõrgeteks ja madalateks baitideks ning segatud kahe takisti (4k7 ja 1M2) suhtega 1: 256 (madal bait ja kõrge bait) - mis loob heliväljundi. Võib -olla tasub katsetada teiste takistipaaridega, näiteks 3k9 1M oomi paariga, mida Open Music Labs kasutab oma StompBoxis.

Samm: tarkvara

Tarkvara põhineb elektrilöögi visanditel ja lisatud näide (pedalshield1284delay.ino) on kohandatud nende Uno viivituse visandist. Mõned lülitid ja valgusdioodid on viidud teistesse portidesse, mitte ISP programmeerija poolt kasutatavatesse portidesse (SCLK, MISO, MOSI ja Reset), viivituspuhvrit on suurendatud 2000 baidilt 12000 baidile ja PortD on määratud väljund kahe PWM -signaali jaoks. Isegi kui viivituspuhvrit suurendatakse, kasutab visand endiselt ainult umbes 70% saadaolevast 1284 RAM -ist.

Teisi näiteid, nagu näiteks pedaali SHIELD Uno elektriajamise veebisaidil olev oktaaver või tremolo, saab Mega1284 jaoks kohandada, muutes koodi kolme jaotist:

(1) Muuda DDRB | = ((PWM_QTY << 1) | 0x02); to DDRD | = 0x30; // Ülaltoodud muudatus on AINULT oluline koodimuutus // AtMega328 -lt ATMega1284 -le teisaldamisel

(2) Muuda #define LED 13 #define JALGALÜLITI 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

et

#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

(3) Muuda pinMode (JALGALÜLITI, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, VÄLJUND)

et

pinMode (JALGALÜLITI, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, VÄLJUND);

Nuppe 1 ja 2 kasutatakse mõnes visandis efekti suurendamiseks või vähendamiseks. Viite näites pikendab või vähendab see viivitusaega. Eskiisi esmakordsel laadimisel algab see maksimaalse viivituse efektiga. vajutage allanuppu - lõpuni mahalükkamiseks kulub umbes 20 sekundit - ja seejärel vajutage ja hoidke all nuppu. Kuulake, kuidas nupu all hoidmise pühkimisefekt muudab faaseri, koori ja ääriku efekti, samuti nupu vabastamise viivitust.

Viivituse muutmiseks kajaefektiks (lisage kordus) muutke rida:

Viivituspuhver [DelayCounter] = ADC_high;

et

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

Jalglüliti peaks olema kolmepooluseline kahesuunaline lüliti ja see tuleb ühendada nii, nagu on kirjeldatud elektrilöögi veebisaidil.

4. samm: lingid

Lingid
Lingid

(1) Elektrimass:

(2) Avatud muusikalaborid:

(3) Paul Gallagher:

(4) 1284 alglaadur:

(5) ATmega1284 8bit AVR mikrokontroller:

Electrosmash Openlabs Music Paul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR mikrokontroller

Samm 5: Lisa 1 ATMega1284P programmeerimine

Lisa 1 ATMega1284P programmeerimine
Lisa 1 ATMega1284P programmeerimine
Lisa 1 ATMega1284P programmeerimine
Lisa 1 ATMega1284P programmeerimine
Lisa 1 ATMega1284P programmeerimine
Lisa 1 ATMega1284P programmeerimine

On mõned veebisaidid, mis annavad hea selgituse selle kohta, kuidas programmeerida paljast ATMega1284 kiipi kasutamiseks koos Arduino IDE -ga. Protsess on sisuliselt järgmine: (1) Paigaldage Arduino IDE-sse Maniacbug Mighty-1284p Core Optiboot alglaaduri Mark Pendrith kahvel. (2) Ühendage ATMega1284 minimaalse konfiguratsiooniga leivaplaadile, milleks on 16 MHz kristall, 2 x 22 pF kondensaatorid, mis maandavad kristalli mõlemad otsad, ühendage kaks maandusnõela kokku (tihvtid 11 ja 31) ja seejärel Arduino Uno maandusega ühendage Vcc ja AVcc kokku (tihvtid 10 ja 30) ning seejärel Uno +5v, seejärel ühendage lähtestusnõel 9 Uno D10 tihvtiga, MISO tihvt 7 UNO D12, The MOSI tihvti 8 Uno D11 külge ja SCLK tihvti 7 Uno D13 tihvti külge. (3) Ühendage Uno Arduino IDE -ga ja laadige Uno -le eskiisnäide Arduino ISP -na. (4) Nüüd valige 1284 "maniakk" võimas optiboot -plaat ja valige suvand Burn bootloader. (5) Seejärel valige siin näidisena esitatud 1284 viivitusvisand ja laadige see üles, kasutades visandite menüüs suvandit Uno programmeerijana.

Protsessi üksikasjalikumalt selgitavad lingid on järgmised:

ATmega1284 ja Arduino IDEA kasutamine

Samm 6: Lisa 2 Arduino Uno PedalSHIELD variatsioon

Lisa 2 Arduino Uno PedalSHIELD variatsioon
Lisa 2 Arduino Uno PedalSHIELD variatsioon
Lisa 2 Arduino Uno PedalSHIELD variatsioon
Lisa 2 Arduino Uno PedalSHIELD variatsioon
Lisa 2 Arduino Uno PedalSHIELD variatsioon
Lisa 2 Arduino Uno PedalSHIELD variatsioon

Skeem3, Breadboard3 ja Photo3 annavad üksikasjad Uno-põhise vooluringi kohta, mis eelnes AtMega1284 ehitamisele.

Võib olla kasulik omada potentsiomeetrit kuiva (võrdse sisendiga) ja märja (pärast töötlemist MCU -ga) signaaliks ning skeemil 2, leivaplaadil 2 ja fotol 2 on toodud eelnevalt koostatud vooluahela üksikasjad mis sisaldab sellist sisendit väljundsegistisse. Vaadake ka Open Music Labsi StompBoxi, et leida neli mikserit, kasutades nelja OpAmp -i

Soovitan: