Բովանդակություն:

ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ. 6 քայլ (նկարներով)
ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ. 6 քայլ (նկարներով)

Video: ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ. 6 քայլ (նկարներով)

Video: ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ. 6 քայլ (նկարներով)
Video: Victor Mendoza- Redrum 2024, Նոյեմբեր
Anonim
ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ
ATMega1284P կիթառի և երաժշտական էֆեկտների ոտնակ

Ես Arduino Uno ATMega328 Pedalshield- ը (ինչպես մշակվել է Electrosmash- ի կողմից և մասամբ բաց երաժշտական լաբորատորիայում աշխատանքի հիման վրա) տեղափոխել եմ ATMega1284P, որն ունի ութ անգամ ավելի RAM, քան Uno- ն (16kB դիմաց 2kB): Լրացուցիչ անսպասելի օգուտ այն է, որ Mega1284- ի կառուցվածքն ունի շատ ավելի ցածր աղմուկի բաղադրիչ, այն աստիճան, որ երբ համեմատում եմ Uno- ն և Mega1284- ը նույն աջակցության սխեմաների միջոցով, անհիմն չէ Uno- ն նկարագրել որպես «աղմկոտ», իսկ Mega1284- ը `որպես« հանգիստ »: Ավելի մեծ RAM- ը նշանակում է, որ հետաձգման էֆեկտը կարող է ավելի երկար լինել, և դա ապացուցվում է Arduino- ի էսքիզների օրինակով, որը ես ներառել եմ: Տրեմելոյի էֆեկտն օգտագործելիս շնչառական աղմուկը նույնպես (գրեթե) բացակայում է ATMega1284- ով:

Atmel AVR երեք միկրոպրոցեսորների ՝ 328P- ի, որը Uno- ն է, 2560P- ի Mega2560- ի և Mega1284- ի համեմատությունը ցույց է տալիս, որ վերջիններից երեքից ամենաշատը RAM- ն է.

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO կապում 23 32 86 Ընդհատում 2 3 8 անալոգ 6 6 16 -ում

Ես սկսեցի Uno- ի վրա հիմնված Pedal SHIELD- ի հացով նստելը, ինչպես Electrosmash տեխնիկական բնութագրում, բայց ես չունեի նույն RRO OpAmp- ը, ինչպես նշված էր: Արդյունքում ես ավարտեցի մի շրջան, որը ես համարում էի ընդունելի արդյունքներ տալը: Այս Uno տարբերակի մանրամասները տրված են հավելված 2 -ում:

Այս նույն սխեման այնուհետև փոխանցվեց ATMega1284- ին `զարմանալիորեն զատ ոչ էական փոփոխություններից, ինչպիսիք են անջատիչներն ու LED- ն այլ նավահանգստում դնելը, իսկ ուշացման բուֆերի համար` 2000 000 ԿԲ RAM- ի փոխարեն 12 000 կԲ -ի հատկացումը: սկզբնաղբյուրում պետք է կատարվեր մեկ էական փոփոխություն, այն է `Timer1/PWM OC1A և OC1B ելքերի փոփոխությունը B նավահանգստից Uno- ում B նավահանգստում D (PD5 և PD4) ATMega1284- ում:

Հետագայում ես հայտնաբերեցի էլեկտրամաշկման սխեմայի գերազանց փոփոխությունները Պոլ Գալագերի կողմից և փորձարկումներից հետո սա այն շղթան է, որը ես կներկայացնեմ այստեղ, բայց հետո նաև փոփոխություններով. Uno- ի փոխարինումը Mega1284- ով, օգտագործելով Texas Instruments TLC2272- ը որպես OpAmp և Mega1284- ի գերազանց աղմուկի կատարման պատճառով ես կարող էի բարձրացնել ցածր անցման ֆիլտրի հաճախականության մակարդակը:

Կարևոր է նշել, որ չնայած ATMega1284- ի զարգացման տախտակները հասանելի են (Github: MCUdude MightyCore), այն հեշտ վարժություն է ՝ մերկ (առանց բեռնախցիկ) չիպ գնելը (գնել PDIP տարբերակը, որը հացաթղթից և շերտից պատրաստված տախտակ է) բարեկամական), այնուհետև բեռնեք Maniacbug Mighty-1284p Core Optiboot բեռնախցիկի Mark Pendrith պատառաքաղը կամ MCUdude Mightycore- ը ՝ օգտագործելով Uno- ն որպես ISP ծրագրավորող, այնուհետև Uno- ի միջոցով էսքիզները նորից բեռնեք AtMega1284- ում: Այս գործընթացի մանրամասները և հղումները տրված են հավելված 1 -ում:

Ես կցանկանայի ճանաչել երեք ամենակարևոր աղբյուրները, որոնցից լրացուցիչ տեղեկություններ կարելի է ստանալ և կտա հղումներ իրենց կայքերին և այս հոդվածի ավարտին ՝ Electrosmash, Open Music Labs և Tardate/Paul Gallagher

Քայլ 1: Մասերի ցուցակ

ATMega1284P (PDIP 40 փին փաթեթային տարբերակ) Arduino Uno R3 (օգտագործվում է որպես մատակարար ՝ բեռնախցիկն ու էսքիզները ATMega1284- ին փոխանցելու համար) OpAmp TLC2272 (կամ նմանատիպ RRIO (Rail to Rail Input and Output) OpAmp, ինչպիսիք են MCP6002, LMC6482), TL Կարմիր LED 16 ՄՀց բյուրեղյա 2 x 27 pF կոնդենսատորներ 5 x 6n8 կոնդենսատորներ 270 pF կոնդենսատոր 4 x 100n կոնդենսատորներ 2 x 10uF 16v էլեկտրոլիտային կոնդենսատորներ 6 x 4k7 ռեզիստորներ 100k resistor 2 x 1M resistors 470 ohm resistor 1M2 resistor 100k Potentiometer 3 x pushbutton switch (one դրանցից պետք է փոխարինվի եռաբևեռ երկկողմանի ոտնաչափ անջատիչով, եթե էֆեկտների տուփը օգտագործվելու է կենդանի աշխատանքի համար)

Քայլ 2: Շինարարություն

Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն
Շինարարություն

Սխեմատիկ 1-ը տալիս է օգտագործված սխեման, իսկ Breadboard 1-ը դրա ֆիզիկական պատկերն է (Fritzing 1), լուսանկար 1-ով, իսկ գործող հացով տախտակը գործող: Չոր (մուտքին հավասար) և թաց (MCU- ի կողմից մշակվելուց հետո) ազդանշանի համար որպես խառնիչ ունենալը ձեռնտու կլինի, և սխեմատիկ 2 -ը, Breadboard 2 -ը և Լուսանկարը 2 -ը (թվարկված է Հավելված 2 -ում), նախկինում կառուցված միացման սխեմայի մանրամասներ, որը ներառում է ելքային խառնիչին այդպիսի մուտքագրում: Նաև նայեք Open Music Labs StompBox- ին ՝ չորս OpAmps- ի միջոցով խառնիչի մեկ այլ իրականացման համար:

OpAmp մուտքի և ելքի փուլեր. Կարևոր է, որ RRO- ն կամ նախընտրելի է RRIO OpAmp- ը օգտագործվի, քանի որ մեծ լարման ճոճանակը պահանջվում է OpAmp- ի ելքից ATMega1284- ի ADC- ին: Մասերի ցանկը պարունակում է մի շարք այլընտրանքային OpAmp տեսակներ: 100k պոտենցիոմետրը օգտագործվում է մուտքի շահույթը ցանկացած խեղաթյուրումից ցածր մակարդակի կարգավորելու համար, և այն կարող է օգտագործվել նաև մուտքային զգայունությունը կարգավորելու համար, բացի կիթառից, օրինակ ՝ երաժշտական նվագարկիչից, մուտքային աղբյուրի համար: OpAmp ելքային փուլն ունի ավելի բարձր կարգի RC զտիչ `ձայնային հոսքից թվայնացված MCU աղմուկը հեռացնելու համար:

ADC փուլ. ADC- ն կազմված է այնպես, որ ամբողջ ժամանակ կարդում է ընդհատման միջոցով: Նկատի ունեցեք, որ 100nF կոնդենսատորը պետք է միացված լինի ATMega1284- ի AREF կապի և աղմուկի նվազեցման համար, քանի որ ներքին Vcc աղբյուրը օգտագործվում է որպես հղումային լարում.

DAC PWM փուլ. Քանի որ ATMega1284- ը չունի իր սեփական DAC- ն, ելքային աուդիոալիքային ձևերը գեներացվում են RC ֆիլտրի զարկերակային լայնության մոդուլյացիայի միջոցով: PDW- ի և PD5- ի երկու PWM ելքերը սահմանվում են որպես աուդիո ելքի բարձր և ցածր բայթեր և խառնվում են երկու դիմադրիչների հետ (4k7 և 1M2) 1: 256 հարաբերակցությամբ (ցածր բայթ և բարձր բայթ), ինչը առաջացնում է աուդիո ելք. Գուցե արժե փորձարկել այլ դիմադրողական զույգերի հետ, ինչպիսիք են 3k9 1M օմ զույգը, որն օգտագործվում է Open Music Labs- ի կողմից StompBox- ում:

Քայլ 3: Softwareրագրակազմ

Րագիրը հիմնված է electrosmash էսքիզների վրա, և ներառված օրինակը (pedalshield1284delay.ino), հարմարեցված է նրանց Uno հետաձգման ուրվագծից: Անջատիչների և LED- ների մի մասը տեղափոխվել է այլ նավահանգիստներ ՝ ISP ծրագրավորողի կողմից օգտագործվողից (SCLK, MISO, MOSI և Reset), հետաձգման բուֆերը 2000 բայթից ավելացել է մինչև 12000 բայթ, իսկ PortD- ն սահմանվել է որպես ելք երկու PWM ազդանշանների համար: Նույնիսկ հետաձգման բուֆերի ավելացման դեպքում էսքիզը դեռ օգտագործում է առկա 1284 RAM- ի միայն մոտ 70% -ը:

Այլ օրինակներ, ինչպիսիք են octaver- ը կամ tremolo- ն electrosmash կայքից ոտնակի համար SHIELD Uno- ն կարող են հարմարեցվել Mega1284- ի օգտագործման համար `փոփոխելով ծածկագրի երեք բաժին.

(1) Փոխել DDRB | = ((PWM_QTY << 1) | 0x02); դեպի DDRD | = 0x30; // Վերոնշյալ փոփոխությունը ՄԻԱՅՆ էական կոդի փոփոխությունն է // AtMega328- ից ATMega1284 տեղափոխելիս

(2) Փոխել #սահմանել LED 13 #սահմանել FOOTSWITCH 12 #սահմանել TOGGLE 2 #սահմանել PUSHBUTTON_1 A5 #սահմանել PUSHBUTTON_2 A4

դեպի

#սահմանել LED PB0 #սահմանել FOOTSWITCH PB1 #սահմանել PUSHBUTTON_1 A5 #սահմանել PUSHBUTTON_2 A4

(3) Փոխել pinMode- ը (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)

դեպի

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

1 -ին և 2 -րդ կոճակները էսքիզների մի մասում օգտագործվում են էֆեկտը մեծացնելու կամ նվազեցնելու համար: Հետաձգման օրինակում այն ավելանում կամ նվազում է հետաձգման ժամանակը: Երբ էսքիզն առաջին անգամ բեռնվում է, այն սկսվում է առավելագույն հետաձգման էֆեկտով: սեղմեք ներքևի կոճակը - մոտ 20 վայրկյան է պահանջվում հետհաշվարկը մինչև հետաձգման դիրքը, այնուհետև սեղմեք և պահեք վերևի կոճակը: Լսեք, թե ինչպես է կոճակում պահելու ավլում ազդեցությունը փոխում ազդեցությունը ֆազերի, երգչախմբի և ֆլանգի ազդեցության, ինչպես նաև կոճակի արձակման հետաձգման վրա:

Հետաձգումը էխոյի էֆեկտի փոխելու համար (ավելացրեք կրկնություն) փոխեք տողը.

DelayBuffer [DelayCounter] = ADC_ բարձր;

դեպի

DelayBuffer [DelayCounter] = (ADC_ բարձր + (DelayBuffer [DelayCounter])) >> 1;

Ոտնաթաթի անջատիչը պետք է լինի երեք բևեռ երկկողմանի անջատիչ և պետք է միացված լինի, ինչպես նկարագրված է electrosmash կայքում:

Քայլ 4: Հղումներ

Հղումներ
Հղումներ

(1) Electrosmash:

(2) Բաց երաժշտական լաբորատորիաներ.

(3) Պոլ Գալագեր.

(4) 1284 Bootloader:

(5) ATmega1284 8bit AVR միկրոկոնտրոլեր.

ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR միկրոկառավարիչ

Քայլ 5. Հավելված 1 ATMega1284P- ի ծրագրավորում

Հավելված 1 ATMega1284P- ի ծրագրավորում
Հավելված 1 ATMega1284P- ի ծրագրավորում
Հավելված 1 ATMega1284P- ի ծրագրավորում
Հավելված 1 ATMega1284P- ի ծրագրավորում
Հավելված 1 ATMega1284P- ի ծրագրավորում
Հավելված 1 ATMega1284P- ի ծրագրավորում

Կան մի քանի կայքեր, որոնք լավ բացատրություն են տալիս այն մասին, թե ինչպես կարելի է ծրագրավորել մերկ ATMega1284 չիպը Arduino IDE- ի հետ օգտագործելու համար: Գործընթացը ըստ էության հետևյալն է. (1) Տեղադրեք Mark Pendrith պատառաքաղը Maniacbug Mighty-1284p Core Optiboot բեռնախցիկի Arduino IDE- ում: (2) Միացրեք ATMega1284- ը տախտակի վրա `իր նվազագույն կազմաձևով, որը 16 ՄՀց բյուրեղ է, 2 x 22 pF կոնդենսատորներ, որոնք հիմնավորում են բյուրեղի երկու ծայրերը, միացրեք երկու գրունտի կապերը միասին (11 և 31 կապում), այնուհետև Arduino Uno գետնին, միացրեք Vcc- ն և AVcc- ը միասին (կապում 10 և 30), այնուհետև Uno +5v- ին, այնուհետև միացրեք վերականգնման 9 -րդ կապը Uno D10 քորոցին, MISO կապը 7 -ը UNO D12, The MOSI 8 -րդ կապը Uno D11- ին, իսկ SCLK- ի կապը 7 -ը Uno D13 կապին: (3) Միացրեք Uno- ն Arduino IDE- ին և բեռնեք Arduino- ի էսքիզային օրինակը որպես մատակարար ՝ Uno- ում: (4) Այժմ ընտրեք 1284 «մանյակ» հզոր optiboot տախտակը և ընտրեք Burn bootloader տարբերակը: (5) Այնուհետև որպես օրինակ ընտրեք այստեղ տրված 1284 հետաձգման ուրվագիծը և վերբեռնեք ՝ օգտագործելով ուրվագծերի ցանկում Uno as programmer տարբերակը:

Հղումներ, որոնք ավելի մանրամասն բացատրում են գործընթացը ՝

Օգտագործելով ATmega1284- ը Arduino IDEArduino Mightycore- ով ՝ մեծ տախտակի համար հարմար AVR- երի համար ATMega1284p նախատիպի կառուցում Arduino ATmega1284p բեռնիչ

Քայլ 6. Հավելված 2 Arduino Uno PedalSHIELD Variation

Հավելված 2 Arduino Uno PedalSHIELD Variation
Հավելված 2 Arduino Uno PedalSHIELD Variation
Հավելված 2 Arduino Uno PedalSHIELD Variation
Հավելված 2 Arduino Uno PedalSHIELD Variation
Հավելված 2 Arduino Uno PedalSHIELD Variation
Հավելված 2 Arduino Uno PedalSHIELD Variation

Schematic3- ը, Breadboard3- ը և Photo3- ը տալիս են Uno- ի վրա հիմնված սխեմայի մանրամասներ, որոնք նախորդել էին AtMega1284- ի կառուցմանը:

Չոր (մուտքին հավասար) և թաց (MCU- ով մշակվելուց հետո) ազդանշանի համար որպես խառնիչ ունենալը ձեռնտու կլինի, և սխեմատիկ 2 -ը, Breadboard 2 -ը և Լուսանկար 2 -ը տալիս են նախկինում կառուցված միացման սխեմայի մանրամասները: որը ներառում է նման մուտքագրում ելքային խառնիչին: Նաև նայեք Open Music Labs StompBox- ին ՝ չորս OpAmps- ի միջոցով խառնիչի մեկ այլ իրականացման համար

Խորհուրդ ենք տալիս: