Sisällysluettelo:
Video: ATMega1284P -kitara- ja musiikkiefektipedaali: 6 vaihetta (kuvilla)
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Olen siirtänyt Arduino Uno ATMega328 Pedalshieldin (Electrosmashin kehittämä ja osittain Open Music Labin työn perusteella) ATMega1284P: hen, jossa on kahdeksan kertaa enemmän RAM -muistia kuin Unoon (16 kt vs 2 kt). Odottamaton lisäetu on se, että Mega1284 -rakenteen kohinakomponentti on paljon pienempi - siinä määrin, että kun vertaan Unoa ja Mega1284: ää käyttämällä samaa tukipiiriä, ei ole kohtuutonta kuvata Unoa "meluisana" ja Mega1284: ää " hiljainen". Suurempi RAM -muisti tarkoittaa, että voidaan saavuttaa paljon pidempi viivevaikutus - ja sen osoittaa Arduino -luonnosesimerkki, jonka olen sisällyttänyt. Hengityksen taustamelu käytettäessä Tremelo -tehostetta puuttuu (lähes) myös ATMega1284: sta.
Vertaamalla kolmea Atmel AVR -mikroprosessoria, nimittäin 328P, joka on Uno, 2560P, joka on Mega2560, ja Mega1284 osoittavat, että jälkimmäisellä on eniten RAM -muistia kolmesta:
Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO -nastat 23 32 86 Keskeytykset 2 3 8 Analoginen tulo 6 8 16
Aloitin leipomalla Uno-pohjaisen pedalSHIELD: n kuten Electrosmash-spesifikaatiossa, mutta minulla ei ollut samaa RRO OpAmpia kuin määritetty. Tämän seurauksena päädyin piiriin, jonka katsoin antavan hyväksyttävät tulokset. Tämän Uno -version tiedot ovat liitteessä 2.
Tämä sama piiri siirrettiin sitten ATMega1284: een - yllättäen lukuun ottamatta muita kuin oleellisia muutoksia, kuten kytkinten ja LED -valojen liittämistä eri porttiin ja vain 12 000 kt: n varaamista 2 000 kt: n RAM -muistia varten vain yksi olennainen muutos oli tehtävä lähdekoodiin, nimittäin Timer1/PWM OC1A ja OC1B -ulostulojen muuttaminen Unon portista B porttiin D (PD5 ja PD4) ATMega1284: ssä.
Löysin myöhemmin Paul Gallagherin erinomaiset muutokset sähköpuristuspiiriin, ja testin jälkeen esitän tämän piirin - mutta sitten myös muutoksilla: Unon korvaaminen Mega1284: llä, Texas Instruments TLC2272: n käyttö OpAmpina ja Mega1284: n erinomaisen kohinatehon vuoksi voisin myös nostaa alipäästösuodattimen taajuustasoa.
On tärkeää huomata, että vaikka ATMega1284-kehityskortteja on saatavana (Github: MCUdude MightyCore), paljaan (käynnistyslataamattoman) sirun ostaminen on helppoa (osta PDIP-versio, joka on leipä- ja strip-board-levy) ystävällinen), lataa sitten Maniacbug Mighty-1284p Core Optiboot -latauslaitteen tai MCUdude Mightycoren Mark Pendrith -haarukka käyttämällä Unoa Internet-palveluntarjoajan ohjelmoijana ja lataamalla sitten luonnokset uudelleen Unon kautta AtMega1284: een. Yksityiskohdat ja linkit tähän prosessiin ovat liitteessä 1.
Haluan tunnustaa kolme tärkeintä lähdettä, joista voi saada lisätietoja ja antaa linkkejä heidän verkkosivustoilleen ja tämän artikkelin loppuun: Electrosmash, Open Music Labs ja Tardate/Paul Gallagher
Vaihe 1: Osaluettelo
ATMega1284P (40 -nastainen PDIP -pakettiversio) Arduino Uno R3 (käytetään Internet -palveluntarjoajana käynnistyslataimen ja luonnosten siirtämiseen ATMega1284: een) OpAmp TLC2272 (tai vastaava RRIO (Rail to Rail Input and Output) OpAmp, kuten MCP6002, LMC6482, TL972) Punainen LED 16 MHz kide 2 x 27 pF kondensaattorit 5 x 6n8 kondensaattorit 270 pF kondensaattori 4 x 100n kondensaattorit 2 x 10uF 16v elektrolyyttikondensaattorit 6 x 4k7 vastukset 100k vastus 2 x 1M vastukset 470 ohmin vastus 1M2 vastus 100k potentiometri 3 x painikekytkimet (yksi niistä tulee korvata 3-napaisella 2-suuntaisella jalkakytkimellä, jos efektilaatikkoa käytetään live-työhön)
Vaihe 2: Rakentaminen
Kaaviossa 1 esitetään käytetty piiri ja Breadboard 1 on sen fyysinen esitys (Fritzing 1) ja kuva 1 todellinen käytössä oleva leipälevypiiri. Voi olla edullista, että potentiometri on sekoitin kuivalle (yhtä suuri kuin tulo) ja märkä (MCU: n käsittelyn jälkeen), ja kaavio 2, leipälevy 2 ja kuva 2 (lueteltu lisäyksessä 2) antaa piirin tiedot aiemmin rakennetusta piiristä, joka sisältää tällaisen tulon lähtösekoittimeen. Katso myös Open Music Labs StompBoxista toinen sekoittimen toteutus neljällä OpAmpilla.
OpAmp -tulo- ja lähtövaiheet: On tärkeää, että käytetään RRO: ta tai mieluiten RRIO OpAmpia, koska ATMega1284: n ADC: n OpAmp -lähdössä vaaditaan suuri jännitevaihtelu. Osaluettelo sisältää useita vaihtoehtoisia OpAmp -tyyppejä. 100k potentiometriä käytetään säätämään tulovahvistusta tasolle, joka on juuri vääristymien alapuolella, ja sitä voidaan käyttää myös säätämään tulon herkkyyttä muulle tulolähteelle kuin kitaralle, kuten musiikkisoittimelle. OpAmp -lähtövaiheessa on korkeamman asteen RC -suodatin, joka poistaa digitaalisesti syntyvän MCU -kohinan äänivirrasta.
ADC -vaihe: ADC on määritetty lukemaan keskeytyksen kautta koko ajan. Huomaa, että 100 nF: n kondensaattori on kytkettävä ATMega1284: n AREF -nastan ja maan väliin melun vähentämiseksi, koska sisäistä Vcc -lähdettä käytetään vertailujännitteenä - ÄLÄ kytke AREF -nasta +5 volttiin suoraan!
DAC PWM -vaihe: Koska ATMega1284: llä ei ole omaa DAC: ää, lähtöääniaaltomuodot generoidaan käyttämällä RC -suodattimen pulssileveysmodulaatiota. Kaksi PWM -lähtöä PD4: ssä ja PD5: ssä asetetaan äänilähdön korkeiksi ja mataliksi tavuiksi ja sekoitetaan kahden vastuksen (4k7 ja 1M2) kanssa suhteessa 1: 256 (matala tavu ja korkea tavu) - mikä tuottaa äänilähdön. Voi olla kannattavaa kokeilla muita vastuspareja, kuten Open Music Labsin StompBoxissa käyttämää 3k9 1M ohmia.
Vaihe 3: Ohjelmisto
Ohjelmisto perustuu electrosmash -luonnoksiin, ja mukana oleva esimerkki (pedalshield1284delay.ino) on mukautettu Uno -viivepiirustuksesta. Osa kytkimistä ja LED -valoista oli siirretty muihin portteihin kaukana Internet -palveluntarjoajan käyttämistä porteista (SCLK, MISO, MOSI ja Reset), viivepuskuria on lisätty 2000 tavusta 12000 tavuun ja PortD on asetettu lähtö kahdelle PWM -signaalille. Vaikka viivepuskuri kasvaa, luonnos käyttää edelleen vain noin 70% käytettävissä olevasta 1284 RAM -muistista.
Muita esimerkkejä, kuten oktaaveri tai tremolo, sähköpistoolin verkkosivustolta SHIELD Uno, voidaan mukauttaa Mega1284: n käyttöön muuttamalla koodin kolmea osaa:
(1) Muuta DDRB | = ((PWM_QTY << 1) | 0x02); muotoon DDRD | = 0x30; // Edellä oleva muutos on AINOA olennainen koodimuutos // siirrettäessä AtMega328: sta ATMega1284: een
(2) Vaihda #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
kohteeseen
#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
(3) Vaihda pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, LÄHTÖ)
kohteeseen
pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, LÄHTÖ);
Painikkeita 1 ja 2 käytetään joissakin luonnoksissa tehosteen lisäämiseksi tai vähentämiseksi. Viiveesimerkissä se lisää tai lyhentää viiveaikaa. Kun luonnos ladataan ensimmäisen kerran, se alkaa suurimmalla viiveellä. paina alas -painiketta - kestää noin 20 sekuntia laskea alas aina viive -asentoon - ja paina sitten ylös -painiketta ja pidä sitä painettuna. Kuuntele, kuinka painikkeen painamisen pyyhkäisyvaikutus muuttaa sen vaiheen, kuoron ja laipan vaikutukseksi sekä painikkeen vapauttamisen viiveen.
Jos haluat muuttaa viiveen kaikuefektiksi (lisää toistoa), muuta riviä:
DelayBuffer [DelayCounter] = ADC_high;
kohteeseen
DelayBuffer [DelayCounter] = (ADC_high + (DelayBuffer [DelayCounter])) >> 1;
Jalkakytkimen tulee olla kolminapainen kaksisuuntainen kytkin, ja se on liitettävä sähkömaskin verkkosivustolla kuvatulla tavalla.
Vaihe 4: Linkit
(1) Sähke:
(2) Open Music Labs:
(3) Paul Gallagher:
(4) 1284 Bootloader:
(5) ATmega1284 8 -bittinen AVR -mikrokontrolleri:
ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Microcontroller
Vaihe 5: Liite 1 ATMega1284P: n ohjelmointi
On olemassa muutamia verkkosivustoja, jotka antavat hyvän selityksen siitä, kuinka paljaat ATMega1284 -sirut ohjelmoidaan käytettäväksi Arduino IDE: n kanssa. Prosessi on olennaisesti seuraava: (1) Asenna Maniacbug Mighty-1284p Core Optiboot -latauslaitteen Mark Pendrith -haarukka Arduino IDE -laitteeseen. (2) Kytke ATMega1284 leipälevylle sen minimikokoonpanolla, joka on 16 MHz: n kide, 2 x 22 pF: n kondensaattorit, jotka maadoittavat kiteen kaksi päätä, Yhdistä kaksi maadoitettua nastaa yhteen (nastat 11 ja 31) ja Arduino Unon maahan, liitä Vcc ja AVcc yhteen (nastat 10 ja 30) ja sitten Uno +5v, kytke sitten nollausnasta 9 Uno D10 -tapaan, MISO -nasta 7 UNO D12: een, The MOSI nasta 8 Uno D11: een ja SCLK -nasta 7 Uno D13 -tappiin. (3) Liitä Uno Arduino IDE: hen ja lataa luonnosesimerkki Arduino Internet -palveluntarjoajaksi Unoon. (4) Valitse nyt 1284 "maniac" mahtava optiboot -kortti ja valitse vaihtoehto Burn bootloader. (5) Valitse sitten esimerkkinä 1284 viivepiirros ja lataa se käyttämällä Uno as programmer -vaihtoehtoa luonnosvalikossa.
Linkit, jotka selittävät prosessin tarkemmin, ovat:
ATmega1284: n käyttäminen Arduino IDEArduino Mightycoren kanssa suurille leipälautaystävällisille AVR -laitteille ATMega1284p -prototyypin rakentaminen Arduino ATmega1284p -latauslatain
Vaihe 6: Liite 2 Arduino Uno PedalSHIELD -muunnelma
Schematic3, Breadboard3 ja Photo3 sisältävät yksityiskohtia Uno-pohjaisesta piiristä, joka edelsi AtMega1284-rakennetta.
Voi olla edullista, että potentiometri on sekoitin kuivalle (yhtä suuri kuin tulo) ja märkä (MCU: n käsittelyn jälkeen), ja kaavio 2, leipälauta 2 ja kuva 2 antavat aikaisemmin rakennetun piirin piiritiedot joka sisältää tällaisen tulon lähtösekoittimeen. Katso myös Open Music Labs StompBoxista toinen sekoittimen toteutus neljällä OpAmps -toiminnolla