Агуулгын хүснэгт:

ATMega1284 Quad Opamp Effects Box: 4 алхам (зурагтай)
ATMega1284 Quad Opamp Effects Box: 4 алхам (зурагтай)

Видео: ATMega1284 Quad Opamp Effects Box: 4 алхам (зурагтай)

Видео: ATMega1284 Quad Opamp Effects Box: 4 алхам (зурагтай)
Видео: PID demo 2024, Долдугаар сарын
Anonim
ATMega1284 Quad Opamp Effects Box
ATMega1284 Quad Opamp Effects Box

Open Music Labs -ийн Arduino -д зориулсан Stomp Shield нь гитар эффектийн хайрцаг болгон Arduino Uno болон дөрвөн опамп ашигладаг. Electrosmash Uno Pedalshield -ийг хэрхэн яаж холбохыг харуулсан өмнөх зааварчилгааны нэгэн адил би Open Music Labs Guitar Effects хайрцгийг Uno -аас 8 дахин их RAM -тэй ATMega1284P (16кБ ба 2кБ -ийн эсрэг) -т зөөсөн.

ATMega1284 эффектийн нэгжийн өмнөх заавартай харьцуулахад энэ хайрцаг нь дараахь давуу талуудтай.

(1) Энэ нь боловсруулагдаагүй дохиог MCU -ийн боловсруулсан дохиотой холих холигчтой бөгөөд энэ нь гаралтын дохионы чанар эрс сайжирсан гэсэн үг юм.

(2) Энэ нь ХОУХ -ны хоёр гаралтын хувьд 16 битийн гаралтын боловсруулалтыг хийдэг бол өмнөх эффектийн хайрцагт саатал эффект гэх мэт зарим жишээнд 8 бит ашигладаг байсан.

(3) Энэ нь эффектийг сайжруулахын тулд ашиглах боломжтой эргэх потенциометртэй бөгөөд ялангуяа фланжер/фазер эффектийн 30 орчим хувийн санал нь эффектийн чанарыг ихээхэн нэмэгдүүлдэг.

(4) Бага нэвтрүүлэх шүүлтүүрийн давтамж нь өмнөх эффектийн хайрцгийн 5 кГц -тэй харьцуулахад 10 кГц байна - энэ нь гаралт дээрх дохио нэлээд "яруу" сонсогдож байна гэсэн үг юм.

(5) Энэ эффектийн хайрцагт үзүүлсэн дуу чимээний түвшин доогуур байгааг тайлбарлаж болох өөр тасалдлын триггерийг ашигладаг.

Би Uno-д суурилсан Open Music Labs Stompbox Shield дээр талхаар суулгаж эхэлсэн бөгөөд энэ дөрвөн OpAmp дохио боловсруулах хэлхээний гүйцэтгэлд маш их сэтгэгдэл төрж байсан (Arduino Uno ашиглаж байсан ч гэсэн), би үүнийг тасралтгүй ашиглахаар самбар дээр шилжүүлсэн.

Дараа нь ижил дөрвөн опам хэлхээ ба DSP кодыг ATMega1284 руу шилжүүлэв. Гайхалтай нь унтраалга, LED-ийг өөр порт руу шилжүүлэх, 7000 кило үг хуваарилах гэх мэт чухал бус өөрчлөлтүүдээс гадна 1 000 биш. саатал буферт зориулсан RAM-ийн кило-үг, зөвхөн хоёр чухал өөрчлөлтийг эх кодонд хийх ёстой байсан, өөрөөр хэлбэл ADC2-ээс ADC0 болгон өөрчлөх, Uno дээрх B портоос Timer1/PWM OC1A ба OC1B гаралтыг D порт болгон өөрчлөх (ATMega1284 дээрх PD5 ба PD4).

Өмнө дурьдсанчлан, хэдийгээр ATMega1284-ийн хөгжүүлэлтийн самбарууд байдаг (Github: MCUdude MightyCore), нүцгэн (ачаалагчгүй) чип худалдаж авах нь хялбар байдаг (талх, самбар дээр ээлтэй PDIP хувилбарыг худалдаж аваарай)., дараа нь Maniacbug Mighty-1284p Core Optiboot bootloader эсвэл MCUdude Mightycore-ийн Марк Пендрит салаа, Uno-ийг ISP-ийн программист болгон ашиглаж, дараа нь Uno-ээр дамжуулан AtMega1284 рүү ноорог дахин ачаална. Энэхүү үйл явцын талаархи дэлгэрэнгүй мэдээлэл, холбоосыг өмнөх зааврын 1 -р хавсралтад өгсөн болно.

Алхам 1: эд ангиудын жагсаалт

Эд ангиудын жагсаалт
Эд ангиудын жагсаалт
Эд ангиудын жагсаалт
Эд ангиудын жагсаалт

ATMega1284P (PDIP 40 зүү багцын хувилбар) Arduino Uno R3 (ачаалагч болон ноорогыг ATMega1284 руу шилжүүлэхэд ISP болгон ашигладаг) OpAmp MCP6004 quad OpAmp (эсвэл түүнтэй төстэй RRIO (Rail to Rail Input and Output) OpAmp, жишээ нь TLC2274) 1 x Улаан LED 1 x 16 MHz болор 2 x 27 pF конденсатор 1 x 3n9 конденсатор 1 x 1n2 конденсатор 1 x 820pF конденсатор 2 x 120 pF конденсатор 4 x 100n конденсатор 3 x 10uF 16v электролитийн конденсатор 4 x 75k эсэргүүцэл 4 x 3k9 резистор 1 x 36k резистор 1 x 24k резистор 2 x 1M резистор 1 x 470 ом эсэргүүцэл 3 x 1k резистор 2 x 50k потенциометр (шугаман) 1 x 10k потенциометр (шугаман) 3 x товчлуурын унтраалга (тэдгээрийн нэгийг 3 туйлтай 2- орлуулах ёстой эффектийн хайрцгийг амьд ажилд ашиглах гэж байгаа бол хөлийг нь солих арга)

Алхам 2: Барилга

Барилга
Барилга

1-р хэлхээнд ашигласан хэлхээг харуулсан бөгөөд Stripboard 1 нь түүний физик дүрслэл (Fritzing 1) бөгөөд Фото 1-тэй бодит талхтай самбар ажиллаж байна. Гурван жижиг хэлхээний өөрчлөлт хийгдсэн: Хагас хангамжийн түвшний опамп хэвийсэн утгыг OpAmp-ийн гурван үе шатанд ашигладаг, 3 x 75k ба 2 x 75k ом параллель резисторыг нэг 24k ба 36k резистороор сольж, саналын конденсаторыг нэмэгдүүлсэн. Эдгээр хоёр OpAmp шатанд 120pF. Эргэдэг удирдлагыг эффектийн параметрүүдийг нэмэгдүүлэх эсвэл багасгахад ашигладаг хоёр товчлуураар сольсон. ATMega1284-тэй гурван утастай холболтыг хэлхээнд 40-р зүү, 19-р зүүгээс PWMlow, 18-р зүүгээс PWMlow, 3-р товчлуурыг 1, 36, 35-р зүүтэй холбож, нөгөө үзүүрт нь газардуулсан байна. LED нь 470 резистороор 2 -р зүү рүү холбогддог.

OpAmp оролт ба гаралтын үе шатууд: ATMega1284 -ийн ADC руу OpAmp гаралтанд их хүчдэлийн хэлбэлзэл шаардагддаг тул RRO эсвэл илүү тохиромжтой RRIO OpAmp ашиглах нь чухал юм. Бүрэлдэхүүн хэсгүүдийн жагсаалт нь OpAmp -ийн өөр хувилбаруудыг агуулдаг. 50k потенциометр нь оролтын ололтыг гажуудлаас арай доогуур түвшинд тохируулахад хэрэглэгддэг бөгөөд үүнийг хөгжим тоглуулагч гэх мэт гитараас бусад оролтын эх үүсвэрийн оролтын мэдрэмжийг тохируулахад ашиглаж болно. Хоёрдахь OpAmp оролтын үе шат ба эхний opamp гаралтын үе шат нь дижитал хэлбэрээр үүсгэсэн MCU дуу чимээг аудио дамжуулалтаас зайлуулах өндөр түвшний RC шүүлтүүртэй.

ADC үе шат: ADC нь таймер тасалдах замаар уншихаар тохируулагдсан болно. Дотоод Vcc эх үүсвэрийг лавлах хүчдэл болгон ашигладаг тул дуу чимээг бууруулахын тулд ATMega1284 -ийн AREF зүү ба газардуулгын хооронд 100nF конденсаторыг холбох ёстой - AREF зүүг +5 вольт руу шууд бүү холбоорой!

DAC PWM үе шат: ATMega1284 нь өөрийн DAC -тэй байдаггүй тул гаралтын аудио долгионы хэлбэрийг RC шүүлтүүрийн импульсийн өргөн модуляцийг ашиглан үүсгэдэг. PD4 ба PD5 дээрх ХОУХ -ны хоёр гаралтыг аудио гаралтын дээд ба доод байт болгон тохируулж, хоёр эсэргүүцэлтэй (3k9 ба 1M) 1: 256 харьцаагаар (бага байт ба өндөр байт) хольж аудио гаралтыг бий болгодог..

Алхам 3: Програм хангамж

Програм хангамж нь Open Music Labs стомбоксын дөрөөний ноорог дээр суурилсан бөгөөд фланжер/фазер эффект, хоцролтын эффект гэсэн хоёр жишээ багтсан болно. Өмнөх зааварчилгааны адил унтраалга, LED -ийг ISP програмист (SCLK, MISO, MOSI ба дахин тохируулах) ашигладаг портуудаас өөр порт руу шилжүүлсэн.

Саатуулах буферийг 1000 үгээс 7000 үг болгон нэмэгдүүлж, ХОУХ -ны хоёр дохионы гаралтыг PortD болгож тохируулсан болно. Хойшлуулах буфер нэмэгдсэн ч ноорог нь бэлэн байгаа ATMega1284 16 кБ хэмжээтэй RAM -ийн 75 орчим хувийг л ашигладаг хэвээр байна.

SHIELD Uno -ийн Open Music Labs вэбсайтаас авсан тремоло гэх мэт бусад жишээг Stompshield.h толгой файлыг өөрчилснөөр Mega1284 ашиглаж болно.

(1) DDRB -ийг өөрчлөх | = 0x06; // pwm гаралтыг (9, 10 -р зүү) outputtoDDRD болгон тохируулах | = 0x30;

ба

ADMUX = 0x62; // зүүн тохируулга, adc2, дотоод vcc нь ADMUX = 0x60 -ийн лавлагаа болно; // зүүн тохируулга, adc0, дотоод vcc -ийг лавлагаа болгон авах // Эдгээр өөрчлөлтүүд нь Uno -аас ATMega1284 руу зөөвөрлөхөд ЗӨВХӨН чухал кодын өөрчлөлтүүд юм.

Энд оруулсан хоёр жишээний хувьд толгой файлыг ноорог хэсэгт оруулсан болно, өөрөөр хэлбэл толгой файл ашиглах шаардлагагүй.

Зарим ноорог дээр эффектийг нэмэгдүүлэх эсвэл багасгахын тулд 1, 2 товчлуурыг ашигладаг. Сааталтын жишээн дээр энэ нь хойшлуулах хугацааг нэмэгдүүлж эсвэл бууруулдаг. Ноорогыг анх ачаалах үед хамгийн их саатуулах нөлөөтэй эхэлдэг. Хөндлөнгийн фазерын ноорогыг сайжруулахын тулд санал хүсэлтийн хяналтыг нэмэгдүүлэхийг хичээ.

Саатлыг цуурай эффект болгон өөрчлөхийн тулд (давталт нэмэх) мөрийг өөрчилнө үү.

буфер [байршил] = оролт; // шинэ дээж хадгалах

руу

буфер [байршил] = (оролт + буфер [байршил]) >> 1; // Үүнийг echo effct -д ашиглаарай

Хөлийн унтраалга нь гурван туйлтай хоёр талын унтраалга байх ёстой

Алхам 4: Холбоосууд

Electrosmash

Хөгжмийн лабораторийг нээнэ үү

ATMega эффектийн дөрөө

Зөвлөмж болгож буй: