Что такое avr на диктофоне

Цифровое устройство записи речи, использующее технологию AVR и последовательную память DataFlash

  • Цифровое устройство записи голоса
  • 8-битовая запись звука
  • Частота дискретизации 8 кГц
  • Частота звука до 4 кГц
  • Максимальное время записи 4 1/4 минуты
  • Очень маленькие габаритные размеры
  • Всего 550 байтов кода

Это техническое руководство объясняет, как записывать, хранить и воспроизводить звук, используя любой микроконтроллер AVR с АЦП, память AT45DB161 DataFlash и несколько внешних компонентов.

Техническое руководство подробно описывает использование: АЦП для записи звука, последовательного периферийного интерфейса (SPI) для доступа к внешней памяти DataFlash и широтно-импульсной модуляции (ШИМ) для воспроизведения. Типичными устройствами, в которых могут использоваться эти блоки, являются: регистратор температуры, телефонный автоответчик или цифровой диктофон.

AT45DB161 DataFlash является 2.7В флэш-памятью с последователь-ным интерфейсом. 16 Мбит памяти организованы в виде 4096 страниц по 528 байт каждая. В дополнение к своей основной памяти DataFlash имеет 2 буфера данных SRAM по 528 байт каждый. Буферы позволяют записывать в DataFlash непрерывный поток данных.

AT45DB161 использует последовательный интерфейс SPI для последовательного доступа к данным. Этот интерфейс облегчает подключение аппаратных средств, повышает надёжность системы, уменьшает помехи переключения, а также позволяет уменьшить габаритные размеры и количество задействованных выводов ИМС. DataFlash обычно применяется для хранения изображений, данных и оцифрованных голосовых сообщений. DataFlash работает на тактовой частоте SPI до 13 МГц с типовым рассеянием тока во время чтения 4 мА. Для операций чтения и записи DataFlash работает от однополярного источника питания (от 2.7В до 3.6В).

Последовательный интерфейс DataFlash совместим с нулевым и третьим режимами последовательного периферийного интерфейса (SPI), таким образом, память DataFlash может быть легко подключена к AVR микроконтроллеру.

В этом примере AVR AT90S8535 используется для съёма выборок аналогового сигнала с микрофона и их последующей оцифровки. Встроенный SPI управляет передачей данных в/из DataFlash. Функция ШИМ используется для воспроизведения. Из-за очень маленького размера программы (

Источник

Цифровое устройство записи речи, использующее технологию AVR и последовательную память DataFlash

  • Цифровое устройство записи голоса
  • 8-битовая запись звука
  • Частота дискретизации 8 кГц
  • Частота звука до 4 кГц
  • Максимальное время записи 4 1/4 минуты
  • Очень маленькие габаритные размеры
  • Всего 550 байтов кода

Это техническое руководство объясняет, как записывать, хранить и воспроизводить звук, используя любой микроконтроллер AVR с АЦП, память AT45DB161 DataFlash и несколько внешних компонентов.

Техническое руководство подробно описывает использование: АЦП для записи звука, последовательного периферийного интерфейса (SPI) для доступа к внешней памяти DataFlash и широтно-импульсной модуляции (ШИМ) для воспроизведения. Типичными устройствами, в которых могут использоваться эти блоки, являются: регистратор температуры, телефонный автоответчик или цифровой диктофон.

AT45DB161 DataFlash является 2.7В флэш-памятью с последователь-ным интерфейсом. 16 Мбит памяти организованы в виде 4096 страниц по 528 байт каждая. В дополнение к своей основной памяти DataFlash имеет 2 буфера данных SRAM по 528 байт каждый. Буферы позволяют записывать в DataFlash непрерывный поток данных.

AT45DB161 использует последовательный интерфейс SPI для последовательного доступа к данным. Этот интерфейс облегчает подключение аппаратных средств, повышает надёжность системы, уменьшает помехи переключения, а также позволяет уменьшить габаритные размеры и количество задействованных выводов ИМС. DataFlash обычно применяется для хранения изображений, данных и оцифрованных голосовых сообщений. DataFlash работает на тактовой частоте SPI до 13 МГц с типовым рассеянием тока во время чтения 4 мА. Для операций чтения и записи DataFlash работает от однополярного источника питания (от 2.7В до 3.6В).

Читайте также:  Почему не работает сетевой адаптер ethernet

Последовательный интерфейс DataFlash совместим с нулевым и третьим режимами последовательного периферийного интерфейса (SPI), таким образом, память DataFlash может быть легко подключена к AVR микроконтроллеру.

В этом примере AVR AT90S8535 используется для съёма выборок аналогового сигнала с микрофона и их последующей оцифровки. Встроенный SPI управляет передачей данных в/из DataFlash. Функция ШИМ используется для воспроизведения. Из-за очень маленького размера программы (

Источник

Запись звука с помощью микроконтроллера на SD карту.

В одной из прошлых статей мы научились работать с sd карточкой и, конечно, хорошо было применить полученные знания на практике. Так родилась идея записывать звук на sd карточку, чтобы потом слушать его на компьютере. Что-то стоящее сделать не получится по той причине, что мы не можем создавать новые файлы и увеличивать их размер, эти ограничения накладывает библиотека. Но заложенные в этой статье принципы работы со звуком, можно будет использовать в дальнейшем.

Для начала в общих чертах рассмотрим, что мы хотим сделать. Мы хотим записать звук, а что такое звук? Звук — это есть не что иное, как колебания среды(воздуха, воды и т.д) в определённом диапазоне частот, другими словами, звук — это волна, которая распространяется в среде. То есть в вакууме звук распространяться не может(нет среды, нет звука) и если мы в вакууме попробуем поговорить друг с другом, мы просто друг друга не услышим. Эти самые колебания среды с помощью микрофона можно улавливать и преобразовывать в электрический сигнал, которые будет нести информацию, заложенную в звуке. Но электрический сигнал, на выходе микрофона очень слабый, поэтому его надо усилить, сделаем это с помощью усилителя на ОУ. Схема была взята из апноута Atmel, перевод которого можно почитать тут. В зависимости от микрофона номинал R5 может быть изменен, его значение определяет коэффициент усиления.

Оказалось, что простой звук гораздо сложнее, чем может показаться, ведь мы не чувствуем как наши голосовые связки совершают столь не простые движения.

Теперь этот аналоговый сигнал надо преобразовать в нули и единицы понятные микроконтроллеру, для этого воспользуемся встроенным в МК аналого-цифровым преобразователем(АЦП). АЦП через определённые промежутки времени(частота квантования) будет преобразовывать аналоговый сигнал приходящий ему на вход, в соответствующий цифровой код(набор нулей и единиц). Далее, данные полученные с АЦП необходимо записать в открытый файл на карточке, но есть одно, но мы не сможем потом такой файл воспроизвести на компьютере, потому что у него нет формата. Для того чтобы компьютер понял, что это файл с музыкой, а точнее, wav файл, необходимо это и ещё другую метаинформацию записать в начало файла. Wav файл разделен на секции(чанки), они бывают разных типов. Минимальное количество секций в wav файле равняется двум, первая — это секцию формата («fmt «) и вторая — это секцию данных («data«). Про структуру wav файла можно почитать тут, а описание этих секций зададим с помощью структуры, описанной ниже.

Возникает вопрос, с какой частотой АЦП должно производить захват данных, другими словами, какая должна быть частота дискретизации? Ответ на этот вопрос очень прост, частота дискретизации АЦП должна соответствовать, частоте дискретизации wav файла.

Wav файл может воспроизводиться с разной частотой дискретизации, мы для воспроизведения файла будем использовать 11025 выборок в секунду, значит и АЦП должно делать 11025 выборок в секунду.

Для того чтоб получить такую частоту дискретизации, будем запускать АЦП по таймеру. Сам таймер настроим по совпадению, то есть мы зададим число, досчитывав, до которого будет вызываться прерывание и запускаться преобразование АЦП.

Читайте также:  Сколько пикселей лучше для телевизора

Думаю у кого-то может возникнуть вопрос, как рассчитывалось значение

Теперь, воспользовавшись тем что период величина обратная частоте T = 1/F перевернём всё выражение и получим

Источник

Голосовое управление: цифровая обработка сигналов на 8-битном AVR при помощи жесткого ассемблера

Итак, пришло время рассказать кое-что поинтереснее простых поделок на АВРках. В этой статье я расскажу, как собрать на АВР устройство, выполняющее достаточно серьезную обработку аудио-сигнала с целью распознания голосовых команд.

Прежде всего, я бы хотел показать результат, к которому я пришел.

Устройство собрано в железе и полностью функционирует. Вероятность распознавания, разумеется, весьма низка, но, для подобного девайса это уже большое достижение – напомню, его ядром является 8-битный микроконтроллер ATMega88, с частотой 20 МГц и без каких-либо DSP-инструкций. Девайс распознает две команды (количество команд можно расширить до десятка, ресурсы позволяют), одна из которых включает силовую нагрузку, другая – выключает ее. Помимо этого, можно включать-выключать нагрузку с любого ик-пульта. Устройство способно коммутировать до 250В/8А.
По большей части, я разработал его из академического интереса, чтобы проверить, возможно ли реализовать подобные DSP-алгоритмы на дешевом и маломощном микроконтроллере общего назначения. Результат получился вполне удовлетворительным, и устройство работает у меня дома в режиме 24/7.
Если говорить о целесообразности использования маломощных микроконтроллеров – скажу коротко: в принципе, лучше не надо)
Для подобной задачи куда больше подойдет какой-нибудь младший чип из линейки dsPIC, с шестнадцатибитными DSP-инструкциями, которые сейчас столь же дешевы сколь и АВРки и бывают с таким же маленьким количеством ног. Либо что-нибудь от TI из линейки MSP430F2xxx
Но, если вам также как и мне интересно, что можно выжать из AVR – для вас эта статья.

Схемотехника

Начнем с разработки электрической схемы и попробуем понять, что нам от нее нужно.
А нужно следующее:
1) Питание от 220в. В принципе, можно запитать ее хоть от батареек, но, имея под рукой 220 вольт ИМХО более логичное решение взять питание оттуда.
2) Коммутация нагрузки в 220в/5А при управлении от 5В. Амперы я взял навскидку, 5А уже достаточно чтобы запитать какой-нибудь хилый чайник с киловаттным потреблением. Или с десяток лампочек накаливания в 100 ватт)
3) Желательно дополнительный орган управления, на случай если голос подведет, или не хочется шуметь.
4) Захват звука с выбранными параметрам. О параметрах чуть позже.

Первый пункт тривиален – можно ставить любой известный вам блок питания, т.к. потребление схемы очень низкое. Но т.к. она включена в режиме 24/7, я выбрал простой и надежный трансформаторный двуполупериодный блок питания, состоящий собственно из трансформатора ТПГ-0.7, преобразующего 220В в 12В, диодного моста, сглаживающего конденсатора и двух линейных стабилизаторов напряжения, выдающих мне стабильные 5В и 9В.

Питание 5В, понятное дело, идет на цифровую схематику. А вот 9В мне понадобилось для аналоговой части, т.к. максимальное напряжение, которое может выдать операционник LM324 равно Eпит-1.5 вольта. Не трудно посчитать, что при питании его от 5В максимум на выходе можно получить 3.5, это меня не устраивало.

Переходим к пункту два. Для коммутации нагрузки я выбрал надежное и проверенное твердотельное реле S202S02, способное коммутировать до 250Вх8А.
Никаких механических частей не содержит, схема включения предельно проста: реле имеет 4 пина – два пина к нагрузке, они находятся в «нормально разомкнутом» состоянии. При подаче на управляющий пин лог 1, реле замыкается и проводит ток.

Пункт 3 тоже прост. На помощь приходит интегральный ИК датчик TSOP1736, представляющий собой маленькое трехногое чудо, которое двумя пинами подключается к земле и питанию 5В соответственно, а с третьего выдает лог. 1, когда входного сигнала нет, и лог 0, когда обнаружен входной сигнал. Входным сигналом является модулированное ИК излучение, с частотой несущей равной 36 кГц, что близко к несущей большинства ИК пультов. В силу модуляции TSOP довольно хорошо защищен от посторонних ИК шумов и постоянного света, такого как солнечный.

Читайте также:  Какие есть варианты подключения телевизора

Переходим к самой интересной части, части аудио-захвата. Сразу представлю разработанную схему:

Итак, как я уже сказал, питание аналоговой части осуществляется от 9 вольт. Схема базируется на апноутах от Texas Instruments, посвященных однополярному включению операционников. В качестве операционного усилителя выбрал LM324, копеечный «четырехядерный» ОУ. Купить можно повсеместно, не дороже 10 рублей, таким образом, вся аналоговая часть строится на одной микросхеме.
Сигнал с электретного микрофона, запитанного через резистор R4 поступает через развязывающий конденсатор на вход предусилителя, а после и усилителя (верхний «этаж» схемы). Усилки включены по инвертирующей однополярной схеме, поэтому на неинвертирующие входы подана половина напряжения питания с делителя.
После первого усилка мы получаем инвертированный сигнал, усиленный в 25 раз и сдвинутый на 4.5 вольта. После второго (кондер перед ним не нужен, т.к. для него «землей» являются те самые 4.5 вольта, на которые мы уже сдвинули сигнал) входной сигнал еще раз инвертируется и усиливается еще в 80 раз.
Суммарное усиление двух каскадов составляет 2000, т.о. двуполярный сигнал с микрофона в 2 мВ предстанет перед АЦП 4хвольтовым сигналом, сдвинутым на половину напряжения питания. То что нужно.

Коэффициенты усиления я подбирал для моего конкретного микрофона – разумеется, если ваш выдает не 2 мВ а 20, то усиление следует понизить. А можно и вовсе впаять подстроечные резисторы, и менять усиление по мере надобности.

Второй «этаж» схемы – два антиальязинговых фильтра, выполненных по топологии Салена-Кея, второго порядка. Так как в основном речевой сигнал лежит в низких частотах, я выбрал частоту дискретизации равную 5КГц, что дает нам максимальную частоту сигнала в 2500 Герц. Фильтры настроены на частоту около 2КГц, что, в сочетании с 4м порядком, обеспечивает отличную антиальязинговую фильтрацию.

И последним шагом мы обрубаем постоянные 4.5В, идущие от усилков при помощи конденсатора С10 и добавляем новую постоянную составляющую в 2.5В для захвата АЦП контроллера, который, разумеется, питается от 5в и ждет сигнал в пределах от 0 до 5В.

Последняя часть схемы – контроллер с обвязкой:

Здесь же изображен TSOP1736, силовое реле, пара кнопок управления (которые я так и не использовал в проекте), индикационный диод и порт для программирования.

Вся схема целиком выглядит так:

Итоги разработки схематики

Разработанная платформа оказалась очень удобной для разных DSP-экспериментов.
К аналоговой и цифровой части у меня не было никаких нареканий за все время тестирования и использования. А вот с питанием я слегка ошибся – взяв трансформатор на 12В, я не учел, что 12 вольт он выдает при номинальной нагрузке (около 100 мА). А т.к. схема потребляет много меньше, трансформатор выдает не 12 а около 15 вольт, из-за чего линейные стабилизаторы греются, особо тот, что на 5В – т.к. на нем падает целая десятка.

В остальном же, схема получилась очень удачная, и похожую аналоговую часть я часто использую в своих проектах. Так как контроллер заведен на 20 МГц, а частота дискретизации составляет 5 КГц, у него есть 4000 тактов на цифровую обработку сигнала.

На этом пока все, в следующей части статьи я расскажу про реализованный мной алгоритм распознавания. Для экономии тактов он был реализован на чистом ассемблере, так что готовьтесь)

Источник

Оцените статью
Adblock
detector