Оглавление:

ATMega1284P Гитара и педаль музыкальных эффектов: 6 ступеней (с изображениями)
ATMega1284P Гитара и педаль музыкальных эффектов: 6 ступеней (с изображениями)

Видео: ATMega1284P Гитара и педаль музыкальных эффектов: 6 ступеней (с изображениями)

Видео: ATMega1284P Гитара и педаль музыкальных эффектов: 6 ступеней (с изображениями)
Видео: ATMEGA644 транзистор тестeр 2024, Июль
Anonim
ATMega1284P Гитара и педаль музыкальных эффектов
ATMega1284P Гитара и педаль музыкальных эффектов

Я портировал Arduino Uno ATMega328 Pedalshield (разработанный Electrosmash и частично на основе работы в Open Music Lab) на ATMega1284P, который имеет в восемь раз больше оперативной памяти, чем Uno (16 КБ против 2 КБ). Дополнительным неожиданным преимуществом является то, что сборка Mega1284 имеет гораздо более низкий компонент шума - до такой степени, что, когда я сравниваю Uno и Mega1284 с использованием одной и той же схемы поддержки, вполне разумно описать Uno как "шумный", а Mega1284 как " тихий". Больший объем ОЗУ означает, что можно получить гораздо более длительный эффект задержки - и это демонстрирует пример скетча Arduino, который я включил. Фоновый шум дыхания при использовании эффекта Тремело также (почти) отсутствует у ATMega1284.

Сравнение трех микропроцессоров Atmel AVR, а именно 328P (Uno), 2560P (Mega2560) и Mega1284, показывает, что последний имеет наибольшее количество оперативной памяти из трех:

Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 контакта ввода-вывода 23 32 86 Прерывания 2 3 8 Аналоговый вход 6 8 16

Я начал с макета PedalSHIELD на основе Uno, как в спецификации Electrosmash, но у меня не было такого же операционного усилителя RRO, как указано. В результате я получил схему, которая, как я считал, дает приемлемые результаты. Подробности этой версии Uno приведены в Приложении 2.

Затем эта же схема была перенесена на ATMega1284 - удивительно, если не считать несущественных изменений, таких как назначение переключателей и светодиода на другой порт и выделение 12 000 КБ вместо 2 000 КБ ОЗУ для буфера задержки, только в исходный код нужно было внести одно существенное изменение, а именно изменить выходы Timer1 / PWM OC1A и OC1B с порта B на Uno на порт D (PD5 и PD4) на ATMega1284.

Позже я обнаружил отличные модификации схемы Electrosmash, выполненные Полом Галлахером, и после тестирования эту схему я представлю здесь, но также с изменениями: замена Uno на Mega1284, использование Texas Instruments TLC2272 в качестве операционного усилителя и из-за отличных шумовых характеристик Mega1284 я также смог поднять уровень частоты фильтра нижних частот.

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

Я хотел бы отметить три наиболее важных источника, из которых можно получить дополнительную информацию и дать ссылки на их веб-сайты и конец этой статьи: Electrosmash, Open Music Labs и Tardate / Paul Gallagher.

Шаг 1: Список деталей

ATMega1284P (версия корпуса PDIP с 40 выводами) Arduino Uno R3 (используется в качестве ISP для передачи загрузчика и эскизов на ATMega1284) OpAmp TLC2272 (или аналогичный RRIO (Rail to Rail Input and Output) OpAmp, такой как MCP6002, LMC6482, TL972) Красный светодиод, кристалл 16 МГц 2 конденсатора 27 пФ 5 конденсаторов 6n8 Конденсатор 270 пФ 4 конденсатора 100n 2 электролитических конденсатора 10 мкФ 16 В 6 резисторов 4k7 Резистор 100 кОм 2 резистора 1M резистор 470 Ом Резистор 1M2 100k Потенциометр 3 кнопочных переключателя (один из них следует заменить трехполюсным двухпозиционным педальным переключателем, если блок эффектов будет использоваться для концертной работы)

Шаг 2: Строительство

Строительство
Строительство
Строительство
Строительство
Строительство
Строительство

Схема 1 показывает используемую схему, а Макетная плата 1 является ее физическим представлением (Fritzing 1), а фотография 1 - фактической работающей макетной схемой. Может быть полезно иметь потенциометр в качестве смесителя для сухого (равного входному) и влажного (после обработки микроконтроллером) сигнала, и Схема 2, Макетная плата 2 и Фото 2 (перечисленные в Приложении 2) дают Детали схемы ранее построенной схемы, которая включает в себя такой смеситель от входа к выходу. Также посмотрите на StompBox Open Music Labs для другой реализации микшера с использованием четырех операционных усилителей.

Входные и выходные каскады операционного усилителя: важно, чтобы использовался операционный усилитель RRO или предпочтительно RRIO из-за большого размаха напряжения, необходимого на выходе операционного усилителя к АЦП ATMega1284. Список деталей содержит ряд альтернативных типов операционных усилителей. Потенциометр 100k используется для регулировки входного усиления до уровня чуть ниже любого искажения, а также его можно использовать для настройки входной чувствительности для источника входного сигнала, отличного от гитары, например, музыкального плеера. Выходной каскад OpAmp имеет RC-фильтр более высокого порядка для удаления сгенерированного в цифровом виде шума MCU из аудиопотока.

Стадия АЦП: АЦП настроен на постоянное считывание через прерывание. Обратите внимание, что конденсатор емкостью 100 нФ должен быть подключен между выводом AREF ATMega1284 и землей, чтобы уменьшить шум, поскольку внутренний источник Vcc используется в качестве опорного напряжения - НЕ подключайте вывод AREF к +5 вольт напрямую!

Этап DAC PWM: поскольку ATMega1284 не имеет собственного DAC, выходные звуковые сигналы генерируются с использованием широтно-импульсной модуляции RC-фильтра. Два выхода PWM на PD4 и PD5 устанавливаются как старший и младший байты аудиовыхода и смешиваются с двумя резисторами (4k7 и 1M2) в соотношении 1: 256 (младший байт и старший байт), что генерирует аудиовыход.. Возможно, стоит поэкспериментировать с другими парами резисторов, такими как пара 3k9 1M Ом, используемая Open Music Labs в их StompBox.

Шаг 3: Программное обеспечение

Программное обеспечение основано на эскизах Electrosmash, и включенный пример (pedalshield1284delay.ino) был адаптирован из их эскиза задержки Uno. Некоторые переключатели и светодиоды были перемещены на другие порты, отличные от используемых программистом ISP (SCLK, MISO, MOSI и Reset), буфер задержки был увеличен с 2000 до 12000 байтов, а PortD был установлен как выход для двух сигналов ШИМ. Даже с увеличением буфера задержки скетч по-прежнему использует только около 70% доступной 1284 RAM.

Другие примеры, такие как октавер или тремоло с сайта Electrosmash для pedalSHIELD Uno, можно адаптировать для использования в Mega1284, изменив три раздела в коде:

(1) Измените DDRB | = ((PWM_QTY << 1) | 0x02); to DDRD | = 0x30; // Указанное выше изменение является ЕДИНСТВЕННЫМ существенным изменением кода // при переносе с AtMega328 на ATMega1284

(2) Измените #define LED 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4

к

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

(3) Измените режим pinMode (ПЕРЕКЛЮЧАТЕЛЬ, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (светодиод, ВЫХОД)

к

pinMode (ПЕРЕКЛЮЧАТЕЛЬ, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (светодиод, ВЫХОД);

Кнопки 1 и 2 используются в некоторых эскизах для увеличения или уменьшения эффекта. В примере с задержкой время задержки увеличивается или уменьшается. Когда скетч загружается впервые, он запускается с эффектом максимальной задержки. нажмите кнопку «вниз» - для полного обратного отсчета до положения отсрочки отсрочки потребуется около 20 секунд - а затем нажмите и удерживайте кнопку «вверх». Послушайте, как эффект развертки при удерживании кнопки изменяет эффект на эффект фазера, хоруса и флэнжера, а также задержку при отпускании кнопки.

Чтобы изменить задержку на эффект эха (добавить повторение), измените строку:

DelayBuffer [DelayCounter] = ADC_high;

к

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

Ножной переключатель должен быть трехполюсным и двухпозиционным и должен быть подключен, как описано на сайте Электросмаша.

Шаг 4. Ссылки

Ссылки
Ссылки

(1) Электросмаш:

(2) Открытые музыкальные лаборатории:

(3) Пол Галлахер:

(4) 1284 загрузчик:

(5) ATmega1284 8-битный микроконтроллер AVR:

ЭлектросмашOpenlabs 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) Установите вилку Марка Пендрита загрузчика Maniacbug Mighty-1284p Core Optiboot в среду разработки Arduino. (2) Подключите ATMega1284 к макетной плате с минимальной конфигурацией, которая представляет собой кристалл 16 МГц, 2 конденсатора по 22 пФ, которые заземляют два конца кристалла, соедините два контакта заземления вместе (контакты 11 и 31), а затем к заземлению Arduino Uno, соедините Vcc и AVcc вместе (выводы 10 и 30), а затем к Uno + 5v, затем подключите вывод сброса 9 к выводу Uno D10, вывод 7 MISO к UNO D12, MOSI вывод 8 к Uno D11, а вывод 7 SCLK к выводу Uno D13. (3) Подключите Uno к Arduino IDE и загрузите пример скетча Arduino в качестве ISP на Uno. (4) Теперь выберите мощную плату optiboot 1284 «маньяк» и выберите параметр «Записать загрузчик». (5) Затем выберите эскиз задержки 1284, приведенный здесь в качестве примера, и загрузите его, используя опцию Uno as programmer в меню эскизов.

Ссылки, которые объясняют процесс более подробно:

Использование ATmega1284 с Arduino IDEArduino Mightycore для больших макетных AVR Создание прототипа ATMega1284p Загрузчик Arduino ATmega1284p

Шаг 6: Приложение 2 Вариант Arduino Uno PedalSHIELD

Приложение 2 Вариант Arduino Uno PedalSHIELD
Приложение 2 Вариант Arduino Uno PedalSHIELD
Приложение 2 Вариант Arduino Uno PedalSHIELD
Приложение 2 Вариант Arduino Uno PedalSHIELD
Приложение 2 Вариант Arduino Uno PedalSHIELD
Приложение 2 Вариант Arduino Uno PedalSHIELD

Schematic3, Breadboard3 и Photo3 предоставляют подробную информацию о схеме на основе Uno, которая предшествовала сборке AtMega1284.

Может быть полезно иметь потенциометр в качестве смесителя для сухого (равного входу) и влажного (после обработки микроконтроллером) сигнала, а на Схеме 2, Макетной плате 2 и Фото 2 приведены детали схемы ранее построенной схемы. который включает в себя такой вход для выходного микшера. Также посмотрите на StompBox Open Music Labs для другой реализации микшера с использованием четырех операционных усилителей.

Рекомендуемые: