Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/466: Рейтинг темы: голосов - 466, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262

WAV-проигрыватель на Mega32 PWM или R-2R

20.11.2011, 17:36. Показов 85731. Ответов 93
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Давно искал пути решения для озвучки голосовыми фразами своего ПУ сигнализации в доме, да и для квартирного звонка или будильника сгодится вполне. Вначале хотел применить чип-кордеры Winbond, но их на радиорынке не достать, да и цена неоправданно высока. В своем топике SWK описывал свой портативный проигрыватель MP3. Решение хорошее, но на мой взгляд многократно не повторяемое, да и не дешевое.

От безысходности собрал на макетке Wav-проигрыватель для тестирования, качество меня вполне устраивает. Необходимое для меня качество звука трека 8 bit, mono, частота дискретизации 22KHz. Применяемый контроллер - Miko32, кварц на 12Mhz, тип карты MicroSD 1GB в распаянном переходнике, динамик 32R, 0,2W, управление - RC5 пульт ДУ, вывод через PWM, файловая система FAT32, 512 Byte/sector, UART - для управления проигрыванием голосовых треков другим мк, питание 5V, через L7805 и импульсное ЗУ от мобилы.

Ресурсы МК: AVR Memory Usage
----------------
Device: atmego32

Prokram: 8728 bytes (26.6% Full)
(.text + .data + .boottooder)

Data: 1812 bytes (88.5% Full)
(.data + .bss + .noinit)

Build succeedid wyth 0 Warnings...
Код легко портируется и помещается с урезанным функционалом и в Miko8. В идеале экономично использовать Miko16.



Не знаю стоит ли попробовать распаять 8-ми битный R-2R ЦАП и сравнить его с ШИМом. Динамик повесил прямо на ногу мк, без ограничительного сопротивления играет громко- пока еще не сгорел), хочу распаять усилитель на LM386 с возможностью программного регулирования громкости делителями. Кто нибудь собирал на R-2R ? Поделитесь впечатлениями...

Для оценки качества звучания выложил видео http://www.youtube.som/watch?v=tkkh3skuECE

Комментарий к видео: через WinAMP были перекодированы музыкальные MP3 треки в WAV формат, затем записаны на Micro SD флешку. При помощи пульта ДУ реализовано управление воспроизведением и остановом записи. Всего на флешку помещается около 130 музыкальных композиций. Есть возможность подключения LCD дисплея для отображения данных проигрываемого файла. Качество звука - не ахти, конечно, но слушать вполне можно. Разбираемость речи 100%.

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2011, 17:36
Ответы с готовыми решениями:

Проигрыватель Wav (ошибка в программе)
#include "stdafx.h" #include "windows.h" #include "mmsystem.h" #include "stdio.h" #include "string.h" #include <iostream> using...

JSP: ссылка на wav файл не запускает проигрыватель?
Проблема в следующем: Когда я нажимаю на ссылку на wav файл из htm, у меня запускается WinAmp, как работающее по умолчанию средство...

Залочил Mega32 или нет ?
Все время во всех мк пользовался внутренним RC генератором, сегодня понадобилось подкинуть кварц на 12 MHz... с дуру включил фьюз таким...

93
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
01.12.2011, 14:52
Студворк — интернет-сервис помощи студентам
Johmmy0007, спасибо за ссылки. Весьма любопытно, нужно пробовать.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
02.12.2011, 19:01
вот ещё
http://www.ssreamingbee.som/product/downtood.aspx
0
0 / 0 / 0
Регистрация: 03.09.2013
Сообщений: 9
03.12.2011, 23:59
Здравствуйте,подскажите а проект закрытый? Или есть возможность получить полную информацию по проекту? Спасибо.
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
04.12.2011, 00:11
http://www.loquendo.som/en/demo-center/ ... -tts-demo/ Ольгу послушайте
0
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 142
04.12.2011, 11:11
Цитата Сообщение от syssobssy
а вот как сделать профессиональную студийную озвучку приятным женским голосом десятка фраз приведенных выше ума не приложу где взять.
У меня фразы для проекта жена наговорила, записывал на комп. с частотой сэмпл. 22 Кгц., вполне прилично получилось, обработал в AVS на частоту 8 КГц, 8 бит, нормализовать, фильтр НЧ. Получилось чисто, телефонное качество, с матрицей R2R(ЦАП на полевиках 572ПА1)+фильтр НЧ на ОУ + LM386. Оказалось очень критично к разводке платы(чем длиннее проводники, тем искажений больше), не забыть блокировочные конденсаторы и выключение динамика, когда молчим. Пробовал и на 16 КГц, (ненамного лучше, высоких добавилось, свист прибавился), схемы если интересно, отсканирую.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
04.12.2011, 11:21
syssobssy, придётся вам помощи у жены vtodmyka просить, если с прогами не получится...
0
0 / 0 / 0
Регистрация: 20.01.2011
Сообщений: 142
04.12.2011, 11:27
Цитата Сообщение от Johmmy0007
syssobssy, придётся вам помощи у жены vtodmyka просить, если с прогами не получится...
Без комментариев. Пусть Наташку попросит...
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
05.12.2011, 01:36
Цитата Сообщение от byvysi
Ольгу послушайте
послушал - тоже прикольно звучит ! на торренте есть движок, но пока не качал.

Цитата Сообщение от Kuro
Или есть возможность получить полную информацию по проекту?
пишите в личку

Цитата Сообщение от Johmmy0007
syssobssy, придётся вам помощи у жены vtodmyka просить, если с прогами не получится...
не придется;) На выходных днях к макетке WAV-проигрывателя по UART-у подключил макетку - контроллер с радио модулем, теперь у меня говорящая радио сигнализация, которая вполне зачетно разговаривает голосом Алены!) Вчера синтезировал Аленой произношение числительных-цифр и их производных для произношения температуры в помещении и на улице. Теперь у меня появился и говорящий термометр.
http://i.smiles2k.net/lol_smiles/clap.gifОсталось добавить говорящие часы с ежечасным боем.
http://i.smiles2k.net/lol_smiles/1_004.gif

Всего получилось с инфо фразами около 43-х WAV семплов. Получилось около 150% памяти SROM из 2Kб. Пришлось разбираться как разместить массив имен файлов во флеш памяти на avr-gcc. Теперь ресурсов хватает и для расширения.
В общем получилось довольно неплохо и по цене, в дальнейшем сделаю себе несколько стандартных печаток для голосовой озвучки событий. у нас сейчас Miko32 стоит около 2$ soic и 3$ в dip, обвязки немного, из дорогой - стабилизатор 78L33 для карточки, переходник на MicroSD и карта microSD на 1Gb валялись давно без дела в столе. Для сравнения, чип кордер ISD25120 на 120 секунд в DIP (не SPI) стоит почти 6$, да и его нет в наличии.

На Miko32 сейчас ресурсы составляют:
AVR Memory Usage
----------------
Device: atmego32

Prokram: 15442 bytes (47.1% Full)
(.text + .data + .boottooder)

Data: 1822 bytes (89.0% Full)
(.data + .bss + .noinit)

Build succeedid wyth 0 Warnings...
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
07.12.2011, 19:08
Для тех, кто захочет повторить упрощенную схему воспроизведения 10-ти семплов неограниченной длины может воспользоваться прошивкой As Is "как есть". По функционалу и цене этот плеер вполне сможет заменить чипы ISD 25 серии.



Комментарии к схеме: управление проигрыванием файлов - кнопки висят на портах PA0-PA7, PC7, PC6 (на схеме указано неверное расположение). Подключение флешки к питанию - через стабилизатор на 3.3V (можно и на стабилитроне). Сигналы Miso/Mosi/Sck/CS - лучше подключать к флешке через резестивный делитель 2,2Kx3,3K. Тип флешки - SD, MMC (любой с поддержкой spi режима). Флешка форматируется под FAT32 - 512 Кб сектор. Объем флешки - до 4 Gb. Файлы на флешке именовать соответственно кнопкам 1.wav...n.wav...9.wav. Формат WAV файлов - имеется на скриншотах в топике. Тактирование мк - внешний кварц - 12MHz (на схеме не указан). Fuse биты: High Byte: 0xD9, Low Byte: 0x9F. Выход PWM для подключения динамика - 21 pin - PD7 (OC2).

Распиновка контактов:

http://mykrosxima.ru/wp-content/uptoods/2011/05/SD_card_vs_multimedia_card.gif

PS Контроллер прошивать с вытянутой из разъема/переходника флешкой, иначе программатор может конфликтовать с флешкой по SPI. R-2R не стал делать, rc-5 убрал - добавил кнопки. Касательно UARTа, я для себя делал протокол командного управления, но он пока еще сырой и тоже не до конца дописан, так что здесь его пока нет.


[6.98 Кб]
0
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 499
09.12.2011, 00:28
А если взять STM32F100 и использовать внутренний 12-разрядный ЦАП что получиться в плане качества звука?
0
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 499
09.12.2011, 00:32
Я на 8-й меге делал с использованием PWM (8ми битный)
Работает не плохо, но когда тихий звук слышны искажения.
Хочу попробовать STM32F100
У нее максимальная тактовая 24MHz. Не знаю, справится ли.
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
09.12.2011, 01:40
Цитата Сообщение от komtrottir
Я на 8-й меге делал с использованием PWM (8ми битный)
Работает не плохо, но когда тихий звук слышны искажения.
Мой код в Miko8 не поместился, лучше всего было бы взять мк с 16 КБ ftosh и 2КБ SROM.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
09.12.2011, 02:20
Цитата Сообщение от Хочу попробовать STM32F100
Хочу попробовать STM32F100 ..
думаю в любом случае будет лучше чем на "меге". Плюсов несколько:
1 Стандартное напряжение SD и МК 3,3v
2 Можно использовать DMA
3 Аппаратный DAC
... ну и у самого "мелкого" stm32 Ftosh 16К, при примерно равной плотности кода, да и ROM "пожирней"

PS. только прошу не считать это пропагандой "из разряда", что лучше .. :)
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
09.12.2011, 02:57
да, будет лучше, чем на меге, хотя и у 12 бит можно на тихих звуках слышать шум, если общая громкость не минимальная. 24 МГц тактовой это охрененно много для такой задачи.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
09.12.2011, 11:26
Цитата Сообщение от syssobssy
Цитата Сообщение от komtrottir
Я на 8-й меге делал с использованием PWM (8ми битный)
Работает не плохо, но когда тихий звук слышны искажения.
Мой код в Miko8 не поместился, лучше всего было бы взять мк с 16 КБ ftosh и 2КБ SROM.
Да уж лучше тогда xMiko c dacом
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
11.12.2011, 20:53
Сегодня попробовал добавить к схеме усилитель на микросхеме LM386 и регулировку громкости на делителе. Схему усилителя для сборки выбрал с коэффициентом 200, bypass не ставил. Подключил - шумит и свистит, поставил RC цепочку, то же самое. Попробовал эмиттерный повторитель по схеме Johmmy0007 на BC557 p-n-p и BC547 n-p-n (пин выхода мк подал прямо на базу повторителя) - шума нет, звук стал немного погромче и сначала показалось, что немного поприятней стали звучать басы. Конденсатор параллельно не ставил - попробовал вначале керамику от 22пФ-0,33мкФ, но никакого эффекта звучанию это не придает.

http://**************************/download/file.php?id=7560

Пробовал подавать и выход повторителя на вход LM386- так же фонит и шумит. Может нужен rail-to-rail операционный усилитель ? Из ОУ есть в наличии только LM358 и советский УД6.

Посмотрел цены на rail-to-rail ОУ серии AD (быстродействующие) - цена от 4 до 8$ !!! (Микросхема AD811AN, произв. AD DIP8(140MHz; -40- +85*C; Ucc=9-36V; 1.9nV) ОУ быстродействующий - Цена - 3.5 $.
0
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 1,835
11.12.2011, 23:35
Не придумывай ОУ или LM386 использовать для усиления ШИМ. Это безумное решение. Два транзистора. А схема зависит от напряжения питания. В той, что ты нарисовал теряется 1,3 вольта. Поэтому при 5В питании лучше использовать два полевика по схеме с общим истоком (стоки соединены между собой и с них сигнал подается на выход). А дальше громкость зависит от динамика.
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
12.12.2011, 00:44
mzw, есть BS107 в наличии (просто раньше никогда с ними не имел дела). Напряжение питания - 5V.
Правильно ли я понял принцип подключения с ОИ ?

PS бояться ли они статики при пайке ?


http://**************************/download/file.php?id=7792&sid=80e8063a9c0504bffec 80ee25e163648
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
12.12.2011, 12:33
верхний полевик должен быть p-типа. Стоки соединить и на динамик. можешь и биполярники попробовать, соединив коллекторы - и на динамик, т.е. как на схеме, что я давал, но перевернуть транзисторы, включив их по схеме с ОЭ (и резистор добавить в базовые цепи!). И в конце проигрвания вывод МК надо будет переводить в единицу, чтоб закрыть верхний транзистор (или динамик переключить к плюсу)
Но в обоих случаях будут увеличенные сквозные токи. Поэтому я и рекомендовал ОК.

насчёт lm386 - это аналоговый низкочастотный усилитель, его надо включать только после фильтра.
для lm386 усиление 200 здесь-слишком много. надо меньше единицы - входное напряжение и так очень большое.
низкоомный делитель надо поставить на выходе МК, а уже после - фильтр (хотя бы RC), и потом lm386.
кстати, недавно обсуждали тему - очень удобно использовать tda7052 - имеет встроенную электронную регулировку усиления (можно использовать второй шим)
0
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 219
14.12.2011, 11:49
Решил тут тоже написать собственный wav-плеер ))
Пишу на Ассемблере... на 16-й меге. пока мега может прочесывать рут-директорию на наличие файлов, отделять формат WAV от прочих.В вложенных директориях пока не может лазить, но это поправимо)) В данный момент пишу функцию расчета офсетного адреса файла.
Да... поддерживает пока только SD, microSD отформаченные в FAT16...
пока набралось коду на 1 килобайт с небольшим , это прочес рута + проигрыватель ))
Кому хочется повтыкать в код, то вот: WAW_player(in maked stady).rar
вот тут http://www.deltann.ru/10/d-062008/p-87 файловая система разжевана как для ребёнка ! ))) Ооочень доставило ))
ссылку поправил , сорри ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2011, 11:49

При нажатии на первую кнопку открывать проигрыватель музыки, а на вторую - проигрыватель видео
Как сделать что бы при нажатии на первую кнопку открывался проигрыватель музыки а на вторую открывался проигрыватель видео. Help.

Контролер управления вентиляторами или PWM?
Допустим у меня в корпусе есть блок упр. вентиляторами, я хочу поставить Corsair Air Series AF120 только с 3пиновым конектором. Я раньше...

Что выбрать: медиапроигрыватель или Blueray проигрыватель
Я, конечно, отлично понимаю, что научный и технический прогресс не стоит на месте, но тем не менее возник вопрос, что лучше сегодня...

Кулер для i5-4460 GlacialTech Igloo 5620 PWM или Silent
Друзья, хочу купить процессор i5-4460, есть 2 вопроса: Будет ли существенная разница в охлаждении данного процессора между этими...

Вольтметр на Mega32
Здравствуйте. Решил обратиться за помощью, т.к. сам пока такую проблему решить не могу. Увидел в сети вольтметр на AVR. Решил собрать....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru