Tartalomjegyzék:

ATMega1284P gitár- és zenei effektus pedál: 6 lépés (képekkel)
ATMega1284P gitár- és zenei effektus pedál: 6 lépés (képekkel)

Videó: ATMega1284P gitár- és zenei effektus pedál: 6 lépés (képekkel)

Videó: ATMega1284P gitár- és zenei effektus pedál: 6 lépés (képekkel)
Videó: Эй Джей Джейкобс: Крупнейшая в мире семейная встреча. Мы все приглашены! 2024, Július
Anonim
ATMega1284P gitár- és zenei effektus pedál
ATMega1284P gitár- és zenei effektus pedál

Az Arduino Uno ATMega328 Pedalshield -et (amelyet az Electrosmash fejlesztett ki, és részben az Open Music Lab munkája alapján) átvittem az ATMega1284P -be, amely nyolcszor több RAM -mal rendelkezik, mint az Uno (16 KB és 2 KB). További váratlan előny, hogy a Mega1284 build sokkal alacsonyabb zajszintű komponenssel rendelkezik - olyan mértékben, hogy ha összehasonlítom az Uno -t és a Mega1284 -t ugyanazt a támogatási áramkört használva, nem ésszerűtlen az Uno -t "zajosnak", a Mega1284 -t pedig " csendes". A nagyobb RAM azt jelenti, hogy sokkal hosszabb késleltetési hatás érhető el - és ezt bizonyítja az általam felvett Arduino vázlatpélda. A Tremelo effektus használatakor a légzési háttérzaj (szinte) hiányzik az ATMega1284 esetében is.

Három Atmel AVR mikroprocesszor összehasonlítása, nevezetesen a 328P, azaz az Uno, a 2560P, amely a Mega2560, és a Mega1284, azt mutatja, hogy az utóbbi rendelkezik a legtöbb RAM -mal a három közül:

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 Megszakítások 2 3 8 Analog In 6 8 16

Az Uno-alapú pedalSHIELD kenyérsütéssel kezdtem, mint az Electrosmash specifikációban, de nem rendelkeztem a megadott RRO OpAmp-tal. Ennek eredményeként egy olyan áramkörhöz jutottam, amelyet elfogadható eredményeknek tekintettem. Ennek az Uno verziónak a részleteit a 2. függelék tartalmazza.

Ugyanezt az áramkört azután az ATMega1284 -re is átvitték - meglepő módon, eltekintve az olyan lényeges változtatásoktól, mint például a kapcsolók és a LED -ek másik porthoz való hozzárendelése, és 12 000 kB kiosztása a 2 000 kB RAM helyett csak a késleltető pufferhez. egy lényeges változtatást kellett végrehajtani a forráskódban, nevezetesen a Timer1/PWM OC1A és OC1B kimenetek megváltoztatását az Uno B portjáról a D portra (PD5 és PD4) az ATMega1284 -en.

Később felfedeztem Paul Gallagher kiváló módosításait az elektromos összetörési áramkörön, és tesztelés után ezt az áramkört mutatom be itt - de akkor is módosításokkal: az Uno helyettesítését a Mega1284 -gyel, Texas Instruments TLC2272 -t használva OpAmp -ként, és a Mega1284 kiváló zajteljesítménye miatt az aluláteresztő szűrő frekvenciaszintjét is emelhetném.

Fontos megjegyezni, hogy bár az ATMega1284 fejlesztői táblái is rendelkezésre állnak (Github: MCUdude MightyCore), egyszerű feladat a csupasz (rendszerbetöltő nélküli) chip megvásárlása (vásárolja meg a PDIP verziót, amely kenyérlap és szalaglap) barátságos), majd töltse be a Maniacbug Mighty-1284p Core Optiboot rendszerbetöltő vagy az MCUdude Mightycore Mark Pendrith villáját úgy, hogy Uno-t használ ISP programozóként, majd töltse be újra a vázlatokat az Uno segítségével az AtMega1284-be. A folyamat részleteit és linkjeit az 1. függelék tartalmazza.

Szeretném tudomásul venni a három legfontosabb forrást, amelyekből további információkat szerezhet, és linkeket ad a webhelyükhöz, valamint a cikk végéhez: Electrosmash, Open Music Labs és Tardate/Paul Gallagher

1. lépés: Alkatrészlista

ATMega1284P (PDIP 40 tűs csomagverzió) Arduino Uno R3 (internetszolgáltatóként használják a rendszerbetöltő és a vázlatok ATMega1284 -re történő átviteléhez) OpAmp TLC2272 (vagy hasonló RRIO (sínből vasúti bemenethez és kimenethez) OpAmp, például MCP6002, LMC6482, TL972) Piros LED 16 MHz -es kristály 2 x 27 pF kondenzátorok 5 x 6n8 kondenzátorok 270 pF kondenzátor 4 x 100n kondenzátorok 2 x 10uF 16v elektrolit kondenzátorok 6 x 4k7 ellenállások 100k ellenállás 2 x 1M ellenállások 470 ohmos ellenállás 1M2 ellenállás 100k potenciométer 3 x nyomógombos kapcsolók (egy közülük 3 pólusú 2 utas lábkapcsolóval kell helyettesíteni, ha az effektdobozt élő munkához fogják használni)

2. lépés: Építés

Építkezés
Építkezés
Építkezés
Építkezés
Építkezés
Építkezés

Az 1. vázlat a használt áramkört, az 1. kenyértábla pedig a fizikai ábrázolást (Fritzing 1) és az 1. fényképet mutatja be a ténylegesen működő kenyérlapos áramkört. Előnyös lehet, ha egy potenciométert keverőként használnak a száraz (egyenlő a bemenettel) és a nedves (az MCU által végzett feldolgozás után) jelre, és a 2. ábra, a Breadboard 2 és a 2. fotó (a 2. függelékben felsorolva) megadja a egy korábban létrehozott áramkör áramkör részletei, amely ilyen bemenetet tartalmaz a kimeneti keverőhöz. Nézze meg az Open Music Labs StompBox -ot is, ahol egy másik mixer -megvalósítást talál négy OpAmps használatával.

OpAmp bemeneti és kimeneti szakaszok: Fontos, hogy RRO -t vagy lehetőleg RRIO OpAmp -et használjon, mert az ATMega1284 ADC -jéhez szükséges OpAmp kimeneten nagy feszültségingadozás szükséges. Az alkatrészlista számos alternatív OpAmp típust tartalmaz. A 100k potenciométer a bemenet erősítésének beállítására szolgál minden torzítás alatti szintre, és a gitártól eltérő bemeneti forrás, például zenelejátszó bemeneti érzékenységének beállítására is használható. Az OpAmp kimeneti fokozat magasabb rendű RC szűrővel rendelkezik, amely eltávolítja a digitálisan generált MCU zajt az audiofolyamból.

ADC szakasz: Az ADC úgy van konfigurálva, hogy folyamatosan megszakításon keresztül olvassa. Ne feledje, hogy 100 nF kondenzátort kell csatlakoztatni az ATMega1284 AREF csapja és a föld közé a zaj csökkentése érdekében, mivel belső Vcc forrást használnak referenciafeszültségként - NE csatlakoztassa az AREF csapot +5 volthoz közvetlenül!

DAC PWM szakasz: Mivel az ATMega1284 nem rendelkezik saját DAC -val, a kimenő hanghullámformák egy RC szűrő impulzusszélesség -modulációjával jönnek létre. A PD4 és PD5 két PWM kimenete az audio kimenet magas és alacsony bájtjaként van beállítva, és a két ellenállással (4k7 és 1M2) 1: 256 arányban (alacsony bájt és magas bájt) keveredik - ez generálja az audio kimenetet. Érdemes kísérletezni más ellenálláspárokkal, például az Open Music Labs által a StompBox -ban használt 3k9 1M ohmos párral.

3. lépés: Szoftver

A szoftver az electrosmash vázlatokra épül, és a példát (pedalshield1284delay.ino) az Uno késleltetési vázlatából alakították ki. A kapcsolók és a LED -ek egy részét más portokra helyezték át az ISP programozó által használt portoktól távol (SCLK, MISO, MOSI és Reset), a késleltetési puffert 2000 bájtról 12000 bájtra növelték, és a PortD értéket állították be kimenet a két PWM jelhez. A vázlat a késleltetési puffer növekedése ellenére is a rendelkezésre álló 1284 RAM mintegy 70% -át használja fel.

Más példák, mint például a Octal vagy a tremolo az Electrosmash webhelyről a pedálhoz SHIELD Uno a Mega1284 számára a kód három szakaszának megváltoztatásával alkalmazható:

(1) DDRB módosítása | = ((PWM_QTY << 1) | 0x02); DDRD -re | = 0x30; // A fenti módosítás az CSAK lényeges kódváltozás //, amikor az AtMega328 -ról az ATMega1284 -re történő portolás

(2) Módosítsa a #define LED -et 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

nak nek

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

(3) A pinMode módosítása (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, KIMENET)

nak nek

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, KIMENET);

Az 1 és 2 nyomógombok egyes vázlatokban az effektus növelésére vagy csökkentésére szolgálnak. A késleltetési példában növeli vagy csökkenti a késleltetési időt. A vázlat első betöltésekor a maximális késleltetéssel kezdődik. nyomja meg a le gombot - körülbelül 20 másodpercbe telik a visszaszámlálás egészen a késleltetett állásig -, majd nyomja meg és tartsa lenyomva a fel gombot. Hallgassa meg, hogyan változtatja meg a gomb lenyomásával a söprés hatása a fázist, a refrént és a karimát, valamint a gomb elengedésének késleltetését.

A késleltetés visszhanghatássá változtatásához (ismétlés hozzáadása) módosítsa a sort:

DelayBuffer [DelayCounter] = ADC_magas;

nak nek

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

A lábkapcsolónak hárompólusú kétirányú kapcsolónak kell lennie, és az elektromágneses webhelyen leírtak szerint kell csatlakoztatni.

4. lépés: Linkek

Linkek
Linkek

(1) Elektromos összetörés:

(2) Open Music Labs:

(3) Paul Gallagher:

(4) 1284 rendszerbetöltő:

(5) ATmega1284 8 bites AVR mikrokontroller:

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

5. lépés: 1. függelék Az ATMega1284P programozása

1. függelék Az ATMega1284P programozása
1. függelék Az ATMega1284P programozása
1. függelék Az ATMega1284P programozása
1. függelék Az ATMega1284P programozása
1. függelék Az ATMega1284P programozása
1. függelék Az ATMega1284P programozása

Van néhány webhely, amely jó magyarázatot ad arra, hogyan programozható a csupasz ATMega1284 chip az Arduino IDE -vel való használatra. A folyamat lényegében a következő: (1) Telepítse a Maniacbug Mighty-1284p Core Optiboot rendszerbetöltő Mark Pendrith villáját az Arduino IDE-be. (2) Csatlakoztassa az ATMega1284 -et egy minimális konfigurációjú kenyérsütő lapra, amely egy 16 MHz -es kristály, 2 x 22 pF kondenzátor, amely földeli a kristály két végét, Csatlakoztassa a két földelőcsapot (11. és 31. érintkező), majd az Arduino Uno földeléshez csatlakoztassa a Vcc és az AVcc csatlakozókat (10. és 30. tű), majd az Uno +5v -hez, majd csatlakoztassa a 9. visszaállító csapot az Uno D10 érintkezőhöz, a MISO 7. tüskét az UNO D12, The MOSI a 8. tüskét az Uno D11 -hez, az SCLK 7. csapot pedig az Uno D13 -as csaphoz. (3) Csatlakoztassa az Uno -t az Arduino IDE -hez, és töltse be az Arduino vázlatpéldáját internetszolgáltatóként az Uno -ra. (4) Most válassza ki az 1284 "mániákus" hatalmas optiboot táblát, és válassza a Burn bootloader opciót. (5) Ezután válassza ki az itt bemutatott 1284 késleltetés vázlatát, és töltse fel a vázlatok menü Uno as programmer opciójának használatával.

A folyamatot részletesebben bemutató linkek:

Az ATmega1284 használata az Arduino IDEArduino Mightycore -val a nagy kenyérpirítóbarát AVR -khez ATMega1284p prototípus létrehozása Arduino ATmega1284p rendszerbetöltő

6. lépés: 2. függelék Arduino Uno PedalSHIELD variáció

2. függelék Arduino Uno PedalSHIELD variáció
2. függelék Arduino Uno PedalSHIELD variáció
2. függelék Arduino Uno PedalSHIELD variáció
2. függelék Arduino Uno PedalSHIELD variáció
2. függelék Arduino Uno PedalSHIELD variáció
2. függelék Arduino Uno PedalSHIELD variáció

A Schematic3, a Breadboard3 és a Photo3 részletesen ismerteti az Uno-alapú áramkört, amely megelőzte az AtMega1284 buildet.

Előnyös lehet, ha potenciométert használunk keverőként a száraz (egyenlő a bemenettel) és a nedves (az MCU által végzett feldolgozás után) jelhez, és a 2. ábra, a Breadboard 2 és a Photo 2 egy korábban létrehozott áramkör részleteit tartalmazza. amely olyan bemenetet tartalmaz a kimeneti keverőhöz. Nézze meg az Open Music Labs StompBox -ot is, ahol egy másik mixer -megvalósítást talál négy OpAmps használatával

Ajánlott: