Sisällysluettelo:

ATMega1284P -kitara- ja musiikkiefektipedaali: 6 vaihetta (kuvilla)
ATMega1284P -kitara- ja musiikkiefektipedaali: 6 vaihetta (kuvilla)

Video: ATMega1284P -kitara- ja musiikkiefektipedaali: 6 vaihetta (kuvilla)

Video: ATMega1284P -kitara- ja musiikkiefektipedaali: 6 vaihetta (kuvilla)
Video: Debugging board on ATmega1284P microcontroller 2024, Marraskuu
Anonim
ATMega1284P kitara- ja musiikkiefektipedaali
ATMega1284P kitara- ja musiikkiefektipedaali

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

Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
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

Linkit
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

Liite 1 ATMega1284P: n ohjelmointi
Liite 1 ATMega1284P: n ohjelmointi
Liite 1 ATMega1284P: n ohjelmointi
Liite 1 ATMega1284P: n ohjelmointi
Liite 1 ATMega1284P: n ohjelmointi
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

Liite 2 Arduino Uno PedalSHIELD -muunnelma
Liite 2 Arduino Uno PedalSHIELD -muunnelma
Liite 2 Arduino Uno PedalSHIELD -muunnelma
Liite 2 Arduino Uno PedalSHIELD -muunnelma
Liite 2 Arduino Uno PedalSHIELD -muunnelma
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

Suositeltava: